9 lines
2.2 MiB
9 lines
2.2 MiB
(self["webpackChunk_object_Object_"]=self["webpackChunk_object_Object_"]||[]).push([[617],{46229:function(t,e,n){"use strict";var i=n(98052),r=n(1702),o=n(41340),s=n(48053),l=URLSearchParams,a=l.prototype,h=r(a.append),u=r(a["delete"]),d=r(a.forEach),c=r([].push),p=new l("a=1&a=2&b=3");p["delete"]("a",1),p["delete"]("b",void 0),p+""!=="a=2"&&i(a,"delete",(function(t){var e=arguments.length,n=e<2?void 0:arguments[1];if(e&&void 0===n)return u(this,t);var i=[];d(this,(function(t,e){c(i,{key:e,value:t})})),s(e,1);var r,l=o(t),a=o(n),p=0,g=0,m=!1,x=i.length;while(p<x)r=i[p++],m||r.key===l?(m=!0,u(this,r.key)):g++;while(g<x)r=i[g++],r.key===l&&r.value===a||h(this,r.key,r.value)}),{enumerable:!0,unsafe:!0})},17330:function(t,e,n){"use strict";var i=n(98052),r=n(1702),o=n(41340),s=n(48053),l=URLSearchParams,a=l.prototype,h=r(a.getAll),u=r(a.has),d=new l("a=1");!d.has("a",2)&&d.has("a",void 0)||i(a,"has",(function(t){var e=arguments.length,n=e<2?void 0:arguments[1];if(e&&void 0===n)return u(this,t);var i=h(this,t);s(e,1);var r=o(n),l=0;while(l<i.length)if(i[l++]===r)return!0;return!1}),{enumerable:!0,unsafe:!0})},62062:function(t,e,n){"use strict";var i=n(19781),r=n(1702),o=n(47045),s=URLSearchParams.prototype,l=r(s.forEach);i&&!("size"in s)&&o(s,"size",{get:function(){var t=0;return l(this,(function(){t++})),t},configurable:!0,enumerable:!0})},7669:function(t){"use strict";var e=function(t){return n(t)&&!i(t)};function n(t){return!!t&&"object"===typeof t}function i(t){var e=Object.prototype.toString.call(t);return"[object RegExp]"===e||"[object Date]"===e||s(t)}var r="function"===typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103;function s(t){return t.$$typeof===o}function l(t){return Array.isArray(t)?[]:{}}function a(t,e){return!1!==e.clone&&e.isMergeableObject(t)?x(l(t),t,e):t}function h(t,e,n){return t.concat(e).map((function(t){return a(t,n)}))}function u(t,e){if(!e.customMerge)return x;var n=e.customMerge(t);return"function"===typeof n?n:x}function d(t){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter((function(e){return Object.propertyIsEnumerable.call(t,e)})):[]}function c(t){return Object.keys(t).concat(d(t))}function p(t,e){try{return e in t}catch(n){return!1}}function g(t,e){return p(t,e)&&!(Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))}function m(t,e,n){var i={};return n.isMergeableObject(t)&&c(t).forEach((function(e){i[e]=a(t[e],n)})),c(e).forEach((function(r){g(t,r)||(p(t,r)&&n.isMergeableObject(e[r])?i[r]=u(r,n)(t[r],e[r],n):i[r]=a(e[r],n))})),i}function x(t,n,i){i=i||{},i.arrayMerge=i.arrayMerge||h,i.isMergeableObject=i.isMergeableObject||e,i.cloneUnlessOtherwiseSpecified=a;var r=Array.isArray(n),o=Array.isArray(t),s=r===o;return s?r?i.arrayMerge(t,n,i):m(t,n,i):a(n,i)}x.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce((function(t,n){return x(t,n,e)}),{})};var y=x;t.exports=y},73090:function(t,e){"use strict";var n;function i(t){return t.type===n.Tag||t.type===n.Script||t.type===n.Style}Object.defineProperty(e,"__esModule",{value:!0}),e.Doctype=e.CDATA=e.Tag=e.Style=e.Script=e.Comment=e.Directive=e.Text=e.Root=e.isTag=e.ElementType=void 0,function(t){t["Root"]="root",t["Text"]="text",t["Directive"]="directive",t["Comment"]="comment",t["Script"]="script",t["Style"]="style",t["Tag"]="tag",t["CDATA"]="cdata",t["Doctype"]="doctype"}(n=e.ElementType||(e.ElementType={})),e.isTag=i,e.Root=n.Root,e.Text=n.Text,e.Directive=n.Directive,e.Comment=n.Comment,e.Script=n.Script,e.Style=n.Style,e.Tag=n.Tag,e.CDATA=n.CDATA,e.Doctype=n.Doctype},43617:function(t,e,n){"use strict";n.r(e),n.d(e,{DiagramEditor:function(){return Me},DiagramViewer:function(){return Te},EditorBus:function(){return Oe},base64ToSvgString:function(){return Se},convertXMLToSVG:function(){return He},getLanguage:function(){return Le},stringToSvg:function(){return we},stringToXml:function(){return u},svgToString:function(){return Ee},xmlToString:function(){return h}});n(82801),n(57658);var i=n(44611),r=n.n(i),o=n(30524),s=n.n(o),l=n(95514),a=n.n(l),h=function(t){if(!t)return null;try{return(new XMLSerializer).serializeToString(t)}catch(t){return console.log("XmlToString Error: ",t),null}},u=function(t){try{return(new DOMParser).parseFromString(t,"text/xml")}catch(t){return console.log("StringToXml Error: ",t),null}};window.mxBasePath="static",window.mxLoadResources=!1,window.mxForceIncludes=!1,window.mxLoadStylesheets=!1,window.mxResourceExtension=".txt";var d=r()(),c=d.mxGraph,p=d.mxCodec,g=d.mxConstants,m=d.mxSvgCanvas2D,x=d.mxImageExport,y=d.mxEventSource,f=d.mxResources,A=d.mxEventObject,C=d.mxEvent,v=d.mxUtils,E=d.mxClient,w=d.mxRectangle,S=d.mxDivResizer,b=d.mxPopupMenu,T=d.mxPoint,L=d.mxGraphView,I=d.mxMouseEvent,M=d.mxPolyline,R=d.mxGraphHandler,O=d.mxConnectionHandler,N=d.mxCellMarker,D=d.mxRectangleShape,P=d.mxPopupMenuHandler,H=d.mxUndoManager,k=d.mxText,G=d.mxRubberband,B=d.mxGraphModel,U=d.mxShape,V=d.mxEdgeStyle,F=d.mxSelectionCellsHandler,z=d.mxClipboard,Y=d.mxEdgeHandler,W=d.mxCellRenderer,j=d.mxDragSource,Q=d.mxGuide,Z=d.mxImage,X=d.mxGraphLayout,K=d.mxObjectCodec,q=d.mxCellHighlight,J=d.mxLayoutManager,_=d.mxCompactTreeLayout,$=d.mxHierarchicalLayout,tt=d.mxCircleLayout,et=d.mxFastOrganicLayout,nt=d.mxStencilRegistry,it=d.mxStencil,rt=d.mxConstraintHandler,ot=d.mxEllipse,st=d.mxCellState,lt=d.mxObjectIdentity,at=d.mxDictionary,ht=d.mxConnectionConstraint,ut=d.mxCellEditor,dt=d.mxVertexHandler,ct=d.mxOutline,pt=d.mxPanningHandler,gt=d.mxElbowEdgeHandler,mt=d.mxImageShape,xt=d.mxStackLayout,yt=d.mxConnector,ft=d.mxStyleRegistry,At=d.mxKeyHandler,Ct=d.mxCell,vt=d.mxGeometry;d.mxXmlRequest,d.mxXmlCanvas2D,d.mxForm;var Et=d.mxWindow,wt=d.mxMorphing,St=d.mxRadialTreeLayout,bt=d.mxActor,Tt=d.mxMarker,Lt=d.mxCylinder,It=d.mxRhombus,Mt=d.mxPerimeter,Rt=d.mxArrowConnector,Ot=d.mxDoubleEllipse,Nt=d.mxHexagon,Dt=d.mxSwimlane,Pt=d.mxLabel,Ht=d.mxHandle,kt=d.mxLine,Gt=d.mxTriangle,Bt=d.mxCloud,Ut=d.mxArrow,Vt=d.mxCodecRegistry;p.prototype.decode=function(t,e){this.updateElements();var n=null;if(t&&t.nodeType==g.NODETYPE_ELEMENT){var i=null;try{i=d[t.nodeName]||window[t.nodeName]}catch(e){console.log("NODE ".concat(t.nodeName," IS NOT FOUND"),e)}var r=d.mxCodecRegistry.getCodec(i);r?n=r.decode(this,t,e):(n=t.cloneNode(!0))&&n.removeAttribute("as")}return n},v.getScrollOrigin=function(t,e,n){e=null!=e&&e,n=null!=n&&n;for(var i=null!=t?t.ownerDocument:document,r=i.body,o=i.documentElement,s=new T,l=!1;null!=t&&t!=r&&t!=o;){isNaN(t.scrollLeft)||isNaN(t.scrollTop)||(s.x+=t.scrollLeft,s.y+=t.scrollTop);var a=v.getCurrentStyle(t);null!=a&&(l=l||"fixed"==a.position),t=e?t.parentNode:null}if(!l&&n){var h=v.getDocumentScrollOrigin(i);s.x+=h.x,s.y+=h.y}return s},m.prototype.createClip=function(t,e,n,i){for(var r="mx-clip-"+(t=Math.round(t))+"-"+(e=Math.round(e))+"-"+(n=Math.round(n))+"-"+(i=Math.round(i)),o=0,s=r+"-"+o;null!=document.getElementById(s);)s=r+"-"+ ++o;var l=this.createElement("clipPath");l.setAttribute("id",s);var a=this.createElement("rect");return a.setAttribute("x",t.toString()),a.setAttribute("y",e.toString()),a.setAttribute("width",n.toString()),a.setAttribute("height",i.toString()),l.appendChild(a),l},b.prototype.createSubmenu=function(t){t.table=document.createElement("table"),t.table.className="mxPopupMenu",t.tbody=document.createElement("tbody"),t.table.appendChild(t.tbody),t.div=document.createElement("div"),t.div.className="mxPopupMenu",t.div.style.position="absolute",t.div.style.display="inline",t.div.style.zIndex=this.zIndex.toString(),t.div.appendChild(t.table);var e=document.createElement("img");e.setAttribute("src",this.submenuImage),t.firstChild.nextSibling.nextSibling.appendChild(e)};var Ft='<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="#ffffff"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add>\n</mxStylesheet>';const zt={arrow:"data:image/gif;base64,R0lGODlhBwALAKECAAAAAP///6g8eKg8eCH5BAEKAAIALAAAAAAHAAsAAAITTIQYcLnsgGxvijrxqdQq6DRJAQA7",cross:"data:image/gif;base64,R0lGODlhDwAPAKEBAAAAAP///////////yH5BAEKAAIALAAAAAAPAA8AAAIklB8Qx53b4otSUWcvyiz4/4AeQJbmKY4p1HHapBlwPL/uVRsFADs=",hs:"data:image/png;base64,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",hv:"data:image/png;base64,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"},Yt={dir:"",bindClass:"color",binding:!0,preloading:!0,init:function(){Yt.preload()},getDir:function(){if(!Yt.dir){const t=Yt.detectDir();Yt.dir=!1!==t?t:"jscolor/"}return Yt.dir},detectDir:function(){let t=location.href,e=document.getElementsByTagName("base");for(let n=0;n<e.length;n+=1)e[n].href&&(t=e[n].href);e=document.getElementsByTagName("script");for(let n=0;n<e.length;n+=1)if(e[n].src&&/(^|\/)jscolor\.js([?#].*)?$/i.test(e[n].src)){const i=new Wt(e[n].src).toAbsolute(t);return i.path=i.path.replace(/[^\/]+$/,""),i.query=null,i.fragment=null,i.toString()}return!1},preload:function(){for(const t in Yt.imgRequire)Yt.imgRequire.hasOwnProperty(t)&&Yt.loadImage(t)},images:{pad:[181,101],sld:[16,101],cross:[15,15],arrow:[7,11]},imgRequire:{},imgLoaded:{},requireImage:function(t){Yt.imgRequire[t]=!0},loadImage:function(t){Yt.imgLoaded[t]||(Yt.imgLoaded[t]=new Image,Yt.imgLoaded[t].src=Yt.getDir()+t)},fetchElement:function(t){return"string"==typeof t?document.getElementById(t):t},addEvent:function(t,e,n){t.addEventListener?t.addEventListener(e,n,!1):t.attachEvent&&t.attachEvent("on"+e,n)},fireEvent:function(t,e){if(t)if(document.createEvent){const n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}else if(document.createEventObject){const n=document.createEventObject();t.fireEvent("on"+e,n)}else t["on"+e]&&t["on"+e]()},getElementPos:function(t){let e=t,n=t,i=0,r=0;if(e.offsetParent)do{i+=e.offsetLeft,r+=e.offsetTop}while(e=e.offsetParent);for(;(n=n.parentNode)&&"BODY"!==n.nodeName.toUpperCase();)i-=n.scrollLeft,r-=n.scrollTop;return[i,r]},getElementSize:function(t){return[t.offsetWidth,t.offsetHeight]},getRelMousePos:function(t){let e=0,n=0;return t||(t=window.event),"number"==typeof t.offsetX?(e=t.offsetX,n=t.offsetY):"number"==typeof t.layerX&&(e=t.layerX,n=t.layerY),{x:e,y:n}},getViewPos:function(){return"number"==typeof window.pageYOffset?[window.pageXOffset,window.pageYOffset]:document.body&&(document.body.scrollLeft||document.body.scrollTop)?[document.body.scrollLeft,document.body.scrollTop]:document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)?[document.documentElement.scrollLeft,document.documentElement.scrollTop]:[0,0]},getViewSize:function(){return"number"==typeof window.innerWidth?[window.innerWidth,window.innerHeight]:document.body&&(document.body.clientWidth||document.body.clientHeight)?[document.body.clientWidth,document.body.clientHeight]:document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)?[document.documentElement.clientWidth,document.documentElement.clientHeight]:[0,0]}};function Wt(t){const e={};function n(t){let e="";for(;t;)if("../"===t.substr(0,3)||"./"===t.substr(0,2))t=t.replace(/^\.+/,"").substr(1);else if("/./"===t.substr(0,3)||"/."===t)t="/"+t.substr(3);else if("/../"===t.substr(0,4)||"/.."===t)t="/"+t.substr(4),e=e.replace(/\/?[^\/]*$/,"");else if("."===t||".."===t)t="";else{const n=t.match(/^\/?[^\/]*/)[0];t=t.substr(n.length),e+=n}return e}return e.scheme=null,e.authority=null,e.path="",e.query=null,e.fragment=null,e.parse=function(t){const n=t.match(/^(([A-Za-z][0-9A-Za-z+.-]*)(:))?((\/\/)([^\/?#]*))?([^?#]*)((\?)([^#]*))?((#)(.*))?/);return e.scheme=n[3]?n[2]:null,e.authority=n[5]?n[6]:null,e.path=n[7],e.query=n[9]?n[10]:null,e.fragment=n[12]?n[13]:null,e},e.toString=function(){let t="";return null!==e.scheme&&(t=t+e.scheme+":"),null!==e.authority&&(t=t+"//"+e.authority),null!==e.path&&(t+=e.path),null!==e.query&&(t=t+"?"+e.query),null!==e.fragment&&(t=t+"#"+e.fragment),t},e.toAbsolute=function(t){t=new Wt(t);const i=e,r=new Wt;return null!==t.scheme&&(null!==i.scheme&&i.scheme.toLowerCase()===t.scheme.toLowerCase()&&(i.scheme=null),null!==i.scheme?(r.scheme=i.scheme,r.authority=i.authority,r.path=n(i.path),r.query=i.query):(null!==i.authority?(r.authority=i.authority,r.path=n(i.path),r.query=i.query):(""===i.path?(r.path=t.path,null!==i.query?r.query=i.query:r.query=t.query):("/"===i.path.substr(0,1)?r.path=n(i.path):(null!==t.authority&&""===t.path?r.path="/"+i.path:r.path=t.path.replace(/[^\/]+$/,"")+i.path,r.path=n(r.path)),r.query=i.query),r.authority=t.authority),r.scheme=t.scheme),r.fragment=i.fragment,r)},t&&e.parse(t),e}function jt(t,e){const n={required:!0,adjust:!0,hash:!1,caps:!0,slider:!0};n.valueElement=t,n.styleElement=t,n.onImmediateChange=null,n.hsv=[0,0,1],n.rgb=[1,1,1],n.pickerOnfocus=!0,n.pickerMode="HSV",n.pickerPosition="bottom",n.pickerSmartPosition=!0,n.pickerButtonHeight=20,n.pickerClosable=!1,n.pickerCloseText="Close",n.pickerButtonColor="ButtonText",n.pickerFace=0,n.pickerFaceColor="ThreeDFace",n.pickerBorder=1,n.pickerBorderColor="ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight",n.pickerInset=1,n.pickerInsetColor="ThreeDShadow ThreeDHighlight ThreeDHighlight ThreeDShadow",n.pickerZIndex=1e4;for(const A in e)e.hasOwnProperty(A)&&(n[A]=e[A]);function i(t,e,n){if(null===t)return[n,n,n];const i=Math.floor(t),r=n*(1-e),o=n*(1-e*(i%2?t-i:1-(t-i)));switch(i){case 6:case 0:return[n,o,r];case 1:return[o,n,r];case 2:return[r,n,o];case 3:return[r,o,n];case 4:return[o,r,n];case 5:return[n,r,o]}}function r(){switch(u){case 0:var t=1;break;case 1:t=2}const e=Math.round(n.hsv[0]/6*(Yt.images.pad[0]-1)),r=Math.round((1-n.hsv[t])*(Yt.images.pad[1]-1));Yt.picker.padM.style.backgroundPosition=n.pickerFace+n.pickerInset+e-Math.floor(Yt.images.cross[0]/2)+"px "+(n.pickerFace+n.pickerInset+r-Math.floor(Yt.images.cross[1]/2))+"px";const o=Yt.picker.sld.childNodes;switch(u){case 0:for(var s=i(n.hsv[0],n.hsv[1],1),l=0;l<o.length;l+=1)o[l].style.backgroundColor="rgb("+s[0]*(1-l/o.length)*100+"%,"+s[1]*(1-l/o.length)*100+"%,"+s[2]*(1-l/o.length)*100+"%)";break;case 1:var a,h=[n.hsv[2],0,0],d=(l=Math.floor(n.hsv[0]))%2?n.hsv[0]-l:1-(n.hsv[0]-l);switch(l){case 6:case 0:s=[0,1,2];break;case 1:s=[1,0,2];break;case 2:s=[2,0,1];break;case 3:s=[2,1,0];break;case 4:s=[1,2,0];break;case 5:s=[0,2,1]}for(l=0;l<o.length;l+=1)a=1-1/(o.length-1)*l,h[1]=h[0]*(1-a*d),h[2]=h[0]*(1-a),o[l].style.backgroundColor="rgb("+100*h[s[0]]+"%,"+100*h[s[1]]+"%,"+100*h[s[2]]+"%)"}}function o(){switch(u){case 0:var t=2;break;case 1:t=1}const e=Math.round((1-n.hsv[t])*(Yt.images.sld[1]-1));Yt.picker.sldM.style.backgroundPosition="0 "+(n.pickerFace+n.pickerInset+e-Math.floor(Yt.images.arrow[1]/2))+"px"}function s(){return Yt.picker&&Yt.picker.owner===n}function l(t){const e=Yt.getRelMousePos(t),i=e.x-n.pickerFace-n.pickerInset,r=e.y-n.pickerFace-n.pickerInset;switch(u){case 0:n.fromHSV(i*(6/(Yt.images.pad[0]-1)),1-r/(Yt.images.pad[1]-1),null,f);break;case 1:n.fromHSV(i*(6/(Yt.images.pad[0]-1)),null,1-r/(Yt.images.pad[1]-1),f)}}function a(t){const e=Yt.getRelMousePos(t).y-n.pickerFace-n.pickerInset;switch(u){case 0:n.fromHSV(null,null,1-e/(Yt.images.sld[1]-1),y);break;case 1:n.fromHSV(null,1-e/(Yt.images.sld[1]-1),null,y)}}function h(){n.onImmediateChange&&n.onImmediateChange(n)}n.hidePicker=function(){s()&&(delete Yt.picker.owner,document.getElementsByTagName("body")[0].removeChild(Yt.picker.boxB))},n.showPicker=function(){s()||function(e,i){if(!Yt.picker){Yt.picker={box:document.createElement("div"),boxB:document.createElement("div"),pad:document.createElement("div"),padB:document.createElement("div"),padM:document.createElement("div"),sld:document.createElement("div"),sldB:document.createElement("div"),sldM:document.createElement("div"),btn:document.createElement("div"),btnS:document.createElement("span"),btnT:document.createTextNode(n.pickerCloseText)};for(let t=0,e=4;t<Yt.images.sld[1];t+=e){const t=document.createElement("div");t.style.height=e+"px",t.style.fontSize="1px",t.style.lineHeight="0",Yt.picker.sld.appendChild(t)}Yt.picker.sldB.appendChild(Yt.picker.sld),Yt.picker.box.appendChild(Yt.picker.sldB),Yt.picker.box.appendChild(Yt.picker.sldM),Yt.picker.padB.appendChild(Yt.picker.pad),Yt.picker.box.appendChild(Yt.picker.padB),Yt.picker.box.appendChild(Yt.picker.padM),Yt.picker.btnS.appendChild(Yt.picker.btnT),Yt.picker.btn.appendChild(Yt.picker.btnS),Yt.picker.box.appendChild(Yt.picker.btn),Yt.picker.boxB.appendChild(Yt.picker.box)}const s=Yt.picker;s.box.onmouseup=s.box.onmouseout=function(){E.IS_TOUCH||t.focus()},s.box.onmousemove=function(t){(p||g)&&(p&&l(t),g&&a(t),document.selection?document.selection.empty():window.getSelection&&window.getSelection().removeAllRanges(),h())},s.padM.onmouseup=s.padM.onmouseout=function(){p&&(p=!1,Yt.fireEvent(d,"change"))},s.padM.onmousedown=function(t){switch(u){case 0:0===n.hsv[2]&&n.fromHSV(null,null,1);break;case 1:0===n.hsv[1]&&n.fromHSV(null,1,null)}p=!0,l(t),h()},s.sldM.onmouseup=s.sldM.onmouseout=function(){g&&(g=!1,Yt.fireEvent(d,"change"))},s.sldM.onmousedown=function(t){g=!0,a(t),h()};const c=(m=n,[2*m.pickerInset+2*m.pickerFace+Yt.images.pad[0]+(m.slider?2*m.pickerInset+2*Yt.images.arrow[0]+Yt.images.sld[0]:0),m.pickerClosable?4*m.pickerInset+3*m.pickerFace+Yt.images.pad[1]+m.pickerButtonHeight:2*m.pickerInset+2*m.pickerFace+Yt.images.pad[1]]);var m;s.box.style.width=c[0]+"px",s.box.style.height=c[1]+"px",s.boxB.style.position="absolute",s.boxB.style.clear="both",s.boxB.style.left=e+"px",s.boxB.style.top=i+"px",s.boxB.style.zIndex=n.pickerZIndex,s.boxB.style.border=n.pickerBorder+"px solid",s.boxB.style.borderColor=n.pickerBorderColor,s.boxB.style.background=n.pickerFaceColor,s.pad.style.width=Yt.images.pad[0]+"px",s.pad.style.height=Yt.images.pad[1]+"px",s.padB.style.position="absolute",s.padB.style.left=n.pickerFace+"px",s.padB.style.top=n.pickerFace+"px",s.padB.style.border=n.pickerInset+"px solid",s.padB.style.borderColor=n.pickerInsetColor,s.padM.style.position="absolute",s.padM.style.left="0",s.padM.style.top="0",s.padM.style.width=n.pickerFace+2*n.pickerInset+Yt.images.pad[0]+Yt.images.arrow[0]+"px",s.padM.style.height=s.box.style.height,s.padM.style.cursor="crosshair",s.sld.style.overflow="hidden",s.sld.style.width=Yt.images.sld[0]+"px",s.sld.style.height=Yt.images.sld[1]+"px",s.sldB.style.display=n.slider?"block":"none",s.sldB.style.position="absolute",s.sldB.style.right=n.pickerFace+"px",s.sldB.style.top=n.pickerFace+"px",s.sldB.style.border=n.pickerInset+"px solid",s.sldB.style.borderColor=n.pickerInsetColor,s.sldM.style.display=n.slider?"block":"none",s.sldM.style.position="absolute",s.sldM.style.right="0",s.sldM.style.top="0",s.sldM.style.width=Yt.images.sld[0]+Yt.images.arrow[0]+n.pickerFace+2*n.pickerInset+"px",s.sldM.style.height=s.box.style.height;try{s.sldM.style.cursor="pointer"}catch(t){s.sldM.style.cursor="hand"}function x(){const t=n.pickerInsetColor.split(/\s+/),e=t.length<2?t[0]:t[1]+" "+t[0]+" "+t[0]+" "+t[1];s.btn.style.borderColor=e}s.btn.style.display=n.pickerClosable?"block":"none",s.btn.style.position="absolute",s.btn.style.left=n.pickerFace+"px",s.btn.style.bottom=n.pickerFace+"px",s.btn.style.padding="0 15px",s.btn.style.height="18px",s.btn.style.border=n.pickerInset+"px solid",x(),s.btn.style.color=n.pickerButtonColor,s.btn.style.font="12px sans-serif",s.btn.style.textAlign="center";try{s.btn.style.cursor="pointer"}catch(t){s.btn.style.cursor="hand"}switch(s.btn.onmousedown=function(){n.hidePicker()},s.btnS.style.lineHeight=s.btn.style.height,u){case 0:var y="hs.png";break;case 1:y="hv.png"}s.padM.style.backgroundImage=`url('${zt.cross}')`,s.padM.style.backgroundRepeat="no-repeat",s.sldM.style.backgroundImage=`url('${zt.arrow}')`,s.sldM.style.backgroundRepeat="no-repeat",s.pad.style.backgroundImage=`url('${zt[y.replace(".png","")]}')`,s.pad.style.backgroundRepeat="no-repeat",s.pad.style.backgroundPosition="0 0",r(),o(),Yt.picker.owner=n,document.getElementsByTagName("body")[0].appendChild(s.boxB)}(0,0)},n.importColor=function(){d?n.adjust?!n.required&&/^\s*$/.test(d.value)?(d.value="",c.style.backgroundImage=c.jscStyle.backgroundImage,c.style.backgroundColor=c.jscStyle.backgroundColor,c.style.color=c.jscStyle.color,n.exportColor(m|x)):n.fromString(d.value)||n.exportColor():n.fromString(d.value,m)||(c.style.backgroundImage=c.jscStyle.backgroundImage,c.style.backgroundColor=c.jscStyle.backgroundColor,c.style.color=c.jscStyle.color,n.exportColor(m|x)):n.exportColor()},n.exportColor=function(t){if(!(t&m)&&d){let t=n.toString();n.caps&&(t=t.toUpperCase()),n.hash&&(t="#"+t),d.value=t}t&x||!c||(c.style.backgroundImage="none",c.style.backgroundColor="#"+n.toString(),c.style.color=.213*n.rgb[0]+.715*n.rgb[1]+.072*n.rgb[2]<.5?"#FFF":"#000"),t&y||!s()||r(),t&f||!s()||o()},n.fromHSV=function(t,e,r,o){t<0&&(t=0)||t>6&&(t=6),e<0&&(e=0)||e>1&&(e=1),r<0&&(r=0)||r>1&&(r=1),n.rgb=i(null===t?n.hsv[0]:n.hsv[0]=t,null===e?n.hsv[1]:n.hsv[1]=e,null===r?n.hsv[2]:n.hsv[2]=r),n.exportColor(o)},n.fromRGB=function(t,e,i,r){t<0&&(t=0)||t>1&&(t=1),e<0&&(e=0)||e>1&&(e=1),i<0&&(i=0)||i>1&&(i=1);const o=function(t,e,n){const i=Math.min(Math.min(t,e),n),r=Math.max(Math.max(t,e),n),o=r-i;if(0===o)return[null,0,r];const s=t===i?3+(n-e)/o:e===i?5+(t-n)/o:1+(e-t)/o;return[6===s?0:s,o/r,r]}(null===t?n.rgb[0]:n.rgb[0]=t,null===e?n.rgb[1]:n.rgb[1]=e,null===i?n.rgb[2]:n.rgb[2]=i);null!==o[0]&&(n.hsv[0]=o[0]),0!==o[2]&&(n.hsv[1]=o[1]),n.hsv[2]=o[2],n.exportColor(r)},n.fromString=function(t,e){const i=t.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);return!!i&&(6===i[1].length?n.fromRGB(parseInt(i[1].substr(0,2),16)/255,parseInt(i[1].substr(2,2),16)/255,parseInt(i[1].substr(4,2),16)/255,e):n.fromRGB(parseInt(i[1].charAt(0)+i[1].charAt(0),16)/255,parseInt(i[1].charAt(1)+i[1].charAt(1),16)/255,parseInt(i[1].charAt(2)+i[1].charAt(2),16)/255,e),!0)},n.toString=function(){return(256|Math.round(255*n.rgb[0])).toString(16).substr(1)+(256|Math.round(255*n.rgb[1])).toString(16).substr(1)+(256|Math.round(255*n.rgb[2])).toString(16).substr(1)};var u="hvs"===n.pickerMode.toLowerCase()?1:0,d=Yt.fetchElement(n.valueElement),c=Yt.fetchElement(n.styleElement),p=!1,g=!1,m=1,x=2,y=4,f=8;if(d){const e=function(){n.fromString(d.value,m),h()};Yt.addEvent(d,"keyup",e),Yt.addEvent(d,"input",e),Yt.addEvent(d,"blur",(function(){d!==t&&n.importColor()})),d.setAttribute("autocomplete","off")}switch(c&&(c.jscStyle={backgroundImage:c.style.backgroundImage,backgroundColor:c.style.backgroundColor,color:c.style.color}),u){case 0:Yt.requireImage("hs.png");break;case 1:Yt.requireImage("hv.png")}return Yt.requireImage("cross.gif"),Yt.requireImage("arrow.gif"),n.importColor(),n}function Qt(t,e,n,i){this.editorUi=t;const r=document.createElement("input");r.style.marginBottom="10px",r.style.width="216px",E.IS_IE&&(r.style.marginTop="10px",document.body.appendChild(r));const o=null!=n?n:this.createApplyFunction();function s(){let e=r.value;/(^#?[a-zA-Z0-9]*$)/.test(e)?("none"!=e&&"#"!=e.charAt(0)&&(e="#"+e),Qt.addRecentColor("none"!=e?e.substring(1):e,12),o(e),t.hideDialog()):t.handleError({message:f.get("invalidInput")})}this.init=function(){E.IS_TOUCH||r.focus()};const l=new jt(r);l.pickerOnfocus=!1,l.showPicker();const a=document.createElement("div");Yt.picker.box.style.position="relative",Yt.picker.box.style.width="230px",Yt.picker.box.style.height="100px",Yt.picker.box.style.paddingBottom="10px",a.appendChild(Yt.picker.box);const h=document.createElement("center");function u(){const t=d(0==Qt.recentColors.length?["FFFFFF"]:Qt.recentColors,11,"FFFFFF",!0);return t.style.marginBottom="8px",t}function d(t,e,n,i){e=null!=e?e:12;const o=document.createElement("table");o.style.borderCollapse="collapse",o.setAttribute("cellspacing","0"),o.style.marginBottom="20px",o.style.cellSpacing="0px";const a=document.createElement("tbody");o.appendChild(a);const d=t.length/e;for(let h=0;h<d;h++){var c=document.createElement("tr");for(let i=0;i<e;i++)!function(t){const e=document.createElement("td");e.style.border="1px solid black",e.style.padding="0px",e.style.width="16px",e.style.height="16px",null==t&&(t=n),"none"==t?e.style.background="url('"+de.prototype.noColorImage+"')":e.style.backgroundColor="#"+t,c.appendChild(e),null!=t&&(e.style.cursor="pointer",C.addListener(e,"click",(function(){"none"==t?(l.fromString("ffffff"),r.value="none"):l.fromString(t)})),C.addListener(e,"dblclick",s))}(t[h*e+i]);a.appendChild(c)}if(i){const t=document.createElement("td");t.setAttribute("title",f.get("reset")),t.style.border="1px solid black",t.style.padding="0px",t.style.width="16px",t.style.height="16px",t.style.backgroundImage="url('"+de.prototype.closeImage+"')",t.style.backgroundPosition="center center",t.style.backgroundRepeat="no-repeat",t.style.cursor="pointer",c.appendChild(t),C.addListener(t,"click",(function(){Qt.resetRecentColors(),o.parentNode.replaceChild(u(),o)}))}return h.appendChild(o),o}a.appendChild(r),v.br(a),u();let c=d(this.presetColors);c.style.marginBottom="8px",c=d(this.defaultColors),c.style.marginBottom="16px",a.appendChild(h);const p=document.createElement("div");p.style.textAlign="right",p.style.whiteSpace="nowrap";const g=v.button(f.get("cancel"),(function(){t.hideDialog(),null!=i&&i()}));g.className="geBtn",t.editor.cancelFirst&&p.appendChild(g);const m=v.button(f.get("apply"),s);m.className="geBtn gePrimaryBtn",p.appendChild(m),t.editor.cancelFirst||p.appendChild(g),null!=e&&("none"==e?(l.fromString("ffffff"),r.value="none"):l.fromString(e)),a.appendChild(p),this.picker=l,this.colorInput=r,C.addListener(a,"keydown",(function(e){27==e.keyCode&&(t.hideDialog(),null!=i&&i(),C.consume(e))})),this.container=a}function Zt(t,e,n,i,r){const o=t.editor.graph,s=document.createElement("div");s.style.position="absolute",s.style.width="100%",s.style.height="100%",s.style.border="1px solid whiteSmoke",s.style.overflow="hidden",this.window=new Et(f.get("outline"),s,e,n,i,r,!0,!0),this.window.minimumSize=new w(0,0,80,80),this.window.destroyOnClose=!1,this.window.setMaximizable(!1),this.window.setResizable(!0),this.window.setClosable(!0),this.window.setVisible(!0),this.window.setLocation=function(t,e){const n=window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth,i=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;t=Math.max(0,Math.min(t,n-this.table.clientWidth)),e=Math.max(0,Math.min(e,i-this.table.clientHeight-48)),this.getX()==t&&this.getY()==e||Et.prototype.setLocation.apply(this,arguments)};const l=v.bind(this,(function(){const t=this.window.getX(),e=this.window.getY();this.window.setLocation(t,e)}));C.addListener(window,"resize",l);const a=t.createOutline(this.window);this.destroy=function(){C.removeListener(window,"resize",l),this.window.destroy(),a.destroy()},this.window.addListener(C.RESIZE,v.bind(this,(function(){a.update(!1),a.outline.sizeDidChange()}))),this.window.addListener(C.SHOW,v.bind(this,(function(){this.window.fit(),a.suspended=!1,a.outline.refresh(),a.update()}))),this.window.addListener(C.HIDE,v.bind(this,(function(){a.suspended=!0}))),this.window.addListener(C.NORMALIZE,v.bind(this,(function(){a.suspended=!1,a.update()}))),this.window.addListener(C.MINIMIZE,v.bind(this,(function(){a.suspended=!0})));const h=a.createGraph;function u(){a.outline.pageScale=o.pageScale,a.outline.pageFormat=o.pageFormat,a.outline.pageVisible=o.pageVisible,a.outline.background=null==o.background||o.background==g.NONE?o.defaultPageBackgroundColor:o.background;const t=v.getCurrentStyle(o.container);s.style.backgroundColor=t.backgroundColor,null!=o.view.backgroundPageShape&&null!=a.outline.view.backgroundPageShape&&(a.outline.view.backgroundPageShape.fill=o.view.backgroundPageShape.fill),a.outline.refresh()}if(a.createGraph=function(){const t=h.apply(this,arguments);t.gridEnabled=!1,t.pageScale=o.pageScale,t.pageFormat=o.pageFormat,t.background=null==o.background||o.background==g.NONE?o.defaultPageBackgroundColor:o.background,t.pageVisible=o.pageVisible;const e=v.getCurrentStyle(o.container);return s.style.backgroundColor=e.backgroundColor,t},a.init(s),t.editor.addListener("resetGraphView",u),t.addListener("pageFormatChanged",u),t.addListener("backgroundColorChanged",u),t.addListener("backgroundImageChanged",u),t.addListener("pageViewChanged",(function(){u(),a.update(!0)})),a.outline.dialect==g.DIALECT_SVG){const e=t.actions.get("zoomIn"),n=t.actions.get("zoomOut");C.addMouseWheelListener((function(t,i){let r=!1,o=C.getSource(t);for(;null!=o;){if(o==a.outline.view.canvas.ownerSVGElement){r=!0;break}o=o.parentNode}r&&(i?e.funct():n.funct())}))}}function Xt(t,e,n,i,r){const o=t.editor.graph,s=document.createElement("div");s.style.userSelect="none",s.style.background="white"==de.backdropColor?"whiteSmoke":de.backdropColor,s.style.border="1px solid whiteSmoke",s.style.height="100%",s.style.marginBottom="10px",s.style.overflow="auto";const l=ae.compactUi?"26px":"30px",a=document.createElement("div");a.style.backgroundColor="white"==de.backdropColor?"#dcdcdc":de.backdropColor,a.style.position="absolute",a.style.overflow="auto",a.style.left="0px",a.style.right="0px",a.style.top="0px",a.style.bottom=parseInt(l)+7+"px",s.appendChild(a);let h=null,u=null;C.addListener(s,"dragover",(function(t){t.dataTransfer.dropEffect="move",u=0,t.stopPropagation(),t.preventDefault()})),C.addListener(s,"drop",(function(t){t.stopPropagation(),t.preventDefault()}));let d=null,c=null;const p=document.createElement("div");p.className="geToolbarContainer",p.style.position="absolute",p.style.bottom="0px",p.style.left="0px",p.style.right="0px",p.style.height=l,p.style.overflow="hidden",p.style.padding=ae.compactUi?"4px 0px 3px 0px":"1px",p.style.backgroundColor="white"==de.backdropColor?"whiteSmoke":de.backdropColor,p.style.borderWidth="1px 0px 0px 0px",p.style.borderColor="#c3c3c3",p.style.borderStyle="solid",p.style.display="block",p.style.whiteSpace="nowrap",E.IS_QUIRKS&&(p.style.filter="none");const g=document.createElement("a");g.className="geButton",E.IS_QUIRKS&&(g.style.filter="none");const m=g.cloneNode();m.innerHTML='<div class="geSprite geSprite-delete" style="display:inline-block;"></div>',C.addListener(m,"click",(function(t){if(o.isEnabled()){o.model.beginUpdate();try{const t=o.model.root.getIndex(c);o.removeCells([c],!1),0==o.model.getChildCount(o.model.root)?(o.model.add(o.model.root,new Ct),o.setDefaultParent(null)):t>0&&t<=o.model.getChildCount(o.model.root)?o.setDefaultParent(o.model.getChildAt(o.model.root,t-1)):o.setDefaultParent(null)}finally{o.model.endUpdate()}}C.consume(t)})),o.isEnabled()||(m.className="geButton mxDisabled"),p.appendChild(m);const x=g.cloneNode();x.setAttribute("title",v.trim(f.get("moveSelectionTo",[""]))),x.innerHTML='<div class="geSprite geSprite-insert" style="display:inline-block;"></div>',C.addListener(x,"click",(function(e){if(o.isEnabled()&&!o.isSelectionEmpty()){t.editor.graph.popupMenuHandler.hideMenu();const n=new b(v.bind(this,(function(t,e){for(let n=d-1;n>=0;n--)v.bind(this,(function(n){const i=t.addItem(o.convertValueToString(n)||f.get("background"),null,v.bind(this,(function(){o.moveCells(o.getSelectionCells(),0,0,!1,n)})),e);1==o.getSelectionCount()&&o.model.isAncestor(n,o.getSelectionCell())&&t.addCheckmark(i,ue.checkmarkImage)}))(o.model.getChildAt(o.model.root,n))})));n.div.className+=" geMenubarMenu",n.smartSeparators=!0,n.showDisabled=!0,n.autoExpand=!0,n.hideMenu=v.bind(this,(function(){b.prototype.hideMenu.apply(n,arguments),n.destroy()}));const i=v.getOffset(x);n.popup(i.x,i.y+x.offsetHeight,null,e),t.setCurrentMenu(n)}})),p.appendChild(x);const y=g.cloneNode();y.innerHTML='<div class="geSprite geSprite-dots" style="display:inline-block;"></div>',y.setAttribute("title",f.get("rename")),C.addListener(y,"click",(function(e){o.isEnabled()&&t.showDataDialog(c),C.consume(e)})),o.isEnabled()||(y.className="geButton mxDisabled"),p.appendChild(y);const A=g.cloneNode();A.innerHTML='<div class="geSprite geSprite-duplicate" style="display:inline-block;"></div>',C.addListener(A,"click",(function(){if(o.isEnabled()){let t=null;o.model.beginUpdate();try{t=o.cloneCell(c),o.cellLabelChanged(t,f.get("untitledLayer")),t.setVisible(!0),t=o.addCell(t,o.model.root),o.setDefaultParent(t)}finally{o.model.endUpdate()}null==t||o.isCellLocked(t)||o.selectAll(t)}})),o.isEnabled()||(A.className="geButton mxDisabled"),p.appendChild(A);const S=g.cloneNode();function T(){function e(e,n,i,r){const s=document.createElement("div");s.className="geToolbarContainer",s.style.overflow="hidden",s.style.position="relative",s.style.padding="4px",s.style.height="22px",s.style.display="block",s.style.backgroundColor="white"==de.backdropColor?"whiteSmoke":de.backdropColor,s.style.borderWidth="0px 0px 1px 0px",s.style.borderColor="#c3c3c3",s.style.borderStyle="solid",s.style.whiteSpace="nowrap",s.setAttribute("title",n);const l=document.createElement("div");l.style.display="inline-block",l.style.width="100%",l.style.textOverflow="ellipsis",l.style.overflow="hidden",C.addListener(s,"dragover",(function(t){t.dataTransfer.dropEffect="move",u=e,t.stopPropagation(),t.preventDefault()})),C.addListener(s,"dragstart",(function(t){h=s,E.IS_FF&&t.dataTransfer.setData("Text","<layer/>")})),C.addListener(s,"dragend",(function(t){null!=h&&null!=u&&o.addCell(i,o.model.root,u),h=null,u=null,t.stopPropagation(),t.preventDefault()}));const p=document.createElement("img");p.setAttribute("draggable","false"),p.setAttribute("align","top"),p.setAttribute("border","0"),p.style.padding="4px",p.setAttribute("title",f.get("lockUnlock"));const g=o.getCurrentCellStyle(i);"1"==v.getValue(g,"locked","0")?p.setAttribute("src",de.prototype.lockedImage):p.setAttribute("src",de.prototype.unlockedImage),o.isEnabled()&&(p.style.cursor="pointer"),C.addListener(p,"click",(function(t){if(o.isEnabled()){let e=null;o.getModel().beginUpdate();try{e="1"==v.getValue(g,"locked","0")?null:"1",o.setCellStyles("locked",e,[i])}finally{o.getModel().endUpdate()}"1"==e&&o.removeSelectionCells(o.getModel().getDescendants(i)),C.consume(t)}})),l.appendChild(p);const m=document.createElement("input");if(m.setAttribute("type","checkbox"),m.setAttribute("title",f.get("hideIt",[i.value||f.get("background")])),m.style.marginLeft="4px",m.style.marginRight="6px",m.style.marginTop="4px",l.appendChild(m),o.model.isVisible(i)&&(m.setAttribute("checked","checked"),m.defaultChecked=!0),C.addListener(m,"click",(function(t){o.model.setVisible(i,!o.model.isVisible(i)),C.consume(t)})),v.write(l,n),s.appendChild(l),o.isEnabled()){if(E.IS_TOUCH||E.IS_POINTER||E.IS_VML||E.IS_IE&&document.documentMode<10){const t=document.createElement("div");if(t.style.display="block",t.style.textAlign="right",t.style.whiteSpace="nowrap",t.style.position="absolute",t.style.right="6px",t.style.top="6px",e>0){const n=document.createElement("a");n.setAttribute("title",f.get("toBack")),n.className="geButton",n.style.cssFloat="none",n.innerHTML="▼",n.style.width="14px",n.style.height="14px",n.style.fontSize="14px",n.style.margin="0px",n.style.marginTop="-1px",t.appendChild(n),C.addListener(n,"click",(function(t){o.isEnabled()&&o.addCell(i,o.model.root,e-1),C.consume(t)}))}if(e>=0&&e<d-1){const n=document.createElement("a");n.setAttribute("title",f.get("toFront")),n.className="geButton",n.style.cssFloat="none",n.innerHTML="▲",n.style.width="14px",n.style.height="14px",n.style.fontSize="14px",n.style.margin="0px",n.style.marginTop="-1px",t.appendChild(n),C.addListener(n,"click",(function(t){o.isEnabled()&&o.addCell(i,o.model.root,e+1),C.consume(t)}))}s.appendChild(t)}(!E.IS_IE||document.documentMode>=10)&&(s.setAttribute("draggable","true"),s.style.cursor="move")}C.addListener(s,"dblclick",(function(e){const n=C.getSource(e).nodeName;"INPUT"!=n&&"IMG"!=n&&(function(e){if(o.isEnabled()&&null!=e){const n=o.convertValueToString(e),i=new ge(t,n||f.get("background"),f.get("rename"),v.bind(this,(function(t){null!=t&&o.cellLabelChanged(e,t)})),f.get("enterName"));t.showDialog(i.container,300,100,!0,!0),i.init()}}(i),C.consume(e))})),o.getDefaultParent()==i?(s.style.background="white"==de.backdropColor?"#e6eff8":"#505759",s.style.fontWeight=o.isEnabled()?"bold":"",c=i):C.addListener(s,"click",(function(){o.isEnabled()&&(o.setDefaultParent(r),o.view.setCurrentRoot(null),T())})),a.appendChild(s)}d=o.model.getChildCount(o.model.root),a.innerHTML="";for(var n=d-1;n>=0;n--)v.bind(this,(function(t){e(n,o.convertValueToString(t)||f.get("background"),t,t)}))(o.model.getChildAt(o.model.root,n));const i=o.convertValueToString(c)||f.get("background");m.setAttribute("title",f.get("removeIt",[i])),A.setAttribute("title",f.get("duplicateIt",[i])),y.setAttribute("title",f.get("editData")),o.isSelectionEmpty()&&(x.className="geButton mxDisabled")}S.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>',S.setAttribute("title",f.get("addLayer")),C.addListener(S,"click",(function(t){if(o.isEnabled()){o.model.beginUpdate();try{const t=o.addCell(new Ct(f.get("untitledLayer")),o.model.root);o.setDefaultParent(t)}finally{o.model.endUpdate()}}C.consume(t)})),o.isEnabled()||(S.className="geButton mxDisabled"),p.appendChild(S),s.appendChild(p),T(),o.model.addListener(C.CHANGE,(function(){T()})),o.selectionModel.addListener(C.CHANGE,(function(){o.isSelectionEmpty()?x.className="geButton mxDisabled":x.className="geButton"})),this.window=new Et(f.get("layers"),s,e,n,i,r,!0,!0),this.window.minimumSize=new w(0,0,120,120),this.window.destroyOnClose=!1,this.window.setMaximizable(!1),this.window.setResizable(!0),this.window.setClosable(!0),this.window.setVisible(!0),this.init=function(){a.scrollTop=a.scrollHeight-a.clientHeight},this.window.addListener(C.SHOW,v.bind(this,(function(){this.window.fit()}))),this.refreshLayers=T,this.window.setLocation=function(t,e){const n=window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth,i=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;t=Math.max(0,Math.min(t,n-this.table.clientWidth)),e=Math.max(0,Math.min(e,i-this.table.clientHeight-48)),this.getX()==t&&this.getY()==e||Et.prototype.setLocation.apply(this,arguments)};const L=v.bind(this,(function(){const t=this.window.getX(),e=this.window.getY();this.window.setLocation(t,e)}));C.addListener(window,"resize",L),this.destroy=function(){C.removeListener(window,"resize",L),this.window.destroy()}}function Kt(t){this.editorUi=t,this.actions=new Object,this.init()}function qt(t,e,n,i,r){y.call(this),this.label=t,this.funct=this.createFunction(e),this.enabled=null==n||n,this.iconCls=i,this.shortcut=r,this.visible=!0}Qt.prototype.presetColors=["E6D0DE","CDA2BE","B5739D","E1D5E7","C3ABD0","A680B8","D4E1F5","A9C4EB","7EA6E0","D5E8D4","9AC7BF","67AB9F","D5E8D4","B9E0A5","97D077","FFF2CC","FFE599","FFD966","FFF4C3","FFCE9F","FFB570","F8CECC","F19C99","EA6B66"],Qt.prototype.defaultColors=["none","FFFFFF","E6E6E6","CCCCCC","B3B3B3","999999","808080","666666","4D4D4D","333333","1A1A1A","000000","FFCCCC","FFE6CC","FFFFCC","E6FFCC","CCFFCC","CCFFE6","CCFFFF","CCE5FF","CCCCFF","E5CCFF","FFCCFF","FFCCE6","FF9999","FFCC99","FFFF99","CCFF99","99FF99","99FFCC","99FFFF","99CCFF","9999FF","CC99FF","FF99FF","FF99CC","FF6666","FFB366","FFFF66","B3FF66","66FF66","66FFB3","66FFFF","66B2FF","6666FF","B266FF","FF66FF","FF66B3","FF3333","FF9933","FFFF33","99FF33","33FF33","33FF99","33FFFF","3399FF","3333FF","9933FF","FF33FF","FF3399","FF0000","FF8000","FFFF00","80FF00","00FF00","00FF80","00FFFF","007FFF","0000FF","7F00FF","FF00FF","FF0080","CC0000","CC6600","CCCC00","66CC00","00CC00","00CC66","00CCCC","0066CC","0000CC","6600CC","CC00CC","CC0066","990000","994C00","999900","4D9900","009900","00994D","009999","004C99","000099","4C0099","990099","99004D","660000","663300","666600","336600","006600","006633","006666","003366","000066","330066","660066","660033","330000","331A00","333300","1A3300","003300","00331A","003333","001933","000033","190033","330033","33001A"],Qt.prototype.createApplyFunction=function(){return v.bind(this,(function(t){const e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{e.setCellStyles(this.currentColorKey,t),this.editorUi.fireEvent(new A("styleChanged","keys",[this.currentColorKey],"values",[t],"cells",e.getSelectionCells()))}finally{e.getModel().endUpdate()}}))},Qt.recentColors=[],Qt.addRecentColor=function(t,e){null!=t&&(v.remove(t,Qt.recentColors),Qt.recentColors.splice(0,0,t),Qt.recentColors.length>=e&&Qt.recentColors.pop())},Qt.resetRecentColors=function(){Qt.recentColors=[]},Kt.prototype.init=function(){const t=this.editorUi,e=t.editor,n=e.graph,i=function(){return qt.prototype.isEnabled.apply(this,arguments)&&n.isEnabled()};function r(t){n.escape();const e=n.deleteCells(n.getDeletableCells(n.getSelectionCells()),t);null!=e&&n.setSelectionCells(e)}this.addAction("undo",(function(){t.undo()}),null,"sprite-undo",ue.ctrlKey+"+Z"),this.addAction("redo",(function(){t.redo()}),null,"sprite-redo",E.IS_WIN?ue.ctrlKey+"+Y":ue.ctrlKey+"+Shift+Z"),this.addAction("cut",(function(){z.cut(n)}),null,"sprite-cut",ue.ctrlKey+"+X"),this.addAction("copy",(function(){try{z.copy(n)}catch(e){t.handleError(e)}}),null,"sprite-copy",ue.ctrlKey+"+C"),this.addAction("paste",(function(){n.isEnabled()&&!n.isCellLocked(n.getDefaultParent())&&z.paste(n)}),!1,"sprite-paste",ue.ctrlKey+"+V"),this.addAction("pasteHere",(function(){if(n.isEnabled()&&!n.isCellLocked(n.getDefaultParent())){n.getModel().beginUpdate();try{const t=z.paste(n);if(null!=t){let e=!0;for(let a=0;a<t.length&&e;a++)e=e&&n.model.isEdge(t[a]);const i=n.view.translate,r=n.view.scale,o=i.x,s=i.y;let l=null;if(1==t.length&&e){const e=n.getCellGeometry(t[0]);null!=e&&(l=e.getTerminalPoint(!0))}if(l=null!=l?l:n.getBoundingBoxFromGeometry(t,e),null!=l){const e=Math.round(n.snap(n.popupMenuHandler.triggerX/r-o)),i=Math.round(n.snap(n.popupMenuHandler.triggerY/r-s));n.cellsMoved(t,e-l.x,i-l.y)}}}finally{n.getModel().endUpdate()}}})),this.addAction("copySize",(function(){const e=n.getSelectionCell();if(n.isEnabled()&&null!=e&&n.getModel().isVertex(e)){const i=n.getCellGeometry(e);null!=i&&(t.copiedSize=new w(i.x,i.y,i.width,i.height))}}),null,null,"Alt+Shift+X"),this.addAction("pasteSize",(function(){if(n.isEnabled()&&!n.isSelectionEmpty()&&null!=t.copiedSize){n.getModel().beginUpdate();try{const e=n.getSelectionCells();for(let i=0;i<e.length;i++)if(n.getModel().isVertex(e[i])){let r=n.getCellGeometry(e[i]);null!=r&&(r=r.clone(),r.width=t.copiedSize.width,r.height=t.copiedSize.height,n.getModel().setGeometry(e[i],r))}}finally{n.getModel().endUpdate()}}}),null,null,"Alt+Shift+V"),this.addAction("delete",(function(t){r(null!=t&&C.isShiftDown(t))}),null,null,"Delete"),this.addAction("deleteAll",(function(){r(!0)}),null,null,ue.ctrlKey+"+Delete"),this.addAction("duplicate",(function(){try{n.setSelectionCells(n.duplicateCells())}catch(e){t.handleError(e)}}),null,null,ue.ctrlKey+"+D"),this.put("turn",new qt(f.get("turn")+" / "+f.get("reverse"),(function(t){n.turnShapes(n.getSelectionCells(),null!=t&&C.isShiftDown(t))}),null,null,ue.ctrlKey+"+R")),this.addAction("selectVertices",(function(){n.selectVertices(null,!0)}),null,null,ue.ctrlKey+"+Shift+I"),this.addAction("selectEdges",(function(){n.selectEdges()}),null,null,ue.ctrlKey+"+Shift+E"),this.addAction("selectAll",(function(){n.selectAll(null,!0)}),null,null,ue.ctrlKey+"+A"),this.addAction("selectNone",(function(){n.clearSelection()}),null,null,ue.ctrlKey+"+Shift+A"),this.addAction("lockUnlock",(function(){if(!n.isSelectionEmpty()){n.getModel().beginUpdate();try{const t=n.isCellMovable(n.getSelectionCell())?1:0;n.toggleCellStyles(g.STYLE_MOVABLE,t),n.toggleCellStyles(g.STYLE_RESIZABLE,t),n.toggleCellStyles(g.STYLE_ROTATABLE,t),n.toggleCellStyles(g.STYLE_DELETABLE,t),n.toggleCellStyles(g.STYLE_EDITABLE,t),n.toggleCellStyles("connectable",t)}finally{n.getModel().endUpdate()}}}),null,null,ue.ctrlKey+"+L"),this.addAction("home",(function(){n.home()}),null,null,"Shift+Home"),this.addAction("exitGroup",(function(){n.exitGroup()}),null,null,ue.ctrlKey+"+Shift+Home"),this.addAction("enterGroup",(function(){n.enterGroup()}),null,null,ue.ctrlKey+"+Shift+End"),this.addAction("collapse",(function(){n.foldCells(!0)}),null,null,ue.ctrlKey+"+Home"),this.addAction("expand",(function(){n.foldCells(!1)}),null,null,ue.ctrlKey+"+End"),this.addAction("toFront",(function(){n.orderCells(!1)}),null,null,ue.ctrlKey+"+Shift+F"),this.addAction("toBack",(function(){n.orderCells(!0)}),null,null,ue.ctrlKey+"+Shift+B"),this.addAction("group",(function(){1==n.getSelectionCount()?n.setCellStyles("container","1"):n.setSelectionCell(n.groupCells(null,0))}),null,null,ue.ctrlKey+"+G"),this.addAction("ungroup",(function(){1==n.getSelectionCount()&&0==n.getModel().getChildCount(n.getSelectionCell())?n.setCellStyles("container","0"):n.setSelectionCells(n.ungroupCells())}),null,null,ue.ctrlKey+"+Shift+U"),this.addAction("removeFromGroup",(function(){n.removeCellsFromParent()})),this.addAction("edit",(function(){n.isEnabled()&&n.startEditingAtCell()}),null,null,"F2/Enter"),this.addAction("autosize",(function(){const t=n.getSelectionCells();if(null!=t){n.getModel().beginUpdate();try{for(let e=0;e<t.length;e++){const i=t[e];if(n.getModel().getChildCount(i))n.updateGroupBounds([i],20);else{const t=n.view.getState(i);let e=n.getCellGeometry(i);n.getModel().isVertex(i)&&null!=t&&null!=t.text&&null!=e&&n.isWrapping(i)?(e=e.clone(),e.height=t.text.boundingBox.height/n.view.scale,n.getModel().setGeometry(i,e)):n.updateCellSize(i)}}}finally{n.getModel().endUpdate()}}}),null,null,ue.ctrlKey+"+Shift+Y"),this.addAction("formattedText",(function(){const e=n.getView().getState(n.getSelectionCell());if(null!=e){n.stopEditing();const r="1"==e.style.html?null:"1";n.getModel().beginUpdate();try{const e=n.getSelectionCells();for(let t=0;t<e.length;t++){const o=n.getView().getState(e[t]);if(null!=o){const s=v.getValue(o.style,"html","0");if("1"==s&&null==r){var i=n.convertValueToString(o.cell);"0"!=v.getValue(o.style,"nl2Br","1")&&(i=i.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));const s=document.createElement("div");s.innerHTML=n.sanitizeHtml(i),i=v.extractTextWithWhitespace(s.childNodes),n.cellLabelChanged(o.cell,i),n.setCellStyles("html",r,[e[t]])}else"0"==s&&"1"==r&&(i=v.htmlEntities(n.convertValueToString(o.cell),!1),"0"!=v.getValue(o.style,"nl2Br","1")&&(i=i.replace(/\n/g,"<br/>")),n.cellLabelChanged(o.cell,n.sanitizeHtml(i)),n.setCellStyles("html",r,[e[t]]))}}t.fireEvent(new A("styleChanged","keys",["html"],"values",[null!=r?r:"0"],"cells",e))}finally{n.getModel().endUpdate()}}})),this.addAction("wordWrap",(function(){const t=n.getView().getState(n.getSelectionCell());let e="wrap";n.stopEditing(),null!=t&&"wrap"==t.style[g.STYLE_WHITE_SPACE]&&(e=null),n.setCellStyles(g.STYLE_WHITE_SPACE,e)})),this.addAction("rotation",(function(){let e="0";const i=n.getView().getState(n.getSelectionCell());null!=i&&(e=i.style[g.STYLE_ROTATION]||e);const r=new ge(t,e,f.get("apply"),(function(t){null!=t&&t.length>0&&n.setCellStyles(g.STYLE_ROTATION,t)}),f.get("enterValue")+" ("+f.get("rotation")+" 0-360)");t.showDialog(r.container,375,80,!0,!0),r.init()})),this.addAction("resetView",(function(){n.zoomTo(1),t.resetScrollbars()}),null,null,"Home"),this.addAction("zoomIn",(function(){n.isFastZoomEnabled()?n.lazyZoom(!0,!0,t.buttonZoomDelay):n.zoomIn()}),null,null,ue.ctrlKey+" + (Numpad) / Alt+Mousewheel"),this.addAction("zoomOut",(function(){n.isFastZoomEnabled()?n.lazyZoom(!1,!0,t.buttonZoomDelay):n.zoomOut()}),null,null,ue.ctrlKey+" - (Numpad) / Alt+Mousewheel"),this.addAction("fitWindow",(function(){const t=n.isSelectionEmpty()?n.getGraphBounds():n.getBoundingBox(n.getSelectionCells()),e=n.view.translate,i=n.view.scale;t.width/=i,t.height/=i,t.x=t.x/i-e.x,t.y=t.y/i-e.y;const r=n.container.clientWidth-10,o=n.container.clientHeight-10,s=Math.floor(20*Math.min(r/t.width,o/t.height))/20;n.zoomTo(s),v.hasScrollbars(n.container)&&(n.container.scrollTop=(t.y+e.y)*s-Math.max((o-t.height*s)/2+5,0),n.container.scrollLeft=(t.x+e.x)*s-Math.max((r-t.width*s)/2+5,0))}),null,null,ue.ctrlKey+"+Shift+H"),this.addAction("fitPage",v.bind(this,(function(){n.pageVisible||this.get("pageView").funct();const t=n.pageFormat,e=n.pageScale,i=n.container.clientWidth-10,r=n.container.clientHeight-10,o=Math.floor(20*Math.min(i/t.width/e,r/t.height/e))/20;if(n.zoomTo(o),v.hasScrollbars(n.container)){const t=n.getPagePadding();n.container.scrollTop=t.y*n.view.scale-1,n.container.scrollLeft=Math.min(t.x*n.view.scale,(n.container.scrollWidth-n.container.clientWidth)/2)-1}})),null,null,ue.ctrlKey+"+J"),this.addAction("fitTwoPages",v.bind(this,(function(){n.pageVisible||this.get("pageView").funct();const t=n.pageFormat,e=n.pageScale,i=n.container.clientWidth-10,r=n.container.clientHeight-10,o=Math.floor(20*Math.min(i/(2*t.width)/e,r/t.height/e))/20;if(n.zoomTo(o),v.hasScrollbars(n.container)){const t=n.getPagePadding();n.container.scrollTop=Math.min(t.y,(n.container.scrollHeight-n.container.clientHeight)/2),n.container.scrollLeft=Math.min(t.x,(n.container.scrollWidth-n.container.clientWidth)/2)}})),null,null,ue.ctrlKey+"+Shift+J"),this.addAction("fitPageWidth",v.bind(this,(function(){n.pageVisible||this.get("pageView").funct();const t=n.pageFormat,e=n.pageScale,i=n.container.clientWidth-10,r=Math.floor(20*i/t.width/e)/20;if(n.zoomTo(r),v.hasScrollbars(n.container)){const t=n.getPagePadding();n.container.scrollLeft=Math.min(t.x*n.view.scale,(n.container.scrollWidth-n.container.clientWidth)/2)}}))),this.put("customZoom",new qt(f.get("custom")+"...",v.bind(this,(function(){const t=new ge(this.editorUi,parseInt(100*n.getView().getScale()),f.get("apply"),v.bind(this,(function(t){const e=parseInt(t);!isNaN(e)&&e>0&&n.zoomTo(e/100)})),f.get("zoom")+" (%)");this.editorUi.showDialog(t.container,300,80,!0,!0),t.init()})),null,null,ue.ctrlKey+"+0")),this.addAction("pageScale...",v.bind(this,(function(){const e=new ge(this.editorUi,parseInt(100*n.pageScale),f.get("apply"),v.bind(this,(function(e){const i=parseInt(e);if(!isNaN(i)&&i>0){const e=new he(t,null,null,null,i/100);e.ignoreColor=!0,e.ignoreImage=!0,n.model.execute(e)}})),f.get("pageScale")+" (%)");this.editorUi.showDialog(e.container,300,80,!0,!0),e.init()})));let o=null;o=this.addAction("grid",(function(){n.setGridEnabled(!n.isGridEnabled()),t.fireEvent(new A("gridEnabledChanged"))}),null,null,ue.ctrlKey+"+Shift+G"),o.setToggleAction(!0),o.setSelectedCallback((function(){return n.isGridEnabled()})),o.setEnabled(!1),o=this.addAction("guides",(function(){n.graphHandler.guidesEnabled=!n.graphHandler.guidesEnabled,t.fireEvent(new A("guidesEnabledChanged"))})),o.setToggleAction(!0),o.setSelectedCallback((function(){return n.graphHandler.guidesEnabled})),o.setEnabled(!1),o=this.addAction("tooltips",(function(){n.tooltipHandler.setEnabled(!n.tooltipHandler.isEnabled())})),o.setToggleAction(!0),o.setSelectedCallback((function(){return n.tooltipHandler.isEnabled()})),o=this.addAction("collapseExpand",(function(){const e=new he(t);e.ignoreColor=!0,e.ignoreImage=!0,e.foldingEnabled=!n.foldingEnabled,n.model.execute(e)})),o.setToggleAction(!0),o.setSelectedCallback((function(){return n.foldingEnabled})),o.isEnabled=i,o=this.addAction("scrollbars",(function(){t.setScrollbars(!t.hasScrollbars())})),o.setToggleAction(!0),o.setSelectedCallback((function(){return n.scrollbars})),o=this.addAction("pageView",v.bind(this,(function(){t.setPageVisible(!n.pageVisible)}))),o.setToggleAction(!0),o.setSelectedCallback((function(){return n.pageVisible})),o=this.addAction("connectionArrows",(function(){n.connectionArrowsEnabled=!n.connectionArrowsEnabled,t.fireEvent(new A("connectionArrowsChanged"))}),null,null,"Alt+Shift+A"),o.setToggleAction(!0),o.setSelectedCallback((function(){return n.connectionArrowsEnabled})),o=this.addAction("connectionPoints",(function(){n.setConnectable(!n.connectionHandler.isEnabled()),t.fireEvent(new A("connectionPointsChanged"))}),null,null,"Alt+Shift+P"),o.setToggleAction(!0),o.setSelectedCallback((function(){return n.connectionHandler.isEnabled()})),o=this.addAction("copyConnect",(function(){n.connectionHandler.setCreateTarget(!n.connectionHandler.isCreateTarget()),t.fireEvent(new A("copyConnectChanged"))})),o.setToggleAction(!0),o.setSelectedCallback((function(){return n.connectionHandler.isCreateTarget()})),o.isEnabled=i;const s=v.bind(this,(function(t,e,i,r){return this.addAction(t,(function(){if(null!=i&&n.cellEditor.isContentEditing())i();else{n.stopEditing(!1),n.getModel().beginUpdate();try{const t=n.getSelectionCells();n.toggleCellStyleFlags(g.STYLE_FONTSTYLE,e,t),(e&g.FONT_BOLD)==g.FONT_BOLD?n.updateLabelElements(n.getSelectionCells(),(function(t){t.style.fontWeight=null,"B"==t.nodeName&&n.replaceElement(t)})):(e&g.FONT_ITALIC)==g.FONT_ITALIC?n.updateLabelElements(n.getSelectionCells(),(function(t){t.style.fontStyle=null,"I"==t.nodeName&&n.replaceElement(t)})):(e&g.FONT_UNDERLINE)==g.FONT_UNDERLINE&&n.updateLabelElements(n.getSelectionCells(),(function(t){t.style.textDecoration=null,"U"==t.nodeName&&n.replaceElement(t)}));for(let e=0;e<t.length;e++)0==n.model.getChildCount(t[e])&&n.autoSizeCell(t[e],!1)}finally{n.getModel().endUpdate()}}}),null,null,r)}));s("bold",g.FONT_BOLD,(function(){document.execCommand("bold",!1,null)}),ue.ctrlKey+"+B"),s("italic",g.FONT_ITALIC,(function(){document.execCommand("italic",!1,null)}),ue.ctrlKey+"+I"),s("underline",g.FONT_UNDERLINE,(function(){document.execCommand("underline",!1,null)}),ue.ctrlKey+"+U"),this.addAction("fontColor...",(function(){t.menus.pickColor(g.STYLE_FONTCOLOR,"forecolor","000000")})),this.addAction("strokeColor...",(function(){t.menus.pickColor(g.STYLE_STROKECOLOR)})),this.addAction("fillColor...",(function(){t.menus.pickColor(g.STYLE_FILLCOLOR)})),this.addAction("gradientColor...",(function(){t.menus.pickColor(g.STYLE_GRADIENTCOLOR)})),this.addAction("backgroundColor...",(function(){t.menus.pickColor(g.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")})),this.addAction("borderColor...",(function(){t.menus.pickColor(g.STYLE_LABEL_BORDERCOLOR)})),this.addAction("vertical",(function(){t.menus.toggleStyle(g.STYLE_HORIZONTAL,!0)})),this.addAction("shadow",(function(){t.menus.toggleStyle(g.STYLE_SHADOW)})),this.addAction("solid",(function(){n.getModel().beginUpdate();try{n.setCellStyles(g.STYLE_DASHED,null),n.setCellStyles(g.STYLE_DASH_PATTERN,null),t.fireEvent(new A("styleChanged","keys",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],"values",[null,null],"cells",n.getSelectionCells()))}finally{n.getModel().endUpdate()}})),this.addAction("dashed",(function(){n.getModel().beginUpdate();try{n.setCellStyles(g.STYLE_DASHED,"1"),n.setCellStyles(g.STYLE_DASH_PATTERN,null),t.fireEvent(new A("styleChanged","keys",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],"values",["1",null],"cells",n.getSelectionCells()))}finally{n.getModel().endUpdate()}})),this.addAction("dotted",(function(){n.getModel().beginUpdate();try{n.setCellStyles(g.STYLE_DASHED,"1"),n.setCellStyles(g.STYLE_DASH_PATTERN,"1 4"),t.fireEvent(new A("styleChanged","keys",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",n.getSelectionCells()))}finally{n.getModel().endUpdate()}})),this.addAction("sharp",(function(){n.getModel().beginUpdate();try{n.setCellStyles(g.STYLE_ROUNDED,"0"),n.setCellStyles(g.STYLE_CURVED,"0"),t.fireEvent(new A("styleChanged","keys",[g.STYLE_ROUNDED,g.STYLE_CURVED],"values",["0","0"],"cells",n.getSelectionCells()))}finally{n.getModel().endUpdate()}})),this.addAction("rounded",(function(){n.getModel().beginUpdate();try{n.setCellStyles(g.STYLE_ROUNDED,"1"),n.setCellStyles(g.STYLE_CURVED,"0"),t.fireEvent(new A("styleChanged","keys",[g.STYLE_ROUNDED,g.STYLE_CURVED],"values",["1","0"],"cells",n.getSelectionCells()))}finally{n.getModel().endUpdate()}})),this.addAction("toggleRounded",(function(){if(!n.isSelectionEmpty()&&n.isEnabled()){n.getModel().beginUpdate();try{const e=n.getSelectionCells(),i=n.getCurrentCellStyle(e[0]),r="1"==v.getValue(i,g.STYLE_ROUNDED,"0")?"0":"1";n.setCellStyles(g.STYLE_ROUNDED,r),n.setCellStyles(g.STYLE_CURVED,null),t.fireEvent(new A("styleChanged","keys",[g.STYLE_ROUNDED,g.STYLE_CURVED],"values",[r,"0"],"cells",n.getSelectionCells()))}finally{n.getModel().endUpdate()}}})),this.addAction("curved",(function(){n.getModel().beginUpdate();try{n.setCellStyles(g.STYLE_ROUNDED,"0"),n.setCellStyles(g.STYLE_CURVED,"1"),t.fireEvent(new A("styleChanged","keys",[g.STYLE_ROUNDED,g.STYLE_CURVED],"values",["0","1"],"cells",n.getSelectionCells()))}finally{n.getModel().endUpdate()}})),this.addAction("collapsible",(function(){const e=n.view.getState(n.getSelectionCell());let i="1";null!=e&&null!=n.getFoldingImage(e)&&(i="0"),n.setCellStyles("collapsible",i),t.fireEvent(new A("styleChanged","keys",["collapsible"],"values",[i],"cells",n.getSelectionCells()))})),this.addAction("setAsDefaultStyle",(function(){n.isEnabled()&&!n.isSelectionEmpty()&&t.setDefaultStyle(n.getSelectionCell())}),null,null,ue.ctrlKey+"+Shift+D"),this.addAction("clearDefaultStyle",(function(){n.isEnabled()&&t.clearDefaultStyle()}),null,null,ue.ctrlKey+"+Shift+R"),this.addAction("addWaypoint",(function(){const t=n.getSelectionCell();if(null!=t&&n.getModel().isEdge(t)){const i=e.graph.selectionCellsHandler.getHandler(t);if(i instanceof Y){const e=n.view.translate,r=n.view.scale;let o=e.x,s=e.y,l=n.getModel().getParent(t),a=n.getCellGeometry(l);for(;n.getModel().isVertex(l)&&null!=a;)o+=a.x,s+=a.y,l=n.getModel().getParent(l),a=n.getCellGeometry(l);const h=Math.round(n.snap(n.popupMenuHandler.triggerX/r-o)),u=Math.round(n.snap(n.popupMenuHandler.triggerY/r-s));i.addPointAt(i.state,h,u)}}})),this.addAction("removeWaypoint",(function(){const e=t.actions.get("removeWaypoint");null!=e.handler&&e.handler.removePoint(e.handler.state,e.index)})),this.addAction("clearWaypoints",(function(){let t=n.getSelectionCells();if(null!=t){t=n.addAllEdges(t),n.getModel().beginUpdate();try{for(let e=0;e<t.length;e++){const i=t[e];if(n.getModel().isEdge(i)){let t=n.getCellGeometry(i);null!=t&&(t=t.clone(),t.points=null,n.getModel().setGeometry(i,t))}}}finally{n.getModel().endUpdate()}}}),null,null,"Alt+Shift+C"),o=this.addAction("subscript",v.bind(this,(function(){n.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)})),null,null,ue.ctrlKey+"+,"),o=this.addAction("superscript",v.bind(this,(function(){n.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)})),null,null,ue.ctrlKey+"+."),o=this.addAction("indent",v.bind(this,(function(){n.cellEditor.isContentEditing()&&document.execCommand("indent",!1,null)})),null,null,"Shift+Tab"),o=this.addAction("layers",v.bind(this,(function(){null==this.layersWindow?(this.layersWindow=new Xt(t,document.body.offsetWidth-280,120,220,196),this.layersWindow.window.addListener("show",(function(){t.fireEvent(new A("layers"))})),this.layersWindow.window.addListener("hide",(function(){t.fireEvent(new A("layers"))})),this.layersWindow.window.setVisible(!0),t.fireEvent(new A("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())})),null,null,ue.ctrlKey+"+Shift+L"),o.setToggleAction(!0),o.setSelectedCallback(v.bind(this,(function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}))),o=this.addAction("formatPanel",v.bind(this,(function(){t.toggleFormatPanel()})),null,null,ue.ctrlKey+"+Shift+P"),o.setToggleAction(!0),o.setSelectedCallback(v.bind(this,(function(){return t.formatWidth>0}))),o=this.addAction("outline",v.bind(this,(function(){null==this.outlineWindow?(this.outlineWindow=new Zt(t,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",(function(){t.fireEvent(new A("outline"))})),this.outlineWindow.window.addListener("hide",(function(){t.fireEvent(new A("outline"))})),this.outlineWindow.window.setVisible(!0),t.fireEvent(new A("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())})),null,null,ue.ctrlKey+"+Shift+O"),o.setToggleAction(!0),o.setSelectedCallback(v.bind(this,(function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()})))},Kt.prototype.addAction=function(t,e,n,i,r){let o;return"..."==t.substring(t.length-3)?(t=t.substring(0,t.length-3),o=f.get(t)+"..."):o=f.get(t),this.put(t,new qt(o,e,n,i,r))},Kt.prototype.put=function(t,e){return this.actions[t]=e,e},Kt.prototype.get=function(t){return this.actions[t]},v.extend(qt,y),qt.prototype.createFunction=function(t){return t},qt.prototype.setEnabled=function(t){this.enabled!=t&&(this.enabled=t,this.fireEvent(new A("stateChanged")))},qt.prototype.isEnabled=function(){return this.enabled},qt.prototype.setToggleAction=function(t){this.toggleAction=t},qt.prototype.setSelectedCallback=function(t){this.selectedCallback=t},qt.prototype.isSelected=function(){return this.selectedCallback()};var Jt="data:image/png,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",_t={},$t=function(t){return _t[t]};function te(t,e,n,i,r,o){c.call(this,t,e,n,i),this.themes=r||this.defaultThemes,this.currentEdgeStyle=v.clone(this.defaultEdgeStyle),this.currentVertexStyle=v.clone(this.defaultVertexStyle),this.standalone=null!=o&&o;const s=this.baseUrl,l=s.indexOf("//");if(this.domainUrl="",this.domainPathUrl="",l>0){let t=s.indexOf("/",l+2);t>0&&(this.domainUrl=s.substring(0,t)),t=s.lastIndexOf("/"),t>0&&(this.domainPathUrl=s.substring(0,t+1))}if(this.isHtmlLabel=function(t){const e=this.getCurrentCellStyle(t);return null!=e&&("1"==e.html||"wrap"==e[g.STYLE_WHITE_SPACE])},this.edgeMode){const t={point:null,event:null,state:null,handle:null,selected:!1};this.addListener(C.FIRE_MOUSE_EVENT,v.bind(this,(function(e,n){if("mouseDown"==n.getProperty("eventName")&&this.isEnabled()){const e=n.getProperty("event"),o=e.getState();if(!C.isAltDown(e.getEvent())&&null!=o)if(this.model.isEdge(o.cell))t.point=new T(e.getGraphX(),e.getGraphY()),t.selected=this.isCellSelected(o.cell),t.state=o,t.event=e,null!=o.text&&null!=o.text.boundingBox&&v.contains(o.text.boundingBox,e.getGraphX(),e.getGraphY())?t.handle=C.LABEL_HANDLE:null!=(i=this.selectionCellsHandler.getHandler(o.cell))&&null!=i.bends&&i.bends.length>0&&(t.handle=i.getHandleForEvent(e));else if(!this.panningHandler.isActive()){var i;if(null==(i=this.selectionCellsHandler.getHandler(o.cell))||null==i.getHandleForEvent(e)){const t=new w(e.getGraphX(),e.getGraphY());if(t.grow(C.isTouchEvent(e.getEvent())?U.prototype.svgStrokeTolerance-1:U.prototype.svgStrokeTolerance/2),this.isTableCell(o.cell)){const n=this.model.getParent(o.cell),s=this.model.getParent(n);if(v.intersects(t,new w(o.x,o.y-1,o.width,1))&&this.model.getChildAt(s,0)!=n||v.intersects(t,new w(o.x,o.y+o.height-1,o.width,1))||v.intersects(t,new w(o.x-1,o.y,1,o.height))&&this.model.getChildAt(n,0)!=o.cell||v.intersects(t,new w(o.x+o.width-1,o.y,1,o.height))){const t=this.selectionCellsHandler.isHandled(s);this.selectCellForEvent(s,e.getEvent()),null!=(i=this.selectionCellsHandler.getHandler(s))&&null!=(r=i.getHandleForEvent(e))&&(i.start(e.getGraphX(),e.getGraphY(),r),i.blockDelayedSelection=!t,e.consume())}}let n=o;for(;!e.isConsumed()&&null!=n&&(this.isTableCell(n.cell)||this.isTableRow(n.cell)||this.isTable(n.cell));){if(this.isSwimlane(n.cell)){const o=this.getActualStartSize(n.cell);if(((o.x>0||o.width>0)&&v.intersects(t,new w(n.x+o.x-o.width-1+(0==o.x?n.width:0),n.y,1,n.height))||(o.y>0||o.height>0)&&v.intersects(t,new w(n.x,n.y+o.y-o.height-1+(0==o.y?n.height:0),n.width,1)))&&(this.selectCellForEvent(n.cell,e.getEvent()),null!=(i=this.selectionCellsHandler.getHandler(n.cell)))){var r=C.CUSTOM_HANDLE-i.customHandles.length+1;i.start(e.getGraphX(),e.getGraphY(),r),e.consume()}}n=this.view.getState(this.model.getParent(n.cell))}}}}}))),this.addMouseListener({mouseDown:function(){},mouseMove:v.bind(this,(function(e,n){const i=this.selectionCellsHandler.handlers.map;for(const t in i)if(null!=i[t].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!C.isAltDown(n.getEvent())){const e=this.tolerance;if(null!=t.point&&null!=t.state&&null!=t.event){var r=t.state;if(Math.abs(t.point.x-n.getGraphX())>e||Math.abs(t.point.y-n.getGraphY())>e){this.isCellSelected(r.cell)||this.selectCellForEvent(r.cell,n.getEvent());const e=this.selectionCellsHandler.getHandler(r.cell);if(null!=e&&null!=e.bends&&e.bends.length>0){let i=e.getHandleForEvent(t.event);const l=this.view.getEdgeStyle(r),a=l==V.EntityRelation;t.selected||t.handle!=C.LABEL_HANDLE||(i=t.handle),a&&0!=i&&i!=e.bends.length-1&&i!=C.LABEL_HANDLE?!a||null==r.visibleSourceState&&null==r.visibleTargetState||(this.graphHandler.reset(),n.consume()):i!=C.LABEL_HANDLE&&0!=i&&null==r.visibleSourceState&&i!=e.bends.length-1&&null==r.visibleTargetState||(a||i==C.LABEL_HANDLE||(null!=(o=r.absolutePoints)&&(null==l&&null==i||l==V.OrthConnector)&&(i=t.handle,null==i&&((s=new w(t.point.x,t.point.y)).grow(Y.prototype.handleImage.width/2),v.contains(s,o[0].x,o[0].y)?i=0:v.contains(s,o[o.length-1].x,o[o.length-1].y)?i=e.bends.length-1:null!=l&&(2==o.length||3==o.length&&(0==Math.round(o[0].x-o[1].x)&&0==Math.round(o[1].x-o[2].x)||0==Math.round(o[0].y-o[1].y)&&0==Math.round(o[1].y-o[2].y)))?i=2:(i=v.findNearestSegment(r,t.point.x,t.point.y),null==l?i=C.VIRTUAL_HANDLE-i:i+=1))),null==i&&(i=C.VIRTUAL_HANDLE)),e.start(n.getGraphX(),n.getGraphX(),i),t.state=null,t.event=null,t.point=null,t.handle=null,t.selected=!1,n.consume(),this.graphHandler.reset())}}}else if(null!=(r=n.getState())){let t=null;if(this.model.isEdge(r.cell)){var o;if((s=new w(n.getGraphX(),n.getGraphY())).grow(Y.prototype.handleImage.width/2),null!=(o=r.absolutePoints))if(null!=r.text&&null!=r.text.boundingBox&&v.contains(r.text.boundingBox,n.getGraphX(),n.getGraphY()))t="move";else if(v.contains(s,o[0].x,o[0].y)||v.contains(s,o[o.length-1].x,o[o.length-1].y))t="pointer";else if(null!=r.visibleSourceState||null!=r.visibleTargetState){const e=this.view.getEdgeStyle(r);if(t="crosshair",e!=V.EntityRelation&&this.isOrthogonal(r)){const e=v.findNearestSegment(r,n.getGraphX(),n.getGraphY());e<o.length-1&&e>=0&&(t=0==Math.round(o[e].x-o[e+1].x)?"col-resize":"row-resize")}}}else{var s;if((s=new w(n.getGraphX(),n.getGraphY())).grow(U.prototype.svgStrokeTolerance/2),this.isTableCell(r.cell)){const e=this.model.getParent(r.cell),n=this.model.getParent(e);v.intersects(s,new w(r.x-1,r.y,1,r.height))&&this.model.getChildAt(e,0)!=r.cell||v.intersects(s,new w(r.x+r.width-1,r.y,1,r.height))?t="col-resize":(v.intersects(s,new w(r.x,r.y-1,r.width,1))&&this.model.getChildAt(n,0)!=e||v.intersects(s,new w(r.x,r.y+r.height-1,r.width,1)))&&(t="row-resize")}let e=r;for(;null==t&&null!=e&&(this.isTableCell(e.cell)||this.isTableRow(e.cell)||this.isTable(e.cell));){if(this.isSwimlane(e.cell)){const n=this.getActualStartSize(e.cell);(n.x>0||n.width>0)&&v.intersects(s,new w(e.x+n.x-n.width-1+(0==n.x?e.width:0),e.y,1,e.height))?t="col-resize":(n.y>0||n.height>0)&&v.intersects(s,new w(e.x,e.y+n.y-n.height-1+(0==n.y?e.height:0),e.width,1))&&(t="row-resize")}e=this.view.getState(this.model.getParent(e.cell))}}null!=t&&r.setCursor(t)}}})),mouseUp:v.bind(this,(function(){t.state=null,t.event=null,t.point=null,t.handle=null}))})}if(this.cellRenderer.getLabelValue=function(t){let e=W.prototype.getLabelValue.apply(this,arguments);return t.view.graph.isHtmlLabel(t.cell)&&(e=1!=t.style.html?v.htmlEntities(e,!1):t.view.graph.sanitizeHtml(e)),e},void 0!==dt){this.setConnectable(!0),this.setDropEnabled(!0),this.setPanning(!0),this.setTooltips(!0),this.setAllowLoops(!0),this.allowAutoPanning=!0,this.resetEdgesOnConnect=!1,this.constrainChildren=!1,this.constrainRelativeChildren=!0,this.graphHandler.scrollOnMove=!1,this.graphHandler.scaleGrid=!0,this.connectionHandler.setCreateTarget(!1),this.connectionHandler.insertBeforeSource=!0,this.connectionHandler.isValidSource=function(){return!1},this.alternateEdgeStyle="vertical",null==i&&this.loadStylesheet();const t=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){let e=t.apply(this,arguments);if(this.graph.pageVisible){const t=[],n=this.graph.pageFormat,i=this.graph.pageScale,r=n.width*i,o=n.height*i,s=this.graph.view.translate,l=this.graph.view.scale,a=this.graph.getPageLayout();for(let e=0;e<a.width;e++)t.push(new w(((a.x+e)*r+s.x)*l,(a.y*o+s.y)*l,r*l,o*l));for(let e=1;e<a.height;e++)t.push(new w((a.x*r+s.x)*l,((a.y+e)*o+s.y)*l,r*l,o*l));e=t.concat(e)}return e},j.prototype.dragElementZIndex=b.prototype.zIndex,Q.prototype.getGuideColor=function(t){return null==t.cell?"#ffa500":g.GUIDE_COLOR},this.graphHandler.createPreviewShape=function(){return this.previewColor="#000000"==this.graph.background?"#ffffff":R.prototype.previewColor,R.prototype.createPreviewShape.apply(this,arguments)};const e=this.graphHandler.getCells;this.graphHandler.getCells=function(){const t=e.apply(this,arguments),n=new at,i=[];for(let e=0;e<t.length;e++){const r=this.graph.isTableRow(t[e])&&this.graph.isCellSelected(t[e])?t[e]:this.graph.getCompositeParent(t[e]);null==r||n.get(r)||(n.put(r,!0),i.push(r))}return i};const n=this.graphHandler.start;this.graphHandler.start=function(t){t=this.graph.getCompositeParent(t),n.apply(this,arguments)},this.connectionHandler.createTargetVertex=function(t,e){return e=this.graph.getCompositeParent(e),O.prototype.createTargetVertex.apply(this,arguments)};const r=new G(this);this.getRubberband=function(){return r};let o=(new Date).getTime(),s=0;const l=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){const t=this.currentState;l.apply(this,arguments),t!=this.currentState?(o=(new Date).getTime(),s=0):s=(new Date).getTime()-o};const a=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(t){return null!=this.currentState&&t.getState()==this.currentState&&s>2e3||(null==this.currentState||"0"!=v.getValue(this.currentState.style,"outlineConnect","1"))&&a.apply(this,arguments)};const h=this.isToggleEvent;this.isToggleEvent=function(t){return h.apply(this,arguments)||!E.IS_CHROMEOS&&C.isShiftDown(t)};const u=r.isForceRubberbandEvent;r.isForceRubberbandEvent=function(t){return u.apply(this,arguments)&&!C.isShiftDown(t.getEvent())&&!C.isControlDown(t.getEvent())||E.IS_CHROMEOS&&C.isShiftDown(t.getEvent())||v.hasScrollbars(this.graph.container)&&E.IS_FF&&E.IS_WIN&&null==t.getState()&&C.isTouchEvent(t.getEvent())};let d=null;this.panningHandler.addListener(C.PAN_START,v.bind(this,(function(){this.isEnabled()&&(d=this.container.style.cursor,this.container.style.cursor="move")}))),this.panningHandler.addListener(C.PAN_END,v.bind(this,(function(){this.isEnabled()&&(this.container.style.cursor=d)}))),this.popupMenuHandler.autoExpand=!0,this.popupMenuHandler.isSelectOnPopup=function(t){return C.isMouseEvent(t.getEvent())};const c=this.click;this.click=function(t){const e=null==t.state&&null!=t.sourceState&&this.isCellLocked(t.sourceState.cell);if(this.isEnabled()&&!e||t.isConsumed())return c.apply(this,arguments);{const n=e?t.sourceState.cell:t.getCell();if(null!=n){const t=this.getClickableLinkForCell(n);null!=t&&(this.isCustomLink(t)?this.customLinkClicked(t):this.openLink(t))}this.isEnabled()&&e&&this.clearSelection()}},this.tooltipHandler.getStateForEvent=function(t){return t.sourceState},this.getCursorForMouseEvent=function(t){const e=null==t.state&&null!=t.sourceState&&this.isCellLocked(t.sourceState.cell);return this.getCursorForCell(e?t.sourceState.cell:t.getCell())};const p=this.getCursorForCell;this.getCursorForCell=function(t){if(!this.isEnabled()||this.isCellLocked(t)){if(null!=this.getClickableLinkForCell(t))return"pointer";if(this.isCellLocked(t))return"default"}return p.apply(this,arguments)},this.selectRegion=function(t,e){const n=this.getAllCells(t.x,t.y,t.width,t.height);return this.selectCellsForEvent(n,e),n},this.getAllCells=function(t,e,n,i,r,o){if(o=null!=o?o:[],n>0||i>0){const s=this.getModel(),l=t+n,a=e+i;if(null==r&&null==(r=this.getCurrentRoot())&&(r=s.getRoot()),null!=r){const h=s.getChildCount(r);for(let u=0;u<h;u++){const h=s.getChildAt(r,u),d=this.view.getState(h);if(null!=d&&this.isCellVisible(h)&&"1"!=v.getValue(d.style,"locked","0")){const r=v.getValue(d.style,g.STYLE_ROTATION)||0;let u=d;0!=r&&(u=v.getBoundingBox(u,r)),(s.isEdge(h)||s.isVertex(h))&&u.x>=t&&u.y+u.height<=a&&u.y>=e&&u.x+u.width<=l&&o.push(h),this.getAllCells(t,e,n,i,h,o)}}}}return o};const m=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(t){return!this.graph.isCellSelected(t)&&m.apply(this,arguments)},this.isCellLocked=function(t){let e=this.view.getState(t);for(;null!=e;){if("1"==v.getValue(e.style,"locked","0"))return!0;e=this.view.getState(this.model.getParent(e.cell))}return!1};let x=null;this.addListener(C.FIRE_MOUSE_EVENT,v.bind(this,(function(t,e){if("mouseDown"==e.getProperty("eventName")){const t=e.getProperty("event").getState();x=null==t||this.isSelectionEmpty()||this.isCellSelected(t.cell)?null:this.getSelectionCells()}}))),this.addListener(C.TAP_AND_HOLD,v.bind(this,(function(t,e){if(!C.isMultiTouchEvent(e)){const t=e.getProperty("event"),n=e.getProperty("cell");if(null==n){const e=v.convertPoint(this.container,C.getClientX(t),C.getClientY(t));r.start(e.x,e.y)}else null!=x?this.addSelectionCells(x):this.getSelectionCount()>1&&this.isCellSelected(n)&&this.removeSelectionCell(n);x=null,e.consume()}}))),this.connectionHandler.selectCells=function(t,e){this.graph.setSelectionCell(e||t)},this.connectionHandler.constraintHandler.isStateIgnored=function(t,e){const n=t.view.graph;return e&&(n.isCellSelected(t.cell)||n.isTableRow(t.cell)&&n.selectionCellsHandler.isHandled(n.model.getParent(t.cell)))},this.selectionModel.addListener(C.CHANGE,v.bind(this,(function(){const t=this.connectionHandler.constraintHandler;null!=t.currentFocus&&t.isStateIgnored(t.currentFocus,!0)&&(t.currentFocus=null,t.constraints=null,t.destroyIcons()),t.destroyFocusHighlight()}))),te.touchStyle&&this.initTouch();const y=this.updateMouseEvent;this.updateMouseEvent=function(t){return null!=(t=y.apply(this,arguments)).state&&this.isCellLocked(t.getCell())&&(t.state=null),t}}this.currentTranslate=new T(0,0)}function ee(t){this.graph=t,this.init()}function ne(t){X.call(this,t)}function ie(t,e){this.editorUi=t,this.container=e,this.palettes=new Object,this.taglist=new Object,this.showTooltips=!0,this.graph=t.createTemporaryGraph(this.editorUi.editor.graph.getStylesheet()),this.graph.cellRenderer.minSvgStrokeWidth=this.minThumbStrokeWidth,this.graph.cellRenderer.antiAlias=this.thumbAntiAlias,this.graph.container.style.visibility="hidden",this.graph.foldingEnabled=!1,document.body.appendChild(this.graph.container),this.pointerUpHandler=v.bind(this,(()=>{this.showTooltips=!0})),C.addListener(document,E.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerDownHandler=v.bind(this,(()=>{this.showTooltips=!1,this.hideTooltip()})),C.addListener(document,E.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),this.pointerMoveHandler=v.bind(this,(function(t){let e=C.getSource(t);for(;null!=e;){if(e==this.currentElt)return;e=e.parentNode}this.hideTooltip()})),C.addListener(document,E.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerOutHandler=v.bind(this,(function(t){null==t.toElement&&null==t.relatedTarget&&this.hideTooltip()})),C.addListener(document,E.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),C.addListener(e,"scroll",v.bind(this,(function(){this.showTooltips=!0,this.hideTooltip()}))),this.init()}function re(t){this.editorUi=t,this.menus=new Object,this.init()}function oe(t,e){this.editorUi=t,this.container=e}function se(t,e){y.call(this),this.funct=t,this.enabled=null==e||e}function le(t,e){this.editorUi=t,this.container=e,this.staticElements=[],this.init(),this.gestureHandler=v.bind(this,(function(t){null!=this.editorUi.currentMenu&&C.getSource(t)!=this.editorUi.currentMenu.div&&this.hideMenu()})),C.addGestureListeners(document,this.gestureHandler)}function ae(t,e,n,i){y.call(this),this.destroyFunctions=[],this.editor=t||new ue,this.container=e||document.body;const r=this.editor.graph;if(r.lightbox=n,r.useCssTransforms&&(this.lazyZoomDelay=0),b.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=",b.prototype.showMenu=function(){e.appendChild(this.div),v.fit(this.div)},b.prototype.showSubmenu=function(t,n){if(null!=n.div){n.div.style.left=t.div.offsetLeft+n.offsetLeft+n.offsetWidth-1+"px",n.div.style.top=t.div.offsetTop+n.offsetTop+"px",e.appendChild(n.div);const i=parseInt(n.div.offsetLeft),r=parseInt(n.div.offsetWidth),o=v.getDocumentScrollOrigin(document),s=document.body,l=document.documentElement;i+r>o.x+(s.clientWidth||l.clientWidth)&&(n.div.style.left=Math.max(0,t.div.offsetLeft-r+(E.IS_IE?6:-6))+"px"),v.fit(n.div)}},this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,r.isEnabled=function(){return!1},r.panningHandler.isForcePanningEvent=function(t){return!C.isPopupTrigger(t.getEvent())}),this.actions=new Kt(this),this.menus=this.createMenus(),!r.standalone){this.createDivs(),this.createUi(),this.refresh(),i&&i(this.exitButton);const e=v.bind(this,(function(t){return null==t&&(t=window.event),r.isEditing()||null!=t&&this.isSelectionAllowed(t)}));if(this.container==document.body&&(this.menubarContainer.onselectstart=e,this.menubarContainer.onmousedown=e,this.toolbarContainer.onselectstart=e,this.toolbarContainer.onmousedown=e,this.diagramContainer.onselectstart=e,this.diagramContainer.onmousedown=e,this.sidebarContainer.onselectstart=e,this.sidebarContainer.onmousedown=e,this.formatContainer.onselectstart=e,this.formatContainer.onmousedown=e,this.footerContainer.onselectstart=e,this.footerContainer.onmousedown=e,null!=this.tabContainer&&(this.tabContainer.onselectstart=e)),!this.editor.chromeless||this.editor.editable){const t=function(t){if(null!=t){let e=C.getSource(t);if("A"==e.nodeName)for(;null!=e;){if("geHint"==e.className)return!0;e=e.parentNode}}return e(t)};E.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?C.addListener(this.diagramContainer,"contextmenu",t):this.diagramContainer.oncontextmenu=t}else r.panningHandler.usePopupTrigger=!1;if(r.init(this.diagramContainer),null!=r.view.getDrawPane()){const t=r.view.getDrawPane().ownerSVGElement;null!=t&&(t.style.position="absolute")}if(this.hoverIcons=this.createHoverIcons(),null!=r.graphHandler){const t=r.graphHandler.start;r.graphHandler.start=function(){null!=o.hoverIcons&&o.hoverIcons.reset(),t.apply(this,arguments)}}C.addListener(this.diagramContainer,"mousemove",v.bind(this,(function(t){const e=v.getOffset(this.diagramContainer);C.getClientX(t)-e.x-this.diagramContainer.clientWidth>0||C.getClientY(t)-e.y-this.diagramContainer.clientHeight>0?this.diagramContainer.setAttribute("title",f.get("panTooltip")):this.diagramContainer.removeAttribute("title")})));let n=!1;const l=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(){return n||l.apply(this,arguments)},this.keydownHandler=v.bind(this,(function(t){32!=t.which||r.isEditing()?C.isConsumed(t)||27!=t.keyCode||this.hideDialog(null,!0):(n=!0,this.hoverIcons.reset(),r.container.style.cursor="move",r.isEditing()||C.getSource(t)!=r.container||C.consume(t))})),C.addListener(document,"keydown",this.keydownHandler),this.keyupHandler=v.bind(this,(function(){r.container.style.cursor="",n=!1})),C.addListener(document,"keyup",this.keyupHandler);const a=r.panningHandler.isForcePanningEvent;r.panningHandler.isForcePanningEvent=function(t){return a.apply(this,arguments)||n||C.isMouseEvent(t.getEvent())&&(this.usePopupTrigger||!C.isPopupTrigger(t.getEvent()))&&(!C.isControlDown(t.getEvent())&&C.isRightMouseButton(t.getEvent())||C.isMiddleMouseButton(t.getEvent()))};const h=r.cellEditor.isStopEditingEvent;r.cellEditor.isStopEditingEvent=function(t){return h.apply(this,arguments)||13==t.keyCode&&(!E.IS_SF&&C.isControlDown(t)||E.IS_MAC&&C.isMetaDown(t)||E.IS_SF&&C.isShiftDown(t))};const u=r.isZoomWheelEvent;r.isZoomWheelEvent=function(){return n||u.apply(this,arguments)};let d=!1,c=null,p=null,m=null;const x=v.bind(this,(function(){if(null!=this.toolbar&&d!=r.cellEditor.isContentEditing()){let t=this.toolbar.container.firstChild;const e=[];for(;null!=t;){const n=t.nextSibling;v.indexOf(this.toolbar.staticElements,t)<0&&(t.parentNode.removeChild(t),e.push(t)),t=n}const n=this.toolbar.fontMenu,i=this.toolbar.sizeMenu;if(null==m)this.toolbar.createTextToolbar();else{for(let t=0;t<m.length;t++)this.toolbar.container.appendChild(m[t]);this.toolbar.fontMenu=c,this.toolbar.sizeMenu=p}d=r.cellEditor.isContentEditing(),c=n,p=i,m=e}}));var o=this;const y=r.cellEditor.startEditing;r.cellEditor.startEditing=function(){if(y.apply(this,arguments),x(),r.cellEditor.isContentEditing()){let t=!1;const e=function(){t||(t=!0,window.setTimeout((function(){let e=r.getSelectedElement();for(;null!=e&&e.nodeType!=g.NODETYPE_ELEMENT;)e=e.parentNode;if(null!=e){const t=v.getCurrentStyle(e);if(null!=t&&null!=o.toolbar){let e=t.fontFamily;"'"==e.charAt(0)&&(e=e.substring(1)),"'"==e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),o.toolbar.setFontName(e),o.toolbar.setFontSize(parseInt(t.fontSize))}}t=!1}),0))};C.addListener(r.cellEditor.textarea,"input",e),C.addListener(r.cellEditor.textarea,"touchend",e),C.addListener(r.cellEditor.textarea,"mouseup",e),C.addListener(r.cellEditor.textarea,"keyup",e),e()}};const w=r.cellEditor.stopEditing;if(r.cellEditor.stopEditing=function(){try{w.apply(this,arguments),x()}catch(t){o.handleError(t)}},r.container.setAttribute("tabindex","0"),r.container.style.cursor="default",window.self===window.top&&null!=r.container.parentNode)try{r.container.focus()}catch(t){}const S=r.fireMouseEvent;r.fireMouseEvent=function(t){t==C.MOUSE_DOWN&&this.container.focus(),S.apply(this,arguments)},r.popupMenuHandler.autoExpand=!0,null!=this.menus&&(r.popupMenuHandler.factoryMethod=v.bind(this,(function(t,e,n){this.menus.createPopupMenu(t,e,n)}))),C.addGestureListeners(document,v.bind(this,(function(){r.popupMenuHandler.hideMenu()}))),this.keyHandler=this.createKeyHandler(t),this.getKeyHandler=function(){return this.keyHandler};const b=["rounded","shadow","glass","dashed","dashPattern","comic","labelBackgroundColor"],T=["shape","edgeStyle","curved","rounded","elbow","comic","jumpStyle","jumpSize"];this.setDefaultStyle=function(t){try{const n=r.view.getState(t);if(null!=n){const i=t.clone();i.style="";const o=r.getCellStyle(i),s=[],l=[];for(var e in n.style)o[e]!=n.style[e]&&(s.push(n.style[e]),l.push(e));const a=r.getModel().getStyle(n.cell),h=null!=a?a.split(";"):[];for(let t=0;t<h.length;t++){const n=h[t],i=n.indexOf("=");if(i>=0){e=n.substring(0,i);const t=n.substring(i+1);null!=o[e]&&"none"==t&&(s.push(t),l.push(e))}}r.getModel().isEdge(n.cell)?r.currentEdgeStyle={}:r.currentVertexStyle={},this.fireEvent(new A("styleChanged","keys",l,"values",s,"cells",[n.cell]))}}catch(t){this.handleError(t)}},this.clearDefaultStyle=function(){r.currentEdgeStyle=v.clone(r.defaultEdgeStyle),r.currentVertexStyle=v.clone(r.defaultVertexStyle),this.fireEvent(new A("styleChanged","keys",[],"values",[],"cells",[]))};const L=["fontFamily","fontSize","fontColor"],I=["edgeStyle","startArrow","startFill","startSize","endArrow","endFill","endSize"],M=[["startArrow","startFill","startSize","sourcePerimeterSpacing","endArrow","endFill","endSize","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor"],L,["opacity"],["align"],["html"]];for(var s=0;s<M.length;s++)for(let t=0;t<M[s].length;t++)b.push(M[s][t]);for(s=0;s<T.length;s++)v.indexOf(b,T[s])<0&&b.push(T[s]);const R=function(t,e){const n=r.getModel();n.beginUpdate();try{for(let l=0;l<t.length;l++){const a=t[l];var i;if(e)i=["fontSize","fontFamily","fontColor"];else{const t=n.getStyle(a),e=null!=t?t.split(";"):[];i=b.slice();for(var o=0;o<e.length;o++){const t=e[o],n=t.indexOf("=");if(n>=0){var s=t.substring(0,n);const e=v.indexOf(i,s);e>=0&&i.splice(e,1);for(let t=0;t<M.length;t++){const e=M[t];if(v.indexOf(e,s)>=0)for(let t=0;t<e.length;t++){const n=v.indexOf(i,e[t]);n>=0&&i.splice(n,1)}}}}}const h=n.isEdge(a),u=h?r.currentEdgeStyle:r.currentVertexStyle;let d=n.getStyle(a);for(o=0;o<i.length;o++){const t=u[s=i[o]];null==t||"shape"==s&&!h||(!h||v.indexOf(T,s)<0)&&(d=v.setStyle(d,s,t))}n.setStyle(a,d)}}finally{n.endUpdate()}};if(r.addListener("cellsInserted",(function(t,e){R(e.getProperty("cells"))})),r.addListener("textInserted",(function(t,e){R(e.getProperty("cells"),!0)})),r.connectionHandler.addListener(C.CONNECT,(function(t,e){const n=[e.getProperty("cell")];e.getProperty("terminalInserted")&&n.push(e.getProperty("terminal")),R(n)})),this.addListener("styleChanged",v.bind(this,(function(t,e){const n=e.getProperty("cells");let i=!1,o=!1;if(n.length>0)for(var s=0;s<n.length&&(i=r.getModel().isVertex(n[s])||i,o=r.getModel().isEdge(n[s])||o,!o||!i);s++);else i=!0,o=!0;const l=e.getProperty("keys"),a=e.getProperty("values");for(s=0;s<l.length;s++){const t=v.indexOf(L,l[s])>=0;("strokeColor"!=l[s]||null!=a[s]&&"none"!=a[s])&&(v.indexOf(T,l[s])>=0?o||v.indexOf(I,l[s])>=0?null==a[s]?delete r.currentEdgeStyle[l[s]]:r.currentEdgeStyle[l[s]]=a[s]:i&&v.indexOf(b,l[s])>=0&&(null==a[s]?delete r.currentVertexStyle[l[s]]:r.currentVertexStyle[l[s]]=a[s]):v.indexOf(b,l[s])>=0&&((i||t)&&(null==a[s]?delete r.currentVertexStyle[l[s]]:r.currentVertexStyle[l[s]]=a[s]),(o||t||v.indexOf(I,l[s])>=0)&&(null==a[s]?delete r.currentEdgeStyle[l[s]]:r.currentEdgeStyle[l[s]]=a[s])))}if(null!=this.toolbar){if(this.toolbar.setFontName(r.currentVertexStyle.fontFamily||re.prototype.defaultFont),this.toolbar.setFontSize(r.currentVertexStyle.fontSize||re.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu){const t=this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0];"orthogonalEdgeStyle"==r.currentEdgeStyle.edgeStyle&&"1"==r.currentEdgeStyle.curved?t.className="geSprite geSprite-curved":"straight"==r.currentEdgeStyle.edgeStyle||"none"==r.currentEdgeStyle.edgeStyle||null==r.currentEdgeStyle.edgeStyle?t.className="geSprite geSprite-straight":"entityRelationEdgeStyle"==r.currentEdgeStyle.edgeStyle?t.className="geSprite geSprite-entity":"elbowEdgeStyle"==r.currentEdgeStyle.edgeStyle?t.className="geSprite geSprite-"+("vertical"==r.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==r.currentEdgeStyle.edgeStyle?t.className="geSprite geSprite-"+("vertical"==r.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):t.className="geSprite geSprite-orthogonal"}if(null!=this.toolbar.edgeShapeMenu){const t=this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0];"link"==r.currentEdgeStyle.shape?t.className="geSprite geSprite-linkedge":"flexArrow"==r.currentEdgeStyle.shape?t.className="geSprite geSprite-arrow":"arrow"==r.currentEdgeStyle.shape?t.className="geSprite geSprite-simplearrow":t.className="geSprite geSprite-connection"}null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",r.currentEdgeStyle.shape,r.currentEdgeStyle[g.STYLE_STARTARROW],v.getValue(r.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",r.currentEdgeStyle.shape,r.currentEdgeStyle[g.STYLE_ENDARROW],v.getValue(r.currentEdgeStyle,"endFill","1")))}}))),null!=this.toolbar){const t=v.bind(this,(function(){let t=r.currentVertexStyle.fontFamily||"Helvetica",e=String(r.currentVertexStyle.fontSize||"12");const n=r.getView().getState(r.getSelectionCell());null!=n&&(t=n.style[g.STYLE_FONTFAMILY]||t,e=n.style[g.STYLE_FONTSIZE]||e,t.length>10&&(t=t.substring(0,8)+"...")),this.toolbar.setFontName(t),this.toolbar.setFontSize(e)}));r.getSelectionModel().addListener(C.CHANGE,t),r.getModel().addListener(C.CHANGE,t)}r.addListener(C.CELLS_ADDED,(function(t,e){const n=e.getProperty("cells"),i=e.getProperty("parent");r.getModel().isLayer(i)&&!r.isCellVisible(i)&&null!=n&&n.length>0&&r.getModel().setVisible(i,!0)})),this.gestureHandler=v.bind(this,(function(t){null!=this.currentMenu&&C.getSource(t)!=this.currentMenu.div&&this.hideCurrentMenu()})),C.addGestureListeners(document,this.gestureHandler),this.resizeHandler=v.bind(this,(function(){window.setTimeout(v.bind(this,(function(){null!=this.editor.graph&&this.refresh()})),0)})),C.addListener(window,"resize",this.resizeHandler),this.orientationChangeHandler=v.bind(this,(function(){this.refresh()})),C.addListener(window,"orientationchange",this.orientationChangeHandler),E.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=v.bind(this,(function(){window.scrollTo(0,0)})),C.addListener(window,"scroll",this.scrollHandler)),this.editor.addListener("resetGraphView",v.bind(this,(function(){this.resetScrollbars()}))),this.addListener("gridEnabledChanged",v.bind(this,(function(){r.view.validateBackground()}))),this.addListener("backgroundColorChanged",v.bind(this,(function(){r.view.validateBackground()}))),r.addListener("gridSizeChanged",v.bind(this,(function(){r.isGridEnabled()&&r.view.validateBackground()}))),this.editor.resetGraph()}this.init(),r.standalone||this.open()}function he(t,e,n,i,r){this.ui=t,this.color=e,this.previousColor=e,this.image=n,this.previousImage=n,this.format=i,this.previousFormat=i,this.pageScale=r,this.previousPageScale=r,this.ignoreColor=!1,this.ignoreImage=!1}function ue(t,e,n,i,r){y.call(this),this.chromeless=null!=t?t:this.chromeless,this.initStencilRegistry(),this.graph=i||this.createGraph(e,n),this.editable=null!=r?r:!t,this.undoManager=this.createUndoManager(),this.status="",this.getOrCreateFilename=function(){return this.filename||f.get("drawing",[ue.pageCounter])+".xml"},this.getFilename=function(){return this.filename},this.setStatus=t=>{this.status=t,this.fireEvent(new A("statusChanged"))},this.getStatus=function(){return this.status},this.graphChangeListener=function(t,e){const n=null!=e?e.getProperty("edit"):null;null!=n&&n.ignoreEdit||this.setModified(!0)},this.graph.getModel().addListener(C.CHANGE,v.bind(this,(function(){this.graphChangeListener.apply(this,arguments)}))),this.graph.resetViewOnRootChange=!1,this.init()}function de(t,e,n,i,r,o,s,l,a,h,u){let d=0;E.IS_VML&&(null==document.documentMode||document.documentMode<8)&&(d=80);let c=n+=d,p=i+=d;const g=v.getDocumentSize();null!=window.innerHeight&&(g.height=window.innerHeight);let m=g.height,x=Math.max(1,Math.round((g.width-n-64)/2)),y=Math.max(1,Math.round((m-i-t.footerHeight)/3));E.IS_QUIRKS||(e.style.maxHeight="100%"),n=null!=document.body?Math.min(n,document.body.scrollWidth-64):n,i=Math.min(i,m-64),t.dialogs.length>0&&(this.zIndex+=2*t.dialogs.length),null==this.bg&&(this.bg=t.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=de.backdropColor,this.bg.style.height=m+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,v.setOpacity(this.bg,this.bgOpacity),E.IS_QUIRKS&&new S(this.bg));const w=v.getDocumentScrollOrigin(document);this.bg.style.left=w.x+"px",this.bg.style.top=w.y+"px",x+=w.x,y+=w.y,r&&document.body.appendChild(this.bg);const b=t.createDiv(a?"geTransDialog":"geDialog"),T=this.getPosition(x,y,n,i);if(x=T.x,y=T.y,b.style.width=n+"px",b.style.height=i+"px",b.style.left=x+"px",b.style.top=y+"px",b.style.zIndex=this.zIndex,b.appendChild(e),document.body.appendChild(b),!l&&e.clientHeight>b.clientHeight-64&&(e.style.overflowY="auto"),o){const e=document.createElement("img");if(e.setAttribute("src",de.prototype.closeImage),e.setAttribute("title",f.get("close")),e.className="geDialogClose",e.style.top=y+14+"px",e.style.left=x+n+38-d+"px",e.style.zIndex=this.zIndex,C.addListener(e,"click",v.bind(this,(function(){t.hideDialog(!0)}))),document.body.appendChild(e),this.dialogImg=e,!u){let e=!1;C.addGestureListeners(this.bg,v.bind(this,(function(){e=!0})),null,v.bind(this,(function(){e&&(t.hideDialog(!0),e=!1)})))}}this.resizeListener=v.bind(this,(function(){if(null!=h){const t=h();null!=t&&(c=n=t.w,p=i=t.h)}const r=v.getDocumentSize();m=r.height,this.bg.style.height=m+"px",x=Math.max(1,Math.round((r.width-n-64)/2)),y=Math.max(1,Math.round((m-i-t.footerHeight)/3)),n=null!=document.body?Math.min(c,document.body.scrollWidth-64):c,i=Math.min(p,m-64);const o=this.getPosition(x,y,n,i);x=o.x,y=o.y,b.style.left=x+"px",b.style.top=y+"px",b.style.width=n+"px",b.style.height=i+"px",!l&&e.clientHeight>b.clientHeight-64&&(e.style.overflowY="auto"),null!=this.dialogImg&&(this.dialogImg.style.top=y+14+"px",this.dialogImg.style.left=x+n+38-d+"px")})),C.addListener(window,"resize",this.resizeListener),this.onDialogClose=s,this.container=b,t.editor.fireEvent(new A("showDialog"))}function ce(t,e,n,i,r,o,s,l,a,h,u){a=null==a||a;const d=document.createElement("div");if(d.style.textAlign="center",null!=e){const t=document.createElement("div");t.style.padding="0px",t.style.margin="0px",t.style.fontSize="18px",t.style.paddingBottom="16px",t.style.marginBottom="10px",t.style.borderBottom="1px solid #c0c0c0",t.style.color="gray",t.style.whiteSpace="nowrap",t.style.textOverflow="ellipsis",t.style.overflow="hidden",v.write(t,e),t.setAttribute("title",e),d.appendChild(t)}const c=document.createElement("div");c.style.lineHeight="1.2em",c.style.padding="6px",c.innerHTML=n,d.appendChild(c);const p=document.createElement("div");if(p.style.marginTop="12px",p.style.textAlign="center",null!=o){const e=v.button(f.get("tryAgain"),(function(){t.hideDialog(),o()}));e.className="geBtn",p.appendChild(e),p.style.textAlign="center"}if(null!=h){const t=v.button(h,(function(){null!=u&&u()}));t.className="geBtn",p.appendChild(t)}const g=v.button(i,(function(){a&&t.hideDialog(),null!=r&&r()}));if(g.className="geBtn",p.appendChild(g),null!=s){const e=v.button(s,(function(){a&&t.hideDialog(),null!=l&&l()}));e.className="geBtn gePrimaryBtn",p.appendChild(e)}this.init=function(){g.focus()},d.appendChild(p),this.container=d}function pe(t){const e=t.editor.graph;let n,i;const r=document.createElement("table");r.style.width="100%",r.style.height="100%";const o=document.createElement("tbody");n=document.createElement("tr"),i=document.createElement("td"),i.style.verticalAlign="top",i.style.fontSize="10pt",v.write(i,f.get("paperSize")+":"),n.appendChild(i),i=document.createElement("td"),i.style.verticalAlign="top",i.style.fontSize="10pt";const s=pe.addPageFormatPanel(i,"pagesetupdialog",e.pageFormat);n.appendChild(i),o.appendChild(n),n=document.createElement("tr"),i=document.createElement("td"),v.write(i,f.get("background")+":"),n.appendChild(i),i=document.createElement("td"),i.style.whiteSpace="nowrap",document.createElement("input").setAttribute("type","text");const l=document.createElement("button");l.style.width="18px",l.style.height="18px",l.style.marginRight="20px",l.style.backgroundPosition="center center",l.style.backgroundRepeat="no-repeat";let a=e.background;function h(){null==a||a==g.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+de.prototype.noColorImage+"')"):(l.style.backgroundColor=a,l.style.backgroundImage="")}h(),C.addListener(l,"click",(function(e){t.pickColor(a||"none",(function(t){a=t,h()})),C.consume(e)})),i.appendChild(l),v.write(i,f.get("gridSize")+":");const u=document.createElement("input");u.setAttribute("type","number"),u.setAttribute("min","0"),u.style.width="40px",u.style.marginLeft="6px",u.value=e.getGridSize(),i.appendChild(u),C.addListener(u,"change",(function(){const t=parseInt(u.value);u.value=Math.max(1,isNaN(t)?e.getGridSize():t)})),n.appendChild(i),o.appendChild(n),n=document.createElement("tr"),i=document.createElement("td"),v.write(i,f.get("image")+":"),n.appendChild(i),i=document.createElement("td");const d=document.createElement("a");d.style.textDecoration="underline",d.style.cursor="pointer",d.style.color="#a0a0a0";let c=e.backgroundImage;function p(){null==c?(d.removeAttribute("title"),d.style.fontSize="",d.innerHTML=v.htmlEntities(f.get("change"))+"..."):(d.setAttribute("title",c.src),d.style.fontSize="11px",d.innerHTML=v.htmlEntities(c.src.substring(0,42))+"...")}C.addListener(d,"click",(function(e){t.showBackgroundImageDialog((function(t,e){e||(c=t,p())}),c),C.consume(e)})),p(),i.appendChild(d),n.appendChild(i),o.appendChild(n),n=document.createElement("tr"),i=document.createElement("td"),i.colSpan=2,i.style.paddingTop="16px",i.setAttribute("align","right");const m=v.button(f.get("cancel"),(function(){t.hideDialog()}));m.className="geBtn",t.editor.cancelFirst&&i.appendChild(m);const x=v.button(f.get("apply"),(function(){t.hideDialog();const n=parseInt(u.value);isNaN(n)||e.gridSize===n||e.setGridSize(n);const i=new he(t,a,c,s.get());i.ignoreColor=e.background==a;const r=null!=e.backgroundImage?e.backgroundImage.src:null,o=null!=c?c.src:null;i.ignoreImage=r===o,e.pageFormat.width==i.previousFormat.width&&e.pageFormat.height==i.previousFormat.height&&i.ignoreColor&&i.ignoreImage||e.model.execute(i)}));x.className="geBtn gePrimaryBtn",i.appendChild(x),t.editor.cancelFirst||i.appendChild(m),n.appendChild(i),o.appendChild(n),r.appendChild(o),this.container=r}function ge(t,e,n,i,r,o,s,l,a,h,u,d){let c,p;a=null==a||a;const g=document.createElement("table"),m=document.createElement("tbody");g.style.marginTop="8px",c=document.createElement("tr"),p=document.createElement("td"),p.style.whiteSpace="nowrap",p.style.fontSize="10pt",p.style.width=u?"80px":"120px",v.write(p,(r||f.get("filename"))+":"),c.appendChild(p);const x=document.createElement("input");x.setAttribute("value",e||""),x.style.marginLeft="4px",x.style.width=null!=d?d+"px":"180px";const y=v.button(n,(function(){(null==o||o(x.value))&&(a&&t.hideDialog(),i(x.value))}));if(y.className="geBtn gePrimaryBtn",this.init=function(){if((null!=r||null==s)&&(x.focus(),E.IS_GC||E.IS_FF||document.documentMode>=5||E.IS_QUIRKS?x.select():document.execCommand("selectAll",!1,null),te.fileSupport)){const t=g.parentNode;if(null!=t){let e=null;C.addListener(t,"dragleave",(function(t){null!=e&&(e.style.backgroundColor="",e=null),t.stopPropagation(),t.preventDefault()})),C.addListener(t,"dragover",v.bind(this,(function(t){null==e&&(!E.IS_IE||document.documentMode>10)&&(e=x,e.style.backgroundColor="#ebf2f9"),t.stopPropagation(),t.preventDefault()}))),C.addListener(t,"drop",v.bind(this,(function(t){null!=e&&(e.style.backgroundColor="",e=null),v.indexOf(t.dataTransfer.types,"text/uri-list")>=0&&(x.value=decodeURIComponent(t.dataTransfer.getData("text/uri-list")),y.click()),t.stopPropagation(),t.preventDefault()})))}}},p=document.createElement("td"),p.style.whiteSpace="nowrap",p.appendChild(x),c.appendChild(p),(null!=r||null==s)&&(m.appendChild(c),null!=u)){if(null!=t.editor.diagramFileTypes){const e=ge.createFileTypes(t,x,t.editor.diagramFileTypes);e.style.marginLeft="6px",e.style.width="74px",p.appendChild(e),x.style.width=null!=d?d-40+"px":"140px"}p.appendChild(ge.createTypeHint(t,x,u))}null!=s&&(c=document.createElement("tr"),p=document.createElement("td"),p.colSpan=2,p.appendChild(s),c.appendChild(p),m.appendChild(c)),c=document.createElement("tr"),p=document.createElement("td"),p.colSpan=2,p.style.paddingTop="20px",p.style.whiteSpace="nowrap",p.setAttribute("align","right");const A=v.button(f.get("cancel"),(function(){t.hideDialog(),null!=h&&h()}));if(A.className="geBtn",t.editor.cancelFirst&&p.appendChild(A),null!=l){const e=v.button(f.get("help"),(function(){t.editor.graph.openLink(l)}));e.className="geBtn",p.appendChild(e)}C.addListener(x,"keypress",(function(t){13==t.keyCode&&y.click()})),p.appendChild(y),t.editor.cancelFirst||p.appendChild(A),c.appendChild(p),m.appendChild(c),g.appendChild(m),this.container=g}function me(t,e){this.editorUi=t,this.container=e}function xe(t,e,n){this.format=t,this.editorUi=e,this.container=n,this.listeners=[]}function ye(t,e,n){xe.call(this,t,e,n),this.init()}function fe(t,e,n){xe.call(this,t,e,n),this.init()}function Ae(t,e,n){xe.call(this,t,e,n),this.init()}function Ce(t,e,n){xe.call(this,t,e,n),this.init()}_t["arrows.xml"]='<shapes name="mxGraph.arrows"><shape name="Arrow Down" h="97.5" w="70" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/></connections><background><path><move x="20" y="0"/><line x="20" y="59"/><line x="0" y="59"/><line x="35" y="97.5"/><line x="70" y="59"/><line x="50" y="59"/><line x="50" y="0"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Arrow Left" h="70" w="97.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="97.5" y="20"/><line x="38.5" y="20"/><line x="38.5" y="0"/><line x="0" y="35"/><line x="38.5" y="70"/><line x="38.5" y="50"/><line x="97.5" y="50"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Arrow Right" h="70" w="97.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="0" y="20"/><line x="59" y="20"/><line x="59" y="0"/><line x="97.5" y="35"/><line x="59" y="70"/><line x="59" y="50"/><line x="0" y="50"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Arrow Up" h="97.5" w="70" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/></connections><background><path><move x="20" y="97.5"/><line x="20" y="38.5"/><line x="0" y="38.5"/><line x="35" y="0"/><line x="70" y="38.5"/><line x="50" y="38.5"/><line x="50" y="97.5"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Bent Left Arrow" h="97" w="97.01" aspect="variable" strokewidth="inherit"><connections><constraint x="0.85" y="1" perimeter="0" name="S"/><constraint x="0" y="0.29" perimeter="0" name="W"/></connections><background><path><move x="68" y="97"/><line x="68" y="48"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="63" y="43"/><line x="38" y="43"/><line x="38" y="56"/><line x="0" y="28"/><line x="38" y="0"/><line x="38" y="13"/><line x="63" y="13"/><arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="97" y="48"/><line x="97" y="97"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Bent Right Arrow" h="97" w="97.01" aspect="variable" strokewidth="inherit"><connections><constraint x="0.15" y="1" perimeter="0" name="S"/><constraint x="1" y="0.29" perimeter="0" name="E"/></connections><background><path><move x="29.01" y="97"/><line x="29.01" y="48"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="34.01" y="43"/><line x="59.01" y="43"/><line x="59.01" y="56"/><line x="97.01" y="28"/><line x="59.01" y="0"/><line x="59.01" y="13"/><line x="34.01" y="13"/><arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="0.01" y="48"/><line x="0.01" y="97"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Bent Up Arrow" h="83.5" w="97" aspect="variable" strokewidth="inherit"><connections><constraint x="0.71" y="0" perimeter="0" name="N"/><constraint x="0" y="0.82" perimeter="0" name="W"/></connections><background><path><move x="0" y="53.5"/><line x="54" y="53.5"/><line x="54" y="23.5"/><line x="42" y="23.5"/><line x="69" y="0"/><line x="97" y="23.5"/><line x="84" y="23.5"/><line x="84" y="83.5"/><line x="0" y="83.5"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Callout Double Arrow" h="97.5" w="50" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/></connections><background><path><move x="15" y="24"/><line x="15" y="19"/><line x="6" y="19"/><line x="25" y="0"/><line x="44" y="19"/><line x="35" y="19"/><line x="35" y="24"/><line x="50" y="24"/><line x="50" y="74"/><line x="35" y="74"/><line x="35" y="79"/><line x="44" y="79"/><line x="25" y="97.5"/><line x="6" y="79"/><line x="15" y="79"/><line x="15" y="74"/><line x="0" y="74"/><line x="0" y="24"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Callout Quad Arrow" h="97" w="97" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="38.5" y="23.5"/><line x="38.5" y="18.5"/><line x="29.5" y="18.5"/><line x="48.5" y="0"/><line x="67.5" y="18.5"/><line x="58.5" y="18.5"/><line x="58.5" y="23.5"/><line x="73.5" y="23.5"/><line x="73.5" y="38.5"/><line x="78.5" y="38.5"/><line x="78.5" y="29.5"/><line x="97" y="48.5"/><line x="78.5" y="67.5"/><line x="78.5" y="58.5"/><line x="73.5" y="58.5"/><line x="73.5" y="73.5"/><line x="58.5" y="73.5"/><line x="58.5" y="78.5"/><line x="67.5" y="78.5"/><line x="48.5" y="97"/><line x="29.5" y="78.5"/><line x="38.5" y="78.5"/><line x="38.5" y="73.5"/><line x="23.5" y="73.5"/><line x="23.5" y="58.5"/><line x="18.5" y="58.5"/><line x="18.5" y="67.5"/><line x="0" y="48.5"/><line x="18.5" y="29.5"/><line x="18.5" y="38.5"/><line x="23.5" y="38.5"/><line x="23.5" y="23.5"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Callout Up Arrow" h="98" w="60" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/></connections><background><path><move x="20" y="39"/><line x="20" y="19"/><line x="11" y="19"/><line x="30" y="0"/><line x="49" y="19"/><line x="40" y="19"/><line x="40" y="39"/><line x="60" y="39"/><line x="60" y="98"/><line x="0" y="98"/><line x="0" y="39"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Chevron Arrow" h="60" w="96" aspect="variable" strokewidth="inherit"><connections><constraint x="0.31" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="30" y="30"/><line x="0" y="0"/><line x="66" y="0"/><line x="96" y="30"/><line x="66" y="60"/><line x="0" y="60"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Circular Arrow" h="69.5" w="97" aspect="variable" strokewidth="inherit"><connections><constraint x="0.12" y="0.64" perimeter="0" name="SW"/><constraint x="0.794" y="1" perimeter="0" name="SE"/></connections><background><path><move x="0" y="44.5"/><arc rx="44.5" ry="44.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="89" y="44.5"/><line x="97" y="44.5"/><line x="77" y="69.5"/><line x="57" y="44.5"/><line x="65" y="44.5"/><arc rx="20.5" ry="20.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="24" y="44.5"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Jump-in Arrow 1" h="99.41" w="96" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.024" perimeter="0" name="NW"/><constraint x="0.657" y="1" perimeter="0" name="S"/></connections><background><linejoin join="round"/><path><move x="30" y="60.41"/><line x="48" y="60.41"/><arc rx="60" ry="60" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="0" y="2.41"/><arc rx="75" ry="75" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="78" y="60.41"/><line x="96" y="60.41"/><line x="63" y="99.41"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Jump-in Arrow 2" h="99.41" w="96" aspect="variable" strokewidth="inherit"><connections><constraint x="1" y="0.024" perimeter="0" name="NE"/><constraint x="0.343" y="1" perimeter="0" name="S"/></connections><background><linejoin join="round"/><path><move x="66" y="60.41"/><line x="48" y="60.41"/><arc rx="60" ry="60" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="96" y="2.41"/><arc rx="75" ry="75" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="18" y="60.41"/><line x="0" y="60.41"/><line x="33" y="99.41"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Left and Up Arrow" h="96.5" w="96.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.71" perimeter="0" name="W"/><constraint x="0.71" y="0" perimeter="0" name="N"/></connections><background><path><move x="23.5" y="53.5"/><line x="53.5" y="53.5"/><line x="53.5" y="23.5"/><line x="41.5" y="23.5"/><line x="68.5" y="0"/><line x="96.5" y="23.5"/><line x="83.5" y="23.5"/><line x="83.5" y="83.5"/><line x="23.5" y="83.5"/><line x="23.5" y="96.5"/><line x="0" y="68.5"/><line x="23.5" y="41.5"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Left Sharp Edged Head Arrow" h="60" w="97.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="97.5" y="20"/><line x="18.5" y="20"/><line x="30.5" y="0"/><line x="18.5" y="0"/><line x="0" y="30"/><line x="18.5" y="60"/><line x="30.5" y="60"/><line x="18.5" y="40"/><line x="97.5" y="40"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Notched Signal-in Arrow" h="30" w="96.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0.13" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="0" y="0"/><line x="83" y="0"/><line x="96.5" y="15"/><line x="83" y="30"/><line x="0" y="30"/><line x="13" y="15"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Quad Arrow" h="97.5" w="97.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="39" y="39"/><line x="39" y="19"/><line x="30" y="19"/><line x="49" y="0"/><line x="68" y="19"/><line x="59" y="19"/><line x="59" y="39"/><line x="79" y="39"/><line x="79" y="30"/><line x="97.5" y="49"/><line x="79" y="68"/><line x="79" y="59"/><line x="59" y="59"/><line x="59" y="79"/><line x="68" y="79"/><line x="49" y="97.5"/><line x="30" y="79"/><line x="39" y="79"/><line x="39" y="59"/><line x="19" y="59"/><line x="19" y="68"/><line x="0" y="49"/><line x="19" y="30"/><line x="19" y="39"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Right Notched Arrow" h="70" w="96.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0.13" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="0" y="20"/><line x="58" y="20"/><line x="58" y="0"/><line x="96.5" y="35"/><line x="58" y="70"/><line x="58" y="50"/><line x="0" y="50"/><line x="13" y="35"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Sharp Edged Arrow" h="60" w="97.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="97.5" y="20"/><line x="18.5" y="20"/><line x="27.5" y="5"/><line x="18.5" y="0"/><line x="0" y="30"/><line x="18.5" y="60"/><line x="27.5" y="55"/><line x="18.5" y="40"/><line x="97.5" y="40"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Signal-in Arrow" h="30" w="97.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="0" y="0"/><line x="84" y="0"/><line x="97.5" y="15"/><line x="84" y="30"/><line x="0" y="30"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Slender Left Arrow" h="60" w="97.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="97.5" y="20"/><line x="18.5" y="20"/><line x="18.5" y="0"/><line x="0" y="30"/><line x="18.5" y="60"/><line x="18.5" y="40"/><line x="97.5" y="40"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Slender Two Way Arrow" h="60" w="97.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="78.5" y="20"/><line x="18.5" y="20"/><line x="18.5" y="0"/><line x="0" y="30"/><line x="18.5" y="60"/><line x="18.5" y="40"/><line x="78.5" y="40"/><line x="78.5" y="60"/><line x="97.5" y="30"/><line x="78.5" y="0"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Slender Wide Tailed Arrow" h="60" w="96.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="0.8" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="58.5" y="20"/><line x="18.5" y="20"/><line x="18.5" y="0"/><line x="0" y="30"/><line x="18.5" y="60"/><line x="18.5" y="40"/><line x="58.5" y="40"/><line x="73.5" y="60"/><line x="96.5" y="60"/><line x="76.5" y="30"/><line x="96.5" y="0"/><line x="73.5" y="0"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Striped Arrow" h="70" w="97.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="24" y="20"/><line x="59" y="20"/><line x="59" y="0"/><line x="97.5" y="35"/><line x="59" y="70"/><line x="59" y="50"/><line x="24" y="50"/><close/></path></background><foreground><fillstroke/><rect x="8" y="20" w="12" h="30"/><fillstroke/><rect x="0" y="20" w="4" h="30"/><fillstroke/></foreground></shape><shape name="Stylised Notched Arrow" h="60" w="96.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0.13" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><miterlimit limit="8"/><path><move x="0" y="5"/><line x="68" y="20"/><line x="58" y="0"/><line x="96.5" y="30"/><line x="58" y="60"/><line x="68" y="45"/><line x="0" y="55"/><line x="13" y="30"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Triad Arrow" h="68" w="97.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.72" perimeter="0" name="W"/><constraint x="1" y="0.72" perimeter="0" name="E"/><constraint x="0.5" y="0" perimeter="0" name="N"/></connections><background><path><move x="39" y="39"/><line x="39" y="19"/><line x="30" y="19"/><line x="49" y="0"/><line x="68" y="19"/><line x="59" y="19"/><line x="59" y="39"/><line x="79" y="39"/><line x="79" y="30"/><line x="97.5" y="49"/><line x="79" y="68"/><line x="79" y="59"/><line x="39" y="59"/><line x="19" y="59"/><line x="19" y="68"/><line x="0" y="49"/><line x="19" y="30"/><line x="19" y="39"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Two Way Arrow Horizontal" h="60" w="96" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="63" y="15"/><line x="63" y="0"/><line x="96" y="30"/><line x="63" y="60"/><line x="63" y="45"/><line x="33" y="45"/><line x="33" y="60"/><line x="0" y="30"/><line x="33" y="0"/><line x="33" y="15"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Two Way Arrow Vertical" h="96" w="60" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/></connections><background><path><move x="15" y="63"/><line x="0" y="63"/><line x="30" y="96"/><line x="60" y="63"/><line x="45" y="63"/><line x="45" y="33"/><line x="60" y="33"/><line x="30" y="0"/><line x="0" y="33"/><line x="15" y="33"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="U Turn Arrow" h="98" w="97" aspect="variable" strokewidth="inherit"><connections><constraint x="0.12" y="1" perimeter="0" name="SW"/><constraint x="0.792" y="0.71" perimeter="0" name="SE"/></connections><background><path><move x="0" y="44.5"/><arc rx="44.5" ry="44.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="89" y="44.5"/><line x="97" y="44.5"/><line x="77" y="69.5"/><line x="57" y="44.5"/><line x="65" y="44.5"/><arc rx="20.5" ry="20.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="24" y="44.83"/><line x="24" y="98"/><line x="0" y="98"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="U Turn Down Arrow" h="62" w="97" aspect="variable" strokewidth="inherit"><connections><constraint x="0.91" y="1" perimeter="0" name="SE"/><constraint x="0.237" y="1" perimeter="0" name="SW"/></connections><background><path><move x="97" y="62"/><line x="97" y="32"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="33" y="32"/><line x="46" y="32"/><line x="23" y="62"/><line x="0" y="32"/><line x="13" y="32"/><arc rx="32" ry="32" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="45" y="0"/><line x="65" y="0"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="53" y="3"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="78" y="32"/><line x="78" y="62"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="U Turn Left Arrow" h="97.07" w="62.23" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.76" perimeter="0" name="SW"/><constraint x="0" y="0.1" perimeter="0" name="NW"/></connections><background><path><move x="0" y="0.19"/><line x="30" y="0.07"/><arc rx="30" ry="30" x-axis-rotation="-90.22" large-arc-flag="0" sweep-flag="1" x="30.25" y="64.07"/><line x="30.2" y="51.07"/><line x="0.29" y="74.19"/><line x="30.37" y="97.07"/><line x="30.32" y="84.07"/><arc rx="32" ry="32" x-axis-rotation="-90.22" large-arc-flag="0" sweep-flag="0" x="62.2" y="51.95"/><line x="62.13" y="31.95"/><arc rx="30" ry="30" x-axis-rotation="-90.22" large-arc-flag="0" sweep-flag="1" x="59.17" y="43.96"/><arc rx="30" ry="30" x-axis-rotation="-90.22" large-arc-flag="0" sweep-flag="0" x="30.08" y="19.07"/><line x="0.08" y="19.19"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="U Turn Right Arrow" h="97.07" w="62.23" aspect="variable" strokewidth="inherit"><connections><constraint x="1" y="0.76" perimeter="0" name="SW"/><constraint x="1" y="0.1" perimeter="0" name="NW"/></connections><background><path><move x="62.23" y="0.19"/><line x="32.23" y="0.07"/><arc rx="30" ry="30" x-axis-rotation="-89.78" large-arc-flag="0" sweep-flag="0" x="31.99" y="64.07"/><line x="32.03" y="51.07"/><line x="61.95" y="74.19"/><line x="31.86" y="97.07"/><line x="31.91" y="84.07"/><arc rx="32" ry="32" x-axis-rotation="-89.78" large-arc-flag="0" sweep-flag="1" x="0.03" y="51.95"/><line x="0.11" y="31.95"/><arc rx="30" ry="30" x-axis-rotation="-89.78" large-arc-flag="0" sweep-flag="0" x="3.06" y="43.96"/><arc rx="30" ry="30" x-axis-rotation="-89.78" large-arc-flag="0" sweep-flag="1" x="32.16" y="19.07"/><line x="62.16" y="19.19"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="U Turn Up Arrow" h="62" w="97" aspect="variable" strokewidth="inherit"><connections><constraint x="0.91" y="0" perimeter="0" name="NE"/><constraint x="0.237" y="0" perimeter="0" name="NW"/></connections><background><path><move x="97" y="0"/><line x="97" y="30"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="33" y="30"/><line x="46" y="30"/><line x="23" y="0"/><line x="0" y="30"/><line x="13" y="30"/><arc rx="32" ry="32" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="45" y="62"/><line x="65" y="62"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="53" y="59"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="78" y="30"/><line x="78" y="0"/><close/></path></background><foreground><fillstroke/></foreground></shape></shapes>',_t["basic.xml"]='<shapes name="mxgraph.basic"><shape name="4 Point Star" h="92" w="92" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="46" y="0"/><line x="56" y="36"/><line x="92" y="46"/><line x="56" y="56"/><line x="46" y="92"/><line x="36" y="56"/><line x="0" y="46"/><line x="36" y="36"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="6 Point Star" h="84.5" w="96" aspect="variable" strokewidth="inherit"><connections><constraint x="0.24" y="0" perimeter="0" name="N1"/><constraint x="0.24" y="1" perimeter="0" name="S1"/><constraint x="0.76" y="0" perimeter="0" name="N2"/><constraint x="0.76" y="1" perimeter="0" name="S2"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="23" y="28.9"/><line x="23" y="0"/><line x="48" y="14.4"/><line x="73" y="0"/><line x="73" y="28.9"/><line x="96" y="42.2"/><line x="73" y="55.6"/><line x="73" y="84.5"/><line x="48" y="70"/><line x="23" y="84.5"/><line x="23" y="55.6"/><line x="0" y="42.2"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="8 Point Star" h="96" w="96" aspect="variable" strokewidth="inherit"><connections><constraint x="0.29" y="0" perimeter="0" name="N1"/><constraint x="0.29" y="1" perimeter="0" name="S1"/><constraint x="0.71" y="0" perimeter="0" name="N2"/><constraint x="0.71" y="1" perimeter="0" name="S2"/><constraint x="0" y="0.29" perimeter="0" name="W1"/><constraint x="0" y="0.71" perimeter="0" name="W2"/><constraint x="1" y="0.29" perimeter="0" name="E1"/><constraint x="1" y="0.71" perimeter="0" name="E2"/></connections><background><path><move x="28" y="28"/><line x="28" y="0"/><line x="48" y="20"/><line x="68" y="0"/><line x="68" y="28"/><line x="96" y="28"/><line x="76" y="48"/><line x="96" y="68"/><line x="68" y="68"/><line x="68" y="96"/><line x="48" y="76"/><line x="28" y="96"/><line x="28" y="68"/><line x="0" y="68"/><line x="20" y="48"/><line x="0" y="28"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Banner" h="50" w="96" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="0.8" perimeter="0" name="S"/><constraint x="0.13" y="0.6" perimeter="0" name="W"/><constraint x="0.87" y="0.6" perimeter="0" name="E"/></connections><background><path><move x="0" y="50"/><line x="38" y="50"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="40.5" y="47.5"/><line x="40.5" y="40"/><line x="55.5" y="40"/><line x="55.5" y="47.5"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="58" y="50"/><line x="96" y="50"/><line x="83" y="30"/><line x="96" y="10"/><line x="70.5" y="10"/><line x="70.5" y="2.5"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="68" y="0"/><line x="28" y="0"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="25.5" y="2.5"/><line x="25.5" y="10"/><line x="0" y="10"/><line x="13" y="30"/><close/></path></background><foreground><fillstroke/><path><move x="40.5" y="47.5"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="38" y="45"/><line x="28" y="45"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="28" y="40"/><line x="68" y="40"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="68" y="45"/><line x="58" y="45"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="55.5" y="47.5"/><move x="25.5" y="42.5"/><line x="25.5" y="10"/><move x="70.5" y="42.5"/><line x="70.5" y="10"/></path><stroke/></foreground></shape><shape name="Cloud Callout" h="61.4" w="90.41" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="0.74" perimeter="0" name="S"/><constraint x="0.015" y="0.4" perimeter="0" name="W"/><constraint x="0.993" y="0.4" perimeter="0" name="E"/><constraint x="0.01" y="0.995" perimeter="0" name="SW"/></connections><background><save/><linejoin join="round"/><path><move x="12.1" y="31.8"/><arc rx="8" ry="8" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="12.1" y="16.8"/><arc rx="12" ry="12" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="33.1" y="8.8"/><arc rx="14" ry="14" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="59.1" y="8.8"/><arc rx="12" ry="12" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="79.1" y="16.8"/><arc rx="8" ry="8" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="79.1" y="31.8"/><arc rx="12" ry="12" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="58.1" y="38.8"/><arc rx="14" ry="14" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="34.1" y="38.8"/><arc rx="10" ry="8" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="12.1" y="31.8"/><close/></path></background><foreground><fillstroke/><restore/><linejoin join="miter"/><ellipse x="9.1" y="46.1" w="12" h="5.4"/><fillstroke/><ellipse x="4.3" y="53.5" w="7.6" h="3.6"/><fillstroke/><ellipse x="0" y="58.8" w="4.8" h="2.6"/><fillstroke/></foreground></shape><shape name="Cone" h="96.91" w="99" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/></connections><background><path><move x="49.5" y="0"/><line x="99" y="88"/><arc rx="25" ry="4.5" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="0" y="88"/><close/></path></background><foreground><fillstroke/><path><move x="0" y="88"/><arc rx="25" ry="4.5" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="99" y="88"/></path><fillstroke/></foreground></shape><shape name="Cross" h="98" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="0" y="34"/><line x="34" y="34"/><line x="34" y="0"/><line x="64" y="0"/><line x="64" y="34"/><line x="98" y="34"/><line x="98" y="64"/><line x="64" y="64"/><line x="64" y="98"/><line x="34" y="98"/><line x="34" y="64"/><line x="0" y="64"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Document" h="98" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="98" y="14"/><line x="98" y="98"/><line x="0" y="98"/><line x="0" y="0"/><line x="84" y="0"/><close/></path></background><foreground><fillstroke/><path><move x="84" y="0"/><arc rx="18" ry="10" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="79" y="9"/><line x="98" y="14"/></path><stroke/></foreground></shape><shape name="Flash" h="95.5" w="60" aspect="variable" strokewidth="inherit"><connections><constraint x="0.565" y="0" perimeter="0" name="N"/><constraint x="0" y="0.995" perimeter="0" name="SW"/></connections><background><miterlimit limit="6"/><path><move x="0" y="95.5"/><line x="20" y="75.5"/><line x="3" y="61.5"/><line x="20" y="49.5"/><line x="3" y="31.5"/><line x="34" y="0"/><line x="60" y="25.5"/><line x="36" y="39.5"/><line x="50" y="53.5"/><line x="29" y="65.5"/><line x="42" y="76.5"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Half Circle" h="49" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/></connections><background><path><move x="0" y="0"/><arc rx="44.5" ry="44.5" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0" x="98" y="0"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Heart" h="94.74" w="103.89" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0.115" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0.07" y="0.5" perimeter="0" name="W"/><constraint x="0.93" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="51.94" y="94.74"/><curve x1="55.79" y1="90.78" x2="77.8" y2="68.16" x3="91.56" y3="54.03"/><curve x1="103.89" y1="41.37" x2="103.62" y2="22.91" x3="92.42" y3="11.46"/><curve x1="81.21" y1="0" x2="63.09" y2="0.05" x3="51.94" y3="11.56"/><curve x1="40.79" y1="0.05" x2="22.67" y2="0" x3="11.47" y3="11.45"/><curve x1="0.26" y1="22.9" x2="0" y2="41.36" x3="12.32" y3="54.03"/><curve x1="26.08" y1="68.16" x2="48.09" y2="90.78" x3="51.94" y3="94.74"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Loud Callout" h="59.9" w="93.3" aspect="variable" strokewidth="inherit"><connections><constraint x="0.49" y="0" perimeter="0" name="N"/><constraint x="0.52" y="0.91" perimeter="0" name="S"/><constraint x="0" y="0.51" perimeter="0" name="W"/><constraint x="0.99" y="0.503" perimeter="0" name="E"/><constraint x="0.04" y="1" perimeter="0" name="SE"/></connections><background><miterlimit limit="10"/><path><move x="14.9" y="43.9"/><line x="9.3" y="46.7"/><line x="11.1" y="40.9"/><line x="6.6" y="43.9"/><line x="8.3" y="39.2"/><line x="2.8" y="40.8"/><line x="6.6" y="36.4"/><line x="0.9" y="36.2"/><line x="5.8" y="32.7"/><line x="0" y="30.8"/><line x="5.3" y="28.2"/><line x="0.3" y="25.6"/><line x="5.9" y="24.19"/><line x="0.8" y="19.9"/><line x="6.5" y="19.8"/><line x="2.8" y="15.1"/><line x="8.2" y="16.1"/><line x="5.9" y="11.3"/><line x="11.5" y="13.2"/><line x="10.2" y="8.7"/><line x="15.7" y="10.6"/><line x="14.9" y="6.15"/><line x="19.2" y="9.3"/><line x="19.8" y="4.3"/><line x="23.4" y="8"/><line x="23.8" y="3.4"/><line x="28.5" y="6.9"/><line x="30.3" y="1.3"/><line x="33.3" y="6.2"/><line x="34.7" y="0.6"/><line x="38.2" y="6"/><line x="40.6" y="0"/><line x="42.8" y="5.8"/><line x="45.6" y="0"/><line x="47.1" y="6"/><line x="51.3" y="1"/><line x="50.8" y="6.3"/><line x="55.4" y="0.6"/><line x="55.1" y="6.6"/><line x="60.5" y="1.4"/><line x="61.1" y="7.1"/><line x="66.1" y="2.7"/><line x="66.2" y="8.7"/><line x="71.9" y="4.4"/><line x="70.5" y="10"/><line x="77.6" y="6.2"/><line x="74.9" y="11.8"/><line x="83.9" y="7.8"/><line x="80.1" y="13.6"/><line x="88.1" y="11.9"/><line x="85.2" y="17"/><line x="91.2" y="16.9"/><line x="87" y="20.1"/><line x="93.3" y="21.2"/><line x="87.9" y="24"/><line x="93.2" y="25.8"/><line x="86.8" y="26.8"/><line x="92.4" y="30.3"/><line x="86.6" y="30.8"/><line x="90.9" y="34.8"/><line x="84.2" y="33.5"/><line x="87.8" y="38.8"/><line x="82" y="36.6"/><line x="84.7" y="41.7"/><line x="79.2" y="40.7"/><line x="79.8" y="46"/><line x="76.3" y="42.9"/><line x="75.6" y="48.6"/><line x="72" y="44.7"/><line x="71.7" y="51.2"/><line x="68" y="46"/><line x="66.2" y="52.1"/><line x="63.7" y="46.6"/><line x="61.2" y="53.7"/><line x="59.7" y="47.6"/><line x="56.9" y="53.8"/><line x="55" y="48.1"/><line x="52.8" y="53.9"/><line x="50.9" y="48.1"/><line x="48.4" y="54.5"/><line x="47" y="48.1"/><line x="44.4" y="53.7"/><line x="43.2" y="47.4"/><line x="40.1" y="54.2"/><line x="38.8" y="47.4"/><line x="36.3" y="54.7"/><line x="35.6" y="47.8"/><line x="32.4" y="55.1"/><line x="30.9" y="46.6"/><line x="28.6" y="53.3"/><line x="26.8" y="47.8"/><line x="3.8" y="59.9"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Moon" h="103.05" w="77.05" aspect="variable" strokewidth="inherit"><connections><constraint x="0.48" y="0" perimeter="0" name="N"/><constraint x="1" y="0.89" perimeter="0" name="SE"/></connections><background><path><move x="37.05" y="0"/><arc rx="48" ry="48" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0" x="77.05" y="92"/><arc rx="60" ry="60" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="37.05" y="0"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="No Symbol" h="100" w="100" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.145" y="0.145" perimeter="0" name="NW"/><constraint x="0.145" y="0.855" perimeter="0" name="SW"/><constraint x="0.855" y="0.145" perimeter="0" name="NE"/><constraint x="0.855" y="0.855" perimeter="0" name="SE"/></connections><background><path><move x="0" y="50"/><arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="100" y="50"/><arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="50"/><close/><move x="78.95" y="69.7"/><arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="30.3" y="21.05"/><close/><move x="21.15" y="30.3"/><arc rx="35" ry="35" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="69.7" y="79"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Octagon" h="98" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="0" y="29"/><line x="29" y="0"/><line x="69" y="0"/><line x="98" y="29"/><line x="98" y="69"/><line x="69" y="98"/><line x="29" y="98"/><line x="0" y="69"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Orthogonal Triangle" h="97" w="97" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0" perimeter="0" name="NW"/><constraint x="0" y="1" perimeter="0" name="SW"/><constraint x="1" y="1" perimeter="0" name="SE"/><constraint x="0.5" y="0.5" perimeter="0" name="center"/></connections><background><path><move x="0" y="97"/><line x="0" y="0"/><line x="97" y="97"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Oval Callout" h="63.15" w="109.43" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0.045" perimeter="0" name="N"/><constraint x="0.5" y="0.84" perimeter="0" name="S"/><constraint x="0.045" y="0.45" perimeter="0" name="W"/><constraint x="0.945" y="0.45" perimeter="0" name="E"/><constraint x="0.08" y="1" perimeter="0" name="SW"/></connections><background><miterlimit limit="15"/><path><move x="20.53" y="46.15"/><arc rx="49" ry="25" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="31.53" y="50.15"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="9.03" y="63.15"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="20.53" y="46.15"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Parallelepiped" h="60" w="97" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0.12" y="0.5" perimeter="0" name="W"/><constraint x="0.88" y="0.5" perimeter="0" name="E"/><constraint x="0.24" y="0" perimeter="0" name="NW"/><constraint x="1" y="0" perimeter="0" name="NE"/><constraint x="0.76" y="1" perimeter="0" name="SE"/><constraint x="0" y="1" perimeter="0" name="SW"/></connections><background><path><move x="0" y="60"/><line x="23.5" y="0"/><line x="97" y="0"/><line x="73.5" y="60"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Pentagon" h="90" w="97" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0" y="0.365" perimeter="0" name="W"/><constraint x="1" y="0.365" perimeter="0" name="E"/><constraint x="0.81" y="1" perimeter="0" name="SE"/><constraint x="0.19" y="1" perimeter="0" name="SW"/></connections><background><path><move x="18.5" y="90"/><line x="0" y="33"/><line x="48.5" y="0"/><line x="97" y="33"/><line x="78.5" y="90"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Rectangular Callout" h="60" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="0.715" perimeter="0" name="S"/><constraint x="0" y="0.355" perimeter="0" name="W"/><constraint x="1" y="0.355" perimeter="0" name="E"/><constraint x="0.04" y="1" perimeter="0" name="SW"/></connections><background><miterlimit limit="10"/><path><move x="15" y="43"/><line x="0" y="43"/><line x="0" y="0"/><line x="98" y="0"/><line x="98" y="43"/><line x="29" y="43"/><line x="4" y="60"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Rounded Rectangular Callout" h="60" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="0.715" perimeter="0" name="S"/><constraint x="0" y="0.355" perimeter="0" name="W"/><constraint x="1" y="0.355" perimeter="0" name="E"/><constraint x="0.04" y="1" perimeter="0" name="SW"/></connections><background><miterlimit limit="15"/><path><move x="15.5" y="43"/><line x="5" y="43"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="38"/><line x="0" y="5"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5" y="0"/><line x="93" y="0"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="5"/><line x="98" y="38"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="93" y="43"/><line x="29" y="43"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="4" y="60"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="15.5" y="43"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Smiley" h="98" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.145" y="0.145" perimeter="0" name="NW"/><constraint x="0.145" y="0.855" perimeter="0" name="SW"/><constraint x="0.855" y="0.145" perimeter="0" name="NE"/><constraint x="0.855" y="0.855" perimeter="0" name="SE"/></connections><background><ellipse x="0" y="0" w="98" h="98"/></background><foreground><fillstroke/><save/><path><move x="11" y="54"/><arc rx="38" ry="27" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0" x="87" y="54"/></path><stroke/><restore/><strokewidth width="1"/><path><move x="16" y="51"/><line x="6" y="57"/></path><stroke/><path><move x="82" y="51"/><line x="92" y="57"/></path><stroke/><strokewidth width="6"/><ellipse x="24" y="27" w="6" h="16"/><fillstroke/><ellipse x="68" y="27" w="6" h="16"/><fillstroke/></foreground></shape><shape name="Star" h="90" w="95" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="0.76" perimeter="0" name="S"/><constraint x="0" y="0.367" perimeter="0" name="W"/><constraint x="1" y="0.367" perimeter="0" name="E"/><constraint x="0.185" y="1" perimeter="0" name="SW"/><constraint x="0.815" y="1" perimeter="0" name="SE"/></connections><background><path><move x="0" y="33"/><line x="36.4" y="33"/><line x="47.5" y="0"/><line x="58.6" y="33"/><line x="95" y="33"/><line x="66" y="55.1"/><line x="77.5" y="90"/><line x="47.5" y="68.4"/><line x="17.5" y="90"/><line x="29" y="55.1"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Sun" h="95" w="95" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.145" y="0.145" perimeter="0" name="NW"/><constraint x="0.145" y="0.855" perimeter="0" name="SW"/><constraint x="0.855" y="0.145" perimeter="0" name="NE"/><constraint x="0.855" y="0.855" perimeter="0" name="SE"/></connections><background><ellipse x="17.5" y="17.5" w="60" h="60"/></background><foreground><fillstroke/><path><move x="42.5" y="14.5"/><line x="47.5" y="0"/><line x="52.5" y="14.5"/><close/></path><fillstroke/><path><move x="42.5" y="80.5"/><line x="47.5" y="95"/><line x="52.5" y="80.5"/><close/></path><fillstroke/><path><move x="14.5" y="42.5"/><line x="0" y="47.5"/><line x="14.5" y="52.5"/><close/></path><fillstroke/><path><move x="80.5" y="42.5"/><line x="95" y="47.5"/><line x="80.5" y="52.5"/><close/></path><fillstroke/><path><move x="67.5" y="20.5"/><line x="81.2" y="13.9"/><line x="74.5" y="27.5"/><close/></path><fillstroke/><path><move x="67.5" y="74.5"/><line x="81.2" y="81.1"/><line x="74.5" y="67.5"/><close/></path><fillstroke/><path><move x="27.5" y="20.5"/><line x="13.8" y="13.9"/><line x="20.5" y="27.5"/><close/></path><fillstroke/><path><move x="27.5" y="74.5"/><line x="13.8" y="81.1"/><line x="20.5" y="67.5"/><close/></path><fillstroke/></foreground></shape><shape name="Tick" h="97.54" w="84.4" aspect="variable" strokewidth="inherit"><connections><constraint x="0.9" y="0.01" perimeter="0" name="N"/><constraint x="0.32" y="0.992" perimeter="0" name="S"/><constraint x="0" y="0.7" perimeter="0" name="W"/><constraint x="1" y="0.06" perimeter="0" name="E"/></connections><background><path><move x="0.36" y="66.69"/><arc rx="12" ry="12" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="16.36" y="58.69"/><arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="26.36" y="69.69"/><arc rx="200" ry="200" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="63.36" y="5.69"/><arc rx="18" ry="18" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="80.36" y="1.69"/><arc rx="4.5" ry="4.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="83.36" y="8.69"/><arc rx="230" ry="230" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="35.36" y="94.69"/><arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="17.36" y="94.69"/><arc rx="100" ry="100" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="0.36" y="68.69"/><arc rx="2" ry="2" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0.36" y="66.69"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Trapezoid" h="98" w="97" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0.12" y="0.5" perimeter="0" name="W"/><constraint x="0.88" y="0.5" perimeter="0" name="E"/><constraint x="0.24" y="0" perimeter="0" name="NW"/><constraint x="0" y="1" perimeter="0" name="SW"/><constraint x="0.76" y="0" perimeter="0" name="NE"/><constraint x="1" y="1" perimeter="0" name="SE"/></connections><background><path><move x="0" y="98"/><line x="23.5" y="0"/><line x="73.5" y="0"/><line x="97" y="98"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Wave" h="56.7" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0.295" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="0" y="8.7"/><arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="33" y="8.7"/><arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="65" y="8.7"/><arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="8.7"/><line x="98" y="48.7"/><arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="65" y="48.7"/><arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="33" y="48.7"/><arc rx="20" ry="20" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="0" y="48.7"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="X" h="98" w="96" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0.29" perimeter="0" name="N"/><constraint x="0.5" y="0.71" perimeter="0" name="S"/><constraint x="0.33" y="0.5" perimeter="0" name="W"/><constraint x="0.65" y="0.5" perimeter="0" name="E"/><constraint x="0" y="0" perimeter="0" name="NW"/><constraint x="0" y="1" perimeter="0" name="SW"/><constraint x="1" y="0" perimeter="0" name="NE"/><constraint x="1" y="1" perimeter="0" name="SE"/></connections><background><path><move x="0" y="0"/><line x="28" y="0"/><line x="48" y="29"/><line x="68" y="0"/><line x="96" y="0"/><line x="62" y="49"/><line x="96" y="98"/><line x="68" y="98"/><line x="48" y="69"/><line x="28" y="98"/><line x="0" y="98"/><line x="32" y="49"/><close/></path></background><foreground><fillstroke/></foreground></shape></shapes>',_t["flowchart.xml"]='<shapes name="mxGraph.flowchart"><shape name="Annotation 1" h="98" w="50" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0" y="0" perimeter="0" name="NW"/><constraint x="0" y="1" perimeter="0" name="SW"/><constraint x="1" y="0" perimeter="0" name="NE"/><constraint x="1" y="1" perimeter="0" name="SE"/></connections><background><path><move x="50" y="0"/><line x="0" y="0"/><line x="0" y="98"/><line x="50" y="98"/></path></background><foreground><stroke/></foreground></shape><shape name="Annotation 2" h="98" w="100" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="1" y="0" perimeter="0" name="NE"/><constraint x="1" y="1" perimeter="0" name="SE"/></connections><background><path><move x="100" y="0"/><line x="50" y="0"/><line x="50" y="98"/><line x="100" y="98"/></path></background><foreground><stroke/><path><move x="0" y="49"/><line x="50" y="49"/></path><stroke/></foreground></shape><shape name="Card" h="60" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.1" y="0.16" perimeter="0" name="NW"/><constraint x="0.015" y="0.98" perimeter="0" name="SW"/><constraint x="0.985" y="0.02" perimeter="0" name="NE"/><constraint x="0.985" y="0.98" perimeter="0" name="SE"/></connections><background><path><move x="19" y="0"/><line x="93" y="0"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="5"/><line x="98" y="55"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="93" y="60"/><line x="5" y="60"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/><line x="0" y="20"/><line x="19" y="0"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Collate" h="98" w="96.82" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.02" perimeter="0" name="NW"/><constraint x="0" y="0.98" perimeter="0" name="SW"/><constraint x="1" y="0.02" perimeter="0" name="NE"/><constraint x="1" y="0.98" perimeter="0" name="SE"/></connections><background><path><move x="92.41" y="0"/><arc rx="6" ry="3.5" x-axis-rotation="-15" large-arc-flag="0" sweep-flag="1" x="95.41" y="5"/><line x="1.41" y="93"/><arc rx="6" ry="3.5" x-axis-rotation="-15" large-arc-flag="0" sweep-flag="0" x="4.41" y="98"/><line x="92.41" y="98"/><arc rx="6" ry="3.5" x-axis-rotation="15" large-arc-flag="0" sweep-flag="0" x="95.41" y="93"/><line x="1.41" y="5"/><arc rx="6" ry="3.5" x-axis-rotation="15" large-arc-flag="0" sweep-flag="1" x="4.41" y="0"/><line x="92.41" y="0"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Data" h="60.24" w="98.77" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0.095" y="0.5" perimeter="0" name="W"/><constraint x="0.905" y="0.5" perimeter="0" name="E"/><constraint x="0.23" y="0.02" perimeter="0" name="NW"/><constraint x="0.015" y="0.98" perimeter="0" name="SW"/><constraint x="0.985" y="0.02" perimeter="0" name="NE"/><constraint x="0.77" y="0.98" perimeter="0" name="SE"/></connections><background><path><move x="19.37" y="5.12"/><arc rx="6" ry="12" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="24.37" y="0.12"/><line x="93.37" y="0.12"/><arc rx="5" ry="4" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98.37" y="5.12"/><line x="79.37" y="55.12"/><arc rx="6" ry="12" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="74.37" y="60.12"/><line x="4.37" y="60.12"/><arc rx="5" ry="4" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0.37" y="55.12"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Database" h="60" w="60" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0" y="0.15" perimeter="0" name="NW"/><constraint x="0" y="0.85" perimeter="0" name="SW"/><constraint x="1" y="0.15" perimeter="0" name="NE"/><constraint x="1" y="0.85" perimeter="0" name="SE"/></connections><background><path><move x="0" y="50"/><line x="0" y="10"/><arc rx="30" ry="10" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="60" y="10"/><line x="60" y="50"/><arc rx="30" ry="10" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="50"/><close/></path></background><foreground><fillstroke/><path><move x="0" y="10"/><arc rx="30" ry="10" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="60" y="10"/></path><stroke/></foreground></shape><shape name="Decision" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="50" y="0"/><line x="100" y="50"/><line x="50" y="100"/><line x="0" y="50"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Delay" h="60" w="98.25" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.02" y="0.015" perimeter="0" name="NW"/><constraint x="0.02" y="0.985" perimeter="0" name="SW"/><constraint x="0.81" y="0" perimeter="0" name="NE"/><constraint x="0.81" y="1" perimeter="0" name="SE"/></connections><background><path><move x="0" y="5"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5" y="0"/><line x="79" y="0"/><arc rx="33" ry="33" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="79" y="60"/><line x="5" y="60"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/><line x="0" y="5"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Direct Data" h="60" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.08" y="0" perimeter="0" name="NW"/><constraint x="0.08" y="1" perimeter="0" name="SW"/><constraint x="0.91" y="0" perimeter="0" name="NE"/><constraint x="0.91" y="1" perimeter="0" name="SE"/></connections><background><path><move x="9" y="0"/><line x="89" y="0"/><arc rx="9" ry="30" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="89" y="60"/><line x="9" y="60"/><arc rx="9" ry="30" x-axis-rotation="0" large-arc-flag="1" sweep-flag="1" x="9" y="0"/><close/></path></background><foreground><fillstroke/><path><move x="89" y="0"/><arc rx="9" ry="30" x-axis-rotation="0" large-arc-flag="1" sweep-flag="0" x="89" y="60"/></path><stroke/></foreground></shape><shape name="Display" h="60" w="98.25" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.2" y="0.14" perimeter="0" name="NW"/><constraint x="0.2" y="0.86" perimeter="0" name="SW"/><constraint x="0.92" y="0.14" perimeter="0" name="NE"/><constraint x="0.92" y="0.86" perimeter="0" name="SE"/></connections><background><path><move x="0" y="30"/><arc rx="60" ry="60" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="39" y="0"/><line x="79" y="0"/><arc rx="33" ry="33" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="79" y="60"/><line x="39" y="60"/><arc rx="60" ry="60" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="30"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Document" h="60.9" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="0.9" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.02" y="0.015" perimeter="0" name="NW"/><constraint x="0" y="0.9" perimeter="0" name="SW"/><constraint x="0.98" y="0.015" perimeter="0" name="NE"/><constraint x="1" y="0.9" perimeter="0" name="SE"/></connections><background><path><move x="0" y="5"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5" y="0"/><line x="93" y="0"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="5"/><line x="98" y="55"/><arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="49" y="55"/><arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Extract or Measurement" h="61.03" w="95.34" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0.22" y="0.5" perimeter="0" name="W"/><constraint x="0.78" y="0.5" perimeter="0" name="E"/><constraint x="0.01" y="0.97" perimeter="0" name="SW"/><constraint x="0.99" y="0.97" perimeter="0" name="SE"/></connections><background><path><move x="3.64" y="61.02"/><line x="91.64" y="61.02"/><arc rx="6" ry="4" x-axis-rotation="30" large-arc-flag="0" sweep-flag="0" x="94.64" y="56.02"/><line x="49.64" y="1.02"/><arc rx="3" ry="3" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="45.64" y="1.02"/><line x="0.64" y="56.02"/><arc rx="6" ry="4" x-axis-rotation="-35" large-arc-flag="0" sweep-flag="0" x="3.64" y="61.02"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Internal Storage" h="70" w="70" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.02" y="0.015" perimeter="0" name="NW"/><constraint x="0.02" y="0.985" perimeter="0" name="SW"/><constraint x="0.98" y="0.015" perimeter="0" name="NE"/><constraint x="0.98" y="0.985" perimeter="0" name="SE"/></connections><background><roundrect x="0" y="0" w="70" h="70" arcsize="7.142857142857142"/></background><foreground><fillstroke/><path><move x="0" y="15"/><line x="70" y="15"/></path><stroke/><path><move x="15" y="0"/><line x="15" y="70"/></path><stroke/></foreground></shape><shape name="Loop Limit" h="60" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.1" y="0.15" perimeter="0" name="NW"/><constraint x="0.02" y="0.985" perimeter="0" name="SW"/><constraint x="0.9" y="0.15" perimeter="0" name="NE"/><constraint x="0.98" y="0.985" perimeter="0" name="SE"/></connections><background><path><move x="19" y="0"/><line x="79" y="0"/><line x="98" y="20"/><line x="98" y="55"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="93" y="60"/><line x="5" y="60"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/><line x="0" y="20"/><line x="19" y="0"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Manual Input" h="60" w="98.05" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0.195" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.02" y="0.985" perimeter="0" name="SW"/><constraint x="0.98" y="0.015" perimeter="0" name="NE"/><constraint x="0.98" y="0.985" perimeter="0" name="SE"/></connections><background><path><move x="0" y="25"/><line x="93" y="0"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="5"/><line x="98" y="55"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="94" y="60"/><line x="5" y="60"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/><line x="0" y="25"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Manual Operation" h="60.04" w="98.79" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0.1" y="0.5" perimeter="0" name="W"/><constraint x="0.9" y="0.5" perimeter="0" name="E"/><constraint x="0.02" y="0.015" perimeter="0" name="NW"/><constraint x="0.22" y="0.985" perimeter="0" name="SW"/><constraint x="0.98" y="0.015" perimeter="0" name="NE"/><constraint x="0.78" y="0.985" perimeter="0" name="SE"/></connections><background><path><move x="0.39" y="5.04"/><arc rx="5" ry="4" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5.39" y="0.04"/><line x="93.39" y="0.04"/><arc rx="5" ry="4" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98.39" y="5.04"/><line x="79.39" y="55.04"/><arc rx="6.5" ry="6.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="74.39" y="60.04"/><line x="24.39" y="60.04"/><arc rx="6.5" ry="6.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="19.39" y="55.04"/><line x="0.39" y="5.04"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Merge or Storage" h="61.03" w="95.34" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0" y="0" perimeter="0" name="NW"/><constraint x="0" y="1" perimeter="0" name="SW"/><constraint x="1" y="0" perimeter="0" name="NE"/><constraint x="1" y="1" perimeter="0" name="SE"/></connections><background><path><move x="3.64" y="0.01"/><line x="91.64" y="0.01"/><arc rx="6" ry="4" x-axis-rotation="-30" large-arc-flag="0" sweep-flag="1" x="94.64" y="5.01"/><line x="49.64" y="60.01"/><arc rx="3" ry="3" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="45.64" y="60.01"/><line x="0.64" y="5.01"/><arc rx="6" ry="4" x-axis-rotation="35" large-arc-flag="0" sweep-flag="1" x="3.64" y="0.01"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Multi-Document" h="60.28" w="88" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="0.88" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.08" y="0.1" perimeter="0" name="NW"/><constraint x="0" y="0.91" perimeter="0" name="SW"/><constraint x="0.98" y="0.02" perimeter="0" name="NE"/><constraint x="0.885" y="0.91" perimeter="0" name="SE"/></connections><background><path><move x="10" y="5"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="15" y="0"/><line x="83" y="0"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="88" y="5"/><line x="88" y="45"/><arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="49" y="45"/><arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="10" y="45"/><close/></path></background><foreground><fillstroke/><path><move x="5" y="10"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="10" y="5"/><line x="78" y="5"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="83" y="10"/><line x="83" y="50"/><arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="44" y="50"/><arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5" y="50"/><close/></path><fillstroke/><path><move x="0" y="15"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="5" y="10"/><line x="73" y="10"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="78" y="15"/><line x="78" y="55"/><arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="39" y="55"/><arc rx="50" ry="50" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55"/><close/></path><fillstroke/></foreground></shape><shape name="Off-page Reference" h="60" w="60" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0" y="0" perimeter="0" name="NW"/><constraint x="1" y="0" perimeter="0" name="NE"/></connections><background><path><move x="0" y="0"/><line x="60" 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 name="On-page Reference" h="60" w="60" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.145" y="0.145" perimeter="0" name="NW"/><constraint x="0.145" y="0.855" perimeter="0" name="SW"/><constraint x="0.855" y="0.145" perimeter="0" name="NE"/><constraint x="0.855" y="0.855" perimeter="0" name="SE"/></connections><background><ellipse x="0" y="0" w="60" h="60"/></background><foreground><fillstroke/></foreground></shape><shape name="Or" h="70" w="70" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.145" y="0.145" perimeter="0" name="NW"/><constraint x="0.145" y="0.855" perimeter="0" name="SW"/><constraint x="0.855" y="0.145" perimeter="0" name="NE"/><constraint x="0.855" y="0.855" perimeter="0" name="SE"/></connections><background><ellipse x="0" y="0" w="70" h="70"/></background><foreground><fillstroke/><path><move x="10" y="60"/><line x="60" y="10"/></path><stroke/><path><move x="10" y="10"/><line x="60" y="60"/></path><stroke/></foreground></shape><shape name="Paper Tape" h="61.81" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0.09" perimeter="0" name="N"/><constraint x="0.5" y="0.91" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0" y="0.09" perimeter="0" name="NW"/><constraint x="0" y="0.91" perimeter="0" name="SW"/><constraint x="1" y="0.09" perimeter="0" name="NE"/><constraint x="1" y="0.91" perimeter="0" name="SE"/></connections><background><path><move x="0" y="5.9"/><arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="49" y="5.9"/><arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="98" y="5.9"/><line x="98" y="55.9"/><arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="49" y="55.9"/><arc rx="70" ry="70" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0" y="55.9"/><line x="0" y="5.9"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Parallel Mode" h="40" w="94" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0" y="0" perimeter="0" name="NW"/><constraint x="0" y="1" perimeter="0" name="SW"/><constraint x="1" y="0" perimeter="0" name="NE"/><constraint x="1" y="1" perimeter="0" name="SE"/></connections><background><save/><fillcolor color="#ffff00"/><path><move x="47" y="15"/><line x="52" y="20"/><line x="47" y="25"/><line x="42" y="20"/><line x="47" y="15"/><close/><move x="27" y="15"/><line x="32" y="20"/><line x="27" y="25"/><line x="22" y="20"/><line x="27" y="15"/><close/><move x="67" y="15"/><line x="72" y="20"/><line x="67" y="25"/><line x="62" y="20"/><line x="67" y="15"/><close/></path></background><foreground><fillstroke/><restore/><path><move x="0" y="0"/><line x="94" y="0"/></path><stroke/><path><move x="0" y="40"/><line x="94" y="40"/></path><stroke/></foreground></shape><shape name="Predefined Process" h="60" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.02" y="0.015" perimeter="0" name="NW"/><constraint x="0.02" y="0.985" perimeter="0" name="SW"/><constraint x="0.98" y="0.015" perimeter="0" name="NE"/><constraint x="0.98" y="0.985" perimeter="0" name="SE"/></connections><background><roundrect x="0" y="0" w="98" h="60" arcsize="6.717687074829931"/></background><foreground><fillstroke/><path><move x="14" y="0"/><line x="14" y="60"/></path><stroke/><path><move x="84" y="0"/><line x="84" y="60"/></path><stroke/></foreground></shape><shape name="Preparation" h="60" w="97.11" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.26" y="0.02" perimeter="0" name="NW"/><constraint x="0.26" y="0.98" perimeter="0" name="SW"/><constraint x="0.74" y="0.02" perimeter="0" name="NE"/><constraint x="0.74" y="0.98" perimeter="0" name="SE"/></connections><background><path><move x="20.56" y="5"/><arc rx="15" ry="15" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="31.56" y="0"/><line x="65.56" y="0"/><arc rx="15" ry="15" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="76.56" y="5"/><line x="96.56" y="28"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="96.56" y="32"/><line x="76.56" y="55"/><arc rx="15" ry="15" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="65.56" y="60"/><line x="31.56" y="60"/><arc rx="15" ry="15" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="20.56" y="55"/><line x="0.56" y="32"/><arc rx="5" ry="5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="0.56" y="28"/><line x="20.56" y="5"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Process" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><roundrect x="0" y="0" w="100" h="100" arcsize="6"/></background><foreground><fillstroke/></foreground></shape><shape name="Sequential Data" h="99" w="99" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.145" y="0.145" perimeter="0" name="NW"/><constraint x="0.145" y="0.855" perimeter="0" name="SW"/><constraint x="0.855" y="0.145" perimeter="0" name="NE"/><constraint x="1" y="1" perimeter="0" name="SE"/></connections><background><ellipse x="0" y="0" w="99" h="99"/></background><foreground><fillstroke/><path><move x="49.5" y="99"/><line x="99" y="99"/></path><stroke/></foreground></shape><shape name="Sort" h="98" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="51" y="1"/><line x="97" y="47"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="97" y="51"/><line x="51" y="97"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="47" y="97"/><line x="1" y="51"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="1" y="47"/><line x="47" y="1"/><arc rx="2.5" ry="2.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="51" y="1"/><close/></path></background><foreground><fillstroke/><path><move x="0" y="49"/><line x="98" y="49"/></path><stroke/></foreground></shape><shape name="Start 1" h="60" w="99" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.145" y="0.145" perimeter="0" name="NW"/><constraint x="0.145" y="0.855" perimeter="0" name="SW"/><constraint x="0.855" y="0.145" perimeter="0" name="NE"/><constraint x="0.855" y="0.855" perimeter="0" name="SE"/></connections><background><ellipse x="0" y="0" w="99" h="60"/></background><foreground><fillstroke/></foreground></shape><shape name="Start 2" h="99" w="99" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.145" y="0.145" perimeter="0" name="NW"/><constraint x="0.145" y="0.855" perimeter="0" name="SW"/><constraint x="0.855" y="0.145" perimeter="0" name="NE"/><constraint x="0.855" y="0.855" perimeter="0" name="SE"/></connections><background><ellipse x="0" y="0" w="99" h="99"/></background><foreground><fillstroke/></foreground></shape><shape name="Stored Data" h="60" w="96.51" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="0.93" y="0.5" perimeter="0" name="E"/><constraint x="0.1" y="0" perimeter="0" name="NW"/><constraint x="0.1" y="1" perimeter="0" name="SW"/><constraint x="0.995" y="0.01" perimeter="0" name="NE"/><constraint x="0.995" y="0.99" perimeter="0" name="SE"/></connections><background><path><move x="10" y="0"/><line x="96" y="0"/><arc rx="1.5" ry="1.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="96" y="2"/><arc rx="10" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="0" x="96" y="58"/><arc rx="1.5" ry="1.5" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="96" y="60"/><line x="10" y="60"/><arc rx="10" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="10" y="0"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Summing Function" h="70" w="70" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.145" y="0.145" perimeter="0" name="NW"/><constraint x="0.145" y="0.855" perimeter="0" name="SW"/><constraint x="0.855" y="0.145" perimeter="0" name="NE"/><constraint x="0.855" y="0.855" perimeter="0" name="SE"/></connections><background><ellipse x="0" y="0" w="70" h="70"/></background><foreground><fillstroke/><path><move x="0" y="35"/><line x="70" y="35"/></path><stroke/><path><move x="35" y="0"/><line x="35" y="70"/></path><stroke/></foreground></shape><shape name="Terminator" h="60" w="98" aspect="variable" strokewidth="inherit"><connections><constraint x="0.5" y="0" perimeter="0" name="N"/><constraint x="0.5" y="1" perimeter="0" name="S"/><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/><constraint x="0.11" y="0.11" perimeter="0" name="NW"/><constraint x="0.11" y="0.89" perimeter="0" name="SW"/><constraint x="0.89" y="0.11" perimeter="0" name="NE"/><constraint x="0.89" y="0.89" perimeter="0" name="SE"/></connections><background><path><move x="30" y="0"/><line x="68" y="0"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="68" y="60"/><line x="30" y="60"/><arc rx="30" ry="30" x-axis-rotation="0" large-arc-flag="0" sweep-flag="1" x="30" y="0"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape name="Transfer" h="70" w="97.5" aspect="variable" strokewidth="inherit"><connections><constraint x="0" y="0.5" perimeter="0" name="W"/><constraint x="1" y="0.5" perimeter="0" name="E"/></connections><background><path><move x="0" y="20"/><line x="59" y="20"/><line x="59" y="0"/><line x="97.5" y="35"/><line x="59" y="70"/><line x="59" y="50"/><line x="0" y="50"/><close/></path></background><foreground><fillstroke/></foreground></shape></shapes>',_t["bpmn.xml"]='<shapes name="mxgraph.bpmn"><shape h="10.39" name="Ad Hoc" strokewidth="inherit" w="15"><connections/><background><path><move x="0" y="1.69"/><arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="7.5" x-axis-rotation="0" y="1.69"/><arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="15" x-axis-rotation="0" y="1.69"/><line x="15" y="8.69"/><arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="7.5" x-axis-rotation="0" y="8.69"/><arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="0" x-axis-rotation="0" y="8.69"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape h="65" name="Business Rule Task" strokewidth="inherit" w="100"><connections/><background><rect h="65" w="100" x="0" y="0"/></background><foreground><fillstroke/><path><move x="0" y="15"/><line x="100" y="15"/><move x="1" y="40"/><line x="99.4" y="40"/><move x="25" y="15"/><line x="25" y="65"/></path><stroke/></foreground></shape><shape aspect="fixed" h="97" name="Cancel End" strokewidth="inherit" w="97"><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="97" w="97" x="0" y="0"/></background><foreground><strokewidth width="3"/><fillstroke/><path><move x="23.5" y="23.5"/><line x="73.5" y="73.5"/><move x="73.5" y="23.5"/><line x="23.5" y="73.5"/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Cancel Intermediate" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><ellipse h="92" w="92" x="3.5" y="3.5"/><fillstroke/><strokewidth width="3"/><path><move x="24.5" y="24.5"/><line x="74.5" y="74.5"/><move x="74.5" y="24.5"/><line x="24.5" y="74.5"/></path><stroke/></foreground></shape><shape h="10" name="Compensation" strokewidth="inherit" w="15"><connections/><background><path><move x="0" y="5"/><line x="7.5" y="0"/><line x="7.5" y="10"/><close/><move x="7.5" y="5"/><line x="15" y="0"/><line x="15" y="10"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape aspect="fixed" h="97" name="Compensation End" strokewidth="inherit" w="97"><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><save/><ellipse h="97" w="97" x="0" y="0"/></background><foreground><strokewidth width="3"/><fillstroke/><restore/><rect/><stroke/><path><move x="26.5" y="48.5"/><line x="48.5" y="33.5"/><line x="48.5" y="63.5"/><close/><move x="48.5" y="48.5"/><line x="70.5" y="33.5"/><line x="70.5" y="63.5"/><close/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Compensation Intermediate" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><ellipse h="92" w="92" x="3.5" y="3.5"/><fillstroke/><path><move x="27.5" y="49.5"/><line x="49.5" y="34.5"/><line x="49.5" y="64.5"/><close/><move x="49.5" y="49.5"/><line x="71.5" y="34.5"/><line x="71.5" y="64.5"/><close/></path><stroke/></foreground></shape><shape aspect="fixed" h="97" name="Error End" strokewidth="inherit" w="97"><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><save/><ellipse h="97" w="97" x="0" y="0"/></background><foreground><strokewidth width="3"/><fillstroke/><restore/><rect/><stroke/><path><move x="26.5" y="79.5"/><line x="39.5" y="24.5"/><line x="58.5" y="61.5"/><line x="69.5" y="18.5"/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Error Intermediate" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><ellipse h="92" w="92" x="3.5" y="3.5"/><stroke/><path><move x="27.5" y="80.5"/><line x="40.5" y="25.5"/><line x="59.5" y="62.5"/><line x="70.5" y="19.5"/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Gateway" 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"/><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="49.5" y="0"/><line x="99" y="49.5"/><line x="49.5" y="99"/><line x="0" y="49.5"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape aspect="fixed" h="99" name="Gateway AND" 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"/><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="49.5" y="0"/><line x="99" y="49.5"/><line x="49.5" y="99"/><line x="0" y="49.5"/><close/></path></background><foreground><fillstroke/><path><move x="49.5" y="19.5"/><line x="49.5" y="79.5"/><move x="79.5" y="49.5"/><line x="19.5" y="49.5"/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Gateway COMPLEX" 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"/><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="49.5" y="0"/><line x="99" y="49.5"/><line x="49.5" y="99"/><line x="0" y="49.5"/><close/></path></background><foreground><fillstroke/><strokewidth width="3"/><path><move x="79.5" y="49.5"/><line x="19.5" y="49.5"/><move x="49.5" y="19.5"/><line x="49.5" y="79.5"/><move x="28.5" y="28.5"/><line x="70.5" y="70.5"/><move x="70.5" y="28.5"/><line x="28.5" y="70.5"/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Gateway OR" 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"/><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="49.5" y="0"/><line x="99" y="49.5"/><line x="49.5" y="99"/><line x="0" y="49.5"/><close/></path></background><foreground><fillstroke/><strokewidth width="3"/><ellipse h="50" w="50" x="24.5" y="24.5"/><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Gateway XOR (data)" 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"/><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="49.5" y="0"/><line x="99" y="49.5"/><line x="49.5" y="99"/><line x="0" y="49.5"/><close/><move x="37.5" y="23.5"/><line x="61.5" y="75.5"/><move x="61.5" y="23.5"/><line x="37.5" y="75.5"/></path></background><foreground><fillstroke/></foreground></shape><shape aspect="fixed" h="99" name="Gateway XOR (event)" 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"/><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="49.5" y="0"/><line x="99" y="49.5"/><line x="49.5" y="99"/><line x="0" y="49.5"/><close/></path></background><foreground><fillstroke/><ellipse h="49.8" w="49.8" x="24.6" y="24.6"/><stroke/><ellipse h="46.2" w="46.2" x="26.4" y="26.4"/><stroke/><path><move x="49.5" y="37.1"/><line x="60.2" y="55.7"/><line x="38.8" y="55.7"/><close/><move x="49.5" y="61.9"/><line x="59.5" y="43.3"/><line x="38.5" y="43.3"/><close/></path><stroke/></foreground></shape><shape aspect="fixed" h="97" name="General End" strokewidth="inherit" w="97"><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="97" w="97" x="0" y="0"/></background><foreground><strokewidth width="3"/><fillstroke/></foreground></shape><shape aspect="fixed" h="99" name="General Intermediate" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><ellipse h="92" w="92" x="3.5" y="3.5"/><stroke/></foreground></shape><shape aspect="fixed" h="99" name="General Start" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/></foreground></shape><shape aspect="fixed" h="97" name="Link End" strokewidth="inherit" w="97"><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><save/><ellipse h="97" w="97" x="0" y="0"/></background><foreground><strokewidth width="3"/><fillstroke/><restore/><rect/><stroke/><path><move x="25.5" y="57.5"/><line x="25.5" y="39.5"/><line x="54.5" y="39.5"/><line x="54.5" y="31.5"/><line x="71.5" y="48.5"/><line x="54.5" y="65.5"/><line x="54.5" y="57.5"/><close/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Link Intermediate" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><ellipse h="92" w="92" x="3.5" y="3.5"/><stroke/><path><move x="26.5" y="58.5"/><line x="26.5" y="40.5"/><line x="55.5" y="40.5"/><line x="55.5" y="32.5"/><line x="72.5" y="49.5"/><line x="55.5" y="66.5"/><line x="55.5" y="58.5"/><close/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Link Start" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><path><move x="26.5" y="58.5"/><line x="26.5" y="40.5"/><line x="55.5" y="40.5"/><line x="55.5" y="32.5"/><line x="72.5" y="49.5"/><line x="55.5" y="66.5"/><line x="55.5" y="58.5"/><close/></path><stroke/></foreground></shape><shape h="21.62" name="Loop" strokewidth="inherit" w="22.49"><connections/><background><path><move x="5.5" y="19.08"/><arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="10.5" x-axis-rotation="0" y="21.08"/><move x="5.5" y="14.08"/><line x="5.5" y="19.08"/><line x="0" y="17.58"/></path></background><foreground><stroke/></foreground></shape><shape aspect="fixed" h="10.39" name="Loop Marker" strokewidth="inherit" w="15"><connections/><background><path><move x="0" y="1.69"/><arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="7.5" x-axis-rotation="0" y="1.69"/><arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="15" x-axis-rotation="0" y="1.69"/><line x="15" y="8.69"/><arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="7.5" x-axis-rotation="0" y="8.69"/><arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="0" x-axis-rotation="0" y="8.69"/><close/><close/></path></background><foreground><fillstroke/></foreground></shape><shape h="59.28" name="Manual Task" strokewidth="inherit" w="91.4"><connections/><background><path><move x="0" y="14"/><arc large-arc-flag="0" rx="20" ry="20" sweep-flag="1" x="14" x-axis-rotation="0" y="0"/><line x="50" y="0"/><arc large-arc-flag="0" rx="6" ry="6" sweep-flag="1" x="50" x-axis-rotation="0" y="11"/><line x="26" y="11"/><line x="87" y="11"/><arc large-arc-flag="0" rx="7" ry="7" sweep-flag="1" x="87" x-axis-rotation="0" y="24"/><line x="45" y="24"/><line x="87" y="24"/><arc large-arc-flag="0" rx="7" ry="7" sweep-flag="1" x="87" x-axis-rotation="0" y="37"/><line x="49" y="37"/><line x="82" y="37"/><arc large-arc-flag="0" rx="6" ry="6" sweep-flag="1" x="82" x-axis-rotation="0" y="49"/><line x="48" y="49"/><line x="75" y="49"/><arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="75" x-axis-rotation="0" y="59"/><line x="9" y="59"/><arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="0" x-axis-rotation="0" y="52"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape aspect="fixed" h="97" name="Message End" strokewidth="inherit" w="97"><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><save/><ellipse h="97" w="97" x="0" y="0"/></background><foreground><strokewidth width="3"/><fillstroke/><restore/><rect/><stroke/><rect h="40" w="70" x="13.5" y="28.5"/><stroke/><path><move x="13.5" y="28.5"/><line x="48.5" y="48.5"/><line x="83.5" y="28.5"/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Message Intermediate" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><ellipse h="92" w="92" x="3.5" y="3.5"/><stroke/><rect h="40" w="70" x="14.5" y="29.5"/><stroke/><path><move x="14.5" y="29.5"/><line x="49.5" y="49.5"/><line x="84.5" y="29.5"/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Message Start" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><rect h="40" w="70" x="14.5" y="29.5"/><stroke/><path><move x="14.5" y="29.5"/><line x="49.5" y="49.5"/><line x="84.5" y="29.5"/></path><stroke/></foreground></shape><shape aspect="fixed" h="97" name="Multiple End" strokewidth="inherit" w="97"><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><save/><ellipse h="97" w="97" x="0" y="0"/></background><foreground><strokewidth width="3"/><fillstroke/><restore/><rect/><stroke/><path><move x="48.5" y="23.5"/><line x="70.5" y="60.5"/><line x="26.5" y="60.5"/><close/><move x="48.5" y="73.5"/><line x="70.5" y="36.5"/><line x="26.5" y="36.5"/><close/></path><stroke/></foreground></shape><shape aspect="fixed" h="14" name="Multiple Instances" strokewidth="inherit" w="9"><connections/><background><path><move x="0" y="0"/><line x="3" y="0"/><line x="3" y="14"/><line x="0" y="14"/><close/><move x="6" y="0"/><line x="9" y="0"/><line x="9" y="14"/><line x="6" y="14"/><close/></path></background><foreground><fillstroke/></foreground></shape><shape aspect="fixed" h="99" name="Multiple Intermediate" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><ellipse h="92" w="92" x="3.5" y="3.5"/><stroke/><path><move x="49.5" y="24.5"/><line x="71.5" y="61.5"/><line x="27.5" y="61.5"/><close/><move x="49.5" y="74.5"/><line x="71.5" y="37.5"/><line x="27.5" y="37.5"/><close/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Multiple Start" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><path><move x="49.5" y="24.5"/><line x="71.5" y="61.5"/><line x="27.5" y="61.5"/><close/><move x="49.5" y="74.5"/><line x="71.5" y="37.5"/><line x="27.5" y="37.5"/><close/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Rule Intermediate" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><ellipse h="92" w="92" x="3.5" y="3.5"/><stroke/><rect h="68" w="40" x="29.5" y="15.5"/><stroke/><path><move x="29.5" y="22.5"/><line x="61.5" y="22.5"/><move x="29.5" y="40.5"/><line x="61.5" y="40.5"/><move x="29.5" y="58.5"/><line x="61.5" y="58.5"/><move x="29.5" y="76.5"/><line x="61.5" y="76.5"/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Rule Start" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><rect h="68" w="40" x="29.5" y="15.5"/><stroke/><path><move x="29.5" y="22.5"/><line x="61.5" y="22.5"/><move x="29.5" y="40.5"/><line x="61.5" y="40.5"/><move x="29.5" y="58.5"/><line x="61.5" y="58.5"/><move x="29.5" y="76.5"/><line x="61.5" y="76.5"/></path><stroke/></foreground></shape><shape h="100" name="Script Task" strokewidth="inherit" w="73.4"><connections/><background><path><move x="61.7" y="0"/><arc large-arc-flag="0" rx="40" ry="40" sweep-flag="0" x="61.7" x-axis-rotation="0" y="50"/><arc large-arc-flag="0" rx="40" ry="40" sweep-flag="1" x="61.7" x-axis-rotation="0" y="100"/><line x="11.7" y="100"/><arc large-arc-flag="0" rx="40" ry="40" sweep-flag="0" x="11.7" x-axis-rotation="0" y="50"/><arc large-arc-flag="0" rx="40" ry="40" sweep-flag="1" x="11.7" x-axis-rotation="0" y="0"/><close/></path></background><foreground><fillstroke/><path><move x="21.7" y="50"/><line x="51.7" y="50"/><move x="13.7" y="30"/><line x="43.7" y="30"/><move x="15.7" y="10"/><line x="45.7" y="10"/><move x="29.7" y="70"/><line x="59.7" y="70"/><move x="27.7" y="90"/><line x="57.7" y="90"/></path><stroke/></foreground></shape><shape h="93.3" name="Service Task" strokewidth="inherit" w="90.9"><connections/><background><path><move x="2.06" y="24.62"/><line x="10.17" y="30.95"/><line x="9.29" y="37.73"/><line x="0" y="41.42"/><line x="2.95" y="54.24"/><line x="13.41" y="52.92"/><line x="17.39" y="58.52"/><line x="13.56" y="67.66"/><line x="24.47" y="74.44"/><line x="30.81" y="66.33"/><line x="37.88" y="67.21"/><line x="41.57" y="76.5"/><line x="54.24" y="73.55"/><line x="53.06" y="62.94"/><line x="58.52" y="58.52"/><line x="67.21" y="63.09"/><line x="74.58" y="51.88"/><line x="66.03" y="45.25"/><line x="66.92" y="38.62"/><line x="76.5" y="34.93"/><line x="73.7" y="22.26"/><line x="62.64" y="23.44"/><line x="58.81" y="18.42"/><line x="62.79" y="8.7"/><line x="51.74" y="2.21"/><line x="44.81" y="10.47"/><line x="38.03" y="9.43"/><line x="33.75" y="0"/><line x="21.52" y="3.24"/><line x="22.7" y="13.56"/><line x="18.13" y="17.54"/><line x="8.7" y="13.56"/><close/><move x="24.8" y="39"/><arc large-arc-flag="1" rx="12" ry="12" sweep-flag="1" x="51.8" x-axis-rotation="0" y="39"/><arc large-arc-flag="0" rx="12" ry="12" sweep-flag="1" x="24.8" x-axis-rotation="0" y="39"/><close/></path></background><foreground><fillstroke/><path><move x="16.46" y="41.42"/><line x="24.57" y="47.75"/><line x="23.69" y="54.53"/><line x="14.4" y="58.22"/><line x="17.35" y="71.04"/><line x="27.81" y="69.72"/><line x="31.79" y="75.32"/><line x="27.96" y="84.46"/><line x="38.87" y="91.24"/><line x="45.21" y="83.13"/><line x="52.28" y="84.01"/><line x="55.97" y="93.3"/><line x="68.64" y="90.35"/><line x="67.46" y="79.74"/><line x="72.92" y="75.32"/><line x="81.61" y="79.89"/><line x="88.98" y="68.68"/><line x="80.43" y="62.05"/><line x="81.32" y="55.42"/><line x="90.9" y="51.73"/><line x="88.1" y="39.06"/><line x="77.04" y="40.24"/><line x="73.21" y="35.22"/><line x="77.19" y="25.5"/><line x="66.14" y="19.01"/><line x="59.21" y="27.27"/><line x="52.43" y="26.23"/><line x="48.15" y="16.8"/><line x="35.92" y="20.04"/><line x="37.1" y="30.36"/><line x="32.53" y="34.34"/><line x="23.1" y="30.36"/><close/><move x="39.2" y="55.8"/><arc large-arc-flag="1" rx="12" ry="12" sweep-flag="1" x="66.2" x-axis-rotation="0" y="55.8"/><arc large-arc-flag="0" rx="12" ry="12" sweep-flag="1" x="39.2" x-axis-rotation="0" y="55.8"/><close/></path><fillstroke/></foreground></shape><shape aspect="fixed" h="97" name="Terminate" strokewidth="inherit" w="97"><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="97" w="97" x="0" y="0"/></background><foreground><strokewidth width="3"/><fillstroke/><strokewidth width="42"/><ellipse h="42" w="42" x="27.5" y="27.5"/><fillstroke/></foreground></shape><shape aspect="fixed" h="99" name="Timer Intermediate" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><ellipse h="92" w="92" x="3.5" y="3.5"/><stroke/><ellipse h="78" w="78" x="10.5" y="10.5"/><stroke/><path><move x="49.5" y="49.5"/><line x="51.5" y="16"/><move x="49.5" y="49.5"/><line x="71.5" y="49.5"/><move x="49.5" y="10.5"/><line x="49.5" y="15.5"/><move x="69" y="15.6"/><line x="66.2" y="20.5"/><move x="83.2" y="29.8"/><line x="78.3" y="32.8"/><move x="88.5" y="49.5"/><line x="83.5" y="49.5"/><move x="83.2" y="69.2"/><line x="78.3" y="66.2"/><move x="30" y="15.6"/><line x="32.8" y="20.5"/><move x="69" y="83.4"/><line x="66.2" y="78.5"/><move x="49.5" y="83.5"/><line x="49.5" y="88.5"/><move x="30" y="83.4"/><line x="32.8" y="78.5"/><move x="15.8" y="69.2"/><line x="20.7" y="66.2"/><move x="10.5" y="49.5"/><line x="15.5" y="49.5"/><move x="15.8" y="29.8"/><line x="20.7" y="32.8"/></path><stroke/></foreground></shape><shape aspect="fixed" h="99" name="Timer Start" 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"/><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="99" w="99" x="0" y="0"/></background><foreground><fillstroke/><ellipse h="78" w="78" x="10.5" y="10.5"/><stroke/><path><move x="49.5" y="49.5"/><line x="51.5" y="16"/><move x="49.5" y="49.5"/><line x="71.5" y="49.5"/><move x="49.5" y="10.5"/><line x="49.5" y="15.5"/><move x="69" y="15.6"/><line x="66.2" y="20.5"/><move x="83.2" y="29.8"/><line x="78.3" y="32.8"/><move x="88.5" y="49.5"/><line x="83.5" y="49.5"/><move x="83.2" y="69.2"/><line x="78.3" y="66.2"/><move x="30" y="15.6"/><line x="32.8" y="20.5"/><move x="69" y="83.4"/><line x="66.2" y="78.5"/><move x="49.5" y="83.5"/><line x="49.5" y="88.5"/><move x="30" y="83.4"/><line x="32.8" y="78.5"/><move x="15.8" y="69.2"/><line x="20.7" y="66.2"/><move x="10.5" y="49.5"/><line x="15.5" y="49.5"/><move x="15.8" y="29.8"/><line x="20.7" y="32.8"/></path><stroke/></foreground></shape><shape h="91.81" name="User Task" strokewidth="inherit" w="94"><connections/><background><path><move x="0" y="91.81"/><line x="0" y="63.81"/><arc large-arc-flag="0" rx="50" ry="50" sweep-flag="1" x="24" x-axis-rotation="0" y="42.81"/><arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="33" x-axis-rotation="0" y="41.81"/><arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="48" x-axis-rotation="0" y="58.81"/><arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="66" x-axis-rotation="0" y="41.81"/><arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="76.8" x-axis-rotation="0" y="42.81"/><arc large-arc-flag="0" rx="35" ry="35" sweep-flag="1" x="94" x-axis-rotation="0" y="63.81"/><line x="94" y="91.81"/><close/><move x="66" y="41.81"/><arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="48" x-axis-rotation="0" y="58.81"/><arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="33" x-axis-rotation="0" y="41.81"/><arc large-arc-flag="0" rx="25" ry="25" sweep-flag="0" x="38" x-axis-rotation="0" y="40.81"/><line x="39" y="36.81"/><arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="32" x-axis-rotation="0" y="30.81"/><arc large-arc-flag="1" rx="18" ry="12" sweep-flag="1" x="66" x-axis-rotation="0" y="30.81"/><arc large-arc-flag="0" rx="12" ry="12" sweep-flag="1" x="58" x-axis-rotation="0" y="36.81"/><line x="59" y="40.81"/><close/></path></background><foreground><fillstroke/><path><move x="16" y="75.81"/><line x="16" y="90.81"/><move x="75" y="75.81"/><line x="75" y="90.81"/></path><stroke/><fillcolor color="#000000"/><path><move x="32" y="30.81"/><arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="29" x-axis-rotation="0" y="13.81"/><arc large-arc-flag="0" rx="22" ry="22" sweep-flag="1" x="48" x-axis-rotation="0" y="0.81"/><arc large-arc-flag="0" rx="22" ry="22" sweep-flag="1" x="70" x-axis-rotation="0" y="13.81"/><arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="66" x-axis-rotation="0" y="30.81"/><arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="64" x-axis-rotation="0" y="21.81"/><arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="50" x-axis-rotation="0" y="20.81"/><arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="35" x-axis-rotation="0" y="21.81"/><arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="32" x-axis-rotation="0" y="30.81"/><close/></path><fillstroke/></foreground></shape></shapes>',_t["Credit_Card_128x128.png"]="data:image/png,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",_t["Database_128x128.png"]="data:image/png,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",_t["Doctor1_128x128.png"]="data:image/png,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAADdgAAA3YBfdWCzAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAACReSURBVHja7X0JeBzVle6p3rvV2ndZkuV93xcW2wEvLIEYDBjCFsIwkMnEZJk3wMxAhmHmC28G8l5I2LIwCQmJgYEAHyQkcR5hCWBsbDAm3u3g3bJsy5IlqyX1UvXOf7uquqq6utVabLnlvvru161eqqvu+e85/1nuLUlRFMq1s7c5ckOQA0CuncXNlRsC+yZJkuPy+bPrS4L+ycXBQGlZaeDQv/7o5f835K4zxwGI/nbp4spgnvvv2kPhpd2R6Oi2js5ga1vIFZNl0+dqK4s7RtaUv1wU9P/TPz/xfGMOAFncHrpz+fhDx0KPNza3zj505EShrMgZf9frdtHEkdUbh5cXXnLPky825QCQZe07X1n+pQ827366pT3k7M9xSgryorMmDP/Hf3/qpUdzAMiSdstlC369bd+Ra1yOgeG/zBVo5ri6j0onnjf3gQcekLNtPM4qL+DGS+e/uvovf72mI9RF0VhsQI6JCfTRtn2zQrs/WplzA8/gdvOlC777/sYdV2j/Wwlef9v6LXu/+OCKa+fkAHAGti9dNu9L72zYepcsK4aZO7C/0dUdkXbsPfLbHADOwPbpzgOPs3uX8v2iwiC5XP0Piezcd6Ti3luXPZ4jgWdQu37J3OWr1m550c2um9ftJq/HrT+WFOXTjV+4gC6az5pbctDajdvoFy+touaWE33+vYI8n7xoxuiabHEPh3wkcNv+I4/Zgby6vJj+486bqKq6gmXv4u6g+XOn0ezpk+jVVe/SW6s/oiPNLRn9RlVZMX3z1qupsamJnvjV7xyHWtpf5Jc/l9MAg9yuvXZh8Pevr2mHy+cxzPzxDcPo4bv+hoJ5AXL5AiQ5nQwA7qwFoAng2mFctu7aQ++v20jb/7qXDh0+Si7+nM+LY3jI52GNwr2Ezcet11xEZRVVFA130v/58f/Q+s276NLzJ0/558ee35TTAIPYIkfbbouxu2f1+e9YvoQCPl98Bgjhu+IAcCQAIPF7k8aPoYnjRjNjlBkQ3OUYKXw8RY7yI/dohORYRDyGO9rJyQA7f/p4Wv3JdjoZ6rqeD/HtHAAGsbW0hb5gfW3EsAqaOnYE/IC4JwCBQ/gAgqSBQDKqSCF8Em6jhK+J74ovO2R+n4HBj+FQG/nyi2jutHE0pr6KQt3RGTkvYJBba3togvW14VXlQnaiyxSf/ZoW0EyBeO4yP/LrDgEUTVtwFNnh1DUHzEekK8SfcdDiuZOprT00OUcCB/viXM4u62uw26TFA5xKXKia8KWEGTAFDCQ5zgtU0yCQw69LDjzGBAgUR4xikW5yerw0rLKYGo+dGJbTAIPcAl7PYetrqzdup+Mn2mEAWI5S8qxXu8PwXNJnurUDLHHyKAgkw0OORino91PryU7nAwsXunIAGFwA7LW+1s55gC2fHUyEAqG+NRCopkBT9Q5N9dsAQXxPA4HaBQhYOwQCXiaZbuWBt96K5kzAIDafz2vrhhUE/XEyJ0DgMNh6zR2U4oRPU/eGvIGkkgeJX1OkmD770RUGgRwDAPyU5/VGchxgkJvf6Vpvqxl8XuHnQ5iw6omZHQ8IiVktAABhQ83HdAcAdh9egeSIic8pBhIoNAC7iD7mAfn5/s4cBxjkVl1K7+sz2dAOH21h4cfdOUlzA4Wqd5rZv24GXEm2P6EtVNKouo8y3Eb+yeI8/4kcAAa5PfLiB52C9Vtac2u7zvCFJjAI1GEkg5p34DQK3iG8BdIFL5nMgPAT+JgFhXnNORNwJpgBrzfW2dWtl37dfctSWjJ7atyOsyCdCAUbTYBT9e/5D56Cbv+FyYgHfTT1r9t+SQ0eqR3KpawgrzEHgEFsG35x/2V+j/fm4oIAMQDEa5NG1tKimZPUKBCHAXx5guFr0UBSvQBSiaCAgBRT5a8I4ifx/4o2+4XAzcIX//OxR9dW7cuZgEFsRw53PNd8vOOG+7681Cmpod3li+bqjICtNXnzCwzuXMIVNHEBh8vi+mkzXzI8SnEyqSWSOGcwaUzdgZwGGMSWH/R1FJfkFZSUFFA1p2uPcfBn0ohhcVXOwnf588ldVKoLUheuagri+QBFdQag/mMWdW+d+ZIheCjc/46cBhjMIFC+Z6fmzM2ZMEK4fmX5QREGhqADNcNNDD4+ezUtYM4B6O87kmd+/BfMQFD4N2Q52pIDwKDGAJxb4qZepovnTqK6itI4qeO4vqeojCSXO6G+NaGKiJ7TJvpnY/NVoRtNABk6u5lZMbZD1gTEFGUDGHxbKEKzx42gBdMa434/O+lOnz8+e3XVnSBwkiE9jO/DnpuFbpCzpUlkeM+hVOQAMIhNinSt61Q8XP8fz/3eAAIoNELcnTN/2AgEjQ9gaGJmoieZZ3kSGkygkCpzJmAQm7x3x2aWR5fTCaEqXBLm0mWk6LF9y1TWlUI8PGwld+kRZzmWkh0aYMgCYNIDL4Z9Ttrk8zjjKX0lEfmTw1qYXlG7+lyJ+/uiQ/Wref+MmmI8FvDgcOUAMMhNkZSPfW5nooxLbZH2NsOHSA8M6aVesP2o+ZPVWkANFLqQ7brpJ5ATaMsBYLAvzuF+mqXSKaa/lJjxMS7dkiNhs0DFbE8Uf8oo/NS1gJyY4RaZk1WXJN7LAWCw2/ib71vD8/ZLrI/DJJuFFuto1U2CPstV1q9X/cai6v9xYOiFhDoY0mgGWcllA8+ENvHmf33J53TMZaFEjRxNDocTApUVfeaTVvothB9Vy8Bl1SWUzYDRqks102HokiNnAs6Y1nDdPRs5hNuYmJ8SxcLdBkHKccErBg0gJzSA/p7RHFg0gZUEUo4DnGEXKtFendFDQzMAtHIvXc2rs1/W1L+2CES8HzNogWRNYO2SLOWSQWdWZIiOx3M7kqjYESt6hAA52KM44wKOSSqRc+h5/bjQVRAoMYMWkG0IoqoZ+Hk3hT/OAeBMCgw5pHYhIzWaK4ejiRltCPeK9T+o89dVuYEbGB6NfMAEhDgI9oy/6l9yFUFnlAJgm6y5/JIDtXtRoQVQAq7IhmSPFtSRJH1GJ7yDhPCxIIQ0cig+YzIJ67NlXM4eE6BQUK/0FqrASeH2E+Qr9sQFqlb+xNf8JaqCBdPXF4UmXML4YypyKH+UNdzobJC92+2edqi59RLSA35x4UYYACbWb40BGLvuEmpmQNbdQ10LxDVAZyzmfCEHgDNB7UuSh/v/VFRUrC8M+Cq0ZI+QPz+Jhk5StLMjsexbY/6xqAkIskn9J7oeOdS0gEgyyf825upvfZYDwCA33rOPy3/otbq6uusqi/NbfD6PGvaP0zvOE4h4QKipkddyRBKChcB1wUdtooKxhEcgx8xagOSPR3TWfC+bxmlIcoDnnnuucvfu3dtqamqKCgsLacXSOWFJLAJRdNuupW4h/FDTIfKXV/MGDx59gYdiWBqm2XyyiQkYgkRRppa387YksWwaqyGpAZqbm1e+/vrrBbW1tSSFQ9vnTRk1TErYBSF8RYsIcY92dwoQRLs6zGbAGBASmsEcGFKM0UNF+c7wz399Q7aN1ZDTAC+88MLtv//97xfn5eVRy/HjoWfvvWmYJNR9olwDcR6HKn6K14sIwXYeO0qewiLyBIIJRUFKgvWbvAGTW7i6ob30O9k4XkNKA7z66qt1jY2Nj7z11ltUWlpKf3v9le28EjhIhjkPMEhqubfm9ieIIXsGvNdPd3sra/uwAIWc5A1ohFHzBqJtrGZuzjbVPyQB0NnZ+cxvf/vbYCAQgOtHCz+/rNKhrdvX6gHUaW8s4FQkrWIo3mOcKQy3t3PdQGecIMYsbqLRE5Bjdw6/+M7d2TpmQwYAv/nNb1a0t7dfuGbNGqqqqiLY/5NdXAZQOUGRnI64rKV4bZiY8WqBgKTTArVoRFLJIvIFLGzS2L7RTUzEDbbWX/LVX2bzuA0JALz33nvFRUVF3z10iIkcb9GCos4ZM2awAGVq9dQQefJkySElSsFJ3RfAWPApSIKsC58oXjhqCgTJ5oAQxweeyfaxy3oANDU1TWF1/2sWpv+zzz6j6upqamlpocmTJwszwP661DpyaYR3hIwkqgHiVx5fKKK+5tAihPF1g4InKOa4gGb71dkvxxzyyhwABk/wM7m/x08/Zdu/CDN/69atVFxczLtz5FNBQQEv9o2v8nWGj3v31S4Lyd78Ls0MGCiA6h0oquBlFSeyIfhj1QIx2nugac/oS1ZU5gBwmtvhw4fruT/FT9dxn4fXOOBDJ06coO3btxMI4NixY8Xu3+gAAVqxp7NwZ8UV3bK36ISwBKSqe+2R1X98NBSD3TfMfjlm0gKRSDjKx37t5z//+T05AJyGxu6dnwX/fX66k/vtxnNn+0+tra2EbWGhCcrKynThayt6HEqYH6OF28qXuiO+0kaJDKqf1P2CjBXB1nyAURtwd0gK33QkVv3II4/c/8477/xhz549f3/w4MHSHABOjfBn8wOibN/k7rH7DISN2d/V1UXBYJBXAnl0AMAVRK/PC9He492BzcWXFod81bv1kjBFze6Zon6a0O2yhDHye1wi88NaJ+973/vexW1tbU8yIBr379//KgPhWgaELweAfjZm9RNY+LgBwwfcx6X7rI83f4bQoQEABE3oDodxEweiuTUx+uxoyLfeO7+mw1+3KcHqo+ZiULuQsAEMef6APOfCy9u6u7tp7dq10rPPPqsw+Nz8E1dwWPgFJqCH+fx/umHDhv86cODAghwAeif42dxxl84t3FdQBiFrJoJC7cP1gwYwCd7QC9xhKs+T6FhHxPu2Mmf8Yf/4NSxQWY/1W1S9KTuoVQlzc/O285fccEdRYUn5MW700ksvSZs3b2ZuoG8PWMj9NjZP/3T06NE/M2Fdx2CuzwEgTWPVOYL7s/z0Q+5LevNdkEBNyMgD2AlfMwdzauI+fjgqu9ZGJ577Sf7FO2KSb79tIYhh5hvXCfLeAVJN/Ri68ev/VszHjcL1/OEPf0hwRQFGo2aCO9rR0TGbTRLcRmcOAMmCL+H+f/npNu43kO3q+/QNeX4eZGH3tWCQVfCaVnDzTl9TqxNy2B/OH/924LLS5rwx6xJrAxLZPrsFohxZomBhMQ0fO8m56MobW48fP047duygbdu20a5du8S5aA2kFCSVtdP8I0eO3J8DgNrYNlZzRxbtr9z/VyqCl0kbNmyYGHTMNla3toI39pGFMfK4EjgLMXVYR9PnbC2+eIvs8vV4vx+Z2JZwq6wbSecuuaqsrq5eaIEf/ehHwhSx2jd9HgEqFj5++z5+b8FZD4B9+/bdyw/YzPk+eHL9Pd7w4cOF/YUGQEhYE34qU4BYwPzh5svHLp97IkUT1xRcEWgLNKSt6486PMLYu7mIpKymnq744pcd7AkQ+iuvvGLSAGKg+VwQnOL3sWvZSjZZxWclANhNmvDRRx+t/ctf/vIgq0X3QB0XHgCSQGDlbE56EH4cHMU+hSrzk4egPUL56zznzdxZsnCT7PTYaoOo5NbTvyUV1dQweY5j7ty5BFPwxhtvCDIKl9TY4J3APHGv4/7fZxUANm7cWL1ly5Y1PEs3c5Hm3PHjx4uYPWymdbb0pUH1wwyEQiFUBAkVDI2Qjgugn1Nnz8lwZ9E9scrJH5ZcHWzJG7WOLAvCw06/vs8MjlNcO5auuvoaAUBcz5///Gc6efJk0nFLSkoEH+B2NV//350VAOAY/WyeEZt4RpzDKlACS8aMHTFiBI0aNUrMGq7hE4PXHwAgBQwAQPCoBcRxOSAjOniBHTn08F1DptakVkQdEcrb6Dtnzpbyz++MOf163j8i+UxE1R8spNqxU2jmzJkCgKtWrRK/byWqaDAFcB35/0f4M3VDGgBvvvlmgAX+BwZAiTYIAAAEpQmOK3epvr6e9u7dmzRovQEAjoNjQ/2CC0yaNIlmzZolgKaBzs4cjC2TyOtK7XjglrNNsaKxa0uuqj1aMHEN3zqmO+LwJ6kOf/kIOv/88wWQ2dSJ3ISdFsB5wDzw5/z8+18b0gDg0qxfs9CTYuQYJC7g0GcFBDZ69GgxUzGD+gKAc889Vwy41+ul1157TbwOUwBh4NhWXqCZAyf3BSN7dkAiTP23eWecu6l8WVObn2m91Wx4S2jGrDm6mn/55ZdN14LflNUNquAV4Fq53TGYYeNTCgAmel9kdXxpqveRvDESJQhj3LhxyPj1mhcAQGPGjBGaBCDgwlDByCF8aIB0PAC9LM9BVQU9x2hQQ9BKgfqQs6jB6ZAs7zHRK6uj8847T5ghpKc1k2S8Rk1D+fneQpgjbK4WD0kAsM39T57haYM6YdTfhcNJIIDdhs3uTUMEcPHixWL2wZysX7+eRo4cmST8VJ7BeQ3ejH8L2w/GZGwHysc0VBY5i2tp/vz54ngA8aeffppSo6FuAVqQP7twyAGAZ/8CFuCITD4LLQBtoDUEUkDoAILe3NoWOYBFixaJmQ87CxCg2yaGbLwDP28pN73W26vrFOuBDOcYceVRw+hxQhvhurhcTYSpZcN9h/BbADfCxCr4Fw05ALBA/6s3n7d6AGDxaDAHmTYABwMPzwKz749//KNg3CCWPcUEtOcTKjzsGUj9unZfWT3NmzdPEE+EhyFouLxWkwXQqwCfxnwgb8gAgOvzXYzsub0EjEkLoDU0NIjwaW/4gGYGoAWQnYNWyDQmIMrHuIJ4boO/fwOQXyUIKcgozBF+HyA0ajPtBtUAB2sKB5PYKUMGADwDr+GL6/WqI6sWwIwGW0ZotzcAgBnA7INwf/zjH4sCUcxEbeB7Mgd1RW5y9EMJRCQPlVbVifA0rukHP/gBffzxx1oAyKQFQARhBvj5tCEDAJ7J1/ble5gRRsaMxlFDIUzY0UzdQbh806dPF94A4vIqKAWnyCRE7Ha7mAv0XQts+vBd+odv3iniANBgWKl099130+c+9zn66U9/mqQFcM4wA0MJALP64TmIGWFUlwABfGYjkUrXYPdvvvlmAQCAByBA3SAGGrY4leCN4Bhb4e3T+X+y+k3631+/no40Hably5fTr371K3ryyScFABAfuO+++0Q3aoF4+boydADAgupzcaTYzJkFDRDI6kZMvdUCcK8w27QI4FNPPSVex/+cfjbxgVTmwOd107jK3oGg5VgT/eTBfxQbStz93Z/RP9z7HzRx4kSaM2cOXXHFFfQv994rXMSnn36asIJJ0wLqApWp1Ic6iDMVAHkDpEkECCAgLPYEkbISRbuGAcWMhxZAIAaq/5NPPhGvQyCclOqRB6BPrQ306nxX//EVauZl5kuuvoWmn7+IOqSAyTRNnDBBAAHPH3roIWuEMMjEdVTWA4ADHyN51vbruBggMGg8anX9SPViNoPdZ2oGLrnkEqE9oE0effRR8TriA4gxcD1Cj1yggG8CXVOUWca6i7ea2bYhPqvPv3iZeOygQGKjCVXdY80C8gVcLKp7N/gt1SWclvUA4IuZ199j2AV/tIUesOGZcAEMKmzuTTfdJAIySM9qETmUaAFIAFRPXGBOQzCjcw7xFvTHDsc3Bx03bY4aJOItaCQzmcRva0krXk9g5T8zsx4AjOTPD4Tqt2uVlZWCJCJ8mklDMAkqF9oA7hjKtbSGcDPiBD25hmUFfir0OzM45yhWC4l9B52uhNY4SWYzAs0GjwTN6N7itxn4U7IeADw7Zw2EBrADAdb94XXM3kxCxFC5MAHXXXedMAO8d5Ced8B7IIUo4OwpRHzeyPyer1uL6klmDdYl+VgTOE32vpg1Ex6tiTD+3tisBwAz7PoBOo4tCFBWhdd7owWuvfZaMfNAIn/5y1+a3oNmMJaU24WIa0oCXC+Qfqgw60srhwkgHD20PwFmRkSHxQw4HY6kwJfqCQw/3Z7AgAKACeAI1gADktvGDE3cjCHRwO4BDmMtQU+EEotHly1bJswHIoPG7yFoBFMgi/sCm3lA4lw4PDwiPRfwBfKoaliDeL5nxybTex1SXpKXgm4FMb/mYzd1VNYCgC/g+oE4DsgeBIdHyXLXLoR6MXMgzExzBADNDTfcIIQK9s+5CpMwkEACCIw8wNqGl6aPDHr5LuSVtSoAtpsBEJa8HB52J4HAev4APfdZWQsAFsriAQCR7vqlAodmGjLVAnD9kFhaunSp+O4TTzyRBCoIXq3bt5/hHBgaVZ5aubn5N2oaRttqAOElOIJJGsB67niN+c0dXB/5hawEAKvRSQMBAKmHe/Vp5gHC1GoLe2pwCW+//XbBBbhCWbiFxgaAIHZvzUUY26Sa9IEhlIcXFJfSrs0bkoR7kvJ08665n+Xl5TqY4aKiMJbPczG7ipOyEgB80fkDcIweZzVSvNr6O6jRTLQABA8hX3/99cLeP/bYY0mfQZAGWbuUAs73kt+desgCwQKaMONcauWQ8FY1KKRPDr4xdZcjbkaQ1xBVzBwPgOBROoZrQPUSzpOfD89WADgHAgDWZJBdlE9j0Na6wnQNbuQtt9wi2P/bb78tQsImNc+5eYALdYSpgksz6lJHuYtKK2jGvPia1nd/91LS+yeZDAJ8AIAAJKeLAWQADwEigxZsyFYAuAboOHoyKJUG0ACgLQrNpIELoL7g1ltvFcc2Boa0Bo8BuYNUoKovTccDvDRywjSqrh9Fq994laKRsOn9btYAXZGYmPUAAH4L52/DeeqzFQADcjxDitQWBBAkXsfshy3trRZAXAAzDiVjdppmAidtUMxp1/xeD3sEqbOERWWVrAUWU0fbCdr58Xvm8WEO0B6OL18HEB3qbeltzmFYtgaC+h3E0JJAol6fgaBGyJI+h0E0mopMVxXBiwD5QroYpVp2Nh+fwfHhFdi1ydWpXcKCohJhBh78z4do9sSRSe938J7iCE+jSiiOCtnu3IuAtbMOAKofbOsZWBty/lpYV6skyrRgBN+94IILRG4epeN2dQZYZ7hz505b8JXm+1JGBiXsRTRmAsmefPIpIbHFvBkAiohmmlxEG0+Gz6kmqwDA+XZfb0q4U0XtMm2YoYaqWi0OkUmsgjZt2iR+66KLLhK5gJ/85CeibMtauYtFJgCBHRmcnqZWoLCECV1+hQg9u7vMS91C3TFhwkznJCt2k+G0mIEB2y6eB6Vf6917CgDZ8QCjz56J+wie8P777wuW/+677+prBiB4lG6hbOvyyy8XxSeapkDGDioapsnY6ko89OHeVGPhpKKKWtp94FOayZzgBCX2k+zuOEHuoMd0rV3dYbvDZJcGAL/qFxJdvcMiBGL0BDTimK4h0APha6TxmmuuEbMc+YBzzjmHfvazn4mFHEZTgtQtNEaSz+/zUm2xJ21QqD3qokjnSd5NPrFANNYdSjJ1sUi3XVQwuwDAFxQ5XepfA4BWMiZq+NiHNyZwrA3+NuoBwf4/+OADUS6GMm1sKo1FHGDlWnDJmKfHeeHYdsu7JlWl5mlen58KakbRvoOHyd/drMYsouRSooIqmbSdTTU0t4qsAgAvxd7JNe7/3Q8A9el7Ri2QrqGGAKQRah1C5aVr8W3jOKiEOkFsWIFwMdS/tX4fhBDrCqy/UVrAO4ClWUVUUlFFh46fJHe0XdxcIsxaR+xL5Ei+1pOdYatLXZxVAECbNm3aHWybPzkdwjf6/RBMTwQQmgJaAyYAq3fXrVsnftdYaqZ9zupNACgAAWL1pvNmjTOxOjUZDBYUk7uklrXHcXJ1NTMAuyjgdqJ4IOmzoeQ4RvYBQARK/P55PMN6tcC/t/bfCADtu+mSOJoqR3UQ1hrCdCB6+PzzzwtSiMUaK1eupK9+9avC3uNzScyew8cwA8aVzGi1hc60xLasZjjtPnSMAtFWoQGCfo9YOWRt4e4hAgCOooXYz72AZ1foVGsADDAAkGkCCUJEQghcAHYdlcZIxCCtjLgAKnVRsInaQ7uGEjJ83hT4yfOTL021UFFZBXW58inUxhqm+yT5WANE3PmUdLZ8H2PZfA3ZCQA0tqebWd1OY8EezeTzfYkfaFvDat+F2k4XDYTAURgydepUsY8PFpCiEAQZOAgW3ABq/sILL0yZjobrid80cgQHLyIcX+VLA24XldYyGTzcTGWeMLm4ukj2cFmbtUCEe3uo+7QD4JTdNm7KlCm72GaO5YjWB6xyx58KAECtG4UFrWD1140NHoBW9QNhI+YP7gDBgvzBHUSAKV3DmgLsbAa3USeJhW7aeLAz5XdK2SXcuW87jeAt613Y0Nrloxh5yRWNWLQaAyDoz34NoDWeXSf4Fq4zecDfHmgA4DtG7gAgQJjpVg7hMxA0fH90bCKFRaRwBRmwPQpfOwZMB0rLEmbAx+TOkdYlDFbUU2PTEfXO5MxZyN0TDyjkNHEB6gS5O7MKAHzCDpw4IrZcf+djlXsd21nsBRxKxdD7GjzS7wWs8oBMkkLajIcgYe9hGtLFEJLYGWcUkSjSPA+AIp0Z0FzC9k6uZcT5cQIo5kgGQDRiOncHmylsRAVUBvk3AurNsKUzFgBGwVM8mxXQHhcuXPjDe+65ZxGzb2wDHxsIDWB9jrHpqZhkoBp4A0yB1qoL0ltTvscUVZSV0qEjx8jTwSudLUOPMrX16z40TQYmpFXqGAaMYzmQQHAMkODRPOoJ+ixde83/pz/9KbxgwYL7nnnmma9wBmxnfwFgHAOjJ9CTSzgQTUvoaKXd+QGuJvKm1tQnW9kV5MLSoxEOYR/dS3JXoiQcK4UffvhheuYXvxA1Cnq4ORAoTTGmovP1uwYdACoSPTbdq3bjc3Qf32JlDwdj7mRAfJ9VdnNfTYBR/ZtsaTh8OviT4BGaFsAwjKuwzw3gdjTho3sov6SCgmU1tOMgh0la9olYBMrDcJxLL71UxCQQmVQjnE0PPvjgPpvxM40z/26/9luW+qMuDcJ3p+muHt53f+Mb35jBJmIGk7JzGPVFxpmd6jlCuYgfaLeHgw0HJ8D/GkG0egmpnqd7r6fnCA5p+xS3d3TS77a20ZuvrqRtq1fxKuErafyU6dR1/BCNqiqiWHEDhT1F1HRwD3WeaKb8rsNcbu7Vcw04dx4H4cl8+OGHjy5ZsgQ3mIgKzthD52uODAYA0gm3J2AkdRaa57bbbpvI9ftzGAxTeSB8qQSAki1N4Fp2DR3+PPbdgRk4HQBAQ5YRngRAuPKtTXTvV64jKRISmcS7OMXcFePVRsV15CysFnEDfBV7C1Z07RV3KjM21Any7N/K17+CdzjpthF2OAUIwkofhNlfGyKl6I4076XsYNVcnLGL+14W7msctCnjRE0ZE64yHphi9v0Vdr9CPDtO3H///Vdpdt/YIXgAQKspHGDSbNuwGRQKR5BQGs2LRxZctpxWr3qFxs77AjV56rlauJzzP8lDDSLoJDMA2I2NfPvb336Yha/0cmwdVnJ9OgCg3XM71et96eJ2bAyGGNfrHeeOZPpBq7bgpE4jxxmqrbPYmBQ6HcLXoowAHvrkUXV08fJbadmXV4gooDbbbQdPciSNHlcmPccLWA/0MEaZyuGUk0BZ7bEB7FFLt6o/0e+4447XmYDtlOVEPZVWRXw63EC7CCFuGBVkb6CmvFhUBfU8eA67CGd3H8aM0wiKfNoBoP5oNIOeiryELb3b8lzrXZaOuGtoxYoVb7C6/A2Hm1uNsz6TfYQGusHkaItWx5anrhSSo7HI0cYD29a+ver5Y437k2rPOWmVZzNOmYzx4OQCFNyeW5LSqnO1W/+PqerciGSX4YJc6sVrnoRt59uz7OK+m9f9jb3yyiunsEtVPRArlPrStJqBmmHD5HXv/OHt9hOtbW0tR1pajh5uPXJwf+v+z7Y1H96/t90g1Bf4fJ3MdQrYnOVz4KfwSLwWvdvwGSsQTP/ztfbL55UGUl2qPqnR9XPZuIMui1BTPbfrTpvnTmPnXH7gxhtvHM0Vv6M5zj+SAzauU+kFsMmR+R5FB5mcHuL4Q5jd2JHsyg371re+9f3HH398W4ba0fo83aP2PNxXtX/KAJACCKkEn07ozhT/O1MJXjVnpkeO9/uYK4ybPXv2cPYkqtmTqHCrxYd9AQCr9zBmKNcMNvHyscNMUPe9+OKLe3iBSaeRw3zta18bzTPaf9ddd6018JpYL8xlNA0oBkTwpxQAxtyAGg9wZdidvRC6I4XwrV13ndi1RIKlkjUDK4qKIKeH8zmxE+QsoJ+Fy3ma7rDaIyBjnF7mIp6ubhbwSS4kPcSRumOyLO4dazVlRiIsWwhtzAYEVjDEMgGCcgqEJZ0uxqymNN1pZncqYbtSCN0ocGcKoafymYlSr2JSbFxZ2eZR7gEIPXk6dmCIWQGgnGIBSYPhMqkh5B7teSZqvqdZbwEBWZ5nCgAlBQAUi/CtQJB7AYSoKnD5tMpiMACQxlykm/GOPsx6R5qZL/UBAEoKAKTTBnbmQTcNyiAL4IwBQA/AcNio/Uxn/UAAgAwCVzIwB0kgUM7QgT7jAdALk9JT3Nxho/6lFMJPJ3Dra6Rk8SAOCQDkWt+bIzcEZ3f7//LN3zNHDoHpAAAAAElFTkSuQmCC",_t["Earth_globe_128x128.png"]="data:image/png,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",_t["Email_128x128.png"]="data:image/png,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",_t["Empty_Folder_128x128.png"]="data:image/png,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",_t["Firewall_02_128x128.png"]="data:image/png,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",_t["Full_Folder_128x128.png"]="data:image/png,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",_t["Gear_128x128.png"]=Jt,_t["Graph_128x128.png"]="data:image/png,iVBORw0KGgoAAAANSUhEUgAAAHcAAAB2CAYAAADyZQwvAAAACXBIWXMAAAOKAAADigGnjPUfAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAHvpJREFUeNrtnXlwXVed57+/3zn33rdps2RZtmJLsmxr8RY5dtKxJwlZyVIw0w3NEqgZOgOEdHX3QNMDTdNAJ0NVTw3Ty4RiqgKkyTSZJgtLgAFCujoB7JCQxQlJkFfFuy1bkiW99a7nzB/vPVmynqQn6V3ZTnSqVLL1lnvv+Zzfen7nHNJaY7EtbHvf+94n2tvb26SUnUQ0et999+0M4zpysavDa3fffXcskUh0MHMXM3cSURcRda5du3YtEVlEBCL6XwAW4V6s7Z577mkUQnQWIQLoIqLORCKxiojoQt3XItwy27333suHDh1qk1J2Auhi5k4hRBeATmZeAgBaa2itMQ3P4wB6AewB0KuU6vV9//VFuAtnD6OGYXQA6BRCdBFRUZ2uY2YLwBi8KUBqAIcB9BJRLxHtAdCby+X23H///clFyV0YiEtd1+2UUo4BLEhji9aamBlFZ3MKSQwA9Gmte7XWvUWJtG177wMPPJC9GJ7xLQ333nvv5RdffLE1CIJOIuoSQow5Ncxcz8zlfI0L4EBREosgR0dH9z/22GPuxfz8bwm427dvj0YikXVa605m7iKioj1cx8yRglc609fkAOwt2sPiz7Fjx/qeeeYZ/1Lsl0sK7tatWxsKseEYRGbuMgyjRSnF4yVxGscmpbXeE7X0m61Nbqpnnac3tDvZjlbfZkESRPtB/CqYXkfrL+xLedDTxZbEICLetGlTi9Z6kj0kogYiAjOjKI3T/HuYiHotAwfWNPsj2zpdurrbrm5d7reAaCOYl4IYIAL4vN/EAFMA4r0gehXMr4DoVRC/ihVPDi3CnaG1tbVFLMtaB2DMHhbiw3XMHJ0FxDMAeg3Je9es8IZ3dDn6uo3ZqpYm1QaiDSBuARMVgGEi0GnhTn6dGGA+dh7wV1D/xOG3JdyVK1cuGa9Cx4UWrczM08E7728n8hBpb886P3vFKmf0pk2ZqpWNwWoQbwTxOjDJ0kCmAjYnuKXeOwLi34LoFTC/Wvi9B7HveJc8XCKipqamliAIOosZGmYuwlxapgSCiDQRHWbmPczcy8y9RNQrpdzz/PPPJ+0XVr1uNaoNJBgIGLABOABsAjyaBkjocCe/F54HP3UM7sgIfO85rHj1Ty5quERkxePxdec7NMy8johiZUogiCggoj5m7gWwh4h6mbk3Fovtfemll0rHiE81crY25su4JhkF2CQA4zpYcT5oKQL3CcACwSUf0A6gckCQAoIMoANAq/yPUoCf+Des2XfTBfeWiahuvDNTtIfxeLyNiMZUaRnhxYQYsRhmENH+AwcOOLO8Vx7cGxu7IAnAiCqYNRpWLWDVAjLOQKzQ4ZqhXYDcAuxKKUjyCzA9QGXzUFGA6PqA4wFuAHgB4Csg0Pmc1RJr9IKGQkS0koheYubGCfm06fOlxRhxXwHgWNrtxIkTB7XWlYkRbznj07e7UVQ0OgDcNMNNA+kTBfoGYNUAZq2GVadh1QkgxnkJBkM7eS5wdXmwWQMyAITOjxLy8yCVBlwXsJ08zCLQabUgXVi4AGoBNE71Zq11mpnHgnwi6lVK9Q4PDx/WWqvwb1cXQJVuygNyg0BuUOezgxTArGFE6hnWEgmrXoJiIq9Oi5IdFEArAkwGJAFSAyLIX09rwPOAbA7I2XmgtjsDyJLq8ILDjRd+D49Tob1a614i6s1kMscubAw8yz7VgDui4I4ooM8HCDCrBSINBqwGA1a9CYrKggPE+Q8oBdg5IJnNA7VtwPNL38ysjIoYudBw39BaL1dK9V+cUTk0CPOaH3WTAdxkALxpF2BL1HRWIboiAhw5AmQyk0dQJWZkiYcuKFytdRpA+mLNuDBprSs8+e0lfXgpH1EgL7HQlYE5+eaHxoeOX/jCF7qFEPSlL33pjcXcclGCQuh44oJtDesCAF7obW7+wdc/93lm3vH5z3/+agC1SqlPAliEmx/8CMVry+sCHZ7UAni+t/krJf58csHj3Is5Ex6SysxLLtHsHaUyWypnAsAJADuJaBeAXcz8+iLccyKmw+h8YpwLe0JqQjtr/vZv/77vgmeoLmK2ikKxuShIbngx3F9+6Wt9C91fl6DkhqGWizYX4ahlIdWF6K5LzKEKSXJJhyu5QgaLcGcOhVQooRCNk9xQ7pv9RbgzQwhJcpFPO4a1OECwtwi3DLjh2NxwY1ywcBfhzhznhquWw5JcZhsARj7Y02pEvFoPxuHab70ysggX+bpkx3G2/vivyCqvjnzWgyavlkNqOsNV6Ts37BGCOnVAkBzozF2XvwbG0wT9jCOMX9U98NLo2wLuhg0bmoQQO4hoOxHtYOYtzGzkXEI8GlKcG6Ja1hmqAXTNBNcQejM0bQbzpyJQQe6eLbtZ8NPQeNqKec/iK7/NXPJwiYg7OzvXa613SCm3A9jBzKvHvX6uk1BWac8cQyGEppa1O+P3CgDbtNbbQPRZxzE9fPKq35CgZxTT0xGn7jnc/1Nn9gppgeuWm5qa4olE4ioAOwpS+XtEVDNNQd0gMz8LYOdPv5D6r5qMZZW+p/oeCzKigdMDoTyz39+A3D95AOfLp/O/83lsKv6bMeFvY+/Jf8Ym8K/B9AykfloOuC/igZe8Cw63ubl5pRBiOxHtKPxsJiIxTWXkISLaSUS7DMPY9fLLL+8pftfIT9YdcpXZWnm4JoShgcHBcOAeaUDu4XnBzWusc39LM9EuTfQ0s3oGeHY3vjR5wkxWWMWKhoaGzUS0vWAzdxDRymmWQioAr2mtdzHzriAIdu7du3e6abBwMj2kQ/WWtVPxr0xo1rcSu7eCPQAbtfuZ7u+a/6P3fRWDW19fX+37/tVFW1lfX38VESWmsYs2gBcA7EJ+H4hf79u3L1n+4EEQSigEnS9NDcuhqtByMmINMhRIeiAKACgo14c9kCaVQ7c5H8mNRqNtAHZIKXcA2M7MG4iIpyl9PQvg1wB2MvOuRCLx0htvvOHOXTPAp9CSGAUnNgy4uXkAFQSOAGwokFAANIKsA7s/CXsgCXckB2ggsrRutGy1TEQGgB7DMHZorXcU7OZyIpqujvkoEe0sSuapU6d6dQWNuiYdkuQiVMmFzeV/NwFkMkRMgi2AZP7evGQW9ulR2P2j8NN2iUEgTpcFl4i2ENEuIopOA1IT0RvjVOyuwcHBUEtfiSgcyQ15VsiSFozuKgRZHyrtws+4+cL2cUA5YkBWmeCIGAPqnk3C7h+CfXoEQc6dKVY/Wa7kagDnpwscAC8B2Km13mUYxrPDw8MLXIur/fBsbnhq+fjBYUSdBOqWV8OojcEignICKNsDSQG2BEgQdODDGTwLu38IzplhqPH10jzDvQlxrFy4GQCjWutnAezSWu9yHOcFrUPw+2anPkOBC1KhZqgGDiWRfnMAQjLqlldj+ZpG1DbVgiMWoBVyJ/rhnBmAMzACrYIJ9rb8Z5Bvlgv3oNZ6ycIsEZmN4wOfNFV8xORX44UH108qsMj7KmdPjmLkdApbbt8AKxZF5tBRpA8eOmdvxdxuQhvB/rLgXnRQzxkLr9IAxvLKM6xDmk8LMgF4AjSN1EAaVksEfjoNEvOfDUmlj+6vDTOJEb5apqDSDtW5KoywvGUGgUCilBOn4Du5/OKzeQ1Q1isfmxxwXVpwWXuV1sooVj6eI13hmxbnSW3B/5HFhWfBnFXx2COYRsk886VW/VjxUIiLVRghOVQaXBKuNHhMY8wXrjBl7pKHS6TdiktXUXJDmkDRmierZADCYEAFBSdqfjaXpExf8nCVIr/idzy+8jEEtawVT6mWdQVUch4uj1yycLdu3Rpj5hv//uPiivVrKiy4NE5qw1DLwRRwDeRj2grAZSkGLym4GzdubDcM43YiuoOI3gHAOnVWoLvCAPSEmuUQJNdHabjMUJ5TKck9fVHD3bBhg6m1voaIbmfmO4QQHefntVWAgEpasHmGQlrnKYehlv3Jklvc4QhKVSTGLWzAdnHB7e7uXq6Uul1Elr9H1N1wvazeHGEZg0rthh7dCSgHAI4A+CmAn71zm3ebIuOeytpcNc7mhqGWJ0uukAKAgtYBSFbgolIevuBwiYhbW1uvZDbfJas3/6Fc+v61Vu0WyFg7iAlMDGKGrL0SvOpjtg7S3zcj9V/+5Tda9gBA7hfrrrPDyFAVV9WHIbkeTYIrTQa0htaVsbla6L4LArelpaXO9/1bzUTbe1dv+fgtRs3mhFF9OciIF/bb5KkMSYSNJXcqTXde8/HjzxjA177/fsPXMoTccojrhJSL0nAL1R+VsLki0AcWDO6yZcs2sYy9W1Rter+x7M718ZotJGItY0VwhYRu+f2vcb1iuv5DT/wo9a71T+Dm9p+hNnq2QkmG4lxuSEkMb/JkgJAiP1kBXRGba/3e/vAkt6mpKe44zo0ysfaDRvX6W822z9aaNZtAIgpmAlFllglkvVjVY699GE/87oO4ctXzeOfaH6Nr6WvzV8thxrmuBovzY1zKDyuaf5xLLBT+UAcVhVtTU7NGU+zfG7Vb7pQNd26O1/YIEWnOl2oWN8AMqflK4rmj1+I3x96BVXVHcfOaH2JHy78iIudQrFSMczkch0rZJRwqgzCW8pwvXOIpSzRk+V9CZiQSuZYTXR8yEp13GK2fXSqr1oOlNeYIXYh2bLQVD+3+JB594x5c0/oUblz9BFZUH569zQ2pEkPbejJcQRVTy8RTj2g5A9AVQojbraW33JVo/+OtRvVmgyNNY45QpdRtJZrtR/Fvfb+Ppw/9ATqX/hY3tv8Aly//FQQFZcBFaFtQaUeDuQRc5O08zV9yU3OV3Cfil31k27Itfw07exZ2uh9KXfwHdewb7MGBs1egLjqEa1t/jKua/x+WxvunTmIgtAQVUFJyC9qC9bzjXCIenivck/ZInx747aNUu+YG1DR2w80OwckMQCO4qAE7jo+9ZwSee/1mULAdv/zsXaUli8ZTDkEt5ybbXC6qZZ7/KgcGD8wV7n0y3rMzN3jgf+YGDyLW2IWaNdejamkHXHsYXnYIuIggO46P0XQOo+kcVODDSZ2Al+uH8m24yoIhptt9lcKRXGey5ObVtM6v/cE8TZvm/jnB1Vrvjrd+uRFIAtDInulFdmAv4ss3oGb19bCWrIHrDCPIDYeaCJi279wAmYyDVMZBoAK46ZNwc6cRuBNNke9LGCKY0uSGZnNzkxMVVFybxJj3klQK6PicvWUOrKMTukQrZE6+hmz/G4iv6EFN+3UwatoQuKMI3NEFgez5Ghk7h0zGR6A03Gw/vEw/fHfqMmpNBF2qI8OmW0pyCxWXJOYfW7OWh+cMN+3REatUZymF9PGXkTn1W1RdthV1q/8dIrFaBO4oXKfyh00GCnB9H64TINBALnUauVQ/PPtsWQOKQeMM7MQcVXhsKT9fLKZInIj5mwKlRB/PFa7u/4tMtPbufJK71OuBj+SR55E+vht1rVehfu12xOI1cJ0UXDs9785RSiNQATSATHIQmWQ/cukh5Fd/FtXazD2UHdGQDSXmVsc7VBXPUAlwKVNQpCHmv1OA1Pbe+SUx2AgQqGnnUVXgYahvF0aOvIiG1VeisWM7qqqqYWdTsO1smSgBIRgsBAQLEBip1CCSw/3IpAahitX4lJfF2bTciILKKFQ3C4gILVCcK8BClUyKgVCZ6b4/e/34/OAKy4MKypokD4IApw88h8FDu7Fs7TYs77oa1dXVyGbTyGazJZEahkQkYsCQEiQY6eQIzp7tx8jwAFTgT1Cuc1ZflD8FJpcE4hGewuZWOvdIJaswispm3nCD6TM0ZUqu6QBOZFbX9X2c3PMcTh94GSs6tmLlhqtRU51AOpOF43gwIwailolYxISQAul0CmdOHcPw2TPwPHd8kF4Z60cMkIDSUzlWIahlXaIKo2jmCRWYy7X04ODgtQB2NjQ06DnBZTJyCqJmToPXD3D8d7/BqX2vYGX3VrT1bIcUEiDAzmZw5vQxDA2egePYJYxSBVthfwmNiVOOFKJa1ppKw/ULYdA888qaYhLALwEcGhwc/DaAf25oaOibpVoW6fmWLgVBgMOv/wauncGm627DoTcP4Mzp/opL6DQxAxQRlMbEPQYpxNAtoMkxrsK5GHc+kqsBN7Gu+L82AF8E8MXBwcFnAfwzgEdleSPESE7y5+fYkgOnIQUhmUqGtx1fSb3M+US9nKJYIAS1TKpUcVzhkCqmucENCIFtwZMx5FbfUuodOzzP22Hb9hdlef0iRnSFig6DQEEKQJKYf+ptVuZPQxNBEUOBpwiFKi+5kxwqPc435PIvqD2G78ThRpYA8fznyExMeI/rushmswiCAIZhBGXO5xpnKyW5QaAhBIGlCMe2TgmXoUlDi4kOFY2vwqi0JlFU4iv1rBx/bQu4egm8xLJJex1oGQMA2LaNXC6HIMg7z4ZhpKSUny5TcnmQKgRXexqSASHkgsIlMEAKgmliz1J4kRDcqRNi015PA0HWhGc2w69rmmKwGshwLTJDQ1BKgYhgGMaQlPLLLS0t/1i2Q0UQpytVCx6ovORKKRZ0sl8zQzOgWJy3abMOTy17NEWqZgqVrAE/E4db3YFgRUNpZSAspKq6kK7uglYWAAXDME6apvmXq1at+vasQyHN4lSl1HJ+dwKVl9wFtLkQGgoEzQRdMhSqvFr2jRqonIBhps45T2qyWtY+wXPq4DRugV5aVfq7RAypxDpk423QJEBawRT6sLTif9LS0vKTOScxdDAyXNFVHMqHFAtbpqOLj8oMNWGghrfaQEXqkbvqFti5DMwDv4HpngQXcuJgQDsEV6+Eu/IqKKP0XsOeSCAVa0PWaioYF4WoN3TIIucTK9bf9NS8MlREdFesZs3XIT9WwZ5WkFIsbCjExbBuooRSiN6yUlVQRgIwEshd8W7ktIK1/9cwU4fhm43Irb0JIC45eeCIKqTMZtiyNl/vrQMdUak3mP0/atl83cvlXL8cybUQDAuSsoIPrSCNBba5xWsRQ+mpbC5VWFvUAueFK87GW+GUirELLcdVSIkGuBwv5F58HdX2c6Z0/2PzhmtndfBUOcQGoXLfJ5Z/UKmd/rSvYPDC2lxVqAzXQkBNGFT6nINTYcn11XJos2rmewMhhxhSVAMfRgFMoCLk/Nxy7Y+s2HLtmblcf+b5XK0fB/B4oul/+zNN+5Uf6/oQxkKXxvLYbz3O5hKNj00qR1erGFx3EwqsppBsQkZZSKsIAp3f9UaS8iz2v2tW42OXXXblvLbCL1/XsuFD+ZWB6ytIsXBJDAIhKDiEiuWEfX2p0pUY2oJn18FJN0EbidKSqoG0J5DxGcXz6wzWdkTim2ZVw6eam5srUj9c/ooDFo6GtioS/nkKQvCCJjFQmIHRzBMdqvFqeT5MgwRcuwlerrowiOomqeRAaaRtH1k3GNupwTQoaUn5D6vXdf1NpR95FpIrcoCurgzcAGzKBcstEwpTfQXnZWJueT6LwAjKrYVttyII6vK1yKLowDUCIg/X832kM1lkc3YxAoFpGAOmZdzb3r72a2E99ywkl9NEoiKHR3hOABmhBQyFziUuFIkJjhzNZft7xQi8RmSzXVA6NoV3XgvHU0ilUrBteyzcsSzrmGman2lvb38k7KeeRXwjUhXLynkBDKKFc6joHFzNYkIRJEHlj7QpC6qEZ6+C7W6AKlqoEh/M2ksxnOqC4w2MSWokEtlvGMaftre3P7VQlqhsuJp5pFLOpOfqQiJ/4eASF6vSJsn0zM/uReA6Hch5m6YM3zQI6exSjKZXwvUKMSoTLMt61TCMu9esWfMCFrjNYgknn63UycSupwsHQC2QzSVCZ2s7hk7vQfa82IRITTnIlFMN29kCJ+ieJlRkJDP1GE0tgx+Yhd0DAh2NeLulsexD7e3t+3CBWtlwpRRn3QqtJvC8oiJcKG+ZIKx2NK5qh3KPYTSzB6OBOSa5EwatBoLcMuS8a+GpVdNk2QRG03UYTdVB6Xw3ChHoeNTZZUXVh1etuu4oLnCbEe6JEyc2Abjrrg80f+iBr5+qTObG05MK1cK3uXnHh6wO1FodqHH2YyTzu3FxCsHPtSLt34ZAL5n63gOB0WQ1Upkq6ILxNmQQRKPez6wI/lNLyzVncZG0knCPHz9eB+BOAH9ERFcAQNMyC5Wa9itWri6kWtY4z6u1LketdTmG/VWI8n5kUx8+5ySVNCUCo8kYMlkrP21JBEMGXiQaPGJZ+ERr644sLrImxwFlADcCuAvAfwAwoU55WUPxHJQKSK6v86N+oUIhIgClQ5ZAvhNpvHPK5Ua2wxhNSmSyYiycMQ2di8X016XR+Om2traLdqGyBIBDhw59wTCMjwKY0shcsSkBMy7gZioBl6CABU1iKB0tS8LHwpmcxsiohuOc+5tlIhmJiq+sW7fly7gEmnz44Yc70un0fbfddhuEmFrt1lQJbN1chVd7M8iOzk/iPL+4advCwI3HrPx+UzOFPJqQyXgYTXpwXT0m9JGIOBOJiC+uW3f5A7iEmpRSnnrhhRdw7NgxvOc970FjY+OUb66uEtixtRpvnrBx6GAA7c8NsvIJWoU/K2RIgYY4YVXiLID6aaBqpNI2Rkez8P1gTIKjUfNoJGJ8et26Dd/FJdjkBz7wgeTBgwePHD58uOUb3/gGbr75Zmzbtq1kdUAiLuA4Ct2ro2hdEeCF3Q7SI7MH5PtAoHVokhsxJZZVKTTyCIg0EhEx2aFCvmggmUwimUxCqXNLQqPR6B7Lsv64o6PjF7iE29j5uV/96lf/Zc+ePR/UWmP16tV417vehUQiMQHyf7//NLK5iUsSXz/gYH9vfkf3stVkjYlN71iBQydyFX2YqqjEihobjWb6vEHJ+Nx/WTFucPkYHR1FOp0eg8rMOhqN7jZN82OdnZ2v4C3QJhyO/K1vfeuOvr6+x4eHh6PxeBy33norOjo6xl7/6jcHkEpPpjiS1nhml4P0cHmSGIlLbLppOY6edOf/AESoSxDa63Kos3JT2FzGpz7RBM/zMDIygnQ6PXbYZAHqL03T/GhnZ2cf3kJt0snX3/zmNxOZTOYXfX19VxARNm/ejOuvvx6maeLB/zuEZHpqEX1ut4M3XtfQM0ixGRHYeFMzTpyZO1xmoKkG6FqaRtz0S3q8xba8UeOGHYRMJjP2uhBCxWKxn5qm+dGOjo7TeAu2KY81f+ihhz63b9++L9u2zXV1dbjjjjvwzK9NjKamPyxsYDjAj5+0kRqe2tkSBmPDTc0YGFaYbV2WIYHW+gAbVmRhiunvpb7OR9tKF/W150abYRheNBp9zDCMezo7O1N4C7dpz6x//PHHO44cOfLLU6dOLZNSoqb+cmixvqx9HH6+08aru/2SUsxM6L7pMgwn1YSTRqdrMUuja7mH9c25aacvmAkNdS5WLncQjwVj0mwYhh2NRh+UUv55V1eXi7dBo3Ik58EHH3z04MGD71NKwYo0orp+B4RMzPi5E6cDPPKDHJJnJ1+j88bLkMpqKDXt3aEurrFttYv2Rm96NU0a9XUuljXkYJlqbADmbOm4nvXtthbr7u7uboW3UaNy1eIjjzzy7v37Dz2eyyVNKS3ULd2GWKJt5phWAd/9WQ4vv+ROkOL2a5uRc0uf1UQAmpf4uLbbQ1Pt9DwEa9TV5FBXk4Mh9bi0oZnxfPP+22/t+Su8TRvNxuY9+uij1f2nR58bOHO0m4iQqG7B0qYrwcKcMZ3Xd8zHg99OITWcv96q7cvha8b48z4la6xt9nHzZh+JGXbgEEKhOp5BdSKX3+upcD3Htc4Gyvxv77z58n/E27zRXArNH/o/j9x39EjfXweBS5aVQNNlVyEWXzYtXCBf0vlPj2bw4vM2ll3RBBICWgMRI8AV7QFu3KwhpZ7S681D9RGPpBGxciCcO5rG861TgYr+xS03bfoXLLa5wwWA733vR+uPHjv+q1RycAkzo7GpE43LN05IKU4F6MBhDw/9nFFTZ+CajQpXd818PcEuTJmCIXLjvpegdLRPK/OeG27Y/K+LOCsE91zI9J0fnjx5+N2ARjyxBG3tVyISrZ4WbrnJiTw+G6RHweSMe01oTZHXFBn/+YZrLn95EWNIcAtS/N7jx48+nMulLSkNtLRtQtPy9nnBVUEGKhiFVu452MSaRfRZ0uZHrrlmc98ivgWACwA/+tGPaoeGkrsGBk6uZ2Y0NCxHR9dWmOZs9ibTcJ0UHHsESnljg4NZBtKIPWmZsbu2bu06s4htgeGOSfH3f3jfieNHP+/7HkciUXSv34LGxhXTI1UKmewIMumRCRuISml6phV91HPj91xzTWd6EdcFhgsAP/nJTzYODg49PTx8toGZ0dLShq7ujZDnrfENAh+jI8NIpUYmTLkZhmlHo7FvWJbx5xs3bvQXMV1EcAHgxIkT9OKLL37v+PHjvw8AVVVV2Lp1K+rq6uC6LoaGhjAyMoLxJ21GIpFkLBb7u56envsW0VzEcIvtqaeeeu/JkycfzmazlhACPT09GB0dneBsxWKxwWg0+jc9PT1fW0RyCcEFgGeffbauv7//VwMDAxvWr18/tjAqHo8fj0Qin+np6fnOIopLFG6xPfnkk/dVV1f/GRGdjkQif9rT0/PUIoLw2v8HVFJa5s7uYnIAAAAASUVORK5CYII=",_t["iMac_128x128.png"]="data:image/png,iVBORw0KGgoAAAANSUhEUgAAAGkAAAB5CAYAAAA6VA+hAAAACXBIWXMAAAOKAAADigGnjPUfAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAMupJREFUeNrtfXmQJUeZ35dV7+r7mpnuuU8NEjMaHSNpZoS4hFgth8IcYiGMsYHgHzvCFmBpCUMQQDjCBBsEmGAXy6Ewq4DVCnnNClmykJERwsAKCQQaECPNjOY+e/rufn28fq8q/X2Z+WVm1avX/UaaGbUwNZFT1a/qHZW//L7v9x2ZJaSU8Kft4m6f//zn2+M47l23bt2Wjo6ObUEQrK/VasdbWlqeaW9vf/bWW2+tLvR+8SeQXtn2la98pQf78PUIwjZqeLy+u7t7DXZ+f6FQ6CqVSm3YAmwQRRHMzMyBFAC1agS12jyUioXKzMzMWz/84Q8/1eg7cn/q5ua2b3zjG90IwusNEAqQtra2HQMDAyuKxSIQCLRH6QA8B6Nj41AuT8PM2BSE+Vloa2uHnu4u6OxuBSEEBGEAYRDAmcFzxSAMH8KvWPEnSWpyu/vuu7sIDAaC9tjxV7a2tg4QCD4gtI2NjWGbgNlKRf1dKpagvaMD8oU8oFqDQAR6H4RqLwLh/hb6+MjRIzA2PBjecccd8Z8kydvuvffezrRkYOdf2dfXtxLVFHAjQGjkExjDIyMweG4IVVUNJSFE6WiDXD6PgBSgiNfRawJBoetlLCGW2OcBiQL9HYHEfyg/gH9BDBGew5MoIxOT0/Se7Xjl7/6/BOn+++/vSNmMbfl8fntPT8/qPHUwNgKDJIM6d3JyEs6dOwfj4+NoP2aANE0+rwET2Km5MKeOSRKwt7HzY4jVnvpboAoD/BtfQPtDUqIAMscC/01VqjBVK0AUtkNRTsPqboC29jaYnZy75o8epAcffLA9LRlhGG7v6upak8vpjuU9ddj09DScPXsWRkZG0XZMQQXVFUlBmNNqSBhVFOJ7aB8hGFooqNOVAFipILkIUI2BiNF+4HsRFIQFpmsCKgGqxWIPFDv6oLunF1qLBWgj7PDficMvorRNQk9XN1TKY9v+aIjDo48+2o4gXOFLBqkKpLYEhkBggCWEOnd2dg4GB8/CkSNHYXxiHGZnZpFV1ZQUsM2ggS8UMBKiGqolYzdok+Y/BihSUqFVGAFEcFSjEOYApSPfDWFbH7R1LYcuJAndyg5pQGhPOKIWJCz167miksTW1hbA3735NQfSE088UUQQLkcQtuNeNey4HWgH1jIY1Eg6aE+ScHZwEAEZhNHRMZiamoS5uQp2as3aCRrtusO0ASe7IYNY/43XSBQRuk5DogEiWYkRPBlpm16BElQRDJHrg0LnCmjvWY6d3Abt9PkKaIWf+i8mUhZr8JVOVICRXdLnRI5oeayYHl60acmC9Itf/CJEIDYTCAwI7negwd4S6s2CQR1YrVZheHgYTp85C0NDaDuI6qLqqlTmlf1QQBhVpSBRUkHdjd0jA9WRqvulUFKku43+jw3rCpS01PDammiHOL8Mcu390NLdDx0ISCmXV9/hAKHPRQwMrPSttJHEsOTQt6jzSoKEOqaflMsXIa5II17hyiUB0tNPP70OdxYMOkaDTR54Qel/xY6E7SiSiFOnTsFZNOQjwyMwMT4B07MzEOM52rQEaFCE6Tgw3URSoiUnUEZdKCYllZ7RHRionpIIViQLEJf60IKvgHzHALT2DCCN7q0Dg95C7+Ve1nJpfBkDNZj/UUAhDswrwgBl3svCmi8gSLOKceBrYdclBQnBWE4A+A0l4ypUVW3CM8q0J/swNVWGkwjG6VOn4dzQEIyMjipA5mtV7UsIfbds0Llxjyi7AsJQXWmkB/uDWC4ipHwVvLSG+zjsQDCWQ9g+AIXuldCGLV9sUaNeBLrTCRzJnZopHVoShQeOUmFGmhg6wYDEYFSddz42IMWaposgLFwUkBCMjjQYKBnXYEikh0Eg6aCNJGNubg6OHz8BJxCQwbODSHWHUVpGYXpmWo30wHS8Vln674joLbEmYSyvlaBAsSqt//HGUecrg28AiwTec8tyCFAyctS6VkIrGnQR5IwR16DSR5KajKmjpe5C16lJ6RB+Z0vzmmQTxuAIC6SWY1/VJdUgqfBaLca9GnTiFUUcEAxyr69Ig4EMahWBwLqcGo0MAuPEiZNw+OgxZFVH4Oix48oBnCqXlcph9aT+sUH3JCRInbfHgfBUnJEguvNSD4iWFQqQfNcqKJF0tHTWqStLHMwxg+QotzDjQCTeq683r5tj4Z0T5nNE6vP0+fTr4H0PwOyhJ6G9KJSjPD50quPOO+8sLypJCMhG3O1MSQhFb0PyvtWbcASQZJARP4kqiujtEQTkMO2x0WvEqmgASKMyujo7YWCg30gIKLACq7Z0447SKt8xMhInfWPocHauhlz3aqWqWnpXQpzrwasL5lqwIEvJ6kpbKZkazVoStAQJIxqajGl5YFXHqkuy6jKkQ0hHApzKYwJB3ym1VIKTHHvMEokfOIfeQGten8QBfxnuftsQpMcff/xdnZ2dn8XDG/0Lli1bpsIfZDvIVjz+f56AF148qMA4evw4VOfnLRAKFHUTAE5A9R/jExPKH0CwVRRYqatA32wsHRsjR1FJDDqAuZ41KBmrUVDQflBr7TLSgzekgpR4k7MSf5s0htkZ8sCQB8Om1Wez2lGUWGrwRGB8IeFYF4EhDYBs8JmYx56qA0NOpP1WD1SrKD2y4L1XmgEzL3P4MfPqnTj4NzcE6ZFHHvlGb2/vv0uf7O/vBwy7K7tx9z3fhoce/iF2yqy6AaUmpblBMOD43p87aV6S6OEPmphYXnUU2ZEAwywhglHsXovSQRLSj+oKWVahxao4Vlf2tgnlUKg/Be5l1RIu7hPHqMyoDVx/6Y6UNnRmB5YiHh4Q2l7R10n7HmElUqpBocHWgDppStmjOoD583CAEUjRHBh2uyGTONx333171q5d+2/ZwPNGbyKQyCf56/9yD3z/wf/Jt2M73wdCHxrILDjeedoK7TAa9MPGrdeg30HADECxs1f1VpK5mdErXMezD0QdEAaO2dExBTKFFxlg1QaGrcUeEQicOTZhBCcxwjI4bTdjI4lKXSpVKFXYJyEd0siM5FEiPGrOksWvO19JmnEcYdgollMqFog2fk0mSKjiPoMkoI5Z4OuKBPyPBx+Cf/zBwykpgZQUQeo8ii4a8Fzvesj3rIU8Ski+aw2EpQ51Z5WWHPT1tmjbQepL2j61IAdm2GpVo+0MMaYwMB48SRGpydCoS9Wpjn3FXkcK86HcdTQelQRK4YTTSpm0alOAo+JaRWpgY29A0LUyZWsC6x4npcmyRR6B5CIFBRUXJCGRYbZDm8MRszGT9injK+HhRx7Tqs2TIsnqTN1xAWRrP4KxDtoGNkPYicyqawA7L2/Hkqed1VaejeDs2BwM9CBQsdMrccwsyoAWu0GqPslImhVekqRQGr8FrP8hgqQxl6aDA/OewKhKySQgSH6HG2vSDABQgAYGffV51hfSfhm/l3+cAKcGrZ1MEwj6egwNyXmJ0XUEKZfLBgnV2rJGIBGDI8bmLCFS7O4tINsGIG4dQKdwAGSpV/0kSnmVOovQ2lH0PyX1oe5wcgbjZEEF+ruK2jYFxl+xxzyynWTkBBjSYV41Dqgy8h5zExI88w0ubiYoFKNE0JIF3a/uh/FwDLwfHIOLGAT67eojHUHRvc72SA0X6WyhXIBAUPwuntPvimLZ30iS+hqB5BsYvqna5f+8vvPNDU1MzgPFIbu6ComASaNtYrqqgO/vLKpOVqE0A5QIPF0P0hII/kgRuE/GcBqyTIdqYJhbbH43q6JiSRMOT8tZFceqTVoCIRIqPBaGIRpNpVW0x+EMgsLSbkMsvEGWJhDKd8JIuE6DqNhiT1Y/BSgt5UadyI6jZWsUUZ6fXKCsBZNa0zXM71eg3kkWmYCNl+dhaLJiOyg2/opu0jBJjoHZrvTFxaqO2LyPjwkYPs4VQNkvq9hEktNIZnIACb5Kqs3+HiMpsTnWcT9nz/R3SvOdGtBISvd7Mn5bmC9pDYINP6utEUhHsk6QX0QgrVixPMnWZkcbYsQ3OINBw+HReW0rMiSOVRWfHS1jZHuqajpDWKD4RqShXtpbdyqD0wJEBHxw+JiBD1F6CsXAOMze7xAeaADWTknf/kojkXbQgCUTMQPgDQYJ3u/2wEr8PnBA5VT8jrQHpddFZvyOfvnhyESV/Y1CO8Q4Vq9emUBAzI00Fdebq0QwODKnRHkRrae2kal5GJmu2igFd4KKZktPl5todCAc0EJkdYAenXRtS6uj7Hy9Nv4JjWr5l/RUIWsEVp2Sfxf9M0omDVQCQLnw6znU1TUFkorIh41AOpQFUsVUv2zZtMkJP/3KTJBEJkmoViUMDlegFjXUj96IBhiaqMAYAhVb9WJsQyBt5lRYEWLMpFY50kkfSyRt7e2BJQhgknHS0HeZSRocUFblGUYbsTqGJDB8nfvbl2pZr4pjE9Ewf89HglV75lDGASkOqnRyxjaPIZ/LLtuScF7F7Ejj/s4QlwjvbARtVLxgHNe979zEPEzMVO0NshgJo9tsMFw5nNqY0xhzo9SMSvzX1hkqus2ZUuGpN+slW5tkulqAA0kkJctKUuxUn29D9Xc7gKJMCRIGKGFAR4GIc0rjEOnCKqa1WSAdyJIkBmnD+nVJ53V2eEF7BF6WxX4OhuPHJqqZ9ij5fn1+EIEi9acwsgBp1WU/wgRC6XW6ubS6aWsLMfyUliJ/PHgqkCVKQEJydArDkQIGhrMZSu3ZTk9LEFhQ5EJqEN9Xg7wpAZNkYrZmqbsX0yBpf0WnHFatWplwXsXcKNR3cSOpchIyPYupiplaYx8q9d5hJBNDCJRN2njpAfvJRrr8UUsdkkdwWtoCm2tKqkdhgfEHixDSBYU9sHhw+lLEHS19MMAfKD6hSEpQwt6a12uCaLg0JCesCy4Et9122wiCNJ4GiNosBlOXL+tLBElljBIxP7Uotc46P45+1Fw1Sp5rmOsSMF2JFVDCJNKUIAUuvqcHv1TFHNwZdL6nJ6ejAMbZZdWY/JkysfeBAHCUW4InQeC5jhYcbUnqiEvqOJNIGGmk+J00BAtBWpslScA0nMHxQaKodW9PT+IXpu2STEmObNDpdHOj49rhXWwjqk0ZyyrZtLIuMmEHVgQsHDpnE8WBtQm9vRhVz4FXpiWs9FjgmLt7UkVqS4gUUJAiBeB1vuczJSVG25uGpMGov8h3E8KScVdUJntNJkj4YYeJPPgAkQosYyZV0XBUeeCPpgZ2qVEoyLdXxPSGlbObbY/YnlGVEzmfBBbJ3hiGkSIpXd+ajC29pUaShAednTmk2y5zq5tMCiyTjnTWR7gEZZIsiJSU+apO1Ku9BIFI26OU+mM2SCBRv+Mxmu9sScILXqIsK4PjSxJtmzauT4SIwEqSaMoe1flQGMIpz0QL4ItR9MA0ZGeheX0S05iku3UqwRJ0JZnFgsDIet5W9fh5KJ/dCZHx80TSR0qAYmyHVV3gOct14GRR8OT1ddSc4k25FmOjYqjMR6syk374BgWSzqHE1i7RXtHwLVu8US+TvpJozh6lt8lyDRlYzsvvuI2kKDRTQ3IqGRYoFUbZ2On5SIlYS0EnBCi4ieXVsGl9UUUWDGVN2CBmgZzr8QmCy09Kxzy9AG3sqwLP4dWpD5fxFXUxPC/XBC7pKLx4ouC4JIaGIpPTr+Fks0YgHSCQqHbBB4mlaT3ScD/zKlDdyUxVtTC19u+XftQ0SlNHW64OSOpsavhzlJ+D5dlKqgLzeqUWq45pLYQYgpIwsAKL7otJyREcJfelm0MLhr5LyWpOQMqjdfeXvFETgdC5KOF1ujCpChVU9Wsp6gKs9fUWFAlXhf/a52vLBAnB2E8SQzMLGBwGikBSoSE/89rIoU1LjljYXk0izW5tzRnnlO0R5lYUadBg5QK9D/iYixTx7igvNR+HODkr79QbJDiBITaCBcnlSmXSV/JT/dLvVVvj4KLy0ut4YfpFgEjevXTSJbzaB/4FMee+hA6yxobfo30tZdqk22+/fRCJw2Sa3VGj6R8rli9PZl6jeUPDRUOb0tgmOakiWzI9XUsnuJR6oxRzKBgoAflQS5UmFDoTS+cE5oeqyk650iub1vAjDcJj/CLlD6XskIsmJG2MZWWx7+doVLPCPVlB39iL8DOBCDBEH0cmEh7HuUyQTNT7SBZIxPBwlhvGwNo88Zea4Qlowkda2F5NIkh+yIhVmiINuUBFuIOctlG5UDM+Bqq3i8IpAmbm0fGmiiEDkN6b+rbAly6XI0qEiGQGUOm9rActzgIhTjK5KPZCQQwMJEkFyVYVow50vhbJoCFIyOoSNJxZHk2qIhq+auXKpE5AlbdQKGghe+Sfp04uT0eWlLB6UyqO1J4CLNBSFWgyQSqvsy3UxY3KdmlpIrBY1fnkwQKUERpKO6k2yJqSIAYAfOaWijDIRBhIZgAqEtTbf68CKVLqDh566KHWTJBQ/A4xDfcbTbYi0dxINFx66bC0r5Sm3qJ5pjdTiQ3tDjRAga4CyoVa9REI1EIFGqbpkW63tYYqeqwljNShjmoTUDry4NkmR6Xq0uQA6Xidlzeyaqk+8u18nXROycT7YlEnQQnw+Jz5/lpQ0n5SLa6L31mQEJCDWSBRo7TF5s2bkpIwM/SyqHdWKKhKbM0UGgYMlKfaQlOamzMS1tmRV6/VIg0Ov65sFF4/V40xqCuTgdgGv6cuyg1pP0eY5qknT4XpiIfI9pXiRjml+gxtFOgMbVVP3dyUWcGKF6iUhSot8ig4HRN52LhunS3FdQxv8VBQ4/4RCTVTxU7FAlclKSRFyi4Jo+5ywtqjDpSg0FT3UIYlZ4ARXl5KKs8d7QH6T6WcA0qmwna+vZEWEMho0oa17HtjVygjJbM7V0RppcCrt0jUOFhGqFkegRS7+N3GTJCIhhNINI0xDRKpvFWcoeUa4oS6WzgUtKi9onQGjv6QfaFAq7HAUO8g0PaoBdVcCdPgpNZm5/D2lMOb9Iv8zqUw0jRGNwp4XT4USZIg/WCqNHZIWpsCiToLoSuCUn6TXy+eKIuMXaGkX+KV7i1f38iwVRdjCpUPW5+p7j72sY+dRpCmGzG8/hUrkmXDtTkXDW8iFNTwvHnvfM33i7SKyxlGlzOObXubmbaC189WtS1yDYzNMqoycLkoUn/lSmxzPokYuMyQKMhWSTrZJ+qMfpSocXDhHr8Woj6/5KqZuP4uirXan56rbsoEyafhfvyOGR4V2hdLhaRey7RLi4Alss/PVrQkhdYm6c7m0FB7i1Zz2oaBKXB3IPmMMEhMO9HqjtTfJDm/NVnH3FjNxYmcER+7IGlkpJPSbzWfrdmotkxmZTNsVTJa7v6GsMUSi9lKdfVCIB1OA0R/E0gUMlo5MJDkRUblnS/1zlKRlGanEanVXaBVnJGQAqq5lpKbJT6Hs72Z0TFQoVGT7BsFgfDLJ2wxySRWMk3ORV4thLSjP1FKZjszg5mBnkXoS1GyfsHLNTWoGEqmNXAgFHSQlWg4Eqm+hiBRoDWdsqA2NTWlfvSGdeu8yhr8AUqSzi8UlABVJO0VxfM4RaFUnYk4dLaHVipUullqWs4ghixNpv4hk895qmwW7dTQVA0Ds9Ir1/JptHApeRNl138LU5ug6xNIoqIEg3N+kKyTmMZNEQ+brsCgdrXW0RRIaYkihrdp86ZkXf7s0HmHgrKvE7YmTqs8Y5ew44nN5XNGfVHRRhTYFIaWIhOVSKQl0rkgaSeOcVURsn4YKkdYnRSp46x0d2Totl9QEtnyK6366uvp6lPryVo8YaXMB0oUWiywSKJKDWf6IRgHCKR0yoJBWr9uDfg8VE4Pe93tufemblxKF150dcHCqUOWJKlZEQdStbpDdZYPlNPqZjiQHxFYcsDMTnWonluaElnp2RyZLJw0oEzOSZWn6kabVwiEV1iio+Pcwbb+LnapDp7NYceFX+ut6sG9+UoiRc1jM6uRi5dyus4Bq+3Rbkb5BUEih5Z8pTRIxPBWr16dnIuEkiQZDKu6AkcOAq5rC7xJiklJkjxrnOesBsJEG3D6DbK5kOvtBNHp0Di7YO2Qdi7dvCjp1+BJv5gxlaSLHVCULT6FdqoVB0V3q1mKxvOZrFPrJ/wiPe7ilJNhfSJVLsizKkSqui81x0l1FS6LQNNKZY3UXdAQJLy5kyhJcwhKKZ2yIPJA0fCEQ1jDWX/VGbTsHTzdAXh2DqTmwyZD0KmogyndacV5Szo+JzDTiqtgtQY2akAqaZ4IQ05YZ5daFMmEGrO2JU6lsv0qH89m+CCMI6kYnZbQg9/bVQq14ed6hdhN46nWzNQWb9ZewLkkBkTarLwO9noOrRDJ5Qe4sD9ChhdEE5idrYmGNumTn/ykpKKULF9pAue89vR0o33IJeunZ0bMzC1j8VW+J9Azg0TomjoXeI1VoD6fQ9EpFUI9Qxw7v7sjZyIF2rKUK6Gdtc34KkYYgTXypC7YkGvb4fs40lzDFNmQAO+9tKfCl9PjEbw0VEN/RWp7FTt7pMiGV+mTRQ5kZnVQqjgyo6n4XUTEIaKVYlZmgpQVDedG670RDXcF/GYEq5QFRQFCNS6U+lOTlgNdAZpoQf0x6L9LLYGREMy44nFrKbQpBlJzkQwTikX5KpHU4Z9Yep3tMa44VTjJx8b4pzvZAQwwhXOG9p+twfER9K0i/R3zVa0afRZYX8PAjFFYh9UHL6pzdN37SZIUu5tXvGBrQ5CI4fnMzk9ZkIpYt3ZNslrN2CUa4tKTIqHmmehFMXTpqd7j8iymBfY8hXe62nV2lRZD6uvM2xkPdFPT80GicJM6kcCh2B3NPK95gFmg6iTMOKN8nGrsr5B0WsnBNjgZwd4TNTg1TqQlSwKEs28Z1alxI6mKIQmiWuamVX3OnOYFmxqCRNHwLElihrdx04ZkEQD5Sp4as5JEUhIE1jaJ0IQAbJWjALu+GCKyvCdUAFGeqFjQC8WQnp+YzTkqLRkAqVrNa6z6lGRFPhhO7fkAxal95HVc5EkdHU+hrfr9ySr87iSqwIr0KoZMGkP4EfP6aTDSi0xklyKbv/Mtpq8lTJRnLm+42AaDxDTcJxDE8NavXecmNNPB9Fm7VJlleF7xoczKWfvHQvs8PR055R/1deVNrRzG51CCKtXAzj+iThbeYhgsVdz5SroiJx01T6pqUVol8vtECkRhjnUoaW6eMr/6144hWL8+XoXVWCG7oTfUQdvAsTRp2B0vbyM96m3vWKaCrf4cWqPuyJWYmp6/bCGQDkRmOcp0NJxU3qqVA8mY/9RpPZc24BWyzERhKRLAWfAy4sDLukMV9abKIXJcVSA5ooJILjrxJ42xv+KA89WbBSQCI21gjX/kHxsgslQfgzlbwazxrEwwUfrOk2M4MXsCqxixWnZtT6jrL7yJaLx+hD9llF6LzGRt7R+ZsFXs6bOciYTjJ83Oza9aCKTjCEgFdWIxDRIxvP7+Fcm80nwZvxgj4rl2sJNRbaraVZtJUU+92YNYsyKnfnhfVwg8+/PcVKikMOBRmZoUHIPH3mKn5lhiailpqVnVJ1JSJRzAMZMNoZjd1GzjSAp93uHhCE5OYNa6L4Q13dq/YqT0glFuGZ5EaVfslhzwlxYgdadncpAE15Y1tElf+MIXEJP4aJZNosVjcbVfs/Slc5+Z4ZkUqmpEHIRZoEmYVbXscRBYSt6LI7G1GGL4J1C5IrqTkXKIRlp4oRjT2Z7dIdKgQdG0mSUmMs5pzbzmWKDO5CpApLtOgSL996L0UBRiVi444c1N65GwfzCCp47U4OzkIplYaEA8uH6CJImOI6pkrXU1BImj4en4nV4kcFQlBZf19XmFgmYebSAseRAGKBPKdkXdXlNLp6GKW7OsoC4hW0Q9MD6NC8xW6m/G2RkHSNVTbTVLJpxaI2B9VWclLBJW1dWYZJjzUzMoQTP18eHFkpiUXPz96QiePhrhtFJ/XpP0CvS1jW40hxaXFlM5JTqsVGutDdWdUXmHePafr/JI3dHfq9esxvWxz7kQ0ew5s3Cgq58SfmyOqLX0ZjGYm+3v1tlW7RcFWJCCywbMmpW5JC9skQpOJDKvKSIQuZSHBs6ptgTILFUJuo6LVOE8/PIcZM04a65cTehY4K+PR9DXJmHz8kBFLxK5ErPiJC9l4KtCERZNxISyAUFuQZDYV+JVUdIMb+OGdfDss7+xeSUxecasBcMrlril0RKZW+FSCCWMk/X3hCq0sxzr56jyZ3g6gFQ5nJ0DlsyiyoRz6rO2WprZmeOaUY1WopTkCSNtuDj7VKwBEqL5JKZofG4YpWl4JoZelIctCFZfu7DLe+ryYpFclEPoIBEEqFEwfhfm3GJPjSTpIDO8dKCVcktr16xNVrROnjBOrFDT+ZUz69FxkS7sx+OBPirCRztU0rZoqBw4ciCT9NSr0PVq20x0IHJFiBoAlh52cjWVdo6ssGqQ9mT7hiYoGwqL17OLRkU3omE17yiqz2eOxdDVKmHLMhyYHYFdWodnGFbHTqIh3g/h6AuQiyuqL1ct7wkWA2k/RcPJ/qRBIpWnaLiHUTx+VKW4wZuwxTcleOEe4W5yWQcBo1d+7MWE3vB0qDo24KVfpL+wpl4ZKx3FdoFUmaTVEVh1ps8ZtlcDBYgGT5+r4GvnxjE1UDVRULlY7eACSUyxcNHNODLFX5+Q0FmKYQua9OXyOIjhFyEc+wOEGKhWg5wqtXBPS81t3TggXnjhhcIVV1wx30jdHcVWRVDyaZCI4dESa4m80twY9s4cJq7aIDEJyCvEZ4C68ZK2Fm13cmiPKhiTi2vgRZG9tU1ZAmXSHtkwS8SzuL1AayQ9lcegSHPsnFSSnMGxWL3u5rsEzdcOnqe9EniTLRPPQ3HkWZzt+BxMiypONOiA7q4OnFWRUzZb1R6i+v+LP9+lAtnY7zTnaF8mSF/96lejT33qU8fQV9qSTllQoBXRtfbKre8wjuugdujAfSAgVeOrjjuxrq5TBVK1Aa1hbfp8HNgl1JTDJ5NmW5oVLaSszwe5qLaw4Z+aR6+1VImEjSK6XsZRPTTmVtCKReZ6j01NwF4ISIHzi0tje6EVgWkdew5CVGXMfmll5eHRCRidmIbuzg5Yv6Yfdly+AXbt2AJrVy3jJOPmhiBxNBzbFn9CGe1pkUKaIoPPgFCA2allM+gr9W3QzIzdbp7tjX90IsvpLJkaNjx3diqAq9aFZmVGzq8YL1ym60tFKgekQZGpACmrMhcmYnB04JSOx6dR/U+6EIadmOnNma2n3o3tUbp+EKJZaBl9DlqHfw0tCFAgawYYYQLM7tqOtlZ4w/Xb4M27roTtW9dZoiXNYsK4bWxok3hiGYL0ZzzhmUEidUd7KpYcHRt1xYZljOHljB0y2Vn1w/Dmu5HZtBVV/EBRzqGygJXdmtL4S5Il1jf1JkPb1DUTBlsU4lILKgIeeVLEflLkABrGUM74tHSREZ7cJznvKBZZ/SBbcoJoGorDv4HS8DMoOb9HYCKzRDZH/m0MAqueSnDjda+Ht+y5Cq7ZtlklOf0IPw9sc7x2QZA4hucHWhkoouEb1q2H55//g8srTZwwUQbnD1E8rg8paDGvCQV5XiNlodTLsq4wuYaPH3wUyZl19PgC8Gi3tEk44ZidiVjXjJ2qRS41QfSe7A/ZIeEvkyYgEcaxZQASFq0dDKplKA49oxsafz3TL/Ccepc0LyAB271zG7z1xmvg+qteh1H+fAKUlPT4x6sXA2m/nqof1IFEDG/16lWJJT7jsaNacszyawRMD5IELu8lKRidpkXVBaxoN+lmAYkKCJ7WyHNW/SKSZKG89OyQl12NTPEix/LMfNqzo5Hau77XomMDvlLY2eciqxiYpb0yBvlzGpjC+D7Di0yExTjyLDFUJ3L91VfAzW/YiSrtSnTYi5mgZEiPf7xiMXWnVkqxhYIeUKTyVq4cSGjo6Nx+9SQuskntyN46SL2F2jmlET0yhzTb1Css6xJuqSPhijnSUx1Y/UkvqcbVPDqLKkxprheTi1yEewZzP2fHiPnpJRxF7A0A4QuSdLNZpQNSKWhMaubPPQ3FwacgN3nQLCjvbAyTIp3/CuDqK18Ht7zxenjT7qtx9kdbIzVmjzOkxwewb0GQEKATlNKj+cNpkIgwrFjR78qmaF8+hyVR8/jAphIUcsY/wi+ax84amdVVRBTo6ChSqZZbFNBJUeytc+atRJKa2MXSE3sRaxvd9v6ewvDM0ISu/1brNkjwJCdduCMSS06HGObKnfknKJz9JYQEjAhsM9WXNoZP+22Xb4Zb3nQD3HzTdbCst7sZNdbUMe67FwTpnnvukR//+McP4YVXpkEawSX7t23b5qWV9FGXQD2db7UUnAoZxzEnowiFkZUek9FgVeemgQSJKEbMK9TLVLG8rfoRtv46Mr4S02yKwY2VweVspBsUHl+wFFwNlvIpCM4+BYUzP0dgjhiDH3grqgg7a53+37xxLfzZW/bA29+8G1b2L3tZQCyi6ui4Y0GQjDQdRJt0ZdqhJZDokQjtuPK+ev6E+eL58ii0rhhQPTBLAGEBiSoGMo8mwGIgaCu55cqEdCsN2+W1JXirNrI0cUpbL4vuJ+1sIT2FeGId4iE1J0WSELiHErgpMsHUCQhPP4XtpwjMUQuMpcqeM67yXqv64e0IzC0IzMZ1qzM7uMnObxbMlkVBYoaXtktkk+hvCg/tP3DQ5VbGzuD9bYOpKuZkanqtOSYSdLPdrdKtJOytc2DXVPWWzU4swBRzWW7gzW4wtqim1d5cVSj1Vq0m7Rt/l11kdeIYhKd+DsGJJxCkk65QJrEOkbBJyRXL++DmN+5WwFx+2UZ7DfVD+kEt3MEvV71lSFhxUZDw4v28zFpa5VGgdc3atQok/tDK0DElPXMRJ/eEbVSu1YZxK17oj5aekf70Oync+qeGeclIurrpWD8byTmuhnXSDHaUHKXeeAV4f4EpQngM1ddxVGNHHweBak2k6v+EH77C1tPdCW+5aRfc/KbdsOP1W+2CwTxYE89vyrA9L0eqsiSMzGMzkrTfRzddh7faBFp5zE4d3QuFSJdoQeienUetLW9WtWdbJNkeOD2nyUGsVGBsKkZj4KJ5VnvSVvaQozpWxvLjin6fMMulq08dOQTxsZ+CeOlRzMidw58TWDID6Qdl4TtJdb/xxuvhbW/aAzuv3uat5OzYWRqILOlJv/ZKpergwYPLFgXJ95UYKNpUvcOAo+Fq3uvp50021gAUCvsI6XaSIuXsSmfATceTuMQmcKdK1mVs6LfUlaZGkhRQxhZR2nq0DEq9sUscDR2A2qGfgjzwsCo1E3UVs5Aofabw1o27rkWJuRFu2HmVij6nvf9GQCwGWr3/e96kgY+3LgjS9773vdEPfOADNFNsGYPEoFHlUL9fzUrdNI6VQzibOMiX3AOrsHy4mKdZA+5JYm6eqjY+/prcOu0ceIk9aR1YJgo0v2h8hr4Kn+F0Zj/UDjwOtX0P6iCvx8p8qfGBueG6a+DNb9gFu6/HB5u0lJqyM4tJTzOg+SqwWUnCtmnRx8VRAhAvVCCxCqA9SdJll12WWCVFrfg7heXILSsNadCqrpiTthBSBuygal6tnm6sJCpS9sUvpK8lot7oB5EtxNW9Jo78ASr7HoPq89/HNMlk0o/xWBkTZmKiuxCQN71hN0rM1fh3MdFhr1RSFlN5i0nVIgRiQ7Mg7fEfCceShM/uwxsu4CJRFUsAoolBfPDSSkMOdMkS1aVJoWN2FFCU5om4WmJiA4pRc7yYv58Wx9roicP7YPzZR6D86/uxjGw6U2J8YFpKLbDrhp3wRgTm+mt32Mdm+yrlQnT6ywWyGWJhrsk38+DF/fx4UV+S+LngA/0D+Ki4o5akVYcxUHHZ1XY6SmhWG1bPY1eEITZPH9MlMnpaiR/dNlKDC3xMvLQPRn/1IEw9/XcIzJzN9IqUH8P/WlpaYLcCBo3/tVdhILNQ1wEXq9Nf6fsXkKqfLwoSAnKAgeHGH07R8JW45tAR9WQYrZuq5w7ZFRfJwISWqaHcxIHVRrEhARCBrX+uzuKa4Af2wsjPH4BxBEbUqgnnMiE1Bpg2fFryrl3XwU17dsO11+zQD5I3N9iML3MxQXuldB1//zQe/3hRkFCC9qefgMlNLcLh0XA1r+zMi/pZr0I/YwKT8Biu0bPJIxFpouUtZjE/PQsT+38LIz+7D8b/6T70jaoGjKST6QNDdHnXruvhphv3wNVXXalqMbJsTDMgvJoqbyGp0mMs/ujmzZvjZiUpRqACX91RI0lagWXH0nvSYvXkXp37iUAtnBHV+JkRuq6bnnRZm56ByX3PwNjP/h4mfvUPijSA9NflTteRY2C2vQOBuQHecONuBGaHfbrz+diYRh2zVFSeJ0WzWAj0DgTop4s6s4aGVz7ykY8cR1A2pFUe2aXlZsFCXpe0NobPlK3ggwQLJTWvlOJpVARYK09A+cVfwsQv/h7Kex82zqtMPg+HZyEY49/Z0Qm7dt8AN+7ZAzuu3G6ff572Yy7kyH+1VJ6pHD6Er38Vwbm74ZzZBaTpID25MW2baOnPNVSDl1o0rjYxAvneAZibGIPZ/U9B+Zf3wdyBJ80TNWWy+pFrJMxRZ2cXArMb9qCN2Y6RdgbG92Muxci/VCoP/57B9hDe211bt249ldX/zYJEKu/tWQyvq6tTeeq03Bp39OSP/hpt0z6oHPsVgH3cqUzU6vlrzVFRy/XXX4/A7FEpEJ+cnG9I5mLYiIug8vBQ/gHbf3rd6153/2L93xRIRB6yiMP8vF75npYOOHz4sBWNmae/45a3ST1rlq/p7uqG667biXZmly0Ry1Jlr7TDLkSHXyiVh/04if32D9j+A6q0IWhya1qSskCiRg8d2b59GxwikLwnZ6af2KyAwQcL79x5rZIaFO1EdLlBFP6SS08zduo8qTWRrufwXr+IEZqH4WVszYKU6dAySHt276LHcqP6m03aGTymZQWuveZauPbaa2HLls2J6PJiNubVYljN2KmFwDR9NYr7+9A9+BxKzRS8gq1ZdXcMv3AOWyktSWSL6MHBf3nXnfhM2v9lHzPX19sLV19zNc7A2PCKwv5LQeUtxvx4ACPJqeH+Gfz7c2hrnoQLtIlGqia93XHHHb9Hb357muHRA+xJjRGJEIlHYydjVAu9diGuPZ/PuBDvp3sn5kngoLScxf3fYljqixs2bJiHC7zlmr2QaDi27b6fxORhIb/lUqubi/kb+J4JHASmivv/i+D85eWXX/4buIhb0yDhj8kkD7ycQFqNXUp1czFVnmFlLDEE0HFs30JX4a9g0UeyXXpJOsC611d5HCtbLKB5sUb+xZIekhZuqOZpNv7juP8USs1LcIm385GkF7Oi4bSnCWc+WJc6BnahgDdqjJvEdghf++r27dv/K7yK2/mAtL+Rr+SvoHIpVN7LZYRZr3k2RjVMDk7jvT6Cr30awTkNS2Brmt3R9qUvfWkEf3xv2lei9LQJEF5ShpX1/maup9/sSQypsxj3L2D7jzt27HgAltiWOy9E8Zm0eIO70+ru5dqkS22njH1hAqDWpcCSqQjnpv4ML/vP3/72tx+CJbidF0iG4e1Oqzu/My6VU9msnfKBoUbS/tJLL8Fzzz0HQ0NDdD7E9ha8t7d84hOfOInH96O/8zdf//rXj70mQfIZXlrl+SVfr2bSjDejxlQjoGga6b59+wClxkYI2jDDayIF/NoabHfh8afvuuuuJ/D1e1CVP4RL+cy/5kDKYni8Rt6rmemkDmdgqJGjfeDAAdi7d6+qbiLgyH4ytWaAeNCxP0TShR/3dvyOt2PY68xnPvOZb+L5u7/85S+PLXnigLPSd+BN7M2qeaAEIMXx2EBfqpAOA8OSQ51+DpfU2b9/Pxw6dMgC4YVwLBg+SHycrnn3SqvpOR7fxtr4r6EqPLpkQcIf14KATOPNiLTPRLE7Cq6mp4FcLJbH0sLg0HcfO3ZMqTMaLD4A6T29x4+9+U55eiHGjL+ncH/b1772tZ8uSZBo++Y3v3kMb25dWuVR5RA/texCUeX069ShVOTIANF3Dw4OKiJw9uxZK0kZ6qvumO1QE6BkHc/efPPNH333u9/935ecTWKGh21dWpL44ViLVe68HNtjnEwFAu2pSolU2VEqyjTnKRKfBsQPiPpqj90F/7emk48LJSPx+1oGBgY+g4dLEyRDHm5JszvqPB+kV5ovomMfHPqOM2fOKJVGc6PoNXpqJ/s8Pjg+QGy3fHCY4DSrRdLXXnfddfRa15Jkd0aSfpuWIvbgeXSeT/F6GkwmAgwOAUL1E6TO2Oeh1Ss5lJMGKM06fanhsNX5guKHkN72trfBTTfdBD/5yU8+unPnTliqkvQwdgYuJoUT4j2QiNpmdUKz0QFfamgjqSFgiNrT6z09PZYkMDg+U0v7b7RR4LfqJjCdNyj+OYzjwbve9S4lvbj6/X+77bbbfr5kiQNt3/nOd57CDtmdVnkYYlG+yfkQAwKXJYfm4hJ9ZnVGrzFwzQJE00cJWAYoa43z8yAIgLE8JTlog+DFF1+cQJLyFwjQj5asM+tJ011USI77gq/3qRNV/d0iKo9tGDUMwURInwWSgYAkh1PyPkBpcHwVx9/NwPjSnKVem5Ei+mxSZbuxSJMkGAlK5Yc//OGn3/nOd36Lys+WtDPrbw888MD7sEO/ha2fJenkyZOKEjeSHrp5Aww9I/Akqo6/wY79K3x9Db5vL3ZwN3W2HzVIh3d8csC5LJYYPk7/3awU0W+jqiYCiOZeHT9+fA5Z5NdvueWWz75mUhXp7fvf/347dtSnsH0I2+sp6vD8888nVJpvbxCYClYW/W88/vfve9/70hnO4Lvf/e5TqOpuoA4iSs1EwcuQ2mc7pVVaI4Do2F+VOQskklyyOTRzkb4HGeTI6dOn77z11lvvfc3lkxbaHnnkkXXYgX+OC3H8S4wu70LAcghOBYE5hpLzFALzwIc+9KEfLvY5P/jBD76CUnUXgimwXk2ByxJEnd0MKOnjLJBoW4tLHFCRJq2EidfIEydOHMJZ9f/iHe94x9NLKVVxwUDytx//+Md5lKyet771redezvsfffTRG7CzHkMS0kOqhx6f2qzUZB0zSOz4EjgbN25UpAXJShm/6wm0if/mPe95z6mlmE+6KCBdoC14+OGH/xHVzj+jWvP169craWoGoPTfpHZpUgCpNWoICK62U34Spf3O9773vQdgiW9LGSS1PfbYY+9D1ncfdmhp1apVavonp0YWAogkh6SGpJAass4yBoGfQOn87Pvf//4/wGtoW/Ig0Yb0txODtz/CdPcNCIKgzienkhrZLAKEWZyfJse/ywjOk3jucx/84Ad/B6/R7TUBEm/33ntvCdXWv0ap+lcI2jZyadhv8iLbZQTnSQTri7fffvuz8EewvaZAymCCW1FSrkCAViIov0P6/wymumvwR7b9P3r84Iqlnb+UAAAAAElFTkSuQmCC",_t["iPad_128x128.png"]="data:image/png,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",_t["Laptop_128x128.png"]="data:image/png,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",_t["Lock_128x128.png"]="data:image/png,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",_t["MacBook_128x128.png"]="data:image/png,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",_t["Monitor_Tower_128x128.png"]="data:image/png,iVBORw0KGgoAAAANSUhEUgAAAHoAAABRCAYAAAAdMrIRAAAACXBIWXMAAAOKAAADigGnjPUfAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAJ8pJREFUeNrtfXmwJVd53+87p5e7vXXem1UzEhIgFhvMlhALY3AR5Njg2IrBTIwNsh2RyJFduFIS5VRBIZxEUhlMgjFGhIAjGbDsKAIENgVVyMFxiaQSCxxbSEJoZjTbm3n73bvPOV/+OKe7T/ft+2axBAqZW9X13u27dffvfL/v9y3nNDEz/n99zC/uDgEcAHAIwByAGMCDm+tnjn+/nSt9PwM9v7h7wYFY3S4HcDkz72VmUVwDApFIAbpie3Pl5PfTtQi+T6yxCuIhZr6cjWkbo2GMBjPnGxgAEYhEsQkCEQFAKAReC+APLwH9vbfGQwD2MUNY8AzYGBjWMNoCq7UGGwNm44D0QCUCgQDyNggg2wcy32/sFjyTrFEKcYWU4SEGDgZh2GEDsDU/+5cBw5wDaIwBswPUGBgHOLMBmMFgC6oDlkDF82yfEOjMLWJmZhFnTx8HYACCvgT0RVsjHerMdK5sN9uHDl5++W42JNgwNACjDQwzUqWRpim0VrmVZgDCGDAcgM6KwaZCyew9N5aihUDUaOHQs16Iy654Dvbv3Y+9e/dgeXkRe5YXsXt5AYsLs+gPhnjb9f8SW+vHARRA3/LuO2IAzwHwXABXu20ZwHcAPArgMff36O233vyMHSAXLMamWWMYhlcsL+++cmF+4cD84lIrjCJoDWg2YM1QxqA36KPb7WMwHEIrD8zMOo32aLgAumq9xu3LXmMGlvZejoOXPxd79x3E7t17sGvXIhYX57BrYQaL8zOIogCCCEJkm4CUIv9fK42ff9uN2Fo7jh9+1Y98/kU/9NLQgXq54/VzPZIa8B8F8Njtt9584hln0dN8Y6vZfNbS0u4rXvKyVyzv33eZWNq9B1EUA0JAa4NxkmJtbQOra5s4sb6G8XA995vsAWN8ar0A64ybMzhw8Cos77scy0t7sLCwiPm5GczOdTA/20IjDiGdoBIEkCBIISDI0r9S2oLKBGEIQtjvloLAgqGUAhggIszOz7/xIq5lBOB5bis9bnn3HX0H/mPVgXD7rTevfVeAnl/cLdszi18Yj3pXqjTZd+jQszp79h/A0vIetFodRI0GorAJBtAbjrC93cep9Q1869jfwmjtWaMpWyPXAcoAquBmAAvs3nsIS3sOYnFpD2bnFjAzO4vZmTY6rRZarRhEsCC6v9ZCAQKs+GLhXrNgQjIMWXDtcRDYEFhQMZgEQQhjgSYbYgmrvp/KRxvAD7mtOgg26ljAMUH3KQM6Cmf2L+y67FoAOHRwHw4867k4cuwEjq4MYUwvf2PJOnMwq9ZnytaJ8uvN9gKW9hzE/OJuzHTm0ZqZRafVRrPTQrsRQwgCgR1YDEImihlaGyvJBIEIYAJYAMZYCzYMSGYQyO4nAjOBBEEYgKVwlpxZtAFLaS2cCUoZ91uEg5cdwL69e9Dt9TAYDGHM0yrCFwD8fbdVB8GpOhYA8Pjtt948vjCgZ1rN7Emj0cATR4+j1x+U3lRnnXXUK0SIheX9mF3ch87MIprtWTQbLTSaDTSaTYSBAJH9rLUZYy0UbNW0ts8BhiEuLNiBT9Yw7V8gB90QIIwFWBBZ0IUAc7bfWnABMkFCuH0CUhBSlebUfWD/Przwhc+H1gap1hj0++j1+uj1BxgNBxgMhxiPxzDmaU827XPbqyv7zS3vvuNYZQA8BuCvb7/15tqsXiDSZp4BGicpQI0KyGXq7czsxuzCAbRnd6HZmkHUnEEcR4iiBqIw8kJQCz5gLZFgoDWDiEFgu58ZTJbOibIgim04C/teJniWbS05B5czKidYpiYHOsCCIQTARDCGIKVH26YAXjpKV0rncTQJac8dADHQiBsIwggzs7MuRjfQSmE4GmM4HGI4GmE8GiFJxu57nvaHSJLxFSeOHb1iY3319atraxj0BjAA7r/vs2i22qbZ6gwJdFoI8Y0A+obg2NH/0XvhS36MiQSlaYqg1QYANNsLeM4Pvg6N9hzCsIkgjCHDyMayLtuUgUlsAGgotuARWyDz15E95xx0uw8gMta6mSGIYTKQwVZIUTEILKDsrNxaNHs5D2ZH42Rp3Ljn1ueS9de5RbMD3kBKAaWUHVDORzMDbNzAy4+b4SI8EAhRFCGQEq1WC0ZraMNQWmE8GiNJxkiSFFqlUFrh75JpXj27ghPHjuLs6mmcWTkNlWqQEAiCwOYYPEMcYAsbGyxIyPby8mVXhUF81XDYfXUAAEZrLQMRpGmClrSj+coXvAYHrrTaIQPWaA3D2o11htE25BGU0blxtOySFZxZb3axitetFRt3ce0gYEfbmTWbzJrhfDaR3Q9rycwW1Axoa9HkXmMIY321EM5fUwYygdlACAHB9kKlSoNJOIsWsKzM9jdg3QEz8mPkjO2c6RfHToijCGEYoNGwekazgUpTqFRBaQ2jFQybCepPkwRr62vobm6j293A+vo6+r0ekmTs9A4gZZxHDAzrUuO4gfmFRRAB3e0utjbXAa2xsX4Sg14XYRzPufCKUiFloIz1bRZ8lZG3O0OfzotdhgGjDEDOStm4z2S07SzZo/EceLYCCBmwYAgwkAmx3DcX4JKz8DJ1exYNR9/SWqYgWMuVmaUSmIVT7Ja+WTBUmrrvFhBCWEGZnb+p6BMnMgmeu3FZvGyAssk/bbWCkAgigjABmEMYY2A0Q+sUX7zvc5iZm8fS0m5EUYSN9Q1sbK1iNBggScf570aNBvYfOIhnP+d5GA56ePzbj+DJo09gOOhj0O9NaCchJEgGaLU6No4mwUMhZJM1QZIFOhn3ClCLQ7Y7PLDAFiCjnSCrgAn2aNt9VmTPM2HGJvfThgqLl94gEETuQjpg4VS3F2qx4fw5M1n/7ARabu2CIIUBC4IxwvpxKaG0AXlWn518Dmw+6HPiAjMjN0oqaJ0Nu+vmmC0bDAyrSxw9EFllORgMMByOcOb0aQBAGEq02k386E++HnGjgW/97Tdx5Mh3sLm2iscffRjffuRvvbC0Ioy9SMeeq0QUNxJr0UwDIYJFSyX2C8aj7cKic1HmGTajZOV24DO0Mc4yrO/O/XNG62RgMjEGdiknK+AEeRcAmRCzFi5zgIuwyziLNoBV1J5QkyxyYWbIWjS5mJrZC7FcjJ2maZ5XJ5J2KLoTNo7qM8jZHRN79MY51Rc+HU6vZIOh+Dxy30oMyyAgZOG71oytrR4+fdedMNqg3enAmEo+gk0O6rRIiCiAEBJRFI8Cd3jbQggYZhszMmM02EaJe/xDzUZOjZUzGFpZcSZFQf2ZQLNWbHJx44OeK3AHJmfWnaltj8oJ5ED0/HWmzoXzwbAWLZ2PFoLseBOilCVjYZxaZmfRAjC+Fbvjt+iD8lP2fDU7FgEVg8OzhXwg5FfSvqqUckDnWWkAgCRpvR8s7SuVeMkmzi26mpDKQkZCYBlWSkRR1A9cuX1TiACGKc83j7ob+QH5dFC14mxXydLB1rq1tpaIQoXngDsx5sfUJn8vu4RJZt0+0M6iBXK/nVlu7q8ZYGPTn5QlSwAYZ/VSsk20uOcsBVKV2uKJq1MXQqw4P+P/ZS4cFBXWTGz1RDYgjAdrruZcwYWZMB4NXR28nI2zmsN9OqsBlCzXPjfGwMDYShzbz6RJCmM0NrcY7fYcgjDsOjHGa8KpbZUkVqb31kuAlqiH6321b+nMDDZAYjSIGNKLn+FZMXljPw9hStaNIp72qdsaupdYKag7i6MLazcQZC+EFWQGQmTxtU2cKKXzhAkJT5cY9ny1KSzcCbFsNLAnKEuqhn1rdhxGhUEMR0M3sAqAs0xkVk7VeYrZMQcV3y8EAUaA2eTvM0YDRGjEbUgpEYbhpqNucUa4JIFSqfXRyQBG6wkwwT7xeHjX+G7OqdzG2IF0tJuJL//CZaGW48VqIsV4Fp1Zakbjgmw8ncXYNr+NXIFLmcXQhb8Wxl5EZvv5nLpBECTLQiw7SaZCaJV8LxeXJ79MvhBDLsTI+16AMR6NC/Hnp74cZRMRIARkEDgt6KzYaCuEDXvVPu3UPoGNQbs9A200AhmtO+rm0xnQqUrdyRkYo0BC5gdaNu/Cqn1RUD8wbMPAaGxj7jCw9JX56wx0IuT+22S+2Ikz8hIpRlA+KISXLcvDLrK+2JQSKS7syvy1K4gwW39tB7hrMXJWXvK17AkpT4ixp19K558LMfYMw4u77RdhPE6yFqYKdTOEdEAbhxJsAUlrBTba5jH8uoNnZVKGCKIYnI4RBHI1K1MeF0ICBGiVgJ0gMzq14RZ70qvqp1G26DJdTYZlSmukyiAQgJQo6JuRdXc4Oi8Ud5Yly4DOaDsbEEIUIZegIuwiIgiXQRMuLy4MQQqy/toAUtiBk6bKMYiAKBxIIcTYF2KcC7FccTNyIVZNE5VDNOfT3SBJk1EJaHIVNG1saAQiGJ1CKw3NGkbpvPZQMrBMiEmrtIUMEIQRjFYQMlwJXFzzZOajdVLkt3WqIIO4nCmpE2glC/YVeKFISwLOMMbKqnJr3ZnoMjZhklsx5/G3ER51G89fu4RIZvU2t12UMvMcuEFeqzaOugURWBoIQ66rhfM42heZZkKIoSzEHI3XCbEihi4LscxqkzR1vrisugFASAkwYTDqToRS1SKTEBIyyECWECJAEIRQQiIMw1OByzcfzambC8GldIpwB/Hlu+QJQ6+EZX5An30qTTWSxCAKRR6KmTw9yhBcKHAbZXGZ1gEIuEHg1al9kMkBn3WXsAOxmhpNVaZHbFGDuRBiKAkxyzb5NTFZPr4qxLiUQfSFWJFwAVSSej6aSmFWhsn0kjCDhICUYQ6uDCRk2EIUxRAigJASgaDjAQAMt/AdcUDmIiCjBqPTiuKuiq8aK64BtOLkyxeAGcNRgkAQolCUih/GUbcgR9eUAV9Ys/EUuCBXr0bhny2VF1UtG1JZ/2xcNcv6aOW6gCnPyNULMQKz9sYz++K85Mt9IZYxEzu2ylygUmlJdWf0LYQVY0XLVNmiiQgyCOxnnVgLggaCMEYYxQjCGGyUTb2GwVEBAN95/M8HzMxCSJfndRadjmppueSvp/jqMqCTAq4UkjFjnKboDYZIU2XLgFpDG+NKggZKayhtite03aeNtv5L24KBUgpKK+hsM3afVgpKafc92v7vbVoppwlsswK4PLgN+0KMJoQYaoRYyTdzVYhZJteqCKNEriWsApFOjBkuunZAgAwk4GrsJASiMEYYtRBGDYSRLakGMgQDkFKg3Y6P5j1jhrUOZRwAIqcIlY4rwmqSlmsVdwnQogrkk3+doNOG0UvHCANCHMk8N87kRJmtD+bdJ1naVFRVd27RnCdFcjWe1azzDJr116nXM0ZC5r44E2KZCGQ/5VkVYkXy0yafdhRi9q/Wqja8ssBLsNYI44YNdV3PndEaRMICGkaQYYwgiCClhVMrjTgOYbSGIIFPfOx3c9UNNiYRQgZhEIN5G8wGyXhYSm1O0vIUxT1h1pgYBFMFHYDxOMV4nKARB5CSIPxkCvnlTOTxcxFukfe8nAMnIsisC0UAQhdVrTRJ3XcKiCwzVhViXr6fqUaIeco8G5hcMmEuCTHr4nkivLLHKiCkwGiYWqVtdN4ZS0I6y20gDEJQENqY26ltYQUYdDJAEEem1AVqjBmRkC0ZRrmjV+PB1AJGljTgaYqb63Li9WFZ2f9zdjzo9YaIQoFGHMAPWqRLjdn8OBWJlbz1yF5ImQkvd/Gy5+QySlkNWxDZ5kLX4J9XTDwhZhMRXBZiXCPE8goSUGpbYJ4QYgwbgWRAZ6FV4adlkQIlQIoQQSNCEMYQMszDKOtyvf+lLU+y0ZBSpCWgmU1PCLkYxo3c/4zG/RphxZX0F0/Jd9flxP1Qg3fw/0VINhqnGCcJmnGIQJLrJyuSKUJ4xQ5wuePElNU4G9csSFaISVfkEGSp2w4Q4ai0LMTs84oQ47IQQwamH3sxe0IMJSFGeWg0qbrJlRjDKEIYN52CLodPPriU7ZMOdJIwNvU7rvR1c1dIiZCa+YgdD7u1SnlaVaua7wZPGRjn8NVFmtXF81pjO0kQRxLNRljE2a7xwWbP/PCKPat1ufDsuSt+CCHygSAEQaVpnq0SJCxNVoRYltTMulxRYqFCdJEfjqEmuZKNATsDLJvvVaFvYUELQsggroBbAVUG9lqAIYMIUaOFMIrR39IQQg7LFm3MRkYBWYvKsL9Z22xQpmTUVrVQJ76qKtX31ahLoaJUIBgMEwxHY3RasbVuz6KRiS+vkVCaikjjrCcMEMJYq3HWrZR232EbFtg4i0MhxFAVYnkuuxBi1sJdvo+5XKokf+x73bAuvPJdtWUWe7xBGDl6LsAlIZCOhyAZIpIB4kYHUdy0wiyMcuEmBHploMFrmU/IaGmwvX7OZgMujfYpiZUSoDtZ8WTFpxqWaa2xsdVFIwrQbESQmbiByYsbWWnTVJIoklx50zUgCI28AyVVad6AmAsxzy3l4ZVzD0x2hpbfWwYvBMv65bgixHJBmVM9QdTOF2DXgEmQgQUaBCitINlAUoRmZ8Epb6u6x+M+RuunwDoFjCsUkdyq+Gg+a4G2Pc+aFfrds+fVbOCb79SqlofidMU92cRQn3EDBsMxhqMRZtpNBJJqesDtRcz6zYhsPZqcT5YO8IzKtdIOJHhOFxNCTHuhRVZhK2Is9kLJctzsCzFr8ew0PqFuYojJQiknxpRWNgsWRAgCC64xjN7WWdtCpRPIIEAoZX4cxjAEYbPsow2fFC4OI2Hrm/3eqjvp82s2qIK1c058p4zbBOfXZty00tjY3EYjDtBqxe6iZT7ZTsfJK19OYWdZM+OFXYIAbXR22b1kkFeW9YWYN6HejxbqhBgTQMYXYllsnmX+UClq2P+1sbNixsMBtFY5fSejAcamByIgDKxYI0FgGRUs4KWxSYi1CnWbkxl1S1eP1SqFzlXmTs0GRSpwem26GmfvpLgnBVx9xs1Sar8/wnA4wkyniSiUTqwVVS0B9mjdj68LJtDauBYc8goyxTjnHGxTbg+qVLJwTiHmDQh//jaVVbdRrsWaDZLxCEopRIFEo9m0iREv922yjhX4NXQnDAWdqahukRc2hAyLL9EKQgTlzNYELXPxQ+fw1edsNpzw1eXerdrBBtuXvbaxhVYcodNu5OGVnzvO1beX/yZh9ymlACGsEOOyECudtOd+sq4RuJo3vL6xnYVYEUxJL+XpP7RRMMxoxTE6rVap/s1uqY5p4PosSoTTJaAFmSO5RQdhXiGxQMudrY939tWTKdTzaDasWHWtu6gpf3b7A/SHA8zNtBGHQVG+zFuPHOBMDnRyrb8GAiLvOillwapCLJtxNEWIwZxLiGWWyCCSEz7aTiq0moGEcJP8ykCCCJoEmjPzGG2eLTcLonifEHQS/gTv9Ub/iJA2dgvDsMiOuTrtOZUyfKU8TVhVc+I4P//P03vT6lyKSjVW1zaxsdVFqjVSpaFSr4iRauhUQSmFVNtNa2PNPp8sVBZi8FKcwM5CDFUh5pUsrRCz0k6lKi9iFBP0XTbPLQxgTDGv3FK53ddqCNzxvt/ET7z+NQibneJ9nH3Ovk+SeLIE9MNfvH+ktWZb1orzC2pUcn7NBrxzs0F9Tpx3nBgwmXyZlnGr6EHXCtXt9bCysorRaASlbVVLKeUqXW5zU2WMsQUAIirTtN+8XxJiPCnEcraiXGkTZ73inC0xkRdrxuNhqWKVbSZj0wq4GeDtVhMvfcmLMRz28aLnX4U0HZfAzTa2jZlHJ1Y8SMcDJYUMpQzyJnGdJiU/PGnBOzQbgOtTqFypau0Uq8M3/mkZt8lYPWOhNFU4c3Yd7VYDczPt2gYFKQ2UZkA46rata4UQy3xvSYgV8RL7+e98ug57c7M8P0rF+Y6Gw9p+Mdv0pyd9rrteIpDQRmNlZQUnT60gGQ3cGi/spaTtjyRpOgl0kgzHUaMdShHk1J2miUfdU5TytKrWlPla5YFTn3HjunKnH9JMWPGUEqrrmtze7qLf72NxYQZxFOalSkOAMdYPCm8Sdj5LxPeLFSHm1JrtUvEyYsVgIw9cKrtABtJxWlO5onwiRZ3IAjPSJMGR4yehlcZXvvxlhHHHA7cYFGEY8Vf+7LPjSYtORn2jVUcEYQ5gqkaVZgOcR7PBTsKqZmDsaMU+JV5YubMarydJilOnVzHbaWJ+biZPpAjhZjaSyKtT7CnavFvEE2I5gKZGiGX+nIr4jKqaghhpOq4A7aYyaJ3PmJm0UsbW1iaiZowHvv0gIOPJQeGOWwaBrl2sRqVJ17DZI0URp6nhcEIUXUyzwTRaLlW1dqhslapaF1DunGAgNtjY2kav18euxTnEcQjBBKM5n6GR+2KDqUIsB5hrBJlLkhiu9o6RVxhhm3atAVrnKzR5VoryHK+VEyfznvRClZcpPgiCZBrQm6wVhJR539g4GZZbZi6y2WDnEOr8y53V0I53KndWRaF3SOMkwYlTK5idaWPXwpz1fUR+a995CLGiWRGGy/0FWSoVBCJTis2z71OJ8oD2kiWZ2sbkBL46y51G8VKKUS3QWqfrWhsUYoyRjHqVrsbzazaoCrhpSpkvptxZ8SFTu1CrorAiDNkYbGxsot/rY3l5CUTShVRlI/WFWPY8nz9VjbMzmmaumXrrxbmwbUS1QGfUXQIS5Zkj7DNc+buz16WUgylAq7OGFQTJommvv1VDyzin9ZX83Hk1G0wvhHBtrI7zG2w1YVlVGI6TBKtrm1jetZT3Gdgu1LIQy6bLloSYQS7Eyu7DS6XmvWNUZBHZFlJCtzxFiVm1cpWrCwfXZwEpg2490CZdYW3c+LLdh4PeRg0tX0gCY0ptujYs44nZB9Np+XyEoU/APPXYs6mpGRBcSi0WQgy6RohlP+v89oQQQ1mI5WVMAMpoRBROAJ2t31Z1E2XAUbr2ExQPhpBiqxZoo/Vpw3ZJC+nm5Pa6Z87bUuoTGDvVpqeUO6dO75mslp2XMOTpDCRlgHZ7Fp3ObD4h3xdi7AsxqlhUnRBDAXbZ3VGp8GNrHwaAmEiBKpVWlPT5g5v1CNjeOrFeb9FpesJo10Dv+ru31k7s2Gywc7EB52w2mCyUTJveUwV0crBxrUspHxcBaLZm0WrNIAwDCBgYNUan00AYBlhbW58UYtVVDXYSYigLsWxiDvlrouSiiyvTcSrUfRHg2uZ+YRv343i1FmhiHDdGAWz7ppgNBt0zO1NyHVhcdbDn12zAvujDDinUalVrB1q2FCbRas8iDkMISdDjIeIwRRwLPOfZh/D3Xv5i/Ml//RICSbjqyssqQqxaoKFKLXpnIVZa0KKiuu0KEDQxN1qptJidUQPkNHBJCMh8oXmBKIhXaoFOTHIsEwEkC0FWLL4y3VLOWdWaGu9OD8vqp/fUVLVqBoYUAlEoIYkBo6GSbYwTIAxDvOOX34yNzU187gtfw7FjJ3BmdRWvfOVL8PKXvwycrStanV1RWk2p8NETQswtUOcLscyqfSHmaoa1QKfpJHWfL7giX4SeEEXBqVqgO0HvhJ387mYJTLnQF9NscO723vpBce4u1CxUUjDp0PZL6QQMA8WAduuGZavva6XxmXs+h3379+D6t/8srrrqKjulx9ipPn5Yg+ryUn7jgL+8FIrOEQM7S9//vPGLI+Q38aM2161UYnPdteDSjuAK71xlEJ6oBfpr/+2r6et+6l8kQsjIUneRdKC/Y7NBbVUL05sNcM4UqsZ4sIlkvA09HgBuQhmRANxaYdltFWAMxw3Ze+lLf1D89M/8dHthfjafw6WcJil5m2nLS2VuxXBp8JIXc/jLS/lCLJ8uy+VOzzqg0yQpDbjp4Bb3BcnPV9g11EgIiKhxrBZomx0bD4IwivJF1Vy5TFBdAgMX0BjI50xgTM6tLn9NOh6gv3Uag+1VpOMewiCEkKE7WZn3CRERjFapMek3jVH/2ej0zicefWwEAH9475desra+8a5mo/F6KYN5OCvMJ5Z7y0tNE2Kl2Z48KcQ4T4AUQsz4LS8ZcYspQKdJLogvFFyiwsLbkTwyHWiV9oUI5m2DoBdrUl2/Nk9tNij7akytau1Ey8wKo94a+lur6G+dRDoeQEo7VTQK45yuqAB3m436C2b94dPHH/liXRPtz1937V8B+DkA+OSnP/uGMAhviuPoVQS08nU+z0OI1S0v5QsxxqQQq/okma1RUkNyQRDV0nEBLrn6eXFjmGzgkBCQIsC9f3z36alAa5VumzA8UKJurQCS56BlTG024NLambyjUlZpgmFvA9vrx7G9etQ2PrgloYQIbJOXW7MTDDacnmSjv8hsfvvMyW8/eiGLqb798D++H8D9v/fR/xRGzbnrwyC8XobByxgIuUaIZctLZeFTIcTMhBDL+sdyIeZuCeFfIznFogFCEIYXDK7w9jfjRok+gsl+YrVptMnDq2zRGoY8By3zxTUbMEElKfpbK1g/9S1sr5+E0om7o42YsFowa+b0YcPm02DzobOnn/g7r1J/4zt+KQVwJ4A77/7MvfO9vrpJhsGbpaAXMFjsuM5nqX2oLMRKxQdyoHvXLgiCCaCN0XYFg4sA16f2uNlSOwKtdLoRGVUU4JmhVYIwjC6Ylif9rE0kEwmo8RDb60dw9JGvY9TfsCsgUQFucT8qAsB9Y9TXCfzR1ZUj9+BpfLz1LddtAngfgPf9+w/fdZWI5K8Kop8B6IqqENtpnc8S+DVCzHbbTgKtNefWXALxfHyzR/FhHI93tmitV7UxbpJ41tEwQqPZmU7LVaVcoWUSAkYDw/4qzhz5Kxz/zl9j2N8oAVu++RibKBS9PbuXzPOufnbnnj/6dAffg8ev/+ovPA7gNwD8xu/8/t2vZKXfIYT4SQIvG+y8zmcROxtrzRUhxswIwxCozNRgo61/vghwc+sXAnHcGO4INBu1arQCQeQtv+loGzy3a4ecctWCCSRDpMMRhhuP4xtfvx/dzRVot17HBCUDCIQYzM61BwcvO9A8dOhgu91uzbZbLXQ6ncH5gEJExE/jjTbf+c/f+iCAB7/y1f8uHvrmw2/QENcT8A8BtDMhZvx1TUrLak4KsTTV8Oe6ZWAbZgRBOKG0L5S+ozDu7wi01uZMtlZGVkEZ9LawsHtnSpYihNYGw+3TOP6tB/DI33wdg95mYaXuQIoQSKStdmNr9+5lc+iyyxZmZ2da7Var1Wq30Gm30Wo10Wq1QESjaRf/ve99724i+ifM/ObbbrvtlXffffcTWutP9Pv9j9x44429pwPw1732GvO6117zOQCf+72P3d3c7A7+KTP/vGF+FZhCf51P23BQL8Sq64v5/WJWcV+cbyYhMTs7szYzO/ueHYGGNme0y45lo7K3fWbCirMf6/e2obYexVe/eBc21k7A6KTGagUIxFEYby4vL21feeUVrYWF+eVGo7HUaMRoNppoNBtot1pot1sIwzBPATJzyde8//3vX0rT9Dqt9ZullK8xxshsUppS6vlSyjtmZ2ff88lPfvKzSqkP/Mqv/Mr/erqs/MZ/9tYhgI8D+Ph7fusDeyiIfpEIbwHjpaVyZ40QSyb6xRzlG2fRFwSuQCOO9ez83F+24/ZvfuquD/7FBONV2e4FL37NTzTbM18AgCceewhap3j2D12Lf/D6XwaDkA4HGG09ice/8af462/8JQbd9eL+kIwSuFIGQyGDb/zoj1xzdu++/a8Nw6AThiHiOEYcR2g0Gmg0YjTiGFEU5avV+n+ZeZ2Zr2Hma7TWb2bmH2PmwHsdxhiEYYjl5WVIaVdWyjZjzENJknxsOBx+/Kabbhp/N3z7v77tQ1eT0m9j5rfAmGcZLtgxe5w9cxp6pCb6xTY31/HEsaO1vrnkt4WAFBKzc7OnO+3OnfNzwb+58/c+mEx1bVWgn/MDP/qSTrvzvwHg6BPfdCsTMV744tfi6BN/g+7m6bxhvHp7QSGkkUF4TEr5JRLydwe9rf8DALfddtvvD4fjdzQaFtBGo4E4jhCGoWuot0tE+QBLKZG4lYZrwJ/4PwgCLCwsuFsRlsF2VrGZJMl/UUq9/4Ybbnj4uyXo3nXrB64ho99qDH4W4KVs/8rJk24ObhnotfU1nDh1aiq4ggSazUY6Mzf31XbcuOXuP/jgQ+elYapAv/AHfnhf0Jo5CQDHj30LyWhQuZNr+f6QgmiLSPxPEuIPiMSnhoPuxN3APvKRj3y43enc2Gw287vOKaXyTWsN6e42s7GxAaVULag7AS2lxMzMTAlcH3Dvf07T9OvMfPv1119/33cL8FvefUcI4McB/AKANx5/8lgjomCiX2x1fQ2nz6xOKG4pJebm54612s0PnTj6yAf+4s+/fEF3XZvw0UeO/M2ZZz335V0iMSOIJm4vCEAJIR8VQn4ehA8N+91z3mCz0+nw3Nxc5kdz4bFr1y4IIXD8+HGMx2OMRqOLvmucMQZpmlZp2y45JaWddhpFmJubo6WlpVdubGy8G8B3Dejbb705BfB5AJ+/5d13zAkSvz4ajd/VaMTNkq8mgSAoEibNdms8O9v50+ZM++a7P/rbj13s79febfbqF73q16IgvmNz80y8vnoCYD5LhK+B8bFed+PPLvRH7rrrro/Oz8/fEIYhdu3aha2tLaysrJRou0rdF2rRgK01Z5abARwEAZaXl7F37140Gg29vr7+2NbW1gcPHz78UTwDHm/9xV/7AQ3zMQl6RRxF8uzaBrb6fczPzj7Wmmn+9qc/8R/ufCp+Z+pthQ+99BWzM0nYPvbkI6vdrbX0Yn/ggQceCM6cOfO5xcXFf9Tr9Wpp+3yBPtfrWQFASom9e/fiwIED6HQ6emNj49vdbvfDhw8f/hCewY9f/OV3vkVr84ZABrf8wcff/5TeipiejhzDAw880BFC/BgzX5skyU9prS+rA/apAjpzB3v37sX+/fuxsLBgNjc3H+/3+x85fPjw7+DS4ym7Izw99NBDL2bmH1dKXRvH8TVKqTDzkTtksy76BzN/v7y8jP3792N+ft70er0n+v3+nUmSvP9Nb3qTvgTvUwD0qVOnlobD4euVUtcqpa6VUu7JLOvpADYDdzweY2FhAXv27MHCwoLp9/tPDIfDT3zta1/7d+95z3vMJUifYqAffvjhJy6//PKnvdhg1wTtYW5uDvv27cOuXbt4OBweHY1Gnzxy5Mi/veGGG9JLMD6NQPd6vXsefPDBtx48eDBaWlp6Sg9Ka41ut4t2u42lpSVcffXVPB6Pj43H47sA/NZ11103vgTdd1GMPfDAA0urq6v3jEajVx86dEjOzMxMFVrnej4ej7G5uYk4jjE/P4/l5WVO0/R4mqafOnPmzHvf+c53Di/B9T1W3ffff/+Lut3uZ4wxz9u/fz81Go0JIKsgK6WQJAlWVlYghEC73cby8jIbY46nafpHm5ub77vpppu2L0H0DAyv7r333jd2u93/GATB7r179+YZKR/o8XiMJ598EsYYRFGEpaUlJqKTSqk/Zub3vu1tb9u8BMszHOjscc899/yrbrf73maz2VpcXIRSCkeOHMFwOIQQAsvLyxwEwWljzJ9IKW89fPjw6iUo/h8EOsuInTx58sP9fv+XxuNx0Gq1OI7jFSK6N0mS97397W8/fenyfx8AnT3uu++++eFw+HNBEHz+TW9608lLl/x78/i/IFCTjy9VyWsAAAAASUVORK5CYII=",_t["Piggy_Bank_128x128.png"]="data:image/png,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",_t["Pilot1_128x128.png"]="data:image/png,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",_t["Printer_128x128.png"]="data:image/png,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",_t["Router_Icon_128x128.png"]="data:image/png,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",_t["Safe_128x128.png"]="data:image/png,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",_t["Security1_128x128.png"]="data:image/png,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",_t["Server_Tower_128x128.png"]="data:image/png,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",_t["Shopping_Cart_128x128.png"]="data:image/png,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",_t["Software_128x128.png"]="data:image/png,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",_t["Soldier1_128x128.png"]="data:image/png,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",_t["Suit1_128x128.png"]="data:image/png,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",_t["Suit2_128x128.png"]="data:image/png,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",_t["Suit3_128x128.png"]="data:image/png,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",_t["Tech1_128x128.png"]="data:image/png,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",_t["Telesales1_128x128.png"]="data:image/png,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",_t["Virtual_Machine_128x128.png"]="data:image/png,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",_t["Virus_128x128.png"]="data:image/png,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",_t["Wireless_Router_N_128x128.png"]="data:image/png,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",_t["Worker1_128x128.png"]="data:image/png,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",_t["Workstation_128x128.png"]="data:image/png,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",g.POINTS=1,g.MILLIMETERS=2,g.INCHES=3,g.PIXELS_PER_MM=3.937,g.PIXELS_PER_INCH=100,g.SHADOW_OPACITY=.25,g.SHADOWCOLOR="#000000",g.VML_SHADOWCOLOR="#d0d0d0",c.prototype.pageBreakColor="#c0c0c0",c.prototype.pageScale=1,k.prototype.baseSpacingTop=5,k.prototype.baseSpacingBottom=1,B.prototype.ignoreRelativeEdgeParent=!1,L.prototype.gridImage="data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=",L.prototype.gridSteps=4,L.prototype.minGridSize=4,L.prototype.defaultGridColor="#d0d0d0",L.prototype.gridColor=L.prototype.defaultGridColor,L.prototype.unit=g.POINTS,L.prototype.setUnit=function(t){this.unit!=t&&(this.unit=t,this.fireEvent(new A("unitChanged","unit",t)))},m.prototype.foAltText="[Not supported by viewer]",U.prototype.getConstraints=function(){return null},te.touchStyle=E.IS_TOUCH||E.IS_FF&&E.IS_WIN||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0,te.fileSupport=!1,te.lineJumpsEnabled=!0,te.defaultJumpSize=6,te.minTableColumnWidth=20,te.minTableRowHeight=20,te.foreignObjectWarningText="Viewer does not support full SVG 1.1",te.foreignObjectWarningLink="https://desk.draw.io/support/solutions/articles/16000042487",te.createSvgImage=function(t,e,n,i,r){const o=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+t+'px" height="'+e+'px" '+(null!=i&&null!=r?'viewBox="0 0 '+i+" "+r+'" ':"")+'version="1.1">'+n+"</svg>"));return new Z("data:image/svg+xml;base64,"+btoa(o),t,e)},te.zapGremlins=function(t){const e=[];for(let n=0;n<t.length;n++){const i=t.charCodeAt(n);(i>=32||9==i||10==i||13==i)&&65535!=i&&65534!=i&&e.push(t.charAt(n))}return e.join("")},te.stringToBytes=function(t){const e=new Array(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e},te.bytesToString=function(t){const e=new Array(t.length);for(let n=0;n<t.length;n++)e[n]=String.fromCharCode(t[n]);return e.join("")},te.compressNode=function(t,e){const n=v.getXml(t);return te.compress(e?n:te.zapGremlins(n))},te.compress=function(t,e){if(null==t||0==t.length||void 0===s())return t;{const n=e?s().deflate(encodeURIComponent(t),{to:"string"}):s().deflateRaw(encodeURIComponent(t),{to:"string"});return btoa(n)}},te.decompress=function(t,e,n){if(null==t||0==t.length||void 0===s())return t;{const i=atob(t),r=decodeURIComponent(e?s().inflate(i,{to:"string"}):s().inflateRaw(i,{to:"string"}));return n?r:te.zapGremlins(r)}},te.removePasteFormatting=function(t){for(;null!=t;)null!=t.firstChild&&te.removePasteFormatting(t.firstChild),t.nodeType==g.NODETYPE_ELEMENT&&null!=t.style&&(t.style.whiteSpace="","#000000"==t.style.color&&(t.style.color="")),t=t.nextSibling},te.sanitizeHtml=function(t){return a()(t,(function(t){return null!=t&&"javascript:"!==t.toString().toLowerCase().substring(0,11)?t:null}),(function(t){return t}))},te.isLink=function(t){return null!=t&&te.linkPattern.test(t)},te.linkPattern=new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i"),v.extend(te,c),te.prototype.minFitScale=null,te.prototype.maxFitScale=null,te.prototype.linkPolicy="auto",te.prototype.linkTarget="_blank",te.prototype.linkRelation="nofollow noopener noreferrer",te.prototype.defaultScrollbars=!E.IS_IOS,te.prototype.defaultPageVisible=!0,te.prototype.lightbox=!1,te.prototype.defaultPageBackgroundColor="#ffffff",te.prototype.defaultPageBorderColor="#ffffff",te.prototype.scrollTileSize=new w(0,0,400,400),te.prototype.transparentBackground=!0,te.prototype.selectParentAfterDelete=!1,te.prototype.defaultEdgeLength=80,te.prototype.edgeMode=!1,te.prototype.connectionArrowsEnabled=!0,te.prototype.placeholderPattern=new RegExp("%(date{.*}|[^%^{^}]+)%","g"),te.prototype.absoluteUrlPattern=new RegExp("^(?:[a-z]+:)?//","i"),te.prototype.defaultThemeName="default",te.prototype.defaultThemes={},te.prototype.baseUrl=(window!=window.top?document.referrer:document.location.toString()).split("#")[0],te.prototype.editAfterInsert=!1,te.prototype.builtInProperties=["label","tooltip","placeholders","placeholder"],te.prototype.standalone=!1,te.prototype.init=function(){c.prototype.init.apply(this,arguments),this.cellRenderer.initializeLabel=function(t,e){W.prototype.initializeLabel.apply(this,arguments);const n=t.view.graph.tolerance;let i=!0,r=null;const o=v.bind(this,(function(t){i=!0,r=new T(C.getClientX(t),C.getClientY(t))})),s=v.bind(this,(function(t){i=i&&null!=r&&Math.abs(r.x-C.getClientX(t))<n&&Math.abs(r.y-C.getClientY(t))<n})),l=v.bind(this,(function(n){if(i){let i=C.getSource(n);for(;null!=i&&i!=e.node;){if("a"==i.nodeName.toLowerCase()){t.view.graph.labelLinkClicked(t,i,n);break}i=i.parentNode}}}));C.addGestureListeners(e.node,o,s,l),C.addListener(e.node,"click",(function(t){C.consume(t)}))},this.initLayoutManager()},function(){te.prototype.useCssTransforms=!1,te.prototype.currentScale=1,te.prototype.currentTranslate=new T(0,0),te.prototype.getStartEditingCell=function(t){let e=this.getCellStyle(t),n=parseInt(v.getValue(e,g.STYLE_STARTSIZE,0));if(this.isTable(t)&&(!this.isSwimlane(t)||0==n)&&""==this.getLabel(t)&&this.model.getChildCount(t)>0&&(t=this.model.getChildAt(t,0),e=this.getCellStyle(t),n=parseInt(v.getValue(e,g.STYLE_STARTSIZE,0))),this.isTableRow(t)&&(!this.isSwimlane(t)||0==n)&&""==this.getLabel(t)&&this.model.getChildCount(t)>0)for(let i=0;i<this.model.getChildCount(t);i++){const e=this.model.getChildAt(t,i);if(this.isCellEditable(e)){t=e;break}}return t},te.prototype.isFastZoomEnabled=function(){return!E.NO_FO&&!E.IS_EDGE&&!this.useCssTransforms&&this.isCssTransformsSupported()},te.prototype.isCssTransformsSupported=function(){return!(this.dialect!=g.DIALECT_SVG||E.NO_FO||this.lightbox&&E.IS_SF)},te.prototype.getCellAt=function(t,e){return this.useCssTransforms&&(t=t/this.currentScale-this.currentTranslate.x,e=e/this.currentScale-this.currentTranslate.y),this.getScaledCellAt.apply(this,arguments)},te.prototype.getScaledCellAt=function(t,e,n,i,r,o){if(i=null==i||i,r=null==r||r,null==n&&null==(n=this.getCurrentRoot())&&(n=this.getModel().getRoot()),null!=n)for(let s=this.model.getChildCount(n)-1;s>=0;s--){const l=this.model.getChildAt(n,s),a=this.getScaledCellAt(t,e,l,i,r,o);if(null!=a)return a;if(this.isCellVisible(l)&&(r&&this.model.isEdge(l)||i&&this.model.isVertex(l))){const n=this.view.getState(l);if(null!=n&&(null==o||!o(n,t,e))&&this.intersects(n,t,e))return l}}return null},te.prototype.isRecursiveVertexResize=function(t){return!this.isSwimlane(t.cell)&&this.model.getChildCount(t.cell)>0&&!this.isCellCollapsed(t.cell)&&"1"==v.getValue(t.style,"recursiveResize","1")&&null==v.getValue(t.style,"childLayout",null)},te.prototype.isPart=function(t){return"1"==v.getValue(this.getCurrentCellStyle(t),"part","0")||this.isTableCell(t)||this.isTableRow(t)},te.prototype.getCompositeParent=function(t){for(;this.isPart(t);){const e=this.model.getParent(t);if(!this.model.isVertex(e))break;t=e}return t},q.prototype.getStrokeWidth=function(){let t=this.strokeWidth;return this.graph.useCssTransforms&&(t/=this.graph.currentScale),t},L.prototype.getGraphBounds=function(){let t=this.graphBounds;if(this.graph.useCssTransforms){const e=this.graph.currentTranslate,n=this.graph.currentScale;t=new w((t.x+e.x)*n,(t.y+e.y)*n,t.width*n,t.height*n)}return t},L.prototype.viewStateChanged=function(){this.graph.useCssTransforms?(this.validate(),this.graph.sizeDidChange()):(this.revalidate(),this.graph.sizeDidChange())};const t=L.prototype.validate;L.prototype.validate=function(){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0),t.apply(this,arguments),this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)},te.prototype.updateCssTransform=function(){const t=this.view.getDrawPane();if(null!=t){const e=t.parentNode;if(this.useCssTransforms){const n=e.getAttribute("transform");e.setAttribute("transformOrigin","0 0");const i=Math.round(100*this.currentScale)/100,r=Math.round(100*this.currentTranslate.x)/100,o=Math.round(100*this.currentTranslate.y)/100;if(e.setAttribute("transform","scale("+i+","+i+")translate("+r+","+o+")"),n!=e.getAttribute("transform"))try{if(E.IS_EDGE){const t=e.style.display;e.style.display="none",e.getBBox(),e.style.display=t}}catch(t){}}else e.removeAttribute("transformOrigin"),e.removeAttribute("transform")}};const e=L.prototype.validateBackgroundPage;L.prototype.validateBackgroundPage=function(){const t=this.graph.useCssTransforms,n=this.scale,i=this.translate;t&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate),e.apply(this,arguments),t&&(this.scale=n,this.translate=i)};const n=c.prototype.updatePageBreaks;c.prototype.updatePageBreaks=function(){const t=this.useCssTransforms,e=this.view.scale,i=this.view.translate;t&&(this.view.scale=1,this.view.translate=new T(0,0),this.useCssTransforms=!1),n.apply(this,arguments),t&&(this.view.scale=e,this.view.translate=i,this.useCssTransforms=!0)}}(),te.prototype.isLightboxView=function(){return this.lightbox},te.prototype.isViewer=function(){return!1},te.prototype.labelLinkClicked=function(t,e,n){const i=e.getAttribute("href");if(null!=i&&!this.isCustomLink(i)&&(C.isLeftMouseButton(n)&&!C.isPopupTrigger(n)||C.isTouchEvent(n))){if(!this.isEnabled()||this.isCellLocked(t.cell)){const t=this.isBlankLink(i)?this.linkTarget:"_top";this.openLink(this.getAbsoluteUrl(i),t)}C.consume(n)}},te.prototype.openLink=function(t,e,n){let i=window;try{if("_self"==e&&window!=window.top)window.location.href=t;else if(t.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==t.charAt(this.baseUrl.length)&&"_top"==e&&window==window.top){const e=t.split("#")[1];window.location.hash=="#"+e&&(window.location.hash=""),window.location.hash=e}else i=window.open(t,null!=e?e:"_blank"),null==i||n||(i.opener=null)}catch(t){}return i},te.prototype.getLinkTitle=function(t){return t.substring(t.lastIndexOf("/")+1)},te.prototype.isCustomLink=function(t){return"data:"==t.substring(0,5)},te.prototype.customLinkClicked=function(){return!1},te.prototype.isExternalProtocol=function(t){return"mailto:"===t.substring(0,7)},te.prototype.isBlankLink=function(t){return!this.isExternalProtocol(t)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(t)&&t.substring(0,this.domainUrl.length)!==this.domainUrl)},te.prototype.isRelativeUrl=function(t){return null!=t&&!this.absoluteUrlPattern.test(t)&&"data:"!==t.substring(0,5)&&!this.isExternalProtocol(t)},te.prototype.getAbsoluteUrl=function(t){return null!=t&&this.isRelativeUrl(t)&&(t="#"==t.charAt(0)?this.baseUrl+t:"/"==t.charAt(0)?this.domainUrl+t:this.domainPathUrl+t),t},te.prototype.initLayoutManager=function(){this.layoutManager=new J(this),this.layoutManager.hasLayout=function(t){return null!=this.graph.getCellStyle(t).childLayout},this.layoutManager.getLayout=function(t,e){const n=this.graph.model.getParent(t);if(e!=C.BEGIN_UPDATE||this.hasLayout(n,e)){const e=this.graph.getCellStyle(t);if("stackLayout"==e.childLayout){const t=new xt(this.graph,!0);return t.resizeParentMax="1"==v.getValue(e,"resizeParentMax","1"),t.horizontal="1"==v.getValue(e,"horizontalStack","1"),t.resizeParent="1"==v.getValue(e,"resizeParent","1"),t.resizeLast="1"==v.getValue(e,"resizeLast","0"),t.spacing=e.stackSpacing||t.spacing,t.border=e.stackBorder||t.border,t.marginLeft=e.marginLeft||0,t.marginRight=e.marginRight||0,t.marginTop=e.marginTop||0,t.marginBottom=e.marginBottom||0,t.fill=!0,t}if("treeLayout"==e.childLayout){const t=new _(this.graph);return t.horizontal="1"==v.getValue(e,"horizontalTree","1"),t.resizeParent="1"==v.getValue(e,"resizeParent","1"),t.groupPadding=v.getValue(e,"parentPadding",20),t.levelDistance=v.getValue(e,"treeLevelDistance",30),t.maintainParentLocation=!0,t.edgeRouting=!1,t.resetEdges=!1,t}if("flowLayout"==e.childLayout){const t=new $(this.graph,v.getValue(e,"flowOrientation",g.DIRECTION_EAST));return t.resizeParent="1"==v.getValue(e,"resizeParent","1"),t.parentBorder=v.getValue(e,"parentPadding",20),t.maintainParentLocation=!0,t.intraCellSpacing=v.getValue(e,"intraCellSpacing",$.prototype.intraCellSpacing),t.interRankCellSpacing=v.getValue(e,"interRankCellSpacing",$.prototype.interRankCellSpacing),t.interHierarchySpacing=v.getValue(e,"interHierarchySpacing",$.prototype.interHierarchySpacing),t.parallelEdgeSpacing=v.getValue(e,"parallelEdgeSpacing",$.prototype.parallelEdgeSpacing),t}if("circleLayout"==e.childLayout)return new tt(this.graph);if("organicLayout"==e.childLayout)return new et(this.graph);if("tableLayout"==e.childLayout)return new ne(this.graph)}return null}},te.prototype.getPageSize=function(){return this.pageVisible?new w(0,0,this.pageFormat.width*this.pageScale,this.pageFormat.height*this.pageScale):this.scrollTileSize},te.prototype.getPageLayout=function(){const t=this.getPageSize(),e=this.getGraphBounds();if(0==e.width||0==e.height)return new w(0,0,1,1);{const n=Math.floor(Math.ceil(e.x/this.view.scale-this.view.translate.x)/t.width),i=Math.floor(Math.ceil(e.y/this.view.scale-this.view.translate.y)/t.height),r=Math.ceil((Math.floor((e.x+e.width)/this.view.scale)-this.view.translate.x)/t.width)-n,o=Math.ceil((Math.floor((e.y+e.height)/this.view.scale)-this.view.translate.y)/t.height)-i;return new w(n,i,r,o)}},te.prototype.sanitizeHtml=function(t,e){return te.sanitizeHtml(t,e)},te.prototype.updatePlaceholders=function(){let t=!1;for(const e in this.model.cells){const n=this.model.cells[e];this.isReplacePlaceholders(n)&&(this.view.invalidate(n,!1,!1),t=!0)}t&&this.view.validate()},te.prototype.isReplacePlaceholders=function(t){return null!=t.value&&"object"==typeof t.value&&"1"==t.value.getAttribute("placeholders")},te.prototype.isZoomWheelEvent=function(t){return C.isAltDown(t)||C.isMetaDown(t)&&E.IS_MAC||C.isControlDown(t)},te.prototype.isScrollWheelEvent=function(t){return!this.isZoomWheelEvent(t)},te.prototype.isTransparentClickEvent=function(t){return C.isAltDown(t)||E.IS_CHROMEOS&&C.isShiftDown(t)},te.prototype.isIgnoreTerminalEvent=function(t){return C.isShiftDown(t)&&C.isControlDown(t)},te.prototype.isSplitTarget=function(t,e,n){return!this.model.isEdge(e[0])&&!C.isAltDown(n)&&!C.isShiftDown(n)&&c.prototype.isSplitTarget.apply(this,arguments)},te.prototype.getLabel=function(t){let e=c.prototype.getLabel.apply(this,arguments);return null!=e&&this.isReplacePlaceholders(t)&&null==t.getAttribute("placeholder")&&(e=this.replacePlaceholders(t,e)),e},te.prototype.isLabelMovable=function(t){const e=this.getCurrentCellStyle(t);return!this.isCellLocked(t)&&(this.model.isEdge(t)&&this.edgeLabelsMovable||this.model.isVertex(t)&&(this.vertexLabelsMovable||"1"==v.getValue(e,"labelMovable","0")))},te.prototype.setGridSize=function(t){this.gridSize=t,this.fireEvent(new A("gridSizeChanged"))},te.prototype.getClickableLinkForCell=function(t){do{const e=this.getLinkForCell(t);if(null!=e)return e;t=this.model.getParent(t)}while(null!=t);return null},te.prototype.getGlobalVariable=function(t){let e=null;if("date"==t)e=(new Date).toLocaleDateString();else if("time"==t)e=(new Date).toLocaleTimeString();else if("timestamp"==t)e=(new Date).toLocaleString();else if("date{"==t.substring(0,5)){const n=t.substring(5,t.length-1);e=this.formatDate(new Date,n)}return e},te.prototype.formatDate=function(t,e,n){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],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"]},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'"}});const i=this.dateFormatCache,r=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,o=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,s=/[^-+\dA-Z]/g,l=function(t,e){for(t=String(t),e=e||2;t.length<e;)t="0"+t;return t};if(1!=arguments.length||"[object String]"!=Object.prototype.toString.call(t)||/\d/.test(t)||(e=t,t=void 0),t=t?new Date(t):new Date,isNaN(t))throw SyntaxError("invalid date");"UTC:"==(e=String(i.masks[e]||e||i.masks.default)).slice(0,4)&&(e=e.slice(4),n=!0);const a=n?"getUTC":"get",h=t[a+"Date"](),u=t[a+"Day"](),d=t[a+"Month"](),c=t[a+"FullYear"](),p=t[a+"Hours"](),g=t[a+"Minutes"](),m=t[a+"Seconds"](),x=t[a+"Milliseconds"](),y=n?0:t.getTimezoneOffset(),f={d:h,dd:l(h),ddd:i.i18n.dayNames[u],dddd:i.i18n.dayNames[u+7],m:d+1,mm:l(d+1),mmm:i.i18n.monthNames[d],mmmm:i.i18n.monthNames[d+12],yy:String(c).slice(2),yyyy:c,h:p%12||12,hh:l(p%12||12),H:p,HH:l(p),M:g,MM:l(g),s:m,ss:l(m),l:l(x,3),L:l(x>99?Math.round(x/10):x),t:p<12?"a":"p",tt:p<12?"am":"pm",T:p<12?"A":"P",TT:p<12?"AM":"PM",Z:n?"UTC":(String(t).match(o)||[""]).pop().replace(s,""),o:(y>0?"-":"+")+l(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][h%10>3?0:(h%100-h%10!=10)*h%10]};return e.replace(r,(function(t){return t in f?f[t]:t.slice(1,t.length-1)}))},te.prototype.createLayersDialog=function(){const t=document.createElement("div");t.style.position="absolute";const e=this.getModel(),n=e.getChildCount(e.root);for(let i=0;i<n;i++)v.bind(this,(function(n){const i=document.createElement("div");i.style.overflow="hidden",i.style.textOverflow="ellipsis",i.style.padding="2px",i.style.whiteSpace="nowrap";const r=document.createElement("input");r.style.display="inline-block",r.setAttribute("type","checkbox"),e.isVisible(n)&&(r.setAttribute("checked","checked"),r.defaultChecked=!0),i.appendChild(r);const o=this.convertValueToString(n)||f.get("background")||"Background";i.setAttribute("title",o),v.write(i,o),t.appendChild(i),C.addListener(r,"click",(function(){null!=r.getAttribute("checked")?r.removeAttribute("checked"):r.setAttribute("checked","checked"),e.setVisible(n,r.checked)}))}))(e.getChildAt(e.root,i));return t},te.prototype.replacePlaceholders=function(t,e){const n=[];if(null!=e){let i,r=0;for(;i=this.placeholderPattern.exec(e);){const o=i[0];if(o.length>2&&"%label%"!=o&&"%tooltip%"!=o){let s=null;if(i.index>r&&"%"==e.charAt(i.index-1))s=o.substring(1);else{const e=o.substring(1,o.length-1);if("id"==e)s=t.id;else if(e.indexOf("{")<0){let n=t;for(;null==s&&null!=n;)null!=n.value&&"object"==typeof n.value&&(s=n.hasAttribute(e)?null!=n.getAttribute(e)?n.getAttribute(e):"":null),n=this.model.getParent(n)}null==s&&(s=this.getGlobalVariable(e))}n.push(e.substring(r,i.index)+(null!=s?s:o)),r=i.index+o.length}}n.push(e.substring(r))}return n.join("")},te.prototype.restoreSelection=function(t){if(null!=t&&t.length>0){const e=[];for(let n=0;n<t.length;n++){const i=this.model.getCell(t[n].id);null!=i&&e.push(i)}this.setSelectionCells(e)}else this.clearSelection()},te.prototype.selectCellsForConnectVertex=function(t,e,n){2==t.length&&this.model.isVertex(t[1])?(this.setSelectionCell(t[1]),this.scrollCellToVisible(t[1]),null!=n&&(C.isTouchEvent(e)?n.update(n.getState(this.view.getState(t[1]))):n.reset())):this.setSelectionCells(t)},te.prototype.connectVertex=function(t,e,n,i,r,o){if(t.geometry.relative&&this.model.isEdge(t.parent))return[];o=o||!1;const s=this.getCompositeParent(t),l=t.geometry.relative&&null!=t.parent.geometry?new T(t.parent.geometry.width*t.geometry.x,t.parent.geometry.height*t.geometry.y):new T(s.geometry.x,s.geometry.y);e==g.DIRECTION_NORTH?(l.x+=s.geometry.width/2,l.y-=n):e==g.DIRECTION_SOUTH?(l.x+=s.geometry.width/2,l.y+=s.geometry.height+n):e==g.DIRECTION_WEST?(l.x-=n,l.y+=s.geometry.height/2):(l.x+=s.geometry.width+n,l.y+=s.geometry.height/2);const a=this.view.getState(this.model.getParent(t)),h=this.view.scale,u=this.view.translate;let d=u.x*h,c=u.y*h;null!=a&&this.model.isVertex(a.cell)&&(d=a.x,c=a.y),this.model.isVertex(t.parent)&&t.geometry.relative&&(l.x+=t.parent.geometry.x,l.y+=t.parent.geometry.y);let p=o||C.isControlDown(i)&&!r?null:this.getCellAt(d+l.x*h,c+l.y*h);this.model.isAncestor(p,t)&&(p=null);let m=p;for(;null!=m;){if(this.isCellLocked(m)){p=null;break}m=this.model.getParent(m)}if(null!=p){const e=this.view.getState(t),n=this.view.getState(p);null!=e&&null!=n&&v.intersects(e,n)&&(p=null)}const x=!C.isShiftDown(i)||r;if(x&&(e==g.DIRECTION_NORTH?l.y-=t.geometry.height/2:e==g.DIRECTION_SOUTH?l.y+=t.geometry.height/2:e==g.DIRECTION_WEST?l.x-=t.geometry.width/2:l.x+=t.geometry.width/2),null!=p&&!this.isCellConnectable(p)&&!this.isSwimlane(p)){const t=this.getModel().getParent(p);this.getModel().isVertex(t)&&this.isCellConnectable(t)&&(p=t)}(p==t||this.model.isEdge(p)||!this.isCellConnectable(p)&&!this.isSwimlane(p))&&(p=null);const y=[];this.model.beginUpdate();try{const n=null!=p&&this.isSwimlane(p);let r=n?null:p;if(null==r&&x){let e=t;for(var f=this.getCellGeometry(t);null!=f&&f.relative;)e=this.getModel().getParent(e),f=this.getCellGeometry(e);e=this.getCompositeParent(e),r=this.duplicateCells([e],!1)[0],null!=(f=this.getCellGeometry(r))&&(f.x=l.x-f.width/2,f.y=l.y-f.height/2),n&&(this.addCells([r],p,null,null,null,!0),p=null)}let o=null;null!=this.layoutManager&&(o=this.layoutManager.getLayout(this.model.getParent(t)));const s=C.isControlDown(i)&&x||null==p&&null!=o&&o.constructor==xt?null:this.insertEdge(this.model.getParent(t),null,"",t,r,this.createCurrentEdgeStyle());if(null!=s&&this.connectionHandler.insertBeforeSource){var E=null;let e=t;for(;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=s.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==s.parent&&(E=e.parent.getIndex(e),this.model.add(e.parent,s,E))}null==p&&null!=r&&null!=o&&null!=t.parent&&o.constructor==xt&&e==g.DIRECTION_WEST&&(E=t.parent.getIndex(t),this.model.add(t.parent,r,E)),null!=s&&y.push(s),null==p&&null!=r&&y.push(r),null==r&&null!=s&&s.geometry.setTerminalPoint(l,!1),null!=s&&this.fireEvent(new A("cellsInserted","cells",[s]))}finally{this.model.endUpdate()}return y},te.prototype.getIndexableText=function(){const t=document.createElement("div"),e=[];let n="";for(const i in this.model.cells){const r=this.model.cells[i];(this.model.isVertex(r)||this.model.isEdge(r))&&(this.isHtmlLabel(r)?(t.innerHTML=this.sanitizeHtml(this.getLabel(r)),n=v.extractTextWithWhitespace([t])):n=this.getLabel(r),n=v.trim(n.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),n.length>0&&e.push(n))}return e.join(" ")},te.prototype.convertValueToString=function(t){const e=this.model.getValue(t);if(null!=e&&"object"==typeof e){if(this.isReplacePlaceholders(t)&&null!=t.getAttribute("placeholder")){const e=t.getAttribute("placeholder");let n=t,i=null;for(;null==i&&null!=n;)null!=n.value&&"object"==typeof n.value&&(i=n.hasAttribute(e)?null!=n.getAttribute(e)?n.getAttribute(e):"":null),n=this.model.getParent(n);return i||""}return e.getAttribute("label")||""}return c.prototype.convertValueToString.apply(this,arguments)},te.prototype.getLinksForState=function(t){return null!=t&&null!=t.text&&null!=t.text.node?t.text.node.getElementsByTagName("a"):null},te.prototype.getLinkForCell=function(t){if(null!=t.value&&"object"==typeof t.value){let e=t.value.getAttribute("link");return null!=e&&"javascript:"===e.toLowerCase().substring(0,11)&&(e=e.substring(11)),e}return null},te.prototype.getCellStyle=function(t){const e=c.prototype.getCellStyle.apply(this,arguments);if(null!=t&&null!=this.layoutManager){const n=this.model.getParent(t);if(this.model.isVertex(n)&&this.isCellCollapsed(t)){const t=this.layoutManager.getLayout(n);null!=t&&t.constructor==xt&&(e[g.STYLE_HORIZONTAL]=!t.horizontal)}}return e},te.prototype.updateAlternateBounds=function(t,e){if(null!=t&&null!=e&&null!=this.layoutManager&&null!=e.alternateBounds){const n=this.layoutManager.getLayout(this.model.getParent(t));null!=n&&n.constructor==xt&&(n.horizontal?e.alternateBounds.height=0:e.alternateBounds.width=0)}c.prototype.updateAlternateBounds.apply(this,arguments)},te.prototype.isMoveCellsEvent=function(t,e){return C.isShiftDown(t)||"1"==v.getValue(e.style,"moveCells","0")},te.prototype.foldCells=function(t,e,n,i,r){if(e=null!=e&&e,null==n&&(n=this.getFoldableCells(this.getSelectionCells(),t)),null!=n){this.model.beginUpdate();try{if(c.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(let t=0;t<n.length;t++){const e=this.view.getState(n[t]),i=this.getCellGeometry(n[t]);if(null!=e&&null!=i){const o=Math.round(i.width-e.width/this.view.scale),s=Math.round(i.height-e.height/this.view.scale);if(0!=s||0!=o){const i=this.model.getParent(n[t]),l=this.layoutManager.getLayout(i);null==l?null!=r&&this.isMoveCellsEvent(r,e)&&this.moveSiblings(e,i,o,s):null!=r&&C.isAltDown(r)||l.constructor!=xt||l.resizeLast||this.resizeParentStacks(i,l,o,s)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(n)}},te.prototype.moveSiblings=function(t,e,n,i){this.model.beginUpdate();try{const r=this.getCellsBeyond(t.x,t.y,e,!0,!0);for(let e=0;e<r.length;e++)if(r[e]!=t.cell){const o=this.view.getState(r[e]);let s=this.getCellGeometry(r[e]);null!=o&&null!=s&&(s=s.clone(),s.translate(Math.round(n*Math.max(0,Math.min(1,(o.x-t.x)/t.width))),Math.round(i*Math.max(0,Math.min(1,(o.y-t.y)/t.height)))),this.model.setGeometry(r[e],s))}}finally{this.model.endUpdate()}},te.prototype.resizeParentStacks=function(t,e,n,i){if(null!=this.layoutManager&&null!=e&&e.constructor==xt&&!e.resizeLast){this.model.beginUpdate();try{const r=e.horizontal;for(;null!=t&&null!=e&&e.constructor==xt&&e.horizontal==r&&!e.resizeLast;){let r=this.getCellGeometry(t);const o=this.view.getState(t);null!=o&&null!=r&&(r=r.clone(),e.horizontal?r.width+=n+Math.min(0,o.width/this.view.scale-r.width):r.height+=i+Math.min(0,o.height/this.view.scale-r.height),this.model.setGeometry(t,r)),t=this.model.getParent(t),e=this.layoutManager.getLayout(t)}}finally{this.model.endUpdate()}}},te.prototype.isContainer=function(t){const e=this.getCurrentCellStyle(t);return this.isSwimlane(t)?"0"!=e.container:"1"==e.container},te.prototype.isCellConnectable=function(t){const e=this.getCurrentCellStyle(t);return null!=e.connectable?"0"!=e.connectable:c.prototype.isCellConnectable.apply(this,arguments)},te.prototype.isLabelMovable=function(t){const e=this.getCurrentCellStyle(t);return null!=e.movableLabel?"0"!=e.movableLabel:c.prototype.isLabelMovable.apply(this,arguments)},te.prototype.selectAll=function(t){t=t||this.getDefaultParent(),this.isCellLocked(t)||c.prototype.selectAll.apply(this,arguments)},te.prototype.selectCells=function(t,e,n){n=n||this.getDefaultParent(),this.isCellLocked(n)||c.prototype.selectCells.apply(this,arguments)},te.prototype.getSwimlaneAt=function(){let t=c.prototype.getSwimlaneAt.apply(this,arguments);return this.isCellLocked(t)&&(t=null),t},te.prototype.isCellFoldable=function(t){const e=this.getCurrentCellStyle(t);return this.foldingEnabled&&("1"==e.treeFolding||!this.isCellLocked(t)&&(this.isContainer(t)&&"0"!=e.collapsible||!this.isContainer(t)&&"1"==e.collapsible))},te.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0),this.escape(),this.isSelectionEmpty()||this.clearSelection()},te.prototype.zoom=function(t){t=Math.max(.01,Math.min(this.view.scale*t,160))/this.view.scale,c.prototype.zoom.apply(this,arguments)},te.prototype.zoomIn=function(){this.view.scale<.15?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)},te.prototype.zoomOut=function(){this.view.scale<=.15?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(this.view.scale*(1/this.zoomFactor)*20)/20/this.view.scale)},te.prototype.getTooltipForCell=function(t){let e="";if(v.isNode(t.value)){let i=t.value.getAttribute("tooltip");if(null!=i)null!=i&&this.isReplacePlaceholders(t)&&(i=this.replacePlaceholders(t,i)),e=this.sanitizeHtml(i);else{const i=this.builtInProperties,r=t.value.attributes,o=[];this.isEnabled()&&i.push("link");for(var n=0;n<r.length;n++)v.indexOf(i,r[n].nodeName)<0&&r[n].nodeValue.length>0&&o.push({name:r[n].nodeName,value:r[n].nodeValue});for(o.sort((function(t,e){return t.name<e.name?-1:t.name>e.name?1:0})),n=0;n<o.length;n++)"link"==o[n].name&&this.isCustomLink(o[n].value)||(e+=("link"!=o[n].name?"<b>"+o[n].name+":</b> ":"")+v.htmlEntities(o[n].value)+"\n");e.length>0&&(e=e.substring(0,e.length-1),e='<div style="max-width:360px;">'+e+"</div>")}}return e},te.prototype.stringToBytes=function(t){return te.stringToBytes(t)},te.prototype.bytesToString=function(t){return te.bytesToString(t)},te.prototype.compressNode=function(t){return te.compressNode(t)},te.prototype.compress=function(t,e){return te.compress(t,e)},te.prototype.decompress=function(t,e){return te.decompress(t,e)},te.prototype.zapGremlins=function(t){return te.zapGremlins(t)},ee.prototype.arrowSpacing=2,ee.prototype.updateDelay=500,ee.prototype.activationDelay=140,ee.prototype.currentState=null,ee.prototype.activeArrow=null,ee.prototype.inactiveOpacity=15,ee.prototype.cssCursor="copy",ee.prototype.checkCollisions=!0,ee.prototype.arrowFill="#29b6f2",ee.prototype.triangleUp=te.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+ee.prototype.arrowFill+'"/>'),ee.prototype.triangleRight=te.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+ee.prototype.arrowFill+'"/>'),ee.prototype.triangleDown=te.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+ee.prototype.arrowFill+'"/>'),ee.prototype.triangleLeft=te.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+ee.prototype.arrowFill+'"/>'),ee.prototype.roundDrop=te.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+ee.prototype.arrowFill+'"/>'),ee.prototype.refreshTarget=new Z("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjM2cHgiIGhlaWdodD0iMzZweCI+PGVsbGlwc2UgZmlsbD0iIzI5YjZmMiIgY3g9IjEyIiBjeT0iMTIiIHJ4PSIxMiIgcnk9IjEyIi8+PHBhdGggdHJhbnNmb3JtPSJzY2FsZSgwLjgpIHRyYW5zbGF0ZSgyLjQsIDIuNCkiIHN0cm9rZT0iI2ZmZiIgZmlsbD0iI2ZmZiIgZD0iTTEyIDZ2M2w0LTQtNC00djNjLTQuNDIgMC04IDMuNTgtOCA4IDAgMS41Ny40NiAzLjAzIDEuMjQgNC4yNkw2LjcgMTQuOGMtLjQ1LS44My0uNy0xLjc5LS43LTIuOCAwLTMuMzEgMi42OS02IDYtNnptNi43NiAxLjc0TDE3LjMgOS4yYy40NC44NC43IDEuNzkuNyAyLjggMCAzLjMxLTIuNjkgNi02IDZ2LTNsLTQgNCA0IDR2LTNjNC40MiAwIDgtMy41OCA4LTggMC0xLjU3LS40Ni0zLjAzLTEuMjQtNC4yNnoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+Cg==",38,38),ee.prototype.tolerance=E.IS_TOUCH?6:0,ee.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,f.get("plusTooltip")),this.arrowRight=this.createArrow(this.triangleRight,f.get("plusTooltip")),this.arrowDown=this.createArrow(this.triangleDown,f.get("plusTooltip")),this.arrowLeft=this.createArrow(this.triangleLeft,f.get("plusTooltip")),this.elts=[this.arrowUp,this.arrowRight,this.arrowDown,this.arrowLeft],this.resetHandler=v.bind(this,(function(){this.reset()})),this.repaintHandler=v.bind(this,(function(){this.repaint()})),this.graph.selectionModel.addListener(C.CHANGE,this.resetHandler),this.graph.model.addListener(C.CHANGE,this.repaintHandler),this.graph.view.addListener(C.SCALE_AND_TRANSLATE,this.repaintHandler),this.graph.view.addListener(C.TRANSLATE,this.repaintHandler),this.graph.view.addListener(C.SCALE,this.repaintHandler),this.graph.view.addListener(C.DOWN,this.repaintHandler),this.graph.view.addListener(C.UP,this.repaintHandler),this.graph.addListener(C.ROOT,this.repaintHandler),this.graph.addListener(C.ESCAPE,this.resetHandler),C.addListener(this.graph.container,"scroll",this.resetHandler),this.graph.addListener(C.ESCAPE,v.bind(this,(function(){this.mouseDownPoint=null}))),C.addListener(this.graph.container,"mouseleave",v.bind(this,(function(t){null!=t.relatedTarget&&C.getSource(t)==this.graph.container&&this.setDisplay("none")}))),this.graph.addListener(C.START_EDITING,v.bind(this,(function(){this.reset()})));const t=this.graph.click;this.graph.click=v.bind(this,(function(e){t.apply(this.graph,arguments),null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||!C.isTouchEvent(e.getEvent())||this.graph.model.isVertex(e.getCell())||this.reset()}));let e=!1;this.graph.addMouseListener({mouseDown:v.bind(this,(function(t,n){e=!1;const i=n.getEvent();if(this.isResetEvent(i))this.reset();else if(!this.isActive()){const t=this.getState(n.getState());null==t&&C.isTouchEvent(i)||this.update(t)}this.setDisplay("none")})),mouseMove:v.bind(this,(function(t,n){const i=n.getEvent();this.isResetEvent(i)?this.reset():this.graph.isMouseDown||C.isTouchEvent(i)||this.update(this.getState(n.getState()),n.getGraphX(),n.getGraphY()),null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(e=!0)})),mouseUp:v.bind(this,(function(t,n){const i=n.getEvent();this.isResetEvent(i)?this.reset():this.isActive()&&!e&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),n):this.isActive()?1==this.graph.getSelectionCount()&&this.graph.model.isEdge(this.graph.getSelectionCell())?this.reset():this.update(this.getState(this.graph.view.getState(this.graph.getCellAt(n.getGraphX(),n.getGraphY())))):C.isTouchEvent(i)||null!=this.bbox&&v.contains(this.bbox,n.getGraphX(),n.getGraphY())?(this.setDisplay(""),this.repaint()):C.isTouchEvent(i)||this.reset(),e=!1,this.resetActiveArrow()}))})},ee.prototype.isResetEvent=function(t){return C.isAltDown(t)||null==this.activeArrow&&C.isShiftDown(t)||C.isMetaDown(t)||C.isPopupTrigger(t)&&!C.isControlDown(t)},ee.prototype.createArrow=function(t,e){let n=null;return n=v.createImage(t.src),n.style.width=t.width+"px",n.style.height=t.height+"px",n.style.padding=this.tolerance+"px",null!=e&&n.setAttribute("title",e),n.style.position="absolute",n.style.cursor=this.cssCursor,C.addGestureListeners(n,v.bind(this,(function(t){null==this.currentState||this.isResetEvent(t)||(this.mouseDownPoint=v.convertPoint(this.graph.container,C.getClientX(t),C.getClientY(t)),this.drag(t,this.mouseDownPoint.x,this.mouseDownPoint.y),this.activeArrow=n,this.setDisplay("none"),C.consume(t))}))),C.redirectMouseEvents(n,this.graph,this.currentState),C.addListener(n,"mouseenter",v.bind(this,(function(t){C.isMouseEvent(t)&&(null!=this.activeArrow&&this.activeArrow!=n&&v.setOpacity(this.activeArrow,this.inactiveOpacity),this.graph.connectionHandler.constraintHandler.reset(),v.setOpacity(n,100),this.activeArrow=n)}))),C.addListener(n,"mouseleave",v.bind(this,(function(){this.graph.isMouseDown||this.resetActiveArrow()}))),n},ee.prototype.resetActiveArrow=function(){null!=this.activeArrow&&(v.setOpacity(this.activeArrow,this.inactiveOpacity),this.activeArrow=null)},ee.prototype.getDirection=function(){let t=g.DIRECTION_EAST;return this.activeArrow==this.arrowUp?t=g.DIRECTION_NORTH:this.activeArrow==this.arrowDown?t=g.DIRECTION_SOUTH:this.activeArrow==this.arrowLeft&&(t=g.DIRECTION_WEST),t},ee.prototype.visitNodes=function(t){for(let e=0;e<this.elts.length;e++)null!=this.elts[e]&&t(this.elts[e])},ee.prototype.removeNodes=function(){this.visitNodes((function(t){null!=t.parentNode&&t.parentNode.removeChild(t)}))},ee.prototype.setDisplay=function(t){this.visitNodes((function(e){e.style.display=t}))},ee.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState},ee.prototype.drag=function(t,e,n){if(this.graph.popupMenuHandler.hideMenu(),this.graph.stopEditing(!1),null!=this.currentState){this.graph.connectionHandler.start(this.currentState,e,n),this.graph.isMouseTrigger=C.isMouseEvent(t),this.graph.isMouseDown=!0;const i=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);null!=i&&i.setHandlesVisible(!1);const r=this.graph.connectionHandler.edgeState;if(null!=t&&C.isShiftDown(t)&&C.isControlDown(t)&&null!=r&&"orthogonalEdgeStyle"===v.getValue(r.style,g.STYLE_EDGE,null)){const t=this.getDirection();r.cell.style=v.setStyle(r.cell.style,"sourcePortConstraint",t),r.style.sourcePortConstraint=t}}},ee.prototype.getStateAt=function(t,e,n){return this.graph.view.getState(this.graph.getCellAt(e,n))},ee.prototype.click=function(t,e,n){const i=n.getEvent(),r=n.getGraphX(),o=n.getGraphY(),s=this.getStateAt(t,r,o);null==s||!this.graph.model.isEdge(s.cell)||C.isControlDown(i)||s.getVisibleTerminalState(!0)!=t&&s.getVisibleTerminalState(!1)!=t?null!=t&&this.graph.selectCellsForConnectVertex(this.graph.connectVertex(t.cell,e,this.graph.defaultEdgeLength,i),i,this):(this.graph.setSelectionCell(s.cell),this.reset()),n.consume()},ee.prototype.reset=function(t){(t=null==t||t)&&null!=this.updateThread&&window.clearTimeout(this.updateThread),this.mouseDownPoint=null,this.currentState=null,this.activeArrow=null,this.removeNodes(),this.bbox=null},ee.prototype.repaint=function(){if(this.bbox=null,null!=this.currentState){if(this.currentState=this.getState(this.currentState),null!=this.currentState&&this.graph.model.isVertex(this.currentState.cell)&&this.graph.isCellConnectable(this.currentState.cell)){let t=w.fromRectangle(this.currentState);null!=this.currentState.shape&&null!=this.currentState.shape.boundingBox&&(t=w.fromRectangle(this.currentState.shape.boundingBox)),t.grow(this.graph.tolerance),t.grow(this.arrowSpacing);let e=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);this.graph.isTableRow(this.currentState.cell)&&(e=this.graph.selectionCellsHandler.getHandler(this.graph.model.getParent(this.currentState.cell)));let n=null;null!=e&&(t.x-=e.horizontalOffset/2,t.y-=e.verticalOffset/2,t.width+=e.horizontalOffset,t.height+=e.verticalOffset,null!=e.rotationShape&&null!=e.rotationShape.node&&"hidden"!=e.rotationShape.node.style.visibility&&"none"!=e.rotationShape.node.style.display&&null!=e.rotationShape.boundingBox&&(n=e.rotationShape.boundingBox));const i=v.bind(this,(function(t,e,i){if(null!=n){const r=new w(e,i,t.clientWidth,t.clientHeight);v.intersects(r,n)&&(t==this.arrowUp?i-=r.y+r.height-n.y:t==this.arrowRight?e+=n.x+n.width-r.x:t==this.arrowDown?i+=n.y+n.height-r.y:t==this.arrowLeft&&(e-=r.x+r.width-n.x))}t.style.left=e+"px",t.style.top=i+"px",v.setOpacity(t,this.inactiveOpacity)}));if(i(this.arrowUp,Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance),Math.round(t.y-this.triangleUp.height-this.tolerance)),i(this.arrowRight,Math.round(t.x+t.width-this.tolerance),Math.round(this.currentState.getCenterY()-this.triangleRight.height/2-this.tolerance)),i(this.arrowDown,parseInt(this.arrowUp.style.left),Math.round(t.y+t.height-this.tolerance)),i(this.arrowLeft,Math.round(t.x-this.triangleLeft.width-this.tolerance),parseInt(this.arrowRight.style.top)),this.checkCollisions){let e=this.graph.getCellAt(t.x+t.width+this.triangleRight.width/2,this.currentState.getCenterY()),n=this.graph.getCellAt(t.x-this.triangleLeft.width/2,this.currentState.getCenterY()),i=this.graph.getCellAt(this.currentState.getCenterX(),t.y-this.triangleUp.height/2),r=this.graph.getCellAt(this.currentState.getCenterX(),t.y+t.height+this.triangleDown.height/2);null!=e&&e==n&&n==i&&i==r&&(e=null,n=null,i=null,r=null);const o=this.graph.getCellGeometry(this.currentState.cell),s=v.bind(this,(function(t,e){const n=this.graph.model.isVertex(t)&&this.graph.getCellGeometry(t);null==t||this.graph.model.isAncestor(t,this.currentState.cell)||this.graph.isSwimlane(t)||!(null==n||null==o||n.height<3*o.height&&n.width<3*o.width)?e.style.visibility="visible":e.style.visibility="hidden"}));s(e,this.arrowRight),s(n,this.arrowLeft),s(i,this.arrowUp),s(r,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",f.get("plusTooltip")),this.arrowRight.setAttribute("title",f.get("plusTooltip")),this.arrowUp.setAttribute("title",f.get("plusTooltip")),this.arrowDown.setAttribute("title",f.get("plusTooltip"))):(this.arrowLeft.removeAttribute("title"),this.arrowRight.removeAttribute("title"),this.arrowUp.removeAttribute("title"),this.arrowDown.removeAttribute("title"))}else this.reset();null!=this.currentState&&(this.bbox=this.computeBoundingBox(),null!=this.bbox&&this.bbox.grow(10))}},ee.prototype.computeBoundingBox=function(){let t=this.graph.model.isEdge(this.currentState.cell)?null:w.fromRectangle(this.currentState);return this.visitNodes((function(e){if(null!=e.parentNode){const n=new w(e.offsetLeft,e.offsetTop,e.offsetWidth,e.offsetHeight);null==t?t=n:t.add(n)}})),t},ee.prototype.getState=function(t){if(null!=t){let e=t.cell;if(this.graph.getModel().contains(e)){if(this.graph.getModel().isVertex(e)&&!this.graph.isCellConnectable(e)){const t=this.graph.getModel().getParent(e);this.graph.getModel().isVertex(t)&&this.graph.isCellConnectable(t)&&(e=t)}(this.graph.isCellLocked(e)||this.graph.model.isEdge(e))&&(e=null),null!=(t=this.graph.view.getState(e))&&null==t.style&&(t=null)}else t=null}return t},ee.prototype.update=function(t,e,n){if(!this.graph.connectionArrowsEnabled||null!=t&&"0"==v.getValue(t.style,"allowArrows","1"))this.reset();else{null!=t&&null!=t.cell.geometry&&t.cell.geometry.relative&&this.graph.model.isEdge(t.cell.parent)&&(t=null);let i=null;this.prev!=t||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=t,i=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=t&&(this.updateThread=window.setTimeout(v.bind(this,(function(){this.isActive()||this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=t,this.update(t,e,n))})),this.updateDelay+10))):null!=this.startTime&&(i=(new Date).getTime()-this.startTime),this.setDisplay(""),null!=this.currentState&&this.currentState!=t&&i<this.activationDelay&&null!=this.bbox&&!v.contains(this.bbox,e,n)?this.reset(!1):(null!=this.currentState||i>this.activationDelay)&&this.currentState!=t&&(i>this.updateDelay&&null!=t||null==this.bbox||null==e||null==n||!v.contains(this.bbox,e,n))&&(null!=t&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(t),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=t&&this.graph.connectionHandler.constraintHandler.reset()):this.reset())}},ee.prototype.setCurrentState=function(t){"eastwest"!=t.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=t},te.prototype.createParent=function(t,e,n,i,r){t=this.cloneCell(t);for(let o=0;o<n;o++){const n=this.cloneCell(e),s=this.getCellGeometry(n);null!=s&&(s.x+=o*i,s.y+=o*r),t.insert(n)}return t},te.prototype.createTable=function(t,e,n,i,r,o,s,l,a){return n=null!=n?n:60,i=null!=i?i:40,o=null!=o?o:30,s=null!=s?s:"shape=table;html=1;whiteSpace=wrap;startSize="+(null!=r?o:"0")+";container=1;collapsible=0;childLayout=tableLayout;",l=null!=l?l:"shape=partialRectangle;html=1;whiteSpace=wrap;collapsible=0;dropTarget=0;pointerEvents=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;",a=null!=a?a:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;",this.createParent(this.createVertex(null,null,null!=r?r:"",0,0,e*n,t*i+(null!=r?o:0),s),this.createParent(this.createVertex(null,null,"",0,0,e*n,i,l),this.createVertex(null,null,"",0,0,n,i,a),e,n,0),t,0,i)},te.prototype.setTableValues=function(t,e,n){const i=this.model.getChildCells(t,!0);for(let r=0;r<i.length;r++)if(null!=n&&(i[r].value=n[r]),null!=e){const t=this.model.getChildCells(i[r],!0);for(let n=0;n<t.length;n++)null!=e[r][n]&&(t[n].value=e[r][n])}return t},te.prototype.createCrossFunctionalSwimlane=function(t,e,n,i,r,o,s,l,a){n=null!=n?n:120,i=null!=i?i:120,r=null!=r?r:40;const h="html=1;whiteSpace=wrap;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";o=null!=o?o:"shape=table;childLayout=tableLayout;rowLines=0;columnLines=0;startSize="+r+";"+h,s=null!=s?s:"swimlane;horizontal=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize="+r+";"+h,l=null!=l?l:"swimlane;connectable=0;startSize=40;"+h,a=null!=a?a:"swimlane;connectable=0;startSize=0;"+h;const u=this.createVertex(null,null,"",0,0,e*n,t*i,o),d=v.getValue(this.getCellStyle(u),g.STYLE_STARTSIZE,g.DEFAULT_STARTSIZE);u.geometry.width+=d,u.geometry.height+=d;const c=this.createVertex(null,null,"",0,d,e*n+d,i,s);return u.insert(this.createParent(c,this.createVertex(null,null,"",d,0,n,i,l),e,n,0)),t>1?(c.geometry.y=i+d,this.createParent(u,this.createParent(c,this.createVertex(null,null,"",d,0,n,i,a),e,n,0),t-1,0,i)):u},te.prototype.isTableCell=function(t){return this.model.isVertex(t)&&this.isTableRow(this.model.getParent(t))},te.prototype.isTableRow=function(t){return this.model.isVertex(t)&&this.isTable(this.model.getParent(t))},te.prototype.isTable=function(t){const e=this.getCellStyle(t);return null!=e&&"tableLayout"==e.childLayout},te.prototype.setTableRowHeight=function(t,e,n){n=null==n||n;const i=this.getModel();i.beginUpdate();try{let r=this.getCellGeometry(t);if(null!=r){r=r.clone(),r.height+=e,i.setGeometry(t,r);const o=i.getParent(t),s=i.getChildCells(o,!0);if(!n){const n=v.indexOf(s,t);if(n<s.length-1){const t=s[n+1];let r=this.getCellGeometry(t);null!=r&&(r=r.clone(),r.y+=e,r.height-=e,i.setGeometry(t,r))}}let l=this.getCellGeometry(o);null!=l&&(n||(n=t==s[s.length-1]),n&&(l=l.clone(),l.height+=e,i.setGeometry(o,l))),null!=this.layoutManager&&this.layoutManager.executeLayout(o,!0)}}finally{i.endUpdate()}},te.prototype.setTableColumnWidth=function(t,e,n){n=null!=n&&n;const i=this.getModel();let r=i.getParent(t);const o=i.getParent(r);let s=i.getChildCells(r,!0);const l=v.indexOf(s,t),a=l==s.length-1;i.beginUpdate();try{const t=i.getChildCells(o,!0);for(let o=0;o<t.length;o++){r=t[o],s=i.getChildCells(r,!0);let a=s[l];var h;null!=(h=this.getCellGeometry(a))&&((h=h.clone()).width+=e,i.setGeometry(a,h)),l<s.length-1&&(a=s[l+1],null!=(h=this.getCellGeometry(a))&&((h=h.clone()).x+=e,n||(h.width-=e),i.setGeometry(a,h)))}if(a||n){let t=this.getCellGeometry(o);null!=t&&(t=t.clone(),t.width+=e,i.setGeometry(o,t))}null!=this.layoutManager&&this.layoutManager.executeLayout(o,!0)}finally{i.endUpdate()}},ne.prototype=new xt,ne.prototype.constructor=ne,ne.prototype.isHorizontal=function(){return!1},ne.prototype.getSize=function(t,e){let n=0;for(let i=0;i<t.length;i++)if(!this.isVertexIgnored(t[i])){const r=this.graph.getCellGeometry(t[i]);null!=r&&(n+=e?r.width:r.height)}return n},ne.prototype.getRowLayout=function(t,e){const n=this.graph.model.getChildCells(t,!0),i=this.graph.getActualStartSize(t,!0),r=this.getSize(n,!0),o=e-i.x-i.width,s=[];let l=i.x;for(let a=0;a<n.length;a++){const t=this.graph.getCellGeometry(n[a]);null!=t&&(l+=t.width*o/r,s.push(Math.round(l)))}return s},ne.prototype.layoutRow=function(t,e,n,i){const r=this.graph.getModel(),o=r.getChildCells(t,!0),s=this.graph.getActualStartSize(t,!0);let l=s.x,a=0;null!=e&&(e=e.slice()).splice(0,0,s.x);for(let h=0;h<o.length;h++){let t=this.graph.getCellGeometry(o[h]);null!=t&&(t=t.clone(),t.y=s.y,t.height=n-s.y-s.height,null!=e?(t.x=e[h],t.width=e[h+1]-t.x,h==o.length-1&&h<e.length-2&&(t.width=i-t.x-s.x-s.width)):(t.x=l,l+=t.width,h==o.length-1?t.width=i-s.x-s.width-a:a+=t.width),r.setGeometry(o[h],t))}return a},ne.prototype.execute=function(t){if(null!=t){const n=this.graph.getActualStartSize(t,!0);let i=this.graph.getCellGeometry(t);const r=this.graph.getCellStyle(t),o="1"==v.getValue(r,"resizeLastRow","0"),s="1"==v.getValue(r,"resizeLast","0"),l="1"==v.getValue(r,"fixedRows","0"),a=this.graph.getModel();let h=0;a.beginUpdate();try{const r=i.height-n.y-n.height,u=i.width-n.x-n.width,d=a.getChildCells(t,!0),c=this.getSize(d,!1);if(r>0&&u>0&&d.length>0&&c>0){o&&null!=(e=this.graph.getCellGeometry(d[d.length-1]))&&((e=e.clone()).height=r-c+e.height,a.setGeometry(d[d.length-1],e));const p=s?null:this.getRowLayout(d[0],u);let g=n.y;for(let t=0;t<d.length;t++){var e;null!=(e=this.graph.getCellGeometry(d[t]))&&((e=e.clone()).x=n.x,e.width=u,e.y=Math.round(g),g+=o||l?e.height:e.height/c*r,e.height=Math.round(g)-e.y,a.setGeometry(d[t],e)),h=Math.max(h,this.layoutRow(d[t],p,e.height,u))}l&&r<c&&(i=i.clone(),i.height=g+n.height,a.setGeometry(t,i)),s&&u<h+te.minTableColumnWidth&&(i=i.clone(),i.width=h+n.width+n.x+te.minTableColumnWidth,a.setGeometry(t,i))}}finally{a.endUpdate()}}},function(){const t=L.prototype.resetValidationState;L.prototype.resetValidationState=function(){t.apply(this,arguments),this.validEdges=[]};const e=L.prototype.validateCellState;L.prototype.validateCellState=function(t,n){n=null==n||n;let i=this.getState(t);return null!=i&&n&&this.graph.model.isEdge(i.cell)&&null!=i.style&&1!=i.style[g.STYLE_CURVED]&&!i.invalid&&this.updateLineJumps(i)&&this.graph.cellRenderer.redraw(i,!1,this.isRendering()),i=e.apply(this,arguments),null!=i&&n&&this.graph.model.isEdge(i.cell)&&null!=i.style&&1!=i.style[g.STYLE_CURVED]&&this.validEdges.push(i),i};const n=W.prototype.isShapeInvalid;W.prototype.isShapeInvalid=function(t,e){return n.apply(this,arguments)||null!=t.routedPoints&&null!=e.routedPoints&&!v.equalPoints(e.routedPoints,t.routedPoints)};const i=L.prototype.updateCellState;L.prototype.updateCellState=function(t){i.apply(this,arguments),this.graph.model.isEdge(t.cell)&&1!=t.style[g.STYLE_CURVED]&&this.updateLineJumps(t)},L.prototype.updateLineJumps=function(t){const e=t.absolutePoints;if(te.lineJumpsEnabled){let r=null!=t.routedPoints,o=null;if(null!=e&&null!=this.validEdges&&"none"!==v.getValue(t.style,"jumpStyle","none")){const s=.5*this.scale;function l(e,n,i){const r=new T(n,i);r.type=e,o.push(r);const s=null!=t.routedPoints?t.routedPoints[o.length-1]:null;return null==s||s.type!=e||s.x!=n||s.y!=i}r=!1,o=[];for(let a=0;a<e.length-1;a++){let h=e[a+1];const u=e[a],d=[];let c=e[a+2];for(;a<e.length-2&&v.ptSegDistSq(u.x,u.y,c.x,c.y,h.x,h.y)<1*this.scale*this.scale;)h=c,a++,c=e[a+2];r=l(0,u.x,u.y)||r;for(let p=0;p<this.validEdges.length;p++){const g=this.validEdges[p],m=g.absolutePoints;if(null!=m&&v.intersects(t,g)&&"1"!=g.style.noJump)for(var n=0;n<m.length-1;n++){let x=m[n+1];const y=m[n];for(c=m[n+2];n<m.length-2&&v.ptSegDistSq(y.x,y.y,c.x,c.y,x.x,x.y)<1*this.scale*this.scale;)x=c,c=m[2+ ++n];if(null!=(i=v.intersection(u.x,u.y,h.x,h.y,y.x,y.y,x.x,x.y))&&(Math.abs(i.x-u.x)>s||Math.abs(i.y-u.y)>s)&&(Math.abs(i.x-h.x)>s||Math.abs(i.y-h.y)>s)&&(Math.abs(i.x-y.x)>s||Math.abs(i.y-y.y)>s)&&(Math.abs(i.x-x.x)>s||Math.abs(i.y-x.y)>s)){const f=i.x-u.x,A=i.y-u.y;let C={distSq:f*f+A*A,x:i.x,y:i.y};for(let E=0;E<d.length;E++)if(d[E].distSq>C.distSq){d.splice(E,0,C),C=null;break}null==C||0!=d.length&&d[d.length-1].x===C.x&&d[d.length-1].y===C.y||d.push(C)}}}for(n=0;n<d.length;n++)r=l(1,d[n].x,d[n].y)||r}var i;r=l(0,(i=e[e.length-1]).x,i.y)||r}return t.routedPoints=o,r}return!1};const r=yt.prototype.paintLine;yt.prototype.paintLine=function(t,e,n){if(this.routedPoints=null!=this.state?this.state.routedPoints:null,this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)r.apply(this,arguments);else{const r=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2,l=(parseInt(v.getValue(this.style,"jumpSize",te.defaultJumpSize))-2)/2+this.strokewidth,a=v.getValue(this.style,"jumpStyle","none");let h=!0,u=null,d=null,c=[],p=null;t.begin();for(let g=0;g<this.state.routedPoints.length;g++){const m=this.state.routedPoints[g];let x=new T(m.x/this.scale,m.y/this.scale);0==g?x=e[0]:g==this.state.routedPoints.length-1&&(x=e[e.length-1]);let y=!1;if(null!=u&&1==m.type){const e=this.state.routedPoints[g+1];var i,o,s=(i=e.x/this.scale-x.x)*i+(o=e.y/this.scale-x.y)*o;if(null==p&&(p=new T(x.x-u.x,x.y-u.y),d=Math.sqrt(p.x*p.x+p.y*p.y),d>0?(p.x=p.x*l/d,p.y=p.y*l/d):p=null),s>l*l&&d>0&&(s=(i=u.x-x.x)*i+(o=u.y-x.y)*o)>l*l){const e=new T(x.x-p.x,x.y-p.y),i=new T(x.x+p.x,x.y+p.y);c.push(e),this.addPoints(t,c,n,r,!1,null,h);let o=Math.round(p.x)<0||0==Math.round(p.x)&&Math.round(p.y)<=0?1:-1;h=!1,"sharp"==a?(t.lineTo(e.x-p.y*o,e.y+p.x*o),t.lineTo(i.x-p.y*o,i.y+p.x*o),t.lineTo(i.x,i.y)):"arc"==a?(o*=1.3,t.curveTo(e.x-p.y*o,e.y+p.x*o,i.x-p.y*o,i.y+p.x*o,i.x,i.y)):(t.moveTo(i.x,i.y),h=!0),c=[i],y=!0}}else p=null;y||(c.push(x),u=x)}this.addPoints(t,c,n,r,!1,null,h),t.stroke()}};const o=L.prototype.updateFloatingTerminalPoint;L.prototype.updateFloatingTerminalPoint=function(t,e,n,i){if(null==e||null==t||"1"!=e.style.snapToPoint&&"1"!=t.style.snapToPoint)o.apply(this,arguments);else{e=this.getTerminalPort(t,e,i);let o=this.getNextPoint(t,n,i);const l=this.graph.isOrthogonal(t),a=v.toRadians(Number(e.style[g.STYLE_ROTATION]||"0")),h=new T(e.getCenterX(),e.getCenterY());if(0!=a){var r=Math.cos(-a),s=Math.sin(-a);o=v.getRotatedPoint(o,r,s,h)}let u=parseFloat(t.style[g.STYLE_PERIMETER_SPACING]||0);u+=parseFloat(t.style[i?g.STYLE_SOURCE_PERIMETER_SPACING:g.STYLE_TARGET_PERIMETER_SPACING]||0);let d=this.getPerimeterPoint(e,o,0==a&&l,u);0!=a&&(r=Math.cos(a),s=Math.sin(a),d=v.getRotatedPoint(d,r,s,h)),t.setAbsoluteTerminalPoint(this.snapToAnchorPoint(t,e,n,i,d),i)}},L.prototype.snapToAnchorPoint=function(t,e,n,i,r){if(null!=e&&null!=t){const t=this.graph.getAllConnectionConstraints(e);let n=null,i=null;if(null!=t)for(let o=0;o<t.length;o++){const s=this.graph.getConnectionPoint(e,t[o]);if(null!=s){const t=(s.x-r.x)*(s.x-r.x)+(s.y-r.y)*(s.y-r.y);(null==i||t<i)&&(n=s,i=t)}}null!=n&&(r=n)}return r};const l=it.prototype.evaluateTextAttribute;it.prototype.evaluateTextAttribute=function(t,e,n){let i=l.apply(this,arguments);const r=t.getAttribute("placeholders");return"1"==r&&null!=n.state&&(i=n.state.view.graph.replacePlaceholders(n.state.cell,i)),i};const a=W.prototype.createShape;W.prototype.createShape=function(t){if(null!=t.style&&void 0!==s()){const e=v.getValue(t.style,g.STYLE_SHAPE,null);if(null!=e&&"string"==typeof e&&"stencil("==e.substring(0,8))try{const t=e.substring(8,e.length-1),n=v.parseXml(te.decompress(t));return new U(new it(n.documentElement))}catch(t){null!=window.console&&console.log("Error in shape: "+t)}}return a.apply(this,arguments)}}(),nt.libraries={},nt.dynamicLoading=!0,nt.allowEval=!0,nt.packages=[],nt.getStencil=function(t){let e=nt.stencils[t];if(null==e&&null==W.defaultShapes[t]&&nt.dynamicLoading){let n=nt.getBasenameForStencil(t);if(null!=n){const i=nt.libraries[n];if(null!=i){if(null==nt.packages[n]){for(let e=0;e<i.length;e++){const r=i[e];if(".xml"==r.toLowerCase().substring(r.length-4,r.length))nt.loadStencilSet($t(n+".xml"),null);else if(".js"==r.toLowerCase().substring(r.length-3,r.length))try{if(nt.allowEval){const t=v.load(r);null!=t&&t.getStatus()>=200&&t.getStatus()<=299&&eval.call(window,t.getText())}}catch(t){null!=window.console&&console.log("error in getStencil:",r,t)}}nt.packages[n]=1}}else n=n.replace("_-_","_"),nt.loadStencilSet($t(n+".xml"),null);e=nt.stencils[t]}}return e},nt.getBasenameForStencil=function(t){let e=null;if(null!=t&&"string"==typeof t){const n=t.split(".");if(n.length>0&&"mxgraph"==n[0]){e=n[1];for(let t=2;t<n.length-1;t++)e+="/"+n[t]}}return e},nt.loadStencilSet=function(t,e,n){n=null!=n&&n;const i=v.parseXml(t),r=i&&i.documentElement;if(!r)return;const o=r.getAttribute("name"),s=nt.packages[o];if(n||null==s){let n=!1;null==s&&(nt.packages[t]=i,n=!0),null!=i&&null!=i.documentElement&&nt.parseStencilSet(i.documentElement,e,n)}},nt.loadStencil=function(t,e){if(null==e)return v.load(t).getXml();v.get(t,v.bind(this,(function(t){e(t.getStatus()>=200&&t.getStatus()<=299?t.getXml():null)})))},nt.parseStencilSets=function(t){for(let e=0;e<t.length;e++)nt.parseStencilSet(v.parseXml(t[e]).documentElement)},nt.parseStencilSet=function(t,e,n){if("stencils"==t.nodeName){let i=t.firstChild;for(;null!=i;)"shapes"==i.nodeName&&nt.parseStencilSet(i,e,n),i=i.nextSibling}else{n=null==n||n;let i=t.firstChild,r="",o=t.getAttribute("name");for(null!=o&&(r=o+".");null!=i;){if(i.nodeType==g.NODETYPE_ELEMENT&&(o=i.getAttribute("name"),null!=o)){r=r.toLowerCase();const t=o.replace(/ /g,"_");if(n&&nt.addStencil(r+t.toLowerCase(),new it(i)),null!=e){let n=i.getAttribute("w"),s=i.getAttribute("h");n=null==n?80:parseInt(n,10),s=null==s?80:parseInt(s,10),e(r,t,o,n,s)}}i=i.nextSibling}}},void 0!==dt&&function(){g.HANDLE_FILLCOLOR="#29b6f2",g.HANDLE_STROKECOLOR="#0088cf",g.VERTEX_SELECTION_COLOR="#00a8ff",g.OUTLINE_COLOR="#00a8ff",g.OUTLINE_HANDLE_FILLCOLOR="#99ccff",g.OUTLINE_HANDLE_STROKECOLOR="#00a8ff",g.CONNECT_HANDLE_FILLCOLOR="#cee7ff",g.EDGE_SELECTION_COLOR="#00a8ff",g.DEFAULT_VALID_COLOR="#00a8ff",g.LABEL_HANDLE_FILLCOLOR="#cee7ff",g.GUIDE_COLOR="#0088cf",g.HIGHLIGHT_OPACITY=30,g.HIGHLIGHT_SIZE=5,Y.prototype.snapToTerminals=!0,R.prototype.guidesEnabled=!0,R.prototype.removeEmptyParents=!0,G.prototype.fadeOut=!0,Q.prototype.isEnabledForEvent=function(t){return!C.isAltDown(t)};const t=O.prototype.isCreateTarget;O.prototype.isCreateTarget=function(e){return C.isControlDown(e)||t.apply(this,arguments)},rt.prototype.createHighlightShape=function(){const t=new ot(null,this.highlightColor,this.highlightColor,0);return t.opacity=g.HIGHLIGHT_OPACITY,t},O.prototype.livePreview=!0,O.prototype.cursor="crosshair",O.prototype.createEdgeState=function(){const t=this.graph.createCurrentEdgeStyle(),e=this.graph.createEdge(null,null,null,null,null,t),n=new st(this.graph.view,e,this.graph.getCellStyle(e));for(const i in this.graph.currentEdgeStyle)n.style[i]=this.graph.currentEdgeStyle[i];return n};const e=O.prototype.createShape;O.prototype.createShape=function(){const t=e.apply(this,arguments);return t.isDashed="1"==this.graph.currentEdgeStyle[g.STYLE_DASHED],t},O.prototype.updatePreview=function(){};const n=O.prototype.createMarker;O.prototype.createMarker=function(){const t=n.apply(this,arguments),e=t.getCell;return t.getCell=v.bind(this,(function(){const t=e.apply(this,arguments);return this.error=null,t})),t},te.prototype.defaultVertexStyle={},te.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"},te.prototype.createCurrentEdgeStyle=function(){let t="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";";return null!=this.currentEdgeStyle.shape&&(t+="shape="+this.currentEdgeStyle.shape+";"),null!=this.currentEdgeStyle.curved&&(t+="curved="+this.currentEdgeStyle.curved+";"),null!=this.currentEdgeStyle.rounded&&(t+="rounded="+this.currentEdgeStyle.rounded+";"),null!=this.currentEdgeStyle.comic&&(t+="comic="+this.currentEdgeStyle.comic+";"),null!=this.currentEdgeStyle.jumpStyle&&(t+="jumpStyle="+this.currentEdgeStyle.jumpStyle+";"),null!=this.currentEdgeStyle.jumpSize&&(t+="jumpSize="+this.currentEdgeStyle.jumpSize+";"),null!=this.currentEdgeStyle.orthogonalLoop?t+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=te.prototype.defaultEdgeStyle.orthogonalLoop&&(t+="orthogonalLoop="+te.prototype.defaultEdgeStyle.orthogonalLoop+";"),null!=this.currentEdgeStyle.jettySize?t+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=te.prototype.defaultEdgeStyle.jettySize&&(t+="jettySize="+te.prototype.defaultEdgeStyle.jettySize+";"),"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(t+="elbow="+this.currentEdgeStyle.elbow+";"),null!=this.currentEdgeStyle.html?t+="html="+this.currentEdgeStyle.html+";":t+="html=1;",t},te.prototype.getPagePadding=function(){return new T(0,0)},te.prototype.loadStylesheet=function(){const t=null!=this.themes?this.themes[this.defaultThemeName]:null;null!=t&&new p(t.ownerDocument).decode(t,this.getStylesheet())},te.prototype.createCellLookup=function(t,e){e=null!=e?e:new Object;for(let n=0;n<t.length;n++){const i=t[n];e[lt.get(i)]=i.getId();const r=this.model.getChildCount(i);for(let t=0;t<r;t++)this.createCellLookup([this.model.getChildAt(i,t)],e)}return e},te.prototype.createCellMapping=function(t,e,n){n=null!=n?n:new Object;for(const i in t){const r=e[i];null==n[r]&&(n[r]=t[i].getId()||"")}return n},te.prototype.importGraphModel=function(t,e,n,i){e=null!=e?e:0,n=null!=n?n:0;const r=new p(t.ownerDocument),o=new B;r.decode(t,o);let s=[];const l=new Object,a=new Object;let h=o.getChildren(this.cloneCell(o.root,this.isCloneInvalidEdges(),l));if(null!=h){const t=this.createCellLookup([o.root]);h=h.slice(),this.model.beginUpdate();try{if(1!=h.length||this.isCellLocked(this.getDefaultParent()))for(let t=0;t<h.length;t++){const i=this.model.getChildren(this.moveCells([h[t]],e,n,!1,this.model.getRoot())[0]);null!=i&&(s=s.concat(i))}else s=this.moveCells(o.getChildren(h[0]),e,n,!1,this.getDefaultParent()),a[o.getChildAt(o.root,0).getId()]=this.getDefaultParent().getId();if(null!=s&&(this.createCellMapping(l,t,a),this.updateCustomLinks(a,s),i)){this.isGridEnabled()&&(e=this.snap(e),n=this.snap(n));const t=this.getBoundingBoxFromGeometry(s,!0);null!=t&&this.moveCells(s,e-t.x,n-t.y)}}finally{this.model.endUpdate()}}return s},te.prototype.encodeCells=function(t){const e=new Object,n=this.cloneCells(t,null,e),i=new at;for(var r=0;r<t.length;r++)i.put(t[r],!0);const o=new p,s=new B,l=s.getChildAt(s.getRoot(),0);for(r=0;r<n.length;r++){s.add(l,n[r]);const e=this.view.getState(t[r]);if(null!=e){const o=this.getCellGeometry(n[r]);null!=o&&o.relative&&!this.model.isEdge(t[r])&&null==i.get(this.model.getParent(t[r]))&&(o.offset=null,o.relative=!1,o.x=e.x/e.view.scale-e.view.translate.x,o.y=e.y/e.view.scale-e.view.translate.y)}}return this.updateCustomLinks(this.createCellMapping(e,this.createCellLookup(t)),n),o.encode(s)},te.prototype.isSwimlane=function(t,e){if(null!=t&&this.model.getParent(t)!=this.model.getRoot()&&!this.model.isEdge(t)){const n=this.getCurrentCellStyle(t,e)[g.STYLE_SHAPE];return n==g.SHAPE_SWIMLANE||"table"==n}return!1};const i=te.prototype.isExtendParent;te.prototype.isExtendParent=function(t){const e=this.model.getParent(t);if(null!=e){const t=this.getCurrentCellStyle(e);if(null!=t.expand)return"0"!=t.expand}return i.apply(this,arguments)&&(null==e||!this.isTable(e))};const r=te.prototype.splitEdge;te.prototype.splitEdge=function(t,e,n,i,o,s,l,a){null==a&&(a=this.model.getParent(t),(this.isTable(a)||this.isTableRow(a))&&(a=this.getCellAt(s,l,null,!0,!1))),r.apply(this,[t,e,n,i,o,s,l,a])};const o=te.prototype.selectCell;te.prototype.selectCell=function(t,e,n){if(e||n)o.apply(this,arguments);else{const e=this.getSelectionCell();let n=null;const r=[];var i=v.bind(this,(function(o){if(null!=this.view.getState(o)&&(this.model.isVertex(o)||this.model.isEdge(o)))if(r.push(o),o==e)n=r.length-1;else if(t&&null==e&&r.length>0||null!=n&&t&&r.length>n||!t&&n>0)return;for(let t=0;t<this.model.getChildCount(o);t++)i(this.model.getChildAt(o,t))}));i(this.model.root),r.length>0&&(n=null!=n?v.mod(n+(t?1:-1),r.length):0,this.setSelectionCell(r[n]))}};const s=te.prototype.moveCells;te.prototype.moveCells=function(t,e,n,i,r,o,l){l=null!=l?l:new Object;for(let s=0;s<t.length;s++)if(null!=r&&this.isTableRow(t[s])){const e=this.model.getParent(t[s]),n=this.getCellGeometry(t[s]);if(null!=e&&null!=n&&this.isTable(e)&&this.isTable(r)&&(i||e!=r)){var a;i||null!=(a=this.getCellGeometry(e))&&((a=a.clone()).height-=n.height,this.model.setGeometry(e,a)),null!=(a=this.getCellGeometry(r))&&((a=a.clone()).height+=n.height,this.model.setGeometry(r,a));const o=this.model.getChildCells(r,!0);if(o.length>0){const e=this.model.getChildCells(t[s],!0),n=this.model.getChildCells(o[0],!0).length-e.length;if(n>0)for(var h=0;h<n;h++){const n=this.cloneCell(e[e.length-1]);n.value="",this.model.add(t[s],n)}else if(n<0)for(h=0;h>n;h--)this.model.remove(e[e.length-n-1])}}}const u=s.apply(this,arguments);return i&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(t)),u),u};const l=te.prototype.removeCells;te.prototype.removeCells=function(t,e){let n=[];this.model.beginUpdate();try{for(let e=0;e<t.length;e++)if(this.isTableCell(t[e])){const r=this.model.getParent(t[e]);var i=this.model.getParent(r);1==this.model.getChildCount(r)&&1==this.model.getChildCount(i)?v.indexOf(t,i)<0&&v.indexOf(n,i)<0&&n.push(i):this.labelChanged(t[e],"")}else{if(this.isTableRow(t[e])&&(i=this.model.getParent(t[e]),v.indexOf(t,i)<0&&v.indexOf(n,i)<0)){const e=this.model.getChildCells(i,!0);let r=0;for(let n=0;n<e.length;n++)v.indexOf(t,e[n])>=0&&r++;r==e.length&&n.push(i)}n.push(t[e])}n=l.apply(this,[n,e])}finally{this.model.endUpdate()}return n},te.prototype.updateCustomLinks=function(t,e){for(let n=0;n<e.length;n++)null!=e[n]&&this.updateCustomLinksForCell(t,e[n])},te.prototype.updateCustomLinksForCell=function(){},te.prototype.getAllConnectionConstraints=function(t){if(null!=t){let n=v.getValue(t.style,"points",null);if(null!=n){const i=[];try{const t=JSON.parse(n);for(let n=0;n<t.length;n++){var e=t[n];i.push(new ht(new T(e[0],e[1]),!(e.length>2)||"0"!=e[2],null,e.length>3?e[3]:0,e.length>4?e[4]:0))}}catch(t){}return i}if(null!=t.shape&&null!=t.shape.bounds){const i=t.shape.direction,r=t.shape.bounds,o=t.shape.scale;let s=r.width/o,l=r.height/o;if(i!=g.DIRECTION_NORTH&&i!=g.DIRECTION_SOUTH||(e=s,s=l,l=e),n=t.shape.getConstraints(t.style,s,l),null!=n)return n;if(null!=t.shape.stencil&&null!=t.shape.stencil.constraints)return t.shape.stencil.constraints;if(null!=t.shape.constraints)return t.shape.constraints}}return null},te.prototype.flipEdge=function(t){if(null!=t){const e=this.getCurrentCellStyle(t),n=v.getValue(e,g.STYLE_ELBOW,g.ELBOW_HORIZONTAL)==g.ELBOW_HORIZONTAL?g.ELBOW_VERTICAL:g.ELBOW_HORIZONTAL;this.setCellStyles(g.STYLE_ELBOW,n,[t])}},te.prototype.isValidRoot=function(t){const e=this.model.getChildCount(t);let n=0;for(let i=0;i<e;i++){const e=this.model.getChildAt(t,i);if(this.model.isVertex(e)){const t=this.getCellGeometry(e);null==t||t.relative||n++}}return n>0||this.isContainer(t)},te.prototype.isValidDropTarget=function(t,e){const n=this.getCurrentCellStyle(t);let i=!0;for(let r=0;r<e.length&&i;r++)i=i&&this.isTableRow(e[r]);return("1"!=v.getValue(n,"part","0")||this.isContainer(t))&&"0"!=v.getValue(n,"dropTarget","1")&&(c.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(t))&&!this.isTableRow(t)&&(!this.isTable(t)||i)},te.prototype.createGroupCell=function(){const t=c.prototype.createGroupCell.apply(this,arguments);return t.setStyle("group"),t},te.prototype.isExtendParentsOnAdd=function(t){let e=c.prototype.isExtendParentsOnAdd.apply(this,arguments);if(e&&null!=t&&null!=this.layoutManager){const n=this.model.getParent(t);if(null!=n){const t=this.layoutManager.getLayout(n);null!=t&&t.constructor==xt&&(e=!1)}}return e},te.prototype.getPreferredSizeForCell=function(){const t=c.prototype.getPreferredSizeForCell.apply(this,arguments);return null!=t&&(t.width+=10,t.height+=4,this.gridEnabled&&(t.width=this.snap(t.width),t.height=this.snap(t.height))),t},te.prototype.turnShapes=function(t,e){const n=this.getModel(),i=[];n.beginUpdate();try{for(let o=0;o<t.length;o++){const s=t[o];if(n.isEdge(s)){const t=n.getTerminal(s,!0),e=n.getTerminal(s,!1);if(n.setTerminal(s,e,!0),n.setTerminal(s,t,!1),null!=(r=n.getGeometry(s))){null!=(r=r.clone()).points&&r.points.reverse();const o=r.getTerminalPoint(!0),l=r.getTerminalPoint(!1);r.setTerminalPoint(o,!1),r.setTerminalPoint(l,!0),n.setGeometry(s,r);const a=this.view.getState(s),h=this.view.getState(t),u=this.view.getState(e);if(null!=a){const n=null!=h?this.getConnectionConstraint(a,h,!0):null,i=null!=u?this.getConnectionConstraint(a,u,!1):null;this.setConnectionConstraint(s,t,!0,i),this.setConnectionConstraint(s,e,!1,n)}i.push(s)}}else if(n.isVertex(s)){var r;if(null!=(r=this.getCellGeometry(s))){if(!this.isTable(s)&&!this.isTableRow(s)&&!this.isTableCell(s)){(r=r.clone()).x+=r.width/2-r.height/2,r.y+=r.height/2-r.width/2;const t=r.width;r.width=r.height,r.height=t,n.setGeometry(s,r)}const t=this.view.getState(s);if(null!=t){const n=[g.DIRECTION_EAST,g.DIRECTION_SOUTH,g.DIRECTION_WEST,g.DIRECTION_NORTH],i=v.getValue(t.style,g.STYLE_DIRECTION,g.DIRECTION_EAST);this.setCellStyles(g.STYLE_DIRECTION,n[v.mod(v.indexOf(n,i)+(e?-1:1),n.length)],[s])}i.push(s)}}}}finally{n.endUpdate()}return i},te.prototype.stencilHasPlaceholders=function(t){if(null!=t&&null!=t.fgNode){let e=t.fgNode.firstChild;for(;null!=e;){if("text"==e.nodeName&&"1"==e.getAttribute("placeholders"))return!0;e=e.nextSibling}}return!1};const a=te.prototype.processChange;te.prototype.processChange=function(t){if("mxGeometryChange"===t.constructor.name&&(this.isTableCell(t.cell)||this.isTableRow(t.cell))&&(null==t.previous&&null!=t.geometry||null!=t.previous&&!t.previous.equals(t.geometry))){let e=t.cell;this.isTableCell(e)&&(e=this.model.getParent(e)),this.isTableRow(e)&&(e=this.model.getParent(e));const n=this.view.getState(e);null!=n&&null!=n.shape&&(this.view.invalidate(e),n.shape.bounds=null)}a.apply(this,arguments),"mxValueChange"===t.constructor.name&&null!=t.cell&&null!=t.cell.value&&"object"==typeof t.cell.value&&this.invalidateDescendantsWithPlaceholders(t.cell)},te.prototype.invalidateDescendantsWithPlaceholders=function(t){const e=this.model.getDescendants(t);if(e.length>0)for(let n=0;n<e.length;n++){const t=this.view.getState(e[n]);null!=t&&null!=t.shape&&null!=t.shape.stencil&&this.stencilHasPlaceholders(t.shape.stencil)?this.removeStateForCell(e[n]):this.isReplacePlaceholders(e[n])&&this.view.invalidate(e[n],!1,!1)}},te.prototype.replaceElement=function(t,e){const n=t.ownerDocument.createElement(null!=e?e:"span"),i=Array.prototype.slice.call(t.attributes);let r;for(;r=i.pop();)n.setAttribute(r.nodeName,r.nodeValue);n.innerHTML=t.innerHTML,t.parentNode.replaceChild(n,t)},te.prototype.processElements=function(t,e){if(null!=t){const n=t.getElementsByTagName("*");for(let t=0;t<n.length;t++)e(n[t])}},te.prototype.updateLabelElements=function(t,e,n){t=null!=t?t:this.getSelectionCells();const i=document.createElement("div");for(let r=0;r<t.length;r++)if(this.isHtmlLabel(t[r])){const o=this.convertValueToString(t[r]);if(null!=o&&o.length>0){i.innerHTML=o;const s=i.getElementsByTagName(null!=n?n:"*");for(let t=0;t<s.length;t++)e(s[t]);i.innerHTML!=o&&this.cellLabelChanged(t[r],i.innerHTML)}}},te.prototype.cellLabelChanged=function(t,e){e=te.zapGremlins(e),this.model.beginUpdate();try{if(null!=t.value&&"object"==typeof t.value){if(this.isReplacePlaceholders(t)&&null!=t.getAttribute("placeholder")){const n=t.getAttribute("placeholder");let i=t;for(;null!=i;){if(i==this.model.getRoot()||null!=i.value&&"object"==typeof i.value&&i.hasAttribute(n)){this.setAttributeForCell(i,n,e);break}i=this.model.getParent(i)}}const n=t.value.cloneNode(!0);n.setAttribute("label",e),e=n}c.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}},te.prototype.cellsRemoved=function(t){if(null!=t){const n=new at;for(var e=0;e<t.length;e++)n.put(t[e],!0);const i=[];for(e=0;e<t.length;e++){const r=this.model.getParent(t[e]);null==r||n.get(r)||(n.put(r,!0),i.push(r))}for(e=0;e<i.length;e++){const r=this.view.getState(i[e]);if(null!=r&&(this.model.isEdge(r.cell)||this.model.isVertex(r.cell))&&this.isCellDeletable(r.cell)&&this.isTransparentState(r)){let e=!0;for(let t=0;t<this.model.getChildCount(r.cell)&&e;t++)n.get(this.model.getChildAt(r.cell,t))||(e=!1);e&&t.push(r.cell)}}}c.prototype.cellsRemoved.apply(this,arguments)},te.prototype.removeCellsAfterUngroup=function(t){const e=[];for(let n=0;n<t.length;n++)this.isCellDeletable(t[n])&&this.isTransparentState(this.view.getState(t[n]))&&e.push(t[n]);t=e,c.prototype.removeCellsAfterUngroup.apply(this,arguments)},te.prototype.setLinkForCell=function(t,e){this.setAttributeForCell(t,"link",e)},te.prototype.setTooltipForCell=function(t,e){this.setAttributeForCell(t,"tooltip",e)},te.prototype.getAttributeForCell=function(t,e,n){const i=null!=t.value&&"object"==typeof t.value?t.value.getAttribute(e):null;return null!=i?i:n},te.prototype.setAttributeForCell=function(t,e,n){let i=null;null!=t.value&&"object"==typeof t.value?i=t.value.cloneNode(!0):(i=v.createXmlDocument().createElement("UserObject"),i.setAttribute("label",t.value||"")),null!=n?i.setAttribute(e,n):i.removeAttribute(e),this.model.setValue(t,i)};const h=te.prototype.getDropTarget;te.prototype.getDropTarget=function(t,e){if(C.isAltDown(e))return null;for(var n=0;n<t.length;n++)if(this.model.isEdge(this.model.getParent(t[n])))return null;let i=h.apply(this,arguments),r=!0;for(n=0;n<t.length&&r;n++)r=r&&this.isTableRow(t[n]);return r&&(this.isTableCell(i)&&(i=this.model.getParent(i)),this.isTableRow(i)&&(i=this.model.getParent(i)),this.isTable(i)||(i=null)),i},te.prototype.click=function(t){c.prototype.click.call(this,t),this.firstClickState=t.getState(),this.firstClickSource=t.getSource()},te.prototype.dblClick=function(t,e){if(this.isEnabled()){const n=v.convertPoint(this.container,C.getClientX(t),C.getClientY(t));if(null!=t&&!this.model.isVertex(e)){let i=this.model.isEdge(e)?this.view.getState(e):null;const r=C.getSource(t);this.firstClickState!=i||this.firstClickSource!=r||null!=i&&null!=i.text&&null!=i.text.node&&null!=i.text.boundingBox&&(v.contains(i.text.boundingBox,n.x,n.y)||v.isAncestorNode(i.text.node,C.getSource(t)))||(null!=i||this.isCellLocked(this.getDefaultParent()))&&(null==i||this.isCellLocked(i.cell))||!(null!=i||E.IS_VML&&r==this.view.getCanvas()||r==this.view.getCanvas().ownerSVGElement)||(null==i&&(i=this.view.getState(this.getCellAt(n.x,n.y))),e=this.addText(n.x,n.y,i))}c.prototype.dblClick.call(this,t,e)}},te.prototype.getInsertPoint=function(){const t=this.getGridSize();let e=this.container.scrollLeft/this.view.scale-this.view.translate.x,n=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible){const t=this.getPageLayout(),i=this.getPageSize();e=Math.max(e,t.x*i.width),n=Math.max(n,t.y*i.height)}return new T(this.snap(e+t),this.snap(n+t))},te.prototype.getFreeInsertPoint=function(){const t=this.view,e=this.getGraphBounds(),n=this.getInsertPoint(),i=this.snap(Math.round(Math.max(n.x,e.x/t.scale-t.translate.x+(0==e.width?2*this.gridSize:0)))),r=this.snap(Math.round(Math.max(n.y,(e.y+e.height)/t.scale-t.translate.y+2*this.gridSize)));return new T(i,r)},te.prototype.getCenterInsertPoint=function(t){return t=null!=t?t:new w,v.hasScrollbars(this.container)?new T(this.snap(Math.round((this.container.scrollLeft+this.container.clientWidth/2)/this.view.scale-this.view.translate.x-t.width/2)),this.snap(Math.round((this.container.scrollTop+this.container.clientHeight/2)/this.view.scale-this.view.translate.y-t.height/2))):new T(this.snap(Math.round(this.container.clientWidth/2/this.view.scale-this.view.translate.x-t.width/2)),this.snap(Math.round(this.container.clientHeight/2/this.view.scale-this.view.translate.y-t.height/2)))},te.prototype.isMouseInsertPoint=function(){return!1},te.prototype.addText=function(t,e,n){const i=new Ct;i.value="Text",i.geometry=new vt(0,0,0,0),i.vertex=!0;const r="html=1;align=center;verticalAlign=middle;resizable=0;points=[];";if(null!=n&&this.model.isEdge(n.cell)){i.style="edgeLabel;"+r,i.geometry.relative=!0,i.connectable=!1;let o=this.view.getRelativePoint(n,t,e);i.geometry.x=Math.round(1e4*o.x)/1e4,i.geometry.y=Math.round(o.y),i.geometry.offset=new T(0,0),o=this.view.getPoint(n,i.geometry);const s=this.view.scale;i.geometry.offset=new T(Math.round((t-o.x)/s),Math.round((e-o.y)/s))}else{const o=this.view.translate;i.style="text;"+r,i.geometry.width=40,i.geometry.height=20,i.geometry.x=Math.round(t/this.view.scale)-o.x-(null!=n?n.origin.x:0),i.geometry.y=Math.round(e/this.view.scale)-o.y-(null!=n?n.origin.y:0),i.style+="autosize=1;"}this.getModel().beginUpdate();try{this.addCells([i],null!=n?n.cell:null),this.fireEvent(new A("textInserted","cells",[i])),this.autoSizeCell(i)}finally{this.getModel().endUpdate()}return i},te.prototype.addClickHandler=function(t,e,n){const i=v.bind(this,(function(){const t=this.container.getElementsByTagName("a");if(null!=t)for(let n=0;n<t.length;n++){const i=this.getAbsoluteUrl(t[n].getAttribute("href"));null!=i&&(t[n].setAttribute("rel",this.linkRelation),t[n].setAttribute("href",i),null!=e&&C.addGestureListeners(t[n],null,null,e))}}));this.model.addListener(C.CHANGE,i),i();const r=this.container.style.cursor,o=this.getTolerance(),s=this,l={currentState:null,currentLink:null,highlight:null!=t&&""!=t&&t!=g.NONE?new q(s,t,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(t){let e=t.sourceState;if(null==e||null==s.getLinkForCell(e.cell)){const n=s.getCellAt(t.getGraphX(),t.getGraphY(),null,null,null,(function(t){return null==s.getLinkForCell(t.cell)}));e=s.view.getState(n)}e!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=e,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(t,e){this.startX=e.getGraphX(),this.startY=e.getGraphY(),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,null==this.currentLink&&"auto"==s.container.style.overflow&&(s.container.style.cursor="move"),this.updateCurrentState(e)},mouseMove:function(t,e){if(s.isMouseDown){if(null!=this.currentLink){const t=Math.abs(this.startX-e.getGraphX()),n=Math.abs(this.startY-e.getGraphY());(t>o||n>o)&&this.clear()}}else{let t=e.getSource();for(;null!=t&&"a"!=t.nodeName.toLowerCase();)t=t.parentNode;if(null!=t)this.clear();else{if(null!=s.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&s.tooltipHandler.reset(e,!0,this.currentState),null!=this.currentState&&(e.getState()==this.currentState||null==e.sourceState)&&s.intersects(this.currentState,e.getGraphX(),e.getGraphY()))return;this.updateCurrentState(e)}}},mouseUp:function(t,i){const r=i.getSource(),l=i.getEvent();let a=r;for(;null!=a&&"a"!=a.nodeName.toLowerCase();)a=a.parentNode;if(null==a&&Math.abs(this.scrollLeft-s.container.scrollLeft)<o&&Math.abs(this.scrollTop-s.container.scrollTop)<o&&(null==i.sourceState||!i.isSource(i.sourceState.control))&&((C.isLeftMouseButton(l)||C.isMiddleMouseButton(l))&&!C.isPopupTrigger(l)||C.isTouchEvent(l)))if(null!=this.currentLink){const t=s.isBlankLink(this.currentLink);if("data:"!==this.currentLink.substring(0,5)&&t||null==e||e(l,this.currentLink),!C.isConsumed(l)){const e=C.isMiddleMouseButton(l)?"_blank":t?s.linkTarget:"_top";s.openLink(this.currentLink,e),i.consume()}}else null!=n&&!i.isConsumed()&&Math.abs(this.scrollLeft-s.container.scrollLeft)<o&&Math.abs(this.scrollTop-s.container.scrollTop)<o&&Math.abs(this.startX-i.getGraphX())<o&&Math.abs(this.startY-i.getGraphY())<o&&n(i.getEvent());this.clear()},activate:function(t){this.currentLink=s.getAbsoluteUrl(s.getLinkForCell(t.cell)),null!=this.currentLink&&(s.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(t))},clear:function(){null!=s.container&&(s.container.style.cursor=r),this.currentState=null,this.currentLink=null,null!=this.highlight&&this.highlight.hide(),null!=s.tooltipHandler&&s.tooltipHandler.hide()}};s.click=function(){},s.addMouseListener(l),C.addListener(document,"mouseleave",(function(){l.clear()}))},te.prototype.duplicateCells=function(t,e){t=null!=t?t:this.getSelectionCells(),e=null==e||e;for(var n=0;n<t.length;n++)this.isTableCell(t[n])&&(t[n]=this.model.getParent(t[n]));t=this.model.getTopmostCells(t);const i=this.getModel(),r=this.gridSize,o=[];i.beginUpdate();try{const s=this.cloneCells(t,!1,null,!0);for(n=0;n<t.length;n++){const l=i.getParent(t[n]),a=this.moveCells([s[n]],r,r,!1)[0];if(o.push(a),e)i.add(l,s[n]);else{const e=l.getIndex(t[n]);i.add(l,s[n],e+1)}if(this.isTable(l)){const t=this.getCellGeometry(s[n]);let e=this.getCellGeometry(l);null!=t&&null!=e&&(e=e.clone(),e.height+=t.height,i.setGeometry(l,e))}}}finally{i.endUpdate()}return o},te.prototype.insertImage=function(t,e,n){if(null!=t&&null!=this.cellEditor.textarea){const r=this.cellEditor.textarea.getElementsByTagName("img"),o=[];for(var i=0;i<r.length;i++)o.push(r[i]);document.execCommand("insertimage",!1,t);const s=this.cellEditor.textarea.getElementsByTagName("img");if(s.length==o.length+1)for(i=s.length-1;i>=0;i--)if(0==i||s[i]!=o[i-1]){s[i].setAttribute("width",e),s[i].setAttribute("height",n);break}}},te.prototype.insertLink=function(t){if(null!=this.cellEditor.textarea)if(0==t.length)document.execCommand("unlink",!1);else if(E.IS_FF){var e=this.cellEditor.textarea.getElementsByTagName("a");const i=[];for(var n=0;n<e.length;n++)i.push(e[n]);document.execCommand("createlink",!1,v.trim(t));const r=this.cellEditor.textarea.getElementsByTagName("a");if(r.length==i.length+1)for(n=r.length-1;n>=0;n--)if(r[n]!=i[n-1]){for(e=r[n].getElementsByTagName("a");e.length>0;){const t=e[0].parentNode;for(;null!=e[0].firstChild;)t.insertBefore(e[0].firstChild,e[0]);t.removeChild(e[0])}break}}else document.execCommand("createlink",!1,v.trim(t))},te.prototype.isCellResizable=function(t){const e=c.prototype.isCellResizable.apply(this,arguments),n=this.getCurrentCellStyle(t);return!this.isTableCell(t)&&!this.isTableRow(t)&&(e||"0"!=v.getValue(n,g.STYLE_RESIZABLE,"1")&&"wrap"==n[g.STYLE_WHITE_SPACE])},te.prototype.distributeCells=function(t,e){if(null==e&&(e=this.getSelectionCells()),null!=e&&e.length>1){const i=[];let r=null,o=null;for(var n=0;n<e.length;n++)if(this.getModel().isVertex(e[n])){const s=this.view.getState(e[n]);if(null!=s){const e=t?s.getCenterX():s.getCenterY();r=null!=r?Math.max(r,e):e,o=null!=o?Math.min(o,e):e,i.push(s)}}if(i.length>2){i.sort((function(e,n){return t?e.x-n.x:e.y-n.y}));const e=this.view.translate,s=this.view.scale;o=o/s-(t?e.x:e.y),r=r/s-(t?e.x:e.y),this.getModel().beginUpdate();try{const e=(r-o)/(i.length-1);let s=o;for(n=1;n<i.length-1;n++){const r=this.view.getState(this.model.getParent(i[n].cell));let o=this.getCellGeometry(i[n].cell);s+=e,null!=o&&null!=r&&(o=o.clone(),t?o.x=Math.round(s-o.width/2)-r.origin.x:o.y=Math.round(s-o.height/2)-r.origin.y,this.getModel().setGeometry(i[n].cell,o))}}finally{this.getModel().endUpdate()}}}return e},te.prototype.isCloneEvent=function(t){return E.IS_MAC&&C.isMetaDown(t)||C.isControlDown(t)},te.prototype.createSvgImageExport=function(){const t=new x;return t.getLinkForCellState=v.bind(this,(function(t){return this.getLinkForCell(t.cell)})),t},te.prototype.getSvg=function(t,e,n,i,r,o,s,l,a,h){const u=this.useCssTransforms;u&&(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{e=null!=e?e:1,n=null!=n?n:0,r=null==r||r,s=null==s||s;const u=(o=null==o||o)||i?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==u)throw Error(f.get("drawingEmpty"));const d=this.view.scale,c=v.createXmlDocument(),p=null!=c.createElementNS?c.createElementNS(g.NS_SVG,"svg"):c.createElement("svg");null!=t&&(null!=p.style?p.style.backgroundColor=t:p.setAttribute("style","background-color:"+t)),null==c.createElementNS?(p.setAttribute("xmlns",g.NS_SVG),p.setAttribute("xmlns:xlink",g.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",g.NS_XLINK);const m=e/d,x=Math.max(1,Math.ceil(u.width*m)+2*n)+(h?5:0),y=Math.max(1,Math.ceil(u.height*m)+2*n)+(h?5:0);p.setAttribute("version","1.1"),p.setAttribute("width",x+"px"),p.setAttribute("height",y+"px"),p.setAttribute("viewBox",(r?"-0.5 -0.5":"0 0")+" "+x+" "+y),c.appendChild(p);const A=null!=c.createElementNS?c.createElementNS(g.NS_SVG,"g"):c.createElement("g");p.appendChild(A);const C=this.createSvgCanvas(A);C.foOffset=r?-.5:0,C.textOffset=r?-.5:0,C.imageOffset=r?-.5:0,C.translate(Math.floor((n/e-u.x)/d),Math.floor((n/e-u.y)/d));const E=document.createElement("div"),S=C.getAlternateText;C.getAlternateText=function(t,e,n,i,r,o){if(!(null!=o&&this.state.fontSize>0))return S.apply(this,arguments);try{v.isNode(o)?o=o.innerText:(E.innerHTML=o,o=v.extractTextWithWhitespace(E.childNodes));const t=Math.ceil(2*i/this.state.fontSize),e=[];let n=0,r=0;for(;(0==t||n<t)&&r<o.length;){const t=o.charCodeAt(r);if(10==t||13==t){if(n>0)break}else e.push(o.charAt(r)),t<255&&n++;r++}return e.length<o.length&&o.length-e.length>1&&(o=v.trim(e.join(""))+"..."),o}catch(t){return S.apply(this,arguments)}};const b=this.backgroundImage;if(null!=b){const t=d/e,n=this.view.translate,i=new w(n.x*t,n.y*t,b.width*t,b.height*t);v.intersects(u,i)&&C.image(n.x,n.y,b.width,b.height,b.src,!0)}C.scale(m),C.textEnabled=s;const T=(l=null!=l?l:this.createSvgImageExport()).drawCellState,L=l.getLinkForCellState;return l.getLinkForCellState=function(t){const e=L.apply(this,arguments);return null==e||t.view.graph.isCustomLink(e)?null:e},l.drawCellState=function(t){const e=t.view.graph;let n=e.isCellSelected(t.cell),i=e.model.getParent(t.cell);for(;!o&&!n&&null!=i;)n=e.isCellSelected(i),i=e.model.getParent(i);(o||n)&&T.apply(this,arguments)},l.drawState(this.getView().getState(this.model.root),C),this.updateSvgLinks(p,a,!0),this.addForeignObjectWarning(C,p),p}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}},te.prototype.addForeignObjectWarning=function(t,e){if(e.getElementsByTagName("foreignObject").length>0){const n=t.createElement("switch"),i=t.createElement("g");i.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");const r=t.createElement("a");r.setAttribute("transform","translate(0,-5)"),null==r.setAttributeNS||e.ownerDocument!=document&&null==document.documentMode?(r.setAttribute("xlink:href",te.foreignObjectWarningLink),r.setAttribute("target","_blank")):(r.setAttributeNS(g.NS_XLINK,"xlink:href",te.foreignObjectWarningLink),r.setAttributeNS(g.NS_XLINK,"target","_blank"));const o=t.createElement("text");o.setAttribute("text-anchor","middle"),o.setAttribute("font-size","10px"),o.setAttribute("x","50%"),o.setAttribute("y","100%"),v.write(o,te.foreignObjectWarningText),n.appendChild(i),r.appendChild(o),n.appendChild(r),e.appendChild(n)}},te.prototype.updateSvgLinks=function(t,e,n){const i=t.getElementsByTagName("a");for(let r=0;r<i.length;r++){let t=i[r].getAttribute("href");null==t&&(t=i[r].getAttribute("xlink:href")),null!=t&&(null!=e&&/^https?:\/\//.test(t)?i[r].setAttribute("target",e):n&&this.isCustomLink(t)&&i[r].setAttribute("href","javascript:void(0);"))}},te.prototype.createSvgCanvas=function(t){const e=new m(t);return e.pointerEvents=!0,e},te.prototype.getSelectedElement=function(){let t=null;if(window.getSelection){const e=window.getSelection();e.getRangeAt&&e.rangeCount&&(t=e.getRangeAt(0).commonAncestorContainer)}else document.selection&&(t=document.selection.createRange().parentElement());return t},te.prototype.getParentByName=function(t,e,n){for(;null!=t;){if(t.nodeName==e)return t;if(t==n)return null;t=t.parentNode}return t},te.prototype.getParentByNames=function(t,e,n){for(;null!=t;){if(v.indexOf(e,t.nodeName)>=0)return t;if(t==n)return null;t=t.parentNode}return t},te.prototype.selectNode=function(t){let e=null;if(window.getSelection)e=window.getSelection(),e.getRangeAt&&e.rangeCount&&((n=document.createRange()).selectNode(t),e.removeAllRanges(),e.addRange(n));else if((e=document.selection)&&"Control"!=e.type){const t=e.createRange();var n;t.collapse(!0),(n=e.createRange()).setEndPoint("StartToStart",t),n.select()}},te.prototype.deleteCells=function(t,e){let n=null;if(null!=t&&t.length>0){this.model.beginUpdate();try{for(var i=0;i<t.length;i++){const e=this.model.getParent(t[i]);if(this.isTable(e)){const n=this.getCellGeometry(t[i]);let r=this.getCellGeometry(e);null!=n&&null!=r&&(r=r.clone(),r.height-=n.height,this.model.setGeometry(e,r))}}var r=this.selectParentAfterDelete?this.model.getParents(t):null;this.removeCells(t,e)}finally{this.model.endUpdate()}if(null!=r)for(n=[],i=0;i<r.length;i++)this.model.contains(r[i])&&(this.model.isVertex(r[i])||this.model.isEdge(r[i]))&&n.push(r[i])}return n},te.prototype.insertTableColumn=function(t,e){const n=this.getModel();n.beginUpdate();try{let i=t,r=0;if(this.isTableCell(t)){const e=n.getParent(t);i=n.getParent(e),r=v.indexOf(n.getChildCells(e,!0),t)}else this.isTableRow(t)?i=n.getParent(t):t=n.getChildCells(i,!0)[0],e||(r=n.getChildCells(t,!0).length-1);const o=n.getChildCells(i,!0);let s=te.minTableColumnWidth;for(let t=0;t<o.length;t++){const i=n.getChildCells(o[t],!0)[r],l=n.cloneCell(i,!1),a=this.getCellGeometry(l);if(l.value=null,null!=a){s=a.width;const e=this.getCellGeometry(o[t]);null!=e&&(a.height=e.height)}n.add(o[t],l,r+(e?0:1))}let l=this.getCellGeometry(i);null!=l&&(l=l.clone(),l.width+=s,n.setGeometry(i,l))}finally{n.endUpdate()}},te.prototype.insertTableRow=function(t,e){const n=this.getModel();n.beginUpdate();try{let i=t,r=t;if(this.isTableCell(t))r=n.getParent(t),i=n.getParent(r);else if(this.isTableRow(t))i=n.getParent(t);else{const t=n.getChildCells(i,!0);r=t[e?0:t.length-1]}const o=n.getChildCells(r,!0),s=i.getIndex(r);r=n.cloneCell(r,!1),r.value=null;const l=this.getCellGeometry(r);if(null!=l){for(let e=0;e<o.length;e++){t=n.cloneCell(o[e],!1),r.insert(t),t.value=null;const i=this.getCellGeometry(t);null!=i&&(i.height=l.height)}n.add(i,r,s+(e?0:1));let a=this.getCellGeometry(i);null!=a&&(a=a.clone(),a.height+=l.height,n.setGeometry(i,a))}}finally{n.endUpdate()}},te.prototype.deleteTableColumn=function(t){const e=this.getModel();e.beginUpdate();try{let n=t,i=t;this.isTableCell(t)&&(i=e.getParent(t)),this.isTableRow(i)&&(n=e.getParent(i));const r=e.getChildCells(n,!0);if(0==r.length)e.remove(n);else{this.isTableRow(i)||(i=r[0]);const o=e.getChildCells(i,!0);if(o.length<=1)e.remove(n);else{let i=o.length-1;this.isTableCell(t)&&(i=v.indexOf(o,t));let s=0;for(let t=0;t<r.length;t++){const n=e.getChildCells(r[t],!0)[i];e.remove(n);const o=this.getCellGeometry(n);null!=o&&(s=Math.max(s,o.width))}let l=this.getCellGeometry(n);null!=l&&(l=l.clone(),l.width-=s,e.setGeometry(n,l))}}}finally{e.endUpdate()}},te.prototype.deleteTableRow=function(t){const e=this.getModel();e.beginUpdate();try{let n=t,i=t;this.isTableCell(t)&&(i=e.getParent(t),t=i),this.isTableRow(t)&&(n=e.getParent(i));const r=e.getChildCells(n,!0);if(r.length<=1)e.remove(n);else{this.isTableRow(i)||(i=r[r.length-1]),e.remove(i);let t=0;const o=this.getCellGeometry(i);null!=o&&(t=o.height);let s=this.getCellGeometry(n);null!=s&&(s=s.clone(),s.height-=t,e.setGeometry(n,s))}}finally{e.endUpdate()}},te.prototype.insertRow=function(t,e){const n=t.tBodies[0],i=n.rows[0].cells;let r=0;for(var o=0;o<i.length;o++){const t=i[o].getAttribute("colspan");r+=null!=t?parseInt(t):1}const s=n.insertRow(e);for(o=0;o<r;o++)v.br(s.insertCell(-1));return s.cells[0]},te.prototype.deleteRow=function(t,e){t.tBodies[0].deleteRow(e)},te.prototype.insertColumn=function(t,e){const n=t.tHead;if(null!=n)for(let r=0;r<n.rows.length;r++){const t=document.createElement("th");n.rows[r].appendChild(t),v.br(t)}const i=t.tBodies[0];for(let r=0;r<i.rows.length;r++){const t=i.rows[r].insertCell(e);v.br(t)}return i.rows[0].cells[e>=0?e:i.rows[0].cells.length-1]},te.prototype.deleteColumn=function(t,e){if(e>=0){const n=t.tBodies[0].rows;for(let t=0;t<n.length;t++)n[t].cells.length>e&&n[t].deleteCell(e)}},te.prototype.pasteHtmlAtCaret=function(t){let e,n;if(window.getSelection){if(e=window.getSelection(),e.getRangeAt&&e.rangeCount){n=e.getRangeAt(0),n.deleteContents();const i=document.createElement("div");i.innerHTML=t;let r,o=document.createDocumentFragment();for(;r=i.firstChild;)o.appendChild(r);n.insertNode(o)}}else(e=document.selection)&&"Control"!=e.type&&e.createRange().pasteHTML(t)},te.prototype.createLinkForHint=function(t,e){function n(t,e){return t.length>e&&(t=t.substring(0,Math.round(e/2))+"..."+t.substring(t.length-Math.round(e/4))),t}t=null!=t?t:"javascript:void(0);",null!=e&&0!=e.length||(e=this.isCustomLink(t)?this.getLinkTitle(t):t);const i=document.createElement("a");return i.setAttribute("rel",this.linkRelation),i.setAttribute("href",this.getAbsoluteUrl(t)),i.setAttribute("title",n(this.isCustomLink(t)?this.getLinkTitle(t):t,80)),null!=this.linkTarget&&i.setAttribute("target",this.linkTarget),v.write(i,n(e,40)),this.isCustomLink(t)&&C.addListener(i,"click",v.bind(this,(function(e){this.customLinkClicked(t),C.consume(e)}))),i},te.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first},this.addListener(C.START_EDITING,(function(){this.popupMenuHandler.hideMenu()}));const t=this.updateMouseEvent;this.updateMouseEvent=function(e){if(e=t.apply(this,arguments),C.isTouchEvent(e.getEvent())&&null==e.getState()){let t=this.getCellAt(e.graphX,e.graphY);null!=t&&this.isSwimlane(t)&&this.hitsSwimlaneContent(t,e.graphX,e.graphY)?t=null:(e.state=this.view.getState(t),null!=e.state&&null!=e.state.shape&&(this.container.style.cursor=e.state.shape.node.style.cursor))}return null==e.getState()&&this.isEnabled()&&(this.container.style.cursor="default"),e};let e=!1,n=!1,i=!1;const r=this.fireMouseEvent;this.fireMouseEvent=function(t,o){t==C.MOUSE_DOWN&&(o=this.updateMouseEvent(o),e=this.isCellSelected(o.getCell()),n=this.isSelectionEmpty(),i=this.popupMenuHandler.isMenuShowing()),r.apply(this,arguments)},this.popupMenuHandler.mouseUp=v.bind(this,(function(t,r){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==r.getState()||!r.isSource(r.getState().control))&&(this.popupMenuHandler.popupTrigger||!i&&!C.isMouseEvent(r.getEvent())&&(n&&null==r.getCell()&&this.isSelectionEmpty()||e&&this.isCellSelected(r.getCell()))),P.prototype.mouseUp.apply(this.popupMenuHandler,arguments)}))},ut.prototype.isContentEditing=function(){const t=this.graph.view.getState(this.editingCell);return null!=t&&1==t.style.html},ut.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)},ut.prototype.alignText=function(t,e){const n=null!=e&&C.isShiftDown(e);if(n||null!=window.getSelection&&null!=window.getSelection().containsNode){let e=!0;this.graph.processElements(this.textarea,(function(t){n||window.getSelection().containsNode(t,!0)?(t.removeAttribute("align"),t.style.textAlign=null):e=!1})),e&&this.graph.cellEditor.setAlign(t)}document.execCommand("justify"+t.toLowerCase(),!1,null)},ut.prototype.saveSelection=function(){if(window.getSelection){const t=window.getSelection();if(t.getRangeAt&&t.rangeCount){const e=[];for(let n=0,i=t.rangeCount;n<i;++n)e.push(t.getRangeAt(n));return e}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null},ut.prototype.restoreSelection=function(t){try{if(t)if(window.getSelection){const e=window.getSelection();e.removeAllRanges();for(let n=0,i=t.length;n<i;++n)e.addRange(t[n])}else document.selection&&t.select&&t.select()}catch(t){}};const u=W.prototype.initializeLabel;W.prototype.initializeLabel=function(t){null!=t.text&&(t.text.replaceLinefeeds="0"!=v.getValue(t.style,"nl2Br","1")),u.apply(this,arguments)};const d=rt.prototype.update;rt.prototype.update=function(t){this.isKeepFocusEvent(t)||!C.isAltDown(t.getEvent())?d.apply(this,arguments):this.reset()},Q.prototype.createGuideShape=function(){return new M([],g.GUIDE_COLOR,g.GUIDE_STROKEWIDTH)},ut.prototype.escapeCancelsEditing=!1;const y=ut.prototype.startEditing;ut.prototype.startEditing=function(t,e){t=this.graph.getStartEditingCell(t,e),y.apply(this,arguments);const n=this.graph.view.getState(t);null!=n&&1==n.style.html?this.textarea.className="mxCellEditor geContentEditable":this.textarea.className="mxCellEditor mxPlainTextEditor",this.codeViewMode=!1,this.switchSelectionState=null,this.graph.setSelectionCell(t);const i=this.graph.getModel().getParent(t),r=this.graph.getCellGeometry(t);this.graph.getModel().isEdge(i)&&null!=r&&r.relative||this.graph.getModel().isEdge(t)?E.IS_QUIRKS?this.textarea.style.border="gray dotted 1px":E.IS_IE||E.IS_IE11||E.IS_FF&&E.IS_WIN?this.textarea.style.outline="gray dotted 1px":this.textarea.style.outline="":E.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};const S=ut.prototype.installListeners;ut.prototype.installListeners=function(){function t(e,n){n.originalNode=e,e=e.firstChild;let i=n.firstChild;for(;null!=e&&null!=i;)t(e,i),e=e.nextSibling,i=i.nextSibling;return n}function e(t,i){if(null!=t)if(i.originalNode!=t)n(t);else for(t=t.firstChild,i=i.firstChild;null!=t;){const r=t.nextSibling;null==i?n(t):(e(t,i),i=i.nextSibling),t=r}}function n(t){let e=t.firstChild;for(;null!=e;){const t=e.nextSibling;n(e),e=t}1==t.nodeType&&("BR"===t.nodeName||null!=t.firstChild)||3==t.nodeType&&0!=v.trim(v.getTextContent(t)).length?(3==t.nodeType&&v.setTextContent(t,v.getTextContent(t).replace(/\n|\r/g,"")),1==t.nodeType&&(t.removeAttribute("style"),t.removeAttribute("class"),t.removeAttribute("width"),t.removeAttribute("cellpadding"),t.removeAttribute("cellspacing"),t.removeAttribute("border"))):t.parentNode.removeChild(t)}S.apply(this,arguments),E.IS_QUIRKS||7===document.documentMode||8===document.documentMode||C.addListener(this.textarea,"paste",v.bind(this,(function(){const n=t(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(v.bind(this,(function(){null!=this.textarea&&(this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")>=0||this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")>=0?e(this.textarea,n):te.removePasteFormatting(this.textarea))})),0)})))},ut.prototype.toggleViewMode=function(){const t=this.graph.view.getState(this.editingCell);if(null!=t){const i=null!=t&&"0"!=v.getValue(t.style,"nl2Br","1"),r=this.saveSelection();if(this.codeViewMode){(e=v.extractTextWithWhitespace(this.textarea.childNodes)).length>0&&"\n"==e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=this.graph.sanitizeHtml(i?e.replace(/\n/g,"<br/>"):e,!0),this.textarea.className="mxCellEditor geContentEditable",n=v.getValue(t.style,g.STYLE_FONTSIZE,g.DEFAULT_FONTSIZE);const r=v.getValue(t.style,g.STYLE_FONTFAMILY,g.DEFAULT_FONTFAMILY),o=v.getValue(t.style,g.STYLE_ALIGN,g.ALIGN_LEFT),s=(v.getValue(t.style,g.STYLE_FONTSTYLE,0)&g.FONT_BOLD)==g.FONT_BOLD,l=(v.getValue(t.style,g.STYLE_FONTSTYLE,0)&g.FONT_ITALIC)==g.FONT_ITALIC,a=[];(v.getValue(t.style,g.STYLE_FONTSTYLE,0)&g.FONT_UNDERLINE)==g.FONT_UNDERLINE&&a.push("underline"),(v.getValue(t.style,g.STYLE_FONTSTYLE,0)&g.FONT_STRIKETHROUGH)==g.FONT_STRIKETHROUGH&&a.push("line-through"),this.textarea.style.lineHeight=g.ABSOLUTE_LINE_HEIGHT?Math.round(n*g.LINE_HEIGHT)+"px":g.LINE_HEIGHT,this.textarea.style.fontSize=Math.round(n)+"px",this.textarea.style.textDecoration=a.join(" "),this.textarea.style.fontWeight=s?"bold":"normal",this.textarea.style.fontStyle=l?"italic":"",this.textarea.style.fontFamily=r,this.textarea.style.textAlign=o,this.textarea.style.padding="0px",this.textarea.innerHTML!=e&&(this.textarea.innerHTML=e,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=this.textarea.innerHTML.length>0)),this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var e=v.htmlEntities(this.textarea.innerHTML);E.IS_QUIRKS||8==document.documentMode||(e=v.replaceTrailingNewlines(e,"<div><br></div>")),e=this.graph.sanitizeHtml(i?e.replace(/\n/g,"").replace(/<br\s*.?>/g,"<br>"):e,!0),this.textarea.className="mxCellEditor mxPlainTextEditor";var n=g.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=g.ABSOLUTE_LINE_HEIGHT?Math.round(n*g.LINE_HEIGHT)+"px":g.LINE_HEIGHT,this.textarea.style.fontSize=Math.round(n)+"px",this.textarea.style.textDecoration="",this.textarea.style.fontWeight="normal",this.textarea.style.fontStyle="",this.textarea.style.fontFamily=g.DEFAULT_FONTFAMILY,this.textarea.style.textAlign="left",this.textarea.style.padding="2px",this.textarea.innerHTML!=e&&(this.textarea.innerHTML=e),this.codeViewMode=!0}this.textarea.focus(),null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState),this.switchSelectionState=r,this.resize()}};const b=ut.prototype.resize;ut.prototype.resize=function(t){if(null!=this.textarea)if(t=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=t){const e=t.view.scale;if(this.bounds=w.fromRectangle(t),0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*e,this.bounds.height=60*e;let n=null!=t.text?t.text.margin:null;null==n&&(n=v.getAlignmentAsPoint(v.getValue(t.style,g.STYLE_ALIGN,g.ALIGN_CENTER),v.getValue(t.style,g.STYLE_VERTICAL_ALIGN,g.ALIGN_MIDDLE))),this.bounds.x+=n.x*this.bounds.width,this.bounds.y+=n.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/e)+"px",this.textarea.style.height=Math.round((this.bounds.height-4)/e)+"px",this.textarea.style.overflow="auto",this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/e)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*e),this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/e)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*e),this.textarea.style.left=Math.round(this.bounds.x)+"px",this.textarea.style.top=Math.round(this.bounds.y)+"px",E.IS_VML?this.textarea.style.zoom=e:v.setPrefixedStyle(this.textarea.style,"transform","scale("+e+","+e+")")}else this.textarea.style.height="",this.textarea.style.overflow="",b.apply(this,arguments)};const I=ut.prototype.getInitialValue;ut.prototype.getInitialValue=function(t,e){if("0"==v.getValue(t.style,"html","0"))return I.apply(this,arguments);{let n=this.graph.getEditingValue(t.cell,e);return"1"==v.getValue(t.style,"nl2Br","1")&&(n=n.replace(/\n/g,"<br/>")),n=this.graph.sanitizeHtml(n,!0),n}};const N=ut.prototype.getCurrentValue;ut.prototype.getCurrentValue=function(t){if("0"==v.getValue(t.style,"html","0"))return N.apply(this,arguments);{let e=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return e="1"==v.getValue(t.style,"nl2Br","1")?e.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):e.replace(/\r\n/g,"").replace(/\n/g,""),e}};const H=ut.prototype.stopEditing;ut.prototype.stopEditing=function(){this.codeViewMode&&this.toggleViewMode(),H.apply(this,arguments),this.focusContainer()},ut.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(t){}};const k=ut.prototype.applyValue;ut.prototype.applyValue=function(t,e){this.graph.getModel().beginUpdate();try{k.apply(this,arguments),""==e&&this.graph.isCellDeletable(t.cell)&&0==this.graph.model.getChildCount(t.cell)&&this.graph.isTransparentState(t)&&this.graph.removeCells([t.cell],!1)}finally{this.graph.getModel().endUpdate()}},ut.prototype.getBackgroundColor=function(t){let e=v.getValue(t.style,g.STYLE_LABEL_BACKGROUNDCOLOR,null);return null!=e&&e!=g.NONE||null==t.cell.geometry||!(t.cell.geometry.width>0)||0==v.getValue(t.style,g.STYLE_ROTATION,0)&&0!=v.getValue(t.style,g.STYLE_HORIZONTAL,1)||(e=v.getValue(t.style,g.STYLE_FILLCOLOR,null)),e==g.NONE&&(e=null),e},ut.prototype.getMinimumSize=function(t){const e=this.graph.getView().scale;return new w(0,0,null==t.text?30:t.text.size*e+20,30)};const V=R.prototype.isValidDropTarget;function z(){const t=document.createElement("div");return t.className="geHint",t.style.whiteSpace="nowrap",t.style.position="absolute",t}function j(t,e){switch(e){case g.POINTS:return t;case g.MILLIMETERS:return(t/g.PIXELS_PER_MM).toFixed(1);case g.INCHES:return(t/g.PIXELS_PER_INCH).toFixed(2)}}R.prototype.isValidDropTarget=function(t,e){return V.apply(this,arguments)&&!C.isAltDown(e.getEvent)},L.prototype.formatUnitText=function(t){return t?j(t,this.unit):t},R.prototype.updateHint=function(){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=z(),this.graph.container.appendChild(this.hint));const t=this.graph.view.translate,e=this.graph.view.scale,n=this.roundLength((this.bounds.x+this.currentDx)/e-t.x),i=this.roundLength((this.bounds.y+this.currentDy)/e-t.y),r=this.graph.view.unit;this.hint.innerHTML=j(n,r)+", "+j(i,r),this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+ue.hintOffset+"px"}},R.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};const Z=xt.prototype.resizeCell;xt.prototype.resizeCell=function(t,e){Z.apply(this,arguments);let n=this.graph.getCellStyle(t);if(null==n.childLayout){const i=this.graph.model.getParent(t);let r=null!=i?this.graph.getCellGeometry(i):null;if(null!=r&&(n=this.graph.getCellStyle(i),"stackLayout"==n.childLayout)){const t="1"==v.getValue(n,"horizontalStack","1");r=r.clone(),t?r.height=e.height:r.width=e.width,this.graph.model.setGeometry(i,r)}}};const X=F.prototype.getHandledSelectionCells;F.prototype.getHandledSelectionCells=function(){const t=X.apply(this,arguments),e=new at,n=this.graph.model,i=[];function r(t){e.get(t)||(e.put(t,!0),i.push(t))}for(let o=0;o<t.length;o++){const e=t[o];this.graph.isTableCell(e)?r(n.getParent(n.getParent(e))):this.graph.isTableRow(e)&&r(n.getParent(e)),r(e)}return i};const K=dt.prototype.createParentHighlightShape;dt.prototype.createParentHighlightShape=function(){const t=K.apply(this,arguments);return t.stroke="#C0C0C0",t.strokewidth=1,t};const J=Y.prototype.createParentHighlightShape;Y.prototype.createParentHighlightShape=function(){const t=J.apply(this,arguments);return t.stroke="#C0C0C0",t.strokewidth=1,t},dt.prototype.rotationHandleVSpacing=-12,dt.prototype.getRotationHandlePosition=function(){const t=this.getHandlePadding();return new T(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+t.x/2,this.bounds.y+this.rotationHandleVSpacing-t.y/2)},dt.prototype.isRecursiveResize=function(t,e){return this.graph.isRecursiveVertexResize(t)&&!C.isControlDown(e.getEvent())},dt.prototype.isCenteredEvent=function(t,e){return!(!this.graph.isSwimlane(t.cell)&&this.graph.model.getChildCount(t.cell)>0&&!this.graph.isCellCollapsed(t.cell)&&"1"==v.getValue(t.style,"recursiveResize","1")&&null==v.getValue(t.style,"childLayout",null))&&C.isControlDown(e.getEvent())||C.isMetaDown(e.getEvent())};const _=dt.prototype.isRotationHandleVisible;dt.prototype.isRotationHandleVisible=function(){return _.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)},dt.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};const $=dt.prototype.isParentHighlightVisible;dt.prototype.isParentHighlightVisible=function(){return $.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};const tt=dt.prototype.isCustomHandleVisible;dt.prototype.isCustomHandleVisible=function(t){return t.tableHandle||tt.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))},dt.prototype.getSelectionBorderInset=function(){let t=0;return this.graph.isTableRow(this.state.cell)?t=1:this.graph.isTableCell(this.state.cell)&&(t=2),t};const et=dt.prototype.getSelectionBorderBounds;dt.prototype.getSelectionBorderBounds=function(){return et.apply(this,arguments).grow(-this.getSelectionBorderInset())};const it=dt.prototype.createCustomHandles;dt.prototype.createCustomHandles=function(){let t=it.apply(this,arguments);if(this.graph.isTable(this.state.cell)){const n=this.graph,i=n.model,r=this.state,o=this.selectionBorder,s=this;null==t&&(t=[]);const l=n.view.getCellStates(i.getChildCells(this.state.cell,!0));if(l.length>0){const a=n.view.getCellStates(i.getChildCells(l[0].cell,!0));for(var e=0;e<a.length;e++)v.bind(this,(function(e){const i=a[e],l=e<a.length-1?a[e+1]:null,h=new kt(new w,g.NONE,1,!0);h.isDashed=o.isDashed;const u=new Ht(i,"col-resize",null,h);u.tableHandle=!0;let d=0;u.shape.node.parentNode.insertBefore(u.shape.node,u.shape.node.parentNode.firstChild),u.redraw=function(){if(null!=this.shape&&null!=this.state.shape){const t=n.getActualStartSize(r.cell);this.shape.stroke=0==d?g.NONE:o.stroke,this.shape.bounds.x=this.state.x+this.state.width+d*this.graph.view.scale,this.shape.bounds.width=1,this.shape.bounds.y=r.y+(e==a.length-1?0:t.y*this.graph.view.scale),this.shape.bounds.height=r.height-(e==a.length-1?0:(t.height+t.y)*this.graph.view.scale),this.shape.redraw()}};let c=!1;u.setPosition=function(t,e,r){d=Math.max(te.minTableColumnWidth-t.width,e.x-t.x-t.width),c=C.isShiftDown(r.getEvent()),null==l||c||(d=Math.min((l.x+l.width-i.x-i.width)/n.view.scale-te.minTableColumnWidth,d))},u.execute=function(t){if(0!=d)n.setTableColumnWidth(this.state.cell,d,c);else if(!s.blockDelayedSelection){const e=n.getCellAt(t.getGraphX(),t.getGraphY())||r.cell;n.selectCellForEvent(e,t.getEvent())}d=0},u.reset=function(){d=0},t.push(u)}))(e);for(e=0;e<l.length;e++)v.bind(this,(function(e){const i=l[e],a=new kt(new w,g.NONE,1);a.isDashed=o.isDashed;const h=new Ht(i,"row-resize",null,a);h.tableHandle=!0;let u=0;h.shape.node.parentNode.insertBefore(h.shape.node,h.shape.node.parentNode.firstChild),h.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==u?g.NONE:o.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+u*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())},h.setPosition=function(t,e){u=Math.max(te.minTableRowHeight-t.height,e.y-t.y-t.height)},h.execute=function(t){if(0!=u)n.setTableRowHeight(this.state.cell,u,!C.isShiftDown(t.getEvent()));else if(!s.blockDelayedSelection){const e=n.getCellAt(t.getGraphX(),t.getGraphY())||r.cell;n.selectCellForEvent(e,t.getEvent())}u=0},h.reset=function(){u=0},t.push(h)}))(e)}}return null!=t?t.reverse():null};const yt=dt.prototype.setHandlesVisible;dt.prototype.setHandlesVisible=function(t){if(yt.apply(this,arguments),null!=this.moveHandles)for(var e=0;e<this.moveHandles.length;e++)this.moveHandles[e].style.visibility=t?"":"hidden";if(null!=this.cornerHandles)for(e=0;e<this.cornerHandles.length;e++)this.cornerHandles[e].node.style.visibility=t?"":"hidden"},dt.prototype.refreshMoveHandles=function(){const t=this.graph.model;if(null!=this.moveHandles){for(var e=0;e<this.moveHandles.length;e++)this.moveHandles[e].parentNode.removeChild(this.moveHandles[e]);this.moveHandles=null}for(this.moveHandles=[],e=0;e<t.getChildCount(this.state.cell);e++)v.bind(this,(function(e){if(null!=e&&t.isVertex(e.cell)){const t=v.createImage(ue.rowMoveImage);t.style.position="absolute",t.style.cursor="pointer",t.style.width="7px",t.style.height="4px",t.style.padding="4px 2px 4px 2px",t.rowState=e,C.addGestureListeners(t,v.bind(this,(function(t){this.graph.popupMenuHandler.hideMenu(),this.graph.stopEditing(!1),this.graph.selectCellForEvent(e.cell,t),C.isPopupTrigger(t)||(this.graph.graphHandler.start(this.state.cell,C.getClientX(t),C.getClientY(t),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=C.isMouseEvent(t),this.graph.isMouseDown=!0),C.consume(t)})),null,v.bind(this,(function(t){C.isPopupTrigger(t)&&(this.graph.popupMenuHandler.popup(C.getClientX(t),C.getClientY(t),e.cell,t),C.consume(t))}))),this.moveHandles.push(t),this.graph.container.appendChild(t)}}))(this.graph.view.getState(t.getChildAt(this.state.cell,e)))},dt.prototype.refresh=function(){if(null!=this.customHandles){for(let t=0;t<this.customHandles.length;t++)this.customHandles[t].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};const ft=dt.prototype.getHandlePadding;dt.prototype.getHandlePadding=function(){let t=new T(0,0),e=this.tolerance,n=this.state.style.shape;null==W.defaultShapes[n]&&null==nt.getStencil(n)&&(n=g.SHAPE_RECTANGLE);let i=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!i&&null!=this.customHandles)for(let r=0;r<this.customHandles.length;r++)if(null!=this.customHandles[r].shape&&null!=this.customHandles[r].shape.bounds){const t=this.customHandles[r].shape.bounds,e=t.getCenterX(),n=t.getCenterY();if(Math.abs(this.state.x-e)<t.width/2||Math.abs(this.state.y-n)<t.height/2||Math.abs(this.state.x+this.state.width-e)<t.width/2||Math.abs(this.state.y+this.state.height-n)<t.height/2){i=!0;break}}return i&&null!=this.sizers&&this.sizers.length>0&&null!=this.sizers[0]?(e/=2,this.graph.isTable(this.state.cell)&&(e+=7),t.x=this.sizers[0].bounds.width+e,t.y=this.sizers[0].bounds.height+e):t=ft.apply(this,arguments),t},dt.prototype.updateHint=function(){if(this.index!=C.LABEL_HANDLE){if(null==this.hint&&(this.hint=z(),this.state.view.graph.container.appendChild(this.hint)),this.index==C.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"°";else{const t=this.state.view.scale,e=this.state.view.unit;this.hint.innerHTML=j(this.roundLength(this.bounds.width/t),e)+" x "+j(this.roundLength(this.bounds.height/t),e)}const t=null!=this.currentAlpha?this.currentAlpha:this.state.style[g.STYLE_ROTATION]||"0";let e=v.getBoundingBox(this.bounds,t);null==e&&(e=this.bounds),this.hint.style.left=e.x+Math.round((e.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=e.y+e.height+ue.hintOffset+"px",null!=this.linkHint&&(this.linkHint.style.display="none")}},dt.prototype.removeHint=function(){R.prototype.removeHint.apply(this,arguments),null!=this.linkHint&&(this.linkHint.style.display="")};const At=Y.prototype.mouseMove;Y.prototype.mouseMove=function(){At.apply(this,arguments),null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none")};const Et=Y.prototype.mouseUp;if(Y.prototype.mouseUp=function(){Et.apply(this,arguments),null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")},Y.prototype.updateHint=function(t,e){null==this.hint&&(this.hint=z(),this.state.view.graph.container.appendChild(this.hint));const n=this.graph.view.translate,i=this.graph.view.scale,r=this.roundLength(e.x/i-n.x),o=this.roundLength(e.y/i-n.y),s=this.graph.view.unit;if(this.hint.innerHTML=j(r,s)+", "+j(o,s),this.hint.style.visibility="visible",this.isSource||this.isTarget)if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus){const t=this.constraintHandler.currentConstraint.point;this.hint.innerHTML="["+Math.round(100*t.x)+"%, "+Math.round(100*t.y)+"%]"}else this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(t.getGraphX()-this.hint.clientWidth/2)+"px",this.hint.style.top=Math.max(t.getGraphY(),e.y)+ue.hintOffset+"px",null!=this.linkHint&&(this.linkHint.style.display="none")},Y.prototype.removeHint=dt.prototype.removeHint,ee.prototype.mainHandle=te.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+ee.prototype.arrowFill+'" stroke-width="1"/>'),ee.prototype.secondaryHandle=te.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'),ee.prototype.fixedHandle=te.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+ee.prototype.arrowFill+'" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'),ee.prototype.terminalHandle=te.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+ee.prototype.arrowFill+'" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'),ee.prototype.rotationHandle=te.createSvgImage(16,16,'<path stroke="'+ee.prototype.arrowFill+'" fill="'+ee.prototype.arrowFill+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',24,24),rt.prototype.pointImage=te.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="'+ee.prototype.arrowFill+'"/>'),dt.TABLE_HANDLE_COLOR="#fca000",dt.prototype.handleImage=ee.prototype.mainHandle,dt.prototype.secondaryHandleImage=ee.prototype.secondaryHandle,Y.prototype.handleImage=ee.prototype.mainHandle,Y.prototype.terminalHandleImage=ee.prototype.terminalHandle,Y.prototype.fixedHandleImage=ee.prototype.fixedHandle,Y.prototype.labelHandleImage=ee.prototype.secondaryHandle,ct.prototype.sizerImage=ee.prototype.mainHandle,ie.prototype.triangleUp=ee.prototype.triangleUp,ie.prototype.triangleRight=ee.prototype.triangleRight,ie.prototype.triangleDown=ee.prototype.triangleDown,ie.prototype.triangleLeft=ee.prototype.triangleLeft,ie.prototype.refreshTarget=ee.prototype.refreshTarget,ie.prototype.roundDrop=ee.prototype.roundDrop,(new Image).src=ee.prototype.mainHandle.src,(new Image).src=ee.prototype.fixedHandle.src,(new Image).src=ee.prototype.terminalHandle.src,(new Image).src=ee.prototype.secondaryHandle.src,(new Image).src=ee.prototype.rotationHandle.src,(new Image).src=ee.prototype.triangleUp.src,(new Image).src=ee.prototype.triangleRight.src,(new Image).src=ee.prototype.triangleDown.src,(new Image).src=ee.prototype.triangleLeft.src,(new Image).src=ee.prototype.refreshTarget.src,(new Image).src=ee.prototype.roundDrop.src,dt.prototype.rotationEnabled=!0,dt.prototype.manageSizers=!0,dt.prototype.livePreview=!0,R.prototype.maxLivePreview=16,G.prototype.defaultOpacity=30,O.prototype.outlineConnect=!0,q.prototype.keepOnTop=!0,dt.prototype.parentHighlightEnabled=!0,Y.prototype.parentHighlightEnabled=!0,Y.prototype.dblClickRemoveEnabled=!0,Y.prototype.straightRemoveEnabled=!0,Y.prototype.virtualBendsEnabled=!0,Y.prototype.mergeRemoveEnabled=!0,Y.prototype.manageLabelHandle=!0,Y.prototype.outlineConnect=!0,Y.prototype.isAddVirtualBendEvent=function(t){return!C.isShiftDown(t.getEvent())},Y.prototype.isCustomHandleEvent=function(t){return!C.isShiftDown(t.getEvent())},te.touchStyle){(E.IS_TOUCH||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0)&&(U.prototype.svgStrokeTolerance=18,dt.prototype.tolerance=12,Y.prototype.tolerance=12,te.prototype.tolerance=12,dt.prototype.rotationHandleVSpacing=-16,rt.prototype.getTolerance=function(t){return C.isMouseEvent(t.getEvent())?4:this.graph.getTolerance()}),pt.prototype.isPanningTrigger=function(t){const e=t.getEvent();return null==t.getState()&&!C.isMouseEvent(e)||C.isPopupTrigger(e)&&(null==t.getState()||C.isControlDown(e)||C.isShiftDown(e))};const t=R.prototype.mouseDown;R.prototype.mouseDown=function(e,n){t.apply(this,arguments),C.isTouchEvent(n.getEvent())&&this.graph.isCellSelected(n.getCell())&&this.graph.getSelectionCount()>1&&(this.delayedSelection=!1)}}else pt.prototype.isPanningTrigger=function(t){const e=t.getEvent();return C.isLeftMouseButton(e)&&(this.useLeftButtonForPanning&&null==t.getState()||C.isControlDown(e)&&!C.isShiftDown(e))||this.usePopupTrigger&&C.isPopupTrigger(e)};G.prototype.isSpaceEvent=function(t){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&C.isControlDown(t.getEvent())&&C.isShiftDown(t.getEvent())},G.prototype.cancelled=!1,G.prototype.cancel=function(){this.isActive()&&(this.cancelled=!0,this.reset())},G.prototype.mouseUp=function(t,e){if(this.cancelled)this.cancelled=!1,e.consume();else{const t=null!=this.div&&"none"!=this.div.style.display;let r=null,o=null,s=null,l=null;if(null!=this.first&&null!=this.currentX&&null!=this.currentY&&(r=this.first.x,o=this.first.y,s=(this.currentX-r)/this.graph.view.scale,l=(this.currentY-o)/this.graph.view.scale,C.isAltDown(e.getEvent())||(s=this.graph.snap(s),l=this.graph.snap(l),this.graph.isGridEnabled()||(Math.abs(s)<this.graph.tolerance&&(s=0),Math.abs(l)<this.graph.tolerance&&(l=0)))),this.reset(),t){if(C.isAltDown(e.getEvent())&&this.graph.isToggleEvent(e.getEvent())){var n=new w(this.x,this.y,this.width,this.height),i=this.graph.getCells(n.x,n.y,n.width,n.height);this.graph.removeSelectionCells(i)}else if(this.isSpaceEvent(e)){this.graph.model.beginUpdate();try{i=this.graph.getCellsBeyond(r,o,this.graph.getDefaultParent(),!0,!0);for(let t=0;t<i.length;t++)if(this.graph.isCellMovable(i[t])){const e=this.graph.view.getState(i[t]);let n=this.graph.getCellGeometry(i[t]);null!=e&&null!=n&&(n=n.clone(),n.translate(s,l),this.graph.model.setGeometry(i[t],n))}}finally{this.graph.model.endUpdate()}}else n=new w(this.x,this.y,this.width,this.height),this.graph.selectRegion(n,e.getEvent());e.consume()}}},G.prototype.mouseMove=function(t,e){if(!e.isConsumed()&&null!=this.first){const t=v.getScrollOrigin(this.graph.container),n=v.getOffset(this.graph.container);t.x-=n.x,t.y-=n.y;const i=e.getX()+t.x,r=e.getY()+t.y,o=this.first.x-i,s=this.first.y-r,l=this.graph.tolerance;if(null!=this.div||Math.abs(o)>l||Math.abs(s)>l){if(null==this.div&&(this.div=this.createShape()),v.clearSelection(),this.update(i,r),this.isSpaceEvent(e)){const t=this.x+this.width,n=this.y+this.height,i=this.graph.view.scale;C.isAltDown(e.getEvent())||(this.width=this.graph.snap(this.width/i)*i,this.height=this.graph.snap(this.height/i)*i,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=t-this.width),this.y<this.first.y&&(this.y=n-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=this.width<=0?"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=this.height<=0?"1px 0px 0px 0px":"1px 0px 1px 0px"}else this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);e.consume()}}};const wt=G.prototype.reset;G.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null),wt.apply(this,arguments)};let St=(new Date).getTime(),bt=0;const Tt=Y.prototype.updatePreviewState;Y.prototype.updatePreviewState=function(t,e,n){Tt.apply(this,arguments),n!=this.currentTerminalState?(St=(new Date).getTime(),bt=0):bt=(new Date).getTime()-St,this.currentTerminalState=n};const Lt=Y.prototype.isOutlineConnectEvent;Y.prototype.isOutlineConnectEvent=function(t){return null!=this.currentTerminalState&&t.getState()==this.currentTerminalState&&bt>2e3||(null==this.currentTerminalState||"0"!=v.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&Lt.apply(this,arguments)},Y.prototype.createHandleShape=function(t){const e=null!=t&&0==t,n=this.state.getVisibleTerminalState(e),i=null!=t&&(0==t||t>=this.state.absolutePoints.length-1||this.constructor==gt&&2==t)?this.graph.getConnectionConstraint(this.state,n,e):null,r=null!=(null!=i?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(e),i):null)?this.fixedHandleImage:null!=i&&null!=n?this.terminalHandleImage:this.handleImage;if(null!=r){const t=new mt(new w(0,0,r.width,r.height),r.src);return t.preserveImageAspect=!1,t}{let t=g.HANDLE_SIZE;return this.preferHtml&&(t-=1),new D(new w(0,0,t,t),g.HANDLE_FILLCOLOR,g.HANDLE_STROKECOLOR)}};const It=dt.prototype.createSizerShape;dt.prototype.createSizerShape=function(t,e){return this.handleImage=e==C.ROTATION_HANDLE?ee.prototype.rotationHandle:e==C.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage,It.apply(this,arguments)};const Mt=R.prototype.getBoundingBox;R.prototype.getBoundingBox=function(t){if(null!=t&&1==t.length){const e=this.graph.getModel(),n=e.getParent(t[0]),i=this.graph.getCellGeometry(t[0]);if(e.isEdge(n)&&null!=i&&i.relative){const e=this.graph.view.getState(t[0]);if(null!=e&&e.width<2&&e.height<2&&null!=e.text&&null!=e.text.boundingBox)return w.fromRectangle(e.text.boundingBox)}}return Mt.apply(this,arguments)};const Rt=R.prototype.getGuideStates;R.prototype.getGuideStates=function(){const t=Rt.apply(this,arguments),e=[];for(let n=0;n<t.length;n++)"1"!=v.getValue(t[n].style,"part","0")&&e.push(t[n]);return e};const Ot=dt.prototype.getSelectionBounds;dt.prototype.getSelectionBounds=function(t){const e=this.graph.getModel(),n=e.getParent(t.cell),i=this.graph.getCellGeometry(t.cell);if(e.isEdge(n)&&null!=i&&i.relative&&t.width<2&&t.height<2&&null!=t.text&&null!=t.text.boundingBox){const e=t.text.unrotatedBoundingBox||t.text.boundingBox;return new w(Math.round(e.x),Math.round(e.y),Math.round(e.width),Math.round(e.height))}return Ot.apply(this,arguments)};const Nt=dt.prototype.mouseDown;dt.prototype.mouseDown=function(t,e){const n=this.graph.getModel(),i=n.getParent(this.state.cell),r=this.graph.getCellGeometry(this.state.cell),o=this.getHandleForEvent(e);(o==C.ROTATION_HANDLE||!n.isEdge(i)||null==r||!r.relative||null==this.state||this.state.width>=2||this.state.height>=2)&&Nt.apply(this,arguments)},dt.prototype.rotateClick=function(){const t=v.getValue(this.state.style,g.STYLE_STROKECOLOR,g.NONE),e=v.getValue(this.state.style,g.STYLE_FILLCOLOR,g.NONE);if(this.state.view.graph.model.isVertex(this.state.cell)&&t==g.NONE&&e==g.NONE){const t=v.mod(v.getValue(this.state.style,g.STYLE_ROTATION,0)+90,360);this.state.view.graph.setCellStyles(g.STYLE_ROTATION,t,[this.state.cell])}else this.state.view.graph.turnShapes([this.state.cell])};const Dt=dt.prototype.mouseMove;dt.prototype.mouseMove=function(){Dt.apply(this,arguments),null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};const Pt=dt.prototype.mouseUp;dt.prototype.mouseUp=function(){Pt.apply(this,arguments),null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none"),null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display=""),this.blockDelayedSelection=null};const Gt=dt.prototype.init;dt.prototype.init=function(){Gt.apply(this,arguments);let t=!1;if(null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",f.get("rotateTooltip")),this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(let t=0;t<4;t++){const t=new D(new w(0,0,6,6),"#ffffff",g.HANDLE_STROKECOLOR);t.dialect=this.graph.dialect!=g.DIALECT_SVG?g.DIALECT_VML:g.DIALECT_SVG,t.init(this.graph.view.getOverlayPane()),this.cornerHandles.push(t)}}const e=v.bind(this,(function(){null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none"),this.redrawHandles()}));this.changeHandler=v.bind(this,(function(){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state)),e()})),this.graph.getSelectionModel().addListener(C.CHANGE,this.changeHandler),this.graph.getModel().addListener(C.CHANGE,this.changeHandler),this.editingHandler=v.bind(this,(function(){this.redrawHandles()})),this.graph.addListener(C.EDITING_STOPPED,this.editingHandler);const n=this.graph.getLinkForCell(this.state.cell),i=this.graph.getLinksForState(this.state);this.updateLinkHint(n,i),(null!=n||null!=i&&i.length>0)&&(t=!0),t&&this.redrawHandles()},dt.prototype.updateLinkHint=function(t,e){try{if(null==t&&(null==e||0==e.length)||this.graph.getSelectionCount()>1)null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if((null!=t||null!=e&&e.length>0)&&(null==this.linkHint&&(this.linkHint=z(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint)),this.linkHint.innerHTML="",null!=t&&this.linkHint.appendChild(this.graph.createLinkForHint(t)),null!=e))for(let n=0;n<e.length;n++){const i=document.createElement("div");i.style.marginTop=null!=t||n>0?"6px":"0px",i.appendChild(this.graph.createLinkForHint(e[n].getAttribute("href"),v.getTextContent(e[n]))),this.linkHint.appendChild(i)}}catch(t){}},Y.prototype.updateLinkHint=dt.prototype.updateLinkHint;const Bt=Y.prototype.init;Y.prototype.init=function(){Bt.apply(this,arguments),this.constraintHandler.isEnabled=v.bind(this,(function(){return this.state.view.graph.connectionHandler.isEnabled()}));const t=v.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.changeHandler=v.bind(this,(function(){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state)),t(),this.redrawHandles()})),this.graph.getSelectionModel().addListener(C.CHANGE,this.changeHandler),this.graph.getModel().addListener(C.CHANGE,this.changeHandler);const e=this.graph.getLinkForCell(this.state.cell),n=this.graph.getLinksForState(this.state);(null!=e||null!=n&&n.length>0)&&(this.updateLinkHint(e,n),this.redrawHandles())};const Ut=O.prototype.init;O.prototype.init=function(){Ut.apply(this,arguments),this.constraintHandler.isEnabled=v.bind(this,(function(){return this.graph.connectionHandler.isEnabled()}))};const Vt=dt.prototype.redrawHandles;dt.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var t=0;t<this.moveHandles.length;t++)this.moveHandles[t].style.left=this.moveHandles[t].rowState.x+this.moveHandles[t].rowState.width-5+"px",this.moveHandles[t].style.top=this.moveHandles[t].rowState.y+this.moveHandles[t].rowState.height/2-6+"px";if(null!=this.cornerHandles){const e=this.getSelectionBorderInset(),n=this.cornerHandles,i=n[0].bounds.width/2,r=n[0].bounds.height/2;for(n[0].bounds.x=this.state.x-i+e,n[0].bounds.y=this.state.y-r+e,n[0].redraw(),n[1].bounds.x=n[0].bounds.x+this.state.width-2*e,n[1].bounds.y=n[0].bounds.y,n[1].redraw(),n[2].bounds.x=n[0].bounds.x,n[2].bounds.y=this.state.y+this.state.height-2*e,n[2].redraw(),n[3].bounds.x=n[1].bounds.x,n[3].bounds.y=n[2].bounds.y,n[3].redraw(),t=0;t<this.cornerHandles.length;t++)this.cornerHandles[t].node.style.display=1==this.graph.getSelectionCount()?"":"none"}if(null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=C.ROTATION_HANDLE?"none":""),Vt.apply(this),null!=this.state&&null!=this.linkHint){const t=new T(this.state.getCenterX(),this.state.getCenterY()),e=new w(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22);let n=v.getBoundingBox(e,this.state.style[g.STYLE_ROTATION]||"0",t);const i=null!=n?v.getBoundingBox(this.state,this.state.style[g.STYLE_ROTATION]||"0"):this.state,r=null!=this.state.text?this.state.text.boundingBox:null;null==n&&(n=this.state);let o=n.y+n.height;null!=r&&(o=Math.max(o,r.y+r.height)),this.linkHint.style.left=Math.max(0,Math.round(i.x+(i.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(o+this.verticalOffset/2+ue.hintOffset)+"px"}};const Ft=dt.prototype.destroy;dt.prototype.destroy=function(){if(Ft.apply(this,arguments),null!=this.moveHandles){for(var t=0;t<this.moveHandles.length;t++)this.moveHandles[t].parentNode.removeChild(this.moveHandles[t]);this.moveHandles=null}if(null!=this.cornerHandles){for(t=0;t<this.cornerHandles.length;t++)this.cornerHandles[t].node.parentNode.removeChild(this.cornerHandles[t].node);this.cornerHandles=null}null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null),null!=this.changeHandler&&(this.graph.getSelectionModel().removeListener(this.changeHandler),this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null),null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};const zt=Y.prototype.redrawHandles;Y.prototype.redrawHandles=function(){if(null!=this.marker&&(zt.apply(this),null!=this.state&&null!=this.linkHint)){let t=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(t=new w(t.x,t.y,t.width,t.height),t.add(this.state.text.bounds)),this.linkHint.style.left=Math.max(0,Math.round(t.x+(t.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(t.y+t.height+ue.hintOffset)+"px"}};const Yt=Y.prototype.reset;Y.prototype.reset=function(){Yt.apply(this,arguments),null!=this.linkHint&&(this.linkHint.style.visibility="")};const Wt=Y.prototype.destroy;Y.prototype.destroy=function(){Wt.apply(this,arguments),null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null),null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}(),ie.prototype.init=function(){this.addSearchPalette(!0),this.addGeneralPalette(!0),this.addStencilPalette("flowchart",f.get("flowchart"),$t("flowchart.xml"),";whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2",null,null,null,null,null,!0),this.addMiscPalette(!1),this.addAdvancedPalette(!1),this.addBasicPalette(""),this.addStencilPalette("arrows",f.get("arrows"),$t("arrows.xml"),";whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2"),this.addUmlPalette(!1),this.addBpmnPalette("",!1),this.addImagePalette("clipart",f.get("clipart"),"","_128x128.png",["Earth_globe","Empty_Folder","Full_Folder","Gear","Lock","Software","Virus","Email","Database","Router_Icon","iPad","iMac","Laptop","MacBook","Monitor_Tower","Printer","Server_Tower","Workstation","Firewall_02","Wireless_Router_N","Credit_Card","Piggy_Bank","Graph","Safe","Shopping_Cart","Suit1","Suit2","Suit3","Pilot1","Worker1","Soldier1","Doctor1","Tech1","Security1","Telesales1"],null,{Wireless_Router_N:"wireless router switch wap wifi access point wlan",Router_Icon:"router switch"})},ie.prototype.collapsedImage="data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNUQyRTJFNjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNUQyRTJFNzZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MEUxNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MEUyNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhSMj6lrwAjcC1GyahV+dcZJgeIIFgA7",ie.prototype.expandedImage="data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxREY3NzBERjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxREY3NzBFMDZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MERENkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MERFNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhGMj6nL3QAjVHIu6azbvPtWAAA7",ie.prototype.searchImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAEaSURBVHjabNGxS5VxFIfxz71XaWuQUJCG/gCHhgTD9VpEETg4aMOlQRp0EoezObgcd220KQiXmpretTAHQRBdojlQEJyukPdt+b1ywfvAGc7wnHP4nlZd1yKijQW8xzNc4Su+ZOYfQ3T6/f4YNvEJYzjELXp4VVXVz263+7cR2niBxAFeZ2YPi3iHR/gYERPDwhpOsd6sz8x/mfkNG3iOlWFhFj8y89J9KvzGXER0GuEaD42mgwHqUtoljbcRsTBCeINpfM/MgZLKPpaxFxGbOCqDXmILN7hoJrTKH+axhxmcYRxP0MIDnOBDZv5q1XUNIuJxifJp+UNV7t7BFM6xeic0RMQ4Bpl5W/ol7GISx/eEUUTECrbx+f8A8xhiZht9zsgAAAAASUVORK5CYII=",ie.prototype.dragPreviewBorder="1px dashed black",ie.prototype.enableTooltips=!0,ie.prototype.tooltipBorder=16,ie.prototype.tooltipDelay=300,ie.prototype.dropTargetDelay=200,ie.prototype.gearImage=Jt,ie.prototype.thumbWidth=42,ie.prototype.thumbHeight=42,ie.prototype.minThumbStrokeWidth=1,ie.prototype.thumbAntiAlias=!1,ie.prototype.thumbPadding=document.documentMode>=5?2:3,ie.prototype.thumbBorder=2,ie.prototype.thumbPadding=document.documentMode>=5?0:1,ie.prototype.thumbBorder=1,ie.prototype.thumbWidth=32,ie.prototype.thumbHeight=30,ie.prototype.minThumbStrokeWidth=1.3,ie.prototype.thumbAntiAlias=!0,ie.prototype.sidebarTitleSize=9,ie.prototype.sidebarTitles=!1,ie.prototype.tooltipTitles=!0,ie.prototype.maxTooltipWidth=400,ie.prototype.maxTooltipHeight=400,ie.prototype.addStencilsToIndex=!0,ie.prototype.defaultImageWidth=80,ie.prototype.defaultImageHeight=80,ie.prototype.getTooltipOffset=function(){return new T(0,0)},ie.prototype.showTooltip=function(t,e,n,i,r,o){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=t){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);const s=v.bind(this,(function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=b.prototype.zIndex-1,document.body.appendChild(this.tooltip),this.graph2=new te(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),this.graph2.resetViewOnRootChange=!1,this.graph2.foldingEnabled=!1,this.graph2.gridEnabled=!1,this.graph2.autoScroll=!1,this.graph2.setTooltips(!1),this.graph2.setConnectable(!1),this.graph2.setEnabled(!1)),this.graph2.model.clear(),this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder),n>this.maxTooltipWidth||i>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/n,this.maxTooltipHeight/i))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==o||o;const s=E.NO_FO;E.NO_FO=ue.prototype.originalNoForeignObject,this.graph2.addCells(e),E.NO_FO=s;const l=this.graph2.getGraphBounds(),a=l.width+2*this.tooltipBorder+4;let h=l.height+2*this.tooltipBorder;E.IS_QUIRKS?(h+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltip.style.width=a+"px";let u=a;if(this.tooltipTitles&&null!=r&&r.length>0){null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",this.tooltipTitle.style.width="100%",this.tooltipTitle.style.overflow="hidden",this.tooltipTitle.style.position="absolute",this.tooltipTitle.style.paddingTop="6px",this.tooltipTitle.style.bottom="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",v.write(this.tooltipTitle,r),u=Math.min(this.maxTooltipWidth,Math.max(a,this.tooltipTitle.scrollWidth+4));const t=this.tooltipTitle.offsetHeight+10;h+=t,this.tooltipTitle.style.marginTop=2-t+"px"}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");u>a&&(this.tooltip.style.width=u+"px"),this.tooltip.style.height=h+"px";const d=-Math.round(l.x-this.tooltipBorder)+(u>a?(u-a)/2:0),c=-Math.round(l.y-this.tooltipBorder),p=document.body,g=document.documentElement,m=this.getTooltipOffset(),x=Math.max(p.clientHeight||0,g.clientHeight),y=this.container.clientWidth+this.editorUi.splitSize+3+this.editorUi.container.offsetLeft+m.x,f=Math.min(x-h-20,Math.max(0,this.editorUi.container.offsetTop+this.container.offsetTop+t.offsetTop-this.container.scrollTop-h/2+16))+m.y;0!=d||0!=c?this.graph2.view.canvas.setAttribute("transform","translate("+d+","+c+")"):this.graph2.view.canvas.removeAttribute("transform"),this.tooltip.style.position="absolute",this.tooltip.style.left=y+"px",this.tooltip.style.top=f+"px"}));null!=this.tooltip&&"none"!=this.tooltip.style.display?s():this.thread=window.setTimeout(s,this.tooltipDelay),this.currentElt=t}},ie.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null),null!=this.tooltip&&(this.tooltip.style.display="none",this.currentElt=null)},ie.prototype.addDataEntry=function(t,e,n,i,r){return this.addEntry(t,v.bind(this,(function(){return this.createVertexTemplateFromData(r,e,n,i)})))},ie.prototype.addEntries=function(t){for(let e=0;e<t.length;e++)v.bind(this,(function(t){let e=t.data,n=null!=t.title?t.title:"";null!=t.tags&&(n+=" "+t.tags),null!=e&&n.length>0?this.addEntry(n,v.bind(this,(function(){e=this.editorUi.convertDataUri(e);let n="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";return"fixed"==t.aspect&&(n+="aspect=fixed;"),this.createVertexTemplate(n+"image="+e,t.w,t.h,"",t.title||"",!1,!1,!0)}))):null!=t.xml&&n.length>0&&this.addEntry(n,v.bind(this,(function(){const e=this.editorUi.stringToCells(te.decompress(t.xml));return this.createVertexTemplateFromCells(e,t.w,t.h,t.title||"",!0,!1,!0)})))}))(t[e])},ie.prototype.addEntry=function(t,e){if(null!=this.taglist&&null!=t&&t.length>0){const n=t.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),i=v.bind(this,(function(t){if(null!=t&&t.length>1){let n=this.taglist[t];"object"!=typeof n&&(n={entries:[],dict:new at},this.taglist[t]=n),null==n.dict.get(e)&&(n.dict.put(e,e),n.entries.push(e))}}));for(let t=0;t<n.length;t++){i(n[t]);const e=n[t].replace(/\.*\d*$/,"");e!=n[t]&&i(e)}}return e},ie.prototype.searchEntries=function(t,e,n,i){if(null!=this.taglist&&null!=t){var r=t.toLowerCase().split(" ");let s=new at;const l=(n+1)*e;let a=[],h=0;for(let t=0;t<r.length;t++)if(r[t].length>0){var o=this.taglist[r[t]];const u=new at;if(null!=o){const d=o.entries;a=[];for(let c=0;c<d.length;c++)if(o=d[c],0==h==(null==s.get(o))&&(u.put(o,o),a.push(o),t==r.length-1&&a.length==l))return void i(a.slice(n*e,l),l,!0,r)}else a=[];s=u,h++}const u=a.length;i(a.slice(n*e,(n+1)*e),u,!1,r)}else i([],null,null,r)},ie.prototype.filterTags=function(t){if(null!=t){const e=t.split(" "),n=[],i={};for(let t=0;t<e.length;t++)null==i[e[t]]&&(i[e[t]]="1",n.push(e[t]));return n.join(" ")}return null},ie.prototype.cloneCell=function(t,e){const n=t.clone();return null!=e&&(n.value=e),n},ie.prototype.addSearchPalette=function(t){const e=document.createElement("div");e.style.visibility="hidden",this.container.appendChild(e);const n=document.createElement("div");n.className="geSidebar",n.style.boxSizing="border-box",n.style.overflow="hidden",n.style.width="100%",n.style.padding="8px",n.style.paddingTop="14px",n.style.paddingBottom="0px",t||(n.style.display="none");const i=document.createElement("div");i.style.whiteSpace="nowrap",i.style.textOverflow="clip",i.style.paddingBottom="8px",i.style.cursor="default";const r=document.createElement("input");r.setAttribute("placeholder",f.get("searchShapes")),r.setAttribute("type","text"),r.style.fontSize="12px",r.style.overflow="hidden",r.style.boxSizing="border-box",r.style.border="solid 1px #d5d5d5",r.style.borderRadius="4px",r.style.width="100%",r.style.outline="none",r.style.padding="6px",r.style.paddingRight="20px",i.appendChild(r);const o=document.createElement("img");let s;o.setAttribute("src",ie.prototype.searchImage),o.setAttribute("title",f.get("search")),o.style.position="relative",o.style.left="-18px",E.IS_QUIRKS?(r.style.height="28px",o.style.top="-4px"):o.style.top="1px",o.style.background="url('"+this.editorUi.editor.transparentImage+"')",i.appendChild(o),n.appendChild(i);const l=document.createElement("center"),a=v.button(f.get("moreResults"),(function(){s()}));a.style.display="none",a.style.lineHeight="normal",a.style.marginTop="4px",a.style.marginBottom="8px",l.style.paddingTop="4px",l.style.paddingBottom="4px",l.appendChild(a),n.appendChild(l);let h="",u=!1,d=!1,c=0,p=new Object,g=12;const m=v.bind(this,(function(){u=!1,this.currentSearch=null;let t=n.firstChild;for(;null!=t;){const e=t.nextSibling;t!=i&&t!=l&&t.parentNode.removeChild(t),t=e}}));C.addListener(o,"click",(function(){o.getAttribute("src")==de.prototype.closeImage&&(o.setAttribute("src",ie.prototype.searchImage),o.setAttribute("title",f.get("search")),a.style.display="none",r.value="",h="",m()),r.focus()})),s=v.bind(this,(function(){if(g=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=r.value){if(null!=l.parentNode&&(h!=r.value&&(m(),h=r.value,p=new Object,d=!1,c=0),!u&&!d)){a.setAttribute("disabled","true"),a.style.display="",a.style.cursor="wait",a.innerHTML=f.get("loading")+"...",u=!0;const t=new Object;this.currentSearch=t,this.searchEntries(h,g,c,v.bind(this,(function(e,i,r,o){if(this.currentSearch==t){e=null!=e?e:[],u=!1,c++,this.insertSearchHint(n,h,g,c,e,i,r,o),0==e.length&&1==c&&(h=""),null!=l.parentNode&&l.parentNode.removeChild(l);for(let i=0;i<e.length;i++)try{const t=e[i]();null==p[t.innerHTML]&&(p[t.innerHTML]="1",n.appendChild(t))}catch(t){}r?(a.removeAttribute("disabled"),a.innerHTML=f.get("moreResults")):(a.innerHTML=f.get("reset"),a.style.display="none",d=!0),a.style.cursor="",n.appendChild(l)}})),v.bind(this,(function(){a.style.cursor=""})))}}else m(),r.value="",h="",p=new Object,a.style.display="none",d=!1,r.focus()})),C.addListener(r,"keydown",v.bind(this,(function(t){13==t.keyCode&&(s(),C.consume(t))}))),C.addListener(r,"keyup",v.bind(this,(function(){""==r.value?(o.setAttribute("src",ie.prototype.searchImage),o.setAttribute("title",f.get("search"))):(o.setAttribute("src",de.prototype.closeImage),o.setAttribute("title",f.get("reset"))),""==r.value?(d=!0,a.style.display="none"):r.value!=h?(a.style.display="none",d=!1):u||(a.style.display=d?"none":"")}))),C.addListener(r,"mousedown",(function(t){t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0})),C.addListener(r,"selectstart",(function(t){t.stopPropagation&&t.stopPropagation(),t.cancelBubble=!0}));const x=document.createElement("div");x.appendChild(n),this.container.appendChild(x),this.palettes.search=[e,x]},ie.prototype.insertSearchHint=function(t,e,n,i,r){if(0==r.length&&1==i){const n=document.createElement("div");n.className="geTitle",n.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",v.write(n,f.get("noResultsFor",[e])),t.appendChild(n)}},ie.prototype.addGeneralPalette=function(t){const e="line lines connector connectors connection connections arrow arrows ",n=[this.createVertexTemplateEntry("rounded=0;whiteSpace=wrap;html=1;",120,60,"","Rectangle",null,null,"rect rectangle box"),this.createVertexTemplateEntry("rounded=1;whiteSpace=wrap;html=1;",120,60,"","Rounded Rectangle",null,null,"rounded rect rectangle box"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",40,20,"Text","Text",null,null,"text textbox textarea label"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;",190,120,"<h1>Heading</h1><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>","Textbox",null,null,"text textbox textarea"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;",120,80,"","Ellipse",null,null,"oval ellipse state"),this.createVertexTemplateEntry("whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Square",null,null,"square"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Circle",null,null,"circle"),this.createVertexTemplateEntry("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;",120,60,"","Process",null,null,"process task"),this.createVertexTemplateEntry("rhombus;whiteSpace=wrap;html=1;",80,80,"","Diamond",null,null,"diamond rhombus if condition decision conditional question test"),this.createVertexTemplateEntry("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;",120,60,"","Parallelogram"),this.createVertexTemplateEntry("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;",120,80,"","Hexagon",null,null,"hexagon preparation"),this.createVertexTemplateEntry("triangle;whiteSpace=wrap;html=1;",60,80,"","Triangle",null,null,"triangle logic inverter buffer"),this.createVertexTemplateEntry("shape=cylinder;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;",60,80,"","Cylinder",null,null,"cylinder data database"),this.createVertexTemplateEntry("ellipse;shape=cloud;whiteSpace=wrap;html=1;",120,80,"","Cloud",null,null,"cloud network"),this.createVertexTemplateEntry("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",120,80,"","Document"),this.createVertexTemplateEntry("shape=internalStorage;whiteSpace=wrap;html=1;backgroundOutline=1;",80,80,"","Internal Storage"),this.createVertexTemplateEntry("shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;",120,80,"","Cube"),this.createVertexTemplateEntry("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80,"","Step"),this.createVertexTemplateEntry("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;",120,60,"","Trapezoid"),this.createVertexTemplateEntry("shape=tape;whiteSpace=wrap;html=1;",120,100,"","Tape"),this.createVertexTemplateEntry("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;",80,100,"","Note"),this.createVertexTemplateEntry("shape=card;whiteSpace=wrap;html=1;",80,100,"","Card"),this.createVertexTemplateEntry("shape=callout;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;",120,80,"","Callout",null,null,"bubble chat thought speech message"),this.createVertexTemplateEntry("shape=umlActor;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;html=1;outlineConnect=0;",30,60,"Actor","Actor",!1,null,"user person human stickman"),this.createVertexTemplateEntry("shape=xor;whiteSpace=wrap;html=1;",60,80,"","Or",null,null,"logic or"),this.createVertexTemplateEntry("shape=or;whiteSpace=wrap;html=1;",60,80,"","And",null,null,"logic and"),this.createVertexTemplateEntry("shape=dataStorage;whiteSpace=wrap;html=1;",100,80,"","Data Storage"),this.addEntry("curve",v.bind(this,(function(){const t=new Ct("",new vt(0,0,50,50),"curved=1;endArrow=classic;html=1;");return t.geometry.setTerminalPoint(new T(0,50),!0),t.geometry.setTerminalPoint(new T(50,0),!1),t.geometry.points=[new T(50,50),new T(0,0)],t.geometry.relative=!0,t.edge=!0,this.createEdgeTemplateFromCells([t],t.geometry.width,t.geometry.height,"Curve")}))),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;startArrow=classic;html=1;",50,50,"","Bidirectional Arrow",null,e+"bidirectional"),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;html=1;",50,50,"","Arrow",null,e+"directional directed"),this.createEdgeTemplateEntry("shape=link;html=1;",50,50,"","Link",null,e+"link"),this.createEdgeTemplateEntry("endArrow=none;dashed=1;html=1;",50,50,"","Dashed Line",null,e+"dashed undirected no"),this.createEdgeTemplateEntry("endArrow=none;html=1;",50,50,"","Line",null,e+"simple undirected plain blank no"),this.createEdgeTemplateEntry("endArrow=classic;startArrow=classic;html=1;",50,50,"","Bidirectional Connector",null,e+"bidirectional"),this.createEdgeTemplateEntry("endArrow=classic;html=1;",50,50,"","Directional Connector",null,e+"directional directed")];this.addPaletteFunctions("general",f.get("general"),null==t||t,n)},ie.prototype.addBasicPalette=function(){this.addStencilPalette("basic",f.get("basic"),$t("basic.xml"),";whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2",null,null,null,null,[this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;top=0;bottom=0;fillColor=none;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;right=0;top=0;bottom=0;fillColor=none;routingCenterX=-0.5;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;bottom=0;right=0;fillColor=none;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;top=0;left=0;fillColor=none;",120,60,"","Partial Rectangle")])},ie.prototype.addMiscPalette=function(t){const e=this,n="line lines connector connectors connection connections arrow arrows ",i=[this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;",100,40,"Title","Title",null,null,"text heading title"),this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;whiteSpace=wrap;verticalAlign=middle;overflow=hidden;",100,80,"<ul><li>Value 1</li><li>Value 2</li><li>Value 3</li></ul>","Unordered List"),this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;whiteSpace=wrap;verticalAlign=middle;overflow=hidden;",100,80,"<ol><li>Value 1</li><li>Value 2</li><li>Value 3</li></ol>","Ordered List"),this.addDataEntry("table",180,120,"Table 1","7ZjJTsMwEIafJleUhZZybVgucAFewDTT2pLjiewpaXl6xolLVQFqWBJArZRKns2xv5H7y4myvFxdW1HJWyxAR9lllOUWkdpRucpB6yiNVRFlF1GaxvyL0qsPokkTjSthwVCXgrQteBJ6Ca2ndTha6+BwUlR+SOLRu6aSSl7mRcLDWiqC+0rMfLzmTbDPkbB0r569K2Z7hoaEMmBDzQy1FpVTzWRthlS6uBFrXNLmNRtrGpYHlmD14RYbV9jfNWAJZNecUquCZMiYtBhiCWohN2WBTSxc61i81m6J8SBAex9g1h0gL5mU0HcwI2EWXVi+ZVVYrB6EXQAFR4XKENjLJ6bhgm+utM5Ro0du0PgXEVYhqGG+qX1EIiyDYQOY10kbKKMpP4wpj09G0Yh3k7OdbG1+fLqlHI0jy432c4BwVIPr3MD0aw08/YH+nfbbP2N89rZ/324NMsq5xppNqYoCTFfG2V7G454Qjw4c8WoX7wDEx0fiO3/wAyA/O+pAbzqw3m3TELIwOZQTdPZrsnB+4IiHl4UkPiIfWheS5CgMfQvDZEBhSD5xY/7fZyjZf63u7dD0fKv++5B/QRwO5ia8h3mP6sDm9tNeE9v58vcC"),this.addDataEntry("table",180,120,"Table 2","7ZjBbqMwEIafhmuFISTptbTbS/eyrfbuBie2ZDzITEqyT79jMMlGWVTUBlqVSkTyjGeM+SbDLxPEab67t7yQPyETOojvgji1ANiM8l0qtA6iUGVBfBtEUUi/IPrRMcvq2bDgVhjskxA1CS9cb0XjaRwl7rV3lJIXboj82bluJOa0zVtGw0oqFI8FX7n5ih6CfCVyi4/qj3OFZK/AIFdGWJ+zAq15Uap6sSZCKp098D1ssb1Na7nobW4eKL/00Raqf02/f2FR7DoZ1C4P4F5ALtDuKaRSGUofsWw4hVKojWzTPLyQl41jc8g9IqWBp/p/wnF/wrRlVFz/EivkZtMH9jnMzELxxO1GoHcUoAwKe/dCNFpoa6V1ChpcTQwYdyOEwk9qsW5znwER8ha8B3NYtIaS3NBFmNLwKgkSepqUbHa06XLhFlMwJVr6J7g1BC+xEiX2LWD0tgLOLlC/2Vn9ftfDKGQXLaQxLvpYyHfXCIjpWkNFplRZJkxf2PGrsOcDsU46WV+2aT49690p5xHQzzvRx5NEf3j3j8B+8S0Rg0nE/rRMYyjGsrOVZl+0lRYfphjXnayTabEeXzFY2Ml+Pkn2Y0oGY9+aMbRmLEfUDHZ+EG+bafFFm4m9fiofrHvOD+Ut7eXEaH+AbnSfqK+nCX9A4SDz+DGxnjv51vgX"),this.addDataEntry("table title",180,120,"Table with Title 1","7ZhRb6MwDMc/Da8nAmPdvZbu9nJ7WfcFMnAhUohR4o12n34OpKumrmqlDXa6VqJS/Lcdkp8bWSFK82Z9Z2Vb32MJOkpvozS3iDSMmnUOWkdJrMooXURJEvMvSv4c8IreG7fSgqFTEpIh4UXqZxiUR/mkYVAdbXRQXS1bP6Tem85ranitC8HDrlYEy1YW3t/xTlhzJC0t1auX0piFAg1JZcCGpAK1lq1T/WyLPqJWuvwrN/hM2/dsrfmKs5dhMT5balUZHhe8Sz/lPOwCLMH6IIleChjuABsgu+GQTpVUh4ibgVZcg6rqbVoWROkGoXrP3YHlQWD7Oed0j/NBxLxkUlI/QEHSVKfQ3odZWmwfpa2AgtCi8qhuX5iGC9pKaZ2jRl8Tg8a/iLANTg2rbe4TEmETDBvAvE/aQ8nm/DCmPP6VRRnvJmdb7Gx+fLilHI0jy/8EPwdIRx04OrWAyecF3ATEoUzH6nn1DeW8GrecxvjoXTm/XClksiuNHZu1KkswpyJPj56Z65EQZ2eOeP0R7wTEry/E+4RkOuSzS1sYuy3MJmwLN+dygmY/1hZ+nzni6duCiC/Ip+4LQlwaw9iNQYgJO4PYv2j/p4dIHL9mj3ZqRr5l//uQf6A7nM1V+AjzEdsDm7svgr3vwwfDNw=="),this.addDataEntry("table title",180,150,"Table with Title 2","7Zhdb5swFIZ/DbcTHyVrbiFdb7Kbptq9Cw5YMj7IPi1kv37HYJK1FDWbQoOmSUSyz4dt3id+L/CitGrvNavL75Bz6UV3XpRqAOxHVZtyKb3QF7kXbbww9Onnhd8mskGX9WumucJzGsK+4YXJZ95HHtmT5H3U4EG6qClZbYfYZaOkxIrOuglo2JQC+a5mmc039CYUM8g07sRPG4p8CmSgkAnFtWvKQEpWG9GttukqSiHzLTvAMw77DLNkL1qeP0BjXLeGZkuLGde6p8V37qw2zaQoFI0zEsHumLiX5Bp5OylUF3Iq3XOoOOoDlTQix9JV3PZi+iUXRTm0xS7ITB8ojr0n3WngpH8fQzTCMEmAjoyCyQeeIVPFOTDGWuca6kemC44uUIOwUt29kBpHVYWUKUiwyBQouxFC7ZKS74feJ0CEaiDjhDku2okSJ/SQTKn/JfZiepuU5sFpTo8t15iCMqjpj2LX4Mxgww2eCzB8H+DBSewwfcQzugDOmxHO4KI8lbLVJ55/jMp/gwpI2r2EhqalyHOuztU8+vDS3MykcTzS+Ec3DP2Faz24U1+bGNpQqGLbd65mgNG+BvH7BZgLzupf8LO34JblZ6tP9LOvI5yX5bkcP1tdzc9uJ/1s4VrP52cTMK7gZ+v/fja3n60/0c8Cf8QzWvYl++s7tL6aoQXBpKMtXOz5HG2CxvyORtPTR4Uu9+qbwy8="),this.addDataEntry("crossfunctional cross-functional cross functional flowchart swimlane table",400,400,"Cross-Functional Flowchart","7ZhRb5swEMc/DY+bMCRt97jQpi+tVC2fwINbbMnYyD4C6aefjaHpBrTRlNCoTALJPp9t+P25O5kgTvL6XtOCPaoMRBDfBXGilULfyusEhAiikGdBfBtEUWjvIFqPjJJmNCyoBonHTIj8hB0VJXiL3dyYL+tSpsiVpM55LVSVMqrROxvci9bZMFq4JtKfzrRKGRfZA92rEjtr11tpVT1wCcYOhM5ViTKXry0G7RYb/uwWXDgDw9wCuSW2WTGOsClo6gYri8uvIGhheLN1s4KGtNSG7+AHGL+Os0JdUJm1nUJxiaDvdhZQt/EvJXHTvpTbjAq+lbadgnO1hhYSaIR6FHRjainfg8oB9d66VDxD5j0WoRcjZMC3DP8yUuMN25e5B91so5VuWMa4J+P3FJW2JtLXrOK5oNLJxZTmz/blqXhNp3mO5cpe9smS8OsyWNp5ie2TQ99ezl1joqRBTXmDAajBCgxejprHKBcNK7fvBPIz3hOSRCcQctET8olRA+8JmSopIW2j8GOD6Sji8TDxepT4C9yTE1+OEo/mQ5xcTYn8ahR5PB/k0c2UyK9HC8SbX/mnLBAnqAlD8XK+onDTE+/fw+TiQF9fTin4Nl/O0xYAEs6X9LR5n5Ae6S7xv1lr/yf+4cQ/pN75Ej/pH88/UZyQkRPzR6R+0j9Bz4f0xMm/f8adD+qzZn/bPfw5bMb++LH4Gw=="),this.createVertexTemplateEntry("text;html=1;strokeColor=#c0c0c0;fillColor=#ffffff;overflow=fill;rounded=0;",280,160,'<table border="1" width="100%" height="100%" cellpadding="4" style="width:100%;height:100%;border-collapse:collapse;"><tr style="background-color:#A7C942;color:#ffffff;border:1px solid #98bf21;"><th align="left">Title 1</th><th align="left">Title 2</th><th align="left">Title 3</th></tr><tr style="border:1px solid #98bf21;"><td>Value 1</td><td>Value 2</td><td>Value 3</td></tr><tr style="background-color:#EAF2D3;border:1px solid #98bf21;"><td>Value 4</td><td>Value 5</td><td>Value 6</td></tr><tr style="border:1px solid #98bf21;"><td>Value 7</td><td>Value 8</td><td>Value 9</td></tr><tr style="background-color:#EAF2D3;border:1px solid #98bf21;"><td>Value 10</td><td>Value 11</td><td>Value 12</td></tr></table>',"HTML Table 1"),this.createVertexTemplateEntry("text;html=1;strokeColor=#c0c0c0;fillColor=none;overflow=fill;",180,140,'<table border="0" width="100%" height="100%" style="width:100%;height:100%;border-collapse:collapse;"><tr><td align="center">Value 1</td><td align="center">Value 2</td><td align="center">Value 3</td></tr><tr><td align="center">Value 4</td><td align="center">Value 5</td><td align="center">Value 6</td></tr><tr><td align="center">Value 7</td><td align="center">Value 8</td><td align="center">Value 9</td></tr></table>',"HTML Table 2"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;overflow=fill;",180,140,'<table border="1" width="100%" height="100%" style="width:100%;height:100%;border-collapse:collapse;"><tr><td align="center">Value 1</td><td align="center">Value 2</td><td align="center">Value 3</td></tr><tr><td align="center">Value 4</td><td align="center">Value 5</td><td align="center">Value 6</td></tr><tr><td align="center">Value 7</td><td align="center">Value 8</td><td align="center">Value 9</td></tr></table>',"HTML Table 3"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;overflow=fill;",160,140,'<table border="1" width="100%" height="100%" cellpadding="4" style="width:100%;height:100%;border-collapse:collapse;"><tr><th align="center"><b>Title</b></th></tr><tr><td align="center">Section 1.1\nSection 1.2\nSection 1.3</td></tr><tr><td align="center">Section 2.1\nSection 2.2\nSection 2.3</td></tr></table>',"HTML Table 4"),this.addEntry("link hyperlink",v.bind(this,(function(){const t=new Ct("Link",new vt(0,0,60,40),"text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;align=center;verticalAlign=middle;fontColor=#0000EE;fontStyle=4;");return t.vertex=!0,this.graph.setLinkForCell(t,"https://www.draw.io"),this.createVertexTemplateFromCells([t],t.geometry.width,t.geometry.height,"Link")}))),this.addEntry("timestamp date time text label",v.bind(this,(function(){const t=new Ct("%date{ddd mmm dd yyyy HH:MM:ss}%",new vt(0,0,160,20),"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;");return t.vertex=!0,this.graph.setAttributeForCell(t,"placeholders","1"),this.createVertexTemplateFromCells([t],t.geometry.width,t.geometry.height,"Timestamp")}))),this.addEntry("variable placeholder metadata hello world text label",v.bind(this,(function(){const t=new Ct("%name% Text",new vt(0,0,80,20),"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;");return t.vertex=!0,this.graph.setAttributeForCell(t,"placeholders","1"),this.graph.setAttributeForCell(t,"name","Variable"),this.createVertexTemplateFromCells([t],t.geometry.width,t.geometry.height,"Variable")}))),this.createVertexTemplateEntry("shape=ext;double=1;rounded=0;whiteSpace=wrap;html=1;",120,80,"","Double Rectangle",null,null,"rect rectangle box double"),this.createVertexTemplateEntry("shape=ext;double=1;rounded=1;whiteSpace=wrap;html=1;",120,80,"","Double Rounded Rectangle",null,null,"rounded rect rectangle box double"),this.createVertexTemplateEntry("ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;",100,60,"","Double Ellipse",null,null,"oval ellipse start end state double"),this.createVertexTemplateEntry("shape=ext;double=1;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Double Square",null,null,"double square"),this.createVertexTemplateEntry("ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Double Circle",null,null,"double circle"),this.createEdgeTemplateEntry("rounded=0;comic=1;strokeWidth=2;endArrow=blockThin;html=1;fontFamily=Comic Sans MS;fontStyle=1;",50,50,"","Comic Arrow"),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;comic=1;strokeWidth=2;fontFamily=Comic Sans MS;fontStyle=1;",120,60,"RECTANGLE","Comic Rectangle",!0,null,"comic rectangle rect box text retro"),this.createVertexTemplateEntry("rhombus;html=1;align=center;whiteSpace=wrap;comic=1;strokeWidth=2;fontFamily=Comic Sans MS;fontStyle=1;",100,100,"DIAMOND","Comic Diamond",!0,null,"comic diamond rhombus if condition decision conditional question test retro"),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;aspect=fixed;shape=isoRectangle;",150,90,"","Isometric Square",!0,null,"rectangle rect box iso isometric"),this.createVertexTemplateEntry("html=1;whiteSpace=wrap;aspect=fixed;shape=isoCube;backgroundOutline=1;",90,100,"","Isometric Cube",!0,null,"cube box iso isometric"),this.createEdgeTemplateEntry("edgeStyle=isometricEdgeStyle;endArrow=none;html=1;",50,100,"","Isometric Edge 1"),this.createEdgeTemplateEntry("edgeStyle=isometricEdgeStyle;endArrow=none;html=1;elbow=vertical;",50,100,"","Isometric Edge 2"),this.createVertexTemplateEntry("shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;",20,120,"","Curly Bracket"),this.createVertexTemplateEntry("line;strokeWidth=2;html=1;",160,10,"","Horizontal Line"),this.createVertexTemplateEntry("line;strokeWidth=2;direction=south;html=1;",10,160,"","Vertical Line"),this.createVertexTemplateEntry("line;strokeWidth=4;html=1;perimeter=backbonePerimeter;points=[];outlineConnect=0;",160,10,"","Horizontal Backbone",!1,null,"backbone bus network"),this.createVertexTemplateEntry("line;strokeWidth=4;direction=south;html=1;perimeter=backbonePerimeter;points=[];outlineConnect=0;",10,160,"","Vertical Backbone",!1,null,"backbone bus network"),this.createVertexTemplateEntry("shape=crossbar;whiteSpace=wrap;html=1;rounded=1;",120,20,"","Crossbar",!1,null,"crossbar distance measure dimension unit"),this.createVertexTemplateEntry("shape=image;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;imageAspect=1;aspect=fixed;image="+Jt,52,61,"","Image (Fixed Aspect)",!1,null,"fixed image icon symbol"),this.createVertexTemplateEntry("shape=image;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;imageAspect=0;image="+Jt,50,60,"","Image (Variable Aspect)",!1,null,"strechted image icon symbol"),this.createVertexTemplateEntry("icon;html=1;image="+Jt,60,60,"Icon","Icon",!1,null,"icon image symbol"),this.createVertexTemplateEntry("label;whiteSpace=wrap;html=1;image="+Jt,140,60,"Label","Label 1",null,null,"label image icon symbol"),this.createVertexTemplateEntry("label;whiteSpace=wrap;html=1;align=center;verticalAlign=bottom;spacingLeft=0;spacingBottom=4;imageAlign=center;imageVerticalAlign=top;image="+Jt,120,80,"Label","Label 2",null,null,"label image icon symbol"),this.addEntry("shape group container",(function(){const t=new Ct("Label",new vt(0,0,160,70),"html=1;whiteSpace=wrap;container=1;recursiveResize=0;collapsible=0;");t.vertex=!0;const n=new Ct("",new vt(20,20,20,30),"triangle;html=1;whiteSpace=wrap;");return n.vertex=!0,t.insert(n),e.createVertexTemplateFromCells([t],t.geometry.width,t.geometry.height,"Shape Group")})),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;left=0;right=0;fillColor=none;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;bottom=1;right=1;left=1;top=0;fillColor=none;routingCenterX=-0.5;",120,60,"","Partial Rectangle"),this.createEdgeTemplateEntry("edgeStyle=segmentEdgeStyle;endArrow=classic;html=1;",50,50,"","Manual Line",null,n+"manual"),this.createEdgeTemplateEntry("shape=filledEdge;rounded=0;fixDash=1;endArrow=none;strokeWidth=10;fillColor=#ffffff;edgeStyle=orthogonalEdgeStyle;",60,40,"","Filled Edge"),this.createEdgeTemplateEntry("edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;",50,50,"","Horizontal Elbow",null,n+"elbow horizontal"),this.createEdgeTemplateEntry("edgeStyle=elbowEdgeStyle;elbow=vertical;endArrow=classic;html=1;",50,50,"","Vertical Elbow",null,n+"elbow vertical")];this.addPaletteFunctions("misc",f.get("misc"),null==t||t,i)},ie.prototype.addAdvancedPalette=function(t){this.addPaletteFunctions("advanced",f.get("advanced"),null!=t&&t,this.createAdvancedShapes())},ie.prototype.createAdvancedShapes=function(){const t=this,e=new Ct("List Item",new vt(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;");return e.vertex=!0,[this.createVertexTemplateEntry("shape=tapeData;whiteSpace=wrap;html=1;perimeter=ellipsePerimeter;",80,80,"","Tape Data"),this.createVertexTemplateEntry("shape=manualInput;whiteSpace=wrap;html=1;",80,80,"","Manual Input"),this.createVertexTemplateEntry("shape=loopLimit;whiteSpace=wrap;html=1;",100,80,"","Loop Limit"),this.createVertexTemplateEntry("shape=offPageConnector;whiteSpace=wrap;html=1;",80,80,"","Off Page Connector"),this.createVertexTemplateEntry("shape=delay;whiteSpace=wrap;html=1;",80,40,"","Delay"),this.createVertexTemplateEntry("shape=display;whiteSpace=wrap;html=1;",80,40,"","Display"),this.createVertexTemplateEntry("shape=singleArrow;direction=west;whiteSpace=wrap;html=1;",100,60,"","Arrow Left"),this.createVertexTemplateEntry("shape=singleArrow;whiteSpace=wrap;html=1;",100,60,"","Arrow Right"),this.createVertexTemplateEntry("shape=singleArrow;direction=north;whiteSpace=wrap;html=1;",60,100,"","Arrow Up"),this.createVertexTemplateEntry("shape=singleArrow;direction=south;whiteSpace=wrap;html=1;",60,100,"","Arrow Down"),this.createVertexTemplateEntry("shape=doubleArrow;whiteSpace=wrap;html=1;",100,60,"","Double Arrow"),this.createVertexTemplateEntry("shape=doubleArrow;direction=south;whiteSpace=wrap;html=1;",60,100,"","Double Arrow Vertical",null,null,"double arrow"),this.createVertexTemplateEntry("shape=actor;whiteSpace=wrap;html=1;",40,60,"","User",null,null,"user person human"),this.createVertexTemplateEntry("shape=cross;whiteSpace=wrap;html=1;",80,80,"","Cross"),this.createVertexTemplateEntry("shape=corner;whiteSpace=wrap;html=1;",80,80,"","Corner"),this.createVertexTemplateEntry("shape=tee;whiteSpace=wrap;html=1;",80,80,"","Tee"),this.createVertexTemplateEntry("shape=datastore;whiteSpace=wrap;html=1;",60,60,"","Data Store",null,null,"data store cylinder database"),this.createVertexTemplateEntry("shape=orEllipse;perimeter=ellipsePerimeter;whiteSpace=wrap;html=1;backgroundOutline=1;",80,80,"","Or",null,null,"or circle oval ellipse"),this.createVertexTemplateEntry("shape=sumEllipse;perimeter=ellipsePerimeter;whiteSpace=wrap;html=1;backgroundOutline=1;",80,80,"","Sum",null,null,"sum circle oval ellipse"),this.createVertexTemplateEntry("shape=lineEllipse;perimeter=ellipsePerimeter;whiteSpace=wrap;html=1;backgroundOutline=1;",80,80,"","Ellipse with horizontal divider",null,null,"circle oval ellipse"),this.createVertexTemplateEntry("shape=lineEllipse;line=vertical;perimeter=ellipsePerimeter;whiteSpace=wrap;html=1;backgroundOutline=1;",80,80,"","Ellipse with vertical divider",null,null,"circle oval ellipse"),this.createVertexTemplateEntry("shape=sortShape;perimeter=rhombusPerimeter;whiteSpace=wrap;html=1;",80,80,"","Sort",null,null,"sort"),this.createVertexTemplateEntry("shape=collate;whiteSpace=wrap;html=1;",80,80,"","Collate",null,null,"collate"),this.createVertexTemplateEntry("shape=switch;whiteSpace=wrap;html=1;",60,60,"","Switch",null,null,"switch router"),this.addEntry("process bar",(function(){return t.createVertexTemplateFromData("zZXRaoMwFIafJpcDjbNrb2233rRQ8AkyPdPQaCRJV+3T7yTG2rUVBoOtgpDzn/xJzncCIdGyateKNeVW5iBI9EqipZLS9KOqXYIQhAY8J9GKUBrgT+jbRDZ02aBhCmrzEwPtDZ9MHKBXdkpmoDWKCVN9VptO+Kw+8kqwGqMkK7nIN6yTB7uTNizbD1FSSsVPsjYMC1qFKHxwIZZSSIVxLZ1/nJNar5+oQPMT7IYCrqUta1ENzuqGaeOFTArBGs3f3Vmtoo2Se7ja1h00kSoHK4bBIKUNy3hdoPYU0mF91i9mT8EEL2ocZ3gKa00ayWujLZY4IfHKFonVDLsRGgXuQ90zBmWgneyTk3yT1iArMKrDKUeem9L3ajHrbSXwohxsQd/ggOleKM7ese048J2/fwuim1uQGmhQCW8vQMkacP3GCQgBFMftHEsr7cYYe95CnmKTPMFbYD8CQ++DGQy+/M5X4ku5wHYmdIktfvk9tecpavThqS3m/0YtnqIWPTy1cD77K2wYjo+Ay317I74A",296,100,"Process Bar")})),this.createVertexTemplateEntry("swimlane;",200,200,"Container","Container",null,null,"container swimlane lane pool group"),this.addEntry("list group erd table",(function(){const n=new Ct("List",new vt(0,0,140,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;");return n.vertex=!0,n.insert(t.cloneCell(e,"Item 1")),n.insert(t.cloneCell(e,"Item 2")),n.insert(t.cloneCell(e,"Item 3")),t.createVertexTemplateFromCells([n],n.geometry.width,n.geometry.height,"List")})),this.addEntry("list item entry value group erd table",(function(){return t.createVertexTemplateFromCells([t.cloneCell(e,"List Item")],e.geometry.width,e.geometry.height,"List Item")}))]},ie.prototype.addUmlPalette=function(t){const e=this,n=new Ct("+ field: type",new vt(0,0,100,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;");n.vertex=!0;const i=new Ct("",new vt(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;");i.vertex=!0;const r="uml static class ",o=[this.createVertexTemplateEntry("html=1;",110,50,"Object","Object",null,null,r+"object instance"),this.createVertexTemplateEntry("html=1;",110,50,"«interface»<br><b>Name</b>","Interface",null,null,r+"interface object instance annotated annotation"),this.addEntry(r+"object instance",(function(){const t=new Ct("Classname",new vt(0,0,160,90),"swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;");return t.vertex=!0,t.insert(n.clone()),t.insert(i.clone()),t.insert(e.cloneCell(n,"+ method(type): type")),e.createVertexTemplateFromCells([t],t.geometry.width,t.geometry.height,"Class")})),this.addEntry(r+"section subsection",(function(){const t=new Ct("Classname",new vt(0,0,140,110),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;");return t.vertex=!0,t.insert(n.clone()),t.insert(n.clone()),t.insert(n.clone()),e.createVertexTemplateFromCells([t],t.geometry.width,t.geometry.height,"Class 2")})),this.addEntry(r+"item member method function variable field attribute label",(function(){return e.createVertexTemplateFromCells([e.cloneCell(n,"+ item: attribute")],n.geometry.width,n.geometry.height,"Item 1")})),this.addEntry(r+"item member method function variable field attribute label",(function(){const t=new Ct("item: attribute",new vt(0,0,120,n.geometry.height),"label;fontStyle=0;strokeColor=none;fillColor=none;align=left;verticalAlign=top;overflow=hidden;spacingLeft=28;spacingRight=4;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;imageWidth=16;imageHeight=16;image="+e.gearImage);return t.vertex=!0,e.createVertexTemplateFromCells([t],t.geometry.width,t.geometry.height,"Item 2")})),this.addEntry(r+"divider hline line separator",(function(){return e.createVertexTemplateFromCells([i.clone()],i.geometry.width,i.geometry.height,"Divider")})),this.addEntry(r+"spacer space gap separator",(function(){const t=new Ct("",new vt(0,0,20,14),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=4;spacingRight=4;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;");return t.vertex=!0,e.createVertexTemplateFromCells([t.clone()],t.geometry.width,t.geometry.height,"Spacer")})),this.createVertexTemplateEntry("text;align=center;fontStyle=1;verticalAlign=middle;spacingLeft=3;spacingRight=3;strokeColor=none;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;",80,26,"Title","Title",null,null,r+"title label"),this.addEntry(r+"component",(function(){const t=new Ct("«Annotation»<br/><b>Component</b>",new vt(0,0,180,90),"html=1;dropTarget=0;");t.vertex=!0;const n=new Ct("",new vt(1,0,20,20),"shape=component;jettyWidth=8;jettyHeight=4;");return n.vertex=!0,n.geometry.relative=!0,n.geometry.offset=new T(-27,7),t.insert(n),e.createVertexTemplateFromCells([t],t.geometry.width,t.geometry.height,"Component")})),this.addEntry(r+"component",(function(){const t=new Ct('<p style="margin:0px;margin-top:6px;text-align:center;"><b>Component</b></p><hr/><p style="margin:0px;margin-left:8px;">+ Attribute1: Type<br/>+ Attribute2: Type</p>',new vt(0,0,180,90),"align=left;overflow=fill;html=1;dropTarget=0;");t.vertex=!0;const n=new Ct("",new vt(1,0,20,20),"shape=component;jettyWidth=8;jettyHeight=4;");return n.vertex=!0,n.geometry.relative=!0,n.geometry.offset=new T(-24,4),t.insert(n),e.createVertexTemplateFromCells([t],t.geometry.width,t.geometry.height,"Component with Attributes")})),this.createVertexTemplateEntry("verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;html=1;",180,120,"Block","Block",null,null,r+"block"),this.createVertexTemplateEntry("shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;",100,50,"Module","Module",null,null,r+"module component"),this.createVertexTemplateEntry("shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;",70,50,"package","Package",null,null,r+"package"),this.createVertexTemplateEntry("verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;",160,90,'<p style="margin:0px;margin-top:4px;text-align:center;text-decoration:underline;"><b>Object:Type</b></p><hr/><p style="margin:0px;margin-left:8px;">field1 = value1<br/>field2 = value2<br>field3 = value3</p>',"Object",null,null,r+"object instance"),this.createVertexTemplateEntry("verticalAlign=top;align=left;overflow=fill;html=1;",180,90,'<div style="box-sizing:border-box;width:100%;background:#e4e4e4;padding:2px;">Tablename</div><table style="width:100%;font-size:1em;" cellpadding="2" cellspacing="0"><tr><td>PK</td><td>uniqueId</td></tr><tr><td>FK1</td><td>foreignKey</td></tr><tr><td></td><td>fieldname</td></tr></table>',"Entity",null,null,"er entity table"),this.addEntry(r+"object instance",(function(){const t=new Ct('<p style="margin:0px;margin-top:4px;text-align:center;"><b>Class</b></p><hr size="1"/><div style="height:2px;"></div>',new vt(0,0,140,60),"verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;");return t.vertex=!0,e.createVertexTemplateFromCells([t.clone()],t.geometry.width,t.geometry.height,"Class 3")})),this.addEntry(r+"object instance",(function(){const t=new Ct('<p style="margin:0px;margin-top:4px;text-align:center;"><b>Class</b></p><hr size="1"/><div style="height:2px;"></div><hr size="1"/><div style="height:2px;"></div>',new vt(0,0,140,60),"verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;");return t.vertex=!0,e.createVertexTemplateFromCells([t.clone()],t.geometry.width,t.geometry.height,"Class 4")})),this.addEntry(r+"object instance",(function(){const t=new Ct('<p style="margin:0px;margin-top:4px;text-align:center;"><b>Class</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;">+ field: Type</p><hr size="1"/><p style="margin:0px;margin-left:4px;">+ method(): Type</p>',new vt(0,0,160,90),"verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;");return t.vertex=!0,e.createVertexTemplateFromCells([t.clone()],t.geometry.width,t.geometry.height,"Class 5")})),this.addEntry(r+"object instance",(function(){const t=new Ct('<p style="margin:0px;margin-top:4px;text-align:center;"><i><<Interface>></i><br/><b>Interface</b></p><hr size="1"/><p style="margin:0px;margin-left:4px;">+ field1: Type<br/>+ field2: Type</p><hr size="1"/><p style="margin:0px;margin-left:4px;">+ method1(Type): Type<br/>+ method2(Type, Type): Type</p>',new vt(0,0,190,140),"verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;");return t.vertex=!0,e.createVertexTemplateFromCells([t.clone()],t.geometry.width,t.geometry.height,"Interface 2")})),this.createVertexTemplateEntry("shape=providedRequiredInterface;html=1;verticalLabelPosition=bottom;",20,20,"","Provided/Required Interface",null,null,"uml provided required interface lollipop notation"),this.createVertexTemplateEntry("shape=requiredInterface;html=1;verticalLabelPosition=bottom;",10,20,"","Required Interface",null,null,"uml required interface lollipop notation"),this.addEntry("uml lollipop notation provided required interface",(function(){return e.createVertexTemplateFromData("zVTBrptADPyavVYEkt4b0uQd3pMq5dD2uAUD27dgZJwE8vX1spsQlETtpVWRIjFjex3PmFVJWvc70m31hjlYlXxWSUqI7N/qPgVrVRyZXCUbFceR/FS8fRJdjNGo1QQN/0lB7AuO2h7AM57oeLCBIDw0Obj8SCVrJK6wxEbbV8RWyIWQP4F52Juzq9AHRqEqrm2IQpN/IsKTwAYb8MzWWBuO9B0hL2E2BGsqIQyxvJ9rzApD7QBrYBokhcBqNsf5UbrzsLzmXUu/oJET42jwGat5QYcHyiDkTDLKy03TiRrFfSx08m+FrrQtUkOZvZdbFKThmwMfVhf4fQ43/W3uZriiPPT+KKhjwnf4anKuQv//wsg+NPJ7/9d9Xf7eVykwbeeMOFWGYd/qzEVO8tHP/Suw4a2ujXV/+gXsEdhkOgSC8os44BQt0tggicZHeG1N2QiXibhAV48epRayEDd8MT7Ct06TUaXVWq027tCuhcx5VZjebeeaoDNn/WMcb/p+j0AM/dNr6InLl4Lgzylsk6OCgRWYsuI592gNZh5OhgmcblPv7+1l+ws=",40,10,"Lollipop Notation")})),this.createVertexTemplateEntry("shape=umlBoundary;whiteSpace=wrap;html=1;",100,80,"Boundary Object","Boundary Object",null,null,"uml boundary object"),this.createVertexTemplateEntry("ellipse;shape=umlEntity;whiteSpace=wrap;html=1;",80,80,"Entity Object","Entity Object",null,null,"uml entity object"),this.createVertexTemplateEntry("ellipse;shape=umlControl;whiteSpace=wrap;html=1;",70,80,"Control Object","Control Object",null,null,"uml control object"),this.createVertexTemplateEntry("shape=umlActor;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;html=1;",30,60,"Actor","Actor",!1,null,"uml actor"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;",140,70,"Use Case","Use Case",null,null,"uml use case usecase"),this.addEntry("uml activity state start",(function(){const t=new Ct("",new vt(0,0,30,30),"ellipse;html=1;shape=startState;fillColor=#000000;strokeColor=#ff0000;");t.vertex=!0;const n=new Ct("",new vt(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;");return n.geometry.setTerminalPoint(new T(15,90),!1),n.geometry.relative=!0,n.edge=!0,t.insertEdge(n,!0),e.createVertexTemplateFromCells([t,n],30,90,"Start")})),this.addEntry("uml activity state",(function(){const t=new Ct("Activity",new vt(0,0,120,40),"rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;");t.vertex=!0;const n=new Ct("",new vt(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;");return n.geometry.setTerminalPoint(new T(60,100),!1),n.geometry.relative=!0,n.edge=!0,t.insertEdge(n,!0),e.createVertexTemplateFromCells([t,n],120,100,"Activity")})),this.addEntry("uml activity composite state",(function(){const t=new Ct("Composite State",new vt(0,0,160,60),"swimlane;html=1;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=0;resizeLast=1;container=0;fontColor=#000000;collapsible=0;rounded=1;arcSize=30;strokeColor=#ff0000;fillColor=#ffffc0;swimlaneFillColor=#ffffc0;dropTarget=0;");t.vertex=!0;const n=new Ct("Subtitle",new vt(0,0,200,26),"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;fontColor=#000000;");n.vertex=!0,t.insert(n);const i=new Ct("",new vt(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;");return i.geometry.setTerminalPoint(new T(80,120),!1),i.geometry.relative=!0,i.edge=!0,t.insertEdge(i,!0),e.createVertexTemplateFromCells([t,i],160,120,"Composite State")})),this.addEntry("uml activity condition",(function(){const t=new Ct("Condition",new vt(0,0,80,40),"rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;");t.vertex=!0;const n=new Ct("no",new vt(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;");n.geometry.setTerminalPoint(new T(180,20),!1),n.geometry.relative=!0,n.geometry.x=-1,n.edge=!0,t.insertEdge(n,!0);const i=new Ct("yes",new vt(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;");return i.geometry.setTerminalPoint(new T(40,100),!1),i.geometry.relative=!0,i.geometry.x=-1,i.edge=!0,t.insertEdge(i,!0),e.createVertexTemplateFromCells([t,n,i],180,100,"Condition")})),this.addEntry("uml activity fork join",(function(){const t=new Ct("",new vt(0,0,200,10),"shape=line;html=1;strokeWidth=6;strokeColor=#ff0000;");t.vertex=!0;const n=new Ct("",new vt(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;");return n.geometry.setTerminalPoint(new T(100,80),!1),n.geometry.relative=!0,n.edge=!0,t.insertEdge(n,!0),e.createVertexTemplateFromCells([t,n],200,80,"Fork/Join")})),this.createVertexTemplateEntry("ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#ff0000;",30,30,"","End",null,null,"uml activity state end"),this.createVertexTemplateEntry("shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;",100,300,":Object","Lifeline",null,null,"uml sequence participant lifeline"),this.createVertexTemplateEntry("shape=umlLifeline;participant=umlActor;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;verticalAlign=top;spacingTop=36;labelBackgroundColor=#ffffff;outlineConnect=0;",20,300,"","Actor Lifeline",null,null,"uml sequence participant lifeline actor"),this.createVertexTemplateEntry("shape=umlLifeline;participant=umlBoundary;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;verticalAlign=top;spacingTop=36;labelBackgroundColor=#ffffff;outlineConnect=0;",50,300,"","Boundary Lifeline",null,null,"uml sequence participant lifeline boundary"),this.createVertexTemplateEntry("shape=umlLifeline;participant=umlEntity;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;verticalAlign=top;spacingTop=36;labelBackgroundColor=#ffffff;outlineConnect=0;",40,300,"","Entity Lifeline",null,null,"uml sequence participant lifeline entity"),this.createVertexTemplateEntry("shape=umlLifeline;participant=umlControl;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;verticalAlign=top;spacingTop=36;labelBackgroundColor=#ffffff;outlineConnect=0;",40,300,"","Control Lifeline",null,null,"uml sequence participant lifeline control"),this.createVertexTemplateEntry("shape=umlFrame;whiteSpace=wrap;html=1;",300,200,"frame","Frame",null,null,"uml sequence frame"),this.createVertexTemplateEntry("shape=umlDestroy;whiteSpace=wrap;html=1;strokeWidth=3;",30,30,"","Destruction",null,null,"uml sequence destruction destroy"),this.createVertexTemplateEntry("shape=note;whiteSpace=wrap;html=1;size=14;verticalAlign=top;align=left;spacingTop=-6;",100,70,"Note","Note",null,null,"uml note"),this.addEntry("uml sequence invoke invocation call activation",(function(){const t=new Ct("",new vt(0,0,10,80),"html=1;points=[];perimeter=orthogonalPerimeter;");t.vertex=!0;const n=new Ct("dispatch",new vt(0,0,0,0),"html=1;verticalAlign=bottom;startArrow=oval;endArrow=block;startSize=8;");return n.geometry.setTerminalPoint(new T(-60,0),!0),n.geometry.relative=!0,n.edge=!0,t.insertEdge(n,!1),e.createVertexTemplateFromCells([t,n],10,80,"Found Message")})),this.addEntry("uml sequence invoke call delegation synchronous invocation activation",(function(){const t=new Ct("",new vt(0,0,10,80),"html=1;points=[];perimeter=orthogonalPerimeter;");t.vertex=!0;const n=new Ct("dispatch",new vt(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=block;entryX=0;entryY=0;");n.geometry.setTerminalPoint(new T(-70,0),!0),n.geometry.relative=!0,n.edge=!0,t.insertEdge(n,!1);const i=new Ct("return",new vt(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;exitX=0;exitY=0.95;");return i.geometry.setTerminalPoint(new T(-70,76),!1),i.geometry.relative=!0,i.edge=!0,t.insertEdge(i,!0),e.createVertexTemplateFromCells([t,n,i],10,80,"Synchronous Invocation")})),this.addEntry("uml sequence self call recursion delegation activation",(function(){const t=new Ct("",new vt(0,20,10,40),"html=1;points=[];perimeter=orthogonalPerimeter;");t.vertex=!0;const n=new Ct("self call",new vt(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;align=left;spacingLeft=2;endArrow=block;rounded=0;entryX=1;entryY=0;");return n.geometry.setTerminalPoint(new T(5,0),!0),n.geometry.points=[new T(30,0)],n.geometry.relative=!0,n.edge=!0,t.insertEdge(n,!1),e.createVertexTemplateFromCells([t,n],10,60,"Self Call")})),this.addEntry("uml sequence invoke call delegation callback activation",(function(){return e.createVertexTemplateFromData("xZRNT8MwDIZ/Ta6oaymD47rBTkiTuMAxW6wmIm0q19s6fj1OE3V0Y2iCA4dK8euP2I+riGxedUuUjX52CqzIHkU2R+conKpuDtaKNDFKZAuRpgl/In264J303qSRCDVdk5CGhJ20WwhKEFo62ChoqritxURkReNMTa2X80LkC68AmgoIkEWHpF3pamlXR7WIFwASdBeb7KXY4RIc5+KBQ/ZGkY4RYY5Egyl1zLqLmmyDXQ6Zx4n5EIf+HkB2BmAjrV3LzftPIPw4hgNn1pQ1a2tH5Cp2QK1miG7vNeu4iJe4pdeY2BtvbCQDGlAljMCQxBJotJ8rWCFYSWY3LvUdmZi68rvkkLiU6QnL1m1xAzHoBOdw61WEb88II9AW67/ydQ2wq1Cy1aAGvOrFfPh6997qDA3g+dxzv3nIL6MPU/8T+kMw8+m4QPgdfrEJNo8PSQj/+s58Ag==",10,60,"Callback")})),this.createVertexTemplateEntry("html=1;points=[];perimeter=orthogonalPerimeter;",10,80,"","Activation",null,null,"uml sequence activation"),this.createEdgeTemplateEntry("html=1;verticalAlign=bottom;startArrow=oval;startFill=1;endArrow=block;startSize=8;",60,0,"dispatch","Found Message 1",null,"uml sequence message call invoke dispatch"),this.createEdgeTemplateEntry("html=1;verticalAlign=bottom;startArrow=circle;startFill=1;endArrow=open;startSize=6;endSize=8;",80,0,"dispatch","Found Message 2",null,"uml sequence message call invoke dispatch"),this.createEdgeTemplateEntry("html=1;verticalAlign=bottom;endArrow=block;",80,0,"dispatch","Message",null,"uml sequence message call invoke dispatch"),this.addEntry("uml sequence return message",(function(){const t=new Ct("return",new vt(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;");return t.geometry.setTerminalPoint(new T(80,0),!0),t.geometry.setTerminalPoint(new T(0,0),!1),t.geometry.relative=!0,t.edge=!0,e.createEdgeTemplateFromCells([t],80,0,"Return")})),this.addEntry("uml relation",(function(){const t=new Ct("name",new vt(0,0,0,0),"endArrow=block;endFill=1;html=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=top;");t.geometry.setTerminalPoint(new T(0,0),!0),t.geometry.setTerminalPoint(new T(160,0),!1),t.geometry.relative=!0,t.geometry.x=-1,t.edge=!0;const n=new Ct("1",new vt(-1,0,0,0),"resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;");return n.geometry.relative=!0,n.setConnectable(!1),n.vertex=!0,t.insert(n),e.createEdgeTemplateFromCells([t],160,0,"Relation 1")})),this.addEntry("uml association",(function(){const t=new Ct("",new vt(0,0,0,0),"endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;");t.geometry.setTerminalPoint(new T(0,0),!0),t.geometry.setTerminalPoint(new T(160,0),!1),t.geometry.relative=!0,t.edge=!0;const n=new Ct("parent",new vt(-1,0,0,0),"resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;");n.geometry.relative=!0,n.setConnectable(!1),n.vertex=!0,t.insert(n);const i=new Ct("child",new vt(1,0,0,0),"resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;");return i.geometry.relative=!0,i.setConnectable(!1),i.vertex=!0,t.insert(i),e.createEdgeTemplateFromCells([t],160,0,"Association 1")})),this.addEntry("uml aggregation",(function(){const t=new Ct("1",new vt(0,0,0,0),"endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;");return t.geometry.setTerminalPoint(new T(0,0),!0),t.geometry.setTerminalPoint(new T(160,0),!1),t.geometry.relative=!0,t.geometry.x=-1,t.geometry.y=3,t.edge=!0,e.createEdgeTemplateFromCells([t],160,0,"Aggregation 1")})),this.addEntry("uml composition",(function(){const t=new Ct("1",new vt(0,0,0,0),"endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;");return t.geometry.setTerminalPoint(new T(0,0),!0),t.geometry.setTerminalPoint(new T(160,0),!1),t.geometry.relative=!0,t.geometry.x=-1,t.geometry.y=3,t.edge=!0,e.createEdgeTemplateFromCells([t],160,0,"Composition 1")})),this.addEntry("uml relation",(function(){const t=new Ct("Relation",new vt(0,0,0,0),"endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;");t.geometry.setTerminalPoint(new T(0,0),!0),t.geometry.setTerminalPoint(new T(160,0),!1),t.geometry.relative=!0,t.edge=!0;const n=new Ct("0..n",new vt(-1,0,0,0),"resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;");n.geometry.relative=!0,n.setConnectable(!1),n.vertex=!0,t.insert(n);const i=new Ct("1",new vt(1,0,0,0),"resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=#ffffff;fontSize=10;");return i.geometry.relative=!0,i.setConnectable(!1),i.vertex=!0,t.insert(i),e.createEdgeTemplateFromCells([t],160,0,"Relation 2")})),this.createEdgeTemplateEntry("endArrow=open;endSize=12;dashed=1;html=1;",160,0,"Use","Dependency",null,"uml dependency use"),this.createEdgeTemplateEntry("endArrow=block;endSize=16;endFill=0;html=1;",160,0,"Extends","Generalization",null,"uml generalization extend"),this.createEdgeTemplateEntry("endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;",160,0,"","Association 2",null,"uml association"),this.createEdgeTemplateEntry("endArrow=open;startArrow=circlePlus;endFill=0;startFill=0;endSize=8;html=1;",160,0,"","Inner Class",null,"uml inner class"),this.createEdgeTemplateEntry("endArrow=open;startArrow=cross;endFill=0;startFill=0;endSize=8;startSize=10;html=1;",160,0,"","Terminate",null,"uml terminate"),this.createEdgeTemplateEntry("endArrow=block;dashed=1;endFill=0;endSize=12;html=1;",160,0,"","Implementation",null,"uml realization implementation"),this.createEdgeTemplateEntry("endArrow=diamondThin;endFill=0;endSize=24;html=1;",160,0,"","Aggregation 2",null,"uml aggregation"),this.createEdgeTemplateEntry("endArrow=diamondThin;endFill=1;endSize=24;html=1;",160,0,"","Composition 2",null,"uml composition"),this.createEdgeTemplateEntry("endArrow=open;endFill=1;endSize=12;html=1;",160,0,"","Association 3",null,"uml association")];this.addPaletteFunctions("uml",f.get("uml"),t||!1,o)},ie.prototype.addBpmnPalette=function(){const t=this,e=[this.createVertexTemplateEntry("shape=ext;rounded=1;html=1;whiteSpace=wrap;",120,80,"Task","Process",null,null,"bpmn task process"),this.createVertexTemplateEntry("shape=ext;rounded=1;html=1;whiteSpace=wrap;double=1;",120,80,"Transaction","Transaction",null,null,"bpmn transaction"),this.createVertexTemplateEntry("shape=ext;rounded=1;html=1;whiteSpace=wrap;dashed=1;dashPattern=1 4;",120,80,"Event\nSub-Process","Event Sub-Process",null,null,"bpmn event subprocess sub process sub-process"),this.createVertexTemplateEntry("shape=ext;rounded=1;html=1;whiteSpace=wrap;strokeWidth=3;",120,80,"Call Activity","Call Activity",null,null,"bpmn call activity"),this.addEntry("bpmn subprocess sub process sub-process",(function(){const e=new Ct("Sub-Process",new vt(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;");e.vertex=!0;const n=new Ct("",new vt(.5,1,14,14),"html=1;shape=plus;outlineConnect=0;");return n.vertex=!0,n.geometry.relative=!0,n.geometry.offset=new T(-7,-14),e.insert(n),t.createVertexTemplateFromCells([e],e.geometry.width,e.geometry.height,"Sub-Process")})),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","loop","subprocess sub process sub-process looped").join(" "),(function(){const e=new Ct("Looped\nSub-Process",new vt(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;");e.vertex=!0;const n=new Ct("",new vt(.5,1,14,14),"html=1;shape=mxgraph.bpmn.loop;outlineConnect=0;");n.vertex=!0,n.geometry.relative=!0,n.geometry.offset=new T(-15,-14),e.insert(n);const i=new Ct("",new vt(.5,1,14,14),"html=1;shape=plus;");return i.vertex=!0,i.geometry.relative=!0,i.geometry.offset=new T(1,-14),e.insert(i),t.createVertexTemplateFromCells([e],e.geometry.width,e.geometry.height,"Looped Sub-Process")})),this.addEntry("bpmn receive task",(function(){const e=new Ct("Receive",new vt(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;");e.vertex=!0;const n=new Ct("",new vt(0,0,20,14),"html=1;shape=message;outlineConnect=0;");return n.vertex=!0,n.geometry.relative=!0,n.geometry.offset=new T(7,7),e.insert(n),t.createVertexTemplateFromCells([e],e.geometry.width,e.geometry.height,"Receive Task")})),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","user_task").join(" "),(function(){const e=new Ct("User",new vt(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;");e.vertex=!0;const n=new Ct("",new vt(0,0,14,14),"html=1;shape=mxgraph.bpmn.user_task;outlineConnect=0;");n.vertex=!0,n.geometry.relative=!0,n.geometry.offset=new T(7,7),e.insert(n);const i=new Ct("",new vt(.5,1,14,14),"html=1;shape=plus;outlineConnect=0;");return i.vertex=!0,i.geometry.relative=!0,i.geometry.offset=new T(-7,-14),e.insert(i),t.createVertexTemplateFromCells([e],e.geometry.width,e.geometry.height,"User Task")})),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","timer_start","attached").join(" "),(function(){const e=new Ct("Process",new vt(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;");e.vertex=!0;const n=new Ct("",new vt(1,1,30,30),"shape=mxgraph.bpmn.timer_start;perimeter=ellipsePerimeter;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;outlineConnect=0;");return n.vertex=!0,n.geometry.relative=!0,n.geometry.offset=new T(-40,-15),e.insert(n),t.createVertexTemplateFromCells([e],120,95,"Attached Timer Event 1")})),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","timer_start","attached").join(" "),(function(){const e=new Ct("Process",new vt(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;");e.vertex=!0;const n=new Ct("",new vt(1,0,30,30),"shape=mxgraph.bpmn.timer_start;perimeter=ellipsePerimeter;html=1;labelPosition=right;labelBackgroundColor=#ffffff;align=left;outlineConnect=0;");return n.vertex=!0,n.geometry.relative=!0,n.geometry.offset=new T(-15,10),e.insert(n),t.createVertexTemplateFromCells([e],135,80,"Attached Timer Event 2")})),this.createVertexTemplateEntry("swimlane;html=1;horizontal=0;startSize=20;",320,240,"Pool","Pool",null,null,"bpmn pool"),this.createVertexTemplateEntry("swimlane;html=1;horizontal=0;swimlaneLine=0;",300,120,"Lane","Lane",null,null,"bpmn lane"),this.createVertexTemplateEntry("shape=hexagon;html=1;whiteSpace=wrap;perimeter=hexagonPerimeter;rounded=0;",60,50,"","Conversation",null,null,"bpmn conversation"),this.createVertexTemplateEntry("shape=hexagon;html=1;whiteSpace=wrap;perimeter=hexagonPerimeter;strokeWidth=4;rounded=0;",60,50,"","Call Conversation",null,null,"bpmn call conversation"),this.addEntry("bpmn subconversation sub conversation sub-conversation",(function(){const e=new Ct("",new vt(0,0,60,50),"shape=hexagon;whiteSpace=wrap;html=1;perimeter=hexagonPerimeter;rounded=0;dropTarget=0;");e.vertex=!0;const n=new Ct("",new vt(.5,1,14,14),"html=1;shape=plus;");return n.vertex=!0,n.geometry.relative=!0,n.geometry.offset=new T(-7,-14),e.insert(n),t.createVertexTemplateFromCells([e],e.geometry.width,e.geometry.height,"Sub-Conversation")})),this.addEntry("bpmn data object",(function(){const e=new Ct("",new vt(0,0,40,60),"shape=note;whiteSpace=wrap;size=16;html=1;dropTarget=0;");e.vertex=!0;const n=new Ct("",new vt(0,0,14,14),"html=1;shape=singleArrow;arrowWidth=0.4;arrowSize=0.4;outlineConnect=0;");n.vertex=!0,n.geometry.relative=!0,n.geometry.offset=new T(2,2),e.insert(n);const i=new Ct("",new vt(.5,1,14,14),"html=1;whiteSpace=wrap;shape=parallelMarker;outlineConnect=0;");return i.vertex=!0,i.geometry.relative=!0,i.geometry.offset=new T(-7,-14),e.insert(i),t.createVertexTemplateFromCells([e],e.geometry.width,e.geometry.height,"Data Object")})),this.createVertexTemplateEntry("shape=datastore;whiteSpace=wrap;html=1;",60,60,"","Data Store",null,null,"bpmn data store"),this.createVertexTemplateEntry("shape=plus;html=1;outlineConnect=0;",14,14,"","Sub-Process Marker",null,null,"bpmn subprocess sub process sub-process marker"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.loop;html=1;outlineConnect=0;",14,14,"","Loop Marker",null,null,"bpmn loop marker"),this.createVertexTemplateEntry("shape=parallelMarker;html=1;outlineConnect=0;",14,14,"","Parallel MI Marker",null,null,"bpmn parallel mi marker"),this.createVertexTemplateEntry("shape=parallelMarker;direction=south;html=1;outlineConnect=0;",14,14,"","Sequential MI Marker",null,null,"bpmn sequential mi marker"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.ad_hoc;fillColor=#000000;html=1;outlineConnect=0;",14,14,"","Ad Hoc Marker",null,null,"bpmn ad hoc marker"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.compensation;html=1;outlineConnect=0;",14,14,"","Compensation Marker",null,null,"bpmn compensation marker"),this.createVertexTemplateEntry("shape=message;whiteSpace=wrap;html=1;outlineConnect=0;fillColor=#000000;strokeColor=#ffffff;strokeWidth=2;",40,30,"","Send Task",null,null,"bpmn send task"),this.createVertexTemplateEntry("shape=message;whiteSpace=wrap;html=1;outlineConnect=0;",40,30,"","Receive Task",null,null,"bpmn receive task"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.user_task;html=1;outlineConnect=0;",14,14,"","User Task",null,null,this.getTagsForStencil("mxgraph.bpmn","user_task").join(" ")),this.createVertexTemplateEntry("shape=mxgraph.bpmn.manual_task;html=1;outlineConnect=0;",14,14,"","Manual Task",null,null,this.getTagsForStencil("mxgraph.bpmn","user_task").join(" ")),this.createVertexTemplateEntry("shape=mxgraph.bpmn.business_rule_task;html=1;outlineConnect=0;",14,14,"","Business Rule Task",null,null,this.getTagsForStencil("mxgraph.bpmn","business_rule_task").join(" ")),this.createVertexTemplateEntry("shape=mxgraph.bpmn.service_task;html=1;outlineConnect=0;",14,14,"","Service Task",null,null,this.getTagsForStencil("mxgraph.bpmn","service_task").join(" ")),this.createVertexTemplateEntry("shape=mxgraph.bpmn.script_task;html=1;outlineConnect=0;",14,14,"","Script Task",null,null,this.getTagsForStencil("mxgraph.bpmn","script_task").join(" ")),this.createVertexTemplateEntry("html=1;shape=mxgraph.flowchart.annotation_2;align=left;labelPosition=right;",50,100,"","Annotation",null,null,this.getTagsForStencil("bpmn","annotation_1","bpmn business process model ").join(" ")),this.addDataEntry("container swimlane pool horizontal",480,380,"Horizontal Pool 1","zZRLbsIwEIZP4709TlHXhJYNSEicwCIjbNWJkWNKwumZxA6IlrRUaisWlmb+eX8LM5mXzdyrnV66Ai2TL0zm3rkQrbLJ0VoG3BRMzhgAp8fgdSQq+ijfKY9VuKcAYsG7snuMyso5G8U6tDaJ9cGUVlXkTXUoacuZIHOjjS0WqnX7blYd1OZt8KYea3PE1bCI+CAtVUMq7/o5b46uCmroSn18WFMm+XCdse5GpLq0OPqAzejxvZQun6MrMfiWUg6mCDpmZM8RENdotjqVyUFUdRS259oLSzISztto5Se0i44gcHEn3i9A/IQB3GbQpmi69DskAn4BSTaGBB4Jicj+k8nTGBP5SExg8odMyL38eH3s6kM8AQ=="),this.addDataEntry("container swimlane pool horizontal",480,360,"Horizontal Pool 2","zZTBbsIwDIafJvfU6dDOlI0LSEg8QUQtEi1tUBJGy9PPbcJQWTsxaZs4VLJ//07sT1WYKKpm6eRBrW2JhokXJgpnbYhR1RRoDAOuSyYWDIDTx+B1opr1VX6QDutwTwPEhndpjhiVjbUmij60Jon+pCsja8rmKlQ05SKjcKe0KVeytcfuLh/k7u2SzR16fcbNZZDsRlrLhlTenWedPts6SJMEOseFLTkph6Fj212RbGlwdAGbyeV7KW2+RFthcC1ZTroMKjry5wiIK9R7ldrELInSR2H/2XtlSUHCOY5WfEG76ggCz+7E+w2InzCAcQapIf0fAySzESQZ/AKSfAoJPCKS9mbzf0H0NIVIPDAiyP8QEaXX97CvDZ7LDw=="),this.createVertexTemplateEntry("swimlane;startSize=20;horizontal=0;",320,120,"Lane","Horizontal Swimlane",null,null,"swimlane lane pool"),this.addDataEntry("container swimlane pool horizontal",360,480,"Vertical Pool 1","xZRBbsIwEEVP4709ThFrQssGJKSewCIjbNXGyDEl4fSdxKa0NJFQVTULSzP/e+T5b2EmS9esgjrqja/QMvnMZBm8j6lyTYnWMuCmYnLJADgdBi8jruhdflQBD/GRAUgD78qeMClb720S69jaLNZn46w6ULfQ0dGWS0HlThtbrVXrT91bdVS7t2u3CFibC26vi4g7aaMaUjmpNBbiKxnUQyfkjTBEbEZT9VKOtELvMIaWrpxNFXW6IWcpOddo9jqPFfMsqjoJ+8/ZGyQqMqdhZvIHs3WHBrh4kNvvIsNw5Da7OdgXAgKGCMz+gEAxRgCmINDcxZ2CyNMYETkhESj+jwi1t1+r9759ah8="),this.addDataEntry("container swimlane pool vertical",380,480,"Vertical Pool 2","xZTPbsIwDMafJvf86dDOlI0LSEg8QUQtEi1pUBJGy9PPbdJ1G1TqhXGoZH/219g/RSGitM3ay5PaugoMEW9ElN65mCLblGAM4VRXRKwI5xQ/wt8nqqyv0pP0UMc5Bp4Mn9KcISk750wSQ2xNFsNFWyNrzJYqWpxyxTA8KG2qjWzduTsrRHn4GLKlh6CvsBsGYX+krWxQpaiizcc9FjDnnaCc11dXR2lyxyjsuyPy3/Lg4CM0k8v3Ut58Dc5C9C22XHQVVeoQrwkQVaCPKtuKQZQhCcdv78gSg4zzPlpxg3bTEeSUzcR7Q2bWyvz+ytmQr8NPAow/ikAxRYA/kQAr/hPByxQC8cxLsHggAkzH56uv/XrdvgA="),this.createVertexTemplateEntry("swimlane;startSize=20;",120,320,"Lane","Vertical Swimlane",null,null,"swimlane lane pool"),this.createVertexTemplateEntry("rounded=1;arcSize=10;dashed=1;strokeColor=#000000;fillColor=none;gradientColor=none;dashPattern=8 3 1 3;strokeWidth=2;",200,200,"","Group",null,null,this.getTagsForStencil("bpmn","group","bpmn business process model ").join(" ")),this.createEdgeTemplateEntry("endArrow=block;endFill=1;endSize=6;html=1;",100,0,"","Sequence Flow",null,"bpmn sequence flow"),this.createEdgeTemplateEntry("startArrow=dash;startSize=8;endArrow=block;endFill=1;endSize=6;html=1;",100,0,"","Default Flow",null,"bpmn default flow"),this.createEdgeTemplateEntry("startArrow=diamondThin;startFill=0;startSize=14;endArrow=block;endFill=1;endSize=6;html=1;",100,0,"","Conditional Flow",null,"bpmn conditional flow"),this.createEdgeTemplateEntry("startArrow=oval;startFill=0;startSize=7;endArrow=block;endFill=0;endSize=10;dashed=1;html=1;",100,0,"","Message Flow 1",null,"bpmn message flow"),this.addEntry("bpmn message flow",(function(){const e=new Ct("",new vt(0,0,0,0),"startArrow=oval;startFill=0;startSize=7;endArrow=block;endFill=0;endSize=10;dashed=1;html=1;");e.geometry.setTerminalPoint(new T(0,0),!0),e.geometry.setTerminalPoint(new T(100,0),!1),e.geometry.relative=!0,e.edge=!0;const n=new Ct("",new vt(0,0,20,14),"shape=message;html=1;outlineConnect=0;");return n.geometry.relative=!0,n.vertex=!0,n.geometry.offset=new T(-10,-7),e.insert(n),t.createEdgeTemplateFromCells([e],100,0,"Message Flow 2")})),this.createEdgeTemplateEntry("shape=link;html=1;",100,0,"","Link",null,"bpmn link")];this.addPaletteFunctions("bpmn","BPMN "+f.get("general"),!1,e)},ie.prototype.createTitle=function(t){const e=document.createElement("a");return e.setAttribute("title",f.get("sidebarTooltip")),e.className="geTitle",v.write(e,t),e},ie.prototype.createThumb=function(t,e,n,i,r,o,s){this.graph.labelsVisible=null==o||o;const l=E.NO_FO;E.NO_FO=ue.prototype.originalNoForeignObject,this.graph.view.scaleAndTranslate(1,0,0),this.graph.addCells(t);const a=this.graph.getGraphBounds(),h=Math.floor(100*Math.min((e-2*this.thumbBorder)/a.width,(n-2*this.thumbBorder)/a.height))/100;this.graph.view.scaleAndTranslate(h,Math.floor((e-a.width*h)/2/h-a.x),Math.floor((n-a.height*h)/2/h-a.y));let u=null;if(this.graph.dialect!=g.DIALECT_SVG||E.NO_FO||null==this.graph.view.getCanvas().ownerSVGElement?(u=this.graph.container.cloneNode(!1),u.innerHTML=this.graph.container.innerHTML,(E.IS_QUIRKS||8==document.documentMode)&&(u.firstChild.style.overflow="visible")):u=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0),this.graph.getModel().clear(),E.NO_FO=l,E.IS_IE6&&(i.style.backgroundImage="url("+this.editorUi.editor.transparentImage+")"),u.style.position="relative",u.style.overflow="hidden",u.style.left=this.thumbBorder+"px",u.style.top=this.thumbBorder+"px",u.style.width=e+"px",u.style.height=n+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",i.appendChild(u),this.sidebarTitles&&null!=r&&0!=s){const t=E.IS_QUIRKS?2*this.thumbPadding+2:0;i.style.height=this.thumbHeight+t+this.sidebarTitleSize+8+"px";const e=document.createElement("div");e.style.fontSize=this.sidebarTitleSize+"px",e.style.color="#303030",e.style.textAlign="center",e.style.whiteSpace="nowrap",E.IS_IE&&(e.style.height=this.sidebarTitleSize+12+"px"),e.style.paddingTop="4px",v.write(e,r),i.appendChild(e)}return a},ie.prototype.createItem=function(t,e,n,i,r,o,s){const l=document.createElement("a");l.className="geItem",l.style.overflow="hidden";const a=E.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;l.style.width=this.thumbWidth+a+"px",l.style.height=this.thumbHeight+a+"px",l.style.padding=this.thumbPadding+"px",C.addListener(l,"click",(function(t){C.consume(t)})),this.createThumb(t,this.thumbWidth,this.thumbHeight,l,e,n,i,r,o);const h=new w(0,0,r,o);if(t.length>1||t[0].vertex){var u=this.createDragSource(l,this.createDropHandler(t,!0,s,h),this.createDragPreview(r,o),t,h);this.addClickHandler(l,u,t),u.isGuidesEnabled=v.bind(this,(function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled}))}else null!=t[0]&&t[0].edge&&(u=this.createDragSource(l,this.createDropHandler(t,!1,s,h),this.createDragPreview(r,o),t,h),this.addClickHandler(l,u,t));return E.IS_IOS||C.addGestureListeners(l,null,v.bind(this,(function(i){C.isMouseEvent(i)&&this.showTooltip(l,t,h.width,h.height,e,n)}))),l},ie.prototype.updateShapes=function(t,e){const n=this.editorUi.editor.graph,i=n.getCellStyle(t),r=[];n.model.beginUpdate();try{const s=n.getModel().getStyle(t),l=["shadow","dashed","dashPattern","fontFamily","fontSize","fontColor","align","startFill","startSize","endFill","endSize","strokeColor","strokeWidth","fillColor","gradientColor","html","part","noEdgeStyle","edgeStyle","elbow","childLayout","recursiveResize","container","collapsible","connectable"];for(let a=0;a<e.length;a++){const h=e[a];if(n.getModel().isVertex(h)==n.getModel().isVertex(t)||n.getModel().isEdge(h)==n.getModel().isEdge(t)){const t=n.getCurrentCellStyle(e[a]);if(n.getModel().setStyle(h,s),"1"==v.getValue(t,"composite","0"))for(var o=n.model.getChildCount(h);o>=0;o--)n.model.remove(n.model.getChildAt(h,o));for("umlLifeline"==t[g.STYLE_SHAPE]&&"umlLifeline"!=i[g.STYLE_SHAPE]&&(n.setCellStyles(g.STYLE_SHAPE,"umlLifeline",[h]),n.setCellStyles("participant",i[g.STYLE_SHAPE],[h])),o=0;o<l.length;o++){const e=t[l[o]];null!=e&&n.setCellStyles(l[o],e,[h])}r.push(h)}}}finally{n.model.endUpdate()}return r},ie.prototype.createDropHandler=function(t,e,n,i){return n=null==n||n,v.bind(this,(function(r,o,s,l,a,h){let u=h?null:C.isTouchEvent(o)||C.isPenEvent(o)?document.elementFromPoint(C.getClientX(o),C.getClientY(o)):C.getSource(o);for(;null!=u&&u!=this.container;)u=u.parentNode;if(null==u&&r.isEnabled()){if((t=r.getImportableCells(t)).length>0){r.stopEditing();const h=null!=s&&!C.isAltDown(o)&&r.isValidDropTarget(s,t,o);let u=null;if(null==s||h||(s=null),!r.isCellLocked(s||r.getDefaultParent())){r.model.beginUpdate();try{if(l=Math.round(l),a=Math.round(a),e&&r.isSplitTarget(s,t,o)){var d=r.view.scale,c=(l+(g=r.view.translate).x)*d,p=(a+g.y)*d;const e=r.cloneCells(t);r.splitEdge(s,e,null,l-i.width/2,a-i.height/2,c,p),u=e}else t.length>0&&(u=r.importCells(t,l,a,s));if(null!=r.layoutManager){const t=r.layoutManager.getLayout(s);if(null!=t){var g;d=r.view.scale,c=(l+(g=r.view.translate).x)*d,p=(a+g.y)*d;for(let e=0;e<u.length;e++)t.moveCell(u[e],c,p)}}!n||null!=o&&C.isShiftDown(o)||r.fireEvent(new A("cellsInserted","cells",u))}catch(t){this.editorUi.handleError(t)}finally{r.model.endUpdate()}null!=u&&u.length>0&&(r.scrollCellToVisible(u[0]),r.setSelectionCells(u)),r.editAfterInsert&&null!=o&&C.isMouseEvent(o)&&null!=u&&1==u.length&&window.setTimeout((function(){r.startEditing(u[0])}),0)}}C.consume(o)}}))},ie.prototype.createDragPreview=function(t,e){const n=document.createElement("div");return n.style.border=this.dragPreviewBorder,n.style.width=t+"px",n.style.height=e+"px",n},ie.prototype.dropAndConnect=function(t,e,n,i,r){const o=this.getDropAndConnectGeometry(t,e[i],n,e);var s=[];if(null!=o){const a=this.editorUi.editor.graph;let h=null;a.model.beginUpdate();try{const u=a.getCellGeometry(t);let d=a.getCellGeometry(e[i]);const c=a.model.getParent(t);let p=!0;if(null!=a.layoutManager){const t=a.layoutManager.getLayout(c);if(null!=t&&t.constructor==xt&&(p=!1,null!=(s=a.view.getState(c)))){var l=new T(s.x/a.view.scale-a.view.translate.x,s.y/a.view.scale-a.view.translate.y);o.x+=l.x,o.y+=l.y;const t=o.getTerminalPoint(!1);null!=t&&(t.x+=l.x,t.y+=l.y)}}let m=d.x,x=d.y;a.model.isEdge(e[i])&&(m=0,x=0);const y=a.model.isEdge(t)||null!=u&&!u.relative&&p;if(s=e=a.importCells(e,o.x-(y?m:0),o.y-(y?x:0),y?c:null),a.model.isEdge(t))a.model.setTerminal(t,e[i],n==g.DIRECTION_NORTH);else if(a.model.isEdge(e[i])){a.model.setTerminal(e[i],t,!0);const n=a.getCellGeometry(e[i]);if(n.points=null,null!=n.getTerminalPoint(!1))n.setTerminalPoint(o.getTerminalPoint(!1),!1);else if(y&&a.model.isVertex(c)){const t=a.view.getState(c);l=t.cell!=a.view.currentRoot?new T(t.x/a.view.scale-a.view.translate.x,t.y/a.view.scale-a.view.translate.y):new T(0,0),a.cellsMoved(e,l.x,l.y,null,null,!0)}}else d=a.getCellGeometry(e[i]),m=o.x-Math.round(d.x),x=o.y-Math.round(d.y),o.x=Math.round(d.x),o.y=Math.round(d.y),a.model.setGeometry(e[i],o),a.cellsMoved(e,m,x,null,null,!0),s=e.slice(),h=1==s.length?s[0]:null,e.push(a.insertEdge(null,null,"",t,e[i],a.createCurrentEdgeStyle()));null!=r&&C.isShiftDown(r)||a.fireEvent(new A("cellsInserted","cells",e))}catch(t){this.editorUi.handleError(t)}finally{a.model.endUpdate()}a.editAfterInsert&&null!=r&&C.isMouseEvent(r)&&null!=h&&window.setTimeout((function(){a.startEditing(h)}),0)}return s},ie.prototype.getDropAndConnectGeometry=function(t,e,n,i){const r=this.editorUi.editor.graph,o=r.view,s=i.length>1;let l=r.getCellGeometry(t),a=r.getCellGeometry(e);if(null!=l&&null!=a)if(a=a.clone(),r.model.isEdge(t)){const e=(d=r.view.getState(t)).absolutePoints;var h=e[0],u=e[e.length-1];n==g.DIRECTION_NORTH?(a.x=h.x/o.scale-o.translate.x-a.width/2,a.y=h.y/o.scale-o.translate.y-a.height/2):(a.x=u.x/o.scale-o.translate.x-a.width/2,a.y=u.y/o.scale-o.translate.y-a.height/2)}else{if(l.relative){var d=r.view.getState(t);l=l.clone(),l.x=(d.x-o.translate.x)/o.scale,l.y=(d.y-o.translate.y)/o.scale}let i=r.defaultEdgeLength;if(r.model.isEdge(e)&&null!=a.getTerminalPoint(!0)&&null!=a.getTerminalPoint(!1)){h=a.getTerminalPoint(!0);const t=(u=a.getTerminalPoint(!1)).x-h.x,e=u.y-h.y;i=Math.sqrt(t*t+e*e),a.x=l.getCenterX(),a.y=l.getCenterY(),a.width=1,a.height=1,n==g.DIRECTION_NORTH?(a.height=i,a.y=l.y-i,a.setTerminalPoint(new T(a.x,a.y),!1)):n==g.DIRECTION_EAST?(a.width=i,a.x=l.x+l.width,a.setTerminalPoint(new T(a.x+a.width,a.y),!1)):n==g.DIRECTION_SOUTH?(a.height=i,a.y=l.y+l.height,a.setTerminalPoint(new T(a.x,a.y+a.height),!1)):n==g.DIRECTION_WEST&&(a.width=i,a.x=l.x-i,a.setTerminalPoint(new T(a.x,a.y),!1))}else if(!s&&a.width>45&&a.height>45&&l.width>45&&l.height>45&&(a.width=a.width*(l.height/a.height),a.height=l.height),a.x=l.x+l.width/2-a.width/2,a.y=l.y+l.height/2-a.height/2,n==g.DIRECTION_NORTH?a.y=a.y-l.height/2-a.height/2-i:n==g.DIRECTION_EAST?a.x=a.x+l.width/2+a.width/2+i:n==g.DIRECTION_SOUTH?a.y=a.y+l.height/2+a.height/2+i:n==g.DIRECTION_WEST&&(a.x=a.x-l.width/2-a.width/2-i),r.model.isEdge(e)&&null!=a.getTerminalPoint(!0)&&null!=e.getTerminal(!1)){const t=r.getCellGeometry(e.getTerminal(!1));null!=t&&(n==g.DIRECTION_NORTH?(a.x-=t.getCenterX(),a.y-=t.getCenterY()+t.height/2):n==g.DIRECTION_EAST?(a.x-=t.getCenterX()-t.width/2,a.y-=t.getCenterY()):n==g.DIRECTION_SOUTH?(a.x-=t.getCenterX(),a.y-=t.getCenterY()-t.height/2):n==g.DIRECTION_WEST&&(a.x-=t.getCenterX()+t.width/2,a.y-=t.getCenterY()))}}return a},ie.prototype.isDropStyleEnabled=function(t,e){let n=!0;if(null!=e&&1==t.length){const i=this.graph.getCellStyle(t[e]);null!=i&&(n=v.getValue(i,g.STYLE_STROKECOLOR,g.NONE)!=g.NONE||v.getValue(i,g.STYLE_FILLCOLOR,g.NONE)!=g.NONE)}return n},ie.prototype.isDropStyleTargetIgnored=function(t){return this.graph.isSwimlane(t.cell)},ie.prototype.createDragSource=function(t,e,n,i,r){const o=this.editorUi,s=o.editor.graph;let l=null,a=null;const h=this;for(let g=0;g<i.length&&(null==a&&this.editorUi.editor.graph.model.isVertex(i[g])?a=g:null==l&&this.editorUi.editor.graph.model.isEdge(i[g])&&null==this.editorUi.editor.graph.model.getTerminal(i[g],!0)&&(l=g),null==a||null==l);g++);const u=this.isDropStyleEnabled(i,a),d=v.makeDraggable(t,this.editorUi.editor.graph,v.bind(this,(function(t,n){if(null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=i&&null!=y&&D==I){const e=t.isCellSelected(y.cell)?t.getSelectionCells():[y.cell],n=this.updateShapes(t.model.isEdge(y.cell)?i[0]:i[a],e);t.setSelectionCells(n)}else if(null!=i&&null!=D&&null!=m&&D!=I){const e=t.model.isEdge(m.cell)||null==l?a:l;t.setSelectionCells(this.dropAndConnect(m.cell,i,N,e,n))}else e.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(t.view.getState(t.getSelectionCell()))})),n,0,0,s.autoscroll,!0,!0);s.addListener(C.ESCAPE,(function(){d.isActive()&&d.reset()}));const c=d.mouseDown;function p(t,e){let n=null;return n=v.createImage(t.src),n.style.width=t.width+"px",n.style.height=t.height+"px",null!=e&&n.setAttribute("title",e),v.setOpacity(n,t==ee.prototype.refreshTarget?30:20),n.style.position="absolute",n.style.cursor="crosshair",n}d.mouseDown=function(t){C.isPopupTrigger(t)||C.isMultiTouchEvent(t)||(s.stopEditing(),c.apply(this,arguments))};var m=null;let x=null;var y=null;let A=!1;const E=p(this.triangleUp,f.get("connect")),S=p(this.triangleRight,f.get("connect")),b=p(this.triangleDown,f.get("connect")),L=p(this.triangleLeft,f.get("connect"));var I=p(this.refreshTarget,f.get("replace"));let M=null;const R=p(this.roundDrop),O=p(this.roundDrop);var N=g.DIRECTION_NORTH,D=null;function P(t,e,n,i){return null!=i.parentNode&&(v.contains(n,t,e)?(v.setOpacity(i,100),D=i):v.setOpacity(i,i==I?30:20)),n}const H=d.createPreviewElement;d.createPreviewElement=function(){const t=H.apply(this,arguments);return t.style.pointerEvents="none",this.previewElementWidth=t.style.width,this.previewElementHeight=t.style.height,t};const k=d.dragEnter;d.dragEnter=function(){null!=o.hoverIcons&&o.hoverIcons.setDisplay("none"),k.apply(this,arguments)};const G=d.dragExit;d.dragExit=function(){null!=o.hoverIcons&&o.hoverIcons.setDisplay(""),G.apply(this,arguments)},d.dragOver=function(t){if(j.prototype.dragOver.apply(this,arguments),null!=this.currentGuide&&null!=D&&this.currentGuide.hide(),null!=this.previewElement){const e=t.view;if(null!=y&&D==I)this.previewElement.style.display=t.model.isEdge(y.cell)?"none":"",this.previewElement.style.left=y.x+"px",this.previewElement.style.top=y.y+"px",this.previewElement.style.width=y.width+"px",this.previewElement.style.height=y.height+"px";else if(null!=m&&null!=D){const n=t.model.isEdge(m.cell)||null==l?a:l,r=h.getDropAndConnectGeometry(m.cell,i[n],N,i),o=t.model.isEdge(m.cell)?null:t.getCellGeometry(m.cell),s=t.getCellGeometry(i[n]),u=t.model.getParent(m.cell);let d=e.translate.x*e.scale,c=e.translate.y*e.scale;if(null!=o&&!o.relative&&t.model.isVertex(u)&&u!=e.currentRoot){const t=e.getState(u);d=t.x,c=t.y}let p=s.x,g=s.y;t.model.isEdge(i[n])&&(p=0,g=0),this.previewElement.style.left=(r.x-p)*e.scale+d+"px",this.previewElement.style.top=(r.y-g)*e.scale+c+"px",1==i.length&&(this.previewElement.style.width=r.width*e.scale+"px",this.previewElement.style.height=r.height*e.scale+"px"),this.previewElement.style.display=""}else null!=d.currentHighlight.state&&t.model.isEdge(d.currentHighlight.state.cell)?(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-r.width*e.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-r.height*e.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};let B=(new Date).getTime(),U=0,V=null;const F=this.editorUi.editor.graph.getCellStyle(i[0]);return d.getDropTarget=v.bind(this,(function(t,e,n,r){let o=C.isAltDown(r)||null==i?null:t.getCellAt(e,n);if(null!=o&&!this.graph.isCellConnectable(o)){const t=this.graph.getModel().getParent(o);this.graph.getModel().isVertex(t)&&this.graph.isCellConnectable(t)&&(o=t)}t.isCellLocked(o)&&(o=null);let s=t.view.getState(o);D=null;let l=null;if(V!=s?(V=s,B=(new Date).getTime(),U=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=s&&(this.updateThread=window.setTimeout((function(){null==D&&(V=s,d.getDropTarget(t,e,n,r))}),this.dropTargetDelay+10))):U=(new Date).getTime()-B,u&&U<2500&&null!=s&&!C.isShiftDown(r)&&(v.getValue(s.style,g.STYLE_SHAPE)!=v.getValue(F,g.STYLE_SHAPE)&&(v.getValue(s.style,g.STYLE_STROKECOLOR,g.NONE)!=g.NONE||v.getValue(s.style,g.STYLE_FILLCOLOR,g.NONE)!=g.NONE||v.getValue(s.style,g.STYLE_GRADIENTCOLOR,g.NONE)!=g.NONE)||"image"==v.getValue(F,g.STYLE_SHAPE)||U>1500||t.model.isEdge(s.cell))&&U>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(s)&&(t.model.isVertex(s.cell)&&null!=a||t.model.isEdge(s.cell)&&t.model.isEdge(i[0]))){y=s;var h=t.model.isEdge(s.cell)?t.view.getPoint(s):new T(s.getCenterX(),s.getCenterY());h=new w(h.x-this.refreshTarget.width/2,h.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),I.style.left=Math.floor(h.x)+"px",I.style.top=Math.floor(h.y)+"px",null==M&&(t.container.appendChild(I),M=I.parentNode),P(e,n,h,I)}else null==y||!v.contains(y,e,n)||U>1500&&!C.isShiftDown(r)?(y=null,null!=M&&(I.parentNode.removeChild(I),M=null)):null!=y&&null!=M&&(h=t.model.isEdge(y.cell)?t.view.getPoint(y):new T(y.getCenterX(),y.getCenterY()),h=new w(h.x-this.refreshTarget.width/2,h.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),P(e,n,h,I));if(A&&null!=m&&!C.isAltDown(r)&&null==D){if(l=w.fromRectangle(m),t.model.isEdge(m.cell)){var c=m.absolutePoints;if(null!=R.parentNode){var p=c[0];l.add(P(e,n,new w(p.x-this.roundDrop.width/2,p.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),R))}if(null!=O.parentNode){var f=c[c.length-1];l.add(P(e,n,new w(f.x-this.roundDrop.width/2,f.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),O))}}else{var H=w.fromRectangle(m);null!=m.shape&&null!=m.shape.boundingBox&&(H=w.fromRectangle(m.shape.boundingBox)),H.grow(this.graph.tolerance),H.grow(ee.prototype.arrowSpacing),null!=(Y=this.graph.selectionCellsHandler.getHandler(m.cell))&&(H.x-=Y.horizontalOffset/2,H.y-=Y.verticalOffset/2,H.width+=Y.horizontalOffset,H.height+=Y.verticalOffset,null!=Y.rotationShape&&null!=Y.rotationShape.node&&"hidden"!=Y.rotationShape.node.style.visibility&&"none"!=Y.rotationShape.node.style.display&&null!=Y.rotationShape.boundingBox&&H.add(Y.rotationShape.boundingBox)),l.add(P(e,n,new w(m.getCenterX()-this.triangleUp.width/2,H.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),E)),l.add(P(e,n,new w(H.x+H.width,m.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),S)),l.add(P(e,n,new w(m.getCenterX()-this.triangleDown.width/2,H.y+H.height,this.triangleDown.width,this.triangleDown.height),b)),l.add(P(e,n,new w(H.x-this.triangleLeft.width,m.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),L))}null!=l&&l.grow(10)}N=g.DIRECTION_NORTH,D==S?N=g.DIRECTION_EAST:D==b||D==O?N=g.DIRECTION_SOUTH:D==L&&(N=g.DIRECTION_WEST),null!=y&&D==I&&(s=y);const k=(null==a||t.isCellConnectable(i[a]))&&(t.model.isEdge(o)&&null!=a||t.model.isVertex(o)&&t.isCellConnectable(o));if(null!=m&&U>=5e3||m!=s&&(null==l||!v.contains(l,e,n)||U>500&&null==D&&k))if(A=!1,null!=(m=U<5e3&&U>this.dropTargetDelay||t.model.isEdge(o)?s:null)&&k){for(var G=[R,O,E,S,b,L],z=0;z<G.length;z++)null!=G[z].parentNode&&G[z].parentNode.removeChild(G[z]);var Y;if(t.model.isEdge(o))null!=(c=s.absolutePoints)&&(p=c[0],f=c[c.length-1],R.style.left=Math.floor(p.x-this.roundDrop.width/2)+"px",R.style.top=Math.floor(p.y-this.roundDrop.height/2)+"px",O.style.left=Math.floor(f.x-this.roundDrop.width/2)+"px",O.style.top=Math.floor(f.y-this.roundDrop.height/2)+"px",null==t.model.getTerminal(o,!0)&&t.container.appendChild(R),null==t.model.getTerminal(o,!1)&&t.container.appendChild(O));else H=w.fromRectangle(s),null!=s.shape&&null!=s.shape.boundingBox&&(H=w.fromRectangle(s.shape.boundingBox)),H.grow(this.graph.tolerance),H.grow(ee.prototype.arrowSpacing),null!=(Y=this.graph.selectionCellsHandler.getHandler(s.cell))&&(H.x-=Y.horizontalOffset/2,H.y-=Y.verticalOffset/2,H.width+=Y.horizontalOffset,H.height+=Y.verticalOffset,null!=Y.rotationShape&&null!=Y.rotationShape.node&&"hidden"!=Y.rotationShape.node.style.visibility&&"none"!=Y.rotationShape.node.style.display&&null!=Y.rotationShape.boundingBox&&H.add(Y.rotationShape.boundingBox)),E.style.left=Math.floor(s.getCenterX()-this.triangleUp.width/2)+"px",E.style.top=Math.floor(H.y-this.triangleUp.height)+"px",S.style.left=Math.floor(H.x+H.width)+"px",S.style.top=Math.floor(s.getCenterY()-this.triangleRight.height/2)+"px",b.style.left=E.style.left,b.style.top=Math.floor(H.y+H.height)+"px",L.style.left=Math.floor(H.x-this.triangleLeft.width)+"px",L.style.top=S.style.top,"eastwest"!=s.style.portConstraint&&(t.container.appendChild(E),t.container.appendChild(b)),t.container.appendChild(S),t.container.appendChild(L);null!=s&&(x=t.selectionCellsHandler.getHandler(s.cell),null!=x&&null!=x.setHandlesVisible&&x.setHandlesVisible(!1)),A=!0}else for(G=[R,O,E,S,b,L],z=0;z<G.length;z++)null!=G[z].parentNode&&G[z].parentNode.removeChild(G[z]);A||null==x||x.setHandlesVisible(!0);let W=C.isAltDown(r)&&!C.isShiftDown(r)||null!=y&&D==I?null:j.prototype.getDropTarget.apply(this,arguments);const Q=t.getModel();if(null!=W&&(null!=D||!t.isSplitTarget(W,i,r))){for(;null!=W&&!t.isValidDropTarget(W,i,r)&&Q.isVertex(Q.getParent(W));)W=Q.getParent(W);null!=W&&(t.view.currentRoot==W||!t.isValidRoot(W)&&0==t.getModel().getChildCount(W)||t.isCellLocked(W)||Q.isEdge(W)||!t.isValidDropTarget(W,i,r))&&(W=null)}return W})),d.stopDrag=function(){j.prototype.stopDrag.apply(this,arguments);const t=[R,O,I,E,S,b,L];for(let e=0;e<t.length;e++)null!=t[e].parentNode&&t[e].parentNode.removeChild(t[e]);null!=m&&null!=x&&x.reset(),x=null,m=null,y=null,M=null,D=null},d},ie.prototype.itemClicked=function(t,e,n){const i=this.editorUi.editor.graph;if(i.container.focus(),C.isAltDown(n)&&1==i.getSelectionCount()&&i.model.isVertex(i.getSelectionCell())){let e=null;for(let n=0;n<t.length&&null==e;n++)i.model.isVertex(t[n])&&(e=n);null!=e&&(i.setSelectionCells(this.dropAndConnect(i.getSelectionCell(),t,C.isMetaDown(n)||C.isControlDown(n)?C.isShiftDown(n)?g.DIRECTION_WEST:g.DIRECTION_NORTH:C.isShiftDown(n)?g.DIRECTION_EAST:g.DIRECTION_SOUTH,e,n)),i.scrollCellToVisible(i.getSelectionCell()))}else if(C.isShiftDown(n)&&!i.isSelectionEmpty())this.updateShapes(t[0],i.getSelectionCells()),i.scrollCellToVisible(i.getSelectionCell());else{const r=C.isAltDown(n)?i.getFreeInsertPoint():i.getCenterInsertPoint(i.getBoundingBoxFromGeometry(t,!0));e.drop(i,n,null,r.x,r.y,!0)}},ie.prototype.addClickHandler=function(t,e,n){const i=this.editorUi.editor.graph,r=e.mouseDown,o=e.mouseMove,s=e.mouseUp,l=i.tolerance;let a=null;const h=this;e.mouseDown=function(e){r.apply(this,arguments),a=new T(C.getClientX(e),C.getClientY(e)),null!=this.dragElement&&(this.dragElement.style.display="none",v.setOpacity(t,50))},e.mouseMove=function(e){null!=this.dragElement&&"none"==this.dragElement.style.display&&null!=a&&(Math.abs(a.x-C.getClientX(e))>l||Math.abs(a.y-C.getClientY(e))>l)&&(this.dragElement.style.display="",v.setOpacity(t,100)),o.apply(this,arguments)},e.mouseUp=function(i){try{C.isPopupTrigger(i)||null!=this.currentGraph||null==this.dragElement||"none"!=this.dragElement.style.display||h.itemClicked(n,e,i,t),s.apply(e,arguments),v.setOpacity(t,100),a=null,h.currentElt=t}catch(t){e.reset(),h.editorUi.handleError(t)}}},ie.prototype.createVertexTemplateEntry=function(t,e,n,i,r,o,s,l){return l=null!=l&&l.length>0?l:null!=r?r.toLowerCase():"",this.addEntry(l,v.bind(this,(function(){return this.createVertexTemplate(t,e,n,i,r,o,s)})))},ie.prototype.createVertexTemplate=function(t,e,n,i,r,o,s,l){const a=[new Ct(null!=i?i:"",new vt(0,0,e,n),t)];return a[0].vertex=!0,this.createVertexTemplateFromCells(a,e,n,r,o,s,l)},ie.prototype.createVertexTemplateFromData=function(t,e,n,i,r,o,s){const l=v.parseXml(te.decompress(t)),a=new p(l),h=new B;a.decode(l.documentElement,h);const u=this.graph.cloneCells(h.root.getChildAt(0).children);return this.createVertexTemplateFromCells(u,e,n,i,r,o,s)},ie.prototype.createVertexTemplateFromCells=function(t,e,n,i,r,o,s){return this.createItem(t,i,r,o,e,n,s)},ie.prototype.createEdgeTemplateEntry=function(t,e,n,i,r,o,s,l){return s=null!=s&&s.length>0?s:r.toLowerCase(),this.addEntry(s,v.bind(this,(function(){return this.createEdgeTemplate(t,e,n,i,r,o,l)})))},ie.prototype.createEdgeTemplate=function(t,e,n,i,r,o,s){const l=new Ct(null!=i?i:"",new vt(0,0,e,n),t);return l.geometry.setTerminalPoint(new T(0,n),!0),l.geometry.setTerminalPoint(new T(e,0),!1),l.geometry.relative=!0,l.edge=!0,this.createEdgeTemplateFromCells([l],e,n,r,o,s)},ie.prototype.createEdgeTemplateFromCells=function(t,e,n,i,r,o){return this.createItem(t,i,r,!0,e,n,o)},ie.prototype.addPaletteFunctions=function(t,e,n,i){this.addPalette(t,e,n,v.bind(this,(function(t){for(let e=0;e<i.length;e++)t.appendChild(i[e](t))})))},ie.prototype.addPalette=function(t,e,n,i){const r=this.createTitle(e);this.container.appendChild(r);const o=document.createElement("div");o.className="geSidebar",E.IS_POINTER&&(o.style.touchAction="none"),n?(i(o),i=null):o.style.display="none",this.addFoldingHandler(r,o,i);const s=document.createElement("div");return s.appendChild(o),this.container.appendChild(s),null!=t&&(this.palettes[t]=[r,s]),o},ie.prototype.addFoldingHandler=function(t,e,n){let i=!1;(!E.IS_IE||document.documentMode>=8)&&(t.style.backgroundImage="none"==e.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="0% 50%",C.addListener(t,"click",v.bind(this,(function(r){if("none"==e.style.display){if(i)e.style.display="block";else if(i=!0,null!=n){t.style.cursor="wait";const i=t.innerHTML;t.innerHTML=f.get("loading")+"...",window.setTimeout((function(){e.style.display="block",t.style.cursor="",t.innerHTML=i;const r=E.NO_FO;E.NO_FO=ue.prototype.originalNoForeignObject,n(e,t),E.NO_FO=r}),E.IS_FF?20:0)}else e.style.display="block";t.style.backgroundImage="url('"+this.expandedImage+"')"}else t.style.backgroundImage="url('"+this.collapsedImage+"')",e.style.display="none";C.consume(r)}))),E.IS_QUIRKS||C.addListener(t,E.IS_POINTER?"pointerdown":"mousedown",v.bind(this,(function(t){t.preventDefault()})))},ie.prototype.removePalette=function(t){const e=this.palettes[t];if(null!=e){this.palettes[t]=null;for(let t=0;t<e.length;t++)this.container.removeChild(e[t]);return!0}return!1},ie.prototype.addImagePalette=function(t,e,n,i,r,o,s){const l=[];for(let a=0;a<r.length;a++)v.bind(this,(function(t,e,n){if(null==n){const e=t.lastIndexOf("/"),i=t.lastIndexOf(".");n=t.substring(e>=0?e+1:0,i>=0?i:t.length).replace(/[-_]/g," ")}l.push(this.createVertexTemplateEntry("image;html=1;labelBackgroundColor=#ffffff;image="+$t(t+i).replace(";base",""),this.defaultImageWidth,this.defaultImageHeight,"",e,null!=e,null,this.filterTags(n)))}))(r[a],null!=o?o[a]:null,null!=s?s[r[a]]:null);this.addPaletteFunctions(t,e,!1,l)},ie.prototype.getTagsForStencil=function(t,e,n){const i=t.split(".");for(let r=1;r<i.length;r++)i[r]=i[r].replace(/_/g," ");return i.push(e.replace(/_/g," ")),null!=n&&i.push(n),i.slice(1,i.length)},ie.prototype.addStencilPalette=function(t,e,n,i,r,o,s,l,a,h=!1){if(s=null!=s?s:1,this.addStencilsToIndex){const o=[];if(null!=a)for(let t=0;t<a.length;t++)o.push(a[t]);nt.loadStencilSet(n,v.bind(this,(function(t,e,n,a,h){if(null==r||v.indexOf(r,e)<0){const n=this.getTagsForStencil(t,e),r=null!=l?l[e]:null;null!=r&&n.push(r),o.push(this.createVertexTemplateEntry("shape="+t+e.toLowerCase()+i,Math.round(a*s),Math.round(h*s),"",e.replace(/_/g," "),null,null,this.filterTags(n.join(" "))))}})),!0,!0),this.addPaletteFunctions(t,e,!!h,o)}else this.addPalette(t,e,!!h,v.bind(this,(function(t){if(null==i&&(i=""),null!=o&&o.call(this,t),null!=a)for(let e=0;e<a.length;e++)a[e](t);nt.loadStencilSet(n,v.bind(this,(function(e,n,o,l,a){(null==r||v.indexOf(r,n)<0)&&t.appendChild(this.createVertexTemplate("shape="+e+n.toLowerCase()+i,Math.round(l*s),Math.round(a*s),"",n.replace(/_/g," "),!0))})),!0)})))},ie.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&&(C.removeListener(document,E.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerUpHandler=null),null!=this.pointerDownHandler&&(C.removeListener(document,E.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),this.pointerDownHandler=null),null!=this.pointerMoveHandler&&(C.removeListener(document,E.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerMoveHandler=null),null!=this.pointerOutHandler&&(C.removeListener(document,E.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),this.pointerOutHandler=null)},re.prototype.defaultFont="Helvetica",re.prototype.defaultFontSize="12",re.prototype.defaultMenuItems=["edit","view","arrange","extras"],re.prototype.defaultFonts=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],re.prototype.init=function(){const t=this.editorUi.editor.graph,e=v.bind(t,t.isEnabled);this.customFonts=[],this.customFontSizes=[],this.put("fontFamily",new se(v.bind(this,(function(e,n){const i=v.bind(this,(function(i){this.styleChange(e,i,[g.STYLE_FONTFAMILY],[i],null,n,(function(){document.execCommand("fontname",!1,i)}),(function(){t.updateLabelElements(t.getSelectionCells(),(function(e){e.removeAttribute("face"),e.style.fontFamily=null,"PRE"==e.nodeName&&t.replaceElement(e,"div")}))})).firstChild.nextSibling.style.fontFamily=i}));for(var r=0;r<this.defaultFonts.length;r++)i(this.defaultFonts[r]);if(e.addSeparator(n),this.customFonts.length>0){for(r=0;r<this.customFonts.length;r++)i(this.customFonts[r]);e.addSeparator(n),e.addItem(f.get("reset"),null,v.bind(this,(function(){this.customFonts=[],this.editorUi.fireEvent(new A("customFontsChanged"))})),n),e.addSeparator(n)}this.promptChange(e,f.get("custom")+"...","",g.DEFAULT_FONTFAMILY,g.STYLE_FONTFAMILY,n,!0,v.bind(this,(function(t){v.indexOf(this.customFonts,t)<0&&(this.customFonts.push(t),this.editorUi.fireEvent(new A("customFontsChanged")))})))})))),this.put("formatBlock",new se(v.bind(this,(function(e,n){function i(i,r){return e.addItem(i,null,v.bind(this,(function(){null!=t.cellEditor.textarea&&(t.cellEditor.textarea.focus(),document.execCommand("formatBlock",!1,"<"+r+">"))})),n)}i(f.get("normal"),"p"),i("","h1").firstChild.nextSibling.innerHTML='<h1 style="margin:0px;">'+f.get("heading")+" 1</h1>",i("","h2").firstChild.nextSibling.innerHTML='<h2 style="margin:0px;">'+f.get("heading")+" 2</h2>",i("","h3").firstChild.nextSibling.innerHTML='<h3 style="margin:0px;">'+f.get("heading")+" 3</h3>",i("","h4").firstChild.nextSibling.innerHTML='<h4 style="margin:0px;">'+f.get("heading")+" 4</h4>",i("","h5").firstChild.nextSibling.innerHTML='<h5 style="margin:0px;">'+f.get("heading")+" 5</h5>",i("","h6").firstChild.nextSibling.innerHTML='<h6 style="margin:0px;">'+f.get("heading")+" 6</h6>",i("","pre").firstChild.nextSibling.innerHTML='<pre style="margin:0px;">'+f.get("formatted")+"</pre>",i("","blockquote").firstChild.nextSibling.innerHTML='<blockquote style="margin-top:0px;margin-bottom:0px;">'+f.get("blockquote")+"</blockquote>"})))),this.put("fontSize",new se(v.bind(this,(function(e,n){const i=[6,8,9,10,11,12,14,18,24,36,48,72],r=v.bind(this,(function(i){this.styleChange(e,i,[g.STYLE_FONTSIZE],[i],null,n,(function(){if(null!=t.cellEditor.textarea){document.execCommand("fontSize",!1,"3");const e=t.cellEditor.textarea.getElementsByTagName("font");for(let t=0;t<e.length;t++)if("3"==e[t].getAttribute("size")){e[t].removeAttribute("size"),e[t].style.fontSize=i+"px";break}}}))}));for(var o=0;o<i.length;o++)r(i[o]);if(e.addSeparator(n),this.customFontSizes.length>0){for(o=0;o<this.customFontSizes.length;o++)r(this.customFontSizes[o]);e.addSeparator(n),e.addItem(f.get("reset"),null,v.bind(this,(function(){this.customFontSizes=[]})),n),e.addSeparator(n)}this.promptChange(e,f.get("custom")+"...","(pt)","12",g.STYLE_FONTSIZE,n,!0,v.bind(this,(function(t){this.customFontSizes.push(t)})))})))),this.put("direction",new se(v.bind(this,(function(e,n){e.addItem(f.get("flipH"),null,(function(){t.toggleCellStyles(g.STYLE_FLIPH,!1)}),n),e.addItem(f.get("flipV"),null,(function(){t.toggleCellStyles(g.STYLE_FLIPV,!1)}),n),this.addMenuItems(e,["-","rotation"],n)})))),this.put("align",new se(v.bind(this,(function(e,n){e.addItem(f.get("leftAlign"),null,(function(){t.alignCells(g.ALIGN_LEFT)}),n),e.addItem(f.get("center"),null,(function(){t.alignCells(g.ALIGN_CENTER)}),n),e.addItem(f.get("rightAlign"),null,(function(){t.alignCells(g.ALIGN_RIGHT)}),n),e.addSeparator(n),e.addItem(f.get("topAlign"),null,(function(){t.alignCells(g.ALIGN_TOP)}),n),e.addItem(f.get("middle"),null,(function(){t.alignCells(g.ALIGN_MIDDLE)}),n),e.addItem(f.get("bottomAlign"),null,(function(){t.alignCells(g.ALIGN_BOTTOM)}),n)})))),this.put("distribute",new se(v.bind(this,(function(e,n){e.addItem(f.get("horizontal"),null,(function(){t.distributeCells(!0)}),n),e.addItem(f.get("vertical"),null,(function(){t.distributeCells(!1)}),n)})))),this.put("layout",new se(v.bind(this,(function(e,n){const i=v.bind(this,(function(t,e){const n=new ge(this.editorUi,t,f.get("apply"),(function(t){e(parseFloat(t))}),f.get("spacing"));this.editorUi.showDialog(n.container,300,80,!0,!0),n.init()}));e.addItem(f.get("horizontalFlow"),null,v.bind(this,(function(){const e=new $(t,g.DIRECTION_WEST);this.editorUi.executeLayout((function(){const n=t.getSelectionCells();e.execute(t.getDefaultParent(),0==n.length?null:n)}),!0)})),n),e.addItem(f.get("verticalFlow"),null,v.bind(this,(function(){const e=new $(t,g.DIRECTION_NORTH);this.editorUi.executeLayout((function(){const n=t.getSelectionCells();e.execute(t.getDefaultParent(),0==n.length?null:n)}),!0)})),n),e.addSeparator(n),e.addItem(f.get("horizontalTree"),null,v.bind(this,(function(){let e=t.getSelectionCell(),n=null;if(null==e||0==t.getModel().getChildCount(e)?0==t.getModel().getEdgeCount(e)&&(n=t.findTreeRoots(t.getDefaultParent())):n=t.findTreeRoots(e),null!=n&&n.length>0&&(e=n[0]),null!=e){const n=new _(t,!0);n.edgeRouting=!1,n.levelDistance=30,i(n.levelDistance,v.bind(this,(function(i){n.levelDistance=i,this.editorUi.executeLayout((function(){n.execute(t.getDefaultParent(),e)}),!0)})))}})),n),e.addItem(f.get("verticalTree"),null,v.bind(this,(function(){let e=t.getSelectionCell(),n=null;if(null==e||0==t.getModel().getChildCount(e)?0==t.getModel().getEdgeCount(e)&&(n=t.findTreeRoots(t.getDefaultParent())):n=t.findTreeRoots(e),null!=n&&n.length>0&&(e=n[0]),null!=e){const n=new _(t,!1);n.edgeRouting=!1,n.levelDistance=30,i(n.levelDistance,v.bind(this,(function(i){n.levelDistance=i,this.editorUi.executeLayout((function(){n.execute(t.getDefaultParent(),e)}),!0)})))}})),n),e.addItem(f.get("radialTree"),null,v.bind(this,(function(){let e=t.getSelectionCell(),n=null;if(null==e||0==t.getModel().getChildCount(e)?0==t.getModel().getEdgeCount(e)&&(n=t.findTreeRoots(t.getDefaultParent())):n=t.findTreeRoots(e),null!=n&&n.length>0&&(e=n[0]),null!=e){const n=new St(t,!1);n.levelDistance=80,n.autoRadius=!0,i(n.levelDistance,v.bind(this,(function(i){n.levelDistance=i,this.editorUi.executeLayout((function(){n.execute(t.getDefaultParent(),e),t.isSelectionEmpty()||(e=t.getModel().getParent(e),t.getModel().isVertex(e)&&t.updateGroupBounds([e],2*t.gridSize,!0))}),!0)})))}})),n),e.addSeparator(n),e.addItem(f.get("organic"),null,v.bind(this,(function(){const e=new et(t);i(e.forceConstant,v.bind(this,(function(n){e.forceConstant=n,this.editorUi.executeLayout((function(){let n=t.getSelectionCell();null!=n&&0!=t.getModel().getChildCount(n)||(n=t.getDefaultParent()),e.execute(n),t.getModel().isVertex(n)&&t.updateGroupBounds([n],2*t.gridSize,!0)}),!0)})))})),n),e.addItem(f.get("circle"),null,v.bind(this,(function(){const e=new tt(t);this.editorUi.executeLayout((function(){let n=t.getSelectionCell();null!=n&&0!=t.getModel().getChildCount(n)||(n=t.getDefaultParent()),e.execute(n),t.getModel().isVertex(n)&&t.updateGroupBounds([n],2*t.gridSize,!0)}),!0)})),n)})))),this.put("navigation",new se(v.bind(this,(function(t,e){this.addMenuItems(t,["home","-","exitGroup","enterGroup","-","expand","collapse","-","collapsible"],e)})))),this.put("arrange",new se(v.bind(this,(function(t,e){this.addMenuItems(t,["toFront","toBack","-"],e),this.addSubmenu("direction",t,e),this.addMenuItems(t,["turn","-"],e),this.addSubmenu("align",t,e),this.addSubmenu("distribute",t,e),t.addSeparator(e),this.addSubmenu("navigation",t,e),this.addSubmenu("insert",t,e),this.addSubmenu("layout",t,e),this.addMenuItems(t,["-","group","ungroup","removeFromGroup","-","clearWaypoints","autosize"],e)})))).isEnabled=e,this.put("view",new se(v.bind(this,(function(t,e){this.addMenuItems(t,(null!=this.editorUi.format?["formatPanel"]:[]).concat(["outline","layers","-","pageView","pageScale","-","scrollbars","tooltips","-","grid","guides","-","connectionArrows","connectionPoints","-","resetView","zoomIn","zoomOut"],e))})))),this.put("viewPanels",new se(v.bind(this,(function(t,e){null!=this.editorUi.format&&this.addMenuItems(t,["formatPanel"],e),this.addMenuItems(t,["outline","layers"],e)})))),this.put("viewZoom",new se(v.bind(this,(function(e,n){this.addMenuItems(e,["resetView","-"],n);const i=[.25,.5,.75,1,1.25,1.5,2,3,4];for(let r=0;r<i.length;r++)!function(i){e.addItem(100*i+"%",null,(function(){t.zoomTo(i)}),n)}(i[r]);this.addMenuItems(e,["-","fitWindow","fitPageWidth","fitPage","fitTwoPages","-","customZoom"],n)})))),this.put("edit",new se(v.bind(this,(function(t){this.addMenuItems(t,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll","selectNone","-","lockUnlock"])})))),this.put("extras",new se(v.bind(this,(function(t){this.addMenuItems(t,["copyConnect","collapseExpand"])}))))},re.prototype.put=function(t,e){return this.menus[t]=e,e},re.prototype.get=function(t){return this.menus[t]},re.prototype.addSubmenu=function(t,e,n,i){const r=this.get(t);if(null!=r){const o=r.isEnabled();if(e.showDisabled||o){const r=e.addItem(i||f.get(t),null,null,n,null,o);this.addMenu(t,e,r)}}},re.prototype.addMenu=function(t,e,n){const i=this.get(t);null!=i&&(e.showDisabled||i.isEnabled())&&this.get(t).execute(e,n)},re.prototype.addInsertTableCellItem=function(t,e){const n=this.editorUi.editor.graph;this.addInsertTableItem(t,v.bind(this,(function(t,e,i){const r=C.isControlDown(t)||C.isMetaDown(t)?n.createCrossFunctionalSwimlane(e,i):n.createTable(e,i,null,null,C.isShiftDown(t)?"Table":null),o=C.isAltDown(t)?n.getFreeInsertPoint():n.getCenterInsertPoint(n.getBoundingBoxFromGeometry([r],!0)),s=n.importCells([r],o.x,o.y);null!=s&&s.length>0&&(n.scrollCellToVisible(s[0]),n.setSelectionCells(s))})),e)},re.prototype.addInsertTableItem=function(t,e,n){e=null!=e?e:v.bind(this,(function(t,e,n){const i=this.editorUi.editor.graph;if(null!=i.getParentByName(C.getSource(t),"TD")&&null!=i.cellEditor.textarea){const t=i.cellEditor.textarea.getElementsByTagName("table"),o=[];for(var r=0;r<t.length;r++)o.push(t[r]);i.container.focus(),i.pasteHtmlAtCaret(function(t,e){const n=["<table>"];for(let i=0;i<t;i++){n.push("<tr>");for(let t=0;t<e;t++)n.push("<td><br></td>");n.push("</tr>")}return n.push("</table>"),n.join("")}(e,n));const s=i.cellEditor.textarea.getElementsByTagName("table");if(s.length==o.length+1)for(r=s.length-1;r>=0;r--)if(0==r||s[r]!=o[r-1]){i.selectNode(s[r].rows[0].cells[0]);break}}}));const i=this.editorUi.editor.graph;let r=null,o=null;const s=t.addItem("",null,null,n,null,null,null,!0),l='<img src="'+E.imageBasePath+'/transparent.gif" width="16" height="16"/>';s.firstChild.innerHTML="";const a=function(t,e){const n=document.createElement("table");n.setAttribute("border","1"),n.style.borderCollapse="collapse",n.style.borderStyle="solid",E.IS_QUIRKS||n.setAttribute("cellPadding","8");for(let i=0;i<t;i++){const t=n.insertRow(i);for(let n=0;n<e;n++){const e=t.insertCell(-1);E.IS_QUIRKS&&(e.innerHTML=l)}}return n}(5,5);s.firstChild.appendChild(a);const h=document.createElement("div");function u(t){o=i.getParentByName(C.getSource(t),"TD");let e=!1;if(null!=o){r=i.getParentByName(o,"TR");const n=C.isMouseEvent(t)?2:4;!function(t,e,n){for(var i=t.rows.length;i<e;i++)for(var r=t.insertRow(i),o=0;o<t.rows[0].cells.length;o++){var s=r.insertCell(-1);E.IS_QUIRKS&&(s.innerHTML=l)}for(i=0;i<t.rows.length;i++)for(o=(r=t.rows[i]).cells.length;o<n;o++)s=r.insertCell(-1),E.IS_QUIRKS&&(s.innerHTML=l)}(a,Math.min(20,r.sectionRowIndex+n),Math.min(20,o.cellIndex+n)),h.innerHTML=o.cellIndex+1+"x"+(r.sectionRowIndex+1);for(let t=0;t<a.rows.length;t++){const n=a.rows[t];for(let i=0;i<n.cells.length;i++){const s=n.cells[i];t==r.sectionRowIndex&&i==o.cellIndex&&(e="blue"==s.style.backgroundColor),t<=r.sectionRowIndex&&i<=o.cellIndex?s.style.backgroundColor="blue":s.style.backgroundColor="transparent"}}}return C.consume(t),e}h.style.padding="4px",h.style.fontSize=re.prototype.defaultFontSize+"px",h.innerHTML="1x1",s.firstChild.appendChild(h),C.addGestureListeners(a,null,null,v.bind(this,(function(t){const n=u(t);null!=o&&null!=r&&n&&(e(t,r.sectionRowIndex+1,o.cellIndex+1),window.setTimeout(v.bind(this,(function(){this.editorUi.hideCurrentMenu()})),0))}))),C.addListener(a,"mouseover",u)},re.prototype.edgeStyleChange=function(t,e,n,i,r,o,s){return t.addItem(e,null,v.bind(this,(function(){const t=this.editorUi.editor.graph;t.stopEditing(!1),t.getModel().beginUpdate();try{const e=t.getSelectionCells(),r=[];for(let o=0;o<e.length;o++){const l=e[o];if(t.getModel().isEdge(l)){if(s){let e=t.getCellGeometry(l);null!=e&&(e=e.clone(),e.points=null,t.getModel().setGeometry(l,e))}for(let e=0;e<n.length;e++)t.setCellStyles(n[e],i[e],[l]);r.push(l)}}this.editorUi.fireEvent(new A("styleChanged","keys",n,"values",i,"cells",r))}finally{t.getModel().endUpdate()}})),o,r)},re.prototype.styleChange=function(t,e,n,i,r,o,s,l){const a=this.createStyleChangeFunction(n,i);return t.addItem(e,null,v.bind(this,(function(){const t=this.editorUi.editor.graph;null!=s&&t.cellEditor.isContentEditing()?s():a(l)})),o,r)},re.prototype.createStyleChangeFunction=function(t,e){return v.bind(this,(function(n){const i=this.editorUi.editor.graph;i.stopEditing(!1),i.getModel().beginUpdate();try{const o=i.getSelectionCells();for(var r=0;r<t.length;r++)if(i.setCellStyles(t[r],e[r],o),t[r]==g.STYLE_ALIGN&&i.updateLabelElements(o,(function(t){t.removeAttribute("align"),t.style.textAlign=null})),t[r]==g.STYLE_FONTFAMILY)for(r=0;r<o.length;r++)0==i.model.getChildCount(o[r])&&i.autoSizeCell(o[r],!1);null!=n&&n(),this.editorUi.fireEvent(new A("styleChanged","keys",t,"values",e,"cells",o))}finally{i.getModel().endUpdate()}}))},re.prototype.promptChange=function(t,e,n,i,r,o,s,l,a){return t.addItem(e,null,v.bind(this,(function(){const t=this.editorUi.editor.graph;let e=i;const o=t.getView().getState(t.getSelectionCell());null!=o&&(e=o.style[r]||e);const s=new ge(this.editorUi,e,f.get("apply"),v.bind(this,(function(e){if(null!=e&&e.length>0){t.getModel().beginUpdate();try{t.stopEditing(!1),t.setCellStyles(r,e)}finally{t.getModel().endUpdate()}null!=l&&l(e)}})),f.get("enterValue")+(n.length>0?" "+n:""));this.editorUi.showDialog(s.container,300,80,!0,!0),s.init()})),o,a,s)},re.prototype.pickColor=function(t,e,n){const i=this.editorUi.editor.graph,r=226+17*(Math.ceil(Qt.prototype.presetColors.length/12)+Math.ceil(Qt.prototype.defaultColors.length/12));if(null!=e&&i.cellEditor.isContentEditing()){const t=i.cellEditor.saveSelection(),o=new Qt(this.editorUi,n||"000000",v.bind(this,(function(n){i.cellEditor.restoreSelection(t),document.execCommand(e,!1,n!=g.NONE?n:"transparent")})),(function(){i.cellEditor.restoreSelection(t)}));this.editorUi.showDialog(o.container,230,r,!0,!0),o.init()}else{null==this.colorDialog&&(this.colorDialog=new Qt(this.editorUi)),this.colorDialog.currentColorKey=t;const e=i.getView().getState(i.getSelectionCell());let n="none";null!=e&&(n=e.style[t]||n),"none"==n?(n="ffffff",this.colorDialog.picker.fromString("ffffff"),this.colorDialog.colorInput.value="none"):this.colorDialog.picker.fromString(n),this.editorUi.showDialog(this.colorDialog.container,230,r,!0,!0),this.colorDialog.init()}},re.prototype.toggleStyle=function(t,e){const n=this.editorUi.editor.graph,i=n.toggleCellStyles(t,e);this.editorUi.fireEvent(new A("styleChanged","keys",[t],"values",[i],"cells",n.getSelectionCells()))},re.prototype.addMenuItem=function(t,e,n,i,r,o){const s=this.editorUi.actions.get(e);if(null!=s&&(t.showDisabled||s.isEnabled())&&s.visible){const e=t.addItem(o||s.label,null,(function(){s.funct(i)}),n,r,s.isEnabled());return s.toggleAction&&s.isSelected()&&t.addCheckmark(e,ue.checkmarkImage),this.addShortcut(e,s),e}return null},re.prototype.addShortcut=function(t,e){if(null!=e.shortcut){const n=t.firstChild.nextSibling.nextSibling,i=document.createElement("span");i.style.color="gray",v.write(i,e.shortcut),n.appendChild(i)}},re.prototype.addMenuItems=function(t,e,n,i,r){for(let o=0;o<e.length;o++)"-"==e[o]?t.addSeparator(n):this.addMenuItem(t,e[o],n,i,null!=r?r[o]:null)},re.prototype.createPopupMenu=function(t,e,n){t.smartSeparators=!0,this.addPopupMenuHistoryItems(t,e,n),this.addPopupMenuEditItems(t,e,n),this.addPopupMenuStyleItems(t,e,n),this.addPopupMenuArrangeItems(t,e,n),this.addPopupMenuCellItems(t,e,n),this.addPopupMenuSelectionItems(t,e,n)},re.prototype.addPopupMenuHistoryItems=function(t,e,n){this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(t,["undo","redo"],null,n)},re.prototype.addPopupMenuEditItems=function(t,e,n){this.editorUi.editor.graph.isSelectionEmpty()?this.addMenuItems(t,["pasteHere"],null,n):this.addMenuItems(t,["delete","-","cut","copy","-","duplicate"],null,n)},re.prototype.addPopupMenuStyleItems=function(t,e,n){1==this.editorUi.editor.graph.getSelectionCount()?this.addMenuItems(t,["-","setAsDefaultStyle"],null,n):this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(t,["-","clearDefaultStyle"],null,n)},re.prototype.addPopupMenuArrangeItems=function(t,e,n){const i=this.editorUi.editor.graph;i.isSelectionEmpty()||this.addMenuItems(t,["-","toFront","toBack"],null,n),i.getSelectionCount()>1?this.addMenuItems(t,["-","group"],null,n):1==i.getSelectionCount()&&!i.getModel().isEdge(e)&&!i.isSwimlane(e)&&i.getModel().getChildCount(e)>0&&this.addMenuItems(t,["-","ungroup"],null,n)},re.prototype.addPopupMenuCellItems=function(t,e,n){const i=this.editorUi.editor.graph;e=i.getSelectionCell();const r=i.view.getState(e);if(t.addSeparator(),null!=r){let o=!1;if(i.getModel().isEdge(e)&&"entityRelationEdgeStyle"!=v.getValue(r.style,g.STYLE_EDGE,null)&&"arrow"!=v.getValue(r.style,g.STYLE_SHAPE,null)){const r=i.selectionCellsHandler.getHandler(e);let s=!1;if(r instanceof Y&&null!=r.bends&&r.bends.length>2){const t=r.getHandleForEvent(i.updateMouseEvent(new I(n))),e=this.editorUi.actions.get("removeWaypoint");e.handler=r,e.index=t,s=t>0&&t<r.bends.length-1}t.addSeparator(),this.addMenuItem(t,"turn",null,n,null,f.get("reverse")),this.addMenuItems(t,[s?"removeWaypoint":"addWaypoint"],null,n);const l=i.getModel().getGeometry(e);o=null!=l&&null!=l.points&&l.points.length>0}1==i.getSelectionCount()&&(o||i.getModel().isVertex(e)&&i.getModel().getEdgeCount(e)>0)&&this.addMenuItems(t,["-","clearWaypoints"],null,n)}},re.prototype.addPopupMenuSelectionItems=function(t,e,n){this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(t,["-","selectVertices","selectEdges","selectAll"],null,n)},re.prototype.createMenubar=function(t){const e=new oe(this.editorUi,t),n=this.defaultMenuItems;for(var i=0;i<n.length;i++)v.bind(this,(function(t){const r=e.addMenu(f.get(n[i]),v.bind(this,(function(){t.funct.apply(this,arguments)})));this.menuCreated(t,r)}))(this.get(n[i]));return e},re.prototype.menuCreated=function(t,e,n){null!=e&&(n=null!=n?n:"geItem",t.addListener("stateChanged",(function(){e.enabled=t.enabled,t.enabled?(e.className=n,8==document.documentMode&&(e.style.color="")):(e.className=n+" mxDisabled",8==document.documentMode&&(e.style.color="#c3c3c3"))})))},oe.prototype.hideMenu=function(){this.editorUi.hideCurrentMenu()},oe.prototype.addMenu=function(t,e,n){const i=document.createElement("a");return i.className="geItem",v.write(i,t),this.addMenuHandler(i,e),null!=n?this.container.insertBefore(i,n):this.container.appendChild(i),i},oe.prototype.addMenuHandler=function(t,e){if(null!=e){let n=!0;const i=v.bind(this,(function(i){if(n&&null==t.enabled||t.enabled){this.editorUi.editor.graph.popupMenuHandler.hideMenu();const n=new b(e);n.div.className+=" geMenubarMenu",n.smartSeparators=!0,n.showDisabled=!0,n.autoExpand=!0,n.hideMenu=v.bind(this,(function(){b.prototype.hideMenu.apply(n,arguments),this.editorUi.resetCurrentMenu(),n.destroy()}));const r=v.getOffset(t);n.popup(r.x,r.y+t.offsetHeight,null,i),this.editorUi.setCurrentMenu(n,t)}C.consume(i)}));C.addListener(t,"mousemove",v.bind(this,(function(e){null!=this.editorUi.currentMenu&&this.editorUi.currentMenuElt!=t&&(this.editorUi.hideCurrentMenu(),i(e))}))),C.addListener(t,E.IS_POINTER?"pointerdown":"mousedown",v.bind(this,(function(e){n=this.currentElt!=t,e.preventDefault()}))),C.addListener(t,"click",v.bind(this,(function(t){i(t),n=!0})))}},oe.prototype.destroy=function(){},v.extend(se,y),se.prototype.isEnabled=function(){return this.enabled},se.prototype.setEnabled=function(t){this.enabled!=t&&(this.enabled=t,this.fireEvent(new A("stateChanged")))},se.prototype.execute=function(t,e){this.funct(t,e)},le.prototype.dropdownImage="data:image/gif;base64,R0lGODlhDQANAIABAHt7e////yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCREM1NkJFMjE0NEMxMUU1ODk1Q0M5MjQ0MTA4QjNDMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCREM1NkJFMzE0NEMxMUU1ODk1Q0M5MjQ0MTA4QjNDMSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQzOUMzMjZCMTQ0QjExRTU4OTVDQzkyNDQxMDhCM0MxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQzOUMzMjZDMTQ0QjExRTU4OTVDQzkyNDQxMDhCM0MxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhGMj6nL3QAjVHIu6azbvPtWAAA7",le.prototype.dropdownImageHtml='<img border="0" style="position:absolute;right:4px;top:8px;" src="'+le.prototype.dropdownImage+'" valign="middle"/>',le.prototype.selectedBackground="#d0d0d0",le.prototype.unselectedBackground="none",le.prototype.staticElements=null,le.prototype.init=function(){let t=screen.width;if(t-=screen.height>740?56:0,t>=700){const t=this.addMenu("",f.get("view")+" ("+f.get("panTooltip")+")",!0,"viewPanels",null,!0);this.addDropDownArrow(t,"geSprite-formatpanel",38,50,-4,-3,36,-8),this.addSeparator()}const e=this.addMenu("",f.get("zoom")+" (Alt+Mousewheel)",!0,"viewZoom",null,!0);var n;e.showDisabled=!0,e.style.whiteSpace="nowrap",e.style.position="relative",e.style.overflow="hidden",ae.compactUi?e.style.width=E.IS_QUIRKS?"58px":"50px":e.style.width=E.IS_QUIRKS?"62px":"36px",t>=420&&(this.addSeparator(),(n=this.addItems(["zoomIn","zoomOut"]))[0].setAttribute("title",f.get("zoomIn")+" ("+this.editorUi.actions.get("zoomIn").shortcut+")"),n[1].setAttribute("title",f.get("zoomOut")+" ("+this.editorUi.actions.get("zoomOut").shortcut+")")),this.updateZoom=v.bind(this,(function(){e.innerHTML=Math.round(100*this.editorUi.editor.graph.view.scale)+"%"+this.dropdownImageHtml,ae.compactUi&&(e.getElementsByTagName("img")[0].style.right="1px",e.getElementsByTagName("img")[0].style.top="5px")})),this.editorUi.editor.graph.view.addListener(C.EVENT_SCALE,this.updateZoom),this.editorUi.editor.addListener("resetGraphView",this.updateZoom),(n=this.addItems(["-","undo","redo"]))[1].setAttribute("title",f.get("undo")+" ("+this.editorUi.actions.get("undo").shortcut+")"),n[2].setAttribute("title",f.get("redo")+" ("+this.editorUi.actions.get("redo").shortcut+")"),t>=320&&(n=this.addItems(["-","delete"]))[1].setAttribute("title",f.get("delete")+" ("+this.editorUi.actions.get("delete").shortcut+")"),t>=550&&this.addItems(["-","toFront","toBack"]),t>=740&&(this.addItems(["-","fillColor"]),t>=780&&(this.addItems(["strokeColor"]),t>=820&&this.addItems(["shadow"]))),t>=400&&(this.addSeparator(),t>=440&&(this.edgeShapeMenu=this.addMenuFunction("",f.get("connection"),!1,v.bind(this,(function(t){this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_SHAPE,"width"],[null,null],"geIcon geSprite geSprite-connection",null,!0).setAttribute("title",f.get("line")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_SHAPE,"width"],["link",null],"geIcon geSprite geSprite-linkedge",null,!0).setAttribute("title",f.get("link")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_SHAPE,"width"],["flexArrow",null],"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",f.get("arrow")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_SHAPE,"width"],["arrow",null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",f.get("simpleArrow"))}))),this.addDropDownArrow(this.edgeShapeMenu,"geSprite-connection",44,50,0,0,22,-4)),this.edgeStyleMenu=this.addMenuFunction("geSprite-orthogonal",f.get("waypoints"),!1,v.bind(this,(function(t){this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",null,!0).setAttribute("title",f.get("straight")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle",null,null],"geIcon geSprite geSprite-orthogonal",null,!0).setAttribute("title",f.get("orthogonal")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_ELBOW,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["elbowEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalelbow",null,!0).setAttribute("title",f.get("simple")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_ELBOW,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["elbowEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalelbow",null,!0).setAttribute("title",f.get("simple")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_ELBOW,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["isometricEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",f.get("isometric")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_ELBOW,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["isometricEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalisometric",null,!0).setAttribute("title",f.get("isometric")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",f.get("curved")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",f.get("entityRelation"))}))),this.addDropDownArrow(this.edgeStyleMenu,"geSprite-orthogonal",44,50,0,0,22,-4)),this.addTableDropDown()},le.prototype.addTableDropDown=function(){this.addSeparator();var t=this.addMenuFunction("geIcon geSprite geSprite-table",f.get("table"),!1,v.bind(this,(function(e){const n=this.editorUi.editor.graph,i=n.getSelectionCell();n.isTableCell(i)||n.isTableRow(i)||n.isTable(i)?((t=e.addItem("",null,v.bind(this,(function(){try{n.insertTableColumn(i,!0)}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-insertcolumnbefore")).setAttribute("title",f.get("insertColumnBefore")),(t=e.addItem("",null,v.bind(this,(function(){try{n.insertTableColumn(i,!1)}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-insertcolumnafter")).setAttribute("title",f.get("insertColumnAfter")),(t=e.addItem("Delete column",null,v.bind(this,(function(){if(null!=i)try{n.deleteTableColumn(i)}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-deletecolumn")).setAttribute("title",f.get("deleteColumn")),(t=e.addItem("",null,v.bind(this,(function(){try{n.insertTableRow(i,!0)}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-insertrowbefore")).setAttribute("title",f.get("insertRowBefore")),(t=e.addItem("",null,v.bind(this,(function(){try{n.insertTableRow(i,!1)}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-insertrowafter")).setAttribute("title",f.get("insertRowAfter")),(t=e.addItem("",null,v.bind(this,(function(){try{n.deleteTableRow(i)}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-deleterow")).setAttribute("title",f.get("deleteRow"))):this.editorUi.menus.addInsertTableCellItem(e)})));return t.style.position="relative",t.style.whiteSpace="nowrap",t.style.overflow="hidden",t.innerHTML='<div class="geSprite geSprite-table" style="margin-left:-2px;"></div>'+this.dropdownImageHtml,t.style.width=E.IS_QUIRKS?"50px":"30px",ae.compactUi&&(t.getElementsByTagName("img")[0].style.left="22px",t.getElementsByTagName("img")[0].style.top="5px"),t},le.prototype.addDropDownArrow=function(t,e,n,i,r,o,s,l){s=null!=s?s:32,r=ae.compactUi?r:l,t.style.whiteSpace="nowrap",t.style.overflow="hidden",t.style.position="relative",t.innerHTML='<div class="geSprite '+e+'" style="margin-left:'+r+"px;margin-top:"+o+'px;"></div>'+this.dropdownImageHtml,t.style.width=E.IS_QUIRKS?i+"px":i-s+"px",E.IS_QUIRKS&&(t.style.height=ae.compactUi?"24px":"26px"),ae.compactUi&&(t.getElementsByTagName("img")[0].style.left="24px",t.getElementsByTagName("img")[0].style.top="5px",t.style.width=E.IS_QUIRKS?n+"px":n-10+"px")},le.prototype.setFontName=function(t){null!=this.fontMenu&&(this.fontMenu.innerHTML='<div style="width:60px;overflow:hidden;display:inline-block;">'+v.htmlEntities(t)+"</div>"+this.dropdownImageHtml)},le.prototype.setFontSize=function(t){null!=this.sizeMenu&&(this.sizeMenu.innerHTML='<div style="width:24px;overflow:hidden;display:inline-block;">'+t+"</div>"+this.dropdownImageHtml)},le.prototype.createTextToolbar=function(){const t=this.editorUi.editor.graph,e=this.addMenu("",f.get("style"),!0,"formatBlock");e.style.position="relative",e.style.whiteSpace="nowrap",e.style.overflow="hidden",e.innerHTML=f.get("style")+this.dropdownImageHtml,ae.compactUi&&(e.style.paddingRight="18px",e.getElementsByTagName("img")[0].style.right="1px",e.getElementsByTagName("img")[0].style.top="5px"),this.addSeparator(),this.fontMenu=this.addMenu("",f.get("fontFamily"),!0,"fontFamily"),this.fontMenu.style.position="relative",this.fontMenu.style.whiteSpace="nowrap",this.fontMenu.style.overflow="hidden",this.fontMenu.style.width=E.IS_QUIRKS?"80px":"60px",this.setFontName(re.prototype.defaultFont),ae.compactUi&&(this.fontMenu.style.paddingRight="18px",this.fontMenu.getElementsByTagName("img")[0].style.right="1px",this.fontMenu.getElementsByTagName("img")[0].style.top="5px"),this.addSeparator(),this.sizeMenu=this.addMenu(re.prototype.defaultFontSize,f.get("fontSize"),!0,"fontSize"),this.sizeMenu.style.position="relative",this.sizeMenu.style.whiteSpace="nowrap",this.sizeMenu.style.overflow="hidden",this.sizeMenu.style.width=E.IS_QUIRKS?"44px":"24px",this.setFontSize(re.prototype.defaultFontSize),ae.compactUi&&(this.sizeMenu.style.paddingRight="18px",this.sizeMenu.getElementsByTagName("img")[0].style.right="1px",this.sizeMenu.getElementsByTagName("img")[0].style.top="5px");const n=this.addItems(["-","undo","redo","-","bold","italic","underline"]);n[1].setAttribute("title",f.get("undo")+" ("+this.editorUi.actions.get("undo").shortcut+")"),n[2].setAttribute("title",f.get("redo")+" ("+this.editorUi.actions.get("redo").shortcut+")"),n[4].setAttribute("title",f.get("bold")+" ("+this.editorUi.actions.get("bold").shortcut+")"),n[5].setAttribute("title",f.get("italic")+" ("+this.editorUi.actions.get("italic").shortcut+")"),n[6].setAttribute("title",f.get("underline")+" ("+this.editorUi.actions.get("underline").shortcut+")");const i=this.addMenuFunction("",f.get("align"),!1,v.bind(this,(function(e){(o=e.addItem("",null,v.bind(this,(function(e){t.cellEditor.alignText(g.ALIGN_LEFT,e)})),null,"geIcon geSprite geSprite-left")).setAttribute("title",f.get("left")),(o=e.addItem("",null,v.bind(this,(function(e){t.cellEditor.alignText(g.ALIGN_CENTER,e)})),null,"geIcon geSprite geSprite-center")).setAttribute("title",f.get("center")),(o=e.addItem("",null,v.bind(this,(function(e){t.cellEditor.alignText(g.ALIGN_RIGHT,e)})),null,"geIcon geSprite geSprite-right")).setAttribute("title",f.get("right")),(o=e.addItem("",null,v.bind(this,(function(){document.execCommand("justifyfull",!1,null)})),null,"geIcon geSprite geSprite-justifyfull")).setAttribute("title",f.get("justifyfull")),(o=e.addItem("",null,v.bind(this,(function(){document.execCommand("insertorderedlist",!1,null)})),null,"geIcon geSprite geSprite-orderedlist")).setAttribute("title",f.get("numberedList")),(o=e.addItem("",null,v.bind(this,(function(){document.execCommand("insertunorderedlist",!1,null)})),null,"geIcon geSprite geSprite-unorderedlist")).setAttribute("title",f.get("bulletedList")),(o=e.addItem("",null,v.bind(this,(function(){document.execCommand("outdent",!1,null)})),null,"geIcon geSprite geSprite-outdent")).setAttribute("title",f.get("decreaseIndent")),(o=e.addItem("",null,v.bind(this,(function(){document.execCommand("indent",!1,null)})),null,"geIcon geSprite geSprite-indent")).setAttribute("title",f.get("increaseIndent"))})));i.style.position="relative",i.style.whiteSpace="nowrap",i.style.overflow="hidden",i.innerHTML='<div class="geSprite geSprite-left" style="margin-left:-2px;"></div>'+this.dropdownImageHtml,i.style.width=E.IS_QUIRKS?"50px":"30px",ae.compactUi&&(i.getElementsByTagName("img")[0].style.left="22px",i.getElementsByTagName("img")[0].style.top="5px");const r=this.addMenuFunction("",f.get("format"),!1,v.bind(this,(function(t){(o=t.addItem("",null,this.editorUi.actions.get("subscript").funct,null,"geIcon geSprite geSprite-subscript")).setAttribute("title",f.get("subscript")+" ("+ue.ctrlKey+"+,)"),(o=t.addItem("",null,this.editorUi.actions.get("superscript").funct,null,"geIcon geSprite geSprite-superscript")).setAttribute("title",f.get("superscript")+" ("+ue.ctrlKey+"+.)"),(o=t.addItem("",null,this.editorUi.actions.get("fontColor").funct,null,"geIcon geSprite geSprite-fontcolor")).setAttribute("title",f.get("fontColor")),(o=t.addItem("",null,this.editorUi.actions.get("backgroundColor").funct,null,"geIcon geSprite geSprite-fontbackground")).setAttribute("title",f.get("backgroundColor")),(o=t.addItem("",null,v.bind(this,(function(){document.execCommand("removeformat",!1,null)})),null,"geIcon geSprite geSprite-removeformat")).setAttribute("title",f.get("removeFormat"))})));r.style.position="relative",r.style.whiteSpace="nowrap",r.style.overflow="hidden",r.innerHTML='<div class="geSprite geSprite-dots" style="margin-left:-2px;"></div>'+this.dropdownImageHtml,r.style.width=E.IS_QUIRKS?"50px":"30px",ae.compactUi&&(r.getElementsByTagName("img")[0].style.left="22px",r.getElementsByTagName("img")[0].style.top="5px"),this.addSeparator(),this.addButton("geIcon geSprite geSprite-code",f.get("html"),(function(){t.cellEditor.toggleViewMode(),t.cellEditor.textarea.innerHTML.length>0&&(" "!=t.cellEditor.textarea.innerHTML||!t.cellEditor.clearOnChange)&&window.setTimeout((function(){document.execCommand("selectAll",!1,null)}))})),this.addSeparator();var o=this.addMenuFunction("geIcon geSprite geSprite-table",f.get("table"),!1,v.bind(this,(function(e){let n=t.getSelectedElement();const i=t.getParentByNames(n,["TD","TH"],t.cellEditor.text2),r=t.getParentByName(n,"TR",t.cellEditor.text2);if(null==r)this.editorUi.menus.addInsertTableItem(e);else{const o=t.getParentByName(r,"TABLE",t.cellEditor.text2);n=e.addItem("",null,v.bind(this,(function(){try{t.selectNode(t.insertColumn(o,null!=i?i.cellIndex:0))}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-insertcolumnbefore"),n.setAttribute("title",f.get("insertColumnBefore")),n=e.addItem("",null,v.bind(this,(function(){try{t.selectNode(t.insertColumn(o,null!=i?i.cellIndex+1:-1))}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-insertcolumnafter"),n.setAttribute("title",f.get("insertColumnAfter")),n=e.addItem("Delete column",null,v.bind(this,(function(){if(null!=i)try{t.deleteColumn(o,i.cellIndex)}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-deletecolumn"),n.setAttribute("title",f.get("deleteColumn")),n=e.addItem("",null,v.bind(this,(function(){try{t.selectNode(t.insertRow(o,r.sectionRowIndex))}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-insertrowbefore"),n.setAttribute("title",f.get("insertRowBefore")),n=e.addItem("",null,v.bind(this,(function(){try{t.selectNode(t.insertRow(o,r.sectionRowIndex+1))}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-insertrowafter"),n.setAttribute("title",f.get("insertRowAfter")),n=e.addItem("",null,v.bind(this,(function(){try{t.deleteRow(o,r.sectionRowIndex)}catch(t){this.editorUi.handleError(t)}})),null,"geIcon geSprite geSprite-deleterow"),n.setAttribute("title",f.get("deleteRow")),n=e.addItem("",null,v.bind(this,(function(){const t=o.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,(function(t,e,n,i){return"#"+("0"+Number(e).toString(16)).substr(-2)+("0"+Number(n).toString(16)).substr(-2)+("0"+Number(i).toString(16)).substr(-2)}));this.editorUi.pickColor(t,(function(t){null==t||t==g.NONE?(o.removeAttribute("border"),o.style.border="",o.style.borderCollapse=""):(o.setAttribute("border","1"),o.style.border="1px solid "+t,o.style.borderCollapse="collapse")}))})),null,"geIcon geSprite geSprite-strokecolor"),n.setAttribute("title",f.get("borderColor")),n=e.addItem("",null,v.bind(this,(function(){const t=o.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,(function(t,e,n,i){return"#"+("0"+Number(e).toString(16)).substr(-2)+("0"+Number(n).toString(16)).substr(-2)+("0"+Number(i).toString(16)).substr(-2)}));this.editorUi.pickColor(t,(function(t){null==t||t==g.NONE?o.style.backgroundColor="":o.style.backgroundColor=t}))})),null,"geIcon geSprite geSprite-fillcolor"),n.setAttribute("title",f.get("backgroundColor")),n=e.addItem("",null,v.bind(this,(function(){const t=o.getAttribute("cellPadding")||0,e=new ge(this.editorUi,t,f.get("apply"),v.bind(this,(function(t){null!=t&&t.length>0?o.setAttribute("cellPadding",t):o.removeAttribute("cellPadding")})),f.get("spacing"));this.editorUi.showDialog(e.container,300,80,!0,!0),e.init()})),null,"geIcon geSprite geSprite-fit"),n.setAttribute("title",f.get("spacing")),n=e.addItem("",null,v.bind(this,(function(){o.setAttribute("align","left")})),null,"geIcon geSprite geSprite-left"),n.setAttribute("title",f.get("left")),n=e.addItem("",null,v.bind(this,(function(){o.setAttribute("align","center")})),null,"geIcon geSprite geSprite-center"),n.setAttribute("title",f.get("center")),n=e.addItem("",null,v.bind(this,(function(){o.setAttribute("align","right")})),null,"geIcon geSprite geSprite-right"),n.setAttribute("title",f.get("right"))}})));o.style.position="relative",o.style.whiteSpace="nowrap",o.style.overflow="hidden",o.innerHTML='<div class="geSprite geSprite-table" style="margin-left:-2px;"></div>'+this.dropdownImageHtml,o.style.width=E.IS_QUIRKS?"50px":"30px",ae.compactUi&&(o.getElementsByTagName("img")[0].style.left="22px",o.getElementsByTagName("img")[0].style.top="5px")},le.prototype.hideMenu=function(){this.editorUi.hideCurrentMenu()},le.prototype.addMenu=function(t,e,n,i,r,o,s){const l=this.editorUi.menus.get(i),a=this.addMenuFunction(t,e,n,(function(){l.funct.apply(l,arguments)}),r,o);return s||l.addListener("stateChanged",(function(){a.setEnabled(l.enabled)})),a},le.prototype.addMenuFunction=function(t,e,n,i,r,o){return this.addMenuFunctionInContainer(null!=r?r:this.container,t,e,n,i,o)},le.prototype.addMenuFunctionInContainer=function(t,e,n,i,r,o){const s=i?this.createLabel(e):this.createButton(e);return this.initElement(s,n),this.addMenuHandler(s,i,r,o),t.appendChild(s),s},le.prototype.addSeparator=function(t){t=null!=t?t:this.container;const e=document.createElement("div");return e.className="geSeparator",t.appendChild(e),e},le.prototype.addItems=function(t,e,n){const i=[];for(let r=0;r<t.length;r++){const o=t[r];"-"==o?i.push(this.addSeparator(e)):i.push(this.addItem("geSprite-"+o.toLowerCase(),o,e,n))}return i},le.prototype.addItem=function(t,e,n,i){const r=this.editorUi.actions.get(e);let o=null;if(null!=r){let e=r.label;null!=r.shortcut&&(e+=" ("+r.shortcut+")"),o=this.addButton(t,e,r.funct,n),i||(o.setEnabled(r.enabled),r.addListener("stateChanged",(function(){o.setEnabled(r.enabled)})))}return o},le.prototype.addButton=function(t,e,n,i){const r=this.createButton(t);return i=null!=i?i:this.container,this.initElement(r,e),this.addClickHandler(r,n),i.appendChild(r),r},le.prototype.initElement=function(t,e){null!=e&&t.setAttribute("title",e),this.addEnabledState(t)},le.prototype.addEnabledState=function(t){const e=t.className;t.setEnabled=function(n){t.enabled=n,t.className=n?e:e+" mxDisabled"},t.setEnabled(!0)},le.prototype.addClickHandler=function(t,e){null!=e&&(C.addListener(t,"click",(function(n){t.enabled&&e(n),C.consume(n)})),C.addListener(t,E.IS_POINTER?"pointerdown":"mousedown",v.bind(this,(function(t){t.preventDefault()}))))},le.prototype.createButton=function(t){const e=document.createElement("a");e.className="geButton";const n=document.createElement("div");return null!=t&&(n.className="geSprite "+t),e.appendChild(n),e},le.prototype.createLabel=function(t){const e=document.createElement("a");return e.className="geLabel",v.write(e,t),e},le.prototype.addMenuHandler=function(t,e,n,i){if(null!=n){const r=this.editorUi.editor.graph;let o=null,s=!0;C.addListener(t,"click",v.bind(this,(function(l){if(s&&(null==t.enabled||t.enabled)){r.popupMenuHandler.hideMenu(),o=new b(n),o.div.className+=" geToolbarMenu",o.showDisabled=i,o.labels=e,o.autoExpand=!0;const s=v.getOffset(t);o.popup(s.x,s.y+t.offsetHeight,null,l),this.editorUi.setCurrentMenu(o,t),!e&&o.div.scrollHeight>o.div.clientHeight&&(o.div.style.width="40px"),o.hideMenu=v.bind(this,(function(){b.prototype.hideMenu.apply(o,arguments),this.editorUi.resetCurrentMenu(),o.destroy()})),o.addListener(C.EVENT_HIDE,v.bind(this,(function(){this.currentElt=null})))}s=!0,C.consume(l)}))),C.addListener(t,E.IS_POINTER?"pointerdown":"mousedown",v.bind(this,(function(e){s=this.currentElt!=t,e.preventDefault()})))}},le.prototype.destroy=function(){null!=this.gestureHandler&&(C.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null)},v.extend(ae,y),ae.compactUi=!0,ae.prototype.splitSize=E.IS_TOUCH||E.IS_POINTER?12:8,ae.prototype.menubarHeight=30,ae.prototype.formatEnabled=!0,ae.prototype.formatWidth=240,ae.prototype.toolbarHeight=38,ae.prototype.footerHeight=28,ae.prototype.sidebarFooterHeight=34,ae.prototype.hsplitPosition=screen.width<=640?118:240,ae.prototype.allowAnimation=!0,ae.prototype.lightboxMaxFitScale=2,ae.prototype.lightboxVerticalDivider=4,ae.prototype.hsplitClickEnabled=!1,ae.prototype.init=function(){const t=this.editor.graph;if(!t.standalone){C.addListener(t.container,"scroll",v.bind(this,(function(){t.tooltipHandler.hide(),null!=t.connectionHandler&&null!=t.connectionHandler.constraintHandler&&t.connectionHandler.constraintHandler.reset()}))),t.addListener(C.ESCAPE,v.bind(this,(function(){t.tooltipHandler.hide();const e=t.getRubberband();null!=e&&e.cancel()}))),C.addListener(t.container,"keydown",v.bind(this,(function(t){this.onKeyDown(t)}))),C.addListener(t.container,"keypress",v.bind(this,(function(t){this.onKeyPress(t)}))),this.addUndoListener(),this.addBeforeUnloadListener(),t.getSelectionModel().addListener(C.CHANGE,v.bind(this,(function(){this.updateActionStates()}))),t.getModel().addListener(C.CHANGE,v.bind(this,(function(){this.updateActionStates()})));const e=t.setDefaultParent,n=this;this.editor.graph.setDefaultParent=function(){e.apply(this,arguments),n.updateActionStates()},this.updateActionStates(),this.initClipboard(),this.initCanvas(),null!=this.format&&this.format.init()}},ae.prototype.onKeyDown=function(t){const e=this.editor.graph;9!=t.which||!e.isEnabled()||C.isAltDown(t)||e.isEditing()&&C.isShiftDown(t)||(e.isEditing()?e.stopEditing(!1):e.selectCell(!C.isShiftDown(t)),C.consume(t))},ae.prototype.onKeyPress=function(t){const e=this.editor.graph;if(this.isImmediateEditingEvent(t)&&!e.isEditing()&&!e.isSelectionEmpty()&&0!==t.which&&27!==t.which&&!C.isAltDown(t)&&!C.isControlDown(t)&&!C.isMetaDown(t)&&(e.escape(),e.startEditing(),E.IS_FF)){const n=e.cellEditor;if(null!=n.textarea){n.textarea.innerHTML=String.fromCharCode(t.which);const e=document.createRange();e.selectNodeContents(n.textarea),e.collapse(!1);const i=window.getSelection();i.removeAllRanges(),i.addRange(e)}}},ae.prototype.isImmediateEditingEvent=function(){return!0},ae.prototype.getCssClassForMarker=function(t,e,n,i){let r="";return r="flexArrow"==e?null!=n&&n!=g.NONE?"geSprite geSprite-"+t+"blocktrans":"geSprite geSprite-noarrow":"box"==n||"halfCircle"==n?"geSprite geSvgSprite geSprite-"+n+("end"==t?" geFlipSprite":""):n==g.ARROW_CLASSIC?"1"==i?"geSprite geSprite-"+t+"classic":"geSprite geSprite-"+t+"classictrans":n==g.ARROW_CLASSIC_THIN?"1"==i?"geSprite geSprite-"+t+"classicthin":"geSprite geSprite-"+t+"classicthintrans":n==g.ARROW_OPEN?"geSprite geSprite-"+t+"open":n==g.ARROW_OPEN_THIN?"geSprite geSprite-"+t+"openthin":n==g.ARROW_BLOCK?"1"==i?"geSprite geSprite-"+t+"block":"geSprite geSprite-"+t+"blocktrans":n==g.ARROW_BLOCK_THIN?"1"==i?"geSprite geSprite-"+t+"blockthin":"geSprite geSprite-"+t+"blockthintrans":n==g.ARROW_OVAL?"1"==i?"geSprite geSprite-"+t+"oval":"geSprite geSprite-"+t+"ovaltrans":n==g.ARROW_DIAMOND?"1"==i?"geSprite geSprite-"+t+"diamond":"geSprite geSprite-"+t+"diamondtrans":n==g.ARROW_DIAMOND_THIN?"1"==i?"geSprite geSprite-"+t+"thindiamond":"geSprite geSprite-"+t+"thindiamondtrans":"openAsync"==n?"geSprite geSprite-"+t+"openasync":"dash"==n?"geSprite geSprite-"+t+"dash":"cross"==n?"geSprite geSprite-"+t+"cross":"async"==n?"1"==i?"geSprite geSprite-"+t+"async":"geSprite geSprite-"+t+"asynctrans":"circle"==n||"circlePlus"==n?"1"==i||"circle"==n?"geSprite geSprite-"+t+"circle":"geSprite geSprite-"+t+"circleplus":"ERone"==n?"geSprite geSprite-"+t+"erone":"ERmandOne"==n?"geSprite geSprite-"+t+"eronetoone":"ERmany"==n?"geSprite geSprite-"+t+"ermany":"ERoneToMany"==n?"geSprite geSprite-"+t+"eronetomany":"ERzeroToOne"==n?"geSprite geSprite-"+t+"eroneopt":"ERzeroToMany"==n?"geSprite geSprite-"+t+"ermanyopt":"geSprite geSprite-noarrow",r},ae.prototype.createMenus=function(){return new re(this)},ae.prototype.updatePasteActionStates=function(){const t=this.editor.graph,e=this.actions.get("paste"),n=this.actions.get("pasteHere");e.setEnabled(this.editor.graph.cellEditor.isContentEditing()||!z.isEmpty()&&t.isEnabled()&&!t.isCellLocked(t.getDefaultParent())),n.setEnabled(e.isEnabled())},ae.prototype.initClipboard=function(){const t=this,e=z.cut;z.cut=function(n){n.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):e.apply(this,arguments),t.updatePasteActionStates()},z.copy=function(e){let n=null;if(e.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{n=n||e.getSelectionCells(),n=e.getExportableCells(e.model.getTopmostCells(n));const t=new Object,i=e.createCellLookup(n),r=e.cloneCells(n,null,t),o=new B,s=o.getChildAt(o.getRoot(),0);for(let l=0;l<r.length;l++){o.add(s,r[l]);const t=e.view.getState(n[l]);if(null!=t){const s=e.getCellGeometry(r[l]);null!=s&&s.relative&&!o.isEdge(n[l])&&null==i[lt.get(o.getParent(n[l]))]&&(s.offset=null,s.relative=!1,s.x=t.x/t.view.scale-t.view.translate.x,s.y=t.y/t.view.scale-t.view.translate.y)}}e.updateCustomLinks(e.createCellMapping(t,i),r),z.insertCount=1,z.setCells(r)}return t.updatePasteActionStates(),n};const n=z.paste;z.paste=function(e){let i=null;return e.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):i=n.apply(this,arguments),t.updatePasteActionStates(),i};const i=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){i.apply(this,arguments),t.updatePasteActionStates()};const r=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(){r.apply(this,arguments),t.updatePasteActionStates()},this.updatePasteActionStates()},ae.prototype.lazyZoomDelay=20,ae.prototype.wheelZoomDelay=400,ae.prototype.buttonZoomDelay=600,ae.prototype.initCanvas=function(){const t=this.editor.graph;t.timerAutoScroll=!0,t.getPagePadding=function(){return new T(Math.max(0,Math.round((t.container.offsetWidth-34)/t.view.scale)),Math.max(0,Math.round((t.container.offsetHeight-34)/t.view.scale)))},t.view.getBackgroundPageBounds=function(){const t=this.graph.getPageLayout(),e=this.graph.getPageSize();return new w(this.scale*(this.translate.x+t.x*e.width),this.scale*(this.translate.y+t.y*e.height),this.scale*t.width*e.width,this.scale*t.height*e.height)},t.getPreferredPageSize=function(){const t=this.getPageLayout(),e=this.getPageSize();return new w(0,0,t.width*e.width,t.height*e.height)};let e=null;const n=this;if(this.editor.isChromelessView()){e=v.bind(this,(function(e,n,i,r){if(null!=t.container&&!t.isViewer()){i=null!=i?i:0,r=null!=r?r:0;const o=t.pageVisible?t.view.getBackgroundPageBounds():t.getGraphBounds(),s=v.hasScrollbars(t.container),l=t.view.translate,a=t.view.scale,h=w.fromRectangle(o);h.x=h.x/a-l.x,h.y=h.y/a-l.y,h.width/=a,h.height/=a;const u=t.container.scrollTop,d=t.container.scrollLeft;let c=E.IS_QUIRKS||document.documentMode>=8?20:14;8!=document.documentMode&&9!=document.documentMode||(c+=3);const p=t.container.offsetWidth-c,g=t.container.offsetHeight-c,m=e?Math.max(.3,Math.min(n||1,p/h.width)):a;let x=(p-m*h.width)/2/m,y=0==this.lightboxVerticalDivider?0:(g-m*h.height)/this.lightboxVerticalDivider/m;if(s&&(x=Math.max(x,0),y=Math.max(y,0)),s||o.width<p||o.height<g)t.view.scaleAndTranslate(m,Math.floor(x-h.x),Math.floor(y-h.y)),t.container.scrollTop=u*m/a,t.container.scrollLeft=d*m/a;else if(0!=i||0!=r){const e=t.view.translate;t.view.setTranslate(Math.floor(e.x+i/a),Math.floor(e.y+r/a))}}})),this.chromelessResize=e,this.chromelessWindowResize=v.bind(this,(function(){this.chromelessResize(!1)}));const i=v.bind(this,(function(){this.chromelessWindowResize(!1)}));C.addListener(window,"resize",i),this.destroyFunctions.push((function(){C.removeListener(window,"resize",i)})),this.editor.addListener("resetGraphView",v.bind(this,(function(){this.chromelessResize(!0)}))),this.actions.get("zoomIn").funct=v.bind(this,(function(){t.zoomIn(),this.chromelessResize(!1)})),this.actions.get("zoomOut").funct=v.bind(this,(function(){t.zoomOut(),this.chromelessResize(!1)})),this.chromelessToolbar=document.createElement("div"),this.chromelessToolbar.style.position="fixed",this.chromelessToolbar.style.overflow="hidden",this.chromelessToolbar.style.boxSizing="border-box",this.chromelessToolbar.style.whiteSpace="nowrap",this.chromelessToolbar.style.backgroundColor="#000000",this.chromelessToolbar.style.padding="10px 10px 8px 10px",this.chromelessToolbar.style.left=t.isViewer()?"0":"50%",E.IS_VML||(v.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px"),v.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out"));const r=v.bind(this,(function(){const e=v.getCurrentStyle(t.container);t.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=e?parseInt(e["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"}));this.editor.addListener("resetGraphView",r),r();const o=v.bind(this,(function(t,e,n){const i=document.createElement("span");i.style.paddingLeft="8px",i.style.paddingRight="8px",i.style.cursor="pointer",C.addListener(i,"click",t),null!=n&&i.setAttribute("title",n);const r=document.createElement("img");return r.setAttribute("border","0"),r.setAttribute("src",e),i.appendChild(r),this.chromelessToolbar.appendChild(i),i})),s=o(v.bind(this,(function(t){this.actions.get("previousPage").funct(),C.consume(t)})),ue.previousLargeImage,f.get("previousPage")),l=document.createElement("div");l.style.display="inline-block",l.style.verticalAlign="top",l.style.fontFamily="Helvetica,Arial",l.style.marginTop="8px",l.style.fontSize="14px",l.style.color="#ffffff",this.chromelessToolbar.appendChild(l);const a=o(v.bind(this,(function(t){this.actions.get("nextPage").funct(),C.consume(t)})),ue.nextLargeImage,f.get("nextPage")),h=v.bind(this,(function(){null!=this.pages&&this.pages.length>1&&null!=this.currentPage&&(l.innerHTML="",v.write(l,v.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))}));s.style.paddingLeft="0px",s.style.paddingRight="4px",a.style.paddingLeft="4px",a.style.paddingRight="0px";const u=v.bind(this,(function(){null!=this.pages&&this.pages.length>1&&null!=this.currentPage?(a.style.display="",s.style.display="",l.style.display="inline-block"):(a.style.display="none",s.style.display="none",l.style.display="none"),h()}));this.editor.addListener("resetGraphView",u),this.editor.addListener("pageSelected",h),o(v.bind(this,(function(t){this.actions.get("zoomOut").funct(),C.consume(t)})),ue.zoomOutLargeImage,f.get("zoomOut")+" (Alt+Mousewheel)"),o(v.bind(this,(function(t){this.actions.get("zoomIn").funct(),C.consume(t)})),ue.zoomInLargeImage,f.get("zoomIn")+" (Alt+Mousewheel)"),o(v.bind(this,(function(e){t.isLightboxView()?(1==t.view.scale?this.lightboxFit():t.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0),C.consume(e)})),ue.actualSizeLargeImage,f.get("fit"));let d=null,c=null;const p=v.bind(this,(function(t){null!=d&&(window.clearTimeout(d),d=null),null!=c&&(window.clearTimeout(c),c=null),d=window.setTimeout(v.bind(this,(function(){v.setOpacity(this.chromelessToolbar,0),d=null,c=window.setTimeout(v.bind(this,(function(){this.chromelessToolbar.style.display="none",c=null})),600)})),t||200)})),g=v.bind(this,(function(t){null!=d&&(window.clearTimeout(d),d=null),null!=c&&(window.clearTimeout(c),c=null),this.chromelessToolbar.style.display="",v.setOpacity(this.chromelessToolbar,t||30)}));if(this.addChromelessToolbarItems(o),null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||o(v.bind(this,(function(e){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):t.openLink(this.editor.editButtonLink,"editWindow"),C.consume(e)})),ue.editLargeImage,f.get("edit")),null!=this.lightboxToolbarActions)for(let t=0;t<this.lightboxToolbarActions.length;t++){const e=this.lightboxToolbarActions[t];o(e.fn,e.icon,e.tooltip)}this.chromelessToolbar.style.display="none",t.isViewer()||v.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)"),t.container.appendChild(this.chromelessToolbar),C.addListener(t.container,E.IS_POINTER?"pointermove":"mousemove",v.bind(this,(function(t){C.isTouchEvent(t)||(C.isShiftDown(t)||g(30),p())}))),C.addListener(this.chromelessToolbar,E.IS_POINTER?"pointermove":"mousemove",(function(t){C.consume(t)})),C.addListener(this.chromelessToolbar,"mouseenter",v.bind(this,(function(t){C.isShiftDown(t)?p():g(100)}))),C.addListener(this.chromelessToolbar,"mousemove",v.bind(this,(function(t){C.isShiftDown(t)?p():g(100),C.consume(t)}))),C.addListener(this.chromelessToolbar,"mouseleave",v.bind(this,(function(t){C.isTouchEvent(t)||g(30)})));const m=t.getTolerance();t.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(e,n){this.startX=n.getGraphX(),this.startY=n.getGraphY(),this.scrollLeft=t.container.scrollLeft,this.scrollTop=t.container.scrollTop},mouseMove:function(){},mouseUp:function(e,i){C.isTouchEvent(i.getEvent())&&Math.abs(this.scrollLeft-t.container.scrollLeft)<m&&Math.abs(this.scrollTop-t.container.scrollTop)<m&&Math.abs(this.startX-i.getGraphX())<m&&Math.abs(this.startY-i.getGraphY())<m&&(parseFloat(n.chromelessToolbar.style.opacity||0)>0?p():g(30))}})}else if(this.editor.extendCanvas){const e=t.view.validate;if(t.view.validate=function(){if(null!=this.graph.container&&v.hasScrollbars(this.graph.container)){const t=this.graph.getPagePadding(),e=this.graph.getPageSize();this.translate.x=t.x-(this.x0||0)*e.width,this.translate.y=t.y-(this.y0||0)*e.height}e.apply(this,arguments)},!t.isViewer()){const e=t.sizeDidChange;t.sizeDidChange=function(){if(null!=this.container&&v.hasScrollbars(this.container)){const n=this.getPageLayout(),i=this.getPagePadding(),r=this.getPageSize(),o=Math.ceil(2*i.x+n.width*r.width),s=Math.ceil(2*i.y+n.height*r.height),l=t.minimumGraphSize;null!=l&&l.width==o&&l.height==s||(t.minimumGraphSize=new w(0,0,o,s));const a=i.x-n.x*r.width,h=i.y-n.y*r.height;if(!this.autoTranslate&&(this.view.translate.x!=a||this.view.translate.y!=h)){this.autoTranslate=!0,this.view.x0=n.x,this.view.y0=n.y;const e=t.view.translate.x,i=t.view.translate.y;return t.view.setTranslate(a,h),t.container.scrollLeft+=Math.round((a-e)*t.view.scale),t.container.scrollTop+=Math.round((h-i)*t.view.scale),void(this.autoTranslate=!1)}e.apply(this,arguments)}else this.fireEvent(new A(C.SIZE,"bounds",this.getGraphBounds()))}}}const i=t.view.getBackgroundPane(),r=t.view.getDrawPane();t.cumulativeZoomFactor=1;let o=null,s=null,l=null,a=null;const h=function(h){null!=o&&window.clearTimeout(o),window.setTimeout((function(){t.isMouseDown||(o=window.setTimeout(v.bind(this,(function(){t.isFastZoomEnabled()&&(null!=t.view.backgroundPageShape&&null!=t.view.backgroundPageShape.node&&(v.setPrefixedStyle(t.view.backgroundPageShape.node.style,"transform-origin",null),v.setPrefixedStyle(t.view.backgroundPageShape.node.style,"transform",null)),r.style.transformOrigin="",i.style.transformOrigin="",E.IS_SF?(r.style.transform="scale(1)",i.style.transform="scale(1)",window.setTimeout((function(){r.style.transform="",i.style.transform=""}),0)):(r.style.transform="",i.style.transform=""),t.view.getDecoratorPane().style.opacity="",t.view.getOverlayPane().style.opacity="");const h=new T(t.container.scrollLeft,t.container.scrollTop),u=v.getOffset(t.container),d=t.view.scale;let c=0,p=0;null!=s&&(c=t.container.offsetWidth/2-s.x+u.x,p=t.container.offsetHeight/2-s.y+u.y),t.zoom(t.cumulativeZoomFactor),t.view.scale!=d&&(null!=l&&(c+=h.x-l.x,p+=h.y-l.y),null!=e&&n.chromelessResize(!1,null,c*(t.cumulativeZoomFactor-1),p*(t.cumulativeZoomFactor-1)),!v.hasScrollbars(t.container)||0==c&&0==p||(t.container.scrollLeft-=c*(t.cumulativeZoomFactor-1),t.container.scrollTop-=p*(t.cumulativeZoomFactor-1))),null!=a&&r.setAttribute("filter",a),t.cumulativeZoomFactor=1,o=null,l=null,s=null,a=null})),null!=h?h:t.isFastZoomEnabled()?n.wheelZoomDelay:n.lazyZoomDelay))}),0)};t.lazyZoom=function(e,o,u){if((o=o||!t.scrollbars)&&(s=new T(t.container.offsetLeft+t.container.clientWidth/2,t.container.offsetTop+t.container.clientHeight/2)),e?this.view.scale*this.cumulativeZoomFactor<=.15?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):this.view.scale*this.cumulativeZoomFactor<=.15?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale),this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale,t.isFastZoomEnabled()){null==a&&""!=r.getAttribute("filter")&&(a=r.getAttribute("filter"),r.removeAttribute("filter")),l=new T(t.container.scrollLeft,t.container.scrollTop);const e=o?t.container.scrollLeft+t.container.clientWidth/2:s.x+t.container.scrollLeft-t.container.offsetLeft,h=o?t.container.scrollTop+t.container.clientHeight/2:s.y+t.container.scrollTop-t.container.offsetTop;if(r.style.transformOrigin=e+"px "+h+"px",r.style.transform="scale("+this.cumulativeZoomFactor+")",i.style.transformOrigin=e+"px "+h+"px",i.style.transform="scale("+this.cumulativeZoomFactor+")",null!=t.view.backgroundPageShape&&null!=t.view.backgroundPageShape.node){const e=t.view.backgroundPageShape.node;v.setPrefixedStyle(e.style,"transform-origin",(o?t.container.clientWidth/2+t.container.scrollLeft-e.offsetLeft+"px":s.x+t.container.scrollLeft-e.offsetLeft-t.container.offsetLeft+"px")+" "+(o?t.container.clientHeight/2+t.container.scrollTop-e.offsetTop+"px":s.y+t.container.scrollTop-e.offsetTop-t.container.offsetTop+"px")),v.setPrefixedStyle(e.style,"transform","scale("+this.cumulativeZoomFactor+")")}t.view.getDecoratorPane().style.opacity="0",t.view.getOverlayPane().style.opacity="0",null!=n.hoverIcons&&n.hoverIcons.reset()}h(u)},C.addGestureListeners(t.container,(function(){null!=o&&window.clearTimeout(o)}),null,(function(){1!=t.cumulativeZoomFactor&&h(0)})),C.addListener(t.container,"scroll",(function(){o&&!t.isMouseDown&&1!=t.cumulativeZoomFactor&&h(0)})),C.addMouseWheelListener(v.bind(this,(function(e,n,i){if(null==this.dialogs||0==this.dialogs.length)if(!t.scrollbars&&t.isScrollWheelEvent(e)){const i=t.view.getTranslate(),r=40/t.view.scale;C.isShiftDown(e)?t.view.setTranslate(i.x+(n?-r:r),i.y):t.view.setTranslate(i.x,i.y+(n?r:-r))}else if(i||t.isZoomWheelEvent(e)){let i=C.getSource(e);for(;null!=i;){if(i==t.container)return t.tooltipHandler.hideTooltip(),s=new T(C.getClientX(e),C.getClientY(e)),t.lazyZoom(n),C.consume(e),!1;i=i.parentNode}}})),t.container),t.panningHandler.zoomGraph=function(e){t.cumulativeZoomFactor=e.scale,t.lazyZoom(e.scale>0,!0),C.consume(e)}},ae.prototype.addChromelessToolbarItems=function(t){t(v.bind(this,(function(t){this.actions.get("print").funct(),C.consume(t)})),ue.printLargeImage,f.get("print"))},ae.prototype.createTemporaryGraph=function(t){const e=new te(document.createElement("div"),null,null,t);return e.resetViewOnRootChange=!1,e.setConnectable(!1),e.gridEnabled=!1,e.autoScroll=!1,e.setTooltips(!1),e.setEnabled(!1),e.container.style.visibility="hidden",e.container.style.position="absolute",e.container.style.overflow="hidden",e.container.style.height="1px",e.container.style.width="1px",e},ae.prototype.toggleFormatPanel=function(t){t=null!=t?t:0==this.formatWidth,null!=this.format&&(this.formatWidth=t?240:0,this.formatContainer.style.display=t?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new A("formatWidthChanged")))},ae.prototype.lightboxFit=function(t){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{const e=60;this.editor.graph.maxFitScale=this.lightboxMaxFitScale,this.editor.graph.fit(e,null,null,null,null,null,t),this.editor.graph.maxFitScale=null}},ae.prototype.isDiagramEmpty=function(){const t=this.editor.graph.getModel();return 1==t.getChildCount(t.root)&&0==t.getChildCount(t.getChildAt(t.root,0))},ae.prototype.isSelectionAllowed=function(t){return"SELECT"==C.getSource(t).nodeName||"INPUT"==C.getSource(t).nodeName&&v.isAncestorNode(this.formatContainer,C.getSource(t))},ae.prototype.addBeforeUnloadListener=function(){window.onbeforeunload=v.bind(this,(function(){if(!this.editor.isChromelessView())return this.onBeforeUnload()}))},ae.prototype.onBeforeUnload=function(){if(this.editor.modified)return f.get("allChangesLost")},ae.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(v.bind(this,(function(t,e){try{const n=v.parseXml(t);return this.editor.setGraphXml(n.documentElement),this.editor.setModified(!1),this.editor.undoManager.clear(),void(null!=e&&(this.editor.setFilename(e),this.updateDocumentTitle()))}catch(t){v.alert(f.get("invalidOrMissingFile")+": "+t.message)}})))}catch(t){}this.editor.graph.view.validate(),this.editor.graph.sizeDidChange(),this.editor.fireEvent(new A("resetGraphView"))},ae.prototype.setCurrentMenu=function(t,e){this.currentMenuElt=e,this.currentMenu=t},ae.prototype.resetCurrentMenu=function(){this.currentMenuElt=null,this.currentMenu=null},ae.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())},ae.prototype.updateDocumentTitle=function(){let t=this.editor.getOrCreateFilename();null!=this.editor.appName&&(t+=" - "+this.editor.appName),document.title=t},ae.prototype.createHoverIcons=function(){return new ee(this.editor.graph)},ae.prototype.redo=function(){try{this.editor.graph.isEditing()?document.execCommand("redo",!1,null):this.editor.undoManager.redo()}catch(t){}},ae.prototype.undo=function(){try{const t=this.editor.graph;if(t.isEditing()){const e=t.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null),e==t.cellEditor.textarea.innerHTML&&(t.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(t){}},ae.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()},ae.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()},ae.prototype.getEditBlankXml=function(){return v.getXml(this.editor.getGraphXml())},ae.prototype.getUrl=function(t){return null!=t?t:window.location.pathname},ae.prototype.setScrollbars=function(t){const e=this.editor.graph,n=e.container.style.overflow;e.scrollbars=t,this.editor.updateGraphComponents(),n!=e.container.style.overflow&&(e.container.scrollTop=0,e.container.scrollLeft=0,e.view.scaleAndTranslate(1,0,0),this.resetScrollbars()),this.fireEvent(new A("scrollbarsChanged"))},ae.prototype.hasScrollbars=function(){return this.editor.graph.scrollbars},ae.prototype.resetScrollbars=function(){const t=this.editor.graph;if(this.editor.extendCanvas){if(!this.editor.isChromelessView())if(v.hasScrollbars(t.container))if(t.pageVisible){const n=t.getPagePadding();t.container.scrollTop=Math.floor(n.y-this.editor.initialTopSpacing)-1,t.container.scrollLeft=Math.floor(Math.min(n.x,(t.container.scrollWidth-t.container.clientWidth)/2))-1,(e=t.getGraphBounds()).width>0&&e.height>0&&(e.x>t.container.scrollLeft+.9*t.container.clientWidth&&(t.container.scrollLeft=Math.min(e.x+e.width-t.container.clientWidth,e.x-10)),e.y>t.container.scrollTop+.9*t.container.clientHeight&&(t.container.scrollTop=Math.min(e.y+e.height-t.container.clientHeight,e.y-10)))}else{var e=t.getGraphBounds();const n=Math.max(e.width,t.scrollTileSize.width*t.view.scale),i=Math.max(e.height,t.scrollTileSize.height*t.view.scale);t.container.scrollTop=Math.floor(Math.max(0,e.y-Math.max(20,(t.container.clientHeight-i)/4))),t.container.scrollLeft=Math.floor(Math.max(0,e.x-Math.max(0,(t.container.clientWidth-n)/2)))}else{const e=w.fromRectangle(t.pageVisible?t.view.getBackgroundPageBounds():t.getGraphBounds()),n=t.view.translate,i=t.view.scale;e.x=e.x/i-n.x,e.y=e.y/i-n.y,e.width/=i,e.height/=i;const r=t.pageVisible?0:Math.max(0,(t.container.clientHeight-e.height)/4);t.view.setTranslate(Math.floor(Math.max(0,(t.container.clientWidth-e.width)/2)-e.x+2),Math.floor(r-e.y+1))}}else t.container.scrollTop=0,t.container.scrollLeft=0,v.hasScrollbars(t.container)||t.view.setTranslate(0,0)},ae.prototype.setPageVisible=function(t){const e=this.editor.graph,n=v.hasScrollbars(e.container);let i=0,r=0;if(n&&(i=e.view.translate.x*e.view.scale-e.container.scrollLeft,r=e.view.translate.y*e.view.scale-e.container.scrollTop),e.pageVisible=t,e.pageBreaksVisible=t,e.preferPageSize=t,e.view.validateBackground(),n){const t=e.getSelectionCells();e.clearSelection(),e.setSelectionCells(t)}e.sizeDidChange(),n&&(e.container.scrollLeft=e.view.translate.x*e.view.scale-i,e.container.scrollTop=e.view.translate.y*e.view.scale-r),this.fireEvent(new A("pageViewChanged"))},he.prototype.execute=function(){const t=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var e=t.background;this.ui.setBackgroundColor(this.previousColor),this.previousColor=e}if(this.ignoreImage||(this.image=this.previousImage,e=t.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=e),null!=this.previousFormat&&(this.format=this.previousFormat,e=t.pageFormat,this.previousFormat.width==e.width&&this.previousFormat.height==e.height||(this.ui.setPageFormat(this.previousFormat),this.previousFormat=e)),null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled),null!=this.previousPageScale){const t=this.ui.editor.graph.pageScale;this.previousPageScale!=t&&(this.ui.setPageScale(this.previousPageScale),this.previousPageScale=t)}},function(){const t=new K(new he,["ui","previousColor","previousImage","previousFormat","previousPageScale"]);t.afterDecode=function(t,e,n){return n.previousColor=n.color,n.previousImage=n.image,n.previousFormat=n.format,n.previousPageScale=n.pageScale,null!=n.foldingEnabled&&(n.foldingEnabled=!n.foldingEnabled),n},Vt.register(t)}(),ae.prototype.setBackgroundColor=function(t){this.editor.graph.background=t,this.editor.graph.view.validateBackground(),this.fireEvent(new A("backgroundColorChanged"))},ae.prototype.setFoldingEnabled=function(t){this.editor.graph.foldingEnabled=t,this.editor.graph.view.revalidate(),this.fireEvent(new A("foldingEnabledChanged"))},ae.prototype.setPageFormat=function(t){this.editor.graph.pageFormat=t,this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct(),this.fireEvent(new A("pageFormatChanged"))},ae.prototype.setPageScale=function(t){this.editor.graph.pageScale=t,this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct(),this.fireEvent(new A("pageScaleChanged"))},ae.prototype.setGridColor=function(t){this.editor.graph.view.gridColor=t,this.editor.graph.view.validateBackground(),this.fireEvent(new A("gridColorChanged"))},ae.prototype.addUndoListener=function(){const t=this.actions.get("undo"),e=this.actions.get("redo"),n=this.editor.undoManager,i=v.bind(this,(function(){t.setEnabled(this.canUndo()),e.setEnabled(this.canRedo())}));n.addListener(C.ADD,i),n.addListener(C.UNDO,i),n.addListener(C.REDO,i),n.addListener(C.CLEAR,i);const r=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){r.apply(this,arguments),i()};const o=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(){o.apply(this,arguments),i()},i()},ae.prototype.updateActionStates=function(){const t=this.editor.graph,e=!t.isSelectionEmpty();let n=!1,i=!1;const r=t.getSelectionCells();if(null!=r)for(var o=0;o<r.length;o++){const e=r[o];if(t.getModel().isEdge(e)&&(i=!0),t.getModel().isVertex(e)&&(n=!0),i&&n)break}const s=["cut","copy","bold","italic","underline","delete","duplicate","backgroundColor","borderColor","edit","toFront","toBack","lockUnlock","solid","dashed","pasteSize","dotted","fillColor","gradientColor","shadow","fontColor","formattedText","rounded","toggleRounded","sharp","strokeColor"];for(o=0;o<s.length;o++)this.actions.get(s[o]).setEnabled(e);this.actions.get("setAsDefaultStyle").setEnabled(1==t.getSelectionCount()),this.actions.get("clearWaypoints").setEnabled(!t.isSelectionEmpty()),this.actions.get("copySize").setEnabled(1==t.getSelectionCount()),this.actions.get("turn").setEnabled(!t.isSelectionEmpty()),this.actions.get("curved").setEnabled(i),this.actions.get("rotation").setEnabled(n),this.actions.get("wordWrap").setEnabled(n),this.actions.get("autosize").setEnabled(n);const l=n&&1==t.getSelectionCount();this.actions.get("group").setEnabled(t.getSelectionCount()>1||l&&!t.isContainer(t.getSelectionCell())),this.actions.get("ungroup").setEnabled(1==t.getSelectionCount()&&(t.getModel().getChildCount(t.getSelectionCell())>0||l&&t.isContainer(t.getSelectionCell()))),this.actions.get("removeFromGroup").setEnabled(l&&t.getModel().isVertex(t.getModel().getParent(t.getSelectionCell()))),this.menus.get("navigation").setEnabled(e||null!=t.view.currentRoot),this.actions.get("collapsible").setEnabled(n&&(t.isContainer(t.getSelectionCell())||t.model.getChildCount(t.getSelectionCell())>0)),this.actions.get("home").setEnabled(null!=t.view.currentRoot),this.actions.get("exitGroup").setEnabled(null!=t.view.currentRoot),this.actions.get("enterGroup").setEnabled(1==t.getSelectionCount()&&t.isValidRoot(t.getSelectionCell()));const a=1==t.getSelectionCount()&&t.isCellFoldable(t.getSelectionCell());this.actions.get("expand").setEnabled(a),this.actions.get("collapse").setEnabled(a),this.actions.get("guides").setEnabled(t.isEnabled()),this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);const h=t.isEnabled()&&!t.isCellLocked(t.getDefaultParent());this.menus.get("layout").setEnabled(h),this.menus.get("direction").setEnabled(h&&n),this.menus.get("align").setEnabled(h&&n&&t.getSelectionCount()>1),this.menus.get("distribute").setEnabled(h&&n&&t.getSelectionCount()>1),this.actions.get("selectVertices").setEnabled(h),this.actions.get("selectEdges").setEnabled(h),this.actions.get("selectAll").setEnabled(h),this.actions.get("selectNone").setEnabled(h),this.updatePasteActionStates()},ae.prototype.zeroOffset=new T(0,0),ae.prototype.getDiagramContainerOffset=function(){return this.zeroOffset},ae.prototype.refresh=function(t){t=null==t||t;const e=E.IS_IE&&(null==document.documentMode||5==document.documentMode);let n=this.container.clientWidth,i=this.container.clientHeight;this.container==document.body&&(n=document.body.clientWidth||document.documentElement.clientWidth,i=e&&document.body.clientHeight||document.documentElement.clientHeight);let r=0;E.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&(r=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));const o=Math.max(0,Math.min(this.hsplitPosition,n-this.splitSize-20));let s=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",s+=this.menubarHeight),null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",s+=this.toolbarHeight),s>0&&!E.IS_QUIRKS&&(s+=1);let l=0;if(null!=this.sidebarFooterContainer){const t=this.footerHeight+r;l=Math.max(0,Math.min(i-s-t,this.sidebarFooterHeight)),this.sidebarFooterContainer.style.width=o+"px",this.sidebarFooterContainer.style.height=l+"px",this.sidebarFooterContainer.style.bottom=t+"px"}const a=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=s+"px",this.sidebarContainer.style.width=o+"px",this.formatContainer.style.top=s+"px",this.formatContainer.style.width=a+"px",this.formatContainer.style.display=null!=this.format?"":"none";const h=this.getDiagramContainerOffset(),u=null!=this.hsplit.parentNode?o+this.splitSize:0;if(this.diagramContainer.style.left=u+h.x+"px",this.diagramContainer.style.top=s+h.y+"px",this.footerContainer.style.height=this.footerHeight+"px",this.hsplit.style.top=this.sidebarContainer.style.top,this.hsplit.style.bottom=this.footerHeight+r+"px",this.hsplit.style.left=o+"px",this.footerContainer.style.display=0==this.footerHeight?"none":"",null!=this.tabContainer&&(this.tabContainer.style.left=u+"px"),e){this.menubarContainer.style.width=n+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;const t=Math.max(0,i-this.footerHeight-this.menubarHeight-this.toolbarHeight);this.sidebarContainer.style.height=t-l+"px",this.formatContainer.style.height=t+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,n-o-this.splitSize-a)+"px":n+"px",this.footerContainer.style.width=this.menubarContainer.style.width;let e=Math.max(0,i-this.footerHeight-this.menubarHeight-this.toolbarHeight);null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom=this.footerHeight+r+"px",e-=this.tabContainer.clientHeight),this.diagramContainer.style.height=e+"px",this.hsplit.style.height=e+"px"}else{this.footerHeight>0&&(this.footerContainer.style.bottom=r+"px"),this.diagramContainer.style.right=a+"px";let t=0;null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+r+"px",this.tabContainer.style.right=this.diagramContainer.style.right,t=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+l+r+"px",this.formatContainer.style.bottom=this.footerHeight+r+"px",this.diagramContainer.style.bottom=this.footerHeight+r+t+"px"}t&&this.editor.graph.sizeDidChange()},ae.prototype.createTabContainer=function(){return null},ae.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer"),this.toolbarContainer=this.createDiv("geToolbarContainer"),this.sidebarContainer=this.createDiv("geSidebarContainer"),this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer"),this.diagramContainer=this.createDiv("geDiagramContainer"),this.footerContainer=this.createDiv("geFooterContainer"),this.hsplit=this.createDiv("geHsplit"),this.hsplit.setAttribute("title",f.get("collapseExpand")),this.menubarContainer.style.top="0px",this.menubarContainer.style.left="0px",this.menubarContainer.style.right="0px",this.toolbarContainer.style.left="0px",this.toolbarContainer.style.right="0px",this.sidebarContainer.style.left="0px",this.formatContainer.style.right="0px",this.formatContainer.style.zIndex="1",this.diagramContainer.style.right=(null!=this.format?this.formatWidth:0)+"px",this.footerContainer.style.left="0px",this.footerContainer.style.right="0px",this.footerContainer.style.bottom="0px",this.footerContainer.style.zIndex=b.prototype.zIndex-2,this.hsplit.style.width=this.splitSize+"px",this.sidebarFooterContainer=this.createSidebarFooterContainer(),this.sidebarFooterContainer&&(this.sidebarFooterContainer.style.left="0px"),this.editor.chromeless?this.diagramContainer.style.border="none":this.tabContainer=this.createTabContainer()},ae.prototype.createSidebarFooterContainer=function(){return null},ae.prototype.createUi=function(){this.menubar=this.editor.chromeless?null:this.menus.createMenubar(this.createDiv("geMenubar")),null!=this.menubar&&(this.exitButton=this.createDiv("diagram-exit"),this.menubarContainer.appendChild(this.menubar.container),this.menubarContainer.appendChild(this.exitButton)),null!=this.menubar&&(this.statusContainer=this.createStatusContainer(),this.editor.addListener("statusChanged",v.bind(this,(function(){this.setStatusText(this.editor.getStatus())}))),this.setStatusText(this.editor.getStatus()),this.menubar.container.appendChild(this.statusContainer),this.container.appendChild(this.menubarContainer)),this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContainer),null!=this.sidebar&&this.container.appendChild(this.sidebarContainer),this.format=this.editor.chromeless||!this.formatEnabled?null:this.createFormat(this.formatContainer),null!=this.format&&this.container.appendChild(this.formatContainer);const t=this.editor.chromeless?null:this.createFooter();null!=t&&(this.footerContainer.appendChild(t),this.container.appendChild(this.footerContainer)),null!=this.sidebar&&this.sidebarFooterContainer&&this.container.appendChild(this.sidebarFooterContainer),this.container.appendChild(this.diagramContainer),null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer),this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar")),null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer)),null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit,!0,0,v.bind(this,(function(t){this.hsplitPosition=t,this.refresh()}))))},ae.prototype.createStatusContainer=function(){const t=document.createElement("a");return t.className="geItem geStatus",screen.width<420&&(t.style.maxWidth=Math.max(20,screen.width-320)+"px",t.style.overflow="hidden"),t},ae.prototype.setStatusText=function(t){this.statusContainer.innerHTML=t},ae.prototype.createToolbar=function(t){return new le(this,t)},ae.prototype.createSidebar=function(t){return new ie(this,t)},ae.prototype.createFormat=function(t){return new me(this,t)},ae.prototype.createFooter=function(){return this.createDiv("geFooter")},ae.prototype.createDiv=function(t){const e=document.createElement("div");return e.className=t,e},ae.prototype.addSplitHandler=function(t,e,n,i){let r=null,o=null,s=!0,l=null;E.IS_POINTER&&(t.style.touchAction="none");const a=v.bind(this,(function(){let i=parseInt(e?t.style.left:t.style.bottom);return e||(i=i+n-this.footerHeight),i}));function h(t){if(null!=r){const h=new T(C.getClientX(t),C.getClientY(t));i(Math.max(0,o+(e?h.x-r.x:r.y-h.y)-n)),C.consume(t),o!=a()&&(s=!0,l=null)}}function u(t){h(t),o=null,r=null}C.addGestureListeners(t,(function(t){r=new T(C.getClientX(t),C.getClientY(t)),o=a(),s=!1,C.consume(t)})),C.addListener(t,"click",v.bind(this,(function(t){if(!s&&this.hsplitClickEnabled){const e=null!=l?l-n:0;l=a(),i(e),C.consume(t)}}))),C.addGestureListeners(document,null,h,u),this.destroyFunctions.push((function(){C.removeGestureListeners(document,null,h,u)}))},ae.prototype.handleError=function(t,e,n,i){const r=null!=t&&null!=t.error?t.error:t;if(null!=r||null!=e){let t=v.htmlEntities(f.get("unknownError"));const o=f.get("ok");e=null!=e?e:f.get("error"),null!=r&&null!=r.message&&(t=v.htmlEntities(r.message)),this.showError(e,t,o,n,null,null,null,null,null,null,null,null,i?n:null)}else null!=n&&n()},ae.prototype.showError=function(t,e,n,i,r,o,s,l,a,h,u,d,c){const p=new ce(this,t,e,n||f.get("ok"),i,r,o,s,d,l,a),g=Math.ceil(null!=e?e.length/50:1);this.showDialog(p.container,h||340,u||100+20*g,!0,!1,c),p.init()},ae.prototype.showDialog=function(t,e,n,i,r,o,s,l,a,h){this.editor.graph.tooltipHandler.hideTooltip(),null==this.dialogs&&(this.dialogs=[]),this.dialog=new de(this,t,e,n,i,r,o,s,l,a,h),this.dialogs.push(this.dialog)},ae.prototype.hideDialog=function(t,e){if(null!=this.dialogs&&this.dialogs.length>0){const n=this.dialogs.pop();if(0==n.close(t,e))return void this.dialogs.push(n);this.dialog=this.dialogs.length>0?this.dialogs[this.dialogs.length-1]:null,this.editor.fireEvent(new A("hideDialog")),null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&window.setTimeout(v.bind(this,(function(){this.editor.graph.isEditing()&&null!=this.editor.graph.cellEditor.textarea?this.editor.graph.cellEditor.textarea.focus():(v.clearSelection(),this.editor.graph.container.focus())})),0)}},ae.prototype.ctrlEnter=function(){const t=this.editor.graph;if(t.isEnabled())try{const e=t.getSelectionCells(),n=new at,i=[];for(let r=0;r<e.length;r++){const o=t.isTableCell(e[r])?t.model.getParent(e[r]):e[r];null==o||n.get(o)||(n.put(o,!0),i.push(o))}t.setSelectionCells(t.duplicateCells(i,!1))}catch(t){this.handleError(t)}},ae.prototype.pickColor=function(t,e){const n=this.editor.graph,i=n.cellEditor.saveSelection(),r=226+17*(Math.ceil(Qt.prototype.presetColors.length/12)+Math.ceil(Qt.prototype.defaultColors.length/12)),o=new Qt(this,t||"none",(function(t){n.cellEditor.restoreSelection(i),e(t)}),(function(){n.cellEditor.restoreSelection(i)}));this.showDialog(o.container,230,r,!0,!1),o.init()},ae.prototype.extractGraphModelFromHtml=function(t){let e=null;try{const n=t.indexOf("<mxGraphModel ");if(n>=0){const i=t.lastIndexOf("</mxGraphModel>");i>n&&(e=t.substring(n,i+21).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}}catch(t){}return e},ae.prototype.extractGraphModelFromEvent=function(t){let e=null,n=null;if(null!=t){const e=null!=t.dataTransfer?t.dataTransfer:t.clipboardData;if(null!=e&&(10==document.documentMode||11==document.documentMode?n=e.getData("Text"):(n=v.indexOf(e.types,"text/html")>=0?e.getData("text/html"):null,v.indexOf(e.types,null==n||0==n.length)&&(n=e.getData("text/plain"))),null!=n)){n=te.zapGremlins(v.trim(n));const t=this.extractGraphModelFromHtml(n);null!=t&&(n=t)}}return null!=n&&this.isCompatibleString(n)&&(e=n),e},ae.prototype.isCompatibleString=function(){return!1},ae.prototype.executeLayout=function(t,e,n){const i=this.editor.graph;if(i.isEnabled()){i.getModel().beginUpdate();try{t()}catch(t){throw t}finally{if(this.allowAnimation&&e&&(null==navigator.userAgent||navigator.userAgent.indexOf("Camino")<0)){const t=new wt(i);t.addListener(C.DONE,v.bind(this,(function(){i.getModel().endUpdate(),null!=n&&n()}))),t.startAnimation()}else i.getModel().endUpdate(),null!=n&&n()}}},ae.prototype.showImageDialog=function(t,e,n){const i=this.editor.graph.cellEditor,r=i.saveSelection(),o=v.prompt(t,e);if(i.restoreSelection(r),null!=o&&o.length>0){const t=new Image;t.onload=function(){n(o,t.width,t.height)},t.onerror=function(){n(null),v.alert(f.get("fileNotFound"))},t.src=o}else n(null)},ae.prototype.showLinkDialog=function(){},ae.prototype.showBackgroundImageDialog=function(t,e){t=null!=t?t:v.bind(this,(function(t){const e=new he(this,null,t);e.ignoreColor=!0,this.editor.graph.model.execute(e)}));const n=v.prompt(f.get("backgroundImage"),null!=e?e.src:"");null!=n&&n.length>0?((e=new Image).onload=function(){t(new Z(n,e.width,e.height),!1)},e.onerror=function(){t(null,!0),v.alert(f.get("fileNotFound"))},e.src=n):t(null)},ae.prototype.setBackgroundImage=function(t){this.editor.graph.setBackgroundImage(t),this.editor.graph.view.validateBackgroundImage(),this.fireEvent(new A("backgroundImageChanged"))},ae.prototype.confirm=function(t,e,n){v.confirm(t)?null!=e&&e():null!=n&&n()},ae.prototype.createOutline=function(){const t=new ct(this.editor.graph);return t.border=20,C.addListener(window,"resize",(function(){t.update()})),this.addListener("pageFormatChanged",(function(){t.update()})),t},ae.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize"},ae.prototype.createKeyHandler=function(){const t=this,e=this.editor.graph,n=new At(e),i=n.isEventIgnored;n.isEventIgnored=function(t){return!(C.isShiftDown(t)&&9==t.keyCode)&&(!this.isControlDown(t)||C.isShiftDown(t)||90!=t.keyCode&&89!=t.keyCode&&188!=t.keyCode&&190!=t.keyCode&&85!=t.keyCode)&&(66!=t.keyCode&&73!=t.keyCode||!this.isControlDown(t)||this.graph.cellEditor.isContentEditing()&&!E.IS_FF&&!E.IS_SF)&&i.apply(this,arguments)},n.isEnabledForEvent=function(e){return!C.isConsumed(e)&&this.isGraphEvent(e)&&this.isEnabled()&&(null==t.dialogs||0==t.dialogs.length)},n.isControlDown=function(t){return C.isControlDown(t)||E.IS_MAC&&t.metaKey};let r=[],o=null;function s(t,n,i){r.push((function(){if(!e.isSelectionEmpty()&&e.isEnabled())if(n=null!=n?n:1,i){e.getModel().beginUpdate();try{for(var r=e.getSelectionCells(),o=0;o<r.length;o++)if(e.getModel().isVertex(r[o])&&e.isCellResizable(r[o])){let i=e.getCellGeometry(r[o]);null!=i&&(i=i.clone(),37==t?i.width=Math.max(0,i.width-n):38==t?i.height=Math.max(0,i.height-n):39==t?i.width+=n:40==t&&(i.height+=n),e.getModel().setGeometry(r[o],i))}}finally{e.getModel().endUpdate()}}else{const i=e.getSelectionCell();var s=e.model.getParent(i);let l=null;if(1==e.getSelectionCount()&&e.model.isVertex(i)&&null!=e.layoutManager&&!e.isCellLocked(i)&&(l=e.layoutManager.getLayout(s)),null!=l&&l.constructor==xt){const n=s.getIndex(i);37==t||38==t?e.model.add(s,i,Math.max(0,n-1)):39!=t&&40!=t||e.model.add(s,i,Math.min(e.model.getChildCount(s),n+1))}else{r=e.getMovableCells(e.getSelectionCells());const i=[];for(o=0;o<r.length;o++){const t=e.getCurrentCellStyle(r[o]);"1"==v.getValue(t,"part","0")?(s=e.model.getParent(r[o]),e.model.isVertex(s)&&v.indexOf(r,s)<0&&i.push(s)):i.push(r[o])}if(i.length>0){r=i;let o=0,s=0;37==t?o=-n:38==t?s=-n:39==t?o=n:40==t&&(s=n),e.moveCells(r,o,s)}}}})),null!=o&&window.clearTimeout(o),o=window.setTimeout((function(){if(r.length>0){e.getModel().beginUpdate();try{for(let t=0;t<r.length;t++)r[t]();r=[]}finally{e.getModel().endUpdate()}}}),200)}const l={37:g.DIRECTION_WEST,38:g.DIRECTION_NORTH,39:g.DIRECTION_EAST,40:g.DIRECTION_SOUTH},a=n.getFunction;At.prototype.getFunction=function(n){if(e.isEnabled()){if(C.isShiftDown(n)&&C.isAltDown(n)){const e=t.actions.get(t.altShiftActions[n.keyCode]);if(null!=e)return e.funct}if(9==n.keyCode&&C.isAltDown(n))return e.cellEditor.isContentEditing()?function(){document.execCommand("outdent",!1,null)}:C.isShiftDown(n)?function(){e.selectParentCell()}:function(){e.selectChildCell()};if(null!=l[n.keyCode]&&!e.isSelectionEmpty()){if(this.isControlDown(n)||!C.isShiftDown(n)||!C.isAltDown(n))return this.isControlDown(n)?function(){s(n.keyCode,C.isShiftDown(n)?e.gridSize:null,!0)}:function(){s(n.keyCode,C.isShiftDown(n)?e.gridSize:null)};if(e.model.isVertex(e.getSelectionCell()))return function(){const i=e.connectVertex(e.getSelectionCell(),l[n.keyCode],e.defaultEdgeLength,n,!0);null!=i&&i.length>0&&(1==i.length&&e.model.isEdge(i[0])?e.setSelectionCell(e.model.getTerminal(i[0],!1)):e.setSelectionCell(i[i.length-1]),e.scrollCellToVisible(e.getSelectionCell()),null!=t.hoverIcons&&t.hoverIcons.update(e.view.getState(e.getSelectionCell())))}}}return a.apply(this,arguments)},n.bindAction=v.bind(this,(function(t,e,i,r){const o=this.actions.get(i);if(null!=o){const i=function(){o.isEnabled()&&o.funct()};e?r?n.bindControlShiftKey(t,i):n.bindControlKey(t,i):r?n.bindShiftKey(t,i):n.bindKey(t,i)}}));const h=this,u=n.escape;return n.escape=function(){u.apply(this,arguments)},n.enter=function(){},n.bindControlShiftKey(36,(function(){e.exitGroup()})),n.bindControlShiftKey(35,(function(){e.enterGroup()})),n.bindShiftKey(36,(function(){e.home()})),n.bindKey(35,(function(){e.refresh()})),n.bindAction(107,!0,"zoomIn"),n.bindAction(109,!0,"zoomOut"),n.bindAction(80,!0,"print"),n.bindAction(79,!0,"outline",!0),this.editor.chromeless&&!this.editor.editable||(n.bindControlKey(36,(function(){e.isEnabled()&&e.foldCells(!0)})),n.bindControlKey(35,(function(){e.isEnabled()&&e.foldCells(!1)})),n.bindControlKey(13,(function(){h.ctrlEnter()})),n.bindAction(8,!1,"delete"),n.bindAction(8,!0,"deleteAll"),n.bindAction(46,!1,"delete"),n.bindAction(46,!0,"deleteAll"),n.bindAction(36,!1,"resetView"),n.bindAction(72,!0,"fitWindow",!0),n.bindAction(74,!0,"fitPage"),n.bindAction(74,!0,"fitTwoPages",!0),n.bindAction(48,!0,"customZoom"),n.bindAction(82,!0,"turn"),n.bindAction(82,!0,"clearDefaultStyle",!0),n.bindAction(65,!0,"selectAll"),n.bindAction(65,!0,"selectNone",!0),n.bindAction(73,!0,"selectVertices",!0),n.bindAction(69,!0,"selectEdges",!0),n.bindAction(69,!0,"editStyle"),n.bindAction(66,!0,"bold"),n.bindAction(66,!0,"toBack",!0),n.bindAction(70,!0,"toFront",!0),n.bindAction(68,!0,"duplicate"),n.bindAction(68,!0,"setAsDefaultStyle",!0),n.bindAction(90,!0,"undo"),n.bindAction(89,!0,"autosize",!0),n.bindAction(88,!0,"cut"),n.bindAction(67,!0,"copy"),n.bindAction(86,!0,"paste"),n.bindAction(71,!0,"group"),n.bindAction(77,!0,"editData"),n.bindAction(71,!0,"grid",!0),n.bindAction(73,!0,"italic"),n.bindAction(76,!0,"lockUnlock"),n.bindAction(76,!0,"layers",!0),n.bindAction(80,!0,"formatPanel",!0),n.bindAction(85,!0,"underline"),n.bindAction(85,!0,"ungroup",!0),n.bindAction(190,!0,"superscript"),n.bindAction(188,!0,"subscript"),n.bindAction(9,!1,"indent",!0),n.bindKey(13,(function(){e.isEnabled()&&e.startEditingAtCell()})),n.bindKey(113,(function(){e.isEnabled()&&e.startEditingAtCell()}))),E.IS_WIN?n.bindAction(89,!0,"redo"):n.bindAction(90,!0,"redo",!0),n},ae.prototype.destroy=function(){if(null!=this.editor&&(this.editor.destroy(),this.editor=null),null!=this.menubar&&(this.menubar.destroy(),this.menubar=null),null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null),null!=this.sidebar&&(this.sidebar.destroy(),this.sidebar=null),null!=this.keyHandler&&(this.keyHandler.destroy(),this.keyHandler=null),null!=this.keydownHandler&&(C.removeListener(document,"keydown",this.keydownHandler),this.keydownHandler=null),null!=this.keyupHandler&&(C.removeListener(document,"keyup",this.keyupHandler),this.keyupHandler=null),null!=this.resizeHandler&&(C.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null),null!=this.gestureHandler&&(C.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null),null!=this.orientationChangeHandler&&(C.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null),null!=this.scrollHandler&&(C.removeListener(window,"scroll",this.scrollHandler),this.scrollHandler=null),null!=this.destroyFunctions){for(var t=0;t<this.destroyFunctions.length;t++)this.destroyFunctions[t]();this.destroyFunctions=null}const e=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog];for(t=0;t<e.length;t++)null!=e[t]&&null!=e[t].parentNode&&e[t].parentNode.removeChild(e[t])},ue.pageCounter=0,function(){try{let t=window;for(;null!=t.opener&&void 0!==t.opener.Editor&&!isNaN(t.opener.Editor.pageCounter)&&t.opener!=t;)t=t.opener;null!=t&&(t.Editor.pageCounter++,ue.pageCounter=t.Editor.pageCounter)}catch(t){}}(),ue.useLocalStorage="undefined"!=typeof Storage&&E.IS_IOS,ue.moveImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI4cHgiIGhlaWdodD0iMjhweCI+PGc+PC9nPjxnPjxnPjxnPjxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIuNCwyLjQpc2NhbGUoMC44KXJvdGF0ZSg0NSwxMiwxMikiIHN0cm9rZT0iIzI5YjZmMiIgZmlsbD0iIzI5YjZmMiIgZD0iTTE1LDNsMi4zLDIuM2wtMi44OSwyLjg3bDEuNDIsMS40MkwxOC43LDYuN0wyMSw5VjNIMTV6IE0zLDlsMi4zLTIuM2wyLjg3LDIuODlsMS40Mi0xLjQyTDYuNyw1LjNMOSwzSDNWOXogTTksMjEgbC0yLjMtMi4zbDIuODktMi44N2wtMS40Mi0xLjQyTDUuMywxNy4zTDMsMTV2Nkg5eiBNMjEsMTVsLTIuMywyLjNsLTIuODctMi44OWwtMS40MiwxLjQybDIuODksMi44N0wxNSwyMWg2VjE1eiIvPjwvZz48L2c+PC9nPjwvc3ZnPgo=",ue.rowMoveImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAEBAMAAACw6DhOAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAFElEQVQImWNgNVdzYBAUFBRggLMAEzYBy29kEPgAAAAASUVORK5CYII=",ue.helpImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PHBhdGggZD0iTTExIDE4aDJ2LTJoLTJ2MnptMS0xNkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTAtMTRjLTIuMjEgMC00IDEuNzktNCA0aDJjMC0xLjEuOS0yIDItMnMyIC45IDIgMmMwIDItMyAxLjc1LTMgNWgyYzAtMi4yNSAzLTIuNSAzLTUgMC0yLjIxLTEuNzktNC00LTR6Ii8+PC9zdmc+",ue.checkmarkImage="data:image/gif;base64,R0lGODlhFQAVAMQfAGxsbHx8fIqKioaGhvb29nJycvr6+sDAwJqamltbW5OTk+np6YGBgeTk5Ly8vJiYmP39/fLy8qWlpa6ursjIyOLi4vj4+N/f3+3t7fT09LCwsHZ2dubm5r6+vmZmZv///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEY4NTZERTQ5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEY4NTZERTU5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Rjg1NkRFMjlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Rjg1NkRFMzlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAB8ALAAAAAAVABUAAAVI4CeOZGmeaKqubKtylktSgCOLRyLd3+QJEJnh4VHcMoOfYQXQLBcBD4PA6ngGlIInEHEhPOANRkaIFhq8SuHCE1Hb8Lh8LgsBADs=",ue.ctrlKey=E.IS_MAC?"Cmd":"Ctrl",ue.hintOffset=20,ue.popupsAllowed=!0,v.extend(ue,y),ue.prototype.originalNoForeignObject=E.NO_FO,ue.prototype.transparentImage="data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7",ue.prototype.extendCanvas=!0,ue.prototype.chromeless=!1,ue.prototype.cancelFirst=!0,ue.prototype.enabled=!0,ue.prototype.filename=null,ue.prototype.modified=!1,ue.prototype.autosave=!1,ue.prototype.initialTopSpacing=0,ue.prototype.appName=document.title,ue.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/",ue.prototype.defaultGraphOverflow="hidden",ue.prototype.init=function(){},ue.prototype.isChromelessView=function(){return this.chromeless},ue.prototype.setAutosave=function(t){this.autosave=t},ue.prototype.getEditBlankUrl=function(t){return this.editBlankUrl+t},ue.prototype.editAsNew=function(t,e){let n=null!=e?"?title="+encodeURIComponent(e):"";if(void 0!==window.postMessage&&(null==document.documentMode||document.documentMode>=10)){let e=null;var i=v.bind(this,(function(n){"ready"==n.data&&n.source==e&&(C.removeListener(window,"message",i),e.postMessage(t,"*"))}));C.addListener(window,"message",i),e=this.graph.openLink(this.getEditBlankUrl(n+(n.length>0?"&":"?")+"client=1"),null,!0)}else this.graph.openLink(this.getEditBlankUrl(n)+"#R"+encodeURIComponent(t))},ue.prototype.createGraph=function(t,e){const n=new te(null,e,null,null,t);return n.transparentBackground=!1,this.chromeless||(n.isBlankLink=function(t){return!this.isExternalProtocol(t)}),n},ue.prototype.resetGraph=function(){this.graph.gridEnabled=!this.isChromelessView(),this.graph.graphHandler.guidesEnabled=!0,this.graph.setTooltips(!0),this.graph.setConnectable(!0),this.graph.foldingEnabled=!0,this.graph.scrollbars=this.graph.defaultScrollbars,this.graph.pageVisible=this.graph.defaultPageVisible,this.graph.pageBreaksVisible=this.graph.pageVisible,this.graph.preferPageSize=this.graph.pageBreaksVisible,this.graph.background=null,this.graph.pageScale=c.prototype.pageScale,this.graph.pageFormat=c.prototype.pageFormat,this.graph.currentScale=1,this.graph.currentTranslate.x=0,this.graph.currentTranslate.y=0,this.updateGraphComponents(),this.graph.view.setScale(1)},ue.prototype.readGraphState=function(t){this.graph.gridEnabled="0"!=t.getAttribute("grid")&&!this.isChromelessView(),this.graph.gridSize=parseFloat(t.getAttribute("gridSize"))||c.prototype.gridSize,this.graph.graphHandler.guidesEnabled="0"!=t.getAttribute("guides"),this.graph.setTooltips("0"!=t.getAttribute("tooltips")),this.graph.setConnectable("0"!=t.getAttribute("connect")),this.graph.connectionArrowsEnabled="0"!=t.getAttribute("arrows"),this.graph.foldingEnabled="0"!=t.getAttribute("fold"),this.isChromelessView()&&this.graph.foldingEnabled&&(this.graph.foldingEnabled=!1,this.graph.cellRenderer.forceControlClickHandler=this.graph.foldingEnabled);const e=parseFloat(t.getAttribute("pageScale"));if(!isNaN(e)&&e>0?this.graph.pageScale=e:this.graph.pageScale=c.prototype.pageScale,this.graph.isLightboxView()||this.graph.isViewer())this.graph.pageVisible=!1;else{const e=t.getAttribute("page");this.graph.pageVisible=null!=e?"0"!=e:this.graph.defaultPageVisible}this.graph.pageBreaksVisible=this.graph.pageVisible,this.graph.preferPageSize=this.graph.pageBreaksVisible;const n=parseFloat(t.getAttribute("pageWidth")),i=parseFloat(t.getAttribute("pageHeight"));isNaN(n)||isNaN(i)||(this.graph.pageFormat=new w(0,0,n,i));const r=t.getAttribute("background");null!=r&&r.length>0?this.graph.background=r:this.graph.background=null},ue.prototype.setGraphXml=function(t){if(null!=t){const e=new p(t.ownerDocument);if("mxGraphModel"==t.nodeName){this.graph.model.beginUpdate();try{this.graph.model.clear(),this.graph.view.scale=1,this.readGraphState(t),this.updateGraphComponents(),e.decode(t,this.graph.getModel())}finally{this.graph.model.endUpdate()}this.fireEvent(new A("resetGraphView"))}else{if("root"!=t.nodeName)throw{message:f.get("cannotOpenFile"),node:t,toString:function(){return this.message}};{this.resetGraph();const n=e.document.createElement("mxGraphModel");n.appendChild(t),e.decode(n,this.graph.getModel()),this.updateGraphComponents(),this.fireEvent(new A("resetGraphView"))}}}else this.resetGraph(),this.graph.model.clear(),this.fireEvent(new A("resetGraphView"))},ue.prototype.getGraphXml=function(t){let e=null;return e=(t=null==t||t)?new p(v.createXmlDocument()).encode(this.graph.getModel()):this.graph.encodeCells(v.sortCells(this.graph.model.getTopmostCells(this.graph.getSelectionCells()))),0==this.graph.view.translate.x&&0==this.graph.view.translate.y||(e.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),e.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100)),e.setAttribute("grid",this.graph.isGridEnabled()?"1":"0"),e.setAttribute("gridSize",this.graph.gridSize),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0"),e.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0"),e.setAttribute("arrows",this.graph.connectionArrowsEnabled?"1":"0"),e.setAttribute("fold",this.graph.foldingEnabled?"1":"0"),e.setAttribute("page",this.graph.pageVisible?"1":"0"),e.setAttribute("pageScale",this.graph.pageScale),e.setAttribute("pageWidth",this.graph.pageFormat.width),e.setAttribute("pageHeight",this.graph.pageFormat.height),null!=this.graph.background&&e.setAttribute("background",this.graph.background),e},ue.prototype.updateGraphComponents=function(){const t=this.graph;null!=t.container&&(t.view.validateBackground(),t.container.style.overflow=t.scrollbars?"auto":this.defaultGraphOverflow,this.fireEvent(new A("updateGraphComponents")))},ue.prototype.setModified=function(t){this.modified=t},ue.prototype.setFilename=function(t){this.filename=t},ue.prototype.createUndoManager=function(){const t=this.graph,e=new H;this.undoListener=function(t,n){e.undoableEditHappened(n.getProperty("edit"))};const n=v.bind(this,(function(){this.undoListener.apply(this,arguments)}));t.getModel().addListener(C.UNDO,n),t.getView().addListener(C.UNDO,n);const i=function(e,n){const i=t.getSelectionCellsForChanges(n.getProperty("edit").changes,(function(t){return!("mxChildChange"===t.constructor.name)}));if(i.length>0){const e=[];for(let n=0;n<i.length;n++)null!=t.view.getState(i[n])&&e.push(i[n]);t.setSelectionCells(e)}};return e.addListener(C.UNDO,i),e.addListener(C.REDO,i),e},ue.prototype.initStencilRegistry=function(){},ue.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)},de.backdropColor="white",de.prototype.zIndex=b.prototype.zIndex-1,de.prototype.noColorImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC",de.prototype.closeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==",de.prototype.clearImage="data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==",de.prototype.lockedImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCODExNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCODIxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3RjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI4MDE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvqMCFYAAAAVUExURZmZmb+/v7KysqysrMzMzLGxsf///4g8N1cAAAAHdFJOU////////wAaSwNGAAAAPElEQVR42lTMQQ4AIQgEwUa0//9kTQirOweYOgDqAMbZUr10AGlAwx4/BJ2QJ4U0L5brYjovvpv32xZgAHZaATFtMbu4AAAAAElFTkSuQmCC",de.prototype.unlockedImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==",de.prototype.bgOpacity=80,de.prototype.getPosition=function(t,e){return new T(t,e)},de.prototype.close=function(t,e){if(null!=this.onDialogClose){if(0==this.onDialogClose(t,e))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null),null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg),C.removeListener(window,"resize",this.resizeListener),this.container.parentNode.removeChild(this.container)},pe.addPageFormatPanel=function(t,e,n,i){const r="format-"+e,o=document.createElement("input");o.setAttribute("name",r),o.setAttribute("type","radio"),o.setAttribute("value","portrait");const s=document.createElement("input");s.setAttribute("name",r),s.setAttribute("type","radio"),s.setAttribute("value","landscape");const l=document.createElement("select");l.style.marginBottom="8px",l.style.width="202px";const a=document.createElement("div");a.style.marginLeft="4px",a.style.width="210px",a.style.height="24px",a.className="form-options-line",o.style.marginRight="6px",a.appendChild(o);const h=document.createElement("span");h.style.maxWidth="100px",v.write(h,f.get("portrait")),a.appendChild(h),s.style.marginLeft="10px",s.style.marginRight="6px",a.appendChild(s);const u=document.createElement("span");u.style.width="100px",v.write(u,f.get("landscape")),a.appendChild(u);const d=document.createElement("div");d.style.marginLeft="4px",d.style.width="210px",d.style.height="24px";const c=document.createElement("input");c.setAttribute("size","7"),c.style.textAlign="right",d.appendChild(c),v.write(d," in x ");const p=document.createElement("input");p.setAttribute("size","7"),p.style.textAlign="right",d.appendChild(p),v.write(d," in"),a.style.display="none",d.style.display="none";const g=new Object,m=pe.getFormats();for(let f=0;f<m.length;f++){const t=m[f];g[t.key]=t;const e=document.createElement("option");e.setAttribute("value",t.key),v.write(e,t.title),l.appendChild(e)}let x=!1;function y(t,e,i){if(i||c!=document.activeElement&&p!=document.activeElement){let t=!1;for(let e=0;e<m.length;e++){const i=m[e];x?"custom"==i.key&&(l.value=i.key,x=!1):null!=i.format&&("a4"==i.key?826==n.width?(n=w.fromRectangle(n)).width=827:826==n.height&&((n=w.fromRectangle(n)).height=827):"a5"==i.key&&(584==n.width?(n=w.fromRectangle(n)).width=583:584==n.height&&((n=w.fromRectangle(n)).height=583)),n.width==i.format.width&&n.height==i.format.height?(l.value=i.key,o.setAttribute("checked","checked"),o.defaultChecked=!0,o.checked=!0,s.removeAttribute("checked"),s.defaultChecked=!1,s.checked=!1,t=!0):n.width==i.format.height&&n.height==i.format.width&&(l.value=i.key,o.removeAttribute("checked"),o.defaultChecked=!1,o.checked=!1,s.setAttribute("checked","checked"),s.defaultChecked=!0,s.checked=!0,t=!0))}t?(a.style.display="",d.style.display="none"):(c.value=n.width/100,p.value=n.height/100,o.setAttribute("checked","checked"),l.value="custom",a.style.display="none",d.style.display="")}}y(),t.appendChild(l),v.br(t),t.appendChild(a),t.appendChild(d);let A=n;const E=function(t,e){const r=g[l.value];null!=r.format?(c.value=r.format.width/100,p.value=r.format.height/100,d.style.display="none",a.style.display=""):(a.style.display="none",d.style.display="");const o=parseFloat(c.value);(isNaN(o)||o<=0)&&(c.value=n.width/100);const h=parseFloat(p.value);(isNaN(h)||h<=0)&&(p.value=n.height/100);let u=new w(0,0,Math.floor(100*parseFloat(c.value)),Math.floor(100*parseFloat(p.value)));"custom"!=l.value&&s.checked&&(u=new w(0,0,u.height,u.width)),e&&x||u.width==A.width&&u.height==A.height||(A=u,null!=i&&i(A))};return C.addListener(h,"click",(function(t){o.checked=!0,E(),C.consume(t)})),C.addListener(u,"click",(function(t){s.checked=!0,E(),C.consume(t)})),C.addListener(c,"blur",E),C.addListener(c,"click",E),C.addListener(p,"blur",E),C.addListener(p,"click",E),C.addListener(s,"change",E),C.addListener(o,"change",E),C.addListener(l,"change",(function(t){x="custom"==l.value,E(0,!0)})),E(),{set:function(t){n=t,y(0,0,!0)},get:function(){return A},widthInput:c,heightInput:p}},pe.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:g.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new w(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new w(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new w(0,0,700,1e3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new w(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",format:new w(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new w(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new w(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:g.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new w(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new w(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new w(0,0,291,413)},{key:"b4",title:"B4 (250 mm x 353 mm)",format:new w(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new w(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new w(0,0,1600,900)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new w(0,0,1920,1200)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new w(0,0,1600,1200)},{key:"custom",title:f.get("custom"),format:null}]},ge.filenameHelpLink=null,ge.createTypeHint=function(t,e,n){const i=document.createElement("img");i.style.cssText="vertical-align:top;height:16px;width:16px;margin-left:4px;background-repeat:no-repeat;background-position:center bottom;cursor:pointer;",v.setOpacity(i,70);const r=function(){i.setAttribute("src",ue.helpImage),i.setAttribute("title",f.get("help"));for(let t=0;t<n.length;t++)if(n[t].ext.length>0&&e.value.toLowerCase().substring(e.value.length-n[t].ext.length-1)=="."+n[t].ext){i.setAttribute("src",E.imageBasePath+"/warning.png"),i.setAttribute("title",f.get(n[t].title));break}};return C.addListener(e,"keyup",r),C.addListener(e,"change",r),C.addListener(i,"click",(function(e){const n=i.getAttribute("title");i.getAttribute("src")==ue.helpImage?t.editor.graph.openLink(ge.filenameHelpLink):""!=n&&t.showError(null,n,f.get("help"),(function(){t.editor.graph.openLink(ge.filenameHelpLink)}),null,f.get("ok"),null,null,null,340,90),C.consume(e)})),r(),i},ge.createFileTypes=function(t,e,n){const i=document.createElement("select");for(let o=0;o<n.length;o++){const t=document.createElement("option");t.setAttribute("value",o),v.write(t,f.get(n[o].description)+" (."+n[o].extension+")"),i.appendChild(t)}C.addListener(i,"change",(function(){var t=n[i.value].extension;const r=e.value.lastIndexOf(".");if(r>0?(t=n[i.value].extension,e.value=e.value.substring(0,r+1)+t):e.value=e.value+"."+t,"createEvent"in document){const t=document.createEvent("HTMLEvents");t.initEvent("change",!1,!0),e.dispatchEvent(t)}else e.fireEvent("onchange")}));const r=function(){const t=e.value.lastIndexOf(".");let r=0;if(t>0){const i=e.value.toLowerCase().substring(t+1);for(let t=0;t<n.length;t++)if(i==n[t].extension){r=t;break}}i.value=r};return C.addListener(e,"change",r),C.addListener(e,"keyup",r),r(),i},function(){L.prototype.validateBackgroundPage=function(){const t=this.graph;if(null!=t.container&&!t.transparentBackground){if(t.pageVisible){const e=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){let n=t.container.firstChild;for(;null!=n&&n.nodeType!=g.NODETYPE_ELEMENT;)n=n.nextSibling;null!=n&&(this.backgroundPageShape=this.createBackgroundPageShape(e),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!E.IS_QUIRKS,this.backgroundPageShape.dialect=g.DIALECT_STRICTHTML,this.backgroundPageShape.init(t.container),n.style.position="absolute",t.container.insertBefore(this.backgroundPageShape.node,n),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",C.addListener(this.backgroundPageShape.node,"dblclick",v.bind(this,(function(e){t.dblClick(e)}))),C.addGestureListeners(this.backgroundPageShape.node,v.bind(this,(function(e){t.fireMouseEvent(C.MOUSE_DOWN,new I(e))})),v.bind(this,(function(e){null!=t.tooltipHandler&&t.tooltipHandler.isHideOnHover()&&t.tooltipHandler.hide(),t.isMouseDown&&!C.isConsumed(e)&&t.fireMouseEvent(C.MOUSE_MOVE,new I(e))})),v.bind(this,(function(e){t.fireMouseEvent(C.MOUSE_UP,new I(e))}))))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=e,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null);this.validateBackgroundStyles()}},L.prototype.validateBackgroundStyles=function(){const t=this.graph,e=null==t.background||t.background==g.NONE?t.defaultPageBackgroundColor:t.background,n=null!=e&&this.gridColor!=e.toLowerCase()?this.gridColor:"#ffffff";let i="none",r="";if(t.isGridEnabled()){let e=10;i=unescape(encodeURIComponent(this.createSvgGrid(n))),i=btoa(i),i="url(data:image/svg+xml;base64,"+i+")",e=t.gridSize*this.scale*this.gridSteps;let o=0,s=0;if(null!=t.view.backgroundPageShape){const t=this.getBackgroundPageBounds();o=1+t.x,s=1+t.y}r=-Math.round(e-v.mod(this.translate.x*this.scale-o,e))+"px "+-Math.round(e-v.mod(this.translate.y*this.scale-s,e))+"px"}let o=t.view.canvas;null!=o.ownerSVGElement&&(o=o.ownerSVGElement),null!=t.view.backgroundPageShape?(t.view.backgroundPageShape.node.style.backgroundPosition=r,t.view.backgroundPageShape.node.style.backgroundImage=i,t.view.backgroundPageShape.node.style.backgroundColor=e,t.container.className="geDiagramContainer geDiagramBackdrop",o.style.backgroundImage="none",o.style.backgroundColor=""):(t.container.className="geDiagramContainer",o.style.backgroundPosition=r,o.style.backgroundColor=e,o.style.backgroundImage=i)},L.prototype.createSvgGrid=function(t){let e=this.graph.gridSize*this.scale;for(;e<this.minGridSize;)e*=2;const n=this.gridSteps*e,i=[];for(let r=1;r<this.gridSteps;r++){const t=r*e;i.push("M 0 "+t+" L "+n+" "+t+" M "+t+" 0 L "+t+" "+n)}return'<svg width="'+n+'" height="'+n+'" xmlns="'+g.NS_SVG+'"><defs><pattern id="grid" width="'+n+'" height="'+n+'" patternUnits="userSpaceOnUse"><path d="'+i.join(" ")+'" fill="none" stroke="'+t+'" opacity="0.2" stroke-width="1"/><path d="M '+n+" 0 L 0 0 0 "+n+'" fill="none" stroke="'+t+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};const t=c.prototype.panGraph;c.prototype.panGraph=function(e,n){if(t.apply(this,arguments),null!=this.shiftPreview1){let t=this.view.canvas;null!=t.ownerSVGElement&&(t=t.ownerSVGElement);const i=this.gridSize*this.view.scale*this.view.gridSteps,r=-Math.round(i-v.mod(this.view.translate.x*this.view.scale+e,i))+"px "+-Math.round(i-v.mod(this.view.translate.y*this.view.scale+n,i))+"px";t.style.backgroundPosition=r}},c.prototype.updatePageBreaks=function(t,e,n){const i=this.view.scale,r=this.view.translate,o=this.pageFormat,s=i*this.pageScale,l=this.view.getBackgroundPageBounds();e=l.width,n=l.height;const a=new w(i*r.x,i*r.y,o.width*s,o.height*s),h=(t=t&&Math.min(a.width,a.height)>this.minPageBreakDist)?Math.ceil(n/a.height)-1:0,u=t?Math.ceil(e/a.width)-1:0,d=l.x+e,c=l.y+n;null==this.horizontalPageBreaks&&h>0&&(this.horizontalPageBreaks=[]),null==this.verticalPageBreaks&&u>0&&(this.verticalPageBreaks=[]);const p=v.bind(this,(function(t){if(null!=t){const n=t==this.horizontalPageBreaks?h:u;for(var e=0;e<=n;e++){const n=t==this.horizontalPageBreaks?[new T(Math.round(l.x),Math.round(l.y+(e+1)*a.height)),new T(Math.round(d),Math.round(l.y+(e+1)*a.height))]:[new T(Math.round(l.x+(e+1)*a.width),Math.round(l.y)),new T(Math.round(l.x+(e+1)*a.width),Math.round(c))];if(null!=t[e])t[e].points=n,t[e].redraw();else{const i=new M(n,this.pageBreakColor);i.dialect=this.dialect,i.isDashed=this.pageBreakDashed,i.pointerEvents=!1,i.init(this.view.backgroundPane),i.redraw(),t[e]=i}}for(e=n;e<t.length;e++)t[e].destroy();t.splice(n,t.length-n)}}));p(this.horizontalPageBreaks),p(this.verticalPageBreaks)};const e=R.prototype.shouldRemoveCellsFromParent;R.prototype.shouldRemoveCellsFromParent=function(t,n){for(let e=0;e<n.length;e++)if(this.graph.getModel().isVertex(n[e])){const t=this.graph.getCellGeometry(n[e]);if(null!=t&&t.relative)return!1}return e.apply(this,arguments)};const n=O.prototype.createMarker;O.prototype.createMarker=function(){const t=n.apply(this,arguments);return t.intersects=v.bind(this,(function(){return!!this.isConnecting()||N.prototype.intersects.apply(t,arguments)})),t},L.prototype.createBackgroundPageShape=function(t){return new D(t,"#ffffff",this.graph.defaultPageBorderColor)},L.prototype.getBackgroundPageBounds=function(){const t=this.getGraphBounds(),e=t.width>0?t.x/this.scale-this.translate.x:0,n=t.height>0?t.y/this.scale-this.translate.y:0,i=t.width/this.scale,r=t.height/this.scale,o=this.graph.pageFormat,s=this.graph.pageScale,l=o.width*s,a=o.height*s,h=Math.floor(Math.min(0,e)/l),u=Math.floor(Math.min(0,n)/a),d=Math.ceil(Math.max(1,e+i)/l)-h,c=Math.ceil(Math.max(1,n+r)/a)-u;return new w(this.scale*(this.translate.x+h*l),this.scale*(this.translate.y+u*a),this.scale*d*l,this.scale*c*a)};const i=c.prototype.panGraph;c.prototype.panGraph=function(t,e){i.apply(this,arguments),this.dialect==g.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&v.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=t+"px",this.view.backgroundPageShape.node.style.marginTop=e+"px")};const r=b.prototype.addItem;b.prototype.addItem=function(t,e,n,i,o,s){const l=r.apply(this,arguments);return null==s||s||C.addListener(l,"mousedown",(function(t){C.consume(t)})),l};const o=R.prototype.isPropagateSelectionCell;R.prototype.isPropagateSelectionCell=function(t,e,n){let i=!1;const r=this.graph.model.getParent(t);if(e){const e=this.graph.getCellGeometry(t);return!this.graph.model.isEdge(t)&&!this.graph.model.isEdge(r)&&!this.graph.isSiblingSelected(t)&&(null==e||e.relative||!this.graph.isContainer(r)||this.graph.isPart(t))}if(i=o.apply(this,arguments),this.graph.isTableCell(t)||this.graph.isTableRow(t)){let e=r;this.graph.isTable(e)||(e=this.graph.model.getParent(e)),i=!this.graph.selectionCellsHandler.isHandled(e)||this.graph.isCellSelected(e)&&this.graph.isToggleEvent(n.getEvent())||this.graph.isCellSelected(t)&&!this.graph.isToggleEvent(n.getEvent())||this.graph.isTableCell(t)&&this.graph.isCellSelected(r)}return i},P.prototype.getCellForPopupEvent=function(t){let e=t.getCell();const n=this.graph.getModel();let i=n.getParent(e);const r=this.graph.view.getState(i);let o=this.graph.isCellSelected(e);for(;null!=r&&(n.isVertex(i)||n.isEdge(i));){const t=this.graph.isCellSelected(i);o=o||t,(t||!o&&(this.graph.isTableCell(e)||this.graph.isTableRow(e)))&&(e=i),i=n.getParent(i)}return e}}(),me.prototype.labelIndex=0,me.prototype.currentIndex=0,me.prototype.showCloseButton=!0,me.prototype.inactiveTabBackgroundColor="#f1f3f4",me.prototype.roundableShapes=["label","rectangle","internalStorage","corner","parallelogram","swimlane","triangle","trapezoid","ext","step","tee","process","link","rhombus","offPageConnector","loopLimit","hexagon","manualInput","curlyBracket","singleArrow","callout","doubleArrow","flexArrow","card","umlLifeline"],me.prototype.init=function(){const t=this.editorUi.editor.graph;this.update=v.bind(this,(function(){this.clearSelectionState(),this.refresh()})),t.getSelectionModel().addListener(C.CHANGE,this.update),t.addListener(C.EDITING_STARTED,this.update),t.addListener(C.EDITING_STOPPED,this.update),t.getModel().addListener(C.CHANGE,this.update),t.addListener(C.ROOT,v.bind(this,(function(){this.refresh()}))),this.refresh()},me.prototype.clearSelectionState=function(){this.selectionState=null},me.prototype.getSelectionState=function(){return null==this.selectionState&&(this.selectionState=this.createSelectionState()),this.selectionState},me.prototype.createSelectionState=function(){const t=this.editorUi.editor.graph.getSelectionCells(),e=this.initSelectionState();for(let n=0;n<t.length;n++)this.updateSelectionStateForCell(e,t[n],t);return e},me.prototype.initSelectionState=function(){return{vertices:[],edges:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,comic:!0,autoSize:!1,image:!0,shadow:!0,lineJumps:!0,resizable:!0,table:!1,cell:!1,row:!1,movable:!0,rotatable:!0}},me.prototype.updateSelectionStateForCell=function(t,e){const n=this.editorUi.editor.graph;if(n.getModel().isVertex(e)){t.resizable=t.resizable&&n.isCellResizable(e),t.rotatable=t.rotatable&&n.isCellRotatable(e),t.movable=t.movable&&n.isCellMovable(e)&&!n.isTableRow(e)&&!n.isTableCell(e),t.table=t.table||n.isTable(e),t.cell=t.cell||n.isTableCell(e),t.row=t.row||n.isTableRow(e),t.vertices.push(e);const i=n.getCellGeometry(e);if(null!=i&&(i.width>0?null==t.width?t.width=i.width:t.width!=i.width&&(t.width=""):t.containsLabel=!0,i.height>0?null==t.height?t.height=i.height:t.height!=i.height&&(t.height=""):t.containsLabel=!0,!i.relative||null!=i.offset)){const e=i.relative?i.offset.x:i.x,n=i.relative?i.offset.y:i.y;null==t.x?t.x=e:t.x!=e&&(t.x=""),null==t.y?t.y=n:t.y!=n&&(t.y="")}}else n.getModel().isEdge(e)&&(t.edges.push(e),t.resizable=!1,t.rotatable=!1,t.movable=!1);const i=n.view.getState(e);if(null!=i){t.autoSize=t.autoSize||this.isAutoSizeState(i),t.glass=t.glass&&this.isGlassState(i),t.rounded=t.rounded&&this.isRoundedState(i),t.lineJumps=t.lineJumps&&this.isLineJumpState(i),t.comic=t.comic&&this.isComicState(i),t.image=t.image&&this.isImageState(i),t.shadow=t.shadow&&this.isShadowState(i),t.fill=t.fill&&this.isFillState(i);const e=v.getValue(i.style,g.STYLE_SHAPE,null);t.containsImage=t.containsImage||"image"==e;for(const n in i.style){const e=i.style[n];null!=e&&(null==t.style[n]?t.style[n]=e:t.style[n]!=e&&(t.style[n]=""))}}},me.prototype.isFillState=function(t){return t.view.graph.model.isVertex(t.cell)||"arrow"==v.getValue(t.style,g.STYLE_SHAPE,null)||"filledEdge"==v.getValue(t.style,g.STYLE_SHAPE,null)||"flexArrow"==v.getValue(t.style,g.STYLE_SHAPE,null)},me.prototype.isGlassState=function(t){const e=v.getValue(t.style,g.STYLE_SHAPE,null);return"label"==e||"rectangle"==e||"internalStorage"==e||"ext"==e||"umlLifeline"==e||"swimlane"==e||"process"==e},me.prototype.isRoundedState=function(t){return null!=t.shape?t.shape.isRoundable():v.indexOf(this.roundableShapes,v.getValue(t.style,g.STYLE_SHAPE,null))>=0},me.prototype.isLineJumpState=function(t){const e=v.getValue(t.style,g.STYLE_SHAPE,null);return!v.getValue(t.style,g.STYLE_CURVED,!1)&&("connector"==e||"filledEdge"==e)},me.prototype.isComicState=function(t){const e=v.getValue(t.style,g.STYLE_SHAPE,null);return v.indexOf(["label","rectangle","internalStorage","corner","parallelogram","note","collate","swimlane","triangle","trapezoid","ext","step","tee","process","link","rhombus","offPageConnector","loopLimit","hexagon","manualInput","singleArrow","doubleArrow","flexArrow","filledEdge","card","umlLifeline","connector","folder","component","sortShape","cross","umlFrame","cube","isoCube","isoRectangle","partialRectangle"],e)>=0},me.prototype.isAutoSizeState=function(t){return"1"==v.getValue(t.style,g.STYLE_AUTOSIZE,null)},me.prototype.isImageState=function(t){const e=v.getValue(t.style,g.STYLE_SHAPE,null);return"label"==e||"image"==e},me.prototype.isShadowState=function(t){return"image"!=v.getValue(t.style,g.STYLE_SHAPE,null)},me.prototype.clear=function(){if(this.container.innerHTML="",null!=this.panels)for(let t=0;t<this.panels.length;t++)this.panels[t].destroy();this.panels=[]},me.prototype.refresh=function(){if("0px"==this.container.style.width)return;this.clear();const t=this.editorUi,e=t.editor.graph,n=document.createElement("div");n.style.whiteSpace="nowrap",n.style.color="rgb(112, 112, 112)",n.style.textAlign="left",n.style.cursor="default";const i=document.createElement("div");if(i.className="geFormatSection",i.style.textAlign="center",i.style.fontWeight="bold",i.style.paddingTop="8px",i.style.fontSize="13px",i.style.borderWidth="0px 0px 1px 1px",i.style.borderStyle="solid",i.style.display=E.IS_QUIRKS?"inline":"inline-block",i.style.height=E.IS_QUIRKS?"34px":"25px",i.style.overflow="hidden",i.style.width="100%",this.container.appendChild(n),C.addListener(i,E.IS_POINTER?"pointerdown":"mousedown",v.bind(this,(function(t){t.preventDefault()}))),e.isSelectionEmpty()){if(v.write(i,f.get("diagram")),i.style.borderLeftWidth="0px",this.showCloseButton){const e=document.createElement("img");e.setAttribute("border","0"),e.setAttribute("src",de.prototype.closeImage),e.setAttribute("title",f.get("hide")),e.style.position="absolute",e.style.display="block",e.style.right="0px",e.style.top="8px",e.style.cursor="pointer",e.style.marginTop="1px",e.style.marginRight="17px",e.style.border="1px solid transparent",e.style.padding="1px",e.style.opacity=.5,i.appendChild(e),C.addListener(e,"click",(function(){t.actions.get("formatPanel").funct()}))}n.appendChild(i),this.panels.push(new Ce(this,t,n))}else if(e.isEditing())v.write(i,f.get("text")),n.appendChild(i),this.panels.push(new fe(this,t,n));else{const e=this.getSelectionState().containsLabel;let r=null,o=null;const s=v.bind(this,(function(t,n,i){const s=v.bind(this,(function(){r!=t&&(e?this.labelIndex=i:this.currentIndex=i,null!=r&&(r.style.backgroundColor=this.inactiveTabBackgroundColor,r.style.borderBottomWidth="1px"),r=t,r.style.backgroundColor="",r.style.borderBottomWidth="0px",o!=n&&(null!=o&&(o.style.display="none"),o=n,o.style.display=""))}));C.addListener(t,"click",s),C.addListener(t,E.IS_POINTER?"pointerdown":"mousedown",v.bind(this,(function(t){t.preventDefault()}))),i==(e?this.labelIndex:this.currentIndex)&&s()}));let l=0;i.style.backgroundColor=this.inactiveTabBackgroundColor,i.style.borderLeftWidth="1px",i.style.cursor="pointer",i.style.width=e?"50%":"33.3%",i.style.width=e?"50%":"33.3%";const a=i.cloneNode(!1),h=a.cloneNode(!1);if(a.style.backgroundColor=this.inactiveTabBackgroundColor,h.style.backgroundColor=this.inactiveTabBackgroundColor,e)a.style.borderLeftWidth="0px";else{i.style.borderLeftWidth="0px",v.write(i,f.get("style")),n.appendChild(i);const e=n.cloneNode(!1);e.style.display="none",this.panels.push(new Ae(this,t,e)),this.container.appendChild(e),s(i,e,l++)}v.write(a,f.get("text")),n.appendChild(a);const u=n.cloneNode(!1);u.style.display="none",this.panels.push(new fe(this,t,u)),this.container.appendChild(u),v.write(h,f.get("arrange")),n.appendChild(h);const d=n.cloneNode(!1);d.style.display="none",this.panels.push(new ye(this,t,d)),this.container.appendChild(d),s(a,u,l++),s(h,d,l++)}},xe.prototype.buttonBackgroundColor="white",xe.prototype.getSelectionState=function(){const t=this.editorUi.editor.graph,e=t.getSelectionCells();let n=null;for(let i=0;i<e.length;i++){const r=t.view.getState(e[i]);if(null!=r){const t=v.getValue(r.style,g.STYLE_SHAPE,null);if(null!=t)if(null==n)n=t;else if(n!=t)return null}}return n},xe.prototype.installInputHandler=function(t,e,n,i,r,o,s,l){o=null!=o?o:"",l=null!=l&&l;const a=this.editorUi,h=a.editor.graph;i=null!=i?i:1,r=null!=r?r:999;let u=null,d=!1;const c=v.bind(this,(function(c){let p=l?parseFloat(t.value):parseInt(t.value);if(isNaN(p)||e!=g.STYLE_ROTATION||(p=v.mod(Math.round(100*p),36e3)/100),p=Math.min(r,Math.max(i,isNaN(p)?n:p)),h.cellEditor.isContentEditing()&&s)d||(d=!0,null!=u&&(h.cellEditor.restoreSelection(u),u=null),s(p),t.value=p+o,d=!1);else if(p!=v.getValue(this.format.getSelectionState().style,e,n)){h.isEditing()&&h.stopEditing(!0),h.getModel().beginUpdate();try{const t=h.getSelectionCells();h.setCellStyles(e,p,t),e==g.STYLE_FONTSIZE&&h.updateLabelElements(h.getSelectionCells(),(function(t){t.style.fontSize=p+"px",t.removeAttribute("size")}));for(let e=0;e<t.length;e++)0==h.model.getChildCount(t[e])&&h.autoSizeCell(t[e],!1);a.fireEvent(new A("styleChanged","keys",[e],"values",[p],"cells",t))}finally{h.getModel().endUpdate()}}t.value=p+o,C.consume(c)}));return s&&h.cellEditor.isContentEditing()&&(C.addListener(t,"mousedown",(function(){document.activeElement==h.cellEditor.textarea&&(u=h.cellEditor.saveSelection())})),C.addListener(t,"touchstart",(function(){document.activeElement==h.cellEditor.textarea&&(u=h.cellEditor.saveSelection())}))),C.addListener(t,"change",c),C.addListener(t,"blur",c),c},xe.prototype.createPanel=function(){const t=document.createElement("div");return t.className="geFormatSection",t.style.padding="12px 0px 12px 18px",t},xe.prototype.createTitle=function(t){const e=document.createElement("div");return e.style.padding="0px 0px 6px 0px",e.style.whiteSpace="nowrap",e.style.overflow="hidden",e.style.width="200px",e.style.fontWeight="bold",v.write(e,t),e},xe.prototype.createStepper=function(t,e,n,i,r,o,s){n=null!=n?n:1,i=null!=i?i:8,E.IS_QUIRKS?i-=2:(E.IS_MT||document.documentMode>=8)&&(i+=1);const l=document.createElement("div");v.setPrefixedStyle(l.style,"borderRadius","3px"),l.style.border="1px solid rgb(192, 192, 192)",l.style.position="absolute";const a=document.createElement("div");a.style.borderBottom="1px solid rgb(192, 192, 192)",a.style.position="relative",a.style.height=i+"px",a.style.width="10px",a.className="geBtnUp",l.appendChild(a);const h=a.cloneNode(!1);if(h.style.border="none",h.style.height=i+"px",h.className="geBtnDown",l.appendChild(h),C.addListener(h,"click",(function(i){""==t.value&&(t.value=o||"2");const r=s?parseFloat(t.value):parseInt(t.value);isNaN(r)||(t.value=r-n,null!=e&&e(i)),C.consume(i)})),C.addListener(a,"click",(function(i){""==t.value&&(t.value=o||"0");const r=s?parseFloat(t.value):parseInt(t.value);isNaN(r)||(t.value=r+n,null!=e&&e(i)),C.consume(i)})),r){let t=null;C.addGestureListeners(l,(function(e){(E.IS_QUIRKS||8==document.documentMode)&&(t=document.selection.createRange()),C.consume(e)}),null,(function(e){if(null!=t){try{t.select()}catch(t){}t=null,C.consume(e)}}))}return l},xe.prototype.createOption=function(t,e,n,i){const r=document.createElement("div");r.style.padding="6px 0px 1px 0px",r.style.whiteSpace="nowrap",r.style.overflow="hidden",r.style.width="200px",r.style.height=E.IS_QUIRKS?"27px":"18px",r.className="form-options-line";const o=document.createElement("input");o.setAttribute("type","checkbox"),o.style.margin="0px 6px 0px 0px",r.appendChild(o);const s=document.createElement("span");v.write(s,t),r.appendChild(s);let l=!1,a=e();const h=function(t){l||(l=!0,t?(o.setAttribute("checked","checked"),o.defaultChecked=!0,o.checked=!0):(o.removeAttribute("checked"),o.defaultChecked=!1,o.checked=!1),a!=t&&(a=t,e()!=a&&n(a)),l=!1)};return C.addListener(r,"click",(function(t){if("disabled"!=o.getAttribute("disabled")){const e=C.getSource(t);e!=r&&e!=s||(o.checked=!o.checked),h(o.checked)}})),h(a),null!=i&&(i.install(h),this.listeners.push(i)),r},xe.prototype.createCellOption=function(t,e,n,i,r,o,s,l){i=null!=i?"null"==i?null:i:"1",r=null!=r?"null"==r?null:r:"0";const a=this.editorUi,h=a.editor.graph;return this.createOption(t,(function(){const t=h.view.getState(h.getSelectionCell());return null!=t?v.getValue(t.style,e,n)!=r:null}),(function(t){if(l&&h.stopEditing(),null!=s)s.funct();else{h.getModel().beginUpdate();try{const n=t?i:r;h.setCellStyles(e,n,h.getSelectionCells()),null!=o&&o(h.getSelectionCells(),n),a.fireEvent(new A("styleChanged","keys",[e],"values",[n],"cells",h.getSelectionCells()))}finally{h.getModel().endUpdate()}}}),{install:function(t){this.listener=function(){const i=h.view.getState(h.getSelectionCell());null!=i&&t(v.getValue(i.style,e,n)!=r)},h.getModel().addListener(C.CHANGE,this.listener)},destroy:function(){h.getModel().removeListener(this.listener)}})},xe.prototype.createColorOption=function(t,e,n,i,r,o,s){const l=document.createElement("div");l.style.padding="6px 0px 1px 0px",l.style.whiteSpace="nowrap",l.style.overflow="hidden",l.style.width="200px",l.style.height=E.IS_QUIRKS?"27px":"18px";const a=document.createElement("input");a.setAttribute("type","checkbox"),a.style.margin="0px 6px 0px 0px",l.className="form-options-line",s||l.appendChild(a);const h=document.createElement("span");v.write(h,t),l.appendChild(h);let u=e(),d=!1,c=null;const p=function(t,r,l){d||(d=!0,t=/(^#?[a-zA-Z0-9]*$)/.test(t)?t:i,c.innerHTML='<div style="width:'+(E.IS_QUIRKS?"30":"36")+"px;height:12px;margin:3px;border:1px solid black;background-color:"+v.htmlEntities(null!=t&&t!=g.NONE?t:i)+';"></div>',(E.IS_QUIRKS||8==document.documentMode)&&(c.firstChild.style.margin="0px"),null!=t&&t!=g.NONE?(a.setAttribute("checked","checked"),a.defaultChecked=!0,a.checked=!0):(a.removeAttribute("checked"),a.defaultChecked=!1,a.checked=!1),c.style.display=a.checked||s?"":"none",null!=o&&o(t),r||(u=t,(l||s||e()!=u)&&n(u)),d=!1)};return c=v.button("",v.bind(this,(function(t){this.editorUi.pickColor(u,(function(t){p(t,null,!0)})),C.consume(t)}))),c.style.position="absolute",c.style.marginTop="-4px",c.style.right=E.IS_QUIRKS?"0px":"20px",c.style.height="22px",c.className="geColorBtn",c.style.display=a.checked||s?"":"none",l.appendChild(c),C.addListener(l,"click",(function(t){const e=C.getSource(t);e!=a&&"INPUT"==e.nodeName||(e!=a&&(a.checked=!a.checked),a.checked||null==u||u==g.NONE||i==g.NONE||(i=u),p(a.checked?i:g.NONE))})),p(u,!0),null!=r&&(r.install(p),this.listeners.push(r)),l},xe.prototype.createCellColorOption=function(t,e,n,i,r){const o=this.editorUi,s=o.editor.graph;return this.createColorOption(t,(function(){const t=s.view.getState(s.getSelectionCell());return null!=t?v.getValue(t.style,e,null):null}),(function(t){s.getModel().beginUpdate();try{null!=r&&r(t),s.setCellStyles(e,t,s.getSelectionCells()),o.fireEvent(new A("styleChanged","keys",[e],"values",[t],"cells",s.getSelectionCells()))}finally{s.getModel().endUpdate()}}),n||g.NONE,{install:function(t){this.listener=function(){const n=s.view.getState(s.getSelectionCell());null!=n&&t(v.getValue(n.style,e,null))},s.getModel().addListener(C.CHANGE,this.listener)},destroy:function(){s.getModel().removeListener(this.listener)}},i)},xe.prototype.addArrow=function(t,e){e=null!=e?e:10;const n=document.createElement("div");n.style.display=E.IS_QUIRKS?"inline":"inline-block",n.style.padding="6px",n.style.paddingRight="4px";const i=10-e;2==i?n.style.paddingTop="6px":i>0?n.style.paddingTop=6-i+"px":n.style.marginTop="-2px",n.style.height=e+"px",n.style.borderLeft="1px solid #a0a0a0",n.innerHTML='<img border="0" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHBJREFUeNpidHB2ZyAGsACxDRBPIKCuA6TwCBB/h2rABu4A8SYmKCcXiP/iUFgAxL9gCi8A8SwsirZCMQMTkmANEH9E4v+CmsaArvAdyNFI/FlQ92EoBIE+qCRIUz168DBgsU4OqhinQpgHMABAgAEALY4XLIsJ20oAAAAASUVORK5CYII=" style="margin-bottom:4px;">',v.setOpacity(n,70);const r=t.getElementsByTagName("div")[0];return null!=r&&(r.style.paddingRight="6px",r.style.marginLeft="4px",r.style.marginTop="-1px",r.style.display=E.IS_QUIRKS?"inline":"inline-block",v.setOpacity(r,60)),v.setOpacity(t,100),t.style.border="1px solid #a0a0a0",t.style.backgroundColor=this.buttonBackgroundColor,t.style.backgroundImage="none",t.style.width="auto",t.className+=" geColorBtn",v.setPrefixedStyle(t.style,"borderRadius","3px"),t.appendChild(n),r},xe.prototype.addUnitInput=function(t,e,n,i,r,o,s,l,a){s=null!=s?s:0;const h=document.createElement("input");h.style.position="absolute",h.style.textAlign="right",h.style.marginTop="-2px",h.style.right=n+12+"px",h.style.width=i+"px",t.appendChild(h);const u=this.createStepper(h,r,o,null,l,null,a);return u.style.marginTop=s-2+"px",u.style.right=n+"px",t.appendChild(u),h},xe.prototype.createRelativeOption=function(t,e,n,i,r){n=null!=n?n:44;const o=this.editorUi.editor.graph,s=this.createPanel();s.style.paddingTop="10px",s.style.paddingBottom="10px",v.write(s,t),s.style.fontWeight="bold";const l=v.bind(this,(function(t){if(null!=i)i(a);else{let t=parseInt(a.value);t=Math.min(100,Math.max(0,isNaN(t)?100:t));const n=o.view.getState(o.getSelectionCell());null!=n&&t!=v.getValue(n.style,e,100)&&(100==t&&(t=null),o.setCellStyles(e,t,o.getSelectionCells()),this.editorUi.fireEvent(new A("styleChanged","keys",[e],"values",[t],"cells",o.getSelectionCells()))),a.value=(null!=t?t:"100")+" %"}C.consume(t)}));var a=this.addUnitInput(s,"%",20,n,l,10,-15,null!=i);if(null!=e){const t=v.bind(this,(function(t,n,i){if(i||a!=document.activeElement){const t=this.format.getSelectionState(),n=parseInt(v.getValue(t.style,e,100));a.value=isNaN(n)?"":n+" %"}}));C.addListener(a,"keydown",(function(e){13==e.keyCode?(o.container.focus(),C.consume(e)):27==e.keyCode&&(t(null,null,!0),o.container.focus(),C.consume(e))})),o.getModel().addListener(C.CHANGE,t),this.listeners.push({destroy:function(){o.getModel().removeListener(t)}}),t()}return C.addListener(a,"blur",l),C.addListener(a,"change",l),null!=r&&r(a),s},xe.prototype.addLabel=function(t,e,n,i){i=null!=i?i:61;const r=document.createElement("div");v.write(r,e),r.style.position="absolute",r.style.right=n+"px",r.style.width=i+"px",r.style.marginTop="6px",r.style.textAlign="center",t.appendChild(r)},xe.prototype.addKeyHandler=function(t,e){C.addListener(t,"keydown",v.bind(this,(function(t){13==t.keyCode?(this.editorUi.editor.graph.container.focus(),C.consume(t)):27==t.keyCode&&(null!=e&&e(null,null,!0),this.editorUi.editor.graph.container.focus(),C.consume(t))})))},xe.prototype.styleButtons=function(t){for(let e=0;e<t.length;e++)t[e]&&(v.setPrefixedStyle(t[e].style,"borderRadius","3px"),v.setOpacity(t[e],100),t[e].style.border="1px solid #a0a0a0",t[e].style.padding="4px",t[e].style.paddingTop="3px",t[e].style.paddingRight="1px",t[e].style.margin="1px",t[e].style.width="24px",t[e].style.height="20px",t[e].className+=" geColorBtn")},xe.prototype.destroy=function(){if(null!=this.listeners){for(let t=0;t<this.listeners.length;t++)this.listeners[t].destroy();this.listeners=null}},v.extend(ye,xe),ye.prototype.init=function(){const t=this.editorUi.editor.graph,e=this.format.getSelectionState();if(this.container.appendChild(this.addLayerOps(this.createPanel())),this.addGeometry(this.container),this.addEdgeGeometry(this.container),e.containsLabel&&0!=e.edges.length||this.container.appendChild(this.addAngle(this.createPanel())),e.containsLabel||0!=e.edges.length||"rectangle"==e.style.shape||"label"==e.style.shape||this.container.appendChild(this.addFlip(this.createPanel())),e.vertices.length>1&&(this.container.appendChild(this.addAlign(this.createPanel())),this.container.appendChild(this.addDistribute(this.createPanel()))),(t.isTable(e.vertices[0])||t.isTableRow(e.vertices[0])||t.isTableCell(e.vertices[0]))&&this.container.appendChild(this.addTable(this.createPanel())),this.container.appendChild(this.addGroupOps(this.createPanel())),e.containsLabel){const t=document.createElement("div");t.style.width="100%",t.style.marginTop="0px",t.style.fontWeight="bold",t.style.padding="10px 0 0 18px",v.write(t,f.get("style")),this.container.appendChild(t),new Ae(this.format,this.editorUi,this.container)}},ye.prototype.addTable=function(t){const e=this.editorUi,n=e.editor.graph,i=this.format.getSelectionState();t.style.paddingTop="6px",t.style.paddingBottom="10px";const r=document.createElement("div");r.style.marginTop="2px",r.style.marginBottom="8px",r.style.fontWeight="bold",v.write(r,f.get("table")),t.appendChild(r);const o=document.createElement("div");o.style.position="relative",o.style.paddingLeft="0px",o.style.borderWidth="0px",o.className="geToolbarContainer";const s=[e.toolbar.addButton("geSprite-insertcolumnbefore",f.get("insertColumnBefore"),v.bind(this,(function(){try{n.insertTableColumn(i.vertices[0],!0)}catch(t){e.handleError(t)}})),o),e.toolbar.addButton("geSprite-insertcolumnafter",f.get("insertColumnAfter"),v.bind(this,(function(){try{n.insertTableColumn(i.vertices[0],!1)}catch(t){e.handleError(t)}})),o),e.toolbar.addButton("geSprite-deletecolumn",f.get("deleteColumn"),v.bind(this,(function(){try{n.deleteTableColumn(i.vertices[0])}catch(t){e.handleError(t)}})),o),e.toolbar.addButton("geSprite-insertrowbefore",f.get("insertRowBefore"),v.bind(this,(function(){try{n.insertTableRow(i.vertices[0],!0)}catch(t){e.handleError(t)}})),o),e.toolbar.addButton("geSprite-insertrowafter",f.get("insertRowAfter"),v.bind(this,(function(){try{n.insertTableRow(i.vertices[0],!1)}catch(t){e.handleError(t)}})),o),e.toolbar.addButton("geSprite-deleterow",f.get("deleteRow"),v.bind(this,(function(){try{n.deleteTableRow(i.vertices[0])}catch(t){e.handleError(t)}})),o)];return this.styleButtons(s),t.appendChild(o),s[2].style.marginRight="9px",t},ye.prototype.addLayerOps=function(t){const e=this.editorUi;var n;return(n=v.button(f.get("toFront"),(function(){e.actions.get("toFront").funct()}))).setAttribute("title",f.get("toFront")+" ("+this.editorUi.actions.get("toFront").shortcut+")"),n.style.width="100px",n.style.marginRight="2px",t.appendChild(n),(n=v.button(f.get("toBack"),(function(){e.actions.get("toBack").funct()}))).setAttribute("title",f.get("toBack")+" ("+this.editorUi.actions.get("toBack").shortcut+")"),n.style.width="100px",t.appendChild(n),t},ye.prototype.addGroupOps=function(t){const e=this.editorUi,n=e.editor.graph,i=n.getSelectionCell(),r=this.format.getSelectionState();let o=0;var s=null;if(t.style.paddingTop="8px",t.style.paddingBottom="6px",n.getSelectionCount()>1?((s=v.button(f.get("group"),(function(){e.actions.get("group").funct()}))).setAttribute("title",f.get("group")+" ("+this.editorUi.actions.get("group").shortcut+")"),s.style.width="202px",s.style.marginBottom="2px",t.appendChild(s),o++):1!=n.getSelectionCount()||n.getModel().isEdge(i)||n.isSwimlane(i)||n.isTable(i)||r.row||r.cell||!(n.getModel().getChildCount(i)>0)||((s=v.button(f.get("ungroup"),(function(){e.actions.get("ungroup").funct()}))).setAttribute("title",f.get("ungroup")+" ("+this.editorUi.actions.get("ungroup").shortcut+")"),s.style.width="202px",s.style.marginBottom="2px",t.appendChild(s),o++),r.vertices.length>0&&(o>0&&(v.br(t),o=0),(s=v.button(f.get("copySize"),(function(){e.actions.get("copySize").funct()}))).setAttribute("title",f.get("copySize")+" ("+this.editorUi.actions.get("copySize").shortcut+")"),s.style.width="202px",s.style.marginBottom="2px",t.appendChild(s),o++,null!=e.copiedSize)){const n=v.button(f.get("pasteSize"),(function(){e.actions.get("pasteSize").funct()}));n.setAttribute("title",f.get("pasteSize")+" ("+this.editorUi.actions.get("pasteSize").shortcut+")"),t.appendChild(n),o++,s.style.width="100px",s.style.marginBottom="2px",n.style.width="100px",n.style.marginBottom="2px"}return 1==n.getSelectionCount()&&n.getModel().isVertex(i)&&!r.row&&!r.cell&&n.getModel().isVertex(n.getModel().getParent(i))?(o>0&&v.br(t),(s=v.button(f.get("removeFromGroup"),(function(){e.actions.get("removeFromGroup").funct()}))).setAttribute("title",f.get("removeFromGroup")),s.style.width="202px",s.style.marginBottom="2px",t.appendChild(s),o++):n.getSelectionCount()>0&&(o>0&&v.br(t),(s=v.button(f.get("clearWaypoints"),v.bind(this,(function(){this.editorUi.actions.get("clearWaypoints").funct()})))).setAttribute("title",f.get("clearWaypoints")+" ("+this.editorUi.actions.get("clearWaypoints").shortcut+")"),s.style.width="202px",s.style.marginBottom="2px",t.appendChild(s),o++),1==n.getSelectionCount()&&o>0&&v.br(t),0==o&&(t.style.display="none"),t},ye.prototype.addAlign=function(t){const e=this.editorUi.editor.graph;t.style.paddingTop="6px",t.style.paddingBottom="12px",t.appendChild(this.createTitle(f.get("align")));const n=document.createElement("div");n.style.position="relative",n.style.paddingLeft="0px",n.style.borderWidth="0px",n.className="geToolbarContainer",E.IS_QUIRKS&&(t.style.height="60px");const i=this.editorUi.toolbar.addButton("geSprite-alignleft",f.get("left"),(function(){e.alignCells(g.ALIGN_LEFT)}),n),r=this.editorUi.toolbar.addButton("geSprite-aligncenter",f.get("center"),(function(){e.alignCells(g.ALIGN_CENTER)}),n),o=this.editorUi.toolbar.addButton("geSprite-alignright",f.get("right"),(function(){e.alignCells(g.ALIGN_RIGHT)}),n),s=this.editorUi.toolbar.addButton("geSprite-aligntop",f.get("top"),(function(){e.alignCells(g.ALIGN_TOP)}),n),l=this.editorUi.toolbar.addButton("geSprite-alignmiddle",f.get("middle"),(function(){e.alignCells(g.ALIGN_MIDDLE)}),n),a=this.editorUi.toolbar.addButton("geSprite-alignbottom",f.get("bottom"),(function(){e.alignCells(g.ALIGN_BOTTOM)}),n);return this.styleButtons([i,r,o,s,l,a]),o.style.marginRight="6px",t.appendChild(n),t},ye.prototype.addFlip=function(t){const e=this.editorUi.editor.graph;t.style.paddingTop="6px",t.style.paddingBottom="10px";const n=document.createElement("div");var i;return n.style.marginTop="2px",n.style.marginBottom="8px",n.style.fontWeight="bold",v.write(n,f.get("flip")),t.appendChild(n),(i=v.button(f.get("horizontal"),(function(){e.toggleCellStyles(g.STYLE_FLIPH,!1)}))).setAttribute("title",f.get("horizontal")),i.style.width="100px",i.style.marginRight="2px",t.appendChild(i),(i=v.button(f.get("vertical"),(function(){e.toggleCellStyles(g.STYLE_FLIPV,!1)}))).setAttribute("title",f.get("vertical")),i.style.width="100px",t.appendChild(i),t},ye.prototype.addDistribute=function(t){const e=this.editorUi.editor.graph;var n;return t.style.paddingTop="6px",t.style.paddingBottom="12px",t.appendChild(this.createTitle(f.get("distribute"))),(n=v.button(f.get("horizontal"),(function(){e.distributeCells(!0)}))).setAttribute("title",f.get("horizontal")),n.style.width="100px",n.style.marginRight="2px",t.appendChild(n),(n=v.button(f.get("vertical"),(function(){e.distributeCells(!1)}))).setAttribute("title",f.get("vertical")),n.style.width="100px",t.appendChild(n),t},ye.prototype.addAngle=function(t){const e=this.editorUi,n=e.editor.graph;let i=this.format.getSelectionState();t.style.paddingBottom="8px";const r=document.createElement("div");r.style.position="absolute",r.style.width="70px",r.style.marginTop="0px",r.style.fontWeight="bold";let o=null,s=null,l=null;if(!i.rotatable||i.table||i.row||i.cell?t.style.paddingTop="8px":(v.write(r,f.get("angle")),t.appendChild(r),o=this.addUnitInput(t,"°",20,44,(function(){s.apply(this,arguments)})),v.br(t),t.style.paddingTop="10px"),!i.containsLabel){let n=f.get("reverse");i.vertices.length>0&&i.edges.length>0?n=f.get("turn")+" / "+n:i.vertices.length>0&&(n=f.get("turn")),l=v.button(n,(function(t){e.actions.get("turn").funct(t)})),l.setAttribute("title",n+" ("+this.editorUi.actions.get("turn").shortcut+")"),l.style.width="202px",t.appendChild(l),null!=o&&(l.style.marginTop="8px")}if(null!=o){const t=v.bind(this,(function(t,e,n){if(n||document.activeElement!=o){i=this.format.getSelectionState();const t=parseFloat(v.getValue(i.style,g.STYLE_ROTATION,0));o.value=isNaN(t)?"":t+"°"}}));s=this.installInputHandler(o,g.STYLE_ROTATION,0,0,360,"°",null,!0),this.addKeyHandler(o,t),n.getModel().addListener(C.CHANGE,t),this.listeners.push({destroy:function(){n.getModel().removeListener(t)}}),t()}return t},xe.prototype.getUnit=function(){switch(this.editorUi.editor.graph.view.unit){case g.POINTS:return"pt";case g.INCHES:return'"';case g.MILLIMETERS:return"mm"}},xe.prototype.inUnit=function(t){return this.editorUi.editor.graph.view.formatUnitText(t)},xe.prototype.fromUnit=function(t){switch(this.editorUi.editor.graph.view.unit){case g.POINTS:return t;case g.INCHES:return t*g.PIXELS_PER_INCH;case g.MILLIMETERS:return t*g.PIXELS_PER_MM}},xe.prototype.isFloatUnit=function(){return this.editorUi.editor.graph.view.unit!=g.POINTS},xe.prototype.getUnitStep=function(){switch(this.editorUi.editor.graph.view.unit){case g.POINTS:return 1;case g.INCHES:return.1;case g.MILLIMETERS:return.5}},ye.prototype.addGeometry=function(t){const e=this,n=this.editorUi,i=n.editor.graph;let r=this.format.getSelectionState();const o=this.createPanel();let s,l,a,h;o.style.paddingBottom="8px",(A=document.createElement("div")).style.position="absolute",A.style.width="50px",A.style.marginTop="0px",A.style.fontWeight="bold",v.write(A,f.get("size")),o.appendChild(A);const u=this.addUnitInput(o,this.getUnit(),84,44,(function(){s.apply(this,arguments)}),this.getUnitStep(),null,null,this.isFloatUnit()),d=this.addUnitInput(o,this.getUnit(),20,44,(function(){l.apply(this,arguments)}),this.getUnitStep(),null,null,this.isFloatUnit()),c=document.createElement("div");c.className="geSprite geSprite-fit",c.setAttribute("title",f.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")"),c.style.position="relative",c.style.cursor="pointer",c.style.marginTop="-3px",c.style.border="0px",c.style.left="52px",v.setOpacity(c,50),C.addListener(c,"mouseenter",(function(){v.setOpacity(c,100)})),C.addListener(c,"mouseleave",(function(){v.setOpacity(c,50)})),C.addListener(c,"click",(function(){n.actions.get("autosize").funct()})),o.appendChild(c),r.row?(u.style.visibility="hidden",u.nextSibling.style.visibility="hidden"):this.addLabel(o,f.get("width"),84),this.addLabel(o,f.get("height"),20),v.br(o);const p=document.createElement("div");p.style.paddingTop="8px",p.style.paddingRight="20px",p.style.whiteSpace="nowrap",p.style.textAlign="right";const m=this.createCellOption(f.get("constrainProportions"),g.STYLE_ASPECT,null,"fixed","null");m.style.width="100%",p.appendChild(m),r.cell||r.row?c.style.visibility="hidden":o.appendChild(p);const x=m.getElementsByTagName("input")[0];this.addKeyHandler(u,S),this.addKeyHandler(d,S),s=this.addGeometryHandler(u,(function(t,n,r){if(i.isTableCell(r))return i.setTableColumnWidth(r,n-t.width,!0),!0;t.width>0&&(n=Math.max(1,e.fromUnit(n)),x.checked&&(t.height=Math.round(t.height*n*100/t.width)/100),t.width=n)})),l=this.addGeometryHandler(d,(function(t,n,r){if(i.isTableCell(r)&&(r=i.model.getParent(r)),i.isTableRow(r))return i.setTableRowHeight(r,n-t.height),!0;t.height>0&&(n=Math.max(1,e.fromUnit(n)),x.checked&&(t.width=Math.round(t.width*n*100/t.height)/100),t.height=n)})),(r.resizable||r.row||r.cell)&&t.appendChild(o);const y=this.createPanel();var A;y.style.paddingBottom="30px",(A=document.createElement("div")).style.position="absolute",A.style.width="70px",A.style.marginTop="0px",A.style.fontWeight="bold",v.write(A,f.get("position")),y.appendChild(A);const E=this.addUnitInput(y,this.getUnit(),84,44,(function(){a.apply(this,arguments)}),this.getUnitStep(),null,null,this.isFloatUnit()),w=this.addUnitInput(y,this.getUnit(),20,44,(function(){h.apply(this,arguments)}),this.getUnitStep(),null,null,this.isFloatUnit());v.br(y),this.addLabel(y,f.get("left"),84),this.addLabel(y,f.get("top"),20);var S=v.bind(this,(function(t,e,n){r=this.format.getSelectionState(),r.containsLabel||r.vertices.length!=i.getSelectionCount()||null==r.width||null==r.height?o.style.display="none":(o.style.display="",(n||document.activeElement!=u)&&(u.value=this.inUnit(r.width)+(""==r.width?"":" "+this.getUnit())),(n||document.activeElement!=d)&&(d.value=this.inUnit(r.height)+(""==r.height?"":" "+this.getUnit()))),r.vertices.length==i.getSelectionCount()&&null!=r.x&&null!=r.y?(y.style.display="",(n||document.activeElement!=E)&&(E.value=this.inUnit(r.x)+(""==r.x?"":" "+this.getUnit())),(n||document.activeElement!=w)&&(w.value=this.inUnit(r.y)+(""==r.y?"":" "+this.getUnit()))):y.style.display="none"}));this.addKeyHandler(E,S),this.addKeyHandler(w,S),i.getModel().addListener(C.CHANGE,S),this.listeners.push({destroy:function(){i.getModel().removeListener(S)}}),S(),a=this.addGeometryHandler(E,(function(t,n){n=e.fromUnit(n),t.relative?t.offset.x=n:t.x=n})),h=this.addGeometryHandler(w,(function(t,n){n=e.fromUnit(n),t.relative?t.offset.y=n:t.y=n})),r.movable&&t.appendChild(y)},ye.prototype.addGeometryHandler=function(t,e){const n=this.editorUi.editor.graph;let i=null;const r=this;function o(o){if(""!=t.value){const o=parseFloat(t.value);if(isNaN(o))t.value=i+" "+r.getUnit();else if(o!=i){n.getModel().beginUpdate();try{const t=n.getSelectionCells();for(let i=0;i<t.length;i++)if(n.getModel().isVertex(t[i])){let r=n.getCellGeometry(t[i]);if(null!=r&&(r=r.clone(),!e(r,o,t[i]))){const e=n.view.getState(t[i]);null!=e&&n.isRecursiveVertexResize(e)&&n.resizeChildCells(t[i],r),n.getModel().setGeometry(t[i],r),n.constrainChildCells(t[i])}}}finally{n.getModel().endUpdate()}i=o,t.value=o+" "+r.getUnit()}}C.consume(o)}return C.addListener(t,"blur",o),C.addListener(t,"change",o),C.addListener(t,"focus",(function(){i=t.value})),o},ye.prototype.addEdgeGeometryHandler=function(t,e){const n=this.editorUi.editor.graph;let i=null;function r(r){if(""!=t.value){const r=parseFloat(t.value);if(isNaN(r))t.value=i+" pt";else if(r!=i){n.getModel().beginUpdate();try{const t=n.getSelectionCells();for(let i=0;i<t.length;i++)if(n.getModel().isEdge(t[i])){let o=n.getCellGeometry(t[i]);null!=o&&(o=o.clone(),e(o,r),n.getModel().setGeometry(t[i],o))}}finally{n.getModel().endUpdate()}i=r,t.value=r+" pt"}}C.consume(r)}return C.addListener(t,"blur",r),C.addListener(t,"change",r),C.addListener(t,"focus",(function(){i=t.value})),r},ye.prototype.addEdgeGeometry=function(t){const e=this.editorUi,n=e.editor.graph;let i=this.format.getSelectionState();const r=this.createPanel();var o,s,l,a,h;(m=document.createElement("div")).style.position="absolute",m.style.width="70px",m.style.marginTop="0px",m.style.fontWeight="bold",v.write(m,f.get("width")),r.appendChild(m);const u=this.addUnitInput(r,"pt",20,44,(function(){o.apply(this,arguments)}));function o(t){let r=parseInt(u.value);r=Math.min(999,Math.max(1,isNaN(r)?1:r)),r!=v.getValue(i.style,"width",W.defaultShapes.flexArrow.prototype.defaultWidth)&&(n.setCellStyles("width",r,n.getSelectionCells()),e.fireEvent(new A("styleChanged","keys",["width"],"values",[r],"cells",n.getSelectionCells()))),u.value=r+" pt",C.consume(t)}v.br(r),this.addKeyHandler(u,E),C.addListener(u,"blur",o),C.addListener(u,"change",o),t.appendChild(r);const d=this.createPanel();d.style.paddingBottom="30px",(m=document.createElement("div")).style.position="absolute",m.style.width="70px",m.style.marginTop="0px",m.style.fontWeight="bold",v.write(m,"Start"),d.appendChild(m);const c=this.addUnitInput(d,"pt",84,44,(function(){a.apply(this,arguments)})),p=this.addUnitInput(d,"pt",20,44,(function(){h.apply(this,arguments)}));v.br(d),this.addLabel(d,f.get("left"),84),this.addLabel(d,f.get("top"),20),t.appendChild(d),this.addKeyHandler(c,E),this.addKeyHandler(p,E);const g=this.createPanel();var m;g.style.paddingBottom="30px",(m=document.createElement("div")).style.position="absolute",m.style.width="70px",m.style.marginTop="0px",m.style.fontWeight="bold",v.write(m,"End"),g.appendChild(m);const x=this.addUnitInput(g,"pt",84,44,(function(){s.apply(this,arguments)})),y=this.addUnitInput(g,"pt",20,44,(function(){l.apply(this,arguments)}));v.br(g),this.addLabel(g,f.get("left"),84),this.addLabel(g,f.get("top"),20),t.appendChild(g),this.addKeyHandler(x,E),this.addKeyHandler(y,E);var E=v.bind(this,(function(t,e,o){i=this.format.getSelectionState();const s=n.getSelectionCell();if("link"==i.style.shape||"flexArrow"==i.style.shape){if(r.style.display="",o||document.activeElement!=u){const t=v.getValue(i.style,"width",W.defaultShapes.flexArrow.prototype.defaultWidth);u.value=t+" pt"}}else r.style.display="none";if(1==n.getSelectionCount()&&n.model.isEdge(s)){const t=n.model.getGeometry(s);null!=t.sourcePoint&&null==n.model.getTerminal(s,!0)?(c.value=t.sourcePoint.x,p.value=t.sourcePoint.y):d.style.display="none",null!=t.targetPoint&&null==n.model.getTerminal(s,!1)?(x.value=t.targetPoint.x,y.value=t.targetPoint.y):g.style.display="none"}else d.style.display="none",g.style.display="none"}));a=this.addEdgeGeometryHandler(c,(function(t,e){t.sourcePoint.x=e})),h=this.addEdgeGeometryHandler(p,(function(t,e){t.sourcePoint.y=e})),s=this.addEdgeGeometryHandler(x,(function(t,e){t.targetPoint.x=e})),l=this.addEdgeGeometryHandler(y,(function(t,e){t.targetPoint.y=e})),n.getModel().addListener(C.CHANGE,E),this.listeners.push({destroy:function(){n.getModel().removeListener(E)}}),E()},v.extend(fe,xe),fe.prototype.init=function(){this.container.style.borderBottom="none",this.addFont(this.container)},fe.prototype.addFont=function(t){const e=this.editorUi,n=e.editor.graph;let i=this.format.getSelectionState();const r=this.createTitle(f.get("font"));r.style.paddingLeft="18px",r.style.paddingTop="10px",r.style.paddingBottom="6px",t.appendChild(r);const o=this.createPanel();if(o.style.paddingTop="2px",o.style.paddingBottom="2px",o.style.position="relative",o.style.marginLeft="-2px",o.style.borderWidth="0px",o.className="geToolbarContainer",E.IS_QUIRKS&&(o.style.display="block"),n.cellEditor.isContentEditing()){const e=o.cloneNode(),n=this.editorUi.toolbar.addMenu(f.get("style"),f.get("style"),!0,"formatBlock",e,null,!0);n.style.color="rgb(112, 112, 112)",n.style.whiteSpace="nowrap",n.style.overflow="hidden",n.style.margin="0px",this.addArrow(n),n.style.width="192px",n.style.height="15px",n.getElementsByTagName("div")[0].style.cssFloat="right",t.appendChild(e)}t.appendChild(o);const s=this.createPanel();s.style.marginTop="8px",s.style.borderTop="1px solid #c0c0c0",s.style.paddingTop="6px",s.style.paddingBottom="6px";const l=this.editorUi.toolbar.addMenu("Helvetica",f.get("fontFamily"),!0,"fontFamily",o,null,!0);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";const a=o.cloneNode(!1);a.style.marginLeft="-3px";const h=this.editorUi.toolbar.addItems(["bold","italic","underline"],a,!0);h[0].setAttribute("title",f.get("bold")+" ("+this.editorUi.actions.get("bold").shortcut+")"),h[1].setAttribute("title",f.get("italic")+" ("+this.editorUi.actions.get("italic").shortcut+")"),h[2].setAttribute("title",f.get("underline")+" ("+this.editorUi.actions.get("underline").shortcut+")");const u=this.editorUi.toolbar.addItems(["vertical"],a,!0)[0];E.IS_QUIRKS&&v.br(t),t.appendChild(a),this.styleButtons(h),this.styleButtons([u]);const d=o.cloneNode(!1);d.style.marginLeft="-3px",d.style.paddingBottom="0px";const c=function(t){return function(){return t()}},p=this.editorUi.toolbar.addButton("geSprite-left",f.get("left"),n.cellEditor.isContentEditing()?function(t){n.cellEditor.alignText(g.ALIGN_LEFT,t)}:c(this.editorUi.menus.createStyleChangeFunction([g.STYLE_ALIGN],[g.ALIGN_LEFT])),d),m=this.editorUi.toolbar.addButton("geSprite-center",f.get("center"),n.cellEditor.isContentEditing()?function(t){n.cellEditor.alignText(g.ALIGN_CENTER,t)}:c(this.editorUi.menus.createStyleChangeFunction([g.STYLE_ALIGN],[g.ALIGN_CENTER])),d),x=this.editorUi.toolbar.addButton("geSprite-right",f.get("right"),n.cellEditor.isContentEditing()?function(t){n.cellEditor.alignText(g.ALIGN_RIGHT,t)}:c(this.editorUi.menus.createStyleChangeFunction([g.STYLE_ALIGN],[g.ALIGN_RIGHT])),d);if(this.styleButtons([p,m,x]),n.cellEditor.isContentEditing()){const t=this.editorUi.toolbar.addButton("geSprite-removeformat",f.get("strikethrough"),(function(){document.execCommand("strikeThrough",!1,null)}),a);this.styleButtons([t]),t.firstChild.style.background="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjR2MjRIMFYweiIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiMwMTAxMDEiIGQ9Ik03LjI0IDguNzVjLS4yNi0uNDgtLjM5LTEuMDMtLjM5LTEuNjcgMC0uNjEuMTMtMS4xNi40LTEuNjcuMjYtLjUuNjMtLjkzIDEuMTEtMS4yOS40OC0uMzUgMS4wNS0uNjMgMS43LS44My42Ni0uMTkgMS4zOS0uMjkgMi4xOC0uMjkuODEgMCAxLjU0LjExIDIuMjEuMzQuNjYuMjIgMS4yMy41NCAxLjY5Ljk0LjQ3LjQuODMuODggMS4wOCAxLjQzLjI1LjU1LjM4IDEuMTUuMzggMS44MWgtMy4wMWMwLS4zMS0uMDUtLjU5LS4xNS0uODUtLjA5LS4yNy0uMjQtLjQ5LS40NC0uNjgtLjItLjE5LS40NS0uMzMtLjc1LS40NC0uMy0uMS0uNjYtLjE2LTEuMDYtLjE2LS4zOSAwLS43NC4wNC0xLjAzLjEzLS4yOS4wOS0uNTMuMjEtLjcyLjM2LS4xOS4xNi0uMzQuMzQtLjQ0LjU1LS4xLjIxLS4xNS40My0uMTUuNjYgMCAuNDguMjUuODguNzQgMS4yMS4zOC4yNS43Ny40OCAxLjQxLjdINy4zOWMtLjA1LS4wOC0uMTEtLjE3LS4xNS0uMjV6TTIxIDEydi0ySDN2Mmg5LjYyYy4xOC4wNy40LjE0LjU1LjIuMzcuMTcuNjYuMzQuODcuNTEuMjEuMTcuMzUuMzYuNDMuNTcuMDcuMi4xMS40My4xMS42OSAwIC4yMy0uMDUuNDUtLjE0LjY2LS4wOS4yLS4yMy4zOC0uNDIuNTMtLjE5LjE1LS40Mi4yNi0uNzEuMzUtLjI5LjA4LS42My4xMy0xLjAxLjEzLS40MyAwLS44My0uMDQtMS4xOC0uMTNzLS42Ni0uMjMtLjkxLS40MmMtLjI1LS4xOS0uNDUtLjQ0LS41OS0uNzUtLjE0LS4zMS0uMjUtLjc2LS4yNS0xLjIxSDYuNGMwIC41NS4wOCAxLjEzLjI0IDEuNTguMTYuNDUuMzcuODUuNjUgMS4yMS4yOC4zNS42LjY2Ljk4LjkyLjM3LjI2Ljc4LjQ4IDEuMjIuNjUuNDQuMTcuOS4zIDEuMzguMzkuNDguMDguOTYuMTMgMS40NC4xMy44IDAgMS41My0uMDkgMi4xOC0uMjhzMS4yMS0uNDUgMS42Ny0uNzljLjQ2LS4zNC44Mi0uNzcgMS4wNy0xLjI3cy4zOC0xLjA3LjM4LTEuNzFjMC0uNi0uMS0xLjE0LS4zMS0xLjYxLS4wNS0uMTEtLjExLS4yMy0uMTctLjMzSDIxeiIvPjwvc3ZnPg==)",t.firstChild.style.backgroundPosition="2px 2px",t.firstChild.style.backgroundSize="18px 18px",this.styleButtons([t])}const y=this.editorUi.toolbar.addButton("geSprite-top",f.get("top"),c(this.editorUi.menus.createStyleChangeFunction([g.STYLE_VERTICAL_ALIGN],[g.ALIGN_TOP])),d),A=this.editorUi.toolbar.addButton("geSprite-middle",f.get("middle"),c(this.editorUi.menus.createStyleChangeFunction([g.STYLE_VERTICAL_ALIGN],[g.ALIGN_MIDDLE])),d),w=this.editorUi.toolbar.addButton("geSprite-bottom",f.get("bottom"),c(this.editorUi.menus.createStyleChangeFunction([g.STYLE_VERTICAL_ALIGN],[g.ALIGN_BOTTOM])),d);let S,b,T,L,I,M,R;if(this.styleButtons([y,A,w]),E.IS_QUIRKS&&v.br(t),t.appendChild(d),n.cellEditor.isContentEditing()){y.style.display="none",A.style.display="none",w.style.display="none",u.style.display="none",T=this.editorUi.toolbar.addButton("geSprite-justifyfull",f.get("block"),(function(){1==T.style.opacity&&document.execCommand("justifyfull",!1,null)}),d),T.style.marginRight="9px",T.style.opacity=1,this.styleButtons([T,S=this.editorUi.toolbar.addButton("geSprite-subscript",f.get("subscript")+" ("+ue.ctrlKey+"+,)",(function(){document.execCommand("subscript",!1,null)}),d),b=this.editorUi.toolbar.addButton("geSprite-superscript",f.get("superscript")+" ("+ue.ctrlKey+"+.)",(function(){document.execCommand("superscript",!1,null)}),d)]),S.style.marginLeft="9px";const e=d.cloneNode(!1);e.style.paddingTop="4px";var O=[this.editorUi.toolbar.addButton("geSprite-orderedlist",f.get("numberedList"),(function(){document.execCommand("insertorderedlist",!1,null)}),e),this.editorUi.toolbar.addButton("geSprite-unorderedlist",f.get("bulletedList"),(function(){document.execCommand("insertunorderedlist",!1,null)}),e),this.editorUi.toolbar.addButton("geSprite-outdent",f.get("decreaseIndent"),(function(){document.execCommand("outdent",!1,null)}),e),this.editorUi.toolbar.addButton("geSprite-indent",f.get("increaseIndent"),(function(){document.execCommand("indent",!1,null)}),e),this.editorUi.toolbar.addButton("geSprite-removeformat",f.get("removeFormat"),(function(){document.execCommand("removeformat",!1,null)}),e),this.editorUi.toolbar.addButton("geSprite-code",f.get("html"),(function(){n.cellEditor.toggleViewMode()}),e)];this.styleButtons(O),O[O.length-2].style.marginLeft="9px",E.IS_QUIRKS&&(v.br(t),e.style.height="40"),t.appendChild(e)}else h[2].style.marginRight="9px",x.style.marginRight="9px";const N=o.cloneNode(!1);N.style.marginLeft="0px",N.style.paddingTop="8px",N.style.paddingBottom="4px",N.style.fontWeight="normal",v.write(N,f.get("position"));const D=document.createElement("select");D.style.position="absolute",D.style.right="20px",D.style.width="97px",D.style.marginTop="-2px";const P=["topLeft","top","topRight","left","center","right","bottomLeft","bottom","bottomRight"],H={topLeft:[g.ALIGN_LEFT,g.ALIGN_TOP,g.ALIGN_RIGHT,g.ALIGN_BOTTOM],top:[g.ALIGN_CENTER,g.ALIGN_TOP,g.ALIGN_CENTER,g.ALIGN_BOTTOM],topRight:[g.ALIGN_RIGHT,g.ALIGN_TOP,g.ALIGN_LEFT,g.ALIGN_BOTTOM],left:[g.ALIGN_LEFT,g.ALIGN_MIDDLE,g.ALIGN_RIGHT,g.ALIGN_MIDDLE],center:[g.ALIGN_CENTER,g.ALIGN_MIDDLE,g.ALIGN_CENTER,g.ALIGN_MIDDLE],right:[g.ALIGN_RIGHT,g.ALIGN_MIDDLE,g.ALIGN_LEFT,g.ALIGN_MIDDLE],bottomLeft:[g.ALIGN_LEFT,g.ALIGN_BOTTOM,g.ALIGN_RIGHT,g.ALIGN_TOP],bottom:[g.ALIGN_CENTER,g.ALIGN_BOTTOM,g.ALIGN_CENTER,g.ALIGN_TOP],bottomRight:[g.ALIGN_RIGHT,g.ALIGN_BOTTOM,g.ALIGN_LEFT,g.ALIGN_TOP]};for(var k=0;k<P.length;k++){const t=document.createElement("option");t.setAttribute("value",P[k]),v.write(t,f.get(P[k])),D.appendChild(t)}N.appendChild(D);const G=o.cloneNode(!1);G.style.marginLeft="0px",G.style.paddingTop="4px",G.style.paddingBottom="4px",G.style.fontWeight="normal",v.write(G,f.get("writingDirection"));const B=document.createElement("select");B.style.position="absolute",B.style.right="20px",B.style.width="97px",B.style.marginTop="-2px";const U=["automatic","leftToRight","rightToLeft"],V={automatic:null,leftToRight:g.TEXT_DIRECTION_LTR,rightToLeft:g.TEXT_DIRECTION_RTL};for(k=0;k<U.length;k++){const t=document.createElement("option");t.setAttribute("value",U[k]),v.write(t,f.get(U[k])),B.appendChild(t)}G.appendChild(B),n.isEditing()||(t.appendChild(N),C.addListener(D,"change",(function(t){n.getModel().beginUpdate();try{const t=H[D.value];null!=t&&(n.setCellStyles(g.STYLE_LABEL_POSITION,t[0],n.getSelectionCells()),n.setCellStyles(g.STYLE_VERTICAL_LABEL_POSITION,t[1],n.getSelectionCells()),n.setCellStyles(g.STYLE_ALIGN,t[2],n.getSelectionCells()),n.setCellStyles(g.STYLE_VERTICAL_ALIGN,t[3],n.getSelectionCells()))}finally{n.getModel().endUpdate()}C.consume(t)})),t.appendChild(G),C.addListener(B,"change",(function(t){n.setCellStyles(g.STYLE_TEXT_DIRECTION,V[B.value],n.getSelectionCells()),C.consume(t)})));const F=document.createElement("input");F.style.textAlign="right",F.style.marginTop="4px",E.IS_QUIRKS||(F.style.position="absolute",F.style.right="32px"),F.style.width="46px",F.style.height=E.IS_QUIRKS?"21px":"17px",a.appendChild(F);let z=null;const Y=this.installInputHandler(F,g.STYLE_FONTSIZE,re.prototype.defaultFontSize,1,999," pt",(function(t){if(!window.getSelection||E.IS_IE||E.IS_IE11){if(window.getSelection||document.selection){let o=null;if(document.selection?o=document.selection.createRange().parentElement():(e=window.getSelection()).rangeCount>0&&(o=e.getRangeAt(0).commonAncestorContainer),null!=o&&function(t,e){for(;null!=e;){if(e===t)return!0;e=e.parentNode}return!1}(n.cellEditor.textarea,o))for(z=t,document.execCommand("fontSize",!1,"4"),i=n.cellEditor.textarea.getElementsByTagName("font"),r=0;r<i.length;r++)if("4"==i[r].getAttribute("size")){i[r].removeAttribute("size"),i[r].style.fontSize=z+"px",window.setTimeout((function(){F.value=z+" pt",z=null}),0);break}}}else{var e;let s=(e=window.getSelection()).rangeCount>0?e.getRangeAt(0).commonAncestorContainer:n.cellEditor.textarea;function l(i,r){null!=n.cellEditor.textarea&&i!=n.cellEditor.textarea&&n.cellEditor.textarea.contains(i)&&(r||e.containsNode(i,!0))&&("FONT"==i.nodeName?(i.removeAttribute("size"),i.style.fontSize=t+"px"):v.getCurrentStyle(i).fontSize!=t+"px"&&(v.getCurrentStyle(i.parentNode).fontSize!=t+"px"?i.style.fontSize=t+"px":i.style.fontSize=""))}if(s!=n.cellEditor.textarea&&s.nodeType==g.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1"),s!=n.cellEditor.textarea&&(s=s.parentNode),null!=s&&s.nodeType==g.NODETYPE_ELEMENT){var i=s.getElementsByTagName("*");l(s);for(var r=0;r<i.length;r++)l(i[r])}F.value=t+" pt"}}),!0),W=this.createStepper(F,Y,1,10,!0,re.prototype.defaultFontSize);W.style.display=F.style.display,W.style.marginTop="4px",E.IS_QUIRKS||(W.style.right="20px"),a.appendChild(W),l.getElementsByTagName("div")[0].style.cssFloat="right";let j=null,Q="#ffffff",Z=null,X="#000000";const K=n.cellEditor.isContentEditing()?this.createColorOption(f.get("backgroundColor"),(function(){return Q}),(function(t){document.execCommand("backcolor",!1,t!=g.NONE?t:"transparent")}),"#ffffff",{install:function(t){j=t},destroy:function(){j=null}},null,!0):this.createCellColorOption(f.get("backgroundColor"),g.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff",null,(function(){n.updateLabelElements(n.getSelectionCells(),(function(t){t.style.backgroundColor=null}))}));K.style.fontWeight="bold";const q=this.createCellColorOption(f.get("borderColor"),g.STYLE_LABEL_BORDERCOLOR,"#000000");q.style.fontWeight="bold";const J=n.cellEditor.isContentEditing()?this.createColorOption(f.get("fontColor"),(function(){return X}),(function(t){if(E.IS_FF){var e=n.cellEditor.textarea.getElementsByTagName("font");const r=[];for(var i=0;i<e.length;i++)r.push({node:e[i],color:e[i].getAttribute("color")});document.execCommand("forecolor",!1,t!=g.NONE?t:"transparent");const o=n.cellEditor.textarea.getElementsByTagName("font");for(i=0;i<o.length;i++)if(i>=r.length||o[i]!=r[i].node||o[i]==r[i].node&&o[i].getAttribute("color")!=r[i].color){const t=o[i].firstChild;if(null!=t&&"A"==t.nodeName&&null==t.nextSibling&&null!=t.firstChild){for(o[i].parentNode.insertBefore(t,o[i]),e=t.firstChild;null!=e;){const t=e.nextSibling;o[i].appendChild(e),e=t}t.appendChild(o[i])}break}}else document.execCommand("forecolor",!1,t!=g.NONE?t:"transparent")}),"#000000",{install:function(t){Z=t},destroy:function(){Z=null}},null,!0):this.createCellColorOption(f.get("fontColor"),g.STYLE_FONTCOLOR,"#000000",(function(t){null==t||t==g.NONE?K.style.display="none":K.style.display="",q.style.display=K.style.display}),(function(t){null==t||t==g.NONE?n.setCellStyles(g.STYLE_NOLABEL,"1",n.getSelectionCells()):n.setCellStyles(g.STYLE_NOLABEL,null,n.getSelectionCells()),n.updateLabelElements(n.getSelectionCells(),(function(t){t.removeAttribute("color"),t.style.color=null}))}));J.style.fontWeight="bold",s.appendChild(J),s.appendChild(K),n.cellEditor.isContentEditing()||s.appendChild(q),t.appendChild(s);const _=this.createPanel();_.style.paddingTop="2px",_.style.paddingBottom="4px";const $=this.createCellOption(f.get("wordWrap"),g.STYLE_WHITE_SPACE,null,"wrap","null",null,null,!0);$.style.fontWeight="bold",i.containsLabel||i.autoSize||0!=i.edges.length||_.appendChild($);const tt=this.createCellOption(f.get("formattedText"),"html","0",null,null,null,e.actions.get("formattedText"));tt.style.fontWeight="bold",_.appendChild(tt);const et=this.createPanel();et.style.paddingTop="10px",et.style.paddingBottom="28px",et.style.fontWeight="normal";const nt=document.createElement("div");let it,rt,ot,st,lt;nt.style.position="absolute",nt.style.width="70px",nt.style.marginTop="0px",nt.style.fontWeight="bold",v.write(nt,f.get("spacing")),et.appendChild(nt);const at=this.addUnitInput(et,"pt",91,44,(function(){it.apply(this,arguments)})),ht=this.addUnitInput(et,"pt",20,44,(function(){rt.apply(this,arguments)}));v.br(et),this.addLabel(et,f.get("top"),91),this.addLabel(et,f.get("global"),20),v.br(et),v.br(et);const ut=this.addUnitInput(et,"pt",162,44,(function(){ot.apply(this,arguments)})),dt=this.addUnitInput(et,"pt",91,44,(function(){st.apply(this,arguments)})),ct=this.addUnitInput(et,"pt",20,44,(function(){lt.apply(this,arguments)}));if(v.br(et),this.addLabel(et,f.get("left"),162),this.addLabel(et,f.get("bottom"),91),this.addLabel(et,f.get("right"),20),n.cellEditor.isContentEditing()){let i=null;var pt=null;t.appendChild(this.createRelativeOption(f.get("lineheight"),null,null,(function(t){let e=""==t.value?120:parseInt(t.value);e=Math.max(0,isNaN(e)?120:e),null!=i&&(n.cellEditor.restoreSelection(i),i=null);let r=n.getSelectedElement();for(;null!=r&&r.nodeType!=g.NODETYPE_ELEMENT;)r=r.parentNode;null!=r&&r==n.cellEditor.textarea&&null!=n.cellEditor.textarea.firstChild&&("P"!=n.cellEditor.textarea.firstChild.nodeName&&(n.cellEditor.textarea.innerHTML="<p>"+n.cellEditor.textarea.innerHTML+"</p>"),r=n.cellEditor.textarea.firstChild),null!=r&&null!=n.cellEditor.textarea&&r!=n.cellEditor.textarea&&n.cellEditor.textarea.contains(r)&&(r.style.lineHeight=e+"%"),t.value=e+" %"}),(function(t){pt=t,C.addListener(t,"mousedown",(function(){document.activeElement==n.cellEditor.textarea&&(i=n.cellEditor.saveSelection())})),C.addListener(t,"touchstart",(function(){document.activeElement==n.cellEditor.textarea&&(i=n.cellEditor.saveSelection())})),t.value="120 %"})));const r=o.cloneNode(!1);r.style.paddingLeft="0px",O=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",f.get("insertHorizontalRule"),(function(){document.execCommand("inserthorizontalrule",!1)}),r),this.editorUi.toolbar.addMenuFunctionInContainer(r,"geSprite-table",f.get("table"),!1,v.bind(this,(function(t){this.editorUi.menus.addInsertTableItem(t)})))],this.styleButtons(O);const s=this.createPanel();s.style.paddingTop="10px",s.style.paddingBottom="10px",s.appendChild(this.createTitle(f.get("insert"))),s.appendChild(r),t.appendChild(s),E.IS_QUIRKS&&(s.style.height="70");const l=o.cloneNode(!1);l.style.paddingLeft="0px",O=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",f.get("insertColumnBefore"),v.bind(this,(function(){try{null!=I&&n.insertColumn(I,null!=M?M.cellIndex:0)}catch(t){this.editorUi.handleError(t)}})),l),this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",f.get("insertColumnAfter"),v.bind(this,(function(){try{null!=I&&n.insertColumn(I,null!=M?M.cellIndex+1:-1)}catch(t){this.editorUi.handleError(t)}})),l),this.editorUi.toolbar.addButton("geSprite-deletecolumn",f.get("deleteColumn"),v.bind(this,(function(){try{null!=I&&null!=M&&n.deleteColumn(I,M.cellIndex)}catch(t){this.editorUi.handleError(t)}})),l),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",f.get("insertRowBefore"),v.bind(this,(function(){try{null!=I&&null!=R&&n.insertRow(I,R.sectionRowIndex)}catch(t){this.editorUi.handleError(t)}})),l),this.editorUi.toolbar.addButton("geSprite-insertrowafter",f.get("insertRowAfter"),v.bind(this,(function(){try{null!=I&&null!=R&&n.insertRow(I,R.sectionRowIndex+1)}catch(t){this.editorUi.handleError(t)}})),l),this.editorUi.toolbar.addButton("geSprite-deleterow",f.get("deleteRow"),v.bind(this,(function(){try{null!=I&&null!=R&&n.deleteRow(I,R.sectionRowIndex)}catch(t){this.editorUi.handleError(t)}})),l)],this.styleButtons(O),O[2].style.marginRight="9px";const a=this.createPanel();a.style.paddingTop="10px",a.style.paddingBottom="10px",a.appendChild(this.createTitle(f.get("table"))),a.appendChild(l),E.IS_QUIRKS&&(v.br(t),a.style.height="70");const h=o.cloneNode(!1);h.style.paddingLeft="0px",O=[this.editorUi.toolbar.addButton("geSprite-strokecolor",f.get("borderColor"),v.bind(this,(function(t){if(null!=I){const e=I.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,(function(t,e,n,i){return"#"+("0"+Number(e).toString(16)).substr(-2)+("0"+Number(n).toString(16)).substr(-2)+("0"+Number(i).toString(16)).substr(-2)}));this.editorUi.pickColor(e,(function(e){const i=null==M||null!=t&&C.isShiftDown(t)?I:M;n.processElements(i,(function(t){t.style.border=null})),null==e||e==g.NONE?(i.removeAttribute("border"),i.style.border="",i.style.borderCollapse=""):(i.setAttribute("border","1"),i.style.border="1px solid "+e,i.style.borderCollapse="collapse")}))}})),h),this.editorUi.toolbar.addButton("geSprite-fillcolor",f.get("backgroundColor"),v.bind(this,(function(t){if(null!=I){const e=I.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,(function(t,e,n,i){return"#"+("0"+Number(e).toString(16)).substr(-2)+("0"+Number(n).toString(16)).substr(-2)+("0"+Number(i).toString(16)).substr(-2)}));this.editorUi.pickColor(e,(function(e){const i=null==M||null!=t&&C.isShiftDown(t)?I:M;n.processElements(i,(function(t){t.style.backgroundColor=null})),null==e||e==g.NONE?i.style.backgroundColor="":i.style.backgroundColor=e}))}})),h),this.editorUi.toolbar.addButton("geSprite-fit",f.get("spacing"),(function(){if(null!=I){const t=I.getAttribute("cellPadding")||0,n=new ge(e,t,f.get("apply"),v.bind(this,(function(t){null!=t&&t.length>0?I.setAttribute("cellPadding",t):I.removeAttribute("cellPadding")})),f.get("spacing"));e.showDialog(n.container,300,80,!0,!0),n.init()}}),h),this.editorUi.toolbar.addButton("geSprite-left",f.get("left"),(function(){null!=I&&I.setAttribute("align","left")}),h),this.editorUi.toolbar.addButton("geSprite-center",f.get("center"),(function(){null!=I&&I.setAttribute("align","center")}),h),this.editorUi.toolbar.addButton("geSprite-right",f.get("right"),(function(){null!=I&&I.setAttribute("align","right")}),h)],this.styleButtons(O),O[2].style.marginRight="9px",E.IS_QUIRKS&&(v.br(a),v.br(a)),a.appendChild(h),t.appendChild(a),L=a}else t.appendChild(_),t.appendChild(this.createRelativeOption(f.get("opacity"),g.STYLE_TEXT_OPACITY)),t.appendChild(et);function gt(t,e){E.IS_IE&&(E.IS_QUIRKS||document.documentMode<10)?t.style.filter=e?"progid:DXImageTransform.Microsoft.Gradient(StartColorStr='#c5ecff', EndColorStr='#87d4fb', GradientType=0)":"":t.style.backgroundImage=e?"linear-gradient(#c5ecff 0px,#87d4fb 100%)":""}const mt=v.bind(this,(function(t,e,n){i=this.format.getSelectionState();const r=v.getValue(i.style,g.STYLE_FONTSTYLE,0);if(gt(h[0],(r&g.FONT_BOLD)==g.FONT_BOLD),gt(h[1],(r&g.FONT_ITALIC)==g.FONT_ITALIC),gt(h[2],(r&g.FONT_UNDERLINE)==g.FONT_UNDERLINE),l.firstChild.nodeValue=v.getValue(i.style,g.STYLE_FONTFAMILY,re.prototype.defaultFont),gt(u,"0"==v.getValue(i.style,g.STYLE_HORIZONTAL,"1")),n||document.activeElement!=F){var o=parseFloat(v.getValue(i.style,g.STYLE_FONTSIZE,re.prototype.defaultFontSize));F.value=isNaN(o)?"":o+" pt"}const s=v.getValue(i.style,g.STYLE_ALIGN,g.ALIGN_CENTER);gt(p,s==g.ALIGN_LEFT),gt(m,s==g.ALIGN_CENTER),gt(x,s==g.ALIGN_RIGHT);const a=v.getValue(i.style,g.STYLE_VERTICAL_ALIGN,g.ALIGN_MIDDLE);gt(y,a==g.ALIGN_TOP),gt(A,a==g.ALIGN_MIDDLE),gt(w,a==g.ALIGN_BOTTOM);const d=v.getValue(i.style,g.STYLE_LABEL_POSITION,g.ALIGN_CENTER),c=v.getValue(i.style,g.STYLE_VERTICAL_LABEL_POSITION,g.ALIGN_MIDDLE);d==g.ALIGN_LEFT&&c==g.ALIGN_TOP?D.value="topLeft":d==g.ALIGN_CENTER&&c==g.ALIGN_TOP?D.value="top":d==g.ALIGN_RIGHT&&c==g.ALIGN_TOP?D.value="topRight":d==g.ALIGN_LEFT&&c==g.ALIGN_BOTTOM?D.value="bottomLeft":d==g.ALIGN_CENTER&&c==g.ALIGN_BOTTOM?D.value="bottom":d==g.ALIGN_RIGHT&&c==g.ALIGN_BOTTOM?D.value="bottomRight":d==g.ALIGN_LEFT?D.value="left":d==g.ALIGN_RIGHT?D.value="right":D.value="center";const f=v.getValue(i.style,g.STYLE_TEXT_DIRECTION,g.DEFAULT_TEXT_DIRECTION);f==g.TEXT_DIRECTION_RTL?B.value="rightToLeft":f==g.TEXT_DIRECTION_LTR?B.value="leftToRight":f==g.TEXT_DIRECTION_AUTO&&(B.value="automatic"),(n||document.activeElement!=ht)&&(o=parseFloat(v.getValue(i.style,g.STYLE_SPACING,2)),ht.value=isNaN(o)?"":o+" pt"),(n||document.activeElement!=at)&&(o=parseFloat(v.getValue(i.style,g.STYLE_SPACING_TOP,0)),at.value=isNaN(o)?"":o+" pt"),(n||document.activeElement!=ct)&&(o=parseFloat(v.getValue(i.style,g.STYLE_SPACING_RIGHT,0)),ct.value=isNaN(o)?"":o+" pt"),(n||document.activeElement!=dt)&&(o=parseFloat(v.getValue(i.style,g.STYLE_SPACING_BOTTOM,0)),dt.value=isNaN(o)?"":o+" pt"),(n||document.activeElement!=ut)&&(o=parseFloat(v.getValue(i.style,g.STYLE_SPACING_LEFT,0)),ut.value=isNaN(o)?"":o+" pt")}));if(rt=this.installInputHandler(ht,g.STYLE_SPACING,2,-999,999," pt"),it=this.installInputHandler(at,g.STYLE_SPACING_TOP,0,-999,999," pt"),lt=this.installInputHandler(ct,g.STYLE_SPACING_RIGHT,0,-999,999," pt"),st=this.installInputHandler(dt,g.STYLE_SPACING_BOTTOM,0,-999,999," pt"),ot=this.installInputHandler(ut,g.STYLE_SPACING_LEFT,0,-999,999," pt"),this.addKeyHandler(F,mt),this.addKeyHandler(ht,mt),this.addKeyHandler(at,mt),this.addKeyHandler(ct,mt),this.addKeyHandler(dt,mt),this.addKeyHandler(ut,mt),n.getModel().addListener(C.CHANGE,mt),this.listeners.push({destroy:function(){n.getModel().removeListener(mt)}}),mt(),n.cellEditor.isContentEditing()){let t=!1;const e=function(){t||(t=!0,window.setTimeout((function(){let e=n.getSelectedElement();for(;null!=e&&e.nodeType!=g.NODETYPE_ELEMENT;)e=e.parentNode;if(null!=e){function o(t,e,n){if(null!=n.style&&null!=e){const i=e.lineHeight;return null!=n.style.lineHeight&&"%"==n.style.lineHeight.substring(n.style.lineHeight.length-1)?parseInt(n.style.lineHeight)/100:"px"==i.substring(i.length-2)?parseFloat(i)/t:parseInt(i)}return""}function s(t){const e=null!=t?t.fontSize:null;return null!=e&&"px"==e.substring(e.length-2)?parseFloat(e):g.DEFAULT_FONTSIZE}e==n.cellEditor.textarea&&1==n.cellEditor.textarea.children.length&&n.cellEditor.textarea.firstChild.nodeType==g.NODETYPE_ELEMENT&&(e=n.cellEditor.textarea.firstChild);const a=v.getCurrentStyle(e);let u=s(a),d=o(u,a,e);const c=e.getElementsByTagName("*");if(c.length>0&&window.getSelection&&!E.IS_IE&&!E.IS_IE11){const A=window.getSelection();for(let C=0;C<c.length;C++)if(A.containsNode(c[C],!0)){const w=v.getCurrentStyle(c[C]);u=Math.max(s(w),u);var r=o(u,w,c[C]);(r!=d||isNaN(r))&&(d="")}}function y(t){if(null!=n.getParentByName(e,t,n.cellEditor.textarea))return!0;{let n=e;for(;null!=n&&1==n.childNodes.length;)if(n=n.childNodes[0],n.nodeName==t)return!0}return!1}function f(t,e){if(null!=t&&null!=e){if(t==e)return!0;if(t.length>e.length+1)return t.substring(t.length-e.length-1,t.length)=="-"+e}return!1}if(null!=a){if(gt(h[0],"bold"==a.fontWeight||a.fontWeight>400||y("B")||y("STRONG")),gt(h[1],"italic"==a.fontStyle||y("I")||y("EM")),gt(h[2],y("U")),gt(b,y("SUP")),gt(S,y("SUB")),n.cellEditor.isTableSelected())gt(T,f(a.textAlign,"justify")),gt(p,f(a.textAlign,"left")),gt(m,f(a.textAlign,"center")),gt(x,f(a.textAlign,"right"));else{const D=n.cellEditor.align||v.getValue(i.style,g.STYLE_ALIGN,g.ALIGN_CENTER);f(a.textAlign,"justify")?(gt(T,f(a.textAlign,"justify")),gt(p,!1),gt(m,!1),gt(x,!1)):(gt(T,!1),gt(p,D==g.ALIGN_LEFT),gt(m,D==g.ALIGN_CENTER),gt(x,D==g.ALIGN_RIGHT))}I=n.getParentByName(e,"TABLE",n.cellEditor.textarea),R=null==I?null:n.getParentByName(e,"TR",I),M=null==I?null:n.getParentByNames(e,["TD","TH"],I),L.style.display=null!=I?"":"none",document.activeElement!=F&&("FONT"==e.nodeName&&"4"==e.getAttribute("size")&&null!=z?(e.removeAttribute("size"),e.style.fontSize=z+" pt",z=null):F.value=isNaN(u)?"":u+" pt",r=parseFloat(d),isNaN(r)?pt.value="100 %":pt.value=Math.round(100*r)+" %");const O=a.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,(function(t,e,n,i){return"#"+("0"+Number(e).toString(16)).substr(-2)+("0"+Number(n).toString(16)).substr(-2)+("0"+Number(i).toString(16)).substr(-2)})),N=a.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,(function(t,e,n,i){return"#"+("0"+Number(e).toString(16)).substr(-2)+("0"+Number(n).toString(16)).substr(-2)+("0"+Number(i).toString(16)).substr(-2)}));if(null!=Z&&(X="#"==O.charAt(0)?O:"#000000",Z(X,!0)),null!=j&&(Q="#"==N.charAt(0)?N:null,j(Q,!0)),null!=l.firstChild){let P=a.fontFamily;"'"==P.charAt(0)&&(P=P.substring(1)),"'"==P.charAt(P.length-1)&&(P=P.substring(0,P.length-1)),'"'==P.charAt(0)&&(P=P.substring(1)),'"'==P.charAt(P.length-1)&&(P=P.substring(0,P.length-1)),l.firstChild.nodeValue=P}}}t=!1}),0))};(E.IS_FF||E.IS_EDGE||E.IS_IE||E.IS_IE11)&&C.addListener(n.cellEditor.textarea,"DOMSubtreeModified",e),C.addListener(n.cellEditor.textarea,"input",e),C.addListener(n.cellEditor.textarea,"touchend",e),C.addListener(n.cellEditor.textarea,"mouseup",e),C.addListener(n.cellEditor.textarea,"keyup",e),this.listeners.push({destroy:function(){}}),e()}return t},v.extend(Ae,xe),Ae.prototype.defaultStrokeColor="black",Ae.prototype.init=function(){const t=this.format.getSelectionState();if(!t.containsLabel){t.containsImage&&1==t.vertices.length&&"image"==t.style.shape&&null!=t.style.image&&"data:image/svg+xml;"==t.style.image.substring(0,19)&&this.container.appendChild(this.addSvgStyles(this.createPanel())),t.containsImage&&"image"!=t.style.shape||this.container.appendChild(this.addFill(this.createPanel())),this.container.appendChild(this.addStroke(this.createPanel())),this.container.appendChild(this.addLineJumps(this.createPanel()));const e=this.createRelativeOption(f.get("opacity"),g.STYLE_OPACITY,41);e.style.paddingTop="8px",e.style.paddingBottom="8px",this.container.appendChild(e),this.container.appendChild(this.addEffects(this.createPanel()))}const e=this.addEditOps(this.createPanel());null!=e.firstChild&&v.br(e),this.container.appendChild(this.addStyleOps(e))},Ae.prototype.getCssRules=function(t){const e=document.implementation.createHTMLDocument(""),n=document.createElement("style");return v.setTextContent(n,t),e.body.appendChild(n),n.sheet.cssRules},Ae.prototype.addSvgStyles=function(t){const e=this.format.getSelectionState();t.style.paddingTop="6px",t.style.paddingBottom="6px",t.style.fontWeight="bold",t.style.display="none";try{const n=e.style.editableCssRules;if(null!=n){const i=new RegExp(n),r=e.style.image.substring(e.style.image.indexOf(",")+1),o=atob(r),s=v.parseXml(o);if(null!=s){const e=s.getElementsByTagName("style");for(let n=0;n<e.length;n++){const r=this.getCssRules(v.getTextContent(e[n]));for(let o=0;o<r.length;o++)this.addSvgRule(t,r[o],s,e[n],r,o,i)}}}}catch(t){}return t},Ae.prototype.addSvgRule=function(t,e,n,i,r,o,s){const l=this.editorUi.editor.graph;if(s.test(e.selectorText)){const s=v.bind(this,(function(e,s,a){if(""!=e.style[s]){const h=this.createColorOption(a+" "+e.selectorText,(function(){return(t=(t=e.style[s]).match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===t.length?"#"+("0"+parseInt(t[1],10).toString(16)).slice(-2)+("0"+parseInt(t[2],10).toString(16)).slice(-2)+("0"+parseInt(t[3],10).toString(16)).slice(-2):"";var t}),(function(t){r[o].style[s]=t;let e="";for(let n=0;n<r.length;n++)e+=r[n].cssText+" ";i.textContent=e;const a=v.getXml(n.documentElement);l.setCellStyles(g.STYLE_IMAGE,"data:image/svg+xml,"+btoa(a),l.getSelectionCells())}),"#ffffff",{install:function(){},destroy:function(){}});t.appendChild(h),t.style.display=""}}));s(e,"fill",f.get("fill")),s(e,"stroke",f.get("line"))}},Ae.prototype.addEditOps=function(t){return t},Ae.prototype.addFill=function(t){const e=this.editorUi.editor.graph;let n=this.format.getSelectionState();t.style.paddingTop="6px",t.style.paddingBottom="6px";const i=document.createElement("select");i.style.position="absolute",i.style.marginTop="-2px",i.style.right=E.IS_QUIRKS?"52px":"72px",i.style.width="70px",C.addListener(i,"click",(function(t){C.consume(t)}));const r=this.createCellColorOption(f.get("gradient"),g.STYLE_GRADIENTCOLOR,"#ffffff",(function(t){null==t||t==g.NONE?i.style.display="none":i.style.display=""})),o="image"==n.style.shape?g.STYLE_IMAGE_BACKGROUND:g.STYLE_FILLCOLOR,s="image"==n.style.shape?f.get("background"):f.get("fill"),l=this.createCellColorOption(s,o,"#ffffff");l.style.fontWeight="bold";const a=v.getValue(n.style,o,null);r.style.display=null!=a&&a!=g.NONE&&n.fill&&"image"!=n.style.shape?"":"none";const h=[g.DIRECTION_NORTH,g.DIRECTION_EAST,g.DIRECTION_SOUTH,g.DIRECTION_WEST];for(var u=0;u<h.length;u++){const t=document.createElement("option");t.setAttribute("value",h[u]),v.write(t,f.get(h[u])),i.appendChild(t)}r.appendChild(i);const d=v.bind(this,(function(){n=this.format.getSelectionState();let e=v.getValue(n.style,g.STYLE_GRADIENT_DIRECTION,g.DIRECTION_SOUTH);""==e&&(e=g.DIRECTION_SOUTH),i.value=e,t.style.display=n.fill?"":"none";const o=v.getValue(n.style,g.STYLE_FILLCOLOR,null);!n.fill||n.containsImage||null==o||o==g.NONE||"filledEdge"==n.style.shape?r.style.display="none":r.style.display=""}));e.getModel().addListener(C.CHANGE,d),this.listeners.push({destroy:function(){e.getModel().removeListener(d)}}),d(),C.addListener(i,"change",(function(t){e.setCellStyles(g.STYLE_GRADIENT_DIRECTION,i.value,e.getSelectionCells()),C.consume(t)})),t.appendChild(l),t.appendChild(r);const c=this.getCustomColors();for(u=0;u<c.length;u++)t.appendChild(this.createCellColorOption(c[u].title,c[u].key,c[u].defaultValue));return t},Ae.prototype.getCustomColors=function(){const t=this.format.getSelectionState(),e=[];return"swimlane"!=t.style.shape&&"table"!=t.style.shape||e.push({title:f.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"}),e},Ae.prototype.addStroke=function(t){const e=this.editorUi,n=e.editor.graph;let i=this.format.getSelectionState();t.style.paddingTop="4px",t.style.paddingBottom="4px",t.style.whiteSpace="normal";const r=document.createElement("div");r.style.fontWeight="bold";const o=document.createElement("select");o.style.position="absolute",o.style.marginTop="-2px",o.style.right="72px",o.style.width="80px";const s=["sharp","rounded","curved"];for(let g=0;g<s.length;g++){const t=document.createElement("option");t.setAttribute("value",s[g]),v.write(t,f.get(s[g])),o.appendChild(t)}C.addListener(o,"change",(function(t){n.getModel().beginUpdate();try{const t=[g.STYLE_ROUNDED,g.STYLE_CURVED];let i=["0",null];"rounded"==o.value?i=["1",null]:"curved"==o.value&&(i=[null,"1"]);for(let e=0;e<t.length;e++)n.setCellStyles(t[e],i[e],n.getSelectionCells());e.fireEvent(new A("styleChanged","keys",t,"values",i,"cells",n.getSelectionCells()))}finally{n.getModel().endUpdate()}C.consume(t)})),C.addListener(o,"click",(function(t){C.consume(t)}));const l="image"==i.style.shape?g.STYLE_IMAGE_BORDER:g.STYLE_STROKECOLOR,a="image"==i.style.shape?f.get("border"):f.get("line"),h=this.createCellColorOption(a,l,"#000000");h.appendChild(o),r.appendChild(h);const u=r.cloneNode(!1);u.style.fontWeight="normal",u.style.whiteSpace="nowrap",u.style.position="relative",u.style.paddingLeft="16px",u.style.marginBottom="2px",u.style.marginTop="2px",u.className="geToolbarContainer";const d=v.bind(this,(function(t,e,n,i,r){const o=this.editorUi.menus.styleChange(t,"",i,r,"geIcon",null),s=document.createElement("div");return s.style.width=e+"px",s.style.height="1px",s.style.borderBottom="1px "+n+" "+this.defaultStrokeColor,s.style.paddingTop="6px",o.firstChild.firstChild.style.padding="0px 4px 0px 4px",o.firstChild.firstChild.style.width=e+"px",o.firstChild.firstChild.appendChild(s),o})),c=this.editorUi.toolbar.addMenuFunctionInContainer(u,"geSprite-orthogonal",f.get("pattern"),!1,v.bind(this,(function(t){d(t,75,"solid",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",f.get("solid")),d(t,75,"dashed",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",f.get("dashed")),d(t,75,"dotted",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",f.get("dotted")+" (1)"),d(t,75,"dotted",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",f.get("dotted")+" (2)"),d(t,75,"dotted",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",f.get("dotted")+" (3)")}))),p=u.cloneNode(!1),m=this.editorUi.toolbar.addMenuFunctionInContainer(p,"geSprite-connection",f.get("connection"),!1,v.bind(this,(function(t){this.editorUi.menus.styleChange(t,"",[g.STYLE_SHAPE,g.STYLE_STARTSIZE,g.STYLE_ENDSIZE,"width"],[null,null,null,null],"geIcon geSprite geSprite-connection",null,!0).setAttribute("title",f.get("line")),this.editorUi.menus.styleChange(t,"",[g.STYLE_SHAPE,g.STYLE_STARTSIZE,g.STYLE_ENDSIZE,"width"],["link",null,null,null],"geIcon geSprite geSprite-linkedge",null,!0).setAttribute("title",f.get("link")),this.editorUi.menus.styleChange(t,"",[g.STYLE_SHAPE,g.STYLE_STARTSIZE,g.STYLE_ENDSIZE,"width"],["flexArrow",null,null,null],"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",f.get("arrow")),this.editorUi.menus.styleChange(t,"",[g.STYLE_SHAPE,g.STYLE_STARTSIZE,g.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",f.get("simpleArrow"))}))),x=this.editorUi.toolbar.addMenuFunctionInContainer(p,"geSprite-orthogonal",f.get("pattern"),!1,v.bind(this,(function(t){d(t,33,"solid",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",f.get("solid")),d(t,33,"dashed",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",f.get("dashed")),d(t,33,"dotted",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",f.get("dotted")+" (1)"),d(t,33,"dotted",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",f.get("dotted")+" (2)"),d(t,33,"dotted",[g.STYLE_DASHED,g.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",f.get("dotted")+" (3)")}))),y=u.cloneNode(!1),w=document.createElement("input");w.style.textAlign="right",w.style.marginTop="2px",w.style.width="41px",w.setAttribute("title",f.get("linewidth")),u.appendChild(w);const S=w.cloneNode(!0);function b(t){let r=parseInt(w.value);r=Math.min(999,Math.max(1,isNaN(r)?1:r)),r!=v.getValue(i.style,g.STYLE_STROKEWIDTH,1)&&(n.setCellStyles(g.STYLE_STROKEWIDTH,r,n.getSelectionCells()),e.fireEvent(new A("styleChanged","keys",[g.STYLE_STROKEWIDTH],"values",[r],"cells",n.getSelectionCells()))),w.value=r+" pt",C.consume(t)}function T(t){let r=parseInt(S.value);r=Math.min(999,Math.max(1,isNaN(r)?1:r)),r!=v.getValue(i.style,g.STYLE_STROKEWIDTH,1)&&(n.setCellStyles(g.STYLE_STROKEWIDTH,r,n.getSelectionCells()),e.fireEvent(new A("styleChanged","keys",[g.STYLE_STROKEWIDTH],"values",[r],"cells",n.getSelectionCells()))),S.value=r+" pt",C.consume(t)}p.appendChild(S);const L=this.createStepper(w,b,1,9);L.style.display=w.style.display,L.style.marginTop="2px",u.appendChild(L);const I=this.createStepper(S,T,1,9);I.style.display=S.style.display,I.style.marginTop="2px",p.appendChild(I),E.IS_QUIRKS?(w.style.height="17px",S.style.height="17px"):(w.style.position="absolute",w.style.right="32px",w.style.height="15px",L.style.right="20px",S.style.position="absolute",S.style.right="32px",S.style.height="15px",I.style.right="20px"),C.addListener(w,"blur",b),C.addListener(w,"change",b),C.addListener(S,"blur",T),C.addListener(S,"change",T),E.IS_QUIRKS&&(v.br(y),v.br(y));const M=this.editorUi.toolbar.addMenuFunctionInContainer(y,"geSprite-orthogonal",f.get("waypoints"),!1,v.bind(this,(function(t){"arrow"!=i.style.shape&&(this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",null,!0).setAttribute("title",f.get("straight")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle",null,null],"geIcon geSprite geSprite-orthogonal",null,!0).setAttribute("title",f.get("orthogonal")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_ELBOW,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["elbowEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalelbow",null,!0).setAttribute("title",f.get("simple")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_ELBOW,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["elbowEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalelbow",null,!0).setAttribute("title",f.get("simple")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_ELBOW,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["isometricEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",f.get("isometric")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_ELBOW,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["isometricEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalisometric",null,!0).setAttribute("title",f.get("isometric")),"connector"==i.style.shape&&this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",f.get("curved")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_EDGE,g.STYLE_CURVED,g.STYLE_NOEDGESTYLE],["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",f.get("entityRelation")))}))),R=this.editorUi.toolbar.addMenuFunctionInContainer(y,"geSprite-startclassic",f.get("linestart"),!1,v.bind(this,(function(t){if("connector"==i.style.shape||"flexArrow"==i.style.shape||"filledEdge"==i.style.shape){const e=this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.NONE,0],"geIcon",null,!1);e.setAttribute("title",f.get("none")),e.firstChild.firstChild.innerHTML='<font style="font-size:10px;">'+v.htmlEntities(f.get("none"))+"</font>","connector"==i.style.shape||"filledEdge"==i.style.shape?(this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_CLASSIC,1],"geIcon geSprite geSprite-startclassic",null,!1).setAttribute("title",f.get("classic")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_CLASSIC_THIN,1],"geIcon geSprite geSprite-startclassicthin",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_OPEN,0],"geIcon geSprite geSprite-startopen",null,!1).setAttribute("title",f.get("openArrow")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_OPEN_THIN,0],"geIcon geSprite geSprite-startopenthin",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["openAsync",0],"geIcon geSprite geSprite-startopenasync",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_BLOCK,1],"geIcon geSprite geSprite-startblock",null,!1).setAttribute("title",f.get("block")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_BLOCK_THIN,1],"geIcon geSprite geSprite-startblockthin",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["async",1],"geIcon geSprite geSprite-startasync",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_OVAL,1],"geIcon geSprite geSprite-startoval",null,!1).setAttribute("title",f.get("oval")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_DIAMOND,1],"geIcon geSprite geSprite-startdiamond",null,!1).setAttribute("title",f.get("diamond")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_DIAMOND_THIN,1],"geIcon geSprite geSprite-startthindiamond",null,!1).setAttribute("title",f.get("diamondThin")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_CLASSIC,0],"geIcon geSprite geSprite-startclassictrans",null,!1).setAttribute("title",f.get("classic")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_CLASSIC_THIN,0],"geIcon geSprite geSprite-startclassicthintrans",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_BLOCK,0],"geIcon geSprite geSprite-startblocktrans",null,!1).setAttribute("title",f.get("block")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_BLOCK_THIN,0],"geIcon geSprite geSprite-startblockthintrans",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["async",0],"geIcon geSprite geSprite-startasynctrans",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_OVAL,0],"geIcon geSprite geSprite-startovaltrans",null,!1).setAttribute("title",f.get("oval")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_DIAMOND,0],"geIcon geSprite geSprite-startdiamondtrans",null,!1).setAttribute("title",f.get("diamond")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],[g.ARROW_DIAMOND_THIN,0],"geIcon geSprite geSprite-startthindiamondtrans",null,!1).setAttribute("title",f.get("diamondThin")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["box",0],"geIcon geSprite geSvgSprite geSprite-box",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["halfCircle",0],"geIcon geSprite geSvgSprite geSprite-halfCircle",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["dash",0],"geIcon geSprite geSprite-startdash",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["cross",0],"geIcon geSprite geSprite-startcross",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["circlePlus",0],"geIcon geSprite geSprite-startcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["circle",1],"geIcon geSprite geSprite-startcircle",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["ERone",0],"geIcon geSprite geSprite-starterone",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["ERmandOne",0],"geIcon geSprite geSprite-starteronetoone",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["ERmany",0],"geIcon geSprite geSprite-startermany",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["ERoneToMany",0],"geIcon geSprite geSprite-starteronetomany",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-starteroneopt",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW,"startFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-startermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_STARTARROW],[g.ARROW_BLOCK],"geIcon geSprite geSprite-startblocktrans",null,!1).setAttribute("title",f.get("block"))}}))),O=this.editorUi.toolbar.addMenuFunctionInContainer(y,"geSprite-endclassic",f.get("lineend"),!1,v.bind(this,(function(t){if("connector"==i.style.shape||"flexArrow"==i.style.shape||"filledEdge"==i.style.shape){const e=this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.NONE,0],"geIcon",null,!1);e.setAttribute("title",f.get("none")),e.firstChild.firstChild.innerHTML='<font style="font-size:10px;">'+v.htmlEntities(f.get("none"))+"</font>","connector"==i.style.shape||"filledEdge"==i.style.shape?(this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_CLASSIC,1],"geIcon geSprite geSprite-endclassic",null,!1).setAttribute("title",f.get("classic")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_CLASSIC_THIN,1],"geIcon geSprite geSprite-endclassicthin",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_OPEN,0],"geIcon geSprite geSprite-endopen",null,!1).setAttribute("title",f.get("openArrow")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_OPEN_THIN,0],"geIcon geSprite geSprite-endopenthin",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["openAsync",0],"geIcon geSprite geSprite-endopenasync",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_BLOCK,1],"geIcon geSprite geSprite-endblock",null,!1).setAttribute("title",f.get("block")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_BLOCK_THIN,1],"geIcon geSprite geSprite-endblockthin",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["async",1],"geIcon geSprite geSprite-endasync",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_OVAL,1],"geIcon geSprite geSprite-endoval",null,!1).setAttribute("title",f.get("oval")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_DIAMOND,1],"geIcon geSprite geSprite-enddiamond",null,!1).setAttribute("title",f.get("diamond")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_DIAMOND_THIN,1],"geIcon geSprite geSprite-endthindiamond",null,!1).setAttribute("title",f.get("diamondThin")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_CLASSIC,0],"geIcon geSprite geSprite-endclassictrans",null,!1).setAttribute("title",f.get("classic")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_CLASSIC_THIN,0],"geIcon geSprite geSprite-endclassicthintrans",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_BLOCK,0],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",f.get("block")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_BLOCK_THIN,0],"geIcon geSprite geSprite-endblockthintrans",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["async",0],"geIcon geSprite geSprite-endasynctrans",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_OVAL,0],"geIcon geSprite geSprite-endovaltrans",null,!1).setAttribute("title",f.get("oval")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_DIAMOND,0],"geIcon geSprite geSprite-enddiamondtrans",null,!1).setAttribute("title",f.get("diamond")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],[g.ARROW_DIAMOND_THIN,0],"geIcon geSprite geSprite-endthindiamondtrans",null,!1).setAttribute("title",f.get("diamondThin")),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["box",0],"geIcon geSprite geSvgSprite geFlipSprite geSprite-box",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["halfCircle",0],"geIcon geSprite geSvgSprite geFlipSprite geSprite-halfCircle",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["dash",0],"geIcon geSprite geSprite-enddash",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["cross",0],"geIcon geSprite geSprite-endcross",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["circlePlus",0],"geIcon geSprite geSprite-endcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["circle",1],"geIcon geSprite geSprite-endcircle",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["ERone",0],"geIcon geSprite geSprite-enderone",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["ERmandOne",0],"geIcon geSprite geSprite-enderonetoone",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["ERmany",0],"geIcon geSprite geSprite-endermany",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["ERoneToMany",0],"geIcon geSprite geSprite-enderonetomany",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-enderoneopt",null,!1),this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW,"endFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-endermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(t,"",[g.STYLE_ENDARROW],[g.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",f.get("block"))}})));this.addArrow(m,8),this.addArrow(M),this.addArrow(R),this.addArrow(O);const N=this.addArrow(c,9);N.className="geIcon",N.style.width="84px";const D=this.addArrow(x,9);D.className="geIcon",D.style.width="22px";const P=document.createElement("div");P.style.width="85px",P.style.height="1px",P.style.borderBottom="1px solid "+this.defaultStrokeColor,P.style.marginBottom="9px",N.appendChild(P);const H=document.createElement("div");H.style.width="23px",H.style.height="1px",H.style.borderBottom="1px solid "+this.defaultStrokeColor,H.style.marginBottom="9px",D.appendChild(H),c.style.height="15px",x.style.height="15px",m.style.height="15px",M.style.height="17px",R.style.marginLeft="3px",R.style.height="17px",O.style.marginLeft="3px",O.style.height="17px",t.appendChild(r),t.appendChild(p),t.appendChild(u);const k=u.cloneNode(!1);let G,B;k.style.paddingBottom="6px",k.style.paddingTop="4px",k.style.fontWeight="normal",(Z=document.createElement("div")).style.position="absolute",Z.style.marginLeft="3px",Z.style.marginBottom="12px",Z.style.marginTop="2px",Z.style.fontWeight="normal",Z.style.width="76px",v.write(Z,f.get("lineend")),k.appendChild(Z);const U=this.addUnitInput(k,"pt",74,33,(function(){G.apply(this,arguments)})),V=this.addUnitInput(k,"pt",20,33,(function(){B.apply(this,arguments)}));v.br(k);const F=document.createElement("div");let z,Y;F.style.height="8px",k.appendChild(F),Z=Z.cloneNode(!1),v.write(Z,f.get("linestart")),k.appendChild(Z);const W=this.addUnitInput(k,"pt",74,33,(function(){z.apply(this,arguments)})),j=this.addUnitInput(k,"pt",20,33,(function(){Y.apply(this,arguments)}));v.br(k),this.addLabel(k,f.get("spacing"),74,50),this.addLabel(k,f.get("size"),20,50),v.br(k);const Q=r.cloneNode(!1);var Z;let X;Q.style.fontWeight="normal",Q.style.position="relative",Q.style.paddingLeft="16px",Q.style.marginBottom="2px",Q.style.marginTop="6px",Q.style.borderWidth="0px",Q.style.paddingBottom="18px",(Z=document.createElement("div")).style.position="absolute",Z.style.marginLeft="3px",Z.style.marginBottom="12px",Z.style.marginTop="1px",Z.style.fontWeight="normal",Z.style.width="120px",v.write(Z,f.get("perimeter")),Q.appendChild(Z);const K=this.addUnitInput(Q,"pt",20,41,(function(){X.apply(this,arguments)}));i.edges.length==n.getSelectionCount()?(t.appendChild(y),E.IS_QUIRKS&&(v.br(t),v.br(t)),t.appendChild(k)):i.vertices.length==n.getSelectionCount()&&(E.IS_QUIRKS&&v.br(t),t.appendChild(Q));const q=v.bind(this,(function(t,r,s){if(i=this.format.getSelectionState(),s||document.activeElement!=w){var l=parseInt(v.getValue(i.style,g.STYLE_STROKEWIDTH,1));w.value=isNaN(l)?"":l+" pt"}(s||document.activeElement!=S)&&(l=parseInt(v.getValue(i.style,g.STYLE_STROKEWIDTH,1)),S.value=isNaN(l)?"":l+" pt"),o.style.visibility="connector"==i.style.shape||"filledEdge"==i.style.shape?"":"hidden","1"==v.getValue(i.style,g.STYLE_CURVED,null)?o.value="curved":"1"==v.getValue(i.style,g.STYLE_ROUNDED,null)&&(o.value="rounded"),"1"==v.getValue(i.style,g.STYLE_DASHED,null)?null==v.getValue(i.style,g.STYLE_DASH_PATTERN,null)?P.style.borderBottom="1px dashed "+this.defaultStrokeColor:P.style.borderBottom="1px dotted "+this.defaultStrokeColor:P.style.borderBottom="1px solid "+this.defaultStrokeColor,H.style.borderBottom=P.style.borderBottom;const a=M.getElementsByTagName("div")[0];let h=v.getValue(i.style,g.STYLE_EDGE,null);"1"==v.getValue(i.style,g.STYLE_NOEDGESTYLE,null)&&(h=null),"orthogonalEdgeStyle"==h&&"1"==v.getValue(i.style,g.STYLE_CURVED,null)?a.className="geSprite geSprite-curved":a.className="straight"==h||"none"==h||null==h?"geSprite geSprite-straight":"entityRelationEdgeStyle"==h?"geSprite geSprite-entity":"elbowEdgeStyle"==h?"geSprite "+("vertical"==v.getValue(i.style,g.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==h?"geSprite "+("vertical"==v.getValue(i.style,g.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal";const d=m.getElementsByTagName("div")[0];function c(t,n,r,o){const s=r.getElementsByTagName("div")[0];return s.className=e.getCssClassForMarker(o,i.style.shape,t,n),"geSprite geSprite-noarrow"==s.className&&(s.innerHTML=v.htmlEntities(f.get("none")),s.style.backgroundImage="none",s.style.verticalAlign="top",s.style.marginTop="5px",s.style.fontSize="10px",s.style.filter="none",s.style.color=Ae.prototype.defaultStrokeColor,s.nextSibling.style.marginTop="0px"),s}"link"==i.style.shape?d.className="geSprite geSprite-linkedge":"flexArrow"==i.style.shape?d.className="geSprite geSprite-arrow":"arrow"==i.style.shape?d.className="geSprite geSprite-simplearrow":d.className="geSprite geSprite-connection",i.edges.length==n.getSelectionCount()?(p.style.display="",u.style.display="none"):(p.style.display="none",u.style.display="");const x=c(v.getValue(i.style,g.STYLE_STARTARROW,null),v.getValue(i.style,"startFill","1"),R,"start"),y=c(v.getValue(i.style,g.STYLE_ENDARROW,null),v.getValue(i.style,"endFill","1"),O,"end");"arrow"==i.style.shape?(x.className="geSprite geSprite-noarrow",y.className="geSprite geSprite-endblocktrans"):"link"==i.style.shape&&(x.className="geSprite geSprite-noarrow",y.className="geSprite geSprite-noarrow"),v.setOpacity(M,"arrow"==i.style.shape?30:100),"connector"!=i.style.shape&&"flexArrow"!=i.style.shape&&"filledEdge"!=i.style.shape?(v.setOpacity(R,30),v.setOpacity(O,30)):(v.setOpacity(R,100),v.setOpacity(O,100)),(s||document.activeElement!=j)&&(l=parseInt(v.getValue(i.style,g.STYLE_STARTSIZE,g.DEFAULT_MARKERSIZE)),j.value=isNaN(l)?"":l+" pt"),(s||document.activeElement!=W)&&(l=parseInt(v.getValue(i.style,g.STYLE_SOURCE_PERIMETER_SPACING,0)),W.value=isNaN(l)?"":l+" pt"),(s||document.activeElement!=V)&&(l=parseInt(v.getValue(i.style,g.STYLE_ENDSIZE,g.DEFAULT_MARKERSIZE)),V.value=isNaN(l)?"":l+" pt"),(s||document.activeElement!=W)&&(l=parseInt(v.getValue(i.style,g.STYLE_TARGET_PERIMETER_SPACING,0)),U.value=isNaN(l)?"":l+" pt"),(s||document.activeElement!=K)&&(l=parseInt(v.getValue(i.style,g.STYLE_PERIMETER_SPACING,0)),K.value=isNaN(l)?"":l+" pt")}));return Y=this.installInputHandler(j,g.STYLE_STARTSIZE,g.DEFAULT_MARKERSIZE,0,999," pt"),z=this.installInputHandler(W,g.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt"),B=this.installInputHandler(V,g.STYLE_ENDSIZE,g.DEFAULT_MARKERSIZE,0,999," pt"),G=this.installInputHandler(U,g.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt"),X=this.installInputHandler(K,g.STYLE_PERIMETER_SPACING,0,0,999," pt"),this.addKeyHandler(w,q),this.addKeyHandler(j,q),this.addKeyHandler(W,q),this.addKeyHandler(V,q),this.addKeyHandler(U,q),this.addKeyHandler(K,q),n.getModel().addListener(C.CHANGE,q),this.listeners.push({destroy:function(){n.getModel().removeListener(q)}}),q(),t},Ae.prototype.addLineJumps=function(t){let e=this.format.getSelectionState();if(te.lineJumpsEnabled&&e.edges.length>0&&0==e.vertices.length&&e.lineJumps){t.style.padding="8px 0px 24px 18px";const n=this.editorUi,i=n.editor.graph,r=document.createElement("div");r.style.position="absolute",r.style.fontWeight="bold",r.style.width="80px",v.write(r,f.get("lineJumps")),t.appendChild(r);const o=document.createElement("select");o.style.position="absolute",o.style.marginTop="-2px",o.style.right="76px",o.style.width="62px";const s=["none","arc","gap","sharp"];for(let t=0;t<s.length;t++){const e=document.createElement("option");e.setAttribute("value",s[t]),v.write(e,f.get(s[t])),o.appendChild(e)}let l;C.addListener(o,"change",(function(t){i.getModel().beginUpdate();try{i.setCellStyles("jumpStyle",o.value,i.getSelectionCells()),n.fireEvent(new A("styleChanged","keys",["jumpStyle"],"values",[o.value],"cells",i.getSelectionCells()))}finally{i.getModel().endUpdate()}C.consume(t)})),C.addListener(o,"click",(function(t){C.consume(t)})),t.appendChild(o);const a=this.addUnitInput(t,"pt",22,33,(function(){l.apply(this,arguments)}));l=this.installInputHandler(a,"jumpSize",te.defaultJumpSize,0,999," pt");const h=v.bind(this,(function(t,n,i){if(e=this.format.getSelectionState(),o.value=v.getValue(e.style,"jumpStyle","none"),i||document.activeElement!=a){const t=parseInt(v.getValue(e.style,"jumpSize",te.defaultJumpSize));a.value=isNaN(t)?"":t+" pt"}}));this.addKeyHandler(a,h),i.getModel().addListener(C.CHANGE,h),this.listeners.push({destroy:function(){i.getModel().removeListener(h)}}),h()}else t.style.display="none";return t},Ae.prototype.addEffects=function(t){const e=this.editorUi.editor.graph;let n=this.format.getSelectionState();t.style.paddingTop="0px",t.style.paddingBottom="2px";const i=document.createElement("table");E.IS_QUIRKS&&(i.style.fontSize="1em"),i.style.width="100%",i.style.fontWeight="bold",i.style.paddingRight="20px";const r=document.createElement("tbody"),o=document.createElement("tr");o.style.padding="0px";const s=document.createElement("td");s.style.padding="0px",s.style.width="50%",s.setAttribute("valign","top");const l=s.cloneNode(!0);l.style.paddingLeft="8px",o.appendChild(s),o.appendChild(l),r.appendChild(o),i.appendChild(r),t.appendChild(i);let a=s,h=0;const u=v.bind(this,(function(t,e,n){const i=this.createCellOption(t,e,n);i.style.width="100%",a.appendChild(i),a=a==s?l:s,h++})),d=v.bind(this,(function(){n=this.format.getSelectionState(),s.innerHTML="",l.innerHTML="",a=s,n.rounded&&u(f.get("rounded"),g.STYLE_ROUNDED,0),"swimlane"==n.style.shape&&u(f.get("divider"),"swimlaneLine",1),n.containsImage||u(f.get("shadow"),g.STYLE_SHADOW,0),n.glass&&u(f.get("glass"),g.STYLE_GLASS,0),n.comic&&u(f.get("comic"),"comic",0),0==h&&(t.style.display="none")}));return e.getModel().addListener(C.CHANGE,d),this.listeners.push({destroy:function(){e.getModel().removeListener(d)}}),d(),t},Ae.prototype.addStyleOps=function(t){t.style.paddingTop="10px",t.style.paddingBottom="10px";const e=v.button(f.get("setAsDefaultStyle"),v.bind(this,(function(){this.editorUi.actions.get("setAsDefaultStyle").funct()})));return e.setAttribute("title",f.get("setAsDefaultStyle")+" ("+this.editorUi.actions.get("setAsDefaultStyle").shortcut+")"),e.style.width="202px",t.appendChild(e),t},v.extend(Ce,xe),Ce.showPageView=!0,Ce.prototype.showBackgroundImageOption=!0,Ce.prototype.init=function(){const t=this.editorUi.editor.graph;this.container.appendChild(this.addView(this.createPanel())),t.isEnabled()&&(this.container.appendChild(this.addOptions(this.createPanel())),this.container.appendChild(this.addPaperSize(this.createPanel())),this.container.appendChild(this.addStyleOps(this.createPanel())))},Ce.prototype.addView=function(t){const e=this.editorUi,n=e.editor.graph;return t.appendChild(this.createTitle(f.get("view"))),this.addGridOption(t),Ce.showPageView&&t.appendChild(this.createOption(f.get("pageView"),(function(){return n.pageVisible}),(function(){e.actions.get("pageView").funct()}),{install:function(t){this.listener=function(){t(n.pageVisible)},e.addListener("pageViewChanged",this.listener)},destroy:function(){e.removeListener(this.listener)}})),t},Ce.prototype.addOptions=function(t){const e=this.editorUi,n=e.editor.graph;return t.appendChild(this.createTitle(f.get("options"))),n.isEnabled()&&(t.appendChild(this.createOption(f.get("connectionArrows"),(function(){return n.connectionArrowsEnabled}),(function(){e.actions.get("connectionArrows").funct()}),{install:function(t){this.listener=function(){t(n.connectionArrowsEnabled)},e.addListener("connectionArrowsChanged",this.listener)},destroy:function(){e.removeListener(this.listener)}})),t.appendChild(this.createOption(f.get("connectionPoints"),(function(){return n.connectionHandler.isEnabled()}),(function(){e.actions.get("connectionPoints").funct()}),{install:function(t){this.listener=function(){t(n.connectionHandler.isEnabled())},e.addListener("connectionPointsChanged",this.listener)},destroy:function(){e.removeListener(this.listener)}})),t.appendChild(this.createOption(f.get("guides"),(function(){return n.graphHandler.guidesEnabled}),(function(){e.actions.get("guides").funct()}),{install:function(t){this.listener=function(){t(n.graphHandler.guidesEnabled)},e.addListener("guidesEnabledChanged",this.listener)},destroy:function(){e.removeListener(this.listener)}}))),t},Ce.prototype.addGridOption=function(t){const e=this,n=this.editorUi,i=n.editor.graph,r=document.createElement("input");r.style.position="absolute",r.style.textAlign="right",r.style.width="38px",r.value=this.inUnit(i.getGridSize())+" "+this.getUnit();const o=this.createStepper(r,s,this.getUnitStep(),null,null,null,this.isFloatUnit());function s(t){let n=e.isFloatUnit()?parseFloat(r.value):parseInt(r.value);n=e.fromUnit(Math.max(e.inUnit(1),isNaN(n)?e.inUnit(10):n)),n!=i.getGridSize()&&i.setGridSize(n),r.value=e.inUnit(n)+" "+e.getUnit(),C.consume(t)}r.style.display=i.isGridEnabled()?"":"none",o.style.display=r.style.display,C.addListener(r,"keydown",(function(t){13==t.keyCode?(i.container.focus(),C.consume(t)):27==t.keyCode&&(r.value=i.getGridSize(),i.container.focus(),C.consume(t))})),C.addListener(r,"blur",s),C.addListener(r,"change",s);const l=function(){r.value=e.inUnit(i.getGridSize())+" "+e.getUnit(),e.format.refresh()};i.view.addListener("unitChanged",l),this.listeners.push({destroy:function(){i.view.removeListener(l)}}),r.style.marginTop="-2px",r.style.right="84px",o.style.marginTop="-2px",o.style.right="72px";const a=this.createColorOption(f.get("grid"),(function(){const t=i.view.gridColor;return i.isGridEnabled()?t:null}),(function(t){const e=i.isGridEnabled();t==g.NONE?i.setGridEnabled(!1):(i.setGridEnabled(!0),n.setGridColor(t)),r.style.display=i.isGridEnabled()?"":"none",o.style.display=r.style.display,e!=i.isGridEnabled()&&n.fireEvent(new A("gridEnabledChanged"))}),"#e0e0e0",{install:function(t){this.listener=function(){t(i.isGridEnabled()?i.view.gridColor:null)},n.addListener("gridColorChanged",this.listener),n.addListener("gridEnabledChanged",this.listener)},destroy:function(){n.removeListener(this.listener)}});a.appendChild(r),a.appendChild(o),t.appendChild(a)},Ce.prototype.addDocumentProperties=function(t){return t.appendChild(this.createTitle(f.get("options"))),t},Ce.prototype.addPaperSize=function(t){const e=this.editorUi,n=e.editor.graph;t.appendChild(this.createTitle(f.get("paperSize")));const i=pe.addPageFormatPanel(t,"formatpanel",n.pageFormat,(function(t){if(null==n.pageFormat||n.pageFormat.width!=t.width||n.pageFormat.height!=t.height){const i=new he(e,null,null,t);i.ignoreColor=!0,i.ignoreImage=!0,n.model.execute(i)}}));this.addKeyHandler(i.widthInput,(function(){i.set(n.pageFormat)})),this.addKeyHandler(i.heightInput,(function(){i.set(n.pageFormat)}));const r=function(){i.set(n.pageFormat)};return e.addListener("pageFormatChanged",r),this.listeners.push({destroy:function(){e.removeListener(r)}}),n.getModel().addListener(C.CHANGE,r),this.listeners.push({destroy:function(){n.getModel().removeListener(r)}}),t},Ce.prototype.addStyleOps=function(t){const e=v.button(f.get("clearDefaultStyle"),v.bind(this,(function(){this.editorUi.actions.get("clearDefaultStyle").funct()})));return e.setAttribute("title",f.get("clearDefaultStyle")+" ("+this.editorUi.actions.get("clearDefaultStyle").shortcut+")"),e.style.width="202px",t.appendChild(e),t},Ce.prototype.destroy=function(){xe.prototype.destroy.apply(this,arguments),this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)},function(){function t(){Dt.call(this)}function e(){Lt.call(this)}v.extend(t,Dt),t.prototype.getLabelBounds=function(){const t=this.getTitleSize();return 0==t?U.prototype.getLabelBounds.apply(this,arguments):Dt.prototype.getLabelBounds.apply(this,arguments)},t.prototype.paintVertexShape=function(t,e,n,i,r){const o=this.getTitleSize();0==o?D.prototype.paintBackground.apply(this,arguments):(Dt.prototype.paintVertexShape.apply(this,arguments),t.translate(-e,-n)),this.paintForeground(t,e,n,i,r)},t.prototype.paintForeground=function(t,e,n,i,r){if(null!=this.state){let o=this.flipH,s=this.flipV;if(this.direction==g.DIRECTION_NORTH||this.direction==g.DIRECTION_SOUTH){const t=o;o=s,s=t}t.rotate(-this.getShapeRotation(),o,s,e+i/2,n+r/2);const l=this.scale;e=this.bounds.x/l,n=this.bounds.y/l,i=this.bounds.width/l,r=this.bounds.height/l,this.paintTableForeground(t,e,n,i,r)}},t.prototype.paintTableForeground=function(t,e,n,i,r){const o=this.state.view.graph,s=o.getActualStartSize(this.state.cell),l=o.model.getChildCells(this.state.cell,!0);if(l.length>0){const u="0"!=v.getValue(this.state.style,"rowLines","1"),d="0"!=v.getValue(this.state.style,"columnLines","1");if(u)for(var a=1;a<l.length;a++)null!=(h=o.getCellGeometry(l[a]))&&(t.begin(),t.moveTo(e+s.x,n+h.y),t.lineTo(e+i-s.width,n+h.y),t.end(),t.stroke());if(d){const i=o.model.getChildCells(l[0],!0);for(a=1;a<i.length;a++){var h;null!=(h=o.getCellGeometry(i[a]))&&(t.begin(),t.moveTo(e+h.x+s.x,n+s.y),t.lineTo(e+h.x+s.x,n+r-s.height),t.end(),t.stroke())}}}},W.registerShape("table",t),v.extend(e,Lt),e.prototype.size=20,e.prototype.darkOpacity=0,e.prototype.darkOpacity2=0,e.prototype.paintVertexShape=function(t,e,n,i,r){const o=Math.max(0,Math.min(i,Math.min(r,parseFloat(v.getValue(this.style,"size",this.size))))),s=Math.max(-1,Math.min(1,parseFloat(v.getValue(this.style,"darkOpacity",this.darkOpacity)))),l=Math.max(-1,Math.min(1,parseFloat(v.getValue(this.style,"darkOpacity2",this.darkOpacity2))));t.translate(e,n),t.begin(),t.moveTo(0,0),t.lineTo(i-o,0),t.lineTo(i,o),t.lineTo(i,r),t.lineTo(o,r),t.lineTo(0,r-o),t.lineTo(0,0),t.close(),t.end(),t.fillAndStroke(),this.outline||(t.setShadow(!1),0!=s&&(t.setFillAlpha(Math.abs(s)),t.setFillColor(s<0?"#FFFFFF":"#000000"),t.begin(),t.moveTo(0,0),t.lineTo(i-o,0),t.lineTo(i,o),t.lineTo(o,o),t.close(),t.fill()),0!=l&&(t.setFillAlpha(Math.abs(l)),t.setFillColor(l<0?"#FFFFFF":"#000000"),t.begin(),t.moveTo(0,0),t.lineTo(o,o),t.lineTo(o,r),t.lineTo(0,r-o),t.close(),t.fill()),t.begin(),t.moveTo(o,r),t.lineTo(o,o),t.lineTo(0,0),t.moveTo(o,o),t.lineTo(i,o),t.end(),t.stroke())},e.prototype.getLabelMargins=function(){if(v.getValue(this.style,"boundedLbl",!1)){const t=parseFloat(v.getValue(this.style,"size",this.size))*this.scale;return new w(t,t,0,0)}return null},W.registerShape("cube",e);const n=Math.tan(v.toRadians(30)),i=(.5-n)/2;function r(){bt.call(this)}function o(){Lt.call(this)}function s(){Lt.call(this)}function l(){Lt.call(this)}function a(){bt.call(this)}function h(){Lt.call(this)}function u(){bt.call(this)}function d(){bt.call(this)}function c(){bt.call(this)}v.extend(r,bt),r.prototype.size=20,r.prototype.redrawPath=function(t,e,r,o,s){const l=Math.min(o,s/n);t.translate((o-l)/2,(s-l)/2+l/4),t.moveTo(0,.25*l),t.lineTo(.5*l,l*i),t.lineTo(l,.25*l),t.lineTo(.5*l,(.5-i)*l),t.lineTo(0,.25*l),t.close(),t.end()},W.registerShape("isoRectangle",r),v.extend(o,Lt),o.prototype.size=20,o.prototype.redrawPath=function(t,e,r,o,s,l){const a=Math.min(o,s/(.5+n));l?(t.moveTo(0,.25*a),t.lineTo(.5*a,(.5-i)*a),t.lineTo(a,.25*a),t.moveTo(.5*a,(.5-i)*a),t.lineTo(.5*a,(1-i)*a),t.end()):(t.translate((o-a)/2,(s-a)/2),t.moveTo(0,.25*a),t.lineTo(.5*a,a*i),t.lineTo(a,.25*a),t.lineTo(a,.75*a),t.lineTo(.5*a,(1-i)*a),t.lineTo(0,.75*a),t.close(),t.end())},W.registerShape("isoCube",o),v.extend(s,Lt),s.prototype.redrawPath=function(t,e,n,i,r,o){const s=Math.min(r/2,Math.round(r/8)+this.strokewidth-1);(o&&null!=this.fill||!o&&null==this.fill)&&(t.moveTo(0,s),t.curveTo(0,2*s,i,2*s,i,s),o||(t.stroke(),t.begin()),t.translate(0,s/2),t.moveTo(0,s),t.curveTo(0,2*s,i,2*s,i,s),o||(t.stroke(),t.begin()),t.translate(0,s/2),t.moveTo(0,s),t.curveTo(0,2*s,i,2*s,i,s),o||(t.stroke(),t.begin()),t.translate(0,-s)),o||(t.moveTo(0,s),t.curveTo(0,-s/3,i,-s/3,i,s),t.lineTo(i,r-s),t.curveTo(i,r+s/3,0,r+s/3,0,r-s),t.close())},s.prototype.getLabelMargins=function(t){return new w(0,2.5*Math.min(t.height/2,Math.round(t.height/8)+this.strokewidth-1),0,0)},W.registerShape("datastore",s),v.extend(l,Lt),l.prototype.size=30,l.prototype.darkOpacity=0,l.prototype.paintVertexShape=function(t,e,n,i,r){const o=Math.max(0,Math.min(i,Math.min(r,parseFloat(v.getValue(this.style,"size",this.size))))),s=Math.max(-1,Math.min(1,parseFloat(v.getValue(this.style,"darkOpacity",this.darkOpacity))));t.translate(e,n),t.begin(),t.moveTo(0,0),t.lineTo(i-o,0),t.lineTo(i,o),t.lineTo(i,r),t.lineTo(0,r),t.lineTo(0,0),t.close(),t.end(),t.fillAndStroke(),this.outline||(t.setShadow(!1),0!=s&&(t.setFillAlpha(Math.abs(s)),t.setFillColor(s<0?"#FFFFFF":"#000000"),t.begin(),t.moveTo(i-o,0),t.lineTo(i-o,o),t.lineTo(i,o),t.close(),t.fill()),t.begin(),t.moveTo(i-o,0),t.lineTo(i-o,o),t.lineTo(i,o),t.end(),t.stroke())},W.registerShape("note",l),v.extend(a,bt),a.prototype.redrawPath=function(t,e,n,i,r){const o=.5;t.moveTo(0,0),t.quadTo(i/2,r*o,i,0),t.quadTo(.5*i,r/2,i,r),t.quadTo(i/2,.5*r,0,r),t.quadTo(i*o,r/2,0,0),t.end()},W.registerShape("switch",a),v.extend(h,Lt),h.prototype.tabWidth=60,h.prototype.tabHeight=20,h.prototype.tabPosition="right",h.prototype.redrawPath=function(t,e,n,i,r,o){const s=Math.max(0,Math.min(i,parseFloat(v.getValue(this.style,"tabWidth",this.tabWidth)))),l=Math.max(0,Math.min(r,parseFloat(v.getValue(this.style,"tabHeight",this.tabHeight)))),a=v.getValue(this.style,"tabPosition",this.tabPosition);o?("left"==a?(t.moveTo(0,l),t.lineTo(s,l)):(t.moveTo(i-s,l),t.lineTo(i,l)),t.end()):("left"==a?(t.moveTo(0,0),t.lineTo(s,0),t.lineTo(s,l),t.lineTo(i,l)):(t.moveTo(0,l),t.lineTo(i-s,l),t.lineTo(i-s,0),t.lineTo(i,0)),t.lineTo(i,r),t.lineTo(0,r),t.lineTo(0,l),t.close(),t.end())},W.registerShape("folder",h),v.extend(u,bt),u.prototype.size=30,u.prototype.isRoundable=function(){return!0},u.prototype.redrawPath=function(t,e,n,i,r){const o=Math.max(0,Math.min(i,Math.min(r,parseFloat(v.getValue(this.style,"size",this.size))))),s=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(o,0),new T(i,0),new T(i,r),new T(0,r),new T(0,o)],this.isRounded,s,!0),t.end()},W.registerShape("card",u),v.extend(d,bt),d.prototype.size=.4,d.prototype.redrawPath=function(t,e,n,i,r){const o=r*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"size",this.size)))),s=1.4;t.moveTo(0,o/2),t.quadTo(i/4,o*s,i/2,o/2),t.quadTo(3*i/4,o*(1-s),i,o/2),t.lineTo(i,r-o/2),t.quadTo(3*i/4,r-o*s,i/2,r-o/2),t.quadTo(i/4,r-o*(1-s),0,r-o/2),t.lineTo(0,o/2),t.close(),t.end()},d.prototype.getLabelBounds=function(t){if(v.getValue(this.style,"boundedLbl",!1)){const e=v.getValue(this.style,"size",this.size),n=t.width,i=t.height;if(null==this.direction||this.direction==g.DIRECTION_EAST||this.direction==g.DIRECTION_WEST){const r=i*e;return new w(t.x,t.y+r,n,i-2*r)}{const r=n*e;return new w(t.x+r,t.y,n-2*r,i)}}return t},W.registerShape("tape",d),v.extend(c,bt),c.prototype.size=.3,c.prototype.getLabelMargins=function(t){return v.getValue(this.style,"boundedLbl",!1)?new w(0,0,0,parseFloat(v.getValue(this.style,"size",this.size))*t.height):null},c.prototype.redrawPath=function(t,e,n,i,r){const o=r*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"size",this.size))));t.moveTo(0,0),t.lineTo(i,0),t.lineTo(i,r-o/2),t.quadTo(3*i/4,r-1.4*o,i/2,r-o/2),t.quadTo(i/4,r-o*(1-1.4),0,r-o/2),t.lineTo(0,o/2),t.close(),t.end()},W.registerShape("document",c);const p=Lt.prototype.getCylinderSize;function m(){bt.call(this)}function x(){bt.call(this)}function y(){bt.call(this)}function A(){bt.call(this)}function E(t,e){this.canvas=t,this.canvas.setLineJoin("round"),this.canvas.setLineCap("round"),this.defaultVariation=e,this.originalLineTo=this.canvas.lineTo,this.canvas.lineTo=v.bind(this,E.prototype.lineTo),this.originalMoveTo=this.canvas.moveTo,this.canvas.moveTo=v.bind(this,E.prototype.moveTo),this.originalClose=this.canvas.close,this.canvas.close=v.bind(this,E.prototype.close),this.originalQuadTo=this.canvas.quadTo,this.canvas.quadTo=v.bind(this,E.prototype.quadTo),this.originalCurveTo=this.canvas.curveTo,this.canvas.curveTo=v.bind(this,E.prototype.curveTo),this.originalArcTo=this.canvas.arcTo,this.canvas.arcTo=v.bind(this,E.prototype.arcTo)}Lt.prototype.getCylinderSize=function(t,e,n,i){const r=v.getValue(this.style,"size");return null!=r?i*Math.max(0,Math.min(1,r)):p.apply(this,arguments)},Lt.prototype.getLabelMargins=function(t){if(v.getValue(this.style,"boundedLbl",!1)){const e=2*v.getValue(this.style,"size",.15);return new w(0,Math.min(this.maxHeight*this.scale,t.height*e),0,0)}return null},v.extend(m,bt),m.prototype.size=.2,m.prototype.isRoundable=function(){return!0},m.prototype.redrawPath=function(t,e,n,i,r){const o=i*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"size",this.size)))),s=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(0,r),new T(o,0),new T(i,0),new T(i-o,r)],this.isRounded,s,!0),t.end()},W.registerShape("parallelogram",m),v.extend(x,bt),x.prototype.size=.2,x.prototype.isRoundable=function(){return!0},x.prototype.redrawPath=function(t,e,n,i,r){const o=i*Math.max(0,Math.min(.5,parseFloat(v.getValue(this.style,"size",this.size)))),s=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(0,r),new T(o,0),new T(i-o,0),new T(i,r)],this.isRounded,s,!0)},W.registerShape("trapezoid",x),v.extend(y,bt),y.prototype.size=.5,y.prototype.redrawPath=function(t,e,n,i,r){t.setFillColor(null);const o=i*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"size",this.size)))),s=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(i,0),new T(o,0),new T(o,r/2),new T(0,r/2),new T(o,r/2),new T(o,r),new T(i,r)],this.isRounded,s,!1),t.end()},W.registerShape("curlyBracket",y),v.extend(A,bt),A.prototype.redrawPath=function(t,e,n,i,r){t.setStrokeWidth(1),t.setFillColor(this.stroke);const o=i/5;t.rect(0,0,o,r),t.fillAndStroke(),t.rect(2*o,0,o,r),t.fillAndStroke(),t.rect(4*o,0,o,r),t.fillAndStroke()},W.registerShape("parallelMarker",A),E.prototype.moveTo=function(t,e){this.originalMoveTo.apply(this.canvas,arguments),this.lastX=t,this.lastY=e,this.firstX=t,this.firstY=e},E.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)},E.prototype.quadTo=function(t,e,n,i){this.originalQuadTo.apply(this.canvas,arguments),this.lastX=n,this.lastY=i},E.prototype.curveTo=function(t,e,n,i,r,o){this.originalCurveTo.apply(this.canvas,arguments),this.lastX=r,this.lastY=o},E.prototype.arcTo=function(t,e,n,i,r,o,s){this.originalArcTo.apply(this.canvas,arguments),this.lastX=o,this.lastY=s},E.prototype.lineTo=function(t,e){if(null!=this.lastX&&null!=this.lastY){const n=Math.abs(t-this.lastX),i=Math.abs(e-this.lastY),r=Math.sqrt(n*n+i*i);if(r<2)return this.originalLineTo.apply(this.canvas,arguments),this.lastX=t,void(this.lastY=e);let o=Math.round(r/10),s=this.defaultVariation;function l(t){return"number"==typeof t?t?t<0?-1:1:t==t?0:NaN:NaN}o<5&&(o=5,s/=3);const a=l(t-this.lastX)*n/o,h=l(e-this.lastY)*i/o,u=n/r,d=i/r;for(let c=0;c<o;c++){const p=a*c+this.lastX,g=h*c+this.lastY,m=(Math.random()-.5)*s;this.originalLineTo.call(this.canvas,p-m*d,g-m*u)}this.originalLineTo.call(this.canvas,t,e),this.lastX=t,this.lastY=e}else this.originalLineTo.apply(this.canvas,arguments),this.lastX=t,this.lastY=e},E.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};const S=U.prototype.paint;U.prototype.defaultJiggle=1.5,U.prototype.paint=function(t){null!=this.style&&"0"!=v.getValue(this.style,"comic","0")&&null==t.handHiggle&&(t.handJiggle=new E(t,v.getValue(this.style,"jiggle",this.defaultJiggle))),S.apply(this,arguments),null!=t.handJiggle&&(t.handJiggle.destroy(),delete t.handJiggle)},It.prototype.defaultJiggle=2;const b=D.prototype.isHtmlAllowed;D.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==v.getValue(this.style,"comic","0"))&&b.apply(this,arguments)};const L=D.prototype.paintBackground;D.prototype.paintBackground=function(t,e,n,i,r){if(null==t.handJiggle)L.apply(this,arguments);else{let o=!0;if(null!=this.style&&(o="1"==v.getValue(this.style,g.STYLE_POINTER_EVENTS,"1")),o||null!=this.fill&&this.fill!=g.NONE||null!=this.stroke&&this.stroke!=g.NONE){if(o||null!=this.fill&&this.fill!=g.NONE||(t.pointerEvents=!1),t.begin(),this.isRounded){let o=0;if("1"==v.getValue(this.style,g.STYLE_ABSOLUTE_ARCSIZE,0))o=Math.min(i/2,Math.min(r/2,v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2));else{const t=v.getValue(this.style,g.STYLE_ARCSIZE,100*g.RECTANGLE_ROUNDING_FACTOR)/100;o=Math.min(i*t,r*t)}t.moveTo(e+o,n),t.lineTo(e+i-o,n),t.quadTo(e+i,n,e+i,n+o),t.lineTo(e+i,n+r-o),t.quadTo(e+i,n+r,e+i-o,n+r),t.lineTo(e+o,n+r),t.quadTo(e,n+r,e,n+r-o),t.lineTo(e,n+o),t.quadTo(e,n,e+o,n)}else t.moveTo(e,n),t.lineTo(e+i,n),t.lineTo(e+i,n+r),t.lineTo(e,n+r),t.lineTo(e,n);t.close(),t.end(),t.fillAndStroke()}}};const I=D.prototype.paintForeground;function M(){D.call(this)}function R(){D.call(this)}function O(){bt.call(this)}function N(){bt.call(this)}function P(){bt.call(this)}function H(){D.call(this)}D.prototype.paintForeground=function(t){null==t.handJiggle&&I.apply(this,arguments)},v.extend(M,D),M.prototype.size=.1,M.prototype.isHtmlAllowed=function(){return!1},M.prototype.getLabelBounds=function(t){if(v.getValue(this.state.style,g.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==g.DIRECTION_EAST||this.direction==g.DIRECTION_WEST)){const e=t.width,n=t.height,i=new w(t.x,t.y,e,n);let r=e*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"size",this.size))));if(this.isRounded){const t=v.getValue(this.style,g.STYLE_ARCSIZE,100*g.RECTANGLE_ROUNDING_FACTOR)/100;r=Math.max(r,Math.min(e*t,n*t))}return i.x+=Math.round(r),i.width-=Math.round(2*r),i}return t},M.prototype.paintForeground=function(t,e,n,i,r){let o=i*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"size",this.size))));if(this.isRounded){const t=v.getValue(this.style,g.STYLE_ARCSIZE,100*g.RECTANGLE_ROUNDING_FACTOR)/100;o=Math.max(o,Math.min(i*t,r*t))}o=Math.round(o),t.begin(),t.moveTo(e+o,n),t.lineTo(e+o,n+r),t.moveTo(e+i-o,n),t.lineTo(e+i-o,n+r),t.end(),t.stroke(),D.prototype.paintForeground.apply(this,arguments)},W.registerShape("process",M),v.extend(R,D),R.prototype.paintBackground=function(t,e,n,i,r){t.setFillColor(g.NONE),t.rect(e,n,i,r),t.fill()},R.prototype.paintForeground=function(){},W.registerShape("transparent",R),v.extend(O,Nt),O.prototype.size=30,O.prototype.position=.5,O.prototype.position2=.5,O.prototype.base=20,O.prototype.getLabelMargins=function(){return new w(0,0,0,parseFloat(v.getValue(this.style,"size",this.size))*this.scale)},O.prototype.isRoundable=function(){return!0},O.prototype.redrawPath=function(t,e,n,i,r){const o=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2,s=Math.max(0,Math.min(r,parseFloat(v.getValue(this.style,"size",this.size)))),l=i*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"position",this.position)))),a=i*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"position2",this.position2)))),h=Math.max(0,Math.min(i,parseFloat(v.getValue(this.style,"base",this.base))));this.addPoints(t,[new T(0,0),new T(i,0),new T(i,r-s),new T(Math.min(i,l+h),r-s),new T(a,r),new T(Math.max(0,l),r-s),new T(0,r-s)],this.isRounded,o,!0,[4])},W.registerShape("callout",O),v.extend(N,bt),N.prototype.size=.2,N.prototype.fixedSize=20,N.prototype.isRoundable=function(){return!0},N.prototype.redrawPath=function(t,e,n,i,r){const o="0"!=v.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(i,parseFloat(v.getValue(this.style,"size",this.fixedSize)))):i*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"size",this.size)))),s=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(0,0),new T(i-o,0),new T(i,r/2),new T(i-o,r),new T(0,r),new T(o,r/2)],this.isRounded,s,!0),t.end()},W.registerShape("step",N),v.extend(P,Nt),P.prototype.size=.25,P.prototype.isRoundable=function(){return!0},P.prototype.redrawPath=function(t,e,n,i,r){const o=i*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"size",this.size)))),s=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(o,0),new T(i-o,0),new T(i,.5*r),new T(i-o,r),new T(o,r),new T(0,.5*r)],this.isRounded,s,!0)},W.registerShape("hexagon",P),v.extend(H,D),H.prototype.isHtmlAllowed=function(){return!1},H.prototype.paintForeground=function(t,e,n,i,r){const o=Math.min(i/5,r/5)+1;t.begin(),t.moveTo(e+i/2,n+o),t.lineTo(e+i/2,n+r-o),t.moveTo(e+o,n+r/2),t.lineTo(e+i-o,n+r/2),t.end(),t.stroke(),D.prototype.paintForeground.apply(this,arguments)},W.registerShape("plus",H);const k=It.prototype.paintVertexShape;function G(){D.call(this)}function B(){Lt.call(this)}function F(){U.call(this)}function z(){U.call(this)}function j(){ot.call(this)}function Q(){U.call(this)}function Z(){U.call(this)}function X(){D.call(this)}function K(){U.call(this)}function q(){U.call(this)}function J(){U.call(this)}function _(){U.call(this)}function $(){U.call(this)}function tt(){Lt.call(this)}function et(){Lt.call(this)}function it(){D.call(this)}function rt(){Ot.call(this)}function st(){rt.call(this)}function lt(){Rt.call(this),this.spacing=0}function at(){Rt.call(this),this.spacing=0}function ut(){bt.call(this)}function ct(){D.call(this)}function pt(){bt.call(this)}function xt(){bt.call(this)}function At(){bt.call(this)}function Ct(){bt.call(this)}function vt(){bt.call(this)}function Et(){bt.call(this)}function wt(){bt.call(this)}function St(){bt.call(this)}function Vt(){bt.call(this)}function Ft(){bt.call(this)}function zt(){ot.call(this)}function Yt(){ot.call(this)}function Wt(){ot.call(this)}function jt(){It.call(this)}function Qt(){ot.call(this)}function Zt(){ot.call(this)}function Xt(){ot.call(this)}function Kt(){ot.call(this)}function qt(){bt.call(this)}function Jt(){bt.call(this)}function _t(){bt.call(this)}function $t(){yt.call(this)}function ee(t,e,n,i,r,o,s,l,a,h){s+=a;const u=i.clone();return i.x-=r*(2*s+a),i.y-=o*(2*s+a),r*=s+a,o*=s+a,function(){t.ellipse(u.x-r-s,u.y-o-s,2*s,2*s),h?t.fillAndStroke():t.stroke()}}var ne;if(It.prototype.getLabelBounds=function(t){if(1==this.style.double){const e=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[g.STYLE_MARGIN]||0))*this.scale;return new w(t.x+e,t.y+e,t.width-2*e,t.height-2*e)}return t},It.prototype.paintVertexShape=function(t,e,n,i,r){if(k.apply(this,arguments),!this.outline&&1==this.style.double){const o=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[g.STYLE_MARGIN]||0);e+=o,n+=o,r-=2*o,(i-=2*o)>0&&r>0&&(t.setShadow(!1),k.apply(this,[t,e,n,i,r]))}},v.extend(G,D),G.prototype.isHtmlAllowed=function(){return!1},G.prototype.getLabelBounds=function(t){if(1==this.style.double){const e=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[g.STYLE_MARGIN]||0))*this.scale;return new w(t.x+e,t.y+e,t.width-2*e,t.height-2*e)}return t},G.prototype.paintForeground=function(t,e,n,i,r){if(null!=this.style){if(!this.outline&&1==this.style.double){const t=Math.max(2,this.strokewidth+1)+parseFloat(this.style[g.STYLE_MARGIN]||0);e+=t,n+=t,r-=2*t,(i-=2*t)>0&&r>0&&D.prototype.paintBackground.apply(this,arguments)}t.setDashed(!1);let o=0,s=null;do{if(s=W.defaultShapes[this.style["symbol"+o]],null!=s){const l=this.style["symbol"+o+"Align"],a=this.style["symbol"+o+"VerticalAlign"],h=this.style["symbol"+o+"Width"],u=this.style["symbol"+o+"Height"];let d=this.style["symbol"+o+"Spacing"]||0,c=this.style["symbol"+o+"VSpacing"]||d;const p=this.style["symbol"+o+"ArcSpacing"];if(null!=p){const t=this.getArcSize(i+this.strokewidth,r+this.strokewidth)*p;d+=t,c+=t}let m=e,x=n;l==g.ALIGN_CENTER?m+=(i-h)/2:l==g.ALIGN_RIGHT?m+=i-h-d:m+=d,a==g.ALIGN_MIDDLE?x+=(r-u)/2:a==g.ALIGN_BOTTOM?x+=r-u-c:x+=c,t.save();const y=new s;y.style=this.style,s.prototype.paintVertexShape.call(y,t,m,x,h,u),t.restore()}o++}while(null!=s)}D.prototype.paintForeground.apply(this,arguments)},W.registerShape("ext",G),v.extend(B,Lt),B.prototype.redrawPath=function(t,e,n,i,r,o){o?(t.moveTo(0,0),t.lineTo(i/2,r/2),t.lineTo(i,0),t.end()):(t.moveTo(0,0),t.lineTo(i,0),t.lineTo(i,r),t.lineTo(0,r),t.close())},W.registerShape("message",B),v.extend(F,U),F.prototype.paintBackground=function(t,e,n,i,r){t.translate(e,n),t.ellipse(i/4,0,i/2,r/4),t.fillAndStroke(),t.begin(),t.moveTo(i/2,r/4),t.lineTo(i/2,2*r/3),t.moveTo(i/2,r/3),t.lineTo(0,r/3),t.moveTo(i/2,r/3),t.lineTo(i,r/3),t.moveTo(i/2,2*r/3),t.lineTo(0,r),t.moveTo(i/2,2*r/3),t.lineTo(i,r),t.end(),t.stroke()},W.registerShape("umlActor",F),v.extend(z,U),z.prototype.getLabelMargins=function(t){return new w(t.width/6,0,0,0)},z.prototype.paintBackground=function(t,e,n,i,r){t.translate(e,n),t.begin(),t.moveTo(0,r/4),t.lineTo(0,3*r/4),t.end(),t.stroke(),t.begin(),t.moveTo(0,r/2),t.lineTo(i/6,r/2),t.end(),t.stroke(),t.ellipse(i/6,0,5*i/6,r),t.fillAndStroke()},W.registerShape("umlBoundary",z),v.extend(j,ot),j.prototype.paintVertexShape=function(t,e,n,i,r){ot.prototype.paintVertexShape.apply(this,arguments),t.begin(),t.moveTo(e+i/8,n+r),t.lineTo(e+7*i/8,n+r),t.end(),t.stroke()},W.registerShape("umlEntity",j),v.extend(Q,U),Q.prototype.paintVertexShape=function(t,e,n,i,r){t.translate(e,n),t.begin(),t.moveTo(i,0),t.lineTo(0,r),t.moveTo(0,0),t.lineTo(i,r),t.end(),t.stroke()},W.registerShape("umlDestroy",Q),v.extend(Z,U),Z.prototype.getLabelBounds=function(t){return new w(t.x,t.y+t.height/8,t.width,7*t.height/8)},Z.prototype.paintBackground=function(t,e,n,i,r){t.translate(e,n),t.begin(),t.moveTo(3*i/8,r/8*1.1),t.lineTo(5*i/8,0),t.end(),t.stroke(),t.ellipse(0,r/8,i,7*r/8),t.fillAndStroke()},Z.prototype.paintForeground=function(t,e,n,i,r){t.begin(),t.moveTo(3*i/8,r/8*1.1),t.lineTo(5*i/8,r/4),t.end(),t.stroke()},W.registerShape("umlControl",Z),v.extend(X,D),X.prototype.size=40,X.prototype.isHtmlAllowed=function(){return!1},X.prototype.getLabelBounds=function(t){const e=Math.max(0,Math.min(t.height,parseFloat(v.getValue(this.style,"size",this.size))*this.scale));return new w(t.x,t.y,t.width,e)},X.prototype.paintBackground=function(t,e,n,i,r){const o=Math.max(0,Math.min(r,parseFloat(v.getValue(this.style,"size",this.size)))),s=v.getValue(this.style,"participant");if(null==s||null==this.state)D.prototype.paintBackground.call(this,t,e,n,i,o);else{const r=this.state.view.graph.cellRenderer.getShape(s);if(null!=r&&r!=X){const s=new r;s.apply(this.state),t.save(),s.paintVertexShape(t,e,n,i,o),t.restore()}}o<r&&(t.setDashed(!0),t.begin(),t.moveTo(e+i/2,n+o),t.lineTo(e+i/2,n+r),t.end(),t.stroke())},X.prototype.paintForeground=function(t,e,n,i,r){const o=Math.max(0,Math.min(r,parseFloat(v.getValue(this.style,"size",this.size))));D.prototype.paintForeground.call(this,t,e,n,i,Math.min(r,o))},W.registerShape("umlLifeline",X),v.extend(K,U),K.prototype.width=60,K.prototype.height=30,K.prototype.corner=10,K.prototype.getLabelMargins=function(t){return new w(0,0,t.width-parseFloat(v.getValue(this.style,"width",this.width)*this.scale),t.height-parseFloat(v.getValue(this.style,"height",this.height)*this.scale))},K.prototype.paintBackground=function(t,e,n,i,r){const o=this.corner,s=Math.min(i,Math.max(o,parseFloat(v.getValue(this.style,"width",this.width)))),l=Math.min(r,Math.max(1.5*o,parseFloat(v.getValue(this.style,"height",this.height)))),a=v.getValue(this.style,g.STYLE_SWIMLANE_FILLCOLOR,g.NONE);a!=g.NONE&&(t.setFillColor(a),t.rect(e,n,i,r),t.fill()),null!=this.fill&&this.fill!=g.NONE&&this.gradient&&this.gradient!=g.NONE?t.setGradient(this.fill,this.gradient,e,n,i,r,this.gradientDirection):t.setFillColor(this.fill),t.begin(),t.moveTo(e,n),t.lineTo(e+s,n),t.lineTo(e+s,n+Math.max(0,l-1.5*o)),t.lineTo(e+Math.max(0,s-o),n+l),t.lineTo(e,n+l),t.close(),t.fillAndStroke(),t.begin(),t.moveTo(e+s,n),t.lineTo(e+i,n),t.lineTo(e+i,n+r),t.lineTo(e,n+r),t.lineTo(e,n+l),t.stroke()},W.registerShape("umlFrame",K),Mt.LifelinePerimeter=function(t,e,n){let i=X.prototype.size;null!=e&&(i=v.getValue(e.style,"size",i)*e.view.scale);let r=parseFloat(e.style[g.STYLE_STROKEWIDTH]||1)*e.view.scale/2-1;return n.x<t.getCenterX()&&(r+=1,r*=-1),new T(t.getCenterX()+r,Math.min(t.y+t.height,Math.max(t.y+i,n.y)))},ft.putValue("lifelinePerimeter",Mt.LifelinePerimeter),Mt.OrthogonalPerimeter=function(){return Mt.RectanglePerimeter.apply(this,arguments)},ft.putValue("orthogonalPerimeter",Mt.OrthogonalPerimeter),Mt.BackbonePerimeter=function(t,e,n){let i=parseFloat(e.style[g.STYLE_STROKEWIDTH]||1)*e.view.scale/2-1;return null!=e.style.backboneSize&&(i+=parseFloat(e.style.backboneSize)*e.view.scale/2-1),"south"==e.style[g.STYLE_DIRECTION]||"north"==e.style[g.STYLE_DIRECTION]?(n.x<t.getCenterX()&&(i+=1,i*=-1),new T(t.getCenterX()+i,Math.min(t.y+t.height,Math.max(t.y,n.y)))):(n.y<t.getCenterY()&&(i+=1,i*=-1),new T(Math.min(t.x+t.width,Math.max(t.x,n.x)),t.getCenterY()+i))},ft.putValue("backbonePerimeter",Mt.BackbonePerimeter),Mt.CalloutPerimeter=function(t,e,n,i){return Mt.RectanglePerimeter(v.getDirectedBounds(t,new w(0,0,0,Math.max(0,Math.min(t.height,parseFloat(v.getValue(e.style,"size",O.prototype.size))*e.view.scale))),e.style),e,n,i)},ft.putValue("calloutPerimeter",Mt.CalloutPerimeter),Mt.ParallelogramPerimeter=function(t,e,n,i){let r=m.prototype.size;null!=e&&(r=v.getValue(e.style,"size",r));const o=t.x,s=t.y,l=t.width,a=t.height,h=null!=e?v.getValue(e.style,g.STYLE_DIRECTION,g.DIRECTION_EAST):g.DIRECTION_EAST;let u;if(h==g.DIRECTION_NORTH||h==g.DIRECTION_SOUTH){const t=a*Math.max(0,Math.min(1,r));u=[new T(o,s),new T(o+l,s+t),new T(o+l,s+a),new T(o,s+a-t),new T(o,s)]}else{const t=l*Math.max(0,Math.min(1,r));u=[new T(o+t,s),new T(o+l,s),new T(o+l-t,s+a),new T(o,s+a),new T(o+t,s)]}const d=t.getCenterX(),c=t.getCenterY(),p=new T(d,c);return i&&(n.x<o||n.x>o+l?p.y=n.y:p.x=n.x),v.getPerimeterPoint(u,p,n)},ft.putValue("parallelogramPerimeter",Mt.ParallelogramPerimeter),Mt.TrapezoidPerimeter=function(t,e,n,i){let r=x.prototype.size;null!=e&&(r=v.getValue(e.style,"size",r));const o=t.x,s=t.y,l=t.width,a=t.height,h=null!=e?v.getValue(e.style,g.STYLE_DIRECTION,g.DIRECTION_EAST):g.DIRECTION_EAST;let u;if(h==g.DIRECTION_EAST){var d=l*Math.max(0,Math.min(1,r));u=[new T(o+d,s),new T(o+l-d,s),new T(o+l,s+a),new T(o,s+a),new T(o+d,s)]}else if(h==g.DIRECTION_WEST)d=l*Math.max(0,Math.min(1,r)),u=[new T(o,s),new T(o+l,s),new T(o+l-d,s+a),new T(o+d,s+a),new T(o,s)];else if(h==g.DIRECTION_NORTH){var c=a*Math.max(0,Math.min(1,r));u=[new T(o,s+c),new T(o+l,s),new T(o+l,s+a),new T(o,s+a-c),new T(o,s+c)]}else c=a*Math.max(0,Math.min(1,r)),u=[new T(o,s),new T(o+l,s+c),new T(o+l,s+a-c),new T(o,s+a),new T(o,s)];const p=t.getCenterX(),m=t.getCenterY(),y=new T(p,m);return i&&(n.x<o||n.x>o+l?y.y=n.y:y.x=n.x),v.getPerimeterPoint(u,y,n)},ft.putValue("trapezoidPerimeter",Mt.TrapezoidPerimeter),Mt.StepPerimeter=function(t,e,n,i){const r="0"!=v.getValue(e.style,"fixedSize","0");let o=r?N.prototype.fixedSize:N.prototype.size;null!=e&&(o=v.getValue(e.style,"size",o));const s=t.x,l=t.y,a=t.width,h=t.height,u=t.getCenterX(),d=t.getCenterY(),c=null!=e?v.getValue(e.style,g.STYLE_DIRECTION,g.DIRECTION_EAST):g.DIRECTION_EAST;let p;if(c==g.DIRECTION_EAST){var m=r?Math.max(0,Math.min(a,o)):a*Math.max(0,Math.min(1,o));p=[new T(s,l),new T(s+a-m,l),new T(s+a,d),new T(s+a-m,l+h),new T(s,l+h),new T(s+m,d),new T(s,l)]}else if(c==g.DIRECTION_WEST)m=r?Math.max(0,Math.min(a,o)):a*Math.max(0,Math.min(1,o)),p=[new T(s+m,l),new T(s+a,l),new T(s+a-m,d),new T(s+a,l+h),new T(s+m,l+h),new T(s,d),new T(s+m,l)];else if(c==g.DIRECTION_NORTH){var x=r?Math.max(0,Math.min(h,o)):h*Math.max(0,Math.min(1,o));p=[new T(s,l+x),new T(u,l),new T(s+a,l+x),new T(s+a,l+h),new T(u,l+h-x),new T(s,l+h),new T(s,l+x)]}else x=r?Math.max(0,Math.min(h,o)):h*Math.max(0,Math.min(1,o)),p=[new T(s,l),new T(u,l+x),new T(s+a,l),new T(s+a,l+h-x),new T(u,l+h),new T(s,l+h-x),new T(s,l)];const y=new T(u,d);return i&&(n.x<s||n.x>s+a?y.y=n.y:y.x=n.x),v.getPerimeterPoint(p,y,n)},ft.putValue("stepPerimeter",Mt.StepPerimeter),Mt.HexagonPerimeter2=function(t,e,n,i){let r=P.prototype.size;null!=e&&(r=v.getValue(e.style,"size",r));const o=t.x,s=t.y,l=t.width,a=t.height,h=t.getCenterX(),u=t.getCenterY(),d=null!=e?v.getValue(e.style,g.STYLE_DIRECTION,g.DIRECTION_EAST):g.DIRECTION_EAST;let c;if(d==g.DIRECTION_NORTH||d==g.DIRECTION_SOUTH){const t=a*Math.max(0,Math.min(1,r));c=[new T(h,s),new T(o+l,s+t),new T(o+l,s+a-t),new T(h,s+a),new T(o,s+a-t),new T(o,s+t),new T(h,s)]}else{const t=l*Math.max(0,Math.min(1,r));c=[new T(o+t,s),new T(o+l-t,s),new T(o+l,u),new T(o+l-t,s+a),new T(o+t,s+a),new T(o,u),new T(o+t,s)]}const p=new T(h,u);return i&&(n.x<o||n.x>o+l?p.y=n.y:p.x=n.x),v.getPerimeterPoint(c,p,n)},ft.putValue("hexagonPerimeter2",Mt.HexagonPerimeter2),v.extend(q,U),q.prototype.size=10,q.prototype.paintBackground=function(t,e,n,i,r){const o=parseFloat(v.getValue(this.style,"size",this.size));t.translate(e,n),t.ellipse((i-o)/2,0,o,o),t.fillAndStroke(),t.begin(),t.moveTo(i/2,o),t.lineTo(i/2,r),t.end(),t.stroke()},W.registerShape("lollipop",q),v.extend(J,U),J.prototype.size=10,J.prototype.inset=2,J.prototype.paintBackground=function(t,e,n,i,r){const o=parseFloat(v.getValue(this.style,"size",this.size)),s=parseFloat(v.getValue(this.style,"inset",this.inset))+this.strokewidth;t.translate(e,n),t.begin(),t.moveTo(i/2,o+s),t.lineTo(i/2,r),t.end(),t.stroke(),t.begin(),t.moveTo((i-o)/2-s,o/2),t.quadTo((i-o)/2-s,o+s,i/2,o+s),t.quadTo((i+o)/2+s,o+s,(i+o)/2+s,o/2),t.end(),t.stroke()},W.registerShape("requires",J),v.extend(_,U),_.prototype.paintBackground=function(t,e,n,i,r){t.translate(e,n),t.begin(),t.moveTo(0,0),t.quadTo(i,0,i,r/2),t.quadTo(i,r,0,r),t.end(),t.stroke()},W.registerShape("requiredInterface",_),v.extend($,U),$.prototype.inset=2,$.prototype.paintBackground=function(t,e,n,i,r){const o=parseFloat(v.getValue(this.style,"inset",this.inset))+this.strokewidth;t.translate(e,n),t.ellipse(0,o,i-2*o,r-2*o),t.fillAndStroke(),t.begin(),t.moveTo(i/2,0),t.quadTo(i,0,i,r/2),t.quadTo(i,r,i/2,r),t.end(),t.stroke()},W.registerShape("providedRequiredInterface",$),v.extend(tt,Lt),tt.prototype.jettyWidth=20,tt.prototype.jettyHeight=10,tt.prototype.redrawPath=function(t,e,n,i,r,o){const s=parseFloat(v.getValue(this.style,"jettyWidth",this.jettyWidth)),l=parseFloat(v.getValue(this.style,"jettyHeight",this.jettyHeight)),a=s/2,h=a+s/2,u=Math.min(l,r-l),d=Math.min(u+2*l,r-l);o?(t.moveTo(a,u),t.lineTo(h,u),t.lineTo(h,u+l),t.lineTo(a,u+l),t.moveTo(a,d),t.lineTo(h,d),t.lineTo(h,d+l),t.lineTo(a,d+l),t.end()):(t.moveTo(a,0),t.lineTo(i,0),t.lineTo(i,r),t.lineTo(a,r),t.lineTo(a,d+l),t.lineTo(0,d+l),t.lineTo(0,d),t.lineTo(a,d),t.lineTo(a,u+l),t.lineTo(0,u+l),t.lineTo(0,u),t.lineTo(a,u),t.close(),t.end())},W.registerShape("module",tt),v.extend(et,Lt),et.prototype.jettyWidth=32,et.prototype.jettyHeight=12,et.prototype.redrawPath=function(t,e,n,i,r,o){const s=parseFloat(v.getValue(this.style,"jettyWidth",this.jettyWidth)),l=parseFloat(v.getValue(this.style,"jettyHeight",this.jettyHeight)),a=s/2,h=a+s/2,u=.3*r-l/2,d=.7*r-l/2;o?(t.moveTo(a,u),t.lineTo(h,u),t.lineTo(h,u+l),t.lineTo(a,u+l),t.moveTo(a,d),t.lineTo(h,d),t.lineTo(h,d+l),t.lineTo(a,d+l),t.end()):(t.moveTo(a,0),t.lineTo(i,0),t.lineTo(i,r),t.lineTo(a,r),t.lineTo(a,d+l),t.lineTo(0,d+l),t.lineTo(0,d),t.lineTo(a,d),t.lineTo(a,u+l),t.lineTo(0,u+l),t.lineTo(0,u),t.lineTo(a,u),t.close(),t.end())},W.registerShape("component",et),v.extend(it,D),it.prototype.paintForeground=function(t,e,n,i,r){const o=i/2,s=r/2,l=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;t.begin(),this.addPoints(t,[new T(e+o,n),new T(e+i,n+s),new T(e+o,n+r),new T(e,n+s)],this.isRounded,l,!0),t.stroke(),D.prototype.paintForeground.apply(this,arguments)},W.registerShape("associativeEntity",it),v.extend(rt,Ot),rt.prototype.outerStroke=!0,rt.prototype.paintVertexShape=function(t,e,n,i,r){const o=Math.min(4,Math.min(i/5,r/5));i>0&&r>0&&(t.ellipse(e+o,n+o,i-2*o,r-2*o),t.fillAndStroke()),t.setShadow(!1),this.outerStroke&&(t.ellipse(e,n,i,r),t.stroke())},W.registerShape("endState",rt),v.extend(st,rt),st.prototype.outerStroke=!1,W.registerShape("startState",st),v.extend(lt,Rt),lt.prototype.defaultWidth=4,lt.prototype.isOpenEnded=function(){return!0},lt.prototype.getEdgeWidth=function(){return v.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)},lt.prototype.isArrowRounded=function(){return this.isRounded},W.registerShape("link",lt),v.extend(at,Rt),at.prototype.defaultWidth=10,at.prototype.defaultArrowWidth=20,at.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+v.getNumber(this.style,"startWidth",this.defaultArrowWidth)},at.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+v.getNumber(this.style,"endWidth",this.defaultArrowWidth)},at.prototype.getEdgeWidth=function(){return v.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)},W.registerShape("flexArrow",at),v.extend(ut,bt),ut.prototype.size=30,ut.prototype.isRoundable=function(){return!0},ut.prototype.redrawPath=function(t,e,n,i,r){const o=Math.min(r,parseFloat(v.getValue(this.style,"size",this.size))),s=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(0,r),new T(0,o),new T(i,0),new T(i,r)],this.isRounded,s,!0),t.end()},W.registerShape("manualInput",ut),v.extend(ct,D),ct.prototype.dx=20,ct.prototype.dy=20,ct.prototype.isHtmlAllowed=function(){return!1},ct.prototype.paintForeground=function(t,e,n,i,r){D.prototype.paintForeground.apply(this,arguments);let o=0;if(this.isRounded){const t=v.getValue(this.style,g.STYLE_ARCSIZE,100*g.RECTANGLE_ROUNDING_FACTOR)/100;o=Math.max(o,Math.min(i*t,r*t))}const s=Math.max(o,Math.min(i,parseFloat(v.getValue(this.style,"dx",this.dx)))),l=Math.max(o,Math.min(r,parseFloat(v.getValue(this.style,"dy",this.dy))));t.begin(),t.moveTo(e,n+l),t.lineTo(e+i,n+l),t.end(),t.stroke(),t.begin(),t.moveTo(e+s,n),t.lineTo(e+s,n+r),t.end(),t.stroke()},W.registerShape("internalStorage",ct),v.extend(pt,bt),pt.prototype.dx=20,pt.prototype.dy=20,pt.prototype.redrawPath=function(t,e,n,i,r){const o=Math.max(0,Math.min(i,parseFloat(v.getValue(this.style,"dx",this.dx)))),s=Math.max(0,Math.min(r,parseFloat(v.getValue(this.style,"dy",this.dy)))),l=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(0,0),new T(i,0),new T(i,s),new T(o,s),new T(o,r),new T(0,r)],this.isRounded,l,!0),t.end()},W.registerShape("corner",pt),v.extend(xt,bt),xt.prototype.redrawPath=function(t,e,n,i,r){t.moveTo(0,0),t.lineTo(0,r),t.end(),t.moveTo(i,0),t.lineTo(i,r),t.end(),t.moveTo(0,r/2),t.lineTo(i,r/2),t.end()},W.registerShape("crossbar",xt),v.extend(At,bt),At.prototype.dx=20,At.prototype.dy=20,At.prototype.redrawPath=function(t,e,n,i,r){const o=Math.max(0,Math.min(i,parseFloat(v.getValue(this.style,"dx",this.dx)))),s=Math.max(0,Math.min(r,parseFloat(v.getValue(this.style,"dy",this.dy)))),l=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(0,0),new T(i,0),new T(i,s),new T((i+o)/2,s),new T((i+o)/2,r),new T((i-o)/2,r),new T((i-o)/2,s),new T(0,s)],this.isRounded,l,!0),t.end()},W.registerShape("tee",At),v.extend(Ct,bt),Ct.prototype.arrowWidth=.3,Ct.prototype.arrowSize=.2,Ct.prototype.redrawPath=function(t,e,n,i,r){const o=r*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"arrowWidth",this.arrowWidth)))),s=i*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"arrowSize",this.arrowSize)))),l=(r-o)/2,a=l+o,h=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(0,l),new T(i-s,l),new T(i-s,0),new T(i,r/2),new T(i-s,r),new T(i-s,a),new T(0,a)],this.isRounded,h,!0),t.end()},W.registerShape("singleArrow",Ct),v.extend(vt,bt),vt.prototype.redrawPath=function(t,e,n,i,r){const o=r*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"arrowWidth",Ct.prototype.arrowWidth)))),s=i*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"arrowSize",Ct.prototype.arrowSize)))),l=(r-o)/2,a=l+o,h=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(0,r/2),new T(s,0),new T(s,l),new T(i-s,l),new T(i-s,0),new T(i,r/2),new T(i-s,r),new T(i-s,a),new T(s,a),new T(s,r)],this.isRounded,h,!0),t.end()},W.registerShape("doubleArrow",vt),v.extend(Et,bt),Et.prototype.size=.1,Et.prototype.redrawPath=function(t,e,n,i,r){const o=i*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"size",this.size))));t.moveTo(o,0),t.lineTo(i,0),t.quadTo(i-2*o,r/2,i,r),t.lineTo(o,r),t.quadTo(o-2*o,r/2,o,0),t.close(),t.end()},W.registerShape("dataStorage",Et),v.extend(wt,bt),wt.prototype.redrawPath=function(t,e,n,i,r){t.moveTo(0,0),t.quadTo(i,0,i,r/2),t.quadTo(i,r,0,r),t.close(),t.end()},W.registerShape("or",wt),v.extend(St,bt),St.prototype.redrawPath=function(t,e,n,i,r){t.moveTo(0,0),t.quadTo(i,0,i,r/2),t.quadTo(i,r,0,r),t.quadTo(i/2,r/2,0,0),t.close(),t.end()},W.registerShape("xor",St),v.extend(Vt,bt),Vt.prototype.size=20,Vt.prototype.isRoundable=function(){return!0},Vt.prototype.redrawPath=function(t,e,n,i,r){const o=Math.min(i/2,Math.min(r,parseFloat(v.getValue(this.style,"size",this.size)))),s=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(o,0),new T(i-o,0),new T(i,.8*o),new T(i,r),new T(0,r),new T(0,.8*o)],this.isRounded,s,!0),t.end()},W.registerShape("loopLimit",Vt),v.extend(Ft,bt),Ft.prototype.size=3/8,Ft.prototype.isRoundable=function(){return!0},Ft.prototype.redrawPath=function(t,e,n,i,r){const o=r*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"size",this.size)))),s=v.getValue(this.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;this.addPoints(t,[new T(0,0),new T(i,0),new T(i,r-o),new T(i/2,r),new T(0,r-o)],this.isRounded,s,!0),t.end()},W.registerShape("offPageConnector",Ft),v.extend(zt,ot),zt.prototype.paintVertexShape=function(t,e,n,i,r){ot.prototype.paintVertexShape.apply(this,arguments),t.begin(),t.moveTo(e+i/2,n+r),t.lineTo(e+i,n+r),t.end(),t.stroke()},W.registerShape("tapeData",zt),v.extend(Yt,ot),Yt.prototype.paintVertexShape=function(t,e,n,i,r){ot.prototype.paintVertexShape.apply(this,arguments),t.setShadow(!1),t.begin(),t.moveTo(e,n+r/2),t.lineTo(e+i,n+r/2),t.end(),t.stroke(),t.begin(),t.moveTo(e+i/2,n),t.lineTo(e+i/2,n+r),t.end(),t.stroke()},W.registerShape("orEllipse",Yt),v.extend(Wt,ot),Wt.prototype.paintVertexShape=function(t,e,n,i,r){ot.prototype.paintVertexShape.apply(this,arguments);const o=.145;t.setShadow(!1),t.begin(),t.moveTo(e+i*o,n+r*o),t.lineTo(e+i*(1-o),n+r*(1-o)),t.end(),t.stroke(),t.begin(),t.moveTo(e+i*(1-o),n+r*o),t.lineTo(e+i*o,n+r*(1-o)),t.end(),t.stroke()},W.registerShape("sumEllipse",Wt),v.extend(jt,It),jt.prototype.paintVertexShape=function(t,e,n,i,r){It.prototype.paintVertexShape.apply(this,arguments),t.setShadow(!1),t.begin(),t.moveTo(e,n+r/2),t.lineTo(e+i,n+r/2),t.end(),t.stroke()},W.registerShape("sortShape",jt),v.extend(Qt,ot),Qt.prototype.paintVertexShape=function(t,e,n,i,r){t.begin(),t.moveTo(e,n),t.lineTo(e+i,n),t.lineTo(e+i/2,n+r/2),t.close(),t.fillAndStroke(),t.begin(),t.moveTo(e,n+r),t.lineTo(e+i,n+r),t.lineTo(e+i/2,n+r/2),t.close(),t.fillAndStroke()},W.registerShape("collate",Qt),v.extend(Zt,ot),Zt.prototype.paintVertexShape=function(t,e,n,i,r){const o=10,s=n+r-5;t.begin(),t.moveTo(e,n),t.lineTo(e,n+r),t.moveTo(e,s),t.lineTo(e+o,s-5),t.moveTo(e,s),t.lineTo(e+o,s+5),t.moveTo(e,s),t.lineTo(e+i,s),t.moveTo(e+i,n),t.lineTo(e+i,n+r),t.moveTo(e+i,s),t.lineTo(e+i-o,s-5),t.moveTo(e+i,s),t.lineTo(e+i-o,s+5),t.end(),t.stroke()},W.registerShape("dimension",Zt),v.extend(Xt,ot),Xt.prototype.paintVertexShape=function(t,e,n,i,r){this.outline||t.setStrokeColor(null),D.prototype.paintBackground.apply(this,arguments),null!=this.style&&(t.setStrokeColor(this.stroke),t.rect(e,n,i,r),t.fill(),t.begin(),t.moveTo(e,n),"1"==v.getValue(this.style,"top","1")?t.lineTo(e+i,n):t.moveTo(e+i,n),"1"==v.getValue(this.style,"right","1")?t.lineTo(e+i,n+r):t.moveTo(e+i,n+r),"1"==v.getValue(this.style,"bottom","1")?t.lineTo(e,n+r):t.moveTo(e,n+r),"1"==v.getValue(this.style,"left","1")&&t.lineTo(e,n),t.end(),t.stroke())},W.registerShape("partialRectangle",Xt),v.extend(Kt,ot),Kt.prototype.paintVertexShape=function(t,e,n,i,r){ot.prototype.paintVertexShape.apply(this,arguments),t.setShadow(!1),t.begin(),"vertical"==v.getValue(this.style,"line")?(t.moveTo(e+i/2,n),t.lineTo(e+i/2,n+r)):(t.moveTo(e,n+r/2),t.lineTo(e+i,n+r/2)),t.end(),t.stroke()},W.registerShape("lineEllipse",Kt),v.extend(qt,bt),qt.prototype.redrawPath=function(t,e,n,i,r){const o=Math.min(i,r/2);t.moveTo(0,0),t.lineTo(i-o,0),t.quadTo(i,0,i,r/2),t.quadTo(i,r,i-o,r),t.lineTo(0,r),t.close(),t.end()},W.registerShape("delay",qt),v.extend(Jt,bt),Jt.prototype.size=.2,Jt.prototype.redrawPath=function(t,e,n,i,r){const o=Math.min(r,i),s=Math.max(0,Math.min(o,o*parseFloat(v.getValue(this.style,"size",this.size)))),l=(r-s)/2,a=l+s,h=(i-s)/2,u=h+s;t.moveTo(0,l),t.lineTo(h,l),t.lineTo(h,0),t.lineTo(u,0),t.lineTo(u,l),t.lineTo(i,l),t.lineTo(i,a),t.lineTo(u,a),t.lineTo(u,r),t.lineTo(h,r),t.lineTo(h,a),t.lineTo(0,a),t.close(),t.end()},W.registerShape("cross",Jt),v.extend(_t,bt),_t.prototype.size=.25,_t.prototype.redrawPath=function(t,e,n,i,r){const o=Math.min(i,r/2),s=Math.min(i-o,Math.max(0,parseFloat(v.getValue(this.style,"size",this.size)))*i);t.moveTo(0,r/2),t.lineTo(s,0),t.lineTo(i-o,0),t.quadTo(i,0,i,r/2),t.quadTo(i,r,i-o,r),t.lineTo(s,r),t.close(),t.end()},W.registerShape("display",_t),v.extend($t,yt),$t.prototype.origPaintEdgeShape=$t.prototype.paintEdgeShape,$t.prototype.paintEdgeShape=function(t,e,n){const i=[];for(let s=0;s<e.length;s++)i.push(v.clone(e[s]));const r=t.state.dashed,o=t.state.fixDash;if($t.prototype.origPaintEdgeShape.apply(this,[t,i,n]),t.state.strokeWidth>=3){const i=v.getValue(this.style,"fillColor",null);null!=i&&(t.setStrokeColor(i),t.setStrokeWidth(t.state.strokeWidth-2),t.setDashed(r,o),$t.prototype.origPaintEdgeShape.apply(this,[t,e,n]))}},W.registerShape("filledEdge",$t),function(){const t=Ae.prototype.getCustomColors;Ae.prototype.getCustomColors=function(){const e=this.format.getSelectionState(),n=t.apply(this,arguments);return"umlFrame"==e.style.shape&&n.push({title:f.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"}),n}}(),Tt.addMarker("dash",(function(t,e,n,i,r,o,s,l,a){const h=r*(s+a+1),u=o*(s+a+1);return function(){t.begin(),t.moveTo(i.x-h/2-u/2,i.y-u/2+h/2),t.lineTo(i.x+u/2-3*h/2,i.y-3*u/2-h/2),t.stroke()}})),Tt.addMarker("box",(function(t,e,n,i,r,o,s,l,a,h){const u=r*(s+a+1),d=o*(s+a+1),c=i.x+u/2,p=i.y+d/2;return i.x-=u,i.y-=d,function(){t.begin(),t.moveTo(c-u/2-d/2,p-d/2+u/2),t.lineTo(c-u/2+d/2,p-d/2-u/2),t.lineTo(c+d/2-3*u/2,p-3*d/2-u/2),t.lineTo(c-d/2-3*u/2,p-3*d/2+u/2),t.close(),h?t.fillAndStroke():t.stroke()}})),Tt.addMarker("cross",(function(t,e,n,i,r,o,s,l,a){const h=r*(s+a+1),u=o*(s+a+1);return function(){t.begin(),t.moveTo(i.x-h/2-u/2,i.y-u/2+h/2),t.lineTo(i.x+u/2-3*h/2,i.y-3*u/2-h/2),t.moveTo(i.x-h/2+u/2,i.y-u/2-h/2),t.lineTo(i.x-u/2-3*h/2,i.y-3*u/2+h/2),t.stroke()}})),Tt.addMarker("circle",ee),Tt.addMarker("circlePlus",(function(t,e,n,i,r,o,s,l,a){const h=i.clone(),u=ee.apply(this,arguments),d=r*(s+2*a),c=o*(s+2*a);return function(){u.apply(this,arguments),t.begin(),t.moveTo(h.x-r*a,h.y-o*a),t.lineTo(h.x-2*d+r*a,h.y-2*c+o*a),t.moveTo(h.x-d-c+o*a,h.y-c+d-r*a),t.lineTo(h.x+c-d-o*a,h.y-c-d+r*a),t.stroke()}})),Tt.addMarker("halfCircle",(function(t,e,n,i,r,o,s,l,a){const h=r*(s+a+1),u=o*(s+a+1),d=i.clone();return i.x-=h,i.y-=u,function(){t.begin(),t.moveTo(d.x-u,d.y+h),t.quadTo(i.x-u,i.y+h,i.x,i.y),t.quadTo(i.x+u,i.y-h,d.x+u,d.y-h),t.stroke()}})),Tt.addMarker("async",(function(t,e,n,i,r,o,s,l,a,h){const u=r*a*1.118,d=o*a*1.118;r*=s+a,o*=s+a;const c=i.clone();return c.x-=u,c.y-=d,i.x+=1*-r-u,i.y+=1*-o-d,function(){t.begin(),t.moveTo(c.x,c.y),l?t.lineTo(c.x-r-o/2,c.y-o+r/2):t.lineTo(c.x+o/2-r,c.y-o-r/2),t.lineTo(c.x-r,c.y-o),t.close(),h?t.fillAndStroke():t.stroke()}})),Tt.addMarker("openAsync",(ne=null!=(ne=2)?ne:2,function(t,e,n,i,r,o,s,l,a){r*=s+a,o*=s+a;const h=i.clone();return function(){t.begin(),t.moveTo(h.x,h.y),l?t.lineTo(h.x-r-o/ne,h.y-o+r/ne):t.lineTo(h.x+o/ne-r,h.y-o-r/ne),t.stroke()}})),void 0!==dt){function ce(t,e,n,i,r,o,s){const l=new Ht(t,null,dt.prototype.secondaryHandleImage);if(l.execute=function(t){for(let n=0;n<e.length;n++)this.copyStyle(e[n]);s&&s(t)},l.getPosition=n,l.setPosition=i,l.ignoreGrid=null==r||r,o){const e=l.positionChanged;l.positionChanged=function(){e.apply(this,arguments),t.view.invalidate(this.state.cell),t.view.validate()}}return l}function pe(t,e){return ce(t,[g.STYLE_ARCSIZE],(function(n){const i=null!=e?e:n.height/8;if("1"==v.getValue(t.style,g.STYLE_ABSOLUTE_ARCSIZE,0)){var r=v.getValue(t.style,g.STYLE_ARCSIZE,g.LINE_ARCSIZE)/2;return new T(n.x+n.width-Math.min(n.width/2,r),n.y+i)}return r=Math.max(0,parseFloat(v.getValue(t.style,g.STYLE_ARCSIZE,100*g.RECTANGLE_ROUNDING_FACTOR)))/100,new T(n.x+n.width-Math.min(Math.max(n.width/2,n.height/2),Math.min(n.width,n.height)*r),n.y+i)}),(function(e,n){if("1"==v.getValue(t.style,g.STYLE_ABSOLUTE_ARCSIZE,0))this.state.style[g.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(e.width,2*(e.x+e.width-n.x))));else{const t=Math.min(50,Math.max(0,100*(e.width-n.x+e.x)/Math.min(e.width,e.height)));this.state.style[g.STYLE_ARCSIZE]=Math.round(t)}}))}function ge(){return function(t){const e=[];return v.getValue(t.style,g.STYLE_ROUNDED,!1)&&e.push(pe(t)),e}}function me(t){return function(e){const n=[ce(e,["size"],(function(e){const n=Math.max(0,Math.min(t,parseFloat(v.getValue(this.state.style,"size",x.prototype.size))));return new T(e.x+n*e.width*.75,e.y+e.height/4)}),(function(e,n){this.state.style.size=Math.max(0,Math.min(t,(n.x-e.x)/(.75*e.width)))}),!1,!0)];return v.getValue(e.style,g.STYLE_ROUNDED,!1)&&n.push(pe(e)),n}}function xe(t,e,n,i,r){return n=null!=n?n:1,function(o){const s=[ce(o,["size"],(function(e){const n=null!=r?"0"!=v.getValue(this.state.style,"fixedSize","0"):null,i=parseFloat(v.getValue(this.state.style,"size",n?r:t));return new T(e.x+Math.max(0,Math.min(e.width,i*(n?1:e.width))),e.getCenterY())}),(function(t,e){const i=null!=r&&"0"!=v.getValue(this.state.style,"fixedSize","0")?e.x-t.x:Math.max(0,Math.min(n,(e.x-t.x)/t.width));this.state.style.size=i}),!1,i)];return e&&v.getValue(o.style,g.STYLE_ROUNDED,!1)&&s.push(pe(o)),s}}function ye(t,e,n){return function(i){const r=[ce(i,["size"],(function(n){const i=Math.max(0,Math.min(n.width,Math.min(n.height,parseFloat(v.getValue(this.state.style,"size",e)))))*t;return new T(n.x+i,n.y+i)}),(function(e,n){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(e.width,n.x-e.x),Math.min(e.height,n.y-e.y)))/t)}),!1)];return n&&v.getValue(i.style,g.STYLE_ROUNDED,!1)&&r.push(pe(i)),r}}function fe(t){return function(e){return[ce(e,["arrowWidth","arrowSize"],(function(e){const n=Math.max(0,Math.min(1,v.getValue(this.state.style,"arrowWidth",Ct.prototype.arrowWidth))),i=Math.max(0,Math.min(t,v.getValue(this.state.style,"arrowSize",Ct.prototype.arrowSize)));return new T(e.x+(1-i)*e.width,e.y+(1-n)*e.height/2)}),(function(e,n){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(e.y+e.height/2-n.y)/e.height*2)),this.state.style.arrowSize=Math.max(0,Math.min(t,(e.x+e.width-n.x)/e.width))}))]}}function Ce(t,e,n,i,r){return ce(t,e,(function(){const e=t.absolutePoints,r=e.length-1,o=t.view.translate,s=t.view.scale,l=n?e[0]:e[r],a=n?e[1]:e[r-1],h=a.x-l.x,u=a.y-l.y,d=Math.sqrt(h*h+u*u),c=i.call(this,d,h/d,u/d,l,a);return new T(c.x/s-o.x,c.y/s-o.y)}),(function(e,i,o){const s=t.absolutePoints,l=s.length-1,a=t.view.translate,h=t.view.scale,u=n?s[0]:s[l],d=n?s[1]:s[l-1],c=d.x-u.x,p=d.y-u.y,g=Math.sqrt(c*c+p*p);i.x=(i.x+a.x)*h,i.y=(i.y+a.y)*h,r.call(this,g,c/g,p/g,u,d,i,o)}))}function ve(t,e,n){return Ce(t,["width"],e,(function(e,i,r,o){const s=t.shape.getEdgeWidth()*t.view.scale+n;return new T(o.x+i*e/4+r*s/2,o.y+r*e/4-i*s/2)}),(function(e,i,r,o,s,l){const a=Math.sqrt(v.ptSegDistSq(o.x,o.y,s.x,s.y,l.x,l.y));t.style.width=Math.round(2*a)/t.view.scale-n}))}const Ee={link:function(t){return[ve(t,!0,10),ve(t,!1,10)]},flexArrow:function(t){const e=t.view.graph.gridSize/t.view.scale,n=[];return v.getValue(t.style,g.STYLE_STARTARROW,g.NONE)!=g.NONE&&(n.push(Ce(t,["width",g.STYLE_STARTSIZE,g.STYLE_ENDSIZE],!0,(function(e,n,i,r){const o=(t.shape.getEdgeWidth()-t.shape.strokewidth)*t.view.scale,s=3*v.getNumber(t.style,g.STYLE_STARTSIZE,g.ARROW_SIZE/5)*t.view.scale;return new T(r.x+n*(s+t.shape.strokewidth*t.view.scale)+i*o/2,r.y+i*(s+t.shape.strokewidth*t.view.scale)-n*o/2)}),(function(n,i,r,o,s,l,a){const h=Math.sqrt(v.ptSegDistSq(o.x,o.y,s.x,s.y,l.x,l.y)),u=v.ptLineDist(o.x,o.y,o.x+r,o.y-i,l.x,l.y);t.style[g.STYLE_STARTSIZE]=Math.round(100*(u-t.shape.strokewidth)/3)/100/t.view.scale,t.style.width=Math.round(2*h)/t.view.scale,C.isControlDown(a.getEvent())&&(t.style[g.STYLE_ENDSIZE]=t.style[g.STYLE_STARTSIZE]),C.isAltDown(a.getEvent())||Math.abs(parseFloat(t.style[g.STYLE_STARTSIZE])-parseFloat(t.style[g.STYLE_ENDSIZE]))<e/6&&(t.style[g.STYLE_STARTSIZE]=t.style[g.STYLE_ENDSIZE])}))),n.push(Ce(t,["startWidth","endWidth",g.STYLE_STARTSIZE,g.STYLE_ENDSIZE],!0,(function(e,n,i,r){const o=(t.shape.getStartArrowWidth()-t.shape.strokewidth)*t.view.scale,s=3*v.getNumber(t.style,g.STYLE_STARTSIZE,g.ARROW_SIZE/5)*t.view.scale;return new T(r.x+n*(s+t.shape.strokewidth*t.view.scale)+i*o/2,r.y+i*(s+t.shape.strokewidth*t.view.scale)-n*o/2)}),(function(n,i,r,o,s,l,a){const h=Math.sqrt(v.ptSegDistSq(o.x,o.y,s.x,s.y,l.x,l.y)),u=v.ptLineDist(o.x,o.y,o.x+r,o.y-i,l.x,l.y);t.style[g.STYLE_STARTSIZE]=Math.round(100*(u-t.shape.strokewidth)/3)/100/t.view.scale,t.style.startWidth=Math.max(0,Math.round(2*h)-t.shape.getEdgeWidth())/t.view.scale,C.isControlDown(a.getEvent())&&(t.style[g.STYLE_ENDSIZE]=t.style[g.STYLE_STARTSIZE],t.style.endWidth=t.style.startWidth),C.isAltDown(a.getEvent())||(Math.abs(parseFloat(t.style[g.STYLE_STARTSIZE])-parseFloat(t.style[g.STYLE_ENDSIZE]))<e/6&&(t.style[g.STYLE_STARTSIZE]=t.style[g.STYLE_ENDSIZE]),Math.abs(parseFloat(t.style.startWidth)-parseFloat(t.style.endWidth))<e&&(t.style.startWidth=t.style.endWidth))})))),v.getValue(t.style,g.STYLE_ENDARROW,g.NONE)!=g.NONE&&(n.push(Ce(t,["width",g.STYLE_STARTSIZE,g.STYLE_ENDSIZE],!1,(function(e,n,i,r){const o=(t.shape.getEdgeWidth()-t.shape.strokewidth)*t.view.scale,s=3*v.getNumber(t.style,g.STYLE_ENDSIZE,g.ARROW_SIZE/5)*t.view.scale;return new T(r.x+n*(s+t.shape.strokewidth*t.view.scale)-i*o/2,r.y+i*(s+t.shape.strokewidth*t.view.scale)+n*o/2)}),(function(n,i,r,o,s,l,a){const h=Math.sqrt(v.ptSegDistSq(o.x,o.y,s.x,s.y,l.x,l.y)),u=v.ptLineDist(o.x,o.y,o.x+r,o.y-i,l.x,l.y);t.style[g.STYLE_ENDSIZE]=Math.round(100*(u-t.shape.strokewidth)/3)/100/t.view.scale,t.style.width=Math.round(2*h)/t.view.scale,C.isControlDown(a.getEvent())&&(t.style[g.STYLE_STARTSIZE]=t.style[g.STYLE_ENDSIZE]),C.isAltDown(a.getEvent())||Math.abs(parseFloat(t.style[g.STYLE_ENDSIZE])-parseFloat(t.style[g.STYLE_STARTSIZE]))<e/6&&(t.style[g.STYLE_ENDSIZE]=t.style[g.STYLE_STARTSIZE])}))),n.push(Ce(t,["startWidth","endWidth",g.STYLE_STARTSIZE,g.STYLE_ENDSIZE],!1,(function(e,n,i,r){const o=(t.shape.getEndArrowWidth()-t.shape.strokewidth)*t.view.scale,s=3*v.getNumber(t.style,g.STYLE_ENDSIZE,g.ARROW_SIZE/5)*t.view.scale;return new T(r.x+n*(s+t.shape.strokewidth*t.view.scale)-i*o/2,r.y+i*(s+t.shape.strokewidth*t.view.scale)+n*o/2)}),(function(n,i,r,o,s,l,a){const h=Math.sqrt(v.ptSegDistSq(o.x,o.y,s.x,s.y,l.x,l.y)),u=v.ptLineDist(o.x,o.y,o.x+r,o.y-i,l.x,l.y);t.style[g.STYLE_ENDSIZE]=Math.round(100*(u-t.shape.strokewidth)/3)/100/t.view.scale,t.style.endWidth=Math.max(0,Math.round(2*h)-t.shape.getEdgeWidth())/t.view.scale,C.isControlDown(a.getEvent())&&(t.style[g.STYLE_STARTSIZE]=t.style[g.STYLE_ENDSIZE],t.style.startWidth=t.style.endWidth),C.isAltDown(a.getEvent())||(Math.abs(parseFloat(t.style[g.STYLE_ENDSIZE])-parseFloat(t.style[g.STYLE_STARTSIZE]))<e/6&&(t.style[g.STYLE_ENDSIZE]=t.style[g.STYLE_STARTSIZE]),Math.abs(parseFloat(t.style.endWidth)-parseFloat(t.style.startWidth))<e&&(t.style.endWidth=t.style.startWidth))})))),n},swimlane:function(t){const e=[];if(v.getValue(t.style,g.STYLE_ROUNDED)){const n=parseFloat(v.getValue(t.style,g.STYLE_STARTSIZE,g.DEFAULT_STARTSIZE));e.push(pe(t,n/2))}return e.push(ce(t,[g.STYLE_STARTSIZE],(function(e){const n=parseFloat(v.getValue(t.style,g.STYLE_STARTSIZE,g.DEFAULT_STARTSIZE));return 1==v.getValue(t.style,g.STYLE_HORIZONTAL,1)?new T(e.getCenterX(),e.y+Math.max(0,Math.min(e.height,n))):new T(e.x+Math.max(0,Math.min(e.width,n)),e.getCenterY())}),(function(e,n){t.style[g.STYLE_STARTSIZE]=1==v.getValue(this.state.style,g.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(e.height,n.y-e.y))):Math.round(Math.max(0,Math.min(e.width,n.x-e.x)))}),!1,null,(function(e){if(C.isShiftDown(e.getEvent())){const e=t.view.graph;if(e.isTableRow(t.cell)||e.isTableCell(t.cell)){const n=e.getSwimlaneDirection(t.style),i=e.model.getParent(t.cell),r=e.model.getChildCells(i,!0),o=[];for(let s=0;s<r.length;s++)r[s]!=t.cell&&e.isSwimlane(r[s])&&e.getSwimlaneDirection(e.getCurrentCellStyle(r[s]))==n&&o.push(r[s]);e.setCellStyles(g.STYLE_STARTSIZE,t.style[g.STYLE_STARTSIZE],o)}}}))),e},label:ge(),ext:ge(),rectangle:ge(),triangle:ge(),rhombus:ge(),umlLifeline:function(t){return[ce(t,["size"],(function(t){const e=Math.max(0,Math.min(t.height,parseFloat(v.getValue(this.state.style,"size",X.prototype.size))));return new T(t.getCenterX(),t.y+e)}),(function(t,e){this.state.style.size=Math.round(Math.max(0,Math.min(t.height,e.y-t.y)))}),!1)]},umlFrame:function(t){return[ce(t,["width","height"],(function(t){const e=Math.max(K.prototype.corner,Math.min(t.width,v.getValue(this.state.style,"width",K.prototype.width))),n=Math.max(1.5*K.prototype.corner,Math.min(t.height,v.getValue(this.state.style,"height",K.prototype.height)));return new T(t.x+e,t.y+n)}),(function(t,e){this.state.style.width=Math.round(Math.max(K.prototype.corner,Math.min(t.width,e.x-t.x))),this.state.style.height=Math.round(Math.max(1.5*K.prototype.corner,Math.min(t.height,e.y-t.y)))}),!1)]},process:function(t){const e=[ce(t,["size"],(function(t){const e=Math.max(0,Math.min(.5,parseFloat(v.getValue(this.state.style,"size",M.prototype.size))));return new T(t.x+t.width*e,t.y+t.height/4)}),(function(t,e){this.state.style.size=Math.max(0,Math.min(.5,(e.x-t.x)/t.width))}),!1)];return v.getValue(t.style,g.STYLE_ROUNDED,!1)&&e.push(pe(t)),e},cross:function(t){return[ce(t,["size"],(function(t){const e=Math.min(t.width,t.height),n=Math.max(0,Math.min(1,v.getValue(this.state.style,"size",Jt.prototype.size)))*e/2;return new T(t.getCenterX()-n,t.getCenterY()-n)}),(function(t,e){const n=Math.min(t.width,t.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,t.getCenterY()-e.y)/n*2,Math.max(0,t.getCenterX()-e.x)/n*2)))}))]},note:function(t){return[ce(t,["size"],(function(t){const e=Math.max(0,Math.min(t.width,Math.min(t.height,parseFloat(v.getValue(this.state.style,"size",l.prototype.size)))));return new T(t.x+t.width-e,t.y+e)}),(function(t,e){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(t.width,t.x+t.width-e.x),Math.min(t.height,e.y-t.y))))}))]},manualInput:function(t){const e=[ce(t,["size"],(function(t){const e=Math.max(0,Math.min(t.height,v.getValue(this.state.style,"size",ut.prototype.size)));return new T(t.x+t.width/4,t.y+3*e/4)}),(function(t,e){this.state.style.size=Math.round(Math.max(0,Math.min(t.height,4*(e.y-t.y)/3)))}),!1)];return v.getValue(t.style,g.STYLE_ROUNDED,!1)&&e.push(pe(t)),e},dataStorage:function(t){return[ce(t,["size"],(function(t){const e=Math.max(0,Math.min(1,parseFloat(v.getValue(this.state.style,"size",Et.prototype.size))));return new T(t.x+(1-e)*t.width,t.getCenterY())}),(function(t,e){this.state.style.size=Math.max(0,Math.min(1,(t.x+t.width-e.x)/t.width))}),!1)]},callout:function(t){const e=[ce(t,["size","position"],(function(t){const e=Math.max(0,Math.min(t.height,v.getValue(this.state.style,"size",O.prototype.size))),n=Math.max(0,Math.min(1,v.getValue(this.state.style,"position",O.prototype.position)));return new T(t.x+n*t.width,t.y+t.height-e)}),(function(t,e){this.state.style.size=Math.round(Math.max(0,Math.min(t.height,t.y+t.height-e.y))),this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(e.x-t.x)/t.width)))/100}),!1),ce(t,["position2"],(function(t){const e=Math.max(0,Math.min(1,v.getValue(this.state.style,"position2",O.prototype.position2)));return new T(t.x+e*t.width,t.y+t.height)}),(function(t,e){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(e.x-t.x)/t.width)))/100}),!1),ce(t,["base"],(function(t){const e=Math.max(0,Math.min(t.height,v.getValue(this.state.style,"size",O.prototype.size))),n=Math.max(0,Math.min(1,v.getValue(this.state.style,"position",O.prototype.position))),i=Math.max(0,Math.min(t.width,v.getValue(this.state.style,"base",O.prototype.base)));return new T(t.x+Math.min(t.width,n*t.width+i),t.y+t.height-e)}),(function(t,e){const n=Math.max(0,Math.min(1,v.getValue(this.state.style,"position",O.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(t.width,e.x-t.x-n*t.width)))}),!1)];return v.getValue(t.style,g.STYLE_ROUNDED,!1)&&e.push(pe(t)),e},internalStorage:function(t){const e=[ce(t,["dx","dy"],(function(t){const e=Math.max(0,Math.min(t.width,v.getValue(this.state.style,"dx",ct.prototype.dx))),n=Math.max(0,Math.min(t.height,v.getValue(this.state.style,"dy",ct.prototype.dy)));return new T(t.x+e,t.y+n)}),(function(t,e){this.state.style.dx=Math.round(Math.max(0,Math.min(t.width,e.x-t.x))),this.state.style.dy=Math.round(Math.max(0,Math.min(t.height,e.y-t.y)))}),!1)];return v.getValue(t.style,g.STYLE_ROUNDED,!1)&&e.push(pe(t)),e},module:function(t){return[ce(t,["jettyWidth","jettyHeight"],(function(t){const e=Math.max(0,Math.min(t.width,v.getValue(this.state.style,"jettyWidth",tt.prototype.jettyWidth))),n=Math.max(0,Math.min(t.height,v.getValue(this.state.style,"jettyHeight",tt.prototype.jettyHeight)));return new T(t.x+e/2,t.y+2*n)}),(function(t,e){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(t.width,e.x-t.x))),this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(t.height,e.y-t.y))/2)}))]},corner:function(t){return[ce(t,["dx","dy"],(function(t){const e=Math.max(0,Math.min(t.width,v.getValue(this.state.style,"dx",pt.prototype.dx))),n=Math.max(0,Math.min(t.height,v.getValue(this.state.style,"dy",pt.prototype.dy)));return new T(t.x+e,t.y+n)}),(function(t,e){this.state.style.dx=Math.round(Math.max(0,Math.min(t.width,e.x-t.x))),this.state.style.dy=Math.round(Math.max(0,Math.min(t.height,e.y-t.y)))}),!1)]},tee:function(t){return[ce(t,["dx","dy"],(function(t){const e=Math.max(0,Math.min(t.width,v.getValue(this.state.style,"dx",At.prototype.dx))),n=Math.max(0,Math.min(t.height,v.getValue(this.state.style,"dy",At.prototype.dy)));return new T(t.x+(t.width+e)/2,t.y+n)}),(function(t,e){this.state.style.dx=Math.round(Math.max(0,2*Math.min(t.width/2,e.x-t.x-t.width/2))),this.state.style.dy=Math.round(Math.max(0,Math.min(t.height,e.y-t.y)))}),!1)]},singleArrow:fe(1),doubleArrow:fe(.5),folder:function(t){return[ce(t,["tabWidth","tabHeight"],(function(t){let e=Math.max(0,Math.min(t.width,v.getValue(this.state.style,"tabWidth",h.prototype.tabWidth)));const n=Math.max(0,Math.min(t.height,v.getValue(this.state.style,"tabHeight",h.prototype.tabHeight)));return v.getValue(this.state.style,"tabPosition",h.prototype.tabPosition)==g.ALIGN_RIGHT&&(e=t.width-e),new T(t.x+e,t.y+n)}),(function(t,e){let n=Math.max(0,Math.min(t.width,e.x-t.x));v.getValue(this.state.style,"tabPosition",h.prototype.tabPosition)==g.ALIGN_RIGHT&&(n=t.width-n),this.state.style.tabWidth=Math.round(n),this.state.style.tabHeight=Math.round(Math.max(0,Math.min(t.height,e.y-t.y)))}),!1)]},document:function(t){return[ce(t,["size"],(function(t){const e=Math.max(0,Math.min(1,parseFloat(v.getValue(this.state.style,"size",c.prototype.size))));return new T(t.x+3*t.width/4,t.y+(1-e)*t.height)}),(function(t,e){this.state.style.size=Math.max(0,Math.min(1,(t.y+t.height-e.y)/t.height))}),!1)]},tape:function(t){return[ce(t,["size"],(function(t){const e=Math.max(0,Math.min(1,parseFloat(v.getValue(this.state.style,"size",d.prototype.size))));return new T(t.getCenterX(),t.y+e*t.height/2)}),(function(t,e){this.state.style.size=Math.max(0,Math.min(1,(e.y-t.y)/t.height*2))}),!1)]},offPageConnector:function(t){return[ce(t,["size"],(function(t){const e=Math.max(0,Math.min(1,parseFloat(v.getValue(this.state.style,"size",Ft.prototype.size))));return new T(t.getCenterX(),t.y+(1-e)*t.height)}),(function(t,e){this.state.style.size=Math.max(0,Math.min(1,(t.y+t.height-e.y)/t.height))}),!1)]},step:xe(N.prototype.size,!0,null,!0,N.prototype.fixedSize),hexagon:xe(P.prototype.size,!0,.5,!0),curlyBracket:xe(y.prototype.size,!1),display:xe(_t.prototype.size,!1),cube:ye(1,e.prototype.size,!1),card:ye(.5,u.prototype.size,!0),loopLimit:ye(.5,Vt.prototype.size,!0),trapezoid:me(.5),parallelogram:me(1)};te.createHandle=ce,te.handleFactory=Ee;const we=dt.prototype.createCustomHandles;dt.prototype.createCustomHandles=function(){let t=we.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){let e=this.state.style.shape;null==W.defaultShapes[e]&&null==nt.getStencil(e)?e=g.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(e=g.SHAPE_SWIMLANE);let n=Ee[e];if(null==n&&null!=this.state.shape&&this.state.shape.isRoundable()&&(n=Ee[g.SHAPE_RECTANGLE]),null!=n){const e=n(this.state);null!=e&&(t=null==t?e:t.concat(e))}}return t},Y.prototype.createCustomHandles=function(){let t=this.state.style.shape;null==W.defaultShapes[t]&&null==nt.getStencil(t)&&(t=g.SHAPE_CONNECTOR);const e=Ee[t];return null!=e?e(this.state):null}}else te.createHandle=function(){},te.handleFactory={};let ie=new T(1,0),re=new T(1,0);const oe=v.toRadians(-30),se=Math.cos(oe),le=Math.sin(oe);ie=v.getRotatedPoint(ie,se,le);const ae=v.toRadians(-150),he=Math.cos(ae),ue=Math.sin(ae);re=v.getRotatedPoint(re,he,ue),V.IsometricConnector=function(t,e,n,i,r){const o=t.view;let s=null!=i&&i.length>0?i[0]:null;const l=t.absolutePoints;let a=l[0],h=l[l.length-1];null!=s&&(s=o.transformControlPoint(t,s)),null==a&&null!=e&&(a=new T(e.getCenterX(),e.getCenterY())),null==h&&null!=n&&(h=new T(n.getCenterX(),n.getCenterY()));const u=ie.x,d=ie.y,c=re.x,p=re.y,g="horizontal"==v.getValue(t.style,"elbow","horizontal");if(null!=h&&null!=a){let m=a;function x(t,e,n){const i=t-m.x,o=e-m.y,s=(p*i-c*o)/(u*p-d*c),l=(d*i-u*o)/(d*c-u*p);g?(n&&(m=new T(m.x+u*s,m.y+d*s),r.push(m)),m=new T(m.x+c*l,m.y+p*l),r.push(m)):(n&&(m=new T(m.x+c*l,m.y+p*l),r.push(m)),m=new T(m.x+u*s,m.y+d*s),r.push(m))}null==s&&(s=new T(a.x+(h.x-a.x)/2,a.y+(h.y-a.y)/2)),x(s.x,s.y,!0),x(h.x,h.y,!1)}},ft.putValue("isometricEdgeStyle",V.IsometricConnector);const de=te.prototype.createEdgeHandler;te.prototype.createEdgeHandler=function(t,e){if(e==V.IsometricConnector){const e=new gt(t);return e.snapToTerminals=!1,e}return de.apply(this,arguments)},r.prototype.constraints=[],o.prototype.getConstraints=function(t,e,n){const i=[],r=Math.tan(v.toRadians(30)),o=(.5-r)/2,s=Math.min(e,n/(.5+r)),l=(e-s)/2,a=(n-s)/2;return i.push(new ht(new T(0,0),!1,null,l,a+.25*s)),i.push(new ht(new T(0,0),!1,null,l+.5*s,a+s*o)),i.push(new ht(new T(0,0),!1,null,l+s,a+.25*s)),i.push(new ht(new T(0,0),!1,null,l+s,a+.75*s)),i.push(new ht(new T(0,0),!1,null,l+.5*s,a+(1-o)*s)),i.push(new ht(new T(0,0),!1,null,l,a+.75*s)),i},O.prototype.getConstraints=function(t,e,n){const i=[],r=Math.max(0,Math.min(n,parseFloat(v.getValue(this.style,"size",this.size)))),o=e*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"position2",this.position2))));return i.push(new ht(new T(0,0),!1)),i.push(new ht(new T(.25,0),!1)),i.push(new ht(new T(.5,0),!1)),i.push(new ht(new T(.75,0),!1)),i.push(new ht(new T(1,0),!1)),i.push(new ht(new T(0,0),!1,null,e,.5*(n-r))),i.push(new ht(new T(0,0),!1,null,e,n-r)),i.push(new ht(new T(0,0),!1,null,o,n)),i.push(new ht(new T(0,0),!1,null,0,n-r)),i.push(new ht(new T(0,0),!1,null,0,.5*(n-r))),e>=2*r&&i.push(new ht(new T(.5,0),!1)),i},D.prototype.constraints=[new ht(new T(0,0),!0),new ht(new T(.25,0),!0),new ht(new T(.5,0),!0),new ht(new T(.75,0),!0),new ht(new T(1,0),!0),new ht(new T(0,.25),!0),new ht(new T(0,.5),!0),new ht(new T(0,.75),!0),new ht(new T(1,.25),!0),new ht(new T(1,.5),!0),new ht(new T(1,.75),!0),new ht(new T(0,1),!0),new ht(new T(.25,1),!0),new ht(new T(.5,1),!0),new ht(new T(.75,1),!0),new ht(new T(1,1),!0)],ot.prototype.constraints=[new ht(new T(0,0),!0),new ht(new T(1,0),!0),new ht(new T(0,1),!0),new ht(new T(1,1),!0),new ht(new T(.5,0),!0),new ht(new T(.5,1),!0),new ht(new T(0,.5),!0),new ht(new T(1,.5))],Pt.prototype.constraints=D.prototype.constraints,mt.prototype.constraints=D.prototype.constraints,Dt.prototype.constraints=D.prototype.constraints,H.prototype.constraints=D.prototype.constraints,l.prototype.getConstraints=function(t,e,n){const i=[],r=Math.max(0,Math.min(e,Math.min(n,parseFloat(v.getValue(this.style,"size",this.size)))));return i.push(new ht(new T(0,0),!1)),i.push(new ht(new T(0,0),!1,null,.5*(e-r),0)),i.push(new ht(new T(0,0),!1,null,e-r,0)),i.push(new ht(new T(0,0),!1,null,e-.5*r,.5*r)),i.push(new ht(new T(0,0),!1,null,e,r)),i.push(new ht(new T(0,0),!1,null,e,.5*(n+r))),i.push(new ht(new T(1,1),!1)),i.push(new ht(new T(.5,1),!1)),i.push(new ht(new T(0,1),!1)),i.push(new ht(new T(0,.5),!1)),e>=2*r&&i.push(new ht(new T(.5,0),!1)),i},u.prototype.getConstraints=function(t,e,n){const i=[],r=Math.max(0,Math.min(e,Math.min(n,parseFloat(v.getValue(this.style,"size",this.size)))));return i.push(new ht(new T(1,0),!1)),i.push(new ht(new T(0,0),!1,null,.5*(e+r),0)),i.push(new ht(new T(0,0),!1,null,r,0)),i.push(new ht(new T(0,0),!1,null,.5*r,.5*r)),i.push(new ht(new T(0,0),!1,null,0,r)),i.push(new ht(new T(0,0),!1,null,0,.5*(n+r))),i.push(new ht(new T(0,1),!1)),i.push(new ht(new T(.5,1),!1)),i.push(new ht(new T(1,1),!1)),i.push(new ht(new T(1,.5),!1)),e>=2*r&&i.push(new ht(new T(.5,0),!1)),i},e.prototype.getConstraints=function(t,e,n){const i=[],r=Math.max(0,Math.min(e,Math.min(n,parseFloat(v.getValue(this.style,"size",this.size)))));return i.push(new ht(new T(0,0),!1)),i.push(new ht(new T(0,0),!1,null,.5*(e-r),0)),i.push(new ht(new T(0,0),!1,null,e-r,0)),i.push(new ht(new T(0,0),!1,null,e-.5*r,.5*r)),i.push(new ht(new T(0,0),!1,null,e,r)),i.push(new ht(new T(0,0),!1,null,e,.5*(n+r))),i.push(new ht(new T(1,1),!1)),i.push(new ht(new T(0,0),!1,null,.5*(e+r),n)),i.push(new ht(new T(0,0),!1,null,r,n)),i.push(new ht(new T(0,0),!1,null,.5*r,n-.5*r)),i.push(new ht(new T(0,0),!1,null,0,n-r)),i.push(new ht(new T(0,0),!1,null,0,.5*(n-r))),i},h.prototype.getConstraints=function(t,e,n){const i=[],r=Math.max(0,Math.min(e,parseFloat(v.getValue(this.style,"tabWidth",this.tabWidth)))),o=Math.max(0,Math.min(n,parseFloat(v.getValue(this.style,"tabHeight",this.tabHeight))));return"left"==v.getValue(this.style,"tabPosition",this.tabPosition)?(i.push(new ht(new T(0,0),!1)),i.push(new ht(new T(0,0),!1,null,.5*r,0)),i.push(new ht(new T(0,0),!1,null,r,0)),i.push(new ht(new T(0,0),!1,null,r,o)),i.push(new ht(new T(0,0),!1,null,.5*(e+r),o))):(i.push(new ht(new T(1,0),!1)),i.push(new ht(new T(0,0),!1,null,e-.5*r,0)),i.push(new ht(new T(0,0),!1,null,e-r,0)),i.push(new ht(new T(0,0),!1,null,e-r,o)),i.push(new ht(new T(0,0),!1,null,.5*(e-r),o))),i.push(new ht(new T(0,0),!1,null,e,o)),i.push(new ht(new T(0,0),!1,null,e,.25*(n-o)+o)),i.push(new ht(new T(0,0),!1,null,e,.5*(n-o)+o)),i.push(new ht(new T(0,0),!1,null,e,.75*(n-o)+o)),i.push(new ht(new T(0,0),!1,null,e,n)),i.push(new ht(new T(0,0),!1,null,0,o)),i.push(new ht(new T(0,0),!1,null,0,.25*(n-o)+o)),i.push(new ht(new T(0,0),!1,null,0,.5*(n-o)+o)),i.push(new ht(new T(0,0),!1,null,0,.75*(n-o)+o)),i.push(new ht(new T(0,0),!1,null,0,n)),i.push(new ht(new T(.25,1),!1)),i.push(new ht(new T(.5,1),!1)),i.push(new ht(new T(.75,1),!1)),i},ct.prototype.constraints=D.prototype.constraints,Et.prototype.constraints=D.prototype.constraints,zt.prototype.constraints=ot.prototype.constraints,Yt.prototype.constraints=ot.prototype.constraints,Wt.prototype.constraints=ot.prototype.constraints,Kt.prototype.constraints=ot.prototype.constraints,ut.prototype.constraints=D.prototype.constraints,qt.prototype.constraints=D.prototype.constraints,_t.prototype.getConstraints=function(t,e,n){const i=[],r=Math.min(e,n/2),o=Math.min(e-r,Math.max(0,parseFloat(v.getValue(this.style,"size",this.size)))*e);return i.push(new ht(new T(0,.5),!1,null)),i.push(new ht(new T(0,0),!1,null,o,0)),i.push(new ht(new T(0,0),!1,null,.5*(o+e-r),0)),i.push(new ht(new T(0,0),!1,null,e-r,0)),i.push(new ht(new T(1,.5),!1,null)),i.push(new ht(new T(0,0),!1,null,e-r,n)),i.push(new ht(new T(0,0),!1,null,.5*(o+e-r),n)),i.push(new ht(new T(0,0),!1,null,o,n)),i},tt.prototype.getConstraints=function(t,e,n){const i=parseFloat(v.getValue(t,"jettyWidth",tt.prototype.jettyWidth))/2,r=parseFloat(v.getValue(t,"jettyHeight",tt.prototype.jettyHeight)),o=[new ht(new T(0,0),!1,null,i),new ht(new T(.25,0),!0),new ht(new T(.5,0),!0),new ht(new T(.75,0),!0),new ht(new T(1,0),!0),new ht(new T(1,.25),!0),new ht(new T(1,.5),!0),new ht(new T(1,.75),!0),new ht(new T(0,1),!1,null,i),new ht(new T(.25,1),!0),new ht(new T(.5,1),!0),new ht(new T(.75,1),!0),new ht(new T(1,1),!0),new ht(new T(0,0),!1,null,0,Math.min(n-.5*r,1.5*r)),new ht(new T(0,0),!1,null,0,Math.min(n-.5*r,3.5*r))];return n>5*r&&o.push(new ht(new T(0,.75),!1,null,i)),n>8*r&&o.push(new ht(new T(0,.5),!1,null,i)),n>15*r&&o.push(new ht(new T(0,.25),!1,null,i)),o},Vt.prototype.constraints=D.prototype.constraints,Ft.prototype.constraints=D.prototype.constraints,Lt.prototype.constraints=[new ht(new T(.15,.05),!1),new ht(new T(.5,0),!0),new ht(new T(.85,.05),!1),new ht(new T(0,.3),!0),new ht(new T(0,.5),!0),new ht(new T(0,.7),!0),new ht(new T(1,.3),!0),new ht(new T(1,.5),!0),new ht(new T(1,.7),!0),new ht(new T(.15,.95),!1),new ht(new T(.5,1),!0),new ht(new T(.85,.95),!1)],F.prototype.constraints=[new ht(new T(.25,.1),!1),new ht(new T(.5,0),!1),new ht(new T(.75,.1),!1),new ht(new T(0,1/3),!1),new ht(new T(0,1),!1),new ht(new T(1,1/3),!1),new ht(new T(1,1),!1),new ht(new T(.5,.5),!1)],et.prototype.constraints=[new ht(new T(.25,0),!0),new ht(new T(.5,0),!0),new ht(new T(.75,0),!0),new ht(new T(0,.3),!0),new ht(new T(0,.7),!0),new ht(new T(1,.25),!0),new ht(new T(1,.5),!0),new ht(new T(1,.75),!0),new ht(new T(.25,1),!0),new ht(new T(.5,1),!0),new ht(new T(.75,1),!0)],bt.prototype.constraints=[new ht(new T(.5,0),!0),new ht(new T(.25,.2),!1),new ht(new T(.1,.5),!1),new ht(new T(0,.75),!0),new ht(new T(.75,.25),!1),new ht(new T(.9,.5),!1),new ht(new T(1,.75),!0),new ht(new T(.25,1),!0),new ht(new T(.5,1),!0),new ht(new T(.75,1),!0)],a.prototype.constraints=[new ht(new T(0,0),!1),new ht(new T(.5,.25),!1),new ht(new T(1,0),!1),new ht(new T(.25,.5),!1),new ht(new T(.75,.5),!1),new ht(new T(0,1),!1),new ht(new T(.5,.75),!1),new ht(new T(1,1),!1)],d.prototype.constraints=[new ht(new T(0,.35),!1),new ht(new T(0,.5),!1),new ht(new T(0,.65),!1),new ht(new T(1,.35),!1),new ht(new T(1,.5),!1),new ht(new T(1,.65),!1),new ht(new T(.25,1),!1),new ht(new T(.75,0),!1)],N.prototype.constraints=[new ht(new T(.25,0),!0),new ht(new T(.5,0),!0),new ht(new T(.75,0),!0),new ht(new T(.25,1),!0),new ht(new T(.5,1),!0),new ht(new T(.75,1),!0),new ht(new T(0,.25),!0),new ht(new T(0,.5),!0),new ht(new T(0,.75),!0),new ht(new T(1,.25),!0),new ht(new T(1,.5),!0),new ht(new T(1,.75),!0)],kt.prototype.constraints=[new ht(new T(0,.5),!1),new ht(new T(.25,.5),!1),new ht(new T(.75,.5),!1),new ht(new T(1,.5),!1)],q.prototype.constraints=[new ht(new T(.5,0),!1),new ht(new T(.5,1),!1)],Ot.prototype.constraints=ot.prototype.constraints,It.prototype.constraints=ot.prototype.constraints,Gt.prototype.constraints=[new ht(new T(0,.25),!0),new ht(new T(0,.5),!0),new ht(new T(0,.75),!0),new ht(new T(.5,0),!0),new ht(new T(.5,1),!0),new ht(new T(1,.5),!0)],Nt.prototype.constraints=[new ht(new T(.375,0),!0),new ht(new T(.5,0),!0),new ht(new T(.625,0),!0),new ht(new T(0,.25),!0),new ht(new T(0,.5),!0),new ht(new T(0,.75),!0),new ht(new T(1,.25),!0),new ht(new T(1,.5),!0),new ht(new T(1,.75),!0),new ht(new T(.375,1),!0),new ht(new T(.5,1),!0),new ht(new T(.625,1),!0)],Bt.prototype.constraints=[new ht(new T(.25,.25),!1),new ht(new T(.4,.1),!1),new ht(new T(.16,.55),!1),new ht(new T(.07,.4),!1),new ht(new T(.31,.8),!1),new ht(new T(.13,.77),!1),new ht(new T(.8,.8),!1),new ht(new T(.55,.95),!1),new ht(new T(.875,.5),!1),new ht(new T(.96,.7),!1),new ht(new T(.625,.2),!1),new ht(new T(.88,.25),!1)],m.prototype.constraints=D.prototype.constraints,x.prototype.constraints=D.prototype.constraints,c.prototype.constraints=[new ht(new T(.25,0),!0),new ht(new T(.5,0),!0),new ht(new T(.75,0),!0),new ht(new T(0,.25),!0),new ht(new T(0,.5),!0),new ht(new T(0,.75),!0),new ht(new T(1,.25),!0),new ht(new T(1,.5),!0),new ht(new T(1,.75),!0)],Ut.prototype.constraints=null,At.prototype.getConstraints=function(t,e,n){const i=[],r=Math.max(0,Math.min(e,parseFloat(v.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(n,parseFloat(v.getValue(this.style,"dy",this.dy))));return i.push(new ht(new T(0,0),!1)),i.push(new ht(new T(.5,0),!1)),i.push(new ht(new T(1,0),!1)),i.push(new ht(new T(0,0),!1,null,e,.5*o)),i.push(new ht(new T(0,0),!1,null,e,o)),i.push(new ht(new T(0,0),!1,null,.75*e+.25*r,o)),i.push(new ht(new T(0,0),!1,null,.5*(e+r),o)),i.push(new ht(new T(0,0),!1,null,.5*(e+r),.5*(n+o))),i.push(new ht(new T(0,0),!1,null,.5*(e+r),n)),i.push(new ht(new T(.5,1),!1)),i.push(new ht(new T(0,0),!1,null,.5*(e-r),n)),i.push(new ht(new T(0,0),!1,null,.5*(e-r),.5*(n+o))),i.push(new ht(new T(0,0),!1,null,.5*(e-r),o)),i.push(new ht(new T(0,0),!1,null,.25*e-.25*r,o)),i.push(new ht(new T(0,0),!1,null,0,o)),i.push(new ht(new T(0,0),!1,null,0,.5*o)),i},pt.prototype.getConstraints=function(t,e,n){const i=[],r=Math.max(0,Math.min(e,parseFloat(v.getValue(this.style,"dx",this.dx)))),o=Math.max(0,Math.min(n,parseFloat(v.getValue(this.style,"dy",this.dy))));return i.push(new ht(new T(0,0),!1)),i.push(new ht(new T(.5,0),!1)),i.push(new ht(new T(1,0),!1)),i.push(new ht(new T(0,0),!1,null,e,.5*o)),i.push(new ht(new T(0,0),!1,null,e,o)),i.push(new ht(new T(0,0),!1,null,.5*(e+r),o)),i.push(new ht(new T(0,0),!1,null,r,o)),i.push(new ht(new T(0,0),!1,null,r,.5*(n+o))),i.push(new ht(new T(0,0),!1,null,r,n)),i.push(new ht(new T(0,0),!1,null,.5*r,n)),i.push(new ht(new T(0,.5),!1)),i.push(new ht(new T(0,1),!1)),i},xt.prototype.constraints=[new ht(new T(0,0),!1),new ht(new T(0,.5),!1),new ht(new T(0,1),!1),new ht(new T(.25,.5),!1),new ht(new T(.5,.5),!1),new ht(new T(.75,.5),!1),new ht(new T(1,0),!1),new ht(new T(1,.5),!1),new ht(new T(1,1),!1)],Ct.prototype.getConstraints=function(t,e,n){const i=[],r=n*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"arrowWidth",this.arrowWidth)))),o=e*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"arrowSize",this.arrowSize)))),s=(n-r)/2;return i.push(new ht(new T(0,.5),!1)),i.push(new ht(new T(0,0),!1,null,0,s)),i.push(new ht(new T(0,0),!1,null,.5*(e-o),s)),i.push(new ht(new T(0,0),!1,null,e-o,0)),i.push(new ht(new T(1,.5),!1)),i.push(new ht(new T(0,0),!1,null,e-o,n)),i.push(new ht(new T(0,0),!1,null,.5*(e-o),n-s)),i.push(new ht(new T(0,0),!1,null,0,n-s)),i},vt.prototype.getConstraints=function(t,e,n){const i=[],r=n*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"arrowWidth",Ct.prototype.arrowWidth)))),o=e*Math.max(0,Math.min(1,parseFloat(v.getValue(this.style,"arrowSize",Ct.prototype.arrowSize)))),s=(n-r)/2;return i.push(new ht(new T(0,.5),!1)),i.push(new ht(new T(0,0),!1,null,o,0)),i.push(new ht(new T(0,0),!1,null,.5*e,s)),i.push(new ht(new T(0,0),!1,null,e-o,0)),i.push(new ht(new T(1,.5),!1)),i.push(new ht(new T(0,0),!1,null,e-o,n)),i.push(new ht(new T(0,0),!1,null,.5*e,n-s)),i.push(new ht(new T(0,0),!1,null,o,n)),i},Jt.prototype.getConstraints=function(t,e,n){const i=[],r=Math.min(n,e),o=Math.max(0,Math.min(r,r*parseFloat(v.getValue(this.style,"size",this.size)))),s=(n-o)/2,l=s+o,a=(e-o)/2,h=a+o;return i.push(new ht(new T(0,0),!1,null,a,.5*s)),i.push(new ht(new T(0,0),!1,null,a,0)),i.push(new ht(new T(.5,0),!1)),i.push(new ht(new T(0,0),!1,null,h,0)),i.push(new ht(new T(0,0),!1,null,h,.5*s)),i.push(new ht(new T(0,0),!1,null,h,s)),i.push(new ht(new T(0,0),!1,null,a,n-.5*s)),i.push(new ht(new T(0,0),!1,null,a,n)),i.push(new ht(new T(.5,1),!1)),i.push(new ht(new T(0,0),!1,null,h,n)),i.push(new ht(new T(0,0),!1,null,h,n-.5*s)),i.push(new ht(new T(0,0),!1,null,h,l)),i.push(new ht(new T(0,0),!1,null,.5*(e+h),s)),i.push(new ht(new T(0,0),!1,null,e,s)),i.push(new ht(new T(1,.5),!1)),i.push(new ht(new T(0,0),!1,null,e,l)),i.push(new ht(new T(0,0),!1,null,.5*(e+h),l)),i.push(new ht(new T(0,0),!1,null,a,l)),i.push(new ht(new T(0,0),!1,null,.5*a,s)),i.push(new ht(new T(0,0),!1,null,0,s)),i.push(new ht(new T(0,.5),!1)),i.push(new ht(new T(0,0),!1,null,0,l)),i.push(new ht(new T(0,0),!1,null,.5*a,l)),i.push(new ht(new T(0,0),!1,null,a,s)),i},X.prototype.constraints=null,wt.prototype.constraints=[new ht(new T(0,.25),!1),new ht(new T(0,.5),!1),new ht(new T(0,.75),!1),new ht(new T(1,.5),!1),new ht(new T(.7,.1),!1),new ht(new T(.7,.9),!1)],St.prototype.constraints=[new ht(new T(.175,.25),!1),new ht(new T(.25,.5),!1),new ht(new T(.175,.75),!1),new ht(new T(1,.5),!1),new ht(new T(.7,.1),!1),new ht(new T(.7,.9),!1)],_.prototype.constraints=[new ht(new T(0,.5),!1),new ht(new T(1,.5),!1)],$.prototype.constraints=[new ht(new T(0,.5),!1),new ht(new T(1,.5),!1)]}();var ve="data:image/gif;base64,R0lGODlhDAAMAIAAAP///0RERCH5BAAAAAAALAAAAAAMAAwAAAIdjI8Hy23w2JtR1bQiVDlIvnVIt3llqKFm4yRuUAAAOw==";Et.prototype.closeImage=ve,Et.prototype.normalizeImage="data:image/gif;base64,R0lGODlhDAAMAPcAAP///0RERAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAADAAMAAAIMgADCBxIcCCAgwgTCkRYMACAhQcbPnQYUeHEiQQfXmy4sKPFiA4pVgSJ0SDJhCg5NgwIADs=",Et.prototype.maximizeImage="data:image/gif;base64,R0lGODlhDAAMAPcAAP///0RERAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAADAAMAAAIMAADCBxIcCCAgwgTCgRQ0ODChg8DMEx4UOJDihMvUrRoESPHiRsZcmwoEqNCiAUDAgA7",Et.prototype.minimizeImage="data:image/gif;base64,R0lGODlhDAAMAIAAAERERP///yH5BAAAAAAALAAAAAAMAAwAAAIXhI8Xy20Nw4tsUgnuspTHlyhgmHkQGRYAOw==",Et.prototype.resizeImage=ve;var Ee=function(t){if(!t)return null;try{return(new XMLSerializer).serializeToString(t)}catch(t){return console.log("SvgToString Error: ",t),null}},we=function(t){try{return(new DOMParser).parseFromString(t,"image/svg+xml").firstChild}catch(t){return console.log("StringToSvg Error: ",t),null}},Se=function(t){try{return atob(t.replace("data:image/svg+xml;base64,",""))}catch(t){return console.log("base64ToSvgString Error: ",t),null}},be={};be[te.prototype.defaultThemeName]=u(Ft).documentElement;var Te=function(t){var e=this;this.xml=t,this.renderSVG=function(t,n,i){void 0===n&&(n=1),void 0===i&&(i=1);var r=e.graph.getModel();return e.xml&&new p(e.xml).decode(e.xml.documentElement,r),e.graph.getSvg(t,n,i)};var n=document.createElement("div");this.graph=new te(n,null,null,null,be)},Le=function(t){switch(void 0===t&&(t="zh"),t){case"en":default:return n.e(5).then(n.bind(n,15005)).then((function(t){return t.langEN}));case"zh":return n.e(903).then(n.bind(n,62903)).then((function(t){return t.langEN}))}},Ie={};Ie[te.prototype.defaultThemeName]=u(Ft).documentElement;var Me=function(t,e){var n=this;this.container=t,this.createExitButton=e,this.start=function(t,e,i){n.container.appendChild(n.diagramContainer),n.container.style.overflow="hidden",f.parse(t),n.editor=new ue(!1,Ie),n.editorUi=new ae(n.editor,n.diagramContainer,null,n.createExitButton),e&&n.editorUi.editor.setGraphXml(e.documentElement),n.editor.graph.getModel().addListener(C.CHANGE,(function(){i&&i(n.editorUi&&n.editorUi.editor.getGraphXml())}))},this.exit=function(){n.container.style.overflow="",C.removeAllListeners(window),C.removeAllListeners(document),n.editor&&n.editor.destroy(),n.editorUi&&n.editorUi.destroy(),n.container.removeChild(n.diagramContainer)},this.editor=null,this.editorUi=null,this.diagramContainer=document.createElement("div"),this.diagramContainer.className="diagram-container geEditor"},Re=function(t,e){return Re=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},Re(t,e)},Oe=function(t){function e(e){void 0===e&&(e={format:"xml"});var n=t.call(this)||this;return n.startEdit=function(){if(!n.lock&&n.iframe){n.lock=!0;var t=n.iframe,e="".concat(n.url,"?")+["embed=1","spin=1","proto=json","configure=1","noSaveBtn=1","stealth=1","libraries=0"].join("&");t.setAttribute("src",e),t.setAttribute("frameborder","0"),t.setAttribute("style","position:fixed;top:0;left:0;width:100%;height:100%;background-color:#fff;z-index:999999;"),t.className="drawio-iframe-container",document.body.style.overflow="hidden",document.body.appendChild(t),window.addEventListener("message",n.handleMessageEvent)}},n.exitEdit=function(){n.lock=!1,n.iframe&&document.body.removeChild(n.iframe),n.iframe=null,document.body.style.overflow="",window.removeEventListener("message",n.handleMessageEvent)},n.lock=!1,n.config=e,n.url=e.url||"https://embed.diagrams.net/",n.iframe=document.createElement("iframe"),n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}Re(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}(e,t),e.prototype.onConfig=function(){var t;this.config.onConfig?this.config.onConfig():this.postMessage({action:"configure",config:{compressXml:null!==(t=this.config.compress)&&void 0!==t&&t,css:".geTabContainer{display:none !important;}"}})},e.prototype.onInit=function(){this.config.onInit?this.config.onInit():this.postMessage({action:"load",autosave:1,saveAndExit:"1",modified:"unsavedChanges",xml:this.config.data,title:this.config.title||"流程图"})},e.prototype.onLoad=function(){this.config.onLoad&&this.config.onLoad()},e.prototype.onAutoSave=function(t){this.config.onAutoSave&&this.config.onAutoSave(t.xml)},e.prototype.onSave=function(t){this.config.onSave&&this.config.onSave(t.xml),this.config.onExport?this.postMessage({action:"export",format:this.config.format,xml:t.xml}):t.exit&&this.exitEdit()},e.prototype.onExit=function(t){this.config.onExit&&this.config.onExit(t.xml),this.exitEdit()},e.prototype.onExport=function(t){this.config.onExport&&(this.config.onExport(t.data,this.config.format),this.exitEdit())},e}((function(){var t=this;this.postMessage=function(e){t.iframe&&t.iframe.contentWindow&&t.iframe.contentWindow.postMessage(JSON.stringify(e),t.url)},this.handleMessageEvent=function(e){if(t.iframe&&e.source===t.iframe.contentWindow&&e.data)try{var n=JSON.parse(e.data);t.handleMessage(n)}catch(t){console.log("MessageEvent Error",t)}},this.handleMessage=function(e){switch(e.event){case"init":return t.onInit(e);case"load":return t.onLoad(e);case"configure":return t.onConfig(e);case"autosave":return t.onAutoSave(e);case"save":return t.onSave(e);case"export":return t.onExport(e);case"exit":return t.onExit(e)}}})),Ne=Object.prototype.toString,De=function(t){return"[object String]"===Ne.call(t)},Pe="http://www.w3.org/2000/svg",He=function(t,e){var n=document.createElement("div"),i=De(t)?u(t):t,r=e?De(e)?u(e):e:u(Ft);if(i){var o=new c(n),s=new p(i);o.model.beginUpdate(),o.setEnabled(!1),s.decode(i.documentElement,o.getModel()),r&&s.decode(r.documentElement,o.getStylesheet()),o.model.endUpdate();var l=document.createElementNS(Pe,"svg"),a=o.getGraphBounds();l.setAttribute("xmlns",Pe),l.setAttribute("width",a.width.toString()),l.setAttribute("height",a.height.toString()),l.setAttribute("viewBox","0 0 "+a.width+" "+a.height),l.setAttribute("version","1.1");var h=new m(l);h.translate(-a.x,-a.y);var d=new x,g=o.getView().getState(o.model.root);return d.drawState(g,h),l}return null}},44611:function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;__webpack_require__(57658),function(t,e){__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=e,__WEBPACK_AMD_DEFINE_RESULT__="function"===typeof __WEBPACK_AMD_DEFINE_FACTORY__?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__,void 0===__WEBPACK_AMD_DEFINE_RESULT__||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(0,(function(){return function(opts){for(var name in opts)this[name]=opts[name];var __mxOutput={},mxClient={VERSION:"4.2.2",IS_IE:null!=navigator.userAgent&&navigator.userAgent.indexOf("MSIE")>=0,IS_IE6:null!=navigator.userAgent&&navigator.userAgent.indexOf("MSIE 6")>=0,IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:null!=navigator.userAgent&&navigator.userAgent.indexOf("MSIE")>=0&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&navigator.userAgent.indexOf("Mozilla/")>=0&&navigator.userAgent.indexOf("MSIE")<0&&navigator.userAgent.indexOf("Edge/")<0,IS_OP:null!=navigator.userAgent&&(navigator.userAgent.indexOf("Opera/")>=0||navigator.userAgent.indexOf("OPR/")>=0),IS_OT:null!=navigator.userAgent&&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.")<0,IS_SF:/Apple Computer, Inc/.test(navigator.vendor),IS_ANDROID:navigator.appVersion.indexOf("Android")>=0,IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT: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.")<0,IS_VML:"MICROSOFT INTERNET EXPLORER"==navigator.appName.toUpperCase(),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||navigator.userAgent.indexOf("Opera/")>=0,IS_WIN:navigator.appVersion.indexOf("Win")>0,IS_MAC:navigator.appVersion.indexOf("Mac")>0,IS_CHROMEOS:/\bCrOS\b/.test(navigator.appVersion),IS_TOUCH:"ontouchstart"in document.documentElement,IS_POINTER:null!=window.PointerEvent&&!(navigator.appVersion.indexOf("Mac")>0),IS_LOCAL:document.location.href.indexOf("http://")<0&&document.location.href.indexOf("https://")<0,defaultBundles:[],isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG},link:function(t,e,n,i){if(n=n||document,mxClient.IS_IE6)n.write('<link rel="'+t+'" href="'+e+'" charset="UTF-8" type="text/css"/>');else{var r=n.createElement("link");r.setAttribute("rel",t),r.setAttribute("href",e),r.setAttribute("charset","UTF-8"),r.setAttribute("type","text/css"),i&&r.setAttribute("id",i);var o=n.getElementsByTagName("head")[0];o.appendChild(r)}},loadResources:function(t,e){var n=mxClient.defaultBundles.length;function i(){0==--n&&t()}for(var r=0;r<mxClient.defaultBundles.length;r++)mxResources.add(mxClient.defaultBundles[r],e,i)},include:function(t){document.write('<script src="'+t+'"><\/script>')}};"undefined"==typeof mxLoadResources&&(mxLoadResources=!0),"undefined"==typeof mxForceIncludes&&(mxForceIncludes=!1),"undefined"==typeof mxResourceExtension&&(mxResourceExtension=".txt"),"undefined"==typeof mxLoadStylesheets&&(mxLoadStylesheets=!0),"undefined"!=typeof mxBasePath&&mxBasePath.length>0?("/"==mxBasePath.substring(mxBasePath.length-1)&&(mxBasePath=mxBasePath.substring(0,mxBasePath.length-1)),mxClient.basePath=mxBasePath):mxClient.basePath=".","undefined"!=typeof mxImageBasePath&&mxImageBasePath.length>0?("/"==mxImageBasePath.substring(mxImageBasePath.length-1)&&(mxImageBasePath=mxImageBasePath.substring(0,mxImageBasePath.length-1)),mxClient.imageBasePath=mxImageBasePath):mxClient.imageBasePath=mxClient.basePath+"/images","undefined"!=typeof mxLanguage&&null!=mxLanguage?mxClient.language=mxLanguage:mxClient.language=mxClient.IS_IE?navigator.userLanguage:navigator.language,"undefined"!=typeof mxDefaultLanguage&&null!=mxDefaultLanguage?mxClient.defaultLanguage=mxDefaultLanguage:mxClient.defaultLanguage="en",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/common.css"),"undefined"!=typeof mxLanguages&&null!=mxLanguages&&(mxClient.languages=mxLanguages),mxClient.IS_VML&&(mxClient.IS_SVG?mxClient.IS_VML=!1:(null!=document.namespaces&&(8==document.documentMode?(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml","#default#VML"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office","#default#VML")):(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office"))),mxClient.IS_QUIRKS&&document.styleSheets.length>=30?function(){var t=document.createElement("style");t.type="text/css",t.styleSheet.cssText=mxClient.VML_PREFIX+"\\:*{behavior:url(#default#VML)}"+mxClient.OFFICE_PREFIX+"\\:*{behavior:url(#default#VML)}",document.getElementsByTagName("head")[0].appendChild(t)}():document.createStyleSheet().cssText=mxClient.VML_PREFIX+"\\:*{behavior:url(#default#VML)}"+mxClient.OFFICE_PREFIX+"\\:*{behavior:url(#default#VML)}",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css"))),(mxForceIncludes||null==module.exports)&&(mxClient.include(mxClient.basePath+"/js/util/mxLog.js"),mxClient.include(mxClient.basePath+"/js/util/mxObjectIdentity.js"),mxClient.include(mxClient.basePath+"/js/util/mxDictionary.js"),mxClient.include(mxClient.basePath+"/js/util/mxResources.js"),mxClient.include(mxClient.basePath+"/js/util/mxPoint.js"),mxClient.include(mxClient.basePath+"/js/util/mxRectangle.js"),mxClient.include(mxClient.basePath+"/js/util/mxEffects.js"),mxClient.include(mxClient.basePath+"/js/util/mxUtils.js"),mxClient.include(mxClient.basePath+"/js/util/mxConstants.js"),mxClient.include(mxClient.basePath+"/js/util/mxEventObject.js"),mxClient.include(mxClient.basePath+"/js/util/mxMouseEvent.js"),mxClient.include(mxClient.basePath+"/js/util/mxEventSource.js"),mxClient.include(mxClient.basePath+"/js/util/mxEvent.js"),mxClient.include(mxClient.basePath+"/js/util/mxXmlRequest.js"),mxClient.include(mxClient.basePath+"/js/util/mxClipboard.js"),mxClient.include(mxClient.basePath+"/js/util/mxWindow.js"),mxClient.include(mxClient.basePath+"/js/util/mxForm.js"),mxClient.include(mxClient.basePath+"/js/util/mxImage.js"),mxClient.include(mxClient.basePath+"/js/util/mxDivResizer.js"),mxClient.include(mxClient.basePath+"/js/util/mxDragSource.js"),mxClient.include(mxClient.basePath+"/js/util/mxToolbar.js"),mxClient.include(mxClient.basePath+"/js/util/mxUndoableEdit.js"),mxClient.include(mxClient.basePath+"/js/util/mxUndoManager.js"),mxClient.include(mxClient.basePath+"/js/util/mxUrlConverter.js"),mxClient.include(mxClient.basePath+"/js/util/mxPanningManager.js"),mxClient.include(mxClient.basePath+"/js/util/mxPopupMenu.js"),mxClient.include(mxClient.basePath+"/js/util/mxAutoSaveManager.js"),mxClient.include(mxClient.basePath+"/js/util/mxAnimation.js"),mxClient.include(mxClient.basePath+"/js/util/mxMorphing.js"),mxClient.include(mxClient.basePath+"/js/util/mxImageBundle.js"),mxClient.include(mxClient.basePath+"/js/util/mxImageExport.js"),mxClient.include(mxClient.basePath+"/js/util/mxAbstractCanvas2D.js"),mxClient.include(mxClient.basePath+"/js/util/mxXmlCanvas2D.js"),mxClient.include(mxClient.basePath+"/js/util/mxSvgCanvas2D.js"),mxClient.include(mxClient.basePath+"/js/util/mxVmlCanvas2D.js"),mxClient.include(mxClient.basePath+"/js/util/mxGuide.js"),mxClient.include(mxClient.basePath+"/js/shape/mxShape.js"),mxClient.include(mxClient.basePath+"/js/shape/mxStencil.js"),mxClient.include(mxClient.basePath+"/js/shape/mxStencilRegistry.js"),mxClient.include(mxClient.basePath+"/js/shape/mxMarker.js"),mxClient.include(mxClient.basePath+"/js/shape/mxActor.js"),mxClient.include(mxClient.basePath+"/js/shape/mxCloud.js"),mxClient.include(mxClient.basePath+"/js/shape/mxRectangleShape.js"),mxClient.include(mxClient.basePath+"/js/shape/mxEllipse.js"),mxClient.include(mxClient.basePath+"/js/shape/mxDoubleEllipse.js"),mxClient.include(mxClient.basePath+"/js/shape/mxRhombus.js"),mxClient.include(mxClient.basePath+"/js/shape/mxPolyline.js"),mxClient.include(mxClient.basePath+"/js/shape/mxArrow.js"),mxClient.include(mxClient.basePath+"/js/shape/mxArrowConnector.js"),mxClient.include(mxClient.basePath+"/js/shape/mxText.js"),mxClient.include(mxClient.basePath+"/js/shape/mxTriangle.js"),mxClient.include(mxClient.basePath+"/js/shape/mxHexagon.js"),mxClient.include(mxClient.basePath+"/js/shape/mxLine.js"),mxClient.include(mxClient.basePath+"/js/shape/mxImageShape.js"),mxClient.include(mxClient.basePath+"/js/shape/mxLabel.js"),mxClient.include(mxClient.basePath+"/js/shape/mxCylinder.js"),mxClient.include(mxClient.basePath+"/js/shape/mxConnector.js"),mxClient.include(mxClient.basePath+"/js/shape/mxSwimlane.js"),mxClient.include(mxClient.basePath+"/js/layout/mxGraphLayout.js"),mxClient.include(mxClient.basePath+"/js/layout/mxStackLayout.js"),mxClient.include(mxClient.basePath+"/js/layout/mxPartitionLayout.js"),mxClient.include(mxClient.basePath+"/js/layout/mxCompactTreeLayout.js"),mxClient.include(mxClient.basePath+"/js/layout/mxRadialTreeLayout.js"),mxClient.include(mxClient.basePath+"/js/layout/mxFastOrganicLayout.js"),mxClient.include(mxClient.basePath+"/js/layout/mxCircleLayout.js"),mxClient.include(mxClient.basePath+"/js/layout/mxParallelEdgeLayout.js"),mxClient.include(mxClient.basePath+"/js/layout/mxCompositeLayout.js"),mxClient.include(mxClient.basePath+"/js/layout/mxEdgeLabelLayout.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/model/mxGraphAbstractHierarchyCell.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/model/mxGraphHierarchyNode.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/model/mxGraphHierarchyEdge.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/model/mxGraphHierarchyModel.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/model/mxSwimlaneModel.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/stage/mxHierarchicalLayoutStage.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/stage/mxMedianHybridCrossingReduction.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/stage/mxMinimumCycleRemover.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/stage/mxCoordinateAssignment.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/stage/mxSwimlaneOrdering.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/mxHierarchicalLayout.js"),mxClient.include(mxClient.basePath+"/js/layout/hierarchical/mxSwimlaneLayout.js"),mxClient.include(mxClient.basePath+"/js/model/mxGraphModel.js"),mxClient.include(mxClient.basePath+"/js/model/mxCell.js"),mxClient.include(mxClient.basePath+"/js/model/mxGeometry.js"),mxClient.include(mxClient.basePath+"/js/model/mxCellPath.js"),mxClient.include(mxClient.basePath+"/js/view/mxPerimeter.js"),mxClient.include(mxClient.basePath+"/js/view/mxPrintPreview.js"),mxClient.include(mxClient.basePath+"/js/view/mxStylesheet.js"),mxClient.include(mxClient.basePath+"/js/view/mxCellState.js"),mxClient.include(mxClient.basePath+"/js/view/mxGraphSelectionModel.js"),mxClient.include(mxClient.basePath+"/js/view/mxCellEditor.js"),mxClient.include(mxClient.basePath+"/js/view/mxCellRenderer.js"),mxClient.include(mxClient.basePath+"/js/view/mxEdgeStyle.js"),mxClient.include(mxClient.basePath+"/js/view/mxStyleRegistry.js"),mxClient.include(mxClient.basePath+"/js/view/mxGraphView.js"),mxClient.include(mxClient.basePath+"/js/view/mxGraph.js"),mxClient.include(mxClient.basePath+"/js/view/mxCellOverlay.js"),mxClient.include(mxClient.basePath+"/js/view/mxOutline.js"),mxClient.include(mxClient.basePath+"/js/view/mxMultiplicity.js"),mxClient.include(mxClient.basePath+"/js/view/mxLayoutManager.js"),mxClient.include(mxClient.basePath+"/js/view/mxSwimlaneManager.js"),mxClient.include(mxClient.basePath+"/js/view/mxTemporaryCellStates.js"),mxClient.include(mxClient.basePath+"/js/view/mxCellStatePreview.js"),mxClient.include(mxClient.basePath+"/js/view/mxConnectionConstraint.js"),mxClient.include(mxClient.basePath+"/js/handler/mxGraphHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxPanningHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxPopupMenuHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxCellMarker.js"),mxClient.include(mxClient.basePath+"/js/handler/mxSelectionCellsHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxConnectionHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxConstraintHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxRubberband.js"),mxClient.include(mxClient.basePath+"/js/handler/mxHandle.js"),mxClient.include(mxClient.basePath+"/js/handler/mxVertexHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxEdgeHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxElbowEdgeHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxEdgeSegmentHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxKeyHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxTooltipHandler.js"),mxClient.include(mxClient.basePath+"/js/handler/mxCellTracker.js"),mxClient.include(mxClient.basePath+"/js/handler/mxCellHighlight.js"),mxClient.include(mxClient.basePath+"/js/editor/mxDefaultKeyHandler.js"),mxClient.include(mxClient.basePath+"/js/editor/mxDefaultPopupMenu.js"),mxClient.include(mxClient.basePath+"/js/editor/mxDefaultToolbar.js"),mxClient.include(mxClient.basePath+"/js/editor/mxEditor.js"),mxClient.include(mxClient.basePath+"/js/io/mxCodecRegistry.js"),mxClient.include(mxClient.basePath+"/js/io/mxCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxObjectCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxCellCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxModelCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxRootChangeCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxChildChangeCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxTerminalChangeCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxGenericChangeCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxGraphCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxGraphViewCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxStylesheetCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxDefaultKeyHandlerCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxDefaultToolbarCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxDefaultPopupMenuCodec.js"),mxClient.include(mxClient.basePath+"/js/io/mxEditorCodec.js")),__mxOutput.mxClient="undefined"!==typeof mxClient?mxClient:void 0;var mxLog={consoleName:"Console",TRACE:!1,DEBUG:!0,WARN:!0,buffer:"",init:function(){if(null==mxLog.window&&null!=document.body){var t=mxLog.consoleName+" - mxGraph "+mxClient.VERSION,e=document.createElement("table");e.setAttribute("width","100%"),e.setAttribute("height","100%");var n=document.createElement("tbody"),i=document.createElement("tr"),r=document.createElement("td");r.style.verticalAlign="top",mxLog.textarea=document.createElement("textarea"),mxLog.textarea.setAttribute("wrap","off"),mxLog.textarea.setAttribute("readOnly","true"),mxLog.textarea.style.height="100%",mxLog.textarea.style.resize="none",mxLog.textarea.value=mxLog.buffer,mxClient.IS_NS&&"BackCompat"!=document.compatMode?mxLog.textarea.style.width="99%":mxLog.textarea.style.width="100%",r.appendChild(mxLog.textarea),i.appendChild(r),n.appendChild(i),i=document.createElement("tr"),mxLog.td=document.createElement("td"),mxLog.td.style.verticalAlign="top",mxLog.td.setAttribute("height","30px"),i.appendChild(mxLog.td),n.appendChild(i),e.appendChild(n),mxLog.addButton("Info",(function(t){mxLog.info()})),mxLog.addButton("DOM",(function(t){var e=mxUtils.getInnerHtml(document.body);mxLog.debug(e)})),mxLog.addButton("Trace",(function(t){mxLog.TRACE=!mxLog.TRACE,mxLog.TRACE?mxLog.debug("Tracing enabled"):mxLog.debug("Tracing disabled")})),mxLog.addButton("Copy",(function(t){try{mxUtils.copy(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}})),mxLog.addButton("Show",(function(t){try{mxUtils.popup(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}})),mxLog.addButton("Clear",(function(t){mxLog.textarea.value=""}));var o=0,s=0;if("number"===typeof window.innerWidth?(o=window.innerHeight,s=window.innerWidth):(o=document.documentElement.clientHeight||document.body.clientHeight,s=document.body.clientWidth),mxLog.window=new mxWindow(t,e,Math.max(0,s-320),Math.max(0,o-210),300,160),mxLog.window.setMaximizable(!0),mxLog.window.setScrollable(!1),mxLog.window.setResizable(!0),mxLog.window.setClosable(!0),mxLog.window.destroyOnClose=!1,(mxClient.IS_NS||mxClient.IS_IE)&&!mxClient.IS_GC&&!mxClient.IS_SF&&"BackCompat"!=document.compatMode||11==document.documentMode){var l=mxLog.window.getElement(),a=function(t,e){mxLog.textarea.style.height=Math.max(0,l.offsetHeight-70)+"px"};mxLog.window.addListener(mxEvent.RESIZE_END,a),mxLog.window.addListener(mxEvent.MAXIMIZE,a),mxLog.window.addListener(mxEvent.NORMALIZE,a),mxLog.textarea.style.height="92px"}}},info:function(){mxLog.writeln(mxUtils.toString(navigator))},addButton:function(t,e){var n=document.createElement("button");mxUtils.write(n,t),mxEvent.addListener(n,"click",e),mxLog.td.appendChild(n)},isVisible:function(){return null!=mxLog.window&&mxLog.window.isVisible()},show:function(){mxLog.setVisible(!0)},setVisible:function(t){null==mxLog.window&&mxLog.init(),null!=mxLog.window&&mxLog.window.setVisible(t)},enter:function(t){if(mxLog.TRACE)return mxLog.writeln("Entering "+t),(new Date).getTime()},leave:function(t,e){if(mxLog.TRACE){var n=0!=e?" ("+((new Date).getTime()-e)+" ms)":"";mxLog.writeln("Leaving "+t+n)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var t="",e=0;e<arguments.length;e++)t+=arguments[e],e<arguments.length-1&&(t+=" ");null!=mxLog.textarea?(mxLog.textarea.value=mxLog.textarea.value+t,null!=navigator.userAgent&&navigator.userAgent.indexOf("Presto/2.5")>=0&&(mxLog.textarea.style.visibility="hidden",mxLog.textarea.style.visibility="visible"),mxLog.textarea.scrollTop=mxLog.textarea.scrollHeight):mxLog.buffer+=t},writeln:function(){for(var t="",e=0;e<arguments.length;e++)t+=arguments[e],e<arguments.length-1&&(t+=" ");mxLog.write(t+"\n")}};__mxOutput.mxLog="undefined"!==typeof mxLog?mxLog:void 0;var mxObjectIdentity={FIELD_NAME:"mxObjectId",counter:0,get:function(t){if(null!=t){if(null==t[mxObjectIdentity.FIELD_NAME])if("object"===typeof t){var e=mxUtils.getFunctionName(t.constructor);t[mxObjectIdentity.FIELD_NAME]=e+"#"+mxObjectIdentity.counter++}else"function"===typeof t&&(t[mxObjectIdentity.FIELD_NAME]="Function#"+mxObjectIdentity.counter++);return t[mxObjectIdentity.FIELD_NAME]}return null},clear:function(t){"object"!==typeof t&&"function"!==typeof t||delete t[mxObjectIdentity.FIELD_NAME]}};function mxDictionary(){this.clear()}__mxOutput.mxObjectIdentity="undefined"!==typeof mxObjectIdentity?mxObjectIdentity:void 0,mxDictionary.prototype.map=null,mxDictionary.prototype.clear=function(){this.map={}},mxDictionary.prototype.get=function(t){var e=mxObjectIdentity.get(t);return this.map[e]},mxDictionary.prototype.put=function(t,e){var n=mxObjectIdentity.get(t),i=this.map[n];return this.map[n]=e,i},mxDictionary.prototype.remove=function(t){var e=mxObjectIdentity.get(t),n=this.map[e];return delete this.map[e],n},mxDictionary.prototype.getKeys=function(){var t=[];for(var e in this.map)t.push(e);return t},mxDictionary.prototype.getValues=function(){var t=[];for(var e in this.map)t.push(this.map[e]);return t},mxDictionary.prototype.visit=function(t){for(var e in this.map)t(e,this.map[e])},__mxOutput.mxDictionary="undefined"!==typeof mxDictionary?mxDictionary:void 0;var mxResources={resources:{},extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(t){return null==mxClient.languages||mxUtils.indexOf(mxClient.languages,t)>=0},getDefaultBundle:function(t,e){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(e)?t+mxResources.extension:null},getSpecialBundle:function(t,e){if(null==mxClient.languages||!this.isLanguageSupported(e)){var n=e.indexOf("-");n>0&&(e=e.substring(0,n))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(e)&&e!=mxClient.defaultLanguage?t+"_"+e+mxResources.extension:null},add:function(t,e,n){if(e=null!=e?e:null!=mxClient.language?mxClient.language.toLowerCase():mxConstants.NONE,e!=mxConstants.NONE){var i=mxResources.getDefaultBundle(t,e),r=mxResources.getSpecialBundle(t,e),o=function(){if(null!=r)if(n)mxUtils.get(r,(function(t){mxResources.parse(t.getText()),n()}),(function(){n()}));else try{var t=mxUtils.load(r);t.isReady()&&mxResources.parse(t.getText())}catch(e){}else null!=n&&n()};if(null!=i)if(n)mxUtils.get(i,(function(t){mxResources.parse(t.getText()),o()}),(function(){o()}));else try{var s=mxUtils.load(i);s.isReady()&&mxResources.parse(s.getText()),o()}catch(l){}else o()}},parse:function(t){if(null!=t)for(var e=t.split("\n"),n=0;n<e.length;n++)if("#"!=e[n].charAt(0)){var i=e[n].indexOf("=");if(i>0){var r=e[n].substring(0,i),o=e[n].length;13==e[n].charCodeAt(o-1)&&o--;var s=e[n].substring(i+1,o);this.resourcesEncoded?(s=s.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[r]=unescape(s)):mxResources.resources[r]=s}}},get:function(t,e,n){var i=mxResources.resources[t];return null==i&&(i=n),null!=i&&null!=e&&(i=mxResources.replacePlaceholders(i,e)),i},replacePlaceholders:function(t,e){for(var n=[],i=null,r=0;r<t.length;r++){var o=t.charAt(r);"{"==o?i="":null!=i&&"}"==o?(i=parseInt(i)-1,i>=0&&i<e.length&&n.push(e[i]),i=null):null!=i?i+=o:n.push(o)}return n.join("")},loadResources:function(t){mxResources.add(mxClient.basePath+"/resources/editor",null,(function(){mxResources.add(mxClient.basePath+"/resources/graph",null,t)}))}};function mxPoint(t,e){this.x=null!=t?t:0,this.y=null!=e?e:0}function mxRectangle(t,e,n,i){mxPoint.call(this,t,e),this.width=null!=n?n:0,this.height=null!=i?i:0}__mxOutput.mxResources="undefined"!==typeof mxResources?mxResources:void 0,mxPoint.prototype.x=null,mxPoint.prototype.y=null,mxPoint.prototype.equals=function(t){return null!=t&&t.x==this.x&&t.y==this.y},mxPoint.prototype.clone=function(){return mxUtils.clone(this)},__mxOutput.mxPoint="undefined"!==typeof mxPoint?mxPoint:void 0,mxRectangle.prototype=new mxPoint,mxRectangle.prototype.constructor=mxRectangle,mxRectangle.prototype.width=null,mxRectangle.prototype.height=null,mxRectangle.prototype.setRect=function(t,e,n,i){this.x=t,this.y=e,this.width=n,this.height=i},mxRectangle.prototype.getCenterX=function(){return this.x+this.width/2},mxRectangle.prototype.getCenterY=function(){return this.y+this.height/2},mxRectangle.prototype.add=function(t){if(null!=t){var e=Math.min(this.x,t.x),n=Math.min(this.y,t.y),i=Math.max(this.x+this.width,t.x+t.width),r=Math.max(this.y+this.height,t.y+t.height);this.x=e,this.y=n,this.width=i-e,this.height=r-n}},mxRectangle.prototype.intersect=function(t){if(null!=t){var e=this.x+this.width,n=t.x+t.width,i=this.y+this.height,r=t.y+t.height;this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.width=Math.min(e,n)-this.x,this.height=Math.min(i,r)-this.y}},mxRectangle.prototype.grow=function(t){return this.x-=t,this.y-=t,this.width+=2*t,this.height+=2*t,this},mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)},mxRectangle.prototype.rotate90=function(){var t=(this.width-this.height)/2;this.x+=t,this.y-=t;var e=this.width;this.width=this.height,this.height=e},mxRectangle.prototype.equals=function(t){return null!=t&&t.x==this.x&&t.y==this.y&&t.width==this.width&&t.height==this.height},mxRectangle.fromRectangle=function(t){return new mxRectangle(t.x,t.y,t.width,t.height)},__mxOutput.mxRectangle="undefined"!==typeof mxRectangle?mxRectangle:void 0;var mxEffects={animateChanges:function(t,e,n){var i=10,r=0,o=function(){for(var l=!1,a=0;a<e.length;a++){var h=e[a];if(h instanceof mxGeometryChange||h instanceof mxTerminalChange||h instanceof mxValueChange||h instanceof mxChildChange||h instanceof mxStyleChange){var u=t.getView().getState(h.cell||h.child,!1);if(null!=u)if(l=!0,h.constructor!=mxGeometryChange||t.model.isEdge(h.cell))mxUtils.setOpacity(u.shape.node,100*r/i);else{var d=t.getView().scale,c=(h.geometry.x-h.previous.x)*d,p=(h.geometry.y-h.previous.y)*d,g=(h.geometry.width-h.previous.width)*d,m=(h.geometry.height-h.previous.height)*d;0==r?(u.x-=c,u.y-=p,u.width-=g,u.height-=m):(u.x+=c/i,u.y+=p/i,u.width+=g/i,u.height+=m/i),t.cellRenderer.redraw(u),mxEffects.cascadeOpacity(t,h.cell,100*r/i)}}}r<i&&l?(r++,window.setTimeout(o,s)):null!=n&&n()},s=30;o()},cascadeOpacity:function(t,e,n){for(var i=t.model.getChildCount(e),r=0;r<i;r++){var o=t.model.getChildAt(e,r),s=t.getView().getState(o);null!=s&&(mxUtils.setOpacity(s.shape.node,n),mxEffects.cascadeOpacity(t,o,n))}var l=t.model.getEdges(e);if(null!=l)for(r=0;r<l.length;r++){var a=t.getView().getState(l[r]);null!=a&&mxUtils.setOpacity(a.shape.node,n)}},fadeOut:function(t,e,n,i,r,o){i=i||40,r=r||30;var s=e||100;if(mxUtils.setOpacity(t,s),o||null==o){var l=function(){s=Math.max(s-i,0),mxUtils.setOpacity(t,s),s>0?window.setTimeout(l,r):(t.style.visibility="hidden",n&&t.parentNode&&t.parentNode.removeChild(t))};window.setTimeout(l,r)}else t.style.visibility="hidden",n&&t.parentNode&&t.parentNode.removeChild(t)}};__mxOutput.mxEffects="undefined"!==typeof mxEffects?mxEffects:void 0;var mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(t){null!=t.style&&(t.style.cursor="");var e=t.childNodes;if(null!=e)for(var n=e.length,i=0;i<n;i+=1)mxUtils.removeCursors(e[i])},getCurrentStyle:function(){return mxClient.IS_IE&&(null==document.documentMode||document.documentMode<9)?function(t){return null!=t?t.currentStyle:null}:function(t){return null!=t?window.getComputedStyle(t,""):null}}(),parseCssNumber:function(t){return"thin"==t?t="2":"medium"==t?t="4":"thick"==t&&(t="6"),t=parseFloat(t),isNaN(t)&&(t=0),t},setPrefixedStyle:function(){var t=null;return mxClient.IS_OT?t="O":mxClient.IS_SF||mxClient.IS_GC?t="Webkit":mxClient.IS_MT?t="Moz":mxClient.IS_IE&&document.documentMode>=9&&document.documentMode<10&&(t="ms"),function(e,n,i){e[n]=i,null!=t&&n.length>0&&(n=t+n.substring(0,1).toUpperCase()+n.substring(1),e[n]=i)}}(),hasScrollbars:function(t){var e=mxUtils.getCurrentStyle(t);return null!=e&&("scroll"==e.overflow||"auto"==e.overflow)},bind:function(t,e){return function(){return e.apply(t,arguments)}},eval:function(expr){var result=null;if(expr.indexOf("function")>=0)try{eval("var _mxJavaScriptExpression="+expr),result=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(e){mxLog.warn(e.message+" while evaluating "+expr)}else try{result=eval(expr)}catch(e){mxLog.warn(e.message+" while evaluating "+expr)}return result},findNode:function(t,e,n){if(t.nodeType==mxConstants.NODETYPE_ELEMENT){var i=t.getAttribute(e);if(null!=i&&i==n)return t}t=t.firstChild;while(null!=t){var r=mxUtils.findNode(t,e,n);if(null!=r)return r;t=t.nextSibling}return null},getFunctionName:function(t){var e=null;if(null!=t)if(null!=t.name)e=t.name;else if(e=mxUtils.trim(t.toString()),/^function\s/.test(e)){e=mxUtils.ltrim(e.substring(9));var n=e.indexOf("(");n>0&&(e=e.substring(0,n))}return e},indexOf:function(t,e){if(null!=t&&null!=e)for(var n=0;n<t.length;n++)if(t[n]==e)return n;return-1},forEach:function(t,e){if(null!=t&&null!=e)for(var n=0;n<t.length;n++)e(t[n]);return t},remove:function(t,e){var n=null;if("object"==typeof e){var i=mxUtils.indexOf(e,t);while(i>=0)e.splice(i,1),n=t,i=mxUtils.indexOf(e,t)}for(var r in e)e[r]==t&&(delete e[r],n=t);return n},isNode:function(t,e,n,i){return!(null==t||isNaN(t.nodeType)||null!=e&&t.nodeName.toLowerCase()!=e.toLowerCase())&&(null==n||t.getAttribute(n)==i)},isAncestorNode:function(t,e){var n=e;while(null!=n){if(n==t)return!0;n=n.parentNode}return!1},getChildNodes:function(t,e){e=e||mxConstants.NODETYPE_ELEMENT;var n=[],i=t.firstChild;while(null!=i)i.nodeType==e&&n.push(i),i=i.nextSibling;return n},importNode:function(t,e,n){return mxClient.IS_IE&&(null==document.documentMode||document.documentMode<10)?mxUtils.importNodeImplementation(t,e,n):t.importNode(e,n)},importNodeImplementation:function(t,e,n){switch(e.nodeType){case 1:var i=t.createElement(e.nodeName);if(e.attributes&&e.attributes.length>0)for(var r=0;r<e.attributes.length;r++)i.setAttribute(e.attributes[r].nodeName,e.getAttribute(e.attributes[r].nodeName));if(n&&e.childNodes&&e.childNodes.length>0)for(r=0;r<e.childNodes.length;r++)i.appendChild(mxUtils.importNodeImplementation(t,e.childNodes[r],n));return i;case 3:case 4:case 8:return t.createTextNode(null!=e.nodeValue?e.nodeValue:e.value)}},createXmlDocument:function(){var t=null;return document.implementation&&document.implementation.createDocument?t=document.implementation.createDocument("","",null):"ActiveXObject"in window&&(t=mxUtils.createMsXmlDocument()),t},createMsXmlDocument:function(){var t=new ActiveXObject("Microsoft.XMLDOM");return t.async=!1,t.validateOnParse=!1,t.resolveExternals=!1,t},parseXml:function(){return window.DOMParser?function(t){var e=new DOMParser;return e.parseFromString(t,"text/xml")}:function(t){var e=mxUtils.createMsXmlDocument();return e.loadXML(t),e}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges()}:function(){}}(),removeWhitespace:function(t,e){var n=e?t.previousSibling:t.nextSibling;while(null!=n&&n.nodeType==mxConstants.NODETYPE_TEXT){var i=e?n.previousSibling:n.nextSibling,r=mxUtils.getTextContent(n);0==mxUtils.trim(r).length&&n.parentNode.removeChild(n),n=i}},htmlEntities:function(t,e){return t=String(t||""),t=t.replace(/&/g,"&"),t=t.replace(/"/g,"""),t=t.replace(/\'/g,"'"),t=t.replace(/</g,"<"),t=t.replace(/>/g,">"),(null==e||e)&&(t=t.replace(/\n/g,"
")),t},isVml:function(t){return null!=t&&"urn:schemas-microsoft-com:vml"==t.tagUrn},getXml:function(t,e){var n="";if(mxClient.IS_IE||mxClient.IS_IE11)n=mxUtils.getPrettyXml(t,"","","");else if(null!=window.XMLSerializer){var i=new XMLSerializer;n=i.serializeToString(t)}else null!=t.xml&&(n=t.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n"));return e=e||"
",n=n.replace(/\n/g,e),n},getPrettyXml:function(t,e,n,i,r){var o=[];if(null!=t)if(e=null!=e?e:" ",n=null!=n?n:"",i=null!=i?i:"\n",null!=t.namespaceURI&&t.namespaceURI!=r&&(r=t.namespaceURI,null==t.getAttribute("xmlns")&&t.setAttribute("xmlns",t.namespaceURI)),t.nodeType==mxConstants.NODETYPE_DOCUMENT)o.push(mxUtils.getPrettyXml(t.documentElement,e,n,i,r));else if(t.nodeType==mxConstants.NODETYPE_DOCUMENT_FRAGMENT){var s=t.firstChild;if(null!=s)while(null!=s)o.push(mxUtils.getPrettyXml(s,e,n,i,r)),s=s.nextSibling}else if(t.nodeType==mxConstants.NODETYPE_COMMENT){var l=mxUtils.getTextContent(t);l.length>0&&o.push(n+"\x3c!--"+l+"--\x3e"+i)}else if(t.nodeType==mxConstants.NODETYPE_TEXT){l=mxUtils.trim(mxUtils.getTextContent(t));l.length>0&&o.push(n+mxUtils.htmlEntities(l,!1)+i)}else if(t.nodeType==mxConstants.NODETYPE_CDATA){l=mxUtils.getTextContent(t);l.length>0&&o.push(n+"<![CDATA["+l+"]]"+i)}else{o.push(n+"<"+t.nodeName);var a=t.attributes;if(null!=a)for(var h=0;h<a.length;h++){var u=mxUtils.htmlEntities(a[h].value);o.push(" "+a[h].nodeName+'="'+u+'"')}s=t.firstChild;if(null!=s){o.push(">"+i);while(null!=s)o.push(mxUtils.getPrettyXml(s,e,n+e,i,r)),s=s.nextSibling;o.push(n+"</"+t.nodeName+">"+i)}else o.push(" />"+i)}return o.join("")},extractTextWithWhitespace:function(t){var e=["BLOCKQUOTE","DIV","H1","H2","H3","H4","H5","H6","OL","P","PRE","TABLE","UL"],n=[];function i(t){if(1!=t.length||"BR"!=t[0].nodeName&&"\n"!=t[0].innerHTML)for(var r=0;r<t.length;r++){var o=t[r];"BR"==o.nodeName||"\n"==o.innerHTML||(1==t.length||0==r)&&"DIV"==o.nodeName&&"<br>"==o.innerHTML.toLowerCase()?n.push("\n"):(3===o.nodeType||4===o.nodeType?o.nodeValue.length>0&&n.push(o.nodeValue):8!==o.nodeType&&o.childNodes.length>0&&i(o.childNodes),r<t.length-1&&mxUtils.indexOf(e,t[r+1].nodeName)>=0&&n.push("\n"))}}return i(t),n.join("")},replaceTrailingNewlines:function(t,e){var n="";while(t.length>0&&"\n"==t.charAt(t.length-1))t=t.substring(0,t.length-1),n+=e;return t+n},getTextContent:function(t){return mxClient.IS_IE&&void 0!==t.innerText?t.innerText:null!=t?t[void 0===t.textContent?"text":"textContent"]:""},setTextContent:function(t,e){void 0!==t.innerText?t.innerText=e:t[void 0===t.textContent?"text":"textContent"]=e},getInnerHtml:function(){return mxClient.IS_IE?function(t){return null!=t?t.innerHTML:""}:function(t){if(null!=t){var e=new XMLSerializer;return e.serializeToString(t)}return""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(t){if(null!=t){if(null!=t.outerHTML)return t.outerHTML;var e=[];e.push("<"+t.nodeName);var n=t.attributes;if(null!=n)for(var i=0;i<n.length;i++){var r=n[i].value;null!=r&&r.length>0&&(e.push(" "),e.push(n[i].nodeName),e.push('="'),e.push(r),e.push('"'))}return 0==t.innerHTML.length?e.push("/>"):(e.push(">"),e.push(t.innerHTML),e.push("</"+t.nodeName+">")),e.join("")}return""}:function(t){if(null!=t){var e=new XMLSerializer;return e.serializeToString(t)}return""}}(),write:function(t,e){var n=t.ownerDocument,i=n.createTextNode(e);return null!=t&&t.appendChild(i),i},writeln:function(t,e){var n=t.ownerDocument,i=n.createTextNode(e);return null!=t&&(t.appendChild(i),t.appendChild(document.createElement("br"))),i},br:function(t,e){e=e||1;for(var n=null,i=0;i<e;i++)null!=t&&(n=t.ownerDocument.createElement("br"),t.appendChild(n));return n},button:function(t,e,n){n=null!=n?n:document;var i=n.createElement("button");return mxUtils.write(i,t),mxEvent.addListener(i,"click",(function(t){e(t)})),i},para:function(t,e){var n=document.createElement("p");return mxUtils.write(n,e),null!=t&&t.appendChild(n),n},addTransparentBackgroundFilter:function(t){t.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(t,e,n,i,r){return mxUtils.link(t,e,(function(){n.execute(i)}),r)},linkInvoke:function(t,e,n,i,r,o){return mxUtils.link(t,e,(function(){n[i](r)}),o)},link:function(t,e,n,i){var r=document.createElement("span");return r.style.color="blue",r.style.textDecoration="underline",r.style.cursor="pointer",null!=i&&(r.style.paddingLeft=i+"px"),mxEvent.addListener(r,"click",n),mxUtils.write(r,e),null!=t&&t.appendChild(r),r},getDocumentSize:function(){var t=document.body,e=document.documentElement;try{return new mxRectangle(0,0,t.clientWidth||e.clientWidth,Math.max(t.clientHeight||0,e.clientHeight))}catch(n){return new mxRectangle}},fit:function(t){var e=mxUtils.getDocumentSize(),n=parseInt(t.offsetLeft),i=parseInt(t.offsetWidth),r=mxUtils.getDocumentScrollOrigin(t.ownerDocument),o=r.x,s=r.y,l=(document.body,document.documentElement,o+e.width);n+i>l&&(t.style.left=Math.max(o,l-i)+"px");var a=parseInt(t.offsetTop),h=parseInt(t.offsetHeight),u=s+e.height;a+h>u&&(t.style.top=Math.max(s,u-h)+"px")},load:function(t){var e=new mxXmlRequest(t,null,"GET",!1);return e.send(),e},get:function(t,e,n,i,r,o,s){var l=new mxXmlRequest(t,null,"GET"),a=l.setRequestHeaders;return s&&(l.setRequestHeaders=function(t,e){for(var n in a.apply(this,arguments),s)t.setRequestHeader(n,s[n])}),null!=i&&l.setBinary(i),l.send(e,n,r,o),l},getAll:function(t,e,n){for(var i=t.length,r=[],o=0,s=function(){0==o&&null!=n&&n(),o++},l=0;l<t.length;l++)(function(t,n){mxUtils.get(t,(function(t){var o=t.getStatus();o<200||o>299?s():(r[n]=t,i--,0==i&&e(r))}),s)})(t[l],l);0==i&&e(r)},post:function(t,e,n,i){return new mxXmlRequest(t,e).send(n,i)},submit:function(t,e,n,i){return new mxXmlRequest(t,e).simulate(n,i)},loadInto:function(t,e,n){mxClient.IS_IE?e.onreadystatechange=function(){4==e.readyState&&n()}:e.addEventListener("load",n,!1),e.load(t)},getValue:function(t,e,n){var i=null!=t?t[e]:null;return null==i&&(i=n),i},getNumber:function(t,e,n){var i=null!=t?t[e]:null;return null==i&&(i=n||0),Number(i)},getColor:function(t,e,n){var i=null!=t?t[e]:null;return null==i?i=n:i==mxConstants.NONE&&(i=null),i},clone:function(t,e,n){n=null!=n&&n;var i=null;if(null!=t&&"function"==typeof t.constructor)for(var r in i=new t.constructor,t)r!=mxObjectIdentity.FIELD_NAME&&(null==e||mxUtils.indexOf(e,r)<0)&&(n||"object"!=typeof t[r]?i[r]=t[r]:i[r]=mxUtils.clone(t[r]));return i},equalPoints:function(t,e){if(null==t&&null!=e||null!=t&&null==e||null!=t&&null!=e&&t.length!=e.length)return!1;if(null!=t&&null!=e)for(var n=0;n<t.length;n++)if(null!=t[n]&&null==e[n]||null==t[n]&&null!=e[n]||null!=t[n]&&null!=e[n]&&(t[n].x!=e[n].x||t[n].y!=e[n].y))return!1;return!0},equalEntries:function(t,e){var n=0;if(null==t&&null!=e||null!=t&&null==e||null!=t&&null!=e&&t.length!=e.length)return!1;if(null!=t&&null!=e){for(var i in e)n++;for(var i in t)if(n--,(!mxUtils.isNaN(t[i])||!mxUtils.isNaN(e[i]))&&t[i]!=e[i])return!1}return 0==n},removeDuplicates:function(t){for(var e=new mxDictionary,n=[],i=0;i<t.length;i++)e.get(t[i])||(n.push(t[i]),e.put(t[i],!0));return n},isNaN:function(t){return"number"==typeof t&&isNaN(t)},extend:function(t,e){var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t},toString:function(t){var e="";for(var n in t)try{if(null==t[n])e+=n+" = [null]\n";else if("function"==typeof t[n])e+=n+" => [Function]\n";else if("object"==typeof t[n]){var i=mxUtils.getFunctionName(t[n].constructor);e+=n+" => ["+i+"]\n"}else e+=n+" = "+t[n]+"\n"}catch(r){e+=n+"="+r.message}return e},toRadians:function(t){return Math.PI*t/180},toDegree:function(t){return 180*t/Math.PI},arcToCurves:function(t,e,n,i,r,o,s,l,a){if(l-=t,a-=e,0===n||0===i)return j;var h=s,u=r;n=Math.abs(n),i=Math.abs(i);var d,c=-l/2,p=-a/2,g=Math.cos(u*Math.PI/180),m=Math.sin(u*Math.PI/180),x=g*c+m*p,y=-1*m*c+g*p,f=x*x,A=y*y,C=n*n,v=i*i,E=f/C+A/v;if(E>1)n=Math.sqrt(E)*n,i=Math.sqrt(E)*i,d=0;else{var w=1;o===h&&(w=-1),d=w*Math.sqrt((C*v-C*A-v*f)/(C*A+v*f))}var S=d*n*y/i,b=-1*d*i*x/n,T=g*S-m*b+l/2,L=m*S+g*b+a/2,I=Math.atan2((y-b)/i,(x-S)/n)-Math.atan2(0,1),M=I>=0?I:2*Math.PI+I;I=Math.atan2((-y-b)/i,(-x-S)/n)-Math.atan2((y-b)/i,(x-S)/n);var R=I>=0?I:2*Math.PI+I;0==h&&R>0?R-=2*Math.PI:0!=h&&R<0&&(R+=2*Math.PI);for(var O=2*R/Math.PI,N=Math.ceil(O<0?-1*O:O),D=R/N,P=8/3*Math.sin(D/4)*Math.sin(D/4)/Math.sin(D/2),H=g*n,k=g*i,G=m*n,B=m*i,U=Math.cos(M),V=Math.sin(M),F=-P*(H*V+B*U),z=-P*(G*V-k*U),Y=0,W=0,j=[],Q=0;Q<N;++Q){M+=D,U=Math.cos(M),V=Math.sin(M),Y=H*U-B*V+T,W=G*U+k*V+L;var Z=-P*(H*V+B*U),X=-P*(G*V-k*U),K=6*Q;j[K]=Number(F+t),j[K+1]=Number(z+e),j[K+2]=Number(Y-Z+t),j[K+3]=Number(W-X+e),j[K+4]=Number(Y+t),j[K+5]=Number(W+e),F=Y+Z,z=W+X}return j},getBoundingBox:function(t,e,n){var i=null;if(null!=t&&null!=e&&0!=e){var r=mxUtils.toRadians(e),o=Math.cos(r),s=Math.sin(r);n=null!=n?n:new mxPoint(t.x+t.width/2,t.y+t.height/2);var l=new mxPoint(t.x,t.y),a=new mxPoint(t.x+t.width,t.y),h=new mxPoint(a.x,t.y+t.height),u=new mxPoint(t.x,h.y);l=mxUtils.getRotatedPoint(l,o,s,n),a=mxUtils.getRotatedPoint(a,o,s,n),h=mxUtils.getRotatedPoint(h,o,s,n),u=mxUtils.getRotatedPoint(u,o,s,n),i=new mxRectangle(l.x,l.y,0,0),i.add(new mxRectangle(a.x,a.y,0,0)),i.add(new mxRectangle(h.x,h.y,0,0)),i.add(new mxRectangle(u.x,u.y,0,0))}return i},getRotatedPoint:function(t,e,n,i){i=null!=i?i:new mxPoint;var r=t.x-i.x,o=t.y-i.y,s=r*e-o*n,l=o*e+r*n;return new mxPoint(s+i.x,l+i.y)},getPortConstraints:function(t,e,n,i){var r=mxUtils.getValue(t.style,mxConstants.STYLE_PORT_CONSTRAINT,mxUtils.getValue(e.style,n?mxConstants.STYLE_SOURCE_PORT_CONSTRAINT:mxConstants.STYLE_TARGET_PORT_CONSTRAINT,null));if(null==r)return i;var o=r.toString(),s=mxConstants.DIRECTION_MASK_NONE,l=mxUtils.getValue(t.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0),a=0;1==l&&(a=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION,0));var h=0;if(a>45?(h=1,a>=135&&(h=2)):a<-45&&(h=3,a<=-135&&(h=2)),o.indexOf(mxConstants.DIRECTION_NORTH)>=0)switch(h){case 0:s|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:s|=mxConstants.DIRECTION_MASK_EAST;break;case 2:s|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:s|=mxConstants.DIRECTION_MASK_WEST;break}if(o.indexOf(mxConstants.DIRECTION_WEST)>=0)switch(h){case 0:s|=mxConstants.DIRECTION_MASK_WEST;break;case 1:s|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:s|=mxConstants.DIRECTION_MASK_EAST;break;case 3:s|=mxConstants.DIRECTION_MASK_SOUTH;break}if(o.indexOf(mxConstants.DIRECTION_SOUTH)>=0)switch(h){case 0:s|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:s|=mxConstants.DIRECTION_MASK_WEST;break;case 2:s|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:s|=mxConstants.DIRECTION_MASK_EAST;break}if(o.indexOf(mxConstants.DIRECTION_EAST)>=0)switch(h){case 0:s|=mxConstants.DIRECTION_MASK_EAST;break;case 1:s|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:s|=mxConstants.DIRECTION_MASK_WEST;break;case 3:s|=mxConstants.DIRECTION_MASK_NORTH;break}return s},reversePortConstraints:function(t){var e=0;return e=(t&mxConstants.DIRECTION_MASK_WEST)<<3,e|=(t&mxConstants.DIRECTION_MASK_NORTH)<<1,e|=(t&mxConstants.DIRECTION_MASK_SOUTH)>>1,e|=(t&mxConstants.DIRECTION_MASK_EAST)>>3,e},findNearestSegment:function(t,e,n){var i=-1;if(t.absolutePoints.length>0)for(var r=t.absolutePoints[0],o=null,s=1;s<t.absolutePoints.length;s++){var l=t.absolutePoints[s],a=mxUtils.ptSegDistSq(r.x,r.y,l.x,l.y,e,n);(null==o||a<o)&&(o=a,i=s-1),r=l}return i},getDirectedBounds:function(t,e,n,i,r){var o=mxUtils.getValue(n,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);if(i=null!=i?i:mxUtils.getValue(n,mxConstants.STYLE_FLIPH,!1),r=null!=r?r:mxUtils.getValue(n,mxConstants.STYLE_FLIPV,!1),e.x=Math.round(Math.max(0,Math.min(t.width,e.x))),e.y=Math.round(Math.max(0,Math.min(t.height,e.y))),e.width=Math.round(Math.max(0,Math.min(t.width,e.width))),e.height=Math.round(Math.max(0,Math.min(t.height,e.height))),r&&(o==mxConstants.DIRECTION_SOUTH||o==mxConstants.DIRECTION_NORTH)||i&&(o==mxConstants.DIRECTION_EAST||o==mxConstants.DIRECTION_WEST)){var s=e.x;e.x=e.width,e.width=s}if(i&&(o==mxConstants.DIRECTION_SOUTH||o==mxConstants.DIRECTION_NORTH)||r&&(o==mxConstants.DIRECTION_EAST||o==mxConstants.DIRECTION_WEST)){s=e.y;e.y=e.height,e.height=s}var l=mxRectangle.fromRectangle(e);return o==mxConstants.DIRECTION_SOUTH?(l.y=e.x,l.x=e.height,l.width=e.y,l.height=e.width):o==mxConstants.DIRECTION_WEST?(l.y=e.height,l.x=e.width,l.width=e.x,l.height=e.y):o==mxConstants.DIRECTION_NORTH&&(l.y=e.width,l.x=e.y,l.width=e.height,l.height=e.x),new mxRectangle(t.x+l.x,t.y+l.y,t.width-l.width-l.x,t.height-l.height-l.y)},getPerimeterPoint:function(t,e,n){for(var i=null,r=0;r<t.length-1;r++){var o=mxUtils.intersection(t[r].x,t[r].y,t[r+1].x,t[r+1].y,e.x,e.y,n.x,n.y);if(null!=o){var s=n.x-o.x,l=n.y-o.y,a={p:o,distSq:l*l+s*s};null!=a&&(null==i||i.distSq>a.distSq)&&(i=a)}}return null!=i?i.p:null},rectangleIntersectsSegment:function(t,e,n){var i=t.y,r=t.x,o=i+t.height,s=r+t.width,l=e.x,a=n.x;if(e.x>n.x&&(l=n.x,a=e.x),a>s&&(a=s),l<r&&(l=r),l>a)return!1;var h=e.y,u=n.y,d=n.x-e.x;if(Math.abs(d)>1e-7){var c=(n.y-e.y)/d,p=e.y-c*e.x;h=c*l+p,u=c*a+p}if(h>u){var g=u;u=h,h=g}return u>o&&(u=o),h<i&&(h=i),!(h>u)},contains:function(t,e,n){return t.x<=e&&t.x+t.width>=e&&t.y<=n&&t.y+t.height>=n},intersects:function(t,e){var n=t.width,i=t.height,r=e.width,o=e.height;if(r<=0||o<=0||n<=0||i<=0)return!1;var s=t.x,l=t.y,a=e.x,h=e.y;return r+=a,o+=h,n+=s,i+=l,(r<a||r>s)&&(o<h||o>l)&&(n<s||n>a)&&(i<l||i>h)},intersectsHotspot:function(t,e,n,i,r,o){if(i=null!=i?i:1,r=null!=r?r:0,o=null!=o?o:0,i>0){var s=t.getCenterX(),l=t.getCenterY(),a=t.width,h=t.height,u=mxUtils.getValue(t.style,mxConstants.STYLE_STARTSIZE)*t.view.scale;u>0&&(mxUtils.getValue(t.style,mxConstants.STYLE_HORIZONTAL,!0)?(l=t.y+u/2,h=u):(s=t.x+u/2,a=u)),a=Math.max(r,a*i),h=Math.max(r,h*i),o>0&&(a=Math.min(a,o),h=Math.min(h,o));var d=new mxRectangle(s-a/2,l-h/2,a,h),c=mxUtils.toRadians(mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0);if(0!=c){var p=Math.cos(-c),g=Math.sin(-c),m=(s=new mxPoint(t.getCenterX(),t.getCenterY()),mxUtils.getRotatedPoint(new mxPoint(e,n),p,g,s));e=m.x,n=m.y}return mxUtils.contains(d,e,n)}return!0},getOffset:function(t,e){var n=0,i=0,r=!1,o=t,s=document.body,l=document.documentElement;while(null!=o&&o!=s&&o!=l&&!r){var a=mxUtils.getCurrentStyle(o);null!=a&&(r=r||"fixed"==a.position),o=o.parentNode}if(!e&&!r){var h=mxUtils.getDocumentScrollOrigin(t.ownerDocument);n+=h.x,i+=h.y}var u=t.getBoundingClientRect();return null!=u&&(n+=u.left,i+=u.top),new mxPoint(n,i)},getDocumentScrollOrigin:function(t){if(mxClient.IS_QUIRKS)return new mxPoint(t.body.scrollLeft,t.body.scrollTop);var e=t.defaultView||t.parentWindow,n=null!=e&&void 0!==window.pageXOffset?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft,i=null!=e&&void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop;return new mxPoint(n,i)},getScrollOrigin:function(t,e,n){e=null!=e&&e,n=null==n||n;var i=null!=t?t.ownerDocument:document,r=i.body,o=i.documentElement,s=new mxPoint,l=!1;while(null!=t&&t!=r&&t!=o){isNaN(t.scrollLeft)||isNaN(t.scrollTop)||(s.x+=t.scrollLeft,s.y+=t.scrollTop);var a=mxUtils.getCurrentStyle(t);null!=a&&(l=l||"fixed"==a.position),t=e?t.parentNode:null}if(!l&&n){var h=mxUtils.getDocumentScrollOrigin(i);s.x+=h.x,s.y+=h.y}return s},convertPoint:function(t,e,n){var i=mxUtils.getScrollOrigin(t,!1),r=mxUtils.getOffset(t);return r.x-=i.x,r.y-=i.y,new mxPoint(e-r.x,n-r.y)},ltrim:function(t,e){return e=e||"\\s",null!=t?t.replace(new RegExp("^["+e+"]+","g"),""):null},rtrim:function(t,e){return e=e||"\\s",null!=t?t.replace(new RegExp("["+e+"]+$","g"),""):null},trim:function(t,e){return mxUtils.ltrim(mxUtils.rtrim(t,e),e)},isNumeric:function(t){return!isNaN(parseFloat(t))&&isFinite(t)&&("string"!=typeof t||t.toLowerCase().indexOf("0x")<0)},isInteger:function(t){return String(parseInt(t))===String(t)},mod:function(t,e){return(t%e+e)%e},intersection:function(t,e,n,i,r,o,s,l){var a=(l-o)*(n-t)-(s-r)*(i-e),h=(s-r)*(e-o)-(l-o)*(t-r),u=(n-t)*(e-o)-(i-e)*(t-r),d=h/a,c=u/a;if(d>=0&&d<=1&&c>=0&&c<=1){var p=t+d*(n-t),g=e+d*(i-e);return new mxPoint(p,g)}return null},ptSegDistSq:function(t,e,n,i,r,o){n-=t,i-=e,r-=t,o-=e;var s,l=r*n+o*i;l<=0?s=0:(r=n-r,o=i-o,l=r*n+o*i,s=l<=0?0:l*l/(n*n+i*i));var a=r*r+o*o-s;return a<0&&(a=0),a},ptLineDist:function(t,e,n,i,r,o){return Math.abs((i-e)*r-(n-t)*o+n*e-i*t)/Math.sqrt((i-e)*(i-e)+(n-t)*(n-t))},relativeCcw:function(t,e,n,i,r,o){n-=t,i-=e,r-=t,o-=e;var s=r*i-o*n;return 0==s&&(s=r*n+o*i,s>0&&(r-=n,o-=i,s=r*n+o*i,s<0&&(s=0))),s<0?-1:s>0?1:0},animateChanges:function(t,e){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(t,e,n){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(t,e,n,i,r,o){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(t,e){mxUtils.isVml(t)?t.style.filter=e>=100?"":"alpha(opacity="+e/5+")":mxClient.IS_IE&&("undefined"===typeof document.documentMode||document.documentMode<9)?t.style.filter=e>=100?"":"alpha(opacity="+e+")":t.style.opacity=e/100},createImage:function(t){var e=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(e=document.createElement(mxClient.VML_PREFIX+":image"),e.setAttribute("src",t),e.style.borderStyle="none"):(e=document.createElement("img"),e.setAttribute("src",t),e.setAttribute("border","0")),e},sortCells:function(t,e){e=null==e||e;var n=new mxDictionary;return t.sort((function(t,i){var r=n.get(t);null==r&&(r=mxCellPath.create(t).split(mxCellPath.PATH_SEPARATOR),n.put(t,r));var o=n.get(i);null==o&&(o=mxCellPath.create(i).split(mxCellPath.PATH_SEPARATOR),n.put(i,o));var s=mxCellPath.compare(r,o);return 0==s?0:s>0==e?1:-1})),t},getStylename:function(t){if(null!=t){var e=t.split(";"),n=e[0];if(n.indexOf("=")<0)return n}return""},getStylenames:function(t){var e=[];if(null!=t)for(var n=t.split(";"),i=0;i<n.length;i++)n[i].indexOf("=")<0&&e.push(n[i]);return e},indexOfStylename:function(t,e){if(null!=t&&null!=e)for(var n=t.split(";"),i=0,r=0;r<n.length;r++){if(n[r]==e)return i;i+=n[r].length+1}return-1},addStylename:function(t,e){return mxUtils.indexOfStylename(t,e)<0&&(null==t?t="":t.length>0&&";"!=t.charAt(t.length-1)&&(t+=";"),t+=e),t},removeStylename:function(t,e){var n=[];if(null!=t)for(var i=t.split(";"),r=0;r<i.length;r++)i[r]!=e&&n.push(i[r]);return n.join(";")},removeAllStylenames:function(t){var e=[];if(null!=t)for(var n=t.split(";"),i=0;i<n.length;i++)n[i].indexOf("=")>=0&&e.push(n[i]);return e.join(";")},setCellStyles:function(t,e,n,i){if(null!=e&&e.length>0){t.beginUpdate();try{for(var r=0;r<e.length;r++)if(null!=e[r]){var o=mxUtils.setStyle(t.getStyle(e[r]),n,i);t.setStyle(e[r],o)}}finally{t.endUpdate()}}},setStyle:function(t,e,n){var i=null!=n&&("undefined"==typeof n.length||n.length>0);if(null==t||0==t.length)i&&(t=e+"="+n+";");else if(t.substring(0,e.length+1)==e+"="){var r=t.indexOf(";");t=i?e+"="+n+(r<0?";":t.substring(r)):r<0||r==t.length-1?"":t.substring(r+1)}else{var o=t.indexOf(";"+e+"=");if(o<0){if(i){var s=";"==t.charAt(t.length-1)?"":";";t=t+s+e+"="+n+";"}}else{r=t.indexOf(";",o+1);t=i?t.substring(0,o+1)+e+"="+n+(r<0?";":t.substring(r)):t.substring(0,o)+(r<0?";":t.substring(r))}}return t},setCellStyleFlags:function(t,e,n,i,r){if(null!=e&&e.length>0){t.beginUpdate();try{for(var o=0;o<e.length;o++)if(null!=e[o]){var s=mxUtils.setStyleFlag(t.getStyle(e[o]),n,i,r);t.setStyle(e[o],s)}}finally{t.endUpdate()}}},setStyleFlag:function(t,e,n,i){if(null==t||0==t.length)t=i||null==i?e+"="+n:e+"=0";else{var r=t.indexOf(e+"=");if(r<0){var o=";"==t.charAt(t.length-1)?"":";";t=i||null==i?t+o+e+"="+n:t+o+e+"=0"}else{var s=t.indexOf(";",r),l="";l=s<0?t.substring(r+e.length+1):t.substring(r+e.length+1,s),l=null==i?parseInt(l)^n:i?parseInt(l)|n:parseInt(l)&~n,t=t.substring(0,r)+e+"="+l+(s>=0?t.substring(s):"")}}return t},getAlignmentAsPoint:function(t,e){var n=-.5,i=-.5;return t==mxConstants.ALIGN_LEFT?n=0:t==mxConstants.ALIGN_RIGHT&&(n=-1),e==mxConstants.ALIGN_TOP?i=0:e==mxConstants.ALIGN_BOTTOM&&(i=-1),new mxPoint(n,i)},getSizeForString:function(t,e,n,i,r){e=null!=e?e:mxConstants.DEFAULT_FONTSIZE,n=null!=n?n:mxConstants.DEFAULT_FONTFAMILY;var o=document.createElement("div");if(o.style.fontFamily=n,o.style.fontSize=Math.round(e)+"px",o.style.lineHeight=Math.round(e*mxConstants.LINE_HEIGHT)+"px",null!=r){(r&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(o.style.fontWeight="bold"),(r&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(o.style.fontStyle="italic");var s=[];(r&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&s.push("underline"),(r&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&s.push("line-through"),s.length>0&&(o.style.textDecoration=s.join(" "))}o.style.position="absolute",o.style.visibility="hidden",o.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",o.style.zoom="1",null!=i?(o.style.width=i+"px",o.style.whiteSpace="normal"):o.style.whiteSpace="nowrap",o.innerHTML=t,document.body.appendChild(o);var l=new mxRectangle(0,0,o.offsetWidth,o.offsetHeight);return document.body.removeChild(o),l},getViewXml:function(t,e,n,i,r){if(i=null!=i?i:0,r=null!=r?r:0,e=null!=e?e:1,null==n){var o=t.getModel();n=[o.getRoot()]}var s=t.getView(),l=null,a=s.isEventsEnabled();s.setEventsEnabled(!1);var h=s.drawPane,u=s.overlayPane;t.dialect==mxConstants.DIALECT_SVG?(s.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),s.canvas.appendChild(s.drawPane),s.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g"),s.canvas.appendChild(s.overlayPane)):(s.drawPane=s.drawPane.cloneNode(!1),s.canvas.appendChild(s.drawPane),s.overlayPane=s.overlayPane.cloneNode(!1),s.canvas.appendChild(s.overlayPane));var d=s.getTranslate();s.translate=new mxPoint(i,r);var c=new mxTemporaryCellStates(t.getView(),e,n);try{var p=new mxCodec;l=p.encode(t.getView())}finally{c.destroy(),s.translate=d,s.canvas.removeChild(s.drawPane),s.canvas.removeChild(s.overlayPane),s.drawPane=h,s.overlayPane=u,s.setEventsEnabled(a)}return l},getScaleForPageCount:function(t,e,n,i){if(t<1)return 1;n=null!=n?n:mxConstants.PAGE_FORMAT_A4_PORTRAIT,i=null!=i?i:0;var r=n.width-2*i,o=n.height-2*i,s=e.getGraphBounds().clone(),l=e.getView().getScale();s.width/=l,s.height/=l;var a=s.width,h=s.height,u=1,d=r/o,c=a/h,p=c/d,g=Math.sqrt(t),m=Math.sqrt(p),x=g*m,y=g/m;if(x<1&&y>t){var f=y/t;y=t,x/=f}if(y<1&&x>t){f=x/t;x=t,y/=f}var A=Math.ceil(x)*Math.ceil(y),C=0;while(A>t){var v=Math.floor(x)/x,E=Math.floor(y)/y;1==v&&(v=Math.floor(x-1)/x),1==E&&(E=Math.floor(y-1)/y);f=1;if(f=v>E?v:E,x*=f,y*=f,A=Math.ceil(x)*Math.ceil(y),C++,C>10)break}var w=r*x;return u=w/a,.99999*u},show:function(t,e,n,i,r,o){if(n=null!=n?n:0,i=null!=i?i:0,null==e){var s=window.open();e=s.document}else e.open();9==document.documentMode&&e.writeln('\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=9"><![endif]--\x3e');var l=t.getGraphBounds(),a=Math.ceil(n-l.x),h=Math.ceil(i-l.y);if(null==r&&(r=Math.ceil(l.width+n)+Math.ceil(Math.ceil(l.x)-l.x)),null==o&&(o=Math.ceil(l.height+i)+Math.ceil(Math.ceil(l.y)-l.y)),mxClient.IS_IE||11==document.documentMode){for(var u="<html><head>",d=document.getElementsByTagName("base"),c=0;c<d.length;c++)u+=d[c].outerHTML;u+="<style>";for(c=0;c<document.styleSheets.length;c++)try{u+=document.styleSheets[c].cssText}catch(C){}u+='</style></head><body style="margin:0px;">',u+='<div style="position:absolute;overflow:hidden;width:'+r+"px;height:"+o+'px;"><div style="position:relative;left:'+a+"px;top:"+h+'px;">',u+=t.container.innerHTML,u+="</div></div></body><html>",e.writeln(u),e.close()}else{e.writeln("<html><head>");for(d=document.getElementsByTagName("base"),c=0;c<d.length;c++)e.writeln(mxUtils.getOuterHtml(d[c]));var p=document.getElementsByTagName("link");for(c=0;c<p.length;c++)e.writeln(mxUtils.getOuterHtml(p[c]));var g=document.getElementsByTagName("style");for(c=0;c<g.length;c++)e.writeln(mxUtils.getOuterHtml(g[c]));e.writeln('</head><body style="margin:0px;"></body></html>'),e.close();var m=e.createElement("div");m.position="absolute",m.overflow="hidden",m.style.width=r+"px",m.style.height=o+"px";var x=e.createElement("div");x.style.position="absolute",x.style.left=a+"px",x.style.top=h+"px";var y=t.container.firstChild,f=null;while(null!=y){var A=y.cloneNode(!0);y==t.view.drawPane.ownerSVGElement?(m.appendChild(A),f=A):x.appendChild(A),y=y.nextSibling}e.body.appendChild(m),null!=x.firstChild&&e.body.appendChild(x),null!=f&&(f.style.minWidth="",f.style.minHeight="",f.firstChild.setAttribute("transform","translate("+a+","+h+")"))}return mxUtils.removeCursors(e.body),e},printScreen:function(t){var e=window.open();t.getGraphBounds();mxUtils.show(t,e.document);var n=function(){e.focus(),e.print(),e.close()};mxClient.IS_GC?e.setTimeout(n,500):n()},popup:function(t,e){if(e){var n=document.createElement("div");n.style.overflow="scroll",n.style.width="636px",n.style.height="460px";var i=document.createElement("pre");i.innerHTML=mxUtils.htmlEntities(t,!1).replace(/\n/g,"<br>").replace(/ /g," "),n.appendChild(i);var r=document.body.clientWidth,o=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight),s=new mxWindow("Popup Window",n,r/2-320,o/2-240,640,480,!1,!0);s.setClosable(!0),s.setVisible(!0)}else if(mxClient.IS_NS){s=window.open();s.document.writeln("<pre>"+mxUtils.htmlEntities(t)+"</pre"),s.document.close()}else{s=window.open(),i=s.document.createElement("pre");i.innerHTML=mxUtils.htmlEntities(t,!1).replace(/\n/g,"<br>").replace(/ /g," "),s.document.body.appendChild(i)}},alert:function(t){alert(t)},prompt:function(t,e){return prompt(t,null!=e?e:"")},confirm:function(t){return confirm(t)},error:function(t,e,n,i){var r=document.createElement("div");r.style.padding="20px";var o=document.createElement("img");o.setAttribute("src",i||mxUtils.errorImage),o.setAttribute("valign","bottom"),o.style.verticalAlign="middle",r.appendChild(o),r.appendChild(document.createTextNode(" ")),r.appendChild(document.createTextNode(" ")),r.appendChild(document.createTextNode(" ")),mxUtils.write(r,t);var s=document.body.clientWidth,l=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,r,(s-e)/2,l/4,e,null,!1,!0);if(n){mxUtils.br(r);var h=document.createElement("p"),u=document.createElement("button");mxClient.IS_IE?u.style.cssText="float:right":u.setAttribute("style","float:right"),mxEvent.addListener(u,"click",(function(t){a.destroy()})),mxUtils.write(u,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),h.appendChild(u),r.appendChild(h),mxUtils.br(r),a.setClosable(!0)}return a.setVisible(!0),a},makeDraggable:function(t,e,n,i,r,o,s,l,a,h){var u=new mxDragSource(t,n);return u.dragOffset=new mxPoint(null!=r?r:0,null!=o?o:mxConstants.TOOLTIP_VERTICAL_OFFSET),u.autoscroll=s,u.setGuidesEnabled(!1),null!=a&&(u.highlightDropTargets=a),null!=h&&(u.getDropTarget=h),u.getGraphForEvent=function(t){return"function"==typeof e?e(t):e},null!=i&&(u.createDragElement=function(){return i.cloneNode(!0)},l&&(u.createPreviewElement=function(t){var e=i.cloneNode(!0),n=parseInt(e.style.width),r=parseInt(e.style.height);return e.style.width=Math.round(n*t.view.scale)+"px",e.style.height=Math.round(r*t.view.scale)+"px",e})),u}};__mxOutput.mxUtils="undefined"!==typeof mxUtils?mxUtils:void 0;var mxConstants={DEFAULT_HOTSPOT:.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",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",LINE_HEIGHT:1.2,WORD_WRAP:"normal",ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:0,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(t){this.name=t,this.properties=[];for(var e=1;e<arguments.length;e+=2)null!=arguments[e+1]&&(this.properties[arguments[e]]=arguments[e+1])}function mxMouseEvent(t,e){this.evt=t,this.state=e,this.sourceState=e}function mxEventSource(t){this.setEventSource(t)}__mxOutput.mxConstants="undefined"!==typeof mxConstants?mxConstants:void 0,mxEventObject.prototype.name=null,mxEventObject.prototype.properties=null,mxEventObject.prototype.consumed=!1,mxEventObject.prototype.getName=function(){return this.name},mxEventObject.prototype.getProperties=function(){return this.properties},mxEventObject.prototype.getProperty=function(t){return this.properties[t]},mxEventObject.prototype.isConsumed=function(){return this.consumed},mxEventObject.prototype.consume=function(){this.consumed=!0},__mxOutput.mxEventObject="undefined"!==typeof mxEventObject?mxEventObject:void 0,mxMouseEvent.prototype.consumed=!1,mxMouseEvent.prototype.evt=null,mxMouseEvent.prototype.graphX=null,mxMouseEvent.prototype.graphY=null,mxMouseEvent.prototype.state=null,mxMouseEvent.prototype.sourceState=null,mxMouseEvent.prototype.getEvent=function(){return this.evt},mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)},mxMouseEvent.prototype.isSource=function(t){return null!=t&&mxUtils.isAncestorNode(t.node,this.getSource())},mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())},mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())},mxMouseEvent.prototype.getGraphX=function(){return this.graphX},mxMouseEvent.prototype.getGraphY=function(){return this.graphY},mxMouseEvent.prototype.getState=function(){return this.state},mxMouseEvent.prototype.getCell=function(){var t=this.getState();return null!=t?t.cell:null},mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())},mxMouseEvent.prototype.isConsumed=function(){return this.consumed},mxMouseEvent.prototype.consume=function(t){t=null!=t?t:null!=this.evt.touches||mxEvent.isMouseEvent(this.evt),t&&this.evt.preventDefault&&this.evt.preventDefault(),mxClient.IS_IE&&(this.evt.returnValue=!0),this.consumed=!0},__mxOutput.mxMouseEvent="undefined"!==typeof mxMouseEvent?mxMouseEvent:void 0,mxEventSource.prototype.eventListeners=null,mxEventSource.prototype.eventsEnabled=!0,mxEventSource.prototype.eventSource=null,mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled},mxEventSource.prototype.setEventsEnabled=function(t){this.eventsEnabled=t},mxEventSource.prototype.getEventSource=function(){return this.eventSource},mxEventSource.prototype.setEventSource=function(t){this.eventSource=t},mxEventSource.prototype.addListener=function(t,e){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(t),this.eventListeners.push(e)},mxEventSource.prototype.removeListener=function(t){if(null!=this.eventListeners){var e=0;while(e<this.eventListeners.length)this.eventListeners[e+1]==t?this.eventListeners.splice(e,2):e+=2}},mxEventSource.prototype.fireEvent=function(t,e){if(null!=this.eventListeners&&this.isEventsEnabled()){null==t&&(t=new mxEventObject),null==e&&(e=this.getEventSource()),null==e&&(e=this);for(var n=[e,t],i=0;i<this.eventListeners.length;i+=2){var r=this.eventListeners[i];null!=r&&r!=t.getName()||this.eventListeners[i+1].apply(this,n)}}},__mxOutput.mxEventSource="undefined"!==typeof mxEventSource?mxEventSource:void 0;var mxEvent={addListener:function(){var t=function(t,e,n){null==t.mxListenerList&&(t.mxListenerList=[]);var i={name:e,f:n};t.mxListenerList.push(i)};return window.addEventListener?function(e,n,i){e.addEventListener(n,i,!1),t(e,n,i)}:function(e,n,i){e.attachEvent("on"+n,i),t(e,n,i)}}(),removeListener:function(){var t=function(t,e,n){if(null!=t.mxListenerList){for(var i=t.mxListenerList.length,r=0;r<i;r++){var o=t.mxListenerList[r];if(o.f==n){t.mxListenerList.splice(r,1);break}}0==t.mxListenerList.length&&(t.mxListenerList=null)}};return window.removeEventListener?function(e,n,i){e.removeEventListener(n,i,!1),t(e,n,i)}:function(e,n,i){e.detachEvent("on"+n,i),t(e,n,i)}}(),removeAllListeners:function(t){var e=t.mxListenerList;if(null!=e)while(e.length>0){var n=e[0];mxEvent.removeListener(t,n.name,n.f)}},addGestureListeners:function(t,e,n,i){null!=e&&mxEvent.addListener(t,mxClient.IS_POINTER?"pointerdown":"mousedown",e),null!=n&&mxEvent.addListener(t,mxClient.IS_POINTER?"pointermove":"mousemove",n),null!=i&&mxEvent.addListener(t,mxClient.IS_POINTER?"pointerup":"mouseup",i),!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(null!=e&&mxEvent.addListener(t,"touchstart",e),null!=n&&mxEvent.addListener(t,"touchmove",n),null!=i&&mxEvent.addListener(t,"touchend",i))},removeGestureListeners:function(t,e,n,i){null!=e&&mxEvent.removeListener(t,mxClient.IS_POINTER?"pointerdown":"mousedown",e),null!=n&&mxEvent.removeListener(t,mxClient.IS_POINTER?"pointermove":"mousemove",n),null!=i&&mxEvent.removeListener(t,mxClient.IS_POINTER?"pointerup":"mouseup",i),!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(null!=e&&mxEvent.removeListener(t,"touchstart",e),null!=n&&mxEvent.removeListener(t,"touchmove",n),null!=i&&mxEvent.removeListener(t,"touchend",i))},redirectMouseEvents:function(t,e,n,i,r,o,s){var l=function(t){return"function"==typeof n?n(t):n};mxEvent.addGestureListeners(t,(function(t){null!=i?i(t):mxEvent.isConsumed(t)||e.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t,l(t)))}),(function(t){null!=r?r(t):mxEvent.isConsumed(t)||e.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,l(t)))}),(function(t){null!=o?o(t):mxEvent.isConsumed(t)||e.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t,l(t)))})),mxEvent.addListener(t,"dblclick",(function(t){if(null!=s)s(t);else if(!mxEvent.isConsumed(t)){var n=l(t);e.dblClick(t,null!=n?n.cell:null)}}))},release:function(t){try{if(null!=t){mxEvent.removeAllListeners(t);var e=t.childNodes;if(null!=e)for(var n=e.length,i=0;i<n;i+=1)mxEvent.release(e[i])}}catch(r){}},addMouseWheelListener:function(t,e){if(null!=t){var n=function(e){null==e&&(e=window.event),e.ctrlKey&&e.preventDefault();e.deltaY;(Math.abs(e.deltaX)>.5||Math.abs(e.deltaY)>.5)&&t(e,0==e.deltaY?-e.deltaX>0:-e.deltaY>0)};if(e=null!=e?e:window,mxClient.IS_SF&&!mxClient.IS_TOUCH){var i=1;mxEvent.addListener(e,"gesturestart",(function(t){mxEvent.consume(t),i=1})),mxEvent.addListener(e,"gesturechange",(function(e){mxEvent.consume(e);var n=i-e.scale;Math.abs(n)>.2&&(t(e,n<0,!0),i=e.scale)})),mxEvent.addListener(e,"gestureend",(function(t){mxEvent.consume(t)}))}else{var r=[],o=0,s=0;mxEvent.addGestureListeners(e,mxUtils.bind(this,(function(t){mxEvent.isMouseEvent(t)||null==t.pointerId||r.push(t)})),mxUtils.bind(this,(function(e){if(!mxEvent.isMouseEvent(e)&&2==r.length){for(var n=0;n<r.length;n++)if(e.pointerId==r[n].pointerId){r[n]=e;break}var i=Math.abs(r[0].clientX-r[1].clientX),l=Math.abs(r[0].clientY-r[1].clientY),a=Math.abs(i-o),h=Math.abs(l-s);if(a>mxEvent.PINCH_THRESHOLD||h>mxEvent.PINCH_THRESHOLD){var u=r[0].clientX+(r[1].clientX-r[0].clientX)/2,d=r[0].clientY+(r[1].clientY-r[0].clientY)/2;t(r[0],a>h?i>o:l>s,!0,u,d),o=i,s=l}}})),mxUtils.bind(this,(function(t){r=[],o=0,s=0})))}mxEvent.addListener(e,"wheel",n)}},disableContextMenu:function(t){mxEvent.addListener(t,"contextmenu",(function(t){return t.preventDefault&&t.preventDefault(),!1}))},getSource:function(t){return null!=t.srcElement?t.srcElement:t.target},isConsumed:function(t){return null!=t.isConsumed&&t.isConsumed},isTouchEvent:function(t){return null!=t.pointerType?"touch"==t.pointerType||t.pointerType===t.MSPOINTER_TYPE_TOUCH:null!=t.mozInputSource?5==t.mozInputSource:0==t.type.indexOf("touch")},isPenEvent:function(t){return null!=t.pointerType?"pen"==t.pointerType||t.pointerType===t.MSPOINTER_TYPE_PEN:null!=t.mozInputSource?2==t.mozInputSource:0==t.type.indexOf("pen")},isMultiTouchEvent:function(t){return null!=t.type&&0==t.type.indexOf("touch")&&null!=t.touches&&t.touches.length>1},isMouseEvent:function(t){return null!=t.pointerType?"mouse"==t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE:null!=t.mozInputSource?1==t.mozInputSource:0==t.type.indexOf("mouse")},isLeftMouseButton:function(t){return!("buttons"in t)||"mousedown"!=t.type&&"mousemove"!=t.type?"which"in t?1===t.which:1===t.button:1==t.buttons},isMiddleMouseButton:function(t){return"which"in t?2===t.which:4===t.button},isRightMouseButton:function(t){return"which"in t?3===t.which:2===t.button},isPopupTrigger:function(t){return mxEvent.isRightMouseButton(t)||mxClient.IS_MAC&&mxEvent.isControlDown(t)&&!mxEvent.isShiftDown(t)&&!mxEvent.isMetaDown(t)&&!mxEvent.isAltDown(t)},isShiftDown:function(t){return null!=t&&t.shiftKey},isAltDown:function(t){return null!=t&&t.altKey},isControlDown:function(t){return null!=t&&t.ctrlKey},isMetaDown:function(t){return null!=t&&t.metaKey},getMainEvent:function(t){return"touchstart"!=t.type&&"touchmove"!=t.type||null==t.touches||null==t.touches[0]?"touchend"==t.type&&null!=t.changedTouches&&null!=t.changedTouches[0]&&(t=t.changedTouches[0]):t=t.touches[0],t},getClientX:function(t){return mxEvent.getMainEvent(t).clientX},getClientY:function(t){return mxEvent.getMainEvent(t).clientY},consume:function(t,e,n){e=null==e||e,n=null==n||n,e&&(t.preventDefault?(n&&t.stopPropagation(),t.preventDefault()):n&&(t.cancelBubble=!0)),t.isConsumed=!0,t.preventDefault||(t.returnValue=!1)},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,CUSTOM_HANDLE:-100,VIRTUAL_HANDLE:-1e5,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",FIRE_MOUSE_EVENT:"fireMouseEvent",GESTURE:"gesture",TAP_AND_HOLD:"tapAndHold",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",SUSPEND:"suspend",RESUME:"resume",MARK:"mark",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",EDITING_STARTED:"editingStarted",EDITING_STOPPED:"editingStopped",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset",PINCH_THRESHOLD:10};function mxXmlRequest(t,e,n,i,r,o){this.url=t,this.params=e,this.method=n||"POST",this.async=null==i||i,this.username=r,this.password=o}__mxOutput.mxEvent="undefined"!==typeof mxEvent?mxEvent:void 0,mxXmlRequest.prototype.url=null,mxXmlRequest.prototype.params=null,mxXmlRequest.prototype.method=null,mxXmlRequest.prototype.async=null,mxXmlRequest.prototype.binary=!1,mxXmlRequest.prototype.withCredentials=!1,mxXmlRequest.prototype.username=null,mxXmlRequest.prototype.password=null,mxXmlRequest.prototype.request=null,mxXmlRequest.prototype.decodeSimulateValues=!1,mxXmlRequest.prototype.isBinary=function(){return this.binary},mxXmlRequest.prototype.setBinary=function(t){this.binary=t},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState},mxXmlRequest.prototype.getDocumentElement=function(){var t=this.getXml();return null!=t?t.documentElement:null},mxXmlRequest.prototype.getXml=function(){var t=this.request.responseXML;return(document.documentMode>=9||null==t||null==t.documentElement)&&(t=mxUtils.parseXml(this.request.responseText)),t},mxXmlRequest.prototype.getStatus=function(){return null!=this.request?this.request.status:null},mxXmlRequest.prototype.create=function(){return window.XMLHttpRequest?function(){var t=new XMLHttpRequest;return this.isBinary()&&t.overrideMimeType&&t.overrideMimeType("text/plain; charset=x-user-defined"),t}:"undefined"!=typeof ActiveXObject?function(){return new ActiveXObject("Microsoft.XMLHTTP")}:void 0}(),mxXmlRequest.prototype.send=function(t,e,n,i){this.request=this.create(),null!=this.request&&(null!=t&&(this.request.onreadystatechange=mxUtils.bind(this,(function(){this.isReady()&&(t(this),this.request.onreadystatechange=null)}))),this.request.open(this.method,this.url,this.async,this.username,this.password),this.setRequestHeaders(this.request,this.params),window.XMLHttpRequest&&this.withCredentials&&(this.request.withCredentials="true"),!mxClient.IS_QUIRKS&&(null==document.documentMode||document.documentMode>9)&&window.XMLHttpRequest&&null!=n&&null!=i&&(this.request.timeout=n,this.request.ontimeout=i),this.request.send(this.params))},mxXmlRequest.prototype.setRequestHeaders=function(t,e){null!=e&&t.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(t,e){t=t||document;var n=null;t==document&&(n=window.onbeforeunload,window.onbeforeunload=null);var i=t.createElement("form");i.setAttribute("method",this.method),i.setAttribute("action",this.url),null!=e&&i.setAttribute("target",e),i.style.display="none",i.style.visibility="hidden";for(var r=this.params.indexOf("&")>0?this.params.split("&"):this.params.split(),o=0;o<r.length;o++){var s=r[o].indexOf("=");if(s>0){var l=r[o].substring(0,s),a=r[o].substring(s+1);this.decodeSimulateValues&&(a=decodeURIComponent(a));var h=t.createElement("textarea");h.setAttribute("wrap","off"),h.setAttribute("name",l),mxUtils.write(h,a),i.appendChild(h)}}t.body.appendChild(i),i.submit(),null!=i.parentNode&&i.parentNode.removeChild(i),null!=n&&(window.onbeforeunload=n)},__mxOutput.mxXmlRequest="undefined"!==typeof mxXmlRequest?mxXmlRequest:void 0;var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,setCells:function(t){mxClipboard.cells=t},getCells:function(){return mxClipboard.cells},isEmpty:function(){return null==mxClipboard.getCells()},cut:function(t,e){return e=mxClipboard.copy(t,e),mxClipboard.insertCount=0,mxClipboard.removeCells(t,e),e},removeCells:function(t,e){t.removeCells(e)},copy:function(t,e){e=e||t.getSelectionCells();var n=t.getExportableCells(t.model.getTopmostCells(e));return mxClipboard.insertCount=1,mxClipboard.setCells(t.cloneCells(n)),n},paste:function(t){var e=null;if(!mxClipboard.isEmpty()){e=t.getImportableCells(mxClipboard.getCells());var n=mxClipboard.insertCount*mxClipboard.STEPSIZE,i=t.getDefaultParent();e=t.importCells(e,n,n,i),mxClipboard.insertCount++,t.setSelectionCells(e)}return e}};function mxWindow(t,e,n,i,r,o,s,l,a,h){null!=e&&(s=null==s||s,this.content=e,this.init(n,i,r,o,h),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(s),this.setTitle(t),(null==l||l)&&this.installMoveHandler(),null!=a&&null!=a.parentNode?a.parentNode.replaceChild(this.div,a):document.body.appendChild(this.div))}function mxForm(t){this.table=document.createElement("table"),this.table.className=t,this.body=document.createElement("tbody"),this.table.appendChild(this.body)}function mxImage(t,e,n){this.src=t,this.width=e,this.height=n}function mxDivResizer(t,e){if("div"==t.nodeName.toLowerCase()){null==e&&(e=window),this.div=t;var n=mxUtils.getCurrentStyle(t);null!=n&&(this.resizeWidth="auto"==n.width,this.resizeHeight="auto"==n.height),mxEvent.addListener(e,"resize",mxUtils.bind(this,(function(t){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)}))),this.resize()}}function mxDragSource(t,e){this.element=t,this.dropHandler=e,mxEvent.addGestureListeners(t,mxUtils.bind(this,(function(t){this.mouseDown(t)}))),mxEvent.addListener(t,"dragstart",(function(t){mxEvent.consume(t)})),this.eventConsumer=function(t,e){var n=e.getProperty("eventName"),i=e.getProperty("event");n!=mxEvent.MOUSE_DOWN&&i.consume()}}function mxToolbar(t){this.container=t}function mxUndoableEdit(t,e){this.source=t,this.changes=[],this.significant=null==e||e}function mxUndoManager(t){this.size=null!=t?t:100,this.clear()}__mxOutput.mxClipboard="undefined"!==typeof mxClipboard?mxClipboard:void 0,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(t,e,n,i,r){r=null!=r?r:"mxWindow",this.div=document.createElement("div"),this.div.className=r,this.div.style.left=t+"px",this.div.style.top=e+"px",this.table=document.createElement("table"),this.table.className=r,mxClient.IS_POINTER&&(this.div.style.touchAction="none"),null!=n&&(mxClient.IS_QUIRKS||(this.div.style.width=n+"px"),this.table.style.width=n+"px"),null!=i&&(mxClient.IS_QUIRKS||(this.div.style.height=i+"px"),this.table.style.height=i+"px");var o=document.createElement("tbody"),s=document.createElement("tr");this.title=document.createElement("td"),this.title.className=r+"Title",this.buttons=document.createElement("div"),this.buttons.style.position="absolute",this.buttons.style.display="inline-block",this.buttons.style.right="4px",this.buttons.style.top="5px",this.title.appendChild(this.buttons),s.appendChild(this.title),o.appendChild(s),s=document.createElement("tr"),this.td=document.createElement("td"),this.td.className=r+"Pane",7==document.documentMode&&(this.td.style.height="100%"),this.contentWrapper=document.createElement("div"),this.contentWrapper.className=r+"Pane",this.contentWrapper.style.width="100%",this.contentWrapper.appendChild(this.content),(mxClient.IS_QUIRKS||"DIV"!=this.content.nodeName.toUpperCase())&&(this.contentWrapper.style.height="100%"),this.td.appendChild(this.contentWrapper),s.appendChild(this.td),o.appendChild(s),this.table.appendChild(o),this.div.appendChild(this.table);var l=mxUtils.bind(this,(function(t){this.activate()}));mxEvent.addGestureListeners(this.title,l),mxEvent.addGestureListeners(this.table,l),this.hide()},mxWindow.prototype.setTitle=function(t){var e=this.title.firstChild;while(null!=e){var n=e.nextSibling;e.nodeType==mxConstants.NODETYPE_TEXT&&e.parentNode.removeChild(e),e=n}mxUtils.write(this.title,t||""),this.title.appendChild(this.buttons)},mxWindow.prototype.setScrollable=function(t){(null==navigator.userAgent||navigator.userAgent.indexOf("Presto/2.5")<0)&&(this.contentWrapper.style.overflow=t?"auto":"hidden")},mxWindow.prototype.activate=function(){if(mxWindow.activeWindow!=this){var t=mxUtils.getCurrentStyle(this.getElement()),e=null!=t?t.zIndex:3;if(mxWindow.activeWindow){var n=mxWindow.activeWindow.getElement();null!=n&&null!=n.style&&(n.style.zIndex=e)}var i=mxWindow.activeWindow;this.getElement().style.zIndex=parseInt(e)+1,mxWindow.activeWindow=this,this.fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",i))}},mxWindow.prototype.getElement=function(){return this.div},mxWindow.prototype.fit=function(){mxUtils.fit(this.div)},mxWindow.prototype.isResizable=function(){return null!=this.resize&&"none"!=this.resize.style.display},mxWindow.prototype.setResizable=function(t){if(t)if(null==this.resize){this.resize=document.createElement("img"),this.resize.style.position="absolute",this.resize.style.bottom="2px",this.resize.style.right="2px",this.resize.setAttribute("src",this.resizeImage),this.resize.style.cursor="nw-resize";var e=null,n=null,i=null,r=null,o=mxUtils.bind(this,(function(t){this.activate(),e=mxEvent.getClientX(t),n=mxEvent.getClientY(t),i=this.div.offsetWidth,r=this.div.offsetHeight,mxEvent.addGestureListeners(document,null,s,l),this.fireEvent(new mxEventObject(mxEvent.RESIZE_START,"event",t)),mxEvent.consume(t)})),s=mxUtils.bind(this,(function(t){if(null!=e&&null!=n){var o=mxEvent.getClientX(t)-e,s=mxEvent.getClientY(t)-n;this.setSize(i+o,r+s),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",t)),mxEvent.consume(t)}})),l=mxUtils.bind(this,(function(t){null!=e&&null!=n&&(e=null,n=null,mxEvent.removeGestureListeners(document,null,s,l),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",t)),mxEvent.consume(t))}));mxEvent.addGestureListeners(this.resize,o,s,l),this.div.appendChild(this.resize)}else this.resize.style.display="inline";else null!=this.resize&&(this.resize.style.display="none")},mxWindow.prototype.setSize=function(t,e){t=Math.max(this.minimumSize.width,t),e=Math.max(this.minimumSize.height,e),mxClient.IS_QUIRKS||(this.div.style.width=t+"px",this.div.style.height=e+"px"),this.table.style.width=t+"px",this.table.style.height=e+"px",mxClient.IS_QUIRKS||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-this.contentHeightCorrection+"px")},mxWindow.prototype.setMinimizable=function(t){this.minimize.style.display=t?"":"none"},mxWindow.prototype.getMinimumSize=function(){return new mxRectangle(0,0,0,this.title.offsetHeight)},mxWindow.prototype.installMinimizeHandler=function(){this.minimize=document.createElement("img"),this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.minimize.style.cursor="pointer",this.minimize.style.marginLeft="2px",this.minimize.style.display="none",this.buttons.appendChild(this.minimize);var t=!1,e=null,n=null,i=mxUtils.bind(this,(function(i){if(this.activate(),t)t=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=e,mxClient.IS_QUIRKS||(this.div.style.height=n),this.table.style.height=n,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",i));else{t=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",e=this.maximize.style.display,this.maximize.style.display="none",n=this.table.style.height;var r=this.getMinimumSize();r.height>0&&(mxClient.IS_QUIRKS||(this.div.style.height=r.height+"px"),this.table.style.height=r.height+"px"),r.width>0&&(mxClient.IS_QUIRKS||(this.div.style.width=r.width+"px"),this.table.style.width=r.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",i))}mxEvent.consume(i)}));mxEvent.addGestureListeners(this.minimize,i)},mxWindow.prototype.setMaximizable=function(t){this.maximize.style.display=t?"":"none"},mxWindow.prototype.installMaximizeHandler=function(){this.maximize=document.createElement("img"),this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.maximize.style.cursor="default",this.maximize.style.marginLeft="2px",this.maximize.style.cursor="pointer",this.maximize.style.display="none",this.buttons.appendChild(this.maximize);var t=!1,e=null,n=null,i=null,r=null,o=null,s=mxUtils.bind(this,(function(s){if(this.activate(),"none"!=this.maximize.style.display){if(t){if(t=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.display=o,this.div.style.left=e+"px",this.div.style.top=n+"px",!mxClient.IS_QUIRKS){this.div.style.height=i,this.div.style.width=r;a=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=a.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-this.contentHeightCorrection+"px")}this.table.style.height=i,this.table.style.width=r,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",s))}else{t=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",o=this.minimize.style.display,this.minimize.style.display="none",e=parseInt(this.div.style.left),n=parseInt(this.div.style.top),i=this.table.style.height,r=this.table.style.width,this.div.style.left="0px",this.div.style.top="0px";var l=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0);if(mxClient.IS_QUIRKS||(this.div.style.width=document.body.clientWidth-2+"px",this.div.style.height=l-2+"px"),this.table.style.width=document.body.clientWidth-2+"px",this.table.style.height=l-2+"px",null!=this.resize&&(this.resize.style.visibility="hidden"),!mxClient.IS_QUIRKS){var a=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=a.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-this.contentHeightCorrection+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",s))}mxEvent.consume(s)}}));mxEvent.addGestureListeners(this.maximize,s),mxEvent.addListener(this.title,"dblclick",s)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,(function(t){var e=mxEvent.getClientX(t),n=mxEvent.getClientY(t),i=this.getX(),r=this.getY(),o=mxUtils.bind(this,(function(t){var o=mxEvent.getClientX(t)-e,s=mxEvent.getClientY(t)-n;this.setLocation(i+o,r+s),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",t)),mxEvent.consume(t)})),s=mxUtils.bind(this,(function(t){mxEvent.removeGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",t)),mxEvent.consume(t)}));mxEvent.addGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",t)),mxEvent.consume(t)}))),mxClient.IS_POINTER&&(this.title.style.touchAction="none")},mxWindow.prototype.setLocation=function(t,e){this.div.style.left=t+"px",this.div.style.top=e+"px"},mxWindow.prototype.getX=function(){return parseInt(this.div.style.left)},mxWindow.prototype.getY=function(){return parseInt(this.div.style.top)},mxWindow.prototype.installCloseHandler=function(){this.closeImg=document.createElement("img"),this.closeImg.setAttribute("src",this.closeImage),this.closeImg.setAttribute("title","Close"),this.closeImg.style.marginLeft="2px",this.closeImg.style.cursor="pointer",this.closeImg.style.display="none",this.buttons.appendChild(this.closeImg),mxEvent.addGestureListeners(this.closeImg,mxUtils.bind(this,(function(t){this.fireEvent(new mxEventObject(mxEvent.CLOSE,"event",t)),this.destroyOnClose?this.destroy():this.setVisible(!1),mxEvent.consume(t)})))},mxWindow.prototype.setImage=function(t){this.image=document.createElement("img"),this.image.setAttribute("src",t),this.image.setAttribute("align","left"),this.image.style.marginRight="4px",this.image.style.marginLeft="0px",this.image.style.marginTop="-2px",this.title.insertBefore(this.image,this.title.firstChild)},mxWindow.prototype.setClosable=function(t){this.closeImg.style.display=t?"":"none"},mxWindow.prototype.isVisible=function(){return null!=this.div&&"none"!=this.div.style.display},mxWindow.prototype.setVisible=function(t){null!=this.div&&this.isVisible()!=t&&(t?this.show():this.hide())},mxWindow.prototype.show=function(){this.div.style.display="",this.activate();var t=mxUtils.getCurrentStyle(this.contentWrapper);mxClient.IS_QUIRKS||"auto"!=t.overflow&&null==this.resize||"none"==this.contentWrapper.style.display||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-this.contentHeightCorrection+"px"),this.fireEvent(new mxEventObject(mxEvent.SHOW))},mxWindow.prototype.hide=function(){this.div.style.display="none",this.fireEvent(new mxEventObject(mxEvent.HIDE))},mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY)),null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null),this.title=null,this.content=null,this.contentWrapper=null},__mxOutput.mxWindow="undefined"!==typeof mxWindow?mxWindow:void 0,mxForm.prototype.table=null,mxForm.prototype.body=!1,mxForm.prototype.getTable=function(){return this.table},mxForm.prototype.addButtons=function(t,e){var n=document.createElement("tr"),i=document.createElement("td");n.appendChild(i),i=document.createElement("td");var r=document.createElement("button");mxUtils.write(r,mxResources.get("ok")||"OK"),i.appendChild(r),mxEvent.addListener(r,"click",(function(){t()})),r=document.createElement("button"),mxUtils.write(r,mxResources.get("cancel")||"Cancel"),i.appendChild(r),mxEvent.addListener(r,"click",(function(){e()})),n.appendChild(i),this.body.appendChild(n)},mxForm.prototype.addText=function(t,e,n){var i=document.createElement("input");return i.setAttribute("type",n||"text"),i.value=e,this.addField(t,i)},mxForm.prototype.addCheckbox=function(t,e){var n=document.createElement("input");return n.setAttribute("type","checkbox"),this.addField(t,n),e&&(n.checked=!0),n},mxForm.prototype.addTextarea=function(t,e,n){var i=document.createElement("textarea");return mxClient.IS_NS&&n--,i.setAttribute("rows",n||2),i.value=e,this.addField(t,i)},mxForm.prototype.addCombo=function(t,e,n){var i=document.createElement("select");return null!=n&&i.setAttribute("size",n),e&&i.setAttribute("multiple","true"),this.addField(t,i)},mxForm.prototype.addOption=function(t,e,n,i){var r=document.createElement("option");mxUtils.writeln(r,e),r.setAttribute("value",n),i&&r.setAttribute("selected",i),t.appendChild(r)},mxForm.prototype.addField=function(t,e){var n=document.createElement("tr"),i=document.createElement("td");return mxUtils.write(i,t),n.appendChild(i),i=document.createElement("td"),i.appendChild(e),n.appendChild(i),this.body.appendChild(n),e},__mxOutput.mxForm="undefined"!==typeof mxForm?mxForm:void 0,mxImage.prototype.src=null,mxImage.prototype.width=null,mxImage.prototype.height=null,__mxOutput.mxImage="undefined"!==typeof mxImage?mxImage:void 0,mxDivResizer.prototype.resizeWidth=!0,mxDivResizer.prototype.resizeHeight=!0,mxDivResizer.prototype.handlingResize=!1,mxDivResizer.prototype.resize=function(){var t=this.getDocumentWidth(),e=this.getDocumentHeight(),n=parseInt(this.div.style.left),i=parseInt(this.div.style.right),r=parseInt(this.div.style.top),o=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(n)&&!isNaN(i)&&n>=0&&i>=0&&t-i-n>0&&(this.div.style.width=t-i-n+"px"),this.resizeHeight&&!isNaN(r)&&!isNaN(o)&&r>=0&&o>=0&&e-r-o>0&&(this.div.style.height=e-r-o+"px")},mxDivResizer.prototype.getDocumentWidth=function(){return document.body.clientWidth},mxDivResizer.prototype.getDocumentHeight=function(){return document.body.clientHeight},__mxOutput.mxDivResizer="undefined"!==typeof mxDivResizer?mxDivResizer:void 0,mxDragSource.prototype.element=null,mxDragSource.prototype.dropHandler=null,mxDragSource.prototype.dragOffset=null,mxDragSource.prototype.dragElement=null,mxDragSource.prototype.previewElement=null,mxDragSource.prototype.previewOffset=null,mxDragSource.prototype.enabled=!0,mxDragSource.prototype.currentGraph=null,mxDragSource.prototype.currentDropTarget=null,mxDragSource.prototype.currentPoint=null,mxDragSource.prototype.currentGuide=null,mxDragSource.prototype.currentHighlight=null,mxDragSource.prototype.autoscroll=!0,mxDragSource.prototype.guidesEnabled=!0,mxDragSource.prototype.gridEnabled=!0,mxDragSource.prototype.highlightDropTargets=!0,mxDragSource.prototype.dragElementZIndex=100,mxDragSource.prototype.dragElementOpacity=70,mxDragSource.prototype.checkEventSource=!0,mxDragSource.prototype.isEnabled=function(){return this.enabled},mxDragSource.prototype.setEnabled=function(t){this.enabled=t},mxDragSource.prototype.isGuidesEnabled=function(){return this.guidesEnabled},mxDragSource.prototype.setGuidesEnabled=function(t){this.guidesEnabled=t},mxDragSource.prototype.isGridEnabled=function(){return this.gridEnabled},mxDragSource.prototype.setGridEnabled=function(t){this.gridEnabled=t},mxDragSource.prototype.getGraphForEvent=function(t){return null},mxDragSource.prototype.getDropTarget=function(t,e,n,i){return t.getCellAt(e,n)},mxDragSource.prototype.createDragElement=function(t){return this.element.cloneNode(!0)},mxDragSource.prototype.createPreviewElement=function(t){return null},mxDragSource.prototype.isActive=function(){return null!=this.mouseMoveHandler},mxDragSource.prototype.reset=function(){null!=this.currentGraph&&(this.dragExit(this.currentGraph),this.currentGraph=null),this.removeDragElement(),this.removeListeners(),this.stopDrag()},mxDragSource.prototype.mouseDown=function(t){this.enabled&&!mxEvent.isConsumed(t)&&null==this.mouseMoveHandler&&(this.startDrag(t),this.mouseMoveHandler=mxUtils.bind(this,this.mouseMove),this.mouseUpHandler=mxUtils.bind(this,this.mouseUp),mxEvent.addGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),mxClient.IS_TOUCH&&!mxEvent.isMouseEvent(t)&&(this.eventSource=mxEvent.getSource(t),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveHandler,this.mouseUpHandler)))},mxDragSource.prototype.startDrag=function(t){this.dragElement=this.createDragElement(t),this.dragElement.style.position="absolute",this.dragElement.style.zIndex=this.dragElementZIndex,mxUtils.setOpacity(this.dragElement,this.dragElementOpacity),this.checkEventSource&&mxClient.IS_SVG&&(this.dragElement.style.pointerEvents="none")},mxDragSource.prototype.stopDrag=function(){this.removeDragElement()},mxDragSource.prototype.removeDragElement=function(){null!=this.dragElement&&(null!=this.dragElement.parentNode&&this.dragElement.parentNode.removeChild(this.dragElement),this.dragElement=null)},mxDragSource.prototype.getElementForEvent=function(t){return mxEvent.isTouchEvent(t)||mxEvent.isPenEvent(t)?document.elementFromPoint(mxEvent.getClientX(t),mxEvent.getClientY(t)):mxEvent.getSource(t)},mxDragSource.prototype.graphContainsEvent=function(t,e){var n=mxEvent.getClientX(e),i=mxEvent.getClientY(e),r=mxUtils.getOffset(t.container),o=mxUtils.getScrollOrigin(),s=this.getElementForEvent(e);if(this.checkEventSource)while(null!=s&&s!=t.container)s=s.parentNode;return null!=s&&n>=r.x-o.x&&i>=r.y-o.y&&n<=r.x-o.x+t.container.offsetWidth&&i<=r.y-o.y+t.container.offsetHeight},mxDragSource.prototype.mouseMove=function(t){var e=this.getGraphForEvent(t);if(null==e||this.graphContainsEvent(e,t)||(e=null),e!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph,t),this.currentGraph=e,null!=this.currentGraph&&this.dragEnter(this.currentGraph,t)),null!=this.currentGraph&&this.dragOver(this.currentGraph,t),null==this.dragElement||null!=this.previewElement&&"visible"==this.previewElement.style.visibility)null!=this.dragElement&&(this.dragElement.style.visibility="hidden");else{var n=mxEvent.getClientX(t),i=mxEvent.getClientY(t);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(n+=this.dragOffset.x,i+=this.dragOffset.y);var r=mxUtils.getDocumentScrollOrigin(document);this.dragElement.style.left=n+r.x+"px",this.dragElement.style.top=i+r.y+"px"}mxEvent.consume(t)},mxDragSource.prototype.mouseUp=function(t){if(null!=this.currentGraph){if(null!=this.currentPoint&&(null==this.previewElement||"hidden"!=this.previewElement.style.visibility)){var e=this.currentGraph.view.scale,n=this.currentGraph.view.translate,i=this.currentPoint.x/e-n.x,r=this.currentPoint.y/e-n.y;this.drop(this.currentGraph,t,this.currentDropTarget,i,r)}this.dragExit(this.currentGraph),this.currentGraph=null}this.stopDrag(),this.removeListeners(),mxEvent.consume(t)},mxDragSource.prototype.removeListeners=function(){null!=this.eventSource&&(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveHandler,this.mouseUpHandler),this.eventSource=null),mxEvent.removeGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),this.mouseMoveHandler=null,this.mouseUpHandler=null},mxDragSource.prototype.dragEnter=function(t,e){t.isMouseDown=!0,t.isMouseTrigger=mxEvent.isMouseEvent(e),this.previewElement=this.createPreviewElement(t),null!=this.previewElement&&this.checkEventSource&&mxClient.IS_SVG&&(this.previewElement.style.pointerEvents="none"),this.isGuidesEnabled()&&null!=this.previewElement&&(this.currentGuide=new mxGuide(t,t.graphHandler.getGuideStates())),this.highlightDropTargets&&(this.currentHighlight=new mxCellHighlight(t,mxConstants.DROP_TARGET_COLOR)),t.addListener(mxEvent.FIRE_MOUSE_EVENT,this.eventConsumer)},mxDragSource.prototype.dragExit=function(t,e){this.currentDropTarget=null,this.currentPoint=null,t.isMouseDown=!1,t.removeListener(this.eventConsumer),null!=this.previewElement&&(null!=this.previewElement.parentNode&&this.previewElement.parentNode.removeChild(this.previewElement),this.previewElement=null),null!=this.currentGuide&&(this.currentGuide.destroy(),this.currentGuide=null),null!=this.currentHighlight&&(this.currentHighlight.destroy(),this.currentHighlight=null)},mxDragSource.prototype.dragOver=function(t,e){var n=mxUtils.getOffset(t.container),i=mxUtils.getScrollOrigin(t.container),r=mxEvent.getClientX(e)-n.x+i.x-t.panDx,o=mxEvent.getClientY(e)-n.y+i.y-t.panDy;if(t.autoScroll&&(null==this.autoscroll||this.autoscroll)&&t.scrollPointToVisible(r,o,t.autoExtend),null!=this.currentHighlight&&t.isDropEnabled()){this.currentDropTarget=this.getDropTarget(t,r,o,e);var s=t.getView().getState(this.currentDropTarget);this.currentHighlight.highlight(s)}if(null!=this.previewElement){null==this.previewElement.parentNode&&(t.container.appendChild(this.previewElement),this.previewElement.style.zIndex="3",this.previewElement.style.position="absolute");var l=this.isGridEnabled()&&t.isGridEnabledEvent(e),a=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(e)){var h=parseInt(this.previewElement.style.width),u=parseInt(this.previewElement.style.height),d=new mxRectangle(0,0,h,u),c=new mxPoint(r,o);c=this.currentGuide.move(d,c,l,!0),a=!1,r=c.x,o=c.y}else if(l){var p=t.view.scale,g=t.view.translate,m=t.gridSize/2;r=(t.snap(r/p-g.x-m)+g.x)*p,o=(t.snap(o/p-g.y-m)+g.y)*p}null!=this.currentGuide&&a&&this.currentGuide.hide(),null!=this.previewOffset&&(r+=this.previewOffset.x,o+=this.previewOffset.y),this.previewElement.style.left=Math.round(r)+"px",this.previewElement.style.top=Math.round(o)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(r,o)},mxDragSource.prototype.drop=function(t,e,n,i,r){this.dropHandler.apply(this,arguments),"hidden"!=t.container.style.visibility&&t.container.focus()},__mxOutput.mxDragSource="undefined"!==typeof mxDragSource?mxDragSource:void 0,mxToolbar.prototype=new mxEventSource,mxToolbar.prototype.constructor=mxToolbar,mxToolbar.prototype.container=null,mxToolbar.prototype.enabled=!0,mxToolbar.prototype.noReset=!1,mxToolbar.prototype.updateDefaultMode=!0,mxToolbar.prototype.addItem=function(t,e,n,i,r,o){var s=document.createElement(null!=e?"img":"button"),l=r||(null!=o?"mxToolbarMode":"mxToolbarItem");s.className=l,s.setAttribute("src",e),null!=t&&(null!=e?s.setAttribute("title",t):mxUtils.write(s,t)),this.container.appendChild(s),null!=n&&(mxEvent.addListener(s,"click",n),mxClient.IS_TOUCH&&mxEvent.addListener(s,"touchend",n));var a=mxUtils.bind(this,(function(t){null!=i?s.setAttribute("src",e):s.style.backgroundColor=""}));return mxEvent.addGestureListeners(s,mxUtils.bind(this,(function(t){if(null!=i?s.setAttribute("src",i):s.style.backgroundColor="gray",null!=o){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var e=this.currentImg;if(this.menu.isMenuShowing()&&this.menu.hideMenu(),e!=s){this.currentImg=s,this.menu.factoryMethod=o;var n=new mxPoint(s.offsetLeft,s.offsetTop+s.offsetHeight);this.menu.popup(n.x,n.y,null,t),this.menu.isMenuShowing()&&(s.className=l+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),s.className=l,this.currentImg=null})}}})),null,a),mxEvent.addListener(s,"mouseout",a),s},mxToolbar.prototype.addCombo=function(t){var e=document.createElement("div");e.style.display="inline",e.className="mxToolbarComboContainer";var n=document.createElement("select");return n.className=t||"mxToolbarCombo",e.appendChild(n),this.container.appendChild(e),n},mxToolbar.prototype.addActionCombo=function(t,e){var n=document.createElement("select");return n.className=e||"mxToolbarCombo",this.addOption(n,t,null),mxEvent.addListener(n,"change",(function(t){var e=n.options[n.selectedIndex];n.selectedIndex=0,null!=e.funct&&e.funct(t)})),this.container.appendChild(n),n},mxToolbar.prototype.addOption=function(t,e,n){var i=document.createElement("option");return mxUtils.writeln(i,e),"function"==typeof n?i.funct=n:i.setAttribute("value",n),t.appendChild(i),i},mxToolbar.prototype.addSwitchMode=function(t,e,n,i,r){var o=document.createElement("img");return o.initialClassName=r||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",e),o.altIcon=i,null!=t&&o.setAttribute("title",t),mxEvent.addListener(o,"click",mxUtils.bind(this,(function(t){var e=this.selectedMode.altIcon;null!=e?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",e)):this.selectedMode.className=this.selectedMode.initialClassName,this.updateDefaultMode&&(this.defaultMode=o),this.selectedMode=o;e=o.altIcon;null!=e?(o.altIcon=o.getAttribute("src"),o.setAttribute("src",e)):o.className=o.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),n()}))),this.container.appendChild(o),null==this.defaultMode&&(this.defaultMode=o,this.selectMode(o),n()),o},mxToolbar.prototype.addMode=function(t,e,n,i,r,o){o=null==o||o;var s=document.createElement(null!=e?"img":"button");return s.initialClassName=r||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",e),s.altIcon=i,null!=t&&s.setAttribute("title",t),this.enabled&&o&&(mxEvent.addListener(s,"click",mxUtils.bind(this,(function(t){this.selectMode(s,n),this.noReset=!1}))),mxEvent.addListener(s,"dblclick",mxUtils.bind(this,(function(t){this.selectMode(s,n),this.noReset=!0}))),null==this.defaultMode&&(this.defaultMode=s,this.defaultFunction=n,this.selectMode(s,n))),this.container.appendChild(s),s},mxToolbar.prototype.selectMode=function(t,e){if(this.selectedMode!=t){if(null!=this.selectedMode){var n=this.selectedMode.altIcon;null!=n?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",n)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=t;n=this.selectedMode.altIcon;null!=n?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",n)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",e))}},mxToolbar.prototype.resetMode=function(t){!t&&this.noReset||this.selectedMode==this.defaultMode||this.selectMode(this.defaultMode,this.defaultFunction)},mxToolbar.prototype.addSeparator=function(t){return this.addItem(null,t,null)},mxToolbar.prototype.addBreak=function(){mxUtils.br(this.container)},mxToolbar.prototype.addLine=function(){var t=document.createElement("hr");t.style.marginRight="6px",t.setAttribute("size","1"),this.container.appendChild(t)},mxToolbar.prototype.destroy=function(){mxEvent.release(this.container),this.container=null,this.defaultMode=null,this.defaultFunction=null,this.selectedMode=null,null!=this.menu&&this.menu.destroy()},__mxOutput.mxToolbar="undefined"!==typeof mxToolbar?mxToolbar:void 0,mxUndoableEdit.prototype.source=null,mxUndoableEdit.prototype.changes=null,mxUndoableEdit.prototype.significant=null,mxUndoableEdit.prototype.undone=!1,mxUndoableEdit.prototype.redone=!1,mxUndoableEdit.prototype.isEmpty=function(){return 0==this.changes.length},mxUndoableEdit.prototype.isSignificant=function(){return this.significant},mxUndoableEdit.prototype.add=function(t){this.changes.push(t)},mxUndoableEdit.prototype.notify=function(){},mxUndoableEdit.prototype.die=function(){},mxUndoableEdit.prototype.undo=function(){if(!this.undone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var t=this.changes.length,e=t-1;e>=0;e--){var n=this.changes[e];null!=n.execute?n.execute():null!=n.undo&&n.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}this.undone=!0,this.redone=!1,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoableEdit.prototype.redo=function(){if(!this.redone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var t=this.changes.length,e=0;e<t;e++){var n=this.changes[e];null!=n.execute?n.execute():null!=n.redo&&n.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}this.undone=!1,this.redone=!0,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},__mxOutput.mxUndoableEdit="undefined"!==typeof mxUndoableEdit?mxUndoableEdit:void 0,mxUndoManager.prototype=new mxEventSource,mxUndoManager.prototype.constructor=mxUndoManager,mxUndoManager.prototype.size=null,mxUndoManager.prototype.history=null,mxUndoManager.prototype.indexOfNextAdd=0,mxUndoManager.prototype.isEmpty=function(){return 0==this.history.length},mxUndoManager.prototype.clear=function(){this.history=[],this.indexOfNextAdd=0,this.fireEvent(new mxEventObject(mxEvent.CLEAR))},mxUndoManager.prototype.canUndo=function(){return this.indexOfNextAdd>0},mxUndoManager.prototype.undo=function(){while(this.indexOfNextAdd>0){var t=this.history[--this.indexOfNextAdd];if(t.undo(),t.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t));break}}},mxUndoManager.prototype.canRedo=function(){return this.indexOfNextAdd<this.history.length},mxUndoManager.prototype.redo=function(){var t=this.history.length;while(this.indexOfNextAdd<t){var e=this.history[this.indexOfNextAdd++];if(e.redo(),e.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",e));break}}},mxUndoManager.prototype.undoableEditHappened=function(t){this.trim(),this.size>0&&this.size==this.history.length&&this.history.shift(),this.history.push(t),this.indexOfNextAdd=this.history.length,this.fireEvent(new mxEventObject(mxEvent.ADD,"edit",t))},mxUndoManager.prototype.trim=function(){if(this.history.length>this.indexOfNextAdd)for(var t=this.history.splice(this.indexOfNextAdd,this.history.length-this.indexOfNextAdd),e=0;e<t.length;e++)t[e].die()},__mxOutput.mxUndoManager="undefined"!==typeof mxUndoManager?mxUndoManager:void 0;var mxUrlConverter=function(){};function mxPanningManager(t){this.thread=null,this.active=!1,this.tdx=0,this.tdy=0,this.t0x=0,this.t0y=0,this.dx=0,this.dy=0,this.scrollbars=!1,this.scrollLeft=0,this.scrollTop=0,this.mouseListener={mouseDown:function(t,e){},mouseMove:function(t,e){},mouseUp:mxUtils.bind(this,(function(t,e){this.active&&this.stop()}))},t.addMouseListener(this.mouseListener),this.mouseUpListener=mxUtils.bind(this,(function(){this.active&&this.stop()})),mxEvent.addListener(document,"mouseup",this.mouseUpListener);var e=mxUtils.bind(this,(function(){return this.scrollbars=mxUtils.hasScrollbars(t.container),this.scrollLeft=t.container.scrollLeft,this.scrollTop=t.container.scrollTop,window.setInterval(mxUtils.bind(this,(function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var e=-t.container.scrollLeft-Math.ceil(this.dx),n=-t.container.scrollTop-Math.ceil(this.dy);t.panGraph(e,n),t.panDx=this.scrollLeft-t.container.scrollLeft,t.panDy=this.scrollTop-t.container.scrollTop,t.fireEvent(new mxEventObject(mxEvent.PAN))}else t.panGraph(this.getDx(),this.getDy())})),this.delay)}));this.isActive=function(){return active},this.getDx=function(){return Math.round(this.tdx)},this.getDy=function(){return Math.round(this.tdy)},this.start=function(){this.t0x=t.view.translate.x,this.t0y=t.view.translate.y,this.active=!0},this.panTo=function(n,i,r,o){this.active||this.start(),this.scrollLeft=t.container.scrollLeft,this.scrollTop=t.container.scrollTop,r=null!=r?r:0,o=null!=o?o:0;var s=t.container;this.dx=n+r-s.scrollLeft-s.clientWidth,this.dx<0&&Math.abs(this.dx)<this.border?this.dx=this.border+this.dx:this.handleMouseOut?this.dx=Math.max(this.dx,0):this.dx=0,0==this.dx&&(this.dx=n-s.scrollLeft,this.dx>0&&this.dx<this.border?this.dx=this.dx-this.border:this.handleMouseOut?this.dx=Math.min(0,this.dx):this.dx=0),this.dy=i+o-s.scrollTop-s.clientHeight,this.dy<0&&Math.abs(this.dy)<this.border?this.dy=this.border+this.dy:this.handleMouseOut?this.dy=Math.max(this.dy,0):this.dy=0,0==this.dy&&(this.dy=i-s.scrollTop,this.dy>0&&this.dy<this.border?this.dy=this.dy-this.border:this.handleMouseOut?this.dy=Math.min(0,this.dy):this.dy=0),0!=this.dx||0!=this.dy?(this.dx*=this.damper,this.dy*=this.damper,null==this.thread&&(this.thread=e())):null!=this.thread&&(window.clearInterval(this.thread),this.thread=null)},this.stop=function(){if(this.active)if(this.active=!1,null!=this.thread&&(window.clearInterval(this.thread),this.thread=null),this.tdx=0,this.tdy=0,this.scrollbars)t.panDx=0,t.panDy=0,t.fireEvent(new mxEventObject(mxEvent.PAN));else{var e=t.panDx,n=t.panDy;0==e&&0==n||(t.panGraph(0,0),t.view.setTranslate(this.t0x+e/t.view.scale,this.t0y+n/t.view.scale))}},this.destroy=function(){t.removeMouseListener(this.mouseListener),mxEvent.removeListener(document,"mouseup",this.mouseUpListener)}}function mxPopupMenu(t){this.factoryMethod=t,null!=t&&this.init()}function mxAutoSaveManager(t){this.changeHandler=mxUtils.bind(this,(function(t,e){this.isEnabled()&&this.graphModelChanged(e.getProperty("edit").changes)})),this.setGraph(t)}function mxAnimation(t){this.delay=null!=t?t:20}function mxMorphing(t,e,n,i){mxAnimation.call(this,i),this.graph=t,this.steps=null!=e?e:6,this.ease=null!=n?n:1.5}function mxImageBundle(t){this.images=[],this.alt=null!=t&&t}function mxImageExport(){}function mxAbstractCanvas2D(){this.converter=this.createUrlConverter(),this.reset()}function mxXmlCanvas2D(t){mxAbstractCanvas2D.call(this),this.root=t,this.writeDefaults()}function mxSvgCanvas2D(t,e){mxAbstractCanvas2D.call(this),this.root=t,this.gradients=[],this.defs=null,this.styleEnabled=null!=e&&e;var n=null;if(t.ownerDocument!=document){var i=t;while(null!=i&&"svg"!=i.nodeName)i=i.parentNode;n=i}if(null!=n){var r=n.getElementsByTagName("defs");r.length>0&&(this.defs=n.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=n.firstChild?n.insertBefore(this.defs,n.firstChild):n.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle())}}mxUrlConverter.prototype.enabled=!0,mxUrlConverter.prototype.baseUrl=null,mxUrlConverter.prototype.baseDomain=null,mxUrlConverter.prototype.updateBaseUrl=function(){this.baseDomain=location.protocol+"//"+location.host,this.baseUrl=this.baseDomain+location.pathname;var t=this.baseUrl.lastIndexOf("/");t>0&&(this.baseUrl=this.baseUrl.substring(0,t+1))},mxUrlConverter.prototype.isEnabled=function(){return this.enabled},mxUrlConverter.prototype.setEnabled=function(t){this.enabled=t},mxUrlConverter.prototype.getBaseUrl=function(){return this.baseUrl},mxUrlConverter.prototype.setBaseUrl=function(t){this.baseUrl=t},mxUrlConverter.prototype.getBaseDomain=function(){return this.baseDomain},mxUrlConverter.prototype.setBaseDomain=function(t){this.baseDomain=t},mxUrlConverter.prototype.isRelativeUrl=function(t){return null!=t&&"//"!=t.substring(0,2)&&"http://"!=t.substring(0,7)&&"https://"!=t.substring(0,8)&&"data:image"!=t.substring(0,10)&&"file://"!=t.substring(0,7)},mxUrlConverter.prototype.convert=function(t){return this.isEnabled()&&this.isRelativeUrl(t)&&(null==this.getBaseUrl()&&this.updateBaseUrl(),t="/"==t.charAt(0)?this.getBaseDomain()+t:this.getBaseUrl()+t),t},__mxOutput.mxUrlConverter="undefined"!==typeof mxUrlConverter?mxUrlConverter:void 0,mxPanningManager.prototype.damper=1/6,mxPanningManager.prototype.delay=10,mxPanningManager.prototype.handleMouseOut=!0,mxPanningManager.prototype.border=0,__mxOutput.mxPanningManager="undefined"!==typeof mxPanningManager?mxPanningManager:void 0,mxPopupMenu.prototype=new mxEventSource,mxPopupMenu.prototype.constructor=mxPopupMenu,mxPopupMenu.prototype.submenuImage=mxClient.imageBasePath+"/submenu.gif",mxPopupMenu.prototype.zIndex=10006,mxPopupMenu.prototype.factoryMethod=null,mxPopupMenu.prototype.useLeftButtonForPopup=!1,mxPopupMenu.prototype.enabled=!0,mxPopupMenu.prototype.itemCount=0,mxPopupMenu.prototype.autoExpand=!1,mxPopupMenu.prototype.smartSeparators=!1,mxPopupMenu.prototype.labels=!0,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(t){this.enabled=t},mxPopupMenu.prototype.isPopupTrigger=function(t){return t.isPopupTrigger()||this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(t.getEvent())},mxPopupMenu.prototype.addItem=function(t,e,n,i,r,o,s,l){i=i||this,this.itemCount++,i.willAddSeparator&&(i.containsItems&&this.addSeparator(i,!0),i.willAddSeparator=!1),i.containsItems=!0;var a=document.createElement("tr");a.className="mxPopupMenuItem";var h=document.createElement("td");if(h.className="mxPopupMenuIcon",null!=e){var u=document.createElement("img");u.src=e,h.appendChild(u)}else if(null!=r){var d=document.createElement("div");d.className=r,h.appendChild(d)}if(a.appendChild(h),this.labels){var c=document.createElement("td");c.className="mxPopupMenuItem"+(null==o||o?"":" mxDisabled"),mxUtils.write(c,t),c.align="left",a.appendChild(c);var p=document.createElement("td");p.className="mxPopupMenuItem"+(null==o||o?"":" mxDisabled"),p.style.paddingRight="6px",p.style.textAlign="right",a.appendChild(p),null==i.div&&this.createSubmenu(i)}if(i.tbody.appendChild(a),0!=s&&0!=o){var g=null;mxEvent.addGestureListeners(a,mxUtils.bind(this,(function(t){this.eventReceiver=a,i.activeRow!=a&&i.activeRow!=i&&(null!=i.activeRow&&null!=i.activeRow.div.parentNode&&this.hideSubmenu(i),null!=a.div&&(this.showSubmenu(i,a),i.activeRow=a)),null==document.selection||!mxClient.IS_QUIRKS&&8!=document.documentMode||(g=document.selection.createRange()),mxEvent.consume(t)})),mxUtils.bind(this,(function(t){i.activeRow!=a&&i.activeRow!=i&&(null!=i.activeRow&&null!=i.activeRow.div.parentNode&&this.hideSubmenu(i),this.autoExpand&&null!=a.div&&(this.showSubmenu(i,a),i.activeRow=a)),l||(a.className="mxPopupMenuItemHover")})),mxUtils.bind(this,(function(t){if(this.eventReceiver==a){if(i.activeRow!=a&&this.hideMenu(),null!=g){try{g.select()}catch(e){}g=null}null!=n&&n(t)}this.eventReceiver=null,mxEvent.consume(t)}))),l||mxEvent.addListener(a,"mouseout",mxUtils.bind(this,(function(t){a.className="mxPopupMenuItem"})))}return a},mxPopupMenu.prototype.addCheckmark=function(t,e){var n=t.firstChild.nextSibling;n.style.backgroundImage="url('"+e+"')",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="2px 50%"},mxPopupMenu.prototype.createSubmenu=function(t){t.table=document.createElement("table"),t.table.className="mxPopupMenu",t.tbody=document.createElement("tbody"),t.table.appendChild(t.tbody),t.div=document.createElement("div"),t.div.className="mxPopupMenu",t.div.style.position="absolute",t.div.style.display="inline",t.div.style.zIndex=this.zIndex,t.div.appendChild(t.table);var e=document.createElement("img");e.setAttribute("src",this.submenuImage),td=t.firstChild.nextSibling.nextSibling,td.appendChild(e)},mxPopupMenu.prototype.showSubmenu=function(t,e){if(null!=e.div){e.div.style.left=t.div.offsetLeft+e.offsetLeft+e.offsetWidth-1+"px",e.div.style.top=t.div.offsetTop+e.offsetTop+"px",document.body.appendChild(e.div);var n=parseInt(e.div.offsetLeft),i=parseInt(e.div.offsetWidth),r=mxUtils.getDocumentScrollOrigin(document),o=document.body,s=document.documentElement,l=r.x+(o.clientWidth||s.clientWidth);n+i>l&&(e.div.style.left=Math.max(0,t.div.offsetLeft-i+(mxClient.IS_IE?6:-6))+"px"),mxUtils.fit(e.div)}},mxPopupMenu.prototype.addSeparator=function(t,e){if(t=t||this,this.smartSeparators&&!e)t.willAddSeparator=!0;else if(null!=t.tbody){t.willAddSeparator=!1;var n=document.createElement("tr"),i=document.createElement("td");i.className="mxPopupMenuIcon",i.style.padding="0 0 0 0px",n.appendChild(i);var r=document.createElement("td");r.style.padding="0 0 0 0px",r.setAttribute("colSpan","2");var o=document.createElement("hr");o.setAttribute("size","1"),r.appendChild(o),n.appendChild(r),t.tbody.appendChild(n)}},mxPopupMenu.prototype.popup=function(t,e,n,i){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){this.div.style.left=t+"px",this.div.style.top=e+"px";while(null!=this.tbody.firstChild)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,n,i),this.itemCount>0&&(this.showMenu(),this.fireEvent(new mxEventObject(mxEvent.SHOW)))}},mxPopupMenu.prototype.isMenuShowing=function(){return null!=this.div&&this.div.parentNode==document.body},mxPopupMenu.prototype.showMenu=function(){document.documentMode>=9&&(this.div.style.filter="none"),document.body.appendChild(this.div),mxUtils.fit(this.div)},mxPopupMenu.prototype.hideMenu=function(){null!=this.div&&(null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.hideSubmenu(this),this.containsItems=!1,this.fireEvent(new mxEventObject(mxEvent.HIDE)))},mxPopupMenu.prototype.hideSubmenu=function(t){null!=t.activeRow&&(this.hideSubmenu(t.activeRow),null!=t.activeRow.div.parentNode&&t.activeRow.div.parentNode.removeChild(t.activeRow.div),t.activeRow=null)},mxPopupMenu.prototype.destroy=function(){null!=this.div&&(mxEvent.release(this.div),null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null)},__mxOutput.mxPopupMenu="undefined"!==typeof mxPopupMenu?mxPopupMenu:void 0,mxAutoSaveManager.prototype=new mxEventSource,mxAutoSaveManager.prototype.constructor=mxAutoSaveManager,mxAutoSaveManager.prototype.graph=null,mxAutoSaveManager.prototype.autoSaveDelay=10,mxAutoSaveManager.prototype.autoSaveThrottle=2,mxAutoSaveManager.prototype.autoSaveThreshold=5,mxAutoSaveManager.prototype.ignoredChanges=0,mxAutoSaveManager.prototype.lastSnapshot=0,mxAutoSaveManager.prototype.enabled=!0,mxAutoSaveManager.prototype.changeHandler=null,mxAutoSaveManager.prototype.isEnabled=function(){return this.enabled},mxAutoSaveManager.prototype.setEnabled=function(t){this.enabled=t},mxAutoSaveManager.prototype.setGraph=function(t){null!=this.graph&&this.graph.getModel().removeListener(this.changeHandler),this.graph=t,null!=this.graph&&this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler)},mxAutoSaveManager.prototype.save=function(){},mxAutoSaveManager.prototype.graphModelChanged=function(t){var e=(new Date).getTime(),n=(e-this.lastSnapshot)/1e3;n>this.autoSaveDelay||this.ignoredChanges>=this.autoSaveThreshold&&n>this.autoSaveThrottle?(this.save(),this.reset()):this.ignoredChanges++},mxAutoSaveManager.prototype.reset=function(){this.lastSnapshot=(new Date).getTime(),this.ignoredChanges=0},mxAutoSaveManager.prototype.destroy=function(){this.setGraph(null)},__mxOutput.mxAutoSaveManager="undefined"!==typeof mxAutoSaveManager?mxAutoSaveManager:void 0,mxAnimation.prototype=new mxEventSource,mxAnimation.prototype.constructor=mxAnimation,mxAnimation.prototype.delay=null,mxAnimation.prototype.thread=null,mxAnimation.prototype.isRunning=function(){return null!=this.thread},mxAnimation.prototype.startAnimation=function(){null==this.thread&&(this.thread=window.setInterval(mxUtils.bind(this,this.updateAnimation),this.delay))},mxAnimation.prototype.updateAnimation=function(){this.fireEvent(new mxEventObject(mxEvent.EXECUTE))},mxAnimation.prototype.stopAnimation=function(){null!=this.thread&&(window.clearInterval(this.thread),this.thread=null,this.fireEvent(new mxEventObject(mxEvent.DONE)))},__mxOutput.mxAnimation="undefined"!==typeof mxAnimation?mxAnimation:void 0,mxMorphing.prototype=new mxAnimation,mxMorphing.prototype.constructor=mxMorphing,mxMorphing.prototype.graph=null,mxMorphing.prototype.steps=null,mxMorphing.prototype.step=0,mxMorphing.prototype.ease=null,mxMorphing.prototype.cells=null,mxMorphing.prototype.updateAnimation=function(){mxAnimation.prototype.updateAnimation.apply(this,arguments);var t=new mxCellStatePreview(this.graph);if(null!=this.cells)for(var e=0;e<this.cells.length;e++)this.animateCell(this.cells[e],t,!1);else this.animateCell(this.graph.getModel().getRoot(),t,!0);this.show(t),(t.isEmpty()||this.step++>=this.steps)&&this.stopAnimation()},mxMorphing.prototype.show=function(t){t.show()},mxMorphing.prototype.animateCell=function(t,e,n){var i=this.graph.getView().getState(t),r=null;if(null!=i&&(r=this.getDelta(i),this.graph.getModel().isVertex(t)&&(0!=r.x||0!=r.y))){var o=this.graph.view.getTranslate(),s=this.graph.view.getScale();r.x+=o.x*s,r.y+=o.y*s,e.moveState(i,-r.x/this.ease,-r.y/this.ease)}if(n&&!this.stopRecursion(i,r))for(var l=this.graph.getModel().getChildCount(t),a=0;a<l;a++)this.animateCell(this.graph.getModel().getChildAt(t,a),e,n)},mxMorphing.prototype.stopRecursion=function(t,e){return null!=e&&(0!=e.x||0!=e.y)},mxMorphing.prototype.getDelta=function(t){var e=this.getOriginForCell(t.cell),n=this.graph.getView().getTranslate(),i=this.graph.getView().getScale(),r=t.x/i-n.x,o=t.y/i-n.y;return new mxPoint((e.x-r)*i,(e.y-o)*i)},mxMorphing.prototype.getOriginForCell=function(t){var e=null;if(null!=t){var n=this.graph.getModel().getParent(t),i=this.graph.getCellGeometry(t);if(e=this.getOriginForCell(n),null!=i)if(i.relative){var r=this.graph.getCellGeometry(n);null!=r&&(e.x+=i.x*r.width,e.y+=i.y*r.height)}else e.x+=i.x,e.y+=i.y}if(null==e){var o=this.graph.view.getTranslate();e=new mxPoint(-o.x,-o.y)}return e},__mxOutput.mxMorphing="undefined"!==typeof mxMorphing?mxMorphing:void 0,mxImageBundle.prototype.images=null,mxImageBundle.prototype.alt=null,mxImageBundle.prototype.putImage=function(t,e,n){this.images[t]={value:e,fallback:n}},mxImageBundle.prototype.getImage=function(t){var e=null;if(null!=t){var n=this.images[t];null!=n&&(e=this.alt?n.fallback:n.value)}return e},__mxOutput.mxImageBundle="undefined"!==typeof mxImageBundle?mxImageBundle:void 0,mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(t,e){null!=t&&(this.visitStatesRecursive(t,e,mxUtils.bind(this,(function(){this.drawCellState.apply(this,arguments)}))),this.includeOverlays&&this.visitStatesRecursive(t,e,mxUtils.bind(this,(function(){this.drawOverlays.apply(this,arguments)}))))},mxImageExport.prototype.visitStatesRecursive=function(t,e,n){if(null!=t){n(t,e);for(var i=t.view.graph,r=i.model.getChildCount(t.cell),o=0;o<r;o++){var s=i.view.getState(i.model.getChildAt(t.cell,o));this.visitStatesRecursive(s,e,n)}}},mxImageExport.prototype.getLinkForCellState=function(t,e){return null},mxImageExport.prototype.drawCellState=function(t,e){var n=this.getLinkForCellState(t,e);null!=n&&e.setLink(n),this.drawShape(t,e),this.drawText(t,e),null!=n&&e.setLink(null)},mxImageExport.prototype.drawShape=function(t,e){t.shape instanceof mxShape&&t.shape.checkBounds()&&(e.save(),t.shape.beforePaint(e),t.shape.paint(e),t.shape.afterPaint(e),e.restore())},mxImageExport.prototype.drawText=function(t,e){null!=t.text&&t.text.checkBounds()&&(e.save(),t.text.beforePaint(e),t.text.paint(e),t.text.afterPaint(e),e.restore())},mxImageExport.prototype.drawOverlays=function(t,e){null!=t.overlays&&t.overlays.visit((function(t,n){n instanceof mxShape&&n.paint(e)}))},__mxOutput.mxImageExport="undefined"!==typeof mxImageExport?mxImageExport:void 0,mxAbstractCanvas2D.prototype.state=null,mxAbstractCanvas2D.prototype.states=null,mxAbstractCanvas2D.prototype.path=null,mxAbstractCanvas2D.prototype.rotateHtml=!0,mxAbstractCanvas2D.prototype.lastX=0,mxAbstractCanvas2D.prototype.lastY=0,mxAbstractCanvas2D.prototype.moveOp="M",mxAbstractCanvas2D.prototype.lineOp="L",mxAbstractCanvas2D.prototype.quadOp="Q",mxAbstractCanvas2D.prototype.curveOp="C",mxAbstractCanvas2D.prototype.closeOp="Z",mxAbstractCanvas2D.prototype.pointerEvents=!1,mxAbstractCanvas2D.prototype.createUrlConverter=function(){return new mxUrlConverter},mxAbstractCanvas2D.prototype.reset=function(){this.state=this.createState(),this.states=[]},mxAbstractCanvas2D.prototype.createState=function(){return{dx:0,dy:0,scale:1,alpha:1,fillAlpha:1,strokeAlpha:1,fillColor:null,gradientFillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:"3 3",fixDash:!1,lineCap:"flat",lineJoin:"miter",miterLimit:10,fontColor:"#000000",fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0,shadow:!1,shadowColor:mxConstants.SHADOWCOLOR,shadowAlpha:mxConstants.SHADOW_OPACITY,shadowDx:mxConstants.SHADOW_OFFSET_X,shadowDy:mxConstants.SHADOW_OFFSET_Y,rotation:0,rotationCx:0,rotationCy:0}},mxAbstractCanvas2D.prototype.format=function(t){return Math.round(parseFloat(t))},mxAbstractCanvas2D.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),arguments.length>2))for(var t=this.state,e=2;e<arguments.length;e+=2)this.lastX=arguments[e-1],this.lastY=arguments[e],this.path.push(this.format((this.lastX+t.dx)*t.scale)),this.path.push(this.format((this.lastY+t.dy)*t.scale))},mxAbstractCanvas2D.prototype.rotatePoint=function(t,e,n,i,r){var o=n*(Math.PI/180);return mxUtils.getRotatedPoint(new mxPoint(t,e),Math.cos(o),Math.sin(o),new mxPoint(i,r))},mxAbstractCanvas2D.prototype.save=function(){this.states.push(this.state),this.state=mxUtils.clone(this.state)},mxAbstractCanvas2D.prototype.restore=function(){this.states.length>0&&(this.state=this.states.pop())},mxAbstractCanvas2D.prototype.setLink=function(t){},mxAbstractCanvas2D.prototype.scale=function(t){this.state.scale*=t,this.state.strokeWidth*=t},mxAbstractCanvas2D.prototype.translate=function(t,e){this.state.dx+=t,this.state.dy+=e},mxAbstractCanvas2D.prototype.rotate=function(t,e,n,i,r){},mxAbstractCanvas2D.prototype.setAlpha=function(t){this.state.alpha=t},mxAbstractCanvas2D.prototype.setFillAlpha=function(t){this.state.fillAlpha=t},mxAbstractCanvas2D.prototype.setStrokeAlpha=function(t){this.state.strokeAlpha=t},mxAbstractCanvas2D.prototype.setFillColor=function(t){t==mxConstants.NONE&&(t=null),this.state.fillColor=t,this.state.gradientColor=null},mxAbstractCanvas2D.prototype.setGradient=function(t,e,n,i,r,o,s,l,a){var h=this.state;h.fillColor=t,h.gradientFillAlpha=null!=l?l:1,h.gradientColor=e,h.gradientAlpha=null!=a?a:1,h.gradientDirection=s},mxAbstractCanvas2D.prototype.setStrokeColor=function(t){t==mxConstants.NONE&&(t=null),this.state.strokeColor=t},mxAbstractCanvas2D.prototype.setStrokeWidth=function(t){this.state.strokeWidth=t},mxAbstractCanvas2D.prototype.setDashed=function(t,e){this.state.dashed=t,this.state.fixDash=e},mxAbstractCanvas2D.prototype.setDashPattern=function(t){this.state.dashPattern=t},mxAbstractCanvas2D.prototype.setLineCap=function(t){this.state.lineCap=t},mxAbstractCanvas2D.prototype.setLineJoin=function(t){this.state.lineJoin=t},mxAbstractCanvas2D.prototype.setMiterLimit=function(t){this.state.miterLimit=t},mxAbstractCanvas2D.prototype.setFontColor=function(t){t==mxConstants.NONE&&(t=null),this.state.fontColor=t},mxAbstractCanvas2D.prototype.setFontBackgroundColor=function(t){t==mxConstants.NONE&&(t=null),this.state.fontBackgroundColor=t},mxAbstractCanvas2D.prototype.setFontBorderColor=function(t){t==mxConstants.NONE&&(t=null),this.state.fontBorderColor=t},mxAbstractCanvas2D.prototype.setFontSize=function(t){this.state.fontSize=parseFloat(t)},mxAbstractCanvas2D.prototype.setFontFamily=function(t){this.state.fontFamily=t},mxAbstractCanvas2D.prototype.setFontStyle=function(t){null==t&&(t=0),this.state.fontStyle=t},mxAbstractCanvas2D.prototype.setShadow=function(t){this.state.shadow=t},mxAbstractCanvas2D.prototype.setShadowColor=function(t){t==mxConstants.NONE&&(t=null),this.state.shadowColor=t},mxAbstractCanvas2D.prototype.setShadowAlpha=function(t){this.state.shadowAlpha=t},mxAbstractCanvas2D.prototype.setShadowOffset=function(t,e){this.state.shadowDx=t,this.state.shadowDy=e},mxAbstractCanvas2D.prototype.begin=function(){this.lastX=0,this.lastY=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(t,e){this.addOp(this.moveOp,t,e)},mxAbstractCanvas2D.prototype.lineTo=function(t,e){this.addOp(this.lineOp,t,e)},mxAbstractCanvas2D.prototype.quadTo=function(t,e,n,i){this.addOp(this.quadOp,t,e,n,i)},mxAbstractCanvas2D.prototype.curveTo=function(t,e,n,i,r,o){this.addOp(this.curveOp,t,e,n,i,r,o)},mxAbstractCanvas2D.prototype.arcTo=function(t,e,n,i,r,o,s){var l=mxUtils.arcToCurves(this.lastX,this.lastY,t,e,n,i,r,o,s);if(null!=l)for(var a=0;a<l.length;a+=6)this.curveTo(l[a],l[a+1],l[a+2],l[a+3],l[a+4],l[a+5])},mxAbstractCanvas2D.prototype.close=function(t,e,n,i,r,o){this.addOp(this.closeOp)},mxAbstractCanvas2D.prototype.end=function(){},__mxOutput.mxAbstractCanvas2D="undefined"!==typeof mxAbstractCanvas2D?mxAbstractCanvas2D:void 0,mxUtils.extend(mxXmlCanvas2D,mxAbstractCanvas2D),mxXmlCanvas2D.prototype.textEnabled=!0,mxXmlCanvas2D.prototype.compressed=!0,mxXmlCanvas2D.prototype.writeDefaults=function(){var t;t=this.createElement("fontfamily"),t.setAttribute("family",mxConstants.DEFAULT_FONTFAMILY),this.root.appendChild(t),t=this.createElement("fontsize"),t.setAttribute("size",mxConstants.DEFAULT_FONTSIZE),this.root.appendChild(t),t=this.createElement("shadowcolor"),t.setAttribute("color",mxConstants.SHADOWCOLOR),this.root.appendChild(t),t=this.createElement("shadowalpha"),t.setAttribute("alpha",mxConstants.SHADOW_OPACITY),this.root.appendChild(t),t=this.createElement("shadowoffset"),t.setAttribute("dx",mxConstants.SHADOW_OFFSET_X),t.setAttribute("dy",mxConstants.SHADOW_OFFSET_Y),this.root.appendChild(t)},mxXmlCanvas2D.prototype.format=function(t){return parseFloat(parseFloat(t).toFixed(2))},mxXmlCanvas2D.prototype.createElement=function(t){return this.root.ownerDocument.createElement(t)},mxXmlCanvas2D.prototype.save=function(){this.compressed&&mxAbstractCanvas2D.prototype.save.apply(this,arguments),this.root.appendChild(this.createElement("save"))},mxXmlCanvas2D.prototype.restore=function(){this.compressed&&mxAbstractCanvas2D.prototype.restore.apply(this,arguments),this.root.appendChild(this.createElement("restore"))},mxXmlCanvas2D.prototype.scale=function(t){var e=this.createElement("scale");e.setAttribute("scale",t),this.root.appendChild(e)},mxXmlCanvas2D.prototype.translate=function(t,e){var n=this.createElement("translate");n.setAttribute("dx",this.format(t)),n.setAttribute("dy",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.rotate=function(t,e,n,i,r){var o=this.createElement("rotate");(0!=t||e||n)&&(o.setAttribute("theta",this.format(t)),o.setAttribute("flipH",e?"1":"0"),o.setAttribute("flipV",n?"1":"0"),o.setAttribute("cx",this.format(i)),o.setAttribute("cy",this.format(r)),this.root.appendChild(o))},mxXmlCanvas2D.prototype.setAlpha=function(t){if(this.compressed){if(this.state.alpha==t)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var e=this.createElement("alpha");e.setAttribute("alpha",this.format(t)),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setFillAlpha=function(t){if(this.compressed){if(this.state.fillAlpha==t)return;mxAbstractCanvas2D.prototype.setFillAlpha.apply(this,arguments)}var e=this.createElement("fillalpha");e.setAttribute("alpha",this.format(t)),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setStrokeAlpha=function(t){if(this.compressed){if(this.state.strokeAlpha==t)return;mxAbstractCanvas2D.prototype.setStrokeAlpha.apply(this,arguments)}var e=this.createElement("strokealpha");e.setAttribute("alpha",this.format(t)),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setFillColor=function(t){if(t==mxConstants.NONE&&(t=null),this.compressed){if(this.state.fillColor==t)return;mxAbstractCanvas2D.prototype.setFillColor.apply(this,arguments)}var e=this.createElement("fillcolor");e.setAttribute("color",null!=t?t:mxConstants.NONE),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setGradient=function(t,e,n,i,r,o,s,l,a){if(null!=t&&null!=e){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var h=this.createElement("gradient");h.setAttribute("c1",t),h.setAttribute("c2",e),h.setAttribute("x",this.format(n)),h.setAttribute("y",this.format(i)),h.setAttribute("w",this.format(r)),h.setAttribute("h",this.format(o)),null!=s&&h.setAttribute("direction",s),null!=l&&h.setAttribute("alpha1",l),null!=a&&h.setAttribute("alpha2",a),this.root.appendChild(h)}},mxXmlCanvas2D.prototype.setStrokeColor=function(t){if(t==mxConstants.NONE&&(t=null),this.compressed){if(this.state.strokeColor==t)return;mxAbstractCanvas2D.prototype.setStrokeColor.apply(this,arguments)}var e=this.createElement("strokecolor");e.setAttribute("color",null!=t?t:mxConstants.NONE),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setStrokeWidth=function(t){if(this.compressed){if(this.state.strokeWidth==t)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var e=this.createElement("strokewidth");e.setAttribute("width",this.format(t)),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setDashed=function(t,e){if(this.compressed){if(this.state.dashed==t)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var n=this.createElement("dashed");n.setAttribute("dashed",t?"1":"0"),null!=e&&n.setAttribute("fixDash",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashPattern=function(t){if(this.compressed){if(this.state.dashPattern==t)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var e=this.createElement("dashpattern");e.setAttribute("pattern",t),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setLineCap=function(t){if(this.compressed){if(this.state.lineCap==t)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var e=this.createElement("linecap");e.setAttribute("cap",t),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setLineJoin=function(t){if(this.compressed){if(this.state.lineJoin==t)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var e=this.createElement("linejoin");e.setAttribute("join",t),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setMiterLimit=function(t){if(this.compressed){if(this.state.miterLimit==t)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var e=this.createElement("miterlimit");e.setAttribute("limit",t),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setFontColor=function(t){if(this.textEnabled){if(t==mxConstants.NONE&&(t=null),this.compressed){if(this.state.fontColor==t)return;mxAbstractCanvas2D.prototype.setFontColor.apply(this,arguments)}var e=this.createElement("fontcolor");e.setAttribute("color",null!=t?t:mxConstants.NONE),this.root.appendChild(e)}},mxXmlCanvas2D.prototype.setFontBackgroundColor=function(t){if(this.textEnabled){if(t==mxConstants.NONE&&(t=null),this.compressed){if(this.state.fontBackgroundColor==t)return;mxAbstractCanvas2D.prototype.setFontBackgroundColor.apply(this,arguments)}var e=this.createElement("fontbackgroundcolor");e.setAttribute("color",null!=t?t:mxConstants.NONE),this.root.appendChild(e)}},mxXmlCanvas2D.prototype.setFontBorderColor=function(t){if(this.textEnabled){if(t==mxConstants.NONE&&(t=null),this.compressed){if(this.state.fontBorderColor==t)return;mxAbstractCanvas2D.prototype.setFontBorderColor.apply(this,arguments)}var e=this.createElement("fontbordercolor");e.setAttribute("color",null!=t?t:mxConstants.NONE),this.root.appendChild(e)}},mxXmlCanvas2D.prototype.setFontSize=function(t){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==t)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var e=this.createElement("fontsize");e.setAttribute("size",t),this.root.appendChild(e)}},mxXmlCanvas2D.prototype.setFontFamily=function(t){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==t)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var e=this.createElement("fontfamily");e.setAttribute("family",t),this.root.appendChild(e)}},mxXmlCanvas2D.prototype.setFontStyle=function(t){if(this.textEnabled){if(null==t&&(t=0),this.compressed){if(this.state.fontStyle==t)return;mxAbstractCanvas2D.prototype.setFontStyle.apply(this,arguments)}var e=this.createElement("fontstyle");e.setAttribute("style",t),this.root.appendChild(e)}},mxXmlCanvas2D.prototype.setShadow=function(t){if(this.compressed){if(this.state.shadow==t)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var e=this.createElement("shadow");e.setAttribute("enabled",t?"1":"0"),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setShadowColor=function(t){if(this.compressed){if(t==mxConstants.NONE&&(t=null),this.state.shadowColor==t)return;mxAbstractCanvas2D.prototype.setShadowColor.apply(this,arguments)}var e=this.createElement("shadowcolor");e.setAttribute("color",null!=t?t:mxConstants.NONE),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setShadowAlpha=function(t){if(this.compressed){if(this.state.shadowAlpha==t)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var e=this.createElement("shadowalpha");e.setAttribute("alpha",t),this.root.appendChild(e)},mxXmlCanvas2D.prototype.setShadowOffset=function(t,e){if(this.compressed){if(this.state.shadowDx==t&&this.state.shadowDy==e)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var n=this.createElement("shadowoffset");n.setAttribute("dx",t),n.setAttribute("dy",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.rect=function(t,e,n,i){var r=this.createElement("rect");r.setAttribute("x",this.format(t)),r.setAttribute("y",this.format(e)),r.setAttribute("w",this.format(n)),r.setAttribute("h",this.format(i)),this.root.appendChild(r)},mxXmlCanvas2D.prototype.roundrect=function(t,e,n,i,r,o){var s=this.createElement("roundrect");s.setAttribute("x",this.format(t)),s.setAttribute("y",this.format(e)),s.setAttribute("w",this.format(n)),s.setAttribute("h",this.format(i)),s.setAttribute("dx",this.format(r)),s.setAttribute("dy",this.format(o)),this.root.appendChild(s)},mxXmlCanvas2D.prototype.ellipse=function(t,e,n,i){var r=this.createElement("ellipse");r.setAttribute("x",this.format(t)),r.setAttribute("y",this.format(e)),r.setAttribute("w",this.format(n)),r.setAttribute("h",this.format(i)),this.root.appendChild(r)},mxXmlCanvas2D.prototype.image=function(t,e,n,i,r,o,s,l){r=this.converter.convert(r);var a=this.createElement("image");a.setAttribute("x",this.format(t)),a.setAttribute("y",this.format(e)),a.setAttribute("w",this.format(n)),a.setAttribute("h",this.format(i)),a.setAttribute("src",r),a.setAttribute("aspect",o?"1":"0"),a.setAttribute("flipH",s?"1":"0"),a.setAttribute("flipV",l?"1":"0"),this.root.appendChild(a)},mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin")),this.lastX=0,this.lastY=0},mxXmlCanvas2D.prototype.moveTo=function(t,e){var n=this.createElement("move");n.setAttribute("x",this.format(t)),n.setAttribute("y",this.format(e)),this.root.appendChild(n),this.lastX=t,this.lastY=e},mxXmlCanvas2D.prototype.lineTo=function(t,e){var n=this.createElement("line");n.setAttribute("x",this.format(t)),n.setAttribute("y",this.format(e)),this.root.appendChild(n),this.lastX=t,this.lastY=e},mxXmlCanvas2D.prototype.quadTo=function(t,e,n,i){var r=this.createElement("quad");r.setAttribute("x1",this.format(t)),r.setAttribute("y1",this.format(e)),r.setAttribute("x2",this.format(n)),r.setAttribute("y2",this.format(i)),this.root.appendChild(r),this.lastX=n,this.lastY=i},mxXmlCanvas2D.prototype.curveTo=function(t,e,n,i,r,o){var s=this.createElement("curve");s.setAttribute("x1",this.format(t)),s.setAttribute("y1",this.format(e)),s.setAttribute("x2",this.format(n)),s.setAttribute("y2",this.format(i)),s.setAttribute("x3",this.format(r)),s.setAttribute("y3",this.format(o)),this.root.appendChild(s),this.lastX=r,this.lastY=o},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(t,e,n,i,r,o,s,l,a,h,u,d,c){if(this.textEnabled&&null!=r){mxUtils.isNode(r)&&(r=mxUtils.getOuterHtml(r));var p=this.createElement("text");p.setAttribute("x",this.format(t)),p.setAttribute("y",this.format(e)),p.setAttribute("w",this.format(n)),p.setAttribute("h",this.format(i)),p.setAttribute("str",r),null!=o&&p.setAttribute("align",o),null!=s&&p.setAttribute("valign",s),p.setAttribute("wrap",l?"1":"0"),null==a&&(a=""),p.setAttribute("format",a),null!=h&&p.setAttribute("overflow",h),null!=u&&p.setAttribute("clip",u?"1":"0"),null!=d&&p.setAttribute("rotation",d),null!=c&&p.setAttribute("dir",c),this.root.appendChild(p)}},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"))},__mxOutput.mxXmlCanvas2D="undefined"!==typeof mxXmlCanvas2D?mxXmlCanvas2D:void 0,mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D),function(){if(mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer,mxSvgCanvas2D.prototype.useDomParser)try{var t=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=t}catch(e){mxSvgCanvas2D.prototype.useDomParser=!1}mxSvgCanvas2D.prototype.useAbsoluteIds=!mxClient.IS_CHROMEAPP&&!mxClient.IS_IE&&!mxClient.IS_IE11&&!mxClient.IS_EDGE&&document.getElementsByTagName("base").length>0}(),mxSvgCanvas2D.prototype.node=null,mxSvgCanvas2D.prototype.matchHtmlAlignment=!0,mxSvgCanvas2D.prototype.textEnabled=!0,mxSvgCanvas2D.prototype.foEnabled=!0,mxSvgCanvas2D.prototype.foAltText="[Object]",mxSvgCanvas2D.prototype.foOffset=0,mxSvgCanvas2D.prototype.textOffset=0,mxSvgCanvas2D.prototype.imageOffset=0,mxSvgCanvas2D.prototype.strokeTolerance=0,mxSvgCanvas2D.prototype.minStrokeWidth=1,mxSvgCanvas2D.prototype.refCount=0,mxSvgCanvas2D.prototype.lineHeightCorrection=1,mxSvgCanvas2D.prototype.pointerEventsValue="all",mxSvgCanvas2D.prototype.fontMetricsPadding=10,mxSvgCanvas2D.prototype.cacheOffsetSize=!0,mxSvgCanvas2D.prototype.format=function(t){return parseFloat(parseFloat(t).toFixed(2))},mxSvgCanvas2D.prototype.getBaseUrl=function(){var t=window.location.href,e=t.lastIndexOf("#");return e>0&&(t=t.substring(0,e)),t},mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments),this.gradients=[]},mxSvgCanvas2D.prototype.createStyle=function(t){var e=this.createElement("style");return e.setAttribute("type","text/css"),mxUtils.write(e,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}"),e},mxSvgCanvas2D.prototype.createElement=function(t,e){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(e||mxConstants.NS_SVG,t);var n=this.root.ownerDocument.createElement(t);return null!=e&&n.setAttribute("xmlns",e),n},mxSvgCanvas2D.prototype.getAlternateText=function(t,e,n,i,r,o,s,l,a,h,u,d,c){return null!=o?this.foAltText:null},mxSvgCanvas2D.prototype.createAlternateContent=function(t,e,n,i,r,o,s,l,a,h,u,d,c){var p=this.getAlternateText(t,e,n,i,r,o,s,l,a,h,u,d,c),g=this.state;if(null!=p&&g.fontSize>0){var m=l==mxConstants.ALIGN_TOP?1:l==mxConstants.ALIGN_BOTTOM?0:.3,x=s==mxConstants.ALIGN_RIGHT?"end":s==mxConstants.ALIGN_LEFT?"start":"middle",y=this.createElement("text");y.setAttribute("x",Math.round(e+g.dx)),y.setAttribute("y",Math.round(n+g.dy+m*g.fontSize)),y.setAttribute("fill",g.fontColor||"black"),y.setAttribute("font-family",g.fontFamily),y.setAttribute("font-size",Math.round(g.fontSize)+"px"),"start"!=x&&y.setAttribute("text-anchor",x),(g.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&y.setAttribute("font-weight","bold"),(g.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&y.setAttribute("font-style","italic");var f=[];return(g.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&f.push("underline"),(g.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&f.push("line-through"),f.length>0&&y.setAttribute("text-decoration",f.join(" ")),mxUtils.write(y,p),y}return null},mxSvgCanvas2D.prototype.createGradientId=function(t,e,n,i,r){"#"==t.charAt(0)&&(t=t.substring(1)),"#"==e.charAt(0)&&(e=e.substring(1)),t=t.toLowerCase()+"-"+n,e=e.toLowerCase()+"-"+i;var o=null;if(null==r||r==mxConstants.DIRECTION_SOUTH)o="s";else if(r==mxConstants.DIRECTION_EAST)o="e";else{var s=t;t=e,e=s,r==mxConstants.DIRECTION_NORTH?o="s":r==mxConstants.DIRECTION_WEST&&(o="e")}return"mx-gradient-"+t+"-"+e+"-"+o},mxSvgCanvas2D.prototype.getSvgGradient=function(t,e,n,i,r){var o=this.createGradientId(t,e,n,i,r),s=this.gradients[o];if(null==s){var l=this.root.ownerSVGElement,a=0,h=o+"-"+a;if(null!=l){s=l.ownerDocument.getElementById(h);while(null!=s&&s.ownerSVGElement!=l)h=o+"-"+a++,s=l.ownerDocument.getElementById(h)}else h="id"+ ++this.refCount;null==s&&(s=this.createSvgGradient(t,e,n,i,r),s.setAttribute("id",h),null!=this.defs?this.defs.appendChild(s):l.appendChild(s)),this.gradients[o]=s}return s.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(t,e,n,i,r){var o=this.createElement("linearGradient");o.setAttribute("x1","0%"),o.setAttribute("y1","0%"),o.setAttribute("x2","0%"),o.setAttribute("y2","0%"),null==r||r==mxConstants.DIRECTION_SOUTH?o.setAttribute("y2","100%"):r==mxConstants.DIRECTION_EAST?o.setAttribute("x2","100%"):r==mxConstants.DIRECTION_NORTH?o.setAttribute("y1","100%"):r==mxConstants.DIRECTION_WEST&&o.setAttribute("x1","100%");var s=n<1?";stop-opacity:"+n:"",l=this.createElement("stop");return l.setAttribute("offset","0%"),l.setAttribute("style","stop-color:"+t+s),o.appendChild(l),s=i<1?";stop-opacity:"+i:"",l=this.createElement("stop"),l.setAttribute("offset","100%"),l.setAttribute("style","stop-color:"+e+s),o.appendChild(l),o},mxSvgCanvas2D.prototype.addNode=function(t,e){var n=this.node,i=this.state;if(null!=n){if("path"==n.nodeName){if(!(null!=this.path&&this.path.length>0))return;n.setAttribute("d",this.path.join(" "))}t&&null!=i.fillColor?this.updateFill():this.styleEnabled||("ellipse"==n.nodeName&&mxClient.IS_FF?n.setAttribute("fill","transparent"):n.setAttribute("fill","none"),t=!1),e&&null!=i.strokeColor?this.updateStroke():this.styleEnabled||n.setAttribute("stroke","none"),null!=i.transform&&i.transform.length>0&&n.setAttribute("transform",i.transform),i.shadow&&this.root.appendChild(this.createShadow(n)),this.strokeTolerance>0&&!t&&this.root.appendChild(this.createTolerance(n)),this.pointerEvents?n.setAttribute("pointer-events",this.pointerEventsValue):this.pointerEvents||null!=this.originalRoot||n.setAttribute("pointer-events","none"),("rect"!=n.nodeName&&"path"!=n.nodeName&&"ellipse"!=n.nodeName||"none"!=n.getAttribute("fill")&&"transparent"!=n.getAttribute("fill")||"none"!=n.getAttribute("stroke")||"none"!=n.getAttribute("pointer-events"))&&this.root.appendChild(n),this.node=null}},mxSvgCanvas2D.prototype.updateFill=function(){var t=this.state;if((t.alpha<1||t.fillAlpha<1)&&this.node.setAttribute("fill-opacity",t.alpha*t.fillAlpha),null!=t.fillColor)if(null!=t.gradientColor){var e=this.getSvgGradient(String(t.fillColor),String(t.gradientColor),t.gradientFillAlpha,t.gradientAlpha,t.gradientDirection);if(this.root.ownerDocument==document&&this.useAbsoluteIds){var n=this.getBaseUrl().replace(/([\(\)])/g,"\\$1");this.node.setAttribute("fill","url("+n+"#"+e+")")}else this.node.setAttribute("fill","url(#"+e+")")}else this.node.setAttribute("fill",String(t.fillColor).toLowerCase())},mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,Math.max(.01,this.format(this.state.strokeWidth*this.state.scale)))},mxSvgCanvas2D.prototype.updateStroke=function(){var t=this.state;this.node.setAttribute("stroke",String(t.strokeColor).toLowerCase()),(t.alpha<1||t.strokeAlpha<1)&&this.node.setAttribute("stroke-opacity",t.alpha*t.strokeAlpha);var e=this.getCurrentStrokeWidth();1!=e&&this.node.setAttribute("stroke-width",e),"path"==this.node.nodeName&&this.updateStrokeAttributes(),t.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((t.fixDash?1:t.strokeWidth)*t.scale))},mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var t=this.state;if(null!=t.lineJoin&&"miter"!=t.lineJoin&&this.node.setAttribute("stroke-linejoin",t.lineJoin),null!=t.lineCap){var e=t.lineCap;"flat"==e&&(e="butt"),"butt"!=e&&this.node.setAttribute("stroke-linecap",e)}null==t.miterLimit||this.styleEnabled&&10==t.miterLimit||this.node.setAttribute("stroke-miterlimit",t.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(t){var e=[];if("string"===typeof this.state.dashPattern){var n=this.state.dashPattern.split(" ");if(n.length>0)for(var i=0;i<n.length;i++)e[i]=Number(n[i])*t}return e.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(t){var e=t.cloneNode(!0),n=parseFloat(e.getAttribute("stroke-width")||1)+this.strokeTolerance;return e.setAttribute("pointer-events","stroke"),e.setAttribute("visibility","hidden"),e.removeAttribute("stroke-dasharray"),e.setAttribute("stroke-width",n),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OT?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(t){var e=t.cloneNode(!0),n=this.state;return"none"==e.getAttribute("fill")||mxClient.IS_FF&&"transparent"==e.getAttribute("fill")||e.setAttribute("fill",n.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",n.shadowColor),e.setAttribute("transform","translate("+this.format(n.shadowDx*n.scale)+","+this.format(n.shadowDy*n.scale)+")"+(n.transform||"")),e.setAttribute("opacity",n.shadowAlpha),e},mxSvgCanvas2D.prototype.setLink=function(t){if(null==t)this.root=this.originalRoot;else{this.originalRoot=this.root;var e=this.createElement("a");null==e.setAttributeNS||this.root.ownerDocument!=document&&null==document.documentMode?e.setAttribute("xlink:href",t):e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",t),this.root.appendChild(e),this.root=e}},mxSvgCanvas2D.prototype.rotate=function(t,e,n,i,r){if(0!=t||e||n){var o=this.state;if(i+=o.dx,r+=o.dy,i*=o.scale,r*=o.scale,o.transform=o.transform||"",e&&n)t+=180;else if(e!=n){var s=e?i:0,l=e?-1:1,a=n?r:0,h=n?-1:1;o.transform+="translate("+this.format(s)+","+this.format(a)+")scale("+this.format(l)+","+this.format(h)+")translate("+this.format(-s)+","+this.format(-a)+")"}(e?!n:n)&&(t*=-1),0!=t&&(o.transform+="rotate("+this.format(t)+","+this.format(i)+","+this.format(r)+")"),o.rotation=o.rotation+t,o.rotationCx=i,o.rotationCy=r}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(t,e,n,i){var r=this.state,o=this.createElement("rect");o.setAttribute("x",this.format((t+r.dx)*r.scale)),o.setAttribute("y",this.format((e+r.dy)*r.scale)),o.setAttribute("width",this.format(n*r.scale)),o.setAttribute("height",this.format(i*r.scale)),this.node=o},mxSvgCanvas2D.prototype.roundrect=function(t,e,n,i,r,o){this.rect(t,e,n,i),r>0&&this.node.setAttribute("rx",this.format(r*this.state.scale)),o>0&&this.node.setAttribute("ry",this.format(o*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(t,e,n,i){var r=this.state,o=this.createElement("ellipse");o.setAttribute("cx",this.format((t+n/2+r.dx)*r.scale)),o.setAttribute("cy",this.format((e+i/2+r.dy)*r.scale)),o.setAttribute("rx",n/2*r.scale),o.setAttribute("ry",i/2*r.scale),this.node=o},mxSvgCanvas2D.prototype.image=function(t,e,n,i,r,o,s,l){r=this.converter.convert(r),o=null==o||o,s=null!=s&&s,l=null!=l&&l;var a=this.state;t+=a.dx,e+=a.dy;var h=this.createElement("image");h.setAttribute("x",this.format(t*a.scale)+this.imageOffset),h.setAttribute("y",this.format(e*a.scale)+this.imageOffset),h.setAttribute("width",this.format(n*a.scale)),h.setAttribute("height",this.format(i*a.scale)),null==h.setAttributeNS?h.setAttribute("xlink:href",r):h.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",r),o||h.setAttribute("preserveAspectRatio","none"),(a.alpha<1||a.fillAlpha<1)&&h.setAttribute("opacity",a.alpha*a.fillAlpha);var u=this.state.transform||"";if(s||l){var d=1,c=1,p=0,g=0;s&&(d=-1,p=-n-2*t),l&&(c=-1,g=-i-2*e),u+="scale("+d+","+c+")translate("+p*a.scale+","+g*a.scale+")"}u.length>0&&h.setAttribute("transform",u),this.pointerEvents||h.setAttribute("pointer-events","none"),this.root.appendChild(h)},mxSvgCanvas2D.prototype.convertHtml=function(t){if(this.useDomParser){var e=(new DOMParser).parseFromString(t,"text/html");null!=e&&(t=(new XMLSerializer).serializeToString(e.body),"<body"==t.substring(0,5)&&(t=t.substring(t.indexOf(">",5)+1)),"</body>"==t.substring(t.length-7,t.length)&&(t=t.substring(0,t.length-7)))}else{if(null!=document.implementation&&null!=document.implementation.createDocument){var n=document.implementation.createDocument("http://www.w3.org/1999/xhtml","html",null),i=n.createElement("body");n.documentElement.appendChild(i);var r=document.createElement("div");r.innerHTML=t;var o=r.firstChild;while(null!=o){var s=o.nextSibling;i.appendChild(n.adoptNode(o)),o=s}return i.innerHTML}var l=document.createElement("textarea");l.innerHTML=t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"<").replace(/>/g,">"),t=l.value.replace(/&/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/<br>/g,"<br />").replace(/<hr>/g,"<hr />").replace(/(<img[^>]+)>/gm,"$1 />")}return t},mxSvgCanvas2D.prototype.createDiv=function(t){var e=t;if(mxUtils.isNode(e)||(e="<div><div>"+this.convertHtml(e)+"</div></div>"),mxClient.IS_IE||mxClient.IS_IE11||!document.createElementNS)return mxUtils.isNode(e)&&(e="<div><div>"+mxUtils.getXml(e)+"</div></div>"),e='<div xmlns="http://www.w3.org/1999/xhtml">'+e+"</div>",mxUtils.parseXml(e).documentElement;var n=document.createElementNS("http://www.w3.org/1999/xhtml","div");if(mxUtils.isNode(e)){var i=document.createElement("div"),r=i.cloneNode(!1);this.root.ownerDocument!=document?i.appendChild(e.cloneNode(!0)):i.appendChild(e),r.appendChild(i),n.appendChild(r)}else n.innerHTML=e;return n},mxSvgCanvas2D.prototype.updateText=function(t,e,n,i,r,o,s,l,a,h,u){null!=u&&null!=u.firstChild&&null!=u.firstChild.firstChild&&this.updateTextNodes(t,e,n,i,r,o,s,l,a,h,u.firstChild)},mxSvgCanvas2D.prototype.addForeignObject=function(t,e,n,i,r,o,s,l,a,h,u,d,c,p,g){var m=this.createElement("g"),x=this.createElement("foreignObject");if(x.setAttribute("style","overflow: visible; text-align: left;"),x.setAttribute("pointer-events","none"),p.ownerDocument!=document&&(p=mxUtils.importNodeImplementation(x.ownerDocument,p,!0)),x.appendChild(p),m.appendChild(x),this.updateTextNodes(t,e,n,i,o,s,l,h,u,d,m),this.root.ownerDocument!=document){var y=this.createAlternateContent(x,t,e,n,i,r,o,s,l,a,h,u,d);if(null!=y){x.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var f=this.createElement("switch");f.appendChild(x),f.appendChild(y),m.appendChild(f)}}g.appendChild(m)},mxSvgCanvas2D.prototype.updateTextNodes=function(t,e,n,i,r,o,s,l,a,h,u){var d=this.state.scale;mxSvgCanvas2D.createCss(n+2,i,r,o,s,l,a,null!=this.state.fontBackgroundColor?this.state.fontBackgroundColor:null,null!=this.state.fontBorderColor?this.state.fontBorderColor:null,"display: flex; align-items: unsafe "+(o==mxConstants.ALIGN_TOP?"flex-start":o==mxConstants.ALIGN_BOTTOM?"flex-end":"center")+"; justify-content: unsafe "+(r==mxConstants.ALIGN_LEFT?"flex-start":r==mxConstants.ALIGN_RIGHT?"flex-end":"center")+"; ",this.getTextCss(),d,mxUtils.bind(this,(function(n,i,r,o,s){t+=this.state.dx,e+=this.state.dy;var l=u.firstChild,a=l.firstChild,c=a.firstChild,p=c.firstChild,g=(this.rotateHtml?this.state.rotation:0)+(null!=h?h:0),m=(0!=this.foOffset?"translate("+this.foOffset+" "+this.foOffset+")":"")+(1!=d?"scale("+d+")":"");p.setAttribute("style",s),c.setAttribute("style",o),l.setAttribute("width",Math.ceil(1/Math.min(1,d)*100)+"%"),l.setAttribute("height",Math.ceil(1/Math.min(1,d)*100)+"%");var x=Math.round(e+i);x<0?l.setAttribute("y",x):(l.removeAttribute("y"),r+="padding-top: "+x+"px; "),a.setAttribute("style",r+"margin-left: "+Math.round(t+n)+"px;"),m+=0!=g?"rotate("+g+" "+t+" "+e+")":"",""!=m?u.setAttribute("transform",m):u.removeAttribute("transform"),1!=this.state.alpha?u.setAttribute("opacity",this.state.alpha):u.removeAttribute("opacity")})))},mxSvgCanvas2D.createCss=function(t,e,n,i,r,o,s,l,a,h,u,d,c){var p="box-sizing: border-box; font-size: 0; text-align: "+(n==mxConstants.ALIGN_LEFT?"left":n==mxConstants.ALIGN_RIGHT?"right":"center")+"; ",g=mxUtils.getAlignmentAsPoint(n,i),m="overflow: hidden; ",x="width: 1px; ",y="height: 1px; ",f=g.x*t,A=g.y*e;s?(x="width: "+Math.round(t)+"px; ",p+="max-height: "+Math.round(e)+"px; ",A=0):"fill"==o?(x="width: "+Math.round(t)+"px; ",y="height: "+Math.round(e)+"px; ",u+="width: 100%; height: 100%; ",p+=x+y):"width"==o?(x="width: "+Math.round(t)+"px; ",u+="width: 100%; ",p+=x,A=0,e>0&&(p+="max-height: "+Math.round(e)+"px; ")):(m="",A=0);var C="";null!=l&&(C+="background-color: "+l+"; "),null!=a&&(C+="border: 1px solid "+a+"; "),""==m||s?u+=C:p+=C,r&&t>0?(u+="white-space: normal; word-wrap: "+mxConstants.WORD_WRAP+"; ",x="width: "+Math.round(t)+"px; ",""!=m&&"fill"!=o&&(A=0)):(u+="white-space: nowrap; ",""==m&&(f=0)),c(f,A,h+x+y,p+m,u,m)},mxSvgCanvas2D.prototype.getTextCss=function(){var t=this.state,e=mxConstants.ABSOLUTE_LINE_HEIGHT?t.fontSize*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT*this.lineHeightCorrection,n="display: inline-block; font-size: "+t.fontSize+"px; font-family: "+t.fontFamily+"; color: "+t.fontColor+"; line-height: "+e+"; pointer-events: "+(this.pointerEvents?this.pointerEventsValue:"none")+"; ";(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(n+="font-weight: bold; "),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(n+="font-style: italic; ");var i=[];return(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&i.push("underline"),(t.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&i.push("line-through"),i.length>0&&(n+="text-decoration: "+i.join(" ")+"; "),n},mxSvgCanvas2D.prototype.text=function(t,e,n,i,r,o,s,l,a,h,u,d,c){if(this.textEnabled&&null!=r)if(d=null!=d?d:0,this.foEnabled&&"html"==a){var p=this.createDiv(r);null!=p&&(null!=c&&p.setAttribute("dir",c),this.addForeignObject(t,e,n,i,r,o,s,l,a,h,u,d,c,p,this.root))}else this.plainText(t+this.state.dx,e+this.state.dy,n,i,r,o,s,l,h,u,d,c)},mxSvgCanvas2D.prototype.createClip=function(t,e,n,i){t=Math.round(t),e=Math.round(e),n=Math.round(n),i=Math.round(i);var r="mx-clip-"+t+"-"+e+"-"+n+"-"+i,o=0,s=r+"-"+o;while(null!=document.getElementById(s))s=r+"-"+ ++o;clip=this.createElement("clipPath"),clip.setAttribute("id",s);var l=this.createElement("rect");return l.setAttribute("x",t),l.setAttribute("y",e),l.setAttribute("width",n),l.setAttribute("height",i),clip.appendChild(l),clip},mxSvgCanvas2D.prototype.plainText=function(t,e,n,i,r,o,s,l,a,h,u,d){u=null!=u?u:0;var c=this.state,p=c.fontSize,g=this.createElement("g"),m=c.transform||"";if(this.updateFont(g),this.pointerEvents||null!=this.originalRoot||g.setAttribute("pointer-events","none"),0!=u&&(m+="rotate("+u+","+this.format(t*c.scale)+","+this.format(e*c.scale)+")"),null!=d&&g.setAttribute("direction",d),h&&n>0&&i>0){var x=t,y=e;o==mxConstants.ALIGN_CENTER?x-=n/2:o==mxConstants.ALIGN_RIGHT&&(x-=n),"fill"!=a&&(s==mxConstants.ALIGN_MIDDLE?y-=i/2:s==mxConstants.ALIGN_BOTTOM&&(y-=i));var f=this.createClip(x*c.scale-2,y*c.scale-2,n*c.scale+4,i*c.scale+4);if(null!=this.defs?this.defs.appendChild(f):this.root.appendChild(f),mxClient.IS_CHROMEAPP||mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE||this.root.ownerDocument!=document)g.setAttribute("clip-path","url(#"+f.getAttribute("id")+")");else{var A=this.getBaseUrl().replace(/([\(\)])/g,"\\$1");g.setAttribute("clip-path","url("+A+"#"+f.getAttribute("id")+")")}}var C=o==mxConstants.ALIGN_RIGHT?"end":o==mxConstants.ALIGN_CENTER?"middle":"start";"start"!=C&&g.setAttribute("text-anchor",C),this.styleEnabled&&p==mxConstants.DEFAULT_FONTSIZE||g.setAttribute("font-size",p*c.scale+"px"),m.length>0&&g.setAttribute("transform",m),c.alpha<1&&g.setAttribute("opacity",c.alpha);var v=r.split("\n"),E=Math.round(p*mxConstants.LINE_HEIGHT),w=p+(v.length-1)*E;y=e+p-1;if(s==mxConstants.ALIGN_MIDDLE)if("fill"==a)y-=i/2;else{var S=(this.matchHtmlAlignment&&h&&i>0?Math.min(w,i):w)/2;y-=S}else if(s==mxConstants.ALIGN_BOTTOM)if("fill"==a)y-=i;else{S=this.matchHtmlAlignment&&h&&i>0?Math.min(w,i):w;y-=S+1}for(var b=0;b<v.length;b++){if(v[b].length>0&&mxUtils.trim(v[b]).length>0){var T=this.createElement("text");T.setAttribute("x",this.format(t*c.scale)+this.textOffset),T.setAttribute("y",this.format(y*c.scale)+this.textOffset),mxUtils.write(T,v[b]),g.appendChild(T)}y+=E}this.root.appendChild(g),this.addTextBackground(g,r,t,e,n,"fill"==a?i:w,o,s,a)},mxSvgCanvas2D.prototype.updateFont=function(t){var e=this.state;t.setAttribute("fill",e.fontColor),this.styleEnabled&&e.fontFamily==mxConstants.DEFAULT_FONTFAMILY||t.setAttribute("font-family",e.fontFamily),(e.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&t.setAttribute("font-weight","bold"),(e.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&t.setAttribute("font-style","italic");var n=[];(e.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&n.push("underline"),(e.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&n.push("line-through"),n.length>0&&t.setAttribute("text-decoration",n.join(" "))},mxSvgCanvas2D.prototype.addTextBackground=function(t,e,n,i,r,o,s,l,a){var h=this.state;if(null!=h.fontBackgroundColor||null!=h.fontBorderColor){var u=null;if("fill"==a||"width"==a)s==mxConstants.ALIGN_CENTER?n-=r/2:s==mxConstants.ALIGN_RIGHT&&(n-=r),l==mxConstants.ALIGN_MIDDLE?i-=o/2:l==mxConstants.ALIGN_BOTTOM&&(i-=o),u=new mxRectangle((n+1)*h.scale,i*h.scale,(r-2)*h.scale,(o+2)*h.scale);else if(null!=t.getBBox&&this.root.ownerDocument==document)try{u=t.getBBox();var d=mxClient.IS_IE&&mxClient.IS_SVG;u=new mxRectangle(u.x,u.y+(d?0:1),u.width,u.height+(d?1:0))}catch(m){}if(null==u||0==u.width||0==u.height){var c=document.createElement("div");c.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?h.fontSize*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT,c.style.fontSize=h.fontSize+"px",c.style.fontFamily=h.fontFamily,c.style.whiteSpace="nowrap",c.style.position="absolute",c.style.visibility="hidden",c.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",c.style.zoom="1",(h.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(c.style.fontWeight="bold"),(h.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(c.style.fontStyle="italic"),e=mxUtils.htmlEntities(e,!1),c.innerHTML=e.replace(/\n/g,"<br/>"),document.body.appendChild(c);r=c.offsetWidth,o=c.offsetHeight;c.parentNode.removeChild(c),s==mxConstants.ALIGN_CENTER?n-=r/2:s==mxConstants.ALIGN_RIGHT&&(n-=r),l==mxConstants.ALIGN_MIDDLE?i-=o/2:l==mxConstants.ALIGN_BOTTOM&&(i-=o),u=new mxRectangle((n+1)*h.scale,(i+2)*h.scale,r*h.scale,(o+1)*h.scale)}if(null!=u){var p=this.createElement("rect");p.setAttribute("fill",h.fontBackgroundColor||"none"),p.setAttribute("stroke",h.fontBorderColor||"none"),p.setAttribute("x",Math.floor(u.x-1)),p.setAttribute("y",Math.floor(u.y-1)),p.setAttribute("width",Math.ceil(u.width+2)),p.setAttribute("height",Math.ceil(u.height));var g=null!=h.fontBorderColor?Math.max(1,this.format(h.scale)):0;p.setAttribute("stroke-width",g),this.root.ownerDocument==document&&1==mxUtils.mod(g,2)&&p.setAttribute("transform","translate(0.5, 0.5)"),t.insertBefore(p,t.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)},__mxOutput.mxSvgCanvas2D="undefined"!==typeof mxSvgCanvas2D?mxSvgCanvas2D:void 0;var mxVmlCanvas2D=function(t){mxAbstractCanvas2D.call(this),this.root=t};function mxGuide(t,e){this.graph=t,this.setStates(e)}function mxShape(t){this.stencil=t,this.initStyles()}function mxStencil(t){this.desc=t,this.parseDescription(),this.parseConstraints()}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(t){return document.createElement(t)},mxVmlCanvas2D.prototype.createVmlElement=function(t){return this.createElement(mxClient.VML_PREFIX+":"+t)},mxVmlCanvas2D.prototype.addNode=function(t,e){var n=this.node,i=this.state;if(null!=n){if("shape"==n.nodeName){if(!(null!=this.path&&this.path.length>0))return;n.path=this.path.join(" ")+" e",n.style.width=this.root.style.width,n.style.height=this.root.style.height,n.coordsize=parseInt(n.style.width)+" "+parseInt(n.style.height)}n.strokeweight=this.format(Math.max(1,i.strokeWidth*i.scale/this.vmlScale))+"px",i.shadow&&this.root.appendChild(this.createShadow(n,t&&null!=i.fillColor,e&&null!=i.strokeColor)),e&&null!=i.strokeColor?(n.stroked="true",n.strokecolor=i.strokeColor):n.stroked="false",n.appendChild(this.createStroke()),t&&null!=i.fillColor?n.appendChild(this.createFill()):!this.pointerEvents||"shape"==n.nodeName&&this.path[this.path.length-1]!=this.closeOp?n.filled="false":n.appendChild(this.createTransparentFill()),this.root.appendChild(n)}},mxVmlCanvas2D.prototype.createTransparentFill=function(){var t=this.createVmlElement("fill");return t.src=mxClient.imageBasePath+"/transparent.gif",t.type="tile",t},mxVmlCanvas2D.prototype.createFill=function(){var t=this.state,e=this.createVmlElement("fill");if(e.color=t.fillColor,null!=t.gradientColor){e.type="gradient",e.method="none",e.color2=t.gradientColor;var n=180-t.rotation;t.gradientDirection==mxConstants.DIRECTION_WEST?n-=90+("x"==this.root.style.flip?180:0):t.gradientDirection==mxConstants.DIRECTION_EAST?n+=90+("x"==this.root.style.flip?180:0):t.gradientDirection==mxConstants.DIRECTION_NORTH?n-=180+("y"==this.root.style.flip?-180:0):n+="y"==this.root.style.flip?-180:0,"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(n*=-1),e.angle=mxUtils.mod(n,360),e.opacity=t.alpha*t.gradientFillAlpha*100+"%",e.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",t.alpha*t.gradientAlpha*100+"%")}else(t.alpha<1||t.fillAlpha<1)&&(e.opacity=t.alpha*t.fillAlpha*100+"%");return e},mxVmlCanvas2D.prototype.createStroke=function(){var t=this.state,e=this.createVmlElement("stroke");return e.endcap=t.lineCap||"flat",e.joinstyle=t.lineJoin||"miter",e.miterlimit=t.miterLimit||"10",(t.alpha<1||t.strokeAlpha<1)&&(e.opacity=t.alpha*t.strokeAlpha*100+"%"),t.dashed&&(e.dashstyle=this.getVmlDashStyle()),e},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var t="dash";if("string"===typeof this.state.dashPattern){var e=this.state.dashPattern.split(" ");e.length>0&&1==e[0]&&(t="0 2")}return t},mxVmlCanvas2D.prototype.createShadow=function(t,e,n){var i=this.state,r=-i.rotation*(Math.PI/180),o=Math.cos(r),s=Math.sin(r),l=i.shadowDx*i.scale,a=i.shadowDy*i.scale;"x"==this.root.style.flip?l*=-1:"y"==this.root.style.flip&&(a*=-1);var h=t.cloneNode(!0);return h.style.marginLeft=Math.round(l*o-a*s)+"px",h.style.marginTop=Math.round(l*s+a*o)+"px",8==document.documentMode&&(h.strokeweight=t.strokeweight,"shape"==t.nodeName&&(h.path=this.path.join(" ")+" e",h.style.width=this.root.style.width,h.style.height=this.root.style.height,h.coordsize=parseInt(t.style.width)+" "+parseInt(t.style.height))),n?(h.strokecolor=i.shadowColor,h.appendChild(this.createShadowStroke())):h.stroked="false",e?h.appendChild(this.createShadowFill()):h.filled="false",h},mxVmlCanvas2D.prototype.createShadowFill=function(){var t=this.createVmlElement("fill");return t.color=this.state.shadowColor,t.opacity=this.state.alpha*this.state.shadowAlpha*100+"%",t},mxVmlCanvas2D.prototype.createShadowStroke=function(){var t=this.createStroke();return t.opacity=this.state.alpha*this.state.shadowAlpha*100+"%",t},mxVmlCanvas2D.prototype.rotate=function(t,e,n,i,r){e&&n?t+=180:e?this.root.style.flip="x":n&&(this.root.style.flip="y"),(e?!n:n)&&(t*=-1),this.root.style.rotation=t,this.state.rotation=this.state.rotation+t,this.state.rotationCx=i,this.state.rotationCy=r},mxVmlCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createVmlElement("shape"),this.node.style.position="absolute"},mxVmlCanvas2D.prototype.quadTo=function(t,e,n,i){var r=this.state,o=(this.lastX+r.dx)*r.scale,s=(this.lastY+r.dy)*r.scale,l=(t+r.dx)*r.scale,a=(e+r.dy)*r.scale,h=(n+r.dx)*r.scale,u=(i+r.dy)*r.scale,d=o+2/3*(l-o),c=s+2/3*(a-s),p=h+2/3*(l-h),g=u+2/3*(a-u);this.path.push("c "+this.format(d)+" "+this.format(c)+" "+this.format(p)+" "+this.format(g)+" "+this.format(h)+" "+this.format(u)),this.lastX=h/r.scale-r.dx,this.lastY=u/r.scale-r.dy},mxVmlCanvas2D.prototype.createRect=function(t,e,n,i,r){var o=this.state,s=this.createVmlElement(t);return s.style.position="absolute",s.style.left=this.format((e+o.dx)*o.scale)+"px",s.style.top=this.format((n+o.dy)*o.scale)+"px",s.style.width=this.format(i*o.scale)+"px",s.style.height=this.format(r*o.scale)+"px",s},mxVmlCanvas2D.prototype.rect=function(t,e,n,i){this.node=this.createRect("rect",t,e,n,i)},mxVmlCanvas2D.prototype.roundrect=function(t,e,n,i,r,o){this.node=this.createRect("roundrect",t,e,n,i),this.node.setAttribute("arcsize",Math.max(100*r/n,100*o/i)+"%")},mxVmlCanvas2D.prototype.ellipse=function(t,e,n,i){this.node=this.createRect("oval",t,e,n,i)},mxVmlCanvas2D.prototype.image=function(t,e,n,i,r,o,s,l){var a=null;if(o){a=this.createRect("rect",t,e,n,i),a.stroked="false";var h=this.createVmlElement("fill");h.aspect=o?"atmost":"ignore",h.rotate="true",h.type="frame",h.src=r,a.appendChild(h)}else a=this.createRect("image",t,e,n,i),a.src=r;s&&l?a.style.rotation="180":s?a.style.flip="x":l&&(a.style.flip="y"),(this.state.alpha<1||this.state.fillAlpha<1)&&(a.style.filter+="alpha(opacity="+this.state.alpha*this.state.fillAlpha*100+")"),this.root.appendChild(a)},mxVmlCanvas2D.prototype.createDiv=function(t,e,n,i){var r=this.createElement("div"),o=this.state,s="";if(null!=o.fontBackgroundColor&&(s+="background-color:"+mxUtils.htmlEntities(o.fontBackgroundColor)+";"),null!=o.fontBorderColor&&(s+="border:1px solid "+mxUtils.htmlEntities(o.fontBorderColor)+";"),mxUtils.isNode(t))r.appendChild(t);else if("fill"!=i&&"width"!=i){var l=this.createElement("div");l.style.cssText=s,l.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",l.style.zoom="1",l.style.textDecoration="inherit",l.innerHTML=t,r.appendChild(l)}else r.style.cssText=s,r.innerHTML=t;var a=r.style;return a.fontSize=o.fontSize/this.vmlScale+"px",a.fontFamily=o.fontFamily,a.color=o.fontColor,a.verticalAlign="top",a.textAlign=e||"left",a.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?o.fontSize*mxConstants.LINE_HEIGHT/this.vmlScale+"px":mxConstants.LINE_HEIGHT,(o.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a.fontWeight="bold"),(o.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a.fontStyle="italic"),(o.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a.textDecoration="underline"),r},mxVmlCanvas2D.prototype.text=function(t,e,n,i,r,o,s,l,a,h,u,d,c){if(this.textEnabled&&null!=r){var p=this.state;if("html"==a){if(null!=p.rotation){var g=this.rotatePoint(t,e,p.rotation,p.rotationCx,p.rotationCy);t=g.x,e=g.y}8!=document.documentMode||mxClient.IS_EM?(t*=p.scale,e*=p.scale):(t+=p.dx,e+=p.dy,"fill"!=h&&s==mxConstants.ALIGN_TOP&&(e-=1));var m=8!=document.documentMode||mxClient.IS_EM?this.createElement("div"):this.createVmlElement("group");m.style.position="absolute",m.style.display="inline",m.style.left=this.format(t)+"px",m.style.top=this.format(e)+"px",m.style.zoom=p.scale;var x=this.createElement("div");x.style.position="relative",x.style.display="inline";var y=mxUtils.getAlignmentAsPoint(o,s),f=y.x,A=y.y,C=this.createDiv(r,o,s,h),v=this.createElement("div");if(null!=c&&C.setAttribute("dir",c),l&&n>0){if(u||(C.style.width=Math.round(n)+"px"),C.style.wordWrap=mxConstants.WORD_WRAP,C.style.whiteSpace="normal","break-word"==C.style.wordWrap){var E=C;null!=E.firstChild&&"DIV"==E.firstChild.nodeName&&(E.firstChild.style.width="100%")}}else C.style.whiteSpace="nowrap";var w=p.rotation+(d||0);if(this.rotateHtml&&0!=w?(v.style.display="inline",v.style.zoom="1",v.appendChild(C),8!=document.documentMode||mxClient.IS_EM||"DIV"==this.root.nodeName?m.appendChild(v):(x.appendChild(v),m.appendChild(x))):8!=document.documentMode||mxClient.IS_EM?(C.style.display="inline",m.appendChild(C)):(x.appendChild(C),m.appendChild(x)),"DIV"!=this.root.nodeName){var S=this.createVmlElement("rect");S.stroked="false",S.filled="false",S.appendChild(m),this.root.appendChild(S)}else this.root.appendChild(m);if(u?(C.style.overflow="hidden",C.style.width=Math.round(n)+"px",mxClient.IS_QUIRKS||(C.style.maxHeight=Math.round(i)+"px")):"fill"==h?(C.style.overflow="hidden",C.style.width=Math.max(0,n)+1+"px",C.style.height=Math.max(0,i)+1+"px"):"width"==h&&(C.style.overflow="hidden",C.style.width=Math.max(0,n)+1+"px",C.style.maxHeight=Math.max(0,i)+1+"px"),this.rotateHtml&&0!=w){var b=w*(Math.PI/180),T=parseFloat(parseFloat(Math.cos(b)).toFixed(8)),L=parseFloat(parseFloat(Math.sin(-b)).toFixed(8));b%=2*Math.PI,b<0&&(b+=2*Math.PI),b%=Math.PI,b>Math.PI/2&&(b=Math.PI-b);var I=Math.cos(b),M=Math.sin(b);8!=document.documentMode||mxClient.IS_EM||(C.style.display="inline-block",v.style.display="inline-block",x.style.display="inline-block"),C.style.visibility="hidden",C.style.position="absolute",document.body.appendChild(C);var R=C;null!=R.firstChild&&"DIV"==R.firstChild.nodeName&&(R=R.firstChild);E=R.offsetWidth+3;var O=R.offsetHeight;u?(n=Math.min(n,E),O=Math.min(O,i)):n=E,l&&(C.style.width=n+"px"),mxClient.IS_QUIRKS&&(u||"width"==h)&&O>i&&(O=i,C.style.height=O+"px"),i=O;var N=(i-i*I+n*-M)/2-L*n*(f+.5)+T*i*(A+.5),D=(n-n*I+i*-M)/2+T*n*(f+.5)+L*i*(A+.5);if("group"==m.nodeName&&"DIV"==this.root.nodeName){var P=this.createElement("div");P.style.display="inline-block",P.style.position="absolute",P.style.left=this.format(t+(D-n/2)*p.scale)+"px",P.style.top=this.format(e+(N-i/2)*p.scale)+"px",m.parentNode.appendChild(P),P.appendChild(m)}else{var H=8!=document.documentMode||mxClient.IS_EM?p.scale:1;m.style.left=this.format(t+(D-n/2)*H)+"px",m.style.top=this.format(e+(N-i/2)*H)+"px"}v.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+T+", M12="+L+", M21="+-L+", M22="+T+", sizingMethod='auto expand')",v.style.backgroundColor=this.rotatedHtmlBackground,this.state.alpha<1&&(v.style.filter+="alpha(opacity="+100*this.state.alpha+")"),v.appendChild(C),C.style.position="",C.style.visibility=""}else if(8!=document.documentMode||mxClient.IS_EM){C.style.verticalAlign="top",this.state.alpha<1&&(m.style.filter="alpha(opacity="+100*this.state.alpha+")");var k=C.parentNode;C.style.visibility="hidden",document.body.appendChild(C),n=C.offsetWidth;O=C.offsetHeight;mxClient.IS_QUIRKS&&u&&O>i&&(O=i,C.style.height=O+"px"),i=O,C.style.visibility="",k.appendChild(C),m.style.left=this.format(t+n*f*this.state.scale)+"px",m.style.top=this.format(e+i*A*this.state.scale)+"px"}else this.state.alpha<1&&(C.style.filter="alpha(opacity="+100*this.state.alpha+")"),x.style.left=100*f+"%",x.style.top=100*A+"%"}else this.plainText(t,e,n,i,mxUtils.htmlEntities(r,!1),o,s,l,a,h,u,d,c)}},mxVmlCanvas2D.prototype.plainText=function(t,e,n,i,r,o,s,l,a,h,u,d,c){var p=this.state;t=(t+p.dx)*p.scale,e=(e+p.dy)*p.scale;var g=this.createVmlElement("shape");g.style.width="1px",g.style.height="1px",g.stroked="false";var m=this.createVmlElement("fill");m.color=p.fontColor,m.opacity=100*p.alpha+"%",g.appendChild(m);var x=this.createVmlElement("path");x.textpathok="true",x.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0),g.appendChild(x);var y=this.createVmlElement("textpath");y.style.cssText="v-text-align:"+o,y.style.align=o,y.style.fontFamily=p.fontFamily,y.string=r,y.on="true";var f=p.fontSize*p.scale/this.vmlScale;y.style.fontSize=f+"px",(p.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(y.style.fontWeight="bold"),(p.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(y.style.fontStyle="italic"),(p.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(y.style.textDecoration="underline");var A=r.split("\n"),C=f+(A.length-1)*f*mxConstants.LINE_HEIGHT,v=0,E=0;if(s==mxConstants.ALIGN_BOTTOM?E=-C/2:s!=mxConstants.ALIGN_MIDDLE&&(E=C/2),null!=d){g.style.rotation=d;var w=d*(Math.PI/180);v=Math.sin(w)*E,E=Math.cos(w)*E}g.appendChild(y),g.style.left=this.format(t-v)+"px",g.style.top=this.format(e+E)+"px",this.root.appendChild(g)},mxVmlCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxVmlCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxVmlCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)},__mxOutput.mxVmlCanvas2D="undefined"!==typeof mxVmlCanvas2D?mxVmlCanvas2D:void 0,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.rounded=!1,mxGuide.prototype.tolerance=2,mxGuide.prototype.setStates=function(t){this.states=t},mxGuide.prototype.isEnabledForEvent=function(t){return!0},mxGuide.prototype.getGuideTolerance=function(t){return t&&this.graph.gridEnabled?this.graph.gridSize/2:this.tolerance},mxGuide.prototype.createGuideShape=function(t){var e=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH);return e.isDashed=!0,e},mxGuide.prototype.isStateIgnored=function(t){return!1},mxGuide.prototype.move=function(t,e,n,i){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=t&&null!=e){var r=this.graph.getView().scale,o=this.getGuideTolerance(n)*r,s=t.clone();s.x+=e.x,s.y+=e.y;var l=!1,a=null,h=null,u=!1,d=null,c=null,p=o,g=o,m=s.x,x=s.x+s.width,y=s.getCenterX(),f=s.y,A=s.y+s.height,C=s.getCenterY();function v(n,i,r){var o=!1;r&&Math.abs(n-y)<p?(e.x=n-t.getCenterX(),p=Math.abs(n-y),o=!0):r||(Math.abs(n-m)<p?(e.x=n-t.x,p=Math.abs(n-m),o=!0):Math.abs(n-x)<p&&(e.x=n-t.x-t.width,p=Math.abs(n-x),o=!0)),o&&(a=i,h=n,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()))),l=l||o}function E(n,i,r){var o=!1;r&&Math.abs(n-C)<g?(e.y=n-t.getCenterY(),g=Math.abs(n-C),o=!0):r||(Math.abs(n-f)<g?(e.y=n-t.y,g=Math.abs(n-f),o=!0):Math.abs(n-A)<g&&(e.y=n-t.y-t.height,g=Math.abs(n-A),o=!0)),o&&(d=i,c=n,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()))),u=u||o}for(var w=0;w<this.states.length;w++){var S=this.states[w];null==S||this.isStateIgnored(S)||(this.horizontal&&(v.call(this,S.getCenterX(),S,!0),v.call(this,S.x,S,!1),v.call(this,S.x+S.width,S,!1),null==S.cell&&v.call(this,S.getCenterX(),S,!1)),this.vertical&&(E.call(this,S.getCenterY(),S,!0),E.call(this,S.y,S,!1),E.call(this,S.y+S.height,S,!1),null==S.cell&&E.call(this,S.getCenterY(),S,!1)))}this.graph.snapDelta(e,t,!n,l,u),e=this.getDelta(t,a,e.x,d,e.y);var b=this.graph.container;if(l||null==this.guideX){if(null!=this.guideX){var T=null,L=null;null!=a&&null!=t&&(T=Math.min(t.y+e.y-this.graph.panDy,a.y),L=Math.max(t.y+t.height+e.y-this.graph.panDy,a.y+a.height)),this.guideX.points=null!=T&&null!=L?[new mxPoint(h,T),new mxPoint(h,L)]:[new mxPoint(h,-this.graph.panDy),new mxPoint(h,b.scrollHeight-3-this.graph.panDy)],this.guideX.stroke=this.getGuideColor(a,!0),this.guideX.node.style.visibility="visible",this.guideX.redraw()}}else this.guideX.node.style.visibility="hidden";if(u||null==this.guideY){if(null!=this.guideY){var I=null,M=null;null!=d&&null!=t&&(I=Math.min(t.x+e.x-this.graph.panDx,d.x),M=Math.max(t.x+t.width+e.x-this.graph.panDx,d.x+d.width)),this.guideY.points=null!=I&&null!=M?[new mxPoint(I,c),new mxPoint(M,c)]:[new mxPoint(-this.graph.panDx,c),new mxPoint(b.scrollWidth-3-this.graph.panDx,c)],this.guideY.stroke=this.getGuideColor(d,!1),this.guideY.node.style.visibility="visible",this.guideY.redraw()}}else this.guideY.node.style.visibility="hidden"}return e},mxGuide.prototype.getDelta=function(t,e,n,i,r){var o=this.graph.view.scale;return(this.rounded||null!=e&&null==e.cell)&&(n=Math.round((t.x+n)/o)*o-t.x),(this.rounded||null!=i&&null==i.cell)&&(r=Math.round((t.y+r)/o)*o-t.y),new mxPoint(n,r)},mxGuide.prototype.getGuideColor=function(t,e){return mxConstants.GUIDE_COLOR},mxGuide.prototype.hide=function(){this.setVisible(!1)},mxGuide.prototype.setVisible=function(t){null!=this.guideX&&(this.guideX.node.style.visibility=t?"visible":"hidden"),null!=this.guideY&&(this.guideY.node.style.visibility=t?"visible":"hidden")},mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null),null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)},__mxOutput.mxGuide="undefined"!==typeof mxGuide?mxGuide:void 0,mxShape.prototype.dialect=null,mxShape.prototype.scale=1,mxShape.prototype.antiAlias=!0,mxShape.prototype.minSvgStrokeWidth=1,mxShape.prototype.bounds=null,mxShape.prototype.points=null,mxShape.prototype.node=null,mxShape.prototype.state=null,mxShape.prototype.style=null,mxShape.prototype.boundingBox=null,mxShape.prototype.stencil=null,mxShape.prototype.svgStrokeTolerance=8,mxShape.prototype.pointerEvents=!0,mxShape.prototype.svgPointerEvents="all",mxShape.prototype.shapePointerEvents=!1,mxShape.prototype.stencilPointerEvents=!1,mxShape.prototype.vmlScale=1,mxShape.prototype.outline=!1,mxShape.prototype.visible=!0,mxShape.prototype.useSvgBoundingBox=!1,mxShape.prototype.init=function(t){null==this.node&&(this.node=this.create(t),null!=t&&t.appendChild(this.node))},mxShape.prototype.initStyles=function(t){this.strokewidth=1,this.rotation=0,this.opacity=100,this.fillOpacity=100,this.strokeOpacity=100,this.flipH=!1,this.flipV=!1},mxShape.prototype.isParseVml=function(){return!0},mxShape.prototype.isHtmlAllowed=function(){return!1},mxShape.prototype.getSvgScreenOffset=function(){var t=this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth;return 1==mxUtils.mod(Math.max(1,Math.round(t*this.scale)),2)?.5:0},mxShape.prototype.create=function(t){var e=null;return e=null!=t&&null!=t.ownerSVGElement?this.createSvg(t):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(t):this.createVml(t),e},mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")},mxShape.prototype.createVml=function(){var t=document.createElement(mxClient.VML_PREFIX+":group");return t.style.position="absolute",t},mxShape.prototype.createHtml=function(){var t=document.createElement("div");return t.style.position="absolute",t},mxShape.prototype.reconfigure=function(){this.redraw()},mxShape.prototype.redraw=function(){this.updateBoundsFromPoints(),this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)},mxShape.prototype.clear=function(){if(null!=this.node.ownerSVGElement)while(null!=this.node.lastChild)this.node.removeChild(this.node.lastChild);else this.node.style.cssText="position:absolute;"+(null!=this.cursor?"cursor:"+this.cursor+";":""),this.node.innerHTML=""},mxShape.prototype.updateBoundsFromPoints=function(){var t=this.points;if(null!=t&&t.length>0&&null!=t[0]){this.bounds=new mxRectangle(Number(t[0].x),Number(t[0].y),1,1);for(var e=1;e<this.points.length;e++)null!=t[e]&&this.bounds.add(new mxRectangle(Number(t[e].x),Number(t[e].y),1,1))}},mxShape.prototype.getLabelBounds=function(t){var e=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST),n=t;if(e!=mxConstants.DIRECTION_SOUTH&&e!=mxConstants.DIRECTION_NORTH&&null!=this.state&&null!=this.state.text&&this.state.text.isPaintBoundsInverted()){n=n.clone();var i=n.width;n.width=n.height,n.height=i}var r=this.getLabelMargins(n);if(null!=r){var o="1"==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,!1),s="1"==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,!1);if(null!=this.state&&null!=this.state.text&&this.state.text.isPaintBoundsInverted()){i=r.x;r.x=r.height,r.height=r.width,r.width=r.y,r.y=i,i=o,o=s,s=i}return mxUtils.getDirectedBounds(t,r,this.style,o,s)}return t},mxShape.prototype.getLabelMargins=function(t){return null},mxShape.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&this.scale>0&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&this.bounds.width>0&&this.bounds.height>0},mxShape.prototype.createVmlGroup=function(){var t=document.createElement(mxClient.VML_PREFIX+":group");return t.style.position="absolute",t.style.width=this.node.style.width,t.style.height=this.node.style.height,t},mxShape.prototype.redrawShape=function(){var t=this.createCanvas();null!=t&&(t.pointerEvents=this.pointerEvents,this.beforePaint(t),this.paint(t),this.afterPaint(t),this.node!=t.root&&this.node.insertAdjacentHTML("beforeend",t.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(t))},mxShape.prototype.createCanvas=function(){var t=null;return null!=this.node.ownerSVGElement?t=this.createSvgCanvas():mxClient.IS_VML&&(this.updateVmlContainer(),t=this.createVmlCanvas()),null!=t&&this.outline&&(t.setStrokeWidth(this.strokewidth),t.setStrokeColor(this.stroke),null!=this.isDashed&&t.setDashed(this.isDashed),t.setStrokeWidth=function(){},t.setStrokeColor=function(){},t.setFillColor=function(){},t.setGradient=function(){},t.setDashed=function(){},t.text=function(){}),t},mxShape.prototype.createSvgCanvas=function(){var t=new mxSvgCanvas2D(this.node,!1);t.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0,t.pointerEventsValue=this.svgPointerEvents;var e=this.getSvgScreenOffset();return 0!=e?this.node.setAttribute("transform","translate("+e+","+e+")"):this.node.removeAttribute("transform"),t.minStrokeWidth=this.minSvgStrokeWidth,this.antiAlias||(t.format=function(t){return Math.round(parseFloat(t))}),t},mxShape.prototype.createVmlCanvas=function(){var t=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(t,!1);if(""!=t.tagUrn){var n=Math.max(1,Math.round(this.bounds.width)),i=Math.max(1,Math.round(this.bounds.height));t.coordsize=n*this.vmlScale+","+i*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale}var r=this.scale;return e.translate(-Math.round(this.bounds.x/r),-Math.round(this.bounds.y/r)),e},mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px";var t=Math.max(1,Math.round(this.bounds.width)),e=Math.max(1,Math.round(this.bounds.height));this.node.style.width=t+"px",this.node.style.height=e+"px",this.node.style.overflow="visible"},mxShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node),this.updateHtmlFilters(this.node),this.updateHtmlColors(this.node)},mxShape.prototype.updateHtmlFilters=function(t){var e="";if(this.opacity<100&&(e+="alpha(opacity="+this.opacity+")"),this.isShadow&&(e+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')"),null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var n=this.fill,i=this.gradient,r="0",o={east:0,south:1,west:2,north:3},s=null!=this.direction?o[this.direction]:0;if(null!=this.gradientDirection&&(s=mxUtils.mod(s+o[this.gradientDirection]-1,4)),1==s){r="1";var l=n;n=i,i=l}else if(2==s){l=n;n=i,i=l}else 3==s&&(r="1");e+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+n+"', endColorStr='"+i+"', gradientType='"+r+"')"}t.style.filter=e},mxShape.prototype.updateHtmlColors=function(t){var e=this.stroke;null!=e&&e!=mxConstants.NONE?(t.style.borderColor=e,this.isDashed?t.style.borderStyle="dashed":this.strokewidth>0&&(t.style.borderStyle="solid"),t.style.borderWidth=Math.max(1,Math.ceil(this.strokewidth*this.scale))+"px"):t.style.borderWidth="0px",e=this.outline?null:this.fill,null!=e&&e!=mxConstants.NONE?(t.style.backgroundColor=e,t.style.backgroundImage="none"):this.pointerEvents?t.style.backgroundColor="transparent":8==document.documentMode?mxUtils.addTransparentBackgroundFilter(t):this.setTransparentBackgroundImage(t)},mxShape.prototype.updateHtmlBounds=function(t){var e=document.documentMode>=9?0:Math.ceil(this.strokewidth*this.scale);t.style.borderWidth=Math.max(1,e)+"px",t.style.overflow="hidden",t.style.left=Math.round(this.bounds.x-e/2)+"px",t.style.top=Math.round(this.bounds.y-e/2)+"px","CSS1Compat"==document.compatMode&&(e=-e),t.style.width=Math.round(Math.max(0,this.bounds.width+e))+"px",t.style.height=Math.round(Math.max(0,this.bounds.height+e))+"px"},mxShape.prototype.destroyCanvas=function(t){if(t instanceof mxSvgCanvas2D){for(var e in t.gradients){var n=t.gradients[e];null!=n&&(n.mxRefCount=(n.mxRefCount||0)+1)}this.releaseSvgGradients(this.oldGradients),this.oldGradients=t.gradients}},mxShape.prototype.beforePaint=function(t){},mxShape.prototype.afterPaint=function(t){},mxShape.prototype.paint=function(t){var e=!1;if(null!=t&&this.outline){var n=t.stroke;t.stroke=function(){e=!0,n.apply(this,arguments)};var i=t.fillAndStroke;t.fillAndStroke=function(){e=!0,i.apply(this,arguments)}}var r=this.scale,o=this.bounds.x/r,s=this.bounds.y/r,l=this.bounds.width/r,a=this.bounds.height/r;if(this.isPaintBoundsInverted()){var h=(l-a)/2;o+=h,s-=h;var u=l;l=a,a=u}this.updateTransform(t,o,s,l,a),this.configureCanvas(t,o,s,l,a);var d=null;if(null==this.stencil&&null==this.points&&this.shapePointerEvents||null!=this.stencil&&this.stencilPointerEvents){var c=this.createBoundingBox();if(this.dialect==mxConstants.DIALECT_SVG)d=this.createTransparentSvgRectangle(c.x,c.y,c.width,c.height),this.node.appendChild(d);else{var p=t.createRect("rect",c.x/r,c.y/r,c.width/r,c.height/r);p.appendChild(t.createTransparentFill()),p.stroked="false",t.root.appendChild(p)}}if(null!=this.stencil)this.stencil.drawShape(t,this,o,s,l,a);else if(t.setStrokeWidth(this.strokewidth),null!=this.points){for(var g=[],m=0;m<this.points.length;m++)null!=this.points[m]&&g.push(new mxPoint(this.points[m].x/r,this.points[m].y/r));this.paintEdgeShape(t,g)}else this.paintVertexShape(t,o,s,l,a);null!=d&&null!=t.state&&null!=t.state.transform&&d.setAttribute("transform",t.state.transform),null!=t&&this.outline&&!e&&(t.rect(o,s,l,a),t.stroke())},mxShape.prototype.configureCanvas=function(t,e,n,i,r){var o=null;if(null!=this.style&&(o=this.style["dashPattern"]),t.setAlpha(this.opacity/100),t.setFillAlpha(this.fillOpacity/100),t.setStrokeAlpha(this.strokeOpacity/100),null!=this.isShadow&&t.setShadow(this.isShadow),null!=this.isDashed&&t.setDashed(this.isDashed,null!=this.style&&1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1)),null!=o&&t.setDashPattern(o),null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var s=this.getGradientBounds(t,e,n,i,r);t.setGradient(this.fill,this.gradient,s.x,s.y,s.width,s.height,this.gradientDirection)}else t.setFillColor(this.fill);t.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(t,e,n,i,r){return new mxRectangle(e,n,i,r)},mxShape.prototype.updateTransform=function(t,e,n,i,r){t.scale(this.scale),t.rotate(this.getShapeRotation(),this.flipH,this.flipV,e+i/2,n+r/2)},mxShape.prototype.paintVertexShape=function(t,e,n,i,r){this.paintBackground(t,e,n,i,r),this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(t.setShadow(!1),this.paintForeground(t,e,n,i,r))},mxShape.prototype.paintBackground=function(t,e,n,i,r){},mxShape.prototype.paintForeground=function(t,e,n,i,r){},mxShape.prototype.paintEdgeShape=function(t,e){},mxShape.prototype.getArcSize=function(t,e){var n=0;if("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0))n=Math.min(t/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2));else{var i=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;n=Math.min(t*i,e*i)}return n},mxShape.prototype.paintGlassEffect=function(t,e,n,i,r,o){var s=Math.ceil(this.strokewidth/2),l=.4;t.setGradient("#ffffff","#ffffff",e,n,i,.6*r,"south",.9,.1),t.begin(),o+=2*s,this.isRounded?(t.moveTo(e-s+o,n-s),t.quadTo(e-s,n-s,e-s,n-s+o),t.lineTo(e-s,n+r*l),t.quadTo(e+.5*i,n+.7*r,e+i+s,n+r*l),t.lineTo(e+i+s,n-s+o),t.quadTo(e+i+s,n-s,e+i+s-o,n-s)):(t.moveTo(e-s,n-s),t.lineTo(e-s,n+r*l),t.quadTo(e+.5*i,n+.7*r,e+i+s,n+r*l),t.lineTo(e+i+s,n-s)),t.close(),t.fill()},mxShape.prototype.addPoints=function(t,e,n,i,r,o,s){if(null!=e&&e.length>0){s=null==s||s;var l=e[e.length-1];if(r&&n){e=e.slice();var a=e[0],h=new mxPoint(l.x+(a.x-l.x)/2,l.y+(a.y-l.y)/2);e.splice(0,0,h)}var u=e[0],d=1;s?t.moveTo(u.x,u.y):t.lineTo(u.x,u.y);while(d<(r?e.length:e.length-1)){var c=e[mxUtils.mod(d,e.length)],p=u.x-c.x,g=u.y-c.y;if(n&&(0!=p||0!=g)&&(null==o||mxUtils.indexOf(o,d-1)<0)){var m=Math.sqrt(p*p+g*g),x=p*Math.min(i,m/2)/m,y=g*Math.min(i,m/2)/m,f=c.x+x,A=c.y+y;t.lineTo(f,A);var C=e[mxUtils.mod(d+1,e.length)];while(d<e.length-2&&0==Math.round(C.x-c.x)&&0==Math.round(C.y-c.y))C=e[mxUtils.mod(d+2,e.length)],d++;p=C.x-c.x,g=C.y-c.y,m=Math.max(1,Math.sqrt(p*p+g*g));var v=p*Math.min(i,m/2)/m,E=g*Math.min(i,m/2)/m,w=c.x+v,S=c.y+E;t.quadTo(c.x,c.y,w,S),c=new mxPoint(w,S)}else t.lineTo(c.x,c.y);u=c,d++}r?t.close():t.lineTo(l.x,l.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(t){if(this.state=t,this.style=t.style,null!=this.style){if(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.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing),this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize),this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize),this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow),this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow),this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation),this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction),this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV),this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH){var e=this.flipH;this.flipH=this.flipV,this.flipV=e}this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow),this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed),this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded),this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass),this.fill==mxConstants.NONE&&(this.fill=null),this.gradient==mxConstants.NONE&&(this.gradient=null),this.stroke==mxConstants.NONE&&(this.stroke=null)}},mxShape.prototype.setCursor=function(t){null==t&&(t=""),this.cursor=t,null!=this.node&&(this.node.style.cursor=t)},mxShape.prototype.getCursor=function(){return this.cursor},mxShape.prototype.isRoundable=function(){return!1},mxShape.prototype.updateBoundingBox=function(){if(this.useSvgBoundingBox&&null!=this.node&&null!=this.node.ownerSVGElement)try{var t=this.node.getBBox();if(t.width>0&&t.height>0)return this.boundingBox=new mxRectangle(t.x,t.y,t.width,t.height),void this.boundingBox.grow(this.strokewidth*this.scale/2)}catch(i){}if(null!=this.bounds){var e=this.createBoundingBox();if(null!=e){this.augmentBoundingBox(e);var n=this.getShapeRotation();0!=n&&(e=mxUtils.getBoundingBox(e,n))}this.boundingBox=e}},mxShape.prototype.createBoundingBox=function(){var t=this.bounds.clone();return(null!=this.stencil&&(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)||this.isPaintBoundsInverted())&&t.rotate90(),t},mxShape.prototype.augmentBoundingBox=function(t){this.isShadow&&(t.width+=Math.ceil(mxConstants.SHADOW_OFFSET_X*this.scale),t.height+=Math.ceil(mxConstants.SHADOW_OFFSET_Y*this.scale)),t.grow(this.strokewidth*this.scale/2)},mxShape.prototype.isPaintBoundsInverted=function(){return null==this.stencil&&(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)},mxShape.prototype.getRotation=function(){return null!=this.rotation?this.rotation:0},mxShape.prototype.getTextRotation=function(){var t=this.getRotation();return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(t+=mxText.prototype.verticalTextRotation),t},mxShape.prototype.getShapeRotation=function(){var t=this.getRotation();return null!=this.direction&&(this.direction==mxConstants.DIRECTION_NORTH?t+=270:this.direction==mxConstants.DIRECTION_WEST?t+=180:this.direction==mxConstants.DIRECTION_SOUTH&&(t+=90)),t},mxShape.prototype.createTransparentSvgRectangle=function(t,e,n,i){var r=document.createElementNS(mxConstants.NS_SVG,"rect");return r.setAttribute("x",t),r.setAttribute("y",e),r.setAttribute("width",n),r.setAttribute("height",i),r.setAttribute("fill","none"),r.setAttribute("stroke","none"),r.setAttribute("pointer-events","all"),r},mxShape.prototype.setTransparentBackgroundImage=function(t){t.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"},mxShape.prototype.releaseSvgGradients=function(t){if(null!=t)for(var e in t){var n=t[e];null!=n&&(n.mxRefCount=(n.mxRefCount||0)-1,0==n.mxRefCount&&null!=n.parentNode&&n.parentNode.removeChild(n))}},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},__mxOutput.mxShape="undefined"!==typeof mxShape?mxShape:void 0,mxUtils.extend(mxStencil,mxShape),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 t=this.desc.getAttribute("aspect");this.aspect=null!=t?t:"variable";var e=this.desc.getAttribute("strokewidth");this.strokewidth=null!=e?e:"1"},mxStencil.prototype.parseConstraints=function(){var t=this.desc.getElementsByTagName("connections")[0];if(null!=t){var e=mxUtils.getChildNodes(t);if(null!=e&&e.length>0){this.constraints=[];for(var n=0;n<e.length;n++)this.constraints.push(this.parseConstraint(e[n]))}}},mxStencil.prototype.parseConstraint=function(t){var e=Number(t.getAttribute("x")),n=Number(t.getAttribute("y")),i="1"==t.getAttribute("perimeter"),r=t.getAttribute("name");return new mxConnectionConstraint(new mxPoint(e,n),i,r)},mxStencil.prototype.evaluateTextAttribute=function(t,e,n){var i=this.evaluateAttribute(t,e,n),r=t.getAttribute("localized");return(mxStencil.defaultLocalized&&null==r||"1"==r)&&(i=mxResources.get(i)),i},mxStencil.prototype.evaluateAttribute=function(t,e,n){var i=t.getAttribute(e);if(null==i){var r=mxUtils.getTextContent(t);if(null!=r&&mxStencil.allowEval){var o=mxUtils.eval(r);"function"==typeof o&&(i=o(n))}}return i},mxStencil.prototype.drawShape=function(t,e,n,i,r,o){var s=t.states.slice(),l=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,null),a=this.computeAspect(e.style,n,i,r,o,l),h=Math.min(a.width,a.height),u="inherit"==this.strokewidth?Number(mxUtils.getNumber(e.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*h;t.setStrokeWidth(u),null!=e.style&&"1"==mxUtils.getValue(e.style,mxConstants.STYLE_POINTER_EVENTS,"0")&&(t.setStrokeColor(mxConstants.NONE),t.rect(n,i,r,o),t.stroke(),t.setStrokeColor(e.stroke)),this.drawChildren(t,e,n,i,r,o,this.bgNode,a,!1,!0),this.drawChildren(t,e,n,i,r,o,this.fgNode,a,!0,!e.outline||null==e.style||0==mxUtils.getValue(e.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)),t.states.length!=s.length&&(t.states=s)},mxStencil.prototype.drawChildren=function(t,e,n,i,r,o,s,l,a,h){if(null!=s&&r>0&&o>0){var u=s.firstChild;while(null!=u)u.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(t,e,u,l,a,h),u=u.nextSibling}},mxStencil.prototype.computeAspect=function(t,e,n,i,r,o){var s=e,l=n,a=i/this.w0,h=r/this.h0,u=o==mxConstants.DIRECTION_NORTH||o==mxConstants.DIRECTION_SOUTH;if(u){h=i/this.h0,a=r/this.w0;var d=(i-r)/2;s+=d,l-=d}return"fixed"==this.aspect&&(h=Math.min(a,h),a=h,u?(s+=(r-this.w0*a)/2,l+=(i-this.h0*h)/2):(s+=(i-this.w0*a)/2,l+=(r-this.h0*h)/2)),new mxRectangle(s,l,a,h)},mxStencil.prototype.drawNode=function(t,e,n,i,r,o){var s=n.nodeName,l=i.x,a=i.y,h=i.width,u=i.height,d=Math.min(h,u);if("save"==s)t.save();else if("restore"==s)t.restore();else if(o){if("path"==s){t.begin();var c=!0;if("1"==n.getAttribute("rounded")){c=!1;var p=Number(n.getAttribute("arcSize")),g=0,m=[],x=n.firstChild;while(null!=x){if(x.nodeType==mxConstants.NODETYPE_ELEMENT){var y=x.nodeName;if("move"!=y&&"line"!=y){c=!0;break}"move"!=y&&0!=m.length||m.push([]),m[m.length-1].push(new mxPoint(l+Number(x.getAttribute("x"))*h,a+Number(x.getAttribute("y"))*u)),g++}x=x.nextSibling}if(!c&&g>0)for(var f=0;f<m.length;f++){var A=!1,C=m[f][0],v=m[f][m[f].length-1];C.x==v.x&&C.y==v.y&&(m[f].pop(),A=!0),this.addPoints(t,m[f],!0,p,A)}else c=!0}if(c){x=n.firstChild;while(null!=x)x.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(t,e,x,i,r,o),x=x.nextSibling}}else if("close"==s)t.close();else if("move"==s)t.moveTo(l+Number(n.getAttribute("x"))*h,a+Number(n.getAttribute("y"))*u);else if("line"==s)t.lineTo(l+Number(n.getAttribute("x"))*h,a+Number(n.getAttribute("y"))*u);else if("quad"==s)t.quadTo(l+Number(n.getAttribute("x1"))*h,a+Number(n.getAttribute("y1"))*u,l+Number(n.getAttribute("x2"))*h,a+Number(n.getAttribute("y2"))*u);else if("curve"==s)t.curveTo(l+Number(n.getAttribute("x1"))*h,a+Number(n.getAttribute("y1"))*u,l+Number(n.getAttribute("x2"))*h,a+Number(n.getAttribute("y2"))*u,l+Number(n.getAttribute("x3"))*h,a+Number(n.getAttribute("y3"))*u);else if("arc"==s)t.arcTo(Number(n.getAttribute("rx"))*h,Number(n.getAttribute("ry"))*u,Number(n.getAttribute("x-axis-rotation")),Number(n.getAttribute("large-arc-flag")),Number(n.getAttribute("sweep-flag")),l+Number(n.getAttribute("x"))*h,a+Number(n.getAttribute("y"))*u);else if("rect"==s)t.rect(l+Number(n.getAttribute("x"))*h,a+Number(n.getAttribute("y"))*u,Number(n.getAttribute("w"))*h,Number(n.getAttribute("h"))*u);else if("roundrect"==s){var E=Number(n.getAttribute("arcsize"));0==E&&(E=100*mxConstants.RECTANGLE_ROUNDING_FACTOR);var w=Number(n.getAttribute("w"))*h,S=Number(n.getAttribute("h"))*u,b=Number(E)/100,T=Math.min(w*b,S*b);t.roundrect(l+Number(n.getAttribute("x"))*h,a+Number(n.getAttribute("y"))*u,w,S,T,T)}else if("ellipse"==s)t.ellipse(l+Number(n.getAttribute("x"))*h,a+Number(n.getAttribute("y"))*u,Number(n.getAttribute("w"))*h,Number(n.getAttribute("h"))*u);else if("image"==s){if(!e.outline){var L=this.evaluateAttribute(n,"src",e);t.image(l+Number(n.getAttribute("x"))*h,a+Number(n.getAttribute("y"))*u,Number(n.getAttribute("w"))*h,Number(n.getAttribute("h"))*u,L,!1,"1"==n.getAttribute("flipH"),"1"==n.getAttribute("flipV"))}}else if("text"==s){if(!e.outline){var I=this.evaluateTextAttribute(n,"str",e),M="1"==n.getAttribute("vertical")?-90:0;if("0"==n.getAttribute("align-shape")){var R=e.rotation,O=1==mxUtils.getValue(e.style,mxConstants.STYLE_FLIPH,0),N=1==mxUtils.getValue(e.style,mxConstants.STYLE_FLIPV,0);O&&N?M-=R:O||N?M+=R:M-=R}M-=n.getAttribute("rotation"),t.text(l+Number(n.getAttribute("x"))*h,a+Number(n.getAttribute("y"))*u,0,0,I,n.getAttribute("align")||"left",n.getAttribute("valign")||"top",!1,"",null,!1,M)}}else if("include-shape"==s){var D=mxStencilRegistry.getStencil(n.getAttribute("name"));if(null!=D){var P=l+Number(n.getAttribute("x"))*h,H=a+Number(n.getAttribute("y"))*u;w=Number(n.getAttribute("w"))*h,S=Number(n.getAttribute("h"))*u;D.drawShape(t,e,P,H,w,S)}}else if("fillstroke"==s)t.fillAndStroke();else if("fill"==s)t.fill();else if("stroke"==s)t.stroke();else if("strokewidth"==s){var k="1"==n.getAttribute("fixed")?1:d;t.setStrokeWidth(Number(n.getAttribute("width"))*k)}else if("dashed"==s)t.setDashed("1"==n.getAttribute("dashed"));else if("dashpattern"==s){var G=n.getAttribute("pattern");if(null!=G){var B=G.split(" "),U=[];for(f=0;f<B.length;f++)B[f].length>0&&U.push(Number(B[f])*d);G=U.join(" "),t.setDashPattern(G)}}else"strokecolor"==s?t.setStrokeColor(n.getAttribute("color")):"linecap"==s?t.setLineCap(n.getAttribute("cap")):"linejoin"==s?t.setLineJoin(n.getAttribute("join")):"miterlimit"==s?t.setMiterLimit(Number(n.getAttribute("limit"))):"fillcolor"==s?t.setFillColor(n.getAttribute("color")):"alpha"==s||"fillalpha"==s||"strokealpha"==s?t.setAlpha(n.getAttribute("alpha")):"fontcolor"==s?t.setFontColor(n.getAttribute("color")):"fontstyle"==s?t.setFontStyle(n.getAttribute("style")):"fontfamily"==s?t.setFontFamily(n.getAttribute("family")):"fontsize"==s&&t.setFontSize(Number(n.getAttribute("size"))*d);!r||"fillstroke"!=s&&"fill"!=s&&"stroke"!=s||(r=!1,t.setShadow(!1))}},__mxOutput.mxStencil="undefined"!==typeof mxStencil?mxStencil:void 0;var mxStencilRegistry={stencils:{},addStencil:function(t,e){mxStencilRegistry.stencils[t]=e},getStencil:function(t){return mxStencilRegistry.stencils[t]}};__mxOutput.mxStencilRegistry="undefined"!==typeof mxStencilRegistry?mxStencilRegistry:void 0;var mxMarker={markers:[],addMarker:function(t,e){mxMarker.markers[t]=e},createMarker:function(t,e,n,i,r,o,s,l,a,h){var u=mxMarker.markers[n];return null!=u?u(t,e,n,i,r,o,s,l,a,h):null}};function mxActor(t,e,n,i){mxShape.call(this),this.bounds=t,this.fill=e,this.stroke=n,this.strokewidth=null!=i?i:1}function mxCloud(t,e,n,i){mxActor.call(this),this.bounds=t,this.fill=e,this.stroke=n,this.strokewidth=null!=i?i:1}function mxRectangleShape(t,e,n,i){mxShape.call(this),this.bounds=t,this.fill=e,this.stroke=n,this.strokewidth=null!=i?i:1}function mxEllipse(t,e,n,i){mxShape.call(this),this.bounds=t,this.fill=e,this.stroke=n,this.strokewidth=null!=i?i:1}function mxDoubleEllipse(t,e,n,i){mxShape.call(this),this.bounds=t,this.fill=e,this.stroke=n,this.strokewidth=null!=i?i:1}function mxRhombus(t,e,n,i){mxShape.call(this),this.bounds=t,this.fill=e,this.stroke=n,this.strokewidth=null!=i?i:1}function mxPolyline(t,e,n){mxShape.call(this),this.points=t,this.stroke=e,this.strokewidth=null!=n?n:1}function mxArrow(t,e,n,i,r,o,s){mxShape.call(this),this.points=t,this.fill=e,this.stroke=n,this.strokewidth=null!=i?i:1,this.arrowWidth=null!=r?r:mxConstants.ARROW_WIDTH,this.spacing=null!=o?o:mxConstants.ARROW_SPACING,this.endSize=null!=s?s:mxConstants.ARROW_SIZE}function mxArrowConnector(t,e,n,i,r,o,s){mxShape.call(this),this.points=t,this.fill=e,this.stroke=n,this.strokewidth=null!=i?i:1,this.arrowWidth=null!=r?r:mxConstants.ARROW_WIDTH,this.arrowSpacing=null!=o?o:mxConstants.ARROW_SPACING,this.startSize=mxConstants.ARROW_SIZE/5,this.endSize=mxConstants.ARROW_SIZE/5}function mxText(t,e,n,i,r,o,s,l,a,h,u,d,c,p,g,m,x,y,f,A,C){mxShape.call(this),this.value=t,this.bounds=e,this.color=null!=r?r:"black",this.align=null!=n?n:mxConstants.ALIGN_CENTER,this.valign=null!=i?i:mxConstants.ALIGN_MIDDLE,this.family=null!=o?o:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=s?s:mxConstants.DEFAULT_FONTSIZE,this.fontStyle=null!=l?l:mxConstants.DEFAULT_FONTSTYLE,this.spacing=parseInt(a||2),this.spacingTop=this.spacing+parseInt(h||0),this.spacingRight=this.spacing+parseInt(u||0),this.spacingBottom=this.spacing+parseInt(d||0),this.spacingLeft=this.spacing+parseInt(c||0),this.horizontal=null==p||p,this.background=g,this.border=m,this.wrap=null!=x&&x,this.clipped=null!=y&&y,this.overflow=null!=f?f:"visible",this.labelPadding=null!=A?A:0,this.textDirection=C,this.rotation=0,this.updateMargin()}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(t,e,n,i){mxShape.call(this),this.bounds=t,this.stroke=e,this.strokewidth=null!=n?n:1,this.vertical=null!=i?i:this.vertical}function mxImageShape(t,e,n,i,r){mxShape.call(this),this.bounds=t,this.image=e,this.fill=n,this.stroke=i,this.strokewidth=null!=r?r:1,this.shadow=!1}function mxLabel(t,e,n,i){mxRectangleShape.call(this,t,e,n,i)}function mxCylinder(t,e,n,i){mxShape.call(this),this.bounds=t,this.fill=e,this.stroke=n,this.strokewidth=null!=i?i:1}function mxConnector(t,e,n){mxPolyline.call(this,t,e,n)}function mxSwimlane(t,e,n,i){mxShape.call(this),this.bounds=t,this.fill=e,this.stroke=n,this.strokewidth=null!=i?i:1}function mxGraphLayout(t){this.graph=t}function WeightedCellSorter(t,e){this.cell=t,this.weightedValue=e}function mxStackLayout(t,e,n,i,r,o){mxGraphLayout.call(this,t),this.horizontal=null==e||e,this.spacing=null!=n?n:0,this.x0=null!=i?i:0,this.y0=null!=r?r:0,this.border=null!=o?o:0}function mxPartitionLayout(t,e,n,i){mxGraphLayout.call(this,t),this.horizontal=null==e||e,this.spacing=n||0,this.border=i||0}function mxCompactTreeLayout(t,e,n){mxGraphLayout.call(this,t),this.horizontal=null==e||e,this.invert=null!=n&&n}function mxRadialTreeLayout(t){mxCompactTreeLayout.call(this,t,!1)}function mxFastOrganicLayout(t){mxGraphLayout.call(this,t)}function mxCircleLayout(t,e){mxGraphLayout.call(this,t),this.radius=null!=e?e:100}function mxParallelEdgeLayout(t){mxGraphLayout.call(this,t)}function mxCompositeLayout(t,e,n){mxGraphLayout.call(this,t),this.layouts=e,this.master=n}function mxEdgeLabelLayout(t,e){mxGraphLayout.call(this,t)}function mxGraphAbstractHierarchyCell(){this.x=[],this.y=[],this.temp=[]}function mxGraphHierarchyNode(t){mxGraphAbstractHierarchyCell.apply(this,arguments),this.cell=t,this.id=mxObjectIdentity.get(t),this.connectsAsTarget=[],this.connectsAsSource=[]}function mxGraphHierarchyEdge(t){mxGraphAbstractHierarchyCell.apply(this,arguments),this.edges=t,this.ids=[];for(var e=0;e<t.length;e++)this.ids.push(mxObjectIdentity.get(t[e]))}function mxGraphHierarchyModel(t,e,n,i,r){t.getGraph();this.tightenToSource=r,this.roots=n,this.parent=i,this.vertexMapper=new mxDictionary,this.edgeMapper=new mxDictionary,this.maxRank=0;var o=[];null==e&&(e=this.graph.getChildVertices(i)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(t,e,o);for(var s=0;s<e.length;s++){for(var l=o[s].connectsAsSource,a=0;a<l.length;a++){var h=l[a],u=h.edges;if(null!=u&&u.length>0){var d=u[0],c=t.getVisibleTerminal(d,!1),p=this.vertexMapper.get(c);o[s]==p&&(c=t.getVisibleTerminal(d,!0),p=this.vertexMapper.get(c)),null!=p&&o[s]!=p&&(h.target=p,0==p.connectsAsTarget.length&&(p.connectsAsTarget=[]),mxUtils.indexOf(p.connectsAsTarget,h)<0&&p.connectsAsTarget.push(h))}}o[s].temp[0]=1}}function mxSwimlaneModel(t,e,n,i,r){t.getGraph();this.tightenToSource=r,this.roots=n,this.parent=i,this.vertexMapper=new mxDictionary,this.edgeMapper=new mxDictionary,this.maxRank=0;var o=[];null==e&&(e=this.graph.getChildVertices(i)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(t,e,o);for(var s=0;s<e.length;s++){for(var l=o[s].connectsAsSource,a=0;a<l.length;a++){var h=l[a],u=h.edges;if(null!=u&&u.length>0){var d=u[0],c=t.getVisibleTerminal(d,!1),p=this.vertexMapper.get(c);o[s]==p&&(c=t.getVisibleTerminal(d,!0),p=this.vertexMapper.get(c)),null!=p&&o[s]!=p&&(h.target=p,0==p.connectsAsTarget.length&&(p.connectsAsTarget=[]),mxUtils.indexOf(p.connectsAsTarget,h)<0&&p.connectsAsTarget.push(h))}}o[s].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(t){this.layout=t}function MedianCellSorter(){}function mxMinimumCycleRemover(t){this.layout=t}function mxCoordinateAssignment(t,e,n,i,r,o){this.layout=t,this.intraCellSpacing=e,this.interRankCellSpacing=n,this.orientation=i,this.initialX=r,this.parallelEdgeSpacing=o}function mxSwimlaneOrdering(t){this.layout=t}function mxHierarchicalLayout(t,e,n){mxGraphLayout.call(this,t),this.orientation=null!=e?e:mxConstants.DIRECTION_NORTH,this.deterministic=null==n||n}(function(){function t(t){return t=null!=t?t:2,function(e,n,i,r,o,s,l,a,h,u){var d=o*h*1.118,c=s*h*1.118;o*=l+h,s*=l+h;var p=r.clone();p.x-=d,p.y-=c;var g=i!=mxConstants.ARROW_CLASSIC&&i!=mxConstants.ARROW_CLASSIC_THIN?1:3/4;return r.x+=-o*g-d,r.y+=-s*g-c,function(){e.begin(),e.moveTo(p.x,p.y),e.lineTo(p.x-o-s/t,p.y-s+o/t),i!=mxConstants.ARROW_CLASSIC&&i!=mxConstants.ARROW_CLASSIC_THIN||e.lineTo(p.x-3*o/4,p.y-3*s/4),e.lineTo(p.x+s/t-o,p.y-s-o/t),e.close(),u?e.fillAndStroke():e.stroke()}}}function e(t){return t=null!=t?t:2,function(e,n,i,r,o,s,l,a,h,u){var d=o*h*1.118,c=s*h*1.118;o*=l+h,s*=l+h;var p=r.clone();return p.x-=d,p.y-=c,r.x+=2*-d,r.y+=2*-c,function(){e.begin(),e.moveTo(p.x-o-s/t,p.y-s+o/t),e.lineTo(p.x,p.y),e.lineTo(p.x+s/t-o,p.y-s-o/t),e.stroke()}}}function n(t,e,n,i,r,o,s,l,a,h){var u=n==mxConstants.ARROW_DIAMOND?.7071:.9862,d=r*a*u,c=o*a*u;r*=s+a,o*=s+a;var p=i.clone();p.x-=d,p.y-=c,i.x+=-r-d,i.y+=-o-c;var g=n==mxConstants.ARROW_DIAMOND?2:3.4;return function(){t.begin(),t.moveTo(p.x,p.y),t.lineTo(p.x-r/2-o/g,p.y+r/g-o/2),t.lineTo(p.x-r,p.y-o),t.lineTo(p.x-r/2+o/g,p.y-o/2-r/g),t.close(),h?t.fillAndStroke():t.stroke()}}mxMarker.addMarker("classic",t(2)),mxMarker.addMarker("classicThin",t(3)),mxMarker.addMarker("block",t(2)),mxMarker.addMarker("blockThin",t(3)),mxMarker.addMarker("open",e(2)),mxMarker.addMarker("openThin",e(3)),mxMarker.addMarker("oval",(function(t,e,n,i,r,o,s,l,a,h){var u=s/2,d=i.clone();return i.x-=r*u,i.y-=o*u,function(){t.ellipse(d.x-u,d.y-u,s,s),h?t.fillAndStroke():t.stroke()}})),mxMarker.addMarker("diamond",n),mxMarker.addMarker("diamondThin",n)})(),__mxOutput.mxMarker="undefined"!==typeof mxMarker?mxMarker:void 0,mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(t,e,n,i,r){t.translate(e,n),t.begin(),this.redrawPath(t,e,n,i,r),t.fillAndStroke()},mxActor.prototype.redrawPath=function(t,e,n,i,r){var o=i/3;t.moveTo(0,r),t.curveTo(0,3*r/5,0,2*r/5,i/2,2*r/5),t.curveTo(i/2-o,2*r/5,i/2-o,0,i/2,0),t.curveTo(i/2+o,0,i/2+o,2*r/5,i/2,2*r/5),t.curveTo(i,2*r/5,i,3*r/5,i,r),t.close()},__mxOutput.mxActor="undefined"!==typeof mxActor?mxActor:void 0,mxUtils.extend(mxCloud,mxActor),mxCloud.prototype.redrawPath=function(t,e,n,i,r){t.moveTo(.25*i,.25*r),t.curveTo(.05*i,.25*r,0,.5*r,.16*i,.55*r),t.curveTo(0,.66*r,.18*i,.9*r,.31*i,.8*r),t.curveTo(.4*i,r,.7*i,r,.8*i,.8*r),t.curveTo(i,.8*r,i,.6*r,.875*i,.5*r),t.curveTo(i,.3*r,.8*i,.1*r,.625*i,.2*r),t.curveTo(.5*i,.05*r,.3*i,.05*r,.25*i,.25*r),t.close()},__mxOutput.mxCloud="undefined"!==typeof mxCloud?mxCloud:void 0,mxUtils.extend(mxRectangleShape,mxShape),mxRectangleShape.prototype.isHtmlAllowed=function(){var t=!0;return null!=this.style&&(t="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")),!this.isRounded&&!this.glass&&0==this.rotation&&(t||null!=this.fill&&this.fill!=mxConstants.NONE)},mxRectangleShape.prototype.paintBackground=function(t,e,n,i,r){var o=!0;if(null!=this.style&&(o="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")),o||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE){if(o||null!=this.fill&&this.fill!=mxConstants.NONE||(t.pointerEvents=!1),this.isRounded){var s=0;if("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0))s=Math.min(i/2,Math.min(r/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2));else{var l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;s=Math.min(i*l,r*l)}t.roundrect(e,n,i,r,s,s)}else t.rect(e,n,i,r);t.fillAndStroke()}},mxRectangleShape.prototype.isRoundable=function(t,e,n,i,r){return!0},mxRectangleShape.prototype.paintForeground=function(t,e,n,i,r){this.glass&&!this.outline&&null!=this.fill&&this.fill!=mxConstants.NONE&&this.paintGlassEffect(t,e,n,i,r,this.getArcSize(i+this.strokewidth,r+this.strokewidth))},__mxOutput.mxRectangleShape="undefined"!==typeof mxRectangleShape?mxRectangleShape:void 0,mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(t,e,n,i,r){t.ellipse(e,n,i,r),t.fillAndStroke()},__mxOutput.mxEllipse="undefined"!==typeof mxEllipse?mxEllipse:void 0,mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(t,e,n,i,r){t.ellipse(e,n,i,r),t.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(t,e,n,i,r){if(!this.outline){var o=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(i/5,r/5)));e+=o,n+=o,i-=2*o,r-=2*o,i>0&&r>0&&t.ellipse(e,n,i,r),t.stroke()}},mxDoubleEllipse.prototype.getLabelBounds=function(t){var e=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(t.width/5/this.scale,t.height/5/this.scale)))*this.scale;return new mxRectangle(t.x+e,t.y+e,t.width-2*e,t.height-2*e)},__mxOutput.mxDoubleEllipse="undefined"!==typeof mxDoubleEllipse?mxDoubleEllipse:void 0,mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.isRoundable=function(){return!0},mxRhombus.prototype.paintVertexShape=function(t,e,n,i,r){var o=i/2,s=r/2,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;t.begin(),this.addPoints(t,[new mxPoint(e+o,n),new mxPoint(e+i,n+s),new mxPoint(e+o,n+r),new mxPoint(e,n+s)],this.isRounded,l,!0),t.fillAndStroke()},__mxOutput.mxRhombus="undefined"!==typeof mxRhombus?mxRhombus:void 0,mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.getShapeRotation=function(){return 0},mxPolyline.prototype.isPaintBoundsInverted=function(){return!1},mxPolyline.prototype.paintEdgeShape=function(t,e){var n=t.pointerEventsValue;t.pointerEventsValue="stroke",null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(t,e,this.isRounded):this.paintCurvedLine(t,e),t.pointerEventsValue=n},mxPolyline.prototype.paintLine=function(t,e,n){var i=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;t.begin(),this.addPoints(t,e,n,i,!1),t.stroke()},mxPolyline.prototype.paintCurvedLine=function(t,e){t.begin();var n=e[0],i=e.length;t.moveTo(n.x,n.y);for(var r=1;r<i-2;r++){var o=e[r],s=e[r+1],l=(o.x+s.x)/2,a=(o.y+s.y)/2;t.quadTo(o.x,o.y,l,a)}o=e[i-2],s=e[i-1];t.quadTo(o.x,o.y,s.x,s.y),t.stroke()},__mxOutput.mxPolyline="undefined"!==typeof mxPolyline?mxPolyline:void 0,mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.augmentBoundingBox=function(t){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var e=Math.max(this.arrowWidth,this.endSize);t.grow((e/2+this.strokewidth)*this.scale)},mxArrow.prototype.paintEdgeShape=function(t,e){var n=mxConstants.ARROW_SPACING,i=mxConstants.ARROW_WIDTH,r=mxConstants.ARROW_SIZE,o=e[0],s=e[e.length-1],l=s.x-o.x,a=s.y-o.y,h=Math.sqrt(l*l+a*a),u=h-2*n-r,d=l/h,c=a/h,p=u*d,g=u*c,m=i*c/3,x=-i*d/3,y=o.x-m/2+n*d,f=o.y-x/2+n*c,A=y+m,C=f+x,v=A+p,E=C+g,w=v+m,S=E+x,b=w-3*m,T=S-3*x;t.begin(),t.moveTo(y,f),t.lineTo(A,C),t.lineTo(v,E),t.lineTo(w,S),t.lineTo(s.x-n*d,s.y-n*c),t.lineTo(b,T),t.lineTo(b+m,T+x),t.close(),t.fillAndStroke()},__mxOutput.mxArrow="undefined"!==typeof mxArrow?mxArrow:void 0,mxUtils.extend(mxArrowConnector,mxShape),mxArrowConnector.prototype.useSvgBoundingBox=!0,mxArrowConnector.prototype.isRoundable=function(){return!0},mxArrowConnector.prototype.resetStyles=function(){mxShape.prototype.resetStyles.apply(this,arguments),this.arrowSpacing=mxConstants.ARROW_SPACING},mxArrowConnector.prototype.apply=function(t){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(t){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var e=this.getEdgeWidth();this.isMarkerStart()&&(e=Math.max(e,this.getStartArrowWidth())),this.isMarkerEnd()&&(e=Math.max(e,this.getEndArrowWidth())),t.grow((e/2+this.strokewidth)*this.scale)},mxArrowConnector.prototype.paintEdgeShape=function(t,e){var n=this.strokewidth;this.outline&&(n=Math.max(1,mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth)));var i=this.getStartArrowWidth()+n,r=this.getEndArrowWidth()+n,o=this.outline?this.getEdgeWidth()+n:this.getEdgeWidth(),s=this.isOpenEnded(),l=this.isMarkerStart(),a=this.isMarkerEnd(),h=s?0:this.arrowSpacing+n/2,u=this.startSize+n,d=this.endSize+n,c=this.isArrowRounded(),p=e[e.length-1],g=1;while(g<e.length-1&&e[g].x==e[0].x&&e[g].y==e[0].y)g++;var m=e[g].x-e[0].x,x=e[g].y-e[0].y,y=Math.sqrt(m*m+x*x);if(0!=y){var f,A,C=m/y,v=C,E=x/y,w=E,S=o*E,b=-o*C,T=[];c?t.setLineJoin("round"):e.length>2&&t.setMiterLimit(1.42),t.begin();var L=C,I=E;if(l&&!s)this.paintMarker(t,e[0].x,e[0].y,C,E,u,i,o,h,!0);else{var M=e[0].x+S/2+h*C,R=e[0].y+b/2+h*E,O=e[0].x-S/2+h*C,N=e[0].y-b/2+h*E;s?(t.moveTo(M,R),T.push((function(){t.lineTo(O,N)}))):(t.moveTo(O,N),t.lineTo(M,R))}for(var D=0,P=0,H=0,k=0;k<e.length-2;k++){var G=mxUtils.relativeCcw(e[k].x,e[k].y,e[k+1].x,e[k+1].y,e[k+2].x,e[k+2].y);if(D=e[k+2].x-e[k+1].x,P=e[k+2].y-e[k+1].y,H=Math.sqrt(D*D+P*P),0!=H){v=D/H,w=P/H;var B=C*v+E*w,U=Math.max(Math.sqrt((B+1)/2),.04);f=C+v,A=E+w;var V=Math.sqrt(f*f+A*A);if(0!=V){f/=V,A/=V;var F=Math.max(U,Math.min(this.strokewidth/200+.04,.35)),z=0!=G&&c?Math.max(.1,F):Math.max(U,.06),Y=e[k+1].x+A*o/2/z,W=e[k+1].y-f*o/2/z,j=e[k+1].x-A*o/2/z,Q=e[k+1].y+f*o/2/z;if(0!=G&&c)if(-1==G){var Z=j+E*o,X=Q-C*o,K=j+w*o,q=Q-v*o;t.lineTo(Z,X),t.quadTo(Y,W,K,q),function(e,n){T.push((function(){t.lineTo(e,n)}))}(j,Q)}else t.lineTo(Y,W),function(e,n){var i=Y-E*o,r=W+C*o,s=Y-w*o,l=W+v*o;T.push((function(){t.quadTo(e,n,i,r)})),T.push((function(){t.lineTo(s,l)}))}(j,Q);else t.lineTo(Y,W),function(e,n){T.push((function(){t.lineTo(e,n)}))}(j,Q);C=v,E=w}}}if(S=o*w,b=-o*v,a&&!s)this.paintMarker(t,p.x,p.y,-C,-E,d,r,o,h,!1);else{t.lineTo(p.x-h*v+S/2,p.y-h*w+b/2);var J=p.x-h*v-S/2,_=p.y-h*w-b/2;s?(t.moveTo(J,_),T.splice(0,0,(function(){t.moveTo(J,_)}))):t.lineTo(J,_)}for(k=T.length-1;k>=0;k--)T[k]();s?(t.end(),t.stroke()):(t.close(),t.fillAndStroke()),t.setShadow(!1),t.setMiterLimit(4),c&&t.setLineJoin("flat"),e.length>2&&(t.setMiterLimit(4),l&&!s&&(t.begin(),this.paintMarker(t,e[0].x,e[0].y,L,I,u,i,o,h,!0),t.stroke(),t.end()),a&&!s&&(t.begin(),this.paintMarker(t,p.x,p.y,-C,-E,d,r,o,h,!0),t.stroke(),t.end()))}},mxArrowConnector.prototype.paintMarker=function(t,e,n,i,r,o,s,l,a,h){var u=l/s,d=l*r/2,c=-l*i/2,p=(a+o)*i,g=(a+o)*r;h?t.moveTo(e-d+p,n-c+g):t.lineTo(e-d+p,n-c+g),t.lineTo(e-d/u+p,n-c/u+g),t.lineTo(e+a*i,n+a*r),t.lineTo(e+d/u+p,n+c/u+g),t.lineTo(e+d+p,n+c+g)},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},__mxOutput.mxArrowConnector="undefined"!==typeof mxArrowConnector?mxArrowConnector:void 0,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?3:4,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)&&this.scale>0&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)},mxText.prototype.paint=function(t,e){var n=this.scale,i=this.bounds.x/n,r=this.bounds.y/n,o=this.bounds.width/n,s=this.bounds.height/n;if(this.updateTransform(t,i,r,o,s),this.configureCanvas(t,i,r,o,s),e)t.updateText(i,r,o,s,this.align,this.valign,this.wrap,this.overflow,this.clipped,this.getTextRotation(),this.node);else{var l=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,a=l||t instanceof mxVmlCanvas2D?"html":"",h=this.value;l||"html"!=a||(h=mxUtils.htmlEntities(h,!1)),"html"!=a||mxUtils.isNode(this.value)||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>")),h=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==a?h.replace(/\n/g,"<br/>"):h;var u=this.textDirection;u!=mxConstants.TEXT_DIRECTION_AUTO||l||(u=this.getAutoDirection()),u!=mxConstants.TEXT_DIRECTION_LTR&&u!=mxConstants.TEXT_DIRECTION_RTL&&(u=null),t.text(i,r,o,s,h,this.align,this.valign,this.wrap,a,this.overflow,this.clipped,this.getTextRotation(),u)}},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){var t=this.createCanvas();null!=t&&null!=t.updateText?(t.pointerEvents=this.pointerEvents,this.paint(t,!0),this.destroyCanvas(t),this.updateBoundingBox()):mxShape.prototype.redraw.apply(this,arguments)}else mxClient.IS_SVG?this.redrawHtmlShapeWithCss3():(this.updateSize(this.node,null==this.state||null==this.state.view.textDiv),mxClient.IS_IE&&(null==document.documentMode||document.documentMode<=8)?this.updateHtmlFilter():this.updateHtmlTransform()),this.updateBoundingBox();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.align=mxConstants.ALIGN_CENTER,this.valign=mxConstants.ALIGN_MIDDLE,this.family=mxConstants.DEFAULT_FONTFAMILY,this.size=mxConstants.DEFAULT_FONTSIZE,this.fontStyle=mxConstants.DEFAULT_FONTSTYLE,this.spacing=2,this.spacingTop=2,this.spacingRight=2,this.spacingBottom=2,this.spacingLeft=2,this.horizontal=!0,delete this.background,delete this.border,this.textDirection=mxConstants.DEFAULT_TEXT_DIRECTION,delete this.margin},mxText.prototype.apply=function(t){var e=this.spacing;mxShape.prototype.apply.apply(this,arguments),null!=this.style&&(this.fontStyle=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSTYLE,this.fontStyle),this.family=mxUtils.getValue(this.style,mxConstants.STYLE_FONTFAMILY,this.family),this.size=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,this.size),this.color=mxUtils.getValue(this.style,mxConstants.STYLE_FONTCOLOR,this.color),this.align=mxUtils.getValue(this.style,mxConstants.STYLE_ALIGN,this.align),this.valign=mxUtils.getValue(this.style,mxConstants.STYLE_VERTICAL_ALIGN,this.valign),this.spacing=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing)),this.spacingTop=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_SPACING_TOP,this.spacingTop-e))+this.spacing,this.spacingRight=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_SPACING_RIGHT,this.spacingRight-e))+this.spacing,this.spacingBottom=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_SPACING_BOTTOM,this.spacingBottom-e))+this.spacing,this.spacingLeft=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_SPACING_LEFT,this.spacingLeft-e))+this.spacing,this.horizontal=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,this.horizontal),this.background=mxUtils.getValue(this.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,this.background),this.border=mxUtils.getValue(this.style,mxConstants.STYLE_LABEL_BORDERCOLOR,this.border),this.textDirection=mxUtils.getValue(this.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION),this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_TEXT_OPACITY,100),this.updateMargin()),this.flipV=null,this.flipH=null},mxText.prototype.getAutoDirection=function(){var t=/[A-Za-z\u05d0-\u065f\u066a-\u06ef\u06fa-\u07ff\ufb1d-\ufdff\ufe70-\ufefc]/.exec(this.value);return null!=t&&t.length>0&&t[0]>"z"?mxConstants.TEXT_DIRECTION_RTL:mxConstants.TEXT_DIRECTION_LTR},mxText.prototype.getContentNode=function(){var t=this.node;return null!=t&&(t=null==t.ownerSVGElement?this.node.firstChild.firstChild:t.firstChild.firstChild.firstChild.firstChild.firstChild),t},mxText.prototype.updateBoundingBox=function(){var t=this.node;this.boundingBox=this.bounds.clone();var e=this.getTextRotation(),n=null!=this.style?mxUtils.getValue(this.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER):null,i=null!=this.style?mxUtils.getValue(this.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE):null;if(!this.ignoreStringSize&&null!=t&&"fill"!=this.overflow&&(!this.clipped||!this.ignoreClippedStringSize||n!=mxConstants.ALIGN_CENTER||i!=mxConstants.ALIGN_MIDDLE)){var r=null,o=null;if(null!=t.ownerSVGElement)if(null!=t.firstChild&&null!=t.firstChild.firstChild&&"foreignObject"==t.firstChild.firstChild.nodeName)t=t.firstChild.firstChild.firstChild.firstChild,o=t.offsetHeight*this.scale,r="width"==this.overflow?this.boundingBox.width:t.offsetWidth*this.scale;else try{var s=t.getBBox();return void("string"==typeof this.value&&0==mxUtils.trim(this.value)||0==s.width&&0==s.height?this.boundingBox=null:this.boundingBox=new mxRectangle(s.x,s.y,s.width,s.height))}catch(c){}else{var l=null!=this.state?this.state.view.textDiv:null;if(null!=this.offsetWidth&&null!=this.offsetHeight)r=this.offsetWidth*this.scale,o=this.offsetHeight*this.scale;else{null!=l&&(this.updateFont(l),this.updateSize(l,!1),this.updateInnerHtml(l),t=l);var a=t;if(8!=document.documentMode||mxClient.IS_EM)null!=a.firstChild&&"DIV"==a.firstChild.nodeName&&(a=a.firstChild);else{var h=Math.round(this.bounds.width/this.scale);if(this.wrap&&h>0){if(t.style.wordWrap=mxConstants.WORD_WRAP,t.style.whiteSpace="normal","break-word"!=t.style.wordWrap){var u=a.getElementsByTagName("div");u.length>0&&(a=u[u.length-1]),r=a.offsetWidth+2,u=this.node.getElementsByTagName("div"),this.clipped&&(r=Math.min(h,r)),u.length>1&&(u[u.length-2].style.width=r+"px")}}else t.style.whiteSpace="nowrap"}this.offsetWidth=a.offsetWidth+this.textWidthPadding,this.offsetHeight=a.offsetHeight,r=this.offsetWidth*this.scale,o=this.offsetHeight*this.scale}}null!=r&&null!=o&&(this.boundingBox=new mxRectangle(this.bounds.x,this.bounds.y,r,o))}if(null!=this.boundingBox)if(0!=e){var d=mxUtils.getBoundingBox(new mxRectangle(this.margin.x*this.boundingBox.width,this.margin.y*this.boundingBox.height,this.boundingBox.width,this.boundingBox.height),e,new mxPoint(0,0));this.unrotatedBoundingBox=mxRectangle.fromRectangle(this.boundingBox),this.unrotatedBoundingBox.x+=this.margin.x*this.unrotatedBoundingBox.width,this.unrotatedBoundingBox.y+=this.margin.y*this.unrotatedBoundingBox.height,this.boundingBox.x+=d.x,this.boundingBox.y+=d.y,this.boundingBox.width=d.width,this.boundingBox.height=d.height}else this.boundingBox.x+=this.margin.x*this.boundingBox.width,this.boundingBox.y+=this.margin.y*this.boundingBox.height,this.unrotatedBoundingBox=null},mxText.prototype.getShapeRotation=function(){return 0},mxText.prototype.getTextRotation=function(){return null!=this.state&&null!=this.state.shape?this.state.shape.getTextRotation():0},mxText.prototype.isPaintBoundsInverted=function(){return!this.horizontal&&null!=this.state&&this.state.view.graph.model.isVertex(this.state.cell)},mxText.prototype.configureCanvas=function(t,e,n,i,r){mxShape.prototype.configureCanvas.apply(this,arguments),t.setFontColor(this.color),t.setFontBackgroundColor(this.background),t.setFontBorderColor(this.border),t.setFontFamily(this.family),t.setFontSize(this.size),t.setFontStyle(this.fontStyle)},mxText.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width="1px",this.node.style.height="1px",this.node.style.overflow="visible"},mxText.prototype.getHtmlValue=function(){var t=this.value;return this.dialect!=mxConstants.DIALECT_STRICTHTML&&(t=mxUtils.htmlEntities(t,!1)),t=mxUtils.replaceTrailingNewlines(t,"<div><br></div>"),t=this.replaceLinefeeds?t.replace(/\n/g,"<br/>"):t,t},mxText.prototype.getTextCss=function(){var t=mxConstants.ABSOLUTE_LINE_HEIGHT?this.size*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT,e="display: inline-block; font-size: "+this.size+"px; font-family: "+this.family+"; color: "+this.color+"; line-height: "+t+"; pointer-events: "+(this.pointerEvents?"all":"none")+"; ";(this.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(e+="font-weight: bold; "),(this.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(e+="font-style: italic; ");var n=[];return(this.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&n.push("underline"),(this.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&n.push("line-through"),n.length>0&&(e+="text-decoration: "+n.join(" ")+"; "),e},mxText.prototype.redrawHtmlShape=function(){if(mxClient.IS_SVG)this.redrawHtmlShapeWithCss3();else{var t=this.node.style;t.whiteSpace="normal",t.overflow="",t.width="",t.height="",this.updateValue(),this.updateFont(this.node),this.updateSize(this.node,null==this.state||null==this.state.view.textDiv),this.offsetWidth=null,this.offsetHeight=null,mxClient.IS_IE&&(null==document.documentMode||document.documentMode<=8)?this.updateHtmlFilter():this.updateHtmlTransform()}},mxText.prototype.redrawHtmlShapeWithCss3=function(){var t=Math.max(0,Math.round(this.bounds.width/this.scale)),e=Math.max(0,Math.round(this.bounds.height/this.scale)),n="position: absolute; left: "+Math.round(this.bounds.x)+"px; top: "+Math.round(this.bounds.y)+"px; pointer-events: none; ",i=this.getTextCss();mxSvgCanvas2D.createCss(t+2,e,this.align,this.valign,this.wrap,this.overflow,this.clipped,null!=this.background?mxUtils.htmlEntities(this.background):null,null!=this.border?mxUtils.htmlEntities(this.border):null,n,i,this.scale,mxUtils.bind(this,(function(t,e,n,i,r,o){var s=this.getTextRotation(),l=(1!=this.scale?"scale("+this.scale+") ":"")+(0!=s?"rotate("+s+"deg) ":"")+(0!=this.margin.x||0!=this.margin.y?"translate("+100*this.margin.x+"%,"+100*this.margin.y+"%)":"");""!=l&&(l="transform-origin: 0 0; transform: "+l+"; "),""==o?(n+=i,i="display:inline-block; min-width: 100%; "+l):(i+=l,mxClient.IS_SF&&(i+="-webkit-clip-path: content-box;")),this.opacity<100&&(r+="opacity: "+this.opacity/100+"; "),this.node.setAttribute("style",n);var a=mxUtils.isNode(this.value)?this.value.outerHTML:this.getHtmlValue();null==this.node.firstChild&&(this.node.innerHTML="<div><div>"+a+"</div></div>"),this.node.firstChild.firstChild.setAttribute("style",r),this.node.firstChild.setAttribute("style",i)})))},mxText.prototype.updateHtmlTransform=function(){var t=this.getTextRotation(),e=this.node.style,n=this.margin.x,i=this.margin.y;0!=t?(mxUtils.setPrefixedStyle(e,"transformOrigin",100*-n+"% "+100*-i+"%"),mxUtils.setPrefixedStyle(e,"transform","translate("+100*n+"%,"+100*i+"%) scale("+this.scale+") rotate("+t+"deg)")):(mxUtils.setPrefixedStyle(e,"transformOrigin","0% 0%"),mxUtils.setPrefixedStyle(e,"transform","scale("+this.scale+") translate("+100*n+"%,"+100*i+"%)")),e.left=Math.round(this.bounds.x-Math.ceil(n*("fill"!=this.overflow&&"width"!=this.overflow?3:1)))+"px",e.top=Math.round(this.bounds.y-i*("fill"!=this.overflow?3:1))+"px",this.opacity<100?e.opacity=this.opacity/100:e.opacity=""},mxText.prototype.updateInnerHtml=function(t){if(mxUtils.isNode(this.value))t.innerHTML=this.value.outerHTML;else{var e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1)),e=mxUtils.replaceTrailingNewlines(e,"<div> </div>"),e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e,e='<div style="display:inline-block;_display:inline;">'+e+"</div>",t.innerHTML=e}},mxText.prototype.updateHtmlFilter=function(){var t=this.node.style,e=this.margin.x,n=this.margin.y,i=this.scale;mxUtils.setOpacity(this.node,this.opacity);var r=0,o=0,s=null!=this.state?this.state.view.textDiv:null,l=this.node;if(null!=s){s.style.overflow="",s.style.height="",s.style.width="",this.updateFont(s),this.updateSize(s,!1),this.updateInnerHtml(s);var a=Math.round(this.bounds.width/this.scale);this.wrap&&a>0?(s.style.whiteSpace="normal",s.style.wordWrap=mxConstants.WORD_WRAP,r=a,this.clipped&&(r=Math.min(r,this.bounds.width)),s.style.width=r+"px"):s.style.whiteSpace="nowrap",l=s,null!=l.firstChild&&"DIV"==l.firstChild.nodeName&&(l=l.firstChild,this.wrap&&"break-word"==s.style.wordWrap&&(l.style.width="100%")),!this.clipped&&this.wrap&&a>0&&(r=l.offsetWidth+this.textWidthPadding,s.style.width=r+"px"),o=l.offsetHeight+2,mxClient.IS_QUIRKS&&null!=this.border&&this.border!=mxConstants.NONE&&(o+=3)}else null!=l.firstChild&&"DIV"==l.firstChild.nodeName&&(l=l.firstChild,o=l.offsetHeight);r=l.offsetWidth+this.textWidthPadding,this.clipped&&(o=Math.min(o,this.bounds.height));a=this.bounds.width/i;var h=this.bounds.height/i;"fill"==this.overflow?(o=h,r=a):"width"==this.overflow&&(o=l.scrollHeight,r=a),this.offsetWidth=r,this.offsetHeight=o,mxClient.IS_QUIRKS&&(this.clipped||"width"==this.overflow&&h>0)?(h=Math.min(h,o),t.height=Math.round(h)+"px"):h=o,"fill"!=this.overflow&&"width"!=this.overflow&&(this.clipped&&(r=Math.min(a,r)),a=r,(mxClient.IS_QUIRKS&&this.clipped||this.wrap)&&(t.width=Math.round(a)+"px")),h*=i,a*=i;var u=this.getTextRotation()*(Math.PI/180),d=parseFloat(parseFloat(Math.cos(u)).toFixed(8)),c=parseFloat(parseFloat(Math.sin(-u)).toFixed(8));u%=2*Math.PI,u<0&&(u+=2*Math.PI),u%=Math.PI,u>Math.PI/2&&(u=Math.PI-u);var p=Math.cos(u),g=Math.sin(-u),m=a*-(e+.5),x=h*-(n+.5),y=(h-h*p+a*g)/2+c*m-d*x,f=(a-a*p+h*g)/2-d*m-c*x;if(0!=u){var A="progid:DXImageTransform.Microsoft.Matrix(M11="+d+", M12="+c+", M21="+-c+", M22="+d+", sizingMethod='auto expand')";null!=t.filter&&t.filter.length>0?t.filter+=" "+A:t.filter=A}n=0;"fill"!=this.overflow&&mxClient.IS_QUIRKS&&(this.valign==mxConstants.ALIGN_TOP?n-=1:this.valign==mxConstants.ALIGN_BOTTOM?n+=2:n+=1),t.zoom=i,t.left=Math.round(this.bounds.x+f-a/2)+"px",t.top=Math.round(this.bounds.y+y-h/2+n)+"px"},mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{var t=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(t=mxUtils.htmlEntities(t,!1)),t=mxUtils.replaceTrailingNewlines(t,"<div><br></div>"),t=this.replaceLinefeeds?t.replace(/\n/g,"<br/>"):t;var e=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,n=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if("fill"==this.overflow||"width"==this.overflow)null!=e&&(this.node.style.backgroundColor=e),null!=n&&(this.node.style.border="1px solid "+n);else{var i="";null!=e&&(i+="background-color:"+mxUtils.htmlEntities(e)+";"),null!=n&&(i+="border:1px solid "+mxUtils.htmlEntities(n)+";");var r=mxConstants.ABSOLUTE_LINE_HEIGHT?this.size*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT;t='<div style="zoom:1;'+i+"display:inline-block;_display:inline;text-decoration:inherit;padding-bottom:1px;padding-right:1px;line-height:"+r+'">'+t+"</div>"}this.node.innerHTML=t;var o=this.node.getElementsByTagName("div");if(o.length>0){var s=this.textDirection;s==mxConstants.TEXT_DIRECTION_AUTO&&this.dialect!=mxConstants.DIALECT_STRICTHTML&&(s=this.getAutoDirection()),s==mxConstants.TEXT_DIRECTION_LTR||s==mxConstants.TEXT_DIRECTION_RTL?o[o.length-1].setAttribute("dir",s):o[o.length-1].removeAttribute("dir")}}},mxText.prototype.updateFont=function(t){var e=t.style;e.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?this.size*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT,e.fontSize=this.size+"px",e.fontFamily=this.family,e.verticalAlign="top",e.color=this.color,(this.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?e.fontWeight="bold":e.fontWeight="",(this.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?e.fontStyle="italic":e.fontStyle="";var n=[];(this.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&n.push("underline"),(this.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&n.push("line-through"),e.textDecoration=n.join(" "),this.align==mxConstants.ALIGN_CENTER?e.textAlign="center":this.align==mxConstants.ALIGN_RIGHT?e.textAlign="right":e.textAlign="left"},mxText.prototype.updateSize=function(t,e){var n=Math.max(0,Math.round(this.bounds.width/this.scale)),i=Math.max(0,Math.round(this.bounds.height/this.scale)),r=t.style;if(this.clipped?(r.overflow="hidden",mxClient.IS_QUIRKS?r.width=n+"px":(r.maxHeight=i+"px",r.maxWidth=n+"px")):"fill"==this.overflow?(r.width=n+1+"px",r.height=i+1+"px",r.overflow="hidden"):"width"==this.overflow&&(r.width=n+1+"px",r.maxHeight=i+1+"px",r.overflow="hidden"),this.wrap&&n>0){if(r.wordWrap=mxConstants.WORD_WRAP,r.whiteSpace="normal",r.width=n+"px",e&&"fill"!=this.overflow&&"width"!=this.overflow){var o=t;null!=o.firstChild&&"DIV"==o.firstChild.nodeName&&(o=o.firstChild,"break-word"==t.style.wordWrap&&(o.style.width="100%"));var s=o.offsetWidth;if(0==s){var l=t.parentNode;t.style.visibility="hidden",document.body.appendChild(t),s=o.offsetWidth,t.style.visibility="",l.appendChild(t)}s+=3,this.clipped&&(s=Math.min(s,n)),r.width=s+"px"}}else r.whiteSpace="nowrap"},mxText.prototype.updateMargin=function(){this.margin=mxUtils.getAlignmentAsPoint(this.align,this.valign)},mxText.prototype.getSpacing=function(){var t=0,e=0;return t=this.align==mxConstants.ALIGN_CENTER?(this.spacingLeft-this.spacingRight)/2:this.align==mxConstants.ALIGN_RIGHT?-this.spacingRight-this.baseSpacingRight:this.spacingLeft+this.baseSpacingLeft,e=this.valign==mxConstants.ALIGN_MIDDLE?(this.spacingTop-this.spacingBottom)/2:this.valign==mxConstants.ALIGN_BOTTOM?-this.spacingBottom-this.baseSpacingBottom:this.spacingTop+this.baseSpacingTop,new mxPoint(t,e)},__mxOutput.mxText="undefined"!==typeof mxText?mxText:void 0,mxUtils.extend(mxTriangle,mxActor),mxTriangle.prototype.isRoundable=function(){return!0},mxTriangle.prototype.redrawPath=function(t,e,n,i,r){var o=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(t,[new mxPoint(0,0),new mxPoint(i,.5*r),new mxPoint(0,r)],this.isRounded,o,!0)},__mxOutput.mxTriangle="undefined"!==typeof mxTriangle?mxTriangle:void 0,mxUtils.extend(mxHexagon,mxActor),mxHexagon.prototype.redrawPath=function(t,e,n,i,r){var o=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(t,[new mxPoint(.25*i,0),new mxPoint(.75*i,0),new mxPoint(i,.5*r),new mxPoint(.75*i,r),new mxPoint(.25*i,r),new mxPoint(0,.5*r)],this.isRounded,o,!0)},__mxOutput.mxHexagon="undefined"!==typeof mxHexagon?mxHexagon:void 0,mxUtils.extend(mxLine,mxShape),mxLine.prototype.vertical=!1,mxLine.prototype.paintVertexShape=function(t,e,n,i,r){if(t.begin(),this.vertical){var o=e+i/2;t.moveTo(o,n),t.lineTo(o,n+r)}else{o=n+r/2;t.moveTo(e,o),t.lineTo(e+i,o)}t.stroke()},__mxOutput.mxLine="undefined"!==typeof mxLine?mxLine:void 0,mxUtils.extend(mxImageShape,mxRectangleShape),mxImageShape.prototype.preserveImageAspect=!0,mxImageShape.prototype.getSvgScreenOffset=function(){return 0},mxImageShape.prototype.apply=function(t){mxShape.prototype.apply.apply(this,arguments),this.fill=null,this.stroke=null,this.gradient=null,null!=this.style&&(this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||1==mxUtils.getValue(this.style,"imageFlipV",0))},mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect},mxImageShape.prototype.createHtml=function(){var t=document.createElement("div");return t.style.position="absolute",t},mxImageShape.prototype.isRoundable=function(t,e,n,i,r){return!1},mxImageShape.prototype.paintVertexShape=function(t,e,n,i,r){if(null!=this.image){var o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null!=o&&(t.setFillColor(o),t.setStrokeColor(s),t.rect(e,n,i,r),t.fillAndStroke()),t.image(e,n,i,r,this.image,this.preserveImageAspect,!1,!1);s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null!=s&&(t.setShadow(!1),t.setStrokeColor(s),t.rect(e,n,i,r),t.stroke())}else mxRectangleShape.prototype.paintBackground.apply(this,arguments)},mxImageShape.prototype.redrawHtmlShape=function(){if(this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px",this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px",this.node.innerHTML="",null!=this.image){var t=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,""),e=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,"");this.node.style.backgroundColor=t,this.node.style.borderColor=e;var n=mxClient.IS_IE6||(null==document.documentMode||document.documentMode<=8)&&0!=this.rotation,i=document.createElement(n?mxClient.VML_PREFIX+":image":"img");i.setAttribute("border","0"),i.style.position="absolute",i.src=this.image;var r=this.opacity<100?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=r,this.flipH&&this.flipV?r+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?r+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(r+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),i.style.filter!=r&&(i.style.filter=r),"image"==i.nodeName?i.style.rotation=this.rotation:0!=this.rotation?mxUtils.setPrefixedStyle(i.style,"transform","rotate("+this.rotation+"deg)"):mxUtils.setPrefixedStyle(i.style,"transform",""),i.style.width=this.node.style.width,i.style.height=this.node.style.height,this.node.style.backgroundImage="",this.node.appendChild(i)}else this.setTransparentBackgroundImage(this.node)},__mxOutput.mxImageShape="undefined"!==typeof mxImageShape?mxImageShape:void 0,mxUtils.extend(mxLabel,mxRectangleShape),mxLabel.prototype.imageSize=mxConstants.DEFAULT_IMAGESIZE,mxLabel.prototype.spacing=2,mxLabel.prototype.indicatorSize=10,mxLabel.prototype.indicatorSpacing=2,mxLabel.prototype.init=function(t){mxShape.prototype.init.apply(this,arguments),null!=this.indicatorShape&&(this.indicator=new this.indicatorShape,this.indicator.dialect=this.dialect,this.indicator.init(this.node))},mxLabel.prototype.redraw=function(){null!=this.indicator&&(this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorStrokeColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection,this.indicator.redraw()),mxShape.prototype.redraw.apply(this,arguments)},mxLabel.prototype.isHtmlAllowed=function(){return mxRectangleShape.prototype.isHtmlAllowed.apply(this,arguments)&&null==this.indicatorColor&&null==this.indicatorShape},mxLabel.prototype.paintForeground=function(t,e,n,i,r){this.paintImage(t,e,n,i,r),this.paintIndicator(t,e,n,i,r),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(t,e,n,i,r){if(null!=this.image){var o=this.getImageBounds(e,n,i,r);t.image(o.x,o.y,o.width,o.height,this.image,!1,!1,!1)}},mxLabel.prototype.getImageBounds=function(t,e,n,i){var r=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),l=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),a=mxUtils.getNumber(this.style,mxConstants.STYLE_SPACING,this.spacing)+5;return r==mxConstants.ALIGN_CENTER?t+=(n-s)/2:r==mxConstants.ALIGN_RIGHT?t+=n-s-a:t+=a,o==mxConstants.ALIGN_TOP?e+=a:o==mxConstants.ALIGN_BOTTOM?e+=i-l-a:e+=(i-l)/2,new mxRectangle(t,e,s,l)},mxLabel.prototype.paintIndicator=function(t,e,n,i,r){if(null!=this.indicator)this.indicator.bounds=this.getIndicatorBounds(e,n,i,r),this.indicator.paint(t);else if(null!=this.indicatorImage){var o=this.getIndicatorBounds(e,n,i,r);t.image(o.x,o.y,o.width,o.height,this.indicatorImage,!1,!1,!1)}},mxLabel.prototype.getIndicatorBounds=function(t,e,n,i){var r=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_WIDTH,this.indicatorSize),l=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_HEIGHT,this.indicatorSize),a=this.spacing+5;return r==mxConstants.ALIGN_RIGHT?t+=n-s-a:r==mxConstants.ALIGN_CENTER?t+=(n-s)/2:t+=a,o==mxConstants.ALIGN_BOTTOM?e+=i-l-a:o==mxConstants.ALIGN_TOP?e+=a:e+=(i-l)/2,new mxRectangle(t,e,s,l)},mxLabel.prototype.redrawHtmlShape=function(){mxRectangleShape.prototype.redrawHtmlShape.apply(this,arguments);while(this.node.hasChildNodes())this.node.removeChild(this.node.lastChild);if(null!=this.image){var t=document.createElement("img");t.style.position="relative",t.setAttribute("border","0");var e=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);e.x-=this.bounds.x,e.y-=this.bounds.y,t.style.left=Math.round(e.x)+"px",t.style.top=Math.round(e.y)+"px",t.style.width=Math.round(e.width)+"px",t.style.height=Math.round(e.height)+"px",t.src=this.image,this.node.appendChild(t)}},__mxOutput.mxLabel="undefined"!==typeof mxLabel?mxLabel:void 0,mxUtils.extend(mxCylinder,mxShape),mxCylinder.prototype.maxHeight=40,mxCylinder.prototype.svgStrokeTolerance=0,mxCylinder.prototype.paintVertexShape=function(t,e,n,i,r){t.translate(e,n),t.begin(),this.redrawPath(t,e,n,i,r,!1),t.fillAndStroke(),this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(t.setShadow(!1),t.begin(),this.redrawPath(t,e,n,i,r,!0),t.stroke())},mxCylinder.prototype.getCylinderSize=function(t,e,n,i){return Math.min(this.maxHeight,Math.round(i/5))},mxCylinder.prototype.redrawPath=function(t,e,n,i,r,o){var s=this.getCylinderSize(e,n,i,r);(o&&null!=this.fill||!o&&null==this.fill)&&(t.moveTo(0,s),t.curveTo(0,2*s,i,2*s,i,s),o||(t.stroke(),t.begin())),o||(t.moveTo(0,s),t.curveTo(0,-s/3,i,-s/3,i,s),t.lineTo(i,r-s),t.curveTo(i,r+s/3,0,r+s/3,0,r-s),t.close())},__mxOutput.mxCylinder="undefined"!==typeof mxCylinder?mxCylinder:void 0,mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.updateBoundingBox=function(){this.useSvgBoundingBox=null!=this.style&&1==this.style[mxConstants.STYLE_CURVED],mxShape.prototype.updateBoundingBox.apply(this,arguments)},mxConnector.prototype.paintEdgeShape=function(t,e){var n=this.createMarker(t,e,!0),i=this.createMarker(t,e,!1);mxPolyline.prototype.paintEdgeShape.apply(this,arguments),t.setFillColor(this.stroke),t.setShadow(!1),t.setDashed(!1),null!=n&&n(),null!=i&&i()},mxConnector.prototype.createMarker=function(t,e,n){var i=null,r=e.length,o=mxUtils.getValue(this.style,n?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW),s=n?e[1]:e[r-2],l=n?e[0]:e[r-1];if(null!=o&&null!=s&&null!=l){var a=1;while(a<r-1&&0==Math.round(s.x-l.x)&&0==Math.round(s.y-l.y))s=n?e[1+a]:e[r-2-a],a++;var h=l.x-s.x,u=l.y-s.y,d=Math.max(1,Math.sqrt(h*h+u*u)),c=h/d,p=u/d,g=mxUtils.getNumber(this.style,n?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),m=0!=this.style[n?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL];i=mxMarker.createMarker(t,this,o,l,c,p,g,n,this.strokewidth,m)}return i},mxConnector.prototype.augmentBoundingBox=function(t){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var e=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(e=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(e=Math.max(e,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),t.grow(e*this.scale)},__mxOutput.mxConnector="undefined"!==typeof mxConnector?mxConnector:void 0,mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.isRoundable=function(t,e,n,i,r){return!0},mxSwimlane.prototype.getTitleSize=function(){return Math.max(0,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE))},mxSwimlane.prototype.getLabelBounds=function(t){var e=this.getTitleSize(),n=new mxRectangle(t.x,t.y,t.width,t.height),i=this.isHorizontal(),r=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),o=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),s=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH,l=i==!s,a=!l&&r!=(this.direction==mxConstants.DIRECTION_SOUTH||this.direction==mxConstants.DIRECTION_WEST),h=l&&o!=(this.direction==mxConstants.DIRECTION_SOUTH||this.direction==mxConstants.DIRECTION_WEST);if(s){u=Math.min(n.width,e*this.scale);(a||h)&&(n.x+=n.width-u),n.width=u}else{var u=Math.min(n.height,e*this.scale);(a||h)&&(n.y+=n.height-u),n.height=u}return n},mxSwimlane.prototype.getGradientBounds=function(t,e,n,i,r){var o=this.getTitleSize();return this.isHorizontal()?(o=Math.min(o,r),new mxRectangle(e,n,i,o)):(o=Math.min(o,i),new mxRectangle(e,n,o,r))},mxSwimlane.prototype.getSwimlaneArcSize=function(t,e,n){if("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0))return Math.min(t/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2));var i=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return n*i*3},mxSwimlane.prototype.isHorizontal=function(){return 1==mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)},mxSwimlane.prototype.paintVertexShape=function(t,e,n,i,r){var o=this.getTitleSize(),s=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE),l=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),a=0;o=this.isHorizontal()?Math.min(o,r):Math.min(o,i),t.translate(e,n),this.isRounded?(a=this.getSwimlaneArcSize(i,r,o),a=Math.min((this.isHorizontal()?r:i)-o,Math.min(o,a)),this.paintRoundedSwimlane(t,e,n,i,r,o,a,s,l)):this.paintSwimlane(t,e,n,i,r,o,s,l);var h=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);if(this.paintSeparator(t,e,n,i,r,o,h),null!=this.image){var u=this.getImageBounds(e,n,i,r);t.image(u.x-e,u.y-n,u.width,u.height,this.image,!1,!1,!1)}this.glass&&(t.setShadow(!1),this.paintGlassEffect(t,0,0,i,o,a))},mxSwimlane.prototype.paintSwimlane=function(t,e,n,i,r,o,s,l){t.begin();var a=!0;null!=this.style&&(a="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")),a||null!=this.fill&&this.fill!=mxConstants.NONE||(t.pointerEvents=!1),this.isHorizontal()?(t.moveTo(0,o),t.lineTo(0,0),t.lineTo(i,0),t.lineTo(i,o),t.fillAndStroke(),o<r&&(s!=mxConstants.NONE&&a||(t.pointerEvents=!1),s!=mxConstants.NONE&&t.setFillColor(s),t.begin(),t.moveTo(0,o),t.lineTo(0,r),t.lineTo(i,r),t.lineTo(i,o),s==mxConstants.NONE?t.stroke():t.fillAndStroke())):(t.moveTo(o,0),t.lineTo(0,0),t.lineTo(0,r),t.lineTo(o,r),t.fillAndStroke(),o<i&&(s!=mxConstants.NONE&&a||(t.pointerEvents=!1),s!=mxConstants.NONE&&t.setFillColor(s),t.begin(),t.moveTo(o,0),t.lineTo(i,0),t.lineTo(i,r),t.lineTo(o,r),s==mxConstants.NONE?t.stroke():t.fillAndStroke())),l&&this.paintDivider(t,e,n,i,r,o,s==mxConstants.NONE)},mxSwimlane.prototype.paintRoundedSwimlane=function(t,e,n,i,r,o,s,l,a){t.begin();var h=!0;null!=this.style&&(h="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")),h||null!=this.fill&&this.fill!=mxConstants.NONE||(t.pointerEvents=!1),this.isHorizontal()?(t.moveTo(i,o),t.lineTo(i,s),t.quadTo(i,0,i-Math.min(i/2,s),0),t.lineTo(Math.min(i/2,s),0),t.quadTo(0,0,0,s),t.lineTo(0,o),t.fillAndStroke(),o<r&&(l!=mxConstants.NONE&&h||(t.pointerEvents=!1),l!=mxConstants.NONE&&t.setFillColor(l),t.begin(),t.moveTo(0,o),t.lineTo(0,r-s),t.quadTo(0,r,Math.min(i/2,s),r),t.lineTo(i-Math.min(i/2,s),r),t.quadTo(i,r,i,r-s),t.lineTo(i,o),l==mxConstants.NONE?t.stroke():t.fillAndStroke())):(t.moveTo(o,0),t.lineTo(s,0),t.quadTo(0,0,0,Math.min(r/2,s)),t.lineTo(0,r-Math.min(r/2,s)),t.quadTo(0,r,s,r),t.lineTo(o,r),t.fillAndStroke(),o<i&&(l!=mxConstants.NONE&&h||(t.pointerEvents=!1),l!=mxConstants.NONE&&t.setFillColor(l),t.begin(),t.moveTo(o,r),t.lineTo(i-s,r),t.quadTo(i,r,i,r-Math.min(r/2,s)),t.lineTo(i,Math.min(r/2,s)),t.quadTo(i,0,i-s,0),t.lineTo(o,0),l==mxConstants.NONE?t.stroke():t.fillAndStroke())),a&&this.paintDivider(t,e,n,i,r,o,l==mxConstants.NONE)},mxSwimlane.prototype.paintDivider=function(t,e,n,i,r,o,s){s||t.setShadow(!1),t.begin(),this.isHorizontal()?(t.moveTo(0,o),t.lineTo(i,o)):(t.moveTo(o,0),t.lineTo(o,r)),t.stroke()},mxSwimlane.prototype.paintSeparator=function(t,e,n,i,r,o,s){s!=mxConstants.NONE&&(t.setStrokeColor(s),t.setDashed(!0),t.begin(),this.isHorizontal()?(t.moveTo(i,o),t.lineTo(i,r)):(t.moveTo(o,0),t.lineTo(i,0)),t.stroke(),t.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(t,e,n,i){return this.isHorizontal()?new mxRectangle(t+n-this.imageSize,e,this.imageSize,this.imageSize):new mxRectangle(t,e,this.imageSize,this.imageSize)},__mxOutput.mxSwimlane="undefined"!==typeof mxSwimlane?mxSwimlane:void 0,mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(t,e,n){},mxGraphLayout.prototype.resizeCell=function(t,e){},mxGraphLayout.prototype.execute=function(t){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(t,e,n,i){return this.graph.getCurrentCellStyle(e)[t]},mxGraphLayout.traverse=function(t,e,n,i,r){if(null!=n&&null!=t&&(e=null==e||e,r=r||new mxDictionary,!r.get(t))){r.put(t,!0);var o=n(t,i);if(null==o||o){var s=this.graph.model.getEdgeCount(t);if(s>0)for(var l=0;l<s;l++){var a=this.graph.model.getEdgeAt(t,l),h=this.graph.model.getTerminal(a,!0)==t;if(!e||h){var u=this.graph.view.getVisibleTerminal(a,!h);this.traverse(u,e,n,a,r)}}}}},mxGraphLayout.prototype.isAncestor=function(t,e,n){if(!n)return this.graph.model.getParent(e)==t;if(e==t)return!1;while(null!=e&&e!=t)e=this.graph.model.getParent(e);return e==t},mxGraphLayout.prototype.isVertexMovable=function(t){return this.graph.isCellMovable(t)},mxGraphLayout.prototype.isVertexIgnored=function(t){return!this.graph.getModel().isVertex(t)||!this.graph.isCellVisible(t)},mxGraphLayout.prototype.isEdgeIgnored=function(t){var e=this.graph.getModel();return!e.isEdge(t)||!this.graph.isCellVisible(t)||null==e.getTerminal(t,!0)||null==e.getTerminal(t,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(t,e){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,e?"0":"1",[t])},mxGraphLayout.prototype.setOrthogonalEdge=function(t,e){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,e?"1":"0",[t])},mxGraphLayout.prototype.getParentOffset=function(t){var e=new mxPoint;if(null!=t&&t!=this.parent){var n=this.graph.getModel();if(n.isAncestor(this.parent,t)){var i=n.getGeometry(t);while(t!=this.parent)e.x=e.x+i.x,e.y=e.y+i.y,t=n.getParent(t),i=n.getGeometry(t)}}return e},mxGraphLayout.prototype.setEdgePoints=function(t,e){if(null!=t){var n=this.graph.model,i=n.getGeometry(t);if(null==i?(i=new mxGeometry,i.setRelative(!0)):i=i.clone(),null!=this.parent&&null!=e)for(var r=n.getParent(t),o=this.getParentOffset(r),s=0;s<e.length;s++)e[s].x=e[s].x-o.x,e[s].y=e[s].y-o.y;i.points=e,n.setGeometry(t,i)}},mxGraphLayout.prototype.setVertexLocation=function(t,e,n){var i=this.graph.getModel(),r=i.getGeometry(t),o=null;if(null!=r){if(o=new mxRectangle(e,n,r.width,r.height),this.useBoundingBox){var s=this.graph.getView().getState(t);if(null!=s&&null!=s.text&&null!=s.text.boundingBox){var l=this.graph.getView().scale,a=s.text.boundingBox;s.text.boundingBox.x<s.x&&(e+=(s.x-a.x)/l,o.width=a.width),s.text.boundingBox.y<s.y&&(n+=(s.y-a.y)/l,o.height=a.height)}}if(null!=this.parent){var h=i.getParent(t);if(null!=h&&h!=this.parent){var u=this.getParentOffset(h);e-=u.x,n-=u.y}}r.x==e&&r.y==n||(r=r.clone(),r.x=e,r.y=n,i.setGeometry(t,r))}return o},mxGraphLayout.prototype.getVertexBounds=function(t){var e=this.graph.getModel().getGeometry(t);if(this.useBoundingBox){var n=this.graph.getView().getState(t);if(null!=n&&null!=n.text&&null!=n.text.boundingBox){var i=this.graph.getView().scale,r=n.text.boundingBox,o=Math.max(n.x-r.x,0)/i,s=Math.max(n.y-r.y,0)/i,l=Math.max(r.x+r.width-(n.x+n.width),0)/i,a=Math.max(r.y+r.height-(n.y+n.height),0)/i;e=new mxRectangle(e.x-o,e.y-s,e.width+o+l,e.height+s+a)}}if(null!=this.parent){var h=this.graph.getModel().getParent(t);if(e=e.clone(),null!=h&&h!=this.parent){var u=this.getParentOffset(h);e.x=e.x+u.x,e.y=e.y+u.y}}return new mxRectangle(e.x,e.y,e.width,e.height)},mxGraphLayout.prototype.arrangeGroups=function(t,e,n,i,r,o){return this.graph.updateGroupBounds(t,e,!0,n,i,r,o)},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(t,e){return null!=t&&null!=e?e.weightedValue>t.weightedValue?-1:e.weightedValue<t.weightedValue?1:e.nudge?-1:1:0},__mxOutput.mxGraphLayout="undefined"!==typeof mxGraphLayout?mxGraphLayout:void 0,mxStackLayout.prototype=new mxGraphLayout,mxStackLayout.prototype.constructor=mxStackLayout,mxStackLayout.prototype.horizontal=null,mxStackLayout.prototype.spacing=null,mxStackLayout.prototype.x0=null,mxStackLayout.prototype.y0=null,mxStackLayout.prototype.border=0,mxStackLayout.prototype.marginTop=0,mxStackLayout.prototype.marginLeft=0,mxStackLayout.prototype.marginRight=0,mxStackLayout.prototype.marginBottom=0,mxStackLayout.prototype.keepFirstLocation=!1,mxStackLayout.prototype.fill=!1,mxStackLayout.prototype.resizeParent=!1,mxStackLayout.prototype.resizeParentMax=!1,mxStackLayout.prototype.resizeLast=!1,mxStackLayout.prototype.wrap=null,mxStackLayout.prototype.borderCollapse=!0,mxStackLayout.prototype.allowGaps=!1,mxStackLayout.prototype.gridSize=0,mxStackLayout.prototype.isHorizontal=function(){return this.horizontal},mxStackLayout.prototype.moveCell=function(t,e,n){var i=this.graph.getModel(),r=i.getParent(t),o=this.isHorizontal();if(null!=t&&null!=r){var s=0,l=0,a=i.getChildCount(r),h=o?e:n,u=this.graph.getView().getState(r);for(null!=u&&(h-=o?u.x:u.y),h/=this.graph.view.scale,s=0;s<a;s++){var d=i.getChildAt(r,s);if(d!=t){var c=i.getGeometry(d);if(null!=c){var p=o?c.x+c.width/2:c.y+c.height/2;if(l<=h&&p>h)break;l=p}}}var g=r.getIndex(t);g=Math.max(0,s-(s>g?1:0)),i.add(r,t,g)}},mxStackLayout.prototype.getParentSize=function(t){var e=this.graph.getModel(),n=e.getGeometry(t);if(null!=this.graph.container&&(null==n&&e.isLayer(t)||t==this.graph.getView().currentRoot)){var i=this.graph.container.offsetWidth-1,r=this.graph.container.offsetHeight-1;n=new mxRectangle(0,0,i,r)}return n},mxStackLayout.prototype.getLayoutCells=function(t){for(var e=this.graph.getModel(),n=e.getChildCount(t),i=[],r=0;r<n;r++){var o=e.getChildAt(t,r);!this.isVertexIgnored(o)&&this.isVertexMovable(o)&&i.push(o)}return this.allowGaps&&i.sort(mxUtils.bind(this,(function(t,e){var n=this.graph.getCellGeometry(t),i=this.graph.getCellGeometry(e);return this.horizontal?n.x==i.x?0:n.x>i.x>0?1:-1:n.y==i.y?0:n.y>i.y>0?1:-1}))),i},mxStackLayout.prototype.snap=function(t){if(null!=this.gridSize&&this.gridSize>0&&(t=Math.max(t,this.gridSize),t/this.gridSize>1)){var e=t%this.gridSize;t+=e>this.gridSize/2?this.gridSize-e:-e}return t},mxStackLayout.prototype.execute=function(t){if(null!=t){var e=this.getParentSize(t),n=this.isHorizontal(),i=this.graph.getModel(),r=null;null!=e&&(r=n?e.height-this.marginTop-this.marginBottom:e.width-this.marginLeft-this.marginRight),r-=2*this.border;var o=this.x0+this.border+this.marginLeft,s=this.y0+this.border+this.marginTop;if(this.graph.isSwimlane(t)){var l=this.graph.getCellStyle(t),a=mxUtils.getNumber(l,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE),h=1==mxUtils.getValue(l,mxConstants.STYLE_HORIZONTAL,!0);null!=e&&(a=h?Math.min(a,e.height):Math.min(a,e.width)),n==h&&(r-=a),h?s+=a:o+=a}i.beginUpdate();try{for(var u=0,d=null,c=0,p=null,g=this.getLayoutCells(t),m=0;m<g.length;m++){var x=g[m],y=i.getGeometry(x);if(null!=y){y=y.clone(),null!=this.wrap&&null!=d&&(n&&d.x+d.width+y.width+2*this.spacing>this.wrap||!n&&d.y+d.height+y.height+2*this.spacing>this.wrap)&&(d=null,n?s+=u+this.spacing:o+=u+this.spacing,u=0),u=Math.max(u,n?y.height:y.width);var f=0;if(!this.borderCollapse){var A=this.graph.getCellStyle(x);f=mxUtils.getNumber(A,mxConstants.STYLE_STROKEWIDTH,1)}if(null!=d){var C=c+this.spacing+Math.floor(f/2);n?y.x=this.snap((this.allowGaps?Math.max(C,y.x):C)-this.marginLeft)+this.marginLeft:y.y=this.snap((this.allowGaps?Math.max(C,y.y):C)-this.marginTop)+this.marginTop}else this.keepFirstLocation||(n?y.x=this.allowGaps&&y.x>o?Math.max(this.snap(y.x-this.marginLeft)+this.marginLeft,o):o:y.y=this.allowGaps&&y.y>s?Math.max(this.snap(y.y-this.marginTop)+this.marginTop,s):s);n?y.y=s:y.x=o,this.fill&&null!=r&&(n?y.height=r:y.width=r),n?y.width=this.snap(y.width):y.height=this.snap(y.height),this.setChildGeometry(x,y),p=x,d=y,c=n?d.x+d.width+Math.floor(f/2):d.y+d.height+Math.floor(f/2)}}this.resizeParent&&null!=e&&null!=d&&!this.graph.isCellCollapsed(t)?this.updateParentGeometry(t,e,d):this.resizeLast&&null!=e&&null!=d&&null!=p&&(n?d.width=e.width-d.x-this.spacing-this.marginRight-this.marginLeft:d.height=e.height-d.y-this.spacing-this.marginBottom,this.setChildGeometry(p,d))}finally{i.endUpdate()}}},mxStackLayout.prototype.setChildGeometry=function(t,e){var n=this.graph.getCellGeometry(t);null!=n&&e.x==n.x&&e.y==n.y&&e.width==n.width&&e.height==n.height||this.graph.getModel().setGeometry(t,e)},mxStackLayout.prototype.updateParentGeometry=function(t,e,n){var i=this.isHorizontal(),r=this.graph.getModel(),o=e.clone();if(i){var s=n.x+n.width+this.marginRight+this.border;this.resizeParentMax?o.width=Math.max(o.width,s):o.width=s}else{s=n.y+n.height+this.marginBottom+this.border;this.resizeParentMax?o.height=Math.max(o.height,s):o.height=s}e.x==o.x&&e.y==o.y&&e.width==o.width&&e.height==o.height||r.setGeometry(t,o)},__mxOutput.mxStackLayout="undefined"!==typeof mxStackLayout?mxStackLayout:void 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(t,e,n){var i=this.graph.getModel(),r=i.getParent(t);if(null!=t&&null!=r){var o=0,s=0,l=i.getChildCount(r);for(o=0;o<l;o++){var a=i.getChildAt(r,o),h=this.getVertexBounds(a);if(null!=h){var u=h.x+h.width/2;if(s<e&&u>e)break;s=u}}var d=r.getIndex(t);d=Math.max(0,o-(o>d?1:0)),i.add(r,t,d)}},mxPartitionLayout.prototype.execute=function(t){var e=this.isHorizontal(),n=this.graph.getModel(),i=n.getGeometry(t);if(null!=this.graph.container&&(null==i&&n.isLayer(t)||t==this.graph.getView().currentRoot)){var r=this.graph.container.offsetWidth-1,o=this.graph.container.offsetHeight-1;i=new mxRectangle(0,0,r,o)}if(null!=i){for(var s=[],l=n.getChildCount(t),a=0;a<l;a++){var h=n.getChildAt(t,a);!this.isVertexIgnored(h)&&this.isVertexMovable(h)&&s.push(h)}var u=s.length;if(u>0){var d=this.border,c=this.border,p=e?i.height:i.width;p-=2*this.border;var g=this.graph.isSwimlane(t)?this.graph.getStartSize(t):new mxRectangle;p-=e?g.height:g.width,d+=g.width,c+=g.height;var m=this.border+(u-1)*this.spacing,x=e?(i.width-d-m)/u:(i.height-c-m)/u;if(x>0){n.beginUpdate();try{for(a=0;a<u;a++){h=s[a];var y=n.getGeometry(h);null!=y&&(y=y.clone(),y.x=d,y.y=c,e?(this.resizeVertices&&(y.width=x,y.height=p),d+=x+this.spacing):(this.resizeVertices&&(y.height=x,y.width=p),c+=x+this.spacing),n.setGeometry(h,y))}}finally{n.endUpdate()}}}}},__mxOutput.mxPartitionLayout="undefined"!==typeof mxPartitionLayout?mxPartitionLayout:void 0,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,mxCompactTreeLayout.prototype.isVertexIgnored=function(t){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(t).length},mxCompactTreeLayout.prototype.isHorizontal=function(){return this.horizontal},mxCompactTreeLayout.prototype.execute=function(t,e){this.parent=t;var n=this.graph.getModel();if(null==e)if(this.graph.getEdges(t,n.getParent(t),this.invert,!this.invert,!1).length>0)this.root=t;else{var i=this.graph.findTreeRoots(t,!0,this.invert);if(i.length>0)for(var r=0;r<i.length;r++)if(!this.isVertexIgnored(i[r])&&this.graph.getEdges(i[r],null,this.invert,!this.invert,!1).length>0){this.root=i[r];break}}else this.root=e;if(null!=this.root){if(this.resizeParent?this.parentsChanged=new Object:this.parentsChanged=null,this.parentX=null,this.parentY=null,t!=this.root&&null!=n.isVertex(t)&&this.maintainParentLocation){var o=this.graph.getCellGeometry(t);null!=o&&(this.parentX=o.x,this.parentY=o.y)}n.beginUpdate();try{if(this.visited=new Object,this.node=this.dfs(this.root,t),this.alignRanks&&(this.maxRankHeight=[],this.findRankHeights(this.node,0),this.setCellHeights(this.node,0)),null!=this.node){this.layout(this.node);var s=this.graph.gridSize,l=s;if(!this.moveTree){var a=this.getVertexBounds(this.root);null!=a&&(s=a.x,l=a.y)}var h=null;if(h=this.isHorizontal()?this.horizontalLayout(this.node,s,l):this.verticalLayout(this.node,null,s,l),null!=h){var u=0,d=0;h.x<0&&(u=Math.abs(s-h.x)),h.y<0&&(d=Math.abs(l-h.y)),0==u&&0==d||this.moveNode(this.node,u,d),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(this.node)}if(null!=this.parentX&&null!=this.parentY){o=this.graph.getCellGeometry(t);null!=o&&(o=o.clone(),o.x=this.parentX,o.y=this.parentY,n.setGeometry(t,o))}}}finally{n.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(t,e,n){t.x+=e,t.y+=n,this.apply(t);var i=t.child;while(null!=i)this.moveNode(i,e,n),i=i.next},mxCompactTreeLayout.prototype.sortOutgoingEdges=function(t,e){var n=new mxDictionary;e.sort((function(e,i){var r=e.getTerminal(e.getTerminal(!1)==t),o=n.get(r);null==o&&(o=mxCellPath.create(r).split(mxCellPath.PATH_SEPARATOR),n.put(r,o));var s=i.getTerminal(i.getTerminal(!1)==t),l=n.get(s);return null==l&&(l=mxCellPath.create(s).split(mxCellPath.PATH_SEPARATOR),n.put(s,l)),mxCellPath.compare(o,l)}))},mxCompactTreeLayout.prototype.findRankHeights=function(t,e){(null==this.maxRankHeight[e]||this.maxRankHeight[e]<t.height)&&(this.maxRankHeight[e]=t.height);var n=t.child;while(null!=n)this.findRankHeights(n,e+1),n=n.next},mxCompactTreeLayout.prototype.setCellHeights=function(t,e){null!=this.maxRankHeight[e]&&this.maxRankHeight[e]>t.height&&(t.height=this.maxRankHeight[e]);var n=t.child;while(null!=n)this.setCellHeights(n,e+1),n=n.next},mxCompactTreeLayout.prototype.dfs=function(t,e){var n=mxCellPath.create(t),i=null;if(null!=t&&null==this.visited[n]&&!this.isVertexIgnored(t)){this.visited[n]=t,i=this.createNode(t);var r=this.graph.getModel(),o=null,s=this.graph.getEdges(t,e,this.invert,!this.invert,!1,!0),l=this.graph.getView();this.sortEdges&&this.sortOutgoingEdges(t,s);for(var a=0;a<s.length;a++){var h=s[a];if(!this.isEdgeIgnored(h)){this.resetEdges&&this.setEdgePoints(h,null),this.edgeRouting&&(this.setEdgeStyleEnabled(h,!1),this.setEdgePoints(h,null));var u=l.getState(h),d=null!=u?u.getVisibleTerminal(this.invert):l.getVisibleTerminal(h,this.invert),c=this.dfs(d,e);null!=c&&null!=r.getGeometry(d)&&(null==o?i.child=c:o.next=c,o=c)}}}return i},mxCompactTreeLayout.prototype.layout=function(t){if(null!=t){var e=t.child;while(null!=e)this.layout(e),e=e.next;null!=t.child?this.attachParent(t,this.join(t)):this.layoutLeaf(t)}},mxCompactTreeLayout.prototype.horizontalLayout=function(t,e,n,i){t.x+=e+t.offsetX,t.y+=n+t.offsetY,i=this.apply(t,i);var r=t.child;if(null!=r){i=this.horizontalLayout(r,t.x,t.y,i);var o=t.y+r.offsetY,s=r.next;while(null!=s)i=this.horizontalLayout(s,t.x+r.offsetX,o,i),o+=s.offsetY,s=s.next}return i},mxCompactTreeLayout.prototype.verticalLayout=function(t,e,n,i,r){t.x+=n+t.offsetY,t.y+=i+t.offsetX,r=this.apply(t,r);var o=t.child;if(null!=o){r=this.verticalLayout(o,t,t.x,t.y,r);var s=t.x+o.offsetY,l=o.next;while(null!=l)r=this.verticalLayout(l,t,s,t.y+o.offsetX,r),s+=l.offsetY,l=l.next}return r},mxCompactTreeLayout.prototype.attachParent=function(t,e){var n=this.nodeDistance+this.levelDistance,i=(e-t.width)/2-this.nodeDistance,r=i+t.width+2*this.nodeDistance-e;t.child.offsetX=n+t.height,t.child.offsetY=r,t.contour.upperHead=this.createLine(t.height,0,this.createLine(n,r,t.contour.upperHead)),t.contour.lowerHead=this.createLine(t.height,0,this.createLine(n,i,t.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(t){var e=2*this.nodeDistance;t.contour.upperTail=this.createLine(t.height+e,0),t.contour.upperHead=t.contour.upperTail,t.contour.lowerTail=this.createLine(0,-t.width-e),t.contour.lowerHead=this.createLine(t.height+e,0,t.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(t){var e=2*this.nodeDistance,n=t.child;t.contour=n.contour;var i=n.width+e,r=i;n=n.next;while(null!=n){var o=this.merge(t.contour,n.contour);n.offsetY=o+i,n.offsetX=0,i=n.width+e,r+=o+i,n=n.next}return r},mxCompactTreeLayout.prototype.merge=function(t,e){var n=0,i=0,r=0,o=t.lowerHead,s=e.upperHead;while(null!=s&&null!=o){var l=this.offset(n,i,s.dx,s.dy,o.dx,o.dy);i+=l,r+=l,n+s.dx<=o.dx?(n+=s.dx,i+=s.dy,s=s.next):(n-=o.dx,i-=o.dy,o=o.next)}if(null!=s){var a=this.bridge(t.upperTail,0,0,s,n,i);t.upperTail=null!=a.next?e.upperTail:a,t.lowerTail=e.lowerTail}else{a=this.bridge(e.lowerTail,n,i,o,0,0);null==a.next&&(t.lowerTail=a)}return t.lowerHead=e.lowerHead,r},mxCompactTreeLayout.prototype.offset=function(t,e,n,i,r,o){var s=0;if(r<=t||t+n<=0)return 0;var l=r*i-n*o;if(l>0)if(t<0){var a=t*i;s=a/n-e}else if(t>0){a=t*o;s=a/r-e}else s=-e;else if(r<t+n){a=(r-t)*i;s=o-(e+a/n)}else if(r>t+n){a=(n+t)*o;s=a/r-(e+i)}else s=o-(e+i);return s>0?s:0},mxCompactTreeLayout.prototype.bridge=function(t,e,n,i,r,o){var s=r+i.dx-e,l=0,a=0;0==i.dx?l=i.dy:(a=s*i.dy,l=a/i.dx);var h=this.createLine(s,l,i.next);return t.next=this.createLine(0,o+i.dy-l-n,h),h},mxCompactTreeLayout.prototype.createNode=function(t){var e=new Object;e.cell=t,e.x=0,e.y=0,e.width=0,e.height=0;var n=this.getVertexBounds(t);return null!=n&&(this.isHorizontal()?(e.width=n.height,e.height=n.width):(e.width=n.width,e.height=n.height)),e.offsetX=0,e.offsetY=0,e.contour=new Object,e},mxCompactTreeLayout.prototype.apply=function(t,e){var n=this.graph.getModel(),i=t.cell,r=n.getGeometry(i);if(null!=i&&null!=r){if(this.isVertexMovable(i)&&(r=this.setVertexLocation(i,t.x,t.y),this.resizeParent)){var o=n.getParent(i),s=mxCellPath.create(o);null==this.parentsChanged[s]&&(this.parentsChanged[s]=o)}e=null==e?new mxRectangle(r.x,r.y,r.width,r.height):new mxRectangle(Math.min(e.x,r.x),Math.min(e.y,r.y),Math.max(e.x+e.width,r.x+r.width),Math.max(e.y+e.height,r.y+r.height))}return e},mxCompactTreeLayout.prototype.createLine=function(t,e,n){var i=new Object;return i.dx=t,i.dy=e,i.next=n,i},mxCompactTreeLayout.prototype.adjustParents=function(){var t=[];for(var e in this.parentsChanged)t.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding,this.groupPaddingTop,this.groupPaddingRight,this.groupPaddingBottom,this.groupPaddingLeft)},mxCompactTreeLayout.prototype.localEdgeProcessing=function(t){this.processNodeOutgoing(t);var e=t.child;while(null!=e)this.localEdgeProcessing(e),e=e.next},mxCompactTreeLayout.prototype.processNodeOutgoing=function(t){var e=t.child,n=t.cell,i=0,r=[];while(null!=e){i++;var o=e.x;this.horizontal&&(o=e.y),r.push(new WeightedCellSorter(e,o)),e=e.next}r.sort(WeightedCellSorter.prototype.compare);var s=t.width,l=(i+1)*this.prefHozEdgeSep;s>l+2*this.prefHozEdgeSep&&(s-=2*this.prefHozEdgeSep);var a=s/i,h=a/2;s>l+2*this.prefHozEdgeSep&&(h+=this.prefHozEdgeSep);var u=this.minEdgeJetty-this.prefVertEdgeOff,d=0,c=this.getVertexBounds(n);e=t.child;for(var p=0;p<r.length;p++){for(var g=r[p].cell.cell,m=this.getVertexBounds(g),x=this.graph.getEdgesBetween(n,g,!1),y=[],f=0,A=0,C=0;C<x.length;C++)this.horizontal?(f=c.x+c.width,A=c.y+h,y.push(new mxPoint(f,A)),f=c.x+c.width+u,y.push(new mxPoint(f,A)),A=m.y+m.height/2,y.push(new mxPoint(f,A)),this.setEdgePoints(x[C],y)):(f=c.x+h,A=c.y+c.height,y.push(new mxPoint(f,A)),A=c.y+c.height+u,y.push(new mxPoint(f,A)),f=m.x+m.width/2,y.push(new mxPoint(f,A)),this.setEdgePoints(x[C],y));p<i/2?u+=this.prefVertEdgeOff:p>i/2&&(u-=this.prefVertEdgeOff),h+=a,d=Math.max(d,u)}},__mxOutput.mxCompactTreeLayout="undefined"!==typeof mxCompactTreeLayout?mxCompactTreeLayout:void 0,mxUtils.extend(mxRadialTreeLayout,mxCompactTreeLayout),mxRadialTreeLayout.prototype.angleOffset=.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(t){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(t).length},mxRadialTreeLayout.prototype.execute=function(t,e){this.parent=t,this.useBoundingBox=!1,this.edgeRouting=!1,mxCompactTreeLayout.prototype.execute.apply(this,arguments);var n=null,i=this.getVertexBounds(this.root);for(var r in this.centerX=i.x+i.width/2,this.centerY=i.y+i.height/2,this.visited){var o=this.getVertexBounds(this.visited[r]);n=null!=n?n:o.clone(),n.add(o)}this.calcRowDims([this.node],0);for(var s=0,l=0,a=0;a<this.row.length;a++){var h=(this.centerX-this.rowMinX[a]-this.nodeDistance)/this.rowRadi[a],u=(this.rowMaxX[a]-this.centerX-this.nodeDistance)/this.rowRadi[a];s=Math.max(s,h),l=Math.max(l,u)}for(a=0;a<this.row.length;a++)for(var d=this.centerX-this.nodeDistance-s*this.rowRadi[a],c=this.centerX+this.nodeDistance+l*this.rowRadi[a],p=c-d,g=0;g<this.row[a].length;g++){var m=this.row[a],x=m[g],y=(o=this.getVertexBounds(x.cell),(o.x+o.width/2-d)/p),f=2*Math.PI*y;x.theta=f}for(a=this.row.length-2;a>=0;a--)for(m=this.row[a],g=0;g<m.length;g++){x=m[g];var A=x.child,C=0,v=0;while(null!=A)v+=A.theta,C++,A=A.next;if(C>0){var E=v/C;if(E>x.theta&&g<m.length-1){var w=m[g+1].theta;x.theta=Math.min(E,w-Math.PI/10)}else if(E<x.theta&&g>0){var S=m[g-1].theta;x.theta=Math.max(E,S+Math.PI/10)}}}for(a=0;a<this.row.length;a++)for(g=0;g<this.row[a].length;g++){m=this.row[a],x=m[g],o=this.getVertexBounds(x.cell);this.setVertexLocation(x.cell,this.centerX-o.width/2+this.rowRadi[a]*Math.cos(x.theta),this.centerY-o.height/2+this.rowRadi[a]*Math.sin(x.theta))}},mxRadialTreeLayout.prototype.calcRowDims=function(t,e){if(null!=t&&0!=t.length){this.rowMinX[e]=this.centerX,this.rowMaxX[e]=this.centerX,this.rowMinCenX[e]=this.centerX,this.rowMaxCenX[e]=this.centerX,this.row[e]=[];for(var n=!1,i=0;i<t.length;i++){var r=null!=t[i]?t[i].child:null;while(null!=r){var o=r.cell,s=this.getVertexBounds(o);this.rowMinX[e]=Math.min(s.x,this.rowMinX[e]),this.rowMaxX[e]=Math.max(s.x+s.width,this.rowMaxX[e]),this.rowMinCenX[e]=Math.min(s.x+s.width/2,this.rowMinCenX[e]),this.rowMaxCenX[e]=Math.max(s.x+s.width/2,this.rowMaxCenX[e]),this.rowRadi[e]=s.y-this.getVertexBounds(this.root).y,null!=r.child&&(n=!0),this.row[e].push(r),r=r.next}}n&&this.calcRowDims(this.row[e],e+1)}},__mxOutput.mxRadialTreeLayout="undefined"!==typeof mxRadialTreeLayout?mxRadialTreeLayout:void 0,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.vertexArray,mxFastOrganicLayout.prototype.dispX,mxFastOrganicLayout.prototype.dispY,mxFastOrganicLayout.prototype.cellLocation,mxFastOrganicLayout.prototype.radius,mxFastOrganicLayout.prototype.radiusSquared,mxFastOrganicLayout.prototype.isMoveable,mxFastOrganicLayout.prototype.neighbours,mxFastOrganicLayout.prototype.indices,mxFastOrganicLayout.prototype.allowedToRun=!0,mxFastOrganicLayout.prototype.isVertexIgnored=function(t){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(t).length},mxFastOrganicLayout.prototype.execute=function(t){var e=this.graph.getModel();this.vertexArray=[];for(var n=this.graph.getChildVertices(t),i=0;i<n.length;i++)this.isVertexIgnored(n[i])||this.vertexArray.push(n[i]);var r=this.useInputOrigin?this.graph.getBoundingBoxFromGeometry(this.vertexArray):null,o=this.vertexArray.length;this.indices=[],this.dispX=[],this.dispY=[],this.cellLocation=[],this.isMoveable=[],this.neighbours=[],this.radius=[],this.radiusSquared=[],this.forceConstant<.001&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant;for(i=0;i<this.vertexArray.length;i++){var s=this.vertexArray[i];this.cellLocation[i]=[];var l=mxObjectIdentity.get(s);this.indices[l]=i;var a=this.getVertexBounds(s),h=a.width,u=a.height,d=a.x,c=a.y;this.cellLocation[i][0]=d+h/2,this.cellLocation[i][1]=c+u/2,this.radius[i]=Math.min(h,u),this.radiusSquared[i]=this.radius[i]*this.radius[i]}e.beginUpdate();try{for(i=0;i<o;i++){this.dispX[i]=0,this.dispY[i]=0,this.isMoveable[i]=this.isVertexMovable(this.vertexArray[i]);var p=this.graph.getConnections(this.vertexArray[i],t);n=this.graph.getOpposites(p,this.vertexArray[i]);this.neighbours[i]=[];for(var g=0;g<n.length;g++){this.resetEdges&&this.graph.resetEdge(p[g]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(p[g],!1);l=mxObjectIdentity.get(n[g]);var m=this.indices[l];this.neighbours[i][g]=null!=m?m:i}}for(this.temperature=this.initialTemp,0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(o)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}var x=null,y=null;for(i=0;i<this.vertexArray.length;i++){s=this.vertexArray[i];if(this.isVertexMovable(s)){a=this.getVertexBounds(s);if(null!=a){this.cellLocation[i][0]-=a.width/2,this.cellLocation[i][1]-=a.height/2;d=this.graph.snap(Math.round(this.cellLocation[i][0])),c=this.graph.snap(Math.round(this.cellLocation[i][1]));this.setVertexLocation(s,d,c),x=null==x?d:Math.min(x,d),y=null==y?c:Math.min(y,c)}}}var f=1-(x||0),A=1-(y||0);null!=r&&(f+=r.x,A+=r.y),this.graph.moveCells(this.vertexArray,f,A)}finally{e.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var t=0;t<this.vertexArray.length;t++)if(this.isMoveable[t]){var e=Math.sqrt(this.dispX[t]*this.dispX[t]+this.dispY[t]*this.dispY[t]);e<.001&&(e=.001);var n=this.dispX[t]/e*Math.min(e,this.temperature),i=this.dispY[t]/e*Math.min(e,this.temperature);this.dispX[t]=0,this.dispY[t]=0,this.cellLocation[t][0]+=n,this.cellLocation[t][1]+=i}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var t=0;t<this.vertexArray.length;t++)for(var e=0;e<this.neighbours[t].length;e++){var n=this.neighbours[t][e];if(t!=n&&this.isMoveable[t]&&this.isMoveable[n]){var i=this.cellLocation[t][0]-this.cellLocation[n][0],r=this.cellLocation[t][1]-this.cellLocation[n][1],o=i*i+r*r-this.radiusSquared[t]-this.radiusSquared[n];o<this.minDistanceLimitSquared&&(o=this.minDistanceLimitSquared);var s=Math.sqrt(o),l=o/this.forceConstant,a=i/s*l,h=r/s*l;this.dispX[t]-=a,this.dispY[t]-=h,this.dispX[n]+=a,this.dispY[n]+=h}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var t=this.vertexArray.length,e=0;e<t;e++)for(var n=e;n<t;n++){if(!this.allowedToRun)return;if(n!=e&&this.isMoveable[e]&&this.isMoveable[n]){var i=this.cellLocation[e][0]-this.cellLocation[n][0],r=this.cellLocation[e][1]-this.cellLocation[n][1];0==i&&(i=.01+Math.random()),0==r&&(r=.01+Math.random());var o=Math.sqrt(i*i+r*r),s=o-this.radius[e]-this.radius[n];if(s>this.maxDistanceLimit)continue;s<this.minDistanceLimit&&(s=this.minDistanceLimit);var l=this.forceConstantSquared/s,a=i/o*l,h=r/o*l;this.dispX[e]+=a,this.dispY[e]+=h,this.dispX[n]-=a,this.dispY[n]-=h}}},mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1-this.iteration/this.maxIterations)},__mxOutput.mxFastOrganicLayout="undefined"!==typeof mxFastOrganicLayout?mxFastOrganicLayout:void 0,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(t){var e=this.graph.getModel();e.beginUpdate();try{for(var n=0,i=null,r=null,o=[],s=e.getChildCount(t),l=0;l<s;l++){var a=e.getChildAt(t,l);if(this.isVertexIgnored(a))this.isEdgeIgnored(a)||(this.resetEdges&&this.graph.resetEdge(a),this.disableEdgeStyle&&this.setEdgeStyleEnabled(a,!1));else{o.push(a);var h=this.getVertexBounds(a);i=null==i?h.y:Math.min(i,h.y),r=null==r?h.x:Math.min(r,h.x),n=Math.max(n,Math.max(h.width,h.height))}}var u=this.getRadius(o.length,n);this.moveCircle&&(r=this.x0,i=this.y0),this.circle(o,u,r,i)}finally{e.endUpdate()}},mxCircleLayout.prototype.getRadius=function(t,e){return Math.max(t*e/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(t,e,n,i){for(var r=t.length,o=2*Math.PI/r,s=0;s<r;s++)this.isVertexMovable(t[s])&&this.setVertexLocation(t[s],Math.round(n+e+e*Math.sin(s*o)),Math.round(i+e+e*Math.cos(s*o)))},__mxOutput.mxCircleLayout="undefined"!==typeof mxCircleLayout?mxCircleLayout:void 0,mxParallelEdgeLayout.prototype=new mxGraphLayout,mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout,mxParallelEdgeLayout.prototype.spacing=20,mxParallelEdgeLayout.prototype.checkOverlap=!1,mxParallelEdgeLayout.prototype.execute=function(t,e){var n=this.findParallels(t,e);this.graph.model.beginUpdate();try{for(var i in n){var r=n[i];r.length>1&&this.layout(r)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(t,e){var n=[],i=mxUtils.bind(this,(function(t){if(!this.isEdgeIgnored(t)){var e=this.getEdgeId(t);null!=e&&(null==n[e]&&(n[e]=[]),n[e].push(t))}}));if(null!=e)for(var r=0;r<e.length;r++)i(e[r]);else{var o=this.graph.getModel(),s=o.getChildCount(t);for(r=0;r<s;r++)i(o.getChildAt(t,r))}return n},mxParallelEdgeLayout.prototype.getEdgeId=function(t){var e=this.graph.getView(),n=e.getVisibleTerminal(t,!0),i=e.getVisibleTerminal(t,!1),r="";if(null!=n&&null!=i){if(n=mxObjectIdentity.get(n),i=mxObjectIdentity.get(i),this.checkOverlap){var o=this.graph.view.getState(t);if(null!=o&&null!=o.absolutePoints){for(var s=[],l=0;l<o.absolutePoints.length;l++){var a=o.absolutePoints[l];null!=a&&s.push(a.x,a.y)}r=s.join(",")}}return(n>i?i+"-"+n:n+"-"+i)+r}return null},mxParallelEdgeLayout.prototype.layout=function(t){var e=t[0],n=this.graph.getView(),i=this.graph.getModel(),r=i.getGeometry(n.getVisibleTerminal(e,!0)),o=i.getGeometry(n.getVisibleTerminal(e,!1));if(r==o)for(var s=r.x+r.width+this.spacing,l=r.y+r.height/2,a=0;a<t.length;a++)this.route(t[a],s,l),s+=this.spacing;else if(null!=r&&null!=o){var h=r.x+r.width/2,u=r.y+r.height/2,d=o.x+o.width/2,c=o.y+o.height/2,p=d-h,g=c-u,m=Math.sqrt(p*p+g*g);if(m>0){s=h+p/2,l=u+g/2;var x=g*this.spacing/m,y=p*this.spacing/m;s+=x*(t.length-1)/2,l-=y*(t.length-1)/2;for(a=0;a<t.length;a++)this.route(t[a],s,l),s-=x,l+=y}}},mxParallelEdgeLayout.prototype.route=function(t,e,n){this.graph.isCellMovable(t)&&this.setEdgePoints(t,[new mxPoint(e,n)])},__mxOutput.mxParallelEdgeLayout="undefined"!==typeof mxParallelEdgeLayout?mxParallelEdgeLayout:void 0,mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(t,e,n){null!=this.master?this.master.moveCell.apply(this.master,arguments):this.layouts[0].moveCell.apply(this.layouts[0],arguments)},mxCompositeLayout.prototype.execute=function(t){var e=this.graph.getModel();e.beginUpdate();try{for(var n=0;n<this.layouts.length;n++)this.layouts[n].execute.apply(this.layouts[n],arguments)}finally{e.endUpdate()}},__mxOutput.mxCompositeLayout="undefined"!==typeof mxCompositeLayout?mxCompositeLayout:void 0,mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(t){for(var e=this.graph.view,n=this.graph.getModel(),i=[],r=[],o=n.getChildCount(t),s=0;s<o;s++){var l=n.getChildAt(t,s),a=e.getState(l);null!=a&&(this.isVertexIgnored(l)?this.isEdgeIgnored(l)||i.push(a):r.push(a))}this.placeLabels(r,i)},mxEdgeLabelLayout.prototype.placeLabels=function(t,e){var n=this.graph.getModel();n.beginUpdate();try{for(var i=0;i<e.length;i++){var r=e[i];if(null!=r&&null!=r.text&&null!=r.text.boundingBox)for(var o=0;o<t.length;o++){var s=t[o];null!=s&&this.avoid(r,s)}}}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(t,e){var n=this.graph.getModel(),i=t.text.boundingBox;if(mxUtils.intersects(i,e)){var r=-i.y-i.height+e.y,o=-i.y+e.y+e.height,s=Math.abs(r)<Math.abs(o)?r:o,l=-i.x-i.width+e.x,a=-i.x+e.x+e.width,h=Math.abs(l)<Math.abs(a)?l:a;Math.abs(h)<Math.abs(s)?s=0:h=0;var u=n.getGeometry(t.cell);null!=u&&(u=u.clone(),null!=u.offset?(u.offset.x+=h,u.offset.y+=s):u.offset=new mxPoint(h,s),n.setGeometry(t.cell,u))}},__mxOutput.mxEdgeLabelLayout="undefined"!==typeof mxEdgeLabelLayout?mxEdgeLabelLayout:void 0,mxGraphAbstractHierarchyCell.prototype.maxRank=-1,mxGraphAbstractHierarchyCell.prototype.minRank=-1,mxGraphAbstractHierarchyCell.prototype.x=null,mxGraphAbstractHierarchyCell.prototype.y=null,mxGraphAbstractHierarchyCell.prototype.width=0,mxGraphAbstractHierarchyCell.prototype.height=0,mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.temp=null,mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells=function(t){return null},mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells=function(t){return null},mxGraphAbstractHierarchyCell.prototype.isEdge=function(){return!1},mxGraphAbstractHierarchyCell.prototype.isVertex=function(){return!1},mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable=function(t){return null},mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable=function(t,e){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(t,e){this.isVertex()?this.x[0]=e:this.isEdge()&&(this.x[t-this.minRank-1]=e)},mxGraphAbstractHierarchyCell.prototype.getX=function(t){return this.isVertex()?this.x[0]:this.isEdge()?this.x[t-this.minRank-1]:0},mxGraphAbstractHierarchyCell.prototype.setY=function(t,e){this.isVertex()?this.y[0]=e:this.isEdge()&&(this.y[t-this.minRank-1]=e)},__mxOutput.mxGraphAbstractHierarchyCell="undefined"!==typeof mxGraphAbstractHierarchyCell?mxGraphAbstractHierarchyCell:void 0,mxGraphHierarchyNode.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyNode.prototype.constructor=mxGraphHierarchyNode,mxGraphHierarchyNode.prototype.cell=null,mxGraphHierarchyNode.prototype.id=null,mxGraphHierarchyNode.prototype.connectsAsTarget=null,mxGraphHierarchyNode.prototype.connectsAsSource=null,mxGraphHierarchyNode.prototype.hashCode=!1,mxGraphHierarchyNode.prototype.getRankValue=function(t){return this.maxRank},mxGraphHierarchyNode.prototype.getNextLayerConnectedCells=function(t){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[],this.nextLayerConnectedCells[0]=[];for(var e=0;e<this.connectsAsTarget.length;e++){var n=this.connectsAsTarget[e];-1==n.maxRank||n.maxRank==t+1?this.nextLayerConnectedCells[0].push(n.source):this.nextLayerConnectedCells[0].push(n)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(t){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var e=0;e<this.connectsAsSource.length;e++){var n=this.connectsAsSource[e];-1==n.minRank||n.minRank==t-1?this.previousLayerConnectedCells[0].push(n.target):this.previousLayerConnectedCells[0].push(n)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(t){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(t,e){this.temp[0]=e},mxGraphHierarchyNode.prototype.isAncestor=function(t){if(null!=t&&null!=this.hashCode&&null!=t.hashCode&&this.hashCode.length<t.hashCode.length){if(this.hashCode==t.hashCode)return!0;if(null==this.hashCode||null==this.hashCode)return!1;for(var e=0;e<this.hashCode.length;e++)if(this.hashCode[e]!=t.hashCode[e])return!1;return!0}return!1},mxGraphHierarchyNode.prototype.getCoreCell=function(){return this.cell},__mxOutput.mxGraphHierarchyNode="undefined"!==typeof mxGraphHierarchyNode?mxGraphHierarchyNode:void 0,mxGraphHierarchyEdge.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyEdge.prototype.constructor=mxGraphHierarchyEdge,mxGraphHierarchyEdge.prototype.edges=null,mxGraphHierarchyEdge.prototype.ids=null,mxGraphHierarchyEdge.prototype.source=null,mxGraphHierarchyEdge.prototype.target=null,mxGraphHierarchyEdge.prototype.isReversed=!1,mxGraphHierarchyEdge.prototype.invert=function(t){var e=this.source;this.source=this.target,this.target=e,this.isReversed=!this.isReversed},mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells=function(t){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[];for(var e=0;e<this.temp.length;e++)this.nextLayerConnectedCells[e]=[],e==this.temp.length-1?this.nextLayerConnectedCells[e].push(this.source):this.nextLayerConnectedCells[e].push(this)}return this.nextLayerConnectedCells[t-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(t){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var e=0;e<this.temp.length;e++)this.previousLayerConnectedCells[e]=[],0==e?this.previousLayerConnectedCells[e].push(this.target):this.previousLayerConnectedCells[e].push(this)}return this.previousLayerConnectedCells[t-this.minRank-1]},mxGraphHierarchyEdge.prototype.isEdge=function(){return!0},mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable=function(t){return this.temp[t-this.minRank-1]},mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable=function(t,e){this.temp[t-this.minRank-1]=e},mxGraphHierarchyEdge.prototype.getCoreCell=function(){return null!=this.edges&&this.edges.length>0?this.edges[0]:null},__mxOutput.mxGraphHierarchyEdge="undefined"!==typeof mxGraphHierarchyEdge?mxGraphHierarchyEdge:void 0,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(t,e,n){for(var i=t.getGraph(),r=0;r<e.length;r++){n[r]=new mxGraphHierarchyNode(e[r]),this.vertexMapper.put(e[r],n[r]);var o=t.getEdges(e[r]);n[r].connectsAsSource=[];for(var s=0;s<o.length;s++){var l=t.getVisibleTerminal(o[s],!1);if(l!=e[r]&&t.graph.model.isVertex(l)&&!t.isVertexIgnored(l)){var a=t.getEdgesBetween(e[r],l,!1),h=t.getEdgesBetween(e[r],l,!0);if(null!=a&&a.length>0&&null==this.edgeMapper.get(a[0])&&2*h.length>=a.length){for(var u=new mxGraphHierarchyEdge(a),d=0;d<a.length;d++){var c=a[d];this.edgeMapper.put(c,u),i.resetEdge(c),t.disableEdgeStyle&&(t.setEdgeStyleEnabled(c,!1),t.setOrthogonalEdge(c,!0))}u.source=n[r],mxUtils.indexOf(n[r].connectsAsSource,u)<0&&n[r].connectsAsSource.push(u)}}}n[r].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var t=[];if(null!=this.roots)for(var e=0;e<this.roots.length;e++){var n=this.vertexMapper.get(this.roots[e]);null!=n&&t.push(n)}var i=this.vertexMapper.getValues();for(e=0;e<i.length;e++)i[e].temp[0]=-1;var r=t.slice();while(t.length>0){var o;n=t[0];c=n.connectsAsTarget,o=n.connectsAsSource;var s=!0,l=this.SOURCESCANSTARTRANK;for(e=0;e<c.length;e++){var a=c[e];if(5270620!=a.temp[0]){s=!1;break}var h=a.source;l=Math.min(l,h.temp[0]-1)}if(s){if(n.temp[0]=l,this.maxRank=Math.min(this.maxRank,l),null!=o)for(e=0;e<o.length;e++){a=o[e];a.temp[0]=5270620;h=a.target;-1==h.temp[0]&&(t.push(h),h.temp[0]=-2)}t.shift()}else{var u=t.shift();if(t.push(n),u==n&&1==t.length)break}}for(e=0;e<i.length;e++)i[e].temp[0]-=this.maxRank;for(e=0;e<r.length;e++){n=r[e];for(var d=0,c=n.connectsAsSource,p=0;p<c.length;p++){a=c[p],h=a.target;n.temp[0]=Math.max(d,h.temp[0]+1),d=n.temp[0]}}this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var t=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)t[e]=[],this.ranks[e]=t[e];var n=null;if(null!=this.roots){var i=this.roots;n=[];for(e=0;e<i.length;e++){var r=i[e],o=this.vertexMapper.get(r);n[e]=o}}this.visit((function(e,n,i,r,o){if(0==o&&n.maxRank<0&&n.minRank<0&&(t[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=t[n.maxRank].length-1),null!=e&&null!=i){var s=e.maxRank-n.maxRank;if(s>1){i.maxRank=e.maxRank,i.minRank=n.maxRank,i.temp=[],i.x=[],i.y=[];for(var l=i.minRank+1;l<i.maxRank;l++)t[l].push(i),i.setGeneralPurposeVariable(l,t[l].length-1)}}}),n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(t,e,n,i){if(null!=e){for(var r=0;r<e.length;r++){var o=e[r];null!=o&&(null==i&&(i=new Object),n?(o.hashCode=[],o.hashCode[0]=this.dfsCount,o.hashCode[1]=r,this.extendedDfs(null,o,null,t,i,o.hashCode,r,0)):this.dfs(null,o,null,t,i,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(t,e,n,i,r,o){if(null!=e){var s=e.id;if(null==r[s]){r[s]=e,i(t,e,n,o,0);for(var l=e.connectsAsSource.slice(),a=0;a<l.length;a++){var h=l[a],u=h.target;this.dfs(e,u,h,i,r,o+1)}}else i(t,e,n,o,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(t,e,n,i,r,o,s,l){if(null!=e){if(null!=t&&(null==e.hashCode||e.hashCode[0]!=t.hashCode[0])){var a=t.hashCode.length+1;e.hashCode=t.hashCode.slice(),e.hashCode[a-1]=s}var h=e.id;if(null==r[h]){r[h]=e,i(t,e,n,l,0);for(var u=e.connectsAsSource.slice(),d=0;d<u.length;d++){var c=u[d],p=c.target;this.extendedDfs(e,p,c,i,r,e.hashCode,d,l+1)}}else i(t,e,n,l,1)}},__mxOutput.mxGraphHierarchyModel="undefined"!==typeof mxGraphHierarchyModel?mxGraphHierarchyModel:void 0,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,mxSwimlaneModel.prototype.tightenToSource=!1,mxSwimlaneModel.prototype.ranksPerGroup=null,mxSwimlaneModel.prototype.createInternalCells=function(t,e,n){for(var i=t.getGraph(),r=t.swimlanes,o=0;o<e.length;o++){n[o]=new mxGraphHierarchyNode(e[o]),this.vertexMapper.put(e[o],n[o]),n[o].swimlaneIndex=-1;for(var s=0;s<r.length;s++)if(i.model.getParent(e[o])==r[s]){n[o].swimlaneIndex=s;break}var l=t.getEdges(e[o]);n[o].connectsAsSource=[];for(var a=0;a<l.length;a++){var h=t.getVisibleTerminal(l[a],!1);if(h!=e[o]&&t.graph.model.isVertex(h)&&!t.isVertexIgnored(h)){var u=t.getEdgesBetween(e[o],h,!1),d=t.getEdgesBetween(e[o],h,!0);if(null!=u&&u.length>0&&null==this.edgeMapper.get(u[0])&&2*d.length>=u.length){for(var c=new mxGraphHierarchyEdge(u),p=0;p<u.length;p++){var g=u[p];this.edgeMapper.put(g,c),i.resetEdge(g),t.disableEdgeStyle&&(t.setEdgeStyleEnabled(g,!1),t.setOrthogonalEdge(g,!0))}c.source=n[o],mxUtils.indexOf(n[o].connectsAsSource,c)<0&&n[o].connectsAsSource.push(c)}}}n[o].temp[0]=0}},mxSwimlaneModel.prototype.initialRank=function(){this.ranksPerGroup=[];var t=[],e=new Object;if(null!=this.roots)for(var n=0;n<this.roots.length;n++){var i=this.vertexMapper.get(this.roots[n]);this.maxChainDfs(null,i,null,e,0),null!=i&&t.push(i)}var r=[],o=[];for(n=this.ranksPerGroup.length-1;n>=0;n--)n==this.ranksPerGroup.length-1?r[n]=0:r[n]=o[n+1]+1,o[n]=r[n]+this.ranksPerGroup[n];this.maxRank=o[0];var s=this.vertexMapper.getValues();for(n=0;n<s.length;n++)s[n].temp[0]=-1;t.slice();while(t.length>0){var l,a;i=t[0];l=i.connectsAsTarget,a=i.connectsAsSource;var h=!0,u=o[0];for(n=0;n<l.length;n++){var d=l[n];if(5270620!=d.temp[0]){h=!1;break}var c=d.source;u=Math.min(u,c.temp[0]-1)}if(h){if(u>o[i.swimlaneIndex]&&(u=o[i.swimlaneIndex]),i.temp[0]=u,null!=a)for(n=0;n<a.length;n++){d=a[n];d.temp[0]=5270620;c=d.target;-1==c.temp[0]&&(t.push(c),c.temp[0]=-2)}t.shift()}else{var p=t.shift();if(t.push(i),p==i&&1==t.length)break}}},mxSwimlaneModel.prototype.maxChainDfs=function(t,e,n,i,r){if(null!=e){var o=mxCellPath.create(e.cell);if(null==i[o]){i[o]=e;var s=e.swimlaneIndex;(null==this.ranksPerGroup[s]||this.ranksPerGroup[s]<r)&&(this.ranksPerGroup[s]=r);for(var l=e.connectsAsSource.slice(),a=0;a<l.length;a++){var h=l[a],u=h.target;e.swimlaneIndex<u.swimlaneIndex?this.maxChainDfs(e,u,h,mxUtils.clone(i,null,!0),0):e.swimlaneIndex==u.swimlaneIndex&&this.maxChainDfs(e,u,h,mxUtils.clone(i,null,!0),r+1)}}}},mxSwimlaneModel.prototype.fixRanks=function(){var t=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)t[e]=[],this.ranks[e]=t[e];var n=null;if(null!=this.roots){var i=this.roots;n=[];for(e=0;e<i.length;e++){var r=i[e],o=this.vertexMapper.get(r);n[e]=o}}this.visit((function(e,n,i,r,o){if(0==o&&n.maxRank<0&&n.minRank<0&&(t[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=t[n.maxRank].length-1),null!=e&&null!=i){var s=e.maxRank-n.maxRank;if(s>1){i.maxRank=e.maxRank,i.minRank=n.maxRank,i.temp=[],i.x=[],i.y=[];for(var l=i.minRank+1;l<i.maxRank;l++)t[l].push(i),i.setGeneralPurposeVariable(l,t[l].length-1)}}}),n,!1,null)},mxSwimlaneModel.prototype.visit=function(t,e,n,i){if(null!=e){for(var r=0;r<e.length;r++){var o=e[r];null!=o&&(null==i&&(i=new Object),n?(o.hashCode=[],o.hashCode[0]=this.dfsCount,o.hashCode[1]=r,this.extendedDfs(null,o,null,t,i,o.hashCode,r,0)):this.dfs(null,o,null,t,i,0))}this.dfsCount++}},mxSwimlaneModel.prototype.dfs=function(t,e,n,i,r,o){if(null!=e){var s=e.id;if(null==r[s]){r[s]=e,i(t,e,n,o,0);for(var l=e.connectsAsSource.slice(),a=0;a<l.length;a++){var h=l[a],u=h.target;this.dfs(e,u,h,i,r,o+1)}}else i(t,e,n,o,1)}},mxSwimlaneModel.prototype.extendedDfs=function(t,e,n,i,r,o,s,l){if(null!=e){if(null!=t&&(null==e.hashCode||e.hashCode[0]!=t.hashCode[0])){var a=t.hashCode.length+1;e.hashCode=t.hashCode.slice(),e.hashCode[a-1]=s}var h=e.id;if(null==r[h]){r[h]=e,i(t,e,n,l,0);for(var u=e.connectsAsSource.slice(),d=e.connectsAsTarget.slice(),c=0;c<u.length;c++){var p=u[c],g=p.target;e.swimlaneIndex<=g.swimlaneIndex&&this.extendedDfs(e,g,p,i,r,e.hashCode,c,l+1)}for(c=0;c<d.length;c++){p=d[c],g=p.source;e.swimlaneIndex<g.swimlaneIndex&&this.extendedDfs(e,g,p,i,r,e.hashCode,c,l+1)}}else i(t,e,n,l,1)}},__mxOutput.mxSwimlaneModel="undefined"!==typeof mxSwimlaneModel?mxSwimlaneModel:void 0,mxHierarchicalLayoutStage.prototype.execute=function(t){},__mxOutput.mxHierarchicalLayoutStage="undefined"!==typeof mxHierarchicalLayoutStage?mxHierarchicalLayoutStage:void 0,mxMedianHybridCrossingReduction.prototype=new mxHierarchicalLayoutStage,mxMedianHybridCrossingReduction.prototype.constructor=mxMedianHybridCrossingReduction,mxMedianHybridCrossingReduction.prototype.layout=null,mxMedianHybridCrossingReduction.prototype.maxIterations=24,mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null,mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0,mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0,mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2,mxMedianHybridCrossingReduction.prototype.execute=function(t){var e=this.layout.getModel();this.nestedBestRanks=[];for(var n=0;n<e.ranks.length;n++)this.nestedBestRanks[n]=e.ranks[n].slice();var i=0,r=this.calculateCrossings(e);for(n=0;n<this.maxIterations&&i<this.maxNoImprovementIterations;n++){this.weightedMedian(n,e),this.transpose(n,e);var o=this.calculateCrossings(e);if(o<r){r=o,i=0;for(var s=0;s<this.nestedBestRanks.length;s++)for(var l=e.ranks[s],a=0;a<l.length;a++){var h=l[a];this.nestedBestRanks[s][h.getGeneralPurposeVariable(s)]=h}}else{i++;for(s=0;s<this.nestedBestRanks.length;s++)for(l=e.ranks[s],a=0;a<l.length;a++){h=l[a];h.setGeneralPurposeVariable(s,a)}}if(0==r)break}var u=[],d=[];for(n=0;n<e.maxRank+1;n++)d[n]=[],u[n]=d[n];for(n=0;n<this.nestedBestRanks.length;n++)for(s=0;s<this.nestedBestRanks[n].length;s++)d[n].push(this.nestedBestRanks[n][s]);e.ranks=u},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(t){for(var e=t.ranks.length,n=0,i=1;i<e;i++)n+=this.calculateRankCrossing(i,t);return n},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(t,e){for(var n=0,i=e.ranks[t],r=e.ranks[t-1],o=[],s=0;s<i.length;s++){for(var l=i[s],a=l.getGeneralPurposeVariable(t),h=l.getPreviousLayerConnectedCells(t),u=[],d=0;d<h.length;d++){var c=h[d],p=c.getGeneralPurposeVariable(t-1);u.push(p)}u.sort((function(t,e){return t-e})),o[a]=u}var g=[];for(s=0;s<o.length;s++)g=g.concat(o[s]);var m=1;while(m<r.length)m<<=1;var x=2*m-1;m-=1;var y=[];for(s=0;s<x;++s)y[s]=0;for(s=0;s<g.length;s++){var f=g[s],A=f+m;++y[A];while(A>0)A%2&&(n+=y[A+1]),A=A-1>>1,++y[A]}return n},mxMedianHybridCrossingReduction.prototype.transpose=function(t,e){var n=!0,i=0,r=10;while(n&&i++<r){var o=t%2==1&&i%2==1;n=!1;for(var s=0;s<e.ranks.length;s++){for(var l=e.ranks[s],a=[],h=0;h<l.length;h++){var u=l[h],d=u.getGeneralPurposeVariable(s);d<0&&(d=h),a[d]=u}var c=null,p=null,g=null,m=null,x=null,y=null,f=null,A=null,C=null,v=null;for(h=0;h<l.length-1;h++){if(0==h){C=a[h],c=C.getNextLayerConnectedCells(s),p=C.getPreviousLayerConnectedCells(s),x=[],y=[];for(var E=0;E<c.length;E++)x[E]=c[E].getGeneralPurposeVariable(s+1);for(E=0;E<p.length;E++)y[E]=p[E].getGeneralPurposeVariable(s-1)}else c=g,p=m,x=f,y=A,C=v;v=a[h+1],g=v.getNextLayerConnectedCells(s),m=v.getPreviousLayerConnectedCells(s),f=[],A=[];for(E=0;E<g.length;E++)f[E]=g[E].getGeneralPurposeVariable(s+1);for(E=0;E<m.length;E++)A[E]=m[E].getGeneralPurposeVariable(s-1);var w=0,S=0;for(E=0;E<x.length;E++)for(var b=0;b<f.length;b++)x[E]>f[b]&&w++,x[E]<f[b]&&S++;for(E=0;E<y.length;E++)for(b=0;b<A.length;b++)y[E]>A[b]&&w++,y[E]<A[b]&&S++;if(S<w||S==w&&o){var T=C.getGeneralPurposeVariable(s);C.setGeneralPurposeVariable(s,v.getGeneralPurposeVariable(s)),v.setGeneralPurposeVariable(s,T),g=c,m=p,f=x,A=y,v=C,o||(n=!0)}}}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(t,e){var n=t%2==0;if(n)for(var i=e.maxRank-1;i>=0;i--)this.medianRank(i,n);else for(i=1;i<e.maxRank;i++)this.medianRank(i,n)},mxMedianHybridCrossingReduction.prototype.medianRank=function(t,e){for(var n=this.nestedBestRanks[t].length,i=[],r=[],o=0;o<n;o++){var s,l,a=this.nestedBestRanks[t][o],h=new MedianCellSorter;h.cell=a,s=e?a.getNextLayerConnectedCells(t):a.getPreviousLayerConnectedCells(t),l=e?t+1:t-1,null!=s&&0!=s.length?(h.medianValue=this.medianValue(s,l),i.push(h)):r[a.getGeneralPurposeVariable(t)]=!0}i.sort(MedianCellSorter.prototype.compare);for(o=0;o<n;o++)if(null==r[o]){a=i.shift().cell;a.setGeneralPurposeVariable(t,o)}},mxMedianHybridCrossingReduction.prototype.medianValue=function(t,e){for(var n=[],i=0,r=0;r<t.length;r++){var o=t[r];n[i++]=o.getGeneralPurposeVariable(e)}if(n.sort((function(t,e){return t-e})),i%2==1)return n[Math.floor(i/2)];if(2==i)return(n[0]+n[1])/2;var s=i/2,l=n[s-1]-n[0],a=n[i-1]-n[s];return(n[s-1]*a+n[s]*l)/(l+a)},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(t,e){return null!=t&&null!=e?e.medianValue>t.medianValue?-1:e.medianValue<t.medianValue?1:0:0},__mxOutput.mxMedianHybridCrossingReduction="undefined"!==typeof mxMedianHybridCrossingReduction?mxMedianHybridCrossingReduction:void 0,mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(t){for(var e=this.layout.getModel(),n=new Object,i=e.vertexMapper.getValues(),r=new Object,o=0;o<i.length;o++)r[i[o].id]=i[o];var s=null;if(null!=e.roots){var l=e.roots;s=[];for(o=0;o<l.length;o++)s[o]=e.vertexMapper.get(l[o])}e.visit((function(t,e,i,o,s){e.isAncestor(t)&&(i.invert(),mxUtils.remove(i,t.connectsAsSource),t.connectsAsTarget.push(i),mxUtils.remove(i,e.connectsAsTarget),e.connectsAsSource.push(i)),n[e.id]=e,delete r[e.id]}),s,!0,null);var a=mxUtils.clone(n,null,!0);e.visit((function(t,e,i,o,s){e.isAncestor(t)&&(i.invert(),mxUtils.remove(i,t.connectsAsSource),e.connectsAsSource.push(i),t.connectsAsTarget.push(i),mxUtils.remove(i,e.connectsAsTarget)),n[e.id]=e,delete r[e.id]}),r,!0,a)},__mxOutput.mxMinimumCycleRemover="undefined"!==typeof mxMinimumCycleRemover?mxMinimumCycleRemover:void 0,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 t=this.layout.getModel();mxLog.show(),mxLog.writeln("======Coord assignment debug=======");for(var e=0;e<t.ranks.length;e++){mxLog.write("Rank ",e," : ");for(var n=t.ranks[e],i=0;i<n.length;i++){var r=n[i];mxLog.write(r.getGeneralPurposeVariable(e)," ")}mxLog.writeln()}mxLog.writeln("====================================")},mxCoordinateAssignment.prototype.execute=function(t){this.jettyPositions=Object();var e=this.layout.getModel();this.currentXDelta=0,this.initialCoords(this.layout.getGraph(),e),this.fineTuning&&this.minNode(e);var n=1e8;if(this.fineTuning)for(var i=0;i<this.maxIterations;i++){if(0!=i&&(this.medianPos(i,e),this.minNode(e)),this.currentXDelta<n){for(var r=0;r<e.ranks.length;r++)for(var o=e.ranks[r],s=0;s<o.length;s++){var l=o[s];l.setX(r,l.getGeneralPurposeVariable(r))}n=this.currentXDelta}else for(r=0;r<e.ranks.length;r++)for(o=e.ranks[r],s=0;s<o.length;s++){l=o[s];l.setGeneralPurposeVariable(r,l.getX(r))}this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(t){for(var e=[],n=new mxDictionary,i=[],r=0;r<=t.maxRank;r++){i[r]=t.ranks[r];for(var o=0;o<i[r].length;o++){var s=i[r][o],l=new WeightedCellSorter(s,r);l.rankIndex=o,l.visited=!0,e.push(l),n.put(s,l)}}var a=10*e.length,h=0,u=1;while(e.length>0&&h<=a){var d=e.shift(),c=d.cell,p=d.weightedValue,g=parseInt(d.rankIndex),m=c.getNextLayerConnectedCells(p),x=c.getPreviousLayerConnectedCells(p),y=m.length,f=x.length,A=this.medianXValue(m,p+1),C=this.medianXValue(x,p-1),v=y+f,E=c.getGeneralPurposeVariable(p),w=E;v>0&&(w=(A*y+C*f)/v);var S=!1;if(w<E-u)if(0==g)c.setGeneralPurposeVariable(p,w),S=!0;else{var b=i[p][g-1],T=b.getGeneralPurposeVariable(p);T=T+b.width/2+this.intraCellSpacing+c.width/2,T<w?(c.setGeneralPurposeVariable(p,w),S=!0):T<c.getGeneralPurposeVariable(p)-u&&(c.setGeneralPurposeVariable(p,T),S=!0)}else if(w>E+u){var L=i[p].length;if(g==L-1)c.setGeneralPurposeVariable(p,w),S=!0;else{var I=i[p][g+1],M=I.getGeneralPurposeVariable(p);M=M-I.width/2-this.intraCellSpacing-c.width/2,M>w?(c.setGeneralPurposeVariable(p,w),S=!0):M>c.getGeneralPurposeVariable(p)+u&&(c.setGeneralPurposeVariable(p,M),S=!0)}}if(S){for(r=0;r<m.length;r++){var R=m[r],O=n.get(R);null!=O&&0==O.visited&&(O.visited=!0,e.push(O))}for(r=0;r<x.length;r++){R=x[r],O=n.get(R);null!=O&&0==O.visited&&(O.visited=!0,e.push(O))}}d.visited=!1,h++}},mxCoordinateAssignment.prototype.medianPos=function(t,e){var n=t%2==0;if(n)for(var i=e.maxRank;i>0;i--)this.rankMedianPosition(i-1,e,i);else for(i=0;i<e.maxRank-1;i++)this.rankMedianPosition(i+1,e,i)},mxCoordinateAssignment.prototype.rankMedianPosition=function(t,e,n){for(var i=e.ranks[t],r=[],o=new Object,s=0;s<i.length;s++){var l=i[s];r[s]=new WeightedCellSorter,r[s].cell=l,r[s].rankIndex=s,o[l.id]=r[s];var a=null;a=n<t?l.getPreviousLayerConnectedCells(t):l.getNextLayerConnectedCells(t),r[s].weightedValue=this.calculatedWeightedValue(l,a)}r.sort(WeightedCellSorter.prototype.compare);for(s=0;s<r.length;s++){var h=0,u=r[s].cell,d=(a=null,0);a=n<t?u.getPreviousLayerConnectedCells(t).slice():u.getNextLayerConnectedCells(t).slice(),null!=a&&(h=a.length,d=h>0?this.medianXValue(a,n):u.getGeneralPurposeVariable(t));for(var c=0,p=-1e8,g=r[s].rankIndex-1;g>=0;){var m=o[i[g].id];if(null!=m){var x=m.cell;m.visited?(p=x.getGeneralPurposeVariable(t)+x.width/2+this.intraCellSpacing+c+u.width/2,g=-1):(c+=x.width+this.intraCellSpacing,g--)}}var y=0,f=1e8;for(g=r[s].rankIndex+1;g<r.length;){m=o[i[g].id];if(null!=m){var A=m.cell;m.visited?(f=A.getGeneralPurposeVariable(t)-A.width/2-this.intraCellSpacing-y-u.width/2,g=r.length):(y+=A.width+this.intraCellSpacing,g++)}}d>=p&&d<=f?u.setGeneralPurposeVariable(t,d):d<p?(u.setGeneralPurposeVariable(t,p),this.currentXDelta+=p-d):d>f&&(u.setGeneralPurposeVariable(t,f),this.currentXDelta+=d-f),r[s].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(t,e){for(var n=0,i=0;i<e.length;i++){var r=e[i];t.isVertex()&&r.isVertex()?n++:t.isEdge()&&r.isEdge()?n+=8:n+=2}return n},mxCoordinateAssignment.prototype.medianXValue=function(t,e){if(0==t.length)return 0;for(var n=[],i=0;i<t.length;i++)n[i]=t[i].getGeneralPurposeVariable(e);if(n.sort((function(t,e){return t-e})),t.length%2==1)return n[Math.floor(t.length/2)];var r=t.length/2,o=n[r-1],s=n[r];return(o+s)/2},mxCoordinateAssignment.prototype.initialCoords=function(t,e){this.calculateWidestRank(t,e);for(var n=this.widestRank;n>=0;n--)n<e.maxRank&&this.rankCoordinates(n,t,e);for(n=this.widestRank+1;n<=e.maxRank;n++)n>0&&this.rankCoordinates(n,t,e)},mxCoordinateAssignment.prototype.rankCoordinates=function(t,e,n){for(var i=n.ranks[t],r=0,o=this.initialX+(this.widestRankValue-this.rankWidths[t])/2,s=!1,l=0;l<i.length;l++){var a=i[l];if(a.isVertex()){var h=this.layout.getVertexBounds(a.cell);null!=h?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(a.width=h.width,a.height=h.height):(a.width=h.height,a.height=h.width):s=!0,r=Math.max(r,a.height)}else if(a.isEdge()){var u=1;null!=a.edges?u=a.edges.length:mxLog.warn("edge.edges is null"),a.width=(u-1)*this.parallelEdgeSpacing}o+=a.width/2,a.setX(t,o),a.setGeneralPurposeVariable(t,o),o+=a.width/2,o+=this.intraCellSpacing}1==s&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(t,e){var n=-this.interRankCellSpacing,i=0;this.rankWidths=[],this.rankY=[];for(var r=e.maxRank;r>=0;r--){for(var o=0,s=e.ranks[r],l=this.initialX,a=!1,h=0;h<s.length;h++){var u=s[h];if(u.isVertex()){var d=this.layout.getVertexBounds(u.cell);null!=d?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.width=d.width,u.height=d.height):(u.width=d.height,u.height=d.width):a=!0,o=Math.max(o,u.height)}else if(u.isEdge()){var c=1;null!=u.edges?c=u.edges.length:mxLog.warn("edge.edges is null"),u.width=(c-1)*this.parallelEdgeSpacing}l+=u.width/2,u.setX(r,l),u.setGeneralPurposeVariable(r,l),l+=u.width/2,l+=this.intraCellSpacing,l>this.widestRankValue&&(this.widestRankValue=l,this.widestRank=r),this.rankWidths[r]=l}1==a&&mxLog.warn("At least one cell has no bounds"),this.rankY[r]=n;var p=o/2+i/2+this.interRankCellSpacing;i=o,this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?n+=p:n-=p;for(h=0;h<s.length;h++){var g=s[h];g.setY(r,n)}}},mxCoordinateAssignment.prototype.minPath=function(t,e){for(var n=e.edgeMapper.getValues(),i=0;i<n.length;i++){var r=n[i];if(!(r.maxRank-r.minRank-1<1)){for(var o=r.getGeneralPurposeVariable(r.minRank+1),s=!0,l=0,a=r.minRank+2;a<r.maxRank;a++){var h=r.getGeneralPurposeVariable(a);o!=h?(s=!1,o=h):l++}if(!s){var u=0,d=0,c=[],p=[],g=r.getGeneralPurposeVariable(r.minRank+1);for(a=r.minRank+1;a<r.maxRank-1;a++){var m=r.getX(a+1);g==m||this.repositionValid(e,r,a+1,g)?(c[a-r.minRank-1]=g,u++):(c[a-r.minRank-1]=m,g=m)}g=r.getX(a);for(a=r.maxRank-1;a>r.minRank+1;a--){m=r.getX(a-1);g==m||this.repositionValid(e,r,a-1,g)?(p[a-r.minRank-2]=g,d++):(p[a-r.minRank-2]=r.getX(a-1),g=m)}if(d>l||u>l)if(d>=u)for(a=r.maxRank-2;a>r.minRank;a--)r.setX(a,p[a-r.minRank-1]);else if(u>d)for(a=r.minRank+2;a<r.maxRank;a++)r.setX(a,c[a-r.minRank-2])}}}},mxCoordinateAssignment.prototype.repositionValid=function(t,e,n,i){for(var r=t.ranks[n],o=-1,s=0;s<r.length;s++)if(e==r[s]){o=s;break}if(o<0)return!1;var l=e.getGeneralPurposeVariable(n);if(i<l){if(0==o)return!0;var a=r[o-1],h=a.getGeneralPurposeVariable(n);return h=h+a.width/2+this.intraCellSpacing+e.width/2,h<=i}if(i>l){if(o==r.length-1)return!0;var u=r[o+1],d=u.getGeneralPurposeVariable(n);return d=d-u.width/2-this.intraCellSpacing-e.width/2,d>=i}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(t,e){this.rankTopY=[],this.rankBottomY=[];for(var n=0;n<e.ranks.length;n++)this.rankTopY[n]=Number.MAX_VALUE,this.rankBottomY[n]=-Number.MAX_VALUE;var i=e.vertexMapper.getValues();for(n=0;n<i.length;n++)this.setVertexLocation(i[n]);this.layout.edgeStyle!=mxHierarchicalEdgeStyle.ORTHOGONAL&&this.layout.edgeStyle!=mxHierarchicalEdgeStyle.POLYLINE&&this.layout.edgeStyle!=mxHierarchicalEdgeStyle.CURVE||this.localEdgeProcessing(e);var r=e.edgeMapper.getValues();for(n=0;n<r.length;n++)this.setEdgePosition(r[n])},mxCoordinateAssignment.prototype.localEdgeProcessing=function(t){for(var e=0;e<t.ranks.length;e++)for(var n=t.ranks[e],i=0;i<n.length;i++){var r=n[i];if(r.isVertex())for(var o=r.getPreviousLayerConnectedCells(e),s=e-1,l=0;l<2;l++){if(s>-1&&s<t.ranks.length&&null!=o&&o.length>0){for(var a=[],h=0;h<o.length;h++){var u=new WeightedCellSorter(o[h],o[h].getX(s));a.push(u)}a.sort(WeightedCellSorter.prototype.compare);var d=r.x[0]-r.width/2,c=d+r.width,p=0,g=[];for(h=0;h<a.length;h++){var m,x=a[h].cell;if(x.isVertex()){m=0==l?r.connectsAsSource:r.connectsAsTarget;for(var y=0;y<m.length;y++)m[y].source!=x&&m[y].target!=x||(p+=m[y].edges.length,g.push(m[y]))}else p+=x.edges.length,g.push(x)}var f=(p+1)*this.prefHozEdgeSep;r.width>f+2*this.prefHozEdgeSep&&(d+=this.prefHozEdgeSep,c-=this.prefHozEdgeSep);var A=c-d,C=A/p,v=d+C/2,E=this.minEdgeJetty-this.prefVertEdgeOff,w=0;for(h=0;h<g.length;h++){var S=g[h].edges.length,b=this.jettyPositions[g[h].ids[0]];null==b&&(b=[],this.jettyPositions[g[h].ids[0]]=b),h<p/2?E+=this.prefVertEdgeOff:h>p/2&&(E-=this.prefVertEdgeOff);for(var T=0;T<S;T++)b[4*T+2*l]=v,v+=C,b[4*T+2*l+1]=E;w=Math.max(w,E)}}o=r.getNextLayerConnectedCells(e),s=e+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(t){var e=0;if(101207!=t.temp[0]){var n=t.maxRank,i=t.minRank;n==i&&(n=t.source.maxRank,i=t.target.minRank);for(var r=0,o=this.jettyPositions[t.ids[0]],s=t.isReversed?t.target.cell:t.source.cell,l=this.layout.graph,a=this.orientation==mxConstants.DIRECTION_EAST||this.orientation==mxConstants.DIRECTION_SOUTH,h=0;h<t.edges.length;h++){var u=t.edges[h],d=this.layout.getVisibleTerminal(u,!0),c=[],p=t.isReversed;if(d!=s&&(p=!p),null!=o){var g=p?2:0,m=p?a?this.rankBottomY[i]:this.rankTopY[i]:a?this.rankTopY[n]:this.rankBottomY[n],x=o[4*r+1+g];p!=a&&(x=-x),m+=x;var y=o[4*r+g],f=l.model.getTerminal(u,!0);if(this.layout.isPort(f)&&l.model.getParent(f)==d){var A=l.view.getState(f);y=null!=A?A.x:d.geometry.x+t.source.width*f.geometry.x}this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(c.push(new mxPoint(y,m)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&c.push(new mxPoint(y,m+x))):(c.push(new mxPoint(m,y)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&c.push(new mxPoint(m+x,y)))}var C=t.x.length-1,v=-1,E=-1,w=t.maxRank-1;p&&(C=0,v=t.x.length,E=1,w=t.minRank+1);for(var S=C;t.maxRank!=t.minRank&&S!=v;S+=E){var b=t.x[S]+e,T=(this.rankTopY[w]+this.rankBottomY[w+1])/2,L=(this.rankTopY[w-1]+this.rankBottomY[w])/2;if(p){var I=T;T=L,L=I}this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(c.push(new mxPoint(b,T)),c.push(new mxPoint(b,L))):(c.push(new mxPoint(T,b)),c.push(new mxPoint(L,b))),this.limitX=Math.max(this.limitX,b),w+=E}if(null!=o){g=p?2:0;var M=p?a?this.rankTopY[n]:this.rankBottomY[n]:a?this.rankBottomY[i]:this.rankTopY[i];x=o[4*r+3-g];p!=a&&(x=-x);m=M-x,y=o[4*r+2-g];var R=l.model.getTerminal(u,!1),O=this.layout.getVisibleTerminal(u,!1);if(this.layout.isPort(R)&&l.model.getParent(R)==O){A=l.view.getState(R);y=null!=A?A.x:O.geometry.x+t.target.width*R.geometry.x}this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&c.push(new mxPoint(y,m-x)),c.push(new mxPoint(y,m))):(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&c.push(new mxPoint(m-x,y)),c.push(new mxPoint(m,y)))}t.isReversed&&this.processReversedEdge(t,u),this.layout.setEdgePoints(u,c),e=0==e?this.parallelEdgeSpacing:e>0?-e:-e+this.parallelEdgeSpacing,r++}t.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(t){var e=t.cell,n=t.x[0]-t.width/2,i=t.y[0]-t.height/2;this.rankTopY[t.minRank]=Math.min(this.rankTopY[t.minRank],i),this.rankBottomY[t.minRank]=Math.max(this.rankBottomY[t.minRank],i+t.height),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(e,n,i):this.layout.setVertexLocation(e,i,n),this.limitX=Math.max(this.limitX,n+t.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(t,e){},__mxOutput.mxCoordinateAssignment="undefined"!==typeof mxCoordinateAssignment?mxCoordinateAssignment:void 0,mxSwimlaneOrdering.prototype=new mxHierarchicalLayoutStage,mxSwimlaneOrdering.prototype.constructor=mxSwimlaneOrdering,mxSwimlaneOrdering.prototype.layout=null,mxSwimlaneOrdering.prototype.execute=function(t){var e=this.layout.getModel(),n=new Object,i=mxUtils.clone(e.vertexMapper,null,!0),r=null;if(null!=e.roots){var o=e.roots;r=[];for(var s=0;s<o.length;s++)r[s]=e.vertexMapper.get(o[s])}e.visit((function(t,e,r,o,s){var l=null!=t&&t.swimlaneIndex==e.swimlaneIndex&&e.isAncestor(t),a=null!=t&&null!=r&&t.swimlaneIndex<e.swimlaneIndex&&r.source==e;l?(r.invert(),mxUtils.remove(r,t.connectsAsSource),e.connectsAsSource.push(r),t.connectsAsTarget.push(r),mxUtils.remove(r,e.connectsAsTarget)):a&&(r.invert(),mxUtils.remove(r,t.connectsAsTarget),e.connectsAsTarget.push(r),t.connectsAsSource.push(r),mxUtils.remove(r,e.connectsAsSource));var h=mxCellPath.create(e.cell);n[h]=e,delete i[h]}),r,!0,null)},__mxOutput.mxSwimlaneOrdering="undefined"!==typeof mxSwimlaneOrdering?mxSwimlaneOrdering:void 0;var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};function mxSwimlaneLayout(t,e,n){mxGraphLayout.call(this,t),this.orientation=null!=e?e:mxConstants.DIRECTION_NORTH,this.deterministic=null==n||n}function mxGraphModel(t){this.currentEdit=this.createUndoableEdit(),null!=t?this.setRoot(t):this.clear()}function mxRootChange(t,e){this.model=t,this.root=e,this.previous=e}function mxChildChange(t,e,n,i){this.model=t,this.parent=e,this.previous=e,this.child=n,this.index=i,this.previousIndex=i}function mxTerminalChange(t,e,n,i){this.model=t,this.cell=e,this.terminal=n,this.previous=n,this.source=i}function mxValueChange(t,e,n){this.model=t,this.cell=e,this.value=n,this.previous=n}function mxStyleChange(t,e,n){this.model=t,this.cell=e,this.style=n,this.previous=n}function mxGeometryChange(t,e,n){this.model=t,this.cell=e,this.geometry=n,this.previous=n}function mxCollapseChange(t,e,n){this.model=t,this.cell=e,this.collapsed=n,this.previous=n}function mxVisibleChange(t,e,n){this.model=t,this.cell=e,this.visible=n,this.previous=n}function mxCellAttributeChange(t,e,n){this.cell=t,this.attribute=e,this.value=n,this.previous=n}function mxCell(t,e,n){this.value=t,this.setGeometry(e),this.setStyle(n),null!=this.onInit&&this.onInit()}function mxGeometry(t,e,n,i){mxRectangle.call(this,t,e,n,i)}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(t,e){this.parent=t;var n=this.graph.model;if(this.edgesCache=new mxDictionary,this.edgeSourceTermCache=new mxDictionary,this.edgesTargetTermCache=new mxDictionary,null==e||e instanceof Array||(e=[e]),null!=e||null!=t){if(this.parentX=null,this.parentY=null,t!=this.root&&null!=n.isVertex(t)&&this.maintainParentLocation){var i=this.graph.getCellGeometry(t);null!=i&&(this.parentX=i.x,this.parentY=i.y)}if(null!=e){for(var r=[],o=0;o<e.length;o++){var s=null==t||n.isAncestor(t,e[o]);s&&n.isVertex(e[o])&&r.push(e[o])}this.roots=r}n.beginUpdate();try{if(this.run(t),this.resizeParent&&!this.graph.isCellCollapsed(t)&&this.graph.updateGroupBounds([t],this.parentBorder,this.moveParent),null!=this.parentX&&null!=this.parentY){i=this.graph.getCellGeometry(t);null!=i&&(i=i.clone(),i.x=this.parentX,i.y=this.parentY,n.setGeometry(t,i))}}finally{n.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(t,e){var n=[];if(null!=t&&null!=e){var i=this.graph.model,r=null,o=-1e5;for(var s in e){var l=e[s];if(i.isVertex(l)&&this.graph.isCellVisible(l)){for(var a=this.getEdges(l),h=0,u=0,d=0;d<a.length;d++){var c=this.getVisibleTerminal(a[d],!0);c==l?h++:u++}0==u&&h>0&&n.push(l);var p=h-u;p>o&&(o=p,r=l)}}0==n.length&&null!=r&&n.push(r)}return n},mxHierarchicalLayout.prototype.getEdges=function(t){var e=this.edgesCache.get(t);if(null!=e)return e;for(var n=this.graph.model,i=[],r=this.graph.isCellCollapsed(t),o=n.getChildCount(t),s=0;s<o;s++){var l=n.getChildAt(t,s);this.isPort(l)?i=i.concat(n.getEdges(l,!0,!0)):!r&&this.graph.isCellVisible(l)||(i=i.concat(n.getEdges(l,!0,!0)))}i=i.concat(n.getEdges(t,!0,!0));var a=[];for(s=0;s<i.length;s++){var h=this.getVisibleTerminal(i[s],!0),u=this.getVisibleTerminal(i[s],!1);(h==u||h!=u&&(u==t&&(null==this.parent||this.isAncestor(this.parent,h,this.traverseAncestors))||h==t&&(null==this.parent||this.isAncestor(this.parent,u,this.traverseAncestors))))&&a.push(i[s])}return this.edgesCache.put(t,a),a},mxHierarchicalLayout.prototype.getVisibleTerminal=function(t,e){var n=this.edgesTargetTermCache;e&&(n=this.edgeSourceTermCache);var i=n.get(t);if(null!=i)return i;var r=this.graph.view.getState(t),o=null!=r?r.getVisibleTerminal(e):this.graph.view.getVisibleTerminal(t,e);return null==o&&(o=null!=r?r.getVisibleTerminal(e):this.graph.view.getVisibleTerminal(t,e)),null!=o&&(this.isPort(o)&&(o=this.graph.model.getParent(o)),n.put(t,o)),o},mxHierarchicalLayout.prototype.run=function(t){var e=[],n=[];if(null==this.roots&&null!=t){var i=Object();this.filterDescendants(t,i),this.roots=[];var r=!0;for(var o in i)if(null!=i[o]){r=!1;break}while(!r){for(var s=this.findRoots(t,i),l=0;l<s.length;l++){var a=Object();e.push(a),this.traverse(s[l],!0,null,n,a,e,i)}for(l=0;l<s.length;l++)this.roots.push(s[l]);for(var o in r=!0,i)if(null!=i[o]){r=!1;break}}}else for(l=0;l<this.roots.length;l++){a=Object();e.push(a),this.traverse(this.roots[l],!0,null,n,a,e,null)}var h=0;for(l=0;l<e.length;l++){a=e[l];var u=[];for(var o in a)u.push(a[o]);this.model=new mxGraphHierarchyModel(this,u,this.roots,t,this.tightenToSource),this.cycleStage(t),this.layeringStage(),this.crossingStage(t),h=this.placementStage(h,t)}},mxHierarchicalLayout.prototype.filterDescendants=function(t,e){var n=this.graph.model;if(n.isVertex(t)&&t!=this.parent&&this.graph.isCellVisible(t)&&(e[mxObjectIdentity.get(t)]=t),this.traverseAncestors||t==this.parent&&this.graph.isCellVisible(t))for(var i=n.getChildCount(t),r=0;r<i;r++){var o=n.getChildAt(t,r);this.isPort(o)||this.filterDescendants(o,e)}},mxHierarchicalLayout.prototype.isPort=function(t){return null!=t&&null!=t.geometry&&t.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(t,e,n){n=null!=n&&n;for(var i=this.getEdges(t),r=[],o=0;o<i.length;o++){var s=this.getVisibleTerminal(i[o],!0),l=this.getVisibleTerminal(i[o],!1);(s==t&&l==e||!n&&s==e&&l==t)&&r.push(i[o])}return r},mxHierarchicalLayout.prototype.traverse=function(t,e,n,i,r,o,s){if(null!=t&&null!=i){var l=mxObjectIdentity.get(t);if(null!=i[l]||null!=s&&null==s[l]){if(null==r[l])for(c=0;c<o.length;c++){var a=o[c];if(null!=a[l]){for(var h in a)r[h]=a[h];return o.splice(c,1),r}}}else{null==r[l]&&(r[l]=t),null==i[l]&&(i[l]=t),null!==s&&delete s[l];for(var u=this.getEdges(t),d=[],c=0;c<u.length;c++)d[c]=this.getVisibleTerminal(u[c],!0)==t;for(var c=0;c<u.length;c++)if(!e||d[c]){for(var p=this.getVisibleTerminal(u[c],!d[c]),g=1,m=0;m<u.length;m++)if(m!=c){var x=d[m],y=this.getVisibleTerminal(u[m],!x);y==p&&(x?g++:g--)}g>=0&&(r=this.traverse(p,e,u[c],i,r,o,s))}}}return r},mxHierarchicalLayout.prototype.cycleStage=function(t){var e=new mxMinimumCycleRemover(this);e.execute(t)},mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank(),this.model.fixRanks()},mxHierarchicalLayout.prototype.crossingStage=function(t){var e=new mxMedianHybridCrossingReduction(this);e.execute(t)},mxHierarchicalLayout.prototype.placementStage=function(t,e){var n=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,t,this.parallelEdgeSpacing);return n.fineTuning=this.fineTuning,n.execute(e),n.limitX+this.interHierarchySpacing},__mxOutput.mxHierarchicalLayout="undefined"!==typeof mxHierarchicalLayout?mxHierarchicalLayout:void 0,mxSwimlaneLayout.prototype=new mxGraphLayout,mxSwimlaneLayout.prototype.constructor=mxSwimlaneLayout,mxSwimlaneLayout.prototype.roots=null,mxSwimlaneLayout.prototype.swimlanes=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,mxSwimlaneLayout.prototype.interRankCellSpacing=100,mxSwimlaneLayout.prototype.interHierarchySpacing=60,mxSwimlaneLayout.prototype.parallelEdgeSpacing=10,mxSwimlaneLayout.prototype.orientation=mxConstants.DIRECTION_NORTH,mxSwimlaneLayout.prototype.fineTuning=!0,mxSwimlaneLayout.prototype.tightenToSource=!0,mxSwimlaneLayout.prototype.disableEdgeStyle=!0,mxSwimlaneLayout.prototype.traverseAncestors=!0,mxSwimlaneLayout.prototype.model=null,mxSwimlaneLayout.prototype.edgesCache=null,mxHierarchicalLayout.prototype.edgeSourceTermCache=null,mxHierarchicalLayout.prototype.edgesTargetTermCache=null,mxHierarchicalLayout.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE,mxSwimlaneLayout.prototype.getModel=function(){return this.model},mxSwimlaneLayout.prototype.execute=function(t,e){this.parent=t;var n=this.graph.model;if(this.edgesCache=new mxDictionary,this.edgeSourceTermCache=new mxDictionary,this.edgesTargetTermCache=new mxDictionary,!(null==e||e.length<1)){if(null==t&&(t=n.getParent(e[0])),this.parentX=null,this.parentY=null,t!=this.root&&null!=n.isVertex(t)&&this.maintainParentLocation){var i=this.graph.getCellGeometry(t);null!=i&&(this.parentX=i.x,this.parentY=i.y)}this.swimlanes=e;for(var r=[],o=0;o<e.length;o++){var s=this.graph.getChildCells(e[o]);if(null==s||0==s.length){var l=this.graph.insertVertex(e[o],null,null,0,0,this.dummyVertexWidth,0);r.push(l)}}n.beginUpdate();try{if(this.run(t),this.resizeParent&&!this.graph.isCellCollapsed(t)&&this.graph.updateGroupBounds([t],this.parentBorder,this.moveParent),null!=this.parentX&&null!=this.parentY){i=this.graph.getCellGeometry(t);null!=i&&(i=i.clone(),i.x=this.parentX,i.y=this.parentY,n.setGeometry(t,i))}this.graph.removeCells(r)}finally{n.endUpdate()}}},mxSwimlaneLayout.prototype.updateGroupBounds=function(){var t=[],e=this.model;for(var n in e.edgeMapper)for(var i=e.edgeMapper[n],r=0;r<i.edges.length;r++)t.push(i.edges[r]);var o=this.graph.getBoundingBoxFromGeometry(t,!0),s=[];for(r=0;r<this.swimlanes.length;r++){var l=this.swimlanes[r],a=this.graph.getCellGeometry(l);if(null!=a){var h=this.graph.getChildCells(l),u=this.graph.isSwimlane(l)?this.graph.getStartSize(l):new mxRectangle,d=this.graph.getBoundingBoxFromGeometry(h);s[r]=d;var c=d.y+a.y-u.height-this.parentBorder,p=d.y+a.y+d.height;if(null==o)o=new mxRectangle(0,c,0,p-c);else{o.y=Math.min(o.y,c);var g=Math.max(o.y+o.height,p);o.height=g-o.y}}}for(r=0;r<this.swimlanes.length;r++){l=this.swimlanes[r],a=this.graph.getCellGeometry(l);if(null!=a){h=this.graph.getChildCells(l),u=this.graph.isSwimlane(l)?this.graph.getStartSize(l):new mxRectangle;var m=a.clone(),x=0==r?this.parentBorder:this.interRankCellSpacing/2,y=u.width+x,f=s[r].x-y,A=o.y-this.parentBorder;m.x+=f,m.y=A,m.width=s[r].width+y+this.interRankCellSpacing/2,m.height=o.height+u.height+2*this.parentBorder,this.graph.model.setGeometry(l,m),this.graph.moveCells(h,-f,a.y-A)}}},mxSwimlaneLayout.prototype.findRoots=function(t,e){var n=[];if(null!=t&&null!=e){var i=this.graph.model,r=null,o=-1e5;for(var s in e){var l=e[s];if(null!=l&&i.isVertex(l)&&this.graph.isCellVisible(l)&&i.isAncestor(t,l)){for(var a=this.getEdges(l),h=0,u=0,d=0;d<a.length;d++){var c=this.getVisibleTerminal(a[d],!0);if(c==l){var p=this.getVisibleTerminal(a[d],!1);i.isAncestor(t,p)&&h++}else i.isAncestor(t,c)&&u++}0==u&&h>0&&n.push(l);var g=h-u;g>o&&(o=g,r=l)}}0==n.length&&null!=r&&n.push(r)}return n},mxSwimlaneLayout.prototype.getEdges=function(t){var e=this.edgesCache.get(t);if(null!=e)return e;for(var n=this.graph.model,i=[],r=this.graph.isCellCollapsed(t),o=n.getChildCount(t),s=0;s<o;s++){var l=n.getChildAt(t,s);this.isPort(l)?i=i.concat(n.getEdges(l,!0,!0)):!r&&this.graph.isCellVisible(l)||(i=i.concat(n.getEdges(l,!0,!0)))}i=i.concat(n.getEdges(t,!0,!0));var a=[];for(s=0;s<i.length;s++){var h=this.getVisibleTerminal(i[s],!0),u=this.getVisibleTerminal(i[s],!1);(h==u||h!=u&&(u==t&&(null==this.parent||this.graph.isValidAncestor(h,this.parent,this.traverseAncestors))||h==t&&(null==this.parent||this.graph.isValidAncestor(u,this.parent,this.traverseAncestors))))&&a.push(i[s])}return this.edgesCache.put(t,a),a},mxSwimlaneLayout.prototype.getVisibleTerminal=function(t,e){var n=this.edgesTargetTermCache;e&&(n=this.edgeSourceTermCache);var i=n.get(t);if(null!=i)return i;var r=this.graph.view.getState(t),o=null!=r?r.getVisibleTerminal(e):this.graph.view.getVisibleTerminal(t,e);return null==o&&(o=null!=r?r.getVisibleTerminal(e):this.graph.view.getVisibleTerminal(t,e)),null!=o&&(this.isPort(o)&&(o=this.graph.model.getParent(o)),n.put(t,o)),o},mxSwimlaneLayout.prototype.run=function(t){var e=[],n=Object();if(null!=this.swimlanes&&this.swimlanes.length>0&&null!=t){for(var i=Object(),r=0;r<this.swimlanes.length;r++)this.filterDescendants(this.swimlanes[r],i);this.roots=[];var o=!0;for(var s in i)if(null!=i[s]){o=!1;break}var l=0;while(!o&&l<this.swimlanes.length){var a=this.findRoots(this.swimlanes[l],i);if(0!=a.length){for(r=0;r<a.length;r++){var h=Object();e.push(h),this.traverse(a[r],!0,null,n,h,e,i,l)}for(r=0;r<a.length;r++)this.roots.push(a[r]);for(var s in o=!0,i)if(null!=i[s]){o=!1;break}}else l++}}else for(r=0;r<this.roots.length;r++){h=Object();e.push(h),this.traverse(this.roots[r],!0,null,n,h,e,null)}var u=[];for(var s in n)u.push(n[s]);this.model=new mxSwimlaneModel(this,u,this.roots,t,this.tightenToSource),this.cycleStage(t),this.layeringStage(),this.crossingStage(t),this.placementStage(0,t)},mxSwimlaneLayout.prototype.filterDescendants=function(t,e){var n=this.graph.model;if(n.isVertex(t)&&t!=this.parent&&n.getParent(t)!=this.parent&&this.graph.isCellVisible(t)&&(e[mxObjectIdentity.get(t)]=t),this.traverseAncestors||t==this.parent&&this.graph.isCellVisible(t))for(var i=n.getChildCount(t),r=0;r<i;r++){var o=n.getChildAt(t,r);this.isPort(o)||this.filterDescendants(o,e)}},mxSwimlaneLayout.prototype.isPort=function(t){return!!t.geometry.relative},mxSwimlaneLayout.prototype.getEdgesBetween=function(t,e,n){n=null!=n&&n;for(var i=this.getEdges(t),r=[],o=0;o<i.length;o++){var s=this.getVisibleTerminal(i[o],!0),l=this.getVisibleTerminal(i[o],!1);(s==t&&l==e||!n&&s==e&&l==t)&&r.push(i[o])}return r},mxSwimlaneLayout.prototype.traverse=function(t,e,n,i,r,o,s,l){if(null!=t&&null!=i){var a=mxObjectIdentity.get(t);if(null!=i[a]||null!=s&&null==s[a]){if(null==r[a])for(p=0;p<o.length;p++){var h=o[p];if(null!=h[a]){for(var u in h)r[u]=h[u];return o.splice(p,1),r}}}else{null==r[a]&&(r[a]=t),null==i[a]&&(i[a]=t),null!==s&&delete s[a];for(var d=this.getEdges(t),c=this.graph.model,p=0;p<d.length;p++){var g=this.getVisibleTerminal(d[p],!0),m=g==t;m&&(g=this.getVisibleTerminal(d[p],!1));var x=0;for(x=0;x<this.swimlanes.length;x++)if(c.isAncestor(this.swimlanes[x],g))break;x>=this.swimlanes.length||(x>l||(!e||m)&&x==l)&&(r=this.traverse(g,e,d[p],i,r,o,s,x))}}}return r},mxSwimlaneLayout.prototype.cycleStage=function(t){var e=new mxSwimlaneOrdering(this);e.execute(t)},mxSwimlaneLayout.prototype.layeringStage=function(){this.model.initialRank(),this.model.fixRanks()},mxSwimlaneLayout.prototype.crossingStage=function(t){var e=new mxMedianHybridCrossingReduction(this);e.execute(t)},mxSwimlaneLayout.prototype.placementStage=function(t,e){var n=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,t,this.parallelEdgeSpacing);return n.fineTuning=this.fineTuning,n.execute(e),n.limitX+this.interHierarchySpacing},__mxOutput.mxSwimlaneLayout="undefined"!==typeof mxSwimlaneLayout?mxSwimlaneLayout:void 0,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(t){this.createIds=t},mxGraphModel.prototype.createRoot=function(){var t=new mxCell;return t.insert(new mxCell),t},mxGraphModel.prototype.getCell=function(t){return null!=this.cells?this.cells[t]:null},mxGraphModel.prototype.filterCells=function(t,e){var n=null;if(null!=t){n=[];for(var i=0;i<t.length;i++)e(t[i])&&n.push(t[i])}return n},mxGraphModel.prototype.getDescendants=function(t){return this.filterDescendants(null,t)},mxGraphModel.prototype.filterDescendants=function(t,e){var n=[];e=e||this.getRoot(),(null==t||t(e))&&n.push(e);for(var i=this.getChildCount(e),r=0;r<i;r++){var o=this.getChildAt(e,r);n=n.concat(this.filterDescendants(t,o))}return n},mxGraphModel.prototype.getRoot=function(t){var e=t||this.root;if(null!=t)while(null!=t)e=t,t=this.getParent(t);return e},mxGraphModel.prototype.setRoot=function(t){return this.execute(new mxRootChange(this,t)),t},mxGraphModel.prototype.rootChanged=function(t){var e=this.root;return this.root=t,this.nextId=0,this.cells=null,this.cellAdded(t),e},mxGraphModel.prototype.isRoot=function(t){return null!=t&&this.root==t},mxGraphModel.prototype.isLayer=function(t){return this.isRoot(this.getParent(t))},mxGraphModel.prototype.isAncestor=function(t,e){while(null!=e&&e!=t)e=this.getParent(e);return e==t},mxGraphModel.prototype.contains=function(t){return this.isAncestor(this.root,t)},mxGraphModel.prototype.getParent=function(t){return null!=t?t.getParent():null},mxGraphModel.prototype.add=function(t,e,n){if(e!=t&&null!=t&&null!=e){null==n&&(n=this.getChildCount(t));var i=t!=this.getParent(e);this.execute(new mxChildChange(this,t,e,n)),this.maintainEdgeParent&&i&&this.updateEdgeParents(e)}return e},mxGraphModel.prototype.cellAdded=function(t){if(null!=t){if(null==t.getId()&&this.createIds&&t.setId(this.createId(t)),null!=t.getId()){var e=this.getCell(t.getId());if(e!=t){while(null!=e)t.setId(this.createId(t)),e=this.getCell(t.getId());null==this.cells&&(this.cells=new Object),this.cells[t.getId()]=t}}mxUtils.isNumeric(t.getId())&&(this.nextId=Math.max(this.nextId,t.getId()));for(var n=this.getChildCount(t),i=0;i<n;i++)this.cellAdded(this.getChildAt(t,i))}},mxGraphModel.prototype.createId=function(t){var e=this.nextId;return this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(t,e){e=e||this.getRoot(t);for(var n=this.getChildCount(t),i=0;i<n;i++){var r=this.getChildAt(t,i);this.updateEdgeParents(r,e)}var o=this.getEdgeCount(t),s=[];for(i=0;i<o;i++)s.push(this.getEdgeAt(t,i));for(i=0;i<s.length;i++){var l=s[i];this.isAncestor(e,l)&&this.updateEdgeParent(l,e)}},mxGraphModel.prototype.updateEdgeParent=function(t,e){var n=this.getTerminal(t,!0),i=this.getTerminal(t,!1),r=null;while(null!=n&&!this.isEdge(n)&&null!=n.geometry&&n.geometry.relative)n=this.getParent(n);while(null!=i&&this.ignoreRelativeEdgeParent&&!this.isEdge(i)&&null!=i.geometry&&i.geometry.relative)i=this.getParent(i);if(this.isAncestor(e,n)&&this.isAncestor(e,i)&&(r=n==i?this.getParent(n):this.getNearestCommonAncestor(n,i),null!=r&&(this.getParent(r)!=this.root||this.isAncestor(r,t))&&this.getParent(t)!=r)){var o=this.getGeometry(t);if(null!=o){var s=this.getOrigin(this.getParent(t)),l=this.getOrigin(r),a=l.x-s.x,h=l.y-s.y;o=o.clone(),o.translate(-a,-h),this.setGeometry(t,o)}this.add(r,t,this.getChildCount(r))}},mxGraphModel.prototype.getOrigin=function(t){var e=null;if(null!=t){if(e=this.getOrigin(this.getParent(t)),!this.isEdge(t)){var n=this.getGeometry(t);null!=n&&(e.x+=n.x,e.y+=n.y)}}else e=new mxPoint;return e},mxGraphModel.prototype.getNearestCommonAncestor=function(t,e){if(null!=t&&null!=e){var n=mxCellPath.create(e);if(null!=n&&n.length>0){var i=t,r=mxCellPath.create(i);if(n.length<r.length){i=e;var o=r;r=n,n=o}while(null!=i){var s=this.getParent(i);if(0==n.indexOf(r+mxCellPath.PATH_SEPARATOR)&&null!=s)return i;r=mxCellPath.getParentPath(r),i=s}}}return null},mxGraphModel.prototype.remove=function(t){return t==this.root?this.setRoot(null):null!=this.getParent(t)&&this.execute(new mxChildChange(this,null,t)),t},mxGraphModel.prototype.cellRemoved=function(t){if(null!=t&&null!=this.cells){for(var e=this.getChildCount(t),n=e-1;n>=0;n--)this.cellRemoved(this.getChildAt(t,n));null!=this.cells&&null!=t.getId()&&delete this.cells[t.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(t,e,n){var i=this.getParent(t);if(null!=e)e==i&&i.getIndex(t)==n||e.insert(t,n);else if(null!=i){var r=i.getIndex(t);i.remove(r)}var o=this.contains(e),s=this.contains(i);return o&&!s?this.cellAdded(t):s&&!o&&this.cellRemoved(t),i},mxGraphModel.prototype.getChildCount=function(t){return null!=t?t.getChildCount():0},mxGraphModel.prototype.getChildAt=function(t,e){return null!=t?t.getChildAt(e):null},mxGraphModel.prototype.getChildren=function(t){return null!=t?t.children:null},mxGraphModel.prototype.getChildVertices=function(t){return this.getChildCells(t,!0,!1)},mxGraphModel.prototype.getChildEdges=function(t){return this.getChildCells(t,!1,!0)},mxGraphModel.prototype.getChildCells=function(t,e,n){e=null!=e&&e,n=null!=n&&n;for(var i=this.getChildCount(t),r=[],o=0;o<i;o++){var s=this.getChildAt(t,o);(!n&&!e||n&&this.isEdge(s)||e&&this.isVertex(s))&&r.push(s)}return r},mxGraphModel.prototype.getTerminal=function(t,e){return null!=t?t.getTerminal(e):null},mxGraphModel.prototype.setTerminal=function(t,e,n){var i=e!=this.getTerminal(t,n);return this.execute(new mxTerminalChange(this,t,e,n)),this.maintainEdgeParent&&i&&this.updateEdgeParent(t,this.getRoot()),e},mxGraphModel.prototype.setTerminals=function(t,e,n){this.beginUpdate();try{this.setTerminal(t,e,!0),this.setTerminal(t,n,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(t,e,n){var i=this.getTerminal(t,n);return null!=e?e.insertEdge(t,n):null!=i&&i.removeEdge(t,n),i},mxGraphModel.prototype.getEdgeCount=function(t){return null!=t?t.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(t,e){return null!=t?t.getEdgeAt(e):null},mxGraphModel.prototype.getDirectedEdgeCount=function(t,e,n){for(var i=0,r=this.getEdgeCount(t),o=0;o<r;o++){var s=this.getEdgeAt(t,o);s!=n&&this.getTerminal(s,e)==t&&i++}return i},mxGraphModel.prototype.getConnections=function(t){return this.getEdges(t,!0,!0,!1)},mxGraphModel.prototype.getIncomingEdges=function(t){return this.getEdges(t,!0,!1,!1)},mxGraphModel.prototype.getOutgoingEdges=function(t){return this.getEdges(t,!1,!0,!1)},mxGraphModel.prototype.getEdges=function(t,e,n,i){e=null==e||e,n=null==n||n,i=null==i||i;for(var r=this.getEdgeCount(t),o=[],s=0;s<r;s++){var l=this.getEdgeAt(t,s),a=this.getTerminal(l,!0),h=this.getTerminal(l,!1);(i&&a==h||a!=h&&(e&&h==t||n&&a==t))&&o.push(l)}return o},mxGraphModel.prototype.getEdgesBetween=function(t,e,n){n=null!=n&&n;var i=this.getEdgeCount(t),r=this.getEdgeCount(e),o=t,s=i;r<i&&(s=r,o=e);for(var l=[],a=0;a<s;a++){var h=this.getEdgeAt(o,a),u=this.getTerminal(h,!0),d=this.getTerminal(h,!1),c=u==t&&d==e,p=d==t&&u==e;(c||!n&&p)&&l.push(h)}return l},mxGraphModel.prototype.getOpposites=function(t,e,n,i){n=null==n||n,i=null==i||i;var r=[];if(null!=t)for(var o=0;o<t.length;o++){var s=this.getTerminal(t[o],!0),l=this.getTerminal(t[o],!1);s==e&&null!=l&&l!=e&&i?r.push(l):l==e&&null!=s&&s!=e&&n&&r.push(s)}return r},mxGraphModel.prototype.getTopmostCells=function(t){for(var e=new mxDictionary,n=[],i=0;i<t.length;i++)e.put(t[i],!0);for(i=0;i<t.length;i++){var r=t[i],o=!0,s=this.getParent(r);while(null!=s){if(e.get(s)){o=!1;break}s=this.getParent(s)}o&&n.push(r)}return n},mxGraphModel.prototype.isVertex=function(t){return null!=t&&t.isVertex()},mxGraphModel.prototype.isEdge=function(t){return null!=t&&t.isEdge()},mxGraphModel.prototype.isConnectable=function(t){return null!=t&&t.isConnectable()},mxGraphModel.prototype.getValue=function(t){return null!=t?t.getValue():null},mxGraphModel.prototype.setValue=function(t,e){return this.execute(new mxValueChange(this,t,e)),e},mxGraphModel.prototype.valueForCellChanged=function(t,e){return t.valueChanged(e)},mxGraphModel.prototype.getGeometry=function(t){return null!=t?t.getGeometry():null},mxGraphModel.prototype.setGeometry=function(t,e){return e!=this.getGeometry(t)&&this.execute(new mxGeometryChange(this,t,e)),e},mxGraphModel.prototype.geometryForCellChanged=function(t,e){var n=this.getGeometry(t);return t.setGeometry(e),n},mxGraphModel.prototype.getStyle=function(t){return null!=t?t.getStyle():null},mxGraphModel.prototype.setStyle=function(t,e){return e!=this.getStyle(t)&&this.execute(new mxStyleChange(this,t,e)),e},mxGraphModel.prototype.styleForCellChanged=function(t,e){var n=this.getStyle(t);return t.setStyle(e),n},mxGraphModel.prototype.isCollapsed=function(t){return null!=t&&t.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(t,e){return e!=this.isCollapsed(t)&&this.execute(new mxCollapseChange(this,t,e)),e},mxGraphModel.prototype.collapsedStateForCellChanged=function(t,e){var n=this.isCollapsed(t);return t.setCollapsed(e),n},mxGraphModel.prototype.isVisible=function(t){return null!=t&&t.isVisible()},mxGraphModel.prototype.setVisible=function(t,e){return e!=this.isVisible(t)&&this.execute(new mxVisibleChange(this,t,e)),e},mxGraphModel.prototype.visibleStateForCellChanged=function(t,e){var n=this.isVisible(t);return t.setVisible(e),n},mxGraphModel.prototype.execute=function(t){t.execute(),this.beginUpdate(),this.currentEdit.add(t),this.fireEvent(new mxEventObject(mxEvent.EXECUTE,"change",t)),this.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t)),this.endUpdate()},mxGraphModel.prototype.beginUpdate=function(){this.updateLevel++,this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE)),1==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.START_EDIT))},mxGraphModel.prototype.endUpdate=function(){if(this.updateLevel--,0==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.END_EDIT)),!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 t=this.currentEdit;this.currentEdit=this.createUndoableEdit(),t.notify(),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t))}}finally{this.endingUpdate=!1}}},mxGraphModel.prototype.createUndoableEdit=function(t){var e=new mxUndoableEdit(this,null==t||t);return e.notify=function(){e.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",e,"changes",e.changes)),e.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",e,"changes",e.changes))},e},mxGraphModel.prototype.mergeChildren=function(t,e,n){n=null==n||n,this.beginUpdate();try{var i=new Object;for(var r in this.mergeChildrenImpl(t,e,n,i),i){var o=i[r],s=this.getTerminal(o,!0);null!=s&&(s=i[mxCellPath.create(s)],this.setTerminal(o,s,!0)),s=this.getTerminal(o,!1),null!=s&&(s=i[mxCellPath.create(s)],this.setTerminal(o,s,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(t,e,n,i){this.beginUpdate();try{for(var r=t.getChildCount(),o=0;o<r;o++){var s=t.getChildAt(o);if("function"==typeof s.getId){var l=s.getId(),a=null==l||this.isEdge(s)&&n?null:this.getCell(l);if(null==a){var h=s.clone();h.setId(l),h.setTerminal(s.getTerminal(!0),!0),h.setTerminal(s.getTerminal(!1),!1),a=e.insert(h),this.cellAdded(a)}i[mxCellPath.create(s)]=a,this.mergeChildrenImpl(s,a,n,i)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(t){var e=[];if(null!=t)for(var n=new mxDictionary,i=0;i<t.length;i++){var r=this.getParent(t[i]);null==r||n.get(r)||(n.put(r,!0),e.push(r))}return e},mxGraphModel.prototype.cloneCell=function(t,e){return null!=t?this.cloneCells([t],e)[0]:null},mxGraphModel.prototype.cloneCells=function(t,e,n){e=null==e||e,n=null!=n?n:new Object;for(var i=[],r=0;r<t.length;r++)null!=t[r]?i.push(this.cloneCellImpl(t[r],n,e)):i.push(null);for(r=0;r<i.length;r++)null!=i[r]&&this.restoreClone(i[r],t[r],n);return i},mxGraphModel.prototype.cloneCellImpl=function(t,e,n){var i=mxObjectIdentity.get(t),r=e[i];if(null==r&&(r=this.cellCloned(t),e[i]=r,n))for(var o=this.getChildCount(t),s=0;s<o;s++){var l=this.cloneCellImpl(this.getChildAt(t,s),e,!0);r.insert(l)}return r},mxGraphModel.prototype.cellCloned=function(t){return t.clone()},mxGraphModel.prototype.restoreClone=function(t,e,n){var i=this.getTerminal(e,!0);if(null!=i){var r=n[mxObjectIdentity.get(i)];null!=r&&r.insertEdge(t,!0)}var o=this.getTerminal(e,!1);if(null!=o){r=n[mxObjectIdentity.get(o)];null!=r&&r.insertEdge(t,!1)}for(var s=this.getChildCount(t),l=0;l<s;l++)this.restoreClone(this.getChildAt(t,l),this.getChildAt(e,l),n)},mxRootChange.prototype.execute=function(){this.root=this.previous,this.previous=this.model.rootChanged(this.previous)},mxChildChange.prototype.execute=function(){if(null!=this.child){var t=this.model.getParent(this.child),e=null!=t?t.getIndex(this.child):0;null==this.previous&&this.connect(this.child,!1),t=this.model.parentForCellChanged(this.child,this.previous,this.previousIndex),null!=this.previous&&this.connect(this.child,!0),this.parent=this.previous,this.previous=t,this.index=this.previousIndex,this.previousIndex=e}},mxChildChange.prototype.connect=function(t,e){e=null==e||e;var n=t.getTerminal(!0),i=t.getTerminal(!1);null!=n&&(e?this.model.terminalForCellChanged(t,n,!0):this.model.terminalForCellChanged(t,null,!0)),null!=i&&(e?this.model.terminalForCellChanged(t,i,!1):this.model.terminalForCellChanged(t,null,!1)),t.setTerminal(n,!0),t.setTerminal(i,!1);for(var r=this.model.getChildCount(t),o=0;o<r;o++)this.connect(this.model.getChildAt(t,o),e)},mxTerminalChange.prototype.execute=function(){null!=this.cell&&(this.terminal=this.previous,this.previous=this.model.terminalForCellChanged(this.cell,this.previous,this.source))},mxValueChange.prototype.execute=function(){null!=this.cell&&(this.value=this.previous,this.previous=this.model.valueForCellChanged(this.cell,this.previous))},mxStyleChange.prototype.execute=function(){null!=this.cell&&(this.style=this.previous,this.previous=this.model.styleForCellChanged(this.cell,this.previous))},mxGeometryChange.prototype.execute=function(){null!=this.cell&&(this.geometry=this.previous,this.previous=this.model.geometryForCellChanged(this.cell,this.previous))},mxCollapseChange.prototype.execute=function(){null!=this.cell&&(this.collapsed=this.previous,this.previous=this.model.collapsedStateForCellChanged(this.cell,this.previous))},mxVisibleChange.prototype.execute=function(){null!=this.cell&&(this.visible=this.previous,this.previous=this.model.visibleStateForCellChanged(this.cell,this.previous))},mxCellAttributeChange.prototype.execute=function(){if(null!=this.cell){var t=this.cell.getAttribute(this.attribute);null==this.previous?this.cell.value.removeAttribute(this.attribute):this.cell.setAttribute(this.attribute,this.previous),this.previous=t}},__mxOutput.mxGraphModel="undefined"!==typeof mxGraphModel?mxGraphModel:void 0,mxCell.prototype.id=null,mxCell.prototype.value=null,mxCell.prototype.geometry=null,mxCell.prototype.style=null,mxCell.prototype.vertex=!1,mxCell.prototype.edge=!1,mxCell.prototype.connectable=!0,mxCell.prototype.visible=!0,mxCell.prototype.collapsed=!1,mxCell.prototype.parent=null,mxCell.prototype.source=null,mxCell.prototype.target=null,mxCell.prototype.children=null,mxCell.prototype.edges=null,mxCell.prototype.mxTransient=["id","value","parent","source","target","children","edges"],mxCell.prototype.getId=function(){return this.id},mxCell.prototype.setId=function(t){this.id=t},mxCell.prototype.getValue=function(){return this.value},mxCell.prototype.setValue=function(t){this.value=t},mxCell.prototype.valueChanged=function(t){var e=this.getValue();return this.setValue(t),e},mxCell.prototype.getGeometry=function(){return this.geometry},mxCell.prototype.setGeometry=function(t){this.geometry=t},mxCell.prototype.getStyle=function(){return this.style},mxCell.prototype.setStyle=function(t){this.style=t},mxCell.prototype.isVertex=function(){return 0!=this.vertex},mxCell.prototype.setVertex=function(t){this.vertex=t},mxCell.prototype.isEdge=function(){return 0!=this.edge},mxCell.prototype.setEdge=function(t){this.edge=t},mxCell.prototype.isConnectable=function(){return 0!=this.connectable},mxCell.prototype.setConnectable=function(t){this.connectable=t},mxCell.prototype.isVisible=function(){return 0!=this.visible},mxCell.prototype.setVisible=function(t){this.visible=t},mxCell.prototype.isCollapsed=function(){return 0!=this.collapsed},mxCell.prototype.setCollapsed=function(t){this.collapsed=t},mxCell.prototype.getParent=function(){return this.parent},mxCell.prototype.setParent=function(t){this.parent=t},mxCell.prototype.getTerminal=function(t){return t?this.source:this.target},mxCell.prototype.setTerminal=function(t,e){return e?this.source=t:this.target=t,t},mxCell.prototype.getChildCount=function(){return null==this.children?0:this.children.length},mxCell.prototype.getIndex=function(t){return mxUtils.indexOf(this.children,t)},mxCell.prototype.getChildAt=function(t){return null==this.children?null:this.children[t]},mxCell.prototype.insert=function(t,e){return null!=t&&(null==e&&(e=this.getChildCount(),t.getParent()==this&&e--),t.removeFromParent(),t.setParent(this),null==this.children?(this.children=[],this.children.push(t)):this.children.splice(e,0,t)),t},mxCell.prototype.remove=function(t){var e=null;return null!=this.children&&t>=0&&(e=this.getChildAt(t),null!=e&&(this.children.splice(t,1),e.setParent(null))),e},mxCell.prototype.removeFromParent=function(){if(null!=this.parent){var t=this.parent.getIndex(this);this.parent.remove(t)}},mxCell.prototype.getEdgeCount=function(){return null==this.edges?0:this.edges.length},mxCell.prototype.getEdgeIndex=function(t){return mxUtils.indexOf(this.edges,t)},mxCell.prototype.getEdgeAt=function(t){return null==this.edges?null:this.edges[t]},mxCell.prototype.insertEdge=function(t,e){return null!=t&&(t.removeFromTerminal(e),t.setTerminal(this,e),(null==this.edges||t.getTerminal(!e)!=this||mxUtils.indexOf(this.edges,t)<0)&&(null==this.edges&&(this.edges=[]),this.edges.push(t))),t},mxCell.prototype.removeEdge=function(t,e){if(null!=t){if(t.getTerminal(!e)!=this&&null!=this.edges){var n=this.getEdgeIndex(t);n>=0&&this.edges.splice(n,1)}t.setTerminal(null,e)}return t},mxCell.prototype.removeFromTerminal=function(t){var e=this.getTerminal(t);null!=e&&e.removeEdge(this,t)},mxCell.prototype.hasAttribute=function(t){var e=this.getValue();return null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.hasAttribute?e.hasAttribute(t):null!=e.getAttribute(t)},mxCell.prototype.getAttribute=function(t,e){var n=this.getValue(),i=null!=n&&n.nodeType==mxConstants.NODETYPE_ELEMENT?n.getAttribute(t):null;return null!=i?i:e},mxCell.prototype.setAttribute=function(t,e){var n=this.getValue();null!=n&&n.nodeType==mxConstants.NODETYPE_ELEMENT&&n.setAttribute(t,e)},mxCell.prototype.clone=function(){var t=mxUtils.clone(this,this.mxTransient);return t.setValue(this.cloneValue()),t},mxCell.prototype.cloneValue=function(){var t=this.getValue();return null!=t&&("function"==typeof t.clone?t=t.clone():isNaN(t.nodeType)||(t=t.cloneNode(!0))),t},__mxOutput.mxCell="undefined"!==typeof mxCell?mxCell:void 0,mxGeometry.prototype=new mxRectangle,mxGeometry.prototype.constructor=mxGeometry,mxGeometry.prototype.TRANSLATE_CONTROL_POINTS=!0,mxGeometry.prototype.alternateBounds=null,mxGeometry.prototype.sourcePoint=null,mxGeometry.prototype.targetPoint=null,mxGeometry.prototype.points=null,mxGeometry.prototype.offset=null,mxGeometry.prototype.relative=!1,mxGeometry.prototype.swap=function(){if(null!=this.alternateBounds){var t=new mxRectangle(this.x,this.y,this.width,this.height);this.x=this.alternateBounds.x,this.y=this.alternateBounds.y,this.width=this.alternateBounds.width,this.height=this.alternateBounds.height,this.alternateBounds=t}},mxGeometry.prototype.getTerminalPoint=function(t){return t?this.sourcePoint:this.targetPoint},mxGeometry.prototype.setTerminalPoint=function(t,e){return e?this.sourcePoint=t:this.targetPoint=t,t},mxGeometry.prototype.rotate=function(t,e){var n=mxUtils.toRadians(t),i=Math.cos(n),r=Math.sin(n);if(!this.relative){var o=new mxPoint(this.getCenterX(),this.getCenterY()),s=mxUtils.getRotatedPoint(o,i,r,e);this.x=Math.round(s.x-this.width/2),this.y=Math.round(s.y-this.height/2)}if(null!=this.sourcePoint){s=mxUtils.getRotatedPoint(this.sourcePoint,i,r,e);this.sourcePoint.x=Math.round(s.x),this.sourcePoint.y=Math.round(s.y)}if(null!=this.targetPoint){s=mxUtils.getRotatedPoint(this.targetPoint,i,r,e);this.targetPoint.x=Math.round(s.x),this.targetPoint.y=Math.round(s.y)}if(null!=this.points)for(var l=0;l<this.points.length;l++)if(null!=this.points[l]){s=mxUtils.getRotatedPoint(this.points[l],i,r,e);this.points[l].x=Math.round(s.x),this.points[l].y=Math.round(s.y)}},mxGeometry.prototype.translate=function(t,e){if(t=parseFloat(t),e=parseFloat(e),this.relative||(this.x=parseFloat(this.x)+t,this.y=parseFloat(this.y)+e),null!=this.sourcePoint&&(this.sourcePoint.x=parseFloat(this.sourcePoint.x)+t,this.sourcePoint.y=parseFloat(this.sourcePoint.y)+e),null!=this.targetPoint&&(this.targetPoint.x=parseFloat(this.targetPoint.x)+t,this.targetPoint.y=parseFloat(this.targetPoint.y)+e),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var n=0;n<this.points.length;n++)null!=this.points[n]&&(this.points[n].x=parseFloat(this.points[n].x)+t,this.points[n].y=parseFloat(this.points[n].y)+e)},mxGeometry.prototype.scale=function(t,e,n){if(t=parseFloat(t),e=parseFloat(e),null!=this.sourcePoint&&(this.sourcePoint.x=parseFloat(this.sourcePoint.x)*t,this.sourcePoint.y=parseFloat(this.sourcePoint.y)*e),null!=this.targetPoint&&(this.targetPoint.x=parseFloat(this.targetPoint.x)*t,this.targetPoint.y=parseFloat(this.targetPoint.y)*e),null!=this.points)for(var i=0;i<this.points.length;i++)null!=this.points[i]&&(this.points[i].x=parseFloat(this.points[i].x)*t,this.points[i].y=parseFloat(this.points[i].y)*e);this.relative||(this.x=parseFloat(this.x)*t,this.y=parseFloat(this.y)*e,n&&(e=t=Math.min(t,e)),this.width=parseFloat(this.width)*t,this.height=parseFloat(this.height)*e)},mxGeometry.prototype.equals=function(t){return mxRectangle.prototype.equals.apply(this,arguments)&&this.relative==t.relative&&(null==this.sourcePoint&&null==t.sourcePoint||null!=this.sourcePoint&&this.sourcePoint.equals(t.sourcePoint))&&(null==this.targetPoint&&null==t.targetPoint||null!=this.targetPoint&&this.targetPoint.equals(t.targetPoint))&&(null==this.points&&null==t.points||null!=this.points&&mxUtils.equalPoints(this.points,t.points))&&(null==this.alternateBounds&&null==t.alternateBounds||null!=this.alternateBounds&&this.alternateBounds.equals(t.alternateBounds))&&(null==this.offset&&null==t.offset||null!=this.offset&&this.offset.equals(t.offset))},__mxOutput.mxGeometry="undefined"!==typeof mxGeometry?mxGeometry:void 0;var mxCellPath={PATH_SEPARATOR:".",create:function(t){var e="";if(null!=t){var n=t.getParent();while(null!=n){var i=n.getIndex(t);e=i+mxCellPath.PATH_SEPARATOR+e,t=n,n=t.getParent()}}var r=e.length;return r>1&&(e=e.substring(0,r-1)),e},getParentPath:function(t){if(null!=t){var e=t.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(e>=0)return t.substring(0,e);if(t.length>0)return""}return null},resolve:function(t,e){var n=t;if(null!=e)for(var i=e.split(mxCellPath.PATH_SEPARATOR),r=0;r<i.length;r++)n=n.getChildAt(parseInt(i[r]));return n},compare:function(t,e){for(var n=Math.min(t.length,e.length),i=0,r=0;r<n;r++)if(t[r]!=e[r]){if(0==t[r].length||0==e[r].length)i=t[r]==e[r]?0:t[r]>e[r]?1:-1;else{var o=parseInt(t[r]),s=parseInt(e[r]);i=o==s?0:o>s?1:-1}break}if(0==i){o=t.length,s=e.length;o!=s&&(i=o>s?1:-1)}return i}};__mxOutput.mxCellPath="undefined"!==typeof mxCellPath?mxCellPath:void 0;var mxPerimeter={RectanglePerimeter:function(t,e,n,i){var r=t.getCenterX(),o=t.getCenterY(),s=n.x-r,l=n.y-o,a=Math.atan2(l,s),h=new mxPoint(0,0),u=Math.PI,d=Math.PI/2,c=d-a,p=Math.atan2(t.height,t.width);return a<-u+p||a>u-p?(h.x=t.x,h.y=o-t.width*Math.tan(a)/2):a<-p?(h.y=t.y,h.x=r-t.height*Math.tan(c)/2):a<p?(h.x=t.x+t.width,h.y=o+t.width*Math.tan(a)/2):(h.y=t.y+t.height,h.x=r+t.height*Math.tan(c)/2),i&&(n.x>=t.x&&n.x<=t.x+t.width?h.x=n.x:n.y>=t.y&&n.y<=t.y+t.height&&(h.y=n.y),n.x<t.x?h.x=t.x:n.x>t.x+t.width&&(h.x=t.x+t.width),n.y<t.y?h.y=t.y:n.y>t.y+t.height&&(h.y=t.y+t.height)),h},EllipsePerimeter:function(t,e,n,i){var r=t.x,o=t.y,s=t.width/2,l=t.height/2,a=r+s,h=o+l,u=n.x,d=n.y,c=parseInt(u-a),p=parseInt(d-h);if(0==c&&0!=p)return new mxPoint(a,h+l*p/Math.abs(p));if(0==c&&0==p)return new mxPoint(u,d);if(i){if(d>=o&&d<=o+t.height){var g=d-h,m=Math.sqrt(s*s*(1-g*g/(l*l)))||0;return u<=r&&(m=-m),new mxPoint(a+m,d)}if(u>=r&&u<=r+t.width){m=u-a,g=Math.sqrt(l*l*(1-m*m/(s*s)))||0;return d<=o&&(g=-g),new mxPoint(u,h+g)}}var x=p/c,y=h-x*a,f=s*s*x*x+l*l,A=-2*a*f,C=s*s*x*x*a*a+l*l*a*a-s*s*l*l,v=Math.sqrt(A*A-4*f*C),E=(-A+v)/(2*f),w=(-A-v)/(2*f),S=x*E+y,b=x*w+y,T=Math.sqrt(Math.pow(E-u,2)+Math.pow(S-d,2)),L=Math.sqrt(Math.pow(w-u,2)+Math.pow(b-d,2)),I=0,M=0;return T<L?(I=E,M=S):(I=w,M=b),new mxPoint(I,M)},RhombusPerimeter:function(t,e,n,i){var r=t.x,o=t.y,s=t.width,l=t.height,a=r+s/2,h=o+l/2,u=n.x,d=n.y;if(a==u)return new mxPoint(a,h>d?o:o+l);if(h==d)return new mxPoint(a>u?r:r+s,h);var c=a,p=h;return i&&(u>=r&&u<=r+s?c=u:d>=o&&d<=o+l&&(p=d)),u<a?d<h?mxUtils.intersection(u,d,c,p,a,o,r,h):mxUtils.intersection(u,d,c,p,a,o+l,r,h):d<h?mxUtils.intersection(u,d,c,p,a,o,r+s,h):mxUtils.intersection(u,d,c,p,a,o+l,r+s,h)},TrianglePerimeter:function(t,e,n,i){var r=null!=e?e.style[mxConstants.STYLE_DIRECTION]:null,o=r==mxConstants.DIRECTION_NORTH||r==mxConstants.DIRECTION_SOUTH,s=t.x,l=t.y,a=t.width,h=t.height,u=s+a/2,d=l+h/2,c=new mxPoint(s,l),p=new mxPoint(s+a,d),g=new mxPoint(s,l+h);r==mxConstants.DIRECTION_NORTH?(c=g,p=new mxPoint(u,l),g=new mxPoint(s+a,l+h)):r==mxConstants.DIRECTION_SOUTH?(p=new mxPoint(u,l+h),g=new mxPoint(s+a,l)):r==mxConstants.DIRECTION_WEST&&(c=new mxPoint(s+a,l),p=new mxPoint(s,d),g=new mxPoint(s+a,l+h));var m=n.x-u,x=n.y-d,y=o?Math.atan2(m,x):Math.atan2(x,m),f=o?Math.atan2(a,h):Math.atan2(h,a),A=!1;A=r==mxConstants.DIRECTION_NORTH||r==mxConstants.DIRECTION_WEST?y>-f&&y<f:y<-Math.PI+f||y>Math.PI-f;var C=null;if(A)C=i&&(o&&n.x>=c.x&&n.x<=g.x||!o&&n.y>=c.y&&n.y<=g.y)?o?new mxPoint(n.x,c.y):new mxPoint(c.x,n.y):r==mxConstants.DIRECTION_NORTH?new mxPoint(s+a/2+h*Math.tan(y)/2,l+h):r==mxConstants.DIRECTION_SOUTH?new mxPoint(s+a/2-h*Math.tan(y)/2,l):r==mxConstants.DIRECTION_WEST?new mxPoint(s+a,l+h/2+a*Math.tan(y)/2):new mxPoint(s,l+h/2-a*Math.tan(y)/2);else{if(i){var v=new mxPoint(u,d);n.y>=l&&n.y<=l+h?(v.x=o?u:r==mxConstants.DIRECTION_WEST?s+a:s,v.y=n.y):n.x>=s&&n.x<=s+a&&(v.x=n.x,v.y=o?r==mxConstants.DIRECTION_NORTH?l+h:l:d),m=n.x-v.x,x=n.y-v.y,u=v.x,d=v.y}C=o&&n.x<=s+a/2||!o&&n.y<=l+h/2?mxUtils.intersection(n.x,n.y,u,d,c.x,c.y,p.x,p.y):mxUtils.intersection(n.x,n.y,u,d,p.x,p.y,g.x,g.y)}return null==C&&(C=new mxPoint(u,d)),C},HexagonPerimeter:function(t,e,n,i){var r=t.x,o=t.y,s=t.width,l=t.height,a=t.getCenterX(),h=t.getCenterY(),u=n.x,d=n.y,c=u-a,p=d-h,g=-Math.atan2(p,c),m=Math.PI,x=Math.PI/2,y=new mxPoint(a,h),f=null!=e?mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST,A=f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH,C=new mxPoint,v=new mxPoint;if((u<r&&d<o||u<r&&d>o+l||u>r+s&&d<o||u>r+s&&d>o+l)&&(i=!1),i){if(A){if(u==a){if(d<=o)return new mxPoint(a,o);if(d>=o+l)return new mxPoint(a,o+l)}else if(u<r){if(d==o+l/4)return new mxPoint(r,o+l/4);if(d==o+3*l/4)return new mxPoint(r,o+3*l/4)}else if(u>r+s){if(d==o+l/4)return new mxPoint(r+s,o+l/4);if(d==o+3*l/4)return new mxPoint(r+s,o+3*l/4)}else if(u==r){if(d<h)return new mxPoint(r,o+l/4);if(d>h)return new mxPoint(r,o+3*l/4)}else if(u==r+s){if(d<h)return new mxPoint(r+s,o+l/4);if(d>h)return new mxPoint(r+s,o+3*l/4)}if(d==o)return new mxPoint(a,o);if(d==o+l)return new mxPoint(a,o+l);u<a?d>o+l/4&&d<o+3*l/4?(C=new mxPoint(r,o),v=new mxPoint(r,o+l)):d<o+l/4?(C=new mxPoint(r-Math.floor(.5*s),o+Math.floor(.5*l)),v=new mxPoint(r+s,o-Math.floor(.25*l))):d>o+3*l/4&&(C=new mxPoint(r-Math.floor(.5*s),o+Math.floor(.5*l)),v=new mxPoint(r+s,o+Math.floor(1.25*l))):u>a&&(d>o+l/4&&d<o+3*l/4?(C=new mxPoint(r+s,o),v=new mxPoint(r+s,o+l)):d<o+l/4?(C=new mxPoint(r,o-Math.floor(.25*l)),v=new mxPoint(r+Math.floor(1.5*s),o+Math.floor(.5*l))):d>o+3*l/4&&(C=new mxPoint(r+Math.floor(1.5*s),o+Math.floor(.5*l)),v=new mxPoint(r,o+Math.floor(1.25*l))))}else{if(d==h){if(u<=r)return new mxPoint(r,o+l/2);if(u>=r+s)return new mxPoint(r+s,o+l/2)}else if(d<o){if(u==r+s/4)return new mxPoint(r+s/4,o);if(u==r+3*s/4)return new mxPoint(r+3*s/4,o)}else if(d>o+l){if(u==r+s/4)return new mxPoint(r+s/4,o+l);if(u==r+3*s/4)return new mxPoint(r+3*s/4,o+l)}else if(d==o){if(u<a)return new mxPoint(r+s/4,o);if(u>a)return new mxPoint(r+3*s/4,o)}else if(d==o+l){if(u<a)return new mxPoint(r+s/4,o+l);if(d>h)return new mxPoint(r+3*s/4,o+l)}if(u==r)return new mxPoint(r,h);if(u==r+s)return new mxPoint(r+s,h);d<h?u>r+s/4&&u<r+3*s/4?(C=new mxPoint(r,o),v=new mxPoint(r+s,o)):u<r+s/4?(C=new mxPoint(r-Math.floor(.25*s),o+l),v=new mxPoint(r+Math.floor(.5*s),o-Math.floor(.5*l))):u>r+3*s/4&&(C=new mxPoint(r+Math.floor(.5*s),o-Math.floor(.5*l)),v=new mxPoint(r+Math.floor(1.25*s),o+l)):d>h&&(u>r+s/4&&u<r+3*s/4?(C=new mxPoint(r,o+l),v=new mxPoint(r+s,o+l)):u<r+s/4?(C=new mxPoint(r-Math.floor(.25*s),o),v=new mxPoint(r+Math.floor(.5*s),o+Math.floor(1.5*l))):u>r+3*s/4&&(C=new mxPoint(r+Math.floor(.5*s),o+Math.floor(1.5*l)),v=new mxPoint(r+Math.floor(1.25*s),o)))}var E=a,w=h;u>=r&&u<=r+s?(E=u,w=d<h?o+l:o):d>=o&&d<=o+l&&(w=d,E=u<a?r+s:r),y=mxUtils.intersection(E,w,n.x,n.y,C.x,C.y,v.x,v.y)}else{if(A){var S=Math.atan2(l/4,s/2);if(g==S)return new mxPoint(r+s,o+Math.floor(.25*l));if(g==x)return new mxPoint(r+Math.floor(.5*s),o);if(g==m-S)return new mxPoint(r,o+Math.floor(.25*l));if(g==-S)return new mxPoint(r+s,o+Math.floor(.75*l));if(g==-x)return new mxPoint(r+Math.floor(.5*s),o+l);if(g==-m+S)return new mxPoint(r,o+Math.floor(.75*l));g<S&&g>-S?(C=new mxPoint(r+s,o),v=new mxPoint(r+s,o+l)):g>S&&g<x?(C=new mxPoint(r,o-Math.floor(.25*l)),v=new mxPoint(r+Math.floor(1.5*s),o+Math.floor(.5*l))):g>x&&g<m-S?(C=new mxPoint(r-Math.floor(.5*s),o+Math.floor(.5*l)),v=new mxPoint(r+s,o-Math.floor(.25*l))):g>m-S&&g<=m||g<-m+S&&g>=-m?(C=new mxPoint(r,o),v=new mxPoint(r,o+l)):g<-S&&g>-x?(C=new mxPoint(r+Math.floor(1.5*s),o+Math.floor(.5*l)),v=new mxPoint(r,o+Math.floor(1.25*l))):g<-x&&g>-m+S&&(C=new mxPoint(r-Math.floor(.5*s),o+Math.floor(.5*l)),v=new mxPoint(r+s,o+Math.floor(1.25*l)))}else{S=Math.atan2(l/2,s/4);if(g==S)return new mxPoint(r+Math.floor(.75*s),o);if(g==m-S)return new mxPoint(r+Math.floor(.25*s),o);if(g==m||g==-m)return new mxPoint(r,o+Math.floor(.5*l));if(0==g)return new mxPoint(r+s,o+Math.floor(.5*l));if(g==-S)return new mxPoint(r+Math.floor(.75*s),o+l);if(g==-m+S)return new mxPoint(r+Math.floor(.25*s),o+l);g>0&&g<S?(C=new mxPoint(r+Math.floor(.5*s),o-Math.floor(.5*l)),v=new mxPoint(r+Math.floor(1.25*s),o+l)):g>S&&g<m-S?(C=new mxPoint(r,o),v=new mxPoint(r+s,o)):g>m-S&&g<m?(C=new mxPoint(r-Math.floor(.25*s),o+l),v=new mxPoint(r+Math.floor(.5*s),o-Math.floor(.5*l))):g<0&&g>-S?(C=new mxPoint(r+Math.floor(.5*s),o+Math.floor(1.5*l)),v=new mxPoint(r+Math.floor(1.25*s),o)):g<-S&&g>-m+S?(C=new mxPoint(r,o+l),v=new mxPoint(r+s,o+l)):g<-m+S&&g>-m&&(C=new mxPoint(r-Math.floor(.25*s),o),v=new mxPoint(r+Math.floor(.5*s),o+Math.floor(1.5*l)))}y=mxUtils.intersection(a,h,n.x,n.y,C.x,C.y,v.x,v.y)}return null==y?new mxPoint(a,h):y}};function mxPrintPreview(t,e,n,i,r,o,s,l,a){this.graph=t,this.scale=null!=e?e:1/t.pageScale,this.border=null!=i?i:0,this.pageFormat=mxRectangle.fromRectangle(null!=n?n:t.pageFormat),this.title=null!=l?l:"Printer-friendly version",this.x0=null!=r?r:0,this.y0=null!=o?o:0,this.borderColor=s,this.pageSelector=null==a||a}function mxStylesheet(){this.styles=new Object,this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(t,e,n){this.view=t,this.cell=e,this.style=null!=n?n:{},this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(t){this.graph=t,this.cells=[]}function mxSelectionChange(t,e,n){this.selectionModel=t,this.added=null!=e?e.slice():null,this.removed=null!=n?n.slice():null}function mxCellEditor(t){this.graph=t,this.zoomHandler=mxUtils.bind(this,(function(){this.graph.isEditing()&&this.resize()})),this.graph.view.addListener(mxEvent.SCALE,this.zoomHandler),this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.zoomHandler),this.changeHandler=mxUtils.bind(this,(function(t){null!=this.editingCell&&null==this.graph.getView().getState(this.editingCell)&&this.stopEditing(!0)})),this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler)}function mxCellRenderer(){}__mxOutput.mxPerimeter="undefined"!==typeof mxPerimeter?mxPerimeter:void 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 t="";return 5==document.documentMode?t='<meta http-equiv="X-UA-Compatible" content="IE=5">':8==document.documentMode?t='<meta http-equiv="X-UA-Compatible" content="IE=8">':document.documentMode>8&&(t='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]--\x3e'),t},mxPrintPreview.prototype.appendGraph=function(t,e,n,i,r,o){this.graph=t,this.scale=null!=e?e:1/t.pageScale,this.x0=n,this.y0=i,this.open(null,null,r,o)},mxPrintPreview.prototype.open=function(t,e,n,i){var r=this.graph.cellRenderer.initializeOverlay,o=null;try{this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(t,e){e.init(t.view.getDrawPane())}),this.printControls&&(this.graph.cellRenderer.initControl=function(t,e,n,i){e.dialect=t.view.graph.dialect,e.init(t.view.getDrawPane())}),this.wnd=null!=e?e:this.wnd;var s=!1;null==this.wnd&&(s=!0,this.wnd=window.open());var l=this.wnd.document;if(s){var a=this.getDoctype();null!=a&&a.length>0&&l.writeln(a),mxClient.IS_VML?l.writeln('<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">'):("CSS1Compat"===document.compatMode&&l.writeln("<!DOCTYPE html>"),l.writeln("<html>")),l.writeln("<head>"),this.writeHead(l,t),l.writeln("</head>"),l.writeln('<body class="mxPage">')}var h=this.graph.getGraphBounds().clone(),u=this.graph.getView().getScale(),d=u/this.scale,c=this.graph.getView().getTranslate();this.autoOrigin||(this.x0-=c.x*this.scale,this.y0-=c.y*this.scale,h.width+=h.x,h.height+=h.y,h.x=0,h.y=0,this.border=0);var p=this.pageFormat.width-2*this.border,g=this.pageFormat.height-2*this.border;this.pageFormat.height+=this.marginTop+this.marginBottom,h.width/=d,h.height/=d;var m=Math.max(1,Math.ceil((h.width+this.x0)/p)),x=Math.max(1,Math.ceil((h.height+this.y0)/g));this.pageCount=m*x;var y=mxUtils.bind(this,(function(){if(this.pageSelector&&(x>1||m>1)){var t=this.createPageSelector(x,m);if(l.body.appendChild(t),mxClient.IS_IE&&null==l.documentMode||5==l.documentMode||8==l.documentMode||7==l.documentMode){t.style.position="absolute";var e=function(){t.style.top=(l.body.scrollTop||l.documentElement.scrollTop)+10+"px"};mxEvent.addListener(this.wnd,"scroll",(function(t){e()})),mxEvent.addListener(this.wnd,"resize",(function(t){e()}))}}})),f=mxUtils.bind(this,(function(t,e){if(null!=this.borderColor&&(t.style.borderColor=this.borderColor,t.style.borderStyle="solid",t.style.borderWidth="1px"),t.style.background=this.backgroundColor,(n||e)&&(t.style.pageBreakAfter="always"),s&&(mxClient.IS_IE||document.documentMode>=11||mxClient.IS_EDGE))l.writeln(t.outerHTML),t.parentNode.removeChild(t);else if(mxClient.IS_IE||document.documentMode>=11||mxClient.IS_EDGE){var i=l.createElement("div");i.innerHTML=t.outerHTML,i=i.getElementsByTagName("div")[0],l.body.appendChild(i),t.parentNode.removeChild(t)}else t.parentNode.removeChild(t),l.body.appendChild(t);(n||e)&&this.addPageBreak(l)})),A=this.getCoverPages(this.pageFormat.width,this.pageFormat.height);if(null!=A)for(var C=0;C<A.length;C++)f(A[C],!0);var v=this.getAppendices(this.pageFormat.width,this.pageFormat.height);for(C=0;C<x;C++)for(var E=C*g/this.scale-this.y0/this.scale+(h.y-c.y*u)/u,w=0;w<m;w++){if(null==this.wnd)return null;var S=w*p/this.scale-this.x0/this.scale+(h.x-c.x*u)/u,b=C*m+w+1,T=new mxRectangle(S,E,p,g);o=this.renderPage(this.pageFormat.width,this.pageFormat.height,0,0,mxUtils.bind(this,(function(t){this.addGraphFragment(-S,-E,this.scale,b,t,T),this.printBackgroundImage&&this.insertBackgroundImage(t,-S,-E)})),b),o.setAttribute("id","mxPage-"+b),f(o,null!=v||C<x-1||w<m-1)}if(null!=v)for(C=0;C<v.length;C++)f(v[C],C<v.length-1);s&&!i&&(this.closeDocument(),y()),this.wnd.focus()}catch(L){null!=o&&null!=o.parentNode&&o.parentNode.removeChild(o)}finally{this.graph.cellRenderer.initializeOverlay=r}return this.wnd},mxPrintPreview.prototype.addPageBreak=function(t){var e=t.createElement("hr");e.className="mxPageBreak",t.body.appendChild(e)},mxPrintPreview.prototype.closeDocument=function(){try{if(null!=this.wnd&&null!=this.wnd.document){var t=this.wnd.document;this.writePostfix(t),t.writeln("</body>"),t.writeln("</html>"),t.close(),mxEvent.release(t.body)}}catch(e){}},mxPrintPreview.prototype.writeHead=function(t,e){null!=this.title&&t.writeln("<title>"+this.title+"</title>"),mxClient.IS_VML&&t.writeln('<style type="text/css">v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}</style>'),mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",t),t.writeln('<style type="text/css">'),t.writeln("@media print {"),t.writeln(" * { -webkit-print-color-adjust: exact; }"),t.writeln(" table.mxPageSelector { display: none; }"),t.writeln(" hr.mxPageBreak { display: none; }"),t.writeln("}"),t.writeln("@media screen {"),t.writeln(" table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }"),t.writeln(" table.mxPageSelector td { border: solid 1px gray; padding:4px; }"),t.writeln(" body.mxPage { background: gray; }"),t.writeln("}"),null!=e&&t.writeln(e),t.writeln("</style>")},mxPrintPreview.prototype.writePostfix=function(t){},mxPrintPreview.prototype.createPageSelector=function(t,e){var n=this.wnd.document,i=n.createElement("table");i.className="mxPageSelector",i.setAttribute("border","0");for(var r=n.createElement("tbody"),o=0;o<t;o++){for(var s=n.createElement("tr"),l=0;l<e;l++){var a=o*e+l+1,h=n.createElement("td"),u=n.createElement("a");if(u.setAttribute("href","#mxPage-"+a),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var d="var page = document.getElementById('mxPage-"+a+"');page.scrollIntoView(true);event.preventDefault();";u.setAttribute("onclick",d)}mxUtils.write(u,a,n),h.appendChild(u),s.appendChild(h)}r.appendChild(s)}return i.appendChild(r),i},mxPrintPreview.prototype.renderPage=function(t,e,n,i,r,o){var s=this.wnd.document,l=document.createElement("div"),a=null;try{if(0!=n||0!=i){l.style.position="relative",l.style.width=t+"px",l.style.height=e+"px",l.style.pageBreakInside="avoid";var h=document.createElement("div");h.style.position="relative",h.style.top=this.border+"px",h.style.left=this.border+"px",h.style.width=t-2*this.border+"px",h.style.height=e-2*this.border+"px",h.style.overflow="hidden";var u=document.createElement("div");u.style.position="relative",u.style.marginLeft=n+"px",u.style.marginTop=i+"px",8==s.documentMode&&(h.style.position="absolute",u.style.position="absolute"),10==s.documentMode&&(u.style.width="100%",u.style.height="100%"),h.appendChild(u),l.appendChild(h),document.body.appendChild(l),a=u}else{l.style.width=t+"px",l.style.height=e+"px",l.style.overflow="hidden",l.style.pageBreakInside="avoid",8==s.documentMode&&(l.style.position="relative");h=document.createElement("div");h.style.width=t-2*this.border+"px",h.style.height=e-2*this.border+"px",h.style.overflow="hidden",!mxClient.IS_IE||null!=s.documentMode&&5!=s.documentMode&&8!=s.documentMode&&7!=s.documentMode?(h.style.top=this.border+"px",h.style.left=this.border+"px"):(h.style.marginTop=this.border+"px",h.style.marginLeft=this.border+"px"),this.graph.dialect==mxConstants.DIALECT_VML&&(h.style.position="absolute"),l.appendChild(h),document.body.appendChild(l),a=h}}catch(d){throw l.parentNode.removeChild(l),l=null,d}return r(a),l},mxPrintPreview.prototype.getRoot=function(){var t=this.graph.view.currentRoot;return null==t&&(t=this.graph.getModel().getRoot()),t},mxPrintPreview.prototype.useCssTransforms=function(){return!mxClient.NO_FO&&!mxClient.IS_SF},mxPrintPreview.prototype.addGraphFragment=function(t,e,n,i,r,o){var s=this.graph.getView(),l=this.graph.container;this.graph.container=r;var a=s.getCanvas(),h=s.getBackgroundPane(),u=s.getDrawPane(),d=s.getOverlayPane(),c=n;if(this.graph.dialect==mxConstants.DIALECT_SVG){if(s.createSvg(),this.useCssTransforms()){var p=s.getDrawPane().parentNode;p.getAttribute("transform");p.setAttribute("transformOrigin","0 0"),p.setAttribute("transform","scale("+n+","+n+")translate("+t+","+e+")"),n=1,t=0,e=0}}else this.graph.dialect==mxConstants.DIALECT_VML?s.createVml():s.createHtml();var g=s.isEventsEnabled();s.setEventsEnabled(!1);var m=this.graph.isEnabled();this.graph.setEnabled(!1);var x=s.getTranslate();s.translate=new mxPoint(t,e);var y=this.graph.cellRenderer.redraw,f=s.states,A=s.scale;if(this.clipping){var C=new mxRectangle((o.x+x.x)*A,(o.y+x.y)*A,o.width*A/c,o.height*A/c);this.graph.cellRenderer.redraw=function(t,e,n){if(null!=t){var i=f.get(t.cell);if(null!=i){var r=s.getBoundingBox(i,!1);if(null!=r&&r.width>0&&r.height>0&&!mxUtils.intersects(C,r))return}}y.apply(this,arguments)}}var v=null;try{var E=[this.getRoot()];v=new mxTemporaryCellStates(s,n,E,null,mxUtils.bind(this,(function(t){return this.getLinkForCellState(t)})))}finally{if(mxClient.IS_IE)s.overlayPane.innerHTML="",s.canvas.style.overflow="hidden",s.canvas.style.position="relative",s.canvas.style.top=this.marginTop+"px",s.canvas.style.width=o.width+"px",s.canvas.style.height=o.height+"px";else{var w=r.firstChild;while(null!=w){var S=w.nextSibling,b=w.nodeName.toLowerCase();"svg"==b?(w.style.overflow="hidden",w.style.position="relative",w.style.top=this.marginTop+"px",w.setAttribute("width",o.width),w.setAttribute("height",o.height),w.style.width="",w.style.height=""):"default"!=w.style.cursor&&"div"!=b&&w.parentNode.removeChild(w),w=S}}if(this.printBackgroundImage){var T=r.getElementsByTagName("svg");T.length>0&&(T[0].style.position="absolute")}s.overlayPane.parentNode.removeChild(s.overlayPane),this.graph.setEnabled(m),this.graph.container=l,this.graph.cellRenderer.redraw=y,s.canvas=a,s.backgroundPane=h,s.drawPane=u,s.overlayPane=d,s.translate=x,v.destroy(),s.setEventsEnabled(g)}},mxPrintPreview.prototype.getLinkForCellState=function(t){return this.graph.getLinkForCell(t.cell)},mxPrintPreview.prototype.insertBackgroundImage=function(t,e,n){var i=this.graph.backgroundImage;if(null!=i){var r=document.createElement("img");r.style.position="absolute",r.style.marginLeft=Math.round(e*this.scale)+"px",r.style.marginTop=Math.round(n*this.scale)+"px",r.setAttribute("width",Math.round(this.scale*i.width)),r.setAttribute("height",Math.round(this.scale*i.height)),r.src=i.src,t.insertBefore(r,t.firstChild)}},mxPrintPreview.prototype.getCoverPages=function(){return null},mxPrintPreview.prototype.getAppendices=function(){return null},mxPrintPreview.prototype.print=function(t){var e=this.open(t);null!=e&&e.print()},mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)},__mxOutput.mxPrintPreview="undefined"!==typeof mxPrintPreview?mxPrintPreview:void 0,mxStylesheet.prototype.styles,mxStylesheet.prototype.createDefaultVertexStyle=function(){var t=new Object;return t[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE,t[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter,t[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,t[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,t[mxConstants.STYLE_FILLCOLOR]="#C3D9FF",t[mxConstants.STYLE_STROKECOLOR]="#6482B9",t[mxConstants.STYLE_FONTCOLOR]="#774400",t},mxStylesheet.prototype.createDefaultEdgeStyle=function(){var t=new Object;return t[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR,t[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC,t[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,t[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,t[mxConstants.STYLE_STROKECOLOR]="#6482B9",t[mxConstants.STYLE_FONTCOLOR]="#446299",t},mxStylesheet.prototype.putDefaultVertexStyle=function(t){this.putCellStyle("defaultVertex",t)},mxStylesheet.prototype.putDefaultEdgeStyle=function(t){this.putCellStyle("defaultEdge",t)},mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles["defaultVertex"]},mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles["defaultEdge"]},mxStylesheet.prototype.putCellStyle=function(t,e){this.styles[t]=e},mxStylesheet.prototype.getCellStyle=function(t,e){var n=e;if(null!=t&&t.length>0){var i=t.split(";");n=null!=n&&";"!=t.charAt(0)?mxUtils.clone(n):new Object;for(var r=0;r<i.length;r++){var o=i[r],s=o.indexOf("=");if(s>=0){var l=o.substring(0,s),a=o.substring(s+1);a==mxConstants.NONE?delete n[l]:mxUtils.isNumeric(a)?n[l]=parseFloat(a):n[l]=a}else{var h=this.styles[o];if(null!=h)for(var l in h)n[l]=h[l]}}}return n},__mxOutput.mxStylesheet="undefined"!==typeof mxStylesheet?mxStylesheet:void 0,mxCellState.prototype=new mxRectangle,mxCellState.prototype.constructor=mxCellState,mxCellState.prototype.view=null,mxCellState.prototype.cell=null,mxCellState.prototype.style=null,mxCellState.prototype.invalidStyle=!1,mxCellState.prototype.invalid=!0,mxCellState.prototype.origin=null,mxCellState.prototype.absolutePoints=null,mxCellState.prototype.absoluteOffset=null,mxCellState.prototype.visibleSourceState=null,mxCellState.prototype.visibleTargetState=null,mxCellState.prototype.terminalDistance=0,mxCellState.prototype.length=0,mxCellState.prototype.segments=null,mxCellState.prototype.shape=null,mxCellState.prototype.text=null,mxCellState.prototype.unscaledWidth=null,mxCellState.prototype.unscaledHeight=null,mxCellState.prototype.getPerimeterBounds=function(t,e){if(t=t||0,e=null!=e?e:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil&&"fixed"==this.shape.stencil.aspect){var n=this.shape.stencil.computeAspect(this.style,e.x,e.y,e.width,e.height);e.x=n.x,e.y=n.y,e.width=this.shape.stencil.w0*n.width,e.height=this.shape.stencil.h0*n.height}return 0!=t&&e.grow(t),e},mxCellState.prototype.setAbsoluteTerminalPoint=function(t,e){e?(null==this.absolutePoints&&(this.absolutePoints=[]),0==this.absolutePoints.length?this.absolutePoints.push(t):this.absolutePoints[0]=t):null==this.absolutePoints?(this.absolutePoints=[],this.absolutePoints.push(null),this.absolutePoints.push(t)):1==this.absolutePoints.length?this.absolutePoints.push(t):this.absolutePoints[this.absolutePoints.length-1]=t},mxCellState.prototype.setCursor=function(t){null!=this.shape&&this.shape.setCursor(t),null!=this.text&&this.text.setCursor(t)},mxCellState.prototype.getVisibleTerminal=function(t){var e=this.getVisibleTerminalState(t);return null!=e?e.cell:null},mxCellState.prototype.getVisibleTerminalState=function(t){return t?this.visibleSourceState:this.visibleTargetState},mxCellState.prototype.setVisibleTerminalState=function(t,e){e?this.visibleSourceState=t:this.visibleTargetState=t},mxCellState.prototype.getCellBounds=function(){return this.cellBounds},mxCellState.prototype.getPaintBounds=function(){return this.paintBounds},mxCellState.prototype.updateCachedBounds=function(){var t=this.view.translate,e=this.view.scale;this.cellBounds=new mxRectangle(this.x/e-t.x,this.y/e-t.y,this.width/e,this.height/e),this.paintBounds=mxRectangle.fromRectangle(this.cellBounds),null!=this.shape&&this.shape.isPaintBoundsInverted()&&this.paintBounds.rotate90()},mxCellState.prototype.setState=function(t){this.view=t.view,this.cell=t.cell,this.style=t.style,this.absolutePoints=t.absolutePoints,this.origin=t.origin,this.absoluteOffset=t.absoluteOffset,this.boundingBox=t.boundingBox,this.terminalDistance=t.terminalDistance,this.segments=t.segments,this.length=t.length,this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this.unscaledWidth=t.unscaledWidth,this.unscaledHeight=t.unscaledHeight},mxCellState.prototype.clone=function(){var t=new mxCellState(this.view,this.cell,this.style);if(null!=this.absolutePoints){t.absolutePoints=[];for(var e=0;e<this.absolutePoints.length;e++)t.absolutePoints[e]=this.absolutePoints[e].clone()}return null!=this.origin&&(t.origin=this.origin.clone()),null!=this.absoluteOffset&&(t.absoluteOffset=this.absoluteOffset.clone()),null!=this.boundingBox&&(t.boundingBox=this.boundingBox.clone()),t.terminalDistance=this.terminalDistance,t.segments=this.segments,t.length=this.length,t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t.unscaledWidth=this.unscaledWidth,t.unscaledHeight=this.unscaledHeight,t},mxCellState.prototype.destroy=function(){this.view.graph.cellRenderer.destroy(this)},__mxOutput.mxCellState="undefined"!==typeof mxCellState?mxCellState:void 0,mxGraphSelectionModel.prototype=new mxEventSource,mxGraphSelectionModel.prototype.constructor=mxGraphSelectionModel,mxGraphSelectionModel.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphSelectionModel.prototype.updatingSelectionResource="none"!=mxClient.language?"updatingSelection":"",mxGraphSelectionModel.prototype.graph=null,mxGraphSelectionModel.prototype.singleSelection=!1,mxGraphSelectionModel.prototype.isSingleSelection=function(){return this.singleSelection},mxGraphSelectionModel.prototype.setSingleSelection=function(t){this.singleSelection=t},mxGraphSelectionModel.prototype.isSelected=function(t){return null!=t&&mxUtils.indexOf(this.cells,t)>=0},mxGraphSelectionModel.prototype.isEmpty=function(){return 0==this.cells.length},mxGraphSelectionModel.prototype.clear=function(){this.changeSelection(null,this.cells)},mxGraphSelectionModel.prototype.setCell=function(t){null!=t&&this.setCells([t])},mxGraphSelectionModel.prototype.setCells=function(t){if(null!=t){this.singleSelection&&(t=[this.getFirstSelectableCell(t)]);for(var e=[],n=0;n<t.length;n++)this.graph.isCellSelectable(t[n])&&e.push(t[n]);this.changeSelection(e,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(t){if(null!=t)for(var e=0;e<t.length;e++)if(this.graph.isCellSelectable(t[e]))return t[e];return null},mxGraphSelectionModel.prototype.addCell=function(t){null!=t&&this.addCells([t])},mxGraphSelectionModel.prototype.addCells=function(t){if(null!=t){var e=null;this.singleSelection&&(e=this.cells,t=[this.getFirstSelectableCell(t)]);for(var n=[],i=0;i<t.length;i++)!this.isSelected(t[i])&&this.graph.isCellSelectable(t[i])&&n.push(t[i]);this.changeSelection(n,e)}},mxGraphSelectionModel.prototype.removeCell=function(t){null!=t&&this.removeCells([t])},mxGraphSelectionModel.prototype.removeCells=function(t){if(null!=t){for(var e=[],n=0;n<t.length;n++)this.isSelected(t[n])&&e.push(t[n]);this.changeSelection(null,e)}},mxGraphSelectionModel.prototype.changeSelection=function(t,e){if(null!=t&&t.length>0&&null!=t[0]||null!=e&&e.length>0&&null!=e[0]){var n=new mxSelectionChange(this,t,e);n.execute();var i=new mxUndoableEdit(this,!1);i.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",i))}},mxGraphSelectionModel.prototype.cellAdded=function(t){null==t||this.isSelected(t)||this.cells.push(t)},mxGraphSelectionModel.prototype.cellRemoved=function(t){if(null!=t){var e=mxUtils.indexOf(this.cells,t);e>=0&&this.cells.splice(e,1)}},mxSelectionChange.prototype.execute=function(){var t=mxLog.enter("mxSelectionChange.execute");if(window.status=mxResources.get(this.selectionModel.updatingSelectionResource)||this.selectionModel.updatingSelectionResource,null!=this.removed)for(var e=0;e<this.removed.length;e++)this.selectionModel.cellRemoved(this.removed[e]);if(null!=this.added)for(e=0;e<this.added.length;e++)this.selectionModel.cellAdded(this.added[e]);var n=this.added;this.added=this.removed,this.removed=n,window.status=mxResources.get(this.selectionModel.doneResource)||this.selectionModel.doneResource,mxLog.leave("mxSelectionChange.execute",t),this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE,"added",this.added,"removed",this.removed))},__mxOutput.mxGraphSelectionModel="undefined"!==typeof mxGraphSelectionModel?mxGraphSelectionModel:void 0,mxCellEditor.prototype.graph=null,mxCellEditor.prototype.textarea=null,mxCellEditor.prototype.editingCell=null,mxCellEditor.prototype.trigger=null,mxCellEditor.prototype.modified=!1,mxCellEditor.prototype.autoSize=!0,mxCellEditor.prototype.selectText=!0,mxCellEditor.prototype.emptyLabelText=mxClient.IS_FF?"<br>":"",mxCellEditor.prototype.escapeCancelsEditing=!0,mxCellEditor.prototype.textNode="",mxCellEditor.prototype.zIndex=5,mxCellEditor.prototype.minResize=new mxRectangle(0,20),mxCellEditor.prototype.wordWrapPadding=mxClient.IS_QUIRKS?2:mxClient.IS_IE11?0:1,mxCellEditor.prototype.blurEnabled=!1,mxCellEditor.prototype.initialValue=null,mxCellEditor.prototype.align=null,mxCellEditor.prototype.init=function(){this.textarea=document.createElement("div"),this.textarea.className="mxCellEditor mxPlainTextEditor",this.textarea.contentEditable=!0,mxClient.IS_GC&&(this.textarea.style.minHeight="1em"),this.textarea.style.position=this.isLegacyEditor()?"absolute":"relative",this.installListeners(this.textarea)},mxCellEditor.prototype.applyValue=function(t,e){this.graph.labelChanged(t.cell,e,this.trigger)},mxCellEditor.prototype.setAlign=function(t){null!=this.textarea&&(this.textarea.style.textAlign=t),this.align=t,this.resize()},mxCellEditor.prototype.getInitialValue=function(t,e){var n=mxUtils.htmlEntities(this.graph.getEditingValue(t.cell,e),!1);return mxClient.IS_QUIRKS||8==document.documentMode||9==document.documentMode||10==document.documentMode||(n=mxUtils.replaceTrailingNewlines(n,"<div><br></div>")),n.replace(/\n/g,"<br>")},mxCellEditor.prototype.getCurrentValue=function(t){return mxUtils.extractTextWithWhitespace(this.textarea.childNodes)},mxCellEditor.prototype.isCancelEditingKeyEvent=function(t){return this.escapeCancelsEditing||mxEvent.isShiftDown(t)||mxEvent.isControlDown(t)||mxEvent.isMetaDown(t)},mxCellEditor.prototype.installListeners=function(t){mxEvent.addListener(t,"dragstart",mxUtils.bind(this,(function(t){this.graph.stopEditing(!1),mxEvent.consume(t)}))),mxEvent.addListener(t,"blur",mxUtils.bind(this,(function(t){this.blurEnabled&&this.focusLost(t)}))),mxEvent.addListener(t,"keydown",mxUtils.bind(this,(function(t){mxEvent.isConsumed(t)||(this.isStopEditingEvent(t)?(this.graph.stopEditing(!1),mxEvent.consume(t)):27==t.keyCode&&(this.graph.stopEditing(this.isCancelEditingKeyEvent(t)),mxEvent.consume(t)))})));var e=mxUtils.bind(this,(function(e){null!=this.editingCell&&this.clearOnChange&&t.innerHTML==this.getEmptyLabelText()&&(!mxClient.IS_FF||8!=e.keyCode&&46!=e.keyCode)&&(this.clearOnChange=!1,t.innerHTML="")}));mxEvent.addListener(t,"keypress",e),mxEvent.addListener(t,"paste",e);var n=mxUtils.bind(this,(function(t){null!=this.editingCell&&(0==this.textarea.innerHTML.length||"<br>"==this.textarea.innerHTML?(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=this.textarea.innerHTML.length>0):this.clearOnChange=!1)}));mxEvent.addListener(t,mxClient.IS_IE11||mxClient.IS_IE?"keyup":"input",n),mxEvent.addListener(t,"cut",n),mxEvent.addListener(t,"paste",n);var i=mxClient.IS_IE11||mxClient.IS_IE?"keydown":"input",r=mxUtils.bind(this,(function(t){null!=this.editingCell&&this.autoSize&&!mxEvent.isConsumed(t)&&(null!=this.resizeThread&&window.clearTimeout(this.resizeThread),this.resizeThread=window.setTimeout(mxUtils.bind(this,(function(){this.resizeThread=null,this.resize()})),0))}));mxEvent.addListener(t,i,r),mxEvent.addListener(window,"resize",r),document.documentMode>=9?(mxEvent.addListener(t,"DOMNodeRemoved",r),mxEvent.addListener(t,"DOMNodeInserted",r)):(mxEvent.addListener(t,"cut",r),mxEvent.addListener(t,"paste",r))},mxCellEditor.prototype.isStopEditingEvent=function(t){return 113==t.keyCode||this.graph.isEnterStopsCellEditing()&&13==t.keyCode&&!mxEvent.isControlDown(t)&&!mxEvent.isShiftDown(t)},mxCellEditor.prototype.isEventSource=function(t){return mxEvent.getSource(t)==this.textarea},mxCellEditor.prototype.resize=function(){var t=this.graph.getView().getState(this.editingCell);if(null==t)this.stopEditing(!0);else if(null!=this.textarea){var e=this.graph.getModel().isEdge(t.cell),n=this.graph.getView().scale,i=null;if(this.autoSize&&"fill"!=t.style[mxConstants.STYLE_OVERFLOW]){var r=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_WIDTH,null);if(i=null!=t.text&&null==this.align?t.text.margin:null,null==i&&(i=mxUtils.getAlignmentAsPoint(this.align||mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(t.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE))),e){if(this.bounds=new mxRectangle(t.absoluteOffset.x,t.absoluteOffset.y,0,0),null!=r){var o=(parseFloat(r)+2)*n;this.bounds.width=o,this.bounds.x+=i.x*o}}else{var s=mxRectangle.fromRectangle(t),l=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),a=mxUtils.getValue(t.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);if(s=null!=t.shape&&l==mxConstants.ALIGN_CENTER&&a==mxConstants.ALIGN_MIDDLE?t.shape.getLabelBounds(s):s,null!=r&&(s.width=parseFloat(r)*n),!t.view.graph.cellRenderer.legacySpacing||"width"!=t.style[mxConstants.STYLE_OVERFLOW]){var h=parseInt(t.style[mxConstants.STYLE_SPACING]||2)*n,u=(parseInt(t.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*n+h,d=(parseInt(t.style[mxConstants.STYLE_SPACING_RIGHT]||0)+mxText.prototype.baseSpacingRight)*n+h,c=(parseInt(t.style[mxConstants.STYLE_SPACING_BOTTOM]||0)+mxText.prototype.baseSpacingBottom)*n+h,p=(parseInt(t.style[mxConstants.STYLE_SPACING_LEFT]||0)+mxText.prototype.baseSpacingLeft)*n+h;l=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),a=mxUtils.getValue(t.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);s=new mxRectangle(s.x+p,s.y+u,s.width-(l==mxConstants.ALIGN_CENTER&&null==r?p+d:0),s.height-(a==mxConstants.ALIGN_MIDDLE?u+c:0))}this.bounds=new mxRectangle(s.x+t.absoluteOffset.x,s.y+t.absoluteOffset.y,s.width,s.height)}if(this.graph.isWrapping(t.cell)&&(this.bounds.width>=2||this.bounds.height>=2)&&this.textarea.innerHTML!=this.getEmptyLabelText()){this.textarea.style.wordWrap=mxConstants.WORD_WRAP,this.textarea.style.whiteSpace="normal";o=Math.round(this.bounds.width/(document.documentMode,n))+this.wordWrapPadding;"relative"!=this.textarea.style.position?(this.textarea.style.width=o+"px",this.textarea.scrollWidth>o&&(this.textarea.style.width=this.textarea.scrollWidth+"px")):this.textarea.style.maxWidth=o+"px"}else this.textarea.style.whiteSpace="nowrap",this.textarea.style.width="";8==document.documentMode&&(this.textarea.style.zoom="1",this.textarea.style.height="auto");var g=this.textarea.scrollWidth,m=this.textarea.scrollHeight;8==document.documentMode?(this.textarea.style.left=Math.max(0,Math.ceil((this.bounds.x-i.x*(this.bounds.width-(g+1)*n)+g*(n-1)*0+2*(i.x+.5))/n))+"px",this.textarea.style.top=Math.max(0,Math.ceil((this.bounds.y-i.y*(this.bounds.height-(m+.5)*n)+m*(n-1)*0+1*Math.abs(i.y+.5))/n))+"px",this.textarea.style.width=Math.round(g*n)+"px",this.textarea.style.height=Math.round(m*n)+"px"):mxClient.IS_QUIRKS?(this.textarea.style.left=Math.max(0,Math.ceil(this.bounds.x-i.x*(this.bounds.width-(g+1)*n)+g*(n-1)*0+2*(i.x+.5)))+"px",this.textarea.style.top=Math.max(0,Math.ceil(this.bounds.y-i.y*(this.bounds.height-(m+.5)*n)+m*(n-1)*0+1*Math.abs(i.y+.5)))+"px"):(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-i.x*(this.bounds.width-2))+1)+"px",this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-i.y*(this.bounds.height-4)+(-1==i.y?3:0))+1)+"px")}else this.bounds=this.getEditorBounds(t),this.textarea.style.width=Math.round(this.bounds.width/n)+"px",this.textarea.style.height=Math.round(this.bounds.height/n)+"px",8==document.documentMode||mxClient.IS_QUIRKS?(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(t.cell)&&(this.bounds.width>=2||this.bounds.height>=2)&&this.textarea.innerHTML!=this.getEmptyLabelText()?(this.textarea.style.wordWrap=mxConstants.WORD_WRAP,this.textarea.style.whiteSpace="normal","fill"!=t.style[mxConstants.STYLE_OVERFLOW]&&(this.textarea.style.width=Math.round(this.bounds.width/n)+this.wordWrapPadding+"px")):(this.textarea.style.whiteSpace="nowrap","fill"!=t.style[mxConstants.STYLE_OVERFLOW]&&(this.textarea.style.width=""));mxClient.IS_VML?this.textarea.style.zoom=n:(mxUtils.setPrefixedStyle(this.textarea.style,"transformOrigin","0px 0px"),mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+n+","+n+")"+(null==i?"":" translate("+100*i.x+"%,"+100*i.y+"%)")))}},mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing())},mxCellEditor.prototype.getBackgroundColor=function(t){return null},mxCellEditor.prototype.isLegacyEditor=function(){if(mxClient.IS_VML)return!0;var t=!1;if(mxClient.IS_SVG){var e=this.graph.view.getDrawPane().ownerSVGElement;if(null!=e){var n=mxUtils.getCurrentStyle(e);null!=n&&(t="absolute"==n.position)}}return!t},mxCellEditor.prototype.startEditing=function(t,e){this.stopEditing(!0),this.align=null,null==this.textarea&&this.init(),null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.hideTooltip();var n=this.graph.getView().getState(t);if(null!=n){this.graph.getView().scale;var i=mxUtils.getValue(n.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),r=mxUtils.getValue(n.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),o=mxUtils.getValue(n.style,mxConstants.STYLE_FONTCOLOR,"black"),s=mxUtils.getValue(n.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),l=(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,a=(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,h=[];(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&h.push("underline"),(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&h.push("line-through"),this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(i*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT,this.textarea.style.backgroundColor=this.getBackgroundColor(n),this.textarea.style.textDecoration=h.join(" "),this.textarea.style.fontWeight=l?"bold":"normal",this.textarea.style.fontStyle=a?"italic":"",this.textarea.style.fontSize=Math.round(i)+"px",this.textarea.style.zIndex=this.zIndex,this.textarea.style.fontFamily=r,this.textarea.style.textAlign=s,this.textarea.style.outline="none",this.textarea.style.color=o;var u=this.textDirection=mxUtils.getValue(n.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);u==mxConstants.TEXT_DIRECTION_AUTO&&(null==n||null==n.text||n.text.dialect==mxConstants.DIALECT_STRICTHTML||mxUtils.isNode(n.text.value)||(u=n.text.getAutoDirection())),u==mxConstants.TEXT_DIRECTION_LTR||u==mxConstants.TEXT_DIRECTION_RTL?this.textarea.setAttribute("dir",u):this.textarea.removeAttribute("dir"),this.textarea.innerHTML=this.getInitialValue(n,e)||"",this.initialValue=this.textarea.innerHTML,0==this.textarea.innerHTML.length||"<br>"==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=t,this.trigger=e,this.textNode=null,null!=n.text&&this.isHideLabel(n)&&(this.textNode=n.text.node,this.textNode.style.visibility="hidden"),this.autoSize&&(this.graph.model.isEdge(n.cell)||"fill"!=n.style[mxConstants.STYLE_OVERFLOW])&&window.setTimeout(mxUtils.bind(this,(function(){this.resize()})),0),this.resize();try{this.textarea.focus(),this.isSelectText()&&this.textarea.innerHTML.length>0&&(this.textarea.innerHTML!=this.getEmptyLabelText()||!this.clearOnChange)&&document.execCommand("selectAll",!1,null)}catch(d){}}},mxCellEditor.prototype.isSelectText=function(){return this.selectText},mxCellEditor.prototype.clearSelection=function(){var t=null;window.getSelection?t=window.getSelection():document.selection&&(t=document.selection),null!=t&&(t.empty?t.empty():t.removeAllRanges&&t.removeAllRanges())},mxCellEditor.prototype.stopEditing=function(t){if(t=t||!1,null!=this.editingCell){null!=this.textNode&&(this.textNode.style.visibility="visible",this.textNode=null);var e=t?null:this.graph.view.getState(this.editingCell),n=this.initialValue;if(this.initialValue=null,this.editingCell=null,this.trigger=null,this.bounds=null,this.textarea.blur(),this.clearSelection(),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.textarea.innerHTML="",this.clearOnChange=!1),null!=e&&(this.textarea.innerHTML!=n||null!=this.align)){this.prepareTextarea();var i=this.getCurrentValue(e);this.graph.getModel().beginUpdate();try{null!=i&&this.applyValue(e,i),null!=this.align&&this.graph.setCellStyles(mxConstants.STYLE_ALIGN,this.align,[e.cell])}finally{this.graph.getModel().endUpdate()}}mxEvent.release(this.textarea),this.textarea=null,this.align=null}},mxCellEditor.prototype.prepareTextarea=function(){null!=this.textarea.lastChild&&"BR"==this.textarea.lastChild.nodeName&&this.textarea.removeChild(this.textarea.lastChild)},mxCellEditor.prototype.isHideLabel=function(t){return!0},mxCellEditor.prototype.getMinimumSize=function(t){var e=this.graph.getView().scale;return new mxRectangle(0,0,null==t.text?30:t.text.size*e+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(t){var e=this.graph.getModel().isEdge(t.cell),n=this.graph.getView().scale,i=this.getMinimumSize(t),r=i.width,o=i.height,s=null;if(!e&&t.view.graph.cellRenderer.legacySpacing&&"fill"==t.style[mxConstants.STYLE_OVERFLOW])s=t.shape.getLabelBounds(mxRectangle.fromRectangle(t));else{var l=parseInt(t.style[mxConstants.STYLE_SPACING]||0)*n,a=(parseInt(t.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*n+l,h=(parseInt(t.style[mxConstants.STYLE_SPACING_RIGHT]||0)+mxText.prototype.baseSpacingRight)*n+l,u=(parseInt(t.style[mxConstants.STYLE_SPACING_BOTTOM]||0)+mxText.prototype.baseSpacingBottom)*n+l,d=(parseInt(t.style[mxConstants.STYLE_SPACING_LEFT]||0)+mxText.prototype.baseSpacingLeft)*n+l;s=new mxRectangle(t.x,t.y,Math.max(r,t.width-d-h),Math.max(o,t.height-a-u));var c=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),p=mxUtils.getValue(t.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);if(s=null!=t.shape&&c==mxConstants.ALIGN_CENTER&&p==mxConstants.ALIGN_MIDDLE?t.shape.getLabelBounds(s):s,e?(s.x=t.absoluteOffset.x,s.y=t.absoluteOffset.y,null!=t.text&&null!=t.text.boundingBox&&(t.text.boundingBox.x>0&&(s.x=t.text.boundingBox.x),t.text.boundingBox.y>0&&(s.y=t.text.boundingBox.y))):null!=t.text&&null!=t.text.boundingBox&&(s.x=Math.min(s.x,t.text.boundingBox.x),s.y=Math.min(s.y,t.text.boundingBox.y)),s.x+=d,s.y+=a,null!=t.text&&null!=t.text.boundingBox&&(e?(s.width=Math.max(r,t.text.boundingBox.width),s.height=Math.max(o,t.text.boundingBox.height)):(s.width=Math.max(s.width,t.text.boundingBox.width),s.height=Math.max(s.height,t.text.boundingBox.height))),this.graph.getModel().isVertex(t.cell)){var g=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);g==mxConstants.ALIGN_LEFT?s.x-=t.width:g==mxConstants.ALIGN_RIGHT&&(s.x+=t.width);var m=mxUtils.getValue(t.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);m==mxConstants.ALIGN_TOP?s.y-=t.height:m==mxConstants.ALIGN_BOTTOM&&(s.y+=t.height)}}return new mxRectangle(Math.round(s.x),Math.round(s.y),Math.round(s.width),Math.round(s.height))},mxCellEditor.prototype.getEmptyLabelText=function(t){return this.emptyLabelText},mxCellEditor.prototype.getEditingCell=function(){return this.editingCell},mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null),null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null),this.zoomHandler&&(this.graph.view.removeListener(this.zoomHandler),this.zoomHandler=null)},__mxOutput.mxCellEditor="undefined"!==typeof mxCellEditor?mxCellEditor:void 0,mxCellRenderer.defaultShapes=new Object,mxCellRenderer.prototype.defaultEdgeShape=mxConnector,mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape,mxCellRenderer.prototype.defaultTextShape=mxText,mxCellRenderer.prototype.legacyControlPosition=!0,mxCellRenderer.prototype.legacySpacing=!0,mxCellRenderer.prototype.antiAlias=!0,mxCellRenderer.prototype.minSvgStrokeWidth=1,mxCellRenderer.prototype.forceControlClickHandler=!1,mxCellRenderer.registerShape=function(t,e){mxCellRenderer.defaultShapes[t]=e},mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape),mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus),mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder),mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector),mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor),mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle),mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon),mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud),mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine),mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow),mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector),mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane),mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape),mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel),mxCellRenderer.prototype.initializeShape=function(t){t.shape.dialect=t.view.graph.dialect,this.configureShape(t),t.shape.init(t.view.getDrawPane())},mxCellRenderer.prototype.createShape=function(t){var e=null;if(null!=t.style){var n=mxStencilRegistry.getStencil(t.style[mxConstants.STYLE_SHAPE]);if(null!=n)e=new mxShape(n);else{var i=this.getShapeConstructor(t);e=new i}}return e},mxCellRenderer.prototype.createIndicatorShape=function(t){t.shape.indicatorShape=this.getShape(t.view.graph.getIndicatorShape(t))},mxCellRenderer.prototype.getShape=function(t){return null!=t?mxCellRenderer.defaultShapes[t]:null},mxCellRenderer.prototype.getShapeConstructor=function(t){var e=this.getShape(t.style[mxConstants.STYLE_SHAPE]);return null==e&&(e=t.view.graph.getModel().isEdge(t.cell)?this.defaultEdgeShape:this.defaultVertexShape),e},mxCellRenderer.prototype.configureShape=function(t){t.shape.apply(t),t.shape.image=t.view.graph.getImage(t),t.shape.indicatorColor=t.view.graph.getIndicatorColor(t),t.shape.indicatorStrokeColor=t.style[mxConstants.STYLE_INDICATOR_STROKECOLOR],t.shape.indicatorGradientColor=t.view.graph.getIndicatorGradientColor(t),t.shape.indicatorDirection=t.style[mxConstants.STYLE_INDICATOR_DIRECTION],t.shape.indicatorImage=t.view.graph.getIndicatorImage(t),this.postConfigureShape(t)},mxCellRenderer.prototype.postConfigureShape=function(t){null!=t.shape&&(this.resolveColor(t,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(t,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(t,"gradient",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(t,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(t,"fill",mxConstants.STYLE_FILLCOLOR))},mxCellRenderer.prototype.checkPlaceholderStyles=function(t){if(null!=t.style)for(var e=["inherit","swimlane","indicated"],n=[mxConstants.STYLE_FILLCOLOR,mxConstants.STYLE_STROKECOLOR,mxConstants.STYLE_GRADIENTCOLOR,mxConstants.STYLE_FONTCOLOR],i=0;i<n.length;i++)if(mxUtils.indexOf(e,t.style[n[i]])>=0)return!0;return!1},mxCellRenderer.prototype.resolveColor=function(t,e,n){var i=n==mxConstants.STYLE_FONTCOLOR?t.text:t.shape;if(null!=i){var r=t.view.graph,o=i[e],s=null;if("inherit"==o?s=r.model.getParent(t.cell):"swimlane"==o?(i[e]=n==mxConstants.STYLE_STROKECOLOR||n==mxConstants.STYLE_FONTCOLOR?"#000000":"#ffffff",s=null!=r.model.getTerminal(t.cell,!1)?r.model.getTerminal(t.cell,!1):t.cell,s=r.getSwimlane(s),n=r.swimlaneIndicatorColorAttribute):"indicated"==o&&null!=t.shape?i[e]=t.shape.indicatorColor:n!=mxConstants.STYLE_FILLCOLOR&&o==mxConstants.STYLE_FILLCOLOR&&null!=t.shape?i[e]=t.style[mxConstants.STYLE_FILLCOLOR]:n!=mxConstants.STYLE_STROKECOLOR&&o==mxConstants.STYLE_STROKECOLOR&&null!=t.shape&&(i[e]=t.style[mxConstants.STYLE_STROKECOLOR]),null!=s){var l=r.getView().getState(s);if(i[e]=null,null!=l){var a=n==mxConstants.STYLE_FONTCOLOR?l.text:l.shape;i[e]=null!=a&&"indicatorColor"!=e?a[e]:l.style[n]}}}},mxCellRenderer.prototype.getLabelValue=function(t){return t.view.graph.getLabel(t.cell)},mxCellRenderer.prototype.createLabel=function(t,e){var n=t.view.graph;n.getModel().isEdge(t.cell);if(t.style[mxConstants.STYLE_FONTSIZE]>0||null==t.style[mxConstants.STYLE_FONTSIZE]){var i=n.isHtmlLabel(t.cell)||null!=e&&mxUtils.isNode(e);t.text=new this.defaultTextShape(e,new mxRectangle,t.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,n.getVerticalAlign(t),t.style[mxConstants.STYLE_FONTCOLOR],t.style[mxConstants.STYLE_FONTFAMILY],t.style[mxConstants.STYLE_FONTSIZE],t.style[mxConstants.STYLE_FONTSTYLE],t.style[mxConstants.STYLE_SPACING],t.style[mxConstants.STYLE_SPACING_TOP],t.style[mxConstants.STYLE_SPACING_RIGHT],t.style[mxConstants.STYLE_SPACING_BOTTOM],t.style[mxConstants.STYLE_SPACING_LEFT],t.style[mxConstants.STYLE_HORIZONTAL],t.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],t.style[mxConstants.STYLE_LABEL_BORDERCOLOR],n.isWrapping(t.cell)&&n.isHtmlLabel(t.cell),n.isLabelClipped(t.cell),t.style[mxConstants.STYLE_OVERFLOW],t.style[mxConstants.STYLE_LABEL_PADDING],mxUtils.getValue(t.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION)),t.text.opacity=mxUtils.getValue(t.style,mxConstants.STYLE_TEXT_OPACITY,100),t.text.dialect=i?mxConstants.DIALECT_STRICTHTML:t.view.graph.dialect,t.text.style=t.style,t.text.state=t,this.initializeLabel(t,t.text);var r=!1,o=function(e){var i=t;if(mxClient.IS_TOUCH||r){var o=mxEvent.getClientX(e),s=mxEvent.getClientY(e),l=mxUtils.convertPoint(n.container,o,s);i=n.view.getState(n.getCellAt(l.x,l.y))}return i};mxEvent.addGestureListeners(t.text.node,mxUtils.bind(this,(function(e){this.isLabelEvent(t,e)&&(n.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),r=n.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName)})),mxUtils.bind(this,(function(e){this.isLabelEvent(t,e)&&n.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,o(e)))})),mxUtils.bind(this,(function(e){this.isLabelEvent(t,e)&&(n.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,o(e))),r=!1)}))),n.nativeDblClickEnabled&&mxEvent.addListener(t.text.node,"dblclick",mxUtils.bind(this,(function(e){this.isLabelEvent(t,e)&&(n.dblClick(e,t.cell),mxEvent.consume(e))})))}},mxCellRenderer.prototype.initializeLabel=function(t,e){mxClient.IS_SVG&&mxClient.NO_FO&&e.dialect!=mxConstants.DIALECT_SVG?e.init(t.view.graph.container):e.init(t.view.getDrawPane())},mxCellRenderer.prototype.createCellOverlays=function(t){var e=t.view.graph,n=e.getCellOverlays(t.cell),i=null;if(null!=n){i=new mxDictionary;for(var r=0;r<n.length;r++){var o=null!=t.overlays?t.overlays.remove(n[r]):null;if(null==o){var s=new mxImageShape(new mxRectangle,n[r].image.src);s.dialect=t.view.graph.dialect,s.preserveImageAspect=!1,s.overlay=n[r],this.initializeOverlay(t,s),this.installCellOverlayListeners(t,n[r],s),null!=n[r].cursor&&(s.node.style.cursor=n[r].cursor),i.put(n[r],s)}else i.put(n[r],o)}}null!=t.overlays&&t.overlays.visit((function(t,e){e.destroy()})),t.overlays=i},mxCellRenderer.prototype.initializeOverlay=function(t,e){e.init(t.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(t,e,n){var i=t.view.graph;mxEvent.addListener(n.node,"click",(function(n){i.isEditing()&&i.stopEditing(!i.isInvokesStopCellEditing()),e.fireEvent(new mxEventObject(mxEvent.CLICK,"event",n,"cell",t.cell))})),mxEvent.addGestureListeners(n.node,(function(t){mxEvent.consume(t)}),(function(e){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,t))})),mxClient.IS_TOUCH&&mxEvent.addListener(n.node,"touchend",(function(n){e.fireEvent(new mxEventObject(mxEvent.CLICK,"event",n,"cell",t.cell))}))},mxCellRenderer.prototype.createControl=function(t){var e=t.view.graph,n=e.getFoldingImage(t);if(e.foldingEnabled&&null!=n){if(null==t.control){var i=new mxRectangle(0,0,n.width,n.height);t.control=new mxImageShape(i,n.src),t.control.preserveImageAspect=!1,t.control.dialect=e.dialect,this.initControl(t,t.control,!0,this.createControlClickHandler(t))}}else null!=t.control&&(t.control.destroy(),t.control=null)},mxCellRenderer.prototype.createControlClickHandler=function(t){var e=t.view.graph;return mxUtils.bind(this,(function(n){if(this.forceControlClickHandler||e.isEnabled()){var i=!e.isCellCollapsed(t.cell);e.foldCells(i,!1,[t.cell],null,n),mxEvent.consume(n)}}))},mxCellRenderer.prototype.initControl=function(t,e,n,i){var r=t.view.graph,o=r.isHtmlLabel(t.cell)&&mxClient.NO_FO&&r.dialect==mxConstants.DIALECT_SVG;o?(e.dialect=mxConstants.DIALECT_PREFERHTML,e.init(r.container),e.node.style.zIndex=1):e.init(t.view.getOverlayPane());var s=e.innerNode||e.node;if(null==i||mxClient.IS_IOS||(r.isEnabled()&&(s.style.cursor="pointer"),mxEvent.addListener(s,"click",i)),n){var l=null;mxEvent.addGestureListeners(s,(function(e){l=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),r.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),mxEvent.consume(e)}),(function(e){r.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,t))}),(function(e){r.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,t)),mxEvent.consume(e)})),null!=i&&mxClient.IS_IOS&&s.addEventListener("touchend",(function(t){if(null!=l){var e=r.tolerance;Math.abs(l.x-mxEvent.getClientX(t))<e&&Math.abs(l.y-mxEvent.getClientY(t))<e&&(i.call(i,t),mxEvent.consume(t))}}),!0)}return s},mxCellRenderer.prototype.isShapeEvent=function(t,e){return!0},mxCellRenderer.prototype.isLabelEvent=function(t,e){return!0},mxCellRenderer.prototype.installListeners=function(t){var e=t.view.graph,n=function(n){var i=t;if(e.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(n).nodeName||mxClient.IS_TOUCH){var r=mxEvent.getClientX(n),o=mxEvent.getClientY(n),s=mxUtils.convertPoint(e.container,r,o);i=e.view.getState(e.getCellAt(s.x,s.y))}return i};mxEvent.addGestureListeners(t.shape.node,mxUtils.bind(this,(function(n){this.isShapeEvent(t,n)&&e.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(n,t))})),mxUtils.bind(this,(function(i){this.isShapeEvent(t,i)&&e.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(i,n(i)))})),mxUtils.bind(this,(function(i){this.isShapeEvent(t,i)&&e.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(i,n(i)))}))),e.nativeDblClickEnabled&&mxEvent.addListener(t.shape.node,"dblclick",mxUtils.bind(this,(function(n){this.isShapeEvent(t,n)&&(e.dblClick(n,t.cell),mxEvent.consume(n))})))},mxCellRenderer.prototype.redrawLabel=function(t,e){var n=t.view.graph,i=this.getLabelValue(t),r=n.isWrapping(t.cell),o=n.isLabelClipped(t.cell),s=t.view.graph.isHtmlLabel(t.cell)||null!=i&&mxUtils.isNode(i),l=s?mxConstants.DIALECT_STRICTHTML:t.view.graph.dialect,a=t.style[mxConstants.STYLE_OVERFLOW]||"visible";if(null==t.text||t.text.wrap==r&&t.text.clipped==o&&t.text.overflow==a&&t.text.dialect==l||(t.text.destroy(),t.text=null),null==t.text&&null!=i&&(mxUtils.isNode(i)||i.length>0)?this.createLabel(t,i):null==t.text||null!=i&&0!=i.length||(t.text.destroy(),t.text=null),null!=t.text){e&&(null!=t.text.lastValue&&this.isTextShapeInvalid(t,t.text)&&(t.text.lastValue=null),t.text.resetStyles(),t.text.apply(t),t.text.valign=n.getVerticalAlign(t));var h=this.getLabelBounds(t),u=this.getTextScale(t);if(this.resolveColor(t,"color",mxConstants.STYLE_FONTCOLOR),e||t.text.value!=i||t.text.isWrapping!=r||t.text.overflow!=a||t.text.isClipping!=o||t.text.scale!=u||t.text.dialect!=l||null==t.text.bounds||!t.text.bounds.equals(h)){t.text.dialect=l,t.text.value=i,t.text.bounds=h,t.text.scale=u,t.text.wrap=r,t.text.clipped=o,t.text.overflow=a;var d=t.text.node.style.visibility;this.redrawLabelShape(t.text),t.text.node.style.visibility=d}}},mxCellRenderer.prototype.isTextShapeInvalid=function(t,e){function n(n,i,r){var o=!1;return o="spacingTop"==i||"spacingRight"==i||"spacingBottom"==i||"spacingLeft"==i?parseFloat(e[n])-parseFloat(e.spacing)!=(t.style[i]||r):e[n]!=(t.style[i]||r),o}return n("fontStyle",mxConstants.STYLE_FONTSTYLE,mxConstants.DEFAULT_FONTSTYLE)||n("family",mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY)||n("size",mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)||n("color",mxConstants.STYLE_FONTCOLOR,"black")||n("align",mxConstants.STYLE_ALIGN,"")||n("valign",mxConstants.STYLE_VERTICAL_ALIGN,"")||n("spacing",mxConstants.STYLE_SPACING,2)||n("spacingTop",mxConstants.STYLE_SPACING_TOP,0)||n("spacingRight",mxConstants.STYLE_SPACING_RIGHT,0)||n("spacingBottom",mxConstants.STYLE_SPACING_BOTTOM,0)||n("spacingLeft",mxConstants.STYLE_SPACING_LEFT,0)||n("horizontal",mxConstants.STYLE_HORIZONTAL,!0)||n("background",mxConstants.STYLE_LABEL_BACKGROUNDCOLOR)||n("border",mxConstants.STYLE_LABEL_BORDERCOLOR)||n("opacity",mxConstants.STYLE_TEXT_OPACITY,100)||n("textDirection",mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION)},mxCellRenderer.prototype.redrawLabelShape=function(t){t.redraw()},mxCellRenderer.prototype.getTextScale=function(t){return t.view.scale},mxCellRenderer.prototype.getLabelBounds=function(t){var e=t.view.graph,n=t.view.scale,i=e.getModel().isEdge(t.cell),r=new mxRectangle(t.absoluteOffset.x,t.absoluteOffset.y);if(i){var o=t.text.getSpacing();r.x+=o.x*n,r.y+=o.y*n;var s=e.getCellGeometry(t.cell);null!=s&&(r.width=Math.max(0,s.width*n),r.height=Math.max(0,s.height*n))}else{if(t.text.isPaintBoundsInverted()){var l=r.x;r.x=r.y,r.y=l}r.x+=t.x,r.y+=t.y,r.width=Math.max(1,t.width),r.height=Math.max(1,t.height)}if(t.text.isPaintBoundsInverted()){var a=(t.width-t.height)/2;r.x+=a,r.y-=a;l=r.width;r.width=r.height,r.height=l}if(null!=t.shape){var h=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),u=mxUtils.getValue(t.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);h==mxConstants.ALIGN_CENTER&&u==mxConstants.ALIGN_MIDDLE&&(r=t.shape.getLabelBounds(r))}var d=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_WIDTH,null);return null!=d&&(r.width=parseFloat(d)*n),i||this.rotateLabelBounds(t,r),r},mxCellRenderer.prototype.rotateLabelBounds=function(t,e){if(e.y-=t.text.margin.y*e.height,e.x-=t.text.margin.x*e.width,!this.legacySpacing||"fill"!=t.style[mxConstants.STYLE_OVERFLOW]&&"width"!=t.style[mxConstants.STYLE_OVERFLOW]){var n=t.view.scale,i=t.text.getSpacing();e.x+=i.x*n,e.y+=i.y*n;var r=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),o=mxUtils.getValue(t.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),s=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_WIDTH,null);e.width=Math.max(0,e.width-(r==mxConstants.ALIGN_CENTER&&null==s?t.text.spacingLeft*n+t.text.spacingRight*n:0)),e.height=Math.max(0,e.height-(o==mxConstants.ALIGN_MIDDLE?t.text.spacingTop*n+t.text.spacingBottom*n:0))}var l=t.text.getTextRotation();if(0!=l&&null!=t&&t.view.graph.model.isVertex(t.cell)){var a=t.getCenterX(),h=t.getCenterY();if(e.x!=a||e.y!=h){var u=l*(Math.PI/180),d=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(u),Math.sin(u),new mxPoint(a,h));e.x=d.x,e.y=d.y}}},mxCellRenderer.prototype.redrawCellOverlays=function(t,e){if(this.createCellOverlays(t),null!=t.overlays){var n=mxUtils.mod(mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION,0),90),i=mxUtils.toRadians(n),r=Math.cos(i),o=Math.sin(i);t.overlays.visit((function(i,s){var l=s.overlay.getBounds(t);if(!t.view.graph.getModel().isEdge(t.cell)&&null!=t.shape&&0!=n){var a=l.getCenterX(),h=l.getCenterY(),u=mxUtils.getRotatedPoint(new mxPoint(a,h),r,o,new mxPoint(t.getCenterX(),t.getCenterY()));a=u.x,h=u.y,l.x=Math.round(a-l.width/2),l.y=Math.round(h-l.height/2)}!e&&null!=s.bounds&&s.scale==t.view.scale&&s.bounds.equals(l)||(s.bounds=l,s.scale=t.view.scale,s.redraw())}))}},mxCellRenderer.prototype.redrawControl=function(t,e){var n=t.view.graph.getFoldingImage(t);if(null!=t.control&&null!=n){var i=this.getControlBounds(t,n.width,n.height),r=this.legacyControlPosition?mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION,0):t.shape.getTextRotation(),o=t.view.scale;!e&&t.control.scale==o&&t.control.bounds.equals(i)&&t.control.rotation==r||(t.control.rotation=r,t.control.bounds=i,t.control.scale=o,t.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(t,e,n){if(null!=t.control){var i=t.view.scale,r=t.getCenterX(),o=t.getCenterY();if(!t.view.graph.getModel().isEdge(t.cell)&&(r=t.x+e*i,o=t.y+n*i,null!=t.shape)){var s=t.shape.getShapeRotation();if(this.legacyControlPosition)s=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION,0);else if(t.shape.isPaintBoundsInverted()){var l=(t.width-t.height)/2;r+=l,o-=l}if(0!=s){var a=mxUtils.toRadians(s),h=Math.cos(a),u=Math.sin(a),d=mxUtils.getRotatedPoint(new mxPoint(r,o),h,u,new mxPoint(t.getCenterX(),t.getCenterY()));r=d.x,o=d.y}}return t.view.graph.getModel().isEdge(t.cell),new mxRectangle(Math.round(r-e/2*i),Math.round(o-n/2*i),Math.round(e*i),Math.round(n*i))}return null},mxCellRenderer.prototype.insertStateAfter=function(t,e,n){for(var i=this.getShapesForState(t),r=0;r<i.length;r++)if(null!=i[r]&&null!=i[r].node){var o=i[r].node.parentNode!=t.view.getDrawPane()&&i[r].node.parentNode!=t.view.getOverlayPane(),s=o?n:e;if(null!=s&&s.nextSibling!=i[r].node)null==s.nextSibling?s.parentNode.appendChild(i[r].node):s.parentNode.insertBefore(i[r].node,s.nextSibling);else if(null==s)if(i[r].node.parentNode==t.view.graph.container){var l=t.view.canvas;while(null!=l&&l.parentNode!=t.view.graph.container)l=l.parentNode;null!=l&&null!=l.nextSibling?l.nextSibling!=i[r].node&&i[r].node.parentNode.insertBefore(i[r].node,l.nextSibling):i[r].node.parentNode.appendChild(i[r].node)}else null!=i[r].node.parentNode&&null!=i[r].node.parentNode.firstChild&&i[r].node.parentNode.firstChild!=i[r].node&&i[r].node.parentNode.insertBefore(i[r].node,i[r].node.parentNode.firstChild);o?n=i[r].node:e=i[r].node}return[e,n]},mxCellRenderer.prototype.getShapesForState=function(t){return[t.shape,t.text,t.control]},mxCellRenderer.prototype.redraw=function(t,e,n){var i=this.redrawShape(t,e,n);null==t.shape||null!=n&&!n||(this.redrawLabel(t,i),this.redrawCellOverlays(t,i),this.redrawControl(t,i))},mxCellRenderer.prototype.redrawShape=function(t,e,n){var i=t.view.graph.model,r=!1;return null!=t.shape&&null!=t.shape.style&&null!=t.style&&t.shape.style[mxConstants.STYLE_SHAPE]!=t.style[mxConstants.STYLE_SHAPE]&&(t.shape.destroy(),t.shape=null),null==t.shape&&null!=t.view.graph.container&&t.cell!=t.view.currentRoot&&(i.isVertex(t.cell)||i.isEdge(t.cell))?(t.shape=this.createShape(t),null!=t.shape&&(t.shape.minSvgStrokeWidth=this.minSvgStrokeWidth,t.shape.antiAlias=this.antiAlias,this.createIndicatorShape(t),this.initializeShape(t),this.createCellOverlays(t),this.installListeners(t),t.view.graph.selectionCellsHandler.updateHandler(t))):e||null==t.shape||mxUtils.equalEntries(t.shape.style,t.style)&&!this.checkPlaceholderStyles(t)||(t.shape.resetStyles(),this.configureShape(t),t.view.graph.selectionCellsHandler.updateHandler(t),e=!0),null!=t.shape&&t.shape.indicatorShape!=this.getShape(t.view.graph.getIndicatorShape(t))&&(null!=t.shape.indicator&&(t.shape.indicator.destroy(),t.shape.indicator=null),this.createIndicatorShape(t),null!=t.shape.indicatorShape&&(t.shape.indicator=new t.shape.indicatorShape,t.shape.indicator.dialect=t.shape.dialect,t.shape.indicator.init(t.node),e=!0)),null!=t.shape&&(this.createControl(t),(e||this.isShapeInvalid(t,t.shape))&&(null!=t.absolutePoints?(t.shape.points=t.absolutePoints.slice(),t.shape.bounds=null):(t.shape.points=null,t.shape.bounds=new mxRectangle(t.x,t.y,t.width,t.height)),t.shape.scale=t.view.scale,null==n||n?this.doRedrawShape(t):t.shape.updateBoundingBox(),r=!0)),r},mxCellRenderer.prototype.doRedrawShape=function(t){t.shape.redraw()},mxCellRenderer.prototype.isShapeInvalid=function(t,e){return null==e.bounds||e.scale!=t.view.scale||null==t.absolutePoints&&!e.bounds.equals(t)||null!=t.absolutePoints&&!mxUtils.equalPoints(e.points,t.absolutePoints)},mxCellRenderer.prototype.destroy=function(t){null!=t.shape&&(null!=t.text&&(t.text.destroy(),t.text=null),null!=t.overlays&&(t.overlays.visit((function(t,e){e.destroy()})),t.overlays=null),null!=t.control&&(t.control.destroy(),t.control=null),t.shape.destroy(),t.shape=null)},__mxOutput.mxCellRenderer="undefined"!==typeof mxCellRenderer?mxCellRenderer:void 0;var mxEdgeStyle={EntityRelation:function(t,e,n,i,r){var o=t.view,s=o.graph,l=mxUtils.getValue(t.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*o.scale,a=t.absolutePoints,h=a[0],u=a[a.length-1],d=!1;if(null!=e){var c=s.getCellGeometry(e.cell);c.relative?d=c.x<=.5:null!=n&&(d=(null!=u?u.x:n.x+n.width)<(null!=h?h.x:e.x))}if(null!=h)e=new mxCellState,e.x=h.x,e.y=h.y;else{if(null==e)return;var p=mxUtils.getPortConstraints(e,t,!0,mxConstants.DIRECTION_MASK_NONE);p!=mxConstants.DIRECTION_MASK_NONE&&p!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST&&(d=p==mxConstants.DIRECTION_MASK_WEST)}var g=!0;if(null!=n){var m=s.getCellGeometry(n.cell);m.relative?g=m.x<=.5:null!=e&&(g=(null!=h?h.x:e.x+e.width)<(null!=u?u.x:n.x))}if(null!=u)n=new mxCellState,n.x=u.x,n.y=u.y;else if(null!=n){p=mxUtils.getPortConstraints(n,t,!1,mxConstants.DIRECTION_MASK_NONE);p!=mxConstants.DIRECTION_MASK_NONE&&p!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST&&(g=p==mxConstants.DIRECTION_MASK_WEST)}if(null!=e&&null!=n){var x=d?e.x:e.x+e.width,y=o.getRoutingCenterY(e),f=g?n.x:n.x+n.width,A=o.getRoutingCenterY(n),C=l,v=d?-C:C,E=new mxPoint(x+v,y);v=g?-C:C;var w=new mxPoint(f+v,A);if(d==g){var S=d?Math.min(x,f)-l:Math.max(x,f)+l;r.push(new mxPoint(S,y)),r.push(new mxPoint(S,A))}else if(E.x<w.x==d){var b=y+(A-y)/2;r.push(E),r.push(new mxPoint(E.x,b)),r.push(new mxPoint(w.x,b)),r.push(w)}else r.push(E),r.push(w)}},Loop:function(t,e,n,i,r){var o=t.absolutePoints,s=o[0],l=o[o.length-1];if(null==s||null==l){if(null!=e){var a=t.view,h=a.graph;y=null!=i&&i.length>0?i[0]:null;null!=y&&(y=a.transformControlPoint(t,y),mxUtils.contains(e,y.x,y.y)&&(y=null));var u=0,d=0,c=0,p=0,g=mxUtils.getValue(t.style,mxConstants.STYLE_SEGMENT,h.gridSize)*a.scale,m=mxUtils.getValue(t.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST);m==mxConstants.DIRECTION_NORTH||m==mxConstants.DIRECTION_SOUTH?(u=a.getRoutingCenterX(e),d=g):(c=a.getRoutingCenterY(e),p=g),null==y||y.x<e.x||y.x>e.x+e.width?null!=y?(u=y.x,p=Math.max(Math.abs(c-y.y),p)):m==mxConstants.DIRECTION_NORTH?c=e.y-2*d:m==mxConstants.DIRECTION_SOUTH?c=e.y+e.height+2*d:u=m==mxConstants.DIRECTION_EAST?e.x-2*p:e.x+e.width+2*p:null!=y&&(u=a.getRoutingCenterX(e),d=Math.max(Math.abs(u-y.x),p),c=y.y,p=0),r.push(new mxPoint(u-d,c-p)),r.push(new mxPoint(u+d,c+p))}}else if(null!=i&&i.length>0)for(var x=0;x<i.length;x++){var y=i[x];y=t.view.transformControlPoint(t,y),r.push(new mxPoint(y.x,y.y))}},ElbowConnector:function(t,e,n,i,r){var o=null!=i&&i.length>0?i[0]:null,s=!1,l=!1;if(null!=e&&null!=n)if(null!=o){var a=Math.min(e.x,n.x),h=Math.max(e.x+e.width,n.x+n.width),u=Math.min(e.y,n.y),d=Math.max(e.y+e.height,n.y+n.height);o=t.view.transformControlPoint(t,o),s=o.y<u||o.y>d,l=o.x<a||o.x>h}else{a=Math.max(e.x,n.x),h=Math.min(e.x+e.width,n.x+n.width);if(s=a==h,!s){u=Math.max(e.y,n.y),d=Math.min(e.y+e.height,n.y+n.height);l=u==d}}l||!s&&t.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(t,e,n,i,r):mxEdgeStyle.TopToBottom(t,e,n,i,r)},SideToSide:function(t,e,n,i,r){var o=t.view,s=null!=i&&i.length>0?i[0]:null,l=t.absolutePoints,a=l[0],h=l[l.length-1];if(null!=s&&(s=o.transformControlPoint(t,s)),null!=a&&(e=new mxCellState,e.x=a.x,e.y=a.y),null!=h&&(n=new mxCellState,n.x=h.x,n.y=h.y),null!=e&&null!=n){var u=Math.max(e.x,n.x),d=Math.min(e.x+e.width,n.x+n.width),c=null!=s?s.x:Math.round(d+(u-d)/2),p=o.getRoutingCenterY(e),g=o.getRoutingCenterY(n);if(null!=s&&(s.y>=e.y&&s.y<=e.y+e.height&&(p=s.y),s.y>=n.y&&s.y<=n.y+n.height&&(g=s.y)),mxUtils.contains(n,c,p)||mxUtils.contains(e,c,p)||r.push(new mxPoint(c,p)),mxUtils.contains(n,c,g)||mxUtils.contains(e,c,g)||r.push(new mxPoint(c,g)),1==r.length)if(null!=s)mxUtils.contains(n,c,s.y)||mxUtils.contains(e,c,s.y)||r.push(new mxPoint(c,s.y));else{var m=Math.max(e.y,n.y),x=Math.min(e.y+e.height,n.y+n.height);r.push(new mxPoint(c,m+(x-m)/2))}}},TopToBottom:function(t,e,n,i,r){var o=t.view,s=null!=i&&i.length>0?i[0]:null,l=t.absolutePoints,a=l[0],h=l[l.length-1];if(null!=s&&(s=o.transformControlPoint(t,s)),null!=a&&(e=new mxCellState,e.x=a.x,e.y=a.y),null!=h&&(n=new mxCellState,n.x=h.x,n.y=h.y),null!=e&&null!=n){var u=Math.max(e.y,n.y),d=Math.min(e.y+e.height,n.y+n.height),c=o.getRoutingCenterX(e);null!=s&&s.x>=e.x&&s.x<=e.x+e.width&&(c=s.x);var p=null!=s?s.y:Math.round(d+(u-d)/2);if(mxUtils.contains(n,c,p)||mxUtils.contains(e,c,p)||r.push(new mxPoint(c,p)),c=null!=s&&s.x>=n.x&&s.x<=n.x+n.width?s.x:o.getRoutingCenterX(n),mxUtils.contains(n,c,p)||mxUtils.contains(e,c,p)||r.push(new mxPoint(c,p)),1==r.length)if(null!=s&&1==r.length)mxUtils.contains(n,s.x,p)||mxUtils.contains(e,s.x,p)||r.push(new mxPoint(s.x,p));else{var g=Math.max(e.x,n.x),m=Math.min(e.x+e.width,n.x+n.width);r.push(new mxPoint(g+(m-g)/2,p))}}},SegmentConnector:function(t,e,n,i,r){var o=mxEdgeStyle.scalePointArray(t.absolutePoints,t.view.scale),s=mxEdgeStyle.scaleCellState(e,t.view.scale),l=mxEdgeStyle.scaleCellState(n,t.view.scale),a=1,h=r.length>0?r[0]:null,u=!0,d=null;function c(e){return e.x=Math.round(e.x*t.view.scale*10)/10,e.y=Math.round(e.y*t.view.scale*10)/10,(null==h||Math.abs(h.x-e.x)>=a||Math.abs(h.y-e.y)>=Math.max(1,t.view.scale))&&(r.push(e),h=e),h}var p=o[0];null==p&&null!=s?p=new mxPoint(t.view.getRoutingCenterX(s),t.view.getRoutingCenterY(s)):null!=p&&(p=p.clone());var g=o.length-1;if(null!=i&&i.length>0){for(var m=[],x=0;x<i.length;x++){var y=t.view.transformControlPoint(t,i[x],!0);null!=y&&m.push(y)}if(0==m.length)return;null!=p&&null!=m[0]&&(Math.abs(m[0].x-p.x)<a&&(m[0].x=p.x),Math.abs(m[0].y-p.y)<a&&(m[0].y=p.y));var f=o[g];null!=f&&null!=m[m.length-1]&&(Math.abs(m[m.length-1].x-f.x)<a&&(m[m.length-1].x=f.x),Math.abs(m[m.length-1].y-f.y)<a&&(m[m.length-1].y=f.y)),d=m[0];var A=s,C=o[0],v=!1,E=!1,w=d;null!=C&&(A=null);for(x=0;x<2;x++){var S=null!=C&&C.x==w.x,b=null!=C&&C.y==w.y,T=null!=A&&w.y>=A.y&&w.y<=A.y+A.height,L=null!=A&&w.x>=A.x&&w.x<=A.x+A.width;if(v=b||null==C&&T,E=S||null==C&&L,0==x&&(v&&E||S&&b));else{if(null!=C&&!b&&!S&&(T||L)){u=!T;break}if(E||v){u=v,1==x&&(u=m.length%2==0?v:E);break}}A=l,C=o[g],null!=C&&(A=null),w=m[m.length-1],S&&b&&(m=m.slice(1))}u&&(null!=o[0]&&o[0].y!=d.y||null==o[0]&&null!=s&&(d.y<s.y||d.y>s.y+s.height))?c(new mxPoint(p.x,d.y)):!u&&(null!=o[0]&&o[0].x!=d.x||null==o[0]&&null!=s&&(d.x<s.x||d.x>s.x+s.width))&&c(new mxPoint(d.x,p.y)),u?p.y=d.y:p.x=d.x;for(x=0;x<m.length;x++)u=!u,d=m[x],u?p.y=d.y:p.x=d.x,c(p.clone())}else d=p,u=!0;if(p=o[g],null==p&&null!=l&&(p=new mxPoint(t.view.getRoutingCenterX(l),t.view.getRoutingCenterY(l))),null!=p&&null!=d&&(u&&(null!=o[g]&&o[g].y!=d.y||null==o[g]&&null!=l&&(d.y<l.y||d.y>l.y+l.height))?c(new mxPoint(p.x,d.y)):!u&&(null!=o[g]&&o[g].x!=d.x||null==o[g]&&null!=l&&(d.x<l.x||d.x>l.x+l.width))&&c(new mxPoint(d.x,p.y))),null==o[0]&&null!=s)while(r.length>1&&null!=r[1]&&mxUtils.contains(s,r[1].x,r[1].y))r.splice(1,1);if(null==o[g]&&null!=l)while(r.length>1&&null!=r[r.length-1]&&mxUtils.contains(l,r[r.length-1].x,r[r.length-1].y))r.splice(r.length-1,1);null!=f&&null!=r[r.length-1]&&Math.abs(f.x-r[r.length-1].x)<=a&&Math.abs(f.y-r[r.length-1].y)<=a&&(r.splice(r.length-1,1),null!=r[r.length-1]&&(Math.abs(r[r.length-1].x-f.x)<a&&(r[r.length-1].x=f.x),Math.abs(r[r.length-1].y-f.y)<a&&(r[r.length-1].y=f.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(t,e){var n=mxUtils.getValue(t.style,e?mxConstants.STYLE_SOURCE_JETTY_SIZE:mxConstants.STYLE_TARGET_JETTY_SIZE,mxUtils.getValue(t.style,mxConstants.STYLE_JETTY_SIZE,mxEdgeStyle.orthBuffer));if("auto"==n){var i=mxUtils.getValue(t.style,e?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW,mxConstants.NONE);if(i!=mxConstants.NONE){var r=mxUtils.getNumber(t.style,e?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE);n=Math.max(2,Math.ceil((r+mxEdgeStyle.orthBuffer)/mxEdgeStyle.orthBuffer))*mxEdgeStyle.orthBuffer}else n=2*mxEdgeStyle.orthBuffer}return n},scalePointArray:function(t,e){var n=[];if(null!=t)for(var i=0;i<t.length;i++)if(null!=t[i]){var r=new mxPoint(Math.round(t[i].x/e*10)/10,Math.round(t[i].y/e*10)/10);n[i]=r}else n[i]=null;else n=null;return n},scaleCellState:function(t,e){var n=null;return null!=t?(n=t.clone(),n.setRect(Math.round(t.x/e*10)/10,Math.round(t.y/e*10)/10,Math.round(t.width/e*10)/10,Math.round(t.height/e*10)/10)):n=null,n},OrthConnector:function(t,e,n,i,r){var o=t.view.graph,s=null!=h&&o.getModel().isEdge(h.cell),l=null!=u&&o.getModel().isEdge(u.cell),a=mxEdgeStyle.scalePointArray(t.absolutePoints,t.view.scale),h=mxEdgeStyle.scaleCellState(e,t.view.scale),u=mxEdgeStyle.scaleCellState(n,t.view.scale),d=a[0],c=a[a.length-1],p=null!=h?h.x:d.x,g=null!=h?h.y:d.y,m=null!=h?h.width:0,x=null!=h?h.height:0,y=null!=u?u.x:c.x,f=null!=u?u.y:c.y,A=null!=u?u.width:0,C=null!=u?u.height:0,v=mxEdgeStyle.getJettySize(t,!0),E=mxEdgeStyle.getJettySize(t,!1);null!=h&&u==h&&(E=Math.max(v,E),v=E);var w=E+v,S=!1;if(null!=d&&null!=c){var b=c.x-d.x,T=c.y-d.y;S=b*b+T*T<w*w}if(S||mxEdgeStyle.orthPointsFallback&&null!=i&&i.length>0||s||l)mxEdgeStyle.SegmentConnector(t,e,n,i,r);else{var L=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL],I=0;if(null!=h&&(L[0]=mxUtils.getPortConstraints(h,t,!0,mxConstants.DIRECTION_MASK_ALL),I=mxUtils.getValue(h.style,mxConstants.STYLE_ROTATION,0),0!=I)){var M=mxUtils.getBoundingBox(new mxRectangle(p,g,m,x),I);p=M.x,g=M.y,m=M.width,x=M.height}if(null!=u&&(L[1]=mxUtils.getPortConstraints(u,t,!1,mxConstants.DIRECTION_MASK_ALL),I=mxUtils.getValue(u.style,mxConstants.STYLE_ROTATION,0),0!=I)){M=mxUtils.getBoundingBox(new mxRectangle(y,f,A,C),I);y=M.x,f=M.y,A=M.width,C=M.height}for(var R=[0,0],O=[[p,g,m,x],[y,f,A,C]],N=[v,E],D=0;D<2;D++)mxEdgeStyle.limits[D][1]=O[D][0]-N[D],mxEdgeStyle.limits[D][2]=O[D][1]-N[D],mxEdgeStyle.limits[D][4]=O[D][0]+O[D][2]+N[D],mxEdgeStyle.limits[D][8]=O[D][1]+O[D][3]+N[D];var P=O[0][0]+O[0][2]/2,H=O[0][1]+O[0][3]/2,k=O[1][0]+O[1][2]/2,G=O[1][1]+O[1][3]/2,B=(b=P-k,T=H-G,0);b<0?B=T<0?2:1:T<=0&&(B=3,0==b&&(B=2));var U=null;null!=h&&(U=d);var V=[[.5,.5],[.5,.5]];for(D=0;D<2;D++)null!=U&&(V[D][0]=(U.x-O[D][0])/O[D][2],Math.abs(U.x-O[D][0])<=1?R[D]=mxConstants.DIRECTION_MASK_WEST:Math.abs(U.x-O[D][0]-O[D][2])<=1&&(R[D]=mxConstants.DIRECTION_MASK_EAST),V[D][1]=(U.y-O[D][1])/O[D][3],Math.abs(U.y-O[D][1])<=1?R[D]=mxConstants.DIRECTION_MASK_NORTH:Math.abs(U.y-O[D][1]-O[D][3])<=1&&(R[D]=mxConstants.DIRECTION_MASK_SOUTH)),U=null,null!=u&&(U=c);var F=O[0][1]-(O[1][1]+O[1][3]),z=O[0][0]-(O[1][0]+O[1][2]),Y=O[1][1]-(O[0][1]+O[0][3]),W=O[1][0]-(O[0][0]+O[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(z-w,0),mxEdgeStyle.vertexSeperations[2]=Math.max(F-w,0),mxEdgeStyle.vertexSeperations[4]=Math.max(Y-w,0),mxEdgeStyle.vertexSeperations[3]=Math.max(W-w,0);var j=[],Q=[],Z=[];Q[0]=z>=W?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,Z[0]=F>=Y?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,Q[1]=mxUtils.reversePortConstraints(Q[0]),Z[1]=mxUtils.reversePortConstraints(Z[0]);var X=z>=W?z:W,K=F>=Y?F:Y,q=[[0,0],[0,0]],J=!1;for(D=0;D<2;D++)0==R[D]&&(0==(Q[D]&L[D])&&(Q[D]=mxUtils.reversePortConstraints(Q[D])),0==(Z[D]&L[D])&&(Z[D]=mxUtils.reversePortConstraints(Z[D])),q[D][0]=Z[D],q[D][1]=Q[D]);K>0&&X>0&&((Q[0]&L[0])>0&&(Z[1]&L[1])>0?(q[0][0]=Q[0],q[0][1]=Z[0],q[1][0]=Z[1],q[1][1]=Q[1],J=!0):(Z[0]&L[0])>0&&(Q[1]&L[1])>0&&(q[0][0]=Z[0],q[0][1]=Q[0],q[1][0]=Q[1],q[1][1]=Z[1],J=!0)),K>0&&!J&&(q[0][0]=Z[0],q[0][1]=Q[0],q[1][0]=Z[1],q[1][1]=Q[1],J=!0),X>0&&!J&&(q[0][0]=Q[0],q[0][1]=Z[0],q[1][0]=Q[1],q[1][1]=Z[1],J=!0);for(D=0;D<2;D++)0==R[D]&&(0==(q[D][0]&L[D])&&(q[D][0]=q[D][1]),j[D]=q[D][0]&L[D],j[D]|=(q[D][1]&L[D])<<8,j[D]|=(q[1-D][D]&L[D])<<16,j[D]|=(q[1-D][1-D]&L[D])<<24,0==(15&j[D])&&(j[D]=j[D]<<8),0==(3840&j[D])&&(j[D]=15&j[D]|j[D]>>8),0==(983040&j[D])&&(j[D]=65535&j[D]|(251658240&j[D])>>8),R[D]=15&j[D],L[D]!=mxConstants.DIRECTION_MASK_WEST&&L[D]!=mxConstants.DIRECTION_MASK_NORTH&&L[D]!=mxConstants.DIRECTION_MASK_EAST&&L[D]!=mxConstants.DIRECTION_MASK_SOUTH||(R[D]=L[D]));var _=R[0]==mxConstants.DIRECTION_MASK_EAST?3:R[0],$=R[1]==mxConstants.DIRECTION_MASK_EAST?3:R[1];_-=B,$-=B,_<1&&(_+=4),$<1&&($+=4);var tt=mxEdgeStyle.routePatterns[_-1][$-1];switch(mxEdgeStyle.wayPoints1[0][0]=O[0][0],mxEdgeStyle.wayPoints1[0][1]=O[0][1],R[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=v,mxEdgeStyle.wayPoints1[0][1]+=V[0][1]*O[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=V[0][0]*O[0][2],mxEdgeStyle.wayPoints1[0][1]+=O[0][3]+v;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=O[0][2]+v,mxEdgeStyle.wayPoints1[0][1]+=V[0][1]*O[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=V[0][0]*O[0][2],mxEdgeStyle.wayPoints1[0][1]-=v;break}var et=0,nt=(R[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))>0?0:1,it=nt,rt=0;for(D=0;D<tt.length;D++){var ot=15&tt[D],st=ot==mxConstants.DIRECTION_MASK_EAST?3:ot;st+=B,st>4&&(st-=4);var lt=mxEdgeStyle.dirVectors[st-1];rt=st%2>0?0:1,rt!=nt&&(et++,mxEdgeStyle.wayPoints1[et][0]=mxEdgeStyle.wayPoints1[et-1][0],mxEdgeStyle.wayPoints1[et][1]=mxEdgeStyle.wayPoints1[et-1][1]);var at=(tt[D]&mxEdgeStyle.TARGET_MASK)>0,ht=(tt[D]&mxEdgeStyle.SOURCE_MASK)>0,ut=(tt[D]&mxEdgeStyle.SIDE_MASK)>>5;ut<<=B,ut>15&&(ut>>=4);var dt=(tt[D]&mxEdgeStyle.CENTER_MASK)>0;if((ht||at)&&ut<9){var ct=0,pt=ht?0:1;if(ct=dt&&0==rt?O[pt][0]+V[pt][0]*O[pt][2]:dt?O[pt][1]+V[pt][1]*O[pt][3]:mxEdgeStyle.limits[pt][ut],0==rt){var gt=mxEdgeStyle.wayPoints1[et][0],mt=(ct-gt)*lt[0];mt>0&&(mxEdgeStyle.wayPoints1[et][0]+=lt[0]*mt)}else{var xt=mxEdgeStyle.wayPoints1[et][1],yt=(ct-xt)*lt[1];yt>0&&(mxEdgeStyle.wayPoints1[et][1]+=lt[1]*yt)}}else dt&&(mxEdgeStyle.wayPoints1[et][0]+=lt[0]*Math.abs(mxEdgeStyle.vertexSeperations[st]/2),mxEdgeStyle.wayPoints1[et][1]+=lt[1]*Math.abs(mxEdgeStyle.vertexSeperations[st]/2));et>0&&mxEdgeStyle.wayPoints1[et][rt]==mxEdgeStyle.wayPoints1[et-1][rt]?et--:nt=rt}for(D=0;D<=et;D++){if(D==et){var ft=(R[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))>0?0:1,At=ft==it?0:1;if(At!=(et+1)%2)break}r.push(new mxPoint(Math.round(mxEdgeStyle.wayPoints1[D][0]*t.view.scale*10)/10,Math.round(mxEdgeStyle.wayPoints1[D][1]*t.view.scale*10)/10))}var Ct=1;while(Ct<r.length)null==r[Ct-1]||null==r[Ct]||r[Ct-1].x!=r[Ct].x||r[Ct-1].y!=r[Ct].y?Ct++:r.splice(Ct,1)}},getRoutePattern:function(t,e,n,i){var r=t[0]==mxConstants.DIRECTION_MASK_EAST?3:t[0],o=t[1]==mxConstants.DIRECTION_MASK_EAST?3:t[1];r-=e,o-=e,r<1&&(r+=4),o<1&&(o+=4);var s=routePatterns[r-1][o-1];return 0!=n&&0!=i||null!=inlineRoutePatterns[r-1][o-1]&&(s=inlineRoutePatterns[r-1][o-1]),s}};__mxOutput.mxEdgeStyle="undefined"!==typeof mxEdgeStyle?mxEdgeStyle:void 0;var mxStyleRegistry={values:[],putValue:function(t,e){mxStyleRegistry.values[t]=e},getValue:function(t){return mxStyleRegistry.values[t]},getName:function(t){for(var e in mxStyleRegistry.values)if(mxStyleRegistry.values[e]==t)return e;return null}};function mxGraphView(t){this.graph=t,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(t,e){if(this.view=t,this.root=e,this.previous=e,this.isUp=null==e,!this.isUp){var n=this.view.currentRoot,i=this.view.graph.getModel();while(null!=n){if(n==e){this.isUp=!0;break}n=i.getParent(n)}}}function mxGraph(t,e,n,i){this.mouseListeners=null,this.renderHint=n,mxClient.IS_SVG?this.dialect=mxConstants.DIALECT_SVG:n==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?this.dialect=mxConstants.DIALECT_VML:n==mxConstants.RENDERING_HINT_FASTEST?this.dialect=mxConstants.DIALECT_STRICTHTML:n==mxConstants.RENDERING_HINT_FASTER?this.dialect=mxConstants.DIALECT_PREFERHTML:this.dialect=mxConstants.DIALECT_MIXEDHTML,this.model=null!=e?e:new mxGraphModel,this.multiplicities=[],this.imageBundles=[],this.cellRenderer=this.createCellRenderer(),this.setSelectionModel(this.createSelectionModel()),this.setStylesheet(null!=i?i:this.createStylesheet()),this.view=this.createGraphView(),this.graphModelChangeListener=mxUtils.bind(this,(function(t,e){this.graphModelChanged(e.getProperty("edit").changes)})),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=t&&this.init(t),this.view.revalidate()}function mxCellOverlay(t,e,n,i,r,o){this.image=t,this.tooltip=e,this.align=null!=n?n:this.align,this.verticalAlign=null!=i?i:this.verticalAlign,this.offset=null!=r?r:new mxPoint,this.cursor=null!=o?o:"help"}function mxOutline(t,e){this.source=t,null!=e&&this.init(e)}function mxMultiplicity(t,e,n,i,r,o,s,l,a,h){this.source=t,this.type=e,this.attr=n,this.value=i,this.min=null!=r?r:0,this.max=null!=o?o:"n",this.validNeighbors=s,this.countError=mxResources.get(l)||l,this.typeError=mxResources.get(a)||a,this.validNeighborsAllowed=null==h||h}function mxLayoutManager(t){this.undoHandler=mxUtils.bind(this,(function(t,e){this.isEnabled()&&this.beforeUndo(e.getProperty("edit"))})),this.moveHandler=mxUtils.bind(this,(function(t,e){this.isEnabled()&&this.cellsMoved(e.getProperty("cells"),e.getProperty("event"))})),this.resizeHandler=mxUtils.bind(this,(function(t,e){this.isEnabled()&&this.cellsResized(e.getProperty("cells"),e.getProperty("bounds"),e.getProperty("previous"))})),this.setGraph(t)}function mxSwimlaneManager(t,e,n,i){this.horizontal=null==e||e,this.addEnabled=null==n||n,this.resizeEnabled=null==i||i,this.addHandler=mxUtils.bind(this,(function(t,e){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(e.getProperty("cells"))})),this.resizeHandler=mxUtils.bind(this,(function(t,e){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(e.getProperty("cells"))})),this.setGraph(t)}function mxTemporaryCellStates(t,e,n,i,r){e=null!=e?e:1,this.view=t,this.oldValidateCellState=t.validateCellState,this.oldBounds=t.getGraphBounds(),this.oldStates=t.getStates(),this.oldScale=t.getScale(),this.oldDoRedrawShape=t.graph.cellRenderer.doRedrawShape;var o=this;if(null!=r&&(t.graph.cellRenderer.doRedrawShape=function(e){var n=e.shape.paint;e.shape.paint=function(t){var i=r(e);null!=i&&t.setLink(i),n.apply(this,arguments),null!=i&&t.setLink(null)},o.oldDoRedrawShape.apply(t.graph.cellRenderer,arguments),e.shape.paint=n}),t.validateCellState=function(e,n){return null==e||null==i||i(e)?o.oldValidateCellState.apply(t,arguments):null},t.setStates(new mxDictionary),t.setScale(e),null!=n){t.resetValidationState();for(var s=null,l=0;l<n.length;l++){var a=t.getBoundingBox(t.validateCellState(t.validateCell(n[l])));null==s?s=a:s.add(a)}t.setGraphBounds(s||new mxRectangle)}}function mxCellStatePreview(t){this.deltas=new mxDictionary,this.graph=t}function mxConnectionConstraint(t,e,n,i,r){this.point=t,this.perimeter=null==e||e,this.name=n,this.dx=i||0,this.dy=r||0}function mxGraphHandler(t){this.graph=t,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,(function(){this.suspended||(this.updatePreview(),this.updateHint())})),this.graph.addListener(mxEvent.PAN,this.panHandler),this.escapeHandler=mxUtils.bind(this,(function(t,e){this.reset()})),this.graph.addListener(mxEvent.ESCAPE,this.escapeHandler),this.refreshHandler=mxUtils.bind(this,(function(t,e){this.refreshThread&&window.clearTimeout(this.refreshThread),this.refreshThread=window.setTimeout(mxUtils.bind(this,(function(){if(this.refreshThread=null,null!=this.first&&!this.suspended){var t=this.currentDx,e=this.currentDy;this.currentDx=0,this.currentDy=0,this.updatePreview(),this.bounds=this.graph.getView().getBounds(this.cells),this.pBounds=this.getPreviewBounds(this.cells),null!=this.pBounds||this.livePreviewUsed?(this.currentDx=t,this.currentDy=e,this.updatePreview(),this.updateHint(),this.livePreviewUsed&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1,!0),this.updatePreview())):this.reset()}})),0)})),this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.addListener(mxEvent.REFRESH,this.refreshHandler),this.keyHandler=mxUtils.bind(this,(function(t){if(null!=this.graph.container&&"hidden"!=this.graph.container.style.visibility&&null!=this.first&&!this.suspended){var e=this.graph.isCloneEvent(t)&&this.graph.isCellsCloneable()&&this.isCloneEnabled();e!=this.cloning&&(this.cloning=e,this.checkPreview(),this.updatePreview())}})),mxEvent.addListener(document,"keydown",this.keyHandler),mxEvent.addListener(document,"keyup",this.keyHandler)}function mxPanningHandler(t){null!=t&&(this.graph=t,this.graph.addMouseListener(this),this.forcePanningHandler=mxUtils.bind(this,(function(t,e){var n=e.getProperty("eventName"),i=e.getProperty("event");n==mxEvent.MOUSE_DOWN&&this.isForcePanningEvent(i)&&(this.start(i),this.active=!0,this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",i)),i.consume())})),this.graph.addListener(mxEvent.FIRE_MOUSE_EVENT,this.forcePanningHandler),this.gestureHandler=mxUtils.bind(this,(function(t,e){if(this.isPinchEnabled()){var n=e.getProperty("event");mxEvent.isConsumed(n)||"gesturestart"!=n.type?"gestureend"==n.type&&null!=this.initialScale&&(this.initialScale=null):(this.initialScale=this.graph.view.scale,this.active||null==this.mouseDownEvent||(this.start(this.mouseDownEvent),this.mouseDownEvent=null)),null!=this.initialScale&&this.zoomGraph(n)}})),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.mouseUpListener=mxUtils.bind(this,(function(){this.active&&this.reset()})),mxEvent.addListener(document,"mouseup",this.mouseUpListener))}function mxPopupMenuHandler(t,e){null!=t&&(this.graph=t,this.factoryMethod=e,this.graph.addMouseListener(this),this.gestureHandler=mxUtils.bind(this,(function(t,e){this.inTolerance=!1})),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.init())}function mxCellMarker(t,e,n,i){mxEventSource.call(this),null!=t&&(this.graph=t,this.validColor=null!=e?e:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=n?n:mxConstants.DEFAULT_INVALID_COLOR,this.hotspot=null!=i?i:mxConstants.DEFAULT_HOTSPOT,this.highlight=new mxCellHighlight(t))}function mxSelectionCellsHandler(t){mxEventSource.call(this),this.graph=t,this.handlers=new mxDictionary,this.graph.addMouseListener(this),this.refreshHandler=mxUtils.bind(this,(function(t,e){this.isEnabled()&&this.refresh()})),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE,this.refreshHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.DOWN,this.refreshHandler),this.graph.getView().addListener(mxEvent.UP,this.refreshHandler)}function mxConnectionHandler(t,e){mxEventSource.call(this),null!=t&&(this.graph=t,this.factoryMethod=e,this.init(),this.escapeHandler=mxUtils.bind(this,(function(t,e){this.reset()})),this.graph.addListener(mxEvent.ESCAPE,this.escapeHandler))}function mxConstraintHandler(t){this.graph=t,this.resetHandler=mxUtils.bind(this,(function(t,e){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)?this.reset():this.redraw()})),this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler),this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.resetHandler),this.graph.view.addListener(mxEvent.TRANSLATE,this.resetHandler),this.graph.view.addListener(mxEvent.SCALE,this.resetHandler),this.graph.addListener(mxEvent.ROOT,this.resetHandler)}function mxRubberband(t){null!=t&&(this.graph=t,this.graph.addMouseListener(this),this.forceRubberbandHandler=mxUtils.bind(this,(function(t,e){var n=e.getProperty("eventName"),i=e.getProperty("event");if(n==mxEvent.MOUSE_DOWN&&this.isForceRubberbandEvent(i)){var r=mxUtils.getOffset(this.graph.container),o=mxUtils.getScrollOrigin(this.graph.container);o.x-=r.x,o.y-=r.y,this.start(i.getX()+o.x,i.getY()+o.y),i.consume(!1)}})),this.graph.addListener(mxEvent.FIRE_MOUSE_EVENT,this.forceRubberbandHandler),this.panHandler=mxUtils.bind(this,(function(){this.repaint()})),this.graph.addListener(mxEvent.PAN,this.panHandler),this.gestureHandler=mxUtils.bind(this,(function(t,e){null!=this.first&&this.reset()})),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,(function(){this.destroy()}))))}function mxHandle(t,e,n,i){this.graph=t.view.graph,this.state=t,this.cursor=null!=e?e:this.cursor,this.image=null!=n?n:this.image,this.shape=null!=i?i:null,this.init()}function mxVertexHandler(t){null!=t&&(this.state=t,this.init(),this.escapeHandler=mxUtils.bind(this,(function(t,e){this.livePreview&&null!=this.index&&(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.reset()})),this.state.view.graph.addListener(mxEvent.ESCAPE,this.escapeHandler))}function mxEdgeHandler(t){null!=t&&null!=t.shape&&(this.state=t,this.init(),this.escapeHandler=mxUtils.bind(this,(function(e,n){var i=null!=this.index;this.reset(),i&&this.graph.cellRenderer.redraw(this.state,!1,t.view.isRendering())})),this.state.view.graph.addListener(mxEvent.ESCAPE,this.escapeHandler))}function mxElbowEdgeHandler(t){mxEdgeHandler.call(this,t)}function mxEdgeSegmentHandler(t){mxEdgeHandler.call(this,t)}function mxKeyHandler(t,e){null!=t&&(this.graph=t,this.target=e||document.documentElement,this.normalKeys=[],this.shiftKeys=[],this.controlKeys=[],this.controlShiftKeys=[],this.keydownHandler=mxUtils.bind(this,(function(t){this.keyDown(t)})),mxEvent.addListener(this.target,"keydown",this.keydownHandler),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,(function(){this.destroy()}))))}function mxTooltipHandler(t,e){null!=t&&(this.graph=t,this.delay=e||500,this.graph.addMouseListener(this))}function mxCellTracker(t,e,n){mxCellMarker.call(this,t,e),this.graph.addMouseListener(this),null!=n&&(this.getCell=n),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,(function(){this.destroy()})))}function mxCellHighlight(t,e,n,i){null!=t&&(this.graph=t,this.highlightColor=null!=e?e:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=n?n:mxConstants.HIGHLIGHT_STROKEWIDTH,this.dashed=null!=i&&i,this.opacity=mxConstants.HIGHLIGHT_OPACITY,this.repaintHandler=mxUtils.bind(this,(function(){if(null!=this.state){var t=this.graph.view.getState(this.state.cell);null==t?this.hide():(this.state=t,this.repaint())}})),this.graph.getView().addListener(mxEvent.SCALE,this.repaintHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.repaintHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.repaintHandler),this.resetHandler=mxUtils.bind(this,(function(){this.hide()})),this.graph.getView().addListener(mxEvent.DOWN,this.resetHandler),this.graph.getView().addListener(mxEvent.UP,this.resetHandler))}function mxDefaultKeyHandler(t){if(null!=t){this.editor=t,this.handler=new mxKeyHandler(t.graph);var e=this.handler.escape;this.handler.escape=function(n){e.apply(this,arguments),t.hideProperties(),t.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",n))}}}function mxDefaultPopupMenu(t){this.config=t}function mxDefaultToolbar(t,e){this.editor=e,null!=t&&null!=e&&this.init(t)}function mxEditor(t){this.actions=[],this.addActions(),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(t),this.graph.swimlaneIndicatorColorAttribute=this.cycleAttributeName,null!=this.onInit&&this.onInit(),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,(function(){this.destroy()}))))}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),mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_HEXAGON,mxPerimeter.HexagonPerimeter),__mxOutput.mxStyleRegistry="undefined"!==typeof mxStyleRegistry?mxStyleRegistry:void 0,mxGraphView.prototype=new mxEventSource,mxGraphView.prototype.constructor=mxGraphView,mxGraphView.prototype.EMPTY_POINT=new mxPoint,mxGraphView.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphView.prototype.updatingDocumentResource="none"!=mxClient.language?"updatingDocument":"",mxGraphView.prototype.allowEval=!1,mxGraphView.prototype.captureDocumentGesture=!0,mxGraphView.prototype.optimizeVmlReflows=!0,mxGraphView.prototype.rendering=!0,mxGraphView.prototype.graph=null,mxGraphView.prototype.currentRoot=null,mxGraphView.prototype.graphBounds=null,mxGraphView.prototype.scale=1,mxGraphView.prototype.translate=null,mxGraphView.prototype.states=null,mxGraphView.prototype.updateStyle=!1,mxGraphView.prototype.lastNode=null,mxGraphView.prototype.lastHtmlNode=null,mxGraphView.prototype.lastForegroundNode=null,mxGraphView.prototype.lastForegroundHtmlNode=null,mxGraphView.prototype.getGraphBounds=function(){return this.graphBounds},mxGraphView.prototype.setGraphBounds=function(t){this.graphBounds=t},mxGraphView.prototype.getBounds=function(t){var e=null;if(null!=t&&t.length>0)for(var n=this.graph.getModel(),i=0;i<t.length;i++)if(n.isVertex(t[i])||n.isEdge(t[i])){var r=this.getState(t[i]);null!=r&&(null==e?e=mxRectangle.fromRectangle(r):e.add(r))}return e},mxGraphView.prototype.setCurrentRoot=function(t){if(this.currentRoot!=t){var e=new mxCurrentRootChange(this,t);e.execute();var n=new mxUndoableEdit(this,!0);n.add(e),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.graph.sizeDidChange()}return t},mxGraphView.prototype.scaleAndTranslate=function(t,e,n){var i=this.scale,r=new mxPoint(this.translate.x,this.translate.y);this.scale==t&&this.translate.x==e&&this.translate.y==n||(this.scale=t,this.translate.x=e,this.translate.y=n,this.isEventsEnabled()&&this.viewStateChanged()),this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,"scale",t,"previousScale",i,"translate",this.translate,"previousTranslate",r))},mxGraphView.prototype.getScale=function(){return this.scale},mxGraphView.prototype.setScale=function(t){var e=this.scale;this.scale!=t&&(this.scale=t,this.isEventsEnabled()&&this.viewStateChanged()),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",t,"previousScale",e))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(t,e){var n=new mxPoint(this.translate.x,this.translate.y);this.translate.x==t&&this.translate.y==e||(this.translate.x=t,this.translate.y=e,this.isEventsEnabled()&&this.viewStateChanged()),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",n))},mxGraphView.prototype.viewStateChanged=function(){this.revalidate(),this.graph.sizeDidChange()},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(t,e,n){var i=this.graph.getModel();if(t=t||i.getRoot(),e=null!=e&&e,n=null==n||n,this.removeState(t),n&&(e||t!=this.currentRoot))for(var r=i.getChildCount(t),o=0;o<r;o++)this.clear(i.getChildAt(t,o),e);else this.invalidate(t)},mxGraphView.prototype.invalidate=function(t,e,n){var i=this.graph.getModel();t=t||i.getRoot(),e=null==e||e,n=null==n||n;var r=this.getState(t);if(null!=r&&(r.invalid=!0),!t.invalidating){if(t.invalidating=!0,e)for(var o=i.getChildCount(t),s=0;s<o;s++){var l=i.getChildAt(t,s);this.invalidate(l,e,n)}if(n){var a=i.getEdgeCount(t);for(s=0;s<a;s++)this.invalidate(i.getEdgeAt(t,s),e,n)}delete t.invalidating}},mxGraphView.prototype.validate=function(t){var e=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource,this.resetValidationState();var n=null;this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode&&!mxClient.IS_EM||mxClient.IS_QUIRKS)&&(this.placeholder=document.createElement("div"),this.placeholder.style.position="absolute",this.placeholder.style.width=this.canvas.clientWidth+"px",this.placeholder.style.height=this.canvas.clientHeight+"px",this.canvas.parentNode.appendChild(this.placeholder),n=this.drawPane.style.display,this.canvas.style.display="none",this.textDiv=document.createElement("div"),this.textDiv.style.position="absolute",this.textDiv.style.whiteSpace="nowrap",this.textDiv.style.visibility="hidden",this.textDiv.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",this.textDiv.style.zoom="1",document.body.appendChild(this.textDiv));var i=this.getBoundingBox(this.validateCellState(this.validateCell(t||(null!=this.currentRoot?this.currentRoot:this.graph.getModel().getRoot()))));this.setGraphBounds(null!=i?i:this.getEmptyBounds()),this.validateBackground(),null!=n&&(this.canvas.style.display=n,this.textDiv.parentNode.removeChild(this.textDiv),null!=this.placeholder&&this.placeholder.parentNode.removeChild(this.placeholder),this.textDiv=null),this.resetValidationState(),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",e)},mxGraphView.prototype.getEmptyBounds=function(){return new mxRectangle(this.translate.x*this.scale,this.translate.y*this.scale)},mxGraphView.prototype.getBoundingBox=function(t,e){e=null==e||e;var n=null;if(null!=t&&(null!=t.shape&&null!=t.shape.boundingBox&&(n=t.shape.boundingBox.clone()),null!=t.text&&null!=t.text.boundingBox&&(null!=n?n.add(t.text.boundingBox):n=t.text.boundingBox.clone()),e))for(var i=this.graph.getModel(),r=i.getChildCount(t.cell),o=0;o<r;o++){var s=this.getBoundingBox(this.getState(i.getChildAt(t.cell,o)));null!=s&&(null==n?n=s:n.add(s))}return n},mxGraphView.prototype.createBackgroundPageShape=function(t){return new mxRectangleShape(t,"white","black")},mxGraphView.prototype.validateBackground=function(){this.validateBackgroundImage(),this.validateBackgroundPage()},mxGraphView.prototype.validateBackgroundImage=function(){var t=this.graph.getBackgroundImage();if(null!=t){if(null==this.backgroundImage||this.backgroundImage.image!=t.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var e=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(e,t.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw(),8!=document.documentMode||mxClient.IS_EM||mxEvent.addGestureListeners(this.backgroundImage.node,mxUtils.bind(this,(function(t){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t))})),mxUtils.bind(this,(function(t){this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t))})),mxUtils.bind(this,(function(t){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t))})))}this.redrawBackgroundImage(this.backgroundImage,t)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null)},mxGraphView.prototype.validateBackgroundPage=function(){if(this.graph.pageVisible){var t=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(t),this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=this.graph.dialect,this.backgroundPageShape.init(this.backgroundPane),this.backgroundPageShape.redraw(),this.graph.nativeDblClickEnabled&&mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,(function(t){this.graph.dblClick(t)}))),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,(function(t){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t))})),mxUtils.bind(this,(function(t){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(t)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t))})),mxUtils.bind(this,(function(t){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t))})))):(this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.bounds=t,this.backgroundPageShape.redraw())}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var t=this.graph.pageFormat,e=this.scale*this.graph.pageScale,n=new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,t.width*e,t.height*e);return n},mxGraphView.prototype.redrawBackgroundImage=function(t,e){t.scale=this.scale,t.bounds.x=this.scale*this.translate.x,t.bounds.y=this.scale*this.translate.y,t.bounds.width=this.scale*e.width,t.bounds.height=this.scale*e.height,t.redraw()},mxGraphView.prototype.validateCell=function(t,e){if(e=null==e||e,null!=t){e=e&&this.graph.isCellVisible(t);var n=this.getState(t,e);if(null==n||e)for(var i=this.graph.getModel(),r=i.getChildCount(t),o=0;o<r;o++)this.validateCell(i.getChildAt(t,o),e&&(!this.isCellCollapsed(t)||t==this.currentRoot));else this.removeState(t)}return t},mxGraphView.prototype.validateCellState=function(t,e){e=null==e||e;var n=null;if(null!=t&&(n=this.getState(t),null!=n)){var i=this.graph.getModel();if(n.invalid&&(n.invalid=!1,(null==n.style||n.invalidStyle)&&(n.style=this.graph.getCellStyle(n.cell),n.invalidStyle=!1),t!=this.currentRoot&&this.validateCellState(i.getParent(t),!1),n.setVisibleTerminalState(this.validateCellState(this.getVisibleTerminal(t,!0),!1),!0),n.setVisibleTerminalState(this.validateCellState(this.getVisibleTerminal(t,!1),!1),!1),this.updateCellState(n),t==this.currentRoot||n.invalid||(this.graph.cellRenderer.redraw(n,!1,this.isRendering()),n.updateCachedBounds())),e&&!n.invalid){null!=n.shape&&this.stateValidated(n);for(var r=i.getChildCount(t),o=0;o<r;o++)this.validateCellState(i.getChildAt(t,o))}}return n},mxGraphView.prototype.updateCellState=function(t){if(t.absoluteOffset.x=0,t.absoluteOffset.y=0,t.origin.x=0,t.origin.y=0,t.length=0,t.cell!=this.currentRoot){var e=this.graph.getModel(),n=this.getState(e.getParent(t.cell));null!=n&&n.cell!=this.currentRoot&&(t.origin.x+=n.origin.x,t.origin.y+=n.origin.y);var i=this.graph.getChildOffsetForCell(t.cell);null!=i&&(t.origin.x+=i.x,t.origin.y+=i.y);var r=this.graph.getCellGeometry(t.cell);if(null!=r){if(!e.isEdge(t.cell))if(i=null!=r.offset?r.offset:this.EMPTY_POINT,r.relative&&null!=n)if(e.isEdge(n.cell)){var o=this.getPoint(n,r);null!=o&&(t.origin.x+=o.x/this.scale-n.origin.x-this.translate.x,t.origin.y+=o.y/this.scale-n.origin.y-this.translate.y)}else t.origin.x+=r.x*n.unscaledWidth+i.x,t.origin.y+=r.y*n.unscaledHeight+i.y;else t.absoluteOffset.x=this.scale*i.x,t.absoluteOffset.y=this.scale*i.y,t.origin.x+=r.x,t.origin.y+=r.y;t.x=this.scale*(this.translate.x+t.origin.x),t.y=this.scale*(this.translate.y+t.origin.y),t.width=this.scale*r.width,t.unscaledWidth=r.width,t.height=this.scale*r.height,t.unscaledHeight=r.height,e.isVertex(t.cell)&&this.updateVertexState(t,r),e.isEdge(t.cell)&&this.updateEdgeState(t,r)}}t.updateCachedBounds()},mxGraphView.prototype.isCellCollapsed=function(t){return this.graph.isCellCollapsed(t)},mxGraphView.prototype.updateVertexState=function(t,e){var n=this.graph.getModel(),i=this.getState(n.getParent(t.cell));if(e.relative&&null!=i&&!n.isEdge(i.cell)){var r=mxUtils.toRadians(i.style[mxConstants.STYLE_ROTATION]||"0");if(0!=r){var o=Math.cos(r),s=Math.sin(r),l=new mxPoint(t.getCenterX(),t.getCenterY()),a=new mxPoint(i.getCenterX(),i.getCenterY()),h=mxUtils.getRotatedPoint(l,o,s,a);t.x=h.x-t.width/2,t.y=h.y-t.height/2}}this.updateVertexLabelOffset(t)},mxGraphView.prototype.updateEdgeState=function(t,e){var n=t.getVisibleTerminalState(!0),i=t.getVisibleTerminalState(!1);if(null!=this.graph.model.getTerminal(t.cell,!0)&&null==n||null==n&&null==e.getTerminalPoint(!0)||null!=this.graph.model.getTerminal(t.cell,!1)&&null==i||null==i&&null==e.getTerminalPoint(!1))this.clear(t.cell,!0);else{this.updateFixedTerminalPoints(t,n,i),this.updatePoints(t,e.points,n,i),this.updateFloatingTerminalPoints(t,n,i);var r=t.absolutePoints;t.cell!=this.currentRoot&&(null==r||r.length<2||null==r[0]||null==r[r.length-1])?this.clear(t.cell,!0):(this.updateEdgeBounds(t),this.updateEdgeLabelOffset(t))}},mxGraphView.prototype.updateVertexLabelOffset=function(t){var e=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);if(e==mxConstants.ALIGN_LEFT){var n=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_WIDTH,null);null!=n?n*=this.scale:n=t.width,t.absoluteOffset.x-=n}else if(e==mxConstants.ALIGN_RIGHT)t.absoluteOffset.x+=t.width;else if(e==mxConstants.ALIGN_CENTER){n=mxUtils.getValue(t.style,mxConstants.STYLE_LABEL_WIDTH,null);if(null!=n){var i=mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),r=0;i==mxConstants.ALIGN_CENTER?r=.5:i==mxConstants.ALIGN_RIGHT&&(r=1),0!=r&&(t.absoluteOffset.x-=(n*this.scale-t.width)*r)}}var o=mxUtils.getValue(t.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);o==mxConstants.ALIGN_TOP?t.absoluteOffset.y-=t.height:o==mxConstants.ALIGN_BOTTOM&&(t.absoluteOffset.y+=t.height)},mxGraphView.prototype.resetValidationState=function(){this.lastNode=null,this.lastHtmlNode=null,this.lastForegroundNode=null,this.lastForegroundHtmlNode=null},mxGraphView.prototype.stateValidated=function(t){var e=this.graph.getModel().isEdge(t.cell)&&this.graph.keepEdgesInForeground||this.graph.getModel().isVertex(t.cell)&&this.graph.keepEdgesInBackground,n=e&&this.lastForegroundHtmlNode||this.lastHtmlNode,i=e&&this.lastForegroundNode||this.lastNode,r=this.graph.cellRenderer.insertStateAfter(t,i,n);e?(this.lastForegroundHtmlNode=r[1],this.lastForegroundNode=r[0]):(this.lastHtmlNode=r[1],this.lastNode=r[0])},mxGraphView.prototype.updateFixedTerminalPoints=function(t,e,n){this.updateFixedTerminalPoint(t,e,!0,this.graph.getConnectionConstraint(t,e,!0)),this.updateFixedTerminalPoint(t,n,!1,this.graph.getConnectionConstraint(t,n,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(t,e,n,i){t.setAbsoluteTerminalPoint(this.getFixedTerminalPoint(t,e,n,i),n)},mxGraphView.prototype.getFixedTerminalPoint=function(t,e,n,i){var r=null;if(null!=i&&(r=this.graph.getConnectionPoint(e,i,!1)),null==r&&null==e){var o=this.scale,s=this.translate,l=t.origin,a=this.graph.getCellGeometry(t.cell);r=a.getTerminalPoint(n),null!=r&&(r=new mxPoint(o*(s.x+r.x+l.x),o*(s.y+r.y+l.y)))}return r},mxGraphView.prototype.updateBoundsFromStencil=function(t){var e=null;if(null!=t&&null!=t.shape&&null!=t.shape.stencil&&"fixed"==t.shape.stencil.aspect){e=mxRectangle.fromRectangle(t);var n=t.shape.stencil.computeAspect(t.style,t.x,t.y,t.width,t.height);t.setRect(n.x,n.y,t.shape.stencil.w0*n.width,t.shape.stencil.h0*n.height)}return e},mxGraphView.prototype.updatePoints=function(t,e,n,i){if(null!=t){var r=[];r.push(t.absolutePoints[0]);var o=this.getEdgeStyle(t,e,n,i);if(null!=o){var s=this.getTerminalPort(t,n,!0),l=this.getTerminalPort(t,i,!1),a=this.updateBoundsFromStencil(s),h=this.updateBoundsFromStencil(l);o(t,s,l,e,r),null!=a&&s.setRect(a.x,a.y,a.width,a.height),null!=h&&l.setRect(h.x,h.y,h.width,h.height)}else if(null!=e)for(var u=0;u<e.length;u++)if(null!=e[u]){var d=mxUtils.clone(e[u]);r.push(this.transformControlPoint(t,d))}var c=t.absolutePoints;r.push(c[c.length-1]),t.absolutePoints=r}},mxGraphView.prototype.transformControlPoint=function(t,e,n){if(null!=t&&null!=e){var i=t.origin,r=n?1:this.scale;return new mxPoint(r*(e.x+this.translate.x+i.x),r*(e.y+this.translate.y+i.y))}return null},mxGraphView.prototype.isLoopStyleEnabled=function(t,e,n,i){var r=this.graph.getConnectionConstraint(t,n,!0),o=this.graph.getConnectionConstraint(t,i,!1);return!(!(null==e||e.length<2)||mxUtils.getValue(t.style,mxConstants.STYLE_ORTHOGONAL_LOOP,!1)&&(null!=r&&null!=r.point||null!=o&&null!=o.point))&&(null!=n&&n==i)},mxGraphView.prototype.getEdgeStyle=function(t,e,n,i){var r=this.isLoopStyleEnabled(t,e,n,i)?mxUtils.getValue(t.style,mxConstants.STYLE_LOOP,this.graph.defaultLoopStyle):mxUtils.getValue(t.style,mxConstants.STYLE_NOEDGESTYLE,!1)?null:t.style[mxConstants.STYLE_EDGE];if("string"==typeof r){var o=mxStyleRegistry.getValue(r);null==o&&this.isAllowEval()&&(o=mxUtils.eval(r)),r=o}return"function"==typeof r?r:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(t,e,n){var i=t.absolutePoints,r=i[0],o=i[i.length-1];null==o&&null!=n&&this.updateFloatingTerminalPoint(t,n,e,!1),null==r&&null!=e&&this.updateFloatingTerminalPoint(t,e,n,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(t,e,n,i){t.setAbsoluteTerminalPoint(this.getFloatingTerminalPoint(t,e,n,i),i)},mxGraphView.prototype.getFloatingTerminalPoint=function(t,e,n,i){e=this.getTerminalPort(t,e,i);var r=this.getNextPoint(t,n,i),o=this.graph.isOrthogonal(t),s=mxUtils.toRadians(Number(e.style[mxConstants.STYLE_ROTATION]||"0")),l=new mxPoint(e.getCenterX(),e.getCenterY());if(0!=s){var a=Math.cos(-s),h=Math.sin(-s);r=mxUtils.getRotatedPoint(r,a,h,l)}var u=parseFloat(t.style[mxConstants.STYLE_PERIMETER_SPACING]||0);u+=parseFloat(t.style[i?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);var d=this.getPerimeterPoint(e,r,0==s&&o,u);if(0!=s){a=Math.cos(s),h=Math.sin(s);d=mxUtils.getRotatedPoint(d,a,h,l)}return d},mxGraphView.prototype.getTerminalPort=function(t,e,n){var i=n?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,r=mxUtils.getValue(t.style,i);if(null!=r){var o=this.getState(this.graph.getModel().getCell(r));null!=o&&(e=o)}return e},mxGraphView.prototype.getPerimeterPoint=function(t,e,n,i){var r=null;if(null!=t){var o=this.getPerimeterFunction(t);if(null!=o&&null!=e){var s=this.getPerimeterBounds(t,i);if(s.width>0||s.height>0){r=new mxPoint(e.x,e.y);var l=!1,a=!1;this.graph.model.isVertex(t.cell)&&(l=1==mxUtils.getValue(t.style,mxConstants.STYLE_FLIPH,0),a=1==mxUtils.getValue(t.style,mxConstants.STYLE_FLIPV,0),null!=t.shape&&null!=t.shape.stencil&&(l=1==mxUtils.getValue(t.style,"stencilFlipH",0)||l,a=1==mxUtils.getValue(t.style,"stencilFlipV",0)||a),l&&(r.x=2*s.getCenterX()-r.x),a&&(r.y=2*s.getCenterY()-r.y)),r=o(s,t,r,n),null!=r&&(l&&(r.x=2*s.getCenterX()-r.x),a&&(r.y=2*s.getCenterY()-r.y))}}null==r&&(r=this.getPoint(t))}return r},mxGraphView.prototype.getRoutingCenterX=function(t){var e=null!=t.style&&parseFloat(t.style[mxConstants.STYLE_ROUTING_CENTER_X])||0;return t.getCenterX()+e*t.width},mxGraphView.prototype.getRoutingCenterY=function(t){var e=null!=t.style&&parseFloat(t.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0;return t.getCenterY()+e*t.height},mxGraphView.prototype.getPerimeterBounds=function(t,e){return e=null!=e?e:0,null!=t&&(e+=parseFloat(t.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),t.getPerimeterBounds(e*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(t){var e=t.style[mxConstants.STYLE_PERIMETER];if("string"==typeof e){var n=mxStyleRegistry.getValue(e);null==n&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(t,e,n){var i=t.absolutePoints,r=null;if(null!=i&&i.length>=2){var o=i.length;r=i[n?Math.min(1,o-1):Math.max(0,o-2)]}return null==r&&null!=e&&(r=new mxPoint(e.getCenterX(),e.getCenterY())),r},mxGraphView.prototype.getVisibleTerminal=function(t,e){var n=this.graph.getModel(),i=n.getTerminal(t,e),r=i;while(null!=i&&i!=this.currentRoot)this.graph.isCellVisible(r)&&!this.isCellCollapsed(i)||(r=i),i=n.getParent(i);return null==r||n.contains(r)&&n.getParent(r)!=n.getRoot()&&r!=this.currentRoot||(r=null),r},mxGraphView.prototype.updateEdgeBounds=function(t){var e=t.absolutePoints,n=e[0],i=e[e.length-1];if(n.x!=i.x||n.y!=i.y){var r=i.x-n.x,o=i.y-n.y;t.terminalDistance=Math.sqrt(r*r+o*o)}else t.terminalDistance=0;var s=0,l=[],a=n;if(null!=a){for(var h=a.x,u=a.y,d=h,c=u,p=1;p<e.length;p++){var g=e[p];if(null!=g){r=a.x-g.x,o=a.y-g.y;var m=Math.sqrt(r*r+o*o);l.push(m),s+=m,a=g,h=Math.min(a.x,h),u=Math.min(a.y,u),d=Math.max(a.x,d),c=Math.max(a.y,c)}}t.length=s,t.segments=l;var x=1;t.x=h,t.y=u,t.width=Math.max(x,d-h),t.height=Math.max(x,c-u)}},mxGraphView.prototype.getPoint=function(t,e){var n=t.getCenterX(),i=t.getCenterY();if(null==t.segments||null!=e&&!e.relative){if(null!=e){x=e.offset;null!=x&&(n+=x.x,i+=x.y)}}else{var r=null!=e?e.x/2:0,o=t.absolutePoints.length,s=Math.round((r+.5)*t.length),l=t.segments[0],a=0,h=1;while(s>=Math.round(a+l)&&h<o-1)a+=l,l=t.segments[h++];var u=0==l?0:(s-a)/l,d=t.absolutePoints[h-1],c=t.absolutePoints[h];if(null!=d&&null!=c){var p=0,g=0,m=0;if(null!=e){p=e.y;var x=e.offset;null!=x&&(g=x.x,m=x.y)}var y=c.x-d.x,f=c.y-d.y,A=0==l?0:f/l,C=0==l?0:y/l;n=d.x+y*u+(A*p+g)*this.scale,i=d.y+f*u-(C*p-m)*this.scale}}return new mxPoint(n,i)},mxGraphView.prototype.getRelativePoint=function(t,e,n){var i=this.graph.getModel(),r=i.getGeometry(t.cell);if(null!=r){var o=t.absolutePoints.length;if(r.relative&&o>1){for(var s=t.length,l=t.segments,a=t.absolutePoints[0],h=t.absolutePoints[1],u=mxUtils.ptSegDistSq(a.x,a.y,h.x,h.y,e,n),d=0,c=0,p=0,g=2;g<o;g++){c+=l[g-2],h=t.absolutePoints[g];var m=mxUtils.ptSegDistSq(a.x,a.y,h.x,h.y,e,n);m<=u&&(u=m,d=g-1,p=c),a=h}var x=l[d];a=t.absolutePoints[d],h=t.absolutePoints[d+1];var y=a.x,f=a.y,A=h.x,C=h.y,v=e,E=n,w=y-A,S=f-C;v-=A,E-=C;var b=0;v=w-v,E=S-E;var T=v*w+E*S;b=T<=0?0:T*T/(w*w+S*S);var L=Math.sqrt(b);L>x&&(L=x);var I=Math.sqrt(mxUtils.ptSegDistSq(a.x,a.y,h.x,h.y,e,n)),M=mxUtils.relativeCcw(a.x,a.y,h.x,h.y,e,n);return-1==M&&(I=-I),new mxPoint((s/2-p-L)/s*-2,I/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(t){var e=t.absolutePoints;if(t.absoluteOffset.x=t.getCenterX(),t.absoluteOffset.y=t.getCenterY(),null!=e&&e.length>0&&null!=t.segments){var n=this.graph.getCellGeometry(t.cell);if(n.relative){var i=this.getPoint(t,n);null!=i&&(t.absoluteOffset=i)}else{var r=e[0],o=e[e.length-1];if(null!=r&&null!=o){var s=o.x-r.x,l=o.y-r.y,a=0,h=0,u=n.offset;null!=u&&(a=u.x,h=u.y);var d=r.x+s/2+a*this.scale,c=r.y+l/2+h*this.scale;t.absoluteOffset.x=d,t.absoluteOffset.y=c}}}},mxGraphView.prototype.getState=function(t,e){e=e||!1;var n=null;return null!=t&&(n=this.states.get(t),e&&(null==n||this.updateStyle)&&this.graph.isCellVisible(t)&&(null==n?(n=this.createState(t),this.states.put(t,n)):n.style=this.graph.getCellStyle(t))),n},mxGraphView.prototype.isRendering=function(){return this.rendering},mxGraphView.prototype.setRendering=function(t){this.rendering=t},mxGraphView.prototype.isAllowEval=function(){return this.allowEval},mxGraphView.prototype.setAllowEval=function(t){this.allowEval=t},mxGraphView.prototype.getStates=function(){return this.states},mxGraphView.prototype.setStates=function(t){this.states=t},mxGraphView.prototype.getCellStates=function(t){if(null==t)return this.states;for(var e=[],n=0;n<t.length;n++){var i=this.getState(t[n]);null!=i&&e.push(i)}return e},mxGraphView.prototype.removeState=function(t){var e=null;return null!=t&&(e=this.states.remove(t),null!=e&&(this.graph.cellRenderer.destroy(e),e.invalid=!0,e.destroy())),e},mxGraphView.prototype.createState=function(t){return new mxCellState(this,t,this.graph.getCellStyle(t))},mxGraphView.prototype.getCanvas=function(){return this.canvas},mxGraphView.prototype.getBackgroundPane=function(){return this.backgroundPane},mxGraphView.prototype.getDrawPane=function(){return this.drawPane},mxGraphView.prototype.getOverlayPane=function(){return this.overlayPane},mxGraphView.prototype.getDecoratorPane=function(){return this.decoratorPane},mxGraphView.prototype.isContainerEvent=function(t){var e=mxEvent.getSource(t);return e==this.graph.container||e.parentNode==this.backgroundPane||null!=e.parentNode&&e.parentNode.parentNode==this.backgroundPane||e==this.canvas.parentNode||e==this.canvas||e==this.backgroundPane||e==this.drawPane||e==this.overlayPane||e==this.decoratorPane},mxGraphView.prototype.isScrollEvent=function(t){var e=mxUtils.getOffset(this.graph.container),n=new mxPoint(t.clientX-e.x,t.clientY-e.y),i=this.graph.container.offsetWidth,r=this.graph.container.clientWidth;if(i>r&&n.x>r+2&&n.x<=i)return!0;var o=this.graph.container.offsetHeight,s=this.graph.container.clientHeight;return o>s&&n.y>s+2&&n.y<=o},mxGraphView.prototype.init=function(){this.installListeners();var t=this.graph;t.dialect==mxConstants.DIALECT_SVG?this.createSvg():t.dialect==mxConstants.DIALECT_VML?this.createVml():this.createHtml()},mxGraphView.prototype.installListeners=function(){var t=this.graph,e=t.container;if(null!=e){mxClient.IS_TOUCH&&(mxEvent.addListener(e,"gesturestart",mxUtils.bind(this,(function(e){t.fireGestureEvent(e),mxEvent.consume(e)}))),mxEvent.addListener(e,"gesturechange",mxUtils.bind(this,(function(e){t.fireGestureEvent(e),mxEvent.consume(e)}))),mxEvent.addListener(e,"gestureend",mxUtils.bind(this,(function(e){t.fireGestureEvent(e),mxEvent.consume(e)}))));var n=null;mxEvent.addGestureListeners(e,mxUtils.bind(this,(function(e){!this.isContainerEvent(e)||(mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_GC||mxClient.IS_OP||mxClient.IS_SF)&&this.isScrollEvent(e)||(t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e)),n=e.pointerId)})),mxUtils.bind(this,(function(e){!this.isContainerEvent(e)||null!=n&&e.pointerId!=n||t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))})),mxUtils.bind(this,(function(e){this.isContainerEvent(e)&&t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e)),n=null}))),mxEvent.addListener(e,"dblclick",mxUtils.bind(this,(function(e){this.isContainerEvent(e)&&t.dblClick(e)})));var i=function(n){var i=null;if(mxClient.IS_TOUCH){var r=mxEvent.getClientX(n),o=mxEvent.getClientY(n),s=mxUtils.convertPoint(e,r,o);i=t.view.getState(t.getCellAt(s.x,s.y))}return i};t.addMouseListener({mouseDown:function(e,n){t.popupMenuHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,(function(e){null!=t.tooltipHandler&&t.tooltipHandler.isHideOnHover()&&t.tooltipHandler.hide(),this.captureDocumentGesture&&t.isMouseDown&&null!=t.container&&!this.isContainerEvent(e)&&"none"!=t.container.style.display&&"hidden"!=t.container.style.visibility&&!mxEvent.isConsumed(e)&&t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,i(e)))})),this.endHandler=mxUtils.bind(this,(function(e){this.captureDocumentGesture&&t.isMouseDown&&null!=t.container&&!this.isContainerEvent(e)&&"none"!=t.container.style.display&&"hidden"!=t.container.style.visibility&&t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))})),mxEvent.addGestureListeners(document,null,this.moveHandler,this.endHandler)}},mxGraphView.prototype.createHtml=function(){var t=this.graph.container;if(null!=t&&(this.canvas=this.createHtmlPane("100%","100%"),this.canvas.style.overflow="hidden",this.backgroundPane=this.createHtmlPane("1px","1px"),this.drawPane=this.createHtmlPane("1px","1px"),this.overlayPane=this.createHtmlPane("1px","1px"),this.decoratorPane=this.createHtmlPane("1px","1px"),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),this.canvas.appendChild(this.decoratorPane),t.appendChild(this.canvas),this.updateContainerStyle(t),mxClient.IS_QUIRKS)){var e=mxUtils.bind(this,(function(t){var e=this.getGraphBounds(),n=e.x+e.width+this.graph.border,i=e.y+e.height+this.graph.border;this.updateHtmlCanvasSize(n,i)}));mxEvent.addListener(window,"resize",e)}},mxGraphView.prototype.updateHtmlCanvasSize=function(t,e){if(null!=this.graph.container){var n=this.graph.container.offsetWidth,i=this.graph.container.offsetHeight;this.canvas.style.width=n<t?t+"px":"100%",this.canvas.style.height=i<e?e+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(t,e){var n=document.createElement("DIV");return null!=t&&null!=e?(n.style.position="absolute",n.style.left="0px",n.style.top="0px",n.style.width=t,n.style.height=e):n.style.position="relative",n},mxGraphView.prototype.createVml=function(){var t=this.graph.container;if(null!=t){var e=t.offsetWidth,n=t.offsetHeight;this.canvas=this.createVmlPane(e,n),this.canvas.style.overflow="hidden",this.backgroundPane=this.createVmlPane(e,n),this.drawPane=this.createVmlPane(e,n),this.overlayPane=this.createVmlPane(e,n),this.decoratorPane=this.createVmlPane(e,n),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),this.canvas.appendChild(this.decoratorPane),t.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(t,e){var n=document.createElement(mxClient.VML_PREFIX+":group");return n.style.position="absolute",n.style.left="0px",n.style.top="0px",n.style.width=t+"px",n.style.height=e+"px",n.setAttribute("coordsize",t+","+e),n.setAttribute("coordorigin","0,0"),n},mxGraphView.prototype.createSvg=function(){var t=this.graph.container;this.canvas=document.createElementNS(mxConstants.NS_SVG,"g"),this.backgroundPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.backgroundPane),this.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.drawPane),this.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.overlayPane),this.decoratorPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.decoratorPane);var e=document.createElementNS(mxConstants.NS_SVG,"svg");e.style.left="0px",e.style.top="0px",e.style.width="100%",e.style.height="100%",e.style.display="block",e.appendChild(this.canvas),(mxClient.IS_IE||mxClient.IS_IE11)&&(e.style.overflow="hidden"),null!=t&&(t.appendChild(e),this.updateContainerStyle(t))},mxGraphView.prototype.updateContainerStyle=function(t){var e=mxUtils.getCurrentStyle(t);null!=e&&"static"==e.position&&(t.style.position="relative"),mxClient.IS_POINTER&&(t.style.touchAction="none")},mxGraphView.prototype.destroy=function(){var t=null!=this.canvas?this.canvas.ownerSVGElement:null;null==t&&(t=this.canvas),null!=t&&null!=t.parentNode&&(this.clear(this.currentRoot,!0),mxEvent.removeGestureListeners(document,null,this.moveHandler,this.endHandler),mxEvent.release(this.graph.container),t.parentNode.removeChild(t),this.moveHandler=null,this.endHandler=null,this.canvas=null,this.backgroundPane=null,this.drawPane=null,this.overlayPane=null,this.decoratorPane=null)},mxCurrentRootChange.prototype.execute=function(){var t=this.view.currentRoot;this.view.currentRoot=this.previous,this.previous=t;var e=this.view.graph.getTranslateForRoot(this.view.currentRoot);null!=e&&(this.view.translate=new mxPoint(-e.x,-e.y)),this.isUp?(this.view.clear(this.view.currentRoot,!0),this.view.validate()):this.view.refresh();var n=this.isUp?mxEvent.UP:mxEvent.DOWN;this.view.fireEvent(new mxEventObject(n,"root",this.view.currentRoot,"previous",this.previous)),this.isUp=!this.isUp},__mxOutput.mxGraphView="undefined"!==typeof mxGraphView?mxGraphView:void 0,mxLoadResources?mxResources.add(mxClient.basePath+"/resources/graph"):mxClient.defaultBundles.push(mxClient.basePath+"/resources/graph"),mxGraph.prototype=new mxEventSource,mxGraph.prototype.constructor=mxGraph,mxGraph.prototype.mouseListeners=null,mxGraph.prototype.isMouseDown=!1,mxGraph.prototype.model=null,mxGraph.prototype.view=null,mxGraph.prototype.stylesheet=null,mxGraph.prototype.selectionModel=null,mxGraph.prototype.cellEditor=null,mxGraph.prototype.cellRenderer=null,mxGraph.prototype.multiplicities=null,mxGraph.prototype.renderHint=null,mxGraph.prototype.dialect=null,mxGraph.prototype.gridSize=10,mxGraph.prototype.gridEnabled=!0,mxGraph.prototype.portsEnabled=!0,mxGraph.prototype.nativeDblClickEnabled=!0,mxGraph.prototype.doubleTapEnabled=!0,mxGraph.prototype.doubleTapTimeout=500,mxGraph.prototype.doubleTapTolerance=25,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchTime=0,mxGraph.prototype.tapAndHoldEnabled=!0,mxGraph.prototype.tapAndHoldDelay=500,mxGraph.prototype.tapAndHoldInProgress=!1,mxGraph.prototype.tapAndHoldValid=!1,mxGraph.prototype.initialTouchX=0,mxGraph.prototype.initialTouchY=0,mxGraph.prototype.tolerance=4,mxGraph.prototype.defaultOverlap=.5,mxGraph.prototype.defaultParent=null,mxGraph.prototype.alternateEdgeStyle=null,mxGraph.prototype.backgroundImage=null,mxGraph.prototype.pageVisible=!1,mxGraph.prototype.pageBreaksVisible=!1,mxGraph.prototype.pageBreakColor="gray",mxGraph.prototype.pageBreakDashed=!0,mxGraph.prototype.minPageBreakDist=20,mxGraph.prototype.preferPageSize=!1,mxGraph.prototype.pageFormat=mxConstants.PAGE_FORMAT_A4_PORTRAIT,mxGraph.prototype.pageScale=1.5,mxGraph.prototype.enabled=!0,mxGraph.prototype.escapeEnabled=!0,mxGraph.prototype.invokesStopCellEditing=!0,mxGraph.prototype.enterStopsCellEditing=!1,mxGraph.prototype.useScrollbarsForPanning=!0,mxGraph.prototype.exportEnabled=!0,mxGraph.prototype.importEnabled=!0,mxGraph.prototype.cellsLocked=!1,mxGraph.prototype.cellsCloneable=!0,mxGraph.prototype.foldingEnabled=!0,mxGraph.prototype.cellsEditable=!0,mxGraph.prototype.cellsDeletable=!0,mxGraph.prototype.cellsMovable=!0,mxGraph.prototype.edgeLabelsMovable=!0,mxGraph.prototype.vertexLabelsMovable=!1,mxGraph.prototype.dropEnabled=!1,mxGraph.prototype.splitEnabled=!0,mxGraph.prototype.cellsResizable=!0,mxGraph.prototype.cellsBendable=!0,mxGraph.prototype.cellsSelectable=!0,mxGraph.prototype.cellsDisconnectable=!0,mxGraph.prototype.autoSizeCells=!1,mxGraph.prototype.autoSizeCellsOnAdd=!1,mxGraph.prototype.autoScroll=!0,mxGraph.prototype.ignoreScrollbars=!1,mxGraph.prototype.translateToScrollPosition=!1,mxGraph.prototype.timerAutoScroll=!1,mxGraph.prototype.allowAutoPanning=!1,mxGraph.prototype.autoExtend=!0,mxGraph.prototype.maximumGraphBounds=null,mxGraph.prototype.minimumGraphSize=null,mxGraph.prototype.minimumContainerSize=null,mxGraph.prototype.maximumContainerSize=null,mxGraph.prototype.resizeContainer=!1,mxGraph.prototype.border=0,mxGraph.prototype.keepEdgesInForeground=!1,mxGraph.prototype.keepEdgesInBackground=!1,mxGraph.prototype.allowNegativeCoordinates=!0,mxGraph.prototype.constrainChildren=!0,mxGraph.prototype.constrainRelativeChildren=!1,mxGraph.prototype.extendParents=!0,mxGraph.prototype.extendParentsOnAdd=!0,mxGraph.prototype.extendParentsOnMove=!1,mxGraph.prototype.recursiveResize=!1,mxGraph.prototype.collapseToPreferredSize=!0,mxGraph.prototype.zoomFactor=1.2,mxGraph.prototype.keepSelectionVisibleOnZoom=!1,mxGraph.prototype.centerZoom=!0,mxGraph.prototype.resetViewOnRootChange=!0,mxGraph.prototype.resetEdgesOnResize=!1,mxGraph.prototype.resetEdgesOnMove=!1,mxGraph.prototype.resetEdgesOnConnect=!0,mxGraph.prototype.allowLoops=!1,mxGraph.prototype.defaultLoopStyle=mxEdgeStyle.Loop,mxGraph.prototype.multigraph=!0,mxGraph.prototype.connectableEdges=!1,mxGraph.prototype.allowDanglingEdges=!0,mxGraph.prototype.cloneInvalidEdges=!1,mxGraph.prototype.disconnectOnMove=!0,mxGraph.prototype.labelsVisible=!0,mxGraph.prototype.htmlLabels=!1,mxGraph.prototype.swimlaneSelectionEnabled=!0,mxGraph.prototype.swimlaneNesting=!0,mxGraph.prototype.swimlaneIndicatorColorAttribute=mxConstants.STYLE_FILLCOLOR,mxGraph.prototype.imageBundles=null,mxGraph.prototype.minFitScale=.1,mxGraph.prototype.maxFitScale=8,mxGraph.prototype.panDx=0,mxGraph.prototype.panDy=0,mxGraph.prototype.collapsedImage=new mxImage(mxClient.imageBasePath+"/collapsed.gif",9,9),mxGraph.prototype.expandedImage=new mxImage(mxClient.imageBasePath+"/expanded.gif",9,9),mxGraph.prototype.warningImage=new mxImage(mxClient.imageBasePath+"/warning"+(mxClient.IS_MAC?".png":".gif"),16,16),mxGraph.prototype.alreadyConnectedResource="none"!=mxClient.language?"alreadyConnected":"",mxGraph.prototype.containsValidationErrorsResource="none"!=mxClient.language?"containsValidationErrors":"",mxGraph.prototype.collapseExpandResource="none"!=mxClient.language?"collapse-expand":"",mxGraph.prototype.init=function(t){this.container=t,this.cellEditor=this.createCellEditor(),this.view.init(),this.sizeDidChange(),mxEvent.addListener(t,"mouseleave",mxUtils.bind(this,(function(t){null!=this.tooltipHandler&&null!=this.tooltipHandler.div&&this.tooltipHandler.div!=t.relatedTarget&&this.tooltipHandler.hide()}))),mxClient.IS_IE&&(mxEvent.addListener(window,"unload",mxUtils.bind(this,(function(){this.destroy()}))),mxEvent.addListener(t,"selectstart",mxUtils.bind(this,(function(t){return this.isEditing()||!this.isMouseDown&&!mxEvent.isShiftDown(t)})))),8==document.documentMode&&t.insertAdjacentHTML("beforeend","<"+mxClient.VML_PREFIX+':group style="DISPLAY: none;"></'+mxClient.VML_PREFIX+":group>")},mxGraph.prototype.createHandlers=function(){this.tooltipHandler=this.createTooltipHandler(),this.tooltipHandler.setEnabled(!1),this.selectionCellsHandler=this.createSelectionCellsHandler(),this.connectionHandler=this.createConnectionHandler(),this.connectionHandler.setEnabled(!1),this.graphHandler=this.createGraphHandler(),this.panningHandler=this.createPanningHandler(),this.panningHandler.panningEnabled=!1,this.popupMenuHandler=this.createPopupMenuHandler()},mxGraph.prototype.createTooltipHandler=function(){return new mxTooltipHandler(this)},mxGraph.prototype.createSelectionCellsHandler=function(){return new mxSelectionCellsHandler(this)},mxGraph.prototype.createConnectionHandler=function(){return new mxConnectionHandler(this)},mxGraph.prototype.createGraphHandler=function(){return new mxGraphHandler(this)},mxGraph.prototype.createPanningHandler=function(){return new mxPanningHandler(this)},mxGraph.prototype.createPopupMenuHandler=function(){return new mxPopupMenuHandler(this)},mxGraph.prototype.createSelectionModel=function(){return new mxGraphSelectionModel(this)},mxGraph.prototype.createStylesheet=function(){return new mxStylesheet},mxGraph.prototype.createGraphView=function(){return new mxGraphView(this)},mxGraph.prototype.createCellRenderer=function(){return new mxCellRenderer},mxGraph.prototype.createCellEditor=function(){return new mxCellEditor(this)},mxGraph.prototype.getModel=function(){return this.model},mxGraph.prototype.getView=function(){return this.view},mxGraph.prototype.getStylesheet=function(){return this.stylesheet},mxGraph.prototype.setStylesheet=function(t){this.stylesheet=t},mxGraph.prototype.getSelectionModel=function(){return this.selectionModel},mxGraph.prototype.setSelectionModel=function(t){this.selectionModel=t},mxGraph.prototype.getSelectionCellsForChanges=function(t,e){for(var n=new mxDictionary,i=[],r=mxUtils.bind(this,(function(t){if(!n.get(t)&&this.model.contains(t))if(this.model.isEdge(t)||this.model.isVertex(t))n.put(t,!0),i.push(t);else for(var e=this.model.getChildCount(t),o=0;o<e;o++)r(this.model.getChildAt(t,o))})),o=0;o<t.length;o++){var s=t[o];if(s.constructor!=mxRootChange&&(null==e||!e(s))){var l=null;s instanceof mxChildChange?l=s.child:null!=s.cell&&s.cell instanceof mxCell&&(l=s.cell),null!=l&&r(l)}}return i},mxGraph.prototype.graphModelChanged=function(t){for(var e=0;e<t.length;e++)this.processChange(t[e]);this.updateSelection(),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.updateSelection=function(){for(var t=this.getSelectionCells(),e=[],n=0;n<t.length;n++)if(this.model.contains(t[n])&&this.isCellVisible(t[n])){var i=this.model.getParent(t[n]);while(null!=i&&i!=this.view.currentRoot){if(this.isCellCollapsed(i)||!this.isCellVisible(i)){e.push(t[n]);break}i=this.model.getParent(i)}}else e.push(t[n]);this.removeSelectionCells(e)},mxGraph.prototype.processChange=function(t){if(t instanceof mxRootChange)this.clearSelection(),this.setDefaultParent(null),this.removeStateForCell(t.previous),this.resetViewOnRootChange&&(this.view.scale=1,this.view.translate.x=0,this.view.translate.y=0),this.fireEvent(new mxEventObject(mxEvent.ROOT));else if(t instanceof mxChildChange){var e=this.model.getParent(t.child);this.view.invalidate(t.child,!0,!0),this.model.contains(e)&&!this.isCellCollapsed(e)||(this.view.invalidate(t.child,!0,!0),this.removeStateForCell(t.child),this.view.currentRoot==t.child&&this.home()),e!=t.previous&&(null!=e&&this.view.invalidate(e,!1,!1),null!=t.previous&&this.view.invalidate(t.previous,!1,!1))}else if(t instanceof mxTerminalChange||t instanceof mxGeometryChange)(t instanceof mxTerminalChange||null==t.previous&&null!=t.geometry||null!=t.previous&&!t.previous.equals(t.geometry))&&this.view.invalidate(t.cell);else if(t instanceof mxValueChange)this.view.invalidate(t.cell,!1,!1);else if(t instanceof mxStyleChange){this.view.invalidate(t.cell,!0,!0);var n=this.view.getState(t.cell);null!=n&&(n.invalidStyle=!0)}else null!=t.cell&&t.cell instanceof mxCell&&this.removeStateForCell(t.cell)},mxGraph.prototype.removeStateForCell=function(t){for(var e=this.model.getChildCount(t),n=0;n<e;n++)this.removeStateForCell(this.model.getChildAt(t,n));this.view.invalidate(t,!1,!0),this.view.removeState(t)},mxGraph.prototype.addCellOverlay=function(t,e){null==t.overlays&&(t.overlays=[]),t.overlays.push(e);var n=this.view.getState(t);return null!=n&&this.cellRenderer.redraw(n),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",t,"overlay",e)),e},mxGraph.prototype.getCellOverlays=function(t){return t.overlays},mxGraph.prototype.removeCellOverlay=function(t,e){if(null==e)this.removeCellOverlays(t);else{var n=mxUtils.indexOf(t.overlays,e);if(n>=0){t.overlays.splice(n,1),0==t.overlays.length&&(t.overlays=null);var i=this.view.getState(t);null!=i&&this.cellRenderer.redraw(i),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",t,"overlay",e))}else e=null}return e},mxGraph.prototype.removeCellOverlays=function(t){var e=t.overlays;if(null!=e){t.overlays=null;var n=this.view.getState(t);null!=n&&this.cellRenderer.redraw(n);for(var i=0;i<e.length;i++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",t,"overlay",e[i]))}return e},mxGraph.prototype.clearCellOverlays=function(t){t=null!=t?t:this.model.getRoot(),this.removeCellOverlays(t);for(var e=this.model.getChildCount(t),n=0;n<e;n++){var i=this.model.getChildAt(t,n);this.clearCellOverlays(i)}},mxGraph.prototype.setCellWarning=function(t,e,n,i){if(null!=e&&e.length>0){n=null!=n?n:this.warningImage;var r=new mxCellOverlay(n,"<font color=red>"+e+"</font>");return i&&r.addListener(mxEvent.CLICK,mxUtils.bind(this,(function(e,n){this.isEnabled()&&this.setSelectionCell(t)}))),this.addCellOverlay(t,r)}return this.removeCellOverlays(t),null},mxGraph.prototype.startEditing=function(t){this.startEditingAtCell(null,t)},mxGraph.prototype.startEditingAtCell=function(t,e){null!=e&&mxEvent.isMultiTouchEvent(e)||(null==t&&(t=this.getSelectionCell(),null==t||this.isCellEditable(t)||(t=null)),null!=t&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",t,"event",e)),this.cellEditor.startEditing(t,e),this.fireEvent(new mxEventObject(mxEvent.EDITING_STARTED,"cell",t,"event",e))))},mxGraph.prototype.getEditingValue=function(t,e){return this.convertValueToString(t)},mxGraph.prototype.stopEditing=function(t){this.cellEditor.stopEditing(t),this.fireEvent(new mxEventObject(mxEvent.EDITING_STOPPED,"cancel",t))},mxGraph.prototype.labelChanged=function(t,e,n){this.model.beginUpdate();try{var i=t.value;this.cellLabelChanged(t,e,this.isAutoSizeCell(t)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",t,"value",e,"old",i,"event",n))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellLabelChanged=function(t,e,n){this.model.beginUpdate();try{this.model.setValue(t,e),n&&this.cellSizeUpdated(t,!1)}finally{this.model.endUpdate()}},mxGraph.prototype.escape=function(t){this.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",t))},mxGraph.prototype.click=function(t){var e=t.getEvent(),n=t.getCell(),i=new mxEventObject(mxEvent.CLICK,"event",e,"cell",n);if(t.isConsumed()&&i.consume(),this.fireEvent(i),this.isEnabled()&&!mxEvent.isConsumed(e)&&!i.isConsumed()){if(null!=n){if(this.isTransparentClickEvent(e)){var r=!1,o=this.getCellAt(t.graphX,t.graphY,null,null,null,mxUtils.bind(this,(function(t){var e=this.isCellSelected(t.cell);return r=r||e,!r||e||t.cell!=n&&this.model.isAncestor(t.cell,n)})));null!=o&&(n=o)}}else if(this.isSwimlaneSelectionEnabled()&&(n=this.getSwimlaneAt(t.getGraphX(),t.getGraphY()),null!=n&&(!this.isToggleEvent(e)||!mxEvent.isAltDown(e)))){var s=n,l=[];while(null!=s){s=this.model.getParent(s);var a=this.view.getState(s);this.isSwimlane(s)&&null!=a&&l.push(s)}if(l.length>0){l=l.reverse(),l.splice(0,0,n),l.push(n);for(var h=0;h<l.length-1;h++)this.isCellSelected(l[h])&&(n=l[this.isToggleEvent(e)?h:h+1])}}null!=n?this.selectCellForEvent(n,e):this.isToggleEvent(e)||this.clearSelection()}},mxGraph.prototype.isSiblingSelected=function(t){for(var e=this.model,n=e.getParent(t),i=e.getChildCount(n),r=0;r<i;r++){var o=e.getChildAt(n,r);if(t!=o&&this.isCellSelected(o))return!0}return!1},mxGraph.prototype.dblClick=function(t,e){var n=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",t,"cell",e);this.fireEvent(n),!this.isEnabled()||mxEvent.isConsumed(t)||n.isConsumed()||null==e||!this.isCellEditable(e)||this.isEditing(e)||(this.startEditingAtCell(e,t),mxEvent.consume(t))},mxGraph.prototype.tapAndHold=function(t){var e=t.getEvent(),n=new mxEventObject(mxEvent.TAP_AND_HOLD,"event",e,"cell",t.getCell());if(this.fireEvent(n),n.isConsumed()&&(this.panningHandler.panningTrigger=!1),this.isEnabled()&&!mxEvent.isConsumed(e)&&!n.isConsumed()&&this.connectionHandler.isEnabled()){var i=this.view.getState(this.connectionHandler.marker.getCell(t));null!=i&&(this.connectionHandler.marker.currentColor=this.connectionHandler.marker.validColor,this.connectionHandler.marker.markedState=i,this.connectionHandler.marker.mark(),this.connectionHandler.first=new mxPoint(t.getGraphX(),t.getGraphY()),this.connectionHandler.edgeState=this.connectionHandler.createEdgeState(t),this.connectionHandler.previous=i,this.connectionHandler.fireEvent(new mxEventObject(mxEvent.START,"state",this.connectionHandler.previous)))}},mxGraph.prototype.scrollPointToVisible=function(t,e,n,i){if(this.timerAutoScroll||!this.ignoreScrollbars&&!mxUtils.hasScrollbars(this.container))this.allowAutoPanning&&!this.panningHandler.isActive()&&(null==this.panningManager&&(this.panningManager=this.createPanningManager()),this.panningManager.panTo(t+this.panDx,e+this.panDy));else{var r=this.container;if(i=null!=i?i:20,t>=r.scrollLeft&&e>=r.scrollTop&&t<=r.scrollLeft+r.clientWidth&&e<=r.scrollTop+r.clientHeight){var o=r.scrollLeft+r.clientWidth-t;if(o<i){var s=r.scrollLeft;if(r.scrollLeft+=i-o,n&&s==r.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){var l=this.view.getDrawPane().ownerSVGElement,a=this.container.scrollWidth+i-o;l.style.width=a+"px"}else{a=Math.max(r.clientWidth,r.scrollWidth)+i-o;var h=this.view.getCanvas();h.style.width=a+"px"}r.scrollLeft+=i-o}}else o=t-r.scrollLeft,o<i&&(r.scrollLeft-=i-o);var u=r.scrollTop+r.clientHeight-e;if(u<i){s=r.scrollTop;if(r.scrollTop+=i-u,s==r.scrollTop&&n){if(this.dialect==mxConstants.DIALECT_SVG){l=this.view.getDrawPane().ownerSVGElement;var d=this.container.scrollHeight+i-u;l.style.height=d+"px"}else{d=Math.max(r.clientHeight,r.scrollHeight)+i-u,h=this.view.getCanvas();h.style.height=d+"px"}r.scrollTop+=i-u}}else u=e-r.scrollTop,u<i&&(r.scrollTop-=i-u)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){var t=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(t.paddingLeft)+("none"!=t.borderLeftStyle?mxUtils.parseCssNumber(t.borderLeftWidth):0),mxUtils.parseCssNumber(t.paddingTop)+("none"!=t.borderTopStyle?mxUtils.parseCssNumber(t.borderTopWidth):0),mxUtils.parseCssNumber(t.paddingRight)+("none"!=t.borderRightStyle?mxUtils.parseCssNumber(t.borderRightWidth):0),mxUtils.parseCssNumber(t.paddingBottom)+("none"!=t.borderBottomStyle?mxUtils.parseCssNumber(t.borderBottomWidth):0))},mxGraph.prototype.getPreferredPageSize=function(t,e,n){this.view.scale;var i=this.view.translate,r=this.pageFormat,o=this.pageScale,s=new mxRectangle(0,0,Math.ceil(r.width*o),Math.ceil(r.height*o)),l=this.pageBreaksVisible?Math.ceil(e/s.width):1,a=this.pageBreaksVisible?Math.ceil(n/s.height):1;return new mxRectangle(0,0,l*s.width+2+i.x,a*s.height+2+i.y)},mxGraph.prototype.fit=function(t,e,n,i,r,o,s){if(null!=this.container){t=null!=t?t:this.getBorder(),e=null!=e&&e,n=null!=n?n:0,i=null==i||i,r=null!=r&&r,o=null!=o&&o;var l=this.getBorderSizes(),a=this.container.offsetWidth-l.x-l.width-1,h=null!=s?s:this.container.offsetHeight-l.y-l.height-1,u=this.view.getGraphBounds();if(u.width>0&&u.height>0){e&&null!=u.x&&null!=u.y&&(u=u.clone(),u.width+=u.x,u.height+=u.y,u.x=0,u.y=0);var d=this.view.scale,c=u.width/d,p=u.height/d;null!=this.backgroundImage&&(c=Math.max(c,this.backgroundImage.width-u.x/d),p=Math.max(p,this.backgroundImage.height-u.y/d));var g=(e?t:2*t)+n+1;a-=g,h-=g;var m=r?h/p:o?a/c:Math.min(a/c,h/p);if(null!=this.minFitScale&&(m=Math.max(m,this.minFitScale)),null!=this.maxFitScale&&(m=Math.min(m,this.maxFitScale)),!i)return m;if(e)this.view.scale!=m&&this.view.setScale(m);else if(mxUtils.hasScrollbars(this.container)){this.view.setScale(m);var x=this.getGraphBounds();null!=x.x&&(this.container.scrollLeft=x.x),null!=x.y&&(this.container.scrollTop=x.y)}else{var y=null!=u.x?Math.floor(this.view.translate.x-u.x/d+t/m+n/2):t,f=null!=u.y?Math.floor(this.view.translate.y-u.y/d+t/m+n/2):t;this.view.scaleAndTranslate(m,y,f)}}}return this.view.scale},mxGraph.prototype.sizeDidChange=function(){var t=this.getGraphBounds();if(null!=this.container){var e=this.getBorder(),n=Math.max(0,t.x)+t.width+2*e,i=Math.max(0,t.y)+t.height+2*e;if(null!=this.minimumContainerSize&&(n=Math.max(n,this.minimumContainerSize.width),i=Math.max(i,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(n,i),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var r=this.getPreferredPageSize(t,Math.max(1,n),Math.max(1,i));null!=r&&(n=r.width*this.view.scale,i=r.height*this.view.scale)}if(null!=this.minimumGraphSize&&(n=Math.max(n,this.minimumGraphSize.width*this.view.scale),i=Math.max(i,this.minimumGraphSize.height*this.view.scale)),n=Math.ceil(n),i=Math.ceil(i),this.dialect==mxConstants.DIALECT_SVG){var o=this.view.getDrawPane().ownerSVGElement;null!=o&&(o.style.minWidth=Math.max(1,n)+"px",o.style.minHeight=Math.max(1,i)+"px",o.style.width="100%",o.style.height="100%")}else mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,n),Math.max(1,i)):(this.view.canvas.style.minWidth=Math.max(1,n)+"px",this.view.canvas.style.minHeight=Math.max(1,i)+"px");this.updatePageBreaks(this.pageBreaksVisible,n,i)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",t))},mxGraph.prototype.doResizeContainer=function(t,e){null!=this.maximumContainerSize&&(t=Math.min(this.maximumContainerSize.width,t),e=Math.min(this.maximumContainerSize.height,e)),this.container.style.width=Math.ceil(t)+"px",this.container.style.height=Math.ceil(e)+"px"},mxGraph.prototype.updatePageBreaks=function(t,e,n){var i=this.view.scale,r=this.view.translate,o=this.pageFormat,s=i*this.pageScale,l=new mxRectangle(0,0,o.width*s,o.height*s),a=mxRectangle.fromRectangle(this.getGraphBounds());a.width=Math.max(1,a.width),a.height=Math.max(1,a.height),l.x=Math.floor((a.x-r.x*i)/l.width)*l.width+r.x*i,l.y=Math.floor((a.y-r.y*i)/l.height)*l.height+r.y*i,a.width=Math.ceil((a.width+(a.x-l.x))/l.width)*l.width,a.height=Math.ceil((a.height+(a.y-l.y))/l.height)*l.height,t=t&&Math.min(l.width,l.height)>this.minPageBreakDist;var h=t?Math.ceil(a.height/l.height)+1:0,u=t?Math.ceil(a.width/l.width)+1:0,d=(u-1)*l.width,c=(h-1)*l.height;null==this.horizontalPageBreaks&&h>0&&(this.horizontalPageBreaks=[]),null==this.verticalPageBreaks&&u>0&&(this.verticalPageBreaks=[]);var p=mxUtils.bind(this,(function(t){if(null!=t){for(var e=t==this.horizontalPageBreaks?h:u,n=0;n<=e;n++){var i=t==this.horizontalPageBreaks?[new mxPoint(Math.round(l.x),Math.round(l.y+n*l.height)),new mxPoint(Math.round(l.x+d),Math.round(l.y+n*l.height))]:[new mxPoint(Math.round(l.x+n*l.width),Math.round(l.y)),new mxPoint(Math.round(l.x+n*l.width),Math.round(l.y+c))];if(null!=t[n])t[n].points=i,t[n].redraw();else{var r=new mxPolyline(i,this.pageBreakColor);r.dialect=this.dialect,r.pointerEvents=!1,r.isDashed=this.pageBreakDashed,r.init(this.view.backgroundPane),r.redraw(),t[n]=r}}for(n=e;n<t.length;n++)t[n].destroy();t.splice(e,t.length-e)}}));p(this.horizontalPageBreaks),p(this.verticalPageBreaks)},mxGraph.prototype.getCurrentCellStyle=function(t,e){var n=e?null:this.view.getState(t);return null!=n?n.style:this.getCellStyle(t)},mxGraph.prototype.getCellStyle=function(t){var e=this.model.getStyle(t),n=null;return n=this.model.isEdge(t)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle(),null!=e&&(n=this.postProcessCellStyle(this.stylesheet.getCellStyle(e,n))),null==n&&(n=new Object),n},mxGraph.prototype.postProcessCellStyle=function(t){if(null!=t){var e=t[mxConstants.STYLE_IMAGE],n=this.getImageFromBundles(e);if(null!=n?t[mxConstants.STYLE_IMAGE]=n:n=e,null!=n&&"data:image/"==n.substring(0,11)){if("data:image/svg+xml,<"==n.substring(0,20))n=n.substring(0,19)+encodeURIComponent(n.substring(19));else if("data:image/svg+xml,%3C"!=n.substring(0,22)){var i=n.indexOf(",");i>0&&";base64,"!=n.substring(i-7,i+1)&&(n=n.substring(0,i)+";base64,"+n.substring(i+1))}t[mxConstants.STYLE_IMAGE]=n}}return t},mxGraph.prototype.setCellStyle=function(t,e){if(e=e||this.getSelectionCells(),null!=e){this.model.beginUpdate();try{for(var n=0;n<e.length;n++)this.model.setStyle(e[n],t)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(t,e,n){return n=n||this.getSelectionCell(),this.toggleCellStyles(t,e,[n])},mxGraph.prototype.toggleCellStyles=function(t,e,n){e=null!=e&&e,n=n||this.getSelectionCells();var i=null;if(null!=n&&n.length>0){var r=this.getCurrentCellStyle(n[0]);i=mxUtils.getValue(r,t,e)?0:1,this.setCellStyles(t,i,n)}return i},mxGraph.prototype.setCellStyles=function(t,e,n){n=n||this.getSelectionCells(),mxUtils.setCellStyles(this.model,n,t,e)},mxGraph.prototype.toggleCellStyleFlags=function(t,e,n){this.setCellStyleFlags(t,e,null,n)},mxGraph.prototype.setCellStyleFlags=function(t,e,n,i){if(i=i||this.getSelectionCells(),null!=i&&i.length>0){if(null==n){var r=this.getCurrentCellStyle(i[0]),o=parseInt(r[t]||0);n=!((o&e)==e)}mxUtils.setCellStyleFlags(this.model,i,t,e,n)}},mxGraph.prototype.alignCells=function(t,e,n){if(null==e&&(e=this.getSelectionCells()),null!=e&&e.length>1){if(null==n)for(var i=0;i<e.length;i++){var r=this.view.getState(e[i]);if(null!=r&&!this.model.isEdge(e[i]))if(null==n){if(t==mxConstants.ALIGN_CENTER){n=r.x+r.width/2;break}if(t==mxConstants.ALIGN_RIGHT)n=r.x+r.width;else if(t==mxConstants.ALIGN_TOP)n=r.y;else{if(t==mxConstants.ALIGN_MIDDLE){n=r.y+r.height/2;break}n=t==mxConstants.ALIGN_BOTTOM?r.y+r.height:r.x}}else n=t==mxConstants.ALIGN_RIGHT?Math.max(n,r.x+r.width):t==mxConstants.ALIGN_TOP?Math.min(n,r.y):t==mxConstants.ALIGN_BOTTOM?Math.max(n,r.y+r.height):Math.min(n,r.x)}if(null!=n){var o=this.view.scale;this.model.beginUpdate();try{for(i=0;i<e.length;i++){r=this.view.getState(e[i]);if(null!=r){var s=this.getCellGeometry(e[i]);null==s||this.model.isEdge(e[i])||(s=s.clone(),t==mxConstants.ALIGN_CENTER?s.x+=(n-r.x-r.width/2)/o:t==mxConstants.ALIGN_RIGHT?s.x+=(n-r.x-r.width)/o:t==mxConstants.ALIGN_TOP?s.y+=(n-r.y)/o:t==mxConstants.ALIGN_MIDDLE?s.y+=(n-r.y-r.height/2)/o:t==mxConstants.ALIGN_BOTTOM?s.y+=(n-r.y-r.height)/o:s.x+=(n-r.x)/o,this.resizeCell(e[i],s))}}this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",t,"cells",e))}finally{this.model.endUpdate()}}}return e},mxGraph.prototype.flipEdge=function(t){if(null!=t&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var e=this.model.getStyle(t);null==e||0==e.length?this.model.setStyle(t,this.alternateEdgeStyle):this.model.setStyle(t,null),this.resetEdge(t),this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE,"edge",t))}finally{this.model.endUpdate()}}return t},mxGraph.prototype.addImageBundle=function(t){this.imageBundles.push(t)},mxGraph.prototype.removeImageBundle=function(t){for(var e=[],n=0;n<this.imageBundles.length;n++)this.imageBundles[n]!=t&&e.push(this.imageBundles[n]);this.imageBundles=e},mxGraph.prototype.getImageFromBundles=function(t){if(null!=t)for(var e=0;e<this.imageBundles.length;e++){var n=this.imageBundles[e].getImage(t);if(null!=n)return n}return null},mxGraph.prototype.orderCells=function(t,e){null==e&&(e=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(e,t),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",t,"cells",e))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsOrdered=function(t,e){if(null!=t){this.model.beginUpdate();try{for(var n=0;n<t.length;n++){var i=this.model.getParent(t[n]);e?this.model.add(i,t[n],n):this.model.add(i,t[n],this.model.getChildCount(i)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",e,"cells",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(t,e,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),n=this.getCellsForGroup(n),null==t&&(t=this.createGroupCell(n));var i=this.getBoundsForGroup(t,n,e);if(n.length>1&&null!=i){var r=this.model.getParent(t);null==r&&(r=this.model.getParent(n[0])),this.model.beginUpdate();try{null==this.getCellGeometry(t)&&this.model.setGeometry(t,new mxGeometry);var o=this.model.getChildCount(r);this.cellsAdded([t],r,o,null,null,!1,!1,!1),o=this.model.getChildCount(t),this.cellsAdded(n,t,o,null,null,!1,!1,!1),this.cellsMoved(n,-i.x,-i.y,!1,!1,!1),this.cellsResized([t],[i],!1),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",t,"border",e,"cells",n))}finally{this.model.endUpdate()}}return t},mxGraph.prototype.getCellsForGroup=function(t){var e=[];if(null!=t&&t.length>0){var n=this.model.getParent(t[0]);e.push(t[0]);for(var i=1;i<t.length;i++)this.model.getParent(t[i])==n&&e.push(t[i])}return e},mxGraph.prototype.getBoundsForGroup=function(t,e,n){var i=this.getBoundingBoxFromGeometry(e,!0);if(null!=i){if(this.isSwimlane(t)){var r=this.getStartSize(t);i.x-=r.width,i.y-=r.height,i.width+=r.width,i.height+=r.height}null!=n&&(i.x-=n,i.y-=n,i.width+=2*n,i.height+=2*n)}return i},mxGraph.prototype.createGroupCell=function(t){var e=new mxCell("");return e.setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(t){var e=[];if(null==t&&(t=this.getCellsForUngroup()),null!=t&&t.length>0){this.model.beginUpdate();try{for(var n=0;n<t.length;n++){var i=this.model.getChildren(t[n]);if(null!=i&&i.length>0){i=i.slice();var r=this.model.getParent(t[n]),o=this.model.getChildCount(r);this.cellsAdded(i,r,o,null,null,!0),e=e.concat(i);for(var s=0;s<i.length;s++){var l=this.view.getState(i[s]),a=this.getCellGeometry(i[s]);null!=l&&null!=a&&a.relative&&(a=a.clone(),a.x=l.origin.x,a.y=l.origin.y,a.relative=!1,this.model.setGeometry(i[s],a))}}}this.removeCellsAfterUngroup(t),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",t))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForUngroup=function(){for(var t=this.getSelectionCells(),e=[],n=0;n<t.length;n++)this.model.isVertex(t[n])&&this.model.getChildCount(t[n])>0&&e.push(t[n]);return e},mxGraph.prototype.removeCellsAfterUngroup=function(t){this.cellsRemoved(this.addAllEdges(t))},mxGraph.prototype.removeCellsFromParent=function(t){null==t&&(t=this.getSelectionCells()),this.model.beginUpdate();try{var e=this.getDefaultParent(),n=this.model.getChildCount(e);this.cellsAdded(t,e,n,null,null,!0),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.updateGroupBounds=function(t,e,n,i,r,o,s){null==t&&(t=this.getSelectionCells()),e=null!=e?e:0,n=null!=n&&n,i=null!=i?i:0,r=null!=r?r:0,o=null!=o?o:0,s=null!=s?s:0,this.model.beginUpdate();try{for(var l=t.length-1;l>=0;l--){var a=this.getCellGeometry(t[l]);if(null!=a){var h=this.getChildCells(t[l]);if(null!=h&&h.length>0){var u=this.getBoundingBoxFromGeometry(h,!0);if(null!=u&&u.width>0&&u.height>0){var d=this.isSwimlane(t[l])?this.getActualStartSize(t[l],!0):new mxRectangle;a=a.clone(),n&&(a.x=Math.round(a.x+u.x-e-d.x-s),a.y=Math.round(a.y+u.y-e-d.y-i)),a.width=Math.round(u.width+2*e+d.x+s+r+d.width),a.height=Math.round(u.height+2*e+d.y+i+o+d.height),this.model.setGeometry(t[l],a),this.moveCells(h,e+d.x-u.x+s,e+d.y-u.y+i)}}}}}finally{this.model.endUpdate()}return t},mxGraph.prototype.getBoundingBox=function(t){var e=null;if(null!=t&&t.length>0)for(var n=0;n<t.length;n++)if(this.model.isVertex(t[n])||this.model.isEdge(t[n])){var i=this.view.getBoundingBox(this.view.getState(t[n]),!0);null!=i&&(null==e?e=mxRectangle.fromRectangle(i):e.add(i))}return e},mxGraph.prototype.cloneCell=function(t,e,n,i){return this.cloneCells([t],e,n,i)[0]},mxGraph.prototype.cloneCells=function(t,e,n,i){e=null==e||e;var r=null;if(null!=t){for(var o=new mxDictionary,s=[],l=0;l<t.length;l++)o.put(t[l],!0),s.push(t[l]);if(s.length>0){var a=this.view.scale,h=this.view.translate;r=this.model.cloneCells(t,!0,n);for(l=0;l<t.length;l++)if(!e&&this.model.isEdge(r[l])&&null!=this.getEdgeValidationError(r[l],this.model.getTerminal(r[l],!0),this.model.getTerminal(r[l],!1)))r[l]=null;else{var u=this.model.getGeometry(r[l]);if(null!=u){var d=this.view.getState(t[l]),c=this.view.getState(this.model.getParent(t[l]));if(null!=d&&null!=c){var p=i?0:c.origin.x,g=i?0:c.origin.y;if(this.model.isEdge(r[l])){var m=d.absolutePoints;if(null!=m){var x=this.model.getTerminal(t[l],!0);while(null!=x&&!o.get(x))x=this.model.getParent(x);null==x&&null!=m[0]&&u.setTerminalPoint(new mxPoint(m[0].x/a-h.x,m[0].y/a-h.y),!0);var y=this.model.getTerminal(t[l],!1);while(null!=y&&!o.get(y))y=this.model.getParent(y);var f=m.length-1;null==y&&null!=m[f]&&u.setTerminalPoint(new mxPoint(m[f].x/a-h.x,m[f].y/a-h.y),!1);var A=u.points;if(null!=A)for(var C=0;C<A.length;C++)A[C].x+=p,A[C].y+=g}}else u.translate(p,g)}}}}else r=[]}return r},mxGraph.prototype.insertVertex=function(t,e,n,i,r,o,s,l,a){var h=this.createVertex(t,e,n,i,r,o,s,l,a);return this.addCell(h,t)},mxGraph.prototype.createVertex=function(t,e,n,i,r,o,s,l,a){var h=new mxGeometry(i,r,o,s);h.relative=null!=a&&a;var u=new mxCell(n,h,l);return u.setId(e),u.setVertex(!0),u.setConnectable(!0),u},mxGraph.prototype.insertEdge=function(t,e,n,i,r,o){var s=this.createEdge(t,e,n,i,r,o);return this.addEdge(s,t,i,r)},mxGraph.prototype.createEdge=function(t,e,n,i,r,o){var s=new mxCell(n,new mxGeometry,o);return s.setId(e),s.setEdge(!0),s.geometry.relative=!0,s},mxGraph.prototype.addEdge=function(t,e,n,i,r){return this.addCell(t,e,r,n,i)},mxGraph.prototype.addCell=function(t,e,n,i,r){return this.addCells([t],e,n,i,r)[0]},mxGraph.prototype.addCells=function(t,e,n,i,r,o){null==e&&(e=this.getDefaultParent()),null==n&&(n=this.model.getChildCount(e)),this.model.beginUpdate();try{this.cellsAdded(t,e,n,i,r,null!=o&&o,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",t,"parent",e,"index",n,"source",i,"target",r))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsAdded=function(t,e,n,i,r,o,s,l){if(null!=t&&null!=e&&null!=n){this.model.beginUpdate();try{for(var a=o?this.view.getState(e):null,h=null!=a?a.origin:null,u=new mxPoint(0,0),d=0;d<t.length;d++)if(null==t[d])n--;else{var c=this.model.getParent(t[d]);if(null!=h&&t[d]!=e&&e!=c){var p=this.view.getState(c),g=null!=p?p.origin:u,m=this.model.getGeometry(t[d]);if(null!=m){var x=g.x-h.x,y=g.y-h.y;m=m.clone(),m.translate(x,y),m.relative||!this.model.isVertex(t[d])||this.isAllowNegativeCoordinates()||(m.x=Math.max(0,m.x),m.y=Math.max(0,m.y)),this.model.setGeometry(t[d],m)}}e==c&&n+d>this.model.getChildCount(e)&&n--,this.model.add(e,t[d],n+d),this.autoSizeCellsOnAdd&&this.autoSizeCell(t[d],!0),(null==l||l)&&this.isExtendParentsOnAdd(t[d])&&this.isExtendParent(t[d])&&this.extendParent(t[d]),(null==s||s)&&this.constrainChild(t[d]),null!=i&&this.cellConnected(t[d],i,!0),null!=r&&this.cellConnected(t[d],r,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",t,"parent",e,"index",n,"source",i,"target",r,"absolute",o))}finally{this.model.endUpdate()}}},mxGraph.prototype.autoSizeCell=function(t,e){if(e=null==e||e,e)for(var n=this.model.getChildCount(t),i=0;i<n;i++)this.autoSizeCell(this.model.getChildAt(t,i));this.getModel().isVertex(t)&&this.isAutoSizeCell(t)&&this.updateCellSize(t)},mxGraph.prototype.removeCells=function(t,e){if(e=null==e||e,null==t&&(t=this.getDeletableCells(this.getSelectionCells())),e)t=this.getDeletableCells(this.addAllEdges(t));else{t=t.slice();for(var n=this.getDeletableCells(this.getAllEdges(t)),i=new mxDictionary,r=0;r<t.length;r++)i.put(t[r],!0);for(r=0;r<n.length;r++)null!=this.view.getState(n[r])||i.get(n[r])||(i.put(n[r],!0),t.push(n[r]))}this.model.beginUpdate();try{this.cellsRemoved(t),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",t,"includeEdges",e))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsRemoved=function(t){if(null!=t&&t.length>0){var e=this.view.scale,n=this.view.translate;this.model.beginUpdate();try{for(var i=new mxDictionary,r=0;r<t.length;r++)i.put(t[r],!0);for(r=0;r<t.length;r++){for(var o=this.getAllEdges([t[r]]),s=mxUtils.bind(this,(function(i,o){var s=this.model.getGeometry(i);if(null!=s){var l=this.model.getTerminal(i,o),a=!1,h=l;while(null!=h){if(t[r]==h){a=!0;break}h=this.model.getParent(h)}if(a){s=s.clone();var u=this.view.getState(i);if(null!=u&&null!=u.absolutePoints){var d=u.absolutePoints,c=o?0:d.length-1;s.setTerminalPoint(new mxPoint(d[c].x/e-n.x-u.origin.x,d[c].y/e-n.y-u.origin.y),o)}else{var p=this.view.getState(l);null!=p&&s.setTerminalPoint(new mxPoint(p.getCenterX()/e-n.x,p.getCenterY()/e-n.y),o)}this.model.setGeometry(i,s),this.model.setTerminal(i,null,o)}}})),l=0;l<o.length;l++)i.get(o[l])||(i.put(o[l],!0),s(o[l],!0),s(o[l],!1));this.model.remove(t[r])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.splitEdge=function(t,e,n,i,r,o,s,l){i=i||0,r=r||0,l=null!=l?l:this.model.getParent(t);var a=this.model.getTerminal(t,!0);this.model.beginUpdate();try{if(null==n){n=this.cloneCell(t);var h=this.view.getState(t),u=this.getCellGeometry(n);if(null!=u&&null!=u.points&&null!=h){var d=this.view.translate,c=this.view.scale,p=mxUtils.findNearestSegment(h,(i+d.x)*c,(r+d.y)*c);u.points=u.points.slice(0,p),u=this.getCellGeometry(t),null!=u&&null!=u.points&&(u=u.clone(),u.points=u.points.slice(p),this.model.setGeometry(t,u))}}this.cellsMoved(e,i,r,!1,!1),this.cellsAdded(e,l,this.model.getChildCount(l),null,null,!0),this.cellsAdded([n],l,this.model.getChildCount(l),a,e[0],!1),this.cellConnected(t,e[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",t,"cells",e,"newEdge",n,"dx",i,"dy",r))}finally{this.model.endUpdate()}return n},mxGraph.prototype.toggleCells=function(t,e,n){null==e&&(e=this.getSelectionCells()),n&&(e=this.addAllEdges(e)),this.model.beginUpdate();try{this.cellsToggled(e,t),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",t,"cells",e,"includeEdges",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsToggled=function(t,e){if(null!=t&&t.length>0){this.model.beginUpdate();try{for(var n=0;n<t.length;n++)this.model.setVisible(t[n],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(t,e,n,i,r){e=null!=e&&e,null==n&&(n=this.getFoldableCells(this.getSelectionCells(),t)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(n,t,e,i),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",t,"recurse",e,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsFolded=function(t,e,n,i){if(null!=t&&t.length>0){this.model.beginUpdate();try{for(var r=0;r<t.length;r++)if((!i||this.isCellFoldable(t[r],e))&&e!=this.isCellCollapsed(t[r])){if(this.model.setCollapsed(t[r],e),this.swapBounds(t[r],e),this.isExtendParent(t[r])&&this.extendParent(t[r]),n){var o=this.model.getChildren(t[r]);this.cellsFolded(o,e,n)}this.constrainChild(t[r])}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",t,"collapse",e,"recurse",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(t,e){if(null!=t){var n=this.model.getGeometry(t);null!=n&&(n=n.clone(),this.updateAlternateBounds(t,n,e),n.swap(),this.model.setGeometry(t,n))}},mxGraph.prototype.updateAlternateBounds=function(t,e,n){if(null!=t&&null!=e){var i=this.getCurrentCellStyle(t);if(null==e.alternateBounds){var r=e;if(this.collapseToPreferredSize){var o=this.getPreferredSizeForCell(t);if(null!=o){r=o;var s=mxUtils.getValue(i,mxConstants.STYLE_STARTSIZE);s>0&&(r.height=Math.max(r.height,s))}}e.alternateBounds=new mxRectangle(0,0,r.width,r.height)}if(null!=e.alternateBounds){e.alternateBounds.x=e.x,e.alternateBounds.y=e.y;var l=mxUtils.toRadians(i[mxConstants.STYLE_ROTATION]||0);if(0!=l){var a=e.alternateBounds.getCenterX()-e.getCenterX(),h=e.alternateBounds.getCenterY()-e.getCenterY(),u=Math.cos(l),d=Math.sin(l),c=u*a-d*h,p=d*a+u*h;e.alternateBounds.x+=c-a,e.alternateBounds.y+=p-h}}}},mxGraph.prototype.addAllEdges=function(t){var e=t.slice();return mxUtils.removeDuplicates(e.concat(this.getAllEdges(t)))},mxGraph.prototype.getAllEdges=function(t){var e=[];if(null!=t)for(var n=0;n<t.length;n++){for(var i=this.model.getEdgeCount(t[n]),r=0;r<i;r++)e.push(this.model.getEdgeAt(t[n],r));var o=this.model.getChildren(t[n]);e=e.concat(this.getAllEdges(o))}return e},mxGraph.prototype.updateCellSize=function(t,e){e=null!=e&&e,this.model.beginUpdate();try{this.cellSizeUpdated(t,e),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",t,"ignoreChildren",e))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellSizeUpdated=function(t,e){if(null!=t){this.model.beginUpdate();try{var n=this.getPreferredSizeForCell(t),i=this.model.getGeometry(t);if(null!=n&&null!=i){var r=this.isCellCollapsed(t);if(i=i.clone(),this.isSwimlane(t)){var o=this.getCellStyle(t),s=this.model.getStyle(t);null==s&&(s=""),mxUtils.getValue(o,mxConstants.STYLE_HORIZONTAL,!0)?(s=mxUtils.setStyle(s,mxConstants.STYLE_STARTSIZE,n.height+8),r&&(i.height=n.height+8),i.width=n.width):(s=mxUtils.setStyle(s,mxConstants.STYLE_STARTSIZE,n.width+8),r&&(i.width=n.width+8),i.height=n.height),this.model.setStyle(t,s)}else{var l=this.view.createState(t),a=l.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER;a==mxConstants.ALIGN_RIGHT?i.x+=i.width-n.width:a==mxConstants.ALIGN_CENTER&&(i.x+=Math.round((i.width-n.width)/2));var h=this.getVerticalAlign(l);h==mxConstants.ALIGN_BOTTOM?i.y+=i.height-n.height:h==mxConstants.ALIGN_MIDDLE&&(i.y+=Math.round((i.height-n.height)/2)),i.width=n.width,i.height=n.height}if(!e&&!r){var u=this.view.getBounds(this.model.getChildren(t));if(null!=u){var d=this.view.translate,c=this.view.scale,p=(u.x+u.width)/c-i.x-d.x,g=(u.y+u.height)/c-i.y-d.y;i.width=Math.max(i.width,p),i.height=Math.max(i.height,g)}}this.cellsResized([t],[i],!1)}}finally{this.model.endUpdate()}}},mxGraph.prototype.getPreferredSizeForCell=function(t,e){var n=null;if(null!=t){var i=this.view.createState(t),r=i.style;if(!this.model.isEdge(t)){var o=r[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,s=0,l=0;null==this.getImage(i)&&null==r[mxConstants.STYLE_IMAGE]||r[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_LABEL&&(r[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(s+=parseFloat(r[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),r[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(l+=parseFloat(r[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),s+=2*(r[mxConstants.STYLE_SPACING]||0),s+=r[mxConstants.STYLE_SPACING_LEFT]||0,s+=r[mxConstants.STYLE_SPACING_RIGHT]||0,l+=2*(r[mxConstants.STYLE_SPACING]||0),l+=r[mxConstants.STYLE_SPACING_TOP]||0,l+=r[mxConstants.STYLE_SPACING_BOTTOM]||0;var a=this.getFoldingImage(i);null!=a&&(s+=a.width+8);var h=this.cellRenderer.getLabelValue(i);if(null!=h&&h.length>0){this.isHtmlLabel(i.cell)||(h=mxUtils.htmlEntities(h,!1)),h=h.replace(/\n/g,"<br>");var u=mxUtils.getSizeForString(h,o,r[mxConstants.STYLE_FONTFAMILY],e,r[mxConstants.STYLE_FONTSTYLE]),d=u.width+s,c=u.height+l;if(!mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0)){var p=c;c=d,d=p}this.gridEnabled&&(d=this.snap(d+this.gridSize/2),c=this.snap(c+this.gridSize/2)),n=new mxRectangle(0,0,d,c)}else{var g=4*this.gridSize;n=new mxRectangle(0,0,g,g)}}}return n},mxGraph.prototype.resizeCell=function(t,e,n){return this.resizeCells([t],[e],n)[0]},mxGraph.prototype.resizeCells=function(t,e,n){n=null!=n?n:this.isRecursiveResize(),this.model.beginUpdate();try{var i=this.cellsResized(t,e,n);this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",t,"bounds",e,"previous",i))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsResized=function(t,e,n){n=null!=n&&n;var i=[];if(null!=t&&null!=e&&t.length==e.length){this.model.beginUpdate();try{for(var r=0;r<t.length;r++)i.push(this.cellResized(t[r],e[r],!1,n)),this.isExtendParent(t[r])&&this.extendParent(t[r]),this.constrainChild(t[r]);this.resetEdgesOnResize&&this.resetEdges(t),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",t,"bounds",e,"previous",i))}finally{this.model.endUpdate()}}return i},mxGraph.prototype.cellResized=function(t,e,n,i){var r=this.model.getGeometry(t);if(null!=r&&(r.x!=e.x||r.y!=e.y||r.width!=e.width||r.height!=e.height)){var o=r.clone();if(!n&&o.relative){var s=o.offset;null!=s&&(s.x+=e.x-o.x,s.y+=e.y-o.y)}else o.x=e.x,o.y=e.y;o.width=e.width,o.height=e.height,o.relative||!this.model.isVertex(t)||this.isAllowNegativeCoordinates()||(o.x=Math.max(0,o.x),o.y=Math.max(0,o.y)),this.model.beginUpdate();try{i&&this.resizeChildCells(t,o),this.model.setGeometry(t,o),this.constrainChildCells(t)}finally{this.model.endUpdate()}}return r},mxGraph.prototype.resizeChildCells=function(t,e){for(var n=this.model.getGeometry(t),i=0!=n.width?e.width/n.width:1,r=0!=n.height?e.height/n.height:1,o=this.model.getChildCount(t),s=0;s<o;s++)this.scaleCell(this.model.getChildAt(t,s),i,r,!0)},mxGraph.prototype.constrainChildCells=function(t){for(var e=this.model.getChildCount(t),n=0;n<e;n++)this.constrainChild(this.model.getChildAt(t,n))},mxGraph.prototype.scaleCell=function(t,e,n,i){var r=this.model.getGeometry(t);if(null!=r){var o=this.getCurrentCellStyle(t);r=r.clone();var s=r.x,l=r.y,a=r.width,h=r.height;r.scale(e,n,"fixed"==o[mxConstants.STYLE_ASPECT]),"1"==o[mxConstants.STYLE_RESIZE_WIDTH]?r.width=a*e:"0"==o[mxConstants.STYLE_RESIZE_WIDTH]&&(r.width=a),"1"==o[mxConstants.STYLE_RESIZE_HEIGHT]?r.height=h*n:"0"==o[mxConstants.STYLE_RESIZE_HEIGHT]&&(r.height=h),this.isCellMovable(t)||(r.x=s,r.y=l),this.isCellResizable(t)||(r.width=a,r.height=h),this.model.isVertex(t)?this.cellResized(t,r,!0,i):this.model.setGeometry(t,r)}},mxGraph.prototype.extendParent=function(t){if(null!=t){var e=this.model.getParent(t),n=this.getCellGeometry(e);if(null!=e&&null!=n&&!this.isCellCollapsed(e)){var i=this.getCellGeometry(t);null!=i&&!i.relative&&(n.width<i.x+i.width||n.height<i.y+i.height)&&(n=n.clone(),n.width=Math.max(n.width,i.x+i.width),n.height=Math.max(n.height,i.y+i.height),this.cellsResized([e],[n],!1))}}},mxGraph.prototype.importCells=function(t,e,n,i,r,o){return this.moveCells(t,e,n,!0,i,r,o)},mxGraph.prototype.moveCells=function(t,e,n,i,r,o,s){if(e=null!=e?e:0,n=null!=n?n:0,i=null!=i&&i,null!=t&&(0!=e||0!=n||i||null!=r)){t=this.model.getTopmostCells(t);var l=t;this.model.beginUpdate();try{for(var a=new mxDictionary,h=0;h<t.length;h++)a.put(t[h],!0);var u=mxUtils.bind(this,(function(t){while(null!=t){if(a.get(t))return!0;t=this.model.getParent(t)}return!1})),d=[];for(h=0;h<t.length;h++){var c=this.getCellGeometry(t[h]),p=this.model.getParent(t[h]);null!=c&&c.relative&&this.model.isEdge(p)&&(u(this.model.getTerminal(p,!0))||u(this.model.getTerminal(p,!1)))||d.push(t[h])}t=d,i&&(t=this.cloneCells(t,this.isCloneInvalidEdges(),s),null==r&&(r=this.getDefaultParent()));var g=this.isAllowNegativeCoordinates();if(null!=r&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(t,e,n,!i&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==r,this.isExtendParentsOnMove()&&null==r),this.setAllowNegativeCoordinates(g),null!=r){var m=this.model.getChildCount(r);if(this.cellsAdded(t,r,m,null,null,!0),i)for(h=0;h<t.length;h++){c=this.getCellGeometry(t[h]),p=this.model.getParent(l[h]);null!=c&&c.relative&&this.model.isEdge(p)&&this.model.contains(p)&&this.model.add(p,t[h])}}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",t,"dx",e,"dy",n,"clone",i,"target",r,"event",o))}finally{this.model.endUpdate()}}return t},mxGraph.prototype.cellsMoved=function(t,e,n,i,r,o){if(null!=t&&(0!=e||0!=n)){o=null!=o&&o,this.model.beginUpdate();try{i&&this.disconnectGraph(t);for(var s=0;s<t.length;s++)this.translateCell(t[s],e,n),o&&this.isExtendParent(t[s])?this.extendParent(t[s]):r&&this.constrainChild(t[s]);this.resetEdgesOnMove&&this.resetEdges(t),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",t,"dx",e,"dy",n,"disconnect",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(t,e,n){var i=this.model.getGeometry(t);if(null!=i){if(e=parseFloat(e),n=parseFloat(n),i=i.clone(),i.translate(e,n),i.relative||!this.model.isVertex(t)||this.isAllowNegativeCoordinates()||(i.x=Math.max(0,parseFloat(i.x)),i.y=Math.max(0,parseFloat(i.y))),i.relative&&!this.model.isEdge(t)){var r=this.model.getParent(t),o=0;if(this.model.isVertex(r)){var s=this.getCurrentCellStyle(r);o=mxUtils.getValue(s,mxConstants.STYLE_ROTATION,0)}if(0!=o){var l=mxUtils.toRadians(-o),a=Math.cos(l),h=Math.sin(l),u=mxUtils.getRotatedPoint(new mxPoint(e,n),a,h,new mxPoint(0,0));e=u.x,n=u.y}null==i.offset?i.offset=new mxPoint(e,n):(i.offset.x=parseFloat(i.offset.x)+e,i.offset.y=parseFloat(i.offset.y)+n)}this.model.setGeometry(t,i)}},mxGraph.prototype.getCellContainmentArea=function(t){if(null!=t&&!this.model.isEdge(t)){var e=this.model.getParent(t);if(null!=e&&e!=this.getDefaultParent()){var n=this.model.getGeometry(e);if(null!=n){var i=0,r=0,o=n.width,s=n.height;if(this.isSwimlane(e)){var l=this.getStartSize(e),a=this.getCurrentCellStyle(e),h=mxUtils.getValue(a,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST),u=1==mxUtils.getValue(a,mxConstants.STYLE_FLIPH,0),d=1==mxUtils.getValue(a,mxConstants.STYLE_FLIPV,0);if(h==mxConstants.DIRECTION_SOUTH||h==mxConstants.DIRECTION_NORTH){var c=l.width;l.width=l.height,l.height=c}(h==mxConstants.DIRECTION_EAST&&!d||h==mxConstants.DIRECTION_NORTH&&!u||h==mxConstants.DIRECTION_WEST&&d||h==mxConstants.DIRECTION_SOUTH&&u)&&(i=l.width,r=l.height),o-=l.width,s-=l.height}return new mxRectangle(i,r,o,s)}}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(t,e){if(e=null==e||e,null!=t){var n=this.getCellGeometry(t);if(null!=n&&(this.isConstrainRelativeChildren()||!n.relative)){var i=this.model.getParent(t),r=(this.getCellGeometry(i),this.getMaximumGraphBounds());if(null!=r){var o=this.getBoundingBoxFromGeometry([i],!1);null!=o&&(r=mxRectangle.fromRectangle(r),r.x-=o.x,r.y-=o.y)}if(this.isConstrainChild(t)){var s=this.getCellContainmentArea(t);if(null!=s){var l=this.getOverlap(t);l>0&&(s=mxRectangle.fromRectangle(s),s.x-=s.width*l,s.y-=s.height*l,s.width+=2*s.width*l,s.height+=2*s.height*l),null==r?r=s:(r=mxRectangle.fromRectangle(r),r.intersect(s))}}if(null!=r){var a=[t];if(!this.isCellCollapsed(t))for(var h=this.model.getDescendants(t),u=0;u<h.length;u++)this.isCellVisible(h[u])&&a.push(h[u]);var d=this.getBoundingBoxFromGeometry(a,!1);if(null!=d){n=n.clone();var c=0;n.width>r.width&&(c=n.width-r.width,n.width-=c),d.x+d.width>r.x+r.width&&(c-=d.x+d.width-r.x-r.width-c);var p=0;n.height>r.height&&(p=n.height-r.height,n.height-=p),d.y+d.height>r.y+r.height&&(p-=d.y+d.height-r.y-r.height-p),d.x<r.x&&(c-=d.x-r.x),d.y<r.y&&(p-=d.y-r.y),0==c&&0==p||(n.relative?(null==n.offset&&(n.offset=new mxPoint),n.offset.x+=c,n.offset.y+=p):(n.x+=c,n.y+=p)),this.model.setGeometry(t,n)}}}}},mxGraph.prototype.resetEdges=function(t){if(null!=t){for(var e=new mxDictionary,n=0;n<t.length;n++)e.put(t[n],!0);this.model.beginUpdate();try{for(n=0;n<t.length;n++){var i=this.model.getEdges(t[n]);if(null!=i)for(var r=0;r<i.length;r++){var o=this.view.getState(i[r]),s=null!=o?o.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[r],!0),l=null!=o?o.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[r],!1);e.get(s)&&e.get(l)||this.resetEdge(i[r])}this.resetEdges(this.model.getChildren(t[n]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(t){var e=this.model.getGeometry(t);return null!=e&&null!=e.points&&e.points.length>0&&(e=e.clone(),e.points=[],this.model.setGeometry(t,e)),t},mxGraph.prototype.getOutlineConstraint=function(t,e,n){if(null!=e.shape){var i=this.view.getPerimeterBounds(e),r=e.style[mxConstants.STYLE_DIRECTION];if(r==mxConstants.DIRECTION_NORTH||r==mxConstants.DIRECTION_SOUTH){i.x+=i.width/2-i.height/2,i.y+=i.height/2-i.width/2;var o=i.width;i.width=i.height,i.height=o}var s=mxUtils.toRadians(e.shape.getShapeRotation());if(0!=s){var l=Math.cos(-s),a=Math.sin(-s),h=new mxPoint(i.getCenterX(),i.getCenterY());t=mxUtils.getRotatedPoint(t,l,a,h)}var u=1,d=1,c=0,p=0;if(this.getModel().isVertex(e.cell)){var g=e.style[mxConstants.STYLE_FLIPH],m=e.style[mxConstants.STYLE_FLIPV];if(null!=e.shape&&null!=e.shape.stencil&&(g=1==mxUtils.getValue(e.style,"stencilFlipH",0)||g,m=1==mxUtils.getValue(e.style,"stencilFlipV",0)||m),r==mxConstants.DIRECTION_NORTH||r==mxConstants.DIRECTION_SOUTH){o=g;g=m,m=o}g&&(u=-1,c=-i.width),m&&(d=-1,p=-i.height)}t=new mxPoint((t.x-i.x)*u-c+i.x,(t.y-i.y)*d-p+i.y);var x=0==i.width?0:Math.round(1e3*(t.x-i.x)/i.width)/1e3,y=0==i.height?0:Math.round(1e3*(t.y-i.y)/i.height)/1e3;return new mxConnectionConstraint(new mxPoint(x,y),!1)}return null},mxGraph.prototype.getAllConnectionConstraints=function(t,e){return null!=t&&null!=t.shape&&null!=t.shape.stencil?t.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(t,e,n){var i=null,r=t.style[n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=r){var o=t.style[n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=o&&(i=new mxPoint(parseFloat(r),parseFloat(o)))}var s=!1,l=0,a=0;return null!=i&&(s=mxUtils.getValue(t.style,n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0),l=parseFloat(t.style[n?mxConstants.STYLE_EXIT_DX:mxConstants.STYLE_ENTRY_DX]),a=parseFloat(t.style[n?mxConstants.STYLE_EXIT_DY:mxConstants.STYLE_ENTRY_DY]),l=isFinite(l)?l:0,a=isFinite(a)?a:0),new mxConnectionConstraint(i,s,null,l,a)},mxGraph.prototype.setConnectionConstraint=function(t,e,n,i){if(null!=i){this.model.beginUpdate();try{null==i||null==i.point?(this.setCellStyles(n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[t]),this.setCellStyles(n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[t]),this.setCellStyles(n?mxConstants.STYLE_EXIT_DX:mxConstants.STYLE_ENTRY_DX,null,[t]),this.setCellStyles(n?mxConstants.STYLE_EXIT_DY:mxConstants.STYLE_ENTRY_DY,null,[t]),this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[t])):null!=i.point&&(this.setCellStyles(n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,i.point.x,[t]),this.setCellStyles(n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,i.point.y,[t]),this.setCellStyles(n?mxConstants.STYLE_EXIT_DX:mxConstants.STYLE_ENTRY_DX,i.dx,[t]),this.setCellStyles(n?mxConstants.STYLE_EXIT_DY:mxConstants.STYLE_ENTRY_DY,i.dy,[t]),i.perimeter?this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[t]):this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[t]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(t,e,n){n=null==n||n;var i=null;if(null!=t&&null!=e.point){var r=this.view.getPerimeterBounds(t),o=new mxPoint(r.getCenterX(),r.getCenterY()),s=t.style[mxConstants.STYLE_DIRECTION],l=0;null!=s&&1==mxUtils.getValue(t.style,mxConstants.STYLE_ANCHOR_POINT_DIRECTION,1)&&(s==mxConstants.DIRECTION_NORTH?l+=270:s==mxConstants.DIRECTION_WEST?l+=180:s==mxConstants.DIRECTION_SOUTH&&(l+=90),s!=mxConstants.DIRECTION_NORTH&&s!=mxConstants.DIRECTION_SOUTH||r.rotate90());var a=this.view.scale;i=new mxPoint(r.x+e.point.x*r.width+e.dx*a,r.y+e.point.y*r.height+e.dy*a);var h=t.style[mxConstants.STYLE_ROTATION]||0;if(e.perimeter){if(0!=l){var u=0,d=0;90==l?d=1:180==l?u=-1:270==l&&(d=-1),i=mxUtils.getRotatedPoint(i,u,d,o)}i=this.view.getPerimeterPoint(t,i,!1)}else if(h+=l,this.getModel().isVertex(t.cell)){var c=1==t.style[mxConstants.STYLE_FLIPH],p=1==t.style[mxConstants.STYLE_FLIPV];if(null!=t.shape&&null!=t.shape.stencil&&(c=1==mxUtils.getValue(t.style,"stencilFlipH",0)||c,p=1==mxUtils.getValue(t.style,"stencilFlipV",0)||p),s==mxConstants.DIRECTION_NORTH||s==mxConstants.DIRECTION_SOUTH){var g=c;c=p,p=g}c&&(i.x=2*r.getCenterX()-i.x),p&&(i.y=2*r.getCenterY()-i.y)}if(0!=h&&null!=i){var m=mxUtils.toRadians(h);u=Math.cos(m),d=Math.sin(m);i=mxUtils.getRotatedPoint(i,u,d,o)}}return n&&null!=i&&(i.x=Math.round(i.x),i.y=Math.round(i.y)),i},mxGraph.prototype.connectCell=function(t,e,n,i){this.model.beginUpdate();try{var r=this.model.getTerminal(t,n);this.cellConnected(t,e,n,i),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",t,"terminal",e,"source",n,"previous",r))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellConnected=function(t,e,n,i){if(null!=t){this.model.beginUpdate();try{var r=this.model.getTerminal(t,n);if(this.setConnectionConstraint(t,e,n,i),this.isPortsEnabled()){var o=null;this.isPort(e)&&(o=e.getId(),e=this.getTerminalForPort(e,n));var s=n?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT;this.setCellStyles(s,o,[t])}this.model.setTerminal(t,e,n),this.resetEdgesOnConnect&&this.resetEdge(t),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",t,"terminal",e,"source",n,"previous",r))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(t){if(null!=t){this.model.beginUpdate();try{for(var e=this.view.scale,n=this.view.translate,i=new mxDictionary,r=0;r<t.length;r++)i.put(t[r],!0);for(r=0;r<t.length;r++)if(this.model.isEdge(t[r])){var o=this.model.getGeometry(t[r]);if(null!=o){var s=this.view.getState(t[r]),l=this.view.getState(this.model.getParent(t[r]));if(null!=s&&null!=l){o=o.clone();var a=-l.origin.x,h=-l.origin.y,u=s.absolutePoints,d=this.model.getTerminal(t[r],!0);if(null!=d&&this.isCellDisconnectable(t[r],d,!0)){while(null!=d&&!i.get(d))d=this.model.getParent(d);null==d&&(o.setTerminalPoint(new mxPoint(u[0].x/e-n.x+a,u[0].y/e-n.y+h),!0),this.model.setTerminal(t[r],null,!0))}var c=this.model.getTerminal(t[r],!1);if(null!=c&&this.isCellDisconnectable(t[r],c,!1)){while(null!=c&&!i.get(c))c=this.model.getParent(c);if(null==c){var p=u.length-1;o.setTerminalPoint(new mxPoint(u[p].x/e-n.x+a,u[p].y/e-n.y+h),!1),this.model.setTerminal(t[r],null,!1)}}this.model.setGeometry(t[r],o)}}}}finally{this.model.endUpdate()}}},mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot},mxGraph.prototype.getTranslateForRoot=function(t){return null},mxGraph.prototype.isPort=function(t){return!1},mxGraph.prototype.getTerminalForPort=function(t,e){return this.model.getParent(t)},mxGraph.prototype.getChildOffsetForCell=function(t){return null},mxGraph.prototype.enterGroup=function(t){t=t||this.getSelectionCell(),null!=t&&this.isValidRoot(t)&&(this.view.setCurrentRoot(t),this.clearSelection())},mxGraph.prototype.exitGroup=function(){var t=this.model.getRoot(),e=this.getCurrentRoot();if(null!=e){var n=this.model.getParent(e);while(n!=t&&!this.isValidRoot(n)&&this.model.getParent(n)!=t)n=this.model.getParent(n);n==t||this.model.getParent(n)==t?this.view.setCurrentRoot(null):this.view.setCurrentRoot(n);var i=this.view.getState(e);null!=i&&this.setSelectionCell(e)}},mxGraph.prototype.home=function(){var t=this.getCurrentRoot();if(null!=t){this.view.setCurrentRoot(null);var e=this.view.getState(t);null!=e&&this.setSelectionCell(t)}},mxGraph.prototype.isValidRoot=function(t){return null!=t},mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()},mxGraph.prototype.getCellBounds=function(t,e,n){var i=[t];e&&(i=i.concat(this.model.getEdges(t)));var r=this.view.getBounds(i);if(n)for(var o=this.model.getChildCount(t),s=0;s<o;s++){var l=this.getCellBounds(this.model.getChildAt(t,s),e,!0);null!=r?r.add(l):r=l}return r},mxGraph.prototype.getBoundingBoxFromGeometry=function(t,e){e=null!=e&&e;var n=null;if(null!=t)for(var i=0;i<t.length;i++)if(e||this.model.isVertex(t[i])){var r=this.getCellGeometry(t[i]);if(null!=r){var o=null;if(this.model.isEdge(t[i])){var s=function(t){null!=t&&(null==a?a=new mxRectangle(t.x,t.y,0,0):a.add(new mxRectangle(t.x,t.y,0,0)))};null==this.model.getTerminal(t[i],!0)&&s(r.getTerminalPoint(!0)),null==this.model.getTerminal(t[i],!1)&&s(r.getTerminalPoint(!1));var l=r.points;if(null!=l&&l.length>0)for(var a=new mxRectangle(l[0].x,l[0].y,0,0),h=1;h<l.length;h++)s(l[h]);o=a}else{var u=this.model.getParent(t[i]);if(r.relative){if(this.model.isVertex(u)&&u!=this.view.currentRoot){a=this.getBoundingBoxFromGeometry([u],!1);null!=a&&(o=new mxRectangle(r.x*a.width,r.y*a.height,r.width,r.height),mxUtils.indexOf(t,u)>=0&&(o.x+=a.x,o.y+=a.y))}}else if(o=mxRectangle.fromRectangle(r),this.model.isVertex(u)&&mxUtils.indexOf(t,u)>=0){a=this.getBoundingBoxFromGeometry([u],!1);null!=a&&(o.x+=a.x,o.y+=a.y)}null!=o&&null!=r.offset&&(o.x+=r.offset.x,o.y+=r.offset.y);var d=this.getCurrentCellStyle(t[i]);if(null!=o){var c=mxUtils.getValue(d,mxConstants.STYLE_ROTATION,0);0!=c&&(o=mxUtils.getBoundingBox(o,c))}}null!=o&&(null==n?n=mxRectangle.fromRectangle(o):n.add(o))}}return n},mxGraph.prototype.refresh=function(t){this.view.clear(t,null==t),this.view.validate(),this.sizeDidChange(),this.fireEvent(new mxEventObject(mxEvent.REFRESH))},mxGraph.prototype.snap=function(t){return this.gridEnabled&&(t=Math.round(t/this.gridSize)*this.gridSize),t},mxGraph.prototype.snapDelta=function(t,e,n,i,r){var o=this.view.translate,s=this.view.scale;if(!n&&this.gridEnabled){var l=this.gridSize*s*.5;if(!i){var a=e.x-(this.snap(e.x/s-o.x)+o.x)*s;Math.abs(t.x-a)<l?t.x=0:t.x=this.snap(t.x/s)*s-a}if(!r){var h=e.y-(this.snap(e.y/s-o.y)+o.y)*s;Math.abs(t.y-h)<l?t.y=0:t.y=this.snap(t.y/s)*s-h}}else{l=.5*s;if(!i){a=e.x-(Math.round(e.x/s-o.x)+o.x)*s;Math.abs(t.x-a)<l?t.x=0:t.x=Math.round(t.x/s)*s-a}if(!r){h=e.y-(Math.round(e.y/s-o.y)+o.y)*s;Math.abs(t.y-h)<l?t.y=0:t.y=Math.round(t.y/s)*s-h}}return t},mxGraph.prototype.panGraph=function(t,e){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-t,this.container.scrollTop=-e;else{var n=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==t&&0==e){if(mxClient.IS_IE?n.setAttribute("transform","translate("+t+","+e+")"):n.removeAttribute("transform"),null!=this.shiftPreview1){var i=this.shiftPreview1.firstChild;while(null!=i){var r=i.nextSibling;this.container.appendChild(i),i=r}null!=this.shiftPreview1.parentNode&&this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(n.parentNode),i=this.shiftPreview2.firstChild;while(null!=i){r=i.nextSibling;this.container.appendChild(i),i=r}null!=this.shiftPreview2.parentNode&&this.shiftPreview2.parentNode.removeChild(this.shiftPreview2),this.shiftPreview2=null}}else{if(n.setAttribute("transform","translate("+t+","+e+")"),null==this.shiftPreview1){this.shiftPreview1=document.createElement("div"),this.shiftPreview1.style.position="absolute",this.shiftPreview1.style.overflow="visible",this.shiftPreview2=document.createElement("div"),this.shiftPreview2.style.position="absolute",this.shiftPreview2.style.overflow="visible";var o=this.shiftPreview1;i=this.container.firstChild;while(null!=i){r=i.nextSibling;i!=n.parentNode?o.appendChild(i):o=this.shiftPreview2,i=r}null!=this.shiftPreview1.firstChild&&this.container.insertBefore(this.shiftPreview1,n.parentNode),null!=this.shiftPreview2.firstChild&&this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=t+"px",this.shiftPreview1.style.top=e+"px",this.shiftPreview2.style.left=t+"px",this.shiftPreview2.style.top=e+"px"}else n.style.left=t+"px",n.style.top=e+"px";this.panDx=t,this.panDy=e,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(t,e){this.zoom(t/this.view.scale,e)},mxGraph.prototype.center=function(t,e,n,i){t=null==t||t,e=null==e||e,n=null!=n?n:.5,i=null!=i?i:.5;var r=mxUtils.hasScrollbars(this.container),o=2*this.getBorder(),s=this.container.clientWidth-o,l=this.container.clientHeight-o,a=this.getGraphBounds(),h=this.view.translate,u=this.view.scale,d=t?s-a.width:0,c=e?l-a.height:0;if(r){a.x-=h.x,a.y-=h.y;var p=this.container.scrollWidth,g=this.container.scrollHeight;p>s&&(d=0),g>l&&(c=0),this.view.setTranslate(Math.floor(d/2-a.x),Math.floor(c/2-a.y)),this.container.scrollLeft=(p-s)/2,this.container.scrollTop=(g-l)/2}else this.view.setTranslate(t?Math.floor(h.x-a.x*u+d*n/u):h.x,e?Math.floor(h.y-a.y*u+c*i/u):h.y)},mxGraph.prototype.zoom=function(t,e){e=null!=e?e:this.centerZoom;var n=Math.round(this.view.scale*t*100)/100,i=this.view.getState(this.getSelectionCell());if(t=n/this.view.scale,this.keepSelectionVisibleOnZoom&&null!=i){var r=new mxRectangle(i.x*t,i.y*t,i.width*t,i.height*t);this.view.scale=n,this.scrollRectToVisible(r)||(this.view.revalidate(),this.view.setScale(n))}else{var o=mxUtils.hasScrollbars(this.container);if(e&&!o){var s=this.container.offsetWidth,l=this.container.offsetHeight;if(t>1){var a=(t-1)/(2*n);s*=-a,l*=-a}else{a=(1/t-1)/(2*this.view.scale);s*=a,l*=a}this.view.scaleAndTranslate(n,this.view.translate.x+s,this.view.translate.y+l)}else{var h=this.view.translate.x,u=this.view.translate.y,d=this.container.scrollLeft,c=this.container.scrollTop;if(this.view.setScale(n),o){s=0,l=0;e&&(s=this.container.offsetWidth*(t-1)/2,l=this.container.offsetHeight*(t-1)/2),this.container.scrollLeft=(this.view.translate.x-h)*this.view.scale+Math.round(d*t+s),this.container.scrollTop=(this.view.translate.y-u)*this.view.scale+Math.round(c*t+l)}}}},mxGraph.prototype.zoomToRect=function(t){var e=this.container.clientWidth/t.width,n=this.container.clientHeight/t.height,i=e/n;t.x=Math.max(0,t.x),t.y=Math.max(0,t.y);var r=Math.min(this.container.scrollWidth,t.x+t.width),o=Math.min(this.container.scrollHeight,t.y+t.height);if(t.width=r-t.x,t.height=o-t.y,i<1){var s=t.height/i,l=(s-t.height)/2;t.height=s;var a=Math.min(t.y,l);t.y=t.y-a,o=Math.min(this.container.scrollHeight,t.y+t.height),t.height=o-t.y}else{var h=t.width*i,u=(h-t.width)/2;t.width=h;var d=Math.min(t.x,u);t.x=t.x-d,r=Math.min(this.container.scrollWidth,t.x+t.width),t.width=r-t.x}var c=this.container.clientWidth/t.width,p=this.view.scale*c;mxUtils.hasScrollbars(this.container)?(this.view.setScale(p),this.container.scrollLeft=Math.round(t.x*c),this.container.scrollTop=Math.round(t.y*c)):this.view.scaleAndTranslate(p,this.view.translate.x-t.x/this.view.scale,this.view.translate.y-t.y/this.view.scale)},mxGraph.prototype.scrollCellToVisible=function(t,e){var n=-this.view.translate.x,i=-this.view.translate.y,r=this.view.getState(t);if(null!=r){var o=new mxRectangle(n+r.x,i+r.y,r.width,r.height);if(e&&null!=this.container){var s=this.container.clientWidth,l=this.container.clientHeight;o.x=o.getCenterX()-s/2,o.width=s,o.y=o.getCenterY()-l/2,o.height=l}var a=new mxPoint(this.view.translate.x,this.view.translate.y);if(this.scrollRectToVisible(o)){var h=new mxPoint(this.view.translate.x,this.view.translate.y);this.view.translate.x=a.x,this.view.translate.y=a.y,this.view.setTranslate(h.x,h.y)}}},mxGraph.prototype.scrollRectToVisible=function(t){var e=!1;if(null!=t){var n=this.container.offsetWidth,i=this.container.offsetHeight,r=Math.min(n,t.width),o=Math.min(i,t.height);if(mxUtils.hasScrollbars(this.container)){var s=this.container;t.x+=this.view.translate.x,t.y+=this.view.translate.y;var l=s.scrollLeft-t.x,a=Math.max(l-s.scrollLeft,0);l>0?s.scrollLeft-=l+2:(l=t.x+r-s.scrollLeft-s.clientWidth,l>0&&(s.scrollLeft+=l+2));var h=s.scrollTop-t.y,u=Math.max(0,h-s.scrollTop);h>0?s.scrollTop-=h+2:(h=t.y+o-s.scrollTop-s.clientHeight,h>0&&(s.scrollTop+=h+2)),this.useScrollbarsForPanning||0==a&&0==u||this.view.setTranslate(a,u)}else{var d=-this.view.translate.x,c=-this.view.translate.y,p=this.view.scale;t.x+r>d+n&&(this.view.translate.x-=(t.x+r-n-d)/p,e=!0),t.y+o>c+i&&(this.view.translate.y-=(t.y+o-i-c)/p,e=!0),t.x<d&&(this.view.translate.x+=(d-t.x)/p,e=!0),t.y<c&&(this.view.translate.y+=(c-t.y)/p,e=!0),e&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return e},mxGraph.prototype.getCellGeometry=function(t){return this.model.getGeometry(t)},mxGraph.prototype.isCellVisible=function(t){return this.model.isVisible(t)},mxGraph.prototype.isCellCollapsed=function(t){return this.model.isCollapsed(t)},mxGraph.prototype.isCellConnectable=function(t){return this.model.isConnectable(t)},mxGraph.prototype.isOrthogonal=function(t){var e=t.style[mxConstants.STYLE_ORTHOGONAL];if(null!=e)return e;var n=this.view.getEdgeStyle(t);return n==mxEdgeStyle.SegmentConnector||n==mxEdgeStyle.ElbowConnector||n==mxEdgeStyle.SideToSide||n==mxEdgeStyle.TopToBottom||n==mxEdgeStyle.EntityRelation||n==mxEdgeStyle.OrthConnector},mxGraph.prototype.isLoop=function(t){var e=t.getVisibleTerminalState(!0),n=t.getVisibleTerminalState(!1);return null!=e&&e==n},mxGraph.prototype.isCloneEvent=function(t){return mxEvent.isControlDown(t)},mxGraph.prototype.isTransparentClickEvent=function(t){return!1},mxGraph.prototype.isToggleEvent=function(t){return mxClient.IS_MAC?mxEvent.isMetaDown(t):mxEvent.isControlDown(t)},mxGraph.prototype.isGridEnabledEvent=function(t){return null!=t&&!mxEvent.isAltDown(t)},mxGraph.prototype.isConstrainedEvent=function(t){return mxEvent.isShiftDown(t)},mxGraph.prototype.isIgnoreTerminalEvent=function(t){return!1},mxGraph.prototype.validationAlert=function(t){mxUtils.alert(t)},mxGraph.prototype.isEdgeValid=function(t,e,n){return null==this.getEdgeValidationError(t,e,n)},mxGraph.prototype.getEdgeValidationError=function(t,e,n){if(null!=t&&!this.isAllowDanglingEdges()&&(null==e||null==n))return"";if(null!=t&&null==this.model.getTerminal(t,!0)&&null==this.model.getTerminal(t,!1))return null;if(!this.allowLoops&&e==n&&null!=e)return"";if(!this.isValidConnection(e,n))return"";if(null!=e&&null!=n){var i="";if(!this.multigraph){var r=this.model.getEdgesBetween(e,n,!0);(r.length>1||1==r.length&&r[0]!=t)&&(i+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n")}var o=this.model.getDirectedEdgeCount(e,!0,t),s=this.model.getDirectedEdgeCount(n,!1,t);if(null!=this.multiplicities)for(var l=0;l<this.multiplicities.length;l++){var a=this.multiplicities[l].check(this,t,e,n,o,s);null!=a&&(i+=a)}a=this.validateEdge(t,e,n);return null!=a&&(i+=a),i.length>0?i:null}return this.allowDanglingEdges?null:""},mxGraph.prototype.validateEdge=function(t,e,n){return null},mxGraph.prototype.validateGraph=function(t,e){t=null!=t?t:this.model.getRoot(),e=null!=e?e:new Object;for(var n=!0,i=this.model.getChildCount(t),r=0;r<i;r++){var o=this.model.getChildAt(t,r),s=e;this.isValidRoot(o)&&(s=new Object);var l=this.validateGraph(o,s);null!=l?this.setCellWarning(o,l.replace(/\n/g,"<br>")):this.setCellWarning(o,null),n=n&&null==l}var a="";this.isCellCollapsed(t)&&!n&&(a+=(mxResources.get(this.containsValidationErrorsResource)||this.containsValidationErrorsResource)+"\n"),this.model.isEdge(t)?a+=this.getEdgeValidationError(t,this.model.getTerminal(t,!0),this.model.getTerminal(t,!1))||"":a+=this.getCellValidationError(t)||"";var h=this.validateCell(t,e);return null!=h&&(a+=h),null==this.model.getParent(t)&&this.view.validate(),a.length>0||!n?a:null},mxGraph.prototype.getCellValidationError=function(t){var e=this.model.getDirectedEdgeCount(t,!0),n=this.model.getDirectedEdgeCount(t,!1),i=this.model.getValue(t),r="";if(null!=this.multiplicities)for(var o=0;o<this.multiplicities.length;o++){var s=this.multiplicities[o];(s.source&&mxUtils.isNode(i,s.type,s.attr,s.value)&&(e>s.max||e<s.min)||!s.source&&mxUtils.isNode(i,s.type,s.attr,s.value)&&(n>s.max||n<s.min))&&(r+=s.countError+"\n")}return r.length>0?r:null},mxGraph.prototype.validateCell=function(t,e){return null},mxGraph.prototype.getBackgroundImage=function(){return this.backgroundImage},mxGraph.prototype.setBackgroundImage=function(t){this.backgroundImage=t},mxGraph.prototype.getFoldingImage=function(t){if(null!=t&&this.foldingEnabled&&!this.getModel().isEdge(t.cell)){var e=this.isCellCollapsed(t.cell);if(this.isCellFoldable(t.cell,!e))return e?this.collapsedImage:this.expandedImage}return null},mxGraph.prototype.convertValueToString=function(t){var e=this.model.getValue(t);if(null!=e){if(mxUtils.isNode(e))return e.nodeName;if("function"==typeof e.toString)return e.toString()}return""},mxGraph.prototype.getLabel=function(t){var e="";if(this.labelsVisible&&null!=t){var n=this.getCurrentCellStyle(t);mxUtils.getValue(n,mxConstants.STYLE_NOLABEL,!1)||(e=this.convertValueToString(t))}return e},mxGraph.prototype.isHtmlLabel=function(t){return this.isHtmlLabels()},mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels},mxGraph.prototype.setHtmlLabels=function(t){this.htmlLabels=t},mxGraph.prototype.isWrapping=function(t){return"wrap"==this.getCurrentCellStyle(t)[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(t){return"hidden"==this.getCurrentCellStyle(t)[mxConstants.STYLE_OVERFLOW]},mxGraph.prototype.getTooltip=function(t,e,n,i){var r=null;if(null!=t){if(null==t.control||e!=t.control.node&&e.parentNode!=t.control.node||(r=this.collapseExpandResource,r=mxUtils.htmlEntities(mxResources.get(r)||r).replace(/\\n/g,"<br>")),null==r&&null!=t.overlays&&t.overlays.visit((function(t,n){null!=r||e!=n.node&&e.parentNode!=n.node||(r=n.overlay.toString())})),null==r){var o=this.selectionCellsHandler.getHandler(t.cell);null!=o&&"function"==typeof o.getTooltipForNode&&(r=o.getTooltipForNode(e))}null==r&&(r=this.getTooltipForCell(t.cell))}return r},mxGraph.prototype.getTooltipForCell=function(t){var e=null;return e=null!=t&&null!=t.getTooltip?t.getTooltip():this.convertValueToString(t),e},mxGraph.prototype.getLinkForCell=function(t){return null},mxGraph.prototype.getCursorForMouseEvent=function(t){return this.getCursorForCell(t.getCell())},mxGraph.prototype.getCursorForCell=function(t){return null},mxGraph.prototype.getStartSize=function(t,e){var n=new mxRectangle,i=this.getCurrentCellStyle(t,e),r=parseInt(mxUtils.getValue(i,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return mxUtils.getValue(i,mxConstants.STYLE_HORIZONTAL,!0)?n.height=r:n.width=r,n},mxGraph.prototype.getSwimlaneDirection=function(t){var e=mxUtils.getValue(t,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST),n=1==mxUtils.getValue(t,mxConstants.STYLE_FLIPH,0),i=1==mxUtils.getValue(t,mxConstants.STYLE_FLIPV,0),r=mxUtils.getValue(t,mxConstants.STYLE_HORIZONTAL,!0),o=r?0:3;e==mxConstants.DIRECTION_NORTH?o--:e==mxConstants.DIRECTION_WEST?o+=2:e==mxConstants.DIRECTION_SOUTH&&(o+=1);var s=mxUtils.mod(o,2);return n&&1==s&&(o+=2),i&&0==s&&(o+=2),[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST][mxUtils.mod(o,4)]},mxGraph.prototype.getActualStartSize=function(t,e){var n=new mxRectangle;if(this.isSwimlane(t,e)){var i=this.getCurrentCellStyle(t,e),r=parseInt(mxUtils.getValue(i,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),o=this.getSwimlaneDirection(i);o==mxConstants.DIRECTION_NORTH?n.y=r:o==mxConstants.DIRECTION_WEST?n.x=r:o==mxConstants.DIRECTION_SOUTH?n.height=r:n.width=r}return n},mxGraph.prototype.getImage=function(t){return null!=t&&null!=t.style?t.style[mxConstants.STYLE_IMAGE]:null},mxGraph.prototype.isTransparentState=function(t){var e=!1;if(null!=t){var n=mxUtils.getValue(t.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),i=mxUtils.getValue(t.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);e=n==mxConstants.NONE&&i==mxConstants.NONE&&null==this.getImage(t)}return e},mxGraph.prototype.getVerticalAlign=function(t){return null!=t&&null!=t.style?t.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null},mxGraph.prototype.getIndicatorColor=function(t){return null!=t&&null!=t.style?t.style[mxConstants.STYLE_INDICATOR_COLOR]:null},mxGraph.prototype.getIndicatorGradientColor=function(t){return null!=t&&null!=t.style?t.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null},mxGraph.prototype.getIndicatorShape=function(t){return null!=t&&null!=t.style?t.style[mxConstants.STYLE_INDICATOR_SHAPE]:null},mxGraph.prototype.getIndicatorImage=function(t){return null!=t&&null!=t.style?t.style[mxConstants.STYLE_INDICATOR_IMAGE]:null},mxGraph.prototype.getBorder=function(){return this.border},mxGraph.prototype.setBorder=function(t){this.border=t},mxGraph.prototype.isSwimlane=function(t,e){return null!=t&&this.model.getParent(t)!=this.model.getRoot()&&!this.model.isEdge(t)&&this.getCurrentCellStyle(t,e)[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE},mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer},mxGraph.prototype.setResizeContainer=function(t){this.resizeContainer=t},mxGraph.prototype.isEnabled=function(){return this.enabled},mxGraph.prototype.setEnabled=function(t){this.enabled=t},mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled},mxGraph.prototype.setEscapeEnabled=function(t){this.escapeEnabled=t},mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing},mxGraph.prototype.setInvokesStopCellEditing=function(t){this.invokesStopCellEditing=t},mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing},mxGraph.prototype.setEnterStopsCellEditing=function(t){this.enterStopsCellEditing=t},mxGraph.prototype.isCellLocked=function(t){var e=this.model.getGeometry(t);return this.isCellsLocked()||null!=e&&this.model.isVertex(t)&&e.relative},mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked},mxGraph.prototype.setCellsLocked=function(t){this.cellsLocked=t},mxGraph.prototype.getCloneableCells=function(t){return this.model.filterCells(t,mxUtils.bind(this,(function(t){return this.isCellCloneable(t)})))},mxGraph.prototype.isCellCloneable=function(t){var e=this.getCurrentCellStyle(t);return this.isCellsCloneable()&&0!=e[mxConstants.STYLE_CLONEABLE]},mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable},mxGraph.prototype.setCellsCloneable=function(t){this.cellsCloneable=t},mxGraph.prototype.getExportableCells=function(t){return this.model.filterCells(t,mxUtils.bind(this,(function(t){return this.canExportCell(t)})))},mxGraph.prototype.canExportCell=function(t){return this.exportEnabled},mxGraph.prototype.getImportableCells=function(t){return this.model.filterCells(t,mxUtils.bind(this,(function(t){return this.canImportCell(t)})))},mxGraph.prototype.canImportCell=function(t){return this.importEnabled},mxGraph.prototype.isCellSelectable=function(t){return this.isCellsSelectable()},mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable},mxGraph.prototype.setCellsSelectable=function(t){this.cellsSelectable=t},mxGraph.prototype.getDeletableCells=function(t){return this.model.filterCells(t,mxUtils.bind(this,(function(t){return this.isCellDeletable(t)})))},mxGraph.prototype.isCellDeletable=function(t){var e=this.getCurrentCellStyle(t);return this.isCellsDeletable()&&0!=e[mxConstants.STYLE_DELETABLE]},mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable},mxGraph.prototype.setCellsDeletable=function(t){this.cellsDeletable=t},mxGraph.prototype.isLabelMovable=function(t){return!this.isCellLocked(t)&&(this.model.isEdge(t)&&this.edgeLabelsMovable||this.model.isVertex(t)&&this.vertexLabelsMovable)},mxGraph.prototype.isCellRotatable=function(t){var e=this.getCurrentCellStyle(t);return 0!=e[mxConstants.STYLE_ROTATABLE]},mxGraph.prototype.getMovableCells=function(t){return this.model.filterCells(t,mxUtils.bind(this,(function(t){return this.isCellMovable(t)})))},mxGraph.prototype.isCellMovable=function(t){var e=this.getCurrentCellStyle(t);return this.isCellsMovable()&&!this.isCellLocked(t)&&0!=e[mxConstants.STYLE_MOVABLE]},mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable},mxGraph.prototype.setCellsMovable=function(t){this.cellsMovable=t},mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled},mxGraph.prototype.setGridEnabled=function(t){this.gridEnabled=t},mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled},mxGraph.prototype.setPortsEnabled=function(t){this.portsEnabled=t},mxGraph.prototype.getGridSize=function(){return this.gridSize},mxGraph.prototype.setGridSize=function(t){this.gridSize=t},mxGraph.prototype.getTolerance=function(){return this.tolerance},mxGraph.prototype.setTolerance=function(t){this.tolerance=t},mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable},mxGraph.prototype.setVertexLabelsMovable=function(t){this.vertexLabelsMovable=t},mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable},mxGraph.prototype.setEdgeLabelsMovable=function(t){this.edgeLabelsMovable=t},mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting},mxGraph.prototype.setSwimlaneNesting=function(t){this.swimlaneNesting=t},mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled},mxGraph.prototype.setSwimlaneSelectionEnabled=function(t){this.swimlaneSelectionEnabled=t},mxGraph.prototype.isMultigraph=function(){return this.multigraph},mxGraph.prototype.setMultigraph=function(t){this.multigraph=t},mxGraph.prototype.isAllowLoops=function(){return this.allowLoops},mxGraph.prototype.setAllowDanglingEdges=function(t){this.allowDanglingEdges=t},mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges},mxGraph.prototype.setConnectableEdges=function(t){this.connectableEdges=t},mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges},mxGraph.prototype.setCloneInvalidEdges=function(t){this.cloneInvalidEdges=t},mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges},mxGraph.prototype.setAllowLoops=function(t){this.allowLoops=t},mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove},mxGraph.prototype.setDisconnectOnMove=function(t){this.disconnectOnMove=t},mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled},mxGraph.prototype.setDropEnabled=function(t){this.dropEnabled=t},mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled},mxGraph.prototype.setSplitEnabled=function(t){this.splitEnabled=t},mxGraph.prototype.isCellResizable=function(t){var e=this.getCurrentCellStyle(t);return this.isCellsResizable()&&!this.isCellLocked(t)&&"0"!=mxUtils.getValue(e,mxConstants.STYLE_RESIZABLE,"1")},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(t){this.cellsResizable=t},mxGraph.prototype.isTerminalPointMovable=function(t,e){return!0},mxGraph.prototype.isCellBendable=function(t){var e=this.getCurrentCellStyle(t);return this.isCellsBendable()&&!this.isCellLocked(t)&&0!=e[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(t){this.cellsBendable=t},mxGraph.prototype.isCellEditable=function(t){var e=this.getCurrentCellStyle(t);return this.isCellsEditable()&&!this.isCellLocked(t)&&0!=e[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(t){this.cellsEditable=t},mxGraph.prototype.isCellDisconnectable=function(t,e,n){return this.isCellsDisconnectable()&&!this.isCellLocked(t)},mxGraph.prototype.isCellsDisconnectable=function(){return this.cellsDisconnectable},mxGraph.prototype.setCellsDisconnectable=function(t){this.cellsDisconnectable=t},mxGraph.prototype.isValidSource=function(t){return null==t&&this.allowDanglingEdges||null!=t&&(!this.model.isEdge(t)||this.connectableEdges)&&this.isCellConnectable(t)},mxGraph.prototype.isValidTarget=function(t){return this.isValidSource(t)},mxGraph.prototype.isValidConnection=function(t,e){return this.isValidSource(t)&&this.isValidTarget(e)},mxGraph.prototype.setConnectable=function(t){this.connectionHandler.setEnabled(t)},mxGraph.prototype.isConnectable=function(){return this.connectionHandler.isEnabled()},mxGraph.prototype.setTooltips=function(t){this.tooltipHandler.setEnabled(t)},mxGraph.prototype.setPanning=function(t){this.panningHandler.panningEnabled=t},mxGraph.prototype.isEditing=function(t){if(null!=this.cellEditor){var e=this.cellEditor.getEditingCell();return null==t?null!=e:t==e}return!1},mxGraph.prototype.isAutoSizeCell=function(t){var e=this.getCurrentCellStyle(t);return this.isAutoSizeCells()||1==e[mxConstants.STYLE_AUTOSIZE]},mxGraph.prototype.isAutoSizeCells=function(){return this.autoSizeCells},mxGraph.prototype.setAutoSizeCells=function(t){this.autoSizeCells=t},mxGraph.prototype.isExtendParent=function(t){return!this.getModel().isEdge(t)&&this.isExtendParents()},mxGraph.prototype.isExtendParents=function(){return this.extendParents},mxGraph.prototype.setExtendParents=function(t){this.extendParents=t},mxGraph.prototype.isExtendParentsOnAdd=function(t){return this.extendParentsOnAdd},mxGraph.prototype.setExtendParentsOnAdd=function(t){this.extendParentsOnAdd=t},mxGraph.prototype.isExtendParentsOnMove=function(){return this.extendParentsOnMove},mxGraph.prototype.setExtendParentsOnMove=function(t){this.extendParentsOnMove=t},mxGraph.prototype.isRecursiveResize=function(t){return this.recursiveResize},mxGraph.prototype.setRecursiveResize=function(t){this.recursiveResize=t},mxGraph.prototype.isConstrainChild=function(t){return this.isConstrainChildren()&&!this.getModel().isEdge(this.getModel().getParent(t))},mxGraph.prototype.isConstrainChildren=function(){return this.constrainChildren},mxGraph.prototype.setConstrainChildren=function(t){this.constrainChildren=t},mxGraph.prototype.isConstrainRelativeChildren=function(){return this.constrainRelativeChildren},mxGraph.prototype.setConstrainRelativeChildren=function(t){this.constrainRelativeChildren=t},mxGraph.prototype.isAllowNegativeCoordinates=function(){return this.allowNegativeCoordinates},mxGraph.prototype.setAllowNegativeCoordinates=function(t){this.allowNegativeCoordinates=t},mxGraph.prototype.getOverlap=function(t){return this.isAllowOverlapParent(t)?this.defaultOverlap:0},mxGraph.prototype.isAllowOverlapParent=function(t){return!1},mxGraph.prototype.getFoldableCells=function(t,e){return this.model.filterCells(t,mxUtils.bind(this,(function(t){return this.isCellFoldable(t,e)})))},mxGraph.prototype.isCellFoldable=function(t,e){var n=this.getCurrentCellStyle(t);return this.model.getChildCount(t)>0&&0!=n[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(t,e,n){return null!=t&&(this.isSplitEnabled()&&this.isSplitTarget(t,e,n)||!this.model.isEdge(t)&&(this.isSwimlane(t)||this.model.getChildCount(t)>0&&!this.isCellCollapsed(t)))},mxGraph.prototype.isSplitTarget=function(t,e,n){if(this.model.isEdge(t)&&null!=e&&1==e.length&&this.isCellConnectable(e[0])&&null==this.getEdgeValidationError(t,this.model.getTerminal(t,!0),e[0])){var i=this.model.getTerminal(t,!0),r=this.model.getTerminal(t,!1);return!this.model.isAncestor(e[0],i)&&!this.model.isAncestor(e[0],r)}return!1},mxGraph.prototype.getDropTarget=function(t,e,n,i){if(!this.isSwimlaneNesting())for(var r=0;r<t.length;r++)if(this.isSwimlane(t[r]))return null;var o=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));o.x-=this.panDx,o.y-=this.panDy;var s=this.getSwimlaneAt(o.x,o.y);if(null==n)n=s;else if(null!=s){var l=this.model.getParent(s);while(null!=l&&this.isSwimlane(l)&&l!=n)l=this.model.getParent(l);l==n&&(n=s)}while(null!=n&&!this.isValidDropTarget(n,t,e)&&!this.model.isLayer(n))n=this.model.getParent(n);if(null==i||!i){var a=n;while(null!=a&&mxUtils.indexOf(t,a)<0)a=this.model.getParent(a)}return this.model.isLayer(n)||null!=a?null:n},mxGraph.prototype.getDefaultParent=function(){var t=this.getCurrentRoot();if(null==t&&(t=this.defaultParent,null==t)){var e=this.model.getRoot();t=this.model.getChildAt(e,0)}return t},mxGraph.prototype.setDefaultParent=function(t){this.defaultParent=t},mxGraph.prototype.getSwimlane=function(t){while(null!=t&&!this.isSwimlane(t))t=this.model.getParent(t);return t},mxGraph.prototype.getSwimlaneAt=function(t,e,n){if(null==n&&(n=this.getCurrentRoot(),null==n&&(n=this.model.getRoot())),null!=n)for(var i=this.model.getChildCount(n),r=0;r<i;r++){var o=this.model.getChildAt(n,r);if(null!=o){var s=this.getSwimlaneAt(t,e,o);if(null!=s)return s;if(this.isCellVisible(o)&&this.isSwimlane(o)){var l=this.view.getState(o);if(this.intersects(l,t,e))return o}}}return null},mxGraph.prototype.getCellAt=function(t,e,n,i,r,o){if(i=null==i||i,r=null==r||r,null==n&&(n=this.getCurrentRoot(),null==n&&(n=this.getModel().getRoot())),null!=n)for(var s=this.model.getChildCount(n),l=s-1;l>=0;l--){var a=this.model.getChildAt(n,l),h=this.getCellAt(t,e,a,i,r,o);if(null!=h)return h;if(this.isCellVisible(a)&&(r&&this.model.isEdge(a)||i&&this.model.isVertex(a))){var u=this.view.getState(a);if(null!=u&&(null==o||!o(u,t,e))&&this.intersects(u,t,e))return a}}return null},mxGraph.prototype.intersects=function(t,e,n){if(null!=t){var i=t.absolutePoints;if(null!=i)for(var r=this.tolerance*this.tolerance,o=i[0],s=1;s<i.length;s++){var l=i[s],a=mxUtils.ptSegDistSq(o.x,o.y,l.x,l.y,e,n);if(a<=r)return!0;o=l}else{var h=mxUtils.toRadians(mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0);if(0!=h){var u=Math.cos(-h),d=Math.sin(-h),c=new mxPoint(t.getCenterX(),t.getCenterY());o=mxUtils.getRotatedPoint(new mxPoint(e,n),u,d,c);e=o.x,n=o.y}if(mxUtils.contains(t,e,n))return!0}}return!1},mxGraph.prototype.hitsSwimlaneContent=function(t,e,n){var i=this.getView().getState(t),r=this.getStartSize(t);if(null!=i){var o=this.getView().getScale();if(e-=i.x,n-=i.y,r.width>0&&e>0&&e>r.width*o)return!0;if(r.height>0&&n>0&&n>r.height*o)return!0}return!1},mxGraph.prototype.getChildVertices=function(t){return this.getChildCells(t,!0,!1)},mxGraph.prototype.getChildEdges=function(t){return this.getChildCells(t,!1,!0)},mxGraph.prototype.getChildCells=function(t,e,n){t=null!=t?t:this.getDefaultParent(),e=null!=e&&e,n=null!=n&&n;for(var i=this.model.getChildCells(t,e,n),r=[],o=0;o<i.length;o++)this.isCellVisible(i[o])&&r.push(i[o]);return r},mxGraph.prototype.getConnections=function(t,e){return this.getEdges(t,e,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(t,e){return this.getEdges(t,e,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(t,e){return this.getEdges(t,e,!1,!0,!1)},mxGraph.prototype.getEdges=function(t,e,n,i,r,o){n=null==n||n,i=null==i||i,r=null==r||r,o=null!=o&&o;for(var s=[],l=this.isCellCollapsed(t),a=this.model.getChildCount(t),h=0;h<a;h++){var u=this.model.getChildAt(t,h);!l&&this.isCellVisible(u)||(s=s.concat(this.model.getEdges(u,n,i)))}s=s.concat(this.model.getEdges(t,n,i));var d=[];for(h=0;h<s.length;h++){var c=this.view.getState(s[h]),p=null!=c?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(s[h],!0),g=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(s[h],!1);(r&&p==g||p!=g&&(n&&g==t&&(null==e||this.isValidAncestor(p,e,o))||i&&p==t&&(null==e||this.isValidAncestor(g,e,o))))&&d.push(s[h])}return d},mxGraph.prototype.isValidAncestor=function(t,e,n){return n?this.model.isAncestor(e,t):this.model.getParent(t)==e},mxGraph.prototype.getOpposites=function(t,e,n,i){n=null==n||n,i=null==i||i;var r=[],o=new mxDictionary;if(null!=t)for(var s=0;s<t.length;s++){var l=this.view.getState(t[s]),a=null!=l?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(t[s],!0),h=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(t[s],!1);a==e&&null!=h&&h!=e&&i?o.get(h)||(o.put(h,!0),r.push(h)):h==e&&null!=a&&a!=e&&n&&(o.get(a)||(o.put(a,!0),r.push(a)))}return r},mxGraph.prototype.getEdgesBetween=function(t,e,n){n=null!=n&&n;for(var i=this.getEdges(t),r=[],o=0;o<i.length;o++){var s=this.view.getState(i[o]),l=null!=s?s.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[o],!0),a=null!=s?s.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[o],!1);(l==t&&a==e||!n&&l==e&&a==t)&&r.push(i[o])}return r},mxGraph.prototype.getPointForEvent=function(t,e){var n=mxUtils.convertPoint(this.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),i=this.view.scale,r=this.view.translate,o=0!=e?this.gridSize/2:0;return n.x=this.snap(n.x/i-r.x-o),n.y=this.snap(n.y/i-r.y-o),n},mxGraph.prototype.getCells=function(t,e,n,i,r,o,s,l,a){if(o=null!=o?o:[],n>0||i>0||null!=s){var h=this.getModel(),u=t+n,d=e+i;if(null==r&&(r=this.getCurrentRoot(),null==r&&(r=h.getRoot())),null!=r)for(var c=h.getChildCount(r),p=0;p<c;p++){var g=h.getChildAt(r,p),m=this.view.getState(g);if(null!=m&&this.isCellVisible(g)&&(null==l||!l(m))){var x=mxUtils.getValue(m.style,mxConstants.STYLE_ROTATION)||0,y=m;0!=x&&(y=mxUtils.getBoundingBox(y,x));var f=null!=s&&h.isVertex(g)&&mxUtils.intersects(s,y)||null==s&&(h.isEdge(g)||h.isVertex(g))&&y.x>=t&&y.y+y.height<=d&&y.y>=e&&y.x+y.width<=u;f&&o.push(g),f&&!a||this.getCells(t,e,n,i,g,o,s,l,a)}}}return o},mxGraph.prototype.getCellsBeyond=function(t,e,n,i,r){var o=[];if((i||r)&&(null==n&&(n=this.getDefaultParent()),null!=n))for(var s=this.model.getChildCount(n),l=0;l<s;l++){var a=this.model.getChildAt(n,l),h=this.view.getState(a);this.isCellVisible(a)&&null!=h&&(!i||h.x>=t)&&(!r||h.y>=e)&&o.push(a)}return o},mxGraph.prototype.findTreeRoots=function(t,e,n){e=null!=e&&e,n=null!=n&&n;var i=[];if(null!=t){for(var r=this.getModel(),o=r.getChildCount(t),s=null,l=0,a=0;a<o;a++){var h=r.getChildAt(t,a);if(this.model.isVertex(h)&&this.isCellVisible(h)){for(var u=this.getConnections(h,e?t:null),d=0,c=0,p=0;p<u.length;p++){var g=this.view.getVisibleTerminal(u[p],!0);g==h?d++:c++}(n&&0==d&&c>0||!n&&0==c&&d>0)&&i.push(h);var m=n?c-d:d-c;m>l&&(l=m,s=h)}}0==i.length&&null!=s&&i.push(s)}return i},mxGraph.prototype.traverse=function(t,e,n,i,r,o){if(null!=n&&null!=t&&(e=null==e||e,o=null!=o&&o,r=r||new mxDictionary,!r.get(t))){r.put(t,!0);var s=n(t,i);if(null==s||s){var l=this.model.getEdgeCount(t);if(l>0)for(var a=0;a<l;a++){var h=this.model.getEdgeAt(t,a),u=this.model.getTerminal(h,!0)==t;if(!e||!o==u){var d=this.model.getTerminal(h,!u);this.traverse(d,e,n,h,r,o)}}}}},mxGraph.prototype.isCellSelected=function(t){return this.getSelectionModel().isSelected(t)},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(t){this.getSelectionModel().setCell(t)},mxGraph.prototype.setSelectionCells=function(t){this.getSelectionModel().setCells(t)},mxGraph.prototype.addSelectionCell=function(t){this.getSelectionModel().addCell(t)},mxGraph.prototype.addSelectionCells=function(t){this.getSelectionModel().addCells(t)},mxGraph.prototype.removeSelectionCell=function(t){this.getSelectionModel().removeCell(t)},mxGraph.prototype.removeSelectionCells=function(t){this.getSelectionModel().removeCells(t)},mxGraph.prototype.selectRegion=function(t,e){var n=this.getCells(t.x,t.y,t.width,t.height);return this.selectCellsForEvent(n,e),n},mxGraph.prototype.selectNextCell=function(){this.selectCell(!0)},mxGraph.prototype.selectPreviousCell=function(){this.selectCell()},mxGraph.prototype.selectParentCell=function(){this.selectCell(!1,!0)},mxGraph.prototype.selectChildCell=function(){this.selectCell(!1,!1,!0)},mxGraph.prototype.selectCell=function(t,e,n){var i=this.selectionModel,r=i.cells.length>0?i.cells[0]:null;i.cells.length>1&&i.clear();var o=null!=r?this.model.getParent(r):this.getDefaultParent(),s=this.model.getChildCount(o);if(null==r&&s>0){var l=this.model.getChildAt(o,0);this.setSelectionCell(l)}else if(null!=r&&!e||null==this.view.getState(o)||null==this.model.getGeometry(o)){if(null!=r&&n){var a=this.model.getChildCount(r);if(a>0){l=this.model.getChildAt(r,0);this.setSelectionCell(l)}}else if(s>0){var h=o.getIndex(r);if(t){h++;l=this.model.getChildAt(o,h%s);this.setSelectionCell(l)}else{h--;var u=h<0?s-1:h;l=this.model.getChildAt(o,u);this.setSelectionCell(l)}}}else this.getCurrentRoot()!=o&&this.setSelectionCell(o)},mxGraph.prototype.selectAll=function(t,e){t=t||this.getDefaultParent();var n=e?this.model.filterDescendants(mxUtils.bind(this,(function(e){return e!=t&&null!=this.view.getState(e)})),t):this.model.getChildren(t);null!=n&&this.setSelectionCells(n)},mxGraph.prototype.selectVertices=function(t,e){this.selectCells(!0,!1,t,e)},mxGraph.prototype.selectEdges=function(t){this.selectCells(!1,!0,t)},mxGraph.prototype.selectCells=function(t,e,n,i){n=n||this.getDefaultParent();var r=mxUtils.bind(this,(function(n){return null!=this.view.getState(n)&&((i||0==this.model.getChildCount(n))&&this.model.isVertex(n)&&t&&!this.model.isEdge(this.model.getParent(n))||this.model.isEdge(n)&&e)})),o=this.model.filterDescendants(r,n);null!=o&&this.setSelectionCells(o)},mxGraph.prototype.selectCellForEvent=function(t,e){var n=this.isCellSelected(t);this.isToggleEvent(e)?n?this.removeSelectionCell(t):this.addSelectionCell(t):n&&1==this.getSelectionCount()||this.setSelectionCell(t)},mxGraph.prototype.selectCellsForEvent=function(t,e){this.isToggleEvent(e)?this.addSelectionCells(t):this.setSelectionCells(t)},mxGraph.prototype.createHandler=function(t){var e=null;if(null!=t)if(this.model.isEdge(t.cell)){var n=t.getVisibleTerminalState(!0),i=t.getVisibleTerminalState(!1),r=this.getCellGeometry(t.cell),o=this.view.getEdgeStyle(t,null!=r?r.points:null,n,i);e=this.createEdgeHandler(t,o)}else e=this.createVertexHandler(t);return e},mxGraph.prototype.createVertexHandler=function(t){return new mxVertexHandler(t)},mxGraph.prototype.createEdgeHandler=function(t,e){var n=null;return n=e==mxEdgeStyle.Loop||e==mxEdgeStyle.ElbowConnector||e==mxEdgeStyle.SideToSide||e==mxEdgeStyle.TopToBottom?this.createElbowEdgeHandler(t):e==mxEdgeStyle.SegmentConnector||e==mxEdgeStyle.OrthConnector?this.createEdgeSegmentHandler(t):new mxEdgeHandler(t),n},mxGraph.prototype.createEdgeSegmentHandler=function(t){return new mxEdgeSegmentHandler(t)},mxGraph.prototype.createElbowEdgeHandler=function(t){return new mxElbowEdgeHandler(t)},mxGraph.prototype.addMouseListener=function(t){null==this.mouseListeners&&(this.mouseListeners=[]),this.mouseListeners.push(t)},mxGraph.prototype.removeMouseListener=function(t){if(null!=this.mouseListeners)for(var e=0;e<this.mouseListeners.length;e++)if(this.mouseListeners[e]==t){this.mouseListeners.splice(e,1);break}},mxGraph.prototype.updateMouseEvent=function(t,e){if(null==t.graphX||null==t.graphY){var n=mxUtils.convertPoint(this.container,t.getX(),t.getY());t.graphX=n.x-this.panDx,t.graphY=n.y-this.panDy,null==t.getCell()&&this.isMouseDown&&e==mxEvent.MOUSE_MOVE&&(t.state=this.view.getState(this.getCellAt(n.x,n.y,null,null,null,(function(t){return null==t.shape||t.shape.paintBackground!=mxRectangleShape.prototype.paintBackground||"1"==mxUtils.getValue(t.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=t.shape.fill&&t.shape.fill!=mxConstants.NONE}))))}return t},mxGraph.prototype.getStateForTouchEvent=function(t){var e=mxEvent.getClientX(t),n=mxEvent.getClientY(t),i=mxUtils.convertPoint(this.container,e,n);return this.view.getState(this.getCellAt(i.x,i.y))},mxGraph.prototype.isEventIgnored=function(t,e,n){var i=mxEvent.isMouseEvent(e.getEvent()),r=!1;return e.getEvent()==this.lastEvent?r=!0:this.lastEvent=e.getEvent(),null!=this.eventSource&&t!=mxEvent.MOUSE_MOVE?(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect),this.mouseMoveRedirect=null,this.mouseUpRedirect=null,this.eventSource=null):mxClient.IS_GC||null==this.eventSource||e.getSource()==this.eventSource?!mxClient.IS_TOUCH||t!=mxEvent.MOUSE_DOWN||i||mxEvent.isPenEvent(e.getEvent())||(this.eventSource=e.getSource(),this.mouseMoveRedirect=mxUtils.bind(this,(function(t){this.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,this.getStateForTouchEvent(t)))})),this.mouseUpRedirect=mxUtils.bind(this,(function(t){this.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t,this.getStateForTouchEvent(t)))})),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect)):r=!0,this.isSyntheticEventIgnored(t,e,n)&&(r=!0),!mxEvent.isPopupTrigger(this.lastEvent)&&t!=mxEvent.MOUSE_MOVE&&2==this.lastEvent.detail||(t==mxEvent.MOUSE_UP&&this.isMouseDown?this.isMouseDown=!1:t!=mxEvent.MOUSE_DOWN||this.isMouseDown?!r&&((!mxClient.IS_FF||t!=mxEvent.MOUSE_MOVE)&&this.isMouseDown&&this.isMouseTrigger!=i||t==mxEvent.MOUSE_DOWN&&this.isMouseDown||t==mxEvent.MOUSE_UP&&!this.isMouseDown)&&(r=!0):(this.isMouseDown=!0,this.isMouseTrigger=i),r||t!=mxEvent.MOUSE_DOWN||(this.lastMouseX=e.getX(),this.lastMouseY=e.getY()),r)},mxGraph.prototype.isSyntheticEventIgnored=function(t,e,n){var i=!1,r=mxEvent.isMouseEvent(e.getEvent());return this.ignoreMouseEvents&&r&&t!=mxEvent.MOUSE_MOVE?(this.ignoreMouseEvents=t!=mxEvent.MOUSE_UP,i=!0):mxClient.IS_FF&&!r&&t==mxEvent.MOUSE_UP&&(this.ignoreMouseEvents=!0),i},mxGraph.prototype.isEventSourceIgnored=function(t,e){var n=e.getSource(),i=null!=n.nodeName?n.nodeName.toLowerCase():"",r=!mxEvent.isMouseEvent(e.getEvent())||mxEvent.isLeftMouseButton(e.getEvent());return t==mxEvent.MOUSE_DOWN&&r&&("select"==i||"option"==i||"input"==i&&"checkbox"!=n.type&&"radio"!=n.type&&"button"!=n.type&&"submit"!=n.type&&"file"!=n.type)},mxGraph.prototype.getEventState=function(t){return t},mxGraph.prototype.fireMouseEvent=function(t,e,n){if(this.isEventSourceIgnored(t,e))null!=this.tooltipHandler&&this.tooltipHandler.hide();else{if(null==n&&(n=this),e=this.updateMouseEvent(e,t),!this.nativeDblClickEnabled&&!mxEvent.isPopupTrigger(e.getEvent())||this.doubleTapEnabled&&mxClient.IS_TOUCH&&(mxEvent.isTouchEvent(e.getEvent())||mxEvent.isPenEvent(e.getEvent()))){var i=(new Date).getTime();if(!mxClient.IS_QUIRKS&&t==mxEvent.MOUSE_DOWN||mxClient.IS_QUIRKS&&t==mxEvent.MOUSE_UP&&!this.fireDoubleClick)if(null!=this.lastTouchEvent&&this.lastTouchEvent!=e.getEvent()&&i-this.lastTouchTime<this.doubleTapTimeout&&Math.abs(this.lastTouchX-e.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-e.getY())<this.doubleTapTolerance&&this.doubleClickCounter<2){this.doubleClickCounter++;var r=!1;if(t==mxEvent.MOUSE_UP){if(e.getCell()==this.lastTouchCell&&null!=this.lastTouchCell){this.lastTouchTime=0;var o=this.lastTouchCell;this.lastTouchCell=null,mxClient.IS_QUIRKS&&e.getSource().fireEvent("ondblclick"),this.dblClick(e.getEvent(),o),r=!0}}else this.fireDoubleClick=!0,this.lastTouchTime=0;if(!mxClient.IS_QUIRKS||r)return void mxEvent.consume(e.getEvent())}else null!=this.lastTouchEvent&&this.lastTouchEvent==e.getEvent()||(this.lastTouchCell=e.getCell(),this.lastTouchX=e.getX(),this.lastTouchY=e.getY(),this.lastTouchTime=i,this.lastTouchEvent=e.getEvent(),this.doubleClickCounter=0);else if((this.isMouseDown||t==mxEvent.MOUSE_UP)&&this.fireDoubleClick){this.fireDoubleClick=!1;o=this.lastTouchCell;this.lastTouchCell=null,this.isMouseDown=!1;var s=null!=o||(mxEvent.isTouchEvent(e.getEvent())||mxEvent.isPenEvent(e.getEvent()))&&(mxClient.IS_GC||mxClient.IS_SF);return void(s&&Math.abs(this.lastTouchX-e.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-e.getY())<this.doubleTapTolerance?this.dblClick(e.getEvent(),o):mxEvent.consume(e.getEvent()))}}if(!this.isEventIgnored(t,e,n)){if(e.state=this.getEventState(e.getState()),this.fireEvent(new mxEventObject(mxEvent.FIRE_MOUSE_EVENT,"eventName",t,"event",e)),mxClient.IS_OP||mxClient.IS_SF||mxClient.IS_GC||mxClient.IS_IE11||mxClient.IS_IE&&mxClient.IS_SVG||e.getEvent().target!=this.container){if(t==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&!mxEvent.isMultiTouchEvent(e.getEvent))this.scrollPointToVisible(e.getGraphX(),e.getGraphY(),this.autoExtend);else if(t==mxEvent.MOUSE_UP&&this.ignoreScrollbars&&this.translateToScrollPosition&&(0!=this.container.scrollLeft||0!=this.container.scrollTop)){var l=this.view.scale,a=this.view.translate;this.view.setTranslate(a.x-this.container.scrollLeft/l,a.y-this.container.scrollTop/l),this.container.scrollLeft=0,this.container.scrollTop=0}if(null!=this.mouseListeners){var h=[n,e];e.getEvent().preventDefault||(e.getEvent().returnValue=!0);for(var u=0;u<this.mouseListeners.length;u++){var d=this.mouseListeners[u];t==mxEvent.MOUSE_DOWN?d.mouseDown.apply(d,h):t==mxEvent.MOUSE_MOVE?d.mouseMove.apply(d,h):t==mxEvent.MOUSE_UP&&d.mouseUp.apply(d,h)}}t==mxEvent.MOUSE_UP&&this.click(e)}if((mxEvent.isTouchEvent(e.getEvent())||mxEvent.isPenEvent(e.getEvent()))&&t==mxEvent.MOUSE_DOWN&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress){this.tapAndHoldInProgress=!0,this.initialTouchX=e.getGraphX(),this.initialTouchY=e.getGraphY();var c=function(){this.tapAndHoldValid&&this.tapAndHold(e),this.tapAndHoldInProgress=!1,this.tapAndHoldValid=!1};this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,c),this.tapAndHoldDelay),this.tapAndHoldValid=!0}else t==mxEvent.MOUSE_UP?(this.tapAndHoldInProgress=!1,this.tapAndHoldValid=!1):this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-e.getGraphX())<this.tolerance&&Math.abs(this.initialTouchY-e.getGraphY())<this.tolerance);t==mxEvent.MOUSE_DOWN&&this.isEditing()&&!this.cellEditor.isEventSource(e.getEvent())&&this.stopEditing(!this.isInvokesStopCellEditing()),this.consumeMouseEvent(t,e,n)}}},mxGraph.prototype.consumeMouseEvent=function(t,e,n){t==mxEvent.MOUSE_DOWN&&mxEvent.isTouchEvent(e.getEvent())&&e.consume(!1)},mxGraph.prototype.fireGestureEvent=function(t,e){this.lastTouchTime=0,this.fireEvent(new mxEventObject(mxEvent.GESTURE,"event",t,"cell",e))},mxGraph.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tooltipHandler&&this.tooltipHandler.destroy(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.destroy(),null!=this.panningHandler&&this.panningHandler.destroy(),null!=this.popupMenuHandler&&this.popupMenuHandler.destroy(),null!=this.connectionHandler&&this.connectionHandler.destroy(),null!=this.graphHandler&&this.graphHandler.destroy(),null!=this.cellEditor&&this.cellEditor.destroy(),null!=this.view&&this.view.destroy(),null!=this.model&&null!=this.graphModelChangeListener&&(this.model.removeListener(this.graphModelChangeListener),this.graphModelChangeListener=null),this.container=null)},__mxOutput.mxGraph="undefined"!==typeof mxGraph?mxGraph:void 0,mxCellOverlay.prototype=new mxEventSource,mxCellOverlay.prototype.constructor=mxCellOverlay,mxCellOverlay.prototype.image=null,mxCellOverlay.prototype.tooltip=null,mxCellOverlay.prototype.align=mxConstants.ALIGN_RIGHT,mxCellOverlay.prototype.verticalAlign=mxConstants.ALIGN_BOTTOM,mxCellOverlay.prototype.offset=null,mxCellOverlay.prototype.cursor=null,mxCellOverlay.prototype.defaultOverlap=.5,mxCellOverlay.prototype.getBounds=function(t){var e=t.view.graph.getModel().isEdge(t.cell),n=t.view.scale,i=null,r=this.image.width,o=this.image.height;if(e){var s=t.absolutePoints;if(s.length%2==1)i=s[Math.floor(s.length/2)];else{var l=s.length/2,a=s[l-1],h=s[l];i=new mxPoint(a.x+(h.x-a.x)/2,a.y+(h.y-a.y)/2)}}else i=new mxPoint,this.align==mxConstants.ALIGN_LEFT?i.x=t.x:this.align==mxConstants.ALIGN_CENTER?i.x=t.x+t.width/2:i.x=t.x+t.width,this.verticalAlign==mxConstants.ALIGN_TOP?i.y=t.y:this.verticalAlign==mxConstants.ALIGN_MIDDLE?i.y=t.y+t.height/2:i.y=t.y+t.height;return new mxRectangle(Math.round(i.x-(r*this.defaultOverlap-this.offset.x)*n),Math.round(i.y-(o*this.defaultOverlap-this.offset.y)*n),r*n,o*n)},mxCellOverlay.prototype.toString=function(){return this.tooltip},__mxOutput.mxCellOverlay="undefined"!==typeof mxCellOverlay?mxCellOverlay:void 0,mxOutline.prototype.source=null,mxOutline.prototype.outline=null,mxOutline.prototype.graphRenderHint=mxConstants.RENDERING_HINT_FASTER,mxOutline.prototype.enabled=!0,mxOutline.prototype.showViewport=!0,mxOutline.prototype.border=10,mxOutline.prototype.sizerSize=8,mxOutline.prototype.labelsVisible=!1,mxOutline.prototype.updateOnPan=!1,mxOutline.prototype.sizerImage=null,mxOutline.prototype.minScale=1e-4,mxOutline.prototype.suspended=!1,mxOutline.prototype.forceVmlHandles=8==document.documentMode,mxOutline.prototype.createGraph=function(t){var e=new mxGraph(t,this.source.getModel(),this.graphRenderHint,this.source.getStylesheet());return e.foldingEnabled=!1,e.autoScroll=!1,e},mxOutline.prototype.init=function(t){this.outline=this.createGraph(t);var e=this.outline.graphModelChanged;if(this.outline.graphModelChanged=mxUtils.bind(this,(function(t){this.suspended||null==this.outline||e.apply(this.outline,arguments)})),mxClient.IS_SVG){var n=this.outline.getView().getCanvas().parentNode;n.setAttribute("shape-rendering","optimizeSpeed"),n.setAttribute("image-rendering","optimizeSpeed")}this.outline.labelsVisible=this.labelsVisible,this.outline.setEnabled(!1),this.updateHandler=mxUtils.bind(this,(function(t,e){this.suspended||this.active||this.update()})),this.source.getModel().addListener(mxEvent.CHANGE,this.updateHandler),this.outline.addMouseListener(this);var i=this.source.getView();i.addListener(mxEvent.SCALE,this.updateHandler),i.addListener(mxEvent.TRANSLATE,this.updateHandler),i.addListener(mxEvent.SCALE_AND_TRANSLATE,this.updateHandler),i.addListener(mxEvent.DOWN,this.updateHandler),i.addListener(mxEvent.UP,this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.panHandler=mxUtils.bind(this,(function(t){this.updateOnPan&&this.updateHandler.apply(this,arguments)})),this.source.addListener(mxEvent.PAN,this.panHandler),this.refreshHandler=mxUtils.bind(this,(function(t){this.outline.setStylesheet(this.source.getStylesheet()),this.outline.refresh()})),this.source.addListener(mxEvent.REFRESH,this.refreshHandler),this.bounds=new mxRectangle(0,0,0,0),this.selectionBorder=new mxRectangleShape(this.bounds,null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH),this.selectionBorder.dialect=this.outline.dialect,this.forceVmlHandles&&(this.selectionBorder.isHtmlAllowed=function(){return!1}),this.selectionBorder.init(this.outline.getView().getOverlayPane());var r=mxUtils.bind(this,(function(t){var e=mxEvent.getSource(t),n=mxUtils.bind(this,(function(t){this.outline.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t))})),i=mxUtils.bind(this,(function(t){mxEvent.removeGestureListeners(e,null,n,i),this.outline.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t))}));mxEvent.addGestureListeners(e,null,n,i),this.outline.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t))}));mxEvent.addGestureListeners(this.selectionBorder.node,r),this.sizer=this.createSizer(),this.forceVmlHandles&&(this.sizer.isHtmlAllowed=function(){return!1}),this.sizer.init(this.outline.getView().getOverlayPane()),this.enabled&&(this.sizer.node.style.cursor="nwse-resize"),mxEvent.addGestureListeners(this.sizer.node,r),this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display,this.selectionBorder.node.style.cursor="move",this.update(!1)},mxOutline.prototype.isEnabled=function(){return this.enabled},mxOutline.prototype.setEnabled=function(t){this.enabled=t},mxOutline.prototype.setZoomEnabled=function(t){this.sizer.node.style.visibility=t?"visible":"hidden"},mxOutline.prototype.refresh=function(){this.update(!0)},mxOutline.prototype.createSizer=function(){if(null!=this.sizerImage){var t=new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src);return t.dialect=this.outline.dialect,t}t=new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);return t.dialect=this.outline.dialect,t},mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)},mxOutline.prototype.getOutlineOffset=function(t){return null},mxOutline.prototype.getSourceGraphBounds=function(){return this.source.getGraphBounds()},mxOutline.prototype.update=function(t){if(null!=this.source&&null!=this.source.container&&null!=this.outline&&null!=this.outline.container){var e=this.source.view.scale,n=this.getSourceGraphBounds(),i=new mxRectangle(n.x/e+this.source.panDx,n.y/e+this.source.panDy,n.width/e,n.height/e),r=new mxRectangle(0,0,this.source.container.clientWidth/e,this.source.container.clientHeight/e),o=i.clone();o.add(r);var s=this.getSourceContainerSize(),l=Math.max(s.width/e,o.width),a=Math.max(s.height/e,o.height),h=Math.max(0,this.outline.container.clientWidth-this.border),u=Math.max(0,this.outline.container.clientHeight-this.border),d=Math.min(h/l,u/a),c=isNaN(d)?this.minScale:Math.max(this.minScale,d);if(c>0){this.outline.getView().scale!=c&&(this.outline.getView().scale=c,t=!0);var p=this.outline.getView();p.currentRoot!=this.source.getView().currentRoot&&p.setCurrentRoot(this.source.getView().currentRoot);var g=this.source.view.translate,m=g.x+this.source.panDx,x=g.y+this.source.panDy,y=this.getOutlineOffset(c);null!=y&&(m+=y.x,x+=y.y),i.x<0&&(m-=i.x),i.y<0&&(x-=i.y),p.translate.x==m&&p.translate.y==x||(p.translate.x=m,p.translate.y=x,t=!0);var f=p.translate;c=this.source.getView().scale;var A=c/p.scale,C=1/p.scale,v=this.source.container;this.bounds=new mxRectangle((f.x-g.x-this.source.panDx)/C,(f.y-g.y-this.source.panDy)/C,v.clientWidth/A,v.clientHeight/A),this.bounds.x+=this.source.container.scrollLeft*p.scale/c,this.bounds.y+=this.source.container.scrollTop*p.scale/c;var E=this.selectionBorder.bounds;E.x==this.bounds.x&&E.y==this.bounds.y&&E.width==this.bounds.width&&E.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw());E=this.sizer.bounds;var w=new mxRectangle(this.bounds.x+this.bounds.width-E.width/2,this.bounds.y+this.bounds.height-E.height/2,E.width,E.height);E.x==w.x&&E.y==w.y&&E.width==w.width&&E.height==w.height||(this.sizer.bounds=w,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw()),t&&this.outline.view.revalidate()}}},mxOutline.prototype.mouseDown=function(t,e){if(this.enabled&&this.showViewport){var n=mxEvent.isMouseEvent(e.getEvent())?0:this.source.tolerance,i=this.source.allowHandleBoundsCheck&&(mxClient.IS_IE||n>0)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null;this.zoom=e.isSource(this.sizer)||null!=i&&mxUtils.intersects(shape.bounds,i),this.startX=e.getX(),this.startY=e.getY(),this.active=!0,this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,this.dy0=this.source.container.scrollTop):(this.dx0=0,this.dy0=0)}e.consume()},mxOutline.prototype.mouseMove=function(t,e){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var n=this.getTranslateForEvent(e),i=n.x,r=n.y,o=null;if(this.zoom){var s=this.source.container,l=s.clientWidth/s.clientHeight;r=i/l,o=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+i),Math.max(1,this.bounds.height+r)),this.selectionBorder.bounds=o,this.selectionBorder.redraw()}else{var a=this.outline.getView().scale;o=new mxRectangle(this.bounds.x+i,this.bounds.y+r,this.bounds.width,this.bounds.height),this.selectionBorder.bounds=o,this.selectionBorder.redraw(),i/=a,i*=this.source.getView().scale,r/=a,r*=this.source.getView().scale,this.source.panGraph(-i-this.dx0,-r-this.dy0)}var h=this.sizer.bounds;this.sizer.bounds=new mxRectangle(o.x+o.width-h.width/2,o.y+o.height-h.height/2,h.width,h.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),e.consume()}},mxOutline.prototype.getTranslateForEvent=function(t){return new mxPoint(t.getX()-this.startX,t.getY()-this.startY)},mxOutline.prototype.mouseUp=function(t,e){if(this.active){var n=this.getTranslateForEvent(e),i=n.x,r=n.y;if(Math.abs(i)>0||Math.abs(r)>0){if(this.zoom){var o=this.selectionBorder.bounds.width,s=this.source.getView().scale;this.source.zoomTo(Math.max(this.minScale,s-i*s/o),!1)}else if(!this.source.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.source.container)){this.source.panGraph(0,0),i/=this.outline.getView().scale,r/=this.outline.getView().scale;var l=this.source.getView().translate;this.source.getView().setTranslate(l.x-i,l.y-r)}this.update(),e.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.removeListener(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)},__mxOutput.mxOutline="undefined"!==typeof mxOutline?mxOutline:void 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(t,e,n,i,r,o){var s="";if((this.source&&this.checkTerminal(t,n,e)||!this.source&&this.checkTerminal(t,i,e))&&(null!=this.countError&&(this.source&&(0==this.max||r>=this.max)||!this.source&&(0==this.max||o>=this.max))&&(s+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&this.validNeighbors.length>0)){var l=this.checkNeighbors(t,e,n,i);l||(s+=this.typeError+"\n")}return s.length>0?s:null},mxMultiplicity.prototype.checkNeighbors=function(t,e,n,i){for(var r=t.model.getValue(n),o=t.model.getValue(i),s=!this.validNeighborsAllowed,l=this.validNeighbors,a=0;a<l.length;a++){if(this.source&&this.checkType(t,o,l[a])){s=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(t,r,l[a])){s=this.validNeighborsAllowed;break}}return s},mxMultiplicity.prototype.checkTerminal=function(t,e,n){var i=t.model.getValue(e);return this.checkType(t,i,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(t,e,n,i,r){return null!=e&&(isNaN(e.nodeType)?e==n:mxUtils.isNode(e,n,i,r))},__mxOutput.mxMultiplicity="undefined"!==typeof mxMultiplicity?mxMultiplicity:void 0,mxLayoutManager.prototype=new mxEventSource,mxLayoutManager.prototype.constructor=mxLayoutManager,mxLayoutManager.prototype.graph=null,mxLayoutManager.prototype.bubbling=!0,mxLayoutManager.prototype.enabled=!0,mxLayoutManager.prototype.undoHandler=null,mxLayoutManager.prototype.moveHandler=null,mxLayoutManager.prototype.resizeHandler=null,mxLayoutManager.prototype.isEnabled=function(){return this.enabled},mxLayoutManager.prototype.setEnabled=function(t){this.enabled=t},mxLayoutManager.prototype.isBubbling=function(){return this.bubbling},mxLayoutManager.prototype.setBubbling=function(t){this.bubbling=t},mxLayoutManager.prototype.getGraph=function(){return this.graph},mxLayoutManager.prototype.setGraph=function(t){if(null!=this.graph){var e=this.graph.getModel();e.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler),this.graph.removeListener(this.resizeHandler)}if(this.graph=t,null!=this.graph){e=this.graph.getModel();e.addListener(mxEvent.BEFORE_UNDO,this.undoHandler),this.graph.addListener(mxEvent.MOVE_CELLS,this.moveHandler),this.graph.addListener(mxEvent.RESIZE_CELLS,this.resizeHandler)}},mxLayoutManager.prototype.hasLayout=function(t){return this.getLayout(t,mxEvent.LAYOUT_CELLS)},mxLayoutManager.prototype.getLayout=function(t,e){return null},mxLayoutManager.prototype.beforeUndo=function(t){this.executeLayoutForCells(this.getCellsForChanges(t.changes))},mxLayoutManager.prototype.cellsMoved=function(t,e){if(null!=t&&null!=e)for(var n=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(e),mxEvent.getClientY(e)),i=this.getGraph().getModel(),r=0;r<t.length;r++){var o=this.getLayout(i.getParent(t[r]),mxEvent.MOVE_CELLS);null!=o&&o.moveCell(t[r],n.x,n.y)}},mxLayoutManager.prototype.cellsResized=function(t,e,n){if(null!=t&&null!=e)for(var i=this.getGraph().getModel(),r=0;r<t.length;r++){var o=this.getLayout(i.getParent(t[r]),mxEvent.RESIZE_CELLS);null!=o&&o.resizeCell(t[r],e[r],n[r])}},mxLayoutManager.prototype.getCellsForChanges=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n];if(i instanceof mxRootChange)return[];e=e.concat(this.getCellsForChange(i))}return e},mxLayoutManager.prototype.getCellsForChange=function(t){return t instanceof mxChildChange?this.addCellsWithLayout(t.child,this.addCellsWithLayout(t.previous)):t instanceof mxTerminalChange||t instanceof mxGeometryChange||t instanceof mxVisibleChange||t instanceof mxStyleChange?this.addCellsWithLayout(t.cell):[]},mxLayoutManager.prototype.addCellsWithLayout=function(t,e){return this.addDescendantsWithLayout(t,this.addAncestorsWithLayout(t,e))},mxLayoutManager.prototype.addAncestorsWithLayout=function(t,e){if(e=null!=e?e:[],null!=t){var n=this.hasLayout(t);if(null!=n&&e.push(t),this.isBubbling()){var i=this.getGraph().getModel();this.addAncestorsWithLayout(i.getParent(t),e)}}return e},mxLayoutManager.prototype.addDescendantsWithLayout=function(t,e){if(e=null!=e?e:[],null!=t&&this.hasLayout(t))for(var n=this.getGraph().getModel(),i=0;i<n.getChildCount(t);i++){var r=n.getChildAt(t,i);this.hasLayout(r)&&(e.push(r),this.addDescendantsWithLayout(r,e))}return e},mxLayoutManager.prototype.executeLayoutForCells=function(t){var e=mxUtils.sortCells(t,!1);this.layoutCells(e,!0),this.layoutCells(e.reverse(),!1)},mxLayoutManager.prototype.layoutCells=function(t,e){if(t.length>0){var n=this.getGraph().getModel();n.beginUpdate();try{for(var i=null,r=0;r<t.length;r++)t[r]!=n.getRoot()&&t[r]!=i&&(this.executeLayout(t[r],e),i=t[r]);this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",t))}finally{n.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(t,e){var n=this.getLayout(t,e?mxEvent.BEGIN_UPDATE:mxEvent.END_UPDATE);null!=n&&n.execute(t)},mxLayoutManager.prototype.destroy=function(){this.setGraph(null)},__mxOutput.mxLayoutManager="undefined"!==typeof mxLayoutManager?mxLayoutManager:void 0,mxSwimlaneManager.prototype=new mxEventSource,mxSwimlaneManager.prototype.constructor=mxSwimlaneManager,mxSwimlaneManager.prototype.graph=null,mxSwimlaneManager.prototype.enabled=!0,mxSwimlaneManager.prototype.horizontal=!0,mxSwimlaneManager.prototype.addEnabled=!0,mxSwimlaneManager.prototype.resizeEnabled=!0,mxSwimlaneManager.prototype.addHandler=null,mxSwimlaneManager.prototype.resizeHandler=null,mxSwimlaneManager.prototype.isEnabled=function(){return this.enabled},mxSwimlaneManager.prototype.setEnabled=function(t){this.enabled=t},mxSwimlaneManager.prototype.isHorizontal=function(){return this.horizontal},mxSwimlaneManager.prototype.setHorizontal=function(t){this.horizontal=t},mxSwimlaneManager.prototype.isAddEnabled=function(){return this.addEnabled},mxSwimlaneManager.prototype.setAddEnabled=function(t){this.addEnabled=t},mxSwimlaneManager.prototype.isResizeEnabled=function(){return this.resizeEnabled},mxSwimlaneManager.prototype.setResizeEnabled=function(t){this.resizeEnabled=t},mxSwimlaneManager.prototype.getGraph=function(){return this.graph},mxSwimlaneManager.prototype.setGraph=function(t){null!=this.graph&&(this.graph.removeListener(this.addHandler),this.graph.removeListener(this.resizeHandler)),this.graph=t,null!=this.graph&&(this.graph.addListener(mxEvent.ADD_CELLS,this.addHandler),this.graph.addListener(mxEvent.CELLS_RESIZED,this.resizeHandler))},mxSwimlaneManager.prototype.isSwimlaneIgnored=function(t){return!this.getGraph().isSwimlane(t)},mxSwimlaneManager.prototype.isCellHorizontal=function(t){if(this.graph.isSwimlane(t)){var e=this.graph.getCellStyle(t);return 1==mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,1)}return!this.isHorizontal()},mxSwimlaneManager.prototype.cellsAdded=function(t){if(null!=t){var e=this.getGraph().getModel();e.beginUpdate();try{for(var n=0;n<t.length;n++)this.isSwimlaneIgnored(t[n])||this.swimlaneAdded(t[n])}finally{e.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(t){for(var e=this.getGraph().getModel(),n=e.getParent(t),i=e.getChildCount(n),r=null,o=0;o<i;o++){var s=e.getChildAt(n,o);if(s!=t&&!this.isSwimlaneIgnored(s)&&(r=e.getGeometry(s),null!=r))break}if(null!=r){var l=null!=n?this.isCellHorizontal(n):this.horizontal;this.resizeSwimlane(t,r.width,r.height,l)}},mxSwimlaneManager.prototype.cellsResized=function(t){if(null!=t){var e=this.getGraph().getModel();e.beginUpdate();try{for(var n=0;n<t.length;n++)if(!this.isSwimlaneIgnored(t[n])){var i=e.getGeometry(t[n]);if(null!=i){var r=new mxRectangle(0,0,i.width,i.height),o=t[n],s=o;while(null!=s){o=s,s=e.getParent(s);var l=this.graph.isSwimlane(s)?this.graph.getStartSize(s):new mxRectangle;r.width+=l.width,r.height+=l.height}var a=null!=s?this.isCellHorizontal(s):this.horizontal;this.resizeSwimlane(o,r.width,r.height,a)}}}finally{e.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(t,e,n,i){var r=this.getGraph().getModel();r.beginUpdate();try{var o=this.isCellHorizontal(t);if(!this.isSwimlaneIgnored(t)){var s=r.getGeometry(t);null!=s&&(i&&s.height!=n||!i&&s.width!=e)&&(s=s.clone(),i?s.height=n:s.width=e,r.setGeometry(t,s))}var l=this.graph.isSwimlane(t)?this.graph.getStartSize(t):new mxRectangle;e-=l.width,n-=l.height;for(var a=r.getChildCount(t),h=0;h<a;h++){var u=r.getChildAt(t,h);this.resizeSwimlane(u,e,n,o)}}finally{r.endUpdate()}},mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null)},__mxOutput.mxSwimlaneManager="undefined"!==typeof mxSwimlaneManager?mxSwimlaneManager:void 0,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,this.view.graph.cellRenderer.doRedrawShape=this.oldDoRedrawShape},__mxOutput.mxTemporaryCellStates="undefined"!==typeof mxTemporaryCellStates?mxTemporaryCellStates:void 0,mxCellStatePreview.prototype.graph=null,mxCellStatePreview.prototype.deltas=null,mxCellStatePreview.prototype.count=0,mxCellStatePreview.prototype.isEmpty=function(){return 0==this.count},mxCellStatePreview.prototype.moveState=function(t,e,n,i,r){i=null==i||i,r=null==r||r;var o=this.deltas.get(t.cell);return null==o?(o={point:new mxPoint(e,n),state:t},this.deltas.put(t.cell,o),this.count++):i?(o.point.x+=e,o.point.y+=n):(o.point.x=e,o.point.y=n),r&&this.addEdges(t),o.point},mxCellStatePreview.prototype.show=function(t){this.deltas.visit(mxUtils.bind(this,(function(t,e){this.translateState(e.state,e.point.x,e.point.y)}))),this.deltas.visit(mxUtils.bind(this,(function(e,n){this.revalidateState(n.state,n.point.x,n.point.y,t)})))},mxCellStatePreview.prototype.translateState=function(t,e,n){if(null!=t){var i=this.graph.getModel();if(i.isVertex(t.cell)){t.view.updateCellState(t);var r=i.getGeometry(t.cell);0==e&&0==n||null==r||r.relative&&null==this.deltas.get(t.cell)||(t.x+=e,t.y+=n)}for(var o=i.getChildCount(t.cell),s=0;s<o;s++)this.translateState(t.view.getState(i.getChildAt(t.cell,s)),e,n)}},mxCellStatePreview.prototype.revalidateState=function(t,e,n,i){if(null!=t){var r=this.graph.getModel();r.isEdge(t.cell)&&t.view.updateCellState(t);var o=this.graph.getCellGeometry(t.cell),s=t.view.getState(r.getParent(t.cell));0==e&&0==n||null==o||!o.relative||!r.isVertex(t.cell)||null!=s&&!r.isVertex(s.cell)&&null==this.deltas.get(t.cell)||(t.x+=e,t.y+=n),this.graph.cellRenderer.redraw(t),null!=i&&i(t);for(var l=r.getChildCount(t.cell),a=0;a<l;a++)this.revalidateState(this.graph.view.getState(r.getChildAt(t.cell,a)),e,n,i)}},mxCellStatePreview.prototype.addEdges=function(t){for(var e=this.graph.getModel(),n=e.getEdgeCount(t.cell),i=0;i<n;i++){var r=t.view.getState(e.getEdgeAt(t.cell,i));null!=r&&this.moveState(r,0,0)}},__mxOutput.mxCellStatePreview="undefined"!==typeof mxCellStatePreview?mxCellStatePreview:void 0,mxConnectionConstraint.prototype.point=null,mxConnectionConstraint.prototype.perimeter=null,mxConnectionConstraint.prototype.name=null,mxConnectionConstraint.prototype.dx=null,mxConnectionConstraint.prototype.dy=null,__mxOutput.mxConnectionConstraint="undefined"!==typeof mxConnectionConstraint?mxConnectionConstraint:void 0,mxGraphHandler.prototype.graph=null,mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50,mxGraphHandler.prototype.enabled=!0,mxGraphHandler.prototype.highlightEnabled=!0,mxGraphHandler.prototype.cloneEnabled=!0,mxGraphHandler.prototype.moveEnabled=!0,mxGraphHandler.prototype.guidesEnabled=!1,mxGraphHandler.prototype.handlesVisible=!0,mxGraphHandler.prototype.guide=null,mxGraphHandler.prototype.currentDx=null,mxGraphHandler.prototype.currentDy=null,mxGraphHandler.prototype.updateCursor=!0,mxGraphHandler.prototype.selectEnabled=!0,mxGraphHandler.prototype.removeCellsFromParent=!0,mxGraphHandler.prototype.removeEmptyParents=!1,mxGraphHandler.prototype.connectOnDrop=!1,mxGraphHandler.prototype.scrollOnMove=!0,mxGraphHandler.prototype.minimumSize=6,mxGraphHandler.prototype.previewColor="black",mxGraphHandler.prototype.htmlPreview=!1,mxGraphHandler.prototype.shape=null,mxGraphHandler.prototype.scaleGrid=!1,mxGraphHandler.prototype.rotationEnabled=!0,mxGraphHandler.prototype.maxLivePreview=0,mxGraphHandler.prototype.allowLivePreview=mxClient.IS_SVG,mxGraphHandler.prototype.isEnabled=function(){return this.enabled},mxGraphHandler.prototype.setEnabled=function(t){this.enabled=t},mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled},mxGraphHandler.prototype.setCloneEnabled=function(t){this.cloneEnabled=t},mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled},mxGraphHandler.prototype.setMoveEnabled=function(t){this.moveEnabled=t},mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled},mxGraphHandler.prototype.setSelectEnabled=function(t){this.selectEnabled=t},mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent},mxGraphHandler.prototype.setRemoveCellsFromParent=function(t){this.removeCellsFromParent=t},mxGraphHandler.prototype.isPropagateSelectionCell=function(t,e,n){var i=this.graph.model.getParent(t);if(e){var r=this.graph.model.isEdge(t)?null:this.graph.getCellGeometry(t);return!this.graph.isSiblingSelected(t)&&(null!=r&&r.relative||!this.graph.isSwimlane(i))}return(!this.graph.isToggleEvent(n.getEvent())||!this.graph.isSiblingSelected(t)&&!this.graph.isCellSelected(t)&&!this.graph.isSwimlane(i)||this.graph.isCellSelected(i))&&(this.graph.isToggleEvent(n.getEvent())||!this.graph.isCellSelected(i))},mxGraphHandler.prototype.getInitialCellForEvent=function(t){var e=t.getState();if((!this.graph.isToggleEvent(t.getEvent())||!mxEvent.isAltDown(t.getEvent()))&&null!=e&&!this.graph.isCellSelected(e.cell)){var n=this.graph.model,i=this.graph.view.getState(n.getParent(e.cell));while(null!=i&&!this.graph.isCellSelected(i.cell)&&(n.isVertex(i.cell)||n.isEdge(i.cell))&&this.isPropagateSelectionCell(e.cell,!0,t))e=i,i=this.graph.view.getState(this.graph.getModel().getParent(e.cell))}return null!=e?e.cell:null},mxGraphHandler.prototype.isDelayedSelection=function(t,e){if(!this.graph.isToggleEvent(e.getEvent())||!mxEvent.isAltDown(e.getEvent()))while(null!=t){if(this.graph.selectionCellsHandler.isHandled(t))return this.graph.cellEditor.getEditingCell()!=t;t=this.graph.model.getParent(t)}return this.graph.isToggleEvent(e.getEvent())&&!mxEvent.isAltDown(e.getEvent())},mxGraphHandler.prototype.selectDelayed=function(t){if(!this.graph.popupMenuHandler.isPopupTrigger(t)){var e=t.getCell();null==e&&(e=this.cell),this.selectCellForEvent(e,t)}},mxGraphHandler.prototype.selectCellForEvent=function(t,e){var n=this.graph.view.getState(t);if(null!=n)if(e.isSource(n.control))this.graph.selectCellForEvent(t,e.getEvent());else{if(!this.graph.isToggleEvent(e.getEvent())||!mxEvent.isAltDown(e.getEvent())){var i=this.graph.getModel(),r=i.getParent(t);while(null!=this.graph.view.getState(r)&&(i.isVertex(r)||i.isEdge(r))&&this.isPropagateSelectionCell(t,!1,e))t=r,r=i.getParent(t)}this.graph.selectCellForEvent(t,e.getEvent())}return t},mxGraphHandler.prototype.consumeMouseEvent=function(t,e){e.consume()},mxGraphHandler.prototype.mouseDown=function(t,e){if(!e.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&null!=e.getState()&&!mxEvent.isMultiTouchEvent(e.getEvent())){var n=this.getInitialCellForEvent(e);if(this.delayedSelection=this.isDelayedSelection(n,e),this.cell=null,this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(n,e.getEvent()),this.isMoveEnabled()){var i=this.graph.model,r=i.getGeometry(n);this.graph.isCellMovable(n)&&(!i.isEdge(n)||this.graph.getSelectionCount()>1||null!=r.points&&r.points.length>0||null==i.getTerminal(n,!0)||null==i.getTerminal(n,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(e.getEvent())&&this.graph.isCellsCloneable())?this.start(n,e.getX(),e.getY()):this.delayedSelection&&(this.cell=n),this.cellWasClicked=!0,this.consumeMouseEvent(mxEvent.MOUSE_DOWN,e)}}},mxGraphHandler.prototype.getGuideStates=function(){var t=this.graph.getDefaultParent(),e=this.graph.getModel(),n=mxUtils.bind(this,(function(t){return null!=this.graph.view.getState(t)&&e.isVertex(t)&&null!=e.getGeometry(t)&&!e.getGeometry(t).relative}));return this.graph.view.getCellStates(e.filterDescendants(n,t))},mxGraphHandler.prototype.getCells=function(t){return!this.delayedSelection&&this.graph.isCellMovable(t)?[t]:this.graph.getMovableCells(this.graph.getSelectionCells())},mxGraphHandler.prototype.getPreviewBounds=function(t){var e=this.getBoundingBox(t);if(null!=e){if(e.width=Math.max(0,e.width-1),e.height=Math.max(0,e.height-1),e.width<this.minimumSize){var n=this.minimumSize-e.width;e.x-=n/2,e.width=this.minimumSize}else e.x=Math.round(e.x),e.width=Math.ceil(e.width);this.graph.view.translate,this.graph.view.scale;if(e.height<this.minimumSize){var i=this.minimumSize-e.height;e.y-=i/2,e.height=this.minimumSize}else e.y=Math.round(e.y),e.height=Math.ceil(e.height)}return e},mxGraphHandler.prototype.getBoundingBox=function(t){var e=null;if(null!=t&&t.length>0)for(var n=this.graph.getModel(),i=0;i<t.length;i++)if(n.isVertex(t[i])||n.isEdge(t[i])){var r=this.graph.view.getState(t[i]);if(null!=r){var o=r;n.isVertex(t[i])&&null!=r.shape&&null!=r.shape.boundingBox&&(o=r.shape.boundingBox),null==e?e=mxRectangle.fromRectangle(o):e.add(o)}}return e},mxGraphHandler.prototype.createPreviewShape=function(t){var e=new mxRectangleShape(t,null,this.previewColor);return e.isDashed=!0,this.htmlPreview?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.pointerEvents=!1,mxClient.IS_IOS&&(e.getSvgScreenOffset=function(){return 0})),e},mxGraphHandler.prototype.start=function(t,e,n,i){this.cell=t,this.first=mxUtils.convertPoint(this.graph.container,e,n),this.cells=null!=i?i:this.getCells(this.cell),this.bounds=this.graph.getView().getBounds(this.cells),this.pBounds=this.getPreviewBounds(this.cells),this.allCells=new mxDictionary,this.cloning=!1,this.cellCount=0;for(var r=0;r<this.cells.length;r++)this.cellCount+=this.addStates(this.cells[r],this.allCells);if(this.guidesEnabled){this.guide=new mxGuide(this.graph,this.getGuideStates());var o=this.graph.model.getParent(t),s=this.graph.model.getChildCount(o)<2,l=new mxDictionary,a=this.graph.getOpposites(this.graph.getEdges(this.cell),this.cell);for(r=0;r<a.length;r++){var h=this.graph.view.getState(a[r]);null==h||l.get(h)||l.put(h,!0)}this.guide.isStateIgnored=mxUtils.bind(this,(function(t){var e=this.graph.model.getParent(t.cell);return null!=t.cell&&(!this.cloning&&this.isCellMoving(t.cell)||t.cell!=(this.target||o)&&!s&&!l.get(t)&&(null==this.target||this.graph.model.getChildCount(this.target)>=2)&&e!=(this.target||o))}))}},mxGraphHandler.prototype.addStates=function(t,e){var n=this.graph.view.getState(t),i=0;if(null!=n&&null==e.get(t)){e.put(t,n),i++;for(var r=this.graph.model.getChildCount(t),o=0;o<r;o++)i+=this.addStates(this.graph.model.getChildAt(t,o),e)}return i},mxGraphHandler.prototype.isCellMoving=function(t){return null!=this.allCells.get(t)},mxGraphHandler.prototype.useGuidesForEvent=function(t){return null==this.guide||this.guide.isEnabledForEvent(t.getEvent())&&!this.graph.isConstrainedEvent(t.getEvent())},mxGraphHandler.prototype.snap=function(t){var e=this.scaleGrid?this.graph.view.scale:1;return t.x=this.graph.snap(t.x/e)*e,t.y=this.graph.snap(t.y/e)*e,t},mxGraphHandler.prototype.getDelta=function(t){var e=mxUtils.convertPoint(this.graph.container,t.getX(),t.getY());return new mxPoint(e.x-this.first.x-this.graph.panDx,e.y-this.first.y-this.graph.panDy)},mxGraphHandler.prototype.updateHint=function(t){},mxGraphHandler.prototype.removeHint=function(){},mxGraphHandler.prototype.roundLength=function(t){return Math.round(100*t)/100};mxGraphHandler.prototype.isValidDropTarget=function(t,e){return this.graph.model.getParent(this.cell)!=t},mxGraphHandler.prototype.checkPreview=function(){this.livePreviewActive&&this.cloning?(this.resetLivePreview(),this.livePreviewActive=!1):this.maxLivePreview>=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?this.cloning&&this.livePreviewActive||(this.livePreviewActive=!0,this.livePreviewUsed=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds))},mxGraphHandler.prototype.mouseMove=function(t,e){var n=this.graph;if(e.isConsumed()||!n.isMouseDown||null==this.cell||null==this.first||null==this.bounds||this.suspended){if((this.isMoveEnabled()||this.isCloneEnabled())&&this.updateCursor&&!e.isConsumed()&&(null!=e.getState()||null!=e.sourceState)&&!n.isMouseDown){var i=n.getCursorForMouseEvent(e);null==i&&n.isEnabled()&&n.isCellMovable(e.getCell())&&(i=n.getModel().isEdge(e.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=i&&null!=e.sourceState&&e.sourceState.setCursor(i)}}else{if(mxEvent.isMultiTouchEvent(e.getEvent()))return void this.reset();var r=this.getDelta(e),o=n.tolerance;if(null!=this.shape||this.livePreviewActive||Math.abs(r.x)>o||Math.abs(r.y)>o){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3));var s=n.isCloneEvent(e.getEvent())&&n.isCellsCloneable()&&this.isCloneEnabled(),l=n.isGridEnabledEvent(e.getEvent()),a=e.getCell(),h=!0,u=null;this.cloning=s,n.isDropEnabled()&&this.highlightEnabled&&(u=n.getDropTarget(this.cells,e.getEvent(),a,s));var d=n.getView().getState(u),c=!1;if(null!=d&&(s||this.isValidDropTarget(u,e)))this.target!=u&&(this.target=u,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),c=!0;else if(this.target=null,this.connectOnDrop&&null!=a&&1==this.cells.length&&n.getModel().isVertex(a)&&n.isCellConnectable(a)&&(d=n.getView().getState(a),null!=d)){var p=n.getEdgeValidationError(null,this.cell,a),g=null==p?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR;this.setHighlightColor(g),c=!0}null!=d&&c?this.highlight.highlight(d):this.highlight.hide(),null!=this.guide&&this.useGuidesForEvent(e)?(r=this.guide.move(this.bounds,r,l,s),h=!1):r=this.graph.snapDelta(r,this.bounds,!l,!1,!1),null!=this.guide&&h&&this.guide.hide(),n.isConstrainedEvent(e.getEvent())&&(Math.abs(r.x)>Math.abs(r.y)?r.y=0:r.x=0),this.checkPreview(),this.currentDx==r.x&&this.currentDy==r.y||(this.currentDx=r.x,this.currentDy=r.y,this.updatePreview())}this.updateHint(e),this.consumeMouseEvent(mxEvent.MOUSE_MOVE,e),mxEvent.consume(e.getEvent())}},mxGraphHandler.prototype.updatePreview=function(t){this.livePreviewUsed&&!t?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()},mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&null!=this.pBounds&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx),Math.round(this.pBounds.y+this.currentDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())},mxGraphHandler.prototype.updateLivePreview=function(t,e){if(!this.suspended){var n=[];if(null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,(function(i,r){var o=this.graph.view.getState(r.cell);if(o!=r&&(r.destroy(),null!=o?this.allCells.put(r.cell,o):this.allCells.remove(r.cell),r=o),null!=r){var s=r.clone();n.push([r,s]),null!=r.shape&&(null==r.shape.originalPointerEvents&&(r.shape.originalPointerEvents=r.shape.pointerEvents),r.shape.pointerEvents=!1,null!=r.text&&(null==r.text.originalPointerEvents&&(r.text.originalPointerEvents=r.text.pointerEvents),r.text.pointerEvents=!1)),this.graph.model.isVertex(r.cell)&&(r.x+=t,r.y+=e,this.cloning?null!=r.text&&(r.text.updateBoundingBox(),null!=r.text.boundingBox&&(r.text.boundingBox.x+=t,r.text.boundingBox.y+=e),null!=r.text.unrotatedBoundingBox&&(r.text.unrotatedBoundingBox.x+=t,r.text.unrotatedBoundingBox.y+=e)):(r.view.graph.cellRenderer.redraw(r,!0),r.view.invalidate(r.cell),r.invalid=!1,null!=r.control&&null!=r.control.node&&(r.control.node.style.visibility="hidden")))}}))),0==n.length)this.reset();else{for(var i=this.graph.view.scale,r=0;r<n.length;r++){var o=n[r][0];if(this.graph.model.isEdge(o.cell)){var s=this.graph.getCellGeometry(o.cell),l=[];if(null!=s&&null!=s.points)for(var a=0;a<s.points.length;a++)null!=s.points[a]&&l.push(new mxPoint(s.points[a].x+t/i,s.points[a].y+e/i));var h=o.visibleSourceState,u=o.visibleTargetState,d=n[r][1].absolutePoints;if(null!=h&&this.isCellMoving(h.cell))o.view.updateFixedTerminalPoint(o,h,!0,this.graph.getConnectionConstraint(o,h,!0));else{var c=d[0];o.setAbsoluteTerminalPoint(new mxPoint(c.x+t,c.y+e),!0),h=null}if(null!=u&&this.isCellMoving(u.cell))o.view.updateFixedTerminalPoint(o,u,!1,this.graph.getConnectionConstraint(o,u,!1));else{var p=d[d.length-1];o.setAbsoluteTerminalPoint(new mxPoint(p.x+t,p.y+e),!1),u=null}o.view.updatePoints(o,l,h,u),o.view.updateFloatingTerminalPoints(o,h,u),o.view.updateEdgeLabelOffset(o),o.invalid=!1,this.cloning||o.view.graph.cellRenderer.redraw(o,!0)}}this.graph.view.validate(),this.redrawHandles(n),this.resetPreviewStates(n)}}},mxGraphHandler.prototype.redrawHandles=function(t){for(var e=0;e<t.length;e++){var n=this.graph.selectionCellsHandler.getHandler(t[e][0].cell);null!=n&&n.redraw(!0)}},mxGraphHandler.prototype.resetPreviewStates=function(t){for(var e=0;e<t.length;e++)t[e][0].setState(t[e][1])},mxGraphHandler.prototype.suspend=function(){this.suspended||(this.livePreviewUsed&&this.updateLivePreview(0,0),null!=this.shape&&(this.shape.node.style.visibility="hidden"),null!=this.guide&&this.guide.setVisible(!1),this.suspended=!0)},mxGraphHandler.prototype.resume=function(){this.suspended&&(this.suspended=null,this.livePreviewUsed&&(this.livePreviewActive=!0),null!=this.shape&&(this.shape.node.style.visibility="visible"),null!=this.guide&&this.guide.setVisible(!0))},mxGraphHandler.prototype.resetLivePreview=function(){null!=this.allCells&&(this.allCells.visit(mxUtils.bind(this,(function(t,e){null!=e.shape&&null!=e.shape.originalPointerEvents&&(e.shape.pointerEvents=e.shape.originalPointerEvents,e.shape.originalPointerEvents=null,e.shape.bounds=null,null!=e.text&&(e.text.pointerEvents=e.text.originalPointerEvents,e.text.originalPointerEvents=null)),null!=e.control&&null!=e.control.node&&"hidden"==e.control.node.style.visibility&&(e.control.node.style.visibility=""),this.cloning||null!=e.text&&e.text.updateBoundingBox(),e.view.invalidate(e.cell)}))),this.graph.view.validate())},mxGraphHandler.prototype.setHandlesVisibleForCells=function(t,e,n){if(n||this.handlesVisible!=e){this.handlesVisible=e;for(var i=0;i<t.length;i++){var r=this.graph.selectionCellsHandler.getHandler(t[i]);null!=r&&(r.setHandlesVisible(e),e&&r.redraw())}}},mxGraphHandler.prototype.setHighlightColor=function(t){null!=this.highlight&&this.highlight.setHighlightColor(t)},mxGraphHandler.prototype.mouseUp=function(t,e){if(!e.isConsumed())if(this.livePreviewUsed&&this.resetLivePreview(),null==this.cell||null==this.first||null==this.shape&&!this.livePreviewUsed||null==this.currentDx||null==this.currentDy)this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(e);else{var n=this.graph,i=e.getCell();if(this.connectOnDrop&&null==this.target&&null!=i&&n.getModel().isVertex(i)&&n.isCellConnectable(i)&&n.isEdgeValid(null,this.cell,i))n.connectionHandler.connect(this.cell,i,e.getEvent());else{var r=n.isCloneEvent(e.getEvent())&&n.isCellsCloneable()&&this.isCloneEnabled(),o=n.getView().scale,s=this.roundLength(this.currentDx/o),l=this.roundLength(this.currentDy/o),a=this.target;n.isSplitEnabled()&&n.isSplitTarget(a,this.cells,e.getEvent())?n.splitEdge(a,this.cells,null,s,l,e.getGraphX(),e.getGraphY()):this.moveCells(this.cells,s,l,r,this.target,e.getEvent())}}this.cellWasClicked&&this.consumeMouseEvent(mxEvent.MOUSE_UP,e),this.reset()},mxGraphHandler.prototype.reset=function(){this.livePreviewUsed&&(this.resetLivePreview(),this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!0)),this.destroyShapes(),this.removeHint(),this.delayedSelection=!1,this.livePreviewActive=null,this.livePreviewUsed=null,this.cellWasClicked=!1,this.suspended=null,this.currentDx=null,this.currentDy=null,this.cellCount=null,this.cloning=!1,this.allCells=null,this.pBounds=null,this.guides=null,this.target=null,this.first=null,this.cells=null,this.cell=null},mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(t,e,n){if(this.graph.getModel().isVertex(t)){var i=this.graph.getView().getState(t);if(null!=i){var r=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),o=mxUtils.toRadians(mxUtils.getValue(i.style,mxConstants.STYLE_ROTATION)||0);if(0!=o){var s=Math.cos(-o),l=Math.sin(-o),a=new mxPoint(i.getCenterX(),i.getCenterY());r=mxUtils.getRotatedPoint(r,s,l,a)}return!mxUtils.contains(i,r.x,r.y)}}return!1},mxGraphHandler.prototype.moveCells=function(t,e,n,i,r,o){i&&(t=this.graph.getCloneableCells(t));var s=this.graph.getModel().getParent(this.cell);null==r&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(s,t,o)&&(r=this.graph.getDefaultParent()),i=i&&!this.graph.isCellLocked(r||this.graph.getDefaultParent()),this.graph.getModel().beginUpdate();try{var l=[];if(!i&&null!=r&&this.removeEmptyParents){for(var a=new mxDictionary,h=0;h<t.length;h++)a.put(t[h],!0);for(h=0;h<t.length;h++){var u=this.graph.model.getParent(t[h]);null==u||a.get(u)||(a.put(u,!0),l.push(u))}}t=this.graph.moveCells(t,e,n,i,r,o);var d=[];for(h=0;h<l.length;h++)this.shouldRemoveParent(l[h])&&d.push(l[h]);this.graph.removeCells(d,!1)}finally{this.graph.getModel().endUpdate()}i&&this.graph.setSelectionCells(t),this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(t[0])},mxGraphHandler.prototype.shouldRemoveParent=function(t){var e=this.graph.view.getState(t);return null!=e&&(this.graph.model.isEdge(e.cell)||this.graph.model.isVertex(e.cell))&&this.graph.isCellDeletable(e.cell)&&0==this.graph.model.getChildCount(e.cell)&&this.graph.isTransparentState(e)},mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.guide&&(this.guide.destroy(),this.guide=null),null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)},mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null),null!=this.refreshHandler&&(this.graph.getModel().removeListener(this.refreshHandler),this.graph.removeListener(this.refreshHandler),this.refreshHandler=null),mxEvent.removeListener(document,"keydown",this.keyHandler),mxEvent.removeListener(document,"keyup",this.keyHandler),this.destroyShapes(),this.removeHint()},__mxOutput.mxGraphHandler="undefined"!==typeof mxGraphHandler?mxGraphHandler:void 0,mxPanningHandler.prototype=new mxEventSource,mxPanningHandler.prototype.constructor=mxPanningHandler,mxPanningHandler.prototype.graph=null,mxPanningHandler.prototype.useLeftButtonForPanning=!1,mxPanningHandler.prototype.usePopupTrigger=!0,mxPanningHandler.prototype.ignoreCell=!1,mxPanningHandler.prototype.previewEnabled=!0,mxPanningHandler.prototype.useGrid=!1,mxPanningHandler.prototype.panningEnabled=!0,mxPanningHandler.prototype.pinchEnabled=!0,mxPanningHandler.prototype.maxScale=8,mxPanningHandler.prototype.minScale=.01,mxPanningHandler.prototype.dx=null,mxPanningHandler.prototype.dy=null,mxPanningHandler.prototype.startX=0,mxPanningHandler.prototype.startY=0,mxPanningHandler.prototype.isActive=function(){return this.active||null!=this.initialScale},mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled},mxPanningHandler.prototype.setPanningEnabled=function(t){this.panningEnabled=t},mxPanningHandler.prototype.isPinchEnabled=function(){return this.pinchEnabled},mxPanningHandler.prototype.setPinchEnabled=function(t){this.pinchEnabled=t},mxPanningHandler.prototype.isPanningTrigger=function(t){var e=t.getEvent();return this.useLeftButtonForPanning&&null==t.getState()&&mxEvent.isLeftMouseButton(e)||mxEvent.isControlDown(e)&&mxEvent.isShiftDown(e)||this.usePopupTrigger&&mxEvent.isPopupTrigger(e)},mxPanningHandler.prototype.isForcePanningEvent=function(t){return this.ignoreCell||mxEvent.isMultiTouchEvent(t.getEvent())},mxPanningHandler.prototype.mouseDown=function(t,e){this.mouseDownEvent=e,!e.isConsumed()&&this.isPanningEnabled()&&!this.active&&this.isPanningTrigger(e)&&(this.start(e),this.consumePanningTrigger(e))},mxPanningHandler.prototype.start=function(t){this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop,this.startX=t.getX(),this.startY=t.getY(),this.dx=null,this.dy=null,this.panningTrigger=!0},mxPanningHandler.prototype.consumePanningTrigger=function(t){t.consume()},mxPanningHandler.prototype.mouseMove=function(t,e){if(this.dx=e.getX()-this.startX,this.dy=e.getY()-this.startY,this.active)this.previewEnabled&&(this.useGrid&&(this.dx=this.graph.snap(this.dx),this.dy=this.graph.snap(this.dy)),this.graph.panGraph(this.dx+this.dx0,this.dy+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",e));else if(this.panningTrigger){var n=this.active;this.active=Math.abs(this.dx)>this.graph.tolerance||Math.abs(this.dy)>this.graph.tolerance,!n&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",e))}(this.active||this.panningTrigger)&&e.consume()},mxPanningHandler.prototype.mouseUp=function(t,e){if(this.active){if(null!=this.dx&&null!=this.dy){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){var n=this.graph.getView().scale,i=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(i.x+this.dx/n,i.y+this.dy/n)}e.consume()}this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",e))}this.reset()},mxPanningHandler.prototype.zoomGraph=function(t){var e=Math.round(this.initialScale*t.scale*100)/100;null!=this.minScale&&(e=Math.max(this.minScale,e)),null!=this.maxScale&&(e=Math.min(this.maxScale,e)),this.graph.view.scale!=e&&(this.graph.zoomTo(e),mxEvent.consume(t))},mxPanningHandler.prototype.reset=function(){this.panningTrigger=!1,this.mouseDownEvent=null,this.active=!1,this.dx=null,this.dy=null},mxPanningHandler.prototype.panGraph=function(t,e){this.graph.getView().setTranslate(t,e)},mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),this.graph.removeListener(this.forcePanningHandler),this.graph.removeListener(this.gestureHandler),mxEvent.removeListener(document,"mouseup",this.mouseUpListener)},__mxOutput.mxPanningHandler="undefined"!==typeof mxPanningHandler?mxPanningHandler:void 0,mxPopupMenuHandler.prototype=new mxPopupMenu,mxPopupMenuHandler.prototype.constructor=mxPopupMenuHandler,mxPopupMenuHandler.prototype.graph=null,mxPopupMenuHandler.prototype.selectOnPopup=!0,mxPopupMenuHandler.prototype.clearSelectionOnBackground=!0,mxPopupMenuHandler.prototype.triggerX=null,mxPopupMenuHandler.prototype.triggerY=null,mxPopupMenuHandler.prototype.screenX=null,mxPopupMenuHandler.prototype.screenY=null,mxPopupMenuHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this),mxEvent.addGestureListeners(this.div,mxUtils.bind(this,(function(t){this.graph.tooltipHandler.hide()})))},mxPopupMenuHandler.prototype.isSelectOnPopup=function(t){return this.selectOnPopup},mxPopupMenuHandler.prototype.mouseDown=function(t,e){this.isEnabled()&&!mxEvent.isMultiTouchEvent(e.getEvent())&&(this.hideMenu(),this.triggerX=e.getGraphX(),this.triggerY=e.getGraphY(),this.screenX=mxEvent.getMainEvent(e.getEvent()).screenX,this.screenY=mxEvent.getMainEvent(e.getEvent()).screenY,this.popupTrigger=this.isPopupTrigger(e),this.inTolerance=!0)},mxPopupMenuHandler.prototype.mouseMove=function(t,e){this.inTolerance&&null!=this.screenX&&null!=this.screenY&&(Math.abs(mxEvent.getMainEvent(e.getEvent()).screenX-this.screenX)>this.graph.tolerance||Math.abs(mxEvent.getMainEvent(e.getEvent()).screenY-this.screenY)>this.graph.tolerance)&&(this.inTolerance=!1)},mxPopupMenuHandler.prototype.mouseUp=function(t,e){if(this.popupTrigger&&this.inTolerance&&null!=this.triggerX&&null!=this.triggerY){var n=this.getCellForPopupEvent(e);this.graph.isEnabled()&&this.isSelectOnPopup(e)&&null!=n&&!this.graph.isCellSelected(n)?this.graph.setSelectionCell(n):this.clearSelectionOnBackground&&null==n&&this.graph.clearSelection(),this.graph.tooltipHandler.hide();var i=mxUtils.getScrollOrigin();this.popup(e.getX()+i.x+1,e.getY()+i.y+1,n,e.getEvent()),e.consume()}this.popupTrigger=!1,this.inTolerance=!1},mxPopupMenuHandler.prototype.getCellForPopupEvent=function(t){return t.getCell()},mxPopupMenuHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),this.graph.removeListener(this.gestureHandler),mxPopupMenu.prototype.destroy.apply(this)},__mxOutput.mxPopupMenuHandler="undefined"!==typeof mxPopupMenuHandler?mxPopupMenuHandler:void 0,mxUtils.extend(mxCellMarker,mxEventSource),mxCellMarker.prototype.graph=null,mxCellMarker.prototype.enabled=!0,mxCellMarker.prototype.hotspot=mxConstants.DEFAULT_HOTSPOT,mxCellMarker.prototype.hotspotEnabled=!1,mxCellMarker.prototype.validColor=null,mxCellMarker.prototype.invalidColor=null,mxCellMarker.prototype.currentColor=null,mxCellMarker.prototype.validState=null,mxCellMarker.prototype.markedState=null,mxCellMarker.prototype.setEnabled=function(t){this.enabled=t},mxCellMarker.prototype.isEnabled=function(){return this.enabled},mxCellMarker.prototype.setHotspot=function(t){this.hotspot=t},mxCellMarker.prototype.getHotspot=function(){return this.hotspot},mxCellMarker.prototype.setHotspotEnabled=function(t){this.hotspotEnabled=t},mxCellMarker.prototype.isHotspotEnabled=function(){return this.hotspotEnabled},mxCellMarker.prototype.hasValidState=function(){return null!=this.validState},mxCellMarker.prototype.getValidState=function(){return this.validState},mxCellMarker.prototype.getMarkedState=function(){return this.markedState},mxCellMarker.prototype.reset=function(){this.validState=null,null!=this.markedState&&(this.markedState=null,this.unmark())},mxCellMarker.prototype.process=function(t){var e=null;return this.isEnabled()&&(e=this.getState(t),this.setCurrentState(e,t)),e},mxCellMarker.prototype.setCurrentState=function(t,e,n){var i=null!=t&&this.isValidState(t);n=null!=n?n:this.getMarkerColor(e.getEvent(),t,i),this.validState=i?t:null,t==this.markedState&&n==this.currentColor||(this.currentColor=n,null!=t&&null!=this.currentColor?(this.markedState=t,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))},mxCellMarker.prototype.markCell=function(t,e){var n=this.graph.getView().getState(t);null!=n&&(this.currentColor=null!=e?e:this.validColor,this.markedState=n,this.mark())},mxCellMarker.prototype.mark=function(){this.highlight.setHighlightColor(this.currentColor),this.highlight.highlight(this.markedState),this.fireEvent(new mxEventObject(mxEvent.MARK,"state",this.markedState))},mxCellMarker.prototype.unmark=function(){this.mark()},mxCellMarker.prototype.isValidState=function(t){return!0},mxCellMarker.prototype.getMarkerColor=function(t,e,n){return n?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(t){var e=this.graph.getView(),n=this.getCell(t),i=this.getStateToMark(e.getState(n));return null!=i&&this.intersects(i,t)?i:null},mxCellMarker.prototype.getCell=function(t){return t.getCell()},mxCellMarker.prototype.getStateToMark=function(t){return t},mxCellMarker.prototype.intersects=function(t,e){return!this.hotspotEnabled||mxUtils.intersectsHotspot(t,e.getGraphX(),e.getGraphY(),this.hotspot,mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE)},mxCellMarker.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),this.highlight.destroy()},__mxOutput.mxCellMarker="undefined"!==typeof mxCellMarker?mxCellMarker:void 0,mxUtils.extend(mxSelectionCellsHandler,mxEventSource),mxSelectionCellsHandler.prototype.graph=null,mxSelectionCellsHandler.prototype.enabled=!0,mxSelectionCellsHandler.prototype.refreshHandler=null,mxSelectionCellsHandler.prototype.maxHandlers=100,mxSelectionCellsHandler.prototype.handlers=null,mxSelectionCellsHandler.prototype.isEnabled=function(){return this.enabled},mxSelectionCellsHandler.prototype.setEnabled=function(t){this.enabled=t},mxSelectionCellsHandler.prototype.getHandler=function(t){return this.handlers.get(t)},mxSelectionCellsHandler.prototype.isHandled=function(t){return null!=this.getHandler(t)},mxSelectionCellsHandler.prototype.reset=function(){this.handlers.visit((function(t,e){e.reset.apply(e)}))},mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){return this.graph.getSelectionCells()},mxSelectionCellsHandler.prototype.refresh=function(){var t=this.handlers;this.handlers=new mxDictionary;for(var e=mxUtils.sortCells(this.getHandledSelectionCells(),!1),n=0;n<e.length;n++){var i=this.graph.view.getState(e[n]);if(null!=i){var r=t.remove(e[n]);null!=r&&(r.state!=i?(r.destroy(),r=null):this.isHandlerActive(r)||(null!=r.refresh&&r.refresh(),r.redraw())),null!=r&&this.handlers.put(e[n],r)}}t.visit(mxUtils.bind(this,(function(t,e){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",e.state)),e.destroy()})));for(n=0;n<e.length;n++){i=this.graph.view.getState(e[n]);if(null!=i){r=this.handlers.get(e[n]);null==r?(r=this.graph.createHandler(i),this.fireEvent(new mxEventObject(mxEvent.ADD,"state",i)),this.handlers.put(e[n],r)):r.updateParentHighlight()}}},mxSelectionCellsHandler.prototype.isHandlerActive=function(t){return null!=t.index},mxSelectionCellsHandler.prototype.updateHandler=function(t){var e=this.handlers.remove(t.cell);if(null!=e){var n=e.index,i=e.startX,r=e.startY;e.destroy(),e=this.graph.createHandler(t),null!=e&&(this.handlers.put(t.cell,e),null!=n&&null!=i&&null!=r&&e.start(i,r,n))}},mxSelectionCellsHandler.prototype.mouseDown=function(t,e){if(this.graph.isEnabled()&&this.isEnabled()){var n=[t,e];this.handlers.visit((function(t,e){e.mouseDown.apply(e,n)}))}},mxSelectionCellsHandler.prototype.mouseMove=function(t,e){if(this.graph.isEnabled()&&this.isEnabled()){var n=[t,e];this.handlers.visit((function(t,e){e.mouseMove.apply(e,n)}))}},mxSelectionCellsHandler.prototype.mouseUp=function(t,e){if(this.graph.isEnabled()&&this.isEnabled()){var n=[t,e];this.handlers.visit((function(t,e){e.mouseUp.apply(e,n)}))}},mxSelectionCellsHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.refreshHandler&&(this.graph.getSelectionModel().removeListener(this.refreshHandler),this.graph.getModel().removeListener(this.refreshHandler),this.graph.getView().removeListener(this.refreshHandler),this.refreshHandler=null)},__mxOutput.mxSelectionCellsHandler="undefined"!==typeof mxSelectionCellsHandler?mxSelectionCellsHandler:void 0,mxUtils.extend(mxConnectionHandler,mxEventSource),mxConnectionHandler.prototype.graph=null,mxConnectionHandler.prototype.factoryMethod=!0,mxConnectionHandler.prototype.moveIconFront=!1,mxConnectionHandler.prototype.moveIconBack=!1,mxConnectionHandler.prototype.connectImage=null,mxConnectionHandler.prototype.targetConnectImage=!1,mxConnectionHandler.prototype.enabled=!0,mxConnectionHandler.prototype.select=!0,mxConnectionHandler.prototype.createTarget=!1,mxConnectionHandler.prototype.marker=null,mxConnectionHandler.prototype.constraintHandler=null,mxConnectionHandler.prototype.error=null,mxConnectionHandler.prototype.waypointsEnabled=!1,mxConnectionHandler.prototype.ignoreMouseDown=!1,mxConnectionHandler.prototype.first=null,mxConnectionHandler.prototype.connectIconOffset=new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET),mxConnectionHandler.prototype.edgeState=null,mxConnectionHandler.prototype.changeHandler=null,mxConnectionHandler.prototype.drillHandler=null,mxConnectionHandler.prototype.mouseDownCounter=0,mxConnectionHandler.prototype.movePreviewAway=mxClient.IS_VML,mxConnectionHandler.prototype.outlineConnect=!1,mxConnectionHandler.prototype.livePreview=!1,mxConnectionHandler.prototype.cursor=null,mxConnectionHandler.prototype.insertBeforeSource=!1,mxConnectionHandler.prototype.isEnabled=function(){return this.enabled},mxConnectionHandler.prototype.setEnabled=function(t){this.enabled=t},mxConnectionHandler.prototype.isInsertBefore=function(t,e,n,i,r){return this.insertBeforeSource&&e!=n},mxConnectionHandler.prototype.isCreateTarget=function(t){return this.createTarget},mxConnectionHandler.prototype.setCreateTarget=function(t){this.createTarget=t},mxConnectionHandler.prototype.createShape=function(){var t=this.livePreview&&null!=this.edgeState?this.graph.cellRenderer.createShape(this.edgeState):new mxPolyline([],mxConstants.INVALID_COLOR);return t.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,t.scale=this.graph.view.scale,t.pointerEvents=!1,t.isDashed=!0,t.init(this.graph.getView().getOverlayPane()),mxEvent.redirectMouseEvents(t.node,this.graph,null),t},mxConnectionHandler.prototype.init=function(){this.graph.addMouseListener(this),this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.changeHandler=mxUtils.bind(this,(function(t){null!=this.iconState&&(this.iconState=this.graph.getView().getState(this.iconState.cell)),null!=this.iconState?(this.redrawIcons(this.icons,this.iconState),this.constraintHandler.reset()):null!=this.previous&&null==this.graph.view.getState(this.previous.cell)&&this.reset()})),this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE,this.changeHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.changeHandler),this.drillHandler=mxUtils.bind(this,(function(t){this.reset()})),this.graph.addListener(mxEvent.START_EDITING,this.drillHandler),this.graph.getView().addListener(mxEvent.DOWN,this.drillHandler),this.graph.getView().addListener(mxEvent.UP,this.drillHandler)},mxConnectionHandler.prototype.isConnectableCell=function(t){return!0},mxConnectionHandler.prototype.createMarker=function(){var t=new mxCellMarker(this.graph);return t.hotspotEnabled=!0,t.getCell=mxUtils.bind(this,(function(e){var n=mxCellMarker.prototype.getCell.apply(t,arguments);if(this.error=null,null==n&&null!=this.currentPoint&&(n=this.graph.getCellAt(this.currentPoint.x,this.currentPoint.y)),null!=n&&!this.graph.isCellConnectable(n)){var i=this.graph.getModel().getParent(n);this.graph.getModel().isVertex(i)&&this.graph.isCellConnectable(i)&&(n=i)}return(this.graph.isSwimlane(n)&&null!=this.currentPoint&&this.graph.hitsSwimlaneContent(n,this.currentPoint.x,this.currentPoint.y)||!this.isConnectableCell(n))&&(n=null),null!=n?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,n),null!=this.error&&0==this.error.length&&(n=null,this.isCreateTarget(e.getEvent())&&(this.error=null))):this.isValidSource(n,e)||(n=null):!this.isConnecting()||this.isCreateTarget(e.getEvent())||this.graph.allowDanglingEdges||(this.error=""),n})),t.isValidState=mxUtils.bind(this,(function(e){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(t,arguments)})),t.getMarkerColor=mxUtils.bind(this,(function(e,n,i){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(t,arguments):null})),t.intersects=mxUtils.bind(this,(function(e,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(t,arguments)})),t},mxConnectionHandler.prototype.start=function(t,e,n,i){this.previous=t,this.first=new mxPoint(e,n),this.edgeState=null!=i?i:this.createEdgeState(null),this.marker.currentColor=this.marker.validColor,this.marker.markedState=t,this.marker.mark(),this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous))},mxConnectionHandler.prototype.isConnecting=function(){return null!=this.first&&null!=this.shape},mxConnectionHandler.prototype.isValidSource=function(t,e){return this.graph.isValidSource(t)},mxConnectionHandler.prototype.isValidTarget=function(t){return!0},mxConnectionHandler.prototype.validateConnection=function(t,e){return this.isValidTarget(e)?this.graph.getEdgeValidationError(null,t,e):""},mxConnectionHandler.prototype.getConnectImage=function(t){return this.connectImage},mxConnectionHandler.prototype.isMoveIconToFrontForState=function(t){return null!=t.text&&t.text.node.parentNode==this.graph.container||this.moveIconFront},mxConnectionHandler.prototype.createIcons=function(t){var e=this.getConnectImage(t);if(null!=e&&null!=t){this.iconState=t;var n=[],i=new mxRectangle(0,0,e.width,e.height),r=new mxImageShape(i,e.src,null,null,0);r.preserveImageAspect=!1,this.isMoveIconToFrontForState(t)?(r.dialect=mxConstants.DIALECT_STRICTHTML,r.init(this.graph.container)):(r.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,r.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=r.node.previousSibling&&r.node.parentNode.insertBefore(r.node,r.node.parentNode.firstChild)),r.node.style.cursor=mxConstants.CURSOR_CONNECT;var o=mxUtils.bind(this,(function(){return null!=this.currentState?this.currentState:t})),s=mxUtils.bind(this,(function(t){mxEvent.isConsumed(t)||(this.icon=r,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t,o())))}));return mxEvent.redirectMouseEvents(r.node,this.graph,o,s),n.push(r),this.redrawIcons(n,this.iconState),n}return null},mxConnectionHandler.prototype.redrawIcons=function(t,e){if(null!=t&&null!=t[0]&&null!=e){var n=this.getIconPosition(t[0],e);t[0].bounds.x=n.x,t[0].bounds.y=n.y,t[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(t,e){var n=this.graph.getView().scale,i=e.getCenterX(),r=e.getCenterY();if(this.graph.isSwimlane(e.cell)){var o=this.graph.getStartSize(e.cell);i=0!=o.width?e.x+o.width*n/2:i,r=0!=o.height?e.y+o.height*n/2:r;var s=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0);if(0!=s){var l=Math.cos(s),a=Math.sin(s),h=new mxPoint(e.getCenterX(),e.getCenterY()),u=mxUtils.getRotatedPoint(new mxPoint(i,r),l,a,h);i=u.x,r=u.y}}return new mxPoint(i-t.bounds.width/2,r-t.bounds.height/2)},mxConnectionHandler.prototype.destroyIcons=function(){if(null!=this.icons){for(var t=0;t<this.icons.length;t++)this.icons[t].destroy();this.icons=null,this.icon=null,this.selectedIcon=null,this.iconState=null}},mxConnectionHandler.prototype.isStartEvent=function(t){return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint||null!=this.previous&&null==this.error&&(null==this.icons||null!=this.icons&&null!=this.icon)},mxConnectionHandler.prototype.mouseDown=function(t,e){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!e.isConsumed()&&!this.isConnecting()&&this.isStartEvent(e)){if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(this.sourceConstraint=this.constraintHandler.currentConstraint,this.previous=this.constraintHandler.currentFocus,this.first=this.constraintHandler.currentPoint.clone()):this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape(),null!=this.edgeState&&this.shape.apply(this.edgeState)),null==this.previous&&null!=this.edgeState){var n=this.graph.getPointForEvent(e.getEvent());this.edgeState.cell.geometry.setTerminalPoint(n,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),e.consume()}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.isImmediateConnectSource=function(t){return!this.graph.isCellMovable(t.cell)},mxConnectionHandler.prototype.createEdgeState=function(t){return null},mxConnectionHandler.prototype.isOutlineConnectEvent=function(t){var e=mxUtils.getOffset(this.graph.container),n=t.getEvent(),i=mxEvent.getClientX(n),r=mxEvent.getClientY(n),o=document.documentElement,s=(window.pageXOffset||o.scrollLeft)-(o.clientLeft||0),l=(window.pageYOffset||o.scrollTop)-(o.clientTop||0),a=this.currentPoint.x-this.graph.container.scrollLeft+e.x-s,h=this.currentPoint.y-this.graph.container.scrollTop+e.y-l;return this.outlineConnect&&!mxEvent.isShiftDown(t.getEvent())&&(t.isSource(this.marker.highlight.shape)||mxEvent.isAltDown(t.getEvent())&&null!=t.getState()||this.marker.highlight.isHighlightAt(i,r)||(a!=i||h!=r)&&null==t.getState()&&this.marker.highlight.isHighlightAt(a,h))},mxConnectionHandler.prototype.updateCurrentState=function(t,e){if(this.constraintHandler.update(t,null==this.first,!1,null==this.first||t.isSource(this.marker.highlight.shape)?null:e),null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint)null!=this.marker.highlight&&null!=this.marker.highlight.state&&this.marker.highlight.state.cell==this.constraintHandler.currentFocus.cell?"transparent"!=this.marker.highlight.shape.stroke&&(this.marker.highlight.shape.stroke="transparent",this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,this.constraintHandler.currentFocus.cell),null==this.error&&(this.currentState=this.constraintHandler.currentFocus),(null!=this.error||null!=this.currentState&&!this.isCellEnabled(this.currentState.cell))&&this.constraintHandler.reset());else{this.graph.isIgnoreTerminalEvent(t.getEvent())?(this.marker.reset(),this.currentState=null):(this.marker.process(t),this.currentState=this.marker.getValidState()),null==this.currentState||this.isCellEnabled(this.currentState.cell)||(this.constraintHandler.reset(),this.marker.reset(),this.currentState=null);var n=this.isOutlineConnectEvent(t);if(null!=this.currentState&&n){t.isSource(this.marker.highlight.shape)&&(e=new mxPoint(t.getGraphX(),t.getGraphY()));var i=this.graph.getOutlineConstraint(e,this.currentState,t);this.constraintHandler.setFocus(t,this.currentState,!1),this.constraintHandler.currentConstraint=i,this.constraintHandler.currentPoint=e}if(this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape){var r=this.graph.view.scale;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=mxConstants.OUTLINE_HIGHLIGHT_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/r/r,this.marker.highlight.repaint()):this.marker.hasValidState()&&(this.graph.isCellConnectable(t.getCell())&&this.marker.getValidState()!=t.getState()?(this.marker.highlight.shape.stroke="transparent",this.currentState=null):this.marker.highlight.shape.stroke=mxConstants.DEFAULT_VALID_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/r/r,this.marker.highlight.repaint())}}},mxConnectionHandler.prototype.isCellEnabled=function(t){return!0},mxConnectionHandler.prototype.convertWaypoint=function(t){var e=this.graph.getView().getScale(),n=this.graph.getView().getTranslate();t.x=t.x/e-n.x,t.y=t.y/e-n.y},mxConnectionHandler.prototype.snapToPreview=function(t,e){if(!mxEvent.isAltDown(t.getEvent())&&null!=this.previous){var n=this.graph.gridSize*this.graph.view.scale/2,i=null!=this.sourceConstraint?this.first:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());Math.abs(i.x-t.getGraphX())<n&&(e.x=i.x),Math.abs(i.y-t.getGraphY())<n&&(e.y=i.y)}},mxConnectionHandler.prototype.mouseMove=function(t,e){if(e.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{this.isEnabled()||null==this.currentState||(this.destroyIcons(),this.currentState=null);var n=this.graph.getView(),i=n.scale,r=n.translate,o=new mxPoint(e.getGraphX(),e.getGraphY());if(this.error=null,this.graph.isGridEnabledEvent(e.getEvent())&&(o=new mxPoint((this.graph.snap(o.x/i-r.x)+r.x)*i,(this.graph.snap(o.y/i-r.y)+r.y)*i)),this.snapToPreview(e,o),this.currentPoint=o,(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&(null!=this.shape||null==this.first||Math.abs(e.getGraphX()-this.first.x)>this.graph.tolerance||Math.abs(e.getGraphY()-this.first.y)>this.graph.tolerance)&&this.updateCurrentState(e,o),null!=this.first){var s=null,l=o;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(s=this.constraintHandler.currentConstraint,l=this.constraintHandler.currentPoint.clone()):null!=this.previous&&!this.graph.isIgnoreTerminalEvent(e.getEvent())&&mxEvent.isShiftDown(e.getEvent())&&(Math.abs(this.previous.getCenterX()-o.x)<Math.abs(this.previous.getCenterY()-o.y)?o.x=this.previous.getCenterX():o.y=this.previous.getCenterY());var a=this.first;if(null!=this.selectedIcon){var h=this.selectedIcon.bounds.width,u=this.selectedIcon.bounds.height;if(null!=this.currentState&&this.targetConnectImage){var d=this.getIconPosition(this.selectedIcon,this.currentState);this.selectedIcon.bounds.x=d.x,this.selectedIcon.bounds.y=d.y}else{var c=new mxRectangle(e.getGraphX()+this.connectIconOffset.x,e.getGraphY()+this.connectIconOffset.y,h,u);this.selectedIcon.bounds=c}this.selectedIcon.redraw()}if(null!=this.edgeState)this.updateEdgeState(l,s),l=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],a=this.edgeState.absolutePoints[0];else{if(null!=this.currentState&&null==this.constraintHandler.currentConstraint){var p=this.getTargetPerimeterPoint(this.currentState,e);null!=p&&(l=p)}if(null==this.sourceConstraint&&null!=this.previous){var g=null!=this.waypoints&&this.waypoints.length>0?this.waypoints[0]:l;p=this.getSourcePerimeterPoint(this.previous,g,e);null!=p&&(a=p)}}if(null==this.currentState&&this.movePreviewAway){p=a;if(null!=this.edgeState&&this.edgeState.absolutePoints.length>=2){var m=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2];null!=m&&(p=m)}var x=l.x-p.x,y=l.y-p.y,f=Math.sqrt(x*x+y*y);if(0==f)return;this.originalPoint=l.clone(),l.x-=4*x/f,l.y-=4*y/f}else this.originalPoint=null;if(null==this.shape){x=Math.abs(e.getGraphX()-this.first.x),y=Math.abs(e.getGraphY()-this.first.y);(x>this.graph.tolerance||y>this.graph.tolerance)&&(this.shape=this.createShape(),null!=this.edgeState&&this.shape.apply(this.edgeState),this.updateCurrentState(e,o))}if(null!=this.shape){if(null!=this.edgeState)this.shape.points=this.edgeState.absolutePoints;else{var A=[a];null!=this.waypoints&&(A=A.concat(this.waypoints)),A.push(l),this.shape.points=A}this.drawPreview()}null!=this.cursor&&(this.graph.container.style.cursor=this.cursor),mxEvent.consume(e.getEvent()),e.consume()}else this.isEnabled()&&this.graph.isEnabled()?this.previous!=this.currentState&&null==this.edgeState?(this.destroyIcons(),null!=this.currentState&&null==this.error&&null==this.constraintHandler.currentConstraint&&(this.icons=this.createIcons(this.currentState),null==this.icons&&(this.currentState.setCursor(mxConstants.CURSOR_CONNECT),e.consume())),this.previous=this.currentState):this.previous!=this.currentState||null==this.currentState||null!=this.icons||this.graph.isMouseDown||e.consume():this.constraintHandler.reset();if(!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(var C=!1,v=e.getSource(),E=0;E<this.icons.length&&!C;E++)C=v==this.icons[E].node||v.parentNode==this.icons[E].node;C||this.updateIcons(this.currentState,this.icons,e)}}},mxConnectionHandler.prototype.updateEdgeState=function(t,e){null!=this.sourceConstraint&&null!=this.sourceConstraint.point&&(this.edgeState.style[mxConstants.STYLE_EXIT_X]=this.sourceConstraint.point.x,this.edgeState.style[mxConstants.STYLE_EXIT_Y]=this.sourceConstraint.point.y),null!=e&&null!=e.point?(this.edgeState.style[mxConstants.STYLE_ENTRY_X]=e.point.x,this.edgeState.style[mxConstants.STYLE_ENTRY_Y]=e.point.y):(delete this.edgeState.style[mxConstants.STYLE_ENTRY_X],delete this.edgeState.style[mxConstants.STYLE_ENTRY_Y]),this.edgeState.absolutePoints=[null,null!=this.currentState?null:t],this.graph.view.updateFixedTerminalPoint(this.edgeState,this.previous,!0,this.sourceConstraint),null!=this.currentState&&(null==e&&(e=this.graph.getConnectionConstraint(this.edgeState,this.previous,!1)),this.edgeState.setAbsoluteTerminalPoint(null,!1),this.graph.view.updateFixedTerminalPoint(this.edgeState,this.currentState,!1,e));var n=null;if(null!=this.waypoints){n=[];for(var i=0;i<this.waypoints.length;i++){var r=this.waypoints[i].clone();this.convertWaypoint(r),n[i]=r}}this.graph.view.updatePoints(this.edgeState,n,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState)},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(t,e){var n=null,i=t.view,r=i.getPerimeterFunction(t);if(null!=r){var o=null!=this.waypoints&&this.waypoints.length>0?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY()),s=r(i.getPerimeterBounds(t),this.edgeState,o,!1);null!=s&&(n=s)}else n=new mxPoint(t.getCenterX(),t.getCenterY());return n},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(t,e,n){var i=null,r=t.view,o=r.getPerimeterFunction(t),s=new mxPoint(t.getCenterX(),t.getCenterY());if(null!=o){var l=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION,0),a=-l*(Math.PI/180);0!=l&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(a),Math.sin(a),s));var h=o(r.getPerimeterBounds(t),t,e,!1);null!=h&&(0!=l&&(h=mxUtils.getRotatedPoint(new mxPoint(h.x,h.y),Math.cos(-a),Math.sin(-a),s)),i=h)}else i=s;return i},mxConnectionHandler.prototype.updateIcons=function(t,e,n){},mxConnectionHandler.prototype.isStopEvent=function(t){return null!=t.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(t){var e=mxUtils.convertPoint(this.graph.container,t.getX(),t.getY()),n=Math.abs(e.x-this.first.x),i=Math.abs(e.y-this.first.y),r=null!=this.waypoints||this.mouseDownCounter>1&&(n>this.graph.tolerance||i>this.graph.tolerance);if(r){null==this.waypoints&&(this.waypoints=[]);var o=this.graph.view.scale;e=new mxPoint(this.graph.snap(t.getGraphX()/o)*o,this.graph.snap(t.getGraphY()/o)*o);this.waypoints.push(e)}},mxConnectionHandler.prototype.checkConstraints=function(t,e){return null==t||null==e||null==t.point||null==e.point||!t.point.equals(e.point)||t.dx!=e.dx||t.dy!=e.dy||t.perimeter!=e.perimeter},mxConnectionHandler.prototype.mouseUp=function(t,e){if(!e.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(e))return this.addWaypointForEvent(e),void e.consume();var n=this.sourceConstraint,i=this.constraintHandler.currentConstraint,r=null!=this.previous?this.previous.cell:null,o=null;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(o=this.constraintHandler.currentFocus.cell),null==o&&null!=this.currentState&&(o=this.currentState.cell),null!=this.error||null!=r&&null!=o&&r==o&&!this.checkConstraints(n,i)?(null!=this.previous&&null!=this.marker.validState&&this.previous.cell==this.marker.validState.cell&&this.graph.selectCellForEvent(this.marker.source,e.getEvent()),null!=this.error&&this.error.length>0&&this.graph.validationAlert(this.error)):this.connect(r,o,e.getEvent(),e.getCell()),this.destroyIcons(),e.consume()}null!=this.first&&this.reset()},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.originalPoint=null,this.currentPoint=null,this.edgeState=null,this.previous=null,this.error=null,this.sourceConstraint=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(t){this.shape.strokewidth=this.getEdgeWidth(t),this.shape.stroke=this.getEdgeColor(t)},mxConnectionHandler.prototype.getEdgeColor=function(t){return t?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR},mxConnectionHandler.prototype.getEdgeWidth=function(t){return t?3:1},mxConnectionHandler.prototype.connect=function(t,e,n,i){if(null!=e||this.isCreateTarget(n)||this.graph.allowDanglingEdges){var r=this.graph.getModel(),o=!1,s=null;r.beginUpdate();try{if(null!=t&&null==e&&!this.graph.isIgnoreTerminalEvent(n)&&this.isCreateTarget(n)&&(e=this.createTargetVertex(n,t),null!=e)){if(i=this.graph.getDropTarget([e],n,i),o=!0,null!=i&&this.graph.getModel().isEdge(i))i=this.graph.getDefaultParent();else{var l=this.graph.getView().getState(i);if(null!=l){var a=r.getGeometry(e);a.x-=l.origin.x,a.y-=l.origin.y}}this.graph.addCell(e,i)}var h=this.graph.getDefaultParent();null!=t&&null!=e&&r.getParent(t)==r.getParent(e)&&r.getParent(r.getParent(t))!=r.getRoot()&&(h=r.getParent(t),null!=t.geometry&&t.geometry.relative&&null!=e.geometry&&e.geometry.relative&&(h=r.getParent(h)));var u=null,d=null;if(null!=this.edgeState&&(u=this.edgeState.cell.value,d=this.edgeState.cell.style),s=this.insertEdge(h,null,u,t,e,d),null!=s){this.graph.setConnectionConstraint(s,t,!0,this.sourceConstraint),this.graph.setConnectionConstraint(s,e,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&r.setGeometry(s,this.edgeState.cell.geometry);h=r.getParent(t);if(this.isInsertBefore(s,t,e,n,i)){a=t;while(null!=a.parent&&null!=a.geometry&&a.geometry.relative&&a.parent!=s.parent)a=this.graph.model.getParent(a);null!=a&&null!=a.parent&&a.parent==s.parent&&r.add(h,s,a.parent.getIndex(a))}var c=r.getGeometry(s);if(null==c&&(c=new mxGeometry,c.relative=!0,r.setGeometry(s,c)),null!=this.waypoints&&this.waypoints.length>0){var p=this.graph.view.scale,g=this.graph.view.translate;c.points=[];for(var m=0;m<this.waypoints.length;m++){var x=this.waypoints[m];c.points.push(new mxPoint(x.x/p-g.x,x.y/p-g.y))}}if(null==e){var y=this.graph.view.translate;p=this.graph.view.scale,x=null!=this.originalPoint?new mxPoint(this.originalPoint.x/p-y.x,this.originalPoint.y/p-y.y):new mxPoint(this.currentPoint.x/p-y.x,this.currentPoint.y/p-y.y);x.x-=this.graph.panDx/this.graph.view.scale,x.y-=this.graph.panDy/this.graph.view.scale,c.setTerminalPoint(x,!1)}this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",s,"terminal",e,"event",n,"target",i,"terminalInserted",o))}}catch(f){mxLog.show(),mxLog.debug(f.message)}finally{r.endUpdate()}this.select&&this.selectCells(s,o?e:null)}},mxConnectionHandler.prototype.selectCells=function(t,e){this.graph.setSelectionCell(t)},mxConnectionHandler.prototype.insertEdge=function(t,e,n,i,r,o){if(null==this.factoryMethod)return this.graph.insertEdge(t,e,n,i,r,o);var s=this.createEdge(n,i,r,o);return s=this.graph.addEdge(s,t,i,r),s},mxConnectionHandler.prototype.createTargetVertex=function(t,e){var n=this.graph.getCellGeometry(e);while(null!=n&&n.relative)e=this.graph.getModel().getParent(e),n=this.graph.getCellGeometry(e);var i=this.graph.cloneCell(e);n=this.graph.getModel().getGeometry(i);if(null!=n){var r=this.graph.view.translate,o=this.graph.view.scale,s=new mxPoint(this.currentPoint.x/o-r.x,this.currentPoint.y/o-r.y);n.x=Math.round(s.x-n.width/2-this.graph.panDx/o),n.y=Math.round(s.y-n.height/2-this.graph.panDy/o);var l=this.getAlignmentTolerance();if(l>0){var a=this.graph.view.getState(e);if(null!=a){var h=a.x/o-r.x,u=a.y/o-r.y;Math.abs(h-n.x)<=l&&(n.x=Math.round(h)),Math.abs(u-n.y)<=l&&(n.y=Math.round(u))}}}return i},mxConnectionHandler.prototype.getAlignmentTolerance=function(t){return this.graph.isGridEnabled()?this.graph.gridSize/2:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(t,e,n,i){var r=null;if(null!=this.factoryMethod&&(r=this.factoryMethod(e,n,i)),null==r){r=new mxCell(t||""),r.setEdge(!0),r.setStyle(i);var o=new mxGeometry;o.relative=!0,r.setGeometry(o)}return r},mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null),null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null),null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null)},__mxOutput.mxConnectionHandler="undefined"!==typeof mxConnectionHandler?mxConnectionHandler:void 0,mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5),mxConstraintHandler.prototype.graph=null,mxConstraintHandler.prototype.enabled=!0,mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR,mxConstraintHandler.prototype.isEnabled=function(){return this.enabled},mxConstraintHandler.prototype.setEnabled=function(t){this.enabled=t},mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var t=0;t<this.focusIcons.length;t++)this.focusIcons[t].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),this.currentConstraint=null,this.currentFocusArea=null,this.currentPoint=null,this.currentFocus=null,this.focusPoints=null},mxConstraintHandler.prototype.getTolerance=function(t){return this.graph.getTolerance()},mxConstraintHandler.prototype.getImageForConstraint=function(t,e,n){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(t,e){return!1},mxConstraintHandler.prototype.isStateIgnored=function(t,e){return!1},mxConstraintHandler.prototype.destroyIcons=function(){if(null!=this.focusIcons){for(var t=0;t<this.focusIcons.length;t++)this.focusIcons[t].destroy();this.focusIcons=null,this.focusPoints=null}},mxConstraintHandler.prototype.destroyFocusHighlight=function(){null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)},mxConstraintHandler.prototype.isKeepFocusEvent=function(t){return mxEvent.isShiftDown(t.getEvent())},mxConstraintHandler.prototype.getCellForEvent=function(t,e){var n=t.getCell();if(null!=n||null==e||t.getGraphX()==e.x&&t.getGraphY()==e.y||(n=this.graph.getCellAt(e.x,e.y)),null!=n&&!this.graph.isCellConnectable(n)){var i=this.graph.getModel().getParent(n);this.graph.getModel().isVertex(i)&&this.graph.isCellConnectable(i)&&(n=i)}return this.graph.isCellLocked(n)?null:n},mxConstraintHandler.prototype.update=function(t,e,n,i){if(this.isEnabled()&&!this.isEventIgnored(t)){null==this.mouseleaveHandler&&null!=this.graph.container&&(this.mouseleaveHandler=mxUtils.bind(this,(function(){this.reset()})),mxEvent.addListener(this.graph.container,"mouseleave",this.resetHandler));var r=this.getTolerance(t),o=null!=i?i.x:t.getGraphX(),s=null!=i?i.y:t.getGraphY(),l=new mxRectangle(o-r,s-r,2*r,2*r),a=new mxRectangle(t.getGraphX()-r,t.getGraphY()-r,2*r,2*r),h=this.graph.view.getState(this.getCellForEvent(t,i));this.isKeepFocusEvent(t)||null!=this.currentFocusArea&&null!=this.currentFocus&&null==h&&this.graph.getModel().isVertex(this.currentFocus.cell)&&mxUtils.intersects(this.currentFocusArea,a)||h==this.currentFocus||(this.currentFocusArea=null,this.currentFocus=null,this.setFocus(t,h,e)),this.currentConstraint=null,this.currentPoint=null;var u=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==h||this.currentFocus==h))for(var d=a.getCenterX(),c=a.getCenterY(),p=0;p<this.focusIcons.length;p++){var g=d-this.focusIcons[p].bounds.getCenterX(),m=c-this.focusIcons[p].bounds.getCenterY(),x=g*g+m*m;if((this.intersects(this.focusIcons[p],a,e,n)||null!=i&&this.intersects(this.focusIcons[p],l,e,n))&&(null==u||x<u)){this.currentConstraint=this.constraints[p],this.currentPoint=this.focusPoints[p],u=x;x=this.focusIcons[p].bounds.clone();if(x.grow(mxConstants.HIGHLIGHT_SIZE+1),x.width-=1,x.height-=1,null==this.focusHighlight){var y=this.createHighlightShape();y.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,y.pointerEvents=!1,y.init(this.graph.getView().getOverlayPane()),this.focusHighlight=y;var f=mxUtils.bind(this,(function(){return null!=this.currentFocus?this.currentFocus:h}));mxEvent.redirectMouseEvents(y.node,this.graph,f)}this.focusHighlight.bounds=x,this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentConstraint=null,this.currentFocus=null,this.currentPoint=null},mxConstraintHandler.prototype.redraw=function(){if(null!=this.currentFocus&&null!=this.constraints&&null!=this.focusIcons){var t=this.graph.view.getState(this.currentFocus.cell);this.currentFocus=t,this.currentFocusArea=new mxRectangle(t.x,t.y,t.width,t.height);for(var e=0;e<this.constraints.length;e++){var n=this.graph.getConnectionPoint(t,this.constraints[e]),i=this.getImageForConstraint(t,this.constraints[e],n),r=new mxRectangle(Math.round(n.x-i.width/2),Math.round(n.y-i.height/2),i.width,i.height);this.focusIcons[e].bounds=r,this.focusIcons[e].redraw(),this.currentFocusArea.add(this.focusIcons[e].bounds),this.focusPoints[e]=n}}},mxConstraintHandler.prototype.setFocus=function(t,e,n){if(this.constraints=null!=e&&!this.isStateIgnored(e,n)&&this.graph.isCellConnectable(e.cell)?this.isEnabled()&&this.graph.getAllConnectionConstraints(e,n)||[]:null,null!=this.constraints){if(this.currentFocus=e,this.currentFocusArea=new mxRectangle(e.x,e.y,e.width,e.height),null!=this.focusIcons){for(var i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusIcons=null,this.focusPoints=null}this.focusPoints=[],this.focusIcons=[];for(i=0;i<this.constraints.length;i++){var r=this.graph.getConnectionPoint(e,this.constraints[i]),o=this.getImageForConstraint(e,this.constraints[i],r),s=o.src,l=new mxRectangle(Math.round(r.x-o.width/2),Math.round(r.y-o.height/2),o.width,o.height),a=new mxImageShape(l,s);a.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,a.preserveImageAspect=!1,a.init(this.graph.getView().getDecoratorPane()),(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(a.node,"dragstart",(function(t){return mxEvent.consume(t),!1})),null!=a.node.previousSibling&&a.node.parentNode.insertBefore(a.node,a.node.parentNode.firstChild);var h=mxUtils.bind(this,(function(){return null!=this.currentFocus?this.currentFocus:e}));a.redraw(),mxEvent.redirectMouseEvents(a.node,this.graph,h),this.currentFocusArea.add(a.bounds),this.focusIcons.push(a),this.focusPoints.push(r)}this.currentFocusArea.grow(this.getTolerance(t))}else this.destroyIcons(),this.destroyFocusHighlight()},mxConstraintHandler.prototype.createHighlightShape=function(){var t=new mxRectangleShape(null,this.highlightColor,this.highlightColor,mxConstants.HIGHLIGHT_STROKEWIDTH);return t.opacity=mxConstants.HIGHLIGHT_OPACITY,t},mxConstraintHandler.prototype.intersects=function(t,e,n,i){return mxUtils.intersects(t.bounds,e)},mxConstraintHandler.prototype.destroy=function(){this.reset(),null!=this.resetHandler&&(this.graph.model.removeListener(this.resetHandler),this.graph.view.removeListener(this.resetHandler),this.graph.removeListener(this.resetHandler),this.resetHandler=null),null!=this.mouseleaveHandler&&null!=this.graph.container&&(mxEvent.removeListener(this.graph.container,"mouseleave",this.mouseleaveHandler),this.mouseleaveHandler=null)},__mxOutput.mxConstraintHandler="undefined"!==typeof mxConstraintHandler?mxConstraintHandler:void 0,mxRubberband.prototype.defaultOpacity=20,mxRubberband.prototype.enabled=!0,mxRubberband.prototype.div=null,mxRubberband.prototype.sharedDiv=null,mxRubberband.prototype.currentX=0,mxRubberband.prototype.currentY=0,mxRubberband.prototype.fadeOut=!1,mxRubberband.prototype.isEnabled=function(){return this.enabled},mxRubberband.prototype.setEnabled=function(t){this.enabled=t},mxRubberband.prototype.isForceRubberbandEvent=function(t){return mxEvent.isAltDown(t.getEvent())},mxRubberband.prototype.mouseDown=function(t,e){if(!e.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&null==e.getState()&&!mxEvent.isMultiTouchEvent(e.getEvent())){var n=mxUtils.getOffset(this.graph.container),i=mxUtils.getScrollOrigin(this.graph.container);i.x-=n.x,i.y-=n.y,this.start(e.getX()+i.x,e.getY()+i.y),e.consume(!1)}},mxRubberband.prototype.start=function(t,e){this.first=new mxPoint(t,e);var n=this.graph.container;function i(t){var e=new mxMouseEvent(t),i=mxUtils.convertPoint(n,e.getX(),e.getY());return e.graphX=i.x,e.graphY=i.y,e}this.dragHandler=mxUtils.bind(this,(function(t){this.mouseMove(this.graph,i(t))})),this.dropHandler=mxUtils.bind(this,(function(t){this.mouseUp(this.graph,i(t))})),mxClient.IS_FF&&mxEvent.addGestureListeners(document,null,this.dragHandler,this.dropHandler)},mxRubberband.prototype.mouseMove=function(t,e){if(!e.isConsumed()&&null!=this.first){var n=mxUtils.getScrollOrigin(this.graph.container),i=mxUtils.getOffset(this.graph.container);n.x-=i.x,n.y-=i.y;var r=e.getX()+n.x,o=e.getY()+n.y,s=this.first.x-r,l=this.first.y-o,a=this.graph.tolerance;(null!=this.div||Math.abs(s)>a||Math.abs(l)>a)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(r,o),e.consume())}},mxRubberband.prototype.createShape=function(){null==this.sharedDiv&&(this.sharedDiv=document.createElement("div"),this.sharedDiv.className="mxRubberband",mxUtils.setOpacity(this.sharedDiv,this.defaultOpacity)),this.graph.container.appendChild(this.sharedDiv);var t=this.sharedDiv;return mxClient.IS_SVG&&(!mxClient.IS_IE||document.documentMode>=10)&&this.fadeOut&&(this.sharedDiv=null),t},mxRubberband.prototype.isActive=function(t,e){return null!=this.div&&"none"!=this.div.style.display},mxRubberband.prototype.mouseUp=function(t,e){var n=this.isActive();this.reset(),n&&(this.execute(e.getEvent()),e.consume())},mxRubberband.prototype.execute=function(t){var e=new mxRectangle(this.x,this.y,this.width,this.height);this.graph.selectRegion(e,t)},mxRubberband.prototype.reset=function(){if(null!=this.div)if(mxClient.IS_SVG&&(!mxClient.IS_IE||document.documentMode>=10)&&this.fadeOut){var t=this.div;mxUtils.setPrefixedStyle(t.style,"transition","all 0.2s linear"),t.style.pointerEvents="none",t.style.opacity=0,window.setTimeout((function(){t.parentNode.removeChild(t)}),200)}else this.div.parentNode.removeChild(this.div);mxEvent.removeGestureListeners(document,null,this.dragHandler,this.dropHandler),this.dragHandler=null,this.dropHandler=null,this.currentX=0,this.currentY=0,this.first=null,this.div=null},mxRubberband.prototype.update=function(t,e){this.currentX=t,this.currentY=e,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var t=this.currentX-this.graph.panDx,e=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,t),this.y=Math.min(this.first.y,e),this.width=Math.max(this.first.x,t)-this.x,this.height=Math.max(this.first.y,e)-this.y;var n=mxClient.IS_VML?this.graph.panDx:0,i=mxClient.IS_VML?this.graph.panDy:0;this.div.style.left=this.x+n+"px",this.div.style.top=this.y+i+"px",this.div.style.width=Math.max(1,this.width)+"px",this.div.style.height=Math.max(1,this.height)+"px"}},mxRubberband.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),this.graph.removeListener(this.forceRubberbandHandler),this.graph.removeListener(this.panHandler),this.reset(),null!=this.sharedDiv&&(this.sharedDiv=null))},__mxOutput.mxRubberband="undefined"!==typeof mxRubberband?mxRubberband:void 0,mxHandle.prototype.cursor="default",mxHandle.prototype.image=null,mxHandle.prototype.ignoreGrid=!1,mxHandle.prototype.getPosition=function(t){},mxHandle.prototype.setPosition=function(t,e,n){},mxHandle.prototype.execute=function(t){},mxHandle.prototype.copyStyle=function(t){this.graph.setCellStyles(t,this.state.style[t],[this.state.cell])},mxHandle.prototype.processEvent=function(t){var e=this.graph.view.scale,n=this.graph.view.translate,i=new mxPoint(t.getGraphX()/e-n.x,t.getGraphY()/e-n.y);null!=this.shape&&null!=this.shape.bounds&&(i.x-=this.shape.bounds.width/e/4,i.y-=this.shape.bounds.height/e/4);var r=-mxUtils.toRadians(this.getRotation()),o=-mxUtils.toRadians(this.getTotalRotation())-r;i=this.flipPoint(this.rotatePoint(this.snapPoint(this.rotatePoint(i,r),this.ignoreGrid||!this.graph.isGridEnabledEvent(t.getEvent())),o)),this.setPosition(this.state.getPaintBounds(),i,t),this.redraw()},mxHandle.prototype.positionChanged=function(){null!=this.state.text&&this.state.text.apply(this.state),null!=this.state.shape&&this.state.shape.apply(this.state),this.graph.cellRenderer.redraw(this.state,!0)},mxHandle.prototype.getRotation=function(){return null!=this.state.shape?this.state.shape.getRotation():0},mxHandle.prototype.getTotalRotation=function(){return null!=this.state.shape?this.state.shape.getShapeRotation():0},mxHandle.prototype.init=function(){var t=this.isHtmlRequired();null!=this.image?(this.shape=new mxImageShape(new mxRectangle(0,0,this.image.width,this.image.height),this.image.src),this.shape.preserveImageAspect=!1):null==this.shape&&(this.shape=this.createShape(t)),this.initShape(t)},mxHandle.prototype.createShape=function(t){var e=new mxRectangle(0,0,mxConstants.HANDLE_SIZE,mxConstants.HANDLE_SIZE);return new mxRectangleShape(e,mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxHandle.prototype.initShape=function(t){t&&this.shape.isHtmlAllowed()?(this.shape.dialect=mxConstants.DIALECT_STRICTHTML,this.shape.init(this.graph.container)):(this.shape.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,null!=this.cursor&&this.shape.init(this.graph.getView().getOverlayPane())),mxEvent.redirectMouseEvents(this.shape.node,this.graph,this.state),this.shape.node.style.cursor=this.cursor},mxHandle.prototype.redraw=function(){if(null!=this.shape&&null!=this.state.shape){var t=this.getPosition(this.state.getPaintBounds());if(null!=t){var e=mxUtils.toRadians(this.getTotalRotation());t=this.rotatePoint(this.flipPoint(t),e);var n=this.graph.view.scale,i=this.graph.view.translate;this.shape.bounds.x=Math.floor((t.x+i.x)*n-this.shape.bounds.width/2),this.shape.bounds.y=Math.floor((t.y+i.y)*n-this.shape.bounds.height/2),this.shape.redraw()}}},mxHandle.prototype.isHtmlRequired=function(){return null!=this.state.text&&this.state.text.node.parentNode==this.graph.container},mxHandle.prototype.rotatePoint=function(t,e){var n=this.state.getCellBounds(),i=new mxPoint(n.getCenterX(),n.getCenterY()),r=Math.cos(e),o=Math.sin(e);return mxUtils.getRotatedPoint(t,r,o,i)},mxHandle.prototype.flipPoint=function(t){if(null!=this.state.shape){var e=this.state.getCellBounds();this.state.shape.flipH&&(t.x=2*e.x+e.width-t.x),this.state.shape.flipV&&(t.y=2*e.y+e.height-t.y)}return t},mxHandle.prototype.snapPoint=function(t,e){return e||(t.x=this.graph.snap(t.x),t.y=this.graph.snap(t.y)),t},mxHandle.prototype.setVisible=function(t){null!=this.shape&&null!=this.shape.node&&(this.shape.node.style.display=t?"":"none")},mxHandle.prototype.reset=function(){this.setVisible(!0),this.state.style=this.graph.getCellStyle(this.state.cell),this.positionChanged()},mxHandle.prototype.destroy=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null)},__mxOutput.mxHandle="undefined"!==typeof mxHandle?mxHandle:void 0,mxVertexHandler.prototype.graph=null,mxVertexHandler.prototype.state=null,mxVertexHandler.prototype.singleSizer=!1,mxVertexHandler.prototype.index=null,mxVertexHandler.prototype.allowHandleBoundsCheck=!0,mxVertexHandler.prototype.handleImage=null,mxVertexHandler.prototype.handlesVisible=!0,mxVertexHandler.prototype.tolerance=0,mxVertexHandler.prototype.rotationEnabled=!1,mxVertexHandler.prototype.parentHighlightEnabled=!1,mxVertexHandler.prototype.rotationRaster=!0,mxVertexHandler.prototype.rotationCursor="crosshair",mxVertexHandler.prototype.livePreview=!1,mxVertexHandler.prototype.movePreviewToFront=!1,mxVertexHandler.prototype.manageSizers=!1,mxVertexHandler.prototype.constrainGroupByChildren=!1,mxVertexHandler.prototype.rotationHandleVSpacing=-16,mxVertexHandler.prototype.horizontalOffset=0,mxVertexHandler.prototype.verticalOffset=0,mxVertexHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.selectionBorder=this.createSelectionShape(this.bounds),this.selectionBorder.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.pointerEvents=!1,this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.selectionBorder.init(this.graph.getView().getOverlayPane()),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.graph,this.state),this.graph.isCellMovable(this.state.cell)&&this.selectionBorder.setCursor(mxConstants.CURSOR_MOVABLE_VERTEX),mxGraphHandler.prototype.maxCells<=0||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells){var t=this.graph.isCellResizable(this.state.cell);if(this.sizers=[],t||this.graph.isLabelMovable(this.state.cell)&&this.state.width>=2&&this.state.height>=2){var e=0;t&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",e++)),this.sizers.push(this.createSizer("n-resize",e++)),this.sizers.push(this.createSizer("ne-resize",e++)),this.sizers.push(this.createSizer("w-resize",e++)),this.sizers.push(this.createSizer("e-resize",e++)),this.sizers.push(this.createSizer("sw-resize",e++)),this.sizers.push(this.createSizer("s-resize",e++))),this.sizers.push(this.createSizer("se-resize",e++)));var n=this.graph.model.getGeometry(this.state.cell);null==n||n.relative||this.graph.isSwimlane(this.state.cell)||!this.graph.isLabelMovable(this.state.cell)||(this.labelShape=this.createSizer(mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}else this.graph.isCellMovable(this.state.cell)&&!this.graph.isCellResizable(this.state.cell)&&this.state.width<2&&this.state.height<2&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,mxEvent.LABEL_HANDLE,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.isRotationHandleVisible()&&(this.rotationShape=this.createSizer(this.rotationCursor,mxEvent.ROTATION_HANDLE,mxConstants.HANDLE_SIZE+3,mxConstants.HANDLE_FILLCOLOR),this.sizers.push(this.rotationShape)),this.customHandles=this.createCustomHandles(),this.redraw(),this.constrainGroupByChildren&&this.updateMinBounds()},mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(mxGraphHandler.prototype.maxCells<=0||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)},mxVertexHandler.prototype.isConstrainedEvent=function(t){return mxEvent.isShiftDown(t.getEvent())||"fixed"==this.state.style[mxConstants.STYLE_ASPECT]},mxVertexHandler.prototype.isCenteredEvent=function(t,e){return!1},mxVertexHandler.prototype.createCustomHandles=function(){return null},mxVertexHandler.prototype.updateMinBounds=function(){var t=this.graph.getChildCells(this.state.cell);if(t.length>0&&(this.minBounds=this.graph.view.getBounds(t),null!=this.minBounds)){var e=this.state.view.scale,n=this.state.view.translate;this.minBounds.x-=this.state.x,this.minBounds.y-=this.state.y,this.minBounds.x/=e,this.minBounds.y/=e,this.minBounds.width/=e,this.minBounds.height/=e,this.x0=this.state.x/e-n.x,this.y0=this.state.y/e-n.y}},mxVertexHandler.prototype.getSelectionBounds=function(t){return new mxRectangle(Math.round(t.x),Math.round(t.y),Math.round(t.width),Math.round(t.height))},mxVertexHandler.prototype.createParentHighlightShape=function(t){return this.createSelectionShape(t)},mxVertexHandler.prototype.createSelectionShape=function(t){var e=new mxRectangleShape(mxRectangle.fromRectangle(t),null,this.getSelectionColor());return e.strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxVertexHandler.prototype.getSelectionColor=function(){return mxConstants.VERTEX_SELECTION_COLOR},mxVertexHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.VERTEX_SELECTION_STROKEWIDTH},mxVertexHandler.prototype.isSelectionDashed=function(){return mxConstants.VERTEX_SELECTION_DASHED},mxVertexHandler.prototype.createSizer=function(t,e,n,i){n=n||mxConstants.HANDLE_SIZE;var r=new mxRectangle(0,0,n,n),o=this.createSizerShape(r,e,i);return o.isHtmlAllowed()&&null!=this.state.text&&this.state.text.node.parentNode==this.graph.container?(o.bounds.height-=1,o.bounds.width-=1,o.dialect=mxConstants.DIALECT_STRICTHTML,o.init(this.graph.container)):(o.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,o.init(this.graph.getView().getOverlayPane())),mxEvent.redirectMouseEvents(o.node,this.graph,this.state),this.graph.isEnabled()&&o.setCursor(t),this.isSizerVisible(e)||(o.visible=!1),o},mxVertexHandler.prototype.isSizerVisible=function(t){return!0},mxVertexHandler.prototype.createSizerShape=function(t,e,n){if(null!=this.handleImage){t=new mxRectangle(t.x,t.y,this.handleImage.width,this.handleImage.height);var i=new mxImageShape(t,this.handleImage.src);return i.preserveImageAspect=!1,i}return e==mxEvent.ROTATION_HANDLE?new mxEllipse(t,n||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(t,n||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(t,e,n){null!=t&&(t.bounds.x=Math.floor(e-t.bounds.width/2),t.bounds.y=Math.floor(n-t.bounds.height/2),null!=t.node&&"none"!=t.node.style.display&&t.redraw())},mxVertexHandler.prototype.getHandleForEvent=function(t){var e=mxEvent.isMouseEvent(t.getEvent())?1:this.tolerance,n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||e>0)?new mxRectangle(t.getGraphX()-e,t.getGraphY()-e,2*e,2*e):null,i=mxUtils.bind(this,(function(e){var i=null!=e&&e.constructor!=mxImageShape&&this.allowHandleBoundsCheck?e.strokewidth+e.svgStrokeTolerance:null,r=null!=i?new mxRectangle(t.getGraphX()-Math.floor(i/2),t.getGraphY()-Math.floor(i/2),i,i):n;return null!=e&&(t.isSource(e)||null!=r&&mxUtils.intersects(e.bounds,r)&&"none"!=e.node.style.display&&"hidden"!=e.node.style.visibility)}));if(i(this.rotationShape))return mxEvent.ROTATION_HANDLE;if(i(this.labelShape))return mxEvent.LABEL_HANDLE;if(null!=this.sizers)for(var r=0;r<this.sizers.length;r++)if(i(this.sizers[r]))return r;if(null!=this.customHandles&&this.isCustomHandleEvent(t))for(r=this.customHandles.length-1;r>=0;r--)if(i(this.customHandles[r].shape))return mxEvent.CUSTOM_HANDLE-r;return null},mxVertexHandler.prototype.isCustomHandleEvent=function(t){return!0},mxVertexHandler.prototype.mouseDown=function(t,e){if(!e.isConsumed()&&this.graph.isEnabled()){var n=this.getHandleForEvent(e);null!=n&&(this.start(e.getGraphX(),e.getGraphY(),n),e.consume())}},mxVertexHandler.prototype.isLivePreviewBorder=function(){return null!=this.state.shape&&null==this.state.shape.fill&&null==this.state.shape.stroke},mxVertexHandler.prototype.start=function(t,e,n){if(null!=this.selectionBorder)if(this.livePreviewActive=this.livePreview&&0==this.graph.model.getChildCount(this.state.cell),this.inTolerance=!0,this.childOffsetX=0,this.childOffsetY=0,this.index=n,this.startX=t,this.startY=e,this.index<=mxEvent.CUSTOM_HANDLE&&this.isGhostPreview())this.ghostPreview=this.createGhostPreview();else{var i=this.state.view.graph.model,r=i.getParent(this.state.cell);if(this.state.view.currentRoot!=r&&(i.isVertex(r)||i.isEdge(r))&&(this.parentState=this.state.view.graph.view.getState(r)),this.selectionBorder.node.style.display=n==mxEvent.ROTATION_HANDLE?"inline":"none",this.livePreviewActive&&!this.isLivePreviewBorder()||(this.preview=this.createSelectionShape(this.bounds),mxClient.IS_SVG&&0!=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")||null==this.state.text||this.state.text.node.parentNode!=this.graph.container?(this.preview.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.preview.init(this.graph.view.getOverlayPane())):(this.preview.dialect=mxConstants.DIALECT_STRICTHTML,this.preview.init(this.graph.container))),n==mxEvent.ROTATION_HANDLE){var o=this.getRotationHandlePosition(),s=o.x-this.state.getCenterX(),l=o.y-this.state.getCenterY();this.startAngle=0!=s?180*Math.atan(l/s)/Math.PI+90:0,this.startDist=Math.sqrt(s*s+l*l)}if(this.livePreviewActive){this.hideSizers(),n==mxEvent.ROTATION_HANDLE?this.rotationShape.node.style.display="":n==mxEvent.LABEL_HANDLE?this.labelShape.node.style.display="":null!=this.sizers&&null!=this.sizers[n]?this.sizers[n].node.style.display="":n<=mxEvent.CUSTOM_HANDLE&&null!=this.customHandles&&this.customHandles[mxEvent.CUSTOM_HANDLE-n].setVisible(!0);var a=this.graph.getEdges(this.state.cell);this.edgeHandlers=[];for(var h=0;h<a.length;h++){var u=this.graph.selectionCellsHandler.getHandler(a[h]);null!=u&&this.edgeHandlers.push(u)}}}},mxVertexHandler.prototype.createGhostPreview=function(){var t=this.graph.cellRenderer.createShape(this.state);return t.init(this.graph.view.getOverlayPane()),t.scale=this.state.view.scale,t.bounds=this.bounds,t.outline=!0,t},mxVertexHandler.prototype.setHandlesVisible=function(t){if(this.handlesVisible=t,null!=this.sizers)for(var e=0;e<this.sizers.length;e++)this.sizers[e].node.style.display=t?"":"none";if(null!=this.customHandles)for(e=0;e<this.customHandles.length;e++)this.customHandles[e].setVisible(t)},mxVertexHandler.prototype.hideSizers=function(){this.setHandlesVisible(!1)},mxVertexHandler.prototype.checkTolerance=function(t){this.inTolerance&&null!=this.startX&&null!=this.startY&&(mxEvent.isMouseEvent(t.getEvent())||Math.abs(t.getGraphX()-this.startX)>this.graph.tolerance||Math.abs(t.getGraphY()-this.startY)>this.graph.tolerance)&&(this.inTolerance=!1)},mxVertexHandler.prototype.updateHint=function(t){},mxVertexHandler.prototype.removeHint=function(){},mxVertexHandler.prototype.roundAngle=function(t){return Math.round(10*t)/10},mxVertexHandler.prototype.roundLength=function(t){return Math.round(100*t)/100},mxVertexHandler.prototype.mouseMove=function(t,e){e.isConsumed()||null==this.index?this.graph.isMouseDown||null==this.getHandleForEvent(e)||e.consume(!1):(this.checkTolerance(e),this.inTolerance||(this.index<=mxEvent.CUSTOM_HANDLE?null!=this.customHandles&&(this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].processEvent(e),this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].active=!0,null!=this.ghostPreview?(this.ghostPreview.apply(this.state),this.ghostPreview.strokewidth=this.getSelectionStrokeWidth()/this.ghostPreview.scale/this.ghostPreview.scale,this.ghostPreview.isDashed=this.isSelectionDashed(),this.ghostPreview.stroke=this.getSelectionColor(),this.ghostPreview.redraw(),null!=this.selectionBounds&&(this.selectionBorder.node.style.display="none")):(this.movePreviewToFront&&this.moveToFront(),this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].positionChanged())):this.index==mxEvent.LABEL_HANDLE?this.moveLabel(e):(this.index==mxEvent.ROTATION_HANDLE?this.rotateVertex(e):this.resizeVertex(e),this.updateHint(e))),e.consume())},mxVertexHandler.prototype.isGhostPreview=function(){return this.state.view.graph.model.getChildCount(this.state.cell)>0},mxVertexHandler.prototype.moveLabel=function(t){var e=new mxPoint(t.getGraphX(),t.getGraphY()),n=this.graph.view.translate,i=this.graph.view.scale;this.graph.isGridEnabledEvent(t.getEvent())&&(e.x=(this.graph.snap(e.x/i-n.x)+n.x)*i,e.y=(this.graph.snap(e.y/i-n.y)+n.y)*i);var r=null!=this.rotationShape?this.sizers.length-2:this.sizers.length-1;this.moveSizerTo(this.sizers[r],e.x,e.y)},mxVertexHandler.prototype.rotateVertex=function(t){var e=new mxPoint(t.getGraphX(),t.getGraphY()),n=this.state.x+this.state.width/2-e.x,i=this.state.y+this.state.height/2-e.y;if(this.currentAlpha=0!=n?180*Math.atan(i/n)/Math.PI+90:i<0?180:0,n>0&&(this.currentAlpha-=180),this.currentAlpha-=this.startAngle,this.rotationRaster&&this.graph.isGridEnabledEvent(t.getEvent())){n=e.x-this.state.getCenterX(),i=e.y-this.state.getCenterY();var r=Math.sqrt(n*n+i*i);r-this.startDist<2?raster=15:r-this.startDist<25?raster=5:raster=1,this.currentAlpha=Math.round(this.currentAlpha/raster)*raster}else this.currentAlpha=this.roundAngle(this.currentAlpha);this.selectionBorder.rotation=this.currentAlpha,this.selectionBorder.redraw(),this.livePreviewActive&&this.redrawHandles()},mxVertexHandler.prototype.resizeVertex=function(t){var e=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),n=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),i=new mxPoint(t.getGraphX(),t.getGraphY()),r=this.graph.view.translate,o=this.graph.view.scale,s=Math.cos(-n),l=Math.sin(-n),a=i.x-this.startX,h=i.y-this.startY,u=s*a-l*h,d=l*a+s*h;a=u,h=d;var c=this.graph.getCellGeometry(this.state.cell);if(this.unscaledBounds=this.union(c,a/o,h/o,this.index,this.graph.isGridEnabledEvent(t.getEvent()),1,new mxPoint(0,0),this.isConstrainedEvent(t),this.isCenteredEvent(this.state,t)),!c.relative){var p=this.graph.getMaximumGraphBounds();if(null!=p&&null!=this.parentState&&(p=mxRectangle.fromRectangle(p),p.x-=(this.parentState.x-r.x*o)/o,p.y-=(this.parentState.y-r.y*o)/o),this.graph.isConstrainChild(this.state.cell)){var g=this.graph.getCellContainmentArea(this.state.cell);if(null!=g){var m=this.graph.getOverlap(this.state.cell);m>0&&(g=mxRectangle.fromRectangle(g),g.x-=g.width*m,g.y-=g.height*m,g.width+=2*g.width*m,g.height+=2*g.height*m),null==p?p=g:(p=mxRectangle.fromRectangle(p),p.intersect(g))}}null!=p&&(this.unscaledBounds.x<p.x&&(this.unscaledBounds.width-=p.x-this.unscaledBounds.x,this.unscaledBounds.x=p.x),this.unscaledBounds.y<p.y&&(this.unscaledBounds.height-=p.y-this.unscaledBounds.y,this.unscaledBounds.y=p.y),this.unscaledBounds.x+this.unscaledBounds.width>p.x+p.width&&(this.unscaledBounds.width-=this.unscaledBounds.x+this.unscaledBounds.width-p.x-p.width),this.unscaledBounds.y+this.unscaledBounds.height>p.y+p.height&&(this.unscaledBounds.height-=this.unscaledBounds.y+this.unscaledBounds.height-p.y-p.height))}var x=this.bounds;this.bounds=new mxRectangle((null!=this.parentState?this.parentState.x:r.x*o)+this.unscaledBounds.x*o,(null!=this.parentState?this.parentState.y:r.y*o)+this.unscaledBounds.y*o,this.unscaledBounds.width*o,this.unscaledBounds.height*o),c.relative&&null!=this.parentState&&(this.bounds.x+=this.state.x-this.parentState.x,this.bounds.y+=this.state.y-this.parentState.y),s=Math.cos(n),l=Math.sin(n);var y=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY()),f=(a=y.x-e.x,h=y.y-e.y,s*a-l*h),A=l*a+s*h,C=f-a,v=A-h,E=this.bounds.x-this.state.x,w=this.bounds.y-this.state.y,S=s*E-l*w,b=l*E+s*w;this.bounds.x+=C,this.bounds.y+=v,this.unscaledBounds.x=this.roundLength(this.unscaledBounds.x+C/o),this.unscaledBounds.y=this.roundLength(this.unscaledBounds.y+v/o),this.unscaledBounds.width=this.roundLength(this.unscaledBounds.width),this.unscaledBounds.height=this.roundLength(this.unscaledBounds.height),this.graph.isCellCollapsed(this.state.cell)||0==C&&0==v?(this.childOffsetX=0,this.childOffsetY=0):(this.childOffsetX=this.state.x-this.bounds.x+S,this.childOffsetY=this.state.y-this.bounds.y+b),x.equals(this.bounds)||(this.livePreviewActive&&this.updateLivePreview(t),null!=this.preview?this.drawPreview():this.updateParentHighlight())},mxVertexHandler.prototype.updateLivePreview=function(t){var e=this.graph.view.scale,n=this.graph.view.translate,i=this.state.clone();this.state.x=this.bounds.x,this.state.y=this.bounds.y,this.state.origin=new mxPoint(this.state.x/e-n.x,this.state.y/e-n.y),this.state.width=this.bounds.width,this.state.height=this.bounds.height;var r=this.state.absoluteOffset;r=new mxPoint(r.x,r.y),this.state.absoluteOffset.x=0,this.state.absoluteOffset.y=0;var o=this.graph.getCellGeometry(this.state.cell);if(null!=o){var s=o.offset||this.EMPTY_POINT;null==s||o.relative||(this.state.absoluteOffset.x=this.state.view.scale*s.x,this.state.absoluteOffset.y=this.state.view.scale*s.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.movePreviewToFront&&this.moveToFront(),null!=this.state.control&&null!=this.state.control.node&&(this.state.control.node.style.visibility="hidden"),this.state.setState(i)},mxVertexHandler.prototype.moveToFront=function(){(null!=this.state.text&&null!=this.state.text.node&&null!=this.state.text.node.nextSibling||null!=this.state.shape&&null!=this.state.shape.node&&null!=this.state.shape.node.nextSibling&&(null==this.state.text||this.state.shape.node.nextSibling!=this.state.text.node))&&(null!=this.state.shape&&null!=this.state.shape.node&&this.state.shape.node.parentNode.appendChild(this.state.shape.node),null!=this.state.text&&null!=this.state.text.node&&this.state.text.node.parentNode.appendChild(this.state.text.node))},mxVertexHandler.prototype.mouseUp=function(t,e){if(null!=this.index&&null!=this.state){var n=new mxPoint(e.getGraphX(),e.getGraphY()),i=this.index;this.index=null,null==this.ghostPreview&&(this.state.view.invalidate(this.state.cell,!1,!1),this.state.view.validate()),this.graph.getModel().beginUpdate();try{if(i<=mxEvent.CUSTOM_HANDLE){if(null!=this.customHandles){var r=this.state.view.graph.getCellStyle(this.state.cell);this.customHandles[mxEvent.CUSTOM_HANDLE-i].active=!1,this.customHandles[mxEvent.CUSTOM_HANDLE-i].execute(e),null!=this.customHandles&&null!=this.customHandles[mxEvent.CUSTOM_HANDLE-i]&&(this.state.style=r,this.customHandles[mxEvent.CUSTOM_HANDLE-i].positionChanged())}}else if(i==mxEvent.ROTATION_HANDLE)if(null!=this.currentAlpha){var o=this.currentAlpha-(this.state.style[mxConstants.STYLE_ROTATION]||0);0!=o&&this.rotateCell(this.state.cell,o)}else this.rotateClick();else{var s=this.graph.isGridEnabledEvent(e.getEvent()),l=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),a=Math.cos(-l),h=Math.sin(-l),u=n.x-this.startX,d=n.y-this.startY,c=a*u-h*d,p=h*u+a*d;u=c,d=p;var g=this.graph.view.scale,m=this.isRecursiveResize(this.state,e);this.resizeCell(this.state.cell,this.roundLength(u/g),this.roundLength(d/g),i,s,this.isConstrainedEvent(e),m)}}finally{this.graph.getModel().endUpdate()}e.consume(),this.reset(),this.redrawHandles()}},mxVertexHandler.prototype.isRecursiveResize=function(t,e){return this.graph.isRecursiveResize(this.state)},mxVertexHandler.prototype.rotateClick=function(){},mxVertexHandler.prototype.rotateCell=function(t,e,n){if(0!=e){var i=this.graph.getModel();if(i.isVertex(t)||i.isEdge(t)){if(!i.isEdge(t)){var r=this.graph.getCurrentCellStyle(t),o=(r[mxConstants.STYLE_ROTATION]||0)+e;this.graph.setCellStyles(mxConstants.STYLE_ROTATION,o,[t])}var s=this.graph.getCellGeometry(t);if(null!=s){var l=this.graph.getCellGeometry(n);if(null==l||i.isEdge(n)||(s=s.clone(),s.rotate(e,new mxPoint(l.width/2,l.height/2)),i.setGeometry(t,s)),i.isVertex(t)&&!s.relative||i.isEdge(t))for(var a=i.getChildCount(t),h=0;h<a;h++)this.rotateCell(i.getChildAt(t,h),e,t)}}}},mxVertexHandler.prototype.reset=function(){if(null!=this.sizers&&null!=this.index&&null!=this.sizers[this.index]&&"none"==this.sizers[this.index].node.style.display&&(this.sizers[this.index].node.style.display=""),this.currentAlpha=null,this.inTolerance=null,this.index=null,null!=this.preview&&(this.preview.destroy(),this.preview=null),null!=this.ghostPreview&&(this.ghostPreview.destroy(),this.ghostPreview=null),this.livePreviewActive&&null!=this.sizers){for(var t=0;t<this.sizers.length;t++)null!=this.sizers[t]&&(this.sizers[t].node.style.display="");null!=this.state.control&&null!=this.state.control.node&&(this.state.control.node.style.visibility="")}if(null!=this.customHandles)for(t=0;t<this.customHandles.length;t++)this.customHandles[t].active?(this.customHandles[t].active=!1,this.customHandles[t].reset()):this.customHandles[t].setVisible(!0);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.edgeHandlers=null,this.handlesVisible=!0,this.unscaledBounds=null,this.livePreviewActive=null},mxVertexHandler.prototype.resizeCell=function(t,e,n,i,r,o,s){var l=this.graph.model.getGeometry(t);if(null!=l)if(i==mxEvent.LABEL_HANDLE){var a=-mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),h=Math.cos(a),u=Math.sin(a),d=this.graph.view.scale,c=mxUtils.getRotatedPoint(new mxPoint(Math.round((this.labelShape.bounds.getCenterX()-this.startX)/d),Math.round((this.labelShape.bounds.getCenterY()-this.startY)/d)),h,u);l=l.clone(),null==l.offset?l.offset=c:(l.offset.x+=c.x,l.offset.y+=c.y),this.graph.model.setGeometry(t,l)}else if(null!=this.unscaledBounds){d=this.graph.view.scale;0==this.childOffsetX&&0==this.childOffsetY||this.moveChildren(t,Math.round(this.childOffsetX/d),Math.round(this.childOffsetY/d)),this.graph.resizeCell(t,this.unscaledBounds,s)}},mxVertexHandler.prototype.moveChildren=function(t,e,n){for(var i=this.graph.getModel(),r=i.getChildCount(t),o=0;o<r;o++){var s=i.getChildAt(t,o),l=this.graph.getCellGeometry(s);null!=l&&(l=l.clone(),l.translate(e,n),i.setGeometry(s,l))}},mxVertexHandler.prototype.union=function(t,e,n,i,r,o,s,l,a){if(r=null!=r?r&&this.graph.gridEnabled:this.graph.gridEnabled,this.singleSizer){var h=t.x+t.width+e,u=t.y+t.height+n;r&&(h=this.graph.snap(h/o)*o,u=this.graph.snap(u/o)*o);var d=new mxRectangle(t.x,t.y,0,0);return d.add(new mxRectangle(h,u,0,0)),d}var c=t.width,p=t.height,g=t.x-s.x*o,m=g+c,x=t.y-s.y*o,y=x+p,f=g+c/2,A=x+p/2;i>4?(y+=n,y=r?this.graph.snap(y/o)*o:Math.round(y/o)*o):i<3&&(x+=n,x=r?this.graph.snap(x/o)*o:Math.round(x/o)*o),0==i||3==i||5==i?(g+=e,g=r?this.graph.snap(g/o)*o:Math.round(g/o)*o):2!=i&&4!=i&&7!=i||(m+=e,m=r?this.graph.snap(m/o)*o:Math.round(m/o)*o);var C=m-g,v=y-x;if(l){var E=this.graph.getCellGeometry(this.state.cell);if(null!=E){var w=E.width/E.height;1==i||2==i||7==i||6==i?C=v*w:v=C/w,0==i&&(g=m-C,x=y-v)}}if(a){C+=C-c,v+=v-p;var S=f-(g+C/2),b=A-(x+v/2);g+=S,x+=b,m+=S,y+=b}C<0&&(g+=C,C=Math.abs(C)),v<0&&(x+=v,v=Math.abs(v));var T=new mxRectangle(g+s.x*o,x+s.y*o,C,v);return null!=this.minBounds&&(T.width=Math.max(T.width,this.minBounds.x*o+this.minBounds.width*o+Math.max(0,this.x0*o-T.x)),T.height=Math.max(T.height,this.minBounds.y*o+this.minBounds.height*o+Math.max(0,this.y0*o-T.y))),T},mxVertexHandler.prototype.redraw=function(t){this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview(),t||this.redrawHandles()},mxVertexHandler.prototype.getHandlePadding=function(){var t=new mxPoint(0,0),e=this.tolerance;return null!=this.sizers&&this.sizers.length>0&&null!=this.sizers[0]&&(this.bounds.width<2*this.sizers[0].bounds.width+2*e||this.bounds.height<2*this.sizers[0].bounds.height+2*e)&&(e/=2,t.x=this.sizers[0].bounds.width+e,t.y=this.sizers[0].bounds.height+e),t},mxVertexHandler.prototype.getSizerBounds=function(){return this.bounds},mxVertexHandler.prototype.redrawHandles=function(){var t=this.getSizerBounds(),e=this.tolerance;if(this.horizontalOffset=0,this.verticalOffset=0,null!=this.customHandles)for(var n=0;n<this.customHandles.length;n++){var i=this.customHandles[n].shape.node.style.display;this.customHandles[n].redraw(),this.customHandles[n].shape.node.style.display=i,this.customHandles[n].shape.node.style.visibility=this.handlesVisible&&this.isCustomHandleVisible(this.customHandles[n])?"":"hidden"}if(null!=this.sizers&&this.sizers.length>0&&null!=this.sizers[0]){if(null==this.index&&this.manageSizers&&this.sizers.length>=8){var r=this.getHandlePadding();this.horizontalOffset=r.x,this.verticalOffset=r.y,0==this.horizontalOffset&&0==this.verticalOffset||(t=new mxRectangle(t.x,t.y,t.width,t.height),t.x-=this.horizontalOffset/2,t.width+=this.horizontalOffset,t.y-=this.verticalOffset/2,t.height+=this.verticalOffset),this.sizers.length>=8&&(t.width<2*this.sizers[0].bounds.width+2*e||t.height<2*this.sizers[0].bounds.height+2*e?(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.handlesVisible&&(this.sizers[0].node.style.display="",this.sizers[2].node.style.display="",this.sizers[5].node.style.display="",this.sizers[7].node.style.display=""))}var o=t.x+t.width,s=t.y+t.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],o,s);else{var l=t.x+t.width/2,a=t.y+t.height/2;if(this.sizers.length>=8){var h=["nw-resize","n-resize","ne-resize","e-resize","se-resize","s-resize","sw-resize","w-resize"],u=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),d=Math.cos(u),c=Math.sin(u),p=Math.round(4*u/Math.PI),g=new mxPoint(t.getCenterX(),t.getCenterY()),m=mxUtils.getRotatedPoint(new mxPoint(t.x,t.y),d,c,g);this.moveSizerTo(this.sizers[0],m.x,m.y),this.sizers[0].setCursor(h[mxUtils.mod(0+p,h.length)]),m.x=l,m.y=t.y,m=mxUtils.getRotatedPoint(m,d,c,g),this.moveSizerTo(this.sizers[1],m.x,m.y),this.sizers[1].setCursor(h[mxUtils.mod(1+p,h.length)]),m.x=o,m.y=t.y,m=mxUtils.getRotatedPoint(m,d,c,g),this.moveSizerTo(this.sizers[2],m.x,m.y),this.sizers[2].setCursor(h[mxUtils.mod(2+p,h.length)]),m.x=t.x,m.y=a,m=mxUtils.getRotatedPoint(m,d,c,g),this.moveSizerTo(this.sizers[3],m.x,m.y),this.sizers[3].setCursor(h[mxUtils.mod(7+p,h.length)]),m.x=o,m.y=a,m=mxUtils.getRotatedPoint(m,d,c,g),this.moveSizerTo(this.sizers[4],m.x,m.y),this.sizers[4].setCursor(h[mxUtils.mod(3+p,h.length)]),m.x=t.x,m.y=s,m=mxUtils.getRotatedPoint(m,d,c,g),this.moveSizerTo(this.sizers[5],m.x,m.y),this.sizers[5].setCursor(h[mxUtils.mod(6+p,h.length)]),m.x=l,m.y=s,m=mxUtils.getRotatedPoint(m,d,c,g),this.moveSizerTo(this.sizers[6],m.x,m.y),this.sizers[6].setCursor(h[mxUtils.mod(5+p,h.length)]),m.x=o,m.y=s,m=mxUtils.getRotatedPoint(m,d,c,g),this.moveSizerTo(this.sizers[7],m.x,m.y),this.sizers[7].setCursor(h[mxUtils.mod(4+p,h.length)]),m.x=l+this.state.absoluteOffset.x,m.y=a+this.state.absoluteOffset.y,m=mxUtils.getRotatedPoint(m,d,c,g),this.moveSizerTo(this.sizers[8],m.x,m.y)}else this.state.width>=2&&this.state.height>=2?this.moveSizerTo(this.sizers[0],l+this.state.absoluteOffset.x,a+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}if(null!=this.rotationShape){u=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),d=Math.cos(u),c=Math.sin(u),g=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),m=mxUtils.getRotatedPoint(this.getRotationHandlePosition(),d,c,g);null!=this.rotationShape.node&&(this.moveSizerTo(this.rotationShape,m.x,m.y),this.rotationShape.node.style.visibility=this.state.view.graph.isEditing()||!this.handlesVisible?"hidden":"")}if(null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")),null!=this.edgeHandlers)for(n=0;n<this.edgeHandlers.length;n++)this.edgeHandlers[n].redraw()},mxVertexHandler.prototype.isCustomHandleVisible=function(t){return!this.graph.isEditing()&&1==this.state.view.graph.getSelectionCount()},mxVertexHandler.prototype.getRotationHandlePosition=function(){return new mxPoint(this.bounds.x+this.bounds.width/2,this.bounds.y+this.rotationHandleVSpacing)},mxVertexHandler.prototype.isParentHighlightVisible=function(){return!this.graph.isCellSelected(this.graph.model.getParent(this.state.cell))},mxVertexHandler.prototype.updateParentHighlight=function(){if(!this.isDestroyed()){var t=this.isParentHighlightVisible(),e=this.graph.model.getParent(this.state.cell),n=this.graph.view.getState(e);if(null!=this.parentHighlight)if(this.graph.model.isVertex(e)&&t){var i=this.parentHighlight.bounds;null==n||i.x==n.x&&i.y==n.y&&i.width==n.width&&i.height==n.height||(this.parentHighlight.bounds=mxRectangle.fromRectangle(n),this.parentHighlight.redraw())}else null!=n&&n.parentHighlight==this.parentHighlight&&(n.parentHighlight=null),this.parentHighlight.destroy(),this.parentHighlight=null;else this.parentHighlightEnabled&&t&&this.graph.model.isVertex(e)&&null!=n&&null==n.parentHighlight&&(this.parentHighlight=this.createParentHighlightShape(n),this.parentHighlight.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.parentHighlight.pointerEvents=!1,this.parentHighlight.rotation=Number(n.style[mxConstants.STYLE_ROTATION]||"0"),this.parentHighlight.init(this.graph.getView().getOverlayPane()),this.parentHighlight.redraw(),n.parentHighlight=this.parentHighlight)}},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.getSelectionBorderBounds(),this.selectionBorder.redraw(),this.updateParentHighlight()},mxVertexHandler.prototype.getSelectionBorderBounds=function(){return this.bounds},mxVertexHandler.prototype.isDestroyed=function(){return null==this.selectionBorder},mxVertexHandler.prototype.destroy=function(){if(null!=this.escapeHandler&&(this.state.view.graph.removeListener(this.escapeHandler),this.escapeHandler=null),null!=this.preview&&(this.preview.destroy(),this.preview=null),null!=this.parentHighlight){var t=this.graph.model.getParent(this.state.cell),e=this.graph.view.getState(t);null!=e&&e.parentHighlight==this.parentHighlight&&(e.parentHighlight=null),this.parentHighlight.destroy(),this.parentHighlight=null}if(null!=this.ghostPreview&&(this.ghostPreview.destroy(),this.ghostPreview=null),null!=this.selectionBorder&&(this.selectionBorder.destroy(),this.selectionBorder=null),this.labelShape=null,this.removeHint(),null!=this.sizers){for(var n=0;n<this.sizers.length;n++)this.sizers[n].destroy();this.sizers=null}if(null!=this.customHandles){for(n=0;n<this.customHandles.length;n++)this.customHandles[n].destroy();this.customHandles=null}},__mxOutput.mxVertexHandler="undefined"!==typeof mxVertexHandler?mxVertexHandler:void 0,mxEdgeHandler.prototype.graph=null,mxEdgeHandler.prototype.state=null,mxEdgeHandler.prototype.marker=null,mxEdgeHandler.prototype.constraintHandler=null,mxEdgeHandler.prototype.error=null,mxEdgeHandler.prototype.shape=null,mxEdgeHandler.prototype.bends=null,mxEdgeHandler.prototype.labelShape=null,mxEdgeHandler.prototype.cloneEnabled=!0,mxEdgeHandler.prototype.addEnabled=!1,mxEdgeHandler.prototype.removeEnabled=!1,mxEdgeHandler.prototype.dblClickRemoveEnabled=!1,mxEdgeHandler.prototype.mergeRemoveEnabled=!1,mxEdgeHandler.prototype.straightRemoveEnabled=!1,mxEdgeHandler.prototype.virtualBendsEnabled=!1,mxEdgeHandler.prototype.virtualBendOpacity=20,mxEdgeHandler.prototype.parentHighlightEnabled=!1,mxEdgeHandler.prototype.preferHtml=!1,mxEdgeHandler.prototype.allowHandleBoundsCheck=!0,mxEdgeHandler.prototype.snapToTerminals=!1,mxEdgeHandler.prototype.handleImage=null,mxEdgeHandler.prototype.tolerance=0,mxEdgeHandler.prototype.outlineConnect=!1,mxEdgeHandler.prototype.manageLabelHandle=!1,mxEdgeHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.points=[],this.abspoints=this.getSelectionPoints(this.state),this.shape=this.createSelectionShape(this.abspoints),this.shape.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,this.shape.init(this.graph.getView().getOverlayPane()),this.shape.pointerEvents=!1,this.shape.setCursor(mxConstants.CURSOR_MOVABLE_EDGE),mxEvent.redirectMouseEvents(this.shape.node,this.graph,this.state),this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container,!this.preferHtml){var t=this.state.getVisibleTerminalState(!0);if(null!=t&&(this.preferHtml=null!=t.text&&t.text.node.parentNode==this.graph.container),!this.preferHtml){var e=this.state.getVisibleTerminalState(!1);null!=e&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container)}}(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||mxGraphHandler.prototype.maxCells<=0)&&(this.bends=this.createBends(),this.isVirtualBendsEnabled()&&(this.virtualBends=this.createVirtualBends())),this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape=this.createLabelHandleShape(),this.initBend(this.labelShape),this.labelShape.setCursor(mxConstants.CURSOR_LABEL_HANDLE),this.customHandles=this.createCustomHandles(),this.updateParentHighlight(),this.redraw()},mxEdgeHandler.prototype.isParentHighlightVisible=mxVertexHandler.prototype.isParentHighlightVisible,mxEdgeHandler.prototype.updateParentHighlight=mxVertexHandler.prototype.updateParentHighlight,mxEdgeHandler.prototype.createCustomHandles=function(){return null},mxEdgeHandler.prototype.isVirtualBendsEnabled=function(t){return this.virtualBendsEnabled&&(null==this.state.style[mxConstants.STYLE_EDGE]||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.NONE||1==this.state.style[mxConstants.STYLE_NOEDGESTYLE])&&"arrow"!=mxUtils.getValue(this.state.style,mxConstants.STYLE_SHAPE,null)},mxEdgeHandler.prototype.isCellEnabled=function(t){return!0},mxEdgeHandler.prototype.isAddPointEvent=function(t){return mxEvent.isShiftDown(t)},mxEdgeHandler.prototype.isRemovePointEvent=function(t){return mxEvent.isShiftDown(t)},mxEdgeHandler.prototype.getSelectionPoints=function(t){return t.absolutePoints},mxEdgeHandler.prototype.createParentHighlightShape=function(t){var e=new mxRectangleShape(mxRectangle.fromRectangle(t),null,this.getSelectionColor());return e.strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxEdgeHandler.prototype.createSelectionShape=function(t){var e=new this.state.shape.constructor;return e.outline=!0,e.apply(this.state),e.isDashed=this.isSelectionDashed(),e.stroke=this.getSelectionColor(),e.isShadow=!1,e},mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR},mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH},mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED},mxEdgeHandler.prototype.isConnectableCell=function(t){return!0},mxEdgeHandler.prototype.getCellAt=function(t,e){return this.outlineConnect?null:this.graph.getCellAt(t,e)},mxEdgeHandler.prototype.createMarker=function(){var t=new mxCellMarker(this.graph),e=this;return t.getCell=function(t){var n=mxCellMarker.prototype.getCell.apply(this,arguments);if(n!=e.state.cell&&null!=n||null==e.currentPoint||(n=e.graph.getCellAt(e.currentPoint.x,e.currentPoint.y)),null!=n&&!this.graph.isCellConnectable(n)){var i=this.graph.getModel().getParent(n);this.graph.getModel().isVertex(i)&&this.graph.isCellConnectable(i)&&(n=i)}var r=e.graph.getModel();return(this.graph.isSwimlane(n)&&null!=e.currentPoint&&this.graph.hitsSwimlaneContent(n,e.currentPoint.x,e.currentPoint.y)||!e.isConnectableCell(n)||n==e.state.cell||null!=n&&!e.graph.connectableEdges&&r.isEdge(n)||r.isAncestor(e.state.cell,n))&&(n=null),this.graph.isCellConnectable(n)||(n=null),n},t.isValidState=function(t){var n=e.graph.getModel(),i=e.graph.view.getTerminalPort(t,e.graph.view.getState(n.getTerminal(e.state.cell,!e.isSource)),!e.isSource),r=null!=i?i.cell:null,o=e.isSource?t.cell:r,s=e.isSource?r:t.cell;return e.error=e.validateConnection(o,s),null==e.error},t},mxEdgeHandler.prototype.validateConnection=function(t,e){return this.graph.getEdgeValidationError(this.state.cell,t,e)},mxEdgeHandler.prototype.createBends=function(){for(var t=this.state.cell,e=[],n=0;n<this.abspoints.length;n++)if(this.isHandleVisible(n)){var i=0==n,r=n==this.abspoints.length-1,o=i||r;(o||this.graph.isCellBendable(t))&&mxUtils.bind(this,(function(t){var i=this.createHandleShape(t);this.initBend(i,mxUtils.bind(this,mxUtils.bind(this,(function(){this.dblClickRemoveEnabled&&this.removePoint(this.state,t)})))),this.isHandleEnabled(n)&&i.setCursor(o?mxConstants.CURSOR_TERMINAL_HANDLE:mxConstants.CURSOR_BEND_HANDLE),e.push(i),o||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}))(n)}return e},mxEdgeHandler.prototype.createVirtualBends=function(){var t=this.state.cell,e=(this.abspoints[0],[]);if(this.graph.isCellBendable(t))for(var n=1;n<this.abspoints.length;n++)mxUtils.bind(this,(function(t){this.initBend(t),t.setCursor(mxConstants.CURSOR_VIRTUAL_BEND_HANDLE),e.push(t)}))(this.createHandleShape());return e},mxEdgeHandler.prototype.isHandleEnabled=function(t){return!0},mxEdgeHandler.prototype.isHandleVisible=function(t){var e=this.state.getVisibleTerminalState(!0),n=this.state.getVisibleTerminalState(!1),i=this.graph.getCellGeometry(this.state.cell),r=null!=i?this.graph.view.getEdgeStyle(this.state,i.points,e,n):null;return r!=mxEdgeStyle.EntityRelation||0==t||t==this.abspoints.length-1},mxEdgeHandler.prototype.createHandleShape=function(t){if(null!=this.handleImage){var e=new mxImageShape(new mxRectangle(0,0,this.handleImage.width,this.handleImage.height),this.handleImage.src);return e.preserveImageAspect=!1,e}var n=mxConstants.HANDLE_SIZE;return this.preferHtml&&(n-=1),new mxRectangleShape(new mxRectangle(0,0,n,n),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxEdgeHandler.prototype.createLabelHandleShape=function(){if(null!=this.labelHandleImage){var t=new mxImageShape(new mxRectangle(0,0,this.labelHandleImage.width,this.labelHandleImage.height),this.labelHandleImage.src);return t.preserveImageAspect=!1,t}var e=mxConstants.LABEL_HANDLE_SIZE;return new mxRectangleShape(new mxRectangle(0,0,e,e),mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxEdgeHandler.prototype.initBend=function(t,e){this.preferHtml?(t.dialect=mxConstants.DIALECT_STRICTHTML,t.init(this.graph.container)):(t.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,t.init(this.graph.getView().getOverlayPane())),mxEvent.redirectMouseEvents(t.node,this.graph,this.state,null,null,null,e),(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(t.node,"dragstart",(function(t){return mxEvent.consume(t),!1})),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none")},mxEdgeHandler.prototype.getHandleForEvent=function(t){var e=null;if(null!=this.state){var n=mxEvent.isMouseEvent(t.getEvent())?1:this.tolerance,i=this.allowHandleBoundsCheck&&(mxClient.IS_IE||n>0)?new mxRectangle(t.getGraphX()-n,t.getGraphY()-n,2*n,2*n):null,r=null;function o(e){if(null!=e&&null!=e.node&&"none"!=e.node.style.display&&"hidden"!=e.node.style.visibility&&(t.isSource(e)||null!=i&&mxUtils.intersects(e.bounds,i))){var n=t.getGraphX()-e.bounds.getCenterX(),o=t.getGraphY()-e.bounds.getCenterY(),s=n*n+o*o;if(null==r||s<=r)return r=s,!0}return!1}if(null!=this.customHandles&&this.isCustomHandleEvent(t))for(var s=this.customHandles.length-1;s>=0;s--)if(o(this.customHandles[s].shape))return mxEvent.CUSTOM_HANDLE-s;if((t.isSource(this.state.text)||o(this.labelShape))&&(e=mxEvent.LABEL_HANDLE),null!=this.bends)for(s=0;s<this.bends.length;s++)o(this.bends[s])&&(e=s);if(null!=this.virtualBends&&this.isAddVirtualBendEvent(t))for(s=0;s<this.virtualBends.length;s++)o(this.virtualBends[s])&&(e=mxEvent.VIRTUAL_HANDLE-s)}return e},mxEdgeHandler.prototype.isAddVirtualBendEvent=function(t){return!0},mxEdgeHandler.prototype.isCustomHandleEvent=function(t){return!0},mxEdgeHandler.prototype.mouseDown=function(t,e){var n=this.getHandleForEvent(e);if(null!=this.bends&&null!=this.bends[n]){var i=this.bends[n].bounds;this.snapPoint=new mxPoint(i.getCenterX(),i.getCenterY())}this.addEnabled&&null==n&&this.isAddPointEvent(e.getEvent())?(this.addPoint(this.state,e.getEvent()),e.consume()):null!=n&&!e.isConsumed()&&this.graph.isEnabled()&&(this.removeEnabled&&this.isRemovePointEvent(e.getEvent())?this.removePoint(this.state,n):(n!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(e.getCell()))&&(n<=mxEvent.VIRTUAL_HANDLE&&mxUtils.setOpacity(this.virtualBends[mxEvent.VIRTUAL_HANDLE-n].node,100),this.start(e.getX(),e.getY(),n)),e.consume())},mxEdgeHandler.prototype.start=function(t,e,n){if(this.startX=t,this.startY=e,this.isSource=null!=this.bends&&0==n,this.isTarget=null!=this.bends&&n==this.bends.length-1,this.isLabel=n==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget){var i=this.state.cell,r=this.graph.model.getTerminal(i,this.isSource);(null==r&&this.graph.isTerminalPointMovable(i,this.isSource)||null!=r&&this.graph.isCellDisconnectable(i,r,this.isSource))&&(this.index=n)}else this.index=n;if(this.index<=mxEvent.CUSTOM_HANDLE&&this.index>mxEvent.VIRTUAL_HANDLE&&null!=this.customHandles)for(var o=0;o<this.customHandles.length;o++)o!=mxEvent.CUSTOM_HANDLE-this.index&&this.customHandles[o].setVisible(!1)},mxEdgeHandler.prototype.clonePreviewState=function(t,e){return this.state.clone()},mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxEdgeHandler.prototype.updateHint=function(t,e){},mxEdgeHandler.prototype.removeHint=function(){},mxEdgeHandler.prototype.roundLength=function(t){return Math.round(t)},mxEdgeHandler.prototype.isSnapToTerminalsEvent=function(t){return this.snapToTerminals&&!mxEvent.isAltDown(t.getEvent())},mxEdgeHandler.prototype.getPointForEvent=function(t){var e=this.graph.getView(),n=e.scale,i=new mxPoint(this.roundLength(t.getGraphX()/n)*n,this.roundLength(t.getGraphY()/n)*n),r=this.getSnapToTerminalTolerance(),o=!1,s=!1;if(r>0&&this.isSnapToTerminalsEvent(t)){function l(t){if(null!=t){var e=t.x;Math.abs(i.x-e)<r&&(i.x=e,o=!0);var n=t.y;Math.abs(i.y-n)<r&&(i.y=n,s=!0)}}function a(t){null!=t&&l.call(this,new mxPoint(e.getRoutingCenterX(t),e.getRoutingCenterY(t)))}if(a.call(this,this.state.getVisibleTerminalState(!0)),a.call(this,this.state.getVisibleTerminalState(!1)),null!=this.state.absolutePoints)for(var h=0;h<this.state.absolutePoints.length;h++)l.call(this,this.state.absolutePoints[h])}if(this.graph.isGridEnabledEvent(t.getEvent())){var u=e.translate;o||(i.x=(this.graph.snap(i.x/n-u.x)+u.x)*n),s||(i.y=(this.graph.snap(i.y/n-u.y)+u.y)*n)}return i},mxEdgeHandler.prototype.getPreviewTerminalState=function(t){if(this.constraintHandler.update(t,this.isSource,!0,t.isSource(this.marker.highlight.shape)?null:this.currentPoint),null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint){null!=this.marker.highlight&&null!=this.marker.highlight.state&&this.marker.highlight.state.cell==this.constraintHandler.currentFocus.cell?"transparent"!=this.marker.highlight.shape.stroke&&(this.marker.highlight.shape.stroke="transparent",this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent");var e=this.graph.getModel(),n=this.graph.view.getTerminalPort(this.state,this.graph.view.getState(e.getTerminal(this.state.cell,!this.isSource)),!this.isSource),i=null!=n?n.cell:null,r=this.isSource?this.constraintHandler.currentFocus.cell:i,o=this.isSource?i:this.constraintHandler.currentFocus.cell;this.error=this.validateConnection(r,o);var s=null;return null==this.error&&(s=this.constraintHandler.currentFocus),(null!=this.error||null!=s&&!this.isCellEnabled(s.cell))&&this.constraintHandler.reset(),s}if(this.graph.isIgnoreTerminalEvent(t.getEvent()))return this.marker.reset(),null;this.marker.process(t);var l=this.marker.getValidState();return null==l||this.isCellEnabled(l.cell)||(this.constraintHandler.reset(),this.marker.reset()),this.marker.getValidState()},mxEdgeHandler.prototype.getPreviewPoints=function(t,e){var n=this.graph.getCellGeometry(this.state.cell),i=null!=n.points?n.points.slice():null,r=new mxPoint(t.x,t.y),o=null;if(this.isSource||this.isTarget)this.graph.resetEdgesOnConnect&&(i=null);else if(this.convertPoint(r,!1),null==i)i=[r];else{if(this.index<=mxEvent.VIRTUAL_HANDLE&&i.splice(mxEvent.VIRTUAL_HANDLE-this.index,0,r),!this.isSource&&!this.isTarget){for(var s=0;s<this.bends.length;s++)if(s!=this.index){var l=this.bends[s];null!=l&&mxUtils.contains(l.bounds,t.x,t.y)&&(this.index<=mxEvent.VIRTUAL_HANDLE?i.splice(mxEvent.VIRTUAL_HANDLE-this.index,1):i.splice(this.index-1,1),o=i)}if(null==o&&this.straightRemoveEnabled&&(null==e||!mxEvent.isAltDown(e.getEvent()))){var a=this.graph.tolerance*this.graph.tolerance,h=this.state.absolutePoints.slice();h[this.index]=t;var u=this.state.getVisibleTerminalState(!0);if(null!=u){var d=this.graph.getConnectionConstraint(this.state,u,!0);null!=d&&null!=this.graph.getConnectionPoint(u,d)||(h[0]=new mxPoint(u.view.getRoutingCenterX(u),u.view.getRoutingCenterY(u)))}var c=this.state.getVisibleTerminalState(!1);if(null!=c){d=this.graph.getConnectionConstraint(this.state,c,!1);null!=d&&null!=this.graph.getConnectionPoint(c,d)||(h[h.length-1]=new mxPoint(c.view.getRoutingCenterX(c),c.view.getRoutingCenterY(c)))}function p(t,e){t>0&&t<h.length-1&&mxUtils.ptSegDistSq(h[t-1].x,h[t-1].y,h[t+1].x,h[t+1].y,e.x,e.y)<a&&(i.splice(t-1,1),o=i)}p(this.index,t)}}null==o&&this.index>mxEvent.VIRTUAL_HANDLE&&(i[this.index-1]=r)}return null!=o?o:i},mxEdgeHandler.prototype.isOutlineConnectEvent=function(t){var e=mxUtils.getOffset(this.graph.container),n=t.getEvent(),i=mxEvent.getClientX(n),r=mxEvent.getClientY(n),o=document.documentElement,s=(window.pageXOffset||o.scrollLeft)-(o.clientLeft||0),l=(window.pageYOffset||o.scrollTop)-(o.clientTop||0),a=this.currentPoint.x-this.graph.container.scrollLeft+e.x-s,h=this.currentPoint.y-this.graph.container.scrollTop+e.y-l;return this.outlineConnect&&!mxEvent.isShiftDown(t.getEvent())&&(t.isSource(this.marker.highlight.shape)||mxEvent.isAltDown(t.getEvent())&&null!=t.getState()||this.marker.highlight.isHighlightAt(i,r)||(a!=i||h!=r)&&null==t.getState()&&this.marker.highlight.isHighlightAt(a,h))},mxEdgeHandler.prototype.updatePreviewState=function(t,e,n,i,r){var o=this.isSource?n:this.state.getVisibleTerminalState(!0),s=this.isTarget?n:this.state.getVisibleTerminalState(!1),l=this.graph.getConnectionConstraint(t,o,!0),a=this.graph.getConnectionConstraint(t,s,!1),h=this.constraintHandler.currentConstraint;if(null==h&&r&&(null!=n?(i.isSource(this.marker.highlight.shape)&&(e=new mxPoint(i.getGraphX(),i.getGraphY())),h=this.graph.getOutlineConstraint(e,n,i),this.constraintHandler.setFocus(i,n,this.isSource),this.constraintHandler.currentConstraint=h,this.constraintHandler.currentPoint=e):h=new mxConnectionConstraint),this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape){var u=this.graph.view.scale;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=r?mxConstants.OUTLINE_HIGHLIGHT_COLOR:"transparent",this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/u/u,this.marker.highlight.repaint()):this.marker.hasValidState()&&(this.marker.highlight.shape.stroke=this.graph.isCellConnectable(i.getCell())&&this.marker.getValidState()!=i.getState()?"transparent":mxConstants.DEFAULT_VALID_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/u/u,this.marker.highlight.repaint())}this.isSource?l=h:this.isTarget&&(a=h),(this.isSource||this.isTarget)&&(null!=h&&null!=h.point?(t.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X]=h.point.x,t.style[this.isSource?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y]=h.point.y):(delete t.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X],delete t.style[this.isSource?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y])),t.setVisibleTerminalState(o,!0),t.setVisibleTerminalState(s,!1),this.isSource&&null==o||t.view.updateFixedTerminalPoint(t,o,!0,l),this.isTarget&&null==s||t.view.updateFixedTerminalPoint(t,s,!1,a),(this.isSource||this.isTarget)&&null==n&&(t.setAbsoluteTerminalPoint(e,this.isSource),null==this.marker.getMarkedState()&&(this.error=this.graph.allowDanglingEdges?null:"")),t.view.updatePoints(t,this.points,o,s),t.view.updateFloatingTerminalPoints(t,o,s)},mxEdgeHandler.prototype.mouseMove=function(t,e){if(null!=this.index&&null!=this.marker){if(this.currentPoint=this.getPointForEvent(e),this.error=null,!this.graph.isIgnoreTerminalEvent(e.getEvent())&&mxEvent.isShiftDown(e.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),this.index<=mxEvent.CUSTOM_HANDLE&&this.index>mxEvent.VIRTUAL_HANDLE)null!=this.customHandles&&(this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].processEvent(e),this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].positionChanged(),null!=this.shape&&null!=this.shape.node&&(this.shape.node.style.display="none"));else if(this.isLabel)this.label.x=this.currentPoint.x,this.label.y=this.currentPoint.y;else{this.points=this.getPreviewPoints(this.currentPoint,e);var n=this.isSource||this.isTarget?this.getPreviewTerminalState(e):null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint)this.currentPoint=this.constraintHandler.currentPoint.clone();else if(this.outlineConnect){var i=!(!this.isSource&&!this.isTarget)&&this.isOutlineConnectEvent(e);i?n=this.marker.highlight.state:null!=n&&n!=e.getState()&&this.graph.isCellConnectable(e.getCell())&&null!=this.marker.highlight.shape&&(this.marker.highlight.shape.stroke="transparent",this.marker.highlight.repaint(),n=null)}null==n||this.isCellEnabled(n.cell)||(n=null,this.marker.reset());var r=this.clonePreviewState(this.currentPoint,null!=n?n.cell:null);this.updatePreviewState(r,this.currentPoint,n,e,i);var o=null==this.error?this.marker.validColor:this.marker.invalidColor;this.setPreviewColor(o),this.abspoints=r.absolutePoints,this.active=!0,this.updateHint(e,this.currentPoint)}this.drawPreview(),mxEvent.consume(e.getEvent()),e.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(e)&&e.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(t,e){if(null!=this.index&&null!=this.marker){null!=this.shape&&null!=this.shape.node&&(this.shape.node.style.display="");var n=this.state.cell,i=this.index;if(this.index=null,e.getX()!=this.startX||e.getY()!=this.startY){var r=!this.graph.isIgnoreTerminalEvent(e.getEvent())&&this.graph.isCloneEvent(e.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable();if(null!=this.error)this.error.length>0&&this.graph.validationAlert(this.error);else if(i<=mxEvent.CUSTOM_HANDLE&&i>mxEvent.VIRTUAL_HANDLE){if(null!=this.customHandles){var o=this.graph.getModel();o.beginUpdate();try{this.customHandles[mxEvent.CUSTOM_HANDLE-i].execute(e),null!=this.shape&&null!=this.shape.node&&(this.shape.apply(this.state),this.shape.redraw())}finally{o.endUpdate()}}}else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget){var s=null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(s=this.constraintHandler.currentFocus.cell),null==s&&this.marker.hasValidState()&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&"transparent"!=this.marker.highlight.shape.stroke&&"white"!=this.marker.highlight.shape.stroke&&(s=this.marker.validState.cell),null!=s){o=this.graph.getModel();var l=o.getParent(n);o.beginUpdate();try{if(r){var a=o.getGeometry(n);r=this.graph.cloneCell(n);o.add(l,r,o.getChildCount(l)),null!=a&&(a=a.clone(),o.setGeometry(r,a));var h=o.getTerminal(n,!this.isSource);this.graph.connectCell(r,h,!this.isSource),n=r}n=this.connect(n,s,this.isSource,r,e)}finally{o.endUpdate()}}else if(this.graph.isAllowDanglingEdges()){var u=this.abspoints[this.isSource?0:this.abspoints.length-1];u.x=this.roundLength(u.x/this.graph.view.scale-this.graph.view.translate.x),u.y=this.roundLength(u.y/this.graph.view.scale-this.graph.view.translate.y);var d=this.graph.getView().getState(this.graph.getModel().getParent(n));null!=d&&(u.x-=d.origin.x,u.y-=d.origin.y),u.x-=this.graph.panDx/this.graph.view.scale,u.y-=this.graph.panDy/this.graph.view.scale,n=this.changeTerminalPoint(n,u,this.isSource,r)}}else this.active?n=this.changePoints(n,this.points,r):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().validate(this.state.cell))}else this.graph.isToggleEvent(e.getEvent())&&this.graph.selectCellForEvent(this.state.cell,e.getEvent());null!=this.marker&&(this.reset(),n!=this.state.cell&&this.graph.setSelectionCell(n)),e.consume()}},mxEdgeHandler.prototype.reset=function(){if(this.active&&this.refresh(),this.error=null,this.index=null,this.label=null,this.points=null,this.snapPoint=null,this.isLabel=!1,this.isSource=!1,this.isTarget=!1,this.active=!1,this.livePreview&&null!=this.sizers)for(var t=0;t<this.sizers.length;t++)null!=this.sizers[t]&&(this.sizers[t].node.style.display="");if(null!=this.marker&&this.marker.reset(),null!=this.constraintHandler&&this.constraintHandler.reset(),null!=this.customHandles)for(t=0;t<this.customHandles.length;t++)this.customHandles[t].reset();this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR),this.removeHint(),this.redraw()},mxEdgeHandler.prototype.setPreviewColor=function(t){null!=this.shape&&(this.shape.stroke=t)},mxEdgeHandler.prototype.convertPoint=function(t,e){var n=this.graph.getView().getScale(),i=this.graph.getView().getTranslate();e&&(t.x=this.graph.snap(t.x),t.y=this.graph.snap(t.y)),t.x=Math.round(t.x/n-i.x),t.y=Math.round(t.y/n-i.y);var r=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell));return null!=r&&(t.x-=r.origin.x,t.y-=r.origin.y),t},mxEdgeHandler.prototype.moveLabel=function(t,e,n){var i=this.graph.getModel(),r=i.getGeometry(t.cell);if(null!=r){var o=this.graph.getView().scale;if(r=r.clone(),r.relative){var s=this.graph.getView().getRelativePoint(t,e,n);r.x=Math.round(1e4*s.x)/1e4,r.y=Math.round(s.y),r.offset=new mxPoint(0,0);s=this.graph.view.getPoint(t,r);r.offset=new mxPoint(Math.round((e-s.x)/o),Math.round((n-s.y)/o))}else{var l=t.absolutePoints,a=l[0],h=l[l.length-1];if(null!=a&&null!=h){var u=a.x+(h.x-a.x)/2,d=a.y+(h.y-a.y)/2;r.offset=new mxPoint(Math.round((e-u)/o),Math.round((n-d)/o)),r.x=0,r.y=0}}i.setGeometry(t.cell,r)}},mxEdgeHandler.prototype.connect=function(t,e,n,i,r){var o=this.graph.getModel();o.getParent(t);o.beginUpdate();try{var s=this.constraintHandler.currentConstraint;null==s&&(s=new mxConnectionConstraint),this.graph.connectCell(t,e,n,s)}finally{o.endUpdate()}return t},mxEdgeHandler.prototype.changeTerminalPoint=function(t,e,n,i){var r=this.graph.getModel();r.beginUpdate();try{if(i){var o=r.getParent(t),s=r.getTerminal(t,!n);t=this.graph.cloneCell(t),r.add(o,t,r.getChildCount(o)),r.setTerminal(t,s,!n)}var l=r.getGeometry(t);null!=l&&(l=l.clone(),l.setTerminalPoint(e,n),r.setGeometry(t,l),this.graph.connectCell(t,null,n,new mxConnectionConstraint))}finally{r.endUpdate()}return t},mxEdgeHandler.prototype.changePoints=function(t,e,n){var i=this.graph.getModel();i.beginUpdate();try{if(n){var r=i.getParent(t),o=i.getTerminal(t,!0),s=i.getTerminal(t,!1);t=this.graph.cloneCell(t),i.add(r,t,i.getChildCount(r)),i.setTerminal(t,o,!0),i.setTerminal(t,s,!1)}var l=i.getGeometry(t);null!=l&&(l=l.clone(),l.points=e,i.setGeometry(t,l))}finally{i.endUpdate()}return t},mxEdgeHandler.prototype.addPoint=function(t,e){var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),i=this.graph.isGridEnabledEvent(e);this.convertPoint(n,i),this.addPointAt(t,n.x,n.y),mxEvent.consume(e)},mxEdgeHandler.prototype.addPointAt=function(t,e,n){var i=this.graph.getCellGeometry(t.cell),r=new mxPoint(e,n);if(null!=i){i=i.clone();var o=this.graph.view.translate,s=this.graph.view.scale,l=new mxPoint(o.x*s,o.y*s),a=this.graph.model.getParent(this.state.cell);if(this.graph.model.isVertex(a)){var h=this.graph.view.getState(a);l=new mxPoint(h.x,h.y)}var u=mxUtils.findNearestSegment(t,r.x*s+l.x,r.y*s+l.y);null==i.points?i.points=[r]:i.points.splice(u,0,r),this.graph.getModel().setGeometry(t.cell,i),this.refresh(),this.redraw()}},mxEdgeHandler.prototype.removePoint=function(t,e){if(e>0&&e<this.abspoints.length-1){var n=this.graph.getCellGeometry(this.state.cell);null!=n&&null!=n.points&&(n=n.clone(),n.points.splice(e-1,1),this.graph.getModel().setGeometry(t.cell,n),this.refresh(),this.redraw())}},mxEdgeHandler.prototype.getHandleFillColor=function(t){var e=0==t,n=this.state.cell,i=this.graph.getModel().getTerminal(n,e),r=mxConstants.HANDLE_FILLCOLOR;return null!=i&&!this.graph.isCellDisconnectable(n,i,e)||null==i&&!this.graph.isTerminalPointMovable(n,e)?r=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=i&&this.graph.isCellDisconnectable(n,i,e)&&(r=mxConstants.CONNECT_HANDLE_FILLCOLOR),r},mxEdgeHandler.prototype.redraw=function(t){if(null!=this.state){this.abspoints=this.state.absolutePoints.slice();var e=this.graph.getModel().getGeometry(this.state.cell);if(null!=e){var n=e.points;if(null!=this.bends&&this.bends.length>0&&null!=n){null==this.points&&(this.points=[]);for(var i=1;i<this.bends.length-1;i++)null!=this.bends[i]&&null!=this.abspoints[i]&&(this.points[i-1]=n[i-1])}}this.drawPreview(),t||this.redrawHandles()}},mxEdgeHandler.prototype.redrawHandles=function(){var t=this.state.cell,e=this.labelShape.bounds;this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape.bounds=new mxRectangle(Math.round(this.label.x-e.width/2),Math.round(this.label.y-e.height/2),e.width,e.height);var n=this.graph.getLabel(t);if(this.labelShape.visible=null!=n&&n.length>0&&this.graph.isLabelMovable(t),null!=this.bends&&this.bends.length>0){var i=this.abspoints.length-1,r=this.abspoints[0],o=r.x,s=r.y;e=this.bends[0].bounds,this.bends[0].bounds=new mxRectangle(Math.floor(o-e.width/2),Math.floor(s-e.height/2),e.width,e.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw(),this.manageLabelHandle&&this.checkLabelHandle(this.bends[0].bounds);var l=this.abspoints[i],a=l.x,h=l.y,u=this.bends.length-1;e=this.bends[u].bounds,this.bends[u].bounds=new mxRectangle(Math.floor(a-e.width/2),Math.floor(h-e.height/2),e.width,e.height),this.bends[u].fill=this.getHandleFillColor(u),this.bends[u].redraw(),this.manageLabelHandle&&this.checkLabelHandle(this.bends[u].bounds),this.redrawInnerBends(r,l)}if(null!=this.abspoints&&null!=this.virtualBends&&this.virtualBends.length>0)for(var d=this.abspoints[0],c=0;c<this.virtualBends.length;c++)if(null!=this.virtualBends[c]&&null!=this.abspoints[c+1]){var p=this.abspoints[c+1],g=(e=this.virtualBends[c],d.x+(p.x-d.x)/2),m=d.y+(p.y-d.y)/2;e.bounds=new mxRectangle(Math.floor(g-e.bounds.width/2),Math.floor(m-e.bounds.height/2),e.bounds.width,e.bounds.height),e.redraw(),mxUtils.setOpacity(e.node,this.virtualBendOpacity),d=p,this.manageLabelHandle&&this.checkLabelHandle(e.bounds)}if(null!=this.labelShape&&this.labelShape.redraw(),null!=this.customHandles)for(c=0;c<this.customHandles.length;c++){var x=this.customHandles[c].shape.node.style.display;this.customHandles[c].redraw(),this.customHandles[c].shape.node.style.display=x,this.customHandles[c].shape.node.style.visibility=this.isCustomHandleVisible(this.customHandles[c])?"":"hidden"}},mxEdgeHandler.prototype.isCustomHandleVisible=function(t){return!this.graph.isEditing()&&1==this.state.view.graph.getSelectionCount()},mxEdgeHandler.prototype.setHandlesVisible=function(t){if(null!=this.bends)for(var e=0;e<this.bends.length;e++)this.bends[e].node.style.display=t?"":"none";if(null!=this.virtualBends)for(e=0;e<this.virtualBends.length;e++)this.virtualBends[e].node.style.display=t?"":"none";if(null!=this.labelShape&&(this.labelShape.node.style.display=t?"":"none"),null!=this.customHandles)for(e=0;e<this.customHandles.length;e++)this.customHandles[e].setVisible(t)},mxEdgeHandler.prototype.redrawInnerBends=function(t,e){for(var n=1;n<this.bends.length-1;n++)if(null!=this.bends[n])if(null!=this.abspoints[n]){var i=this.abspoints[n].x,r=this.abspoints[n].y,o=this.bends[n].bounds;this.bends[n].node.style.visibility="visible",this.bends[n].bounds=new mxRectangle(Math.round(i-o.width/2),Math.round(r-o.height/2),o.width,o.height),this.manageLabelHandle?this.checkLabelHandle(this.bends[n].bounds):null==this.handleImage&&this.labelShape.visible&&mxUtils.intersects(this.bends[n].bounds,this.labelShape.bounds)&&(w=mxConstants.HANDLE_SIZE+3,h=mxConstants.HANDLE_SIZE+3,this.bends[n].bounds=new mxRectangle(Math.round(i-w/2),Math.round(r-h/2),w,h)),this.bends[n].redraw()}else this.bends[n].destroy(),this.bends[n]=null},mxEdgeHandler.prototype.checkLabelHandle=function(t){if(null!=this.labelShape){var e=this.labelShape.bounds;mxUtils.intersects(t,e)&&(t.getCenterY()<e.getCenterY()?e.y=t.y+t.height:e.y=t.y-e.height)}},mxEdgeHandler.prototype.drawPreview=function(){try{if(this.isLabel){var t=this.labelShape.bounds,e=new mxRectangle(Math.round(this.label.x-t.width/2),Math.round(this.label.y-t.height/2),t.width,t.height);this.labelShape.bounds.equals(e)||(this.labelShape.bounds=e,this.labelShape.redraw())}null==this.shape||mxUtils.equalPoints(this.shape.points,this.abspoints)||(this.shape.apply(this.state),this.shape.points=this.abspoints.slice(),this.shape.scale=this.state.view.scale,this.shape.isDashed=this.isSelectionDashed(),this.shape.stroke=this.getSelectionColor(),this.shape.strokewidth=this.getSelectionStrokeWidth()/this.shape.scale/this.shape.scale,this.shape.isShadow=!1,this.shape.redraw()),this.updateParentHighlight()}catch(n){}},mxEdgeHandler.prototype.refresh=function(){null!=this.state&&(this.abspoints=this.getSelectionPoints(this.state),this.points=[],null!=this.bends&&(this.destroyBends(this.bends),this.bends=this.createBends()),null!=this.virtualBends&&(this.destroyBends(this.virtualBends),this.virtualBends=this.createVirtualBends()),null!=this.customHandles&&(this.destroyBends(this.customHandles),this.customHandles=this.createCustomHandles()),null!=this.labelShape&&null!=this.labelShape.node&&null!=this.labelShape.node.parentNode&&this.labelShape.node.parentNode.appendChild(this.labelShape.node))},mxEdgeHandler.prototype.isDestroyed=function(){return null==this.shape},mxEdgeHandler.prototype.destroyBends=function(t){if(null!=t)for(var e=0;e<t.length;e++)null!=t[e]&&t[e].destroy()},mxEdgeHandler.prototype.destroy=function(){if(null!=this.escapeHandler&&(this.state.view.graph.removeListener(this.escapeHandler),this.escapeHandler=null),null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.parentHighlight){var t=this.graph.model.getParent(this.state.cell),e=this.graph.view.getState(t);null!=e&&e.parentHighlight==this.parentHighlight&&(e.parentHighlight=null),this.parentHighlight.destroy(),this.parentHighlight=null}null!=this.labelShape&&(this.labelShape.destroy(),this.labelShape=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),this.destroyBends(this.virtualBends),this.virtualBends=null,this.destroyBends(this.customHandles),this.customHandles=null,this.destroyBends(this.bends),this.bends=null,this.removeHint()},__mxOutput.mxEdgeHandler="undefined"!==typeof mxEdgeHandler?mxEdgeHandler:void 0,mxUtils.extend(mxElbowEdgeHandler,mxEdgeHandler),mxElbowEdgeHandler.prototype.flipEnabled=!0,mxElbowEdgeHandler.prototype.doubleClickOrientationResource="none"!=mxClient.language?"doubleClickOrientation":"",mxElbowEdgeHandler.prototype.createBends=function(){var t=[],e=this.createHandleShape(0);return this.initBend(e),e.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE),t.push(e),t.push(this.createVirtualBend(mxUtils.bind(this,(function(t){!mxEvent.isConsumed(t)&&this.flipEnabled&&(this.graph.flipEdge(this.state.cell,t),mxEvent.consume(t))})))),this.points.push(new mxPoint(0,0)),e=this.createHandleShape(2),this.initBend(e),e.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE),t.push(e),t},mxElbowEdgeHandler.prototype.createVirtualBend=function(t){var e=this.createHandleShape();return this.initBend(e,t),e.setCursor(this.getCursorForBend()),this.graph.isCellBendable(this.state.cell)||(e.node.style.display="none"),e},mxElbowEdgeHandler.prototype.getCursorForBend=function(){return this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.TopToBottom||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_TOPTOBOTTOM||(this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.ElbowConnector||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_ELBOW)&&this.state.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL?"row-resize":"col-resize"},mxElbowEdgeHandler.prototype.getTooltipForNode=function(t){var e=null;return null==this.bends||null==this.bends[1]||t!=this.bends[1].node&&t.parentNode!=this.bends[1].node||(e=this.doubleClickOrientationResource,e=mxResources.get(e)||e),e},mxElbowEdgeHandler.prototype.convertPoint=function(t,e){var n=this.graph.getView().getScale(),i=this.graph.getView().getTranslate(),r=this.state.origin;return e&&(t.x=this.graph.snap(t.x),t.y=this.graph.snap(t.y)),t.x=Math.round(t.x/n-i.x-r.x),t.y=Math.round(t.y/n-i.y-r.y),t},mxElbowEdgeHandler.prototype.redrawInnerBends=function(t,e){var n=this.graph.getModel().getGeometry(this.state.cell),i=this.state.absolutePoints,r=null;i.length>1?(t=i[1],e=i[i.length-2]):null!=n.points&&n.points.length>0&&(r=i[0]),r=null==r?new mxPoint(t.x+(e.x-t.x)/2,t.y+(e.y-t.y)/2):new mxPoint(this.graph.getView().scale*(r.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(r.y+this.graph.getView().translate.y+this.state.origin.y));var o=this.bends[1].bounds,s=o.width,l=o.height,a=new mxRectangle(Math.round(r.x-s/2),Math.round(r.y-l/2),s,l);this.manageLabelHandle?this.checkLabelHandle(a):null==this.handleImage&&this.labelShape.visible&&mxUtils.intersects(a,this.labelShape.bounds)&&(s=mxConstants.HANDLE_SIZE+3,l=mxConstants.HANDLE_SIZE+3,a=new mxRectangle(Math.floor(r.x-s/2),Math.floor(r.y-l/2),s,l)),this.bends[1].bounds=a,this.bends[1].redraw(),this.manageLabelHandle&&this.checkLabelHandle(this.bends[1].bounds)},__mxOutput.mxElbowEdgeHandler="undefined"!==typeof mxElbowEdgeHandler?mxElbowEdgeHandler:void 0,mxUtils.extend(mxEdgeSegmentHandler,mxElbowEdgeHandler),mxEdgeSegmentHandler.prototype.getCurrentPoints=function(){var t=this.state.absolutePoints;if(null!=t){var e=Math.max(1,this.graph.view.scale);if(2==t.length||3==t.length&&(Math.abs(t[0].x-t[1].x)<e&&Math.abs(t[1].x-t[2].x)<e||Math.abs(t[0].y-t[1].y)<e&&Math.abs(t[1].y-t[2].y)<e)){var n=t[0].x+(t[t.length-1].x-t[0].x)/2,i=t[0].y+(t[t.length-1].y-t[0].y)/2;t=[t[0],new mxPoint(n,i),new mxPoint(n,i),t[t.length-1]]}}return t},mxEdgeSegmentHandler.prototype.getPreviewPoints=function(t){if(this.isSource||this.isTarget)return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);var e=this.getCurrentPoints(),n=this.convertPoint(e[0].clone(),!1);t=this.convertPoint(t.clone(),!1);for(var i=[],r=1;r<e.length;r++){var o=this.convertPoint(e[r].clone(),!1);r==this.index&&(0==Math.round(n.x-o.x)&&(n.x=t.x,o.x=t.x),0==Math.round(n.y-o.y)&&(n.y=t.y,o.y=t.y)),r<e.length-1&&i.push(o),n=o}if(1==i.length){var s=this.state.getVisibleTerminalState(!0),l=this.state.getVisibleTerminalState(!1),a=this.state.view.getScale(),h=this.state.view.getTranslate(),u=i[0].x*a+h.x,d=i[0].y*a+h.y;(null!=s&&mxUtils.contains(s,u,d)||null!=l&&mxUtils.contains(l,u,d))&&(i=[t,t])}return i},mxEdgeSegmentHandler.prototype.updatePreviewState=function(t,e,n,i){if(mxEdgeHandler.prototype.updatePreviewState.apply(this,arguments),!this.isSource&&!this.isTarget){e=this.convertPoint(e.clone(),!1);for(var r=t.absolutePoints,o=r[0],s=r[1],l=[],a=2;a<r.length;a++){var h=r[a];0==Math.round(o.x-s.x)&&0==Math.round(s.x-h.x)||0==Math.round(o.y-s.y)&&0==Math.round(s.y-h.y)||l.push(this.convertPoint(s.clone(),!1)),o=s,s=h}var u=this.state.getVisibleTerminalState(!0),d=this.state.getVisibleTerminalState(!1),c=this.state.absolutePoints;if(0!=l.length||0!=Math.round(r[0].x-r[r.length-1].x)&&0!=Math.round(r[0].y-r[r.length-1].y)){if(5==r.length&&2==l.length&&null!=u&&null!=d&&null!=c&&0==Math.round(c[0].x-c[c.length-1].x)){var p=this.graph.getView(),g=p.getScale(),m=p.getTranslate(),x=p.getRoutingCenterY(u)/g-m.y,y=this.graph.getConnectionConstraint(t,u,!0);if(null!=y){var f=this.graph.getConnectionPoint(u,y);null!=f&&(this.convertPoint(f,!1),x=f.y)}var A=p.getRoutingCenterY(d)/g-m.y,C=this.graph.getConnectionConstraint(t,d,!1);if(C){f=this.graph.getConnectionPoint(d,C);null!=f&&(this.convertPoint(f,!1),A=f.y)}l=[new mxPoint(e.x,x),new mxPoint(e.x,A)]}}else l=[e,e];this.points=l,t.view.updateFixedTerminalPoints(t,u,d),t.view.updatePoints(t,this.points,u,d),t.view.updateFloatingTerminalPoints(t,u,d)}},mxEdgeSegmentHandler.prototype.connect=function(t,e,n,i,r){var o=this.graph.getModel(),s=o.getGeometry(t),l=null;if(null!=s&&null!=s.points&&s.points.length>0){var a=this.abspoints,h=a[0],u=a[1];l=[];for(var d=2;d<a.length;d++){var c=a[d];0==Math.round(h.x-u.x)&&0==Math.round(u.x-c.x)||0==Math.round(h.y-u.y)&&0==Math.round(u.y-c.y)||l.push(this.convertPoint(u.clone(),!1)),h=u,u=c}}o.beginUpdate();try{if(null!=l){s=o.getGeometry(t);null!=s&&(s=s.clone(),s.points=l,o.setGeometry(t,s))}t=mxEdgeHandler.prototype.connect.apply(this,arguments)}finally{o.endUpdate()}return t},mxEdgeSegmentHandler.prototype.getTooltipForNode=function(t){return null},mxEdgeSegmentHandler.prototype.start=function(t,e,n){mxEdgeHandler.prototype.start.apply(this,arguments),null==this.bends||null==this.bends[n]||this.isSource||this.isTarget||mxUtils.setOpacity(this.bends[n].node,100)},mxEdgeSegmentHandler.prototype.createBends=function(){var t=[],e=this.createHandleShape(0);this.initBend(e),e.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE),t.push(e);var n=this.getCurrentPoints();if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var i=0;i<n.length-1;i++){e=this.createVirtualBend(),t.push(e);var r=0==Math.round(n[i].x-n[i+1].x);0==Math.round(n[i].y-n[i+1].y)&&i<n.length-2&&(r=0==Math.round(n[i].x-n[i+2].x)),e.setCursor(r?"col-resize":"row-resize"),this.points.push(new mxPoint(0,0))}}e=this.createHandleShape(n.length);return this.initBend(e),e.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE),t.push(e),t},mxEdgeSegmentHandler.prototype.redraw=function(){this.refresh(),mxEdgeHandler.prototype.redraw.apply(this,arguments)},mxEdgeSegmentHandler.prototype.redrawInnerBends=function(t,e){if(this.graph.isCellBendable(this.state.cell)){var n=this.getCurrentPoints();if(null!=n&&n.length>1){var i=!1;if(4==n.length&&0==Math.round(n[1].x-n[2].x)&&0==Math.round(n[1].y-n[2].y))if(i=!0,0==Math.round(n[0].y-n[n.length-1].y)){var r=n[0].x+(n[n.length-1].x-n[0].x)/2;n[1]=new mxPoint(r,n[1].y),n[2]=new mxPoint(r,n[2].y)}else{var o=n[0].y+(n[n.length-1].y-n[0].y)/2;n[1]=new mxPoint(n[1].x,o),n[2]=new mxPoint(n[2].x,o)}for(var s=0;s<n.length-1;s++)if(null!=this.bends[s+1]){t=n[s],e=n[s+1];var l=new mxPoint(t.x+(e.x-t.x)/2,t.y+(e.y-t.y)/2),a=this.bends[s+1].bounds;this.bends[s+1].bounds=new mxRectangle(Math.floor(l.x-a.width/2),Math.floor(l.y-a.height/2),a.width,a.height),this.bends[s+1].redraw(),this.manageLabelHandle&&this.checkLabelHandle(this.bends[s+1].bounds)}i&&(mxUtils.setOpacity(this.bends[1].node,this.virtualBendOpacity),mxUtils.setOpacity(this.bends[3].node,this.virtualBendOpacity))}}},__mxOutput.mxEdgeSegmentHandler="undefined"!==typeof mxEdgeSegmentHandler?mxEdgeSegmentHandler:void 0,mxKeyHandler.prototype.graph=null,mxKeyHandler.prototype.target=null,mxKeyHandler.prototype.normalKeys=null,mxKeyHandler.prototype.shiftKeys=null,mxKeyHandler.prototype.controlKeys=null,mxKeyHandler.prototype.controlShiftKeys=null,mxKeyHandler.prototype.enabled=!0,mxKeyHandler.prototype.isEnabled=function(){return this.enabled},mxKeyHandler.prototype.setEnabled=function(t){this.enabled=t},mxKeyHandler.prototype.bindKey=function(t,e){this.normalKeys[t]=e},mxKeyHandler.prototype.bindShiftKey=function(t,e){this.shiftKeys[t]=e},mxKeyHandler.prototype.bindControlKey=function(t,e){this.controlKeys[t]=e},mxKeyHandler.prototype.bindControlShiftKey=function(t,e){this.controlShiftKeys[t]=e},mxKeyHandler.prototype.isControlDown=function(t){return mxEvent.isControlDown(t)},mxKeyHandler.prototype.getFunction=function(t){return null==t||mxEvent.isAltDown(t)?null:this.isControlDown(t)?mxEvent.isShiftDown(t)?this.controlShiftKeys[t.keyCode]:this.controlKeys[t.keyCode]:mxEvent.isShiftDown(t)?this.shiftKeys[t.keyCode]:this.normalKeys[t.keyCode]},mxKeyHandler.prototype.isGraphEvent=function(t){var e=mxEvent.getSource(t);return!!(e==this.target||e.parentNode==this.target||null!=this.graph.cellEditor&&this.graph.cellEditor.isEventSource(t))||mxUtils.isAncestorNode(this.graph.container,e)},mxKeyHandler.prototype.keyDown=function(t){if(this.isEnabledForEvent(t))if(27==t.keyCode)this.escape(t);else if(!this.isEventIgnored(t)){var e=this.getFunction(t);null!=e&&(e(t),mxEvent.consume(t))}},mxKeyHandler.prototype.isEnabledForEvent=function(t){return this.graph.isEnabled()&&!mxEvent.isConsumed(t)&&this.isGraphEvent(t)&&this.isEnabled()},mxKeyHandler.prototype.isEventIgnored=function(t){return this.graph.isEditing()},mxKeyHandler.prototype.escape=function(t){this.graph.isEscapeEnabled()&&this.graph.escape(t)},mxKeyHandler.prototype.destroy=function(){null!=this.target&&null!=this.keydownHandler&&(mxEvent.removeListener(this.target,"keydown",this.keydownHandler),this.keydownHandler=null),this.target=null},__mxOutput.mxKeyHandler="undefined"!==typeof mxKeyHandler?mxKeyHandler:void 0,mxTooltipHandler.prototype.zIndex=10005,mxTooltipHandler.prototype.graph=null,mxTooltipHandler.prototype.delay=null,mxTooltipHandler.prototype.ignoreTouchEvents=!0,mxTooltipHandler.prototype.hideOnHover=!1,mxTooltipHandler.prototype.destroyed=!1,mxTooltipHandler.prototype.enabled=!0,mxTooltipHandler.prototype.isEnabled=function(){return this.enabled},mxTooltipHandler.prototype.setEnabled=function(t){this.enabled=t},mxTooltipHandler.prototype.isHideOnHover=function(){return this.hideOnHover},mxTooltipHandler.prototype.setHideOnHover=function(t){this.hideOnHover=t},mxTooltipHandler.prototype.init=function(){null!=document.body&&(this.div=document.createElement("div"),this.div.className="mxTooltip",this.div.style.visibility="hidden",document.body.appendChild(this.div),mxEvent.addGestureListeners(this.div,mxUtils.bind(this,(function(t){var e=mxEvent.getSource(t);"A"!=e.nodeName&&this.hideTooltip()}))))},mxTooltipHandler.prototype.getStateForEvent=function(t){return t.getState()},mxTooltipHandler.prototype.mouseDown=function(t,e){this.reset(e,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(t,e){if(e.getX()!=this.lastX||e.getY()!=this.lastY){this.reset(e,!0);var n=this.getStateForEvent(e);(this.isHideOnHover()||n!=this.state||e.getSource()!=this.node&&(!this.stateSource||null!=n&&this.stateSource==(e.isSource(n.shape)||!e.isSource(n.text))))&&this.hideTooltip()}this.lastX=e.getX(),this.lastY=e.getY()},mxTooltipHandler.prototype.mouseUp=function(t,e){this.reset(e,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(t,e,n){if((!this.ignoreTouchEvents||mxEvent.isMouseEvent(t.getEvent()))&&(this.resetTimer(),n=null!=n?n:this.getStateForEvent(t),e&&this.isEnabled()&&null!=n&&(null==this.div||"hidden"==this.div.style.visibility))){var i=t.getSource(),r=t.getX(),o=t.getY(),s=t.isSource(n.shape)||t.isSource(n.text);this.thread=window.setTimeout(mxUtils.bind(this,(function(){if(!this.graph.isEditing()&&!this.graph.popupMenuHandler.isMenuShowing()&&!this.graph.isMouseDown){var t=this.graph.getTooltip(n,i,r,o);this.show(t,r,o),this.state=n,this.node=i,this.stateSource=s}})),this.delay)}},mxTooltipHandler.prototype.hide=function(){this.resetTimer(),this.hideTooltip()},mxTooltipHandler.prototype.hideTooltip=function(){null!=this.div&&(this.div.style.visibility="hidden",this.div.innerHTML="")},mxTooltipHandler.prototype.show=function(t,e,n){if(!this.destroyed&&null!=t&&t.length>0){null==this.div&&this.init();var i=mxUtils.getScrollOrigin();this.div.style.zIndex=this.zIndex,this.div.style.left=e+i.x+"px",this.div.style.top=n+mxConstants.TOOLTIP_VERTICAL_OFFSET+i.y+"px",mxUtils.isNode(t)?(this.div.innerHTML="",this.div.appendChild(t)):this.div.innerHTML=t.replace(/\n/g,"<br>"),this.div.style.visibility="",mxUtils.fit(this.div)}},mxTooltipHandler.prototype.destroy=function(){this.destroyed||(this.graph.removeMouseListener(this),mxEvent.release(this.div),null!=this.div&&null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.destroyed=!0,this.div=null)},__mxOutput.mxTooltipHandler="undefined"!==typeof mxTooltipHandler?mxTooltipHandler:void 0,mxUtils.extend(mxCellTracker,mxCellMarker),mxCellTracker.prototype.mouseDown=function(t,e){},mxCellTracker.prototype.mouseMove=function(t,e){this.isEnabled()&&this.process(e)},mxCellTracker.prototype.mouseUp=function(t,e){},mxCellTracker.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),mxCellMarker.prototype.destroy.apply(this))},__mxOutput.mxCellTracker="undefined"!==typeof mxCellTracker?mxCellTracker:void 0,mxCellHighlight.prototype.keepOnTop=!1,mxCellHighlight.prototype.graph=null,mxCellHighlight.prototype.state=null,mxCellHighlight.prototype.spacing=2,mxCellHighlight.prototype.resetHandler=null,mxCellHighlight.prototype.setHighlightColor=function(t){this.highlightColor=t,null!=this.shape&&(this.shape.stroke=t)},mxCellHighlight.prototype.drawHighlight=function(){this.shape=this.createShape(),this.repaint(),this.keepOnTop||this.shape.node.parentNode.firstChild==this.shape.node||this.shape.node.parentNode.insertBefore(this.shape.node,this.shape.node.parentNode.firstChild)},mxCellHighlight.prototype.createShape=function(){var t=this.graph.cellRenderer.createShape(this.state);return t.svgStrokeTolerance=this.graph.tolerance,t.points=this.state.absolutePoints,t.apply(this.state),t.stroke=this.highlightColor,t.opacity=this.opacity,t.isDashed=this.dashed,t.isShadow=!1,t.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,t.init(this.graph.getView().getOverlayPane()),mxEvent.redirectMouseEvents(t.node,this.graph,this.state),this.graph.dialect!=mxConstants.DIALECT_SVG?t.pointerEvents=!1:t.svgPointerEvents="stroke",t},mxCellHighlight.prototype.getStrokeWidth=function(t){return this.strokeWidth},mxCellHighlight.prototype.repaint=function(){null!=this.state&&null!=this.shape&&(this.shape.scale=this.state.view.scale,this.graph.model.isEdge(this.state.cell)?(this.shape.strokewidth=this.getStrokeWidth(),this.shape.points=this.state.absolutePoints,this.shape.outline=!1):(this.shape.bounds=new mxRectangle(this.state.x-this.spacing,this.state.y-this.spacing,this.state.width+2*this.spacing,this.state.height+2*this.spacing),this.shape.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.shape.strokewidth=this.getStrokeWidth()/this.state.view.scale,this.shape.outline=!0),null!=this.state.shape&&this.shape.setCursor(this.state.shape.getCursor()),(mxClient.IS_QUIRKS||8==document.documentMode)&&("transparent"==this.shape.stroke?(this.shape.stroke="white",this.shape.opacity=1):this.shape.opacity=this.opacity),this.shape.redraw())},mxCellHighlight.prototype.hide=function(){this.highlight(null)},mxCellHighlight.prototype.highlight=function(t){this.state!=t&&(null!=this.shape&&(this.shape.destroy(),this.shape=null),this.state=t,null!=this.state&&this.drawHighlight())},mxCellHighlight.prototype.isHighlightAt=function(t,e){var n=!1;if(null!=this.shape&&null!=document.elementFromPoint&&!mxClient.IS_QUIRKS){var i=document.elementFromPoint(t,e);while(null!=i){if(i==this.shape.node){n=!0;break}i=i.parentNode}}return n},mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler),this.graph.getView().removeListener(this.repaintHandler),this.graph.getModel().removeListener(this.repaintHandler),null!=this.shape&&(this.shape.destroy(),this.shape=null)},__mxOutput.mxCellHighlight="undefined"!==typeof mxCellHighlight?mxCellHighlight:void 0,mxDefaultKeyHandler.prototype.editor=null,mxDefaultKeyHandler.prototype.handler=null,mxDefaultKeyHandler.prototype.bindAction=function(t,e,n){var i=mxUtils.bind(this,(function(){this.editor.execute(e)}));n?this.handler.bindControlKey(t,i):this.handler.bindKey(t,i)},mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy(),this.handler=null},__mxOutput.mxDefaultKeyHandler="undefined"!==typeof mxDefaultKeyHandler?mxDefaultKeyHandler:void 0,mxDefaultPopupMenu.prototype.imageBasePath=null,mxDefaultPopupMenu.prototype.config=null,mxDefaultPopupMenu.prototype.createMenu=function(t,e,n,i){if(null!=this.config){var r=this.createConditions(t,n,i),o=this.config.firstChild;this.addItems(t,e,n,i,r,o,null)}},mxDefaultPopupMenu.prototype.addItems=function(t,e,n,i,r,o,s){var l=!1;while(null!=o){if("add"==o.nodeName){var a=o.getAttribute("if");if(null==a||r[a]){var h=o.getAttribute("as");h=mxResources.get(h)||h;var u=mxUtils.eval(mxUtils.getTextContent(o)),d=o.getAttribute("action"),c=o.getAttribute("icon"),p=o.getAttribute("iconCls"),g=o.getAttribute("enabled-if"),m=null==g||r[g];l&&(e.addSeparator(s),l=!1),null!=c&&this.imageBasePath&&(c=this.imageBasePath+c);var x=this.addAction(e,t,h,c,u,d,n,s,p,m);this.addItems(t,e,n,i,r,o.firstChild,x)}}else"separator"==o.nodeName&&(l=!0);o=o.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(t,e,n,i,r,o,s,l,a,h){var u=function(t){"function"==typeof r&&r.call(e,e,s,t),null!=o&&e.execute(o,s,t)};return t.addItem(n,i,u,l,a,h)},mxDefaultPopupMenu.prototype.createConditions=function(t,e,n){var i=t.graph.getModel(),r=i.getChildCount(e),o=[];o["nocell"]=null==e,o["ncells"]=t.graph.getSelectionCount()>1,o["notRoot"]=i.getRoot()!=i.getParent(t.graph.getDefaultParent()),o["cell"]=null!=e;var s=null!=e&&1==t.graph.getSelectionCount();o["nonEmpty"]=s&&r>0,o["expandable"]=s&&t.graph.isCellFoldable(e,!1),o["collapsable"]=s&&t.graph.isCellFoldable(e,!0),o["validRoot"]=s&&t.graph.isValidRoot(e),o["emptyValidRoot"]=o["validRoot"]&&0==r,o["swimlane"]=s&&t.graph.isSwimlane(e);for(var l=this.config.getElementsByTagName("condition"),a=0;a<l.length;a++){var h=mxUtils.eval(mxUtils.getTextContent(l[a])),u=l[a].getAttribute("name");null!=u&&"function"==typeof h&&(o[u]=h(t,e,n))}return o},__mxOutput.mxDefaultPopupMenu="undefined"!==typeof mxDefaultPopupMenu?mxDefaultPopupMenu:void 0,mxDefaultToolbar.prototype.editor=null,mxDefaultToolbar.prototype.toolbar=null,mxDefaultToolbar.prototype.resetHandler=null,mxDefaultToolbar.prototype.spacing=4,mxDefaultToolbar.prototype.connectOnDrop=!1,mxDefaultToolbar.prototype.init=function(t){null!=t&&(this.toolbar=new mxToolbar(t),this.toolbar.addListener(mxEvent.SELECT,mxUtils.bind(this,(function(t,e){var n=e.getProperty("function");this.editor.insertFunction=null!=n?mxUtils.bind(this,(function(){n.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,this.resetHandler))},mxDefaultToolbar.prototype.addItem=function(t,e,n,i){var r=mxUtils.bind(this,(function(){null!=n&&n.length>0&&this.editor.execute(n)}));return this.toolbar.addItem(t,e,r,i)},mxDefaultToolbar.prototype.addSeparator=function(t){t=t||mxClient.imageBasePath+"/separator.gif",this.toolbar.addSeparator(t)},mxDefaultToolbar.prototype.addCombo=function(){return this.toolbar.addCombo()},mxDefaultToolbar.prototype.addActionCombo=function(t){return this.toolbar.addActionCombo(t)},mxDefaultToolbar.prototype.addActionOption=function(t,e,n){var i=mxUtils.bind(this,(function(){this.editor.execute(n)}));this.addOption(t,e,i)},mxDefaultToolbar.prototype.addOption=function(t,e,n){return this.toolbar.addOption(t,e,n)},mxDefaultToolbar.prototype.addMode=function(t,e,n,i,r){var o=mxUtils.bind(this,(function(){this.editor.setMode(n),null!=r&&r(this.editor)}));return this.toolbar.addSwitchMode(t,e,o,i)},mxDefaultToolbar.prototype.addPrototype=function(t,e,n,i,r,o){var s=mxUtils.bind(this,(function(){return"function"==typeof n?n():null!=n?this.editor.graph.cloneCell(n):null})),l=mxUtils.bind(this,(function(t,e){"function"==typeof r?r(this.editor,s(),t,e):this.drop(s(),t,e),this.toolbar.resetMode(),mxEvent.consume(t)})),a=this.toolbar.addMode(t,e,l,i,null,o),h=function(t,e,n){l(e,n)};return this.installDropHandler(a,h),a},mxDefaultToolbar.prototype.drop=function(t,e,n){var i=this.editor.graph,r=i.getModel();if(null!=n&&!r.isEdge(n)&&this.connectOnDrop&&i.isCellConnectable(n))this.connect(t,e,n);else{while(null!=n&&!i.isValidDropTarget(n,[t],e))n=r.getParent(n);this.insert(t,e,n)}},mxDefaultToolbar.prototype.insert=function(t,e,n){var i=this.editor.graph;if(i.canImportCell(t)){var r=mxEvent.getClientX(e),o=mxEvent.getClientY(e),s=mxUtils.convertPoint(i.container,r,o);return i.isSplitEnabled()&&i.isSplitTarget(n,[t],e)?i.splitEdge(n,[t],null,s.x,s.y):this.editor.addVertex(n,t,s.x,s.y)}return null},mxDefaultToolbar.prototype.connect=function(t,e,n){var i=this.editor.graph,r=i.getModel();if(null!=n&&i.isCellConnectable(t)&&i.isEdgeValid(null,n,t)){var o=null;r.beginUpdate();try{var s=r.getGeometry(n),l=r.getGeometry(t).clone();l.x=s.x+(s.width-l.width)/2,l.y=s.y+(s.height-l.height)/2;var a=this.spacing*i.gridSize,h=20*r.getDirectedEdgeCount(n,!0);this.editor.horizontalFlow?l.x+=(l.width+s.width)/2+a+h:l.y+=(l.height+s.height)/2+a+h,t.setGeometry(l);var u=r.getParent(n);if(i.addCell(t,u),i.constrainChild(t),o=this.editor.createEdge(n,t),null==r.getGeometry(o)){var d=new mxGeometry;d.relative=!0,r.setGeometry(o,d)}i.addEdge(o,u,n,t)}finally{r.endUpdate()}i.setSelectionCells([t,o]),i.scrollCellToVisible(t)}},mxDefaultToolbar.prototype.installDropHandler=function(t,e){var n=document.createElement("img");n.setAttribute("src",t.getAttribute("src"));var i=mxUtils.bind(this,(function(r){n.style.width=2*t.offsetWidth+"px",n.style.height=2*t.offsetHeight+"px",mxUtils.makeDraggable(t,this.editor.graph,e,n),mxEvent.removeListener(n,"load",i)}));mxClient.IS_IE?i():mxEvent.addListener(n,"load",i)},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)},__mxOutput.mxDefaultToolbar="undefined"!==typeof mxDefaultToolbar?mxDefaultToolbar:void 0,mxLoadResources?mxResources.add(mxClient.basePath+"/resources/editor"):mxClient.defaultBundles.push(mxClient.basePath+"/resources/editor"),mxEditor.prototype=new mxEventSource,mxEditor.prototype.constructor=mxEditor,mxEditor.prototype.askZoomResource="none"!=mxClient.language?"askZoom":"",mxEditor.prototype.lastSavedResource="none"!=mxClient.language?"lastSaved":"",mxEditor.prototype.currentFileResource="none"!=mxClient.language?"currentFile":"",mxEditor.prototype.propertiesResource="none"!=mxClient.language?"properties":"",mxEditor.prototype.tasksResource="none"!=mxClient.language?"tasks":"",mxEditor.prototype.helpResource="none"!=mxClient.language?"help":"",mxEditor.prototype.outlineResource="none"!=mxClient.language?"outline":"",mxEditor.prototype.outline=null,mxEditor.prototype.graph=null,mxEditor.prototype.graphRenderHint=null,mxEditor.prototype.toolbar=null,mxEditor.prototype.status=null,mxEditor.prototype.popupHandler=null,mxEditor.prototype.undoManager=null,mxEditor.prototype.keyHandler=null,mxEditor.prototype.actions=null,mxEditor.prototype.dblClickAction="edit",mxEditor.prototype.swimlaneRequired=!1,mxEditor.prototype.disableContextMenu=!0,mxEditor.prototype.insertFunction=null,mxEditor.prototype.forcedInserting=!1,mxEditor.prototype.templates=null,mxEditor.prototype.defaultEdge=null,mxEditor.prototype.defaultEdgeStyle=null,mxEditor.prototype.defaultGroup=null,mxEditor.prototype.groupBorderSize=null,mxEditor.prototype.filename=null,mxEditor.prototype.linefeed="
",mxEditor.prototype.postParameterName="xml",mxEditor.prototype.escapePostData=!0,mxEditor.prototype.urlPost=null,mxEditor.prototype.urlImage=null,mxEditor.prototype.horizontalFlow=!1,mxEditor.prototype.layoutDiagram=!1,mxEditor.prototype.swimlaneSpacing=0,mxEditor.prototype.maintainSwimlanes=!1,mxEditor.prototype.layoutSwimlanes=!1,mxEditor.prototype.cycleAttributeValues=null,mxEditor.prototype.cycleAttributeIndex=0,mxEditor.prototype.cycleAttributeName="fillColor",mxEditor.prototype.tasks=null,mxEditor.prototype.tasksWindowImage=null,mxEditor.prototype.tasksTop=20,mxEditor.prototype.help=null,mxEditor.prototype.helpWindowImage=null,mxEditor.prototype.urlHelp=null,mxEditor.prototype.helpWidth=300,mxEditor.prototype.helpHeight=260,mxEditor.prototype.propertiesWidth=240,mxEditor.prototype.propertiesHeight=null,mxEditor.prototype.movePropertiesDialog=!1,mxEditor.prototype.validating=!1,mxEditor.prototype.modified=!1,mxEditor.prototype.isModified=function(){return this.modified},mxEditor.prototype.setModified=function(t){this.modified=t},mxEditor.prototype.addActions=function(){this.addAction("save",(function(t){t.save()})),this.addAction("print",(function(t){var e=new mxPrintPreview(t.graph,1);e.open()})),this.addAction("show",(function(t){mxUtils.show(t.graph,null,10,10)})),this.addAction("exportImage",(function(t){var e=t.getUrlImage();if(null==e||mxClient.IS_LOCAL)t.execute("show");else{var n=mxUtils.getViewXml(t.graph,1),i=mxUtils.getXml(n,"\n");mxUtils.submit(e,t.postParameterName+"="+encodeURIComponent(i),document,"_blank")}})),this.addAction("refresh",(function(t){t.graph.refresh()})),this.addAction("cut",(function(t){t.graph.isEnabled()&&mxClipboard.cut(t.graph)})),this.addAction("copy",(function(t){t.graph.isEnabled()&&mxClipboard.copy(t.graph)})),this.addAction("paste",(function(t){t.graph.isEnabled()&&mxClipboard.paste(t.graph)})),this.addAction("delete",(function(t){t.graph.isEnabled()&&t.graph.removeCells()})),this.addAction("group",(function(t){t.graph.isEnabled()&&t.graph.setSelectionCell(t.groupCells())})),this.addAction("ungroup",(function(t){t.graph.isEnabled()&&t.graph.setSelectionCells(t.graph.ungroupCells())})),this.addAction("removeFromParent",(function(t){t.graph.isEnabled()&&t.graph.removeCellsFromParent()})),this.addAction("undo",(function(t){t.graph.isEnabled()&&t.undo()})),this.addAction("redo",(function(t){t.graph.isEnabled()&&t.redo()})),this.addAction("zoomIn",(function(t){t.graph.zoomIn()})),this.addAction("zoomOut",(function(t){t.graph.zoomOut()})),this.addAction("actualSize",(function(t){t.graph.zoomActual()})),this.addAction("fit",(function(t){t.graph.fit()})),this.addAction("showProperties",(function(t,e){t.showProperties(e)})),this.addAction("selectAll",(function(t){t.graph.isEnabled()&&t.graph.selectAll()})),this.addAction("selectNone",(function(t){t.graph.isEnabled()&&t.graph.clearSelection()})),this.addAction("selectVertices",(function(t){t.graph.isEnabled()&&t.graph.selectVertices()})),this.addAction("selectEdges",(function(t){t.graph.isEnabled()&&t.graph.selectEdges()})),this.addAction("edit",(function(t,e){t.graph.isEnabled()&&t.graph.isCellEditable(e)&&t.graph.startEditingAtCell(e)})),this.addAction("toBack",(function(t,e){t.graph.isEnabled()&&t.graph.orderCells(!0)})),this.addAction("toFront",(function(t,e){t.graph.isEnabled()&&t.graph.orderCells(!1)})),this.addAction("enterGroup",(function(t,e){t.graph.enterGroup(e)})),this.addAction("exitGroup",(function(t){t.graph.exitGroup()})),this.addAction("home",(function(t){t.graph.home()})),this.addAction("selectPrevious",(function(t){t.graph.isEnabled()&&t.graph.selectPreviousCell()})),this.addAction("selectNext",(function(t){t.graph.isEnabled()&&t.graph.selectNextCell()})),this.addAction("selectParent",(function(t){t.graph.isEnabled()&&t.graph.selectParentCell()})),this.addAction("selectChild",(function(t){t.graph.isEnabled()&&t.graph.selectChildCell()})),this.addAction("collapse",(function(t){t.graph.isEnabled()&&t.graph.foldCells(!0)})),this.addAction("collapseAll",(function(t){if(t.graph.isEnabled()){var e=t.graph.getChildVertices();t.graph.foldCells(!0,!1,e)}})),this.addAction("expand",(function(t){t.graph.isEnabled()&&t.graph.foldCells(!1)})),this.addAction("expandAll",(function(t){if(t.graph.isEnabled()){var e=t.graph.getChildVertices();t.graph.foldCells(!1,!1,e)}})),this.addAction("bold",(function(t){t.graph.isEnabled()&&t.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD)})),this.addAction("italic",(function(t){t.graph.isEnabled()&&t.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC)})),this.addAction("underline",(function(t){t.graph.isEnabled()&&t.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE)})),this.addAction("alignCellsLeft",(function(t){t.graph.isEnabled()&&t.graph.alignCells(mxConstants.ALIGN_LEFT)})),this.addAction("alignCellsCenter",(function(t){t.graph.isEnabled()&&t.graph.alignCells(mxConstants.ALIGN_CENTER)})),this.addAction("alignCellsRight",(function(t){t.graph.isEnabled()&&t.graph.alignCells(mxConstants.ALIGN_RIGHT)})),this.addAction("alignCellsTop",(function(t){t.graph.isEnabled()&&t.graph.alignCells(mxConstants.ALIGN_TOP)})),this.addAction("alignCellsMiddle",(function(t){t.graph.isEnabled()&&t.graph.alignCells(mxConstants.ALIGN_MIDDLE)})),this.addAction("alignCellsBottom",(function(t){t.graph.isEnabled()&&t.graph.alignCells(mxConstants.ALIGN_BOTTOM)})),this.addAction("alignFontLeft",(function(t){t.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT)})),this.addAction("alignFontCenter",(function(t){t.graph.isEnabled()&&t.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER)})),this.addAction("alignFontRight",(function(t){t.graph.isEnabled()&&t.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT)})),this.addAction("alignFontTop",(function(t){t.graph.isEnabled()&&t.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP)})),this.addAction("alignFontMiddle",(function(t){t.graph.isEnabled()&&t.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)})),this.addAction("alignFontBottom",(function(t){t.graph.isEnabled()&&t.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM)})),this.addAction("zoom",(function(t){var e=100*t.graph.getView().scale,n=parseFloat(mxUtils.prompt(mxResources.get(t.askZoomResource)||t.askZoomResource,e))/100;isNaN(n)||t.graph.getView().setScale(n)})),this.addAction("toggleTasks",(function(t){null!=t.tasks?t.tasks.setVisible(!t.tasks.isVisible()):t.showTasks()})),this.addAction("toggleHelp",(function(t){null!=t.help?t.help.setVisible(!t.help.isVisible()):t.showHelp()})),this.addAction("toggleOutline",(function(t){null==t.outline?t.showOutline():t.outline.setVisible(!t.outline.isVisible())})),this.addAction("toggleConsole",(function(t){mxLog.setVisible(!mxLog.isVisible())}))},mxEditor.prototype.configure=function(t){if(null!=t){var e=new mxCodec(t.ownerDocument);e.decode(t,this),this.resetHistory()}},mxEditor.prototype.resetFirstTime=function(){document.cookie="mxgraph=seen; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/"},mxEditor.prototype.resetHistory=function(){this.lastSnapshot=(new Date).getTime(),this.undoManager.clear(),this.ignoredChanges=0,this.setModified(!1)},mxEditor.prototype.addAction=function(t,e){this.actions[t]=e},mxEditor.prototype.execute=function(t,e,n){var i=this.actions[t];if(null!=i)try{var r=arguments;r[0]=this,i.apply(this,r)}catch(o){throw mxUtils.error("Cannot execute "+t+": "+o.message,280,!0),o}else mxUtils.error("Cannot find action "+t,280,!0)},mxEditor.prototype.addTemplate=function(t,e){this.templates[t]=e},mxEditor.prototype.getTemplate=function(t){return this.templates[t]},mxEditor.prototype.createGraph=function(){var t=new mxGraph(null,null,this.graphRenderHint);return t.setTooltips(!0),t.setPanning(!0),this.installDblClickHandler(t),this.installUndoHandler(t),this.installDrillHandler(t),this.installChangeHandler(t),this.installInsertHandler(t),t.popupMenuHandler.factoryMethod=mxUtils.bind(this,(function(t,e,n){return this.createPopupMenu(t,e,n)})),t.connectionHandler.factoryMethod=mxUtils.bind(this,(function(t,e){return this.createEdge(t,e)})),this.createSwimlaneManager(t),this.createLayoutManager(t),t},mxEditor.prototype.createSwimlaneManager=function(t){var e=new mxSwimlaneManager(t,!1);return e.isHorizontal=mxUtils.bind(this,(function(){return this.horizontalFlow})),e.isEnabled=mxUtils.bind(this,(function(){return this.maintainSwimlanes})),e},mxEditor.prototype.createLayoutManager=function(t){var e=new mxLayoutManager(t),n=this;return e.getLayout=function(e){var i=null,r=n.graph.getModel();return null!=r.getParent(e)&&(n.layoutSwimlanes&&t.isSwimlane(e)?(null==n.swimlaneLayout&&(n.swimlaneLayout=n.createSwimlaneLayout()),i=n.swimlaneLayout):n.layoutDiagram&&(t.isValidRoot(e)||null==r.getParent(r.getParent(e)))&&(null==n.diagramLayout&&(n.diagramLayout=n.createDiagramLayout()),i=n.diagramLayout)),i},e},mxEditor.prototype.setGraphContainer=function(t){null==this.graph.container&&(this.graph.init(t),this.rubberband=new mxRubberband(this.graph),this.disableContextMenu&&mxEvent.disableContextMenu(t),mxClient.IS_QUIRKS&&new mxDivResizer(t))},mxEditor.prototype.installDblClickHandler=function(t){t.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,(function(e,n){var i=n.getProperty("cell");null!=i&&t.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,i),n.consume())})))},mxEditor.prototype.installUndoHandler=function(t){var e=mxUtils.bind(this,(function(t,e){var n=e.getProperty("edit");this.undoManager.undoableEditHappened(n)}));t.getModel().addListener(mxEvent.UNDO,e),t.getView().addListener(mxEvent.UNDO,e);var n=function(e,n){var i=n.getProperty("edit").changes;t.setSelectionCells(t.getSelectionCellsForChanges(i))};this.undoManager.addListener(mxEvent.UNDO,n),this.undoManager.addListener(mxEvent.REDO,n)},mxEditor.prototype.installDrillHandler=function(t){var e=mxUtils.bind(this,(function(t){this.fireEvent(new mxEventObject(mxEvent.ROOT))}));t.getView().addListener(mxEvent.DOWN,e),t.getView().addListener(mxEvent.UP,e)},mxEditor.prototype.installChangeHandler=function(t){var e=mxUtils.bind(this,(function(e,n){this.setModified(!0),1==this.validating&&t.validateGraph();for(var i=n.getProperty("edit").changes,r=0;r<i.length;r++){var o=i[r];if(o instanceof mxRootChange||o instanceof mxValueChange&&o.cell==this.graph.model.root||o instanceof mxCellAttributeChange&&o.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}}));t.getModel().addListener(mxEvent.CHANGE,e)},mxEditor.prototype.installInsertHandler=function(t){var e=this,n={mouseDown:function(t,n){null==e.insertFunction||n.isPopupTrigger()||!e.forcedInserting&&null!=n.getState()||(e.graph.clearSelection(),e.insertFunction(n.getEvent(),n.getCell()),this.isActive=!0,n.consume())},mouseMove:function(t,e){this.isActive&&e.consume()},mouseUp:function(t,e){this.isActive&&(this.isActive=!1,e.consume())}};t.addMouseListener(n)},mxEditor.prototype.createDiagramLayout=function(){var t=this.graph.gridSize,e=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*t,2*t);return e.isVertexIgnored=function(t){return!e.graph.isSwimlane(t)},e},mxEditor.prototype.createSwimlaneLayout=function(){return new mxCompactTreeLayout(this.graph,this.horizontalFlow)},mxEditor.prototype.createToolbar=function(){return new mxDefaultToolbar(null,this)},mxEditor.prototype.setToolbarContainer=function(t){this.toolbar.init(t),mxClient.IS_QUIRKS&&new mxDivResizer(t)},mxEditor.prototype.setStatusContainer=function(t){null==this.status&&(this.status=t,this.addListener(mxEvent.SAVE,mxUtils.bind(this,(function(){var t=(new Date).toLocaleString();this.setStatus((mxResources.get(this.lastSavedResource)||this.lastSavedResource)+": "+t)}))),this.addListener(mxEvent.OPEN,mxUtils.bind(this,(function(){this.setStatus((mxResources.get(this.currentFileResource)||this.currentFileResource)+": "+this.filename)}))),mxClient.IS_QUIRKS&&new mxDivResizer(t))},mxEditor.prototype.setStatus=function(t){null!=this.status&&null!=t&&(this.status.innerHTML=t)},mxEditor.prototype.setTitleContainer=function(t){this.addListener(mxEvent.ROOT,mxUtils.bind(this,(function(e){t.innerHTML=this.getTitle()}))),mxClient.IS_QUIRKS&&new mxDivResizer(t)},mxEditor.prototype.treeLayout=function(t,e){if(null!=t){var n=new mxCompactTreeLayout(this.graph,e);n.execute(t)}},mxEditor.prototype.getTitle=function(){var t="",e=this.graph,n=e.getCurrentRoot();while(null!=n&&null!=e.getModel().getParent(e.getModel().getParent(n)))e.isValidRoot(n)&&(t=" > "+e.convertValueToString(n)+t),n=e.getModel().getParent(n);var i=this.getRootTitle();return i+t},mxEditor.prototype.getRootTitle=function(){var t=this.graph.getModel().getRoot();return this.graph.convertValueToString(t)},mxEditor.prototype.undo=function(){this.undoManager.undo()},mxEditor.prototype.redo=function(){this.undoManager.redo()},mxEditor.prototype.groupCells=function(){var t=null!=this.groupBorderSize?this.groupBorderSize:this.graph.gridSize;return this.graph.groupCells(this.createGroup(),t)},mxEditor.prototype.createGroup=function(){var t=this.graph.getModel();return t.cloneCell(this.defaultGroup)},mxEditor.prototype.open=function(t){if(null!=t){var e=mxUtils.load(t).getXml();this.readGraphModel(e.documentElement),this.filename=t,this.fireEvent(new mxEventObject(mxEvent.OPEN,"filename",t))}},mxEditor.prototype.readGraphModel=function(t){var e=new mxCodec(t.ownerDocument);e.decode(t,this.graph.getModel()),this.resetHistory()},mxEditor.prototype.save=function(t,e){if(t=t||this.getUrlPost(),null!=t&&t.length>0){var n=this.writeGraphModel(e);this.postDiagram(t,n),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",t))},mxEditor.prototype.postDiagram=function(t,e){this.escapePostData&&(e=encodeURIComponent(e)),mxUtils.post(t,this.postParameterName+"="+e,mxUtils.bind(this,(function(n){this.fireEvent(new mxEventObject(mxEvent.POST,"request",n,"url",t,"data",e))})))},mxEditor.prototype.writeGraphModel=function(t){t=null!=t?t:this.linefeed;var e=new mxCodec,n=e.encode(this.graph.getModel());return mxUtils.getXml(n,t)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.swapStyles=function(t,e){var n=this.graph.getStylesheet().styles[e];this.graph.getView().getStylesheet().putCellStyle(e,this.graph.getStylesheet().styles[t]),this.graph.getStylesheet().putCellStyle(t,n),this.graph.refresh()},mxEditor.prototype.showProperties=function(t){if(t=t||this.graph.getSelectionCell(),null==t&&(t=this.graph.getCurrentRoot(),null==t&&(t=this.graph.getModel().getRoot())),null!=t){this.graph.stopEditing(!0);var e=mxUtils.getOffset(this.graph.container),n=e.x+10,i=e.y;if(null==this.properties||this.movePropertiesDialog){var r=this.graph.getCellBounds(t);null!=r&&(n+=r.x+Math.min(200,r.width),i+=r.y)}else n=this.properties.getX(),i=this.properties.getY();this.hideProperties();var o=this.createProperties(t);null!=o&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,o,n,i,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(t){var e=this.graph.getModel(),n=e.getValue(t);if(mxUtils.isNode(n)){var i=new mxForm("properties"),r=i.addText("ID",t.getId());r.setAttribute("readonly","true");var o=null,s=null,l=null,a=null,h=null;e.isVertex(t)&&(o=e.getGeometry(t),null!=o&&(s=i.addText("top",o.y),l=i.addText("left",o.x),a=i.addText("width",o.width),h=i.addText("height",o.height)));for(var u=e.getStyle(t),d=i.addText("Style",u||""),c=n.attributes,p=[],g=0;g<c.length;g++){var m=c[g].value;p[g]=i.addTextarea(c[g].nodeName,m,"label"==c[g].nodeName?4:2)}var x=mxUtils.bind(this,(function(){this.hideProperties(),e.beginUpdate();try{null!=o&&(o=o.clone(),o.x=parseFloat(l.value),o.y=parseFloat(s.value),o.width=parseFloat(a.value),o.height=parseFloat(h.value),e.setGeometry(t,o)),d.value.length>0?e.setStyle(t,d.value):e.setStyle(t,null);for(var n=0;n<c.length;n++){var i=new mxCellAttributeChange(t,c[n].nodeName,p[n].value);e.execute(i)}this.graph.isAutoSizeCell(t)&&this.graph.updateCellSize(t)}finally{e.endUpdate()}})),y=mxUtils.bind(this,(function(){this.hideProperties()}));return i.addButtons(x,y),i.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 t=document.createElement("div");t.style.padding="4px",t.style.paddingLeft="20px";var e=document.body.clientWidth,n=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,t,e-220,this.tasksTop,200);n.setClosable(!0),n.destroyOnClose=!1;var i=mxUtils.bind(this,(function(e){mxEvent.release(t),t.innerHTML="",this.createTasks(t)}));this.graph.getModel().addListener(mxEvent.CHANGE,i),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,i),this.graph.addListener(mxEvent.ROOT,i),null!=this.tasksWindowImage&&n.setImage(this.tasksWindowImage),this.tasks=n,this.createTasks(t)}this.tasks.setVisible(!0)},mxEditor.prototype.refreshTasks=function(t){if(null!=this.tasks){t=this.tasks.content;mxEvent.release(t),t.innerHTML="",this.createTasks(t)}},mxEditor.prototype.createTasks=function(t){},mxEditor.prototype.showHelp=function(t){if(null==this.help){var e=document.createElement("iframe");e.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),e.setAttribute("height","100%"),e.setAttribute("width","100%"),e.setAttribute("frameBorder","0"),e.style.backgroundColor="white";var n=document.body.clientWidth,i=document.body.clientHeight||document.documentElement.clientHeight,r=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,e,(n-this.helpWidth)/2,(i-this.helpHeight)/3,this.helpWidth,this.helpHeight);if(r.setMaximizable(!0),r.setClosable(!0),r.destroyOnClose=!1,r.setResizable(!0),null!=this.helpWindowImage&&r.setImage(this.helpWindowImage),mxClient.IS_NS){var o=function(t){var n=r.div.offsetHeight;e.setAttribute("height",n-26+"px")};r.addListener(mxEvent.RESIZE_END,o),r.addListener(mxEvent.MAXIMIZE,o),r.addListener(mxEvent.NORMALIZE,o),r.addListener(mxEvent.SHOW,o)}this.help=r}this.help.setVisible(!0)},mxEditor.prototype.showOutline=function(){var t=null==this.outline;if(t){var e=document.createElement("div");e.style.overflow="hidden",e.style.position="relative",e.style.width="100%",e.style.height="100%",e.style.background="white",e.style.cursor="move",8==document.documentMode&&(e.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=100)");var n=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),i=new mxOutline(this.graph,e);n.setClosable(!0),n.setResizable(!0),n.destroyOnClose=!1,n.addListener(mxEvent.RESIZE_END,(function(){i.update()})),this.outline=n,this.outline.outline=i}this.outline.setVisible(!0),this.outline.outline.update(!0)},mxEditor.prototype.setMode=function(t){"select"==t?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!1)):"connect"==t?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!0)):"pan"==t&&(this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.setConnectable(!1))},mxEditor.prototype.createPopupMenu=function(t,e,n){this.popupHandler.createMenu(this,t,e,n)},mxEditor.prototype.createEdge=function(t,e){var n=null;if(null!=this.defaultEdge){var i=this.graph.getModel();n=i.cloneCell(this.defaultEdge)}else{n=new mxCell(""),n.setEdge(!0);var r=new mxGeometry;r.relative=!0,n.setGeometry(r)}var o=this.getEdgeStyle();return null!=o&&n.setStyle(o),n},mxEditor.prototype.getEdgeStyle=function(){return this.defaultEdgeStyle},mxEditor.prototype.consumeCycleAttribute=function(t){return null!=this.cycleAttributeValues&&this.cycleAttributeValues.length>0&&this.graph.isSwimlane(t)?this.cycleAttributeValues[this.cycleAttributeIndex++%this.cycleAttributeValues.length]:null},mxEditor.prototype.cycleAttribute=function(t){if(null!=this.cycleAttributeName){var e=this.consumeCycleAttribute(t);null!=e&&t.setStyle(t.getStyle()+";"+this.cycleAttributeName+"="+e)}},mxEditor.prototype.addVertex=function(t,e,n,i){var r=this.graph.getModel();while(null!=t&&!this.graph.isValidDropTarget(t))t=r.getParent(t);t=null!=t?t:this.graph.getSwimlaneAt(n,i);var o=this.graph.getView().scale,s=r.getGeometry(e),l=r.getGeometry(t);if(this.graph.isSwimlane(e)&&!this.graph.swimlaneNesting)t=null;else{if(null==t&&this.swimlaneRequired)return null;if(null!=t&&null!=l){var a=this.graph.getView().getState(t);if(null!=a){if(n-=a.origin.x*o,i-=a.origin.y*o,this.graph.isConstrainedMoving){var h=s.width,u=s.height,d=a.x+a.width;n+h>d&&(n-=n+h-d),d=a.y+a.height,i+u>d&&(i-=i+u-d)}}else null!=l&&(n-=l.x*o,i-=l.y*o)}}s=s.clone(),s.x=this.graph.snap(n/o-this.graph.getView().translate.x-this.graph.gridSize/2),s.y=this.graph.snap(i/o-this.graph.getView().translate.y-this.graph.gridSize/2),e.setGeometry(s),null==t&&(t=this.graph.getDefaultParent()),this.cycleAttribute(e),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",e,"parent",t)),r.beginUpdate();try{e=this.graph.addCell(e,t),null!=e&&(this.graph.constrainChild(e),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",e)))}finally{r.endUpdate()}return null!=e&&(this.graph.setSelectionCell(e),this.graph.scrollCellToVisible(e),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",e))),e},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.status=null,this.templates=null)},__mxOutput.mxEditor="undefined"!==typeof mxEditor?mxEditor:void 0;var mxCodecRegistry={codecs:[],aliases:[],register:function(t){if(null!=t){var e=t.getName();mxCodecRegistry.codecs[e]=t;var n=mxUtils.getFunctionName(t.template.constructor);n!=e&&mxCodecRegistry.addAlias(n,e)}return t},addAlias:function(t,e){mxCodecRegistry.aliases[t]=e},getCodec:function(t){var e=null;if(null!=t){var n=mxUtils.getFunctionName(t),i=mxCodecRegistry.aliases[n];if(null!=i&&(n=i),e=mxCodecRegistry.codecs[n],null==e)try{e=new mxObjectCodec(new t),mxCodecRegistry.register(e)}catch(r){}}return e}};function mxCodec(t){this.document=t||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(t,e,n,i){for(var r in this.template=t,this.exclude=null!=e?e:[],this.idrefs=null!=n?n:[],this.mapping=null!=i?i:[],this.reverse=new Object,this.mapping)this.reverse[this.mapping[r]]=r}__mxOutput.mxCodecRegistry="undefined"!==typeof mxCodecRegistry?mxCodecRegistry:void 0,mxCodec.prototype.document=null,mxCodec.prototype.objects=null,mxCodec.prototype.elements=null,mxCodec.prototype.encodeDefaults=!1,mxCodec.prototype.putObject=function(t,e){return this.objects[t]=e,e},mxCodec.prototype.getObject=function(t){var e=null;if(null!=t&&(e=this.objects[t],null==e&&(e=this.lookup(t),null==e))){var n=this.getElementById(t);null!=n&&(e=this.decode(n))}return e},mxCodec.prototype.lookup=function(t){return null},mxCodec.prototype.getElementById=function(t){return this.updateElements(),this.elements[t]},mxCodec.prototype.updateElements=function(){null==this.elements&&(this.elements=new Object,null!=this.document.documentElement&&this.addElement(this.document.documentElement))},mxCodec.prototype.addElement=function(t){if(t.nodeType==mxConstants.NODETYPE_ELEMENT){var e=t.getAttribute("id");if(null!=e)if(null==this.elements[e])this.elements[e]=t;else if(this.elements[e]!=t)throw new Error(e+": Duplicate ID")}t=t.firstChild;while(null!=t)this.addElement(t),t=t.nextSibling},mxCodec.prototype.getId=function(t){var e=null;return null!=t&&(e=this.reference(t),null==e&&t instanceof mxCell&&(e=t.getId(),null==e&&(e=mxCellPath.create(t),0==e.length&&(e="root")))),e},mxCodec.prototype.reference=function(t){return null},mxCodec.prototype.encode=function(t){var e=null;if(null!=t&&null!=t.constructor){var n=mxCodecRegistry.getCodec(t.constructor);null!=n?e=n.encode(this,t):mxUtils.isNode(t)?e=mxUtils.importNode(this.document,t,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(t.constructor))}return e},mxCodec.prototype.decode=function(t,e){this.updateElements();var n=null;if(null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT){var i=null;try{i=window[t.nodeName]}catch(o){}var r=mxCodecRegistry.getCodec(i);null!=r?n=r.decode(this,t,e):(n=t.cloneNode(!0),n.removeAttribute("as"))}return n},mxCodec.prototype.encodeCell=function(t,e,n){if(e.appendChild(this.encode(t)),null==n||n)for(var i=t.getChildCount(),r=0;r<i;r++)this.encodeCell(t.getChildAt(r),e)},mxCodec.prototype.isCellCodec=function(t){return null!=t&&"function"==typeof t.isCellCodec&&t.isCellCodec()},mxCodec.prototype.decodeCell=function(t,e){e=null==e||e;var n=null;if(null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT){var i=mxCodecRegistry.getCodec(t.nodeName);if(!this.isCellCodec(i)){var r=t.firstChild;while(null!=r&&!this.isCellCodec(i))i=mxCodecRegistry.getCodec(r.nodeName),r=r.nextSibling}this.isCellCodec(i)||(i=mxCodecRegistry.getCodec(mxCell)),n=i.decode(this,t),e&&this.insertIntoGraph(n)}return n},mxCodec.prototype.insertIntoGraph=function(t){var e=t.parent,n=t.getTerminal(!0),i=t.getTerminal(!1);if(t.setTerminal(null,!1),t.setTerminal(null,!0),t.parent=null,null!=e){if(e==t)throw new Error(e.id+": Self Reference");e.insert(t)}null!=n&&n.insertEdge(t,!0),null!=i&&i.insertEdge(t,!1)},mxCodec.prototype.setAttribute=function(t,e,n){null!=e&&null!=n&&t.setAttribute(e,n)},__mxOutput.mxCodec="undefined"!==typeof mxCodec?mxCodec:void 0,mxObjectCodec.allowEval=!1,mxObjectCodec.prototype.template=null,mxObjectCodec.prototype.exclude=null,mxObjectCodec.prototype.idrefs=null,mxObjectCodec.prototype.mapping=null,mxObjectCodec.prototype.reverse=null,mxObjectCodec.prototype.getName=function(){return mxUtils.getFunctionName(this.template.constructor)},mxObjectCodec.prototype.cloneTemplate=function(){return new this.template.constructor},mxObjectCodec.prototype.getFieldName=function(t){if(null!=t){var e=this.reverse[t];null!=e&&(t=e)}return t},mxObjectCodec.prototype.getAttributeName=function(t){if(null!=t){var e=this.mapping[t];null!=e&&(t=e)}return t},mxObjectCodec.prototype.isExcluded=function(t,e,n,i){return e==mxObjectIdentity.FIELD_NAME||mxUtils.indexOf(this.exclude,e)>=0},mxObjectCodec.prototype.isReference=function(t,e,n,i){return mxUtils.indexOf(this.idrefs,e)>=0},mxObjectCodec.prototype.encode=function(t,e){var n=t.document.createElement(this.getName());return e=this.beforeEncode(t,e,n),this.encodeObject(t,e,n),this.afterEncode(t,e,n)},mxObjectCodec.prototype.encodeObject=function(t,e,n){for(var i in t.setAttribute(n,"id",t.getId(e)),e){var r=i,o=e[r];null==o||this.isExcluded(e,r,o,!0)||(mxUtils.isInteger(r)&&(r=null),this.encodeValue(t,e,r,o,n))}},mxObjectCodec.prototype.encodeValue=function(t,e,n,i,r){if(null!=i){if(this.isReference(e,n,i,!0)){var o=t.getId(i);if(null==o)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+n+"="+i);i=o}var s=this.template[n];(null==n||t.encodeDefaults||s!=i)&&(n=this.getAttributeName(n),this.writeAttribute(t,e,n,i,r))}},mxObjectCodec.prototype.writeAttribute=function(t,e,n,i,r){"object"!=typeof i?this.writePrimitiveAttribute(t,e,n,i,r):this.writeComplexAttribute(t,e,n,i,r)},mxObjectCodec.prototype.writePrimitiveAttribute=function(t,e,n,i,r){if(i=this.convertAttributeToXml(t,e,n,i,r),null==n){var o=t.document.createElement("add");"function"==typeof i?o.appendChild(t.document.createTextNode(i)):t.setAttribute(o,"value",i),r.appendChild(o)}else"function"!=typeof i&&t.setAttribute(r,n,i)},mxObjectCodec.prototype.writeComplexAttribute=function(t,e,n,i,r){var o=t.encode(i);null!=o?(null!=n&&o.setAttribute("as",n),r.appendChild(o)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+n+": "+i)},mxObjectCodec.prototype.convertAttributeToXml=function(t,e,n,i){return this.isBooleanAttribute(t,e,n,i)&&(i=1==i?"1":"0"),i},mxObjectCodec.prototype.isBooleanAttribute=function(t,e,n,i){return"undefined"==typeof i.length&&(1==i||0==i)},mxObjectCodec.prototype.convertAttributeFromXml=function(t,e,n){var i=e.value;return this.isNumericAttribute(t,e,n)&&(i=parseFloat(i),!isNaN(i)&&isFinite(i)||(i=0)),i},mxObjectCodec.prototype.isNumericAttribute=function(t,e,n){var i=n.constructor==mxGeometry&&("x"==e.name||"y"==e.name||"width"==e.name||"height"==e.name)||n.constructor==mxPoint&&("x"==e.name||"y"==e.name)||mxUtils.isNumeric(e.value);return i},mxObjectCodec.prototype.beforeEncode=function(t,e,n){return e},mxObjectCodec.prototype.afterEncode=function(t,e,n){return n},mxObjectCodec.prototype.decode=function(t,e,n){var i=e.getAttribute("id"),r=t.objects[i];return null==r&&(r=n||this.cloneTemplate(),null!=i&&t.putObject(i,r)),e=this.beforeDecode(t,e,r),this.decodeNode(t,e,r),this.afterDecode(t,e,r)},mxObjectCodec.prototype.decodeNode=function(t,e,n){null!=e&&(this.decodeAttributes(t,e,n),this.decodeChildren(t,e,n))},mxObjectCodec.prototype.decodeAttributes=function(t,e,n){var i=e.attributes;if(null!=i)for(var r=0;r<i.length;r++)this.decodeAttribute(t,i[r],n)},mxObjectCodec.prototype.isIgnoredAttribute=function(t,e,n){return"as"==e.nodeName||"id"==e.nodeName},mxObjectCodec.prototype.decodeAttribute=function(t,e,n){if(!this.isIgnoredAttribute(t,e,n)){var i=e.nodeName,r=this.convertAttributeFromXml(t,e,n),o=this.getFieldName(i);if(this.isReference(n,o,r,!1)){var s=t.getObject(r);if(null==s)return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+i+"="+r);r=s}this.isExcluded(n,i,r,!1)||(n[i]=r)}},mxObjectCodec.prototype.decodeChildren=function(t,e,n){var i=e.firstChild;while(null!=i){var r=i.nextSibling;i.nodeType!=mxConstants.NODETYPE_ELEMENT||this.processInclude(t,i,n)||this.decodeChild(t,i,n),i=r}},mxObjectCodec.prototype.decodeChild=function(t,e,n){var i=this.getFieldName(e.getAttribute("as"));if(null==i||!this.isExcluded(n,i,e,!1)){var r=this.getFieldTemplate(n,i,e),o=null;"add"==e.nodeName?(o=e.getAttribute("value"),null==o&&mxObjectCodec.allowEval&&(o=mxUtils.eval(mxUtils.getTextContent(e)))):o=t.decode(e,r);try{this.addObjectValue(n,i,o,r)}catch(s){throw new Error(s.message+" for "+e.nodeName)}}},mxObjectCodec.prototype.getFieldTemplate=function(t,e,n){var i=t[e];return i instanceof Array&&i.length>0&&(i=null),i},mxObjectCodec.prototype.addObjectValue=function(t,e,n,i){null!=n&&n!=i&&(null!=e&&e.length>0?t[e]=n:t.push(n))},mxObjectCodec.prototype.processInclude=function(t,e,n){if("include"==e.nodeName){var i=e.getAttribute("name");if(null!=i)try{var r=mxUtils.load(i).getDocumentElement();null!=r&&t.decode(r,n)}catch(o){}return!0}return!1},mxObjectCodec.prototype.beforeDecode=function(t,e,n){return e},mxObjectCodec.prototype.afterDecode=function(t,e,n){return n},__mxOutput.mxObjectCodec="undefined"!==typeof mxObjectCodec?mxObjectCodec:void 0,mxCodecRegistry.register(function(){var t=new mxObjectCodec(new mxCell,["children","edges","overlays","mxTransient"],["parent","source","target"]);return t.isCellCodec=function(){return!0},t.isNumericAttribute=function(t,e,n){return"value"!==e.nodeName&&mxObjectCodec.prototype.isNumericAttribute.apply(this,arguments)},t.isExcluded=function(t,e,n,i){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||i&&"value"==e&&n.nodeType==mxConstants.NODETYPE_ELEMENT},t.afterEncode=function(t,e,n){if(null!=e.value&&e.value.nodeType==mxConstants.NODETYPE_ELEMENT){var i=n;n=mxUtils.importNode(t.document,e.value,!0),n.appendChild(i);var r=i.getAttribute("id");n.setAttribute("id",r),i.removeAttribute("id")}return n},t.beforeDecode=function(t,e,n){var i=e.cloneNode(!0),r=this.getName();if(e.nodeName!=r){var o=e.getElementsByTagName(r)[0];null!=o&&o.parentNode==e?(mxUtils.removeWhitespace(o,!0),mxUtils.removeWhitespace(o,!1),o.parentNode.removeChild(o),i=o):i=null,n.value=e.cloneNode(!0);var s=n.value.getAttribute("id");null!=s&&(n.setId(s),n.value.removeAttribute("id"))}else n.setId(e.getAttribute("id"));if(null!=i)for(var l=0;l<this.idrefs.length;l++){var a=this.idrefs[l],h=i.getAttribute(a);if(null!=h){i.removeAttribute(a);var u=t.objects[h]||t.lookup(h);if(null==u){var d=t.getElementById(h);if(null!=d){var c=mxCodecRegistry.codecs[d.nodeName]||this;u=c.decode(t,d)}}n[a]=u}}return i},t}()),__mxOutput.mxCellCodec="undefined"!==typeof mxCellCodec?mxCellCodec:void 0,mxCodecRegistry.register(function(){var t=new mxObjectCodec(new mxGraphModel);return t.encodeObject=function(t,e,n){var i=t.document.createElement("root");t.encodeCell(e.getRoot(),i),n.appendChild(i)},t.decodeChild=function(t,e,n){"root"==e.nodeName?this.decodeRoot(t,e,n):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},t.decodeRoot=function(t,e,n){var i=null,r=e.firstChild;while(null!=r){var o=t.decodeCell(r);null!=o&&null==o.getParent()&&(i=o),r=r.nextSibling}null!=i&&n.setRoot(i)},t}()),__mxOutput.mxModelCodec="undefined"!==typeof mxModelCodec?mxModelCodec:void 0,mxCodecRegistry.register(function(){var t=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return t.afterEncode=function(t,e,n){return t.encodeCell(e.root,n),n},t.beforeDecode=function(t,e,n){if(null!=e.firstChild&&e.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){e=e.cloneNode(!0);var i=e.firstChild;n.root=t.decodeCell(i,!1);var r=i.nextSibling;i.parentNode.removeChild(i),i=r;while(null!=i)r=i.nextSibling,t.decodeCell(i),i.parentNode.removeChild(i),i=r}return e},t.afterDecode=function(t,e,n){return n.previous=n.root,n},t}()),__mxOutput.mxRootChangeCodec="undefined"!==typeof mxRootChangeCodec?mxRootChangeCodec:void 0,mxCodecRegistry.register(function(){var t=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return t.isReference=function(t,e,n,i){return!("child"!=e||i&&!t.model.contains(t.previous))||mxUtils.indexOf(this.idrefs,e)>=0},t.isExcluded=function(t,e,n,i){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||i&&null!=n&&("previous"==e||"parent"==e)&&!t.model.contains(n)},t.afterEncode=function(t,e,n){return this.isReference(e,"child",e.child,!0)?n.setAttribute("child",t.getId(e.child)):t.encodeCell(e.child,n),n},t.beforeDecode=function(t,e,n){if(null!=e.firstChild&&e.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){e=e.cloneNode(!0);var i=e.firstChild;n.child=t.decodeCell(i,!1);var r=i.nextSibling;i.parentNode.removeChild(i),i=r;while(null!=i){if(r=i.nextSibling,i.nodeType==mxConstants.NODETYPE_ELEMENT){var o=i.getAttribute("id");null==t.lookup(o)&&t.decodeCell(i)}i.parentNode.removeChild(i),i=r}}else{var s=e.getAttribute("child");n.child=t.getObject(s)}return e},t.afterDecode=function(t,e,n){return null!=n.child&&(null!=n.child.parent&&null!=n.previous&&n.child.parent!=n.previous&&(n.previous=n.child.parent),n.child.parent=n.previous,n.previous=n.parent,n.previousIndex=n.index),n},t}()),__mxOutput.mxChildChangeCodec="undefined"!==typeof mxChildChangeCodec?mxChildChangeCodec:void 0,mxCodecRegistry.register(function(){var t=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return t.afterDecode=function(t,e,n){return n.previous=n.terminal,n},t}()),__mxOutput.mxTerminalChangeCodec="undefined"!==typeof mxTerminalChangeCodec?mxTerminalChangeCodec:void 0;var mxGenericChangeCodec=function(t,e){var n=new mxObjectCodec(t,["model","previous"],["cell"]);return n.afterDecode=function(t,n,i){return mxUtils.isNode(i.cell)&&(i.cell=t.decodeCell(i.cell,!1)),i.previous=i[e],i},n};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")),__mxOutput.mxGenericChangeCodec="undefined"!==typeof mxGenericChangeCodec?mxGenericChangeCodec:void 0,mxCodecRegistry.register(function(){return new mxObjectCodec(new mxGraph,["graphListeners","eventListeners","view","container","cellRenderer","editor","selection"])}()),__mxOutput.mxGraphCodec="undefined"!==typeof mxGraphCodec?mxGraphCodec:void 0,mxCodecRegistry.register(function(){var t=new mxObjectCodec(new mxGraphView);return t.encode=function(t,e){return this.encodeCell(t,e,e.graph.getModel().getRoot())},t.encodeCell=function(t,e,n){var i=e.graph.getModel(),r=e.getState(n),o=i.getParent(n);if(null==o||null!=r){var s=i.getChildCount(n),l=e.graph.getCellGeometry(n),a=null;if(o==i.getRoot()?a="layer":null==o?a="graph":i.isEdge(n)?a="edge":s>0&&null!=l?a="group":i.isVertex(n)&&(a="vertex"),null!=a){var h=t.document.createElement(a),u=e.graph.getLabel(n);if(null!=u&&(h.setAttribute("label",e.graph.getLabel(n)),e.graph.isHtmlLabel(n)&&h.setAttribute("html",!0)),null==o){var d=e.getGraphBounds();null!=d&&(h.setAttribute("x",Math.round(d.x)),h.setAttribute("y",Math.round(d.y)),h.setAttribute("width",Math.round(d.width)),h.setAttribute("height",Math.round(d.height))),h.setAttribute("scale",e.scale)}else if(null!=r&&null!=l){for(var c in r.style){var p=r.style[c];"function"==typeof p&&"object"==typeof p&&(p=mxStyleRegistry.getName(p)),null!=p&&"function"!=typeof p&&"object"!=typeof p&&h.setAttribute(c,p)}var g=r.absolutePoints;if(null!=g&&g.length>0){var m=Math.round(g[0].x)+","+Math.round(g[0].y);for(c=1;c<g.length;c++)m+=" "+Math.round(g[c].x)+","+Math.round(g[c].y);h.setAttribute("points",m)}else h.setAttribute("x",Math.round(r.x)),h.setAttribute("y",Math.round(r.y)),h.setAttribute("width",Math.round(r.width)),h.setAttribute("height",Math.round(r.height));var x=r.absoluteOffset;null!=x&&(0!=x.x&&h.setAttribute("dx",Math.round(x.x)),0!=x.y&&h.setAttribute("dy",Math.round(x.y)))}for(c=0;c<s;c++){var y=this.encodeCell(t,e,i.getChildAt(n,c));null!=y&&h.appendChild(y)}}}return h},t}()),__mxOutput.mxGraphViewCodec="undefined"!==typeof mxGraphViewCodec?mxGraphViewCodec:void 0;var mxStylesheetCodec=mxCodecRegistry.register(function(){var t=new mxObjectCodec(new mxStylesheet);return t.encode=function(t,e){var n=t.document.createElement(this.getName());for(var i in e.styles){var r=e.styles[i],o=t.document.createElement("add");if(null!=i){for(var s in o.setAttribute("as",i),r){var l=this.getStringValue(s,r[s]);if(null!=l){var a=t.document.createElement("add");a.setAttribute("value",l),a.setAttribute("as",s),o.appendChild(a)}}o.childNodes.length>0&&n.appendChild(o)}}return n},t.getStringValue=function(t,e){var n=typeof e;return"function"==n?e=mxStyleRegistry.getName(e):"object"==n&&(e=null),e},t.decode=function(t,e,n){var i=n||new this.template.constructor,r=e.getAttribute("id");null!=r&&(t.objects[r]=i),e=e.firstChild;while(null!=e){if(!this.processInclude(t,e,i)&&"add"==e.nodeName){var o=e.getAttribute("as");if(null!=o){var s=e.getAttribute("extend"),l=null!=s?mxUtils.clone(i.styles[s]):null;null==l&&(null!=s&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+s+" not found to extend"),l=new Object);var a=e.firstChild;while(null!=a){if(a.nodeType==mxConstants.NODETYPE_ELEMENT){var h=a.getAttribute("as");if("add"==a.nodeName){var u=mxUtils.getTextContent(a),d=null;null!=u&&u.length>0&&mxStylesheetCodec.allowEval?d=mxUtils.eval(u):(d=a.getAttribute("value"),mxUtils.isNumeric(d)&&(d=parseFloat(d))),null!=d&&(l[h]=d)}else"remove"==a.nodeName&&delete l[h]}a=a.nextSibling}i.putCellStyle(o,l)}}e=e.nextSibling}return i},t}());mxStylesheetCodec.allowEval=!0,__mxOutput.mxStylesheetCodec="undefined"!==typeof mxStylesheetCodec?mxStylesheetCodec:void 0,mxCodecRegistry.register(function(){var t=new mxObjectCodec(new mxDefaultKeyHandler);return t.encode=function(t,e){return null},t.decode=function(t,e,n){if(null!=n){n.editor;e=e.firstChild;while(null!=e){if(!this.processInclude(t,e,n)&&"add"==e.nodeName){var i=e.getAttribute("as"),r=e.getAttribute("action"),o=e.getAttribute("control");n.bindAction(i,r,o)}e=e.nextSibling}}return n},t}()),__mxOutput.mxDefaultKeyHandlerCodec="undefined"!==typeof mxDefaultKeyHandlerCodec?mxDefaultKeyHandlerCodec:void 0;var mxDefaultToolbarCodec=mxCodecRegistry.register(function(){var t=new mxObjectCodec(new mxDefaultToolbar);return t.encode=function(t,e){return null},t.decode=function(t,e,n){if(null!=n){var i=n.editor;e=e.firstChild;while(null!=e){if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(t,e,n))if("separator"==e.nodeName)n.addSeparator();else if("br"==e.nodeName)n.toolbar.addBreak();else if("hr"==e.nodeName)n.toolbar.addLine();else if("add"==e.nodeName){var r=e.getAttribute("as");r=mxResources.get(r)||r;var o=e.getAttribute("icon"),s=e.getAttribute("pressedIcon"),l=e.getAttribute("action"),a=e.getAttribute("mode"),h=e.getAttribute("template"),u="0"!=e.getAttribute("toggle"),d=mxUtils.getTextContent(e),c=null;if(null!=l)c=n.addItem(r,o,l,s);else if(null!=a){var p=mxDefaultToolbarCodec.allowEval?mxUtils.eval(d):null;c=n.addMode(r,o,a,s,p)}else if(null!=h||null!=d&&d.length>0){var g=i.templates[h],m=e.getAttribute("style");null!=g&&null!=m&&(g=i.graph.cloneCell(g),g.setStyle(m));var x=null;null!=d&&d.length>0&&mxDefaultToolbarCodec.allowEval&&(x=mxUtils.eval(d)),c=n.addPrototype(r,o,g,s,x,u)}else{var y=mxUtils.getChildNodes(e);if(y.length>0)if(null==o)for(var f=n.addActionCombo(r),A=0;A<y.length;A++){var C=y[A];if("separator"==C.nodeName)n.addOption(f,"---");else if("add"==C.nodeName){var v=C.getAttribute("as"),E=C.getAttribute("action");n.addActionOption(f,v,E)}}else{var w=null,S=function(){var t=i.templates[w.value];if(null!=t){var e=t.clone(),n=w.options[w.selectedIndex].cellStyle;return null!=n&&e.setStyle(n),e}return mxLog.warn("Template "+t+" not found"),null},b=n.addPrototype(r,o,S,null,null,u);w=n.addCombo(),mxEvent.addListener(w,"change",(function(){n.toolbar.selectMode(b,(function(t){var e=mxUtils.convertPoint(i.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t));return i.addVertex(null,p(),e.x,e.y)})),n.toolbar.noReset=!1}));for(A=0;A<y.length;A++){C=y[A];if("separator"==C.nodeName)n.addOption(w,"---");else if("add"==C.nodeName){v=C.getAttribute("as");var T=C.getAttribute("template"),L=n.addOption(w,v,T||h);L.cellStyle=C.getAttribute("style")}}}}if(null!=c){var I=e.getAttribute("id");null!=I&&I.length>0&&c.setAttribute("id",I)}}e=e.nextSibling}}return n},t}());return mxDefaultToolbarCodec.allowEval=!0,__mxOutput.mxDefaultToolbarCodec="undefined"!==typeof mxDefaultToolbarCodec?mxDefaultToolbarCodec:void 0,mxCodecRegistry.register(function(){var t=new mxObjectCodec(new mxDefaultPopupMenu);return t.encode=function(t,e){return null},t.decode=function(t,e,n){var i=e.getElementsByTagName("include")[0];return null!=i?this.processInclude(t,i,n):null!=n&&(n.config=e),n},t}()),__mxOutput.mxDefaultPopupMenuCodec="undefined"!==typeof mxDefaultPopupMenuCodec?mxDefaultPopupMenuCodec:void 0,mxCodecRegistry.register(function(){var t=new mxObjectCodec(new mxEditor,["modified","lastSnapshot","ignoredChanges","undoManager","graphContainer","toolbarContainer"]);return t.afterDecode=function(t,e,n){var i=e.getAttribute("defaultEdge");null!=i&&(e.removeAttribute("defaultEdge"),n.defaultEdge=n.templates[i]);var r=e.getAttribute("defaultGroup");return null!=r&&(e.removeAttribute("defaultGroup"),n.defaultGroup=n.templates[r]),n},t.decodeChild=function(t,e,n){if("Array"==e.nodeName){var i=e.getAttribute("as");if("templates"==i)return void this.decodeTemplates(t,e,n)}else if("ui"==e.nodeName)return void this.decodeUi(t,e,n);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},t.decodeUi=function(t,e,n){var i=e.firstChild;while(null!=i){if("add"==i.nodeName){var r=i.getAttribute("as"),o=i.getAttribute("element"),s=i.getAttribute("style"),l=null;if(null!=o)l=document.getElementById(o),null!=l&&null!=s&&(l.style.cssText+=";"+s);else{var a=parseInt(i.getAttribute("x")),h=parseInt(i.getAttribute("y")),u=i.getAttribute("width"),d=i.getAttribute("height");l=document.createElement("div"),l.style.cssText=s;var c=new mxWindow(mxResources.get(r)||r,l,a,h,u,d,!1,!0);c.setVisible(!0)}"graph"==r?n.setGraphContainer(l):"toolbar"==r?n.setToolbarContainer(l):"title"==r?n.setTitleContainer(l):"status"==r?n.setStatusContainer(l):"map"==r&&n.setMapContainer(l)}else"resource"==i.nodeName?mxResources.add(i.getAttribute("basename")):"stylesheet"==i.nodeName&&mxClient.link("stylesheet",i.getAttribute("name"));i=i.nextSibling}},t.decodeTemplates=function(t,e,n){null==n.templates&&(n.templates=[]);for(var i=mxUtils.getChildNodes(e),r=0;r<i.length;r++){var o=i[r].getAttribute("as"),s=i[r].firstChild;while(null!=s&&1!=s.nodeType)s=s.nextSibling;null!=s&&(n.templates[o]=t.decodeCell(s))}},t}()),__mxOutput.mxEditorCodec="undefined"!==typeof mxEditorCodec?mxEditorCodec:void 0,__mxOutput}}))},30524:function(t,e,n){"use strict";var i=n(78746).assign,r=n(55903),o=n(33967),s=n(53300),l={};i(l,r,o,s),t.exports=l},55903:function(t,e,n){"use strict";n(1439),n(87585),n(55315),n(57658);var i=n(81672),r=n(78746),o=n(59329),s=n(27675),l=n(89731),a=Object.prototype.toString,h=0,u=4,d=0,c=1,p=2,g=-1,m=0,x=8;function y(t){if(!(this instanceof y))return new y(t);this.options=r.assign({level:g,method:x,chunkSize:16384,windowBits:15,memLevel:8,strategy:m,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=i.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==d)throw new Error(s[n]);if(e.header&&i.deflateSetHeader(this.strm,e.header),e.dictionary){var h;if(h="string"===typeof e.dictionary?o.string2buf(e.dictionary):"[object ArrayBuffer]"===a.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,n=i.deflateSetDictionary(this.strm,h),n!==d)throw new Error(s[n]);this._dict_set=!0}}function f(t,e){var n=new y(e);if(n.push(t,!0),n.err)throw n.msg||s[n.err];return n.result}function A(t,e){return e=e||{},e.raw=!0,f(t,e)}function C(t,e){return e=e||{},e.gzip=!0,f(t,e)}y.prototype.push=function(t,e){var n,s,l=this.strm,g=this.options.chunkSize;if(this.ended)return!1;s=e===~~e?e:!0===e?u:h,"string"===typeof t?l.input=o.string2buf(t):"[object ArrayBuffer]"===a.call(t)?l.input=new Uint8Array(t):l.input=t,l.next_in=0,l.avail_in=l.input.length;do{if(0===l.avail_out&&(l.output=new r.Buf8(g),l.next_out=0,l.avail_out=g),n=i.deflate(l,s),n!==c&&n!==d)return this.onEnd(n),this.ended=!0,!1;0!==l.avail_out&&(0!==l.avail_in||s!==u&&s!==p)||("string"===this.options.to?this.onData(o.buf2binstring(r.shrinkBuf(l.output,l.next_out))):this.onData(r.shrinkBuf(l.output,l.next_out)))}while((l.avail_in>0||0===l.avail_out)&&n!==c);return s===u?(n=i.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===d):s!==p||(this.onEnd(d),l.avail_out=0,!0)},y.prototype.onData=function(t){this.chunks.push(t)},y.prototype.onEnd=function(t){t===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=r.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Deflate=y,e.deflate=f,e.deflateRaw=A,e.gzip=C},33967:function(t,e,n){"use strict";n(57658),n(1439),n(87585),n(55315);var i=n(90669),r=n(78746),o=n(59329),s=n(53300),l=n(27675),a=n(89731),h=n(74524),u=Object.prototype.toString;function d(t){if(!(this instanceof d))return new d(t);this.options=r.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new a,this.strm.avail_out=0;var n=i.inflateInit2(this.strm,e.windowBits);if(n!==s.Z_OK)throw new Error(l[n]);this.header=new h,i.inflateGetHeader(this.strm,this.header)}function c(t,e){var n=new d(e);if(n.push(t,!0),n.err)throw n.msg||l[n.err];return n.result}function p(t,e){return e=e||{},e.raw=!0,c(t,e)}d.prototype.push=function(t,e){var n,l,a,h,d,c,p=this.strm,g=this.options.chunkSize,m=this.options.dictionary,x=!1;if(this.ended)return!1;l=e===~~e?e:!0===e?s.Z_FINISH:s.Z_NO_FLUSH,"string"===typeof t?p.input=o.binstring2buf(t):"[object ArrayBuffer]"===u.call(t)?p.input=new Uint8Array(t):p.input=t,p.next_in=0,p.avail_in=p.input.length;do{if(0===p.avail_out&&(p.output=new r.Buf8(g),p.next_out=0,p.avail_out=g),n=i.inflate(p,s.Z_NO_FLUSH),n===s.Z_NEED_DICT&&m&&(c="string"===typeof m?o.string2buf(m):"[object ArrayBuffer]"===u.call(m)?new Uint8Array(m):m,n=i.inflateSetDictionary(this.strm,c)),n===s.Z_BUF_ERROR&&!0===x&&(n=s.Z_OK,x=!1),n!==s.Z_STREAM_END&&n!==s.Z_OK)return this.onEnd(n),this.ended=!0,!1;p.next_out&&(0!==p.avail_out&&n!==s.Z_STREAM_END&&(0!==p.avail_in||l!==s.Z_FINISH&&l!==s.Z_SYNC_FLUSH)||("string"===this.options.to?(a=o.utf8border(p.output,p.next_out),h=p.next_out-a,d=o.buf2string(p.output,a),p.next_out=h,p.avail_out=g-h,h&&r.arraySet(p.output,p.output,a,h,0),this.onData(d)):this.onData(r.shrinkBuf(p.output,p.next_out)))),0===p.avail_in&&0===p.avail_out&&(x=!0)}while((p.avail_in>0||0===p.avail_out)&&n!==s.Z_STREAM_END);return n===s.Z_STREAM_END&&(l=s.Z_FINISH),l===s.Z_FINISH?(n=i.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===s.Z_OK):l!==s.Z_SYNC_FLUSH||(this.onEnd(s.Z_OK),p.avail_out=0,!0)},d.prototype.onData=function(t){this.chunks.push(t)},d.prototype.onEnd=function(t){t===s.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=r.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Inflate=d,e.inflate=c,e.inflateRaw=p,e.ungzip=c},78746:function(t,e,n){"use strict";n(1439),n(87585),n(55315);var i="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Int32Array;function r(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.assign=function(t){var e=Array.prototype.slice.call(arguments,1);while(e.length){var n=e.shift();if(n){if("object"!==typeof n)throw new TypeError(n+"must be non-object");for(var i in n)r(n,i)&&(t[i]=n[i])}}return t},e.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var o={arraySet:function(t,e,n,i,r){if(e.subarray&&t.subarray)t.set(e.subarray(n,n+i),r);else for(var o=0;o<i;o++)t[r+o]=e[n+o]},flattenChunks:function(t){var e,n,i,r,o,s;for(i=0,e=0,n=t.length;e<n;e++)i+=t[e].length;for(s=new Uint8Array(i),r=0,e=0,n=t.length;e<n;e++)o=t[e],s.set(o,r),r+=o.length;return s}},s={arraySet:function(t,e,n,i,r){for(var o=0;o<i;o++)t[r+o]=e[n+o]},flattenChunks:function(t){return[].concat.apply([],t)}};e.setTyped=function(t){t?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,o)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,s))},e.setTyped(i)},59329:function(t,e,n){"use strict";n(1439),n(87585),n(55315);var i=n(78746),r=!0,o=!0;try{String.fromCharCode.apply(null,[0])}catch(h){r=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(h){o=!1}for(var s=new i.Buf8(256),l=0;l<256;l++)s[l]=l>=252?6:l>=248?5:l>=240?4:l>=224?3:l>=192?2:1;function a(t,e){if(e<65537&&(t.subarray&&o||!t.subarray&&r))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var n="",s=0;s<e;s++)n+=String.fromCharCode(t[s]);return n}s[254]=s[254]=1,e.string2buf=function(t){var e,n,r,o,s,l=t.length,a=0;for(o=0;o<l;o++)n=t.charCodeAt(o),55296===(64512&n)&&o+1<l&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),a+=n<128?1:n<2048?2:n<65536?3:4;for(e=new i.Buf8(a),s=0,o=0;s<a;o++)n=t.charCodeAt(o),55296===(64512&n)&&o+1<l&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),n<128?e[s++]=n:n<2048?(e[s++]=192|n>>>6,e[s++]=128|63&n):n<65536?(e[s++]=224|n>>>12,e[s++]=128|n>>>6&63,e[s++]=128|63&n):(e[s++]=240|n>>>18,e[s++]=128|n>>>12&63,e[s++]=128|n>>>6&63,e[s++]=128|63&n);return e},e.buf2binstring=function(t){return a(t,t.length)},e.binstring2buf=function(t){for(var e=new i.Buf8(t.length),n=0,r=e.length;n<r;n++)e[n]=t.charCodeAt(n);return e},e.buf2string=function(t,e){var n,i,r,o,l=e||t.length,h=new Array(2*l);for(i=0,n=0;n<l;)if(r=t[n++],r<128)h[i++]=r;else if(o=s[r],o>4)h[i++]=65533,n+=o-1;else{r&=2===o?31:3===o?15:7;while(o>1&&n<l)r=r<<6|63&t[n++],o--;o>1?h[i++]=65533:r<65536?h[i++]=r:(r-=65536,h[i++]=55296|r>>10&1023,h[i++]=56320|1023&r)}return a(h,i)},e.utf8border=function(t,e){var n;e=e||t.length,e>t.length&&(e=t.length),n=e-1;while(n>=0&&128===(192&t[n]))n--;return n<0||0===n?e:n+s[t[n]]>e?n:e}},35942:function(t){"use strict";function e(t,e,n,i){var r=65535&t|0,o=t>>>16&65535|0,s=0;while(0!==n){s=n>2e3?2e3:n,n-=s;do{r=r+e[i++]|0,o=o+r|0}while(--s);r%=65521,o%=65521}return r|o<<16|0}t.exports=e},53300:function(t){"use strict";t.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}},75906:function(t){"use strict";function e(){for(var t,e=[],n=0;n<256;n++){t=n;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}var n=e();function i(t,e,i,r){var o=n,s=r+i;t^=-1;for(var l=r;l<s;l++)t=t>>>8^o[255&(t^e[l])];return-1^t}t.exports=i},81672:function(t,e,n){"use strict";var i,r=n(78746),o=n(24191),s=n(35942),l=n(75906),a=n(27675),h=0,u=1,d=3,c=4,p=5,g=0,m=1,x=-2,y=-3,f=-5,A=-1,C=1,v=2,E=3,w=4,S=0,b=2,T=8,L=9,I=15,M=8,R=29,O=256,N=O+1+R,D=30,P=19,H=2*N+1,k=15,G=3,B=258,U=B+G+1,V=32,F=42,z=69,Y=73,W=91,j=103,Q=113,Z=666,X=1,K=2,q=3,J=4,_=3;function $(t,e){return t.msg=a[e],e}function tt(t){return(t<<1)-(t>4?9:0)}function et(t){var e=t.length;while(--e>=0)t[e]=0}function nt(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(r.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))}function it(t,e){o._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,nt(t.strm)}function rt(t,e){t.pending_buf[t.pending++]=e}function ot(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function st(t,e,n,i){var o=t.avail_in;return o>i&&(o=i),0===o?0:(t.avail_in-=o,r.arraySet(e,t.input,t.next_in,o,n),1===t.state.wrap?t.adler=s(t.adler,e,o,n):2===t.state.wrap&&(t.adler=l(t.adler,e,o,n)),t.next_in+=o,t.total_in+=o,o)}function lt(t,e){var n,i,r=t.max_chain_length,o=t.strstart,s=t.prev_length,l=t.nice_match,a=t.strstart>t.w_size-U?t.strstart-(t.w_size-U):0,h=t.window,u=t.w_mask,d=t.prev,c=t.strstart+B,p=h[o+s-1],g=h[o+s];t.prev_length>=t.good_match&&(r>>=2),l>t.lookahead&&(l=t.lookahead);do{if(n=e,h[n+s]===g&&h[n+s-1]===p&&h[n]===h[o]&&h[++n]===h[o+1]){o+=2,n++;do{}while(h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&o<c);if(i=B-(c-o),o=c-B,i>s){if(t.match_start=e,s=i,i>=l)break;p=h[o+s-1],g=h[o+s]}}}while((e=d[e&u])>a&&0!==--r);return s<=t.lookahead?s:t.lookahead}function at(t){var e,n,i,o,s,l=t.w_size;do{if(o=t.window_size-t.lookahead-t.strstart,t.strstart>=l+(l-U)){r.arraySet(t.window,t.window,l,l,0),t.match_start-=l,t.strstart-=l,t.block_start-=l,n=t.hash_size,e=n;do{i=t.head[--e],t.head[e]=i>=l?i-l:0}while(--n);n=l,e=n;do{i=t.prev[--e],t.prev[e]=i>=l?i-l:0}while(--n);o+=l}if(0===t.strm.avail_in)break;if(n=st(t.strm,t.window,t.strstart+t.lookahead,o),t.lookahead+=n,t.lookahead+t.insert>=G){s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+1])&t.hash_mask;while(t.insert)if(t.ins_h=(t.ins_h<<t.hash_shift^t.window[s+G-1])&t.hash_mask,t.prev[s&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=s,s++,t.insert--,t.lookahead+t.insert<G)break}}while(t.lookahead<U&&0!==t.strm.avail_in)}function ht(t,e){var n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(at(t),0===t.lookahead&&e===h)return X;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+n;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,it(t,!1),0===t.strm.avail_out))return X;if(t.strstart-t.block_start>=t.w_size-U&&(it(t,!1),0===t.strm.avail_out))return X}return t.insert=0,e===c?(it(t,!0),0===t.strm.avail_out?q:J):(t.strstart>t.block_start&&(it(t,!1),t.strm.avail_out),X)}function ut(t,e){for(var n,i;;){if(t.lookahead<U){if(at(t),t.lookahead<U&&e===h)return X;if(0===t.lookahead)break}if(n=0,t.lookahead>=G&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+G-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==n&&t.strstart-n<=t.w_size-U&&(t.match_length=lt(t,n)),t.match_length>=G)if(i=o._tr_tally(t,t.strstart-t.match_start,t.match_length-G),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=G){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+G-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!==--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else i=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(it(t,!1),0===t.strm.avail_out))return X}return t.insert=t.strstart<G-1?t.strstart:G-1,e===c?(it(t,!0),0===t.strm.avail_out?q:J):t.last_lit&&(it(t,!1),0===t.strm.avail_out)?X:K}function dt(t,e){for(var n,i,r;;){if(t.lookahead<U){if(at(t),t.lookahead<U&&e===h)return X;if(0===t.lookahead)break}if(n=0,t.lookahead>=G&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+G-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=G-1,0!==n&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-U&&(t.match_length=lt(t,n),t.match_length<=5&&(t.strategy===C||t.match_length===G&&t.strstart-t.match_start>4096)&&(t.match_length=G-1)),t.prev_length>=G&&t.match_length<=t.prev_length){r=t.strstart+t.lookahead-G,i=o._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-G),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=r&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+G-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!==--t.prev_length);if(t.match_available=0,t.match_length=G-1,t.strstart++,i&&(it(t,!1),0===t.strm.avail_out))return X}else if(t.match_available){if(i=o._tr_tally(t,0,t.window[t.strstart-1]),i&&it(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return X}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=o._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<G-1?t.strstart:G-1,e===c?(it(t,!0),0===t.strm.avail_out?q:J):t.last_lit&&(it(t,!1),0===t.strm.avail_out)?X:K}function ct(t,e){for(var n,i,r,s,l=t.window;;){if(t.lookahead<=B){if(at(t),t.lookahead<=B&&e===h)return X;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=G&&t.strstart>0&&(r=t.strstart-1,i=l[r],i===l[++r]&&i===l[++r]&&i===l[++r])){s=t.strstart+B;do{}while(i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&r<s);t.match_length=B-(s-r),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=G?(n=o._tr_tally(t,1,t.match_length-G),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(it(t,!1),0===t.strm.avail_out))return X}return t.insert=0,e===c?(it(t,!0),0===t.strm.avail_out?q:J):t.last_lit&&(it(t,!1),0===t.strm.avail_out)?X:K}function pt(t,e){for(var n;;){if(0===t.lookahead&&(at(t),0===t.lookahead)){if(e===h)return X;break}if(t.match_length=0,n=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(it(t,!1),0===t.strm.avail_out))return X}return t.insert=0,e===c?(it(t,!0),0===t.strm.avail_out?q:J):t.last_lit&&(it(t,!1),0===t.strm.avail_out)?X:K}function gt(t,e,n,i,r){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=i,this.func=r}function mt(t){t.window_size=2*t.w_size,et(t.head),t.max_lazy_match=i[t.level].max_lazy,t.good_match=i[t.level].good_length,t.nice_match=i[t.level].nice_length,t.max_chain_length=i[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=G-1,t.match_available=0,t.ins_h=0}function xt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=T,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new r.Buf16(2*H),this.dyn_dtree=new r.Buf16(2*(2*D+1)),this.bl_tree=new r.Buf16(2*(2*P+1)),et(this.dyn_ltree),et(this.dyn_dtree),et(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new r.Buf16(k+1),this.heap=new r.Buf16(2*N+1),et(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new r.Buf16(2*N+1),et(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function yt(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=b,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?F:Q,t.adler=2===e.wrap?0:1,e.last_flush=h,o._tr_init(e),g):$(t,x)}function ft(t){var e=yt(t);return e===g&&mt(t.state),e}function At(t,e){return t&&t.state?2!==t.state.wrap?x:(t.state.gzhead=e,g):x}function Ct(t,e,n,i,o,s){if(!t)return x;var l=1;if(e===A&&(e=6),i<0?(l=0,i=-i):i>15&&(l=2,i-=16),o<1||o>L||n!==T||i<8||i>15||e<0||e>9||s<0||s>w)return $(t,x);8===i&&(i=9);var a=new xt;return t.state=a,a.strm=t,a.wrap=l,a.gzhead=null,a.w_bits=i,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=o+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+G-1)/G),a.window=new r.Buf8(2*a.w_size),a.head=new r.Buf16(a.hash_size),a.prev=new r.Buf16(a.w_size),a.lit_bufsize=1<<o+6,a.pending_buf_size=4*a.lit_bufsize,a.pending_buf=new r.Buf8(a.pending_buf_size),a.d_buf=1*a.lit_bufsize,a.l_buf=3*a.lit_bufsize,a.level=e,a.strategy=s,a.method=n,ft(t)}function vt(t,e){return Ct(t,e,T,I,M,S)}function Et(t,e){var n,r,s,a;if(!t||!t.state||e>p||e<0)return t?$(t,x):x;if(r=t.state,!t.output||!t.input&&0!==t.avail_in||r.status===Z&&e!==c)return $(t,0===t.avail_out?f:x);if(r.strm=t,n=r.last_flush,r.last_flush=e,r.status===F)if(2===r.wrap)t.adler=0,rt(r,31),rt(r,139),rt(r,8),r.gzhead?(rt(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),rt(r,255&r.gzhead.time),rt(r,r.gzhead.time>>8&255),rt(r,r.gzhead.time>>16&255),rt(r,r.gzhead.time>>24&255),rt(r,9===r.level?2:r.strategy>=v||r.level<2?4:0),rt(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(rt(r,255&r.gzhead.extra.length),rt(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=l(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=z):(rt(r,0),rt(r,0),rt(r,0),rt(r,0),rt(r,0),rt(r,9===r.level?2:r.strategy>=v||r.level<2?4:0),rt(r,_),r.status=Q);else{var y=T+(r.w_bits-8<<4)<<8,A=-1;A=r.strategy>=v||r.level<2?0:r.level<6?1:6===r.level?2:3,y|=A<<6,0!==r.strstart&&(y|=V),y+=31-y%31,r.status=Q,ot(r,y),0!==r.strstart&&(ot(r,t.adler>>>16),ot(r,65535&t.adler)),t.adler=1}if(r.status===z)if(r.gzhead.extra){s=r.pending;while(r.gzindex<(65535&r.gzhead.extra.length)){if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>s&&(t.adler=l(t.adler,r.pending_buf,r.pending-s,s)),nt(t),s=r.pending,r.pending===r.pending_buf_size))break;rt(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++}r.gzhead.hcrc&&r.pending>s&&(t.adler=l(t.adler,r.pending_buf,r.pending-s,s)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Y)}else r.status=Y;if(r.status===Y)if(r.gzhead.name){s=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>s&&(t.adler=l(t.adler,r.pending_buf,r.pending-s,s)),nt(t),s=r.pending,r.pending===r.pending_buf_size)){a=1;break}a=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,rt(r,a)}while(0!==a);r.gzhead.hcrc&&r.pending>s&&(t.adler=l(t.adler,r.pending_buf,r.pending-s,s)),0===a&&(r.gzindex=0,r.status=W)}else r.status=W;if(r.status===W)if(r.gzhead.comment){s=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>s&&(t.adler=l(t.adler,r.pending_buf,r.pending-s,s)),nt(t),s=r.pending,r.pending===r.pending_buf_size)){a=1;break}a=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,rt(r,a)}while(0!==a);r.gzhead.hcrc&&r.pending>s&&(t.adler=l(t.adler,r.pending_buf,r.pending-s,s)),0===a&&(r.status=j)}else r.status=j;if(r.status===j&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&nt(t),r.pending+2<=r.pending_buf_size&&(rt(r,255&t.adler),rt(r,t.adler>>8&255),t.adler=0,r.status=Q)):r.status=Q),0!==r.pending){if(nt(t),0===t.avail_out)return r.last_flush=-1,g}else if(0===t.avail_in&&tt(e)<=tt(n)&&e!==c)return $(t,f);if(r.status===Z&&0!==t.avail_in)return $(t,f);if(0!==t.avail_in||0!==r.lookahead||e!==h&&r.status!==Z){var C=r.strategy===v?pt(r,e):r.strategy===E?ct(r,e):i[r.level].func(r,e);if(C!==q&&C!==J||(r.status=Z),C===X||C===q)return 0===t.avail_out&&(r.last_flush=-1),g;if(C===K&&(e===u?o._tr_align(r):e!==p&&(o._tr_stored_block(r,0,0,!1),e===d&&(et(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),nt(t),0===t.avail_out))return r.last_flush=-1,g}return e!==c?g:r.wrap<=0?m:(2===r.wrap?(rt(r,255&t.adler),rt(r,t.adler>>8&255),rt(r,t.adler>>16&255),rt(r,t.adler>>24&255),rt(r,255&t.total_in),rt(r,t.total_in>>8&255),rt(r,t.total_in>>16&255),rt(r,t.total_in>>24&255)):(ot(r,t.adler>>>16),ot(r,65535&t.adler)),nt(t),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?g:m)}function wt(t){var e;return t&&t.state?(e=t.state.status,e!==F&&e!==z&&e!==Y&&e!==W&&e!==j&&e!==Q&&e!==Z?$(t,x):(t.state=null,e===Q?$(t,y):g)):x}function St(t,e){var n,i,o,l,a,h,u,d,c=e.length;if(!t||!t.state)return x;if(n=t.state,l=n.wrap,2===l||1===l&&n.status!==F||n.lookahead)return x;1===l&&(t.adler=s(t.adler,e,c,0)),n.wrap=0,c>=n.w_size&&(0===l&&(et(n.head),n.strstart=0,n.block_start=0,n.insert=0),d=new r.Buf8(n.w_size),r.arraySet(d,e,c-n.w_size,n.w_size,0),e=d,c=n.w_size),a=t.avail_in,h=t.next_in,u=t.input,t.avail_in=c,t.next_in=0,t.input=e,at(n);while(n.lookahead>=G){i=n.strstart,o=n.lookahead-(G-1);do{n.ins_h=(n.ins_h<<n.hash_shift^n.window[i+G-1])&n.hash_mask,n.prev[i&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=i,i++}while(--o);n.strstart=i,n.lookahead=G-1,at(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=G-1,n.match_available=0,t.next_in=h,t.input=u,t.avail_in=a,n.wrap=l,g}i=[new gt(0,0,0,0,ht),new gt(4,4,8,4,ut),new gt(4,5,16,8,ut),new gt(4,6,32,32,ut),new gt(4,4,16,16,dt),new gt(8,16,32,32,dt),new gt(8,16,128,128,dt),new gt(8,32,128,256,dt),new gt(32,128,258,1024,dt),new gt(32,258,258,4096,dt)],e.deflateInit=vt,e.deflateInit2=Ct,e.deflateReset=ft,e.deflateResetKeep=yt,e.deflateSetHeader=At,e.deflate=Et,e.deflateEnd=wt,e.deflateSetDictionary=St,e.deflateInfo="pako deflate (from Nodeca project)"},74524:function(t){"use strict";function e(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}t.exports=e},56643:function(t){"use strict";var e=30,n=12;t.exports=function(t,i){var r,o,s,l,a,h,u,d,c,p,g,m,x,y,f,A,C,v,E,w,S,b,T,L,I;r=t.state,o=t.next_in,L=t.input,s=o+(t.avail_in-5),l=t.next_out,I=t.output,a=l-(i-t.avail_out),h=l+(t.avail_out-257),u=r.dmax,d=r.wsize,c=r.whave,p=r.wnext,g=r.window,m=r.hold,x=r.bits,y=r.lencode,f=r.distcode,A=(1<<r.lenbits)-1,C=(1<<r.distbits)-1;t:do{x<15&&(m+=L[o++]<<x,x+=8,m+=L[o++]<<x,x+=8),v=y[m&A];e:for(;;){if(E=v>>>24,m>>>=E,x-=E,E=v>>>16&255,0===E)I[l++]=65535&v;else{if(!(16&E)){if(0===(64&E)){v=y[(65535&v)+(m&(1<<E)-1)];continue e}if(32&E){r.mode=n;break t}t.msg="invalid literal/length code",r.mode=e;break t}w=65535&v,E&=15,E&&(x<E&&(m+=L[o++]<<x,x+=8),w+=m&(1<<E)-1,m>>>=E,x-=E),x<15&&(m+=L[o++]<<x,x+=8,m+=L[o++]<<x,x+=8),v=f[m&C];n:for(;;){if(E=v>>>24,m>>>=E,x-=E,E=v>>>16&255,!(16&E)){if(0===(64&E)){v=f[(65535&v)+(m&(1<<E)-1)];continue n}t.msg="invalid distance code",r.mode=e;break t}if(S=65535&v,E&=15,x<E&&(m+=L[o++]<<x,x+=8,x<E&&(m+=L[o++]<<x,x+=8)),S+=m&(1<<E)-1,S>u){t.msg="invalid distance too far back",r.mode=e;break t}if(m>>>=E,x-=E,E=l-a,S>E){if(E=S-E,E>c&&r.sane){t.msg="invalid distance too far back",r.mode=e;break t}if(b=0,T=g,0===p){if(b+=d-E,E<w){w-=E;do{I[l++]=g[b++]}while(--E);b=l-S,T=I}}else if(p<E){if(b+=d+p-E,E-=p,E<w){w-=E;do{I[l++]=g[b++]}while(--E);if(b=0,p<w){E=p,w-=E;do{I[l++]=g[b++]}while(--E);b=l-S,T=I}}}else if(b+=p-E,E<w){w-=E;do{I[l++]=g[b++]}while(--E);b=l-S,T=I}while(w>2)I[l++]=T[b++],I[l++]=T[b++],I[l++]=T[b++],w-=3;w&&(I[l++]=T[b++],w>1&&(I[l++]=T[b++]))}else{b=l-S;do{I[l++]=I[b++],I[l++]=I[b++],I[l++]=I[b++],w-=3}while(w>2);w&&(I[l++]=I[b++],w>1&&(I[l++]=I[b++]))}break}}break}}while(o<s&&l<h);w=x>>3,o-=w,x-=w<<3,m&=(1<<x)-1,t.next_in=o,t.next_out=l,t.avail_in=o<s?s-o+5:5-(o-s),t.avail_out=l<h?h-l+257:257-(l-h),r.hold=m,r.bits=x}},90669:function(t,e,n){"use strict";n(92087);var i=n(78746),r=n(35942),o=n(75906),s=n(56643),l=n(1659),a=0,h=1,u=2,d=4,c=5,p=6,g=0,m=1,x=2,y=-2,f=-3,A=-4,C=-5,v=8,E=1,w=2,S=3,b=4,T=5,L=6,I=7,M=8,R=9,O=10,N=11,D=12,P=13,H=14,k=15,G=16,B=17,U=18,V=19,F=20,z=21,Y=22,W=23,j=24,Q=25,Z=26,X=27,K=28,q=29,J=30,_=31,$=32,tt=852,et=592,nt=15,it=nt;function rt(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function ot(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.Buf16(320),this.work=new i.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function st(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=E,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new i.Buf32(tt),e.distcode=e.distdyn=new i.Buf32(et),e.sane=1,e.back=-1,g):y}function lt(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,st(t)):y}function at(t,e){var n,i;return t&&t.state?(i=t.state,e<0?(n=0,e=-e):(n=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?y:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=n,i.wbits=e,lt(t))):y}function ht(t,e){var n,i;return t?(i=new ot,t.state=i,i.window=null,n=at(t,e),n!==g&&(t.state=null),n):y}function ut(t){return ht(t,it)}var dt,ct,pt=!0;function gt(t){if(pt){var e;dt=new i.Buf32(512),ct=new i.Buf32(32),e=0;while(e<144)t.lens[e++]=8;while(e<256)t.lens[e++]=9;while(e<280)t.lens[e++]=7;while(e<288)t.lens[e++]=8;l(h,t.lens,0,288,dt,0,t.work,{bits:9}),e=0;while(e<32)t.lens[e++]=5;l(u,t.lens,0,32,ct,0,t.work,{bits:5}),pt=!1}t.lencode=dt,t.lenbits=9,t.distcode=ct,t.distbits=5}function mt(t,e,n,r){var o,s=t.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new i.Buf8(s.wsize)),r>=s.wsize?(i.arraySet(s.window,e,n-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(o=s.wsize-s.wnext,o>r&&(o=r),i.arraySet(s.window,e,n-r,o,s.wnext),r-=o,r?(i.arraySet(s.window,e,n-r,r,0),s.wnext=r,s.whave=s.wsize):(s.wnext+=o,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=o))),0}function xt(t,e){var n,tt,et,nt,it,ot,st,lt,at,ht,ut,dt,ct,pt,xt,yt,ft,At,Ct,vt,Et,wt,St,bt,Tt=0,Lt=new i.Buf8(4),It=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return y;n=t.state,n.mode===D&&(n.mode=P),it=t.next_out,et=t.output,st=t.avail_out,nt=t.next_in,tt=t.input,ot=t.avail_in,lt=n.hold,at=n.bits,ht=ot,ut=st,wt=g;t:for(;;)switch(n.mode){case E:if(0===n.wrap){n.mode=P;break}while(at<16){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}if(2&n.wrap&&35615===lt){n.check=0,Lt[0]=255<,Lt[1]=lt>>>8&255,n.check=o(n.check,Lt,2,0),lt=0,at=0,n.mode=w;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255<)<<8)+(lt>>8))%31){t.msg="incorrect header check",n.mode=J;break}if((15<)!==v){t.msg="unknown compression method",n.mode=J;break}if(lt>>>=4,at-=4,Et=8+(15<),0===n.wbits)n.wbits=Et;else if(Et>n.wbits){t.msg="invalid window size",n.mode=J;break}n.dmax=1<<Et,t.adler=n.check=1,n.mode=512<?O:D,lt=0,at=0;break;case w:while(at<16){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}if(n.flags=lt,(255&n.flags)!==v){t.msg="unknown compression method",n.mode=J;break}if(57344&n.flags){t.msg="unknown header flags set",n.mode=J;break}n.head&&(n.head.text=lt>>8&1),512&n.flags&&(Lt[0]=255<,Lt[1]=lt>>>8&255,n.check=o(n.check,Lt,2,0)),lt=0,at=0,n.mode=S;case S:while(at<32){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}n.head&&(n.head.time=lt),512&n.flags&&(Lt[0]=255<,Lt[1]=lt>>>8&255,Lt[2]=lt>>>16&255,Lt[3]=lt>>>24&255,n.check=o(n.check,Lt,4,0)),lt=0,at=0,n.mode=b;case b:while(at<16){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}n.head&&(n.head.xflags=255<,n.head.os=lt>>8),512&n.flags&&(Lt[0]=255<,Lt[1]=lt>>>8&255,n.check=o(n.check,Lt,2,0)),lt=0,at=0,n.mode=T;case T:if(1024&n.flags){while(at<16){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}n.length=lt,n.head&&(n.head.extra_len=lt),512&n.flags&&(Lt[0]=255<,Lt[1]=lt>>>8&255,n.check=o(n.check,Lt,2,0)),lt=0,at=0}else n.head&&(n.head.extra=null);n.mode=L;case L:if(1024&n.flags&&(dt=n.length,dt>ot&&(dt=ot),dt&&(n.head&&(Et=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),i.arraySet(n.head.extra,tt,nt,dt,Et)),512&n.flags&&(n.check=o(n.check,tt,dt,nt)),ot-=dt,nt+=dt,n.length-=dt),n.length))break t;n.length=0,n.mode=I;case I:if(2048&n.flags){if(0===ot)break t;dt=0;do{Et=tt[nt+dt++],n.head&&Et&&n.length<65536&&(n.head.name+=String.fromCharCode(Et))}while(Et&&dt<ot);if(512&n.flags&&(n.check=o(n.check,tt,dt,nt)),ot-=dt,nt+=dt,Et)break t}else n.head&&(n.head.name=null);n.length=0,n.mode=M;case M:if(4096&n.flags){if(0===ot)break t;dt=0;do{Et=tt[nt+dt++],n.head&&Et&&n.length<65536&&(n.head.comment+=String.fromCharCode(Et))}while(Et&&dt<ot);if(512&n.flags&&(n.check=o(n.check,tt,dt,nt)),ot-=dt,nt+=dt,Et)break t}else n.head&&(n.head.comment=null);n.mode=R;case R:if(512&n.flags){while(at<16){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}if(lt!==(65535&n.check)){t.msg="header crc mismatch",n.mode=J;break}lt=0,at=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=D;break;case O:while(at<32){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}t.adler=n.check=rt(lt),lt=0,at=0,n.mode=N;case N:if(0===n.havedict)return t.next_out=it,t.avail_out=st,t.next_in=nt,t.avail_in=ot,n.hold=lt,n.bits=at,x;t.adler=n.check=1,n.mode=D;case D:if(e===c||e===p)break t;case P:if(n.last){lt>>>=7&at,at-=7&at,n.mode=X;break}while(at<3){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}switch(n.last=1<,lt>>>=1,at-=1,3<){case 0:n.mode=H;break;case 1:if(gt(n),n.mode=F,e===p){lt>>>=2,at-=2;break t}break;case 2:n.mode=B;break;case 3:t.msg="invalid block type",n.mode=J}lt>>>=2,at-=2;break;case H:lt>>>=7&at,at-=7&at;while(at<32){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}if((65535<)!==(lt>>>16^65535)){t.msg="invalid stored block lengths",n.mode=J;break}if(n.length=65535<,lt=0,at=0,n.mode=k,e===p)break t;case k:n.mode=G;case G:if(dt=n.length,dt){if(dt>ot&&(dt=ot),dt>st&&(dt=st),0===dt)break t;i.arraySet(et,tt,nt,dt,it),ot-=dt,nt+=dt,st-=dt,it+=dt,n.length-=dt;break}n.mode=D;break;case B:while(at<14){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}if(n.nlen=257+(31<),lt>>>=5,at-=5,n.ndist=1+(31<),lt>>>=5,at-=5,n.ncode=4+(15<),lt>>>=4,at-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=J;break}n.have=0,n.mode=U;case U:while(n.have<n.ncode){while(at<3){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}n.lens[It[n.have++]]=7<,lt>>>=3,at-=3}while(n.have<19)n.lens[It[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,St={bits:n.lenbits},wt=l(a,n.lens,0,19,n.lencode,0,n.work,St),n.lenbits=St.bits,wt){t.msg="invalid code lengths set",n.mode=J;break}n.have=0,n.mode=V;case V:while(n.have<n.nlen+n.ndist){for(;;){if(Tt=n.lencode[lt&(1<<n.lenbits)-1],xt=Tt>>>24,yt=Tt>>>16&255,ft=65535&Tt,xt<=at)break;if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}if(ft<16)lt>>>=xt,at-=xt,n.lens[n.have++]=ft;else{if(16===ft){bt=xt+2;while(at<bt){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}if(lt>>>=xt,at-=xt,0===n.have){t.msg="invalid bit length repeat",n.mode=J;break}Et=n.lens[n.have-1],dt=3+(3<),lt>>>=2,at-=2}else if(17===ft){bt=xt+3;while(at<bt){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}lt>>>=xt,at-=xt,Et=0,dt=3+(7<),lt>>>=3,at-=3}else{bt=xt+7;while(at<bt){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}lt>>>=xt,at-=xt,Et=0,dt=11+(127<),lt>>>=7,at-=7}if(n.have+dt>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=J;break}while(dt--)n.lens[n.have++]=Et}}if(n.mode===J)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=J;break}if(n.lenbits=9,St={bits:n.lenbits},wt=l(h,n.lens,0,n.nlen,n.lencode,0,n.work,St),n.lenbits=St.bits,wt){t.msg="invalid literal/lengths set",n.mode=J;break}if(n.distbits=6,n.distcode=n.distdyn,St={bits:n.distbits},wt=l(u,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,St),n.distbits=St.bits,wt){t.msg="invalid distances set",n.mode=J;break}if(n.mode=F,e===p)break t;case F:n.mode=z;case z:if(ot>=6&&st>=258){t.next_out=it,t.avail_out=st,t.next_in=nt,t.avail_in=ot,n.hold=lt,n.bits=at,s(t,ut),it=t.next_out,et=t.output,st=t.avail_out,nt=t.next_in,tt=t.input,ot=t.avail_in,lt=n.hold,at=n.bits,n.mode===D&&(n.back=-1);break}for(n.back=0;;){if(Tt=n.lencode[lt&(1<<n.lenbits)-1],xt=Tt>>>24,yt=Tt>>>16&255,ft=65535&Tt,xt<=at)break;if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}if(yt&&0===(240&yt)){for(At=xt,Ct=yt,vt=ft;;){if(Tt=n.lencode[vt+((lt&(1<<At+Ct)-1)>>At)],xt=Tt>>>24,yt=Tt>>>16&255,ft=65535&Tt,At+xt<=at)break;if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}lt>>>=At,at-=At,n.back+=At}if(lt>>>=xt,at-=xt,n.back+=xt,n.length=ft,0===yt){n.mode=Z;break}if(32&yt){n.back=-1,n.mode=D;break}if(64&yt){t.msg="invalid literal/length code",n.mode=J;break}n.extra=15&yt,n.mode=Y;case Y:if(n.extra){bt=n.extra;while(at<bt){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}n.length+=lt&(1<<n.extra)-1,lt>>>=n.extra,at-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=W;case W:for(;;){if(Tt=n.distcode[lt&(1<<n.distbits)-1],xt=Tt>>>24,yt=Tt>>>16&255,ft=65535&Tt,xt<=at)break;if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}if(0===(240&yt)){for(At=xt,Ct=yt,vt=ft;;){if(Tt=n.distcode[vt+((lt&(1<<At+Ct)-1)>>At)],xt=Tt>>>24,yt=Tt>>>16&255,ft=65535&Tt,At+xt<=at)break;if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}lt>>>=At,at-=At,n.back+=At}if(lt>>>=xt,at-=xt,n.back+=xt,64&yt){t.msg="invalid distance code",n.mode=J;break}n.offset=ft,n.extra=15&yt,n.mode=j;case j:if(n.extra){bt=n.extra;while(at<bt){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}n.offset+=lt&(1<<n.extra)-1,lt>>>=n.extra,at-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=J;break}n.mode=Q;case Q:if(0===st)break t;if(dt=ut-st,n.offset>dt){if(dt=n.offset-dt,dt>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=J;break}dt>n.wnext?(dt-=n.wnext,ct=n.wsize-dt):ct=n.wnext-dt,dt>n.length&&(dt=n.length),pt=n.window}else pt=et,ct=it-n.offset,dt=n.length;dt>st&&(dt=st),st-=dt,n.length-=dt;do{et[it++]=pt[ct++]}while(--dt);0===n.length&&(n.mode=z);break;case Z:if(0===st)break t;et[it++]=n.length,st--,n.mode=z;break;case X:if(n.wrap){while(at<32){if(0===ot)break t;ot--,lt|=tt[nt++]<<at,at+=8}if(ut-=st,t.total_out+=ut,n.total+=ut,ut&&(t.adler=n.check=n.flags?o(n.check,et,ut,it-ut):r(n.check,et,ut,it-ut)),ut=st,(n.flags?lt:rt(lt))!==n.check){t.msg="incorrect data check",n.mode=J;break}lt=0,at=0}n.mode=K;case K:if(n.wrap&&n.flags){while(at<32){if(0===ot)break t;ot--,lt+=tt[nt++]<<at,at+=8}if(lt!==(4294967295&n.total)){t.msg="incorrect length check",n.mode=J;break}lt=0,at=0}n.mode=q;case q:wt=m;break t;case J:wt=f;break t;case _:return A;case $:default:return y}return t.next_out=it,t.avail_out=st,t.next_in=nt,t.avail_in=ot,n.hold=lt,n.bits=at,(n.wsize||ut!==t.avail_out&&n.mode<J&&(n.mode<X||e!==d))&&mt(t,t.output,t.next_out,ut-t.avail_out)?(n.mode=_,A):(ht-=t.avail_in,ut-=t.avail_out,t.total_in+=ht,t.total_out+=ut,n.total+=ut,n.wrap&&ut&&(t.adler=n.check=n.flags?o(n.check,et,ut,t.next_out-ut):r(n.check,et,ut,t.next_out-ut)),t.data_type=n.bits+(n.last?64:0)+(n.mode===D?128:0)+(n.mode===F||n.mode===k?256:0),(0===ht&&0===ut||e===d)&&wt===g&&(wt=C),wt)}function yt(t){if(!t||!t.state)return y;var e=t.state;return e.window&&(e.window=null),t.state=null,g}function ft(t,e){var n;return t&&t.state?(n=t.state,0===(2&n.wrap)?y:(n.head=e,e.done=!1,g)):y}function At(t,e){var n,i,o,s=e.length;return t&&t.state?(n=t.state,0!==n.wrap&&n.mode!==N?y:n.mode===N&&(i=1,i=r(i,e,s,0),i!==n.check)?f:(o=mt(t,e,s,s),o?(n.mode=_,A):(n.havedict=1,g))):y}e.inflateReset=lt,e.inflateReset2=at,e.inflateResetKeep=st,e.inflateInit=ut,e.inflateInit2=ht,e.inflate=xt,e.inflateEnd=yt,e.inflateGetHeader=ft,e.inflateSetDictionary=At,e.inflateInfo="pako inflate (from Nodeca project)"},1659:function(t,e,n){"use strict";var i=n(78746),r=15,o=852,s=592,l=0,a=1,h=2,u=[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],d=[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],c=[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],p=[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];t.exports=function(t,e,n,g,m,x,y,f){var A,C,v,E,w,S,b,T,L,I=f.bits,M=0,R=0,O=0,N=0,D=0,P=0,H=0,k=0,G=0,B=0,U=null,V=0,F=new i.Buf16(r+1),z=new i.Buf16(r+1),Y=null,W=0;for(M=0;M<=r;M++)F[M]=0;for(R=0;R<g;R++)F[e[n+R]]++;for(D=I,N=r;N>=1;N--)if(0!==F[N])break;if(D>N&&(D=N),0===N)return m[x++]=20971520,m[x++]=20971520,f.bits=1,0;for(O=1;O<N;O++)if(0!==F[O])break;for(D<O&&(D=O),k=1,M=1;M<=r;M++)if(k<<=1,k-=F[M],k<0)return-1;if(k>0&&(t===l||1!==N))return-1;for(z[1]=0,M=1;M<r;M++)z[M+1]=z[M]+F[M];for(R=0;R<g;R++)0!==e[n+R]&&(y[z[e[n+R]]++]=R);if(t===l?(U=Y=y,S=19):t===a?(U=u,V-=257,Y=d,W-=257,S=256):(U=c,Y=p,S=-1),B=0,R=0,M=O,w=x,P=D,H=0,v=-1,G=1<<D,E=G-1,t===a&&G>o||t===h&&G>s)return 1;for(;;){b=M-H,y[R]<S?(T=0,L=y[R]):y[R]>S?(T=Y[W+y[R]],L=U[V+y[R]]):(T=96,L=0),A=1<<M-H,C=1<<P,O=C;do{C-=A,m[w+(B>>H)+C]=b<<24|T<<16|L|0}while(0!==C);A=1<<M-1;while(B&A)A>>=1;if(0!==A?(B&=A-1,B+=A):B=0,R++,0===--F[M]){if(M===N)break;M=e[n+y[R]]}if(M>D&&(B&E)!==v){0===H&&(H=D),w+=O,P=M-H,k=1<<P;while(P+H<N){if(k-=F[P+H],k<=0)break;P++,k<<=1}if(G+=1<<P,t===a&&G>o||t===h&&G>s)return 1;v=B&E,m[v]=D<<24|P<<16|w-x|0}}return 0!==B&&(m[w+B]=M-H<<24|64<<16|0),f.bits=D,0}},27675:function(t){"use strict";t.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"}},24191:function(t,e,n){"use strict";var i=n(78746),r=4,o=0,s=1,l=2;function a(t){var e=t.length;while(--e>=0)t[e]=0}var h=0,u=1,d=2,c=3,p=258,g=29,m=256,x=m+1+g,y=30,f=19,A=2*x+1,C=15,v=16,E=7,w=256,S=16,b=17,T=18,L=[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],I=[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],R=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],O=512,N=new Array(2*(x+2));a(N);var D=new Array(2*y);a(D);var P=new Array(O);a(P);var H=new Array(p-c+1);a(H);var k=new Array(g);a(k);var G,B,U,V=new Array(y);function F(t,e,n,i,r){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=i,this.max_length=r,this.has_stree=t&&t.length}function z(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function Y(t){return t<256?P[t]:P[256+(t>>>7)]}function W(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function j(t,e,n){t.bi_valid>v-n?(t.bi_buf|=e<<t.bi_valid&65535,W(t,t.bi_buf),t.bi_buf=e>>v-t.bi_valid,t.bi_valid+=n-v):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)}function Q(t,e,n){j(t,n[2*e],n[2*e+1])}function Z(t,e){var n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1}function X(t){16===t.bi_valid?(W(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}function K(t,e){var n,i,r,o,s,l,a=e.dyn_tree,h=e.max_code,u=e.stat_desc.static_tree,d=e.stat_desc.has_stree,c=e.stat_desc.extra_bits,p=e.stat_desc.extra_base,g=e.stat_desc.max_length,m=0;for(o=0;o<=C;o++)t.bl_count[o]=0;for(a[2*t.heap[t.heap_max]+1]=0,n=t.heap_max+1;n<A;n++)i=t.heap[n],o=a[2*a[2*i+1]+1]+1,o>g&&(o=g,m++),a[2*i+1]=o,i>h||(t.bl_count[o]++,s=0,i>=p&&(s=c[i-p]),l=a[2*i],t.opt_len+=l*(o+s),d&&(t.static_len+=l*(u[2*i+1]+s)));if(0!==m){do{o=g-1;while(0===t.bl_count[o])o--;t.bl_count[o]--,t.bl_count[o+1]+=2,t.bl_count[g]--,m-=2}while(m>0);for(o=g;0!==o;o--){i=t.bl_count[o];while(0!==i)r=t.heap[--n],r>h||(a[2*r+1]!==o&&(t.opt_len+=(o-a[2*r+1])*a[2*r],a[2*r+1]=o),i--)}}}function q(t,e,n){var i,r,o=new Array(C+1),s=0;for(i=1;i<=C;i++)o[i]=s=s+n[i-1]<<1;for(r=0;r<=e;r++){var l=t[2*r+1];0!==l&&(t[2*r]=Z(o[l]++,l))}}function J(){var t,e,n,i,r,o=new Array(C+1);for(n=0,i=0;i<g-1;i++)for(k[i]=n,t=0;t<1<<L[i];t++)H[n++]=i;for(H[n-1]=i,r=0,i=0;i<16;i++)for(V[i]=r,t=0;t<1<<I[i];t++)P[r++]=i;for(r>>=7;i<y;i++)for(V[i]=r<<7,t=0;t<1<<I[i]-7;t++)P[256+r++]=i;for(e=0;e<=C;e++)o[e]=0;t=0;while(t<=143)N[2*t+1]=8,t++,o[8]++;while(t<=255)N[2*t+1]=9,t++,o[9]++;while(t<=279)N[2*t+1]=7,t++,o[7]++;while(t<=287)N[2*t+1]=8,t++,o[8]++;for(q(N,x+1,o),t=0;t<y;t++)D[2*t+1]=5,D[2*t]=Z(t,5);G=new F(N,L,m+1,x,C),B=new F(D,I,0,y,C),U=new F(new Array(0),M,0,f,E)}function _(t){var e;for(e=0;e<x;e++)t.dyn_ltree[2*e]=0;for(e=0;e<y;e++)t.dyn_dtree[2*e]=0;for(e=0;e<f;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*w]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function $(t){t.bi_valid>8?W(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function tt(t,e,n,r){$(t),r&&(W(t,n),W(t,~n)),i.arraySet(t.pending_buf,t.window,e,n,t.pending),t.pending+=n}function et(t,e,n,i){var r=2*e,o=2*n;return t[r]<t[o]||t[r]===t[o]&&i[e]<=i[n]}function nt(t,e,n){var i=t.heap[n],r=n<<1;while(r<=t.heap_len){if(r<t.heap_len&&et(e,t.heap[r+1],t.heap[r],t.depth)&&r++,et(e,i,t.heap[r],t.depth))break;t.heap[n]=t.heap[r],n=r,r<<=1}t.heap[n]=i}function it(t,e,n){var i,r,o,s,l=0;if(0!==t.last_lit)do{i=t.pending_buf[t.d_buf+2*l]<<8|t.pending_buf[t.d_buf+2*l+1],r=t.pending_buf[t.l_buf+l],l++,0===i?Q(t,r,e):(o=H[r],Q(t,o+m+1,e),s=L[o],0!==s&&(r-=k[o],j(t,r,s)),i--,o=Y(i),Q(t,o,n),s=I[o],0!==s&&(i-=V[o],j(t,i,s)))}while(l<t.last_lit);Q(t,w,e)}function rt(t,e){var n,i,r,o=e.dyn_tree,s=e.stat_desc.static_tree,l=e.stat_desc.has_stree,a=e.stat_desc.elems,h=-1;for(t.heap_len=0,t.heap_max=A,n=0;n<a;n++)0!==o[2*n]?(t.heap[++t.heap_len]=h=n,t.depth[n]=0):o[2*n+1]=0;while(t.heap_len<2)r=t.heap[++t.heap_len]=h<2?++h:0,o[2*r]=1,t.depth[r]=0,t.opt_len--,l&&(t.static_len-=s[2*r+1]);for(e.max_code=h,n=t.heap_len>>1;n>=1;n--)nt(t,o,n);r=a;do{n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],nt(t,o,1),i=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=i,o[2*r]=o[2*n]+o[2*i],t.depth[r]=(t.depth[n]>=t.depth[i]?t.depth[n]:t.depth[i])+1,o[2*n+1]=o[2*i+1]=r,t.heap[1]=r++,nt(t,o,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],K(t,e),q(o,h,t.bl_count)}function ot(t,e,n){var i,r,o=-1,s=e[1],l=0,a=7,h=4;for(0===s&&(a=138,h=3),e[2*(n+1)+1]=65535,i=0;i<=n;i++)r=s,s=e[2*(i+1)+1],++l<a&&r===s||(l<h?t.bl_tree[2*r]+=l:0!==r?(r!==o&&t.bl_tree[2*r]++,t.bl_tree[2*S]++):l<=10?t.bl_tree[2*b]++:t.bl_tree[2*T]++,l=0,o=r,0===s?(a=138,h=3):r===s?(a=6,h=3):(a=7,h=4))}function st(t,e,n){var i,r,o=-1,s=e[1],l=0,a=7,h=4;for(0===s&&(a=138,h=3),i=0;i<=n;i++)if(r=s,s=e[2*(i+1)+1],!(++l<a&&r===s)){if(l<h)do{Q(t,r,t.bl_tree)}while(0!==--l);else 0!==r?(r!==o&&(Q(t,r,t.bl_tree),l--),Q(t,S,t.bl_tree),j(t,l-3,2)):l<=10?(Q(t,b,t.bl_tree),j(t,l-3,3)):(Q(t,T,t.bl_tree),j(t,l-11,7));l=0,o=r,0===s?(a=138,h=3):r===s?(a=6,h=3):(a=7,h=4)}}function lt(t){var e;for(ot(t,t.dyn_ltree,t.l_desc.max_code),ot(t,t.dyn_dtree,t.d_desc.max_code),rt(t,t.bl_desc),e=f-1;e>=3;e--)if(0!==t.bl_tree[2*R[e]+1])break;return t.opt_len+=3*(e+1)+5+5+4,e}function at(t,e,n,i){var r;for(j(t,e-257,5),j(t,n-1,5),j(t,i-4,4),r=0;r<i;r++)j(t,t.bl_tree[2*R[r]+1],3);st(t,t.dyn_ltree,e-1),st(t,t.dyn_dtree,n-1)}function ht(t){var e,n=4093624447;for(e=0;e<=31;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return s;for(e=32;e<m;e++)if(0!==t.dyn_ltree[2*e])return s;return o}a(V);var ut=!1;function dt(t){ut||(J(),ut=!0),t.l_desc=new z(t.dyn_ltree,G),t.d_desc=new z(t.dyn_dtree,B),t.bl_desc=new z(t.bl_tree,U),t.bi_buf=0,t.bi_valid=0,_(t)}function ct(t,e,n,i){j(t,(h<<1)+(i?1:0),3),tt(t,e,n,!0)}function pt(t){j(t,u<<1,3),Q(t,w,N),X(t)}function gt(t,e,n,i){var o,s,a=0;t.level>0?(t.strm.data_type===l&&(t.strm.data_type=ht(t)),rt(t,t.l_desc),rt(t,t.d_desc),a=lt(t),o=t.opt_len+3+7>>>3,s=t.static_len+3+7>>>3,s<=o&&(o=s)):o=s=n+5,n+4<=o&&-1!==e?ct(t,e,n,i):t.strategy===r||s===o?(j(t,(u<<1)+(i?1:0),3),it(t,N,D)):(j(t,(d<<1)+(i?1:0),3),at(t,t.l_desc.max_code+1,t.d_desc.max_code+1,a+1),it(t,t.dyn_ltree,t.dyn_dtree)),_(t),i&&$(t)}function mt(t,e,n){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(H[n]+m+1)]++,t.dyn_dtree[2*Y(e)]++),t.last_lit===t.lit_bufsize-1}e._tr_init=dt,e._tr_stored_block=ct,e._tr_flush_block=gt,e._tr_tally=mt,e._tr_align=pt},89731:function(t){"use strict";function e(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}t.exports=e},7339:function(t,e,n){var i,r,o;n(57658),function(n,s){r=[],i=s,o="function"===typeof i?i.apply(e,r):i,void 0===o||(t.exports=o)}(0,(function(){return function(t){function e(t){return" "===t||"\t"===t||"\n"===t||"\f"===t||"\r"===t}function n(e){var n,i=e.exec(t.substring(m));if(i)return n=i[0],m+=n.length,n}var i,r,o,s,l,a=t.length,h=/^[ \t\n\r\u000c]+/,u=/^[, \t\n\r\u000c]+/,d=/^[^ \t\n\r\u000c]+/,c=/[,]+$/,p=/^\d+$/,g=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,m=0,x=[];while(1){if(n(u),m>=a)return x;i=n(d),r=[],","===i.slice(-1)?(i=i.replace(c,""),f()):y()}function y(){n(h),o="",s="in descriptor";while(1){if(l=t.charAt(m),"in descriptor"===s)if(e(l))o&&(r.push(o),o="",s="after descriptor");else{if(","===l)return m+=1,o&&r.push(o),void f();if("("===l)o+=l,s="in parens";else{if(""===l)return o&&r.push(o),void f();o+=l}}else if("in parens"===s)if(")"===l)o+=l,s="in descriptor";else{if(""===l)return r.push(o),void f();o+=l}else if("after descriptor"===s)if(e(l));else{if(""===l)return void f();s="in descriptor",m-=1}m+=1}}function f(){var e,n,o,s,l,a,h,u,d,c=!1,m={};for(s=0;s<r.length;s++)l=r[s],a=l[l.length-1],h=l.substring(0,l.length-1),u=parseInt(h,10),d=parseFloat(h),p.test(h)&&"w"===a?((e||n)&&(c=!0),0===u?c=!0:e=u):g.test(h)&&"x"===a?((e||n||o)&&(c=!0),d<0?c=!0:n=d):p.test(h)&&"h"===a?((o||n)&&(c=!0),0===u?c=!0:o=u):c=!0;c?console&&console.log&&console.log("Invalid srcset descriptor found in '"+t+"' at '"+l+"'."):(m.url=i,e&&(m.w=e),n&&(m.d=n),o&&(m.h=o),x.push(m))}}}))},52838:function(t){var e=String,n=function(){return{isColorSupported:!1,reset:e,bold:e,dim:e,italic:e,underline:e,inverse:e,hidden:e,strikethrough:e,black:e,red:e,green:e,yellow:e,blue:e,magenta:e,cyan:e,white:e,gray:e,bgBlack:e,bgRed:e,bgGreen:e,bgYellow:e,bgBlue:e,bgMagenta:e,bgCyan:e,bgWhite:e}};t.exports=n(),t.exports.createColors=n},95514:function(t,e,n){n(57658),n(46229),n(17330),n(62062);const i=n(87185),r=n(91139),{isPlainObject:o}=n(94381),s=n(7669),l=n(7339),{parse:a}=n(69643),h=["img","audio","video","picture","svg","object","map","iframe","embed"],u=["script","style"];function d(t,e){t&&Object.keys(t).forEach((function(n){e(t[n],n)}))}function c(t,e){return{}.hasOwnProperty.call(t,e)}function p(t,e){const n=[];return d(t,(function(t){e(t)&&n.push(t)})),n}function g(t){for(const e in t)if(c(t,e))return!1;return!0}function m(t){return t.map((function(t){if(!t.url)throw new Error("URL missing");return t.url+(t.w?` ${t.w}w`:"")+(t.h?` ${t.h}h`:"")+(t.d?` ${t.d}x`:"")})).join(", ")}t.exports=y;const x=/^[^\0\t\n\f\r /<=>]+$/;function y(t,e,n){if(null==t)return"";"number"===typeof t&&(t=t.toString());let A="",C="";function v(t,e){const n=this;this.tag=t,this.attribs=e||{},this.tagPosition=A.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){if(N.length){const t=N[N.length-1];t.text+=n.text}},this.updateParentNodeMediaChildren=function(){if(N.length&&h.includes(this.tag)){const t=N[N.length-1];t.mediaChildren.push(this.tag)}}}e=Object.assign({},y.defaults,e),e.parser=Object.assign({},f,e.parser);const E=function(t){return!1===e.allowedTags||(e.allowedTags||[]).indexOf(t)>-1};u.forEach((function(t){E(t)&&!e.allowVulnerableTags&&console.warn(`\n\n⚠️ Your \`allowedTags\` option includes, \`${t}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)}));const w=e.nonTextTags||["script","style","textarea","option"];let S,b;e.allowedAttributes&&(S={},b={},d(e.allowedAttributes,(function(t,e){S[e]=[];const n=[];t.forEach((function(t){"string"===typeof t&&t.indexOf("*")>=0?n.push(r(t).replace(/\\\*/g,".*")):S[e].push(t)})),n.length&&(b[e]=new RegExp("^("+n.join("|")+")$"))})));const T={},L={},I={};d(e.allowedClasses,(function(t,e){if(S&&(c(S,e)||(S[e]=[]),S[e].push("class")),T[e]=t,Array.isArray(t)){const n=[];T[e]=[],I[e]=[],t.forEach((function(t){"string"===typeof t&&t.indexOf("*")>=0?n.push(r(t).replace(/\\\*/g,".*")):t instanceof RegExp?I[e].push(t):T[e].push(t)})),n.length&&(L[e]=new RegExp("^("+n.join("|")+")$"))}}));const M={};let R,O,N,D,P,H,k;d(e.transformTags,(function(t,e){let n;"function"===typeof t?n=t:"string"===typeof t&&(n=y.simpleTransform(t)),"*"===e?R=n:M[e]=n}));let G=!1;U();const B=new i.Parser({onopentag:function(t,n){if(e.enforceHtmlBoundary&&"html"===t&&U(),H)return void k++;const i=new v(t,n);N.push(i);let r=!1;const h=!!i.text;let u;if(c(M,t)&&(u=M[t](t,n),i.attribs=n=u.attribs,void 0!==u.text&&(i.innerText=u.text),t!==u.tagName&&(i.name=t=u.tagName,P[O]=u.tagName)),R&&(u=R(t,n),i.attribs=n=u.attribs,t!==u.tagName&&(i.name=t=u.tagName,P[O]=u.tagName)),(!E(t)||"recursiveEscape"===e.disallowedTagsMode&&!g(D)||null!=e.nestingLimit&&O>=e.nestingLimit)&&(r=!0,D[O]=!0,"discard"===e.disallowedTagsMode&&-1!==w.indexOf(t)&&(H=!0,k=1),D[O]=!0),O++,r){if("discard"===e.disallowedTagsMode)return;C=A,A=""}A+="<"+t,"script"===t&&(e.allowedScriptHostnames||e.allowedScriptDomains)&&(i.innerText=""),(!S||c(S,t)||S["*"])&&d(n,(function(n,r){if(!x.test(r))return void delete i.attribs[r];if(""===n&&(e.nonBooleanAttributes.includes(r)||e.nonBooleanAttributes.includes("*")))return void delete i.attribs[r];let h=!1;if(!S||c(S,t)&&-1!==S[t].indexOf(r)||S["*"]&&-1!==S["*"].indexOf(r)||c(b,t)&&b[t].test(r)||b["*"]&&b["*"].test(r))h=!0;else if(S&&S[t])for(const e of S[t])if(o(e)&&e.name&&e.name===r){h=!0;let t="";if(!0===e.multiple){const i=n.split(" ");for(const n of i)-1!==e.values.indexOf(n)&&(""===t?t=n:t+=" "+n)}else e.values.indexOf(n)>=0&&(t=n);n=t}if(h){if(-1!==e.allowedSchemesAppliedToAttributes.indexOf(r)&&F(t,n))return void delete i.attribs[r];if("script"===t&&"src"===r){let t=!0;try{const i=z(n);if(e.allowedScriptHostnames||e.allowedScriptDomains){const n=(e.allowedScriptHostnames||[]).find((function(t){return t===i.url.hostname})),r=(e.allowedScriptDomains||[]).find((function(t){return i.url.hostname===t||i.url.hostname.endsWith(`.${t}`)}));t=n||r}}catch(u){t=!1}if(!t)return void delete i.attribs[r]}if("iframe"===t&&"src"===r){let t=!0;try{const i=z(n);if(i.isRelativeUrl)t=c(e,"allowIframeRelativeUrls")?e.allowIframeRelativeUrls:!e.allowedIframeHostnames&&!e.allowedIframeDomains;else if(e.allowedIframeHostnames||e.allowedIframeDomains){const n=(e.allowedIframeHostnames||[]).find((function(t){return t===i.url.hostname})),r=(e.allowedIframeDomains||[]).find((function(t){return i.url.hostname===t||i.url.hostname.endsWith(`.${t}`)}));t=n||r}}catch(u){t=!1}if(!t)return void delete i.attribs[r]}if("srcset"===r)try{let t=l(n);if(t.forEach((function(t){F("srcset",t.url)&&(t.evil=!0)})),t=p(t,(function(t){return!t.evil})),!t.length)return void delete i.attribs[r];n=m(p(t,(function(t){return!t.evil}))),i.attribs[r]=n}catch(u){return void delete i.attribs[r]}if("class"===r){const e=T[t],o=T["*"],l=L[t],a=I[t],h=L["*"],u=[l,h].concat(a).filter((function(t){return t}));if(n=Q(n,e&&o?s(e,o):e||o,u),!n.length)return void delete i.attribs[r]}if("style"===r)if(e.parseStyleAttributes)try{const o=a(t+" {"+n+"}"),s=Y(o,e.allowedStyles);if(n=W(s),0===n.length)return void delete i.attribs[r]}catch(u){return"undefined"!==typeof window&&console.warn('Failed to parse "'+t+" {"+n+"}\", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547"),void delete i.attribs[r]}else if(e.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.");A+=" "+r,n&&n.length&&(A+='="'+V(n,!0)+'"')}else delete i.attribs[r]})),-1!==e.selfClosing.indexOf(t)?A+=" />":(A+=">",!i.innerText||h||e.textFilter||(A+=V(i.innerText),G=!0)),r&&(A=C+V(A),C="")},ontext:function(t){if(H)return;const n=N[N.length-1];let i;if(n&&(i=n.tag,t=void 0!==n.innerText?n.innerText:t),"discard"!==e.disallowedTagsMode||"script"!==i&&"style"!==i){const n=V(t,!1);e.textFilter&&!G?A+=e.textFilter(n,i):G||(A+=n)}else A+=t;if(N.length){const e=N[N.length-1];e.text+=t}},onclosetag:function(t,n){if(H){if(k--,k)return;H=!1}const i=N.pop();if(!i)return;if(i.tag!==t)return void N.push(i);H=!!e.enforceHtmlBoundary&&"html"===t,O--;const r=D[O];if(r){if(delete D[O],"discard"===e.disallowedTagsMode)return void i.updateParentNodeText();C=A,A=""}P[O]&&(t=P[O],delete P[O]),e.exclusiveFilter&&e.exclusiveFilter(i)?A=A.substr(0,i.tagPosition):(i.updateParentNodeMediaChildren(),i.updateParentNodeText(),-1!==e.selfClosing.indexOf(t)||n&&!E(t)&&["escape","recursiveEscape"].indexOf(e.disallowedTagsMode)>=0?r&&(A=C,C=""):(A+="</"+t+">",r&&(A=C+V(A),C=""),G=!1))}},e.parser);return B.write(t),B.end(),A;function U(){A="",O=0,N=[],D={},P={},H=!1,k=0}function V(t,n){return"string"!==typeof t&&(t+=""),e.parser.decodeEntities&&(t=t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),n&&(t=t.replace(/"/g,"""))),t=t.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(/</g,"<").replace(/>/g,">"),n&&(t=t.replace(/"/g,""")),t}function F(t,n){n=n.replace(/[\x00-\x20]+/g,"");while(1){const t=n.indexOf("\x3c!--");if(-1===t)break;const e=n.indexOf("--\x3e",t+4);if(-1===e)break;n=n.substring(0,t)+n.substring(e+3)}const i=n.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!i)return!!n.match(/^[/\\]{2}/)&&!e.allowProtocolRelative;const r=i[1].toLowerCase();return c(e.allowedSchemesByTag,t)?-1===e.allowedSchemesByTag[t].indexOf(r):!e.allowedSchemes||-1===e.allowedSchemes.indexOf(r)}function z(t){if(t=t.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//"),t.startsWith("relative:"))throw new Error("relative: exploit attempt");let e="relative://relative-site";for(let r=0;r<100;r++)e+=`/${r}`;const n=new URL(t,e),i=n&&"relative-site"===n.hostname&&"relative:"===n.protocol;return{isRelativeUrl:i,url:n}}function Y(t,e){if(!e)return t;const n=t.nodes[0];let i;return i=e[n.selector]&&e["*"]?s(e[n.selector],e["*"]):e[n.selector]||e["*"],i&&(t.nodes[0].nodes=n.nodes.reduce(j(i),[])),t}function W(t){return t.nodes[0].nodes.reduce((function(t,e){return t.push(`${e.prop}:${e.value}${e.important?" !important":""}`),t}),[]).join(";")}function j(t){return function(e,n){if(c(t,n.prop)){const i=t[n.prop].some((function(t){return t.test(n.value)}));i&&e.push(n)}return e}}function Q(t,e,n){return e?(t=t.split(/\s+/),t.filter((function(t){return-1!==e.indexOf(t)||n.some((function(e){return e.test(t)}))})).join(" ")):t}}const f={decodeEntities:!0};y.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0},y.simpleTransform=function(t,e,n){return n=void 0===n||n,e=e||{},function(i,r){let o;if(n)for(o in e)r[o]=e[o];else r=e;return{tagName:t,attribs:r}}}},75978:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.attributeNames=e.elementNames=void 0,e.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((function(t){return[t.toLowerCase(),t]}))),e.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((function(t){return[t.toLowerCase(),t]})))},24569:function(t,e,n){"use strict";var i=this&&this.__assign||function(){return i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n],e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t},i.apply(this,arguments)},r=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);r&&!("get"in r?!e.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),o=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t["default"]=e}),s=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&r(e,t,n);return o(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.render=void 0;var l=s(n(73090)),a=n(72656),h=n(75978),u=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function d(t){return t.replace(/"/g,""")}function c(t,e){var n;if(t){var i=!1===(null!==(n=e.encodeEntities)&&void 0!==n?n:e.decodeEntities)?d:e.xmlMode||"utf8"!==e.encodeEntities?a.encodeXML:a.escapeAttribute;return Object.keys(t).map((function(n){var r,o,s=null!==(r=t[n])&&void 0!==r?r:"";return"foreign"===e.xmlMode&&(n=null!==(o=h.attributeNames.get(n))&&void 0!==o?o:n),e.emptyAttrs||e.xmlMode||""!==s?"".concat(n,'="').concat(i(s),'"'):n})).join(" ")}}var p=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function g(t,e){void 0===e&&(e={});for(var n=("length"in t?t:[t]),i="",r=0;r<n.length;r++)i+=m(n[r],e);return i}function m(t,e){switch(t.type){case l.Root:return g(t.children,e);case l.Doctype:case l.Directive:return A(t);case l.Comment:return E(t);case l.CDATA:return v(t);case l.Script:case l.Style:case l.Tag:return f(t,e);case l.Text:return C(t,e)}}e.render=g,e["default"]=g;var x=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),y=new Set(["svg","math"]);function f(t,e){var n;"foreign"===e.xmlMode&&(t.name=null!==(n=h.elementNames.get(t.name))&&void 0!==n?n:t.name,t.parent&&x.has(t.parent.name)&&(e=i(i({},e),{xmlMode:!1}))),!e.xmlMode&&y.has(t.name)&&(e=i(i({},e),{xmlMode:"foreign"}));var r="<".concat(t.name),o=c(t.attribs,e);return o&&(r+=" ".concat(o)),0===t.children.length&&(e.xmlMode?!1!==e.selfClosingTags:e.selfClosingTags&&p.has(t.name))?(e.xmlMode||(r+=" "),r+="/>"):(r+=">",t.children.length>0&&(r+=g(t.children,e)),!e.xmlMode&&p.has(t.name)||(r+="</".concat(t.name,">"))),r}function A(t){return"<".concat(t.data,">")}function C(t,e){var n,i=t.data||"";return!1===(null!==(n=e.encodeEntities)&&void 0!==n?n:e.decodeEntities)||!e.xmlMode&&t.parent&&u.has(t.parent.name)||(i=e.xmlMode||"utf8"!==e.encodeEntities?(0,a.encodeXML)(i):(0,a.escapeText)(i)),i}function v(t){return"<![CDATA[".concat(t.children[0].data,"]]>")}function E(t){return"\x3c!--".concat(t.data,"--\x3e")}},6029:function(t,e,n){"use strict";n(57658);var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);r&&!("get"in r?!e.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),r=this&&this.__exportStar||function(t,e){for(var n in t)"default"===n||Object.prototype.hasOwnProperty.call(e,n)||i(e,t,n)};Object.defineProperty(e,"__esModule",{value:!0}),e.DomHandler=void 0;var o=n(73090),s=n(12933);r(n(12933),e);var l={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},a=function(){function t(t,e,n){this.dom=[],this.root=new s.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"===typeof e&&(n=e,e=l),"object"===typeof t&&(e=t,t=void 0),this.callback=null!==t&&void 0!==t?t:null,this.options=null!==e&&void 0!==e?e:l,this.elementCB=null!==n&&void 0!==n?n:null}return t.prototype.onparserinit=function(t){this.parser=t},t.prototype.onreset=function(){this.dom=[],this.root=new s.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},t.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},t.prototype.onerror=function(t){this.handleCallback(t)},t.prototype.onclosetag=function(){this.lastNode=null;var t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)},t.prototype.onopentag=function(t,e){var n=this.options.xmlMode?o.ElementType.Tag:void 0,i=new s.Element(t,e,void 0,n);this.addNode(i),this.tagStack.push(i)},t.prototype.ontext=function(t){var e=this.lastNode;if(e&&e.type===o.ElementType.Text)e.data+=t,this.options.withEndIndices&&(e.endIndex=this.parser.endIndex);else{var n=new s.Text(t);this.addNode(n),this.lastNode=n}},t.prototype.oncomment=function(t){if(this.lastNode&&this.lastNode.type===o.ElementType.Comment)this.lastNode.data+=t;else{var e=new s.Comment(t);this.addNode(e),this.lastNode=e}},t.prototype.oncommentend=function(){this.lastNode=null},t.prototype.oncdatastart=function(){var t=new s.Text(""),e=new s.CDATA([t]);this.addNode(e),t.parent=e,this.lastNode=t},t.prototype.oncdataend=function(){this.lastNode=null},t.prototype.onprocessinginstruction=function(t,e){var n=new s.ProcessingInstruction(t,e);this.addNode(n)},t.prototype.handleCallback=function(t){if("function"===typeof this.callback)this.callback(t,this.dom);else if(t)throw t},t.prototype.addNode=function(t){var e=this.tagStack[this.tagStack.length-1],n=e.children[e.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),e.children.push(t),n&&(t.prev=n,n.next=t),t.parent=e,this.lastNode=null},t}();e.DomHandler=a,e["default"]=a},12933:function(t,e,n){"use strict";var i=this&&this.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),r=this&&this.__assign||function(){return r=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n],e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t},r.apply(this,arguments)};Object.defineProperty(e,"__esModule",{value:!0}),e.cloneNode=e.hasChildren=e.isDocument=e.isDirective=e.isComment=e.isText=e.isCDATA=e.isTag=e.Element=e.Document=e.CDATA=e.NodeWithChildren=e.ProcessingInstruction=e.Comment=e.Text=e.DataNode=e.Node=void 0;var o=n(73090),s=function(){function t(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}return Object.defineProperty(t.prototype,"parentNode",{get:function(){return this.parent},set:function(t){this.parent=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"previousSibling",{get:function(){return this.prev},set:function(t){this.prev=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"nextSibling",{get:function(){return this.next},set:function(t){this.next=t},enumerable:!1,configurable:!0}),t.prototype.cloneNode=function(t){return void 0===t&&(t=!1),E(this,t)},t}();e.Node=s;var l=function(t){function e(e){var n=t.call(this)||this;return n.data=e,n}return i(e,t),Object.defineProperty(e.prototype,"nodeValue",{get:function(){return this.data},set:function(t){this.data=t},enumerable:!1,configurable:!0}),e}(s);e.DataNode=l;var a=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=o.ElementType.Text,e}return i(e,t),Object.defineProperty(e.prototype,"nodeType",{get:function(){return 3},enumerable:!1,configurable:!0}),e}(l);e.Text=a;var h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=o.ElementType.Comment,e}return i(e,t),Object.defineProperty(e.prototype,"nodeType",{get:function(){return 8},enumerable:!1,configurable:!0}),e}(l);e.Comment=h;var u=function(t){function e(e,n){var i=t.call(this,n)||this;return i.name=e,i.type=o.ElementType.Directive,i}return i(e,t),Object.defineProperty(e.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),e}(l);e.ProcessingInstruction=u;var d=function(t){function e(e){var n=t.call(this)||this;return n.children=e,n}return i(e,t),Object.defineProperty(e.prototype,"firstChild",{get:function(){var t;return null!==(t=this.children[0])&&void 0!==t?t:null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"childNodes",{get:function(){return this.children},set:function(t){this.children=t},enumerable:!1,configurable:!0}),e}(s);e.NodeWithChildren=d;var c=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=o.ElementType.CDATA,e}return i(e,t),Object.defineProperty(e.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),e}(d);e.CDATA=c;var p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=o.ElementType.Root,e}return i(e,t),Object.defineProperty(e.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),e}(d);e.Document=p;var g=function(t){function e(e,n,i,r){void 0===i&&(i=[]),void 0===r&&(r="script"===e?o.ElementType.Script:"style"===e?o.ElementType.Style:o.ElementType.Tag);var s=t.call(this,i)||this;return s.name=e,s.attribs=n,s.type=r,s}return i(e,t),Object.defineProperty(e.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"tagName",{get:function(){return this.name},set:function(t){this.name=t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"attributes",{get:function(){var t=this;return Object.keys(this.attribs).map((function(e){var n,i;return{name:e,value:t.attribs[e],namespace:null===(n=t["x-attribsNamespace"])||void 0===n?void 0:n[e],prefix:null===(i=t["x-attribsPrefix"])||void 0===i?void 0:i[e]}}))},enumerable:!1,configurable:!0}),e}(d);function m(t){return(0,o.isTag)(t)}function x(t){return t.type===o.ElementType.CDATA}function y(t){return t.type===o.ElementType.Text}function f(t){return t.type===o.ElementType.Comment}function A(t){return t.type===o.ElementType.Directive}function C(t){return t.type===o.ElementType.Root}function v(t){return Object.prototype.hasOwnProperty.call(t,"children")}function E(t,e){var n;if(void 0===e&&(e=!1),y(t))n=new a(t.data);else if(f(t))n=new h(t.data);else if(m(t)){var i=e?w(t.children):[],o=new g(t.name,r({},t.attribs),i);i.forEach((function(t){return t.parent=o})),null!=t.namespace&&(o.namespace=t.namespace),t["x-attribsNamespace"]&&(o["x-attribsNamespace"]=r({},t["x-attribsNamespace"])),t["x-attribsPrefix"]&&(o["x-attribsPrefix"]=r({},t["x-attribsPrefix"])),n=o}else if(x(t)){i=e?w(t.children):[];var s=new c(i);i.forEach((function(t){return t.parent=s})),n=s}else if(C(t)){i=e?w(t.children):[];var l=new p(i);i.forEach((function(t){return t.parent=l})),t["x-mode"]&&(l["x-mode"]=t["x-mode"]),n=l}else{if(!A(t))throw new Error("Not implemented yet: ".concat(t.type));var d=new u(t.name,t.data);null!=t["x-name"]&&(d["x-name"]=t["x-name"],d["x-publicId"]=t["x-publicId"],d["x-systemId"]=t["x-systemId"]),n=d}return n.startIndex=t.startIndex,n.endIndex=t.endIndex,null!=t.sourceCodeLocation&&(n.sourceCodeLocation=t.sourceCodeLocation),n}function w(t){for(var e=t.map((function(t){return E(t,!0)})),n=1;n<e.length;n++)e[n].prev=e[n-1],e[n-1].next=e[n];return e}e.Element=g,e.isTag=m,e.isCDATA=x,e.isText=y,e.isComment=f,e.isDirective=A,e.isDocument=C,e.hasChildren=v,e.cloneNode=E},2026:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getFeed=void 0;var i=n(1362),r=n(30851);function o(t){var e=d(g,t);return e?"feed"===e.name?s(e):l(e):null}function s(t){var e,n=t.children,i={type:"atom",items:(0,r.getElementsByTagName)("entry",n).map((function(t){var e,n=t.children,i={media:u(n)};p(i,"id","id",n),p(i,"title","title",n);var r=null===(e=d("link",n))||void 0===e?void 0:e.attribs["href"];r&&(i.link=r);var o=c("summary",n)||c("content",n);o&&(i.description=o);var s=c("updated",n);return s&&(i.pubDate=new Date(s)),i}))};p(i,"id","id",n),p(i,"title","title",n);var o=null===(e=d("link",n))||void 0===e?void 0:e.attribs["href"];o&&(i.link=o),p(i,"description","subtitle",n);var s=c("updated",n);return s&&(i.updated=new Date(s)),p(i,"author","email",n,!0),i}function l(t){var e,n,i=null!==(n=null===(e=d("channel",t.children))||void 0===e?void 0:e.children)&&void 0!==n?n:[],o={type:t.name.substr(0,3),id:"",items:(0,r.getElementsByTagName)("item",t.children).map((function(t){var e=t.children,n={media:u(e)};p(n,"id","guid",e),p(n,"title","title",e),p(n,"link","link",e),p(n,"description","description",e);var i=c("pubDate",e)||c("dc:date",e);return i&&(n.pubDate=new Date(i)),n}))};p(o,"title","title",i),p(o,"link","link",i),p(o,"description","description",i);var s=c("lastBuildDate",i);return s&&(o.updated=new Date(s)),p(o,"author","managingEditor",i,!0),o}e.getFeed=o;var a=["url","type","lang"],h=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function u(t){return(0,r.getElementsByTagName)("media:content",t).map((function(t){for(var e=t.attribs,n={medium:e["medium"],isDefault:!!e["isDefault"]},i=0,r=a;i<r.length;i++){var o=r[i];e[o]&&(n[o]=e[o])}for(var s=0,l=h;s<l.length;s++){o=l[s];e[o]&&(n[o]=parseInt(e[o],10))}return e["expression"]&&(n.expression=e["expression"]),n}))}function d(t,e){return(0,r.getElementsByTagName)(t,e,!0,1)[0]}function c(t,e,n){return void 0===n&&(n=!1),(0,i.textContent)((0,r.getElementsByTagName)(t,e,n,1)).trim()}function p(t,e,n,i,r){void 0===r&&(r=!1);var o=c(n,i,r);o&&(t[e]=o)}function g(t){return"rss"===t||"feed"===t||"rdf:RDF"===t}},1147:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.uniqueSort=e.compareDocumentPosition=e.DocumentPosition=e.removeSubsets=void 0;var i,r=n(6029);function o(t){var e=t.length;while(--e>=0){var n=t[e];if(e>0&&t.lastIndexOf(n,e-1)>=0)t.splice(e,1);else for(var i=n.parent;i;i=i.parent)if(t.includes(i)){t.splice(e,1);break}}return t}function s(t,e){var n=[],o=[];if(t===e)return 0;var s=(0,r.hasChildren)(t)?t:t.parent;while(s)n.unshift(s),s=s.parent;s=(0,r.hasChildren)(e)?e:e.parent;while(s)o.unshift(s),s=s.parent;var l=Math.min(n.length,o.length),a=0;while(a<l&&n[a]===o[a])a++;if(0===a)return i.DISCONNECTED;var h=n[a-1],u=h.children,d=n[a],c=o[a];return u.indexOf(d)>u.indexOf(c)?h===e?i.FOLLOWING|i.CONTAINED_BY:i.FOLLOWING:h===t?i.PRECEDING|i.CONTAINS:i.PRECEDING}function l(t){return t=t.filter((function(t,e,n){return!n.includes(t,e+1)})),t.sort((function(t,e){var n=s(t,e);return n&i.PRECEDING?-1:n&i.FOLLOWING?1:0})),t}e.removeSubsets=o,function(t){t[t["DISCONNECTED"]=1]="DISCONNECTED",t[t["PRECEDING"]=2]="PRECEDING",t[t["FOLLOWING"]=4]="FOLLOWING",t[t["CONTAINS"]=8]="CONTAINS",t[t["CONTAINED_BY"]=16]="CONTAINED_BY"}(i=e.DocumentPosition||(e.DocumentPosition={})),e.compareDocumentPosition=s,e.uniqueSort=l},72493:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);r&&!("get"in r?!e.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),r=this&&this.__exportStar||function(t,e){for(var n in t)"default"===n||Object.prototype.hasOwnProperty.call(e,n)||i(e,t,n)};Object.defineProperty(e,"__esModule",{value:!0}),e.hasChildren=e.isDocument=e.isComment=e.isText=e.isCDATA=e.isTag=void 0,r(n(1362),e),r(n(70223),e),r(n(7288),e),r(n(61510),e),r(n(30851),e),r(n(1147),e),r(n(2026),e);var o=n(6029);Object.defineProperty(e,"isTag",{enumerable:!0,get:function(){return o.isTag}}),Object.defineProperty(e,"isCDATA",{enumerable:!0,get:function(){return o.isCDATA}}),Object.defineProperty(e,"isText",{enumerable:!0,get:function(){return o.isText}}),Object.defineProperty(e,"isComment",{enumerable:!0,get:function(){return o.isComment}}),Object.defineProperty(e,"isDocument",{enumerable:!0,get:function(){return o.isDocument}}),Object.defineProperty(e,"hasChildren",{enumerable:!0,get:function(){return o.hasChildren}})},30851:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getElementsByTagType=e.getElementsByTagName=e.getElementById=e.getElements=e.testElement=void 0;var i=n(6029),r=n(61510),o={tag_name:function(t){return"function"===typeof t?function(e){return(0,i.isTag)(e)&&t(e.name)}:"*"===t?i.isTag:function(e){return(0,i.isTag)(e)&&e.name===t}},tag_type:function(t){return"function"===typeof t?function(e){return t(e.type)}:function(e){return e.type===t}},tag_contains:function(t){return"function"===typeof t?function(e){return(0,i.isText)(e)&&t(e.data)}:function(e){return(0,i.isText)(e)&&e.data===t}}};function s(t,e){return"function"===typeof e?function(n){return(0,i.isTag)(n)&&e(n.attribs[t])}:function(n){return(0,i.isTag)(n)&&n.attribs[t]===e}}function l(t,e){return function(n){return t(n)||e(n)}}function a(t){var e=Object.keys(t).map((function(e){var n=t[e];return Object.prototype.hasOwnProperty.call(o,e)?o[e](n):s(e,n)}));return 0===e.length?null:e.reduce(l)}function h(t,e){var n=a(t);return!n||n(e)}function u(t,e,n,i){void 0===i&&(i=1/0);var o=a(t);return o?(0,r.filter)(o,e,n,i):[]}function d(t,e,n){return void 0===n&&(n=!0),Array.isArray(e)||(e=[e]),(0,r.findOne)(s("id",t),e,n)}function c(t,e,n,i){return void 0===n&&(n=!0),void 0===i&&(i=1/0),(0,r.filter)(o["tag_name"](t),e,n,i)}function p(t,e,n,i){return void 0===n&&(n=!0),void 0===i&&(i=1/0),(0,r.filter)(o["tag_type"](t),e,n,i)}e.testElement=h,e.getElements=u,e.getElementById=d,e.getElementsByTagName=c,e.getElementsByTagType=p},7288:function(t,e,n){"use strict";function i(t){if(t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t.parent){var e=t.parent.children,n=e.lastIndexOf(t);n>=0&&e.splice(n,1)}t.next=null,t.prev=null,t.parent=null}function r(t,e){var n=e.prev=t.prev;n&&(n.next=e);var i=e.next=t.next;i&&(i.prev=e);var r=e.parent=t.parent;if(r){var o=r.children;o[o.lastIndexOf(t)]=e,t.parent=null}}function o(t,e){if(i(e),e.next=null,e.parent=t,t.children.push(e)>1){var n=t.children[t.children.length-2];n.next=e,e.prev=n}else e.prev=null}function s(t,e){i(e);var n=t.parent,r=t.next;if(e.next=r,e.prev=t,t.next=e,e.parent=n,r){if(r.prev=e,n){var o=n.children;o.splice(o.lastIndexOf(r),0,e)}}else n&&n.children.push(e)}function l(t,e){if(i(e),e.parent=t,e.prev=null,1!==t.children.unshift(e)){var n=t.children[1];n.prev=e,e.next=n}else e.next=null}function a(t,e){i(e);var n=t.parent;if(n){var r=n.children;r.splice(r.indexOf(t),0,e)}t.prev&&(t.prev.next=e),e.parent=n,e.prev=t.prev,e.next=t,t.prev=e}n(57658),Object.defineProperty(e,"__esModule",{value:!0}),e.prepend=e.prependChild=e.append=e.appendChild=e.replaceElement=e.removeElement=void 0,e.removeElement=i,e.replaceElement=r,e.appendChild=o,e.append=s,e.prependChild=l,e.prepend=a},61510:function(t,e,n){"use strict";n(57658),Object.defineProperty(e,"__esModule",{value:!0}),e.findAll=e.existsOne=e.findOne=e.findOneChild=e.find=e.filter=void 0;var i=n(6029);function r(t,e,n,i){return void 0===n&&(n=!0),void 0===i&&(i=1/0),o(t,Array.isArray(e)?e:[e],n,i)}function o(t,e,n,r){for(var o=[],s=[e],l=[0];;)if(l[0]>=s[0].length){if(1===l.length)return o;s.shift(),l.shift()}else{var a=s[0][l[0]++];if(t(a)&&(o.push(a),--r<=0))return o;n&&(0,i.hasChildren)(a)&&a.children.length>0&&(l.unshift(0),s.unshift(a.children))}}function s(t,e){return e.find(t)}function l(t,e,n){void 0===n&&(n=!0);for(var r=null,o=0;o<e.length&&!r;o++){var s=e[o];(0,i.isTag)(s)&&(t(s)?r=s:n&&s.children.length>0&&(r=l(t,s.children,!0)))}return r}function a(t,e){return e.some((function(e){return(0,i.isTag)(e)&&(t(e)||a(t,e.children))}))}function h(t,e){for(var n=[],r=[e],o=[0];;)if(o[0]>=r[0].length){if(1===r.length)return n;r.shift(),o.shift()}else{var s=r[0][o[0]++];(0,i.isTag)(s)&&(t(s)&&n.push(s),s.children.length>0&&(o.unshift(0),r.unshift(s.children)))}}e.filter=r,e.find=o,e.findOneChild=s,e.findOne=l,e.existsOne=a,e.findAll=h},1362:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.innerText=e.textContent=e.getText=e.getInnerHTML=e.getOuterHTML=void 0;var r=n(6029),o=i(n(24569)),s=n(73090);function l(t,e){return(0,o.default)(t,e)}function a(t,e){return(0,r.hasChildren)(t)?t.children.map((function(t){return l(t,e)})).join(""):""}function h(t){return Array.isArray(t)?t.map(h).join(""):(0,r.isTag)(t)?"br"===t.name?"\n":h(t.children):(0,r.isCDATA)(t)?h(t.children):(0,r.isText)(t)?t.data:""}function u(t){return Array.isArray(t)?t.map(u).join(""):(0,r.hasChildren)(t)&&!(0,r.isComment)(t)?u(t.children):(0,r.isText)(t)?t.data:""}function d(t){return Array.isArray(t)?t.map(d).join(""):(0,r.hasChildren)(t)&&(t.type===s.ElementType.Tag||(0,r.isCDATA)(t))?d(t.children):(0,r.isText)(t)?t.data:""}e.getOuterHTML=l,e.getInnerHTML=a,e.getText=h,e.textContent=u,e.innerText=d},70223:function(t,e,n){"use strict";n(57658),Object.defineProperty(e,"__esModule",{value:!0}),e.prevElementSibling=e.nextElementSibling=e.getName=e.hasAttrib=e.getAttributeValue=e.getSiblings=e.getParent=e.getChildren=void 0;var i=n(6029);function r(t){return(0,i.hasChildren)(t)?t.children:[]}function o(t){return t.parent||null}function s(t){var e,n,i=o(t);if(null!=i)return r(i);var s=[t],l=t.prev,a=t.next;while(null!=l)s.unshift(l),e=l,l=e.prev;while(null!=a)s.push(a),n=a,a=n.next;return s}function l(t,e){var n;return null===(n=t.attribs)||void 0===n?void 0:n[e]}function a(t,e){return null!=t.attribs&&Object.prototype.hasOwnProperty.call(t.attribs,e)&&null!=t.attribs[e]}function h(t){return t.name}function u(t){var e,n=t.next;while(null!==n&&!(0,i.isTag)(n))e=n,n=e.next;return n}function d(t){var e,n=t.prev;while(null!==n&&!(0,i.isTag)(n))e=n,n=e.prev;return n}e.getChildren=r,e.getParent=o,e.getSiblings=s,e.getAttributeValue=l,e.hasAttrib=a,e.getName=h,e.nextElementSibling=u,e.prevElementSibling=d},64210:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);r&&!("get"in r?!e.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),r=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t["default"]=e}),o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return r(e,t),e},s=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.decodeXML=e.decodeHTMLStrict=e.decodeHTMLAttribute=e.decodeHTML=e.determineBranch=e.EntityDecoder=e.DecodingMode=e.BinTrieFlags=e.fromCodePoint=e.replaceCodePoint=e.decodeCodePoint=e.xmlDecodeTree=e.htmlDecodeTree=void 0;var l=s(n(96273));e.htmlDecodeTree=l.default;var a=s(n(37396));e.xmlDecodeTree=a.default;var h=o(n(5079));e.decodeCodePoint=h.default;var u,d=n(5079);Object.defineProperty(e,"replaceCodePoint",{enumerable:!0,get:function(){return d.replaceCodePoint}}),Object.defineProperty(e,"fromCodePoint",{enumerable:!0,get:function(){return d.fromCodePoint}}),function(t){t[t["NUM"]=35]="NUM",t[t["SEMI"]=59]="SEMI",t[t["EQUALS"]=61]="EQUALS",t[t["ZERO"]=48]="ZERO",t[t["NINE"]=57]="NINE",t[t["LOWER_A"]=97]="LOWER_A",t[t["LOWER_F"]=102]="LOWER_F",t[t["LOWER_X"]=120]="LOWER_X",t[t["LOWER_Z"]=122]="LOWER_Z",t[t["UPPER_A"]=65]="UPPER_A",t[t["UPPER_F"]=70]="UPPER_F",t[t["UPPER_Z"]=90]="UPPER_Z"}(u||(u={}));var c,p,g,m=32;function x(t){return t>=u.ZERO&&t<=u.NINE}function y(t){return t>=u.UPPER_A&&t<=u.UPPER_F||t>=u.LOWER_A&&t<=u.LOWER_F}function f(t){return t>=u.UPPER_A&&t<=u.UPPER_Z||t>=u.LOWER_A&&t<=u.LOWER_Z||x(t)}function A(t){return t===u.EQUALS||f(t)}(function(t){t[t["VALUE_LENGTH"]=49152]="VALUE_LENGTH",t[t["BRANCH_LENGTH"]=16256]="BRANCH_LENGTH",t[t["JUMP_TABLE"]=127]="JUMP_TABLE"})(c=e.BinTrieFlags||(e.BinTrieFlags={})),function(t){t[t["EntityStart"]=0]="EntityStart",t[t["NumericStart"]=1]="NumericStart",t[t["NumericDecimal"]=2]="NumericDecimal",t[t["NumericHex"]=3]="NumericHex",t[t["NamedEntity"]=4]="NamedEntity"}(p||(p={})),function(t){t[t["Legacy"]=0]="Legacy",t[t["Strict"]=1]="Strict",t[t["Attribute"]=2]="Attribute"}(g=e.DecodingMode||(e.DecodingMode={}));var C=function(){function t(t,e,n){this.decodeTree=t,this.emitCodePoint=e,this.errors=n,this.state=p.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=g.Strict}return t.prototype.startEntity=function(t){this.decodeMode=t,this.state=p.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},t.prototype.write=function(t,e){switch(this.state){case p.EntityStart:return t.charCodeAt(e)===u.NUM?(this.state=p.NumericStart,this.consumed+=1,this.stateNumericStart(t,e+1)):(this.state=p.NamedEntity,this.stateNamedEntity(t,e));case p.NumericStart:return this.stateNumericStart(t,e);case p.NumericDecimal:return this.stateNumericDecimal(t,e);case p.NumericHex:return this.stateNumericHex(t,e);case p.NamedEntity:return this.stateNamedEntity(t,e)}},t.prototype.stateNumericStart=function(t,e){return e>=t.length?-1:(t.charCodeAt(e)|m)===u.LOWER_X?(this.state=p.NumericHex,this.consumed+=1,this.stateNumericHex(t,e+1)):(this.state=p.NumericDecimal,this.stateNumericDecimal(t,e))},t.prototype.addToNumericResult=function(t,e,n,i){if(e!==n){var r=n-e;this.result=this.result*Math.pow(i,r)+parseInt(t.substr(e,r),i),this.consumed+=r}},t.prototype.stateNumericHex=function(t,e){var n=e;while(e<t.length){var i=t.charCodeAt(e);if(!x(i)&&!y(i))return this.addToNumericResult(t,n,e,16),this.emitNumericEntity(i,3);e+=1}return this.addToNumericResult(t,n,e,16),-1},t.prototype.stateNumericDecimal=function(t,e){var n=e;while(e<t.length){var i=t.charCodeAt(e);if(!x(i))return this.addToNumericResult(t,n,e,10),this.emitNumericEntity(i,2);e+=1}return this.addToNumericResult(t,n,e,10),-1},t.prototype.emitNumericEntity=function(t,e){var n;if(this.consumed<=e)return null===(n=this.errors)||void 0===n||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===u.SEMI)this.consumed+=1;else if(this.decodeMode===g.Strict)return 0;return this.emitCodePoint((0,h.replaceCodePoint)(this.result),this.consumed),this.errors&&(t!==u.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed},t.prototype.stateNamedEntity=function(t,e){for(var n=this.decodeTree,i=n[this.treeIndex],r=(i&c.VALUE_LENGTH)>>14;e<t.length;e++,this.excess++){var o=t.charCodeAt(e);if(this.treeIndex=E(n,i,this.treeIndex+Math.max(1,r),o),this.treeIndex<0)return 0===this.result||this.decodeMode===g.Attribute&&(0===r||A(o))?0:this.emitNotTerminatedNamedEntity();if(i=n[this.treeIndex],r=(i&c.VALUE_LENGTH)>>14,0!==r){if(o===u.SEMI)return this.emitNamedEntityData(this.treeIndex,r,this.consumed+this.excess);this.decodeMode!==g.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},t.prototype.emitNotTerminatedNamedEntity=function(){var t,e=this,n=e.result,i=e.decodeTree,r=(i[n]&c.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,r,this.consumed),null===(t=this.errors)||void 0===t||t.missingSemicolonAfterCharacterReference(),this.consumed},t.prototype.emitNamedEntityData=function(t,e,n){var i=this.decodeTree;return this.emitCodePoint(1===e?i[t]&~c.VALUE_LENGTH:i[t+1],n),3===e&&this.emitCodePoint(i[t+2],n),n},t.prototype.end=function(){var t;switch(this.state){case p.NamedEntity:return 0===this.result||this.decodeMode===g.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case p.NumericDecimal:return this.emitNumericEntity(0,2);case p.NumericHex:return this.emitNumericEntity(0,3);case p.NumericStart:return null===(t=this.errors)||void 0===t||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case p.EntityStart:return 0}},t}();function v(t){var e="",n=new C(t,(function(t){return e+=(0,h.fromCodePoint)(t)}));return function(t,i){var r=0,o=0;while((o=t.indexOf("&",o))>=0){e+=t.slice(r,o),n.startEntity(i);var s=n.write(t,o+1);if(s<0){r=o+n.end();break}r=o+s,o=0===s?r+1:r}var l=e+t.slice(r);return e="",l}}function E(t,e,n,i){var r=(e&c.BRANCH_LENGTH)>>7,o=e&c.JUMP_TABLE;if(0===r)return 0!==o&&i===o?n:-1;if(o){var s=i-o;return s<0||s>=r?-1:t[n+s]-1}var l=n,a=l+r-1;while(l<=a){var h=l+a>>>1,u=t[h];if(u<i)l=h+1;else{if(!(u>i))return t[h+r];a=h-1}}return-1}e.EntityDecoder=C,e.determineBranch=E;var w=v(l.default),S=v(a.default);function b(t,e){return void 0===e&&(e=g.Legacy),w(t,e)}function T(t){return w(t,g.Attribute)}function L(t){return w(t,g.Strict)}function I(t){return S(t,g.Strict)}e.decodeHTML=b,e.decodeHTMLAttribute=T,e.decodeHTMLStrict=L,e.decodeXML=I},5079:function(t,e){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.replaceCodePoint=e.fromCodePoint=void 0;var i=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function r(t){var e;return t>=55296&&t<=57343||t>1114111?65533:null!==(e=i.get(t))&&void 0!==e?e:t}function o(t){return(0,e.fromCodePoint)(r(t))}e.fromCodePoint=null!==(n=String.fromCodePoint)&&void 0!==n?n:function(t){var e="";return t>65535&&(t-=65536,e+=String.fromCharCode(t>>>10&1023|55296),t=56320|1023&t),e+=String.fromCharCode(t),e},e.replaceCodePoint=r,e["default"]=o},6252:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.encodeNonAsciiHTML=e.encodeHTML=void 0;var r=i(n(96409)),o=n(64309),s=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function l(t){return h(s,t)}function a(t){return h(o.xmlReplacer,t)}function h(t,e){var n,i="",s=0;while(null!==(n=t.exec(e))){var l=n.index;i+=e.substring(s,l);var a=e.charCodeAt(l),h=r.default.get(a);if("object"===typeof h){if(l+1<e.length){var u=e.charCodeAt(l+1),d="number"===typeof h.n?h.n===u?h.o:void 0:h.n.get(u);if(void 0!==d){i+=d,s=t.lastIndex+=1;continue}}h=h.v}if(void 0!==h)i+=h,s=l+1;else{var c=(0,o.getCodePoint)(e,l);i+="&#x".concat(c.toString(16),";"),s=t.lastIndex+=Number(c!==a)}}return i+e.substr(s)}e.encodeHTML=l,e.encodeNonAsciiHTML=a},64309:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.escapeText=e.escapeAttribute=e.escapeUTF8=e.escape=e.encodeXML=e.getCodePoint=e.xmlReplacer=void 0,e.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var n=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);function i(t){var i,r="",o=0;while(null!==(i=e.xmlReplacer.exec(t))){var s=i.index,l=t.charCodeAt(s),a=n.get(l);void 0!==a?(r+=t.substring(o,s)+a,o=s+1):(r+="".concat(t.substring(o,s),"&#x").concat((0,e.getCodePoint)(t,s).toString(16),";"),o=e.xmlReplacer.lastIndex+=Number(55296===(64512&l)))}return r+t.substr(o)}function r(t,e){return function(n){var i,r=0,o="";while(i=t.exec(n))r!==i.index&&(o+=n.substring(r,i.index)),o+=e.get(i[0].charCodeAt(0)),r=i.index+1;return o+n.substring(r)}}e.getCodePoint=null!=String.prototype.codePointAt?function(t,e){return t.codePointAt(e)}:function(t,e){return 55296===(64512&t.charCodeAt(e))?1024*(t.charCodeAt(e)-55296)+t.charCodeAt(e+1)-56320+65536:t.charCodeAt(e)},e.encodeXML=i,e.escape=i,e.escapeUTF8=r(/[&<>'"]/g,n),e.escapeAttribute=r(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),e.escapeText=r(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))},96273:function(t,e,n){"use strict";n(1439),n(87585),n(55315),Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏઑඡ༉༦ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲϏϢϸontourIntegraìȹoɴ\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲy;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱còJTabcdfgorstרׯؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ߂ߐĀiyޱrc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣসে্ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४ĀnrࢃgleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpwਖਛgȀLRlr৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼અઋp;椅y;䐜Ādl੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑඞcy;䐊cute;䅃ƀaeyહાron;䅇dil;䅅;䐝ƀgswે૰ativeƀMTV૨ediumSpace;怋hiĀcn૦ëeryThiîtedĀGLଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷreak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪௫ఄ಄ದൡඅ櫬Āoungruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater;EFGLSTஶஷ扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨setĀ;Eೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂෛ෧ขภยา฿ไlig;䅒cute耻Ó䃓Āiyීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲcr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬืde耻Õ䃕es;樷ml耻Ö䃖erĀBP๋Āar๐๓r;怾acĀek๚;揞et;掴arenthesis;揜ҀacfhilorsງຊຏຒດຝະrtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ檻cedesȀ;EST່້扺qual;檯lantEqual;扼ilde;找me;怳Ādpuct;戏ortionĀ;aȥl;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL憒ar;懥eftArrow;懄eiling;按oǵ\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄቕቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHcቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗ĀeiቻDzኀ\0ኇefore;戴a;䎘ĀcnኘkSpace;쀀 Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtèa;䎖r;愨pf;愤cr;쀀𝒵ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒;Eaeiopᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;eᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;eᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰᝃᝈ០៦ᠹᡐᜍ᥈ᥰot;櫭ĀcrᛶkȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;tbrk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯᝳ;䎲;愶een;扬r;쀀𝔟gcostuvwឍឝឳេ៕៛ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀakoᠦᠵĀcn៲ᠣkƀlst֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ;敛;敘;攘;攔;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģbar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;elƀ;bhᥨᥩᥫ䁜;槅sub;柈ŬᥴlĀ;e怢t»pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭒\0᯽\0ᰌƀcprᦲute;䄇̀;abcdsᦿᧀᧄ᧕᧙戩nd;橄rcup;橉Āau᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r;Ecefms᩠ᩢᩫ᪤᪪旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ\0\0aĀ;t䀬;䁀ƀ;fl戁îᅠeĀmxent»eóɍǧ\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯delprvw᭠᭬᭷ᮂᮬᯔarrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;pᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰻᰿ᱝᱩᱵᲞᲬᲷᴍᵻᶑᶫᶻ᷆᷍ròar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂᳖᳜᳠mƀ;oș᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄĀDoḆᴴoôĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»ṺƀaeiἒἚls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧\0耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₥₰₴⃰℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽ƀ;qsؾٌlanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqrⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0proør;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼ròòΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonóquigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roøurĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨íistĀ;sடr;쀀𝔫ȀEest⩦⩹⩼ƀ;qs⩭ƀ;qs⩴lanôií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast⭕⭚⭟lleìl;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖchimpqu⮽⯍⯙⬄⯤⯯Ȁ;cerല⯆ഷ⯉uå;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭ååഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñĀ;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;cⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācrir;榿;쀀𝔬ͯ\0\0\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕⶥⶨrò᪀Āirⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔǒr;榷rp;榹;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ\0\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ脀¶;l䂶leìЃɩ\0\0m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳ᤈ⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t⾴ïrel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⋢⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔ABHabcdefhilmnoprstuxけさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstwガクシスゼゾダッデナp;極Ā;fゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ìâヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘rrowĀ;tㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowóarpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓ròaòՑ;怏oustĀ;a㈞掱che»mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì耻䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;qኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫwar;椪lig耻ß䃟㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rëƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproøim»ኬsðኞĀas㚺㚮ðrn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈadempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xôheadĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roðtré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜtré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((function(t){return t.charCodeAt(0)})))},37396:function(t,e,n){"use strict";n(1439),n(87585),n(55315),Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((function(t){return t.charCodeAt(0)})))},96409:function(t,e){"use strict";function n(t){for(var e=1;e<t.length;e++)t[e][0]+=t[e-1][0]+1;return t}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=new Map(n([[9,"	"],[0,"
"],[22,"!"],[0,"""],[0,"#"],[0,"$"],[0,"%"],[0,"&"],[0,"'"],[0,"("],[0,")"],[0,"*"],[0,"+"],[0,","],[1,"."],[0,"/"],[10,":"],[0,";"],[0,{v:"<",n:8402,o:"<⃒"}],[0,{v:"=",n:8421,o:"=⃥"}],[0,{v:">",n:8402,o:">⃒"}],[0,"?"],[0,"@"],[26,"["],[0,"\"],[0,"]"],[0,"^"],[0,"_"],[0,"`"],[5,{n:106,o:"fj"}],[20,"{"],[0,"|"],[0,"}"],[34," "],[0,"¡"],[0,"¢"],[0,"£"],[0,"¤"],[0,"¥"],[0,"¦"],[0,"§"],[0,"¨"],[0,"©"],[0,"ª"],[0,"«"],[0,"¬"],[0,"­"],[0,"®"],[0,"¯"],[0,"°"],[0,"±"],[0,"²"],[0,"³"],[0,"´"],[0,"µ"],[0,"¶"],[0,"·"],[0,"¸"],[0,"¹"],[0,"º"],[0,"»"],[0,"¼"],[0,"½"],[0,"¾"],[0,"¿"],[0,"À"],[0,"Á"],[0,"Â"],[0,"Ã"],[0,"Ä"],[0,"Å"],[0,"Æ"],[0,"Ç"],[0,"È"],[0,"É"],[0,"Ê"],[0,"Ë"],[0,"Ì"],[0,"Í"],[0,"Î"],[0,"Ï"],[0,"Ð"],[0,"Ñ"],[0,"Ò"],[0,"Ó"],[0,"Ô"],[0,"Õ"],[0,"Ö"],[0,"×"],[0,"Ø"],[0,"Ù"],[0,"Ú"],[0,"Û"],[0,"Ü"],[0,"Ý"],[0,"Þ"],[0,"ß"],[0,"à"],[0,"á"],[0,"â"],[0,"ã"],[0,"ä"],[0,"å"],[0,"æ"],[0,"ç"],[0,"è"],[0,"é"],[0,"ê"],[0,"ë"],[0,"ì"],[0,"í"],[0,"î"],[0,"ï"],[0,"ð"],[0,"ñ"],[0,"ò"],[0,"ó"],[0,"ô"],[0,"õ"],[0,"ö"],[0,"÷"],[0,"ø"],[0,"ù"],[0,"ú"],[0,"û"],[0,"ü"],[0,"ý"],[0,"þ"],[0,"ÿ"],[0,"Ā"],[0,"ā"],[0,"Ă"],[0,"ă"],[0,"Ą"],[0,"ą"],[0,"Ć"],[0,"ć"],[0,"Ĉ"],[0,"ĉ"],[0,"Ċ"],[0,"ċ"],[0,"Č"],[0,"č"],[0,"Ď"],[0,"ď"],[0,"Đ"],[0,"đ"],[0,"Ē"],[0,"ē"],[2,"Ė"],[0,"ė"],[0,"Ę"],[0,"ę"],[0,"Ě"],[0,"ě"],[0,"Ĝ"],[0,"ĝ"],[0,"Ğ"],[0,"ğ"],[0,"Ġ"],[0,"ġ"],[0,"Ģ"],[1,"Ĥ"],[0,"ĥ"],[0,"Ħ"],[0,"ħ"],[0,"Ĩ"],[0,"ĩ"],[0,"Ī"],[0,"ī"],[2,"Į"],[0,"į"],[0,"İ"],[0,"ı"],[0,"IJ"],[0,"ij"],[0,"Ĵ"],[0,"ĵ"],[0,"Ķ"],[0,"ķ"],[0,"ĸ"],[0,"Ĺ"],[0,"ĺ"],[0,"Ļ"],[0,"ļ"],[0,"Ľ"],[0,"ľ"],[0,"Ŀ"],[0,"ŀ"],[0,"Ł"],[0,"ł"],[0,"Ń"],[0,"ń"],[0,"Ņ"],[0,"ņ"],[0,"Ň"],[0,"ň"],[0,"ʼn"],[0,"Ŋ"],[0,"ŋ"],[0,"Ō"],[0,"ō"],[2,"Ő"],[0,"ő"],[0,"Œ"],[0,"œ"],[0,"Ŕ"],[0,"ŕ"],[0,"Ŗ"],[0,"ŗ"],[0,"Ř"],[0,"ř"],[0,"Ś"],[0,"ś"],[0,"Ŝ"],[0,"ŝ"],[0,"Ş"],[0,"ş"],[0,"Š"],[0,"š"],[0,"Ţ"],[0,"ţ"],[0,"Ť"],[0,"ť"],[0,"Ŧ"],[0,"ŧ"],[0,"Ũ"],[0,"ũ"],[0,"Ū"],[0,"ū"],[0,"Ŭ"],[0,"ŭ"],[0,"Ů"],[0,"ů"],[0,"Ű"],[0,"ű"],[0,"Ų"],[0,"ų"],[0,"Ŵ"],[0,"ŵ"],[0,"Ŷ"],[0,"ŷ"],[0,"Ÿ"],[0,"Ź"],[0,"ź"],[0,"Ż"],[0,"ż"],[0,"Ž"],[0,"ž"],[19,"ƒ"],[34,"Ƶ"],[63,"ǵ"],[65,"ȷ"],[142,"ˆ"],[0,"ˇ"],[16,"˘"],[0,"˙"],[0,"˚"],[0,"˛"],[0,"˜"],[0,"˝"],[51,"̑"],[127,"Α"],[0,"Β"],[0,"Γ"],[0,"Δ"],[0,"Ε"],[0,"Ζ"],[0,"Η"],[0,"Θ"],[0,"Ι"],[0,"Κ"],[0,"Λ"],[0,"Μ"],[0,"Ν"],[0,"Ξ"],[0,"Ο"],[0,"Π"],[0,"Ρ"],[1,"Σ"],[0,"Τ"],[0,"Υ"],[0,"Φ"],[0,"Χ"],[0,"Ψ"],[0,"Ω"],[7,"α"],[0,"β"],[0,"γ"],[0,"δ"],[0,"ε"],[0,"ζ"],[0,"η"],[0,"θ"],[0,"ι"],[0,"κ"],[0,"λ"],[0,"μ"],[0,"ν"],[0,"ξ"],[0,"ο"],[0,"π"],[0,"ρ"],[0,"ς"],[0,"σ"],[0,"τ"],[0,"υ"],[0,"φ"],[0,"χ"],[0,"ψ"],[0,"ω"],[7,"ϑ"],[0,"ϒ"],[2,"ϕ"],[0,"ϖ"],[5,"Ϝ"],[0,"ϝ"],[18,"ϰ"],[0,"ϱ"],[3,"ϵ"],[0,"϶"],[10,"Ё"],[0,"Ђ"],[0,"Ѓ"],[0,"Є"],[0,"Ѕ"],[0,"І"],[0,"Ї"],[0,"Ј"],[0,"Љ"],[0,"Њ"],[0,"Ћ"],[0,"Ќ"],[1,"Ў"],[0,"Џ"],[0,"А"],[0,"Б"],[0,"В"],[0,"Г"],[0,"Д"],[0,"Е"],[0,"Ж"],[0,"З"],[0,"И"],[0,"Й"],[0,"К"],[0,"Л"],[0,"М"],[0,"Н"],[0,"О"],[0,"П"],[0,"Р"],[0,"С"],[0,"Т"],[0,"У"],[0,"Ф"],[0,"Х"],[0,"Ц"],[0,"Ч"],[0,"Ш"],[0,"Щ"],[0,"Ъ"],[0,"Ы"],[0,"Ь"],[0,"Э"],[0,"Ю"],[0,"Я"],[0,"а"],[0,"б"],[0,"в"],[0,"г"],[0,"д"],[0,"е"],[0,"ж"],[0,"з"],[0,"и"],[0,"й"],[0,"к"],[0,"л"],[0,"м"],[0,"н"],[0,"о"],[0,"п"],[0,"р"],[0,"с"],[0,"т"],[0,"у"],[0,"ф"],[0,"х"],[0,"ц"],[0,"ч"],[0,"ш"],[0,"щ"],[0,"ъ"],[0,"ы"],[0,"ь"],[0,"э"],[0,"ю"],[0,"я"],[1,"ё"],[0,"ђ"],[0,"ѓ"],[0,"є"],[0,"ѕ"],[0,"і"],[0,"ї"],[0,"ј"],[0,"љ"],[0,"њ"],[0,"ћ"],[0,"ќ"],[1,"ў"],[0,"џ"],[7074," "],[0," "],[0," "],[0," "],[1," "],[0," "],[0," "],[0," "],[0,"​"],[0,"‌"],[0,"‍"],[0,"‎"],[0,"‏"],[0,"‐"],[2,"–"],[0,"—"],[0,"―"],[0,"‖"],[1,"‘"],[0,"’"],[0,"‚"],[1,"“"],[0,"”"],[0,"„"],[1,"†"],[0,"‡"],[0,"•"],[2,"‥"],[0,"…"],[9,"‰"],[0,"‱"],[0,"′"],[0,"″"],[0,"‴"],[0,"‵"],[3,"‹"],[0,"›"],[3,"‾"],[2,"⁁"],[1,"⁃"],[0,"⁄"],[10,"⁏"],[7,"⁗"],[7,{v:" ",n:8202,o:"  "}],[0,"⁠"],[0,"⁡"],[0,"⁢"],[0,"⁣"],[72,"€"],[46,"⃛"],[0,"⃜"],[37,"ℂ"],[2,"℅"],[4,"ℊ"],[0,"ℋ"],[0,"ℌ"],[0,"ℍ"],[0,"ℎ"],[0,"ℏ"],[0,"ℐ"],[0,"ℑ"],[0,"ℒ"],[0,"ℓ"],[1,"ℕ"],[0,"№"],[0,"℗"],[0,"℘"],[0,"ℙ"],[0,"ℚ"],[0,"ℛ"],[0,"ℜ"],[0,"ℝ"],[0,"℞"],[3,"™"],[1,"ℤ"],[2,"℧"],[0,"ℨ"],[0,"℩"],[2,"ℬ"],[0,"ℭ"],[1,"ℯ"],[0,"ℰ"],[0,"ℱ"],[1,"ℳ"],[0,"ℴ"],[0,"ℵ"],[0,"ℶ"],[0,"ℷ"],[0,"ℸ"],[12,"ⅅ"],[0,"ⅆ"],[0,"ⅇ"],[0,"ⅈ"],[10,"⅓"],[0,"⅔"],[0,"⅕"],[0,"⅖"],[0,"⅗"],[0,"⅘"],[0,"⅙"],[0,"⅚"],[0,"⅛"],[0,"⅜"],[0,"⅝"],[0,"⅞"],[49,"←"],[0,"↑"],[0,"→"],[0,"↓"],[0,"↔"],[0,"↕"],[0,"↖"],[0,"↗"],[0,"↘"],[0,"↙"],[0,"↚"],[0,"↛"],[1,{v:"↝",n:824,o:"↝̸"}],[0,"↞"],[0,"↟"],[0,"↠"],[0,"↡"],[0,"↢"],[0,"↣"],[0,"↤"],[0,"↥"],[0,"↦"],[0,"↧"],[1,"↩"],[0,"↪"],[0,"↫"],[0,"↬"],[0,"↭"],[0,"↮"],[1,"↰"],[0,"↱"],[0,"↲"],[0,"↳"],[1,"↵"],[0,"↶"],[0,"↷"],[2,"↺"],[0,"↻"],[0,"↼"],[0,"↽"],[0,"↾"],[0,"↿"],[0,"⇀"],[0,"⇁"],[0,"⇂"],[0,"⇃"],[0,"⇄"],[0,"⇅"],[0,"⇆"],[0,"⇇"],[0,"⇈"],[0,"⇉"],[0,"⇊"],[0,"⇋"],[0,"⇌"],[0,"⇍"],[0,"⇎"],[0,"⇏"],[0,"⇐"],[0,"⇑"],[0,"⇒"],[0,"⇓"],[0,"⇔"],[0,"⇕"],[0,"⇖"],[0,"⇗"],[0,"⇘"],[0,"⇙"],[0,"⇚"],[0,"⇛"],[1,"⇝"],[6,"⇤"],[0,"⇥"],[15,"⇵"],[7,"⇽"],[0,"⇾"],[0,"⇿"],[0,"∀"],[0,"∁"],[0,{v:"∂",n:824,o:"∂̸"}],[0,"∃"],[0,"∄"],[0,"∅"],[1,"∇"],[0,"∈"],[0,"∉"],[1,"∋"],[0,"∌"],[2,"∏"],[0,"∐"],[0,"∑"],[0,"−"],[0,"∓"],[0,"∔"],[1,"∖"],[0,"∗"],[0,"∘"],[1,"√"],[2,"∝"],[0,"∞"],[0,"∟"],[0,{v:"∠",n:8402,o:"∠⃒"}],[0,"∡"],[0,"∢"],[0,"∣"],[0,"∤"],[0,"∥"],[0,"∦"],[0,"∧"],[0,"∨"],[0,{v:"∩",n:65024,o:"∩︀"}],[0,{v:"∪",n:65024,o:"∪︀"}],[0,"∫"],[0,"∬"],[0,"∭"],[0,"∮"],[0,"∯"],[0,"∰"],[0,"∱"],[0,"∲"],[0,"∳"],[0,"∴"],[0,"∵"],[0,"∶"],[0,"∷"],[0,"∸"],[1,"∺"],[0,"∻"],[0,{v:"∼",n:8402,o:"∼⃒"}],[0,{v:"∽",n:817,o:"∽̱"}],[0,{v:"∾",n:819,o:"∾̳"}],[0,"∿"],[0,"≀"],[0,"≁"],[0,{v:"≂",n:824,o:"≂̸"}],[0,"≃"],[0,"≄"],[0,"≅"],[0,"≆"],[0,"≇"],[0,"≈"],[0,"≉"],[0,"≊"],[0,{v:"≋",n:824,o:"≋̸"}],[0,"≌"],[0,{v:"≍",n:8402,o:"≍⃒"}],[0,{v:"≎",n:824,o:"≎̸"}],[0,{v:"≏",n:824,o:"≏̸"}],[0,{v:"≐",n:824,o:"≐̸"}],[0,"≑"],[0,"≒"],[0,"≓"],[0,"≔"],[0,"≕"],[0,"≖"],[0,"≗"],[1,"≙"],[0,"≚"],[1,"≜"],[2,"≟"],[0,"≠"],[0,{v:"≡",n:8421,o:"≡⃥"}],[0,"≢"],[1,{v:"≤",n:8402,o:"≤⃒"}],[0,{v:"≥",n:8402,o:"≥⃒"}],[0,{v:"≦",n:824,o:"≦̸"}],[0,{v:"≧",n:824,o:"≧̸"}],[0,{v:"≨",n:65024,o:"≨︀"}],[0,{v:"≩",n:65024,o:"≩︀"}],[0,{v:"≪",n:new Map(n([[824,"≪̸"],[7577,"≪⃒"]]))}],[0,{v:"≫",n:new Map(n([[824,"≫̸"],[7577,"≫⃒"]]))}],[0,"≬"],[0,"≭"],[0,"≮"],[0,"≯"],[0,"≰"],[0,"≱"],[0,"≲"],[0,"≳"],[0,"≴"],[0,"≵"],[0,"≶"],[0,"≷"],[0,"≸"],[0,"≹"],[0,"≺"],[0,"≻"],[0,"≼"],[0,"≽"],[0,"≾"],[0,{v:"≿",n:824,o:"≿̸"}],[0,"⊀"],[0,"⊁"],[0,{v:"⊂",n:8402,o:"⊂⃒"}],[0,{v:"⊃",n:8402,o:"⊃⃒"}],[0,"⊄"],[0,"⊅"],[0,"⊆"],[0,"⊇"],[0,"⊈"],[0,"⊉"],[0,{v:"⊊",n:65024,o:"⊊︀"}],[0,{v:"⊋",n:65024,o:"⊋︀"}],[1,"⊍"],[0,"⊎"],[0,{v:"⊏",n:824,o:"⊏̸"}],[0,{v:"⊐",n:824,o:"⊐̸"}],[0,"⊑"],[0,"⊒"],[0,{v:"⊓",n:65024,o:"⊓︀"}],[0,{v:"⊔",n:65024,o:"⊔︀"}],[0,"⊕"],[0,"⊖"],[0,"⊗"],[0,"⊘"],[0,"⊙"],[0,"⊚"],[0,"⊛"],[1,"⊝"],[0,"⊞"],[0,"⊟"],[0,"⊠"],[0,"⊡"],[0,"⊢"],[0,"⊣"],[0,"⊤"],[0,"⊥"],[1,"⊧"],[0,"⊨"],[0,"⊩"],[0,"⊪"],[0,"⊫"],[0,"⊬"],[0,"⊭"],[0,"⊮"],[0,"⊯"],[0,"⊰"],[1,"⊲"],[0,"⊳"],[0,{v:"⊴",n:8402,o:"⊴⃒"}],[0,{v:"⊵",n:8402,o:"⊵⃒"}],[0,"⊶"],[0,"⊷"],[0,"⊸"],[0,"⊹"],[0,"⊺"],[0,"⊻"],[1,"⊽"],[0,"⊾"],[0,"⊿"],[0,"⋀"],[0,"⋁"],[0,"⋂"],[0,"⋃"],[0,"⋄"],[0,"⋅"],[0,"⋆"],[0,"⋇"],[0,"⋈"],[0,"⋉"],[0,"⋊"],[0,"⋋"],[0,"⋌"],[0,"⋍"],[0,"⋎"],[0,"⋏"],[0,"⋐"],[0,"⋑"],[0,"⋒"],[0,"⋓"],[0,"⋔"],[0,"⋕"],[0,"⋖"],[0,"⋗"],[0,{v:"⋘",n:824,o:"⋘̸"}],[0,{v:"⋙",n:824,o:"⋙̸"}],[0,{v:"⋚",n:65024,o:"⋚︀"}],[0,{v:"⋛",n:65024,o:"⋛︀"}],[2,"⋞"],[0,"⋟"],[0,"⋠"],[0,"⋡"],[0,"⋢"],[0,"⋣"],[2,"⋦"],[0,"⋧"],[0,"⋨"],[0,"⋩"],[0,"⋪"],[0,"⋫"],[0,"⋬"],[0,"⋭"],[0,"⋮"],[0,"⋯"],[0,"⋰"],[0,"⋱"],[0,"⋲"],[0,"⋳"],[0,"⋴"],[0,{v:"⋵",n:824,o:"⋵̸"}],[0,"⋶"],[0,"⋷"],[1,{v:"⋹",n:824,o:"⋹̸"}],[0,"⋺"],[0,"⋻"],[0,"⋼"],[0,"⋽"],[0,"⋾"],[6,"⌅"],[0,"⌆"],[1,"⌈"],[0,"⌉"],[0,"⌊"],[0,"⌋"],[0,"⌌"],[0,"⌍"],[0,"⌎"],[0,"⌏"],[0,"⌐"],[1,"⌒"],[0,"⌓"],[1,"⌕"],[0,"⌖"],[5,"⌜"],[0,"⌝"],[0,"⌞"],[0,"⌟"],[2,"⌢"],[0,"⌣"],[9,"⌭"],[0,"⌮"],[7,"⌶"],[6,"⌽"],[1,"⌿"],[60,"⍼"],[51,"⎰"],[0,"⎱"],[2,"⎴"],[0,"⎵"],[0,"⎶"],[37,"⏜"],[0,"⏝"],[0,"⏞"],[0,"⏟"],[2,"⏢"],[4,"⏧"],[59,"␣"],[164,"Ⓢ"],[55,"─"],[1,"│"],[9,"┌"],[3,"┐"],[3,"└"],[3,"┘"],[3,"├"],[7,"┤"],[7,"┬"],[7,"┴"],[7,"┼"],[19,"═"],[0,"║"],[0,"╒"],[0,"╓"],[0,"╔"],[0,"╕"],[0,"╖"],[0,"╗"],[0,"╘"],[0,"╙"],[0,"╚"],[0,"╛"],[0,"╜"],[0,"╝"],[0,"╞"],[0,"╟"],[0,"╠"],[0,"╡"],[0,"╢"],[0,"╣"],[0,"╤"],[0,"╥"],[0,"╦"],[0,"╧"],[0,"╨"],[0,"╩"],[0,"╪"],[0,"╫"],[0,"╬"],[19,"▀"],[3,"▄"],[3,"█"],[8,"░"],[0,"▒"],[0,"▓"],[13,"□"],[8,"▪"],[0,"▫"],[1,"▭"],[0,"▮"],[2,"▱"],[1,"△"],[0,"▴"],[0,"▵"],[2,"▸"],[0,"▹"],[3,"▽"],[0,"▾"],[0,"▿"],[2,"◂"],[0,"◃"],[6,"◊"],[0,"○"],[32,"◬"],[2,"◯"],[8,"◸"],[0,"◹"],[0,"◺"],[0,"◻"],[0,"◼"],[8,"★"],[0,"☆"],[7,"☎"],[49,"♀"],[1,"♂"],[29,"♠"],[2,"♣"],[1,"♥"],[0,"♦"],[3,"♪"],[2,"♭"],[0,"♮"],[0,"♯"],[163,"✓"],[3,"✗"],[8,"✠"],[21,"✶"],[33,"❘"],[25,"❲"],[0,"❳"],[84,"⟈"],[0,"⟉"],[28,"⟦"],[0,"⟧"],[0,"⟨"],[0,"⟩"],[0,"⟪"],[0,"⟫"],[0,"⟬"],[0,"⟭"],[7,"⟵"],[0,"⟶"],[0,"⟷"],[0,"⟸"],[0,"⟹"],[0,"⟺"],[1,"⟼"],[2,"⟿"],[258,"⤂"],[0,"⤃"],[0,"⤄"],[0,"⤅"],[6,"⤌"],[0,"⤍"],[0,"⤎"],[0,"⤏"],[0,"⤐"],[0,"⤑"],[0,"⤒"],[0,"⤓"],[2,"⤖"],[2,"⤙"],[0,"⤚"],[0,"⤛"],[0,"⤜"],[0,"⤝"],[0,"⤞"],[0,"⤟"],[0,"⤠"],[2,"⤣"],[0,"⤤"],[0,"⤥"],[0,"⤦"],[0,"⤧"],[0,"⤨"],[0,"⤩"],[0,"⤪"],[8,{v:"⤳",n:824,o:"⤳̸"}],[1,"⤵"],[0,"⤶"],[0,"⤷"],[0,"⤸"],[0,"⤹"],[2,"⤼"],[0,"⤽"],[7,"⥅"],[2,"⥈"],[0,"⥉"],[0,"⥊"],[0,"⥋"],[2,"⥎"],[0,"⥏"],[0,"⥐"],[0,"⥑"],[0,"⥒"],[0,"⥓"],[0,"⥔"],[0,"⥕"],[0,"⥖"],[0,"⥗"],[0,"⥘"],[0,"⥙"],[0,"⥚"],[0,"⥛"],[0,"⥜"],[0,"⥝"],[0,"⥞"],[0,"⥟"],[0,"⥠"],[0,"⥡"],[0,"⥢"],[0,"⥣"],[0,"⥤"],[0,"⥥"],[0,"⥦"],[0,"⥧"],[0,"⥨"],[0,"⥩"],[0,"⥪"],[0,"⥫"],[0,"⥬"],[0,"⥭"],[0,"⥮"],[0,"⥯"],[0,"⥰"],[0,"⥱"],[0,"⥲"],[0,"⥳"],[0,"⥴"],[0,"⥵"],[0,"⥶"],[1,"⥸"],[0,"⥹"],[1,"⥻"],[0,"⥼"],[0,"⥽"],[0,"⥾"],[0,"⥿"],[5,"⦅"],[0,"⦆"],[4,"⦋"],[0,"⦌"],[0,"⦍"],[0,"⦎"],[0,"⦏"],[0,"⦐"],[0,"⦑"],[0,"⦒"],[0,"⦓"],[0,"⦔"],[0,"⦕"],[0,"⦖"],[3,"⦚"],[1,"⦜"],[0,"⦝"],[6,"⦤"],[0,"⦥"],[0,"⦦"],[0,"⦧"],[0,"⦨"],[0,"⦩"],[0,"⦪"],[0,"⦫"],[0,"⦬"],[0,"⦭"],[0,"⦮"],[0,"⦯"],[0,"⦰"],[0,"⦱"],[0,"⦲"],[0,"⦳"],[0,"⦴"],[0,"⦵"],[0,"⦶"],[0,"⦷"],[1,"⦹"],[1,"⦻"],[0,"⦼"],[1,"⦾"],[0,"⦿"],[0,"⧀"],[0,"⧁"],[0,"⧂"],[0,"⧃"],[0,"⧄"],[0,"⧅"],[3,"⧉"],[3,"⧍"],[0,"⧎"],[0,{v:"⧏",n:824,o:"⧏̸"}],[0,{v:"⧐",n:824,o:"⧐̸"}],[11,"⧜"],[0,"⧝"],[0,"⧞"],[4,"⧣"],[0,"⧤"],[0,"⧥"],[5,"⧫"],[8,"⧴"],[1,"⧶"],[9,"⨀"],[0,"⨁"],[0,"⨂"],[1,"⨄"],[1,"⨆"],[5,"⨌"],[0,"⨍"],[2,"⨐"],[0,"⨑"],[0,"⨒"],[0,"⨓"],[0,"⨔"],[0,"⨕"],[0,"⨖"],[0,"⨗"],[10,"⨢"],[0,"⨣"],[0,"⨤"],[0,"⨥"],[0,"⨦"],[0,"⨧"],[1,"⨩"],[0,"⨪"],[2,"⨭"],[0,"⨮"],[0,"⨯"],[0,"⨰"],[0,"⨱"],[1,"⨳"],[0,"⨴"],[0,"⨵"],[0,"⨶"],[0,"⨷"],[0,"⨸"],[0,"⨹"],[0,"⨺"],[0,"⨻"],[0,"⨼"],[2,"⨿"],[0,"⩀"],[1,"⩂"],[0,"⩃"],[0,"⩄"],[0,"⩅"],[0,"⩆"],[0,"⩇"],[0,"⩈"],[0,"⩉"],[0,"⩊"],[0,"⩋"],[0,"⩌"],[0,"⩍"],[2,"⩐"],[2,"⩓"],[0,"⩔"],[0,"⩕"],[0,"⩖"],[0,"⩗"],[0,"⩘"],[1,"⩚"],[0,"⩛"],[0,"⩜"],[0,"⩝"],[1,"⩟"],[6,"⩦"],[3,"⩪"],[2,{v:"⩭",n:824,o:"⩭̸"}],[0,"⩮"],[0,"⩯"],[0,{v:"⩰",n:824,o:"⩰̸"}],[0,"⩱"],[0,"⩲"],[0,"⩳"],[0,"⩴"],[0,"⩵"],[1,"⩷"],[0,"⩸"],[0,"⩹"],[0,"⩺"],[0,"⩻"],[0,"⩼"],[0,{v:"⩽",n:824,o:"⩽̸"}],[0,{v:"⩾",n:824,o:"⩾̸"}],[0,"⩿"],[0,"⪀"],[0,"⪁"],[0,"⪂"],[0,"⪃"],[0,"⪄"],[0,"⪅"],[0,"⪆"],[0,"⪇"],[0,"⪈"],[0,"⪉"],[0,"⪊"],[0,"⪋"],[0,"⪌"],[0,"⪍"],[0,"⪎"],[0,"⪏"],[0,"⪐"],[0,"⪑"],[0,"⪒"],[0,"⪓"],[0,"⪔"],[0,"⪕"],[0,"⪖"],[0,"⪗"],[0,"⪘"],[0,"⪙"],[0,"⪚"],[2,"⪝"],[0,"⪞"],[0,"⪟"],[0,"⪠"],[0,{v:"⪡",n:824,o:"⪡̸"}],[0,{v:"⪢",n:824,o:"⪢̸"}],[1,"⪤"],[0,"⪥"],[0,"⪦"],[0,"⪧"],[0,"⪨"],[0,"⪩"],[0,"⪪"],[0,"⪫"],[0,{v:"⪬",n:65024,o:"⪬︀"}],[0,{v:"⪭",n:65024,o:"⪭︀"}],[0,"⪮"],[0,{v:"⪯",n:824,o:"⪯̸"}],[0,{v:"⪰",n:824,o:"⪰̸"}],[2,"⪳"],[0,"⪴"],[0,"⪵"],[0,"⪶"],[0,"⪷"],[0,"⪸"],[0,"⪹"],[0,"⪺"],[0,"⪻"],[0,"⪼"],[0,"⪽"],[0,"⪾"],[0,"⪿"],[0,"⫀"],[0,"⫁"],[0,"⫂"],[0,"⫃"],[0,"⫄"],[0,{v:"⫅",n:824,o:"⫅̸"}],[0,{v:"⫆",n:824,o:"⫆̸"}],[0,"⫇"],[0,"⫈"],[2,{v:"⫋",n:65024,o:"⫋︀"}],[0,{v:"⫌",n:65024,o:"⫌︀"}],[2,"⫏"],[0,"⫐"],[0,"⫑"],[0,"⫒"],[0,"⫓"],[0,"⫔"],[0,"⫕"],[0,"⫖"],[0,"⫗"],[0,"⫘"],[0,"⫙"],[0,"⫚"],[0,"⫛"],[8,"⫤"],[1,"⫦"],[0,"⫧"],[0,"⫨"],[0,"⫩"],[1,"⫫"],[0,"⫬"],[0,"⫭"],[0,"⫮"],[0,"⫯"],[0,"⫰"],[0,"⫱"],[0,"⫲"],[0,"⫳"],[9,{v:"⫽",n:8421,o:"⫽⃥"}],[44343,{n:new Map(n([[56476,"𝒜"],[1,"𝒞"],[0,"𝒟"],[2,"𝒢"],[2,"𝒥"],[0,"𝒦"],[2,"𝒩"],[0,"𝒪"],[0,"𝒫"],[0,"𝒬"],[1,"𝒮"],[0,"𝒯"],[0,"𝒰"],[0,"𝒱"],[0,"𝒲"],[0,"𝒳"],[0,"𝒴"],[0,"𝒵"],[0,"𝒶"],[0,"𝒷"],[0,"𝒸"],[0,"𝒹"],[1,"𝒻"],[1,"𝒽"],[0,"𝒾"],[0,"𝒿"],[0,"𝓀"],[0,"𝓁"],[0,"𝓂"],[0,"𝓃"],[1,"𝓅"],[0,"𝓆"],[0,"𝓇"],[0,"𝓈"],[0,"𝓉"],[0,"𝓊"],[0,"𝓋"],[0,"𝓌"],[0,"𝓍"],[0,"𝓎"],[0,"𝓏"],[52,"𝔄"],[0,"𝔅"],[1,"𝔇"],[0,"𝔈"],[0,"𝔉"],[0,"𝔊"],[2,"𝔍"],[0,"𝔎"],[0,"𝔏"],[0,"𝔐"],[0,"𝔑"],[0,"𝔒"],[0,"𝔓"],[0,"𝔔"],[1,"𝔖"],[0,"𝔗"],[0,"𝔘"],[0,"𝔙"],[0,"𝔚"],[0,"𝔛"],[0,"𝔜"],[1,"𝔞"],[0,"𝔟"],[0,"𝔠"],[0,"𝔡"],[0,"𝔢"],[0,"𝔣"],[0,"𝔤"],[0,"𝔥"],[0,"𝔦"],[0,"𝔧"],[0,"𝔨"],[0,"𝔩"],[0,"𝔪"],[0,"𝔫"],[0,"𝔬"],[0,"𝔭"],[0,"𝔮"],[0,"𝔯"],[0,"𝔰"],[0,"𝔱"],[0,"𝔲"],[0,"𝔳"],[0,"𝔴"],[0,"𝔵"],[0,"𝔶"],[0,"𝔷"],[0,"𝔸"],[0,"𝔹"],[1,"𝔻"],[0,"𝔼"],[0,"𝔽"],[0,"𝔾"],[1,"𝕀"],[0,"𝕁"],[0,"𝕂"],[0,"𝕃"],[0,"𝕄"],[1,"𝕆"],[3,"𝕊"],[0,"𝕋"],[0,"𝕌"],[0,"𝕍"],[0,"𝕎"],[0,"𝕏"],[0,"𝕐"],[1,"𝕒"],[0,"𝕓"],[0,"𝕔"],[0,"𝕕"],[0,"𝕖"],[0,"𝕗"],[0,"𝕘"],[0,"𝕙"],[0,"𝕚"],[0,"𝕛"],[0,"𝕜"],[0,"𝕝"],[0,"𝕞"],[0,"𝕟"],[0,"𝕠"],[0,"𝕡"],[0,"𝕢"],[0,"𝕣"],[0,"𝕤"],[0,"𝕥"],[0,"𝕦"],[0,"𝕧"],[0,"𝕨"],[0,"𝕩"],[0,"𝕪"],[0,"𝕫"]]))}],[8906,"ff"],[0,"fi"],[0,"fl"],[0,"ffi"],[0,"ffl"]]))},72656:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.decodeXMLStrict=e.decodeHTML5Strict=e.decodeHTML4Strict=e.decodeHTML5=e.decodeHTML4=e.decodeHTMLAttribute=e.decodeHTMLStrict=e.decodeHTML=e.decodeXML=e.DecodingMode=e.EntityDecoder=e.encodeHTML5=e.encodeHTML4=e.encodeNonAsciiHTML=e.encodeHTML=e.escapeText=e.escapeAttribute=e.escapeUTF8=e.escape=e.encodeXML=e.encode=e.decodeStrict=e.decode=e.EncodingMode=e.EntityLevel=void 0;var i,r,o=n(64210),s=n(6252),l=n(64309);function a(t,e){void 0===e&&(e=i.XML);var n="number"===typeof e?e:e.level;if(n===i.HTML){var r="object"===typeof e?e.mode:void 0;return(0,o.decodeHTML)(t,r)}return(0,o.decodeXML)(t)}function h(t,e){var n;void 0===e&&(e=i.XML);var r="number"===typeof e?{level:e}:e;return null!==(n=r.mode)&&void 0!==n||(r.mode=o.DecodingMode.Strict),a(t,r)}function u(t,e){void 0===e&&(e=i.XML);var n="number"===typeof e?{level:e}:e;return n.mode===r.UTF8?(0,l.escapeUTF8)(t):n.mode===r.Attribute?(0,l.escapeAttribute)(t):n.mode===r.Text?(0,l.escapeText)(t):n.level===i.HTML?n.mode===r.ASCII?(0,s.encodeNonAsciiHTML)(t):(0,s.encodeHTML)(t):(0,l.encodeXML)(t)}(function(t){t[t["XML"]=0]="XML",t[t["HTML"]=1]="HTML"})(i=e.EntityLevel||(e.EntityLevel={})),function(t){t[t["UTF8"]=0]="UTF8",t[t["ASCII"]=1]="ASCII",t[t["Extensive"]=2]="Extensive",t[t["Attribute"]=3]="Attribute",t[t["Text"]=4]="Text"}(r=e.EncodingMode||(e.EncodingMode={})),e.decode=a,e.decodeStrict=h,e.encode=u;var d=n(64309);Object.defineProperty(e,"encodeXML",{enumerable:!0,get:function(){return d.encodeXML}}),Object.defineProperty(e,"escape",{enumerable:!0,get:function(){return d.escape}}),Object.defineProperty(e,"escapeUTF8",{enumerable:!0,get:function(){return d.escapeUTF8}}),Object.defineProperty(e,"escapeAttribute",{enumerable:!0,get:function(){return d.escapeAttribute}}),Object.defineProperty(e,"escapeText",{enumerable:!0,get:function(){return d.escapeText}});var c=n(6252);Object.defineProperty(e,"encodeHTML",{enumerable:!0,get:function(){return c.encodeHTML}}),Object.defineProperty(e,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return c.encodeNonAsciiHTML}}),Object.defineProperty(e,"encodeHTML4",{enumerable:!0,get:function(){return c.encodeHTML}}),Object.defineProperty(e,"encodeHTML5",{enumerable:!0,get:function(){return c.encodeHTML}});var p=n(64210);Object.defineProperty(e,"EntityDecoder",{enumerable:!0,get:function(){return p.EntityDecoder}}),Object.defineProperty(e,"DecodingMode",{enumerable:!0,get:function(){return p.DecodingMode}}),Object.defineProperty(e,"decodeXML",{enumerable:!0,get:function(){return p.decodeXML}}),Object.defineProperty(e,"decodeHTML",{enumerable:!0,get:function(){return p.decodeHTML}}),Object.defineProperty(e,"decodeHTMLStrict",{enumerable:!0,get:function(){return p.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTMLAttribute",{enumerable:!0,get:function(){return p.decodeHTMLAttribute}}),Object.defineProperty(e,"decodeHTML4",{enumerable:!0,get:function(){return p.decodeHTML}}),Object.defineProperty(e,"decodeHTML5",{enumerable:!0,get:function(){return p.decodeHTML}}),Object.defineProperty(e,"decodeHTML4Strict",{enumerable:!0,get:function(){return p.decodeHTMLStrict}}),Object.defineProperty(e,"decodeHTML5Strict",{enumerable:!0,get:function(){return p.decodeHTMLStrict}}),Object.defineProperty(e,"decodeXMLStrict",{enumerable:!0,get:function(){return p.decodeXML}})},91139:function(t){"use strict";t.exports=t=>{if("string"!==typeof t)throw new TypeError("Expected a string");return t.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},43716:function(t,e,n){"use strict";n(57658);var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);r&&!("get"in r?!e.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),r=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t["default"]=e}),o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return r(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.Parser=void 0;var s=o(n(98690)),l=n(64210),a=new Set(["input","option","optgroup","select","button","datalist","textarea"]),h=new Set(["p"]),u=new Set(["thead","tbody"]),d=new Set(["dd","dt"]),c=new Set(["rt","rp"]),p=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",h],["h1",h],["h2",h],["h3",h],["h4",h],["h5",h],["h6",h],["select",a],["input",a],["output",a],["button",a],["datalist",a],["textarea",a],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",d],["dt",d],["address",h],["article",h],["aside",h],["blockquote",h],["details",h],["div",h],["dl",h],["fieldset",h],["figcaption",h],["figure",h],["footer",h],["form",h],["header",h],["hr",h],["main",h],["nav",h],["ol",h],["pre",h],["section",h],["table",h],["ul",h],["rt",c],["rp",c],["tbody",u],["tfoot",u]]),g=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),m=new Set(["math","svg"]),x=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),y=/\s|\//,f=function(){function t(t,e){var n,i,r,o,l;void 0===e&&(e={}),this.options=e,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=null!==t&&void 0!==t?t:{},this.lowerCaseTagNames=null!==(n=e.lowerCaseTags)&&void 0!==n?n:!e.xmlMode,this.lowerCaseAttributeNames=null!==(i=e.lowerCaseAttributeNames)&&void 0!==i?i:!e.xmlMode,this.tokenizer=new(null!==(r=e.Tokenizer)&&void 0!==r?r:s.default)(this.options,this),null===(l=(o=this.cbs).onparserinit)||void 0===l||l.call(o,this)}return t.prototype.ontext=function(t,e){var n,i,r=this.getSlice(t,e);this.endIndex=e-1,null===(i=(n=this.cbs).ontext)||void 0===i||i.call(n,r),this.startIndex=e},t.prototype.ontextentity=function(t){var e,n,i=this.tokenizer.getSectionStart();this.endIndex=i-1,null===(n=(e=this.cbs).ontext)||void 0===n||n.call(e,(0,l.fromCodePoint)(t)),this.startIndex=i},t.prototype.isVoidElement=function(t){return!this.options.xmlMode&&g.has(t)},t.prototype.onopentagname=function(t,e){this.endIndex=e;var n=this.getSlice(t,e);this.lowerCaseTagNames&&(n=n.toLowerCase()),this.emitOpenTag(n)},t.prototype.emitOpenTag=function(t){var e,n,i,r;this.openTagStart=this.startIndex,this.tagname=t;var o=!this.options.xmlMode&&p.get(t);if(o)while(this.stack.length>0&&o.has(this.stack[this.stack.length-1])){var s=this.stack.pop();null===(n=(e=this.cbs).onclosetag)||void 0===n||n.call(e,s,!0)}this.isVoidElement(t)||(this.stack.push(t),m.has(t)?this.foreignContext.push(!0):x.has(t)&&this.foreignContext.push(!1)),null===(r=(i=this.cbs).onopentagname)||void 0===r||r.call(i,t),this.cbs.onopentag&&(this.attribs={})},t.prototype.endOpenTag=function(t){var e,n;this.startIndex=this.openTagStart,this.attribs&&(null===(n=(e=this.cbs).onopentag)||void 0===n||n.call(e,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""},t.prototype.onopentagend=function(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1},t.prototype.onclosetag=function(t,e){var n,i,r,o,s,l;this.endIndex=e;var a=this.getSlice(t,e);if(this.lowerCaseTagNames&&(a=a.toLowerCase()),(m.has(a)||x.has(a))&&this.foreignContext.pop(),this.isVoidElement(a))this.options.xmlMode||"br"!==a||(null===(i=(n=this.cbs).onopentagname)||void 0===i||i.call(n,"br"),null===(o=(r=this.cbs).onopentag)||void 0===o||o.call(r,"br",{},!0),null===(l=(s=this.cbs).onclosetag)||void 0===l||l.call(s,"br",!1));else{var h=this.stack.lastIndexOf(a);if(-1!==h)if(this.cbs.onclosetag){var u=this.stack.length-h;while(u--)this.cbs.onclosetag(this.stack.pop(),0!==u)}else this.stack.length=h;else this.options.xmlMode||"p"!==a||(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=e+1},t.prototype.onselfclosingtag=function(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)},t.prototype.closeCurrentTag=function(t){var e,n,i=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===i&&(null===(n=(e=this.cbs).onclosetag)||void 0===n||n.call(e,i,!t),this.stack.pop())},t.prototype.onattribname=function(t,e){this.startIndex=t;var n=this.getSlice(t,e);this.attribname=this.lowerCaseAttributeNames?n.toLowerCase():n},t.prototype.onattribdata=function(t,e){this.attribvalue+=this.getSlice(t,e)},t.prototype.onattribentity=function(t){this.attribvalue+=(0,l.fromCodePoint)(t)},t.prototype.onattribend=function(t,e){var n,i;this.endIndex=e,null===(i=(n=this.cbs).onattribute)||void 0===i||i.call(n,this.attribname,this.attribvalue,t===s.QuoteType.Double?'"':t===s.QuoteType.Single?"'":t===s.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""},t.prototype.getInstructionName=function(t){var e=t.search(y),n=e<0?t:t.substr(0,e);return this.lowerCaseTagNames&&(n=n.toLowerCase()),n},t.prototype.ondeclaration=function(t,e){this.endIndex=e;var n=this.getSlice(t,e);if(this.cbs.onprocessinginstruction){var i=this.getInstructionName(n);this.cbs.onprocessinginstruction("!".concat(i),"!".concat(n))}this.startIndex=e+1},t.prototype.onprocessinginstruction=function(t,e){this.endIndex=e;var n=this.getSlice(t,e);if(this.cbs.onprocessinginstruction){var i=this.getInstructionName(n);this.cbs.onprocessinginstruction("?".concat(i),"?".concat(n))}this.startIndex=e+1},t.prototype.oncomment=function(t,e,n){var i,r,o,s;this.endIndex=e,null===(r=(i=this.cbs).oncomment)||void 0===r||r.call(i,this.getSlice(t,e-n)),null===(s=(o=this.cbs).oncommentend)||void 0===s||s.call(o),this.startIndex=e+1},t.prototype.oncdata=function(t,e,n){var i,r,o,s,l,a,h,u,d,c;this.endIndex=e;var p=this.getSlice(t,e-n);this.options.xmlMode||this.options.recognizeCDATA?(null===(r=(i=this.cbs).oncdatastart)||void 0===r||r.call(i),null===(s=(o=this.cbs).ontext)||void 0===s||s.call(o,p),null===(a=(l=this.cbs).oncdataend)||void 0===a||a.call(l)):(null===(u=(h=this.cbs).oncomment)||void 0===u||u.call(h,"[CDATA[".concat(p,"]]")),null===(c=(d=this.cbs).oncommentend)||void 0===c||c.call(d)),this.startIndex=e+1},t.prototype.onend=function(){var t,e;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var n=this.stack.length;n>0;this.cbs.onclosetag(this.stack[--n],!0));}null===(e=(t=this.cbs).onend)||void 0===e||e.call(t)},t.prototype.reset=function(){var t,e,n,i;null===(e=(t=this.cbs).onreset)||void 0===e||e.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,null===(i=(n=this.cbs).onparserinit)||void 0===i||i.call(n,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1},t.prototype.parseComplete=function(t){this.reset(),this.end(t)},t.prototype.getSlice=function(t,e){while(t-this.bufferOffset>=this.buffers[0].length)this.shiftBuffer();var n=this.buffers[0].slice(t-this.bufferOffset,e-this.bufferOffset);while(e-this.bufferOffset>this.buffers[0].length)this.shiftBuffer(),n+=this.buffers[0].slice(0,e-this.bufferOffset);return n},t.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()},t.prototype.write=function(t){var e,n;this.ended?null===(n=(e=this.cbs).onerror)||void 0===n||n.call(e,new Error(".write() after done!")):(this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++))},t.prototype.end=function(t){var e,n;this.ended?null===(n=(e=this.cbs).onerror)||void 0===n||n.call(e,new Error(".end() after done!")):(t&&this.write(t),this.ended=!0,this.tokenizer.end())},t.prototype.pause=function(){this.tokenizer.pause()},t.prototype.resume=function(){this.tokenizer.resume();while(this.tokenizer.running&&this.writeIndex<this.buffers.length)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()},t.prototype.parseChunk=function(t){this.write(t)},t.prototype.done=function(t){this.end(t)},t}();e.Parser=f},98690:function(t,e,n){"use strict";n(1439),n(87585),n(55315),Object.defineProperty(e,"__esModule",{value:!0}),e.QuoteType=void 0;var i,r,o,s=n(64210);function l(t){return t===i.Space||t===i.NewLine||t===i.Tab||t===i.FormFeed||t===i.CarriageReturn}function a(t){return t===i.Slash||t===i.Gt||l(t)}function h(t){return t>=i.Zero&&t<=i.Nine}function u(t){return t>=i.LowerA&&t<=i.LowerZ||t>=i.UpperA&&t<=i.UpperZ}function d(t){return t>=i.UpperA&&t<=i.UpperF||t>=i.LowerA&&t<=i.LowerF}(function(t){t[t["Tab"]=9]="Tab",t[t["NewLine"]=10]="NewLine",t[t["FormFeed"]=12]="FormFeed",t[t["CarriageReturn"]=13]="CarriageReturn",t[t["Space"]=32]="Space",t[t["ExclamationMark"]=33]="ExclamationMark",t[t["Number"]=35]="Number",t[t["Amp"]=38]="Amp",t[t["SingleQuote"]=39]="SingleQuote",t[t["DoubleQuote"]=34]="DoubleQuote",t[t["Dash"]=45]="Dash",t[t["Slash"]=47]="Slash",t[t["Zero"]=48]="Zero",t[t["Nine"]=57]="Nine",t[t["Semi"]=59]="Semi",t[t["Lt"]=60]="Lt",t[t["Eq"]=61]="Eq",t[t["Gt"]=62]="Gt",t[t["Questionmark"]=63]="Questionmark",t[t["UpperA"]=65]="UpperA",t[t["LowerA"]=97]="LowerA",t[t["UpperF"]=70]="UpperF",t[t["LowerF"]=102]="LowerF",t[t["UpperZ"]=90]="UpperZ",t[t["LowerZ"]=122]="LowerZ",t[t["LowerX"]=120]="LowerX",t[t["OpeningSquareBracket"]=91]="OpeningSquareBracket"})(i||(i={})),function(t){t[t["Text"]=1]="Text",t[t["BeforeTagName"]=2]="BeforeTagName",t[t["InTagName"]=3]="InTagName",t[t["InSelfClosingTag"]=4]="InSelfClosingTag",t[t["BeforeClosingTagName"]=5]="BeforeClosingTagName",t[t["InClosingTagName"]=6]="InClosingTagName",t[t["AfterClosingTagName"]=7]="AfterClosingTagName",t[t["BeforeAttributeName"]=8]="BeforeAttributeName",t[t["InAttributeName"]=9]="InAttributeName",t[t["AfterAttributeName"]=10]="AfterAttributeName",t[t["BeforeAttributeValue"]=11]="BeforeAttributeValue",t[t["InAttributeValueDq"]=12]="InAttributeValueDq",t[t["InAttributeValueSq"]=13]="InAttributeValueSq",t[t["InAttributeValueNq"]=14]="InAttributeValueNq",t[t["BeforeDeclaration"]=15]="BeforeDeclaration",t[t["InDeclaration"]=16]="InDeclaration",t[t["InProcessingInstruction"]=17]="InProcessingInstruction",t[t["BeforeComment"]=18]="BeforeComment",t[t["CDATASequence"]=19]="CDATASequence",t[t["InSpecialComment"]=20]="InSpecialComment",t[t["InCommentLike"]=21]="InCommentLike",t[t["BeforeSpecialS"]=22]="BeforeSpecialS",t[t["SpecialStartSequence"]=23]="SpecialStartSequence",t[t["InSpecialTag"]=24]="InSpecialTag",t[t["BeforeEntity"]=25]="BeforeEntity",t[t["BeforeNumericEntity"]=26]="BeforeNumericEntity",t[t["InNamedEntity"]=27]="InNamedEntity",t[t["InNumericEntity"]=28]="InNumericEntity",t[t["InHexEntity"]=29]="InHexEntity"}(r||(r={})),function(t){t[t["NoValue"]=0]="NoValue",t[t["Unquoted"]=1]="Unquoted",t[t["Single"]=2]="Single",t[t["Double"]=3]="Double"}(o=e.QuoteType||(e.QuoteType={}));var c={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},p=function(){function t(t,e){var n=t.xmlMode,i=void 0!==n&&n,o=t.decodeEntities,l=void 0===o||o;this.cbs=e,this.state=r.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=r.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=i,this.decodeEntities=l,this.entityTrie=i?s.xmlDecodeTree:s.htmlDecodeTree}return t.prototype.reset=function(){this.state=r.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=r.Text,this.currentSequence=void 0,this.running=!0,this.offset=0},t.prototype.write=function(t){this.offset+=this.buffer.length,this.buffer=t,this.parse()},t.prototype.end=function(){this.running&&this.finish()},t.prototype.pause=function(){this.running=!1},t.prototype.resume=function(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()},t.prototype.getIndex=function(){return this.index},t.prototype.getSectionStart=function(){return this.sectionStart},t.prototype.stateText=function(t){t===i.Lt||!this.decodeEntities&&this.fastForwardTo(i.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=r.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&t===i.Amp&&(this.state=r.BeforeEntity)},t.prototype.stateSpecialStartSequence=function(t){var e=this.sequenceIndex===this.currentSequence.length,n=e?a(t):(32|t)===this.currentSequence[this.sequenceIndex];if(n){if(!e)return void this.sequenceIndex++}else this.isSpecial=!1;this.sequenceIndex=0,this.state=r.InTagName,this.stateInTagName(t)},t.prototype.stateInSpecialTag=function(t){if(this.sequenceIndex===this.currentSequence.length){if(t===i.Gt||l(t)){var e=this.index-this.currentSequence.length;if(this.sectionStart<e){var n=this.index;this.index=e,this.cbs.ontext(this.sectionStart,e),this.index=n}return this.isSpecial=!1,this.sectionStart=e+2,void this.stateInClosingTagName(t)}this.sequenceIndex=0}(32|t)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:0===this.sequenceIndex?this.currentSequence===c.TitleEnd?this.decodeEntities&&t===i.Amp&&(this.state=r.BeforeEntity):this.fastForwardTo(i.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=Number(t===i.Lt)},t.prototype.stateCDATASequence=function(t){t===c.Cdata[this.sequenceIndex]?++this.sequenceIndex===c.Cdata.length&&(this.state=r.InCommentLike,this.currentSequence=c.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=r.InDeclaration,this.stateInDeclaration(t))},t.prototype.fastForwardTo=function(t){while(++this.index<this.buffer.length+this.offset)if(this.buffer.charCodeAt(this.index-this.offset)===t)return!0;return this.index=this.buffer.length+this.offset-1,!1},t.prototype.stateInCommentLike=function(t){t===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===c.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=r.Text):0===this.sequenceIndex?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):t!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)},t.prototype.isTagStartChar=function(t){return this.xmlMode?!a(t):u(t)},t.prototype.startSpecial=function(t,e){this.isSpecial=!0,this.currentSequence=t,this.sequenceIndex=e,this.state=r.SpecialStartSequence},t.prototype.stateBeforeTagName=function(t){if(t===i.ExclamationMark)this.state=r.BeforeDeclaration,this.sectionStart=this.index+1;else if(t===i.Questionmark)this.state=r.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(t)){var e=32|t;this.sectionStart=this.index,this.xmlMode||e!==c.TitleEnd[2]?this.state=this.xmlMode||e!==c.ScriptEnd[2]?r.InTagName:r.BeforeSpecialS:this.startSpecial(c.TitleEnd,3)}else t===i.Slash?this.state=r.BeforeClosingTagName:(this.state=r.Text,this.stateText(t))},t.prototype.stateInTagName=function(t){a(t)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(t))},t.prototype.stateBeforeClosingTagName=function(t){l(t)||(t===i.Gt?this.state=r.Text:(this.state=this.isTagStartChar(t)?r.InClosingTagName:r.InSpecialComment,this.sectionStart=this.index))},t.prototype.stateInClosingTagName=function(t){(t===i.Gt||l(t))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=r.AfterClosingTagName,this.stateAfterClosingTagName(t))},t.prototype.stateAfterClosingTagName=function(t){(t===i.Gt||this.fastForwardTo(i.Gt))&&(this.state=r.Text,this.baseState=r.Text,this.sectionStart=this.index+1)},t.prototype.stateBeforeAttributeName=function(t){t===i.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=r.InSpecialTag,this.sequenceIndex=0):this.state=r.Text,this.baseState=this.state,this.sectionStart=this.index+1):t===i.Slash?this.state=r.InSelfClosingTag:l(t)||(this.state=r.InAttributeName,this.sectionStart=this.index)},t.prototype.stateInSelfClosingTag=function(t){t===i.Gt?(this.cbs.onselfclosingtag(this.index),this.state=r.Text,this.baseState=r.Text,this.sectionStart=this.index+1,this.isSpecial=!1):l(t)||(this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(t))},t.prototype.stateInAttributeName=function(t){(t===i.Eq||a(t))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=r.AfterAttributeName,this.stateAfterAttributeName(t))},t.prototype.stateAfterAttributeName=function(t){t===i.Eq?this.state=r.BeforeAttributeValue:t===i.Slash||t===i.Gt?(this.cbs.onattribend(o.NoValue,this.index),this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(t)):l(t)||(this.cbs.onattribend(o.NoValue,this.index),this.state=r.InAttributeName,this.sectionStart=this.index)},t.prototype.stateBeforeAttributeValue=function(t){t===i.DoubleQuote?(this.state=r.InAttributeValueDq,this.sectionStart=this.index+1):t===i.SingleQuote?(this.state=r.InAttributeValueSq,this.sectionStart=this.index+1):l(t)||(this.sectionStart=this.index,this.state=r.InAttributeValueNq,this.stateInAttributeValueNoQuotes(t))},t.prototype.handleInAttributeValue=function(t,e){t===e||!this.decodeEntities&&this.fastForwardTo(e)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(e===i.DoubleQuote?o.Double:o.Single,this.index),this.state=r.BeforeAttributeName):this.decodeEntities&&t===i.Amp&&(this.baseState=this.state,this.state=r.BeforeEntity)},t.prototype.stateInAttributeValueDoubleQuotes=function(t){this.handleInAttributeValue(t,i.DoubleQuote)},t.prototype.stateInAttributeValueSingleQuotes=function(t){this.handleInAttributeValue(t,i.SingleQuote)},t.prototype.stateInAttributeValueNoQuotes=function(t){l(t)||t===i.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(o.Unquoted,this.index),this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(t)):this.decodeEntities&&t===i.Amp&&(this.baseState=this.state,this.state=r.BeforeEntity)},t.prototype.stateBeforeDeclaration=function(t){t===i.OpeningSquareBracket?(this.state=r.CDATASequence,this.sequenceIndex=0):this.state=t===i.Dash?r.BeforeComment:r.InDeclaration},t.prototype.stateInDeclaration=function(t){(t===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=r.Text,this.sectionStart=this.index+1)},t.prototype.stateInProcessingInstruction=function(t){(t===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=r.Text,this.sectionStart=this.index+1)},t.prototype.stateBeforeComment=function(t){t===i.Dash?(this.state=r.InCommentLike,this.currentSequence=c.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=r.InDeclaration},t.prototype.stateInSpecialComment=function(t){(t===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=r.Text,this.sectionStart=this.index+1)},t.prototype.stateBeforeSpecialS=function(t){var e=32|t;e===c.ScriptEnd[3]?this.startSpecial(c.ScriptEnd,4):e===c.StyleEnd[3]?this.startSpecial(c.StyleEnd,4):(this.state=r.InTagName,this.stateInTagName(t))},t.prototype.stateBeforeEntity=function(t){this.entityExcess=1,this.entityResult=0,t===i.Number?this.state=r.BeforeNumericEntity:t===i.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=r.InNamedEntity,this.stateInNamedEntity(t))},t.prototype.stateInNamedEntity=function(t){if(this.entityExcess+=1,this.trieIndex=(0,s.determineBranch)(this.entityTrie,this.trieCurrent,this.trieIndex+1,t),this.trieIndex<0)return this.emitNamedEntity(),void this.index--;this.trieCurrent=this.entityTrie[this.trieIndex];var e=this.trieCurrent&s.BinTrieFlags.VALUE_LENGTH;if(e){var n=(e>>14)-1;if(this.allowLegacyEntity()||t===i.Semi){var r=this.index-this.entityExcess+1;r>this.sectionStart&&this.emitPartial(this.sectionStart,r),this.entityResult=this.trieIndex,this.trieIndex+=n,this.entityExcess=0,this.sectionStart=this.index+1,0===n&&this.emitNamedEntity()}else this.trieIndex+=n}},t.prototype.emitNamedEntity=function(){if(this.state=this.baseState,0!==this.entityResult){var t=(this.entityTrie[this.entityResult]&s.BinTrieFlags.VALUE_LENGTH)>>14;switch(t){case 1:this.emitCodePoint(this.entityTrie[this.entityResult]&~s.BinTrieFlags.VALUE_LENGTH);break;case 2:this.emitCodePoint(this.entityTrie[this.entityResult+1]);break;case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}},t.prototype.stateBeforeNumericEntity=function(t){(32|t)===i.LowerX?(this.entityExcess++,this.state=r.InHexEntity):(this.state=r.InNumericEntity,this.stateInNumericEntity(t))},t.prototype.emitNumericEntity=function(t){var e=this.index-this.entityExcess-1,n=e+2+Number(this.state===r.InHexEntity);n!==this.index&&(e>this.sectionStart&&this.emitPartial(this.sectionStart,e),this.sectionStart=this.index+Number(t),this.emitCodePoint((0,s.replaceCodePoint)(this.entityResult))),this.state=this.baseState},t.prototype.stateInNumericEntity=function(t){t===i.Semi?this.emitNumericEntity(!0):h(t)?(this.entityResult=10*this.entityResult+(t-i.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},t.prototype.stateInHexEntity=function(t){t===i.Semi?this.emitNumericEntity(!0):h(t)?(this.entityResult=16*this.entityResult+(t-i.Zero),this.entityExcess++):d(t)?(this.entityResult=16*this.entityResult+((32|t)-i.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},t.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===r.Text||this.baseState===r.InSpecialTag)},t.prototype.cleanup=function(){this.running&&this.sectionStart!==this.index&&(this.state===r.Text||this.state===r.InSpecialTag&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):this.state!==r.InAttributeValueDq&&this.state!==r.InAttributeValueSq&&this.state!==r.InAttributeValueNq||(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))},t.prototype.shouldContinue=function(){return this.index<this.buffer.length+this.offset&&this.running},t.prototype.parse=function(){while(this.shouldContinue()){var t=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case r.Text:this.stateText(t);break;case r.SpecialStartSequence:this.stateSpecialStartSequence(t);break;case r.InSpecialTag:this.stateInSpecialTag(t);break;case r.CDATASequence:this.stateCDATASequence(t);break;case r.InAttributeValueDq:this.stateInAttributeValueDoubleQuotes(t);break;case r.InAttributeName:this.stateInAttributeName(t);break;case r.InCommentLike:this.stateInCommentLike(t);break;case r.InSpecialComment:this.stateInSpecialComment(t);break;case r.BeforeAttributeName:this.stateBeforeAttributeName(t);break;case r.InTagName:this.stateInTagName(t);break;case r.InClosingTagName:this.stateInClosingTagName(t);break;case r.BeforeTagName:this.stateBeforeTagName(t);break;case r.AfterAttributeName:this.stateAfterAttributeName(t);break;case r.InAttributeValueSq:this.stateInAttributeValueSingleQuotes(t);break;case r.BeforeAttributeValue:this.stateBeforeAttributeValue(t);break;case r.BeforeClosingTagName:this.stateBeforeClosingTagName(t);break;case r.AfterClosingTagName:this.stateAfterClosingTagName(t);break;case r.BeforeSpecialS:this.stateBeforeSpecialS(t);break;case r.InAttributeValueNq:this.stateInAttributeValueNoQuotes(t);break;case r.InSelfClosingTag:this.stateInSelfClosingTag(t);break;case r.InDeclaration:this.stateInDeclaration(t);break;case r.BeforeDeclaration:this.stateBeforeDeclaration(t);break;case r.BeforeComment:this.stateBeforeComment(t);break;case r.InProcessingInstruction:this.stateInProcessingInstruction(t);break;case r.InNamedEntity:this.stateInNamedEntity(t);break;case r.BeforeEntity:this.stateBeforeEntity(t);break;case r.InHexEntity:this.stateInHexEntity(t);break;case r.InNumericEntity:this.stateInNumericEntity(t);break;default:this.stateBeforeNumericEntity(t)}this.index++}this.cleanup()},t.prototype.finish=function(){this.state===r.InNamedEntity&&this.emitNamedEntity(),this.sectionStart<this.index&&this.handleTrailingData(),this.cbs.onend()},t.prototype.handleTrailingData=function(){var t=this.buffer.length+this.offset;this.state===r.InCommentLike?this.currentSequence===c.CdataEnd?this.cbs.oncdata(this.sectionStart,t,0):this.cbs.oncomment(this.sectionStart,t,0):this.state===r.InNumericEntity&&this.allowLegacyEntity()||this.state===r.InHexEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===r.InTagName||this.state===r.BeforeAttributeName||this.state===r.BeforeAttributeValue||this.state===r.AfterAttributeName||this.state===r.InAttributeName||this.state===r.InAttributeValueSq||this.state===r.InAttributeValueDq||this.state===r.InAttributeValueNq||this.state===r.InClosingTagName||this.cbs.ontext(this.sectionStart,t)},t.prototype.emitPartial=function(t,e){this.baseState!==r.Text&&this.baseState!==r.InSpecialTag?this.cbs.onattribdata(t,e):this.cbs.ontext(t,e)},t.prototype.emitCodePoint=function(t){this.baseState!==r.Text&&this.baseState!==r.InSpecialTag?this.cbs.onattribentity(t):this.cbs.ontextentity(t)},t}();e["default"]=p},87185:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);r&&!("get"in r?!e.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),r=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t["default"]=e}),o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return r(e,t),e},s=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.DomUtils=e.parseFeed=e.getFeed=e.ElementType=e.Tokenizer=e.createDomStream=e.parseDOM=e.parseDocument=e.DefaultHandler=e.DomHandler=e.Parser=void 0;var l=n(43716),a=n(43716);Object.defineProperty(e,"Parser",{enumerable:!0,get:function(){return a.Parser}});var h=n(6029),u=n(6029);function d(t,e){var n=new h.DomHandler(void 0,e);return new l.Parser(n,e).end(t),n.root}function c(t,e){return d(t,e).children}function p(t,e,n){var i=new h.DomHandler(t,e,n);return new l.Parser(i,e)}Object.defineProperty(e,"DomHandler",{enumerable:!0,get:function(){return u.DomHandler}}),Object.defineProperty(e,"DefaultHandler",{enumerable:!0,get:function(){return u.DomHandler}}),e.parseDocument=d,e.parseDOM=c,e.createDomStream=p;var g=n(98690);Object.defineProperty(e,"Tokenizer",{enumerable:!0,get:function(){return s(g).default}}),e.ElementType=o(n(73090));var m=n(72493),x=n(72493);Object.defineProperty(e,"getFeed",{enumerable:!0,get:function(){return x.getFeed}});var y={xmlMode:!0};function f(t,e){return void 0===e&&(e=y),(0,m.getFeed)(c(t,e))}e.parseFeed=f,e.DomUtils=o(n(72493))},94381:function(t,e){"use strict";
|
||
/*!
|
||
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
|
||
*
|
||
* Copyright (c) 2014-2017, Jon Schlinkert.
|
||
* Released under the MIT License.
|
||
*/
|
||
function n(t){return"[object Object]"===Object.prototype.toString.call(t)}function i(t){var e,i;return!1!==n(t)&&(e=t.constructor,void 0===e||(i=e.prototype,!1!==n(i)&&!1!==i.hasOwnProperty("isPrototypeOf")))}Object.defineProperty(e,"__esModule",{value:!0}),e.isPlainObject=i},28329:function(t,e,n){"use strict";let i=n(20311);class r extends i{constructor(t){super(t),this.type="atrule"}append(...t){return this.proxyOf.nodes||(this.nodes=[]),super.append(...t)}prepend(...t){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...t)}}t.exports=r,r.default=r,i.registerAtRule(r)},3909:function(t,e,n){"use strict";let i=n(20832);class r extends i{constructor(t){super(t),this.type="comment"}}t.exports=r,r.default=r},20311:function(t,e,n){"use strict";n(57658);let i,r,o,s,{isClean:l,my:a}=n(3190),h=n(25914),u=n(3909),d=n(20832);function c(t){return t.map((t=>(t.nodes&&(t.nodes=c(t.nodes)),delete t.source,t)))}function p(t){if(t[l]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)p(e)}class g extends d{append(...t){for(let e of t){let t=this.normalize(e,this.last);for(let e of t)this.proxyOf.nodes.push(e)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let e of this.nodes)e.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let e,n,i=this.getIterator();while(this.indexes[i]<this.proxyOf.nodes.length){if(e=this.indexes[i],n=t(this.proxyOf.nodes[e],e),!1===n)break;this.indexes[i]+=1}return delete this.indexes[i],n}every(t){return this.nodes.every(t)}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}getProxyProcessor(){return{get(t,e){return"proxyOf"===e?t:t[e]?"each"===e||"string"===typeof e&&e.startsWith("walk")?(...n)=>t[e](...n.map((t=>"function"===typeof t?(e,n)=>t(e.toProxy(),n):t))):"every"===e||"some"===e?n=>t[e](((t,...e)=>n(t.toProxy(),...e))):"root"===e?()=>t.root().toProxy():"nodes"===e?t.nodes.map((t=>t.toProxy())):"first"===e||"last"===e?t[e].toProxy():t[e]:t[e]},set(t,e,n){return t[e]===n||(t[e]=n,"name"!==e&&"params"!==e&&"selector"!==e||t.markDirty()),!0}}}index(t){return"number"===typeof t?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,e){let n,i=this.index(t),r=this.normalize(e,this.proxyOf.nodes[i]).reverse();i=this.index(t);for(let o of r)this.proxyOf.nodes.splice(i+1,0,o);for(let o in this.indexes)n=this.indexes[o],i<n&&(this.indexes[o]=n+r.length);return this.markDirty(),this}insertBefore(t,e){let n,i=this.index(t),r=0===i&&"prepend",o=this.normalize(e,this.proxyOf.nodes[i],r).reverse();i=this.index(t);for(let s of o)this.proxyOf.nodes.splice(i,0,s);for(let s in this.indexes)n=this.indexes[s],i<=n&&(this.indexes[s]=n+o.length);return this.markDirty(),this}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(t,e){if("string"===typeof t)t=c(i(t).nodes);else if(Array.isArray(t)){t=t.slice(0);for(let e of t)e.parent&&e.parent.removeChild(e,"ignore")}else if("root"===t.type&&"document"!==this.type){t=t.nodes.slice(0);for(let e of t)e.parent&&e.parent.removeChild(e,"ignore")}else if(t.type)t=[t];else if(t.prop){if("undefined"===typeof t.value)throw new Error("Value field is missed in node creation");"string"!==typeof t.value&&(t.value=String(t.value)),t=[new h(t)]}else if(t.selector)t=[new r(t)];else if(t.name)t=[new o(t)];else{if(!t.text)throw new Error("Unknown node type in node creation");t=[new u(t)]}let n=t.map((t=>(t[a]||g.rebuild(t),t=t.proxyOf,t.parent&&t.parent.removeChild(t),t[l]&&p(t),"undefined"===typeof t.raws.before&&e&&"undefined"!==typeof e.raws.before&&(t.raws.before=e.raws.before.replace(/\S/g,"")),t.parent=this.proxyOf,t)));return n}prepend(...t){t=t.reverse();for(let e of t){let t=this.normalize(e,this.first,"prepend").reverse();for(let e of t)this.proxyOf.nodes.unshift(e);for(let e in this.indexes)this.indexes[e]=this.indexes[e]+t.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){let e;t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);for(let n in this.indexes)e=this.indexes[n],e>=t&&(this.indexes[n]=e-1);return this.markDirty(),this}replaceValues(t,e,n){return n||(n=e,e={}),this.walkDecls((i=>{e.props&&!e.props.includes(i.prop)||e.fast&&!i.value.includes(e.fast)||(i.value=i.value.replace(t,n))})),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each(((e,n)=>{let i;try{i=t(e,n)}catch(r){throw e.addToError(r)}return!1!==i&&e.walk&&(i=e.walk(t)),i}))}walkAtRules(t,e){return e?t instanceof RegExp?this.walk(((n,i)=>{if("atrule"===n.type&&t.test(n.name))return e(n,i)})):this.walk(((n,i)=>{if("atrule"===n.type&&n.name===t)return e(n,i)})):(e=t,this.walk(((t,n)=>{if("atrule"===t.type)return e(t,n)})))}walkComments(t){return this.walk(((e,n)=>{if("comment"===e.type)return t(e,n)}))}walkDecls(t,e){return e?t instanceof RegExp?this.walk(((n,i)=>{if("decl"===n.type&&t.test(n.prop))return e(n,i)})):this.walk(((n,i)=>{if("decl"===n.type&&n.prop===t)return e(n,i)})):(e=t,this.walk(((t,n)=>{if("decl"===t.type)return e(t,n)})))}walkRules(t,e){return e?t instanceof RegExp?this.walk(((n,i)=>{if("rule"===n.type&&t.test(n.selector))return e(n,i)})):this.walk(((n,i)=>{if("rule"===n.type&&n.selector===t)return e(n,i)})):(e=t,this.walk(((t,n)=>{if("rule"===t.type)return e(t,n)})))}}g.registerParse=t=>{i=t},g.registerRule=t=>{r=t},g.registerAtRule=t=>{o=t},g.registerRoot=t=>{s=t},t.exports=g,g.default=g,g.rebuild=t=>{"atrule"===t.type?Object.setPrototypeOf(t,o.prototype):"rule"===t.type?Object.setPrototypeOf(t,r.prototype):"decl"===t.type?Object.setPrototypeOf(t,h.prototype):"comment"===t.type?Object.setPrototypeOf(t,u.prototype):"root"===t.type&&Object.setPrototypeOf(t,s.prototype),t[a]=!0,t.nodes&&t.nodes.forEach((t=>{g.rebuild(t)}))}},67792:function(t,e,n){"use strict";let i=n(52838),r=n(75347);class o extends Error{constructor(t,e,n,i,r,s){super(t),this.name="CssSyntaxError",this.reason=t,r&&(this.file=r),i&&(this.source=i),s&&(this.plugin=s),"undefined"!==typeof e&&"undefined"!==typeof n&&("number"===typeof e?(this.line=e,this.column=n):(this.line=e.line,this.column=e.column,this.endLine=n.line,this.endColumn=n.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,o)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>","undefined"!==typeof this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(t){if(!this.source)return"";let e=this.source;null==t&&(t=i.isColorSupported),r&&t&&(e=r(e));let n,o,s=e.split(/\r?\n/),l=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),h=String(a).length;if(t){let{bold:t,gray:e,red:r}=i.createColors(!0);n=e=>t(r(e)),o=t=>e(t)}else n=o=t=>t;return s.slice(l,a).map(((t,e)=>{let i=l+1+e,r=" "+(" "+i).slice(-h)+" | ";if(i===this.line){let e=o(r.replace(/\d/g," "))+t.slice(0,this.column-1).replace(/[^\t]/g," ");return n(">")+o(r)+t+"\n "+e+n("^")}return" "+o(r)+t})).join("\n")}toString(){let t=this.showSourceCode();return t&&(t="\n\n"+t+"\n"),this.name+": "+this.message+t}}t.exports=o,o.default=o},25914:function(t,e,n){"use strict";let i=n(20832);class r extends i{constructor(t){t&&"undefined"!==typeof t.value&&"string"!==typeof t.value&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}}t.exports=r,r.default=r},23645:function(t,e,n){"use strict";let i,r,o=n(20311);class s extends o{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){let e=new i(new r,this,t);return e.stringify()}}s.registerLazyResult=t=>{i=t},s.registerProcessor=t=>{r=t},t.exports=s,s.default=s},27739:function(t,e,n){"use strict";n(57658);let i=n(25914),r=n(75146),o=n(3909),s=n(28329),l=n(83399),a=n(16227),h=n(73896);function u(t,e){if(Array.isArray(t))return t.map((t=>u(t)));let{inputs:n,...d}=t;if(n){e=[];for(let t of n){let n={...t,__proto__:l.prototype};n.map&&(n.map={...n.map,__proto__:r.prototype}),e.push(n)}}if(d.nodes&&(d.nodes=t.nodes.map((t=>u(t,e)))),d.source){let{inputId:t,...n}=d.source;d.source=n,null!=t&&(d.source.input=e[t])}if("root"===d.type)return new a(d);if("decl"===d.type)return new i(d);if("rule"===d.type)return new h(d);if("comment"===d.type)return new o(d);if("atrule"===d.type)return new s(d);throw new Error("Unknown node type: "+t.type)}t.exports=u,u.default=u},83399:function(t,e,n){"use strict";n(46229),n(17330),n(62062);let{SourceMapConsumer:i,SourceMapGenerator:r}=n(59905),{fileURLToPath:o,pathToFileURL:s}=n(64604),{isAbsolute:l,resolve:a}=n(34017),{nanoid:h}=n(62961),u=n(75347),d=n(67792),c=n(75146),p=Symbol("fromOffsetCache"),g=Boolean(i&&r),m=Boolean(a&&l);class x{constructor(t,e={}){if(null===t||"undefined"===typeof t||"object"===typeof t&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.toString(),"\ufeff"===this.css[0]||""===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,e.from&&(!m||/^\w+:\/\//.test(e.from)||l(e.from)?this.file=e.from:this.file=a(e.from)),m&&g){let t=new c(this.css,e);if(t.text){this.map=t;let e=t.consumer().file;!this.file&&e&&(this.file=this.mapResolve(e))}}this.file||(this.id="<input css "+h(6)+">"),this.map&&(this.map.file=this.from)}error(t,e,n,i={}){let r,o,l;if(e&&"object"===typeof e){let t=e,i=n;if("number"===typeof t.offset){let i=this.fromOffset(t.offset);e=i.line,n=i.col}else e=t.line,n=t.column;if("number"===typeof i.offset){let t=this.fromOffset(i.offset);o=t.line,l=t.col}else o=i.line,l=i.column}else if(!n){let t=this.fromOffset(e);e=t.line,n=t.col}let a=this.origin(e,n,o,l);return r=a?new d(t,void 0===a.endLine?a.line:{column:a.column,line:a.line},void 0===a.endLine?a.column:{column:a.endColumn,line:a.endLine},a.source,a.file,i.plugin):new d(t,void 0===o?e:{column:n,line:e},void 0===o?n:{column:l,line:o},this.css,this.file,i.plugin),r.input={column:n,endColumn:l,endLine:o,line:e,source:this.css},this.file&&(s&&(r.input.url=s(this.file).toString()),r.input.file=this.file),r}get from(){return this.file||this.id}fromOffset(t){let e,n;if(this[p])n=this[p];else{let t=this.css.split("\n");n=new Array(t.length);let e=0;for(let i=0,r=t.length;i<r;i++)n[i]=e,e+=t[i].length+1;this[p]=n}e=n[n.length-1];let i=0;if(t>=e)i=n.length-1;else{let e,r=n.length-2;while(i<r)if(e=i+(r-i>>1),t<n[e])r=e-1;else{if(!(t>=n[e+1])){i=e;break}i=e+1}}return{col:t-n[i]+1,line:i+1}}mapResolve(t){return/^\w+:\/\//.test(t)?t:a(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,e,n,i){if(!this.map)return!1;let r,a,h=this.map.consumer(),u=h.originalPositionFor({column:e,line:t});if(!u.source)return!1;"number"===typeof n&&(r=h.originalPositionFor({column:i,line:n})),a=l(u.source)?s(u.source):new URL(u.source,this.map.consumer().sourceRoot||s(this.map.mapFile));let d={column:u.column,endColumn:r&&r.column,endLine:r&&r.line,line:u.line,url:a.toString()};if("file:"===a.protocol){if(!o)throw new Error("file: protocol is not available in this PostCSS build");d.file=o(a)}let c=h.sourceContentFor(u.source);return c&&(d.source=c),d}toJSON(){let t={};for(let e of["hasBOM","css","file","id"])null!=this[e]&&(t[e]=this[e]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}}t.exports=x,x.default=x,u&&u.registerInput&&u.registerInput(x)},94075:function(t,e,n){"use strict";n(57658);let{isClean:i,my:r}=n(3190),o=n(74889),s=n(10529),l=n(20311),a=n(23645),h=(n(81686),n(18350)),u=n(48402),d=n(16227);const c={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},p={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},g={Once:!0,postcssPlugin:!0,prepare:!0},m=0;function x(t){return"object"===typeof t&&"function"===typeof t.then}function y(t){let e=!1,n=c[t.type];return"decl"===t.type?e=t.prop.toLowerCase():"atrule"===t.type&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,m,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,m,n+"Exit"]:[n,n+"Exit"]}function f(t){let e;return e="document"===t.type?["Document",m,"DocumentExit"]:"root"===t.type?["Root",m,"RootExit"]:y(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function A(t){return t[i]=!1,t.nodes&&t.nodes.forEach((t=>A(t))),t}let C={};class v{constructor(t,e,n){let i;if(this.stringified=!1,this.processed=!1,"object"!==typeof e||null===e||"root"!==e.type&&"document"!==e.type)if(e instanceof v||e instanceof h)i=A(e.root),e.map&&("undefined"===typeof n.map&&(n.map={}),n.map.inline||(n.map.inline=!1),n.map.prev=e.map);else{let t=u;n.syntax&&(t=n.syntax.parse),n.parser&&(t=n.parser),t.parse&&(t=t.parse);try{i=t(e,n)}catch(o){this.processed=!0,this.error=o}i&&!i[r]&&l.rebuild(i)}else i=A(e);this.result=new h(t,i,n),this.helpers={...C,postcss:C,result:this.result},this.plugins=this.processor.plugins.map((t=>"object"===typeof t&&t.prepare?{...t,...t.prepare(this.result)}:t))}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(t){return this.async().catch(t)}get content(){return this.stringify().content}get css(){return this.stringify().css}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,e){let n=this.result.lastPlugin;try{e&&e.addToError(t),this.error=t,"CssSyntaxError"!==t.name||t.plugin?n.postcssVersion:(t.plugin=n.postcssPlugin,t.setMessage())}catch(i){console&&console.error&&console.error(i)}return t}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}prepareVisitors(){this.listeners={};let t=(t,e,n)=>{this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push([t,n])};for(let e of this.plugins)if("object"===typeof e)for(let n in e){if(!p[n]&&/^[A-Z]/.test(n))throw new Error(`Unknown event ${n} in ${e.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!g[n])if("object"===typeof e[n])for(let i in e[n])t(e,"*"===i?n:n+"-"+i.toLowerCase(),e[n][i]);else"function"===typeof e[n]&&t(e,n,e[n])}this.hasListener=Object.keys(this.listeners).length>0}get processor(){return this.result.processor}get root(){return this.sync().root}async runAsync(){this.plugin=0;for(let n=0;n<this.plugins.length;n++){let e=this.plugins[n],i=this.runOnRoot(e);if(x(i))try{await i}catch(t){throw this.handleError(t)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;while(!t[i]){t[i]=!0;let n=[f(t)];while(n.length>0){let t=this.visitTick(n);if(x(t))try{await t}catch(e){let t=n[n.length-1].node;throw this.handleError(e,t)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if("document"===t.type){let e=t.nodes.map((t=>i(t,this.helpers)));await Promise.all(e)}else await i(t,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}runOnRoot(t){this.result.lastPlugin=t;try{if("object"===typeof t&&t.Once){if("document"===this.result.root.type){let e=this.result.root.nodes.map((e=>t.Once(e,this.helpers)));return x(e[0])?Promise.all(e):e}return t.Once(this.result.root,this.helpers)}if("function"===typeof t)return t(this.result.root,this.result)}catch(e){throw this.handleError(e)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,e=s;t.syntax&&(e=t.syntax.stringify),t.stringifier&&(e=t.stringifier),e.stringify&&(e=e.stringify);let n=new o(e,this.result.root,this.result.opts),i=n.generate();return this.result.css=i[0],this.result.map=i[1],this.result}get[Symbol.toStringTag](){return"LazyResult"}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let t of this.plugins){let e=this.runOnRoot(t);if(x(e))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;while(!t[i])t[i]=!0,this.walkSync(t);if(this.listeners.OnceExit)if("document"===t.type)for(let e of t.nodes)this.visitSync(this.listeners.OnceExit,e);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,e){return this.async().then(t,e)}toString(){return this.css}visitSync(t,e){for(let[i,r]of t){let t;this.result.lastPlugin=i;try{t=r(e,this.helpers)}catch(n){throw this.handleError(n,e.proxyOf)}if("root"!==e.type&&"document"!==e.type&&!e.parent)return!0;if(x(t))throw this.getAsyncError()}}visitTick(t){let e=t[t.length-1],{node:n,visitors:r}=e;if("root"!==n.type&&"document"!==n.type&&!n.parent)return void t.pop();if(r.length>0&&e.visitorIndex<r.length){let[t,i]=r[e.visitorIndex];e.visitorIndex+=1,e.visitorIndex===r.length&&(e.visitors=[],e.visitorIndex=0),this.result.lastPlugin=t;try{return i(n.toProxy(),this.helpers)}catch(s){throw this.handleError(s,n)}}if(0!==e.iterator){let r,o=e.iterator;while(r=n.nodes[n.indexes[o]])if(n.indexes[o]+=1,!r[i])return r[i]=!0,void t.push(f(r));e.iterator=0,delete n.indexes[o]}let o=e.events;while(e.eventIndex<o.length){let t=o[e.eventIndex];if(e.eventIndex+=1,t===m)return void(n.nodes&&n.nodes.length&&(n[i]=!0,e.iterator=n.getIterator()));if(this.listeners[t])return void(e.visitors=this.listeners[t])}t.pop()}walkSync(t){t[i]=!0;let e=y(t);for(let n of e)if(n===m)t.nodes&&t.each((t=>{t[i]||this.walkSync(t)}));else{let e=this.listeners[n];if(e&&this.visitSync(e,t.toProxy()))return}}warnings(){return this.sync().warnings()}}v.registerPostcss=t=>{C=t},t.exports=v,v.default=v,d.registerLazyResult(v),a.registerLazyResult(v)},50150:function(t,e,n){"use strict";n(57658);let i={comma(t){return i.split(t,[","],!0)},space(t){let e=[" ","\n","\t"];return i.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,l=!1,a="",h=!1;for(let u of t)h?h=!1:"\\"===u?h=!0:l?u===a&&(l=!1):'"'===u||"'"===u?(l=!0,a=u):"("===u?s+=1:")"===u?s>0&&(s-=1):0===s&&e.includes(u)&&(o=!0),o?(""!==r&&i.push(r.trim()),r="",o=!1):r+=u;return(n||""!==r)&&i.push(r.trim()),i}};t.exports=i,i.default=i},74889:function(t,e,n){"use strict";n(57658),n(82801);let{SourceMapConsumer:i,SourceMapGenerator:r}=n(59905),{dirname:o,relative:s,resolve:l,sep:a}=n(34017),{pathToFileURL:h}=n(64604),u=n(83399),d=Boolean(i&&r),c=Boolean(o&&l&&s&&a);class p{constructor(t,e,n,i){this.stringify=t,this.mapOpts=n.map||{},this.root=e,this.opts=n,this.css=i,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute}addAnnotation(){let t;t=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"===typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"===typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let e="\n";this.css.includes("\r\n")&&(e="\r\n"),this.css+=e+"/*# sourceMappingURL="+t+" */"}applyPrevMaps(){for(let t of this.previous()){let e,n=this.toUrl(this.path(t.file)),r=t.root||o(t.file);!1===this.mapOpts.sourcesContent?(e=new i(t.text),e.sourcesContent&&(e.sourcesContent=e.sourcesContent.map((()=>null)))):e=t.consumer(),this.map.applySourceMap(e,n,this.toUrl(this.path(r)))}}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let t;for(let e=this.root.nodes.length-1;e>=0;e--)t=this.root.nodes[e],"comment"===t.type&&0===t.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(e)}else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),c&&d&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,(e=>{t+=e})),[t]}}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=r.fromSourceMap(t)}else this.map=new r({file:this.outputFile()}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new r({file:this.outputFile()});let t,e,n=1,i=1,o="<no source>",s={generated:{column:0,line:0},original:{column:0,line:0},source:""};this.stringify(this.root,((r,l,a)=>{if(this.css+=r,l&&"end"!==a&&(s.generated.line=n,s.generated.column=i-1,l.source&&l.source.start?(s.source=this.sourcePath(l),s.original.line=l.source.start.line,s.original.column=l.source.start.column-1,this.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,this.map.addMapping(s))),t=r.match(/\n/g),t?(n+=t.length,e=r.lastIndexOf("\n"),i=r.length-e):i+=r.length,l&&"start"!==a){let t=l.parent||{raws:{}},e="decl"===l.type||"atrule"===l.type&&!l.nodes;e&&l===t.last&&!t.raws.semicolon||(l.source&&l.source.end?(s.source=this.sourcePath(l),s.original.line=l.source.end.line,s.original.column=l.source.end.column-1,s.generated.line=n,s.generated.column=i-2,this.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,s.generated.line=n,s.generated.column=i-1,this.map.addMapping(s)))}}))}isAnnotation(){return!!this.isInline()||("undefined"!==typeof this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((t=>t.annotation)))}isInline(){if("undefined"!==typeof this.mapOpts.inline)return this.mapOpts.inline;let t=this.mapOpts.annotation;return("undefined"===typeof t||!0===t)&&(!this.previous().length||this.previous().some((t=>t.inline)))}isMap(){return"undefined"!==typeof this.opts.map?!!this.opts.map:this.previous().length>0}isSourcesContent(){return"undefined"!==typeof this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((t=>t.withContent()))}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(t){if(0===t.indexOf("<"))return t;if(/^\w+:\/\//.test(t))return t;if(this.mapOpts.absolute)return t;let e=this.opts.to?o(this.opts.to):".";return"string"===typeof this.mapOpts.annotation&&(e=o(l(e,this.mapOpts.annotation))),t=s(e,t),t}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((t=>{if(t.source&&t.source.input.map){let e=t.source.input.map;this.previousMaps.includes(e)||this.previousMaps.push(e)}}));else{let t=new u(this.css,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}setSourcesContent(){let t={};if(this.root)this.root.walk((e=>{if(e.source){let n=e.source.input.from;if(n&&!t[n]){t[n]=!0;let i=this.usesFileUrls?this.toFileUrl(n):this.toUrl(this.path(n));this.map.setSourceContent(i,e.source.input.css)}}}));else if(this.css){let t=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(t,this.css)}}sourcePath(t){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(t.source.input.from):this.toUrl(this.path(t.source.input.from))}toBase64(t){return Buffer?Buffer.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}toFileUrl(t){if(h)return h(t).toString();throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(t){return"\\"===a&&(t=t.replace(/\\/g,"/")),encodeURI(t).replace(/[#?]/g,encodeURIComponent)}}t.exports=p},99191:function(t,e,n){"use strict";let i=n(74889),r=n(10529),o=(n(81686),n(48402));const s=n(18350);class l{constructor(t,e,n){let o;e=e.toString(),this.stringified=!1,this._processor=t,this._css=e,this._opts=n,this._map=void 0;let l=r;this.result=new s(this._processor,o,this._opts),this.result.css=e;let a=this;Object.defineProperty(this.result,"root",{get(){return a.root}});let h=new i(l,o,this._opts,e);if(h.isMap()){let[t,e]=h.generate();t&&(this.result.css=t),e&&(this.result.map=e)}}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(t){return this.async().catch(t)}get content(){return this.result.css}get css(){return this.result.css}finally(t){return this.async().then(t,t)}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let t,e=o;try{t=e(this._css,this._opts)}catch(n){this.error=n}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}sync(){if(this.error)throw this.error;return this.result}then(t,e){return this.async().then(t,e)}toString(){return this._css}warnings(){return[]}}t.exports=l,l.default=l},20832:function(t,e,n){"use strict";let{isClean:i,my:r}=n(3190),o=n(67792),s=n(15334),l=n(10529);function a(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;if("proxyCache"===i)continue;let r=t[i],o=typeof r;"parent"===i&&"object"===o?e&&(n[i]=e):"source"===i?n[i]=r:Array.isArray(r)?n[i]=r.map((t=>a(t,n))):("object"===o&&null!==r&&(r=a(r)),n[i]=r)}return n}class h{constructor(t={}){this.raws={},this[i]=!1,this[r]=!0;for(let e in t)if("nodes"===e){this.nodes=[];for(let n of t[e])"function"===typeof n.clone?this.append(n.clone()):this.append(n)}else this[e]=t[e]}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\n\s{4}at /.test(t.stack)){let e=this.source;t.stack=t.stack.replace(/\n\s{4}at /,`$&${e.input.from}:${e.start.line}:${e.start.column}$&`)}return t}after(t){return this.parent.insertAfter(this,t),this}assign(t={}){for(let e in t)this[e]=t[e];return this}before(t){return this.parent.insertBefore(this,t),this}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}clone(t={}){let e=a(this);for(let n in t)e[n]=t[n];return e}cloneAfter(t={}){let e=this.clone(t);return this.parent.insertAfter(this,e),e}cloneBefore(t={}){let e=this.clone(t);return this.parent.insertBefore(this,e),e}error(t,e={}){if(this.source){let{end:n,start:i}=this.rangeBy(e);return this.source.input.error(t,{column:i.column,line:i.line},{column:n.column,line:n.line},e)}return new o(t)}getProxyProcessor(){return{get(t,e){return"proxyOf"===e?t:"root"===e?()=>t.root().toProxy():t[e]},set(t,e,n){return t[e]===n||(t[e]=n,"prop"!==e&&"value"!==e&&"name"!==e&&"params"!==e&&"important"!==e&&"text"!==e||t.markDirty()),!0}}}markDirty(){if(this[i]){this[i]=!1;let t=this;while(t=t.parent)t[i]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t,e){let n=this.source.start;if(t.index)n=this.positionInside(t.index,e);else if(t.word){e=this.toString();let i=e.indexOf(t.word);-1!==i&&(n=this.positionInside(i,e))}return n}positionInside(t,e){let n=e||this.toString(),i=this.source.start.column,r=this.source.start.line;for(let o=0;o<t;o++)"\n"===n[o]?(i=1,r+=1):i+=1;return{column:i,line:r}}prev(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t-1]}get proxyOf(){return this}rangeBy(t){let e={column:this.source.start.column,line:this.source.start.line},n=this.source.end?{column:this.source.end.column+1,line:this.source.end.line}:{column:e.column+1,line:e.line};if(t.word){let i=this.toString(),r=i.indexOf(t.word);-1!==r&&(e=this.positionInside(r,i),n=this.positionInside(r+t.word.length,i))}else t.start?e={column:t.start.column,line:t.start.line}:t.index&&(e=this.positionInside(t.index)),t.end?n={column:t.end.column,line:t.end.line}:t.endIndex?n=this.positionInside(t.endIndex):t.index&&(n=this.positionInside(t.index+1));return(n.line<e.line||n.line===e.line&&n.column<=e.column)&&(n={column:e.column+1,line:e.line}),{end:n,start:e}}raw(t,e){let n=new s;return n.raw(this,t,e)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...t){if(this.parent){let e=this,n=!1;for(let i of t)i===this?n=!0:n?(this.parent.insertAfter(e,i),e=i):this.parent.insertBefore(e,i);n||this.remove()}return this}root(){let t=this;while(t.parent&&"document"!==t.parent.type)t=t.parent;return t}toJSON(t,e){let n={},i=null==e;e=e||new Map;let r=0;for(let o in this){if(!Object.prototype.hasOwnProperty.call(this,o))continue;if("parent"===o||"proxyCache"===o)continue;let t=this[o];if(Array.isArray(t))n[o]=t.map((t=>"object"===typeof t&&t.toJSON?t.toJSON(null,e):t));else if("object"===typeof t&&t.toJSON)n[o]=t.toJSON(null,e);else if("source"===o){let i=e.get(t.input);null==i&&(i=r,e.set(t.input,r),r++),n[o]={end:t.end,inputId:i,start:t.start}}else n[o]=t}return i&&(n.inputs=[...e.keys()].map((t=>t.toJSON()))),n}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=l){t.stringify&&(t=t.stringify);let e="";return t(this,(t=>{e+=t})),e}warn(t,e,n){let i={node:this};for(let r in n)i[r]=n[r];return t.warn(e,i)}}t.exports=h,h.default=h},48402:function(t,e,n){"use strict";let i=n(20311),r=n(26342),o=n(83399);function s(t,e){let n=new o(t,e),i=new r(n);try{i.parse()}catch(s){throw s}return i.root}t.exports=s,s.default=s,i.registerParse(s)},26342:function(t,e,n){"use strict";n(57658);let i=n(25914),r=n(73610),o=n(3909),s=n(28329),l=n(16227),a=n(73896);const h={empty:!0,space:!0};function u(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}class d{constructor(t){this.input=t,this.root=new l,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:t,start:{column:1,line:1,offset:0}}}atrule(t){let e,n,i,r=new s;r.name=t[1].slice(1),""===r.name&&this.unnamedAtrule(r,t),this.init(r,t[2]);let o=!1,l=!1,a=[],h=[];while(!this.tokenizer.endOfFile()){if(t=this.tokenizer.nextToken(),e=t[0],"("===e||"["===e?h.push("("===e?")":"]"):"{"===e&&h.length>0?h.push("}"):e===h[h.length-1]&&h.pop(),0===h.length){if(";"===e){r.source.end=this.getPosition(t[2]),this.semicolon=!0;break}if("{"===e){l=!0;break}if("}"===e){if(a.length>0){i=a.length-1,n=a[i];while(n&&"space"===n[0])n=a[--i];n&&(r.source.end=this.getPosition(n[3]||n[2]))}this.end(t);break}a.push(t)}else a.push(t);if(this.tokenizer.endOfFile()){o=!0;break}}r.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(r.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(r,"params",a),o&&(t=a[a.length-1],r.source.end=this.getPosition(t[3]||t[2]),this.spaces=r.raws.between,r.raws.between="")):(r.raws.afterName="",r.params=""),l&&(r.nodes=[],this.current=r)}checkMissedSemicolon(t){let e=this.colon(t);if(!1===e)return;let n,i=0;for(let r=e-1;r>=0;r--)if(n=t[r],"space"!==n[0]&&(i+=1,2===i))break;throw this.input.error("Missed semicolon","word"===n[0]?n[3]+1:n[2])}colon(t){let e,n,i,r=0;for(let[o,s]of t.entries()){if(e=s,n=e[0],"("===n&&(r+=1),")"===n&&(r-=1),0===r&&":"===n){if(i){if("word"===i[0]&&"progid"===i[1])continue;return o}this.doubleColon(e)}i=e}return!1}comment(t){let e=new o;this.init(e,t[2]),e.source.end=this.getPosition(t[3]||t[2]);let n=t[1].slice(2,-2);if(/^\s*$/.test(n))e.text="",e.raws.left=n,e.raws.right="";else{let t=n.match(/^(\s*)([^]*\S)(\s*)$/);e.text=t[2],e.raws.left=t[1],e.raws.right=t[3]}}createTokenizer(){this.tokenizer=r(this.input)}decl(t,e){let n=new i;this.init(n,t[0][2]);let r,o=t[t.length-1];";"===o[0]&&(this.semicolon=!0,t.pop()),n.source.end=this.getPosition(o[3]||o[2]||u(t));while("word"!==t[0][0])1===t.length&&this.unknownWord(t),n.raws.before+=t.shift()[1];n.source.start=this.getPosition(t[0][2]),n.prop="";while(t.length){let e=t[0][0];if(":"===e||"space"===e||"comment"===e)break;n.prop+=t.shift()[1]}n.raws.between="";while(t.length){if(r=t.shift(),":"===r[0]){n.raws.between+=r[1];break}"word"===r[0]&&/\w/.test(r[1])&&this.unknownWord([r]),n.raws.between+=r[1]}"_"!==n.prop[0]&&"*"!==n.prop[0]||(n.raws.before+=n.prop[0],n.prop=n.prop.slice(1));let s,l=[];while(t.length){if(s=t[0][0],"space"!==s&&"comment"!==s)break;l.push(t.shift())}this.precheckMissedSemicolon(t);for(let i=t.length-1;i>=0;i--){if(r=t[i],"!important"===r[1].toLowerCase()){n.important=!0;let e=this.stringFrom(t,i);e=this.spacesFromEnd(t)+e," !important"!==e&&(n.raws.important=e);break}if("important"===r[1].toLowerCase()){let e=t.slice(0),r="";for(let t=i;t>0;t--){let n=e[t][0];if(0===r.trim().indexOf("!")&&"space"!==n)break;r=e.pop()[1]+r}0===r.trim().indexOf("!")&&(n.important=!0,n.raws.important=r,t=e)}if("space"!==r[0]&&"comment"!==r[0])break}let a=t.some((t=>"space"!==t[0]&&"comment"!==t[0]));a&&(n.raws.between+=l.map((t=>t[1])).join(""),l=[]),this.raw(n,"value",l.concat(t),e),n.value.includes(":")&&!e&&this.checkMissedSemicolon(t)}doubleColon(t){throw this.input.error("Double colon",{offset:t[2]},{offset:t[2]+t[1].length})}emptyRule(t){let e=new a;this.init(e,t[2]),e.selector="",e.raws.between="",this.current=e}end(t){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(t[2]),this.current=this.current.parent):this.unexpectedClose(t)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(t){if(this.spaces+=t[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(t){let e=this.input.fromOffset(t);return{column:e.col,line:e.line,offset:t}}init(t,e){this.current.push(t),t.source={input:this.input,start:this.getPosition(e)},t.raws.before=this.spaces,this.spaces="","comment"!==t.type&&(this.semicolon=!1)}other(t){let e=!1,n=null,i=!1,r=null,o=[],s=t[1].startsWith("--"),l=[],a=t;while(a){if(n=a[0],l.push(a),"("===n||"["===n)r||(r=a),o.push("("===n?")":"]");else if(s&&i&&"{"===n)r||(r=a),o.push("}");else if(0===o.length){if(";"===n){if(i)return void this.decl(l,s);break}if("{"===n)return void this.rule(l);if("}"===n){this.tokenizer.back(l.pop()),e=!0;break}":"===n&&(i=!0)}else n===o[o.length-1]&&(o.pop(),0===o.length&&(r=null));a=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(e=!0),o.length>0&&this.unclosedBracket(r),e&&i){if(!s)while(l.length){if(a=l[l.length-1][0],"space"!==a&&"comment"!==a)break;this.tokenizer.back(l.pop())}this.decl(l,s)}else this.unknownWord(l)}parse(){let t;while(!this.tokenizer.endOfFile())switch(t=this.tokenizer.nextToken(),t[0]){case"space":this.spaces+=t[1];break;case";":this.freeSemicolon(t);break;case"}":this.end(t);break;case"comment":this.comment(t);break;case"at-word":this.atrule(t);break;case"{":this.emptyRule(t);break;default:this.other(t);break}this.endFile()}precheckMissedSemicolon(){}raw(t,e,n,i){let r,o,s,l,a=n.length,u="",d=!0;for(let c=0;c<a;c+=1)r=n[c],o=r[0],"space"!==o||c!==a-1||i?"comment"===o?(l=n[c-1]?n[c-1][0]:"empty",s=n[c+1]?n[c+1][0]:"empty",h[l]||h[s]||","===u.slice(-1)?d=!1:u+=r[1]):u+=r[1]:d=!1;if(!d){let i=n.reduce(((t,e)=>t+e[1]),"");t.raws[e]={raw:i,value:u}}t[e]=u}rule(t){t.pop();let e=new a;this.init(e,t[0][2]),e.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(e,"selector",t),this.current=e}spacesAndCommentsFromEnd(t){let e,n="";while(t.length){if(e=t[t.length-1][0],"space"!==e&&"comment"!==e)break;n=t.pop()[1]+n}return n}spacesAndCommentsFromStart(t){let e,n="";while(t.length){if(e=t[0][0],"space"!==e&&"comment"!==e)break;n+=t.shift()[1]}return n}spacesFromEnd(t){let e,n="";while(t.length){if(e=t[t.length-1][0],"space"!==e)break;n=t.pop()[1]+n}return n}stringFrom(t,e){let n="";for(let i=e;i<t.length;i++)n+=t[i][1];return t.splice(e,t.length-e),n}unclosedBlock(){let t=this.current.source.start;throw this.input.error("Unclosed block",t.line,t.column)}unclosedBracket(t){throw this.input.error("Unclosed bracket",{offset:t[2]},{offset:t[2]+1})}unexpectedClose(t){throw this.input.error("Unexpected }",{offset:t[2]},{offset:t[2]+1})}unknownWord(t){throw this.input.error("Unknown word",{offset:t[0][2]},{offset:t[0][2]+t[0][1].length})}unnamedAtrule(t,e){throw this.input.error("At-rule without name",{offset:e[2]},{offset:e[2]+e[1].length})}}t.exports=d},69643:function(t,e,n){"use strict";let i=n(67792),r=n(25914),o=n(94075),s=n(20311),l=n(3466),a=n(10529),h=n(27739),u=n(23645),d=n(6181),c=n(3909),p=n(28329),g=n(18350),m=n(83399),x=n(48402),y=n(50150),f=n(73896),A=n(16227),C=n(20832);function v(...t){return 1===t.length&&Array.isArray(t[0])&&(t=t[0]),new l(t)}v.plugin=function(t,e){let n,i=!1;function r(...n){console&&console.warn&&!i&&(i=!0,console.warn(t+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),{NODE_ENV:"production",VUE_APP_BASE_URL:"",VUE_APP_TITLE:"haoque",BASE_URL:"/"}.LANG&&{NODE_ENV:"production",VUE_APP_BASE_URL:"",VUE_APP_TITLE:"haoque",BASE_URL:"/"}.LANG.startsWith("cn")&&console.warn(t+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"));let r=e(...n);return r.postcssPlugin=t,r.postcssVersion=(new l).version,r}return Object.defineProperty(r,"postcss",{get(){return n||(n=r()),n}}),r.process=function(t,e,n){return v([r(n)]).process(t,e)},r},v.stringify=a,v.parse=x,v.fromJSON=h,v.list=y,v.comment=t=>new c(t),v.atRule=t=>new p(t),v.decl=t=>new r(t),v.rule=t=>new f(t),v.root=t=>new A(t),v.document=t=>new u(t),v.CssSyntaxError=i,v.Declaration=r,v.Container=s,v.Processor=l,v.Document=u,v.Comment=c,v.Warning=d,v.AtRule=p,v.Result=g,v.Input=m,v.Rule=f,v.Root=A,v.Node=C,o.registerPostcss(v),t.exports=v,v.default=v},75146:function(t,e,n){"use strict";n(82801);let{SourceMapConsumer:i,SourceMapGenerator:r}=n(59905),{existsSync:o,readFileSync:s}=n(31777),{dirname:l,join:a}=n(34017);function h(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}class u{constructor(t,e){if(!1===e.map)return;this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let n=e.map?e.map.prev:void 0,i=this.loadMap(e.from,n);!this.mapFile&&e.from&&(this.mapFile=e.from),this.mapFile&&(this.root=l(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new i(this.text)),this.consumerCache}decodeInline(t){let e=/^data:application\/json;charset=utf-?8;base64,/,n=/^data:application\/json;base64,/,i=/^data:application\/json;charset=utf-?8,/,r=/^data:application\/json,/;if(i.test(t)||r.test(t))return decodeURIComponent(t.substr(RegExp.lastMatch.length));if(e.test(t)||n.test(t))return h(t.substr(RegExp.lastMatch.length));let o=t.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+o)}getAnnotationURL(t){return t.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(t){return"object"===typeof t&&("string"===typeof t.mappings||"string"===typeof t._mappings||Array.isArray(t.sections))}loadAnnotation(t){let e=t.match(/\/\*\s*# sourceMappingURL=/gm);if(!e)return;let n=t.lastIndexOf(e.pop()),i=t.indexOf("*/",n);n>-1&&i>-1&&(this.annotation=this.getAnnotationURL(t.substring(n,i)))}loadFile(t){if(this.root=l(t),o(t))return this.mapFile=t,s(t,"utf-8").toString().trim()}loadMap(t,e){if(!1===e)return!1;if(e){if("string"===typeof e)return e;if("function"!==typeof e){if(e instanceof i)return r.fromSourceMap(e).toString();if(e instanceof r)return e.toString();if(this.isMap(e))return JSON.stringify(e);throw new Error("Unsupported previous source map format: "+e.toString())}{let n=e(t);if(n){let t=this.loadFile(n);if(!t)throw new Error("Unable to load previous source map: "+n.toString());return t}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let e=this.annotation;return t&&(e=a(l(t),e)),this.loadFile(e)}}}startWith(t,e){return!!t&&t.substr(0,e.length)===e}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}}t.exports=u,u.default=u},3466:function(t,e,n){"use strict";n(57658);let i=n(99191),r=n(94075),o=n(23645),s=n(16227);class l{constructor(t=[]){this.version="8.4.28",this.plugins=this.normalize(t)}normalize(t){let e=[];for(let n of t)if(!0===n.postcss?n=n():n.postcss&&(n=n.postcss),"object"===typeof n&&Array.isArray(n.plugins))e=e.concat(n.plugins);else if("object"===typeof n&&n.postcssPlugin)e.push(n);else if("function"===typeof n)e.push(n);else{if("object"!==typeof n||!n.parse&&!n.stringify)throw new Error(n+" is not a PostCSS plugin")}return e}process(t,e={}){return 0===this.plugins.length&&"undefined"===typeof e.parser&&"undefined"===typeof e.stringifier&&"undefined"===typeof e.syntax?new i(this,t,e):new r(this,t,e)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}}t.exports=l,l.default=l,s.registerProcessor(l),o.registerProcessor(l)},18350:function(t,e,n){"use strict";n(57658);let i=n(6181);class r{constructor(t,e,n){this.processor=t,this.messages=[],this.root=e,this.opts=n,this.css=void 0,this.map=void 0}get content(){return this.css}toString(){return this.css}warn(t,e={}){e.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(e.plugin=this.lastPlugin.postcssPlugin);let n=new i(t,e);return this.messages.push(n),n}warnings(){return this.messages.filter((t=>"warning"===t.type))}}t.exports=r,r.default=r},16227:function(t,e,n){"use strict";let i,r,o=n(20311);class s extends o{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,e,n){let i=super.normalize(t);if(e)if("prepend"===n)this.nodes.length>1?e.raws.before=this.nodes[1].raws.before:delete e.raws.before;else if(this.first!==e)for(let r of i)r.raws.before=e.raws.before;return i}removeChild(t,e){let n=this.index(t);return!e&&0===n&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[n].raws.before),super.removeChild(t)}toResult(t={}){let e=new i(new r,this,t);return e.stringify()}}s.registerLazyResult=t=>{i=t},s.registerProcessor=t=>{r=t},t.exports=s,s.default=s,o.registerRoot(s)},73896:function(t,e,n){"use strict";let i=n(20311),r=n(50150);class o extends i{constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return r.comma(this.selector)}set selectors(t){let e=this.selector?this.selector.match(/,\s*/):null,n=e?e[0]:","+this.raw("between","beforeOpen");this.selector=t.join(n)}}t.exports=o,o.default=o,i.registerRule(o)},15334:function(t){"use strict";const e={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function n(t){return t[0].toUpperCase()+t.slice(1)}class i{constructor(t){this.builder=t}atrule(t,e){let n="@"+t.name,i=t.params?this.rawValue(t,"params"):"";if("undefined"!==typeof t.raws.afterName?n+=t.raws.afterName:i&&(n+=" "),t.nodes)this.block(t,n+i);else{let r=(t.raws.between||"")+(e?";":"");this.builder(n+i+r,t)}}beforeAfter(t,e){let n;n="decl"===t.type?this.raw(t,null,"beforeDecl"):"comment"===t.type?this.raw(t,null,"beforeComment"):"before"===e?this.raw(t,null,"beforeRule"):this.raw(t,null,"beforeClose");let i=t.parent,r=0;while(i&&"root"!==i.type)r+=1,i=i.parent;if(n.includes("\n")){let e=this.raw(t,null,"indent");if(e.length)for(let t=0;t<r;t++)n+=e}return n}block(t,e){let n,i=this.raw(t,"between","beforeOpen");this.builder(e+i+"{",t,"start"),t.nodes&&t.nodes.length?(this.body(t),n=this.raw(t,"after")):n=this.raw(t,"after","emptyBody"),n&&this.builder(n),this.builder("}",t,"end")}body(t){let e=t.nodes.length-1;while(e>0){if("comment"!==t.nodes[e].type)break;e-=1}let n=this.raw(t,"semicolon");for(let i=0;i<t.nodes.length;i++){let r=t.nodes[i],o=this.raw(r,"before");o&&this.builder(o),this.stringify(r,e!==i||n)}}comment(t){let e=this.raw(t,"left","commentLeft"),n=this.raw(t,"right","commentRight");this.builder("/*"+e+t.text+n+"*/",t)}decl(t,e){let n=this.raw(t,"between","colon"),i=t.prop+n+this.rawValue(t,"value");t.important&&(i+=t.raws.important||" !important"),e&&(i+=";"),this.builder(i,t)}document(t){this.body(t)}raw(t,i,r){let o;if(r||(r=i),i&&(o=t.raws[i],"undefined"!==typeof o))return o;let s=t.parent;if("before"===r){if(!s||"root"===s.type&&s.first===t)return"";if(s&&"document"===s.type)return""}if(!s)return e[r];let l=t.root();if(l.rawCache||(l.rawCache={}),"undefined"!==typeof l.rawCache[r])return l.rawCache[r];if("before"===r||"after"===r)return this.beforeAfter(t,r);{let e="raw"+n(r);this[e]?o=this[e](l,t):l.walk((t=>{if(o=t.raws[i],"undefined"!==typeof o)return!1}))}return"undefined"===typeof o&&(o=e[r]),l.rawCache[r]=o,o}rawBeforeClose(t){let e;return t.walk((t=>{if(t.nodes&&t.nodes.length>0&&"undefined"!==typeof t.raws.after)return e=t.raws.after,e.includes("\n")&&(e=e.replace(/[^\n]+$/,"")),!1})),e&&(e=e.replace(/\S/g,"")),e}rawBeforeComment(t,e){let n;return t.walkComments((t=>{if("undefined"!==typeof t.raws.before)return n=t.raws.before,n.includes("\n")&&(n=n.replace(/[^\n]+$/,"")),!1})),"undefined"===typeof n?n=this.raw(e,null,"beforeDecl"):n&&(n=n.replace(/\S/g,"")),n}rawBeforeDecl(t,e){let n;return t.walkDecls((t=>{if("undefined"!==typeof t.raws.before)return n=t.raws.before,n.includes("\n")&&(n=n.replace(/[^\n]+$/,"")),!1})),"undefined"===typeof n?n=this.raw(e,null,"beforeRule"):n&&(n=n.replace(/\S/g,"")),n}rawBeforeOpen(t){let e;return t.walk((t=>{if("decl"!==t.type&&(e=t.raws.between,"undefined"!==typeof e))return!1})),e}rawBeforeRule(t){let e;return t.walk((n=>{if(n.nodes&&(n.parent!==t||t.first!==n)&&"undefined"!==typeof n.raws.before)return e=n.raws.before,e.includes("\n")&&(e=e.replace(/[^\n]+$/,"")),!1})),e&&(e=e.replace(/\S/g,"")),e}rawColon(t){let e;return t.walkDecls((t=>{if("undefined"!==typeof t.raws.between)return e=t.raws.between.replace(/[^\s:]/g,""),!1})),e}rawEmptyBody(t){let e;return t.walk((t=>{if(t.nodes&&0===t.nodes.length&&(e=t.raws.after,"undefined"!==typeof e))return!1})),e}rawIndent(t){if(t.raws.indent)return t.raws.indent;let e;return t.walk((n=>{let i=n.parent;if(i&&i!==t&&i.parent&&i.parent===t&&"undefined"!==typeof n.raws.before){let t=n.raws.before.split("\n");return e=t[t.length-1],e=e.replace(/\S/g,""),!1}})),e}rawSemicolon(t){let e;return t.walk((t=>{if(t.nodes&&t.nodes.length&&"decl"===t.last.type&&(e=t.raws.semicolon,"undefined"!==typeof e))return!1})),e}rawValue(t,e){let n=t[e],i=t.raws[e];return i&&i.value===n?i.raw:n}root(t){this.body(t),t.raws.after&&this.builder(t.raws.after)}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(t.raws.ownSemicolon,t,"end")}stringify(t,e){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,e)}}t.exports=i,i.default=i},10529:function(t,e,n){"use strict";let i=n(15334);function r(t,e){let n=new i(e);n.stringify(t)}t.exports=r,r.default=r},3190:function(t){"use strict";t.exports.isClean=Symbol("isClean"),t.exports.my=Symbol("my")},73610:function(t,e,n){"use strict";n(57658);const i="'".charCodeAt(0),r='"'.charCodeAt(0),o="\\".charCodeAt(0),s="/".charCodeAt(0),l="\n".charCodeAt(0),a=" ".charCodeAt(0),h="\f".charCodeAt(0),u="\t".charCodeAt(0),d="\r".charCodeAt(0),c="[".charCodeAt(0),p="]".charCodeAt(0),g="(".charCodeAt(0),m=")".charCodeAt(0),x="{".charCodeAt(0),y="}".charCodeAt(0),f=";".charCodeAt(0),A="*".charCodeAt(0),C=":".charCodeAt(0),v="@".charCodeAt(0),E=/[\t\n\f\r "#'()/;[\\\]{}]/g,w=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,S=/.[\n"'(/\\]/,b=/[\da-f]/i;t.exports=function(t,e={}){let n,T,L,I,M,R,O,N,D,P,H=t.css.valueOf(),k=e.ignoreErrors,G=H.length,B=0,U=[],V=[];function F(){return B}function z(e){throw t.error("Unclosed "+e,B)}function Y(){return 0===V.length&&B>=G}function W(t){if(V.length)return V.pop();if(B>=G)return;let e=!!t&&t.ignoreUnclosed;switch(n=H.charCodeAt(B),n){case l:case a:case u:case d:case h:T=B;do{T+=1,n=H.charCodeAt(T)}while(n===a||n===l||n===u||n===d||n===h);P=["space",H.slice(B,T)],B=T-1;break;case c:case p:case x:case y:case C:case f:case m:{let t=String.fromCharCode(n);P=[t,t,B];break}case g:if(N=U.length?U.pop()[1]:"",D=H.charCodeAt(B+1),"url"===N&&D!==i&&D!==r&&D!==a&&D!==l&&D!==u&&D!==h&&D!==d){T=B;do{if(R=!1,T=H.indexOf(")",T+1),-1===T){if(k||e){T=B;break}z("bracket")}O=T;while(H.charCodeAt(O-1)===o)O-=1,R=!R}while(R);P=["brackets",H.slice(B,T+1),B,T],B=T}else T=H.indexOf(")",B+1),I=H.slice(B,T+1),-1===T||S.test(I)?P=["(","(",B]:(P=["brackets",I,B,T],B=T);break;case i:case r:L=n===i?"'":'"',T=B;do{if(R=!1,T=H.indexOf(L,T+1),-1===T){if(k||e){T=B+1;break}z("string")}O=T;while(H.charCodeAt(O-1)===o)O-=1,R=!R}while(R);P=["string",H.slice(B,T+1),B,T],B=T;break;case v:E.lastIndex=B+1,E.test(H),T=0===E.lastIndex?H.length-1:E.lastIndex-2,P=["at-word",H.slice(B,T+1),B,T],B=T;break;case o:T=B,M=!0;while(H.charCodeAt(T+1)===o)T+=1,M=!M;if(n=H.charCodeAt(T+1),M&&n!==s&&n!==a&&n!==l&&n!==u&&n!==d&&n!==h&&(T+=1,b.test(H.charAt(T)))){while(b.test(H.charAt(T+1)))T+=1;H.charCodeAt(T+1)===a&&(T+=1)}P=["word",H.slice(B,T+1),B,T],B=T;break;default:n===s&&H.charCodeAt(B+1)===A?(T=H.indexOf("*/",B+2)+1,0===T&&(k||e?T=H.length:z("comment")),P=["comment",H.slice(B,T+1),B,T],B=T):(w.lastIndex=B+1,w.test(H),T=0===w.lastIndex?H.length-1:w.lastIndex-2,P=["word",H.slice(B,T+1),B,T],U.push(P),B=T);break}return B++,P}function j(t){V.push(t)}return{back:j,endOfFile:Y,nextToken:W,position:F}}},81686:function(t){"use strict";let e={};t.exports=function(t){e[t]||(e[t]=!0,"undefined"!==typeof console&&console.warn&&console.warn(t))}},6181:function(t){"use strict";class e{constructor(t,e={}){if(this.type="warning",this.text=t,e.node&&e.node.source){let t=e.node.rangeBy(e);this.line=t.start.line,this.column=t.start.column,this.endLine=t.end.line,this.endColumn=t.end.column}for(let n in e)this[n]=e[n]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}t.exports=e,e.default=e},75347:function(){},31777:function(){},34017:function(){},59905:function(){},64604:function(){},62961:function(t){let e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",n=(t,e=21)=>(n=e)=>{let i="",r=n;while(r--)i+=t[Math.random()*t.length|0];return i},i=(t=21)=>{let n="",i=t;while(i--)n+=e[64*Math.random()|0];return n};t.exports={nanoid:i,customAlphabet:n}}}]);
|
||
//# sourceMappingURL=617.8f7128a4.js.map |