!(function(){var _b=Object.defineProperty,Ub=Object.defineProperties;var Hb=Object.getOwnPropertyDescriptors;var nv=Object.getOwnPropertySymbols;var Ex=Object.prototype.hasOwnProperty,wx=Object.prototype.propertyIsEnumerable;var Qy=Math.pow,bx=(ze,Ee,ue)=>Ee in ze?_b(ze,Ee,{enumerable:!0,configurable:!0,writable:!0,value:ue}):ze[Ee]=ue,ta=(ze,Ee)=>{for(var ue in Ee||(Ee={}))Ex.call(Ee,ue)&&bx(ze,ue,Ee[ue]);if(nv)for(var ue of nv(Ee))wx.call(Ee,ue)&&bx(ze,ue,Ee[ue]);return ze},Pf=(ze,Ee)=>Ub(ze,Hb(Ee));var Cx=(ze,Ee)=>{var ue={};for(var ce in ze)Ex.call(ze,ce)&&Ee.indexOf(ce)<0&&(ue[ce]=ze[ce]);if(ze!=null&&nv)for(var ce of nv(ze))Ee.indexOf(ce)<0&&wx.call(ze,ce)&&(ue[ce]=ze[ce]);return ue};var Jy=(ze,Ee,ue)=>new Promise((ce,Pe)=>{var Re=Te=>{try{We(ue.next(Te))}catch(Ge){Pe(Ge)}},Me=Te=>{try{We(ue.throw(Te))}catch(Ge){Pe(Ge)}},We=Te=>Te.done?ce(Te.value):Promise.resolve(Te.value).then(Re,Me);We((ue=ue.apply(ze,Ee)).next())});(self.webpackChunk=self.webpackChunk||[]).push([[2792],{88540:function(){"use strict"},42271:function(){"use strict"},15547:function(ze,Ee){"use strict";Ee.Z={lists:"lists___xhHyq",item:"item___pWJAA",children:"children___sDG61",diamond:"diamond___FwgzD",button:"button___WPN6r",mathWrap:"mathWrap___FmnMJ",mathFillWrap:"mathFillWrap___PmY3H"}},71584:function(){"use strict";function ze(Fe,ne,te,he){te===void 0&&(te=0),he===void 0&&(he=1/0),this._name=Fe,this._defaultValue=ne,this._minimum=te,this._maximum=he}Object.defineProperty(ze.prototype,"name",{get:function(){return this._name},set:function(Fe){if(typeof Fe!="string"||Fe==="")throw new Error("Shape name must be a valid string.");this._name=Fe}}),Object.defineProperty(ze.prototype,"defaultValue",{get:function(){return this._defaultValue},set:function(Fe){if(typeof Fe!="number"||isNaN(Fe))throw new Error("The default value must be a real number, not: "+Fe);this._defaultValue=Fe}}),Object.defineProperty(ze.prototype,"minimum",{get:function(){return this._minimum},set:function(Fe){if(typeof Fe!="number"||isNaN(Fe))throw new Error("Minimum must be a real number, not: "+Fe);this._minimum=Fe}}),Object.defineProperty(ze.prototype,"maximum",{get:function(){return this._maximum},set:function(Fe){if(typeof Fe!="number"||isNaN(Fe))throw new Error("Maximum must be a real number, not: "+Fe);this._maximum=Fe}}),go.Shape._FigureParameters={},go.Shape.getFigureParameter=function(Fe,ne){var te=go.Shape._FigureParameters[Fe];return te?te[ne]:null},go.Shape.setFigureParameter=function(Fe,ne,te){if(!(te instanceof ze))throw new Error("Third argument to Shape.setFigureParameter is not FigureParameter: "+te);if(te.defaultValuete.maximum)throw new Error("defaultValue must be between minimum and maximum, not: "+te.defaultValue);var he=go.Shape._FigureParameters[Fe];he||(he=[],go.Shape._FigureParameters[Fe]=he),he[ne]=te};var Ee=[];function ue(Fe,ne){var te=Ee.pop();return te===void 0?new go.Point(Fe,ne):(te.x=Fe,te.y=ne,te)}function ce(){var Fe=Ee.pop();return Fe===void 0?new go.Point:Fe}function Pe(Fe){Ee.push(Fe)}function Re(Fe,ne,te,he,se,ge,Se,be,Ae){Ae||(Ae=new go.Point);var Le=Fe-te,je=se-Se,$e=NaN,qe=NaN;if(Le===0)if(je===0)Fe===te&&($e=Fe,qe=ne);else{var nt=(ge-be)/je,dt=ge-nt*se;$e=Fe,qe=nt*$e+dt}else if(je===0){var it=(ne-he)/Le,bt=ne-it*Fe;$e=se,qe=it*$e+bt}else{var it=(ne-he)/Le,nt=(ge-be)/je,bt=ne-it*Fe,dt=ge-nt*se;$e=(dt-bt)/(it-nt),qe=it*$e+bt}return Ae.x=$e,Ae.y=qe,Ae}function Me(Fe,ne,te,he,se,ge,Se,be,Ae,Le,je,$e,qe,nt){var dt=1-Ae,it=Ae,bt=Fe*dt+te*it,It=ne*dt+he*it,Ht=te*dt+se*it,ln=he*dt+ge*it,un=se*dt+Se*it,Qt=ge*dt+be*it,nn=bt*dt+Ht*it,At=It*dt+ln*it,ct=Ht*dt+un*it,at=ln*dt+Qt*it,rn=nn*dt+ct*it,hn=At*dt+at*it;Le.x=bt,Le.y=It,je.x=nn,je.y=At,$e.x=rn,$e.y=hn,qe.x=ct,qe.y=at,nt.x=un,nt.y=Qt}var We=new go.Spot(.156,.156),Te=new go.Spot(.844,.844),Ge=4*((Math.sqrt(2)-1)/3);go.Shape.setFigureParameter("RoundedRectangle",0,new ze("CornerRounding",5)),go.Shape.defineFigureGenerator("RoundedRectangle",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;(isNaN(he)||he<0)&&(he=5),he=Math.min(he,ne/3),he=Math.min(he,te/3);var se=he*Ge,ge=new go.Geometry().add(new go.PathFigure(he,0,!0).add(new go.PathSegment(go.PathSegment.Line,ne-he,0)).add(new go.PathSegment(go.PathSegment.Bezier,ne,he,ne-se,0,ne,se)).add(new go.PathSegment(go.PathSegment.Line,ne,te-he)).add(new go.PathSegment(go.PathSegment.Bezier,ne-he,te,ne,te-se,ne-se,te)).add(new go.PathSegment(go.PathSegment.Line,he,te)).add(new go.PathSegment(go.PathSegment.Bezier,0,te-he,se,te,0,te-se)).add(new go.PathSegment(go.PathSegment.Line,0,he)).add(new go.PathSegment(go.PathSegment.Bezier,he,0,0,se,se,0).close()));return se>1&&(ge.spot1=new go.Spot(0,0,se,se),ge.spot2=new go.Spot(1,1,-se,-se)),ge}),go.Shape.defineFigureGenerator("Border","RoundedRectangle"),go.Shape.defineFigureGenerator("TriangleRight",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)).add(new go.PathSegment(go.PathSegment.Line,0,te).close())).setSpots(0,.25,.5,.75)}),go.Shape.defineFigureGenerator("TriangleDown",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Line,.5*ne,te).close())).setSpots(.25,0,.75,.5)}),go.Shape.defineFigureGenerator("TriangleLeft",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(ne,te).add(new go.PathSegment(go.PathSegment.Line,0,.5*te)).add(new go.PathSegment(go.PathSegment.Line,ne,0).close())).setSpots(.5,.25,1,.75)}),go.Shape.defineFigureGenerator("TriangleUp",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(ne,te).add(new go.PathSegment(go.PathSegment.Line,0,te)).add(new go.PathSegment(go.PathSegment.Line,.5*ne,0).close())).setSpots(.25,.5,.75,1)}),go.Shape.defineFigureGenerator("Triangle","TriangleUp"),go.Shape.defineFigureGenerator("Diamond",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(.5*ne,0).add(new go.PathSegment(go.PathSegment.Line,0,.5*te)).add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)).add(new go.PathSegment(go.PathSegment.Line,ne,.5*te).close())).setSpots(.25,.25,.75,.75)}),go.Shape.defineFigureGenerator("LineH",function(Fe,ne,te){var he=new go.Geometry(go.Geometry.Line);return he.startX=0,he.startY=te/2,he.endX=ne,he.endY=te/2,he}),go.Shape.defineFigureGenerator("LineV",function(Fe,ne,te){var he=new go.Geometry(go.Geometry.Line);return he.startX=ne/2,he.startY=0,he.endX=ne/2,he.endY=te,he}),go.Shape.defineFigureGenerator("BarH","Rectangle"),go.Shape.defineFigureGenerator("BarV","Rectangle"),go.Shape.defineFigureGenerator("MinusLine","LineH"),go.Shape.defineFigureGenerator("PlusLine",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,te/2,!1).add(new go.PathSegment(go.PathSegment.Line,ne,te/2)).add(new go.PathSegment(go.PathSegment.Move,ne/2,0)).add(new go.PathSegment(go.PathSegment.Line,ne/2,te)))}),go.Shape.defineFigureGenerator("XLine",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,te,!1).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Move,0,0)).add(new go.PathSegment(go.PathSegment.Line,ne,te)))}),go.Shape.defineFigureGenerator("LineRight",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(.25*ne,0,!1).add(new go.PathSegment(go.PathSegment.Line,.75*ne,.5*te)).add(new go.PathSegment(go.PathSegment.Line,.25*ne,te)))}),go.Shape.defineFigureGenerator("LineDown",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,.25*te,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ne,.75*te)).add(new go.PathSegment(go.PathSegment.Line,ne,.25*te)))}),go.Shape.defineFigureGenerator("LineLeft",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(.75*ne,0,!1).add(new go.PathSegment(go.PathSegment.Line,.25*ne,.5*te)).add(new go.PathSegment(go.PathSegment.Line,.75*ne,te)))}),go.Shape.defineFigureGenerator("LineUp",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,.75*te,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ne,.25*te)).add(new go.PathSegment(go.PathSegment.Line,ne,.75*te)))}),go.Shape.defineFigureGenerator("AsteriskLine",function(Fe,ne,te){var he=.2/Math.SQRT2;return new go.Geometry().add(new go.PathFigure(he*ne,(1-he)*te,!1).add(new go.PathSegment(go.PathSegment.Line,(1-he)*ne,he*te)).add(new go.PathSegment(go.PathSegment.Move,he*ne,he*te)).add(new go.PathSegment(go.PathSegment.Line,(1-he)*ne,(1-he)*te)).add(new go.PathSegment(go.PathSegment.Move,0,te/2)).add(new go.PathSegment(go.PathSegment.Line,ne,te/2)).add(new go.PathSegment(go.PathSegment.Move,ne/2,0)).add(new go.PathSegment(go.PathSegment.Line,ne/2,te)))}),go.Shape.defineFigureGenerator("CircleLine",function(Fe,ne,te){var he=ne/2,se=new go.Geometry().add(new go.PathFigure(ne,ne/2,!1).add(new go.PathSegment(go.PathSegment.Arc,0,360,he,he,he,he).close()));return se.spot1=We,se.spot2=Te,se.defaultStretch=go.GraphObject.Uniform,se}),go.Shape.defineFigureGenerator("Line1",function(Fe,ne,te){var he=new go.Geometry(go.Geometry.Line);return he.startX=0,he.startY=0,he.endX=ne,he.endY=te,he}),go.Shape.defineFigureGenerator("Line2",function(Fe,ne,te){var he=new go.Geometry(go.Geometry.Line);return he.startX=ne,he.startY=0,he.endX=0,he.endY=te,he}),go.Shape.defineFigureGenerator("Curve1",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Bezier,ne,te,Ge*ne,0,ne,(1-Ge)*te)))}),go.Shape.defineFigureGenerator("Curve2",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Bezier,ne,te,0,Ge*te,(1-Ge)*ne,te)))}),go.Shape.defineFigureGenerator("Curve3",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(ne,0,!1).add(new go.PathSegment(go.PathSegment.Bezier,0,te,ne,Ge*te,Ge*ne,te)))}),go.Shape.defineFigureGenerator("Curve4",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(ne,0,!1).add(new go.PathSegment(go.PathSegment.Bezier,0,te,(1-Ge)*ne,0,0,(1-Ge)*te)))}),go.Shape.defineFigureGenerator("TriangleDownLeft",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,ne,te)).add(new go.PathSegment(go.PathSegment.Line,0,te).close())).setSpots(0,.5,.5,1)}),go.Shape.defineFigureGenerator("TriangleDownRight",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(ne,0,!0).add(new go.PathSegment(go.PathSegment.Line,ne,te)).add(new go.PathSegment(go.PathSegment.Line,0,te).close())).setSpots(.5,.5,1,1)}),go.Shape.defineFigureGenerator("TriangleUpLeft",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Line,0,te).close())).setSpots(0,0,.5,.5)}),go.Shape.defineFigureGenerator("TriangleUpRight",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne,te).close())).setSpots(.5,0,1,.5)}),go.Shape.defineFigureGenerator("RightTriangle","TriangleDownLeft"),go.Shape.setFigureParameter("Parallelogram1",0,new ze("Indent",.1,-.99,.99)),go.Shape.defineFigureGenerator("Parallelogram1",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)?he=.1:he<-1?he=-1:he>1&&(he=1);var se=Math.abs(he)*ne;if(he===0){var ge=new go.Geometry(go.Geometry.Rectangle);return ge.startX=0,ge.startY=0,ge.endX=ne,ge.endY=te,ge}else{var ge=new go.Geometry;return he>0?ge.add(new go.PathFigure(se,0).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne-se,te)).add(new go.PathSegment(go.PathSegment.Line,0,te).close())):ge.add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ne-se,0)).add(new go.PathSegment(go.PathSegment.Line,ne,te)).add(new go.PathSegment(go.PathSegment.Line,se,te).close())),sene&&(he=ne);var se=Math.abs(he);if(he===0){var ge=new go.Geometry(go.Geometry.Rectangle);return ge.startX=0,ge.startY=0,ge.endX=ne,ge.endY=te,ge}else{var ge=new go.Geometry;return he>0?ge.add(new go.PathFigure(se,0).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne-se,te)).add(new go.PathSegment(go.PathSegment.Line,0,te).close())):ge.add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ne-se,0)).add(new go.PathSegment(go.PathSegment.Line,ne,te)).add(new go.PathSegment(go.PathSegment.Line,se,te).close())),se.5&&(he=.5);var se=Math.abs(he)*ne;if(he===0){var ge=new go.Geometry(go.Geometry.Rectangle);return ge.startX=0,ge.startY=0,ge.endX=ne,ge.endY=te,ge}else{var ge=new go.Geometry;return he>0?ge.add(new go.PathFigure(se,0).add(new go.PathSegment(go.PathSegment.Line,ne-se,0)).add(new go.PathSegment(go.PathSegment.Line,ne,te)).add(new go.PathSegment(go.PathSegment.Line,0,te).close())):ge.add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne-se,te)).add(new go.PathSegment(go.PathSegment.Line,se,te).close())),sene&&(he=ne/2);var se=Math.abs(he);if(he===0){var ge=new go.Geometry(go.Geometry.Rectangle);return ge.startX=0,ge.startY=0,ge.endX=ne,ge.endY=te,ge}else{var ge=new go.Geometry;return he>0?ge.add(new go.PathFigure(se,0).add(new go.PathSegment(go.PathSegment.Line,ne-se,0)).add(new go.PathSegment(go.PathSegment.Line,ne,te)).add(new go.PathSegment(go.PathSegment.Line,0,te).close())):ge.add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne-se,te)).add(new go.PathSegment(go.PathSegment.Line,se,te).close())),sene&&(he=ne/2);var se=Math.abs(he);if(he===0){var ge=new go.Geometry(go.Geometry.Rectangle);return ge.startX=0,ge.startY=0,ge.endX=ne,ge.endY=te,ge}else{var ge=new go.Geometry;return he>0?ge.add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne-se,te)).add(new go.PathSegment(go.PathSegment.Line,se,te).close())):ge.add(new go.PathFigure(se,0).add(new go.PathSegment(go.PathSegment.Line,ne-se,0)).add(new go.PathSegment(go.PathSegment.Line,ne,te)).add(new go.PathSegment(go.PathSegment.Line,0,te).close())),se0&&(Se.add(new go.PathSegment(go.PathSegment.Move,ne/2+be,ne/2)),Se.add(new go.PathSegment(go.PathSegment.Arc,0,-360,se,se,be,be).close())),ge.spot1=We,ge.spot2=Te,ge.defaultStretch=go.GraphObject.Uniform,ge}),go.Shape.defineFigureGenerator("Cloud",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(.08034461*ne,.1944299*te,!0).add(new go.PathSegment(go.PathSegment.Bezier,.2008615*ne,.05349299*te,-.09239631*ne,.07836421*te,.1406031*ne,-.0542823*te)).add(new go.PathSegment(go.PathSegment.Bezier,.4338609*ne,.074219*te,.2450511*ne,-.00697547*te,.3776197*ne,-.01112067*te)).add(new go.PathSegment(go.PathSegment.Bezier,.6558228*ne,.07004196*te,.4539471*ne,0,.6066018*ne,-.02526587*te)).add(new go.PathSegment(go.PathSegment.Bezier,.8921095*ne,.08370865*te,.6914277*ne,-.01904177*te,.8921095*ne,-.01220843*te)).add(new go.PathSegment(go.PathSegment.Bezier,.9147671*ne,.3194596*te,1.036446*ne,.04105738*te,1.020377*ne,.3022052*te)).add(new go.PathSegment(go.PathSegment.Bezier,.9082935*ne,.562044*te,1.04448*ne,.360238*te,.992256*ne,.5219009*te)).add(new go.PathSegment(go.PathSegment.Bezier,.9212406*ne,.8217117*te,1.032337*ne,.5771781*te,1.018411*ne,.8120651*te)).add(new go.PathSegment(go.PathSegment.Bezier,.7592566*ne,.9156953*te,1.028411*ne,.9571472*te,.8556702*ne,1.052487*te)).add(new go.PathSegment(go.PathSegment.Bezier,.5101666*ne,.9310455*te,.7431877*ne,1.009325*te,.5624123*ne,1.021761*te)).add(new go.PathSegment(go.PathSegment.Bezier,.2609328*ne,.9344623*te,.4820677*ne,1.031761*te,.3030112*ne,1.002796*te)).add(new go.PathSegment(go.PathSegment.Bezier,.08034461*ne,.870098*te,.2329994*ne,1.01518*te,.03213784*ne,1.01518*te)).add(new go.PathSegment(go.PathSegment.Bezier,.06829292*ne,.6545475*te,-.02812061*ne,.9032597*te,-.01205169*ne,.6835638*te)).add(new go.PathSegment(go.PathSegment.Bezier,.06427569*ne,.4265613*te,-.01812061*ne,.6089503*te,-.00606892*ne,.4555777*te)).add(new go.PathSegment(go.PathSegment.Bezier,.08034461*ne,.1944299*te,-.01606892*ne,.3892545*te,-.01205169*ne,.1944299*te))).setSpots(.1,.1,.9,.9)}),go.Shape.defineFigureGenerator("StopSign",function(Fe,ne,te){var he=1/(Math.SQRT2+2);return new go.Geometry().add(new go.PathFigure(he*ne,0,!0).add(new go.PathSegment(go.PathSegment.Line,(1-he)*ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne,he*te)).add(new go.PathSegment(go.PathSegment.Line,ne,(1-he)*te)).add(new go.PathSegment(go.PathSegment.Line,(1-he)*ne,te)).add(new go.PathSegment(go.PathSegment.Line,he*ne,te)).add(new go.PathSegment(go.PathSegment.Line,0,(1-he)*te)).add(new go.PathSegment(go.PathSegment.Line,0,he*te).close())).setSpots(he/2,he/2,1-he/2,1-he/2)}),go.Shape.setFigureParameter("Pie",0,new ze("Start",0,-360,360)),go.Shape.setFigureParameter("Pie",1,new ze("Sweep",315,-360,360)),go.Shape.defineFigureGenerator("Pie",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN,se=Fe?Fe.parameter2:NaN;isNaN(he)&&(he=0),isNaN(se)&&(se=315);var ge=he%360;ge<0&&(ge+=360);var Se=se%360,be=Math.min(ne,te)/2;return new go.Geometry().add(new go.PathFigure(be,be).add(new go.PathSegment(go.PathSegment.Arc,ge,Se,be,be,be,be).close()))}),go.Shape.defineFigureGenerator("PiePiece",function(Fe,ne,te){var he=Ge/Math.SQRT2*.5,se=Math.SQRT2/2,ge=1-Math.SQRT2/2;return new go.Geometry().add(new go.PathFigure(ne,te,!0).add(new go.PathSegment(go.PathSegment.Bezier,se*ne,ge*te,ne,(1-he)*te,(se+he)*ne,(ge+he)*te)).add(new go.PathSegment(go.PathSegment.Line,0,te).close()))}),go.Shape.setFigureParameter("ThickCross",0,new ze("Thickness",30)),go.Shape.defineFigureGenerator("ThickCross",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;(isNaN(he)||he<0)&&(he=30);var se=Math.min(he,ne)/2,ge=ne/2,Se=te/2;return new go.Geometry().add(new go.PathFigure(ge-se,0,!0).add(new go.PathSegment(go.PathSegment.Line,ge+se,0)).add(new go.PathSegment(go.PathSegment.Line,ge+se,Se-se)).add(new go.PathSegment(go.PathSegment.Line,ne,Se-se)).add(new go.PathSegment(go.PathSegment.Line,ne,Se+se)).add(new go.PathSegment(go.PathSegment.Line,ge+se,Se+se)).add(new go.PathSegment(go.PathSegment.Line,ge+se,te)).add(new go.PathSegment(go.PathSegment.Line,ge-se,te)).add(new go.PathSegment(go.PathSegment.Line,ge-se,Se+se)).add(new go.PathSegment(go.PathSegment.Line,0,Se+se)).add(new go.PathSegment(go.PathSegment.Line,0,Se-se)).add(new go.PathSegment(go.PathSegment.Line,ge-se,Se-se).close()))}),go.Shape.setFigureParameter("ThinCross",0,new ze("Thickness",10)),go.Shape.defineFigureGenerator("ThinCross",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;(isNaN(he)||he<0)&&(he=10);var se=Math.min(he,ne)/2,ge=ne/2,Se=te/2;return new go.Geometry().add(new go.PathFigure(ge-se,0,!0).add(new go.PathSegment(go.PathSegment.Line,ge+se,0)).add(new go.PathSegment(go.PathSegment.Line,ge+se,Se-se)).add(new go.PathSegment(go.PathSegment.Line,ne,Se-se)).add(new go.PathSegment(go.PathSegment.Line,ne,Se+se)).add(new go.PathSegment(go.PathSegment.Line,ge+se,Se+se)).add(new go.PathSegment(go.PathSegment.Line,ge+se,te)).add(new go.PathSegment(go.PathSegment.Line,ge-se,te)).add(new go.PathSegment(go.PathSegment.Line,ge-se,Se+se)).add(new go.PathSegment(go.PathSegment.Line,0,Se+se)).add(new go.PathSegment(go.PathSegment.Line,0,Se-se)).add(new go.PathSegment(go.PathSegment.Line,ge-se,Se-se).close()))}),go.Shape.setFigureParameter("ThickX",0,new ze("Thickness",30)),go.Shape.defineFigureGenerator("ThickX",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;if((isNaN(he)||he<0)&&(he=30),ne===0||te===0){var se=new go.Geometry(go.Geometry.Rectangle);return se.startX=0,se.startY=0,se.endX=ne,se.endY=te,se}else{var ge=ne/2,Se=te/2,be=Math.atan2(te,ne),Ae=he-Math.min(Math.cos(be)*he/2,ge),Le=he-Math.min(Math.sin(be)*he/2,Se),se=new go.Geometry,je=new go.PathFigure(Ae,0,!0);return se.add(je),je.add(new go.PathSegment(go.PathSegment.Line,ge,.2*te)),je.add(new go.PathSegment(go.PathSegment.Line,ne-Ae,0)),je.add(new go.PathSegment(go.PathSegment.Line,ne,Le)),je.add(new go.PathSegment(go.PathSegment.Line,.8*ne,Se)),je.add(new go.PathSegment(go.PathSegment.Line,ne,te-Le)),je.add(new go.PathSegment(go.PathSegment.Line,ne-Ae,te)),je.add(new go.PathSegment(go.PathSegment.Line,ge,.8*te)),je.add(new go.PathSegment(go.PathSegment.Line,Ae,te)),je.add(new go.PathSegment(go.PathSegment.Line,0,te-Le)),je.add(new go.PathSegment(go.PathSegment.Line,.2*ne,Se)),je.add(new go.PathSegment(go.PathSegment.Line,0,Le).close()),se}}),go.Shape.setFigureParameter("ThinX",0,new ze("Thickness",10)),go.Shape.defineFigureGenerator("ThinX",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;(isNaN(he)||he<0)&&(he=10);var se=new go.Geometry,ge=new go.PathFigure(.1*ne,0,!0);return se.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.4*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.9*ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.1*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.9*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.9*ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.6*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.1*ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,.9*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.4*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,.1*te).close()),se}),go.Shape.setFigureParameter("SquareIBeam",0,new ze("BeamWidth",.2,.1,.9)),go.Shape.defineFigureGenerator("SquareIBeam",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=.2);var se=new go.Geometry,ge=new go.PathFigure(0,0,!0);return se.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,he*te)),ge.add(new go.PathSegment(go.PathSegment.Line,(.5+he/2)*ne,he*te)),ge.add(new go.PathSegment(go.PathSegment.Line,(.5+he/2)*ne,(1-he)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,(1-he)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,(1-he)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,(.5-he/2)*ne,(1-he)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,(.5-he/2)*ne,he*te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,he*te).close()),se}),go.Shape.setFigureParameter("RoundedIBeam",0,new ze("Curviness",.5,.05,.65)),go.Shape.defineFigureGenerator("RoundedIBeam",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=.5);var se=new go.Geometry,ge=new go.PathFigure(0,0,!0);return se.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Bezier,ne,te,Math.abs(1-he)*ne,.25*te,Math.abs(1-he)*ne,.75*te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,0,0,he*ne,.75*te,he*ne,.25*te).close()),se}),go.Shape.defineFigureGenerator("HalfEllipse",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Bezier,ne,.5*te,Ge*ne,0,ne,(.5-Ge/2)*te)).add(new go.PathSegment(go.PathSegment.Bezier,0,te,ne,(.5+Ge/2)*te,Ge*ne,te).close())).setSpots(0,.156,.844,.844)}),go.Shape.defineFigureGenerator("Crescent",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Bezier,0,te,ne,0,ne,te)).add(new go.PathSegment(go.PathSegment.Bezier,0,0,.5*ne,.75*te,.5*ne,.25*te).close())).setSpots(.311,.266,.744,.744)}),go.Shape.defineFigureGenerator("Heart",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(.5*ne,te,!0).add(new go.PathSegment(go.PathSegment.Bezier,0,.3*te,.1*ne,.8*te,0,.5*te)).add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.3*te,0,0,.45*ne,0)).add(new go.PathSegment(go.PathSegment.Bezier,ne,.3*te,.55*ne,0,ne,0)).add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,te,ne,.5*te,.9*ne,.8*te).close())).setSpots(.14,.29,.86,.78)}),go.Shape.defineFigureGenerator("Spade",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(.5*ne,0,!0).add(new go.PathSegment(go.PathSegment.Line,.51*ne,.01*te)).add(new go.PathSegment(go.PathSegment.Bezier,ne,.5*te,.6*ne,.2*te,ne,.25*te)).add(new go.PathSegment(go.PathSegment.Bezier,.55*ne,.7*te,ne,.8*te,.6*ne,.8*te)).add(new go.PathSegment(go.PathSegment.Bezier,.75*ne,te,.5*ne,.75*te,.55*ne,.95*te)).add(new go.PathSegment(go.PathSegment.Line,.25*ne,te)).add(new go.PathSegment(go.PathSegment.Bezier,.45*ne,.7*te,.45*ne,.95*te,.5*ne,.75*te)).add(new go.PathSegment(go.PathSegment.Bezier,0,.5*te,.4*ne,.8*te,0,.8*te)).add(new go.PathSegment(go.PathSegment.Bezier,.49*ne,.01*te,0,.25*te,.4*ne,.2*te).close())).setSpots(.14,.26,.86,.78)}),go.Shape.defineFigureGenerator("Club",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.4*ne,.6*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Bezier,.15*ne,te,.5*ne,.75*te,.45*ne,.95*te)),se.add(new go.PathSegment(go.PathSegment.Line,.85*ne,te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.6*ne,.6*te,.55*ne,.95*te,.5*ne,.75*te));var ge=.2,Se=.3,be=0,Ae=ge*Ge;return se.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Se)*ne,(.5+ge+be)*te,(.5-ge+Se)*ne,(.5+Ae+be)*te,(.5-Ae+Se)*ne,(.5+ge+be)*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,(1-.5+ge+Se)*ne,(.5+be)*te,(.5+Ae+Se)*ne,(.5+ge+be)*te,(.5+ge+Se)*ne,(.5+Ae+be)*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Se)*ne,(.5-ge+be)*te,(1-.5+ge+Se)*ne,(.5-Ae+be)*te,(.5+Ae+Se)*ne,(.5-ge+be)*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.65*ne,.36771243*te,(.5-Ae+Se)*ne,(.5-ge+be)*te,(.5-ge+Se+.05)*ne,(.5-Ae+be-.02)*te)),ge=.2,Se=0,be=-.3,Ae=ge*Ge,se.add(new go.PathSegment(go.PathSegment.Bezier,(1-.5+ge+Se)*ne,(.5+be)*te,(.5+Ae+Se)*ne,(.5+ge+be)*te,(.5+ge+Se)*ne,(.5+Ae+be)*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Se)*ne,(.5-ge+be)*te,(1-.5+ge+Se)*ne,(.5-Ae+be)*te,(.5+Ae+Se)*ne,(.5-ge+be)*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,(.5-ge+Se)*ne,(.5+be)*te,(.5-Ae+Se)*ne,(.5-ge+be)*te,(.5-ge+Se)*ne,(.5-Ae+be)*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,(.5-Ae+Se)*ne,(.5+ge+be)*te,(.5-ge+Se)*ne,(.5+Ae+be)*te,(.5-Ae+Se)*ne,(.5+ge+be)*te)),ge=.2,Se=-.3,be=0,Ae=ge*Ge,se.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Se)*ne,(.5-ge+be)*te,(1-.5+ge+Se-.05)*ne,(.5-Ae+be-.02)*te,(.5+Ae+Se)*ne,(.5-ge+be)*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,(.5-ge+Se)*ne,(.5+be)*te,(.5-Ae+Se)*ne,(.5-ge+be)*te,(.5-ge+Se)*ne,(.5-Ae+be)*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Se)*ne,(.5+ge+be)*te,(.5-ge+Se)*ne,(.5+Ae+be)*te,(.5-Ae+Se)*ne,(.5+ge+be)*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.4*ne,.6*te,(.5+Ae+Se)*ne,(.5+ge+be)*te,(.5+ge+Se)*ne,(.5+Ae+be)*te).close()),he.setSpots(.06,.33,.93,.68),he}),go.Shape.defineFigureGenerator("YinYang",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne*.5,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Arc,270,180,ne*.5,ne*.5,ne*.5,ne*.5)),se.add(new go.PathSegment(go.PathSegment.Arc,90,-180,ne*.5,ne*.75,ne*.25,ne*.25)),se.add(new go.PathSegment(go.PathSegment.Arc,90,180,ne*.5,ne*.25,ne*.25,ne*.25));var ge=.1,Se=.5,be=.25;return se.add(new go.PathSegment(go.PathSegment.Move,(Se+ge)*ne,be*te)),se.add(new go.PathSegment(go.PathSegment.Arc,0,-360,ne*Se,te*be,ge*ne,ge*ne).close()),se=new go.PathFigure(ne*.5,0,!1),he.add(se),se.add(new go.PathSegment(go.PathSegment.Arc,270,-180,ne*.5,ne*.5,ne*.5,ne*.5)),be=.75,se=new go.PathFigure((Se+ge)*ne,be*te,!0),he.add(se),se.add(new go.PathSegment(go.PathSegment.Arc,0,360,ne*Se,te*be,ge*ne,ge*ne).close()),he.defaultStretch=go.GraphObject.Uniform,he}),go.Shape.defineFigureGenerator("Peace",function(Fe,ne,te){var he=.8535533905932737,se=.5*ne,ge=.5*te;return new go.Geometry().add(new go.PathFigure(se,0,!1).add(new go.PathSegment(go.PathSegment.Arc,270,360,se,ge,se,ge)).add(new go.PathSegment(go.PathSegment.Line,se,te)).add(new go.PathSegment(go.PathSegment.Move,se,ge)).add(new go.PathSegment(go.PathSegment.Line,(1-he)*ne,he*te)).add(new go.PathSegment(go.PathSegment.Move,se,ge)).add(new go.PathSegment(go.PathSegment.Line,he*ne,he*te)))}),go.Shape.defineFigureGenerator("NotAllowed",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.5,ge=.5,Se=.5,be=.5,Ae=new go.PathFigure(Se*ne,(be-ge)*te);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se-ge)*ne,be*te,(Se-se)*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+ge)*te,(Se-ge)*ne,(be+se)*te,(Se-se)*ne,(be+ge)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,be*te,(Se+se)*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-ge)*te,(Se+ge)*ne,(be-se)*te,(Se+se)*ne,(be-ge)*te)),ge=.4,se=Ge*.4;var Le=ce(),je=ce(),$e=ce(),qe=ce();Me(Se,be-ge,Se+se,be-ge,Se+ge,be-se,Se+ge,be,.42,Le,je,$e,qe,qe);var nt=ce(),dt=ce(),it=ce();Me(Se,be-ge,Se+se,be-ge,Se+ge,be-se,Se+ge,be,.58,qe,qe,it,nt,dt);var bt=ce(),It=ce(),Ht=ce();Me(Se,be+ge,Se-se,be+ge,Se-ge,be+se,Se-ge,be,.42,bt,It,Ht,qe,qe);var ln=ce(),un=ce(),Qt=ce();return Me(Se,be+ge,Se-se,be+ge,Se-ge,be+se,Se-ge,be,.58,qe,qe,Qt,ln,un),Ae.add(new go.PathSegment(go.PathSegment.Move,Qt.x*ne,Qt.y*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se-ge)*ne,be*te,ln.x*ne,ln.y*te,un.x*ne,un.y*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te,(Se-se)*ne,(be-ge)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,$e.x*ne,$e.y*te,Le.x*ne,Le.y*te,je.x*ne,je.y*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,Qt.x*ne,Qt.y*te).close()),Ae.add(new go.PathSegment(go.PathSegment.Move,Ht.x*ne,Ht.y*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,it.x*ne,it.y*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,be*te,nt.x*ne,nt.y*te,dt.x*ne,dt.y*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te,(Se+se)*ne,(be+ge)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Ht.x*ne,Ht.y*te,bt.x*ne,bt.y*te,It.x*ne,It.y*te).close()),Pe(Le),Pe(je),Pe($e),Pe(qe),Pe(nt),Pe(dt),Pe(it),Pe(bt),Pe(It),Pe(Ht),Pe(ln),Pe(un),Pe(Qt),he.defaultStretch=go.GraphObject.Uniform,he}),go.Shape.defineFigureGenerator("Fragile",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,.25*ne,0)).add(new go.PathSegment(go.PathSegment.Line,.2*ne,.15*te)).add(new go.PathSegment(go.PathSegment.Line,.3*ne,.25*te)).add(new go.PathSegment(go.PathSegment.Line,.29*ne,.33*te)).add(new go.PathSegment(go.PathSegment.Line,.35*ne,.25*te)).add(new go.PathSegment(go.PathSegment.Line,.3*ne,.15*te)).add(new go.PathSegment(go.PathSegment.Line,.4*ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Bezier,.55*ne,.5*te,ne,.25*te,.75*ne,.5*te)).add(new go.PathSegment(go.PathSegment.Line,.55*ne,.9*te)).add(new go.PathSegment(go.PathSegment.Line,.7*ne,.9*te)).add(new go.PathSegment(go.PathSegment.Line,.7*ne,te)).add(new go.PathSegment(go.PathSegment.Line,.3*ne,te)).add(new go.PathSegment(go.PathSegment.Line,.3*ne,.9*te)).add(new go.PathSegment(go.PathSegment.Line,.45*ne,.9*te)).add(new go.PathSegment(go.PathSegment.Line,.45*ne,.5*te)).add(new go.PathSegment(go.PathSegment.Bezier,0,0,.25*ne,.5*te,0,.25*te).close()))}),go.Shape.setFigureParameter("HourGlass",0,new ze("Thickness",30)),go.Shape.defineFigureGenerator("HourGlass",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;(isNaN(he)||he<0)&&(he=30),he>ne&&(he=ne);var se=(ne-he)/2,ge=se+he;return new go.Geometry().add(new go.PathFigure(ge,.5*te).add(new go.PathSegment(go.PathSegment.Line,ne,te)).add(new go.PathSegment(go.PathSegment.Line,0,te)).add(new go.PathSegment(go.PathSegment.Line,se,.5*te)).add(new go.PathSegment(go.PathSegment.Line,0,0)).add(new go.PathSegment(go.PathSegment.Line,ne,0).close()))}),go.Shape.defineFigureGenerator("Lightning",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,.55*te).add(new go.PathSegment(go.PathSegment.Line,.6*ne,0)).add(new go.PathSegment(go.PathSegment.Line,.3*ne,.45*te)).add(new go.PathSegment(go.PathSegment.Line,ne,.45*te)).add(new go.PathSegment(go.PathSegment.Line,.4*ne,te)).add(new go.PathSegment(go.PathSegment.Line,.7*ne,.55*te).close()))}),go.Shape.defineFigureGenerator("GenderMale",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.4,ge=.4,Se=.5,be=.5,Ae=ce(),Le=ce(),je=ce(),$e=ce(),qe=new go.PathFigure((Se-ge)*ne,be*te,!1);he.add(qe),qe.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te,(Se-se)*ne,(be-ge)*te)),Me(Se,be-ge,Se+se,be-ge,Se+ge,be-se,Se+ge,be,.44,je,$e,Le,Ae,Ae),qe.add(new go.PathSegment(go.PathSegment.Bezier,Le.x*ne,Le.y*te,je.x*ne,je.y*te,$e.x*ne,$e.y*te));var nt=ue(Le.x,Le.y);Me(Se,be-ge,Se+se,be-ge,Se+ge,be-se,Se+ge,be,.56,Ae,Ae,Le,je,$e);var dt=ue(Le.x,Le.y);qe.add(new go.PathSegment(go.PathSegment.Line,(nt.x*.1+.95*.9)*ne,nt.y*.1*te)),qe.add(new go.PathSegment(go.PathSegment.Line,.85*ne,nt.y*.1*te)),qe.add(new go.PathSegment(go.PathSegment.Line,.85*ne,0)),qe.add(new go.PathSegment(go.PathSegment.Line,ne,0)),qe.add(new go.PathSegment(go.PathSegment.Line,ne,.15*te)),qe.add(new go.PathSegment(go.PathSegment.Line,(dt.x*.1+.9)*ne,.15*te)),qe.add(new go.PathSegment(go.PathSegment.Line,(dt.x*.1+.9)*ne,(dt.y*.1+.05*.9)*te)),qe.add(new go.PathSegment(go.PathSegment.Line,dt.x*ne,dt.y*te)),qe.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,be*te,je.x*ne,je.y*te,$e.x*ne,$e.y*te)),qe.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te,(Se+se)*ne,(be+ge)*te)),qe.add(new go.PathSegment(go.PathSegment.Bezier,(Se-ge)*ne,be*te,(Se-se)*ne,(be+ge)*te,(Se-ge)*ne,(be+se)*te)),ge=.35,se=Ge*.35;var it=new go.PathFigure(Se*ne,(be-ge)*te,!1);he.add(it),it.add(new go.PathSegment(go.PathSegment.Bezier,(Se-ge)*ne,be*te,(Se-se)*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te)),it.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+ge)*te,(Se-ge)*ne,(be+se)*te,(Se-se)*ne,(be+ge)*te)),it.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,be*te,(Se+se)*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),it.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-ge)*te,(Se+ge)*ne,(be-se)*te,(Se+se)*ne,(be-ge)*te));var bt=new go.PathFigure((Se-ge)*ne,be*te,!1);return he.add(bt),Pe(Ae),Pe(Le),Pe(je),Pe($e),Pe(nt),Pe(dt),he.spot1=new go.Spot(.202,.257),he.spot2=new go.Spot(.792,.739),he.defaultStretch=go.GraphObject.Uniform,he}),go.Shape.defineFigureGenerator("GenderFemale",function(Fe,ne,te){var he=new go.Geometry,se=.375,ge=0,Se=-.125,be=se*Ge,Ae=new go.PathFigure((.525+ge)*ne,(.5+se+Se)*te,!1);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(1-.5+se+ge)*ne,(.5+Se)*te,(.5+be+ge)*ne,(.5+se+Se)*te,(.5+se+ge)*ne,(.5+be+Se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5+ge)*ne,(.5-se+Se)*te,(1-.5+se+ge)*ne,(.5-be+Se)*te,(.5+be+ge)*ne,(.5-se+Se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5-se+ge)*ne,(.5+Se)*te,(.5-be+ge)*ne,(.5-se+Se)*te,(.5-se+ge)*ne,(.5-be+Se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.475+ge)*ne,(.5+se+Se)*te,(.5-se+ge)*ne,(.5+be+Se)*te,(.5-be+ge)*ne,(.5+se+Se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.475*ne,.85*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.425*ne,.85*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.425*ne,.9*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.475*ne,.9*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.475*ne,te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.525*ne,te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.525*ne,.9*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.575*ne,.9*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.575*ne,.85*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.525*ne,.85*te).close()),se=.325,ge=0,Se=-.125,be=se*Ge;var Ae=new go.PathFigure((1-.5+se+ge)*ne,(.5+Se)*te,!1);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5+ge)*ne,(.5+se+Se)*te,(.5+se+ge)*ne,(.5+be+Se)*te,(.5+be+ge)*ne,(.5+se+Se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5-se+ge)*ne,(.5+Se)*te,(.5-be+ge)*ne,(.5+se+Se)*te,(.5-se+ge)*ne,(.5+be+Se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5+ge)*ne,(.5-se+Se)*te,(.5-se+ge)*ne,(.5-be+Se)*te,(.5-be+ge)*ne,(.5-se+Se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(1-.5+se+ge)*ne,(.5+Se)*te,(.5+be+ge)*ne,(.5-se+Se)*te,(1-.5+se+ge)*ne,(.5-be+Se)*te));var Ae=new go.PathFigure((.525+ge)*ne,(.5+se+Se)*te,!1);return he.add(Ae),he.spot1=new go.Spot(.232,.136),he.spot2=new go.Spot(.682,.611),he.defaultStretch=go.GraphObject.Uniform,he}),go.Shape.defineFigureGenerator("LogicImplies",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;return isNaN(he)&&(he=.2),new go.Geometry().add(new go.PathFigure((1-he)*ne,0,!1).add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)).add(new go.PathSegment(go.PathSegment.Line,(1-he)*ne,te)).add(new go.PathSegment(go.PathSegment.Move,0,.5*te)).add(new go.PathSegment(go.PathSegment.Line,ne,.5*te))).setSpots(0,0,.8,.5)}),go.Shape.defineFigureGenerator("LogicIff",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;return isNaN(he)&&(he=.2),new go.Geometry().add(new go.PathFigure((1-he)*ne,0,!1).add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)).add(new go.PathSegment(go.PathSegment.Line,(1-he)*ne,te)).add(new go.PathSegment(go.PathSegment.Move,0,.5*te)).add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)).add(new go.PathSegment(go.PathSegment.Move,he*ne,0)).add(new go.PathSegment(go.PathSegment.Line,0,.5*te)).add(new go.PathSegment(go.PathSegment.Line,he*ne,te))).setSpots(.2,0,.8,.5)}),go.Shape.defineFigureGenerator("LogicNot",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne,te)))}),go.Shape.defineFigureGenerator("LogicAnd",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,te,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne,te))).setSpots(.25,.5,.75,1)}),go.Shape.defineFigureGenerator("LogicOr",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)).add(new go.PathSegment(go.PathSegment.Line,ne,0))).setSpots(.219,0,.78,.409)}),go.Shape.defineFigureGenerator("LogicXor",function(Fe,ne,te){var he=new go.Geometry().add(new go.PathFigure(.5*ne,0,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)).add(new go.PathSegment(go.PathSegment.Move,0,.5*te)).add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)).add(new go.PathSegment(go.PathSegment.Arc,0,360,.5*ne,.5*te,.5*ne,.5*te)));return he.defaultStretch=go.GraphObject.Uniform,he}),go.Shape.defineFigureGenerator("LogicTruth",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Move,.5*ne,0)).add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)))}),go.Shape.defineFigureGenerator("LogicFalsity",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,te,!1).add(new go.PathSegment(go.PathSegment.Line,ne,te)).add(new go.PathSegment(go.PathSegment.Move,.5*ne,te)).add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)))}),go.Shape.defineFigureGenerator("LogicThereExists",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)).add(new go.PathSegment(go.PathSegment.Line,0,.5*te)).add(new go.PathSegment(go.PathSegment.Move,ne,.5*te)).add(new go.PathSegment(go.PathSegment.Line,ne,te)).add(new go.PathSegment(go.PathSegment.Line,0,te)))}),go.Shape.defineFigureGenerator("LogicForAll",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Move,.25*ne,.5*te)).add(new go.PathSegment(go.PathSegment.Line,.75*ne,.5*te))).setSpots(.25,0,.75,.5)}),go.Shape.defineFigureGenerator("LogicIsDefinedAs",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Move,0,.5*te)).add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)).add(new go.PathSegment(go.PathSegment.Move,0,te)).add(new go.PathSegment(go.PathSegment.Line,ne,te))).setSpots(.01,.01,.99,.49)}),go.Shape.defineFigureGenerator("LogicIntersect",function(Fe,ne,te){var he=.5;return new go.Geometry().add(new go.PathFigure(0,te,!1).add(new go.PathSegment(go.PathSegment.Line,0,he*te)).add(new go.PathSegment(go.PathSegment.Arc,180,180,he*ne,he*te,he*ne,he*te)).add(new go.PathSegment(go.PathSegment.Line,ne,te))).setSpots(0,.5,1,1)}),go.Shape.defineFigureGenerator("LogicUnion",function(Fe,ne,te){var he=.5;return new go.Geometry().add(new go.PathFigure(ne,0,!1).add(new go.PathSegment(go.PathSegment.Line,ne,he*te)).add(new go.PathSegment(go.PathSegment.Arc,0,180,he*ne,he*te,he*ne,he*te)).add(new go.PathSegment(go.PathSegment.Line,0,0))).setSpots(0,0,1,.5)}),go.Shape.setFigureParameter("Arrow",0,new ze("ArrowheadWidth",.3,.01,.99)),go.Shape.setFigureParameter("Arrow",1,new ze("TailHeight",.3,.01,.99)),go.Shape.defineFigureGenerator("Arrow",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=.3);var se=Fe?Fe.parameter2:NaN;isNaN(se)&&(se=.3);var ge=(1-he)*ne,Se=(.5-se/2)*te,be=(.5+se/2)*te,Ae=new go.Geometry,Le=new go.PathFigure(0,Se,!0);Ae.add(Le),Le.add(new go.PathSegment(go.PathSegment.Line,ge,Se)),Le.add(new go.PathSegment(go.PathSegment.Line,ge,0)),Le.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),Le.add(new go.PathSegment(go.PathSegment.Line,ge,te)),Le.add(new go.PathSegment(go.PathSegment.Line,ge,be)),Le.add(new go.PathSegment(go.PathSegment.Line,0,be).close()),Ae.spot1=new go.Spot(0,Se/te);var je=Re(0,be/te,1,be/te,ge/ne,1,1,.5,ce());return Ae.spot2=new go.Spot(je.x,je.y),Pe(je),Ae}),go.Shape.setFigureParameter("Arrow2",0,new ze("ArrowheadWidth",30)),go.Shape.setFigureParameter("Arrow2",0,new ze("TailHeight",30)),go.Shape.defineFigureGenerator("Arrow2",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=30),he>ne&&(he=ne);var se=Fe?Fe.parameter2:NaN;isNaN(se)&&(se=30),se=Math.min(se,te/2);var ge=ne-he,Se=(te-se)/2,be=Se+se,Ae=new go.Geometry,Le=new go.PathFigure(0,Se,!0);Ae.add(Le),Le.add(new go.PathSegment(go.PathSegment.Line,ge,Se)),Le.add(new go.PathSegment(go.PathSegment.Line,ge,0)),Le.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),Le.add(new go.PathSegment(go.PathSegment.Line,ge,te)),Le.add(new go.PathSegment(go.PathSegment.Line,ge,be)),Le.add(new go.PathSegment(go.PathSegment.Line,0,be).close()),Ae.spot1=new go.Spot(0,Se/te);var je=Re(0,be/te,1,be/te,ge/ne,1,1,.5,ce());return Ae.spot2=new go.Spot(je.x,je.y),Pe(je),Ae}),go.Shape.defineFigureGenerator("Chevron",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.5*te).close()),he}),go.Shape.defineFigureGenerator("DoubleArrow",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.3*ne,.214*te)),se.add(new go.PathSegment(go.PathSegment.Line,.3*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,1*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.3*ne,1*te)),se.add(new go.PathSegment(go.PathSegment.Line,.3*ne,.786*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,1*te).close()),he}),go.Shape.setFigureParameter("DoubleEndArrow",0,new ze("ConnecterHeight",.3,.01,.99)),go.Shape.defineFigureGenerator("DoubleEndArrow",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=.3);var se=(.5-he/2)*te,ge=(.5+he/2)*te,Se=new go.Geometry,be=new go.PathFigure(ne,.5*te,!0);Se.add(be),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,te)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,ge)),be.add(new go.PathSegment(go.PathSegment.Line,.3*ne,ge)),be.add(new go.PathSegment(go.PathSegment.Line,.3*ne,te)),be.add(new go.PathSegment(go.PathSegment.Line,0,.5*te)),be.add(new go.PathSegment(go.PathSegment.Line,.3*ne,0)),be.add(new go.PathSegment(go.PathSegment.Line,.3*ne,se)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,se)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,0).close());var Ae=Re(0,.5,.3,0,0,se/te,.1,se/te,ce());return Se.spot1=new go.Spot(Ae.x,Ae.y),Ae=Re(.7,1,1,.5,0,ge/te,1,ge/te,Ae),Se.spot2=new go.Spot(Ae.x,Ae.y),Pe(Ae),Se}),go.Shape.setFigureParameter("DoubleEndArrow2",0,new ze("ConnecterHeight",40)),go.Shape.setFigureParameter("DoubleEndArrow2",1,new ze("ArrowHeight",100)),go.Shape.defineFigureGenerator("DoubleEndArrow2",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=40);var se=Fe?Fe.parameter2:NaN;isNaN(se)&&(se=100);var ge=(te-he)/2,Se=ge+he,be=(te-se)/2,Ae=be+se;(he>te||se>te)&&(se>he?(he=he*te/se,ge=(te-he)/2,Se=ge+he,be=0,Ae=te):(ge=0,Se=te,be=0,Ae=te));var Le=new go.Geometry,je=new go.PathFigure(ne,.5*te,!0);Le.add(je),je.add(new go.PathSegment(go.PathSegment.Line,.7*ne,Ae)),je.add(new go.PathSegment(go.PathSegment.Line,.7*ne,Se)),je.add(new go.PathSegment(go.PathSegment.Line,.3*ne,Se)),je.add(new go.PathSegment(go.PathSegment.Line,.3*ne,Ae)),je.add(new go.PathSegment(go.PathSegment.Line,0,.5*te)),je.add(new go.PathSegment(go.PathSegment.Line,.3*ne,be)),je.add(new go.PathSegment(go.PathSegment.Line,.3*ne,ge)),je.add(new go.PathSegment(go.PathSegment.Line,.7*ne,ge)),je.add(new go.PathSegment(go.PathSegment.Line,.7*ne,be).close());var $e=Re(0,.5,.3,be/te,0,ge/te,1,ge/te,ce());return Le.spot1=new go.Spot($e.x,$e.y),$e=Re(.7,Ae/te,1,.5,0,Se/te,1,Se/te,$e),Le.spot2=new go.Spot($e.x,$e.y),Pe($e),Le}),go.Shape.setFigureParameter("IBeamArrow",0,new ze("ConnectorHeight",.7,.51,.97)),go.Shape.defineFigureGenerator("IBeamArrow",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=.3);var se=(.5-he/2)*te,ge=(.5+he/2)*te,Se=new go.Geometry,be=new go.PathFigure(ne,.5*te,!0);Se.add(be),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,te)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,ge)),be.add(new go.PathSegment(go.PathSegment.Line,.2*ne,ge)),be.add(new go.PathSegment(go.PathSegment.Line,.2*ne,te)),be.add(new go.PathSegment(go.PathSegment.Line,0,te)),be.add(new go.PathSegment(go.PathSegment.Line,0,0)),be.add(new go.PathSegment(go.PathSegment.Line,.2*ne,0)),be.add(new go.PathSegment(go.PathSegment.Line,.2*ne,se)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,se)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,0).close()),Se.spot1=new go.Spot(0,se/te);var Ae=Re(.7,1,1,.5,0,ge/te,1,ge/te,ce());return Se.spot2=new go.Spot(Ae.x,Ae.y),Pe(Ae),Se}),go.Shape.setFigureParameter("IBeamArrow2",0,new ze("ConnectorHeight",40)),go.Shape.setFigureParameter("IBeamArrow2",1,new ze("BeamArrowHeight",100)),go.Shape.defineFigureGenerator("IBeamArrow2",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=40);var se=Fe?Fe.parameter2:NaN;isNaN(se)&&(se=100);var ge=(te-he)/2,Se=ge+he,be=(te-se)/2,Ae=be+se;(he>te||se>te)&&(se>he?(he=he*te/se,ge=(te-he)/2,Se=ge+he,be=0,Ae=te):(ge=0,Se=te,be=0,Ae=te));var Le=new go.Geometry,je=new go.PathFigure(ne,.5*te,!0);Le.add(je),je.add(new go.PathSegment(go.PathSegment.Line,.7*ne,Ae)),je.add(new go.PathSegment(go.PathSegment.Line,.7*ne,Se)),je.add(new go.PathSegment(go.PathSegment.Line,.2*ne,Se)),je.add(new go.PathSegment(go.PathSegment.Line,.2*ne,Ae)),je.add(new go.PathSegment(go.PathSegment.Line,0,Ae)),je.add(new go.PathSegment(go.PathSegment.Line,0,be)),je.add(new go.PathSegment(go.PathSegment.Line,.2*ne,be)),je.add(new go.PathSegment(go.PathSegment.Line,.2*ne,ge)),je.add(new go.PathSegment(go.PathSegment.Line,.7*ne,ge)),je.add(new go.PathSegment(go.PathSegment.Line,.7*ne,be).close()),Le.spot1=new go.Spot(0,ge/te);var $e=Re(.7,Ae/te,1,.5,0,Se/te,1,Se/te,ce());return Le.spot2=new go.Spot($e.x,$e.y),Pe($e),Le}),go.Shape.setFigureParameter("Pointer",0,new ze("BackPoint",.1,0,.2)),go.Shape.defineFigureGenerator("Pointer",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=.1);var se=new go.Geometry,ge=new go.PathFigure(ne,.5*te,!0);se.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,0,te)),ge.add(new go.PathSegment(go.PathSegment.Line,he*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,0).close()),se.spot1=new go.Spot(he,.35);var Se=Re(.2,.65,1,.65,0,1,1,.5,ce());return se.spot2=new go.Spot(Se.x,Se.y),Pe(Se),se}),go.Shape.setFigureParameter("RoundedPointer",0,new ze("RoundedEdge",.3,0,.5)),go.Shape.defineFigureGenerator("RoundedPointer",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=.3);var se=new go.Geometry,ge=new go.PathFigure(ne,.5*te,!0);se.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,0,te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,0,0,he*ne,.75*te,he*ne,.25*te).close()),se.spot1=new go.Spot(he,.35);var Se=Re(0,.65,1,.65,0,1,1,.5,ce());return se.spot2=new go.Spot(Se.x,Se.y),Pe(Se),se}),go.Shape.setFigureParameter("SplitEndArrow",0,new ze("TailHeight",.4,.01,.99)),go.Shape.defineFigureGenerator("SplitEndArrow",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=.4);var se=(.5-he/2)*te,ge=(.5+he/2)*te,Se=new go.Geometry,be=new go.PathFigure(ne,.5*te,!0);Se.add(be),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,te)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,ge)),be.add(new go.PathSegment(go.PathSegment.Line,0,ge)),be.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.5*te)),be.add(new go.PathSegment(go.PathSegment.Line,0,se)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,se)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,0).close()),Se.spot1=new go.Spot(.2,.3);var Ae=Re(.7,1,1,.5,0,ge/te,1,ge/te,ce());return Se.spot2=new go.Spot(Ae.x,Ae.y),Pe(Ae),Se}),go.Shape.setFigureParameter("SplitEndArrow2",0,new ze("TailThickness",50)),go.Shape.defineFigureGenerator("SplitEndArrow2",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=50);var se=(te-he)/2,ge=se+he;he>te&&(se=0,ge=te);var Se=new go.Geometry,be=new go.PathFigure(ne,.5*te,!0);Se.add(be),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,te)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,ge)),be.add(new go.PathSegment(go.PathSegment.Line,0,ge)),be.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.5*te)),be.add(new go.PathSegment(go.PathSegment.Line,0,se)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,se)),be.add(new go.PathSegment(go.PathSegment.Line,.7*ne,0).close()),Se.spot1=new go.Spot(.2,se/te);var Ae=Re(.7,1,1,.5,0,ge/te,1,ge/te,ce());return Se.spot2=new go.Spot(Ae.x,Ae.y),Pe(Ae),Se}),go.Shape.setFigureParameter("SquareArrow",0,new ze("ArrowPoint",.7,.2,.9)),go.Shape.defineFigureGenerator("SquareArrow",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=.7);var se=new go.Geometry,ge=new go.PathFigure(ne,.5*te,!0);return se.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,he*ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,0)),ge.add(new go.PathSegment(go.PathSegment.Line,he*ne,0).close()),se.spot1=go.Spot.TopLeft,se.spot2=new go.Spot(he,1),se}),go.Shape.defineFigureGenerator("Cone1",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.5,ge=Ge*.1,Se=new go.PathFigure(0,.9*te,!0);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,.9*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,te,ne,(.9+ge)*te,(.5+se)*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,.9*te,(.5-se)*ne,te,0,(.9+ge)*te).close()),he.spot1=new go.Spot(.25,.5),he.spot2=new go.Spot(.75,.97),he}),go.Shape.defineFigureGenerator("Cone2",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.9*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.9*te,(1-.85/.9)*ne,te,.85/.9*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,0,.9*te).close());var ge=new go.PathFigure(0,.9*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Bezier,ne,.9*te,(1-.85/.9)*ne,.8*te,.85/.9*ne,.8*te)),he.spot1=new go.Spot(.25,.5),he.spot2=new go.Spot(.75,.82),he}),go.Shape.defineFigureGenerator("Cube1",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.5*ne,te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,.85*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.15*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,0,.15*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.85*te).close());var ge=new go.PathFigure(.5*ne,te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.3*te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,.15*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.5*ne,.3*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.15*te)),he.spot1=new go.Spot(0,.3),he.spot2=new go.Spot(.5,.85),he}),go.Shape.defineFigureGenerator("Cube2",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.3*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,.7*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.7*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.3*ne,0).close());var ge=new go.PathFigure(0,.3*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.7*ne,.3*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Move,.7*ne,.3*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.7*ne,te)),he.spot1=new go.Spot(0,.3),he.spot2=new go.Spot(.7,1),he}),go.Shape.defineFigureGenerator("Cylinder1",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=5),he=Math.min(he,te/3);var se=new go.Geometry,ge=Ge*.5,Se=new go.PathFigure(0,he,!0);se.add(Se),Se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,0,0,Ge*he,(.5-ge)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Bezier,1*ne,he,(.5+ge)*ne,0,1*ne,Ge*he)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,te-he)),Se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,1*te,1*ne,te-Ge*he,(.5+ge)*ne,1*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,te-he,(.5-ge)*ne,1*te,0,te-Ge*he)),Se.add(new go.PathSegment(go.PathSegment.Line,0,he));var be=new go.PathFigure(ne,he,!1);return se.add(be),be.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,2*he,1*ne,2*he-Ge*he,(.5+ge)*ne,2*he)),be.add(new go.PathSegment(go.PathSegment.Bezier,0,he,(.5-ge)*ne,2*he,0,2*he-Ge*he)),se.spot1=new go.Spot(0,0,0,2*he),se.spot2=new go.Spot(1,1),se}),go.Shape.defineFigureGenerator("Cylinder2",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=5),he=Math.min(he,te/3);var se=new go.Geometry,ge=Ge*.5,Se=new go.PathFigure(0,te-he,!0);se.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,0,he)),Se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,0,0,Ge*he,(.5-ge)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne,he,(.5+ge)*ne,0,ne,Ge*he)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,te-he)),Se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,te,ne,te-Ge*he,(.5+ge)*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,te-he,(.5-ge)*ne,te,0,te-Ge*he));var be=new go.PathFigure(0,te-he,!1);return se.add(be),be.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,te-2*he,0,te-he-Ge*he,(.5-ge)*ne,te-2*he)),be.add(new go.PathSegment(go.PathSegment.Bezier,ne,te-he,(.5+ge)*ne,te-2*he,ne,te-he-Ge*he)),se.spot1=new go.Spot(0,0),se.spot2=new go.Spot(1,1,0,-2*he),se}),go.Shape.defineFigureGenerator("Cylinder3",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=5),he=Math.min(he,ne/3);var se=new go.Geometry,ge=Ge*.5,Se=new go.PathFigure(he,0,!0);se.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne-he,0)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.5*te,ne-Ge*he,0,ne,(.5-ge)*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne-he,te,ne,(.5+ge)*te,ne-Ge*he,te)),Se.add(new go.PathSegment(go.PathSegment.Line,he,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,.5*te,Ge*he,te,0,(.5+ge)*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,he,0,0,(.5-ge)*te,Ge*he,0));var be=new go.PathFigure(he,0,!1);return se.add(be),be.add(new go.PathSegment(go.PathSegment.Bezier,2*he,.5*te,he+Ge*he,0,2*he,(.5-ge)*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,he,te,2*he,(.5+ge)*te,he+Ge*he,te)),se.spot1=new go.Spot(0,0,2*he,0),se.spot2=new go.Spot(1,1),se}),go.Shape.defineFigureGenerator("Cylinder4",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=5),he=Math.min(he,ne/3);var se=new go.Geometry,ge=Ge*.5,Se=new go.PathFigure(ne-he,0,!0);se.add(Se),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.5*te,ne-Ge*he,0,ne,(.5-ge)*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne-he,te,ne,(.5+ge)*te,ne-Ge*he,te)),Se.add(new go.PathSegment(go.PathSegment.Line,he,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,.5*te,Ge*he,te,0,(.5+ge)*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,he,0,0,(.5-ge)*te,Ge*he,0)),Se.add(new go.PathSegment(go.PathSegment.Line,ne-he,0));var be=new go.PathFigure(ne-he,0,!1);return se.add(be),be.add(new go.PathSegment(go.PathSegment.Bezier,ne-2*he,.5*te,ne-he-Ge*he,0,ne-2*he,(.5-ge)*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,ne-he,te,ne-2*he,(.5+ge)*te,ne-he-Ge*he,te)),se.spot1=new go.Spot(0,0),se.spot2=new go.Spot(1,1,-2*he,0),se}),go.Shape.defineFigureGenerator("Prism1",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.25*ne,.25*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te).close());var ge=new go.PathFigure(.25*ne,.25*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),he.spot1=new go.Spot(.408,.172),he.spot2=new go.Spot(.833,.662),he}),go.Shape.defineFigureGenerator("Prism2",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.25*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.25*te)),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,.75*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te).close());var ge=new go.PathFigure(0,te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.25*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.25*te)),ge.add(new go.PathSegment(go.PathSegment.Move,0,.25*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.25*ne,.5*te)),he.spot1=new go.Spot(.25,.5),he.spot2=new go.Spot(.75,.75),he}),go.Shape.defineFigureGenerator("Pyramid1",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.5*ne,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,.75*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.75*te).close());var ge=new go.PathFigure(.5*ne,0,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),he.spot1=new go.Spot(.25,.367),he.spot2=new go.Spot(.75,.875),he}),go.Shape.defineFigureGenerator("Pyramid2",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.5*ne,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,.85*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.85*te).close());var ge=new go.PathFigure(.5*ne,0,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.7*te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,.85*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.5*ne,.7*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.85*te)),he.spot1=new go.Spot(.25,.367),he.spot2=new go.Spot(.75,.875),he}),go.Shape.defineFigureGenerator("Actor",function(Fe,ne,te){var he=new go.Geometry,se=.2,ge=.1,Se=Ge*se,be=Ge*ge,Ae=.5,Le=.1,je=new go.PathFigure(Ae*ne,(Le+ge)*te,!0);he.add(je),je.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-se)*ne,Le*te,(Ae-Se)*ne,(Le+ge)*te,(Ae-se)*ne,(Le+be)*te)),je.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le-ge)*te,(Ae-se)*ne,(Le-be)*te,(Ae-Se)*ne,(Le-ge)*te)),je.add(new go.PathSegment(go.PathSegment.Bezier,(Ae+se)*ne,Le*te,(Ae+Se)*ne,(Le-ge)*te,(Ae+se)*ne,(Le-be)*te)),je.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le+ge)*te,(Ae+se)*ne,(Le+be)*te,(Ae+Se)*ne,(Le+ge)*te));var $e=.05,qe=Ge*$e;Ae=.05,Le=.25;var nt=new go.PathFigure(.5*ne,.2*te,!0);return he.add(nt),nt.add(new go.PathSegment(go.PathSegment.Line,.95*ne,.2*te)),Ae=.95,Le=.25,nt.add(new go.PathSegment(go.PathSegment.Bezier,(Ae+$e)*ne,Le*te,(Ae+qe)*ne,(Le-$e)*te,(Ae+$e)*ne,(Le-qe)*te)),nt.add(new go.PathSegment(go.PathSegment.Line,ne,.6*te)),nt.add(new go.PathSegment(go.PathSegment.Line,.85*ne,.6*te)),nt.add(new go.PathSegment(go.PathSegment.Line,.85*ne,.35*te)),$e=.025,qe=Ge*$e,Ae=.825,Le=.35,nt.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le-$e)*te,(Ae+$e)*ne,(Le-qe)*te,(Ae+qe)*ne,(Le-$e)*te)),nt.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-$e)*ne,Le*te,(Ae-qe)*ne,(Le-$e)*te,(Ae-$e)*ne,(Le-qe)*te)),nt.add(new go.PathSegment(go.PathSegment.Line,.8*ne,te)),nt.add(new go.PathSegment(go.PathSegment.Line,.55*ne,te)),nt.add(new go.PathSegment(go.PathSegment.Line,.55*ne,.7*te)),$e=.05,qe=Ge*$e,Ae=.5,Le=.7,nt.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le-$e)*te,(Ae+$e)*ne,(Le-qe)*te,(Ae+qe)*ne,(Le-$e)*te)),nt.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-$e)*ne,Le*te,(Ae-qe)*ne,(Le-$e)*te,(Ae-$e)*ne,(Le-qe)*te)),nt.add(new go.PathSegment(go.PathSegment.Line,.45*ne,te)),nt.add(new go.PathSegment(go.PathSegment.Line,.2*ne,te)),nt.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.35*te)),$e=.025,qe=Ge*$e,Ae=.175,Le=.35,nt.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le-$e)*te,(Ae+$e)*ne,(Le-qe)*te,(Ae+qe)*ne,(Le-$e)*te)),nt.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-$e)*ne,Le*te,(Ae-qe)*ne,(Le-$e)*te,(Ae-$e)*ne,(Le-qe)*te)),nt.add(new go.PathSegment(go.PathSegment.Line,.15*ne,.6*te)),nt.add(new go.PathSegment(go.PathSegment.Line,0,.6*te)),nt.add(new go.PathSegment(go.PathSegment.Line,0,.25*te)),$e=.05,qe=Ge*$e,Ae=.05,Le=.25,nt.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le-$e)*te,(Ae-$e)*ne,(Le-qe)*te,(Ae-qe)*ne,(Le-$e)*te)),nt.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.2*te)),he.spot1=new go.Spot(.2,.2),he.spot2=new go.Spot(.8,.65),he}),go.Shape.setFigureParameter("Card",0,new ze("CornerCutoutSize",.2,.1,.9)),go.Shape.defineFigureGenerator("Card",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;isNaN(he)&&(he=.2);var se=new go.Geometry,ge=new go.PathFigure(ne,0,!0);return se.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,he*te)),ge.add(new go.PathSegment(go.PathSegment.Line,he*ne,0).close()),se.spot1=new go.Spot(0,he),se.spot2=go.Spot.BottomRight,se}),go.Shape.defineFigureGenerator("Collate",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.5*ne,.5*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.5*te));var ge=new go.PathFigure(.5*ne,.5*te,!0);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te)),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.5*te)),he.spot1=new go.Spot(.25,0),he.spot2=new go.Spot(.75,.25),he}),go.Shape.defineFigureGenerator("CreateRequest",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN;isNaN(se)&&(se=.1);var ge=new go.PathFigure(0,0,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te).close());var Se=new go.PathFigure(0,se*te,!1);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne,se*te)),Se.add(new go.PathSegment(go.PathSegment.Move,0,(1-se)*te)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,(1-se)*te)),he}),go.Shape.defineFigureGenerator("Database",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.5,ge=Ge*.1,Se=new go.PathFigure(ne,.1*te,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne,.9*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,te,ne,(.9+ge)*te,(.5+se)*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,.9*te,(.5-se)*ne,te,0,(.9+ge)*te)),Se.add(new go.PathSegment(go.PathSegment.Line,0,.1*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,0,0,(.1-ge)*te,(.5-se)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.1*te,(.5+se)*ne,0,ne,(.1-ge)*te));var be=new go.PathFigure(ne,.1*te,!1);return he.add(be),be.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.2*te,ne,(.1+ge)*te,(.5+se)*ne,.2*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,0,.1*te,(.5-se)*ne,.2*te,0,(.1+ge)*te)),be.add(new go.PathSegment(go.PathSegment.Move,ne,.2*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.3*te,ne,(.2+ge)*te,(.5+se)*ne,.3*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,0,.2*te,(.5-se)*ne,.3*te,0,(.2+ge)*te)),be.add(new go.PathSegment(go.PathSegment.Move,ne,.3*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.4*te,ne,(.3+ge)*te,(.5+se)*ne,.4*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,0,.3*te,(.5-se)*ne,.4*te,0,(.3+ge)*te)),he.spot1=new go.Spot(0,.4),he.spot2=new go.Spot(1,.9),he}),go.Shape.defineFigureGenerator("DataStorage",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,0)),se.add(new go.PathSegment(go.PathSegment.Bezier,.75*ne,te,ne,0,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Bezier,0,0,.25*ne,.9*te,.25*ne,.1*te).close()),he.spot1=new go.Spot(.226,0),he.spot2=new go.Spot(.81,1),he}),go.Shape.defineFigureGenerator("DiskStorage",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.5,ge=Ge*.1,Se=new go.PathFigure(ne,.1*te,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne,.9*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,te,ne,(.9+ge)*te,(.5+se)*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,.9*te,(.5-se)*ne,te,0,(.9+ge)*te)),Se.add(new go.PathSegment(go.PathSegment.Line,0,.1*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,0,0,(.1-ge)*te,(.5-se)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.1*te,(.5+se)*ne,0,ne,(.1-ge)*te));var be=new go.PathFigure(ne,.1*te,!1);return he.add(be),be.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.2*te,ne,(.1+ge)*te,(.5+se)*ne,.2*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,0,.1*te,(.5-se)*ne,.2*te,0,(.1+ge)*te)),be.add(new go.PathSegment(go.PathSegment.Move,ne,.2*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.3*te,ne,(.2+ge)*te,(.5+se)*ne,.3*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,0,.2*te,(.5-se)*ne,.3*te,0,(.2+ge)*te)),he.spot1=new go.Spot(0,.3),he.spot2=new go.Spot(1,.9),he}),go.Shape.defineFigureGenerator("Display",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.25*ne,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,0)),se.add(new go.PathSegment(go.PathSegment.Bezier,.75*ne,te,ne,0,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.25*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.5*te).close()),he.spot1=new go.Spot(.25,0),he.spot2=new go.Spot(.75,1),he}),go.Shape.defineFigureGenerator("DividedEvent",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN;isNaN(se)?se=.2:se<.15&&(se=.15);var ge=Ge*.2,Se=new go.PathFigure(0,.2*te,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Bezier,.2*ne,0,0,(.2-ge)*te,(.2-ge)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.2*te,(.8+ge)*ne,0,ne,(.2-ge)*te)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,.8*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,.8*ne,te,ne,(.8+ge)*te,(.8+ge)*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Line,.2*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,.8*te,(.2-ge)*ne,te,0,(.8+ge)*te)),Se.add(new go.PathSegment(go.PathSegment.Line,0,.2*te));var be=new go.PathFigure(0,se*te,!1);return he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,ne,se*te)),he}),go.Shape.defineFigureGenerator("DividedProcess",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN;(isNaN(se)||se<.1)&&(se=.1);var ge=new go.PathFigure(0,0,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te).close());var Se=new go.PathFigure(0,se*te,!1);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne,se*te)),he}),go.Shape.defineFigureGenerator("Document",function(Fe,ne,te){var he=new go.Geometry;te=te/.8;var se=new go.PathFigure(0,.7*te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.7*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,0,.7*te,.5*ne,.4*te,.5*ne,te).close()),he.spot1=go.Spot.TopLeft,he.spot2=new go.Spot(1,.6),he}),go.Shape.defineFigureGenerator("ExternalOrganization",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN;(isNaN(se)||se<.2)&&(se=.2);var ge=new go.PathFigure(0,0,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te).close());var Se=new go.PathFigure(se*ne,0,!1);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,0,se*te)),Se.add(new go.PathSegment(go.PathSegment.Move,ne,se*te)),Se.add(new go.PathSegment(go.PathSegment.Line,(1-se)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Move,0,(1-se)*te)),Se.add(new go.PathSegment(go.PathSegment.Line,se*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Move,(1-se)*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,(1-se)*te)),he}),go.Shape.defineFigureGenerator("ExternalProcess",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.5*ne,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.5*te).close());var ge=new go.PathFigure(.1*ne,.4*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.1*ne,.6*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.9*ne,.6*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.4*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.6*ne,.1*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.4*ne,.1*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.4*ne,.9*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.9*te)),he.spot1=new go.Spot(.25,.25),he.spot2=new go.Spot(.75,.75),he}),go.Shape.defineFigureGenerator("File",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.25*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te).close());var ge=new go.PathFigure(.75*ne,0,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.75*ne,.25*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.25*te)),he.spot1=new go.Spot(0,.25),he.spot2=go.Spot.BottomRight,he}),go.Shape.defineFigureGenerator("Interrupt",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne,.5*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te));var ge=new go.PathFigure(ne,.5*te,!1);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te));var Se=new go.PathFigure(ne,.5*te,!1);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),he.spot1=new go.Spot(0,.25),he.spot2=new go.Spot(.5,.75),he}),go.Shape.defineFigureGenerator("InternalStorage",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN,ge=Fe?Fe.parameter2:NaN;isNaN(se)&&(se=.1),isNaN(ge)&&(ge=.1);var Se=new go.PathFigure(0,0,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),Se.add(new go.PathSegment(go.PathSegment.Line,0,te).close());var be=new go.PathFigure(se*ne,0,!1);return he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,se*ne,te)),be.add(new go.PathSegment(go.PathSegment.Move,0,ge*te)),be.add(new go.PathSegment(go.PathSegment.Line,ne,ge*te)),he}),go.Shape.defineFigureGenerator("Junction",function(Fe,ne,te){var he=new go.Geometry,se=1/Math.SQRT2,ge=(1-1/Math.SQRT2)/2,Se=Ge*.5,be=.5,Ae=new go.PathFigure(ne,be*te,!0);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,be*ne,te,ne,(be+Se)*te,(be+Se)*ne,te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,be*te,(be-Se)*ne,te,0,(be+Se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,be*ne,0,0,(be-Se)*te,(be-Se)*ne,0)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,ne,be*te,(be+Se)*ne,0,ne,(be-Se)*te));var Le=new go.PathFigure((ge+se)*ne,(ge+se)*te,!1);return he.add(Le),Le.add(new go.PathSegment(go.PathSegment.Line,ge*ne,ge*te)),Le.add(new go.PathSegment(go.PathSegment.Move,ge*ne,(ge+se)*te)),Le.add(new go.PathSegment(go.PathSegment.Line,(ge+se)*ne,ge*te)),he}),go.Shape.defineFigureGenerator("LinedDocument",function(Fe,ne,te){var he=new go.Geometry;te=te/.8;var se=new go.PathFigure(0,.7*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.7*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,0,.7*te,.5*ne,.4*te,.5*ne,te).close());var ge=new go.PathFigure(.1*ne,0,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.1*ne,.75*te)),he.spot1=new go.Spot(.1,0),he.spot2=new go.Spot(1,.6),he}),go.Shape.defineFigureGenerator("LoopLimit",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,.25*te)),se.add(new go.PathSegment(go.PathSegment.Line,.25*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.25*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te).close()),he.spot1=new go.Spot(0,.25),he.spot2=go.Spot.BottomRight,he}),go.Shape.defineFigureGenerator("MagneticTape",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.5,ge=.5,Se=new go.PathFigure(.5*ne,te,!0);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,ge*te,(ge-se)*ne,te,0,(ge+se)*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ge*ne,0,0,(ge-se)*te,(ge-se)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne,ge*te,(ge+se)*ne,0,ne,(ge-se)*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,(ge+.1)*ne,.9*te,ne,(ge+se)*te,(ge+se)*ne,.9*te)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,.9*te)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),Se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),he.spot1=new go.Spot(.15,.15),he.spot2=new go.Spot(.85,.8),he}),go.Shape.defineFigureGenerator("ManualInput",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.25*te).close()),he.spot1=new go.Spot(0,.25),he.spot2=go.Spot.BottomRight,he}),go.Shape.defineFigureGenerator("MessageFromUser",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN;isNaN(se)&&(se=.7);var ge=new go.PathFigure(0,0,!0);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,se*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te).close()),he.spot1=go.Spot.TopLeft,he}),go.Shape.defineFigureGenerator("MicroformProcessing",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN;isNaN(se)&&(se=.25);var ge=new go.PathFigure(0,0,!0);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,se*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,(1-se)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te).close()),he}),go.Shape.defineFigureGenerator("MicroformRecording",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,.25*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.15*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.85*te)),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,.75*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te).close()),he.spot1=new go.Spot(0,.25),he.spot2=new go.Spot(1,.75),he}),go.Shape.defineFigureGenerator("MultiDocument",function(Fe,ne,te){var he=new go.Geometry;te=te/.8;var se=new go.PathFigure(ne,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.9*ne,.44*te,.96*ne,.47*te,.93*ne,.45*te)),se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.6*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.8*ne,.54*te,.86*ne,.57*te,.83*ne,.55*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.7*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,0,.7*te,.4*ne,.4*te,.4*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,.1*ne,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,.1*ne,.1*te)),se.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.1*te)),se.add(new go.PathSegment(go.PathSegment.Line,.2*ne,0).close());var ge=new go.PathFigure(.1*ne,.2*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.2*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.54*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.2*ne,.1*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.1*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.44*te)),he.spot1=new go.Spot(0,.25),he.spot2=new go.Spot(.8,.77),he}),go.Shape.defineFigureGenerator("MultiProcess",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.1*ne,.1*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.1*te)),se.add(new go.PathSegment(go.PathSegment.Line,.2*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.9*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.9*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,.1*ne,.2*te).close());var ge=new go.PathFigure(.2*ne,.1*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.1*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.8*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.1*ne,.2*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.2*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.9*te)),he.spot1=new go.Spot(0,.2),he.spot2=new go.Spot(.8,1),he}),go.Shape.defineFigureGenerator("OfflineStorage",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN;isNaN(se)&&(se=.1);var ge=1-se,Se=new go.PathFigure(0,0,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),Se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te).close());var be=new go.PathFigure(.5*se*ne,se*te,!1);return he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,(1-.5*se)*ne,se*te)),he}),go.Shape.defineFigureGenerator("OffPageConnector",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te).close()),he.spot1=go.Spot.TopLeft,he.spot2=new go.Spot(.75,1),he}),go.Shape.defineFigureGenerator("Or",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.5,ge=.5,Se=new go.PathFigure(ne,ge*te,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Bezier,ge*ne,te,ne,(ge+se)*te,(ge+se)*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,ge*te,(ge-se)*ne,te,0,(ge+se)*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ge*ne,0,0,(ge-se)*te,(ge-se)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne,ge*te,(ge+se)*ne,0,ne,(ge-se)*te));var be=new go.PathFigure(ne,.5*te,!1);return he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,0,.5*te)),be.add(new go.PathSegment(go.PathSegment.Move,.5*ne,te)),be.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)),he}),go.Shape.defineFigureGenerator("PaperTape",function(Fe,ne,te){var he=new go.Geometry;te=te/.8;var se=new go.PathFigure(0,.7*te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,.3*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.3*te,.5*ne,.6*te,.5*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.7*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,0,.7*te,.5*ne,.4*te,.5*ne,te).close()),he.spot1=new go.Spot(0,.49),he.spot2=new go.Spot(1,.75),he}),go.Shape.defineFigureGenerator("PrimitiveFromCall",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN,ge=Fe?Fe.parameter2:NaN;isNaN(se)&&(se=.1),isNaN(ge)&&(ge=.3);var Se=new go.PathFigure(0,0,!0);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),Se.add(new go.PathSegment(go.PathSegment.Line,(1-ge)*ne,.5*te)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),Se.add(new go.PathSegment(go.PathSegment.Line,0,te).close()),he}),go.Shape.defineFigureGenerator("PrimitiveToCall",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN,ge=Fe?Fe.parameter2:NaN;isNaN(se)&&(se=.1),isNaN(ge)&&(ge=.3);var Se=new go.PathFigure(0,0,!0);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,(1-ge)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),Se.add(new go.PathSegment(go.PathSegment.Line,(1-ge)*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Line,0,te).close()),he}),go.Shape.defineFigureGenerator("Procedure",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN;isNaN(se)&&(se=.1);var ge=new go.PathFigure(0,0,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te).close());var Se=new go.PathFigure((1-se)*ne,0,!1);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,(1-se)*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Move,se*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Line,se*ne,te)),he}),go.Shape.defineFigureGenerator("Process",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN;isNaN(se)&&(se=.1);var ge=new go.PathFigure(0,0,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te).close());var Se=new go.PathFigure(se*ne,0,!1);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,se*ne,te)),he.spot2=go.Spot.BottomRight,he}),go.Shape.defineFigureGenerator("Sort",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.5*ne,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.5*te).close());var ge=new go.PathFigure(0,.5*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),he.spot1=new go.Spot(.25,.25),he.spot2=new go.Spot(.75,.5),he}),go.Shape.defineFigureGenerator("Start",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN;isNaN(se)&&(se=.25);var ge=new go.PathFigure(se*ne,0,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Arc,270,180,.75*ne,.5*te,.25*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Arc,90,180,.25*ne,.5*te,.25*ne,.5*te));var Se=new go.PathFigure(se*ne,0,!1);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,se*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Move,(1-se)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Line,(1-se)*ne,te)),he.spot1=new go.Spot(se,0),he.spot2=new go.Spot(1-se,1),he}),go.Shape.defineFigureGenerator("Terminator",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.25*ne,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Arc,270,180,.75*ne,.5*te,.25*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Arc,90,180,.25*ne,.5*te,.25*ne,.5*te)),he.spot1=new go.Spot(.23,0),he.spot2=new go.Spot(.77,1),he}),go.Shape.defineFigureGenerator("TransmittalTape",function(Fe,ne,te){var he=new go.Geometry,se=Fe?Fe.parameter1:NaN;isNaN(se)&&(se=.1);var ge=new go.PathFigure(0,0,!0);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,.75*ne,(1-se)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,(1-se)*te).close()),he.spot1=go.Spot.TopLeft,he}),go.Shape.defineFigureGenerator("AndGate",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.5,ge=new go.PathFigure(0,0,!0);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)),ge.add(new go.PathSegment(go.PathSegment.Bezier,ne,.5*te,(.5+se)*ne,0,ne,(.5-se)*te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,te,ne,(.5+se)*te,(.5+se)*ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te).close()),he.spot1=go.Spot.TopLeft,he.spot2=new go.Spot(.55,1),he}),go.Shape.defineFigureGenerator("Buffer",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te).close()),he.spot1=new go.Spot(0,.25),he.spot2=new go.Spot(.5,.75),he}),go.Shape.defineFigureGenerator("Clock",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.5,ge=.5,Se=new go.PathFigure(ne,ge*te,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Bezier,ge*ne,te,ne,(ge+se)*te,(ge+se)*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,ge*te,(ge-se)*ne,te,0,(ge+se)*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ge*ne,0,0,(ge-se)*te,(ge-se)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne,ge*te,(ge+se)*ne,0,ne,(ge-se)*te));var be=new go.PathFigure(ne,ge*te,!1);he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,ne,ge*te));var Ae=new go.PathFigure(.8*ne,.75*te,!1);return he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.25*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.25*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.75*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.4*ne,.75*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.4*ne,.25*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.25*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.75*te)),he}),go.Shape.defineFigureGenerator("Ground",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.5*ne,0,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.4*te)),se.add(new go.PathSegment(go.PathSegment.Move,.2*ne,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.6*te)),se.add(new go.PathSegment(go.PathSegment.Move,.3*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,.7*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Move,.4*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.6*ne,te)),he}),go.Shape.defineFigureGenerator("Inverter",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.1,ge=.1,Se=.9,be=.5,Ae=new go.PathFigure(.8*ne,.5*te,!0);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,te)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.5*te));var Le=new go.PathFigure((Se+ge)*ne,be*te,!0);return he.add(Le),Le.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te,(Se+se)*ne,(be+ge)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,(Se-ge)*ne,be*te,(Se-se)*ne,(be+ge)*te,(Se-ge)*ne,(be+se)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te,(Se-se)*ne,(be-ge)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,be*te,(Se+se)*ne,(be-ge)*te,(Se+ge)*ne,(be-se)*te)),he.spot1=new go.Spot(0,.25),he.spot2=new go.Spot(.4,.75),he}),go.Shape.defineFigureGenerator("NandGate",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.5,ge=Ge*.4,Se=Ge*.1,be=.1,Ae=.9,Le=.5,je=new go.PathFigure(.8*ne,.5*te,!0);he.add(je),je.add(new go.PathSegment(go.PathSegment.Bezier,.4*ne,te,.8*ne,(.5+ge)*te,(.4+se)*ne,te)),je.add(new go.PathSegment(go.PathSegment.Line,0,te)),je.add(new go.PathSegment(go.PathSegment.Line,0,0)),je.add(new go.PathSegment(go.PathSegment.Line,.4*ne,0)),je.add(new go.PathSegment(go.PathSegment.Bezier,.8*ne,.5*te,(.4+se)*ne,0,.8*ne,(.5-ge)*te));var $e=new go.PathFigure((Ae+be)*ne,Le*te,!0);return he.add($e),$e.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le+be)*te,(Ae+be)*ne,(Le+Se)*te,(Ae+Se)*ne,(Le+be)*te)),$e.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-be)*ne,Le*te,(Ae-Se)*ne,(Le+be)*te,(Ae-be)*ne,(Le+Se)*te)),$e.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le-be)*te,(Ae-be)*ne,(Le-Se)*te,(Ae-Se)*ne,(Le-be)*te)),$e.add(new go.PathSegment(go.PathSegment.Bezier,(Ae+be)*ne,Le*te,(Ae+Se)*ne,(Le-be)*te,(Ae+be)*ne,(Le-Se)*te)),he.spot1=new go.Spot(0,.05),he.spot2=new go.Spot(.55,.95),he}),go.Shape.defineFigureGenerator("NorGate",function(Fe,ne,te){var he=new go.Geometry,se=.5,ge=Ge*se,Se=0,be=.5,Ae=new go.PathFigure(.8*ne,.5*te,!0);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,te,.7*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,0,.25*ne,.75*te,.25*ne,.25*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.8*ne,.5*te,(Se+ge)*ne,(be-se)*te,.7*ne,(be-ge)*te)),se=.1,ge=Ge*.1,Se=.9,be=.5;var Le=new go.PathFigure((Se-se)*ne,be*te,!0);return he.add(Le),Le.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-se)*te,(Se-se)*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,(Se+se)*ne,be*te,(Se+ge)*ne,(be-se)*te,(Se+se)*ne,(be-ge)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+se)*te,(Se+se)*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,(Se-se)*ne,be*te,(Se-ge)*ne,(be+se)*te,(Se-se)*ne,(be+ge)*te)),he.spot1=new go.Spot(.2,.25),he.spot2=new go.Spot(.6,.75),he}),go.Shape.defineFigureGenerator("OrGate",function(Fe,ne,te){var he=new go.Geometry,se=.5,ge=Ge*se,Se=0,be=.5,Ae=new go.PathFigure(0,0,!0);return he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,ne,.5*te,(Se+ge+ge)*ne,(be-se)*te,.8*ne,(be-ge)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,te,.8*ne,(be+ge)*te,(Se+ge+ge)*ne,(be+se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,0,.25*ne,.75*te,.25*ne,.25*te).close()),he.spot1=new go.Spot(.2,.25),he.spot2=new go.Spot(.75,.75),he}),go.Shape.defineFigureGenerator("XnorGate",function(Fe,ne,te){var he=new go.Geometry,se=.5,ge=Ge*se,Se=.2,be=.5,Ae=new go.PathFigure(.1*ne,0,!1);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.1*ne,te,.35*ne,.25*te,.35*ne,.75*te));var Le=new go.PathFigure(.8*ne,.5*te,!0);he.add(Le),Le.add(new go.PathSegment(go.PathSegment.Bezier,.2*ne,te,.7*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,.2*ne,0,.45*ne,.75*te,.45*ne,.25*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,.8*ne,.5*te,(Se+ge)*ne,(be-se)*te,.7*ne,(be-ge)*te)),se=.1,ge=Ge*.1,Se=.9,be=.5;var je=new go.PathFigure((Se-se)*ne,be*te,!0);return he.add(je),je.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-se)*te,(Se-se)*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te)),je.add(new go.PathSegment(go.PathSegment.Bezier,(Se+se)*ne,be*te,(Se+ge)*ne,(be-se)*te,(Se+se)*ne,(be-ge)*te)),je.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+se)*te,(Se+se)*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),je.add(new go.PathSegment(go.PathSegment.Bezier,(Se-se)*ne,be*te,(Se-ge)*ne,(be+se)*te,(Se-se)*ne,(be+ge)*te)),he.spot1=new go.Spot(.4,.25),he.spot2=new go.Spot(.65,.75),he}),go.Shape.defineFigureGenerator("XorGate",function(Fe,ne,te){var he=new go.Geometry,se=.5,ge=Ge*se,Se=.2,be=.5,Ae=new go.PathFigure(.1*ne,0,!1);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.1*ne,te,.35*ne,.25*te,.35*ne,.75*te));var Le=new go.PathFigure(.2*ne,0,!0);return he.add(Le),Le.add(new go.PathSegment(go.PathSegment.Bezier,ne,.5*te,(Se+ge)*ne,(be-se)*te,.9*ne,(be-ge)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,.2*ne,te,.9*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,.2*ne,0,.45*ne,.75*te,.45*ne,.25*te).close()),he.spot1=new go.Spot(.4,.25),he.spot2=new go.Spot(.8,.75),he}),go.Shape.defineFigureGenerator("Capacitor",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Move,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),he}),go.Shape.defineFigureGenerator("Resistor",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.5*te,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.1*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.2*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.3*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.4*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.6*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.7*ne,.5*te)),he}),go.Shape.defineFigureGenerator("Inductor",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.1,ge=.1,Se=.1,be=.5,Ae=new go.PathFigure((Se-se*.5)*ne,te,!1);return he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,0,(Se-se)*ne,te,(Se-ge)*ne,0)),Se=.3,Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,te,(Se+ge)*ne,0,(Se+se)*ne,te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,0,(Se-se)*ne,te,(Se-ge)*ne,0)),Se=.5,Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,te,(Se+ge)*ne,0,(Se+se)*ne,te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,0,(Se-se)*ne,te,(Se-ge)*ne,0)),Se=.7,Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,te,(Se+ge)*ne,0,(Se+se)*ne,te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,0,(Se-se)*ne,te,(Se-ge)*ne,0)),Se=.9,Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+se*.5)*ne,te,(Se+ge)*ne,0,(Se+se)*ne,te)),he}),go.Shape.defineFigureGenerator("ACvoltageSource",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.5,ge=.5,Se=.5,be=.5,Ae=new go.PathFigure((Se-ge)*ne,be*te,!1);return he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te,(Se-se)*ne,(be-ge)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,be*te,(Se+se)*ne,(be-ge)*te,(Se+ge)*ne,(be-se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te,(Se+se)*ne,(be+ge)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se-ge)*ne,be*te,(Se-se)*ne,(be+ge)*te,(Se-ge)*ne,(be+se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Move,(Se-ge+.1)*ne,be*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge-.1)*ne,be*te,Se*ne,(be-ge)*te,Se*ne,(be+ge)*te)),he}),go.Shape.defineFigureGenerator("DCvoltageSource",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.75*te,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,.25*te)),se.add(new go.PathSegment(go.PathSegment.Move,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),he}),go.Shape.defineFigureGenerator("Diode",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne,0,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),he.spot1=new go.Spot(0,.25),he.spot2=new go.Spot(.5,.75),he}),go.Shape.defineFigureGenerator("Wifi",function(Fe,ne,te){var he=new go.Geometry,se=ne,ge=te;ne=ne*.38,te=te*.6;var Se=Ge*.8,be=.8,Ae=0,Le=.5,je=(se-ne)/2,$e=(ge-te)/2,qe=new go.PathFigure(Ae*ne+je,(Le+be)*te+$e,!0);he.add(qe),qe.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-be)*ne+je,Le*te+$e,(Ae-Se)*ne+je,(Le+be)*te+$e,(Ae-be)*ne+je,(Le+Se)*te+$e)),qe.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne+je,(Le-be)*te+$e,(Ae-be)*ne+je,(Le-Se)*te+$e,(Ae-Se)*ne+je,(Le-be)*te+$e)),qe.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-be+Se*.5)*ne+je,Le*te+$e,Ae*ne+je,(Le-be)*te+$e,(Ae-be+Se*.5)*ne+je,(Le-Se)*te+$e)),qe.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne+je,(Le+be)*te+$e,(Ae-be+Se*.5)*ne+je,(Le+Se)*te+$e,Ae*ne+je,(Le+be)*te+$e).close()),Se=Ge*.4,be=.4,Ae=.2,Le=.5;var nt=new go.PathFigure(Ae*ne+je,(Le+be)*te+$e,!0);he.add(nt),nt.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-be)*ne+je,Le*te+$e,(Ae-Se)*ne+je,(Le+be)*te+$e,(Ae-be)*ne+je,(Le+Se)*te+$e)),nt.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne+je,(Le-be)*te+$e,(Ae-be)*ne+je,(Le-Se)*te+$e,(Ae-Se)*ne+je,(Le-be)*te+$e)),nt.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-be+Se*.5)*ne+je,Le*te+$e,Ae*ne+je,(Le-be)*te+$e,(Ae-be+Se*.5)*ne+je,(Le-Se)*te+$e)),nt.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne+je,(Le+be)*te+$e,(Ae-be+Se*.5)*ne+je,(Le+Se)*te+$e,Ae*ne+je,(Le+be)*te+$e).close()),Se=Ge*.2,be=.2,Ae=.5,Le=.5;var dt=new go.PathFigure((Ae-be)*ne+je,Le*te+$e,!0);he.add(dt),dt.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne+je,(Le-be)*te+$e,(Ae-be)*ne+je,(Le-Se)*te+$e,(Ae-Se)*ne+je,(Le-be)*te+$e)),dt.add(new go.PathSegment(go.PathSegment.Bezier,(Ae+be)*ne+je,Le*te+$e,(Ae+Se)*ne+je,(Le-be)*te+$e,(Ae+be)*ne+je,(Le-Se)*te+$e)),dt.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne+je,(Le+be)*te+$e,(Ae+be)*ne+je,(Le+Se)*te+$e,(Ae+Se)*ne+je,(Le+be)*te+$e)),dt.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-be)*ne+je,Le*te+$e,(Ae-Se)*ne+je,(Le+be)*te+$e,(Ae-be)*ne+je,(Le+Se)*te+$e)),Se=Ge*.4,be=.4,Ae=.8,Le=.5;var it=new go.PathFigure(Ae*ne+je,(Le-be)*te+$e,!0);he.add(it),it.add(new go.PathSegment(go.PathSegment.Bezier,(Ae+be)*ne+je,Le*te+$e,(Ae+Se)*ne+je,(Le-be)*te+$e,(Ae+be)*ne+je,(Le-Se)*te+$e)),it.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne+je,(Le+be)*te+$e,(Ae+be)*ne+je,(Le+Se)*te+$e,(Ae+Se)*ne+je,(Le+be)*te+$e)),it.add(new go.PathSegment(go.PathSegment.Bezier,(Ae+be-Se*.5)*ne+je,Le*te+$e,Ae*ne+je,(Le+be)*te+$e,(Ae+be-Se*.5)*ne+je,(Le+Se)*te+$e)),it.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne+je,(Le-be)*te+$e,(Ae+be-Se*.5)*ne+je,(Le-Se)*te+$e,Ae*ne+je,(Le-be)*te+$e).close()),Se=Ge*.8,be=.8,Ae=1,Le=.5;var bt=new go.PathFigure(Ae*ne+je,(Le-be)*te+$e,!0);return he.add(bt),bt.add(new go.PathSegment(go.PathSegment.Bezier,(Ae+be)*ne+je,Le*te+$e,(Ae+Se)*ne+je,(Le-be)*te+$e,(Ae+be)*ne+je,(Le-Se)*te+$e)),bt.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne+je,(Le+be)*te+$e,(Ae+be)*ne+je,(Le+Se)*te+$e,(Ae+Se)*ne+je,(Le+be)*te+$e)),bt.add(new go.PathSegment(go.PathSegment.Bezier,(Ae+be-Se*.5)*ne+je,Le*te+$e,Ae*ne+je,(Le+be)*te+$e,(Ae+be-Se*.5)*ne+je,(Le+Se)*te+$e)),bt.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne+je,(Le-be)*te+$e,(Ae+be-Se*.5)*ne+je,(Le-Se)*te+$e,Ae*ne+je,(Le-be)*te+$e).close()),he}),go.Shape.defineFigureGenerator("Email",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,0).close());var ge=new go.PathFigure(0,0,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.6*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,0)),ge.add(new go.PathSegment(go.PathSegment.Move,0,te)),ge.add(new go.PathSegment(go.PathSegment.Line,.45*ne,.54*te)),ge.add(new go.PathSegment(go.PathSegment.Move,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,.55*ne,.54*te)),he}),go.Shape.defineFigureGenerator("Ethernet",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.35*ne,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.65*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.65*ne,.4*te)),se.add(new go.PathSegment(go.PathSegment.Line,.35*ne,.4*te)),se.add(new go.PathSegment(go.PathSegment.Line,.35*ne,0).close());var ge=new go.PathFigure(.1*ne,te,!0,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.4*ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,.4*ne,.6*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.1*ne,.6*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.1*ne,te).close());var Se=new go.PathFigure(.6*ne,te,!0,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.6*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.6*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.6*ne,te).close());var be=new go.PathFigure(0,.5*te,!1);return he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),be.add(new go.PathSegment(go.PathSegment.Move,.5*ne,.5*te)),be.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.4*te)),be.add(new go.PathSegment(go.PathSegment.Move,.75*ne,.5*te)),be.add(new go.PathSegment(go.PathSegment.Line,.75*ne,.6*te)),be.add(new go.PathSegment(go.PathSegment.Move,.25*ne,.5*te)),be.add(new go.PathSegment(go.PathSegment.Line,.25*ne,.6*te)),he}),go.Shape.defineFigureGenerator("Power",function(Fe,ne,te){var he=new go.Geometry,se=Ge*.4,ge=.4,Se=.5,be=.5,Ae=ce(),Le=ce(),je=ce(),$e=ce();Me(Se,be-ge,Se+se,be-ge,Se+ge,be-se,Se+ge,be,.5,Ae,Ae,Le,je,$e);var qe=ue(Le.x,Le.y),nt=new go.PathFigure(Le.x*ne,Le.y*te,!0);he.add(nt),nt.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,be*te,je.x*ne,je.y*te,$e.x*ne,$e.y*te)),nt.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te,(Se+se)*ne,(be+ge)*te)),nt.add(new go.PathSegment(go.PathSegment.Bezier,(Se-ge)*ne,be*te,(Se-se)*ne,(be+ge)*te,(Se-ge)*ne,(be+se)*te)),Me(Se-ge,be,Se-ge,be-se,Se-se,be-ge,Se,be-ge,.5,je,$e,Le,Ae,Ae),nt.add(new go.PathSegment(go.PathSegment.Bezier,Le.x*ne,Le.y*te,je.x*ne,je.y*te,$e.x*ne,$e.y*te)),se=Ge*.3,ge=.3,Me(Se-ge,be,Se-ge,be-se,Se-se,be-ge,Se,be-ge,.5,je,$e,Le,Ae,Ae),nt.add(new go.PathSegment(go.PathSegment.Line,Le.x*ne,Le.y*te)),nt.add(new go.PathSegment(go.PathSegment.Bezier,(Se-ge)*ne,be*te,$e.x*ne,$e.y*te,je.x*ne,je.y*te)),nt.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+ge)*te,(Se-ge)*ne,(be+se)*te,(Se-se)*ne,(be+ge)*te)),nt.add(new go.PathSegment(go.PathSegment.Bezier,(Se+ge)*ne,be*te,(Se+se)*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),Me(Se,be-ge,Se+se,be-ge,Se+ge,be-se,Se+ge,be,.5,Ae,Ae,Le,je,$e),nt.add(new go.PathSegment(go.PathSegment.Bezier,Le.x*ne,Le.y*te,$e.x*ne,$e.y*te,je.x*ne,je.y*te).close());var nt=new go.PathFigure(.45*ne,0,!0);return he.add(nt),nt.add(new go.PathSegment(go.PathSegment.Line,.45*ne,.5*te)),nt.add(new go.PathSegment(go.PathSegment.Line,.55*ne,.5*te)),nt.add(new go.PathSegment(go.PathSegment.Line,.55*ne,0).close()),Pe(Ae),Pe(Le),Pe(je),Pe($e),Pe(qe),he.spot1=new go.Spot(.25,.45),he.spot2=new go.Spot(.75,.8),he}),go.Shape.defineFigureGenerator("Fallout",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,te/2,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Arc,180,360,ne/2,te/2,ne/2,te/2));function ge(Se,be,Ae){Se.add(new go.PathSegment(go.PathSegment.Move,(.3+be)*ne,(.8+Ae)*te)),Se.add(new go.PathSegment(go.PathSegment.Line,(.5+be)*ne,(.5+Ae)*te)),Se.add(new go.PathSegment(go.PathSegment.Line,(.1+be)*ne,(.5+Ae)*te)),Se.add(new go.PathSegment(go.PathSegment.Line,(.3+be)*ne,(.8+Ae)*te).close())}return ge(se,0,0),ge(se,.4,0),ge(se,.2,-.3),he}),go.Shape.defineFigureGenerator("IrritationHazard",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.2*ne,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.3*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,.7*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.7*te)),se.add(new go.PathSegment(go.PathSegment.Line,.2*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,.3*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.2*te).close()),he.spot1=new go.Spot(.3,.3),he.spot2=new go.Spot(.7,.7),he}),go.Shape.defineFigureGenerator("ElectricalHazard",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.37*ne,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.11*te)),se.add(new go.PathSegment(go.PathSegment.Line,.77*ne,.04*te)),se.add(new go.PathSegment(go.PathSegment.Line,.33*ne,.49*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.37*te)),se.add(new go.PathSegment(go.PathSegment.Line,.63*ne,.86*te)),se.add(new go.PathSegment(go.PathSegment.Line,.77*ne,.91*te)),se.add(new go.PathSegment(go.PathSegment.Line,.34*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.34*ne,.78*te)),se.add(new go.PathSegment(go.PathSegment.Line,.44*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,.65*ne,.56*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.68*te).close()),he}),go.Shape.defineFigureGenerator("FireHazard",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.1*ne,te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Bezier,.29*ne,0,-.25*ne,.63*te,.45*ne,.44*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.51*ne,.42*te,.48*ne,.17*te,.54*ne,.35*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.59*ne,.18*te,.59*ne,.29*te,.58*ne,.28*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.75*ne,.6*te,.8*ne,.34*te,.88*ne,.43*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.88*ne,.31*te,.87*ne,.48*te,.88*ne,.43*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.9*ne,te,1.17*ne,.76*te,.82*ne,.8*te).close()),he.spot1=new go.Spot(.07,.445),he.spot2=new go.Spot(.884,.958),he}),go.Shape.defineFigureGenerator("BpmnActivityLoop",function(Fe,ne,te){var he=new go.Geometry,se=.5,ge=0,Se=0,be=se*Ge,Ae=.4*Math.SQRT2/2+.5,Le=.5-.5*Math.SQRT2/2,je=1,$e=.5,qe=.5,nt=0,dt=new go.PathFigure(Ae*ne,(1-Le)*te,!1);return he.add(dt),dt.add(new go.PathSegment(go.PathSegment.Bezier,je*ne,$e*te,je*ne,.7*te,je*ne,$e*te)),dt.add(new go.PathSegment(go.PathSegment.Bezier,(qe+ge)*ne,(nt+ge)*te,(.5+se+ge)*ne,(.5-be+ge)*te,(.5+be+ge)*ne,(.5-se+ge)*te)),dt.add(new go.PathSegment(go.PathSegment.Bezier,(.5-se+ge)*ne,(.5+Se)*te,(.5-be+ge)*ne,(.5-se+Se)*te,(.5-se+ge)*ne,(.5-be+Se)*te)),dt.add(new go.PathSegment(go.PathSegment.Bezier,(.35+ge)*ne,.9*te,(.5-se+ge)*ne,(.5+be+Se)*te,(.5-be+ge)*ne,.9*te)),dt.add(new go.PathSegment(go.PathSegment.Move,(.25+ge)*ne,.8*te)),dt.add(new go.PathSegment(go.PathSegment.Line,(.35+ge)*ne,.9*te)),dt.add(new go.PathSegment(go.PathSegment.Line,(.2+ge)*ne,.95*te)),he}),go.Shape.defineFigureGenerator("BpmnActivityParallel",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Move,.5*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Move,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),he}),go.Shape.defineFigureGenerator("BpmnActivitySequential",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Move,0,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Move,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),he}),go.Shape.defineFigureGenerator("BpmnActivityAdHoc",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!1);he.add(se);var ge=new go.PathFigure(ne,te,!1);he.add(ge);var Se=new go.PathFigure(0,.5*te,!1);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.5*te,.2*ne,.35*te,.3*ne,.35*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.5*te,.7*ne,.65*te,.8*ne,.65*te)),he}),go.Shape.defineFigureGenerator("BpmnActivityCompensation",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.5*te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te).close()),he}),go.Shape.defineFigureGenerator("BpmnTaskMessage",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.2*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.8*te).close());var se=new go.PathFigure(0,.2*te,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.2*te)),he}),go.Shape.defineFigureGenerator("BpmnTaskScript",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.7*ne,te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.3*ne,te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.3*ne,0,.6*ne,.5*te,0,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.7*ne,0)),se.add(new go.PathSegment(go.PathSegment.Bezier,.7*ne,te,.4*ne,.5*te,ne,.5*te).close());var ge=new go.PathFigure(.45*ne,.73*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.7*ne,.73*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.38*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.63*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.31*ne,.27*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.56*ne,.27*te)),he}),go.Shape.defineFigureGenerator("BpmnTaskUser",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!1);he.add(se);var ge=new go.PathFigure(.335*ne,(1-.555)*te,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.335*ne,(1-.405)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,(1-.335)*ne,(1-.405)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,(1-.335)*ne,(1-.555)*te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,ne,.68*te,(1-.12)*ne,.46*te,(1-.02)*ne,.54*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,.68*te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,.335*ne,(1-.555)*te,.02*ne,.54*te,.12*ne,.46*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.365*ne,(1-.595)*te));var Se=.5-.285,be=.5,Ae=Se,Le=Math.PI/4,je=4*(1-Math.cos(Le))/(3*Math.sin(Le)),$e=je*.5,qe=Se,nt=Se,dt=je*qe,it=je*nt;ge.add(new go.PathSegment(go.PathSegment.Bezier,(be-qe)*ne,Ae*te,(be-(dt+qe)/2)*ne,(Ae+(nt+it)/2)*te,(be-qe)*ne,(Ae+it)*te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,be*ne,(Ae-nt)*te,(be-qe)*ne,(Ae-it)*te,(be-dt)*ne,(Ae-nt)*te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,(be+qe)*ne,Ae*te,(be+dt)*ne,(Ae-nt)*te,(be+qe)*ne,(Ae-it)*te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,(1-.365)*ne,(1-.595)*te,(be+qe)*ne,(Ae+it)*te,(be+(dt+qe)/2)*ne,(Ae+(nt+it)/2)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,(1-.365)*ne,(1-.595)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,(1-.335)*ne,(1-.555)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,(1-.335)*ne,(1-.405)*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.335*ne,(1-.405)*te));var bt=new go.PathFigure(.2*ne,te,!1);he.add(bt),bt.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.8*te));var It=new go.PathFigure(.8*ne,te,!1);return he.add(It),It.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.8*te)),he}),go.Shape.defineFigureGenerator("BpmnEventConditional",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.1*ne,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.1*ne,te).close());var ge=new go.PathFigure(.2*ne,.2*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.2*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.2*ne,.4*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.4*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.2*ne,.6*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.6*te)),ge.add(new go.PathSegment(go.PathSegment.Move,.2*ne,.8*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.8*te)),he}),go.Shape.defineFigureGenerator("BpmnEventError",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.33*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.66*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.66*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.33*ne,.5*te).close()),he}),go.Shape.defineFigureGenerator("BpmnEventEscalation",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!1);he.add(se);var ge=new go.PathFigure(ne,te,!1);he.add(ge);var Se=new go.PathFigure(.1*ne,te,!0);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.5*te).close()),he}),go.Shape.defineFigureGenerator("Caution",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.05*ne,te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Bezier,.1*ne,.8*te,0,te,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,.45*ne,.1*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.55*ne,.1*te,.5*ne,0,.5*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.95*ne,.9*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.9*ne,te,ne,te,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.05*ne,te));var ge=.05;return se.add(new go.PathSegment(go.PathSegment.Move,(.5-ge)*ne,.875*te)),se.add(new go.PathSegment(go.PathSegment.Arc,180,-360,.5*ne,.875*te,ge*ne,ge*te)),se.add(new go.PathSegment(go.PathSegment.Move,.5*ne,.75*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.325*te,.575*ne,.725*te,.625*ne,.375*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.75*te,.375*ne,.375*te,.425*ne,.725*te)),he}),go.Shape.defineFigureGenerator("Recycle",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.45*ne,.95*te,!1);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.95*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.185*ne,.85*te,.17*ne,.95*te,.15*ne,.9*te)),se.add(new go.PathSegment(go.PathSegment.Line,.235*ne,.75*te)),se.add(new go.PathSegment(go.PathSegment.Line,.3*ne,.625*te)),se.add(new go.PathSegment(go.PathSegment.Line,.35*ne,.65*te)),se.add(new go.PathSegment(go.PathSegment.Line,.275*ne,.45*te)),se.add(new go.PathSegment(go.PathSegment.Line,.05*ne,.45*te)),se.add(new go.PathSegment(go.PathSegment.Line,.1*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.05*ne,.575*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.1875*ne,.95*te,0,.675*te,0,.7*te)),se.add(new go.PathSegment(go.PathSegment.Move,.45*ne,.95*te)),se.add(new go.PathSegment(go.PathSegment.Line,.45*ne,.775*te)),se.add(new go.PathSegment(go.PathSegment.Line,.22*ne,.775*te));var ge=new go.PathFigure(.475*ne,.2*te,!1);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.4*ne,.4*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.225*ne,.3*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.275*ne,.175*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.325*ne,.05*te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,.4*ne,.05*te,.35*ne,0,.375*ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,.575*ne,.375*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.525*ne,.4*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.75*ne,.475*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.85*ne,.315*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.32*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.65*ne,.05*te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,.575*ne,0,.65*ne,.05*te,.625*ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,.38*ne,.0105*te));var Se=new go.PathFigure(.675*ne,.575*te,!1);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,.875*ne,.525*te)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,.775*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,.85*ne,.95*te,ne,.8*te,ne,.85*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.65*ne,.95*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.65*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Line,.55*ne,.85*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.65*ne,.725*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.65*ne,.775*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.7*ne,.775*te)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,.775*te)),Se.add(new go.PathSegment(go.PathSegment.Move,.675*ne,.575*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.775*ne,.775*te)),he}),go.Shape.defineFigureGenerator("BpmnEventTimer",function(Fe,ne,te){var he=new go.Geometry,se=.5,ge=Ge*.5,Se=new go.PathFigure(ne,se*te,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Bezier,se*ne,te,ne,(se+ge)*te,(se+ge)*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,se*te,(se-ge)*ne,te,0,(se+ge)*te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,se*ne,0,0,(se-ge)*te,(se-ge)*ne,0)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne,se*te,(se+ge)*ne,0,ne,(se-ge)*te));var be=new go.PathFigure(se*ne,0,!1);return he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,se*ne,.15*te)),be.add(new go.PathSegment(go.PathSegment.Move,se*ne,te)),be.add(new go.PathSegment(go.PathSegment.Line,se*ne,.85*te)),be.add(new go.PathSegment(go.PathSegment.Move,0,se*te)),be.add(new go.PathSegment(go.PathSegment.Line,.15*ne,se*te)),be.add(new go.PathSegment(go.PathSegment.Move,ne,se*te)),be.add(new go.PathSegment(go.PathSegment.Line,.85*ne,se*te)),be.add(new go.PathSegment(go.PathSegment.Move,se*ne,se*te)),be.add(new go.PathSegment(go.PathSegment.Line,.58*ne,.1*te)),be.add(new go.PathSegment(go.PathSegment.Move,se*ne,se*te)),be.add(new go.PathSegment(go.PathSegment.Line,.78*ne,.54*te)),he}),go.Shape.defineFigureGenerator("Package",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.15*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,.15*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te).close());var ge=new go.PathFigure(0,.15*te,!0);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,0,0)),ge.add(new go.PathSegment(go.PathSegment.Line,.6*ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,.65*ne,.15*te).close()),he.spot1=new go.Spot(0,.1),he.spot2=new go.Spot(1,1),he}),go.Shape.defineFigureGenerator("Class",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,0).close());var ge=new go.PathFigure(0,.2*te,!1);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.2*te).close());var Se=new go.PathFigure(0,.5*te,!1);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te).close()),he}),go.Shape.defineFigureGenerator("Component",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne,te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.15*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.15*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te).close());var ge=new go.PathFigure(0,.2*te,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.45*ne,.2*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.45*ne,.4*te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,.4*te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,.2*te).close());var Se=new go.PathFigure(0,.6*te,!0);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,.45*ne,.6*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.45*ne,.8*te)),Se.add(new go.PathSegment(go.PathSegment.Line,0,.8*te)),Se.add(new go.PathSegment(go.PathSegment.Line,0,.6*te).close()),he}),go.Shape.defineFigureGenerator("Boat Shipment",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.15*ne,.6*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.15*ne,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,.15*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.85*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,.85*ne,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.15*ne,.6*te));var ge=new go.PathFigure(.15*ne,.6*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.85*ne,.6*te)),he}),go.Shape.defineFigureGenerator("Customer/Supplier",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne,te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.66*ne,.33*te)),se.add(new go.PathSegment(go.PathSegment.Line,.66*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.33*ne,.33*te)),se.add(new go.PathSegment(go.PathSegment.Line,.33*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,0,.33*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te).close()),he}),go.Shape.defineFigureGenerator("Workcell",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.65*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.65*ne,.4*te)),se.add(new go.PathSegment(go.PathSegment.Line,.35*ne,.4*te)),se.add(new go.PathSegment(go.PathSegment.Line,.35*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te).close()),he}),go.Shape.defineFigureGenerator("Supermarket",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.33*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.33*te)),se.add(new go.PathSegment(go.PathSegment.Move,ne,.33*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.66*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.66*te)),se.add(new go.PathSegment(go.PathSegment.Move,ne,.66*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),he}),go.Shape.defineFigureGenerator("TruckShipment",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.6*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,0).close());var ge=new go.PathFigure(ne,.8*te,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.4*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.4*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.8*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.8*te).close());var Se=.1,be=Ge*.1,Ae=.2,Le=.9,je=new go.PathFigure((Ae-Se)*ne,Le*te,!0);he.add(je),je.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le-Se)*te,(Ae-Se)*ne,(Le-be)*te,(Ae-be)*ne,(Le-Se)*te)),je.add(new go.PathSegment(go.PathSegment.Bezier,(Ae+Se)*ne,Le*te,(Ae+be)*ne,(Le-Se)*te,(Ae+Se)*ne,(Le-be)*te)),je.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le+Se)*te,(Ae+Se)*ne,(Le+be)*te,(Ae+be)*ne,(Le+Se)*te)),je.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-Se)*ne,Le*te,(Ae-be)*ne,(Le+Se)*te,(Ae-Se)*ne,(Le+be)*te).close()),Se=.1,be=Ge*.1,Ae=.8,Le=.9;var $e=new go.PathFigure((Ae-Se)*ne,Le*te,!0);return he.add($e),$e.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le-Se)*te,(Ae-Se)*ne,(Le-be)*te,(Ae-be)*ne,(Le-Se)*te)),$e.add(new go.PathSegment(go.PathSegment.Bezier,(Ae+Se)*ne,Le*te,(Ae+be)*ne,(Le-Se)*te,(Ae+Se)*ne,(Le-be)*te)),$e.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ne,(Le+Se)*te,(Ae+Se)*ne,(Le+be)*te,(Ae+be)*ne,(Le+Se)*te)),$e.add(new go.PathSegment(go.PathSegment.Bezier,(Ae-Se)*ne,Le*te,(Ae-be)*ne,(Le+Se)*te,(Ae-Se)*ne,(Le+be)*te).close()),he}),go.Shape.defineFigureGenerator("KanbanPost",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.2*ne,0,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,0)),se.add(new go.PathSegment(go.PathSegment.Move,.5*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.2*ne,te)),se.add(new go.PathSegment(go.PathSegment.Move,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,te)),he}),go.Shape.defineFigureGenerator("Forklift",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,.4*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,0,0));var ge=new go.PathFigure(0,.5*te,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,0,.8*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.8*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Line,0,.5*te));var Se=new go.PathFigure(.5*ne,.8*te,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.1*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.55*ne,.1*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.55*ne,.8*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.8*te));var be=new go.PathFigure(.5*ne,.7*te,!1);he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,ne,.7*te));var Ae=.1,Le=Ge*.1,je=.1,$e=.9,qe=new go.PathFigure((je-Ae)*ne,$e*te,!0);he.add(qe),qe.add(new go.PathSegment(go.PathSegment.Bezier,je*ne,($e-Ae)*te,(je-Ae)*ne,($e-Le)*te,(je-Le)*ne,($e-Ae)*te)),qe.add(new go.PathSegment(go.PathSegment.Bezier,(je+Ae)*ne,$e*te,(je+Le)*ne,($e-Ae)*te,(je+Ae)*ne,($e-Le)*te)),qe.add(new go.PathSegment(go.PathSegment.Bezier,je*ne,($e+Ae)*te,(je+Ae)*ne,($e+Le)*te,(je+Le)*ne,($e+Ae)*te)),qe.add(new go.PathSegment(go.PathSegment.Bezier,(je-Ae)*ne,$e*te,(je-Le)*ne,($e+Ae)*te,(je-Ae)*ne,($e+Le)*te)),Ae=.1,Le=Ge*.1,je=.4,$e=.9;var nt=new go.PathFigure((je-Ae)*ne,$e*te,!0);return he.add(nt),nt.add(new go.PathSegment(go.PathSegment.Bezier,je*ne,($e-Ae)*te,(je-Ae)*ne,($e-Le)*te,(je-Le)*ne,($e-Ae)*te)),nt.add(new go.PathSegment(go.PathSegment.Bezier,(je+Ae)*ne,$e*te,(je+Le)*ne,($e-Ae)*te,(je+Ae)*ne,($e-Le)*te)),nt.add(new go.PathSegment(go.PathSegment.Bezier,je*ne,($e+Ae)*te,(je+Ae)*ne,($e+Le)*te,(je+Le)*ne,($e+Ae)*te)),nt.add(new go.PathSegment(go.PathSegment.Bezier,(je-Ae)*ne,$e*te,(je-Le)*ne,($e+Ae)*te,(je-Ae)*ne,($e+Le)*te)),he}),go.Shape.defineFigureGenerator("RailShipment",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.1*ne,.4*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.45*ne,.4*te)),se.add(new go.PathSegment(go.PathSegment.Line,.45*ne,.9*te)),se.add(new go.PathSegment(go.PathSegment.Line,.1*ne,.9*te)),se.add(new go.PathSegment(go.PathSegment.Line,.1*ne,.4*te).close());var ge=new go.PathFigure(.45*ne,.7*te,!1);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.55*ne,.7*te));var Se=new go.PathFigure(.55*ne,.4*te,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.4*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.9*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.55*ne,.9*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.55*ne,.4*te).close());var je=.05,$e=Ge*.05,qe=.175,nt=.95,be=new go.PathFigure((qe-je)*ne,nt*te,!0);he.add(be),be.add(new go.PathSegment(go.PathSegment.Bezier,qe*ne,(nt-je)*te,(qe-je)*ne,(nt-$e)*te,(qe-$e)*ne,(nt-je)*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,(qe+je)*ne,nt*te,(qe+$e)*ne,(nt-je)*te,(qe+je)*ne,(nt-$e)*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,qe*ne,(nt+je)*te,(qe+je)*ne,(nt+$e)*te,(qe+$e)*ne,(nt+je)*te)),be.add(new go.PathSegment(go.PathSegment.Bezier,(qe-je)*ne,nt*te,(qe-$e)*ne,(nt+je)*te,(qe-je)*ne,(nt+$e)*te));var je=.05,$e=Ge*.05,qe=.375,nt=.95,Ae=new go.PathFigure((qe-je)*ne,nt*te,!0);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,qe*ne,(nt-je)*te,(qe-je)*ne,(nt-$e)*te,(qe-$e)*ne,(nt-je)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(qe+je)*ne,nt*te,(qe+$e)*ne,(nt-je)*te,(qe+je)*ne,(nt-$e)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,qe*ne,(nt+je)*te,(qe+je)*ne,(nt+$e)*te,(qe+$e)*ne,(nt+je)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(qe-je)*ne,nt*te,(qe-$e)*ne,(nt+je)*te,(qe-je)*ne,(nt+$e)*te));var je=.05,$e=Ge*.05,qe=.625,nt=.95,Le=new go.PathFigure((qe-je)*ne,nt*te,!0);he.add(Le),Le.add(new go.PathSegment(go.PathSegment.Bezier,qe*ne,(nt-je)*te,(qe-je)*ne,(nt-$e)*te,(qe-$e)*ne,(nt-je)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,(qe+je)*ne,nt*te,(qe+$e)*ne,(nt-je)*te,(qe+je)*ne,(nt-$e)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,qe*ne,(nt+je)*te,(qe+je)*ne,(nt+$e)*te,(qe+$e)*ne,(nt+je)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,(qe-je)*ne,nt*te,(qe-$e)*ne,(nt+je)*te,(qe-je)*ne,(nt+$e)*te));var je=.05,$e=Ge*.05,qe=.825,nt=.95,dt=new go.PathFigure((qe-je)*ne,nt*te,!0);he.add(dt),dt.add(new go.PathSegment(go.PathSegment.Bezier,qe*ne,(nt-je)*te,(qe-je)*ne,(nt-$e)*te,(qe-$e)*ne,(nt-je)*te)),dt.add(new go.PathSegment(go.PathSegment.Bezier,(qe+je)*ne,nt*te,(qe+$e)*ne,(nt-je)*te,(qe+je)*ne,(nt-$e)*te)),dt.add(new go.PathSegment(go.PathSegment.Bezier,qe*ne,(nt+je)*te,(qe+je)*ne,(nt+$e)*te,(qe+$e)*ne,(nt+je)*te)),dt.add(new go.PathSegment(go.PathSegment.Bezier,(qe-je)*ne,nt*te,(qe-$e)*ne,(nt+je)*te,(qe-je)*ne,(nt+$e)*te).close());var it=new go.PathFigure(0,te,!1);return he.add(it),it.add(new go.PathSegment(go.PathSegment.Line,ne,te).close()),he}),go.Shape.defineFigureGenerator("Warehouse",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,0).close());var ge=new go.PathFigure(0,.2*te,!1);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.2*te).close());var Se=new go.PathFigure(.15*ne,te,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,.15*ne,.5*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.4*ne,.5*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.4*ne,te)),Se.add(new go.PathSegment(go.PathSegment.Line,.15*ne,te).close());var be=.05,Ae=Ge*.05,Le=.35,je=.775,$e=new go.PathFigure((Le-be)*ne,je*te,!0);return he.add($e),$e.add(new go.PathSegment(go.PathSegment.Bezier,Le*ne,(je-be)*te,(Le-be)*ne,(je-Ae)*te,(Le-Ae)*ne,(je-be)*te)),$e.add(new go.PathSegment(go.PathSegment.Bezier,(Le+be)*ne,je*te,(Le+Ae)*ne,(je-be)*te,(Le+be)*ne,(je-Ae)*te)),$e.add(new go.PathSegment(go.PathSegment.Bezier,Le*ne,(je+be)*te,(Le+be)*ne,(je+Ae)*te,(Le+Ae)*ne,(je+be)*te)),$e.add(new go.PathSegment(go.PathSegment.Bezier,(Le-be)*ne,je*te,(Le-Ae)*ne,(je+be)*te,(Le-be)*ne,(je+Ae)*te).close()),he}),go.Shape.defineFigureGenerator("ControlCenter",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,.1*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,.1*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Move,.1*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.8*te).close()),he}),go.Shape.defineFigureGenerator("Bluetooth",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.75*te,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,.75*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.25*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.75*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.25*te)),he}),go.Shape.defineFigureGenerator("Bookmark",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,0,0)),se.add(new go.PathSegment(go.PathSegment.Move,.2*ne,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.2*te)),se.add(new go.PathSegment(go.PathSegment.Move,.2*ne,.4*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.4*te)),he}),go.Shape.defineFigureGenerator("Bookmark",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,0,0)),se.add(new go.PathSegment(go.PathSegment.Move,.2*ne,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.2*te)),se.add(new go.PathSegment(go.PathSegment.Move,.2*ne,.4*te)),se.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.4*te)),he}),go.Shape.defineFigureGenerator("Globe",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.5*ne,0,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Move,0,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Move,.5*ne,0)),se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.5*te,.75*ne,0,ne,.25*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,te,ne,.75*te,.75*ne,te)),se.add(new go.PathSegment(go.PathSegment.Bezier,0,.5*te,.25*ne,te,0,.75*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,0,0,.25*te,.25*ne,0)),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,te,.15*ne,.25*te,.15*ne,.75*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,0,.85*ne,.75*te,.85*ne,.25*te)),se.add(new go.PathSegment(go.PathSegment.Move,.1675*ne,.15*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.8325*ne,.15*te,.35*ne,.3*te,.65*ne,.3*te)),se.add(new go.PathSegment(go.PathSegment.Move,.1675*ne,.85*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.8325*ne,.85*te,.35*ne,.7*te,.65*ne,.7*te)),he}),go.Shape.defineFigureGenerator("Wave",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.25*te,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Bezier,.3*ne,.25*te,.1*ne,0,.2*ne,0)),se.add(new go.PathSegment(go.PathSegment.Bezier,.7*ne,.25*te,.425*ne,.5*te,.575*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.25*te,.8*ne,0,.9*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.75*te)),se.add(new go.PathSegment(go.PathSegment.Move,0,.25*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.75*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.3*ne,.75*te,.1*ne,.5*te,.2*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.7*ne,.75*te,.425*ne,te,.575*ne,te)),se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.75*te,.8*ne,.5*te,.9*ne,.5*te)),he}),go.Shape.defineFigureGenerator("Operator",function(Fe,ne,te){var he=new go.Geometry,se=.3,ge=Ge*.3,Se=.5,be=.7,Ae=new go.PathFigure((Se-se)*ne,be*te,!0);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-se)*te,(Se-se)*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+se)*ne,be*te,(Se+ge)*ne,(be-se)*te,(Se+se)*ne,(be-ge)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+se)*te,(Se+se)*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se-se)*ne,be*te,(Se-ge)*ne,(be+se)*te,(Se-se)*ne,(be+ge)*te));var Le=new go.PathFigure(0,.7*te,!1);return he.add(Le),Le.add(new go.PathSegment(go.PathSegment.Bezier,ne,.7*te,0,0,ne,0)),he}),go.Shape.defineFigureGenerator("TripleFanBlades",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.5*ne,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.65*te,.65*ne,.3*te,.65*ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,0,.35*ne,.5*te,.35*ne,.3*te)),se.add(new go.PathSegment(go.PathSegment.Move,.5*ne,.65*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,0,te,.3*ne,.6*te,.1*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.65*te,.2*ne,te,.35*ne,.95*te)),se.add(new go.PathSegment(go.PathSegment.Move,.5*ne,.65*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,ne,te,.7*ne,.6*te,.9*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.65*te,.8*ne,te,.65*ne,.95*te)),he}),go.Shape.defineFigureGenerator("CentrifugalPump",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne,0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.4*ne,0)),se.add(new go.PathSegment(go.PathSegment.Bezier,0,.5*te,0,.075*te,0,.5*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.4*ne,te,0,te,.4*ne,te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.8*ne,.4*te,.8*ne,te,.85*ne,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.4*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,0)),he}),go.Shape.defineFigureGenerator("Battery",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,.1*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.1*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Move,.4*ne,.1*te)),se.add(new go.PathSegment(go.PathSegment.Line,.4*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.6*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.1*te));var ge=new go.PathFigure(0,.6*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Move,0,.4*te)),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.4*te)),he}),go.Shape.defineFigureGenerator("Delete",function(Fe,ne,te){var he=new go.Geometry,se=.5,ge=Ge*.5,Se=.5,be=.5,Ae=new go.PathFigure((Se-se)*ne,be*te,!0);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-se)*te,(Se-se)*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+se)*ne,be*te,(Se+ge)*ne,(be-se)*te,(Se+se)*ne,(be-ge)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+se)*te,(Se+se)*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se-se)*ne,be*te,(Se-ge)*ne,(be+se)*te,(Se-se)*ne,(be+ge)*te));var Le=new go.PathFigure(.15*ne,.5*te,!1);return he.add(Le),Le.add(new go.PathSegment(go.PathSegment.Line,.85*ne,.5*te)),he}),go.Shape.defineFigureGenerator("Flag",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.1*te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Move,0,.1*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.1*te,.15*ne,0,.35*ne,0)),se.add(new go.PathSegment(go.PathSegment.Bezier,ne,.1*te,.65*ne,.2*te,.85*ne,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.5*te,.85*ne,.6*te,.65*ne,.6*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,0,.5*te,.35*ne,.4*te,.15*ne,.4*te).close()),he}),go.Shape.defineFigureGenerator("Help",function(Fe,ne,te){var he=new go.Geometry,se=.5,ge=Ge*.5,Se=.5,be=.5,Ae=new go.PathFigure((Se-se)*ne,be*te,!1);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-se)*te,(Se-se)*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se+se)*ne,be*te,(Se+ge)*ne,(be-se)*te,(Se+se)*ne,(be-ge)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+se)*te,(Se+se)*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(Se-se)*ne,be*te,(Se-ge)*ne,(be+se)*te,(Se-se)*ne,(be+ge)*te).close()),se=.05,ge=Ge*.05,Se=.5,be=.8;var Le=new go.PathFigure((Se-se)*ne,be*te,!1);return he.add(Le),Le.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be-se)*te,(Se-se)*ne,(be-ge)*te,(Se-ge)*ne,(be-se)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,(Se+se)*ne,be*te,(Se+ge)*ne,(be-se)*te,(Se+se)*ne,(be-ge)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,Se*ne,(be+se)*te,(Se+se)*ne,(be+ge)*te,(Se+ge)*ne,(be+se)*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,(Se-se)*ne,be*te,(Se-ge)*ne,(be+se)*te,(Se-se)*ne,(be+ge)*te).close()),Le.add(new go.PathSegment(go.PathSegment.Move,.5*ne,.7*te)),Le.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.5*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,.2*te,.75*ne,.475*te,.75*ne,.225*te)),Le.add(new go.PathSegment(go.PathSegment.Bezier,.3*ne,.35*te,.4*ne,.2*te,.3*ne,.25*te)),he}),go.Shape.defineFigureGenerator("Location",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(.5*ne,te,!0).add(new go.PathSegment(go.PathSegment.Line,.75*ne,.5*te)).add(new go.PathSegment(go.PathSegment.Bezier,.5*ne,0,.975*ne,.025*te,.5*ne,0)).add(new go.PathSegment(go.PathSegment.Bezier,.25*ne,.5*te,.5*ne,0,.025*ne,.025*te).close()).add(new go.PathSegment(go.PathSegment.Move,.5*ne,.2*te)).add(new go.PathSegment(go.PathSegment.Arc,270,360,.5*ne,.3*te,.1*ne,.1*te).close()))}),go.Shape.defineFigureGenerator("Lock",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.5*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.5*te));var ge=new go.PathFigure(.2*ne,.5*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Move,.2*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.3*te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,.8*ne,.3*te,.25*ne,0,.75*ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.3*te)),he}),go.Shape.defineFigureGenerator("Unlocked",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.5*te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.5*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.5*te));var ge=new go.PathFigure(.2*ne,.5*te,!1);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Move,.2*ne,.5*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.3*te)),ge.add(new go.PathSegment(go.PathSegment.Bezier,.8*ne,.3*te,.25*ne,0,.75*ne,0)),ge.add(new go.PathSegment(go.PathSegment.Line,.8*ne,.35*te)),he}),go.Shape.defineFigureGenerator("Gear",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(.9375*ne,.56246875*te,!0).add(new go.PathSegment(go.PathSegment.Line,.9375*ne,.4375*te)).add(new go.PathSegment(go.PathSegment.Line,.80621875*ne,.4375*te)).add(new go.PathSegment(go.PathSegment.Bezier,.763*ne,.3316875*te,.79840625*ne,.39915625*te,.7834375*ne,.3635*te)).add(new go.PathSegment(go.PathSegment.Line,.8566875*ne,.23796875*te)).add(new go.PathSegment(go.PathSegment.Line,.76825*ne,.14959375*te)).add(new go.PathSegment(go.PathSegment.Line,.67596875*ne,.24184375*te)).add(new go.PathSegment(go.PathSegment.Bezier,.5625*ne,.19378125*te,.64228125*ne,.2188125*te,.603875*ne,.2021875*te)).add(new go.PathSegment(go.PathSegment.Line,.5625*ne,.0625*te)).add(new go.PathSegment(go.PathSegment.Line,.4375*ne,.0625*te)).add(new go.PathSegment(go.PathSegment.Line,.4375*ne,.19378125*te)).add(new go.PathSegment(go.PathSegment.Bezier,.32775*ne,.239375*te,.39759375*ne,.20190625*te,.36053125*ne,.2176875*te)).add(new go.PathSegment(go.PathSegment.Line,.2379375*ne,.14959375*te)).add(new go.PathSegment(go.PathSegment.Line,.14953125*ne,.2379375*te)).add(new go.PathSegment(go.PathSegment.Line,.23934375*ne,.3278125*te)).add(new go.PathSegment(go.PathSegment.Bezier,.19378125*ne,.4375*te,.21765625*ne,.36059375*te,.201875*ne,.397625*te)).add(new go.PathSegment(go.PathSegment.Line,.0625*ne,.4375*te)).add(new go.PathSegment(go.PathSegment.Line,.0625*ne,.5625*te)).add(new go.PathSegment(go.PathSegment.Line,.1938125*ne,.5625*te)).add(new go.PathSegment(go.PathSegment.Bezier,.241875*ne,.67596875*te,.20221875*ne,.603875*te,.21884375*ne,.64228125*te)).add(new go.PathSegment(go.PathSegment.Line,.1495625*ne,.76825*te)).add(new go.PathSegment(go.PathSegment.Line,.238*ne,.8566875*te)).add(new go.PathSegment(go.PathSegment.Line,.3316875*ne,.76296875*te)).add(new go.PathSegment(go.PathSegment.Bezier,.43753125*ne,.80621875*te,.36353125*ne,.78340625*te,.3991875*ne,.79840625*te)).add(new go.PathSegment(go.PathSegment.Line,.43753125*ne,.9375*te)).add(new go.PathSegment(go.PathSegment.Line,.5625*ne,.9375*te)).add(new go.PathSegment(go.PathSegment.Line,.5625*ne,.80621875*te)).add(new go.PathSegment(go.PathSegment.Bezier,.67225*ne,.760625*te,.602375*ne,.79809375*te,.63946875*ne,.78234375*te)).add(new go.PathSegment(go.PathSegment.Line,.76828125*ne,.8566875*te)).add(new go.PathSegment(go.PathSegment.Line,.85671875*ne,.76825*te)).add(new go.PathSegment(go.PathSegment.Line,.76065625*ne,.67221875*te)).add(new go.PathSegment(go.PathSegment.Bezier,.80621875*ne,.56246875*te,.78234375*ne,.63940625*te,.798125*ne,.602375*te)).add(new go.PathSegment(go.PathSegment.Line,.9375*ne,.56246875*te).close()).add(new go.PathSegment(go.PathSegment.Move,.5*ne,.6*te)).add(new go.PathSegment(go.PathSegment.Arc,90,360,.5*ne,.5*te,.1*ne,.1*te).close()))}),go.Shape.defineFigureGenerator("Hand",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.5*te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Bezier,.1*ne,.3*te,0,.375*te,.05*ne,.325*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.45*ne,.075*te,.3*ne,.225*te,.4*ne,.175*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.525*ne,.075*te,.46*ne,.05*te,.525*ne,.05*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.3*ne,.4*te,.525*ne,.275*te,.475*ne,.325*te)),se.add(new go.PathSegment(go.PathSegment.Line,.9*ne,.4*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.9*ne,.55*te,ne,.4*te,ne,.55*te)),se.add(new go.PathSegment(go.PathSegment.Line,.425*ne,.55*te)),se.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.55*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.6*ne,.7*te,.675*ne,.55*te,.675*ne,.7*te)),se.add(new go.PathSegment(go.PathSegment.Line,.4*ne,.7*te)),se.add(new go.PathSegment(go.PathSegment.Line,.575*ne,.7*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.575*ne,.85*te,.65*ne,.7*te,.65*ne,.85*te)),se.add(new go.PathSegment(go.PathSegment.Line,.4*ne,.85*te)),se.add(new go.PathSegment(go.PathSegment.Line,.525*ne,.85*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.535*ne,te,.61*ne,.85*te,.61*ne,te)),se.add(new go.PathSegment(go.PathSegment.Bezier,0,.9*te,.435*ne,te,0,te).close()),he}),go.Shape.defineFigureGenerator("Map",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,.2*te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.25*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,ne,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,.25*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,te).close()),se.add(new go.PathSegment(go.PathSegment.Move,.25*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.25*ne,.8*te)),se.add(new go.PathSegment(go.PathSegment.Move,.5*ne,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te)),se.add(new go.PathSegment(go.PathSegment.Move,.75*ne,0)),se.add(new go.PathSegment(go.PathSegment.Line,.75*ne,.8*te)),he}),go.Shape.defineFigureGenerator("Eject",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,te,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne,te)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te*.7)),se.add(new go.PathSegment(go.PathSegment.Line,0,te*.7).close());var ge=new go.PathFigure(0,te*.6,!0);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne,.6*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.5*ne,0).close()),he}),go.Shape.defineFigureGenerator("Pencil",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,.2*ne,.1*te)).add(new go.PathSegment(go.PathSegment.Line,ne,.9*te)).add(new go.PathSegment(go.PathSegment.Line,.9*ne,te)).add(new go.PathSegment(go.PathSegment.Line,.1*ne,.2*te).close()))}),go.Shape.defineFigureGenerator("Building",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne*1,te*1,!1);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,0,te*.85)),se.add(new go.PathSegment(go.PathSegment.Line,.046*ne,te*.85)),se.add(new go.PathSegment(go.PathSegment.Line,.046*ne,te*.45)),se.add(new go.PathSegment(go.PathSegment.Line,0,te*.45)),se.add(new go.PathSegment(go.PathSegment.Line,0,te*.3)),se.add(new go.PathSegment(go.PathSegment.Line,.046*ne,te*.3)),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,te*0)),se.add(new go.PathSegment(go.PathSegment.Line,(1-.046)*ne,te*.3)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te*.3)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te*.45)),se.add(new go.PathSegment(go.PathSegment.Line,(1-.046)*ne,te*.45)),se.add(new go.PathSegment(go.PathSegment.Line,(1-.046)*ne,te*.85)),se.add(new go.PathSegment(go.PathSegment.Line,ne,te*.85).close());var ge=new go.PathFigure(.126*ne,.85*te,!1);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,.126*ne,.45*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.322*ne,.45*te)),ge.add(new go.PathSegment(go.PathSegment.Line,.322*ne,.85*te).close());var Se=new go.PathFigure(.402*ne,.85*te,!1);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,.402*ne,.45*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.598*ne,.45*te)),Se.add(new go.PathSegment(go.PathSegment.Line,.598*ne,.85*te).close());var be=new go.PathFigure(.678*ne,.85*te,!1);he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,.678*ne,.45*te)),be.add(new go.PathSegment(go.PathSegment.Line,.874*ne,.45*te)),be.add(new go.PathSegment(go.PathSegment.Line,.874*ne,.85*te).close());var Ae=new go.PathFigure(.5*ne,.1*te,!1);return he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,(.046+.15)*ne,.3*te)),Ae.add(new go.PathSegment(go.PathSegment.Line,(1-(.046+.15))*ne,.3*te).close()),he}),go.Shape.defineFigureGenerator("Staircase",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,te*1,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne*.2,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.2,te*.8)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.4,te*.8)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.4,te*.6)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.6,te*.6)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.6,te*.4)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.8,te*.4)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.8,te*.2)),se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*.2)),se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*.15)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.75,te*.15)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.75,te*.35)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.55,te*.35)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.55,te*.55)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.35,te*.55)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.35,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.15,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.15,te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,0,te*.95).close()),he}),go.Shape.defineFigureGenerator("5Bars",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,te*1,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne*.184,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.184,te*(1-.184)).close());var ge=new go.PathFigure(ne*.204,te,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.204,te*(1-.184))),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.388,te*(1-.184*2))),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.388,te*1).close());var Se=new go.PathFigure(ne*.408,te,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.408,te*(1-.184*2))),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.592,te*(1-.184*3))),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.592,te*1).close());var be=new go.PathFigure(ne*.612,te,!0);he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,ne*.612,te*(1-.184*3))),be.add(new go.PathSegment(go.PathSegment.Line,ne*.796,te*(1-.184*4))),be.add(new go.PathSegment(go.PathSegment.Line,ne*.796,te*1).close());var Ae=new go.PathFigure(ne*.816,te,!0);return he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*.816,te*(1-.184*4))),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*(1-.184*5))),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*1).close()),he}),go.Shape.defineFigureGenerator("PC",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,0,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.3,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.3,0).close());var ge=new go.PathFigure(ne*.055,.07*te,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.245,te*.07)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.245,te*.1)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.055,te*.1).close());var Se=new go.PathFigure(ne*.055,.13*te,!0);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.245,te*.13)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.245,te*.16)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.055,te*.16).close());var be=new go.PathFigure(ne*.055,.18*te,!0);he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,ne*.245,te*.18)),be.add(new go.PathSegment(go.PathSegment.Line,ne*.245,te*.21)),be.add(new go.PathSegment(go.PathSegment.Line,ne*.055,te*.21).close());var Ae=new go.PathFigure(ne*1,0,!0);return he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*.4,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*.4,te*.65)),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*.65).close()),he}),go.Shape.defineFigureGenerator("Plane",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(.55*ne,te,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,.5*ne,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,.4*ne,.7*te)),se.add(new go.PathSegment(go.PathSegment.Line,.1*ne,.475*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.35*ne,.525*te,0,.4*te,.225*ne,.45*te)),se.add(new go.PathSegment(go.PathSegment.Line,.4*ne,.475*te)),se.add(new go.PathSegment(go.PathSegment.Line,.15*ne,.35*te)),se.add(new go.PathSegment(go.PathSegment.Line,.2*ne,.325*te)),se.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.325*te)),se.add(new go.PathSegment(go.PathSegment.Line,.85*ne,.1*te)),se.add(new go.PathSegment(go.PathSegment.Bezier,.9*ne,.2*te,.975*ne,0,ne,.08*te)),se.add(new go.PathSegment(go.PathSegment.Line,.7*ne,.45*te)),se.add(new go.PathSegment(go.PathSegment.Line,.6*ne,.95*te)),se.add(new go.PathSegment(go.PathSegment.Line,.55*ne,te).close()),he}),go.Shape.defineFigureGenerator("Key",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne*1,te*.5,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne*.9,.4*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.5,.4*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.5,.35*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.45,.35*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.3,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.15,.2*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.35*te)),se.add(new go.PathSegment(go.PathSegment.Line,0,.65*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.15,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.3,.8*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.45,.65*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.5,.65*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.5,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.6,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.65,.55*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.7,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.75,.55*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.8,.6*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.85,.575*te)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.9,.6*te).close()),se.add(new go.PathSegment(go.PathSegment.Move,.17*ne,.425*te)),se.add(new go.PathSegment(go.PathSegment.Arc,270,360,.17*ne,.5*te,.075*ne,.075*te).close()),he}),go.Shape.defineFigureGenerator("FilmTape",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(0,0,!1);he.add(se),se.add(new go.PathSegment(go.PathSegment.Arc,270,180,ne*0,ne*.3,ne*.055)),se.add(new go.PathSegment(go.PathSegment.Line,0,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.08,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.08,te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*1),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*1),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*2),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*2),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*3),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*3),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*4),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*4),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*5),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*5),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*6),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*6),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*7),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*7),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*8),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*8),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*9),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*9),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*10),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*10),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*11),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*11),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*12),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*12),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*13),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*13),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*14),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*14),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*15),te*.95)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(.08+.056*15),te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*1));var ge=new go.PathFigure(0,0,!1);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*0)),ge.add(new go.PathSegment(go.PathSegment.Arc,270,-180,ne*1,ne*.3,ne*.055)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*1));var Se=new go.PathFigure(ne*.11,te*.1,!1);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne*(.11+.24133333*1+.028*0),te*.1)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*(.11+.24133333*1+.028*0),te*.8)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.11,te*.8).close());var be=new go.PathFigure(ne*(.11+.24133333*1+.028*1),te*.1,!1);he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,ne*(.11+.24133333*2+.028*1),te*.1)),be.add(new go.PathSegment(go.PathSegment.Line,ne*(.11+.24133333*2+.028*1),te*.8)),be.add(new go.PathSegment(go.PathSegment.Line,ne*(.11+.24133333*1+.028*1),te*.8).close());var Ae=new go.PathFigure(ne*(.11+.24133333*2+.028*2),te*.1,!1);return he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*(.11+.24133333*3+.028*2),te*.1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*(.11+.24133333*3+.028*2),te*.8)),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*(.11+.24133333*2+.028*2),te*.8).close()),he}),go.Shape.defineFigureGenerator("FloppyDisk",function(Fe,ne,te){var he=new go.Geometry,se=8,ge=se*Ge,Se=new go.PathFigure(se,0,!1);he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.86,0)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*.14)),Se.add(new go.PathSegment(go.PathSegment.Line,ne,te-se)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne-se,te,ne,te-ge,ne-ge,te)),Se.add(new go.PathSegment(go.PathSegment.Line,se,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,te-se,ge,te,0,te-ge)),Se.add(new go.PathSegment(go.PathSegment.Line,0,se)),Se.add(new go.PathSegment(go.PathSegment.Bezier,se,0,0,ge,ge,0).close());var be=new go.PathFigure(ne*.83,0,!1);he.add(be),be.add(new go.PathSegment(go.PathSegment.Line,ne*.83,te*.3)),be.add(new go.PathSegment(go.PathSegment.Line,ne*.17,te*.3)),be.add(new go.PathSegment(go.PathSegment.Line,ne*.17,te*0).close());var Ae=new go.PathFigure(ne*.83,te*1,!1);he.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*.83,te*.5)),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*.17,te*.5)),Ae.add(new go.PathSegment(go.PathSegment.Line,ne*.17,te*1).close());var Le=new go.PathFigure(ne*.78,te*.05,!1);return he.add(Le),Le.add(new go.PathSegment(go.PathSegment.Line,ne*.66,te*.05)),Le.add(new go.PathSegment(go.PathSegment.Line,ne*.66,te*.25)),Le.add(new go.PathSegment(go.PathSegment.Line,ne*.78,te*.25).close()),he}),go.Shape.defineFigureGenerator("SpeechBubble",function(Fe,ne,te){var he=Fe?Fe.parameter1:NaN;(isNaN(he)||he<0)&&(he=15),he=Math.min(he,ne/3),he=Math.min(he,te/3);var se=he*Ge,ge=te*.8,Se=new go.Geometry,be=new go.PathFigure(he,0,!0);return Se.add(be),be.add(new go.PathSegment(go.PathSegment.Line,ne-he,0)),be.add(new go.PathSegment(go.PathSegment.Bezier,ne,he,ne-se,0,ne,se)),be.add(new go.PathSegment(go.PathSegment.Line,ne,ge-he)),be.add(new go.PathSegment(go.PathSegment.Bezier,ne-he,ge,ne,ge-se,ne-se,ge)),be.add(new go.PathSegment(go.PathSegment.Line,ne*.7,ge)),be.add(new go.PathSegment(go.PathSegment.Line,ne*.7,te)),be.add(new go.PathSegment(go.PathSegment.Line,ne*.55,ge)),be.add(new go.PathSegment(go.PathSegment.Line,he,ge)),be.add(new go.PathSegment(go.PathSegment.Bezier,0,ge-he,se,ge,0,ge-se)),be.add(new go.PathSegment(go.PathSegment.Line,0,he)),be.add(new go.PathSegment(go.PathSegment.Bezier,he,0,0,se,se,0).close()),se>1?(Se.spot1=new go.Spot(0,0,se,se),Se.spot2=new go.Spot(1,.8,-se,-se)):(Se.spot1=go.Spot.TopLeft,Se.spot2=new go.Spot(1,.8)),Se}),go.Shape.defineFigureGenerator("Repeat",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne*0,te*.45,!0);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne*.25,te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.5,te*.45)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.3,te*.45)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.3,te*.9)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.6,te*.9)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.65,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.2,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.2,te*.45).close());var ge=new go.PathFigure(ne*1,te*.55,!0);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.75,te*1)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.5,te*.55)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.7,te*.55)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.7,te*.1)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.4,te*.1)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.35,te*0)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.8,te*0)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.8,te*.55).close()),he}),go.Shape.defineFigureGenerator("Windows",function(Fe,ne,te){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,ne,0)).add(new go.PathSegment(go.PathSegment.Line,ne,te)).add(new go.PathSegment(go.PathSegment.Line,0,te).close()).add(new go.PathSegment(go.PathSegment.Move,.4*ne,.4*te)).add(new go.PathSegment(go.PathSegment.Line,.4*ne,.8*te)).add(new go.PathSegment(go.PathSegment.Line,.9*ne,.8*te)).add(new go.PathSegment(go.PathSegment.Line,.9*ne,.4*te).close()).add(new go.PathSegment(go.PathSegment.Move,.2*ne,.1*te)).add(new go.PathSegment(go.PathSegment.Line,.2*ne,.6*te)).add(new go.PathSegment(go.PathSegment.Line,.7*ne,.6*te)).add(new go.PathSegment(go.PathSegment.Line,.7*ne,.1*te).close()).add(new go.PathSegment(go.PathSegment.Move,.1*ne,.6*te)).add(new go.PathSegment(go.PathSegment.Line,.1*ne,.9*te)).add(new go.PathSegment(go.PathSegment.Line,.5*ne,.9*te)).add(new go.PathSegment(go.PathSegment.Line,.5*ne,.6*te).close()))}),go.Shape.defineFigureGenerator("Terminal",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne*0,te*.1,!1);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*.1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*.9)),se.add(new go.PathSegment(go.PathSegment.Line,ne*0,te*.9).close());var ge=new go.PathFigure(ne*.1,te*.2,!0);he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.1,te*.25)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.22,te*.285)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.1,te*.32)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.1,te*.37)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.275,te*.32)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.275,te*.25).close());var Se=new go.PathFigure(ne*.28,te*.37,!0);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.45,te*.37)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.45,te*.41)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.28,te*.41).close()),he}),go.Shape.defineFigureGenerator("Beaker",function(Fe,ne,te){var he=new go.Geometry,se=15,ge=se*Ge,Se=new go.PathFigure(ne*.62,te*.475,!0);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne,te-se)),Se.add(new go.PathSegment(go.PathSegment.Bezier,ne-se,te,ne,te-ge,ne-ge,te)),Se.add(new go.PathSegment(go.PathSegment.Line,se,te)),Se.add(new go.PathSegment(go.PathSegment.Bezier,0,te-se,ge,te,0,te-ge)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.38,te*.475)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.38,te*.03)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.36,te*0)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.64,te*0)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.62,te*.03).close()),ge>1?(he.spot1=new go.Spot(0,0,ge,ge),he.spot2=new go.Spot(1,1,-ge,-ge)):(he.spot1=go.Spot.TopLeft,he.spot2=go.Spot.BottomRight),he}),go.Shape.defineFigureGenerator("Download",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne*0,te*1,!0);he.add(se);var ge=.1/.3;se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.8,te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.66,te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.66,te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.755,te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.93,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.64,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.61,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.5,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.39,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.36,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.07,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.755),te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.66),te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.66),te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.8),te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*0,te*(1-ge)).close());var Se=new go.PathFigure(ne*.4,te*0,!0);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.4,te*.44)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.26,te*.44)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.5,te*.66)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.26),te*.44)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.6,te*.44)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.6,te*0).close()),he}),go.Shape.defineFigureGenerator("Bin",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne*0,te*1,!0);he.add(se);var ge=.1/.3;return se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.8,te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.66,te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.66,te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.755,te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.93,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.64,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.61,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.5,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.39,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.36,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.07,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.755),te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.66),te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.66),te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.8),te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*0,te*(1-ge)).close()),he}),go.Shape.defineFigureGenerator("Upload",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne*0,te*1,!0);he.add(se);var ge=.1/.3;se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.8,te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.66,te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.66,te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.755,te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.93,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.64,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.61,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.5,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.39,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.36,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*.07,te*(1-ge))),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.755),te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.66),te*.055)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.66),te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*(1-.8),te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*0,te*(1-ge)).close());var Se=new go.PathFigure(ne*.5,te*0,!0);return he.add(Se),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.26,te*.25)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.4,te*.25)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.4,te*.63)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.6,te*.63)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.6,te*.25)),Se.add(new go.PathSegment(go.PathSegment.Line,ne*.74,te*.25).close()),he}),go.Shape.defineFigureGenerator("EmptyDrink",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne*.15,te*0,!1);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne*.85,te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.7,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.3,te*1).close()),he}),go.Shape.defineFigureGenerator("Drink",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne*.15,te*0,!1);he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne*.85,te*0)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.7,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.3,te*1).close());var ge=new go.PathFigure(ne*.235,te*.28,!0);return he.add(ge),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.765,te*.28)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.655,te*.97)),ge.add(new go.PathSegment(go.PathSegment.Line,ne*.345,te*.97).close()),he}),go.Shape.defineFigureGenerator("4Arrows",function(Fe,ne,te){var he=new go.Geometry,se=new go.PathFigure(ne*.5,te*0,!0);return he.add(se),se.add(new go.PathSegment(go.PathSegment.Line,ne*.65,te*.25)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.55,te*.25)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.55,te*.45)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.75,te*.45)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.75,te*.35)),se.add(new go.PathSegment(go.PathSegment.Line,ne*1,te*.5)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.75,te*.65)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.75,te*.55)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.55,te*.55)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.55,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.65,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.5,te*1)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.35,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.45,te*.75)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.45,te*.55)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.25,te*.55)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.25,te*.65)),se.add(new go.PathSegment(go.PathSegment.Line,ne*0,te*.5)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.25,te*.35)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.25,te*.45)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.45,te*.45)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.45,te*.25)),se.add(new go.PathSegment(go.PathSegment.Line,ne*.35,te*.25).close()),he}),go.Shape.defineFigureGenerator("Connector","Ellipse"),go.Shape.defineFigureGenerator("Alternative","TriangleUp"),go.Shape.defineFigureGenerator("Merge","TriangleUp"),go.Shape.defineFigureGenerator("Decision","Diamond"),go.Shape.defineFigureGenerator("DataTransmissions","Hexagon"),go.Shape.defineFigureGenerator("Gate","Crescent"),go.Shape.defineFigureGenerator("Delay","HalfEllipse"),go.Shape.defineFigureGenerator("Input","Parallelogram1"),go.Shape.defineFigureGenerator("ManualLoop","ManualOperation"),go.Shape.defineFigureGenerator("ISOProcess","Chevron"),go.Shape.defineFigureGenerator("MessageToUser","SquareArrow"),go.Shape.defineFigureGenerator("MagneticData","Cylinder1"),go.Shape.defineFigureGenerator("DirectData","Cylinder4"),go.Shape.defineFigureGenerator("StoredData","DataStorage"),go.Shape.defineFigureGenerator("SequentialData","MagneticTape"),go.Shape.defineFigureGenerator("Subroutine","Procedure")},91e3:function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(){if(typeof window.GGBApplet=="function"){console.warn("deployggb.js was loaded twice");return}var isRenderGGBElementEnabled=!1,scriptLoadStarted=!1,html5AppletsToProcess=null,ggbHTML5LoadedCodebaseIsWebSimple=!1,ggbHTML5LoadedCodebaseVersion=null,ggbHTML5LoadedScript=null,GGBApplet=function(){"use strict";for(var ze={},Ee="5.0",ue={},ce=null,Pe=!1,Re=!1,Me=null,We=!1,Te=null,Ge=null,st=0;st4?parseFloat(Pt):5};ze.setHTML5Codebase=function(Pt,pn){Ge=Pt,at(Pt,pn)},ze.setJavaCodebase=ze.setJavaCodebaseVersion=ze.isCompiledInstalled=ze.setPreCompiledScriptPath=ze.setPreCompiledResourcePath=function(){},ze.setHTML5CodebaseVersion=function(Pt,pn){var dn=parseFloat(Pt);if(dn!==NaN&&dn<5){console.log("The GeoGebra HTML5 codebase version "+dn+" is deprecated. Using version latest instead.");return}Te=Pt,ct(Pt,pn)},ze.getHTML5CodebaseVersion=function(){return Fe},ze.getParameters=function(){return ue},ze.setFontsCSSURL=function(Pt){Se=Pt},ze.setGiacJSURL=function(Pt){},ze.setJNLPFile=function(Pt){Ye=Pt},ze.setJNLPBaseDir=function(Pt){},ze.inject=function(){function Pt(){return window.frameElement&&window.frameElement.getAttribute("data-singleton")}for(var pn="auto",dn=ue.id,_n,Yt=!1,On=0;On=5)return!0;var Pt=ze.getAppletObject();return Pt&&typeof Pt.recalculateEnvironments=="function"?(Pt.recalculateEnvironments(),!0):!1},ze.startAnimation=function(){var Pt=ze.getAppletObject();return Pt&&typeof Pt.startAnimation=="function"?(Pt.startAnimation(),!0):!1},ze.stopAnimation=function(){var Pt=ze.getAppletObject();return Pt&&typeof Pt.stopAnimation=="function"?(Pt.stopAnimation(),!0):!1},ze.getAppletObject=function(){var Pt=ue.id!==void 0?ue.id:"ggbApplet";return window[Pt]},ze.resize=function(){};var dt=function(Pt,pn,dn){var _n=document.createElement("param");_n.setAttribute("name",pn),_n.setAttribute("value",dn),Pt.appendChild(_n)},it=function(Pt){return Pt&&Pt!=="false"},bt=function(Pt,pn,dn){Ae(Fe)<=4.2&&(dn=!0);var _n=!isRenderGGBElementEnabled&&!scriptLoadStarted;(!isRenderGGBElementEnabled&&!scriptLoadStarted||ggbHTML5LoadedCodebaseVersion!==Fe||ggbHTML5LoadedCodebaseIsWebSimple&&!te)&&(_n=!0,isRenderGGBElementEnabled=!1,scriptLoadStarted=!1);var Yt=document.createElement("div");Yt.classList.add("appletParameters","notranslate");var On=pn.width,kt=pn.height;if(pn.disableAutoScale=pn.disableAutoScale===void 0?GGBAppletUtils.isFlexibleWorksheetEditor():pn.disableAutoScale,pn.width!==void 0)if(Ae(Fe)<=4.4)it(pn.showToolBar)&&(pn.height-=7),it(pn.showAlgebraInput)&&(pn.height-=37),pn.width<605&&it(pn.showToolBar)&&(pn.width=605,On=605);else{var jn=100;(it(pn.showToolBar)||it(pn.showMenuBar))&&(pn.hasOwnProperty("customToolBar")&&(pn.customToolbar=pn.customToolBar),jn=it(pn.showMenuBar)?245:155),On=5?(pn.appletOnLoad=function(Vt){var fn=Pt.querySelector(".ggb_preview");fn&&fn.parentNode.removeChild(fn),window.GGBT_spinner&&window.GGBT_spinner.removeSpinner(De),window.GGBT_wsf_view&&$(window).trigger("resize"),et(Vt)},ke||De.appendChild(Xe)):Yt.appendChild(Xe),De.appendChild(Yt),ke||Pt.appendChild(De),setTimeout(function(){ze.resize()},1)}else{var ut=document.createElement("div");ut.className="applet_scaler",ut.style.position="relative",ut.style.display="block",ut.appendChild(Yt),Pt.appendChild(ut),pn.appletOnLoad=function(Vt){ze.resize(),et(Vt)}}function Ue(Vt,fn){fn&&typeof fn.appletOnLoad=="function"&&typeof renderGGBElement=="function"?renderGGBElement(Vt,fn.appletOnLoad):renderGGBElement(Vt),rn("GeoGebra HTML5 applet injected and rendered with previously loaded codebase.",fn)}function gt(Vt,fn){typeof renderGGBElement=="undefined"?(html5AppletsToProcess===null&&(html5AppletsToProcess=[]),html5AppletsToProcess.push({article:Vt,params:fn}),window.renderGGBElementReady=function(){isRenderGGBElementEnabled=!0,html5AppletsToProcess!==null&&html5AppletsToProcess.length&&(html5AppletsToProcess.forEach(function(Pn){Ue(Pn.article,Pn.params)}),html5AppletsToProcess=null)},Ae(Fe)<5&&(Vt.className+=" geogebraweb")):Ue(Vt,fn)}if(_n){scriptLoadStarted=!0;for(var _t=0;_t0?(ai.remove(),De.attr("id","fullscreencontent").show(),jQuery(et).append(De),window.dispatchEvent(new Event("resize"))):bt(ai,pn,!1),window.GGBT_wsf_view.launchFullScreen(et)}else Nt=_n,bt(Pt,pn,!1);if(!window.GGBT_wsf_view)for(kt=0;ktPt/4*3&&(ai=Pt/4*3),et=ai/5.8,jn.setAttribute("src",se),jn.setAttribute("width",ai),jn.setAttribute("height",et);var De=(Pt-ai)/2,ke=(pn-et)/2;jn.style.left=De+"px",jn.style.top=ke+"px",Yt.appendChild(jn)}}return Yt.appendChild(kt),Yt},nn=function(Pt){return Pt=Pt.toLowerCase(),Pt==="html5"||Pt==="screenshot"?Pt:"html5"},At=["web","webSimple","web3d","tablet","tablet3d","phone"],ct=function(Pt,pn){if(Fe=Pt,pn){at(Fe,!0);return}var dn=!Pe;if(dn){var _n=Ae(Fe);!isNaN(_n)&&_n<4.4&&(dn=!1)}var Yt,On;window.location.protocol.substr(0,4)==="http"?Yt=window.location.protocol:Yt="http:";var kt=Fe.indexOf("//");kt>0?On=Fe:kt===0?On=Yt+Fe:On="https://www.geogebra.org/apps/5.2.814.0/";for(var jn in At)if(Fe.slice(At[jn].length*-1)===At[jn]||Fe.slice((At[jn].length+1)*-1)===At[jn]+"/"){at(On,!1);return}!GGBAppletUtils.isFlexibleWorksheetEditor()&&dn&&!ce.is3D&&!ce.AV&&!ce.SV&&!ce.CV&&!ce.EV2&&!ce.CP&&!ce.PC&&!ce.DA&&!ce.FI&&!ce.PV&&!it(ue.showToolBar)&&!it(ue.showMenuBar)&&!it(ue.showAlgebraInput)&&!it(ue.enableRightClick)&&(!ue.appName||ue.appName=="classic")?On+="webSimple/":On+="web3d/",at(On,!1)},at=function(Pt,pn){if(Pt.requirejs){yt=Pt;return}Pt.slice(-1)!=="/"&&(Pt+="/"),yt=Pt,pn===null&&(pn=Pt.indexOf("http")===-1),ot=pn,ne="web.nocache.js",te=!1;var dn=yt.split("/");dn.length>1&&(!pn&&dn[dn.length-2]==="webSimple"?(ne="webSimple.nocache.js",te=!0):At.indexOf(dn[dn.length-2])>=0&&(ne=dn[dn.length-2]+".nocache.js")),dn=Pt.split("/"),Fe=dn[dn.length-3],Fe.substr(0,4)==="test"?Fe=Fe.substr(4,1)+"."+Fe.substr(5,1):(Fe.substr(0,3)==="war"||Fe.substr(0,4)==="beta")&&(Fe="5.0");var _n=parseFloat(Fe);_n!==NaN&&_n<5&&Pt.indexOf("geogebra.org")>=0&&(console.log("The GeoGebra HTML5 codebase version "+_n+" is deprecated. Using version latest instead."),ct("5.0",pn))},rn=function(Pt,pn){window.console&&window.console.log&&(!pn||typeof pn.showLogging=="undefined"||pn.showLogging&&pn.showLogging!=="false")&&console.log(Pt)};ue.material_id!==void 0?$e(hn):hn();function hn(){var Pt=Ee;Te!==null?Pt=Te:parseFloat(Pt)<5&&(Pt="5.0"),ct(Pt,!1),Ge!==null&&at(Ge,ot),We=!0}return ze},GGBAppletUtils=function(){"use strict";function ze(){return window.GGBT_wsf_edit!==void 0}function Ee(We,Te){Te!=1?(We.style.transformOrigin="0% 0% 0px",We.style.webkitTransformOrigin="0% 0% 0px",We.style.transform="scale("+Te+","+Te+")",We.style.webkitTransform="scale("+Te+","+Te+")",We.style.maxWidth="initial",We.querySelector(".ggb_preview")!==null&&(We.querySelector(".ggb_preview").style.maxWidth="initial"),We.querySelectorAll(".ggb_preview img")[0]!==void 0&&(We.querySelectorAll(".ggb_preview img")[0].style.maxWidth="initial"),We.querySelectorAll(".ggb_preview img")[1]!==void 0&&(We.querySelectorAll(".ggb_preview img")[1].style.maxWidth="initial")):(We.style.transform="none",We.style.webkitTransform="none")}function ue(We,Te,Ge,st,Qe,Ye){var yt=null;if(Ye!=null&&Ye!="")for(var ot=We.parentNode;ot!=null;)if((" "+ot.className+" ").indexOf(" "+Ye+" ")>-1){yt=ot;break}else ot=ot.parentNode;var Nt=0,Fe=0,ne=0,te=0,he=0,se=0,ge=0;if(yt)Nt=yt.offsetWidth,Fe=Math.max(st?yt.offsetWidth:0,yt.offsetHeight);else{if(window.innerWidth&&document.documentElement.clientWidth?(Nt=Math.min(window.innerWidth,document.documentElement.clientWidth),Fe=Math.min(window.innerHeight,document.documentElement.clientHeight),ne=Nt):(Nt=window.innerWidth,Fe=window.innerHeight,ne=window.innerWidth),We){var Se=We.getBoundingClientRect();Se.left>0&&Se.left<=Nt&&(Qe===void 0||!Qe)&&(document.dir==="rtl"?(he=Nt-Se.width-Se.left,se=ne<=480?10:30):(se=Se.left,he=ne<=480?10:30),te=se+he)}if(We&&typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()){var be=We.getBoundingClientRect();window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionRight"?(te=40,ge=0):window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionTop"&&(te=0,ge=40)}}return We&&((Ge===void 0||!Ge)&&Te>0&&Te+te1&&(Ye=!0)),Te&&typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()&&(Ye=!0),!(We.hasOwnProperty("disableAutoScale")&&We.disableAutoScale))Qe=ce(We,Te,Ye,Ge,We.scaleContainerClass);else return st;return Ye&&(!We.hasOwnProperty("scale")||st===1)?Qe:Math.min(st,Qe)}function Re(We){var Te=Math.min(window.innerWidth,document.documentElement.clientWidth),Ge=Math.min(window.innerHeight,document.documentElement.clientHeight),st=We.getBoundingClientRect(),Qe=(Te-st.width)/2,Ye=(Ge-st.height)/2;Ye<0&&(Ye=0),We.style.position="relative",window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionRight"?(Qe<40?We.style.left="40px":We.style.left=Qe+"px",We.style.top=Ye+"px"):window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionTop"&&(Ye<40?We.style.top="40px":We.style.top=Ye+"px",We.style.left=Qe+"px")}function Me(We,Te){var Ge=We.querySelector(".appletParameters");if(Ge){if(typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()){if(Te.id!==Ge.getAttribute("data-param-id"))return;window.GGBT_wsf_view.setCloseBtnPosition(We)}if(Ge.parentElement&&/fullscreen/.test(Ge.parentElement.className))return;var st=Pe(Te,We);ze()&&Ge.setAttribute("data-param-scale",st);for(var Qe=null,Ye=0;Ye=O)continue;if(j==jb){if(k=i.getAttribute(kb),k){var l,m=k.indexOf(lb);m>=O?(j=k.substring(O,m),l=k.substring(m+P)):(j=k,l=W),c[j]=l}}else if(j==mb){if(k=i.getAttribute(kb),k)try{d=eval(k)}catch(ze){alert(nb+k+ob)}}else if(j==pb&&(k=i.getAttribute(kb),k))try{e=eval(k)}catch(ze){alert(nb+k+qb)}}}__gwt_getMetaProperty=function(ze){var Ee=c[ze];return Ee==null?null:Ee},r=d,webModule.__errFn=e}function B(){function ze(We){var Te=We.lastIndexOf(rb);Te==-1&&(Te=We.length);var Ge=We.indexOf(sb);Ge==-1&&(Ge=We.length);var st=We.lastIndexOf(tb,Math.min(Ge,Te));return st>=O?We.substring(O,st+P):W}function Ee(We){if(!We.match(/^\w+:\/\//)){var Te=o.createElement(ub);Te.src=We+vb,We=ze(Te.src)}return We}function ue(){var We=__gwt_getMetaProperty(wb);return We!=null?We:W}function ce(){for(var We=o.getElementsByTagName(_),Te=O;TeO?We[We.length-P].href:W}function Re(){var We=o.location;return We.href==We.protocol+zb+We.host+We.pathname+We.search+We.hash}var Me=ue();return Me==W&&(Me=ce()),Me==W&&(Me=Pe()),Me==W&&Re()&&(Me=ze(o.location.href)),Me=Ee(Me),Me}function C(ze){return ze.match(/^\//)||ze.match(/^[a-zA-Z]+:\/\//)?ze:webModule.__moduleBase+ze}function D(){var ze=[],Ee=O,ue=[],ce=[];function Pe(We){var Te=ce[We](),Ge=ue[We];if(Te in Ge)return Te;var st=[];for(var Qe in Ge)st[Ge[Qe]]=Qe;throw r&&r(We,st,Te),null}if(__gwt_isKnownPropertyValue=function(We,Te){return Te in ue[We]},webModule.__getPropMap=function(){var We={};for(var Te in ue)ue.hasOwnProperty(Te)&&(We[Te]=Pe(Te));return We},webModule.__computePropValue=Pe,n.__gwt_activeModules[L].bindings=webModule.__getPropMap,p())return C(Bb);var Re;try{Re=Cb;var Me=Re.indexOf(Db);Me!=-1&&(Ee=parseInt(Re.substring(Me+P),$),Re=Re.substring(O,Me))}catch(We){}return webModule.__softPermutationId=Ee,C(Re+Eb)}function F(){n.__gwt_stylesLoaded||(n.__gwt_stylesLoaded={})}A(),webModule.__moduleBase="/js/mathematicalGraphics/"+name+"/",s[L].moduleBase=webModule.__moduleBase;var G=D();return F(),w(G),!0}return webModule},typeof window.web3d!="function"&&(window.web3d=GGBAppletUtils.makeModule("web3d","A18F540516513B1292CA7CEF2F6AFC7E")),typeof window.webSimple!="function"&&(window.webSimple=GGBAppletUtils.makeModule("webSimple","96B09BF1B436BF53F0DF54116700F16A")),window.GGBApplet=GGBApplet})()},55322:function(ze,Ee,ue){"use strict";ue.d(Ee,{Ax:function(){return Me},Ds:function(){return We},KI:function(){return Ge},SI:function(){return Re},f1:function(){return Pe}});var ce=ue(12242);function Pe(st){let Qe=!0;if(st.length>0){for(let Ye=0;Yete in ne?Re(ne,te,{enumerable:!0,configurable:!0,writable:!0,value:he}):ne[te]=he,Ye=(ne,te)=>{for(var he in te||(te={}))Ge.call(te,he)&&Qe(ne,he,te[he]);if(Te)for(var he of Te(te))st.call(te,he)&&Qe(ne,he,te[he]);return ne},yt=(ne,te)=>Me(ne,We(te)),ot=(ne,te)=>{var he={};for(var se in ne)Ge.call(ne,se)&&te.indexOf(se)<0&&(he[se]=ne[se]);if(ne!=null&&Te)for(var se of Te(ne))te.indexOf(se)<0&&st.call(ne,se)&&(he[se]=ne[se]);return he},Nt=(ne,te,he)=>new Promise((se,ge)=>{var Se=Le=>{try{Ae(he.next(Le))}catch(je){ge(je)}},be=Le=>{try{Ae(he.throw(Le))}catch(je){ge(je)}},Ae=Le=>Le.done?se(Le.value):Promise.resolve(Le.value).then(Se,be);Ae((he=he.apply(ne,te)).next())});const Fe=ne=>{var te=ne,{children:he}=te,se=ot(te,["children"]);const[ge,Se]=(0,Pe.useState)(!1);return Pe.createElement(ce.ZP,yt(Ye({},se),{loading:ge,onClick:be=>Nt(void 0,null,function*(){try{Se(!0),yield se.onClick(be),Se(!1)}catch(Ae){console.error(Ae),Se(!1)}})}),he)}},95487:function(ze,Ee,ue){"use strict";var ce=ue(86204),Pe=ue.n(ce),Re=Object.defineProperty,Me=(st,Qe,Ye)=>Qe in st?Re(st,Qe,{enumerable:!0,configurable:!0,writable:!0,value:Ye}):st[Qe]=Ye,We=(st,Qe,Ye)=>Me(st,typeof Qe!="symbol"?Qe+"":Qe,Ye),Te=(st,Qe,Ye)=>new Promise((yt,ot)=>{var Nt=te=>{try{ne(Ye.next(te))}catch(he){ot(he)}},Fe=te=>{try{ne(Ye.throw(te))}catch(he){ot(he)}},ne=te=>te.done?yt(te.value):Promise.resolve(te.value).then(Nt,Fe);ne((Ye=Ye.apply(st,Qe)).next())});class Ge extends ce.EventEmitter{constructor(Qe,Ye){super(),We(this,"url"),We(this,"body"),We(this,"fullContent",""),We(this,"controller",null),We(this,"buffer",""),this.url=Qe,this.body=Ye}startStream(){return Te(this,null,function*(){this.controller=new AbortController;const{signal:Qe}=this.controller;try{const Ye=yield fetch(this.url,{method:"POST",headers:{"Content-Type":"application/json; charset=utf-8"},credentials:"include",body:JSON.stringify(this.body),signal:Qe});if(!Ye.ok)throw new Error(`\u8BF7\u6C42\u5931\u8D25: ${Ye.status}`);const yt=Ye.headers.get("content-type");if(!yt)throw new Error("\u54CD\u5E94\u5934\u7F3A\u5C11 content-type");if(yt.includes("application/json")){const Fe=yield Ye.json();this.emit("error",Fe);return}if(!yt.includes("text/event-stream"))throw new Error("\u54CD\u5E94\u6570\u636E\u683C\u5F0F\u9519\u8BEF");const ot=Ye.body.getReader(),Nt=new TextDecoder("utf-8");for(;;){const{done:Fe,value:ne}=yield ot.read();if(Fe)break;const te=Nt.decode(ne,{stream:!0});this.buffer+=te;const he=this.buffer.split(` `);this.buffer=he.pop()||"";for(const se of he)if(se.startsWith("data:")){const ge=se.slice(5).trim();if(ge==="[DONE]")break;try{const Se=JSON.parse(ge);Se.data&&this.handleData(Se.data)}catch(Se){this.buffer=se+` `+this.buffer,console.error("\u89E3\u6790 JSON \u5931\u8D25:",Se)}}}this.emit("done",this.fullContent)}catch(Ye){Ye.name==="AbortError"?this.emit("cancelled",this.fullContent):this.emit("error",Ye.message)}})}handleData(Qe){Qe.content&&(this.fullContent+=Qe.content,this.emit("data",{chunk:Qe,full:this.fullContent}))}cancelRequest(){var Qe;(Qe=this.controller)==null||Qe.abort()}}Ee.Z=Ge},30828:function(ze,Ee,ue){"use strict";ue.d(Ee,{Z:function(){return Nt}});var ce=ue(59301),Pe=ue(30641),Re=ue(77019),Me=ue(5269),We={smartWrp:"smartWrp___NjRcB"},Te=ue(89081),Ge=ue(46133),st=ue(44399),Qe=ue(59301),Ye=(Fe,ne,te)=>new Promise((he,se)=>{var ge=Ae=>{try{be(te.next(Ae))}catch(Le){se(Le)}},Se=Ae=>{try{be(te.throw(Ae))}catch(Le){se(Le)}},be=Ae=>Ae.done?he(Ae.value):Promise.resolve(Ae.value).then(ge,Se);be((te=te.apply(Fe,ne)).next())});const yt=` \u5FEB\u901F\u6392\u5E8F\u6F14\u793A

\u5FEB\u901F\u6392\u5E8F\u7B97\u6CD5\u6F14\u793A