You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6194 lines
6.1 MiB
6194 lines
6.1 MiB
!(function(){var jle=Object.defineProperty,Gle=Object.defineProperties;var Xle=Object.getOwnPropertyDescriptors;var oU=Object.getOwnPropertySymbols,Wle=Object.getPrototypeOf,Qle=Object.prototype.hasOwnProperty,Zle=Object.prototype.propertyIsEnumerable,Yle=Reflect.get;var PN=Math.pow,sU=(Cn,Ei,je)=>Ei in Cn?jle(Cn,Ei,{enumerable:!0,configurable:!0,writable:!0,value:je}):Cn[Ei]=je,Hd=(Cn,Ei)=>{for(var je in Ei||(Ei={}))Qle.call(Ei,je)&&sU(Cn,je,Ei[je]);if(oU)for(var je of oU(Ei))Zle.call(Ei,je)&&sU(Cn,je,Ei[je]);return Cn},tx=(Cn,Ei)=>Gle(Cn,Xle(Ei));var aU=(Cn,Ei,je)=>Yle(Wle(Cn),je,Ei);var Vl=(Cn,Ei,je)=>new Promise((Me,yt)=>{var Jt=dt=>{try{It(je.next(dt))}catch(Mt){yt(Mt)}},Qt=dt=>{try{It(je.throw(dt))}catch(Mt){yt(Mt)}},It=dt=>dt.done?Me(dt.value):Promise.resolve(dt.value).then(Jt,Qt);It((je=je.apply(Cn,Ei)).next())});(self.webpackChunk=self.webpackChunk||[]).push([[8823],{8336:function(){"use strict"},12469:function(){"use strict"},99587:function(Cn,Ei){"use strict";Ei.Z={lists:"lists___xhHyq",item:"item___pWJAA",children:"children___sDG61",diamond:"diamond___FwgzD",button:"button___WPN6r",mathWrap:"mathWrap___FmnMJ",mathFillWrap:"mathFillWrap___PmY3H"}},3878:function(Cn,Ei){"use strict";Ei.Z={flex_box_center:"flex_box_center___vG4eV",flex_space_between:"flex_space_between___qVVxe",flex_box_vertical_center:"flex_box_vertical_center___P8Z8s",flex_box_center_end:"flex_box_center_end___VMme3",flex_box_column:"flex_box_column___VMHwm",dropdownmenus:"dropdownmenus___oVzoj",popupClassNames:"popupClassNames___OcZq7",selectdown:"selectdown___mmcA8"}},22982:function(Cn,Ei){"use strict";Ei.Z={flex_box_center:"flex_box_center___IBr6x",flex_space_between:"flex_space_between___n2Iz0",flex_box_vertical_center:"flex_box_vertical_center___1umwO",flex_box_center_end:"flex_box_center_end___SRZYb",flex_box_column:"flex_box_column___b90Da",form:"form___V3fAH",title_icon:"title_icon____uDZy",title:"title___RxKwK",content:"content___vFT5m",pubColSty:"pubColSty___dfLkL",selectSty:"selectSty____Wuek",borderSty:"borderSty___EuFYV",delSty:"delSty___AdEeI",delBorder:"delBorder___vcTJc",copHover:"copHover___JVVXI",multiple_select:"multiple_select___ZMPhl",work_checkbox_group:"work_checkbox_group___sGLxY"}},87108:function(Cn,Ei){"use strict";Ei.Z={flex_box_center:"flex_box_center___vhwFp",flex_space_between:"flex_space_between___rbHwE",flex_box_vertical_center:"flex_box_vertical_center___AF_yr",flex_box_center_end:"flex_box_center_end___FqGSd",flex_box_column:"flex_box_column___ujWr7",failedList:"failedList___KGsCg",name:"name___bbsWC",publish:"publish___mai8J",modal:"modal___t6wU6"}},53664:function(Cn,Ei){"use strict";Ei.Z={ChangeBut:"ChangeBut___VMCUO",DefaultDiv:"DefaultDiv___diOnG",DefaultDivItemActive:"DefaultDivItemActive___p8PnJ",DefaultDivItem:"DefaultDivItem___BkCuW",TableStyle:"TableStyle___DOsaq",ProgressStyle:"ProgressStyle___Mbw5z",ProgressStyle2:"ProgressStyle2___w9DG9",RankingDiv:"RankingDiv___RCXlB",NavBgTwo:"NavBgTwo___KU7t1",NavBgTwoActive:"NavBgTwoActive___hkC0h",NavBgItem:"NavBgItem___TBfQf",InputStyle:"InputStyle___BAYzG",TableMyHeader:"TableMyHeader___nZel6",TableMyDiv:"TableMyDiv___F4fkZ",CollapseStyle:"CollapseStyle___VkVMr",Item:"Item___pqPqX"}},63720:function(){"use strict";function Cn(et,ue,ce,Ce){ce===void 0&&(ce=0),Ce===void 0&&(Ce=1/0),this._name=et,this._defaultValue=ue,this._minimum=ce,this._maximum=Ce}Object.defineProperty(Cn.prototype,"name",{get:function(){return this._name},set:function(et){if(typeof et!="string"||et==="")throw new Error("Shape name must be a valid string.");this._name=et}}),Object.defineProperty(Cn.prototype,"defaultValue",{get:function(){return this._defaultValue},set:function(et){if(typeof et!="number"||isNaN(et))throw new Error("The default value must be a real number, not: "+et);this._defaultValue=et}}),Object.defineProperty(Cn.prototype,"minimum",{get:function(){return this._minimum},set:function(et){if(typeof et!="number"||isNaN(et))throw new Error("Minimum must be a real number, not: "+et);this._minimum=et}}),Object.defineProperty(Cn.prototype,"maximum",{get:function(){return this._maximum},set:function(et){if(typeof et!="number"||isNaN(et))throw new Error("Maximum must be a real number, not: "+et);this._maximum=et}}),go.Shape._FigureParameters={},go.Shape.getFigureParameter=function(et,ue){var ce=go.Shape._FigureParameters[et];return ce?ce[ue]:null},go.Shape.setFigureParameter=function(et,ue,ce){if(!(ce instanceof Cn))throw new Error("Third argument to Shape.setFigureParameter is not FigureParameter: "+ce);if(ce.defaultValue<ce.minimum||ce.defaultValue>ce.maximum)throw new Error("defaultValue must be between minimum and maximum, not: "+ce.defaultValue);var Ce=go.Shape._FigureParameters[et];Ce||(Ce=[],go.Shape._FigureParameters[et]=Ce),Ce[ue]=ce};var Ei=[];function je(et,ue){var ce=Ei.pop();return ce===void 0?new go.Point(et,ue):(ce.x=et,ce.y=ue,ce)}function Me(){var et=Ei.pop();return et===void 0?new go.Point:et}function yt(et){Ei.push(et)}function Jt(et,ue,ce,Ce,Ae,Te,Ie,ze,Ye){Ye||(Ye=new go.Point);var lt=et-ce,Bt=Ae-Ie,kt=NaN,xt=NaN;if(lt===0)if(Bt===0)et===ce&&(kt=et,xt=ue);else{var Et=(Te-ze)/Bt,$t=Te-Et*Ae;kt=et,xt=Et*kt+$t}else if(Bt===0){var Zt=(ue-Ce)/lt,Yn=ue-Zt*et;kt=Ae,xt=Zt*kt+Yn}else{var Zt=(ue-Ce)/lt,Et=(Te-ze)/Bt,Yn=ue-Zt*et,$t=Te-Et*Ae;kt=($t-Yn)/(Zt-Et),xt=Zt*kt+Yn}return Ye.x=kt,Ye.y=xt,Ye}function Qt(et,ue,ce,Ce,Ae,Te,Ie,ze,Ye,lt,Bt,kt,xt,Et){var $t=1-Ye,Zt=Ye,Yn=et*$t+ce*Zt,gn=ue*$t+Ce*Zt,Jn=ce*$t+Ae*Zt,ci=Ce*$t+Te*Zt,Xn=Ae*$t+Ie*Zt,In=Te*$t+ze*Zt,hi=Yn*$t+Jn*Zt,Ht=gn*$t+ci*Zt,At=Jn*$t+Xn*Zt,Hn=ci*$t+In*Zt,_i=hi*$t+At*Zt,dr=Ht*$t+Hn*Zt;lt.x=Yn,lt.y=gn,Bt.x=hi,Bt.y=Ht,kt.x=_i,kt.y=dr,xt.x=At,xt.y=Hn,Et.x=Xn,Et.y=In}var It=new go.Spot(.156,.156),dt=new go.Spot(.844,.844),Mt=4*((Math.sqrt(2)-1)/3);go.Shape.setFigureParameter("RoundedRectangle",0,new Cn("CornerRounding",5)),go.Shape.defineFigureGenerator("RoundedRectangle",function(et,ue,ce){var Ce=et?et.parameter1:NaN;(isNaN(Ce)||Ce<0)&&(Ce=5),Ce=Math.min(Ce,ue/3),Ce=Math.min(Ce,ce/3);var Ae=Ce*Mt,Te=new go.Geometry().add(new go.PathFigure(Ce,0,!0).add(new go.PathSegment(go.PathSegment.Line,ue-Ce,0)).add(new go.PathSegment(go.PathSegment.Bezier,ue,Ce,ue-Ae,0,ue,Ae)).add(new go.PathSegment(go.PathSegment.Line,ue,ce-Ce)).add(new go.PathSegment(go.PathSegment.Bezier,ue-Ce,ce,ue,ce-Ae,ue-Ae,ce)).add(new go.PathSegment(go.PathSegment.Line,Ce,ce)).add(new go.PathSegment(go.PathSegment.Bezier,0,ce-Ce,Ae,ce,0,ce-Ae)).add(new go.PathSegment(go.PathSegment.Line,0,Ce)).add(new go.PathSegment(go.PathSegment.Bezier,Ce,0,0,Ae,Ae,0).close()));return Ae>1&&(Te.spot1=new go.Spot(0,0,Ae,Ae),Te.spot2=new go.Spot(1,1,-Ae,-Ae)),Te}),go.Shape.defineFigureGenerator("Border","RoundedRectangle"),go.Shape.defineFigureGenerator("TriangleRight",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce).close())).setSpots(0,.25,.5,.75)}),go.Shape.defineFigureGenerator("TriangleDown",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce).close())).setSpots(.25,0,.75,.5)}),go.Shape.defineFigureGenerator("TriangleLeft",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(ue,ce).add(new go.PathSegment(go.PathSegment.Line,0,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,0).close())).setSpots(.5,.25,1,.75)}),go.Shape.defineFigureGenerator("TriangleUp",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(ue,ce).add(new go.PathSegment(go.PathSegment.Line,0,ce)).add(new go.PathSegment(go.PathSegment.Line,.5*ue,0).close())).setSpots(.25,.5,.75,1)}),go.Shape.defineFigureGenerator("Triangle","TriangleUp"),go.Shape.defineFigureGenerator("Diamond",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(.5*ue,0).add(new go.PathSegment(go.PathSegment.Line,0,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)).add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce).close())).setSpots(.25,.25,.75,.75)}),go.Shape.defineFigureGenerator("LineH",function(et,ue,ce){var Ce=new go.Geometry(go.Geometry.Line);return Ce.startX=0,Ce.startY=ce/2,Ce.endX=ue,Ce.endY=ce/2,Ce}),go.Shape.defineFigureGenerator("LineV",function(et,ue,ce){var Ce=new go.Geometry(go.Geometry.Line);return Ce.startX=ue/2,Ce.startY=0,Ce.endX=ue/2,Ce.endY=ce,Ce}),go.Shape.defineFigureGenerator("BarH","Rectangle"),go.Shape.defineFigureGenerator("BarV","Rectangle"),go.Shape.defineFigureGenerator("MinusLine","LineH"),go.Shape.defineFigureGenerator("PlusLine",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,ce/2,!1).add(new go.PathSegment(go.PathSegment.Line,ue,ce/2)).add(new go.PathSegment(go.PathSegment.Move,ue/2,0)).add(new go.PathSegment(go.PathSegment.Line,ue/2,ce)))}),go.Shape.defineFigureGenerator("XLine",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,ce,!1).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Move,0,0)).add(new go.PathSegment(go.PathSegment.Line,ue,ce)))}),go.Shape.defineFigureGenerator("LineRight",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(.25*ue,0,!1).add(new go.PathSegment(go.PathSegment.Line,.75*ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,.25*ue,ce)))}),go.Shape.defineFigureGenerator("LineDown",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,.25*ce,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ue,.75*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,.25*ce)))}),go.Shape.defineFigureGenerator("LineLeft",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(.75*ue,0,!1).add(new go.PathSegment(go.PathSegment.Line,.25*ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,.75*ue,ce)))}),go.Shape.defineFigureGenerator("LineUp",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,.75*ce,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ue,.25*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,.75*ce)))}),go.Shape.defineFigureGenerator("AsteriskLine",function(et,ue,ce){var Ce=.2/Math.SQRT2;return new go.Geometry().add(new go.PathFigure(Ce*ue,(1-Ce)*ce,!1).add(new go.PathSegment(go.PathSegment.Line,(1-Ce)*ue,Ce*ce)).add(new go.PathSegment(go.PathSegment.Move,Ce*ue,Ce*ce)).add(new go.PathSegment(go.PathSegment.Line,(1-Ce)*ue,(1-Ce)*ce)).add(new go.PathSegment(go.PathSegment.Move,0,ce/2)).add(new go.PathSegment(go.PathSegment.Line,ue,ce/2)).add(new go.PathSegment(go.PathSegment.Move,ue/2,0)).add(new go.PathSegment(go.PathSegment.Line,ue/2,ce)))}),go.Shape.defineFigureGenerator("CircleLine",function(et,ue,ce){var Ce=ue/2,Ae=new go.Geometry().add(new go.PathFigure(ue,ue/2,!1).add(new go.PathSegment(go.PathSegment.Arc,0,360,Ce,Ce,Ce,Ce).close()));return Ae.spot1=It,Ae.spot2=dt,Ae.defaultStretch=go.GraphObject.Uniform,Ae}),go.Shape.defineFigureGenerator("Line1",function(et,ue,ce){var Ce=new go.Geometry(go.Geometry.Line);return Ce.startX=0,Ce.startY=0,Ce.endX=ue,Ce.endY=ce,Ce}),go.Shape.defineFigureGenerator("Line2",function(et,ue,ce){var Ce=new go.Geometry(go.Geometry.Line);return Ce.startX=ue,Ce.startY=0,Ce.endX=0,Ce.endY=ce,Ce}),go.Shape.defineFigureGenerator("Curve1",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Bezier,ue,ce,Mt*ue,0,ue,(1-Mt)*ce)))}),go.Shape.defineFigureGenerator("Curve2",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Bezier,ue,ce,0,Mt*ce,(1-Mt)*ue,ce)))}),go.Shape.defineFigureGenerator("Curve3",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(ue,0,!1).add(new go.PathSegment(go.PathSegment.Bezier,0,ce,ue,Mt*ce,Mt*ue,ce)))}),go.Shape.defineFigureGenerator("Curve4",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(ue,0,!1).add(new go.PathSegment(go.PathSegment.Bezier,0,ce,(1-Mt)*ue,0,0,(1-Mt)*ce)))}),go.Shape.defineFigureGenerator("TriangleDownLeft",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,ue,ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce).close())).setSpots(0,.5,.5,1)}),go.Shape.defineFigureGenerator("TriangleDownRight",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(ue,0,!0).add(new go.PathSegment(go.PathSegment.Line,ue,ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce).close())).setSpots(.5,.5,1,1)}),go.Shape.defineFigureGenerator("TriangleUpLeft",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Line,0,ce).close())).setSpots(0,0,.5,.5)}),go.Shape.defineFigureGenerator("TriangleUpRight",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue,ce).close())).setSpots(.5,0,1,.5)}),go.Shape.defineFigureGenerator("RightTriangle","TriangleDownLeft"),go.Shape.setFigureParameter("Parallelogram1",0,new Cn("Indent",.1,-.99,.99)),go.Shape.defineFigureGenerator("Parallelogram1",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)?Ce=.1:Ce<-1?Ce=-1:Ce>1&&(Ce=1);var Ae=Math.abs(Ce)*ue;if(Ce===0){var Te=new go.Geometry(go.Geometry.Rectangle);return Te.startX=0,Te.startY=0,Te.endX=ue,Te.endY=ce,Te}else{var Te=new go.Geometry;return Ce>0?Te.add(new go.PathFigure(Ae,0).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue-Ae,ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce).close())):Te.add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ue-Ae,0)).add(new go.PathSegment(go.PathSegment.Line,ue,ce)).add(new go.PathSegment(go.PathSegment.Line,Ae,ce).close())),Ae<ue/2&&Te.setSpots(Ae/ue,0,(ue-Ae)/ue,1),Te}}),go.Shape.defineFigureGenerator("Parallelogram","Parallelogram1"),go.Shape.setFigureParameter("Parallelogram2",0,new Cn("Indent",10,-1/0,1/0)),go.Shape.defineFigureGenerator("Parallelogram2",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)?Ce=10:Ce<-ue?Ce=-ue:Ce>ue&&(Ce=ue);var Ae=Math.abs(Ce);if(Ce===0){var Te=new go.Geometry(go.Geometry.Rectangle);return Te.startX=0,Te.startY=0,Te.endX=ue,Te.endY=ce,Te}else{var Te=new go.Geometry;return Ce>0?Te.add(new go.PathFigure(Ae,0).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue-Ae,ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce).close())):Te.add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ue-Ae,0)).add(new go.PathSegment(go.PathSegment.Line,ue,ce)).add(new go.PathSegment(go.PathSegment.Line,Ae,ce).close())),Ae<ue/2&&Te.setSpots(Ae/ue,0,(ue-Ae)/ue,1),Te}}),go.Shape.setFigureParameter("Trapezoid1",0,new Cn("Indent",.2,-.99,.99)),go.Shape.defineFigureGenerator("Trapezoid1",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)?Ce=.2:Ce<.5?Ce=-.5:Ce>.5&&(Ce=.5);var Ae=Math.abs(Ce)*ue;if(Ce===0){var Te=new go.Geometry(go.Geometry.Rectangle);return Te.startX=0,Te.startY=0,Te.endX=ue,Te.endY=ce,Te}else{var Te=new go.Geometry;return Ce>0?Te.add(new go.PathFigure(Ae,0).add(new go.PathSegment(go.PathSegment.Line,ue-Ae,0)).add(new go.PathSegment(go.PathSegment.Line,ue,ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce).close())):Te.add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue-Ae,ce)).add(new go.PathSegment(go.PathSegment.Line,Ae,ce).close())),Ae<ue/2&&Te.setSpots(Ae/ue,0,(ue-Ae)/ue,1),Te}}),go.Shape.defineFigureGenerator("Trapezoid","Trapezoid1"),go.Shape.setFigureParameter("Trapezoid2",0,new Cn("Indent",20,-1/0,1/0)),go.Shape.defineFigureGenerator("Trapezoid2",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)?Ce=20:Ce<-ue?Ce=-ue/2:Ce>ue&&(Ce=ue/2);var Ae=Math.abs(Ce);if(Ce===0){var Te=new go.Geometry(go.Geometry.Rectangle);return Te.startX=0,Te.startY=0,Te.endX=ue,Te.endY=ce,Te}else{var Te=new go.Geometry;return Ce>0?Te.add(new go.PathFigure(Ae,0).add(new go.PathSegment(go.PathSegment.Line,ue-Ae,0)).add(new go.PathSegment(go.PathSegment.Line,ue,ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce).close())):Te.add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue-Ae,ce)).add(new go.PathSegment(go.PathSegment.Line,Ae,ce).close())),Ae<ue/2&&Te.setSpots(Ae/ue,0,(ue-Ae)/ue,1),Te}}),go.Shape.setFigureParameter("ManualOperation",0,new Cn("Indent",10,-1/0,1/0)),go.Shape.defineFigureGenerator("ManualOperation",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)?Ce=10:Ce<-ue?Ce=-ue/2:Ce>ue&&(Ce=ue/2);var Ae=Math.abs(Ce);if(Ce===0){var Te=new go.Geometry(go.Geometry.Rectangle);return Te.startX=0,Te.startY=0,Te.endX=ue,Te.endY=ce,Te}else{var Te=new go.Geometry;return Ce>0?Te.add(new go.PathFigure(0,0).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue-Ae,ce)).add(new go.PathSegment(go.PathSegment.Line,Ae,ce).close())):Te.add(new go.PathFigure(Ae,0).add(new go.PathSegment(go.PathSegment.Line,ue-Ae,0)).add(new go.PathSegment(go.PathSegment.Line,ue,ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce).close())),Ae<ue/2&&Te.setSpots(Ae/ue,0,(ue-Ae)/ue,1),Te}});var an=[];function qt(){var et=an.pop();return et===void 0?[]:et}function nt(et){et.length=0,an.push(et)}function ln(et){for(var ue=qt(),ce=.5,Ce=.5,Ae=Math.PI*1.5,Te=0,Ie=0;Ie<et;Ie++)Te=2*Math.PI/et*Ie+Ae,ue[Ie]=new go.Point(Ce+ce*Math.cos(Te),Ce+ce*Math.sin(Te));return ue.push(ue[0]),ue}function rn(et){var ue=on(et),ce=qt();ce[0]=ue[0];for(var Ce=1,Ae=1;Ce<ue.length;Ce+=2,Ae+=3)ce[Ae]=ue[Ce],ce[Ae+1]=ue[Ce],ce[Ae+2]=ue[Ce+1];return nt(ue),ce}function on(et){for(var ue=ln(et),ce=qt(),Ce=Math.floor(ue.length/2),Ae=ue.length-1,Te=et%2===0?2:1,Ie=0;Ie<Ae;Ie++){var ze=ue[Ie],Ye=ue[Ie+1],lt=ue[(Ce+Ie-1)%Ae],Bt=ue[(Ce+Ie+Te)%Ae];ce[Ie*2]=ze,ce[Ie*2+1]=Jt(ze.x,ze.y,lt.x,lt.y,Ye.x,Ye.y,Bt.x,Bt.y,new go.Point)}return ce[ce.length]=ce[0],nt(ue),ce}go.Shape.defineFigureGenerator("Pentagon",function(et,ue,ce){var Ce=ln(5),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<5;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.2,.22),Ae.spot2=new go.Spot(.8,.9),Ae}),go.Shape.defineFigureGenerator("Hexagon",function(et,ue,ce){var Ce=ln(6),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<6;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.07,.25),Ae.spot2=new go.Spot(.93,.75),Ae}),go.Shape.defineFigureGenerator("Heptagon",function(et,ue,ce){var Ce=ln(7),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<7;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.2,.15),Ae.spot2=new go.Spot(.8,.85),Ae}),go.Shape.defineFigureGenerator("Octagon",function(et,ue,ce){var Ce=ln(8),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<8;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.15,.15),Ae.spot2=new go.Spot(.85,.85),Ae}),go.Shape.defineFigureGenerator("Nonagon",function(et,ue,ce){var Ce=ln(9),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<9;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.17,.13),Ae.spot2=new go.Spot(.82,.82),Ae}),go.Shape.defineFigureGenerator("Decagon",function(et,ue,ce){var Ce=ln(10),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<10;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.16,.16),Ae.spot2=new go.Spot(.84,.84),Ae}),go.Shape.defineFigureGenerator("Dodecagon",function(et,ue,ce){var Ce=ln(12),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<12;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.16,.16),Ae.spot2=new go.Spot(.84,.84),Ae}),go.Shape.defineFigureGenerator("FivePointedStar",function(et,ue,ce){var Ce=on(5),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<10;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.266,.333),Ae.spot2=new go.Spot(.733,.733),Ae}),go.Shape.defineFigureGenerator("SixPointedStar",function(et,ue,ce){var Ce=on(6),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<12;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.17,.25),Ae.spot2=new go.Spot(.83,.75),Ae}),go.Shape.defineFigureGenerator("SevenPointedStar",function(et,ue,ce){var Ce=on(7),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<14;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.222,.277),Ae.spot2=new go.Spot(.777,.666),Ae}),go.Shape.defineFigureGenerator("EightPointedStar",function(et,ue,ce){var Ce=on(8),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<16;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.25,.25),Ae.spot2=new go.Spot(.75,.75),Ae}),go.Shape.defineFigureGenerator("NinePointedStar",function(et,ue,ce){var Ce=on(9),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<18;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.222,.277),Ae.spot2=new go.Spot(.777,.666),Ae}),go.Shape.defineFigureGenerator("TenPointedStar",function(et,ue,ce){var Ce=on(10),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<20;Ie++)Te.add(new go.PathSegment(go.PathSegment.Line,Ce[Ie].x*ue,Ce[Ie].y*ce));return Te.add(new go.PathSegment(go.PathSegment.Line,Ce[0].x*ue,Ce[0].y*ce).close()),nt(Ce),Ae.spot1=new go.Spot(.281,.261),Ae.spot2=new go.Spot(.723,.748),Ae}),go.Shape.defineFigureGenerator("FivePointedBurst",function(et,ue,ce){var Ce=rn(5),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<Ce.length;Ie+=3)Te.add(new go.PathSegment(go.PathSegment.Bezier,Ce[Ie+2].x*ue,Ce[Ie+2].y*ce,Ce[Ie].x*ue,Ce[Ie].y*ce,Ce[Ie+1].x*ue,Ce[Ie+1].y*ce));return Te.segments.last().close(),nt(Ce),Ae.spot1=new go.Spot(.222,.277),Ae.spot2=new go.Spot(.777,.777),Ae}),go.Shape.defineFigureGenerator("SixPointedBurst",function(et,ue,ce){var Ce=rn(6),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<Ce.length;Ie+=3)Te.add(new go.PathSegment(go.PathSegment.Bezier,Ce[Ie+2].x*ue,Ce[Ie+2].y*ce,Ce[Ie].x*ue,Ce[Ie].y*ce,Ce[Ie+1].x*ue,Ce[Ie+1].y*ce));return Te.segments.last().close(),nt(Ce),Ae.spot1=new go.Spot(.17,.222),Ae.spot2=new go.Spot(.833,.777),Ae}),go.Shape.defineFigureGenerator("SevenPointedBurst",function(et,ue,ce){var Ce=rn(7),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<Ce.length;Ie+=3)Te.add(new go.PathSegment(go.PathSegment.Bezier,Ce[Ie+2].x*ue,Ce[Ie+2].y*ce,Ce[Ie].x*ue,Ce[Ie].y*ce,Ce[Ie+1].x*ue,Ce[Ie+1].y*ce));return Te.segments.last().close(),nt(Ce),Ae.spot1=new go.Spot(.222,.222),Ae.spot2=new go.Spot(.777,.777),Ae}),go.Shape.defineFigureGenerator("EightPointedBurst",function(et,ue,ce){var Ce=rn(8),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<Ce.length;Ie+=3)Te.add(new go.PathSegment(go.PathSegment.Bezier,Ce[Ie+2].x*ue,Ce[Ie+2].y*ce,Ce[Ie].x*ue,Ce[Ie].y*ce,Ce[Ie+1].x*ue,Ce[Ie+1].y*ce));return Te.segments.last().close(),nt(Ce),Ae.spot1=new go.Spot(.222,.222),Ae.spot2=new go.Spot(.777,.777),Ae}),go.Shape.defineFigureGenerator("NinePointedBurst",function(et,ue,ce){var Ce=rn(9),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<Ce.length;Ie+=3)Te.add(new go.PathSegment(go.PathSegment.Bezier,Ce[Ie+2].x*ue,Ce[Ie+2].y*ce,Ce[Ie].x*ue,Ce[Ie].y*ce,Ce[Ie+1].x*ue,Ce[Ie+1].y*ce));return Te.segments.last().close(),nt(Ce),Ae.spot1=new go.Spot(.222,.222),Ae.spot2=new go.Spot(.777,.777),Ae}),go.Shape.defineFigureGenerator("TenPointedBurst",function(et,ue,ce){var Ce=rn(10),Ae=new go.Geometry,Te=new go.PathFigure(Ce[0].x*ue,Ce[0].y*ce,!0);Ae.add(Te);for(var Ie=1;Ie<Ce.length;Ie+=3)Te.add(new go.PathSegment(go.PathSegment.Bezier,Ce[Ie+2].x*ue,Ce[Ie+2].y*ce,Ce[Ie].x*ue,Ce[Ie].y*ce,Ce[Ie+1].x*ue,Ce[Ie+1].y*ce));return Te.segments.last().close(),nt(Ce),Ae.spot1=new go.Spot(.222,.222),Ae.spot2=new go.Spot(.777,.777),Ae}),go.Shape.setFigureParameter("FramedRectangle",0,new Cn("ThicknessX",8)),go.Shape.setFigureParameter("FramedRectangle",1,new Cn("ThicknessY",8)),go.Shape.defineFigureGenerator("FramedRectangle",function(et,ue,ce){var Ce=et?et.parameter1:NaN,Ae=et?et.parameter2:NaN;isNaN(Ce)&&(Ce=8),isNaN(Ae)&&(Ae=8);var Te=new go.Geometry,Ie=new go.PathFigure(0,0,!0);return Te.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,0,ce).close()),Ce<ue/2&&Ae<ce/2&&(Ie.add(new go.PathSegment(go.PathSegment.Move,Ce,Ae)),Ie.add(new go.PathSegment(go.PathSegment.Line,Ce,ce-Ae)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue-Ce,ce-Ae)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue-Ce,Ae).close())),Te.setSpots(0,0,1,1,Ce,Ae,-Ce,-Ae),Te}),go.Shape.setFigureParameter("Ring",0,new Cn("Thickness",8)),go.Shape.defineFigureGenerator("Ring",function(et,ue,ce){var Ce=et?et.parameter1:NaN;(isNaN(Ce)||Ce<0)&&(Ce=8);var Ae=ue/2,Te=new go.Geometry,Ie=new go.PathFigure(ue,ue/2,!0);Te.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Arc,0,360,Ae,Ae,Ae,Ae).close());var ze=Math.max(Ae-Ce,0);return ze>0&&(Ie.add(new go.PathSegment(go.PathSegment.Move,ue/2+ze,ue/2)),Ie.add(new go.PathSegment(go.PathSegment.Arc,0,-360,Ae,Ae,ze,ze).close())),Te.spot1=It,Te.spot2=dt,Te.defaultStretch=go.GraphObject.Uniform,Te}),go.Shape.defineFigureGenerator("Cloud",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(.08034461*ue,.1944299*ce,!0).add(new go.PathSegment(go.PathSegment.Bezier,.2008615*ue,.05349299*ce,-.09239631*ue,.07836421*ce,.1406031*ue,-.0542823*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.4338609*ue,.074219*ce,.2450511*ue,-.00697547*ce,.3776197*ue,-.01112067*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.6558228*ue,.07004196*ce,.4539471*ue,0,.6066018*ue,-.02526587*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.8921095*ue,.08370865*ce,.6914277*ue,-.01904177*ce,.8921095*ue,-.01220843*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.9147671*ue,.3194596*ce,1.036446*ue,.04105738*ce,1.020377*ue,.3022052*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.9082935*ue,.562044*ce,1.04448*ue,.360238*ce,.992256*ue,.5219009*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.9212406*ue,.8217117*ce,1.032337*ue,.5771781*ce,1.018411*ue,.8120651*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.7592566*ue,.9156953*ce,1.028411*ue,.9571472*ce,.8556702*ue,1.052487*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.5101666*ue,.9310455*ce,.7431877*ue,1.009325*ce,.5624123*ue,1.021761*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.2609328*ue,.9344623*ce,.4820677*ue,1.031761*ce,.3030112*ue,1.002796*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.08034461*ue,.870098*ce,.2329994*ue,1.01518*ce,.03213784*ue,1.01518*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.06829292*ue,.6545475*ce,-.02812061*ue,.9032597*ce,-.01205169*ue,.6835638*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.06427569*ue,.4265613*ce,-.01812061*ue,.6089503*ce,-.00606892*ue,.4555777*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.08034461*ue,.1944299*ce,-.01606892*ue,.3892545*ce,-.01205169*ue,.1944299*ce))).setSpots(.1,.1,.9,.9)}),go.Shape.defineFigureGenerator("StopSign",function(et,ue,ce){var Ce=1/(Math.SQRT2+2);return new go.Geometry().add(new go.PathFigure(Ce*ue,0,!0).add(new go.PathSegment(go.PathSegment.Line,(1-Ce)*ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue,Ce*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,(1-Ce)*ce)).add(new go.PathSegment(go.PathSegment.Line,(1-Ce)*ue,ce)).add(new go.PathSegment(go.PathSegment.Line,Ce*ue,ce)).add(new go.PathSegment(go.PathSegment.Line,0,(1-Ce)*ce)).add(new go.PathSegment(go.PathSegment.Line,0,Ce*ce).close())).setSpots(Ce/2,Ce/2,1-Ce/2,1-Ce/2)}),go.Shape.setFigureParameter("Pie",0,new Cn("Start",0,-360,360)),go.Shape.setFigureParameter("Pie",1,new Cn("Sweep",315,-360,360)),go.Shape.defineFigureGenerator("Pie",function(et,ue,ce){var Ce=et?et.parameter1:NaN,Ae=et?et.parameter2:NaN;isNaN(Ce)&&(Ce=0),isNaN(Ae)&&(Ae=315);var Te=Ce%360;Te<0&&(Te+=360);var Ie=Ae%360,ze=Math.min(ue,ce)/2;return new go.Geometry().add(new go.PathFigure(ze,ze).add(new go.PathSegment(go.PathSegment.Arc,Te,Ie,ze,ze,ze,ze).close()))}),go.Shape.defineFigureGenerator("PiePiece",function(et,ue,ce){var Ce=Mt/Math.SQRT2*.5,Ae=Math.SQRT2/2,Te=1-Math.SQRT2/2;return new go.Geometry().add(new go.PathFigure(ue,ce,!0).add(new go.PathSegment(go.PathSegment.Bezier,Ae*ue,Te*ce,ue,(1-Ce)*ce,(Ae+Ce)*ue,(Te+Ce)*ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce).close()))}),go.Shape.setFigureParameter("ThickCross",0,new Cn("Thickness",30)),go.Shape.defineFigureGenerator("ThickCross",function(et,ue,ce){var Ce=et?et.parameter1:NaN;(isNaN(Ce)||Ce<0)&&(Ce=30);var Ae=Math.min(Ce,ue)/2,Te=ue/2,Ie=ce/2;return new go.Geometry().add(new go.PathFigure(Te-Ae,0,!0).add(new go.PathSegment(go.PathSegment.Line,Te+Ae,0)).add(new go.PathSegment(go.PathSegment.Line,Te+Ae,Ie-Ae)).add(new go.PathSegment(go.PathSegment.Line,ue,Ie-Ae)).add(new go.PathSegment(go.PathSegment.Line,ue,Ie+Ae)).add(new go.PathSegment(go.PathSegment.Line,Te+Ae,Ie+Ae)).add(new go.PathSegment(go.PathSegment.Line,Te+Ae,ce)).add(new go.PathSegment(go.PathSegment.Line,Te-Ae,ce)).add(new go.PathSegment(go.PathSegment.Line,Te-Ae,Ie+Ae)).add(new go.PathSegment(go.PathSegment.Line,0,Ie+Ae)).add(new go.PathSegment(go.PathSegment.Line,0,Ie-Ae)).add(new go.PathSegment(go.PathSegment.Line,Te-Ae,Ie-Ae).close()))}),go.Shape.setFigureParameter("ThinCross",0,new Cn("Thickness",10)),go.Shape.defineFigureGenerator("ThinCross",function(et,ue,ce){var Ce=et?et.parameter1:NaN;(isNaN(Ce)||Ce<0)&&(Ce=10);var Ae=Math.min(Ce,ue)/2,Te=ue/2,Ie=ce/2;return new go.Geometry().add(new go.PathFigure(Te-Ae,0,!0).add(new go.PathSegment(go.PathSegment.Line,Te+Ae,0)).add(new go.PathSegment(go.PathSegment.Line,Te+Ae,Ie-Ae)).add(new go.PathSegment(go.PathSegment.Line,ue,Ie-Ae)).add(new go.PathSegment(go.PathSegment.Line,ue,Ie+Ae)).add(new go.PathSegment(go.PathSegment.Line,Te+Ae,Ie+Ae)).add(new go.PathSegment(go.PathSegment.Line,Te+Ae,ce)).add(new go.PathSegment(go.PathSegment.Line,Te-Ae,ce)).add(new go.PathSegment(go.PathSegment.Line,Te-Ae,Ie+Ae)).add(new go.PathSegment(go.PathSegment.Line,0,Ie+Ae)).add(new go.PathSegment(go.PathSegment.Line,0,Ie-Ae)).add(new go.PathSegment(go.PathSegment.Line,Te-Ae,Ie-Ae).close()))}),go.Shape.setFigureParameter("ThickX",0,new Cn("Thickness",30)),go.Shape.defineFigureGenerator("ThickX",function(et,ue,ce){var Ce=et?et.parameter1:NaN;if((isNaN(Ce)||Ce<0)&&(Ce=30),ue===0||ce===0){var Ae=new go.Geometry(go.Geometry.Rectangle);return Ae.startX=0,Ae.startY=0,Ae.endX=ue,Ae.endY=ce,Ae}else{var Te=ue/2,Ie=ce/2,ze=Math.atan2(ce,ue),Ye=Ce-Math.min(Math.cos(ze)*Ce/2,Te),lt=Ce-Math.min(Math.sin(ze)*Ce/2,Ie),Ae=new go.Geometry,Bt=new go.PathFigure(Ye,0,!0);return Ae.add(Bt),Bt.add(new go.PathSegment(go.PathSegment.Line,Te,.2*ce)),Bt.add(new go.PathSegment(go.PathSegment.Line,ue-Ye,0)),Bt.add(new go.PathSegment(go.PathSegment.Line,ue,lt)),Bt.add(new go.PathSegment(go.PathSegment.Line,.8*ue,Ie)),Bt.add(new go.PathSegment(go.PathSegment.Line,ue,ce-lt)),Bt.add(new go.PathSegment(go.PathSegment.Line,ue-Ye,ce)),Bt.add(new go.PathSegment(go.PathSegment.Line,Te,.8*ce)),Bt.add(new go.PathSegment(go.PathSegment.Line,Ye,ce)),Bt.add(new go.PathSegment(go.PathSegment.Line,0,ce-lt)),Bt.add(new go.PathSegment(go.PathSegment.Line,.2*ue,Ie)),Bt.add(new go.PathSegment(go.PathSegment.Line,0,lt).close()),Ae}}),go.Shape.setFigureParameter("ThinX",0,new Cn("Thickness",10)),go.Shape.defineFigureGenerator("ThinX",function(et,ue,ce){var Ce=et?et.parameter1:NaN;(isNaN(Ce)||Ce<0)&&(Ce=10);var Ae=new go.Geometry,Te=new go.PathFigure(.1*ue,0,!0);return Ae.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.4*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.9*ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.1*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.9*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.9*ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.6*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.1*ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,.9*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.4*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,.1*ce).close()),Ae}),go.Shape.setFigureParameter("SquareIBeam",0,new Cn("BeamWidth",.2,.1,.9)),go.Shape.defineFigureGenerator("SquareIBeam",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=.2);var Ae=new go.Geometry,Te=new go.PathFigure(0,0,!0);return Ae.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,Ce*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,(.5+Ce/2)*ue,Ce*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,(.5+Ce/2)*ue,(1-Ce)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,(1-Ce)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,(1-Ce)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,(.5-Ce/2)*ue,(1-Ce)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,(.5-Ce/2)*ue,Ce*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,Ce*ce).close()),Ae}),go.Shape.setFigureParameter("RoundedIBeam",0,new Cn("Curviness",.5,.05,.65)),go.Shape.defineFigureGenerator("RoundedIBeam",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=.5);var Ae=new go.Geometry,Te=new go.PathFigure(0,0,!0);return Ae.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Bezier,ue,ce,Math.abs(1-Ce)*ue,.25*ce,Math.abs(1-Ce)*ue,.75*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,0,0,Ce*ue,.75*ce,Ce*ue,.25*ce).close()),Ae}),go.Shape.defineFigureGenerator("HalfEllipse",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Bezier,ue,.5*ce,Mt*ue,0,ue,(.5-Mt/2)*ce)).add(new go.PathSegment(go.PathSegment.Bezier,0,ce,ue,(.5+Mt/2)*ce,Mt*ue,ce).close())).setSpots(0,.156,.844,.844)}),go.Shape.defineFigureGenerator("Crescent",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Bezier,0,ce,ue,0,ue,ce)).add(new go.PathSegment(go.PathSegment.Bezier,0,0,.5*ue,.75*ce,.5*ue,.25*ce).close())).setSpots(.311,.266,.744,.744)}),go.Shape.defineFigureGenerator("Heart",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(.5*ue,ce,!0).add(new go.PathSegment(go.PathSegment.Bezier,0,.3*ce,.1*ue,.8*ce,0,.5*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.3*ce,0,0,.45*ue,0)).add(new go.PathSegment(go.PathSegment.Bezier,ue,.3*ce,.55*ue,0,ue,0)).add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,ce,ue,.5*ce,.9*ue,.8*ce).close())).setSpots(.14,.29,.86,.78)}),go.Shape.defineFigureGenerator("Spade",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(.5*ue,0,!0).add(new go.PathSegment(go.PathSegment.Line,.51*ue,.01*ce)).add(new go.PathSegment(go.PathSegment.Bezier,ue,.5*ce,.6*ue,.2*ce,ue,.25*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.55*ue,.7*ce,ue,.8*ce,.6*ue,.8*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.75*ue,ce,.5*ue,.75*ce,.55*ue,.95*ce)).add(new go.PathSegment(go.PathSegment.Line,.25*ue,ce)).add(new go.PathSegment(go.PathSegment.Bezier,.45*ue,.7*ce,.45*ue,.95*ce,.5*ue,.75*ce)).add(new go.PathSegment(go.PathSegment.Bezier,0,.5*ce,.4*ue,.8*ce,0,.8*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.49*ue,.01*ce,0,.25*ce,.4*ue,.2*ce).close())).setSpots(.14,.26,.86,.78)}),go.Shape.defineFigureGenerator("Club",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.4*ue,.6*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.15*ue,ce,.5*ue,.75*ce,.45*ue,.95*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.85*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.6*ue,.6*ce,.55*ue,.95*ce,.5*ue,.75*ce));var Te=.2,Ie=.3,ze=0,Ye=Te*Mt;return Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Ie)*ue,(.5+Te+ze)*ce,(.5-Te+Ie)*ue,(.5+Ye+ze)*ce,(.5-Ye+Ie)*ue,(.5+Te+ze)*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(1-.5+Te+Ie)*ue,(.5+ze)*ce,(.5+Ye+Ie)*ue,(.5+Te+ze)*ce,(.5+Te+Ie)*ue,(.5+Ye+ze)*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Ie)*ue,(.5-Te+ze)*ce,(1-.5+Te+Ie)*ue,(.5-Ye+ze)*ce,(.5+Ye+Ie)*ue,(.5-Te+ze)*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.65*ue,.36771243*ce,(.5-Ye+Ie)*ue,(.5-Te+ze)*ce,(.5-Te+Ie+.05)*ue,(.5-Ye+ze-.02)*ce)),Te=.2,Ie=0,ze=-.3,Ye=Te*Mt,Ae.add(new go.PathSegment(go.PathSegment.Bezier,(1-.5+Te+Ie)*ue,(.5+ze)*ce,(.5+Ye+Ie)*ue,(.5+Te+ze)*ce,(.5+Te+Ie)*ue,(.5+Ye+ze)*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Ie)*ue,(.5-Te+ze)*ce,(1-.5+Te+Ie)*ue,(.5-Ye+ze)*ce,(.5+Ye+Ie)*ue,(.5-Te+ze)*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5-Te+Ie)*ue,(.5+ze)*ce,(.5-Ye+Ie)*ue,(.5-Te+ze)*ce,(.5-Te+Ie)*ue,(.5-Ye+ze)*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5-Ye+Ie)*ue,(.5+Te+ze)*ce,(.5-Te+Ie)*ue,(.5+Ye+ze)*ce,(.5-Ye+Ie)*ue,(.5+Te+ze)*ce)),Te=.2,Ie=-.3,ze=0,Ye=Te*Mt,Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Ie)*ue,(.5-Te+ze)*ce,(1-.5+Te+Ie-.05)*ue,(.5-Ye+ze-.02)*ce,(.5+Ye+Ie)*ue,(.5-Te+ze)*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5-Te+Ie)*ue,(.5+ze)*ce,(.5-Ye+Ie)*ue,(.5-Te+ze)*ce,(.5-Te+Ie)*ue,(.5-Ye+ze)*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Ie)*ue,(.5+Te+ze)*ce,(.5-Te+Ie)*ue,(.5+Ye+ze)*ce,(.5-Ye+Ie)*ue,(.5+Te+ze)*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.4*ue,.6*ce,(.5+Ye+Ie)*ue,(.5+Te+ze)*ce,(.5+Te+Ie)*ue,(.5+Ye+ze)*ce).close()),Ce.setSpots(.06,.33,.93,.68),Ce}),go.Shape.defineFigureGenerator("YinYang",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue*.5,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Arc,270,180,ue*.5,ue*.5,ue*.5,ue*.5)),Ae.add(new go.PathSegment(go.PathSegment.Arc,90,-180,ue*.5,ue*.75,ue*.25,ue*.25)),Ae.add(new go.PathSegment(go.PathSegment.Arc,90,180,ue*.5,ue*.25,ue*.25,ue*.25));var Te=.1,Ie=.5,ze=.25;return Ae.add(new go.PathSegment(go.PathSegment.Move,(Ie+Te)*ue,ze*ce)),Ae.add(new go.PathSegment(go.PathSegment.Arc,0,-360,ue*Ie,ce*ze,Te*ue,Te*ue).close()),Ae=new go.PathFigure(ue*.5,0,!1),Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Arc,270,-180,ue*.5,ue*.5,ue*.5,ue*.5)),ze=.75,Ae=new go.PathFigure((Ie+Te)*ue,ze*ce,!0),Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Arc,0,360,ue*Ie,ce*ze,Te*ue,Te*ue).close()),Ce.defaultStretch=go.GraphObject.Uniform,Ce}),go.Shape.defineFigureGenerator("Peace",function(et,ue,ce){var Ce=.8535533905932737,Ae=.5*ue,Te=.5*ce;return new go.Geometry().add(new go.PathFigure(Ae,0,!1).add(new go.PathSegment(go.PathSegment.Arc,270,360,Ae,Te,Ae,Te)).add(new go.PathSegment(go.PathSegment.Line,Ae,ce)).add(new go.PathSegment(go.PathSegment.Move,Ae,Te)).add(new go.PathSegment(go.PathSegment.Line,(1-Ce)*ue,Ce*ce)).add(new go.PathSegment(go.PathSegment.Move,Ae,Te)).add(new go.PathSegment(go.PathSegment.Line,Ce*ue,Ce*ce)))}),go.Shape.defineFigureGenerator("NotAllowed",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.5,Te=.5,Ie=.5,ze=.5,Ye=new go.PathFigure(Ie*ue,(ze-Te)*ce);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Te)*ue,ze*ce,(Ie-Ae)*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Te)*ce,(Ie-Te)*ue,(ze+Ae)*ce,(Ie-Ae)*ue,(ze+Te)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,ze*ce,(Ie+Ae)*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Te)*ce,(Ie+Te)*ue,(ze-Ae)*ce,(Ie+Ae)*ue,(ze-Te)*ce)),Te=.4,Ae=Mt*.4;var lt=Me(),Bt=Me(),kt=Me(),xt=Me();Qt(Ie,ze-Te,Ie+Ae,ze-Te,Ie+Te,ze-Ae,Ie+Te,ze,.42,lt,Bt,kt,xt,xt);var Et=Me(),$t=Me(),Zt=Me();Qt(Ie,ze-Te,Ie+Ae,ze-Te,Ie+Te,ze-Ae,Ie+Te,ze,.58,xt,xt,Zt,Et,$t);var Yn=Me(),gn=Me(),Jn=Me();Qt(Ie,ze+Te,Ie-Ae,ze+Te,Ie-Te,ze+Ae,Ie-Te,ze,.42,Yn,gn,Jn,xt,xt);var ci=Me(),Xn=Me(),In=Me();return Qt(Ie,ze+Te,Ie-Ae,ze+Te,Ie-Te,ze+Ae,Ie-Te,ze,.58,xt,xt,In,ci,Xn),Ye.add(new go.PathSegment(go.PathSegment.Move,In.x*ue,In.y*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Te)*ue,ze*ce,ci.x*ue,ci.y*ce,Xn.x*ue,Xn.y*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce,(Ie-Ae)*ue,(ze-Te)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,kt.x*ue,kt.y*ce,lt.x*ue,lt.y*ce,Bt.x*ue,Bt.y*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,In.x*ue,In.y*ce).close()),Ye.add(new go.PathSegment(go.PathSegment.Move,Jn.x*ue,Jn.y*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,Zt.x*ue,Zt.y*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,ze*ce,Et.x*ue,Et.y*ce,$t.x*ue,$t.y*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce,(Ie+Ae)*ue,(ze+Te)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Jn.x*ue,Jn.y*ce,Yn.x*ue,Yn.y*ce,gn.x*ue,gn.y*ce).close()),yt(lt),yt(Bt),yt(kt),yt(xt),yt(Et),yt($t),yt(Zt),yt(Yn),yt(gn),yt(Jn),yt(ci),yt(Xn),yt(In),Ce.defaultStretch=go.GraphObject.Uniform,Ce}),go.Shape.defineFigureGenerator("Fragile",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,.25*ue,0)).add(new go.PathSegment(go.PathSegment.Line,.2*ue,.15*ce)).add(new go.PathSegment(go.PathSegment.Line,.3*ue,.25*ce)).add(new go.PathSegment(go.PathSegment.Line,.29*ue,.33*ce)).add(new go.PathSegment(go.PathSegment.Line,.35*ue,.25*ce)).add(new go.PathSegment(go.PathSegment.Line,.3*ue,.15*ce)).add(new go.PathSegment(go.PathSegment.Line,.4*ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Bezier,.55*ue,.5*ce,ue,.25*ce,.75*ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,.55*ue,.9*ce)).add(new go.PathSegment(go.PathSegment.Line,.7*ue,.9*ce)).add(new go.PathSegment(go.PathSegment.Line,.7*ue,ce)).add(new go.PathSegment(go.PathSegment.Line,.3*ue,ce)).add(new go.PathSegment(go.PathSegment.Line,.3*ue,.9*ce)).add(new go.PathSegment(go.PathSegment.Line,.45*ue,.9*ce)).add(new go.PathSegment(go.PathSegment.Line,.45*ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Bezier,0,0,.25*ue,.5*ce,0,.25*ce).close()))}),go.Shape.setFigureParameter("HourGlass",0,new Cn("Thickness",30)),go.Shape.defineFigureGenerator("HourGlass",function(et,ue,ce){var Ce=et?et.parameter1:NaN;(isNaN(Ce)||Ce<0)&&(Ce=30),Ce>ue&&(Ce=ue);var Ae=(ue-Ce)/2,Te=Ae+Ce;return new go.Geometry().add(new go.PathFigure(Te,.5*ce).add(new go.PathSegment(go.PathSegment.Line,ue,ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce)).add(new go.PathSegment(go.PathSegment.Line,Ae,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,0,0)).add(new go.PathSegment(go.PathSegment.Line,ue,0).close()))}),go.Shape.defineFigureGenerator("Lightning",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,.55*ce).add(new go.PathSegment(go.PathSegment.Line,.6*ue,0)).add(new go.PathSegment(go.PathSegment.Line,.3*ue,.45*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,.45*ce)).add(new go.PathSegment(go.PathSegment.Line,.4*ue,ce)).add(new go.PathSegment(go.PathSegment.Line,.7*ue,.55*ce).close()))}),go.Shape.defineFigureGenerator("GenderMale",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.4,Te=.4,Ie=.5,ze=.5,Ye=Me(),lt=Me(),Bt=Me(),kt=Me(),xt=new go.PathFigure((Ie-Te)*ue,ze*ce,!1);Ce.add(xt),xt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce,(Ie-Ae)*ue,(ze-Te)*ce)),Qt(Ie,ze-Te,Ie+Ae,ze-Te,Ie+Te,ze-Ae,Ie+Te,ze,.44,Bt,kt,lt,Ye,Ye),xt.add(new go.PathSegment(go.PathSegment.Bezier,lt.x*ue,lt.y*ce,Bt.x*ue,Bt.y*ce,kt.x*ue,kt.y*ce));var Et=je(lt.x,lt.y);Qt(Ie,ze-Te,Ie+Ae,ze-Te,Ie+Te,ze-Ae,Ie+Te,ze,.56,Ye,Ye,lt,Bt,kt);var $t=je(lt.x,lt.y);xt.add(new go.PathSegment(go.PathSegment.Line,(Et.x*.1+.95*.9)*ue,Et.y*.1*ce)),xt.add(new go.PathSegment(go.PathSegment.Line,.85*ue,Et.y*.1*ce)),xt.add(new go.PathSegment(go.PathSegment.Line,.85*ue,0)),xt.add(new go.PathSegment(go.PathSegment.Line,ue,0)),xt.add(new go.PathSegment(go.PathSegment.Line,ue,.15*ce)),xt.add(new go.PathSegment(go.PathSegment.Line,($t.x*.1+.9)*ue,.15*ce)),xt.add(new go.PathSegment(go.PathSegment.Line,($t.x*.1+.9)*ue,($t.y*.1+.05*.9)*ce)),xt.add(new go.PathSegment(go.PathSegment.Line,$t.x*ue,$t.y*ce)),xt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,ze*ce,Bt.x*ue,Bt.y*ce,kt.x*ue,kt.y*ce)),xt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce,(Ie+Ae)*ue,(ze+Te)*ce)),xt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Te)*ue,ze*ce,(Ie-Ae)*ue,(ze+Te)*ce,(Ie-Te)*ue,(ze+Ae)*ce)),Te=.35,Ae=Mt*.35;var Zt=new go.PathFigure(Ie*ue,(ze-Te)*ce,!1);Ce.add(Zt),Zt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Te)*ue,ze*ce,(Ie-Ae)*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce)),Zt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Te)*ce,(Ie-Te)*ue,(ze+Ae)*ce,(Ie-Ae)*ue,(ze+Te)*ce)),Zt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,ze*ce,(Ie+Ae)*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),Zt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Te)*ce,(Ie+Te)*ue,(ze-Ae)*ce,(Ie+Ae)*ue,(ze-Te)*ce));var Yn=new go.PathFigure((Ie-Te)*ue,ze*ce,!1);return Ce.add(Yn),yt(Ye),yt(lt),yt(Bt),yt(kt),yt(Et),yt($t),Ce.spot1=new go.Spot(.202,.257),Ce.spot2=new go.Spot(.792,.739),Ce.defaultStretch=go.GraphObject.Uniform,Ce}),go.Shape.defineFigureGenerator("GenderFemale",function(et,ue,ce){var Ce=new go.Geometry,Ae=.375,Te=0,Ie=-.125,ze=Ae*Mt,Ye=new go.PathFigure((.525+Te)*ue,(.5+Ae+Ie)*ce,!1);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(1-.5+Ae+Te)*ue,(.5+Ie)*ce,(.5+ze+Te)*ue,(.5+Ae+Ie)*ce,(.5+Ae+Te)*ue,(.5+ze+Ie)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Te)*ue,(.5-Ae+Ie)*ce,(1-.5+Ae+Te)*ue,(.5-ze+Ie)*ce,(.5+ze+Te)*ue,(.5-Ae+Ie)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(.5-Ae+Te)*ue,(.5+Ie)*ce,(.5-ze+Te)*ue,(.5-Ae+Ie)*ce,(.5-Ae+Te)*ue,(.5-ze+Ie)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(.475+Te)*ue,(.5+Ae+Ie)*ce,(.5-Ae+Te)*ue,(.5+ze+Ie)*ce,(.5-ze+Te)*ue,(.5+Ae+Ie)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.475*ue,.85*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.425*ue,.85*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.425*ue,.9*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.475*ue,.9*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.475*ue,ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.525*ue,ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.525*ue,.9*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.575*ue,.9*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.575*ue,.85*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.525*ue,.85*ce).close()),Ae=.325,Te=0,Ie=-.125,ze=Ae*Mt;var Ye=new go.PathFigure((1-.5+Ae+Te)*ue,(.5+Ie)*ce,!1);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Te)*ue,(.5+Ae+Ie)*ce,(.5+Ae+Te)*ue,(.5+ze+Ie)*ce,(.5+ze+Te)*ue,(.5+Ae+Ie)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(.5-Ae+Te)*ue,(.5+Ie)*ce,(.5-ze+Te)*ue,(.5+Ae+Ie)*ce,(.5-Ae+Te)*ue,(.5+ze+Ie)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(.5+Te)*ue,(.5-Ae+Ie)*ce,(.5-Ae+Te)*ue,(.5-ze+Ie)*ce,(.5-ze+Te)*ue,(.5-Ae+Ie)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(1-.5+Ae+Te)*ue,(.5+Ie)*ce,(.5+ze+Te)*ue,(.5-Ae+Ie)*ce,(1-.5+Ae+Te)*ue,(.5-ze+Ie)*ce));var Ye=new go.PathFigure((.525+Te)*ue,(.5+Ae+Ie)*ce,!1);return Ce.add(Ye),Ce.spot1=new go.Spot(.232,.136),Ce.spot2=new go.Spot(.682,.611),Ce.defaultStretch=go.GraphObject.Uniform,Ce}),go.Shape.defineFigureGenerator("LogicImplies",function(et,ue,ce){var Ce=et?et.parameter1:NaN;return isNaN(Ce)&&(Ce=.2),new go.Geometry().add(new go.PathFigure((1-Ce)*ue,0,!1).add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,(1-Ce)*ue,ce)).add(new go.PathSegment(go.PathSegment.Move,0,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce))).setSpots(0,0,.8,.5)}),go.Shape.defineFigureGenerator("LogicIff",function(et,ue,ce){var Ce=et?et.parameter1:NaN;return isNaN(Ce)&&(Ce=.2),new go.Geometry().add(new go.PathFigure((1-Ce)*ue,0,!1).add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,(1-Ce)*ue,ce)).add(new go.PathSegment(go.PathSegment.Move,0,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Move,Ce*ue,0)).add(new go.PathSegment(go.PathSegment.Line,0,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,Ce*ue,ce))).setSpots(.2,0,.8,.5)}),go.Shape.defineFigureGenerator("LogicNot",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue,ce)))}),go.Shape.defineFigureGenerator("LogicAnd",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,ce,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue,ce))).setSpots(.25,.5,.75,1)}),go.Shape.defineFigureGenerator("LogicOr",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)).add(new go.PathSegment(go.PathSegment.Line,ue,0))).setSpots(.219,0,.78,.409)}),go.Shape.defineFigureGenerator("LogicXor",function(et,ue,ce){var Ce=new go.Geometry().add(new go.PathFigure(.5*ue,0,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)).add(new go.PathSegment(go.PathSegment.Move,0,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Arc,0,360,.5*ue,.5*ce,.5*ue,.5*ce)));return Ce.defaultStretch=go.GraphObject.Uniform,Ce}),go.Shape.defineFigureGenerator("LogicTruth",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Move,.5*ue,0)).add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)))}),go.Shape.defineFigureGenerator("LogicFalsity",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,ce,!1).add(new go.PathSegment(go.PathSegment.Line,ue,ce)).add(new go.PathSegment(go.PathSegment.Move,.5*ue,ce)).add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)))}),go.Shape.defineFigureGenerator("LogicThereExists",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,0,.5*ce)).add(new go.PathSegment(go.PathSegment.Move,ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce)))}),go.Shape.defineFigureGenerator("LogicForAll",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Move,.25*ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,.75*ue,.5*ce))).setSpots(.25,0,.75,.5)}),go.Shape.defineFigureGenerator("LogicIsDefinedAs",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!1).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Move,0,.5*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Move,0,ce)).add(new go.PathSegment(go.PathSegment.Line,ue,ce))).setSpots(.01,.01,.99,.49)}),go.Shape.defineFigureGenerator("LogicIntersect",function(et,ue,ce){var Ce=.5;return new go.Geometry().add(new go.PathFigure(0,ce,!1).add(new go.PathSegment(go.PathSegment.Line,0,Ce*ce)).add(new go.PathSegment(go.PathSegment.Arc,180,180,Ce*ue,Ce*ce,Ce*ue,Ce*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,ce))).setSpots(0,.5,1,1)}),go.Shape.defineFigureGenerator("LogicUnion",function(et,ue,ce){var Ce=.5;return new go.Geometry().add(new go.PathFigure(ue,0,!1).add(new go.PathSegment(go.PathSegment.Line,ue,Ce*ce)).add(new go.PathSegment(go.PathSegment.Arc,0,180,Ce*ue,Ce*ce,Ce*ue,Ce*ce)).add(new go.PathSegment(go.PathSegment.Line,0,0))).setSpots(0,0,1,.5)}),go.Shape.setFigureParameter("Arrow",0,new Cn("ArrowheadWidth",.3,.01,.99)),go.Shape.setFigureParameter("Arrow",1,new Cn("TailHeight",.3,.01,.99)),go.Shape.defineFigureGenerator("Arrow",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=.3);var Ae=et?et.parameter2:NaN;isNaN(Ae)&&(Ae=.3);var Te=(1-Ce)*ue,Ie=(.5-Ae/2)*ce,ze=(.5+Ae/2)*ce,Ye=new go.Geometry,lt=new go.PathFigure(0,Ie,!0);Ye.add(lt),lt.add(new go.PathSegment(go.PathSegment.Line,Te,Ie)),lt.add(new go.PathSegment(go.PathSegment.Line,Te,0)),lt.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),lt.add(new go.PathSegment(go.PathSegment.Line,Te,ce)),lt.add(new go.PathSegment(go.PathSegment.Line,Te,ze)),lt.add(new go.PathSegment(go.PathSegment.Line,0,ze).close()),Ye.spot1=new go.Spot(0,Ie/ce);var Bt=Jt(0,ze/ce,1,ze/ce,Te/ue,1,1,.5,Me());return Ye.spot2=new go.Spot(Bt.x,Bt.y),yt(Bt),Ye}),go.Shape.setFigureParameter("Arrow2",0,new Cn("ArrowheadWidth",30)),go.Shape.setFigureParameter("Arrow2",0,new Cn("TailHeight",30)),go.Shape.defineFigureGenerator("Arrow2",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=30),Ce>ue&&(Ce=ue);var Ae=et?et.parameter2:NaN;isNaN(Ae)&&(Ae=30),Ae=Math.min(Ae,ce/2);var Te=ue-Ce,Ie=(ce-Ae)/2,ze=Ie+Ae,Ye=new go.Geometry,lt=new go.PathFigure(0,Ie,!0);Ye.add(lt),lt.add(new go.PathSegment(go.PathSegment.Line,Te,Ie)),lt.add(new go.PathSegment(go.PathSegment.Line,Te,0)),lt.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),lt.add(new go.PathSegment(go.PathSegment.Line,Te,ce)),lt.add(new go.PathSegment(go.PathSegment.Line,Te,ze)),lt.add(new go.PathSegment(go.PathSegment.Line,0,ze).close()),Ye.spot1=new go.Spot(0,Ie/ce);var Bt=Jt(0,ze/ce,1,ze/ce,Te/ue,1,1,.5,Me());return Ye.spot2=new go.Spot(Bt.x,Bt.y),yt(Bt),Ye}),go.Shape.defineFigureGenerator("Chevron",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.5*ce).close()),Ce}),go.Shape.defineFigureGenerator("DoubleArrow",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.3*ue,.214*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.3*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,1*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.3*ue,1*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.3*ue,.786*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,1*ce).close()),Ce}),go.Shape.setFigureParameter("DoubleEndArrow",0,new Cn("ConnecterHeight",.3,.01,.99)),go.Shape.defineFigureGenerator("DoubleEndArrow",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=.3);var Ae=(.5-Ce/2)*ce,Te=(.5+Ce/2)*ce,Ie=new go.Geometry,ze=new go.PathFigure(ue,.5*ce,!0);Ie.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Te)),ze.add(new go.PathSegment(go.PathSegment.Line,.3*ue,Te)),ze.add(new go.PathSegment(go.PathSegment.Line,.3*ue,ce)),ze.add(new go.PathSegment(go.PathSegment.Line,0,.5*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.3*ue,0)),ze.add(new go.PathSegment(go.PathSegment.Line,.3*ue,Ae)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Ae)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,0).close());var Ye=Jt(0,.5,.3,0,0,Ae/ce,.1,Ae/ce,Me());return Ie.spot1=new go.Spot(Ye.x,Ye.y),Ye=Jt(.7,1,1,.5,0,Te/ce,1,Te/ce,Ye),Ie.spot2=new go.Spot(Ye.x,Ye.y),yt(Ye),Ie}),go.Shape.setFigureParameter("DoubleEndArrow2",0,new Cn("ConnecterHeight",40)),go.Shape.setFigureParameter("DoubleEndArrow2",1,new Cn("ArrowHeight",100)),go.Shape.defineFigureGenerator("DoubleEndArrow2",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=40);var Ae=et?et.parameter2:NaN;isNaN(Ae)&&(Ae=100);var Te=(ce-Ce)/2,Ie=Te+Ce,ze=(ce-Ae)/2,Ye=ze+Ae;(Ce>ce||Ae>ce)&&(Ae>Ce?(Ce=Ce*ce/Ae,Te=(ce-Ce)/2,Ie=Te+Ce,ze=0,Ye=ce):(Te=0,Ie=ce,ze=0,Ye=ce));var lt=new go.Geometry,Bt=new go.PathFigure(ue,.5*ce,!0);lt.add(Bt),Bt.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Ye)),Bt.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Ie)),Bt.add(new go.PathSegment(go.PathSegment.Line,.3*ue,Ie)),Bt.add(new go.PathSegment(go.PathSegment.Line,.3*ue,Ye)),Bt.add(new go.PathSegment(go.PathSegment.Line,0,.5*ce)),Bt.add(new go.PathSegment(go.PathSegment.Line,.3*ue,ze)),Bt.add(new go.PathSegment(go.PathSegment.Line,.3*ue,Te)),Bt.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Te)),Bt.add(new go.PathSegment(go.PathSegment.Line,.7*ue,ze).close());var kt=Jt(0,.5,.3,ze/ce,0,Te/ce,1,Te/ce,Me());return lt.spot1=new go.Spot(kt.x,kt.y),kt=Jt(.7,Ye/ce,1,.5,0,Ie/ce,1,Ie/ce,kt),lt.spot2=new go.Spot(kt.x,kt.y),yt(kt),lt}),go.Shape.setFigureParameter("IBeamArrow",0,new Cn("ConnectorHeight",.7,.51,.97)),go.Shape.defineFigureGenerator("IBeamArrow",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=.3);var Ae=(.5-Ce/2)*ce,Te=(.5+Ce/2)*ce,Ie=new go.Geometry,ze=new go.PathFigure(ue,.5*ce,!0);Ie.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Te)),ze.add(new go.PathSegment(go.PathSegment.Line,.2*ue,Te)),ze.add(new go.PathSegment(go.PathSegment.Line,.2*ue,ce)),ze.add(new go.PathSegment(go.PathSegment.Line,0,ce)),ze.add(new go.PathSegment(go.PathSegment.Line,0,0)),ze.add(new go.PathSegment(go.PathSegment.Line,.2*ue,0)),ze.add(new go.PathSegment(go.PathSegment.Line,.2*ue,Ae)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Ae)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,0).close()),Ie.spot1=new go.Spot(0,Ae/ce);var Ye=Jt(.7,1,1,.5,0,Te/ce,1,Te/ce,Me());return Ie.spot2=new go.Spot(Ye.x,Ye.y),yt(Ye),Ie}),go.Shape.setFigureParameter("IBeamArrow2",0,new Cn("ConnectorHeight",40)),go.Shape.setFigureParameter("IBeamArrow2",1,new Cn("BeamArrowHeight",100)),go.Shape.defineFigureGenerator("IBeamArrow2",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=40);var Ae=et?et.parameter2:NaN;isNaN(Ae)&&(Ae=100);var Te=(ce-Ce)/2,Ie=Te+Ce,ze=(ce-Ae)/2,Ye=ze+Ae;(Ce>ce||Ae>ce)&&(Ae>Ce?(Ce=Ce*ce/Ae,Te=(ce-Ce)/2,Ie=Te+Ce,ze=0,Ye=ce):(Te=0,Ie=ce,ze=0,Ye=ce));var lt=new go.Geometry,Bt=new go.PathFigure(ue,.5*ce,!0);lt.add(Bt),Bt.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Ye)),Bt.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Ie)),Bt.add(new go.PathSegment(go.PathSegment.Line,.2*ue,Ie)),Bt.add(new go.PathSegment(go.PathSegment.Line,.2*ue,Ye)),Bt.add(new go.PathSegment(go.PathSegment.Line,0,Ye)),Bt.add(new go.PathSegment(go.PathSegment.Line,0,ze)),Bt.add(new go.PathSegment(go.PathSegment.Line,.2*ue,ze)),Bt.add(new go.PathSegment(go.PathSegment.Line,.2*ue,Te)),Bt.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Te)),Bt.add(new go.PathSegment(go.PathSegment.Line,.7*ue,ze).close()),lt.spot1=new go.Spot(0,Te/ce);var kt=Jt(.7,Ye/ce,1,.5,0,Ie/ce,1,Ie/ce,Me());return lt.spot2=new go.Spot(kt.x,kt.y),yt(kt),lt}),go.Shape.setFigureParameter("Pointer",0,new Cn("BackPoint",.1,0,.2)),go.Shape.defineFigureGenerator("Pointer",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=.1);var Ae=new go.Geometry,Te=new go.PathFigure(ue,.5*ce,!0);Ae.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,Ce*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,0).close()),Ae.spot1=new go.Spot(Ce,.35);var Ie=Jt(.2,.65,1,.65,0,1,1,.5,Me());return Ae.spot2=new go.Spot(Ie.x,Ie.y),yt(Ie),Ae}),go.Shape.setFigureParameter("RoundedPointer",0,new Cn("RoundedEdge",.3,0,.5)),go.Shape.defineFigureGenerator("RoundedPointer",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=.3);var Ae=new go.Geometry,Te=new go.PathFigure(ue,.5*ce,!0);Ae.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,0,0,Ce*ue,.75*ce,Ce*ue,.25*ce).close()),Ae.spot1=new go.Spot(Ce,.35);var Ie=Jt(0,.65,1,.65,0,1,1,.5,Me());return Ae.spot2=new go.Spot(Ie.x,Ie.y),yt(Ie),Ae}),go.Shape.setFigureParameter("SplitEndArrow",0,new Cn("TailHeight",.4,.01,.99)),go.Shape.defineFigureGenerator("SplitEndArrow",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=.4);var Ae=(.5-Ce/2)*ce,Te=(.5+Ce/2)*ce,Ie=new go.Geometry,ze=new go.PathFigure(ue,.5*ce,!0);Ie.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Te)),ze.add(new go.PathSegment(go.PathSegment.Line,0,Te)),ze.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.5*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,0,Ae)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Ae)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,0).close()),Ie.spot1=new go.Spot(.2,.3);var Ye=Jt(.7,1,1,.5,0,Te/ce,1,Te/ce,Me());return Ie.spot2=new go.Spot(Ye.x,Ye.y),yt(Ye),Ie}),go.Shape.setFigureParameter("SplitEndArrow2",0,new Cn("TailThickness",50)),go.Shape.defineFigureGenerator("SplitEndArrow2",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=50);var Ae=(ce-Ce)/2,Te=Ae+Ce;Ce>ce&&(Ae=0,Te=ce);var Ie=new go.Geometry,ze=new go.PathFigure(ue,.5*ce,!0);Ie.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Te)),ze.add(new go.PathSegment(go.PathSegment.Line,0,Te)),ze.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.5*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,0,Ae)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,Ae)),ze.add(new go.PathSegment(go.PathSegment.Line,.7*ue,0).close()),Ie.spot1=new go.Spot(.2,Ae/ce);var Ye=Jt(.7,1,1,.5,0,Te/ce,1,Te/ce,Me());return Ie.spot2=new go.Spot(Ye.x,Ye.y),yt(Ye),Ie}),go.Shape.setFigureParameter("SquareArrow",0,new Cn("ArrowPoint",.7,.2,.9)),go.Shape.defineFigureGenerator("SquareArrow",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=.7);var Ae=new go.Geometry,Te=new go.PathFigure(ue,.5*ce,!0);return Ae.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,Ce*ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,0)),Te.add(new go.PathSegment(go.PathSegment.Line,Ce*ue,0).close()),Ae.spot1=go.Spot.TopLeft,Ae.spot2=new go.Spot(Ce,1),Ae}),go.Shape.defineFigureGenerator("Cone1",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.5,Te=Mt*.1,Ie=new go.PathFigure(0,.9*ce,!0);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,.9*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,ce,ue,(.9+Te)*ce,(.5+Ae)*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,.9*ce,(.5-Ae)*ue,ce,0,(.9+Te)*ce).close()),Ce.spot1=new go.Spot(.25,.5),Ce.spot2=new go.Spot(.75,.97),Ce}),go.Shape.defineFigureGenerator("Cone2",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.9*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,ue,.9*ce,(1-.85/.9)*ue,ce,.85/.9*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.9*ce).close());var Te=new go.PathFigure(0,.9*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Bezier,ue,.9*ce,(1-.85/.9)*ue,.8*ce,.85/.9*ue,.8*ce)),Ce.spot1=new go.Spot(.25,.5),Ce.spot2=new go.Spot(.75,.82),Ce}),go.Shape.defineFigureGenerator("Cube1",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.5*ue,ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.85*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.15*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.15*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.85*ce).close());var Te=new go.PathFigure(.5*ue,ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.3*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,.15*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.5*ue,.3*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.15*ce)),Ce.spot1=new go.Spot(0,.3),Ce.spot2=new go.Spot(.5,.85),Ce}),go.Shape.defineFigureGenerator("Cube2",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.3*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.7*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.7*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.3*ue,0).close());var Te=new go.PathFigure(0,.3*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.7*ue,.3*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Move,.7*ue,.3*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.7*ue,ce)),Ce.spot1=new go.Spot(0,.3),Ce.spot2=new go.Spot(.7,1),Ce}),go.Shape.defineFigureGenerator("Cylinder1",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=5),Ce=Math.min(Ce,ce/3);var Ae=new go.Geometry,Te=Mt*.5,Ie=new go.PathFigure(0,Ce,!0);Ae.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,0,0,Mt*Ce,(.5-Te)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,1*ue,Ce,(.5+Te)*ue,0,1*ue,Mt*Ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,ce-Ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,1*ce,1*ue,ce-Mt*Ce,(.5+Te)*ue,1*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,ce-Ce,(.5-Te)*ue,1*ce,0,ce-Mt*Ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,0,Ce));var ze=new go.PathFigure(ue,Ce,!1);return Ae.add(ze),ze.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,2*Ce,1*ue,2*Ce-Mt*Ce,(.5+Te)*ue,2*Ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,0,Ce,(.5-Te)*ue,2*Ce,0,2*Ce-Mt*Ce)),Ae.spot1=new go.Spot(0,0,0,2*Ce),Ae.spot2=new go.Spot(1,1),Ae}),go.Shape.defineFigureGenerator("Cylinder2",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=5),Ce=Math.min(Ce,ce/3);var Ae=new go.Geometry,Te=Mt*.5,Ie=new go.PathFigure(0,ce-Ce,!0);Ae.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,0,Ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,0,0,Mt*Ce,(.5-Te)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue,Ce,(.5+Te)*ue,0,ue,Mt*Ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,ce-Ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,ce,ue,ce-Mt*Ce,(.5+Te)*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,ce-Ce,(.5-Te)*ue,ce,0,ce-Mt*Ce));var ze=new go.PathFigure(0,ce-Ce,!1);return Ae.add(ze),ze.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,ce-2*Ce,0,ce-Ce-Mt*Ce,(.5-Te)*ue,ce-2*Ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,ue,ce-Ce,(.5+Te)*ue,ce-2*Ce,ue,ce-Ce-Mt*Ce)),Ae.spot1=new go.Spot(0,0),Ae.spot2=new go.Spot(1,1,0,-2*Ce),Ae}),go.Shape.defineFigureGenerator("Cylinder3",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=5),Ce=Math.min(Ce,ue/3);var Ae=new go.Geometry,Te=Mt*.5,Ie=new go.PathFigure(Ce,0,!0);Ae.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue-Ce,0)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue,.5*ce,ue-Mt*Ce,0,ue,(.5-Te)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue-Ce,ce,ue,(.5+Te)*ce,ue-Mt*Ce,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,Ce,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,.5*ce,Mt*Ce,ce,0,(.5+Te)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,Ce,0,0,(.5-Te)*ce,Mt*Ce,0));var ze=new go.PathFigure(Ce,0,!1);return Ae.add(ze),ze.add(new go.PathSegment(go.PathSegment.Bezier,2*Ce,.5*ce,Ce+Mt*Ce,0,2*Ce,(.5-Te)*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,Ce,ce,2*Ce,(.5+Te)*ce,Ce+Mt*Ce,ce)),Ae.spot1=new go.Spot(0,0,2*Ce,0),Ae.spot2=new go.Spot(1,1),Ae}),go.Shape.defineFigureGenerator("Cylinder4",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=5),Ce=Math.min(Ce,ue/3);var Ae=new go.Geometry,Te=Mt*.5,Ie=new go.PathFigure(ue-Ce,0,!0);Ae.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue,.5*ce,ue-Mt*Ce,0,ue,(.5-Te)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue-Ce,ce,ue,(.5+Te)*ce,ue-Mt*Ce,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,Ce,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,.5*ce,Mt*Ce,ce,0,(.5+Te)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,Ce,0,0,(.5-Te)*ce,Mt*Ce,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue-Ce,0));var ze=new go.PathFigure(ue-Ce,0,!1);return Ae.add(ze),ze.add(new go.PathSegment(go.PathSegment.Bezier,ue-2*Ce,.5*ce,ue-Ce-Mt*Ce,0,ue-2*Ce,(.5-Te)*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,ue-Ce,ce,ue-2*Ce,(.5+Te)*ce,ue-Ce-Mt*Ce,ce)),Ae.spot1=new go.Spot(0,0),Ae.spot2=new go.Spot(1,1,-2*Ce,0),Ae}),go.Shape.defineFigureGenerator("Prism1",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.25*ue,.25*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce).close());var Te=new go.PathFigure(.25*ue,.25*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ce.spot1=new go.Spot(.408,.172),Ce.spot2=new go.Spot(.833,.662),Ce}),go.Shape.defineFigureGenerator("Prism2",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.25*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.25*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,.75*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce).close());var Te=new go.PathFigure(0,ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.25*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.25*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,0,.25*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.25*ue,.5*ce)),Ce.spot1=new go.Spot(.25,.5),Ce.spot2=new go.Spot(.75,.75),Ce}),go.Shape.defineFigureGenerator("Pyramid1",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.5*ue,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.75*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.75*ce).close());var Te=new go.PathFigure(.5*ue,0,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ce.spot1=new go.Spot(.25,.367),Ce.spot2=new go.Spot(.75,.875),Ce}),go.Shape.defineFigureGenerator("Pyramid2",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.5*ue,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.85*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.85*ce).close());var Te=new go.PathFigure(.5*ue,0,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.7*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,.85*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.5*ue,.7*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.85*ce)),Ce.spot1=new go.Spot(.25,.367),Ce.spot2=new go.Spot(.75,.875),Ce}),go.Shape.defineFigureGenerator("Actor",function(et,ue,ce){var Ce=new go.Geometry,Ae=.2,Te=.1,Ie=Mt*Ae,ze=Mt*Te,Ye=.5,lt=.1,Bt=new go.PathFigure(Ye*ue,(lt+Te)*ce,!0);Ce.add(Bt),Bt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-Ae)*ue,lt*ce,(Ye-Ie)*ue,(lt+Te)*ce,(Ye-Ae)*ue,(lt+ze)*ce)),Bt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt-Te)*ce,(Ye-Ae)*ue,(lt-ze)*ce,(Ye-Ie)*ue,(lt-Te)*ce)),Bt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye+Ae)*ue,lt*ce,(Ye+Ie)*ue,(lt-Te)*ce,(Ye+Ae)*ue,(lt-ze)*ce)),Bt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt+Te)*ce,(Ye+Ae)*ue,(lt+ze)*ce,(Ye+Ie)*ue,(lt+Te)*ce));var kt=.05,xt=Mt*kt;Ye=.05,lt=.25;var Et=new go.PathFigure(.5*ue,.2*ce,!0);return Ce.add(Et),Et.add(new go.PathSegment(go.PathSegment.Line,.95*ue,.2*ce)),Ye=.95,lt=.25,Et.add(new go.PathSegment(go.PathSegment.Bezier,(Ye+kt)*ue,lt*ce,(Ye+xt)*ue,(lt-kt)*ce,(Ye+kt)*ue,(lt-xt)*ce)),Et.add(new go.PathSegment(go.PathSegment.Line,ue,.6*ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.85*ue,.6*ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.85*ue,.35*ce)),kt=.025,xt=Mt*kt,Ye=.825,lt=.35,Et.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt-kt)*ce,(Ye+kt)*ue,(lt-xt)*ce,(Ye+xt)*ue,(lt-kt)*ce)),Et.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-kt)*ue,lt*ce,(Ye-xt)*ue,(lt-kt)*ce,(Ye-kt)*ue,(lt-xt)*ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.8*ue,ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.55*ue,ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.55*ue,.7*ce)),kt=.05,xt=Mt*kt,Ye=.5,lt=.7,Et.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt-kt)*ce,(Ye+kt)*ue,(lt-xt)*ce,(Ye+xt)*ue,(lt-kt)*ce)),Et.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-kt)*ue,lt*ce,(Ye-xt)*ue,(lt-kt)*ce,(Ye-kt)*ue,(lt-xt)*ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.45*ue,ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.2*ue,ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.35*ce)),kt=.025,xt=Mt*kt,Ye=.175,lt=.35,Et.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt-kt)*ce,(Ye+kt)*ue,(lt-xt)*ce,(Ye+xt)*ue,(lt-kt)*ce)),Et.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-kt)*ue,lt*ce,(Ye-xt)*ue,(lt-kt)*ce,(Ye-kt)*ue,(lt-xt)*ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.15*ue,.6*ce)),Et.add(new go.PathSegment(go.PathSegment.Line,0,.6*ce)),Et.add(new go.PathSegment(go.PathSegment.Line,0,.25*ce)),kt=.05,xt=Mt*kt,Ye=.05,lt=.25,Et.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt-kt)*ce,(Ye-kt)*ue,(lt-xt)*ce,(Ye-xt)*ue,(lt-kt)*ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.2*ce)),Ce.spot1=new go.Spot(.2,.2),Ce.spot2=new go.Spot(.8,.65),Ce}),go.Shape.setFigureParameter("Card",0,new Cn("CornerCutoutSize",.2,.1,.9)),go.Shape.defineFigureGenerator("Card",function(et,ue,ce){var Ce=et?et.parameter1:NaN;isNaN(Ce)&&(Ce=.2);var Ae=new go.Geometry,Te=new go.PathFigure(ue,0,!0);return Ae.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,Ce*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,Ce*ue,0).close()),Ae.spot1=new go.Spot(0,Ce),Ae.spot2=go.Spot.BottomRight,Ae}),go.Shape.defineFigureGenerator("Collate",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.5*ue,.5*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.5*ce));var Te=new go.PathFigure(.5*ue,.5*ce,!0);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.5*ce)),Ce.spot1=new go.Spot(.25,0),Ce.spot2=new go.Spot(.75,.25),Ce}),go.Shape.defineFigureGenerator("CreateRequest",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN;isNaN(Ae)&&(Ae=.1);var Te=new go.PathFigure(0,0,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce).close());var Ie=new go.PathFigure(0,Ae*ce,!1);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,Ae*ce)),Ie.add(new go.PathSegment(go.PathSegment.Move,0,(1-Ae)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,(1-Ae)*ce)),Ce}),go.Shape.defineFigureGenerator("Database",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.5,Te=Mt*.1,Ie=new go.PathFigure(ue,.1*ce,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,.9*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,ce,ue,(.9+Te)*ce,(.5+Ae)*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,.9*ce,(.5-Ae)*ue,ce,0,(.9+Te)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,0,.1*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,0,0,(.1-Te)*ce,(.5-Ae)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue,.1*ce,(.5+Ae)*ue,0,ue,(.1-Te)*ce));var ze=new go.PathFigure(ue,.1*ce,!1);return Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.2*ce,ue,(.1+Te)*ce,(.5+Ae)*ue,.2*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,0,.1*ce,(.5-Ae)*ue,.2*ce,0,(.1+Te)*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,ue,.2*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.3*ce,ue,(.2+Te)*ce,(.5+Ae)*ue,.3*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,0,.2*ce,(.5-Ae)*ue,.3*ce,0,(.2+Te)*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,ue,.3*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.4*ce,ue,(.3+Te)*ce,(.5+Ae)*ue,.4*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,0,.3*ce,(.5-Ae)*ue,.4*ce,0,(.3+Te)*ce)),Ce.spot1=new go.Spot(0,.4),Ce.spot2=new go.Spot(1,.9),Ce}),go.Shape.defineFigureGenerator("DataStorage",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.75*ue,ce,ue,0,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,0,.25*ue,.9*ce,.25*ue,.1*ce).close()),Ce.spot1=new go.Spot(.226,0),Ce.spot2=new go.Spot(.81,1),Ce}),go.Shape.defineFigureGenerator("DiskStorage",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.5,Te=Mt*.1,Ie=new go.PathFigure(ue,.1*ce,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,.9*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,ce,ue,(.9+Te)*ce,(.5+Ae)*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,.9*ce,(.5-Ae)*ue,ce,0,(.9+Te)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,0,.1*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,0,0,(.1-Te)*ce,(.5-Ae)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue,.1*ce,(.5+Ae)*ue,0,ue,(.1-Te)*ce));var ze=new go.PathFigure(ue,.1*ce,!1);return Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.2*ce,ue,(.1+Te)*ce,(.5+Ae)*ue,.2*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,0,.1*ce,(.5-Ae)*ue,.2*ce,0,(.1+Te)*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,ue,.2*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.3*ce,ue,(.2+Te)*ce,(.5+Ae)*ue,.3*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,0,.2*ce,(.5-Ae)*ue,.3*ce,0,(.2+Te)*ce)),Ce.spot1=new go.Spot(0,.3),Ce.spot2=new go.Spot(1,.9),Ce}),go.Shape.defineFigureGenerator("Display",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.25*ue,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.75*ue,ce,ue,0,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.25*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.5*ce).close()),Ce.spot1=new go.Spot(.25,0),Ce.spot2=new go.Spot(.75,1),Ce}),go.Shape.defineFigureGenerator("DividedEvent",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN;isNaN(Ae)?Ae=.2:Ae<.15&&(Ae=.15);var Te=Mt*.2,Ie=new go.PathFigure(0,.2*ce,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.2*ue,0,0,(.2-Te)*ce,(.2-Te)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,.8*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue,.2*ce,(.8+Te)*ue,0,ue,(.2-Te)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,.8*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.8*ue,ce,ue,(.8+Te)*ce,(.8+Te)*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.2*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,.8*ce,(.2-Te)*ue,ce,0,(.8+Te)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,0,.2*ce));var ze=new go.PathFigure(0,Ae*ce,!1);return Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,ue,Ae*ce)),Ce}),go.Shape.defineFigureGenerator("DividedProcess",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN;(isNaN(Ae)||Ae<.1)&&(Ae=.1);var Te=new go.PathFigure(0,0,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce).close());var Ie=new go.PathFigure(0,Ae*ce,!1);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,Ae*ce)),Ce}),go.Shape.defineFigureGenerator("Document",function(et,ue,ce){var Ce=new go.Geometry;ce=ce/.8;var Ae=new go.PathFigure(0,.7*ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.7*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,.7*ce,.5*ue,.4*ce,.5*ue,ce).close()),Ce.spot1=go.Spot.TopLeft,Ce.spot2=new go.Spot(1,.6),Ce}),go.Shape.defineFigureGenerator("ExternalOrganization",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN;(isNaN(Ae)||Ae<.2)&&(Ae=.2);var Te=new go.PathFigure(0,0,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce).close());var Ie=new go.PathFigure(Ae*ue,0,!1);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,0,Ae*ce)),Ie.add(new go.PathSegment(go.PathSegment.Move,ue,Ae*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,(1-Ae)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Move,0,(1-Ae)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,Ae*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Move,(1-Ae)*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,(1-Ae)*ce)),Ce}),go.Shape.defineFigureGenerator("ExternalProcess",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.5*ue,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.5*ce).close());var Te=new go.PathFigure(.1*ue,.4*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.1*ue,.6*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.9*ue,.6*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.4*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.6*ue,.1*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.4*ue,.1*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.4*ue,.9*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.9*ce)),Ce.spot1=new go.Spot(.25,.25),Ce.spot2=new go.Spot(.75,.75),Ce}),go.Shape.defineFigureGenerator("File",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.25*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce).close());var Te=new go.PathFigure(.75*ue,0,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.75*ue,.25*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.25*ce)),Ce.spot1=new go.Spot(0,.25),Ce.spot2=go.Spot.BottomRight,Ce}),go.Shape.defineFigureGenerator("Interrupt",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue,.5*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce));var Te=new go.PathFigure(ue,.5*ce,!1);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce));var Ie=new go.PathFigure(ue,.5*ce,!1);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ce.spot1=new go.Spot(0,.25),Ce.spot2=new go.Spot(.5,.75),Ce}),go.Shape.defineFigureGenerator("InternalStorage",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN,Te=et?et.parameter2:NaN;isNaN(Ae)&&(Ae=.1),isNaN(Te)&&(Te=.1);var Ie=new go.PathFigure(0,0,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,0,ce).close());var ze=new go.PathFigure(Ae*ue,0,!1);return Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,Ae*ue,ce)),ze.add(new go.PathSegment(go.PathSegment.Move,0,Te*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,ue,Te*ce)),Ce}),go.Shape.defineFigureGenerator("Junction",function(et,ue,ce){var Ce=new go.Geometry,Ae=1/Math.SQRT2,Te=(1-1/Math.SQRT2)/2,Ie=Mt*.5,ze=.5,Ye=new go.PathFigure(ue,ze*ce,!0);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,ze*ue,ce,ue,(ze+Ie)*ce,(ze+Ie)*ue,ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,0,ze*ce,(ze-Ie)*ue,ce,0,(ze+Ie)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,ze*ue,0,0,(ze-Ie)*ce,(ze-Ie)*ue,0)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,ue,ze*ce,(ze+Ie)*ue,0,ue,(ze-Ie)*ce));var lt=new go.PathFigure((Te+Ae)*ue,(Te+Ae)*ce,!1);return Ce.add(lt),lt.add(new go.PathSegment(go.PathSegment.Line,Te*ue,Te*ce)),lt.add(new go.PathSegment(go.PathSegment.Move,Te*ue,(Te+Ae)*ce)),lt.add(new go.PathSegment(go.PathSegment.Line,(Te+Ae)*ue,Te*ce)),Ce}),go.Shape.defineFigureGenerator("LinedDocument",function(et,ue,ce){var Ce=new go.Geometry;ce=ce/.8;var Ae=new go.PathFigure(0,.7*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.7*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,.7*ce,.5*ue,.4*ce,.5*ue,ce).close());var Te=new go.PathFigure(.1*ue,0,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.1*ue,.75*ce)),Ce.spot1=new go.Spot(.1,0),Ce.spot2=new go.Spot(1,.6),Ce}),go.Shape.defineFigureGenerator("LoopLimit",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.25*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.25*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.25*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce).close()),Ce.spot1=new go.Spot(0,.25),Ce.spot2=go.Spot.BottomRight,Ce}),go.Shape.defineFigureGenerator("MagneticTape",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.5,Te=.5,Ie=new go.PathFigure(.5*ue,ce,!0);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,Te*ce,(Te-Ae)*ue,ce,0,(Te+Ae)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,Te*ue,0,0,(Te-Ae)*ce,(Te-Ae)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue,Te*ce,(Te+Ae)*ue,0,ue,(Te-Ae)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,(Te+.1)*ue,.9*ce,ue,(Te+Ae)*ce,(Te+Ae)*ue,.9*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,.9*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ce.spot1=new go.Spot(.15,.15),Ce.spot2=new go.Spot(.85,.8),Ce}),go.Shape.defineFigureGenerator("ManualInput",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.25*ce).close()),Ce.spot1=new go.Spot(0,.25),Ce.spot2=go.Spot.BottomRight,Ce}),go.Shape.defineFigureGenerator("MessageFromUser",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN;isNaN(Ae)&&(Ae=.7);var Te=new go.PathFigure(0,0,!0);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,Ae*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce).close()),Ce.spot1=go.Spot.TopLeft,Ce}),go.Shape.defineFigureGenerator("MicroformProcessing",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN;isNaN(Ae)&&(Ae=.25);var Te=new go.PathFigure(0,0,!0);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,Ae*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,(1-Ae)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce).close()),Ce}),go.Shape.defineFigureGenerator("MicroformRecording",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,.25*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.15*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.85*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,.75*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce).close()),Ce.spot1=new go.Spot(0,.25),Ce.spot2=new go.Spot(1,.75),Ce}),go.Shape.defineFigureGenerator("MultiDocument",function(et,ue,ce){var Ce=new go.Geometry;ce=ce/.8;var Ae=new go.PathFigure(ue,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.9*ue,.44*ce,.96*ue,.47*ce,.93*ue,.45*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.8*ue,.54*ce,.86*ue,.57*ce,.83*ue,.55*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.7*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,.7*ce,.4*ue,.4*ce,.4*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.1*ue,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.1*ue,.1*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.1*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ue,0).close());var Te=new go.PathFigure(.1*ue,.2*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.2*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.54*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.2*ue,.1*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.1*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.44*ce)),Ce.spot1=new go.Spot(0,.25),Ce.spot2=new go.Spot(.8,.77),Ce}),go.Shape.defineFigureGenerator("MultiProcess",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.1*ue,.1*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.1*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.9*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.9*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.1*ue,.2*ce).close());var Te=new go.PathFigure(.2*ue,.1*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.1*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.8*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.1*ue,.2*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.2*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.9*ce)),Ce.spot1=new go.Spot(0,.2),Ce.spot2=new go.Spot(.8,1),Ce}),go.Shape.defineFigureGenerator("OfflineStorage",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN;isNaN(Ae)&&(Ae=.1);var Te=1-Ae,Ie=new go.PathFigure(0,0,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce).close());var ze=new go.PathFigure(.5*Ae*ue,Ae*ce,!1);return Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,(1-.5*Ae)*ue,Ae*ce)),Ce}),go.Shape.defineFigureGenerator("OffPageConnector",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce).close()),Ce.spot1=go.Spot.TopLeft,Ce.spot2=new go.Spot(.75,1),Ce}),go.Shape.defineFigureGenerator("Or",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.5,Te=.5,Ie=new go.PathFigure(ue,Te*ce,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Bezier,Te*ue,ce,ue,(Te+Ae)*ce,(Te+Ae)*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,Te*ce,(Te-Ae)*ue,ce,0,(Te+Ae)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,Te*ue,0,0,(Te-Ae)*ce,(Te-Ae)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue,Te*ce,(Te+Ae)*ue,0,ue,(Te-Ae)*ce));var ze=new go.PathFigure(ue,.5*ce,!1);return Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,0,.5*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,.5*ue,ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)),Ce}),go.Shape.defineFigureGenerator("PaperTape",function(et,ue,ce){var Ce=new go.Geometry;ce=ce/.8;var Ae=new go.PathFigure(0,.7*ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.3*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,ue,.3*ce,.5*ue,.6*ce,.5*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.7*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,.7*ce,.5*ue,.4*ce,.5*ue,ce).close()),Ce.spot1=new go.Spot(0,.49),Ce.spot2=new go.Spot(1,.75),Ce}),go.Shape.defineFigureGenerator("PrimitiveFromCall",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN,Te=et?et.parameter2:NaN;isNaN(Ae)&&(Ae=.1),isNaN(Te)&&(Te=.3);var Ie=new go.PathFigure(0,0,!0);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,(1-Te)*ue,.5*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,0,ce).close()),Ce}),go.Shape.defineFigureGenerator("PrimitiveToCall",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN,Te=et?et.parameter2:NaN;isNaN(Ae)&&(Ae=.1),isNaN(Te)&&(Te=.3);var Ie=new go.PathFigure(0,0,!0);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,(1-Te)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,(1-Te)*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,0,ce).close()),Ce}),go.Shape.defineFigureGenerator("Procedure",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN;isNaN(Ae)&&(Ae=.1);var Te=new go.PathFigure(0,0,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce).close());var Ie=new go.PathFigure((1-Ae)*ue,0,!1);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,(1-Ae)*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Move,Ae*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,Ae*ue,ce)),Ce}),go.Shape.defineFigureGenerator("Process",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN;isNaN(Ae)&&(Ae=.1);var Te=new go.PathFigure(0,0,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce).close());var Ie=new go.PathFigure(Ae*ue,0,!1);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,Ae*ue,ce)),Ce.spot2=go.Spot.BottomRight,Ce}),go.Shape.defineFigureGenerator("Sort",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.5*ue,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.5*ce).close());var Te=new go.PathFigure(0,.5*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ce.spot1=new go.Spot(.25,.25),Ce.spot2=new go.Spot(.75,.5),Ce}),go.Shape.defineFigureGenerator("Start",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN;isNaN(Ae)&&(Ae=.25);var Te=new go.PathFigure(Ae*ue,0,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Arc,270,180,.75*ue,.5*ce,.25*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Arc,90,180,.25*ue,.5*ce,.25*ue,.5*ce));var Ie=new go.PathFigure(Ae*ue,0,!1);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,Ae*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Move,(1-Ae)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,(1-Ae)*ue,ce)),Ce.spot1=new go.Spot(Ae,0),Ce.spot2=new go.Spot(1-Ae,1),Ce}),go.Shape.defineFigureGenerator("Terminator",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.25*ue,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Arc,270,180,.75*ue,.5*ce,.25*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Arc,90,180,.25*ue,.5*ce,.25*ue,.5*ce)),Ce.spot1=new go.Spot(.23,0),Ce.spot2=new go.Spot(.77,1),Ce}),go.Shape.defineFigureGenerator("TransmittalTape",function(et,ue,ce){var Ce=new go.Geometry,Ae=et?et.parameter1:NaN;isNaN(Ae)&&(Ae=.1);var Te=new go.PathFigure(0,0,!0);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.75*ue,(1-Ae)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,(1-Ae)*ce).close()),Ce.spot1=go.Spot.TopLeft,Ce}),go.Shape.defineFigureGenerator("AndGate",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.5,Te=new go.PathFigure(0,0,!0);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)),Te.add(new go.PathSegment(go.PathSegment.Bezier,ue,.5*ce,(.5+Ae)*ue,0,ue,(.5-Ae)*ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,ce,ue,(.5+Ae)*ce,(.5+Ae)*ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce).close()),Ce.spot1=go.Spot.TopLeft,Ce.spot2=new go.Spot(.55,1),Ce}),go.Shape.defineFigureGenerator("Buffer",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce).close()),Ce.spot1=new go.Spot(0,.25),Ce.spot2=new go.Spot(.5,.75),Ce}),go.Shape.defineFigureGenerator("Clock",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.5,Te=.5,Ie=new go.PathFigure(ue,Te*ce,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Bezier,Te*ue,ce,ue,(Te+Ae)*ce,(Te+Ae)*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,Te*ce,(Te-Ae)*ue,ce,0,(Te+Ae)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,Te*ue,0,0,(Te-Ae)*ce,(Te-Ae)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue,Te*ce,(Te+Ae)*ue,0,ue,(Te-Ae)*ce));var ze=new go.PathFigure(ue,Te*ce,!1);Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,ue,Te*ce));var Ye=new go.PathFigure(.8*ue,.75*ce,!1);return Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.25*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.25*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.75*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.4*ue,.75*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.4*ue,.25*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.25*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.75*ce)),Ce}),go.Shape.defineFigureGenerator("Ground",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.5*ue,0,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.2*ue,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.3*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.7*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.4*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.6*ue,ce)),Ce}),go.Shape.defineFigureGenerator("Inverter",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.1,Te=.1,Ie=.9,ze=.5,Ye=new go.PathFigure(.8*ue,.5*ce,!0);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,0,0)),Ye.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.5*ce));var lt=new go.PathFigure((Ie+Te)*ue,ze*ce,!0);return Ce.add(lt),lt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce,(Ie+Ae)*ue,(ze+Te)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Te)*ue,ze*ce,(Ie-Ae)*ue,(ze+Te)*ce,(Ie-Te)*ue,(ze+Ae)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce,(Ie-Ae)*ue,(ze-Te)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,ze*ce,(Ie+Ae)*ue,(ze-Te)*ce,(Ie+Te)*ue,(ze-Ae)*ce)),Ce.spot1=new go.Spot(0,.25),Ce.spot2=new go.Spot(.4,.75),Ce}),go.Shape.defineFigureGenerator("NandGate",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.5,Te=Mt*.4,Ie=Mt*.1,ze=.1,Ye=.9,lt=.5,Bt=new go.PathFigure(.8*ue,.5*ce,!0);Ce.add(Bt),Bt.add(new go.PathSegment(go.PathSegment.Bezier,.4*ue,ce,.8*ue,(.5+Te)*ce,(.4+Ae)*ue,ce)),Bt.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Bt.add(new go.PathSegment(go.PathSegment.Line,0,0)),Bt.add(new go.PathSegment(go.PathSegment.Line,.4*ue,0)),Bt.add(new go.PathSegment(go.PathSegment.Bezier,.8*ue,.5*ce,(.4+Ae)*ue,0,.8*ue,(.5-Te)*ce));var kt=new go.PathFigure((Ye+ze)*ue,lt*ce,!0);return Ce.add(kt),kt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt+ze)*ce,(Ye+ze)*ue,(lt+Ie)*ce,(Ye+Ie)*ue,(lt+ze)*ce)),kt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-ze)*ue,lt*ce,(Ye-Ie)*ue,(lt+ze)*ce,(Ye-ze)*ue,(lt+Ie)*ce)),kt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt-ze)*ce,(Ye-ze)*ue,(lt-Ie)*ce,(Ye-Ie)*ue,(lt-ze)*ce)),kt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye+ze)*ue,lt*ce,(Ye+Ie)*ue,(lt-ze)*ce,(Ye+ze)*ue,(lt-Ie)*ce)),Ce.spot1=new go.Spot(0,.05),Ce.spot2=new go.Spot(.55,.95),Ce}),go.Shape.defineFigureGenerator("NorGate",function(et,ue,ce){var Ce=new go.Geometry,Ae=.5,Te=Mt*Ae,Ie=0,ze=.5,Ye=new go.PathFigure(.8*ue,.5*ce,!0);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,0,ce,.7*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,0,0,.25*ue,.75*ce,.25*ue,.25*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,.8*ue,.5*ce,(Ie+Te)*ue,(ze-Ae)*ce,.7*ue,(ze-Te)*ce)),Ae=.1,Te=Mt*.1,Ie=.9,ze=.5;var lt=new go.PathFigure((Ie-Ae)*ue,ze*ce,!0);return Ce.add(lt),lt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Ae)*ce,(Ie-Ae)*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Ae)*ue,ze*ce,(Ie+Te)*ue,(ze-Ae)*ce,(Ie+Ae)*ue,(ze-Te)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Ae)*ce,(Ie+Ae)*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Ae)*ue,ze*ce,(Ie-Te)*ue,(ze+Ae)*ce,(Ie-Ae)*ue,(ze+Te)*ce)),Ce.spot1=new go.Spot(.2,.25),Ce.spot2=new go.Spot(.6,.75),Ce}),go.Shape.defineFigureGenerator("OrGate",function(et,ue,ce){var Ce=new go.Geometry,Ae=.5,Te=Mt*Ae,Ie=0,ze=.5,Ye=new go.PathFigure(0,0,!0);return Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,ue,.5*ce,(Ie+Te+Te)*ue,(ze-Ae)*ce,.8*ue,(ze-Te)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,0,ce,.8*ue,(ze+Te)*ce,(Ie+Te+Te)*ue,(ze+Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,0,0,.25*ue,.75*ce,.25*ue,.25*ce).close()),Ce.spot1=new go.Spot(.2,.25),Ce.spot2=new go.Spot(.75,.75),Ce}),go.Shape.defineFigureGenerator("XnorGate",function(et,ue,ce){var Ce=new go.Geometry,Ae=.5,Te=Mt*Ae,Ie=.2,ze=.5,Ye=new go.PathFigure(.1*ue,0,!1);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,.1*ue,ce,.35*ue,.25*ce,.35*ue,.75*ce));var lt=new go.PathFigure(.8*ue,.5*ce,!0);Ce.add(lt),lt.add(new go.PathSegment(go.PathSegment.Bezier,.2*ue,ce,.7*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,.2*ue,0,.45*ue,.75*ce,.45*ue,.25*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,.8*ue,.5*ce,(Ie+Te)*ue,(ze-Ae)*ce,.7*ue,(ze-Te)*ce)),Ae=.1,Te=Mt*.1,Ie=.9,ze=.5;var Bt=new go.PathFigure((Ie-Ae)*ue,ze*ce,!0);return Ce.add(Bt),Bt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Ae)*ce,(Ie-Ae)*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce)),Bt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Ae)*ue,ze*ce,(Ie+Te)*ue,(ze-Ae)*ce,(Ie+Ae)*ue,(ze-Te)*ce)),Bt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Ae)*ce,(Ie+Ae)*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),Bt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Ae)*ue,ze*ce,(Ie-Te)*ue,(ze+Ae)*ce,(Ie-Ae)*ue,(ze+Te)*ce)),Ce.spot1=new go.Spot(.4,.25),Ce.spot2=new go.Spot(.65,.75),Ce}),go.Shape.defineFigureGenerator("XorGate",function(et,ue,ce){var Ce=new go.Geometry,Ae=.5,Te=Mt*Ae,Ie=.2,ze=.5,Ye=new go.PathFigure(.1*ue,0,!1);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,.1*ue,ce,.35*ue,.25*ce,.35*ue,.75*ce));var lt=new go.PathFigure(.2*ue,0,!0);return Ce.add(lt),lt.add(new go.PathSegment(go.PathSegment.Bezier,ue,.5*ce,(Ie+Te)*ue,(ze-Ae)*ce,.9*ue,(ze-Te)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,.2*ue,ce,.9*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,.2*ue,0,.45*ue,.75*ce,.45*ue,.25*ce).close()),Ce.spot1=new go.Spot(.4,.25),Ce.spot2=new go.Spot(.8,.75),Ce}),go.Shape.defineFigureGenerator("Capacitor",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ce}),go.Shape.defineFigureGenerator("Resistor",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.5*ce,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.1*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.3*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.4*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.6*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.7*ue,.5*ce)),Ce}),go.Shape.defineFigureGenerator("Inductor",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.1,Te=.1,Ie=.1,ze=.5,Ye=new go.PathFigure((Ie-Ae*.5)*ue,ce,!1);return Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,0,(Ie-Ae)*ue,ce,(Ie-Te)*ue,0)),Ie=.3,Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,ce,(Ie+Te)*ue,0,(Ie+Ae)*ue,ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,0,(Ie-Ae)*ue,ce,(Ie-Te)*ue,0)),Ie=.5,Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,ce,(Ie+Te)*ue,0,(Ie+Ae)*ue,ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,0,(Ie-Ae)*ue,ce,(Ie-Te)*ue,0)),Ie=.7,Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,ce,(Ie+Te)*ue,0,(Ie+Ae)*ue,ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,0,(Ie-Ae)*ue,ce,(Ie-Te)*ue,0)),Ie=.9,Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Ae*.5)*ue,ce,(Ie+Te)*ue,0,(Ie+Ae)*ue,ce)),Ce}),go.Shape.defineFigureGenerator("ACvoltageSource",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.5,Te=.5,Ie=.5,ze=.5,Ye=new go.PathFigure((Ie-Te)*ue,ze*ce,!1);return Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce,(Ie-Ae)*ue,(ze-Te)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,ze*ce,(Ie+Ae)*ue,(ze-Te)*ce,(Ie+Te)*ue,(ze-Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce,(Ie+Ae)*ue,(ze+Te)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Te)*ue,ze*ce,(Ie-Ae)*ue,(ze+Te)*ce,(Ie-Te)*ue,(ze+Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Move,(Ie-Te+.1)*ue,ze*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te-.1)*ue,ze*ce,Ie*ue,(ze-Te)*ce,Ie*ue,(ze+Te)*ce)),Ce}),go.Shape.defineFigureGenerator("DCvoltageSource",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.75*ce,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.25*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ce}),go.Shape.defineFigureGenerator("Diode",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue,0,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ce.spot1=new go.Spot(0,.25),Ce.spot2=new go.Spot(.5,.75),Ce}),go.Shape.defineFigureGenerator("Wifi",function(et,ue,ce){var Ce=new go.Geometry,Ae=ue,Te=ce;ue=ue*.38,ce=ce*.6;var Ie=Mt*.8,ze=.8,Ye=0,lt=.5,Bt=(Ae-ue)/2,kt=(Te-ce)/2,xt=new go.PathFigure(Ye*ue+Bt,(lt+ze)*ce+kt,!0);Ce.add(xt),xt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-ze)*ue+Bt,lt*ce+kt,(Ye-Ie)*ue+Bt,(lt+ze)*ce+kt,(Ye-ze)*ue+Bt,(lt+Ie)*ce+kt)),xt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue+Bt,(lt-ze)*ce+kt,(Ye-ze)*ue+Bt,(lt-Ie)*ce+kt,(Ye-Ie)*ue+Bt,(lt-ze)*ce+kt)),xt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-ze+Ie*.5)*ue+Bt,lt*ce+kt,Ye*ue+Bt,(lt-ze)*ce+kt,(Ye-ze+Ie*.5)*ue+Bt,(lt-Ie)*ce+kt)),xt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue+Bt,(lt+ze)*ce+kt,(Ye-ze+Ie*.5)*ue+Bt,(lt+Ie)*ce+kt,Ye*ue+Bt,(lt+ze)*ce+kt).close()),Ie=Mt*.4,ze=.4,Ye=.2,lt=.5;var Et=new go.PathFigure(Ye*ue+Bt,(lt+ze)*ce+kt,!0);Ce.add(Et),Et.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-ze)*ue+Bt,lt*ce+kt,(Ye-Ie)*ue+Bt,(lt+ze)*ce+kt,(Ye-ze)*ue+Bt,(lt+Ie)*ce+kt)),Et.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue+Bt,(lt-ze)*ce+kt,(Ye-ze)*ue+Bt,(lt-Ie)*ce+kt,(Ye-Ie)*ue+Bt,(lt-ze)*ce+kt)),Et.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-ze+Ie*.5)*ue+Bt,lt*ce+kt,Ye*ue+Bt,(lt-ze)*ce+kt,(Ye-ze+Ie*.5)*ue+Bt,(lt-Ie)*ce+kt)),Et.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue+Bt,(lt+ze)*ce+kt,(Ye-ze+Ie*.5)*ue+Bt,(lt+Ie)*ce+kt,Ye*ue+Bt,(lt+ze)*ce+kt).close()),Ie=Mt*.2,ze=.2,Ye=.5,lt=.5;var $t=new go.PathFigure((Ye-ze)*ue+Bt,lt*ce+kt,!0);Ce.add($t),$t.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue+Bt,(lt-ze)*ce+kt,(Ye-ze)*ue+Bt,(lt-Ie)*ce+kt,(Ye-Ie)*ue+Bt,(lt-ze)*ce+kt)),$t.add(new go.PathSegment(go.PathSegment.Bezier,(Ye+ze)*ue+Bt,lt*ce+kt,(Ye+Ie)*ue+Bt,(lt-ze)*ce+kt,(Ye+ze)*ue+Bt,(lt-Ie)*ce+kt)),$t.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue+Bt,(lt+ze)*ce+kt,(Ye+ze)*ue+Bt,(lt+Ie)*ce+kt,(Ye+Ie)*ue+Bt,(lt+ze)*ce+kt)),$t.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-ze)*ue+Bt,lt*ce+kt,(Ye-Ie)*ue+Bt,(lt+ze)*ce+kt,(Ye-ze)*ue+Bt,(lt+Ie)*ce+kt)),Ie=Mt*.4,ze=.4,Ye=.8,lt=.5;var Zt=new go.PathFigure(Ye*ue+Bt,(lt-ze)*ce+kt,!0);Ce.add(Zt),Zt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye+ze)*ue+Bt,lt*ce+kt,(Ye+Ie)*ue+Bt,(lt-ze)*ce+kt,(Ye+ze)*ue+Bt,(lt-Ie)*ce+kt)),Zt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue+Bt,(lt+ze)*ce+kt,(Ye+ze)*ue+Bt,(lt+Ie)*ce+kt,(Ye+Ie)*ue+Bt,(lt+ze)*ce+kt)),Zt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye+ze-Ie*.5)*ue+Bt,lt*ce+kt,Ye*ue+Bt,(lt+ze)*ce+kt,(Ye+ze-Ie*.5)*ue+Bt,(lt+Ie)*ce+kt)),Zt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue+Bt,(lt-ze)*ce+kt,(Ye+ze-Ie*.5)*ue+Bt,(lt-Ie)*ce+kt,Ye*ue+Bt,(lt-ze)*ce+kt).close()),Ie=Mt*.8,ze=.8,Ye=1,lt=.5;var Yn=new go.PathFigure(Ye*ue+Bt,(lt-ze)*ce+kt,!0);return Ce.add(Yn),Yn.add(new go.PathSegment(go.PathSegment.Bezier,(Ye+ze)*ue+Bt,lt*ce+kt,(Ye+Ie)*ue+Bt,(lt-ze)*ce+kt,(Ye+ze)*ue+Bt,(lt-Ie)*ce+kt)),Yn.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue+Bt,(lt+ze)*ce+kt,(Ye+ze)*ue+Bt,(lt+Ie)*ce+kt,(Ye+Ie)*ue+Bt,(lt+ze)*ce+kt)),Yn.add(new go.PathSegment(go.PathSegment.Bezier,(Ye+ze-Ie*.5)*ue+Bt,lt*ce+kt,Ye*ue+Bt,(lt+ze)*ce+kt,(Ye+ze-Ie*.5)*ue+Bt,(lt+Ie)*ce+kt)),Yn.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue+Bt,(lt-ze)*ce+kt,(Ye+ze-Ie*.5)*ue+Bt,(lt-Ie)*ce+kt,Ye*ue+Bt,(lt-ze)*ce+kt).close()),Ce}),go.Shape.defineFigureGenerator("Email",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0).close());var Te=new go.PathFigure(0,0,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.6*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Te.add(new go.PathSegment(go.PathSegment.Move,0,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.45*ue,.54*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.55*ue,.54*ce)),Ce}),go.Shape.defineFigureGenerator("Ethernet",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.35*ue,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.65*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.65*ue,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.35*ue,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.35*ue,0).close());var Te=new go.PathFigure(.1*ue,ce,!0,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.4*ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.4*ue,.6*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.1*ue,.6*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.1*ue,ce).close());var Ie=new go.PathFigure(.6*ue,ce,!0,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,.9*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.6*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.6*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.6*ue,ce).close());var ze=new go.PathFigure(0,.5*ce,!1);return Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,.5*ue,.5*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.4*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,.75*ue,.5*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.75*ue,.6*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,.25*ue,.5*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.25*ue,.6*ce)),Ce}),go.Shape.defineFigureGenerator("Power",function(et,ue,ce){var Ce=new go.Geometry,Ae=Mt*.4,Te=.4,Ie=.5,ze=.5,Ye=Me(),lt=Me(),Bt=Me(),kt=Me();Qt(Ie,ze-Te,Ie+Ae,ze-Te,Ie+Te,ze-Ae,Ie+Te,ze,.5,Ye,Ye,lt,Bt,kt);var xt=je(lt.x,lt.y),Et=new go.PathFigure(lt.x*ue,lt.y*ce,!0);Ce.add(Et),Et.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,ze*ce,Bt.x*ue,Bt.y*ce,kt.x*ue,kt.y*ce)),Et.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce,(Ie+Ae)*ue,(ze+Te)*ce)),Et.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Te)*ue,ze*ce,(Ie-Ae)*ue,(ze+Te)*ce,(Ie-Te)*ue,(ze+Ae)*ce)),Qt(Ie-Te,ze,Ie-Te,ze-Ae,Ie-Ae,ze-Te,Ie,ze-Te,.5,Bt,kt,lt,Ye,Ye),Et.add(new go.PathSegment(go.PathSegment.Bezier,lt.x*ue,lt.y*ce,Bt.x*ue,Bt.y*ce,kt.x*ue,kt.y*ce)),Ae=Mt*.3,Te=.3,Qt(Ie-Te,ze,Ie-Te,ze-Ae,Ie-Ae,ze-Te,Ie,ze-Te,.5,Bt,kt,lt,Ye,Ye),Et.add(new go.PathSegment(go.PathSegment.Line,lt.x*ue,lt.y*ce)),Et.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Te)*ue,ze*ce,kt.x*ue,kt.y*ce,Bt.x*ue,Bt.y*ce)),Et.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Te)*ce,(Ie-Te)*ue,(ze+Ae)*ce,(Ie-Ae)*ue,(ze+Te)*ce)),Et.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Te)*ue,ze*ce,(Ie+Ae)*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),Qt(Ie,ze-Te,Ie+Ae,ze-Te,Ie+Te,ze-Ae,Ie+Te,ze,.5,Ye,Ye,lt,Bt,kt),Et.add(new go.PathSegment(go.PathSegment.Bezier,lt.x*ue,lt.y*ce,kt.x*ue,kt.y*ce,Bt.x*ue,Bt.y*ce).close());var Et=new go.PathFigure(.45*ue,0,!0);return Ce.add(Et),Et.add(new go.PathSegment(go.PathSegment.Line,.45*ue,.5*ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.55*ue,.5*ce)),Et.add(new go.PathSegment(go.PathSegment.Line,.55*ue,0).close()),yt(Ye),yt(lt),yt(Bt),yt(kt),yt(xt),Ce.spot1=new go.Spot(.25,.45),Ce.spot2=new go.Spot(.75,.8),Ce}),go.Shape.defineFigureGenerator("Fallout",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,ce/2,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Arc,180,360,ue/2,ce/2,ue/2,ce/2));function Te(Ie,ze,Ye){Ie.add(new go.PathSegment(go.PathSegment.Move,(.3+ze)*ue,(.8+Ye)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,(.5+ze)*ue,(.5+Ye)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,(.1+ze)*ue,(.5+Ye)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,(.3+ze)*ue,(.8+Ye)*ce).close())}return Te(Ae,0,0),Te(Ae,.4,0),Te(Ae,.2,-.3),Ce}),go.Shape.defineFigureGenerator("IrritationHazard",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.2*ue,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.3*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.7*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.7*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.3*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.2*ce).close()),Ce.spot1=new go.Spot(.3,.3),Ce.spot2=new go.Spot(.7,.7),Ce}),go.Shape.defineFigureGenerator("ElectricalHazard",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.37*ue,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.11*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.77*ue,.04*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.33*ue,.49*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.37*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.63*ue,.86*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.77*ue,.91*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.34*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.34*ue,.78*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.44*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.65*ue,.56*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.68*ce).close()),Ce}),go.Shape.defineFigureGenerator("FireHazard",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.1*ue,ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.29*ue,0,-.25*ue,.63*ce,.45*ue,.44*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.51*ue,.42*ce,.48*ue,.17*ce,.54*ue,.35*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.59*ue,.18*ce,.59*ue,.29*ce,.58*ue,.28*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.75*ue,.6*ce,.8*ue,.34*ce,.88*ue,.43*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.88*ue,.31*ce,.87*ue,.48*ce,.88*ue,.43*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.9*ue,ce,1.17*ue,.76*ce,.82*ue,.8*ce).close()),Ce.spot1=new go.Spot(.07,.445),Ce.spot2=new go.Spot(.884,.958),Ce}),go.Shape.defineFigureGenerator("BpmnActivityLoop",function(et,ue,ce){var Ce=new go.Geometry,Ae=.5,Te=0,Ie=0,ze=Ae*Mt,Ye=.4*Math.SQRT2/2+.5,lt=.5-.5*Math.SQRT2/2,Bt=1,kt=.5,xt=.5,Et=0,$t=new go.PathFigure(Ye*ue,(1-lt)*ce,!1);return Ce.add($t),$t.add(new go.PathSegment(go.PathSegment.Bezier,Bt*ue,kt*ce,Bt*ue,.7*ce,Bt*ue,kt*ce)),$t.add(new go.PathSegment(go.PathSegment.Bezier,(xt+Te)*ue,(Et+Te)*ce,(.5+Ae+Te)*ue,(.5-ze+Te)*ce,(.5+ze+Te)*ue,(.5-Ae+Te)*ce)),$t.add(new go.PathSegment(go.PathSegment.Bezier,(.5-Ae+Te)*ue,(.5+Ie)*ce,(.5-ze+Te)*ue,(.5-Ae+Ie)*ce,(.5-Ae+Te)*ue,(.5-ze+Ie)*ce)),$t.add(new go.PathSegment(go.PathSegment.Bezier,(.35+Te)*ue,.9*ce,(.5-Ae+Te)*ue,(.5+ze+Ie)*ce,(.5-ze+Te)*ue,.9*ce)),$t.add(new go.PathSegment(go.PathSegment.Move,(.25+Te)*ue,.8*ce)),$t.add(new go.PathSegment(go.PathSegment.Line,(.35+Te)*ue,.9*ce)),$t.add(new go.PathSegment(go.PathSegment.Line,(.2+Te)*ue,.95*ce)),Ce}),go.Shape.defineFigureGenerator("BpmnActivityParallel",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.5*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ce}),go.Shape.defineFigureGenerator("BpmnActivitySequential",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Move,0,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ce}),go.Shape.defineFigureGenerator("BpmnActivityAdHoc",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!1);Ce.add(Ae);var Te=new go.PathFigure(ue,ce,!1);Ce.add(Te);var Ie=new go.PathFigure(0,.5*ce,!1);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.5*ce,.2*ue,.35*ce,.3*ue,.35*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue,.5*ce,.7*ue,.65*ce,.8*ue,.65*ce)),Ce}),go.Shape.defineFigureGenerator("BpmnActivityCompensation",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.5*ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce).close()),Ce}),go.Shape.defineFigureGenerator("BpmnTaskMessage",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.2*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.8*ce).close());var Ae=new go.PathFigure(0,.2*ce,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.2*ce)),Ce}),go.Shape.defineFigureGenerator("BpmnTaskScript",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.7*ue,ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.3*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.3*ue,0,.6*ue,.5*ce,0,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.7*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.7*ue,ce,.4*ue,.5*ce,ue,.5*ce).close());var Te=new go.PathFigure(.45*ue,.73*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.7*ue,.73*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.38*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.63*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.31*ue,.27*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.56*ue,.27*ce)),Ce}),go.Shape.defineFigureGenerator("BpmnTaskUser",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!1);Ce.add(Ae);var Te=new go.PathFigure(.335*ue,(1-.555)*ce,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.335*ue,(1-.405)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,(1-.335)*ue,(1-.405)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,(1-.335)*ue,(1-.555)*ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,ue,.68*ce,(1-.12)*ue,.46*ce,(1-.02)*ue,.54*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,.68*ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,.335*ue,(1-.555)*ce,.02*ue,.54*ce,.12*ue,.46*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.365*ue,(1-.595)*ce));var Ie=.5-.285,ze=.5,Ye=Ie,lt=Math.PI/4,Bt=4*(1-Math.cos(lt))/(3*Math.sin(lt)),kt=Bt*.5,xt=Ie,Et=Ie,$t=Bt*xt,Zt=Bt*Et;Te.add(new go.PathSegment(go.PathSegment.Bezier,(ze-xt)*ue,Ye*ce,(ze-($t+xt)/2)*ue,(Ye+(Et+Zt)/2)*ce,(ze-xt)*ue,(Ye+Zt)*ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,ze*ue,(Ye-Et)*ce,(ze-xt)*ue,(Ye-Zt)*ce,(ze-$t)*ue,(Ye-Et)*ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,(ze+xt)*ue,Ye*ce,(ze+$t)*ue,(Ye-Et)*ce,(ze+xt)*ue,(Ye-Zt)*ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,(1-.365)*ue,(1-.595)*ce,(ze+xt)*ue,(Ye+Zt)*ce,(ze+($t+xt)/2)*ue,(Ye+(Et+Zt)/2)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,(1-.365)*ue,(1-.595)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,(1-.335)*ue,(1-.555)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,(1-.335)*ue,(1-.405)*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.335*ue,(1-.405)*ce));var Yn=new go.PathFigure(.2*ue,ce,!1);Ce.add(Yn),Yn.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.8*ce));var gn=new go.PathFigure(.8*ue,ce,!1);return Ce.add(gn),gn.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.8*ce)),Ce}),go.Shape.defineFigureGenerator("BpmnEventConditional",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.1*ue,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.9*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.9*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.1*ue,ce).close());var Te=new go.PathFigure(.2*ue,.2*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.2*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.2*ue,.4*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.4*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.2*ue,.6*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.6*ce)),Te.add(new go.PathSegment(go.PathSegment.Move,.2*ue,.8*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.8*ce)),Ce}),go.Shape.defineFigureGenerator("BpmnEventError",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.33*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.66*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.66*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.33*ue,.5*ce).close()),Ce}),go.Shape.defineFigureGenerator("BpmnEventEscalation",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!1);Ce.add(Ae);var Te=new go.PathFigure(ue,ce,!1);Ce.add(Te);var Ie=new go.PathFigure(.1*ue,ce,!0);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,.9*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.5*ce).close()),Ce}),go.Shape.defineFigureGenerator("Caution",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.05*ue,ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.1*ue,.8*ce,0,ce,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.45*ue,.1*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.55*ue,.1*ce,.5*ue,0,.5*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.95*ue,.9*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.9*ue,ce,ue,ce,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.05*ue,ce));var Te=.05;return Ae.add(new go.PathSegment(go.PathSegment.Move,(.5-Te)*ue,.875*ce)),Ae.add(new go.PathSegment(go.PathSegment.Arc,180,-360,.5*ue,.875*ce,Te*ue,Te*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.5*ue,.75*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.325*ce,.575*ue,.725*ce,.625*ue,.375*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.75*ce,.375*ue,.375*ce,.425*ue,.725*ce)),Ce}),go.Shape.defineFigureGenerator("Recycle",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.45*ue,.95*ce,!1);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.95*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.185*ue,.85*ce,.17*ue,.95*ce,.15*ue,.9*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.235*ue,.75*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.3*ue,.625*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.35*ue,.65*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.275*ue,.45*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.05*ue,.45*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.1*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.05*ue,.575*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.1875*ue,.95*ce,0,.675*ce,0,.7*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.45*ue,.95*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.45*ue,.775*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.22*ue,.775*ce));var Te=new go.PathFigure(.475*ue,.2*ce,!1);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.4*ue,.4*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.225*ue,.3*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.275*ue,.175*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.325*ue,.05*ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,.4*ue,.05*ce,.35*ue,0,.375*ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,.575*ue,.375*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.525*ue,.4*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.75*ue,.475*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.85*ue,.315*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.32*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.65*ue,.05*ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,.575*ue,0,.65*ue,.05*ce,.625*ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,.38*ue,.0105*ce));var Ie=new go.PathFigure(.675*ue,.575*ce,!1);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,.875*ue,.525*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,.775*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,.85*ue,.95*ce,ue,.8*ce,ue,.85*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.65*ue,.95*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.65*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.55*ue,.85*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.65*ue,.725*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.65*ue,.775*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.7*ue,.775*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,.775*ce)),Ie.add(new go.PathSegment(go.PathSegment.Move,.675*ue,.575*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.775*ue,.775*ce)),Ce}),go.Shape.defineFigureGenerator("BpmnEventTimer",function(et,ue,ce){var Ce=new go.Geometry,Ae=.5,Te=Mt*.5,Ie=new go.PathFigure(ue,Ae*ce,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ue,ce,ue,(Ae+Te)*ce,(Ae+Te)*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,Ae*ce,(Ae-Te)*ue,ce,0,(Ae+Te)*ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,Ae*ue,0,0,(Ae-Te)*ce,(Ae-Te)*ue,0)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue,Ae*ce,(Ae+Te)*ue,0,ue,(Ae-Te)*ce));var ze=new go.PathFigure(Ae*ue,0,!1);return Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,Ae*ue,.15*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,Ae*ue,ce)),ze.add(new go.PathSegment(go.PathSegment.Line,Ae*ue,.85*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,0,Ae*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.15*ue,Ae*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,ue,Ae*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.85*ue,Ae*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,Ae*ue,Ae*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.58*ue,.1*ce)),ze.add(new go.PathSegment(go.PathSegment.Move,Ae*ue,Ae*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.78*ue,.54*ce)),Ce}),go.Shape.defineFigureGenerator("Package",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.15*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.15*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce).close());var Te=new go.PathFigure(0,.15*ce,!0);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,0,0)),Te.add(new go.PathSegment(go.PathSegment.Line,.6*ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,.65*ue,.15*ce).close()),Ce.spot1=new go.Spot(0,.1),Ce.spot2=new go.Spot(1,1),Ce}),go.Shape.defineFigureGenerator("Class",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0).close());var Te=new go.PathFigure(0,.2*ce,!1);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.2*ce).close());var Ie=new go.PathFigure(0,.5*ce,!1);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce).close()),Ce}),go.Shape.defineFigureGenerator("Component",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue,ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.15*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.15*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce).close());var Te=new go.PathFigure(0,.2*ce,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.45*ue,.2*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.45*ue,.4*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,.4*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,.2*ce).close());var Ie=new go.PathFigure(0,.6*ce,!0);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,.45*ue,.6*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.45*ue,.8*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,0,.8*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,0,.6*ce).close()),Ce}),go.Shape.defineFigureGenerator("Boat Shipment",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.15*ue,.6*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.15*ue,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.15*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.85*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.85*ue,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.15*ue,.6*ce));var Te=new go.PathFigure(.15*ue,.6*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.85*ue,.6*ce)),Ce}),go.Shape.defineFigureGenerator("Customer/Supplier",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue,ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.66*ue,.33*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.66*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.33*ue,.33*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.33*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.33*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce).close()),Ce}),go.Shape.defineFigureGenerator("Workcell",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.65*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.65*ue,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.35*ue,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.35*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce).close()),Ce}),go.Shape.defineFigureGenerator("Supermarket",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.33*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.33*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,ue,.33*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.66*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.66*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,ue,.66*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ce}),go.Shape.defineFigureGenerator("TruckShipment",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.6*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0).close());var Te=new go.PathFigure(ue,.8*ce,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.4*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.4*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.8*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.8*ce).close());var Ie=.1,ze=Mt*.1,Ye=.2,lt=.9,Bt=new go.PathFigure((Ye-Ie)*ue,lt*ce,!0);Ce.add(Bt),Bt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt-Ie)*ce,(Ye-Ie)*ue,(lt-ze)*ce,(Ye-ze)*ue,(lt-Ie)*ce)),Bt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye+Ie)*ue,lt*ce,(Ye+ze)*ue,(lt-Ie)*ce,(Ye+Ie)*ue,(lt-ze)*ce)),Bt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt+Ie)*ce,(Ye+Ie)*ue,(lt+ze)*ce,(Ye+ze)*ue,(lt+Ie)*ce)),Bt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-Ie)*ue,lt*ce,(Ye-ze)*ue,(lt+Ie)*ce,(Ye-Ie)*ue,(lt+ze)*ce).close()),Ie=.1,ze=Mt*.1,Ye=.8,lt=.9;var kt=new go.PathFigure((Ye-Ie)*ue,lt*ce,!0);return Ce.add(kt),kt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt-Ie)*ce,(Ye-Ie)*ue,(lt-ze)*ce,(Ye-ze)*ue,(lt-Ie)*ce)),kt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye+Ie)*ue,lt*ce,(Ye+ze)*ue,(lt-Ie)*ce,(Ye+Ie)*ue,(lt-ze)*ce)),kt.add(new go.PathSegment(go.PathSegment.Bezier,Ye*ue,(lt+Ie)*ce,(Ye+Ie)*ue,(lt+ze)*ce,(Ye+ze)*ue,(lt+Ie)*ce)),kt.add(new go.PathSegment(go.PathSegment.Bezier,(Ye-Ie)*ue,lt*ce,(Ye-ze)*ue,(lt+Ie)*ce,(Ye-Ie)*ue,(lt+ze)*ce).close()),Ce}),go.Shape.defineFigureGenerator("KanbanPost",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.2*ue,0,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Move,.5*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,ce)),Ce}),go.Shape.defineFigureGenerator("Forklift",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.4*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0));var Te=new go.PathFigure(0,.5*ce,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,0,.8*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.8*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,0,.5*ce));var Ie=new go.PathFigure(.5*ue,.8*ce,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.1*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.55*ue,.1*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.55*ue,.8*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.8*ce));var ze=new go.PathFigure(.5*ue,.7*ce,!1);Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,ue,.7*ce));var Ye=.1,lt=Mt*.1,Bt=.1,kt=.9,xt=new go.PathFigure((Bt-Ye)*ue,kt*ce,!0);Ce.add(xt),xt.add(new go.PathSegment(go.PathSegment.Bezier,Bt*ue,(kt-Ye)*ce,(Bt-Ye)*ue,(kt-lt)*ce,(Bt-lt)*ue,(kt-Ye)*ce)),xt.add(new go.PathSegment(go.PathSegment.Bezier,(Bt+Ye)*ue,kt*ce,(Bt+lt)*ue,(kt-Ye)*ce,(Bt+Ye)*ue,(kt-lt)*ce)),xt.add(new go.PathSegment(go.PathSegment.Bezier,Bt*ue,(kt+Ye)*ce,(Bt+Ye)*ue,(kt+lt)*ce,(Bt+lt)*ue,(kt+Ye)*ce)),xt.add(new go.PathSegment(go.PathSegment.Bezier,(Bt-Ye)*ue,kt*ce,(Bt-lt)*ue,(kt+Ye)*ce,(Bt-Ye)*ue,(kt+lt)*ce)),Ye=.1,lt=Mt*.1,Bt=.4,kt=.9;var Et=new go.PathFigure((Bt-Ye)*ue,kt*ce,!0);return Ce.add(Et),Et.add(new go.PathSegment(go.PathSegment.Bezier,Bt*ue,(kt-Ye)*ce,(Bt-Ye)*ue,(kt-lt)*ce,(Bt-lt)*ue,(kt-Ye)*ce)),Et.add(new go.PathSegment(go.PathSegment.Bezier,(Bt+Ye)*ue,kt*ce,(Bt+lt)*ue,(kt-Ye)*ce,(Bt+Ye)*ue,(kt-lt)*ce)),Et.add(new go.PathSegment(go.PathSegment.Bezier,Bt*ue,(kt+Ye)*ce,(Bt+Ye)*ue,(kt+lt)*ce,(Bt+lt)*ue,(kt+Ye)*ce)),Et.add(new go.PathSegment(go.PathSegment.Bezier,(Bt-Ye)*ue,kt*ce,(Bt-lt)*ue,(kt+Ye)*ce,(Bt-Ye)*ue,(kt+lt)*ce)),Ce}),go.Shape.defineFigureGenerator("RailShipment",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.1*ue,.4*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.45*ue,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.45*ue,.9*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.1*ue,.9*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.1*ue,.4*ce).close());var Te=new go.PathFigure(.45*ue,.7*ce,!1);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.55*ue,.7*ce));var Ie=new go.PathFigure(.55*ue,.4*ce,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.4*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.9*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.55*ue,.9*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.55*ue,.4*ce).close());var Bt=.05,kt=Mt*.05,xt=.175,Et=.95,ze=new go.PathFigure((xt-Bt)*ue,Et*ce,!0);Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Bezier,xt*ue,(Et-Bt)*ce,(xt-Bt)*ue,(Et-kt)*ce,(xt-kt)*ue,(Et-Bt)*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,(xt+Bt)*ue,Et*ce,(xt+kt)*ue,(Et-Bt)*ce,(xt+Bt)*ue,(Et-kt)*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,xt*ue,(Et+Bt)*ce,(xt+Bt)*ue,(Et+kt)*ce,(xt+kt)*ue,(Et+Bt)*ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,(xt-Bt)*ue,Et*ce,(xt-kt)*ue,(Et+Bt)*ce,(xt-Bt)*ue,(Et+kt)*ce));var Bt=.05,kt=Mt*.05,xt=.375,Et=.95,Ye=new go.PathFigure((xt-Bt)*ue,Et*ce,!0);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,xt*ue,(Et-Bt)*ce,(xt-Bt)*ue,(Et-kt)*ce,(xt-kt)*ue,(Et-Bt)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(xt+Bt)*ue,Et*ce,(xt+kt)*ue,(Et-Bt)*ce,(xt+Bt)*ue,(Et-kt)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,xt*ue,(Et+Bt)*ce,(xt+Bt)*ue,(Et+kt)*ce,(xt+kt)*ue,(Et+Bt)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(xt-Bt)*ue,Et*ce,(xt-kt)*ue,(Et+Bt)*ce,(xt-Bt)*ue,(Et+kt)*ce));var Bt=.05,kt=Mt*.05,xt=.625,Et=.95,lt=new go.PathFigure((xt-Bt)*ue,Et*ce,!0);Ce.add(lt),lt.add(new go.PathSegment(go.PathSegment.Bezier,xt*ue,(Et-Bt)*ce,(xt-Bt)*ue,(Et-kt)*ce,(xt-kt)*ue,(Et-Bt)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,(xt+Bt)*ue,Et*ce,(xt+kt)*ue,(Et-Bt)*ce,(xt+Bt)*ue,(Et-kt)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,xt*ue,(Et+Bt)*ce,(xt+Bt)*ue,(Et+kt)*ce,(xt+kt)*ue,(Et+Bt)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,(xt-Bt)*ue,Et*ce,(xt-kt)*ue,(Et+Bt)*ce,(xt-Bt)*ue,(Et+kt)*ce));var Bt=.05,kt=Mt*.05,xt=.825,Et=.95,$t=new go.PathFigure((xt-Bt)*ue,Et*ce,!0);Ce.add($t),$t.add(new go.PathSegment(go.PathSegment.Bezier,xt*ue,(Et-Bt)*ce,(xt-Bt)*ue,(Et-kt)*ce,(xt-kt)*ue,(Et-Bt)*ce)),$t.add(new go.PathSegment(go.PathSegment.Bezier,(xt+Bt)*ue,Et*ce,(xt+kt)*ue,(Et-Bt)*ce,(xt+Bt)*ue,(Et-kt)*ce)),$t.add(new go.PathSegment(go.PathSegment.Bezier,xt*ue,(Et+Bt)*ce,(xt+Bt)*ue,(Et+kt)*ce,(xt+kt)*ue,(Et+Bt)*ce)),$t.add(new go.PathSegment(go.PathSegment.Bezier,(xt-Bt)*ue,Et*ce,(xt-kt)*ue,(Et+Bt)*ce,(xt-Bt)*ue,(Et+kt)*ce).close());var Zt=new go.PathFigure(0,ce,!1);return Ce.add(Zt),Zt.add(new go.PathSegment(go.PathSegment.Line,ue,ce).close()),Ce}),go.Shape.defineFigureGenerator("Warehouse",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0).close());var Te=new go.PathFigure(0,.2*ce,!1);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.2*ce).close());var Ie=new go.PathFigure(.15*ue,ce,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,.15*ue,.5*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.4*ue,.5*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.4*ue,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.15*ue,ce).close());var ze=.05,Ye=Mt*.05,lt=.35,Bt=.775,kt=new go.PathFigure((lt-ze)*ue,Bt*ce,!0);return Ce.add(kt),kt.add(new go.PathSegment(go.PathSegment.Bezier,lt*ue,(Bt-ze)*ce,(lt-ze)*ue,(Bt-Ye)*ce,(lt-Ye)*ue,(Bt-ze)*ce)),kt.add(new go.PathSegment(go.PathSegment.Bezier,(lt+ze)*ue,Bt*ce,(lt+Ye)*ue,(Bt-ze)*ce,(lt+ze)*ue,(Bt-Ye)*ce)),kt.add(new go.PathSegment(go.PathSegment.Bezier,lt*ue,(Bt+ze)*ce,(lt+ze)*ue,(Bt+Ye)*ce,(lt+Ye)*ue,(Bt+ze)*ce)),kt.add(new go.PathSegment(go.PathSegment.Bezier,(lt-ze)*ue,Bt*ce,(lt-Ye)*ue,(Bt+ze)*ce,(lt-ze)*ue,(Bt+Ye)*ce).close()),Ce}),go.Shape.defineFigureGenerator("ControlCenter",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.1*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.1*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.9*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.1*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.8*ce).close()),Ce}),go.Shape.defineFigureGenerator("Bluetooth",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.75*ce,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.75*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.25*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.75*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.25*ce)),Ce}),go.Shape.defineFigureGenerator("Bookmark",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0)),Ae.add(new go.PathSegment(go.PathSegment.Move,.2*ue,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.2*ue,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.4*ce)),Ce}),go.Shape.defineFigureGenerator("Bookmark",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,0)),Ae.add(new go.PathSegment(go.PathSegment.Move,.2*ue,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.2*ue,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.4*ce)),Ce}),go.Shape.defineFigureGenerator("Globe",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.5*ue,0,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,0,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.5*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,ue,.5*ce,.75*ue,0,ue,.25*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,ce,ue,.75*ce,.75*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,.5*ce,.25*ue,ce,0,.75*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,0,0,.25*ce,.25*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,ce,.15*ue,.25*ce,.15*ue,.75*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,0,.85*ue,.75*ce,.85*ue,.25*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.1675*ue,.15*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.8325*ue,.15*ce,.35*ue,.3*ce,.65*ue,.3*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.1675*ue,.85*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.8325*ue,.85*ce,.35*ue,.7*ce,.65*ue,.7*ce)),Ce}),go.Shape.defineFigureGenerator("Wave",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.25*ce,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.3*ue,.25*ce,.1*ue,0,.2*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.7*ue,.25*ce,.425*ue,.5*ce,.575*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,ue,.25*ce,.8*ue,0,.9*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.75*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,0,.25*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.75*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.3*ue,.75*ce,.1*ue,.5*ce,.2*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.7*ue,.75*ce,.425*ue,ce,.575*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,ue,.75*ce,.8*ue,.5*ce,.9*ue,.5*ce)),Ce}),go.Shape.defineFigureGenerator("Operator",function(et,ue,ce){var Ce=new go.Geometry,Ae=.3,Te=Mt*.3,Ie=.5,ze=.7,Ye=new go.PathFigure((Ie-Ae)*ue,ze*ce,!0);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Ae)*ce,(Ie-Ae)*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Ae)*ue,ze*ce,(Ie+Te)*ue,(ze-Ae)*ce,(Ie+Ae)*ue,(ze-Te)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Ae)*ce,(Ie+Ae)*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Ae)*ue,ze*ce,(Ie-Te)*ue,(ze+Ae)*ce,(Ie-Ae)*ue,(ze+Te)*ce));var lt=new go.PathFigure(0,.7*ce,!1);return Ce.add(lt),lt.add(new go.PathSegment(go.PathSegment.Bezier,ue,.7*ce,0,0,ue,0)),Ce}),go.Shape.defineFigureGenerator("TripleFanBlades",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.5*ue,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.65*ce,.65*ue,.3*ce,.65*ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,0,.35*ue,.5*ce,.35*ue,.3*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.5*ue,.65*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,ce,.3*ue,.6*ce,.1*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.65*ce,.2*ue,ce,.35*ue,.95*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.5*ue,.65*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,ue,ce,.7*ue,.6*ce,.9*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.65*ce,.8*ue,ce,.65*ue,.95*ce)),Ce}),go.Shape.defineFigureGenerator("CentrifugalPump",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue,0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.4*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,.5*ce,0,.075*ce,0,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.4*ue,ce,0,ce,.4*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.8*ue,.4*ce,.8*ue,ce,.85*ue,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,0)),Ce}),go.Shape.defineFigureGenerator("Battery",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.1*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.1*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.4*ue,.1*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.4*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.6*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.1*ce));var Te=new go.PathFigure(0,.6*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Move,0,.4*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.4*ce)),Ce}),go.Shape.defineFigureGenerator("Delete",function(et,ue,ce){var Ce=new go.Geometry,Ae=.5,Te=Mt*.5,Ie=.5,ze=.5,Ye=new go.PathFigure((Ie-Ae)*ue,ze*ce,!0);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Ae)*ce,(Ie-Ae)*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Ae)*ue,ze*ce,(Ie+Te)*ue,(ze-Ae)*ce,(Ie+Ae)*ue,(ze-Te)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Ae)*ce,(Ie+Ae)*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Ae)*ue,ze*ce,(Ie-Te)*ue,(ze+Ae)*ce,(Ie-Ae)*ue,(ze+Te)*ce));var lt=new go.PathFigure(.15*ue,.5*ce,!1);return Ce.add(lt),lt.add(new go.PathSegment(go.PathSegment.Line,.85*ue,.5*ce)),Ce}),go.Shape.defineFigureGenerator("Flag",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.1*ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,0,.1*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.1*ce,.15*ue,0,.35*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,ue,.1*ce,.65*ue,.2*ce,.85*ue,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.5*ce,.85*ue,.6*ce,.65*ue,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,.5*ce,.35*ue,.4*ce,.15*ue,.4*ce).close()),Ce}),go.Shape.defineFigureGenerator("Help",function(et,ue,ce){var Ce=new go.Geometry,Ae=.5,Te=Mt*.5,Ie=.5,ze=.5,Ye=new go.PathFigure((Ie-Ae)*ue,ze*ce,!1);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Ae)*ce,(Ie-Ae)*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Ae)*ue,ze*ce,(Ie+Te)*ue,(ze-Ae)*ce,(Ie+Ae)*ue,(ze-Te)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Ae)*ce,(Ie+Ae)*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),Ye.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Ae)*ue,ze*ce,(Ie-Te)*ue,(ze+Ae)*ce,(Ie-Ae)*ue,(ze+Te)*ce).close()),Ae=.05,Te=Mt*.05,Ie=.5,ze=.8;var lt=new go.PathFigure((Ie-Ae)*ue,ze*ce,!1);return Ce.add(lt),lt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze-Ae)*ce,(Ie-Ae)*ue,(ze-Te)*ce,(Ie-Te)*ue,(ze-Ae)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie+Ae)*ue,ze*ce,(Ie+Te)*ue,(ze-Ae)*ce,(Ie+Ae)*ue,(ze-Te)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,Ie*ue,(ze+Ae)*ce,(Ie+Ae)*ue,(ze+Te)*ce,(Ie+Te)*ue,(ze+Ae)*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,(Ie-Ae)*ue,ze*ce,(Ie-Te)*ue,(ze+Ae)*ce,(Ie-Ae)*ue,(ze+Te)*ce).close()),lt.add(new go.PathSegment(go.PathSegment.Move,.5*ue,.7*ce)),lt.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.5*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,.2*ce,.75*ue,.475*ce,.75*ue,.225*ce)),lt.add(new go.PathSegment(go.PathSegment.Bezier,.3*ue,.35*ce,.4*ue,.2*ce,.3*ue,.25*ce)),Ce}),go.Shape.defineFigureGenerator("Location",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(.5*ue,ce,!0).add(new go.PathSegment(go.PathSegment.Line,.75*ue,.5*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.5*ue,0,.975*ue,.025*ce,.5*ue,0)).add(new go.PathSegment(go.PathSegment.Bezier,.25*ue,.5*ce,.5*ue,0,.025*ue,.025*ce).close()).add(new go.PathSegment(go.PathSegment.Move,.5*ue,.2*ce)).add(new go.PathSegment(go.PathSegment.Arc,270,360,.5*ue,.3*ce,.1*ue,.1*ce).close()))}),go.Shape.defineFigureGenerator("Lock",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.5*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.5*ce));var Te=new go.PathFigure(.2*ue,.5*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Move,.2*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.3*ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,.8*ue,.3*ce,.25*ue,0,.75*ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.3*ce)),Ce}),go.Shape.defineFigureGenerator("Unlocked",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.5*ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.5*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.5*ce));var Te=new go.PathFigure(.2*ue,.5*ce,!1);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Move,.2*ue,.5*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.3*ce)),Te.add(new go.PathSegment(go.PathSegment.Bezier,.8*ue,.3*ce,.25*ue,0,.75*ue,0)),Te.add(new go.PathSegment(go.PathSegment.Line,.8*ue,.35*ce)),Ce}),go.Shape.defineFigureGenerator("Gear",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(.9375*ue,.56246875*ce,!0).add(new go.PathSegment(go.PathSegment.Line,.9375*ue,.4375*ce)).add(new go.PathSegment(go.PathSegment.Line,.80621875*ue,.4375*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.763*ue,.3316875*ce,.79840625*ue,.39915625*ce,.7834375*ue,.3635*ce)).add(new go.PathSegment(go.PathSegment.Line,.8566875*ue,.23796875*ce)).add(new go.PathSegment(go.PathSegment.Line,.76825*ue,.14959375*ce)).add(new go.PathSegment(go.PathSegment.Line,.67596875*ue,.24184375*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.5625*ue,.19378125*ce,.64228125*ue,.2188125*ce,.603875*ue,.2021875*ce)).add(new go.PathSegment(go.PathSegment.Line,.5625*ue,.0625*ce)).add(new go.PathSegment(go.PathSegment.Line,.4375*ue,.0625*ce)).add(new go.PathSegment(go.PathSegment.Line,.4375*ue,.19378125*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.32775*ue,.239375*ce,.39759375*ue,.20190625*ce,.36053125*ue,.2176875*ce)).add(new go.PathSegment(go.PathSegment.Line,.2379375*ue,.14959375*ce)).add(new go.PathSegment(go.PathSegment.Line,.14953125*ue,.2379375*ce)).add(new go.PathSegment(go.PathSegment.Line,.23934375*ue,.3278125*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.19378125*ue,.4375*ce,.21765625*ue,.36059375*ce,.201875*ue,.397625*ce)).add(new go.PathSegment(go.PathSegment.Line,.0625*ue,.4375*ce)).add(new go.PathSegment(go.PathSegment.Line,.0625*ue,.5625*ce)).add(new go.PathSegment(go.PathSegment.Line,.1938125*ue,.5625*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.241875*ue,.67596875*ce,.20221875*ue,.603875*ce,.21884375*ue,.64228125*ce)).add(new go.PathSegment(go.PathSegment.Line,.1495625*ue,.76825*ce)).add(new go.PathSegment(go.PathSegment.Line,.238*ue,.8566875*ce)).add(new go.PathSegment(go.PathSegment.Line,.3316875*ue,.76296875*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.43753125*ue,.80621875*ce,.36353125*ue,.78340625*ce,.3991875*ue,.79840625*ce)).add(new go.PathSegment(go.PathSegment.Line,.43753125*ue,.9375*ce)).add(new go.PathSegment(go.PathSegment.Line,.5625*ue,.9375*ce)).add(new go.PathSegment(go.PathSegment.Line,.5625*ue,.80621875*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.67225*ue,.760625*ce,.602375*ue,.79809375*ce,.63946875*ue,.78234375*ce)).add(new go.PathSegment(go.PathSegment.Line,.76828125*ue,.8566875*ce)).add(new go.PathSegment(go.PathSegment.Line,.85671875*ue,.76825*ce)).add(new go.PathSegment(go.PathSegment.Line,.76065625*ue,.67221875*ce)).add(new go.PathSegment(go.PathSegment.Bezier,.80621875*ue,.56246875*ce,.78234375*ue,.63940625*ce,.798125*ue,.602375*ce)).add(new go.PathSegment(go.PathSegment.Line,.9375*ue,.56246875*ce).close()).add(new go.PathSegment(go.PathSegment.Move,.5*ue,.6*ce)).add(new go.PathSegment(go.PathSegment.Arc,90,360,.5*ue,.5*ce,.1*ue,.1*ce).close()))}),go.Shape.defineFigureGenerator("Hand",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.5*ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.1*ue,.3*ce,0,.375*ce,.05*ue,.325*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.45*ue,.075*ce,.3*ue,.225*ce,.4*ue,.175*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.525*ue,.075*ce,.46*ue,.05*ce,.525*ue,.05*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.3*ue,.4*ce,.525*ue,.275*ce,.475*ue,.325*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.9*ue,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.9*ue,.55*ce,ue,.4*ce,ue,.55*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.425*ue,.55*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.55*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.6*ue,.7*ce,.675*ue,.55*ce,.675*ue,.7*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.4*ue,.7*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.575*ue,.7*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.575*ue,.85*ce,.65*ue,.7*ce,.65*ue,.85*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.4*ue,.85*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.525*ue,.85*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.535*ue,ce,.61*ue,.85*ce,.61*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,0,.9*ce,.435*ue,ce,0,ce).close()),Ce}),go.Shape.defineFigureGenerator("Map",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,.2*ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.25*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.25*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce).close()),Ae.add(new go.PathSegment(go.PathSegment.Move,.25*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.25*ue,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.5*ue,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Move,.75*ue,0)),Ae.add(new go.PathSegment(go.PathSegment.Line,.75*ue,.8*ce)),Ce}),go.Shape.defineFigureGenerator("Eject",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,ce,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce*.7)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce*.7).close());var Te=new go.PathFigure(0,ce*.6,!0);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue,.6*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.5*ue,0).close()),Ce}),go.Shape.defineFigureGenerator("Pencil",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,.2*ue,.1*ce)).add(new go.PathSegment(go.PathSegment.Line,ue,.9*ce)).add(new go.PathSegment(go.PathSegment.Line,.9*ue,ce)).add(new go.PathSegment(go.PathSegment.Line,.1*ue,.2*ce).close()))}),go.Shape.defineFigureGenerator("Building",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue*1,ce*1,!1);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce*.85)),Ae.add(new go.PathSegment(go.PathSegment.Line,.046*ue,ce*.85)),Ae.add(new go.PathSegment(go.PathSegment.Line,.046*ue,ce*.45)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce*.45)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce*.3)),Ae.add(new go.PathSegment(go.PathSegment.Line,.046*ue,ce*.3)),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,(1-.046)*ue,ce*.3)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce*.3)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce*.45)),Ae.add(new go.PathSegment(go.PathSegment.Line,(1-.046)*ue,ce*.45)),Ae.add(new go.PathSegment(go.PathSegment.Line,(1-.046)*ue,ce*.85)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue,ce*.85).close());var Te=new go.PathFigure(.126*ue,.85*ce,!1);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,.126*ue,.45*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.322*ue,.45*ce)),Te.add(new go.PathSegment(go.PathSegment.Line,.322*ue,.85*ce).close());var Ie=new go.PathFigure(.402*ue,.85*ce,!1);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,.402*ue,.45*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.598*ue,.45*ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,.598*ue,.85*ce).close());var ze=new go.PathFigure(.678*ue,.85*ce,!1);Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,.678*ue,.45*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.874*ue,.45*ce)),ze.add(new go.PathSegment(go.PathSegment.Line,.874*ue,.85*ce).close());var Ye=new go.PathFigure(.5*ue,.1*ce,!1);return Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Line,(.046+.15)*ue,.3*ce)),Ye.add(new go.PathSegment(go.PathSegment.Line,(1-(.046+.15))*ue,.3*ce).close()),Ce}),go.Shape.defineFigureGenerator("Staircase",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,ce*1,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.2,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.2,ce*.8)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.4,ce*.8)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.4,ce*.6)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.6,ce*.6)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.6,ce*.4)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.8,ce*.4)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.8,ce*.2)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*.2)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*.15)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.75,ce*.15)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.75,ce*.35)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.55,ce*.35)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.55,ce*.55)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.35,ce*.55)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.35,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.15,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.15,ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce*.95).close()),Ce}),go.Shape.defineFigureGenerator("5Bars",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,ce*1,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.184,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.184,ce*(1-.184)).close());var Te=new go.PathFigure(ue*.204,ce,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.204,ce*(1-.184))),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.388,ce*(1-.184*2))),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.388,ce*1).close());var Ie=new go.PathFigure(ue*.408,ce,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.408,ce*(1-.184*2))),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.592,ce*(1-.184*3))),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.592,ce*1).close());var ze=new go.PathFigure(ue*.612,ce,!0);Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.612,ce*(1-.184*3))),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.796,ce*(1-.184*4))),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.796,ce*1).close());var Ye=new go.PathFigure(ue*.816,ce,!0);return Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*.816,ce*(1-.184*4))),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*(1-.184*5))),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*1).close()),Ce}),go.Shape.defineFigureGenerator("PC",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.3,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.3,0).close());var Te=new go.PathFigure(ue*.055,.07*ce,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.245,ce*.07)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.245,ce*.1)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.055,ce*.1).close());var Ie=new go.PathFigure(ue*.055,.13*ce,!0);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.245,ce*.13)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.245,ce*.16)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.055,ce*.16).close());var ze=new go.PathFigure(ue*.055,.18*ce,!0);Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.245,ce*.18)),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.245,ce*.21)),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.055,ce*.21).close());var Ye=new go.PathFigure(ue*1,0,!0);return Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*.4,0)),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*.4,ce*.65)),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*.65).close()),Ce}),go.Shape.defineFigureGenerator("Plane",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(.55*ue,ce,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,.5*ue,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.4*ue,.7*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.1*ue,.475*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.35*ue,.525*ce,0,.4*ce,.225*ue,.45*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.4*ue,.475*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.15*ue,.35*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.2*ue,.325*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.325*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.85*ue,.1*ce)),Ae.add(new go.PathSegment(go.PathSegment.Bezier,.9*ue,.2*ce,.975*ue,0,ue,.08*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.7*ue,.45*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.6*ue,.95*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,.55*ue,ce).close()),Ce}),go.Shape.defineFigureGenerator("Key",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue*1,ce*.5,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.9,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.5,.4*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.5,.35*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.45,.35*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.3,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.15,.2*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.35*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,.65*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.15,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.3,.8*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.45,.65*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.5,.65*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.5,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.6,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.65,.55*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.7,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.75,.55*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.8,.6*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.85,.575*ce)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.9,.6*ce).close()),Ae.add(new go.PathSegment(go.PathSegment.Move,.17*ue,.425*ce)),Ae.add(new go.PathSegment(go.PathSegment.Arc,270,360,.17*ue,.5*ce,.075*ue,.075*ce).close()),Ce}),go.Shape.defineFigureGenerator("FilmTape",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(0,0,!1);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Arc,270,180,ue*0,ue*.3,ue*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,0,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.08,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.08,ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*1),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*1),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*2),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*2),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*3),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*3),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*4),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*4),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*5),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*5),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*6),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*6),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*7),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*7),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*8),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*8),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*9),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*9),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*10),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*10),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*11),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*11),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*12),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*12),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*13),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*13),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*14),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*14),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*15),ce*.95)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(.08+.056*15),ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*1));var Te=new go.PathFigure(0,0,!1);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*0)),Te.add(new go.PathSegment(go.PathSegment.Arc,270,-180,ue*1,ue*.3,ue*.055)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*1));var Ie=new go.PathFigure(ue*.11,ce*.1,!1);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*(.11+.24133333*1+.028*0),ce*.1)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*(.11+.24133333*1+.028*0),ce*.8)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.11,ce*.8).close());var ze=new go.PathFigure(ue*(.11+.24133333*1+.028*1),ce*.1,!1);Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,ue*(.11+.24133333*2+.028*1),ce*.1)),ze.add(new go.PathSegment(go.PathSegment.Line,ue*(.11+.24133333*2+.028*1),ce*.8)),ze.add(new go.PathSegment(go.PathSegment.Line,ue*(.11+.24133333*1+.028*1),ce*.8).close());var Ye=new go.PathFigure(ue*(.11+.24133333*2+.028*2),ce*.1,!1);return Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*(.11+.24133333*3+.028*2),ce*.1)),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*(.11+.24133333*3+.028*2),ce*.8)),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*(.11+.24133333*2+.028*2),ce*.8).close()),Ce}),go.Shape.defineFigureGenerator("FloppyDisk",function(et,ue,ce){var Ce=new go.Geometry,Ae=8,Te=Ae*Mt,Ie=new go.PathFigure(Ae,0,!1);Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.86,0)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*.14)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,ce-Ae)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue-Ae,ce,ue,ce-Te,ue-Te,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,Ae,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,ce-Ae,Te,ce,0,ce-Te)),Ie.add(new go.PathSegment(go.PathSegment.Line,0,Ae)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,Ae,0,0,Te,Te,0).close());var ze=new go.PathFigure(ue*.83,0,!1);Ce.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.83,ce*.3)),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.17,ce*.3)),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.17,ce*0).close());var Ye=new go.PathFigure(ue*.83,ce*1,!1);Ce.add(Ye),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*.83,ce*.5)),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*.17,ce*.5)),Ye.add(new go.PathSegment(go.PathSegment.Line,ue*.17,ce*1).close());var lt=new go.PathFigure(ue*.78,ce*.05,!1);return Ce.add(lt),lt.add(new go.PathSegment(go.PathSegment.Line,ue*.66,ce*.05)),lt.add(new go.PathSegment(go.PathSegment.Line,ue*.66,ce*.25)),lt.add(new go.PathSegment(go.PathSegment.Line,ue*.78,ce*.25).close()),Ce}),go.Shape.defineFigureGenerator("SpeechBubble",function(et,ue,ce){var Ce=et?et.parameter1:NaN;(isNaN(Ce)||Ce<0)&&(Ce=15),Ce=Math.min(Ce,ue/3),Ce=Math.min(Ce,ce/3);var Ae=Ce*Mt,Te=ce*.8,Ie=new go.Geometry,ze=new go.PathFigure(Ce,0,!0);return Ie.add(ze),ze.add(new go.PathSegment(go.PathSegment.Line,ue-Ce,0)),ze.add(new go.PathSegment(go.PathSegment.Bezier,ue,Ce,ue-Ae,0,ue,Ae)),ze.add(new go.PathSegment(go.PathSegment.Line,ue,Te-Ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,ue-Ce,Te,ue,Te-Ae,ue-Ae,Te)),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.7,Te)),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.7,ce)),ze.add(new go.PathSegment(go.PathSegment.Line,ue*.55,Te)),ze.add(new go.PathSegment(go.PathSegment.Line,Ce,Te)),ze.add(new go.PathSegment(go.PathSegment.Bezier,0,Te-Ce,Ae,Te,0,Te-Ae)),ze.add(new go.PathSegment(go.PathSegment.Line,0,Ce)),ze.add(new go.PathSegment(go.PathSegment.Bezier,Ce,0,0,Ae,Ae,0).close()),Ae>1?(Ie.spot1=new go.Spot(0,0,Ae,Ae),Ie.spot2=new go.Spot(1,.8,-Ae,-Ae)):(Ie.spot1=go.Spot.TopLeft,Ie.spot2=new go.Spot(1,.8)),Ie}),go.Shape.defineFigureGenerator("Repeat",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue*0,ce*.45,!0);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.25,ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.5,ce*.45)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.3,ce*.45)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.3,ce*.9)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.6,ce*.9)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.65,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.2,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.2,ce*.45).close());var Te=new go.PathFigure(ue*1,ce*.55,!0);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.75,ce*1)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.5,ce*.55)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.7,ce*.55)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.7,ce*.1)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.4,ce*.1)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.35,ce*0)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.8,ce*0)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.8,ce*.55).close()),Ce}),go.Shape.defineFigureGenerator("Windows",function(et,ue,ce){return new go.Geometry().add(new go.PathFigure(0,0,!0).add(new go.PathSegment(go.PathSegment.Line,ue,0)).add(new go.PathSegment(go.PathSegment.Line,ue,ce)).add(new go.PathSegment(go.PathSegment.Line,0,ce).close()).add(new go.PathSegment(go.PathSegment.Move,.4*ue,.4*ce)).add(new go.PathSegment(go.PathSegment.Line,.4*ue,.8*ce)).add(new go.PathSegment(go.PathSegment.Line,.9*ue,.8*ce)).add(new go.PathSegment(go.PathSegment.Line,.9*ue,.4*ce).close()).add(new go.PathSegment(go.PathSegment.Move,.2*ue,.1*ce)).add(new go.PathSegment(go.PathSegment.Line,.2*ue,.6*ce)).add(new go.PathSegment(go.PathSegment.Line,.7*ue,.6*ce)).add(new go.PathSegment(go.PathSegment.Line,.7*ue,.1*ce).close()).add(new go.PathSegment(go.PathSegment.Move,.1*ue,.6*ce)).add(new go.PathSegment(go.PathSegment.Line,.1*ue,.9*ce)).add(new go.PathSegment(go.PathSegment.Line,.5*ue,.9*ce)).add(new go.PathSegment(go.PathSegment.Line,.5*ue,.6*ce).close()))}),go.Shape.defineFigureGenerator("Terminal",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue*0,ce*.1,!1);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*.1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*.9)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*0,ce*.9).close());var Te=new go.PathFigure(ue*.1,ce*.2,!0);Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.1,ce*.25)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.22,ce*.285)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.1,ce*.32)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.1,ce*.37)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.275,ce*.32)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.275,ce*.25).close());var Ie=new go.PathFigure(ue*.28,ce*.37,!0);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.45,ce*.37)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.45,ce*.41)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.28,ce*.41).close()),Ce}),go.Shape.defineFigureGenerator("Beaker",function(et,ue,ce){var Ce=new go.Geometry,Ae=15,Te=Ae*Mt,Ie=new go.PathFigure(ue*.62,ce*.475,!0);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue,ce-Ae)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,ue-Ae,ce,ue,ce-Te,ue-Te,ce)),Ie.add(new go.PathSegment(go.PathSegment.Line,Ae,ce)),Ie.add(new go.PathSegment(go.PathSegment.Bezier,0,ce-Ae,Te,ce,0,ce-Te)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.38,ce*.475)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.38,ce*.03)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.36,ce*0)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.64,ce*0)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.62,ce*.03).close()),Te>1?(Ce.spot1=new go.Spot(0,0,Te,Te),Ce.spot2=new go.Spot(1,1,-Te,-Te)):(Ce.spot1=go.Spot.TopLeft,Ce.spot2=go.Spot.BottomRight),Ce}),go.Shape.defineFigureGenerator("Download",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue*0,ce*1,!0);Ce.add(Ae);var Te=.1/.3;Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.8,ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.66,ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.66,ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.755,ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.93,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.64,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.61,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.5,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.39,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.36,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.07,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.755),ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.66),ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.66),ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.8),ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*0,ce*(1-Te)).close());var Ie=new go.PathFigure(ue*.4,ce*0,!0);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.4,ce*.44)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.26,ce*.44)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.5,ce*.66)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.26),ce*.44)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.6,ce*.44)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.6,ce*0).close()),Ce}),go.Shape.defineFigureGenerator("Bin",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue*0,ce*1,!0);Ce.add(Ae);var Te=.1/.3;return Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.8,ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.66,ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.66,ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.755,ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.93,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.64,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.61,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.5,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.39,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.36,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.07,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.755),ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.66),ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.66),ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.8),ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*0,ce*(1-Te)).close()),Ce}),go.Shape.defineFigureGenerator("Upload",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue*0,ce*1,!0);Ce.add(Ae);var Te=.1/.3;Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.8,ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.66,ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.66,ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.755,ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.93,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.64,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.61,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.5,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.39,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.36,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.07,ce*(1-Te))),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.755),ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.66),ce*.055)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.66),ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*(1-.8),ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*0,ce*(1-Te)).close());var Ie=new go.PathFigure(ue*.5,ce*0,!0);return Ce.add(Ie),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.26,ce*.25)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.4,ce*.25)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.4,ce*.63)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.6,ce*.63)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.6,ce*.25)),Ie.add(new go.PathSegment(go.PathSegment.Line,ue*.74,ce*.25).close()),Ce}),go.Shape.defineFigureGenerator("EmptyDrink",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue*.15,ce*0,!1);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.85,ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.7,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.3,ce*1).close()),Ce}),go.Shape.defineFigureGenerator("Drink",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue*.15,ce*0,!1);Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.85,ce*0)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.7,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.3,ce*1).close());var Te=new go.PathFigure(ue*.235,ce*.28,!0);return Ce.add(Te),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.765,ce*.28)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.655,ce*.97)),Te.add(new go.PathSegment(go.PathSegment.Line,ue*.345,ce*.97).close()),Ce}),go.Shape.defineFigureGenerator("4Arrows",function(et,ue,ce){var Ce=new go.Geometry,Ae=new go.PathFigure(ue*.5,ce*0,!0);return Ce.add(Ae),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.65,ce*.25)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.55,ce*.25)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.55,ce*.45)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.75,ce*.45)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.75,ce*.35)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*1,ce*.5)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.75,ce*.65)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.75,ce*.55)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.55,ce*.55)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.55,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.65,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.5,ce*1)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.35,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.45,ce*.75)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.45,ce*.55)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.25,ce*.55)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.25,ce*.65)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*0,ce*.5)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.25,ce*.35)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.25,ce*.45)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.45,ce*.45)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.45,ce*.25)),Ae.add(new go.PathSegment(go.PathSegment.Line,ue*.35,ce*.25).close()),Ce}),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")},43001: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 Cn={},Ei="5.0",je={},Me=null,yt=!1,Jt=!1,Qt=null,It=!1,dt=null,Mt=null,an=0;an<arguments.length;an++){var qt=arguments[an];if(qt!==null)switch(typeof qt){case"number":Ei=qt.toFixed(1);break;case"string":qt.match(new RegExp("^[0-9]\\.[0-9]+$"))?Ei=qt:Qt=qt;break;case"object":typeof qt.is3D!="undefined"?Me=qt:je=qt;break;case"boolean":yt=qt,Jt=!0;break}}Me===null&&(Me={is3D:!1,AV:!1,SV:!1,CV:!1,EV2:!1,CP:!1,PC:!1,DA:!1,FI:!1,PV:!1,macro:!1},je.material_id!==void 0&&!Jt&&(yt=!0)),Qt!==null&&je.id===void 0&&(je.id=Qt);var nt="",ln="",rn=!1,on=null,et=null,ue=null,ce=!1,Ce=null,Ae=null,Te=null,Ie=null,ze=null;je.height!==void 0&&(je.height=Math.round(je.height)),je.width!==void 0&&(je.width=Math.round(je.width));var Ye=function(En){return parseFloat(En)>4?parseFloat(En):5};Cn.setHTML5Codebase=function(En,Mn){Mt=En,Hn(En,Mn)},Cn.setJavaCodebase=Cn.setJavaCodebaseVersion=Cn.isCompiledInstalled=Cn.setPreCompiledScriptPath=Cn.setPreCompiledResourcePath=function(){},Cn.setHTML5CodebaseVersion=function(En,Mn){var Ln=parseFloat(En);if(Ln!==NaN&&Ln<5){console.log("The GeoGebra HTML5 codebase version "+Ln+" is deprecated. Using version latest instead.");return}dt=En,At(En,Mn)},Cn.getHTML5CodebaseVersion=function(){return et},Cn.getParameters=function(){return je},Cn.setFontsCSSURL=function(En){Ie=En},Cn.setGiacJSURL=function(En){},Cn.setJNLPFile=function(En){nt=En},Cn.setJNLPBaseDir=function(En){},Cn.inject=function(){function En(){return window.frameElement&&window.frameElement.getAttribute("data-singleton")}for(var Mn="auto",Ln=je.id,Mi,Rt=!1,ni=0;ni<arguments.length;ni++){var en=arguments[ni];typeof en=="string"?(en=en.toLowerCase(),en.match(/^(prefer)?(java|html5|compiled|auto|screenshot)$/)?Mn=en:Ln=arguments[ni]):typeof en=="boolean"?Rt=en:en instanceof HTMLElement&&(Mi=en)}Ti();function Ti(){if(!It){setTimeout(Ti,200);return}Mn=hi(Mn);var Lr=Mi||document.getElementById(Ln);if(!Lr){console.log("possibly bug on ajax loading? ");return}if(Cn.removeExistingApplet(Lr,!1),je.width===void 0&&Lr.clientWidth&&(je.width=Lr.clientWidth),je.height===void 0&&Lr.clientHeight&&(je.height=Lr.clientHeight),!(je.width&&je.height)&&Mn==="html5"&&(delete je.width,delete je.height),on=Mn,Mn==="screenshot")gn(Lr,je);else{var Tt=!1;je.hasOwnProperty("playButton")&&je.playButton||je.hasOwnProperty("clickToLoad")&&je.clickToLoad?Tt=!0:je.hasOwnProperty("playButtonAutoDecide")&&je.playButtonAutoDecide&&(Tt=(!lt()||En())&&Bt()),Tt?(on="screenshot",ci(Lr,je,Rt,Mn)):Yn(Lr,je,Rt)}}};function lt(){try{return window.self!==window.top}catch(En){return!0}}function Bt(){return je.hasOwnProperty("screenshotGenerator")&&je.screenshotGenerator?!1:Math.max(screen.width,screen.height)<800}Cn.getViews=function(){return Me},Cn.isJavaInstalled=function(){return!1};var kt=function(En){var Mn=function(ni){var en=JSON.parse(ni),Ti=function(Ze){return Ze.type=="G"||Ze.type=="E"},Lr=en.elements?en.elements.filter(Ti)[0]:en;if(!Lr||!Lr.url){Ln();return}je.fileName=Lr.url,xt(Lr.settings||{}),Me.is3D=!0;var Tt="https://www.geogebra.org/images/";Cn.setPreviewImage(Ce||Lr.previewUrl,Tt+"GeoGebra_loading.png",Tt+"applet_play.png"),En()},Ln=function(){je.onError&&je.onError(),_i("Error: Fetching material (id "+je.material_id+") failed.",je)},Mi=location.host.match(/(www|stage|beta|groot|alpha).geogebra.(org|net)/)?location.host:"www.geogebra.org",Rt="/materials/"+je.material_id+"?scope=basic";Et("https://"+Mi+"/api/proxy.php?path="+encodeURIComponent(Rt),Mn,Ln)};function xt(En){var Mn=["width","height","showToolBar","showMenuBar","showAlgebraInput","allowStyleBar","showResetIcon","enableLabelDrags","enableShiftDragZoom","enableRightClick","appName"];["enableLabelDrags","enableShiftDragZoom","enableRightClick"].forEach(function(Ln){En[Ln]=!!En[Ln]}),Mn.forEach(function(Ln){je[Ln]===void 0&&En[Ln]!==void 0&&(je[Ln]=En[Ln])}),je.showToolBarHelp===void 0&&(je.showToolBarHelp=je.showToolBar)}function Et(En,Mn,Ln){var Mi=new XMLHttpRequest;Mi.open("GET",En),Mi.onload=function(){Mn(Mi.responseText)},Mi.onerror=Ln,Mi.send()}Cn.isHTML5Installed=function(){return!0},Cn.getLoadedAppletType=function(){return on},Cn.setPreviewImage=function(En,Mn,Ln){Ce=En,Ae=Mn,Te=Ln},Cn.removeExistingApplet=function(En,Mn){var Ln;typeof En=="string"&&(En=document.getElementById(En)),on=null;var Mi=null;for(Ln=0;Ln<En.childNodes.length;Ln++){var Rt=En.childNodes[Ln],ni=Rt.className;ni==="applet_screenshot"?Mn?(Rt.style.display="block",on="screenshot"):Rt.style.display="none":ni!=="applet_scaler prerender"&&(En.removeChild(Rt),Mi=ni&&ni.indexOf("appletParameters")!=-1?Rt.id:null,Ln--)}var en=je.id!==void 0?je.id:Mi,Ti=window[en];Ti&&typeof Ti.getBase64=="function"&&(Ti.remove(),window[en]=null)},Cn.refreshHitPoints=function(){if(Ye(ggbHTML5LoadedCodebaseVersion)>=5)return!0;var En=Cn.getAppletObject();return En&&typeof En.recalculateEnvironments=="function"?(En.recalculateEnvironments(),!0):!1},Cn.startAnimation=function(){var En=Cn.getAppletObject();return En&&typeof En.startAnimation=="function"?(En.startAnimation(),!0):!1},Cn.stopAnimation=function(){var En=Cn.getAppletObject();return En&&typeof En.stopAnimation=="function"?(En.stopAnimation(),!0):!1},Cn.getAppletObject=function(){var En=je.id!==void 0?je.id:"ggbApplet";return window[En]},Cn.resize=function(){};var $t=function(En,Mn,Ln){var Mi=document.createElement("param");Mi.setAttribute("name",Mn),Mi.setAttribute("value",Ln),En.appendChild(Mi)},Zt=function(En){return En&&En!=="false"},Yn=function(En,Mn,Ln){Ye(et)<=4.2&&(Ln=!0);var Mi=!isRenderGGBElementEnabled&&!scriptLoadStarted;(!isRenderGGBElementEnabled&&!scriptLoadStarted||ggbHTML5LoadedCodebaseVersion!==et||ggbHTML5LoadedCodebaseIsWebSimple&&!ce)&&(Mi=!0,isRenderGGBElementEnabled=!1,scriptLoadStarted=!1);var Rt=document.createElement("div");Rt.classList.add("appletParameters","notranslate");var ni=Mn.width,en=Mn.height;if(Mn.disableAutoScale=Mn.disableAutoScale===void 0?GGBAppletUtils.isFlexibleWorksheetEditor():Mn.disableAutoScale,Mn.width!==void 0)if(Ye(et)<=4.4)Zt(Mn.showToolBar)&&(Mn.height-=7),Zt(Mn.showAlgebraInput)&&(Mn.height-=37),Mn.width<605&&Zt(Mn.showToolBar)&&(Mn.width=605,ni=605);else{var Ti=100;(Zt(Mn.showToolBar)||Zt(Mn.showMenuBar))&&(Mn.hasOwnProperty("customToolBar")&&(Mn.customToolbar=Mn.customToolBar),Ti=Zt(Mn.showMenuBar)?245:155),ni<Ti&&(Mn.width=Ti,ni=Ti)}Rt.style.border="none",Rt.style.display="inline-block";for(var Lr in Mn)Mn.hasOwnProperty(Lr)&&Lr!=="appletOnLoad"&&Rt.setAttribute("data-param-"+Lr,Mn[Lr]);Ie&&Rt.setAttribute("data-param-fontscssurl",Ie),Cn.resize=function(){GGBAppletUtils.responsiveResize(En,Mn)},window.addEventListener("resize",function(oi){Cn.resize()});var Tt=typeof Mn.appletOnLoad=="function"?Mn.appletOnLoad:function(){};if(!Ln&&Mn.width!==void 0){Mn.hasOwnProperty("showSplash")||Rt.setAttribute("data-param-showSplash","false");var Ze=En.querySelector(".applet_scaler.prerender"),Ge=Ze!==null;if(Ge)var rt=Ze.querySelector(".ggb_preview");else{var rt=In(ni,en,Mn.borderColor,!1);Ze=document.createElement("div"),Ze.className="applet_scaler",Ze.style.position="relative",Ze.style.display="block",Ze.style.width=ni+"px",Ze.style.height=en+"px"}window.GGBT_spinner&&window.GGBT_spinner.attachSpinner(Ze,"66%"),Ye(et)>=5?(Mn.appletOnLoad=function(oi){var Wi=En.querySelector(".ggb_preview");Wi&&Wi.parentNode.removeChild(Wi),window.GGBT_spinner&&window.GGBT_spinner.removeSpinner(Ze),window.GGBT_wsf_view&&$(window).trigger("resize"),Tt(oi)},Ge||Ze.appendChild(rt)):Rt.appendChild(rt),Ze.appendChild(Rt),Ge||En.appendChild(Ze),setTimeout(function(){Cn.resize()},1)}else{var Ft=document.createElement("div");Ft.className="applet_scaler",Ft.style.position="relative",Ft.style.display="block",Ft.appendChild(Rt),En.appendChild(Ft),Mn.appletOnLoad=function(oi){Cn.resize(),Tt(oi)}}function qe(oi,Wi){Wi&&typeof Wi.appletOnLoad=="function"&&typeof renderGGBElement=="function"?renderGGBElement(oi,Wi.appletOnLoad):renderGGBElement(oi),_i("GeoGebra HTML5 applet injected and rendered with previously loaded codebase.",Wi)}function mt(oi,Wi){typeof renderGGBElement=="undefined"?(html5AppletsToProcess===null&&(html5AppletsToProcess=[]),html5AppletsToProcess.push({article:oi,params:Wi}),window.renderGGBElementReady=function(){isRenderGGBElementEnabled=!0,html5AppletsToProcess!==null&&html5AppletsToProcess.length&&(html5AppletsToProcess.forEach(function(Nr){qe(Nr.article,Nr.params)}),html5AppletsToProcess=null)},Ye(et)<5&&(oi.className+=" geogebraweb")):qe(oi,Wi)}if(Mi){scriptLoadStarted=!0;for(var An=0;An<Rt.childNodes.length;An++){var Gn=Rt.childNodes[An].tagName;Gn==="TABLE"&&(Rt.removeChild(Rt.childNodes[An]),An--)}if(ggbHTML5LoadedScript!==null){var fo=document.querySelector('script[src="'+ggbHTML5LoadedScript+'"]');fo!=null&&fo.parentNode.removeChild(fo)}var qn=document.createElement("script"),Kn=function(){mt(Rt,Mn)};qn.src=ln+ue,ggbHTML5LoadedCodebaseIsWebSimple=ce,ggbHTML5LoadedCodebaseVersion=et,ggbHTML5LoadedScript=qn.src,_i("GeoGebra HTML5 codebase loaded: '"+ln+"'.",Mn),!Mt&&(!dt||dt=="5.0")?(ce?webSimple.succeeded=webSimple.succeeded||webSimple():web3d.succeeded=web3d.succeeded||web3d(),Kn()):ln.requirejs?__webpack_require__.e(7963).then(function(){var oi=[__webpack_require__(87963)];Kn.apply(null,oi)}.bind(this)).catch(__webpack_require__.oe):(qn.onload=Kn,En.appendChild(qn))}else mt(Rt,Mn);Mn.height=en,Mn.width=ni},gn=function(En,Mn,Ln){var Mi=In(Mn.width,Mn.height,Mn.borderColor,Ln),Rt=document.createElement("div");Rt.style.position="relative",Rt.style.display="block",Rt.style.width=Mn.width+"px",Rt.style.height=Mn.height+"px",Rt.className="applet_screenshot applet_scaler"+(Ln?" applet_screenshot_play":""),Rt.appendChild(Mi);var ni=GGBAppletUtils.getScale(Mn,En,Ln);Ln?(En.appendChild(Xn()),window.GGBT_wsf_view||(En.style.position="relative")):window.GGBT_spinner&&window.GGBT_spinner.attachSpinner(Rt,"66%"),En.appendChild(Rt),ni!==1&&!isNaN(ni)&&(GGBAppletUtils.scaleElement(Rt,ni),Rt.style.width=Mn.width+"px",Rt.style.height=Mn.height+"px",Rt.parentNode.style.width=Mn.width*ni+"px",Rt.parentNode.style.height=Mn.height*ni+"px"),Cn.resize=function(){Jn(En,Mi,Rt,Ln)},window.addEventListener("resize",function(en){Cn.resize()}),Cn.resize()};function Jn(En,Mn,Ln,Mi){if(En.contains(Mn)){if(typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()){if(En.id!=="fullscreencontent")return;window.GGBT_wsf_view.setCloseBtnPosition(En)}var Rt=GGBAppletUtils.getScale(je,En,Mi);Ln.parentNode!==null&&(!isNaN(Rt)&&Rt!==1?(GGBAppletUtils.scaleElement(Ln,Rt),Ln.parentNode.style.width=je.width*Rt+"px",Ln.parentNode.style.height=je.height*Rt+"px"):(GGBAppletUtils.scaleElement(Ln,1),Ln.parentNode.style.width=je.width+"px",Ln.parentNode.style.height=je.height+"px")),typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()&&GGBAppletUtils.positionCenter(En),typeof window.GGBT_ws_header_footer=="object"&&window.GGBT_ws_header_footer.setWsScrollerHeight()}}Cn.onExitFullscreen=function(En,Mn){Mn.appendChild(En)};var ci=function(En,Mn,Ln,Mi){gn(En,Mn,!0);for(var Rt=function(){var Ti=[];for(en=0;en<En.childNodes.length;en++)Ti.push(En.childNodes[en]);if(window.GGBT_wsf_view){var Lr=window.GGBT_wsf_view.renderFullScreen(En,Mn.id),Tt=document.getElementById("fullscreencontainer"),Ze=jQuery(En).find(".fullscreencontent");Ze.length>0?(Lr.remove(),Ze.attr("id","fullscreencontent").show(),jQuery(Tt).append(Ze),window.dispatchEvent(new Event("resize"))):Yn(Lr,Mn,!1),window.GGBT_wsf_view.launchFullScreen(Tt)}else on=Mi,Yn(En,Mn,!1);if(!window.GGBT_wsf_view)for(en=0;en<Ti.length;en++)En.removeChild(Ti[en])},ni=En.getElementsByClassName("ggb_preview_play"),en=0;en<ni.length;en++)ni[en].addEventListener("click",Rt,!1),ni[en].addEventListener("ontouchstart",Rt,!1);typeof window.ggbAppletPlayerOnload=="function"&&window.ggbAppletPlayerOnload(En),Bt()&&window.GGBT_wsf_view&&$(".wsf-element-fullscreen-button").remove()},Xn=function(){var En=document.createElement("div");if(En.className="ggb_preview_play icon-applet-play",!window.GGBT_wsf_view){var Mn='.icon-applet-play { width: 100%; height: 100%;box-sizing: border-box;position: absolute;z-index: 1001;cursor: pointer;border-width: 0px; background-color: transparent;background-repeat: no-repeat;left: 0;top: 0;background-position: center center; background-image: url("https://www.geogebra.org/images/worksheet/icon-start-applet.png");}.icon-applet-play:hover {background-image: url("https://www.geogebra.org/images/worksheet/icon-start-applet-hover.png");}',Ln=document.createElement("style");Ln.styleSheet?Ln.styleSheet.cssText=Mn:Ln.appendChild(document.createTextNode(Mn)),document.getElementsByTagName("head")[0].appendChild(Ln)}return En},In=function(En,Mn,Ln,Mi){var Rt=document.createElement("div");Rt.className="ggb_preview",Rt.style.position="absolute",Rt.style.zIndex="90",Rt.style.width=En-2+"px",Rt.style.height=Mn-2+"px",Rt.style.top="0px",Rt.style.left="0px",Rt.style.overflow="hidden",Rt.style.backgroundColor="white";var ni="lightgrey";Ln!==void 0&&(Ln==="none"?ni="transparent":ni=Ln),Rt.style.border="1px solid "+ni;var en=document.createElement("img");if(en.style.position="relative",en.style.zIndex="1000",en.style.top="-1px",en.style.left="-1px",Ce!==null&&en.setAttribute("src",Ce),en.style.opacity=.7,Ae!==null){var Ti,Lr,Tt;if(!Mi){Ti=document.createElement("img"),Ti.style.position="absolute",Ti.style.zIndex="1001",Ti.style.opacity=1,en.style.opacity=.3,Lr=360,Lr>En/4*3&&(Lr=En/4*3),Tt=Lr/5.8,Ti.setAttribute("src",Ae),Ti.setAttribute("width",Lr),Ti.setAttribute("height",Tt);var Ze=(En-Lr)/2,Ge=(Mn-Tt)/2;Ti.style.left=Ze+"px",Ti.style.top=Ge+"px",Rt.appendChild(Ti)}}return Rt.appendChild(en),Rt},hi=function(En){return En=En.toLowerCase(),En==="html5"||En==="screenshot"?En:"html5"},Ht=["web","webSimple","web3d","tablet","tablet3d","phone"],At=function(En,Mn){if(et=En,Mn){Hn(et,!0);return}var Ln=!yt;if(Ln){var Mi=Ye(et);!isNaN(Mi)&&Mi<4.4&&(Ln=!1)}var Rt,ni;window.location.protocol.substr(0,4)==="http"?Rt=window.location.protocol:Rt="http:";var en=et.indexOf("//");en>0?ni=et:en===0?ni=Rt+et:ni="https://www.geogebra.org/apps/5.2.814.0/";for(var Ti in Ht)if(et.slice(Ht[Ti].length*-1)===Ht[Ti]||et.slice((Ht[Ti].length+1)*-1)===Ht[Ti]+"/"){Hn(ni,!1);return}!GGBAppletUtils.isFlexibleWorksheetEditor()&&Ln&&!Me.is3D&&!Me.AV&&!Me.SV&&!Me.CV&&!Me.EV2&&!Me.CP&&!Me.PC&&!Me.DA&&!Me.FI&&!Me.PV&&!Zt(je.showToolBar)&&!Zt(je.showMenuBar)&&!Zt(je.showAlgebraInput)&&!Zt(je.enableRightClick)&&(!je.appName||je.appName=="classic")?ni+="webSimple/":ni+="web3d/",Hn(ni,!1)},Hn=function(En,Mn){if(En.requirejs){ln=En;return}En.slice(-1)!=="/"&&(En+="/"),ln=En,Mn===null&&(Mn=En.indexOf("http")===-1),rn=Mn,ue="web.nocache.js",ce=!1;var Ln=ln.split("/");Ln.length>1&&(!Mn&&Ln[Ln.length-2]==="webSimple"?(ue="webSimple.nocache.js",ce=!0):Ht.indexOf(Ln[Ln.length-2])>=0&&(ue=Ln[Ln.length-2]+".nocache.js")),Ln=En.split("/"),et=Ln[Ln.length-3],et.substr(0,4)==="test"?et=et.substr(4,1)+"."+et.substr(5,1):(et.substr(0,3)==="war"||et.substr(0,4)==="beta")&&(et="5.0");var Mi=parseFloat(et);Mi!==NaN&&Mi<5&&En.indexOf("geogebra.org")>=0&&(console.log("The GeoGebra HTML5 codebase version "+Mi+" is deprecated. Using version latest instead."),At("5.0",Mn))},_i=function(En,Mn){window.console&&window.console.log&&(!Mn||typeof Mn.showLogging=="undefined"||Mn.showLogging&&Mn.showLogging!=="false")&&console.log(En)};je.material_id!==void 0?kt(dr):dr();function dr(){var En=Ei;dt!==null?En=dt:parseFloat(En)<5&&(En="5.0"),At(En,!1),Mt!==null&&Hn(Mt,rn),It=!0}return Cn},GGBAppletUtils=function(){"use strict";function Cn(){return window.GGBT_wsf_edit!==void 0}function Ei(It,dt){dt!=1?(It.style.transformOrigin="0% 0% 0px",It.style.webkitTransformOrigin="0% 0% 0px",It.style.transform="scale("+dt+","+dt+")",It.style.webkitTransform="scale("+dt+","+dt+")",It.style.maxWidth="initial",It.querySelector(".ggb_preview")!==null&&(It.querySelector(".ggb_preview").style.maxWidth="initial"),It.querySelectorAll(".ggb_preview img")[0]!==void 0&&(It.querySelectorAll(".ggb_preview img")[0].style.maxWidth="initial"),It.querySelectorAll(".ggb_preview img")[1]!==void 0&&(It.querySelectorAll(".ggb_preview img")[1].style.maxWidth="initial")):(It.style.transform="none",It.style.webkitTransform="none")}function je(It,dt,Mt,an,qt,nt){var ln=null;if(nt!=null&&nt!="")for(var rn=It.parentNode;rn!=null;)if((" "+rn.className+" ").indexOf(" "+nt+" ")>-1){ln=rn;break}else rn=rn.parentNode;var on=0,et=0,ue=0,ce=0,Ce=0,Ae=0,Te=0;if(ln)on=ln.offsetWidth,et=Math.max(an?ln.offsetWidth:0,ln.offsetHeight);else{if(window.innerWidth&&document.documentElement.clientWidth?(on=Math.min(window.innerWidth,document.documentElement.clientWidth),et=Math.min(window.innerHeight,document.documentElement.clientHeight),ue=on):(on=window.innerWidth,et=window.innerHeight,ue=window.innerWidth),It){var Ie=It.getBoundingClientRect();Ie.left>0&&Ie.left<=on&&(qt===void 0||!qt)&&(document.dir==="rtl"?(Ce=on-Ie.width-Ie.left,Ae=ue<=480?10:30):(Ae=Ie.left,Ce=ue<=480?10:30),ce=Ae+Ce)}if(It&&typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()){var ze=It.getBoundingClientRect();window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionRight"?(ce=40,Te=0):window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionTop"&&(ce=0,Te=40)}}return It&&((Mt===void 0||!Mt)&&dt>0&&dt+ce<on?on=dt:on-=ce,typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()&&(Mt===void 0||!Mt)&&(et-=Te)),{width:on,height:et}}function Me(It,dt,Mt,an,qt){if(It.isScreenshoGenerator)return 1;var nt=an!==void 0&&an,ln=It.noScaleMargin!=null&&It.noScaleMargin,rn=function(ze){return ze&&ze!=="false"},on=rn(It.autoHeight),et=je(dt,It.width,Mt,on,nt&&window.GGBT_wsf_view||ln,qt),ue=parseInt(et.width),ce=It.width,Ce=It.height;if(ce===void 0){var Ae=dt.querySelector(".appletParameters");Ae&&(ce=Ae.offsetWidth,Ce=Ae.offsetHeight)}var Te=ue/ce,Ie=nt?1:et.height/Ce;return Mt!==void 0&&!Mt&&(Te=Math.min(1,Te),Ie=Math.min(1,Ie)),Math.min(Te,Ie)}function yt(It,dt,Mt){var an=1,qt,nt=!1;if(It.hasOwnProperty("allowUpscale")&&(nt=It.allowUpscale),It.hasOwnProperty("scale")&&(an=parseFloat(It.scale),(isNaN(an)||an===null||an===0)&&(an=1),an>1&&(nt=!0)),dt&&typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()&&(nt=!0),!(It.hasOwnProperty("disableAutoScale")&&It.disableAutoScale))qt=Me(It,dt,nt,Mt,It.scaleContainerClass);else return an;return nt&&(!It.hasOwnProperty("scale")||an===1)?qt:Math.min(an,qt)}function Jt(It){var dt=Math.min(window.innerWidth,document.documentElement.clientWidth),Mt=Math.min(window.innerHeight,document.documentElement.clientHeight),an=It.getBoundingClientRect(),qt=(dt-an.width)/2,nt=(Mt-an.height)/2;nt<0&&(nt=0),It.style.position="relative",window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionRight"?(qt<40?It.style.left="40px":It.style.left=qt+"px",It.style.top=nt+"px"):window.GGBT_wsf_view.getCloseBtnPosition()==="closePositionTop"&&(nt<40?It.style.top="40px":It.style.top=nt+"px",It.style.left=qt+"px")}function Qt(It,dt){var Mt=It.querySelector(".appletParameters");if(Mt){if(typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()){if(dt.id!==Mt.getAttribute("data-param-id"))return;window.GGBT_wsf_view.setCloseBtnPosition(It)}if(Mt.parentElement&&/fullscreen/.test(Mt.parentElement.className))return;var an=yt(dt,It);Cn()&&Mt.setAttribute("data-param-scale",an);for(var qt=null,nt=0;nt<It.childNodes.length;nt++)if(It.childNodes[nt].className!==void 0&&It.childNodes[nt].className.match(/^applet_scaler/)){qt=It.childNodes[nt];break}if(qt!==null&&qt.querySelector(".noscale")!==null)return;var ln=dt.id!==void 0?dt.id:"ggbApplet",rn=window[ln];(rn==null||!rn.recalculateEnvironments)&&qt!==null&&!qt.className.match(/fullscreen/)&&(qt.parentNode.style.transform="",!isNaN(an)&&an!==1?(qt.parentNode.style.width=dt.width*an+"px",qt.parentNode.style.height=dt.height*an+"px",Ei(qt,an)):(Ei(qt,1),qt.parentNode.style.width=dt.width+"px",qt.parentNode.style.height=dt.height+"px")),typeof window.GGBT_wsf_view=="object"&&window.GGBT_wsf_view.isFullscreen()&&Jt(It),window.GGBT_wsf_view&&!window.GGBT_wsf_view.isFullscreen()&&window.GGBT_wsf_general.adjustContentToResize($(Mt).parents(".content-added-content"))}}return{responsiveResize:Qt,isFlexibleWorksheetEditor:Cn,positionCenter:Jt,getScale:yt,scaleElement:Ei}}();__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_RESULT__=function(){return GGBApplet}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__),__WEBPACK_AMD_DEFINE_RESULT__!==void 0&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__),GGBAppletUtils.makeModule=function(name,permutation){function webModule(){var H="bootstrap",I="begin",J="gwt.codesvr."+name+"=",K="gwt.codesvr=",L=name,M="startup",N="DUMMY",O=0,P=1,Q="iframe",R="position:absolute; width:0; height:0; border:none; left: -1000px;",S=" top: -1000px;",T="Chrome",U="CSS1Compat",V="<!doctype html>",W="",X="<html><head></head><body></body></html>",Y="undefined",Z="readystatechange",$=10,_="script",ab="javascript",bb="Failed to load ",cb="moduleStartup",db="scriptTagAdded",eb="moduleRequested",fb="meta",gb="name",hb=name+"::",ib="::",jb="gwt:property",kb="content",lb="=",mb="gwt:onPropertyErrorFn",nb='Bad handler "',ob='" for "gwt:onPropertyErrorFn"',pb="gwt:onLoadErrorFn",qb='" for "gwt:onLoadErrorFn"',rb="#",sb="?",tb="/",ub="img",vb="clear.cache.gif",wb="baseUrl",xb=name+".nocache.js",yb="base",zb="//",Ab="selectingPermutation",Bb=name+".devmode.js",Cb=permutation,Db=":",Eb=".cache.js",Fb="loadExternalRefs",Gb="end",n=window,o=document;function p(){var Cn=n.location.search;return Cn.indexOf(J)!=-1||Cn.indexOf(K)!=-1}function q(Cn,Ei){}webModule.__sendStats=q,webModule.__moduleName=L,webModule.__errFn=null,webModule.__moduleBase=N,webModule.__softPermutationId=O,webModule.__computePropValue=null,webModule.__getPropMap=null,webModule.__installRunAsyncCode=function(){},webModule.__gwtStartLoadingFragment=function(){return null},webModule.__gwt_isKnownPropertyValue=function(){return!1},webModule.__gwt_getMetaProperty=function(){return null};var r=null,s=n.__gwt_activeModules=n.__gwt_activeModules||{};s[L]={moduleName:L},webModule.__moduleStartupDone=function(Cn){var Ei=s[L].bindings;s[L].bindings=function(){for(var je=Ei?Ei():{},Me=Cn[webModule.__softPermutationId],yt=O;yt<Me.length;yt++){var Jt=Me[yt];je[Jt[O]]=Jt[P]}return je}};var t;function u(){return v(),t}function v(){if(!t){var Cn=o.createElement(Q);if(Cn.id=L,Cn.style.cssText=R+S,Cn.tabIndex=-1,o.body.appendChild(Cn),t=Cn.contentWindow.document,navigator.userAgent.indexOf(T)==-1){t.open();var Ei=document.compatMode==U?V:W;t.write(Ei+X),t.close()}}}function w(Cn){function Ei(Me){function yt(){return typeof o.readyState==Y?typeof o.body!=Y&&o.body!=null:/loaded|complete/.test(o.readyState)}var Jt=yt();if(Jt){Me();return}function Qt(){if(!Jt){if(!yt())return;Jt=!0,Me(),o.removeEventListener&&o.removeEventListener(Z,Qt,!1),It&&clearInterval(It)}}o.addEventListener&&o.addEventListener(Z,Qt,!1);var It=setInterval(function(){Qt()},$)}function je(Me){var yt=u(),Jt=yt.body,Qt=yt.createElement(_);Qt.language=ab,Qt.crossOrigin=W,Qt.src=Me,webModule.__errFn&&(Qt.onerror=function(){webModule.__errFn(L,new Error(bb+Me))}),Jt.appendChild(Qt)}Ei(function(){je(Cn)})}webModule.__startLoadingFragment=function(Cn){return C(Cn)},webModule.__installRunAsyncCode=function(Cn){var Ei=u(),je=Ei.body,Me=Ei.createElement(_);Me.language=ab,Me.text=Cn,je.appendChild(Me),je.removeChild(Me)};function A(){for(var c={},d,e,f=o.getElementsByTagName(fb),g=O,h=f.length;g<h;++g){var i=f[g],j=i.getAttribute(gb),k;if(j){if(j=j.replace(hb,W),j.indexOf(ib)>=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(Cn){alert(nb+k+ob)}}else if(j==pb&&(k=i.getAttribute(kb),k))try{e=eval(k)}catch(Cn){alert(nb+k+qb)}}}__gwt_getMetaProperty=function(Cn){var Ei=c[Cn];return Ei==null?null:Ei},r=d,webModule.__errFn=e}function B(){function Cn(It){var dt=It.lastIndexOf(rb);dt==-1&&(dt=It.length);var Mt=It.indexOf(sb);Mt==-1&&(Mt=It.length);var an=It.lastIndexOf(tb,Math.min(Mt,dt));return an>=O?It.substring(O,an+P):W}function Ei(It){if(!It.match(/^\w+:\/\//)){var dt=o.createElement(ub);dt.src=It+vb,It=Cn(dt.src)}return It}function je(){var It=__gwt_getMetaProperty(wb);return It!=null?It:W}function Me(){for(var It=o.getElementsByTagName(_),dt=O;dt<It.length;++dt)if(It[dt].src.indexOf(xb)!=-1)return Cn(It[dt].src);return W}function yt(){var It=o.getElementsByTagName(yb);return It.length>O?It[It.length-P].href:W}function Jt(){var It=o.location;return It.href==It.protocol+zb+It.host+It.pathname+It.search+It.hash}var Qt=je();return Qt==W&&(Qt=Me()),Qt==W&&(Qt=yt()),Qt==W&&Jt()&&(Qt=Cn(o.location.href)),Qt=Ei(Qt),Qt}function C(Cn){return Cn.match(/^\//)||Cn.match(/^[a-zA-Z]+:\/\//)?Cn:webModule.__moduleBase+Cn}function D(){var Cn=[],Ei=O,je=[],Me=[];function yt(It){var dt=Me[It](),Mt=je[It];if(dt in Mt)return dt;var an=[];for(var qt in Mt)an[Mt[qt]]=qt;throw r&&r(It,an,dt),null}if(__gwt_isKnownPropertyValue=function(It,dt){return dt in je[It]},webModule.__getPropMap=function(){var It={};for(var dt in je)je.hasOwnProperty(dt)&&(It[dt]=yt(dt));return It},webModule.__computePropValue=yt,n.__gwt_activeModules[L].bindings=webModule.__getPropMap,p())return C(Bb);var Jt;try{Jt=Cb;var Qt=Jt.indexOf(Db);Qt!=-1&&(Ei=parseInt(Jt.substring(Qt+P),$),Jt=Jt.substring(O,Qt))}catch(It){}return webModule.__softPermutationId=Ei,C(Jt+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})()},56336:function(Cn,Ei){var je=(Me,yt,Jt)=>new Promise((Qt,It)=>{var dt=qt=>{try{an(Jt.next(qt))}catch(nt){It(nt)}},Mt=qt=>{try{an(Jt.throw(qt))}catch(nt){It(nt)}},an=qt=>qt.done?Qt(qt.value):Promise.resolve(qt.value).then(dt,Mt);an((Jt=Jt.apply(Me,yt)).next())});(function(Me,yt){yt(Ei)})(this,function(Me){"use strict";var yt={value:()=>{}};function Jt(){for(var Fe,He=0,Qe=arguments.length,ot={};He<Qe;++He){if(!(Fe=arguments[He]+"")||Fe in ot||/[\s.]/.test(Fe))throw new Error("illegal type: "+Fe);ot[Fe]=[]}return new Qt(ot)}function Qt(Fe){this._=Fe}function It(Fe,He){return Fe.trim().split(/^|\s+/).map(function(Qe){var ot="",vt=Qe.indexOf(".");if(vt>=0&&(ot=Qe.slice(vt+1),Qe=Qe.slice(0,vt)),Qe&&!He.hasOwnProperty(Qe))throw new Error("unknown type: "+Qe);return{type:Qe,name:ot}})}function dt(Fe,He){for(var Qe,ot=0,vt=Fe.length;ot<vt;++ot)if((Qe=Fe[ot]).name===He)return Qe.value}function Mt(Fe,He,Qe){for(var ot=0,vt=Fe.length;ot<vt;++ot)if(Fe[ot].name===He){Fe[ot]=yt,Fe=Fe.slice(0,ot).concat(Fe.slice(ot+1));break}return Qe!=null&&Fe.push({name:He,value:Qe}),Fe}Qt.prototype=Jt.prototype={constructor:Qt,on:function(Fe,He){var Qe,ot=this._,vt=It(Fe+"",ot),bt=-1,Ot=vt.length;if(!(arguments.length<2)){if(He!=null&&typeof He!="function")throw new Error("invalid callback: "+He);for(;++bt<Ot;)if(Qe=(Fe=vt[bt]).type)ot[Qe]=Mt(ot[Qe],Fe.name,He);else if(He==null)for(Qe in ot)ot[Qe]=Mt(ot[Qe],Fe.name,null);return this}for(;++bt<Ot;)if((Qe=(Fe=vt[bt]).type)&&(Qe=dt(ot[Qe],Fe.name)))return Qe},copy:function(){var Fe={},He=this._;for(var Qe in He)Fe[Qe]=He[Qe].slice();return new Qt(Fe)},call:function(Fe,He){if((Qe=arguments.length-2)>0)for(var Qe,ot,vt=new Array(Qe),bt=0;bt<Qe;++bt)vt[bt]=arguments[bt+2];if(!this._.hasOwnProperty(Fe))throw new Error("unknown type: "+Fe);for(bt=0,Qe=(ot=this._[Fe]).length;bt<Qe;++bt)ot[bt].value.apply(He,vt)},apply:function(Fe,He,Qe){if(!this._.hasOwnProperty(Fe))throw new Error("unknown type: "+Fe);for(var ot=this._[Fe],vt=0,bt=ot.length;vt<bt;++vt)ot[vt].value.apply(He,Qe)}};var an="http://www.w3.org/1999/xhtml",qt={svg:"http://www.w3.org/2000/svg",xhtml:an,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function nt(Fe){var He=Fe+="",Qe=He.indexOf(":");return Qe>=0&&(He=Fe.slice(0,Qe))!=="xmlns"&&(Fe=Fe.slice(Qe+1)),qt.hasOwnProperty(He)?{space:qt[He],local:Fe}:Fe}function ln(Fe){return function(){var He=this.ownerDocument,Qe=this.namespaceURI;return Qe===an&&He.documentElement.namespaceURI===an?He.createElement(Fe):He.createElementNS(Qe,Fe)}}function rn(Fe){return function(){return this.ownerDocument.createElementNS(Fe.space,Fe.local)}}function on(Fe){var He=nt(Fe);return(He.local?rn:ln)(He)}function et(){}function ue(Fe){return Fe==null?et:function(){return this.querySelector(Fe)}}function ce(Fe){return Fe==null?[]:Array.isArray(Fe)?Fe:Array.from(Fe)}function Ce(){return[]}function Ae(Fe){return Fe==null?Ce:function(){return this.querySelectorAll(Fe)}}function Te(Fe){return function(){return this.matches(Fe)}}function Ie(Fe){return function(He){return He.matches(Fe)}}var ze=Array.prototype.find;function Ye(){return this.firstElementChild}var lt=Array.prototype.filter;function Bt(){return Array.from(this.children)}function kt(Fe){return new Array(Fe.length)}function xt(Fe,He){this.ownerDocument=Fe.ownerDocument,this.namespaceURI=Fe.namespaceURI,this._next=null,this._parent=Fe,this.__data__=He}function Et(Fe){return function(){return Fe}}function $t(Fe,He,Qe,ot,vt,bt){for(var Ot,wt=0,dn=He.length,Vt=bt.length;wt<Vt;++wt)(Ot=He[wt])?(Ot.__data__=bt[wt],ot[wt]=Ot):Qe[wt]=new xt(Fe,bt[wt]);for(;wt<dn;++wt)(Ot=He[wt])&&(vt[wt]=Ot)}function Zt(Fe,He,Qe,ot,vt,bt,Ot){var wt,dn,Vt,Wt=new Map,Bn=He.length,Wn=bt.length,Gi=new Array(Bn);for(wt=0;wt<Bn;++wt)(dn=He[wt])&&(Gi[wt]=Vt=Ot.call(dn,dn.__data__,wt,He)+"",Wt.has(Vt)?vt[wt]=dn:Wt.set(Vt,dn));for(wt=0;wt<Wn;++wt)Vt=Ot.call(Fe,bt[wt],wt,bt)+"",(dn=Wt.get(Vt))?(ot[wt]=dn,dn.__data__=bt[wt],Wt.delete(Vt)):Qe[wt]=new xt(Fe,bt[wt]);for(wt=0;wt<Bn;++wt)(dn=He[wt])&&Wt.get(Gi[wt])===dn&&(vt[wt]=dn)}function Yn(Fe){return Fe.__data__}function gn(Fe){return typeof Fe=="object"&&"length"in Fe?Fe:Array.from(Fe)}function Jn(Fe,He){return Fe<He?-1:Fe>He?1:Fe>=He?0:NaN}function ci(Fe){return function(){this.removeAttribute(Fe)}}function Xn(Fe){return function(){this.removeAttributeNS(Fe.space,Fe.local)}}function In(Fe,He){return function(){this.setAttribute(Fe,He)}}function hi(Fe,He){return function(){this.setAttributeNS(Fe.space,Fe.local,He)}}function Ht(Fe,He){return function(){var Qe=He.apply(this,arguments);Qe==null?this.removeAttribute(Fe):this.setAttribute(Fe,Qe)}}function At(Fe,He){return function(){var Qe=He.apply(this,arguments);Qe==null?this.removeAttributeNS(Fe.space,Fe.local):this.setAttributeNS(Fe.space,Fe.local,Qe)}}function Hn(Fe){return Fe.ownerDocument&&Fe.ownerDocument.defaultView||Fe.document&&Fe||Fe.defaultView}function _i(Fe){return function(){this.style.removeProperty(Fe)}}function dr(Fe,He,Qe){return function(){this.style.setProperty(Fe,He,Qe)}}function En(Fe,He,Qe){return function(){var ot=He.apply(this,arguments);ot==null?this.style.removeProperty(Fe):this.style.setProperty(Fe,ot,Qe)}}function Mn(Fe,He){return Fe.style.getPropertyValue(He)||Hn(Fe).getComputedStyle(Fe,null).getPropertyValue(He)}function Ln(Fe){return function(){delete this[Fe]}}function Mi(Fe,He){return function(){this[Fe]=He}}function Rt(Fe,He){return function(){var Qe=He.apply(this,arguments);Qe==null?delete this[Fe]:this[Fe]=Qe}}function ni(Fe){return Fe.trim().split(/^|\s+/)}function en(Fe){return Fe.classList||new Ti(Fe)}function Ti(Fe){this._node=Fe,this._names=ni(Fe.getAttribute("class")||"")}function Lr(Fe,He){for(var Qe=en(Fe),ot=-1,vt=He.length;++ot<vt;)Qe.add(He[ot])}function Tt(Fe,He){for(var Qe=en(Fe),ot=-1,vt=He.length;++ot<vt;)Qe.remove(He[ot])}function Ze(Fe){return function(){Lr(this,Fe)}}function Ge(Fe){return function(){Tt(this,Fe)}}function rt(Fe,He){return function(){(He.apply(this,arguments)?Lr:Tt)(this,Fe)}}function Ft(){this.textContent=""}function qe(Fe){return function(){this.textContent=Fe}}function mt(Fe){return function(){var He=Fe.apply(this,arguments);this.textContent=He==null?"":He}}function An(){this.innerHTML=""}function Gn(Fe){return function(){this.innerHTML=Fe}}function fo(Fe){return function(){var He=Fe.apply(this,arguments);this.innerHTML=He==null?"":He}}function qn(){this.nextSibling&&this.parentNode.appendChild(this)}function Kn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function oi(){return null}function Wi(){var Fe=this.parentNode;Fe&&Fe.removeChild(this)}function Nr(){var Fe=this.cloneNode(!1),He=this.parentNode;return He?He.insertBefore(Fe,this.nextSibling):Fe}function Uo(){var Fe=this.cloneNode(!0),He=this.parentNode;return He?He.insertBefore(Fe,this.nextSibling):Fe}function Vr(Fe){return Fe.trim().split(/^|\s+/).map(function(He){var Qe="",ot=He.indexOf(".");return ot>=0&&(Qe=He.slice(ot+1),He=He.slice(0,ot)),{type:He,name:Qe}})}function lo(Fe){return function(){var He=this.__on;if(He){for(var Qe,ot=0,vt=-1,bt=He.length;ot<bt;++ot)Qe=He[ot],Fe.type&&Qe.type!==Fe.type||Qe.name!==Fe.name?He[++vt]=Qe:this.removeEventListener(Qe.type,Qe.listener,Qe.options);++vt?He.length=vt:delete this.__on}}}function Rn(Fe,He,Qe){return function(){var ot,vt=this.__on,bt=function(dn){return function(Vt){dn.call(this,Vt,this.__data__)}}(He);if(vt){for(var Ot=0,wt=vt.length;Ot<wt;++Ot)if((ot=vt[Ot]).type===Fe.type&&ot.name===Fe.name)return this.removeEventListener(ot.type,ot.listener,ot.options),this.addEventListener(ot.type,ot.listener=bt,ot.options=Qe),void(ot.value=He)}this.addEventListener(Fe.type,bt,Qe),ot={type:Fe.type,name:Fe.name,value:He,listener:bt,options:Qe},vt?vt.push(ot):this.__on=[ot]}}function $n(Fe,He,Qe){var ot=Hn(Fe),vt=ot.CustomEvent;typeof vt=="function"?vt=new vt(He,Qe):(vt=ot.document.createEvent("Event"),Qe?(vt.initEvent(He,Qe.bubbles,Qe.cancelable),vt.detail=Qe.detail):vt.initEvent(He,!1,!1)),Fe.dispatchEvent(vt)}function pi(Fe,He){return function(){return $n(this,Fe,He)}}function Ai(Fe,He){return function(){return $n(this,Fe,He.apply(this,arguments))}}xt.prototype={constructor:xt,appendChild:function(Fe){return this._parent.insertBefore(Fe,this._next)},insertBefore:function(Fe,He){return this._parent.insertBefore(Fe,He)},querySelector:function(Fe){return this._parent.querySelector(Fe)},querySelectorAll:function(Fe){return this._parent.querySelectorAll(Fe)}},Ti.prototype={add:function(Fe){this._names.indexOf(Fe)<0&&(this._names.push(Fe),this._node.setAttribute("class",this._names.join(" ")))},remove:function(Fe){var He=this._names.indexOf(Fe);He>=0&&(this._names.splice(He,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(Fe){return this._names.indexOf(Fe)>=0}};var Cr=[null];function zr(Fe,He){this._groups=Fe,this._parents=He}function ao(){return new zr([[document.documentElement]],Cr)}function Wr(Fe){return typeof Fe=="string"?new zr([[document.querySelector(Fe)]],[document.documentElement]):new zr([[Fe]],Cr)}function Or(Fe,He){if(Fe=function(bt){let Ot;for(;Ot=bt.sourceEvent;)bt=Ot;return bt}(Fe),He===void 0&&(He=Fe.currentTarget),He){var Qe=He.ownerSVGElement||He;if(Qe.createSVGPoint){var ot=Qe.createSVGPoint();return ot.x=Fe.clientX,ot.y=Fe.clientY,[(ot=ot.matrixTransform(He.getScreenCTM().inverse())).x,ot.y]}if(He.getBoundingClientRect){var vt=He.getBoundingClientRect();return[Fe.clientX-vt.left-He.clientLeft,Fe.clientY-vt.top-He.clientTop]}}return[Fe.pageX,Fe.pageY]}zr.prototype=ao.prototype={constructor:zr,select:function(Fe){typeof Fe!="function"&&(Fe=ue(Fe));for(var He=this._groups,Qe=He.length,ot=new Array(Qe),vt=0;vt<Qe;++vt)for(var bt,Ot,wt=He[vt],dn=wt.length,Vt=ot[vt]=new Array(dn),Wt=0;Wt<dn;++Wt)(bt=wt[Wt])&&(Ot=Fe.call(bt,bt.__data__,Wt,wt))&&("__data__"in bt&&(Ot.__data__=bt.__data__),Vt[Wt]=Ot);return new zr(ot,this._parents)},selectAll:function(Fe){Fe=typeof Fe=="function"?function(Wt){return function(){return ce(Wt.apply(this,arguments))}}(Fe):Ae(Fe);for(var He=this._groups,Qe=He.length,ot=[],vt=[],bt=0;bt<Qe;++bt)for(var Ot,wt=He[bt],dn=wt.length,Vt=0;Vt<dn;++Vt)(Ot=wt[Vt])&&(ot.push(Fe.call(Ot,Ot.__data__,Vt,wt)),vt.push(Ot));return new zr(ot,vt)},selectChild:function(Fe){return this.select(Fe==null?Ye:function(He){return function(){return ze.call(this.children,He)}}(typeof Fe=="function"?Fe:Ie(Fe)))},selectChildren:function(Fe){return this.selectAll(Fe==null?Bt:function(He){return function(){return lt.call(this.children,He)}}(typeof Fe=="function"?Fe:Ie(Fe)))},filter:function(Fe){typeof Fe!="function"&&(Fe=Te(Fe));for(var He=this._groups,Qe=He.length,ot=new Array(Qe),vt=0;vt<Qe;++vt)for(var bt,Ot=He[vt],wt=Ot.length,dn=ot[vt]=[],Vt=0;Vt<wt;++Vt)(bt=Ot[Vt])&&Fe.call(bt,bt.__data__,Vt,Ot)&&dn.push(bt);return new zr(ot,this._parents)},data:function(Fe,He){if(!arguments.length)return Array.from(this,Yn);var Qe=He?Zt:$t,ot=this._parents,vt=this._groups;typeof Fe!="function"&&(Fe=Et(Fe));for(var bt=vt.length,Ot=new Array(bt),wt=new Array(bt),dn=new Array(bt),Vt=0;Vt<bt;++Vt){var Wt=ot[Vt],Bn=vt[Vt],Wn=Bn.length,Gi=gn(Fe.call(Wt,Wt&&Wt.__data__,Vt,ot)),bi=Gi.length,fi=wt[Vt]=new Array(bi),Fi=Ot[Vt]=new Array(bi),Tr=dn[Vt]=new Array(Wn);Qe(Wt,Bn,fi,Fi,Tr,Gi,He);for(var rr,to,Io=0,ks=0;Io<bi;++Io)if(rr=fi[Io]){for(Io>=ks&&(ks=Io+1);!(to=Fi[ks])&&++ks<bi;);rr._next=to||null}}return(Ot=new zr(Ot,ot))._enter=wt,Ot._exit=dn,Ot},enter:function(){return new zr(this._enter||this._groups.map(kt),this._parents)},exit:function(){return new zr(this._exit||this._groups.map(kt),this._parents)},join:function(Fe,He,Qe){var ot=this.enter(),vt=this,bt=this.exit();return typeof Fe=="function"?(ot=Fe(ot))&&(ot=ot.selection()):ot=ot.append(Fe+""),He!=null&&(vt=He(vt))&&(vt=vt.selection()),Qe==null?bt.remove():Qe(bt),ot&&vt?ot.merge(vt).order():vt},merge:function(Fe){for(var He=Fe.selection?Fe.selection():Fe,Qe=this._groups,ot=He._groups,vt=Qe.length,bt=ot.length,Ot=Math.min(vt,bt),wt=new Array(vt),dn=0;dn<Ot;++dn)for(var Vt,Wt=Qe[dn],Bn=ot[dn],Wn=Wt.length,Gi=wt[dn]=new Array(Wn),bi=0;bi<Wn;++bi)(Vt=Wt[bi]||Bn[bi])&&(Gi[bi]=Vt);for(;dn<vt;++dn)wt[dn]=Qe[dn];return new zr(wt,this._parents)},selection:function(){return this},order:function(){for(var Fe=this._groups,He=-1,Qe=Fe.length;++He<Qe;)for(var ot,vt=Fe[He],bt=vt.length-1,Ot=vt[bt];--bt>=0;)(ot=vt[bt])&&(Ot&&4^ot.compareDocumentPosition(Ot)&&Ot.parentNode.insertBefore(ot,Ot),Ot=ot);return this},sort:function(Fe){function He(Bn,Wn){return Bn&&Wn?Fe(Bn.__data__,Wn.__data__):!Bn-!Wn}Fe||(Fe=Jn);for(var Qe=this._groups,ot=Qe.length,vt=new Array(ot),bt=0;bt<ot;++bt){for(var Ot,wt=Qe[bt],dn=wt.length,Vt=vt[bt]=new Array(dn),Wt=0;Wt<dn;++Wt)(Ot=wt[Wt])&&(Vt[Wt]=Ot);Vt.sort(He)}return new zr(vt,this._parents).order()},call:function(){var Fe=arguments[0];return arguments[0]=this,Fe.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var Fe=this._groups,He=0,Qe=Fe.length;He<Qe;++He)for(var ot=Fe[He],vt=0,bt=ot.length;vt<bt;++vt){var Ot=ot[vt];if(Ot)return Ot}return null},size:function(){let Fe=0;for(const He of this)++Fe;return Fe},empty:function(){return!this.node()},each:function(Fe){for(var He=this._groups,Qe=0,ot=He.length;Qe<ot;++Qe)for(var vt,bt=He[Qe],Ot=0,wt=bt.length;Ot<wt;++Ot)(vt=bt[Ot])&&Fe.call(vt,vt.__data__,Ot,bt);return this},attr:function(Fe,He){var Qe=nt(Fe);if(arguments.length<2){var ot=this.node();return Qe.local?ot.getAttributeNS(Qe.space,Qe.local):ot.getAttribute(Qe)}return this.each((He==null?Qe.local?Xn:ci:typeof He=="function"?Qe.local?At:Ht:Qe.local?hi:In)(Qe,He))},style:function(Fe,He,Qe){return arguments.length>1?this.each((He==null?_i:typeof He=="function"?En:dr)(Fe,He,Qe==null?"":Qe)):Mn(this.node(),Fe)},property:function(Fe,He){return arguments.length>1?this.each((He==null?Ln:typeof He=="function"?Rt:Mi)(Fe,He)):this.node()[Fe]},classed:function(Fe,He){var Qe=ni(Fe+"");if(arguments.length<2){for(var ot=en(this.node()),vt=-1,bt=Qe.length;++vt<bt;)if(!ot.contains(Qe[vt]))return!1;return!0}return this.each((typeof He=="function"?rt:He?Ze:Ge)(Qe,He))},text:function(Fe){return arguments.length?this.each(Fe==null?Ft:(typeof Fe=="function"?mt:qe)(Fe)):this.node().textContent},html:function(Fe){return arguments.length?this.each(Fe==null?An:(typeof Fe=="function"?fo:Gn)(Fe)):this.node().innerHTML},raise:function(){return this.each(qn)},lower:function(){return this.each(Kn)},append:function(Fe){var He=typeof Fe=="function"?Fe:on(Fe);return this.select(function(){return this.appendChild(He.apply(this,arguments))})},insert:function(Fe,He){var Qe=typeof Fe=="function"?Fe:on(Fe),ot=He==null?oi:typeof He=="function"?He:ue(He);return this.select(function(){return this.insertBefore(Qe.apply(this,arguments),ot.apply(this,arguments)||null)})},remove:function(){return this.each(Wi)},clone:function(Fe){return this.select(Fe?Uo:Nr)},datum:function(Fe){return arguments.length?this.property("__data__",Fe):this.node().__data__},on:function(Fe,He,Qe){var ot,vt,bt=Vr(Fe+""),Ot=bt.length;if(!(arguments.length<2)){for(wt=He?Rn:lo,ot=0;ot<Ot;++ot)this.each(wt(bt[ot],He,Qe));return this}var wt=this.node().__on;if(wt){for(var dn,Vt=0,Wt=wt.length;Vt<Wt;++Vt)for(ot=0,dn=wt[Vt];ot<Ot;++ot)if((vt=bt[ot]).type===dn.type&&vt.name===dn.name)return dn.value}},dispatch:function(Fe,He){return this.each((typeof He=="function"?Ai:pi)(Fe,He))},[Symbol.iterator]:function*(){for(var Fe=this._groups,He=0,Qe=Fe.length;He<Qe;++He)for(var ot,vt=Fe[He],bt=0,Ot=vt.length;bt<Ot;++bt)(ot=vt[bt])&&(yield ot)}};const ir={passive:!1},ss={capture:!0,passive:!1};function Us(Fe){Fe.stopImmediatePropagation()}function as(Fe){Fe.preventDefault(),Fe.stopImmediatePropagation()}function ls(Fe){var He=Fe.document.documentElement,Qe=Wr(Fe).on("dragstart.drag",as,ss);"onselectstart"in He?Qe.on("selectstart.drag",as,ss):(He.__noselect=He.style.MozUserSelect,He.style.MozUserSelect="none")}function La(Fe,He){var Qe=Fe.document.documentElement,ot=Wr(Fe).on("dragstart.drag",null);He&&(ot.on("click.drag",as,ss),setTimeout(function(){ot.on("click.drag",null)},0)),"onselectstart"in Qe?ot.on("selectstart.drag",null):(Qe.style.MozUserSelect=Qe.__noselect,delete Qe.__noselect)}var Fs=Fe=>()=>Fe;function ha(Fe,{sourceEvent:He,subject:Qe,target:ot,identifier:vt,active:bt,x:Ot,y:wt,dx:dn,dy:Vt,dispatch:Wt}){Object.defineProperties(this,{type:{value:Fe,enumerable:!0,configurable:!0},sourceEvent:{value:He,enumerable:!0,configurable:!0},subject:{value:Qe,enumerable:!0,configurable:!0},target:{value:ot,enumerable:!0,configurable:!0},identifier:{value:vt,enumerable:!0,configurable:!0},active:{value:bt,enumerable:!0,configurable:!0},x:{value:Ot,enumerable:!0,configurable:!0},y:{value:wt,enumerable:!0,configurable:!0},dx:{value:dn,enumerable:!0,configurable:!0},dy:{value:Vt,enumerable:!0,configurable:!0},_:{value:Wt}})}function Al(Fe){return!Fe.ctrlKey&&!Fe.button}function We(){return this.parentNode}function ui(Fe,He){return He==null?{x:Fe.x,y:Fe.y}:He}function Si(){return navigator.maxTouchPoints||"ontouchstart"in this}function ms(Fe,He,Qe){Fe.prototype=He.prototype=Qe,Qe.constructor=Fe}function Po(Fe,He){var Qe=Object.create(Fe.prototype);for(var ot in He)Qe[ot]=He[ot];return Qe}function Xr(){}ha.prototype.on=function(){var Fe=this._.on.apply(this._,arguments);return Fe===this._?this:Fe};var si=.7,Hi=1/si,or="\\s*([+-]?\\d+)\\s*",Fn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",vn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",pn=/^#([0-9a-f]{3,8})$/,Ur=new RegExp(`^rgb\\(${or},${or},${or}\\)$`),Ho=new RegExp(`^rgb\\(${vn},${vn},${vn}\\)$`),bo=new RegExp(`^rgba\\(${or},${or},${or},${Fn}\\)$`),ji=new RegExp(`^rgba\\(${vn},${vn},${vn},${Fn}\\)$`),co=new RegExp(`^hsl\\(${Fn},${vn},${vn}\\)$`),Oa=new RegExp(`^hsla\\(${Fn},${vn},${vn},${Fn}\\)$`),aa={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function pa(){return this.rgb().formatHex()}function hn(){return this.rgb().formatRgb()}function Ar(Fe){var He,Qe;return Fe=(Fe+"").trim().toLowerCase(),(He=pn.exec(Fe))?(Qe=He[1].length,He=parseInt(He[1],16),Qe===6?Xo(He):Qe===3?new wa(He>>8&15|He>>4&240,He>>4&15|240&He,(15&He)<<4|15&He,1):Qe===8?al(He>>24&255,He>>16&255,He>>8&255,(255&He)/255):Qe===4?al(He>>12&15|He>>8&240,He>>8&15|He>>4&240,He>>4&15|240&He,((15&He)<<4|15&He)/255):null):(He=Ur.exec(Fe))?new wa(He[1],He[2],He[3],1):(He=Ho.exec(Fe))?new wa(255*He[1]/100,255*He[2]/100,255*He[3]/100,1):(He=bo.exec(Fe))?al(He[1],He[2],He[3],He[4]):(He=ji.exec(Fe))?al(255*He[1]/100,255*He[2]/100,255*He[3]/100,He[4]):(He=co.exec(Fe))?da(He[1],He[2]/100,He[3]/100,1):(He=Oa.exec(Fe))?da(He[1],He[2]/100,He[3]/100,He[4]):aa.hasOwnProperty(Fe)?Xo(aa[Fe]):Fe==="transparent"?new wa(NaN,NaN,NaN,0):null}function Xo(Fe){return new wa(Fe>>16&255,Fe>>8&255,255&Fe,1)}function al(Fe,He,Qe,ot){return ot<=0&&(Fe=He=Qe=NaN),new wa(Fe,He,Qe,ot)}function Ji(Fe){return Fe instanceof Xr||(Fe=Ar(Fe)),Fe?new wa((Fe=Fe.rgb()).r,Fe.g,Fe.b,Fe.opacity):new wa}function Fo(Fe,He,Qe,ot){return arguments.length===1?Ji(Fe):new wa(Fe,He,Qe,ot==null?1:ot)}function wa(Fe,He,Qe,ot){this.r=+Fe,this.g=+He,this.b=+Qe,this.opacity=+ot}function xl(){return`#${Jo(this.r)}${Jo(this.g)}${Jo(this.b)}`}function Ll(){const Fe=ys(this.opacity);return`${Fe===1?"rgb(":"rgba("}${As(this.r)}, ${As(this.g)}, ${As(this.b)}${Fe===1?")":`, ${Fe})`}`}function ys(Fe){return isNaN(Fe)?1:Math.max(0,Math.min(1,Fe))}function As(Fe){return Math.max(0,Math.min(255,Math.round(Fe)||0))}function Jo(Fe){return((Fe=As(Fe))<16?"0":"")+Fe.toString(16)}function da(Fe,He,Qe,ot){return ot<=0?Fe=He=Qe=NaN:Qe<=0||Qe>=1?Fe=He=NaN:He<=0&&(Fe=NaN),new Sa(Fe,He,Qe,ot)}function us(Fe){if(Fe instanceof Sa)return new Sa(Fe.h,Fe.s,Fe.l,Fe.opacity);if(Fe instanceof Xr||(Fe=Ar(Fe)),!Fe)return new Sa;if(Fe instanceof Sa)return Fe;var He=(Fe=Fe.rgb()).r/255,Qe=Fe.g/255,ot=Fe.b/255,vt=Math.min(He,Qe,ot),bt=Math.max(He,Qe,ot),Ot=NaN,wt=bt-vt,dn=(bt+vt)/2;return wt?(Ot=He===bt?(Qe-ot)/wt+6*(Qe<ot):Qe===bt?(ot-He)/wt+2:(He-Qe)/wt+4,wt/=dn<.5?bt+vt:2-bt-vt,Ot*=60):wt=dn>0&&dn<1?0:Ot,new Sa(Ot,wt,dn,Fe.opacity)}function Sa(Fe,He,Qe,ot){this.h=+Fe,this.s=+He,this.l=+Qe,this.opacity=+ot}function zi(Fe){return(Fe=(Fe||0)%360)<0?Fe+360:Fe}function fc(Fe){return Math.max(0,Math.min(1,Fe||0))}function iu(Fe,He,Qe){return 255*(Fe<60?He+(Qe-He)*Fe/60:Fe<180?Qe:Fe<240?He+(Qe-He)*(240-Fe)/60:He)}ms(Xr,Ar,{copy(Fe){return Object.assign(new this.constructor,this,Fe)},displayable(){return this.rgb().displayable()},hex:pa,formatHex:pa,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return us(this).formatHsl()},formatRgb:hn,toString:hn}),ms(wa,Fo,Po(Xr,{brighter(Fe){return Fe=Fe==null?Hi:Math.pow(Hi,Fe),new wa(this.r*Fe,this.g*Fe,this.b*Fe,this.opacity)},darker(Fe){return Fe=Fe==null?si:Math.pow(si,Fe),new wa(this.r*Fe,this.g*Fe,this.b*Fe,this.opacity)},rgb(){return this},clamp(){return new wa(As(this.r),As(this.g),As(this.b),ys(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:xl,formatHex:xl,formatHex8:function(){return`#${Jo(this.r)}${Jo(this.g)}${Jo(this.b)}${Jo(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Ll,toString:Ll})),ms(Sa,function(Fe,He,Qe,ot){return arguments.length===1?us(Fe):new Sa(Fe,He,Qe,ot==null?1:ot)},Po(Xr,{brighter(Fe){return Fe=Fe==null?Hi:Math.pow(Hi,Fe),new Sa(this.h,this.s,this.l*Fe,this.opacity)},darker(Fe){return Fe=Fe==null?si:Math.pow(si,Fe),new Sa(this.h,this.s,this.l*Fe,this.opacity)},rgb(){var Fe=this.h%360+360*(this.h<0),He=isNaN(Fe)||isNaN(this.s)?0:this.s,Qe=this.l,ot=Qe+(Qe<.5?Qe:1-Qe)*He,vt=2*Qe-ot;return new wa(iu(Fe>=240?Fe-240:Fe+120,vt,ot),iu(Fe,vt,ot),iu(Fe<120?Fe+240:Fe-120,vt,ot),this.opacity)},clamp(){return new Sa(zi(this.h),fc(this.s),fc(this.l),ys(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const Fe=ys(this.opacity);return`${Fe===1?"hsl(":"hsla("}${zi(this.h)}, ${100*fc(this.s)}%, ${100*fc(this.l)}%${Fe===1?")":`, ${Fe})`}`}}));var Gu=Fe=>()=>Fe;function Ni(Fe){return(Fe=+Fe)==1?Lo:function(He,Qe){return Qe-He?function(ot,vt,bt){return ot=Math.pow(ot,bt),vt=Math.pow(vt,bt)-ot,bt=1/bt,function(Ot){return Math.pow(ot+Ot*vt,bt)}}(He,Qe,Fe):Gu(isNaN(He)?Qe:He)}}function Lo(Fe,He){var Qe=He-Fe;return Qe?function(ot,vt){return function(bt){return ot+bt*vt}}(Fe,Qe):Gu(isNaN(Fe)?He:Fe)}var zs=function Fe(He){var Qe=Ni(He);function ot(vt,bt){var Ot=Qe((vt=Fo(vt)).r,(bt=Fo(bt)).r),wt=Qe(vt.g,bt.g),dn=Qe(vt.b,bt.b),Vt=Lo(vt.opacity,bt.opacity);return function(Wt){return vt.r=Ot(Wt),vt.g=wt(Wt),vt.b=dn(Wt),vt.opacity=Vt(Wt),vt+""}}return ot.gamma=Fe,ot}(1);function Fa(Fe,He){He||(He=[]);var Qe,ot=Fe?Math.min(He.length,Fe.length):0,vt=He.slice();return function(bt){for(Qe=0;Qe<ot;++Qe)vt[Qe]=Fe[Qe]*(1-bt)+He[Qe]*bt;return vt}}function Js(Fe,He){var Qe,ot=He?He.length:0,vt=Fe?Math.min(ot,Fe.length):0,bt=new Array(vt),Ot=new Array(ot);for(Qe=0;Qe<vt;++Qe)bt[Qe]=hl(Fe[Qe],He[Qe]);for(;Qe<ot;++Qe)Ot[Qe]=He[Qe];return function(wt){for(Qe=0;Qe<vt;++Qe)Ot[Qe]=bt[Qe](wt);return Ot}}function _s(Fe,He){var Qe=new Date;return Fe=+Fe,He=+He,function(ot){return Qe.setTime(Fe*(1-ot)+He*ot),Qe}}function wl(Fe,He){return Fe=+Fe,He=+He,function(Qe){return Fe*(1-Qe)+He*Qe}}function Sl(Fe,He){var Qe,ot={},vt={};for(Qe in Fe!==null&&typeof Fe=="object"||(Fe={}),He!==null&&typeof He=="object"||(He={}),He)Qe in Fe?ot[Qe]=hl(Fe[Qe],He[Qe]):vt[Qe]=He[Qe];return function(bt){for(Qe in ot)vt[Qe]=ot[Qe](bt);return vt}}var rl=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Il=new RegExp(rl.source,"g");function Zi(Fe,He){var Qe,ot,vt,bt=rl.lastIndex=Il.lastIndex=0,Ot=-1,wt=[],dn=[];for(Fe+="",He+="";(Qe=rl.exec(Fe))&&(ot=Il.exec(He));)(vt=ot.index)>bt&&(vt=He.slice(bt,vt),wt[Ot]?wt[Ot]+=vt:wt[++Ot]=vt),(Qe=Qe[0])===(ot=ot[0])?wt[Ot]?wt[Ot]+=ot:wt[++Ot]=ot:(wt[++Ot]=null,dn.push({i:Ot,x:wl(Qe,ot)})),bt=Il.lastIndex;return bt<He.length&&(vt=He.slice(bt),wt[Ot]?wt[Ot]+=vt:wt[++Ot]=vt),wt.length<2?dn[0]?function(Vt){return function(Wt){return Vt(Wt)+""}}(dn[0].x):function(Vt){return function(){return Vt}}(He):(He=dn.length,function(Vt){for(var Wt,Bn=0;Bn<He;++Bn)wt[(Wt=dn[Bn]).i]=Wt.x(Vt);return wt.join("")})}function hl(Fe,He){var Qe,ot=typeof He;return He==null||ot==="boolean"?Gu(He):(ot==="number"?wl:ot==="string"?(Qe=Ar(He))?(He=Qe,zs):Zi:He instanceof Ar?zs:He instanceof Date?_s:function(vt){return ArrayBuffer.isView(vt)&&!(vt instanceof DataView)}(He)?Fa:Array.isArray(He)?Js:typeof He.valueOf!="function"&&typeof He.toString!="function"||isNaN(He)?Sl:wl)(Fe,He)}var Yi,$o=180/Math.PI,dl={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Pl(Fe,He,Qe,ot,vt,bt){var Ot,wt,dn;return(Ot=Math.sqrt(Fe*Fe+He*He))&&(Fe/=Ot,He/=Ot),(dn=Fe*Qe+He*ot)&&(Qe-=Fe*dn,ot-=He*dn),(wt=Math.sqrt(Qe*Qe+ot*ot))&&(Qe/=wt,ot/=wt,dn/=wt),Fe*ot<He*Qe&&(Fe=-Fe,He=-He,dn=-dn,Ot=-Ot),{translateX:vt,translateY:bt,rotate:Math.atan2(He,Fe)*$o,skewX:Math.atan(dn)*$o,scaleX:Ot,scaleY:wt}}function pc(Fe,He,Qe,ot){function vt(bt){return bt.length?bt.pop()+" ":""}return function(bt,Ot){var wt=[],dn=[];return bt=Fe(bt),Ot=Fe(Ot),function(Vt,Wt,Bn,Wn,Gi,bi){if(Vt!==Bn||Wt!==Wn){var fi=Gi.push("translate(",null,He,null,Qe);bi.push({i:fi-4,x:wl(Vt,Bn)},{i:fi-2,x:wl(Wt,Wn)})}else(Bn||Wn)&&Gi.push("translate("+Bn+He+Wn+Qe)}(bt.translateX,bt.translateY,Ot.translateX,Ot.translateY,wt,dn),function(Vt,Wt,Bn,Wn){Vt!==Wt?(Vt-Wt>180?Wt+=360:Wt-Vt>180&&(Vt+=360),Wn.push({i:Bn.push(vt(Bn)+"rotate(",null,ot)-2,x:wl(Vt,Wt)})):Wt&&Bn.push(vt(Bn)+"rotate("+Wt+ot)}(bt.rotate,Ot.rotate,wt,dn),function(Vt,Wt,Bn,Wn){Vt!==Wt?Wn.push({i:Bn.push(vt(Bn)+"skewX(",null,ot)-2,x:wl(Vt,Wt)}):Wt&&Bn.push(vt(Bn)+"skewX("+Wt+ot)}(bt.skewX,Ot.skewX,wt,dn),function(Vt,Wt,Bn,Wn,Gi,bi){if(Vt!==Bn||Wt!==Wn){var fi=Gi.push(vt(Gi)+"scale(",null,",",null,")");bi.push({i:fi-4,x:wl(Vt,Bn)},{i:fi-2,x:wl(Wt,Wn)})}else Bn===1&&Wn===1||Gi.push(vt(Gi)+"scale("+Bn+","+Wn+")")}(bt.scaleX,bt.scaleY,Ot.scaleX,Ot.scaleY,wt,dn),bt=Ot=null,function(Vt){for(var Wt,Bn=-1,Wn=dn.length;++Bn<Wn;)wt[(Wt=dn[Bn]).i]=Wt.x(Vt);return wt.join("")}}}var pu=pc(function(Fe){const He=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(Fe+"");return He.isIdentity?dl:Pl(He.a,He.b,He.c,He.d,He.e,He.f)},"px, ","px)","deg)"),jl=pc(function(Fe){return Fe==null?dl:(Yi||(Yi=document.createElementNS("http://www.w3.org/2000/svg","g")),Yi.setAttribute("transform",Fe),(Fe=Yi.transform.baseVal.consolidate())?Pl((Fe=Fe.matrix).a,Fe.b,Fe.c,Fe.d,Fe.e,Fe.f):dl)},", ",")",")");function Vu(Fe){return((Fe=Math.exp(Fe))+1/Fe)/2}var Un,xi,kn=function Fe(He,Qe,ot){function vt(bt,Ot){var wt,dn,Vt=bt[0],Wt=bt[1],Bn=bt[2],Wn=Ot[0],Gi=Ot[1],bi=Ot[2],fi=Wn-Vt,Fi=Gi-Wt,Tr=fi*fi+Fi*Fi;if(Tr<1e-12)dn=Math.log(bi/Bn)/He,wt=function(Ss){return[Vt+Ss*fi,Wt+Ss*Fi,Bn*Math.exp(He*Ss*dn)]};else{var rr=Math.sqrt(Tr),to=(bi*bi-Bn*Bn+ot*Tr)/(2*Bn*Qe*rr),Io=(bi*bi-Bn*Bn-ot*Tr)/(2*bi*Qe*rr),ks=Math.log(Math.sqrt(to*to+1)-to),uo=Math.log(Math.sqrt(Io*Io+1)-Io);dn=(uo-ks)/He,wt=function(Ss){var Xs=Ss*dn,ua=Vu(ks),Ao=Bn/(Qe*rr)*(ua*function(Er){return((Er=Math.exp(2*Er))-1)/(Er+1)}(He*Xs+ks)-function(Er){return((Er=Math.exp(Er))-1/Er)/2}(ks));return[Vt+Ao*fi,Wt+Ao*Fi,Bn*ua/Vu(He*Xs+ks)]}}return wt.duration=1e3*dn*He/Math.SQRT2,wt}return vt.rho=function(bt){var Ot=Math.max(.001,+bt),wt=Ot*Ot;return Fe(Ot,wt,wt*wt)},vt}(Math.SQRT2,2,4),it=0,fr=0,xr=0,Rr=0,po=0,ko=0,Bo=typeof performance=="object"&&performance.now?performance:Date,Bs=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(Fe){setTimeout(Fe,17)};function Vo(){return po||(Bs(Co),po=Bo.now()+ko)}function Co(){po=0}function vo(){this._call=this._time=this._next=null}function fs(Fe,He,Qe){var ot=new vo;return ot.restart(Fe,He,Qe),ot}function tt(){po=(Rr=Bo.now())+ko,it=fr=0;try{(function(){Vo(),++it;for(var Fe,He=Un;He;)(Fe=po-He._time)>=0&&He._call.call(void 0,Fe),He=He._next;--it})()}finally{it=0,function(){for(var Fe,He,Qe=Un,ot=1/0;Qe;)Qe._call?(ot>Qe._time&&(ot=Qe._time),Fe=Qe,Qe=Qe._next):(He=Qe._next,Qe._next=null,Qe=Fe?Fe._next=He:Un=He);xi=Fe,Dt(ot)}(),po=0}}function Xt(){var Fe=Bo.now(),He=Fe-Rr;He>1e3&&(ko-=He,Rr=Fe)}function Dt(Fe){it||(fr&&(fr=clearTimeout(fr)),Fe-po>24?(Fe<1/0&&(fr=setTimeout(tt,Fe-Bo.now()-ko)),xr&&(xr=clearInterval(xr))):(xr||(Rr=Bo.now(),xr=setInterval(Xt,1e3)),it=1,Bs(tt)))}function Kt(Fe,He,Qe){var ot=new vo;return He=He==null?0:+He,ot.restart(vt=>{ot.stop(),Fe(vt+He)},He,Qe),ot}vo.prototype=fs.prototype={constructor:vo,restart:function(Fe,He,Qe){if(typeof Fe!="function")throw new TypeError("callback is not a function");Qe=(Qe==null?Vo():+Qe)+(He==null?0:+He),this._next||xi===this||(xi?xi._next=this:Un=this,xi=this),this._call=Fe,this._time=Qe,Dt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Dt())}};var sn=Jt("start","end","cancel","interrupt"),Vn=[];function Qn(Fe,He,Qe,ot,vt,bt){var Ot=Fe.__transition;if(Ot){if(Qe in Ot)return}else Fe.__transition={};(function(wt,dn,Vt){var Wt,Bn=wt.__transition;function Wn(Fi){Vt.state=1,Vt.timer.restart(Gi,Vt.delay,Vt.time),Vt.delay<=Fi&&Gi(Fi-Vt.delay)}function Gi(Fi){var Tr,rr,to,Io;if(Vt.state!==1)return fi();for(Tr in Bn)if((Io=Bn[Tr]).name===Vt.name){if(Io.state===3)return Kt(Gi);Io.state===4?(Io.state=6,Io.timer.stop(),Io.on.call("interrupt",wt,wt.__data__,Io.index,Io.group),delete Bn[Tr]):+Tr<dn&&(Io.state=6,Io.timer.stop(),Io.on.call("cancel",wt,wt.__data__,Io.index,Io.group),delete Bn[Tr])}if(Kt(function(){Vt.state===3&&(Vt.state=4,Vt.timer.restart(bi,Vt.delay,Vt.time),bi(Fi))}),Vt.state=2,Vt.on.call("start",wt,wt.__data__,Vt.index,Vt.group),Vt.state===2){for(Vt.state=3,Wt=new Array(to=Vt.tween.length),Tr=0,rr=-1;Tr<to;++Tr)(Io=Vt.tween[Tr].value.call(wt,wt.__data__,Vt.index,Vt.group))&&(Wt[++rr]=Io);Wt.length=rr+1}}function bi(Fi){for(var Tr=Fi<Vt.duration?Vt.ease.call(null,Fi/Vt.duration):(Vt.timer.restart(fi),Vt.state=5,1),rr=-1,to=Wt.length;++rr<to;)Wt[rr].call(wt,Tr);Vt.state===5&&(Vt.on.call("end",wt,wt.__data__,Vt.index,Vt.group),fi())}function fi(){for(var Fi in Vt.state=6,Vt.timer.stop(),delete Bn[dn],Bn)return;delete wt.__transition}Bn[dn]=Vt,Vt.timer=fs(Wn,0,Vt.time)})(Fe,Qe,{name:He,index:ot,group:vt,on:sn,tween:Vn,time:bt.time,delay:bt.delay,duration:bt.duration,ease:bt.ease,timer:null,state:0})}function zn(Fe,He){var Qe=Qi(Fe,He);if(Qe.state>0)throw new Error("too late; already scheduled");return Qe}function Oi(Fe,He){var Qe=Qi(Fe,He);if(Qe.state>3)throw new Error("too late; already running");return Qe}function Qi(Fe,He){var Qe=Fe.__transition;if(!Qe||!(Qe=Qe[He]))throw new Error("transition not found");return Qe}function ri(Fe,He){var Qe,ot,vt,bt=Fe.__transition,Ot=!0;if(bt){for(vt in He=He==null?null:He+"",bt)(Qe=bt[vt]).name===He?(ot=Qe.state>2&&Qe.state<5,Qe.state=6,Qe.timer.stop(),Qe.on.call(ot?"interrupt":"cancel",Fe,Fe.__data__,Qe.index,Qe.group),delete bt[vt]):Ot=!1;Ot&&delete Fe.__transition}}function cr(Fe,He){var Qe,ot;return function(){var vt=Oi(this,Fe),bt=vt.tween;if(bt!==Qe){for(var Ot=0,wt=(ot=Qe=bt).length;Ot<wt;++Ot)if(ot[Ot].name===He){(ot=ot.slice()).splice(Ot,1);break}}vt.tween=ot}}function $r(Fe,He,Qe){var ot,vt;if(typeof Qe!="function")throw new Error;return function(){var bt=Oi(this,Fe),Ot=bt.tween;if(Ot!==ot){vt=(ot=Ot).slice();for(var wt={name:He,value:Qe},dn=0,Vt=vt.length;dn<Vt;++dn)if(vt[dn].name===He){vt[dn]=wt;break}dn===Vt&&vt.push(wt)}bt.tween=vt}}function Yt(Fe,He,Qe){var ot=Fe._id;return Fe.each(function(){var vt=Oi(this,ot);(vt.value||(vt.value={}))[He]=Qe.apply(this,arguments)}),function(vt){return Qi(vt,ot).value[He]}}function er(Fe,He){var Qe;return(typeof He=="number"?wl:He instanceof Ar?zs:(Qe=Ar(He))?(He=Qe,zs):Zi)(Fe,He)}function sr(Fe){return function(){this.removeAttribute(Fe)}}function Ki(Fe){return function(){this.removeAttributeNS(Fe.space,Fe.local)}}function lr(Fe,He,Qe){var ot,vt,bt=Qe+"";return function(){var Ot=this.getAttribute(Fe);return Ot===bt?null:Ot===ot?vt:vt=He(ot=Ot,Qe)}}function vr(Fe,He,Qe){var ot,vt,bt=Qe+"";return function(){var Ot=this.getAttributeNS(Fe.space,Fe.local);return Ot===bt?null:Ot===ot?vt:vt=He(ot=Ot,Qe)}}function Qr(Fe,He,Qe){var ot,vt,bt;return function(){var Ot,wt,dn=Qe(this);if(dn!=null)return(Ot=this.getAttribute(Fe))===(wt=dn+"")?null:Ot===ot&&wt===vt?bt:(vt=wt,bt=He(ot=Ot,dn));this.removeAttribute(Fe)}}function Mr(Fe,He,Qe){var ot,vt,bt;return function(){var Ot,wt,dn=Qe(this);if(dn!=null)return(Ot=this.getAttributeNS(Fe.space,Fe.local))===(wt=dn+"")?null:Ot===ot&&wt===vt?bt:(vt=wt,bt=He(ot=Ot,dn));this.removeAttributeNS(Fe.space,Fe.local)}}function Hr(Fe,He){return function(Qe){this.setAttribute(Fe,He.call(this,Qe))}}function Zr(Fe,He){return function(Qe){this.setAttributeNS(Fe.space,Fe.local,He.call(this,Qe))}}function mi(Fe,He){var Qe,ot;function vt(){var bt=He.apply(this,arguments);return bt!==ot&&(Qe=(ot=bt)&&Zr(Fe,bt)),Qe}return vt._value=He,vt}function cs(Fe,He){var Qe,ot;function vt(){var bt=He.apply(this,arguments);return bt!==ot&&(Qe=(ot=bt)&&Hr(Fe,bt)),Qe}return vt._value=He,vt}function Hs(Fe,He){return function(){zn(this,Fe).delay=+He.apply(this,arguments)}}function js(Fe,He){return He=+He,function(){zn(this,Fe).delay=He}}function yr(Fe,He){return function(){Oi(this,Fe).duration=+He.apply(this,arguments)}}function yo(Fe,He){return He=+He,function(){Oi(this,Fe).duration=He}}function es(Fe,He){if(typeof He!="function")throw new Error;return function(){Oi(this,Fe).ease=He}}function Ts(Fe,He,Qe){var ot,vt,bt=function(Ot){return(Ot+"").trim().split(/^|\s+/).every(function(wt){var dn=wt.indexOf(".");return dn>=0&&(wt=wt.slice(0,dn)),!wt||wt==="start"})}(He)?zn:Oi;return function(){var Ot=bt(this,Fe),wt=Ot.on;wt!==ot&&(vt=(ot=wt).copy()).on(He,Qe),Ot.on=vt}}var Zs=ao.prototype.constructor;function Ls(Fe){return function(){this.style.removeProperty(Fe)}}function Ii(Fe,He,Qe){return function(ot){this.style.setProperty(Fe,He.call(this,ot),Qe)}}function Cs(Fe,He,Qe){var ot,vt;function bt(){var Ot=He.apply(this,arguments);return Ot!==vt&&(ot=(vt=Ot)&&Ii(Fe,Ot,Qe)),ot}return bt._value=He,bt}function Is(Fe){return function(He){this.textContent=Fe.call(this,He)}}function Pa(Fe){var He,Qe;function ot(){var vt=Fe.apply(this,arguments);return vt!==Qe&&(He=(Qe=vt)&&Is(vt)),He}return ot._value=Fe,ot}var Gs=0;function qo(Fe,He,Qe,ot){this._groups=Fe,this._parents=He,this._name=Qe,this._id=ot}function eo(){return++Gs}var bs=ao.prototype;qo.prototype={constructor:qo,select:function(Fe){var He=this._name,Qe=this._id;typeof Fe!="function"&&(Fe=ue(Fe));for(var ot=this._groups,vt=ot.length,bt=new Array(vt),Ot=0;Ot<vt;++Ot)for(var wt,dn,Vt=ot[Ot],Wt=Vt.length,Bn=bt[Ot]=new Array(Wt),Wn=0;Wn<Wt;++Wn)(wt=Vt[Wn])&&(dn=Fe.call(wt,wt.__data__,Wn,Vt))&&("__data__"in wt&&(dn.__data__=wt.__data__),Bn[Wn]=dn,Qn(Bn[Wn],He,Qe,Wn,Bn,Qi(wt,Qe)));return new qo(bt,this._parents,He,Qe)},selectAll:function(Fe){var He=this._name,Qe=this._id;typeof Fe!="function"&&(Fe=Ae(Fe));for(var ot=this._groups,vt=ot.length,bt=[],Ot=[],wt=0;wt<vt;++wt)for(var dn,Vt=ot[wt],Wt=Vt.length,Bn=0;Bn<Wt;++Bn)if(dn=Vt[Bn]){for(var Wn,Gi=Fe.call(dn,dn.__data__,Bn,Vt),bi=Qi(dn,Qe),fi=0,Fi=Gi.length;fi<Fi;++fi)(Wn=Gi[fi])&&Qn(Wn,He,Qe,fi,Gi,bi);bt.push(Gi),Ot.push(dn)}return new qo(bt,Ot,He,Qe)},selectChild:bs.selectChild,selectChildren:bs.selectChildren,filter:function(Fe){typeof Fe!="function"&&(Fe=Te(Fe));for(var He=this._groups,Qe=He.length,ot=new Array(Qe),vt=0;vt<Qe;++vt)for(var bt,Ot=He[vt],wt=Ot.length,dn=ot[vt]=[],Vt=0;Vt<wt;++Vt)(bt=Ot[Vt])&&Fe.call(bt,bt.__data__,Vt,Ot)&&dn.push(bt);return new qo(ot,this._parents,this._name,this._id)},merge:function(Fe){if(Fe._id!==this._id)throw new Error;for(var He=this._groups,Qe=Fe._groups,ot=He.length,vt=Qe.length,bt=Math.min(ot,vt),Ot=new Array(ot),wt=0;wt<bt;++wt)for(var dn,Vt=He[wt],Wt=Qe[wt],Bn=Vt.length,Wn=Ot[wt]=new Array(Bn),Gi=0;Gi<Bn;++Gi)(dn=Vt[Gi]||Wt[Gi])&&(Wn[Gi]=dn);for(;wt<ot;++wt)Ot[wt]=He[wt];return new qo(Ot,this._parents,this._name,this._id)},selection:function(){return new Zs(this._groups,this._parents)},transition:function(){for(var Fe=this._name,He=this._id,Qe=eo(),ot=this._groups,vt=ot.length,bt=0;bt<vt;++bt)for(var Ot,wt=ot[bt],dn=wt.length,Vt=0;Vt<dn;++Vt)if(Ot=wt[Vt]){var Wt=Qi(Ot,He);Qn(Ot,Fe,Qe,Vt,wt,{time:Wt.time+Wt.delay+Wt.duration,delay:0,duration:Wt.duration,ease:Wt.ease})}return new qo(ot,this._parents,Fe,Qe)},call:bs.call,nodes:bs.nodes,node:bs.node,size:bs.size,empty:bs.empty,each:bs.each,on:function(Fe,He){var Qe=this._id;return arguments.length<2?Qi(this.node(),Qe).on.on(Fe):this.each(Ts(Qe,Fe,He))},attr:function(Fe,He){var Qe=nt(Fe),ot=Qe==="transform"?jl:er;return this.attrTween(Fe,typeof He=="function"?(Qe.local?Mr:Qr)(Qe,ot,Yt(this,"attr."+Fe,He)):He==null?(Qe.local?Ki:sr)(Qe):(Qe.local?vr:lr)(Qe,ot,He))},attrTween:function(Fe,He){var Qe="attr."+Fe;if(arguments.length<2)return(Qe=this.tween(Qe))&&Qe._value;if(He==null)return this.tween(Qe,null);if(typeof He!="function")throw new Error;var ot=nt(Fe);return this.tween(Qe,(ot.local?mi:cs)(ot,He))},style:function(Fe,He,Qe){var ot=(Fe+="")=="transform"?pu:er;return He==null?this.styleTween(Fe,function(vt,bt){var Ot,wt,dn;return function(){var Vt=Mn(this,vt),Wt=(this.style.removeProperty(vt),Mn(this,vt));return Vt===Wt?null:Vt===Ot&&Wt===wt?dn:dn=bt(Ot=Vt,wt=Wt)}}(Fe,ot)).on("end.style."+Fe,Ls(Fe)):typeof He=="function"?this.styleTween(Fe,function(vt,bt,Ot){var wt,dn,Vt;return function(){var Wt=Mn(this,vt),Bn=Ot(this),Wn=Bn+"";return Bn==null&&(this.style.removeProperty(vt),Wn=Bn=Mn(this,vt)),Wt===Wn?null:Wt===wt&&Wn===dn?Vt:(dn=Wn,Vt=bt(wt=Wt,Bn))}}(Fe,ot,Yt(this,"style."+Fe,He))).each(function(vt,bt){var Ot,wt,dn,Vt,Wt="style."+bt,Bn="end."+Wt;return function(){var Wn=Oi(this,vt),Gi=Wn.on,bi=Wn.value[Wt]==null?Vt||(Vt=Ls(bt)):void 0;Gi===Ot&&dn===bi||(wt=(Ot=Gi).copy()).on(Bn,dn=bi),Wn.on=wt}}(this._id,Fe)):this.styleTween(Fe,function(vt,bt,Ot){var wt,dn,Vt=Ot+"";return function(){var Wt=Mn(this,vt);return Wt===Vt?null:Wt===wt?dn:dn=bt(wt=Wt,Ot)}}(Fe,ot,He),Qe).on("end.style."+Fe,null)},styleTween:function(Fe,He,Qe){var ot="style."+(Fe+="");if(arguments.length<2)return(ot=this.tween(ot))&&ot._value;if(He==null)return this.tween(ot,null);if(typeof He!="function")throw new Error;return this.tween(ot,Cs(Fe,He,Qe==null?"":Qe))},text:function(Fe){return this.tween("text",typeof Fe=="function"?function(He){return function(){var Qe=He(this);this.textContent=Qe==null?"":Qe}}(Yt(this,"text",Fe)):function(He){return function(){this.textContent=He}}(Fe==null?"":Fe+""))},textTween:function(Fe){var He="text";if(arguments.length<1)return(He=this.tween(He))&&He._value;if(Fe==null)return this.tween(He,null);if(typeof Fe!="function")throw new Error;return this.tween(He,Pa(Fe))},remove:function(){return this.on("end.remove",function(Fe){return function(){var He=this.parentNode;for(var Qe in this.__transition)if(+Qe!==Fe)return;He&&He.removeChild(this)}}(this._id))},tween:function(Fe,He){var Qe=this._id;if(Fe+="",arguments.length<2){for(var ot,vt=Qi(this.node(),Qe).tween,bt=0,Ot=vt.length;bt<Ot;++bt)if((ot=vt[bt]).name===Fe)return ot.value;return null}return this.each((He==null?cr:$r)(Qe,Fe,He))},delay:function(Fe){var He=this._id;return arguments.length?this.each((typeof Fe=="function"?Hs:js)(He,Fe)):Qi(this.node(),He).delay},duration:function(Fe){var He=this._id;return arguments.length?this.each((typeof Fe=="function"?yr:yo)(He,Fe)):Qi(this.node(),He).duration},ease:function(Fe){var He=this._id;return arguments.length?this.each(es(He,Fe)):Qi(this.node(),He).ease},easeVarying:function(Fe){if(typeof Fe!="function")throw new Error;return this.each(function(He,Qe){return function(){var ot=Qe.apply(this,arguments);if(typeof ot!="function")throw new Error;Oi(this,He).ease=ot}}(this._id,Fe))},end:function(){var Fe,He,Qe=this,ot=Qe._id,vt=Qe.size();return new Promise(function(bt,Ot){var wt={value:Ot},dn={value:function(){--vt==0&&bt()}};Qe.each(function(){var Vt=Oi(this,ot),Wt=Vt.on;Wt!==Fe&&((He=(Fe=Wt).copy())._.cancel.push(wt),He._.interrupt.push(wt),He._.end.push(dn)),Vt.on=He}),vt===0&&bt()})},[Symbol.iterator]:bs[Symbol.iterator]};var Ta={time:null,delay:0,duration:250,ease:function(Fe){return((Fe*=2)<=1?Fe*Fe*Fe:(Fe-=2)*Fe*Fe+2)/2}};function Ms(Fe,He){for(var Qe;!(Qe=Fe.__transition)||!(Qe=Qe[He]);)if(!(Fe=Fe.parentNode))throw new Error(`transition ${He} not found`);return Qe}ao.prototype.interrupt=function(Fe){return this.each(function(){ri(this,Fe)})},ao.prototype.transition=function(Fe){var He,Qe;Fe instanceof qo?(He=Fe._id,Fe=Fe._name):(He=eo(),(Qe=Ta).time=Vo(),Fe=Fe==null?null:Fe+"");for(var ot=this._groups,vt=ot.length,bt=0;bt<vt;++bt)for(var Ot,wt=ot[bt],dn=wt.length,Vt=0;Vt<dn;++Vt)(Ot=wt[Vt])&&Qn(Ot,Fe,He,Vt,wt,Qe||Ms(Ot,He));return new qo(ot,this._parents,Fe,He)};const ws=Math.PI,Ra=2*ws,Aa=1e-6,ga=Ra-Aa;function ol(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function fl(){return new ol}function gu(Fe,He,Qe,ot){if(isNaN(He)||isNaN(Qe))return Fe;var vt,bt,Ot,wt,dn,Vt,Wt,Bn,Wn,Gi=Fe._root,bi={data:ot},fi=Fe._x0,Fi=Fe._y0,Tr=Fe._x1,rr=Fe._y1;if(!Gi)return Fe._root=bi,Fe;for(;Gi.length;)if((Vt=He>=(bt=(fi+Tr)/2))?fi=bt:Tr=bt,(Wt=Qe>=(Ot=(Fi+rr)/2))?Fi=Ot:rr=Ot,vt=Gi,!(Gi=Gi[Bn=Wt<<1|Vt]))return vt[Bn]=bi,Fe;if(wt=+Fe._x.call(null,Gi.data),dn=+Fe._y.call(null,Gi.data),He===wt&&Qe===dn)return bi.next=Gi,vt?vt[Bn]=bi:Fe._root=bi,Fe;do vt=vt?vt[Bn]=new Array(4):Fe._root=new Array(4),(Vt=He>=(bt=(fi+Tr)/2))?fi=bt:Tr=bt,(Wt=Qe>=(Ot=(Fi+rr)/2))?Fi=Ot:rr=Ot;while((Bn=Wt<<1|Vt)==(Wn=(dn>=Ot)<<1|wt>=bt));return vt[Wn]=Gi,vt[Bn]=bi,Fe}function Ys(Fe,He,Qe,ot,vt){this.node=Fe,this.x0=He,this.y0=Qe,this.x1=ot,this.y1=vt}function Cu(Fe){return Fe[0]}function Wo(Fe){return Fe[1]}function Zu(Fe,He,Qe){var ot=new Ml(He==null?Cu:He,Qe==null?Wo:Qe,NaN,NaN,NaN,NaN);return Fe==null?ot:ot.addAll(Fe)}function Ml(Fe,He,Qe,ot,vt,bt){this._x=Fe,this._y=He,this._x0=Qe,this._y0=ot,this._x1=vt,this._y1=bt,this._root=void 0}function au(Fe){for(var He={data:Fe.data},Qe=He;Fe=Fe.next;)Qe=Qe.next={data:Fe.data};return He}ol.prototype=fl.prototype={constructor:ol,moveTo:function(Fe,He){this._+="M"+(this._x0=this._x1=+Fe)+","+(this._y0=this._y1=+He)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(Fe,He){this._+="L"+(this._x1=+Fe)+","+(this._y1=+He)},quadraticCurveTo:function(Fe,He,Qe,ot){this._+="Q"+ +Fe+","+ +He+","+(this._x1=+Qe)+","+(this._y1=+ot)},bezierCurveTo:function(Fe,He,Qe,ot,vt,bt){this._+="C"+ +Fe+","+ +He+","+ +Qe+","+ +ot+","+(this._x1=+vt)+","+(this._y1=+bt)},arcTo:function(Fe,He,Qe,ot,vt){Fe=+Fe,He=+He,Qe=+Qe,ot=+ot,vt=+vt;var bt=this._x1,Ot=this._y1,wt=Qe-Fe,dn=ot-He,Vt=bt-Fe,Wt=Ot-He,Bn=Vt*Vt+Wt*Wt;if(vt<0)throw new Error("negative radius: "+vt);if(this._x1===null)this._+="M"+(this._x1=Fe)+","+(this._y1=He);else if(Bn>Aa)if(Math.abs(Wt*wt-dn*Vt)>Aa&&vt){var Wn=Qe-bt,Gi=ot-Ot,bi=wt*wt+dn*dn,fi=Wn*Wn+Gi*Gi,Fi=Math.sqrt(bi),Tr=Math.sqrt(Bn),rr=vt*Math.tan((ws-Math.acos((bi+Bn-fi)/(2*Fi*Tr)))/2),to=rr/Tr,Io=rr/Fi;Math.abs(to-1)>Aa&&(this._+="L"+(Fe+to*Vt)+","+(He+to*Wt)),this._+="A"+vt+","+vt+",0,0,"+ +(Wt*Wn>Vt*Gi)+","+(this._x1=Fe+Io*wt)+","+(this._y1=He+Io*dn)}else this._+="L"+(this._x1=Fe)+","+(this._y1=He)},arc:function(Fe,He,Qe,ot,vt,bt){Fe=+Fe,He=+He,bt=!!bt;var Ot=(Qe=+Qe)*Math.cos(ot),wt=Qe*Math.sin(ot),dn=Fe+Ot,Vt=He+wt,Wt=1^bt,Bn=bt?ot-vt:vt-ot;if(Qe<0)throw new Error("negative radius: "+Qe);this._x1===null?this._+="M"+dn+","+Vt:(Math.abs(this._x1-dn)>Aa||Math.abs(this._y1-Vt)>Aa)&&(this._+="L"+dn+","+Vt),Qe&&(Bn<0&&(Bn=Bn%Ra+Ra),Bn>ga?this._+="A"+Qe+","+Qe+",0,1,"+Wt+","+(Fe-Ot)+","+(He-wt)+"A"+Qe+","+Qe+",0,1,"+Wt+","+(this._x1=dn)+","+(this._y1=Vt):Bn>Aa&&(this._+="A"+Qe+","+Qe+",0,"+ +(Bn>=ws)+","+Wt+","+(this._x1=Fe+Qe*Math.cos(vt))+","+(this._y1=He+Qe*Math.sin(vt))))},rect:function(Fe,He,Qe,ot){this._+="M"+(this._x0=this._x1=+Fe)+","+(this._y0=this._y1=+He)+"h"+ +Qe+"v"+ +ot+"h"+-Qe+"Z"},toString:function(){return this._}};var Cl=Zu.prototype=Ml.prototype;function ll(Fe){return function(){return Fe}}function El(Fe){return 1e-6*(Fe()-.5)}function Bl(Fe){return Fe.x+Fe.vx}function Xu(Fe){return Fe.y+Fe.vy}function Dc(Fe){return Fe.index}function eu(Fe,He){var Qe=Fe.get(He);if(!Qe)throw new Error("node not found: "+He);return Qe}function Yc(Fe){var He,Qe,ot,vt,bt,Ot,wt=Dc,dn=function(fi){return 1/Math.min(vt[fi.source.index],vt[fi.target.index])},Vt=ll(30),Wt=1;function Bn(fi){for(var Fi=0,Tr=Fe.length;Fi<Wt;++Fi)for(var rr,to,Io,ks,uo,Ss,Xs,ua=0;ua<Tr;++ua)to=(rr=Fe[ua]).source,ks=(Io=rr.target).x+Io.vx-to.x-to.vx||El(Ot),uo=Io.y+Io.vy-to.y-to.vy||El(Ot),ks*=Ss=((Ss=Math.sqrt(ks*ks+uo*uo))-Qe[ua])/Ss*fi*He[ua],uo*=Ss,Io.vx-=ks*(Xs=bt[ua]),Io.vy-=uo*Xs,to.vx+=ks*(Xs=1-Xs),to.vy+=uo*Xs}function Wn(){if(ot){var fi,Fi,Tr=ot.length,rr=Fe.length,to=new Map(ot.map((Io,ks)=>[wt(Io,ks,ot),Io]));for(fi=0,vt=new Array(Tr);fi<rr;++fi)(Fi=Fe[fi]).index=fi,typeof Fi.source!="object"&&(Fi.source=eu(to,Fi.source)),typeof Fi.target!="object"&&(Fi.target=eu(to,Fi.target)),vt[Fi.source.index]=(vt[Fi.source.index]||0)+1,vt[Fi.target.index]=(vt[Fi.target.index]||0)+1;for(fi=0,bt=new Array(rr);fi<rr;++fi)Fi=Fe[fi],bt[fi]=vt[Fi.source.index]/(vt[Fi.source.index]+vt[Fi.target.index]);He=new Array(rr),Gi(),Qe=new Array(rr),bi()}}function Gi(){if(ot)for(var fi=0,Fi=Fe.length;fi<Fi;++fi)He[fi]=+dn(Fe[fi],fi,Fe)}function bi(){if(ot)for(var fi=0,Fi=Fe.length;fi<Fi;++fi)Qe[fi]=+Vt(Fe[fi],fi,Fe)}return Fe==null&&(Fe=[]),Bn.initialize=function(fi,Fi){ot=fi,Ot=Fi,Wn()},Bn.links=function(fi){return arguments.length?(Fe=fi,Wn(),Bn):Fe},Bn.id=function(fi){return arguments.length?(wt=fi,Bn):wt},Bn.iterations=function(fi){return arguments.length?(Wt=+fi,Bn):Wt},Bn.strength=function(fi){return arguments.length?(dn=typeof fi=="function"?fi:ll(+fi),Gi(),Bn):dn},Bn.distance=function(fi){return arguments.length?(Vt=typeof fi=="function"?fi:ll(+fi),bi(),Bn):Vt},Bn}Cl.copy=function(){var Fe,He,Qe=new Ml(this._x,this._y,this._x0,this._y0,this._x1,this._y1),ot=this._root;if(!ot)return Qe;if(!ot.length)return Qe._root=au(ot),Qe;for(Fe=[{source:ot,target:Qe._root=new Array(4)}];ot=Fe.pop();)for(var vt=0;vt<4;++vt)(He=ot.source[vt])&&(He.length?Fe.push({source:He,target:ot.target[vt]=new Array(4)}):ot.target[vt]=au(He));return Qe},Cl.add=function(Fe){const He=+this._x.call(null,Fe),Qe=+this._y.call(null,Fe);return gu(this.cover(He,Qe),He,Qe,Fe)},Cl.addAll=function(Fe){var He,Qe,ot,vt,bt=Fe.length,Ot=new Array(bt),wt=new Array(bt),dn=1/0,Vt=1/0,Wt=-1/0,Bn=-1/0;for(Qe=0;Qe<bt;++Qe)isNaN(ot=+this._x.call(null,He=Fe[Qe]))||isNaN(vt=+this._y.call(null,He))||(Ot[Qe]=ot,wt[Qe]=vt,ot<dn&&(dn=ot),ot>Wt&&(Wt=ot),vt<Vt&&(Vt=vt),vt>Bn&&(Bn=vt));if(dn>Wt||Vt>Bn)return this;for(this.cover(dn,Vt).cover(Wt,Bn),Qe=0;Qe<bt;++Qe)gu(this,Ot[Qe],wt[Qe],Fe[Qe]);return this},Cl.cover=function(Fe,He){if(isNaN(Fe=+Fe)||isNaN(He=+He))return this;var Qe=this._x0,ot=this._y0,vt=this._x1,bt=this._y1;if(isNaN(Qe))vt=(Qe=Math.floor(Fe))+1,bt=(ot=Math.floor(He))+1;else{for(var Ot,wt,dn=vt-Qe||1,Vt=this._root;Qe>Fe||Fe>=vt||ot>He||He>=bt;)switch(wt=(He<ot)<<1|Fe<Qe,(Ot=new Array(4))[wt]=Vt,Vt=Ot,dn*=2,wt){case 0:vt=Qe+dn,bt=ot+dn;break;case 1:Qe=vt-dn,bt=ot+dn;break;case 2:vt=Qe+dn,ot=bt-dn;break;case 3:Qe=vt-dn,ot=bt-dn}this._root&&this._root.length&&(this._root=Vt)}return this._x0=Qe,this._y0=ot,this._x1=vt,this._y1=bt,this},Cl.data=function(){var Fe=[];return this.visit(function(He){if(!He.length)do Fe.push(He.data);while(He=He.next)}),Fe},Cl.extent=function(Fe){return arguments.length?this.cover(+Fe[0][0],+Fe[0][1]).cover(+Fe[1][0],+Fe[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},Cl.find=function(Fe,He,Qe){var ot,vt,bt,Ot,wt,dn,Vt,Wt=this._x0,Bn=this._y0,Wn=this._x1,Gi=this._y1,bi=[],fi=this._root;for(fi&&bi.push(new Ys(fi,Wt,Bn,Wn,Gi)),Qe==null?Qe=1/0:(Wt=Fe-Qe,Bn=He-Qe,Wn=Fe+Qe,Gi=He+Qe,Qe*=Qe);dn=bi.pop();)if(!(!(fi=dn.node)||(vt=dn.x0)>Wn||(bt=dn.y0)>Gi||(Ot=dn.x1)<Wt||(wt=dn.y1)<Bn))if(fi.length){var Fi=(vt+Ot)/2,Tr=(bt+wt)/2;bi.push(new Ys(fi[3],Fi,Tr,Ot,wt),new Ys(fi[2],vt,Tr,Fi,wt),new Ys(fi[1],Fi,bt,Ot,Tr),new Ys(fi[0],vt,bt,Fi,Tr)),(Vt=(He>=Tr)<<1|Fe>=Fi)&&(dn=bi[bi.length-1],bi[bi.length-1]=bi[bi.length-1-Vt],bi[bi.length-1-Vt]=dn)}else{var rr=Fe-+this._x.call(null,fi.data),to=He-+this._y.call(null,fi.data),Io=rr*rr+to*to;if(Io<Qe){var ks=Math.sqrt(Qe=Io);Wt=Fe-ks,Bn=He-ks,Wn=Fe+ks,Gi=He+ks,ot=fi.data}}return ot},Cl.remove=function(Fe){if(isNaN(bt=+this._x.call(null,Fe))||isNaN(Ot=+this._y.call(null,Fe)))return this;var He,Qe,ot,vt,bt,Ot,wt,dn,Vt,Wt,Bn,Wn,Gi=this._root,bi=this._x0,fi=this._y0,Fi=this._x1,Tr=this._y1;if(!Gi)return this;if(Gi.length)for(;;){if((Vt=bt>=(wt=(bi+Fi)/2))?bi=wt:Fi=wt,(Wt=Ot>=(dn=(fi+Tr)/2))?fi=dn:Tr=dn,He=Gi,!(Gi=Gi[Bn=Wt<<1|Vt]))return this;if(!Gi.length)break;(He[Bn+1&3]||He[Bn+2&3]||He[Bn+3&3])&&(Qe=He,Wn=Bn)}for(;Gi.data!==Fe;)if(ot=Gi,!(Gi=Gi.next))return this;return(vt=Gi.next)&&delete Gi.next,ot?(vt?ot.next=vt:delete ot.next,this):He?(vt?He[Bn]=vt:delete He[Bn],(Gi=He[0]||He[1]||He[2]||He[3])&&Gi===(He[3]||He[2]||He[1]||He[0])&&!Gi.length&&(Qe?Qe[Wn]=Gi:this._root=Gi),this):(this._root=vt,this)},Cl.removeAll=function(Fe){for(var He=0,Qe=Fe.length;He<Qe;++He)this.remove(Fe[He]);return this},Cl.root=function(){return this._root},Cl.size=function(){var Fe=0;return this.visit(function(He){if(!He.length)do++Fe;while(He=He.next)}),Fe},Cl.visit=function(Fe){var He,Qe,ot,vt,bt,Ot,wt=[],dn=this._root;for(dn&&wt.push(new Ys(dn,this._x0,this._y0,this._x1,this._y1));He=wt.pop();)if(!Fe(dn=He.node,ot=He.x0,vt=He.y0,bt=He.x1,Ot=He.y1)&&dn.length){var Vt=(ot+bt)/2,Wt=(vt+Ot)/2;(Qe=dn[3])&&wt.push(new Ys(Qe,Vt,Wt,bt,Ot)),(Qe=dn[2])&&wt.push(new Ys(Qe,ot,Wt,Vt,Ot)),(Qe=dn[1])&&wt.push(new Ys(Qe,Vt,vt,bt,Wt)),(Qe=dn[0])&&wt.push(new Ys(Qe,ot,vt,Vt,Wt))}return this},Cl.visitAfter=function(Fe){var He,Qe=[],ot=[];for(this._root&&Qe.push(new Ys(this._root,this._x0,this._y0,this._x1,this._y1));He=Qe.pop();){var vt=He.node;if(vt.length){var bt,Ot=He.x0,wt=He.y0,dn=He.x1,Vt=He.y1,Wt=(Ot+dn)/2,Bn=(wt+Vt)/2;(bt=vt[0])&&Qe.push(new Ys(bt,Ot,wt,Wt,Bn)),(bt=vt[1])&&Qe.push(new Ys(bt,Wt,wt,dn,Bn)),(bt=vt[2])&&Qe.push(new Ys(bt,Ot,Bn,Wt,Vt)),(bt=vt[3])&&Qe.push(new Ys(bt,Wt,Bn,dn,Vt))}ot.push(He)}for(;He=ot.pop();)Fe(He.node,He.x0,He.y0,He.x1,He.y1);return this},Cl.x=function(Fe){return arguments.length?(this._x=Fe,this):this._x},Cl.y=function(Fe){return arguments.length?(this._y=Fe,this):this._y};const Tl=4294967296;function pl(Fe){return Fe.x}function el(Fe){return Fe.y}var ru=Math.PI*(3-Math.sqrt(5));function bl(Fe){var He,Qe=1,ot=.001,vt=1-Math.pow(ot,1/300),bt=0,Ot=.6,wt=new Map,dn=fs(Bn),Vt=Jt("tick","end"),Wt=function(){let fi=1;return()=>(fi=(1664525*fi+1013904223)%Tl)/Tl}();function Bn(){Wn(),Vt.call("tick",He),Qe<ot&&(dn.stop(),Vt.call("end",He))}function Wn(fi){var Fi,Tr,rr=Fe.length;fi===void 0&&(fi=1);for(var to=0;to<fi;++to)for(Qe+=(bt-Qe)*vt,wt.forEach(function(Io){Io(Qe)}),Fi=0;Fi<rr;++Fi)(Tr=Fe[Fi]).fx==null?Tr.x+=Tr.vx*=Ot:(Tr.x=Tr.fx,Tr.vx=0),Tr.fy==null?Tr.y+=Tr.vy*=Ot:(Tr.y=Tr.fy,Tr.vy=0);return He}function Gi(){for(var fi,Fi=0,Tr=Fe.length;Fi<Tr;++Fi){if((fi=Fe[Fi]).index=Fi,fi.fx!=null&&(fi.x=fi.fx),fi.fy!=null&&(fi.y=fi.fy),isNaN(fi.x)||isNaN(fi.y)){var rr=10*Math.sqrt(.5+Fi),to=Fi*ru;fi.x=rr*Math.cos(to),fi.y=rr*Math.sin(to)}(isNaN(fi.vx)||isNaN(fi.vy))&&(fi.vx=fi.vy=0)}}function bi(fi){return fi.initialize&&fi.initialize(Fe,Wt),fi}return Fe==null&&(Fe=[]),Gi(),He={tick:Wn,restart:function(){return dn.restart(Bn),He},stop:function(){return dn.stop(),He},nodes:function(fi){return arguments.length?(Fe=fi,Gi(),wt.forEach(bi),He):Fe},alpha:function(fi){return arguments.length?(Qe=+fi,He):Qe},alphaMin:function(fi){return arguments.length?(ot=+fi,He):ot},alphaDecay:function(fi){return arguments.length?(vt=+fi,He):+vt},alphaTarget:function(fi){return arguments.length?(bt=+fi,He):bt},velocityDecay:function(fi){return arguments.length?(Ot=1-fi,He):1-Ot},randomSource:function(fi){return arguments.length?(Wt=fi,wt.forEach(bi),He):Wt},force:function(fi,Fi){return arguments.length>1?(Fi==null?wt.delete(fi):wt.set(fi,bi(Fi)),He):wt.get(fi)},find:function(fi,Fi,Tr){var rr,to,Io,ks,uo,Ss=0,Xs=Fe.length;for(Tr==null?Tr=1/0:Tr*=Tr,Ss=0;Ss<Xs;++Ss)(Io=(rr=fi-(ks=Fe[Ss]).x)*rr+(to=Fi-ks.y)*to)<Tr&&(uo=ks,Tr=Io);return uo},on:function(fi,Fi){return arguments.length>1?(Vt.on(fi,Fi),He):Vt.on(fi)}}}function mu(Fe){return function(){return Fe}}const hs=Math.abs,ps=Math.atan2,kl=Math.cos,Vs=Math.max,Br=Math.min,Iu=Math.sin,_t=Math.sqrt,ai=1e-12,zh=Math.PI,ch=zh/2,rc=2*zh;function Ec(Fe){return Fe>1?0:Fe<-1?zh:Math.acos(Fe)}function hh(Fe){return Fe>=1?ch:Fe<=-1?-ch:Math.asin(Fe)}function Rc(Fe){return Fe.innerRadius}function od(Fe){return Fe.outerRadius}function ku(Fe){return Fe.startAngle}function $s(Fe){return Fe.endAngle}function zc(Fe){return Fe&&Fe.padAngle}function _c(Fe,He,Qe,ot,vt,bt,Ot,wt){var dn=Qe-Fe,Vt=ot-He,Wt=Ot-vt,Bn=wt-bt,Wn=Bn*dn-Wt*Vt;if(!(Wn*Wn<ai))return[Fe+(Wn=(Wt*(He-bt)-Bn*(Fe-vt))/Wn)*dn,He+Wn*Vt]}function Au(Fe,He,Qe,ot,vt,bt,Ot){var wt=Fe-Qe,dn=He-ot,Vt=(Ot?bt:-bt)/_t(wt*wt+dn*dn),Wt=Vt*dn,Bn=-Vt*wt,Wn=Fe+Wt,Gi=He+Bn,bi=Qe+Wt,fi=ot+Bn,Fi=(Wn+bi)/2,Tr=(Gi+fi)/2,rr=bi-Wn,to=fi-Gi,Io=rr*rr+to*to,ks=vt-bt,uo=Wn*fi-bi*Gi,Ss=(to<0?-1:1)*_t(Vs(0,ks*ks*Io-uo*uo)),Xs=(uo*to-rr*Ss)/Io,ua=(-uo*rr-to*Ss)/Io,Ao=(uo*to+rr*Ss)/Io,Er=(-uo*rr+to*Ss)/Io,ca=Xs-Fi,Ci=ua-Tr,qr=Ao-Fi,Mo=Er-Tr;return ca*ca+Ci*Ci>qr*qr+Mo*Mo&&(Xs=Ao,ua=Er),{cx:Xs,cy:ua,x01:-Wt,y01:-Bn,x11:Xs*(vt/ks-1),y11:ua*(vt/ks-1)}}function tl(){var Fe=Rc,He=od,Qe=mu(0),ot=null,vt=ku,bt=$s,Ot=zc,wt=null;function dn(){var Vt,Wt,Bn=+Fe.apply(this,arguments),Wn=+He.apply(this,arguments),Gi=vt.apply(this,arguments)-ch,bi=bt.apply(this,arguments)-ch,fi=hs(bi-Gi),Fi=bi>Gi;if(wt||(wt=Vt=fl()),Wn<Bn&&(Wt=Wn,Wn=Bn,Bn=Wt),Wn>ai)if(fi>rc-ai)wt.moveTo(Wn*kl(Gi),Wn*Iu(Gi)),wt.arc(0,0,Wn,Gi,bi,!Fi),Bn>ai&&(wt.moveTo(Bn*kl(bi),Bn*Iu(bi)),wt.arc(0,0,Bn,bi,Gi,Fi));else{var Tr,rr,to=Gi,Io=bi,ks=Gi,uo=bi,Ss=fi,Xs=fi,ua=Ot.apply(this,arguments)/2,Ao=ua>ai&&(ot?+ot.apply(this,arguments):_t(Bn*Bn+Wn*Wn)),Er=Br(hs(Wn-Bn)/2,+Qe.apply(this,arguments)),ca=Er,Ci=Er;if(Ao>ai){var qr=hh(Ao/Bn*Iu(ua)),Mo=hh(Ao/Wn*Iu(ua));(Ss-=2*qr)>ai?(ks+=qr*=Fi?1:-1,uo-=qr):(Ss=0,ks=uo=(Gi+bi)/2),(Xs-=2*Mo)>ai?(to+=Mo*=Fi?1:-1,Io-=Mo):(Xs=0,to=Io=(Gi+bi)/2)}var Eo=Wn*kl(to),Ds=Wn*Iu(to),is=Bn*kl(uo),Ko=Bn*Iu(uo);if(Er>ai){var za,tu=Wn*kl(Io),ea=Wn*Iu(Io),Ku=Bn*kl(ks),Mu=Bn*Iu(ks);if(fi<zh&&(za=_c(Eo,Ds,Ku,Mu,tu,ea,is,Ko))){var Fc=Eo-za[0],ph=Ds-za[1],Nu=tu-za[0],sg=ea-za[1],Tg=1/Iu(Ec((Fc*Nu+ph*sg)/(_t(Fc*Fc+ph*ph)*_t(Nu*Nu+sg*sg)))/2),Mm=_t(za[0]*za[0]+za[1]*za[1]);ca=Br(Er,(Bn-Mm)/(Tg-1)),Ci=Br(Er,(Wn-Mm)/(Tg+1))}}Xs>ai?Ci>ai?(Tr=Au(Ku,Mu,Eo,Ds,Wn,Ci,Fi),rr=Au(tu,ea,is,Ko,Wn,Ci,Fi),wt.moveTo(Tr.cx+Tr.x01,Tr.cy+Tr.y01),Ci<Er?wt.arc(Tr.cx,Tr.cy,Ci,ps(Tr.y01,Tr.x01),ps(rr.y01,rr.x01),!Fi):(wt.arc(Tr.cx,Tr.cy,Ci,ps(Tr.y01,Tr.x01),ps(Tr.y11,Tr.x11),!Fi),wt.arc(0,0,Wn,ps(Tr.cy+Tr.y11,Tr.cx+Tr.x11),ps(rr.cy+rr.y11,rr.cx+rr.x11),!Fi),wt.arc(rr.cx,rr.cy,Ci,ps(rr.y11,rr.x11),ps(rr.y01,rr.x01),!Fi))):(wt.moveTo(Eo,Ds),wt.arc(0,0,Wn,to,Io,!Fi)):wt.moveTo(Eo,Ds),Bn>ai&&Ss>ai?ca>ai?(Tr=Au(is,Ko,tu,ea,Bn,-ca,Fi),rr=Au(Eo,Ds,Ku,Mu,Bn,-ca,Fi),wt.lineTo(Tr.cx+Tr.x01,Tr.cy+Tr.y01),ca<Er?wt.arc(Tr.cx,Tr.cy,ca,ps(Tr.y01,Tr.x01),ps(rr.y01,rr.x01),!Fi):(wt.arc(Tr.cx,Tr.cy,ca,ps(Tr.y01,Tr.x01),ps(Tr.y11,Tr.x11),!Fi),wt.arc(0,0,Bn,ps(Tr.cy+Tr.y11,Tr.cx+Tr.x11),ps(rr.cy+rr.y11,rr.cx+rr.x11),Fi),wt.arc(rr.cx,rr.cy,ca,ps(rr.y11,rr.x11),ps(rr.y01,rr.x01),!Fi))):wt.arc(0,0,Bn,uo,ks,Fi):wt.lineTo(is,Ko)}else wt.moveTo(0,0);if(wt.closePath(),Vt)return wt=null,Vt+""||null}return dn.centroid=function(){var Vt=(+Fe.apply(this,arguments)+ +He.apply(this,arguments))/2,Wt=(+vt.apply(this,arguments)+ +bt.apply(this,arguments))/2-zh/2;return[kl(Wt)*Vt,Iu(Wt)*Vt]},dn.innerRadius=function(Vt){return arguments.length?(Fe=typeof Vt=="function"?Vt:mu(+Vt),dn):Fe},dn.outerRadius=function(Vt){return arguments.length?(He=typeof Vt=="function"?Vt:mu(+Vt),dn):He},dn.cornerRadius=function(Vt){return arguments.length?(Qe=typeof Vt=="function"?Vt:mu(+Vt),dn):Qe},dn.padRadius=function(Vt){return arguments.length?(ot=Vt==null?null:typeof Vt=="function"?Vt:mu(+Vt),dn):ot},dn.startAngle=function(Vt){return arguments.length?(vt=typeof Vt=="function"?Vt:mu(+Vt),dn):vt},dn.endAngle=function(Vt){return arguments.length?(bt=typeof Vt=="function"?Vt:mu(+Vt),dn):bt},dn.padAngle=function(Vt){return arguments.length?(Ot=typeof Vt=="function"?Vt:mu(+Vt),dn):Ot},dn.context=function(Vt){return arguments.length?(wt=Vt==null?null:Vt,dn):wt},dn}function Yu(Fe){return typeof Fe=="object"&&"length"in Fe?Fe:Array.from(Fe)}function Ch(Fe,He){return He<Fe?-1:He>Fe?1:He>=Fe?0:NaN}function Du(Fe){return Fe}function Eh(){var Fe=Du,He=Ch,Qe=null,ot=mu(0),vt=mu(rc),bt=mu(0);function Ot(wt){var dn,Vt,Wt,Bn,Wn,Gi=(wt=Yu(wt)).length,bi=0,fi=new Array(Gi),Fi=new Array(Gi),Tr=+ot.apply(this,arguments),rr=Math.min(rc,Math.max(-rc,vt.apply(this,arguments)-Tr)),to=Math.min(Math.abs(rr)/Gi,bt.apply(this,arguments)),Io=to*(rr<0?-1:1);for(dn=0;dn<Gi;++dn)(Wn=Fi[fi[dn]=dn]=+Fe(wt[dn],dn,wt))>0&&(bi+=Wn);for(He!=null?fi.sort(function(ks,uo){return He(Fi[ks],Fi[uo])}):Qe!=null&&fi.sort(function(ks,uo){return Qe(wt[ks],wt[uo])}),dn=0,Wt=bi?(rr-Gi*Io)/bi:0;dn<Gi;++dn,Tr=Bn)Vt=fi[dn],Bn=Tr+((Wn=Fi[Vt])>0?Wn*Wt:0)+Io,Fi[Vt]={data:wt[Vt],index:dn,value:Wn,startAngle:Tr,endAngle:Bn,padAngle:to};return Fi}return Ot.value=function(wt){return arguments.length?(Fe=typeof wt=="function"?wt:mu(+wt),Ot):Fe},Ot.sortValues=function(wt){return arguments.length?(He=wt,Qe=null,Ot):He},Ot.sort=function(wt){return arguments.length?(Qe=wt,He=null,Ot):Qe},Ot.startAngle=function(wt){return arguments.length?(ot=typeof wt=="function"?wt:mu(+wt),Ot):ot},Ot.endAngle=function(wt){return arguments.length?(vt=typeof wt=="function"?wt:mu(+wt),Ot):vt},Ot.padAngle=function(wt){return arguments.length?(bt=typeof wt=="function"?wt:mu(+wt),Ot):bt},Ot}var Ju=Fe=>()=>Fe;function xf(Fe,{sourceEvent:He,target:Qe,transform:ot,dispatch:vt}){Object.defineProperties(this,{type:{value:Fe,enumerable:!0,configurable:!0},sourceEvent:{value:He,enumerable:!0,configurable:!0},target:{value:Qe,enumerable:!0,configurable:!0},transform:{value:ot,enumerable:!0,configurable:!0},_:{value:vt}})}function ul(Fe,He,Qe){this.k=Fe,this.x=He,this.y=Qe}ul.prototype={constructor:ul,scale:function(Fe){return Fe===1?this:new ul(this.k*Fe,this.x,this.y)},translate:function(Fe,He){return Fe===0&He===0?this:new ul(this.k,this.x+this.k*Fe,this.y+this.k*He)},apply:function(Fe){return[Fe[0]*this.k+this.x,Fe[1]*this.k+this.y]},applyX:function(Fe){return Fe*this.k+this.x},applyY:function(Fe){return Fe*this.k+this.y},invert:function(Fe){return[(Fe[0]-this.x)/this.k,(Fe[1]-this.y)/this.k]},invertX:function(Fe){return(Fe-this.x)/this.k},invertY:function(Fe){return(Fe-this.y)/this.k},rescaleX:function(Fe){return Fe.copy().domain(Fe.range().map(this.invertX,this).map(Fe.invert,Fe))},rescaleY:function(Fe){return Fe.copy().domain(Fe.range().map(this.invertY,this).map(Fe.invert,Fe))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Ka=new ul(1,0,0);function Dl(Fe){Fe.stopImmediatePropagation()}function Ol(Fe){Fe.preventDefault(),Fe.stopImmediatePropagation()}function Ou(Fe){return!(Fe.ctrlKey&&Fe.type!=="wheel"||Fe.button)}function Wu(){var Fe=this;return Fe instanceof SVGElement?(Fe=Fe.ownerSVGElement||Fe).hasAttribute("viewBox")?[[(Fe=Fe.viewBox.baseVal).x,Fe.y],[Fe.x+Fe.width,Fe.y+Fe.height]]:[[0,0],[Fe.width.baseVal.value,Fe.height.baseVal.value]]:[[0,0],[Fe.clientWidth,Fe.clientHeight]]}function Jl(){return this.__zoom||Ka}function tf(Fe){return-Fe.deltaY*(Fe.deltaMode===1?.05:Fe.deltaMode?1:.002)*(Fe.ctrlKey?10:1)}function la(){return navigator.maxTouchPoints||"ontouchstart"in this}function rg(Fe,He,Qe){var ot=Fe.invertX(He[0][0])-Qe[0][0],vt=Fe.invertX(He[1][0])-Qe[1][0],bt=Fe.invertY(He[0][1])-Qe[0][1],Ot=Fe.invertY(He[1][1])-Qe[1][1];return Fe.translate(vt>ot?(ot+vt)/2:Math.min(0,ot)||Math.max(0,vt),Ot>bt?(bt+Ot)/2:Math.min(0,bt)||Math.max(0,Ot))}function sl(){var Fe,He,Qe,ot=Ou,vt=Wu,bt=rg,Ot=tf,wt=la,dn=[0,1/0],Vt=[[-1/0,-1/0],[1/0,1/0]],Wt=250,Bn=kn,Wn=Jt("start","zoom","end"),Gi=500,bi=0,fi=10;function Fi(Ci){Ci.property("__zoom",Jl).on("wheel.zoom",Ss,{passive:!1}).on("mousedown.zoom",Xs).on("dblclick.zoom",ua).filter(wt).on("touchstart.zoom",Ao).on("touchmove.zoom",Er).on("touchend.zoom touchcancel.zoom",ca).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function Tr(Ci,qr){return(qr=Math.max(dn[0],Math.min(dn[1],qr)))===Ci.k?Ci:new ul(qr,Ci.x,Ci.y)}function rr(Ci,qr,Mo){var Eo=qr[0]-Mo[0]*Ci.k,Ds=qr[1]-Mo[1]*Ci.k;return Eo===Ci.x&&Ds===Ci.y?Ci:new ul(Ci.k,Eo,Ds)}function to(Ci){return[(+Ci[0][0]+ +Ci[1][0])/2,(+Ci[0][1]+ +Ci[1][1])/2]}function Io(Ci,qr,Mo,Eo){Ci.on("start.zoom",function(){ks(this,arguments).event(Eo).start()}).on("interrupt.zoom end.zoom",function(){ks(this,arguments).event(Eo).end()}).tween("zoom",function(){var Ds=this,is=arguments,Ko=ks(Ds,is).event(Eo),za=vt.apply(Ds,is),tu=Mo==null?to(za):typeof Mo=="function"?Mo.apply(Ds,is):Mo,ea=Math.max(za[1][0]-za[0][0],za[1][1]-za[0][1]),Ku=Ds.__zoom,Mu=typeof qr=="function"?qr.apply(Ds,is):qr,Fc=Bn(Ku.invert(tu).concat(ea/Ku.k),Mu.invert(tu).concat(ea/Mu.k));return function(ph){if(ph===1)ph=Mu;else{var Nu=Fc(ph),sg=ea/Nu[2];ph=new ul(sg,tu[0]-Nu[0]*sg,tu[1]-Nu[1]*sg)}Ko.zoom(null,ph)}})}function ks(Ci,qr,Mo){return!Mo&&Ci.__zooming||new uo(Ci,qr)}function uo(Ci,qr){this.that=Ci,this.args=qr,this.active=0,this.sourceEvent=null,this.extent=vt.apply(Ci,qr),this.taps=0}function Ss(Ci,...qr){if(ot.apply(this,arguments)){var Mo=ks(this,qr).event(Ci),Eo=this.__zoom,Ds=Math.max(dn[0],Math.min(dn[1],Eo.k*Math.pow(2,Ot.apply(this,arguments)))),is=Or(Ci);if(Mo.wheel)Mo.mouse[0][0]===is[0]&&Mo.mouse[0][1]===is[1]||(Mo.mouse[1]=Eo.invert(Mo.mouse[0]=is)),clearTimeout(Mo.wheel);else{if(Eo.k===Ds)return;Mo.mouse=[is,Eo.invert(is)],ri(this),Mo.start()}Ol(Ci),Mo.wheel=setTimeout(Ko,150),Mo.zoom("mouse",bt(rr(Tr(Eo,Ds),Mo.mouse[0],Mo.mouse[1]),Mo.extent,Vt))}function Ko(){Mo.wheel=null,Mo.end()}}function Xs(Ci,...qr){if(!Qe&&ot.apply(this,arguments)){var Mo=Ci.currentTarget,Eo=ks(this,qr,!0).event(Ci),Ds=Wr(Ci.view).on("mousemove.zoom",tu,!0).on("mouseup.zoom",ea,!0),is=Or(Ci,Mo),Ko=Ci.clientX,za=Ci.clientY;ls(Ci.view),Dl(Ci),Eo.mouse=[is,this.__zoom.invert(is)],ri(this),Eo.start()}function tu(Ku){if(Ol(Ku),!Eo.moved){var Mu=Ku.clientX-Ko,Fc=Ku.clientY-za;Eo.moved=Mu*Mu+Fc*Fc>bi}Eo.event(Ku).zoom("mouse",bt(rr(Eo.that.__zoom,Eo.mouse[0]=Or(Ku,Mo),Eo.mouse[1]),Eo.extent,Vt))}function ea(Ku){Ds.on("mousemove.zoom mouseup.zoom",null),La(Ku.view,Eo.moved),Ol(Ku),Eo.event(Ku).end()}}function ua(Ci,...qr){if(ot.apply(this,arguments)){var Mo=this.__zoom,Eo=Or(Ci.changedTouches?Ci.changedTouches[0]:Ci,this),Ds=Mo.invert(Eo),is=Mo.k*(Ci.shiftKey?.5:2),Ko=bt(rr(Tr(Mo,is),Eo,Ds),vt.apply(this,qr),Vt);Ol(Ci),Wt>0?Wr(this).transition().duration(Wt).call(Io,Ko,Eo,Ci):Wr(this).call(Fi.transform,Ko,Eo,Ci)}}function Ao(Ci,...qr){if(ot.apply(this,arguments)){var Mo,Eo,Ds,is,Ko=Ci.touches,za=Ko.length,tu=ks(this,qr,Ci.changedTouches.length===za).event(Ci);for(Dl(Ci),Eo=0;Eo<za;++Eo)is=[is=Or(Ds=Ko[Eo],this),this.__zoom.invert(is),Ds.identifier],tu.touch0?tu.touch1||tu.touch0[2]===is[2]||(tu.touch1=is,tu.taps=0):(tu.touch0=is,Mo=!0,tu.taps=1+!!Fe);Fe&&(Fe=clearTimeout(Fe)),Mo&&(tu.taps<2&&(He=is[0],Fe=setTimeout(function(){Fe=null},Gi)),ri(this),tu.start())}}function Er(Ci,...qr){if(this.__zooming){var Mo,Eo,Ds,is,Ko=ks(this,qr).event(Ci),za=Ci.changedTouches,tu=za.length;for(Ol(Ci),Mo=0;Mo<tu;++Mo)Ds=Or(Eo=za[Mo],this),Ko.touch0&&Ko.touch0[2]===Eo.identifier?Ko.touch0[0]=Ds:Ko.touch1&&Ko.touch1[2]===Eo.identifier&&(Ko.touch1[0]=Ds);if(Eo=Ko.that.__zoom,Ko.touch1){var ea=Ko.touch0[0],Ku=Ko.touch0[1],Mu=Ko.touch1[0],Fc=Ko.touch1[1],ph=(ph=Mu[0]-ea[0])*ph+(ph=Mu[1]-ea[1])*ph,Nu=(Nu=Fc[0]-Ku[0])*Nu+(Nu=Fc[1]-Ku[1])*Nu;Eo=Tr(Eo,Math.sqrt(ph/Nu)),Ds=[(ea[0]+Mu[0])/2,(ea[1]+Mu[1])/2],is=[(Ku[0]+Fc[0])/2,(Ku[1]+Fc[1])/2]}else{if(!Ko.touch0)return;Ds=Ko.touch0[0],is=Ko.touch0[1]}Ko.zoom("touch",bt(rr(Eo,Ds,is),Ko.extent,Vt))}}function ca(Ci,...qr){if(this.__zooming){var Mo,Eo,Ds=ks(this,qr).event(Ci),is=Ci.changedTouches,Ko=is.length;for(Dl(Ci),Qe&&clearTimeout(Qe),Qe=setTimeout(function(){Qe=null},Gi),Mo=0;Mo<Ko;++Mo)Eo=is[Mo],Ds.touch0&&Ds.touch0[2]===Eo.identifier?delete Ds.touch0:Ds.touch1&&Ds.touch1[2]===Eo.identifier&&delete Ds.touch1;if(Ds.touch1&&!Ds.touch0&&(Ds.touch0=Ds.touch1,delete Ds.touch1),Ds.touch0)Ds.touch0[1]=this.__zoom.invert(Ds.touch0[0]);else if(Ds.end(),Ds.taps===2&&(Eo=Or(Eo,this),Math.hypot(He[0]-Eo[0],He[1]-Eo[1])<fi)){var za=Wr(this).on("dblclick.zoom");za&&za.apply(this,arguments)}}}return Fi.transform=function(Ci,qr,Mo,Eo){var Ds=Ci.selection?Ci.selection():Ci;Ds.property("__zoom",Jl),Ci!==Ds?Io(Ci,qr,Mo,Eo):Ds.interrupt().each(function(){ks(this,arguments).event(Eo).start().zoom(null,typeof qr=="function"?qr.apply(this,arguments):qr).end()})},Fi.scaleBy=function(Ci,qr,Mo,Eo){Fi.scaleTo(Ci,function(){var Ds=this.__zoom.k,is=typeof qr=="function"?qr.apply(this,arguments):qr;return Ds*is},Mo,Eo)},Fi.scaleTo=function(Ci,qr,Mo,Eo){Fi.transform(Ci,function(){var Ds=vt.apply(this,arguments),is=this.__zoom,Ko=Mo==null?to(Ds):typeof Mo=="function"?Mo.apply(this,arguments):Mo,za=is.invert(Ko),tu=typeof qr=="function"?qr.apply(this,arguments):qr;return bt(rr(Tr(is,tu),Ko,za),Ds,Vt)},Mo,Eo)},Fi.translateBy=function(Ci,qr,Mo,Eo){Fi.transform(Ci,function(){return bt(this.__zoom.translate(typeof qr=="function"?qr.apply(this,arguments):qr,typeof Mo=="function"?Mo.apply(this,arguments):Mo),vt.apply(this,arguments),Vt)},null,Eo)},Fi.translateTo=function(Ci,qr,Mo,Eo,Ds){Fi.transform(Ci,function(){var is=vt.apply(this,arguments),Ko=this.__zoom,za=Eo==null?to(is):typeof Eo=="function"?Eo.apply(this,arguments):Eo;return bt(Ka.translate(za[0],za[1]).scale(Ko.k).translate(typeof qr=="function"?-qr.apply(this,arguments):-qr,typeof Mo=="function"?-Mo.apply(this,arguments):-Mo),is,Vt)},Eo,Ds)},uo.prototype={event:function(Ci){return Ci&&(this.sourceEvent=Ci),this},start:function(){return++this.active==1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(Ci,qr){return this.mouse&&Ci!=="mouse"&&(this.mouse[1]=qr.invert(this.mouse[0])),this.touch0&&Ci!=="touch"&&(this.touch0[1]=qr.invert(this.touch0[0])),this.touch1&&Ci!=="touch"&&(this.touch1[1]=qr.invert(this.touch1[0])),this.that.__zoom=qr,this.emit("zoom"),this},end:function(){return--this.active==0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(Ci){var qr=Wr(this.that).datum();Wn.call(Ci,this.that,new xf(Ci,{sourceEvent:this.sourceEvent,target:Fi,type:Ci,transform:this.that.__zoom,dispatch:Wn}),qr)}},Fi.wheelDelta=function(Ci){return arguments.length?(Ot=typeof Ci=="function"?Ci:Ju(+Ci),Fi):Ot},Fi.filter=function(Ci){return arguments.length?(ot=typeof Ci=="function"?Ci:Ju(!!Ci),Fi):ot},Fi.touchable=function(Ci){return arguments.length?(wt=typeof Ci=="function"?Ci:Ju(!!Ci),Fi):wt},Fi.extent=function(Ci){return arguments.length?(vt=typeof Ci=="function"?Ci:Ju([[+Ci[0][0],+Ci[0][1]],[+Ci[1][0],+Ci[1][1]]]),Fi):vt},Fi.scaleExtent=function(Ci){return arguments.length?(dn[0]=+Ci[0],dn[1]=+Ci[1],Fi):[dn[0],dn[1]]},Fi.translateExtent=function(Ci){return arguments.length?(Vt[0][0]=+Ci[0][0],Vt[1][0]=+Ci[1][0],Vt[0][1]=+Ci[0][1],Vt[1][1]=+Ci[1][1],Fi):[[Vt[0][0],Vt[0][1]],[Vt[1][0],Vt[1][1]]]},Fi.constrain=function(Ci){return arguments.length?(bt=Ci,Fi):bt},Fi.duration=function(Ci){return arguments.length?(Wt=+Ci,Fi):Wt},Fi.interpolate=function(Ci){return arguments.length?(Bn=Ci,Fi):Bn},Fi.on=function(){var Ci=Wn.on.apply(Wn,arguments);return Ci===Wn?Fi:Ci},Fi.clickDistance=function(Ci){return arguments.length?(bi=(Ci=+Ci)*Ci,Fi):Math.sqrt(bi)},Fi.tapDistance=function(Ci){return arguments.length?(fi=+Ci,Fi):fi},Fi}function Uh(){Uh=function(){return Fe};var Fe={},He=Object.prototype,Qe=He.hasOwnProperty,ot=typeof Symbol=="function"?Symbol:{},vt=ot.iterator||"@@iterator",bt=ot.asyncIterator||"@@asyncIterator",Ot=ot.toStringTag||"@@toStringTag";function wt(Ao,Er,ca){return Object.defineProperty(Ao,Er,{value:ca,enumerable:!0,configurable:!0,writable:!0}),Ao[Er]}try{wt({},"")}catch(Ao){wt=function(Er,ca,Ci){return Er[ca]=Ci}}function dn(Ao,Er,ca,Ci){var qr=Er&&Er.prototype instanceof Bn?Er:Bn,Mo=Object.create(qr.prototype),Eo=new Ss(Ci||[]);return Mo._invoke=function(Ds,is,Ko){var za="suspendedStart";return function(tu,ea){if(za==="executing")throw new Error("Generator is already running");if(za==="completed"){if(tu==="throw")throw ea;return ua()}for(Ko.method=tu,Ko.arg=ea;;){var Ku=Ko.delegate;if(Ku){var Mu=Io(Ku,Ko);if(Mu){if(Mu===Wt)continue;return Mu}}if(Ko.method==="next")Ko.sent=Ko._sent=Ko.arg;else if(Ko.method==="throw"){if(za==="suspendedStart")throw za="completed",Ko.arg;Ko.dispatchException(Ko.arg)}else Ko.method==="return"&&Ko.abrupt("return",Ko.arg);za="executing";var Fc=Vt(Ds,is,Ko);if(Fc.type==="normal"){if(za=Ko.done?"completed":"suspendedYield",Fc.arg===Wt)continue;return{value:Fc.arg,done:Ko.done}}Fc.type==="throw"&&(za="completed",Ko.method="throw",Ko.arg=Fc.arg)}}}(Ao,ca,Eo),Mo}function Vt(Ao,Er,ca){try{return{type:"normal",arg:Ao.call(Er,ca)}}catch(Ci){return{type:"throw",arg:Ci}}}Fe.wrap=dn;var Wt={};function Bn(){}function Wn(){}function Gi(){}var bi={};wt(bi,vt,function(){return this});var fi=Object.getPrototypeOf,Fi=fi&&fi(fi(Xs([])));Fi&&Fi!==He&&Qe.call(Fi,vt)&&(bi=Fi);var Tr=Gi.prototype=Bn.prototype=Object.create(bi);function rr(Ao){["next","throw","return"].forEach(function(Er){wt(Ao,Er,function(ca){return this._invoke(Er,ca)})})}function to(Ao,Er){function ca(qr,Mo,Eo,Ds){var is=Vt(Ao[qr],Ao,Mo);if(is.type!=="throw"){var Ko=is.arg,za=Ko.value;return za&&typeof za=="object"&&Qe.call(za,"__await")?Er.resolve(za.__await).then(function(tu){ca("next",tu,Eo,Ds)},function(tu){ca("throw",tu,Eo,Ds)}):Er.resolve(za).then(function(tu){Ko.value=tu,Eo(Ko)},function(tu){return ca("throw",tu,Eo,Ds)})}Ds(is.arg)}var Ci;this._invoke=function(qr,Mo){function Eo(){return new Er(function(Ds,is){ca(qr,Mo,Ds,is)})}return Ci=Ci?Ci.then(Eo,Eo):Eo()}}function Io(Ao,Er){var ca=Ao.iterator[Er.method];if(ca===void 0){if(Er.delegate=null,Er.method==="throw"){if(Ao.iterator.return&&(Er.method="return",Er.arg=void 0,Io(Ao,Er),Er.method==="throw"))return Wt;Er.method="throw",Er.arg=new TypeError("The iterator does not provide a 'throw' method")}return Wt}var Ci=Vt(ca,Ao.iterator,Er.arg);if(Ci.type==="throw")return Er.method="throw",Er.arg=Ci.arg,Er.delegate=null,Wt;var qr=Ci.arg;return qr?qr.done?(Er[Ao.resultName]=qr.value,Er.next=Ao.nextLoc,Er.method!=="return"&&(Er.method="next",Er.arg=void 0),Er.delegate=null,Wt):qr:(Er.method="throw",Er.arg=new TypeError("iterator result is not an object"),Er.delegate=null,Wt)}function ks(Ao){var Er={tryLoc:Ao[0]};1 in Ao&&(Er.catchLoc=Ao[1]),2 in Ao&&(Er.finallyLoc=Ao[2],Er.afterLoc=Ao[3]),this.tryEntries.push(Er)}function uo(Ao){var Er=Ao.completion||{};Er.type="normal",delete Er.arg,Ao.completion=Er}function Ss(Ao){this.tryEntries=[{tryLoc:"root"}],Ao.forEach(ks,this),this.reset(!0)}function Xs(Ao){if(Ao){var Er=Ao[vt];if(Er)return Er.call(Ao);if(typeof Ao.next=="function")return Ao;if(!isNaN(Ao.length)){var ca=-1,Ci=function qr(){for(;++ca<Ao.length;)if(Qe.call(Ao,ca))return qr.value=Ao[ca],qr.done=!1,qr;return qr.value=void 0,qr.done=!0,qr};return Ci.next=Ci}}return{next:ua}}function ua(){return{value:void 0,done:!0}}return Wn.prototype=Gi,wt(Tr,"constructor",Gi),wt(Gi,"constructor",Wn),Wn.displayName=wt(Gi,Ot,"GeneratorFunction"),Fe.isGeneratorFunction=function(Ao){var Er=typeof Ao=="function"&&Ao.constructor;return!!Er&&(Er===Wn||(Er.displayName||Er.name)==="GeneratorFunction")},Fe.mark=function(Ao){return Object.setPrototypeOf?Object.setPrototypeOf(Ao,Gi):(Ao.__proto__=Gi,wt(Ao,Ot,"GeneratorFunction")),Ao.prototype=Object.create(Tr),Ao},Fe.awrap=function(Ao){return{__await:Ao}},rr(to.prototype),wt(to.prototype,bt,function(){return this}),Fe.AsyncIterator=to,Fe.async=function(Ao,Er,ca,Ci,qr){qr===void 0&&(qr=Promise);var Mo=new to(dn(Ao,Er,ca,Ci),qr);return Fe.isGeneratorFunction(Er)?Mo:Mo.next().then(function(Eo){return Eo.done?Eo.value:Mo.next()})},rr(Tr),wt(Tr,Ot,"Generator"),wt(Tr,vt,function(){return this}),wt(Tr,"toString",function(){return"[object Generator]"}),Fe.keys=function(Ao){var Er=[];for(var ca in Ao)Er.push(ca);return Er.reverse(),function Ci(){for(;Er.length;){var qr=Er.pop();if(qr in Ao)return Ci.value=qr,Ci.done=!1,Ci}return Ci.done=!0,Ci}},Fe.values=Xs,Ss.prototype={constructor:Ss,reset:function(Ao){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(uo),!Ao)for(var Er in this)Er.charAt(0)==="t"&&Qe.call(this,Er)&&!isNaN(+Er.slice(1))&&(this[Er]=void 0)},stop:function(){this.done=!0;var Ao=this.tryEntries[0].completion;if(Ao.type==="throw")throw Ao.arg;return this.rval},dispatchException:function(Ao){if(this.done)throw Ao;var Er=this;function ca(is,Ko){return Mo.type="throw",Mo.arg=Ao,Er.next=is,Ko&&(Er.method="next",Er.arg=void 0),!!Ko}for(var Ci=this.tryEntries.length-1;Ci>=0;--Ci){var qr=this.tryEntries[Ci],Mo=qr.completion;if(qr.tryLoc==="root")return ca("end");if(qr.tryLoc<=this.prev){var Eo=Qe.call(qr,"catchLoc"),Ds=Qe.call(qr,"finallyLoc");if(Eo&&Ds){if(this.prev<qr.catchLoc)return ca(qr.catchLoc,!0);if(this.prev<qr.finallyLoc)return ca(qr.finallyLoc)}else if(Eo){if(this.prev<qr.catchLoc)return ca(qr.catchLoc,!0)}else{if(!Ds)throw new Error("try statement without catch or finally");if(this.prev<qr.finallyLoc)return ca(qr.finallyLoc)}}}},abrupt:function(Ao,Er){for(var ca=this.tryEntries.length-1;ca>=0;--ca){var Ci=this.tryEntries[ca];if(Ci.tryLoc<=this.prev&&Qe.call(Ci,"finallyLoc")&&this.prev<Ci.finallyLoc){var qr=Ci;break}}qr&&(Ao==="break"||Ao==="continue")&&qr.tryLoc<=Er&&Er<=qr.finallyLoc&&(qr=null);var Mo=qr?qr.completion:{};return Mo.type=Ao,Mo.arg=Er,qr?(this.method="next",this.next=qr.finallyLoc,Wt):this.complete(Mo)},complete:function(Ao,Er){if(Ao.type==="throw")throw Ao.arg;return Ao.type==="break"||Ao.type==="continue"?this.next=Ao.arg:Ao.type==="return"?(this.rval=this.arg=Ao.arg,this.method="return",this.next="end"):Ao.type==="normal"&&Er&&(this.next=Er),Wt},finish:function(Ao){for(var Er=this.tryEntries.length-1;Er>=0;--Er){var ca=this.tryEntries[Er];if(ca.finallyLoc===Ao)return this.complete(ca.completion,ca.afterLoc),uo(ca),Wt}},catch:function(Ao){for(var Er=this.tryEntries.length-1;Er>=0;--Er){var ca=this.tryEntries[Er];if(ca.tryLoc===Ao){var Ci=ca.completion;if(Ci.type==="throw"){var qr=Ci.arg;uo(ca)}return qr}}throw new Error("illegal catch attempt")},delegateYield:function(Ao,Er,ca){return this.delegate={iterator:Xs(Ao),resultName:Er,nextLoc:ca},this.method==="next"&&(this.arg=void 0),Wt}},Fe}function Jh(Fe){return Jh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(He){return typeof He}:function(He){return He&&typeof Symbol=="function"&&He.constructor===Symbol&&He!==Symbol.prototype?"symbol":typeof He},Jh(Fe)}function lu(Fe,He,Qe,ot,vt,bt,Ot){try{var wt=Fe[bt](Ot),dn=wt.value}catch(Vt){return void Qe(Vt)}wt.done?He(dn):Promise.resolve(dn).then(ot,vt)}function lp(Fe){return function(){var He=this,Qe=arguments;return new Promise(function(ot,vt){var bt=Fe.apply(He,Qe);function Ot(dn){lu(bt,ot,vt,Ot,wt,"next",dn)}function wt(dn){lu(bt,ot,vt,Ot,wt,"throw",dn)}Ot(void 0)})}}function wf(Fe,He){if(!(Fe instanceof He))throw new TypeError("Cannot call a class as a function")}function qh(Fe,He){for(var Qe=0;Qe<He.length;Qe++){var ot=He[Qe];ot.enumerable=ot.enumerable||!1,ot.configurable=!0,"value"in ot&&(ot.writable=!0),Object.defineProperty(Fe,ot.key,ot)}}function Sf(Fe,He,Qe){return He&&qh(Fe.prototype,He),Qe&&qh(Fe,Qe),Object.defineProperty(Fe,"prototype",{writable:!1}),Fe}function ql(Fe,He){return function(Qe){if(Array.isArray(Qe))return Qe}(Fe)||function(Qe,ot){var vt=Qe==null?null:typeof Symbol!="undefined"&&Qe[Symbol.iterator]||Qe["@@iterator"];if(vt!=null){var bt,Ot,wt=[],dn=!0,Vt=!1;try{for(vt=vt.call(Qe);!(dn=(bt=vt.next()).done)&&(wt.push(bt.value),!ot||wt.length!==ot);dn=!0);}catch(Wt){Vt=!0,Ot=Wt}finally{try{dn||vt.return==null||vt.return()}finally{if(Vt)throw Ot}}return wt}}(Fe,He)||_h(Fe,He)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function _h(Fe,He){if(Fe){if(typeof Fe=="string")return Hp(Fe,He);var Qe=Object.prototype.toString.call(Fe).slice(8,-1);return Qe==="Object"&&Fe.constructor&&(Qe=Fe.constructor.name),Qe==="Map"||Qe==="Set"?Array.from(Fe):Qe==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Qe)?Hp(Fe,He):void 0}}function Hp(Fe,He){(He==null||He>Fe.length)&&(He=Fe.length);for(var Qe=0,ot=new Array(He);Qe<He;Qe++)ot[Qe]=Fe[Qe];return ot}function Pf(Fe,He){var Qe=typeof Symbol!="undefined"&&Fe[Symbol.iterator]||Fe["@@iterator"];if(!Qe){if(Array.isArray(Fe)||(Qe=_h(Fe))||He&&Fe&&typeof Fe.length=="number"){Qe&&(Fe=Qe);var ot=0,vt=function(){};return{s:vt,n:function(){return ot>=Fe.length?{done:!0}:{done:!1,value:Fe[ot++]}},e:function(dn){throw dn},f:vt}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var bt,Ot=!0,wt=!1;return{s:function(){Qe=Qe.call(Fe)},n:function(){var dn=Qe.next();return Ot=dn.done,dn},e:function(dn){wt=!0,bt=dn},f:function(){try{Ot||Qe.return==null||Qe.return()}finally{if(wt)throw bt}}}}function Vp(Fe){var He=32;switch(Fe){case 0:He=23;break;case 1:He=26;break;case 2:default:He=32;break;case 3:He=38}return He}function nf(Fe){Fe=Fe.sort();for(var He=[],Qe=0;Qe<Fe.length;Qe++)Fe[Qe]!==Fe[Qe-1]&&He.push(Fe[Qe]);return He}function gl(Fe,He){var Qe=0,ot=[],vt=[];return Fe&&function(){var bt,Ot=(Fe+="").split(""),wt=0;for(wt=0;wt<Ot.length;wt++)bt=Ot[wt],/(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])/.test(bt)?new Array(10).fill(1).forEach(function(){(Qe===He||Qe===2*He||Qe===3*He)&&ot.push(wt),Qe+=1}):new Array(5).fill(1).forEach(function(){(Qe===He||Qe===2*He||Qe===3*He)&&ot.push(wt),Qe+=1});wt===Fe.length&&(Qe<He||!ot.length||Qe>He&&Qe<2*He||Qe>He&&Qe<3*He)&&ot.push(Fe.length);var dn=ot.length;dn===1?vt.push({text:Fe,x:0,y:0}):dn===2?ot.forEach(function(Vt,Wt){Wt===0?vt.push({text:Fe.substring(0,Vt),x:0,y:-7}):vt.push({text:Fe.substring(ot[0],Vt),x:0,y:7})}):ot.forEach(function(Vt,Wt){Wt===0?vt.push({text:Fe.substring(0,Vt),x:0,y:-12}):Wt===1?vt.push({text:Fe.substring(ot[0],Vt+1),x:0,y:4}):Fe.length>Vt?(()=>{var Bn=vt.reduce((Wn,Gi)=>Wn+Gi.text.length,0);vt.push({text:Fe.substring(Bn,Bn+2)+(Fe.length-(Bn+2)>0?"...":""),x:0,y:16})})():vt.push({text:Fe.substring(ot[1]+1,Vt),x:0,y:16})})}(),vt}ul.prototype;var Xl=["circle","rect","ellipse"],oc=["url(#radialGradient-1)","url(#radialGradient-2)","url(#radialGradient-3)"],Ac=["url(#lines1)","url(#lines2)","url(#lines3)"];function gr(Fe,He,Qe){return Fe.selectAll(".node-circle").remove(),Fe.selectAll(".node-circle").data(He,function(ot){return ot.id}).enter().append(function(ot){return Xl.includes(ot.shape)?document.createElementNS("http://www.w3.org/2000/svg",ot.shape):document.createElementNS("http://www.w3.org/2000/svg","circle")}).style("display",function(ot){return ot.hide?"none":"block"}).style("opacity",function(ot){return ot.hide?"0":"1"}).attr("r",function(ot){return ot.shape=="circle"?Hh(ot.size):null}).attr("rx",function(ot){return ot.shape=="ellipse"?Hh(ot.size)+10:ot.shape=="rect"?10:null}).attr("ry",function(ot){return ot.shape=="ellipse"?Hh(ot.size)+10:ot.shape=="rect"?10:null}).attr("width",function(ot){return ot.shape=="rect"?3*(Hh(ot.size)-6):2*(Hh(ot.size)-6)}).attr("height",function(ot){return ot.shape=="rect"?1.5*(Hh(ot.size)-6):2*(Hh(ot.size)-6)}).attr("fill",function(ot){return ot.colorType?oc[ot.colorType-1]:ot.color||"url(#radialGradient-1)"}).attr("color",function(ot){return ot.color||"#2E8B57"}).attr("class",function(ot){return"node-circle node-circle-".concat(ot.id," transition-opacity duration-500")}).attr("id",function(ot){return"node-circle".concat(ot.id)}).style("cursor","pointer").on("mouseover",function(ot,vt){var bt=vt.activeColor||"#008FFF";ot.target.setAttribute("stroke",bt),ot.target.setAttribute("stroke-width","8")}).on("mouseout",function(ot){ot.target.setAttribute("stroke-width","0")}).append("title").text(function(ot){return ot.name}),Fe.selectAll(".node-circle")}function Hh(Fe){var He=32;switch(Fe){case 0:He=23;break;case 1:He=26;break;case 2:default:He=32;break;case 3:He=38}return He}function Cf(Fe,He){return Fe.selectAll("text").remove(),Fe.selectAll("text").data(He,function(Qe){return Qe.id}).enter().append("text").attr("dy",".35em").attr("text-anchor","middle").attr("pointer-events","none").style("fill","#fff").style("font-size","10px").style("text-anchor","middle").attr("class",function(Qe){return"node-text node-circle node-circle--text-".concat(Qe.id," node-text-").concat(Qe.id," transition-opacity duration-500")}).style("cursor","pointer").append("svg:title").text(function(Qe){return Qe.name}),Fe.selectAll("text").style("display",function(Qe){return Qe.hide?"none":"block"}),Fe.selectAll("text").attr("d",function(Qe){Qe.shape=="rect"?Wr(".node-circle--text-".concat(Qe.id)).append("tspan").style("cursor","pointer").append("tspan").text(function(ot){return ot.name}):gl(Qe.name,Hh(Qe.size)).forEach(function(ot,vt){Wr(".node-circle--text-".concat(Qe.id)).append("tspan").style("cursor","pointer").attr("class",function(bt){return"node-circle--tspan-".concat(bt.id,"-").concat(vt)}).attr("x",ot.x).attr("y",ot.y).text(function(){return ot.text})})}),Fe.selectAll("text")}function Rl(Fe){var He=arguments.length>1&&arguments[1]!==void 0&&arguments[1],Qe=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],ot=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},vt=ot._ops,bt=Wr("body"),Ot=[];if(He&&vt.isShowBatchOperation)return Qe.push(Fe.id),Wr("".concat(vt.containerName)).style("background","#5e5e5e"),Qe.forEach(function(Bn){Ot.push(bt.select("".concat(vt.containerName," .node-circle-").concat(Bn)).attr("color"))}),bt.selectAll("".concat(vt.containerName," .node-circle")).attr("fill","#3c3b3b"),Qe.forEach(function(Bn,Wn){bt.select("".concat(vt.containerName," .node-circle-").concat(Bn)).attr("fill",Ot[Wn])}),void Wr(".graph-bath").style("display","block");if(vt.isShowMask){var wt=[],dn=[];vt.links.map(function(Bn){Bn.source.id==Fe.id&&(wt.push(Bn.target.id),dn.push(Bn.source.id+Bn.target.id)),Bn.target.id==Fe.id&&(wt.push(Bn.source.id),dn.push(Bn.source.id+Bn.target.id))});var Vt=nf(wt),Wt=nf(dn);Vt.push(Fe.id),bt.selectAll("".concat(vt.containerName," .line-item")).style("display","none"),Wr("".concat(vt.containerName)).style("background","#5e5e5e"),Vt.forEach(function(Bn){Ot.push(bt.select("".concat(vt.containerName," .node-circle-").concat(Bn)).attr("color"))}),bt.selectAll("".concat(vt.containerName," .node-circle")).attr("fill","#3c3b3b"),Vt.forEach(function(Bn,Wn){bt.select("".concat(vt.containerName," .node-circle-").concat(Bn)).attr("fill",Ot[Wn])}),Wt.forEach(function(Bn){bt.selectAll("".concat(vt.containerName," .line-item-").concat(Bn)).style("display",function(Wn){return Wn.hide?"none":"block"})})}}var Va=[],Nc={addPath:function(Fe){Fe.forEach(function(He){var Qe=Va.indexOf(He);Qe!=-1&&Va.splice(Qe,1),Va.unshift(He)})},getPath:function(){return Va},clearPath:function(){Va.length=0}};function Ef(Fe,He,Qe,ot){return rm.apply(this,arguments)}function rm(){return rm=lp(Uh().mark(function Fe(He,Qe,ot,vt){var bt;return Uh().wrap(function(Ot){for(;;)switch(Ot.prev=Ot.next){case 0:return bt=ot._ops,Ot.delegateYield(Uh().mark(function wt(){var dn,Vt,Wt,Bn,Wn,Gi,bi,fi,Fi,Tr,rr,to,Io,ks,uo,Ss,Xs,ua,Ao,Er,ca,Ci,qr,Mo,Eo,Ds,is,Ko,za,tu;return Uh().wrap(function(ea){for(;;)switch(ea.prev=ea.next){case 0:ea.t0=He,ea.next=ea.t0==="remove"?3:ea.t0==="hide"?19:ea.t0==="contraction"?22:ea.t0==="extend"?42:ea.t0==="editSize"?62:ea.t0==="editColor"?71:ea.t0==="editShape"?79:ea.t0==="extend-path"?87:ea.t0==="contraction-path"?96:100;break;case 3:dn=0;case 4:if(!(dn<Qe.length)){ea.next=17;break}Vt=0;case 6:if(!(Vt<bt.nodes.length)){ea.next=13;break}if(bt.nodes[Vt].id!=Qe[dn]){ea.next=10;break}return bt.nodes.splice(Vt,1),ea.abrupt("break",13);case 10:Vt++,ea.next=6;break;case 13:for(Wt=0;Wt<bt.links.length;Wt++)bt.links[Wt].source.id!=Qe[dn]&&bt.links[Wt].target.id!=Qe[dn]||(bt.links.splice(Wt,1),Wt--);case 14:dn++,ea.next=4;break;case 17:return ot.update(),ea.abrupt("break",100);case 19:for(Bn=0;Bn<Qe.length;Bn++){for(Wn=0;Wn<bt.nodes.length;Wn++)bt.nodes[Wn].id==Qe[Bn]&&(bt.nodes[Wn].hide=!0);for(Gi=0;Gi<bt.links.length;Gi++)bt.links[Gi].source.id!=Qe[Bn]&&bt.links[Gi].target.id!=Qe[Bn]||(bt.links[Gi].hide=!0)}return ot.update(),ea.abrupt("break",100);case 22:for(bi=[],fi=function(Ku){bt.links.map(function(Mu){if(Mu.source.id==Qe[Ku]){Mu.hide=!0;for(var Fc=!1,ph=0;ph<bt.links.length;ph++)(bt.links[ph].source.id==Mu.target.id||bt.links[ph].target.id==Mu.target.id&&bt.links[ph].source.id!=Qe[Ku])&&(Fc=!0);Fc||bi.push(Mu.target.id)}})},Fi=0;Fi<Qe.length;Fi++)fi(Fi);Tr=0;case 26:if(!(Tr<bt.nodes.length)){ea.next=40;break}rr=0;case 28:if(!(rr<bi.length)){ea.next=37;break}if(bt.nodes[Tr].id!=bi[rr]){ea.next=34;break}return bt.nodes[Tr].hide=!0,bi.splice(rr,1),rr--,ea.abrupt("break",37);case 34:rr++,ea.next=28;break;case 37:Tr++,ea.next=26;break;case 40:return ot.update(),ea.abrupt("break",100);case 42:for(to=[],Io=function(Ku){bt.links.map(function(Mu){Mu.source.id==Qe[Ku]&&(Mu.hide=!1,to.push(Mu.target.id))})},ks=0;ks<Qe.length;ks++)Io(ks);uo=0;case 46:if(!(uo<bt.nodes.length)){ea.next=60;break}Ss=0;case 48:if(!(Ss<to.length)){ea.next=57;break}if(bt.nodes[uo].id!=to[Ss]){ea.next=54;break}return bt.nodes[uo].hide=!1,to.splice(Ss,1),Ss--,ea.abrupt("break",57);case 54:Ss++,ea.next=48;break;case 57:uo++,ea.next=46;break;case 60:return ot.update(),ea.abrupt("break",100);case 62:if(Xs=0,!vt){ea.next=70;break}return ea.next=66,vt();case 66:for((Xs=ea.sent)<=24&&(Xs=24),ua=0;ua<Qe.length;ua++)for(Ao=0;Ao<bt.nodes.length;Ao++)bt.nodes[Ao].id==Qe[ua]&&(bt.nodes[Ao].size=Xs);ot.update();case 70:return ea.abrupt("break",100);case 71:if(Er=0,!vt){ea.next=78;break}return ea.next=75,vt();case 75:for(Er=ea.sent,ca=0;ca<Qe.length;ca++)for(Ci=0;Ci<bt.nodes.length;Ci++)bt.nodes[Ci].id==Qe[ca]&&(bt.nodes[Ci].color=Er);ot.update();case 78:return ea.abrupt("break",100);case 79:if(qr="circle",!vt){ea.next=86;break}return ea.next=83,vt();case 83:for(qr=ea.sent,Mo=0;Mo<Qe.length;Mo++)for(Eo=0;Eo<bt.nodes.length;Eo++)bt.nodes[Eo].id==Qe[Mo]&&(bt.nodes[Eo].shape=qr);ot.update();case 86:return ea.abrupt("break",100);case 87:return Ds=Qe[0],is=Nc.getPath(),(Ko=is.length>1?is[1]:null)&&Vd.contractionPath(Ko,is,ot),Vd.extendPath(Ds,ot),Vd.previousStep.id=Ds,Vd.previousStep.operate="extend",ot.update(),ea.abrupt("break",100);case 96:return za=Qe[0],(tu=Nc.getPath()).indexOf(za)!=-1&&(Vd.contractionPath(za,tu,ot),Vd.previousStep.operate=="extend"&&Vd.previousStep.id!=za?(Vd.extendPath(Vd.previousStep.id,ot),Vd.previousStep.operate="extend"):(Vd.previousStep.id=za,Vd.previousStep.operate="contraction"),ot.update()),ea.abrupt("break",100);case 100:case"end":return ea.stop()}},wt)})(),"t0",2);case 2:Wr(bt.containerName).style("background",bt.background);case 3:case"end":return Ot.stop()}},Fe)})),rm.apply(this,arguments)}var jp,Vd={extendPath:function(Fe,He){for(var Qe=He._ops,ot=Qe.nodes,vt=Qe.links,bt=[],Ot=[],wt=0;wt<vt.length;wt++)vt[wt].source.id==Fe&&vt[wt].target.id!=Fe&&(Qe.links[wt].hide=!1,bt.push(vt[wt].target.id)),vt[wt].source.id!=Fe&&vt[wt].target.id==Fe&&(Qe.links[wt].hide=!1,bt.push(vt[wt].source.id));if(bt.length){for(var dn=0;dn<ot.length;dn++)for(var Vt=0;Vt<bt.length;Vt++)if(ot[dn].id==bt[Vt]){Qe.nodes[dn].hide=!1,bt.splice(Vt,1),Vt--;break}if(ot.map(function(Gi){Gi.hide&&Ot.push(Gi.id)}),Ot.length>0)for(var Wt=0;Wt<vt.length;Wt++)for(var Bn=0;Bn<Ot.length;Bn++)vt[Wt].source.id!=Ot[Bn]&&vt[Wt].target.id!=Ot[Bn]||(vt[Wt].hide=!0),Ot.includes(vt[Wt].source.id)||Ot.includes(vt[Wt].target.id)||(vt[Wt].hide=!1);else for(var Wn=0;Wn<vt.length;Wn++)vt[Wn].hide=!1}},contractionPath:function(Fe,He,Qe){for(var ot=Qe._ops,vt=ot.nodes,bt=ot.links,Ot=[],wt=[],dn=!1,Vt=0;Vt<vt.length;Vt++)if(vt[Vt].id==Fe){dn=!!vt[Vt].isExtendedState;break}if(dn&&(bt.forEach(function(bi,fi){bi.source.id==Fe&&Vd.filterEvery(He,bi.target.id)&&(ot.links[fi].hide=!0,Ot.push(bi.target.id)),bi.target.id==Fe&&Vd.filterEvery(He,bi.source.id)&&(ot.links[fi].hide=!0,Ot.push(bi.source.id))}),Ot.length)){for(var Wt=0;Wt<vt.length;Wt++)for(var Bn=0;Bn<Ot.length;Bn++)if(vt[Wt].id==Ot[Bn]){ot.nodes[Wt].hide=!0,wt.push(ot.nodes[Wt].id),Ot.splice(Bn,1),Bn--;break}for(var Wn=0;Wn<bt.length;Wn++)for(var Gi=0;Gi<wt.length;Gi++)bt[Wn].source.id!=wt[Gi]&&bt[Wn].target.id!=wt[Gi]||(bt[Wn].hide=!0)}},filterEvery:function(Fe,He){return Fe.every(function(Qe){return Qe!=He})},previousStep:{id:"0",operate:"undefined"}};function bu(Fe,He,Qe){var ot=Fe.selectAll(".line-item");return(ot=ot.data(He,function(vt){return"".concat(vt.source.id,"_").concat(vt.target.id)})).exit().remove(),(ot=ot.enter().append("g")).append("path").style("fill",function(vt){return vt.colorType?Ac[vt.colorType-1]:vt.color||"url(#lines1)"}).attr("stroke-width",function(vt){return Math.sqrt(vt.value)}).attr("stroke","none").style("cursor","pointer").attr("class",function(vt,bt){return"line-item-inner line-item-inner-".concat(bt)}).on("click",function(vt,bt){Qe._ops.linkClick(bt)}).on("mouseover",function(vt,bt){og(Fe,bt,"in",Qe)}).on("mouseout",function(vt,bt){og(Fe,bt,"out",Qe)}),ot.attr("class",function(vt){return"line-item line-item-".concat(vt.source.id).concat(vt.target.id)}).append("text").attr("class",function(vt,bt){return"line-text-item line-text-item-".concat(bt)}).attr("stroke","none").style("pointer-events","none").style("text-anchor","middle").style("fill","rgba(184, 191, 204, 1)").style("font-size","10px"),Fe.selectAll(".line-item").style("display",function(vt){return vt.hide?"none":"block"}).style("opacity",function(vt){return vt.hide?"0":"1"}).attr("class",function(vt,bt){return"line-item line-item-".concat(vt.source.id).concat(vt.target.id," line-item-index-").concat(bt," transition-opacity duration-500")}),[Fe.selectAll(".line-item"),Fe.selectAll(".line-item-inner"),Fe.selectAll(".line-text-item")]}function og(Fe,He,Qe,ot){Qe==="in"?(Fe.select(".line-item-inner-".concat(He.index)).style("fill",function(vt){return vt.colorType?Ac[vt.colorType-1]:vt.color||Ac[0]}),Fe.select(".line-item-inner-".concat(He.index)).attr("stroke-width","3"),Fe.select(".line-item-inner-".concat(He.index)).attr("stroke",function(vt){return vt.colorType?Ac[vt.colorType-1]:vt.color||Ac[0]}),Fe.select(".line-text-item-".concat(He.index)).style("fill","rgba(184, 191, 204, 1)"),Fe.select(".line-text-item-".concat(He.index)).style("font-size","14px")):(Fe.select(".line-item-inner-".concat(He.index)).style("fill",function(vt){return vt.colorType?Ac[vt.colorType-1]:vt.color||Ac[0]}),Fe.select(".line-item-inner-".concat(He.index)).attr("stroke-width",Math.sqrt(He.value)),Fe.select(".line-item-inner-".concat(He.index)).attr("stroke","none"),Fe.select(".line-text-item-".concat(He.index)).style("fill","rgba(184, 191, 204, 1)"),Fe.select(".line-text-item-".concat(He.index)).style("font-size","10px"))}function Ma(Fe){var He=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};jp=Fe,He._linkContainer.selectAll(".connect-item")._groups[0].length||He._linkContainer.append("g").attr("class","connect-item").append("path").attr("stroke-width",2).attr("stroke","#5e5ef0").attr("class","connect-item-inner"),Wr("".concat(He._ops.containerName)).on("mousemove",function(Qe){ja(Qe,He)})}function ja(Fe,He){var Qe,ot,vt,bt=(Qe=He._linkContainer._groups[0][0].parentNode.attributes.transform,{translate:(vt=(ot=Qe)&&/translate/.test(ot.value)&&/scale/.test(ot.value)&&ot.value.match(/translate\(([^\)]+)\)\s?scale\(([^\)]+)/))&&vt[1].split(",")||[0,0],scale:vt&&vt[2]||1}),Ot=bt.translate,wt=bt.scale;He._linkContainer.selectAll(".connect-item-inner").attr("d",function(){return"M".concat(jp.x,", ").concat(jp.y," L").concat(Fe.offsetX/wt-Ot[0]/wt,", ").concat(Fe.offsetY/wt-Ot[1]/wt)})}function cl(Fe){return Array.isArray(Fe[0])?{message:"success",done:function(He){for(var Qe=0;Qe<Fe.length;Qe++){var ot={hide:!1,label:Fe[Qe][2]?Fe[Qe][2].name:"",source:Fe[Qe][0][He._ops.benchmark],target:Fe[Qe][1][He._ops.benchmark],props:Fe[Qe][3]?Fe[Qe][3].name:[],sourceRadius:32,targetRadius:32,value:1,sh:1,relation:1};He._ops.links.push(ot)}uu(He),He.update()}}:{message:"error",done:uu}}function uu(Fe){Wr("".concat(Fe._ops.containerName)).on("mousemove",null),Fe._linkContainer.selectAll(".connect-item-inner").attr("d",null)}function Wl(Fe){var He=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"order",Qe=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,ot=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,vt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,bt=!0;return ot==1&&Fe.length%2==0&&(bt=!1),Fe.map(function(Ot,wt){Ot._level=ot,Ot._value=ot==1?wt+1:wt+1+(Qe-1)*Fe.length,Ot._parent=ot==2?1:vt,Ot._site=ot!=1||bt?He:wt<Fe.length/2?"right":"left",Ot.children&&Ot.children.length&&Wl(Ot.children,Ot._site,Ot._value,ot+1,Fe.length)}),Fe}var Kc,om,nx,Ov=!1,Vh=[],r0=!1,Ru=[],o0=["arc-item","pie-item","pie-icon","operation-item","node-circle"],ix=function(){function Fe(He){var Qe=this;wf(this,Fe),this._example=He,this._operationContainer=He.operationContainer,this._operationContainer.addElement(this.initPie,this),this.containerSize=0,Wr(this._example._ops.containerName).on("click",function(ot){if(!(ot.target.classList&&ot.target.classList[0]&&o0.includes(ot.target.classList[0]))&&Qe._example._ops.isCustomClick){var vt=Qe;Kc=null,dh(Qe._operationContainer),Wr(vt._example._ops.containerName).selectAll(".node-circle").attr("fill",function(bt){return bt.colorType?oc[bt.colorType-1]:bt.color||"url(#radialGradient-1)"}),Wr(vt._example._ops.containerName).selectAll(".line-item").style("display",function(bt){return bt.hide?"none":"block"}),Wr(Qe._example._ops.containerName).style("background",Qe._example._ops.background),Wr(".graph-bath").style("display","none"),Vh=[]}}),document.addEventListener("keyup",function(ot){ot.keyCode==27&&r0&&(Wr("".concat(Qe._example._ops.containerName)).on("mousemove",null),Wr(".graph-container").on("mousemove",null),Qe._example._linkContainer.selectAll(".connect-item-inner").attr("d",null),Ru.length=0)})}return Sf(Fe,[{key:"initPie",value:function(He,Qe){Qe._toolbarData=Wl(Qe._example._ops.toolbarData),Qe._symbolIcon=He.append("g").attr("class","icons")}},{key:"showPie",value:function(He,Qe){if(He){var ot=this._example._ops;if(this.containerSize=function(bt){var Ot=32;switch(bt){case 1:Ot=26;break;case 2:default:Ot=32;break;case 3:Ot=38}return Ot}(He.size)+8,r0)(function(bt,Ot){fh.apply(this,arguments)})(He,this._example);else if(Rl(He,Qe.shiftKey,Vh,this._example),this._toolbarData.length&&(dh(this._operationContainer),!Qe.shiftKey&&!Vh.length))if(Kc!=Qe.target.id){Kc=Qe.target.id,this._operationContainer.attr("transform",function(){return"translate("+He.x+" "+He.y+")"}).attr("data-node",JSON.stringify(He)).style("display","block");var vt={code:"root",name:"\u6839",_level:0,_parent:1,_value:1,children:this._toolbarData};Ov=!0,om=He,this._operationContainer.selectAll(".operation-item-root")._groups[0].length?this.drawPie("".concat(ot.containerName," .operation-item-root"),vt):this.createArc(vt)}else Kc=null}else dh(this._operationContainer)}},{key:"createArc",value:function(He){var Qe=this._example._ops,ot=this,vt=this._operationContainer.selectAll("".concat(Qe.containerName," .operation-item-").concat(He.code)).data(He.children).enter().append("a").style("color",Qe.arcColor).attr("class","operation-item-".concat(He.code," arc-item"));this._symbolIcon.selectAll(".icons-symbol").data(He.children).enter().append("symbol").attr("class",function(bt,Ot){return"icons-symbol-".concat(bt.code).concat(Ot)}).attr("id",function(bt,Ot){return"icons-symbol-".concat(bt.code).concat(Ot)}).append("path").attr("class","icon").attr("d",function(bt){return bt.icon}),vt.append("path").attr("fill",Qe.pieFill).attr("class","pie-item").on("mouseover",function(bt){bt.target.setAttribute("fill",Qe.activePieFill)}).on("mouseout",function(bt){bt.target.setAttribute("fill",Qe.pieFill)}).on("click",function(bt,Ot){if(!Ot.click&&Ot.children&&Ot.code&&(ot._operationContainer.selectAll("".concat(Qe.containerName," .operation-item-").concat(Ot.code))._groups[0].length?ot.drawPie("".concat(Qe.containerName," .operation-item-").concat(Ot.code),Ot):ot.createArc(Ot)),Ot.click){if(!(Ot.click({verify:!0})instanceof Promise))throw dh(ot._operationContainer),new Error("the click function does not return a promise");nx=Ot,function(wt,dn,Vt){V0.apply(this,arguments)}(Ot,om,ot)}}).append("title").text(function(bt){return bt.name}),vt.append("svg").attr("class","pie-icon").style("display","none").attr("width",18).attr("height",18).attr("viewBox","0 0 1024 1024").append("use").attr("xlink:href",function(bt,Ot){return"#icons-symbol-".concat(bt.code).concat(Ot)}).style("pointer-events","none"),this.drawPie("".concat(Qe.containerName," .operation-item-").concat(He.code),He)}},{key:"drawPie",value:function(He,Qe){var ot=this;if(!this._operationContainer.selectAll("".concat(He," .pie-item")).attr("d")){var vt=document.querySelectorAll("".concat(He," .pie-icon"));this._operationContainer.selectAll(".arc-item").style("color",ot._example._ops.arcColor),this._operationContainer.selectAll("".concat(He," .pie-item")).attr("fill",ot._example._ops.pieFill).transition().duration(500).attrTween("d",function(bt,Ot){var wt=function(Vt,Wt,Bn){var Wn=[];if(Wt._site=="order"){var Gi=Vt._num||1,bi=Eh()(new Array(Vt.children.length*Gi).fill(1));return Wt._num=bi.length,Wn=jh(bi,bi.length/Vt._num)[Vt._value-1],Vt._level==0&&(Wn=bi),Wn}var fi,Fi=0,Tr=[];Vt._level==0?(Fi=Vt.children.length,fi=Eh()(new Array(Fi).fill(1)).map(function(to,Io){if(Io>=Fi/2){var ks=to.startAngle;to.startAngle=to.endAngle,to.endAngle=ks}return to})):(Fi=Vt._level==1?Vt.children.length*Bn._toolbarData.length:Vt.children.length*Vt._num,fi=Eh()(new Array(Fi).fill(1)).map(function(to){if(Vt._site=="left"){var Io=to.startAngle;to.startAngle=to.endAngle,to.endAngle=Io}return to})),Wt._num=fi.length;var rr=Vt._value;return Wt._site=="left"?(Tr=fi.slice(fi.length/2,fi.length),rr=Vt._value-Vt._num/2):Tr=fi.slice(0,fi.length/2),Wn=jh(Tr,Tr.length/(Vt._num/2))[rr-1],Vt._level==0&&(Wn=fi),Wn}(Qe,bt,ot),dn=hl(wt[Ot].startAngle,wt[Ot].endAngle);return function(Vt){return Ov?function(Wt,Bn,Wn,Gi,bi,fi,Fi,Tr){var rr=Em(Wn[Fi].startAngle,Bn(Wt),bi._level+1,bi._level+2,Tr),to=rr.centroid(Wn[Fi]);return Gi[Fi].setAttribute("x",to[0]-6),Gi[Fi].setAttribute("y",to[1]-6),Tr._operationContainer.selectAll("".concat(fi," .pie-icon")).transition().delay(150).styleTween("display",function(){return Zi("none",Ov?"block":"none")}),rr()}(Vt,dn,wt,vt,Qe,He,Ot,ot):""}})}}}]),Fe}();function dh(Fe){Fe.selectAll(".arc-item .pie-item").interrupt().attr("d",null),Fe.selectAll(".arc-item .pie-icon").interrupt().style("display","none"),Fe.style("display","none"),Fe.selectAll(".operation-item").attr("transform",function(){return"rotate(0)"}),Ov=!1}var Em=function(Fe,He){var Qe=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,ot=arguments.length>3&&arguments[3]!==void 0?arguments[3]:2,vt=arguments.length>4?arguments[4]:void 0;return tl().innerRadius(Qe*vt.containerSize+2).outerRadius(ot*vt.containerSize).padAngle(.02).startAngle(Fe).endAngle(He)};function V0(){return V0=lp(Uh().mark(function Fe(He,Qe,ot){var vt,bt,Ot;return Uh().wrap(function(wt){for(;;)switch(wt.prev=wt.next){case 0:wt.t0=He.type,wt.next=wt.t0==="connect"?3:wt.t0==="unlocked"?8:33;break;case 3:return Ru.length=0,r0=!0,Ru.push(Qe),Ma(Qe,ot._example),wt.abrupt("break",36);case 8:bt=Pf(ot._example._ops.nodes),wt.prev=9,bt.s();case 11:if((Ot=bt.n()).done){wt.next=19;break}if((vt=Ot.value).id!=Qe.id){wt.next=17;break}return vt.fx=null,vt.fy=null,wt.abrupt("break",19);case 17:wt.next=11;break;case 19:wt.next=24;break;case 21:wt.prev=21,wt.t1=wt.catch(9),bt.e(wt.t1);case 24:return wt.prev=24,bt.f(),wt.finish(24);case 27:return ot._example._simulation._simulation.nodes(ot._example._ops.nodes),ot._example._simulation._simulation.alphaTarget(.08).restart(),setTimeout(function(){ot._example._simulation._simulation.alphaTarget(0)},300),wt.next=32,He.click(Qe);case 32:return wt.abrupt("break",36);case 33:return wt.next=35,He.click({node:Qe});case 35:Ef(He.type,[Qe.id],ot._example);case 36:Kc=null,dh(ot._operationContainer);case 38:case"end":return wt.stop()}},Fe,null,[[9,21,24,27]])})),V0.apply(this,arguments)}function fh(){return(fh=lp(Uh().mark(function Fe(He,Qe){var ot,vt,bt;return Uh().wrap(function(Ot){for(;;)switch(Ot.prev=Ot.next){case 0:return Wr(".graph-container").on("mousemove",null),r0=!1,Ru.push(He),vt={node:He,connects:(ot=[]).concat.apply(ot,Ru)},Ot.next=6,nx.click(vt);case 6:bt=Ot.sent,cl(bt||[Ru.splice(0)]).done(Qe),Rl(vt.connects[0],!1,[],Qe),Ru.length=0;case 11:case"end":return Ot.stop()}},Fe)}))).apply(this,arguments)}function jh(Fe,He){for(var Qe=[],ot=0;ot<Fe.length;)Qe.push(Fe.slice(ot,ot+=He));return Qe}function s0(Fe,He,Qe,ot){var vt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,bt=arguments.length>5&&arguments[5]!==void 0?arguments[5]:7,Ot=arguments.length>6&&arguments[6]!==void 0?arguments[6]:7;this.deflection=ot;var wt=function(is){return is*is},dn=this.deflection*Math.PI/180,Vt={x:Math.cos(dn)*Fe,y:Math.sin(dn)*Fe},Wt=Fe/(He+Ot),Bn=-Qe*Wt/(1-Wt),Wn=function(is,Ko,za,tu){var ea=is.y/(is.x-Bn),Ku=is.y-ea*is.x,Mu=1+wt(ea),Fc=2*(ea*Ku-za),ph=wt(Ku)+wt(za)-wt(Ko),Nu={x:(-Fc+tu*Math.sqrt(wt(Fc)-4*Mu*ph))/(2*Mu)};return Nu.y=(Nu.x-Bn)*ea,Nu},Gi=Wn(Vt,He+Ot,Qe,-1),bi=-Vt.x/Vt.y,fi=Vt.y+wt(Vt.x)/Vt.y,Fi=-(Gi.x-Qe)/Gi.y,Tr=Gi.y+(Gi.x-Qe)*Gi.x/Gi.y,rr=(fi-Tr)/(Fi-bi),to=bi*rr+fi,Io=Math.sqrt(wt(rr-Vt.x)+wt(to-Vt.y)),ks=Math.atan2(Vt.x-rr,to-Vt.y),uo=Math.atan2(Gi.x-rr,to-Gi.y),Ss=(ks+uo)/2;this.deflection>0&&(Ss+=Math.PI);var Xs=uo-ks;this.deflection>0&&(Xs=2*Math.PI-Xs),this.shaftLength=Xs*Io,ks>uo&&(this.shaftLength=0),this.midShaftPoint={x:rr+Io*Math.sin(Ss),y:to-Io*Math.cos(Ss)};var ua=function(is){var Ko=(is<0?1:-1)*Math.sqrt(wt(is)/(1+wt(bi))),za=bi*Ko;return{x:Vt.x+Ko,y:Vt.y+za}},Ao=function(is){var Ko=(is<0?-1:1)*Math.sqrt(wt(is)/(1+wt(Fi))),za=Fi*Ko;return{x:Gi.x+Ko,y:Gi.y+za}},Er=function(is,Ko){return{x:rr+(Io+Ko)*Math.sin(is),y:to-(Io+Ko)*Math.cos(is)}},ca=function(is){var Ko=(is<0?-1:1)*Math.sqrt(wt(is)/(1+wt(1/Fi))),za=Ko/Fi;return{x:Gi.x+Ko,y:Gi.y-za}},Ci=function(is){return is.x+","+is.y},qr=vt/2,Mo=bt/2,Eo=Vt.y>0?0:1,Ds=Vt.y<0?0:1;this.outline=function(){if(ks>uo)return["M",Ci(Ao(-Mo)),"L",Ci(ca(Ot)),"L",Ci(Ao(Mo)),"Z"].join(" ");var is=Ss-0,Ko=Ss+0;return["M",Ci(ua(qr)),"L",Ci(ua(-qr)),"A",Io-qr,Io-qr,0,0,Eo,Ci(Er(is,-qr)),"L",Ci(Er(is,qr)),"A",Io+qr,Io+qr,0,0,Ds,Ci(ua(qr)),"Z","M",Ci(Er(Ko,qr)),"L",Ci(Er(Ko,-qr)),"A",Io-qr,Io-qr,0,0,Eo,Ci(Ao(-qr)),"L",Ci(Ao(-Mo)),"L",Ci(ca(Ot)),"L",Ci(Ao(Mo)),"L",Ci(Ao(qr)),"A",Io+qr,Io+qr,0,0,Ds,Ci(Er(Ko,qr))].join(" ")}}function Uf(Fe,He,Qe){var ot=arguments.length>3&&arguments[3]!==void 0?arguments[3]:8,vt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,bt=arguments.length>5&&arguments[5]!==void 0?arguments[5]:7,Ot=arguments.length>6&&arguments[6]!==void 0?arguments[6]:7,wt=Qe*Math.PI/180,dn=Fe,Vt=Fe+Ot,Wt=Fe+He,Bn=Wt*Math.tan(wt/2),Wn=vt/2;function Gi(rr,to){return rr+","+to}this.shaftLength=3*Bn+vt;var bi=function(rr,to,Io){var ks=to*Math.tan(wt/2),uo=to/Math.cos(wt/2);return Gi((ks+Io)*Math.sin(rr),uo+(ks+Io)*Math.cos(rr))},fi=function(){var rr=bi(0,Wt,Wn+ot/2+2).split(",");return{x:rr[0],y:rr[1]}};this.midShaftPoint=fi();var Fi=function(rr,to){return bi((Math.PI+wt)/2,rr,to)},Tr=function(rr,to){return bi(-(Math.PI+wt)/2,rr,to)};this.outline=function(){var rr=Bn-Wn,to=Bn+Wn;return["M",Fi(dn,Wn),"L",Fi(Wt,Wn),"A",to,to,0,1,1,Tr(Wt,Wn),"L",Tr(Vt,Wn),"L",Tr(Vt,-bt/2),"L",Tr(dn,0),"L",Tr(Vt,bt/2),"L",Tr(Vt,-Wn),"L",Tr(Wt,-Wn),"A",rr,rr,0,1,0,Fi(Wt,-Wn),"L",Fi(dn,-Wn),"Z"].join(" ")}}function bm(Fe,He,Qe){var ot=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,vt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:7,bt=arguments.length>5&&arguments[5]!==void 0?arguments[5]:7;this.length=Qe-(Fe+He),this.shaftLength=this.length-bt;var Ot=Fe,wt=Ot+this.shaftLength,dn=Ot+this.length,Vt=ot/2,Wt=vt/2;this.midShaftPoint={x:Ot+this.shaftLength/2,y:0},this.outline=function(){var Bn=0,Wn=0;return["M",Ot,Vt,"L",Bn,Vt,"L",Bn,-Vt,"L",Ot,-Vt,"Z","M",Wn,Vt,"L",wt,Vt,"L",wt,Wt,"L",dn,0,"L",wt,-Wt,"L",wt,-Vt,"L",Wn,-Vt,"Z"].join(" ")}}function $h(){}var $c=new $h;function bf(Fe,He){this.relationships=[],Fe.id<He.id?(this.nodeA=Fe,this.nodeB=He):(this.nodeA=He,this.nodeB=Fe)}$h.prototype.computeGeometryForNonLoopArrows=function(Fe){for(var He,Qe=function(Wn){return Wn*Wn},ot=0,vt=Array.from(Fe);ot<vt.length;ot++)for(var bt=(He=vt[ot]).nodeA.x-He.nodeB.x,Ot=He.nodeA.y-He.nodeB.y,wt=(Math.atan2(Ot,bt)/Math.PI*180+360)%360,dn=Math.sqrt(Qe(bt)+Qe(Ot)),Vt=void 0,Wt=0,Bn=Array.from(He.relationships);Wt<Bn.length;Wt++)(Vt=Bn[Wt]).naturalAngle=Vt.target.id===He.nodeA.id?(wt+180)%360:wt,Vt.centreDistance=dn},$h.prototype.shortenCaption=function(Fe,He){for(var Qe=Fe,ot=12*Qe.length;;){if(He>ot)return Qe;var vt=Math.ceil((ot-He)/12);return Qe.length-vt<=0?"":Qe.substr(0,Qe.length-vt)+"\u2026"}},$h.prototype.distributeAnglesForLoopArrows=function(Fe,He){for(var Qe,ot=0,vt=Array.from(Fe);ot<vt.length;ot++)if((Qe=vt[ot]).isLoop()){for(var bt=void 0,Ot=void 0,wt=[],dn=Qe.nodeA,Vt=void 0,Wt=0,Bn=Array.from(He);Wt<Bn.length;Wt++)(Vt=Bn[Wt]).isLoop||(Vt.source.id===dn.id&&wt.push(Vt.naturalAngle),Vt.target.id===dn.id&&wt.push(Vt.naturalAngle+180));if(wt=wt.map(function(fi){return(fi+360)%360}).sort(function(fi,Fi){return fi-Fi}),wt.length>0){var Wn=void 0,Gi=void 0,bi={start:0,end:0};for(bt=0;bt<wt.length;bt++)Gi=wt[bt],(Wn=bt===wt.length-1?wt[0]+360:wt[bt+1])-Gi>bi.end-bi.start&&(bi.start=Gi,bi.end=Wn);for(Ot=(bi.end-bi.start)/(Qe.relationships.length+1),bt=0;bt<Qe.relationships.length;bt++)(Vt=Qe.relationships[bt]).naturalAngle=(bi.start+(bt+1)*Ot-90)%360}else for(Ot=360/Qe.relationships.length,bt=0;bt<Qe.relationships.length;bt++)(Vt=Qe.relationships[bt]).naturalAngle=bt*Ot}},$h.prototype.layoutRelationships=function(Fe){var He,Qe,ot=function(Gi){for(var bi,fi={},Fi=0,Tr=Array.from(Gi);Fi<Tr.length;Fi++){var rr=new bf((bi=Tr[Fi]).source,bi.target);(rr=fi[rr]!=null?fi[rr]:rr).relationships.push(bi),fi[rr]=rr}return function(){var to=[];for(var Io in fi){var ks=fi[Io];to.push(ks)}return to}()}(Fe);this.computeGeometryForNonLoopArrows(ot),this.distributeAnglesForLoopArrows(ot,Fe);for(var vt=0,bt=Array.from(ot);vt<bt.length;vt++){Qe=bt[vt];for(var Ot=0,wt=Array.from(Qe.relationships);Ot<wt.length;Ot++)delete(He=wt[Ot]).arrow;for(var dn=(Qe.relationships.length-1)/2,Vt=Qe.relationships.length-1,Wt=30*Vt>150?150/Vt:30,Bn=0;Bn<Qe.relationships.length;Bn++){if(He=Qe.relationships[Bn],Qe.isLoop())He.arrow=new Uf(He.sourceRadius,40,30);else if(Bn===dn)He.arrow=new bm(He.sourceRadius,He.targetRadius,He.centreDistance);else{var Wn=Wt*(Bn-dn);Qe.nodeA.id!==He.source.id&&(Wn*=-1),He.arrow=new s0(He.sourceRadius,He.targetRadius,He.centreDistance,Wn)}He.shortCaption=this.shortenCaption(He.label,He.arrow.shaftLength)}}},$h.prototype.layoutNodes=function(Fe){var He=Fe.width,Qe=Fe.height,ot=Fe.layout,vt=Fe.nodes;(function(){var bt=99999999,Ot=-99999999,wt=99999999,dn=-99999999,Vt=-9999999;vt.forEach(function(Wn){bt>Wn.x&&(bt=Wn.x),Ot<Wn.x&&(Ot=Wn.x),wt>Wn.y&&(wt=Wn.y),dn<Wn.y&&(dn=Wn.y),Vt<Wn.size&&(Vt=12)});var Wt=(He-ot.x-Vt)/(Ot-bt),Bn=(Qe-ot.y-Vt)/(dn-wt);vt.forEach(function(Wn){Wn.x=(Wn.x-bt)*Wt+ot.x/2,Wn.y=(Wn.y-wt)*Bn+ot.y/2})})()},bf.prototype.toString=function(){return this.nodeA.id+""+this.nodeB.id},bf.prototype.isLoop=function(){return this.nodeA.id===this.nodeB.id};var Hf=function(){function Fe(He){wf(this,Fe);var Qe=He.operationContainer,ot=He._ops,vt=ot.width,bt=ot.height,Ot=ot.layout;this._root=He._ops,this._rootComponent=Qe,this.init(vt,bt,Ot)}return Sf(Fe,[{key:"init",value:function(He,Qe,ot){console.log(He,"width");var vt=ot.simulation?ot.simulation:.01;this._simulation=bl([]).force("center",function(bt,Ot){var wt,dn=1;function Vt(){var Wt,Bn,Wn=wt.length,Gi=0,bi=0;for(Wt=0;Wt<Wn;++Wt)Gi+=(Bn=wt[Wt]).x,bi+=Bn.y;for(Gi=(Gi/Wn-bt)*dn,bi=(bi/Wn-Ot)*dn,Wt=0;Wt<Wn;++Wt)(Bn=wt[Wt]).x-=Gi,Bn.y-=bi}return bt==null&&(bt=0),Ot==null&&(Ot=0),Vt.initialize=function(Wt){wt=Wt},Vt.x=function(Wt){return arguments.length?(bt=+Wt,Vt):bt},Vt.y=function(Wt){return arguments.length?(Ot=+Wt,Vt):Ot},Vt.strength=function(Wt){return arguments.length?(dn=+Wt,Vt):dn},Vt}(He/2,Qe/2).strength(.03)).force("charge",function(){var bt,Ot,wt,dn,Vt,Wt=ll(-30),Bn=1,Wn=1/0,Gi=.81;function bi(rr){var to,Io=bt.length,ks=Zu(bt,pl,el).visitAfter(Fi);for(dn=rr,to=0;to<Io;++to)Ot=bt[to],ks.visit(Tr)}function fi(){if(bt){var rr,to,Io=bt.length;for(Vt=new Array(Io),rr=0;rr<Io;++rr)to=bt[rr],Vt[to.index]=+Wt(to,rr,bt)}}function Fi(rr){var to,Io,ks,uo,Ss,Xs=0,ua=0;if(rr.length){for(ks=uo=Ss=0;Ss<4;++Ss)(to=rr[Ss])&&(Io=Math.abs(to.value))&&(Xs+=to.value,ua+=Io,ks+=Io*to.x,uo+=Io*to.y);rr.x=ks/ua,rr.y=uo/ua}else{(to=rr).x=to.data.x,to.y=to.data.y;do Xs+=Vt[to.data.index];while(to=to.next)}rr.value=Xs}function Tr(rr,to,Io,ks){if(!rr.value)return!0;var uo=rr.x-Ot.x,Ss=rr.y-Ot.y,Xs=ks-to,ua=uo*uo+Ss*Ss;if(Xs*Xs/Gi<ua)return ua<Wn&&(uo===0&&(ua+=(uo=El(wt))*uo),Ss===0&&(ua+=(Ss=El(wt))*Ss),ua<Bn&&(ua=Math.sqrt(Bn*ua)),Ot.vx+=uo*rr.value*dn/ua,Ot.vy+=Ss*rr.value*dn/ua),!0;if(!(rr.length||ua>=Wn)){(rr.data!==Ot||rr.next)&&(uo===0&&(ua+=(uo=El(wt))*uo),Ss===0&&(ua+=(Ss=El(wt))*Ss),ua<Bn&&(ua=Math.sqrt(Bn*ua)));do rr.data!==Ot&&(Xs=Vt[rr.data.index]*dn/ua,Ot.vx+=uo*Xs,Ot.vy+=Ss*Xs);while(rr=rr.next)}}return bi.initialize=function(rr,to){bt=rr,wt=to,fi()},bi.strength=function(rr){return arguments.length?(Wt=typeof rr=="function"?rr:ll(+rr),fi(),bi):Wt},bi.distanceMin=function(rr){return arguments.length?(Bn=rr*rr,bi):Math.sqrt(Bn)},bi.distanceMax=function(rr){return arguments.length?(Wn=rr*rr,bi):Math.sqrt(Wn)},bi.theta=function(rr){return arguments.length?(Gi=rr*rr,bi):Math.sqrt(Gi)},bi}().strength(-350)).force("collide",function(bt){var Ot,wt,dn,Vt=1,Wt=1;function Bn(){for(var bi,fi,Fi,Tr,rr,to,Io,ks=Ot.length,uo=0;uo<Wt;++uo)for(fi=Zu(Ot,Bl,Xu).visitAfter(Wn),bi=0;bi<ks;++bi)Fi=Ot[bi],to=wt[Fi.index],Io=to*to,Tr=Fi.x+Fi.vx,rr=Fi.y+Fi.vy,fi.visit(Ss);function Ss(Xs,ua,Ao,Er,ca){var Ci=Xs.data,qr=Xs.r,Mo=to+qr;if(!Ci)return ua>Tr+Mo||Er<Tr-Mo||Ao>rr+Mo||ca<rr-Mo;if(Ci.index>Fi.index){var Eo=Tr-Ci.x-Ci.vx,Ds=rr-Ci.y-Ci.vy,is=Eo*Eo+Ds*Ds;is<Mo*Mo&&(Eo===0&&(is+=(Eo=El(dn))*Eo),Ds===0&&(is+=(Ds=El(dn))*Ds),is=(Mo-(is=Math.sqrt(is)))/is*Vt,Fi.vx+=(Eo*=is)*(Mo=(qr*=qr)/(Io+qr)),Fi.vy+=(Ds*=is)*Mo,Ci.vx-=Eo*(Mo=1-Mo),Ci.vy-=Ds*Mo)}}}function Wn(bi){if(bi.data)return bi.r=wt[bi.data.index];for(var fi=bi.r=0;fi<4;++fi)bi[fi]&&bi[fi].r>bi.r&&(bi.r=bi[fi].r)}function Gi(){if(Ot){var bi,fi,Fi=Ot.length;for(wt=new Array(Fi),bi=0;bi<Fi;++bi)fi=Ot[bi],wt[fi.index]=+bt(fi,bi,Ot)}}return typeof bt!="function"&&(bt=ll(bt==null?1:+bt)),Bn.initialize=function(bi,fi){Ot=bi,dn=fi,Gi()},Bn.iterations=function(bi){return arguments.length?(Wt=+bi,Bn):Wt},Bn.strength=function(bi){return arguments.length?(Vt=+bi,Bn):Vt},Bn.radius=function(bi){return arguments.length?(bt=typeof bi=="function"?bi:ll(+bi),Gi(),Bn):bt},Bn}(40)).force("x",function(bt){var Ot,wt,dn,Vt=ll(.1);function Wt(Wn){for(var Gi,bi=0,fi=Ot.length;bi<fi;++bi)(Gi=Ot[bi]).vx+=(dn[bi]-Gi.x)*wt[bi]*Wn}function Bn(){if(Ot){var Wn,Gi=Ot.length;for(wt=new Array(Gi),dn=new Array(Gi),Wn=0;Wn<Gi;++Wn)wt[Wn]=isNaN(dn[Wn]=+bt(Ot[Wn],Wn,Ot))?0:+Vt(Ot[Wn],Wn,Ot)}}return typeof bt!="function"&&(bt=ll(bt==null?0:+bt)),Wt.initialize=function(Wn){Ot=Wn,Bn()},Wt.strength=function(Wn){return arguments.length?(Vt=typeof Wn=="function"?Wn:ll(+Wn),Bn(),Wt):Vt},Wt.x=function(Wn){return arguments.length?(bt=typeof Wn=="function"?Wn:ll(+Wn),Bn(),Wt):bt},Wt}(He/2).strength(.01)).force("y",function(bt){var Ot,wt,dn,Vt=ll(.1);function Wt(Wn){for(var Gi,bi=0,fi=Ot.length;bi<fi;++bi)(Gi=Ot[bi]).vy+=(dn[bi]-Gi.y)*wt[bi]*Wn}function Bn(){if(Ot){var Wn,Gi=Ot.length;for(wt=new Array(Gi),dn=new Array(Gi),Wn=0;Wn<Gi;++Wn)wt[Wn]=isNaN(dn[Wn]=+bt(Ot[Wn],Wn,Ot))?0:+Vt(Ot[Wn],Wn,Ot)}}return typeof bt!="function"&&(bt=ll(bt==null?0:+bt)),Wt.initialize=function(Wn){Ot=Wn,Bn()},Wt.strength=function(Wn){return arguments.length?(Vt=typeof Wn=="function"?Wn:ll(+Wn),Bn(),Wt):Vt},Wt.y=function(Wn){return arguments.length?(bt=typeof Wn=="function"?Wn:ll(+Wn),Bn(),Wt):bt},Wt}(Qe/2).strength(vt))}},{key:"updateSimulation",value:function(He,Qe,ot){var vt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,bt=ot.benchmark,Ot=ot.height,wt=ot.width,dn=ot.isResize,Vt=ot.layout,Wt=Vt.distance?Vt.distance:Math.min(Ot,wt)/2-80,Bn=Yc(Qe).iterations(.05).id(function(Wn){return Wn[bt]}).distance(function(){return Qe.length<=5&&dn?100:Qe.length<=20&&dn?Wt:Qe.length<=60?180:230});this._simulation.nodes(He).force("link",Bn).velocityDecay(.2).alpha(vt).alphaDecay(.08),this._simulation.restart()}},{key:"addSimulationEvent",value:function(He,Qe,ot,vt){var bt=this,Ot=ql(He,3),wt=Ot[0],dn=Ot[1],Vt=Ot[2];this._simulation.on("tick",function(){return $c.layoutRelationships(vt),bt._root.layout.force&&$c.layoutNodes(bt._root),wt.attr("transform",function(Wt){return"translate("+Wt.source.x+" "+Wt.source.y+") rotate("+(Wt.naturalAngle-180)+")"}),dn.attr("d",function(Wt){return Wt.arrow.outline(Wt)}),Vt.attr("x",function(Wt){return Wt.arrow.midShaftPoint.x}).attr("y",function(Wt){return Wt.arrow.midShaftPoint.y+13}).attr("transform",function(Wt){return Wt.naturalAngle<90||Wt.naturalAngle>270?"rotate(180 "+Wt.arrow.midShaftPoint.x+" "+Wt.arrow.midShaftPoint.y+")":null}).text(function(Wt){return Wt.shortCaption}),Qe.attr("cx",function(Wt){return Wt.x}).attr("cy",function(Wt){return Wt.y}).attr("x",function(Wt){return Wt.shape=="rect"?Wt.x-Vp(Wt.size):Wt.x-Wt.size+6}).attr("y",function(Wt){return Wt.shape=="rect"?Wt.y-Vp(Wt.size)/1.5:Wt.y-Wt.size+6}),void ot.attr("x",function(Wt){return gl(Wt.name,Vp(Wt.size)).forEach(function(Bn,Wn){Wr(".node-circle--tspan-".concat(Wt.id,"-").concat(Wn)).attr("x",Wt.x).attr("y",Bn.y+Wt.y)}),Wt.x}).attr("y",function(Wt){return Wt.y})})}},{key:"drag",value:function(){var He=this;return function(){var Qe,ot,vt,bt,Ot=Al,wt=We,dn=ui,Vt=Si,Wt={},Bn=Jt("start","drag","end"),Wn=0,Gi=0;function bi(uo){uo.on("mousedown.drag",fi).filter(Vt).on("touchstart.drag",rr).on("touchmove.drag",to,ir).on("touchend.drag touchcancel.drag",Io).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function fi(uo,Ss){if(!bt&&Ot.call(this,uo,Ss)){var Xs=ks(this,wt.call(this,uo,Ss),uo,Ss,"mouse");Xs&&(Wr(uo.view).on("mousemove.drag",Fi,ss).on("mouseup.drag",Tr,ss),ls(uo.view),Us(uo),vt=!1,Qe=uo.clientX,ot=uo.clientY,Xs("start",uo))}}function Fi(uo){if(as(uo),!vt){var Ss=uo.clientX-Qe,Xs=uo.clientY-ot;vt=Ss*Ss+Xs*Xs>Gi}Wt.mouse("drag",uo)}function Tr(uo){Wr(uo.view).on("mousemove.drag mouseup.drag",null),La(uo.view,vt),as(uo),Wt.mouse("end",uo)}function rr(uo,Ss){if(Ot.call(this,uo,Ss)){var Xs,ua,Ao=uo.changedTouches,Er=wt.call(this,uo,Ss),ca=Ao.length;for(Xs=0;Xs<ca;++Xs)(ua=ks(this,Er,uo,Ss,Ao[Xs].identifier,Ao[Xs]))&&(Us(uo),ua("start",uo,Ao[Xs]))}}function to(uo){var Ss,Xs,ua=uo.changedTouches,Ao=ua.length;for(Ss=0;Ss<Ao;++Ss)(Xs=Wt[ua[Ss].identifier])&&(as(uo),Xs("drag",uo,ua[Ss]))}function Io(uo){var Ss,Xs,ua=uo.changedTouches,Ao=ua.length;for(bt&&clearTimeout(bt),bt=setTimeout(function(){bt=null},500),Ss=0;Ss<Ao;++Ss)(Xs=Wt[ua[Ss].identifier])&&(Us(uo),Xs("end",uo,ua[Ss]))}function ks(uo,Ss,Xs,ua,Ao,Er){var ca,Ci,qr,Mo=Bn.copy(),Eo=Or(Er||Xs,Ss);if((qr=dn.call(uo,new ha("beforestart",{sourceEvent:Xs,target:bi,identifier:Ao,active:Wn,x:Eo[0],y:Eo[1],dx:0,dy:0,dispatch:Mo}),ua))!=null)return ca=qr.x-Eo[0]||0,Ci=qr.y-Eo[1]||0,function Ds(is,Ko,za){var tu,ea=Eo;switch(is){case"start":Wt[Ao]=Ds,tu=Wn++;break;case"end":delete Wt[Ao],--Wn;case"drag":Eo=Or(za||Ko,Ss),tu=Wn}Mo.call(is,uo,new ha(is,{sourceEvent:Ko,subject:qr,target:bi,identifier:Ao,active:tu,x:Eo[0]+ca,y:Eo[1]+Ci,dx:Eo[0]-ea[0],dy:Eo[1]-ea[1],dispatch:Mo}),ua)}}return bi.filter=function(uo){return arguments.length?(Ot=typeof uo=="function"?uo:Fs(!!uo),bi):Ot},bi.container=function(uo){return arguments.length?(wt=typeof uo=="function"?uo:Fs(uo),bi):wt},bi.subject=function(uo){return arguments.length?(dn=typeof uo=="function"?uo:Fs(uo),bi):dn},bi.touchable=function(uo){return arguments.length?(Vt=typeof uo=="function"?uo:Fs(!!uo),bi):Vt},bi.on=function(){var uo=Bn.on.apply(Bn,arguments);return uo===Bn?bi:uo},bi.clickDistance=function(uo){return arguments.length?(Gi=(uo=+uo)*uo,bi):Math.sqrt(Gi)},bi}().on("start",function(Qe){var ot=Qe.subject;Qe.active||He._simulation.alphaTarget(.08).restart(),ot.fx=ot.x,ot.fy=ot.y}).on("drag",function(Qe){dh(He._rootComponent),Qe.subject.fx=Qe.x,Qe.subject.fy=Qe.y,Qe.subject.drag=!0,He._simulation.force("center",null),He._root.nodeMove(Qe)}).on("end",function(Qe){Qe.active||He._simulation.alphaTarget(0)})}}]),Fe}();function xu(Fe,He,Qe){var ot=document.createElement("ul");ot.className="graph-bath",He.forEach(function(vt){var bt=document.createElement("li");if(bt.innerText=vt.name,bt.className="graph-bath-item",vt.click){if(!(vt.click()instanceof Promise))throw new Error("the click function does not return a promise");bt.onclick=function(){Ef(vt.type,Vh,Qe,vt.click)}}else bt.onclick=function(){Ef(vt.type,Vh,Qe)};ot.appendChild(bt)}),ot.style.position="fixed",ot.style.top="100px",ot.style.right="0",ot.style.display="none",document.querySelector(Qe._ops.containerName).append(ot)}var up={width:1e3,height:1e3,containerName:"#graph",benchmark:"id",background:"#F7FAFC",pieFill:"#dddde1",activePieFill:"#b5b5bd",arcColor:"#000",isShowMask:!0,isResize:!1,isCustomClick:!0,isCustomMouse:!1,isShowBatchOperation:!1,clickToggle:!1,nodes:[],links:[],nodeSize:32,nodeClick:function(){},nodeMouseover:function(){},nodeMouseout:function(){},nodeMove:function(){},linkClick:function(){},zoomOptions:{minScale:.5,maxScale:1.5},linkOps:{stroke:"#999","stroke-opacity":.6},layout:{simulation:0,distance:0,force:!1,x:10,y:10},colors:["rgba(42, 134, 246, 1)","rgba(9, 179, 222, 1)","rgba(253, 141, 60, 1)","rgba(255, 71, 81, 1)","rgba(120, 152, 210, 1)","rgba(110, 184, 201, 1)","rgba(245, 174, 42, 1)","rgba(254, 126, 133, 1)"],activeColors:["rgba(42, 134, 246, .6)","rgba(9, 179, 222, .6)","rgba(253, 141, 60, .6)","rgba(255, 71, 81, .6)","rgba(120, 152, 210, .6)","rgba(110, 184, 201, .6)","rgba(245, 174, 42, .6)","rgba(254, 126, 133, .6)"],batchOperation:[{name:"\u5220\u9664",type:"remove"},{name:"\u9690\u85CF",type:"hide"},{name:"\u5C55\u5F00",type:"extend"},{name:"\u6536\u8D77",type:"contraction"},{name:"\u4FEE\u6539\u989C\u8272",type:"editColor"},{name:"\u4FEE\u6539\u5927\u5C0F",type:"editSize"},{name:"\u4FEE\u6539\u5F62\u72B6",type:"editShape"}],toolbarData:[{name:"\u5C55\u5F00",code:"extend",icon:"M512 426.666667c93.866667 0 170.666667-76.8 170.666667-170.666667 0-93.866667-76.8-170.666667-170.666667-170.666667C418.133333 85.333333 341.333333 162.133333 341.333333 256 341.333333 349.866667 418.133333 426.666667 512 426.666667zM512 170.666667c46.933333 0 85.333333 38.4 85.333333 85.333333 0 46.933333-38.4 85.333333-85.333333 85.333333-46.933333 0-85.333333-38.4-85.333333-85.333333C426.666667 209.066667 465.066667 170.666667 512 170.666667zM256 554.666667c-93.866667 0-170.666667 76.8-170.666667 170.666667 0 93.866667 76.8 170.666667 170.666667 170.666667 93.866667 0 170.666667-76.8 170.666667-170.666667C426.666667 631.466667 349.866667 554.666667 256 554.666667zM256 810.666667c-46.933333 0-85.333333-38.4-85.333333-85.333333 0-46.933333 38.4-85.333333 85.333333-85.333333 46.933333 0 85.333333 38.4 85.333333 85.333333C341.333333 772.266667 302.933333 810.666667 256 810.666667zM512 473.6c-42.666667 0-81.066667 38.4-81.066667 81.066667s38.4 81.066667 81.066667 81.066667c42.666667 0 81.066667-38.4 81.066667-81.066667S554.666667 473.6 512 473.6zM768 554.666667c-93.866667 0-170.666667 76.8-170.666667 170.666667 0 93.866667 76.8 170.666667 170.666667 170.666667 93.866667 0 170.666667-76.8 170.666667-170.666667C938.666667 631.466667 861.866667 554.666667 768 554.666667zM768 810.666667c-46.933333 0-85.333333-38.4-85.333333-85.333333 0-46.933333 38.4-85.333333 85.333333-85.333333 46.933333 0 85.333333 38.4 85.333333 85.333333C853.333333 772.266667 814.933333 810.666667 768 810.666667z",type:"extend",click:function(){return new Promise(function(Fe){Fe(!1)})}},{name:"\u9690\u85CF",code:"hide",icon:"M906.688 126.976a48 48 0 0 1 3.84 62.528l-4.736 5.376-104.96 101.952a1013.12 1013.12 0 0 1 130.24 112.128c53.952 54.336 56.512 140.352 7.68 197.76l-7.68 8.32-17.92 17.728C775.872 765.568 642.176 832 512 832c-67.584 0-136.064-17.92-205.568-53.696l-117.76 114.56a48 48 0 0 1-71.68-63.488l4.8-5.312L222.08 726.4a1015.04 1015.04 0 0 1-129.152-111.36 146.304 146.304 0 0 1-7.68-197.76l7.68-8.32 17.92-17.728C248.128 258.432 381.824 192 512 192c67.2 0 135.36 17.728 204.416 53.12l122.368-119.04a48 48 0 0 1 67.84 0.896z m-208 269.44L626.944 466.304a123.584 123.584 0 0 1-163.584 159.296l-71.872 69.952a219.584 219.584 0 0 0 307.264-299.2zM512 292.416A219.584 219.584 0 0 0 324.608 626.56l72.064-70.08a123.584 123.584 0 0 1 162.88-158.592l72-70.144A218.56 218.56 0 0 0 512 292.48z",type:"hide",click:function(){return new Promise(function(Fe){Fe(!1)})}},{name:"\u89E3\u9501",code:"unlocked",icon:"M553.55 601.87v209.1c0 21.74-17.63 39.36-39.36 39.36-21.74 0-39.36-17.62-39.36-39.36v-209.1c0-21.74 17.63-39.36 39.36-39.36 21.74 0 39.36 17.62 39.36 39.36zM929.8 497.94v412.04c0 62.06-50.48 112.54-112.54 112.54h-611.3c-62.06 0-112.54-50.48-112.54-112.54V497.94c0-62.06 50.48-112.54 112.54-112.54h5.45c0.18-134.05 31.06-235.21 91.82-300.66 27.43-29.55 60.84-51.69 99.31-65.79C435.89 6.72 473.17 0.52 513.31 0.52c78.95 0 140.72 17.26 188.82 52.76 27.18 20.06 49.94 46.2 67.64 77.69 17.86 31.77 31.11 70.05 39.39 113.76 4.04 21.35-9.99 41.94-31.34 45.98-21.35 4.05-41.94-9.98-45.98-31.34-23.91-126.28-89.27-180.16-218.53-180.16-64.75 0-116.03 19.88-152.42 59.07-46.83 50.44-70.64 133.58-70.81 247.12h527.17c62.06 0 112.55 50.48 112.55 112.54z m-78.72 0c0-18.65-15.18-33.82-33.82-33.82h-611.3c-18.65 0-33.82 15.17-33.82 33.82v412.04c0 18.65 15.18 33.82 33.82 33.82h611.3c18.65 0 33.82-15.18 33.82-33.82V497.94z",type:"unlocked",click:function(){return new Promise(function(Fe){Fe(!1)})}},{name:"\u6536\u8D77",code:"contraction",icon:"M890.2 115H133.8c-20.9 0-37.8 16.9-37.8 37.8v37.8c0 20.9 16.9 37.8 37.8 37.8h756.4c20.9 0 37.8-16.9 37.8-37.8v-37.8c0-20.9-16.9-37.8-37.8-37.8zM890.2 455.3H398.5c-20.9 0-37.8 16.9-37.8 37.8v37.8c0 20.9 16.9 37.8 37.8 37.8h491.6c20.9 0 37.8-16.9 37.8-37.8v-37.8c0.1-20.9-16.8-37.8-37.7-37.8zM890.2 795.6H133.8c-20.9 0-37.8 16.9-37.8 37.8v37.8c0 20.9 16.9 37.8 37.8 37.8h756.4c20.9 0 37.8-16.9 37.8-37.8v-37.8c0-20.9-16.9-37.8-37.8-37.8zM266.2 600.7V423.3c0-22-29.2-33.1-46.2-17.5l-97.1 88.7c-10.6 9.7-10.6 25.3 0 35l97.1 88.7c17 15.5 46.2 4.5 46.2-17.5z",type:"contraction",click:function(){return new Promise(function(Fe){Fe(!1)})}},{name:"\u5220\u9664",code:"remove",icon:"M597.333333 128h-170.666666a42.666667 42.666667 0 0 0-42.666667 42.666667v42.666666h256V170.666667a42.666667 42.666667 0 0 0-37.674667-42.368L597.333333 128z m0 298.666667a42.666667 42.666667 0 0 1 42.666667 42.666666v256a42.666667 42.666667 0 0 1-85.333333 0v-256a42.666667 42.666667 0 0 1 42.666666-42.666666z m-170.666666 0a42.666667 42.666667 0 0 1 42.666666 42.666666v256a42.666667 42.666667 0 0 1-85.333333 0v-256a42.666667 42.666667 0 0 1 42.666667-42.666666z m341.333333-128H256v554.666666a42.666667 42.666667 0 0 0 37.674667 42.368L298.666667 896h426.666666a42.666667 42.666667 0 0 0 42.666667-42.666667V298.666667z m-170.666667-256a128 128 0 0 1 128 128v42.666666h170.666667a42.666667 42.666667 0 0 1 42.368 37.674667L938.666667 256a42.666667 42.666667 0 0 1-42.666667 42.666667h-42.666667v554.666666a128 128 0 0 1-120.490666 127.786667L725.333333 981.333333H298.666667a128 128 0 0 1-128-128V298.666667H128a42.666667 42.666667 0 0 1-42.368-37.674667L85.333333 256a42.666667 42.666667 0 0 1 42.666667-42.666667h170.666667V170.666667a128 128 0 0 1 120.490666-127.786667L426.666667 42.666667h170.666666z",type:"remove",click:function(){return new Promise(function(Fe){Fe(!1)})}},{name:"\u8FDE\u7EBF",icon:"M922.00324 771.5L712.90324 892.2c-2.7 1.5-6-0.4-6-3.5V816c0-8.8-7.2-16-16-16H208.00324c-42.5 0-82.6-16.7-113-47-30.3-30.3-47-70.4-47-113s16.7-82.6 47-113c30.3-30.3 70.5-47 113-47h576c53.3 0 96.5-43.6 96-97-0.5-52.8-44.4-95-97.2-95h-519c-6.8 0-12.8 4.3-15.1 10.7-17.6 49.7-65 85.3-120.7 85.3C57.00324 384-0.49676 326.2 0.00324 255.1c0.5-71 59.4-128.3 130.4-127.1 54.7 1 101.1 36.4 118.4 85.4 2.2 6.4 8.3 10.6 15 10.6H784.00324c42.5 0 82.6 16.7 113 47 30.3 30.3 47 70.5 47 113s-16.7 82.6-47 113c-30.3 30.3-70.5 47-113 47H208.00324c-53.3 0-96.5 43.6-96 97 0.5 52.8 44.4 95 97.2 95h481.7c8.8 0 16-7.2 16-16v-72.7c0-3.1 3.3-5 6-3.5L922.00324 764.5c2.7 1.6 2.7 5.4 0 7z",code:"connect",type:"connect",click:function(){return new Promise(function(Fe){Fe(!1)})}}]},sc=`
|
|
<svg width="300" height="200" viewBox="0 0 300 200" xmlns="http://www.w3.org/2000/svg">
|
|
<defs>
|
|
<radialGradient id="grad1" cx="64%" cy="41%" r="64%" fx="64%" fy="41%">
|
|
<stop offset="0%" stop-color="#ffcdca"/>
|
|
<stop offset="15%" stop-color="#f8a8af"/>
|
|
<stop offset="36%" stop-color="#f486bd"/>
|
|
<stop offset="64%" stop-color="#f15acb"/>
|
|
<stop offset="100%" stop-color="#dc48be"/>
|
|
</radialGradient>
|
|
<radialGradient cx="62.7929688%" cy="38.7660435%" fx="62.7929688%" fy="38.7660435%" r="69.6171323%" id="radialGradient-1">
|
|
<stop stop-color="#FF938E" offset="0%"></stop>
|
|
<stop stop-color="#F3629B" offset="27.7958615%"></stop>
|
|
<stop stop-color="#F25B98" offset="61.0231575%"></stop>
|
|
<stop stop-color="#D45C9F" offset="79.1889024%"></stop>
|
|
<stop stop-color="#FB94DC" offset="100%"></stop>
|
|
</radialGradient>
|
|
<radialGradient cx="64.4599781%" cy="41.4199561%" fx="64.4599781%" fy="41.4199561%" r="66.0105958%" gradientTransform="translate(0.644600,0.414200),scale(1.000000,0.982143),rotate(135.557584),translate(-0.644600,-0.414200)" id="radialGradient-2">
|
|
<stop stop-color="#9C4BFF" offset="0%"></stop>
|
|
<stop stop-color="#7D2FE3" offset="22.2365921%"></stop>
|
|
<stop stop-color="#7F29E3" offset="53.5499367%"></stop>
|
|
<stop stop-color="#9635DB" offset="82.281989%"></stop>
|
|
<stop stop-color="#C47AF8" offset="100%"></stop>
|
|
</radialGradient>
|
|
<radialGradient cx="64.4599781%" cy="41.4199561%" fx="64.4599781%" fy="41.4199561%" r="65.4353394%" id="radialGradient-3">
|
|
<stop stop-color="#6F99FF" offset="0%"></stop>
|
|
<stop stop-color="#2465E0" offset="15.3761414%"></stop>
|
|
<stop stop-color="#3047D6" offset="35.5277535%"></stop>
|
|
<stop stop-color="#3435D9" offset="79.4914212%"></stop>
|
|
<stop stop-color="#5D58F2" offset="100%"></stop>
|
|
</radialGradient>
|
|
<linearGradient x1="0%" y1="50.0019531%" x2="100%" y2="50%" id="lines1">
|
|
<stop stop-color="#F763AF" offset="0%"></stop>
|
|
<stop stop-color="#7328E5" offset="100%"></stop>
|
|
</linearGradient>
|
|
<linearGradient x1="-5.45107057%" y1="49.9980469%" x2="100%" y2="50.0019531%" id="linearGradient-1">
|
|
<stop stop-color="#862FF3" offset="0%"></stop>
|
|
<stop stop-color="#4531E9" offset="100%"></stop>
|
|
</linearGradient>
|
|
<linearGradient x1="-5.45107057%" y1="49.9980469%" x2="100%" y2="50.0019531%" id="linearGradient-1">
|
|
<stop stop-color="#862FF3" offset="0%"></stop>
|
|
<stop stop-color="#4531E9" offset="100%"></stop>
|
|
</linearGradient>
|
|
</defs>
|
|
</svg>
|
|
`;Me.createContainer=class{constructor(Fe){var He=["style","innerHTML","body","absolute","append","defsvg","div","createElement","zIndex"],Qe=function(wt,dn){wt=wt-0;var Vt=He[wt];return Vt};if(!document.getElementById("defsvg")){var ot=document[Qe("0x7")](Qe("0x6"));ot.id=Qe("0x5"),ot[Qe("0x1")]=sc,ot[Qe("0x0")].position=Qe("0x3"),ot.style.top="-10000px",ot[Qe("0x0")][Qe("0x8")]=-1,document[Qe("0x2")][Qe("0x4")](ot)}ao.prototype.addElement=function(wt){for(var dn=arguments.length,Vt=new Array(dn>1?dn-1:0),Wt=1;Wt<dn;Wt++)Vt[Wt-1]=arguments[Wt];return wt.apply(void 0,[this].concat(Vt))},ao.prototype.attrs=function(wt){return function(dn,Vt){for(var Wt in Vt)dn.attr(Wt,Vt[Wt]);return dn}(this,wt)},ao.prototype.addElements=function(wt,dn){return this.data(wt).exit().remove(),this.data(wt).enter().append(dn)},this._ops=function(wt,dn){var Vt={};for(var Wt in wt)Vt[Wt]=dn[Wt]!=null?dn[Wt]:wt[Wt];return Vt}(up,Fe);const vt=Wr(this._ops.containerName);var bt,Ot=this;vt.node()||(bt="\u627E\u4E0D\u5230\u8981\u6302\u8F7D\u7684\u8282\u70B9",console.warn("\u3010graph error\u3011:"+bt)),function(wt,dn){const{_ops:Vt}=dn,Wt=wt.append("svg").attr("viewBox",[0,0,Vt.width,Vt.height]).attr("class",`${Vt.containerName}-graph-container`),Bn=Wt.append("g").attr("class","graph-box");wt.style("background",Vt.background),dn._linkContainer=Bn.append("g").attr("class",`${Vt.containerName}-link-container`),dn._nodeContainer=Bn.append("g").attr("class",`${Vt.containerName}-node-container`),dn._textContainer=Bn.append("g").attr("class",`${Vt.containerName}-text-container`),wt.addElement(xu,Vt.batchOperation,dn),dn.operationContainer=Bn.append("g").attr("class",`${Vt.containerName}-operation-container`),dn._linkContainer.attrs(Vt.link_ops),dn.operationContainer.style("display","none"),function(Wn,Gi){var bi=arguments.length>2&&arguments[2]!==void 0?arguments[2]:.1,fi=arguments.length>3&&arguments[3]!==void 0?arguments[3]:15,Fi=sl().scaleExtent([bi,fi]).on("zoom",function(Tr){Gi.attr("transform",Tr.transform)});Ot.zoom=Fi,Wn.call(Fi),Gi.on("dblclick.zoom",null),Wn.on("dblclick.zoom",null)}(Wt,Bn,Vt.zoomOptions.minScale,Vt.zoomOptions.maxScale)}(vt,this),this._simulation=new Hf(this),this._pie=new ix(this),this.update()}addNode(Fe){(function(He,Qe){Qe._ops.nodes.push(He),Qe.update()})(Fe,this)}zoomIn(){Wr(this._ops.containerName).select("svg").transition().duration(750).call(this.zoom.scaleBy,1.2)}zoomOut(){Wr(this._ops.containerName).select("svg").transition().duration(750).call(this.zoom.scaleBy,.8)}toggleNode(Fe){if(!this._ops.clickToggle)return;var He=this._ops.nodes,Qe=this._ops.links;Fe.isExtendedState=!Fe.isExtendedState;var ot=!Fe.isExtendedState,vt=[Fe.id];function bt(Ot,wt,dn){dn.forEach(Vt=>{if(Vt.source.id===Ot){Vt.hide=ot;const Wt=wt.find(Bn=>Bn.id===Vt.target.id);Wt&&(Wt.hide=ot,vt.push(Wt.id),bt(Wt.id,wt,dn))}})}setTimeout(()=>{vt.forEach(Ot=>{Qe.forEach(wt=>{(wt.source.id===Ot||wt.target.id===Ot)&&wt.target.id!==Fe.id&&(wt.hide=ot)})}),this.update()},100),bt(Fe.id,He,Qe)}showAllNodes(){this._ops.nodes.forEach(Fe=>{Fe.hide=!1}),this._ops.links.forEach(Fe=>{Fe.hide=!1}),this.update()}deleteNode(Fe){(function(He,Qe){Qe._ops.nodes=Qe._ops.nodes.filter(function(ot){return ot.id!==He.id}),Qe._ops.links=Qe._ops.links.filter(function(ot){return ot.source.id!==He.id&&ot.target.id!==He.id}),Qe.update(),dh(Qe.operationContainer)})(Fe,this)}scrollToNode(Fe){const Qe=document.querySelector(this._ops.containerName+" svg").querySelector("g.graph-box"),ot=this._ops.nodes.find(Wt=>Wt.id===Fe);if(!ot)return;const vt=ot.x,bt=ot.y,Ot=1287,wt=596,dn=Ot/2-vt,Vt=wt/2-bt;Qe.setAttribute("transform",`translate(${dn}, ${Vt})`)}selectToNode(Fe){const He=document.querySelector(this._ops.containerName+" svg");document.body.querySelectorAll("circle.node-circle").forEach(Qe=>{Qe.classList.remove("highlightNode")}),Fe&&He.querySelector(".node-circle-"+Fe).classList.add("highlightNode")}update(Fe=!0,He={}){var Qe,ot;this._pie.showPie("");const vt=this._ops.nodes,bt=this._ops.links,Ot=this._nodeContainer.addElement(gr,vt,this),wt=this._linkContainer.addElement(bu,bt,this),dn=this._textContainer.addElement(Cf,vt);Ot.on("click",(Wn,Gi)=>je(this,null,function*(){this.toggleNode(Gi);const bi=yield this._ops.nodeClick(Gi);if(bi){const{type:fi,id:Fi}=bi;Ef(fi,Fi,this)}})),this._ops.isCustomMouse&&(Ot.on("mouseover",(Wn,Gi)=>je(this,null,function*(){yield this._ops.nodeMouseover(Gi)})),Ot.on("mouseout",()=>je(this,null,function*(){yield this._ops.nodeMouseout()}))),Ot.on("contextmenu",(Wn,Gi)=>{Wn.preventDefault(),this._pie.showPie(Gi,Wn)}),Ot.call(this._simulation.drag());const Vt=(Qe=document.querySelector(this._ops.containerName))===null||Qe===void 0?void 0:Qe.clientWidth,Wt=(ot=document.querySelector(this._ops.containerName))===null||ot===void 0?void 0:ot.clientHeight,Bn=document.getElementsByClassName(`${this._ops.containerName}-graph-container`)[0];Bn&&Vt&&Wt&&(this._ops.width=Vt,this._ops.height=Wt,Bn.setAttribute("viewBox",`0 0 ${Vt} ${Wt}`)),Fe?this._simulation.updateSimulation(vt,bt,this._ops):this._simulation.updateSimulation(vt,bt,this._ops,.1),this._simulation.addSimulationEvent(wt,Ot,dn,bt),function(Wn,Gi){var bi=["object","function","undefined"];if(Jh(Gi)!=="object")return Wn;for(var fi in Gi)bi.indexOf(Jh(Gi[fi]))===-1&&(Wn[fi]=Gi[fi])}(this._ops,He),Object.getOwnPropertyNames(He).length&&this._updateBaseTheme()}_updateBaseTheme(){Wr(this._ops.containerName).style("background",this._ops.background)}},Me.storage=Nc,Object.defineProperty(Me,"__esModule",{value:!0})})},46699:function(Cn,Ei,je){"use strict";je.d(Ei,{Ax:function(){return Qt},Ds:function(){return It},KI:function(){return Mt},SI:function(){return Jt},f1:function(){return yt}});var Me=je(346);function yt(an){let qt=!0;if(an.length>0){for(let nt=0;nt<an.length;nt++)if(an[nt].compile_success==0||!an[nt].compile_success){qt=!1;break}}else qt=!1;return qt}function Jt(an,qt=""){let nt=[];for(let ln=0;ln<an.length;ln++){let rn=an[ln],on=qt?`${qt}/${rn.name}`:`${rn.name}`;nt.push({title:rn.name,type:rn.type,isLeaf:rn.type!=="tree",key:on})}return nt}function Qt(an,qt,nt){for(let ln=0;ln<an.length;ln++){let rn=an[ln];if(rn.key===qt){rn.children=nt;break}rn.children&&Qt(rn.children,qt,nt)}return an}function It(an,qt,nt){let ln;return function(){let rn=this,on=arguments,et=function(){ln=null,nt||an.apply(rn,on)},ue=nt&&!ln;clearTimeout(ln),ln=setTimeout(et,qt),ue&&an.apply(rn,on)}}const dt=!0,Mt=Me.Z.API_SERVER},54650:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return on}});var Me=je(59301),yt=je(6767),Jt=je(37568),Qt={codeBox:"codeBox___WpkVl"},It=je(92310),dt=je.n(It),Mt=Object.defineProperty,an=(et,ue,ce)=>ue in et?Mt(et,ue,{enumerable:!0,configurable:!0,writable:!0,value:ce}):et[ue]=ce,qt=(et,ue,ce)=>an(et,typeof ue!="symbol"?ue+"":ue,ce),nt=(et,ue,ce)=>new Promise((Ce,Ae)=>{var Te=Ye=>{try{ze(ce.next(Ye))}catch(lt){Ae(lt)}},Ie=Ye=>{try{ze(ce.throw(Ye))}catch(lt){Ae(lt)}},ze=Ye=>Ye.done?Ce(Ye.value):Promise.resolve(Ye.value).then(Te,Ie);ze((ce=ce.apply(et,ue)).next())});class ln extends Me.Component{constructor(ue){super(ue),qt(this,"canvas"),qt(this,"randomNum",(ce,Ce)=>Math.floor(Math.random()*(Ce-ce)+ce)),qt(this,"drawPic",()=>{this.randomCode()}),qt(this,"reloadPic",()=>{this.drawPic()}),qt(this,"changeCode",ce=>{console.log(ce.target.value,222),this.setState({value:ce.target.value,showError:!1})}),qt(this,"onVerify",()=>{let ce;return this.state.value.toLowerCase()!==""&&this.state.value.toLowerCase()!==this.state.code.toLowerCase()?(ce=!0,yt.ZP.error("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u9A8C\u8BC1\u7801"),this.reloadPic()):this.state.value.toLowerCase()===""?(ce=!0,yt.ZP.error("\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801")):this.state.value.toLowerCase()===this.state.code.toLowerCase()&&(ce=!1),this.setState({showError:ce}),ce}),this.canvas=Me.createRef(),this.state={value:"",code:"",codeLength:4,fontSizeMin:20,fontSizeMax:22,backgroundColorMin:240,backgroundColorMax:250,colorMin:10,colorMax:20,lineColorMin:40,lineColorMax:180,contentWidth:96,contentHeight:38,showError:!1}}componentDidMount(){this.drawPic()}randomColor(ue,ce){const Ce=this.randomNum(ue,ce),Ae=this.randomNum(ue,ce),Te=this.randomNum(ue,ce);return`rgb(${Ce}, ${Ae}, ${Te})`}drawText(ue,ce,Ce){ue.fillStyle=this.randomColor(this.state.colorMin,this.state.colorMax);const Ae=this.randomNum(this.state.fontSizeMin,this.state.fontSizeMax);ue.font=Ae+"px SimHei";const Te=10,Ie=(this.state.contentWidth-40)/(this.state.code.length-1);let ze=Te;Ce>0&&(ze=Te+Ce*Ie);let Ye=this.randomNum(this.state.fontSizeMax,this.state.contentHeight-5);Ae>40&&(Ye=40);const lt=this.randomNum(-10,10);ue.translate(ze,Ye),ue.rotate(lt*Math.PI/180),ue.fillText(ce,0,0),ue.rotate(-lt*Math.PI/180),ue.translate(-ze,-Ye)}drawLine(ue){for(let ce=0;ce<1;ce++)ue.strokeStyle=this.randomColor(this.state.lineColorMin,this.state.lineColorMax),ue.beginPath(),ue.moveTo(this.randomNum(0,this.state.contentWidth),this.randomNum(0,this.state.contentHeight)),ue.lineTo(this.randomNum(0,this.state.contentWidth),this.randomNum(0,this.state.contentHeight)),ue.stroke()}drawDot(ue){for(let ce=0;ce<100;ce++)ue.fillStyle=this.randomColor(0,255),ue.beginPath(),ue.arc(this.randomNum(0,this.state.contentWidth),this.randomNum(0,this.state.contentHeight),1,0,2*Math.PI),ue.fill()}randomCode(){let ue="";const ce="QWERTYUPLKJHGFDSAZXCVBNMqwertyupkjhgfdsazxcvbnm1234567890";for(let Ce=0;Ce<this.state.codeLength;Ce++){const Ae=Math.floor(Math.random()*57);ue+=ce[Ae]}this.setState({code:ue},()=>{const Ae=this.canvas.current.getContext("2d");Ae.textBaseline="bottom",Ae.fillStyle=this.randomColor(this.state.backgroundColorMin,this.state.backgroundColorMax),Ae.fillRect(0,0,this.state.contentWidth,this.state.contentHeight);for(let Te=0;Te<this.state.code.length;Te++)this.drawText(Ae,this.state.code[Te],Te);this.drawLine(Ae),this.drawDot(Ae)})}render(){const{className:ue,width:ce=300}=this.props;return Me.createElement("div",{className:dt()(Qt.codeBox,ue),style:{width:ce}},Me.createElement("aside",null,Me.createElement(Jt.default,{value:this.state.value,onChange:this.changeCode,placeholder:"\u8BF7\u8F93\u5165\u56FE\u7247\u4E2D\u7684\u9A8C\u8BC1\u7801"})),Me.createElement("div",null,Me.createElement("canvas",{onClick:this.reloadPic,ref:this.canvas,width:"100",height:"30"}),Me.createElement("div",{className:"current",onClick:this.reloadPic},"\u770B\u4E0D\u6E05\uFF1F\u6362\u4E00\u5F20")))}}const rn=(et,ue)=>{let ce;Modal.confirm({centered:!0,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",title:"\u63D0\u793A",content:React.createElement("div",null,React.createElement("p",null,ue),React.createElement(ln,{ref:Ce=>ce=Ce})),onOk:()=>nt(void 0,null,function*(){if(ce.onVerify())return Promise.reject();et()})})};var on=ln},9507:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return ln}});var Me=je(59301),yt={imageDimensions:"imageDimensions___a7crR",img:"img___Kroat",fullWidth:"fullWidth___c492T"},Jt=je(92310),Qt=je.n(Jt),It=je(29787),dt=je(2859),Mt=je(38986),an=je(51257),qt=(rn,on,et)=>new Promise((ue,ce)=>{var Ce=Ie=>{try{Te(et.next(Ie))}catch(ze){ce(ze)}},Ae=Ie=>{try{Te(et.throw(Ie))}catch(ze){ce(ze)}},Te=Ie=>Ie.done?ue(Ie.value):Promise.resolve(Ie.value).then(Ce,Ae);Te((et=et.apply(rn,on)).next())}),ln=({data:rn,className:on,fullWidth:et,style:ue={},onClose:ce,onOk:Ce,showFullTools:Ae,noAssociationId:Te})=>{const Ie=(0,Me.useRef)(null),ze=(0,Me.useRef)(null),Ye=(0,Me.useRef)(null),lt=(0,Me.useRef)(null),[Bt,kt]=(0,Me.useState)(!1),[xt,Et]=(0,Me.useState)("\u6B63\u5728\u52A0\u8F7D\u4E2D");(0,Me.useEffect)(()=>(Ye.current||(Ye.current=document.createElement("style"),document.head.appendChild(Ye.current)),rn!=null&&rn.visible?(document.body.setAttribute("data-custom","y-hidden"),Ye.current.innerHTML=" html { overflow-y: hidden; }",rn!=null&&rn.src&&$t()):(document.body.removeAttribute("data-custom"),Ye.current&&(document.head.removeChild(Ye.current),Ye.current=null)),()=>{document.body.removeAttribute("data-custom"),Ye.current&&(document.head.removeChild(Ye.current),Ye.current=null)}),[rn==null?void 0:rn.visible]);const $t=()=>qt(void 0,null,function*(){kt(!0),Et("\u6B63\u5728\u52A0\u8F7D\u4E2D");const Jn=yield(0,an.ZJ)(rn==null?void 0:rn.src);Ie.current.src="",Ie.current.src=Jn,Ie.current.onload=function(){gn()},kt(!1),Et("")}),Zt=Jn=>qt(void 0,null,function*(){kt(!0),Et("\u6B63\u5728\u4FDD\u5B58\u4E2D");const ci=yield(0,Mt.ZP)("/api/attachments.json",{method:"post",body:{file_type:"base64",original_filename:rn.title,file:Jn.dataUrl}});ci!=null&&ci.id&&!Te?(yield(0,Mt.ZP)(`/api/attachments/${rn.id}/add_subitem.json`,{method:"post",body:{subitem_id:ci==null?void 0:ci.id,settings:JSON.stringify(Jn.state)}})).status===0&&Ce():ci!=null&&ci.id&&Ce(ci),kt(!1),Et("")}),Yn=()=>{const Jn=document.querySelector('a[href="https://markerjs.com/"]');Jn&&Jn.parentNode&&(Jn.parentNode.style.display="none"),[{name:'[data-action="select"]',title:"\u9009\u62E9"},{name:'[data-action="delete"]',title:"\u5220\u9664\u5143\u7D20"},{name:'[data-action="undo"]',title:"\u64A4\u9500"},{name:'[data-type-name="FrameMarker"]',title:"\u77E9\u5F62"},{name:'[data-type-name="FreehandMarker"]',title:"\u753B\u7EBF"},{name:'[data-type-name="ArrowMarker"]',title:"\u7BAD\u5934"},{name:'[data-type-name="TextMarker"]',title:"\u6587\u672C"},{name:'[data-type-name="EllipseMarker"]',title:"\u692D\u5706"},{name:'[data-type-name="HighlightMarker"]',title:"\u65B9\u5757"},{name:'[data-type-name="CalloutMarker"]',title:"\u6CE8\u91CA"},{name:'[data-action="render"]',title:"\u4FDD\u5B58"},{name:'[data-action="close"]',title:"\u9000\u51FA"}].forEach(Xn=>{const In=document.querySelector(Xn.name);In&&In.setAttribute("title",Xn.title)})},gn=()=>{ze.current=new dt.hP(Ie.current),ze.current.targetRoot=lt.current,ze.current.addEventListener("render",Zt),ze.current.addEventListener("beforeclose",ce),Ae&&(ze.current.availableMarkerTypes=ze.current.ALL_MARKER_TYPES,ze.current.uiStyleSettings.redoButtonVisible=!0,ze.current.uiStyleSettings.notesButtonVisible=!0,ze.current.uiStyleSettings.zoomButtonVisible=!0,ze.current.uiStyleSettings.zoomOutButtonVisible=!0,ze.current.uiStyleSettings.clearButtonVisible=!0),window.markerArea=ze.current.uiStyleSettings,ze.current.show(),rn!=null&&rn.snapshotData&&ze.current.restoreState(rn.snapshotData),setTimeout(()=>{window.scrollTo(0,0),Yn()},300)};return Me.createElement(Me.Fragment,null,(rn==null?void 0:rn.visible)&&Me.createElement(It.Z,{spinning:Bt,tip:xt,style:{position:"absolute",width:"100vw"}},Me.createElement("div",{ref:lt,className:Qt()(yt.imageDimensions,on,et?yt.fullWidth:""),style:ue},Me.createElement("img",{className:yt.img,ref:Ie}))))}},76562:function(Cn,Ei,je){"use strict";var Me=je(59301),yt=je(77019),Jt=je(5269),Qt=je(20554),It=je(99571),dt=je(76902),Mt=je(99587),an=je(48136),qt=je(59301);const nt=(0,Me.forwardRef)(({callback:ln,showSaveButton:rn,value:on=""},et)=>{const ue=(0,Me.useRef)(),ce=[{name:"\u5206\u6570\u5F97\u5206",value:"\\frac{x}{y}",children:[{name:"\u5206\u6570 Fractions",data:[{value:"\\frac{a}{b}"},{value:"x\\tfrac{x}{a} "},{value:"\\mathrm{d}t"},{value:"\\partial t"},{value:"\\frac{\\partial y}{\\partial x}"},{value:"\\nabla\\psi"},{value:"\\frac{\\partial^2}{\\partial x_1\\partial x_2}y"},{value:"\\cfrac{1}{a + \\cfrac{7}{b + \\cfrac{2}{9}}} = c"}]},{name:"\u5BFC\u6570 Derivative",data:[{value:"\\dot{a} "},{value:"\\ddot{a}"},{value:"{f}^{\\prime}"},{value:"{f}^{\\prime\\prime}"},{value:"{f}^{(n)}"}]},{name:"\u6A21\u7B97\u672F Modular arithmetic",data:[{value:"a \\bmod b"},{value:"a \\equiv b \\pmod{m} "},{value:"\\gcd(m, n) "},{value:"\\operatorname{lcm}(m, n) "}]}]},{name:"\u6839\u5F0F\u89D2\u6807",value:"\\sqrt{x}",children:[{name:"\u6839\u5F0F Radicals",data:[{value:"\\sqrt{x}"},{value:"\\sqrt[y]{x}"}]},{name:"\u4E0A\u4E0B\u6807 Sub&Super",data:[{value:"x^{a}"},{value:"x_{a}"},{value:"x_{a}^{b} "},{value:"_{a}^{b} x"},{value:"x_{a}^{b} "}]},{name:"\u91CD\u97F3\u7B26\u53CA\u5176\u4ED6 Accents and Others",data:[{value:"\\hat{a} "},{value:"\\sqrt[y]{x}"},{value:"\\check{} "},{value:"\\grave{a} "},{value:"\\acute{a}"},{value:"\\tilde{a}"},{value:"\\breve{a}"},{value:"\\bar{a}"},{value:"\\vec{a}"},{value:"\\not{a}"},{value:"\\widetilde{abc}"},{value:"\\widehat{abc}"},{value:"\\overleftarrow{abc} "},{value:"\\overrightarrow{abc}"},{value:"\\overline{abc}"},{value:"\\underline{abc}"},{value:"\\overbrace{abc}"},{value:"\\underbrace{abc}"},{value:"\\overset{a}{abc}"},{value:"\\underset{a}{abc} \\stackrel\\frown{ab}"},{value:"\\overline{ab} "},{value:"\\overleftrightarrow{ab}"},{value:"\\overset{a}{\\leftarrow}"},{value:"\\overset{a}{\\rightarrow}"},{value:"\\xleftarrow[abc]{a}"},{value:"\\xrightarrow[abc]{a} "}]}]},{name:"\u6781\u9650\u5BF9\u6570",value:"\\lim_{x \\to 0}",children:[{name:"\u6781\u9650 Limits",data:[{value:"\\lim a"},{value:"\\lim_{x \\to 0}"},{value:"\\lim_{x \\to \\infty}"},{value:"\\max_b{a}"},{value:"\\min_a{b}"}]},{name:"\u5BF9\u6570\u6307\u6570 Logarithms and exponentials",data:[{value:"\\log_{a}{b}"},{value:"\\lg_{a}{b}"},{value:"\\ln_{a}{b}"},{value:"\\exp a"}]},{name:"\u754C\u9650 Bounds",data:[{value:"\\min x"},{value:"\\sup t"},{value:"\\inf s"},{value:"\\lim u"},{value:"\\limsup w"},{value:"\\dim p"},{value:"\\ker\\phi "}]}]},{name:"\u4E09\u89D2\u51FD\u6570",value:"\\sin a",children:[{name:"\u4E09\u89D2\u51FD\u6570 Trigonometric functions",data:[{value:"\\sin a"},{value:"\\cos a"},{value:"\\tan a"},{value:"\\cot a "},{value:"\\sec a "},{value:"\\csc a "}]},{name:"\u53CD\u4E09\u89D2\u51FD\u6570 Inverse trigonometric functions",data:[{value:"\\sin^{-1}"},{value:"\\cos^{-1}"},{value:"\\tan^{-1}"},{value:"\\cot^{-1}"},{value:"\\sec^{-1}"},{value:"\\csc^{-1}"},{value:"\\arcsin a"},{value:"\\arccos a"},{value:"\\arctan a"},{value:"\\operatorname{arccot} a"},{value:"\\operatorname{arcsec} a"},{value:"\\operatorname{arccsc} a"}]},{name:"\u53CC\u66F2\u51FD\u6570 Hyperblic functions",data:[{value:"\\sinh a"},{value:"\\cosh a"},{value:"\\tanh a"},{value:"\\coth a"},{value:"\\operatorname{sech} a"},{value:"\\operatorname{csch} a"}]},{name:"\u53CD\u53CC\u66F2\u51FD\u6570 Inverse hyperbolic functions",data:[{value:"\\sinh^{-1}"},{value:"a\\cosh^{-1} a"},{value:"\\tanh^{-1} a"},{value:"\\coth^{-1} a"},{value:"\\operatorname{sech}^{-1} a"},{value:"\\operatorname{csch}^{-1} a"}]}]},{name:"\u79EF\u5206\u8FD0\u7B97",value:"\\int_{a}^{b}",children:[{name:"\u79EF\u5206 Integral",data:[{value:"\\int"},{value:"\\int_{a}^{b}"},{value:"\\int\\limits_{a}^{b}"}]},{name:"\u53CC\u91CD\u79EF\u5206 Double integral",data:[{value:"\\iint"},{value:"\\iint_{a}^{b} "},{value:"\\iint\\limits_{a}^{b} "}]},{name:"\u4E09\u91CD\u79EF\u5206 Triple integral",data:[{value:"\\iiint"},{value:"\\iiint_{a}^{b}"},{value:"\\iiint\\limits_{a}^{b} "}]},{name:"\u66F2\u7EBF\u79EF\u5206 Closed line or path integral",data:[{value:"\\oint"},{value:"\\oint_{a}^{b} "}]}]},{name:"\u5927\u578B\u8FD0\u7B97",value:"\\sum_{a}^{b}",children:[{name:"\u6C42\u548C Summation",data:[{value:"\\sum"},{value:"\\sum_{a}^{b}"},{value:"{\\textstyle \\sum_{a}^{b}} "}]},{name:"\u4E58\u79EF\u4F59\u79EF Product and coproduct",data:[{value:"\\prod"},{value:"\\prod_{a}^{b}"},{value:"{\\textstyle \\prod_{a}^{b}}"},{value:"\\coprod"},{value:"\\coprod_{a}^{b}"},{value:"{\\textstyle \\coprod_{a}^{b}} "}]},{name:"\u5E76\u96C6\u4EA4\u96C6 Union and intersection",data:[{value:"\\bigcup"},{value:"\\bigcup_{a}^{b}"},{value:"{\\textstyle \\bigcup_{a}^{b}}"},{value:"\\bigcap"},{value:"\\bigcap_{a}^{b}"}]},{name:"\u6790\u53D6\u5408\u53D6 Disjunction and conjunction",data:[{value:"\\bigvee"},{value:"\\bigvee_{a}^{b}"},{value:"\\bigwedge"},{value:"\\bigwedge_{a}^{b}"}]}]},{name:"\u62EC\u53F7\u53D6\u6574",value:"\\left [ \\left ( \\right ) \\right ] ",children:[{name:"\u62EC\u53F7 Brackets",data:[{value:"\\left ( \\right )"},{value:"\\left [ \\right ]"},{value:"\\left \\langle \\right \\rangle "},{value:"\\left | \\right | "},{value:"\\left \\lfloor \\right \\rfloor "},{value:"\\left \\lceil \\right \\rceil "}]}]}],Ce=[{name:"\u4EE3\u6570",value:"\\sqrt{a^2+b^2}",children:[{data:[{value:"\\left(x-1\\right)\\left(x+3\\right) "},{value:"\\sqrt{a^2+b^2}"},{value:"\\left ( \\frac{a}{b}\\right )^{n}= \\frac{a^{n}}{b^{n}}"},{value:"\\frac{a}{b}\\pm \\frac{c}{d}= \\frac{ad \\pm bc}{bd} "},{value:"\\frac{x^{2}}{a^{2}}-\\frac{y^{2}}{b^{2}}=1 "},{value:"\\frac{1}{\\sqrt{a}}=\\frac{\\sqrt{a}}{a},a\\ge 0\\frac{1}{\\sqrt{a}}=\\frac{\\sqrt{a}}{a},a\\ge 0 "},{value:"\\sqrt[n]{a^{n}}=\\left ( \\sqrt[n]{a}\\right )^{n} "},{value:"x ={-b \\pm \\sqrt{b^2-4ac}\\over 2a} "},{value:"y-y_{1}=k \\left( x-x_{1}\\right) "},{value:`\\left\\{\\begin{matrix} \r
|
|
x=a + r\\text{cos}\\theta \\ \r
|
|
y=b + r\\text{sin}\\theta \r
|
|
\\end{matrix}\\right. `},{value:`\\begin{array}{l} \r
|
|
\\text{\u5BF9\u4E8E\u65B9\u7A0B\u5F62\u5982\uFF1A}x^{3}-1=0 \\ \r
|
|
\\text{\u8BBE}\\text{:}\\omega =\\frac{-1+\\sqrt{3}i}{2} \\ \r
|
|
x_{1}=1,x_{2}= \\omega =\\frac{-1+\\sqrt{3}i}{2} \\ \r
|
|
x_{3}= \\omega ^{2}=\\frac{-1-\\sqrt{3}i}{2} \r
|
|
\\end{array} `},{value:`\\begin{array}{l} \r
|
|
a\\mathop{{x}}\\nolimits^{{2}}+bx+c=0 \\ \r
|
|
\\Delta =\\mathop{{b}}\\nolimits^{{2}}-4ac \\ \r
|
|
\\left\\{\\begin{matrix} \r
|
|
\\Delta \\gt 0\\text{\u65B9\u7A0B\u6709\u4E24\u4E2A\u4E0D\u76F8\u7B49\u7684\u5B9E\u6839} \\ \r
|
|
\\Delta = 0\\text{\u65B9\u7A0B\u6709\u4E24\u4E2A\u76F8\u7B49\u7684\u5B9E\u6839} \\ \r
|
|
\\Delta \\lt 0\\text{\u65B9\u7A0B\u65E0\u5B9E\u6839} \r
|
|
\\end{matrix}\\right. \r
|
|
\\end{array} `},{value:`\\begin{array}{l} \r
|
|
a\\mathop{{x}}\\nolimits^{{2}}+bx+c=0 \\ \r
|
|
\\Delta =\\mathop{{b}}\\nolimits^{{2}}-4ac \\ \r
|
|
\\mathop{{x}}\\nolimits_{{1,2}}=\\frac{{-b \\pm \r
|
|
\\sqrt{{\\mathop{{b}}\\nolimits^{{2}}-4ac}}}}{{2a}} \\ \r
|
|
\\mathop{{x}}\\nolimits_{{1}}+\\mathop{{x}}\\nolimits_{{2}}=-\\frac{{b}}{{a}} \\ \r
|
|
\\mathop{{x}}\\nolimits_{{1}}\\mathop{{x}}\\nolimits_{{2}}=\\frac{{c}}{{a}} \r
|
|
\\end{array} `}]}]},{name:"\u51E0\u4F55",value:"\\Delta A B C ",children:[{data:[{value:"\\Delta A B C "},{value:"a \\parallel c,b \\parallel c \\Rightarrow a \\parallel b "},{value:"l \\perp \\beta ,l \\subset \\alpha \\Rightarrow \\alpha \\perp \\beta"},{value:`\\left.\\begin{matrix} \r
|
|
a \\perp \\alpha \\ \r
|
|
b \\perp \\alpha \r
|
|
\\end{matrix}\\right\\}\\Rightarrow a \\parallel b`},{value:"P \\in \\alpha ,P \\in \\beta , \\alpha \\cap \\beta =l \\Rightarrow P \\in l "},{value:`\\alpha \\perp \\beta , \\alpha \\cap \\beta =l,a \\subset \\alpha ,a \\perp l \r
|
|
\\Rightarrow a \\perp \\beta `},{value:`\\left.\\begin{matrix} \r
|
|
a \\subset \\beta ,b \\subset \\beta ,a \\cap b=P \\ \r
|
|
a \\parallel \\partial ,b \\parallel \\partial \r
|
|
\\end{matrix}\\right\\}\\Rightarrow \\beta \\parallel \\alpha `},{value:"\\alpha \\parallel \\beta , \\gamma \\cap \\alpha =a, \\gamma \\cap \\beta =b \\Rightarrow a \\parallel b "},{value:"A \\in l,B \\in l,A \\in \\alpha ,B \\in \\alpha \\Rightarrow l \\subset \\alpha "},{value:`\\left.\\begin{matrix} \r
|
|
m \\subset \\alpha ,n \\subset \\alpha ,m \\cap n=P \\ \r
|
|
a \\perp m,a \\perp n \r
|
|
\\end{matrix}\\right\\}\\Rightarrow a \\perp \\alpha `},{value:`\\begin{array}{c} \r
|
|
\\text{\u76F4\u89D2\u4E09\u89D2\u5F62\u4E2D,\u76F4\u89D2\u8FB9\u957Fa,b,\u659C\u8FB9\u8FB9\u957Fc} \\ \r
|
|
a^{2}+b^{2}=c^{2} \r
|
|
\\end{array}`}]}]},{name:"\u4E0D\u7B49\u5F0F",value:"a > b",children:[{data:[{value:"a > b,b > c \\Rightarrow a > c "},{value:"a > b,c > d \\Rightarrow a+c > b+d "},{value:"a > b > 0,c > d > 0 \\Rightarrow ac bd "},{value:`\\begin{array}{c} \r
|
|
a \\gt b,c \\gt 0 \\Rightarrow ac \\gt bc \\ \r
|
|
a \\gt b,c \\lt 0 \\Rightarrow ac \\lt bc \r
|
|
\\end{array}`},{value:"\\left | a-b \\right | \\geqslant \\left | a \\right | -\\left | b \\right | "},{value:"-\\left | a \\right |\\leq a\\leqslant \\left | a \\right | "},{value:"\\left | a \\right |\\leqslant b \\Rightarrow -b \\leqslant a \\leqslant \\left | b \\right | "},{value:"\\left | a+b \\right | \\leqslant \\left | a \\right | + \\left | b \\right | "},{value:`\\begin{array}{c} \r
|
|
a \\gt b \\gt 0,n \\in N^{\\ast},n \\gt 1 \\ \r
|
|
\\Rightarrow a^{n}\\gt b^{n}, \\sqrt[n]{a}\\gt \\sqrt[n]{b} \r
|
|
\\end{array}`},{value:`\\left( \\sum_{k=1}^n a_k b_k \\right)^{\\!\\!2}\\leq \r
|
|
\\left( \\sum_{k=1}^n a_k^2 \\right) \\left( \\sum_{k=1}^n b_k^2 \\right) `},{value:`\\begin{array}{c} \r
|
|
a,b \\in R^{+} \\ \r
|
|
\\Rightarrow \\frac{a+b}{{2}}\\ge \\sqrt{ab} \\ \r
|
|
\\left( \\text{\u5F53\u4E14\u4EC5\u5F53}a=b\\text{\u65F6\u53D6\u201C}=\\text{\u201D\u53F7}\\right) \r
|
|
\\end{array}`},{value:`\\begin{array}{c} \r
|
|
a,b \\in R \\ \r
|
|
\\Rightarrow a^{2}+b^{2}\\gt 2ab \\ \r
|
|
\\left( \\text{\u5F53\u4E14\u4EC5\u5F53}a=b\\text{\u65F6\u53D6\u201C}=\\text{\u201D\u53F7}\\right) \r
|
|
\\end{array}`},{value:`\\begin{array}{c} \r
|
|
H_{n}=\\frac{n}{\\sum \\limits_{i=1}^{n}\\frac{1}{x_{i}}}= \\frac{n}{\\frac{1}{x_{1}}+ \\frac{1}{x_{2}}+ \\cdots + \\frac{1}{x_{n}}} \\ G_{n}=\\sqrt[n]{\\prod \\limits_{i=1}^{n}x_{i}}= \\sqrt[n]{x_{1}x_{2}\\cdots x_{n}} \\ A_{n}=\\frac{1}{n}\\sum \\limits_{i=1}^{n}x_{i}=\\frac{x_{1}+ x_{2}+ \\cdots + x_{n}}{n} \\ Q_{n}=\\sqrt{\\sum \\limits_{i=1}^{n}x_{i}^{2}}= \\sqrt{\\frac{x_{1}^{2}+ x_{2}^{2}+ \\cdots + x_{n}^{2}}{n}} \\ H_{n}\\leq G_{n}\\leq A_{n}\\leq Q_{n} \r
|
|
\\end{array}`}]}]},{name:"\u79EF\u5206",value:"\\frac{\\mathrm{d}\\partial}{\\partial x}",children:[{data:[{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}x^n=nx^{n-1} "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}e^{ax}=a\\,e^{ax} "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\ln(x)=\\frac{1}{x} "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\sin x=\\cos x "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\cos x=-\\sin x "},{value:"\\int k\\mathrm{d}x = kx+C "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\tan x=\\sec^2 x "},{value:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\cot x=-\\csc^2 x "},{value:"\\int \\frac{1}{x}\\mathrm{d}x= \\ln \\left| x \\right| +C "},{value:"\\int \\frac{1}{\\sqrt{1-x^{2}}}\\mathrm{d}x= \\arcsin x +C "},{value:"\\int \\frac{1}{1+x^{2}}\\mathrm{d}x= \\arctan x +C "},{value:"\\int u \\frac{\\mathrm{d}v}{\\mathrm{d}x}\\,\\mathrm{d}x=uv-\\int \\frac{\\mathrm{d}u}{\\mathrm{d}x}v\\,\\mathrm{d}x "},{value:"f(x) = \\int_{-\\infty}^\\infty \\hat f(x)\\xi\\,e^{2 \\pi i \\xi x} \\,\\mathrm{d}\\xi "},{value:"\\int x^{\\mu}\\mathrm{d}x=\\frac{x^{\\mu +1}}{\\mu +1}+C, \\left({\\mu \\neq -1}\\right) "}]}]},{name:"\u4E09\u89D2",value:"e^{i \\theta}",children:[{name:"\u6C42\u548C Summation",data:[{value:"e^{i \\theta} "},{value:"\\left(\\frac{\\pi}{2}-\\theta \\right ) "},{value:"\\text{sin}^{2}\\frac{\\alpha}{2}=\\frac{1- \\text{cos}\\alpha}{2} "},{value:"\\text{cos}^{2}\\frac{\\alpha}{2}=\\frac{1+ \\text{cos}\\alpha}{2} "},{value:"\\text{tan}\\frac{\\alpha}{2}=\\frac{\\text{sin}\\alpha}{1+ \\text{cos}\\alpha} "},{value:"\\sin \\alpha + \\sin \\beta =2 \\sin \\frac{\\alpha + \\beta}{2}\\cos \\frac{\\alpha - \\beta}{2} "},{value:"\\sin \\alpha - \\sin \\beta =2 \\cos \\frac{\\alpha + \\beta}{2}\\sin \\frac{\\alpha - \\beta}{2} "},{value:"\\cos \\alpha + \\cos \\beta =2 \\cos \\frac{\\alpha + \\beta}{2}\\cos \\frac{\\alpha - \\beta}{2} "},{value:"\\cos \\alpha - \\cos \\beta =-2\\sin \\frac{\\alpha + \\beta}{2}\\sin \\frac{\\alpha - \\beta}{2} "},{value:"a^{2}=b^{2}+c^{2}-2bc\\cos A "},{value:"\\frac{\\sin A}{a}=\\frac{\\sin B}{b}=\\frac{\\sin C}{c}=\\frac{1}{2R} "},{value:"\\sin \\left ( \\frac{\\pi}{2}-\\alpha \\right ) = \\cos \\alpha "},{value:"\\sin \\left ( \\frac{\\pi}{2}+\\alpha \\right ) = \\cos \\alpha "}]}]},{name:"\u7EDF\u8BA1",value:"C_{r}^{n}",children:[{data:[{value:"C_{r}^{n} "},{value:"\\frac{n!}{r!(n-r)!} "},{value:"\\sum_{i=1}^{n}{X_i} "},{value:"\\sum_{i=1}^{n}{X_i^2} "},{value:"X_1, \\cdots,X_n "},{value:"\\frac{x-\\mu}{\\sigma} "},{value:"\\sum_{i=1}^{n}{(X_i - \\overline{X})^2} "},{value:`\\begin{array}{c} \r
|
|
\\text{\u82E5}P \\left( AB \\right) =P \\left( A \\right) P \\left( B \\right) \\\\ \r
|
|
\\text{\u5219}P \\left( A \\left| B\\right. \\right) =P \\left({B}\\right) \r
|
|
\\end{array}`},{value:"P(E) ={n \\choose k}p^k (1-p)^{n-k} "},{value:"P \\left( A \\right) = \\lim \\limits_{n \\to \\infty}f_{n}\\left ( A \\right ) "},{value:"P \\left( \\bigcup \\limits_{i=1}^{+ \\infty}A_{i}\\right) = \\prod \\limits_{i=1}^{+ \\infty}P{\\left( A_{i}\\right)} "},{value:`\\begin{array}{c} \r
|
|
P \\left( \\emptyset \\right) =0 \\\\ \r
|
|
P \\left( S \\right) =1 \r
|
|
\\end{array}`},{value:`\\begin{array}{c} \r
|
|
\\forall A \\in S \\\\ \r
|
|
P \\left( A \\right) \\ge 0 \r
|
|
\\end{array}`},{value:"P \\left( \\bigcup \\limits_{i=1}^{n}A_{i}\\right) = \\prod \\limits_{i=1}^{n}P \\left( A_{i}\\right) "},{value:`\\begin{array}{c} \r
|
|
S= \\binom{N}{n},A_{k}=\\binom{M}{k}\\cdot \\binom{N-M}{n-k} \\\\ \r
|
|
P\\left ( A_{k}\\right ) = \\frac{\\binom{M}{k}\\cdot \\binom{N-M}{n-k}}{\\binom{N}{n}} \r
|
|
\\end{array}`},{value:`\\begin{array}{c} \r
|
|
P_{n}=n! \\\\ \r
|
|
A_{n}^{k}=\\frac{n!}{\\left( n-k \\left) !\\right. \\right.} \r
|
|
\\end{array}`}]}]}],Ae=ze=>{ue.current.setValue(ue.current.getValue()+" "+ze.value+" ")},Te=[{key:"1",label:"\u5FEB\u6377\u6A21\u677F",children:qt.createElement(yt.Z,{className:Mt.Z.lists,gutter:[10,10]},ce.map((ze,Ye)=>qt.createElement(Jt.Z,{flex:"110px",className:Mt.Z.item},qt.createElement("div",null,qt.createElement(dt.Z,{value:`$$${ze.value}$$`}),ze.name),qt.createElement("div",{className:Mt.Z.children},ze.children.map((lt,Bt)=>qt.createElement("div",{key:Bt},qt.createElement("h1",null,lt.name),qt.createElement(yt.Z,{gutter:[10,10]},lt.data.map((kt,xt)=>qt.createElement(Jt.Z,{key:xt,onClick:()=>Ae(kt),className:Mt.Z.diamond},qt.createElement(dt.Z,{value:"`$$"+kt.value+"$$`"}))))))))))},{key:"2",label:"\u516C\u5F0F\u6A21\u677F",children:qt.createElement(yt.Z,{className:Mt.Z.lists,gutter:[10,10]},Ce.map((ze,Ye)=>qt.createElement(Jt.Z,{flex:"110px",className:Mt.Z.item},qt.createElement("div",null,qt.createElement(dt.Z,{value:"`$$"+ze.value+"$$`"}),ze.name),qt.createElement("div",{className:Mt.Z.children},ze.children.map((lt,Bt)=>qt.createElement("div",{key:Bt},lt.name&&qt.createElement("h1",null,lt.name),qt.createElement(yt.Z,{gutter:[10,10]},lt.data.map((kt,xt)=>qt.createElement(Jt.Z,{key:xt,onClick:()=>Ae(kt),className:Mt.Z.diamond},qt.createElement(dt.Z,{value:"`$$"+kt.value+"$$`"}))))))))))}],Ie=()=>{var ze=document.createElement("div");ze.innerHTML=ue.current.getValue();var Ye=ze.innerText;return ln&&ln(Ye),Ye};return(0,Me.useImperativeHandle)(et,()=>({getData:Ie})),qt.createElement("div",{className:Mt.Z.mathWrap},qt.createElement(Qt.default,{defaultActiveKey:"1",items:Te}),qt.createElement("math-field",{locale:"zh_cn",className:Mt.Z.mathField,placeholder:"\u8BF7\u6253\u5F00\u952E\u76D8\uFF0C\u8F93\u5165\u516C\u5F0F",ref:ue,style:{width:800,marginTop:30,fontSize:18}},on||""),rn&&qt.createElement("div",{className:Mt.Z.button},qt.createElement(It.ZP,{size:"large",onClick:Ie,style:{zIndex:8,marginTop:10},type:"primary"},"\u4FDD\u5B58\u5230\u7F16\u8F91\u5668")))});Ei.Z=nt},43155:function(Cn,Ei,je){"use strict";je.d(Ei,{Q:function(){return dt}});var Me=je(59301),yt=je(82326),Jt=je(47889),Qt=je(71051),It=je(59301),dt=(an=>(an[an.Number=1]="Number",an[an.Percent=2]="Percent",an))(dt||{});const Mt=({value:an,onChange:qt,disabled:nt,hidePercentOption:ln=!1,percentType:rn="select"})=>{const on=(0,Me.useMemo)(()=>ln?1:2,[ln]),[et,ue]=(0,Me.useState)(on);console.log(et);const ce=Ae=>an.type===1?`${Ae}\u5206`:`${Ae}%`,Ce=(0,Me.useCallback)(Ae=>{if(et===1){const Te=Ae.replace("\u5206","");return isNaN(parseInt(Te,10))?0:Te}else return Ae.replace("%","")},[et]);return(0,Me.useEffect)(()=>{ue(an.type)},[an]),It.createElement("div",{style:{display:"flex",alignItems:"center"}},rn=="select"&&It.createElement(yt.default,{size:"large",onChange:Ae=>{ue(Ae),qt({type:Ae,inputValue:Ae===1?5:20})},value:et||on,style:{width:100},options:ln?[{label:"\u5206\u503C",value:1}]:[{label:"\u767E\u5206\u6BD4",value:2},{label:"\u5206\u503C",value:1}],disabled:nt}),rn=="radio"&&It.createElement(Jt.ZP.Group,{size:"large",onChange:Ae=>{const Te=Ae.target.value;ue(Te),qt({type:Te,inputValue:Te===1?5:20})},value:et||on,disabled:nt},!ln&&It.createElement(Jt.ZP,{value:2,style:{marginRight:"50px"}},"\u767E\u5206\u6BD4\u6263\u5206"),It.createElement(Jt.ZP,{value:1},"\u56FA\u5B9A\u5206\u503C")),rn=="radio"&&It.createElement("div",{style:{marginRight:"10px",color:"#000000"}},an.type==2?"\u6263\u9664\u8865\u4EA4\u9636\u6BB5\u5F97\u5206\u7684":"\u6263\u9664\u603B\u6210\u7EE9\u7684"),It.createElement(Qt.Z,{size:"large",disabled:nt,value:an.inputValue,style:{width:"120px"},parser:Ce,addonAfter:an.type===1?"\u5206":"%",max:et===2?100:Number.MAX_SAFE_INTEGER,min:0,precision:0,onChange:Ae=>{qt({type:et,inputValue:Ae})}}),rn=="radio"&&an.type==2&&It.createElement("div",{style:{marginLeft:"10px",color:"#000000"}},"\u5206\u6570"))};Ei.Z=Mt},76902:function(Cn,Ei,je){"use strict";je.d(Ei,{z:function(){return kt},Z:function(){return xt}});var Me=je(59301),yt=je(8944),Jt=je(81428),Qt=je(64018),It=je(15360),dt=je(346),Mt=je(51257),an=je(15342),qt=je(1012),nt=je(45677),ln=je(59301),on=({html:Et})=>{const $t=(0,Me.useRef)(null),Zt=(0,Me.useRef)(null),Yn=`.markdown-body p {
|
|
margin: 0 0 16px 0 !important;
|
|
line-height: 28px;
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
ol,
|
|
ul,
|
|
li {
|
|
list-style-type: none
|
|
}
|
|
|
|
ol,
|
|
ul,
|
|
dl {
|
|
margin-bottom: 0px;
|
|
}
|
|
|
|
.markdown-body {
|
|
-ms-text-size-adjust: 100%;
|
|
-webkit-text-size-adjust: 100%;
|
|
color: #333;
|
|
overflow: hidden;
|
|
font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", "Monaco", monospace, Tahoma, STXihei, "\u534E\u6587\u7EC6\u9ED1", STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, "\u5B8B\u4F53", Heiti, "\u9ED1\u4F53", sans-serif;
|
|
word-break: break-word;
|
|
font-size: 16px;
|
|
line-height: 1.6;
|
|
white-space: normal;
|
|
word-wrap: break-word;
|
|
position: relative;
|
|
}
|
|
|
|
.markdown-body ul>li {
|
|
list-style-type: disc;
|
|
}
|
|
|
|
.markdown-body ol>li {
|
|
list-style-type: decimal;
|
|
}
|
|
|
|
.markdown-body a {
|
|
background: transparent;
|
|
}
|
|
|
|
.markdown-body a:active,
|
|
.markdown-body a:hover {
|
|
outline: 0;
|
|
}
|
|
|
|
.markdown-body strong {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.markdown-body h1 {
|
|
font-size: 2em;
|
|
margin: 0.67em 0;
|
|
}
|
|
|
|
.markdown-body img {
|
|
border: 0;
|
|
}
|
|
|
|
.markdown-body hr {
|
|
-moz-box-sizing: content-box;
|
|
box-sizing: content-box;
|
|
height: 0;
|
|
}
|
|
|
|
.markdown-body pre {
|
|
overflow: auto;
|
|
}
|
|
|
|
.markdown-body code,
|
|
.markdown-body kbd,
|
|
.markdown-body pre {
|
|
font-family: "Meiryo UI", "YaHei Consolas Hybrid", Consolas, "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace;
|
|
font-size: 1em;
|
|
}
|
|
|
|
.markdown-body input {
|
|
color: inherit;
|
|
font: inherit;
|
|
margin: 0;
|
|
}
|
|
|
|
.markdown-body html input[disabled] {
|
|
cursor: default;
|
|
}
|
|
|
|
.markdown-body input {
|
|
line-height: normal;
|
|
}
|
|
|
|
.markdown-body input[type="checkbox"] {
|
|
-moz-box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
padding: 0;
|
|
}
|
|
|
|
.markdown-body table {
|
|
border-collapse: collapse;
|
|
border-spacing: 0;
|
|
}
|
|
|
|
.markdown-body td,
|
|
.markdown-body th {
|
|
padding: 0;
|
|
}
|
|
|
|
.markdown-body * {
|
|
-moz-box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.markdown-body input {
|
|
font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";
|
|
}
|
|
|
|
.markdown-body a {
|
|
color: #4183c4;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.markdown-body a:hover,
|
|
.markdown-body a:active {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.markdown-body hr {
|
|
height: 0;
|
|
margin: 15px 0;
|
|
overflow: hidden;
|
|
background: transparent;
|
|
border: 0;
|
|
border-bottom: 1px solid #ddd;
|
|
}
|
|
|
|
.markdown-body hr:before {
|
|
display: table;
|
|
content: "";
|
|
}
|
|
|
|
.markdown-body hr:after {
|
|
display: table;
|
|
clear: both;
|
|
content: "";
|
|
}
|
|
|
|
.markdown-body h1,
|
|
.markdown-body h2,
|
|
.markdown-body h3,
|
|
.markdown-body h4,
|
|
.markdown-body h5,
|
|
.markdown-body h6 {
|
|
margin-top: 15px;
|
|
margin-bottom: 15px;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.markdown-body h1 {
|
|
font-size: 30px;
|
|
}
|
|
|
|
.markdown-body h2 {
|
|
font-size: 21px;
|
|
}
|
|
|
|
.markdown-body h3 {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.markdown-body h4 {
|
|
font-size: 14px;
|
|
}
|
|
|
|
.markdown-body h5 {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.markdown-body h6 {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.markdown-body blockquote {
|
|
margin: 0;
|
|
}
|
|
|
|
.markdown-body ul,
|
|
.markdown-body ol {
|
|
padding: 0;
|
|
margin-top: 0;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
ul.linenums,
|
|
ol.linenums {
|
|
padding: 16px 0 0 56px !important;
|
|
}
|
|
|
|
.markdown-body ul,
|
|
.markdown-body ol {
|
|
padding-left: 2em;
|
|
}
|
|
|
|
|
|
.markdown-body ol ol,
|
|
.markdown-body ul ol {
|
|
list-style-type: lower-roman;
|
|
}
|
|
|
|
.markdown-body ul ul ol,
|
|
.markdown-body ul ol ol,
|
|
.markdown-body ol ul ol,
|
|
.markdown-body ol ol ol {
|
|
list-style-type: lower-alpha;
|
|
}
|
|
|
|
.markdown-body dd {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.markdown-body code {
|
|
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.markdown-body pre {
|
|
margin-top: 0;
|
|
margin-bottom: 0;
|
|
font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
|
}
|
|
|
|
.markdown-body .octicon {
|
|
font: normal normal 16px octicons-anchor;
|
|
line-height: 1;
|
|
display: inline-block;
|
|
text-decoration: none;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
-webkit-user-select: none;
|
|
-moz-user-select: none;
|
|
-ms-user-select: none;
|
|
user-select: none;
|
|
}
|
|
|
|
.markdown-body .octicon-link:before {
|
|
content: '\f05c';
|
|
}
|
|
|
|
.markdown-body>*:first-child {
|
|
margin-top: 0 !important;
|
|
}
|
|
|
|
.markdown-body>*:last-child {
|
|
margin-bottom: 0 !important;
|
|
}
|
|
|
|
.markdown-body .anchor {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
display: block;
|
|
padding-right: 6px;
|
|
padding-left: 30px;
|
|
margin-left: -30px;
|
|
}
|
|
|
|
.markdown-body .anchor:focus {
|
|
outline: none;
|
|
}
|
|
|
|
.markdown-body h1,
|
|
.markdown-body h2,
|
|
.markdown-body h3,
|
|
.markdown-body h4,
|
|
.markdown-body h5,
|
|
.markdown-body h6 {
|
|
position: relative;
|
|
margin-top: 1em;
|
|
margin-bottom: 16px;
|
|
font-weight: bold;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.markdown-body h1 .octicon-link,
|
|
.markdown-body h2 .octicon-link,
|
|
.markdown-body h3 .octicon-link,
|
|
.markdown-body h4 .octicon-link,
|
|
.markdown-body h5 .octicon-link,
|
|
.markdown-body h6 .octicon-link {
|
|
display: none;
|
|
color: #000;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.markdown-body h1:hover .anchor,
|
|
.markdown-body h2:hover .anchor,
|
|
.markdown-body h3:hover .anchor,
|
|
.markdown-body h4:hover .anchor,
|
|
.markdown-body h5:hover .anchor,
|
|
.markdown-body h6:hover .anchor {
|
|
padding-left: 8px;
|
|
margin-left: -30px;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.markdown-body h1:hover .anchor .octicon-link,
|
|
.markdown-body h2:hover .anchor .octicon-link,
|
|
.markdown-body h3:hover .anchor .octicon-link,
|
|
.markdown-body h4:hover .anchor .octicon-link,
|
|
.markdown-body h5:hover .anchor .octicon-link,
|
|
.markdown-body h6:hover .anchor .octicon-link {
|
|
display: inline-block;
|
|
}
|
|
|
|
.markdown-body h1 {
|
|
padding-bottom: 0.3em;
|
|
font-size: 2.25em;
|
|
line-height: 1.2;
|
|
border-bottom: 1px solid #eee;
|
|
}
|
|
|
|
.markdown-body h1 .anchor {
|
|
line-height: 1;
|
|
}
|
|
|
|
.markdown-body h2 {
|
|
padding-bottom: 0.3em;
|
|
font-size: 1.75em;
|
|
line-height: 1.225;
|
|
border-bottom: 1px solid #eee;
|
|
}
|
|
|
|
.markdown-body h2 .anchor {
|
|
line-height: 1;
|
|
}
|
|
|
|
.markdown-body h3 {
|
|
font-size: 1.5em;
|
|
line-height: 1.43;
|
|
}
|
|
|
|
.markdown-body h3 .anchor {
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.markdown-body h4 {
|
|
font-size: 1.25em;
|
|
}
|
|
|
|
.markdown-body h4 .anchor {
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.markdown-body h5 {
|
|
font-size: 1em;
|
|
}
|
|
|
|
.markdown-body h5 .anchor {
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.markdown-body h6 {
|
|
font-size: 1em;
|
|
color: #777;
|
|
}
|
|
|
|
.markdown-body h6 .anchor {
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.markdown-body p,
|
|
.markdown-body blockquote,
|
|
.markdown-body ul,
|
|
.markdown-body ol,
|
|
.markdown-body dl,
|
|
.markdown-body table,
|
|
.markdown-body pre {
|
|
margin-top: 0;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.markdown-body ul ul,
|
|
.markdown-body ul ol,
|
|
.markdown-body ol ol,
|
|
.markdown-body ol ul {
|
|
margin-top: 0;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.markdown-body li>p {
|
|
margin-top: 16px;
|
|
}
|
|
|
|
.markdown-body dl {
|
|
padding: 0;
|
|
}
|
|
|
|
.markdown-body dl dt {
|
|
padding: 0;
|
|
margin-top: 16px;
|
|
font-size: 1em;
|
|
font-style: italic;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.markdown-body dl dd {
|
|
padding: 0 16px;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.markdown-body blockquote {
|
|
padding: 0 15px;
|
|
color: #777;
|
|
border-left: 4px solid #ddd;
|
|
}
|
|
|
|
.markdown-body blockquote> :first-child {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.markdown-body blockquote> :last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.markdown-body table {
|
|
display: block;
|
|
width: 100%;
|
|
overflow: auto;
|
|
word-break: normal;
|
|
word-break: keep-all;
|
|
}
|
|
|
|
.markdown-body table th {
|
|
font-weight: bold;
|
|
text-align: revert;
|
|
}
|
|
|
|
.markdown-body table th,
|
|
.markdown-body table td {
|
|
padding: 6px 13px;
|
|
border: 1px solid #ddd;
|
|
}
|
|
|
|
.markdown-body table tr {
|
|
background-color: #fff;
|
|
border-top: 1px solid #ccc;
|
|
}
|
|
|
|
.markdown-body table tr:nth-child(2n) {
|
|
background-color: #f8f8f8;
|
|
}
|
|
|
|
.markdown-body img {
|
|
max-width: 100%;
|
|
-moz-box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.markdown-body code {
|
|
padding: 0;
|
|
padding-top: 0.2em;
|
|
padding-bottom: 0.2em;
|
|
margin: 0;
|
|
font-size: 85%;
|
|
background-color: rgba(0, 0, 0, 0.04);
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.markdown-body code:has(.katex) {
|
|
background-color: transparent;
|
|
}
|
|
|
|
.markdown-body code:before,
|
|
.markdown-body code:after {
|
|
letter-spacing: -0.2em;
|
|
content: "\\00a0";
|
|
}
|
|
|
|
.markdown-body pre>code {
|
|
padding: 0;
|
|
margin: 0;
|
|
font-size: 100%;
|
|
word-break: normal;
|
|
white-space: pre;
|
|
background: transparent;
|
|
border: 0;
|
|
}
|
|
|
|
.markdown-body .highlight {
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.markdown-body .highlight pre,
|
|
.markdown-body pre {
|
|
padding: 16px;
|
|
overflow: auto;
|
|
font-size: 85%;
|
|
line-height: 1.45;
|
|
background-color: #f7f7f7;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.markdown-body .highlight pre {
|
|
margin-bottom: 0;
|
|
word-break: normal;
|
|
}
|
|
|
|
.markdown-body pre {
|
|
word-wrap: normal;
|
|
}
|
|
|
|
.markdown-body pre code {
|
|
display: inline;
|
|
max-width: initial;
|
|
padding: 0;
|
|
margin: 0;
|
|
overflow: initial;
|
|
line-height: inherit;
|
|
word-wrap: normal;
|
|
background-color: transparent;
|
|
border: 0;
|
|
}
|
|
|
|
.markdown-body pre code:before,
|
|
.markdown-body pre code:after {
|
|
content: normal;
|
|
}
|
|
|
|
.markdown-body kbd {
|
|
display: inline-block;
|
|
padding: 3px 5px;
|
|
font-size: 11px;
|
|
line-height: 10px;
|
|
color: #555;
|
|
vertical-align: middle;
|
|
background-color: #fcfcfc;
|
|
border: solid 1px #ccc;
|
|
border-bottom-color: #bbb;
|
|
border-radius: 3px;
|
|
box-shadow: inset 0 -1px 0 #bbb;
|
|
}
|
|
|
|
.markdown-body .pl-c {
|
|
color: #969896;
|
|
}
|
|
|
|
.markdown-body .pl-c1,
|
|
.markdown-body .pl-mdh,
|
|
.markdown-body .pl-mm,
|
|
.markdown-body .pl-mp,
|
|
.markdown-body .pl-mr,
|
|
.markdown-body .pl-s1 .pl-v,
|
|
.markdown-body .pl-s3,
|
|
.markdown-body .pl-sc,
|
|
.markdown-body .pl-sv {
|
|
color: #0086b3;
|
|
}
|
|
|
|
.markdown-body .pl-e,
|
|
.markdown-body .pl-en {
|
|
color: #795da3;
|
|
}
|
|
|
|
.markdown-body .pl-s1 .pl-s2,
|
|
.markdown-body .pl-smi,
|
|
.markdown-body .pl-smp,
|
|
.markdown-body .pl-stj,
|
|
.markdown-body .pl-vo,
|
|
.markdown-body .pl-vpf {
|
|
color: #333;
|
|
}
|
|
|
|
.markdown-body .pl-ent {
|
|
color: #63a35c;
|
|
}
|
|
|
|
.markdown-body .pl-k,
|
|
.markdown-body .pl-s,
|
|
.markdown-body .pl-st {
|
|
color: #a71d5d;
|
|
}
|
|
|
|
.markdown-body .pl-pds,
|
|
.markdown-body .pl-s1,
|
|
.markdown-body .pl-s1 .pl-pse .pl-s2,
|
|
.markdown-body .pl-sr,
|
|
.markdown-body .pl-sr .pl-cce,
|
|
.markdown-body .pl-sr .pl-sra,
|
|
.markdown-body .pl-sr .pl-sre,
|
|
.markdown-body .pl-src {
|
|
color: #df5000;
|
|
}
|
|
|
|
.markdown-body .pl-mo,
|
|
.markdown-body .pl-v {
|
|
color: #1d3e81;
|
|
}
|
|
|
|
.markdown-body .pl-id {
|
|
color: #b52a1d;
|
|
}
|
|
|
|
.markdown-body .pl-ii {
|
|
background-color: #b52a1d;
|
|
color: #f8f8f8;
|
|
}
|
|
|
|
.markdown-body .pl-sr .pl-cce {
|
|
color: #63a35c;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.markdown-body .pl-ml {
|
|
color: #693a17;
|
|
}
|
|
|
|
.markdown-body .pl-mh,
|
|
.markdown-body .pl-mh .pl-en,
|
|
.markdown-body .pl-ms {
|
|
color: #1d3e81;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.markdown-body .pl-mq {
|
|
color: #008080;
|
|
}
|
|
|
|
.markdown-body .pl-mi {
|
|
color: #333;
|
|
font-style: italic;
|
|
}
|
|
|
|
.markdown-body .pl-mb {
|
|
color: #333;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.markdown-body .pl-md,
|
|
.markdown-body .pl-mdhf {
|
|
background-color: #ffecec;
|
|
color: #bd2c00;
|
|
}
|
|
|
|
.markdown-body .pl-mdht,
|
|
.markdown-body .pl-mi1 {
|
|
background-color: #eaffea;
|
|
color: #55a532;
|
|
}
|
|
|
|
.markdown-body .pl-mdr {
|
|
color: #795da3;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.markdown-body kbd {
|
|
display: inline-block;
|
|
padding: 3px 5px;
|
|
font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
|
line-height: 10px;
|
|
color: #555;
|
|
vertical-align: middle;
|
|
background-color: #fcfcfc;
|
|
border: solid 1px #ccc;
|
|
border-bottom-color: #bbb;
|
|
border-radius: 3px;
|
|
box-shadow: inset 0 -1px 0 #bbb;
|
|
}
|
|
|
|
.markdown-body .task-list-item {
|
|
list-style-type: none;
|
|
}
|
|
|
|
.markdown-body .task-list-item+.task-list-item {
|
|
margin-top: 3px;
|
|
}
|
|
|
|
.markdown-body .task-list-item input {
|
|
float: left;
|
|
margin: 0.3em 0 0.25em -1.6em;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.markdown-body :checked+.radio-label {
|
|
z-index: 1;
|
|
position: relative;
|
|
border-color: #4183c4;
|
|
}
|
|
|
|
|
|
/*! Pretty printing styles. Used with prettify.js. */
|
|
/* SPAN elements with the classes below are added by prettyprint. */
|
|
.pln {
|
|
color: #000
|
|
}
|
|
|
|
/* plain text */
|
|
|
|
@media screen {
|
|
.str {
|
|
color: #080
|
|
}
|
|
|
|
/* string content */
|
|
.kwd {
|
|
color: #008
|
|
}
|
|
|
|
/* a keyword */
|
|
.com {
|
|
color: #800
|
|
}
|
|
|
|
/* a comment */
|
|
.typ {
|
|
color: #606
|
|
}
|
|
|
|
/* a type name */
|
|
.lit {
|
|
color: #066
|
|
}
|
|
|
|
/* a literal value */
|
|
/* punctuation, lisp open bracket, lisp close bracket */
|
|
.pun,
|
|
.opn,
|
|
.clo {
|
|
color: #660
|
|
}
|
|
|
|
.tag {
|
|
color: #008
|
|
}
|
|
|
|
/* a markup tag name */
|
|
.atn {
|
|
color: #606
|
|
}
|
|
|
|
/* a markup attribute name */
|
|
.atv {
|
|
color: #080
|
|
}
|
|
|
|
/* a markup attribute value */
|
|
.dec,
|
|
.var {
|
|
color: #606
|
|
}
|
|
|
|
/* a declaration; a variable name */
|
|
.fun {
|
|
color: red
|
|
}
|
|
|
|
/* a function name */
|
|
}
|
|
|
|
/* Use higher contrast and text-weight for printable form. */
|
|
@media print,
|
|
projection {
|
|
.str {
|
|
color: #060
|
|
}
|
|
|
|
.kwd {
|
|
color: #006;
|
|
font-weight: bold
|
|
}
|
|
|
|
.com {
|
|
color: #600;
|
|
font-style: italic
|
|
}
|
|
|
|
.typ {
|
|
color: #404;
|
|
font-weight: bold
|
|
}
|
|
|
|
.lit {
|
|
color: #044
|
|
}
|
|
|
|
.pun,
|
|
.opn,
|
|
.clo {
|
|
color: #440
|
|
}
|
|
|
|
.tag {
|
|
color: #006;
|
|
font-weight: bold
|
|
}
|
|
|
|
.atn {
|
|
color: #404
|
|
}
|
|
|
|
.atv {
|
|
color: #060
|
|
}
|
|
}
|
|
|
|
/* Put a border around prettyprinted code snippets. */
|
|
pre.prettyprint {
|
|
padding: 2px;
|
|
/* border: 1px solid #888 */
|
|
}
|
|
|
|
/* Specify class=linenums on a pre to get line numbering */
|
|
ol.linenums {
|
|
margin-top: 0;
|
|
margin-bottom: 0
|
|
}
|
|
|
|
/* IE indents via margin-left */
|
|
li.L0,
|
|
li.L1,
|
|
li.L2,
|
|
li.L3,
|
|
li.L5,
|
|
li.L6,
|
|
li.L7,
|
|
li.L8 {
|
|
list-style-type: none
|
|
}
|
|
|
|
/* Alternate shading for lines */
|
|
li.L1,
|
|
li.L3,
|
|
li.L5,
|
|
li.L7,
|
|
li.L9 {
|
|
background: #eee
|
|
}
|
|
|
|
.markdown-body p,
|
|
.markdown-body blockquote,
|
|
.markdown-body ul,
|
|
.markdown-body ol,
|
|
.markdown-body dl,
|
|
.markdown-body table,
|
|
.markdown-body pre {
|
|
margin-top: 0;
|
|
margin-bottom: 16px;
|
|
}`;return(0,Me.useEffect)(()=>{const gn=$t.current.attachShadow({mode:"open"});Zt.current=document.createElement("div"),Zt.current.className="markdown-body",Zt.current.innerHTML=Et,gn.appendChild(Zt.current);const Jn=document.createElement("style");return Jn.textContent=Yn,gn.appendChild(Jn),()=>{gn.innerHTML=""}},[]),(0,Me.useEffect)(()=>{Zt.current&&(Zt.current.innerHTML=Et)},[Et]),ln.createElement("div",{ref:$t})};function et(Et){const $t=["onabort","onanimationend","onanimationiteration","onanimationstart","onauxclick","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncopy","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","ongotpointercapture","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onlostpointercapture","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onpaste","onpause","onplay","onplaying","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointermove","onpointerout","onpointerover","onpointerup","onprogress","onratechange","onreset","onresize","onscroll","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onsubmit","onsuspend","ontimeupdate","ontoggle","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontransitionend","onvolumechange","onwaiting","onwheel"],Zt=new RegExp(`\\b(${$t.join("|")})\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s>]*)`,"gi");return Et.replace(Zt,"").trim()}var ue=Object.defineProperty,ce=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable,Te=(Et,$t,Zt)=>$t in Et?ue(Et,$t,{enumerable:!0,configurable:!0,writable:!0,value:Zt}):Et[$t]=Zt,Ie=(Et,$t)=>{for(var Zt in $t||($t={}))Ce.call($t,Zt)&&Te(Et,Zt,$t[Zt]);if(ce)for(var Zt of ce($t))Ae.call($t,Zt)&&Te(Et,Zt,$t[Zt]);return Et};const ze="@\u2581\u2581@",Ye="@\u2581@",lt=/<pre[^>]*>/g;function Bt(Et){let $t=document.createElement("div");return $t.innerHTML=Et,$t.childNodes.length===0?"":$t.childNodes[0].nodeValue}const kt=(Et,$t)=>{Et=Et||"";const Zt=/(?:https?:\/\/[^\/]+)?\/api\/attachments\/([A-Za-z0-9+/=]+)(\?.*?)?\)|(?:https?:\/\/[^\/]+)?\/api\/attachments\/([A-Za-z0-9+/=]+)(\?.*?)?|(?:https?:\/\/[^\/]+)?\/attachments\/download\/([A-Za-z0-9+/=]+)(\?.*?)?\//g,Yn=/\"(?:https?:\/\/[^\/]+)?\/api\/attachments\/([A-Za-z0-9+/=]+)(\?.*?)?|\"(?:https?:\/\/[^\/]+)?\/attachments\/download\/([A-Za-z0-9+/=]+)(\?.*?)?\//g,gn=/\(\s+(?:https?:\/\/[^\/]+)?\/files\/uploads\/([A-Za-z0-9+/=]+)(\?.*?)?|\"(?:https?:\/\/[^\/]+)?\/files\/uploads\/([A-Za-z0-9+/=]+)(\?.*?)?\//g,Jn=/(?:https?:\/\/[^\/]+)?\/attachments\/download\/([A-Za-z0-9+/=]+)(\?.*?)?\//g;return $t?Et.replaceAll("https://www.educoder.net","").replaceAll("https://www-cdn.educoder.net","").replaceAll("//api/attachments","/api/attachments").replace(Zt,(ci,Xn,In,hi,Ht,At,Hn)=>{const _i=Xn||hi||At,dr=In||Ht||Hn||"?";return dt.Z.API_SERVER+"/api/attachments/"+_i+dr+"&t="+(0,Mt.Jn)(_i,Date.now())+(ci.indexOf(")")>-1?")":"&")}).replaceAll('src="(','src="').replaceAll("src='(",'src="'):(Et=Et.replace(Jn,(ci,Xn,In,hi,Ht,At,Hn)=>{const _i=Xn||hi||At,dr=In||Ht||Hn||"?";return dt.Z.API_SERVER+"/attachments/download/"+_i+dr+"&t="+(0,Mt.Jn)(_i,Date.now())+(ci.indexOf(")")>-1?")":"&")}).replace(Zt,(ci,Xn,In,hi,Ht,At,Hn)=>{const _i=Xn||hi||At,dr=In||Ht||Hn||"?";return dt.Z.API_SERVER+"/api/attachments/"+_i+dr+"&t="+(0,Mt.Jn)(_i,Date.now())+(ci.indexOf(")")>-1?")":"&")}).replace(Yn,(ci,Xn,In,hi,Ht)=>{const At=Xn||hi,Hn=In||Ht||"";return'"'+dt.Z.API_SERVER+"/api/attachments/"+At+Hn+At+Hn+"&t="+(0,Mt.Jn)(At,Date.now())}).replace(gn,(ci,Xn,In,hi,Ht)=>{const At=Xn||hi,Hn=In||Ht||"";return"("+dt.Z.API_SERVER+"/files/uploads/"+At+Hn+At+Hn+"&t="+(0,Mt.Jn)(At,Date.now())}).replaceAll('src="(','src="').replaceAll("src='(",'src="').replaceAll("http://video.educoder","https://video.educoder").replaceAll("http://www.educoder.net/api","https://data.educoder.net/api").replaceAll("https://www.educoder.net/api","https://data.educoder.net/api").replace(/\r\n/g,`
|
|
`),Et)};var xt=({value:Et="",className:$t,showTextOnly:Zt,showLines:Yn,style:gn={},stylesPrev:Jn={},highlightKeywords:ci,showProgramFill:Xn,isProgramFill:In,disabledFill:hi=!1,programFillValue:Ht,onFillChange:At=dr=>{},onFillBlur:Hn=()=>{},onFillFocus:_i=()=>{}})=>{let dr=et(String(Et||""));const[En,Mn]=(0,Me.useState)(""),[Ln,Mi]=(0,Me.useState)("office"),[Rt,ni]=(0,Me.useState)([]),en=(0,Me.useRef)("a"+(0,qt.Z)()),Ti={},Lr=Kn=>/<style[\s\S]*?>/i.test(Kn||""),Tt=(Kn,oi,Wi)=>{const Nr=document.createElement(Kn===Ye?"input":"textarea");Nr.style.width="100%",Nr.style.height=Kn===Ye?"40px":"151px",Nr.rows=5,Nr.spellcheck=!1,Nr.name="edu-program-fill",Nr.placeholder="\u8BF7\u8F93\u5165",Nr.dataset.id=oi;const Uo=Object.keys(Ti).length;return Ti[Uo]=Nr,`<span class="edu-program-fill-wrap ${Kn===Ye?"":"show"}" style="width:${Kn===Ye?"400px":"100%"}" title=${Wi||""}><span>${Nr.outerHTML}<span class="edu-program-fill-score" style="margin:0 6px"></span></span></span>`};function Ze(Kn){return Kn=Kn.replace(/!\[.*?\]\(.*?\)/g,""),Kn=Kn.replace(/\[.*?\]\(.*?\)/g,""),Kn=Kn.replace(new RegExp("<iframe.*?<\\/iframe>","gs"),""),Kn=Kn.replace(/<embed.*?>/g,""),Kn=Kn.replace(/<img.*?>/g,""),Kn=Kn.replace(new RegExp("<video.*?>.*?<\\/video>","gs"),""),Kn=Kn.replace(new RegExp("<audio.*?>.*?<\\/audio>","gs"),""),Kn=Kn.replace(new RegExp("<style.*?>.*?<\\/style>","gs"),""),Kn=Kn.replace(new RegExp("<script.*?>.*?<\\/script>","gs"),""),Kn}const Ge=Kn=>!Zt&&Lr(dr)?Kn:Kn.replace(/<style.*?>([\s\S]+?)<\/style>/gim,function(oi,Wi){let Nr=Wi.replace(/(\n|\r)/g,"").split("}"),Uo=[];return Nr.map(Vr=>{Vr!=""&&Uo.push(`.${en.current} ${Vr}`)}),`<style>${Uo.join("}")}</style>`}),rt=(0,Me.useMemo)(()=>{try{const Nr=/\(\s+\/api\/attachments\/|\(\/api\/attachments\//g,Uo=/\"\/api\/attachments\/|\"\/attachments\/download\//g,Vr=/\(\s+\/files\/uploads\/|\"\/files\/uploads\//g,lo=/\(\/attachments\/download\//g;dr=dr.replace(lo,"("+dt.Z.API_SERVER+"/attachments/download/").replace(Nr,"("+dt.Z.API_SERVER+"/api/attachments/").replace(Uo,'"'+dt.Z.API_SERVER+"/api/attachments/").replace(Vr,'"'+dt.Z.API_SERVER+"/files/uploads/").replaceAll("http://video.educoder","https://video.educoder").replaceAll("http://www.educoder.net/api","https://data.educoder.net/api").replaceAll("https://www.educoder.net/api","https://data.educoder.net/api").replace(/\r\n/g,`
|
|
`)}catch(Nr){}if(Xn){let Nr=-1;return dr=dr.replaceAll("<","<").replaceAll(">",">").replace(/(@▁▁@|@▁@)/g,function(Uo,Vr,lo){var Rn;return++Nr,Tt(Uo,Nr,(Rn=Ht==null?void 0:Ht[Nr])==null?void 0:Rn.value.replaceAll("<","<").replaceAll(">",">"))}),`<pre style="background:#fff;padding:4px">${Ge(dr||"")}</pre>`}let Kn=Ge(dr);Kn=(0,Jt.ZP)(Kn);const oi=(0,Jt.ez)();dr.match(/\[TOC\]/)&&(Kn=Kn.replace("<p>[TOC]</p>",(0,Jt.Qv)()),(0,Jt.Iy)()),Kn=Kn.replace(/(__special_katext_id_\d+__)/g,(Nr,Uo)=>{const{type:Vr,expression:lo}=oi[Uo];return(0,an.renderToString)(Bt(lo)||"",{displayMode:Vr==="block",throwOnError:!1,output:"html"})}),Kn=Kn.replace(/▁/g,"\u2581\u2581\u2581\u2581\u2581"),(0,Jt.AL)();const Wi=document.createElement("div");if(Wi.innerHTML=Kn,Zt)return Wi.innerText;if(ci){const Nr=ci.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return An(Wi,Nr),Wi.innerHTML}return setTimeout(()=>qn(),500),Wi.innerHTML},[dr,ci]);(0,Me.useEffect)(()=>{Gn.current&&Gn.current.querySelectorAll(["input","textarea"]).forEach(oi=>{oi.oninput=Ft,oi.onblur=qe,oi.onfocus=mt})},[Rt]),(0,Me.useEffect)(()=>{var Kn,oi,Wi,Nr,Uo;if(Ht!=null&&Ht.length)try{const Vr=Gn.current.querySelectorAll(".edu-program-fill-score"),lo=Gn.current.querySelectorAll('[name="edu-program-fill"]');for(const[Rn,$n]of lo.entries())$n.value=((Kn=Ht==null?void 0:Ht[Rn])==null?void 0:Kn.value)||"",((oi=Ht==null?void 0:Ht[Rn])==null?void 0:oi.type)==="warning"?$n.className="program-fill-warning":((Wi=Ht==null?void 0:Ht[Rn])==null?void 0:Wi.type)==="success"?$n.className="program-fill-success":$n.className="";for(const[Rn,$n]of Vr.entries())$n.innerHTML=(Nr=Ht==null?void 0:Ht[Rn])!=null&&Nr.score?`${(Uo=Ht==null?void 0:Ht[Rn])==null?void 0:Uo.score}\u5206`:"";ni(Ht)}catch(Vr){console.log(Vr,"error")}},[Ht]);const Ft=Kn=>{Rt[Kn.target.dataset.id]=Rt[Kn.target.dataset.id]||{},Rt[Kn.target.dataset.id].value=Kn.target.value,ni([...Rt]),At(Rt,Kn.target.dataset.id)},qe=Kn=>{Rt[Kn.target.dataset.id]=Rt[Kn.target.dataset.id]||{},Rt[Kn.target.dataset.id].value=Kn.target.value,ni([...Rt]),Hn(Rt,Kn.target.dataset.id)},mt=Kn=>{Rt[Kn.target.dataset.id]=Rt[Kn.target.dataset.id]||{},Rt[Kn.target.dataset.id].value=Kn.target.value,ni([...Rt]),_i(Rt,Kn.target.dataset.id)};function An(Kn,oi){return Kn.childNodes.forEach(Wi=>{var Nr;if(Wi.childNodes.length>0)An(Wi,oi);else if(Wi.nodeName!=="IMG")if(Wi.innerHTML)Wi.innerHTML=(Nr=Wi.innerHTML)==null?void 0:Nr.replace(new RegExp(oi,"gi"),'<span style="color:#0152d9;background-color:#1890ff33">$&</span>');else{const Uo=document.createElement("span");Uo.innerHTML=Wi.textContent.replace(new RegExp(oi,"gi"),'<span style="color:#0152d9;background-color:#1890ff33">$&</span>'),Wi.replaceWith(Uo)}})}const Gn=(0,Me.useRef)();Jt.jb.WebkitLineClamp=Yn,Yn&&(gn=Ie(Ie({},gn),Jt.jb));function fo(Kn){let oi=Kn.target;if(oi.tagName.toUpperCase()==="A"){let Wi=oi.getAttribute("href");if(Wi.indexOf("office")>-1)Kn.preventDefault(),Mn(Wi),Mi("office");else if(Wi.indexOf("application/pdf")>-1)Kn.preventDefault(),Mn(Wi),Mi("pdf");else if(Wi.indexOf("text/html")>-1)Kn.preventDefault(),Mn(Wi),Mi("html");else if(Wi.startsWith("#")){Kn.preventDefault();let Nr=document.getElementById(Wi.replace("#",""));Nr&&Nr.scrollIntoView(!0)}}}const qn=()=>{var Kn;const oi=(Kn=Gn.current)==null?void 0:Kn.querySelectorAll("video");oi==null||oi.forEach(Wi=>{if(Wi.oncontextmenu=()=>!1,Wi.src.indexOf(".m3u8")>-1&&!Wi.canPlayType("application/vnd.apple.mpegurl")){if(It.ZP.isSupported()){var Nr=new It.ZP;Nr.loadSource(Wi.src),Nr.attachMedia(Wi)}}})};return(0,Me.useEffect)(()=>{if(Gn.current&&rt&&rt.match(lt)&&window.PR.prettyPrint(),Gn.current)return Gn.current.addEventListener("click",fo),()=>{var Kn;(Kn=Gn.current)==null||Kn.removeEventListener("click",fo),(0,Jt.AL)(),(0,Jt.Iy)()}},[rt,Gn.current,fo]),(0,Me.useEffect)(()=>{var Kn;const oi=Wi=>{Wi.preventDefault(),Wi.clipboardData.setData("text",window.getSelection().toString())};return(Kn=Gn.current)==null||Kn.addEventListener("copy",oi),()=>{var Wi;(Wi=Gn.current)==null||Wi.removeEventListener("copy",oi)}},[Gn.current]),Me.createElement(Me.Fragment,null,Zt&&Me.createElement("div",{ref:Gn},rt),!Zt&&!Lr(rt)&&Me.createElement("div",{ref:Gn,style:Ie({},gn),className:`${$t||""} ${hi?"disabled-fill":""} markdown-body ${en.current}`,dangerouslySetInnerHTML:{__html:rt}}),!Zt&&Lr(rt)&&Me.createElement(on,{html:rt}),Me.createElement(nt.Z,{close:!0,data:En,type:En!=null&&En.length?Ln:"",style:Ie({},Jn),onClose:()=>Mn("")}))}},28027:function(Cn,Ei,je){"use strict";var Me=je(59301),yt=je(28284),Jt=je(77019),Qt=je(82326),It=je(37568),dt=je(1560),Mt=je(99571),an=je(62673),qt=je(25399),nt=je(6767),ln=je(54172),rn=je(25690),on=je(61186),et=je.n(on),ue=je(26724),ce=je.n(ue),Ce=je(58143),Ae=je(82264),Te=je(9148),Ie=je(3878),ze=je(59301),Ye=Object.defineProperty,lt=Object.defineProperties,Bt=Object.getOwnPropertyDescriptors,kt=Object.getOwnPropertySymbols,xt=Object.prototype.hasOwnProperty,Et=Object.prototype.propertyIsEnumerable,$t=(Ht,At,Hn)=>At in Ht?Ye(Ht,At,{enumerable:!0,configurable:!0,writable:!0,value:Hn}):Ht[At]=Hn,Zt=(Ht,At)=>{for(var Hn in At||(At={}))xt.call(At,Hn)&&$t(Ht,Hn,At[Hn]);if(kt)for(var Hn of kt(At))Et.call(At,Hn)&&$t(Ht,Hn,At[Hn]);return Ht},Yn=(Ht,At)=>lt(Ht,Bt(At)),gn=(Ht,At,Hn)=>new Promise((_i,dr)=>{var En=Mi=>{try{Ln(Hn.next(Mi))}catch(Rt){dr(Rt)}},Mn=Mi=>{try{Ln(Hn.throw(Mi))}catch(Rt){dr(Rt)}},Ln=Mi=>Mi.done?_i(Mi.value):Promise.resolve(Mi.value).then(En,Mn);Ln((Hn=Hn.apply(Ht,At)).next())});const Jn=[];function ci({onSearch:Ht,schools:At}){return ze.createElement(yt.default,{colon:!1,layout:"horizontal",onFinish:Ht,initialValues:{keyword:"",school_name:"",search_type:"1"}},ze.createElement(Jt.Z,{style:{flexWrap:"nowrap"}},ze.createElement(yt.default.Item,{name:"search_type",label:"\u641C\u7D22\u7C7B\u578B"},ze.createElement(Qt.default,{popupClassName:Ie.Z.selectdown,style:{width:106}},ze.createElement(Qt.default.Option,{value:"1"},"\u59D3\u540D"),ze.createElement(Qt.default.Option,{value:"2"},"\u624B\u673A\u53F7"),ze.createElement(Qt.default.Option,{value:"3"},"\u90AE\u7BB1"))),ze.createElement(yt.default.Item,{style:{marginLeft:20},label:"\u641C\u7D22\u5185\u5BB9",name:"keyword",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9"}]},ze.createElement(It.default,{allowClear:!0,style:{width:300},size:"middle"})),ze.createElement(yt.default.Item,{style:{marginLeft:20},label:"\u5355\u4F4D",name:"school_name"},ze.createElement(dt.Z,{options:At,style:{width:300},size:"middle",showSearch:!0,filterOption:(Hn,_i)=>_i.value.toUpperCase().indexOf(Hn.toUpperCase())!==-1,placeholder:"\u8BF7\u8F93\u5165\u5355\u4F4D\u540D\u79F0"})),ze.createElement(Mt.ZP,{type:"primary",style:{background:"#F6F7F9 linear-gradient(180deg, #FFFFFF 0%, #F6F7F9 100%)",boxShadow:"0px 2px 4px 0px #E0DFE1, inset 0px 1px 3px 0px rgba(255,255,255,0.5)",borderRadius:16,color:"#165DFF",marginLeft:40,border:"1px solid #BACFFE"},htmlType:"submit"},"\u641C\u7D22")))}var Xn=(Ht=>(Ht[Ht.INITDATA=0]="INITDATA",Ht[Ht.INITSCHOOLS=1]="INITSCHOOLS",Ht[Ht.SHOWLOADING=2]="SHOWLOADING",Ht[Ht.SELECTEDIDS=3]="SELECTEDIDS",Ht[Ht.SETQUERY=4]="SETQUERY",Ht[Ht.SETPAGE=5]="SETPAGE",Ht))(Xn||{});function In(Ht,At){switch(At.type){case 0:return Zt(Zt({},Ht),At.payload);case 4:return Zt(Zt({},Ht),At.payload);case 5:return Yn(Zt({},Ht),{page:At.payload,reload:!1});case 2:return Yn(Zt({},Ht),{loading:At.payload});case 1:return Yn(Zt({},Ht),{schools:At.payload});case 3:return Yn(Zt({},Ht),{selectedIds:At.payload});default:throw new Error}}const hi={data:[],schools:[],loading:!1,selectedIds:[],query:null,page:1,count:0,reload:!1};Ei.Z=({onSelect:Ht,onCancel:At,container_id:Hn,container_type:_i})=>{const[dr,En]=(0,Me.useReducer)(In,hi),{data:Mn,schools:Ln,loading:Mi,selectedIds:Rt,page:ni,count:en,query:Ti,reload:Lr}=dr;(0,Me.useEffect)(()=>{function mt(){return gn(this,null,function*(){const{users:An,user_count:Gn}=yield(0,Ae.nQ)(Yn(Zt({},Ti),{page:ni,container_type:_i,container_id:Hn,display_aliases:!0}));En({type:0,payload:{data:Lr?An:[...Mn,...An],count:Gn}})})}Ti&&mt()},[ni,Ti,Lr,Hn,_i]),(0,Me.useEffect)(()=>{function mt(){return gn(this,null,function*(){const{school_names:An}=yield(0,Ae.K$)({display_aliases:!0});En({type:1,payload:An.map(Gn=>({value:Gn}))})})}mt()},[]);const Tt=[{title:"",dataIndex:"added",width:40,ellipsis:!0,render:(mt,An)=>ze.createElement(an.default,{value:An.numid,checked:Rt.includes(An.numid),disabled:!!mt})},{title:"\u59D3\u540D",width:100,ellipsis:!0,align:"left",dataIndex:"username",render:(mt,An)=>ze.createElement("div",null,ze.createElement(qt.Z,{placement:"bottom",title:mt},ze.createElement(rn.Link,{style:{color:"#000000"},className:"bold c-black",to:`/users/${An.login}`,target:"_blank"},mt||"--")))},{title:"\u624B\u673A",width:100,dataIndex:"phone",ellipsis:!0,render:mt=>ze.createElement(qt.Z,{placement:"bottom",title:mt},ze.createElement("span",{style:{color:"#000000"}},mt||"--"))},{title:"\u90AE\u7BB1",dataIndex:"email",width:100,ellipsis:!0,render:mt=>ze.createElement(qt.Z,{placement:"bottom",title:mt},ze.createElement("span",{style:{color:"#000000"}},mt||"--"))},{title:"\u5B66\u53F7/\u5DE5\u53F7",width:100,dataIndex:"student_number",ellipsis:!0,render:mt=>ze.createElement(qt.Z,{placement:"bottom",title:mt},ze.createElement("span",{style:{color:"#000000"}},mt||"--"))},{title:"\u5B66\u6821/\u5355\u4F4D",width:150,dataIndex:"school_name",ellipsis:!0,render:mt=>ze.createElement(qt.Z,{placement:"bottom",title:mt},ze.createElement("span",{style:{color:"#000000"}},mt||"--"))},{title:"\u9662\u7CFB/\u90E8\u95E8",dataIndex:"depart_name",width:130,ellipsis:!0,render:mt=>ze.createElement(qt.Z,{placement:"bottom",title:mt},ze.createElement("span",{style:{color:"#000000"}},mt||"--"))},{title:"\u5B9E\u540D\u8BA4\u8BC1",dataIndex:"auth",width:100,render:mt=>ze.createElement("span",{style:{color:"#000000"}},mt?"\u662F":"\u5426")},{title:"\u6700\u540E\u767B\u5F55\u65F6\u95F4",dataIndex:"last_login_on",width:140,ellipsis:!0,render:mt=>ze.createElement(qt.Z,{placement:"bottom",title:mt},ze.createElement("span",{style:{color:"#000000"}},et()(mt).format("YYYY-MM-DD HH:mm")))},{title:"\u72B6\u6001",dataIndex:"added",width:80,render:mt=>{if(mt===1)return ze.createElement("span",{style:{color:"#000000"}},"\u5DF2\u6DFB\u52A0")}}];function Ze(mt){En({type:4,payload:{page:1,reload:!0,query:mt}})}function Ge(mt){En({type:5,payload:mt})}function rt(mt){let An=Rt.indexOf(mt);An>=0?Rt.splice(An,1):Rt.push(mt),En({type:3,payload:[...Rt]})}function Ft(){Rt.length===0?nt.ZP.warning("\u8BF7\u5148\u5728\u4E0B\u9762\u5217\u8868\u4E2D\u9009\u62E9\u8981\u6DFB\u52A0\u6210\u5458"):(Ht(Rt,Hn),En({type:0,payload:{data:[],count:0,page:1,selectedIds:[],query:null,reload:!1}}))}const qe=en>ni*10;return ze.createElement("div",{className:"select-user-container",style:{paddingBottom:20}},ze.createElement(ci,{onSearch:Ze,schools:Ln}),Ti?ze.createElement(ze.Fragment,null,ze.createElement("div",{className:"flexd-table-header mt20"},ze.createElement(Te.Gi,null,ze.createElement(ln.default,{pagination:!1,dataSource:Jn,columns:Tt}))),ze.createElement("div",{style:{maxHeight:260,overflow:"auto",marginBottom:20}},ze.createElement(ce(),{initialLoad:!1,pageStart:1,threshold:20,loadMore:Ge,hasMore:qe,useWindow:!1},ze.createElement(Te.Gi,null,ze.createElement(ln.default,{loading:Mi,showHeader:!1,pagination:!1,dataSource:Mn,columns:Tt,onRow:mt=>({onClick:An=>{mt.added!==1&&rt(mt.numid)}})})))),ze.createElement("div",{className:"flex-container flex-end"},ze.createElement(Mt.ZP,{type:"ghost",style:{marginRight:10,border:"1px solid #C3CFE0",color:"#464F66"},onClick:At},"\u53D6\u6D88"),ze.createElement(Mt.ZP,{style:{background:"#F6F7F9 linear-gradient(180deg, #FFFFFF 0%, #F6F7F9 100%)",boxShadow:"0px 2px 4px 0px #E0DFE1, inset 0px 1px 3px 0px rgba(255,255,255,0.5)",borderRadius:2,color:"#165DFF",border:"1px solid #BACFFE"},type:"primary",onClick:Ft},"\u786E\u5B9A"))):ze.createElement("div",{className:"tc font16 c-light-black mt40 pb30"},ze.createElement("img",{src:Ce,width:"100",alt:""}),ze.createElement("br",null),ze.createElement("p",{className:"mt20"},"\u8BF7\u641C\u7D22\u8981\u6DFB\u52A0\u7684\u4EBA\u5458")))}},3039:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return an}});var Me=je(59301),yt={flex_box_center:"flex_box_center___rQJfc",flex_space_between:"flex_space_between___MDW24",flex_box_vertical_center:"flex_box_vertical_center___RZbAv",flex_box_center_end:"flex_box_center_end___ILhJA",flex_box_column:"flex_box_column___Fmij7",orangeColor:"orangeColor___U5vU6",redColor:"redColor___qYa6X",statustitle:"statustitle___pTBLm",statusbody:"statusbody___qUPQx",flex:"flex___VtL45"},Jt=je(62957),Qt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAPCAYAAADUFP50AAAAAXNSR0IArs4c6QAAAUFJREFUOE+V0ktKw1AUxvH/rVqIxT4wkgwEUSmK4APRBfiYCKU7cOZEBOkadAMZiwhuwJETBQciFRTtwJkPBLW2BRGrRanU9kpN2sSYiGaWc/PjuznnCN2Qh8AkPo+AzXxKLLiPhW7ICtDqB4GzQkqM/huGFZgZcDCBBDaaicsTMKbZH2xfwdY5/ICAEGSasC0AwRYblj+gKkENwfy4WS9V4LHsgsk49EZteJKHdBa6w7AybdZzr3D64ILxGKjtNrx9gfsSRBSYtf6xZh1/u+qQClrIhtdFuHmGvhisJcz65RPsZl2Jc/3QE7FhpgDHuT80x2+O9cR1K/GiCDt3rkQ/+Ns43gDFD0YVmHIuQGOOmiGTARhxwkGd1cZ7Vwd0OppWr3911StpcV++Iwn67q/kyBMuHchErcqwFxT1XZXsfQJqo2zI6kdI4QAAAABJRU5ErkJggg==",It="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAW1JREFUOE+dkj1IQmEUht9z/blp4VQEjS39eW+oSCFCpFCI4BiKFGWWQUSrCjVVg+lQNJZQDZGNTm1B4NTibS3n2lo0wuqEN8i/a0HfeN7v+d73nO+QJEcKAJzQPAwCnSpKNtoqkyRHqgDrtUFAb6Rnedx43KgT6O5P0GQijFiNLe/Sy3/B8g+YTIRRrb5jP32JYNADr8eOldU0RJEqVlm8r1kyuA/AIEB10OWy4vBgA4ryCIdjCJlMDmfn1zAY6EmyGY/UrAwrgGATWKsn4mGEQl4Uiw+YX9hT73aZiEcl8eMbZAGA0AT6/ZPY3Ykiny/A55tA7uoGqdQFBD2VbDbDugoSTTEj3gTGYgG8Vt7UeG63hNkZJ7a2s+gw1XqPnf5REKhkt4kxNakO08ycbOtRC/7FcakCwNTJ0WwmDI+1LUCZZDkSYGa5Eewf0G0KAnprNYtFQHdPbZhNS1cmLafF5bUTJsyBSVMHPm+/ADTrfrtCH68WAAAAAElFTkSuQmCC",dt=(qt,nt,ln)=>new Promise((rn,on)=>{var et=Ce=>{try{ce(ln.next(Ce))}catch(Ae){on(Ae)}},ue=Ce=>{try{ce(ln.throw(Ce))}catch(Ae){on(Ae)}},ce=Ce=>Ce.done?rn(Ce.value):Promise.resolve(Ce.value).then(et,ue);ce((ln=ln.apply(qt,nt)).next())}),an=({type:qt,resdata:nt,onok:ln,oktext:rn,okloading:on})=>{const[et,ue]=(0,Me.useState)(!1),{can_copy_list:ce,can_copy_num:Ce,challenge_type:Ae,course_data_list:Te,no_copy_list:Ie,no_copy_num:ze,no_use_list:Ye,no_use_num:lt,repeat_shixun_num:Bt,student_count:kt,total_num:xt,use_num:Et}=nt;let $t=Ce>0||qt==="exercise";(0,Me.useEffect)(()=>{(nt==null?void 0:nt.student_count)>0&&ue(!0)},[nt]),console.log("---11",on),(0,Me.useEffect)(()=>{on||ue(!1)},[on]);const Zt=()=>{if(qt==="exercise"&&Ae===1)return Me.createElement(Me.Fragment,null,"\u8BFE\u5802\u5185\u6709",Me.createElement("span",{className:yt.orangeColor},kt),"\u540D\u5B66\u751F\u5DF2\u5728\u5176\u4ED6\u8003\u8BD5\u4E2D\u6311\u6218\u8FC7\u5176\u4E2D\u7684",Me.createElement("span",{className:yt.orangeColor},Et),"\u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C",Me.createElement("span",{className:yt.redColor},"\u91CD\u590D\u53D1\u9001\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u4F5C\u7B54\u5DF2\u6311\u6218\u8FC7\u7684\u5B9E\u8BAD\u9898\u3002"));if(qt==="exercise"&&Ae===2)return Me.createElement(Me.Fragment,null,"\u8BFE\u5802\u5185\u6709",Me.createElement("span",{className:yt.orangeColor},kt),"\u540D\u5B66\u751F\u5DF2\u5728\u8BFE\u5802\u5B9E\u9A8C\u4E2D\u6311\u6218\u8FC7\u5176\u4E2D\u7684",Me.createElement("span",{className:yt.orangeColor},Et),"\u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C\u4E14\u4F5C\u4E1A\u5DF2\u5F00\u542F\u201C\u4F5C\u4E1A\u622A\u6B62\u540E\u4E0D\u5141\u8BB8\u5B66\u751F\u7F16\u8F91\u4EE3\u7801\u201D\u8BBE\u7F6E\u9879\uFF0C",Me.createElement("span",{className:yt.redColor},"\u91CD\u590D\u53D1\u5E03\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(qt==="shixun"&&Ae===1)return Me.createElement(Me.Fragment,null,"\u8BFE\u5802\u5185\u6709",Me.createElement("span",{className:yt.orangeColor},kt),"\u540D\u5B66\u751F\u5DF2\u5728\u8003\u8BD5\u4E2D\u6311\u6218\u8FC7\u8BE5\u5B9E\u8DF5\u9879\u76EE\uFF0C",Me.createElement("span",{className:yt.redColor},"\u91CD\u590D\u53D1\u9001\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(qt==="shixun"&&Ae===2)return Me.createElement(Me.Fragment,null,"\u8BFE\u5802\u5185\u6709",Me.createElement("span",{className:yt.orangeColor},kt),"\u540D\u5B66\u751F\u5DF2\u5728\u8BFE\u5802\u5B9E\u9A8C\u4E2D\u6311\u6218\u8FC7\u8BE5\u5B9E\u8DF5\u9879\u76EE\uFF0C\u4E14\u4F5C\u4E1A\u5DF2\u5F00\u542F\u201C\u4F5C\u4E1A\u622A\u6B62\u540E\u4E0D\u5141\u8BB8\u5B66\u751F\u7F16\u8F91\u4EE3\u7801\u201D\u8BBE\u7F6E\u9879\uFF0C",Me.createElement("span",{className:yt.redColor},"\u91CD\u590D\u53D1\u9001\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(qt==="subject"&&Ae===1)return Me.createElement(Me.Fragment,null,"\u8BFE\u5802\u5185\u6709",Me.createElement("span",{className:yt.orangeColor},kt),"\u540D\u5B66\u751F\u5DF2\u5728\u8003\u8BD5\u4E2D\u6311\u6218\u8FC7\u5176\u4E2D\u7684",Me.createElement("span",{className:yt.orangeColor},Et),"\u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C",Me.createElement("span",{className:yt.redColor},"\u91CD\u590D\u53D1\u9001\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(qt==="subject"&&Ae===2)return Me.createElement(Me.Fragment,null,"\u8BFE\u5802\u5185\u6709 ",Me.createElement("span",{className:yt.orangeColor},kt)," \u540D\u5B66\u751F\u5DF2\u5728\u8BFE\u5802\u5B9E\u9A8C\u6311\u6218\u8FC7\u5176\u4E2D\u7684 ",Me.createElement("span",{className:yt.orangeColor},Et)," \u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C\u4E14\u4F5C\u4E1A\u5DF2\u5F00\u542F\u201C\u4F5C\u4E1A\u622A\u6B62\u540E\u4E0D\u5141\u8BB8\u5B66\u751F\u7F16\u8F91\u4EE3\u7801\u201D\u8BBE\u7F6E\u9879\uFF0C",Me.createElement("span",{className:yt.redColor},"\u91CD\u590D\u53D1\u9001\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(qt==="exercisepush")return Me.createElement(Me.Fragment,null,"\u8BFE\u5802\u5185\u6709",Me.createElement("span",{className:yt.orangeColor},kt),"\u540D\u5B66\u751F\u5DF2\u5728\u5176\u4ED6\u8003\u8BD5\u4E2D\u6311\u6218\u8FC7\u8BD5\u5377\u4E2D\u7684",Me.createElement("span",{className:yt.orangeColor},Et),"\u4E2A\u5B9E\u8DF5\u9879\u76EE \uFF0C",Me.createElement("span",{className:yt.redColor},"\u91CD\u590D\u53D1\u5E03\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u5728\u5F53\u524D\u8003\u8BD5\u4E2D\u8FDB\u884C\u4F5C\u7B54\u3002"));if(qt==="shixunpush"&&Ae===1)return Me.createElement(Me.Fragment,null,"\u8BFE\u5802\u5185\u6709",Me.createElement("span",{className:yt.orangeColor},kt),"\u540D\u5B66\u751F\u5DF2\u5728\u8003\u8BD5\u4E2D\u6311\u6218\u8FC7\u5176\u4E2D\u7684",Me.createElement("span",{className:yt.orangeColor},Et),"\u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C",Me.createElement("span",{className:yt.redColor},"\u91CD\u590D\u53D1\u5E03\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"));if(qt==="shixunpush"&&Ae===2)return Me.createElement(Me.Fragment,null,"\u8BFE\u5802\u5185\u6709",Me.createElement("span",{className:yt.orangeColor},kt),"\u540D\u5B66\u751F\u5DF2\u5728\u8BFE\u5802\u5B9E\u9A8C\u4E2D\u6311\u6218\u8FC7",Me.createElement("span",{className:yt.orangeColor},Et),"\u4E2A\u5B9E\u8DF5\u9879\u76EE\uFF0C\u4E14\u4F5C\u4E1A\u5DF2\u5F00\u542F\u201C\u4F5C\u4E1A\u622A\u6B62\u540E\u4E0D\u5141\u8BB8\u5B66\u751F\u7F16\u8F91\u4EE3\u7801\u201D\u8BBE\u7F6E\u9879\uFF0C",Me.createElement("span",{className:yt.redColor},"\u91CD\u590D\u53D1\u5E03\u4F1A\u5BFC\u81F4\u8FD9\u90E8\u5206\u5B66\u751F\u65E0\u6CD5\u518D\u63D0\u4EA4\u4F5C\u4E1A\u3002"))},Yn=()=>{if(qt==="exercise"||qt==="subject"||qt==="exercisepush"||qt==="shixunpush")return Me.createElement("div",{style:{marginTop:20}},ze>0&&Me.createElement("div",null,Me.createElement("span",{className:yt.flex},Me.createElement("img",{src:It,style:{width:14}}),Me.createElement("span",{className:yt.statustitle},"\u4E0D\u652F\u6301\u590D\u5236\u7684\u5B9E\u8DF5\u9879\u76EE")),Me.createElement("div",{className:yt.statusbody},qt==="exercise"&&Me.createElement("div",{style:{marginBottom:15}},"\u6CA1\u6709\u590D\u5236\u6743\u9650\u7684\u5B9E\u8DF5\u9879\u76EE\uFF0C",Me.createElement("span",{className:yt.redColor},"\u4EE5\u4E0B\u8BD5\u9898\u5C06\u4E0D\u4F1A\u88AB\u53D1\u9001\u81F3\u8BFE\u5802\u4E2D\u3002"),"\u60A8\u4E5F\u53EF\u4EE5\u8054\u7CFB\u9879\u76EE\u521B\u5EFA\u8005\u5F00\u542F\u590D\u5236\u6743\u9650\u6216\u8005\u8054\u7CFB\u5E73\u53F0\u6559\u7814\u52A9\u7406\u8FDB\u884C\u534F\u52A9\u3002"),(qt==="subject"||qt==="exercisepush")&&Me.createElement("div",{style:{marginBottom:15}},"\u6CA1\u6709\u590D\u5236\u6743\u9650\u7684\u5B9E\u8DF5\u9879\u76EE\uFF0C",$t&&Me.createElement("span",{className:yt.redColor},"\u4E00\u952E\u590D\u5236\u4E0D\u4F1A\u590D\u5236\u6B64\u90E8\u5206\u9879\u76EE\u3002"),"\u60A8\u53EF\u4EE5\u8054\u7CFB\u9879\u76EE\u521B\u5EFA\u8005\u5F00\u542F\u590D\u5236\u6743\u9650\u6216\u8005\u8054\u7CFB\u5E73\u53F0\u6559\u7814\u52A9\u7406\u8FDB\u884C\u534F\u52A9\u3002"),qt==="shixunpush"&&Me.createElement("div",{style:{marginBottom:15}},"\u6CA1\u6709\u590D\u5236\u6743\u9650\u7684\u5B9E\u8DF5\u9879\u76EE\uFF0C",$t&&Me.createElement("span",{className:yt.redColor},"\u4E00\u952E\u590D\u5236\u4E0D\u4F1A\u590D\u5236\u6B64\u90E8\u5206\u9879\u76EE\u3002"),"\u5EFA\u8BAE\u60A8\u91CD\u65B0\u9009\u62E9\u5B9E\u8DF5\u9879\u76EE\u518D\u53D1\u5E03\u4F5C\u4E1A\uFF0C\u4E5F\u53EF\u8054\u7CFB\u9879\u76EE\u521B\u5EFA\u8005\u5F00\u542F\u590D\u5236\u6743\u9650\u6216\u8054\u7CFB\u5E73\u53F0\u6559\u7814\u52A9\u7406\u8FDB\u884C\u534F\u52A9\u3002"),Me.createElement("div",null,Ie==null?void 0:Ie.map((gn,Jn)=>Me.createElement("a",{href:`/shixuns/${gn.identifier}/challenges`,target:"_blank"},"\u300A",gn==null?void 0:gn.name,"\u300B",Jn+1!==ze&&"\u3001"))))),Ce>0&&Me.createElement("div",{style:{marginTop:20}},Me.createElement("span",{className:yt.flex},Me.createElement("img",{src:Qt,style:{width:14}}),Me.createElement("span",{className:yt.statustitle},"\u652F\u6301\u590D\u5236\u7684\u5B9E\u8DF5\u9879\u76EE")),Me.createElement("div",{className:yt.statusbody},qt==="exercise"&&Me.createElement("div",{style:{marginBottom:15}},"\u5EFA\u8BAE\u60A8\u4E00\u952E\u590D\u5236\u5E76\u66FF\u6362\u8BD5\u9898\uFF08\u5C06\u590D\u5236\u5E76\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u9879\u76EE\u66FF\u6362\u8BD5\u5377\u4E2D\u7684\u539F\u8BD5\u9898\uFF0C\u4E0D\u4F1A\u590D\u5236\u5B66\u751F\u7684\u6311\u6218\u8BB0\u5F55\uFF0C\u65B0\u7684\u9879\u76EE\u652F\u6301\u8FDB\u884C\u7F16\u8F91\u5E76\u4E0E\u539F\u9879\u76EE\u4FE1\u606F\u4E92\u4E0D\u5F71\u54CD\uFF09\u3002"),(qt==="subject"||qt==="exercisepush")&&Me.createElement("div",{style:{marginBottom:15}},"\u5EFA\u8BAE\u60A8\u4E00\u952E\u590D\u5236\u5E76\u53D1\u9001\uFF08\u5C06\u590D\u5236\u5E76\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u9879\u76EE\uFF0C\u4E0D\u4F1A\u590D\u5236\u5B66\u751F\u7684\u6311\u6218\u8BB0\u5F55\uFF0C\u65B0\u7684\u9879\u76EE\u652F\u6301\u8FDB\u884C\u7F16\u8F91\u5E76\u4E0E\u539F\u9879\u76EE\u4FE1\u606F\u4E92\u4E0D\u5F71\u54CD\uFF09\u3002"),qt==="shixunpush"&&Me.createElement("div",{style:{marginBottom:15}},"\u5EFA\u8BAE\u60A8\u4E00\u952E\u590D\u5236\u5E76\u66FF\u6362\u8BD5\u9898\uFF08\u5C06\u590D\u5236\u5E76\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u9879\u76EE\u66FF\u6362\u5F53\u524D\u4F5C\u4E1A\u4E2D\u7684\u5B9E\u8DF5\u9879\u76EE\uFF0C\u4E0D\u4F1A\u590D\u5236\u5B66\u751F\u7684\u6311\u6218\u8BB0\u5F55\uFF0C\u65B0\u7684\u9879\u76EE\u652F\u6301\u8FDB\u884C\u7F16\u8F91\u5E76\u4E0E\u539F\u9879\u76EE\u4FE1\u606F\u4E92\u4E0D\u5F71\u54CD\uFF09\u3002"),Me.createElement("div",null,ce==null?void 0:ce.map((gn,Jn)=>Me.createElement("a",{href:`/shixuns/${gn.identifier}/challenges`,target:"_blank"},"\u300A",gn==null?void 0:gn.name,"\u300B",Jn+1!==Ce&&"\u3001"))))));if(qt==="shixun")return Me.createElement("div",{style:{marginTop:20}},Ce>0?"\u8BE5\u9879\u76EE\u652F\u6301\u590D\u5236\uFF0C\u5EFA\u8BAE\u60A8\u4E00\u952E\u590D\u5236\u5E76\u53D1\u9001\uFF08\u5C06\u590D\u5236\u5E76\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684\u9879\u76EE\uFF0C\u4E0D\u4F1A\u590D\u5236\u5B66\u751F\u7684\u6311\u6218\u8BB0\u5F55\uFF0C\u65B0\u7684\u9879\u76EE\u652F\u6301\u8FDB\u884C\u7F16\u8F91\u5E76\u4E0E\u539F\u9879\u76EE\u4FE1\u606F\u4E92\u4E0D\u5F71\u54CD\uFF09\u3002":"\u8BE5\u9879\u76EE\u4E0D\u652F\u6301\u590D\u5236\uFF0C\u60A8\u53EF\u4EE5\u8054\u7CFB\u9879\u76EE\u521B\u5EFA\u8005\u5F00\u542F\u590D\u5236\u6743\u9650\u6216\u8005\u8054\u7CFB\u5E73\u53F0\u6559\u7814\u52A9\u7406\u8FDB\u884C\u534F\u52A9\u3002")};return Me.createElement(Jt.default,{open:et,onCancel:()=>{ue(!1)},cancelText:"\u53D6\u6D88",title:"\u63D0\u793A",width:700,centered:!0,cancelButtonProps:{style:{display:!$t&&"none"}},zIndex:1003,confirmLoading:on,okText:$t?rn:"\u6211\u77E5\u9053\u4E86",onOk:()=>dt(void 0,null,function*(){$t?yield ln([...ce,...Ye]):ue(!1)})},Me.createElement("div",{style:{maxHeight:600,overflow:"auto"}},Zt(),Yn()))}},49840:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return Ce}});var Me=je(59301),yt=je(25690),Jt=je(62957),Qt=je(60242),It=je(99571),dt={con_warp:"con_warp___UwmUW",success_txt:"success_txt___bixIU"},Mt=je(38986),an=je(61186),qt=je.n(an),nt=je(59301),ln=Object.getOwnPropertySymbols,rn=Object.prototype.hasOwnProperty,on=Object.prototype.propertyIsEnumerable,et=(Ae,Te)=>{var Ie={};for(var ze in Ae)rn.call(Ae,ze)&&Te.indexOf(ze)<0&&(Ie[ze]=Ae[ze]);if(Ae!=null&&ln)for(var ze of ln(Ae))Te.indexOf(ze)<0&&on.call(Ae,ze)&&(Ie[ze]=Ae[ze]);return Ie},ue=(Ae,Te,Ie)=>new Promise((ze,Ye)=>{var lt=xt=>{try{kt(Ie.next(xt))}catch(Et){Ye(Et)}},Bt=xt=>{try{kt(Ie.throw(xt))}catch(Et){Ye(Et)}},kt=xt=>xt.done?ze(xt.value):Promise.resolve(xt.value).then(lt,Bt);kt((Ie=Ie.apply(Ae,Te)).next())});const ce=Ae=>{var Te=Ae,{shixunsDetail:Ie,globalSetting:ze,loading:Ye,dispatch:lt,showModal:Bt,onCancel:kt,onOk:xt,okBtnName:Et="\u5B8C\u6210",info:$t,source:Zt}=Te,Yn=et(Te,["shixunsDetail","globalSetting","loading","dispatch","showModal","onCancel","onOk","okBtnName","info","source"]);const[gn,Jn]=(0,Me.useState)(0),[ci,Xn]=(0,Me.useState)(0);return(0,Me.useEffect)(()=>{let In=null;const hi=()=>ue(void 0,null,function*(){let Ht={id:$t==null?void 0:$t.courseId,send_time:qt()().format("YYYY-MM-DD HH:mm"),exercise_id:$t!=null&&$t.exercise_id?$t==null?void 0:$t.exercise_id:null},At={id:$t==null?void 0:$t.courseId,course_id:$t==null?void 0:$t.courseId,identifier:$t==null?void 0:$t.courseId,type:"normal",is_use:1,is_copy:!0};Zt==="\u8BD5\u5377"?(Ht.examination_bank_ids=$t==null?void 0:$t.examination_bank_ids,Ht.type="ExaminationBank"):Zt==="\u5B9E\u8BAD"?Ht.shixun_info=($t==null?void 0:$t.shixun_info.length)>0?$t==null?void 0:$t.shixun_info:[At]:Zt==="\u5B9E\u8BAD\u548C\u8BD5\u5377"&&(Ht.examination_bank_ids=$t==null?void 0:$t.examination_bank_ids,Ht.shixun_info=($t==null?void 0:$t.shixun_info.length)>0?$t==null?void 0:$t.shixun_info:[At]);const Hn=yield(0,Mt.ZP)(`/api/courses/${$t==null?void 0:$t.courseId}/send_shixun_progress.json`,{method:"post",body:Ht});(Hn==null?void 0:Hn.status)===0&&(Jn(Hn==null?void 0:Hn.complete_num),Xn(Hn==null?void 0:Hn.total_num),(Hn==null?void 0:Hn.complete_num)!==(Hn==null?void 0:Hn.total_num)?(In&&clearInterval(In),In=setInterval(hi,5e3)):In&&clearInterval(In))});return Bt&&($t!=null&&$t.courseId)&&hi(),()=>{In&&clearInterval(In)}},[Bt]),nt.createElement(Jt.default,{centered:!0,maskClosable:!1,width:400,title:"\u5B9E\u8BAD\u52A0\u5165\u8BFE\u5802\u63D0\u793A",closable:gn==ci,open:Bt,destroyOnClose:!0,footer:null,onCancel:kt},nt.createElement("div",null,"\u5F53\u524D\u9009\u4E2D",nt.createElement("span",{className:"mr5 ml5",style:{color:"#3061D0"}},ci),"\u4E2A\u5B9E\u8BAD\u52A0\u5165\u6559\u5B66\u8BFE\u5802\u4E2D\uFF0C\u8BF7\u7A0D\u5019\u3002"),nt.createElement("div",{className:dt.con_warp},nt.createElement(Qt.Z,{className:"mt15 mb5",strokeColor:"#3061D0",trailColor:"rgba(144, 150, 163, 0.1)",percent:gn==ci&&ci!=0?100:gn/ci*100,showInfo:!1,size:[350,10]}),nt.createElement("div",{className:dt.success_txt},"\u5DF2\u6210\u529F\u53D1\u9001",nt.createElement("span",{className:"mr5 ml5",style:{color:"#3061D0"}},gn),"\u4E2A"),gn!=ci&&nt.createElement(It.ZP,{disabled:!0},"\u5904\u7406\u4E2D"),gn==ci&&nt.createElement(It.ZP,{type:"primary",onClick:xt},Et)))};var Ce=(0,yt.connect)(({shixunsDetail:Ae,loading:Te,globalSetting:Ie})=>({shixunsDetail:Ae,globalSetting:Ie,loading:Te.models.index}))(ce)},69720:function(Cn,Ei,je){"use strict";je.d(Ei,{h:function(){return ze}});var Me=je(59301),yt=je(82326),Jt=je(28284),Qt=je(99571),It=je(89780),dt=je.n(It),Mt=je(8336),an=je(12469),qt=Object.defineProperty,nt=Object.defineProperties,ln=Object.getOwnPropertyDescriptors,rn=Object.getOwnPropertySymbols,on=Object.prototype.hasOwnProperty,et=Object.prototype.propertyIsEnumerable,ue=(Ye,lt,Bt)=>lt in Ye?qt(Ye,lt,{enumerable:!0,configurable:!0,writable:!0,value:Bt}):Ye[lt]=Bt,ce=(Ye,lt)=>{for(var Bt in lt||(lt={}))on.call(lt,Bt)&&ue(Ye,Bt,lt[Bt]);if(rn)for(var Bt of rn(lt))et.call(lt,Bt)&&ue(Ye,Bt,lt[Bt]);return Ye},Ce=(Ye,lt)=>nt(Ye,ln(lt));const Ae=yt.default.Option,Te={labelCol:{span:4},wrapperCol:{span:20}},Ie={asp:["ASP","vbscript"],actionscript:["ActionScript(3.0)/Flash/Flex","clike"],bash:["Bash/Bat","shell"],css:["CSS","css"],c:["C","clike"],cpp:["C++","clike"],csharp:["C#","clike"],coffeescript:["CoffeeScript","coffeescript"],d:["D","d"],dart:["Dart","dart"],delphi:["Delphi/Pascal","pascal"],erlang:["Erlang","erlang"],go:["Golang","go"],groovy:["Groovy","groovy"],html:["HTML","text/html"],java:["Java","clike"],json:["JSON","text/json"],javascript:["Javascript","javascript"],lua:["Lua","lua"],less:["LESS","css"],markdown:["Markdown","gfm"],"objective-c":["Objective-C","clike"],php:["PHP","php"],perl:["Perl","perl"],python:["Python","python"],r:["R","r"],rst:["reStructedText","rst"],ruby:["Ruby","ruby"],sql:["SQL","sql"],sass:["SASS/SCSS","sass"],shell:["Shell","shell"],scala:["Scala","clike"],swift:["Swift","clike"],vb:["VB/VBScript","vb"],xml:["XML","text/xml"],yaml:["YAML","yaml"]};Ei.Z=({callback:Ye,onCancel:lt})=>{const[Bt,kt]=(0,Me.useState)("python");function xt($t){kt(Ie[$t][1])}function Et($t){Ye($t)}return Me.createElement(Jt.default,Ce(ce({},Te),{className:"code-block-panel",initialValues:{language:"python",content:""},onFinish:Et,style:{width:500}}),Me.createElement(Jt.default.Item,{label:"\u4EE3\u7801\u8BED\u8A00",name:"language"},Me.createElement(yt.default,{getPopupContainer:$t=>$t.parentNode,onChange:xt},Object.keys(Ie).map($t=>Me.createElement(Ae,{key:$t,value:$t},Ie[$t][0])))),Me.createElement(Jt.default.Item,{label:"\u4EE3\u7801\u5185\u5BB9",name:"content",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u4EE3\u7801\u5185\u5BB9"}]},Me.createElement(ze,{mode:Bt})),Me.createElement("div",{className:"flex-container flex-end"},Me.createElement(Qt.ZP,{type:"primary",htmlType:"submit",style:{marginRight:10}},"\u786E\u5B9A"),Me.createElement(Qt.ZP,{type:"ghost",onClick:lt},"\u53D6\u6D88")))};function ze({value:Ye,onChange:lt,mode:Bt,options:kt={}}){const xt=(0,Me.useRef)(),[Et,$t]=(0,Me.useState)();return(0,Me.useEffect)(()=>{if(Et){let Zt=function(Yn){const gn=Yn.getValue();lt&<(gn)};return Et.on("change",Zt),()=>{Et.off("change",Zt)}}},[Et,lt]),(0,Me.useEffect)(()=>{Et&&Et.setOption("mode",Bt)},[Et,Bt]),(0,Me.useEffect)(()=>{Et&&(Ye!==Et.getValue()||Ye==="")&&setTimeout(()=>{Et.setValue(Ye||"")},300)},[Et,Ye]),(0,Me.useEffect)(()=>{if(xt.current&&!Et){const Zt=dt().fromTextArea(xt.current,ce({mode:Bt,lineNumbers:!0,lineWrapping:!0,autoCloseBrackets:!0,tabSize:4,autofocus:!0,autoCloseTags:!0,matchBrackets:!0,styleActiveLine:!0},kt));$t(Zt)}},[xt.current,Et]),Me.createElement("div",{className:"my-codemirror-container"},Me.createElement("textarea",{ref:xt}))}},39793:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return or}});var Me=je(59301),yt=je(89780),Jt=je.n(yt),Qt=je(76374),It=je(8336),dt=je(6313),Mt=je(25717),an=je(99498),qt=je(25419),nt=je(67549),ln=je(76902),rn=({value:Fn="",className:vn,showTextOnly:pn,showLines:Ur,style:Ho={}})=>{const bo=(0,Me.useMemo)(()=>"",[Fn]);return Me.createElement(Me.Fragment,null,Me.createElement("div",{dangerouslySetInnerHTML:{__html:bo}}))},on=je(59301),et=Object.defineProperty,ue=Object.defineProperties,ce=Object.getOwnPropertyDescriptors,Ce=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Ie=(Fn,vn,pn)=>vn in Fn?et(Fn,vn,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Fn[vn]=pn,ze=(Fn,vn)=>{for(var pn in vn||(vn={}))Ae.call(vn,pn)&&Ie(Fn,pn,vn[pn]);if(Ce)for(var pn of Ce(vn))Te.call(vn,pn)&&Ie(Fn,pn,vn[pn]);return Fn},Ye=(Fn,vn)=>ue(Fn,ce(vn));let lt=[{title:"\u7C97\u4F53",icon:"md-iconfont icon-bold",actionName:"bold"},{title:"\u659C\u4F53",icon:"md-iconfont icon-italic",actionName:"italic"},"|",{title:"\u65E0\u5E8F\u5217\u8868",icon:"md-iconfont icon-unorder-list",actionName:"list-ul"},{title:"\u6709\u5E8F\u5217\u8868",icon:"md-iconfont icon-order-list",actionName:"list-ol"},"|",{title:"\u884C\u5185\u4EE3\u7801",icon:"md-iconfont icon-code",actionName:"code"},{title:"\u4EE3\u7801\u5757\uFF08\u591A\u8BED\u8A00\u98CE\u683C\uFF09",icon:"md-iconfont icon-file-code",actionName:"code-block"},{title:"\u94FE\u63A5",icon:"md-iconfont icon-link",actionName:"link"},"|",{title:"\u884C\u5185\u516C\u5F0F",icon:"md-iconfont icon-sum",actionName:"inline-latex"},{title:"\u6570\u5B66\u56FE\u50CF",icon:"iconfont icon-shuxuetuxiang2",actionName:"maths-latex"},{title:"\u591A\u884C\u516C\u5F0F",icon:"iconfont icon-jisuan1",actionName:"latex"},"|",{title:"\u6DFB\u52A0\u56FE\u7247",icon:"md-iconfont icon-picture",actionName:"upload-image"},{title:"\u63D2\u5165\u753B\u56FE",icon:"iconfont icon-sheji",actionName:"draw-image"},{title:"\u63D2\u5165\u6D41\u7A0B\u56FE",icon:"iconfont icon-liucheng",actionName:"add-flowchart"},{title:"\u8868\u683C",icon:"md-iconfont icon-table",actionName:"add-table"},"|",{title:"\u6362\u884C",icon:"md-iconfont icon-minus",actionName:"line-break"},{title:"\u6E05\u7A7A",icon:"md-iconfont icon-eraser",actionName:"eraser"}];function Bt({onActionCallback:Fn,title:vn,icon:pn,actionName:Ur,className:Ho="",children:bo}){function ji(){Fn(Ur)}return on.createElement("a",{title:vn,className:Ho,onClick:ji},on.createElement("i",{className:`${pn}`}),bo)}var kt=({watch:Fn,showNullButton:vn,showNullProgramButton:pn,onActionCallback:Ur,fullScreen:Ho,insertTemp:bo,hidetoolBar:ji,extraUse:co})=>{const Oa=[...lt,{title:`${Fn?"\u5173\u95ED\u5B9E\u65F6\u9884\u89C8":"\u5F00\u542F\u5B9E\u65F6\u9884\u89C8"}`,icon:`${Fn?"md-iconfont icon-eye-slash":"md-iconfont icon-eye"}`,actionName:"trigger-watch"}];return on.createElement("ul",{className:"markdown-toolbar-container"},!ji&&Oa.map((aa,pa)=>on.createElement("li",{key:pa},aa.actionName?on.createElement(Bt,Ye(ze({},aa),{onActionCallback:Ur})):on.createElement("span",{className:"v-line"}))),vn?on.createElement("li",null,on.createElement(Bt,{icon:"md-iconfont icon-edit insert-blank",className:"btn-null",title:"\u589E\u52A0\u586B\u7A7A",actionName:"add-null-ch",onActionCallback:Ur},on.createElement("span",{className:"fill-tip"},"\u70B9\u51FB\u63D2\u5165\b\u586B\u7A7A\u9879"))):null,pn?on.createElement(on.Fragment,null,on.createElement("li",null,on.createElement(Bt,{icon:"md-iconfont icon-edit insert-blank",className:"btn-null",title:"\u589E\u52A0\u586B\u7A7A",actionName:"add-signal",onActionCallback:Ur},on.createElement("span",{className:"fill-tip"},"+\u5355\u884C\u586B\u7A7A\u9879"))),on.createElement("li",null,on.createElement(Bt,{icon:"md-iconfont icon-uniE900 insert-blank",className:"btn-null",title:"\u589E\u52A0\u586B\u7A7A",actionName:"add-multiple",onActionCallback:Ur},on.createElement("span",{className:"fill-tip"},"+\u591A\u884C\u586B\u7A7A\u9879")))):null,bo&&on.createElement("li",null,on.createElement(Bt,{icon:"md-iconfont icon-edit",className:"btn-null",title:"\u63D2\u5165\u6A21\u677F",actionName:`inster-template-${bo}`,onActionCallback:Ur},on.createElement("span",{className:"fill-tip"},"\u63D2\u5165\u6A21\u677F"))),co&&on.createElement("li",null,co),on.createElement("li",{className:"btn-full-screen"},on.createElement(Bt,{icon:`${Ho?"md-iconfont icon-shrink":"md-iconfont icon-enlarge"}`,title:Ho?"\u5173\u95ED\u5168\u5C4F":"\u5F00\u542F\u5168\u5C4F",actionName:"trigger-full-screen",onActionCallback:Ur})))},xt=je(91558),Et=je(28284),$t=je(37568),Zt=je(99571),Yn=Object.defineProperty,gn=Object.defineProperties,Jn=Object.getOwnPropertyDescriptors,ci=Object.getOwnPropertySymbols,Xn=Object.prototype.hasOwnProperty,In=Object.prototype.propertyIsEnumerable,hi=(Fn,vn,pn)=>vn in Fn?Yn(Fn,vn,{enumerable:!0,configurable:!0,writable:!0,value:pn}):Fn[vn]=pn,Ht=(Fn,vn)=>{for(var pn in vn||(vn={}))Xn.call(vn,pn)&&hi(Fn,pn,vn[pn]);if(ci)for(var pn of ci(vn))In.call(vn,pn)&&hi(Fn,pn,vn[pn]);return Fn},At=(Fn,vn)=>gn(Fn,Jn(vn));const Hn={labelCol:{span:4},wrapperCol:{span:20}};var _i=({callback:Fn,onCancel:vn})=>{function pn(Ur){Fn(Ur)}return Me.createElement(Et.default,At(Ht({},Hn),{initialValues:{link:"http://",title:""},className:"link-panel",onFinish:pn,style:{width:500}}),Me.createElement(Et.default.Item,{label:"\u94FE\u63A5\u5730\u5740",name:"link",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u94FE\u63A5\u5730\u5740"}]},Me.createElement($t.default,null)),Me.createElement(Et.default.Item,{label:"\u94FE\u63A5\u6807\u9898",name:"title",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u94FE\u63A5\u6807\u9898"}]},Me.createElement($t.default,null)),Me.createElement("div",{className:"flex-container flex-end"},Me.createElement(Zt.ZP,{type:"primary",htmlType:"submit",style:{marginRight:10}},"\u786E\u5B9A"),Me.createElement(Zt.ZP,{type:"ghost",onClick:vn},"\u53D6\u6D88")))},dr=je(69720),En=je(17077),Mn=je(62957),Ln=je(77019),Mi=je(9507),Rt=je(59301),ni=({callback:Fn,onCancel:vn})=>{const pn=document.createElement("canvas"),Ur=pn.getContext("2d");pn.width=1e3,pn.height=800,Ur.fillStyle="#ffffff",Ur.fillRect(0,0,pn.width,pn.height);const Ho=pn.toDataURL("image/png");return Rt.createElement(Mn.default,{open:!0,width:"100vw",style:{height:"100vh",top:0},footer:null,title:null,closable:!1},Rt.createElement(Ln.Z,{style:{height:"100vh"}},Rt.createElement(Mi.Z,{fullWidth:!0,noAssociationId:!0,showFullTools:!0,data:{src:Ho,visible:!0,title:String(Date.now())},onOk:bo=>{Fn({src:bo.url})},onClose:vn})))},en=je(12378);function Ti(){go.CommandHandler.call(this),this._arrowKeyBehavior="move",this._pasteOffset=new go.Point(10,10),this._lastPasteOffset=new go.Point(0,0)}go.Diagram.inherit(Ti,go.CommandHandler),Ti.prototype.canAlignSelection=function(){var Fn=this.diagram;return!(Fn===null||Fn.isReadOnly||Fn.isModelReadOnly||Fn.selection.count<2)},Ti.prototype.alignLeft=function(){var Fn=this.diagram;Fn.startTransaction("aligning left");var vn=1/0;Fn.selection.each(function(pn){pn instanceof go.Link||(vn=Math.min(pn.position.x,vn))}),Fn.selection.each(function(pn){pn instanceof go.Link||pn.move(new go.Point(vn,pn.position.y))}),Fn.commitTransaction("aligning left")},Ti.prototype.alignRight=function(){var Fn=this.diagram;Fn.startTransaction("aligning right");var vn=-1/0;Fn.selection.each(function(pn){if(!(pn instanceof go.Link)){var Ur=pn.actualBounds.x+pn.actualBounds.width;vn=Math.max(Ur,vn)}}),Fn.selection.each(function(pn){pn instanceof go.Link||pn.move(new go.Point(vn-pn.actualBounds.width,pn.position.y))}),Fn.commitTransaction("aligning right")},Ti.prototype.alignTop=function(){var Fn=this.diagram;Fn.startTransaction("alignTop");var vn=1/0;Fn.selection.each(function(pn){pn instanceof go.Link||(vn=Math.min(pn.position.y,vn))}),Fn.selection.each(function(pn){pn instanceof go.Link||pn.move(new go.Point(pn.position.x,vn))}),Fn.commitTransaction("alignTop")},Ti.prototype.alignBottom=function(){var Fn=this.diagram;Fn.startTransaction("aligning bottom");var vn=-1/0;Fn.selection.each(function(pn){if(!(pn instanceof go.Link)){var Ur=pn.actualBounds.y+pn.actualBounds.height;vn=Math.max(Ur,vn)}}),Fn.selection.each(function(pn){pn instanceof go.Link||pn.move(new go.Point(pn.actualBounds.x,vn-pn.actualBounds.height))}),Fn.commitTransaction("aligning bottom")},Ti.prototype.alignCenterX=function(){var Fn=this.diagram,vn=Fn.selection.first();if(vn){Fn.startTransaction("aligning Center X");var pn=vn.actualBounds.x+vn.actualBounds.width/2;Fn.selection.each(function(Ur){Ur instanceof go.Link||Ur.move(new go.Point(pn-Ur.actualBounds.width/2,Ur.actualBounds.y))}),Fn.commitTransaction("aligning Center X")}},Ti.prototype.alignCenterY=function(){var Fn=this.diagram,vn=Fn.selection.first();if(vn){Fn.startTransaction("aligning Center Y");var pn=vn.actualBounds.y+vn.actualBounds.height/2;Fn.selection.each(function(Ur){Ur instanceof go.Link||Ur.move(new go.Point(Ur.actualBounds.x,pn-Ur.actualBounds.height/2))}),Fn.commitTransaction("aligning Center Y")}},Ti.prototype.alignColumn=function(Fn){var vn=this.diagram;vn.startTransaction("align Column"),Fn===void 0&&(Fn=0),Fn=parseFloat(Fn);var pn=new Array;vn.selection.each(function(co){co instanceof go.Link||pn.push(co)});for(var Ur=0;Ur<pn.length-1;Ur++){var Ho=pn[Ur],bo=Ho.actualBounds.y+Ho.actualBounds.height+Fn,ji=pn[Ur+1];ji.move(new go.Point(Ho.actualBounds.x,bo))}vn.commitTransaction("align Column")},Ti.prototype.alignRow=function(Fn){Fn===void 0&&(Fn=0),Fn=parseFloat(Fn);var vn=this.diagram;vn.startTransaction("align Row");var pn=new Array;vn.selection.each(function(co){co instanceof go.Link||pn.push(co)});for(var Ur=0;Ur<pn.length-1;Ur++){var Ho=pn[Ur],bo=Ho.actualBounds.x+Ho.actualBounds.width+Fn,ji=pn[Ur+1];ji.move(new go.Point(bo,Ho.actualBounds.y))}vn.commitTransaction("align Row")},Ti.prototype.canRotate=function(Fn){var vn=this.diagram;return!(vn===null||vn.isReadOnly||vn.isModelReadOnly||vn.selection.count<1)},Ti.prototype.rotate=function(Fn){Fn===void 0&&(Fn=90);var vn=this.diagram;vn.startTransaction("rotate "+Fn.toString());var vn=this.diagram;vn.selection.each(function(pn){pn instanceof go.Link||pn instanceof go.Group||(pn.angle+=Fn)}),vn.commitTransaction("rotate "+Fn.toString())},Ti.prototype.pullToFront=function(){var Fn=this.diagram;Fn.startTransaction("pullToFront");var vn=new go.Map;Fn.selection.each(function(pn){vn.set(pn.layer,0)}),vn.iteratorKeys.each(function(pn){var Ur=0;pn.parts.each(function(Ho){if(!Ho.isSelected){var bo=Ho.zOrder;isNaN(bo)?Ho.zOrder=0:Ur=Math.max(Ur,bo)}}),vn.set(pn,Ur)}),Fn.selection.each(function(pn){Ti._assignZOrder(pn,vn.get(pn.layer)+1)}),Fn.commitTransaction("pullToFront")},Ti.prototype.pushToBack=function(){var Fn=this.diagram;Fn.startTransaction("pushToBack");var vn=new go.Map;Fn.selection.each(function(pn){vn.set(pn.layer,0)}),vn.iteratorKeys.each(function(pn){var Ur=0;pn.parts.each(function(Ho){if(!Ho.isSelected){var bo=Ho.zOrder;isNaN(bo)?Ho.zOrder=0:Ur=Math.min(Ur,bo)}}),vn.set(pn,Ur)}),Fn.selection.each(function(pn){Ti._assignZOrder(pn,vn.get(pn.layer)-1-Ti._findGroupDepth(pn))}),Fn.commitTransaction("pushToBack")},Ti._assignZOrder=function(Fn,vn,pn){pn===void 0&&(pn=Fn),Fn.layer===pn.layer&&(Fn.zOrder=vn),Fn instanceof go.Group&&Fn.memberParts.each(function(Ur){Ti._assignZOrder(Ur,vn+1,pn)})},Ti._findGroupDepth=function(Fn){if(Fn instanceof go.Group){var vn=0;return Fn.memberParts.each(function(pn){vn=Math.max(vn,Ti._findGroupDepth(pn))}),vn+1}else return 0},Ti.prototype.doKeyDown=function(){var Fn=this.diagram;if(Fn!==null){var vn=Fn.lastInput;if(vn.key==="Up"||vn.key==="Down"||vn.key==="Left"||vn.key==="Right"){var pn=this.arrowKeyBehavior;if(pn==="none")return;if(pn==="select"){this._arrowKeySelect();return}else if(pn==="move"){this._arrowKeyMove();return}else if(pn==="tree"){this._arrowKeyTree();return}}go.CommandHandler.prototype.doKeyDown.call(this)}},Ti.prototype._getAllParts=function(){var Fn=new Array;return this.diagram.nodes.each(function(vn){Fn.push(vn)}),this.diagram.parts.each(function(vn){Fn.push(vn)}),Fn},Ti.prototype._arrowKeyMove=function(){var Fn=this.diagram,vn=Fn.lastInput,pn=0,Ur=0;if(vn.control||vn.meta)pn=1,Ur=1;else if(Fn.grid!==null){var Ho=Fn.grid.gridCellSize;Ur=Ho.width,pn=Ho.height}Fn.startTransaction("arrowKeyMove"),Fn.selection.each(function(bo){vn.key==="Up"?bo.move(new go.Point(bo.actualBounds.x,bo.actualBounds.y-pn)):vn.key==="Down"?bo.move(new go.Point(bo.actualBounds.x,bo.actualBounds.y+pn)):vn.key==="Left"?bo.move(new go.Point(bo.actualBounds.x-Ur,bo.actualBounds.y)):vn.key==="Right"&&bo.move(new go.Point(bo.actualBounds.x+Ur,bo.actualBounds.y))}),Fn.commitTransaction("arrowKeyMove")},Ti.prototype._arrowKeySelect=function(){var Fn=this.diagram,vn=Fn.lastInput,pn=null;vn.key==="Up"?pn=this._findNearestPartTowards(270):vn.key==="Down"?pn=this._findNearestPartTowards(90):vn.key==="Left"?pn=this._findNearestPartTowards(180):vn.key==="Right"&&(pn=this._findNearestPartTowards(0)),pn!==null&&(vn.shift?pn.isSelected=!0:vn.control||vn.meta?pn.isSelected=!pn.isSelected:Fn.select(pn))},Ti.prototype._findNearestPartTowards=function(Fn){var vn=this.diagram.selection.first();if(vn===null)return null;for(var pn=vn.actualBounds.center,Ur=this._getAllParts(),Ho=1/0,bo=vn,ji=0;ji<Ur.length;ji++){var co=Ur[ji];if(co!==vn&&co.canSelect()){var Oa=co.actualBounds.center,aa=pn.directionPoint(Oa),pa=this._angleCloseness(aa,Fn);if(pa<=45){var hn=pn.distanceSquaredPoint(Oa);hn*=1+Math.sin(pa*Math.PI/180),hn<Ho&&(Ho=hn,bo=co)}}}return bo},Ti.prototype._angleCloseness=function(Fn,vn){return Math.min(Math.abs(vn-Fn),Math.min(Math.abs(vn+360-Fn),Math.abs(vn-360-Fn)))},Ti.prototype._arrowKeyTree=function(){var Fn=this.diagram,vn=Fn.selection.first();if(vn instanceof go.Node){var pn=Fn.lastInput;if(pn.key==="Right"){if(!vn.isTreeLeaf)if(!vn.isTreeExpanded)Fn.commandHandler.canExpandTree(vn)&&Fn.commandHandler.expandTree(vn);else{var Ur=this._sortTreeChildrenByY(vn).first();Ur!==null&&Fn.select(Ur)}}else if(pn.key==="Left")if(!vn.isTreeLeaf&&vn.isTreeExpanded)Fn.commandHandler.canCollapseTree(vn)&&Fn.commandHandler.collapseTree(vn);else{var Ho=vn.findTreeParentNode();Ho!==null&&Fn.select(Ho)}else if(pn.key==="Up"){var Ho=vn.findTreeParentNode();if(Ho!==null){var bo=this._sortTreeChildrenByY(Ho),ji=bo.indexOf(vn);if(ji>0){for(var co=bo.elt(ji-1);co!==null&&co.isTreeExpanded&&!co.isTreeLeaf;){var Oa=this._sortTreeChildrenByY(co);co=Oa.last()}co!==null&&Fn.select(co)}else Fn.select(Ho)}}else if(pn.key==="Down")if(vn.isTreeExpanded&&!vn.isTreeLeaf){var Ur=this._sortTreeChildrenByY(vn).first();Ur!==null&&Fn.select(Ur)}else for(;vn!==null;){var Ho=vn.findTreeParentNode();if(Ho===null)break;var bo=this._sortTreeChildrenByY(Ho),ji=bo.indexOf(vn);if(ji<bo.length-1){Fn.select(bo.elt(ji+1));break}else vn=Ho}var aa=Fn.selection.first();aa!==null&&Fn.scrollToRect(aa.actualBounds)}},Ti.prototype._sortTreeChildrenByY=function(Fn){var vn=new go.List().addAll(Fn.findTreeChildrenNodes());return vn.sort(function(pn,Ur){var Ho=pn.location,bo=Ur.location;return Ho.y<bo.y?-1:Ho.y>bo.y?1:Ho.x<bo.x?-1:Ho.x>bo.x?1:0}),vn},Ti.prototype.copyToClipboard=function(Fn){go.CommandHandler.prototype.copyToClipboard.call(this,Fn),this._lastPasteOffset.set(this.pasteOffset)},Ti.prototype.pasteFromClipboard=function(){var Fn=go.CommandHandler.prototype.pasteFromClipboard.call(this);return this.diagram.moveParts(Fn,this._lastPasteOffset),this._lastPasteOffset.add(this.pasteOffset),Fn},Object.defineProperty(Ti.prototype,"arrowKeyBehavior",{get:function(){return this._arrowKeyBehavior},set:function(Fn){if(Fn!=="move"&&Fn!=="select"&&Fn!=="scroll"&&Fn!=="tree"&&Fn!=="none")throw new Error('DrawCommandHandler.arrowKeyBehavior must be either "move", "select", "scroll", "tree", or "none", not: '+Fn);this._arrowKeyBehavior=Fn}}),Object.defineProperty(Ti.prototype,"pasteOffset",{get:function(){return this._pasteOffset},set:function(Fn){if(!(Fn instanceof go.Point))throw new Error("DrawCommandHandler.pasteOffset must be a Point, not: "+Fn);this._pasteOffset.set(Fn)}});var Lr=Ti,Tt=je(63720),Ze=je(5269),Ge=je(38986),rt={myPaletteDiv:"myPaletteDiv___Xjz2I",flowChartWrp:"flowChartWrp____f45r",maxH60:"maxH60___Pd4Re"},Ft=je(48790),qe=je(59301),mt=(Fn,vn,pn)=>new Promise((Ur,Ho)=>{var bo=Oa=>{try{co(pn.next(Oa))}catch(aa){Ho(aa)}},ji=Oa=>{try{co(pn.throw(Oa))}catch(aa){Ho(aa)}},co=Oa=>Oa.done?Ur(Oa.value):Promise.resolve(Oa.value).then(bo,ji);co((pn=pn.apply(Fn,vn)).next())});function An({onCancel:Fn,callback:vn}){let pn=(0,Me.useRef)(),Ur=(0,Me.useRef)(),Ho=(0,Me.useRef)(),bo=(0,Me.useRef)(!1);const ji=(0,Me.useRef)(!1),[co,Oa]=(0,Me.useState)(0);function aa(){const hn=en.bx.make,Ar={red:"#ff3333",blue:"#3358ff",green:"#25ad23",magenta:"#d533ff",purple:"#7d33ff",orange:"#ff6233",brown:"#8e571e",white:"#ffffff",black:"#000000",beige:"#fffcd5",extralightblue:"#d5ebff",extralightred:"#f2dfe0",lightblue:"#a5d2fa",lightgray:"#cccccc",lightgreen:"#b3e6b3",lightred:"#fcbbbd"};pn.current=new en.S0(Ur.current,{padding:20,grid:hn(en.s_,"Grid",hn(en.bn,"LineH",{stroke:"lightgray",strokeWidth:.5}),hn(en.bn,"LineV",{stroke:"lightgray",strokeWidth:.5})),"draggingTool.isGridSnapEnabled":!0,handlesDragDropForTopLevelParts:!0,mouseDrop:Lo=>{var zs=Lo.diagram.commandHandler.addTopLevelParts(Lo.diagram.selection,!0);zs||Lo.diagram.currentTool.doCancel()},commandHandler:hn(Lr),"clickCreatingTool.archetypeNodeData":{text:"\u672A\u547D\u540D",fill:null,stroke:null,borderColor:"rgba(0,0,0,0)"},PartCreated:Lo=>{var zs=Lo.subject;zs.location=zs.location.copy().snapToGridPoint(Lo.diagram.grid.gridOrigin,Lo.diagram.grid.gridCellSize),setTimeout(()=>{Lo.diagram.commandHandler.editTextBlock()},20)},"commandHandler.archetypeGroupData":{isGroup:!0,text:"NEW GROUP"},SelectionGrouped:Lo=>{var zs=Lo.subject;setTimeout(()=>{Lo.diagram.commandHandler.editTextBlock()})},LinkRelinked:Lo=>{var zs=Lo.parameter.part;zs.invalidateConnectedLinks();var Fa=Lo.subject;Lo.diagram.toolManager.linkingTool.isForwards?Fa.toNode.invalidateConnectedLinks():Fa.fromNode.invalidateConnectedLinks()},"undoManager.isEnabled":!0}),pn.current.nodeTemplate=hn(en.NB,"Auto",{locationSpot:en.z6.Center,locationObjectName:"SHAPE",desiredSize:new en.$u(120,60),minSize:new en.$u(40,40),resizable:!0,resizeCellSize:new en.$u(10,10),rotatable:!0},new en.KX("location","loc",en.E9.parse).makeTwoWay(en.E9.stringify),new en.KX("desiredSize","size",en.$u.parse).makeTwoWay(en.$u.stringify),hn(en.bn,{name:"SHAPE",fill:Ar.white,cursor:"pointer",portId:"",fromLinkable:!0,toLinkable:!0,fromLinkableDuplicates:!0,toLinkableDuplicates:!0,fromSpot:en.z6.AllSides,toSpot:en.z6.AllSides},new en.KX("figure"),new en.KX("fill"),new en.KX("stroke","borderColor"),new en.KX("strokeWidth","thickness"),new en.KX("strokeDashArray","dash")),hn(en.bn,{width:100,height:20,strokeWidth:0,fill:"transparent"}),hn(en.al,{margin:1,textAlign:"center",overflow:en.al.OverflowEllipsis,editable:!0},new en.KX("text").makeTwoWay(),new en.KX("stroke","color"))),pn.current.nodeTemplate.toolTip=hn("ToolTip",hn(en.s_,"Vertical",{maxSize:new en.$u(200,NaN)},hn(en.al,{font:"bold 10pt sans-serif",textAlign:"center"},new en.KX("text")),hn(en.al,{font:"10pt sans-serif",textAlign:"center"},new en.KX("text","details"))));function Xo(Lo,zs){var Fa=(Js,_s)=>{Js.handled=!0,Js.diagram.model.commit(wl=>{var Sl=_s.part.adornedPart,rl=new en.E9().setRectSpot(Sl.actualBounds,Lo);rl.subtract(Sl.location),rl.scale(2,2),rl.x+=Math.sign(rl.x)*130,rl.y+=Math.sign(rl.y)*130,rl.add(Sl.location),rl.snapToGridPoint(Js.diagram.grid.gridOrigin,Js.diagram.grid.gridCellSize);var Il=wl.copyNodeData(Sl.data);wl.setGroupKeyForNodeData(Il,wl.getGroupKeyForNodeData(Sl.data)),wl.addNodeData(Il);var Zi={from:Sl.key,to:wl.getKeyForNodeData(Il)};wl.addLinkData(Zi);var hl=Js.diagram.findNodeForData(Il);hl.location=rl,Js.diagram.select(hl),setTimeout(()=>{Js.diagram.commandHandler.editTextBlock()},20)})};return hn(en.bn,{figure:zs,alignment:Lo,alignmentFocus:Lo.opposite(),width:Lo.equals(en.z6.Top)||Lo.equals(en.z6.Bottom)?25:18,height:Lo.equals(en.z6.Top)||Lo.equals(en.z6.Bottom)?18:25,fill:"orange",stroke:Ar.white,strokeWidth:4,mouseEnter:(Js,_s)=>_s.fill="dodgerblue",mouseLeave:(Js,_s)=>_s.fill="orange",isActionable:!0,click:Fa,contextClick:Fa})}function al(Lo){return hn(en.bn,{fill:"orange",stroke:"rgba(0, 0, 0, 0)",strokeWidth:15,background:"transparent",geometryString:"F1 M0 0 b 0 360 -4 0 4 z M10 0 b 0 360 -4 0 4 z M20 0 b 0 360 -4 0 4",isActionable:!0,cursor:"context-menu",mouseEnter:(zs,Fa)=>Fa.fill="dodgerblue",mouseLeave:(zs,Fa)=>Fa.fill="orange",click:(zs,Fa)=>{zs.diagram.commandHandler.showContextMenu(Fa.part.adornedPart)}},Lo||{})}pn.current.nodeTemplate.selectionAdornmentTemplate=hn(en.uz,"Spot",hn(en.Vm,{padding:10}),Xo(en.z6.Top,"TriangleUp"),Xo(en.z6.Left,"TriangleLeft"),Xo(en.z6.Right,"TriangleRight"),Xo(en.z6.Bottom,"TriangleDown"),al({alignment:new en.z6(.75,0)}));function Ji(Lo,zs){return(Fa,Js)=>{Fa.handled=!0,Fa.diagram.model.commit(_s=>{_s.set(Js.part.adornedPart.data,Lo,zs)})}}function Fo(Lo,zs){return zs||(zs="color"),hn(en.bn,{width:16,height:16,stroke:"lightgray",fill:Lo,margin:1,background:"transparent",mouseEnter:(Fa,Js)=>Js.stroke="dodgerblue",mouseLeave:(Fa,Js)=>Js.stroke="lightgray",click:Ji(zs,Lo),contextClick:Ji(zs,Lo)})}function wa(){return[hn("ContextMenuButton",hn(en.s_,"Horizontal",Fo(Ar.white,"fill"),Fo(Ar.beige,"fill"),Fo(Ar.extralightblue,"fill"),Fo(Ar.extralightred,"fill"))),hn("ContextMenuButton",hn(en.s_,"Horizontal",Fo(Ar.lightgray,"fill"),Fo(Ar.lightgreen,"fill"),Fo(Ar.lightblue,"fill"),Fo(Ar.lightred,"fill")))]}function xl(){return[hn("ContextMenuButton",hn(en.s_,"Horizontal",Fo(Ar.black),Fo(Ar.green),Fo(Ar.blue),Fo(Ar.red))),hn("ContextMenuButton",hn(en.s_,"Horizontal",Fo(Ar.white),Fo(Ar.magenta),Fo(Ar.purple),Fo(Ar.orange)))]}function Ll(Lo,zs){return zs||(zs="thickness"),hn(en.bn,"LineH",{width:16,height:16,strokeWidth:Lo,margin:1,background:"transparent",mouseEnter:(Fa,Js)=>Js.background="dodgerblue",mouseLeave:(Fa,Js)=>Js.background="transparent",click:Ji(zs,Lo),contextClick:Ji(zs,Lo)})}function ys(Lo,zs){return zs||(zs="dash"),hn(en.bn,"LineH",{width:24,height:16,strokeWidth:2,strokeDashArray:Lo,margin:1,background:"transparent",mouseEnter:(Fa,Js)=>Js.background="dodgerblue",mouseLeave:(Fa,Js)=>Js.background="transparent",click:Ji(zs,Lo),contextClick:Ji(zs,Lo)})}function As(){return[hn("ContextMenuButton",hn(en.s_,"Horizontal",Ll(1),Ll(2),Ll(3),Ll(4))),hn("ContextMenuButton",hn(en.s_,"Horizontal",ys(null),ys([2,4]),ys([4,4])))]}function Jo(Lo,zs){return zs||(zs="figure"),hn(en.bn,{width:32,height:32,scale:.5,fill:"lightgray",figure:Lo,margin:1,background:"transparent",mouseEnter:(Fa,Js)=>Js.fill="dodgerblue",mouseLeave:(Fa,Js)=>Js.fill="lightgray",click:Ji(zs,Lo),contextClick:Ji(zs,Lo)})}pn.current.nodeTemplate.contextMenu=hn("ContextMenu",hn("ContextMenuButton",hn(en.s_,"Horizontal",Jo("Rectangle"),Jo("RoundedRectangle"),Jo("Ellipse"),Jo("Diamond"))),hn("ContextMenuButton",hn(en.s_,"Horizontal",Jo("Parallelogram2"),Jo("ManualOperation"),Jo("Procedure"),Jo("Cylinder1"))),hn("ContextMenuButton",hn(en.s_,"Horizontal",Jo("Terminator"),Jo("CreateRequest"),Jo("Document"),Jo("TriangleDown"))),wa(),xl(),As()),pn.current.groupTemplate=hn(en.ZA,"Spot",{layerName:"Background",ungroupable:!0,locationSpot:en.z6.Center,selectionObjectName:"BODY",computesBoundsAfterDrag:!0,handlesDragDropForMembers:!0,mouseDrop:(Lo,zs)=>{var Fa=zs.addMembers(zs.diagram.selection,!0);Fa||zs.diagram.currentTool.doCancel()},avoidable:!1},new en.KX("location","loc",en.E9.parse).makeTwoWay(en.E9.stringify),hn(en.s_,"Auto",{name:"BODY"},hn(en.bn,{parameter1:10,fill:Ar.white,strokeWidth:2,cursor:"pointer",fromLinkable:!0,toLinkable:!0,fromLinkableDuplicates:!0,toLinkableDuplicates:!0,fromSpot:en.z6.AllSides,toSpot:en.z6.AllSides},new en.KX("fill"),new en.KX("stroke","color"),new en.KX("strokeWidth","thickness"),new en.KX("strokeDashArray","dash")),hn(en.Vm,{background:"transparent",margin:20})),hn(en.al,{alignment:en.z6.Top,alignmentFocus:en.z6.Bottom,font:"bold 12pt sans-serif",editable:!0},new en.KX("text"),new en.KX("stroke","color"))),pn.current.groupTemplate.selectionAdornmentTemplate=hn(en.uz,"Spot",hn(en.s_,"Auto",hn(en.bn,{fill:null,stroke:"dodgerblue",strokeWidth:3}),hn(en.Vm,{margin:1.5})),al({alignment:en.z6.TopRight,alignmentFocus:en.z6.BottomRight})),pn.current.groupTemplate.contextMenu=hn("ContextMenu",wa(),xl(),As()),pn.current.linkTemplate=hn(en.rU,{layerName:"Foreground",routing:en.rU.AvoidsNodes,corner:10,fromShortLength:10,toShortLength:15,relinkableFrom:!0,relinkableTo:!0,reshapable:!0,resegmentable:!0},new en.KX("fromSpot","fromSpot",en.z6.parse),new en.KX("toSpot","toSpot",en.z6.parse),new en.KX("fromShortLength","dir",Lo=>Lo>=1?10:0),new en.KX("toShortLength","dir",Lo=>Lo>=1?10:0),new en.KX("points").makeTwoWay(),hn(en.bn,{strokeWidth:2},new en.KX("stroke","color"),new en.KX("strokeWidth","thickness"),new en.KX("strokeDashArray","dash")),hn(en.bn,{segmentIndex:0,segmentOffset:new en.E9(15,0),segmentOrientation:en.rU.OrientAlong,alignmentFocus:en.z6.Right,figure:"circle",width:10,strokeWidth:0},new en.KX("fill","color"),new en.KX("visible","dir",Lo=>Lo===1)),hn(en.bn,{segmentIndex:-1,segmentOffset:new en.E9(-10,6),segmentOrientation:en.rU.OrientPlus90,alignmentFocus:en.z6.Right,figure:"triangle",width:12,height:12,strokeWidth:0},new en.KX("fill","color"),new en.KX("visible","dir",Lo=>Lo>=1),new en.KX("width","thickness",Lo=>7+3*Lo),new en.KX("height","thickness",Lo=>7+3*Lo),new en.KX("segmentOffset","thickness",Lo=>new en.E9(-15,4+1.5*Lo))),hn(en.bn,{segmentIndex:0,segmentOffset:new en.E9(15,-6),segmentOrientation:en.rU.OrientMinus90,alignmentFocus:en.z6.Right,figure:"triangle",width:12,height:12,strokeWidth:0},new en.KX("fill","color"),new en.KX("visible","dir",Lo=>Lo===2),new en.KX("width","thickness",Lo=>7+3*Lo),new en.KX("height","thickness",Lo=>7+3*Lo),new en.KX("segmentOffset","thickness",Lo=>new en.E9(-15,4+1.5*Lo))),hn(en.al,{alignmentFocus:new en.z6(0,1,-4,0),editable:!0},new en.KX("text").makeTwoWay(),new en.KX("stroke","color"))),pn.current.linkTemplate.selectionAdornmentTemplate=hn(en.uz,hn(en.bn,{isPanelMain:!0,stroke:"transparent",strokeWidth:6,pathPattern:da(2)},new en.KX("pathPattern","thickness",da)),al({alignmentFocus:new en.z6(0,0,-6,-4)}));function da(Lo){return hn(en.bn,{stroke:"dodgerblue",strokeWidth:2,strokeCap:"square",geometryString:"M0 0 M4 2 H3 M4 "+(Lo+4).toString()+" H3"})}function us(Lo){var zs="M0 0 M8 16 M0 8 L16 8 M12 11 L16 8 L12 5";return Lo===0?zs="M0 0 M16 16 M0 8 L16 8":Lo===2&&(zs="M0 0 M16 16 M0 8 L16 8 M12 11 L16 8 L12 5 M4 11 L0 8 L4 5"),hn(en.bn,{geometryString:zs,margin:2,background:"transparent",mouseEnter:(Fa,Js)=>Js.background="dodgerblue",mouseLeave:(Fa,Js)=>Js.background="transparent",click:Ji("dir",Lo),contextClick:Ji("dir",Lo)})}function Sa(Lo){var zs=(Fa,Js)=>{Fa.handled=!0,Fa.diagram.model.commit(_s=>{var wl=Js.part.adornedPart;_s.set(wl.data,Lo?"toSpot":"fromSpot",en.z6.stringify(en.z6.AllSides)),(Lo?wl.toNode:wl.fromNode).invalidateConnectedLinks()})};return hn(en.bn,{width:12,height:12,fill:"transparent",mouseEnter:(Fa,Js)=>Js.background="dodgerblue",mouseLeave:(Fa,Js)=>Js.background="transparent",click:zs,contextClick:zs})}function zi(Lo,zs){var Fa=0,Js=en.z6.RightSide;Lo.equals(en.z6.Top)?(Fa=270,Js=en.z6.TopSide):Lo.equals(en.z6.Left)?(Fa=180,Js=en.z6.LeftSide):Lo.equals(en.z6.Bottom)&&(Fa=90,Js=en.z6.BottomSide),zs||(Fa-=180);var _s=(wl,Sl)=>{wl.handled=!0,wl.diagram.model.commit(rl=>{var Il=Sl.part.adornedPart;rl.set(Il.data,zs?"toSpot":"fromSpot",en.z6.stringify(Js)),(zs?Il.toNode:Il.fromNode).invalidateConnectedLinks()})};return hn(en.bn,{alignment:Lo,alignmentFocus:Lo.opposite(),geometryString:"M0 0 M12 12 M12 6 L1 6 L4 4 M1 6 L4 8",angle:Fa,background:"transparent",mouseEnter:(wl,Sl)=>Sl.background="dodgerblue",mouseLeave:(wl,Sl)=>Sl.background="transparent",click:_s,contextClick:_s})}pn.current.linkTemplate.contextMenu=hn("ContextMenu",xl(),As(),hn("ContextMenuButton",hn(en.s_,"Horizontal",us(0),us(1),us(2))),hn("ContextMenuButton",hn(en.s_,"Horizontal",hn(en.s_,"Spot",Sa(!1),zi(en.z6.Top,!1),zi(en.z6.Left,!1),zi(en.z6.Right,!1),zi(en.z6.Bottom,!1)),hn(en.s_,"Spot",{margin:new en.Zt(0,0,0,2)},Sa(!0),zi(en.z6.Top,!0),zi(en.z6.Left,!0),zi(en.z6.Right,!0),zi(en.z6.Bottom,!0)))));const fc=`{ "class": "GraphLinksModel",
|
|
"nodeDataArray": [
|
|
{"text":"Find Problem","key":-9,"loc":"-20 -140","color":"#3358ff","fill":"white","figure":"Procedure","thickness":3},
|
|
{"text":"What do we want?","key":-10,"loc":"-65 -324.305","group":-16,"figure":"Ellipse","fill":"white"},
|
|
{"text":"What do our users want?","key":-11,"loc":"105 -334.305","group":-20,"figure":"Ellipse","fill":"#ffffff","color":"black"},
|
|
{"text":"Meetings","key":-12,"loc":"-65 -444.305","group":-16,"figure":"TriangleDown","fill":"#ffffff"},
|
|
{"text":"Reviews","key":-13,"loc":"105 -454.305","group":-20,"figure":"TriangleDown","fill":"#ffffff","color":"black"},
|
|
{"text":"Can we solve it?","key":-14,"loc":"190 -140","color":"#7d33ff","fill":"#ffffff","figure":"Diamond","size":"140 80","thickness":3},
|
|
{"isGroup":true,"text":"Internal","key":-16,"loc":"-65 -384.305","fill":"#d5ebff","dash":null,"thickness":1,"group":-22},
|
|
{"isGroup":true,"text":"External","key":-20,"loc":"105 -394.305","fill":"#d5ebff","dash":null,"thickness":1,"group":-22},
|
|
{"isGroup":true,"text":"Sources","key":-22,"loc":"20 -400","fill":"#a5d2fa","dash":[4,4],"color":"#3358ff"}
|
|
],
|
|
"linkDataArray": [
|
|
{"from":-12,"to":-10,"points":[-65,-414.305,-65,-404.305,-65,-384.305,-65,-384.305,-65,-364.305,-65,-354.305],"dash":null,"dir":1},
|
|
{"from":-13,"to":-11,"points":[105,-424.305,105,-414.305,105,-394.305,105,-394.305,105,-374.305,105,-364.305],"dash":null,"color":"#000000","dir":1},
|
|
{"from":-10,"to":-9,"points":[-65,-294.305,-65,-284.305,-65,-232.1525,-40,-232.1525,-40,-180,-40,-170],"dir":2,"dash":[4,4]},
|
|
{"from":-11,"to":-9,"points":[105,-304.305,105,-294.305,105,-237.1525,0,-237.1525,0,-180,0,-170],"dash":[4,4],"dir":2},
|
|
{"from":-9,"to":-14,"points":[40,-150,58,-150,80,-150,80,-153.33333333333331,102,-153.33333333333331,120,-153.33333333333331],"dir":1,"color":"#3358ff"},
|
|
{"from":-14,"to":-9,"points":[190,-100,190,-90,-20,-90,-20,-95,-20,-100,-20,-110],"fromSpot":"BottomSide","toSpot":"BottomSide","text":"No","color":"#ff3333","thickness":2,"dir":1},
|
|
{"from":-9,"to":-14,"points":[40,-130,58,-130,80,-130,80,-126.66666666666666,102,-126.66666666666666,120,-126.66666666666666]}
|
|
]}`;var iu=["Rectangle","Square","RoundedRectangle","Border","Ellipse","Circle","TriangleRight","TriangleDown","TriangleLeft","TriangleUp","Triangle","Diamond","LineH","LineV","None","BarH","BarV","MinusLine","PlusLine","XLine","LineRight","LineDown","LineLeft","LineUp"];function Gu(Lo){return console.log("shapeName:",Lo),iu.indexOf(Lo)>=0}var Ni=new en.YI(Ho.current,{maxSelectionCount:1,linkTemplate:hn(en.rU,{locationSpot:en.z6.Center,selectionAdornmentTemplate:hn(en.uz,"Link",{locationSpot:en.z6.Center},hn(en.bn,{isPanelMain:!0,fill:null,stroke:"deepskyblue",strokeWidth:0}),hn(en.bn,{toArrow:"Standard",stroke:null}))},{routing:en.rU.AvoidsNodes,curve:en.rU.JumpOver,corner:5,toShortLength:4},new en.KX("points"),hn(en.bn,{isPanelMain:!0,strokeWidth:2}),hn(en.bn,{toArrow:"Standard",stroke:null})),model:new en.FJ([{text:"\u672A\u547D\u540D",size:"100 100",fill:null,stroke:"#000"},...en.bn.getFigureGenerators().toArray().map(Lo=>({text:"\u672A\u547D\u540D",size:"100 100",figure:Lo.key,fill:"white",stroke:"#666",borderColor:"#000"}))])});return pn.current.addDiagramListener("TextEdited",function(Lo){var zs;const Fa=Lo.subject.part;var Js=(zs=document.activeElement)==null?void 0:zs.value;typeof Js=="string"&&Js.trim()===""&&pn.current.model.commit(function(_s){_s.set(Fa.data,"text","\u672A\u547D\u540D"),pn.current.commandHandler.stopCommand()},"increment")}),Ni.nodeTemplate=hn(en.NB,"Auto",{locationSpot:en.z6.Center},new en.KX("location","location",en.E9.parse).makeTwoWay(en.E9.stringify),hn(en.bn,"Circle",{fill:"white",stroke:"gray",strokeWidth:2,width:20,height:20,portId:"",fromLinkable:!0,toLinkable:!0,fromLinkableDuplicates:!0,toLinkableDuplicates:!0,fromLinkableSelfNode:!0,toLinkableSelfNode:!0},new en.KX("stroke").makeTwoWay(),new en.KX("fill").makeTwoWay(),new en.KX("figure")),hn(en.al,{margin:new en.Zt(5,5,3,5),font:"10pt sans-serif",minSize:new en.$u(16,16),maxSize:new en.$u(10,NaN),textAlign:"center",editable:!0},new en.KX("key").makeTwoWay())),setTimeout(()=>{pn.current.grid=hn(en.s_,"Grid",hn(en.bn,"LineH",{stroke:"lightgray",strokeWidth:.5}),hn(en.bn,"LineV",{stroke:"lightgray",strokeWidth:.5})),pn.current.grid.visible=!0,pn.current.grid.gridCellStroke="darkgray",pn.current.grid.gridCellStrokeWidth=1},300),window.myDiagrams=pn.current,pn.current}const pa=()=>mt(this,null,function*(){var hn,Ar=pn.current.makeImage();const Xo=yield(0,Ge.ZP)("/api/attachments.json",{method:"post",body:{file_type:"base64",original_filename:Date.now(),file:Ar.src,file_data:JSON.stringify({login:(hn=(0,Ft.eY)())==null?void 0:hn.login,data:JSON.parse(pn.current.model.toJson())})}});vn({src:Xo.url})});return(0,Me.useEffect)(()=>(setTimeout(()=>{aa()},500),Oa(co+1),()=>{pn.current=null}),[]),qe.createElement("div",{ref:ji,className:"body-overflow-initial"},qe.createElement(Mn.default,{width:1200,icon:null,footer:null,closable:!0,visible:!!co,destroyOnClose:!0,maskClosable:!1,rootClassName:"zIndex-9999",title:qe.createElement(Ln.Z,null,qe.createElement(Ze.Z,{flex:1},"\u63D2\u5165\u6D41\u7A0B\u56FE"),qe.createElement(Ze.Z,{onClick:()=>{var hn,Ar,Xo=pn.current.selection.first();if(bo.current=!bo.current,document.activeElement&&Xo){let al=(Ar=(hn=document.activeElement)==null?void 0:hn.value)==null?void 0:Ar.trim();typeof al=="string"&&pn.current.model.commit(function(Ji){Ji.set(Xo.data,"text",al||"\u672A\u547D\u540D"),pn.current.commandHandler.stopCommand()},"increment")}Oa(co+1)}},qe.createElement("span",{className:"current c-blue mr30",style:{fontWeight:400}},"\u5C55\u5F00/\u6536\u8D77"))),onCancel:Fn},qe.createElement("div",{style:{width:"100%",height:"80vh",overflow:"hidden",position:"relative",display:bo.current?"none":"block"},className:rt.flowChartWrp},qe.createElement("div",{style:{display:"flex",height:"100%"}},qe.createElement("div",{style:{width:"300px",height:"100%"}},qe.createElement("div",{style:{background:"#fff",position:"relative",zIndex:12,fontSize:16,color:"#3061d0"}},"\u56FE\u5F62\u5E93"),qe.createElement("div",{style:{height:"calc(100% - 50px)"},className:rt.myPaletteDiv,ref:Ho})),qe.createElement("div",{style:{flex:1,position:"relative"}},qe.createElement("div",{ref:Ur,style:{height:"80vh"}}))),qe.createElement("div",{className:"tr"},qe.createElement(Zt.ZP,{size:"large",onClick:pa,style:{position:"absolute",right:0,bottom:0,zIndex:8},type:"primary"},"\u4FDD\u5B58\u5230\u7F16\u8F91\u5668")))))}var Gn=An,fo=je(47889),qn=je(71051);const Kn=fo.ZP.Group,oi={margin:"0 8px"};var Wi=({callback:Fn,onCancel:vn})=>{function pn(Ur){Fn(Ur)}return Me.createElement(Et.default,{className:"add-table-panel",initialValues:{row:3,col:2,align:"default"},onFinish:pn},Me.createElement("div",{className:"flex-container",style:{alignItems:"baseline"}},Me.createElement("span",{style:oi},"\u5355\u5143\u683C\u6570\uFF1A"),Me.createElement("span",{style:oi},"\u884C\u6570"),Me.createElement(Et.default.Item,{name:"row",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u884C\u6570"}]},Me.createElement(qn.Z,null)),Me.createElement("span",{style:oi},"\u5217\u6570"),Me.createElement(Et.default.Item,{name:"col",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5217\u6570"}]},Me.createElement(qn.Z,null))),Me.createElement("div",{className:"flex-container",style:{marginTop:12,alignItems:"baseline"}},Me.createElement("span",{style:oi},"\u5BF9\u9F50\u65B9\u5F0F\uFF1A"),Me.createElement(Et.default.Item,{name:"align"},Me.createElement(Kn,null,Me.createElement(fo.ZP,{value:"default"},Me.createElement("i",{className:"fa fa-align-justify"})),Me.createElement(fo.ZP,{value:"left"},Me.createElement("i",{className:"fa fa-align-left"})),Me.createElement(fo.ZP,{value:"center"},Me.createElement("i",{className:"fa fa-align-center"})),Me.createElement(fo.ZP,{value:"right"},Me.createElement("i",{className:"fa fa-align-right"}))))),Me.createElement("div",{className:"flex-container flex-end"},Me.createElement(Zt.ZP,{type:"primary",htmlType:"submit",style:{marginRight:10}},"\u786E\u5B9A"),Me.createElement(Zt.ZP,{type:"ghost",onClick:vn},"\u53D6\u6D88")))},Nr=je(71411),Uo=je(43001),Vr=je.n(Uo),Rn=(0,Me.forwardRef)(({use3d:Fn,width:vn,height:pn,callback:Ur,showSaveButton:Ho},bo)=>{const ji=(0,Me.useRef)(),co=(0,Me.useRef)(),[Oa,aa]=(0,Me.useState)(!1),pa=(0,Me.useRef)({id:ji,appName:"graphing",width:vn||1e3,height:pn||600,showToolBar:!0,showMenuBar:!0,allowStyleBar:!0,showAlgebraInput:!0,enableLabelDrags:!1,enableShiftDragZoom:!0,showToolBarHelp:!1,errorDialogsActive:!0,showTutorialLink:!0,showLogging:!0,useBrowserForJS:!1});(0,Me.useEffect)(()=>{co.current=new(Vr())(pa.current,!0),window.onload=function(){co.current.inject("applet_container")}},[]);const hn=()=>{var Ar=window.ggbApplet.getPNGBase64(1,!0,72);return Ur&&Ur(Ar),Ar};return(0,Me.useEffect)(()=>{pa.current.appName=Oa?"3D":"graphing",co.current.inject("applet_container")},[Oa]),(0,Me.useEffect)(()=>{aa(Fn)},[Fn]),(0,Me.useImperativeHandle)(bo,()=>({getImgData:hn})),Me.createElement(Me.Fragment,null,Me.createElement("div",{style:{width:"100%",height:"100%"},id:"applet_container",ref:ji}),Me.createElement(Ln.Z,{align:"middle"},Me.createElement(Ze.Z,{flex:1},Me.createElement(Nr.Z,{size:"default",checkedChildren:"\u5173\u95ED3D\u56FE\u50CF",unCheckedChildren:"\u5F00\u542F3D\u56FE\u50CF",checked:Oa,onChange:Ar=>aa(Ar)})),Me.createElement(Ze.Z,null,Me.createElement(Zt.ZP,{size:"large",onClick:hn,style:{zIndex:8,marginTop:10},type:"primary"},"\u4FDD\u5B58\u5230\u7F16\u8F91\u5668"))))}),$n=je(76562),pi=je(6767);const Ai="link",Cr="upload-image",zr="add-flowchart",ao="draw-image",Wr="add-flowchart",Or="code-block",ir="add-table",ss="------------",Us={default:ss,left:`:${ss}`,center:`:${ss}:`,right:`${ss}:`};var as=je(37808);function ls(){}let La=0;const Fs=1e4,ha="\u2581",Al="@\u2581\u2581@",We="@\u2581@",ui=`
|
|
**\u6A21\u677F\u6807\u9898**
|
|
\u6A21\u677F\u6B63\u6587\u5185\u5BB9\uFF0C\u53EF\u8F93\u5165\u6587\u672C\u5185\u5BB9\u548C\u7C98\u8D34\u56FE\u7247\u7B49\u64CD\u4F5C`,Si=["pptm","pptx","ppt","pot","pps","ppa","potx","ppsx","ppam","pptm","potm","ppsm","doc","docx","dot","dotx","docm","dotm","xls","xlsx","csv","xlt","xla","xltx","xlsm","xltm","xlam","xlsb"];function ms(Fn){return/^\d+$/.test(Fn)?`${Fn}px`:Fn}const Xr=navigator.platform.toUpperCase().indexOf("MAC")>=0?"Cmd":"Ctrl",si={[Xr+"-B"]:"bold",[Xr+"-I"]:"italic"},Hi={[Ai]:"\u6DFB\u52A0\u94FE\u63A5",[Or]:"\u6DFB\u52A0\u4EE3\u7801\u5757",[Cr]:"\u6DFB\u52A0\u56FE\u7247",[ao]:"\u6DFB\u52A0\u753B\u56FE",[zr]:"\u63D2\u5165\u6D41\u7A0B\u56FE",[ir]:"\u6DFB\u52A0\u8868\u683C","maths-latex":"\u6570\u5B66\u56FE\u50CF","inline-latex":"LATEX\u516C\u5F0F"};var or=({defaultValue:Fn="",onChange:vn,width:pn="100%",height:Ur=400,miniToolbar:Ho=!1,isFocus:bo=!1,watch:ji,insertTemp:co,mode:Oa="markdown",id:aa="markdown-editor-id",showResizeBar:pa=!1,noStorage:hn=!1,showNullButton:Ar=!1,showNullProgramButton:Xo=!1,hidetoolBar:al=!1,fullScreen:Ji=!1,onBlur:Fo,onCMBeforeChange:wa,onFullScreen:xl,className:Ll="",disablePaste:ys=!1,disabled:As=!1,disabledFill:Jo=!1,placeholder:da="",values:us="",extraUse:Sa})=>{const[zi,fc]=(0,Me.useState)(null),[iu,Gu]=(0,Me.useState)(Fn),[Ni,Lo]=(0,Me.useState)(ji),[zs,Fa]=(0,Me.useState)(Ji),[Js,_s]=(0,Me.useState)(""),[wl,Sl]=(0,Me.useState)(0),[rl,Il]=(0,Me.useState)(Ur),[Zi,hl]=(0,Me.useState)(!1),[Yi,$o]=(0,Me.useState)(0),[dl,Pl]=(0,Me.useState)(0),pc=(0,Me.useRef)(),pu=(0,Me.useRef)(),jl=(0,Me.useRef)(),Vu=(0,Me.useRef)();(0,Me.useEffect)(()=>{const tt=window.scrollY||window.pageYOffset;Gu(us),zi==null||zi.setValue(us),window.scrollTo(0,tt)},[us]),(0,Me.useEffect)(()=>{xl==null||xl(zs)},[zs]),(0,Me.useEffect)(()=>{if(pc.current){let tt=function(Dt,Kt){var sn;if(ys){Kt.preventDefault();return}const Vn=Kt.clipboardData;if(Vn){const Qn=Vn.types.toString(),zn=Vn.items;if(Qn==="Files"||Vn.types.indexOf("Files")>-1){if(Kt.preventDefault(),Oa=="stex")return;try{let Oi=zn[1];((sn=zn[0])==null?void 0:sn.kind)==="file"&&(Oi=zn[0]);const Qi=Oi.getAsFile(),ri=Qi.name.split(".").pop();(0,En.I)(Qi,cr=>{var $r,Yt,er;cr.id?(($r=Qi==null?void 0:Qi.type)==null?void 0:$r.indexOf("image"))>-1?Xt.replaceSelection(`<img width="100%" src="/api/attachments/${cr.id}?type=${cr.content_type})" alt="" />`):((Yt=Qi==null?void 0:Qi.type)==null?void 0:Yt.indexOf("video"))>-1?Xt.replaceSelection(`<video width="100%" controls src="/api/attachments/${cr.id}"></video>`):((er=Qi==null?void 0:Qi.type)==null?void 0:er.indexOf("pdf"))>-1?Xt.replaceSelection(`<a href="/api/attachments/${cr.id}?type=${Qi.type}&disposition=inline" target="_blank">${Qi.name}</a>`):Si.includes(ri)?Xt.replaceSelection(`<a href="/api/attachments/${cr.id}?type=office&disposition=inline" target="_blank">${Qi.name}</a>`):Xt.replaceSelection(`[${Qi.name}](/api/attachments/${cr.id}?type=${cr.content_type})`):(cr==null?void 0:cr.status)===401&&(document.location.href="/user/login")})}catch(Oi){pi.ZP.warning("\u8BF7\u4F7F\u7528chrome\u6D4F\u89C8\u5668\u7C98\u8D34")}return!0}else return!0}return!0};const Xt=Jt().fromTextArea(pc.current,{mode:Oa,lineNumbers:!Ho,lineWrapping:!0,value:Fn,autoCloseTags:!0,autoCloseBrackets:!0});return Xt.on("keyup",function(Dt,Kt){Kt.keyCode===8&&(Dt.getValue()==""?Xt.setOption("placeholder",da):Xt.setOption("placeholder",null))}),Xt.on("keydown",function(Dt,Kt){if(Kt.keyCode===8){var sn=xi(Dt);sn&&Kt.preventDefault()}}),bo&&Xt.focus(),Xt.on("paste",tt),As&&Xt.on("beforeChange",function(Dt,Kt){(Kt.origin==="paste"||Kt.origin==="+input")&&Kt.cancel()}),fc(Xt),()=>{Xt.off("paste",tt)}}},[]);const Un=(0,Me.useCallback)(()=>{if(pu.current)try{}catch(tt){console.log(tt,"---- to set md editor body height")}},[rl,pu,zs]);(0,Me.useEffect)(()=>{function tt(){let Xt=new Qt.Z(Dt=>{for(let Kt of Dt)(Kt.target.offsetHeight>0||Kt.target.offsetWidth>0)&&(Un(),zi.setSize("100%","100%"),zi.refresh())});return Xt.observe(pc.current.parentElement),Xt}if(zi){const Xt=tt();return()=>{var Dt,Kt;(Dt=pc.current)!=null&&Dt.parentElement&&Xt.unobserve((Kt=pc.current)==null?void 0:Kt.parentElement)}}},[zi,Un]),(0,Me.useEffect)(()=>{if(zi){let tt=[];for(const[Xt,Dt]of Object.entries(si)){let Kt={[Xt]:()=>{kn(Dt)}};tt.push(Kt),zi.addKeyMap(Kt)}return()=>{for(let Xt of tt)zi.removeKeyMap(Xt)}}},[zi]),(0,Me.useEffect)(()=>{Ji!==zs&&Fa(Ji)},[Ji]),(0,as.Z)(()=>{if(!hn&&wl>0){let tt=new Date().getTime(),Xt=window.sessionStorage.getItem(aa);tt>=wl+Fs&&(!Xt||Xt!==iu)&&(window.sessionStorage.setItem(aa,iu),hl(!0))}},Fs),(0,Me.useEffect)(()=>{Lo(ji)},[zi,ji]),(0,Me.useEffect)(()=>{zi&&bo&&zi.focus()},[zi,bo]),(0,Me.useEffect)(()=>{if(Ni&&zi){let tt=function(Dt){let Kt=Dt.target;if(Vu.current){let sn=Kt.scrollTop/Kt.scrollHeight;Vu.current.scrollTop=Vu.current.scrollHeight*sn}};const Xt=zi.getScrollerElement();return Xt.addEventListener("scroll",tt),()=>{Xt.removeEventListener("scroll",tt)}}},[zi,Ni]),(0,Me.useEffect)(()=>{if(zi&&wa){let tt=function(Xt,Dt){wa(Xt,Dt)};return zi.on("beforeChange",tt),()=>{zi.off("beforeChange",tt)}}},[zi,wa]),(0,Me.useEffect)(()=>{if(zi&&Fo){let tt=function(){Fo(zi.getValue())};return zi.on("blur",tt),()=>{zi.off("blur",tt)}}},[zi,Fo]);function xi(tt,Xt){var Dt=tt.getDoc(),Kt=Dt.getCursor(),sn=Dt.getLine(Kt.line),Vn=sn.charAt(Kt.ch-1),Qn=sn.lastIndexOf("@\u2581@",Kt.ch),zn=sn.lastIndexOf("@\u2581\u2581@",Kt.ch),Oi=Qn>zn?Qn:zn,Qi=Qn>zn?3:4;if(Al.indexOf(Vn)===-1)return null;if(console.log("change1:",Xt,tt,sn,Kt,Oi,Qn,zn,Vn),Oi>=0&&Kt.ch-Oi<5){var ri=Oi+Qi;return Dt.replaceRange("",{line:Kt.line,ch:Oi},{line:Kt.line,ch:ri}),{line:Kt.line,ch:ri}}return null}(0,Me.useEffect)(()=>{if(zi){let tt=function(Xt,Dt){const Kt=Xt.getValue();Gu(Kt),Sl(new Date().getTime()),Xt.getScrollerElement().dispatchEvent(new CustomEvent("scroll")),vn&&(Xo?vn(Kt,Bs(Kt)):vn(Kt))};return zi.on("change",tt),()=>{zi.off("change",tt)}}},[zi,vn]),(0,Me.useEffect)(()=>{if(zi)if(Fn==null)zi.setValue(""),Gu("");else{const tt=window.scrollY||window.pageYOffset;Fn!==zi.getValue()&&(zi.setValue(Fn),Gu(Fn),zi.setCursor(As?1:zi.lineCount(),0),window.scrollTo(0,tt))}},[zi,Fn]);const kn=(0,Me.useCallback)(tt=>{const Xt=zi.getCursor(),Dt=zi.getSelection();let Kt=Dt.split(`
|
|
`);switch(tt){case"bold":return zi.replaceSelection("**"+Dt+"**"),Dt===""&&zi.setCursor(Xt.line,Xt.ch+2),zi.focus();case"italic":return zi.replaceSelection("*"+Dt+"*"),Dt===""&&zi.setCursor(Xt.line,Xt.ch+1),zi.focus();case"code":return zi.replaceSelection("`"+Dt+"`"),Dt===""&&zi.setCursor(Xt.line,Xt.ch+1),zi.focus();case"inline-latex":return _s("inline-latex"),zi.focus();case"latex":return zi.replaceSelection("```latex\n"+Dt+"\n```"),zi.setCursor(Xt.line+1,Dt.length+1),zi.focus();case"line-break":return zi.replaceSelection(`<br/>
|
|
`),zi.focus();case"list-ul":return Dt===""?zi.replaceSelection("- "+Dt):zi.replaceSelection(Kt.map(sn=>sn===""?"":`- ${sn}`).join(`
|
|
`)),zi.focus();case"list-ol":return Dt===""?zi.replaceSelection("1. "+Dt):zi.replaceSelection(Kt.map((sn,Vn)=>sn===""?"":`${Vn+1}. ${sn}`).join(`
|
|
`)),zi.focus();case"add-null-ch":return Dt===""&&zi.setCursor(Xt.line,Xt.ch),zi.replaceSelection(ha),zi.focus();case"add-signal":return Dt===""&&zi.setCursor(Xt.line,Xt.ch),zi.replaceSelection(We),zi.focus();case"add-multiple":return Dt===""&&zi.setCursor(Xt.line,Xt.ch),zi.replaceSelection(Al),zi.focus();case"inster-template-1":return Dt===""&&zi.setCursor(Xt.line,Xt.ch),zi.replaceSelection(ui),zi.focus();case"eraser":return zi.setValue(""),zi.focus();case"trigger-watch":return Lo(!Ni),zi.focus();case"trigger-full-screen":return Fa(!zs),zi.focus();case Ai:_s(Ai);return;case Or:_s(Or);return;case Cr:_s(Cr);return;case ao:_s(ao);return;case"maths-latex":_s("maths-latex");return;case zr:_s(zr);return;case ir:_s(ir);return;default:throw new Error}},[zi,Ni,zs]),it=(0,Me.useCallback)((tt,Xt)=>{var Dt,Kt,sn,Vn,Qn,zn;switch(_s(""),Js){case Ai:const{title:$r,link:Yt}=tt;return zi.replaceSelection(`[${$r}](${Yt})`),zi.focus();case Or:const{language:er,content:sr}=tt;return zi.replaceSelection(["```"+er,sr,"```"].join(`
|
|
`)),zi.focus();case"maths-latex":for(var Oi=atob(tt),Qi=new Uint8Array(Oi.length),ri=0;ri<Oi.length;ri++)Qi[ri]=Oi.charCodeAt(ri);var cr=new Blob([Qi],{type:"image/png"});(0,En.I)(cr,cs=>{cs.id?zi.replaceSelection(``):(cs==null?void 0:cs.status)===401&&(document.location.href="/user/login")});break;case"inline-latex":zi.replaceSelection("`$$"+tt+"$$`");break;case Cr:case ao:case Wr:const{src:Ki,alt:lr}=tt,vr=Xt,Qr=(sn=(Kt=(Dt=vr==null?void 0:vr.name)==null?void 0:Dt.split("."))==null?void 0:Kt.pop)==null?void 0:sn.call(Kt);return((Vn=vr==null?void 0:vr.type)==null?void 0:Vn.indexOf("image"))>-1||!(vr!=null&&vr.type)?vr!=null&&vr.align||vr!=null&&vr.width?zi.replaceSelection(`<p style="text-align:${vr.align||"initial"}"><img width="${vr.width?vr.width+"%":"initial"}" src="${Ki}" alt="${lr||""}" /></p>`):zi.replaceSelection(`<img width="100%" src="${Ki}" alt="${lr||""}" />`):((Qn=vr==null?void 0:vr.type)==null?void 0:Qn.indexOf("video"))>-1?zi.replaceSelection(`<video width="100%" controls src="${Ki}"></video>`):((zn=vr==null?void 0:vr.type)==null?void 0:zn.indexOf("pdf"))>-1?zi.replaceSelection(`<a href="${Ki}?type=${vr.type}&disposition=inline" target="_blank">${vr.name}</a>`):Si.includes(Qr)?zi.replaceSelection(`<a href="${Ki}?type=office&disposition=inline" target="_blank">${vr.name}</a>`):zi.replaceSelection(`[${vr.name}](${Ki})`),zi.focus();case ir:const{row:Mr,col:Hr,align:Zr}=tt;let mi=`
|
|
`;for(let cs=0;cs<Mr;cs++){let Hs=[],js=[];for(let yr=0;yr<Hr;yr++)cs===1&&js.push(Us[Zr]),Hs.push(" ");cs===1&&(mi+=`| ${js.join(" | ")} |
|
|
`),mi+=`| ${Hs.join(Hr===1?"":" | ")} |
|
|
`}return zi.replaceSelection(mi+`
|
|
`),zi.focus();default:throw new Error}},[zi,Js]),fr=(0,Me.useMemo)(()=>{switch(Js){case Ai:return Me.createElement(_i,{callback:it,onCancel:xr});case Or:return Me.createElement(dr.Z,{callback:it,onCancel:xr});case Cr:return Me.createElement(En.Z,{callback:it,onCancel:xr});case zr:return Me.createElement(Gn,{callback:it,onCancel:xr});case ir:return Me.createElement(Wi,{callback:it,onCancel:xr});case"maths-latex":return Me.createElement(Rn,{showSaveButton:!0,callback:it});case"inline-latex":return Me.createElement($n.Z,{showSaveButton:!0,callback:it});default:return null}},[Js]);function xr(){_s("")}(0,Me.useEffect)(()=>{if(jl.current){let tt=function(Qn){sn=!0,Vn=Qn.pageY},Xt=function(){sn=!1},Dt=function(Qn){if(sn){let zn=Qn.pageY-Vn;zn<0&&(zn=0),zn>300&&(zn=300);let Oi=Ur+zn+"px";Il(Oi)}},Kt=jl.current,sn=!1,Vn=0;return Kt.addEventListener("mousedown",tt),document.addEventListener("mousemove",Dt),document.addEventListener("mouseup",Xt),()=>{Kt.removeEventListener("mousedown",tt),document.removeEventListener("mousemove",Dt),document.removeEventListener("mouseup",Xt)}}},[zi,jl]),(0,Me.useEffect)(()=>{Il(Ur)},[Ur]);const Rr=ms(pn),po=ms(rl),ko={width:Rr,height:po},Bo=(0,Me.useMemo)(()=>{if(wl){let tt=new Date(wl),Xt=tt.getHours(),Dt=tt.getMinutes(),Kt=tt.getSeconds();return Xt=Xt<10?"0"+Xt:Xt,Dt=Dt<10?"0"+Dt:Dt,Kt=Kt<10?"0"+Kt:Kt,`${Xt}:${Dt}:${Kt}`}return 0},[wl]),Bs=tt=>{const Xt=[];if(Xo){let Dt=-1;tt=tt.replace(/(@▁▁@|@▁@)/g,function(Kt,sn,Vn){Xt.push({multiLine:Kt!==We})})}return Xt};function Vo(){window.sessionStorage.removeItem(aa),hl(!1),Sl(0)}function Co(){hl(!1),Sl(0),zi.setValue(window.sessionStorage.getItem(aa))}(0,Me.useEffect)(()=>{Hi[Js]&&Js!==ao&&Js!==zr&&setTimeout(()=>{const tt=document.getElementsByClassName("markdown-popup-form")[0],Xt=window.innerWidth/2-tt.offsetWidth/2,Dt=window.innerHeight/2-tt.offsetHeight/2;$o(Xt),Pl(Dt)},0)},[Js]);const vo=tt=>{tt.preventDefault();const Xt=tt.clientX-Yi,Dt=tt.clientY-dl;document.body.onmousemove=Kt=>{let sn=Kt.clientX-Xt,Vn=Kt.clientY-Dt;const Qn=document.getElementsByClassName("markdown-popup-form")[0],zn=window.innerWidth-Qn.offsetWidth,Oi=window.innerHeight-Qn.offsetHeight;sn=Math.max(0,Math.min(sn,zn)),Vn=Math.max(0,Math.min(Vn,Oi)),fs(Kt.clientX,Kt.clientY,Xt,Dt)&&($o(sn),Pl(Vn))},document.body.onmouseup=function(){document.body.onmousemove=null}},fs=(tt,Xt,Dt,Kt)=>{const sn=document.body.clientHeight,Vn=document.body.clientWidth;return tt<20&&Dt>tt||tt>Vn-20&&Dt<tt||Xt<20&&Kt>Xt||Xt>sn-20&&Kt<Xt?(document.body.onmousemove=null,document.body.onmouseup=null,!1):!0};return Me.createElement(Me.Fragment,null,Me.createElement("div",{className:"markdown-editor-wrapper",ref:pu},Me.createElement("div",{className:`markdown-editor-container ${Ll} ${Ni?"on-preview":""} ${Ho?"mini":""} ${zs?"full-screen":""}`,style:ko},Me.createElement(kt,{insertTemp:co,watch:Ni,fullScreen:zs,showNullButton:Ar,showNullProgramButton:Xo,onActionCallback:kn,hidetoolBar:al,extraUse:Sa}),Me.createElement("div",{className:"markdown-editor-body"},Me.createElement("div",{className:"codemirror-container"},Me.createElement("textarea",{ref:pc,placeholder:da})),Ni?Me.createElement("div",{ref:Vu,className:"preview-container"},Oa==="stex"&&Me.createElement(rn,{value:iu}),Oa!=="stex"&&Me.createElement(ln.Z,{disabledFill:Jo,showProgramFill:Xo,value:iu})):null))),pa?Me.createElement("a",{ref:jl,className:"editor-resize"}):null,Js===ao&&Me.createElement(ni,{callback:it,onCancel:xr}),Js===zr&&Me.createElement(Gn,{callback:it,onCancel:xr}),Me.createElement(xt.Z,null,Hi[Js]&&Js!==ao&&Js!==zr?Me.createElement(Mn.default,{maskClosable:!1,centered:!0,style:{position:"absolute",left:Yi,top:dl},title:Me.createElement("div",{style:{cursor:"move"},onMouseDown:vo},Hi[Js]),open:!0,onCancel:xr,footer:null,destroyOnClose:!0,width:Js===zr?"1200px":null,height:Js===zr?"80vh":null,className:"markdown-popup-form"},fr):null))}},17077:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return lt},I:function(){return kt}});var Me=je(28284),yt=je(6767),Jt=je(37568),Qt=je(77736),It=je(71051),dt=je(47889),Mt=je(99571),an=je(46699),qt=je(59301),nt=je(59301),ln=Object.defineProperty,rn=Object.defineProperties,on=Object.getOwnPropertyDescriptors,et=Object.getOwnPropertySymbols,ue=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable,Ce=(xt,Et,$t)=>Et in xt?ln(xt,Et,{enumerable:!0,configurable:!0,writable:!0,value:$t}):xt[Et]=$t,Ae=(xt,Et)=>{for(var $t in Et||(Et={}))ue.call(Et,$t)&&Ce(xt,$t,Et[$t]);if(et)for(var $t of et(Et))ce.call(Et,$t)&&Ce(xt,$t,Et[$t]);return xt},Te=(xt,Et)=>rn(xt,on(Et));const{useForm:Ie}=Me.default,ze={width:280,marginRight:10},Ye={labelCol:{span:5},wrapperCol:{span:19}};var lt=({callback:xt,onCancel:Et})=>{const[$t]=Ie();let Zt=(0,qt.useRef)();function Yn(ci){Zt.current.width=$t.getFieldValue("width"),Zt.current.align=$t.getFieldValue("align"),xt(ci,Zt.current)}function gn(ci,Xn){if(ci.status===-1){yt.ZP.error(ci.message);return}$t.setFieldsValue({src:`/api/attachments/${ci.id}`,type:Xn.type})}function Jn(ci){let Xn=ci.target.files[0];Zt.current=Xn,kt(Xn,gn)}return nt.createElement(Me.default,Te(Ae({form:$t},Ye),{className:"upload-image-panel",onFinish:Yn,style:{width:470,overflow:"hidden"}}),nt.createElement(Me.default.Item,{label:"\u56FE\u7247\u5730\u5740",required:!0},nt.createElement("div",{className:"flex-container"},nt.createElement(Me.default.Item,{noStyle:!0,name:"src",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u56FE\u7247\u5730\u5740"}]},nt.createElement(Jt.default,{style:ze})),nt.createElement(Bt,{onFileChange:Jn}))),nt.createElement(Me.default.Item,{label:"\u56FE\u7247\u63CF\u8FF0",name:"alt"},nt.createElement(Jt.default,{style:{width:264}})),nt.createElement(Me.default.Item,{label:"\u56FE\u7247\u5BBD\u5EA6",name:"width"},nt.createElement(Qt.Z,null,nt.createElement(Me.default.Item,{name:"width",style:{margin:0}},nt.createElement(It.Z,{style:{width:264}})),nt.createElement("span",{className:"ml8"},"%"))),nt.createElement(Me.default.Item,{label:"\u5BF9\u9F50\u65B9\u5F0F",name:"align"},nt.createElement(dt.ZP.Group,{name:"align",defaultValue:1,options:[{value:"left",label:"\u5DE6\u5BF9\u9F50"},{value:"center",label:"\u5C45\u4E2D\u5BF9\u9F50"},{value:"right",label:"\u53F3\u5BF9\u9F50"}]})),nt.createElement("aside",null,nt.createElement(Me.default.Item,{style:{textAlign:"right",position:"relative",right:-98}},nt.createElement(Mt.ZP,{type:"primary",htmlType:"submit",style:{marginRight:10}},"\u786E\u5B9A"),nt.createElement(Mt.ZP,{type:"default",onClick:Et},"\u53D6\u6D88"))))};function Bt({onFileChange:xt}){return nt.createElement("label",{className:"upload-button",style:{cursor:"pointer"}},"\u672C\u5730\u4E0A\u4F20",nt.createElement("input",{type:"file",onChange:xt}))}function kt(xt,Et){if(!xt)throw new String("\u6CA1\u6709\u6587\u4EF6");let $t=new FormData;$t.append("editormd-image-file",xt),$t.append("file_param_name","editormd-image-file"),$t.append("byxhr","true");var Zt=new window.XMLHttpRequest;Zt.withCredentials=!0,Zt.addEventListener("load",function(Yn){Et(JSON.parse(Yn.target.responseText),xt)},!1),Zt.addEventListener("error",function(Yn){console.error(Yn)},!1),Zt.open("POST",`${an.KI}/api/attachments.json`),Zt.send($t)}},91558:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return Jt}});var Me=je(59301),yt=je(4676);class Jt extends Me.Component{constructor(It){super(It);const dt=window.document;this.node=dt.createElement("div"),dt.body.appendChild(this.node)}render(){const{children:It}=this.props;return(0,yt.createPortal)(It,this.node)}componentWillUnmount(){window.document.body.removeChild(this.node)}}},37808:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return yt}});var Me=je(59301);function yt(Jt,Qt){const It=(0,Me.useRef)();(0,Me.useEffect)(()=>{It.current=Jt}),(0,Me.useEffect)(()=>{function dt(){It.current()}if(Qt!==null){let Mt=setInterval(dt,Qt);return()=>clearInterval(Mt)}},[Qt])}},48716:function(Cn,Ei,je){"use strict";je.d(Ei,{Q8:function(){return At},d0:function(){return Hn},w6:function(){return Ht}});var Me=je(59301),yt=je(16326),Jt=je(82326),Qt=je(6767),It=je(62957),dt=je(47889),Mt=je(77019),an=je(5269),qt=je(25399),nt=je(62673),ln=je(99571),rn=je(61186),on=je.n(rn),et=je(48790),ue=je(38986),ce=je(89392),Ce=je.n(ce),Ae=je(51257),Te=je(22982),Ie=je(25690),ze=je(43155),Ye=je(40197),lt=je(59229),Bt=je(3039),kt=je(75736),xt=je(59301),Et=Object.defineProperty,$t=Object.defineProperties,Zt=Object.getOwnPropertyDescriptors,Yn=Object.getOwnPropertySymbols,gn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,ci=(Ln,Mi,Rt)=>Mi in Ln?Et(Ln,Mi,{enumerable:!0,configurable:!0,writable:!0,value:Rt}):Ln[Mi]=Rt,Xn=(Ln,Mi)=>{for(var Rt in Mi||(Mi={}))gn.call(Mi,Rt)&&ci(Ln,Rt,Mi[Rt]);if(Yn)for(var Rt of Yn(Mi))Jn.call(Mi,Rt)&&ci(Ln,Rt,Mi[Rt]);return Ln},In=(Ln,Mi)=>$t(Ln,Zt(Mi)),hi=(Ln,Mi,Rt)=>new Promise((ni,en)=>{var Ti=Ze=>{try{Tt(Rt.next(Ze))}catch(Ge){en(Ge)}},Lr=Ze=>{try{Tt(Rt.throw(Ze))}catch(Ge){en(Ge)}},Tt=Ze=>Ze.done?ni(Ze.value):Promise.resolve(Ze.value).then(Ti,Lr);Tt((Rt=Rt.apply(Ln,Mi)).next())});function Ht(Ln,Mi){const Rt=[];for(let ni=Ln;ni<Mi;ni++)Rt.push(ni);return Rt}const At=(Ln,Mi,Rt)=>{const ni=Ln<on()().startOf("day"),en=Ln>on()(Mi).endOf("day"),Ti=Ln<on()(Rt).startOf("day");return Mi?Rt?on()()<=on()(Rt)?Ti||en:ni||en:Ln&&ni||en:Rt&&on()()<=on()(Rt)?Ti:ni},Hn=(Ln,Mi)=>{const Rt=parseInt(on()(Ln).format("HH")),ni=parseInt(on()().format("HH")),en=parseInt(on()().format("mm"));if(!Ln)return{disabledHours:()=>Ht(0,ni),disabledMinutes:()=>Ht(0,en)};if(Mi){const Ti=parseInt(on()(Mi).format("HH")),Lr=parseInt(on()(Mi).format("mm"));return on()(Ln).isSame(on()(Mi),"day")?{disabledHours:()=>Ht(0,Ti),disabledMinutes:()=>Rt<=Ti?Ht(0,Lr):[]}:void 0}if(on()(Ln).isSame(on()(),"day"))return{disabledHours:()=>Ht(0,ni),disabledMinutes:()=>on()(Ln).isSame(on()(),"hour")&&Rt<=ni?Ht(0,en):[]}},_i=(Ln,Mi)=>Ln==null?void 0:Ln.map(Rt=>{var ni;return(ni=Mi==null?void 0:Mi.find(en=>en.value===Rt))==null?void 0:ni.id}),{RangePicker:dr}=yt.default,{Option:En}=Jt.default,Mn=({shixunHomeworks:Ln,loading:Mi,dispatch:Rt,classroomList:ni,user:en})=>{var Ti,Lr,Tt,Ze,Ge,rt,Ft,qe,mt;const An=(0,Ie.useParams)(),{workSetting:Gn,workList:fo,shixunWorkList:qn,headerInfo:Kn,changeData:oi}=Ln,[Wi,Nr]=(0,Me.useState)(!1),[Uo,Vr]=(0,Me.useState)(!1);let[lo,Rn]=(0,Me.useState)([]),[$n,pi]=(0,Me.useState)([]),[Ai,Cr]=(0,Me.useState)({unified_setting:!1,publish_time:"",end_time:"",allow_late:!1,unified_late:!0,late_time:"",late_penalty:0,penalty_type:ze.Q.Percent,challenge_settings:[],work_efficiency:!1,shixun_evaluation:"",answer_open_evaluation:!1,answer_public:!1,score_open:!1,comment_public:!0,total_score:"",eff_score:0,action_analysis:!1,work_end_forbid_evaluate:!1});const[zr,ao]=(0,Me.useState)({}),[Wr,Or]=(0,Me.useState)({});(0,Me.useEffect)(()=>()=>{Rn([])},[]),(0,Me.useEffect)(()=>{Nr(!(0,et.GJ)())},[(0,et.GJ)()]);const ir=()=>{Rt({type:"shixunHomeworks/getWorkSetting",payload:Xn({},An)})};(0,Me.useEffect)(()=>{if(!(Gn!=null&&Gn.course_id))return;Object.keys(Ai).map(function(Si){Ai[Si]=Gn[Si]}),(!Ai.allow_late||!Ai.unified_late)&&(Ai.late_penalty=20,Ai.penalty_type=ze.Q.Percent),Ai.unified_setting||(Ai.unified_late=!1,Ai.unified_anonymous_comment=!1,Ai.unified_anonymous_appeal=!1),lo=JSON.parse(JSON.stringify(Gn.group_settings.map(Si=>In(Xn({},Si),{group_name:[Si.group_name]})).filter(Si=>Si.publish_time!==null))),$n=JSON.parse(JSON.stringify(Gn.allow_late_settings.map(Si=>In(Xn({},Si),{group_name:[Si.group_name]})).filter(Si=>Si.late_time!==null))),Cr(Xn({},Ai));const ui=(0,Ae.QE)((lo==null?void 0:lo.length)>0?lo:[]);Rn([...ui]),($n==null?void 0:$n.length)<=0?pi([{penalty_type:ze.Q.Percent,late_penalty:20}]):pi([...$n])},[Gn]);const ss=()=>hi(void 0,null,function*(){var ui,Si;if(((ui=en==null?void 0:en.userInfo)==null?void 0:ui.user_status)===2){(0,Ye.Rd)();return}const ms=JSON.parse(JSON.stringify(Ai));if(ms.challenge_settings.filter(Xr=>!Xr.hide),ms.categoryId=An.categoryId,(Si=ms.challenge_settings)!=null&&Si.every(Xr=>!Xr.checked)){Qt.ZP.warning("\u5173\u5361\u4E0D\u80FD\u5168\u90E8\u8BBE\u7F6E\u4E3A\u53EF\u4E0D\u505A");return}if(console.log(lo),!Ai.unified_setting)lo=lo==null?void 0:lo.map(Xr=>{var si;if(!Xr.publish_time||!Xr.end_time)throw Qt.ZP.error("\u8BF7\u628A\u53D1\u5E03\u65F6\u95F4\u586B\u5199\u5B8C\u6574"),new String("\u8BF7\u628A\u53D1\u5E03\u65F6\u95F4\u586B\u5199\u5B8C\u6574");if(!Xr.group_name)throw Qt.ZP.error("\u8BF7\u9009\u62E9\u5206\u73ED\u540D\u79F0"),new String("\u8BF7\u9009\u62E9\u5206\u73ED\u540D\u79F0");return Xr.group_name=typeof(Xr==null?void 0:Xr.group_name)=="string"?[Xr==null?void 0:Xr.group_name]:Xr==null?void 0:Xr.group_name,Xr.group_id=(si=Gn.group_settings)==null?void 0:si.filter(Hi=>{var or;return(or=Xr==null?void 0:Xr.group_name)==null?void 0:or.includes(Hi.group_name)}).map(Hi=>Hi.group_id||Hi.id).toString().split(","),Xr});else if(!Ai.publish_time||!Ai.end_time)throw Qt.ZP.error("\u53D1\u5E03\u622A\u6B62\u65F6\u95F4\u4E0D\u80FD\u4E3A\u7A7A"),new String("\u53D1\u5E03\u622A\u6B62\u65F6\u95F4\u4E0D\u80FD\u4E3A\u7A7A");if(ms.group_settings=lo,Ai.allow_late)if(Ai.unified_late){if(Ai.late_penalty===null||Ai.late_penalty===void 0||Ai.late_penalty<0||Ai.late_penalty>100)throw Qt.ZP.error("\u8FDF\u4EA4\u6263\u5206\u586B\u5199\u533A\u95F4\u4E3A0~100"),new String("\u8FDF\u4EA4\u6263\u5206\u586B\u5199\u533A\u95F4\u4E3A0~100");if(!Ai.late_time)throw Qt.ZP.error("\u8BF7\u628A\u622A\u6B62\u65F6\u95F4\u586B\u5199\u5B8C\u6574"),new String("\u8BF7\u628A\u622A\u6B62\u65F6\u95F4\u586B\u5199\u5B8C\u6574")}else $n=$n==null?void 0:$n.map(Xr=>{var si,Hi;if(Xr.late_penalty===null||Xr.late_penalty===void 0||Xr.late_penalty<0||Xr.late_penalty>100)throw Qt.ZP.error("\u8FDF\u4EA4\u6263\u5206\u586B\u5199\u533A\u95F4\u4E3A0~100"),new String("\u8FDF\u4EA4\u6263\u5206\u586B\u5199\u533A\u95F4\u4E3A0~100");if(!Xr.late_time)throw Qt.ZP.error("\u8BF7\u628A\u622A\u6B62\u65F6\u95F4\u586B\u5199\u5B8C\u6574"),new String("\u8BF7\u628A\u622A\u6B62\u65F6\u95F4\u586B\u5199\u5B8C\u6574");if(!Xr.group_name)throw Qt.ZP.error("\u8BF7\u9009\u62E9\u5206\u73ED\u540D\u79F0"),new String("\u8BF7\u9009\u62E9\u5206\u73ED\u540D\u79F0");return Xr.group_name=typeof(Xr==null?void 0:Xr.group_name)=="string"?[Xr==null?void 0:Xr.group_name]:Xr==null?void 0:Xr.group_name,Xr.group_id=(Hi=(si=Xr==null?void 0:Xr.group_name)==null?void 0:si.map(or=>{var Fn,vn;let pn=(vn=(Fn=Gn.group_settings)==null?void 0:Fn.filter(Ur=>(Ur==null?void 0:Ur.group_name)===or))==null?void 0:vn[0];return pn==null?void 0:pn.group_id}))==null?void 0:Hi.toString().split(","),Xr}),ms.allow_late_settings=$n;let Po=yield(0,kt.Tr)({homework_common_ids:[parseInt(An.categoryId)],course_id:An.coursesId,type:"homework_common"});(Po==null?void 0:Po.student_count)===0?Us(ms):(Or(ms),ao(Po))}),Us=ui=>{var Si;if(ui.total_score===null){Qt.ZP.warning("\u603B\u5206\u503C\u4E0D\u80FD\u4E3A\u7A7A");return}if(ui!=null&&ui.work_efficiency&&ui.eff_score===null){Qt.ZP.warning("\u6548\u7387\u5206\u4E0D\u80FD\u4E3A\u7A7A");return}const ms=ui.challenge_settings.reduce((si,Hi)=>si+Number(Hi.challenge_score),0);if((ms==null?void 0:ms.toFixed(10))!==((Si=ui.total_score-ui.eff_score)==null?void 0:Si.toFixed(10))){Qt.ZP.warning(`\u6548\u7387\u5206\u52A0\u5173\u5361\u4EFB\u52A1\u603B\u5206\u5FC5\u987B\u7B49\u4E8E\u603B\u5206\u503C\uFF1A${ui.total_score}\u5206`);return}const Po={shixun_evaluation:ui.shixun_evaluation,challenge_settings:ui.challenge_settings};let Xr=()=>{var si;const Hi=()=>hi(void 0,null,function*(){Vr(!0),(yield(0,ue.ZP)(`/api/homework_commons/${An.categoryId}/publish_setting.json`,{method:"post",body:Xn({},ui)})).status===0&&(Qt.ZP.success("\u66F4\u65B0\u6210\u529F"),ir(),Rt({type:"shixunHomeworks/getShixunWorkHeadInfo",payload:Xn({},An)})),Vr(!1)});!(0,ce.isEqual)(oi,Po)&&!((si=Kn==null?void 0:Kn.homework_status)!=null&&si.includes("\u672A\u53D1\u5E03"))?It.default.confirm({title:"\u66F4\u65B0\u6210\u7EE9",content:"\u60A8\u6539\u52A8\u4E86\u672C\u6B21\u4F5C\u4E1A\u7684\u5173\u5361\u5F97\u5206\u8BBE\u7F6E\uFF0C\u8FD9\u53EF\u80FD\u5BFC\u81F4\u5DF2\u5B8C\u6210\u4F5C\u4E1A\u7684\u5B66\u751F\u7684\u6210\u7EE9\u4EA7\u751F\u9519\u8BEF\u3002\u70B9\u51FB\u201C\u786E\u5B9A\u201D\u6309\u94AE\u5C06\u4FDD\u5B58\u6700\u65B0\u8BBE\u7F6E\u5E76\u6309\u6700\u65B0\u8BBE\u7F6E\u66F4\u65B0\u5168\u73ED\u6210\u7EE9\u3002",okText:"\u786E\u8BA4",cancelText:"\u53D6\u6D88",onOk:Hi}):Hi()};Gn!=null&&Gn.high_resources_consume&&!(Gn!=null&&Gn.high_resources_consume_permission)?Rt({type:"classroomList/setActionTabs",payload:{key:"\u6388\u6743\u4F7F\u7528",id:An.coursesId,type:"shixun",type_id:An.categoryId,name:Gn.homework_name,fn:()=>{Xr()}}}):Xr()},as=(ui,Si,ms="group_id")=>{var Po;return Si?Si.find(Xr=>Xr[ms]===ui):(Po=Gn==null?void 0:Gn.group_settings)==null?void 0:Po.find(Xr=>Xr.group_id[0]===ui)},ls=(Gn==null?void 0:Gn.allow_late)||(Gn==null?void 0:Gn.anonymous_comment),La=ui=>{var Si,ms;const Po=as(ui,Gn==null?void 0:Gn.allow_late_settings,"id"),Xr=as(ui,Gn==null?void 0:Gn.anonymous_comment_settings),si=as(ui);return(Gn==null?void 0:Gn.allow_late)&&Po&&on()(Po==null?void 0:Po.late_time)<=on()()||(Gn==null?void 0:Gn.anonymous_comment)&&Xr&&(Xr==null?void 0:Xr.evaluation_start)!==null||((ms=(on()(si==null?void 0:si.end_time)<=on()()&&((Si=Gn==null?void 0:Gn.allow_late_settings)==null?void 0:Si.filter(Hi=>Hi.group_id.includes(ui))))[0])==null?void 0:ms.late_time)!=null},Fs=(0,Me.useMemo)(()=>(Gn==null?void 0:Gn.allow_late)||(Gn==null?void 0:Gn.all_group_late),[Gn,Kn]),ha=Gn==null?void 0:Gn.anonymous_comment,Al=ui=>{if(!ui)return!1;const Si=as(ui,Gn==null?void 0:Gn.anonymous_comment_settings);return(Gn==null?void 0:Gn.anonymous_comment)&&Si&&(Si==null?void 0:Si.evaluation_start)!==null},We=(ui,Si)=>{var ms,Po,Xr,si,Hi;ui!=null&&ui.group_id||(ui.group_id=_i(ui==null?void 0:ui.group_name,Gn==null?void 0:Gn.group_settings)),Rt({type:"classroomList/setActionTabs",payload:{key:"\u5206\u73ED\u53D1\u5E03-\u53D1\u5E03\u89C4\u5219\u62C6\u5206",data:ui,index:Si,rangePickerDisabled:(Po=(ms=ui==null?void 0:ui.group_id)==null?void 0:ms[0])!=null&&Po.publish_time?Wi||(on()()<=on()((si=as((Xr=ui==null?void 0:ui.group_id)==null?void 0:Xr[0]))==null?void 0:si.publish_time)?!1:[!0,La((Hi=ui==null?void 0:ui.group_id)==null?void 0:Hi[0])]):!1,disabledDate:Gn==null?void 0:Gn.course_end_date}})};return xt.createElement("section",{className:Te.Z.form},xt.createElement("div",{className:Te.Z.title},"\u4F5C\u4E1A\u53D1\u5E03",xt.createElement("span",{className:"c-grey-666 font14",style:{fontWeight:400}},"\uFF08\u4F5C\u4E1A\u4E00\u65E6\u53D1\u5E03\u540E\u4E0D\u53EF\u53D8\u66F4\u8BD5\u9898\u53D1\u5E03\u6A21\u5F0F\uFF09")),xt.createElement("div",null,xt.createElement("div",{style:{background:"#F6F7F9",padding:"13px 30px",display:"flex",alignItems:"center"}},xt.createElement(dt.ZP.Group,{disabled:Wi||!((Ti=Kn==null?void 0:Kn.homework_status)!=null&&Ti.includes("\u672A\u53D1\u5E03"))||(0,et.Rm)()&&!((Lr=ni.AssistantObject.practice)!=null&&Lr.can_publish),value:Ai.unified_setting,onChange:ui=>{var Si;if(!((Si=Kn==null?void 0:Kn.homework_status)!=null&&Si.includes("\u672A\u53D1\u5E03"))){Qt.ZP.error("\u5DF2\u53D1\u5E03\uFF0C\u4E0D\u80FD\u518D\u4FEE\u6539\u7EDF\u4E00\u8BBE\u7F6E");return}if(Ai.unified_setting=!Ai.unified_setting,Ai.unified_setting||(Ai.unified_late=!1,pi([{late_penalty:5}])),Cr(Object.assign({},Ai)),Ai.unified_setting===!1&&lo==""){Rn(lo.concat({}));return}Ai.unified_setting&&(Rn([]),pi([{late_penalty:5}]))}},xt.createElement(dt.ZP,{value:!0,disabled:Wi||!(Gn!=null&&Gn.manage_all_group),style:{marginRight:"50px"}},"\u7EDF\u4E00\u53D1\u5E03"),xt.createElement(dt.ZP,{disabled:Wi||!((Tt=Gn==null?void 0:Gn.group_settings)!=null&&Tt.length),value:!1},"\u5206\u73ED\u53D1\u5E03")),((Ze=Gn==null?void 0:Gn.group_settings)==null?void 0:Ze.length)===0&&xt.createElement("div",{style:{color:"rgba(0, 0, 0, 0.25)",height:"22px"}},"\uFF08\u672C\u8BFE\u5802\u65E0\u5206\u73ED\uFF0C\u4EC5\u652F\u6301\u9009\u62E9\u201C\u7EDF\u4E00\u53D1\u5E03\u201C\uFF09")),Ai.unified_setting&&xt.createElement("div",{style:{display:"flex",color:"#666666",background:"#F6F7F9",padding:"5px 30px",height:"50px",marginTop:"1px"}},xt.createElement(Mt.Z,{align:"middle"},xt.createElement(an.Z,{style:{marginLeft:"23px"}},"\u53D1\u5E03\u65F6\u95F4"),xt.createElement(an.Z,{className:"ml10"},xt.createElement(yt.default,{size:"large",disabled:Wi||!((Ge=Kn==null?void 0:Kn.homework_status)!=null&&Ge.includes("\u672A\u53D1\u5E03")||(rt=Kn==null?void 0:Kn.homework_status)!=null&&rt.includes("\u672A\u5F00\u59CB"))||(0,et.Rm)()&&!((Ft=ni.AssistantObject.practice)!=null&&Ft.can_publish),style:{width:170},placeholder:"\u8BF7\u9009\u62E9\u53D1\u5E03\u65F6\u95F4",showTime:{format:"HH:mm"},allowClear:!1,format:"YYYY-MM-DD HH:mm",disabledDate:ui=>At(ui,Gn==null?void 0:Gn.course_end_date),disabledTime:ui=>Hn(ui),value:Ai.publish_time?on()(Ai.publish_time):"",onChange:(ui,Si)=>{Ai.publish_time=Si,(Ai.end_time==""||!Ai.end_time)&&Ai.unified_setting&&(Ai.end_time=on()(ui).add(7,"days").format("YYYY-MM-DD HH:mm:ss")),Cr(Object.assign({},Ai))}}))),xt.createElement(Mt.Z,{align:"middle",className:"pl30"},xt.createElement(an.Z,null,"\u622A\u6B62\u65F6\u95F4"),xt.createElement(an.Z,{className:"ml10"},xt.createElement(yt.default,{size:"large",style:{width:170},allowClear:!1,placeholder:"\u8BF7\u9009\u62E9\u622A\u6B62\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:on()((0,Ae.U6)(),"HH:mm")},format:"YYYY-MM-DD HH:mm",disabled:(Gn==null?void 0:Gn.allow_late)&&(Gn==null?void 0:Gn.homework_status.includes("\u5DF2\u622A\u6B62"))||Wi||(Gn==null?void 0:Gn.allow_late)&&on()()>=on()(Gn==null?void 0:Gn.end_time)||(0,et.Rm)()&&!((qe=ni.AssistantObject.practice)!=null&&qe.can_publish),disabledDate:ui=>At(ui,Gn==null?void 0:Gn.course_end_date,Ai.publish_time),disabledTime:ui=>Hn(ui,Ai.publish_time),value:Ai.end_time?on()(Ai.end_time):"",onChange:(ui,Si)=>{Ai.end_time=Si,Cr(Object.assign({},Ai))}})))),!Ai.unified_setting&&(lo==null?void 0:lo.length)>0&&xt.createElement(Mt.Z,{style:{display:"flex",color:"#666666",background:"#F6F7F9",padding:"5px 30px",marginTop:"1px"}},lo&&lo.map(function(ui,Si){var ms,Po,Xr,si,Hi,or,Fn;return xt.createElement(an.Z,{span:24,key:Si},xt.createElement(Mt.Z,{gutter:[8,16],style:{display:"flex",alignItems:"center",marginBottom:Si==(lo==null?void 0:lo.length)-1?"0px":"10px"}},xt.createElement("div",{style:{minWidth:85,marginRight:"15px",textAlign:"right"}},"\u53D1\u5E03\u89C4\u5219",Si+1),xt.createElement(Jt.default,{disabled:Wi||((ms=Kn==null?void 0:Kn.homework_status)!=null&&ms.includes("\u672A\u53D1\u5E03")&&ui.id||on()()<on()(ui==null?void 0:ui.publish_time)?!1:!!(ui!=null&&ui.publish_time))||(0,et.Rm)()&&!((Po=ni.AssistantObject.practice)!=null&&Po.can_publish),mode:"multiple",className:Te.Z.multiple_select,style:{width:"250px"},value:ui.group_name,placeholder:"\u8BF7\u9009\u62E9\u5206\u73ED\u540D\u79F0",onChange:vn=>{var pn;if((0,et.Rm)()&&!((pn=ni.AssistantObject.practice)!=null&&pn.can_publish)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}lo[Si].group_name=vn,lo[Si].group_id=ui.group_id;const Ur=(0,ce.flattenDeep)(lo.map(bo=>bo.group_name)),Ho=$n.map(bo=>{let ji=(bo==null?void 0:bo.group_name)||[];return In(Xn({},bo),{group_name:(0,ce.remove)(ji,co=>Ur.includes(co))})});pi(Ho),Rn(lo.slice())},maxTagCount:4,maxTagPlaceholder:vn=>xt.createElement("div",{style:{cursor:"pointer"},onClick:()=>We(ui,Si)},"+",vn==null?void 0:vn.length)},Gn.group_settings&&Gn.group_settings.map(function(vn){if(!lo.map(Ur=>Ur.group_name).flat().includes(vn.group_name))return xt.createElement(En,{value:vn.group_name,key:vn.id},vn.group_name)})),xt.createElement("div",{className:"ml20"},xt.createElement(dr,{size:"large",ranges:{\u6B64\u523B:[ui.publish_time?on()(ui.publish_time):on()(),on()()]},allowClear:!1,disabled:Wi||(on()()<=on()((si=as((Xr=ui==null?void 0:ui.group_id)==null?void 0:Xr[0]))==null?void 0:si.publish_time)?!1:[!0,La((Hi=ui==null?void 0:ui.group_id)==null?void 0:Hi[0])]),style:{width:605},placeholder:["\u53D1\u5E03\u65F6\u95F4\uFF08\u5B66\u751F\u6536\u5230\u4F5C\u4E1A\u65F6\u95F4\uFF09","\u622A\u6B62\u65F6\u95F4\uFF08\u5B66\u751F\u201C\u6309\u65F6\u201D\u63D0\u4EA4\u4F5C\u54C1\u65F6\u95F4\u622A\u70B9\uFF09"],disabledDate:vn=>At(vn,Gn==null?void 0:Gn.course_end_date),disabledTime:vn=>Hn(vn),showTime:{showNow:!0,format:"HH:mm",defaultValue:[on()((0,Ae.U6)(),"HH:mm"),on()((0,Ae.U6)(),"HH:mm")]},format:"YYYY-MM-DD HH:mm",value:[ui.publish_time?on()(ui.publish_time):void 0,ui.end_time?on()(ui.end_time):void 0],onChange:(vn,pn)=>{var Ur;if((0,et.Rm)()&&!((Ur=ni.AssistantObject.practice)!=null&&Ur.can_publish)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}lo[Si].publish_time=pn[0],!ui.end_time&&pn[0]?lo[Si].end_time=on()(pn[0]).add(7,"days"):lo[Si].end_time=pn[1],Rn([...lo])},onCalendarChange:(vn,pn,Ur)=>{if(pn!=null&&pn[0]&&!pn[1]){const Ho=on()(pn[0]).add(7,"days");lo[Si].publish_time=pn[0],lo[Si].end_time=Ho,Rn([...lo])}}})),!Wi&&xt.createElement("div",{style:{display:"flex",width:"50px"}},((or=ui==null?void 0:ui.group_id)==null?void 0:or.length)>1&&xt.createElement(qt.Z,{title:"\u89C4\u5219\u62C6\u5206"},xt.createElement("i",{className:"iconfont icon-chaifen ml10",style:{cursor:"pointer",color:"#3061d0"},onClick:()=>We(ui,Si)})),lo.length<((Fn=Gn==null?void 0:Gn.group_settings)==null?void 0:Fn.length)&&xt.createElement("i",{className:"iconfont icon-zengjia1 ml10 mr10",style:{cursor:"pointer",color:"#00B187"},onClick:()=>{var vn;if((0,et.Rm)()&&!((vn=ni.AssistantObject.practice)!=null&&vn.can_publish)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Rn(lo.concat({}))}}),((ui==null?void 0:ui.publish_time)&&on()()<on()(ui==null?void 0:ui.publish_time)||!(ui!=null&&ui.publish_time))&&Si!=0&&xt.createElement("i",{className:"iconfont icon-shanjian1",style:{cursor:"pointer",color:"#E30000"},onClick:()=>{const vn=(0,ce.cloneDeep)($n);vn.forEach((pn,Ur)=>{pn.group_name&&(pn.group_name=pn.group_name.filter(Ho=>{var bo;return!((bo=lo[Si].group_name)!=null&&bo.includes(Ho))}))}),lo=lo.filter((pn,Ur)=>Si!==Ur),pi(vn),Rn(lo.slice()),setTimeout(()=>Rn(lo.slice()),10)}}))))}))),xt.createElement(Mt.Z,null,xt.createElement(an.Z,null,xt.createElement("div",{className:Te.Z.title,style:{marginTop:"30px"}},"\u8865\u4EA4\u8BBE\u7F6E",xt.createElement("span",{className:"c-grey-666 font14",style:{fontWeight:400}},"\uFF08\u53EF\u5BF9\u5728\u4F5C\u4E1A\u53D1\u5E03\u65F6\u95F4\u8303\u56F4\u5185\u672A\u5B8C\u6210\u4F5C\u4E1A\u7684\u5B66\u751F\uFF0C\u5EF6\u957F\u65F6\u95F4\u8FDB\u884C\u8865\u4EA4\uFF09"))),xt.createElement(an.Z,{span:24,style:{background:"#F6F7F9",padding:"13px 30px",display:"flex",alignItems:"center"}},xt.createElement(nt.default,{checked:Ai.allow_late,disabled:Wi||Fs,onChange:ui=>{var Si;if((0,et.Rm)()&&!((Si=ni.AssistantObject.practice)!=null&&Si.can_late)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}ui.target.checked&&It.default.warning({title:"\u5F00\u542F\u8865\u4EA4\u63D0\u793A",centered:!0,width:480,content:xt.createElement("div",{style:{padding:10,background:"#f5f6f9"}},xt.createElement("div",null,"1.\u5F00\u542F\u8865\u4EA4\u540E\u4E0D\u53EF\u5173\u95ED\uFF0C\u8865\u4EA4\u65B9\u5F0F\u63D0\u4EA4\u4FDD\u5B58\u540E\u4E0D\u53EF\u4FEE\u6539\uFF1B"),xt.createElement("div",null,"2.\u8865\u4EA4\u622A\u6B62\u65F6\u95F4\u5FC5\u987B\u665A\u4E8E\u4F5C\u4E1A\u622A\u6B62\u65F6\u95F4\uFF1B"),xt.createElement("div",null,"3.\u73ED\u7EA7\u9636\u6BB5\u8FDB\u5165\u201C\u8865\u4EA4\u4E2D\u201D\u5219\u4E0D\u53EF\u53D8\u66F4\u4F5C\u4E1A\u622A\u6B62\u65F6\u95F4\u3002"))}),Ai.allow_late=!Ai.allow_late,$n==""&&pi([{late_penalty:5}]),Cr(Object.assign({},Ai))}},xt.createElement("strong",null,"\u5F00\u542F\u8865\u4EA4")))),(Ai==null?void 0:Ai.allow_late)&&xt.createElement("div",{style:{background:"#F6F7F9",padding:"10px 30px",marginTop:"1px",color:"#666666"}},xt.createElement("div",{style:{display:"flex"}},xt.createElement("div",{style:{width:"110px",textAlign:"right"}},"\u8865\u4EA4\u65B9\u5F0F"),xt.createElement(dt.ZP.Group,{style:{marginLeft:"20px"},disabled:Wi||(Gn==null?void 0:Gn.anonymous_comment)||(Gn==null?void 0:Gn.allow_late),value:Ai.unified_late,onChange:ui=>{var Si;if((0,et.Rm)()&&!((Si=ni.AssistantObject.practice)!=null&&Si.can_late)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Ai.unified_late=ui.target.value,$n==""&&!ui.target.value&&pi([{penalty_type:ze.Q.Percent,late_penalty:20}]),Cr(Xn({},Ai))}},(Ai==null?void 0:Ai.unified_setting)&&xt.createElement(dt.ZP,{value:!0,disabled:!(Gn!=null&&Gn.manage_all_group),style:{marginRight:"50px"}},"\u7EDF\u4E00\u8865\u4EA4"),((mt=Gn==null?void 0:Gn.group_settings)==null?void 0:mt.length)>0&&xt.createElement(dt.ZP,{value:!1},"\u5206\u73ED\u8865\u4EA4"))),Ai!=null&&Ai.unified_late?xt.createElement(xt.Fragment,null,xt.createElement(Mt.Z,{align:"middle",style:{marginTop:"10px"}},xt.createElement(an.Z,{style:{width:"110px",textAlign:"right"}},"\u8865\u4EA4\u6263\u5206"),xt.createElement(an.Z,{className:"ml20"},xt.createElement(ze.Z,{disabled:Wi||ha,value:{type:Ai.penalty_type,inputValue:Ai.late_penalty},onChange:ui=>{var Si;if((0,et.Rm)()&&!((Si=ni.AssistantObject.practice)!=null&&Si.can_late)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Cr(In(Xn({},Ai),{late_penalty:ui.inputValue,penalty_type:ui.type}))}})),xt.createElement(an.Z,{flex:"1",className:"ml5"},xt.createElement("span",{className:"c-grey-c ml10"},Ai.penalty_type===ze.Q.Number?"(\u8865\u4EA4\u65F6\u6309\u7167\u5B66\u751F\u603B\u6210\u7EE9\u6263\u5206)":"(\u5B66\u751F\u6700\u7EC8\u5F97\u5206=\u8865\u4EA4\u524D\u5F97\u5206+\u8865\u4EA4\u9636\u6BB5\u589E\u52A0\u7684\u5206\u503C*\uFF08100%-\u767E\u5206\u6BD4%\uFF09)"))),xt.createElement(Mt.Z,{align:"middle",style:{marginTop:"15px"}},xt.createElement(an.Z,{style:{width:"110px",textAlign:"right"}},"\u8865\u4EA4\u622A\u6B62\u65F6\u95F4"),xt.createElement(an.Z,{className:"ml20"},xt.createElement(yt.default,{size:"large",allowClear:!1,style:{width:170},placeholder:"\u8BF7\u9009\u62E9\u622A\u6B62\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:on()((0,Ae.U6)(),"HH:mm")},format:"YYYY-MM-DD HH:mm",disabled:Wi||ha,value:Ai.late_time?on()(Ai.late_time):"",disabledDate:ui=>At(ui,Gn==null?void 0:Gn.course_end_date),onChange:(ui,Si)=>{var ms;if((0,et.Rm)()&&!((ms=ni.AssistantObject.practice)!=null&&ms.can_late)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}Ai.late_time=Si,Cr(Object.assign({},Ai))}})))):$n.map(function(ui,Si){var ms;return xt.createElement(an.Z,{span:24,key:Si},xt.createElement(Mt.Z,{style:{display:"flex",alignItems:"center",marginTop:"10px"}},xt.createElement("div",{style:{width:"85px",marginLeft:"27px",textAlign:"right"}},"\u8865\u4EA4\u89C4\u5219",Si+1),xt.createElement(Jt.default,{disabled:Wi||!((ms=Kn==null?void 0:Kn.homework_status)!=null&&ms.includes("\u672A\u53D1\u5E03"))&&ui.id||(Gn==null?void 0:Gn.anonymous_comment),mode:"multiple",className:Te.Z.multiple_select,style:{width:"212px",marginLeft:"18px"},value:typeof ui.group_name=="string"?[ui.group_name]:ui.group_name,placeholder:"\u8BF7\u9009\u62E9\u5206\u73ED\u540D\u79F0",onChange:Po=>{var Xr;if((0,et.Rm)()&&!((Xr=ni.AssistantObject.practice)!=null&&Xr.can_late)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}$n[Si].group_name=Po,$n[Si].group_id=ui.group_id,pi($n.slice())}},Gn.group_settings&&Gn.group_settings.map(function(Po){const Xr=$n.map(Hi=>Hi.group_name).flat(),si=lo.map(Hi=>Hi.group_name).flat();if(Ai!=null&&Ai.unified_setting){if(!Xr.includes(Po.group_name))return xt.createElement(En,{value:Po.group_name,key:Po.id},Po.group_name)}else if(si.includes(Po.group_name)&&!Xr.includes(Po.group_name))return xt.createElement(En,{value:Po.group_name,key:Po.id},Po.group_name)})),xt.createElement("div",{className:"ml20 mr10"},"\u8865\u4EA4\u6263\u5206"),xt.createElement(ze.Z,{disabled:Wi||Al(ui.id),value:{type:ui.penalty_type,inputValue:ui.late_penalty},onChange:Po=>{var Xr;if((0,et.Rm)()&&!((Xr=ni.AssistantObject.practice)!=null&&Xr.can_late)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}$n[Si].late_penalty=Po.inputValue,$n[Si].penalty_type=Po.type,pi([...$n])}}),xt.createElement("div",{className:"ml20 mr10"},"\u8865\u4EA4\u622A\u6B62\u65F6\u95F4"),xt.createElement(yt.default,{size:"large",disabled:Wi||Al(ui.id),style:{width:225},showTime:{format:"HH:mm",defaultValue:on()((0,Ae.U6)(),"HH:mm")},placeholder:"\u8BF7\u9009\u62E9\u622A\u6B62\u65F6\u95F4",disabledDate:Po=>At(Po,Gn==null?void 0:Gn.course_end_date),format:"YYYY-MM-DD HH:mm",value:ui!=null&&ui.late_time?on()(ui.late_time):void 0,onChange:(Po,Xr)=>{var si;if((0,et.Rm)()&&!((si=ni.AssistantObject.practice)!=null&&si.can_late)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}$n[Si].late_time=Xr,pi([...$n])}}),!Wi&&xt.createElement("div",{style:{display:"flex",width:"50px"}},xt.createElement("i",{className:"iconfont icon-zengjia1 ml10 mr10",style:{cursor:"pointer",color:"#00B187"},onClick:()=>{var Po;if((0,et.Rm)()&&!((Po=ni.AssistantObject.practice)!=null&&Po.can_late)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}pi($n.concat({penalty_type:ze.Q.Percent,late_penalty:20}))}}),Si>0&&!ui.id&&xt.createElement("i",{className:"iconfont icon-shanjian1",style:{cursor:"pointer",color:"#E30000"},onClick:()=>{var Po;if((0,et.Rm)()&&!((Po=ni.AssistantObject.practice)!=null&&Po.can_late)){Qt.ZP.warning("\u60A8\u672A\u83B7\u53D6\u6B64\u6743\u9650\uFF0C\u9700\u5411\u8BFE\u5802\u7BA1\u7406\u5458\u7533\u8BF7\u6743\u9650\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD");return}$n=$n.filter((Xr,si)=>Si!==si),pi($n.slice()),setTimeout(()=>pi($n.slice()),10)}}))))})),!Wi&&xt.createElement(xt.Fragment,null,xt.createElement(ln.ZP,{type:"primary",size:"large",loading:Uo,style:{width:"138px",marginTop:"30px"},onClick:()=>ss()},"\u4FDD\u5B58")),xt.createElement(lt.Z,{onConfirm:(ui,Si)=>{lo.splice(ui,0,...Si),lo.splice(ui+Si.length,1);const ms=(0,Ae.QE)([...lo]);Rn([...ms])}}),xt.createElement(Bt.Z,{resdata:zr,type:"shixun",okloading:Uo,oktext:(zr==null?void 0:zr.can_copy_num)===0?"\u786E\u5B9A":"\u4E00\u952E\u590D\u5236\u5E76\u66FF\u6362",onok:ui=>hi(void 0,null,function*(){Vr(!0);let Si=yield(0,ue.ZP)(`/api/courses/${An.coursesId}/batch_copy_shixuns.json`,{method:"post",body:{type:"homework_common",ids:[parseInt(An.categoryId)]}});Vr(!1),(Si==null?void 0:Si.status)===0&&Us(Wr)})}))};Ei.ZP=(0,Ie.connect)(({shixunHomeworks:Ln,classroomList:Mi,loading:Rt,user:ni})=>({shixunHomeworks:Ln,classroomList:Mi,loading:Rt.effects,user:ni}))(Mn)},73410:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return nt}});var Me=je(59301),yt=je(37568),Jt=je(62673),Qt=je(77019),It={leftdiv:"leftdiv___aBzsX",listClass:"listClass___bxIEW",spantitle:"spantitle___v_Vc4",rightdiv:"rightdiv___xWu4M"},dt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAbVJREFUOE+Nk79rFUEUhb+zE4OFwUD+CyGKKQQbSaMikQQ7C1tBBIsUQaJvl2Fn/cWDpAiIYJsi7YOIaCUWFoKKRhG0sbEzEImFGnev7G6yyXsxeU5159yZb87l3hG9q2WLiBO79FIwXpLp0s6cwITnQCMWrGDM43jdBckZQ0wTMdrong2R2Bxm0/98sZ8ozdcOEm5hjOC41u9Olc9ZQKySclOVkNhljCmCzjeAJM/4FbW5p+8k5tlggTtarfKxLSM6pHq4BTiL0SboaAOIi284jeP1nti+ApMEvdoEvEPMkOpJDZi1IwzwgqDh/wSsYZwk08ca4O0Qua3zW8OV5crmHg6u22EGbQ2nIbx+1IC6rrK+cYJW9gXEVrbxGUEj5bltQGJvgBapHu0LSGwCyEh1vBsQWwd4TNCDPg6uAOcImuoFlL1dJ9WNPg5uYwwRVM3MzhJmKIpjZK6e9bj4jNNpvL4QFx9wuoDXJ1r5IlH0llTtXgcXwa4SolObnYnwKnbFcfEcdJ+gpW6AtzFynuIop/Fn053u4CA5yzjO4FV9tu0Syl2S38WiSWBgD8AfoEPQ7Fb+LwIiyhxWwe2KAAAAAElFTkSuQmCC",Mt=je(28426),an=(ln,rn,on)=>new Promise((et,ue)=>{var ce=Te=>{try{Ae(on.next(Te))}catch(Ie){ue(Ie)}},Ce=Te=>{try{Ae(on.throw(Te))}catch(Ie){ue(Ie)}},Ae=Te=>Te.done?et(Te.value):Promise.resolve(Te.value).then(ce,Ce);Ae((on=on.apply(ln,rn)).next())}),nt=({data:ln,value:rn=[],handleChangePage:on,className:et="",setSelectedRowKeys:ue,selectedRowKeys:ce,onChange:Ce=()=>{}})=>{const[Ae,Te]=(0,Me.useState)([]),[Ie,ze]=(0,Me.useState)([]),[Ye,lt]=(0,Me.useState)([]);let[Bt,kt]=(0,Me.useState)(1),[xt,Et]=(0,Me.useState)();return(0,Me.useEffect)(()=>{Te(ln),ze([]),lt([])},[ln]),(0,Me.useEffect)(()=>{ue&&(ze(ce),lt(ce))},[ce]),Me.createElement("div",{className:`flex justify-between w-full ${et}`},Me.createElement("div",{className:It.leftdiv},Me.createElement(yt.default.Search,{size:"middle",style:{marginBottom:"10rem"},onChange:$t=>an(void 0,null,function*(){Te(ln.filter(Zt=>{var Yn;return(Yn=Zt==null?void 0:Zt.name)==null?void 0:Yn.includes($t.target.value)}))}),placeholder:"\u53EF\u8F93\u5165\u73ED\u7EA7\u540D\u79F0\u67E5\u8BE2"}),Ae.length===0&&Me.createElement(Mt.Z,{styles:{margin:"70rem auto"},customText:"\u6682\u65E0\u5206\u73ED"}),Me.createElement("div",{style:{height:"85%",overflow:"auto",overflowX:"hidden"}},Me.createElement(Jt.default.Group,{value:Ie.map($t=>`${$t.id}`),onChange:$t=>{ue(Ae.filter(Zt=>$t.includes(`${Zt.id}`)))},style:{marginTop:"10px",flexDirection:"column"}},Ae.map(($t,Zt)=>Me.createElement(Qt.Z,{key:$t.id,style:{marginTop:"10rem",lineHeight:"24rem",display:"flex",width:"200rem"}},Me.createElement(Jt.default,{style:{display:"flex",height:"24px",alignItems:"center"},disabled:$t.is_published,value:`${$t.id}`},Me.createElement("div",{className:It.listClass},Me.createElement("span",{className:It.spantitle,style:{width:$t.is_published?"108px":"170px"}},$t.name),$t.is_published&&Me.createElement("span",{style:{width:"52px",height:"24px",background:"#B8B8B8",borderRadius:"13px",color:"white",lineHeight:"24px",textAlign:"center",display:"inline-block"}},"\u5DF2\u53D1\u5E03")))))))),Me.createElement("div",{className:It.rightdiv},Me.createElement(yt.default.Search,{onChange:$t=>{lt(Ie.filter(Zt=>Zt.name.includes($t.target.value)))},size:"middle",placeholder:"\u53EF\u8F93\u5165\u73ED\u7EA7\u540D\u79F0\u67E5\u8BE2"}),Ye.length===0&&Me.createElement(Mt.Z,{imgStyles:{width:"200rem"},styles:{margin:"70rem auto"},customText:"\u6682\u672A\u9009\u62E9\u5206\u73ED"}),Ye.length>0&&Me.createElement("div",{style:{marginTop:"10px",height:"85%",overflow:"hidden",position:"relative"}},Me.createElement("div",{style:{overflowX:"hidden",overflowY:"scroll",position:"absolute",left:0,top:0,right:-17,bottom:0}},Ye.map(($t,Zt)=>Me.createElement("div",{className:"flex justify-between item-center",style:{marginTop:"10rem"},key:$t.id},Me.createElement("div",{className:"multi_ellipsis1 flex-1 minW-0",style:{margin:"0 5rem"}},$t.name),Me.createElement("img",{src:dt,className:"current",style:{height:"16rem",marginRight:"17rem"},onClick:()=>{ue(Ie.filter(Yn=>`${Yn.id}`!=`${$t.id}`))}})))))))}},59229:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return Ce}});var Me=je(59301),yt=je(25690),Jt=je(16326),Qt=je(62957),It=je(37568),dt=je(6767),Mt=je(77019),an=je(5269),qt={title_tooltip:"title_tooltip___LLdrn",multiple_select:"multiple_select___kDXUm",modal_con:"modal_con___ERnkW"},nt=je(61186),ln=je.n(nt),rn=je(51257),on=je(28426),et=je(59301);const{RangePicker:ue}=Jt.default,ce=({dispatch:Ae,classroomList:Te,onConfirm:Ie})=>{const[ze,Ye]=(0,Me.useState)([]),[lt,Bt]=(0,Me.useState)([]),[kt,xt]=(0,Me.useState)(""),[Et,$t]=(0,Me.useState)([!1,!1]);(0,Me.useEffect)(()=>{var gn,Jn,ci,Xn;if(Te.actionTabs.key==="\u5206\u73ED\u53D1\u5E03-\u53D1\u5E03\u89C4\u5219\u62C6\u5206"){console.log((gn=Te.actionTabs)==null?void 0:gn.rangePickerDisabled),(Jn=Te.actionTabs)!=null&&Jn.rangePickerDisabled?$t((ci=Te.actionTabs)==null?void 0:ci.rangePickerDisabled):$t([!1,!1]);let In=Te.actionTabs.data,hi=(Xn=In==null?void 0:In.group_name)==null?void 0:Xn.map((Ht,At)=>{var Hn;return{group_id:In==null?void 0:In.group_id[At],group_name:In==null?void 0:In.group_name[At],is_admin:In==null?void 0:In.is_admin,end_time:In==null?void 0:In.end_time,publish_time:Array.isArray(In==null?void 0:In.publish_time)?(Hn=In==null?void 0:In.publish_time)==null?void 0:Hn[0]:In==null?void 0:In.publish_time}});hi&&(Ye([...hi]),Bt([...hi]))}},[Te.actionTabs]);const Zt=()=>{Ae({type:"classroomList/setActionTabs",payload:{}}),xt("")},Yn=gn=>{if(gn){const Jn=lt==null?void 0:lt.filter(ci=>{var Xn,In;return(In=(Xn=ci==null?void 0:ci.group_name)==null?void 0:Xn.toLowerCase())==null?void 0:In.includes(gn==null?void 0:gn.toLowerCase())});Ye(Jn)}else Ye(lt)};return et.createElement(Qt.default,{width:980,title:et.createElement("div",{style:{fontWeight:"bold",display:"flex"}},et.createElement("div",null,"\u5206\u73ED\u53D1\u5E03-\u53D1\u5E03\u89C4\u5219\u62C6\u5206",et.createElement("span",{className:qt.title_tooltip},"\uFF08\u5F53\u5206\u73ED\u53D1\u5E03\u65F6\u95F4\u548C\u622A\u6B62\u65F6\u95F4\u4E0D\u76F8\u540C\u65F6\u5019\uFF0C\u73ED\u7EA7\u81EA\u52A8\u62C6\u5206\u51FA\u53BB\u65B0\u8D77\u89C4\u5219\uFF09")),et.createElement(It.default.Search,{allowClear:!0,placeholder:"\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u8FDB\u884C\u641C\u7D22",style:{width:220,marginLeft:"60px"},value:kt,onChange:gn=>{xt(gn.target.value.trim()),Yn(gn.target.value.trim())}})),centered:!0,maskClosable:!1,open:Te.actionTabs.key==="\u5206\u73ED\u53D1\u5E03-\u53D1\u5E03\u89C4\u5219\u62C6\u5206",onCancel:()=>Zt(),onOk:()=>{var gn;if(lt.some(ci=>!ci.end_time||!ci.publish_time)){dt.ZP.warning("\u8BF7\u5C06\u5217\u8868\u6570\u636E\u4E2D\u7684\u53D1\u5E03\u65F6\u95F4\u548C\u622A\u6B62\u65F6\u95F4\u8865\u5145\u5B8C\u6574\uFF01");return}Ie((gn=Te.actionTabs)==null?void 0:gn.index,lt),Zt()}},et.createElement("div",{className:qt.modal_con},et.createElement(Mt.Z,{style:{display:"flex",color:"#666666",padding:"5px",marginTop:"1px"}},(ze==null?void 0:ze.length)>0?ze.map(function(gn,Jn){return et.createElement(an.Z,{span:24,key:Jn},et.createElement(Mt.Z,{gutter:[8,16],style:{display:"flex",alignItems:"center",marginBottom:Jn==(ze==null?void 0:ze.length)-1?"0px":"10px"}},et.createElement("div",{className:qt.multiple_select,title:gn==null?void 0:gn.group_name},gn==null?void 0:gn.group_name),et.createElement("div",{className:"ml20"},et.createElement(ue,{size:"large",allowClear:!1,disabled:Et,style:{width:600},placeholder:["\u53D1\u5E03\u65F6\u95F4\uFF08\u5B66\u751F\u6536\u5230\u4F5C\u4E1A\u65F6\u95F4\uFF09","\u622A\u6B62\u65F6\u95F4\uFF08\u5B66\u751F\u201C\u6309\u65F6\u201D\u63D0\u4EA4\u4F5C\u54C1\u65F6\u95F4\u622A\u70B9\uFF09"],disabledDate:ci=>{var Xn;return(0,rn.Q8)(ci,(Xn=Te.actionTabs)==null?void 0:Xn.disabledDate)},disabledTime:ci=>(0,rn.d0)(ci),showTime:{showNow:!0,format:"HH:mm",defaultValue:[ln()((0,rn.U6)(),"HH:mm"),ln()((0,rn.U6)(),"HH:mm")]},format:"YYYY-MM-DD HH:mm",value:(gn==null?void 0:gn.publish_time)&&[ln()(gn==null?void 0:gn.publish_time),gn!=null&&gn.end_time?ln()(gn==null?void 0:gn.end_time):void 0],onChange:(ci,Xn)=>{ze[Jn].publish_time=Xn[0],ze[Jn].end_time=Xn[1],Ye([...ze]),lt.forEach(In=>{In.group_id===(gn==null?void 0:gn.group_id)&&(In.publish_time=Xn[0],In.end_time=Xn[1])}),Bt([...lt])},onCalendarChange:(ci,Xn,In)=>{if(Xn!=null&&Xn[0]&&!Xn[1]){const hi=ln()(Xn[0]).add(7,"days");ze[Jn].publish_time=Xn[0],ze[Jn].end_time=hi,Ye([...ze]),lt.forEach(Ht=>{Ht.group_id===(gn==null?void 0:gn.group_id)&&(Ht.publish_time=Xn[0],Ht.end_time=hi)}),Bt([...lt])}}})),Et[0]?et.createElement("i",{className:"iconfont icon-shanjian1 ml15",style:{color:"#E30000",opacity:"0.2",cursor:"not-allowed"}}):et.createElement("i",{className:"iconfont icon-shanjian1 ml15",style:{cursor:"pointer",color:"#E30000"},onClick:()=>{ze.splice(Jn,1),Ye([...ze]),lt.forEach((ci,Xn)=>{ci.group_id===(gn==null?void 0:gn.group_id)&<.splice(Xn,1)}),Bt([...lt])}})))}):et.createElement(on.Z,null))))};var Ce=(0,yt.connect)(({classroomList:Ae})=>({classroomList:Ae}))(ce)},81187:function(Cn,Ei,je){"use strict";je.r(Ei),je.d(Ei,{NoData:function(){return Tt},default:function(){return qe}});var Me=je(59301),yt=je(99571),Jt=je(62957),Qt="data:image/png;base64,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",It=je(38986);function dt(){return(0,It.U2)("teach_groups.json")}function Mt(mt){return(0,It.v_)("teach_groups.json",mt)}function an(mt,An){return(0,It.gz)(`teach_groups/${mt}.json`,An)}function qt(mt){return(0,It.v_)("teach_group_members.json",mt)}function nt(mt){return(0,It.IV)(`teach_group_members/${mt}.json`)}function ln(mt,An){return(0,It.gz)(`teach_groups/${mt}/change_admin.json`,{member_id:An})}function rn(mt,An){return(0,It.IV)(`teach_groups/${mt}/del_member.json`,{member_id:An})}function on(mt){return(0,It.IV)(`teach_groups/${mt}.json`)}function et(mt){return(0,It.U2)(`teach_groups/${mt}/show_permission.json`)}function ue(mt){return(0,It.gz)(`teach_groups/${mt==null?void 0:mt.id}/update_permission.json`,mt)}var ce=je(28284),Ce=je(37568),Ae=je(3878),Te=({callback:mt,visible:An,onCancel:Gn,id:fo,name:qn})=>{function Kn(Wi){mt(Wi)}const[oi]=ce.default.useForm();return(0,Me.useEffect)(()=>{oi.setFieldsValue({name:qn})},[qn]),Me.createElement(Jt.default,{centered:!0,title:fo?"\u4FEE\u6539\u540D\u79F0":"\u65B0\u5EFA",open:An,onCancel:Gn,onOk:()=>{oi.submit()},wrapClassName:Ae.Z.CustomCss},Me.createElement(ce.default,{form:oi,initialValues:{name:qn},onFinish:Kn},Me.createElement(ce.default.Item,{label:"\u6559\u7814\u56E2\u961F\u540D\u79F0",name:"name",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u4E0D\u8D85\u8FC720\u5B57\u7684\u540D\u79F0"}]},Me.createElement(Ce.default,{placeholder:"\u8BF7\u8F93\u5165\u4E0D\u8D85\u8FC720\u5B57\u7684\u540D\u79F0",maxLength:20}))))},Ie=je(62673),ze=je(75727),Ye=je(93041),lt=je(54172),Bt=je(6767),kt=je(47889),xt=Object.defineProperty,Et=Object.getOwnPropertySymbols,$t=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable,Yn=(mt,An,Gn)=>An in mt?xt(mt,An,{enumerable:!0,configurable:!0,writable:!0,value:Gn}):mt[An]=Gn,gn=(mt,An)=>{for(var Gn in An||(An={}))$t.call(An,Gn)&&Yn(mt,Gn,An[Gn]);if(Et)for(var Gn of Et(An))Zt.call(An,Gn)&&Yn(mt,Gn,An[Gn]);return mt};const Jn=mt=>React.createElement("svg",gn({className:"cjz_svg__icon",viewBox:"0 0 3194 1024",xmlns:"http://www.w3.org/2000/svg",width:623.828,height:200},mt),React.createElement("path",{d:"M512 0h2170.88c282.624 0 512 229.376 512 512s-229.376 512-512 512H512C229.376 1024 0 794.624 0 512S229.376 0 512 0z",fill:"#EBEEFD"}),React.createElement("path",{d:"M1638.4 741.376c28.672 0 40.96-16.384 40.96-45.056V294.912h-36.864v393.216c0 16.384-8.192 20.48-20.48 20.48-24.576 0-45.056 0-73.728-4.096l8.192 32.768h81.92zm-372.736-258.048c49.152-45.056 90.112-94.208 126.976-147.456 32.768 32.768 69.632 77.824 110.592 135.168l24.576-24.576c-40.96-49.152-81.92-98.304-122.88-143.36h-24.576c-40.96 57.344-81.92 110.592-131.072 155.648l16.384 24.576zm323.584 159.744V339.968h-32.768v307.2h32.768zm-131.072 94.208c24.576 0 36.864-4.096 45.056-12.288s16.384-36.864 20.48-77.824l-32.768-12.288c0 28.672-4.096 45.056-8.192 53.248s-16.384 12.288-32.768 12.288h-98.304c-12.288 0-20.48-4.096-20.48-16.384v-204.8h106.496v94.208c0 12.288-8.192 20.48-20.48 20.48-16.384 0-32.768 0-49.152-4.096l8.192 32.768h53.248c28.672 0 40.96-16.384 40.96-40.96V450.56h-176.128v245.76c0 24.576 12.288 36.864 40.96 36.864h122.88zm585.728-53.248V634.88h131.072v-28.672h-131.072v-40.96h114.688v-28.672h-114.688v-40.96H2150.4v-69.632h32.768v-28.672H2150.4V327.68h-106.496v-32.768h-32.768v32.768h-86.016v28.672h86.016v36.864h-110.592v28.672h110.592v40.96h-86.016v28.672h86.016v40.96h-98.304v28.672h98.304v40.96h-110.592v28.672h110.592v49.152h32.768zm-270.336 57.344c24.576-16.384 40.96-36.864 57.344-61.44 4.096 4.096 12.288 8.192 16.384 12.288 36.864 24.576 102.4 36.864 188.416 36.864h147.456l4.096-32.768c-57.344 0-110.592 4.096-167.936 4.096-65.536 0-118.784-12.288-151.552-28.672-8.192-4.096-16.384-12.288-24.576-20.48 24.576-45.056 36.864-98.304 36.864-163.84v-20.48h-77.824c24.576-32.768 49.152-73.728 73.728-118.784v-28.672H1761.28v32.768h81.92c-24.576 40.96-49.152 81.92-77.824 118.784v28.672h90.112c-4.096 45.056-12.288 86.016-28.672 122.88-12.288-20.48-24.576-49.152-32.768-86.016l-32.768 12.288c12.288 40.96 28.672 77.824 45.056 106.496-16.384 24.576-36.864 40.96-57.344 57.344l24.576 28.672zm339.968-344.064h-69.632v-36.864h69.632v36.864zm0 69.632h-69.632v-40.96h69.632v40.96zm253.952 278.528v-20.48h212.992v20.48h36.864V524.288h-184.32c28.672-12.288 53.248-24.576 77.824-40.96l20.48-12.288h151.552v-32.768h-106.496c32.768-24.576 65.536-57.344 94.208-90.112l-32.768-20.48c-36.864 40.96-73.728 77.824-122.88 110.592h-61.44v-61.44h114.688v-32.768h-114.688v-49.152h-36.864v53.248h-135.168v32.768h135.168v57.344h-180.224v32.768h225.28c-69.632 40.96-147.456 69.632-229.376 90.112l16.384 32.768c28.672-8.192 57.344-20.48 81.92-28.672v180.224h36.864zm212.992-139.264h-212.992v-49.152h212.992v49.152zm0 86.016h-212.992v-53.248h212.992v53.248z",fill:"#165DFF"}),React.createElement("path",{d:"M573.44 204.8h327.68c90.112 0 163.84 73.728 163.84 163.84v327.68c0 90.112-73.728 163.84-163.84 163.84H573.44c-90.112 0-163.84-73.728-163.84-163.84V368.64c0-90.112 73.728-163.84 163.84-163.84z",fill:"#C2D0FF"}),React.createElement("path",{d:"M868.352 581.632c4.096 24.576 12.288 49.152 16.384 69.632 0 8.192 4.096 16.384 4.096 24.576s4.096 16.384 4.096 24.576 4.096 12.288 4.096 16.384v8.192c0 8.192 0 12.288-4.096 12.288-4.096 4.096-8.192 4.096-12.288 4.096h-8.192c-4.096 0-4.096 0-8.192-4.096L737.28 667.648c-24.576 12.288-45.056 24.576-61.44 36.864L651.264 716.8c-8.192 4.096-16.384 8.192-20.48 12.288-8.192 4.096-16.384 8.192-20.48 12.288s-8.192 4.096-8.192 4.096c-4.096 0-8.192 4.096-8.192 0-4.096 0-8.192 0-8.192-4.096-4.096 0-4.096-4.096-4.096-8.192v-8.192s0-4.096 4.096-8.192c0-4.096 4.096-12.288 4.096-16.384 0-8.192 4.096-16.384 4.096-24.576s4.096-16.384 8.192-24.576c4.096-20.48 12.288-45.056 16.384-69.632-24.576-16.384-45.056-28.672-57.344-45.056-8.192-4.096-16.384-8.192-20.48-16.384s-12.288-8.192-16.384-12.288S512 499.712 512 495.616c-4.096-4.096-8.192-4.096-8.192-4.096-4.096-4.096-4.096-8.192-8.192-12.288s-4.096-8.192-4.096-12.288 4.096-8.192 4.096-12.288c4.096 0 8.192-4.096 12.288-4.096l151.552-12.288L716.8 307.2c0-4.096 4.096-8.192 8.192-12.288 0-8.192 8.192-8.192 12.288-8.192s4.096 0 8.192 4.096c4.096 0 4.096 4.096 4.096 4.096l4.096 4.096s0 4.096 4.096 4.096l53.248 131.072 155.648 16.384c8.192 0 12.288 4.096 12.288 4.096 4.096 4.096 4.096 8.192 4.096 12.288s0 8.192-4.096 12.288l-12.288 12.288-98.304 90.112z",fill:"#2E5BEC"}));var ci="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDMxOTQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNjIzLjgyOCIgaGVpZ2h0PSIyMDAiPjxwYXRoIGQ9Ik01MTIgMGgyMTcwLjg4YzI4Mi42MjQgMCA1MTIgMjI5LjM3NiA1MTIgNTEycy0yMjkuMzc2IDUxMi01MTIgNTEySDUxMkMyMjkuMzc2IDEwMjQgMCA3OTQuNjI0IDAgNTEyUzIyOS4zNzYgMCA1MTIgMHoiIGZpbGw9IiNFQkVFRkQiLz48cGF0aCBkPSJNMTYzOC40IDc0MS4zNzZjMjguNjcyIDAgNDAuOTYtMTYuMzg0IDQwLjk2LTQ1LjA1NlYyOTQuOTEyaC0zNi44NjR2MzkzLjIxNmMwIDE2LjM4NC04LjE5MiAyMC40OC0yMC40OCAyMC40OC0yNC41NzYgMC00NS4wNTYgMC03My43MjgtNC4wOTZsOC4xOTIgMzIuNzY4aDgxLjkyem0tMzcyLjczNi0yNTguMDQ4YzQ5LjE1Mi00NS4wNTYgOTAuMTEyLTk0LjIwOCAxMjYuOTc2LTE0Ny40NTYgMzIuNzY4IDMyLjc2OCA2OS42MzIgNzcuODI0IDExMC41OTIgMTM1LjE2OGwyNC41NzYtMjQuNTc2Yy00MC45Ni00OS4xNTItODEuOTItOTguMzA0LTEyMi44OC0xNDMuMzZoLTI0LjU3NmMtNDAuOTYgNTcuMzQ0LTgxLjkyIDExMC41OTItMTMxLjA3MiAxNTUuNjQ4bDE2LjM4NCAyNC41NzZ6bTMyMy41ODQgMTU5Ljc0NFYzMzkuOTY4aC0zMi43Njh2MzA3LjJoMzIuNzY4em0tMTMxLjA3MiA5NC4yMDhjMjQuNTc2IDAgMzYuODY0LTQuMDk2IDQ1LjA1Ni0xMi4yODhzMTYuMzg0LTM2Ljg2NCAyMC40OC03Ny44MjRsLTMyLjc2OC0xMi4yODhjMCAyOC42NzItNC4wOTYgNDUuMDU2LTguMTkyIDUzLjI0OHMtMTYuMzg0IDEyLjI4OC0zMi43NjggMTIuMjg4aC05OC4zMDRjLTEyLjI4OCAwLTIwLjQ4LTQuMDk2LTIwLjQ4LTE2LjM4NHYtMjA0LjhoMTA2LjQ5NnY5NC4yMDhjMCAxMi4yODgtOC4xOTIgMjAuNDgtMjAuNDggMjAuNDgtMTYuMzg0IDAtMzIuNzY4IDAtNDkuMTUyLTQuMDk2bDguMTkyIDMyLjc2OGg1My4yNDhjMjguNjcyIDAgNDAuOTYtMTYuMzg0IDQwLjk2LTQwLjk2VjQ1MC41NmgtMTc2LjEyOHYyNDUuNzZjMCAyNC41NzYgMTIuMjg4IDM2Ljg2NCA0MC45NiAzNi44NjRoMTIyLjg4em01ODUuNzI4LTUzLjI0OFY2MzQuODhoMTMxLjA3MnYtMjguNjcyaC0xMzEuMDcydi00MC45NmgxMTQuNjg4di0yOC42NzJoLTExNC42ODh2LTQwLjk2SDIxNTAuNHYtNjkuNjMyaDMyLjc2OHYtMjguNjcySDIxNTAuNFYzMjcuNjhoLTEwNi40OTZ2LTMyLjc2OGgtMzIuNzY4djMyLjc2OGgtODYuMDE2djI4LjY3Mmg4Ni4wMTZ2MzYuODY0aC0xMTAuNTkydjI4LjY3MmgxMTAuNTkydjQwLjk2aC04Ni4wMTZ2MjguNjcyaDg2LjAxNnY0MC45NmgtOTguMzA0djI4LjY3Mmg5OC4zMDR2NDAuOTZoLTExMC41OTJ2MjguNjcyaDExMC41OTJ2NDkuMTUyaDMyLjc2OHptLTI3MC4zMzYgNTcuMzQ0YzI0LjU3Ni0xNi4zODQgNDAuOTYtMzYuODY0IDU3LjM0NC02MS40NCA0LjA5NiA0LjA5NiAxMi4yODggOC4xOTIgMTYuMzg0IDEyLjI4OCAzNi44NjQgMjQuNTc2IDEwMi40IDM2Ljg2NCAxODguNDE2IDM2Ljg2NGgxNDcuNDU2bDQuMDk2LTMyLjc2OGMtNTcuMzQ0IDAtMTEwLjU5MiA0LjA5Ni0xNjcuOTM2IDQuMDk2LTY1LjUzNiAwLTExOC43ODQtMTIuMjg4LTE1MS41NTItMjguNjcyLTguMTkyLTQuMDk2LTE2LjM4NC0xMi4yODgtMjQuNTc2LTIwLjQ4IDI0LjU3Ni00NS4wNTYgMzYuODY0LTk4LjMwNCAzNi44NjQtMTYzLjg0di0yMC40OGgtNzcuODI0YzI0LjU3Ni0zMi43NjggNDkuMTUyLTczLjcyOCA3My43MjgtMTE4Ljc4NHYtMjguNjcySDE3NjEuMjh2MzIuNzY4aDgxLjkyYy0yNC41NzYgNDAuOTYtNDkuMTUyIDgxLjkyLTc3LjgyNCAxMTguNzg0djI4LjY3Mmg5MC4xMTJjLTQuMDk2IDQ1LjA1Ni0xMi4yODggODYuMDE2LTI4LjY3MiAxMjIuODgtMTIuMjg4LTIwLjQ4LTI0LjU3Ni00OS4xNTItMzIuNzY4LTg2LjAxNmwtMzIuNzY4IDEyLjI4OGMxMi4yODggNDAuOTYgMjguNjcyIDc3LjgyNCA0NS4wNTYgMTA2LjQ5Ni0xNi4zODQgMjQuNTc2LTM2Ljg2NCA0MC45Ni01Ny4zNDQgNTcuMzQ0bDI0LjU3NiAyOC42NzJ6bTMzOS45NjgtMzQ0LjA2NGgtNjkuNjMydi0zNi44NjRoNjkuNjMydjM2Ljg2NHptMCA2OS42MzJoLTY5LjYzMnYtNDAuOTZoNjkuNjMydjQwLjk2em0yNTMuOTUyIDI3OC41Mjh2LTIwLjQ4aDIxMi45OTJ2MjAuNDhoMzYuODY0VjUyNC4yODhoLTE4NC4zMmMyOC42NzItMTIuMjg4IDUzLjI0OC0yNC41NzYgNzcuODI0LTQwLjk2bDIwLjQ4LTEyLjI4OGgxNTEuNTUydi0zMi43NjhoLTEwNi40OTZjMzIuNzY4LTI0LjU3NiA2NS41MzYtNTcuMzQ0IDk0LjIwOC05MC4xMTJsLTMyLjc2OC0yMC40OGMtMzYuODY0IDQwLjk2LTczLjcyOCA3Ny44MjQtMTIyLjg4IDExMC41OTJoLTYxLjQ0di02MS40NGgxMTQuNjg4di0zMi43NjhoLTExNC42ODh2LTQ5LjE1MmgtMzYuODY0djUzLjI0OGgtMTM1LjE2OHYzMi43NjhoMTM1LjE2OHY1Ny4zNDRoLTE4MC4yMjR2MzIuNzY4aDIyNS4yOGMtNjkuNjMyIDQwLjk2LTE0Ny40NTYgNjkuNjMyLTIyOS4zNzYgOTAuMTEybDE2LjM4NCAzMi43NjhjMjguNjcyLTguMTkyIDU3LjM0NC0yMC40OCA4MS45Mi0yOC42NzJ2MTgwLjIyNGgzNi44NjR6bTIxMi45OTItMTM5LjI2NGgtMjEyLjk5MnYtNDkuMTUyaDIxMi45OTJ2NDkuMTUyem0wIDg2LjAxNmgtMjEyLjk5MnYtNTMuMjQ4aDIxMi45OTJ2NTMuMjQ4eiIgZmlsbD0iIzE2NURGRiIvPjxwYXRoIGQ9Ik01NzMuNDQgMjA0LjhoMzI3LjY4YzkwLjExMiAwIDE2My44NCA3My43MjggMTYzLjg0IDE2My44NHYzMjcuNjhjMCA5MC4xMTItNzMuNzI4IDE2My44NC0xNjMuODQgMTYzLjg0SDU3My40NGMtOTAuMTEyIDAtMTYzLjg0LTczLjcyOC0xNjMuODQtMTYzLjg0VjM2OC42NGMwLTkwLjExMiA3My43MjgtMTYzLjg0IDE2My44NC0xNjMuODR6IiBmaWxsPSIjQzJEMEZGIi8+PHBhdGggZD0iTTg2OC4zNTIgNTgxLjYzMmM0LjA5NiAyNC41NzYgMTIuMjg4IDQ5LjE1MiAxNi4zODQgNjkuNjMyIDAgOC4xOTIgNC4wOTYgMTYuMzg0IDQuMDk2IDI0LjU3NnM0LjA5NiAxNi4zODQgNC4wOTYgMjQuNTc2IDQuMDk2IDEyLjI4OCA0LjA5NiAxNi4zODR2OC4xOTJjMCA4LjE5MiAwIDEyLjI4OC00LjA5NiAxMi4yODgtNC4wOTYgNC4wOTYtOC4xOTIgNC4wOTYtMTIuMjg4IDQuMDk2aC04LjE5MmMtNC4wOTYgMC00LjA5NiAwLTguMTkyLTQuMDk2TDczNy4yOCA2NjcuNjQ4Yy0yNC41NzYgMTIuMjg4LTQ1LjA1NiAyNC41NzYtNjEuNDQgMzYuODY0TDY1MS4yNjQgNzE2LjhjLTguMTkyIDQuMDk2LTE2LjM4NCA4LjE5Mi0yMC40OCAxMi4yODgtOC4xOTIgNC4wOTYtMTYuMzg0IDguMTkyLTIwLjQ4IDEyLjI4OHMtOC4xOTIgNC4wOTYtOC4xOTIgNC4wOTZjLTQuMDk2IDAtOC4xOTIgNC4wOTYtOC4xOTIgMC00LjA5NiAwLTguMTkyIDAtOC4xOTItNC4wOTYtNC4wOTYgMC00LjA5Ni00LjA5Ni00LjA5Ni04LjE5MnYtOC4xOTJzMC00LjA5NiA0LjA5Ni04LjE5MmMwLTQuMDk2IDQuMDk2LTEyLjI4OCA0LjA5Ni0xNi4zODQgMC04LjE5MiA0LjA5Ni0xNi4zODQgNC4wOTYtMjQuNTc2czQuMDk2LTE2LjM4NCA4LjE5Mi0yNC41NzZjNC4wOTYtMjAuNDggMTIuMjg4LTQ1LjA1NiAxNi4zODQtNjkuNjMyLTI0LjU3Ni0xNi4zODQtNDUuMDU2LTI4LjY3Mi01Ny4zNDQtNDUuMDU2LTguMTkyLTQuMDk2LTE2LjM4NC04LjE5Mi0yMC40OC0xNi4zODRzLTEyLjI4OC04LjE5Mi0xNi4zODQtMTIuMjg4UzUxMiA0OTkuNzEyIDUxMiA0OTUuNjE2Yy00LjA5Ni00LjA5Ni04LjE5Mi00LjA5Ni04LjE5Mi00LjA5Ni00LjA5Ni00LjA5Ni00LjA5Ni04LjE5Mi04LjE5Mi0xMi4yODhzLTQuMDk2LTguMTkyLTQuMDk2LTEyLjI4OCA0LjA5Ni04LjE5MiA0LjA5Ni0xMi4yODhjNC4wOTYgMCA4LjE5Mi00LjA5NiAxMi4yODgtNC4wOTZsMTUxLjU1Mi0xMi4yODhMNzE2LjggMzA3LjJjMC00LjA5NiA0LjA5Ni04LjE5MiA4LjE5Mi0xMi4yODggMC04LjE5MiA4LjE5Mi04LjE5MiAxMi4yODgtOC4xOTJzNC4wOTYgMCA4LjE5MiA0LjA5NmM0LjA5NiAwIDQuMDk2IDQuMDk2IDQuMDk2IDQuMDk2bDQuMDk2IDQuMDk2czAgNC4wOTYgNC4wOTYgNC4wOTZsNTMuMjQ4IDEzMS4wNzIgMTU1LjY0OCAxNi4zODRjOC4xOTIgMCAxMi4yODggNC4wOTYgMTIuMjg4IDQuMDk2IDQuMDk2IDQuMDk2IDQuMDk2IDguMTkyIDQuMDk2IDEyLjI4OHMwIDguMTkyLTQuMDk2IDEyLjI4OGwtMTIuMjg4IDEyLjI4OC05OC4zMDQgOTAuMTEyeiIgZmlsbD0iIzJFNUJFQyIvPjwvc3ZnPg==",Xn=je(9148),In=(mt,An,Gn)=>new Promise((fo,qn)=>{var Kn=Nr=>{try{Wi(Gn.next(Nr))}catch(Uo){qn(Uo)}},oi=Nr=>{try{Wi(Gn.throw(Nr))}catch(Uo){qn(Uo)}},Wi=Nr=>Nr.done?fo(Nr.value):Promise.resolve(Nr.value).then(Kn,oi);Wi((Gn=Gn.apply(mt,An)).next())});const hi=50;var Ht=({data:mt,isAdminOrTeacher:An,onDelGroup:Gn,onChangeGroupName:fo,onPlusMember:qn,onDelMember:Kn,onExitGroup:oi,Transferteams:Wi})=>{var Nr,Uo;const[Vr,lo]=(0,Me.useState)(0),[Rn,$n]=(0,Me.useState)(0);let[pi,Ai]=(0,Me.useState)(),[Cr,zr]=(0,Me.useState)(),[ao,Wr]=(0,Me.useState)(!1),[Or,ir]=(0,Me.useState)(),[ss,Us]=(0,Me.useState)(),[as,ls]=(0,Me.useState)(!1),[La,Fs]=(0,Me.useState)(!1),[ha,Al]=(0,Me.useState)("");function We(or){let Fn=parseInt(or.key,10);Al(Fn),Fs(!0)}function ui(or){let Fn=parseInt(or.key,10);Jt.default.confirm({title:"\u9000\u51FA\u63D0\u793A",okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",content:"\u9000\u51FA\u5C06\u5BF9\u60A8\u4E0E\u7EC4\u5185\u6210\u5458\u5171\u540C\u5F00\u5C55\u6559\u7814\u6D3B\u52A8\u9020\u6210\u4E0D\u4FBF\u3002\u60A8\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",onOk:()=>{oi(Fn)}})}function Si(or){let Fn=parseInt(or,10);Jt.default.confirm({title:"\u9000\u51FA\u63D0\u793A",okText:"\u786E\u5B9A",icon:!1,className:Ae.Z.CustomTipsModalCss,cancelText:"\u53D6\u6D88",content:"\u9000\u51FA\u5C06\u5BF9\u60A8\u4E0E\u7EC4\u5185\u6210\u5458\u5171\u540C\u5F00\u5C55\u6559\u7814\u6D3B\u52A8\u9020\u6210\u4E0D\u4FBF\u3002\u60A8\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",onOk:()=>{oi(Fn)}})}function ms(or,Fn){Jt.default.confirm({title:"\u6E29\u99A8\u63D0\u793A",content:"\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u7EC4\u5458\u5417?",icon:!1,className:Ae.Z.CustomTipsModalCss,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",onOk:()=>{Kn(or,Fn)}})}const Po={display:"block",height:"30px",lineHeight:"30px"};function Xr(or){Us(or),ir(or==null?void 0:or.id),ls(!0)}const si=[{title:"\u6210\u5458\u540D\u79F0",dataIndex:"name",width:150},{title:"\u4F7F\u7528\u5171\u4EAB\u8BD5\u9898",dataIndex:"item_bank",align:"center",width:150,render:(or,Fn,vn)=>Me.createElement(Ie.default,{disabled:Fn==null?void 0:Fn.is_creator,defaultChecked:or,onChange:pn=>{ue({id:Or,member_id:Fn.id,clazz:"item_bank",enable:pn.target.checked})}})},{title:"\u7F16\u8F91\u5171\u4EAB\u8BD5\u9898",dataIndex:"edit_item_bank",align:"center",width:150,render:(or,Fn,vn)=>Me.createElement(Ie.default,{disabled:Fn==null?void 0:Fn.is_creator,defaultChecked:or,onChange:pn=>{ue({id:Or,member_id:Fn.id,clazz:"edit_item_bank",enable:pn.target.checked})}})},{title:"\u4F7F\u7528\u5171\u4EAB\u8BD5\u5377",dataIndex:"exercise",align:"center",render:(or,Fn,vn)=>Me.createElement(Ie.default,{disabled:Fn==null?void 0:Fn.is_creator,defaultChecked:or,onChange:pn=>{ue({id:Or,member_id:Fn.id,clazz:"exercise",enable:pn.target.checked})}})}];function Hi(or){return In(this,null,function*(){const Fn=yield et(or==null?void 0:or.id);ir(or==null?void 0:or.id),zr(Fn),Wr(!0)})}return Me.createElement("ul",{className:"teaching-lists"},mt.map((or,Fn)=>Me.createElement("li",{key:or.id,style:{marginTop:Fn===0?30:16},onClick:()=>lo(Fn)},Me.createElement("div",{className:"item-group"},Me.createElement("span",{style:{color:"#000000",fontSize:16,fontWeight:600}},or.name,"\u7684\u6559\u7814\u56E2\u961F"),Me.createElement("div",{className:"action-group"})),Me.createElement("div",{style:{display:"flex"}},Me.createElement("span",{style:{marginTop:29,marginLeft:24,color:"#5F6367"}},"\u56E2\u961F\u6210\u5458\uFF1A"),Me.createElement("ul",{className:"info",style:{flex:1}},or.memers.map(vn=>{var pn;return Me.createElement("li",{key:vn.id||vn.name,onClick:()=>{$n(vn.id)},className:"directionItemWrap"},Me.createElement("div",{className:"hovename",style:{display:"flex",alignItems:"center",justifyContent:"center",fontWeight:400,fontSize:14,color:vn!=null&&vn.is_creater?"#000000":"#5F6367"}},((pn=vn.name)==null?void 0:pn.length)>6?vn.name.substr(0,6)+"....":vn.name,Me.createElement("img",{src:ci,style:{marginLeft:5,display:!(vn!=null&&vn.is_creater)&&"none",height:25,width:78}})),or.is_creat?Me.createElement("div",{className:"groupActionWrap",style:{display:!(vn!=null&&vn.id)&&"none"}},Me.createElement("a",{className:"btn-del",onClick:Ur=>{Ur.preventDefault(),Ur.stopPropagation(),ms(or.id,vn.id)}},"x")):null)})),or.is_creat||An?Me.createElement(ze.Z,{overlayClassName:"dropdowns",dropdownRender:()=>Me.createElement(Ye.default,null,Me.createElement(Ye.default.Item,{onClick:()=>{fo(or)}},"\u4FEE\u6539\u540D\u79F0"),Me.createElement(Ye.default.Item,{disabled:or.memers.length>=50,onClick:()=>{qn(or)}},"\u6DFB\u52A0\u6210\u5458"),or.is_creat&&Me.createElement(Ye.default.Item,{onClick:()=>Hi(or)},"\u6743\u9650\u914D\u7F6E"),or.is_creat&&Me.createElement(Ye.default.Item,{onClick:()=>Xr(or)},"\u8F6C\u8BA9\u56E2\u961F"),Me.createElement(Ye.default.Item,{key:or.id+"",onClick:or.is_creat?We:ui},or.is_creat?"\u89E3\u6563":"\u9000\u51FA"))},Me.createElement("span",{style:{marginTop:30,marginRight:24,color:"#165DFF",fontSize:14,height:20}},"\u8BBE\u7F6E",Me.createElement("i",{style:{marginLeft:5,color:"#979797"},className:"iconfont icon-a-bianzu11"}))):Me.createElement("span",{key:or.id+"",style:{marginTop:30,marginRight:24,color:"#165DFF",fontSize:14,height:20},className:"c-grey-c",onClick:()=>Si(or.id)},"\u9000\u51FA")))),Me.createElement(Jt.default,{width:700,wrapClassName:Ae.Z.CustomCss,title:"\u6743\u9650\u914D\u7F6E",footer:null,open:ao,onCancel:()=>Wr(!1)},Me.createElement(Xn.Gi,null,Me.createElement(lt.default,{dataSource:Cr==null?void 0:Cr.members,columns:si,pagination:!1,scroll:{y:240}})),Me.createElement("p",{style:{color:"#FF9D18",marginTop:5}},"*\u9009\u4E2D\u4EE3\u8868\u8BE5\u6210\u5458\u53EF\u4EE5\u4F7F\u7528\u56E2\u961F\u5185\u6240\u6709\u6210\u5458\u5171\u4EAB\u7684\u8D44\u6E90\uFF0C\u5426\u5219\u4E0D\u53EF\u4EE5")),Me.createElement(Jt.default,{title:"\u89E3\u6563\u63D0\u793A",wrapClassName:Ae.Z.CustomCss,onOk:()=>{Gn(ha),Fs(!1)},open:La,onCancel:()=>Fs(!1)},Me.createElement("p",null,"\u89E3\u6563\u6559\u7814\u56E2\u961F\u5C06\u5BF9\u56E2\u961F\u6210\u5458\u4E4B\u95F4\u5171\u4EAB\u5B9E\u8BAD\u3001\u8BD5\u5377\u7B49\u529F\u80FD\u9020\u6210\u4E0D\u4FBF\u3002"),Me.createElement("p",null,"\u60A8\u786E\u5B9A\u8981\u89E3\u6563\u672C\u6559\u7814\u56E2\u961F\u5417\uFF1F")),Me.createElement(Jt.default,{wrapClassName:Ae.Z.CustomCss,title:"\u8F6C\u8BA9\u56E2\u961F",onOk:()=>{if(!pi){Bt.ZP.info("\u521B\u5EFA\u4EBA\u4E0D\u80FD\u4E3A\u7A7A");return}Wi(Or,pi),ls(!1),pi=""},open:as,onCancel:()=>{ls(!1),pi=""}},Me.createElement("p",{style:{textAlign:"left"}},"\u9009\u4E2D\u7684\u6210\u5458\u5C06\u4F1A\u4EE5\u65B0\u7684\u521B\u5EFA\u4EBA\u8EAB\u4EFD\u63A5\u7BA1\u56E2\u4F53 ",Me.createElement("br",null)," \u60A8\u5C06\u4E0D\u518D\u62E5\u6709\u521B\u5EFA\u4EBA\u7684\u8EAB\u4EFD\u548C\u6743\u9650\uFF0C\u4F46\u60A8\u4ECD\u662F\u56E2\u961F\u4E2D\u7684\u4E00\u5458"),Me.createElement("div",null,Me.createElement(kt.ZP.Group,{defaultValue:[],onChange:or=>{pi=or.target.value,Ai(or.target.value)}},(Uo=(Nr=ss==null?void 0:ss.memers)==null?void 0:Nr.filter(or=>or.is_teacher))==null?void 0:Uo.map((or,Fn)=>Me.createElement(kt.ZP,{style:Po,value:or==null?void 0:or.id},or==null?void 0:or.name))))))},At=je(51257),Hn=je(25690),_i=je(28027),dr=Object.defineProperty,En=Object.defineProperties,Mn=Object.getOwnPropertyDescriptors,Ln=Object.getOwnPropertySymbols,Mi=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable,ni=(mt,An,Gn)=>An in mt?dr(mt,An,{enumerable:!0,configurable:!0,writable:!0,value:Gn}):mt[An]=Gn,en=(mt,An)=>{for(var Gn in An||(An={}))Mi.call(An,Gn)&&ni(mt,Gn,An[Gn]);if(Ln)for(var Gn of Ln(An))Rt.call(An,Gn)&&ni(mt,Gn,An[Gn]);return mt},Ti=(mt,An)=>En(mt,Mn(An)),Lr=(mt,An,Gn)=>new Promise((fo,qn)=>{var Kn=Nr=>{try{Wi(Gn.next(Nr))}catch(Uo){qn(Uo)}},oi=Nr=>{try{Wi(Gn.throw(Nr))}catch(Uo){qn(Uo)}},Wi=Nr=>Nr.done?fo(Nr.value):Promise.resolve(Nr.value).then(Kn,oi);Wi((Gn=Gn.apply(mt,An)).next())});function Tt({children:mt}){return Me.createElement("div",{className:"no-data"},Me.createElement("img",{src:Qt,alt:"no-data",width:300}),mt)}const Ze={data:[],loading:!0,selectedGroup:{},showFormPanel:!1,showMemberPanel:!1,index:0};var Ge=(mt=>(mt[mt.INITDATA=0]="INITDATA",mt[mt.SHOWLOADING=1]="SHOWLOADING",mt[mt.SHOWFORMPANEL=2]="SHOWFORMPANEL",mt[mt.SHOWMEMBERPANEL=3]="SHOWMEMBERPANEL",mt[mt.SELECTGROUP=4]="SELECTGROUP",mt[mt.SETINDEX=5]="SETINDEX",mt))(Ge||{});function rt(mt,An){switch(An.type){case 0:return en(en({},mt),An.payload);case 1:return Ti(en({},mt),{loading:An.payload});case 5:return Ti(en({},mt),{index:An.payload});case 2:return en(en({},mt),An.payload);case 3:return en(en({},mt),An.payload);case 4:return Ti(en({},mt),{selectedGroup:An.payload,showFormPanel:!0});default:throw new Error}}function Ft({user:mt}){var An;const Gn=(0,Hn.useLocation)(),[fo]=(0,Hn.useSearchParams)(),[qn,Kn]=(0,Me.useReducer)(rt,Ze),{data:oi,index:Wi,loading:Nr,showFormPanel:Uo,selectedGroup:Vr,showMemberPanel:lo}=qn,Rn=(An=mt.userInfo)==null?void 0:An.role,[$n,pi]=(0,Me.useState)(fo.get("category")||"0"),Ai=(0,Me.useMemo)(()=>{let We=[],ui=[];if(oi){for(let Si of oi)Si.is_creat?We.push(Si):ui.push(Si);return[We,ui]}},[oi]);(0,Me.useEffect)(()=>{Rn===15&&Kn({type:5,payload:1})},[Rn]);function Cr(){return Lr(this,null,function*(){const We=yield dt();(We==null?void 0:We.status)!==401&&Kn({type:0,payload:{loading:!1,showFormPanel:!1,data:We.groups,index:fo.get("category")||0}})})}(0,Me.useEffect)(()=>{Cr()},[]);function zr(We){return Lr(this,null,function*(){Vr.id?yield an(Vr.id,We):yield Mt(We),Cr()})}function ao(){Kn({type:2,payload:{showFormPanel:!0,selectedGroup:{}}})}function Wr(We){Kn({type:4,payload:We})}function Or(){Kn({type:2,payload:{showFormPanel:!1}})}function ir(){Kn({type:3,payload:{showMemberPanel:!1,selectedGroup:{}}})}function ss(We){Kn({type:3,payload:{showMemberPanel:!0,selectedGroup:We}})}function Us(We,ui){return Lr(this,null,function*(){yield rn(We,ui),Cr()})}function as(We){return Lr(this,null,function*(){yield on(We),Cr()})}function ls(We){return Lr(this,null,function*(){yield nt(We),Cr()})}function La(We,ui){return Lr(this,null,function*(){yield ln(We,ui),Cr()})}function Fs(We){Kn({type:5,payload:parseInt(We.target.id,10)})}function ha(We,ui){return Lr(this,null,function*(){ir(),yield qt({user_ids:We,group_id:ui}),Cr()})}const Al=[{id:"0",name:"\u6211\u521B\u5EFA\u7684"},{id:"1",name:"\u6211\u52A0\u5165\u7684"}];return Me.createElement(Me.Fragment,null,Me.createElement("div",{className:"teaching-circling-container",style:{paddingLeft:45,paddingTop:22}},Me.createElement("div",{className:"teaching-circling-body"},Rn===15?null:Me.createElement(Xn.YG,{value:$n,onChange:We=>{var ui;(ui=window.location.href.toString())!=null&&ui.includes("category")?(0,At.jz)("category",We):window.history.replaceState(null,"",window.location.href.indexOf("?")>-1?window.location.href+`&category=${We}`:`?category=${We}`),pi(We),Kn({type:5,payload:parseInt(We,10)})},tabBarExtraContent:Me.createElement(yt.ZP,{type:"primary",disabled:oi.length>=50,style:{width:60,height:32,borderRadius:16,border:"1px solid #BACFFE",background:"#F6F7F9 linear-gradient(180deg, #FFFFFF 0%, #F6F7F9 100%)",boxShadow:"0px 2px 4px 0px #E0DFE1, inset 0px 1px 3px 0px rgba(255,255,255,0.5)",color:"#3061D0"},title:oi.length>=50?"\u60A8\u52A0\u5165\u7684\u6559\u7814\u7EC4\u5DF2\u8FBE\u4E0A\u9650":"",onClick:ao},"\u65B0\u5EFA"),className:"mb25",dataSource:Al}),Me.createElement("div",{className:Ai[Wi].length===0?"nodata-content":"main-content"},Ai[Wi].length===0?Me.createElement(Tt,null,Rn<=12?Me.createElement(Me.Fragment,null," ",Me.createElement("p",null,"\u6559\u7814\u56E2\u961F\u6709\u52A9\u4E8E\u4F60\u548C\u4F60\u7684\u4F19\u4F34\u4EEC\u4E00\u8D77\u521B\u5EFA\u5B9E\u8BAD\u3001\u534F\u540C\u6559\u5B66\uFF0C\u6216\u5F00\u5C55\u5176\u4ED6\u6559\u7814\u6D3B\u52A8\u3002")," ",Me.createElement("p",null,"\u5F53\u524D\u60A8\u5C1A\u672A\u7EC4\u5EFA\u5C5E\u4E8E\u81EA\u5DF1\u6559\u7814\u56E2\u961F\uFF0C\u5FEB\u53BB\u7EC4\u5EFA\u5427\uFF01")," "):Me.createElement("p",null," \u60A8\u5C1A\u672A\u52A0\u5165\u4EFB\u4F55\u6559\u7814\u5C0F\u7EC4\uFF0C\u8BF7\u7B49\u5F85\u8001\u5E08\u7684\u53EC\u5524\u5427\uFF01 ")):Me.createElement(Ht,{onExitGroup:ls,Transferteams:La,onPlusMember:ss,onDelMember:Us,onDelGroup:as,isAdminOrTeacher:Rn<=12,onChangeGroupName:Wr,data:Ai[Wi]})))),Me.createElement(Te,{callback:zr,visible:Uo,onCancel:Or,id:Vr.id,name:Vr.name}),Me.createElement(Jt.default,{centered:!0,title:"\u6DFB\u52A0\u6210\u5458",open:lo,onCancel:ir,footer:null,width:1150,bodyStyle:{minHeight:200},wrapClassName:Ae.Z.CustomCss},Me.createElement(_i.Z,{container_id:Vr.id,container_type:4,onSelect:ha,onCancel:ir})))}var qe=(0,Hn.connect)(({user:mt})=>({user:mt}))(Ft)},33811:function(Cn,Ei,je){"use strict";je.r(Ei),je.d(Ei,{default:function(){return Ule}});var Me=je(59301),yt=je(25690),Jt=je(62957),Qt=je(6767),It=je(99571),dt={flex_box_center:"flex_box_center___wc3oP",flex_space_between:"flex_space_between___YV6tt",flex_box_vertical_center:"flex_box_vertical_center___DBgDc",flex_box_center_end:"flex_box_center_end___uIUDS",flex_box_column:"flex_box_column___kQEdA",banner:"banner____Henj",wrp:"wrp___PZhnF",titleWrap:"titleWrap___GqIYn",titleFlexEnd:"titleFlexEnd___yQ3st",title:"title___djFnh",titleName:"titleName___o55kJ",titleIcon:"titleIcon___iO27M",contentWrap:"contentWrap___EkBTW",verticalLine:"verticalLine___aj4o0",contentLeftWrap:"contentLeftWrap___O08fb",openCourseTag:"openCourseTag___M35c8",tagsWrap:"tagsWrap____zRBh",ratingWrap:"ratingWrap___FD4BS",ratingTitle:"ratingTitle___sKXr7",rating:"rating___pPcWF",popoverWrap:"popoverWrap___XLvdy",popverLeft:"popverLeft___JghVb",popoverRight:"popoverRight___iN5hL",popverScore:"popverScore___LpP2e",popoverRateWrap:"popoverRateWrap___y3lUU",popoverProgress:"popoverProgress___SPsPq",button:"button___w71Iu",operationWrap:"operationWrap___xfwLx",forkWrap:"forkWrap___PUfTF",fork:"fork___SPjy6",forkNum:"forkNum___fwVaA",buttonTransparent:"buttonTransparent___V0ey6",buttonLearnStatistics:"buttonLearnStatistics___sWuSx",publishPopverWrap:"publishPopverWrap___maOAE",colorFF6802:"colorFF6802___Gb0xJ",w140:"w140___XOi_m",nav:"nav___j9ULg",navLeft:"navLeft___EEDpJ",navContent:"navContent___p8ZjQ",flexRow:"flexRow___cGkPG",navRight:"navRight____bBx2",navLeftIcon:"navLeftIcon___yRiiz",colorOrange:"colorOrange___isY7L",contentItem:"contentItem___OdKIu",contentItemTitle:"contentItemTitle___MBdkH",contentItemText:"contentItemText___YDgQC",classButton:"classButton___gidYF",bg28e:"bg28e___AuhUg",bgGray:"bgGray___zHFT7",btn:"btn___n_xyk",name:"name___AkijA",titleright:"titleright___AQpHe",edits:"edits___h0Etp",edit:"edit___YwQgI",deletes:"deletes___AEqz3",delete:"delete___C4ZUp",content:"content___urv2c",go:"go___BHrT0",goicon:"goicon___b33d6",tabs:"tabs___bmtXw"},Mt=je(36714),an=je(28284),qt=je(47889),nt=je(17149),ln=je(37568),rn=je(29787),on=je(38986),et={applyPublicContainer:"applyPublicContainer___pImhb",applyPublicContent:"applyPublicContent____dPHq",spin:"spin___bBN3v",tips:"tips___uXmwo",action:"action___D3zVt"},ue=je(87169),ce=je(59301),Ce=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())}),Te=({type:ee,onCancel:y,onOk:E})=>{const[z]=an.default.useForm(),[ne,ie]=(0,Me.useState)(1),[se,ae]=(0,Me.useState)(!1),[he,pe]=(0,Me.useState)([]);(0,Me.useEffect)(()=>{z.setFieldValue("type",1),ve()},[]);const ve=()=>Ce(void 0,null,function*(){if(ee){ae(!0);const Se=yield(0,on.ZP)("/api/disciplines.json",{method:"get",params:{source:ee}});pe(Se.disciplines||[]),ae(!1)}}),xe=()=>{const{sub_discipline_id:Se,discipline_name:Be,sub_discipline_name:De,type:Re}=z.getFieldsValue();if((!Se||Se&&Se.length===0)&&(!Be||!De))return Qt.ZP.warning("\u8BF7\u9009\u62E9\u65B9\u5411&\u8BFE\u7A0B"),!1;E({user_customize:Re==2,sub_discipline_id:Re==1?[Se[1]]:null,discipline_name:Be,sub_discipline_name:De})};return ce.createElement(Jt.default,{width:640,className:et.applyPublicContainer,centered:!0,title:"\u516C\u5F00\u8BFE\u7A0B",okText:"\u7533\u8BF7\u516C\u5F00",open:!0,onCancel:()=>{y(),z.resetFields()},onOk:()=>{z.validateFields().then(Se=>{if(ne==2&&(Se.discipline_name.replaceAll(" ","").length<=0||Se.sub_discipline_name.replaceAll(" ","").length<=0)){Qt.ZP.info("\u65B9\u5411\u6216\u8BFE\u7A0B\u4E0D\u80FD\u4E3A\u7A7A\uFF0C\u8BF7\u586B\u5199\u540E\u518D\u63D0\u4EA4\uFF01");return}xe(),z.resetFields()})}},ce.createElement("div",{className:et.applyPublicContent},ce.createElement("div",{className:et.tips},ce.createElement(ue.Z,{style:{color:"#FF8C29",marginRight:10}}),"\u586B\u5199\u5B9E\u8DF5\u8BFE\u7A0B\u7684\u65B9\u5411&\u8BFE\u7A0B\u4E4B\u540E\uFF0C\u65B9\u53EF\u7533\u8BF7\u516C\u5F00"),ce.createElement(an.default,{labelAlign:"left",form:z},ce.createElement(an.default.Item,{name:"type"},ce.createElement(qt.ZP.Group,{onChange:Se=>{ie(Se.target.value),Se.target.value==1?z.setFieldsValue({discipline_name:"",sub_discipline_name:""}):z.setFieldsValue({sub_discipline_id:[]})}},ce.createElement(qt.ZP,{value:1},"\u5FEB\u901F\u9009\u62E9\u65B9\u5411&\u8BFE\u7A0B"),ce.createElement(qt.ZP,{value:2,style:{marginLeft:40}},"\u81EA\u5B9A\u4E49\u65B9\u5411&\u8BFE\u7A0B"))),ne==1&&ce.createElement(an.default.Item,{label:"\u65B9\u5411&\u8BFE\u7A0B",name:"sub_discipline_id",rules:[{required:!0}]},ce.createElement(nt.Z,{expandTrigger:"hover",placeholder:"\u8BF7\u9009\u62E9\u65B9\u5411&\u8BFE\u7A0B",options:he,fieldNames:{label:"name",value:"id",children:"sub_disciplines"},onChange:(Se,Be)=>z.setFieldsValue({sub_discipline_id:Se})})),ne==2&&ce.createElement(ce.Fragment,null,ce.createElement(an.default.Item,{label:"\u65B9\u5411",name:"discipline_name",rules:[{required:!0}]},ce.createElement(ln.default,{placeholder:"\u8BF7\u8F93\u5165\u65B9\u5411",autoComplete:"off"})),ce.createElement(an.default.Item,{label:"\u8BFE\u7A0B",name:"sub_discipline_name",rules:[{required:!0}]},ce.createElement(ln.default,{placeholder:"\u8BF7\u8F93\u5165\u8BFE\u7A0B",autoComplete:"off"})))),se&&ce.createElement("div",{className:et.spin},ce.createElement(rn.Z,null))))},Ie=je(76902),ze="data:image/png;base64,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",Ye="data:image/png;base64,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",lt=je(25399),Bt=je(37639),kt={flex_box_center:"flex_box_center___HlHga",flex_space_between:"flex_space_between___ZXfWh",flex_box_vertical_center:"flex_box_vertical_center___B_34d",flex_box_center_end:"flex_box_center_end___XaWUl",flex_box_column:"flex_box_column___dfD_W",ClassDesc:"ClassDesc___hvKGJ",LeftTitle:"LeftTitle___GVStZ",textname:"textname___KypkX"},xt=je(346),Et=je(51257),$t=je(45937),Zt=je(20554),Yn=Object.defineProperty,gn=Object.defineProperties,Jn=Object.getOwnPropertyDescriptors,ci=Object.getOwnPropertySymbols,Xn=Object.prototype.hasOwnProperty,In=Object.prototype.propertyIsEnumerable,hi=(ee,y,E)=>y in ee?Yn(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Ht=(ee,y)=>{for(var E in y||(y={}))Xn.call(y,E)&&hi(ee,E,y[E]);if(ci)for(var E of ci(y))In.call(y,E)&&hi(ee,E,y[E]);return ee},At=(ee,y)=>gn(ee,Jn(y)),Hn=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const _i=({value:ee=[],onChange:y})=>{const[E,z]=(0,Me.useState)(null);return Me.createElement(Me.Fragment,null,Me.createElement(ln.default,{value:E,placeholder:"\u8BF7\u8F93\u5165\u6807\u7B7E",maxLength:6,showCount:!0,addonAfter:"\u56DE\u8F66\u521B\u5EFA\u6807\u7B7E",onChange:ne=>{z(ne.target.value)},onPressEnter:ne=>{E&&(y==null||y([...ee,E]),z(null))}}),Me.createElement("div",{className:"flex flex-wrap gap-14px-rem mt-12px-rem"},ee==null?void 0:ee.map((ne,ie)=>Me.createElement("div",{key:ie,className:"p-8px-rem flex item-center gap-8px-rem rounded-2px-rem",style:{background:"#EAF0F7"}},Me.createElement("div",{className:"c-black"},ne),Me.createElement("span",{className:"iconfont icon-guanbi10 c-grey-999 current",style:{fontSize:"10rem"},onClick:()=>{y==null||y(ee==null?void 0:ee.filter(se=>se!=ne))}})))))},dr=({pathsDetail:ee,dispatch:y,DataProps:E,onFinish:z})=>{const ne=(0,yt.useParams)(),{actionTabs:ie,detail:se}=ee,[ae]=an.default.useForm(),[he,pe]=(0,Me.useState)("0"),[,ve,xe]=(0,$t.U)(Mt.j_,{subject_id:ne==null?void 0:ne.pathId}),Se=[{title:"\u667A\u6167\u8D44\u6E90",node_types:["\u5B9E\u8BAD","\u89C6\u9891","\u8BFE\u4EF6","\u8BD5\u5377","\u95EE\u5377","\u7F16\u7A0B","\u865A\u4EFF","\u5206\u7EC4"],relation:"\u5173\u8054"},{title:"\u77E5\u8BC6\u56FE\u8C31",node_types:["\u8BFE\u7A0B\u56FE\u8C31","\u5927\u7EB2\u56FE\u8C31","\u601D\u653F\u56FE\u8C31","\u601D\u7EF4\u56FE\u8C31","\u80FD\u529B\u56FE\u8C31"],relation:"\u5173\u8054"},{title:"\u5B66\u4E60\u8DEF\u5F84",node_types:["\u521D\u59CB\u8DEF\u5F84","\u590D\u4E60\u8DEF\u5F84","\u8003\u524D\u8DEF\u5F84","\u8D44\u6E90\u63A8\u8350"],relation:"\u5173\u8054"},{title:"\u5B66\u60C5\u5206\u6790",node_types:["\u5B66\u60C5\u7EDF\u8BA1","\u80FD\u529B\u5206\u6790","\u638C\u63E1\u5206\u6790"],relation:"\u5173\u8054"}];return(0,Me.useEffect)(()=>{E&&ae.setFieldsValue(At(Ht({},E),{knowledge_statistics:Se==null?void 0:Se.map((Be,De)=>{var Re;return Ht(Ht({},Be),((Re=E==null?void 0:E.knowledge_statistics)==null?void 0:Re.at(-(De+1)))||{})})}))},[E]),Me.createElement(Jt.default,{title:"\u8BFE\u7A0B\u7EDF\u8BA1\u7F16\u8F91",open:ie.key==="\u8BFE\u7A0B\u7EDF\u8BA1\u7F16\u8F91",centered:!0,width:656,onCancel:()=>{y({type:"pathsDetail/save",payload:{actionTabs:{}}})},okText:"\u4FDD\u5B58",confirmLoading:ve,onOk:()=>{ae.validateFields(["knowledge_statistics"],{recursive:!0}).then(()=>{ae.submit()}).catch(Be=>{var De,Re;const Oe=(De=Be==null?void 0:Be.errorFields)==null?void 0:De.at(-1);Oe&&pe(`${(Re=Oe==null?void 0:Oe.name)==null?void 0:Re[1]}`)})}},Me.createElement(an.default,{form:ae,colon:!1,labelAlign:"right",labelCol:{span:5},size:"large",onFinish:Be=>Hn(void 0,null,function*(){const De=yield xe(At(Ht({},Be),{subject_id:ne==null?void 0:ne.pathId}));(De==null?void 0:De.status)==0&&(Qt.ZP.success("\u4FDD\u5B58\u6210\u529F"),z==null||z())})},Me.createElement(an.default.List,{name:"knowledge_statistics"},(Be,{add:De,remove:Re})=>Me.createElement(Me.Fragment,null,Me.createElement(Zt.default,{defaultActiveKey:"1",activeKey:he,onTabClick:Oe=>{pe(Oe)},items:Be.map((Oe,Le)=>({forceRender:!0,key:`${Le}`,label:`\u7B2C${(0,Et.EM)(Le+1)}\u5C42`,children:Me.createElement(Me.Fragment,null,Me.createElement(an.default.Item,{name:[Oe.name,"title"],label:"\u6807\u9898",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u6807\u9898"},{whitespace:!0,message:"\u8F93\u5165\u7684\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},Me.createElement(ln.default,{placeholder:"\u8BF7\u8F93\u5165\u6807\u9898",maxLength:6,showCount:!0})),Me.createElement(an.default.Item,{name:[Oe.name,"node_types"],label:"\u6807\u7B7E",rules:[{required:!0,validator(Je,$e){const _e=[8,6,5,5][Le];return($e==null?void 0:$e.length)==0?Promise.reject(new Error("\u8BF7\u6DFB\u52A0\u6807\u7B7E")):($e==null?void 0:$e.length)>_e?Promise.reject(new Error(`\u6700\u591A${_e}\u4E2A\u6807\u7B7E`)):Promise.resolve()}}]},Me.createElement(_i,null)),Le!==3&&Me.createElement(an.default.Item,{name:[Oe.name,"relation"],label:`\u4E0E\u7B2C${(0,Et.EM)(Le+2)}\u5C42\u5173\u7CFB`,rules:[{required:!0,message:`\u8BF7\u8F93\u5165\u4E0E\u7B2C${(0,Et.EM)(Le+2)}\u5C42\u5173\u7CFB`},{whitespace:!0,message:"\u8F93\u5165\u7684\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},Me.createElement(ln.default,{placeholder:`\u4E0E\u7B2C${(0,Et.EM)(Le+2)}\u5C42\u5173\u7CFB`,maxLength:6,showCount:!0})),Me.createElement(an.default.Item,{label:"\u7EDF\u8BA1\u6570\u636E"},Me.createElement("div",{style:{color:"#232B40"}},Me.createElement("span",null,["\u5168\u90E8\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8D44\u6E90\u8282\u70B9","\u8BFE\u7A0B\u4E2D\u521B\u5EFA\u7684\u6240\u6709\u77E5\u8BC6\u56FE\u8C31\uFF0C\u5305\u62EC\u80FD\u529B\u56FE\u8C31","\u8BFE\u7A0B\u4E2D\u521B\u5EFA\u7684\u5B66\u4E60\u8DEF\u5F84","\u83B7\u53D6\u5F53\u524D\u5DF2\u7ECF\u4E0A\u7EBF\u7684\u5B66\u60C5\u5206\u6790\u80FD\u529B\uFF0C\u5F53\u524D\u4E3A0"][Le]))))}))})))))};var En=(0,yt.connect)(({pathsDetail:ee})=>({pathsDetail:ee}))(dr),Mn="data:image/png;base64,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",Ln="data:image/png;base64,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",Mi="data:image/png;base64,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",Rt=je(59301),ni=Object.defineProperty,en=Object.getOwnPropertySymbols,Ti=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Tt=(ee,y,E)=>y in ee?ni(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Ze=(ee,y)=>{for(var E in y||(y={}))Ti.call(y,E)&&Tt(ee,E,y[E]);if(en)for(var E of en(y))Lr.call(y,E)&&Tt(ee,E,y[E]);return ee},Ge=(ee,y)=>{var E={};for(var z in ee)Ti.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&en)for(var z of en(ee))y.indexOf(z)<0&&Lr.call(ee,z)&&(E[z]=ee[z]);return E};const rt=({title:ee,className:y="",style:E={}})=>Rt.createElement("div",{className:`absolute ${y}`,style:E},Rt.createElement("img",{src:Ln,width:"187rem",style:{width:"187rem"}}),Rt.createElement("div",{className:"absolute",style:{top:"32rem",right:"65rem",color:"#FFCF1B",fontSize:"30rem"}},ee)),Ft=({title:ee,className:y="",style:E={}})=>Rt.createElement("div",{className:`flex item-center justify-center absolute ${y}`,style:Ze({width:"200rem",height:"54rem",fontSize:"24rem",left:"50%",transform:"translateX(-50%)",bottom:"10rem",background:`url(${je(11862)})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",color:"#59F7FF"},E)}," ",ee," "),qe=({DataProps:ee=[],angleStep:y=.2,radius:E=500,top:z=0,verticalRadius:ne=E})=>{const ie=(0,Me.useRef)(null),se=Math.PI+(Math.PI-((ee==null?void 0:ee.length)-1)*y)/2,ae=({DataProps:he={},style:pe={}})=>Rt.createElement("div",{className:"flex flex-col item-center c-white absolute",style:Ze({fontSize:"14rem"},pe)},Rt.createElement(lt.Z,{title:he,placement:"topLeft"},Rt.createElement("div",{className:"multi_ellipsis1"},he)),Rt.createElement("img",{src:Mi,width:"97rem",height:"97rem",style:{width:"97rem",height:"97rem"}}));return Rt.createElement("div",{ref:ie,className:"relative"},ee==null?void 0:ee.map((he,pe)=>{const ve=se+pe*y,xe=E*Math.cos(ve),Se=ne*Math.sin(ve);return Rt.createElement(ae,{key:pe,DataProps:he,style:{left:`calc(50% + ${xe}rem)`,bottom:`${Se+ne+z}rem`,transform:"translateX(-50%)"}})}))},mt=({DataProps:ee={}})=>{var y;return Rt.createElement("div",{className:"flex flex-col item-center justify-center w-full h-full",style:{gap:"125rem"}},(y=ee==null?void 0:ee.knowledge_statistics)==null?void 0:y.map((E,z)=>Rt.createElement(Rt.Fragment,null,z==0&&Rt.createElement("div",{key:z,className:"flex item-center justify-center",style:{height:0}},Rt.createElement("div",{className:"relative flex item-center justify-center",style:{background:`url(${je(47444)})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",width:"296rem",height:"100rem",marginTop:"82rem",zIndex:4}},Rt.createElement(rt,{title:E==null?void 0:E.knowledge_graph_count,style:{right:"-120rem",top:"-64rem"}}),Rt.createElement(qe,{DataProps:E==null?void 0:E.node_types,angleStep:1.35,radius:100,top:-60,verticalRadius:30}),Rt.createElement(Ft,{title:E==null?void 0:E.title}))),z==1&&Rt.createElement("div",{key:z,className:"flex item-center justify-center",style:{height:0}},Rt.createElement("div",{className:"relative flex item-end justify-center",style:{background:`url(${je(425)})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",width:"404rem",height:"168rem",marginTop:"10rem",zIndex:3}},Rt.createElement(rt,{title:E==null?void 0:E.knowledge_graph_count,style:{right:"-134rem",top:"-10rem"}}),Rt.createElement("div",{className:"absolute",style:{left:"-30rem",top:"0rem"}},Rt.createElement("img",{src:Mn,width:"93rem",style:{width:"93rem"}}),Rt.createElement("div",{className:"absolute",style:{top:"5rem",left:"-25rem",transform:"rotate(-47deg)",color:"#21C4CE",fontSize:"16rem"}},E==null?void 0:E.relation)),Rt.createElement(qe,{DataProps:E==null?void 0:E.node_types,angleStep:.15}),Rt.createElement(Ft,{title:E==null?void 0:E.title}))),z==2&&Rt.createElement("div",{key:z,className:"flex item-center justify-center",style:{height:0}},Rt.createElement("div",{className:"relative flex item-end justify-center",style:{background:`url(${je(49260)})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",width:"542rem",height:"228rem",marginTop:"-85rem",zIndex:2}},Rt.createElement(rt,{title:E==null?void 0:E.knowledge_graph_count,style:{right:"-135rem",top:"24rem"}}),Rt.createElement("div",{className:"absolute",style:{left:"-40rem",top:"40rem"}},Rt.createElement("img",{src:Mn,width:"114rem",style:{width:"114rem"}}),Rt.createElement("div",{className:"absolute",style:{top:"20rem",left:"-15rem",transform:"rotate(-47deg)",color:"#21C4CE",fontSize:"16rem"}},E==null?void 0:E.relation)),Rt.createElement(qe,{DataProps:E==null?void 0:E.node_types,angleStep:.16}),Rt.createElement(Ft,{title:E==null?void 0:E.title}))),z==3&&Rt.createElement("div",{key:z,className:"flex item-center justify-center",style:{height:0}},Rt.createElement("div",{className:"relative flex item-end justify-center",style:{background:`url(${je(24219)})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",width:"764rem",height:"257rem",marginTop:"-70rem",zIndex:1}},Rt.createElement(rt,{title:E==null?void 0:E.knowledge_graph_count,style:{right:"-115rem",top:"20rem"}}),Rt.createElement("div",{className:"absolute",style:{left:"-15rem",top:"34rem"}},Rt.createElement("img",{src:Mn,width:"123rem",style:{width:"123rem"}}),Rt.createElement("div",{className:"absolute",style:{top:"25rem",left:"-15rem",transform:"rotate(-47deg)",color:"#21C4CE",fontSize:"16rem"}},E==null?void 0:E.relation)),Rt.createElement(qe,{DataProps:E==null?void 0:E.node_types,angleStep:.16}),Rt.createElement(Ft,{title:E==null?void 0:E.title}))))),Rt.createElement("div",{className:"flex item-center justify-center",style:{height:0}},Rt.createElement("img",{src:je(32682),width:"600rem",height:"465rem",style:{width:"600rem",height:"465rem",marginTop:"-260rem"}})))},An=({DataProps:ee,className:y="",style:E={}})=>Rt.createElement("div",{className:`flex flex-col item-center w-full h-full ${y}`,style:Ze({padding:"20rem 30rem",background:"#162442",borderRadius:"8rem",gap:"10rem"},E)},(ee==null?void 0:ee.AvatarDom)||Rt.createElement("img",{src:xt.Z.API_SERVER+"/images/"+((ee==null?void 0:ee.image_url)||(ee==null?void 0:ee.avatar)),width:"60rem",height:"60rem",style:{borderRadius:"50%",width:"60rem",height:"60rem"}}),Rt.createElement(lt.Z,{title:(ee==null?void 0:ee.username)||""},Rt.createElement("div",{className:"multi_ellipsis1"},(ee==null?void 0:ee.username)||""))),Gn=ee=>{var y=ee,{pathsDetail:E,dispatch:z}=y,ne=Ge(y,["pathsDetail","dispatch"]),ie,se,ae,he,pe,ve,xe,Se,Be,De,Re,Oe,Le,Je,$e,_e,st,ct,ut,ht,pt,gt,zt,cn,Tn,Zn,Nn;const di=(0,yt.useParams)(),{actionTabs:yi,detail:bn}=E,Sn=(0,Me.useRef)(null),[ki,ti]=(0,Me.useState)(0),[,fn,Bi,jn]=(0,$t.U)(Mt.dX,{subject_id:di.pathId});return(0,Me.useEffect)(()=>{Sn.current&&setTimeout(()=>{const ei=(0,Et.ZR)(Sn.current,"rem",1);ti(ei)},500)},[Sn.current,(ie=E==null?void 0:E.detail)==null?void 0:ie.description]),(0,Me.useEffect)(()=>{Bi({subject_id:di.pathId})},[]),Rt.createElement(rn.Z,{spinning:fn},Rt.createElement("section",null,Rt.createElement("div",{className:"w-full relative c-white flex flex-col",style:{background:`url(${je(12175)})`,backgroundSize:"cover",backgroundRepeat:"no-repeat",backgroundPosition:"center"}},Rt.createElement("div",{className:"w-full flex justify-center item-center absolute blod text-center",style:{background:`url(${je(93148)})`,backgroundSize:"cover",backgroundRepeat:"no-repeat",backgroundPosition:"center",height:"282rem",letterSpacing:"5rem",lineHeight:"32rem",top:0,left:0,fontSize:"32rem",padding:"0 500rem 173rem"}},Rt.createElement(lt.Z,{title:(ae=(se=E.detail)==null?void 0:se.name)==null?void 0:ae.split(`
|
|
`)[0]},Rt.createElement("div",{className:"multi_ellipsis2"},(pe=(he=E.detail)==null?void 0:he.name)==null?void 0:pe.split(`
|
|
`)[0]))),Rt.createElement("div",{className:"flex flex-1 minW-0",style:{paddingTop:"140rem",paddingLeft:"40rem",paddingRight:"40rem"}},Rt.createElement("div",{className:"flex-1 flex flex-col minW-0 relative",style:{padding:"50rem",borderRadius:"8rem",background:"rgba(32,47,79,0.3)",backdropFilter:"blur(10rem)",gap:"50rem"}},Rt.createElement("div",{className:`absolute flex flex-col item-center justify-center ${kt.ClassDesc}`},"\u8BFE\u7A0B\u7B80\u4ECB"),Rt.createElement("div",{className:"relative"},Rt.createElement("div",{style:{height:"110rem",overflow:"hidden"}},Rt.createElement("div",{ref:Sn},Rt.createElement(Ie.Z,{className:"c-white",value:((ve=E==null?void 0:E.detail)==null?void 0:ve.description)||""}))),ki>=110&&Rt.createElement("div",{className:"flex item-center justify-center current",style:{padding:"0 220rem",color:"#3061D0",marginTop:"10rem"},onClick:()=>{var ei;Jt.default.confirm({title:"\u8BFE\u7A0B\u7B80\u4ECB",centered:!0,icon:null,width:900,closable:!0,cancelButtonProps:{style:{display:"none"}},content:Rt.createElement("div",{style:{maxHeight:"70vh",overflow:"auto"}},Rt.createElement(Ie.Z,{value:((ei=E==null?void 0:E.detail)==null?void 0:ei.description)||""}))})}},"\u67E5\u770B\u5168\u90E8")),Rt.createElement("div",{className:"flex w-full minW-0"},Rt.createElement("div",{className:"flex flex-col item-center"}," ",Rt.createElement("img",{src:je(12260),width:"20rem",height:"17rem"})," \u5B66\u6821 "),Rt.createElement("div",{style:{padding:"12rem 38rem",background:"#162442",borderRadius:"8rem",marginLeft:"20rem"}},((xe=E==null?void 0:E.detail)==null?void 0:xe.school)||"")),Rt.createElement("div",{className:"flex w-full minW-0"},Rt.createElement("div",{className:"flex flex-col item-center",style:{marginTop:"25rem"}}," ",Rt.createElement("img",{src:je(69303),width:"20rem"})," \u6559\u5E08 "),Rt.createElement("div",{className:"flex-1 minW-0",style:{gap:"10rem",marginLeft:"20rem",display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr 1fr"}},(Le=((Be=(Se=E==null?void 0:E.detail)==null?void 0:Se.subject_members)==null?void 0:Be.length)>10?(Re=(De=E==null?void 0:E.detail)==null?void 0:De.subject_members)==null?void 0:Re.slice(0,9):(Oe=E==null?void 0:E.detail)==null?void 0:Oe.subject_members)==null?void 0:Le.map((ei,hr)=>Rt.createElement(An,{key:hr,DataProps:ei})),(($e=(Je=E==null?void 0:E.detail)==null?void 0:Je.subject_members)==null?void 0:$e.length)>10&&Rt.createElement(Bt.Z,{content:Rt.createElement("div",{className:"c-white",style:{gap:"10rem",maxWidth:"515rem",maxHeight:"425rem",display:"grid",overflow:"auto",gridTemplateColumns:"repeat(auto-fit, minmax(120rem, 1fr))"}},(ct=(st=(_e=E==null?void 0:E.detail)==null?void 0:_e.subject_members)==null?void 0:st.slice(9))==null?void 0:ct.map((ei,hr)=>Rt.createElement(An,{key:hr,DataProps:ei}))),title:null,trigger:"click",color:"rgba(32, 47, 79, 1)",className:"c-white"},Rt.createElement("div",null,Rt.createElement(An,{className:"current",DataProps:{AvatarDom:Rt.createElement("div",{className:"flex item-center justify-center",style:{borderRadius:"50%",width:"60rem",height:"60rem",background:"#202F4F"}},"+",((ht=(ut=E==null?void 0:E.detail)==null?void 0:ut.subject_members)==null?void 0:ht.slice(11)).length),username:"\u66F4\u591A"}})))))),Rt.createElement("div",{className:"flex-1 minW-0 relative",style:{padding:"50rem"}},(bn==null?void 0:bn.can_managed)&&Rt.createElement("div",{className:"current absolute flex item-center rounded-full",style:{padding:"5rem 10rem",top:0,right:0,gap:"10rem",background:"#202F4F"},onClick:()=>{z({type:"pathsDetail/save",payload:{actionTabs:{key:"\u8BFE\u7A0B\u7EDF\u8BA1\u7F16\u8F91"}}})}},Rt.createElement("span",{className:"iconfont icon-bianji14",style:{color:"#82A8FF"}})," \u7F16\u8F91"),Rt.createElement(mt,{DataProps:(jn==null?void 0:jn.data)||{}}))),Rt.createElement("div",{className:"w-full flex",style:{marginTop:"20rem",paddingLeft:"40rem",paddingRight:"40rem",height:"168rem"}},Rt.createElement("div",{className:"flex flex-1 minW-0 relative",style:{borderRadius:"8rem 0 0 8rem",background:"rgba(32,47,79,0.5)",backdropFilter:"blur(10px)",padding:"22rem 20rem 22rem 36rem",borderRight:"1rem solid rgba(79,151,255,0.34)",gap:"10rem"}},Rt.createElement("div",{className:`absolute flex flex-col item-center justify-center ${kt.LeftTitle}`},"\u5B66\u4E60\u7EDF\u8BA1"),[{value:(pt=bn==null?void 0:bn.knowledge_statistics)==null?void 0:pt.course_count,title:"\u5E94\u7528\u8BFE\u5802\uFF08\u4E2A\uFF09"},{value:(gt=bn==null?void 0:bn.knowledge_statistics)==null?void 0:gt.school_count,title:"\u5E94\u7528\u9662\u6821\uFF08\u4E2A\uFF09"},{value:(zt=bn==null?void 0:bn.knowledge_statistics)==null?void 0:zt.initiative_study_count,title:"\u81EA\u4E3B\u5B66\u4E60\u4EBA\u6570\uFF08\u4EBA\uFF09"},{value:(cn=bn==null?void 0:bn.knowledge_statistics)==null?void 0:cn.course_study_count,title:"\u8BFE\u5802\u5B66\u4E60\u4EBA\u6570\uFF08\u4EBA\uFF09"},{value:(Tn=bn==null?void 0:bn.knowledge_statistics)==null?void 0:Tn.knowledge_visits,title:"\u7D2F\u8BA1\u6D4F\u89C8\u6B21\u6570\uFF08\u6B21\uFF09"}].map((ei,hr)=>Rt.createElement("div",{key:hr,className:"flex flex-col item-center justify-center c-white flex-1 minW-0",style:{gap:"10rem",background:"#162442",borderRadius:"8rem"}},Rt.createElement("div",{style:{fontSize:"30rem",lineHeight:"30rem"}},ei==null?void 0:ei.value),Rt.createElement("div",{style:{fontSize:"14rem",lineHeight:"14rem"}},ei==null?void 0:ei.title)))),Rt.createElement("div",{className:"flex flex-1 minW-0 relative",style:{borderRadius:"0 8rem 8rem 0",background:"rgba(32,47,79,0.5)",backdropFilter:"blur(10px)",padding:"22rem 20rem 22rem 36rem",gap:"10rem"}},Rt.createElement("div",{className:`absolute flex flex-col item-center justify-center ${kt.LeftTitle}`},"\u8D44\u6E90\u7EDF\u8BA1"),(Nn=(Zn=bn==null?void 0:bn.knowledge_statistics)==null?void 0:Zn.resource_data)==null?void 0:Nn.map((ei,hr)=>Rt.createElement("div",{key:hr,className:"flex flex-col item-center justify-center c-white flex-1 minW-0",style:{gap:"10rem",background:"#162442",borderRadius:"8rem"}},Rt.createElement("div",{style:{fontSize:"30rem",lineHeight:"30rem"}},ei==null?void 0:ei.num),Rt.createElement("div",{style:{fontSize:"14rem",lineHeight:"14rem"}},ei==null?void 0:ei.node_type,"\uFF08\u4E2A\uFF09")))))),(yi==null?void 0:yi.key)==="\u8BFE\u7A0B\u7EDF\u8BA1\u7F16\u8F91"&&Rt.createElement(En,{DataProps:(jn==null?void 0:jn.data)||{},onFinish:()=>{Bi({subject_id:di.pathId}),z({type:"pathsDetail/save",payload:{actionTabs:{}}})}})))};var fo=(0,yt.connect)(({pathsDetail:ee})=>({pathsDetail:ee}))(Gn),qn=je(59301),Kn=Object.defineProperty,oi=Object.defineProperties,Wi=Object.getOwnPropertyDescriptors,Nr=Object.getOwnPropertySymbols,Uo=Object.prototype.hasOwnProperty,Vr=Object.prototype.propertyIsEnumerable,lo=(ee,y,E)=>y in ee?Kn(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Rn=(ee,y)=>{for(var E in y||(y={}))Uo.call(y,E)&&lo(ee,E,y[E]);if(Nr)for(var E of Nr(y))Vr.call(y,E)&&lo(ee,E,y[E]);return ee},$n=(ee,y)=>oi(ee,Wi(y)),pi=(ee,y)=>{var E={};for(var z in ee)Uo.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&Nr)for(var z of Nr(ee))y.indexOf(z)<0&&Vr.call(ee,z)&&(E[z]=ee[z]);return E},Ai=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const Cr=[{name:"\u672A\u53D1\u5E03",connect:"\u5F53\u524D\u8BFE\u7A0B\u6B63\u5728\u5F00\u53D1\u4E2D\uFF0C\u4E0D\u53EF\u88AB\u4ED6\u4EBA\u4F7F\u7528",bkcolor:"#D8D8D8",txcolor:"#FFFFFF"},{name:"\u9759\u9ED8\u53D1\u5E03",connect:"\u5F53\u524D\u8BFE\u7A0B\u5DF2\u53D1\u5E03\uFF0C\u53EF\u4EE5\u901A\u8FC7\u5206\u4EAB\u94FE\u63A5\u4F7F\u7528\uFF0C\u4F46\u4E0D\u80FD\u88AB\u5F00\u653E\u68C0\u7D22",bkcolor:"#7B92C7",txcolor:"#FFFFFF"},{name:"\u516C\u5F00\u5BA1\u6838",connect:"\u5F53\u524D\u8BFE\u7A0B\u5DF2\u53D1\u5E03\uFF0C\u7533\u8BF7\u7EB3\u5165\u5F00\u653E\u68C0\u7D22\uFF0C\u76EE\u524D\u5E73\u53F0\u6B63\u5728\u5BA1\u6838\u4E2D",bkcolor:"#F9AF7E",txcolor:"#A44C11"},{name:"\u516C\u5F00\u53D1\u5E03",connect:"\u5F53\u524D\u8BFE\u7A0B\u5DF2\u53D1\u5E03\uFF0C\u4E14\u53EF\u88AB\u5F00\u653E\u68C0\u7D22",bkcolor:"#FFE9C1",txcolor:"#A45204"}],zr=ee=>{var y=ee,{pathsDetail:E,user:z,globalSetting:ne,loading:ie,dispatch:se}=y,ae=pi(y,["pathsDetail","user","globalSetting","loading","dispatch"]),he,pe,ve,xe,Se,Be,De,Re,Oe,Le,Je,$e,_e,st,ct,ut,ht;const[pt]=(0,yt.useSearchParams)(),gt=(0,yt.useParams)(),[zt,cn]=(0,Me.useState)({}),Tn=(0,Me.useRef)(1),[Zn,Nn]=(0,Me.useState)(),[di,yi]=(0,Me.useState)(!1),[bn,Sn]=(0,Me.useState)(!1),ki=(0,Me.useRef)(null),ti=!((he=E.detail)!=null&&he.can_managed),[fn,Bi]=(0,Me.useState)({status:!1}),jn=((pe=E.detail)==null?void 0:pe.is_free)||((ve=E.detail)==null?void 0:ve.can_learning);(0,Me.useEffect)(()=>{Bi({status:!1})},[]),(0,Me.useEffect)(()=>{function qi(){return Ai(this,null,function*(){var Sr,Pr,Go,_o,ta,un,so;if((Sr=E.detail)!=null&&Sr.courses){const Kr=(Pr=E.detail)==null?void 0:Pr.courses;if((Go=Kr==null?void 0:Kr.toast)!=null&&Go.is_open&&((_o=Kr.toast)==null?void 0:_o.open_num)===-1)Sn(!0);else if((ta=Kr==null?void 0:Kr.toast)!=null&&ta.is_open&&((un=Kr==null?void 0:Kr.toast)==null?void 0:un.open_num)===1){let kr=JSON.parse(localStorage.getItem("pathsshow"))||[];((so=kr.filter(_r=>_r===(gt==null?void 0:gt.pathId)))==null?void 0:so.length)>0?Sn(!1):(Sn(!0),kr.push(gt==null?void 0:gt.pathId),localStorage.setItem("pathsshow",JSON.stringify(kr)))}else Sn(!1)}})}qi()},[(xe=E.detail)==null?void 0:xe.courses]),(0,Me.useEffect)(()=>{var qi,Sr,Pr,Go,_o,ta,un,so,Kr,kr,_r;if(!((Sr=(qi=E.detail)==null?void 0:qi.courses)==null?void 0:Sr.length))return;let jo;if((Pr=E.detail)!=null&&Pr.has_start){const Ro=(_o=(Go=E.detail)==null?void 0:Go.courses)==null?void 0:_o.findIndex(qa=>{var mn;return((mn=qa.course_status)==null?void 0:mn.status)===1});jo=Ro>-1?Ro:0}else{let Ro=(so=(un=(ta=E.detail)==null?void 0:ta.courses)==null?void 0:un.map(qa=>{var mn;return(mn=qa.course_status)==null?void 0:mn.status}))==null?void 0:so.lastIndexOf(2);jo=Ro>-1?Ro:0,Ro=(kr=(Kr=E.detail)==null?void 0:Kr.courses)==null?void 0:kr.findIndex(qa=>{var mn;return((mn=qa.course_status)==null?void 0:mn.status)===0}),jo=Ro>-1?Ro:jo}cn(((_r=E.detail)==null?void 0:_r.courses[jo])||{})},[E.detail]);const ei=qi=>{Bi({status:qi})},hr=qi=>{Jt.default.confirm({centered:!0,width:590,title:"\u63D0\u793A",okText:"\u786E\u5B9A\u7533\u8BF7",cancelText:"\u53D6\u6D88\u7533\u8BF7",icon:null,content:qn.createElement("div",{className:"tc",style:{color:"#5F6367",textAlign:"left"}},"\u516C\u5F00\u8BFE\u7A0B\u9700\u7ECF\u8FC7\u5E73\u53F0\u6807\u51C6\u5316\u5BA1\u6838\uFF0C\u5BA1\u6838\u5468\u671F\u4E3A1-2\u5929\uFF0C\u516C\u5F00\u7684\u8BFE\u7A0B\u5C06\u5BF9\u5E73\u53F0\u6240\u6709\u4EBA\u53EF\u89C1\u3002",qn.createElement("br",null),"\u82E5\u4EC5\u672C\u4EBA\u6559\u5B66\u4F7F\u7528\u5219\u65E0\u9700\u7533\u8BF7\u516C\u5F00\uFF0C\u76F4\u63A5\u53D1\u9001\u5230\u8BFE\u5802\u5373\u53EF",qn.createElement("br",null)),onOk:()=>Ai(void 0,null,function*(){let Sr={user_customize:qi.user_customize,type:qi.type};qi.user_customize?Sr=$n(Rn({},Sr),{discipline_name:qi.discipline_name,sub_discipline_name:qi.sub_discipline_name}):qi.sub_discipline_id&&(Sr=$n(Rn({},Sr),{sub_discipline_id:qi.sub_discipline_id}));const Pr=yield(0,Mt.WO)(Rn({id:gt.pathId},Sr));((Pr==null?void 0:Pr.status)===0||(Pr==null?void 0:Pr.status)===1)&&(_n(),Qt.ZP.success("\u516C\u5F00\u7533\u8BF7\u5DF2\u63D0\u4EA4\uFF0C\u8BF7\u7B49\u5F85\u7BA1\u7406\u5458\u7684\u5BA1\u6838"))})})},_n=()=>{se({type:"pathsDetail/getPathsDetail",payload:{id:gt.pathId,knowledge:!0}}),se({type:"pathsDetail/getRightData",payload:{id:gt.pathId}})};return qn.createElement("section",null,pt.get("type")!=="classrooms"?qn.createElement(fo,null):qn.createElement("aside",{className:dt.banner,style:{backgroundImage:(De=(Be=(Se=E==null?void 0:E.detail)==null?void 0:Se.attachments)==null?void 0:Be[0])!=null&&De.url?`url(${(Le=(Oe=(Re=E==null?void 0:E.detail)==null?void 0:Re.attachments)==null?void 0:Oe[0])==null?void 0:Le.url})`:`url(${ze})`}},qn.createElement("aside",{className:dt.wrp},qn.createElement("div",{className:dt.name},($e=(Je=E.detail)==null?void 0:Je.name)==null?void 0:$e.split(`
|
|
`)[0]),qn.createElement("div",{className:dt.content},(st=(_e=E==null?void 0:E.detail)==null?void 0:_e.resource_data)==null?void 0:st.map((qi,Sr)=>qn.createElement("span",{key:Sr},qi==null?void 0:qi.node_type,"\uFF1A",qi==null?void 0:qi.num)),((ct=E.detail)==null?void 0:ct.origin_subject_identifier)&&qn.createElement("div",{onClick:()=>{var qi;window.open(`/paths/${(qi=E.detail)==null?void 0:qi.origin_subject_identifier}`)},className:dt.go},qn.createElement("img",{src:Ye,className:dt.goicon})," ",qn.createElement("div",{style:{cursor:"pointer"}},"\u524D\u5F80\u8BFE\u7A0B\u5B66\u4E60"))))),fn.status&&qn.createElement(Te,{type:"subject",onCancel:()=>ei(!1),onOk:qi=>{ei(!1),hr(qi)}}),qn.createElement(Jt.default,{open:bn,title:"\u8BFE\u7A0B\u516C\u544A",width:593,maskClosable:!1,onCancel:()=>{Sn(!1)},centered:!0,footer:qn.createElement("div",null,qn.createElement(It.ZP,{type:"primary",onClick:()=>{Sn(!1)}},"\u6211\u77E5\u9053\u4E86"))},qn.createElement(Ie.Z,{style:{maxHeight:378,overflow:"auto"},value:(ht=(ut=E==null?void 0:E.detail)==null?void 0:ut.toast)==null?void 0:ht.content})))};var ao=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(zr),Wr=je(49535),Or={flex_box_center:"flex_box_center___gyNAa",flex_space_between:"flex_space_between___zekzh",flex_box_vertical_center:"flex_box_vertical_center___GQtHt",flex_box_center_end:"flex_box_center_end___P3hWY",flex_box_column:"flex_box_column___YRmML",bg:"bg___w3m29",wrap:"wrap___DQAaW",content:"content___ISSC7",wrapTabs:"wrapTabs___UH3jY",intro:"intro___GxOgI",introTitle:"introTitle___LyPY5"},ir={flex_box_center:"flex_box_center___FSHWz",flex_space_between:"flex_space_between___xMj_8",flex_box_vertical_center:"flex_box_vertical_center___TftIO",flex_box_center_end:"flex_box_center_end___KM3sc",flex_box_column:"flex_box_column___o0txR",tabs:"tabs___kpTFv",activied:"activied___IE4FQ",tab:"tab___JSx4b",placeholder:"placeholder___xpvd2",content:"content___I7f9K",nametext:"nametext___E8ley",modal:"modal___oIdtc",mHead:"mHead___tmQjG",form:"form___q76Kb",mType:"mType___zss8M",dropdownst:"dropdownst___NZ0IN",dropnametext:"dropnametext___v6FZZ"},ss={information:"information___cwV7S",body:"body___1JINN",title:"title___b5sMx",left:"left___yeFML",right:"right___uofAp",listWarp:"listWarp___mIMgF",li:"li___fF9zA",imgTitle:"imgTitle___HGcli",box:"box___pdLe8"},Us="data:image/png;base64,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",as="data:image/png;base64,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",ls="data:image/png;base64,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",La="data:image/png;base64,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",Fs=je(93083),ha=je(60840),We={token:{colorPrimary:"#1B8565",colorInfo:"#1B8565",colorLink:"#1B8565",borderRadius:2,fontSizeLG:14},components:{Radio:{radioSize:16,dotSize:6},Modal:{titleFontSize:16,titleColor:"#000"}}},ui=je(59301),ms=({children:ee,prefixCls:y="knowledgeGraph"})=>document.documentElement.style.fontSize!==""?ui.createElement(Fs.StyleProvider,{transformers:[(0,Fs.px2remTransformer)({rootValue:1})]},ui.createElement(ha.ZP,{prefixCls:y,theme:We},ee)):ui.createElement(ui.Fragment,null,ee),Po=je(59301),Xr=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())}),Hi=({})=>{var ee;const[y,E]=(0,Me.useState)(!0),[z,ne]=(0,Me.useState)({}),ie=(0,yt.useSelector)(he=>he),{pathsDetail:{detail:se}}=ie;(0,Me.useEffect)(()=>{se!=null&&se.id&&ae()},[se==null?void 0:se.id]);const ae=()=>Xr(void 0,null,function*(){ne(se),E(!1)});return Po.createElement(ms,null,Po.createElement("div",{className:ss.information},y&&Po.createElement(rn.Z,{style:{width:"100%",marginTop:"300rem"},spinning:!0}),!y&&Po.createElement("div",{className:ss.body},Po.createElement("div",{className:ss.left},Po.createElement("div",{className:ss.box,style:{marginBottom:"20rem"}},Po.createElement("img",{className:ss.imgTitle,src:Us,style:{width:"453rem"}}),Po.createElement(Ie.Z,{value:(z==null?void 0:z.description)||""})),!!(z!=null&&z.learning_notes)&&Po.createElement("div",{className:ss.box},Po.createElement("img",{className:ss.imgTitle,src:ls,style:{width:"453rem"}}),Po.createElement(Ie.Z,{value:(z==null?void 0:z.learning_notes)||""}))),Po.createElement("div",{className:ss.right},Po.createElement("img",{className:ss.imgTitle,src:as,style:{width:"323rem"}}),Po.createElement("div",{className:ss.listWarp},(ee=z==null?void 0:z.subject_members)==null?void 0:ee.map(he=>Po.createElement("div",{key:he==null?void 0:he.login,className:ss.li},Po.createElement("img",{src:`${xt.Z.IMG_SERVER}/images/${he==null?void 0:he.avatar}`}),(he==null?void 0:he.role)===1&&Po.createElement("img",{src:La,style:{width:"68rem",position:"absolute",right:"-1rem",top:"-1rem"}}),Po.createElement("div",null,Po.createElement(lt.Z,{title:he==null?void 0:he.username},Po.createElement("b",{className:"c-grey-333"},(0,Et.Pq)(he==null?void 0:he.username,7))),Po.createElement(lt.Z,{title:he==null?void 0:he.school_name},Po.createElement("span",{className:"c-grey-999"},(0,Et.Pq)(he==null?void 0:he.school_name,7)))))))))))},or={exchange:"exchange___eh7R3",body:"body___oRT9t",liWarp:"liWarp___QSKqk",li:"li___qd10l",head:"head___X7rTk",btns:"btns___JOV8d",reply:"reply___FAse7",delete:"delete___cv2H_",praise:"praise___O_5sJ",active:"active____gfgF",num:"num___Vv9Co",secondWrap:"secondWrap___S4NT9",secondLi:"secondLi___KiwQK",secondHead:"secondHead___xyIHf",secondBtns:"secondBtns____BxwD",md:"md____p6F5",comment:"comment___YPf7o",addBtn:"addBtn___S8KeD",pagination:"pagination___iRtcm"},Fn=je(13747),vn=je(92310),pn=je.n(vn),Ur=je(39793),Ho={md:"md___NMHUA",dark:"dark___hYBxG"},bo=je(59301),ji=Object.defineProperty,co=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,aa=Object.getOwnPropertySymbols,pa=Object.prototype.hasOwnProperty,hn=Object.prototype.propertyIsEnumerable,Ar=(ee,y,E)=>y in ee?ji(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Xo=(ee,y)=>{for(var E in y||(y={}))pa.call(y,E)&&Ar(ee,E,y[E]);if(aa)for(var E of aa(y))hn.call(y,E)&&Ar(ee,E,y[E]);return ee},al=(ee,y)=>co(ee,Oa(y)),Ji=(ee,y)=>{var E={};for(var z in ee)pa.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&aa)for(var z of aa(ee))y.indexOf(z)<0&&hn.call(ee,z)&&(E[z]=ee[z]);return E},wa=ee=>{var y=ee,{value:E,onChange:z,theme:ne}=y,ie=Ji(y,["value","onChange","theme"]);const se={dark:Ho.dark};return bo.createElement(ms,{prefixCls:"md"},bo.createElement("div",{className:pn()(Ho.md,se[ne])},bo.createElement(Ur.Z,al(Xo({},ie),{defaultValue:E,onChange:(ae,he)=>{console.log("a:",ae,he),he!=null&&he.length?z(ae,he):z(ae)}}))))},xl={noData:"noData___Luxe1"},Ll="data:image/png;base64,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",ys=je(61485),As=je(59301),da=({style:ee={},className:y,text:E="\u6682\u65E0\u6570\u636E",textColor:z="#666",buttonText:ne,buttonTexttow:ie,ontwoClick:se,onClick:ae})=>As.createElement("div",{className:pn()(xl.noData,y),style:ee},As.createElement("img",{src:Ll}),!!E&&As.createElement("span",{style:{color:z}},E),As.createElement("span",{style:{display:"flex"}},!!ne&&As.createElement("div",{onClick:ae},ne),!!ie&&As.createElement("div",{style:{marginLeft:"20rem",display:"flex",alignItems:"center",justifyContent:"center"},onClick:se},ie," ",As.createElement(lt.Z,{title:"\u6839\u636E\u65E7\u7248\u77E5\u8BC6\u56FE\u8C31\u5185\u5BB9\u6216\u8BFE\u7A0B\u7AE0\u8282\u53CA\u8D44\u6E90\u5185\u5BB9\u81EA\u52A8\u751F\u6210\u77E5\u8BC6\u56FE\u8C31"},As.createElement(ys.Z,{style:{color:"#fff",marginLeft:5,marginTop:0}}))))),us=je(59301),Sa=Object.defineProperty,zi=Object.getOwnPropertySymbols,fc=Object.prototype.hasOwnProperty,iu=Object.prototype.propertyIsEnumerable,Gu=(ee,y,E)=>y in ee?Sa(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Ni=(ee,y)=>{for(var E in y||(y={}))fc.call(y,E)&&Gu(ee,E,y[E]);if(zi)for(var E of zi(y))iu.call(y,E)&&Gu(ee,E,y[E]);return ee},Lo=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const zs=({type:ee,onEnter:y})=>{const[E,z]=(0,Me.useState)("");return us.createElement("div",{className:or.comment},us.createElement(wa,{theme:"dark",height:ee===1?"264rem":"134rem",value:E,onChange:ne=>z(ne)}),us.createElement(It.ZP,{size:"large",shape:"round",onClick:()=>y(E,ee),type:"primary",style:{width:"100rem",marginBottom:"12rem",float:"right"}},"\u53D1\u9001"),us.createElement("div",{style:{clear:"both"}}))};var Js=({})=>{const ee=(0,yt.useParams)(),[y,E]=(0,Me.useState)(!0),[z,ne]=(0,Me.useState)({page:1}),[ie,se]=(0,Me.useState)(0),[ae,he]=(0,Me.useState)(!1),[pe,ve]=(0,Me.useState)([]);(0,Me.useEffect)(()=>{xe(z)},[]);const xe=Oe=>Lo(void 0,null,function*(){E(!0);const Le=yield(0,on.ZP)(`/api/paths/${ee==null?void 0:ee.pathId}/discusses.json`,{method:"get",params:Oe});Le!=null&&Le.comments&&(ve(Le==null?void 0:Le.comments),se(Le==null?void 0:Le.disscuss_count)),E(!1)}),Se=(Oe,Le)=>Lo(void 0,null,function*(){E(!0);const Je=yield(0,on.ZP)(`/api/paths/${ee==null?void 0:ee.pathId}/post_discuss.json`,{method:"post",body:{content:Oe}});(Je==null?void 0:Je.status)===0&&(z.page=Le===1?1:z.page,ne(Ni({},z)),xe(z),he(!1))}),Be=(Oe,Le)=>Lo(void 0,null,function*(){E(!0);const Je=yield(0,on.ZP)(`/api/discusses/${ae}/reply.json`,{method:"post",body:{container_type:"Shixun",content:Oe}});Je!=null&&Je.discuss&&(he(!1),xe(z))}),De=(Oe,Le)=>Lo(void 0,null,function*(){E(!0);const Je=yield(0,on.ZP)(`/api/discusses/${Oe}/plus.json`,{method:"post",body:{container_type:"Discuss",type:Le}});(Je==null?void 0:Je.status)!==-1&&xe(z)}),Re=(Oe,Le)=>Lo(void 0,null,function*(){E(!0);const Je=yield(0,on.ZP)(`/api/discusses/${Oe}.json`,{method:"delete",body:{}});(Je==null?void 0:Je.status)===1&&(z.page=Le===1&&pe.length===1&&z.page!==1?z.page-1:z.page,ne(Ni({},z)),xe(z))});return us.createElement(ms,null,us.createElement(us.Fragment,null,us.createElement("span",{className:"relative",style:{float:"right"}},us.createElement("div",{className:or.addBtn,onClick:()=>he(!0)},"\u53D1\u5E03\u8BA8\u8BBA")),us.createElement("div",{className:or.exchange},us.createElement("div",{className:or.body},us.createElement(rn.Z,{spinning:y},ae===!0&&us.createElement(zs,{type:1,onEnter:Se}),ie?us.createElement(us.Fragment,null,us.createElement("div",{className:or.liWarp},pe==null?void 0:pe.map(Oe=>{var Le,Je,$e,_e;return us.createElement("div",{key:Oe==null?void 0:Oe.id,className:or.li},us.createElement("img",{src:`${xt.Z.IMG_SERVER}/images/${(Le=Oe==null?void 0:Oe.author)==null?void 0:Le.image_url}`}),us.createElement("aside",{style:{flex:1}},us.createElement("div",{className:or.head},us.createElement("b",null,(Je=Oe==null?void 0:Oe.author)==null?void 0:Je.name),us.createElement("span",null,Oe==null?void 0:Oe.time),us.createElement("div",{className:or.btns},us.createElement(lt.Z,{placement:"top",title:"\u56DE\u590D",color:"#434B64"},us.createElement("div",{onClick:()=>he(Oe.id),className:or.reply},us.createElement("i",{className:"iconfont icon-a-huifupinglun"}))),(Oe==null?void 0:Oe.manage)&&us.createElement(lt.Z,{placement:"top",title:"\u5220\u9664\u8BA8\u8BBA",color:"#434B64"},us.createElement("div",{onClick:()=>Re(Oe.id,1),className:or.delete},us.createElement("i",{className:"iconfont icon-shanchu17"}))),us.createElement(lt.Z,{placement:"top",title:"\u70B9\u8D5E",color:"#434B64"},us.createElement("div",{onClick:()=>De(Oe==null?void 0:Oe.id,Oe!=null&&Oe.user_praise?0:1),className:pn()(or.praise,(Oe==null?void 0:Oe.user_praise)&&or.active)},us.createElement("i",{className:"iconfont icon-dianzan7"}))),!!(Oe!=null&&Oe.praise_count)&&us.createElement("aside",{className:or.num},Oe==null?void 0:Oe.praise_count))),us.createElement(Ie.Z,{className:or.md,value:(Oe==null?void 0:Oe.content)||""}),!!(($e=Oe==null?void 0:Oe.children)!=null&&$e.length)&&us.createElement("div",{className:or.secondWrap},(_e=Oe==null?void 0:Oe.children)==null?void 0:_e.map(st=>{var ct;return us.createElement("div",{className:or.secondLi},us.createElement("div",{className:or.secondHead},us.createElement("b",null,(ct=st==null?void 0:st.author)==null?void 0:ct.name),us.createElement("span",null,st==null?void 0:st.time),us.createElement("div",{className:or.secondBtns},(st==null?void 0:st.manage)&&us.createElement(lt.Z,{placement:"top",title:"\u5220\u9664\u8BA8\u8BBA",color:"#434B64"},us.createElement("div",{onClick:()=>Re(st.id,2),className:or.secondDelete},us.createElement("i",{className:"iconfont icon-shanchu17"}))))),us.createElement(Ie.Z,{className:or.md,value:(st==null?void 0:st.content)||""}))})),ae===Oe.id&&us.createElement(zs,{type:2,onEnter:Be})))})),us.createElement("div",{className:or.pagination},us.createElement(Fn.Z,{onChange:Oe=>{z.page=Oe,ne(Ni({},z)),xe(z)},total:ie,current:z==null?void 0:z.page,pageSize:10,hideOnSinglePage:!0,showSizeChanger:!1,showQuickJumper:!1,style:{marginTop:"20rem",marginBottom:"40rem"},showTotal:Oe=>us.createElement("span",{style:{marginLeft:"10rem",color:"#fff"}},"\u5171",us.createElement("span",{style:{color:"#37AD83",margin:"0 5rem"}},Oe),"\u6761\u6570\u636E")}))):!ae&&us.createElement(da,{textColor:"#fff",style:{visibility:y?"hidden":"visible"}}))))))},_s={learning:"learning___axerA",body:"body___xn5Fa",tabs:"tabs___C2Adc",name:"name___VKGdS",tabWrap:"tabWrap___EnXyi",tab:"tab___EBO0d",active:"active___XXAsu",head:"head___XDru2",numerical:"numerical___APDFZ",action:"action___V6i8x",studentHead:"studentHead___I1em7",headLi:"headLi___UsDfK",btn:"btn___SXQTV",disabledBtn:"disabledBtn___gfcug",addBtn:"addBtn___oYSpZ",ChangeBut:"ChangeBut___XjMr5",PublishBut:"PublishBut___r0ltL",SwitchStyle:"SwitchStyle___ioClp"},wl=je(71411),Sl="data:image/png;base64,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",rl="data:image/png;base64,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",Il="data:image/png;base64,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",Zi="data:image/png;base64,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",hl=je(82326),Yi=je(18287),$o={flex_box_center:"flex_box_center___g95QO",flex_space_between:"flex_space_between___DdZrd",flex_box_vertical_center:"flex_box_vertical_center___XptQo",flex_box_center_end:"flex_box_center_end___OeRyD",flex_box_column:"flex_box_column___GCZDS",addModal:"addModal___rkVQM",contentWrap:"contentWrap___hdqno",boxTitle:"boxTitle___messp",tip:"tip___w9Tak",leftBox:"leftBox___kDArQ",formSty:"formSty___RXRPG",rightBox:"rightBox___BUv9Q",nodeData:"nodeData___FbbqZ",yc:"yc___lhz8B",yclj:"yclj___Z6AKQ",nametitle:"nametitle___lR1nK",treeheight:"treeheight___RZ8Gb"},dl=je(89489),Pl=je(28426),pc=je(9148),pu={contentWrap:"contentWrap___ni2IK",titleSty:"titleSty___EglCE",leftBox:"leftBox___s2Tog",rightBox:"rightBox___UXF7P",tipSty:"tipSty___tamqo"},jl=je(16326),Vu=je(62673),Un=je(61186),xi=je.n(Un),kn=je(73410),it=je(82264),fr=je(48716),xr=je(49840),Rr=je(59301),po=Object.defineProperty,ko=Object.defineProperties,Bo=Object.getOwnPropertyDescriptors,Bs=Object.getOwnPropertySymbols,Vo=Object.prototype.hasOwnProperty,Co=Object.prototype.propertyIsEnumerable,vo=(ee,y,E)=>y in ee?po(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,fs=(ee,y)=>{for(var E in y||(y={}))Vo.call(y,E)&&vo(ee,E,y[E]);if(Bs)for(var E of Bs(y))Co.call(y,E)&&vo(ee,E,y[E]);return ee},tt=(ee,y)=>ko(ee,Bo(y)),Xt=(ee,y)=>{var E={};for(var z in ee)Vo.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&Bs)for(var z of Bs(ee))y.indexOf(z)<0&&Co.call(ee,z)&&(E[z]=ee[z]);return E},Dt=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const Kt={\u8BD5\u5377:"#F65160",\u89C6\u9891:"#4237E7",\u5B9E\u8BAD:"#145DFF",\u8BFE\u4EF6:"#1B8565",\u4F5C\u4E1A:"#21B292",\u5176\u4ED6:"#B96B18",\u6559\u6750:"#B96B18",\u56FE\u6587:"#B96B18",\u5206\u7EC4:"#21B292",\u7AE0\u8282:"#B16514"},sn={\u8BD5\u5377:"#FEEDEF",\u89C6\u9891:"#ECEAFC",\u5B9E\u8BAD:"#E7EEFF",\u8BFE\u4EF6:"#EBF6F2",\u4F5C\u4E1A:"#ECFBF7",\u5176\u4ED6:"#FFF7EF",\u6559\u6750:"#FFF7EF",\u5206\u7EC4:"#ECFBF7",\u56FE\u6587:"#FFF7EF",\u7AE0\u8282:"#FFF3EC"},Vn=ee=>{var y=ee,{pathsDetail:E,classroomList:z,user:ne,globalSetting:ie,dispatch:se,visible:ae,setVisible:he,detail:pe,uuid:ve,treeList:xe,onOk:Se}=y,Be=Xt(y,["pathsDetail","classroomList","user","globalSetting","dispatch","visible","setVisible","detail","uuid","treeList","onOk"]),De;const Re=(0,yt.useParams)(),[Oe,Le]=(0,Me.useState)([]),[Je,$e]=(0,Me.useState)([]),[_e]=an.default.useForm(),[st,ct]=(0,Me.useState)(1),[ut,ht]=(0,Me.useState)([]),[pt,gt]=(0,Me.useState)(0),[zt,cn]=(0,Me.useState)([]),[Tn,Zn]=(0,Me.useState)(!0),[Nn,di]=(0,Me.useState)(!1),[yi,bn]=(0,Me.useState)(!1),[Sn,ki]=(0,Me.useState)(!1),[ti,fn]=(0,Me.useState)({});Re.coursesId=Re.pathId,Re.id=Re.coursesId,(0,Me.useEffect)(()=>{if(ae){if(qi(),jn(),z.actionTabs.type===2){const Pr=z.actionTabs.selectArrsAll[0];Zn(Pr.unified_setting)}else Zn(!1);const Sr=Bi(xe);$e(Sr),Le([])}},[ae]);const Bi=Sr=>Sr==null?void 0:Sr.map(Pr=>{const{id:Go,node_type:_o,name:ta,children:un,position:so}=Pr;return{key:Go,title:"has_children"in Pr?`${ta}`:Rr.createElement(Rr.Fragment,null,Rr.createElement("span",{style:{color:Kt[_o],backgroundColor:sn[_o],padding:"2px 4px",marginRight:"5px"}},_o),Rr.createElement("span",null,ta)),children:(un==null?void 0:un.length)>0?Bi(un):[],tag:"has_children"in Pr?"":_o}}),jn=Sr=>Dt(void 0,null,function*(){di(!0);const Pr=yield(0,it.c_)(tt(fs({},Re),{page:Sr||st,limit:2e4}));Pr==null||Pr.course_groups.map((Go,_o)=>{Go.key=Go.id,Go.title=Go.name,Go.disabled=Go.is_published}),Pr&&(ht([...Pr==null?void 0:Pr.course_groups]),gt(Pr==null?void 0:Pr.course_groups_count),di(!1),Sr||_e.setFieldsValue({publish_time:xi()(xi()(new Date).add(0,"days").format("YYYY-MM-DD HH:mm")),end_time:xi()(xi()(new Date((0,Et.qd)("/"))).add(7,"days").format("YYYY-MM-DD HH:mm"))}))}),ei=Sr=>{console.log("onCheck",Sr),Le(Sr)},hr=()=>Dt(void 0,null,function*(){var Sr,Pr,Go;const _o=fs({},_e.getFieldsValue());if(_o.end_time<=_o.publish_time){Qt.ZP.info("\u622A\u6B62\u65F6\u95F4\u4E0D\u80FD\u5927\u4E8E\u6216\u7B49\u4E8E\u53D1\u5E03\u65F6\u95F4"),bn(!1);return}if((zt==null?void 0:zt.length)<=0&&!Tn&&ut.length>0){Qt.ZP.info("\u53D1\u5E03\u73ED\u7EA7\u4E0D\u80FD\u4E3A\u7A7A"),bn(!1);return}let ta={ids:[...Oe],group_ids:zt.length>0?zt.map(so=>so.id):(Sr=z.detailShixunsList)==null?void 0:Sr.course_groups,end_time:xi()(_o.end_time).format("YYYY-MM-DD HH:mm"),publish_time:xi()(_o.publish_time).format("YYYY-MM-DD HH:mm"),unified_setting:!zt.length,subject_id:Re.pathId};bn(!0);const un=yield(0,on.ZP)("/api/subject_knowledge/batch_publish.json",{method:"post",body:fs({},ta)});un.status===0&&(((Pr=un==null?void 0:un.examination_bank_ids)==null?void 0:Pr.length)>0||((Go=un==null?void 0:un.shixun_info)==null?void 0:Go.length)>0?(fn(tt(fs({},un),{courseId:Re==null?void 0:Re.coursesId})),he(!1),ki(!0)):_n()),bn(!1)}),_n=()=>{Se(ve,""),se({type:"classroomList/setActionTabs",payload:{}}),se({type:"pathsDetail/setActionTabs",payload:{key:"\u66F4\u65B0\u6570\u636E"}}),di(!1),qi(),(0,Et.L9)(["\u6559\u5B66\u8BFE\u5802","\u8BFE\u7A0B\u5B9E\u9A8C","\u7ACB\u5373\u53D1\u5E03"]),Qt.ZP.success("\u53D1\u5E03\u6210\u529F")},qi=()=>{ct(1),ht([]),cn([])};return Rr.createElement(Jt.default,{title:"\u53D1\u5E03\u5B66\u4E60\u8D44\u6E90",open:ae,confirmLoading:yi,width:"1200rem",centered:!0,onOk:hr,onCancel:()=>{he(!1)},maskClosable:!1},Rr.createElement(rn.Z,{spinning:Nn},Rr.createElement("div",{className:`flex w-full ${pu.contentWrap}`},Rr.createElement("div",{className:`p-10px-rem flex-1 minW-0 ${pu.leftBox}`},Rr.createElement("div",{className:pu.titleSty},"\u9009\u62E9\u8D44\u6E90"),Rr.createElement(Yi.default,{checkable:!0,onCheck:ei,checkedKeys:Oe,treeData:Je,defaultExpandedKeys:[(De=xe==null?void 0:xe[0])==null?void 0:De.id]})),Rr.createElement("div",{className:`flex flex-col flex-1 minW-0 ${pu.rightBox}`},Rr.createElement("div",{className:pu.titleSty},"\u53D1\u5E03\u89C4\u5219"),Rr.createElement("p",{className:pu.tipSty},"\u5230\u8FBE\u53D1\u5E03\u65F6\u95F4\u540E\uFF0C\u5B66\u751F\u5C06\u5728\u5404\u6559\u5B66\u6A21\u5757\u4E2D\u67E5\u770B\u5230\u5B66\u4E60\u8DEF\u5F84\u7684\u4F5C\u4E1A\u3001\u8003\u8BD5\u3001\u89C6\u9891\u3001\u8D44\u6E90\u7B49 \u53D1\u5E03\u64CD\u4F5C\u4EC5\u9488\u5BF9\u672A\u53D1\u5E03\u8D44\u6E90\u7684\u5206\u73ED\u751F\u6548"),Rr.createElement(an.default,{className:"flex flex-col",form:_e},Rr.createElement("div",{className:"flex item-center gap-10px-rem"},Rr.createElement(an.default.Item,{className:"flex-1 minW-0",name:"publish_time",label:"\u53D1\u5E03\u65F6\u95F4"},Rr.createElement(jl.default,{disabledDate:Sr=>(0,fr.Q8)(Sr,null),disabledTime:Sr=>(0,fr.d0)(Sr),placeholder:"\u8BF7\u9009\u62E9\u53D1\u5E03\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:xi()((0,Et.U6)(),"HH:mm")},format:"YYYY-MM-DD HH:mm",allowClear:!1})),Rr.createElement(an.default.Item,{className:"flex-1 minW-0",name:"end_time",label:"\u622A\u6B62\u65F6\u95F4:"},Rr.createElement(jl.default,{placeholder:"\u8BF7\u9009\u62E9\u622A\u6B62\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:xi()((0,Et.U6)(),"HH:mm")},disabledDate:Sr=>(0,fr.Q8)(Sr,null,_e.getFieldValue("publish_time")),disabledTime:Sr=>(0,fr.d0)(Sr,_e.getFieldValue("publish_time")),format:"YYYY-MM-DD HH:mm",allowClear:!1}))),ut.length<=0&&z.actionTabs.type===2&&Rr.createElement("span",{style:{marginLeft:"65px",color:"rgba(0, 0, 0, 0.25)"}},'\u8BFE\u5802\u65E0\u5206\u73ED\uFF0C\u4EC5\u652F\u6301\u9009\u62E9\u201C\u7EDF\u4E00\u53D1\u5E03"'),ut.length>0&&Rr.createElement("div",{className:"flex justify-between ",style:{marginBottom:"10rem"}},Rr.createElement(Vu.default,{className:"flex-1 minW-0",checked:zt.length===ut.length,onChange:Sr=>{zt.length===ut.length?cn([]):cn(ut)}},"\u5168\u9009"),Rr.createElement("div",{className:"flex-1 minW-0"},"\u5DF2\u9009\u62E9",zt.length||0,"\u4E2A\u5206\u73ED")),(z.actionTabs.type===1||!Tn)&&ut.length>0&&Rr.createElement(kn.Z,{className:"flex-1 minW-0",data:ut,selectedRowKeys:zt,setSelectedRowKeys:cn,handleChangePage:()=>{}}))))),Rr.createElement(xr.Z,{source:"\u5B9E\u8BAD\u548C\u8BD5\u5377",showModal:Sn,onCancel:()=>ki(!1),info:ti,onOk:_n}))};var Qn=(0,yt.connect)(({pathsDetail:ee,classroomList:y,user:E,globalSetting:z})=>({pathsDetail:ee,classroomList:y,user:E,globalSetting:z}))(Vn),zn=je(59301),Oi=Object.defineProperty,Qi=Object.defineProperties,ri=Object.getOwnPropertyDescriptors,cr=Object.getOwnPropertySymbols,$r=Object.prototype.hasOwnProperty,Yt=Object.prototype.propertyIsEnumerable,er=(ee,y,E)=>y in ee?Oi(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,sr=(ee,y)=>{for(var E in y||(y={}))$r.call(y,E)&&er(ee,E,y[E]);if(cr)for(var E of cr(y))Yt.call(y,E)&&er(ee,E,y[E]);return ee},Ki=(ee,y)=>Qi(ee,ri(y)),lr=(ee,y)=>{var E={};for(var z in ee)$r.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&cr)for(var z of cr(ee))y.indexOf(z)<0&&Yt.call(ee,z)&&(E[z]=ee[z]);return E},vr=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const Qr=ee=>{var y=ee,{pathsDetail:E,user:z,globalSetting:ne,loading:ie,dispatch:se,addmodal:ae,setaddmodal:he,uuid:pe,onOk:ve}=y,xe=lr(y,["pathsDetail","user","globalSetting","loading","dispatch","addmodal","setaddmodal","uuid","onOk"]),Se,Be,De,Re,Oe,Le,Je,$e,_e,st,ct;const ut=(0,yt.useParams)(),[ht,pt]=(0,Me.useState)([]),[gt,zt]=(0,Me.useState)(!1),[cn,Tn]=(0,Me.useState)([]),[Zn]=an.default.useForm(),Nn=an.default.useWatch("uuid",Zn),[di,yi]=(0,Me.useState)(!1);(0,Me.useEffect)(()=>{var Bi,jn;if(ae){if(Sn(),pe){const ei=((jn=(Bi=E==null?void 0:E.detail)==null?void 0:Bi.route_nodes)==null?void 0:jn.find(hr=>(hr==null?void 0:hr.id)==pe))||{};(ei==null?void 0:ei.knowledge_labels)=="--"&&(ei.knowledge_labels=""),Zn.setFieldsValue(sr({},ei))}ki()}},[ae]);function bn(Bi,jn){for(let ei of Bi)jn.push(ei),ei.children&&ei.children.length>0&&bn(ei.children,jn)}const Sn=()=>vr(void 0,null,function*(){zt(!0);let Bi=yield(0,on.ZP)("/api/knowledge_items.json",{method:"get",params:{item_type:3,subject_id:ut==null?void 0:ut.pathId}});(Bi==null?void 0:Bi.status)===0&&Tn([{id:1,name:"\u5168\u90E8"},...(Bi==null?void 0:Bi.data)||[]]),zt(!1)}),ki=()=>vr(void 0,null,function*(){const Bi=Zn.getFieldValue("knowledge_labels")||[],jn=Zn.getFieldValue("resource_labels")||[],ei=(Bi==null?void 0:Bi.length)>0?Bi:["\u5168\u90E8"],hr=Zn.getFieldValue("uuid")||pe;if(!hr){Qt.ZP.info("\u8BF7\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31");return}zt(!0);let _n=yield(0,on.ZP)("/api/subject_knowledge/tree.json",{method:"post",body:{uuid:hr,subject_id:ut==null?void 0:ut.pathId,knowledge_labels:ei,resource_labels:jn,id:pe,is_edit:!!pe}});(_n==null?void 0:_n.status)===0&&pt(_n==null?void 0:_n.data),zt(!1)}),ti=Bi=>{console.log(Bi);const jn=Bi.node.id,ei=Bi.dragNode.id,hr=Bi.node.pos.split("-"),_n=Bi.dropPosition-Number(hr[hr.length-1]),qi=(Go,_o,ta)=>{for(let un=0;un<Go.length;un++){if(Go[un].id===_o)return ta(Go[un],un,Go);Go[un].children&&qi(Go[un].children,_o,ta)}},Sr=[...ht];let Pr;if(qi(Sr,ei,(Go,_o,ta)=>{ta.splice(_o,1),Pr=Go}),!Bi.dropToGap)qi(Sr,jn,Go=>{Go.children=Go.children||[],Go.children.unshift(Pr)});else{let Go=[],_o;qi(Sr,jn,(ta,un,so)=>{Go=so,_o=un}),_n===-1?Go.splice(_o,0,Pr):Go.splice(_o+1,0,Pr)}pt(Sr)},fn=Bi=>vr(void 0,null,function*(){var jn,ei,hr,_n,qi;let Sr=[];if(bn(ht,Sr),(ht==null?void 0:ht.length)<=0||((jn=Sr==null?void 0:Sr.filter(_o=>!(_o!=null&&_o.is_out)))==null?void 0:jn.length)===0||((ei=ht==null?void 0:ht.filter(_o=>!(_o!=null&&_o.is_out)))==null?void 0:ei.length)===0){Qt.ZP.info("\u5B66\u4E60\u8DEF\u5F84\u4E0D\u53EF\u4E3A\u7A7A");return}yi(!0);const Pr=Ki(sr({},Bi),{uuid:Bi.uuid||pe,subject_id:ut==null?void 0:ut.pathId,routes:ht});pe&&(Pr.id=(qi=(_n=(hr=E==null?void 0:E.detail)==null?void 0:hr.route_nodes)==null?void 0:_n.find(_o=>_o==null?void 0:_o.is_choice))==null?void 0:qi.id);const Go=yield(0,on.ZP)("/api/subject_knowledge.json",{method:"post",body:sr({},Pr)});(Go==null?void 0:Go.status)===0&&(Qt.ZP.success(pe?"\u7F16\u8F91\u6210\u529F":"\u65B0\u589E\u6210\u529F"),ve(Go==null?void 0:Go.id,""),he(!1)),yi(!1)});return zn.createElement(Jt.default,{title:pe?"\u7F16\u8F91\u5B66\u4E60\u8DEF\u5F84":"\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84",open:ae,width:"1140rem",className:$o.addModal,centered:!0,onOk:()=>vr(void 0,null,function*(){Zn.submit()}),okButtonProps:{loading:di},okText:pe?"\u5B8C\u6210\u7F16\u8F91":"\u5B8C\u6210\u521B\u5EFA",onCancel:()=>{he(!1)},maskClosable:!1},zn.createElement(rn.Z,{spinning:gt},zn.createElement("div",{className:$o.contentWrap},zn.createElement("div",{className:$o.leftBox},zn.createElement("div",{className:`flex item-center gap-10px-rem ${$o.boxTitle}`},"\u57FA\u672C\u4FE1\u606F",zn.createElement(lt.Z,{title:zn.createElement(zn.Fragment,null,"\u8DEF\u5F84\u540D\u79F0\uFF1A\u586B\u5199\u672C\u5B66\u4E60\u8DEF\u5F84\u540D\u79F0\uFF0C\u5982\uFF1A\u6587\u79D1\u5B66\u4E60\u8DEF\u5F84\u3001\u57FA\u7840\u5B66\u4E60\u8DEF\u5F84\u7B49",zn.createElement("br",null),"\u9002\u7528\u4EBA\u7FA4\uFF1A\u586B\u5199\u9002\u5408\u9002\u7528\u672C\u5B66\u4E60\u8DEF\u5F84\u7684\u7528\u6237\uFF0C\u5982\uFF1A\u6587\u79D1\u4E13\u4E1A\u5B66\u751F\u7B49",zn.createElement("br",null),"\u7B80\u4ECB\uFF1A\u5BF9\u672C\u5B66\u4E60\u8DEF\u5F84\u505A\u57FA\u672C\u4ECB\u7ECD\uFF0C\u5982\uFF1A\u4ECB\u7ECD\u8D44\u6E90\u7C7B\u578B\u7B49",zn.createElement("br",null),"\u77E5\u8BC6\u56FE\u8C31\uFF1A\u9009\u62E9\u672C\u8BFE\u7A0B\u4E2D\u5DF2\u7ECF\u521B\u5EFA\u7684\u77E5\u8BC6\u56FE\u8C31",zn.createElement("br",null),"\u8D44\u6E90\u7C7B\u578B\uFF1A\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8D44\u6E90\u7C7B\u578B",zn.createElement("br",null),"\u56FE\u8C31\u6807\u7B7E\uFF1A\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8282\u70B9\u6807\u7B7E",zn.createElement("br",null),"\u6CE8\u610F\uFF1A\u53EF\u4EE5\u901A\u8FC7\u8D44\u6E90\u7C7B\u578B\u548C\u56FE\u8C31\u6807\u7B7E\u7B5B\u9009\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8282\u70B9\u5185\u5BB9\uFF0C\u66F4\u5FEB\u6784\u5EFA\u5B66\u4E60\u8DEF\u5F84")},zn.createElement("span",{className:"iconfont icon-tishi7 current",style:{color:"#FF8C29"}}))),zn.createElement(an.default,{className:$o.formSty,form:Zn,layout:"horizontal",onFinish:fn,scrollToFirstError:!0,size:"large",colon:!1,labelAlign:"right",initialValues:{knowledge_labels:["\u5168\u90E8"],uuid:((Be=(Se=E==null?void 0:E.detail)==null?void 0:Se.nodes)==null?void 0:Be.length)>1?(Oe=(Re=(De=E==null?void 0:E.detail)==null?void 0:De.nodes.slice(1))==null?void 0:Re[0])==null?void 0:Oe.uuid:""}},zn.createElement(an.default.Item,{label:"\u8DEF\u5F84\u540D\u79F0",name:"name",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u8DEF\u5F84\u540D\u79F0"}]},zn.createElement(ln.default,{placeholder:"\u8BF7\u8F93\u5165\u8DEF\u5F84\u540D\u79F0",maxLength:20})),zn.createElement(an.default.Item,{label:"\u9002\u7528\u4EBA\u7FA4",name:"applicable_people"},zn.createElement(ln.default,{placeholder:"\u8BF7\u8F93\u5165\u9002\u7528\u4EBA\u7FA4",maxLength:50})),zn.createElement(an.default.Item,{label:"\u7B80\u4ECB",name:"description"},zn.createElement(ln.default.TextArea,{placeholder:"\u8BF7\u8F93\u5165\u7B80\u4ECB",rows:3,maxLength:200})),zn.createElement(an.default.Item,{label:"\u77E5\u8BC6\u56FE\u8C31",name:"uuid",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31"}]},zn.createElement(hl.default,{placeholder:"\u8BF7\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31",options:((Je=(Le=E==null?void 0:E.detail)==null?void 0:Le.nodes)==null?void 0:Je.length)>1?($e=E==null?void 0:E.detail)==null?void 0:$e.nodes.slice(1):[],fieldNames:{label:"name",value:"uuid"}})),zn.createElement(an.default.Item,{label:"\u8D44\u6E90\u7C7B\u578B",name:"resource_labels",initialValue:["\u5168\u90E8"]},zn.createElement(hl.default,{placeholder:"\u8BF7\u9009\u62E9\u8D44\u6E90\u7C7B\u578B",mode:"multiple",showSearch:!0,optionFilterProp:"node_type",options:((ct=(st=(_e=E==null?void 0:E.detail)==null?void 0:_e.nodes)==null?void 0:st.find(Bi=>(Bi==null?void 0:Bi.uuid)==Nn))==null?void 0:ct.resource_labels)||[],fieldNames:{label:"node_type",value:"node_type"}})),zn.createElement(an.default.Item,{label:"\u56FE\u8C31\u6807\u7B7E",name:"knowledge_labels"},zn.createElement(hl.default,{allowClear:!0,mode:"multiple",placeholder:"\u8BF7\u9009\u62E9\u56FE\u8C31\u6807\u7B7E",options:cn,fieldNames:{label:"name",value:"name"}}))),zn.createElement("div",{style:{display:"flex",justifyContent:"flex-end"}},zn.createElement(pc.op,{shape:"default",onClick:ki},"\u67E5\u8BE2"))),zn.createElement("div",{className:$o.rightBox},zn.createElement("div",{className:$o.boxTitle},"\u5B66\u4E60\u8DEF\u5F84",zn.createElement("span",{className:$o.tip},"\uFF08\u62D6\u52A8\u53EF\u8C03\u6574\u8DEF\u5F84\u987A\u5E8F\uFF09")),zn.createElement("div",{style:{maxHeight:"500rem",overflow:"auto"}},(ht==null?void 0:ht.length)>0?zn.createElement(Yi.default,{style:{background:"#FAFAFA"},treeData:ht,showLine:!0,blockNode:!0,fieldNames:{key:"id"},className:$o.treeheight,draggable:!0,onDrop:ti,switcherIcon:zn.createElement(dl.Z,null),titleRender:Bi=>zn.createElement("div",{className:$o.nodeData,style:{color:Bi!=null&&Bi.is_out?"#999999":"#000000"}},zn.createElement("span",{style:{color:Kt[Bi==null?void 0:Bi.node_type],backgroundColor:sn[Bi==null?void 0:Bi.node_type],padding:"2px 4px",marginRight:"5px"}},Bi==null?void 0:Bi.node_type),zn.createElement("div",{className:$o.nametitle,title:Bi==null?void 0:Bi.name,style:{flex:1}},(Bi==null?void 0:Bi.is_out)&&zn.createElement("span",{className:$o.yc},"\u5DF2\u79FB\u51FA")," ",Bi==null?void 0:Bi.name),zn.createElement("span",{className:$o.yclj,style:{color:Bi!=null&&Bi.is_out?"#37AD83":"#E30000",fontSize:"14rem"},onClick:()=>{const jn=(hr,_n)=>{var qi;hr.is_out=_n,((qi=hr==null?void 0:hr.children)==null?void 0:qi.length)>0&&hr.children.forEach(Sr=>jn(Sr,_n))},ei=!Bi.is_out;Bi.is_out=ei,jn(Bi,ei)}},Bi!=null&&Bi.is_out?"\u52A0\u5165\u5B66\u4E60\u8DEF\u5F84":"\u79FB\u51FA\u5B66\u4E60\u8DEF\u5F84")," ")}):zn.createElement(Pl.Z,{styles:{margin:"20rem auto"}}))))))};var Mr=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(Qr),Hr=je(14566),Zr=je(30641),mi={flex_box_center:"flex_box_center___bAhU8",flex_space_between:"flex_space_between___fGcUL",flex_box_vertical_center:"flex_box_vertical_center___hqbFm",flex_box_center_end:"flex_box_center_end___h8cjt",flex_box_column:"flex_box_column___jkfSL",detailmodal:"detailmodal___KEy8k",title:"title___M0Bdn",button:"button___oEMiZ",drawer:"drawer___Pwq6m",tabstyle:"tabstyle___hGelr",items:"items___RrF7L",itemsactivite:"itemsactivite____kVzF",nodetitle:"nodetitle___UgLxl",nodeboyd:"nodeboyd___R1M87",listitem:"listitem___CjR4j",Tabs:"Tabs___gAkar",addmodal:"addmodal___KHvV4",gxcoent:"gxcoent___B8UeJ",gxtitle:"gxtitle___Ezw1C",Colortitle:"Colortitle___kChPm",gxbody:"gxbody___HmZPk",tag:"tag___b2Gak",form:"form___wY8YH",radioform:"radioform___RW7Fy",settingmodal:"settingmodal___LgbSA",body:"body___KaaXx",left:"left___BbRKH",header:"header___E8vej",treenode:"treenode___XViAn",hudong:"hudong___MzZbW",colortitle:"colortitle___PgqHg",right:"right___jzXCF",multiple:"multiple___GQEEM",settingtag:"settingtag___XVMCI",tree:"tree___zz_WU",select:"select___HL7_r",input:"input___reuVt",DetailStatistics:"DetailStatistics___v31Uq",xxrs:"xxrs___Q156g",xxrscount:"xxrscount___OdU60",righttop:"righttop___dnIBD",rightbottom:"rightbottom___B0s8j"},cs=je(99267),Hs=je(43531),js=je(15075),yr={tag:"tag___aXy_L",active:"active___kZOMC",tagsModal:"tagsModal___wsl_M",btn:"btn___S2nL4",modal:"modal___r3iAS",mHead:"mHead___imW9A",body:"body___fZUhx",add:"add___QHMDJ",error:"error___aJzBo"},yo=je(59301),es=Object.defineProperty,Ts=Object.getOwnPropertySymbols,Zs=Object.prototype.hasOwnProperty,Ls=Object.prototype.propertyIsEnumerable,Ii=(ee,y,E)=>y in ee?es(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Cs=(ee,y)=>{for(var E in y||(y={}))Zs.call(y,E)&&Ii(ee,E,y[E]);if(Ts)for(var E of Ts(y))Ls.call(y,E)&&Ii(ee,E,y[E]);return ee},Is=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});let Pa=[{name:"\u4F5C\u4E1A",id:"zy",item_type:2},{name:"\u5B9E\u8BAD",id:"sx",item_type:2},{name:"\u6559\u6750",id:"jc",item_type:2},{name:"\u89C6\u9891",id:"sp",item_type:2},{name:"\u8BFE\u4EF6",id:"kj",item_type:2},{name:"\u8BD5\u5377",id:"sj",item_type:2},{name:"\u9898\u96C6",id:"tj",item_type:2}],Gs=[{name:"\u7AE0\u8282",id:"zj",item_type:1},{name:"\u77E5\u8BC6\u70B9",id:"zsd",item_type:1}];var eo=({value:ee=[],onChange:y,type:E,dataSources:z=[],pathsDetail:ne={},showmodal:ie,containerRef:se})=>{const ae=(0,yt.useParams)(),[he,pe]=(0,Me.useState)(!1),[ve,xe]=(0,Me.useState)([]),[Se,Be]=(0,Me.useState)(),[De,Re]=(0,Me.useState)(""),[Oe,Le]=(0,Me.useState)(""),[Je,$e]=(0,Me.useState)(""),[_e,st]=(0,Me.useState)(!1),[ct,ut]=(0,Me.useState)(!1),[ht,pt]=(0,Me.useState)([]),[gt,zt]=(0,Me.useState)("");(0,Me.useEffect)(()=>{he&&cn()},[he]);function cn(){return Is(this,null,function*(){let bn=yield(0,on.ZP)("/api/knowledge_items.json",{method:"get",params:{item_type:E,subject_id:ae==null?void 0:ae.pathId}});(bn==null?void 0:bn.status)===0&&(E===3?xe(bn==null?void 0:bn.data):(xe([...Gs,...bn==null?void 0:bn.data]),pt([...Pa,...bn==null?void 0:bn.data2])))})}const Tn=[{background:"#6236FF",borderColor:"#9D82FF"},{background:"#6DB9FF",borderColor:"#6DB9FF"},{background:"rgba(27,175,234,0.8)",borderColor:"#68D5FF"},{background:"#C1AC15",borderColor:"#DCC51C"},{background:"#E07E37",borderColor:"#F79046"},{background:"rgba(29,94,255,0.8)",borderColor:"#6D97FE"},{background:"#E75454",borderColor:"#FE8383"},{background:"#A557D8",borderColor:"#C57AF6"},{background:"#2CA768",borderColor:"#43CC86"},{background:"#1F9269",borderColor:"#38B588"},{background:"#CA7720",borderColor:"#E99338"},{background:"rgba(224,32,32,0.8)",borderColor:"#E02020"},{background:"rgba(255,126,15,0.8)",borderColor:"#FF7E0F"},{background:"rgba(29,94,255,0.8)",borderColor:"#1D5EFF"},{background:"#2BAC8E",borderColor:"#30CB9D"},{background:"#EE5D5D",borderColor:"#FF8181"},{background:"#7E5AFE",borderColor:"#9173FA"},{background:"#3ABCEF",borderColor:"#6FD6FF"},{background:"#B132C2",borderColor:"#C57AF6"},{background:"#46A4FB",borderColor:"#72BBFF"},{background:"#C1AC15",borderColor:"#DCC51C"},{background:"#E07E37",borderColor:"#F79046"},{background:"#1D5EFF",borderColor:"#6D97FE"},{background:"#2CA768",borderColor:"#43CC86"},{background:"#A557D8",borderColor:"#C57AF6"},{background:"#1F9269",borderColor:"#38B588"},{background:"#CA7720",borderColor:"#E99338"}],Zn="\u6807\u7B7E";(0,Me.useEffect)(()=>{xe(z)},[]),(0,Me.useEffect)(()=>{he&&Be(ee)},[he]);const Nn=({title:bn="",style:Sn={},values:ki="",showDelete:ti=!0,modal:fn=!1,active:Bi=!1})=>{const ei=(qi=>qi.split("").reduce((Sr,Pr)=>Sr+Pr.charCodeAt(0),0))(bn)%Tn.length,{background:hr,borderColor:_n}=Tn[ei];return yo.createElement("div",{className:pn()(yr.tag,Bi?yr.active:""),onClick:()=>{var qi;if(fn){if(he===1){let Sr=[...ve,...ht];Be([...Sr.filter(Pr=>(Pr==null?void 0:Pr.id)===ki)])}he===2&&((qi=Se==null?void 0:Se.map(Sr=>Sr.id))!=null&&qi.includes(ki)?Be(Se.filter(Sr=>Sr.id!==ki)):Be([...Se,...ve.filter(Sr=>(Sr==null?void 0:Sr.id)===ki)]))}},style:Cs({background:hr,borderColor:_n},Sn)},yo.createElement("span",null,bn),ti&&yo.createElement("i",{onClick:qi=>Is(void 0,null,function*(){var Sr;if(qi.stopPropagation(),fn){xe(ve.filter(Go=>Go.name!==bn)),xe(ve.filter(Go=>Go.name!==bn));let Pr=yield(0,on.ZP)(`/api/knowledge_items/${ki}.json`,{method:"delete",body:{id:ki,subject_id:(Sr=ne==null?void 0:ne.detail)==null?void 0:Sr.id}});(Pr==null?void 0:Pr.status)===0&&cn()}else y(ee.filter(Pr=>Pr.id!==ki))}),className:"iconfont icon-shanchu5"}))},di=()=>{y(Se),pe(!1)},yi=bn=>Is(void 0,null,function*(){if(!De.replace(/\s+/g,"")&&bn===1){$e(`${Zn}\u4E0D\u80FD\u4E3A\u7A7A`);return}if(!Oe.replace(/\s+/g,"")&&bn===2){zt("\u8D44\u6E90\u4E0D\u80FD\u4E3A\u7A7A");return}if((ve.map(ki=>ki.name).includes(De)||ht.map(ki=>ki.name).includes(De))&&bn===1){$e(`\u8BE5${Zn}\u5DF2\u5B58\u5728\uFF0C\u8BF7\u52FF\u91CD\u590D\u6DFB\u52A0\uFF01`);return}if((ht.map(ki=>ki.name).includes(Oe)||ve.map(ki=>ki.name).includes(Oe))&&bn===2){zt("\u8BE5\u8D44\u6E90\u5DF2\u5B58\u5728\uFF0C\u8BF7\u52FF\u91CD\u590D\u6DFB\u52A0\uFF01");return}let Sn=yield(0,on.ZP)("/api/knowledge_items.json",{method:"post",body:{item_type:E===3?3:bn,name:E===3||bn===1?De:Oe,subject_id:ae==null?void 0:ae.pathId}});(Sn==null?void 0:Sn.status)===0&&cn(),bn===1&&st(!1),bn===2&&ut(!1)});return yo.createElement("div",{className:yr.tagsModal},E===5&&yo.createElement(yo.Fragment,null,ee==null?void 0:ee.map((bn,Sn)=>yo.createElement(Nn,{values:bn.id,key:Sn,title:bn.name,showDelete:!1,style:{marginRight:"20rem",marginBottom:0}})),ie&&yo.createElement("div",{onClick:()=>pe(1),style:{marginBottom:"0rem"},className:yr.btn},yo.createElement("i",{className:"iconfont icon-genghuanguanliyuan1"}),ee!=null&&ee.length?"\u66F4\u6362":"\u9009\u62E9","\u7C7B\u578B")),E===3&&yo.createElement(yo.Fragment,null,ee==null?void 0:ee.map((bn,Sn)=>yo.createElement(Nn,{values:bn.id,key:Sn,title:bn.name})),ie&&yo.createElement("div",{onClick:()=>pe(2),className:yr.btn,style:{marginBottom:"10rem"}},yo.createElement("i",{className:"iconfont icon-tianjiatixing"}),ee!=null&&ee.length?"\u66F4\u6362":"\u9009\u62E9","\u6807\u7B7E")),yo.createElement(Jt.default,{open:!!he,centered:!0,width:"1000rem",okText:"\u4FDD\u5B58",getContainer:()=>se.current,onCancel:()=>pe(!1),cancelText:"\u53D6\u6D88",afterClose:()=>{st(!1),ut(!1),$e(""),Re("")},onOk:di,title:`\u9009\u62E9${Zn}`},yo.createElement("div",{className:yr.modal},yo.createElement("div",{className:yr.mHead},yo.createElement("b",null),yo.createElement("span",null,`${Zn}`,"\uFF08",ve.length,"\uFF09"),yo.createElement("div",{onClick:()=>{st(!0),$e(""),Re("")},className:yr.btn},yo.createElement("i",{className:"iconfont icon-tianjiatixing"}),"\u6DFB\u52A0")),yo.createElement("div",{className:yr.body},ve==null?void 0:ve.map((bn,Sn)=>{var ki,ti,fn;return yo.createElement(Nn,{showDelete:E===3?!((ki=Se==null?void 0:Se.map(Bi=>Bi==null?void 0:Bi.id))!=null&&ki.includes(bn==null?void 0:bn.id)):!((ti=Se==null?void 0:Se.map(Bi=>Bi==null?void 0:Bi.id))!=null&&ti.includes(bn==null?void 0:bn.id))&&!((fn=Gs.map(Bi=>Bi.name))!=null&&fn.includes(bn.name)),modal:!0,style:{cursor:"pointer"},active:Se==null?void 0:Se.map(Bi=>Bi==null?void 0:Bi.id).includes(bn==null?void 0:bn.id),key:bn==null?void 0:bn.id,values:bn==null?void 0:bn.id,title:bn==null?void 0:bn.name})}),_e&&yo.createElement("div",{className:yr.add},yo.createElement(ln.default,{style:{width:"rem"},size:"large",value:De,onChange:bn=>{$e(""),Re(bn.target.value)}}),yo.createElement("i",{onClick:()=>yi(1),className:"iconfont icon-dui",style:{color:"#1B8565"}}),yo.createElement("i",{onClick:()=>st(!1),className:"iconfont icon-shanchu10",style:{color:"#9096A3"}}),!!Je&&yo.createElement("div",{className:yr.error},Je)))),E===5&&yo.createElement("div",{className:yr.modal},yo.createElement("div",{className:yr.mHead},yo.createElement("b",null),yo.createElement("span",null,"\u8D44\u6E90","\uFF08",ht.length,"\uFF09"),yo.createElement("div",{onClick:()=>{ut(!0),zt(""),Le("")},className:yr.btn},yo.createElement("i",{className:"iconfont icon-tianjiatixing"}),"\u6DFB\u52A0")),yo.createElement("div",{className:yr.body},ht==null?void 0:ht.map((bn,Sn)=>{var ki,ti;return yo.createElement(Nn,{showDelete:!((ki=Se==null?void 0:Se.map(fn=>fn==null?void 0:fn.id))!=null&&ki.includes(bn==null?void 0:bn.id))&&!((ti=Pa.map(fn=>fn.name))!=null&&ti.includes(bn.name)),modal:!0,style:{cursor:"pointer"},active:Se==null?void 0:Se.map(fn=>fn==null?void 0:fn.id).includes(bn==null?void 0:bn.id),key:bn==null?void 0:bn.id,values:bn==null?void 0:bn.id,title:bn==null?void 0:bn.name})}),ct&&yo.createElement("div",{className:yr.add},yo.createElement(ln.default,{style:{width:"rem"},size:"large",value:Oe,onChange:bn=>{zt(""),Le(bn.target.value)}}),yo.createElement("i",{onClick:()=>yi(2),className:"iconfont icon-dui",style:{color:"#1B8565"}}),yo.createElement("i",{onClick:()=>ut(!1),className:"iconfont icon-shanchu10",style:{color:"#9096A3"}}),!!gt&&yo.createElement("div",{className:yr.error},gt))))))},bs=je(54172),Ta=je(3736),Ms=je(59301),ws=Object.getOwnPropertySymbols,Ra=Object.prototype.hasOwnProperty,Aa=Object.prototype.propertyIsEnumerable,ga=(ee,y)=>{var E={};for(var z in ee)Ra.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&ws)for(var z of ws(ee))y.indexOf(z)<0&&Aa.call(ee,z)&&(E[z]=ee[z]);return E},ol=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});let fl=[{label:"\u5B9E\u8BAD",key:"1"},{label:"\u89C6\u9891",key:"2"},{label:"\u8BFE\u4EF6",key:"3"},{label:"\u8BD5\u5377",key:"4"}];const gu=ee=>{var y=ee,{types:E,globalSetting:z,loading:ne,dispatch:ie,pathsDetail:se,onChange:ae,ktzykey:he,getother:pe}=y,ve=ga(y,["types","globalSetting","loading","dispatch","pathsDetail","onChange","ktzykey","getother"]),xe,Se,Be,De;let[Re,Oe]=(0,Me.useState)({page:1,limit:10,type:E,keyword:"",select_type:1,subject_id:"",course_id:""});const[Le,Je]=(0,Me.useState)([]);(0,Me.useEffect)(()=>{$e()},[E]);function $e(){return ol(this,null,function*(){Re.select_type===3&&(Re.subject_id="",Re.course_id=""),Re.select_type===2&&(Re.subject_id=""),Re.select_type===1&&(Re.course_id="");let _e=yield(0,on.ZP)("/api/paths/search_all.json",{method:"get",params:Re});(_e==null?void 0:_e.status)===0&&Je(_e)})}return Ms.createElement("div",{style:{padding:"10rem 20rem"}},Ms.createElement("div",{style:{display:"flex"}},Ms.createElement("div",null,E==="1"&&Ms.createElement(ln.default,{placeholder:"\u8BF7\u8F93\u5165\u5173\u952E\u8BCD\u67E5\u8BE2",style:{width:"992rem",marginRight:"10rem",height:"40rem"},onChange:_e=>{Re.keyword=_e.target.value,Re.page=1,Re.limit=10,Oe(Re)}}),E!=="1"&&Ms.createElement("div",{style:{display:"flex"}},Ms.createElement("div",{style:{width:"223rem",alignItems:"center",display:"flex",height:"40rem"}},Ms.createElement("span",{style:{width:"92rem",border:"1rem solid #DCDCDC",borderRightStyle:"none",background:"#F6F7F9",height:"40rem",display:"flex",alignItems:"center",justifyContent:"center",lineHeight:"40rem",fontSize:"16rem",color:"#666666"}},"\u6240\u5728\u4F4D\u7F6E"),Ms.createElement(hl.default,{value:Re.select_type,onChange:_e=>{Re.select_type=_e,Re.page=1,Re.limit=10,Oe(Re),$e()},className:mi.select,style:{width:"131rem"}},Ms.createElement(hl.default.Option,{value:1},"\u5B9E\u8DF5\u8BFE\u7A0B"),Ms.createElement(hl.default.Option,{value:2},"\u6559\u5B66\u8BFE\u5802"),Ms.createElement(hl.default.Option,{value:3},"\u4E2A\u4EBA\u4E2D\u5FC3"))),Re.select_type!==3&&Ms.createElement(hl.default,{value:Re.subject_id||Re.course_id,onChange:_e=>{Re.course_id=_e,Re.subject_id=_e,Re.page=1,Re.limit=10,Oe(Re),$e()},className:mi.select,style:{width:"270rem",marginLeft:"8rem"}},Re.select_type===1&&((xe=Le==null?void 0:Le.subjects)==null?void 0:xe.map(_e=>Ms.createElement(hl.default.Option,{value:_e.id},_e.name))),Re.select_type===2&&((Se=Le==null?void 0:Le.courses)==null?void 0:Se.map(_e=>Ms.createElement(hl.default.Option,{value:_e.id},_e.name)))),Ms.createElement(ln.default,{onChange:_e=>{Re.keyword=_e.target.value,Re.page=1,Re.limit=10,Oe(Re)},addonBefore:((Be=fl==null?void 0:fl.find(_e=>_e.key===E))==null?void 0:Be.label)+"\u540D\u79F0",className:mi.input,style:{marginLeft:"10rem",width:"486rem",height:"40rem"}}))),Ms.createElement(It.ZP,{type:"primary",style:{height:"40rem",fontSize:"14rem",boxShadow:"none",lineHeight:"40rem",width:"108rem",padding:"0",marginLeft:"10rem"},onClick:()=>{$e()}},"\u67E5\u8BE2")),Ms.createElement(bs.default,{style:{marginTop:"10rem"},dataSource:Le==null?void 0:Le.data,pagination:!1,rowKey:_e=>_e.id,scroll:{y:"400rem"},columns:[{title:((De=fl==null?void 0:fl.find(_e=>_e.key===E))==null?void 0:De.label)+"\u540D\u79F0",dataIndex:"name",ellipsis:!0,key:"name"},{title:E==="1"?"\u5408\u4F5C\u8005":"\u6240\u5C5E\u6A21\u5757",dataIndex:"name",key:"name",ellipsis:!0,render:(_e,st)=>Ms.createElement("span",null,E==="1"?st==null?void 0:st.user_names:st==null?void 0:st.model)},{title:E==="1"?"\u6700\u8FD1\u4FEE\u6539\u65F6\u95F4":"\u6240\u5728\u4F4D\u7F6E",dataIndex:"updated_at",ellipsis:!0,render:(_e,st)=>Ms.createElement("span",null,E==="1"?st==null?void 0:st.updated_at:st==null?void 0:st.stage_name)},{title:"\u64CD\u4F5C",dataIndex:"url",width:"100rem",render:(_e,st)=>Ms.createElement("a",{onClick:()=>{(st==null?void 0:st.container_type)==="Video"?Jt.default.confirm({icon:null,title:"\u89C6\u9891\u64AD\u653E",centered:!0,closable:!0,footer:!1,width:600,content:Ms.createElement(Ta.Z,{allow_skip:!0,src:_e})}):E==="3"?pe(_e):window.open(_e)}},"\u67E5\u770B")}],rowSelection:{type:"radio",onChange(_e,st){ae(st)}}}),Ms.createElement(Fn.Z,{hideOnSinglePage:!0,style:{marginTop:"20rem"},total:Le==null?void 0:Le.total_count,current:Re==null?void 0:Re.page,pageSize:Re==null?void 0:Re.limit,onChange:(_e,st)=>{Re.page=_e,Re.limit=st,Oe(Re),$e()}}))};var Ys=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(gu),Cu=je(84105),Wo=je(59301),Zu=Object.defineProperty,Ml=Object.defineProperties,au=Object.getOwnPropertyDescriptors,Cl=Object.getOwnPropertySymbols,ll=Object.prototype.hasOwnProperty,El=Object.prototype.propertyIsEnumerable,Bl=(ee,y,E)=>y in ee?Zu(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Xu=(ee,y)=>{for(var E in y||(y={}))ll.call(y,E)&&Bl(ee,E,y[E]);if(Cl)for(var E of Cl(y))El.call(y,E)&&Bl(ee,E,y[E]);return ee},Dc=(ee,y)=>Ml(ee,au(y)),eu=(ee,y)=>{var E={};for(var z in ee)ll.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&Cl)for(var z of Cl(ee))y.indexOf(z)<0&&El.call(ee,z)&&(E[z]=ee[z]);return E},Yc=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const Tl=ee=>{var y=ee,{typesdata:E,globalSetting:z,loading:ne,dispatch:ie,pathsDetail:se,onChange:ae,uuid:he,itemsuuid:pe}=y,ve=eu(y,["typesdata","globalSetting","loading","dispatch","pathsDetail","onChange","uuid","itemsuuid"]),xe,Se,Be,De,Re,Oe,Le,Je,$e,_e,st,ct;const ut=(0,yt.useParams)();let[ht,pt]=(0,Me.useState)([]),[gt,zt]=(0,Me.useState)(!1);const[cn,Tn]=(0,Me.useState)([]),[Zn,Nn]=(0,Me.useState)(""),[di,yi]=(0,Me.useState)(""),[bn,Sn]=(0,Me.useState)([]),[ki,ti]=(0,Me.useState)(!1);let[fn,Bi]=(0,Me.useState)({bh:[],qx:[],hx:[],gl:[]});(0,Me.useEffect)(()=>{jn()},[he]),(0,Me.useEffect)(()=>{if(E){let _n=JSON.parse(sessionStorage.getItem("typesdatajsoncopy"));Bi(_n)}return()=>{}},[E]);function jn(){return Yc(this,null,function*(){var _n,qi,Sr,Pr,Go;zt(!0);let _o=yield(0,on.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{nodeUuid:he,subject_id:ut==null?void 0:ut.pathId,depth:-1,relationshipFilter:"\u5305\u542B>"}});if(zt(!1),(_o==null?void 0:_o.status)===0){Tn(_o==null?void 0:_o.data);const un=[...(0,Et.fX)((qi=(_n=_o==null?void 0:_o.data)==null?void 0:_n.nodes)==null?void 0:qi.map((so,Kr)=>{var kr,_r;return Dc(Xu({},so),{key:(kr=so==null?void 0:so.properties)==null?void 0:kr.uuid,title:(_r=so==null?void 0:so.properties)==null?void 0:_r.name})}),(Go=(Pr=(Sr=_o==null?void 0:_o.data)==null?void 0:Sr.relationships)==null?void 0:Pr.filter(so=>so.type==="\u5305\u542B"||so.type==="\u524D\u5E8F"))==null?void 0:Go.filter((so,Kr,kr)=>Kr===kr.findIndex(_r=>_r.endNodeUuid===so.endNodeUuid))).children||[]];ht=un,yi(JSON.stringify(un)),pt(un)}})}(0,Me.useEffect)(()=>{ae(fn)},[fn]);function ei(_n,qi,Sr){for(let Pr of _n)Pr!=null&&Pr.title.includes(qi)&&Sr.push(Pr),Pr.children&&Pr.children.length>0&&(ei(Pr.children,qi,Sr),hr(Pr.children,qi,Sr)&&Sr.push(Pr))}function hr(_n,qi,Sr){for(let Pr of _n)if(Pr!=null&&Pr.title.includes(qi))return!0}return Wo.createElement(rn.Z,{spinning:gt},Wo.createElement("div",{className:mi.body},Wo.createElement("div",{className:mi.left},Wo.createElement("div",{className:mi.header},Wo.createElement("div",null,"\u5171",Wo.createElement("span",{style:{color:"#1B8565"}},((Se=(xe=cn==null?void 0:cn.metricCounters)==null?void 0:xe[0])==null?void 0:Se.count)||0),"\u4E2A\u6807\u7B7E\u8282\u70B9\uFF0C",Wo.createElement("span",{style:{color:"#1B8565"}},((De=(Be=cn==null?void 0:cn.metricCounters)==null?void 0:Be[1])==null?void 0:De.count)||0),"\u4E2A\u77E5\u8BC6\u8282\u70B9"),Wo.createElement(ln.default.Search,{style:{width:"350rem",borderRadius:"50%"},onChange:_n=>{var qi,Sr,Pr;const{value:Go}=_n.target;Nn(Go);let _o=[];ei(JSON.parse(di),Go,_o),_o.push((qi=cn==null?void 0:cn.nodes)==null?void 0:qi[0]);const ta=cn==null?void 0:cn.nodes.filter(Kr=>{var kr;return((kr=Kr==null?void 0:Kr.properties)==null?void 0:kr.name.indexOf(Go))>-1}).map(Kr=>{var kr;return(kr=Kr==null?void 0:Kr.properties)==null?void 0:kr.uuid});Sn(ta);const so=[...(0,Et.fX)(_o,(Pr=(Sr=cn==null?void 0:cn.relationships)==null?void 0:Sr.filter(Kr=>Kr.type==="\u5305\u542B"||Kr.type==="\u524D\u5E8F"))==null?void 0:Pr.filter((Kr,kr,_r)=>kr===_r.findIndex(Ks=>Ks.endNodeUuid===Kr.endNodeUuid)).filter(Kr=>(_o==null?void 0:_o.map(kr=>kr==null?void 0:kr.key).includes(Kr.endNodeUuid))||(_o==null?void 0:_o.map(kr=>kr==null?void 0:kr.key).includes(Kr.startNodeUuid)))).children||[]];ht=so,pt(so),ti(!0)},placeholder:"\u8BF7\u8F93\u5165\u5173\u952E\u8BCD\u641C\u7D22"})),Wo.createElement(Yi.default,{style:{marginTop:"30rem",maxHeight:"320rem",overflow:"auto"},showLine:!0,treeData:ht,className:mi.tree,expandedKeys:bn,onExpand:_n=>{Sn(_n),ti(!1)},autoExpandParent:ki,blockNode:!0,switcherIcon:Wo.createElement(Cu.Z,null),titleRender:_n=>{var qi,Sr,Pr,Go,_o,ta,un,so,Kr,kr,_r,Ks,jo,Ro,qa;return Wo.createElement("div",{className:mi.treenode,key:(qi=_n==null?void 0:_n.properties)==null?void 0:qi.uuid},Wo.createElement("div",{style:{width:"50%",display:"flex",alignItems:"center"}},((Sr=fn==null?void 0:fn.bh)==null?void 0:Sr.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)}))&&Wo.createElement("span",{className:mi.settingtag,style:{background:"#6236ff"}},"\u5305\u542B"),((Pr=fn==null?void 0:fn.qx)==null?void 0:Pr.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)}))&&Wo.createElement("span",{className:mi.settingtag,style:{background:"#24A881"}},"\u524D\u7F6E"),((Go=fn==null?void 0:fn.hx)==null?void 0:Go.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)}))&&Wo.createElement("span",{className:mi.settingtag,style:{background:"#EC8657"}},"\u540E\u7F6E"),((_o=fn==null?void 0:fn.gl)==null?void 0:_o.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)}))&&Wo.createElement("span",{className:mi.settingtag,style:{background:"#497DFF"}},"\u5173\u8054"),Wo.createElement("div",{className:mi.multiple,title:_n==null?void 0:_n.title,dangerouslySetInnerHTML:{__html:(ta=_n==null?void 0:_n.title)==null?void 0:ta.replaceAll(Zn,`<span style= "color: #00B187" >${Zn}</span>`)},style:{width:"100%",fontSize:"14rem",color:"#000",fontWeight:400}})),Wo.createElement("div",{className:mi.hudong},!((un=fn==null?void 0:fn.qx)!=null&&un.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)})||(so=fn==null?void 0:fn.bh)!=null&&so.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)})||(Kr=fn==null?void 0:fn.hx)!=null&&Kr.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)})||(kr=fn==null?void 0:fn.gl)!=null&&kr.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)}))&&pe!==((_r=_n==null?void 0:_n.properties)==null?void 0:_r.uuid)&&Wo.createElement("div",null,Wo.createElement("span",{onClick:()=>{var mn,Gt,tr,Fr;if(!(((Gt=(mn=fn==null?void 0:fn.bh)==null?void 0:mn.filter(vi=>{var Dr;return(vi==null?void 0:vi.uuid)===((Dr=_n==null?void 0:_n.properties)==null?void 0:Dr.uuid)}))==null?void 0:Gt.length)>0)){let vi=[];vi.push({name:(tr=_n==null?void 0:_n.properties)==null?void 0:tr.name,uuid:(Fr=_n==null?void 0:_n.properties)==null?void 0:Fr.uuid}),Bi({bh:[...vi,...fn==null?void 0:fn.bh],qx:fn==null?void 0:fn.qx,hx:fn==null?void 0:fn.hx,gl:fn==null?void 0:fn.gl})}},className:mi.colortitle,style:{marginRight:"20rem"}},"\u8BBE\u4E3A\u5305\u542B"),Wo.createElement("span",{onClick:()=>{var mn,Gt,tr,Fr;if(!(((Gt=(mn=fn==null?void 0:fn.qx)==null?void 0:mn.filter(vi=>{var Dr;return(vi==null?void 0:vi.uuid)===((Dr=_n==null?void 0:_n.properties)==null?void 0:Dr.uuid)}))==null?void 0:Gt.length)>0)){let vi=[];vi.push({name:(tr=_n==null?void 0:_n.properties)==null?void 0:tr.name,uuid:(Fr=_n==null?void 0:_n.properties)==null?void 0:Fr.uuid}),Bi({qx:[...vi,...fn==null?void 0:fn.qx],hx:fn==null?void 0:fn.hx,bh:fn==null?void 0:fn.bh,gl:fn==null?void 0:fn.gl})}},className:mi.colortitle},"\u8BBE\u4E3A\u524D\u7F6E"),Wo.createElement("span",{onClick:()=>{var mn,Gt,tr,Fr;if(!(((Gt=(mn=fn==null?void 0:fn.hx)==null?void 0:mn.filter(vi=>{var Dr;return(vi==null?void 0:vi.uuid)===((Dr=_n==null?void 0:_n.properties)==null?void 0:Dr.uuid)}))==null?void 0:Gt.length)>0)){let vi=[];vi.push({name:(tr=_n==null?void 0:_n.properties)==null?void 0:tr.name,uuid:(Fr=_n==null?void 0:_n.properties)==null?void 0:Fr.uuid}),Bi({qx:fn==null?void 0:fn.qx,hx:[...vi,...fn==null?void 0:fn.hx],bh:fn==null?void 0:fn.bh,gl:fn==null?void 0:fn.gl})}},style:{margin:"0rem 20rem"},className:mi.colortitle},"\u8BBE\u4E3A\u540E\u7F6E"),Wo.createElement("span",{onClick:()=>{var mn,Gt,tr,Fr;if(!(((Gt=(mn=fn==null?void 0:fn.gl)==null?void 0:mn.filter(vi=>{var Dr;return(vi==null?void 0:vi.uuid)===((Dr=_n==null?void 0:_n.properties)==null?void 0:Dr.uuid)}))==null?void 0:Gt.length)>0)){let vi=[];vi.push({name:(tr=_n==null?void 0:_n.properties)==null?void 0:tr.name,uuid:(Fr=_n==null?void 0:_n.properties)==null?void 0:Fr.uuid}),Bi({qx:fn==null?void 0:fn.qx,hx:fn==null?void 0:fn.hx,gl:[...vi,...fn==null?void 0:fn.gl],bh:fn==null?void 0:fn.bh})}},className:mi.colortitle},"\u8BBE\u4E3A\u5173\u8054")),Wo.createElement("span",{onClick:()=>{var mn;let Gt=(mn=fn==null?void 0:fn.bh)==null?void 0:mn.filter(tr=>{var Fr;return tr.uuid!==((Fr=_n==null?void 0:_n.properties)==null?void 0:Fr.uuid)});Bi({bh:Gt,hx:fn==null?void 0:fn.hx,qx:fn==null?void 0:fn.qx,gl:fn==null?void 0:fn.gl})}},((Ks=fn==null?void 0:fn.bh)==null?void 0:Ks.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)}))&&"\u53D6\u6D88\u5305\u542B"),Wo.createElement("span",{onClick:()=>{var mn;let Gt=(mn=fn==null?void 0:fn.qx)==null?void 0:mn.filter(tr=>{var Fr;return tr.uuid!==((Fr=_n==null?void 0:_n.properties)==null?void 0:Fr.uuid)});Bi({qx:Gt,hx:fn==null?void 0:fn.hx,bh:fn==null?void 0:fn.bh,gl:fn==null?void 0:fn.gl})}},((jo=fn==null?void 0:fn.qx)==null?void 0:jo.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)}))&&"\u53D6\u6D88\u524D\u7F6E"),Wo.createElement("span",{onClick:()=>{var mn;let Gt=(mn=fn==null?void 0:fn.hx)==null?void 0:mn.filter(tr=>{var Fr;return tr.uuid!==((Fr=_n==null?void 0:_n.properties)==null?void 0:Fr.uuid)});Bi({qx:fn==null?void 0:fn.qx,hx:Gt,bh:fn==null?void 0:fn.bh,gl:fn==null?void 0:fn.gl})}},((Ro=fn==null?void 0:fn.hx)==null?void 0:Ro.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)}))&&"\u53D6\u6D88\u540E\u7F6E"),Wo.createElement("span",{onClick:()=>{var mn;let Gt=(mn=fn==null?void 0:fn.gl)==null?void 0:mn.filter(tr=>{var Fr;return tr.uuid!==((Fr=_n==null?void 0:_n.properties)==null?void 0:Fr.uuid)});Bi({qx:fn==null?void 0:fn.qx,hx:fn==null?void 0:fn.hx,bh:fn==null?void 0:fn.bh,gl:Gt})}},((qa=fn==null?void 0:fn.gl)==null?void 0:qa.find(mn=>{var Gt;return(mn==null?void 0:mn.uuid)===((Gt=_n==null?void 0:_n.properties)==null?void 0:Gt.uuid)}))&&"\u53D6\u6D88\u5173\u8054")))}})),Wo.createElement("div",{className:mi.right},Wo.createElement("div",{className:mi.title},"\u5DF2\u5173\u8054\u5173\u7CFB"),Wo.createElement("div",{style:{padding:"20rem 25rem"}},Wo.createElement("div",{className:mi.gxtitle},Wo.createElement("div",{className:mi.Colortitle,style:{background:"#6236ff"}}),Wo.createElement("div",null,"\u88AB\u5305\u542B\uFF08",(Re=fn.bh)==null?void 0:Re.length,"\uFF09")),Wo.createElement("div",{className:mi.gxbody},(Oe=fn==null?void 0:fn.bh)==null?void 0:Oe.map(_n=>Wo.createElement("div",{className:mi.tag,style:{background:"#6236ff"}},Wo.createElement("span",{style:{marginRight:"10rem"}},_n==null?void 0:_n.name)," ",Wo.createElement(cs.Z,{onClick:()=>{var qi;let Sr=(qi=fn==null?void 0:fn.bh)==null?void 0:qi.filter(Pr=>Pr.uuid!==_n.uuid);Bi({bh:Sr,hx:fn==null?void 0:fn.hx,qx:fn==null?void 0:fn.qx,gl:fn==null?void 0:fn.gl})}})))),Wo.createElement("div",{className:mi.gxtitle,style:{marginTop:"30rem"}},Wo.createElement("div",{className:mi.Colortitle,style:{background:"#24A881"}}),Wo.createElement("div",null,"\u524D\u5E8F\uFF08",(Le=fn.qx)==null?void 0:Le.length,"\uFF09")),Wo.createElement("div",{className:mi.gxbody},(Je=fn==null?void 0:fn.qx)==null?void 0:Je.map(_n=>Wo.createElement("div",{className:mi.tag,style:{background:"#24A881"}},Wo.createElement("span",{style:{marginRight:"10rem"}},_n==null?void 0:_n.name)," ",Wo.createElement(cs.Z,{onClick:()=>{var qi;let Sr=(qi=fn==null?void 0:fn.qx)==null?void 0:qi.filter(Pr=>Pr.uuid!==_n.uuid);Bi({qx:Sr,hx:fn==null?void 0:fn.hx,bh:fn==null?void 0:fn.bh,gl:fn==null?void 0:fn.gl})}})))),Wo.createElement("div",{className:mi.gxtitle,style:{marginTop:"30rem"}},Wo.createElement("div",{className:mi.Colortitle,style:{background:"#EC8657"}}),Wo.createElement("div",null,"\u540E\u5E8F\uFF08",($e=fn.hx)==null?void 0:$e.length,"\uFF09")),Wo.createElement("div",{className:mi.gxbody},(_e=fn==null?void 0:fn.hx)==null?void 0:_e.map(_n=>Wo.createElement("div",{className:mi.tag,style:{background:"#EC8657"}},Wo.createElement("span",{style:{marginRight:"10rem"}},_n==null?void 0:_n.name)," ",Wo.createElement(cs.Z,{onClick:()=>{var qi;let Sr=(qi=fn==null?void 0:fn.hx)==null?void 0:qi.filter(Pr=>Pr.uuid!==_n.uuid);Bi({qx:fn==null?void 0:fn.qx,bh:fn==null?void 0:fn.bh,hx:Sr,gl:fn==null?void 0:fn.gl})}})))),Wo.createElement("div",{className:mi.gxtitle,style:{marginTop:"30rem"}},Wo.createElement("div",{className:mi.Colortitle,style:{background:"#497DFF"}}),Wo.createElement("div",null,"\u5173\u8054\uFF08",(st=fn.gl)==null?void 0:st.length,"\uFF09")),Wo.createElement("div",{className:mi.gxbody},(ct=fn==null?void 0:fn.gl)==null?void 0:ct.map(_n=>Wo.createElement("div",{className:mi.tag,style:{background:"#497DFF"}},Wo.createElement("span",{style:{marginRight:"10rem"}},_n==null?void 0:_n.name)," ",Wo.createElement(cs.Z,{onClick:()=>{var qi;let Sr=(qi=fn==null?void 0:fn.gl)==null?void 0:qi.filter(Pr=>Pr.uuid!==_n.uuid);Bi({qx:fn==null?void 0:fn.qx,bh:fn==null?void 0:fn.bh,hx:fn==null?void 0:fn.hx,gl:Sr})}}))))))))};var pl=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(Tl),el=je(89392),ru=je(48790),bl=je(56336),mu=je(59301),hs=Object.getOwnPropertySymbols,ps=Object.prototype.hasOwnProperty,kl=Object.prototype.propertyIsEnumerable,Vs=(ee,y)=>{var E={};for(var z in ee)ps.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&hs)for(var z of hs(ee))y.indexOf(z)<0&&kl.call(ee,z)&&(E[z]=ee[z]);return E},Br=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const Iu=[3,2,1];let _t=null;const ai=ee=>{var y=ee,{pathsDetail:E,user:z,globalSetting:ne,loading:ie,dispatch:se,datas:ae,items:he}=y,pe=Vs(y,["pathsDetail","user","globalSetting","loading","dispatch","datas","items"]);const ve=(0,Me.useRef)(),xe=(0,Me.useRef)(),Se=(0,Me.useRef)(null);(0,Me.useEffect)(()=>{De()},[ae]),(0,Me.useEffect)(()=>(window.addEventListener("resize",Be),()=>{window.removeEventListener("resize",Be)}),[]);function Be(){var Re,Oe;(Oe=(Re=ve.current)==null?void 0:Re.update)==null||Oe.call(Re)}function De(){return Br(this,null,function*(){var Re,Oe,Le,Je,$e,_e,st,ct;if(((Re=ae==null?void 0:ae.nodes)==null?void 0:Re.length)>0){let ut=(Oe=ae==null?void 0:ae.nodes)==null?void 0:Oe.filter(pt=>{var gt;return he==null?void 0:he.includes((gt=pt==null?void 0:pt.properties)==null?void 0:gt.uuid)}).map(pt=>{var gt,zt,cn,Tn,Zn,Nn,di,yi,bn,Sn,ki,ti;return{rootNodeUuid:(gt=pt==null?void 0:pt.properties)==null?void 0:gt.rootNodeUuid,id:((zt=pt==null?void 0:pt.properties)==null?void 0:zt.uuid)+"_",name:(cn=pt==null?void 0:pt.properties)==null?void 0:cn.name,description:(Tn=pt==null?void 0:pt.properties)==null?void 0:Tn.description,nodeType:(Zn=pt==null?void 0:pt.properties)==null?void 0:Zn.nodeType,tags:((Nn=pt==null?void 0:pt.properties)==null?void 0:Nn.tags)&&((bn=(yi=(di=pt==null?void 0:pt.properties)==null?void 0:di.tags)==null?void 0:yi.split("\uFF0C"))==null?void 0:bn.map(fn=>({name:fn}))),colorType:parseInt((Sn=pt==null?void 0:pt.properties)==null?void 0:Sn.color)>3?"3":(ki=pt==null?void 0:pt.properties)==null?void 0:ki.color,activeColor:"#FA6400",size:Iu[((ti=pt==null?void 0:pt.properties)==null?void 0:ti.color)-1]||1,shape:"circle",hide:!1,isExtendedState:!0}}),ht=(_e=($e=(Je=(Le=ae==null?void 0:ae.relationships)==null?void 0:Le.filter(pt=>{var gt,zt,cn,Tn,Zn,Nn;return pt.endNodeUuid!==((cn=(zt=(gt=ae==null?void 0:ae.nodes)==null?void 0:gt[0])==null?void 0:zt.properties)==null?void 0:cn.rootNodeUuid)&&pt.startNodeUuid!==((Nn=(Zn=(Tn=ae==null?void 0:ae.nodes)==null?void 0:Tn[0])==null?void 0:Zn.properties)==null?void 0:Nn.rootNodeUuid)}))==null?void 0:Je.filter(pt=>(he==null?void 0:he.includes(pt.startNodeUuid))&&(he==null?void 0:he.includes(pt.endNodeUuid))))==null?void 0:$e.filter(pt=>pt.type==="\u5305\u542B"||pt.type==="\u524D\u5E8F"||pt.type==="\u5173\u8054"))==null?void 0:_e.map(pt=>({hide:!1,id:(pt==null?void 0:pt.endNodeUuid)+"_",label:pt==null?void 0:pt.type,props:[],colorType:1,sourceRadius:32,targetRadius:32,source:(pt==null?void 0:pt.startNodeUuid)+"_",target:(pt==null?void 0:pt.endNodeUuid)+"_",value:10}));ve.current=null,xe.current.innerHTML="",ve.current=new bl.createContainer({containerName:"#graphRefs",width:((st=xe==null?void 0:xe.current)==null?void 0:st.clientWidth)||0,height:((ct=xe==null?void 0:xe.current)==null?void 0:ct.clientHeight)||0,toolbarData:[],clickToggle:!1,background:"#fff",isShowMask:!1,nodes:ut,links:ht,zoomOptions:{minScale:.2,maxScale:5},nodeMouseover:function(pt){return pt},nodeClick:function(pt){var gt;return(gt=ve==null?void 0:ve.current)==null||gt.selectToNode(pt.id),pt},layout:{force:!1,x:20,y:60}}),ve.current.zoomOut()}})}return mu.createElement("div",{ref:Se,style:{background:"#fff",height:"455rem"}},mu.createElement("div",{style:{width:"100%",height:"455rem"},ref:xe,id:"graphRefs"}))};var zh=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(ai),ch="data:image/png;base64,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",rc="data:image/png;base64,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",Ec="data:image/png;base64,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",hh="data:image/png;base64,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",Rc=je(37285),od=je(42441),ku=je(76411),$s=je(48961),zc=je(59301),_c=Object.defineProperty,Au=Object.getOwnPropertySymbols,tl=Object.prototype.hasOwnProperty,Yu=Object.prototype.propertyIsEnumerable,Ch=(ee,y,E)=>y in ee?_c(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Du=(ee,y)=>{for(var E in y||(y={}))tl.call(y,E)&&Ch(ee,E,y[E]);if(Au)for(var E of Au(y))Yu.call(y,E)&&Ch(ee,E,y[E]);return ee},Ju=({dataSource:ee,height:y,labelTextColor:E,legend:z={}})=>{console.log("dataSource:",ee);const ne=(0,Me.useRef)(null),ie=(0,Me.useRef)(null),[se,ae]=(0,Me.useState)({}),[he,pe]=(0,Me.useState)(""),[ve,xe]=(0,Me.useState)(""),Se=ee||[{name:"\u638C\u63E1\u738780%~100%",value:1,itemStyle:{color:"rgb(223,209,38)"}},{name:"\u638C\u63D0\u738760%~79%",value:2,itemStyle:{color:"rgb(6,234,230)"}},{name:"\u638C\u63A8\u738759%\u4EE5\u4E0B",value:3,itemStyle:{color:"rgb(6,110,247)"}}];(0,Me.useEffect)(()=>(De(),window.addEventListener("resize",Be),()=>{window.removeEventListener("resize",Be)}),[]),(0,Me.useEffect)(()=>{ee!=null&&ee.length&&Be()},[ee]);const Be=()=>{var _e,st;const ct=Re(Se,.8);(_e=ie.current)==null||_e.setOption(ct),(st=ie.current)==null||st.resize()},De=()=>{const _e=ne.current;ie.current=ku.init(_e);const st=Re(Se,.8);ae(st),ie.current.setOption(st),ie.current.getZr().off("mousewheel"),st.series.push({name:"\u638C\u63E1\u7387",type:"pie",labelLine:{length:10,length2:10},startAngle:-20,clockwise:!1,radius:["20%","50%"],center:["50%","50%"],data:Se,itemStyle:{opacity:0}}),ie.current.setOption(st),$e(ie.current)},Re=(_e,st)=>{let ct,ut=[],ht=0,pt=0,gt=0,zt=[],cn=[],Tn=1-st;_e.sort((Nn,di)=>di.value-Nn.value);for(let Nn=0;Nn<_e.length;Nn++){ht+=_e[Nn].value;let di={name:typeof _e[Nn].name=="undefined"?`series${Nn}`:_e[Nn].name,type:"surface",parametric:!0,wireframe:{show:!1},pieData:_e[Nn],pieStatus:{selected:!1,hovered:!1,k:Tn},center:["10%","50%"]};if(typeof _e[Nn].itemStyle!="undefined"){let yi={};typeof _e[Nn].itemStyle.color!="undefined"&&(yi.color=_e[Nn].itemStyle.color),typeof _e[Nn].itemStyle.opacity!="undefined"&&(yi.opacity=_e[Nn].itemStyle.opacity),di.itemStyle=yi}ut.push(di)}zt=[],cn=[];for(let Nn=0;Nn<ut.length;Nn++){gt=pt+ut[Nn].pieData.value,ut[Nn].pieData.startRatio=pt/ht,ut[Nn].pieData.endRatio=gt/ht,ut[Nn].parametricEquation=Le(ut[Nn].pieData.startRatio,ut[Nn].pieData.endRatio,!1,!1,Tn,ut[Nn].pieData.value),pt=gt;let di=Je(ut[Nn].pieData.value/ht,4);zt.push({name:ut[Nn].name,value:di}),cn.push({name:ut[Nn].name,value:di})}let Zn=Oe(ut,26);return{legend:Du({data:zt,orient:"horizontal",left:10,top:10,itemGap:10,textStyle:{color:"#A1E2FF"},show:!0,icon:"circle",formatter:function(Nn){let di=cn.filter(bn=>bn.name===Nn)[0],yi=Je(di.value*100,2)+"%";return`${di.name} ${yi}`}},z),labelLine:{show:!0,lineStyle:{color:"#7BC0CB"}},label:{show:!0,position:"outside",rich:{b:{color:E||"#FFF",fontSize:12,lineHeight:20},c:{fontSize:16,lineHeight:24,color:E||"#FFF"}},formatter:`{b|{b}
|
|
}{c|{c}}{b|}`},xAxis3D:{min:-1,max:1},yAxis3D:{min:-1,max:1},zAxis3D:{min:-1,max:1},grid3D:{show:!1,boxHeight:Zn,viewControl:{alpha:40,distance:300,rotateSensitivity:0,zoomSensitivity:0,panSensitivity:0,autoRotate:!1}},series:ut}},Oe=(_e,st)=>(_e.sort((ct,ut)=>ut.pieData.value-ct.pieData.value),st*25/_e[0].pieData.value),Le=(_e,st,ct,ut,ht,pt)=>{let gt=(_e+st)/2,zt=_e*Math.PI*2,cn=st*Math.PI*2,Tn=gt*Math.PI*2;_e===0&&st===1&&(ct=!1),ht=typeof ht!="undefined"?ht:1/3;let Zn=ct?Math.cos(Tn)*.1:0,Nn=ct?Math.sin(Tn)*.1:0,di=ut?1.05:1;return{u:{min:-Math.PI,max:Math.PI*3,step:Math.PI/32},v:{min:0,max:Math.PI*2,step:Math.PI/20},x:function(yi,bn){return yi<zt?Zn+Math.cos(zt)*(1+Math.cos(bn)*ht)*di:yi>cn?Zn+Math.cos(cn)*(1+Math.cos(bn)*ht)*di:Zn+Math.cos(yi)*(1+Math.cos(bn)*ht)*di},y:function(yi,bn){return yi<zt?Nn+Math.sin(zt)*(1+Math.cos(bn)*ht)*di:yi>cn?Nn+Math.sin(cn)*(1+Math.cos(bn)*ht)*di:Nn+Math.sin(yi)*(1+Math.cos(bn)*ht)*di},z:function(yi,bn){return yi<-Math.PI*.5?Math.sin(yi):yi>Math.PI*2.5?Math.sin(yi)*pt*.1:Math.sin(bn)>0?1*pt*.1:-1}}},Je=(_e,st)=>{let ct=parseFloat(_e);if(isNaN(ct))return!1;ct=Math.round(_e*Math.pow(10,st))/Math.pow(10,st);let ut=ct.toString();ut.indexOf(".")<0&&(ut+=".");for(let pt=ut.length-ut.indexOf(".");pt<=st;pt++)ut+="0";return ut},$e=()=>{ie.current.on("click",function(_e){if(_e.seriesName==="pie2d"){pe(_e.dataIndex);let st=ie.current.getWidth()/2,ct=ie.current.getHeight()/2;ie.current.dispatchAction({type:"pieSelect",seriesIndex:0,dataIndex:_e.dataIndex})}}),ie.current.on("mousemove",function(_e){}),ie.current.on("mouseout",function(){ie.current.dispatchAction({type:"pieUnSelect",seriesIndex:0,dataIndex:ve}),xe("")})};return zc.createElement("div",{ref:ne,style:{width:"100%",height:y||"500rem"}})};const xf=ee=>({tooltip:{trigger:"item"},legend:{top:"0%",left:"center"},series:[{name:"\u5B8C\u6210\u5360\u6BD4\u60C5\u51B5",type:"pie",radius:["40%","70%"],avoidLabelOverlap:!1,itemStyle:{borderRadius:10,borderColor:"#fff",borderWidth:2},label:{show:!1,position:"center"},emphasis:{label:{show:!0,fontSize:14,fontWeight:"bold"}},labelLine:{show:!1},data:ee}]});var ul=je(81187),Ka=je(59301),Dl=Object.defineProperty,Ol=Object.getOwnPropertySymbols,Ou=Object.prototype.hasOwnProperty,Wu=Object.prototype.propertyIsEnumerable,Jl=(ee,y,E)=>y in ee?Dl(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,tf=(ee,y)=>{for(var E in y||(y={}))Ou.call(y,E)&&Jl(ee,E,y[E]);if(Ol)for(var E of Ol(y))Wu.call(y,E)&&Jl(ee,E,y[E]);return ee},la=(ee,y)=>{var E={};for(var z in ee)Ou.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&Ol)for(var z of Ol(ee))y.indexOf(z)<0&&Wu.call(ee,z)&&(E[z]=ee[z]);return E},rg=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const sl=[{name:"",value:0,itemStyle:{color:"rgb(223,209,38)"}},{name:"",value:0,itemStyle:{color:"rgb(6,234,230)"}},{name:"",value:0,itemStyle:{color:"rgb(6,110,247)"}}],Uh=ee=>{var y=ee,{pathsDetail:E,user:z,globalSetting:ne,loading:ie,dispatch:se,uuid:ae}=y,he=la(y,["pathsDetail","user","globalSetting","loading","dispatch","uuid"]),pe,ve,xe,Se;const Be=(0,yt.useParams)();let[De,Re]=(0,Me.useState)({subject_id:Be==null?void 0:Be.pathId,course_id:"",parentNodeUuid:ae,type:1});const[Oe,Le]=(0,Me.useState)(),[Je,$e]=(0,Me.useState)([]),[_e,st]=(0,Me.useState)([]),[ct]=(0,yt.useSearchParams)();(0,Me.useEffect)(()=>{ut()},[ae]);function ut(){return rg(this,null,function*(){var ht,pt,gt;let zt=yield(0,on.ZP)("/api/knowledge/v2/knowledge_statistics.json",{method:"get",params:De});Le(zt);let cn=Object.entries((ht=zt==null?void 0:zt.data)==null?void 0:ht.study_grasp_hash).map(([Zn,Nn],di)=>({name:Zn,value:Nn,itemStyle:sl[di].itemStyle})),Tn=Object.entries((pt=zt==null?void 0:zt.data)==null?void 0:pt.study_complete_hash).map(([Zn,Nn],di)=>({name:Zn,value:Nn}));st(Tn),((gt=cn==null?void 0:cn.filter(Zn=>(Zn==null?void 0:Zn.value)>0))==null?void 0:gt.length)===0?$e([]):$e(cn)})}return Ka.createElement("div",{className:mi.DetailStatistics},ct.get("type")!=="classrooms"&&Ka.createElement("div",{className:mi.header},Ka.createElement("span",{className:mi.title},"\u7EDF\u8BA1\u8303\u56F4"),Ka.createElement(qt.ZP.Group,{onChange:ht=>{De.type=ht.target.value,Re(tf({},De)),ut()},value:De.type},Ka.createElement(qt.ZP,{value:1},"\u5168\u90E8"),Ka.createElement(qt.ZP,{value:2},"\u81EA\u4E3B\u5B66\u4E60"),Ka.createElement(qt.ZP,{value:3},"\u8BFE\u5802\u5B66\u4E60")),(De==null?void 0:De.type)===3&&Ka.createElement(hl.default,{onChange:ht=>{De.course_id=ht,Re(tf({},De)),ut()},style:{marginLeft:"-15rem",width:"148rem",height:"36rem"}},(pe=Oe==null?void 0:Oe.courses)==null?void 0:pe.map(ht=>Ka.createElement(hl.default.Option,{value:ht==null?void 0:ht.id},ht==null?void 0:ht.name)))),Ka.createElement("div",{style:{marginTop:"16rem",display:"flex"}},Ka.createElement("div",{className:mi.left,style:{backgroundImage:`url(${ch}),linear-gradient(180deg, rgba(221, 233, 241, 0.4) 0%, rgba(255, 255, 255, 0.49) 100%)`}},Ka.createElement("img",{src:rc}),Ka.createElement("div",{style:{marginTop:"20rem"}},Ka.createElement("div",{className:mi.xxrs},"\u5B66\u4E60\u4EBA\u6570"),Ka.createElement("div",{className:mi.xxrscount},(ve=Oe==null?void 0:Oe.data)==null?void 0:ve.study_count))),Ka.createElement("div",{className:mi.right},Ka.createElement("div",{className:mi.righttop},Ka.createElement("img",{src:Ec}),Ka.createElement("div",null,Ka.createElement("div",{className:mi.xxrs},"\u5B66\u4E60\u5B8C\u6210\u7387"),Ka.createElement("div",{className:mi.xxrscount},(xe=Oe==null?void 0:Oe.data)==null?void 0:xe.study_complete_rate,"%"))),Ka.createElement("div",{className:mi.rightbottom},Ka.createElement("img",{src:hh}),Ka.createElement("div",null,Ka.createElement("div",{className:mi.xxrs},"\u5B66\u4E60\u638C\u63E1\u7387"),Ka.createElement("div",{className:mi.xxrscount},(Se=Oe==null?void 0:Oe.data)==null?void 0:Se.study_grasp_rate,"%"))))),Ka.createElement(Rc.Z,{variant:"dashed",style:{borderColor:"#333333"},dashed:!0},"\u5B8C\u6210\u5360\u6BD4\u60C5\u51B5"),Ka.createElement(od.Z,{option:xf(_e),style:{height:300,width:400},opts:{renderer:"svg"}}),Ka.createElement(Rc.Z,{variant:"dashed",style:{borderColor:"#333333"},dashed:!0},"\u638C\u63A7\u7387"),(Je==null?void 0:Je.length)>0?Ka.createElement(Ju,{labelTextColor:"#333",dataSource:Je}):Ka.createElement(ul.NoData,{children:Ka.createElement("div",{style:{textAlign:"center",fontSize:"14rem"}},"\u6682\u65E0\u638C\u63A7\u7387\u6570\u636E")}))};var Jh=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(Uh),lu=je(59301),lp=Object.defineProperty,wf=Object.getOwnPropertySymbols,qh=Object.prototype.hasOwnProperty,Sf=Object.prototype.propertyIsEnumerable,ql=(ee,y,E)=>y in ee?lp(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,_h=(ee,y)=>{for(var E in y||(y={}))qh.call(y,E)&&ql(ee,E,y[E]);if(wf)for(var E of wf(y))Sf.call(y,E)&&ql(ee,E,y[E]);return ee},Hp=(ee,y)=>{var E={};for(var z in ee)qh.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&wf)for(var z of wf(ee))y.indexOf(z)<0&&Sf.call(ee,z)&&(E[z]=ee[z]);return E},Pf=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const Vp=[{name:"",value:0,itemStyle:{color:"rgb(223,209,38)"}},{name:"",value:0,itemStyle:{color:"rgb(6,234,230)"}},{name:"",value:0,itemStyle:{color:"rgb(6,110,247)"}}],nf=ee=>{var y=ee,{pathsDetail:E,user:z,globalSetting:ne,loading:ie,dispatch:se,uuid:ae}=y,he=Hp(y,["pathsDetail","user","globalSetting","loading","dispatch","uuid"]),pe,ve,xe,Se;const Be=(0,yt.useParams)();let[De,Re]=(0,Me.useState)({subject_id:Be==null?void 0:Be.pathId,course_id:"",parentNodeUuid:ae,type:1});const[Oe,Le]=(0,Me.useState)(),[Je,$e]=(0,Me.useState)([]),[_e]=(0,yt.useSearchParams)(),[st,ct]=(0,Me.useState)([]);(0,Me.useEffect)(()=>{ut()},[ae]);function ut(){return Pf(this,null,function*(){var ht,pt,gt;let zt=yield(0,on.ZP)("/api/knowledge/v2/knowledge_statistics.json",{method:"get",params:De});Le(zt);let cn=Object.entries((ht=zt==null?void 0:zt.data)==null?void 0:ht.study_grasp_hash).map(([Zn,Nn],di)=>({name:Zn,value:Nn,itemStyle:Vp[di].itemStyle})),Tn=Object.entries((pt=zt==null?void 0:zt.data)==null?void 0:pt.study_complete_hash).map(([Zn,Nn],di)=>({name:Zn,value:Nn}));ct(Tn),((gt=cn==null?void 0:cn.filter(Zn=>(Zn==null?void 0:Zn.value)>0))==null?void 0:gt.length)===0?$e([]):$e(cn)})}return lu.createElement("div",{className:mi.DetailStatistics},_e.get("type")!=="classrooms"&&lu.createElement("div",{className:mi.header},lu.createElement("span",{className:mi.title},"\u7EDF\u8BA1\u8303\u56F4"),lu.createElement(qt.ZP.Group,{onChange:ht=>{De.type=ht.target.value,Re(_h({},De)),ut()},value:De.type},lu.createElement(qt.ZP,{value:1},"\u5168\u90E8"),lu.createElement(qt.ZP,{value:2},"\u81EA\u4E3B\u5B66\u4E60"),lu.createElement(qt.ZP,{value:3},"\u8BFE\u5802\u5B66\u4E60")),(De==null?void 0:De.type)===3&&lu.createElement(hl.default,{onChange:ht=>{De.course_id=ht,Re(_h({},De)),ut()},style:{marginLeft:"-15rem",width:"148rem",height:"36rem"}},(pe=Oe==null?void 0:Oe.courses)==null?void 0:pe.map(ht=>lu.createElement(hl.default.Option,{value:ht==null?void 0:ht.id},ht==null?void 0:ht.name)))),lu.createElement("div",{style:{marginTop:"16rem",display:"flex"}},lu.createElement("div",{className:mi.left,style:{backgroundImage:`url(${ch}),linear-gradient(180deg, rgba(221, 233, 241, 0.4) 0%, rgba(255, 255, 255, 0.49) 100%)`}},lu.createElement("img",{src:rc}),lu.createElement("div",{style:{marginTop:"20rem"}},lu.createElement("div",{className:mi.xxrs},"\u5B66\u4E60\u4EBA\u6570"),lu.createElement("div",{className:mi.xxrscount},(ve=Oe==null?void 0:Oe.data)==null?void 0:ve.study_count))),lu.createElement("div",{className:mi.right},lu.createElement("div",{className:mi.righttop},lu.createElement("img",{src:Ec}),lu.createElement("div",null,lu.createElement("div",{className:mi.xxrs},"\u5B66\u4E60\u5B8C\u6210\u7387"),lu.createElement("div",{className:mi.xxrscount},(xe=Oe==null?void 0:Oe.data)==null?void 0:xe.study_complete_rate,"%"))),lu.createElement("div",{className:mi.rightbottom},lu.createElement("img",{src:hh}),lu.createElement("div",null,lu.createElement("div",{className:mi.xxrs},"\u5B66\u4E60\u638C\u63E1\u7387"),lu.createElement("div",{className:mi.xxrscount},(Se=Oe==null?void 0:Oe.data)==null?void 0:Se.study_grasp_rate,"%"))))),lu.createElement(Rc.Z,{variant:"dashed",style:{borderColor:"#333333"},dashed:!0},"\u5B8C\u6210\u5360\u6BD4\u60C5\u51B5"),lu.createElement(od.Z,{option:xf(st),style:{height:300,width:400},opts:{renderer:"svg"}}),lu.createElement(Rc.Z,{variant:"dashed",style:{borderColor:"#333333"},dashed:!0},"\u638C\u63A7\u7387"),(Je==null?void 0:Je.length)>0?lu.createElement(Ju,{labelTextColor:"#333",dataSource:Je}):lu.createElement(Pl.Z,{children:lu.createElement("div",{style:{textAlign:"center",fontSize:"14rem"}},"\u6682\u65E0\u638C\u63A7\u7387\u6570\u636E")}))};var gl=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(nf),Xl=je(45677),oc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAXlJREFUOE/VlD1Lw1AUhp+YmkGQSnFR8AcUoSJ+LiKCqINQqIODbk51ETpaVHTyD6h/QQddXMRNRal1qLaDOhSFQicdiiKUNrkSmzQxH6WCg2a6Iec+7z3ve24kIYTMLz7SPwSmozPI2h6InroTkqQvywjOQNlm4PDczyV3yxfDT4AFa97fAmhxN/C0u9o8w6wUtYUkFdzAk1CVyC4E+x3cr7YBY7NTtZSB7DLewKF9Xa4xwAnUfU7P+wBHjjy6dgqY77a2r2MG8GV9CaQdhAhYJI8NnuYqEBgFqQ1SswawmEiCttnQIxfMdmKlD5QIXE0ZwMJKGPUjV0uqyYzNbPR6OQTBRbgct3mYX7hDiN46zr7BHq6fYGccUlEb8GFuDaFuuKbCNwtDURgFHdOQTdqA97Ewlfec75xZ99DbE6ULno8dY5MZs9r2mV/fbPQPr3kH8GZwFVXd+lE4doXyW/H7TbmdaKf0eIBWmQRamszbLNOQWxN//wf7CYUnn95U81GtAAAAAElFTkSuQmCC",Ac=je(81722),gr=je(59301),Hh=Object.defineProperty,Cf=Object.defineProperties,Rl=Object.getOwnPropertyDescriptors,Va=Object.getOwnPropertySymbols,Nc=Object.prototype.hasOwnProperty,Ef=Object.prototype.propertyIsEnumerable,rm=(ee,y,E)=>y in ee?Hh(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,jp=(ee,y)=>{for(var E in y||(y={}))Nc.call(y,E)&&rm(ee,E,y[E]);if(Va)for(var E of Va(y))Ef.call(y,E)&&rm(ee,E,y[E]);return ee},Vd=(ee,y)=>Cf(ee,Rl(y)),bu=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const og=[{name:"\u57FA\u672C\u4FE1\u606F",key:1},{name:"\u5B66\u4E60\u7EDF\u8BA1",key:3}];let Ma=[{name:"\u4F5C\u4E1A",id:"zy",item_type:2},{name:"\u5B9E\u8BAD",id:"sx",item_type:2},{name:"\u6559\u6750",id:"jc",item_type:2},{name:"\u89C6\u9891",id:"sp",item_type:2},{name:"\u8BFE\u4EF6",id:"kj",item_type:2},{name:"\u8BD5\u5377",id:"sj",item_type:2},{name:"\u9898\u96C6",id:"tj",item_type:2}],ja=[{name:"\u7AE0\u8282",id:"zj",item_type:1},{name:"\u77E5\u8BC6\u70B9",id:"zsd",item_type:1}];const cl=({pathsDetail:ee,user:y,globalSetting:E,loading:z,dispatch:ne,items:ie,showdetail:se,setshowdetail:ae,containerRef:he,getData:pe,setshow:ve,Tabsdatas:xe,uuid:Se,tpacti:Be,initdata:De})=>{var Re,Oe,Le,Je,$e,_e,st,ct,ut,ht,pt,gt,zt,cn,Tn,Zn,Nn,di,yi,bn,Sn,ki,ti,fn,Bi,jn,ei,hr,_n,qi,Sr,Pr,Go,_o,ta,un,so,Kr;const kr=(0,yt.useParams)(),[_r,Ks]=(0,Me.useState)(0),[jo]=an.default.useForm(),[Ro,qa]=(0,Me.useState)({});let[mn,Gt]=(0,Me.useState)(!1);const[tr,Fr]=(0,Me.useState)(!1),[vi,Dr]=(0,Me.useState)("1"),[Es,gs]=(0,Me.useState)([]),[Na,Qa]=(0,Me.useState)(1),[Zo,ba]=(0,Me.useState)(2),[Ba,ra]=(0,Me.useState)(2),[ns,Fl]=(0,Me.useState)(),[Xi,xa]=(0,Me.useState)();let[No,oa]=(0,Me.useState)([]);const[vs,Yo]=(0,Me.useState)({}),[Jr,Ps]=(0,Me.useState)(!1),[Ga,ya]=(0,Me.useState)(""),[$a,ef]=(0,Me.useState)([]),[Cm]=(0,yt.useSearchParams)(),[Lv,i0]=(0,Me.useState)(!1),[Iv,cC]=(0,Me.useState)([]),[H0,$A]=(0,Me.useState)([]),[zf,wd]=(0,Me.useState)([]);let[tm,hC]=(0,Me.useState)({tags:[],tagszy:[],tagslx:[]});const[fa,nm]=(0,Me.useState)([{label:"\u5B9E\u8BAD",children:gr.createElement(Ys,{getother:Pu,types:"1",ktzykey:vi,onChange:Vi=>{gs(Vi)}}),key:"1"},{label:"\u89C6\u9891",children:gr.createElement(Ys,{getother:Pu,types:"2",ktzykey:vi,onChange:Vi=>{gs(Vi)}}),key:"2"},{label:"\u8BFE\u4EF6",children:gr.createElement(Ys,{getother:Pu,types:"3",ktzykey:vi,onChange:Vi=>{gs(Vi)}}),key:"3"},{label:"\u8BD5\u5377",children:gr.createElement(Ys,{getother:Pu,types:"4",ktzykey:vi,onChange:Vi=>{gs(Vi)}}),key:"4"}].filter(Vi=>!!Vi));let[Mg,im]=(0,Me.useState)([]),[ex,Vb]=(0,Me.useState)([]);const[Pn,mr]=(0,Me.useState)(0),[io,ro]=(0,Me.useState)(0),[ur,Rs]=(0,Me.useState)([]),[ho,ka]=(0,Me.useState)({bh:[],qx:[],hx:[],gl:[]}),_a=Vi=>{var zo,Ya;return(0,on.ZP)("/api/subject_knowledge/create_study.json",{method:"post",body:{subject_id:kr==null?void 0:kr.pathId,uuid:((zo=Vi==null?void 0:Vi.items)==null?void 0:zo.uuid)||((Ya=Vi==null?void 0:Vi.items)==null?void 0:Ya.id)}}),ne({type:"userDetail/logWatchHistory",payload:jp({},Vi)})},du={maxCount:1,fileList:No,accept:((Oe=(Re=Ro==null?void 0:Ro.label)==null?void 0:Re[0])==null?void 0:Oe.name)==="\u89C6\u9891"?".mp4":"",withCredentials:!0,beforeUpload:Vi=>{var zo,Ya;if(!(Vi.type==="video/mp4")&&((Ya=(zo=Ro==null?void 0:Ro.label)==null?void 0:zo[0])==null?void 0:Ya.name)==="\u89C6\u9891")return Qt.ZP.error("\u53EA\u80FD\u4E0A\u4F20\u89C6\u9891"),Hr.default.LIST_IGNORE},action:`${xt.Z.API_SERVER}/api/attachments.json`,onChange:Vi=>{oa(Vi==null?void 0:Vi.fileList)}};function fu(){return bu(this,null,function*(){var Vi,zo,Ya,sa,Zc;let Tc=yield(0,on.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{depth:1,subject_id:kr==null?void 0:kr.pathId}});if((Tc==null?void 0:Tc.status)===0){mr(Se);const ic=[...(Zc=(sa=(Vi=Tc==null?void 0:Tc.data)==null?void 0:Vi.nodes)==null?void 0:sa.splice(1,(Ya=(zo=Tc==null?void 0:Tc.data)==null?void 0:zo.nodes)==null?void 0:Ya.length))==null?void 0:Zc.map(Rh=>{var Qu,rd,Ud;return jp({label:(Qu=Rh==null?void 0:Rh.properties)==null?void 0:Qu.name,children:gr.createElement(pl,{onChange:Af=>{sessionStorage.setItem("typesdatajsoncopy",JSON.stringify(Af))},itemsuuid:ie==null?void 0:ie.uuid,uuid:(rd=Rh==null?void 0:Rh.properties)==null?void 0:rd.uuid,typesdata:ho}),key:(Ud=Rh==null?void 0:Rh.properties)==null?void 0:Ud.uuid},Rh)})];Mg=ic,im(ic),sessionStorage.setItem("typesdatajson",JSON.stringify(ho)),sessionStorage.setItem("typesdatajsoncopy",JSON.stringify(ho)),Gt(!0)}})}function Hl(){return bu(this,null,function*(){var Vi;let zo=yield(0,on.ZP)("/api/knowledge_items.json",{method:"get",params:{item_type:3,subject_id:kr==null?void 0:kr.pathId}});(zo==null?void 0:zo.status)===0&&(tm.tags=zo==null?void 0:zo.data,hC(jp({},tm)));let Ya=yield(0,on.ZP)("/api/knowledge_items.json",{method:"get",params:{item_type:5,subject_id:kr==null?void 0:kr.pathId}});(Ya==null?void 0:Ya.status)===0&&(tm.tagszy=[...Ma,...Ya==null?void 0:Ya.data2],tm.tagslx=[...ja,...Ya==null?void 0:Ya.data],hC(jp({},tm)));let sa=yield(0,on.ZP)("/api/knowledge/v2/get_container_type.json",{method:"get",params:{url:ie==null?void 0:ie.resourceUrl,item_banks_group_ids:ie==null?void 0:ie.itemBanksGroupIds}});if(ya(""),wd([]),localStorage.setItem("container_type_tupu",sa==null?void 0:sa.container_type),(ie==null?void 0:ie.nodeType)==="\u89C6\u9891"&&(((Vi=sa==null?void 0:sa.attachment)==null?void 0:Vi.file_type)==="video"||(sa==null?void 0:sa.container_type)==="video")&&ya(sa==null?void 0:sa.id),(ie==null?void 0:ie.resourceOrigin)===1&&(ie==null?void 0:ie.nodeType)!=="\u9898\u96C6"){let Zc={url:ie==null?void 0:ie.resourceUrl,name:sa==null?void 0:sa.name,id:sa==null?void 0:sa.examination_bank_id};gs([Zc])}(ie==null?void 0:ie.resourceOrigin)===1&&(ie==null?void 0:ie.nodeType)==="\u9898\u96C6"&&wd(sa==null?void 0:sa.item_banks_groups),(ie==null?void 0:ie.resourceOrigin)===2&&oa([{uid:"123",name:sa==null?void 0:sa.name,response:{id:"123",url:ie==null?void 0:ie.resourceUrl}}])})}function Pu(Vi){return bu(this,null,function*(){var zo,Ya;let sa=yield(0,on.ZP)("/api/knowledge/v2/get_container_type.json",{method:"get",params:{url:Vi}});(sa==null?void 0:sa.status)===0&&((sa==null?void 0:sa.container_type)==="att"?Yo({url:xt.Z.API_SERVER+((zo=sa==null?void 0:sa.attachment)==null?void 0:zo.url),file_type:(Ya=sa==null?void 0:sa.attachment)==null?void 0:Ya.file_type}):window.open(Vi))})}function Cc(){return bu(this,null,function*(){let Vi=yield(0,on.ZP)("/api/knowledge/v2/item_bank_groups.json",{method:"get",params:{subject_id:kr==null?void 0:kr.pathId}});(Vi==null?void 0:Vi.status)===0&&cC(Vi==null?void 0:Vi.data)})}function Sd(){return bu(this,null,function*(){var Vi,zo,Ya,sa,Zc,Tc;let ic=yield(0,on.ZP)("/api/knowledge/v2/get_node_detail.json",{method:"get",params:{nodeUuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id),parentNodeUuids:xe==null?void 0:xe.map(Rh=>Rh==null?void 0:Rh.uuid).join(),depth:1,relationshipFilter:">",subgraphDepth:"-1",subgraphRelationshipFilter:"\u5305\u542B>",subject_id:kr==null?void 0:kr.pathId}});if((ic==null?void 0:ic.status)===0){Rs((Vi=ic==null?void 0:ic.data)==null?void 0:Vi.nodes),Fl((Ya=(zo=ic==null?void 0:ic.data)==null?void 0:zo.nodes)==null?void 0:Ya.filter(Qu=>{var rd;return((rd=Qu==null?void 0:Qu.properties)==null?void 0:rd.uuid)===(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id)})),xa((sa=ic==null?void 0:ic.data)==null?void 0:sa.relationships);const Rh=[...(Tc=(Zc=ic==null?void 0:ic.data)==null?void 0:Zc.graphNodeMappings)==null?void 0:Tc.map((Qu,rd)=>{var Ud;return{label:`${Qu==null?void 0:Qu.parentNodeName}\uFF08${(Ud=Qu==null?void 0:Qu.childNodeUuids)==null?void 0:Ud.length}\uFF09`,children:gr.createElement(zh,{datas:ic==null?void 0:ic.data,items:Qu==null?void 0:Qu.childNodeUuids}),key:rd}})];ro(0),ex=Rh,Vb(Rh)}})}(0,Me.useEffect)(()=>{se&&(Sd(),Hl())},[se,ie]);const Pd=(...Vi)=>bu(void 0,[...Vi],function*(zo={}){return yield ne({type:"pathsDetail/getKnowledgeGraphs",payload:jp({graphable_type:Cm.get("type")==="classrooms"?"course":"subject",graphable_id:kr==null?void 0:kr.pathId},zo)})});return gr.createElement(ms,null,gr.createElement("div",null,se&&gr.createElement(Zr.Z,{open:se,width:"700rem",mask:!1,closable:!1,rootClassName:mi.drawer,destroyOnClose:!0,getContainer:()=>he.current,onCancel:()=>{ae(!1),ya("")}},gr.createElement("div",{className:mi.detailmodal},gr.createElement("div",null,gr.createElement("span",{className:mi.title},"\u8282\u70B9\u8BE6\u60C5"),((Le=ee==null?void 0:ee.detail)==null?void 0:Le.can_managed)&&Se!=="\u5B66\u4E60\u8DEF\u5F84"&&(ie==null?void 0:ie.colorType)!=="1"&&gr.createElement("i",{className:"iconfont icon-bianji-moren",onClick:()=>bu(void 0,null,function*(){var Vi,zo,Ya,sa,Zc,Tc,ic,Rh,Qu,rd;Ks(3),ae(!1);let Ud={name:ie.name,description:ie.description,label:((zo=(Vi=ns==null?void 0:ns[0])==null?void 0:Vi.labels)==null?void 0:zo[1])==="\u8D44\u6E90"?(Ya=tm==null?void 0:tm.tagszy)==null?void 0:Ya.filter(yl=>(yl==null?void 0:yl.name)===(ie==null?void 0:ie.nodeType)):(sa=tm==null?void 0:tm.tagslx)==null?void 0:sa.filter(yl=>(yl==null?void 0:yl.name)===(ie==null?void 0:ie.nodeType)),tag:(Zc=tm==null?void 0:tm.tags)==null?void 0:Zc.filter(yl=>{var op,sp;return(sp=(op=ie==null?void 0:ie.tags)==null?void 0:op.map(ap=>ap==null?void 0:ap.name))==null?void 0:sp.includes(yl==null?void 0:yl.name)}),resourceOrigin:ie.resourceOrigin,url:(ie==null?void 0:ie.resourceOrigin)===3?ie==null?void 0:ie.resourceUrl:""},Af=(Tc=Xi==null?void 0:Xi.filter(yl=>(yl==null?void 0:yl.type)==="\u88AB\u5305\u542B"&&(yl==null?void 0:yl.startNodeUuid)===((ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id))))==null?void 0:Tc.map(yl=>{var op,sp;return{uuid:yl==null?void 0:yl.endNodeUuid,name:(sp=(op=ur==null?void 0:ur.find(ap=>{var Bg;return((Bg=ap==null?void 0:ap.properties)==null?void 0:Bg.uuid)===(yl==null?void 0:yl.endNodeUuid)}))==null?void 0:op.properties)==null?void 0:sp.name}}),Up=(ic=Xi==null?void 0:Xi.filter(yl=>(yl==null?void 0:yl.type)==="\u5305\u542B"&&(yl==null?void 0:yl.startNodeUuid)===((ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id))))==null?void 0:ic.map(yl=>{var op,sp;return{uuid:yl==null?void 0:yl.endNodeUuid,name:(sp=(op=ur==null?void 0:ur.find(ap=>{var Bg;return((Bg=ap==null?void 0:ap.properties)==null?void 0:Bg.uuid)===(yl==null?void 0:yl.endNodeUuid)}))==null?void 0:op.properties)==null?void 0:sp.name}});ef(Up);let mS=(Rh=Xi==null?void 0:Xi.filter(yl=>(yl==null?void 0:yl.type)==="\u524D\u5E8F"&&(yl==null?void 0:yl.startNodeUuid)===((ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id))))==null?void 0:Rh.map(yl=>{var op,sp;return{uuid:yl==null?void 0:yl.endNodeUuid,name:(sp=(op=ur==null?void 0:ur.find(ap=>{var Bg;return((Bg=ap==null?void 0:ap.properties)==null?void 0:Bg.uuid)===(yl==null?void 0:yl.endNodeUuid)}))==null?void 0:op.properties)==null?void 0:sp.name}}),kv=(Qu=Xi==null?void 0:Xi.filter(yl=>(yl==null?void 0:yl.type)==="\u540E\u5E8F"&&(yl==null?void 0:yl.startNodeUuid)===((ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id))))==null?void 0:Qu.map(yl=>{var op,sp;return{uuid:yl==null?void 0:yl.endNodeUuid,name:(sp=(op=ur==null?void 0:ur.find(ap=>{var Bg;return((Bg=ap==null?void 0:ap.properties)==null?void 0:Bg.uuid)===(yl==null?void 0:yl.endNodeUuid)}))==null?void 0:op.properties)==null?void 0:sp.name}}),_T=(rd=Xi==null?void 0:Xi.filter(yl=>((yl==null?void 0:yl.type)==="\u5173\u8054"||(yl==null?void 0:yl.type)==="\u88AB\u5173\u8054")&&(yl==null?void 0:yl.startNodeUuid)===((ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id))))==null?void 0:rd.map(yl=>{var op,sp;return{uuid:yl==null?void 0:yl.endNodeUuid,name:(sp=(op=ur==null?void 0:ur.find(ap=>{var Bg;return((Bg=ap==null?void 0:ap.properties)==null?void 0:Bg.uuid)===(yl==null?void 0:yl.endNodeUuid)}))==null?void 0:op.properties)==null?void 0:sp.name}});ka({bh:Af,qx:mS,hx:kv,gl:_T}),jo.setFieldsValue(Ud),qa(Ud)}),style:{color:"#1B8565",marginLeft:10,cursor:"pointer"}})),gr.createElement("div",{style:{display:"flex",alignItems:"center"}},(ie==null?void 0:ie.colorType)!=="1"&&((Je=ee==null?void 0:ee.detail)==null?void 0:Je.can_managed)&&Se!=="\u5B66\u4E60\u8DEF\u5F84"&&gr.createElement(It.ZP,{type:"primary",className:mi.button,onClick:(0,el.debounce)(()=>bu(void 0,null,function*(){var Vi,zo;let Ya=yield(0,on.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{nodeUuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id),subject_id:kr==null?void 0:kr.pathId,depth:1,relationshipFilter:"\u88AB\u5305\u542B>"}});if((Ya==null?void 0:Ya.status)===0){let sa=(zo=(Vi=Ya==null?void 0:Ya.data)==null?void 0:Vi.nodes)==null?void 0:zo.filter(Tc=>{var ic;return((ic=Tc==null?void 0:Tc.properties)==null?void 0:ic.uuid)!==((ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id))}),Zc=sa==null?void 0:sa.map(Tc=>{var ic,Rh;return{name:(ic=Tc==null?void 0:Tc.properties)==null?void 0:ic.name,uuid:(Rh=Tc==null?void 0:Tc.properties)==null?void 0:Rh.uuid}});ho.bh=Zc,ka(ho),Ks(1),ae(!1),gs([]),wd([]),oa([])}}),500)},"\u589E\u52A0\u540C\u7EA7\u8282\u70B9"),(($e=ee==null?void 0:ee.detail)==null?void 0:$e.can_managed)&&Se!=="\u5B66\u4E60\u8DEF\u5F84"&&gr.createElement(It.ZP,{type:"primary",className:mi.button,onClick:()=>{var Vi,zo;((zo=(Vi=ho==null?void 0:ho.bh)==null?void 0:Vi.filter(Ya=>(Ya==null?void 0:Ya.uuid)===(ie==null?void 0:ie.id)))==null?void 0:zo.length)>0||ho.bh.push({name:ie==null?void 0:ie.name,uuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id)}),Ks(2),ae(!1),gs([]),wd([]),oa([])}},"\u589E\u52A0\u5B50\u7EA7\u8282\u70B9"),((_e=ee==null?void 0:ee.detail)==null?void 0:_e.can_managed)&&Se!=="\u5B66\u4E60\u8DEF\u5F84"&&gr.createElement(It.ZP,{className:mi.button,onClick:()=>{let Vi="";Jt.default.confirm({title:"\u63D0\u793A",icon:null,centered:!0,getContainer:he.current,content:gr.createElement("div",null,gr.createElement("p",null,"\u5220\u9664\u8282\u70B9\u4F1A\u540C\u6B65\u5220\u9664\u5F53\u524D\u8282\u70B9\u7684\u5B50\u7EA7\u8282\u70B9\uFF0C\u8BF7\u5728\u4E0B\u65B9\u8F93\u5165\u6846\u8F93\u5165",gr.createElement("span",{style:{color:"red"}},"\u201C\u786E\u8BA4\u5220\u9664\u201D")),gr.createElement(ln.default,{onChange:zo=>{Vi=zo.target.value}})),onOk:()=>bu(void 0,null,function*(){if(Vi!=="\u786E\u8BA4\u5220\u9664")return Qt.ZP.info("\u8BF7\u8F93\u5165\u786E\u8BA4\u5220\u9664"),Promise.reject();if(Vi==="\u786E\u8BA4\u5220\u9664"){let zo=yield(0,on.ZP)("/api/knowledge/v2/del_node.json",{method:"post",body:{uuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id),subject_id:kr==null?void 0:kr.pathId}});(zo==null?void 0:zo.status)===0&&(Qt.ZP.info("\u5220\u9664\u6210\u529F"),Pd({graphable_id:kr==null?void 0:kr.pathId}),(ie==null?void 0:ie.colorType)!=="1"?(ve(!1),pe()):De(),ae(!1))}})})}},"\u5220\u9664\u8282\u70B9"),((st=ee==null?void 0:ee.detail)==null?void 0:st.can_managed)&&Se==="\u5B66\u4E60\u8DEF\u5F84"&&Cm.get("type")==="classrooms"&&gr.createElement(It.ZP,{type:"primary",className:mi.button,onClick:()=>{Jt.default.confirm({title:"\u63D0\u793A",icon:null,centered:!0,getContainer:he.current,okText:"\u786E\u8BA4\u540C\u6B65",content:gr.createElement("div",null,"\u8BE5\u8282\u70B9\u4E0B\u5171",gr.createElement("span",{className:"c-light-primary"},ie==null?void 0:ie.currentResourceTotal),"\u4E2A\u8D44\u6E90\uFF0C\u786E\u8BA4\u540C\u6B65\u540E\uFF0C\u8FD9\u4E9B\u8D44\u6E90\u5C06\u6309\u7167\u7C7B\u578B\u5206\u522B\u53D1\u9001\u5230\u8BFE\u5802\u5B9E\u9A8C\u3001\u56FE\u6587\u4F5C\u4E1A\u3001\u5728\u7EBF\u8003\u8BD5\u3001\u89C6\u9891\u76F4\u64AD\u3001\u6559\u5B66\u8D44\u6599\u6A21\u5757\u4E2D\uFF0C\u53EF\u524D\u5F80\u5BF9\u5E94\u6A21\u5757\u8FDB\u884C\u8D44\u6E90\u53D1\u5E03\u7B49\u64CD\u4F5C\u3002"),onOk:()=>bu(void 0,null,function*(){const Vi=yield(0,on.ZP)("/api/subject_knowledge/send_to_course",{method:"post",body:{id:ie==null?void 0:ie.resourceid,subject_id:kr==null?void 0:kr.pathId}});(Vi==null?void 0:Vi.status)===0&&Qt.ZP.success("\u64CD\u4F5C\u6210\u529F")})})}},"\u540C\u6B65\u8D44\u6E90\u5230\u8BFE\u5802"),gr.createElement(cs.Z,{onClick:()=>{ae(!1)},style:{marginLeft:"10rem",fontSize:"16rem",color:"#979797"}}))),gr.createElement("div",{className:mi.tabstyle},og==null?void 0:og.map(Vi=>gr.createElement("div",{onClick:()=>{Qa(Vi.key)},className:Na===(Vi==null?void 0:Vi.key)?mi.itemsactivite:mi.items},Vi==null?void 0:Vi.name))),Na===1&&gr.createElement("div",null,gr.createElement("div",{className:mi.nodetitle},Zo===1&&gr.createElement(Hs.Z,{onClick:()=>ba(2)}),Zo===2&&gr.createElement(js.Z,{onClick:()=>ba(1)}),gr.createElement("span",{style:{marginLeft:"10rem",fontSize:"16rem",color:"#1B8565"}},"\u8282\u70B9\u5C5E\u6027")),Zo===2&&gr.createElement("div",{className:mi.nodeboyd},gr.createElement("div",{className:mi.listitem,style:{marginTop:"0rem"}},gr.createElement("label",null,"\u8282\u70B9\u540D\u79F0"),gr.createElement("span",null,ie==null?void 0:ie.name)),gr.createElement("div",{className:mi.listitem},gr.createElement("label",null,"\u8282\u70B9\u7B80\u4ECB"),gr.createElement("pre",null,(ie==null?void 0:ie.description)||"\u6682\u65E0")),gr.createElement("div",{className:mi.listitem},gr.createElement("label",null,"\u8282\u70B9\u7C7B\u578B"),gr.createElement("div",null,(ie==null?void 0:ie.nodeType)&&gr.createElement(eo,{containerRef:he,type:5,value:[{name:ie==null?void 0:ie.nodeType}],pathsDetail:ee,showmodal:!1,dataSources:[]})," ")),gr.createElement("div",{className:mi.listitem},gr.createElement("label",null,"\u8282\u70B9\u6807\u7B7E"),gr.createElement("span",null,((ct=ie==null?void 0:ie.tags)==null?void 0:ct.length)>0&&gr.createElement(eo,{containerRef:he,type:5,pathsDetail:ee,value:ie==null?void 0:ie.tags,showmodal:!1,dataSources:[]}))),(ie==null?void 0:ie.nodeType)==="\u89C6\u9891"&&(ie==null?void 0:ie.resourceOrigin)!==3&&Ga&&gr.createElement("div",{style:{height:"300rem",marginTop:"20rem"}},gr.createElement(Ta.Z,{allow_skip:!0,videoId:Ga,toLog:!0,src:ie==null?void 0:ie.resourceUrl,logWatchHistory:Vi=>_a(Vd(jp({},Vi),{container_type:localStorage.getItem("container_type_tupu"),items:ie}))})),(ie==null?void 0:ie.resourceOrigin)===3&&gr.createElement("div",{style:{display:"flex",marginTop:"20rem",alignItems:"center"}},gr.createElement("span",{style:{color:"#1B8565",fontSize:"16rem"}},ie==null?void 0:ie.resourceUrl),gr.createElement(It.ZP,{style:{height:"40rem",padding:"0rem 10rem",fontSize:"14rem",marginLeft:"10rem"},onClick:()=>bu(void 0,null,function*(){let Vi=yield(0,on.ZP)("/api/subject_knowledge/create_study.json",{method:"post",body:{subject_id:kr==null?void 0:kr.pathId,uuid:ie==null?void 0:ie.uuid}});window.open(ie==null?void 0:ie.resourceUrl)}),type:"primary"},"\u524D\u5F80\u67E5\u770B")),(ie==null?void 0:ie.nodeType)==="\u9898\u96C6"&&(zf==null?void 0:zf.map(Vi=>gr.createElement("div",{style:{display:"flex",alignItems:"center",marginTop:"10rem"}},gr.createElement(lt.Z,{title:Vi==null?void 0:Vi.name},gr.createElement("span",{className:mi.multiple,style:{color:"#1B8565",fontSize:"16rem",maxWidth:"80%"}},Vi==null?void 0:Vi.name)),gr.createElement("div",{style:{marginLeft:"10rem",padding:"0rem 10rem",fontSize:"12rem",background:"#F6F7F9",color:"#909D99",borderRadius:"20rem"}},"\u8BD5\u9898\u6570 ",Vi==null?void 0:Vi.count)))),(ie==null?void 0:ie.nodeType)!="\u89C6\u9891"&&(ie==null?void 0:ie.nodeType)!="\u9898\u96C6"&&(ie!=null&&ie.resourceOrigin)&&[1,2].includes(ie==null?void 0:ie.resourceOrigin)?gr.createElement("div",{style:{display:"flex",marginTop:"20rem",alignItems:"center"}},gr.createElement("span",{style:{color:"#1B8565",fontSize:"16rem"}},(ie==null?void 0:ie.resourceOrigin)===1?(ut=Es==null?void 0:Es[0])==null?void 0:ut.name:(ht=No==null?void 0:No[0])==null?void 0:ht.name),(0,ru.JA)()&&(ie==null?void 0:ie.nodeType)==="\u8BD5\u5377"?"":gr.createElement(It.ZP,{style:{height:"40rem",padding:"0rem 10rem",fontSize:"14rem",marginLeft:"10rem"},onClick:()=>bu(void 0,null,function*(){Pu(ie==null?void 0:ie.resourceUrl);let Vi=yield(0,on.ZP)("/api/subject_knowledge/create_study.json",{method:"post",body:{subject_id:kr==null?void 0:kr.pathId,uuid:ie==null?void 0:ie.uuid}})}),type:"primary"},"\u524D\u5F80\u67E5\u770B"),(ie==null?void 0:ie.nodeType)==="\u8BD5\u5377"&&(ie==null?void 0:ie.resourceOrigin)===1&&gr.createElement(It.ZP,{style:{height:"40rem",padding:"0rem 10rem",fontSize:"14rem",marginLeft:"10rem"},onClick:()=>bu(void 0,null,function*(){var Vi,zo;const Ya=yield(0,Ac.Mb)({categoryId:(Vi=Es==null?void 0:Es[0])==null?void 0:Vi.id});Ya!=null&&Ya.exercise_id&&(0,Et.xg)(`/classrooms/coursesId/exercise/${Ya.exercise_id}/${(zo=y.userInfo)==null?void 0:zo.login}/initate_answer`)}),type:"primary"},"\u6A21\u62DF\u8003\u8BD5")):""),gr.createElement("div",{className:mi.nodetitle},Ba===1&&gr.createElement(Hs.Z,{onClick:()=>ra(2)}),Ba===2&&gr.createElement(js.Z,{onClick:()=>ra(1)}),gr.createElement("span",{style:{marginLeft:"10rem",fontSize:"16rem",color:"#1B8565"}},"\u8282\u70B9\u5173\u7CFB")),Ba===2&&gr.createElement("div",{className:mi.nodeboyd,style:{padding:0,minHeight:"530rem"}},gr.createElement(Zt.default,{className:mi.Tabs,activeKey:io,destroyInactiveTabPane:!0,onChange:Vi=>{ro(parseInt(Vi))},type:"card",items:ex}))),Na===3&&gr.createElement("div",null,(0,ru.JA)()?gr.createElement(gl,{uuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id)}):gr.createElement(Jh,{uuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id)}))),gr.createElement(Jt.default,{title:gr.createElement("span",{style:{fontSize:"18rem",color:"#000"}},_r===3?"\u7F16\u8F91":"\u521B\u5EFA","\u8282\u70B9"),centered:!0,destroyOnClose:!0,width:"1200rem",open:_r>0,getContainer:()=>he.current,onCancel:()=>{Ks(0),jo.resetFields(),ka({qx:[],bh:[],hx:[],gl:[]}),oa([]),qa({}),gs([]),wd([])},okButtonProps:{loading:Jr},onOk:()=>{jo.submit()}},gr.createElement("div",{className:mi.addmodal},gr.createElement("div",{className:mi.title},"\u8282\u70B9\u5C5E\u6027"),gr.createElement(an.default,{className:mi.form,labelCol:{flex:"92rem"},layout:"horizontal",form:jo,colon:!1,onValuesChange:(Vi,zo)=>{var Ya,sa,Zc,Tc;qa(jp({},zo)),(zo==null?void 0:zo.resourceOrigin)!==1&&gs([]),((sa=(Ya=zo==null?void 0:zo.label)==null?void 0:Ya[0])==null?void 0:sa.name)!=="\u9898\u96C6"&&wd([]),((Tc=(Zc=zo==null?void 0:zo.label)==null?void 0:Zc[0])==null?void 0:Tc.item_type)!==2&&(gs([]),oa([]),wd([]),jo.setFieldsValue({resourceOrigin:0,url:""}))},onFinish:(0,el.debounce)(Vi=>bu(void 0,null,function*(){var zo,Ya,sa,Zc,Tc,ic,Rh,Qu,rd,Ud,Af,Up,mS,kv,_T,yl,op,sp,ap,Bg,Bz,Tz,Dz,Nz,Fz,Lz,Iz,kz,Oz,Rz,zz,Uz,Hz,Vz,jz,Gz,Xz,Wz,Qz,Zz,Yz,Kz,Jz,qz,_z,$z,eU,tU,nU,iU;if(((zo=ho==null?void 0:ho.bh)==null?void 0:zo.length)===0){Qt.ZP.warning("\u8282\u70B9\u5305\u542B\u5173\u7CFB\u4E0D\u80FD\u4E3A\u7A7A");return}if((Vi==null?void 0:Vi.resourceOrigin)===0){Qt.ZP.warning("\u8BF7\u9009\u62E9\u8D44\u6E90\u7C7B\u578B");return}if((Vi==null?void 0:Vi.resourceOrigin)===1&&(Es==null?void 0:Es.length)<=0&&((Ya=Vi==null?void 0:Vi.label[0])==null?void 0:Ya.name)!=="\u9898\u96C6"){Qt.ZP.warning("\u8BF7\u9009\u62E9\u5BF9\u5E94\u8D44\u6E90");return}if((Vi==null?void 0:Vi.resourceOrigin)===1&&(zf==null?void 0:zf.length)<=0&&((sa=Vi==null?void 0:Vi.label[0])==null?void 0:sa.name)==="\u9898\u96C6"){Qt.ZP.warning("\u8BF7\u9009\u62E9\u5BF9\u5E94\u8D44\u6E90");return}if((Vi==null?void 0:Vi.resourceOrigin)===2&&(No==null?void 0:No.length)===0){Qt.ZP.warning("\u8BF7\u4E0A\u4F20\u6587\u4EF6");return}Ps(!0);let Hle=_r===3?"/api/knowledge/v2/mod_node.json":"/api/knowledge/v2/add_node.json",Vle=_r===3?{subject_id:kr==null?void 0:kr.pathId,properties:{description:Vi.description,rootNodeUuid:ie==null?void 0:ie.rootNodeUuid,name:Vi.name,uuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id),nodeType:(Zc=Vi==null?void 0:Vi.label[0])==null?void 0:Zc.name,tags:((ic=(Tc=Vi.tag)==null?void 0:Tc.map(Dh=>Dh==null?void 0:Dh.name))==null?void 0:ic.join("\uFF0C"))||"",color:ie==null?void 0:ie.color,resourceOrigin:Vi.resourceOrigin,resourceUrl:Vi.resourceOrigin===3?Vi.url:Vi.resourceOrigin===2?((rd=(Qu=(Rh=No==null?void 0:No[0])==null?void 0:Rh.response)==null?void 0:Qu.url)==null?void 0:rd.indexOf("educoder.net"))>-1?(Af=(Ud=No==null?void 0:No[0])==null?void 0:Ud.response)==null?void 0:Af.url:((Up=E==null?void 0:E.setting)==null?void 0:Up.public_bucket_host)+((kv=(mS=No==null?void 0:No[0])==null?void 0:mS.response)==null?void 0:kv.url):(_T=Es==null?void 0:Es[0])==null?void 0:_T.url,container_type:((yl=Vi==null?void 0:Vi.label[0])==null?void 0:yl.name)==="\u9898\u96C6"?"ItemBanksGroup":(Vi.resourceOrigin===1||Vi.resourceOrigin===2)&&((op=Es==null?void 0:Es[0])==null?void 0:op.container_type)||((ap=(sp=No==null?void 0:No[0])==null?void 0:sp.response)==null?void 0:ap.container_type),container_id:(Vi.resourceOrigin===1||Vi.resourceOrigin===2)&&((Bg=Es==null?void 0:Es[0])==null?void 0:Bg.container_id)||((Tz=(Bz=No==null?void 0:No[0])==null?void 0:Bz.response)==null?void 0:Tz.container_id),itemBanksGroupIds:zf==null?void 0:zf.map(Dh=>Dh==null?void 0:Dh.group_id).toString()},subgraphNodeUuid:Be,relationships:[...(Dz=ho.bh)==null?void 0:Dz.map(Dh=>({startNodeUuid:Dh.uuid,endNodeUuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id),type:"\u5305\u542B"})),...$a==null?void 0:$a.map(Dh=>({endNodeUuid:Dh.uuid,startNodeUuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id),type:"\u5305\u542B"})),...(Nz=ho.qx)==null?void 0:Nz.map(Dh=>({startNodeUuid:Dh.uuid,endNodeUuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id),type:"\u524D\u5E8F"})),...(Fz=ho.hx)==null?void 0:Fz.map(Dh=>({endNodeUuid:Dh.uuid,startNodeUuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id),type:"\u540E\u5E8F"})),...(Lz=ho.gl)==null?void 0:Lz.map(Dh=>({startNodeUuid:Dh.uuid,endNodeUuid:(ie==null?void 0:ie.keys)||(ie==null?void 0:ie.id),type:"\u5173\u8054"}))]}:{label:((Iz=Vi==null?void 0:Vi.label[0])==null?void 0:Iz.item_type)===1?"\u6807\u7B7E":"\u8D44\u6E90",subject_id:kr==null?void 0:kr.pathId,properties:{description:Vi.description,rootNodeUuid:ie==null?void 0:ie.rootNodeUuid,name:Vi.name,nodeType:(kz=Vi==null?void 0:Vi.label[0])==null?void 0:kz.name,tags:((Rz=(Oz=Vi.tag)==null?void 0:Oz.map(Dh=>Dh==null?void 0:Dh.name))==null?void 0:Rz.join("\uFF0C"))||"",color:_r===1?"2":parseInt(ie==null?void 0:ie.colorType)+1+"",resourceOrigin:Vi.resourceOrigin,resourceUrl:Vi.resourceOrigin===3?Vi.url:Vi.resourceOrigin===2?((Hz=(Uz=(zz=No==null?void 0:No[0])==null?void 0:zz.response)==null?void 0:Uz.url)==null?void 0:Hz.indexOf("educoder.net"))>-1?(jz=(Vz=No==null?void 0:No[0])==null?void 0:Vz.response)==null?void 0:jz.url:((Gz=E==null?void 0:E.setting)==null?void 0:Gz.public_bucket_host)+((Wz=(Xz=No==null?void 0:No[0])==null?void 0:Xz.response)==null?void 0:Wz.url):(Qz=Es==null?void 0:Es[0])==null?void 0:Qz.url,container_type:((Zz=Vi==null?void 0:Vi.label[0])==null?void 0:Zz.name)==="\u9898\u96C6"?"ItemBanksGroup":(Vi.resourceOrigin===1||Vi.resourceOrigin===2)&&((Yz=Es==null?void 0:Es[0])==null?void 0:Yz.container_type)||((Jz=(Kz=No==null?void 0:No[0])==null?void 0:Kz.response)==null?void 0:Jz.container_type),container_id:(Vi.resourceOrigin===1||Vi.resourceOrigin===2)&&((qz=Es==null?void 0:Es[0])==null?void 0:qz.container_id)||(($z=(_z=No==null?void 0:No[0])==null?void 0:_z.response)==null?void 0:$z.container_id),itemBanksGroupIds:zf==null?void 0:zf.map(Dh=>Dh==null?void 0:Dh.group_id).toString()},subgraphNodeUuid:Be,relationships:[...(eU=ho.bh)==null?void 0:eU.map(Dh=>({startNodeUuid:Dh.uuid,type:"\u5305\u542B"})),...(tU=ho.qx)==null?void 0:tU.map(Dh=>({startNodeUuid:Dh.uuid,type:"\u524D\u5E8F"})),...(nU=ho.hx)==null?void 0:nU.map(Dh=>({endNodeUuid:Dh.uuid,type:"\u540E\u5E8F"})),...(iU=ho.gl)==null?void 0:iU.map(Dh=>({startNodeUuid:Dh.uuid,type:"\u5173\u8054"}))]};const rU=yield(0,on.ZP)(Hle,{method:"POST",body:Vle});Ps(!1),(rU==null?void 0:rU.status)===0&&(Pd({graphable_id:kr==null?void 0:kr.pathId}),Qt.ZP.info(_r===3?"\u7F16\u8F91\u6210\u529F":"\u521B\u5EFA\u6210\u529F"),Ks(0),ve(!1),pe(),jo.resetFields(),oa([]),qa({}),gs([]),wd([]),ka({qx:[],hx:[],bh:[],gl:[]}))}),500),size:"large"},gr.createElement(an.default.Item,{label:"\u8282\u70B9\u540D\u79F0",name:"name",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u8282\u70B9\u540D\u79F0"},{type:"string",max:200,message:"\u8F93\u5165\u8D85\u9650\uFF0C\u8BF7\u7F29\u51CF\u5B57\u7B26\u6570"},{type:"string",whitespace:!0,message:"\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},gr.createElement(ln.default,{maxLength:200,showCount:!0,placeholder:"\u8BF7\u8F93\u5165"})),gr.createElement(an.default.Item,{label:"\u8282\u70B9\u7B80\u4ECB",name:"description",rules:[{type:"string",max:5e3,message:"\u8F93\u5165\u8D85\u9650\uFF0C\u8BF7\u7F29\u51CF\u5B57\u7B26\u6570"},{type:"string",whitespace:!0,message:"\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},gr.createElement(ln.default.TextArea,{maxLength:5e3,showCount:!0,placeholder:"\u8BF7\u8F93\u5165"})),gr.createElement(an.default.Item,{label:"\u8282\u70B9\u7C7B\u578B",name:"label",style:{marginBottom:"0rem"},rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u8282\u70B9\u7C7B\u578B"}]},gr.createElement(eo,{containerRef:he,type:5,pathsDetail:ee,showmodal:_r!==3,dataSources:[]})),((gt=(pt=Ro==null?void 0:Ro.label)==null?void 0:pt[0])==null?void 0:gt.item_type)===2&&gr.createElement(an.default.Item,{label:" ",name:"resourceOrigin",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u8D44\u6E90\u7C7B\u578B"}]},gr.createElement(qt.ZP.Group,{className:mi.radioform},gr.createElement(qt.ZP,{value:1},"\u9009\u62E9\u5E73\u53F0\u8D44\u6E90"),((cn=(zt=Ro==null?void 0:Ro.label)==null?void 0:zt[0])==null?void 0:cn.name)!=="\u9898\u96C6"&&gr.createElement(qt.ZP,{value:2},"\u4E0A\u4F20\u6587\u4EF6"),((Zn=(Tn=Ro==null?void 0:Ro.label)==null?void 0:Tn[0])==null?void 0:Zn.name)!=="\u9898\u96C6"&&gr.createElement(qt.ZP,{value:3},"\u5916\u94FE"))),(Ro==null?void 0:Ro.resourceOrigin)===1&&((di=(Nn=Ro==null?void 0:Ro.label)==null?void 0:Nn[0])==null?void 0:di.item_type)===2&&gr.createElement(an.default.Item,{label:" ",name:""},gr.createElement(It.ZP,{onClick:()=>{var Vi,zo,Ya,sa,Zc,Tc;((zo=(Vi=Ro==null?void 0:Ro.label)==null?void 0:Vi[0])==null?void 0:zo.name)==="\u9898\u96C6"?(i0(!0),$A(zf),Cc()):(Fr(!0),Dr(((sa=(Ya=Ro==null?void 0:Ro.label)==null?void 0:Ya[0])==null?void 0:sa.name)==="\u89C6\u9891"?"2":((Tc=(Zc=Ro==null?void 0:Ro.label)==null?void 0:Zc[0])==null?void 0:Tc.name)==="\u8BD5\u5377"?"4":"1"))},type:"primary",style:{height:"40rem",lineHeight:"40rem",padding:"0rem 32rem",boxShadow:"none"}},((bn=(yi=Ro==null?void 0:Ro.label)==null?void 0:yi[0])==null?void 0:bn.name)==="\u9898\u96C6"?"\u9009\u62E9\u9898\u96C6":"\u9009\u62E9\u8D44\u6E90"),(Es==null?void 0:Es.length)>0&&gr.createElement("div",{style:{color:"#1B8565",marginTop:"5rem",fontSize:"16rem",display:"flex",alignItems:"center"}},gr.createElement("div",{className:mi.multiple,title:(Sn=Es==null?void 0:Es[0])==null?void 0:Sn.name},(ki=Es==null?void 0:Es[0])==null?void 0:ki.name),gr.createElement("i",{style:{fontSize:"16rem",cursor:"pointer",marginLeft:"10rem"},onClick:()=>{gs([])},className:"iconfont icon-shanchu12"})," "),(zf==null?void 0:zf.length)>0&&(zf==null?void 0:zf.map(Vi=>gr.createElement("div",{style:{color:"#1B8565",marginTop:"5rem",fontSize:"16rem",display:"flex",alignItems:"center"}},gr.createElement("div",{className:mi.multiple,title:Vi==null?void 0:Vi.name},Vi==null?void 0:Vi.name),gr.createElement("i",{style:{fontSize:"16rem",cursor:"pointer",marginLeft:"10rem"},onClick:()=>{wd(zf==null?void 0:zf.filter(zo=>(zo==null?void 0:zo.group_id)!==(Vi==null?void 0:Vi.group_id)))},className:"iconfont icon-shanchu12"})," ")))),(Ro==null?void 0:Ro.resourceOrigin)===2&&((fn=(ti=Ro==null?void 0:Ro.label)==null?void 0:ti[0])==null?void 0:fn.item_type)===2&&gr.createElement(an.default.Item,{label:" ",name:"file",shouldUpdate:!0},gr.createElement(Hr.default,jp({},du),gr.createElement(It.ZP,{type:"primary",style:{height:"40rem",lineHeight:"40rem",padding:"0rem 32rem",boxShadow:"none"}},"\u4E0A\u4F20\u6587\u4EF6"))),(Ro==null?void 0:Ro.resourceOrigin)===3&&((jn=(Bi=Ro==null?void 0:Ro.label)==null?void 0:Bi[0])==null?void 0:jn.item_type)===2&&gr.createElement(an.default.Item,{label:" ",name:"url"},gr.createElement(an.default.Item,{label:"\u5916\u94FE\u94FE\u63A5",name:"url",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u5916\u94FE"}]},gr.createElement(ln.default,{style:{height:"40rem"}}))),gr.createElement(an.default.Item,{label:"\u8282\u70B9\u6807\u7B7E",name:"tag"},gr.createElement(eo,{containerRef:he,type:3,pathsDetail:ee,showmodal:!0,dataSources:[]})))),gr.createElement("div",{className:mi.addmodal,style:{marginTop:"20rem"}},gr.createElement("div",{className:mi.title},gr.createElement("span",null,"\u8282\u70B9\u5173\u7CFB"),gr.createElement("span",{style:{cursor:"pointer"},onClick:()=>{fu()}},"\u5173\u7CFB\u8BBE\u7F6E")),gr.createElement("div",{className:mi.gxcoent,style:{padding:"20rem 25rem"}},gr.createElement("div",{className:mi.gxtitle},gr.createElement("div",{className:mi.Colortitle,style:{background:"#6236ff"}}),gr.createElement("div",null,"\u88AB\u5305\u542B\uFF08",(ei=ho.bh)==null?void 0:ei.length,"\uFF09")),gr.createElement("div",{className:mi.gxbody},(hr=ho==null?void 0:ho.bh)==null?void 0:hr.map(Vi=>gr.createElement("div",{className:mi.tag,style:{background:"#6236ff"}},gr.createElement("span",{style:{marginRight:"10rem"}},Vi==null?void 0:Vi.name)," ",gr.createElement(cs.Z,{onClick:()=>{var zo;let Ya=(zo=ho==null?void 0:ho.bh)==null?void 0:zo.filter(sa=>sa.uuid!==Vi.uuid);ka({bh:Ya,hx:ho==null?void 0:ho.hx,qx:ho==null?void 0:ho.qx,gl:ho==null?void 0:ho.gl})}})))),gr.createElement("div",{className:mi.gxtitle,style:{marginTop:"30rem"}},gr.createElement("div",{className:mi.Colortitle,style:{background:"#24A881"}}),gr.createElement("div",null,"\u524D\u5E8F\uFF08",(_n=ho.qx)==null?void 0:_n.length,"\uFF09")),gr.createElement("div",{className:mi.gxbody},(qi=ho==null?void 0:ho.qx)==null?void 0:qi.map(Vi=>gr.createElement("div",{className:mi.tag,style:{background:"#24A881"}},gr.createElement("span",{style:{marginRight:"10rem"}},Vi==null?void 0:Vi.name)," ",gr.createElement(cs.Z,{onClick:()=>{var zo;let Ya=(zo=ho==null?void 0:ho.qx)==null?void 0:zo.filter(sa=>sa.uuid!==Vi.uuid);ka({qx:Ya,bh:ho==null?void 0:ho.bh,hx:ho==null?void 0:ho.hx,gl:ho==null?void 0:ho.gl})}})))),gr.createElement("div",{className:mi.gxtitle,style:{marginTop:"30rem"}},gr.createElement("div",{className:mi.Colortitle,style:{background:"#EC8657"}}),gr.createElement("div",null,"\u540E\u5E8F\uFF08",(Sr=ho.hx)==null?void 0:Sr.length,"\uFF09")),gr.createElement("div",{className:mi.gxbody},(Pr=ho==null?void 0:ho.hx)==null?void 0:Pr.map(Vi=>gr.createElement("div",{className:mi.tag,style:{background:"#EC8657"}},gr.createElement("span",{style:{marginRight:"10rem"}},Vi==null?void 0:Vi.name)," ",gr.createElement(cs.Z,{onClick:()=>{var zo;let Ya=(zo=ho==null?void 0:ho.hx)==null?void 0:zo.filter(sa=>sa.uuid!==Vi.uuid);ka({qx:ho==null?void 0:ho.qx,bh:ho==null?void 0:ho.bh,hx:Ya,gl:ho==null?void 0:ho.gl})}})))),gr.createElement("div",{className:mi.gxtitle,style:{marginTop:"30rem"}},gr.createElement("div",{className:mi.Colortitle,style:{background:"#497DFF"}}),gr.createElement("div",null,"\u5173\u8054\uFF08",(Go=ho.gl)==null?void 0:Go.length,"\uFF09")),gr.createElement("div",{className:mi.gxbody},(_o=ho==null?void 0:ho.gl)==null?void 0:_o.map(Vi=>gr.createElement("div",{className:mi.tag,style:{background:"#497DFF"}},gr.createElement("span",{style:{marginRight:"10rem"}},Vi==null?void 0:Vi.name)," ",gr.createElement(cs.Z,{onClick:()=>{var zo;let Ya=(zo=ho==null?void 0:ho.gl)==null?void 0:zo.filter(sa=>sa.uuid!==Vi.uuid);ka({qx:ho==null?void 0:ho.qx,hx:ho==null?void 0:ho.hx,bh:ho==null?void 0:ho.bh,gl:Ya})}}))))))),gr.createElement(Jt.default,{title:"\u9009\u62E9\u9898\u96C6",open:Lv,destroyOnClose:!0,centered:!0,getContainer:()=>he.current,width:"1200rem",onOk:()=>{if((H0==null?void 0:H0.length)<=0){Qt.ZP.info("\u8BF7\u9009\u62E9\u9898\u96C6");return}wd(H0),i0(!1)},onCancel:()=>{$A([]),i0(!1)}},gr.createElement(Yi.default,{checkable:!0,style:{margin:20,maxHeight:400,overflow:"auto"},blockNode:!0,checkStrictly:!0,checkedKeys:H0==null?void 0:H0.map(Vi=>Vi==null?void 0:Vi.group_id),onCheck:(Vi,zo)=>{$A(zo==null?void 0:zo.checkedNodes)},treeData:Iv,fieldNames:{key:"group_id",title:"name"},titleRender:Vi=>gr.createElement("div",{style:{display:"flex",alignItems:"center",paddingRight:"14px"}},gr.createElement(lt.Z,{title:Vi==null?void 0:Vi.name},gr.createElement("div",{className:mi.multiple,style:{display:"flex",alignItems:"center",maxWidth:"80%"}},gr.createElement("img",{src:oc,style:{marginRight:10}}),gr.createElement("span",null,Vi==null?void 0:Vi.name))),gr.createElement("div",{style:{padding:"0rem 10rem",fontSize:"12rem",background:"#F6F7F9",color:"#909D99",borderRadius:"20rem"}},"\u8BD5\u9898\u6570 ",Vi==null?void 0:Vi.count))})),gr.createElement(Jt.default,{title:"\u9009\u62E9\u5E73\u53F0\u8D44\u6E90",open:tr,destroyOnClose:!0,centered:!0,getContainer:()=>he.current,width:"1200rem",onOk:()=>{Fr(!1)},onCancel:()=>{Fr(!1),_r!==3&&gs([]),Dr("1")}},gr.createElement("div",{className:mi.settingmodal},gr.createElement(Zt.default,{className:mi.Tabs,activeKey:vi,destroyInactiveTabPane:!0,onChange:Vi=>{Dr(Vi)},type:"card",items:((un=(ta=Ro==null?void 0:Ro.label)==null?void 0:ta[0])==null?void 0:un.name)==="\u89C6\u9891"?fa.filter(Vi=>(Vi==null?void 0:Vi.label)==="\u89C6\u9891"):((Kr=(so=Ro==null?void 0:Ro.label)==null?void 0:so[0])==null?void 0:Kr.name)==="\u8BD5\u5377"?fa.filter(Vi=>(Vi==null?void 0:Vi.label)==="\u8BD5\u5377"):fa.filter(Vi=>(Vi==null?void 0:Vi.label)!=="\u89C6\u9891")}))),gr.createElement(Xl.Z,{close:!0,style:{zIndex:1300,background:"rgba(1, 10, 35, 0.5)"},data:vs==null?void 0:vs.url,type:vs==null?void 0:vs.file_type,disabledDownload:!0,onClose:()=>Yo({})}),gr.createElement(Jt.default,{title:"\u5173\u7CFB\u8BBE\u7F6E",open:mn,destroyOnClose:!0,centered:!0,getContainer:()=>he.current,width:"1200rem",onCancel:()=>{Gt(!1);let Vi=JSON.parse(sessionStorage.getItem("typesdatajson"));ka(Vi)},onOk:()=>{let Vi=JSON.parse(sessionStorage.getItem("typesdatajsoncopy"));ka(Vi),Gt(!1)}},gr.createElement("div",{className:mi.settingmodal},gr.createElement(Zt.default,{className:mi.Tabs,activeKey:Pn,destroyInactiveTabPane:!0,onChange:Vi=>{mr(Vi)},type:"card",items:Mg})))))};var uu=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(cl),Wl={tree:"tree___nmqFN",center:"center___zS18i",head:"head___VcDyA",del:"del___VM4Mh",body:"body___YCIVW",tabs:"tabs___SW1M6",active:"active___p1mR9",scrollBox:"scrollBox___reAJO",treeWarp:"treeWarp___oNJ2m",treeNode:"treeNode___qHtQK",node:"node___AIr0l",info:"info___FnWMG",resource:"resource___WYrQp",action:"action___gQRZY",tags:"tags___iMesf",tag:"tag___ImQuD",leftLine:"leftLine___KCWcy",rightLine:"rightLine____XB16",icon:"icon___QEn9F",nodeWrap:"nodeWrap___CLyJX",line:"line___njEbX",statusbutton:"statusbutton___yMqes",checkbox:"checkbox___jNN_4",loading:"loading___zOI_x",allTreeNode:"allTreeNode___csU65"},Kc=Object.defineProperty,om=Object.getOwnPropertySymbols,nx=Object.prototype.hasOwnProperty,Ov=Object.prototype.propertyIsEnumerable,Vh=(ee,y,E)=>y in ee?Kc(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,r0=(ee,y)=>{for(var E in y||(y={}))nx.call(y,E)&&Vh(ee,E,y[E]);if(om)for(var E of om(y))Ov.call(y,E)&&Vh(ee,E,y[E]);return ee};const Ru=()=>`shadow-${Math.random().toString(36).slice(2,9)}`;var ix=({percentage:ee,startAngle:y=270,strokeColor:E="#42BECD",trackColor:z="#e6e6e6",innerBackgroundColor:ne="#fff",text:ie="",textColor:se="#000",textSize:ae="1rem",textPadding:he="28rem",outerDiameter:pe,innerDiameter:ve,maxTextLength:xe=6,onClick:Se,hoverEffect:Be=!0,style:De})=>{const[Re,Oe]=(0,Me.useState)(0),[Le,Je]=(0,Me.useState)(0),[$e,_e]=(0,Me.useState)(!1),st=Sn=>{var ki,ti;const fn=parseFloat(Sn),Bi=parseFloat((ti=(ki=document.documentElement)==null?void 0:ki.style)==null?void 0:ti.fontSize);return fn*Bi},ct=()=>{Oe(st(pe)),Je(st(ve))};(0,Me.useEffect)(()=>(ct(),window.addEventListener("resize",ct),()=>window.removeEventListener("resize",ct)),[pe,ve]);const ut=Re/2,ht=Le/2,pt=(Re-Le)/2,gt=ut-pt,zt=2*Math.PI*gt,cn=zt-ee/100*zt,Tn=`rotate(${y} ${ut} ${ut})`,Nn=((Sn,ki)=>ki&&Sn.length>ki?Sn.slice(0,ki-1)+"...":Sn)(ie,xe),di=()=>{Be&&_e(!0)},yi=()=>{_e(!1)},bn=st("4rem");return Me.createElement("svg",{width:Re,height:Re,viewBox:`0 0 ${Re} ${Re}`,xmlns:"http://www.w3.org/2000/svg",onClick:Se,onMouseEnter:di,onMouseLeave:yi,style:r0({cursor:Se?"pointer":"default"},De)},Me.createElement("circle",{cx:ut,cy:ut,r:ht,fill:ne}),Me.createElement("circle",{cx:ut,cy:ut,r:gt,fill:"none",stroke:z,strokeWidth:pt}),Me.createElement("circle",{cx:ut,cy:ut,r:gt,fill:"none",stroke:E,strokeWidth:pt,strokeDasharray:zt,strokeDashoffset:cn,strokeLinecap:"round",transform:Tn}),$e&&Me.createElement("circle",{cx:ut,cy:ut,r:gt+pt/2,fill:"none",stroke:"#FA6400",strokeWidth:st("4rem")}),ie&&Me.createElement("foreignObject",{x:ut-ht,y:ut-ht,width:Le,height:Le},Me.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",padding:he}},Me.createElement("b",{style:{color:se,fontSize:ae,textAlign:"center"},title:ie},Nn))))},dh=je(77019),Em="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA1lJREFUWEfFl09oXFUUxn/nvTEpbXXRos4bgwgGRYtZCIILhQSFtgEjgnShCNJV05pMqQstpV1UjW6seY1pFERB6EYEJVJbRMmALgqCixTFlgoupjOjUhdNo0068z65w0ycmcxMJmbk3e39zne+d/69c40Oz45P1PPnbwxZxEgkHjQjJUg5c4OcRM4zfpLH7LY7mftxjy13Qm1rge6ZVnK5yLEInkfctha+fG9c8+B0T4Ljvx6wQjublgL6T6r3L3EkEoeALR05Xg1a9IwTm403Lo/bUjOOpgLcV98o8hni0f/ouN7MOL8pwTPNorFKQN+kBkrGGYm+rjivkJiR9T2Gs2N2oZa3ToD78qUi33fbedWhE9Gb4JHaSKwIcDm/LjJdC3ur8BnntxqD1ZpYEZAKdTwSR7sZ9lZcnvFaLm3HKi0M5aK7yeUNVPt6dS9uuoV+l4pyBFKhTkVidL0sG8F7xkwubfvNTbiref7oeMhsxGt9+V/bHnC7BVPaqRLnusW7Hh7z2WWpUNOR2N/W0Jj3jBcRd0fi8zqsMW/iKYzDEvs8n6cxslGJjxAD7Xg945QlJzUHDLbuGj72U+zL7rG/g0k9Jvi2FpvwGcqOWSYI9abEqwaP5w/ad6n3tVk3eE/ihTYiMhaEuihx3yqQIYwDhXGbcXfJk3qWiA+BW1ewxheFtI3cO6M7FpfKXeTuFvDYWxi3Tyt2o4jpMlvDMeOSJUMtILY2EfBNIW1PDs4pcfECbyni5QZM0fN5KDdmPwehZlz462rMOHH/AK9khqyYDPU14okmPq63FGDGuXzadt/1rrZHRU4LdtYSVNsomNYDusk8kGgQ8JXn89yVl+xqEOqsxK4mqVhonQIo4jNSGLOzkiwIOWQwIehxYd7SS/8vo/Z7MtQsrggrx2BZxpH8OG+bmZJT2k2J2UaB5SlYTkG7IjRk8M62gMNuw0mGGkacMXg9f9CO9k1psFjCFfG/x2fYiS5vUAUm5PaJJvmvGGRcG645BQ1+8Dz2lowUJb40mJTHBMLltr7VfIY9UVDEB4KH12zD2AdR7KPYhaiTNKxnxHaCXfkZOXDsv+NKFOJbSJyA2FeyaipiW0qrhRPrWl4VEevDpCoi1qdZbR/H9jhtHCb/1/P8H/hZr0qiHgOCAAAAAElFTkSuQmCC",V0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA/1JREFUWEe1l19oW2UYxp/nNMmWdO1cZmcSW3TYKWwKoh3MmdBVUOmEDSeINvNGGEwRLwRR0Y12FHF44c2qTvEuCaNCRS+KiJiQP512eOFFB3XzX7FNXVnLlrRL8+e8ck6XmS45OUc9O5fnfO/7/L7n/b7vvB9h8dk1OuVaLF3po1QOqMBOEgGBBLRwgnMimFOA88KWr7zOzfGpZ3cVraSm2aC7Ryd9xVLxuCoSBqTdbPzad14lJeba6DnxxzM92WYxhgDd4xc2rCxl31YFrwFotSZcN2qZ5AetW3zDF/fvWG2UoyGANutCcfULQPb8R+GbwvjDBrf76UZu1AF0RiYeqKA8LkCnPeLXiwLOKg48Nftc6KfavOsAtJmvFgvn7BavChKcdbndu2uduAGg1Ty/OJ+wz3YD/4jJjYGu3t/7thfWdtD1JxBNnlAFx+y03SgXyeFsOKRr6QBri65w0Wi1EyiAvGaUUASbAVGswhNccbnd3VopdIBANP2hKupLBtuk0N6mbJs+GMwZCfijqXEAPSLS8S8gTmcPh45SO+EuFxcXjA4ZkkvZcMjbLLE/kvrY4VBOlSvqd9YhmNvq8t5Of3TiSZHy103qZQ4QTUYgzAO4SyiPQ9BixQkq7GcgkhpRIS//H4DaWF8kqR29PisACpWP6Iuk4oDsu0UAywQ+BRkUkZ56DSboj6amReReKwAyiV4Qz9eNJcbYg2+09zccIPIk+7MDoXTgzNmH1HLpx5vjSP5MXzSZg2CTFQArtuoAxKaquA4VTb0HkTcagOe1ElwFpM0OgEER5XQ0dQkKD2cHQvrC9kfSbwnUdxvnZ862Egw9LN9+EsucEshZCPo7OtqPLCzkXjUW1xuZaVsWoTZzXZwS02reOTrRXSlVPheRB5uWjYzbsg190fSxFiA9Gw7GzW2vQSJHbDmIfJHUZ0fDwSODpNq85uv9UBTlCVuOYl8sdZICHwTXBHgREKfpjiGu3Hmfp8P8Z0SsOkH/TDi0ZJRUWwOJBJRf59JtJcGfAvGYA3BkPhx6xdLvGESZgrJZUiEcEDjMxoHIu+nq/m1gz1//NCSR9JAK9bhpsB0DyMH5cGhIS7W+JVvKxiF4xA6NJgdbxuv0Pla9uKxrSrfHvr+jIMVzIui6FRAEZzweZfcvhx69VM1f15Z3ncncX65Uxu2G0MSdCvfPDASnaifX8GKiO6EWxwTYa4cTJDMet3KoduaGDlQ/6K1a+fKbELze7G/ZHJA5kO9vdW45aXRZNb2c3jOW2ba8Iu8Q6gsC3GbFEa2PFGGk1cPhRrM2LUEjkX1xcVyYT/WqKg8A2CmAn4B+PRdgjoDWip1XqHy5w783meij6bmhxf4NftTdgSGLQUwAAAAASUVORK5CYII=",fh="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAsVJREFUWEfFl0tIVGEUx39nZsxoKpGISlqmC42gxwxCEApBUhC0iR7bMLRyhrZRC6Ntecc0CtoVRRshkbKN0iJ0RmtRBj0WLUKLoEAz0po5cWe4zdWZO/czJuauzz3n9/3P6/sE02/qwSp+fm5FM4dRbUSlDqEu+7syjeg0Iq+RwENWbxqh6eiiiWvxNZrq28z870vASdD1vvZZA5kF7hIOddN05lOpf7wB3iWq+aYXED2PEjYLvMxKmEflKrVyhfquhWI+igPkTj0A2vxPgQt+kjHCoSPF1CgEmOzZQVqGQLeWJ7jjRT4SCBxkz7mXbr9LAXInT5U/uAsiHIq4lcgD5HI+Wj7ZvfSTMWqlxamJPEDS6ga9WF7ZPSEuE43ZnUUOwJb+x6/3ntUujBOqPsbOjg+egBNWK6qDRh1jd8eaqm12KnIASasftMPTuXCKSPy2rzrPr+8jnR5Cda2vLXKDaKxTsCfc/MyXkkNGAieIdN3zdwqkevei6UfAutL2Mkt4y0ZhsvcA6fTjksYrAbAdTSaaSeuw7+QMBtuECauPjHaWFcB2lkrE0cy1kn4D0i+kekZQWsoOMJHoIJPpL+2XUSFpvQFtMAZIWneA7Xl7HSQaL2xfEwDkrZCy5nyr1l0DKasdJT+mg7xgd2yg4AAmACLfVw4wcbMGqCqqWM3CIvVd9ioGEwCYM0yBHCcSu591nLLGUY16pGyYaLzNHCCbApMidAMkdqIUv5gE5OvfbWeigNhFaNSGSwD2o7KhqAIhmWHX2afGCmTb0GgQuQCSPc+ASFEAkSdEYoeMAbKDyGgUuwCM5rFJETqj2GgZyWkisVumsXPF6jcJnWVkG/uuY3lFMNhOpsp7HbvpMgsNoPaGbSyequXrOKdCBS8kNkDFr2ROKip2KXWSVdFruQNR0YeJA1HRp5m7dyr2OF3ewP/pef4HW7pxo3nDj9QAAAAASUVORK5CYII=",jh="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA75JREFUWEe1l19sU2UYxn9v2dwGzmSoEZJtRhY1StAQtN2YkEUiYOL/C6LhQtPWLQwXwXAlRKsXcjMUJQzFrUaCesGFjptBREJ0iXQmXOGCIQKJZDH4Z2Jm6UZ7HnNqCx30z2ktJ2lz8p3ned7ne8/7ft/5DI9Xb5dunonzJLDSgWVAi0GTjGlgIvM76RPDzXP5NnLMkl6krRSoe7naUileF7yAaCiFd5+bMYn4pL6Rd3Z/Y38U4xQ0EInId/4QbzhiG2KOl8DXYgwu4mP7mhb61x2wVD6NvAb6Vuj2+AyfSTxWSeDrOMaRulrW7Rm1yTwmZw+FOrQUh4MSzVUJnhUxTtfVsnbPqJ3J1Z2Vge4u3ZaMc8ItsKoGv2riVE0j7XuP2MWrQ5k7953/MsKIxOobEjwjanBozZ08ka2JKxkItyviOLx5I4NntX3GK4Mx253uGPfPbbVkip8qrfayTRsX6htoGzhmU2kDoYCGJIJehAx+NzgsuF+w1AunACYSHbO3zF3hEpe44GWRMWPKxAODY3Y2bdyvZ4B+QVu5Rsw4OxSzRRYK6HmJLzwKHI6O2dpcbN/jqotPsgmxVaLRo04a5jMedA18KNHjkfhldMyey4ft7dKC6Utsl3gxW1ulNH0+tlnQrzHg4VLgzPOCBrL8YKce4jLvA8tLaZqx383ArxJ3lAJ7NXDFSLtew2FHUV3jqIX8Sgjqqm0g013jEvcV1DZOWTCguJcOKDcDLj7o18/AokIGDH50MzAhWFjNDLid8c+f7EBsLKZrxtduDYxKdFbLwMsdejaVor/YzLOxDD61sF8fOND3fw10d2hJ0mEn4lGPWu46sMXCAT3tiK88kYyj0ZitysVuXKVbE1O8Legpdy+pNe6xzPtyl+JbSpowEjVG597jdiLSpZrzCXolIhJNJbnXAozxaMwWpzejYEDvITZ5EjESBj9I3A0s8MTJA/IZmwdjtvO/7XiFFiZnOIOor1SwLJ5xrrWVeyMHbCb3g2SD4zBQllCFYJvD+qHv7XOXPuubMOzXfgfWV6jrjWbsi8bM3bDS1ywDW1Zr3uRfxASLvamVhzLj+Nz5dO0aMfc0db0BdyTs112OMYxYUp58cXQ6+E08tes7+y0XmfdgsrlDDX87DEi8VBUTxr558+nOnXnBDOQGDPsVcox3Pa0R+Zwa58zH1mzB5YeUmOKGR9R0OcmrEiHPpyVj3AcfN7cy4LZasRAlT8dZsiTraaczKVaasUyixYwmxDTGBGIC42QNDH8Us9NeX92/T9xk1NzUiXsAAAAASUVORK5CYII=",s0="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA9tJREFUWEe9l11sFFUUx///3ZmyrVWMCQsWig+1Kr6w2wZM/CwaP/CBByM8mOhrQyBYt2pMwGD8NmG7tX7yZEx8gsTAg2J4sDUBjJKy1QSjQiNF0WA3tdDalp3Z+ZvZ6W637W5nt906bzNz7v/8zrnnnnsvUeajQ9tr7D8GH6S0TdQGCQ0kGiBIxJ8E/qJwVkEcNWqDfWzvt8qRpp+REq03Z+Dsl6OnBFzvZ+/+J3iF0GfB4IrX2PHd5YXGlATQJ20h+58rewHEJNWV43iuDYlxEAeMtc1vccfhdDGNogBu1LYyRyRsXozjIiAnjdq6J7jz1N/z/s39oHh0o019IWFtNZznNciLpoGt3JP8qVB3VgamIz9ddeczFEOmiU3ckxzOfcoDeHM++k210l4qewROGI3ND+VqIg9gxSOvC3CLbtkfBgL7zOfOvOGtGABe6p3zi632SolJXjWuCzSxvT+VBbAT0Y8dR+2VCi3Fngy8a8bOdDDb4X4/l/JrMqbJcGHx6KO7w9bExGWSGQOhMGPfjuSA9MGmRmvKurhgAyJGjHXNYVpdLY9JzjG/aGo6B+b1jHQ8IhLXzNhAqHC8W9DWyOiknyYDxhba8eiHDrTTz3gugCRaXVFnSQBEwhXpk/RApQCu/ZIzQH7FdDzyC4Db/AAqqoHu1vVWJjPkpwnyR1pdkTEJ9b7Gy2BAMEUrHrnqtwKmG8YYiIk8h1A3axxxIcDAPjk6IGhNObwkh5nuivwM4Xa/AeaqcD2fOf7vzFJrq7emRsey78QFs4Zt3J0c0nutd9hpp7csCPIHdwp6JbT5AZRahoXO83BlQpA8Rjseed8BdlUKkFuGAJ+t6Uz2zB1vJaIvy9GrCzcjxml1Rx5WBscrBShYhuMIBLeaHf0nchpWd8ujyOiIoFkNaq4PMnA/dbDVtMedYUErF4Iwg4GNMIMzJ5ope7UFDWRLwD16TUOU7RxMGY23rvE2ozKnwae3jwM8CGGXX+QeNONmLPm8tx1337Xadq6d/7/6AYlRA7VN7gY2cyBJRPbLwSt+tVCN/wRfMjuT70z3F0/Su3ic+1rCPdVwUkqDRK8RvfERbumzZwFkIdw9fnLyNKT1ywPBQZOhzYVnh3l7vHqid1oWvgR0S3UhOGiuMB/n7u9/LdQtfjHpia6yLX0u4N5qQGTTjtonCyPP6Za+mrk1cWnwBUgvSrphMSButUN822hZGc/N+bxm5CcsNxs29wLO0xJu8rP3CospEJ8aCL1ZLGrfKSjmRIe2B+1Lv90H2dsAbhDQQKEBhATveg7gLMCjxrqmU9xxOFMO7H8KhNHxXAeU2AAAAABJRU5ErkJggg==",Uf="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAcCAYAAAAAwr0iAAAAAXNSR0IArs4c6QAAA05JREFUSEvFl1+IVHUUxz/n3jvOH92HfFpWEi2tWAwLIvChh+1lc9bY7EFS8iGKtIdeCnwxREmEXgyfEoRktdIgKrLdQqRFLURQ0lr/ryy02QwLK9u67uzsvfd39I6uzNyZO3PHQZzH+Z1zvp/f9/x+Z34jNPG5NUCn4/MigmMpkz7kxSGXSpGXLmaaKPUgVOImTfXT7kBvVLwxTIhFTiCf9MhJL7fi1C4B6CCp2QJbjNKDsAxlYZzkqBiB/zVwB/rF5sviNPm2tdwUQcM5EogXC5xVpbMV0Tow54C9CrMi5D0lNz/DsHQxFeRIcYBtRtnxKMTnaorwBcr5cg2x+T35Ghek0M9p4OVHCgAnga/LNdRgUgX6pDDAeKs9bwRvCVdU+Twcl5zH4cCBqoPRqGCz6yL8i7KzIs9Ch/5h/2MDMIbxzOt81zKA1bGRxLOfov407tAH6M3jVQbVcsAIQ5ksf7QEYD+1hcRznz0Q1MIoxcHFsQAQjqWyXG8AYAN+zZY7z+zEWba1Yk292xSPtgWjreL7Wg5MOHzV3s3tSAB76UcEIniTuH+/jxn76X5Rwencg7Pkwyow98pW/Ou7GjpgYDLTw6HSIKp5C5IdJF8dRcQqFVPj4Z57C5P/Eef5fThPvlMl4l3bgXdte023wg6ocjW9hsFIAEkvIdk1Ummv8dCJU1gLX6ne+aWP8Ud2R97OMIA4HE92cznaAcBZsRdn8aa6V17V4A1txh/dVzcuDFCY5dsn1jJRFwAsEiv7sBe9XbN4qS3nN2JyhxvOpXIAVWbSa+ibS2p4CxIrD2Av2lDZDn8G9891mLEjDcVLuyyfhMJIKsvRmABBmE3ihYPYHevvHUhvCvdsL2b8t1jiYQDP4tSC1fzVBECpBFbHBiTzNOa/b9Dp4djiYQC3yA9tbzLWJEBTepFzQBUvdYb9sh3zWAB8uDG/h5/LCVv6LYjry9whdIWTbVkuhgFyd99s7XGLPUycCBeMYdvFGxx5aRNuGOAEUD3eHkYpKkc4kErzrnThhUOCFrwH1B9lLcAET3HLZtW87tLbs/qAqiLFX/helTda0KmZGogr7Epn+STanPsrxV/pVUPP3dfrcmjtjwmQQxi2LA5G7XwO6A7Rr2QOpC6bTgAAAABJRU5ErkJggg==",bm="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAcCAYAAAAAwr0iAAAAAXNSR0IArs4c6QAAAg1JREFUSEvtl09IFFEcx7/fN6hhQS5FiOShEjwUFIWt00FPdYlw25BO/YOOC0XQHmT35EgYHYJOQacugrC7eDa7iLbbpWutWUSGJR1WpSLZfb8YYWtWZ5gZkT3EzPV9v7/vh++8ebxhPGctAnIUQR5ymZBZ1cb0/MXMp7rFLFhntWCEkD4RdAUYpUnOsLN9iPHcqAQwNEhIrktL65nSpfSCWbBSovFYIEboOUpdbQAg+BaUdbdBAhyHoL2+RnJakemalteAtFzoPoHLR07j4J59vhzp4iQ+rn2HUrj9D4BYKiWz3V5uMz92X4t+6AD4DcGEQG4OdvVivH/YN7guuP7yGcqVr1sBWC4lM72eAAUrpbU8ca4bSlVqWnfY4TZE0McVgERVwKyCxysQXBMg7hbydPAGTh7wLG+bxb2BoPguuv8GYEMR9wD19ysQkT6BpPzK2Z0GuH0TmlMPenS1utAUAIJfilcyh51h5wpjp2pav2kKwGYIsUTAcRCxU0RizQPwS/JY3509sMNw2xYBRA1EDUQNRA3YDcTa9uJdZRmrG798z9Tn5Xms/Fzbcif0tXkLevYfwvvVldATaOA8zZx1V4BjgdxETIABiLheAEkuAvgQYFaNwMyrZOYRA4gbJMMyaXzOl+0fEcdNiT9oSKKYyL4IOy80QD2gPz9qAbgFwTfDMO7MJUZmw4bb+j/0UVXnXVodrAAAAABJRU5ErkJggg==",$h="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABSZJREFUaEPlWltMHFUY/v+ZWWCBliJbhAopIgaEgsAu0CoJ1jYpaYyJ4UFNrKlPFNrSGl9MBDoFTEyMsaVye2vERF+IL8bQhFpJaGRhuShQt0lBCFgQ2CAU2GV3Zo45S5YsuzPsLCypo/N6/tt3/us5ZxA0/mEo7Od5wtng13yn5DyBwDyPhBwlhBwkiFFUPhKyhogrBHGKgPRHGBP2Sxy8PMjzKOxV/64BtLVZdMOzTAkRXK8BYjEARgdnDFkFQnqQ0/2cmyh1l5ebXMHxb1IHDYAQghevD54RRbESAY/sRqkvDwHymGXZ5qZr+XcQkQQjMygAl/nhQpcgVAGSjGCUqKYlaNVxXOMtPrdPLY8qADxPmL9ESxUBeE+t4L3QIcA3z7KmRp5HKZCcgAAq+bFoIPZPJYm8GkhYKNcZBu8D6j9p5rNWd5K7I4BL1waPCJLQCIApgYwTXBuwtPgIbHNWsK8tgnNjFRz2ZTdbhD4GwsKjQR9lgLiEDIg1pAGnCw8kEgDIJMdwVV9dz3+sRKwIgO68JK7dDmT8k+U/YdL6E9jmrUBEdVURWQ7i4jMgJeN1OBDzXAAgZJJho84reUIWAI35eTLw5U5hY19fgonf78D89JCKnVQmiU/Og9SXzoA+MlaRiIZTPBo/lMsJWQAVNf1Xd0pY29xDeDDwLQgu+56M9zBzOj1kGt+FuIR0RXk0sVvqC274EvgBuFhnKRJdpElJ0vR4Nzwa6QSAgAUiSHAMpGWXQvILJYp8OlZX6VtitwGgTaqiZqBdqc5vGv9jkIYFR56WfVYZBEFrS73xnHez2wagkh8olUSpQU4lDZvfem/vw877amMg5/h5xXBiWKa6mTfSEHB/WwDobDM4I3XIjQc0YS33boYs5gP5hOaE6eQV2cSmY0d+ElPmmZ22AFTwg6eJKH4mJ3xs4DvV1UYfFad7MefNZDk5G/YV58PhjplAAOg6rU5ZxndkSZFlP27h87u2eeBCtbkBkCn15aB13nKvUY1ON030oaQIU8mlLDkGx5rN3tv1+QO1wkwnq+T7BJE6WxuKqrcA0Hl+TuzvkhuJR83tsDA7qlZnSAEYEo9BdtE5Gd1kNYEtOE3PE+4Qck+ZoqvZl5KOBz2ddao7bKg9QDt2cWmt7NjhKaluAEqNa2F2DEbNX6ve/VADoPKOFb0PhxP9I5IgaW+rK7zpBnCh1nIDCCn2tdQ61AGzU8qjOU1YVqdnvfkiow+HZxrfTpNNYseyY8TcPu675lhfcgrONdnOmHi0EDLyyvzFIfa01pmuejzwPQHwqxxDPW3w9+KEogdyTnyQ+kx8uvIQo9J31uGOibmp/iU58kOGVMgrLvdbQoDplvqCtzY9UN13FxBjfKnMd7+A9SfzTxVA5IF4KDr1kb8NhCy3NhSecgMor+nvRQDOl6r7h1qQhI2nCoDhwqHkjTo/GwiA0FZfcPy/AUDzIVRR06/xJN5lGU3PLUuKNaQe9A5QZDkMj4iJkE0cSZIc9iW/pBof65xZmB1ZkeNRVUbLa/uuIEG/nq2ZRqb5UWKnYW7E3A6L//ZhbrOZaXicdg90ITrQhOo8EPSBJlRHSi4sijEkZvqNJXSTRKdDVKo23hVoV0dKKkDTh3oKQPPXKhSEpi+2PHGo6atFCkLzl7ubCa3h63VPKGn6gcMDQtNPTB4Qmn7k8+6Q7hLrhMv7+czKhsGtplqTWeWFxv/sodt7VzT7q4Gcaz0/ewii6xWCmKKJnz3Uxuh+0/0DF9aFXrFDGJoAAAAASUVORK5CYII=",$c="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABL5JREFUaEPdWntMW1UY/53b0s4sQAfDPeKWza1kPDIFCjHRRBM3p0xDnG7Z2PxHjVCn0fjYoqF4bYlmmxqNTkp8/OMeuk0N0REnmmiiiYECZgFmaJDFmT1kkDKyzEJ7PnMKl8Dtvb0trY/r/fd8r9/5vvM9zrkMJv9YJuyXZbIO857bI4huAqGYgQpByCPGsoV8RjQOhlECGwBDvxWWUwVS2feyzCLp6p83AFnus13i12qI8xpibDOIHCkZw1iIEZ1kktS6RLquVZZLJlLinyZOGQARsccbu3Zw4k0AVs9HqQbPkMSkhne9FUcZY5SKzJQA7G7svjPCo/sBKk9FSfK0rNsqWfYc9JZ/myxPUgBkmaRL0a59nPhzyQpOh05i0mtLLBV7ZZlxIzmGAJ58KZgzyUNHiajaSFgm1xljbVmSY8fbLzuvJJKbEEC93LMK0UgbERUZGWe3WVDszEVpYS4K8uxwZNuQm50VYxsbn0RofALDo2H0DoyhPziG8ETUSCQYY2dgsVb75bKzesS6AKZ3/icj41cuX4jqO5aj1JkLq9XQoTE7IhFCb3AMbd+dx2/nryYEIkBkSY5b9DyhqVHE/MVo4ItEYZPvsKNm4w2oWp9nuJOJCDpOj6K1/XeMhMK6ZCKcllpc92mdCU0Abk/gQKIDW1rowKPbbsQCuyUt4xXmP8NRvH/sV/QOhHTliYPd7HM9ryaIA+CWOzfwCLXrSdp421JsuWsFWHLRkjRAIuCzr8+h/YeLujxWybpBnWLnmCGKVL0nENDL88L4BzatSNqo+RB+eioRCNbt97lcs4vdHABuT6CWEz+spViEze5dzozvvFqX8MTBQ0HdcJKYtLPZ5zqi8M0AEL3NhcjVX7TaA3FgPU+UZCzmjTwjzoTvnT69gz20zLpwndI7zQBwNwa2cs6PaQl/eOuatLONkdHqdZGdPjw+qMkmSdK2Zq/ruFicAVDf0HGIgJ1qDpHnX3QXp6o/I/SvNPdr1gkGHPY3Ve2aASD6+QvRwLBWS+yudeKmotQ65YxYD+DnMyH4jwTjxTEWWmZxFYh5IuaBqS4z8o2aUrQHr79QlnSFzZThihxRsZ99tUez7VBSagyAXuEqK8lD3fY1mbYrJXktHw+ip280nkdiB1q8lXtiAOo8nV+CaLOa6qH7V+PW8sW6CkNXJnEtbNyUGVm8KMeGBXZJk+zH7sv46PMhrTA62eKrvDcGoN7TMUAEp5rqmUfWoXBVbKzV/N77ZBBdvRq7Y2Sxav2x7WtRXrJIk2vg7Dje+EBk97kfYwj6fVWFUwAaOi4TkK8m8j69Htfn2/9VAH+MhNH45ul4AMCIv6lqsRJCYRDZ1FRveSpgt2m7VtD+Ex4IT3A85evSCqGJFl+l/f8BwPQhZPpDPN80euKrc7H5Nt3vwXtWonhtzvzTaF1j535wipt2TFPITN9KJGrm6muduPm/3sxNFzPzttMCgOkHGtOPlDEvmHmoFwBMf60S84KZL7aUUmjqq0UBwvSXuwKEqa/XlVAy9QOHAsLUT0wKCFM/8s1u0qdSLPb9nc+skhV7m+XKuEs2vZkj5WcKUz90z94F0/5qoOVK5WcPTvxuDioyxc8e6c7BmeL/C6MjFF4PO1ITAAAAAElFTkSuQmCC",bf=je(5269),Hf=je(87108),xu=je(59301),up=Object.defineProperty,sc=Object.defineProperties,Fe=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable,vt=(ee,y,E)=>y in ee?up(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,bt=(ee,y)=>{for(var E in y||(y={}))Qe.call(y,E)&&vt(ee,E,y[E]);if(He)for(var E of He(y))ot.call(y,E)&&vt(ee,E,y[E]);return ee},Ot=(ee,y)=>sc(ee,Fe(y)),wt=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const dn=({classroomList:ee,dispatch:y,courseEndTime:E})=>{const z=(0,yt.useParams)(),[ne]=an.default.useForm(),[ie,se]=(0,Me.useState)(1),[ae,he]=(0,Me.useState)([]),[pe,ve]=(0,Me.useState)(0),[xe,Se]=(0,Me.useState)(20),[Be,De]=(0,Me.useState)(!0),[Re,Oe]=(0,Me.useState)([]),[Le,Je]=(0,Me.useState)(!0);z.coursesId=z.pathId,z.id=z.coursesId,(0,Me.useEffect)(()=>{if(ee.actionTabs.key==="\u7ACB\u5373\u53D1\u5E03")if(st(),$e(),ee.actionTabs.type===2){const gt=ee.actionTabs.selectArrsAll[0];Je(gt.unified_setting)}else Je(!1)},[ee.actionTabs]);const $e=gt=>wt(void 0,null,function*(){De(!0);const zt=yield(0,it.c_)(Ot(bt({},z),{page:gt||ie,limit:2e4}));zt==null||zt.course_groups.map((cn,Tn)=>{cn.key=cn.id,cn.title=cn.name,cn.disabled=cn.is_published}),zt&&(he([...zt==null?void 0:zt.course_groups]),ve(zt==null?void 0:zt.course_groups_count),De(!1),gt||ne.setFieldsValue({publish_time:xi()(xi()(new Date).add(0,"days").format("YYYY-MM-DD HH:mm")),end_time:xi()(xi()(new Date((0,Et.qd)("/"))).add(7,"days").format("YYYY-MM-DD HH:mm"))}))}),_e=()=>wt(void 0,null,function*(){var gt;const zt=bt({},ne.getFieldsValue());if(zt.end_time<=zt.publish_time){Qt.ZP.info("\u622A\u6B62\u65F6\u95F4\u4E0D\u80FD\u5927\u4E8E\u6216\u7B49\u4E8E\u53D1\u5E03\u65F6\u95F4"),pt(!1);return}if((Re==null?void 0:Re.length)<=0&&!Le&&ae.length>0){Qt.ZP.info("\u53D1\u5E03\u73ED\u7EA7\u4E0D\u80FD\u4E3A\u7A7A"),pt(!1);return}let cn={ids:[...ee.actionTabs.selectArrs],group_ids:Re.length>0?Re.map(Zn=>Zn.id):(gt=ee.detailShixunsList)==null?void 0:gt.course_groups,end_time:xi()(zt.end_time).format("YYYY-MM-DD HH:mm"),publish_time:xi()(zt.publish_time).format("YYYY-MM-DD HH:mm"),unified_setting:!Re.length,subject_id:z.pathId};pt(!0),(yield(0,on.ZP)("/api/subject_knowledge/batch_publish.json",{method:"post",body:bt({},cn)})).status===0?(y({type:"classroomList/setActionTabs",payload:{}}),y({type:"pathsDetail/setActionTabs",payload:{key:"\u66F4\u65B0\u6570\u636E"}}),pt(!1),st(),(0,Et.L9)(["\u6559\u5B66\u8BFE\u5802","\u8BFE\u7A0B\u5B9E\u9A8C","\u7ACB\u5373\u53D1\u5E03"]),Qt.ZP.success("\u53D1\u5E03\u6210\u529F")):pt(!1)}),st=()=>{se(1),he([]),Oe([])},ct=pe>ie*xe,{detailShixunsList:ut}=ee,[ht,pt]=(0,Me.useState)(!1);return xu.createElement(Jt.default,{width:600,centered:!0,confirmLoading:ht,title:"\u53D1\u5E03\u8282\u70B9",open:ee.actionTabs.key==="\u7ACB\u5373\u53D1\u5E03",okText:"\u786E\u8BA4\u53D1\u5E03",cancelText:"\u53D6\u6D88",className:Hf.Z.modal,onOk:()=>_e(),onCancel:()=>{st(),y({type:"classroomList/setActionTabs",payload:{}})}},xu.createElement("p",null,"\u5230\u8FBE\u53D1\u5E03\u65F6\u95F4\u540E\uFF0C\u5B66\u751F\u5C06\u5728\u5404\u6559\u5B66\u6A21\u5757\u4E2D\u67E5\u770B\u5230\u5B66\u4E60\u8DEF\u5F84\u7684\u4F5C\u4E1A\u3001\u8003\u8BD5\u3001\u89C6\u9891\u3001\u8D44\u6E90\u7B49",xu.createElement("br",null),"\u53D1\u5E03\u64CD\u4F5C\u4EC5\u9488\u5BF9\u672A\u53D1\u5E03\u8D44\u6E90\u7684\u5206\u73ED\u751F\u6548"),xu.createElement(an.default,{form:ne},xu.createElement("div",{style:{paddingLeft:0}},xu.createElement(dh.Z,{className:"mt30",align:"middle"},xu.createElement(bf.Z,null,xu.createElement(an.default.Item,{name:"publish_time",label:"\u53D1\u5E03\u65F6\u95F4"},xu.createElement(jl.default,{style:{width:170,marginRight:"25px"},disabledDate:gt=>(0,fr.Q8)(gt,E),disabledTime:gt=>(0,fr.d0)(gt),placeholder:"\u8BF7\u9009\u62E9\u53D1\u5E03\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:xi()((0,Et.U6)(),"HH:mm")},format:"YYYY-MM-DD HH:mm",allowClear:!1}))),xu.createElement(bf.Z,{className:"ml20"},xu.createElement(an.default.Item,{name:"end_time",label:"\u622A\u6B62\u65F6\u95F4:"},xu.createElement(jl.default,{style:{width:170},placeholder:"\u8BF7\u9009\u62E9\u622A\u6B62\u65F6\u95F4",showTime:{format:"HH:mm",defaultValue:xi()((0,Et.U6)(),"HH:mm")},disabledDate:gt=>(0,fr.Q8)(gt,E,ne.getFieldValue("publish_time")),disabledTime:gt=>(0,fr.d0)(gt,ne.getFieldValue("publish_time")),format:"YYYY-MM-DD HH:mm",allowClear:!1})))),ee.actionTabs.type===2&&xu.createElement(dh.Z,{style:{marginBottom:"10px"}},xu.createElement("span",{className:"mr5"},"\u53D1\u5E03\u8BBE\u7F6E:"),xu.createElement(qt.ZP.Group,{value:Le,onChange:gt=>{Je(gt.target.value),Oe([])}},xu.createElement(qt.ZP,{value:!0,disabled:!ee.actionTabs.manage_all_group},"\u7EDF\u4E00\u53D1\u5E03"),xu.createElement(qt.ZP,{className:"ml20",disabled:ae.length<=0,value:!1},"\u5206\u73ED\u53D1\u5E03"))),ae.length<=0&&ee.actionTabs.type===2&&xu.createElement("span",{style:{marginLeft:"65px",color:"rgba(0, 0, 0, 0.25)"}},'\u8BFE\u5802\u65E0\u5206\u73ED\uFF0C\u4EC5\u652F\u6301\u9009\u62E9\u201C\u7EDF\u4E00\u53D1\u5E03"')),(ee.actionTabs.type===1||!Le)&&ae.length>0&&xu.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"10px"}},xu.createElement("span",{style:{flex:1}},xu.createElement(Vu.default,{checked:Re.length===ae.length,onChange:gt=>{Re.length===ae.length?Oe([]):Oe(ae)}},"\u5168\u9009")),xu.createElement("span",{style:{width:16}}),xu.createElement("span",{style:{flex:1}},"\u5DF2\u9009\u62E9",Re.length||0,"\u4E2A\u5206\u73ED")),(ee.actionTabs.type===1||!Le)&&ae.length>0&&xu.createElement(kn.Z,{data:ae,selectedRowKeys:Re,setSelectedRowKeys:Oe})))};var Vt=(0,yt.connect)(({classroomList:ee})=>({classroomList:ee}))(dn),Wt=je(59301),Bn=Object.defineProperty,Wn=Object.defineProperties,Gi=Object.getOwnPropertyDescriptors,bi=Object.getOwnPropertySymbols,fi=Object.prototype.hasOwnProperty,Fi=Object.prototype.propertyIsEnumerable,Tr=(ee,y,E)=>y in ee?Bn(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,rr=(ee,y)=>{for(var E in y||(y={}))fi.call(y,E)&&Tr(ee,E,y[E]);if(bi)for(var E of bi(y))Fi.call(y,E)&&Tr(ee,E,y[E]);return ee},to=(ee,y)=>Wn(ee,Gi(y)),Io=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const ks=[{name:"\u672A\u53D1\u5E03",color:"#9AA4B3"},{name:"\u5DF2\u53D1\u5E03",color:"#37AD83"},{name:"\u672A\u5F00\u542F",color:"#92D2B7"},{name:"\u672A\u901A\u5173",color:"#EE5D5D"},{name:"\u6309\u65F6\u901A\u5173",color:"#37AD83"},{name:"\u8865\u4EA4\u901A\u5173",color:"#288A67"},{name:"\u622A\u6B62\u540E\u901A\u5173",color:"#929628"},{name:"\u672A\u5F00\u59CB",color:"#92D2B7"},{name:"\u8003\u8BD5\u4E2D",color:"#FFC86B"},{name:"\u5DF2\u4EA4\u5377",color:"#37AD83"},{name:"\u5DF2\u4EA4\u5377/\u672A\u7B54",color:"#929628"},{name:"\u672A\u770B\u5B8C",color:"#FFC86B"},{name:"\u5DF2\u770B\u5B8C",color:"#37AD83"},{name:"\u672A\u67E5\u770B",color:"#9AA4B3"},{name:"\u5DF2\u67E5\u770B",color:"#37AD83"},{name:"\u5DF2\u4E0B\u8F7D",color:"#377DFF"}],uo=({pathsDetail:ee,setselectitems:y,publishshow:E,node:z,index:ne,onExpandClick:ie,onClickDetails:se,selectitems:ae})=>{var he,pe,ve;const[xe,Se]=(0,Me.useState)(!1),Be=(0,Me.useRef)(null),{name:De,complete_rate:Re,node_type:Oe,resource_info:Le,grasp_rate:Je,has_children:$e,children:_e,expand:st,key:ct,is_publish:ut,status:ht,id:pt,url:gt}=z||{};(0,Me.useEffect)(()=>{var bn;zt();const Sn=(bn=Be.current)==null?void 0:bn.parentElement;if(!Sn)return;const ki=new ResizeObserver(()=>{zt()});return ki.observe(Sn),()=>{ki.disconnect()}},[st]);const zt=()=>{if(!Be.current)return;const bn=Be.current,Sn=bn.parentElement,ki=bn.previousElementSibling,ti=Sn==null?void 0:Sn.firstElementChild;if(Sn&&ki&&ti){const fn=ki.getBoundingClientRect().height,Bi=Sn.getBoundingClientRect().height,jn=ti.getBoundingClientRect().height,ei=fn/2,hr=Bi-(jn+fn)/2;bn.style.bottom=`${ei}px`,bn.style.height=`${hr}px`}},cn=(he=Number(Re))==null?void 0:he.toFixed(0),Tn=cn==="100",Zn=Tn?Oe==="\u5B9E\u8BAD"?"\u5DF2\u901A\u5173":"\u5DF2\u5B8C\u6210":`${cn}%`,Nn=Le==null?void 0:Le.reduce((bn,Sn)=>bn+Sn.value,0),di={\u5B9E\u8BAD:Em,\u8BD5\u5377:V0,\u8BFE\u4EF6:fh,\u89C6\u9891:jh},yi=()=>{ie(ct)};return Wt.createElement("div",{className:Wl.treeNode,"data-index":ne},Wt.createElement("div",{className:Wl.node,style:Tn?{background:"#EDF7EE"}:{}},!ut&&!((pe=ee==null?void 0:ee.detail)!=null&&pe.can_managed)&&Wt.createElement("div",{style:{background:"rgba(0, 0, 0, 0.5)",width:"100%",height:"100%",position:"absolute",zIndex:5,left:"50%",bottom:0,transform:"translateX(-50%)",textAlign:"center",paddingTop:"30rem",borderRadius:"10rem"}},Wt.createElement("div",null,Wt.createElement("i",{className:"iconfont icon-suo1",style:{color:"#fff",fontSize:"28rem"}}),Wt.createElement("div",{style:{color:"#fff",fontSize:"12rem"}},"\u8D44\u6E90\u6682\u672A\u53D1\u5E03"))),Wt.createElement("div",{className:Wl.statusbutton,style:{background:(ve=ks.find(bn=>bn.name===ht))==null?void 0:ve.color}},ht),E&&Wt.createElement(Vu.default,{checked:ae==null?void 0:ae.map(bn=>bn.id).includes(pt),onChange:()=>{if(ae!=null&&ae.map(bn=>bn.id).includes(pt))y(ae.filter(bn=>bn.id!==pt));else{let bn=[...ae];bn.push(z),y(bn)}},className:Wl.checkbox}),Wt.createElement(dh.Z,{style:{padding:$e?"initial":"3rem 0"}},Wt.createElement(lt.Z,{title:"\u5B8C\u6210\u7387"},Wt.createElement("div",{style:{flexShrink:0,marginLeft:"24rem",marginTop:"17rem"}},Wt.createElement(ix,{strokeColor:"#60C059",percentage:Re,startAngle:270,trackColor:"#E3E8EF",text:Zn,textSize:"12rem",textColor:"#60C059",outerDiameter:"62rem",innerDiameter:"46rem",textPadding:"3rem",hoverEffect:!1}))),Wt.createElement("div",{className:Wl.info},Wt.createElement(dh.Z,{align:"middle"},Wt.createElement(lt.Z,{title:Oe},Wt.createElement("img",{src:di[Oe]||s0,style:{marginRight:"10rem",width:"16rem"}})),Wt.createElement(lt.Z,{title:De},Wt.createElement("b",{onClick:()=>{se(z)},className:"c-grey-333 current",style:{fontSize:"16rem"}},(0,Et.Pq)(De,19)))),Wt.createElement(dh.Z,{align:"middle",style:{marginTop:"5rem",marginLeft:"26rem",marginBottom:$e?"0":"30rem"}},Wt.createElement(dh.Z,{align:"middle"},Wt.createElement(lt.Z,{title:"\u638C\u63E1\u7387"},Wt.createElement("img",{src:Uf,style:{marginRight:"4rem",width:"16rem"}})),Wt.createElement("span",{style:{color:"#1B8565",fontSize:"14rem"}},Je,"%")),Wt.createElement(dh.Z,{align:"middle",style:{marginLeft:"55rem"}},Wt.createElement(lt.Z,{title:"\u5B8C\u6210\u7387"},Wt.createElement("img",{src:bm,style:{marginRight:"4rem",width:"16rem"}})),Wt.createElement("span",{style:{color:"#1B8565",fontSize:"14rem"}},Re,"%"))),$e&&Wt.createElement(dh.Z,{className:Wl.resource},Wt.createElement("span",{style:{color:"#666",fontSize:"14rem"}},"\u8D44\u6E90\u6570\uFF1A",Nn),Wt.createElement("div",{onClick:()=>Se(!xe),className:Wl.action},xe?Wt.createElement(Wt.Fragment,null,"\u6536\u8D77",Wt.createElement("i",{className:"iconfont icon-xialajiantou1",style:{transform:"scale(0.6)"}})):Wt.createElement(Wt.Fragment,null,"\u5C55\u5F00",Wt.createElement("i",{className:"iconfont icon-xialajiantoubeifen",style:{transform:"scale(0.6)"}})))))),xe&&Wt.createElement("div",{className:Wl.tags},Le==null?void 0:Le.map((bn,Sn)=>Wt.createElement(lt.Z,{title:bn.name},Wt.createElement("div",{className:Wl.tag,key:Sn},(0,Et.Pq)(bn.name,5),"\uFF1A",bn.value)))),ne.length>1&&Wt.createElement("div",{className:Wl.leftLine}),st&&Wt.createElement("div",{className:Wl.rightLine}),$e&&Wt.createElement("img",{onClick:yi,className:Wl.icon,src:st?$c:$h})),_e&&_e.length>0&&st&&Wt.createElement("div",{className:Wl.nodeWrap},_e.map((bn,Sn)=>Wt.createElement(uo,{key:bn.key,onExpandClick:ie,onClickDetails:se,publishshow:E,setselectitems:y,pathsDetail:ee,selectitems:ae,node:bn,index:ne+"-"+(Sn+1)})),_e.length>1&&Wt.createElement("div",{ref:Be,className:Wl.line})))},Ss=({data:ee,onExpandClick:y,selectitems:E,onClickDetails:z,pathsDetail:ne,setselectitems:ie,publishshow:se})=>Wt.createElement("div",{className:Wl.treeNode},Wt.createElement("div",{className:Wl.nodeWrap},ee.map((ae,he)=>Wt.createElement(uo,{key:ae.key,onExpandClick:y,onClickDetails:z,pathsDetail:ne,publishshow:se,selectitems:E,setselectitems:ie,node:ae,index:String(he+1)}))));var ua=({visible:ee,onCancel:y,subjectId:E,onClickDetails:z,pathsDetail:ne,dispatch:ie})=>{var se;const[ae,he]=(0,Me.useState)([]),[pe,ve]=(0,Me.useState)(!0),[xe,Se]=(0,Me.useState)("\u5168\u90E8"),[Be,De]=(0,Me.useState)([]),[Re]=(0,yt.useSearchParams)(),[Oe,Le]=(0,Me.useState)(!1),[Je,$e]=(0,Me.useState)([]);(0,Me.useEffect)(()=>{st()},[xe]),(0,Me.useEffect)(()=>{ne.actionTabs.key==="\u66F4\u65B0\u6570\u636E"&&(ie({type:"pathsDetail/setActionTabs",payload:{key:""}}),st())},[ne.actionTabs.key]);const _e=(gt,zt)=>Io(void 0,null,function*(){const cn=yield(0,on.ZP)("/api/subject_knowledge.json",{method:"get",params:{id:gt,subject_id:E,node_type:xe}});if((cn==null?void 0:cn.status)===0)return zt&&De((cn==null?void 0:cn.node_types)||[]),(cn==null?void 0:cn.data)||[];ve(!1)}),st=()=>Io(void 0,null,function*(){ve(!0);const gt=yield _e(ee,!0);he(gt),ve(!1)}),ct=(gt,zt,cn)=>Io(void 0,null,function*(){return yield Promise.all(gt.map(Zn=>Io(void 0,null,function*(){return Zn.key===zt?yield cn(Zn):Zn.children&&Zn.children.length>0?to(rr({},Zn),{children:yield ct(Zn.children,zt,cn)}):Zn})))}),ut=gt=>Io(void 0,null,function*(){ve(!0);const zt=yield ct(ae,gt,cn=>Io(void 0,null,function*(){var Tn,Zn;const Nn=to(rr({},cn),{expand:!(cn!=null&&cn.expand)});return!(cn!=null&&cn.expand)&&!((Tn=cn==null?void 0:cn.children)!=null&&Tn.length)&&(Nn.children=yield _e(gt),((Zn=Nn.children)==null?void 0:Zn.length)===0&&(Nn.has_children=!1,Nn.expand=!1)),Nn}));he(zt),ve(!1)}),ht=gt=>Io(void 0,null,function*(){ve(!0),yield z(gt,!1),ve(!1)});return Wt.createElement("div",{className:Wl.tree},Wt.createElement("div",{className:Wl.center},Wt.createElement("div",{className:Wl.head},Wt.createElement("div",{className:Wl.del},Wt.createElement("i",{onClick:y,className:"iconfont icon-shanchuhuanjing"}),Wt.createElement("b",null))),Wt.createElement("div",{className:Wl.body},pe&&Wt.createElement("div",{className:Wl.loading},Wt.createElement(rn.Z,{spinning:!0})),Wt.createElement("div",{style:{display:"flex",justifyContent:"space-between"}},Wt.createElement("div",{className:Wl.tabs,style:{flex:1}},Be==null?void 0:Be.map(gt=>Wt.createElement("div",{onClick:()=>Se(gt.node_type),className:gt.node_type===xe?Wl.active:void 0,key:gt.node_type},gt.node_type,"\uFF08",gt.count,"\uFF09"))),Re.get("type")==="classrooms"&&((se=ne==null?void 0:ne.detail)==null?void 0:se.can_managed)&&Wt.createElement("div",null,Oe&&Wt.createElement(Vu.default,{style:{color:"#fff"},checked:(Je==null?void 0:Je.length)===(ae==null?void 0:ae.length),onChange:()=>{if((Je==null?void 0:Je.length)===(ae==null?void 0:ae.length))$e([]);else{Le(!0);let gt=[...ae];$e(gt)}}},(Je==null?void 0:Je.length)===(ae==null?void 0:ae.length)?"\u53D6\u6D88\u5168\u9009":"\u5168\u9009","\uFF08\u5F53\u524D\u9009\u4E2D",Je==null?void 0:Je.length,"\uFF09"),Oe&&Wt.createElement(It.ZP,{style:{marginRight:"20rem",borderRadius:"24rem"},onClick:()=>Le(!1)},"\u53D6\u6D88"),Wt.createElement(It.ZP,{type:"primary",onClick:()=>Io(void 0,null,function*(){if(Oe)ie({type:"classroomList/setActionTabs",payload:{key:"\u7ACB\u5373\u53D1\u5E03",selectArrs:Je==null?void 0:Je.map(gt=>gt.id)}});else{Le(!0);let gt=[...ae];$e(gt)}}),style:{borderRadius:"24rem"}},Oe?"\u6279\u91CF\u53D1\u5E03":"\u53D1\u5E03\u8282\u70B9"))),Wt.createElement("div",{className:Wl.scrollBox},Wt.createElement("div",{className:pn()(Wl.treeWarp,!0&&Wl.allTreeNode)},Wt.createElement(Ss,{pathsDetail:ne,selectitems:Je,setselectitems:$e,publishshow:Oe,data:ae,onClickDetails:ht,onExpandClick:ut}))))),Wt.createElement(Vt,null))},Ao=je(44203),Er={ItemDom:"ItemDom___Xq2Xn",Arrow:"Arrow___Ulbfi",Title:"Title___RNBAc",Node:"Node___XTXfD",Direction:"Direction___QoIf0",UP:"UP___SeZ0o",DOWN:"DOWN___F5Bx1",ItemDom100:"ItemDom100___n_HZz",ItemDom79:"ItemDom79___o5fGp",ItemDom59:"ItemDom59___JfdjC",waveDom:"waveDom___Wc261",wave:"wave___hTeV6",waveDom100:"waveDom100___HxeAE",waveDom79:"waveDom79___BryDl",waveDom59:"waveDom59___Nw1Dv",ArrowLeft:"ArrowLeft___hSXT2",ArrowRight:"ArrowRight___v1_qH",ArrowDownLeft:"ArrowDownLeft___HwtjS",ArrowDownRight:"ArrowDownRight___r0H2C",ArrowDisable:"ArrowDisable___U1ckU",HeightItem:"HeightItem___x_c8h",NodeUp:"NodeUp___e6Mr3",NodeShowDirection:"NodeShowDirection___Zuy0X"},ca=Object.defineProperty,Ci=Object.getOwnPropertySymbols,qr=Object.prototype.hasOwnProperty,Mo=Object.prototype.propertyIsEnumerable,Eo=(ee,y,E)=>y in ee?ca(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Ds=(ee,y)=>{for(var E in y||(y={}))qr.call(y,E)&&Eo(ee,E,y[E]);if(Ci)for(var E of Ci(y))Mo.call(y,E)&&Eo(ee,E,y[E]);return ee};const is=ee=>React.createElement("svg",Ds({width:200,height:200,xmlns:"http://www.w3.org/2000/svg"},ee),React.createElement("title",null,"\u8BFE\u4EF6"),React.createElement("g",{fill:"none",fillRule:"evenodd"},React.createElement("path",{fill:"#FFF",d:"M50 41h115v115H50z"}),React.createElement("path",{d:"M100 0c55.228 0 100 44.772 100 100l-.044 2.944c-1.63 54.616-46.794 97.813-101.428 97.009C43.893 199.148.02 154.64 0 100l.044-2.944C1.637 42.998 45.92 0 100 0ZM67.367 50.011a8.889 8.889 0 0 0-8.911 8.845l-.045 81.677a8.89 8.89 0 0 0 8.922 8.834h64.878a8.934 8.934 0 0 0 8.978-8.834V76.511l-26.911-26.489-46.911-.01Zm55.889 72.856v8.289H76.333v-8.29h46.923Zm0-17.111v8.288H76.333v-8.288h46.923Zm-19.334-17.112v8.29H76.344v-8.278h27.578v-.012Zm7.19-33.088 22.221 22.222h-22.222V55.556Z",fill:"#44D7B6",fillRule:"nonzero"})));var Ko="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik01MCA0MWgxMTV2MTE1SDUweiIvPjxwYXRoIGQ9Ik0xMDAgMGM1NS4yMjggMCAxMDAgNDQuNzcyIDEwMCAxMDBsLS4wNDQgMi45NDRjLTEuNjMgNTQuNjE2LTQ2Ljc5NCA5Ny44MTMtMTAxLjQyOCA5Ny4wMDlDNDMuODkzIDE5OS4xNDguMDIgMTU0LjY0IDAgMTAwbC4wNDQtMi45NDRDMS42MzcgNDIuOTk4IDQ1LjkyIDAgMTAwIDBaTTY3LjM2NyA1MC4wMTFhOC44ODkgOC44ODkgMCAwIDAtOC45MTEgOC44NDVsLS4wNDUgODEuNjc3YTguODkgOC44OSAwIDAgMCA4LjkyMiA4LjgzNGg2NC44NzhhOC45MzQgOC45MzQgMCAwIDAgOC45NzgtOC44MzRWNzYuNTExbC0yNi45MTEtMjYuNDg5LTQ2LjkxMS0uMDFabTU1Ljg4OSA3Mi44NTZ2OC4yODlINzYuMzMzdi04LjI5aDQ2LjkyM1ptMC0xNy4xMTF2OC4yODhINzYuMzMzdi04LjI4OGg0Ni45MjNabS0xOS4zMzQtMTcuMTEydjguMjlINzYuMzQ0di04LjI3OGgyNy41Nzh2LS4wMTJabTcuMTktMzMuMDg4IDIyLjIyMSAyMi4yMjJoLTIyLjIyMlY1NS41NTZaIiBmaWxsPSIjNDREN0I2IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L2c+PC9zdmc+",za=Object.defineProperty,tu=Object.getOwnPropertySymbols,ea=Object.prototype.hasOwnProperty,Ku=Object.prototype.propertyIsEnumerable,Mu=(ee,y,E)=>y in ee?za(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Fc=(ee,y)=>{for(var E in y||(y={}))ea.call(y,E)&&Mu(ee,E,y[E]);if(tu)for(var E of tu(y))Ku.call(y,E)&&Mu(ee,E,y[E]);return ee};const ph=ee=>React.createElement("svg",Fc({width:200,height:200,xmlns:"http://www.w3.org/2000/svg"},ee),React.createElement("title",null,"\u4EFB\u52A1\u5173\u5361"),React.createElement("g",{fill:"none",fillRule:"evenodd"},React.createElement("circle",{fill:"#FFF",cx:100,cy:100,r:82}),React.createElement("path",{d:"M100 0c55.23 0 100 44.77 100 100s-44.77 100-100 100S0 155.23 0 100 44.77 0 100 0ZM84.63 43.55l-2.5.09-.78.09a7.96 7.96 0 0 0-6.12 5.4l-.25.8-13.01 53.12-9 35.92c-.45 1.83.45 3.71 2.07 4.35 1.63.65 3.43-.17 4.15-1.87l.19-.55 9.72-38.81.82-.05a55.82 55.82 0 0 1 18.85 1.62c4.42 1.2 7.67 3.2 12.17 7.13l3.78 3.4c5.96 5.36 10.18 8.03 16.53 9.65 7.66 1.93 13.44 1.58 17.34-1l.42-.3 13.84-56.38c-5.1 1.18-10.35 1.3-15.47.34l-1.93-.4-1.92-.51c-4.02-1.15-7.2-3.03-11.44-6.43l-4.84-4.04c-5.83-4.9-10.03-7.52-15.85-9.24a56.04 56.04 0 0 0-16.77-2.33Z",fill:"#39B97E",fillRule:"nonzero"})));var Nu="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxjaXJjbGUgZmlsbD0iI0ZGRiIgY3g9IjEwMCIgY3k9IjEwMCIgcj0iODIiLz48cGF0aCBkPSJNMTAwIDBjNTUuMjMgMCAxMDAgNDQuNzcgMTAwIDEwMHMtNDQuNzcgMTAwLTEwMCAxMDBTMCAxNTUuMjMgMCAxMDAgNDQuNzcgMCAxMDAgMFpNODQuNjMgNDMuNTVsLTIuNS4wOS0uNzguMDlhNy45NiA3Ljk2IDAgMCAwLTYuMTIgNS40bC0uMjUuOC0xMy4wMSA1My4xMi05IDM1LjkyYy0uNDUgMS44My40NSAzLjcxIDIuMDcgNC4zNSAxLjYzLjY1IDMuNDMtLjE3IDQuMTUtMS44N2wuMTktLjU1IDkuNzItMzguODEuODItLjA1YTU1LjgyIDU1LjgyIDAgMCAxIDE4Ljg1IDEuNjJjNC40MiAxLjIgNy42NyAzLjIgMTIuMTcgNy4xM2wzLjc4IDMuNGM1Ljk2IDUuMzYgMTAuMTggOC4wMyAxNi41MyA5LjY1IDcuNjYgMS45MyAxMy40NCAxLjU4IDE3LjM0LTFsLjQyLS4zIDEzLjg0LTU2LjM4Yy01LjEgMS4xOC0xMC4zNSAxLjMtMTUuNDcuMzRsLTEuOTMtLjQtMS45Mi0uNTFjLTQuMDItMS4xNS03LjItMy4wMy0xMS40NC02LjQzbC00Ljg0LTQuMDRjLTUuODMtNC45LTEwLjAzLTcuNTItMTUuODUtOS4yNGE1Ni4wNCA1Ni4wNCAwIDAgMC0xNi43Ny0yLjMzWiIgZmlsbD0iIzM5Qjk3RSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PC9nPjwvc3ZnPg==",sg=Object.defineProperty,Tg=Object.getOwnPropertySymbols,Mm=Object.prototype.hasOwnProperty,rx=Object.prototype.propertyIsEnumerable,j1=(ee,y,E)=>y in ee?sg(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Wy=(ee,y)=>{for(var E in y||(y={}))Mm.call(y,E)&&j1(ee,E,y[E]);if(Tg)for(var E of Tg(y))rx.call(y,E)&&j1(ee,E,y[E]);return ee};const Xb=ee=>React.createElement("svg",Wy({width:200,height:200,xmlns:"http://www.w3.org/2000/svg"},ee),React.createElement("title",null,"\u89C6\u9891"),React.createElement("g",{fill:"none",fillRule:"evenodd"},React.createElement("path",{fill:"#FFF",d:"M59 45h98v106H59z"}),React.createElement("path",{d:"M99.733.1c-35.6 0-68.493 18.996-86.292 49.827a99.644 99.644 0 0 0 86.303 149.462c55.03-.003 99.64-44.614 99.64-99.645 0-55.03-44.61-99.642-99.64-99.644h-.01Zm44.111 105.822a12.401 12.401 0 0 1-4.588 4.6h-.056l-47.433 27.39A12.444 12.444 0 0 1 73.1 127.132v-54.8a12.445 12.445 0 0 1 18.667-10.777L139.2 88.933c5.989 3.411 8.044 11 4.633 17l.011-.01Z",fill:"#6236FF",fillRule:"nonzero"})));var Rv="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik01OSA0NWg5OHYxMDZINTl6Ii8+PHBhdGggZD0iTTk5LjczMy4xYy0zNS42IDAtNjguNDkzIDE4Ljk5Ni04Ni4yOTIgNDkuODI3YTk5LjY0NCA5OS42NDQgMCAwIDAgODYuMzAzIDE0OS40NjJjNTUuMDMtLjAwMyA5OS42NC00NC42MTQgOTkuNjQtOTkuNjQ1IDAtNTUuMDMtNDQuNjEtOTkuNjQyLTk5LjY0LTk5LjY0NGgtLjAxWm00NC4xMTEgMTA1LjgyMmExMi40MDEgMTIuNDAxIDAgMCAxLTQuNTg4IDQuNmgtLjA1NmwtNDcuNDMzIDI3LjM5QTEyLjQ0NCAxMi40NDQgMCAwIDEgNzMuMSAxMjcuMTMydi01NC44YTEyLjQ0NSAxMi40NDUgMCAwIDEgMTguNjY3LTEwLjc3N0wxMzkuMiA4OC45MzNjNS45ODkgMy40MTEgOC4wNDQgMTEgNC42MzMgMTdsLjAxMS0uMDFaIiBmaWxsPSIjNjIzNkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L2c+PC9zdmc+",ag=Object.defineProperty,vS=Object.getOwnPropertySymbols,yS=Object.prototype.hasOwnProperty,zv=Object.prototype.propertyIsEnumerable,Uv=(ee,y,E)=>y in ee?ag(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,eh=(ee,y)=>{for(var E in y||(y={}))yS.call(y,E)&&Uv(ee,E,y[E]);if(vS)for(var E of vS(y))zv.call(y,E)&&Uv(ee,E,y[E]);return ee};const j0=ee=>React.createElement("svg",eh({className:"cs_svg__icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:200,height:200},ee),React.createElement("path",{d:"M0 512a512 512 0 1 0 1024 0A512 512 0 1 0 0 512Z",fill:"#ECAD19"}),React.createElement("path",{d:"M710.554 256c27.648 0 50.739 21.248 54.118 48.64l.41 5.888v21.811a19.712 19.712 0 0 1-15.77 19.354l-3.942.41h-66.56a1.536 1.536 0 0 0-1.332.921l-.204.614v326.759c0 27.033-20.736 49.357-47.258 52.48a27.443 27.443 0 0 1-5.12.512h-314.88c-27.648 0-50.74-20.787-53.709-48.077l-.307-5.94v-19.2c0-11.11 8.192-20.53 18.79-22.527l4.096-.359h43.623a1.536 1.536 0 0 0 1.382-.921l.154-.615V310.016c0-27.648 20.838-50.74 48.128-53.709l5.837-.307h332.492zm-160 412.467H293.376a6.554 6.554 0 0 0-6.4 4.455l-.358 2.304v4.147c0 11.11 8.192 20.48 18.79 22.528l4.045.358h243.66c1.025 0 1.537-1.024 1.537-1.536a90.266 90.266 0 0 1-2.56-20.326c-.717-7.936-1.23-11.93-1.588-11.93zM578.56 532.48h-153.6v30.72h153.6v-30.72zm0-87.04h-153.6v30.72h153.6v-30.72zm0-87.04h-153.6v30.72h153.6V358.4zm130.97-71.22h-11.981a22.63 22.63 0 0 0-20.275 22.836v9.37c0 1.024 1.024 1.536 1.536 1.536h47.82c3.636 0 6.759-2.56 6.759-6.759l-1.024-4.096a23.04 23.04 0 0 0-22.835-22.886z",fill:"#FFF"}));var dC="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTAgNTEyYTUxMiA1MTIgMCAxIDAgMTAyNCAwQTUxMiA1MTIgMCAxIDAgMCA1MTJaIiBmaWxsPSIjRUNBRDE5Ii8+PHBhdGggZD0iTTcxMC41NTQgMjU2YzI3LjY0OCAwIDUwLjczOSAyMS4yNDggNTQuMTE4IDQ4LjY0bC40MSA1Ljg4OHYyMS44MTFhMTkuNzEyIDE5LjcxMiAwIDAgMS0xNS43NyAxOS4zNTRsLTMuOTQyLjQxaC02Ni41NmExLjUzNiAxLjUzNiAwIDAgMC0xLjMzMi45MjFsLS4yMDQuNjE0djMyNi43NTljMCAyNy4wMzMtMjAuNzM2IDQ5LjM1Ny00Ny4yNTggNTIuNDhhMjcuNDQzIDI3LjQ0MyAwIDAgMS01LjEyLjUxMmgtMzE0Ljg4Yy0yNy42NDggMC01MC43NC0yMC43ODctNTMuNzA5LTQ4LjA3N2wtLjMwNy01Ljk0di0xOS4yYzAtMTEuMTEgOC4xOTItMjAuNTMgMTguNzktMjIuNTI3bDQuMDk2LS4zNTloNDMuNjIzYTEuNTM2IDEuNTM2IDAgMCAwIDEuMzgyLS45MjFsLjE1NC0uNjE1VjMxMC4wMTZjMC0yNy42NDggMjAuODM4LTUwLjc0IDQ4LjEyOC01My43MDlsNS44MzctLjMwN2gzMzIuNDkyem0tMTYwIDQxMi40NjdIMjkzLjM3NmE2LjU1NCA2LjU1NCAwIDAgMC02LjQgNC40NTVsLS4zNTggMi4zMDR2NC4xNDdjMCAxMS4xMSA4LjE5MiAyMC40OCAxOC43OSAyMi41MjhsNC4wNDUuMzU4aDI0My42NmMxLjAyNSAwIDEuNTM3LTEuMDI0IDEuNTM3LTEuNTM2YTkwLjI2NiA5MC4yNjYgMCAwIDEtMi41Ni0yMC4zMjZjLS43MTctNy45MzYtMS4yMy0xMS45My0xLjU4OC0xMS45M3pNNTc4LjU2IDUzMi40OGgtMTUzLjZ2MzAuNzJoMTUzLjZ2LTMwLjcyem0wLTg3LjA0aC0xNTMuNnYzMC43MmgxNTMuNnYtMzAuNzJ6bTAtODcuMDRoLTE1My42djMwLjcyaDE1My42VjM1OC40em0xMzAuOTctNzEuMjJoLTExLjk4MWEyMi42MyAyMi42MyAwIDAgMC0yMC4yNzUgMjIuODM2djkuMzdjMCAxLjAyNCAxLjAyNCAxLjUzNiAxLjUzNiAxLjUzNmg0Ny44MmMzLjYzNiAwIDYuNzU5LTIuNTYgNi43NTktNi43NTlsLTEuMDI0LTQuMDk2YTIzLjA0IDIzLjA0IDAgMCAwLTIyLjgzNS0yMi44ODZ6IiBmaWxsPSIjRkZGIi8+PC9zdmc+",G1=Object.defineProperty,AS=Object.getOwnPropertySymbols,wn=Object.prototype.hasOwnProperty,Hv=Object.prototype.propertyIsEnumerable,sm=(ee,y,E)=>y in ee?G1(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,fC=(ee,y)=>{for(var E in y||(y={}))wn.call(y,E)&&sm(ee,E,y[E]);if(AS)for(var E of AS(y))Hv.call(y,E)&&sm(ee,E,y[E]);return ee};const pC=ee=>React.createElement("svg",fC({width:200,height:200,xmlns:"http://www.w3.org/2000/svg"},ee),React.createElement("title",null,"\u4F5C\u4E1A"),React.createElement("g",{fillRule:"nonzero",fill:"none"},React.createElement("path",{d:"M100 0c55.23 0 100 44.77 100 100s-44.77 100-100 100S0 155.23 0 100 44.77 0 100 0Z",fill:"#2544AA"}),React.createElement("path",{d:"M107.5 50H65c-8.284 0-15 6.716-15 15v70c0 8.284 6.716 15 15 15h42.5c8.284 0 15-6.716 15-15V65c0-8.284-6.716-15-15-15Zm-44 54h38a3.5 3.5 0 1 1 0 7h-38a3.5 3.5 0 1 1 0-7ZM60 90.5a3.5 3.5 0 0 1 3.5-3.5H94a3.5 3.5 0 0 1 0 7H63.5a3.5 3.5 0 0 1-3.5-3.5ZM84 128H63.5a3.5 3.5 0 1 1 0-7H84a3.5 3.5 0 1 1 0 7Zm20 0h-4.5a3.5 3.5 0 1 1 0-7h4.5a3.5 3.5 0 1 1 0 7Zm5-51H63.5a3.5 3.5 0 0 1 0-7H109a3.5 3.5 0 1 1 0 7Zm26-27h10a5 5 0 0 1 5 5v15h-20V55a5 5 0 0 1 5-5Zm-5 87.28V77.5h20v59.78L140 150",fill:"#FFF"})));var gC="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik0xMDAgMGM1NS4yMyAwIDEwMCA0NC43NyAxMDAgMTAwcy00NC43NyAxMDAtMTAwIDEwMFMwIDE1NS4yMyAwIDEwMCA0NC43NyAwIDEwMCAwWiIgZmlsbD0iIzI1NDRBQSIvPjxwYXRoIGQ9Ik0xMDcuNSA1MEg2NWMtOC4yODQgMC0xNSA2LjcxNi0xNSAxNXY3MGMwIDguMjg0IDYuNzE2IDE1IDE1IDE1aDQyLjVjOC4yODQgMCAxNS02LjcxNiAxNS0xNVY2NWMwLTguMjg0LTYuNzE2LTE1LTE1LTE1Wm0tNDQgNTRoMzhhMy41IDMuNSAwIDEgMSAwIDdoLTM4YTMuNSAzLjUgMCAxIDEgMC03Wk02MCA5MC41YTMuNSAzLjUgMCAwIDEgMy41LTMuNUg5NGEzLjUgMy41IDAgMCAxIDAgN0g2My41YTMuNSAzLjUgMCAwIDEtMy41LTMuNVpNODQgMTI4SDYzLjVhMy41IDMuNSAwIDEgMSAwLTdIODRhMy41IDMuNSAwIDEgMSAwIDdabTIwIDBoLTQuNWEzLjUgMy41IDAgMSAxIDAtN2g0LjVhMy41IDMuNSAwIDEgMSAwIDdabTUtNTFINjMuNWEzLjUgMy41IDAgMCAxIDAtN0gxMDlhMy41IDMuNSAwIDEgMSAwIDdabTI2LTI3aDEwYTUgNSAwIDAgMSA1IDV2MTVoLTIwVjU1YTUgNSAwIDAgMSA1LTVabS01IDg3LjI4Vjc3LjVoMjB2NTkuNzhMMTQwIDE1MCIgZmlsbD0iI0ZGRiIvPjwvZz48L3N2Zz4=",Wb=({type:ee})=>{const y=(0,Me.useMemo)(()=>{switch(ee){case"\u8BFE\u4EF6":return Me.createElement("img",{src:Ko,style:{width:"16rem",height:"16rem"}});case"\u5B9E\u8BAD":return Me.createElement("img",{src:Nu,style:{width:"16rem",height:"16rem"}});case"\u89C6\u9891":return Me.createElement("img",{src:Rv,style:{width:"16rem",height:"16rem"}});case"\u8BD5\u5377":return Me.createElement("img",{src:dC,style:{width:"16rem",height:"16rem"}});case"\u4F5C\u4E1A":return Me.createElement("img",{src:gC,style:{width:"16rem",height:"16rem"}});default:return""}},[ee]);return Me.createElement(Me.Fragment,null,y)},jd="data:image/png;base64,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",ox="data:image/png;base64,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";const xS=({className:ee="",style:y={},direction:E,DataProps:z,pathsDetail:ne,isOne:ie,handleClickDetails:se})=>{const{detail:ae}=ne,[he]=(0,yt.useSearchParams)(),pe=(z==null?void 0:z.status)=="\u672A\u53D1\u5E03"&&he.get("type")=="classrooms",ve=(0,Me.useMemo)(()=>(z==null?void 0:z.grasp_rate)>=80&&(z==null?void 0:z.grasp_rate)<=100?Er.waveDom100:(z==null?void 0:z.grasp_rate)>=60&&(z==null?void 0:z.grasp_rate)<=79?Er.waveDom79:(z==null?void 0:z.grasp_rate)>0&&(z==null?void 0:z.grasp_rate)<=59?Er.waveDom59:"",[z==null?void 0:z.grasp_rate]);return Me.createElement("div",{className:`flex flex-col item-center text-500 text-16px-rem relative current ${Er.Node} ${ee}`,style:y,onClick:()=>{pe&&!ae.can_managed||se(z)}},Me.createElement("img",{src:E=="up"?jd:ox,className:`${Er.Direction} ${E=="up"?Er.UP:Er.DOWN}`}),Me.createElement("div",{className:"relative",style:{width:"30rem",height:"30rem"}},Me.createElement(lt.Z,{title:`${z!=null&&z.node_type?`${z==null?void 0:z.node_type}\uFF1A`:""}${z==null?void 0:z.name}`},Me.createElement("div",{className:"flex item-center text-center gap-4px-rem absolute multi_ellipsis1 text-16px-rem",style:{left:"50%",top:"50%",transform:"translate(-50%,-50%)",width:"120rem"}},Me.createElement(Wb,{type:z==null?void 0:z.node_type})," ",z==null?void 0:z.name))),Me.createElement("div",{className:`relative rounded-full flex item-center justify-center ${Er.waveDom} ${ve}`},pe?Me.createElement(lt.Z,{title:"\u8D44\u6E90\u672A\u53D1\u5E03"},Me.createElement("span",{className:"iconfont icon-suo1",style:{color:"#fff",fontSize:"14rem"}})):Me.createElement("div",{className:`${Er.wave}`,style:{top:`calc(100% - ${(z==null?void 0:z.grasp_rate)||0}%)`}})),Me.createElement("div",{className:`${ie?Er.HeightItem:""}`,style:{height:"82rem"}}))},vC=({DataProps:ee={},className:y="",currentIndex:E=1,pathsDetail:z,handleClickDetails:ne})=>{var ie,se,ae;const he=(0,Me.useMemo)(()=>(ee==null?void 0:ee.grasp_rate)>=80&&(ee==null?void 0:ee.grasp_rate)<=100?Er.ItemDom100:(ee==null?void 0:ee.grasp_rate)>=60&&(ee==null?void 0:ee.grasp_rate)<=79?Er.ItemDom79:(ee==null?void 0:ee.grasp_rate)>0&&(ee==null?void 0:ee.grasp_rate)<=59?Er.ItemDom59:"",[ee==null?void 0:ee.grasp_rate]),pe=(0,Me.useRef)(null);return(0,Me.useEffect)(()=>{if(pe.current){const ve=pe.current.offsetWidth,xe=pe.current.children;if(ve<1200){for(const Oe of xe)Oe.classList.remove(Er.NodeShowDirection);return}let Se=ve;const Be=[];let De=[];const Re=55*parseFloat(getComputedStyle(document.documentElement).fontSize);for(const Oe of xe)Oe.removeAttribute("style"),Oe.classList.remove(Er.NodeShowDirection),Se-((Oe==null?void 0:Oe.offsetWidth)+Re)>0?(De.push(Oe),Se-=(Oe==null?void 0:Oe.offsetWidth)+Re):(Se=ve-(Oe==null?void 0:Oe.offsetWidth)-Re,Be.push(De),De=[],De.push(Oe));Be.push(De),Be.forEach(Oe=>{Oe.forEach((Le,Je)=>{Je==(Oe==null?void 0:Oe.length)-1&&Le.classList.add(Er.NodeShowDirection)})})}},[pe,ee==null?void 0:ee.children]),Me.createElement("div",{id:"learning_path_chapter",className:`flex flex-col minW-0 rounded-10px-rem relative ${Er.ItemDom} ${he} ${y}`},Me.createElement("div",{className:`absolute ${Er.Arrow}`}),Me.createElement("div",{className:`flex item-center gap-10px-rem rounded-10px-rem px-20px-rem py-6px-rem ${Er.Title}`},Me.createElement(lt.Z,{title:""},Me.createElement("div",{className:"flex-1 minW-0 multi_ellipsis1 text-22px-rem text-500"},ee==null?void 0:ee.name)),Me.createElement("div",{className:"text-14px-rem"},(ie=ee==null?void 0:ee.children)==null?void 0:ie.length,"\u4E2A\u8D44\u6E90")),((se=ee==null?void 0:ee.children)==null?void 0:se.length)>0?Me.createElement("div",{className:"flex-1 minW-0 p-40px-rem px-64px-rem flex item-center justify-center"},Me.createElement("div",{ref:pe,className:"w-full flex item-center justify-center flex-wrap",style:{gap:"20rem 55rem"}},(ae=ee==null?void 0:ee.children)==null?void 0:ae.map((ve,xe)=>{var Se,Be;return Me.createElement(xS,{key:xe,handleClickDetails:ne,pathsDetail:z,isOne:((Se=ee==null?void 0:ee.children)==null?void 0:Se.length)==1,DataProps:ve,direction:xe%2==0?"up":"down",className:xe%2==0&&((Be=ee==null?void 0:ee.children)==null?void 0:Be.length)!=1?Er.NodeUp:"flex-col"})}))):Me.createElement("div",{className:"flex-1 minW-0 p-40px-rem px-64px-rem flex item-center justify-center flex-wrap"},Me.createElement(Pl.Z,{img:je(11051),styles:{margin:"auto"},imgStyles:{width:"200rem",height:"155rem"},customText:"\u6682\u65E0\u5B66\u4E60\u8D44\u6E90"})))};var yC=({pathsDetail:ee,handleClickDetails:y,dataSource:E})=>{const z=(0,Me.useRef)(null);return(0,Me.useEffect)(()=>{if(z.current){const ne=z.current.offsetWidth,ie=document.querySelectorAll("#learning_path_chapter");let se=ne;const ae=[];let he=[];const pe=90*parseFloat(getComputedStyle(document.documentElement).fontSize);for(const ve of ie)if(ve.removeAttribute("style"),ve.classList.remove(Er.ArrowDisable,Er.ArrowDownLeft,Er.ArrowLeft,Er.ArrowDownRight,Er.ArrowRight),se-((ve==null?void 0:ve.offsetWidth)+pe)>0)he.push(ve),se-=(ve==null?void 0:ve.offsetWidth)+pe;else{const xe=(se+pe-10)/(he==null?void 0:he.length);he.forEach(Se=>{Se.style.width=`${(Se.offsetWidth+xe)/ne*100}%`}),se=ne-(ve==null?void 0:ve.offsetWidth)-pe,ae.push(he),he=[],he.push(ve)}ae.push(he),ae.forEach((ve,xe)=>{var Se;xe%2===1?[...ve||[]].reverse().forEach((De,Re)=>{De.style.order=(xe+1)*10+Re,Re==0?(De.style["margin-left"]="auto",De.classList.add((ae==null?void 0:ae.length)-1==xe?Er.ArrowDisable:Er.ArrowDownLeft)):De.classList.add(Er.ArrowLeft)}):ve.forEach((Be,De)=>{Be.style.order=(xe+1)*10+De,De==(ve==null?void 0:ve.length)-1?Be.classList.add((ae==null?void 0:ae.length)-1==xe?Er.ArrowDisable:Er.ArrowDownRight):Be.classList.add(Er.ArrowRight)}),(ve==null?void 0:ve.length)==1&&(ve[0].style.width="100%"),((Se=ve==null?void 0:ve[0])==null?void 0:Se.offsetWidth)<ne/2&&xe==(ae==null?void 0:ae.length)-1&&(ve[0].style.width="auto")})}},[z,E]),Me.createElement("div",{className:"c-white px-40px-rem",style:{paddingBottom:"40rem"}},Me.createElement("div",{ref:z,className:"flex flex-wrap",style:{gap:"92rem"}},E==null?void 0:E.map((ne,ie)=>Me.createElement(vC,{key:ie,handleClickDetails:y,pathsDetail:ee,currentIndex:ie+1,DataProps:ne}))))},sx=je(47125),oo=je(59301),Gp=Object.defineProperty,Qy=Object.defineProperties,wS=Object.getOwnPropertyDescriptors,am=Object.getOwnPropertySymbols,ax=Object.prototype.hasOwnProperty,X1=Object.prototype.propertyIsEnumerable,Zy=(ee,y,E)=>y in ee?Gp(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,rf=(ee,y)=>{for(var E in y||(y={}))ax.call(y,E)&&Zy(ee,E,y[E]);if(am)for(var E of am(y))X1.call(y,E)&&Zy(ee,E,y[E]);return ee},lx=(ee,y)=>Qy(ee,wS(y)),Vv=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const lg=[3,2,1],Yy=({xxljac:ee,pathsDetail:y,dispatch:E,setxxljac:z})=>{var ne,ie,se,ae,he,pe,ve,xe,Se,Be,De,Re,Oe;const Le=(0,yt.useParams)(),Je=(0,yt.useSelector)(vi=>vi),{pathsDetail:{detail:$e={},actionTabs:_e}}=Je,[st,ct]=(0,Me.useState)(!1),[ut,ht]=(0,Me.useState)(!1),[pt,gt]=(0,Me.useState)(""),[zt,cn]=(0,Me.useState)(!1),[Tn,Zn]=(0,Me.useState)(!1),[Nn,di]=(0,Me.useState)(!1),[yi,bn]=(0,Me.useState)(""),[Sn,ki]=(0,Me.useState)({}),[ti,fn]=(0,Me.useState)([]),[Bi,jn]=(0,Me.useState)([]),[ei,hr]=(0,Me.useState)([]),[_n,qi]=(0,Me.useState)(!1),[Sr,Pr]=(0,Me.useState)(1),[Go,_o]=(0,Me.useState)({});let[ta,un]=(0,Me.useState)({});const so=$e==null?void 0:$e.can_managed,[Kr]=(0,yt.useSearchParams)(),[kr,_r]=(0,Me.useState)(!1),Ks=new URLSearchParams(window.location.search);Ks.set("tabs","2");const jo=(vi={})=>{E({type:"pathsDetail/getKnowledgeGraphs",payload:rf({graphable_type:Kr.get("type")==="classrooms"?"course":"subject",graphable_id:Le==null?void 0:Le.pathId},vi)})};function Ro(){return Vv(this,null,function*(){var vi;let Dr=[...(vi=y==null?void 0:y.detail)==null?void 0:vi.nodes];hr(Dr==null?void 0:Dr.splice(1))})}(0,Me.useEffect)(()=>{var vi;(vi=y==null?void 0:y.detail)!=null&&vi.nodes&&Sr===1&&(Ro(),Pr(2))},[(ne=y==null?void 0:y.detail)==null?void 0:ne.nodes]),(0,Me.useEffect)(()=>{var vi,Dr,Es,gs,Na,Qa,Zo,ba,Ba,ra;let ns=!1;((Dr=(vi=y==null?void 0:y.detail)==null?void 0:vi.route_nodes)==null?void 0:Dr.length)>0&&(ns=!((gs=(Es=y==null?void 0:y.detail)==null?void 0:Es.route_nodes)!=null&&gs.some(Fl=>Fl==null?void 0:Fl.is_choice))),(Zo=(Qa=(Na=y==null?void 0:y.detail)==null?void 0:Na.route_nodes)==null?void 0:Qa.find(Fl=>Fl==null?void 0:Fl.is_choice))!=null&&Zo.id&&z((ra=(Ba=(ba=y==null?void 0:y.detail)==null?void 0:ba.route_nodes)==null?void 0:Ba.find(Fl=>Fl==null?void 0:Fl.is_choice))==null?void 0:ra.id),!so&&ns&&(0,ru.bg)()&&E({type:"pathsDetail/save",payload:{actionTabs:{key:"\u5207\u6362\u5B66\u4E60\u8DEF\u5F84"}}})},[(ie=y==null?void 0:y.detail)==null?void 0:ie.route_nodes]),(0,Me.useEffect)(()=>{ee&&qa(ee)},[ee]);const qa=(vi=null)=>Vv(void 0,null,function*(){ct(!0);const Dr=yield(0,on.ZP)("/api/subject_knowledge.json",{method:"get",params:{id:vi,subject_id:Le==null?void 0:Le.pathId}});if((Dr==null?void 0:Dr.status)===0){ki(Dr||{});const Es=(Dr==null?void 0:Dr.parent_knowledges)||[];jn(Es)}ct(!1)});(0,Me.useEffect)(()=>{Sn!=null&&Sn.data&&fn((Sn==null?void 0:Sn.data)||[])},[Sn]);const mn=()=>Vv(void 0,null,function*(){if(!yi){Qt.ZP.warning("\u8BF7\u8F93\u5165\u6587\u672C");return}if(yi!=="\u786E\u8BA4\u5220\u9664"){Qt.ZP.warning("\u6587\u672C\u8F93\u5165\u6709\u8BEF");return}di(!0);const vi=yield(0,on.ZP)("/api/subject_knowledge.json",{method:"delete",body:{id:ee,subject_id:Le==null?void 0:Le.pathId}});(vi==null?void 0:vi.status)===0&&(Qt.ZP.success("\u5220\u9664\u6210\u529F"),cn(!1),jo({graphable_id:Le==null?void 0:Le.pathId})),di(!1)}),Gt=(...vi)=>Vv(void 0,[...vi],function*(Dr={}){yield(0,on.ZP)("/api/subject_knowledge/create_study.json",{method:"post",body:lx(rf({},Dr),{subject_id:Le==null?void 0:Le.pathId})})}),tr=(vi,Dr=!0)=>Vv(void 0,null,function*(){var Es,gs,Na,Qa,Zo,ba;if((vi==null?void 0:vi.container_type)==="Attachment"&&!((Es=y==null?void 0:y.detail)!=null&&Es.can_managed)){if((0,Ao.fc)({id:vi==null?void 0:vi.container_id,watch_type:2,course_id:Le==null?void 0:Le.pathId}),vi!=null&&vi.is_link){Gt({uuid:(vi==null?void 0:vi.knowledge_uuid)||(vi==null?void 0:vi.key)}),(0,Et.xg)(vi==null?void 0:vi.url);return}_o({url:xt.Z.API_SERVER+(vi==null?void 0:vi.url),file_type:vi==null?void 0:vi.file_type});return}if(vi!=null&&vi.url){Gt({uuid:(vi==null?void 0:vi.knowledge_uuid)||(vi==null?void 0:vi.key)}),window.open(vi==null?void 0:vi.url);return}Dr&&ct(!0);let Ba=yield(0,on.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{depth:0,subject_id:Le==null?void 0:Le.pathId,nodeUuid:(vi==null?void 0:vi.knowledge_uuid)||(vi==null?void 0:vi.key)}});if((Ba==null?void 0:Ba.status)===0){if(((Na=(gs=Ba==null?void 0:Ba.data)==null?void 0:gs.nodes)==null?void 0:Na.length)>0){let ra=(ba=(Zo=(Qa=Ba==null?void 0:Ba.data)==null?void 0:Qa.nodes)==null?void 0:Zo.map(ns=>{var Fl,Xi,xa,No,oa,vs,Yo,Jr,Ps,Ga,ya,$a,ef;const Cm=(Fl=Ba==null?void 0:Ba.data)==null?void 0:Fl.resource_count;return lx(rf({},ns==null?void 0:ns.properties),{rootNodeUuid:(Xi=ns==null?void 0:ns.properties)==null?void 0:Xi.rootNodeUuid,id:(xa=ns==null?void 0:ns.properties)==null?void 0:xa.uuid,name:(No=ns==null?void 0:ns.properties)==null?void 0:No.name,description:(oa=ns==null?void 0:ns.properties)==null?void 0:oa.description,nodeType:(vs=ns==null?void 0:ns.properties)==null?void 0:vs.nodeType,tags:((Yo=ns==null?void 0:ns.properties)==null?void 0:Yo.tags)&&((Ga=(Ps=(Jr=ns==null?void 0:ns.properties)==null?void 0:Jr.tags)==null?void 0:Ps.split("\uFF0C"))==null?void 0:Ga.map(Lv=>({name:Lv})))||[],colorType:parseInt((ya=ns==null?void 0:ns.properties)==null?void 0:ya.color)>3?"3":($a=ns==null?void 0:ns.properties)==null?void 0:$a.color,activeColor:"#FA6400",size:lg[((ef=ns==null?void 0:ns.properties)==null?void 0:ef.color)-1]||1,shape:"circle",hide:!1,isExtendedState:!0,currentResourceTotal:Cm})}))==null?void 0:ba[0];ra.resourceid=vi==null?void 0:vi.id,un(ra),qi(!0)}ct(!1)}}),Fr=()=>oo.createElement("div",{className:_s.studentHead},oo.createElement("div",{className:"flex item-center w-full"},oo.createElement("div",{className:_s.headLi},oo.createElement("img",{src:Sl}),oo.createElement("aside",null,oo.createElement("span",null,"\u8D44\u6E90\u603B\u6570"),oo.createElement("b",null,Sn==null?void 0:Sn.resource_count))),oo.createElement("div",{className:_s.headLi},oo.createElement("img",{src:rl}),oo.createElement("aside",null,oo.createElement("span",null,"\u5B66\u4E60\u5B8C\u6210\u7387"),oo.createElement("b",{style:{color:"#F7B500"}},Sn==null?void 0:Sn.complete_rate,"%"))),oo.createElement("div",{className:_s.headLi},oo.createElement("img",{src:Il}),oo.createElement("aside",null,oo.createElement("span",null,"\u5B66\u4E60\u638C\u63E1\u7387"),oo.createElement("b",{style:{color:"#3AFFC8"}},Sn==null?void 0:Sn.grasp_rate,"%"))),oo.createElement("div",{className:_s.headLi},oo.createElement("img",{src:Zi}),oo.createElement("aside",null,oo.createElement("span",{style:{marginBottom:"10rem"}},"\u4E0A\u6B21\u5B66\u5230"),oo.createElement(lt.Z,{title:Sn==null?void 0:Sn.last_knowledge_name},oo.createElement("b",{style:{color:"#7FAAFF",fontSize:"16rem"}},(0,Et.Pq)(Sn==null?void 0:Sn.last_knowledge_name,13))))),oo.createElement("div",{onClick:()=>{Sn!=null&&Sn.last_knowledge_name&&tr({knowledge_uuid:Sn==null?void 0:Sn.last_knowledge_uuid,id:Sn==null?void 0:Sn.last_knowledge_uuid})},className:Sn!=null&&Sn.last_knowledge_name?_s.btn:`${_s.btn} ${_s.disabledBtn}`},"\u7EE7\u7EED\u5B66\u4E60")));return oo.createElement(oo.Fragment,null,!((ae=(se=y==null?void 0:y.detail)==null?void 0:se.route_nodes)!=null&&ae.length)&&oo.createElement("div",{className:"w-full c-white text-14px-rem flex flex-col justify-center",style:{padding:"70rem 150rem",minHeight:"100vh"}},oo.createElement("div",{className:"flex item-center justify-center gap-30px-rem"},so&&oo.createElement("div",{className:"current rounded-full py-10px-rem px-40px-rem",style:{background:"linear-gradient( 90deg, #272B95 0%, #295BAB 100%)"},onClick:()=>{gt(null),ht(!0)}},"\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84")),oo.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem mt-40px-rem",style:{background:`url(${je(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}},"\u8BFE\u7A0B\u5B66\u4E60\u8DEF\u5F84\u662F\u4EC0\u4E48\uFF1F"),oo.createElement("div",{className:"rounded-8px-rem py-16px-rem px-20px-rem w-full mt-20px-rem relative",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},"\u8BFE\u7A0B\u5B66\u4E60\u8DEF\u5F84\u662F\u4E00\u6761\u57FA\u4E8E\u8BFE\u7A0B\u76EE\u6807\u5BFC\u822A\u8DEF\u7EBF\uFF0C\u901A\u8FC7\u89C4\u5212\u6700\u4F18\u5B66\u4E60\u987A\u5E8F\uFF0C\u53EF\u914D\u5408\u591A\u79CD\u7C7B\u8D44\u6E90\uFF08\u89C6\u9891\u3001\u8BFE\u4EF6\u3001\u4E60\u9898\u3001\u8BFE\u4EF6\u7B49\uFF09\uFF0C\u52A9\u529B\u5B66\u751F\u4EE5\u6700\u7701\u529B\u3001\u6700\u9AD8\u6548\u3001\u6700\u6E05\u6670\u7684\u65B9\u5F0F\u638C\u63E1\u8BFE\u7A0B\u6838\u5FC3\u77E5\u8BC6\u5185\u5BB9",oo.createElement("img",{className:"absolute",src:je(23280),style:{width:"66rem",height:"83rem",right:"8rem",bottom:"16rem"}})),oo.createElement("div",{className:"flex gap-40px-rem mt-40px-rem"},oo.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},oo.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${je(37618)}) 0 0 /100% 100% no-repeat`,width:"340rem",height:"40rem",color:"#F9F9F9"}}," \u5B66\u4E60\u8DEF\u5F84\u5728\u5E73\u53F0\u7684\u5E94\u7528 "),oo.createElement("div",{className:"w-full flex justify-between gap-32px-rem relative"},oo.createElement("img",{className:"absolute",style:{width:"97rem",height:"42rem",left:"200rem",top:"80rem"},src:je(79989)}),oo.createElement("img",{className:"absolute",style:{width:"97rem",height:"42rem",right:"210rem",top:"80rem"},src:je(73486)}),[{title:"\u591A\u7EF4\u5B66\u4E60\u8DEF\u5F84",desc:"\u4E00\u4E2A\u8BFE\u7A0B\u4E0B\u652F\u6301\u6784\u5EFA\u591A\u6761\u5B66\u4E60\u8DEF\u5F84\uFF0C\u5B66\u751F\u53EF\u4EE5\u6839\u636E\u4E2A\u4EBA\u4E13\u4E1A\u3001\u5B66\u4E60\u60C5\u51B5\u7B49\u56E0\u7D20\uFF0C\u9009\u62E9\u4E0D\u540C\u7684\u5B66\u4E60\u8DEF\u5F84\u8FDB\u884C\u5B66\u4E60\u3002",img:je(49747)},{title:"\u8BFE\u5802\u5B66\u60C5\u7EDF\u8BA1",desc:Kr.get("type")=="classrooms"?"\u652F\u6301\u4ECE\u5B9E\u8DF5\u8BFE\u7A0B\u5C06\u5B66\u4E60\u8DEF\u5F84\u53D1\u9001\u5230\u6559\u5B66\u8BFE\u5802\u4E2D\uFF0C\u5728\u6559\u5B66\u8BFE\u5802\u53EF\u4EE5\u5C06\u5B66\u4E60\u8DEF\u5F84\u4E2D\u7684\u5B9E\u8BAD\u3001\u4F5C\u4E1A\u3001\u8003\u8BD5\u3001\u89C6\u9891\u7B49\u8D44\u6E90\u53D1\u9001\u5230\u5404\u4E2A\u4EFB\u52A1\u6A21\u5757\uFF0C\u6839\u636E\u5B66\u751F\u5B66\u4E60\u60C5\u51B5\u8FDB\u884C\u5B66\u751F\u5B66\u60C5\u7EDF\u8BA1":"\u652F\u6301\u4E00\u952E\u5C06\u5B66\u4E60\u8DEF\u5F84\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802\u4E2D\uFF0C\u5728\u6559\u5B66\u8BFE\u5802\u4E2D\u53EF\u4EE5\u5C06\u5B66\u4E60\u8DEF\u5F84\u4E2D\u7684\u5B9E\u8BAD\u3001\u4F5C\u4E1A\u3001\u8003\u8BD5\u3001\u89C6\u9891\u7B49\u8D44\u6E90\u53D1\u9001\u5230\u5404\u4E2A\u4EFB\u52A1\u6A21\u5757\uFF0C\u6839\u636E\u5B66\u751F\u5B66\u4E60\u60C5\u51B5\u8FDB\u884C\u5B66\u751F\u5B66\u60C5\u7EDF\u8BA1\u3002",img:je(7875)},{title:"\u5B66\u60C5\u5206\u6790+\u5B66\u60C5\u9884\u8B66+\u8D44\u6E90\u63A8\u8350",desc:"\u652F\u6301\u6839\u636E\u5B66\u751F\u5728\u5B66\u4E60\u8DEF\u5F84\u4E2D\u7684\u5B66\u4E60\u60C5\u51B5\u8FDB\u884C\u5B66\u60C5\u5206\u6790\uFF0C\u7ECF\u8FC7\u7CFB\u7EDF\u5B66\u60C5\u9884\u8B66\u60C5\u51B5\uFF0C\u4E3A\u5B66\u751F\u63A8\u8350\u4E0D\u540C\u7684\u5B66\u4E60\u8D44\u6E90\uFF0C\u5B9E\u73B0\u5343\u4EBA\u5343\u9762\u7684\u5B66\u4E60\u573A\u666F\u3002",img:je(14813)}].map((vi,Dr)=>oo.createElement("div",{key:Dr,className:`flex flex-col item-center ${Dr!=1?"pt-56px-rem":""}`},oo.createElement("img",{src:vi==null?void 0:vi.img,style:{width:"127rem",height:"119rem"}}),oo.createElement("div",{className:"px-20px-rem pb-20px-rem mt-10px-rem",style:{background:`url(${je(14760)}) 0 0 / 100% 100% no-repeat`}},vi==null?void 0:vi.title),oo.createElement("div",{className:"mt-6px-rem",style:{width:"20rem",height:"10rem",background:"#7A99DD",clipPath:"polygon(100% 0, 0 0, 50% 100%)",WebkitClipPath:"polygon(100% 0, 0 0, 50% 100%)"}}),oo.createElement("div",{className:"px-20px-rem py-10px-rem mt-6px-rem rounded-8px-rem",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259",color:"rgba(255,255,255,0.8)",width:"236rem",height:"152rem"}},vi==null?void 0:vi.desc))))),oo.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},oo.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${je(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}}," \u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84\u6CE8\u610F\u4E8B\u9879 "),oo.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-10px-rem"},[{desc:oo.createElement("div",{className:"flex flex-col gap-4px-rem"},oo.createElement("div",{className:"text-16px-rem"},"\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84"),oo.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u5B66\u4E60\u8DEF\u5F84\u57FA\u4E8E\u77E5\u8BC6\u56FE\u8C31\u521B\u5EFA\uFF0C\u5728\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84\u524D\uFF0C\u9700\u521B\u5EFA\u77E5\u8BC6\u56FE\u8C31\u3002",oo.createElement("br",null),oo.createElement("span",{style:{color:"#FFE698"}},"\u5EFA\u8BAE\u521B\u5EFA\u77E5\u8BC6\u56FE\u8C31\u65F6\uFF0C\u540C\u6B65\u5EFA\u7ACB\u8282\u70B9\u6807\u7B7E\u548C\u8282\u70B9\u5173\u7CFB\uFF0C\u7CFB\u7EDF\u4F1A\u6839\u636E\u77E5\u8BC6\u56FE\u8C31\u7684\u8282\u70B9\u6807\u7B7E\u548C\u8282\u70B9\u5173\u7CFB\u81EA\u52A8\u6784\u5EFA\u5B66\u4E60\u8DEF\u5F84")))},{desc:oo.createElement("div",{className:"flex flex-col gap-4px-rem"},oo.createElement("div",{className:"text-16px-rem"},"\u5B66\u4E60\u8DEF\u5F84\u751F\u6210"),oo.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84\u9009\u62E9\u77E5\u8BC6\u56FE\u8C31\u540E\uFF0C\u7CFB\u7EDF\u4F1A\u6839\u636E",oo.createElement("span",{style:{color:"#FFE698"}},"\u77E5\u8BC6\u8282\u70B9\u7684\u524D\u5E8F/\u540E\u5E8F\u5173\u7CFB"),"\u81EA\u52A8\u751F\u6210\u5B66\u4E60\u8DEF\u5F84\u3002"))},{desc:oo.createElement("div",{className:"flex flex-col gap-4px-rem"},oo.createElement("div",{className:"text-16px-rem"},"\u5B66\u4E60\u8DEF\u5F84\u8C03\u6574"),oo.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u5728\u751F\u6210\u7684\u5B66\u4E60\u8DEF\u5F84\u4E2D\uFF0C\u53EF\u4EE5\u70B9\u51FB",oo.createElement("span",{style:{color:"#FFE698"}},"\u201C\u79FB\u9664\u5B66\u4E60\u8DEF\u5F84\u201D"),"\u548C",oo.createElement("span",{style:{color:"#FFE698"}},"\u201C\u52A0\u5165\u5B66\u4E60\u8DEF\u5F84\u201D"),"\u8C03\u6574\u8DEF\u5F84\u4E2D\u5B66\u4E60\u5185\u5BB9\uFF0C\u4E5F\u53EF\u4EE5",oo.createElement("span",{style:{color:"#FFE698"}},"\u62D6\u52A8\u5B66\u4E60\u8DEF\u5F84\u8282\u70B9"),"\u8C03\u6574\u5B66\u4E60\u987A\u5E8F\u3002"))}].map((vi,Dr)=>oo.createElement("div",{key:Dr,className:"py-20px-rem px-16px-rem w-full flex item-center gap-20px-rem rounded-8px-rem",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},oo.createElement("div",{className:"text-18px-rem flex item-center justify-center rounded-4px-rem",style:{background:"rgba(48,97,208,0.2)",width:"70rem",height:"80rem"}},(Dr+1).toString().padStart(2,"0")),oo.createElement("div",{className:"flex-1 minW-0"},vi==null?void 0:vi.desc))))))),((pe=(he=y==null?void 0:y.detail)==null?void 0:he.route_nodes)==null?void 0:pe.length)&&oo.createElement(ms,null,oo.createElement(oo.Fragment,null,oo.createElement("div",{className:_s.learning},oo.createElement(rn.Z,{spinning:st},oo.createElement("div",{className:_s.body},so?oo.createElement("div",{className:`${_s.head}`}," ",oo.createElement("div",{className:"w-full flex item-center justify-between"},oo.createElement("div",{className:_s.numerical},oo.createElement("div",null,oo.createElement("img",{src:Sl}),oo.createElement("span",null,"\u8D44\u6E90\u603B\u6570"),oo.createElement("b",null,Sn==null?void 0:Sn.resource_count)),oo.createElement("div",null,oo.createElement("img",{src:rl}),oo.createElement("span",null,"\u5E73\u5747\u5B66\u4E60\u5B8C\u6210\u7387"),oo.createElement("b",{style:{color:"#F7B500"}},Sn==null?void 0:Sn.complete_rate,"%")),oo.createElement("div",null,oo.createElement("img",{src:Il}),oo.createElement("span",null,"\u5E73\u5747\u5B66\u4E60\u638C\u63E1\u7387"),oo.createElement("b",{style:{color:"#3AFFC8"}},Sn==null?void 0:Sn.grasp_rate,"%"))),oo.createElement("div",{className:_s.action},Kr.get("type")!=="classrooms"&&!(0,ru.JA)()&&oo.createElement("div",{onClick:()=>{E({type:"pathsDetail/save",payload:{actionTabs:{key:"\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802",params:{type:"route"}}}})}},oo.createElement("span",null,oo.createElement("i",{className:"iconfont icon-guanlianketang"})),oo.createElement("span",null,"\u53D1\u9001\u81F3\u8BFE\u5802")),so&&oo.createElement("div",{onClick:()=>{gt(null),ht(!0)}},oo.createElement("span",null,oo.createElement("i",{className:"iconfont icon-tianjia4"})),oo.createElement("span",null,"\u521B\u5EFA")),oo.createElement("div",{onClick:()=>{gt(ee),ht(!0)}},oo.createElement("span",null,oo.createElement("i",{className:"iconfont icon-bianji13"})),oo.createElement("span",null,"\u7F16\u8F91")),oo.createElement("div",{onClick:()=>cn(!0)},oo.createElement("span",null,oo.createElement("i",{className:"iconfont icon-shanchu17"})),oo.createElement("span",null,"\u5220\u9664"))))):Fr(),oo.createElement("div",{className:"flex item-center gap-16px-rem px-40px-rem c-white py-20px-rem"},Kr.get("type")=="classrooms"&&so&&oo.createElement("div",{className:`current flex item-center ${_s.PublishBut}`,onClick:()=>{_r(!0)}},oo.createElement("span",{className:"iconfont icon-weifabu"}),"\u53D1\u5E03\u5B66\u4E60\u8D44\u6E90"),oo.createElement("div",{className:"flex item-center rounded-full",style:{background:"#101C39",padding:"0 0 0 20rem",gap:"10rem"}},oo.createElement("div",{className:"c-grey-eee text-nowrap"},"\u5F53\u524D\u8DEF\u5F84"),oo.createElement(lt.Z,{title:((xe=(ve=$e==null?void 0:$e.route_nodes)==null?void 0:ve.find(vi=>vi==null?void 0:vi.is_choice))==null?void 0:xe.name)||""},oo.createElement("div",{className:"multi_ellipsis1"},((Be=(Se=$e==null?void 0:$e.route_nodes)==null?void 0:Se.find(vi=>vi==null?void 0:vi.is_choice))==null?void 0:Be.name)||"")),oo.createElement("div",{className:`current flex item-center ${_s.ChangeBut}`,onClick:()=>{E({type:"pathsDetail/save",payload:{actionTabs:{key:"\u5207\u6362\u5B66\u4E60\u8DEF\u5F84"}}})}},oo.createElement("span",{className:"iconfont icon-dingbu-qiehuanbanben",style:{fontSize:"14rem"}})," \u66F4\u6362")),!so&&oo.createElement("div",{className:`text-nowrap rounded-full flex item-center h-full ${_s.SwitchStyle}`,style:{background:"#101C39",padding:"0 5rem 0 20rem",gap:"10rem",lineHeight:"40rem"}},"\u4EC5\u67E5\u770B\u672A\u638C\u63E1\u77E5\u8BC6\u70B9",oo.createElement(wl.Z,{onChange:vi=>{fn(vi?(Es=>Es==null?void 0:Es.filter(gs=>(gs==null?void 0:gs.grasp_rate)!=100).map(gs=>{var Na;return lx(rf({},gs),{children:(Na=gs==null?void 0:gs.children)==null?void 0:Na.filter(Qa=>(Qa==null?void 0:Qa.grasp_rate)!=100)})}))(Sn==null?void 0:Sn.data):(Sn==null?void 0:Sn.data)||[])},checkedChildren:"\u5F00\u542F",unCheckedChildren:"\u5173\u95ED"})),so&&Kr.get("type")==="classrooms"&&oo.createElement(oo.Fragment,null,oo.createElement("div",{className:`current flex item-center ${_s.ChangeBut}`,onClick:()=>{var vi,Dr;yt.history.push(`/knowledgegraph/${Le==null?void 0:Le.pathId}/statistics/learningpath/${(Dr=(vi=$e==null?void 0:$e.route_nodes)==null?void 0:vi.find(Es=>Es==null?void 0:Es.is_choice))==null?void 0:Dr.id}?${Ks}`)}}," \u6570\u636E\u7EDF\u8BA1 ")),oo.createElement("div",{className:"ml-auto flex item-center rounded-full text-nowrap",style:{background:"rgba(48,58,76,0.5)",padding:"10rem 20rem",gap:"8rem"}},oo.createElement("div",null,"\u638C\u63E1\u7387\uFF1A"),oo.createElement("div",{className:"rounded-full",style:{background:"#60C059",width:"16rem",height:"16rem"}}),oo.createElement("div",null,"100% ~ 80%"),oo.createElement("div",{className:"rounded-full",style:{background:"#FFB15F",width:"16rem",height:"16rem",marginLeft:"30rem"}}),oo.createElement("div",null,"79% ~ 60%"),oo.createElement("div",{className:"rounded-full",style:{background:"#FF9090",width:"16rem",height:"16rem",marginLeft:"30rem"}}),oo.createElement("div",null,"59% ~ 0%"),oo.createElement("div",{className:"rounded-full",style:{background:"#5E6A80",width:"16rem",height:"16rem",marginLeft:"30rem"}}),oo.createElement("div",null,"\u672A\u5B66\u4E60"))),(De=Sn==null?void 0:Sn.data)!=null&&De.length?oo.createElement(yC,{pathsDetail:y,dataSource:ti||[],handleClickDetails:tr}):oo.createElement(Pl.Z,{img:Ll,className:"flex flex-col item-center justify-center",styles:{height:"80vh"},imgStyles:{width:"200rem"},customText:"\u6682\u65E0\u5B66\u4E60\u8DEF\u5F84\u6570\u636E"}))),Tn&&oo.createElement(ua,{pathsDetail:y,subjectId:Le==null?void 0:Le.pathId,dispatch:E,visible:Tn,onCancel:()=>Zn(!1),onClickDetails:tr}),oo.createElement(Jt.default,{title:"\u786E\u8BA4\u5220\u9664\u63D0\u793A",open:zt,centered:!0,confirmLoading:Nn,okButtonProps:{danger:!0},width:"600rem",okText:"\u786E\u8BA4\u5220\u9664",onCancel:()=>cn(!1),cancelText:"\u53D6\u6D88",afterClose:()=>{bn("")},onOk:mn},oo.createElement("div",{style:{background:"#fff",boxShadow:"0 3rem 4rem 0 #F3F3F3",borderRadius:"2rem",padding:"20rem"}},oo.createElement("div",{style:{fontSize:"16rem",color:"#000"}},"\u8BF7\u786E\u8BA4\u662F\u5426\u5220\u9664\u300A",(Re=Bi==null?void 0:Bi.find(vi=>vi.id===ee))==null?void 0:Re.name,"\u300B\u7684\u5B66\u4E60\u8DEF\u5F84\uFF1F\u82E5\u5DF2\u786E\u8BA4\u9700\u8981\u5220\u9664\u5B66\u4E60\u8DEF\u5F84\uFF0C\u8BF7\u5728\u4E0B\u65B9\u6587\u672C\u6846\u4E2D\u8F93\u5165\u201C\u786E\u8BA4\u5220\u9664\u201D\u6587\u672C\u540E\uFF0C\u70B9\u51FB\u201C\u786E\u8BA4\u5220\u9664\u201D\u6309\u94AE"),oo.createElement("div",{style:{fontSize:"16rem",color:"#E30000",margin:"20rem 0"}},"\u63D0\u793A\uFF1A\u5220\u9664\u540E\u5C06\u65E0\u6CD5\u6062\u590D\u5B66\u4E60\u8DEF\u5F84\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\u3002"),oo.createElement(ln.default,{size:"large",placeholder:"\u8BF7\u8F93\u5165\u201C\u786E\u8BA4\u5220\u9664\u201D\u6587\u672C",value:yi,onChange:vi=>bn(vi.target.value)})))))),ut&&oo.createElement(Mr,{onOk:()=>{jo({graphable_id:Le==null?void 0:Le.pathId})},setaddmodal:ht,addmodal:ut,uuid:pt}),oo.createElement(uu,{initdata:()=>{},uuid:"\u5B66\u4E60\u8DEF\u5F84",Tabsdatas:ei,setshow:()=>{},getData:qa,buildTree:()=>{},containerRef:()=>{},showdetail:_n,setshowdetail:qi,items:ta}),oo.createElement(Xl.Z,{close:!0,style:{zIndex:1300,background:"rgba(1, 10, 35, 0.5)"},data:Go==null?void 0:Go.url,type:Go==null?void 0:Go.file_type,disabledDownload:!0,onClose:()=>_o({})}),(_e==null?void 0:_e.key)=="\u5207\u6362\u5B66\u4E60\u8DEF\u5F84"&&oo.createElement(sx.E_,{type:"route",open:(_e==null?void 0:_e.key)=="\u5207\u6362\u5B66\u4E60\u8DEF\u5F84",title:"\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84",currentSeleteData:(Oe=$e==null?void 0:$e.route_nodes)==null?void 0:Oe.find(vi=>vi.id===ee),onFinish:()=>{jo({graphable_id:Le==null?void 0:Le.pathId})}}),oo.createElement(Qn,{visible:kr,setVisible:_r,treeList:Sn==null?void 0:Sn.data,uuid:ee,detail:$e,onOk:vi=>{_r(!1),qa(vi)}}))};var SS=(0,yt.connect)(({pathsDetail:ee,user:y})=>({pathsDetail:ee,user:y}))(Yy),Dg={tag:"tag___aFk2e",active:"active___xFrif",tagsModal:"tagsModal___PRPSO",btn:"btn___IfO8v",modal:"modal___X3fUd",mHead:"mHead___IvIZN",body:"body___FhLrG",add:"add___YJGg_",error:"error___JoLGM"},ac=je(59301),cp=Object.defineProperty,W1=Object.getOwnPropertySymbols,Nh=Object.prototype.hasOwnProperty,ux=Object.prototype.propertyIsEnumerable,cx=(ee,y,E)=>y in ee?cp(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,G0=(ee,y)=>{for(var E in y||(y={}))Nh.call(y,E)&&cx(ee,E,y[E]);if(W1)for(var E of W1(y))ux.call(y,E)&&cx(ee,E,y[E]);return ee},X0=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())}),Q1=({value:ee=[],onChange:y,type:E,subjectId:z})=>{const[ne,ie]=(0,Me.useState)(!1),[se,ae]=(0,Me.useState)([]),[he,pe]=(0,Me.useState)([]),[ve,xe]=(0,Me.useState)([]),[Se,Be]=(0,Me.useState)(""),[De,Re]=(0,Me.useState)(""),[Oe,Le]=(0,Me.useState)(!1),[Je,$e]=(0,Me.useState)(!1),_e=[{background:"#6236FF",borderColor:"#9D82FF"},{background:"#6DB9FF",borderColor:"#6DB9FF"},{background:"rgba(27,175,234,0.8)",borderColor:"#68D5FF"},{background:"#C1AC15",borderColor:"#DCC51C"},{background:"#E07E37",borderColor:"#F79046"},{background:"rgba(29,94,255,0.8)",borderColor:"#6D97FE"},{background:"#E75454",borderColor:"#FE8383"},{background:"#A557D8",borderColor:"#C57AF6"},{background:"#2CA768",borderColor:"#43CC86"},{background:"#1F9269",borderColor:"#38B588"},{background:"#CA7720",borderColor:"#E99338"},{background:"rgba(224,32,32,0.8)",borderColor:"#E02020"},{background:"rgba(255,126,15,0.8)",borderColor:"#FF7E0F"},{background:"rgba(29,94,255,0.8)",borderColor:"#1D5EFF"},{background:"#2BAC8E",borderColor:"#30CB9D"},{background:"#EE5D5D",borderColor:"#FF8181"},{background:"#7E5AFE",borderColor:"#9173FA"},{background:"#3ABCEF",borderColor:"#6FD6FF"},{background:"#B132C2",borderColor:"#C57AF6"},{background:"#46A4FB",borderColor:"#72BBFF"},{background:"#C1AC15",borderColor:"#DCC51C"},{background:"#E07E37",borderColor:"#F79046"},{background:"#1D5EFF",borderColor:"#6D97FE"},{background:"#2CA768",borderColor:"#43CC86"},{background:"#A557D8",borderColor:"#C57AF6"},{background:"#1F9269",borderColor:"#38B588"},{background:"#CA7720",borderColor:"#E99338"}],st=E===1?"\u7C7B\u578B":"\u6807\u7B7E",ct=E===1?"0":"4";(0,Me.useEffect)(()=>{ne&&(xe(ee),ut())},[ne]);const ut=()=>X0(void 0,null,function*(){var cn;$e(!0);const Tn=yield(0,on.ZP)("/api/knowledge_items.json",{method:"get",params:{subject_id:z,item_type:ct}});(Tn==null?void 0:Tn.status)===0&&(ae((cn=Tn==null?void 0:Tn.data)==null?void 0:cn.map(Zn=>Zn.name)),pe((Tn==null?void 0:Tn.data)||[])),$e(!1)}),ht=cn=>X0(void 0,null,function*(){var Tn;$e(!0);const Zn=(Tn=he==null?void 0:he.find(di=>di.name===cn))==null?void 0:Tn.id,Nn=yield(0,on.ZP)(`/api/knowledge_items/${Zn}.json`,{method:"delete",body:{subject_id:z}});if((Nn==null?void 0:Nn.status)===0){ut(),Qt.ZP.success("\u5220\u9664\u6210\u529F");return}$e(!1)}),pt=({title:cn="",style:Tn={},showDelete:Zn=!0,modal:Nn=!1,active:di=!1})=>{const bn=(ti=>ti.split("").reduce((fn,Bi)=>fn+Bi.charCodeAt(0),0))(cn)%_e.length,{background:Sn,borderColor:ki}=_e[bn];return ac.createElement("div",{className:pn()(Dg.tag,di?Dg.active:""),onClick:()=>{Nn&&(ne===1&&xe([cn]),ne===2&&(ve.includes(cn)?xe(ve.filter(ti=>ti!==cn)):xe([...ve,cn])))},style:G0({background:Sn,borderColor:ki},Tn)},ac.createElement("span",null,cn),Zn&&ac.createElement("i",{onClick:ti=>{ti.stopPropagation(),Nn?ht(cn):y(ee.filter(fn=>fn!==cn))},className:"iconfont icon-shanchu5"}))},gt=()=>{y([...ve]),ie(!1)},zt=()=>X0(void 0,null,function*(){if(!Se.replace(/\s+/g,"")){Re(`${st}\u4E0D\u80FD\u4E3A\u7A7A`);return}if(se.includes(Se)){Re(`\u8BE5${st}\u5DF2\u5B58\u5728\uFF0C\u8BF7\u52FF\u91CD\u590D\u6DFB\u52A0\uFF01`);return}$e(!0);const cn=yield(0,on.ZP)("/api/knowledge_items.json",{method:"post",body:{subject_id:z,item_type:ct,name:Se}});if((cn==null?void 0:cn.status)===0){yield ut(),Le(!1),Qt.ZP.success("\u6DFB\u52A0\u6210\u529F");return}$e(!1)});return ac.createElement("div",{className:Dg.tagsModal},E===1&&ac.createElement(ac.Fragment,null,ee==null?void 0:ee.map((cn,Tn)=>ac.createElement(pt,{key:Tn,title:cn,showDelete:!1,style:{marginRight:"20rem"}})),ac.createElement("div",{onClick:()=>ie(1),style:{marginBottom:"20rem"},className:Dg.btn},ac.createElement("i",{className:"iconfont icon-genghuanguanliyuan1"}),ee!=null&&ee.length?"\u66F4\u6362":"\u9009\u62E9","\u7C7B\u578B")),E===2&&ac.createElement(ac.Fragment,null,ee==null?void 0:ee.map((cn,Tn)=>ac.createElement(pt,{key:Tn,title:cn})),ac.createElement("div",{onClick:()=>ie(2),className:Dg.btn,style:{marginBottom:"10rem"}},ac.createElement("i",{className:"iconfont icon-tianjiatixing"}),ee!=null&&ee.length?"\u66F4\u6362":"\u9009\u62E9","\u6807\u7B7E")),ac.createElement(Jt.default,{open:!!ne,centered:!0,width:"1000rem",okText:"\u4FDD\u5B58",onCancel:()=>ie(!1),cancelText:"\u53D6\u6D88",afterClose:()=>{Le(!1),Re(""),Be("")},onOk:gt,title:`\u9009\u62E9${st}`},ac.createElement("div",{className:Dg.modal},ac.createElement(rn.Z,{spinning:Je},ac.createElement("div",{className:Dg.mHead},ac.createElement("b",null),ac.createElement("span",null,`\u8282\u70B9${st}`,"\uFF08",se.length,"\uFF09"),ac.createElement("div",{onClick:()=>{Oe||(Le(!0),Re(""),Be(""))},className:Dg.btn},ac.createElement("i",{className:"iconfont icon-tianjiatixing"}),"\u6DFB\u52A0")),ac.createElement("div",{className:Dg.body},!(se!=null&&se.length)&&!Oe&&ac.createElement(da,{style:{height:"230rem"}}),se==null?void 0:se.map((cn,Tn)=>ac.createElement(pt,{showDelete:!(ve!=null&&ve.includes(cn)),modal:!0,style:{cursor:"pointer",verticalAlign:"center",marginTop:"10rem",marginBottom:"10rem"},active:ve.includes(cn),key:Tn,title:cn})),Oe&&ac.createElement("div",{className:Dg.add},ac.createElement(ln.default,{style:{width:"rem"},size:"large",value:Se,onChange:cn=>{Re(""),Be(cn.target.value)}}),ac.createElement("i",{onClick:zt,className:"iconfont icon-dui",style:{color:"#1B8565"}}),ac.createElement("i",{onClick:()=>Le(!1),className:"iconfont icon-shanchu10",style:{color:"#9096A3"}}),!!De&&ac.createElement("div",{className:Dg.error},De)))))))},Ky={flex_box_center:"flex_box_center___X1Bk6",flex_space_between:"flex_space_between___uybt7",flex_box_vertical_center:"flex_box_vertical_center___eRrsT",flex_box_center_end:"flex_box_center_end___twuIC",flex_box_column:"flex_box_column___GZ7ID",tabs:"tabs___lQRiO",activied:"activied___xuukl",tab:"tab___BDDdU",content:"content___Njpry"},PS=je(1560),lm=je(75727),ug=je(50865),Jy=je(59301),Z1=Object.defineProperty,Y1=Object.defineProperties,jv=Object.getOwnPropertyDescriptors,K1=Object.getOwnPropertySymbols,CS=Object.prototype.hasOwnProperty,ES=Object.prototype.propertyIsEnumerable,Ng=(ee,y,E)=>y in ee?Z1(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,J1=(ee,y)=>{for(var E in y||(y={}))CS.call(y,E)&&Ng(ee,E,y[E]);if(K1)for(var E of K1(y))ES.call(y,E)&&Ng(ee,E,y[E]);return ee},dx=(ee,y)=>Y1(ee,jv(y)),qy=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const Gv=(ee,y)=>{const E=ee.getParentData(y.id,"tree");return E?y.style.x>E.style.x?"right":"left":"center"},bS=[3,2,1];let Xp=[{name:"\u6839\u8282\u70B9",src:"/images/one.svg",color:"#CC7CF5"},{name:"\u8BFE\u7A0B",src:"/images/kc.svg",color:"#3241F7"},{name:"\u7AE0\u8282",src:"/images/zj.svg",color:"#5e54e7"},{name:"\u77E5\u8BC6\u70B9",src:"/images/zsd.svg",color:"#FFDF55"},{name:"\u5B9E\u8BAD",src:"/images/sx.svg",color:"#4E9DFF"},{name:"\u4F5C\u4E1A",src:"/images/zy.svg",color:"#445DF3"},{name:"\u89C6\u9891",src:"/images/sp.svg",color:"#6BC4DE"},{name:"\u8BFE\u4EF6",src:"/images/fj.svg",color:"#6BDE73"},{name:"\u8BD5\u5377",src:"/images/sj.svg",color:"#2D9534"},{name:"\u5176\u4ED6",src:"/images/qt.svg",color:"#2D947C"}];const MS=(ee,y)=>{const E={};let z=null;return ee.forEach(ne=>{E[ne.properties.uuid]=dx(J1({},ne),{id:ne.properties.uuid,children:[]})}),y.forEach(ne=>{const ie=E[ne.startNodeUuid],se=E[ne.endNodeUuid];ie&&(ie.id=ie.properties.uuid),ie&&se&&ie.children.push(se)}),ee.forEach(ne=>{!y.some(se=>se.endNodeUuid===ne.properties.uuid)&&(z=E[ne.properties.uuid])}),z};var AC=(0,Me.forwardRef)(({nodeUuid:ee,subject_id:y,setshowdetail:E,setitems:z,setzoomsize:ne},ie)=>{const[se,ae]=(0,Me.useState)(!1),he=(0,Me.useRef)(0),pe=(0,Me.useRef)(null),ve=(0,Me.useRef)();(0,Me.useEffect)(()=>{Oe()},[]);function xe(Je){ve.current.zoomBy(Je)}function Se(){setTimeout(()=>{var Je;ne((((Je=ve==null?void 0:ve.current)==null?void 0:Je.getZoom())*100).toFixed(0))},300)}function Be(Je){var $e;let _e=ve.current.getElementDataByState("node","selected");(_e==null?void 0:_e.length)>0&&ve.current.setElementState(($e=_e==null?void 0:_e[0])==null?void 0:$e.id,[""]),ve.current.setElementState(Je,["selected"])}function De(Je,$e){try{const _e={},st={};ve.current.getEdgeData().map(ct=>{_e[ct.id]=Je==="Enter"?"inactive":"active"}),ve.current.getNodeData().map(ct=>{Je==="Enter"?st[ct.id]=ct.colornodeType===$e?"highlight":"inactive":st[ct.id]="active"}),ve.current.setElementState(_e),ve.current.setElementState(st)}catch(_e){}}function Re(Je,$e){var _e;(_e=ve==null?void 0:ve.current)==null||_e.fitView(Je,$e)}(0,Me.useImperativeHandle)(ie,()=>({zoomBy:xe,getData:Oe,selectall:Be,onMouse:De,fitView:Re,getZooms:Se}));const Oe=()=>qy(void 0,null,function*(){var Je,$e,_e,st,ct,ut,ht,pt,gt;ae(!0);let zt=yield(0,on.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{nodeUuid:ee,subject_id:y,depth:-1,relationshipFilter:"\u5305\u542B>"}});ae(!1);let cn=($e=(Je=zt==null?void 0:zt.data)==null?void 0:Je.nodes)==null?void 0:$e.map(yi=>{var bn,Sn,ki,ti,fn,Bi,jn,ei,hr,_n,qi,Sr;return dx(J1({},yi==null?void 0:yi.properties),{rootNodeUuid:(bn=yi==null?void 0:yi.properties)==null?void 0:bn.rootNodeUuid,id:(Sn=yi==null?void 0:yi.properties)==null?void 0:Sn.uuid,name:(ki=yi==null?void 0:yi.properties)==null?void 0:ki.name,description:(ti=yi==null?void 0:yi.properties)==null?void 0:ti.description,nodeType:(fn=yi==null?void 0:yi.properties)==null?void 0:fn.nodeType,tags:((Bi=yi==null?void 0:yi.properties)==null?void 0:Bi.tags)&&((hr=(ei=(jn=yi==null?void 0:yi.properties)==null?void 0:jn.tags)==null?void 0:ei.split("\uFF0C"))==null?void 0:hr.map(Pr=>({name:Pr})))||[],colorType:parseInt((_n=yi==null?void 0:yi.properties)==null?void 0:_n.color)>3?"3":(qi=yi==null?void 0:yi.properties)==null?void 0:qi.color,activeColor:"#FA6400",size:bS[((Sr=yi==null?void 0:yi.properties)==null?void 0:Sr.color)-1]||1,shape:"circle",hide:!1,isExtendedState:!0})}),Tn=MS((st=(_e=zt==null?void 0:zt.data)==null?void 0:_e.nodes)==null?void 0:st.map((yi,bn)=>{var Sn,ki,ti,fn,Bi;return dx(J1({},yi),{key:bn,title:(Sn=yi==null?void 0:yi.properties)==null?void 0:Sn.name,newcolor:parseInt((ki=yi==null?void 0:yi.properties)==null?void 0:ki.color)===1?"#CC7CF5":((ti=Xp==null?void 0:Xp.find(jn=>{var ei;return(jn==null?void 0:jn.name)===((ei=yi==null?void 0:yi.properties)==null?void 0:ei.nodeType)}))==null?void 0:ti.color)||"#2D947C",colornodeType:parseInt((fn=yi==null?void 0:yi.properties)==null?void 0:fn.color)===1?"\u6839\u8282\u70B9":((Bi=Xp==null?void 0:Xp.find(jn=>{var ei;return(jn==null?void 0:jn.name)===((ei=yi==null?void 0:yi.properties)==null?void 0:ei.nodeType)}))==null?void 0:Bi.name)||"\u5176\u4ED6"})}),(ut=(ct=zt==null?void 0:zt.data)==null?void 0:ct.relationships)==null?void 0:ut.filter(yi=>yi.type==="\u5305\u542B"));ve!=null&&ve.current&&((ht=ve==null?void 0:ve.current)==null||ht.destroy());let Zn=(0,ug.RN)(Tn),Nn=(pt=Zn.nodes)==null?void 0:pt.filter((yi,bn,Sn)=>bn===Sn.findIndex(ki=>ki.id===yi.id)),di=(gt=Zn.edges)==null?void 0:gt.filter((yi,bn,Sn)=>bn===Sn.findIndex(ki=>ki.source===yi.source&&ki.target===yi.target));Le({nodes:Nn,edges:di},cn)}),Le=(Je,$e)=>{var _e,st;ve.current=null,ve.current=new ug.kJ({container:pe.current,autoResize:!0,autoFit:{type:((_e=Je==null?void 0:Je.nodes)==null?void 0:_e.length)>20?"view":"center",options:{direction:"both",when:"always"}},animation:!(((st=Je==null?void 0:Je.nodes)==null?void 0:st.length)>300),data:Je,node:{style:{labelText:ct=>ct.title,labelFill:"#ffffff",fill:ct=>ct.newcolor,labelBackground:!1,labelPlacement:function(ct){const ut=Gv(this,ct);return ut==="center"?"right":ut},halo:!0,haloStrokeOpacity:.5,haloLineWidth:10,ports:[{placement:"right"},{placement:"left"}]},animation:{enter:!1}},edge:{type:"cubic-horizontal",animation:{enter:!1}},layout:{type:"mindmap",direction:"H",getHeight:()=>32,getWidth:()=>32,getVGap:()=>4,getHGap:()=>64,getSide:ct=>(he.current++,he.current%2==0?"left":"right")},behaviors:["drag-element",{type:"zoom-canvas",onFinish:()=>{setTimeout(()=>{var ct;ne((((ct=ve==null?void 0:ve.current)==null?void 0:ct.getZoom())*100).toFixed(0))},300)}},"collapse-expand","drag-canvas",{type:"click-select",state:"selected",onClick:ct=>{let ut=$e.filter(ht=>{var pt,gt;return(ht==null?void 0:ht.id)===((gt=(pt=ct.target)==null?void 0:pt.config)==null?void 0:gt.id)});if((ut==null?void 0:ut.length)===0){E(!1);return}z(ut==null?void 0:ut[0]),E(!0),ct.view.setCursor("pointer")},multiple:!1}]}),ve.current.render(),setTimeout(()=>{var ct;ne((((ct=ve==null?void 0:ve.current)==null?void 0:ct.getZoom())*100).toFixed(0))},300)};return Jy.createElement("div",{style:{height:"100%"}},Jy.createElement(rn.Z,{spinning:se,className:"mt60 w100",tip:"\u52A0\u8F7D\u4E2D..."}),Jy.createElement("div",{style:{height:"100%"},ref:pe}))});function TS(ee,y){var E=ee==null?null:typeof Symbol!="undefined"&&ee[Symbol.iterator]||ee["@@iterator"];if(E!=null){var z,ne,ie,se,ae=[],he=!0,pe=!1;try{if(ie=(E=E.call(ee)).next,y===0){if(Object(E)!==E)return;he=!1}else for(;!(he=(z=ie.call(E)).done)&&(ae.push(z.value),ae.length!==y);he=!0);}catch(ve){pe=!0,ne=ve}finally{try{if(!he&&E.return!=null&&(se=E.return(),Object(se)!==se))return}finally{if(pe)throw ne}}return ae}}function q1(ee,y,E){return y=wC(y),y in ee?Object.defineProperty(ee,y,{value:E,enumerable:!0,configurable:!0,writable:!0}):ee[y]=E,ee}function xC(ee,y){return $1(ee)||TS(ee,y)||NS(ee,y)||FS()}function DS(ee){return _1(ee)||ew(ee)||NS(ee)||W0()}function _1(ee){if(Array.isArray(ee))return _y(ee)}function $1(ee){if(Array.isArray(ee))return ee}function ew(ee){if(typeof Symbol!="undefined"&&ee[Symbol.iterator]!=null||ee["@@iterator"]!=null)return Array.from(ee)}function NS(ee,y){if(ee){if(typeof ee=="string")return _y(ee,y);var E=Object.prototype.toString.call(ee).slice(8,-1);if(E==="Object"&&ee.constructor&&(E=ee.constructor.name),E==="Map"||E==="Set")return Array.from(ee);if(E==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(E))return _y(ee,y)}}function _y(ee,y){(y==null||y>ee.length)&&(y=ee.length);for(var E=0,z=new Array(y);E<y;E++)z[E]=ee[E];return z}function W0(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function FS(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function fx(ee,y){if(typeof ee!="object"||ee===null)return ee;var E=ee[Symbol.toPrimitive];if(E!==void 0){var z=E.call(ee,y||"default");if(typeof z!="object")return z;throw new TypeError("@@toPrimitive must return a primitive value.")}return(y==="string"?String:Number)(ee)}function wC(ee){var y=fx(ee,"string");return typeof y=="symbol"?y:String(y)}var LS=function(y,E){return Object.assign.apply(Object,[{}].concat(DS(E.map(function(z){return q1({},z,y[z])}))))},SC=function(y,E){var z=new Set(E);return Object.assign.apply(Object,[{}].concat(DS(Object.entries(y).filter(function(ne){var ie=xC(ne,1),se=ie[0];return!z.has(se)}).map(function(ne){var ie=xC(ne,2),se=ie[0],ae=ie[1];return q1({},se,ae)}))))};function zu(ee,y){(y==null||y>ee.length)&&(y=ee.length);for(var E=0,z=Array(y);E<y;E++)z[E]=ee[E];return z}function $y(ee){if(Array.isArray(ee))return ee}function Xv(ee){if(Array.isArray(ee))return zu(ee)}function sd(ee){if(typeof Symbol!="undefined"&&ee[Symbol.iterator]!=null||ee["@@iterator"]!=null)return Array.from(ee)}function Vf(ee,y){var E=ee==null?null:typeof Symbol!="undefined"&&ee[Symbol.iterator]||ee["@@iterator"];if(E!=null){var z,ne,ie,se,ae=[],he=!0,pe=!1;try{if(ie=(E=E.call(ee)).next,y!==0)for(;!(he=(z=ie.call(E)).done)&&(ae.push(z.value),ae.length!==y);he=!0);}catch(ve){pe=!0,ne=ve}finally{try{if(!he&&E.return!=null&&(se=E.return(),Object(se)!==se))return}finally{if(pe)throw ne}}return ae}}function Wv(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function px(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function IS(ee,y){return $y(ee)||Vf(ee,y)||nw(ee,y)||Wv()}function tw(ee){return Xv(ee)||sd(ee)||nw(ee)||px()}function nw(ee,y){if(ee){if(typeof ee=="string")return zu(ee,y);var E={}.toString.call(ee).slice(8,-1);return E==="Object"&&ee.constructor&&(E=ee.constructor.name),E==="Map"||E==="Set"?Array.from(ee):E==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(E)?zu(ee,y):void 0}}function kS(ee){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},E=y.wrapperElementType,z=E===void 0?"div":E,ne=y.nodeMapper,ie=ne===void 0?function(ve){return ve}:ne,se=y.methodNames,ae=se===void 0?[]:se,he=y.initPropNames,pe=he===void 0?[]:he;return(0,Me.forwardRef)(function(ve,xe){var Se=(0,Me.useRef)(),Be=(0,Me.useMemo)(function(){var Oe=Object.fromEntries(pe.filter(function(Le){return ve.hasOwnProperty(Le)}).map(function(Le){return[Le,ve[Le]]}));return ee(Oe)},[]);iw(function(){Be(ie(Se.current))},Me.useLayoutEffect),iw(function(){return Be._destructor instanceof Function?Be._destructor:void 0});var De=(0,Me.useCallback)(function(Oe){for(var Le=arguments.length,Je=new Array(Le>1?Le-1:0),$e=1;$e<Le;$e++)Je[$e-1]=arguments[$e];return Be[Oe]instanceof Function?Be[Oe].apply(Be,Je):void 0},[Be]),Re=(0,Me.useRef)({});return Object.keys(SC(ve,[].concat(tw(ae),tw(pe)))).filter(function(Oe){return Re.current[Oe]!==ve[Oe]}).forEach(function(Oe){return De(Oe,ve[Oe])}),Re.current=ve,(0,Me.useImperativeHandle)(xe,function(){return Object.fromEntries(ae.map(function(Oe){return[Oe,function(){for(var Le=arguments.length,Je=new Array(Le),$e=0;$e<Le;$e++)Je[$e]=arguments[$e];return De.apply(void 0,[Oe].concat(Je))}]}))},[De]),Me.createElement(z,{ref:Se})})}function iw(ee){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Me.useEffect,E=(0,Me.useRef)(),z=(0,Me.useRef)(!1),ne=(0,Me.useRef)(!1),ie=(0,Me.useState)(0),se=IS(ie,2);se[0];var ae=se[1];z.current&&(ne.current=!0),y(function(){return z.current||(E.current=ee(),z.current=!0),ae(function(he){return he+1}),function(){ne.current&&E.current&&E.current()}},[])}const cg="177",ad={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},jf={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},xc=0,eA=1,rw=2,gx=3,tA=0,Qv=1,PC=2,gc=3,hp=0,wc=1,Fh=2,of=0,de=1,me=2,Ee=3,Pe=4,Ne=5,Xe=100,at=101,Ct=102,St=103,jt=104,On=200,nn=201,wi=202,li=203,jr=204,no=205,To=206,rs=207,na=208,Ns=209,va=210,ml=211,Os=212,ou=213,Uc=214,bh=0,Lc=1,Cd=2,Mh=3,gh=4,Gd=5,Gh=6,mh=7,Fu=0,th=1,ld=2,bc=0,hg=1,Jc=2,Wp=3,vh=4,mx=5,dp=6,Gf=7,Mf="attached",Mc="detached",Xh=300,ud=301,Xf=302,nA=303,cd=304,Q0=306,fp=1e3,pp=1001,um=1002,Ic=1003,Bm=1004,CC=1004,gp=1005,ow=1005,qu=1006,Wh=1007,$T=1007,mp=1008,n5=1008,yh=1009,Zv=1010,iA=1011,Tm=1012,sf=1013,Oc=1014,Ah=1015,Hc=1016,Fg=1017,vx=1018,xh=1020,a0=35902,Zb=1021,Yv=1022,Ws=1023,Lg=1026,Ig=1027,rA=1028,Dm=1029,kg=1030,Qp=1031,Yb=1032,oA=1033,Kv=33776,Z0=33777,Jv=33778,Og=33779,yx=35840,Ax=35841,sA=35842,Y0=35843,xx=36196,zl=37492,hd=37496,Bh=37808,vp=37809,l0=37810,dg=37811,Zp=37812,Ed=37813,u0=37814,c0=37815,wx=37816,lc=37817,qv=37818,_v=37819,$v=37820,ey=37821,ty=36492,sw=36494,aw=36495,lw=36283,aA=36284,lA=36285,ny=36286,EC=2200,bC=2201,i5=2202,uA=2300,Pi=2301,OS=2302,Sx=2400,iy=2401,RS=2402,zS=2500,Nm=2501,Px=0,e3=1,CN=2,r5=3200,o5=3201,t3=3202,ry=3203,h0=0,MC=1,yp="",Wf="srgb",Fm="srgb-linear",Cx="linear",Ua="srgb",Yp=0,Ex=7680,US=7681,s5=7682,BC=7683,Kb=34055,Jb=34056,_b=5386,TC=512,cm=513,a5=514,l5=515,fg=516,d0=517,Ap=518,mc=519,uw=512,bx=513,HS=514,cA=515,cw=516,xs=517,K0=518,hA=519,Mx=35044,oy=35048,$b=35040,Bx=35045,n3=35049,i3=35041,f0=35046,u5=35050,c5=35042,_l="100",Rg="300 es",xp=2e3,zg=2001,h5={COMPUTE:"compute",RENDER:"render"},VS={PERSPECTIVE:"perspective",LINEAR:"linear",FLAT:"flat"},Ug={NORMAL:"normal",CENTROID:"centroid",SAMPLE:"sample",FLAT_FIRST:"flat first",FLAT_EITHER:"flat either"};class Hg{addEventListener(y,E){this._listeners===void 0&&(this._listeners={});const z=this._listeners;z[y]===void 0&&(z[y]=[]),z[y].indexOf(E)===-1&&z[y].push(E)}hasEventListener(y,E){const z=this._listeners;return z===void 0?!1:z[y]!==void 0&&z[y].indexOf(E)!==-1}removeEventListener(y,E){const z=this._listeners;if(z===void 0)return;const ne=z[y];if(ne!==void 0){const ie=ne.indexOf(E);ie!==-1&&ne.splice(ie,1)}}dispatchEvent(y){const E=this._listeners;if(E===void 0)return;const z=E[y.type];if(z!==void 0){y.target=this;const ne=z.slice(0);for(let ie=0,se=ne.length;ie<se;ie++)ne[ie].call(this,y);y.target=null}}}const wp=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"];let e2=1234567;const J0=Math.PI/180,q0=180/Math.PI;function pg(){const ee=Math.random()*4294967295|0,y=Math.random()*4294967295|0,E=Math.random()*4294967295|0,z=Math.random()*4294967295|0;return(wp[ee&255]+wp[ee>>8&255]+wp[ee>>16&255]+wp[ee>>24&255]+"-"+wp[y&255]+wp[y>>8&255]+"-"+wp[y>>16&15|64]+wp[y>>24&255]+"-"+wp[E&63|128]+wp[E>>8&255]+"-"+wp[E>>16&255]+wp[E>>24&255]+wp[z&255]+wp[z>>8&255]+wp[z>>16&255]+wp[z>>24&255]).toLowerCase()}function Bu(ee,y,E){return Math.max(y,Math.min(E,ee))}function jS(ee,y){return(ee%y+y)%y}function d5(ee,y,E,z,ne){return z+(ee-y)*(ne-z)/(E-y)}function t2(ee,y,E){return ee!==y?(E-ee)/(y-ee):0}function dA(ee,y,E){return(1-E)*ee+E*y}function GS(ee,y,E,z){return dA(ee,y,1-Math.exp(-E*z))}function f5(ee,y=1){return y-Math.abs(jS(ee,y*2)-y)}function r3(ee,y,E){return ee<=y?0:ee>=E?1:(ee=(ee-y)/(E-y),ee*ee*(3-2*ee))}function n2(ee,y,E){return ee<=y?0:ee>=E?1:(ee=(ee-y)/(E-y),ee*ee*ee*(ee*(ee*6-15)+10))}function p5(ee,y){return ee+Math.floor(Math.random()*(y-ee+1))}function DC(ee,y){return ee+Math.random()*(y-ee)}function i2(ee){return ee*(.5-Math.random())}function XS(ee){ee!==void 0&&(e2=ee);let y=e2+=1831565813;return y=Math.imul(y^y>>>15,y|1),y^=y+Math.imul(y^y>>>7,y|61),((y^y>>>14)>>>0)/4294967296}function g5(ee){return ee*J0}function Xd(ee){return ee*q0}function NC(ee){return(ee&ee-1)===0&&ee!==0}function r2(ee){return Math.pow(2,Math.ceil(Math.log(ee)/Math.LN2))}function Lm(ee){return Math.pow(2,Math.floor(Math.log(ee)/Math.LN2))}function Wd(ee,y,E,z,ne){const ie=Math.cos,se=Math.sin,ae=ie(E/2),he=se(E/2),pe=ie((y+z)/2),ve=se((y+z)/2),xe=ie((y-z)/2),Se=se((y-z)/2),Be=ie((z-y)/2),De=se((z-y)/2);switch(ne){case"XYX":ee.set(ae*ve,he*xe,he*Se,ae*pe);break;case"YZY":ee.set(he*Se,ae*ve,he*xe,ae*pe);break;case"ZXZ":ee.set(he*xe,he*Se,ae*ve,ae*pe);break;case"XZX":ee.set(ae*ve,he*De,he*Be,ae*pe);break;case"YXY":ee.set(he*Be,ae*ve,he*De,ae*pe);break;case"ZYZ":ee.set(he*De,he*Be,ae*ve,ae*pe);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+ne)}}function af(ee,y){switch(y.constructor){case Float32Array:return ee;case Uint32Array:return ee/4294967295;case Uint16Array:return ee/65535;case Uint8Array:return ee/255;case Int32Array:return Math.max(ee/2147483647,-1);case Int16Array:return Math.max(ee/32767,-1);case Int8Array:return Math.max(ee/127,-1);default:throw new Error("Invalid component type.")}}function wu(ee,y){switch(y.constructor){case Float32Array:return ee;case Uint32Array:return Math.round(ee*4294967295);case Uint16Array:return Math.round(ee*65535);case Uint8Array:return Math.round(ee*255);case Int32Array:return Math.round(ee*2147483647);case Int16Array:return Math.round(ee*32767);case Int8Array:return Math.round(ee*127);default:throw new Error("Invalid component type.")}}const hw={DEG2RAD:J0,RAD2DEG:q0,generateUUID:pg,clamp:Bu,euclideanModulo:jS,mapLinear:d5,inverseLerp:t2,lerp:dA,damp:GS,pingpong:f5,smoothstep:r3,smootherstep:n2,randInt:p5,randFloat:DC,randFloatSpread:i2,seededRandom:XS,degToRad:g5,radToDeg:Xd,isPowerOfTwo:NC,ceilPowerOfTwo:r2,floorPowerOfTwo:Lm,setQuaternionFromProperEuler:Wd,normalize:wu,denormalize:af};class Yr{constructor(y=0,E=0){Yr.prototype.isVector2=!0,this.x=y,this.y=E}get width(){return this.x}set width(y){this.x=y}get height(){return this.y}set height(y){this.y=y}set(y,E){return this.x=y,this.y=E,this}setScalar(y){return this.x=y,this.y=y,this}setX(y){return this.x=y,this}setY(y){return this.y=y,this}setComponent(y,E){switch(y){case 0:this.x=E;break;case 1:this.y=E;break;default:throw new Error("index is out of range: "+y)}return this}getComponent(y){switch(y){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+y)}}clone(){return new this.constructor(this.x,this.y)}copy(y){return this.x=y.x,this.y=y.y,this}add(y){return this.x+=y.x,this.y+=y.y,this}addScalar(y){return this.x+=y,this.y+=y,this}addVectors(y,E){return this.x=y.x+E.x,this.y=y.y+E.y,this}addScaledVector(y,E){return this.x+=y.x*E,this.y+=y.y*E,this}sub(y){return this.x-=y.x,this.y-=y.y,this}subScalar(y){return this.x-=y,this.y-=y,this}subVectors(y,E){return this.x=y.x-E.x,this.y=y.y-E.y,this}multiply(y){return this.x*=y.x,this.y*=y.y,this}multiplyScalar(y){return this.x*=y,this.y*=y,this}divide(y){return this.x/=y.x,this.y/=y.y,this}divideScalar(y){return this.multiplyScalar(1/y)}applyMatrix3(y){const E=this.x,z=this.y,ne=y.elements;return this.x=ne[0]*E+ne[3]*z+ne[6],this.y=ne[1]*E+ne[4]*z+ne[7],this}min(y){return this.x=Math.min(this.x,y.x),this.y=Math.min(this.y,y.y),this}max(y){return this.x=Math.max(this.x,y.x),this.y=Math.max(this.y,y.y),this}clamp(y,E){return this.x=Bu(this.x,y.x,E.x),this.y=Bu(this.y,y.y,E.y),this}clampScalar(y,E){return this.x=Bu(this.x,y,E),this.y=Bu(this.y,y,E),this}clampLength(y,E){const z=this.length();return this.divideScalar(z||1).multiplyScalar(Bu(z,y,E))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(y){return this.x*y.x+this.y*y.y}cross(y){return this.x*y.y-this.y*y.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(y){const E=Math.sqrt(this.lengthSq()*y.lengthSq());if(E===0)return Math.PI/2;const z=this.dot(y)/E;return Math.acos(Bu(z,-1,1))}distanceTo(y){return Math.sqrt(this.distanceToSquared(y))}distanceToSquared(y){const E=this.x-y.x,z=this.y-y.y;return E*E+z*z}manhattanDistanceTo(y){return Math.abs(this.x-y.x)+Math.abs(this.y-y.y)}setLength(y){return this.normalize().multiplyScalar(y)}lerp(y,E){return this.x+=(y.x-this.x)*E,this.y+=(y.y-this.y)*E,this}lerpVectors(y,E,z){return this.x=y.x+(E.x-y.x)*z,this.y=y.y+(E.y-y.y)*z,this}equals(y){return y.x===this.x&&y.y===this.y}fromArray(y,E=0){return this.x=y[E],this.y=y[E+1],this}toArray(y=[],E=0){return y[E]=this.x,y[E+1]=this.y,y}fromBufferAttribute(y,E){return this.x=y.getX(E),this.y=y.getY(E),this}rotateAround(y,E){const z=Math.cos(E),ne=Math.sin(E),ie=this.x-y.x,se=this.y-y.y;return this.x=ie*z-se*ne+y.x,this.y=ie*ne+se*z+y.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Bf{constructor(y=0,E=0,z=0,ne=1){this.isQuaternion=!0,this._x=y,this._y=E,this._z=z,this._w=ne}static slerpFlat(y,E,z,ne,ie,se,ae){let he=z[ne+0],pe=z[ne+1],ve=z[ne+2],xe=z[ne+3];const Se=ie[se+0],Be=ie[se+1],De=ie[se+2],Re=ie[se+3];if(ae===0){y[E+0]=he,y[E+1]=pe,y[E+2]=ve,y[E+3]=xe;return}if(ae===1){y[E+0]=Se,y[E+1]=Be,y[E+2]=De,y[E+3]=Re;return}if(xe!==Re||he!==Se||pe!==Be||ve!==De){let Oe=1-ae;const Le=he*Se+pe*Be+ve*De+xe*Re,Je=Le>=0?1:-1,$e=1-Le*Le;if($e>Number.EPSILON){const st=Math.sqrt($e),ct=Math.atan2(st,Le*Je);Oe=Math.sin(Oe*ct)/st,ae=Math.sin(ae*ct)/st}const _e=ae*Je;if(he=he*Oe+Se*_e,pe=pe*Oe+Be*_e,ve=ve*Oe+De*_e,xe=xe*Oe+Re*_e,Oe===1-ae){const st=1/Math.sqrt(he*he+pe*pe+ve*ve+xe*xe);he*=st,pe*=st,ve*=st,xe*=st}}y[E]=he,y[E+1]=pe,y[E+2]=ve,y[E+3]=xe}static multiplyQuaternionsFlat(y,E,z,ne,ie,se){const ae=z[ne],he=z[ne+1],pe=z[ne+2],ve=z[ne+3],xe=ie[se],Se=ie[se+1],Be=ie[se+2],De=ie[se+3];return y[E]=ae*De+ve*xe+he*Be-pe*Se,y[E+1]=he*De+ve*Se+pe*xe-ae*Be,y[E+2]=pe*De+ve*Be+ae*Se-he*xe,y[E+3]=ve*De-ae*xe-he*Se-pe*Be,y}get x(){return this._x}set x(y){this._x=y,this._onChangeCallback()}get y(){return this._y}set y(y){this._y=y,this._onChangeCallback()}get z(){return this._z}set z(y){this._z=y,this._onChangeCallback()}get w(){return this._w}set w(y){this._w=y,this._onChangeCallback()}set(y,E,z,ne){return this._x=y,this._y=E,this._z=z,this._w=ne,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(y){return this._x=y.x,this._y=y.y,this._z=y.z,this._w=y.w,this._onChangeCallback(),this}setFromEuler(y,E=!0){const z=y._x,ne=y._y,ie=y._z,se=y._order,ae=Math.cos,he=Math.sin,pe=ae(z/2),ve=ae(ne/2),xe=ae(ie/2),Se=he(z/2),Be=he(ne/2),De=he(ie/2);switch(se){case"XYZ":this._x=Se*ve*xe+pe*Be*De,this._y=pe*Be*xe-Se*ve*De,this._z=pe*ve*De+Se*Be*xe,this._w=pe*ve*xe-Se*Be*De;break;case"YXZ":this._x=Se*ve*xe+pe*Be*De,this._y=pe*Be*xe-Se*ve*De,this._z=pe*ve*De-Se*Be*xe,this._w=pe*ve*xe+Se*Be*De;break;case"ZXY":this._x=Se*ve*xe-pe*Be*De,this._y=pe*Be*xe+Se*ve*De,this._z=pe*ve*De+Se*Be*xe,this._w=pe*ve*xe-Se*Be*De;break;case"ZYX":this._x=Se*ve*xe-pe*Be*De,this._y=pe*Be*xe+Se*ve*De,this._z=pe*ve*De-Se*Be*xe,this._w=pe*ve*xe+Se*Be*De;break;case"YZX":this._x=Se*ve*xe+pe*Be*De,this._y=pe*Be*xe+Se*ve*De,this._z=pe*ve*De-Se*Be*xe,this._w=pe*ve*xe-Se*Be*De;break;case"XZY":this._x=Se*ve*xe-pe*Be*De,this._y=pe*Be*xe-Se*ve*De,this._z=pe*ve*De+Se*Be*xe,this._w=pe*ve*xe+Se*Be*De;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+se)}return E===!0&&this._onChangeCallback(),this}setFromAxisAngle(y,E){const z=E/2,ne=Math.sin(z);return this._x=y.x*ne,this._y=y.y*ne,this._z=y.z*ne,this._w=Math.cos(z),this._onChangeCallback(),this}setFromRotationMatrix(y){const E=y.elements,z=E[0],ne=E[4],ie=E[8],se=E[1],ae=E[5],he=E[9],pe=E[2],ve=E[6],xe=E[10],Se=z+ae+xe;if(Se>0){const Be=.5/Math.sqrt(Se+1);this._w=.25/Be,this._x=(ve-he)*Be,this._y=(ie-pe)*Be,this._z=(se-ne)*Be}else if(z>ae&&z>xe){const Be=2*Math.sqrt(1+z-ae-xe);this._w=(ve-he)/Be,this._x=.25*Be,this._y=(ne+se)/Be,this._z=(ie+pe)/Be}else if(ae>xe){const Be=2*Math.sqrt(1+ae-z-xe);this._w=(ie-pe)/Be,this._x=(ne+se)/Be,this._y=.25*Be,this._z=(he+ve)/Be}else{const Be=2*Math.sqrt(1+xe-z-ae);this._w=(se-ne)/Be,this._x=(ie+pe)/Be,this._y=(he+ve)/Be,this._z=.25*Be}return this._onChangeCallback(),this}setFromUnitVectors(y,E){let z=y.dot(E)+1;return z<Number.EPSILON?(z=0,Math.abs(y.x)>Math.abs(y.z)?(this._x=-y.y,this._y=y.x,this._z=0,this._w=z):(this._x=0,this._y=-y.z,this._z=y.y,this._w=z)):(this._x=y.y*E.z-y.z*E.y,this._y=y.z*E.x-y.x*E.z,this._z=y.x*E.y-y.y*E.x,this._w=z),this.normalize()}angleTo(y){return 2*Math.acos(Math.abs(Bu(this.dot(y),-1,1)))}rotateTowards(y,E){const z=this.angleTo(y);if(z===0)return this;const ne=Math.min(1,E/z);return this.slerp(y,ne),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(y){return this._x*y._x+this._y*y._y+this._z*y._z+this._w*y._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let y=this.length();return y===0?(this._x=0,this._y=0,this._z=0,this._w=1):(y=1/y,this._x=this._x*y,this._y=this._y*y,this._z=this._z*y,this._w=this._w*y),this._onChangeCallback(),this}multiply(y){return this.multiplyQuaternions(this,y)}premultiply(y){return this.multiplyQuaternions(y,this)}multiplyQuaternions(y,E){const z=y._x,ne=y._y,ie=y._z,se=y._w,ae=E._x,he=E._y,pe=E._z,ve=E._w;return this._x=z*ve+se*ae+ne*pe-ie*he,this._y=ne*ve+se*he+ie*ae-z*pe,this._z=ie*ve+se*pe+z*he-ne*ae,this._w=se*ve-z*ae-ne*he-ie*pe,this._onChangeCallback(),this}slerp(y,E){if(E===0)return this;if(E===1)return this.copy(y);const z=this._x,ne=this._y,ie=this._z,se=this._w;let ae=se*y._w+z*y._x+ne*y._y+ie*y._z;if(ae<0?(this._w=-y._w,this._x=-y._x,this._y=-y._y,this._z=-y._z,ae=-ae):this.copy(y),ae>=1)return this._w=se,this._x=z,this._y=ne,this._z=ie,this;const he=1-ae*ae;if(he<=Number.EPSILON){const Be=1-E;return this._w=Be*se+E*this._w,this._x=Be*z+E*this._x,this._y=Be*ne+E*this._y,this._z=Be*ie+E*this._z,this.normalize(),this}const pe=Math.sqrt(he),ve=Math.atan2(pe,ae),xe=Math.sin((1-E)*ve)/pe,Se=Math.sin(E*ve)/pe;return this._w=se*xe+this._w*Se,this._x=z*xe+this._x*Se,this._y=ne*xe+this._y*Se,this._z=ie*xe+this._z*Se,this._onChangeCallback(),this}slerpQuaternions(y,E,z){return this.copy(y).slerp(E,z)}random(){const y=2*Math.PI*Math.random(),E=2*Math.PI*Math.random(),z=Math.random(),ne=Math.sqrt(1-z),ie=Math.sqrt(z);return this.set(ne*Math.sin(y),ne*Math.cos(y),ie*Math.sin(E),ie*Math.cos(E))}equals(y){return y._x===this._x&&y._y===this._y&&y._z===this._z&&y._w===this._w}fromArray(y,E=0){return this._x=y[E],this._y=y[E+1],this._z=y[E+2],this._w=y[E+3],this._onChangeCallback(),this}toArray(y=[],E=0){return y[E]=this._x,y[E+1]=this._y,y[E+2]=this._z,y[E+3]=this._w,y}fromBufferAttribute(y,E){return this._x=y.getX(E),this._y=y.getY(E),this._z=y.getZ(E),this._w=y.getW(E),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(y){return this._onChangeCallback=y,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class yn{constructor(y=0,E=0,z=0){yn.prototype.isVector3=!0,this.x=y,this.y=E,this.z=z}set(y,E,z){return z===void 0&&(z=this.z),this.x=y,this.y=E,this.z=z,this}setScalar(y){return this.x=y,this.y=y,this.z=y,this}setX(y){return this.x=y,this}setY(y){return this.y=y,this}setZ(y){return this.z=y,this}setComponent(y,E){switch(y){case 0:this.x=E;break;case 1:this.y=E;break;case 2:this.z=E;break;default:throw new Error("index is out of range: "+y)}return this}getComponent(y){switch(y){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+y)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(y){return this.x=y.x,this.y=y.y,this.z=y.z,this}add(y){return this.x+=y.x,this.y+=y.y,this.z+=y.z,this}addScalar(y){return this.x+=y,this.y+=y,this.z+=y,this}addVectors(y,E){return this.x=y.x+E.x,this.y=y.y+E.y,this.z=y.z+E.z,this}addScaledVector(y,E){return this.x+=y.x*E,this.y+=y.y*E,this.z+=y.z*E,this}sub(y){return this.x-=y.x,this.y-=y.y,this.z-=y.z,this}subScalar(y){return this.x-=y,this.y-=y,this.z-=y,this}subVectors(y,E){return this.x=y.x-E.x,this.y=y.y-E.y,this.z=y.z-E.z,this}multiply(y){return this.x*=y.x,this.y*=y.y,this.z*=y.z,this}multiplyScalar(y){return this.x*=y,this.y*=y,this.z*=y,this}multiplyVectors(y,E){return this.x=y.x*E.x,this.y=y.y*E.y,this.z=y.z*E.z,this}applyEuler(y){return this.applyQuaternion(o2.setFromEuler(y))}applyAxisAngle(y,E){return this.applyQuaternion(o2.setFromAxisAngle(y,E))}applyMatrix3(y){const E=this.x,z=this.y,ne=this.z,ie=y.elements;return this.x=ie[0]*E+ie[3]*z+ie[6]*ne,this.y=ie[1]*E+ie[4]*z+ie[7]*ne,this.z=ie[2]*E+ie[5]*z+ie[8]*ne,this}applyNormalMatrix(y){return this.applyMatrix3(y).normalize()}applyMatrix4(y){const E=this.x,z=this.y,ne=this.z,ie=y.elements,se=1/(ie[3]*E+ie[7]*z+ie[11]*ne+ie[15]);return this.x=(ie[0]*E+ie[4]*z+ie[8]*ne+ie[12])*se,this.y=(ie[1]*E+ie[5]*z+ie[9]*ne+ie[13])*se,this.z=(ie[2]*E+ie[6]*z+ie[10]*ne+ie[14])*se,this}applyQuaternion(y){const E=this.x,z=this.y,ne=this.z,ie=y.x,se=y.y,ae=y.z,he=y.w,pe=2*(se*ne-ae*z),ve=2*(ae*E-ie*ne),xe=2*(ie*z-se*E);return this.x=E+he*pe+se*xe-ae*ve,this.y=z+he*ve+ae*pe-ie*xe,this.z=ne+he*xe+ie*ve-se*pe,this}project(y){return this.applyMatrix4(y.matrixWorldInverse).applyMatrix4(y.projectionMatrix)}unproject(y){return this.applyMatrix4(y.projectionMatrixInverse).applyMatrix4(y.matrixWorld)}transformDirection(y){const E=this.x,z=this.y,ne=this.z,ie=y.elements;return this.x=ie[0]*E+ie[4]*z+ie[8]*ne,this.y=ie[1]*E+ie[5]*z+ie[9]*ne,this.z=ie[2]*E+ie[6]*z+ie[10]*ne,this.normalize()}divide(y){return this.x/=y.x,this.y/=y.y,this.z/=y.z,this}divideScalar(y){return this.multiplyScalar(1/y)}min(y){return this.x=Math.min(this.x,y.x),this.y=Math.min(this.y,y.y),this.z=Math.min(this.z,y.z),this}max(y){return this.x=Math.max(this.x,y.x),this.y=Math.max(this.y,y.y),this.z=Math.max(this.z,y.z),this}clamp(y,E){return this.x=Bu(this.x,y.x,E.x),this.y=Bu(this.y,y.y,E.y),this.z=Bu(this.z,y.z,E.z),this}clampScalar(y,E){return this.x=Bu(this.x,y,E),this.y=Bu(this.y,y,E),this.z=Bu(this.z,y,E),this}clampLength(y,E){const z=this.length();return this.divideScalar(z||1).multiplyScalar(Bu(z,y,E))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(y){return this.x*y.x+this.y*y.y+this.z*y.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(y){return this.normalize().multiplyScalar(y)}lerp(y,E){return this.x+=(y.x-this.x)*E,this.y+=(y.y-this.y)*E,this.z+=(y.z-this.z)*E,this}lerpVectors(y,E,z){return this.x=y.x+(E.x-y.x)*z,this.y=y.y+(E.y-y.y)*z,this.z=y.z+(E.z-y.z)*z,this}cross(y){return this.crossVectors(this,y)}crossVectors(y,E){const z=y.x,ne=y.y,ie=y.z,se=E.x,ae=E.y,he=E.z;return this.x=ne*he-ie*ae,this.y=ie*se-z*he,this.z=z*ae-ne*se,this}projectOnVector(y){const E=y.lengthSq();if(E===0)return this.set(0,0,0);const z=y.dot(this)/E;return this.copy(y).multiplyScalar(z)}projectOnPlane(y){return FC.copy(this).projectOnVector(y),this.sub(FC)}reflect(y){return this.sub(FC.copy(y).multiplyScalar(2*this.dot(y)))}angleTo(y){const E=Math.sqrt(this.lengthSq()*y.lengthSq());if(E===0)return Math.PI/2;const z=this.dot(y)/E;return Math.acos(Bu(z,-1,1))}distanceTo(y){return Math.sqrt(this.distanceToSquared(y))}distanceToSquared(y){const E=this.x-y.x,z=this.y-y.y,ne=this.z-y.z;return E*E+z*z+ne*ne}manhattanDistanceTo(y){return Math.abs(this.x-y.x)+Math.abs(this.y-y.y)+Math.abs(this.z-y.z)}setFromSpherical(y){return this.setFromSphericalCoords(y.radius,y.phi,y.theta)}setFromSphericalCoords(y,E,z){const ne=Math.sin(E)*y;return this.x=ne*Math.sin(z),this.y=Math.cos(E)*y,this.z=ne*Math.cos(z),this}setFromCylindrical(y){return this.setFromCylindricalCoords(y.radius,y.theta,y.y)}setFromCylindricalCoords(y,E,z){return this.x=y*Math.sin(E),this.y=z,this.z=y*Math.cos(E),this}setFromMatrixPosition(y){const E=y.elements;return this.x=E[12],this.y=E[13],this.z=E[14],this}setFromMatrixScale(y){const E=this.setFromMatrixColumn(y,0).length(),z=this.setFromMatrixColumn(y,1).length(),ne=this.setFromMatrixColumn(y,2).length();return this.x=E,this.y=z,this.z=ne,this}setFromMatrixColumn(y,E){return this.fromArray(y.elements,E*4)}setFromMatrix3Column(y,E){return this.fromArray(y.elements,E*3)}setFromEuler(y){return this.x=y._x,this.y=y._y,this.z=y._z,this}setFromColor(y){return this.x=y.r,this.y=y.g,this.z=y.b,this}equals(y){return y.x===this.x&&y.y===this.y&&y.z===this.z}fromArray(y,E=0){return this.x=y[E],this.y=y[E+1],this.z=y[E+2],this}toArray(y=[],E=0){return y[E]=this.x,y[E+1]=this.y,y[E+2]=this.z,y}fromBufferAttribute(y,E){return this.x=y.getX(E),this.y=y.getY(E),this.z=y.getZ(E),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const y=Math.random()*Math.PI*2,E=Math.random()*2-1,z=Math.sqrt(1-E*E);return this.x=z*Math.cos(y),this.y=E,this.z=z*Math.sin(y),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const FC=new yn,o2=new Bf;class nu{constructor(y,E,z,ne,ie,se,ae,he,pe){nu.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],y!==void 0&&this.set(y,E,z,ne,ie,se,ae,he,pe)}set(y,E,z,ne,ie,se,ae,he,pe){const ve=this.elements;return ve[0]=y,ve[1]=ne,ve[2]=ae,ve[3]=E,ve[4]=ie,ve[5]=he,ve[6]=z,ve[7]=se,ve[8]=pe,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(y){const E=this.elements,z=y.elements;return E[0]=z[0],E[1]=z[1],E[2]=z[2],E[3]=z[3],E[4]=z[4],E[5]=z[5],E[6]=z[6],E[7]=z[7],E[8]=z[8],this}extractBasis(y,E,z){return y.setFromMatrix3Column(this,0),E.setFromMatrix3Column(this,1),z.setFromMatrix3Column(this,2),this}setFromMatrix4(y){const E=y.elements;return this.set(E[0],E[4],E[8],E[1],E[5],E[9],E[2],E[6],E[10]),this}multiply(y){return this.multiplyMatrices(this,y)}premultiply(y){return this.multiplyMatrices(y,this)}multiplyMatrices(y,E){const z=y.elements,ne=E.elements,ie=this.elements,se=z[0],ae=z[3],he=z[6],pe=z[1],ve=z[4],xe=z[7],Se=z[2],Be=z[5],De=z[8],Re=ne[0],Oe=ne[3],Le=ne[6],Je=ne[1],$e=ne[4],_e=ne[7],st=ne[2],ct=ne[5],ut=ne[8];return ie[0]=se*Re+ae*Je+he*st,ie[3]=se*Oe+ae*$e+he*ct,ie[6]=se*Le+ae*_e+he*ut,ie[1]=pe*Re+ve*Je+xe*st,ie[4]=pe*Oe+ve*$e+xe*ct,ie[7]=pe*Le+ve*_e+xe*ut,ie[2]=Se*Re+Be*Je+De*st,ie[5]=Se*Oe+Be*$e+De*ct,ie[8]=Se*Le+Be*_e+De*ut,this}multiplyScalar(y){const E=this.elements;return E[0]*=y,E[3]*=y,E[6]*=y,E[1]*=y,E[4]*=y,E[7]*=y,E[2]*=y,E[5]*=y,E[8]*=y,this}determinant(){const y=this.elements,E=y[0],z=y[1],ne=y[2],ie=y[3],se=y[4],ae=y[5],he=y[6],pe=y[7],ve=y[8];return E*se*ve-E*ae*pe-z*ie*ve+z*ae*he+ne*ie*pe-ne*se*he}invert(){const y=this.elements,E=y[0],z=y[1],ne=y[2],ie=y[3],se=y[4],ae=y[5],he=y[6],pe=y[7],ve=y[8],xe=ve*se-ae*pe,Se=ae*he-ve*ie,Be=pe*ie-se*he,De=E*xe+z*Se+ne*Be;if(De===0)return this.set(0,0,0,0,0,0,0,0,0);const Re=1/De;return y[0]=xe*Re,y[1]=(ne*pe-ve*z)*Re,y[2]=(ae*z-ne*se)*Re,y[3]=Se*Re,y[4]=(ve*E-ne*he)*Re,y[5]=(ne*ie-ae*E)*Re,y[6]=Be*Re,y[7]=(z*he-pe*E)*Re,y[8]=(se*E-z*ie)*Re,this}transpose(){let y;const E=this.elements;return y=E[1],E[1]=E[3],E[3]=y,y=E[2],E[2]=E[6],E[6]=y,y=E[5],E[5]=E[7],E[7]=y,this}getNormalMatrix(y){return this.setFromMatrix4(y).invert().transpose()}transposeIntoArray(y){const E=this.elements;return y[0]=E[0],y[1]=E[3],y[2]=E[6],y[3]=E[1],y[4]=E[4],y[5]=E[7],y[6]=E[2],y[7]=E[5],y[8]=E[8],this}setUvTransform(y,E,z,ne,ie,se,ae){const he=Math.cos(ie),pe=Math.sin(ie);return this.set(z*he,z*pe,-z*(he*se+pe*ae)+se+y,-ne*pe,ne*he,-ne*(-pe*se+he*ae)+ae+E,0,0,1),this}scale(y,E){return this.premultiply(fA.makeScale(y,E)),this}rotate(y){return this.premultiply(fA.makeRotation(-y)),this}translate(y,E){return this.premultiply(fA.makeTranslation(y,E)),this}makeTranslation(y,E){return y.isVector2?this.set(1,0,y.x,0,1,y.y,0,0,1):this.set(1,0,y,0,1,E,0,0,1),this}makeRotation(y){const E=Math.cos(y),z=Math.sin(y);return this.set(E,-z,0,z,E,0,0,0,1),this}makeScale(y,E){return this.set(y,0,0,0,E,0,0,0,1),this}equals(y){const E=this.elements,z=y.elements;for(let ne=0;ne<9;ne++)if(E[ne]!==z[ne])return!1;return!0}fromArray(y,E=0){for(let z=0;z<9;z++)this.elements[z]=y[z+E];return this}toArray(y=[],E=0){const z=this.elements;return y[E]=z[0],y[E+1]=z[1],y[E+2]=z[2],y[E+3]=z[3],y[E+4]=z[4],y[E+5]=z[5],y[E+6]=z[6],y[E+7]=z[7],y[E+8]=z[8],y}clone(){return new this.constructor().fromArray(this.elements)}}const fA=new nu;function s2(ee){for(let y=ee.length-1;y>=0;--y)if(ee[y]>=65535)return!0;return!1}const _0={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function sy(ee,y){return new _0[ee](y)}function WS(ee){return document.createElementNS("http://www.w3.org/1999/xhtml",ee)}function a2(){const ee=WS("canvas");return ee.style.display="block",ee}const QS={};function vc(ee){ee in QS||(QS[ee]=!0,console.warn(ee))}function l2(ee,y,E){return new Promise(function(z,ne){function ie(){switch(ee.clientWaitSync(y,ee.SYNC_FLUSH_COMMANDS_BIT,0)){case ee.WAIT_FAILED:ne();break;case ee.TIMEOUT_EXPIRED:setTimeout(ie,E);break;default:z()}}setTimeout(ie,E)})}function mo(ee){const y=ee.elements;y[2]=.5*y[2]+.5*y[3],y[6]=.5*y[6]+.5*y[7],y[10]=.5*y[10]+.5*y[11],y[14]=.5*y[14]+.5*y[15]}function Qd(ee){const y=ee.elements;y[11]===-1?(y[10]=-y[10]-1,y[14]=-y[14]):(y[10]=-y[10],y[14]=-y[14]+1)}const LC=new nu().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),m5=new nu().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function IC(){const ee={enabled:!0,workingColorSpace:Fm,spaces:{},convert:function(ne,ie,se){return this.enabled===!1||ie===se||!ie||!se||(this.spaces[ie].transfer===Ua&&(ne.r=Qf(ne.r),ne.g=Qf(ne.g),ne.b=Qf(ne.b)),this.spaces[ie].primaries!==this.spaces[se].primaries&&(ne.applyMatrix3(this.spaces[ie].toXYZ),ne.applyMatrix3(this.spaces[se].fromXYZ)),this.spaces[se].transfer===Ua&&(ne.r=Tx(ne.r),ne.g=Tx(ne.g),ne.b=Tx(ne.b))),ne},workingToColorSpace:function(ne,ie){return this.convert(ne,this.workingColorSpace,ie)},colorSpaceToWorking:function(ne,ie){return this.convert(ne,ie,this.workingColorSpace)},getPrimaries:function(ne){return this.spaces[ne].primaries},getTransfer:function(ne){return ne===yp?Cx:this.spaces[ne].transfer},getLuminanceCoefficients:function(ne,ie=this.workingColorSpace){return ne.fromArray(this.spaces[ie].luminanceCoefficients)},define:function(ne){Object.assign(this.spaces,ne)},_getMatrix:function(ne,ie,se){return ne.copy(this.spaces[ie].toXYZ).multiply(this.spaces[se].fromXYZ)},_getDrawingBufferColorSpace:function(ne){return this.spaces[ne].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(ne=this.workingColorSpace){return this.spaces[ne].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(ne,ie){return vc("THREE.ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),ee.workingToColorSpace(ne,ie)},toWorkingColorSpace:function(ne,ie){return vc("THREE.ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),ee.colorSpaceToWorking(ne,ie)}},y=[.64,.33,.3,.6,.15,.06],E=[.2126,.7152,.0722],z=[.3127,.329];return ee.define({[Fm]:{primaries:y,whitePoint:z,transfer:Cx,toXYZ:LC,fromXYZ:m5,luminanceCoefficients:E,workingColorSpaceConfig:{unpackColorSpace:Wf},outputColorSpaceConfig:{drawingBufferColorSpace:Wf}},[Wf]:{primaries:y,whitePoint:z,transfer:Ua,toXYZ:LC,fromXYZ:m5,luminanceCoefficients:E,outputColorSpaceConfig:{drawingBufferColorSpace:Wf}}}),ee}const su=IC();function Qf(ee){return ee<.04045?ee*.0773993808:Math.pow(ee*.9478672986+.0521327014,2.4)}function Tx(ee){return ee<.0031308?ee*12.92:1.055*Math.pow(ee,.41666)-.055}let hm;class v5{static getDataURL(y,E="image/png"){if(/^data:/i.test(y.src)||typeof HTMLCanvasElement=="undefined")return y.src;let z;if(y instanceof HTMLCanvasElement)z=y;else{hm===void 0&&(hm=WS("canvas")),hm.width=y.width,hm.height=y.height;const ne=hm.getContext("2d");y instanceof ImageData?ne.putImageData(y,0,0):ne.drawImage(y,0,0,y.width,y.height),z=hm}return z.toDataURL(E)}static sRGBToLinear(y){if(typeof HTMLImageElement!="undefined"&&y instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&y instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&y instanceof ImageBitmap){const E=WS("canvas");E.width=y.width,E.height=y.height;const z=E.getContext("2d");z.drawImage(y,0,0,y.width,y.height);const ne=z.getImageData(0,0,y.width,y.height),ie=ne.data;for(let se=0;se<ie.length;se++)ie[se]=Qf(ie[se]/255)*255;return z.putImageData(ne,0,0),E}else if(y.data){const E=y.data.slice(0);for(let z=0;z<E.length;z++)E instanceof Uint8Array||E instanceof Uint8ClampedArray?E[z]=Math.floor(Qf(E[z]/255)*255):E[z]=Qf(E[z]);return{data:E,width:y.width,height:y.height}}else return console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),y}}let y5=0;class pA{constructor(y=null){this.isSource=!0,Object.defineProperty(this,"id",{value:y5++}),this.uuid=pg(),this.data=y,this.dataReady=!0,this.version=0}getSize(y){const E=this.data;return E instanceof HTMLVideoElement?y.set(E.videoWidth,E.videoHeight):E!==null?y.set(E.width,E.height,E.depth||0):y.set(0,0,0),y}set needsUpdate(y){y===!0&&this.version++}toJSON(y){const E=y===void 0||typeof y=="string";if(!E&&y.images[this.uuid]!==void 0)return y.images[this.uuid];const z={uuid:this.uuid,url:""},ne=this.data;if(ne!==null){let ie;if(Array.isArray(ne)){ie=[];for(let se=0,ae=ne.length;se<ae;se++)ne[se].isDataTexture?ie.push(kC(ne[se].image)):ie.push(kC(ne[se]))}else ie=kC(ne);z.url=ie}return E||(y.images[this.uuid]=z),z}}function kC(ee){return typeof HTMLImageElement!="undefined"&&ee instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&ee instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&ee instanceof ImageBitmap?v5.getDataURL(ee):ee.data?{data:Array.from(ee.data),width:ee.width,height:ee.height,type:ee.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}let A5=0;const ZS=new yn;class nh extends Hg{constructor(y=nh.DEFAULT_IMAGE,E=nh.DEFAULT_MAPPING,z=pp,ne=pp,ie=qu,se=mp,ae=Ws,he=yh,pe=nh.DEFAULT_ANISOTROPY,ve=yp){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:A5++}),this.uuid=pg(),this.name="",this.source=new pA(y),this.mipmaps=[],this.mapping=E,this.channel=0,this.wrapS=z,this.wrapT=ne,this.magFilter=ie,this.minFilter=se,this.anisotropy=pe,this.format=ae,this.internalFormat=null,this.type=he,this.offset=new Yr(0,0),this.repeat=new Yr(1,1),this.center=new Yr(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new nu,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=ve,this.userData={},this.updateRanges=[],this.version=0,this.onUpdate=null,this.renderTarget=null,this.isRenderTargetTexture=!1,this.isArrayTexture=!!(y&&y.depth&&y.depth>1),this.pmremVersion=0}get width(){return this.source.getSize(ZS).x}get height(){return this.source.getSize(ZS).y}get depth(){return this.source.getSize(ZS).z}get image(){return this.source.data}set image(y=null){this.source.data=y}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(y,E){this.updateRanges.push({start:y,count:E})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(y){return this.name=y.name,this.source=y.source,this.mipmaps=y.mipmaps.slice(0),this.mapping=y.mapping,this.channel=y.channel,this.wrapS=y.wrapS,this.wrapT=y.wrapT,this.magFilter=y.magFilter,this.minFilter=y.minFilter,this.anisotropy=y.anisotropy,this.format=y.format,this.internalFormat=y.internalFormat,this.type=y.type,this.offset.copy(y.offset),this.repeat.copy(y.repeat),this.center.copy(y.center),this.rotation=y.rotation,this.matrixAutoUpdate=y.matrixAutoUpdate,this.matrix.copy(y.matrix),this.generateMipmaps=y.generateMipmaps,this.premultiplyAlpha=y.premultiplyAlpha,this.flipY=y.flipY,this.unpackAlignment=y.unpackAlignment,this.colorSpace=y.colorSpace,this.renderTarget=y.renderTarget,this.isRenderTargetTexture=y.isRenderTargetTexture,this.isArrayTexture=y.isArrayTexture,this.userData=JSON.parse(JSON.stringify(y.userData)),this.needsUpdate=!0,this}setValues(y){for(const E in y){const z=y[E];if(z===void 0){console.warn(`THREE.Texture.setValues(): parameter '${E}' has value of undefined.`);continue}const ne=this[E];if(ne===void 0){console.warn(`THREE.Texture.setValues(): property '${E}' does not exist.`);continue}ne&&z&&ne.isVector2&&z.isVector2||ne&&z&&ne.isVector3&&z.isVector3||ne&&z&&ne.isMatrix3&&z.isMatrix3?ne.copy(z):this[E]=z}}toJSON(y){const E=y===void 0||typeof y=="string";if(!E&&y.textures[this.uuid]!==void 0)return y.textures[this.uuid];const z={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(y).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(z.userData=this.userData),E||(y.textures[this.uuid]=z),z}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(y){if(this.mapping!==Xh)return y;if(y.applyMatrix3(this.matrix),y.x<0||y.x>1)switch(this.wrapS){case fp:y.x=y.x-Math.floor(y.x);break;case pp:y.x=y.x<0?0:1;break;case um:Math.abs(Math.floor(y.x)%2)===1?y.x=Math.ceil(y.x)-y.x:y.x=y.x-Math.floor(y.x);break}if(y.y<0||y.y>1)switch(this.wrapT){case fp:y.y=y.y-Math.floor(y.y);break;case pp:y.y=y.y<0?0:1;break;case um:Math.abs(Math.floor(y.y)%2)===1?y.y=Math.ceil(y.y)-y.y:y.y=y.y-Math.floor(y.y);break}return this.flipY&&(y.y=1-y.y),y}set needsUpdate(y){y===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(y){y===!0&&this.pmremVersion++}}nh.DEFAULT_IMAGE=null,nh.DEFAULT_MAPPING=Xh,nh.DEFAULT_ANISOTROPY=1;class Ul{constructor(y=0,E=0,z=0,ne=1){Ul.prototype.isVector4=!0,this.x=y,this.y=E,this.z=z,this.w=ne}get width(){return this.z}set width(y){this.z=y}get height(){return this.w}set height(y){this.w=y}set(y,E,z,ne){return this.x=y,this.y=E,this.z=z,this.w=ne,this}setScalar(y){return this.x=y,this.y=y,this.z=y,this.w=y,this}setX(y){return this.x=y,this}setY(y){return this.y=y,this}setZ(y){return this.z=y,this}setW(y){return this.w=y,this}setComponent(y,E){switch(y){case 0:this.x=E;break;case 1:this.y=E;break;case 2:this.z=E;break;case 3:this.w=E;break;default:throw new Error("index is out of range: "+y)}return this}getComponent(y){switch(y){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+y)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(y){return this.x=y.x,this.y=y.y,this.z=y.z,this.w=y.w!==void 0?y.w:1,this}add(y){return this.x+=y.x,this.y+=y.y,this.z+=y.z,this.w+=y.w,this}addScalar(y){return this.x+=y,this.y+=y,this.z+=y,this.w+=y,this}addVectors(y,E){return this.x=y.x+E.x,this.y=y.y+E.y,this.z=y.z+E.z,this.w=y.w+E.w,this}addScaledVector(y,E){return this.x+=y.x*E,this.y+=y.y*E,this.z+=y.z*E,this.w+=y.w*E,this}sub(y){return this.x-=y.x,this.y-=y.y,this.z-=y.z,this.w-=y.w,this}subScalar(y){return this.x-=y,this.y-=y,this.z-=y,this.w-=y,this}subVectors(y,E){return this.x=y.x-E.x,this.y=y.y-E.y,this.z=y.z-E.z,this.w=y.w-E.w,this}multiply(y){return this.x*=y.x,this.y*=y.y,this.z*=y.z,this.w*=y.w,this}multiplyScalar(y){return this.x*=y,this.y*=y,this.z*=y,this.w*=y,this}applyMatrix4(y){const E=this.x,z=this.y,ne=this.z,ie=this.w,se=y.elements;return this.x=se[0]*E+se[4]*z+se[8]*ne+se[12]*ie,this.y=se[1]*E+se[5]*z+se[9]*ne+se[13]*ie,this.z=se[2]*E+se[6]*z+se[10]*ne+se[14]*ie,this.w=se[3]*E+se[7]*z+se[11]*ne+se[15]*ie,this}divide(y){return this.x/=y.x,this.y/=y.y,this.z/=y.z,this.w/=y.w,this}divideScalar(y){return this.multiplyScalar(1/y)}setAxisAngleFromQuaternion(y){this.w=2*Math.acos(y.w);const E=Math.sqrt(1-y.w*y.w);return E<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=y.x/E,this.y=y.y/E,this.z=y.z/E),this}setAxisAngleFromRotationMatrix(y){let E,z,ne,ie;const he=y.elements,pe=he[0],ve=he[4],xe=he[8],Se=he[1],Be=he[5],De=he[9],Re=he[2],Oe=he[6],Le=he[10];if(Math.abs(ve-Se)<.01&&Math.abs(xe-Re)<.01&&Math.abs(De-Oe)<.01){if(Math.abs(ve+Se)<.1&&Math.abs(xe+Re)<.1&&Math.abs(De+Oe)<.1&&Math.abs(pe+Be+Le-3)<.1)return this.set(1,0,0,0),this;E=Math.PI;const $e=(pe+1)/2,_e=(Be+1)/2,st=(Le+1)/2,ct=(ve+Se)/4,ut=(xe+Re)/4,ht=(De+Oe)/4;return $e>_e&&$e>st?$e<.01?(z=0,ne=.707106781,ie=.707106781):(z=Math.sqrt($e),ne=ct/z,ie=ut/z):_e>st?_e<.01?(z=.707106781,ne=0,ie=.707106781):(ne=Math.sqrt(_e),z=ct/ne,ie=ht/ne):st<.01?(z=.707106781,ne=.707106781,ie=0):(ie=Math.sqrt(st),z=ut/ie,ne=ht/ie),this.set(z,ne,ie,E),this}let Je=Math.sqrt((Oe-De)*(Oe-De)+(xe-Re)*(xe-Re)+(Se-ve)*(Se-ve));return Math.abs(Je)<.001&&(Je=1),this.x=(Oe-De)/Je,this.y=(xe-Re)/Je,this.z=(Se-ve)/Je,this.w=Math.acos((pe+Be+Le-1)/2),this}setFromMatrixPosition(y){const E=y.elements;return this.x=E[12],this.y=E[13],this.z=E[14],this.w=E[15],this}min(y){return this.x=Math.min(this.x,y.x),this.y=Math.min(this.y,y.y),this.z=Math.min(this.z,y.z),this.w=Math.min(this.w,y.w),this}max(y){return this.x=Math.max(this.x,y.x),this.y=Math.max(this.y,y.y),this.z=Math.max(this.z,y.z),this.w=Math.max(this.w,y.w),this}clamp(y,E){return this.x=Bu(this.x,y.x,E.x),this.y=Bu(this.y,y.y,E.y),this.z=Bu(this.z,y.z,E.z),this.w=Bu(this.w,y.w,E.w),this}clampScalar(y,E){return this.x=Bu(this.x,y,E),this.y=Bu(this.y,y,E),this.z=Bu(this.z,y,E),this.w=Bu(this.w,y,E),this}clampLength(y,E){const z=this.length();return this.divideScalar(z||1).multiplyScalar(Bu(z,y,E))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(y){return this.x*y.x+this.y*y.y+this.z*y.z+this.w*y.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(y){return this.normalize().multiplyScalar(y)}lerp(y,E){return this.x+=(y.x-this.x)*E,this.y+=(y.y-this.y)*E,this.z+=(y.z-this.z)*E,this.w+=(y.w-this.w)*E,this}lerpVectors(y,E,z){return this.x=y.x+(E.x-y.x)*z,this.y=y.y+(E.y-y.y)*z,this.z=y.z+(E.z-y.z)*z,this.w=y.w+(E.w-y.w)*z,this}equals(y){return y.x===this.x&&y.y===this.y&&y.z===this.z&&y.w===this.w}fromArray(y,E=0){return this.x=y[E],this.y=y[E+1],this.z=y[E+2],this.w=y[E+3],this}toArray(y=[],E=0){return y[E]=this.x,y[E+1]=this.y,y[E+2]=this.z,y[E+3]=this.w,y}fromBufferAttribute(y,E){return this.x=y.getX(E),this.y=y.getY(E),this.z=y.getZ(E),this.w=y.getW(E),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class p0 extends Hg{constructor(y=1,E=1,z={}){super(),z=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:qu,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1},z),this.isRenderTarget=!0,this.width=y,this.height=E,this.depth=z.depth,this.scissor=new Ul(0,0,y,E),this.scissorTest=!1,this.viewport=new Ul(0,0,y,E);const ne={width:y,height:E,depth:z.depth},ie=new nh(ne);this.textures=[];const se=z.count;for(let ae=0;ae<se;ae++)this.textures[ae]=ie.clone(),this.textures[ae].isRenderTargetTexture=!0,this.textures[ae].renderTarget=this;this._setTextureOptions(z),this.depthBuffer=z.depthBuffer,this.stencilBuffer=z.stencilBuffer,this.resolveDepthBuffer=z.resolveDepthBuffer,this.resolveStencilBuffer=z.resolveStencilBuffer,this._depthTexture=null,this.depthTexture=z.depthTexture,this.samples=z.samples,this.multiview=z.multiview}_setTextureOptions(y={}){const E={minFilter:qu,generateMipmaps:!1,flipY:!1,internalFormat:null};y.mapping!==void 0&&(E.mapping=y.mapping),y.wrapS!==void 0&&(E.wrapS=y.wrapS),y.wrapT!==void 0&&(E.wrapT=y.wrapT),y.wrapR!==void 0&&(E.wrapR=y.wrapR),y.magFilter!==void 0&&(E.magFilter=y.magFilter),y.minFilter!==void 0&&(E.minFilter=y.minFilter),y.format!==void 0&&(E.format=y.format),y.type!==void 0&&(E.type=y.type),y.anisotropy!==void 0&&(E.anisotropy=y.anisotropy),y.colorSpace!==void 0&&(E.colorSpace=y.colorSpace),y.flipY!==void 0&&(E.flipY=y.flipY),y.generateMipmaps!==void 0&&(E.generateMipmaps=y.generateMipmaps),y.internalFormat!==void 0&&(E.internalFormat=y.internalFormat);for(let z=0;z<this.textures.length;z++)this.textures[z].setValues(E)}get texture(){return this.textures[0]}set texture(y){this.textures[0]=y}set depthTexture(y){this._depthTexture!==null&&(this._depthTexture.renderTarget=null),y!==null&&(y.renderTarget=this),this._depthTexture=y}get depthTexture(){return this._depthTexture}setSize(y,E,z=1){if(this.width!==y||this.height!==E||this.depth!==z){this.width=y,this.height=E,this.depth=z;for(let ne=0,ie=this.textures.length;ne<ie;ne++)this.textures[ne].image.width=y,this.textures[ne].image.height=E,this.textures[ne].image.depth=z,this.textures[ne].isArrayTexture=this.textures[ne].image.depth>1;this.dispose()}this.viewport.set(0,0,y,E),this.scissor.set(0,0,y,E)}clone(){return new this.constructor().copy(this)}copy(y){this.width=y.width,this.height=y.height,this.depth=y.depth,this.scissor.copy(y.scissor),this.scissorTest=y.scissorTest,this.viewport.copy(y.viewport),this.textures.length=0;for(let E=0,z=y.textures.length;E<z;E++){this.textures[E]=y.textures[E].clone(),this.textures[E].isRenderTargetTexture=!0,this.textures[E].renderTarget=this;const ne=Object.assign({},y.textures[E].image);this.textures[E].source=new pA(ne)}return this.depthBuffer=y.depthBuffer,this.stencilBuffer=y.stencilBuffer,this.resolveDepthBuffer=y.resolveDepthBuffer,this.resolveStencilBuffer=y.resolveStencilBuffer,y.depthTexture!==null&&(this.depthTexture=y.depthTexture.clone()),this.samples=y.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Kp extends p0{constructor(y=1,E=1,z={}){super(y,E,z),this.isWebGLRenderTarget=!0}}class Dx extends nh{constructor(y=null,E=1,z=1,ne=1){super(null),this.isDataArrayTexture=!0,this.image={data:y,width:E,height:z,depth:ne},this.magFilter=Ic,this.minFilter=Ic,this.wrapR=pp,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.layerUpdates=new Set}addLayerUpdate(y){this.layerUpdates.add(y)}clearLayerUpdates(){this.layerUpdates.clear()}}class x5 extends null{constructor(y=1,E=1,z=1,ne={}){super(y,E,ne),this.isWebGLArrayRenderTarget=!0,this.depth=z,this.texture=new Dx(null,y,E,z),this._setTextureOptions(ne),this.texture.isRenderTargetTexture=!0}}class OC extends nh{constructor(y=null,E=1,z=1,ne=1){super(null),this.isData3DTexture=!0,this.image={data:y,width:E,height:z,depth:ne},this.magFilter=Ic,this.minFilter=Ic,this.wrapR=pp,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class w5 extends null{constructor(y=1,E=1,z=1,ne={}){super(y,E,ne),this.isWebGL3DRenderTarget=!0,this.depth=z,this.texture=new OC(null,y,E,z),this._setTextureOptions(ne),this.texture.isRenderTargetTexture=!0}}class Zf{constructor(y=new yn(1/0,1/0,1/0),E=new yn(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=y,this.max=E}set(y,E){return this.min.copy(y),this.max.copy(E),this}setFromArray(y){this.makeEmpty();for(let E=0,z=y.length;E<z;E+=3)this.expandByPoint(Im.fromArray(y,E));return this}setFromBufferAttribute(y){this.makeEmpty();for(let E=0,z=y.count;E<z;E++)this.expandByPoint(Im.fromBufferAttribute(y,E));return this}setFromPoints(y){this.makeEmpty();for(let E=0,z=y.length;E<z;E++)this.expandByPoint(y[E]);return this}setFromCenterAndSize(y,E){const z=Im.copy(E).multiplyScalar(.5);return this.min.copy(y).sub(z),this.max.copy(y).add(z),this}setFromObject(y,E=!1){return this.makeEmpty(),this.expandByObject(y,E)}clone(){return new this.constructor().copy(this)}copy(y){return this.min.copy(y.min),this.max.copy(y.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(y){return this.isEmpty()?y.set(0,0,0):y.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(y){return this.isEmpty()?y.set(0,0,0):y.subVectors(this.max,this.min)}expandByPoint(y){return this.min.min(y),this.max.max(y),this}expandByVector(y){return this.min.sub(y),this.max.add(y),this}expandByScalar(y){return this.min.addScalar(-y),this.max.addScalar(y),this}expandByObject(y,E=!1){y.updateWorldMatrix(!1,!1);const z=y.geometry;if(z!==void 0){const ie=z.getAttribute("position");if(E===!0&&ie!==void 0&&y.isInstancedMesh!==!0)for(let se=0,ae=ie.count;se<ae;se++)y.isMesh===!0?y.getVertexPosition(se,Im):Im.fromBufferAttribute(ie,se),Im.applyMatrix4(y.matrixWorld),this.expandByPoint(Im);else y.boundingBox!==void 0?(y.boundingBox===null&&y.computeBoundingBox(),Ca.copy(y.boundingBox)):(z.boundingBox===null&&z.computeBoundingBox(),Ca.copy(z.boundingBox)),Ca.applyMatrix4(y.matrixWorld),this.union(Ca)}const ne=y.children;for(let ie=0,se=ne.length;ie<se;ie++)this.expandByObject(ne[ie],E);return this}containsPoint(y){return y.x>=this.min.x&&y.x<=this.max.x&&y.y>=this.min.y&&y.y<=this.max.y&&y.z>=this.min.z&&y.z<=this.max.z}containsBox(y){return this.min.x<=y.min.x&&y.max.x<=this.max.x&&this.min.y<=y.min.y&&y.max.y<=this.max.y&&this.min.z<=y.min.z&&y.max.z<=this.max.z}getParameter(y,E){return E.set((y.x-this.min.x)/(this.max.x-this.min.x),(y.y-this.min.y)/(this.max.y-this.min.y),(y.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(y){return y.max.x>=this.min.x&&y.min.x<=this.max.x&&y.max.y>=this.min.y&&y.min.y<=this.max.y&&y.max.z>=this.min.z&&y.min.z<=this.max.z}intersectsSphere(y){return this.clampPoint(y.center,Im),Im.distanceToSquared(y.center)<=y.radius*y.radius}intersectsPlane(y){let E,z;return y.normal.x>0?(E=y.normal.x*this.min.x,z=y.normal.x*this.max.x):(E=y.normal.x*this.max.x,z=y.normal.x*this.min.x),y.normal.y>0?(E+=y.normal.y*this.min.y,z+=y.normal.y*this.max.y):(E+=y.normal.y*this.max.y,z+=y.normal.y*this.min.y),y.normal.z>0?(E+=y.normal.z*this.min.z,z+=y.normal.z*this.max.z):(E+=y.normal.z*this.max.z,z+=y.normal.z*this.min.z),E<=-y.constant&&z>=-y.constant}intersectsTriangle(y){if(this.isEmpty())return!1;this.getCenter(dd),YS.subVectors(this.max,dd),gA.subVectors(y.a,dd),ar.subVectors(y.b,dd),gg.subVectors(y.c,dd),ay.subVectors(ar,gA),ly.subVectors(gg,ar),mA.subVectors(gA,gg);let E=[0,-ay.z,ay.y,0,-ly.z,ly.y,0,-mA.z,mA.y,ay.z,0,-ay.x,ly.z,0,-ly.x,mA.z,0,-mA.x,-ay.y,ay.x,0,-ly.y,ly.x,0,-mA.y,mA.x,0];return!Fx(E,gA,ar,gg,YS)||(E=[1,0,0,0,1,0,0,0,1],!Fx(E,gA,ar,gg,YS))?!1:(Nx.crossVectors(ay,ly),E=[Nx.x,Nx.y,Nx.z],Fx(E,gA,ar,gg,YS))}clampPoint(y,E){return E.copy(y).clamp(this.min,this.max)}distanceToPoint(y){return this.clampPoint(y,Im).distanceTo(y)}getBoundingSphere(y){return this.isEmpty()?y.makeEmpty():(this.getCenter(y.center),y.radius=this.getSize(Im).length()*.5),y}intersect(y){return this.min.max(y.min),this.max.min(y.max),this.isEmpty()&&this.makeEmpty(),this}union(y){return this.min.min(y.min),this.max.max(y.max),this}applyMatrix4(y){return this.isEmpty()?this:(Sp[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(y),Sp[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(y),Sp[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(y),Sp[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(y),Sp[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(y),Sp[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(y),Sp[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(y),Sp[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(y),this.setFromPoints(Sp),this)}translate(y){return this.min.add(y),this.max.add(y),this}equals(y){return y.min.equals(this.min)&&y.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(y){return this.min.fromArray(y.min),this.max.fromArray(y.max),this}}const Sp=[new yn,new yn,new yn,new yn,new yn,new yn,new yn,new yn],Im=new yn,Ca=new Zf,gA=new yn,ar=new yn,gg=new yn,ay=new yn,ly=new yn,mA=new yn,dd=new yn,YS=new yn,Nx=new yn,$0=new yn;function Fx(ee,y,E,z,ne){for(let ie=0,se=ee.length-3;ie<=se;ie+=3){$0.fromArray(ee,ie);const ae=ne.x*Math.abs($0.x)+ne.y*Math.abs($0.y)+ne.z*Math.abs($0.z),he=y.dot($0),pe=E.dot($0),ve=z.dot($0);if(Math.max(-Math.max(he,pe,ve),Math.min(he,pe,ve))>ae)return!1}return!0}const S5=new Zf,dw=new yn,KS=new yn;class Yf{constructor(y=new yn,E=-1){this.isSphere=!0,this.center=y,this.radius=E}set(y,E){return this.center.copy(y),this.radius=E,this}setFromPoints(y,E){const z=this.center;E!==void 0?z.copy(E):S5.setFromPoints(y).getCenter(z);let ne=0;for(let ie=0,se=y.length;ie<se;ie++)ne=Math.max(ne,z.distanceToSquared(y[ie]));return this.radius=Math.sqrt(ne),this}copy(y){return this.center.copy(y.center),this.radius=y.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(y){return y.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(y){return y.distanceTo(this.center)-this.radius}intersectsSphere(y){const E=this.radius+y.radius;return y.center.distanceToSquared(this.center)<=E*E}intersectsBox(y){return y.intersectsSphere(this)}intersectsPlane(y){return Math.abs(y.distanceToPoint(this.center))<=this.radius}clampPoint(y,E){const z=this.center.distanceToSquared(y);return E.copy(y),z>this.radius*this.radius&&(E.sub(this.center).normalize(),E.multiplyScalar(this.radius).add(this.center)),E}getBoundingBox(y){return this.isEmpty()?(y.makeEmpty(),y):(y.set(this.center,this.center),y.expandByScalar(this.radius),y)}applyMatrix4(y){return this.center.applyMatrix4(y),this.radius=this.radius*y.getMaxScaleOnAxis(),this}translate(y){return this.center.add(y),this}expandByPoint(y){if(this.isEmpty())return this.center.copy(y),this.radius=0,this;dw.subVectors(y,this.center);const E=dw.lengthSq();if(E>this.radius*this.radius){const z=Math.sqrt(E),ne=(z-this.radius)*.5;this.center.addScaledVector(dw,ne/z),this.radius+=ne}return this}union(y){return y.isEmpty()?this:this.isEmpty()?(this.copy(y),this):(this.center.equals(y.center)===!0?this.radius=Math.max(this.radius,y.radius):(KS.subVectors(y.center,this.center).setLength(y.radius),this.expandByPoint(dw.copy(y.center).add(KS)),this.expandByPoint(dw.copy(y.center).sub(KS))),this)}equals(y){return y.center.equals(this.center)&&y.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(y){return this.radius=y.radius,this.center.fromArray(y.center),this}}const ev=new yn,RC=new yn,JS=new yn,vA=new yn,fw=new yn,pw=new yn,ts=new yn;class yA{constructor(y=new yn,E=new yn(0,0,-1)){this.origin=y,this.direction=E}set(y,E){return this.origin.copy(y),this.direction.copy(E),this}copy(y){return this.origin.copy(y.origin),this.direction.copy(y.direction),this}at(y,E){return E.copy(this.origin).addScaledVector(this.direction,y)}lookAt(y){return this.direction.copy(y).sub(this.origin).normalize(),this}recast(y){return this.origin.copy(this.at(y,ev)),this}closestPointToPoint(y,E){E.subVectors(y,this.origin);const z=E.dot(this.direction);return z<0?E.copy(this.origin):E.copy(this.origin).addScaledVector(this.direction,z)}distanceToPoint(y){return Math.sqrt(this.distanceSqToPoint(y))}distanceSqToPoint(y){const E=ev.subVectors(y,this.origin).dot(this.direction);return E<0?this.origin.distanceToSquared(y):(ev.copy(this.origin).addScaledVector(this.direction,E),ev.distanceToSquared(y))}distanceSqToSegment(y,E,z,ne){RC.copy(y).add(E).multiplyScalar(.5),JS.copy(E).sub(y).normalize(),vA.copy(this.origin).sub(RC);const ie=y.distanceTo(E)*.5,se=-this.direction.dot(JS),ae=vA.dot(this.direction),he=-vA.dot(JS),pe=vA.lengthSq(),ve=Math.abs(1-se*se);let xe,Se,Be,De;if(ve>0)if(xe=se*he-ae,Se=se*ae-he,De=ie*ve,xe>=0)if(Se>=-De)if(Se<=De){const Re=1/ve;xe*=Re,Se*=Re,Be=xe*(xe+se*Se+2*ae)+Se*(se*xe+Se+2*he)+pe}else Se=ie,xe=Math.max(0,-(se*Se+ae)),Be=-xe*xe+Se*(Se+2*he)+pe;else Se=-ie,xe=Math.max(0,-(se*Se+ae)),Be=-xe*xe+Se*(Se+2*he)+pe;else Se<=-De?(xe=Math.max(0,-(-se*ie+ae)),Se=xe>0?-ie:Math.min(Math.max(-ie,-he),ie),Be=-xe*xe+Se*(Se+2*he)+pe):Se<=De?(xe=0,Se=Math.min(Math.max(-ie,-he),ie),Be=Se*(Se+2*he)+pe):(xe=Math.max(0,-(se*ie+ae)),Se=xe>0?ie:Math.min(Math.max(-ie,-he),ie),Be=-xe*xe+Se*(Se+2*he)+pe);else Se=se>0?-ie:ie,xe=Math.max(0,-(se*Se+ae)),Be=-xe*xe+Se*(Se+2*he)+pe;return z&&z.copy(this.origin).addScaledVector(this.direction,xe),ne&&ne.copy(RC).addScaledVector(JS,Se),Be}intersectSphere(y,E){ev.subVectors(y.center,this.origin);const z=ev.dot(this.direction),ne=ev.dot(ev)-z*z,ie=y.radius*y.radius;if(ne>ie)return null;const se=Math.sqrt(ie-ne),ae=z-se,he=z+se;return he<0?null:ae<0?this.at(he,E):this.at(ae,E)}intersectsSphere(y){return y.radius<0?!1:this.distanceSqToPoint(y.center)<=y.radius*y.radius}distanceToPlane(y){const E=y.normal.dot(this.direction);if(E===0)return y.distanceToPoint(this.origin)===0?0:null;const z=-(this.origin.dot(y.normal)+y.constant)/E;return z>=0?z:null}intersectPlane(y,E){const z=this.distanceToPlane(y);return z===null?null:this.at(z,E)}intersectsPlane(y){const E=y.distanceToPoint(this.origin);return E===0||y.normal.dot(this.direction)*E<0}intersectBox(y,E){let z,ne,ie,se,ae,he;const pe=1/this.direction.x,ve=1/this.direction.y,xe=1/this.direction.z,Se=this.origin;return pe>=0?(z=(y.min.x-Se.x)*pe,ne=(y.max.x-Se.x)*pe):(z=(y.max.x-Se.x)*pe,ne=(y.min.x-Se.x)*pe),ve>=0?(ie=(y.min.y-Se.y)*ve,se=(y.max.y-Se.y)*ve):(ie=(y.max.y-Se.y)*ve,se=(y.min.y-Se.y)*ve),z>se||ie>ne||((ie>z||isNaN(z))&&(z=ie),(se<ne||isNaN(ne))&&(ne=se),xe>=0?(ae=(y.min.z-Se.z)*xe,he=(y.max.z-Se.z)*xe):(ae=(y.max.z-Se.z)*xe,he=(y.min.z-Se.z)*xe),z>he||ae>ne)||((ae>z||z!==z)&&(z=ae),(he<ne||ne!==ne)&&(ne=he),ne<0)?null:this.at(z>=0?z:ne,E)}intersectsBox(y){return this.intersectBox(y,ev)!==null}intersectTriangle(y,E,z,ne,ie){fw.subVectors(E,y),pw.subVectors(z,y),ts.crossVectors(fw,pw);let se=this.direction.dot(ts),ae;if(se>0){if(ne)return null;ae=1}else if(se<0)ae=-1,se=-se;else return null;vA.subVectors(this.origin,y);const he=ae*this.direction.dot(pw.crossVectors(vA,pw));if(he<0)return null;const pe=ae*this.direction.dot(fw.cross(vA));if(pe<0||he+pe>se)return null;const ve=-ae*vA.dot(ts);return ve<0?null:this.at(ve/se,ie)}applyMatrix4(y){return this.origin.applyMatrix4(y),this.direction.transformDirection(y),this}equals(y){return y.origin.equals(this.origin)&&y.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class Xa{constructor(y,E,z,ne,ie,se,ae,he,pe,ve,xe,Se,Be,De,Re,Oe){Xa.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],y!==void 0&&this.set(y,E,z,ne,ie,se,ae,he,pe,ve,xe,Se,Be,De,Re,Oe)}set(y,E,z,ne,ie,se,ae,he,pe,ve,xe,Se,Be,De,Re,Oe){const Le=this.elements;return Le[0]=y,Le[4]=E,Le[8]=z,Le[12]=ne,Le[1]=ie,Le[5]=se,Le[9]=ae,Le[13]=he,Le[2]=pe,Le[6]=ve,Le[10]=xe,Le[14]=Se,Le[3]=Be,Le[7]=De,Le[11]=Re,Le[15]=Oe,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Xa().fromArray(this.elements)}copy(y){const E=this.elements,z=y.elements;return E[0]=z[0],E[1]=z[1],E[2]=z[2],E[3]=z[3],E[4]=z[4],E[5]=z[5],E[6]=z[6],E[7]=z[7],E[8]=z[8],E[9]=z[9],E[10]=z[10],E[11]=z[11],E[12]=z[12],E[13]=z[13],E[14]=z[14],E[15]=z[15],this}copyPosition(y){const E=this.elements,z=y.elements;return E[12]=z[12],E[13]=z[13],E[14]=z[14],this}setFromMatrix3(y){const E=y.elements;return this.set(E[0],E[3],E[6],0,E[1],E[4],E[7],0,E[2],E[5],E[8],0,0,0,0,1),this}extractBasis(y,E,z){return y.setFromMatrixColumn(this,0),E.setFromMatrixColumn(this,1),z.setFromMatrixColumn(this,2),this}makeBasis(y,E,z){return this.set(y.x,E.x,z.x,0,y.y,E.y,z.y,0,y.z,E.z,z.z,0,0,0,0,1),this}extractRotation(y){const E=this.elements,z=y.elements,ne=1/Lx.setFromMatrixColumn(y,0).length(),ie=1/Lx.setFromMatrixColumn(y,1).length(),se=1/Lx.setFromMatrixColumn(y,2).length();return E[0]=z[0]*ne,E[1]=z[1]*ne,E[2]=z[2]*ne,E[3]=0,E[4]=z[4]*ie,E[5]=z[5]*ie,E[6]=z[6]*ie,E[7]=0,E[8]=z[8]*se,E[9]=z[9]*se,E[10]=z[10]*se,E[11]=0,E[12]=0,E[13]=0,E[14]=0,E[15]=1,this}makeRotationFromEuler(y){const E=this.elements,z=y.x,ne=y.y,ie=y.z,se=Math.cos(z),ae=Math.sin(z),he=Math.cos(ne),pe=Math.sin(ne),ve=Math.cos(ie),xe=Math.sin(ie);if(y.order==="XYZ"){const Se=se*ve,Be=se*xe,De=ae*ve,Re=ae*xe;E[0]=he*ve,E[4]=-he*xe,E[8]=pe,E[1]=Be+De*pe,E[5]=Se-Re*pe,E[9]=-ae*he,E[2]=Re-Se*pe,E[6]=De+Be*pe,E[10]=se*he}else if(y.order==="YXZ"){const Se=he*ve,Be=he*xe,De=pe*ve,Re=pe*xe;E[0]=Se+Re*ae,E[4]=De*ae-Be,E[8]=se*pe,E[1]=se*xe,E[5]=se*ve,E[9]=-ae,E[2]=Be*ae-De,E[6]=Re+Se*ae,E[10]=se*he}else if(y.order==="ZXY"){const Se=he*ve,Be=he*xe,De=pe*ve,Re=pe*xe;E[0]=Se-Re*ae,E[4]=-se*xe,E[8]=De+Be*ae,E[1]=Be+De*ae,E[5]=se*ve,E[9]=Re-Se*ae,E[2]=-se*pe,E[6]=ae,E[10]=se*he}else if(y.order==="ZYX"){const Se=se*ve,Be=se*xe,De=ae*ve,Re=ae*xe;E[0]=he*ve,E[4]=De*pe-Be,E[8]=Se*pe+Re,E[1]=he*xe,E[5]=Re*pe+Se,E[9]=Be*pe-De,E[2]=-pe,E[6]=ae*he,E[10]=se*he}else if(y.order==="YZX"){const Se=se*he,Be=se*pe,De=ae*he,Re=ae*pe;E[0]=he*ve,E[4]=Re-Se*xe,E[8]=De*xe+Be,E[1]=xe,E[5]=se*ve,E[9]=-ae*ve,E[2]=-pe*ve,E[6]=Be*xe+De,E[10]=Se-Re*xe}else if(y.order==="XZY"){const Se=se*he,Be=se*pe,De=ae*he,Re=ae*pe;E[0]=he*ve,E[4]=-xe,E[8]=pe*ve,E[1]=Se*xe+Re,E[5]=se*ve,E[9]=Be*xe-De,E[2]=De*xe-Be,E[6]=ae*ve,E[10]=Re*xe+Se}return E[3]=0,E[7]=0,E[11]=0,E[12]=0,E[13]=0,E[14]=0,E[15]=1,this}makeRotationFromQuaternion(y){return this.compose(bd,y,Ui)}lookAt(y,E,z){const ne=this.elements;return Md.subVectors(y,E),Md.lengthSq()===0&&(Md.z=1),Md.normalize(),dm.crossVectors(z,Md),dm.lengthSq()===0&&(Math.abs(z.z)===1?Md.x+=1e-4:Md.z+=1e-4,Md.normalize(),dm.crossVectors(z,Md)),dm.normalize(),qS.crossVectors(Md,dm),ne[0]=dm.x,ne[4]=qS.x,ne[8]=Md.x,ne[1]=dm.y,ne[5]=qS.y,ne[9]=Md.y,ne[2]=dm.z,ne[6]=qS.z,ne[10]=Md.z,this}multiply(y){return this.multiplyMatrices(this,y)}premultiply(y){return this.multiplyMatrices(y,this)}multiplyMatrices(y,E){const z=y.elements,ne=E.elements,ie=this.elements,se=z[0],ae=z[4],he=z[8],pe=z[12],ve=z[1],xe=z[5],Se=z[9],Be=z[13],De=z[2],Re=z[6],Oe=z[10],Le=z[14],Je=z[3],$e=z[7],_e=z[11],st=z[15],ct=ne[0],ut=ne[4],ht=ne[8],pt=ne[12],gt=ne[1],zt=ne[5],cn=ne[9],Tn=ne[13],Zn=ne[2],Nn=ne[6],di=ne[10],yi=ne[14],bn=ne[3],Sn=ne[7],ki=ne[11],ti=ne[15];return ie[0]=se*ct+ae*gt+he*Zn+pe*bn,ie[4]=se*ut+ae*zt+he*Nn+pe*Sn,ie[8]=se*ht+ae*cn+he*di+pe*ki,ie[12]=se*pt+ae*Tn+he*yi+pe*ti,ie[1]=ve*ct+xe*gt+Se*Zn+Be*bn,ie[5]=ve*ut+xe*zt+Se*Nn+Be*Sn,ie[9]=ve*ht+xe*cn+Se*di+Be*ki,ie[13]=ve*pt+xe*Tn+Se*yi+Be*ti,ie[2]=De*ct+Re*gt+Oe*Zn+Le*bn,ie[6]=De*ut+Re*zt+Oe*Nn+Le*Sn,ie[10]=De*ht+Re*cn+Oe*di+Le*ki,ie[14]=De*pt+Re*Tn+Oe*yi+Le*ti,ie[3]=Je*ct+$e*gt+_e*Zn+st*bn,ie[7]=Je*ut+$e*zt+_e*Nn+st*Sn,ie[11]=Je*ht+$e*cn+_e*di+st*ki,ie[15]=Je*pt+$e*Tn+_e*yi+st*ti,this}multiplyScalar(y){const E=this.elements;return E[0]*=y,E[4]*=y,E[8]*=y,E[12]*=y,E[1]*=y,E[5]*=y,E[9]*=y,E[13]*=y,E[2]*=y,E[6]*=y,E[10]*=y,E[14]*=y,E[3]*=y,E[7]*=y,E[11]*=y,E[15]*=y,this}determinant(){const y=this.elements,E=y[0],z=y[4],ne=y[8],ie=y[12],se=y[1],ae=y[5],he=y[9],pe=y[13],ve=y[2],xe=y[6],Se=y[10],Be=y[14],De=y[3],Re=y[7],Oe=y[11],Le=y[15];return De*(+ie*he*xe-ne*pe*xe-ie*ae*Se+z*pe*Se+ne*ae*Be-z*he*Be)+Re*(+E*he*Be-E*pe*Se+ie*se*Se-ne*se*Be+ne*pe*ve-ie*he*ve)+Oe*(+E*pe*xe-E*ae*Be-ie*se*xe+z*se*Be+ie*ae*ve-z*pe*ve)+Le*(-ne*ae*ve-E*he*xe+E*ae*Se+ne*se*xe-z*se*Se+z*he*ve)}transpose(){const y=this.elements;let E;return E=y[1],y[1]=y[4],y[4]=E,E=y[2],y[2]=y[8],y[8]=E,E=y[6],y[6]=y[9],y[9]=E,E=y[3],y[3]=y[12],y[12]=E,E=y[7],y[7]=y[13],y[13]=E,E=y[11],y[11]=y[14],y[14]=E,this}setPosition(y,E,z){const ne=this.elements;return y.isVector3?(ne[12]=y.x,ne[13]=y.y,ne[14]=y.z):(ne[12]=y,ne[13]=E,ne[14]=z),this}invert(){const y=this.elements,E=y[0],z=y[1],ne=y[2],ie=y[3],se=y[4],ae=y[5],he=y[6],pe=y[7],ve=y[8],xe=y[9],Se=y[10],Be=y[11],De=y[12],Re=y[13],Oe=y[14],Le=y[15],Je=xe*Oe*pe-Re*Se*pe+Re*he*Be-ae*Oe*Be-xe*he*Le+ae*Se*Le,$e=De*Se*pe-ve*Oe*pe-De*he*Be+se*Oe*Be+ve*he*Le-se*Se*Le,_e=ve*Re*pe-De*xe*pe+De*ae*Be-se*Re*Be-ve*ae*Le+se*xe*Le,st=De*xe*he-ve*Re*he-De*ae*Se+se*Re*Se+ve*ae*Oe-se*xe*Oe,ct=E*Je+z*$e+ne*_e+ie*st;if(ct===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const ut=1/ct;return y[0]=Je*ut,y[1]=(Re*Se*ie-xe*Oe*ie-Re*ne*Be+z*Oe*Be+xe*ne*Le-z*Se*Le)*ut,y[2]=(ae*Oe*ie-Re*he*ie+Re*ne*pe-z*Oe*pe-ae*ne*Le+z*he*Le)*ut,y[3]=(xe*he*ie-ae*Se*ie-xe*ne*pe+z*Se*pe+ae*ne*Be-z*he*Be)*ut,y[4]=$e*ut,y[5]=(ve*Oe*ie-De*Se*ie+De*ne*Be-E*Oe*Be-ve*ne*Le+E*Se*Le)*ut,y[6]=(De*he*ie-se*Oe*ie-De*ne*pe+E*Oe*pe+se*ne*Le-E*he*Le)*ut,y[7]=(se*Se*ie-ve*he*ie+ve*ne*pe-E*Se*pe-se*ne*Be+E*he*Be)*ut,y[8]=_e*ut,y[9]=(De*xe*ie-ve*Re*ie-De*z*Be+E*Re*Be+ve*z*Le-E*xe*Le)*ut,y[10]=(se*Re*ie-De*ae*ie+De*z*pe-E*Re*pe-se*z*Le+E*ae*Le)*ut,y[11]=(ve*ae*ie-se*xe*ie-ve*z*pe+E*xe*pe+se*z*Be-E*ae*Be)*ut,y[12]=st*ut,y[13]=(ve*Re*ne-De*xe*ne+De*z*Se-E*Re*Se-ve*z*Oe+E*xe*Oe)*ut,y[14]=(De*ae*ne-se*Re*ne-De*z*he+E*Re*he+se*z*Oe-E*ae*Oe)*ut,y[15]=(se*xe*ne-ve*ae*ne+ve*z*he-E*xe*he-se*z*Se+E*ae*Se)*ut,this}scale(y){const E=this.elements,z=y.x,ne=y.y,ie=y.z;return E[0]*=z,E[4]*=ne,E[8]*=ie,E[1]*=z,E[5]*=ne,E[9]*=ie,E[2]*=z,E[6]*=ne,E[10]*=ie,E[3]*=z,E[7]*=ne,E[11]*=ie,this}getMaxScaleOnAxis(){const y=this.elements,E=y[0]*y[0]+y[1]*y[1]+y[2]*y[2],z=y[4]*y[4]+y[5]*y[5]+y[6]*y[6],ne=y[8]*y[8]+y[9]*y[9]+y[10]*y[10];return Math.sqrt(Math.max(E,z,ne))}makeTranslation(y,E,z){return y.isVector3?this.set(1,0,0,y.x,0,1,0,y.y,0,0,1,y.z,0,0,0,1):this.set(1,0,0,y,0,1,0,E,0,0,1,z,0,0,0,1),this}makeRotationX(y){const E=Math.cos(y),z=Math.sin(y);return this.set(1,0,0,0,0,E,-z,0,0,z,E,0,0,0,0,1),this}makeRotationY(y){const E=Math.cos(y),z=Math.sin(y);return this.set(E,0,z,0,0,1,0,0,-z,0,E,0,0,0,0,1),this}makeRotationZ(y){const E=Math.cos(y),z=Math.sin(y);return this.set(E,-z,0,0,z,E,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(y,E){const z=Math.cos(E),ne=Math.sin(E),ie=1-z,se=y.x,ae=y.y,he=y.z,pe=ie*se,ve=ie*ae;return this.set(pe*se+z,pe*ae-ne*he,pe*he+ne*ae,0,pe*ae+ne*he,ve*ae+z,ve*he-ne*se,0,pe*he-ne*ae,ve*he+ne*se,ie*he*he+z,0,0,0,0,1),this}makeScale(y,E,z){return this.set(y,0,0,0,0,E,0,0,0,0,z,0,0,0,0,1),this}makeShear(y,E,z,ne,ie,se){return this.set(1,z,ie,0,y,1,se,0,E,ne,1,0,0,0,0,1),this}compose(y,E,z){const ne=this.elements,ie=E._x,se=E._y,ae=E._z,he=E._w,pe=ie+ie,ve=se+se,xe=ae+ae,Se=ie*pe,Be=ie*ve,De=ie*xe,Re=se*ve,Oe=se*xe,Le=ae*xe,Je=he*pe,$e=he*ve,_e=he*xe,st=z.x,ct=z.y,ut=z.z;return ne[0]=(1-(Re+Le))*st,ne[1]=(Be+_e)*st,ne[2]=(De-$e)*st,ne[3]=0,ne[4]=(Be-_e)*ct,ne[5]=(1-(Se+Le))*ct,ne[6]=(Oe+Je)*ct,ne[7]=0,ne[8]=(De+$e)*ut,ne[9]=(Oe-Je)*ut,ne[10]=(1-(Se+Re))*ut,ne[11]=0,ne[12]=y.x,ne[13]=y.y,ne[14]=y.z,ne[15]=1,this}decompose(y,E,z){const ne=this.elements;let ie=Lx.set(ne[0],ne[1],ne[2]).length();const se=Lx.set(ne[4],ne[5],ne[6]).length(),ae=Lx.set(ne[8],ne[9],ne[10]).length();this.determinant()<0&&(ie=-ie),y.x=ne[12],y.y=ne[13],y.z=ne[14],km.copy(this);const pe=1/ie,ve=1/se,xe=1/ae;return km.elements[0]*=pe,km.elements[1]*=pe,km.elements[2]*=pe,km.elements[4]*=ve,km.elements[5]*=ve,km.elements[6]*=ve,km.elements[8]*=xe,km.elements[9]*=xe,km.elements[10]*=xe,E.setFromRotationMatrix(km),z.x=ie,z.y=se,z.z=ae,this}makePerspective(y,E,z,ne,ie,se,ae=xp){const he=this.elements,pe=2*ie/(E-y),ve=2*ie/(z-ne),xe=(E+y)/(E-y),Se=(z+ne)/(z-ne);let Be,De;if(ae===xp)Be=-(se+ie)/(se-ie),De=-2*se*ie/(se-ie);else if(ae===zg)Be=-se/(se-ie),De=-se*ie/(se-ie);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+ae);return he[0]=pe,he[4]=0,he[8]=xe,he[12]=0,he[1]=0,he[5]=ve,he[9]=Se,he[13]=0,he[2]=0,he[6]=0,he[10]=Be,he[14]=De,he[3]=0,he[7]=0,he[11]=-1,he[15]=0,this}makeOrthographic(y,E,z,ne,ie,se,ae=xp){const he=this.elements,pe=1/(E-y),ve=1/(z-ne),xe=1/(se-ie),Se=(E+y)*pe,Be=(z+ne)*ve;let De,Re;if(ae===xp)De=(se+ie)*xe,Re=-2*xe;else if(ae===zg)De=ie*xe,Re=-1*xe;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+ae);return he[0]=2*pe,he[4]=0,he[8]=0,he[12]=-Se,he[1]=0,he[5]=2*ve,he[9]=0,he[13]=-Be,he[2]=0,he[6]=0,he[10]=Re,he[14]=-De,he[3]=0,he[7]=0,he[11]=0,he[15]=1,this}equals(y){const E=this.elements,z=y.elements;for(let ne=0;ne<16;ne++)if(E[ne]!==z[ne])return!1;return!0}fromArray(y,E=0){for(let z=0;z<16;z++)this.elements[z]=y[z+E];return this}toArray(y=[],E=0){const z=this.elements;return y[E]=z[0],y[E+1]=z[1],y[E+2]=z[2],y[E+3]=z[3],y[E+4]=z[4],y[E+5]=z[5],y[E+6]=z[6],y[E+7]=z[7],y[E+8]=z[8],y[E+9]=z[9],y[E+10]=z[10],y[E+11]=z[11],y[E+12]=z[12],y[E+13]=z[13],y[E+14]=z[14],y[E+15]=z[15],y}}const Lx=new yn,km=new Xa,bd=new yn(0,0,0),Ui=new yn(1,1,1),dm=new yn,qS=new yn,Md=new yn,_S=new Xa,zC=new Bf;class Pp{constructor(y=0,E=0,z=0,ne=Pp.DEFAULT_ORDER){this.isEuler=!0,this._x=y,this._y=E,this._z=z,this._order=ne}get x(){return this._x}set x(y){this._x=y,this._onChangeCallback()}get y(){return this._y}set y(y){this._y=y,this._onChangeCallback()}get z(){return this._z}set z(y){this._z=y,this._onChangeCallback()}get order(){return this._order}set order(y){this._order=y,this._onChangeCallback()}set(y,E,z,ne=this._order){return this._x=y,this._y=E,this._z=z,this._order=ne,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(y){return this._x=y._x,this._y=y._y,this._z=y._z,this._order=y._order,this._onChangeCallback(),this}setFromRotationMatrix(y,E=this._order,z=!0){const ne=y.elements,ie=ne[0],se=ne[4],ae=ne[8],he=ne[1],pe=ne[5],ve=ne[9],xe=ne[2],Se=ne[6],Be=ne[10];switch(E){case"XYZ":this._y=Math.asin(Bu(ae,-1,1)),Math.abs(ae)<.9999999?(this._x=Math.atan2(-ve,Be),this._z=Math.atan2(-se,ie)):(this._x=Math.atan2(Se,pe),this._z=0);break;case"YXZ":this._x=Math.asin(-Bu(ve,-1,1)),Math.abs(ve)<.9999999?(this._y=Math.atan2(ae,Be),this._z=Math.atan2(he,pe)):(this._y=Math.atan2(-xe,ie),this._z=0);break;case"ZXY":this._x=Math.asin(Bu(Se,-1,1)),Math.abs(Se)<.9999999?(this._y=Math.atan2(-xe,Be),this._z=Math.atan2(-se,pe)):(this._y=0,this._z=Math.atan2(he,ie));break;case"ZYX":this._y=Math.asin(-Bu(xe,-1,1)),Math.abs(xe)<.9999999?(this._x=Math.atan2(Se,Be),this._z=Math.atan2(he,ie)):(this._x=0,this._z=Math.atan2(-se,pe));break;case"YZX":this._z=Math.asin(Bu(he,-1,1)),Math.abs(he)<.9999999?(this._x=Math.atan2(-ve,pe),this._y=Math.atan2(-xe,ie)):(this._x=0,this._y=Math.atan2(ae,Be));break;case"XZY":this._z=Math.asin(-Bu(se,-1,1)),Math.abs(se)<.9999999?(this._x=Math.atan2(Se,pe),this._y=Math.atan2(ae,ie)):(this._x=Math.atan2(-ve,Be),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+E)}return this._order=E,z===!0&&this._onChangeCallback(),this}setFromQuaternion(y,E,z){return _S.makeRotationFromQuaternion(y),this.setFromRotationMatrix(_S,E,z)}setFromVector3(y,E=this._order){return this.set(y.x,y.y,y.z,E)}reorder(y){return zC.setFromEuler(this),this.setFromQuaternion(zC,y)}equals(y){return y._x===this._x&&y._y===this._y&&y._z===this._z&&y._order===this._order}fromArray(y){return this._x=y[0],this._y=y[1],this._z=y[2],y[3]!==void 0&&(this._order=y[3]),this._onChangeCallback(),this}toArray(y=[],E=0){return y[E]=this._x,y[E+1]=this._y,y[E+2]=this._z,y[E+3]=this._order,y}_onChange(y){return this._onChangeCallback=y,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Pp.DEFAULT_ORDER="XYZ";class AA{constructor(){this.mask=1}set(y){this.mask=(1<<y|0)>>>0}enable(y){this.mask|=1<<y|0}enableAll(){this.mask=-1}toggle(y){this.mask^=1<<y|0}disable(y){this.mask&=~(1<<y|0)}disableAll(){this.mask=0}test(y){return(this.mask&y.mask)!==0}isEnabled(y){return(this.mask&(1<<y|0))!==0}}let UC=0;const HC=new yn,xA=new Bf,Om=new Xa,tv=new yn,Ix=new yn,kx=new yn,o3=new Bf,P5=new yn(1,0,0),uy=new yn(0,1,0),$S=new yn(0,0,1),u2={type:"added"},eP={type:"removed"},nv={type:"childadded",child:null},cy={type:"childremoved",child:null};class ih extends Hg{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:UC++}),this.uuid=pg(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=ih.DEFAULT_UP.clone();const y=new yn,E=new Pp,z=new Bf,ne=new yn(1,1,1);function ie(){z.setFromEuler(E,!1)}function se(){E.setFromQuaternion(z,void 0,!1)}E._onChange(ie),z._onChange(se),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:y},rotation:{configurable:!0,enumerable:!0,value:E},quaternion:{configurable:!0,enumerable:!0,value:z},scale:{configurable:!0,enumerable:!0,value:ne},modelViewMatrix:{value:new Xa},normalMatrix:{value:new nu}}),this.matrix=new Xa,this.matrixWorld=new Xa,this.matrixAutoUpdate=ih.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=ih.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new AA,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.customDepthMaterial=void 0,this.customDistanceMaterial=void 0,this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(y){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(y),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(y){return this.quaternion.premultiply(y),this}setRotationFromAxisAngle(y,E){this.quaternion.setFromAxisAngle(y,E)}setRotationFromEuler(y){this.quaternion.setFromEuler(y,!0)}setRotationFromMatrix(y){this.quaternion.setFromRotationMatrix(y)}setRotationFromQuaternion(y){this.quaternion.copy(y)}rotateOnAxis(y,E){return xA.setFromAxisAngle(y,E),this.quaternion.multiply(xA),this}rotateOnWorldAxis(y,E){return xA.setFromAxisAngle(y,E),this.quaternion.premultiply(xA),this}rotateX(y){return this.rotateOnAxis(P5,y)}rotateY(y){return this.rotateOnAxis(uy,y)}rotateZ(y){return this.rotateOnAxis($S,y)}translateOnAxis(y,E){return HC.copy(y).applyQuaternion(this.quaternion),this.position.add(HC.multiplyScalar(E)),this}translateX(y){return this.translateOnAxis(P5,y)}translateY(y){return this.translateOnAxis(uy,y)}translateZ(y){return this.translateOnAxis($S,y)}localToWorld(y){return this.updateWorldMatrix(!0,!1),y.applyMatrix4(this.matrixWorld)}worldToLocal(y){return this.updateWorldMatrix(!0,!1),y.applyMatrix4(Om.copy(this.matrixWorld).invert())}lookAt(y,E,z){y.isVector3?tv.copy(y):tv.set(y,E,z);const ne=this.parent;this.updateWorldMatrix(!0,!1),Ix.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Om.lookAt(Ix,tv,this.up):Om.lookAt(tv,Ix,this.up),this.quaternion.setFromRotationMatrix(Om),ne&&(Om.extractRotation(ne.matrixWorld),xA.setFromRotationMatrix(Om),this.quaternion.premultiply(xA.invert()))}add(y){if(arguments.length>1){for(let E=0;E<arguments.length;E++)this.add(arguments[E]);return this}return y===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",y),this):(y&&y.isObject3D?(y.removeFromParent(),y.parent=this,this.children.push(y),y.dispatchEvent(u2),nv.child=y,this.dispatchEvent(nv),nv.child=null):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",y),this)}remove(y){if(arguments.length>1){for(let z=0;z<arguments.length;z++)this.remove(arguments[z]);return this}const E=this.children.indexOf(y);return E!==-1&&(y.parent=null,this.children.splice(E,1),y.dispatchEvent(eP),cy.child=y,this.dispatchEvent(cy),cy.child=null),this}removeFromParent(){const y=this.parent;return y!==null&&y.remove(this),this}clear(){return this.remove(...this.children)}attach(y){return this.updateWorldMatrix(!0,!1),Om.copy(this.matrixWorld).invert(),y.parent!==null&&(y.parent.updateWorldMatrix(!0,!1),Om.multiply(y.parent.matrixWorld)),y.applyMatrix4(Om),y.removeFromParent(),y.parent=this,this.children.push(y),y.updateWorldMatrix(!1,!0),y.dispatchEvent(u2),nv.child=y,this.dispatchEvent(nv),nv.child=null,this}getObjectById(y){return this.getObjectByProperty("id",y)}getObjectByName(y){return this.getObjectByProperty("name",y)}getObjectByProperty(y,E){if(this[y]===E)return this;for(let z=0,ne=this.children.length;z<ne;z++){const se=this.children[z].getObjectByProperty(y,E);if(se!==void 0)return se}}getObjectsByProperty(y,E,z=[]){this[y]===E&&z.push(this);const ne=this.children;for(let ie=0,se=ne.length;ie<se;ie++)ne[ie].getObjectsByProperty(y,E,z);return z}getWorldPosition(y){return this.updateWorldMatrix(!0,!1),y.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(y){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Ix,y,kx),y}getWorldScale(y){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Ix,o3,y),y}getWorldDirection(y){this.updateWorldMatrix(!0,!1);const E=this.matrixWorld.elements;return y.set(E[8],E[9],E[10]).normalize()}raycast(){}traverse(y){y(this);const E=this.children;for(let z=0,ne=E.length;z<ne;z++)E[z].traverse(y)}traverseVisible(y){if(this.visible===!1)return;y(this);const E=this.children;for(let z=0,ne=E.length;z<ne;z++)E[z].traverseVisible(y)}traverseAncestors(y){const E=this.parent;E!==null&&(y(E),E.traverseAncestors(y))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(y){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||y)&&(this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,y=!0);const E=this.children;for(let z=0,ne=E.length;z<ne;z++)E[z].updateMatrixWorld(y)}updateWorldMatrix(y,E){const z=this.parent;if(y===!0&&z!==null&&z.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),E===!0){const ne=this.children;for(let ie=0,se=ne.length;ie<se;ie++)ne[ie].updateWorldMatrix(!1,!0)}}toJSON(y){const E=y===void 0||typeof y=="string",z={};E&&(y={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},z.metadata={version:4.7,type:"Object",generator:"Object3D.toJSON"});const ne={};ne.uuid=this.uuid,ne.type=this.type,this.name!==""&&(ne.name=this.name),this.castShadow===!0&&(ne.castShadow=!0),this.receiveShadow===!0&&(ne.receiveShadow=!0),this.visible===!1&&(ne.visible=!1),this.frustumCulled===!1&&(ne.frustumCulled=!1),this.renderOrder!==0&&(ne.renderOrder=this.renderOrder),Object.keys(this.userData).length>0&&(ne.userData=this.userData),ne.layers=this.layers.mask,ne.matrix=this.matrix.toArray(),ne.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(ne.matrixAutoUpdate=!1),this.isInstancedMesh&&(ne.type="InstancedMesh",ne.count=this.count,ne.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(ne.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(ne.type="BatchedMesh",ne.perObjectFrustumCulled=this.perObjectFrustumCulled,ne.sortObjects=this.sortObjects,ne.drawRanges=this._drawRanges,ne.reservedRanges=this._reservedRanges,ne.geometryInfo=this._geometryInfo.map(ae=>tx(Hd({},ae),{boundingBox:ae.boundingBox?ae.boundingBox.toJSON():void 0,boundingSphere:ae.boundingSphere?ae.boundingSphere.toJSON():void 0})),ne.instanceInfo=this._instanceInfo.map(ae=>Hd({},ae)),ne.availableInstanceIds=this._availableInstanceIds.slice(),ne.availableGeometryIds=this._availableGeometryIds.slice(),ne.nextIndexStart=this._nextIndexStart,ne.nextVertexStart=this._nextVertexStart,ne.geometryCount=this._geometryCount,ne.maxInstanceCount=this._maxInstanceCount,ne.maxVertexCount=this._maxVertexCount,ne.maxIndexCount=this._maxIndexCount,ne.geometryInitialized=this._geometryInitialized,ne.matricesTexture=this._matricesTexture.toJSON(y),ne.indirectTexture=this._indirectTexture.toJSON(y),this._colorsTexture!==null&&(ne.colorsTexture=this._colorsTexture.toJSON(y)),this.boundingSphere!==null&&(ne.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(ne.boundingBox=this.boundingBox.toJSON()));function ie(ae,he){return ae[he.uuid]===void 0&&(ae[he.uuid]=he.toJSON(y)),he.uuid}if(this.isScene)this.background&&(this.background.isColor?ne.background=this.background.toJSON():this.background.isTexture&&(ne.background=this.background.toJSON(y).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(ne.environment=this.environment.toJSON(y).uuid);else if(this.isMesh||this.isLine||this.isPoints){ne.geometry=ie(y.geometries,this.geometry);const ae=this.geometry.parameters;if(ae!==void 0&&ae.shapes!==void 0){const he=ae.shapes;if(Array.isArray(he))for(let pe=0,ve=he.length;pe<ve;pe++){const xe=he[pe];ie(y.shapes,xe)}else ie(y.shapes,he)}}if(this.isSkinnedMesh&&(ne.bindMode=this.bindMode,ne.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(ie(y.skeletons,this.skeleton),ne.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){const ae=[];for(let he=0,pe=this.material.length;he<pe;he++)ae.push(ie(y.materials,this.material[he]));ne.material=ae}else ne.material=ie(y.materials,this.material);if(this.children.length>0){ne.children=[];for(let ae=0;ae<this.children.length;ae++)ne.children.push(this.children[ae].toJSON(y).object)}if(this.animations.length>0){ne.animations=[];for(let ae=0;ae<this.animations.length;ae++){const he=this.animations[ae];ne.animations.push(ie(y.animations,he))}}if(E){const ae=se(y.geometries),he=se(y.materials),pe=se(y.textures),ve=se(y.images),xe=se(y.shapes),Se=se(y.skeletons),Be=se(y.animations),De=se(y.nodes);ae.length>0&&(z.geometries=ae),he.length>0&&(z.materials=he),pe.length>0&&(z.textures=pe),ve.length>0&&(z.images=ve),xe.length>0&&(z.shapes=xe),Se.length>0&&(z.skeletons=Se),Be.length>0&&(z.animations=Be),De.length>0&&(z.nodes=De)}return z.object=ne,z;function se(ae){const he=[];for(const pe in ae){const ve=ae[pe];delete ve.metadata,he.push(ve)}return he}}clone(y){return new this.constructor().copy(this,y)}copy(y,E=!0){if(this.name=y.name,this.up.copy(y.up),this.position.copy(y.position),this.rotation.order=y.rotation.order,this.quaternion.copy(y.quaternion),this.scale.copy(y.scale),this.matrix.copy(y.matrix),this.matrixWorld.copy(y.matrixWorld),this.matrixAutoUpdate=y.matrixAutoUpdate,this.matrixWorldAutoUpdate=y.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=y.matrixWorldNeedsUpdate,this.layers.mask=y.layers.mask,this.visible=y.visible,this.castShadow=y.castShadow,this.receiveShadow=y.receiveShadow,this.frustumCulled=y.frustumCulled,this.renderOrder=y.renderOrder,this.animations=y.animations.slice(),this.userData=JSON.parse(JSON.stringify(y.userData)),E===!0)for(let z=0;z<y.children.length;z++){const ne=y.children[z];this.add(ne.clone())}return this}}ih.DEFAULT_UP=new yn(0,1,0),ih.DEFAULT_MATRIX_AUTO_UPDATE=!0,ih.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;const fm=new yn,hy=new yn,c2=new yn,iv=new yn,Th=new yn,fd=new yn,g0=new yn,wA=new yn,Ox=new yn,gw=new yn,mw=new Ul,Rx=new Ul,zx=new Ul;class Cp{constructor(y=new yn,E=new yn,z=new yn){this.a=y,this.b=E,this.c=z}static getNormal(y,E,z,ne){ne.subVectors(z,E),fm.subVectors(y,E),ne.cross(fm);const ie=ne.lengthSq();return ie>0?ne.multiplyScalar(1/Math.sqrt(ie)):ne.set(0,0,0)}static getBarycoord(y,E,z,ne,ie){fm.subVectors(ne,E),hy.subVectors(z,E),c2.subVectors(y,E);const se=fm.dot(fm),ae=fm.dot(hy),he=fm.dot(c2),pe=hy.dot(hy),ve=hy.dot(c2),xe=se*pe-ae*ae;if(xe===0)return ie.set(0,0,0),null;const Se=1/xe,Be=(pe*he-ae*ve)*Se,De=(se*ve-ae*he)*Se;return ie.set(1-Be-De,De,Be)}static containsPoint(y,E,z,ne){return this.getBarycoord(y,E,z,ne,iv)===null?!1:iv.x>=0&&iv.y>=0&&iv.x+iv.y<=1}static getInterpolation(y,E,z,ne,ie,se,ae,he){return this.getBarycoord(y,E,z,ne,iv)===null?(he.x=0,he.y=0,"z"in he&&(he.z=0),"w"in he&&(he.w=0),null):(he.setScalar(0),he.addScaledVector(ie,iv.x),he.addScaledVector(se,iv.y),he.addScaledVector(ae,iv.z),he)}static getInterpolatedAttribute(y,E,z,ne,ie,se){return mw.setScalar(0),Rx.setScalar(0),zx.setScalar(0),mw.fromBufferAttribute(y,E),Rx.fromBufferAttribute(y,z),zx.fromBufferAttribute(y,ne),se.setScalar(0),se.addScaledVector(mw,ie.x),se.addScaledVector(Rx,ie.y),se.addScaledVector(zx,ie.z),se}static isFrontFacing(y,E,z,ne){return fm.subVectors(z,E),hy.subVectors(y,E),fm.cross(hy).dot(ne)<0}set(y,E,z){return this.a.copy(y),this.b.copy(E),this.c.copy(z),this}setFromPointsAndIndices(y,E,z,ne){return this.a.copy(y[E]),this.b.copy(y[z]),this.c.copy(y[ne]),this}setFromAttributeAndIndices(y,E,z,ne){return this.a.fromBufferAttribute(y,E),this.b.fromBufferAttribute(y,z),this.c.fromBufferAttribute(y,ne),this}clone(){return new this.constructor().copy(this)}copy(y){return this.a.copy(y.a),this.b.copy(y.b),this.c.copy(y.c),this}getArea(){return fm.subVectors(this.c,this.b),hy.subVectors(this.a,this.b),fm.cross(hy).length()*.5}getMidpoint(y){return y.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(y){return Cp.getNormal(this.a,this.b,this.c,y)}getPlane(y){return y.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(y,E){return Cp.getBarycoord(y,this.a,this.b,this.c,E)}getInterpolation(y,E,z,ne,ie){return Cp.getInterpolation(y,this.a,this.b,this.c,E,z,ne,ie)}containsPoint(y){return Cp.containsPoint(y,this.a,this.b,this.c)}isFrontFacing(y){return Cp.isFrontFacing(this.a,this.b,this.c,y)}intersectsBox(y){return y.intersectsTriangle(this)}closestPointToPoint(y,E){const z=this.a,ne=this.b,ie=this.c;let se,ae;Th.subVectors(ne,z),fd.subVectors(ie,z),wA.subVectors(y,z);const he=Th.dot(wA),pe=fd.dot(wA);if(he<=0&&pe<=0)return E.copy(z);Ox.subVectors(y,ne);const ve=Th.dot(Ox),xe=fd.dot(Ox);if(ve>=0&&xe<=ve)return E.copy(ne);const Se=he*xe-ve*pe;if(Se<=0&&he>=0&&ve<=0)return se=he/(he-ve),E.copy(z).addScaledVector(Th,se);gw.subVectors(y,ie);const Be=Th.dot(gw),De=fd.dot(gw);if(De>=0&&Be<=De)return E.copy(ie);const Re=Be*pe-he*De;if(Re<=0&&pe>=0&&De<=0)return ae=pe/(pe-De),E.copy(z).addScaledVector(fd,ae);const Oe=ve*De-Be*xe;if(Oe<=0&&xe-ve>=0&&Be-De>=0)return g0.subVectors(ie,ne),ae=(xe-ve)/(xe-ve+(Be-De)),E.copy(ne).addScaledVector(g0,ae);const Le=1/(Oe+Re+Se);return se=Re*Le,ae=Se*Le,E.copy(z).addScaledVector(Th,se).addScaledVector(fd,ae)}equals(y){return y.a.equals(this.a)&&y.b.equals(this.b)&&y.c.equals(this.c)}}const VC={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},m0={h:0,s:0,l:0},SA={h:0,s:0,l:0};function Ux(ee,y,E){return E<0&&(E+=1),E>1&&(E-=1),E<1/6?ee+(y-ee)*6*E:E<1/2?y:E<2/3?ee+(y-ee)*6*(2/3-E):ee}class ia{constructor(y,E,z){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(y,E,z)}set(y,E,z){if(E===void 0&&z===void 0){const ne=y;ne&&ne.isColor?this.copy(ne):typeof ne=="number"?this.setHex(ne):typeof ne=="string"&&this.setStyle(ne)}else this.setRGB(y,E,z);return this}setScalar(y){return this.r=y,this.g=y,this.b=y,this}setHex(y,E=Wf){return y=Math.floor(y),this.r=(y>>16&255)/255,this.g=(y>>8&255)/255,this.b=(y&255)/255,su.colorSpaceToWorking(this,E),this}setRGB(y,E,z,ne=su.workingColorSpace){return this.r=y,this.g=E,this.b=z,su.colorSpaceToWorking(this,ne),this}setHSL(y,E,z,ne=su.workingColorSpace){if(y=jS(y,1),E=Bu(E,0,1),z=Bu(z,0,1),E===0)this.r=this.g=this.b=z;else{const ie=z<=.5?z*(1+E):z+E-z*E,se=2*z-ie;this.r=Ux(se,ie,y+1/3),this.g=Ux(se,ie,y),this.b=Ux(se,ie,y-1/3)}return su.colorSpaceToWorking(this,ne),this}setStyle(y,E=Wf){function z(ie){ie!==void 0&&parseFloat(ie)<1&&console.warn("THREE.Color: Alpha component of "+y+" will be ignored.")}let ne;if(ne=/^(\w+)\(([^\)]*)\)/.exec(y)){let ie;const se=ne[1],ae=ne[2];switch(se){case"rgb":case"rgba":if(ie=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ae))return z(ie[4]),this.setRGB(Math.min(255,parseInt(ie[1],10))/255,Math.min(255,parseInt(ie[2],10))/255,Math.min(255,parseInt(ie[3],10))/255,E);if(ie=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ae))return z(ie[4]),this.setRGB(Math.min(100,parseInt(ie[1],10))/100,Math.min(100,parseInt(ie[2],10))/100,Math.min(100,parseInt(ie[3],10))/100,E);break;case"hsl":case"hsla":if(ie=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(ae))return z(ie[4]),this.setHSL(parseFloat(ie[1])/360,parseFloat(ie[2])/100,parseFloat(ie[3])/100,E);break;default:console.warn("THREE.Color: Unknown color model "+y)}}else if(ne=/^\#([A-Fa-f\d]+)$/.exec(y)){const ie=ne[1],se=ie.length;if(se===3)return this.setRGB(parseInt(ie.charAt(0),16)/15,parseInt(ie.charAt(1),16)/15,parseInt(ie.charAt(2),16)/15,E);if(se===6)return this.setHex(parseInt(ie,16),E);console.warn("THREE.Color: Invalid hex color "+y)}else if(y&&y.length>0)return this.setColorName(y,E);return this}setColorName(y,E=Wf){const z=VC[y.toLowerCase()];return z!==void 0?this.setHex(z,E):console.warn("THREE.Color: Unknown color "+y),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(y){return this.r=y.r,this.g=y.g,this.b=y.b,this}copySRGBToLinear(y){return this.r=Qf(y.r),this.g=Qf(y.g),this.b=Qf(y.b),this}copyLinearToSRGB(y){return this.r=Tx(y.r),this.g=Tx(y.g),this.b=Tx(y.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(y=Wf){return su.workingToColorSpace(Ep.copy(this),y),Math.round(Bu(Ep.r*255,0,255))*65536+Math.round(Bu(Ep.g*255,0,255))*256+Math.round(Bu(Ep.b*255,0,255))}getHexString(y=Wf){return("000000"+this.getHex(y).toString(16)).slice(-6)}getHSL(y,E=su.workingColorSpace){su.workingToColorSpace(Ep.copy(this),E);const z=Ep.r,ne=Ep.g,ie=Ep.b,se=Math.max(z,ne,ie),ae=Math.min(z,ne,ie);let he,pe;const ve=(ae+se)/2;if(ae===se)he=0,pe=0;else{const xe=se-ae;switch(pe=ve<=.5?xe/(se+ae):xe/(2-se-ae),se){case z:he=(ne-ie)/xe+(ne<ie?6:0);break;case ne:he=(ie-z)/xe+2;break;case ie:he=(z-ne)/xe+4;break}he/=6}return y.h=he,y.s=pe,y.l=ve,y}getRGB(y,E=su.workingColorSpace){return su.workingToColorSpace(Ep.copy(this),E),y.r=Ep.r,y.g=Ep.g,y.b=Ep.b,y}getStyle(y=Wf){su.workingToColorSpace(Ep.copy(this),y);const E=Ep.r,z=Ep.g,ne=Ep.b;return y!==Wf?`color(${y} ${E.toFixed(3)} ${z.toFixed(3)} ${ne.toFixed(3)})`:`rgb(${Math.round(E*255)},${Math.round(z*255)},${Math.round(ne*255)})`}offsetHSL(y,E,z){return this.getHSL(m0),this.setHSL(m0.h+y,m0.s+E,m0.l+z)}add(y){return this.r+=y.r,this.g+=y.g,this.b+=y.b,this}addColors(y,E){return this.r=y.r+E.r,this.g=y.g+E.g,this.b=y.b+E.b,this}addScalar(y){return this.r+=y,this.g+=y,this.b+=y,this}sub(y){return this.r=Math.max(0,this.r-y.r),this.g=Math.max(0,this.g-y.g),this.b=Math.max(0,this.b-y.b),this}multiply(y){return this.r*=y.r,this.g*=y.g,this.b*=y.b,this}multiplyScalar(y){return this.r*=y,this.g*=y,this.b*=y,this}lerp(y,E){return this.r+=(y.r-this.r)*E,this.g+=(y.g-this.g)*E,this.b+=(y.b-this.b)*E,this}lerpColors(y,E,z){return this.r=y.r+(E.r-y.r)*z,this.g=y.g+(E.g-y.g)*z,this.b=y.b+(E.b-y.b)*z,this}lerpHSL(y,E){this.getHSL(m0),y.getHSL(SA);const z=dA(m0.h,SA.h,E),ne=dA(m0.s,SA.s,E),ie=dA(m0.l,SA.l,E);return this.setHSL(z,ne,ie),this}setFromVector3(y){return this.r=y.x,this.g=y.y,this.b=y.z,this}applyMatrix3(y){const E=this.r,z=this.g,ne=this.b,ie=y.elements;return this.r=ie[0]*E+ie[3]*z+ie[6]*ne,this.g=ie[1]*E+ie[4]*z+ie[7]*ne,this.b=ie[2]*E+ie[5]*z+ie[8]*ne,this}equals(y){return y.r===this.r&&y.g===this.g&&y.b===this.b}fromArray(y,E=0){return this.r=y[E],this.g=y[E+1],this.b=y[E+2],this}toArray(y=[],E=0){return y[E]=this.r,y[E+1]=this.g,y[E+2]=this.b,y}fromBufferAttribute(y,E){return this.r=y.getX(E),this.g=y.getY(E),this.b=y.getZ(E),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}}const Ep=new ia;ia.NAMES=VC;let C5=0;class Zd extends Hg{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:C5++}),this.uuid=pg(),this.name="",this.type="Material",this.blending=de,this.side=hp,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=jr,this.blendDst=no,this.blendEquation=Xe,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new ia(0,0,0),this.blendAlpha=0,this.depthFunc=Mh,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=mc,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Ex,this.stencilZFail=Ex,this.stencilZPass=Ex,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.allowOverride=!0,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(y){this._alphaTest>0!=y>0&&this.version++,this._alphaTest=y}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(y){if(y!==void 0)for(const E in y){const z=y[E];if(z===void 0){console.warn(`THREE.Material: parameter '${E}' has value of undefined.`);continue}const ne=this[E];if(ne===void 0){console.warn(`THREE.Material: '${E}' is not a property of THREE.${this.type}.`);continue}ne&&ne.isColor?ne.set(z):ne&&ne.isVector3&&z&&z.isVector3?ne.copy(z):this[E]=z}}toJSON(y){const E=y===void 0||typeof y=="string";E&&(y={textures:{},images:{}});const z={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};z.uuid=this.uuid,z.type=this.type,this.name!==""&&(z.name=this.name),this.color&&this.color.isColor&&(z.color=this.color.getHex()),this.roughness!==void 0&&(z.roughness=this.roughness),this.metalness!==void 0&&(z.metalness=this.metalness),this.sheen!==void 0&&(z.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(z.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(z.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(z.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(z.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(z.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(z.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(z.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(z.shininess=this.shininess),this.clearcoat!==void 0&&(z.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(z.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(z.clearcoatMap=this.clearcoatMap.toJSON(y).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(z.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(y).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(z.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(y).uuid,z.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(z.dispersion=this.dispersion),this.iridescence!==void 0&&(z.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(z.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(z.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(z.iridescenceMap=this.iridescenceMap.toJSON(y).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(z.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(y).uuid),this.anisotropy!==void 0&&(z.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(z.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(z.anisotropyMap=this.anisotropyMap.toJSON(y).uuid),this.map&&this.map.isTexture&&(z.map=this.map.toJSON(y).uuid),this.matcap&&this.matcap.isTexture&&(z.matcap=this.matcap.toJSON(y).uuid),this.alphaMap&&this.alphaMap.isTexture&&(z.alphaMap=this.alphaMap.toJSON(y).uuid),this.lightMap&&this.lightMap.isTexture&&(z.lightMap=this.lightMap.toJSON(y).uuid,z.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(z.aoMap=this.aoMap.toJSON(y).uuid,z.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(z.bumpMap=this.bumpMap.toJSON(y).uuid,z.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(z.normalMap=this.normalMap.toJSON(y).uuid,z.normalMapType=this.normalMapType,z.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(z.displacementMap=this.displacementMap.toJSON(y).uuid,z.displacementScale=this.displacementScale,z.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(z.roughnessMap=this.roughnessMap.toJSON(y).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(z.metalnessMap=this.metalnessMap.toJSON(y).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(z.emissiveMap=this.emissiveMap.toJSON(y).uuid),this.specularMap&&this.specularMap.isTexture&&(z.specularMap=this.specularMap.toJSON(y).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(z.specularIntensityMap=this.specularIntensityMap.toJSON(y).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(z.specularColorMap=this.specularColorMap.toJSON(y).uuid),this.envMap&&this.envMap.isTexture&&(z.envMap=this.envMap.toJSON(y).uuid,this.combine!==void 0&&(z.combine=this.combine)),this.envMapRotation!==void 0&&(z.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(z.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(z.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(z.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(z.gradientMap=this.gradientMap.toJSON(y).uuid),this.transmission!==void 0&&(z.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(z.transmissionMap=this.transmissionMap.toJSON(y).uuid),this.thickness!==void 0&&(z.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(z.thicknessMap=this.thicknessMap.toJSON(y).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(z.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(z.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(z.size=this.size),this.shadowSide!==null&&(z.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(z.sizeAttenuation=this.sizeAttenuation),this.blending!==de&&(z.blending=this.blending),this.side!==hp&&(z.side=this.side),this.vertexColors===!0&&(z.vertexColors=!0),this.opacity<1&&(z.opacity=this.opacity),this.transparent===!0&&(z.transparent=!0),this.blendSrc!==jr&&(z.blendSrc=this.blendSrc),this.blendDst!==no&&(z.blendDst=this.blendDst),this.blendEquation!==Xe&&(z.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(z.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(z.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(z.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(z.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(z.blendAlpha=this.blendAlpha),this.depthFunc!==Mh&&(z.depthFunc=this.depthFunc),this.depthTest===!1&&(z.depthTest=this.depthTest),this.depthWrite===!1&&(z.depthWrite=this.depthWrite),this.colorWrite===!1&&(z.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(z.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==mc&&(z.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(z.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(z.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==Ex&&(z.stencilFail=this.stencilFail),this.stencilZFail!==Ex&&(z.stencilZFail=this.stencilZFail),this.stencilZPass!==Ex&&(z.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(z.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(z.rotation=this.rotation),this.polygonOffset===!0&&(z.polygonOffset=!0),this.polygonOffsetFactor!==0&&(z.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(z.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(z.linewidth=this.linewidth),this.dashSize!==void 0&&(z.dashSize=this.dashSize),this.gapSize!==void 0&&(z.gapSize=this.gapSize),this.scale!==void 0&&(z.scale=this.scale),this.dithering===!0&&(z.dithering=!0),this.alphaTest>0&&(z.alphaTest=this.alphaTest),this.alphaHash===!0&&(z.alphaHash=!0),this.alphaToCoverage===!0&&(z.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(z.premultipliedAlpha=!0),this.forceSinglePass===!0&&(z.forceSinglePass=!0),this.wireframe===!0&&(z.wireframe=!0),this.wireframeLinewidth>1&&(z.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(z.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(z.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(z.flatShading=!0),this.visible===!1&&(z.visible=!1),this.toneMapped===!1&&(z.toneMapped=!1),this.fog===!1&&(z.fog=!1),Object.keys(this.userData).length>0&&(z.userData=this.userData);function ne(ie){const se=[];for(const ae in ie){const he=ie[ae];delete he.metadata,se.push(he)}return se}if(E){const ie=ne(y.textures),se=ne(y.images);ie.length>0&&(z.textures=ie),se.length>0&&(z.images=se)}return z}clone(){return new this.constructor().copy(this)}copy(y){this.name=y.name,this.blending=y.blending,this.side=y.side,this.vertexColors=y.vertexColors,this.opacity=y.opacity,this.transparent=y.transparent,this.blendSrc=y.blendSrc,this.blendDst=y.blendDst,this.blendEquation=y.blendEquation,this.blendSrcAlpha=y.blendSrcAlpha,this.blendDstAlpha=y.blendDstAlpha,this.blendEquationAlpha=y.blendEquationAlpha,this.blendColor.copy(y.blendColor),this.blendAlpha=y.blendAlpha,this.depthFunc=y.depthFunc,this.depthTest=y.depthTest,this.depthWrite=y.depthWrite,this.stencilWriteMask=y.stencilWriteMask,this.stencilFunc=y.stencilFunc,this.stencilRef=y.stencilRef,this.stencilFuncMask=y.stencilFuncMask,this.stencilFail=y.stencilFail,this.stencilZFail=y.stencilZFail,this.stencilZPass=y.stencilZPass,this.stencilWrite=y.stencilWrite;const E=y.clippingPlanes;let z=null;if(E!==null){const ne=E.length;z=new Array(ne);for(let ie=0;ie!==ne;++ie)z[ie]=E[ie].clone()}return this.clippingPlanes=z,this.clipIntersection=y.clipIntersection,this.clipShadows=y.clipShadows,this.shadowSide=y.shadowSide,this.colorWrite=y.colorWrite,this.precision=y.precision,this.polygonOffset=y.polygonOffset,this.polygonOffsetFactor=y.polygonOffsetFactor,this.polygonOffsetUnits=y.polygonOffsetUnits,this.dithering=y.dithering,this.alphaTest=y.alphaTest,this.alphaHash=y.alphaHash,this.alphaToCoverage=y.alphaToCoverage,this.premultipliedAlpha=y.premultipliedAlpha,this.forceSinglePass=y.forceSinglePass,this.visible=y.visible,this.toneMapped=y.toneMapped,this.userData=JSON.parse(JSON.stringify(y.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(y){y===!0&&this.version++}}class Yd extends Zd{constructor(y){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new ia(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Pp,this.combine=Fu,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(y)}copy(y){return super.copy(y),this.color.copy(y.color),this.map=y.map,this.lightMap=y.lightMap,this.lightMapIntensity=y.lightMapIntensity,this.aoMap=y.aoMap,this.aoMapIntensity=y.aoMapIntensity,this.specularMap=y.specularMap,this.alphaMap=y.alphaMap,this.envMap=y.envMap,this.envMapRotation.copy(y.envMapRotation),this.combine=y.combine,this.reflectivity=y.reflectivity,this.refractionRatio=y.refractionRatio,this.wireframe=y.wireframe,this.wireframeLinewidth=y.wireframeLinewidth,this.wireframeLinecap=y.wireframeLinecap,this.wireframeLinejoin=y.wireframeLinejoin,this.fog=y.fog,this}}const pm=vw();function vw(){const ee=new ArrayBuffer(4),y=new Float32Array(ee),E=new Uint32Array(ee),z=new Uint32Array(512),ne=new Uint32Array(512);for(let he=0;he<256;++he){const pe=he-127;pe<-27?(z[he]=0,z[he|256]=32768,ne[he]=24,ne[he|256]=24):pe<-14?(z[he]=1024>>-pe-14,z[he|256]=1024>>-pe-14|32768,ne[he]=-pe-1,ne[he|256]=-pe-1):pe<=15?(z[he]=pe+15<<10,z[he|256]=pe+15<<10|32768,ne[he]=13,ne[he|256]=13):pe<128?(z[he]=31744,z[he|256]=64512,ne[he]=24,ne[he|256]=24):(z[he]=31744,z[he|256]=64512,ne[he]=13,ne[he|256]=13)}const ie=new Uint32Array(2048),se=new Uint32Array(64),ae=new Uint32Array(64);for(let he=1;he<1024;++he){let pe=he<<13,ve=0;for(;!(pe&8388608);)pe<<=1,ve-=8388608;pe&=-8388609,ve+=947912704,ie[he]=pe|ve}for(let he=1024;he<2048;++he)ie[he]=939524096+(he-1024<<13);for(let he=1;he<31;++he)se[he]=he<<23;se[31]=1199570944,se[32]=2147483648;for(let he=33;he<63;++he)se[he]=2147483648+(he-32<<23);se[63]=3347054592;for(let he=1;he<64;++he)he!==32&&(ae[he]=1024);return{floatView:y,uint32View:E,baseTable:z,shiftTable:ne,mantissaTable:ie,exponentTable:se,offsetTable:ae}}function Qh(ee){Math.abs(ee)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),ee=Bu(ee,-65504,65504),pm.floatView[0]=ee;const y=pm.uint32View[0],E=y>>23&511;return pm.baseTable[E]+((y&8388607)>>pm.shiftTable[E])}function yw(ee){const y=ee>>10;return pm.uint32View[0]=pm.mantissaTable[pm.offsetTable[y]+(ee&1023)]+pm.exponentTable[y],pm.floatView[0]}class v0{static toHalfFloat(y){return Qh(y)}static fromHalfFloat(y){return yw(y)}}const pd=new yn,Hx=new Yr;let E5=0;class rh{constructor(y,E,z=!1){if(Array.isArray(y))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:E5++}),this.name="",this.array=y,this.itemSize=E,this.count=y!==void 0?y.length/E:0,this.normalized=z,this.usage=Mx,this.updateRanges=[],this.gpuType=Ah,this.version=0}onUploadCallback(){}set needsUpdate(y){y===!0&&this.version++}setUsage(y){return this.usage=y,this}addUpdateRange(y,E){this.updateRanges.push({start:y,count:E})}clearUpdateRanges(){this.updateRanges.length=0}copy(y){return this.name=y.name,this.array=new y.array.constructor(y.array),this.itemSize=y.itemSize,this.count=y.count,this.normalized=y.normalized,this.usage=y.usage,this.gpuType=y.gpuType,this}copyAt(y,E,z){y*=this.itemSize,z*=E.itemSize;for(let ne=0,ie=this.itemSize;ne<ie;ne++)this.array[y+ne]=E.array[z+ne];return this}copyArray(y){return this.array.set(y),this}applyMatrix3(y){if(this.itemSize===2)for(let E=0,z=this.count;E<z;E++)Hx.fromBufferAttribute(this,E),Hx.applyMatrix3(y),this.setXY(E,Hx.x,Hx.y);else if(this.itemSize===3)for(let E=0,z=this.count;E<z;E++)pd.fromBufferAttribute(this,E),pd.applyMatrix3(y),this.setXYZ(E,pd.x,pd.y,pd.z);return this}applyMatrix4(y){for(let E=0,z=this.count;E<z;E++)pd.fromBufferAttribute(this,E),pd.applyMatrix4(y),this.setXYZ(E,pd.x,pd.y,pd.z);return this}applyNormalMatrix(y){for(let E=0,z=this.count;E<z;E++)pd.fromBufferAttribute(this,E),pd.applyNormalMatrix(y),this.setXYZ(E,pd.x,pd.y,pd.z);return this}transformDirection(y){for(let E=0,z=this.count;E<z;E++)pd.fromBufferAttribute(this,E),pd.transformDirection(y),this.setXYZ(E,pd.x,pd.y,pd.z);return this}set(y,E=0){return this.array.set(y,E),this}getComponent(y,E){let z=this.array[y*this.itemSize+E];return this.normalized&&(z=af(z,this.array)),z}setComponent(y,E,z){return this.normalized&&(z=wu(z,this.array)),this.array[y*this.itemSize+E]=z,this}getX(y){let E=this.array[y*this.itemSize];return this.normalized&&(E=af(E,this.array)),E}setX(y,E){return this.normalized&&(E=wu(E,this.array)),this.array[y*this.itemSize]=E,this}getY(y){let E=this.array[y*this.itemSize+1];return this.normalized&&(E=af(E,this.array)),E}setY(y,E){return this.normalized&&(E=wu(E,this.array)),this.array[y*this.itemSize+1]=E,this}getZ(y){let E=this.array[y*this.itemSize+2];return this.normalized&&(E=af(E,this.array)),E}setZ(y,E){return this.normalized&&(E=wu(E,this.array)),this.array[y*this.itemSize+2]=E,this}getW(y){let E=this.array[y*this.itemSize+3];return this.normalized&&(E=af(E,this.array)),E}setW(y,E){return this.normalized&&(E=wu(E,this.array)),this.array[y*this.itemSize+3]=E,this}setXY(y,E,z){return y*=this.itemSize,this.normalized&&(E=wu(E,this.array),z=wu(z,this.array)),this.array[y+0]=E,this.array[y+1]=z,this}setXYZ(y,E,z,ne){return y*=this.itemSize,this.normalized&&(E=wu(E,this.array),z=wu(z,this.array),ne=wu(ne,this.array)),this.array[y+0]=E,this.array[y+1]=z,this.array[y+2]=ne,this}setXYZW(y,E,z,ne,ie){return y*=this.itemSize,this.normalized&&(E=wu(E,this.array),z=wu(z,this.array),ne=wu(ne,this.array),ie=wu(ie,this.array)),this.array[y+0]=E,this.array[y+1]=z,this.array[y+2]=ne,this.array[y+3]=ie,this}onUpload(y){return this.onUploadCallback=y,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const y={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return this.name!==""&&(y.name=this.name),this.usage!==Mx&&(y.usage=this.usage),y}}class dy extends null{constructor(y,E,z){super(new Int8Array(y),E,z)}}class Vx extends null{constructor(y,E,z){super(new Uint8Array(y),E,z)}}class tP extends null{constructor(y,E,z){super(new Uint8ClampedArray(y),E,z)}}class b5 extends null{constructor(y,E,z){super(new Int16Array(y),E,z)}}class nP extends rh{constructor(y,E,z){super(new Uint16Array(y),E,z)}}class Aw extends null{constructor(y,E,z){super(new Int32Array(y),E,z)}}class h2 extends rh{constructor(y,E,z){super(new Uint32Array(y),E,z)}}class d2 extends rh{constructor(y,E,z){super(new Uint16Array(y),E,z),this.isFloat16BufferAttribute=!0}getX(y){let E=yw(this.array[y*this.itemSize]);return this.normalized&&(E=af(E,this.array)),E}setX(y,E){return this.normalized&&(E=wu(E,this.array)),this.array[y*this.itemSize]=Qh(E),this}getY(y){let E=yw(this.array[y*this.itemSize+1]);return this.normalized&&(E=af(E,this.array)),E}setY(y,E){return this.normalized&&(E=wu(E,this.array)),this.array[y*this.itemSize+1]=Qh(E),this}getZ(y){let E=yw(this.array[y*this.itemSize+2]);return this.normalized&&(E=af(E,this.array)),E}setZ(y,E){return this.normalized&&(E=wu(E,this.array)),this.array[y*this.itemSize+2]=Qh(E),this}getW(y){let E=yw(this.array[y*this.itemSize+3]);return this.normalized&&(E=af(E,this.array)),E}setW(y,E){return this.normalized&&(E=wu(E,this.array)),this.array[y*this.itemSize+3]=Qh(E),this}setXY(y,E,z){return y*=this.itemSize,this.normalized&&(E=wu(E,this.array),z=wu(z,this.array)),this.array[y+0]=Qh(E),this.array[y+1]=Qh(z),this}setXYZ(y,E,z,ne){return y*=this.itemSize,this.normalized&&(E=wu(E,this.array),z=wu(z,this.array),ne=wu(ne,this.array)),this.array[y+0]=Qh(E),this.array[y+1]=Qh(z),this.array[y+2]=Qh(ne),this}setXYZW(y,E,z,ne,ie){return y*=this.itemSize,this.normalized&&(E=wu(E,this.array),z=wu(z,this.array),ne=wu(ne,this.array),ie=wu(ie,this.array)),this.array[y+0]=Qh(E),this.array[y+1]=Qh(z),this.array[y+2]=Qh(ne),this.array[y+3]=Qh(ie),this}}class Za extends rh{constructor(y,E,z){super(new Float32Array(y),E,z)}}let vu=0;const lf=new Xa,jx=new ih,Nl=new yn,Vg=new Zf,Gx=new Zf,uf=new yn;class Tu extends Hg{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:vu++}),this.uuid=pg(),this.name="",this.type="BufferGeometry",this.index=null,this.indirect=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(y){return Array.isArray(y)?this.index=new(s2(y)?h2:nP)(y,1):this.index=y,this}setIndirect(y){return this.indirect=y,this}getIndirect(){return this.indirect}getAttribute(y){return this.attributes[y]}setAttribute(y,E){return this.attributes[y]=E,this}deleteAttribute(y){return delete this.attributes[y],this}hasAttribute(y){return this.attributes[y]!==void 0}addGroup(y,E,z=0){this.groups.push({start:y,count:E,materialIndex:z})}clearGroups(){this.groups=[]}setDrawRange(y,E){this.drawRange.start=y,this.drawRange.count=E}applyMatrix4(y){const E=this.attributes.position;E!==void 0&&(E.applyMatrix4(y),E.needsUpdate=!0);const z=this.attributes.normal;if(z!==void 0){const ie=new nu().getNormalMatrix(y);z.applyNormalMatrix(ie),z.needsUpdate=!0}const ne=this.attributes.tangent;return ne!==void 0&&(ne.transformDirection(y),ne.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}applyQuaternion(y){return lf.makeRotationFromQuaternion(y),this.applyMatrix4(lf),this}rotateX(y){return lf.makeRotationX(y),this.applyMatrix4(lf),this}rotateY(y){return lf.makeRotationY(y),this.applyMatrix4(lf),this}rotateZ(y){return lf.makeRotationZ(y),this.applyMatrix4(lf),this}translate(y,E,z){return lf.makeTranslation(y,E,z),this.applyMatrix4(lf),this}scale(y,E,z){return lf.makeScale(y,E,z),this.applyMatrix4(lf),this}lookAt(y){return jx.lookAt(y),jx.updateMatrix(),this.applyMatrix4(jx.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Nl).negate(),this.translate(Nl.x,Nl.y,Nl.z),this}setFromPoints(y){const E=this.getAttribute("position");if(E===void 0){const z=[];for(let ne=0,ie=y.length;ne<ie;ne++){const se=y[ne];z.push(se.x,se.y,se.z||0)}this.setAttribute("position",new Za(z,3))}else{const z=Math.min(y.length,E.count);for(let ne=0;ne<z;ne++){const ie=y[ne];E.setXYZ(ne,ie.x,ie.y,ie.z||0)}y.length>E.count&&console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),E.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Zf);const y=this.attributes.position,E=this.morphAttributes.position;if(y&&y.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new yn(-1/0,-1/0,-1/0),new yn(1/0,1/0,1/0));return}if(y!==void 0){if(this.boundingBox.setFromBufferAttribute(y),E)for(let z=0,ne=E.length;z<ne;z++){const ie=E[z];Vg.setFromBufferAttribute(ie),this.morphTargetsRelative?(uf.addVectors(this.boundingBox.min,Vg.min),this.boundingBox.expandByPoint(uf),uf.addVectors(this.boundingBox.max,Vg.max),this.boundingBox.expandByPoint(uf)):(this.boundingBox.expandByPoint(Vg.min),this.boundingBox.expandByPoint(Vg.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Yf);const y=this.attributes.position,E=this.morphAttributes.position;if(y&&y.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.",this),this.boundingSphere.set(new yn,1/0);return}if(y){const z=this.boundingSphere.center;if(Vg.setFromBufferAttribute(y),E)for(let ie=0,se=E.length;ie<se;ie++){const ae=E[ie];Gx.setFromBufferAttribute(ae),this.morphTargetsRelative?(uf.addVectors(Vg.min,Gx.min),Vg.expandByPoint(uf),uf.addVectors(Vg.max,Gx.max),Vg.expandByPoint(uf)):(Vg.expandByPoint(Gx.min),Vg.expandByPoint(Gx.max))}Vg.getCenter(z);let ne=0;for(let ie=0,se=y.count;ie<se;ie++)uf.fromBufferAttribute(y,ie),ne=Math.max(ne,z.distanceToSquared(uf));if(E)for(let ie=0,se=E.length;ie<se;ie++){const ae=E[ie],he=this.morphTargetsRelative;for(let pe=0,ve=ae.count;pe<ve;pe++)uf.fromBufferAttribute(ae,pe),he&&(Nl.fromBufferAttribute(y,pe),uf.add(Nl)),ne=Math.max(ne,z.distanceToSquared(uf))}this.boundingSphere.radius=Math.sqrt(ne),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){const y=this.index,E=this.attributes;if(y===null||E.position===void 0||E.normal===void 0||E.uv===void 0){console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}const z=E.position,ne=E.normal,ie=E.uv;this.hasAttribute("tangent")===!1&&this.setAttribute("tangent",new rh(new Float32Array(4*z.count),4));const se=this.getAttribute("tangent"),ae=[],he=[];for(let ht=0;ht<z.count;ht++)ae[ht]=new yn,he[ht]=new yn;const pe=new yn,ve=new yn,xe=new yn,Se=new Yr,Be=new Yr,De=new Yr,Re=new yn,Oe=new yn;function Le(ht,pt,gt){pe.fromBufferAttribute(z,ht),ve.fromBufferAttribute(z,pt),xe.fromBufferAttribute(z,gt),Se.fromBufferAttribute(ie,ht),Be.fromBufferAttribute(ie,pt),De.fromBufferAttribute(ie,gt),ve.sub(pe),xe.sub(pe),Be.sub(Se),De.sub(Se);const zt=1/(Be.x*De.y-De.x*Be.y);isFinite(zt)&&(Re.copy(ve).multiplyScalar(De.y).addScaledVector(xe,-Be.y).multiplyScalar(zt),Oe.copy(xe).multiplyScalar(Be.x).addScaledVector(ve,-De.x).multiplyScalar(zt),ae[ht].add(Re),ae[pt].add(Re),ae[gt].add(Re),he[ht].add(Oe),he[pt].add(Oe),he[gt].add(Oe))}let Je=this.groups;Je.length===0&&(Je=[{start:0,count:y.count}]);for(let ht=0,pt=Je.length;ht<pt;++ht){const gt=Je[ht],zt=gt.start,cn=gt.count;for(let Tn=zt,Zn=zt+cn;Tn<Zn;Tn+=3)Le(y.getX(Tn+0),y.getX(Tn+1),y.getX(Tn+2))}const $e=new yn,_e=new yn,st=new yn,ct=new yn;function ut(ht){st.fromBufferAttribute(ne,ht),ct.copy(st);const pt=ae[ht];$e.copy(pt),$e.sub(st.multiplyScalar(st.dot(pt))).normalize(),_e.crossVectors(ct,pt);const zt=_e.dot(he[ht])<0?-1:1;se.setXYZW(ht,$e.x,$e.y,$e.z,zt)}for(let ht=0,pt=Je.length;ht<pt;++ht){const gt=Je[ht],zt=gt.start,cn=gt.count;for(let Tn=zt,Zn=zt+cn;Tn<Zn;Tn+=3)ut(y.getX(Tn+0)),ut(y.getX(Tn+1)),ut(y.getX(Tn+2))}}computeVertexNormals(){const y=this.index,E=this.getAttribute("position");if(E!==void 0){let z=this.getAttribute("normal");if(z===void 0)z=new rh(new Float32Array(E.count*3),3),this.setAttribute("normal",z);else for(let Se=0,Be=z.count;Se<Be;Se++)z.setXYZ(Se,0,0,0);const ne=new yn,ie=new yn,se=new yn,ae=new yn,he=new yn,pe=new yn,ve=new yn,xe=new yn;if(y)for(let Se=0,Be=y.count;Se<Be;Se+=3){const De=y.getX(Se+0),Re=y.getX(Se+1),Oe=y.getX(Se+2);ne.fromBufferAttribute(E,De),ie.fromBufferAttribute(E,Re),se.fromBufferAttribute(E,Oe),ve.subVectors(se,ie),xe.subVectors(ne,ie),ve.cross(xe),ae.fromBufferAttribute(z,De),he.fromBufferAttribute(z,Re),pe.fromBufferAttribute(z,Oe),ae.add(ve),he.add(ve),pe.add(ve),z.setXYZ(De,ae.x,ae.y,ae.z),z.setXYZ(Re,he.x,he.y,he.z),z.setXYZ(Oe,pe.x,pe.y,pe.z)}else for(let Se=0,Be=E.count;Se<Be;Se+=3)ne.fromBufferAttribute(E,Se+0),ie.fromBufferAttribute(E,Se+1),se.fromBufferAttribute(E,Se+2),ve.subVectors(se,ie),xe.subVectors(ne,ie),ve.cross(xe),z.setXYZ(Se+0,ve.x,ve.y,ve.z),z.setXYZ(Se+1,ve.x,ve.y,ve.z),z.setXYZ(Se+2,ve.x,ve.y,ve.z);this.normalizeNormals(),z.needsUpdate=!0}}normalizeNormals(){const y=this.attributes.normal;for(let E=0,z=y.count;E<z;E++)uf.fromBufferAttribute(y,E),uf.normalize(),y.setXYZ(E,uf.x,uf.y,uf.z)}toNonIndexed(){function y(ae,he){const pe=ae.array,ve=ae.itemSize,xe=ae.normalized,Se=new pe.constructor(he.length*ve);let Be=0,De=0;for(let Re=0,Oe=he.length;Re<Oe;Re++){ae.isInterleavedBufferAttribute?Be=he[Re]*ae.data.stride+ae.offset:Be=he[Re]*ve;for(let Le=0;Le<ve;Le++)Se[De++]=pe[Be++]}return new rh(Se,ve,xe)}if(this.index===null)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const E=new Tu,z=this.index.array,ne=this.attributes;for(const ae in ne){const he=ne[ae],pe=y(he,z);E.setAttribute(ae,pe)}const ie=this.morphAttributes;for(const ae in ie){const he=[],pe=ie[ae];for(let ve=0,xe=pe.length;ve<xe;ve++){const Se=pe[ve],Be=y(Se,z);he.push(Be)}E.morphAttributes[ae]=he}E.morphTargetsRelative=this.morphTargetsRelative;const se=this.groups;for(let ae=0,he=se.length;ae<he;ae++){const pe=se[ae];E.addGroup(pe.start,pe.count,pe.materialIndex)}return E}toJSON(){const y={metadata:{version:4.7,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(y.uuid=this.uuid,y.type=this.type,this.name!==""&&(y.name=this.name),Object.keys(this.userData).length>0&&(y.userData=this.userData),this.parameters!==void 0){const he=this.parameters;for(const pe in he)he[pe]!==void 0&&(y[pe]=he[pe]);return y}y.data={attributes:{}};const E=this.index;E!==null&&(y.data.index={type:E.array.constructor.name,array:Array.prototype.slice.call(E.array)});const z=this.attributes;for(const he in z){const pe=z[he];y.data.attributes[he]=pe.toJSON(y.data)}const ne={};let ie=!1;for(const he in this.morphAttributes){const pe=this.morphAttributes[he],ve=[];for(let xe=0,Se=pe.length;xe<Se;xe++){const Be=pe[xe];ve.push(Be.toJSON(y.data))}ve.length>0&&(ne[he]=ve,ie=!0)}ie&&(y.data.morphAttributes=ne,y.data.morphTargetsRelative=this.morphTargetsRelative);const se=this.groups;se.length>0&&(y.data.groups=JSON.parse(JSON.stringify(se)));const ae=this.boundingSphere;return ae!==null&&(y.data.boundingSphere=ae.toJSON()),y}clone(){return new this.constructor().copy(this)}copy(y){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const E={};this.name=y.name;const z=y.index;z!==null&&this.setIndex(z.clone());const ne=y.attributes;for(const pe in ne){const ve=ne[pe];this.setAttribute(pe,ve.clone(E))}const ie=y.morphAttributes;for(const pe in ie){const ve=[],xe=ie[pe];for(let Se=0,Be=xe.length;Se<Be;Se++)ve.push(xe[Se].clone(E));this.morphAttributes[pe]=ve}this.morphTargetsRelative=y.morphTargetsRelative;const se=y.groups;for(let pe=0,ve=se.length;pe<ve;pe++){const xe=se[pe];this.addGroup(xe.start,xe.count,xe.materialIndex)}const ae=y.boundingBox;ae!==null&&(this.boundingBox=ae.clone());const he=y.boundingSphere;return he!==null&&(this.boundingSphere=he.clone()),this.drawRange.start=y.drawRange.start,this.drawRange.count=y.drawRange.count,this.userData=y.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}}const jC=new Xa,_u=new yA,xw=new Yf,cf=new yn,Vc=new yn,iP=new yn,Xx=new yn,Wx=new yn,Qx=new yn,mg=new yn,ww=new yn;class Bc extends ih{constructor(y=new Tu,E=new Yd){super(),this.isMesh=!0,this.type="Mesh",this.geometry=y,this.material=E,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(y,E){return super.copy(y,E),y.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=y.morphTargetInfluences.slice()),y.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},y.morphTargetDictionary)),this.material=Array.isArray(y.material)?y.material.slice():y.material,this.geometry=y.geometry,this}updateMorphTargets(){const E=this.geometry.morphAttributes,z=Object.keys(E);if(z.length>0){const ne=E[z[0]];if(ne!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let ie=0,se=ne.length;ie<se;ie++){const ae=ne[ie].name||String(ie);this.morphTargetInfluences.push(0),this.morphTargetDictionary[ae]=ie}}}}getVertexPosition(y,E){const z=this.geometry,ne=z.attributes.position,ie=z.morphAttributes.position,se=z.morphTargetsRelative;E.fromBufferAttribute(ne,y);const ae=this.morphTargetInfluences;if(ie&&ae){Qx.set(0,0,0);for(let he=0,pe=ie.length;he<pe;he++){const ve=ae[he],xe=ie[he];ve!==0&&(Wx.fromBufferAttribute(xe,y),se?Qx.addScaledVector(Wx,ve):Qx.addScaledVector(Wx.sub(E),ve))}E.add(Qx)}return E}raycast(y,E){const z=this.geometry,ne=this.material,ie=this.matrixWorld;ne!==void 0&&(z.boundingSphere===null&&z.computeBoundingSphere(),xw.copy(z.boundingSphere),xw.applyMatrix4(ie),_u.copy(y.ray).recast(y.near),!(xw.containsPoint(_u.origin)===!1&&(_u.intersectSphere(xw,cf)===null||_u.origin.distanceToSquared(cf)>PN(y.far-y.near,2)))&&(jC.copy(ie).invert(),_u.copy(y.ray).applyMatrix4(jC),!(z.boundingBox!==null&&_u.intersectsBox(z.boundingBox)===!1)&&this._computeIntersections(y,E,_u)))}_computeIntersections(y,E,z){let ne;const ie=this.geometry,se=this.material,ae=ie.index,he=ie.attributes.position,pe=ie.attributes.uv,ve=ie.attributes.uv1,xe=ie.attributes.normal,Se=ie.groups,Be=ie.drawRange;if(ae!==null)if(Array.isArray(se))for(let De=0,Re=Se.length;De<Re;De++){const Oe=Se[De],Le=se[Oe.materialIndex],Je=Math.max(Oe.start,Be.start),$e=Math.min(ae.count,Math.min(Oe.start+Oe.count,Be.start+Be.count));for(let _e=Je,st=$e;_e<st;_e+=3){const ct=ae.getX(_e),ut=ae.getX(_e+1),ht=ae.getX(_e+2);ne=Zx(this,Le,y,z,pe,ve,xe,ct,ut,ht),ne&&(ne.faceIndex=Math.floor(_e/3),ne.face.materialIndex=Oe.materialIndex,E.push(ne))}}else{const De=Math.max(0,Be.start),Re=Math.min(ae.count,Be.start+Be.count);for(let Oe=De,Le=Re;Oe<Le;Oe+=3){const Je=ae.getX(Oe),$e=ae.getX(Oe+1),_e=ae.getX(Oe+2);ne=Zx(this,se,y,z,pe,ve,xe,Je,$e,_e),ne&&(ne.faceIndex=Math.floor(Oe/3),E.push(ne))}}else if(he!==void 0)if(Array.isArray(se))for(let De=0,Re=Se.length;De<Re;De++){const Oe=Se[De],Le=se[Oe.materialIndex],Je=Math.max(Oe.start,Be.start),$e=Math.min(he.count,Math.min(Oe.start+Oe.count,Be.start+Be.count));for(let _e=Je,st=$e;_e<st;_e+=3){const ct=_e,ut=_e+1,ht=_e+2;ne=Zx(this,Le,y,z,pe,ve,xe,ct,ut,ht),ne&&(ne.faceIndex=Math.floor(_e/3),ne.face.materialIndex=Oe.materialIndex,E.push(ne))}}else{const De=Math.max(0,Be.start),Re=Math.min(he.count,Be.start+Be.count);for(let Oe=De,Le=Re;Oe<Le;Oe+=3){const Je=Oe,$e=Oe+1,_e=Oe+2;ne=Zx(this,se,y,z,pe,ve,xe,Je,$e,_e),ne&&(ne.faceIndex=Math.floor(Oe/3),E.push(ne))}}}}function rP(ee,y,E,z,ne,ie,se,ae){let he;if(y.side===wc?he=z.intersectTriangle(se,ie,ne,!0,ae):he=z.intersectTriangle(ne,ie,se,y.side===hp,ae),he===null)return null;ww.copy(ae),ww.applyMatrix4(ee.matrixWorld);const pe=E.ray.origin.distanceTo(ww);return pe<E.near||pe>E.far?null:{distance:pe,point:ww.clone(),object:ee}}function Zx(ee,y,E,z,ne,ie,se,ae,he,pe){ee.getVertexPosition(ae,Vc),ee.getVertexPosition(he,iP),ee.getVertexPosition(pe,Xx);const ve=rP(ee,y,E,z,Vc,iP,Xx,mg);if(ve){const xe=new yn;Cp.getBarycoord(mg,Vc,iP,Xx,xe),ne&&(ve.uv=Cp.getInterpolatedAttribute(ne,ae,he,pe,xe,new Yr)),ie&&(ve.uv1=Cp.getInterpolatedAttribute(ie,ae,he,pe,xe,new Yr)),se&&(ve.normal=Cp.getInterpolatedAttribute(se,ae,he,pe,xe,new yn),ve.normal.dot(z.direction)>0&&ve.normal.multiplyScalar(-1));const Se={a:ae,b:he,c:pe,normal:new yn,materialIndex:0};Cp.getNormal(Vc,iP,Xx,Se.normal),ve.face=Se,ve.barycoord=xe}return ve}class Wa extends Tu{constructor(y=1,E=1,z=1,ne=1,ie=1,se=1){super(),this.type="BoxGeometry",this.parameters={width:y,height:E,depth:z,widthSegments:ne,heightSegments:ie,depthSegments:se};const ae=this;ne=Math.floor(ne),ie=Math.floor(ie),se=Math.floor(se);const he=[],pe=[],ve=[],xe=[];let Se=0,Be=0;De("z","y","x",-1,-1,z,E,y,se,ie,0),De("z","y","x",1,-1,z,E,-y,se,ie,1),De("x","z","y",1,1,y,z,E,ne,se,2),De("x","z","y",1,-1,y,z,-E,ne,se,3),De("x","y","z",1,-1,y,E,z,ne,ie,4),De("x","y","z",-1,-1,y,E,-z,ne,ie,5),this.setIndex(he),this.setAttribute("position",new Za(pe,3)),this.setAttribute("normal",new Za(ve,3)),this.setAttribute("uv",new Za(xe,2));function De(Re,Oe,Le,Je,$e,_e,st,ct,ut,ht,pt){const gt=_e/ut,zt=st/ht,cn=_e/2,Tn=st/2,Zn=ct/2,Nn=ut+1,di=ht+1;let yi=0,bn=0;const Sn=new yn;for(let ki=0;ki<di;ki++){const ti=ki*zt-Tn;for(let fn=0;fn<Nn;fn++){const Bi=fn*gt-cn;Sn[Re]=Bi*Je,Sn[Oe]=ti*$e,Sn[Le]=Zn,pe.push(Sn.x,Sn.y,Sn.z),Sn[Re]=0,Sn[Oe]=0,Sn[Le]=ct>0?1:-1,ve.push(Sn.x,Sn.y,Sn.z),xe.push(fn/ut),xe.push(1-ki/ht),yi+=1}}for(let ki=0;ki<ht;ki++)for(let ti=0;ti<ut;ti++){const fn=Se+ti+Nn*ki,Bi=Se+ti+Nn*(ki+1),jn=Se+(ti+1)+Nn*(ki+1),ei=Se+(ti+1)+Nn*ki;he.push(fn,Bi,ei),he.push(Bi,jn,ei),bn+=6}ae.addGroup(Be,bn,pt),Be+=bn,Se+=yi}}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}static fromJSON(y){return new Wa(y.width,y.height,y.depth,y.widthSegments,y.heightSegments,y.depthSegments)}}function Yx(ee){const y={};for(const E in ee){y[E]={};for(const z in ee[E]){const ne=ee[E][z];ne&&(ne.isColor||ne.isMatrix3||ne.isMatrix4||ne.isVector2||ne.isVector3||ne.isVector4||ne.isTexture||ne.isQuaternion)?ne.isRenderTargetTexture?(console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),y[E][z]=null):y[E][z]=ne.clone():Array.isArray(ne)?y[E][z]=ne.slice():y[E][z]=ne}}return y}function Jp(ee){const y={};for(let E=0;E<ee.length;E++){const z=Yx(ee[E]);for(const ne in z)y[ne]=z[ne]}return y}function f2(ee){const y=[];for(let E=0;E<ee.length;E++)y.push(ee[E].clone());return y}function p2(ee){const y=ee.getRenderTarget();return y===null?ee.outputColorSpace:y.isXRRenderTarget===!0?y.texture.colorSpace:su.workingColorSpace}const GC={clone:Yx,merge:Jp};var g2=`void main() {
|
|
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
|
|
}`,XC=`void main() {
|
|
gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );
|
|
}`;class Rm extends Zd{constructor(y){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=g2,this.fragmentShader=XC,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,y!==void 0&&this.setValues(y)}copy(y){return super.copy(y),this.fragmentShader=y.fragmentShader,this.vertexShader=y.vertexShader,this.uniforms=Yx(y.uniforms),this.uniformsGroups=f2(y.uniformsGroups),this.defines=Object.assign({},y.defines),this.wireframe=y.wireframe,this.wireframeLinewidth=y.wireframeLinewidth,this.fog=y.fog,this.lights=y.lights,this.clipping=y.clipping,this.extensions=Object.assign({},y.extensions),this.glslVersion=y.glslVersion,this}toJSON(y){const E=super.toJSON(y);E.glslVersion=this.glslVersion,E.uniforms={};for(const ne in this.uniforms){const se=this.uniforms[ne].value;se&&se.isTexture?E.uniforms[ne]={type:"t",value:se.toJSON(y).uuid}:se&&se.isColor?E.uniforms[ne]={type:"c",value:se.getHex()}:se&&se.isVector2?E.uniforms[ne]={type:"v2",value:se.toArray()}:se&&se.isVector3?E.uniforms[ne]={type:"v3",value:se.toArray()}:se&&se.isVector4?E.uniforms[ne]={type:"v4",value:se.toArray()}:se&&se.isMatrix3?E.uniforms[ne]={type:"m3",value:se.toArray()}:se&&se.isMatrix4?E.uniforms[ne]={type:"m4",value:se.toArray()}:E.uniforms[ne]={value:se}}Object.keys(this.defines).length>0&&(E.defines=this.defines),E.vertexShader=this.vertexShader,E.fragmentShader=this.fragmentShader,E.lights=this.lights,E.clipping=this.clipping;const z={};for(const ne in this.extensions)this.extensions[ne]===!0&&(z[ne]=!0);return Object.keys(z).length>0&&(E.extensions=z),E}}class oP extends ih{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Xa,this.projectionMatrix=new Xa,this.projectionMatrixInverse=new Xa,this.coordinateSystem=xp}copy(y,E){return super.copy(y,E),this.matrixWorldInverse.copy(y.matrixWorldInverse),this.projectionMatrix.copy(y.projectionMatrix),this.projectionMatrixInverse.copy(y.projectionMatrixInverse),this.coordinateSystem=y.coordinateSystem,this}getWorldDirection(y){return super.getWorldDirection(y).negate()}updateMatrixWorld(y){super.updateMatrixWorld(y),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(y,E){super.updateWorldMatrix(y,E),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const fy=new yn,jc=new Yr,m2=new Yr;class Bd extends oP{constructor(y=50,E=1,z=.1,ne=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=y,this.zoom=1,this.near=z,this.far=ne,this.focus=10,this.aspect=E,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(y,E){return super.copy(y,E),this.fov=y.fov,this.zoom=y.zoom,this.near=y.near,this.far=y.far,this.focus=y.focus,this.aspect=y.aspect,this.view=y.view===null?null:Object.assign({},y.view),this.filmGauge=y.filmGauge,this.filmOffset=y.filmOffset,this}setFocalLength(y){const E=.5*this.getFilmHeight()/y;this.fov=q0*2*Math.atan(E),this.updateProjectionMatrix()}getFocalLength(){const y=Math.tan(J0*.5*this.fov);return .5*this.getFilmHeight()/y}getEffectiveFOV(){return q0*2*Math.atan(Math.tan(J0*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(y,E,z){fy.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),E.set(fy.x,fy.y).multiplyScalar(-y/fy.z),fy.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),z.set(fy.x,fy.y).multiplyScalar(-y/fy.z)}getViewSize(y,E){return this.getViewBounds(y,jc,m2),E.subVectors(m2,jc)}setViewOffset(y,E,z,ne,ie,se){this.aspect=y/E,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=y,this.view.fullHeight=E,this.view.offsetX=z,this.view.offsetY=ne,this.view.width=ie,this.view.height=se,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const y=this.near;let E=y*Math.tan(J0*.5*this.fov)/this.zoom,z=2*E,ne=this.aspect*z,ie=-.5*ne;const se=this.view;if(this.view!==null&&this.view.enabled){const he=se.fullWidth,pe=se.fullHeight;ie+=se.offsetX*ne/he,E-=se.offsetY*z/pe,ne*=se.width/he,z*=se.height/pe}const ae=this.filmOffset;ae!==0&&(ie+=y*ae/this.getFilmWidth()),this.projectionMatrix.makePerspective(ie,ie+ne,E,E-z,y,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(y){const E=super.toJSON(y);return E.object.fov=this.fov,E.object.zoom=this.zoom,E.object.near=this.near,E.object.far=this.far,E.object.focus=this.focus,E.object.aspect=this.aspect,this.view!==null&&(E.object.view=Object.assign({},this.view)),E.object.filmGauge=this.filmGauge,E.object.filmOffset=this.filmOffset,E}}const Kx=-90,Td=1;class sP extends ih{constructor(y,E,z){super(),this.type="CubeCamera",this.renderTarget=z,this.coordinateSystem=null,this.activeMipmapLevel=0;const ne=new Bd(Kx,Td,y,E);ne.layers=this.layers,this.add(ne);const ie=new Bd(Kx,Td,y,E);ie.layers=this.layers,this.add(ie);const se=new Bd(Kx,Td,y,E);se.layers=this.layers,this.add(se);const ae=new Bd(Kx,Td,y,E);ae.layers=this.layers,this.add(ae);const he=new Bd(Kx,Td,y,E);he.layers=this.layers,this.add(he);const pe=new Bd(Kx,Td,y,E);pe.layers=this.layers,this.add(pe)}updateCoordinateSystem(){const y=this.coordinateSystem,E=this.children.concat(),[z,ne,ie,se,ae,he]=E;for(const pe of E)this.remove(pe);if(y===xp)z.up.set(0,1,0),z.lookAt(1,0,0),ne.up.set(0,1,0),ne.lookAt(-1,0,0),ie.up.set(0,0,-1),ie.lookAt(0,1,0),se.up.set(0,0,1),se.lookAt(0,-1,0),ae.up.set(0,1,0),ae.lookAt(0,0,1),he.up.set(0,1,0),he.lookAt(0,0,-1);else if(y===zg)z.up.set(0,-1,0),z.lookAt(-1,0,0),ne.up.set(0,-1,0),ne.lookAt(1,0,0),ie.up.set(0,0,1),ie.lookAt(0,1,0),se.up.set(0,0,-1),se.lookAt(0,-1,0),ae.up.set(0,-1,0),ae.lookAt(0,0,1),he.up.set(0,-1,0),he.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+y);for(const pe of E)this.add(pe),pe.updateMatrixWorld()}update(y,E){this.parent===null&&this.updateMatrixWorld();const{renderTarget:z,activeMipmapLevel:ne}=this;this.coordinateSystem!==y.coordinateSystem&&(this.coordinateSystem=y.coordinateSystem,this.updateCoordinateSystem());const[ie,se,ae,he,pe,ve]=this.children,xe=y.getRenderTarget(),Se=y.getActiveCubeFace(),Be=y.getActiveMipmapLevel(),De=y.xr.enabled;y.xr.enabled=!1;const Re=z.texture.generateMipmaps;z.texture.generateMipmaps=!1,y.setRenderTarget(z,0,ne),y.render(E,ie),y.setRenderTarget(z,1,ne),y.render(E,se),y.setRenderTarget(z,2,ne),y.render(E,ae),y.setRenderTarget(z,3,ne),y.render(E,he),y.setRenderTarget(z,4,ne),y.render(E,pe),z.texture.generateMipmaps=Re,y.setRenderTarget(z,5,ne),y.render(E,ve),y.setRenderTarget(xe,Se,Be),y.xr.enabled=De,z.texture.needsPMREMUpdate=!0}}class Gr extends nh{constructor(y=[],E=ud,z,ne,ie,se,ae,he,pe,ve){super(y,E,z,ne,ie,se,ae,he,pe,ve),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(y){this.image=y}}class Jx extends Kp{constructor(y=1,E={}){super(y,y,E),this.isWebGLCubeRenderTarget=!0;const z={width:y,height:y,depth:1},ne=[z,z,z,z,z,z];this.texture=new Gr(ne),this._setTextureOptions(E),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(y,E){this.texture.type=E.type,this.texture.colorSpace=E.colorSpace,this.texture.generateMipmaps=E.generateMipmaps,this.texture.minFilter=E.minFilter,this.texture.magFilter=E.magFilter;const z={uniforms:{tEquirect:{value:null}},vertexShader:`
|
|
|
|
varying vec3 vWorldDirection;
|
|
|
|
vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
|
|
|
|
return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
|
|
|
|
}
|
|
|
|
void main() {
|
|
|
|
vWorldDirection = transformDirection( position, modelMatrix );
|
|
|
|
#include <begin_vertex>
|
|
#include <project_vertex>
|
|
|
|
}
|
|
`,fragmentShader:`
|
|
|
|
uniform sampler2D tEquirect;
|
|
|
|
varying vec3 vWorldDirection;
|
|
|
|
#include <common>
|
|
|
|
void main() {
|
|
|
|
vec3 direction = normalize( vWorldDirection );
|
|
|
|
vec2 sampleUV = equirectUv( direction );
|
|
|
|
gl_FragColor = texture2D( tEquirect, sampleUV );
|
|
|
|
}
|
|
`},ne=new Wa(5,5,5),ie=new Rm({name:"CubemapFromEquirect",uniforms:Yx(z.uniforms),vertexShader:z.vertexShader,fragmentShader:z.fragmentShader,side:wc,blending:of});ie.uniforms.tEquirect.value=E;const se=new Bc(ne,ie),ae=E.minFilter;return E.minFilter===mp&&(E.minFilter=qu),new sP(1,10,this).update(y,se),E.minFilter=ae,se.geometry.dispose(),se.material.dispose(),this}clear(y,E=!0,z=!0,ne=!0){const ie=y.getRenderTarget();for(let se=0;se<6;se++)y.setRenderTarget(this,se),y.clear(E,z,ne);y.setRenderTarget(ie)}}class PA extends ih{constructor(){super(),this.isGroup=!0,this.type="Group"}}const M5={type:"move"};class aP{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new PA,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new PA,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new yn,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new yn),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new PA,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new yn,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new yn),this._grip}dispatchEvent(y){return this._targetRay!==null&&this._targetRay.dispatchEvent(y),this._grip!==null&&this._grip.dispatchEvent(y),this._hand!==null&&this._hand.dispatchEvent(y),this}connect(y){if(y&&y.hand){const E=this._hand;if(E)for(const z of y.hand.values())this._getHandJoint(E,z)}return this.dispatchEvent({type:"connected",data:y}),this}disconnect(y){return this.dispatchEvent({type:"disconnected",data:y}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(y,E,z){let ne=null,ie=null,se=null;const ae=this._targetRay,he=this._grip,pe=this._hand;if(y&&E.session.visibilityState!=="visible-blurred"){if(pe&&y.hand){se=!0;for(const Re of y.hand.values()){const Oe=E.getJointPose(Re,z),Le=this._getHandJoint(pe,Re);Oe!==null&&(Le.matrix.fromArray(Oe.transform.matrix),Le.matrix.decompose(Le.position,Le.rotation,Le.scale),Le.matrixWorldNeedsUpdate=!0,Le.jointRadius=Oe.radius),Le.visible=Oe!==null}const ve=pe.joints["index-finger-tip"],xe=pe.joints["thumb-tip"],Se=ve.position.distanceTo(xe.position),Be=.02,De=.005;pe.inputState.pinching&&Se>Be+De?(pe.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:y.handedness,target:this})):!pe.inputState.pinching&&Se<=Be-De&&(pe.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:y.handedness,target:this}))}else he!==null&&y.gripSpace&&(ie=E.getPose(y.gripSpace,z),ie!==null&&(he.matrix.fromArray(ie.transform.matrix),he.matrix.decompose(he.position,he.rotation,he.scale),he.matrixWorldNeedsUpdate=!0,ie.linearVelocity?(he.hasLinearVelocity=!0,he.linearVelocity.copy(ie.linearVelocity)):he.hasLinearVelocity=!1,ie.angularVelocity?(he.hasAngularVelocity=!0,he.angularVelocity.copy(ie.angularVelocity)):he.hasAngularVelocity=!1));ae!==null&&(ne=E.getPose(y.targetRaySpace,z),ne===null&&ie!==null&&(ne=ie),ne!==null&&(ae.matrix.fromArray(ne.transform.matrix),ae.matrix.decompose(ae.position,ae.rotation,ae.scale),ae.matrixWorldNeedsUpdate=!0,ne.linearVelocity?(ae.hasLinearVelocity=!0,ae.linearVelocity.copy(ne.linearVelocity)):ae.hasLinearVelocity=!1,ne.angularVelocity?(ae.hasAngularVelocity=!0,ae.angularVelocity.copy(ne.angularVelocity)):ae.hasAngularVelocity=!1,this.dispatchEvent(M5)))}return ae!==null&&(ae.visible=ne!==null),he!==null&&(he.visible=ie!==null),pe!==null&&(pe.visible=se!==null),this}_getHandJoint(y,E){if(y.joints[E.jointName]===void 0){const z=new PA;z.matrixAutoUpdate=!1,z.visible=!1,y.joints[E.jointName]=z,y.add(z)}return y.joints[E.jointName]}}class Sw{constructor(y,E=25e-5){this.isFogExp2=!0,this.name="",this.color=new ia(y),this.density=E}clone(){return new Sw(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class y0{constructor(y,E=1,z=1e3){this.isFog=!0,this.name="",this.color=new ia(y),this.near=E,this.far=z}clone(){return new y0(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Pw extends ih{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Pp,this.environmentIntensity=1,this.environmentRotation=new Pp,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(y,E){return super.copy(y,E),y.background!==null&&(this.background=y.background.clone()),y.environment!==null&&(this.environment=y.environment.clone()),y.fog!==null&&(this.fog=y.fog.clone()),this.backgroundBlurriness=y.backgroundBlurriness,this.backgroundIntensity=y.backgroundIntensity,this.backgroundRotation.copy(y.backgroundRotation),this.environmentIntensity=y.environmentIntensity,this.environmentRotation.copy(y.environmentRotation),y.overrideMaterial!==null&&(this.overrideMaterial=y.overrideMaterial.clone()),this.matrixAutoUpdate=y.matrixAutoUpdate,this}toJSON(y){const E=super.toJSON(y);return this.fog!==null&&(E.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(E.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(E.object.backgroundIntensity=this.backgroundIntensity),E.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(E.object.environmentIntensity=this.environmentIntensity),E.object.environmentRotation=this.environmentRotation.toArray(),E}}class Zh{constructor(y,E){this.isInterleavedBuffer=!0,this.array=y,this.stride=E,this.count=y!==void 0?y.length/E:0,this.usage=Mx,this.updateRanges=[],this.version=0,this.uuid=pg()}onUploadCallback(){}set needsUpdate(y){y===!0&&this.version++}setUsage(y){return this.usage=y,this}addUpdateRange(y,E){this.updateRanges.push({start:y,count:E})}clearUpdateRanges(){this.updateRanges.length=0}copy(y){return this.array=new y.array.constructor(y.array),this.count=y.count,this.stride=y.stride,this.usage=y.usage,this}copyAt(y,E,z){y*=this.stride,z*=E.stride;for(let ne=0,ie=this.stride;ne<ie;ne++)this.array[y+ne]=E.array[z+ne];return this}set(y,E=0){return this.array.set(y,E),this}clone(y){y.arrayBuffers===void 0&&(y.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=pg()),y.arrayBuffers[this.array.buffer._uuid]===void 0&&(y.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const E=new this.array.constructor(y.arrayBuffers[this.array.buffer._uuid]),z=new this.constructor(E,this.stride);return z.setUsage(this.usage),z}onUpload(y){return this.onUploadCallback=y,this}toJSON(y){return y.arrayBuffers===void 0&&(y.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=pg()),y.arrayBuffers[this.array.buffer._uuid]===void 0&&(y.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}const bp=new yn;class wh{constructor(y,E,z,ne=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=y,this.itemSize=E,this.offset=z,this.normalized=ne}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(y){this.data.needsUpdate=y}applyMatrix4(y){for(let E=0,z=this.data.count;E<z;E++)bp.fromBufferAttribute(this,E),bp.applyMatrix4(y),this.setXYZ(E,bp.x,bp.y,bp.z);return this}applyNormalMatrix(y){for(let E=0,z=this.count;E<z;E++)bp.fromBufferAttribute(this,E),bp.applyNormalMatrix(y),this.setXYZ(E,bp.x,bp.y,bp.z);return this}transformDirection(y){for(let E=0,z=this.count;E<z;E++)bp.fromBufferAttribute(this,E),bp.transformDirection(y),this.setXYZ(E,bp.x,bp.y,bp.z);return this}getComponent(y,E){let z=this.array[y*this.data.stride+this.offset+E];return this.normalized&&(z=af(z,this.array)),z}setComponent(y,E,z){return this.normalized&&(z=wu(z,this.array)),this.data.array[y*this.data.stride+this.offset+E]=z,this}setX(y,E){return this.normalized&&(E=wu(E,this.array)),this.data.array[y*this.data.stride+this.offset]=E,this}setY(y,E){return this.normalized&&(E=wu(E,this.array)),this.data.array[y*this.data.stride+this.offset+1]=E,this}setZ(y,E){return this.normalized&&(E=wu(E,this.array)),this.data.array[y*this.data.stride+this.offset+2]=E,this}setW(y,E){return this.normalized&&(E=wu(E,this.array)),this.data.array[y*this.data.stride+this.offset+3]=E,this}getX(y){let E=this.data.array[y*this.data.stride+this.offset];return this.normalized&&(E=af(E,this.array)),E}getY(y){let E=this.data.array[y*this.data.stride+this.offset+1];return this.normalized&&(E=af(E,this.array)),E}getZ(y){let E=this.data.array[y*this.data.stride+this.offset+2];return this.normalized&&(E=af(E,this.array)),E}getW(y){let E=this.data.array[y*this.data.stride+this.offset+3];return this.normalized&&(E=af(E,this.array)),E}setXY(y,E,z){return y=y*this.data.stride+this.offset,this.normalized&&(E=wu(E,this.array),z=wu(z,this.array)),this.data.array[y+0]=E,this.data.array[y+1]=z,this}setXYZ(y,E,z,ne){return y=y*this.data.stride+this.offset,this.normalized&&(E=wu(E,this.array),z=wu(z,this.array),ne=wu(ne,this.array)),this.data.array[y+0]=E,this.data.array[y+1]=z,this.data.array[y+2]=ne,this}setXYZW(y,E,z,ne,ie){return y=y*this.data.stride+this.offset,this.normalized&&(E=wu(E,this.array),z=wu(z,this.array),ne=wu(ne,this.array),ie=wu(ie,this.array)),this.data.array[y+0]=E,this.data.array[y+1]=z,this.data.array[y+2]=ne,this.data.array[y+3]=ie,this}clone(y){if(y===void 0){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.");const E=[];for(let z=0;z<this.count;z++){const ne=z*this.data.stride+this.offset;for(let ie=0;ie<this.itemSize;ie++)E.push(this.data.array[ne+ie])}return new rh(new this.array.constructor(E),this.itemSize,this.normalized)}else return y.interleavedBuffers===void 0&&(y.interleavedBuffers={}),y.interleavedBuffers[this.data.uuid]===void 0&&(y.interleavedBuffers[this.data.uuid]=this.data.clone(y)),new wh(y.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(y){if(y===void 0){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.");const E=[];for(let z=0;z<this.count;z++){const ne=z*this.data.stride+this.offset;for(let ie=0;ie<this.itemSize;ie++)E.push(this.data.array[ne+ie])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:E,normalized:this.normalized}}else return y.interleavedBuffers===void 0&&(y.interleavedBuffers={}),y.interleavedBuffers[this.data.uuid]===void 0&&(y.interleavedBuffers[this.data.uuid]=this.data.toJSON(y)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}class v2 extends Zd{constructor(y){super(),this.isSpriteMaterial=!0,this.type="SpriteMaterial",this.color=new ia(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(y)}copy(y){return super.copy(y),this.color.copy(y.color),this.map=y.map,this.alphaMap=y.alphaMap,this.rotation=y.rotation,this.sizeAttenuation=y.sizeAttenuation,this.fog=y.fog,this}}let $u;const gm=new yn,qx=new yn,_x=new yn,Tf=new Yr,Kf=new Yr,Cw=new Xa,$x=new yn,e1=new yn,CA=new yn,WC=new Yr,ec=new Yr,cu=new Yr;class B5 extends null{constructor(y=new v2){if(super(),this.isSprite=!0,this.type="Sprite",$u===void 0){$u=new Tu;const E=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),z=new Zh(E,5);$u.setIndex([0,1,2,0,2,3]),$u.setAttribute("position",new wh(z,3,0,!1)),$u.setAttribute("uv",new wh(z,2,3,!1))}this.geometry=$u,this.material=y,this.center=new Yr(.5,.5),this.count=1}raycast(y,E){y.camera===null&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),qx.setFromMatrixScale(this.matrixWorld),Cw.copy(y.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(y.camera.matrixWorldInverse,this.matrixWorld),_x.setFromMatrixPosition(this.modelViewMatrix),y.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1&&qx.multiplyScalar(-_x.z);const z=this.material.rotation;let ne,ie;z!==0&&(ie=Math.cos(z),ne=Math.sin(z));const se=this.center;Jf($x.set(-.5,-.5,0),_x,se,qx,ne,ie),Jf(e1.set(.5,-.5,0),_x,se,qx,ne,ie),Jf(CA.set(.5,.5,0),_x,se,qx,ne,ie),WC.set(0,0),ec.set(1,0),cu.set(1,1);let ae=y.ray.intersectTriangle($x,e1,CA,!1,gm);if(ae===null&&(Jf(e1.set(-.5,.5,0),_x,se,qx,ne,ie),ec.set(0,1),ae=y.ray.intersectTriangle($x,CA,e1,!1,gm),ae===null))return;const he=y.ray.origin.distanceTo(gm);he<y.near||he>y.far||E.push({distance:he,point:gm.clone(),uv:Cp.getInterpolation(gm,$x,e1,CA,WC,ec,cu,new Yr),face:null,object:this})}copy(y,E){return super.copy(y,E),y.center!==void 0&&this.center.copy(y.center),this.material=y.material,this}}function Jf(ee,y,E,z,ne,ie){Tf.subVectors(ee,E).addScalar(.5).multiply(z),ne!==void 0?(Kf.x=ie*Tf.x-ne*Tf.y,Kf.y=ne*Tf.x+ie*Tf.y):Kf.copy(Tf),ee.copy(y),ee.x+=Kf.x,ee.y+=Kf.y,ee.applyMatrix4(Cw)}const tc=new yn,y2=new yn;class s3 extends null{constructor(){super(),this.isLOD=!0,this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}copy(y){super.copy(y,!1);const E=y.levels;for(let z=0,ne=E.length;z<ne;z++){const ie=E[z];this.addLevel(ie.object.clone(),ie.distance,ie.hysteresis)}return this.autoUpdate=y.autoUpdate,this}addLevel(y,E=0,z=0){E=Math.abs(E);const ne=this.levels;let ie;for(ie=0;ie<ne.length&&!(E<ne[ie].distance);ie++);return ne.splice(ie,0,{distance:E,hysteresis:z,object:y}),this.add(y),this}removeLevel(y){const E=this.levels;for(let z=0;z<E.length;z++)if(E[z].distance===y){const ne=E.splice(z,1);return this.remove(ne[0].object),!0}return!1}getCurrentLevel(){return this._currentLevel}getObjectForDistance(y){const E=this.levels;if(E.length>0){let z,ne;for(z=1,ne=E.length;z<ne;z++){let ie=E[z].distance;if(E[z].object.visible&&(ie-=ie*E[z].hysteresis),y<ie)break}return E[z-1].object}return null}raycast(y,E){if(this.levels.length>0){tc.setFromMatrixPosition(this.matrixWorld);const ne=y.ray.origin.distanceTo(tc);this.getObjectForDistance(ne).raycast(y,E)}}update(y){const E=this.levels;if(E.length>1){tc.setFromMatrixPosition(y.matrixWorld),y2.setFromMatrixPosition(this.matrixWorld);const z=tc.distanceTo(y2)/y.zoom;E[0].object.visible=!0;let ne,ie;for(ne=1,ie=E.length;ne<ie;ne++){let se=E[ne].distance;if(E[ne].object.visible&&(se-=se*E[ne].hysteresis),z>=se)E[ne-1].object.visible=!1,E[ne].object.visible=!0;else break}for(this._currentLevel=ne-1;ne<ie;ne++)E[ne].object.visible=!1}}toJSON(y){const E=super.toJSON(y);this.autoUpdate===!1&&(E.object.autoUpdate=!1),E.object.levels=[];const z=this.levels;for(let ne=0,ie=z.length;ne<ie;ne++){const se=z[ne];E.object.levels.push({object:se.object.uuid,distance:se.distance,hysteresis:se.hysteresis})}return E}}const A2=new yn,Ew=new Ul,ma=new Ul,T5=new yn,Df=new Xa,py=new yn,bw=new Yf,t1=new Xa,QC=new yA;class D5 extends null{constructor(y,E){super(y,E),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=Mf,this.bindMatrix=new Xa,this.bindMatrixInverse=new Xa,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const y=this.geometry;this.boundingBox===null&&(this.boundingBox=new Zf),this.boundingBox.makeEmpty();const E=y.getAttribute("position");for(let z=0;z<E.count;z++)this.getVertexPosition(z,py),this.boundingBox.expandByPoint(py)}computeBoundingSphere(){const y=this.geometry;this.boundingSphere===null&&(this.boundingSphere=new Yf),this.boundingSphere.makeEmpty();const E=y.getAttribute("position");for(let z=0;z<E.count;z++)this.getVertexPosition(z,py),this.boundingSphere.expandByPoint(py)}copy(y,E){return super.copy(y,E),this.bindMode=y.bindMode,this.bindMatrix.copy(y.bindMatrix),this.bindMatrixInverse.copy(y.bindMatrixInverse),this.skeleton=y.skeleton,y.boundingBox!==null&&(this.boundingBox=y.boundingBox.clone()),y.boundingSphere!==null&&(this.boundingSphere=y.boundingSphere.clone()),this}raycast(y,E){const z=this.material,ne=this.matrixWorld;z!==void 0&&(this.boundingSphere===null&&this.computeBoundingSphere(),bw.copy(this.boundingSphere),bw.applyMatrix4(ne),y.ray.intersectsSphere(bw)!==!1&&(t1.copy(ne).invert(),QC.copy(y.ray).applyMatrix4(t1),!(this.boundingBox!==null&&QC.intersectsBox(this.boundingBox)===!1)&&this._computeIntersections(y,E,QC)))}getVertexPosition(y,E){return super.getVertexPosition(y,E),this.applyBoneTransform(y,E),E}bind(y,E){this.skeleton=y,E===void 0&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),E=this.matrixWorld),this.bindMatrix.copy(E),this.bindMatrixInverse.copy(E).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const y=new Ul,E=this.geometry.attributes.skinWeight;for(let z=0,ne=E.count;z<ne;z++){y.fromBufferAttribute(E,z);const ie=1/y.manhattanLength();ie!==1/0?y.multiplyScalar(ie):y.set(1,0,0,0),E.setXYZW(z,y.x,y.y,y.z,y.w)}}updateMatrixWorld(y){super.updateMatrixWorld(y),this.bindMode===Mf?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode===Mc?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}applyBoneTransform(y,E){const z=this.skeleton,ne=this.geometry;Ew.fromBufferAttribute(ne.attributes.skinIndex,y),ma.fromBufferAttribute(ne.attributes.skinWeight,y),A2.copy(E).applyMatrix4(this.bindMatrix),E.set(0,0,0);for(let ie=0;ie<4;ie++){const se=ma.getComponent(ie);if(se!==0){const ae=Ew.getComponent(ie);Df.multiplyMatrices(z.bones[ae].matrixWorld,z.boneInverses[ae]),E.addScaledVector(T5.copy(A2).applyMatrix4(Df),se)}}return E.applyMatrix4(this.bindMatrixInverse)}}class ZC extends null{constructor(){super(),this.isBone=!0,this.type="Bone"}}class A0 extends nh{constructor(y=null,E=1,z=1,ne,ie,se,ae,he,pe=Ic,ve=Ic,xe,Se){super(null,se,ae,he,pe,ve,ne,ie,xe,Se),this.isDataTexture=!0,this.image={data:y,width:E,height:z},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}const lP=new Xa,Dd=new Xa;class Eu{constructor(y=[],E=[]){this.uuid=pg(),this.bones=y.slice(0),this.boneInverses=E,this.boneMatrices=null,this.boneTexture=null,this.init()}init(){const y=this.bones,E=this.boneInverses;if(this.boneMatrices=new Float32Array(y.length*16),E.length===0)this.calculateInverses();else if(y.length!==E.length){console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(let z=0,ne=this.bones.length;z<ne;z++)this.boneInverses.push(new Xa)}}calculateInverses(){this.boneInverses.length=0;for(let y=0,E=this.bones.length;y<E;y++){const z=new Xa;this.bones[y]&&z.copy(this.bones[y].matrixWorld).invert(),this.boneInverses.push(z)}}pose(){for(let y=0,E=this.bones.length;y<E;y++){const z=this.bones[y];z&&z.matrixWorld.copy(this.boneInverses[y]).invert()}for(let y=0,E=this.bones.length;y<E;y++){const z=this.bones[y];z&&(z.parent&&z.parent.isBone?(z.matrix.copy(z.parent.matrixWorld).invert(),z.matrix.multiply(z.matrixWorld)):z.matrix.copy(z.matrixWorld),z.matrix.decompose(z.position,z.quaternion,z.scale))}}update(){const y=this.bones,E=this.boneInverses,z=this.boneMatrices,ne=this.boneTexture;for(let ie=0,se=y.length;ie<se;ie++){const ae=y[ie]?y[ie].matrixWorld:Dd;lP.multiplyMatrices(ae,E[ie]),lP.toArray(z,ie*16)}ne!==null&&(ne.needsUpdate=!0)}clone(){return new Eu(this.bones,this.boneInverses)}computeBoneTexture(){let y=Math.sqrt(this.bones.length*4);y=Math.ceil(y/4)*4,y=Math.max(y,4);const E=new Float32Array(y*y*4);E.set(this.boneMatrices);const z=new A0(E,y,y,Ws,Ah);return z.needsUpdate=!0,this.boneMatrices=E,this.boneTexture=z,this}getBoneByName(y){for(let E=0,z=this.bones.length;E<z;E++){const ne=this.bones[E];if(ne.name===y)return ne}}dispose(){this.boneTexture!==null&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(y,E){this.uuid=y.uuid;for(let z=0,ne=y.bones.length;z<ne;z++){const ie=y.bones[z];let se=E[ie];se===void 0&&(console.warn("THREE.Skeleton: No bone found with UUID:",ie),se=new ZC),this.bones.push(se),this.boneInverses.push(new Xa().fromArray(y.boneInverses[z]))}return this.init(),this}toJSON(){const y={metadata:{version:4.7,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};y.uuid=this.uuid;const E=this.bones,z=this.boneInverses;for(let ne=0,ie=E.length;ne<ie;ne++){const se=E[ne];y.bones.push(se.uuid);const ae=z[ne];y.boneInverses.push(ae.toArray())}return y}}class vg extends rh{constructor(y,E,z,ne=1){super(y,E,z),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=ne}copy(y){return super.copy(y),this.meshPerAttribute=y.meshPerAttribute,this}toJSON(){const y=super.toJSON();return y.meshPerAttribute=this.meshPerAttribute,y.isInstancedBufferAttribute=!0,y}}const rv=new Xa,Mw=new Xa,uP=null,x2=new Zf,N5=new Xa,Bw=new Bc,Tw=new Yf;class w2 extends null{constructor(y,E,z){super(y,E),this.isInstancedMesh=!0,this.instanceMatrix=new vg(new Float32Array(z*16),16),this.instanceColor=null,this.morphTexture=null,this.count=z,this.boundingBox=null,this.boundingSphere=null;for(let ne=0;ne<z;ne++)this.setMatrixAt(ne,N5)}computeBoundingBox(){const y=this.geometry,E=this.count;this.boundingBox===null&&(this.boundingBox=new Zf),y.boundingBox===null&&y.computeBoundingBox(),this.boundingBox.makeEmpty();for(let z=0;z<E;z++)this.getMatrixAt(z,rv),x2.copy(y.boundingBox).applyMatrix4(rv),this.boundingBox.union(x2)}computeBoundingSphere(){const y=this.geometry,E=this.count;this.boundingSphere===null&&(this.boundingSphere=new Yf),y.boundingSphere===null&&y.computeBoundingSphere(),this.boundingSphere.makeEmpty();for(let z=0;z<E;z++)this.getMatrixAt(z,rv),Tw.copy(y.boundingSphere).applyMatrix4(rv),this.boundingSphere.union(Tw)}copy(y,E){return super.copy(y,E),this.instanceMatrix.copy(y.instanceMatrix),y.morphTexture!==null&&(this.morphTexture=y.morphTexture.clone()),y.instanceColor!==null&&(this.instanceColor=y.instanceColor.clone()),this.count=y.count,y.boundingBox!==null&&(this.boundingBox=y.boundingBox.clone()),y.boundingSphere!==null&&(this.boundingSphere=y.boundingSphere.clone()),this}getColorAt(y,E){E.fromArray(this.instanceColor.array,y*3)}getMatrixAt(y,E){E.fromArray(this.instanceMatrix.array,y*16)}getMorphAt(y,E){const z=E.morphTargetInfluences,ne=this.morphTexture.source.data.data,ie=z.length+1,se=y*ie+1;for(let ae=0;ae<z.length;ae++)z[ae]=ne[se+ae]}raycast(y,E){const z=this.matrixWorld,ne=this.count;if(Bw.geometry=this.geometry,Bw.material=this.material,Bw.material!==void 0&&(this.boundingSphere===null&&this.computeBoundingSphere(),Tw.copy(this.boundingSphere),Tw.applyMatrix4(z),y.ray.intersectsSphere(Tw)!==!1))for(let ie=0;ie<ne;ie++){this.getMatrixAt(ie,rv),Mw.multiplyMatrices(z,rv),Bw.matrixWorld=Mw,Bw.raycast(y,uP);for(let se=0,ae=uP.length;se<ae;se++){const he=uP[se];he.instanceId=ie,he.object=this,E.push(he)}uP.length=0}}setColorAt(y,E){this.instanceColor===null&&(this.instanceColor=new vg(new Float32Array(this.instanceMatrix.count*3).fill(1),3)),E.toArray(this.instanceColor.array,y*3)}setMatrixAt(y,E){E.toArray(this.instanceMatrix.array,y*16)}setMorphAt(y,E){const z=E.morphTargetInfluences,ne=z.length+1;this.morphTexture===null&&(this.morphTexture=new A0(new Float32Array(ne*this.count),ne,this.count,rA,Ah));const ie=this.morphTexture.source.data.data;let se=0;for(let pe=0;pe<z.length;pe++)se+=z[pe];const ae=this.geometry.morphTargetsRelative?1:1-se,he=ne*y;ie[he]=ae,ie.set(z,he+1)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:"dispose"}),this.morphTexture!==null&&(this.morphTexture.dispose(),this.morphTexture=null)}}const Dw=new yn,YC=new yn,a3=new nu;class Yh{constructor(y=new yn(1,0,0),E=0){this.isPlane=!0,this.normal=y,this.constant=E}set(y,E){return this.normal.copy(y),this.constant=E,this}setComponents(y,E,z,ne){return this.normal.set(y,E,z),this.constant=ne,this}setFromNormalAndCoplanarPoint(y,E){return this.normal.copy(y),this.constant=-E.dot(this.normal),this}setFromCoplanarPoints(y,E,z){const ne=Dw.subVectors(z,E).cross(YC.subVectors(y,E)).normalize();return this.setFromNormalAndCoplanarPoint(ne,y),this}copy(y){return this.normal.copy(y.normal),this.constant=y.constant,this}normalize(){const y=1/this.normal.length();return this.normal.multiplyScalar(y),this.constant*=y,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(y){return this.normal.dot(y)+this.constant}distanceToSphere(y){return this.distanceToPoint(y.center)-y.radius}projectPoint(y,E){return E.copy(y).addScaledVector(this.normal,-this.distanceToPoint(y))}intersectLine(y,E){const z=y.delta(Dw),ne=this.normal.dot(z);if(ne===0)return this.distanceToPoint(y.start)===0?E.copy(y.start):null;const ie=-(y.start.dot(this.normal)+this.constant)/ne;return ie<0||ie>1?null:E.copy(y.start).addScaledVector(z,ie)}intersectsLine(y){const E=this.distanceToPoint(y.start),z=this.distanceToPoint(y.end);return E<0&&z>0||z<0&&E>0}intersectsBox(y){return y.intersectsPlane(this)}intersectsSphere(y){return y.intersectsPlane(this)}coplanarPoint(y){return y.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(y,E){const z=E||a3.getNormalMatrix(y),ne=this.coplanarPoint(Dw).applyMatrix4(y),ie=this.normal.applyMatrix3(z).normalize();return this.constant=-ne.dot(ie),this}translate(y){return this.constant-=y.dot(this.normal),this}equals(y){return y.normal.equals(this.normal)&&y.constant===this.constant}clone(){return new this.constructor().copy(this)}}const yg=new Yf,mm=new yn;class hf{constructor(y=new Yh,E=new Yh,z=new Yh,ne=new Yh,ie=new Yh,se=new Yh){this.planes=[y,E,z,ne,ie,se]}set(y,E,z,ne,ie,se){const ae=this.planes;return ae[0].copy(y),ae[1].copy(E),ae[2].copy(z),ae[3].copy(ne),ae[4].copy(ie),ae[5].copy(se),this}copy(y){const E=this.planes;for(let z=0;z<6;z++)E[z].copy(y.planes[z]);return this}setFromProjectionMatrix(y,E=xp){const z=this.planes,ne=y.elements,ie=ne[0],se=ne[1],ae=ne[2],he=ne[3],pe=ne[4],ve=ne[5],xe=ne[6],Se=ne[7],Be=ne[8],De=ne[9],Re=ne[10],Oe=ne[11],Le=ne[12],Je=ne[13],$e=ne[14],_e=ne[15];if(z[0].setComponents(he-ie,Se-pe,Oe-Be,_e-Le).normalize(),z[1].setComponents(he+ie,Se+pe,Oe+Be,_e+Le).normalize(),z[2].setComponents(he+se,Se+ve,Oe+De,_e+Je).normalize(),z[3].setComponents(he-se,Se-ve,Oe-De,_e-Je).normalize(),z[4].setComponents(he-ae,Se-xe,Oe-Re,_e-$e).normalize(),E===xp)z[5].setComponents(he+ae,Se+xe,Oe+Re,_e+$e).normalize();else if(E===zg)z[5].setComponents(ae,xe,Re,$e).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+E);return this}intersectsObject(y){if(y.boundingSphere!==void 0)y.boundingSphere===null&&y.computeBoundingSphere(),yg.copy(y.boundingSphere).applyMatrix4(y.matrixWorld);else{const E=y.geometry;E.boundingSphere===null&&E.computeBoundingSphere(),yg.copy(E.boundingSphere).applyMatrix4(y.matrixWorld)}return this.intersectsSphere(yg)}intersectsSprite(y){return yg.center.set(0,0,0),yg.radius=.7071067811865476,yg.applyMatrix4(y.matrixWorld),this.intersectsSphere(yg)}intersectsSphere(y){const E=this.planes,z=y.center,ne=-y.radius;for(let ie=0;ie<6;ie++)if(E[ie].distanceToPoint(z)<ne)return!1;return!0}intersectsBox(y){const E=this.planes;for(let z=0;z<6;z++){const ne=E[z];if(mm.x=ne.normal.x>0?y.max.x:y.min.x,mm.y=ne.normal.y>0?y.max.y:y.min.y,mm.z=ne.normal.z>0?y.max.z:y.min.z,ne.distanceToPoint(mm)<0)return!1}return!0}containsPoint(y){const E=this.planes;for(let z=0;z<6;z++)if(E[z].distanceToPoint(y)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}const Gc=new Xa,qf=new hf;class x0{constructor(){this.coordinateSystem=xp}intersectsObject(y,E){if(!E.isArrayCamera||E.cameras.length===0)return!1;for(let z=0;z<E.cameras.length;z++){const ne=E.cameras[z];if(Gc.multiplyMatrices(ne.projectionMatrix,ne.matrixWorldInverse),qf.setFromProjectionMatrix(Gc,this.coordinateSystem),qf.intersectsObject(y))return!0}return!1}intersectsSprite(y,E){if(!E||!E.cameras||E.cameras.length===0)return!1;for(let z=0;z<E.cameras.length;z++){const ne=E.cameras[z];if(Gc.multiplyMatrices(ne.projectionMatrix,ne.matrixWorldInverse),qf.setFromProjectionMatrix(Gc,this.coordinateSystem),qf.intersectsSprite(y))return!0}return!1}intersectsSphere(y,E){if(!E||!E.cameras||E.cameras.length===0)return!1;for(let z=0;z<E.cameras.length;z++){const ne=E.cameras[z];if(Gc.multiplyMatrices(ne.projectionMatrix,ne.matrixWorldInverse),qf.setFromProjectionMatrix(Gc,this.coordinateSystem),qf.intersectsSphere(y))return!0}return!1}intersectsBox(y,E){if(!E||!E.cameras||E.cameras.length===0)return!1;for(let z=0;z<E.cameras.length;z++){const ne=E.cameras[z];if(Gc.multiplyMatrices(ne.projectionMatrix,ne.matrixWorldInverse),qf.setFromProjectionMatrix(Gc,this.coordinateSystem),qf.intersectsBox(y))return!0}return!1}containsPoint(y,E){if(!E||!E.cameras||E.cameras.length===0)return!1;for(let z=0;z<E.cameras.length;z++){const ne=E.cameras[z];if(Gc.multiplyMatrices(ne.projectionMatrix,ne.matrixWorldInverse),qf.setFromProjectionMatrix(Gc,this.coordinateSystem),qf.containsPoint(y))return!0}return!1}clone(){return new x0}}function EA(ee,y){return ee-y}function KC(ee,y){return ee.z-y.z}function JC(ee,y){return y.z-ee.z}class qC{constructor(){this.index=0,this.pool=[],this.list=[]}push(y,E,z,ne){const ie=this.pool,se=this.list;this.index>=ie.length&&ie.push({start:-1,count:-1,z:-1,index:-1});const ae=ie[this.index];se.push(ae),this.index++,ae.start=y,ae.count=E,ae.z=z,ae.index=ne}reset(){this.list.length=0,this.index=0}}const Mp=new Xa,Nw=new ia(1,1,1),cP=new hf,n1=new x0,bA=new Zf,zm=new Yf,gy=new yn,ov=new yn,_C=new yn,Sh=new qC,Bp=new Bc,$C=null;function l3(ee,y,E=0){const z=y.itemSize;if(ee.isInterleavedBufferAttribute||ee.array.constructor!==y.array.constructor){const ne=ee.count;for(let ie=0;ie<ne;ie++)for(let se=0;se<z;se++)y.setComponent(ie+E,se,ee.getComponent(ie,se))}else y.array.set(ee.array,E*z);y.needsUpdate=!0}function i1(ee,y){if(ee.constructor!==y.constructor){const E=Math.min(ee.length,y.length);for(let z=0;z<E;z++)y[z]=ee[z]}else{const E=Math.min(ee.length,y.length);y.set(new ee.constructor(ee.buffer,0,E))}}class u3 extends null{constructor(y,E,z=E*2,ne){super(new Tu,ne),this.isBatchedMesh=!0,this.perObjectFrustumCulled=!0,this.sortObjects=!0,this.boundingBox=null,this.boundingSphere=null,this.customSort=null,this._instanceInfo=[],this._geometryInfo=[],this._availableInstanceIds=[],this._availableGeometryIds=[],this._nextIndexStart=0,this._nextVertexStart=0,this._geometryCount=0,this._visibilityChanged=!0,this._geometryInitialized=!1,this._maxInstanceCount=y,this._maxVertexCount=E,this._maxIndexCount=z,this._multiDrawCounts=new Int32Array(y),this._multiDrawStarts=new Int32Array(y),this._multiDrawCount=0,this._multiDrawInstances=null,this._matricesTexture=null,this._indirectTexture=null,this._colorsTexture=null,this._initMatricesTexture(),this._initIndirectTexture()}get maxInstanceCount(){return this._maxInstanceCount}get instanceCount(){return this._instanceInfo.length-this._availableInstanceIds.length}get unusedVertexCount(){return this._maxVertexCount-this._nextVertexStart}get unusedIndexCount(){return this._maxIndexCount-this._nextIndexStart}_initMatricesTexture(){let y=Math.sqrt(this._maxInstanceCount*4);y=Math.ceil(y/4)*4,y=Math.max(y,4);const E=new Float32Array(y*y*4),z=new A0(E,y,y,Ws,Ah);this._matricesTexture=z}_initIndirectTexture(){let y=Math.sqrt(this._maxInstanceCount);y=Math.ceil(y);const E=new Uint32Array(y*y),z=new A0(E,y,y,Dm,Oc);this._indirectTexture=z}_initColorsTexture(){let y=Math.sqrt(this._maxInstanceCount);y=Math.ceil(y);const E=new Float32Array(y*y*4).fill(1),z=new A0(E,y,y,Ws,Ah);z.colorSpace=su.workingColorSpace,this._colorsTexture=z}_initializeGeometry(y){const E=this.geometry,z=this._maxVertexCount,ne=this._maxIndexCount;if(this._geometryInitialized===!1){for(const ie in y.attributes){const se=y.getAttribute(ie),{array:ae,itemSize:he,normalized:pe}=se,ve=new ae.constructor(z*he),xe=new rh(ve,he,pe);E.setAttribute(ie,xe)}if(y.getIndex()!==null){const ie=z>65535?new Uint32Array(ne):new Uint16Array(ne);E.setIndex(new rh(ie,1))}this._geometryInitialized=!0}}_validateGeometry(y){const E=this.geometry;if(!!y.getIndex()!=!!E.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(const z in E.attributes){if(!y.hasAttribute(z))throw new Error(`THREE.BatchedMesh: Added geometry missing "${z}". All geometries must have consistent attributes.`);const ne=y.getAttribute(z),ie=E.getAttribute(z);if(ne.itemSize!==ie.itemSize||ne.normalized!==ie.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(y){const E=this._instanceInfo;if(y<0||y>=E.length||E[y].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${y}. Instance is either out of range or has been deleted.`)}validateGeometryId(y){const E=this._geometryInfo;if(y<0||y>=E.length||E[y].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${y}. Geometry is either out of range or has been deleted.`)}setCustomSort(y){return this.customSort=y,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Zf);const y=this.boundingBox,E=this._instanceInfo;y.makeEmpty();for(let z=0,ne=E.length;z<ne;z++){if(E[z].active===!1)continue;const ie=E[z].geometryIndex;this.getMatrixAt(z,Mp),this.getBoundingBoxAt(ie,bA).applyMatrix4(Mp),y.union(bA)}}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Yf);const y=this.boundingSphere,E=this._instanceInfo;y.makeEmpty();for(let z=0,ne=E.length;z<ne;z++){if(E[z].active===!1)continue;const ie=E[z].geometryIndex;this.getMatrixAt(z,Mp),this.getBoundingSphereAt(ie,zm).applyMatrix4(Mp),y.union(zm)}}addInstance(y){if(this._instanceInfo.length>=this.maxInstanceCount&&this._availableInstanceIds.length===0)throw new Error("THREE.BatchedMesh: Maximum item count reached.");const z={visible:!0,active:!0,geometryIndex:y};let ne=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(EA),ne=this._availableInstanceIds.shift(),this._instanceInfo[ne]=z):(ne=this._instanceInfo.length,this._instanceInfo.push(z));const ie=this._matricesTexture;Mp.identity().toArray(ie.image.data,ne*16),ie.needsUpdate=!0;const se=this._colorsTexture;return se&&(Nw.toArray(se.image.data,ne*4),se.needsUpdate=!0),this._visibilityChanged=!0,ne}addGeometry(y,E=-1,z=-1){this._initializeGeometry(y),this._validateGeometry(y);const ne={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},ie=this._geometryInfo;ne.vertexStart=this._nextVertexStart,ne.reservedVertexCount=E===-1?y.getAttribute("position").count:E;const se=y.getIndex();if(se!==null&&(ne.indexStart=this._nextIndexStart,ne.reservedIndexCount=z===-1?se.count:z),ne.indexStart!==-1&&ne.indexStart+ne.reservedIndexCount>this._maxIndexCount||ne.vertexStart+ne.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let he;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(EA),he=this._availableGeometryIds.shift(),ie[he]=ne):(he=this._geometryCount,this._geometryCount++,ie.push(ne)),this.setGeometryAt(he,y),this._nextIndexStart=ne.indexStart+ne.reservedIndexCount,this._nextVertexStart=ne.vertexStart+ne.reservedVertexCount,he}setGeometryAt(y,E){if(y>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(E);const z=this.geometry,ne=z.getIndex()!==null,ie=z.getIndex(),se=E.getIndex(),ae=this._geometryInfo[y];if(ne&&se.count>ae.reservedIndexCount||E.attributes.position.count>ae.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");const he=ae.vertexStart,pe=ae.reservedVertexCount;ae.vertexCount=E.getAttribute("position").count;for(const ve in z.attributes){const xe=E.getAttribute(ve),Se=z.getAttribute(ve);l3(xe,Se,he);const Be=xe.itemSize;for(let De=xe.count,Re=pe;De<Re;De++){const Oe=he+De;for(let Le=0;Le<Be;Le++)Se.setComponent(Oe,Le,0)}Se.needsUpdate=!0,Se.addUpdateRange(he*Be,pe*Be)}if(ne){const ve=ae.indexStart,xe=ae.reservedIndexCount;ae.indexCount=E.getIndex().count;for(let Se=0;Se<se.count;Se++)ie.setX(ve+Se,he+se.getX(Se));for(let Se=se.count,Be=xe;Se<Be;Se++)ie.setX(ve+Se,he);ie.needsUpdate=!0,ie.addUpdateRange(ve,ae.reservedIndexCount)}return ae.start=ne?ae.indexStart:ae.vertexStart,ae.count=ne?ae.indexCount:ae.vertexCount,ae.boundingBox=null,E.boundingBox!==null&&(ae.boundingBox=E.boundingBox.clone()),ae.boundingSphere=null,E.boundingSphere!==null&&(ae.boundingSphere=E.boundingSphere.clone()),this._visibilityChanged=!0,y}deleteGeometry(y){const E=this._geometryInfo;if(y>=E.length||E[y].active===!1)return this;const z=this._instanceInfo;for(let ne=0,ie=z.length;ne<ie;ne++)z[ne].active&&z[ne].geometryIndex===y&&this.deleteInstance(ne);return E[y].active=!1,this._availableGeometryIds.push(y),this._visibilityChanged=!0,this}deleteInstance(y){return this.validateInstanceId(y),this._instanceInfo[y].active=!1,this._availableInstanceIds.push(y),this._visibilityChanged=!0,this}optimize(){let y=0,E=0;const z=this._geometryInfo,ne=z.map((se,ae)=>ae).sort((se,ae)=>z[se].vertexStart-z[ae].vertexStart),ie=this.geometry;for(let se=0,ae=z.length;se<ae;se++){const he=ne[se],pe=z[he];if(pe.active!==!1){if(ie.index!==null){if(pe.indexStart!==E){const{indexStart:ve,vertexStart:xe,reservedIndexCount:Se}=pe,Be=ie.index,De=Be.array,Re=y-xe;for(let Oe=ve;Oe<ve+Se;Oe++)De[Oe]=De[Oe]+Re;Be.array.copyWithin(E,ve,ve+Se),Be.addUpdateRange(E,Se),pe.indexStart=E}E+=pe.reservedIndexCount}if(pe.vertexStart!==y){const{vertexStart:ve,reservedVertexCount:xe}=pe,Se=ie.attributes;for(const Be in Se){const De=Se[Be],{array:Re,itemSize:Oe}=De;Re.copyWithin(y*Oe,ve*Oe,(ve+xe)*Oe),De.addUpdateRange(y*Oe,xe*Oe)}pe.vertexStart=y}y+=pe.reservedVertexCount,pe.start=ie.index?pe.indexStart:pe.vertexStart,this._nextIndexStart=ie.index?pe.indexStart+pe.reservedIndexCount:0,this._nextVertexStart=pe.vertexStart+pe.reservedVertexCount}}return this}getBoundingBoxAt(y,E){if(y>=this._geometryCount)return null;const z=this.geometry,ne=this._geometryInfo[y];if(ne.boundingBox===null){const ie=new Zf,se=z.index,ae=z.attributes.position;for(let he=ne.start,pe=ne.start+ne.count;he<pe;he++){let ve=he;se&&(ve=se.getX(ve)),ie.expandByPoint(gy.fromBufferAttribute(ae,ve))}ne.boundingBox=ie}return E.copy(ne.boundingBox),E}getBoundingSphereAt(y,E){if(y>=this._geometryCount)return null;const z=this.geometry,ne=this._geometryInfo[y];if(ne.boundingSphere===null){const ie=new Yf;this.getBoundingBoxAt(y,bA),bA.getCenter(ie.center);const se=z.index,ae=z.attributes.position;let he=0;for(let pe=ne.start,ve=ne.start+ne.count;pe<ve;pe++){let xe=pe;se&&(xe=se.getX(xe)),gy.fromBufferAttribute(ae,xe),he=Math.max(he,ie.center.distanceToSquared(gy))}ie.radius=Math.sqrt(he),ne.boundingSphere=ie}return E.copy(ne.boundingSphere),E}setMatrixAt(y,E){this.validateInstanceId(y);const z=this._matricesTexture,ne=this._matricesTexture.image.data;return E.toArray(ne,y*16),z.needsUpdate=!0,this}getMatrixAt(y,E){return this.validateInstanceId(y),E.fromArray(this._matricesTexture.image.data,y*16)}setColorAt(y,E){return this.validateInstanceId(y),this._colorsTexture===null&&this._initColorsTexture(),E.toArray(this._colorsTexture.image.data,y*4),this._colorsTexture.needsUpdate=!0,this}getColorAt(y,E){return this.validateInstanceId(y),E.fromArray(this._colorsTexture.image.data,y*4)}setVisibleAt(y,E){return this.validateInstanceId(y),this._instanceInfo[y].visible===E?this:(this._instanceInfo[y].visible=E,this._visibilityChanged=!0,this)}getVisibleAt(y){return this.validateInstanceId(y),this._instanceInfo[y].visible}setGeometryIdAt(y,E){return this.validateInstanceId(y),this.validateGeometryId(E),this._instanceInfo[y].geometryIndex=E,this}getGeometryIdAt(y){return this.validateInstanceId(y),this._instanceInfo[y].geometryIndex}getGeometryRangeAt(y,E={}){this.validateGeometryId(y);const z=this._geometryInfo[y];return E.vertexStart=z.vertexStart,E.vertexCount=z.vertexCount,E.reservedVertexCount=z.reservedVertexCount,E.indexStart=z.indexStart,E.indexCount=z.indexCount,E.reservedIndexCount=z.reservedIndexCount,E.start=z.start,E.count=z.count,E}setInstanceCount(y){const E=this._availableInstanceIds,z=this._instanceInfo;for(E.sort(EA);E[E.length-1]===z.length;)z.pop(),E.pop();if(y<z.length)throw new Error(`BatchedMesh: Instance ids outside the range ${y} are being used. Cannot shrink instance count.`);const ne=new Int32Array(y),ie=new Int32Array(y);i1(this._multiDrawCounts,ne),i1(this._multiDrawStarts,ie),this._multiDrawCounts=ne,this._multiDrawStarts=ie,this._maxInstanceCount=y;const se=this._indirectTexture,ae=this._matricesTexture,he=this._colorsTexture;se.dispose(),this._initIndirectTexture(),i1(se.image.data,this._indirectTexture.image.data),ae.dispose(),this._initMatricesTexture(),i1(ae.image.data,this._matricesTexture.image.data),he&&(he.dispose(),this._initColorsTexture(),i1(he.image.data,this._colorsTexture.image.data))}setGeometrySize(y,E){const z=[...this._geometryInfo].filter(ae=>ae.active);if(Math.max(...z.map(ae=>ae.vertexStart+ae.reservedVertexCount))>y)throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${E}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...z.map(he=>he.indexStart+he.reservedIndexCount))>E)throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${E}. Cannot shrink further.`);const ie=this.geometry;ie.dispose(),this._maxVertexCount=y,this._maxIndexCount=E,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new Tu,this._initializeGeometry(ie));const se=this.geometry;ie.index&&i1(ie.index.array,se.index.array);for(const ae in ie.attributes)i1(ie.attributes[ae].array,se.attributes[ae].array)}raycast(y,E){const z=this._instanceInfo,ne=this._geometryInfo,ie=this.matrixWorld,se=this.geometry;Bp.material=this.material,Bp.geometry.index=se.index,Bp.geometry.attributes=se.attributes,Bp.geometry.boundingBox===null&&(Bp.geometry.boundingBox=new Zf),Bp.geometry.boundingSphere===null&&(Bp.geometry.boundingSphere=new Yf);for(let ae=0,he=z.length;ae<he;ae++){if(!z[ae].visible||!z[ae].active)continue;const pe=z[ae].geometryIndex,ve=ne[pe];Bp.geometry.setDrawRange(ve.start,ve.count),this.getMatrixAt(ae,Bp.matrixWorld).premultiply(ie),this.getBoundingBoxAt(pe,Bp.geometry.boundingBox),this.getBoundingSphereAt(pe,Bp.geometry.boundingSphere),Bp.raycast(y,$C);for(let xe=0,Se=$C.length;xe<Se;xe++){const Be=$C[xe];Be.object=this,Be.batchId=ae,E.push(Be)}$C.length=0}Bp.material=null,Bp.geometry.index=null,Bp.geometry.attributes={},Bp.geometry.setDrawRange(0,1/0)}copy(y){return super.copy(y),this.geometry=y.geometry.clone(),this.perObjectFrustumCulled=y.perObjectFrustumCulled,this.sortObjects=y.sortObjects,this.boundingBox=y.boundingBox!==null?y.boundingBox.clone():null,this.boundingSphere=y.boundingSphere!==null?y.boundingSphere.clone():null,this._geometryInfo=y._geometryInfo.map(E=>tx(Hd({},E),{boundingBox:E.boundingBox!==null?E.boundingBox.clone():null,boundingSphere:E.boundingSphere!==null?E.boundingSphere.clone():null})),this._instanceInfo=y._instanceInfo.map(E=>Hd({},E)),this._availableInstanceIds=y._availableInstanceIds.slice(),this._availableGeometryIds=y._availableGeometryIds.slice(),this._nextIndexStart=y._nextIndexStart,this._nextVertexStart=y._nextVertexStart,this._geometryCount=y._geometryCount,this._maxInstanceCount=y._maxInstanceCount,this._maxVertexCount=y._maxVertexCount,this._maxIndexCount=y._maxIndexCount,this._geometryInitialized=y._geometryInitialized,this._multiDrawCounts=y._multiDrawCounts.slice(),this._multiDrawStarts=y._multiDrawStarts.slice(),this._indirectTexture=y._indirectTexture.clone(),this._indirectTexture.image.data=this._indirectTexture.image.data.slice(),this._matricesTexture=y._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&&(this._colorsTexture=y._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null)}onBeforeRender(y,E,z,ne,ie){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const se=ne.getIndex(),ae=se===null?1:se.array.BYTES_PER_ELEMENT,he=this._instanceInfo,pe=this._multiDrawStarts,ve=this._multiDrawCounts,xe=this._geometryInfo,Se=this.perObjectFrustumCulled,Be=this._indirectTexture,De=Be.image.data,Re=z.isArrayCamera?n1:cP;Se&&!z.isArrayCamera&&(Mp.multiplyMatrices(z.projectionMatrix,z.matrixWorldInverse).multiply(this.matrixWorld),cP.setFromProjectionMatrix(Mp,y.coordinateSystem));let Oe=0;if(this.sortObjects){Mp.copy(this.matrixWorld).invert(),gy.setFromMatrixPosition(z.matrixWorld).applyMatrix4(Mp),ov.set(0,0,-1).transformDirection(z.matrixWorld).transformDirection(Mp);for(let $e=0,_e=he.length;$e<_e;$e++)if(he[$e].visible&&he[$e].active){const st=he[$e].geometryIndex;this.getMatrixAt($e,Mp),this.getBoundingSphereAt(st,zm).applyMatrix4(Mp);let ct=!1;if(Se&&(ct=!Re.intersectsSphere(zm,z)),!ct){const ut=xe[st],ht=_C.subVectors(zm.center,gy).dot(ov);Sh.push(ut.start,ut.count,ht,$e)}}const Le=Sh.list,Je=this.customSort;Je===null?Le.sort(ie.transparent?JC:KC):Je.call(this,Le,z);for(let $e=0,_e=Le.length;$e<_e;$e++){const st=Le[$e];pe[Oe]=st.start*ae,ve[Oe]=st.count,De[Oe]=st.index,Oe++}Sh.reset()}else for(let Le=0,Je=he.length;Le<Je;Le++)if(he[Le].visible&&he[Le].active){const $e=he[Le].geometryIndex;let _e=!1;if(Se&&(this.getMatrixAt(Le,Mp),this.getBoundingSphereAt($e,zm).applyMatrix4(Mp),_e=!Re.intersectsSphere(zm,z)),!_e){const st=xe[$e];pe[Oe]=st.start*ae,ve[Oe]=st.count,De[Oe]=Le,Oe++}}Be.needsUpdate=!0,this._multiDrawCount=Oe,this._visibilityChanged=!1}onBeforeShadow(y,E,z,ne,ie,se){this.onBeforeRender(y,null,ne,ie,se)}}class Tp extends Zd{constructor(y){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new ia(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(y)}copy(y){return super.copy(y),this.color.copy(y.color),this.map=y.map,this.linewidth=y.linewidth,this.linecap=y.linecap,this.linejoin=y.linejoin,this.fog=y.fog,this}}const hP=new yn,dP=new yn,F5=new Xa,Fw=new yA,sv=new Yf,r1=new yn,Lw=new yn;class MA extends ih{constructor(y=new Tu,E=new Tp){super(),this.isLine=!0,this.type="Line",this.geometry=y,this.material=E,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(y,E){return super.copy(y,E),this.material=Array.isArray(y.material)?y.material.slice():y.material,this.geometry=y.geometry,this}computeLineDistances(){const y=this.geometry;if(y.index===null){const E=y.attributes.position,z=[0];for(let ne=1,ie=E.count;ne<ie;ne++)hP.fromBufferAttribute(E,ne-1),dP.fromBufferAttribute(E,ne),z[ne]=z[ne-1],z[ne]+=hP.distanceTo(dP);y.setAttribute("lineDistance",new Za(z,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(y,E){const z=this.geometry,ne=this.matrixWorld,ie=y.params.Line.threshold,se=z.drawRange;if(z.boundingSphere===null&&z.computeBoundingSphere(),sv.copy(z.boundingSphere),sv.applyMatrix4(ne),sv.radius+=ie,y.ray.intersectsSphere(sv)===!1)return;F5.copy(ne).invert(),Fw.copy(y.ray).applyMatrix4(F5);const ae=ie/((this.scale.x+this.scale.y+this.scale.z)/3),he=ae*ae,pe=this.isLineSegments?2:1,ve=z.index,Se=z.attributes.position;if(ve!==null){const Be=Math.max(0,se.start),De=Math.min(ve.count,se.start+se.count);for(let Re=Be,Oe=De-1;Re<Oe;Re+=pe){const Le=ve.getX(Re),Je=ve.getX(Re+1),$e=nl(this,y,Fw,he,Le,Je,Re);$e&&E.push($e)}if(this.isLineLoop){const Re=ve.getX(De-1),Oe=ve.getX(Be),Le=nl(this,y,Fw,he,Re,Oe,De-1);Le&&E.push(Le)}}else{const Be=Math.max(0,se.start),De=Math.min(Se.count,se.start+se.count);for(let Re=Be,Oe=De-1;Re<Oe;Re+=pe){const Le=nl(this,y,Fw,he,Re,Re+1,Re);Le&&E.push(Le)}if(this.isLineLoop){const Re=nl(this,y,Fw,he,De-1,Be,De-1);Re&&E.push(Re)}}}updateMorphTargets(){const E=this.geometry.morphAttributes,z=Object.keys(E);if(z.length>0){const ne=E[z[0]];if(ne!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let ie=0,se=ne.length;ie<se;ie++){const ae=ne[ie].name||String(ie);this.morphTargetInfluences.push(0),this.morphTargetDictionary[ae]=ie}}}}}function nl(ee,y,E,z,ne,ie,se){const ae=ee.geometry.attributes.position;if(hP.fromBufferAttribute(ae,ne),dP.fromBufferAttribute(ae,ie),E.distanceSqToSegment(hP,dP,r1,Lw)>z)return;r1.applyMatrix4(ee.matrixWorld);const pe=y.ray.origin.distanceTo(r1);if(!(pe<y.near||pe>y.far))return{distance:pe,point:Lw.clone().applyMatrix4(ee.matrixWorld),index:se,face:null,faceIndex:null,barycoord:null,object:ee}}const eE=new yn,Nd=new yn;class _f extends null{constructor(y,E){super(y,E),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const y=this.geometry;if(y.index===null){const E=y.attributes.position,z=[];for(let ne=0,ie=E.count;ne<ie;ne+=2)eE.fromBufferAttribute(E,ne),Nd.fromBufferAttribute(E,ne+1),z[ne]=ne===0?0:z[ne-1],z[ne+1]=z[ne]+eE.distanceTo(Nd);y.setAttribute("lineDistance",new Za(z,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}}class L5 extends null{constructor(y,E){super(y,E),this.isLineLoop=!0,this.type="LineLoop"}}class Iw extends Zd{constructor(y){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new ia(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(y)}copy(y){return super.copy(y),this.color.copy(y.color),this.map=y.map,this.alphaMap=y.alphaMap,this.size=y.size,this.sizeAttenuation=y.sizeAttenuation,this.fog=y.fog,this}}const tE=new Xa,nE=new yA,BA=new Yf,kw=new yn;class c3 extends null{constructor(y=new Tu,E=new Iw){super(),this.isPoints=!0,this.type="Points",this.geometry=y,this.material=E,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(y,E){return super.copy(y,E),this.material=Array.isArray(y.material)?y.material.slice():y.material,this.geometry=y.geometry,this}raycast(y,E){const z=this.geometry,ne=this.matrixWorld,ie=y.params.Points.threshold,se=z.drawRange;if(z.boundingSphere===null&&z.computeBoundingSphere(),BA.copy(z.boundingSphere),BA.applyMatrix4(ne),BA.radius+=ie,y.ray.intersectsSphere(BA)===!1)return;tE.copy(ne).invert(),nE.copy(y.ray).applyMatrix4(tE);const ae=ie/((this.scale.x+this.scale.y+this.scale.z)/3),he=ae*ae,pe=z.index,xe=z.attributes.position;if(pe!==null){const Se=Math.max(0,se.start),Be=Math.min(pe.count,se.start+se.count);for(let De=Se,Re=Be;De<Re;De++){const Oe=pe.getX(De);kw.fromBufferAttribute(xe,Oe),S2(kw,Oe,he,ne,y,E,this)}}else{const Se=Math.max(0,se.start),Be=Math.min(xe.count,se.start+se.count);for(let De=Se,Re=Be;De<Re;De++)kw.fromBufferAttribute(xe,De),S2(kw,De,he,ne,y,E,this)}}updateMorphTargets(){const E=this.geometry.morphAttributes,z=Object.keys(E);if(z.length>0){const ne=E[z[0]];if(ne!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let ie=0,se=ne.length;ie<se;ie++){const ae=ne[ie].name||String(ie);this.morphTargetInfluences.push(0),this.morphTargetDictionary[ae]=ie}}}}}function S2(ee,y,E,z,ne,ie,se){const ae=nE.distanceSqToPoint(ee);if(ae<E){const he=new yn;nE.closestPointToPoint(ee,he),he.applyMatrix4(z);const pe=ne.ray.origin.distanceTo(he);if(pe<ne.near||pe>ne.far)return;ie.push({distance:pe,distanceToRay:Math.sqrt(ae),point:he,index:y,face:null,faceIndex:null,barycoord:null,object:se})}}class h3 extends null{constructor(y,E,z,ne,ie=qu,se=qu,ae,he,pe){super(y,E,z,ne,ie,se,ae,he,pe),this.isVideoTexture=!0,this.generateMipmaps=!1;const ve=this;function xe(){ve.needsUpdate=!0,y.requestVideoFrameCallback(xe)}"requestVideoFrameCallback"in y&&y.requestVideoFrameCallback(xe)}clone(){return new this.constructor(this.image).copy(this)}update(){const y=this.image;"requestVideoFrameCallback"in y===!1&&y.readyState>=y.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class I5 extends null{constructor(y,E,z,ne,ie,se,ae,he){super({},y,E,z,ne,ie,se,ae,he),this.isVideoFrameTexture=!0}update(){}clone(){return new this.constructor().copy(this)}setFrame(y){this.image=y,this.needsUpdate=!0}}class P2 extends nh{constructor(y,E){super({width:y,height:E}),this.isFramebufferTexture=!0,this.magFilter=Ic,this.minFilter=Ic,this.generateMipmaps=!1,this.needsUpdate=!0}}class k5 extends null{constructor(y,E,z,ne,ie,se,ae,he,pe,ve,xe,Se){super(null,se,ae,he,pe,ve,ne,ie,xe,Se),this.isCompressedTexture=!0,this.image={width:E,height:z},this.mipmaps=y,this.flipY=!1,this.generateMipmaps=!1}}class d3 extends null{constructor(y,E,z,ne,ie,se){super(y,E,z,ie,se),this.isCompressedArrayTexture=!0,this.image.depth=ne,this.wrapR=pp,this.layerUpdates=new Set}addLayerUpdate(y){this.layerUpdates.add(y)}clearLayerUpdates(){this.layerUpdates.clear()}}class f3 extends null{constructor(y,E,z){super(void 0,y[0].width,y[0].height,E,z,ud),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=y}}class p3 extends null{constructor(y,E,z,ne,ie,se,ae,he,pe){super(y,E,z,ne,ie,se,ae,he,pe),this.isCanvasTexture=!0,this.needsUpdate=!0}}class jg extends nh{constructor(y,E,z=Oc,ne,ie,se,ae=Ic,he=Ic,pe,ve=Lg,xe=1){if(ve!==Lg&&ve!==Ig)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");const Se={width:y,height:E,depth:xe};super(Se,ne,ie,se,ae,he,ve,z,pe),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(y){return super.copy(y),this.source=new pA(Object.assign({},y.image)),this.compareFunction=y.compareFunction,this}toJSON(y){const E=super.toJSON(y);return this.compareFunction!==null&&(E.compareFunction=this.compareFunction),E}}class iE extends Tu{constructor(y=1,E=1,z=4,ne=8,ie=1){super(),this.type="CapsuleGeometry",this.parameters={radius:y,height:E,capSegments:z,radialSegments:ne,heightSegments:ie},E=Math.max(0,E),z=Math.max(1,Math.floor(z)),ne=Math.max(3,Math.floor(ne)),ie=Math.max(1,Math.floor(ie));const se=[],ae=[],he=[],pe=[],ve=E/2,xe=Math.PI/2*y,Se=E,Be=2*xe+Se,De=z*2+ie,Re=ne+1,Oe=new yn,Le=new yn;for(let Je=0;Je<=De;Je++){let $e=0,_e=0,st=0,ct=0;if(Je<=z){const pt=Je/z,gt=pt*Math.PI/2;_e=-ve-y*Math.cos(gt),st=y*Math.sin(gt),ct=-y*Math.cos(gt),$e=pt*xe}else if(Je<=z+ie){const pt=(Je-z)/ie;_e=-ve+pt*E,st=y,ct=0,$e=xe+pt*Se}else{const pt=(Je-z-ie)/z,gt=pt*Math.PI/2;_e=ve+y*Math.sin(gt),st=y*Math.cos(gt),ct=y*Math.sin(gt),$e=xe+Se+pt*xe}const ut=Math.max(0,Math.min(1,$e/Be));let ht=0;Je===0?ht=.5/ne:Je===De&&(ht=-.5/ne);for(let pt=0;pt<=ne;pt++){const gt=pt/ne,zt=gt*Math.PI*2,cn=Math.sin(zt),Tn=Math.cos(zt);Le.x=-st*Tn,Le.y=_e,Le.z=st*cn,ae.push(Le.x,Le.y,Le.z),Oe.set(-st*Tn,ct,st*cn),Oe.normalize(),he.push(Oe.x,Oe.y,Oe.z),pe.push(gt+ht,ut)}if(Je>0){const pt=(Je-1)*Re;for(let gt=0;gt<ne;gt++){const zt=pt+gt,cn=pt+gt+1,Tn=Je*Re+gt,Zn=Je*Re+gt+1;se.push(zt,cn,Tn),se.push(cn,Zn,Tn)}}}this.setIndex(se),this.setAttribute("position",new Za(ae,3)),this.setAttribute("normal",new Za(he,3)),this.setAttribute("uv",new Za(pe,2))}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}static fromJSON(y){return new iE(y.radius,y.height,y.capSegments,y.radialSegments,y.heightSegments)}}class Ow extends Tu{constructor(y=1,E=32,z=0,ne=Math.PI*2){super(),this.type="CircleGeometry",this.parameters={radius:y,segments:E,thetaStart:z,thetaLength:ne},E=Math.max(3,E);const ie=[],se=[],ae=[],he=[],pe=new yn,ve=new Yr;se.push(0,0,0),ae.push(0,0,1),he.push(.5,.5);for(let xe=0,Se=3;xe<=E;xe++,Se+=3){const Be=z+xe/E*ne;pe.x=y*Math.cos(Be),pe.y=y*Math.sin(Be),se.push(pe.x,pe.y,pe.z),ae.push(0,0,1),ve.x=(se[Se]/y+1)/2,ve.y=(se[Se+1]/y+1)/2,he.push(ve.x,ve.y)}for(let xe=1;xe<=E;xe++)ie.push(xe,xe+1,0);this.setIndex(ie),this.setAttribute("position",new Za(se,3)),this.setAttribute("normal",new Za(ae,3)),this.setAttribute("uv",new Za(he,2))}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}static fromJSON(y){return new Ow(y.radius,y.segments,y.thetaStart,y.thetaLength)}}class Kd extends Tu{constructor(y=1,E=1,z=1,ne=32,ie=1,se=!1,ae=0,he=Math.PI*2){super(),this.type="CylinderGeometry",this.parameters={radiusTop:y,radiusBottom:E,height:z,radialSegments:ne,heightSegments:ie,openEnded:se,thetaStart:ae,thetaLength:he};const pe=this;ne=Math.floor(ne),ie=Math.floor(ie);const ve=[],xe=[],Se=[],Be=[];let De=0;const Re=[],Oe=z/2;let Le=0;Je(),se===!1&&(y>0&&$e(!0),E>0&&$e(!1)),this.setIndex(ve),this.setAttribute("position",new Za(xe,3)),this.setAttribute("normal",new Za(Se,3)),this.setAttribute("uv",new Za(Be,2));function Je(){const _e=new yn,st=new yn;let ct=0;const ut=(E-y)/z;for(let ht=0;ht<=ie;ht++){const pt=[],gt=ht/ie,zt=gt*(E-y)+y;for(let cn=0;cn<=ne;cn++){const Tn=cn/ne,Zn=Tn*he+ae,Nn=Math.sin(Zn),di=Math.cos(Zn);st.x=zt*Nn,st.y=-gt*z+Oe,st.z=zt*di,xe.push(st.x,st.y,st.z),_e.set(Nn,ut,di).normalize(),Se.push(_e.x,_e.y,_e.z),Be.push(Tn,1-gt),pt.push(De++)}Re.push(pt)}for(let ht=0;ht<ne;ht++)for(let pt=0;pt<ie;pt++){const gt=Re[pt][ht],zt=Re[pt+1][ht],cn=Re[pt+1][ht+1],Tn=Re[pt][ht+1];(y>0||pt!==0)&&(ve.push(gt,zt,Tn),ct+=3),(E>0||pt!==ie-1)&&(ve.push(zt,cn,Tn),ct+=3)}pe.addGroup(Le,ct,0),Le+=ct}function $e(_e){const st=De,ct=new Yr,ut=new yn;let ht=0;const pt=_e===!0?y:E,gt=_e===!0?1:-1;for(let cn=1;cn<=ne;cn++)xe.push(0,Oe*gt,0),Se.push(0,gt,0),Be.push(.5,.5),De++;const zt=De;for(let cn=0;cn<=ne;cn++){const Zn=cn/ne*he+ae,Nn=Math.cos(Zn),di=Math.sin(Zn);ut.x=pt*di,ut.y=Oe*gt,ut.z=pt*Nn,xe.push(ut.x,ut.y,ut.z),Se.push(0,gt,0),ct.x=Nn*.5+.5,ct.y=di*.5*gt+.5,Be.push(ct.x,ct.y),De++}for(let cn=0;cn<ne;cn++){const Tn=st+cn,Zn=zt+cn;_e===!0?ve.push(Zn,Zn+1,Tn):ve.push(Zn+1,Zn,Tn),ht+=3}pe.addGroup(Le,ht,_e===!0?1:2),Le+=ht}}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}static fromJSON(y){return new Kd(y.radiusTop,y.radiusBottom,y.height,y.radialSegments,y.heightSegments,y.openEnded,y.thetaStart,y.thetaLength)}}class av extends Kd{constructor(y=1,E=1,z=32,ne=1,ie=!1,se=0,ae=Math.PI*2){super(0,y,E,z,ne,ie,se,ae),this.type="ConeGeometry",this.parameters={radius:y,height:E,radialSegments:z,heightSegments:ne,openEnded:ie,thetaStart:se,thetaLength:ae}}static fromJSON(y){return new av(y.radius,y.height,y.radialSegments,y.heightSegments,y.openEnded,y.thetaStart,y.thetaLength)}}class o1 extends Tu{constructor(y=[],E=[],z=1,ne=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:y,indices:E,radius:z,detail:ne};const ie=[],se=[];ae(ne),pe(z),ve(),this.setAttribute("position",new Za(ie,3)),this.setAttribute("normal",new Za(ie.slice(),3)),this.setAttribute("uv",new Za(se,2)),ne===0?this.computeVertexNormals():this.normalizeNormals();function ae(Je){const $e=new yn,_e=new yn,st=new yn;for(let ct=0;ct<E.length;ct+=3)Be(E[ct+0],$e),Be(E[ct+1],_e),Be(E[ct+2],st),he($e,_e,st,Je)}function he(Je,$e,_e,st){const ct=st+1,ut=[];for(let ht=0;ht<=ct;ht++){ut[ht]=[];const pt=Je.clone().lerp(_e,ht/ct),gt=$e.clone().lerp(_e,ht/ct),zt=ct-ht;for(let cn=0;cn<=zt;cn++)cn===0&&ht===ct?ut[ht][cn]=pt:ut[ht][cn]=pt.clone().lerp(gt,cn/zt)}for(let ht=0;ht<ct;ht++)for(let pt=0;pt<2*(ct-ht)-1;pt++){const gt=Math.floor(pt/2);pt%2===0?(Se(ut[ht][gt+1]),Se(ut[ht+1][gt]),Se(ut[ht][gt])):(Se(ut[ht][gt+1]),Se(ut[ht+1][gt+1]),Se(ut[ht+1][gt]))}}function pe(Je){const $e=new yn;for(let _e=0;_e<ie.length;_e+=3)$e.x=ie[_e+0],$e.y=ie[_e+1],$e.z=ie[_e+2],$e.normalize().multiplyScalar(Je),ie[_e+0]=$e.x,ie[_e+1]=$e.y,ie[_e+2]=$e.z}function ve(){const Je=new yn;for(let $e=0;$e<ie.length;$e+=3){Je.x=ie[$e+0],Je.y=ie[$e+1],Je.z=ie[$e+2];const _e=Oe(Je)/2/Math.PI+.5,st=Le(Je)/Math.PI+.5;se.push(_e,1-st)}De(),xe()}function xe(){for(let Je=0;Je<se.length;Je+=6){const $e=se[Je+0],_e=se[Je+2],st=se[Je+4],ct=Math.max($e,_e,st),ut=Math.min($e,_e,st);ct>.9&&ut<.1&&($e<.2&&(se[Je+0]+=1),_e<.2&&(se[Je+2]+=1),st<.2&&(se[Je+4]+=1))}}function Se(Je){ie.push(Je.x,Je.y,Je.z)}function Be(Je,$e){const _e=Je*3;$e.x=y[_e+0],$e.y=y[_e+1],$e.z=y[_e+2]}function De(){const Je=new yn,$e=new yn,_e=new yn,st=new yn,ct=new Yr,ut=new Yr,ht=new Yr;for(let pt=0,gt=0;pt<ie.length;pt+=9,gt+=6){Je.set(ie[pt+0],ie[pt+1],ie[pt+2]),$e.set(ie[pt+3],ie[pt+4],ie[pt+5]),_e.set(ie[pt+6],ie[pt+7],ie[pt+8]),ct.set(se[gt+0],se[gt+1]),ut.set(se[gt+2],se[gt+3]),ht.set(se[gt+4],se[gt+5]),st.copy(Je).add($e).add(_e).divideScalar(3);const zt=Oe(st);Re(ct,gt+0,Je,zt),Re(ut,gt+2,$e,zt),Re(ht,gt+4,_e,zt)}}function Re(Je,$e,_e,st){st<0&&Je.x===1&&(se[$e]=Je.x-1),_e.x===0&&_e.z===0&&(se[$e]=st/2/Math.PI+.5)}function Oe(Je){return Math.atan2(Je.z,-Je.x)}function Le(Je){return Math.atan2(-Je.y,Math.sqrt(Je.x*Je.x+Je.z*Je.z))}}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}static fromJSON(y){return new o1(y.vertices,y.indices,y.radius,y.details)}}class fP extends o1{constructor(y=1,E=0){const z=(1+Math.sqrt(5))/2,ne=1/z,ie=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-ne,-z,0,-ne,z,0,ne,-z,0,ne,z,-ne,-z,0,-ne,z,0,ne,-z,0,ne,z,0,-z,0,-ne,z,0,-ne,-z,0,ne,z,0,ne],se=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9];super(ie,se,y,E),this.type="DodecahedronGeometry",this.parameters={radius:y,detail:E}}static fromJSON(y){return new fP(y.radius,y.detail)}}const rE=new yn,oE=new yn,sE=new yn,pP=new Cp;class g3 extends Tu{constructor(y=null,E=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:y,thresholdAngle:E},y!==null){const ne=Math.pow(10,4),ie=Math.cos(J0*E),se=y.getIndex(),ae=y.getAttribute("position"),he=se?se.count:ae.count,pe=[0,0,0],ve=["a","b","c"],xe=new Array(3),Se={},Be=[];for(let De=0;De<he;De+=3){se?(pe[0]=se.getX(De),pe[1]=se.getX(De+1),pe[2]=se.getX(De+2)):(pe[0]=De,pe[1]=De+1,pe[2]=De+2);const{a:Re,b:Oe,c:Le}=pP;if(Re.fromBufferAttribute(ae,pe[0]),Oe.fromBufferAttribute(ae,pe[1]),Le.fromBufferAttribute(ae,pe[2]),pP.getNormal(sE),xe[0]=`${Math.round(Re.x*ne)},${Math.round(Re.y*ne)},${Math.round(Re.z*ne)}`,xe[1]=`${Math.round(Oe.x*ne)},${Math.round(Oe.y*ne)},${Math.round(Oe.z*ne)}`,xe[2]=`${Math.round(Le.x*ne)},${Math.round(Le.y*ne)},${Math.round(Le.z*ne)}`,!(xe[0]===xe[1]||xe[1]===xe[2]||xe[2]===xe[0]))for(let Je=0;Je<3;Je++){const $e=(Je+1)%3,_e=xe[Je],st=xe[$e],ct=pP[ve[Je]],ut=pP[ve[$e]],ht=`${_e}_${st}`,pt=`${st}_${_e}`;pt in Se&&Se[pt]?(sE.dot(Se[pt].normal)<=ie&&(Be.push(ct.x,ct.y,ct.z),Be.push(ut.x,ut.y,ut.z)),Se[pt]=null):ht in Se||(Se[ht]={index0:pe[Je],index1:pe[$e],normal:sE.clone()})}}for(const De in Se)if(Se[De]){const{index0:Re,index1:Oe}=Se[De];rE.fromBufferAttribute(ae,Re),oE.fromBufferAttribute(ae,Oe),Be.push(rE.x,rE.y,rE.z),Be.push(oE.x,oE.y,oE.z)}this.setAttribute("position",new Za(Be,3))}}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}}class lv{constructor(){this.type="Curve",this.arcLengthDivisions=200,this.needsUpdate=!1,this.cacheArcLengths=null}getPoint(){console.warn("THREE.Curve: .getPoint() not implemented.")}getPointAt(y,E){const z=this.getUtoTmapping(y);return this.getPoint(z,E)}getPoints(y=5){const E=[];for(let z=0;z<=y;z++)E.push(this.getPoint(z/y));return E}getSpacedPoints(y=5){const E=[];for(let z=0;z<=y;z++)E.push(this.getPointAt(z/y));return E}getLength(){const y=this.getLengths();return y[y.length-1]}getLengths(y=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===y+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const E=[];let z,ne=this.getPoint(0),ie=0;E.push(0);for(let se=1;se<=y;se++)z=this.getPoint(se/y),ie+=z.distanceTo(ne),E.push(ie),ne=z;return this.cacheArcLengths=E,E}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(y,E=null){const z=this.getLengths();let ne=0;const ie=z.length;let se;E?se=E:se=y*z[ie-1];let ae=0,he=ie-1,pe;for(;ae<=he;)if(ne=Math.floor(ae+(he-ae)/2),pe=z[ne]-se,pe<0)ae=ne+1;else if(pe>0)he=ne-1;else{he=ne;break}if(ne=he,z[ne]===se)return ne/(ie-1);const ve=z[ne],Se=z[ne+1]-ve,Be=(se-ve)/Se;return(ne+Be)/(ie-1)}getTangent(y,E){let ne=y-1e-4,ie=y+1e-4;ne<0&&(ne=0),ie>1&&(ie=1);const se=this.getPoint(ne),ae=this.getPoint(ie),he=E||(se.isVector2?new Yr:new yn);return he.copy(ae).sub(se).normalize(),he}getTangentAt(y,E){const z=this.getUtoTmapping(y);return this.getTangent(z,E)}computeFrenetFrames(y,E=!1){const z=new yn,ne=[],ie=[],se=[],ae=new yn,he=new Xa;for(let Be=0;Be<=y;Be++){const De=Be/y;ne[Be]=this.getTangentAt(De,new yn)}ie[0]=new yn,se[0]=new yn;let pe=Number.MAX_VALUE;const ve=Math.abs(ne[0].x),xe=Math.abs(ne[0].y),Se=Math.abs(ne[0].z);ve<=pe&&(pe=ve,z.set(1,0,0)),xe<=pe&&(pe=xe,z.set(0,1,0)),Se<=pe&&z.set(0,0,1),ae.crossVectors(ne[0],z).normalize(),ie[0].crossVectors(ne[0],ae),se[0].crossVectors(ne[0],ie[0]);for(let Be=1;Be<=y;Be++){if(ie[Be]=ie[Be-1].clone(),se[Be]=se[Be-1].clone(),ae.crossVectors(ne[Be-1],ne[Be]),ae.length()>Number.EPSILON){ae.normalize();const De=Math.acos(Bu(ne[Be-1].dot(ne[Be]),-1,1));ie[Be].applyMatrix4(he.makeRotationAxis(ae,De))}se[Be].crossVectors(ne[Be],ie[Be])}if(E===!0){let Be=Math.acos(Bu(ie[0].dot(ie[y]),-1,1));Be/=y,ne[0].dot(ae.crossVectors(ie[0],ie[y]))>0&&(Be=-Be);for(let De=1;De<=y;De++)ie[De].applyMatrix4(he.makeRotationAxis(ne[De],Be*De)),se[De].crossVectors(ne[De],ie[De])}return{tangents:ne,normals:ie,binormals:se}}clone(){return new this.constructor().copy(this)}copy(y){return this.arcLengthDivisions=y.arcLengthDivisions,this}toJSON(){const y={metadata:{version:4.7,type:"Curve",generator:"Curve.toJSON"}};return y.arcLengthDivisions=this.arcLengthDivisions,y.type=this.type,y}fromJSON(y){return this.arcLengthDivisions=y.arcLengthDivisions,this}}class C2 extends lv{constructor(y=0,E=0,z=1,ne=1,ie=0,se=Math.PI*2,ae=!1,he=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=y,this.aY=E,this.xRadius=z,this.yRadius=ne,this.aStartAngle=ie,this.aEndAngle=se,this.aClockwise=ae,this.aRotation=he}getPoint(y,E=new Yr){const z=E,ne=Math.PI*2;let ie=this.aEndAngle-this.aStartAngle;const se=Math.abs(ie)<Number.EPSILON;for(;ie<0;)ie+=ne;for(;ie>ne;)ie-=ne;ie<Number.EPSILON&&(se?ie=0:ie=ne),this.aClockwise===!0&&!se&&(ie===ne?ie=-ne:ie=ie-ne);const ae=this.aStartAngle+y*ie;let he=this.aX+this.xRadius*Math.cos(ae),pe=this.aY+this.yRadius*Math.sin(ae);if(this.aRotation!==0){const ve=Math.cos(this.aRotation),xe=Math.sin(this.aRotation),Se=he-this.aX,Be=pe-this.aY;he=Se*ve-Be*xe+this.aX,pe=Se*xe+Be*ve+this.aY}return z.set(he,pe)}copy(y){return super.copy(y),this.aX=y.aX,this.aY=y.aY,this.xRadius=y.xRadius,this.yRadius=y.yRadius,this.aStartAngle=y.aStartAngle,this.aEndAngle=y.aEndAngle,this.aClockwise=y.aClockwise,this.aRotation=y.aRotation,this}toJSON(){const y=super.toJSON();return y.aX=this.aX,y.aY=this.aY,y.xRadius=this.xRadius,y.yRadius=this.yRadius,y.aStartAngle=this.aStartAngle,y.aEndAngle=this.aEndAngle,y.aClockwise=this.aClockwise,y.aRotation=this.aRotation,y}fromJSON(y){return super.fromJSON(y),this.aX=y.aX,this.aY=y.aY,this.xRadius=y.xRadius,this.yRadius=y.yRadius,this.aStartAngle=y.aStartAngle,this.aEndAngle=y.aEndAngle,this.aClockwise=y.aClockwise,this.aRotation=y.aRotation,this}}class aE extends C2{constructor(y,E,z,ne,ie,se){super(y,E,z,z,ne,ie,se),this.isArcCurve=!0,this.type="ArcCurve"}}function lE(){let ee=0,y=0,E=0,z=0;function ne(ie,se,ae,he){ee=ie,y=ae,E=-3*ie+3*se-2*ae-he,z=2*ie-2*se+ae+he}return{initCatmullRom:function(ie,se,ae,he,pe){ne(se,ae,pe*(ae-ie),pe*(he-se))},initNonuniformCatmullRom:function(ie,se,ae,he,pe,ve,xe){let Se=(se-ie)/pe-(ae-ie)/(pe+ve)+(ae-se)/ve,Be=(ae-se)/ve-(he-se)/(ve+xe)+(he-ae)/xe;Se*=ve,Be*=ve,ne(se,ae,Se,Be)},calc:function(ie){const se=ie*ie,ae=se*ie;return ee+y*ie+E*se+z*ae}}}const gP=new yn,E2=new lE,Rw=new lE,w0=new lE;class my extends lv{constructor(y=[],E=!1,z="centripetal",ne=.5){super(),this.isCatmullRomCurve3=!0,this.type="CatmullRomCurve3",this.points=y,this.closed=E,this.curveType=z,this.tension=ne}getPoint(y,E=new yn){const z=E,ne=this.points,ie=ne.length,se=(ie-(this.closed?0:1))*y;let ae=Math.floor(se),he=se-ae;this.closed?ae+=ae>0?0:(Math.floor(Math.abs(ae)/ie)+1)*ie:he===0&&ae===ie-1&&(ae=ie-2,he=1);let pe,ve;this.closed||ae>0?pe=ne[(ae-1)%ie]:(gP.subVectors(ne[0],ne[1]).add(ne[0]),pe=gP);const xe=ne[ae%ie],Se=ne[(ae+1)%ie];if(this.closed||ae+2<ie?ve=ne[(ae+2)%ie]:(gP.subVectors(ne[ie-1],ne[ie-2]).add(ne[ie-1]),ve=gP),this.curveType==="centripetal"||this.curveType==="chordal"){const Be=this.curveType==="chordal"?.5:.25;let De=Math.pow(pe.distanceToSquared(xe),Be),Re=Math.pow(xe.distanceToSquared(Se),Be),Oe=Math.pow(Se.distanceToSquared(ve),Be);Re<1e-4&&(Re=1),De<1e-4&&(De=Re),Oe<1e-4&&(Oe=Re),E2.initNonuniformCatmullRom(pe.x,xe.x,Se.x,ve.x,De,Re,Oe),Rw.initNonuniformCatmullRom(pe.y,xe.y,Se.y,ve.y,De,Re,Oe),w0.initNonuniformCatmullRom(pe.z,xe.z,Se.z,ve.z,De,Re,Oe)}else this.curveType==="catmullrom"&&(E2.initCatmullRom(pe.x,xe.x,Se.x,ve.x,this.tension),Rw.initCatmullRom(pe.y,xe.y,Se.y,ve.y,this.tension),w0.initCatmullRom(pe.z,xe.z,Se.z,ve.z,this.tension));return z.set(E2.calc(he),Rw.calc(he),w0.calc(he)),z}copy(y){super.copy(y),this.points=[];for(let E=0,z=y.points.length;E<z;E++){const ne=y.points[E];this.points.push(ne.clone())}return this.closed=y.closed,this.curveType=y.curveType,this.tension=y.tension,this}toJSON(){const y=super.toJSON();y.points=[];for(let E=0,z=this.points.length;E<z;E++){const ne=this.points[E];y.points.push(ne.toArray())}return y.closed=this.closed,y.curveType=this.curveType,y.tension=this.tension,y}fromJSON(y){super.fromJSON(y),this.points=[];for(let E=0,z=y.points.length;E<z;E++){const ne=y.points[E];this.points.push(new yn().fromArray(ne))}return this.closed=y.closed,this.curveType=y.curveType,this.tension=y.tension,this}}function mP(ee,y,E,z,ne){const ie=(z-y)*.5,se=(ne-E)*.5,ae=ee*ee,he=ee*ae;return(2*E-2*z+ie+se)*he+(-3*E+3*z-2*ie-se)*ae+ie*ee+E}function b2(ee,y){const E=1-ee;return E*E*y}function vP(ee,y){return 2*(1-ee)*ee*y}function uE(ee,y){return ee*ee*y}function s1(ee,y,E,z){return b2(ee,y)+vP(ee,E)+uE(ee,z)}function M2(ee,y){const E=1-ee;return E*E*E*y}function cE(ee,y){const E=1-ee;return 3*E*E*ee*y}function B2(ee,y){return 3*(1-ee)*ee*ee*y}function T2(ee,y){return ee*ee*ee*y}function a1(ee,y,E,z,ne){return M2(ee,y)+cE(ee,E)+B2(ee,z)+T2(ee,ne)}class yP extends lv{constructor(y=new Yr,E=new Yr,z=new Yr,ne=new Yr){super(),this.isCubicBezierCurve=!0,this.type="CubicBezierCurve",this.v0=y,this.v1=E,this.v2=z,this.v3=ne}getPoint(y,E=new Yr){const z=E,ne=this.v0,ie=this.v1,se=this.v2,ae=this.v3;return z.set(a1(y,ne.x,ie.x,se.x,ae.x),a1(y,ne.y,ie.y,se.y,ae.y)),z}copy(y){return super.copy(y),this.v0.copy(y.v0),this.v1.copy(y.v1),this.v2.copy(y.v2),this.v3.copy(y.v3),this}toJSON(){const y=super.toJSON();return y.v0=this.v0.toArray(),y.v1=this.v1.toArray(),y.v2=this.v2.toArray(),y.v3=this.v3.toArray(),y}fromJSON(y){return super.fromJSON(y),this.v0.fromArray(y.v0),this.v1.fromArray(y.v1),this.v2.fromArray(y.v2),this.v3.fromArray(y.v3),this}}class hE extends lv{constructor(y=new yn,E=new yn,z=new yn,ne=new yn){super(),this.isCubicBezierCurve3=!0,this.type="CubicBezierCurve3",this.v0=y,this.v1=E,this.v2=z,this.v3=ne}getPoint(y,E=new yn){const z=E,ne=this.v0,ie=this.v1,se=this.v2,ae=this.v3;return z.set(a1(y,ne.x,ie.x,se.x,ae.x),a1(y,ne.y,ie.y,se.y,ae.y),a1(y,ne.z,ie.z,se.z,ae.z)),z}copy(y){return super.copy(y),this.v0.copy(y.v0),this.v1.copy(y.v1),this.v2.copy(y.v2),this.v3.copy(y.v3),this}toJSON(){const y=super.toJSON();return y.v0=this.v0.toArray(),y.v1=this.v1.toArray(),y.v2=this.v2.toArray(),y.v3=this.v3.toArray(),y}fromJSON(y){return super.fromJSON(y),this.v0.fromArray(y.v0),this.v1.fromArray(y.v1),this.v2.fromArray(y.v2),this.v3.fromArray(y.v3),this}}class O5 extends lv{constructor(y=new Yr,E=new Yr){super(),this.isLineCurve=!0,this.type="LineCurve",this.v1=y,this.v2=E}getPoint(y,E=new Yr){const z=E;return y===1?z.copy(this.v2):(z.copy(this.v2).sub(this.v1),z.multiplyScalar(y).add(this.v1)),z}getPointAt(y,E){return this.getPoint(y,E)}getTangent(y,E=new Yr){return E.subVectors(this.v2,this.v1).normalize()}getTangentAt(y,E){return this.getTangent(y,E)}copy(y){return super.copy(y),this.v1.copy(y.v1),this.v2.copy(y.v2),this}toJSON(){const y=super.toJSON();return y.v1=this.v1.toArray(),y.v2=this.v2.toArray(),y}fromJSON(y){return super.fromJSON(y),this.v1.fromArray(y.v1),this.v2.fromArray(y.v2),this}}class vy extends lv{constructor(y=new yn,E=new yn){super(),this.isLineCurve3=!0,this.type="LineCurve3",this.v1=y,this.v2=E}getPoint(y,E=new yn){const z=E;return y===1?z.copy(this.v2):(z.copy(this.v2).sub(this.v1),z.multiplyScalar(y).add(this.v1)),z}getPointAt(y,E){return this.getPoint(y,E)}getTangent(y,E=new yn){return E.subVectors(this.v2,this.v1).normalize()}getTangentAt(y,E){return this.getTangent(y,E)}copy(y){return super.copy(y),this.v1.copy(y.v1),this.v2.copy(y.v2),this}toJSON(){const y=super.toJSON();return y.v1=this.v1.toArray(),y.v2=this.v2.toArray(),y}fromJSON(y){return super.fromJSON(y),this.v1.fromArray(y.v1),this.v2.fromArray(y.v2),this}}class l1 extends lv{constructor(y=new Yr,E=new Yr,z=new Yr){super(),this.isQuadraticBezierCurve=!0,this.type="QuadraticBezierCurve",this.v0=y,this.v1=E,this.v2=z}getPoint(y,E=new Yr){const z=E,ne=this.v0,ie=this.v1,se=this.v2;return z.set(s1(y,ne.x,ie.x,se.x),s1(y,ne.y,ie.y,se.y)),z}copy(y){return super.copy(y),this.v0.copy(y.v0),this.v1.copy(y.v1),this.v2.copy(y.v2),this}toJSON(){const y=super.toJSON();return y.v0=this.v0.toArray(),y.v1=this.v1.toArray(),y.v2=this.v2.toArray(),y}fromJSON(y){return super.fromJSON(y),this.v0.fromArray(y.v0),this.v1.fromArray(y.v1),this.v2.fromArray(y.v2),this}}class Nf extends lv{constructor(y=new yn,E=new yn,z=new yn){super(),this.isQuadraticBezierCurve3=!0,this.type="QuadraticBezierCurve3",this.v0=y,this.v1=E,this.v2=z}getPoint(y,E=new yn){const z=E,ne=this.v0,ie=this.v1,se=this.v2;return z.set(s1(y,ne.x,ie.x,se.x),s1(y,ne.y,ie.y,se.y),s1(y,ne.z,ie.z,se.z)),z}copy(y){return super.copy(y),this.v0.copy(y.v0),this.v1.copy(y.v1),this.v2.copy(y.v2),this}toJSON(){const y=super.toJSON();return y.v0=this.v0.toArray(),y.v1=this.v1.toArray(),y.v2=this.v2.toArray(),y}fromJSON(y){return super.fromJSON(y),this.v0.fromArray(y.v0),this.v1.fromArray(y.v1),this.v2.fromArray(y.v2),this}}class D2 extends lv{constructor(y=[]){super(),this.isSplineCurve=!0,this.type="SplineCurve",this.points=y}getPoint(y,E=new Yr){const z=E,ne=this.points,ie=(ne.length-1)*y,se=Math.floor(ie),ae=ie-se,he=ne[se===0?se:se-1],pe=ne[se],ve=ne[se>ne.length-2?ne.length-1:se+1],xe=ne[se>ne.length-3?ne.length-1:se+2];return z.set(mP(ae,he.x,pe.x,ve.x,xe.x),mP(ae,he.y,pe.y,ve.y,xe.y)),z}copy(y){super.copy(y),this.points=[];for(let E=0,z=y.points.length;E<z;E++){const ne=y.points[E];this.points.push(ne.clone())}return this}toJSON(){const y=super.toJSON();y.points=[];for(let E=0,z=this.points.length;E<z;E++){const ne=this.points[E];y.points.push(ne.toArray())}return y}fromJSON(y){super.fromJSON(y),this.points=[];for(let E=0,z=y.points.length;E<z;E++){const ne=y.points[E];this.points.push(new Yr().fromArray(ne))}return this}}var u1=Object.freeze({__proto__:null,ArcCurve:aE,CatmullRomCurve3:my,CubicBezierCurve:yP,CubicBezierCurve3:hE,EllipseCurve:C2,LineCurve:O5,LineCurve3:vy,QuadraticBezierCurve:l1,QuadraticBezierCurve3:Nf,SplineCurve:D2});class N2 extends lv{constructor(){super(),this.type="CurvePath",this.curves=[],this.autoClose=!1}add(y){this.curves.push(y)}closePath(){const y=this.curves[0].getPoint(0),E=this.curves[this.curves.length-1].getPoint(1);if(!y.equals(E)){const z=y.isVector2===!0?"LineCurve":"LineCurve3";this.curves.push(new u1[z](E,y))}return this}getPoint(y,E){const z=y*this.getLength(),ne=this.getCurveLengths();let ie=0;for(;ie<ne.length;){if(ne[ie]>=z){const se=ne[ie]-z,ae=this.curves[ie],he=ae.getLength(),pe=he===0?0:1-se/he;return ae.getPointAt(pe,E)}ie++}return null}getLength(){const y=this.getCurveLengths();return y[y.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const y=[];let E=0;for(let z=0,ne=this.curves.length;z<ne;z++)E+=this.curves[z].getLength(),y.push(E);return this.cacheLengths=y,y}getSpacedPoints(y=40){const E=[];for(let z=0;z<=y;z++)E.push(this.getPoint(z/y));return this.autoClose&&E.push(E[0]),E}getPoints(y=12){const E=[];let z;for(let ne=0,ie=this.curves;ne<ie.length;ne++){const se=ie[ne],ae=se.isEllipseCurve?y*2:se.isLineCurve||se.isLineCurve3?1:se.isSplineCurve?y*se.points.length:y,he=se.getPoints(ae);for(let pe=0;pe<he.length;pe++){const ve=he[pe];z&&z.equals(ve)||(E.push(ve),z=ve)}}return this.autoClose&&E.length>1&&!E[E.length-1].equals(E[0])&&E.push(E[0]),E}copy(y){super.copy(y),this.curves=[];for(let E=0,z=y.curves.length;E<z;E++){const ne=y.curves[E];this.curves.push(ne.clone())}return this.autoClose=y.autoClose,this}toJSON(){const y=super.toJSON();y.autoClose=this.autoClose,y.curves=[];for(let E=0,z=this.curves.length;E<z;E++){const ne=this.curves[E];y.curves.push(ne.toJSON())}return y}fromJSON(y){super.fromJSON(y),this.autoClose=y.autoClose,this.curves=[];for(let E=0,z=y.curves.length;E<z;E++){const ne=y.curves[E];this.curves.push(new u1[ne.type]().fromJSON(ne))}return this}}class F2 extends N2{constructor(y){super(),this.type="Path",this.currentPoint=new Yr,y&&this.setFromPoints(y)}setFromPoints(y){this.moveTo(y[0].x,y[0].y);for(let E=1,z=y.length;E<z;E++)this.lineTo(y[E].x,y[E].y);return this}moveTo(y,E){return this.currentPoint.set(y,E),this}lineTo(y,E){const z=new O5(this.currentPoint.clone(),new Yr(y,E));return this.curves.push(z),this.currentPoint.set(y,E),this}quadraticCurveTo(y,E,z,ne){const ie=new l1(this.currentPoint.clone(),new Yr(y,E),new Yr(z,ne));return this.curves.push(ie),this.currentPoint.set(z,ne),this}bezierCurveTo(y,E,z,ne,ie,se){const ae=new yP(this.currentPoint.clone(),new Yr(y,E),new Yr(z,ne),new Yr(ie,se));return this.curves.push(ae),this.currentPoint.set(ie,se),this}splineThru(y){const E=[this.currentPoint.clone()].concat(y),z=new D2(E);return this.curves.push(z),this.currentPoint.copy(y[y.length-1]),this}arc(y,E,z,ne,ie,se){const ae=this.currentPoint.x,he=this.currentPoint.y;return this.absarc(y+ae,E+he,z,ne,ie,se),this}absarc(y,E,z,ne,ie,se){return this.absellipse(y,E,z,z,ne,ie,se),this}ellipse(y,E,z,ne,ie,se,ae,he){const pe=this.currentPoint.x,ve=this.currentPoint.y;return this.absellipse(y+pe,E+ve,z,ne,ie,se,ae,he),this}absellipse(y,E,z,ne,ie,se,ae,he){const pe=new C2(y,E,z,ne,ie,se,ae,he);if(this.curves.length>0){const xe=pe.getPoint(0);xe.equals(this.currentPoint)||this.lineTo(xe.x,xe.y)}this.curves.push(pe);const ve=pe.getPoint(1);return this.currentPoint.copy(ve),this}copy(y){return super.copy(y),this.currentPoint.copy(y.currentPoint),this}toJSON(){const y=super.toJSON();return y.currentPoint=this.currentPoint.toArray(),y}fromJSON(y){return super.fromJSON(y),this.currentPoint.fromArray(y.currentPoint),this}}class uv extends F2{constructor(y){super(y),this.uuid=pg(),this.type="Shape",this.holes=[]}getPointsHoles(y){const E=[];for(let z=0,ne=this.holes.length;z<ne;z++)E[z]=this.holes[z].getPoints(y);return E}extractPoints(y){return{shape:this.getPoints(y),holes:this.getPointsHoles(y)}}copy(y){super.copy(y),this.holes=[];for(let E=0,z=y.holes.length;E<z;E++){const ne=y.holes[E];this.holes.push(ne.clone())}return this}toJSON(){const y=super.toJSON();y.uuid=this.uuid,y.holes=[];for(let E=0,z=this.holes.length;E<z;E++){const ne=this.holes[E];y.holes.push(ne.toJSON())}return y}fromJSON(y){super.fromJSON(y),this.uuid=y.uuid,this.holes=[];for(let E=0,z=y.holes.length;E<z;E++){const ne=y.holes[E];this.holes.push(new F2().fromJSON(ne))}return this}}function qs(ee,y,E=2){const z=y&&y.length,ne=z?y[0]*E:ee.length;let ie=R5(ee,0,ne,E,!0);const se=[];if(!ie||ie.next===ie.prev)return se;let ae,he,pe;if(z&&(ie=V5(ee,y,ie,E)),ee.length>80*E){ae=1/0,he=1/0;let ve=-1/0,xe=-1/0;for(let Se=E;Se<ne;Se+=E){const Be=ee[Se],De=ee[Se+1];Be<ae&&(ae=Be),De<he&&(he=De),Be>ve&&(ve=Be),De>xe&&(xe=De)}pe=Math.max(ve-ae,xe-he),pe=pe!==0?32767/pe:0}return c1(ie,se,E,ae,he,pe,0),se}function R5(ee,y,E,z,ne){let ie;if(ne===Uw(ee,y,E,z)>0)for(let se=y;se<E;se+=z)ie=SP(se/z|0,ee[se],ee[se+1],ie);else for(let se=E-z;se>=y;se-=z)ie=SP(se/z|0,ee[se],ee[se+1],ie);return ie&&Ay(ie,ie.next)&&(_p(ie),ie=ie.next),ie}function TA(ee,y){if(!ee)return ee;y||(y=ee);let E=ee,z;do if(z=!1,!E.steiner&&(Ay(E,E.next)||oh(E.prev,E,E.next)===0)){if(_p(E),E=y=E.prev,E===E.next)break;z=!0}else E=E.next;while(z||E!==y);return y}function c1(ee,y,E,z,ne,ie,se){if(!ee)return;!se&&ie&&G5(ee,z,ne,ie);let ae=ee;for(;ee.prev!==ee.next;){const he=ee.prev,pe=ee.next;if(ie?U5(ee,z,ne,ie):z5(ee)){y.push(he.i,ee.i,pe.i),_p(ee),ee=pe.next,ae=pe.next;continue}if(ee=pe,ee===ae){se?se===1?(ee=m3(TA(ee),y),c1(ee,y,E,z,ne,ie,2)):se===2&&H5(ee,y,E,z,ne,ie):c1(TA(ee),y,E,z,ne,ie,1);break}}}function z5(ee){const y=ee.prev,E=ee,z=ee.next;if(oh(y,E,z)>=0)return!1;const ne=y.x,ie=E.x,se=z.x,ae=y.y,he=E.y,pe=z.y,ve=Math.min(ne,ie,se),xe=Math.min(ae,he,pe),Se=Math.max(ne,ie,se),Be=Math.max(ae,he,pe);let De=z.next;for(;De!==y;){if(De.x>=ve&&De.x<=Se&&De.y>=xe&&De.y<=Be&&h1(ne,ae,ie,he,se,pe,De.x,De.y)&&oh(De.prev,De,De.next)>=0)return!1;De=De.next}return!0}function U5(ee,y,E,z){const ne=ee.prev,ie=ee,se=ee.next;if(oh(ne,ie,se)>=0)return!1;const ae=ne.x,he=ie.x,pe=se.x,ve=ne.y,xe=ie.y,Se=se.y,Be=Math.min(ae,he,pe),De=Math.min(ve,xe,Se),Re=Math.max(ae,he,pe),Oe=Math.max(ve,xe,Se),Le=zw(Be,De,y,E,z),Je=zw(Re,Oe,y,E,z);let $e=ee.prevZ,_e=ee.nextZ;for(;$e&&$e.z>=Le&&_e&&_e.z<=Je;){if($e.x>=Be&&$e.x<=Re&&$e.y>=De&&$e.y<=Oe&&$e!==ne&&$e!==se&&h1(ae,ve,he,xe,pe,Se,$e.x,$e.y)&&oh($e.prev,$e,$e.next)>=0||($e=$e.prevZ,_e.x>=Be&&_e.x<=Re&&_e.y>=De&&_e.y<=Oe&&_e!==ne&&_e!==se&&h1(ae,ve,he,xe,pe,Se,_e.x,_e.y)&&oh(_e.prev,_e,_e.next)>=0))return!1;_e=_e.nextZ}for(;$e&&$e.z>=Le;){if($e.x>=Be&&$e.x<=Re&&$e.y>=De&&$e.y<=Oe&&$e!==ne&&$e!==se&&h1(ae,ve,he,xe,pe,Se,$e.x,$e.y)&&oh($e.prev,$e,$e.next)>=0)return!1;$e=$e.prevZ}for(;_e&&_e.z<=Je;){if(_e.x>=Be&&_e.x<=Re&&_e.y>=De&&_e.y<=Oe&&_e!==ne&&_e!==se&&h1(ae,ve,he,xe,pe,Se,_e.x,_e.y)&&oh(_e.prev,_e,_e.next)>=0)return!1;_e=_e.nextZ}return!0}function m3(ee,y){let E=ee;do{const z=E.prev,ne=E.next.next;!Ay(z,ne)&&xP(z,E,E.next,ne)&&d1(z,ne)&&d1(ne,z)&&(y.push(z.i,E.i,ne.i),_p(E),_p(E.next),E=ee=ne),E=E.next}while(E!==ee);return TA(E)}function H5(ee,y,E,z,ne,ie){let se=ee;do{let ae=se.next.next;for(;ae!==se.prev;){if(se.i!==ae.i&&DA(se,ae)){let he=qp(se,ae);se=TA(se,se.next),he=TA(he,he.next),c1(se,y,E,z,ne,ie,0),c1(he,y,E,z,ne,ie,0);return}ae=ae.next}se=se.next}while(se!==ee)}function V5(ee,y,E,z){const ne=[];for(let ie=0,se=y.length;ie<se;ie++){const ae=y[ie]*z,he=ie<se-1?y[ie+1]*z:ee.length,pe=R5(ee,ae,he,z,!1);pe===pe.next&&(pe.steiner=!0),ne.push(I2(pe))}ne.sort(yy);for(let ie=0;ie<ne.length;ie++)E=AP(ne[ie],E);return E}function yy(ee,y){let E=ee.x-y.x;if(E===0&&(E=ee.y-y.y,E===0)){const z=(ee.next.y-ee.y)/(ee.next.x-ee.x),ne=(y.next.y-y.y)/(y.next.x-y.x);E=z-ne}return E}function AP(ee,y){const E=L2(ee,y);if(!E)return y;const z=qp(E,ee);return TA(z,z.next),TA(E,E.next)}function L2(ee,y){let E=y;const z=ee.x,ne=ee.y;let ie=-1/0,se;if(Ay(ee,E))return E;do{if(Ay(ee,E.next))return E.next;if(ne<=E.y&&ne>=E.next.y&&E.next.y!==E.y){const xe=E.x+(ne-E.y)*(E.next.x-E.x)/(E.next.y-E.y);if(xe<=z&&xe>ie&&(ie=xe,se=E.x<E.next.x?E:E.next,xe===z))return se}E=E.next}while(E!==y);if(!se)return null;const ae=se,he=se.x,pe=se.y;let ve=1/0;E=se;do{if(z>=E.x&&E.x>=he&&z!==E.x&&dE(ne<pe?z:ie,ne,he,pe,ne<pe?ie:z,ne,E.x,E.y)){const xe=Math.abs(ne-E.y)/(z-E.x);d1(E,ee)&&(xe<ve||xe===ve&&(E.x>se.x||E.x===se.x&&j5(se,E)))&&(se=E,ve=xe)}E=E.next}while(E!==ae);return se}function j5(ee,y){return oh(ee.prev,ee,y.prev)<0&&oh(y.next,ee,ee.next)<0}function G5(ee,y,E,z){let ne=ee;do ne.z===0&&(ne.z=zw(ne.x,ne.y,y,E,z)),ne.prevZ=ne.prev,ne.nextZ=ne.next,ne=ne.next;while(ne!==ee);ne.prevZ.nextZ=null,ne.prevZ=null,X5(ne)}function X5(ee){let y,E=1;do{let z=ee,ne;ee=null;let ie=null;for(y=0;z;){y++;let se=z,ae=0;for(let pe=0;pe<E&&(ae++,se=se.nextZ,!!se);pe++);let he=E;for(;ae>0||he>0&&se;)ae!==0&&(he===0||!se||z.z<=se.z)?(ne=z,z=z.nextZ,ae--):(ne=se,se=se.nextZ,he--),ie?ie.nextZ=ne:ee=ne,ne.prevZ=ie,ie=ne;z=se}ie.nextZ=null,E*=2}while(y>1);return ee}function zw(ee,y,E,z,ne){return ee=(ee-E)*ne|0,y=(y-z)*ne|0,ee=(ee|ee<<8)&16711935,ee=(ee|ee<<4)&252645135,ee=(ee|ee<<2)&858993459,ee=(ee|ee<<1)&1431655765,y=(y|y<<8)&16711935,y=(y|y<<4)&252645135,y=(y|y<<2)&858993459,y=(y|y<<1)&1431655765,ee|y<<1}function I2(ee){let y=ee,E=ee;do(y.x<E.x||y.x===E.x&&y.y<E.y)&&(E=y),y=y.next;while(y!==ee);return E}function dE(ee,y,E,z,ne,ie,se,ae){return(ne-se)*(y-ae)>=(ee-se)*(ie-ae)&&(ee-se)*(z-ae)>=(E-se)*(y-ae)&&(E-se)*(ie-ae)>=(ne-se)*(z-ae)}function h1(ee,y,E,z,ne,ie,se,ae){return!(ee===se&&y===ae)&&dE(ee,y,E,z,ne,ie,se,ae)}function DA(ee,y){return ee.next.i!==y.i&&ee.prev.i!==y.i&&!Gg(ee,y)&&(d1(ee,y)&&d1(y,ee)&&W5(ee,y)&&(oh(ee.prev,ee,y.prev)||oh(ee,y.prev,y))||Ay(ee,y)&&oh(ee.prev,ee,ee.next)>0&&oh(y.prev,y,y.next)>0)}function oh(ee,y,E){return(y.y-ee.y)*(E.x-y.x)-(y.x-ee.x)*(E.y-y.y)}function Ay(ee,y){return ee.x===y.x&&ee.y===y.y}function xP(ee,y,E,z){const ne=gd(oh(ee,y,E)),ie=gd(oh(ee,y,z)),se=gd(oh(E,z,ee)),ae=gd(oh(E,z,y));return!!(ne!==ie&&se!==ae||ne===0&&wP(ee,E,y)||ie===0&&wP(ee,z,y)||se===0&&wP(E,ee,z)||ae===0&&wP(E,y,z))}function wP(ee,y,E){return y.x<=Math.max(ee.x,E.x)&&y.x>=Math.min(ee.x,E.x)&&y.y<=Math.max(ee.y,E.y)&&y.y>=Math.min(ee.y,E.y)}function gd(ee){return ee>0?1:ee<0?-1:0}function Gg(ee,y){let E=ee;do{if(E.i!==ee.i&&E.next.i!==ee.i&&E.i!==y.i&&E.next.i!==y.i&&xP(E,E.next,ee,y))return!0;E=E.next}while(E!==ee);return!1}function d1(ee,y){return oh(ee.prev,ee,ee.next)<0?oh(ee,y,ee.next)>=0&&oh(ee,ee.prev,y)>=0:oh(ee,y,ee.prev)<0||oh(ee,ee.next,y)<0}function W5(ee,y){let E=ee,z=!1;const ne=(ee.x+y.x)/2,ie=(ee.y+y.y)/2;do E.y>ie!=E.next.y>ie&&E.next.y!==E.y&&ne<(E.next.x-E.x)*(ie-E.y)/(E.next.y-E.y)+E.x&&(z=!z),E=E.next;while(E!==ee);return z}function qp(ee,y){const E=xy(ee.i,ee.x,ee.y),z=xy(y.i,y.x,y.y),ne=ee.next,ie=y.prev;return ee.next=y,y.prev=ee,E.next=ne,ne.prev=E,z.next=E,E.prev=z,ie.next=z,z.prev=ie,z}function SP(ee,y,E,z){const ne=xy(ee,y,E);return z?(ne.next=z.next,ne.prev=z,z.next.prev=ne,z.next=ne):(ne.prev=ne,ne.next=ne),ne}function _p(ee){ee.next.prev=ee.prev,ee.prev.next=ee.next,ee.prevZ&&(ee.prevZ.nextZ=ee.nextZ),ee.nextZ&&(ee.nextZ.prevZ=ee.prevZ)}function xy(ee,y,E){return{i:ee,x:y,y:E,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function Uw(ee,y,E,z){let ne=0;for(let ie=y,se=E-z;ie<E;ie+=z)ne+=(ee[se]-ee[ie])*(ee[ie+1]+ee[se+1]),se=ie;return ne}class PP{static triangulate(y,E,z=2){return qs(y,E,z)}}class Xg{static area(y){const E=y.length;let z=0;for(let ne=E-1,ie=0;ie<E;ne=ie++)z+=y[ne].x*y[ie].y-y[ie].x*y[ne].y;return z*.5}static isClockWise(y){return Xg.area(y)<0}static triangulateShape(y,E){const z=[],ne=[],ie=[];Hw(y),f1(z,y);let se=y.length;E.forEach(Hw);for(let he=0;he<E.length;he++)ne.push(se),se+=E[he].length,f1(z,E[he]);const ae=PP.triangulate(z,ne);for(let he=0;he<ae.length;he+=3)ie.push(ae.slice(he,he+3));return ie}}function Hw(ee){const y=ee.length;y>2&&ee[y-1].equals(ee[0])&&ee.pop()}function f1(ee,y){for(let E=0;E<y.length;E++)ee.push(y[E].x),ee.push(y[E].y)}class wy extends Tu{constructor(y=new uv([new Yr(.5,.5),new Yr(-.5,.5),new Yr(-.5,-.5),new Yr(.5,-.5)]),E={}){super(),this.type="ExtrudeGeometry",this.parameters={shapes:y,options:E},y=Array.isArray(y)?y:[y];const z=this,ne=[],ie=[];for(let ae=0,he=y.length;ae<he;ae++){const pe=y[ae];se(pe)}this.setAttribute("position",new Za(ne,3)),this.setAttribute("uv",new Za(ie,2)),this.computeVertexNormals();function se(ae){const he=[],pe=E.curveSegments!==void 0?E.curveSegments:12,ve=E.steps!==void 0?E.steps:1,xe=E.depth!==void 0?E.depth:1;let Se=E.bevelEnabled!==void 0?E.bevelEnabled:!0,Be=E.bevelThickness!==void 0?E.bevelThickness:.2,De=E.bevelSize!==void 0?E.bevelSize:Be-.1,Re=E.bevelOffset!==void 0?E.bevelOffset:0,Oe=E.bevelSegments!==void 0?E.bevelSegments:3;const Le=E.extrudePath,Je=E.UVGenerator!==void 0?E.UVGenerator:Um;let $e,_e=!1,st,ct,ut,ht;Le&&($e=Le.getSpacedPoints(ve),_e=!0,Se=!1,st=Le.computeFrenetFrames(ve,!1),ct=new yn,ut=new yn,ht=new yn),Se||(Oe=0,Be=0,De=0,Re=0);const pt=ae.extractPoints(pe);let gt=pt.shape;const zt=pt.holes;if(!Xg.isClockWise(gt)){gt=gt.reverse();for(let un=0,so=zt.length;un<so;un++){const Kr=zt[un];Xg.isClockWise(Kr)&&(zt[un]=Kr.reverse())}}function Tn(un){const Kr=10000000000000001e-36;let kr=un[0];for(let _r=1;_r<=un.length;_r++){const Ks=_r%un.length,jo=un[Ks],Ro=jo.x-kr.x,qa=jo.y-kr.y,mn=Ro*Ro+qa*qa,Gt=Math.max(Math.abs(jo.x),Math.abs(jo.y),Math.abs(kr.x),Math.abs(kr.y)),tr=Kr*Gt*Gt;if(mn<=tr){un.splice(Ks,1),_r--;continue}kr=jo}}Tn(gt),zt.forEach(Tn);const Zn=zt.length,Nn=gt;for(let un=0;un<Zn;un++){const so=zt[un];gt=gt.concat(so)}function di(un,so,Kr){return so||console.error("THREE.ExtrudeGeometry: vec does not exist"),un.clone().addScaledVector(so,Kr)}const yi=gt.length;function bn(un,so,Kr){let kr,_r,Ks;const jo=un.x-so.x,Ro=un.y-so.y,qa=Kr.x-un.x,mn=Kr.y-un.y,Gt=jo*jo+Ro*Ro,tr=jo*mn-Ro*qa;if(Math.abs(tr)>Number.EPSILON){const Fr=Math.sqrt(Gt),vi=Math.sqrt(qa*qa+mn*mn),Dr=so.x-Ro/Fr,Es=so.y+jo/Fr,gs=Kr.x-mn/vi,Na=Kr.y+qa/vi,Qa=((gs-Dr)*mn-(Na-Es)*qa)/(jo*mn-Ro*qa);kr=Dr+jo*Qa-un.x,_r=Es+Ro*Qa-un.y;const Zo=kr*kr+_r*_r;if(Zo<=2)return new Yr(kr,_r);Ks=Math.sqrt(Zo/2)}else{let Fr=!1;jo>Number.EPSILON?qa>Number.EPSILON&&(Fr=!0):jo<-Number.EPSILON?qa<-Number.EPSILON&&(Fr=!0):Math.sign(Ro)===Math.sign(mn)&&(Fr=!0),Fr?(kr=-Ro,_r=jo,Ks=Math.sqrt(Gt)):(kr=jo,_r=Ro,Ks=Math.sqrt(Gt/2))}return new Yr(kr/Ks,_r/Ks)}const Sn=[];for(let un=0,so=Nn.length,Kr=so-1,kr=un+1;un<so;un++,Kr++,kr++)Kr===so&&(Kr=0),kr===so&&(kr=0),Sn[un]=bn(Nn[un],Nn[Kr],Nn[kr]);const ki=[];let ti,fn=Sn.concat();for(let un=0,so=Zn;un<so;un++){const Kr=zt[un];ti=[];for(let kr=0,_r=Kr.length,Ks=_r-1,jo=kr+1;kr<_r;kr++,Ks++,jo++)Ks===_r&&(Ks=0),jo===_r&&(jo=0),ti[kr]=bn(Kr[kr],Kr[Ks],Kr[jo]);ki.push(ti),fn=fn.concat(ti)}let Bi;if(Oe===0)Bi=Xg.triangulateShape(Nn,zt);else{const un=[],so=[];for(let Kr=0;Kr<Oe;Kr++){const kr=Kr/Oe,_r=Be*Math.cos(kr*Math.PI/2),Ks=De*Math.sin(kr*Math.PI/2)+Re;for(let jo=0,Ro=Nn.length;jo<Ro;jo++){const qa=di(Nn[jo],Sn[jo],Ks);Sr(qa.x,qa.y,-_r),kr===0&&un.push(qa)}for(let jo=0,Ro=Zn;jo<Ro;jo++){const qa=zt[jo];ti=ki[jo];const mn=[];for(let Gt=0,tr=qa.length;Gt<tr;Gt++){const Fr=di(qa[Gt],ti[Gt],Ks);Sr(Fr.x,Fr.y,-_r),kr===0&&mn.push(Fr)}kr===0&&so.push(mn)}}Bi=Xg.triangulateShape(un,so)}const jn=Bi.length,ei=De+Re;for(let un=0;un<yi;un++){const so=Se?di(gt[un],fn[un],ei):gt[un];_e?(ut.copy(st.normals[0]).multiplyScalar(so.x),ct.copy(st.binormals[0]).multiplyScalar(so.y),ht.copy($e[0]).add(ut).add(ct),Sr(ht.x,ht.y,ht.z)):Sr(so.x,so.y,0)}for(let un=1;un<=ve;un++)for(let so=0;so<yi;so++){const Kr=Se?di(gt[so],fn[so],ei):gt[so];_e?(ut.copy(st.normals[un]).multiplyScalar(Kr.x),ct.copy(st.binormals[un]).multiplyScalar(Kr.y),ht.copy($e[un]).add(ut).add(ct),Sr(ht.x,ht.y,ht.z)):Sr(Kr.x,Kr.y,xe/ve*un)}for(let un=Oe-1;un>=0;un--){const so=un/Oe,Kr=Be*Math.cos(so*Math.PI/2),kr=De*Math.sin(so*Math.PI/2)+Re;for(let _r=0,Ks=Nn.length;_r<Ks;_r++){const jo=di(Nn[_r],Sn[_r],kr);Sr(jo.x,jo.y,xe+Kr)}for(let _r=0,Ks=zt.length;_r<Ks;_r++){const jo=zt[_r];ti=ki[_r];for(let Ro=0,qa=jo.length;Ro<qa;Ro++){const mn=di(jo[Ro],ti[Ro],kr);_e?Sr(mn.x,mn.y+$e[ve-1].y,$e[ve-1].x+Kr):Sr(mn.x,mn.y,xe+Kr)}}}hr(),_n();function hr(){const un=ne.length/3;if(Se){let so=0,Kr=yi*so;for(let kr=0;kr<jn;kr++){const _r=Bi[kr];Pr(_r[2]+Kr,_r[1]+Kr,_r[0]+Kr)}so=ve+Oe*2,Kr=yi*so;for(let kr=0;kr<jn;kr++){const _r=Bi[kr];Pr(_r[0]+Kr,_r[1]+Kr,_r[2]+Kr)}}else{for(let so=0;so<jn;so++){const Kr=Bi[so];Pr(Kr[2],Kr[1],Kr[0])}for(let so=0;so<jn;so++){const Kr=Bi[so];Pr(Kr[0]+yi*ve,Kr[1]+yi*ve,Kr[2]+yi*ve)}}z.addGroup(un,ne.length/3-un,0)}function _n(){const un=ne.length/3;let so=0;qi(Nn,so),so+=Nn.length;for(let Kr=0,kr=zt.length;Kr<kr;Kr++){const _r=zt[Kr];qi(_r,so),so+=_r.length}z.addGroup(un,ne.length/3-un,1)}function qi(un,so){let Kr=un.length;for(;--Kr>=0;){const kr=Kr;let _r=Kr-1;_r<0&&(_r=un.length-1);for(let Ks=0,jo=ve+Oe*2;Ks<jo;Ks++){const Ro=yi*Ks,qa=yi*(Ks+1),mn=so+kr+Ro,Gt=so+_r+Ro,tr=so+_r+qa,Fr=so+kr+qa;Go(mn,Gt,tr,Fr)}}}function Sr(un,so,Kr){he.push(un),he.push(so),he.push(Kr)}function Pr(un,so,Kr){_o(un),_o(so),_o(Kr);const kr=ne.length/3,_r=Je.generateTopUV(z,ne,kr-3,kr-2,kr-1);ta(_r[0]),ta(_r[1]),ta(_r[2])}function Go(un,so,Kr,kr){_o(un),_o(so),_o(kr),_o(so),_o(Kr),_o(kr);const _r=ne.length/3,Ks=Je.generateSideWallUV(z,ne,_r-6,_r-3,_r-2,_r-1);ta(Ks[0]),ta(Ks[1]),ta(Ks[3]),ta(Ks[1]),ta(Ks[2]),ta(Ks[3])}function _o(un){ne.push(he[un*3+0]),ne.push(he[un*3+1]),ne.push(he[un*3+2])}function ta(un){ie.push(un.x),ie.push(un.y)}}}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}toJSON(){const y=super.toJSON(),E=this.parameters.shapes,z=this.parameters.options;return Hm(E,z,y)}static fromJSON(y,E){const z=[];for(let ie=0,se=y.shapes.length;ie<se;ie++){const ae=E[y.shapes[ie]];z.push(ae)}const ne=y.options.extrudePath;return ne!==void 0&&(y.options.extrudePath=new u1[ne.type]().fromJSON(ne)),new wy(z,y.options)}}const Um={generateTopUV:function(ee,y,E,z,ne){const ie=y[E*3],se=y[E*3+1],ae=y[z*3],he=y[z*3+1],pe=y[ne*3],ve=y[ne*3+1];return[new Yr(ie,se),new Yr(ae,he),new Yr(pe,ve)]},generateSideWallUV:function(ee,y,E,z,ne,ie){const se=y[E*3],ae=y[E*3+1],he=y[E*3+2],pe=y[z*3],ve=y[z*3+1],xe=y[z*3+2],Se=y[ne*3],Be=y[ne*3+1],De=y[ne*3+2],Re=y[ie*3],Oe=y[ie*3+1],Le=y[ie*3+2];return Math.abs(ae-ve)<Math.abs(se-pe)?[new Yr(se,1-he),new Yr(pe,1-xe),new Yr(Se,1-De),new Yr(Re,1-Le)]:[new Yr(ae,1-he),new Yr(ve,1-xe),new Yr(Be,1-De),new Yr(Oe,1-Le)]}};function Hm(ee,y,E){if(E.shapes=[],Array.isArray(ee))for(let z=0,ne=ee.length;z<ne;z++){const ie=ee[z];E.shapes.push(ie.uuid)}else E.shapes.push(ee.uuid);return E.options=Object.assign({},y),y.extrudePath!==void 0&&(E.options.extrudePath=y.extrudePath.toJSON()),E}class Vm extends o1{constructor(y=1,E=0){const z=(1+Math.sqrt(5))/2,ne=[-1,z,0,1,z,0,-1,-z,0,1,-z,0,0,-1,z,0,1,z,0,-1,-z,0,1,-z,z,0,-1,z,0,1,-z,0,-1,-z,0,1],ie=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1];super(ne,ie,y,E),this.type="IcosahedronGeometry",this.parameters={radius:y,detail:E}}static fromJSON(y){return new Vm(y.radius,y.detail)}}class Wg extends Tu{constructor(y=[new Yr(0,-.5),new Yr(.5,0),new Yr(0,.5)],E=12,z=0,ne=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:y,segments:E,phiStart:z,phiLength:ne},E=Math.floor(E),ne=Bu(ne,0,Math.PI*2);const ie=[],se=[],ae=[],he=[],pe=[],ve=1/E,xe=new yn,Se=new Yr,Be=new yn,De=new yn,Re=new yn;let Oe=0,Le=0;for(let Je=0;Je<=y.length-1;Je++)switch(Je){case 0:Oe=y[Je+1].x-y[Je].x,Le=y[Je+1].y-y[Je].y,Be.x=Le*1,Be.y=-Oe,Be.z=Le*0,Re.copy(Be),Be.normalize(),he.push(Be.x,Be.y,Be.z);break;case y.length-1:he.push(Re.x,Re.y,Re.z);break;default:Oe=y[Je+1].x-y[Je].x,Le=y[Je+1].y-y[Je].y,Be.x=Le*1,Be.y=-Oe,Be.z=Le*0,De.copy(Be),Be.x+=Re.x,Be.y+=Re.y,Be.z+=Re.z,Be.normalize(),he.push(Be.x,Be.y,Be.z),Re.copy(De)}for(let Je=0;Je<=E;Je++){const $e=z+Je*ve*ne,_e=Math.sin($e),st=Math.cos($e);for(let ct=0;ct<=y.length-1;ct++){xe.x=y[ct].x*_e,xe.y=y[ct].y,xe.z=y[ct].x*st,se.push(xe.x,xe.y,xe.z),Se.x=Je/E,Se.y=ct/(y.length-1),ae.push(Se.x,Se.y);const ut=he[3*ct+0]*_e,ht=he[3*ct+1],pt=he[3*ct+0]*st;pe.push(ut,ht,pt)}}for(let Je=0;Je<E;Je++)for(let $e=0;$e<y.length-1;$e++){const _e=$e+Je*y.length,st=_e,ct=_e+y.length,ut=_e+y.length+1,ht=_e+1;ie.push(st,ct,ht),ie.push(ut,ht,ct)}this.setIndex(ie),this.setAttribute("position",new Za(se,3)),this.setAttribute("uv",new Za(ae,2)),this.setAttribute("normal",new Za(pe,3))}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}static fromJSON(y){return new Wg(y.points,y.segments,y.phiStart,y.phiLength)}}class vm extends o1{constructor(y=1,E=0){const z=[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],ne=[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2];super(z,ne,y,E),this.type="OctahedronGeometry",this.parameters={radius:y,detail:E}}static fromJSON(y){return new vm(y.radius,y.detail)}}class $p extends Tu{constructor(y=1,E=1,z=1,ne=1){super(),this.type="PlaneGeometry",this.parameters={width:y,height:E,widthSegments:z,heightSegments:ne};const ie=y/2,se=E/2,ae=Math.floor(z),he=Math.floor(ne),pe=ae+1,ve=he+1,xe=y/ae,Se=E/he,Be=[],De=[],Re=[],Oe=[];for(let Le=0;Le<ve;Le++){const Je=Le*Se-se;for(let $e=0;$e<pe;$e++){const _e=$e*xe-ie;De.push(_e,-Je,0),Re.push(0,0,1),Oe.push($e/ae),Oe.push(1-Le/he)}}for(let Le=0;Le<he;Le++)for(let Je=0;Je<ae;Je++){const $e=Je+pe*Le,_e=Je+pe*(Le+1),st=Je+1+pe*(Le+1),ct=Je+1+pe*Le;Be.push($e,_e,ct),Be.push(_e,st,ct)}this.setIndex(Be),this.setAttribute("position",new Za(De,3)),this.setAttribute("normal",new Za(Re,3)),this.setAttribute("uv",new Za(Oe,2))}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}static fromJSON(y){return new $p(y.width,y.height,y.widthSegments,y.heightSegments)}}class Vw extends Tu{constructor(y=.5,E=1,z=32,ne=1,ie=0,se=Math.PI*2){super(),this.type="RingGeometry",this.parameters={innerRadius:y,outerRadius:E,thetaSegments:z,phiSegments:ne,thetaStart:ie,thetaLength:se},z=Math.max(3,z),ne=Math.max(1,ne);const ae=[],he=[],pe=[],ve=[];let xe=y;const Se=(E-y)/ne,Be=new yn,De=new Yr;for(let Re=0;Re<=ne;Re++){for(let Oe=0;Oe<=z;Oe++){const Le=ie+Oe/z*se;Be.x=xe*Math.cos(Le),Be.y=xe*Math.sin(Le),he.push(Be.x,Be.y,Be.z),pe.push(0,0,1),De.x=(Be.x/E+1)/2,De.y=(Be.y/E+1)/2,ve.push(De.x,De.y)}xe+=Se}for(let Re=0;Re<ne;Re++){const Oe=Re*(z+1);for(let Le=0;Le<z;Le++){const Je=Le+Oe,$e=Je,_e=Je+z+1,st=Je+z+2,ct=Je+1;ae.push($e,_e,ct),ae.push(_e,st,ct)}}this.setIndex(ae),this.setAttribute("position",new Za(he,3)),this.setAttribute("normal",new Za(pe,3)),this.setAttribute("uv",new Za(ve,2))}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}static fromJSON(y){return new Vw(y.innerRadius,y.outerRadius,y.thetaSegments,y.phiSegments,y.thetaStart,y.thetaLength)}}class p1 extends Tu{constructor(y=new uv([new Yr(0,.5),new Yr(-.5,-.5),new Yr(.5,-.5)]),E=12){super(),this.type="ShapeGeometry",this.parameters={shapes:y,curveSegments:E};const z=[],ne=[],ie=[],se=[];let ae=0,he=0;if(Array.isArray(y)===!1)pe(y);else for(let ve=0;ve<y.length;ve++)pe(y[ve]),this.addGroup(ae,he,ve),ae+=he,he=0;this.setIndex(z),this.setAttribute("position",new Za(ne,3)),this.setAttribute("normal",new Za(ie,3)),this.setAttribute("uv",new Za(se,2));function pe(ve){const xe=ne.length/3,Se=ve.extractPoints(E);let Be=Se.shape;const De=Se.holes;Xg.isClockWise(Be)===!1&&(Be=Be.reverse());for(let Oe=0,Le=De.length;Oe<Le;Oe++){const Je=De[Oe];Xg.isClockWise(Je)===!0&&(De[Oe]=Je.reverse())}const Re=Xg.triangulateShape(Be,De);for(let Oe=0,Le=De.length;Oe<Le;Oe++){const Je=De[Oe];Be=Be.concat(Je)}for(let Oe=0,Le=Be.length;Oe<Le;Oe++){const Je=Be[Oe];ne.push(Je.x,Je.y,0),ie.push(0,0,1),se.push(Je.x,Je.y)}for(let Oe=0,Le=Re.length;Oe<Le;Oe++){const Je=Re[Oe],$e=Je[0]+xe,_e=Je[1]+xe,st=Je[2]+xe;z.push($e,_e,st),he+=3}}}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}toJSON(){const y=super.toJSON(),E=this.parameters.shapes;return fE(E,y)}static fromJSON(y,E){const z=[];for(let ne=0,ie=y.shapes.length;ne<ie;ne++){const se=E[y.shapes[ne]];z.push(se)}return new p1(z,y.curveSegments)}}function fE(ee,y){if(y.shapes=[],Array.isArray(ee))for(let E=0,z=ee.length;E<z;E++){const ne=ee[E];y.shapes.push(ne.uuid)}else y.shapes.push(ee.uuid);return y}class ym extends Tu{constructor(y=1,E=32,z=16,ne=0,ie=Math.PI*2,se=0,ae=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:y,widthSegments:E,heightSegments:z,phiStart:ne,phiLength:ie,thetaStart:se,thetaLength:ae},E=Math.max(3,Math.floor(E)),z=Math.max(2,Math.floor(z));const he=Math.min(se+ae,Math.PI);let pe=0;const ve=[],xe=new yn,Se=new yn,Be=[],De=[],Re=[],Oe=[];for(let Le=0;Le<=z;Le++){const Je=[],$e=Le/z;let _e=0;Le===0&&se===0?_e=.5/E:Le===z&&he===Math.PI&&(_e=-.5/E);for(let st=0;st<=E;st++){const ct=st/E;xe.x=-y*Math.cos(ne+ct*ie)*Math.sin(se+$e*ae),xe.y=y*Math.cos(se+$e*ae),xe.z=y*Math.sin(ne+ct*ie)*Math.sin(se+$e*ae),De.push(xe.x,xe.y,xe.z),Se.copy(xe).normalize(),Re.push(Se.x,Se.y,Se.z),Oe.push(ct+_e,1-$e),Je.push(pe++)}ve.push(Je)}for(let Le=0;Le<z;Le++)for(let Je=0;Je<E;Je++){const $e=ve[Le][Je+1],_e=ve[Le][Je],st=ve[Le+1][Je],ct=ve[Le+1][Je+1];(Le!==0||se>0)&&Be.push($e,_e,ct),(Le!==z-1||he<Math.PI)&&Be.push(_e,st,ct)}this.setIndex(Be),this.setAttribute("position",new Za(De,3)),this.setAttribute("normal",new Za(Re,3)),this.setAttribute("uv",new Za(Oe,2))}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}static fromJSON(y){return new ym(y.radius,y.widthSegments,y.heightSegments,y.phiStart,y.phiLength,y.thetaStart,y.thetaLength)}}class CP extends o1{constructor(y=1,E=0){const z=[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],ne=[2,1,0,0,3,2,1,3,0,2,3,1];super(z,ne,y,E),this.type="TetrahedronGeometry",this.parameters={radius:y,detail:E}}static fromJSON(y){return new CP(y.radius,y.detail)}}class EP extends Tu{constructor(y=1,E=.4,z=12,ne=48,ie=Math.PI*2){super(),this.type="TorusGeometry",this.parameters={radius:y,tube:E,radialSegments:z,tubularSegments:ne,arc:ie},z=Math.floor(z),ne=Math.floor(ne);const se=[],ae=[],he=[],pe=[],ve=new yn,xe=new yn,Se=new yn;for(let Be=0;Be<=z;Be++)for(let De=0;De<=ne;De++){const Re=De/ne*ie,Oe=Be/z*Math.PI*2;xe.x=(y+E*Math.cos(Oe))*Math.cos(Re),xe.y=(y+E*Math.cos(Oe))*Math.sin(Re),xe.z=E*Math.sin(Oe),ae.push(xe.x,xe.y,xe.z),ve.x=y*Math.cos(Re),ve.y=y*Math.sin(Re),Se.subVectors(xe,ve).normalize(),he.push(Se.x,Se.y,Se.z),pe.push(De/ne),pe.push(Be/z)}for(let Be=1;Be<=z;Be++)for(let De=1;De<=ne;De++){const Re=(ne+1)*Be+De-1,Oe=(ne+1)*(Be-1)+De-1,Le=(ne+1)*(Be-1)+De,Je=(ne+1)*Be+De;se.push(Re,Oe,Je),se.push(Oe,Le,Je)}this.setIndex(se),this.setAttribute("position",new Za(ae,3)),this.setAttribute("normal",new Za(he,3)),this.setAttribute("uv",new Za(pe,2))}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}static fromJSON(y){return new EP(y.radius,y.tube,y.radialSegments,y.tubularSegments,y.arc)}}class jw extends Tu{constructor(y=1,E=.4,z=64,ne=8,ie=2,se=3){super(),this.type="TorusKnotGeometry",this.parameters={radius:y,tube:E,tubularSegments:z,radialSegments:ne,p:ie,q:se},z=Math.floor(z),ne=Math.floor(ne);const ae=[],he=[],pe=[],ve=[],xe=new yn,Se=new yn,Be=new yn,De=new yn,Re=new yn,Oe=new yn,Le=new yn;for(let $e=0;$e<=z;++$e){const _e=$e/z*ie*Math.PI*2;Je(_e,ie,se,y,Be),Je(_e+.01,ie,se,y,De),Oe.subVectors(De,Be),Le.addVectors(De,Be),Re.crossVectors(Oe,Le),Le.crossVectors(Re,Oe),Re.normalize(),Le.normalize();for(let st=0;st<=ne;++st){const ct=st/ne*Math.PI*2,ut=-E*Math.cos(ct),ht=E*Math.sin(ct);xe.x=Be.x+(ut*Le.x+ht*Re.x),xe.y=Be.y+(ut*Le.y+ht*Re.y),xe.z=Be.z+(ut*Le.z+ht*Re.z),he.push(xe.x,xe.y,xe.z),Se.subVectors(xe,Be).normalize(),pe.push(Se.x,Se.y,Se.z),ve.push($e/z),ve.push(st/ne)}}for(let $e=1;$e<=z;$e++)for(let _e=1;_e<=ne;_e++){const st=(ne+1)*($e-1)+(_e-1),ct=(ne+1)*$e+(_e-1),ut=(ne+1)*$e+_e,ht=(ne+1)*($e-1)+_e;ae.push(st,ct,ht),ae.push(ct,ut,ht)}this.setIndex(ae),this.setAttribute("position",new Za(he,3)),this.setAttribute("normal",new Za(pe,3)),this.setAttribute("uv",new Za(ve,2));function Je($e,_e,st,ct,ut){const ht=Math.cos($e),pt=Math.sin($e),gt=st/_e*$e,zt=Math.cos(gt);ut.x=ct*(2+zt)*.5*ht,ut.y=ct*(2+zt)*pt*.5,ut.z=ct*Math.sin(gt)*.5}}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}static fromJSON(y){return new jw(y.radius,y.tube,y.tubularSegments,y.radialSegments,y.p,y.q)}}class Gw extends Tu{constructor(y=new Nf(new yn(-1,-1,0),new yn(-1,1,0),new yn(1,1,0)),E=64,z=1,ne=8,ie=!1){super(),this.type="TubeGeometry",this.parameters={path:y,tubularSegments:E,radius:z,radialSegments:ne,closed:ie};const se=y.computeFrenetFrames(E,ie);this.tangents=se.tangents,this.normals=se.normals,this.binormals=se.binormals;const ae=new yn,he=new yn,pe=new Yr;let ve=new yn;const xe=[],Se=[],Be=[],De=[];Re(),this.setIndex(De),this.setAttribute("position",new Za(xe,3)),this.setAttribute("normal",new Za(Se,3)),this.setAttribute("uv",new Za(Be,2));function Re(){for(let $e=0;$e<E;$e++)Oe($e);Oe(ie===!1?E:0),Je(),Le()}function Oe($e){ve=y.getPointAt($e/E,ve);const _e=se.normals[$e],st=se.binormals[$e];for(let ct=0;ct<=ne;ct++){const ut=ct/ne*Math.PI*2,ht=Math.sin(ut),pt=-Math.cos(ut);he.x=pt*_e.x+ht*st.x,he.y=pt*_e.y+ht*st.y,he.z=pt*_e.z+ht*st.z,he.normalize(),Se.push(he.x,he.y,he.z),ae.x=ve.x+z*he.x,ae.y=ve.y+z*he.y,ae.z=ve.z+z*he.z,xe.push(ae.x,ae.y,ae.z)}}function Le(){for(let $e=1;$e<=E;$e++)for(let _e=1;_e<=ne;_e++){const st=(ne+1)*($e-1)+(_e-1),ct=(ne+1)*$e+(_e-1),ut=(ne+1)*$e+_e,ht=(ne+1)*($e-1)+_e;De.push(st,ct,ht),De.push(ct,ut,ht)}}function Je(){for(let $e=0;$e<=E;$e++)for(let _e=0;_e<=ne;_e++)pe.x=$e/E,pe.y=_e/ne,Be.push(pe.x,pe.y)}}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}toJSON(){const y=super.toJSON();return y.path=this.parameters.path.toJSON(),y}static fromJSON(y){return new Gw(new u1[y.path.type]().fromJSON(y.path),y.tubularSegments,y.radius,y.radialSegments,y.closed)}}class pE extends Tu{constructor(y=null){if(super(),this.type="WireframeGeometry",this.parameters={geometry:y},y!==null){const E=[],z=new Set,ne=new yn,ie=new yn;if(y.index!==null){const se=y.attributes.position,ae=y.index;let he=y.groups;he.length===0&&(he=[{start:0,count:ae.count,materialIndex:0}]);for(let pe=0,ve=he.length;pe<ve;++pe){const xe=he[pe],Se=xe.start,Be=xe.count;for(let De=Se,Re=Se+Be;De<Re;De+=3)for(let Oe=0;Oe<3;Oe++){const Le=ae.getX(De+Oe),Je=ae.getX(De+(Oe+1)%3);ne.fromBufferAttribute(se,Le),ie.fromBufferAttribute(se,Je),gE(ne,ie,z)===!0&&(E.push(ne.x,ne.y,ne.z),E.push(ie.x,ie.y,ie.z))}}}else{const se=y.attributes.position;for(let ae=0,he=se.count/3;ae<he;ae++)for(let pe=0;pe<3;pe++){const ve=3*ae+pe,xe=3*ae+(pe+1)%3;ne.fromBufferAttribute(se,ve),ie.fromBufferAttribute(se,xe),gE(ne,ie,z)===!0&&(E.push(ne.x,ne.y,ne.z),E.push(ie.x,ie.y,ie.z))}}this.setAttribute("position",new Za(E,3))}}copy(y){return super.copy(y),this.parameters=Object.assign({},y.parameters),this}}function gE(ee,y,E){const z=`${ee.x},${ee.y},${ee.z}-${y.x},${y.y},${y.z}`,ne=`${y.x},${y.y},${y.z}-${ee.x},${ee.y},${ee.z}`;return E.has(z)===!0||E.has(ne)===!0?!1:(E.add(z),E.add(ne),!0)}var mE=Object.freeze({__proto__:null,BoxGeometry:Wa,CapsuleGeometry:iE,CircleGeometry:Ow,ConeGeometry:av,CylinderGeometry:Kd,DodecahedronGeometry:fP,EdgesGeometry:g3,ExtrudeGeometry:wy,IcosahedronGeometry:Vm,LatheGeometry:Wg,OctahedronGeometry:vm,PlaneGeometry:$p,PolyhedronGeometry:o1,RingGeometry:Vw,ShapeGeometry:p1,SphereGeometry:ym,TetrahedronGeometry:CP,TorusGeometry:EP,TorusKnotGeometry:jw,TubeGeometry:Gw,WireframeGeometry:pE});class bP extends Zd{constructor(y){super(),this.isShadowMaterial=!0,this.type="ShadowMaterial",this.color=new ia(0),this.transparent=!0,this.fog=!0,this.setValues(y)}copy(y){return super.copy(y),this.color.copy(y.color),this.fog=y.fog,this}}class g1 extends null{constructor(y){super(y),this.isRawShaderMaterial=!0,this.type="RawShaderMaterial"}}class $f extends Zd{constructor(y){super(),this.isMeshStandardMaterial=!0,this.type="MeshStandardMaterial",this.defines={STANDARD:""},this.color=new ia(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ia(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=h0,this.normalScale=new Yr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Pp,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(y)}copy(y){return super.copy(y),this.defines={STANDARD:""},this.color.copy(y.color),this.roughness=y.roughness,this.metalness=y.metalness,this.map=y.map,this.lightMap=y.lightMap,this.lightMapIntensity=y.lightMapIntensity,this.aoMap=y.aoMap,this.aoMapIntensity=y.aoMapIntensity,this.emissive.copy(y.emissive),this.emissiveMap=y.emissiveMap,this.emissiveIntensity=y.emissiveIntensity,this.bumpMap=y.bumpMap,this.bumpScale=y.bumpScale,this.normalMap=y.normalMap,this.normalMapType=y.normalMapType,this.normalScale.copy(y.normalScale),this.displacementMap=y.displacementMap,this.displacementScale=y.displacementScale,this.displacementBias=y.displacementBias,this.roughnessMap=y.roughnessMap,this.metalnessMap=y.metalnessMap,this.alphaMap=y.alphaMap,this.envMap=y.envMap,this.envMapRotation.copy(y.envMapRotation),this.envMapIntensity=y.envMapIntensity,this.wireframe=y.wireframe,this.wireframeLinewidth=y.wireframeLinewidth,this.wireframeLinecap=y.wireframeLinecap,this.wireframeLinejoin=y.wireframeLinejoin,this.flatShading=y.flatShading,this.fog=y.fog,this}}class m1 extends $f{constructor(y){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new Yr(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return Bu(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(E){this.ior=(1+.4*E)/(1-.4*E)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new ia(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new ia(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new ia(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._dispersion=0,this._iridescence=0,this._sheen=0,this._transmission=0,this.setValues(y)}get anisotropy(){return this._anisotropy}set anisotropy(y){this._anisotropy>0!=y>0&&this.version++,this._anisotropy=y}get clearcoat(){return this._clearcoat}set clearcoat(y){this._clearcoat>0!=y>0&&this.version++,this._clearcoat=y}get iridescence(){return this._iridescence}set iridescence(y){this._iridescence>0!=y>0&&this.version++,this._iridescence=y}get dispersion(){return this._dispersion}set dispersion(y){this._dispersion>0!=y>0&&this.version++,this._dispersion=y}get sheen(){return this._sheen}set sheen(y){this._sheen>0!=y>0&&this.version++,this._sheen=y}get transmission(){return this._transmission}set transmission(y){this._transmission>0!=y>0&&this.version++,this._transmission=y}copy(y){return super.copy(y),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=y.anisotropy,this.anisotropyRotation=y.anisotropyRotation,this.anisotropyMap=y.anisotropyMap,this.clearcoat=y.clearcoat,this.clearcoatMap=y.clearcoatMap,this.clearcoatRoughness=y.clearcoatRoughness,this.clearcoatRoughnessMap=y.clearcoatRoughnessMap,this.clearcoatNormalMap=y.clearcoatNormalMap,this.clearcoatNormalScale.copy(y.clearcoatNormalScale),this.dispersion=y.dispersion,this.ior=y.ior,this.iridescence=y.iridescence,this.iridescenceMap=y.iridescenceMap,this.iridescenceIOR=y.iridescenceIOR,this.iridescenceThicknessRange=[...y.iridescenceThicknessRange],this.iridescenceThicknessMap=y.iridescenceThicknessMap,this.sheen=y.sheen,this.sheenColor.copy(y.sheenColor),this.sheenColorMap=y.sheenColorMap,this.sheenRoughness=y.sheenRoughness,this.sheenRoughnessMap=y.sheenRoughnessMap,this.transmission=y.transmission,this.transmissionMap=y.transmissionMap,this.thickness=y.thickness,this.thicknessMap=y.thicknessMap,this.attenuationDistance=y.attenuationDistance,this.attenuationColor.copy(y.attenuationColor),this.specularIntensity=y.specularIntensity,this.specularIntensityMap=y.specularIntensityMap,this.specularColor.copy(y.specularColor),this.specularColorMap=y.specularColorMap,this}}class Xw extends Zd{constructor(y){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new ia(16777215),this.specular=new ia(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ia(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=h0,this.normalScale=new Yr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Pp,this.combine=Fu,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(y)}copy(y){return super.copy(y),this.color.copy(y.color),this.specular.copy(y.specular),this.shininess=y.shininess,this.map=y.map,this.lightMap=y.lightMap,this.lightMapIntensity=y.lightMapIntensity,this.aoMap=y.aoMap,this.aoMapIntensity=y.aoMapIntensity,this.emissive.copy(y.emissive),this.emissiveMap=y.emissiveMap,this.emissiveIntensity=y.emissiveIntensity,this.bumpMap=y.bumpMap,this.bumpScale=y.bumpScale,this.normalMap=y.normalMap,this.normalMapType=y.normalMapType,this.normalScale.copy(y.normalScale),this.displacementMap=y.displacementMap,this.displacementScale=y.displacementScale,this.displacementBias=y.displacementBias,this.specularMap=y.specularMap,this.alphaMap=y.alphaMap,this.envMap=y.envMap,this.envMapRotation.copy(y.envMapRotation),this.combine=y.combine,this.reflectivity=y.reflectivity,this.refractionRatio=y.refractionRatio,this.wireframe=y.wireframe,this.wireframeLinewidth=y.wireframeLinewidth,this.wireframeLinecap=y.wireframeLinecap,this.wireframeLinejoin=y.wireframeLinejoin,this.flatShading=y.flatShading,this.fog=y.fog,this}}class vE extends Zd{constructor(y){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new ia(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ia(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=h0,this.normalScale=new Yr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(y)}copy(y){return super.copy(y),this.color.copy(y.color),this.map=y.map,this.gradientMap=y.gradientMap,this.lightMap=y.lightMap,this.lightMapIntensity=y.lightMapIntensity,this.aoMap=y.aoMap,this.aoMapIntensity=y.aoMapIntensity,this.emissive.copy(y.emissive),this.emissiveMap=y.emissiveMap,this.emissiveIntensity=y.emissiveIntensity,this.bumpMap=y.bumpMap,this.bumpScale=y.bumpScale,this.normalMap=y.normalMap,this.normalMapType=y.normalMapType,this.normalScale.copy(y.normalScale),this.displacementMap=y.displacementMap,this.displacementScale=y.displacementScale,this.displacementBias=y.displacementBias,this.alphaMap=y.alphaMap,this.wireframe=y.wireframe,this.wireframeLinewidth=y.wireframeLinewidth,this.wireframeLinecap=y.wireframeLinecap,this.wireframeLinejoin=y.wireframeLinejoin,this.fog=y.fog,this}}class a extends Zd{constructor(y){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=h0,this.normalScale=new Yr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(y)}copy(y){return super.copy(y),this.bumpMap=y.bumpMap,this.bumpScale=y.bumpScale,this.normalMap=y.normalMap,this.normalMapType=y.normalMapType,this.normalScale.copy(y.normalScale),this.displacementMap=y.displacementMap,this.displacementScale=y.displacementScale,this.displacementBias=y.displacementBias,this.wireframe=y.wireframe,this.wireframeLinewidth=y.wireframeLinewidth,this.flatShading=y.flatShading,this}}class x extends Zd{constructor(y){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new ia(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ia(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=h0,this.normalScale=new Yr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Pp,this.combine=Fu,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(y)}copy(y){return super.copy(y),this.color.copy(y.color),this.map=y.map,this.lightMap=y.lightMap,this.lightMapIntensity=y.lightMapIntensity,this.aoMap=y.aoMap,this.aoMapIntensity=y.aoMapIntensity,this.emissive.copy(y.emissive),this.emissiveMap=y.emissiveMap,this.emissiveIntensity=y.emissiveIntensity,this.bumpMap=y.bumpMap,this.bumpScale=y.bumpScale,this.normalMap=y.normalMap,this.normalMapType=y.normalMapType,this.normalScale.copy(y.normalScale),this.displacementMap=y.displacementMap,this.displacementScale=y.displacementScale,this.displacementBias=y.displacementBias,this.specularMap=y.specularMap,this.alphaMap=y.alphaMap,this.envMap=y.envMap,this.envMapRotation.copy(y.envMapRotation),this.combine=y.combine,this.reflectivity=y.reflectivity,this.refractionRatio=y.refractionRatio,this.wireframe=y.wireframe,this.wireframeLinewidth=y.wireframeLinewidth,this.wireframeLinecap=y.wireframeLinecap,this.wireframeLinejoin=y.wireframeLinejoin,this.flatShading=y.flatShading,this.fog=y.fog,this}}class b extends Zd{constructor(y){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=r5,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(y)}copy(y){return super.copy(y),this.depthPacking=y.depthPacking,this.map=y.map,this.alphaMap=y.alphaMap,this.displacementMap=y.displacementMap,this.displacementScale=y.displacementScale,this.displacementBias=y.displacementBias,this.wireframe=y.wireframe,this.wireframeLinewidth=y.wireframeLinewidth,this}}class te extends Zd{constructor(y){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(y)}copy(y){return super.copy(y),this.map=y.map,this.alphaMap=y.alphaMap,this.displacementMap=y.displacementMap,this.displacementScale=y.displacementScale,this.displacementBias=y.displacementBias,this}}class re extends Zd{constructor(y){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new ia(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=h0,this.normalScale=new Yr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(y)}copy(y){return super.copy(y),this.defines={MATCAP:""},this.color.copy(y.color),this.matcap=y.matcap,this.map=y.map,this.bumpMap=y.bumpMap,this.bumpScale=y.bumpScale,this.normalMap=y.normalMap,this.normalMapType=y.normalMapType,this.normalScale.copy(y.normalScale),this.displacementMap=y.displacementMap,this.displacementScale=y.displacementScale,this.displacementBias=y.displacementBias,this.alphaMap=y.alphaMap,this.flatShading=y.flatShading,this.fog=y.fog,this}}class oe extends Tp{constructor(y){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(y)}copy(y){return super.copy(y),this.scale=y.scale,this.dashSize=y.dashSize,this.gapSize=y.gapSize,this}}function le(ee,y){return!ee||ee.constructor===y?ee:typeof y.BYTES_PER_ELEMENT=="number"?new y(ee):Array.prototype.slice.call(ee)}function fe(ee){return ArrayBuffer.isView(ee)&&!(ee instanceof DataView)}function ge(ee){function y(ne,ie){return ee[ne]-ee[ie]}const E=ee.length,z=new Array(E);for(let ne=0;ne!==E;++ne)z[ne]=ne;return z.sort(y),z}function ye(ee,y,E){const z=ee.length,ne=new ee.constructor(z);for(let ie=0,se=0;se!==z;++ie){const ae=E[ie]*y;for(let he=0;he!==y;++he)ne[se++]=ee[ae+he]}return ne}function we(ee,y,E,z){let ne=1,ie=ee[0];for(;ie!==void 0&&ie[z]===void 0;)ie=ee[ne++];if(ie===void 0)return;let se=ie[z];if(se!==void 0)if(Array.isArray(se))do se=ie[z],se!==void 0&&(y.push(ie.time),E.push(...se)),ie=ee[ne++];while(ie!==void 0);else if(se.toArray!==void 0)do se=ie[z],se!==void 0&&(y.push(ie.time),se.toArray(E,E.length)),ie=ee[ne++];while(ie!==void 0);else do se=ie[z],se!==void 0&&(y.push(ie.time),E.push(se)),ie=ee[ne++];while(ie!==void 0)}function be(ee,y,E,z,ne=30){const ie=ee.clone();ie.name=y;const se=[];for(let he=0;he<ie.tracks.length;++he){const pe=ie.tracks[he],ve=pe.getValueSize(),xe=[],Se=[];for(let Be=0;Be<pe.times.length;++Be){const De=pe.times[Be]*ne;if(!(De<E||De>=z)){xe.push(pe.times[Be]);for(let Re=0;Re<ve;++Re)Se.push(pe.values[Be*ve+Re])}}xe.length!==0&&(pe.times=le(xe,pe.times.constructor),pe.values=le(Se,pe.values.constructor),se.push(pe))}ie.tracks=se;let ae=1/0;for(let he=0;he<ie.tracks.length;++he)ae>ie.tracks[he].times[0]&&(ae=ie.tracks[he].times[0]);for(let he=0;he<ie.tracks.length;++he)ie.tracks[he].shift(-1*ae);return ie.resetDuration(),ie}function ke(ee,y=0,E=ee,z=30){z<=0&&(z=30);const ne=E.tracks.length,ie=y/z;for(let se=0;se<ne;++se){const ae=E.tracks[se],he=ae.ValueTypeName;if(he==="bool"||he==="string")continue;const pe=ee.tracks.find(function(Le){return Le.name===ae.name&&Le.ValueTypeName===he});if(pe===void 0)continue;let ve=0;const xe=ae.getValueSize();ae.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(ve=xe/3);let Se=0;const Be=pe.getValueSize();pe.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(Se=Be/3);const De=ae.times.length-1;let Re;if(ie<=ae.times[0]){const Le=ve,Je=xe-ve;Re=ae.values.slice(Le,Je)}else if(ie>=ae.times[De]){const Le=De*xe+ve,Je=Le+xe-ve;Re=ae.values.slice(Le,Je)}else{const Le=ae.createInterpolant(),Je=ve,$e=xe-ve;Le.evaluate(ie),Re=Le.resultBuffer.slice(Je,$e)}he==="quaternion"&&new Bf().fromArray(Re).normalize().conjugate().toArray(Re);const Oe=pe.times.length;for(let Le=0;Le<Oe;++Le){const Je=Le*Be+Se;if(he==="quaternion")Bf.multiplyQuaternionsFlat(pe.values,Je,Re,0,pe.values,Je);else{const $e=Be-Se*2;for(let _e=0;_e<$e;++_e)pe.values[Je+_e]-=Re[_e]}}}return ee.blendMode=Nm,ee}class Ue{static convertArray(y,E){return le(y,E)}static isTypedArray(y){return fe(y)}static getKeyframeOrder(y){return ge(y)}static sortedArray(y,E,z){return ye(y,E,z)}static flattenJSON(y,E,z,ne){we(y,E,z,ne)}static subclip(y,E,z,ne,ie=30){return be(y,E,z,ne,ie)}static makeClipAdditive(y,E=0,z=y,ne=30){return ke(y,E,z,ne)}}class Ve{constructor(y,E,z,ne){this.parameterPositions=y,this._cachedIndex=0,this.resultBuffer=ne!==void 0?ne:new E.constructor(z),this.sampleValues=E,this.valueSize=z,this.settings=null,this.DefaultSettings_={}}evaluate(y){const E=this.parameterPositions;let z=this._cachedIndex,ne=E[z],ie=E[z-1];e:{t:{let se;n:{i:if(!(y<ne)){for(let ae=z+2;;){if(ne===void 0){if(y<ie)break i;return z=E.length,this._cachedIndex=z,this.copySampleValue_(z-1)}if(z===ae)break;if(ie=ne,ne=E[++z],y<ne)break t}se=E.length;break n}if(!(y>=ie)){const ae=E[1];y<ae&&(z=2,ie=ae);for(let he=z-2;;){if(ie===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(z===he)break;if(ne=ie,ie=E[--z-1],y>=ie)break t}se=z,z=0;break n}break e}for(;z<se;){const ae=z+se>>>1;y<E[ae]?se=ae:z=ae+1}if(ne=E[z],ie=E[z-1],ie===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(ne===void 0)return z=E.length,this._cachedIndex=z,this.copySampleValue_(z-1)}this._cachedIndex=z,this.intervalChanged_(z,ie,ne)}return this.interpolate_(z,ie,y,ne)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(y){const E=this.resultBuffer,z=this.sampleValues,ne=this.valueSize,ie=y*ne;for(let se=0;se!==ne;++se)E[se]=z[ie+se];return E}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}}class Ke extends Ve{constructor(y,E,z,ne){super(y,E,z,ne),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:Sx,endingEnd:Sx}}intervalChanged_(y,E,z){const ne=this.parameterPositions;let ie=y-2,se=y+1,ae=ne[ie],he=ne[se];if(ae===void 0)switch(this.getSettings_().endingStart){case iy:ie=y,ae=2*E-z;break;case RS:ie=ne.length-2,ae=E+ne[ie]-ne[ie+1];break;default:ie=y,ae=z}if(he===void 0)switch(this.getSettings_().endingEnd){case iy:se=y,he=2*z-E;break;case RS:se=1,he=z+ne[1]-ne[0];break;default:se=y-1,he=E}const pe=(z-E)*.5,ve=this.valueSize;this._weightPrev=pe/(E-ae),this._weightNext=pe/(he-z),this._offsetPrev=ie*ve,this._offsetNext=se*ve}interpolate_(y,E,z,ne){const ie=this.resultBuffer,se=this.sampleValues,ae=this.valueSize,he=y*ae,pe=he-ae,ve=this._offsetPrev,xe=this._offsetNext,Se=this._weightPrev,Be=this._weightNext,De=(z-E)/(ne-E),Re=De*De,Oe=Re*De,Le=-Se*Oe+2*Se*Re-Se*De,Je=(1+Se)*Oe+(-1.5-2*Se)*Re+(-.5+Se)*De+1,$e=(-1-Be)*Oe+(1.5+Be)*Re+.5*De,_e=Be*Oe-Be*Re;for(let st=0;st!==ae;++st)ie[st]=Le*se[ve+st]+Je*se[pe+st]+$e*se[he+st]+_e*se[xe+st];return ie}}class Pt extends Ve{constructor(y,E,z,ne){super(y,E,z,ne)}interpolate_(y,E,z,ne){const ie=this.resultBuffer,se=this.sampleValues,ae=this.valueSize,he=y*ae,pe=he-ae,ve=(z-E)/(ne-E),xe=1-ve;for(let Se=0;Se!==ae;++Se)ie[Se]=se[pe+Se]*xe+se[he+Se]*ve;return ie}}class ft extends Ve{constructor(y,E,z,ne){super(y,E,z,ne)}interpolate_(y){return this.copySampleValue_(y-1)}}class Nt{constructor(y,E,z,ne){if(y===void 0)throw new Error("THREE.KeyframeTrack: track name is undefined");if(E===void 0||E.length===0)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+y);this.name=y,this.times=le(E,this.TimeBufferType),this.values=le(z,this.ValueBufferType),this.setInterpolation(ne||this.DefaultInterpolation)}static toJSON(y){const E=y.constructor;let z;if(E.toJSON!==this.toJSON)z=E.toJSON(y);else{z={name:y.name,times:le(y.times,Array),values:le(y.values,Array)};const ne=y.getInterpolation();ne!==y.DefaultInterpolation&&(z.interpolation=ne)}return z.type=y.ValueTypeName,z}InterpolantFactoryMethodDiscrete(y){return new ft(this.times,this.values,this.getValueSize(),y)}InterpolantFactoryMethodLinear(y){return new Pt(this.times,this.values,this.getValueSize(),y)}InterpolantFactoryMethodSmooth(y){return new Ke(this.times,this.values,this.getValueSize(),y)}setInterpolation(y){let E;switch(y){case uA:E=this.InterpolantFactoryMethodDiscrete;break;case Pi:E=this.InterpolantFactoryMethodLinear;break;case OS:E=this.InterpolantFactoryMethodSmooth;break}if(E===void 0){const z="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(this.createInterpolant===void 0)if(y!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw new Error(z);return console.warn("THREE.KeyframeTrack:",z),this}return this.createInterpolant=E,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return uA;case this.InterpolantFactoryMethodLinear:return Pi;case this.InterpolantFactoryMethodSmooth:return OS}}getValueSize(){return this.values.length/this.times.length}shift(y){if(y!==0){const E=this.times;for(let z=0,ne=E.length;z!==ne;++z)E[z]+=y}return this}scale(y){if(y!==1){const E=this.times;for(let z=0,ne=E.length;z!==ne;++z)E[z]*=y}return this}trim(y,E){const z=this.times,ne=z.length;let ie=0,se=ne-1;for(;ie!==ne&&z[ie]<y;)++ie;for(;se!==-1&&z[se]>E;)--se;if(++se,ie!==0||se!==ne){ie>=se&&(se=Math.max(se,1),ie=se-1);const ae=this.getValueSize();this.times=z.slice(ie,se),this.values=this.values.slice(ie*ae,se*ae)}return this}validate(){let y=!0;const E=this.getValueSize();E-Math.floor(E)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),y=!1);const z=this.times,ne=this.values,ie=z.length;ie===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),y=!1);let se=null;for(let ae=0;ae!==ie;ae++){const he=z[ae];if(typeof he=="number"&&isNaN(he)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,ae,he),y=!1;break}if(se!==null&&se>he){console.error("THREE.KeyframeTrack: Out of order keys.",this,ae,he,se),y=!1;break}se=he}if(ne!==void 0&&fe(ne))for(let ae=0,he=ne.length;ae!==he;++ae){const pe=ne[ae];if(isNaN(pe)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,ae,pe),y=!1;break}}return y}optimize(){const y=this.times.slice(),E=this.values.slice(),z=this.getValueSize(),ne=this.getInterpolation()===OS,ie=y.length-1;let se=1;for(let ae=1;ae<ie;++ae){let he=!1;const pe=y[ae],ve=y[ae+1];if(pe!==ve&&(ae!==1||pe!==y[0]))if(ne)he=!0;else{const xe=ae*z,Se=xe-z,Be=xe+z;for(let De=0;De!==z;++De){const Re=E[xe+De];if(Re!==E[Se+De]||Re!==E[Be+De]){he=!0;break}}}if(he){if(ae!==se){y[se]=y[ae];const xe=ae*z,Se=se*z;for(let Be=0;Be!==z;++Be)E[Se+Be]=E[xe+Be]}++se}}if(ie>0){y[se]=y[ie];for(let ae=ie*z,he=se*z,pe=0;pe!==z;++pe)E[he+pe]=E[ae+pe];++se}return se!==y.length?(this.times=y.slice(0,se),this.values=E.slice(0,se*z)):(this.times=y,this.values=E),this}clone(){const y=this.times.slice(),E=this.values.slice(),z=this.constructor,ne=new z(this.name,y,E);return ne.createInterpolant=this.createInterpolant,ne}}Nt.prototype.ValueTypeName="",Nt.prototype.TimeBufferType=Float32Array,Nt.prototype.ValueBufferType=Float32Array,Nt.prototype.DefaultInterpolation=Pi;class Lt extends Nt{constructor(y,E,z){super(y,E,z)}}Lt.prototype.ValueTypeName="bool",Lt.prototype.ValueBufferType=Array,Lt.prototype.DefaultInterpolation=uA,Lt.prototype.InterpolantFactoryMethodLinear=void 0,Lt.prototype.InterpolantFactoryMethodSmooth=void 0;class Ut extends Nt{constructor(y,E,z,ne){super(y,E,z,ne)}}Ut.prototype.ValueTypeName="color";class tn extends Nt{constructor(y,E,z,ne){super(y,E,z,ne)}}tn.prototype.ValueTypeName="number";class xn extends Ve{constructor(y,E,z,ne){super(y,E,z,ne)}interpolate_(y,E,z,ne){const ie=this.resultBuffer,se=this.sampleValues,ae=this.valueSize,he=(z-E)/(ne-E);let pe=y*ae;for(let ve=pe+ae;pe!==ve;pe+=4)Bf.slerpFlat(ie,0,se,pe-ae,se,pe,he);return ie}}class nr extends Nt{constructor(y,E,z,ne){super(y,E,z,ne)}InterpolantFactoryMethodLinear(y){return new xn(this.times,this.values,this.getValueSize(),y)}}nr.prototype.ValueTypeName="quaternion",nr.prototype.InterpolantFactoryMethodSmooth=void 0;class Ir extends Nt{constructor(y,E,z){super(y,E,z)}}Ir.prototype.ValueTypeName="string",Ir.prototype.ValueBufferType=Array,Ir.prototype.DefaultInterpolation=uA,Ir.prototype.InterpolantFactoryMethodLinear=void 0,Ir.prototype.InterpolantFactoryMethodSmooth=void 0;class br extends Nt{constructor(y,E,z,ne){super(y,E,z,ne)}}br.prototype.ValueTypeName="vector";class Di{constructor(y="",E=-1,z=[],ne=zS){this.name=y,this.tracks=z,this.duration=E,this.blendMode=ne,this.uuid=pg(),this.duration<0&&this.resetDuration()}static parse(y){const E=[],z=y.tracks,ne=1/(y.fps||1);for(let se=0,ae=z.length;se!==ae;++se)E.push(os(z[se]).scale(ne));const ie=new this(y.name,y.duration,E,y.blendMode);return ie.uuid=y.uuid,ie}static toJSON(y){const E=[],z=y.tracks,ne={name:y.name,duration:y.duration,tracks:E,uuid:y.uuid,blendMode:y.blendMode};for(let ie=0,se=z.length;ie!==se;++ie)E.push(Nt.toJSON(z[ie]));return ne}static CreateFromMorphTargetSequence(y,E,z,ne){const ie=E.length,se=[];for(let ae=0;ae<ie;ae++){let he=[],pe=[];he.push((ae+ie-1)%ie,ae,(ae+1)%ie),pe.push(0,1,0);const ve=ge(he);he=ye(he,1,ve),pe=ye(pe,1,ve),!ne&&he[0]===0&&(he.push(ie),pe.push(pe[0])),se.push(new tn(".morphTargetInfluences["+E[ae].name+"]",he,pe).scale(1/z))}return new this(y,-1,se)}static findByName(y,E){let z=y;if(!Array.isArray(y)){const ne=y;z=ne.geometry&&ne.geometry.animations||ne.animations}for(let ne=0;ne<z.length;ne++)if(z[ne].name===E)return z[ne];return null}static CreateClipsFromMorphTargetSequences(y,E,z){const ne={},ie=/^([\w-]*?)([\d]+)$/;for(let ae=0,he=y.length;ae<he;ae++){const pe=y[ae],ve=pe.name.match(ie);if(ve&&ve.length>1){const xe=ve[1];let Se=ne[xe];Se||(ne[xe]=Se=[]),Se.push(pe)}}const se=[];for(const ae in ne)se.push(this.CreateFromMorphTargetSequence(ae,ne[ae],E,z));return se}static parseAnimation(y,E){if(console.warn("THREE.AnimationClip: parseAnimation() is deprecated and will be removed with r185"),!y)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const z=function(xe,Se,Be,De,Re){if(Be.length!==0){const Oe=[],Le=[];we(Be,Oe,Le,De),Oe.length!==0&&Re.push(new xe(Se,Oe,Le))}},ne=[],ie=y.name||"default",se=y.fps||30,ae=y.blendMode;let he=y.length||-1;const pe=y.hierarchy||[];for(let xe=0;xe<pe.length;xe++){const Se=pe[xe].keys;if(!(!Se||Se.length===0))if(Se[0].morphTargets){const Be={};let De;for(De=0;De<Se.length;De++)if(Se[De].morphTargets)for(let Re=0;Re<Se[De].morphTargets.length;Re++)Be[Se[De].morphTargets[Re]]=-1;for(const Re in Be){const Oe=[],Le=[];for(let Je=0;Je!==Se[De].morphTargets.length;++Je){const $e=Se[De];Oe.push($e.time),Le.push($e.morphTarget===Re?1:0)}ne.push(new tn(".morphTargetInfluence["+Re+"]",Oe,Le))}he=Be.length*se}else{const Be=".bones["+E[xe].name+"]";z(br,Be+".position",Se,"pos",ne),z(nr,Be+".quaternion",Se,"rot",ne),z(br,Be+".scale",Se,"scl",ne)}}return ne.length===0?null:new this(ie,he,ne,ae)}resetDuration(){const y=this.tracks;let E=0;for(let z=0,ne=y.length;z!==ne;++z){const ie=this.tracks[z];E=Math.max(E,ie.times[ie.times.length-1])}return this.duration=E,this}trim(){for(let y=0;y<this.tracks.length;y++)this.tracks[y].trim(0,this.duration);return this}validate(){let y=!0;for(let E=0;E<this.tracks.length;E++)y=y&&this.tracks[E].validate();return y}optimize(){for(let y=0;y<this.tracks.length;y++)this.tracks[y].optimize();return this}clone(){const y=[];for(let E=0;E<this.tracks.length;E++)y.push(this.tracks[E].clone());return new this.constructor(this.name,this.duration,y,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function ii(ee){switch(ee.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return tn;case"vector":case"vector2":case"vector3":case"vector4":return br;case"color":return Ut;case"quaternion":return nr;case"bool":case"boolean":return Lt;case"string":return Ir}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+ee)}function os(ee){if(ee.type===void 0)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");const y=ii(ee.type);if(ee.times===void 0){const E=[],z=[];we(ee.keys,E,z,"value"),ee.times=E,ee.values=z}return y.parse!==void 0?y.parse(ee):new y(ee.name,ee.times,ee.values,ee.interpolation)}const Oo={enabled:!1,files:{},add:function(ee,y){this.enabled!==!1&&(this.files[ee]=y)},get:function(ee){if(this.enabled!==!1)return this.files[ee]},remove:function(ee){delete this.files[ee]},clear:function(){this.files={}}};class Ha{constructor(y,E,z){const ne=this;let ie=!1,se=0,ae=0,he;const pe=[];this.onStart=void 0,this.onLoad=y,this.onProgress=E,this.onError=z,this.itemStart=function(ve){ae++,ie===!1&&ne.onStart!==void 0&&ne.onStart(ve,se,ae),ie=!0},this.itemEnd=function(ve){se++,ne.onProgress!==void 0&&ne.onProgress(ve,se,ae),se===ae&&(ie=!1,ne.onLoad!==void 0&&ne.onLoad())},this.itemError=function(ve){ne.onError!==void 0&&ne.onError(ve)},this.resolveURL=function(ve){return he?he(ve):ve},this.setURLModifier=function(ve){return he=ve,this},this.addHandler=function(ve,xe){return pe.push(ve,xe),this},this.removeHandler=function(ve){const xe=pe.indexOf(ve);return xe!==-1&&pe.splice(xe,2),this},this.getHandler=function(ve){for(let xe=0,Se=pe.length;xe<Se;xe+=2){const Be=pe[xe],De=pe[xe+1];if(Be.global&&(Be.lastIndex=0),Be.test(ve))return De}return null}}}const Ql=new Ha;class kc{constructor(y){this.manager=y!==void 0?y:Ql,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(y,E){const z=this;return new Promise(function(ne,ie){z.load(y,ne,E,ie)})}parse(){}setCrossOrigin(y){return this.crossOrigin=y,this}setWithCredentials(y){return this.withCredentials=y,this}setPath(y){return this.path=y,this}setResourcePath(y){return this.resourcePath=y,this}setRequestHeader(y){return this.requestHeader=y,this}}kc.DEFAULT_MATERIAL_NAME="__DEFAULT";const uc={};class md extends null{constructor(y,E){super(y),this.response=E}}class cc extends null{constructor(y){super(y),this.mimeType="",this.responseType=""}load(y,E,z,ne){y===void 0&&(y=""),this.path!==void 0&&(y=this.path+y),y=this.manager.resolveURL(y);const ie=Oo.get(y);if(ie!==void 0)return this.manager.itemStart(y),setTimeout(()=>{E&&E(ie),this.manager.itemEnd(y)},0),ie;if(uc[y]!==void 0){uc[y].push({onLoad:E,onProgress:z,onError:ne});return}uc[y]=[],uc[y].push({onLoad:E,onProgress:z,onError:ne});const se=new Request(y,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),ae=this.mimeType,he=this.responseType;fetch(se).then(pe=>{if(pe.status===200||pe.status===0){if(pe.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||pe.body===void 0||pe.body.getReader===void 0)return pe;const ve=uc[y],xe=pe.body.getReader(),Se=pe.headers.get("X-File-Size")||pe.headers.get("Content-Length"),Be=Se?parseInt(Se):0,De=Be!==0;let Re=0;const Oe=new ReadableStream({start(Le){Je();function Je(){xe.read().then(({done:$e,value:_e})=>{if($e)Le.close();else{Re+=_e.byteLength;const st=new ProgressEvent("progress",{lengthComputable:De,loaded:Re,total:Be});for(let ct=0,ut=ve.length;ct<ut;ct++){const ht=ve[ct];ht.onProgress&&ht.onProgress(st)}Le.enqueue(_e),Je()}},$e=>{Le.error($e)})}}});return new Response(Oe)}else throw new md(`fetch for "${pe.url}" responded with ${pe.status}: ${pe.statusText}`,pe)}).then(pe=>{switch(he){case"arraybuffer":return pe.arrayBuffer();case"blob":return pe.blob();case"document":return pe.text().then(ve=>new DOMParser().parseFromString(ve,ae));case"json":return pe.json();default:if(ae==="")return pe.text();{const xe=/charset="?([^;"\s]*)"?/i.exec(ae),Se=xe&&xe[1]?xe[1].toLowerCase():void 0,Be=new TextDecoder(Se);return pe.arrayBuffer().then(De=>Be.decode(De))}}}).then(pe=>{Oo.add(y,pe);const ve=uc[y];delete uc[y];for(let xe=0,Se=ve.length;xe<Se;xe++){const Be=ve[xe];Be.onLoad&&Be.onLoad(pe)}}).catch(pe=>{const ve=uc[y];if(ve===void 0)throw this.manager.itemError(y),pe;delete uc[y];for(let xe=0,Se=ve.length;xe<Se;xe++){const Be=ve[xe];Be.onError&&Be.onError(pe)}this.manager.itemError(y)}).finally(()=>{this.manager.itemEnd(y)}),this.manager.itemStart(y)}setResponseType(y){return this.responseType=y,this}setMimeType(y){return this.mimeType=y,this}}class Sy extends null{constructor(y){super(y)}load(y,E,z,ne){const ie=this,se=new cc(this.manager);se.setPath(this.path),se.setRequestHeader(this.requestHeader),se.setWithCredentials(this.withCredentials),se.load(y,function(ae){try{E(ie.parse(JSON.parse(ae)))}catch(he){ne?ne(he):console.error(he),ie.manager.itemError(y)}},z,ne)}parse(y){const E=[];for(let z=0;z<y.length;z++){const ne=Di.parse(y[z]);E.push(ne)}return E}}class Sc extends null{constructor(y){super(y)}load(y,E,z,ne){const ie=this,se=[],ae=new k5,he=new cc(this.manager);he.setPath(this.path),he.setResponseType("arraybuffer"),he.setRequestHeader(this.requestHeader),he.setWithCredentials(ie.withCredentials);let pe=0;function ve(xe){he.load(y[xe],function(Se){const Be=ie.parse(Se,!0);se[xe]={width:Be.width,height:Be.height,format:Be.format,mipmaps:Be.mipmaps},pe+=1,pe===6&&(Be.mipmapCount===1&&(ae.minFilter=qu),ae.image=se,ae.format=Be.format,ae.needsUpdate=!0,E&&E(ae))},z,ne)}if(Array.isArray(y))for(let xe=0,Se=y.length;xe<Se;++xe)ve(xe);else he.load(y,function(xe){const Se=ie.parse(xe,!0);if(Se.isCubemap){const Be=Se.mipmaps.length/Se.mipmapCount;for(let De=0;De<Be;De++){se[De]={mipmaps:[]};for(let Re=0;Re<Se.mipmapCount;Re++)se[De].mipmaps.push(Se.mipmaps[De*Se.mipmapCount+Re]),se[De].format=Se.format,se[De].width=Se.width,se[De].height=Se.height}ae.image=se}else ae.image.width=Se.width,ae.image.height=Se.height,ae.mipmaps=Se.mipmaps;Se.mipmapCount===1&&(ae.minFilter=qu),ae.format=Se.format,ae.needsUpdate=!0,E&&E(ae)},z,ne);return ae}}class Dp extends kc{constructor(y){super(y)}load(y,E,z,ne){this.path!==void 0&&(y=this.path+y),y=this.manager.resolveURL(y);const ie=this,se=Oo.get(y);if(se!==void 0)return ie.manager.itemStart(y),setTimeout(function(){E&&E(se),ie.manager.itemEnd(y)},0),se;const ae=WS("img");function he(){ve(),Oo.add(y,this),E&&E(this),ie.manager.itemEnd(y)}function pe(xe){ve(),ne&&ne(xe),ie.manager.itemError(y),ie.manager.itemEnd(y)}function ve(){ae.removeEventListener("load",he,!1),ae.removeEventListener("error",pe,!1)}return ae.addEventListener("load",he,!1),ae.addEventListener("error",pe,!1),y.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(ae.crossOrigin=this.crossOrigin),ie.manager.itemStart(y),ae.src=y,ae}}class Fd extends null{constructor(y){super(y)}load(y,E,z,ne){const ie=new Gr;ie.colorSpace=Wf;const se=new Dp(this.manager);se.setCrossOrigin(this.crossOrigin),se.setPath(this.path);let ae=0;function he(pe){se.load(y[pe],function(ve){ie.images[pe]=ve,ae++,ae===6&&(ie.needsUpdate=!0,E&&E(ie))},void 0,ne)}for(let pe=0;pe<y.length;++pe)he(pe);return ie}}class Py extends null{constructor(y){super(y)}load(y,E,z,ne){const ie=this,se=new A0,ae=new cc(this.manager);return ae.setResponseType("arraybuffer"),ae.setRequestHeader(this.requestHeader),ae.setPath(this.path),ae.setWithCredentials(ie.withCredentials),ae.load(y,function(he){let pe;try{pe=ie.parse(he)}catch(ve){if(ne!==void 0)ne(ve);else{console.error(ve);return}}pe.image!==void 0?se.image=pe.image:pe.data!==void 0&&(se.image.width=pe.width,se.image.height=pe.height,se.image.data=pe.data),se.wrapS=pe.wrapS!==void 0?pe.wrapS:pp,se.wrapT=pe.wrapT!==void 0?pe.wrapT:pp,se.magFilter=pe.magFilter!==void 0?pe.magFilter:qu,se.minFilter=pe.minFilter!==void 0?pe.minFilter:qu,se.anisotropy=pe.anisotropy!==void 0?pe.anisotropy:1,pe.colorSpace!==void 0&&(se.colorSpace=pe.colorSpace),pe.flipY!==void 0&&(se.flipY=pe.flipY),pe.format!==void 0&&(se.format=pe.format),pe.type!==void 0&&(se.type=pe.type),pe.mipmaps!==void 0&&(se.mipmaps=pe.mipmaps,se.minFilter=mp),pe.mipmapCount===1&&(se.minFilter=qu),pe.generateMipmaps!==void 0&&(se.generateMipmaps=pe.generateMipmaps),se.needsUpdate=!0,E&&E(se,pe)},z,ne),se}}class ep extends kc{constructor(y){super(y)}load(y,E,z,ne){const ie=new nh,se=new Dp(this.manager);return se.setCrossOrigin(this.crossOrigin),se.setPath(this.path),se.load(y,function(ae){ie.image=ae,ie.needsUpdate=!0,E!==void 0&&E(ie)},z,ne),ie}}class Ld extends ih{constructor(y,E=1){super(),this.isLight=!0,this.type="Light",this.color=new ia(y),this.intensity=E}dispose(){}copy(y,E){return super.copy(y,E),this.color.copy(y.color),this.intensity=y.intensity,this}toJSON(y){const E=super.toJSON(y);return E.object.color=this.color.getHex(),E.object.intensity=this.intensity,this.groundColor!==void 0&&(E.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(E.object.distance=this.distance),this.angle!==void 0&&(E.object.angle=this.angle),this.decay!==void 0&&(E.object.decay=this.decay),this.penumbra!==void 0&&(E.object.penumbra=this.penumbra),this.shadow!==void 0&&(E.object.shadow=this.shadow.toJSON()),this.target!==void 0&&(E.object.target=this.target.uuid),E}}class df extends Ld{constructor(y,E,z){super(y,z),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(ih.DEFAULT_UP),this.updateMatrix(),this.groundColor=new ia(E)}copy(y,E){return super.copy(y,E),this.groundColor.copy(y.groundColor),this}}const Id=new Xa,cv=new yn,Ag=new yn;class NA{constructor(y){this.camera=y,this.intensity=1,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Yr(512,512),this.mapType=yh,this.map=null,this.mapPass=null,this.matrix=new Xa,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new hf,this._frameExtents=new Yr(1,1),this._viewportCount=1,this._viewports=[new Ul(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(y){const E=this.camera,z=this.matrix;cv.setFromMatrixPosition(y.matrixWorld),E.position.copy(cv),Ag.setFromMatrixPosition(y.target.matrixWorld),E.lookAt(Ag),E.updateMatrixWorld(),Id.multiplyMatrices(E.projectionMatrix,E.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Id),z.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),z.multiply(Id)}getViewport(y){return this._viewports[y]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(y){return this.camera=y.camera.clone(),this.intensity=y.intensity,this.bias=y.bias,this.radius=y.radius,this.autoUpdate=y.autoUpdate,this.needsUpdate=y.needsUpdate,this.normalBias=y.normalBias,this.blurSamples=y.blurSamples,this.mapSize.copy(y.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const y={};return this.intensity!==1&&(y.intensity=this.intensity),this.bias!==0&&(y.bias=this.bias),this.normalBias!==0&&(y.normalBias=this.normalBias),this.radius!==1&&(y.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(y.mapSize=this.mapSize.toArray()),y.camera=this.camera.toJSON(!1).object,delete y.camera.matrix,y}}class Ff extends NA{constructor(){super(new Bd(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1,this.aspect=1}updateMatrices(y){const E=this.camera,z=q0*2*y.angle*this.focus,ne=this.mapSize.width/this.mapSize.height*this.aspect,ie=y.distance||E.far;(z!==E.fov||ne!==E.aspect||ie!==E.far)&&(E.fov=z,E.aspect=ne,E.far=ie,E.updateProjectionMatrix()),super.updateMatrices(y)}copy(y){return super.copy(y),this.focus=y.focus,this}}class Lh extends Ld{constructor(y,E,z=0,ne=Math.PI/3,ie=0,se=2){super(y,E),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ih.DEFAULT_UP),this.updateMatrix(),this.target=new ih,this.distance=z,this.angle=ne,this.penumbra=ie,this.decay=se,this.map=null,this.shadow=new Ff}get power(){return this.intensity*Math.PI}set power(y){this.intensity=y/Math.PI}dispose(){this.shadow.dispose()}copy(y,E){return super.copy(y,E),this.distance=y.distance,this.angle=y.angle,this.penumbra=y.penumbra,this.decay=y.decay,this.target=y.target.clone(),this.shadow=y.shadow.clone(),this}}const Ww=new Xa,S0=new yn,xg=new yn;class ff extends NA{constructor(){super(new Bd(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new Yr(4,2),this._viewportCount=6,this._viewports=[new Ul(2,1,1,1),new Ul(0,1,1,1),new Ul(3,1,1,1),new Ul(1,1,1,1),new Ul(3,0,1,1),new Ul(1,0,1,1)],this._cubeDirections=[new yn(1,0,0),new yn(-1,0,0),new yn(0,0,1),new yn(0,0,-1),new yn(0,1,0),new yn(0,-1,0)],this._cubeUps=[new yn(0,1,0),new yn(0,1,0),new yn(0,1,0),new yn(0,1,0),new yn(0,0,1),new yn(0,0,-1)]}updateMatrices(y,E=0){const z=this.camera,ne=this.matrix,ie=y.distance||z.far;ie!==z.far&&(z.far=ie,z.updateProjectionMatrix()),S0.setFromMatrixPosition(y.matrixWorld),z.position.copy(S0),xg.copy(z.position),xg.add(this._cubeDirections[E]),z.up.copy(this._cubeUps[E]),z.lookAt(xg),z.updateMatrixWorld(),ne.makeTranslation(-S0.x,-S0.y,-S0.z),Ww.multiplyMatrices(z.projectionMatrix,z.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Ww)}}class Cy extends Ld{constructor(y,E,z=0,ne=2){super(y,E),this.isPointLight=!0,this.type="PointLight",this.distance=z,this.decay=ne,this.shadow=new ff}get power(){return this.intensity*4*Math.PI}set power(y){this.intensity=y/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(y,E){return super.copy(y,E),this.distance=y.distance,this.decay=y.decay,this.shadow=y.shadow.clone(),this}}class ed extends oP{constructor(y=-1,E=1,z=1,ne=-1,ie=.1,se=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=y,this.right=E,this.top=z,this.bottom=ne,this.near=ie,this.far=se,this.updateProjectionMatrix()}copy(y,E){return super.copy(y,E),this.left=y.left,this.right=y.right,this.top=y.top,this.bottom=y.bottom,this.near=y.near,this.far=y.far,this.zoom=y.zoom,this.view=y.view===null?null:Object.assign({},y.view),this}setViewOffset(y,E,z,ne,ie,se){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=y,this.view.fullHeight=E,this.view.offsetX=z,this.view.offsetY=ne,this.view.width=ie,this.view.height=se,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const y=(this.right-this.left)/(2*this.zoom),E=(this.top-this.bottom)/(2*this.zoom),z=(this.right+this.left)/2,ne=(this.top+this.bottom)/2;let ie=z-y,se=z+y,ae=ne+E,he=ne-E;if(this.view!==null&&this.view.enabled){const pe=(this.right-this.left)/this.view.fullWidth/this.zoom,ve=(this.top-this.bottom)/this.view.fullHeight/this.zoom;ie+=pe*this.view.offsetX,se=ie+pe*this.view.width,ae-=ve*this.view.offsetY,he=ae-ve*this.view.height}this.projectionMatrix.makeOrthographic(ie,se,ae,he,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(y){const E=super.toJSON(y);return E.object.zoom=this.zoom,E.object.left=this.left,E.object.right=this.right,E.object.top=this.top,E.object.bottom=this.bottom,E.object.near=this.near,E.object.far=this.far,this.view!==null&&(E.object.view=Object.assign({},this.view)),E}}class Ey extends NA{constructor(){super(new ed(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class Qw extends Ld{constructor(y,E){super(y,E),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ih.DEFAULT_UP),this.updateMatrix(),this.target=new ih,this.shadow=new Ey}dispose(){this.shadow.dispose()}copy(y){return super.copy(y),this.target=y.target.clone(),this.shadow=y.shadow.clone(),this}}class v1 extends Ld{constructor(y,E){super(y,E),this.isAmbientLight=!0,this.type="AmbientLight"}}class yE extends Ld{constructor(y,E,z=10,ne=10){super(y,E),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=z,this.height=ne}get power(){return this.intensity*this.width*this.height*Math.PI}set power(y){this.intensity=y/(this.width*this.height*Math.PI)}copy(y){return super.copy(y),this.width=y.width,this.height=y.height,this}toJSON(y){const E=super.toJSON(y);return E.object.width=this.width,E.object.height=this.height,E}}class jm{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let y=0;y<9;y++)this.coefficients.push(new yn)}set(y){for(let E=0;E<9;E++)this.coefficients[E].copy(y[E]);return this}zero(){for(let y=0;y<9;y++)this.coefficients[y].set(0,0,0);return this}getAt(y,E){const z=y.x,ne=y.y,ie=y.z,se=this.coefficients;return E.copy(se[0]).multiplyScalar(.282095),E.addScaledVector(se[1],.488603*ne),E.addScaledVector(se[2],.488603*ie),E.addScaledVector(se[3],.488603*z),E.addScaledVector(se[4],1.092548*(z*ne)),E.addScaledVector(se[5],1.092548*(ne*ie)),E.addScaledVector(se[6],.315392*(3*ie*ie-1)),E.addScaledVector(se[7],1.092548*(z*ie)),E.addScaledVector(se[8],.546274*(z*z-ne*ne)),E}getIrradianceAt(y,E){const z=y.x,ne=y.y,ie=y.z,se=this.coefficients;return E.copy(se[0]).multiplyScalar(.886227),E.addScaledVector(se[1],2*.511664*ne),E.addScaledVector(se[2],2*.511664*ie),E.addScaledVector(se[3],2*.511664*z),E.addScaledVector(se[4],2*.429043*z*ne),E.addScaledVector(se[5],2*.429043*ne*ie),E.addScaledVector(se[6],.743125*ie*ie-.247708),E.addScaledVector(se[7],2*.429043*z*ie),E.addScaledVector(se[8],.429043*(z*z-ne*ne)),E}add(y){for(let E=0;E<9;E++)this.coefficients[E].add(y.coefficients[E]);return this}addScaledSH(y,E){for(let z=0;z<9;z++)this.coefficients[z].addScaledVector(y.coefficients[z],E);return this}scale(y){for(let E=0;E<9;E++)this.coefficients[E].multiplyScalar(y);return this}lerp(y,E){for(let z=0;z<9;z++)this.coefficients[z].lerp(y.coefficients[z],E);return this}equals(y){for(let E=0;E<9;E++)if(!this.coefficients[E].equals(y.coefficients[E]))return!1;return!0}copy(y){return this.set(y.coefficients)}clone(){return new this.constructor().copy(this)}fromArray(y,E=0){const z=this.coefficients;for(let ne=0;ne<9;ne++)z[ne].fromArray(y,E+ne*3);return this}toArray(y=[],E=0){const z=this.coefficients;for(let ne=0;ne<9;ne++)z[ne].toArray(y,E+ne*3);return y}static getBasisAt(y,E){const z=y.x,ne=y.y,ie=y.z;E[0]=.282095,E[1]=.488603*ne,E[2]=.488603*ie,E[3]=.488603*z,E[4]=1.092548*z*ne,E[5]=1.092548*ne*ie,E[6]=.315392*(3*ie*ie-1),E[7]=1.092548*z*ie,E[8]=.546274*(z*z-ne*ne)}}class Gm extends Ld{constructor(y=new jm,E=1){super(void 0,E),this.isLightProbe=!0,this.sh=y}copy(y){return super.copy(y),this.sh.copy(y.sh),this}fromJSON(y){return this.intensity=y.intensity,this.sh.fromArray(y.sh),this}toJSON(y){const E=super.toJSON(y);return E.object.sh=this.sh.toArray(),E}}class by extends null{constructor(y){super(y),this.textures={}}load(y,E,z,ne){const ie=this,se=new cc(ie.manager);se.setPath(ie.path),se.setRequestHeader(ie.requestHeader),se.setWithCredentials(ie.withCredentials),se.load(y,function(ae){try{E(ie.parse(JSON.parse(ae)))}catch(he){ne?ne(he):console.error(he),ie.manager.itemError(y)}},z,ne)}parse(y){const E=this.textures;function z(ie){return E[ie]===void 0&&console.warn("THREE.MaterialLoader: Undefined texture",ie),E[ie]}const ne=this.createMaterialFromType(y.type);if(y.uuid!==void 0&&(ne.uuid=y.uuid),y.name!==void 0&&(ne.name=y.name),y.color!==void 0&&ne.color!==void 0&&ne.color.setHex(y.color),y.roughness!==void 0&&(ne.roughness=y.roughness),y.metalness!==void 0&&(ne.metalness=y.metalness),y.sheen!==void 0&&(ne.sheen=y.sheen),y.sheenColor!==void 0&&(ne.sheenColor=new ia().setHex(y.sheenColor)),y.sheenRoughness!==void 0&&(ne.sheenRoughness=y.sheenRoughness),y.emissive!==void 0&&ne.emissive!==void 0&&ne.emissive.setHex(y.emissive),y.specular!==void 0&&ne.specular!==void 0&&ne.specular.setHex(y.specular),y.specularIntensity!==void 0&&(ne.specularIntensity=y.specularIntensity),y.specularColor!==void 0&&ne.specularColor!==void 0&&ne.specularColor.setHex(y.specularColor),y.shininess!==void 0&&(ne.shininess=y.shininess),y.clearcoat!==void 0&&(ne.clearcoat=y.clearcoat),y.clearcoatRoughness!==void 0&&(ne.clearcoatRoughness=y.clearcoatRoughness),y.dispersion!==void 0&&(ne.dispersion=y.dispersion),y.iridescence!==void 0&&(ne.iridescence=y.iridescence),y.iridescenceIOR!==void 0&&(ne.iridescenceIOR=y.iridescenceIOR),y.iridescenceThicknessRange!==void 0&&(ne.iridescenceThicknessRange=y.iridescenceThicknessRange),y.transmission!==void 0&&(ne.transmission=y.transmission),y.thickness!==void 0&&(ne.thickness=y.thickness),y.attenuationDistance!==void 0&&(ne.attenuationDistance=y.attenuationDistance),y.attenuationColor!==void 0&&ne.attenuationColor!==void 0&&ne.attenuationColor.setHex(y.attenuationColor),y.anisotropy!==void 0&&(ne.anisotropy=y.anisotropy),y.anisotropyRotation!==void 0&&(ne.anisotropyRotation=y.anisotropyRotation),y.fog!==void 0&&(ne.fog=y.fog),y.flatShading!==void 0&&(ne.flatShading=y.flatShading),y.blending!==void 0&&(ne.blending=y.blending),y.combine!==void 0&&(ne.combine=y.combine),y.side!==void 0&&(ne.side=y.side),y.shadowSide!==void 0&&(ne.shadowSide=y.shadowSide),y.opacity!==void 0&&(ne.opacity=y.opacity),y.transparent!==void 0&&(ne.transparent=y.transparent),y.alphaTest!==void 0&&(ne.alphaTest=y.alphaTest),y.alphaHash!==void 0&&(ne.alphaHash=y.alphaHash),y.depthFunc!==void 0&&(ne.depthFunc=y.depthFunc),y.depthTest!==void 0&&(ne.depthTest=y.depthTest),y.depthWrite!==void 0&&(ne.depthWrite=y.depthWrite),y.colorWrite!==void 0&&(ne.colorWrite=y.colorWrite),y.blendSrc!==void 0&&(ne.blendSrc=y.blendSrc),y.blendDst!==void 0&&(ne.blendDst=y.blendDst),y.blendEquation!==void 0&&(ne.blendEquation=y.blendEquation),y.blendSrcAlpha!==void 0&&(ne.blendSrcAlpha=y.blendSrcAlpha),y.blendDstAlpha!==void 0&&(ne.blendDstAlpha=y.blendDstAlpha),y.blendEquationAlpha!==void 0&&(ne.blendEquationAlpha=y.blendEquationAlpha),y.blendColor!==void 0&&ne.blendColor!==void 0&&ne.blendColor.setHex(y.blendColor),y.blendAlpha!==void 0&&(ne.blendAlpha=y.blendAlpha),y.stencilWriteMask!==void 0&&(ne.stencilWriteMask=y.stencilWriteMask),y.stencilFunc!==void 0&&(ne.stencilFunc=y.stencilFunc),y.stencilRef!==void 0&&(ne.stencilRef=y.stencilRef),y.stencilFuncMask!==void 0&&(ne.stencilFuncMask=y.stencilFuncMask),y.stencilFail!==void 0&&(ne.stencilFail=y.stencilFail),y.stencilZFail!==void 0&&(ne.stencilZFail=y.stencilZFail),y.stencilZPass!==void 0&&(ne.stencilZPass=y.stencilZPass),y.stencilWrite!==void 0&&(ne.stencilWrite=y.stencilWrite),y.wireframe!==void 0&&(ne.wireframe=y.wireframe),y.wireframeLinewidth!==void 0&&(ne.wireframeLinewidth=y.wireframeLinewidth),y.wireframeLinecap!==void 0&&(ne.wireframeLinecap=y.wireframeLinecap),y.wireframeLinejoin!==void 0&&(ne.wireframeLinejoin=y.wireframeLinejoin),y.rotation!==void 0&&(ne.rotation=y.rotation),y.linewidth!==void 0&&(ne.linewidth=y.linewidth),y.dashSize!==void 0&&(ne.dashSize=y.dashSize),y.gapSize!==void 0&&(ne.gapSize=y.gapSize),y.scale!==void 0&&(ne.scale=y.scale),y.polygonOffset!==void 0&&(ne.polygonOffset=y.polygonOffset),y.polygonOffsetFactor!==void 0&&(ne.polygonOffsetFactor=y.polygonOffsetFactor),y.polygonOffsetUnits!==void 0&&(ne.polygonOffsetUnits=y.polygonOffsetUnits),y.dithering!==void 0&&(ne.dithering=y.dithering),y.alphaToCoverage!==void 0&&(ne.alphaToCoverage=y.alphaToCoverage),y.premultipliedAlpha!==void 0&&(ne.premultipliedAlpha=y.premultipliedAlpha),y.forceSinglePass!==void 0&&(ne.forceSinglePass=y.forceSinglePass),y.visible!==void 0&&(ne.visible=y.visible),y.toneMapped!==void 0&&(ne.toneMapped=y.toneMapped),y.userData!==void 0&&(ne.userData=y.userData),y.vertexColors!==void 0&&(typeof y.vertexColors=="number"?ne.vertexColors=y.vertexColors>0:ne.vertexColors=y.vertexColors),y.uniforms!==void 0)for(const ie in y.uniforms){const se=y.uniforms[ie];switch(ne.uniforms[ie]={},se.type){case"t":ne.uniforms[ie].value=z(se.value);break;case"c":ne.uniforms[ie].value=new ia().setHex(se.value);break;case"v2":ne.uniforms[ie].value=new Yr().fromArray(se.value);break;case"v3":ne.uniforms[ie].value=new yn().fromArray(se.value);break;case"v4":ne.uniforms[ie].value=new Ul().fromArray(se.value);break;case"m3":ne.uniforms[ie].value=new nu().fromArray(se.value);break;case"m4":ne.uniforms[ie].value=new Xa().fromArray(se.value);break;default:ne.uniforms[ie].value=se.value}}if(y.defines!==void 0&&(ne.defines=y.defines),y.vertexShader!==void 0&&(ne.vertexShader=y.vertexShader),y.fragmentShader!==void 0&&(ne.fragmentShader=y.fragmentShader),y.glslVersion!==void 0&&(ne.glslVersion=y.glslVersion),y.extensions!==void 0)for(const ie in y.extensions)ne.extensions[ie]=y.extensions[ie];if(y.lights!==void 0&&(ne.lights=y.lights),y.clipping!==void 0&&(ne.clipping=y.clipping),y.size!==void 0&&(ne.size=y.size),y.sizeAttenuation!==void 0&&(ne.sizeAttenuation=y.sizeAttenuation),y.map!==void 0&&(ne.map=z(y.map)),y.matcap!==void 0&&(ne.matcap=z(y.matcap)),y.alphaMap!==void 0&&(ne.alphaMap=z(y.alphaMap)),y.bumpMap!==void 0&&(ne.bumpMap=z(y.bumpMap)),y.bumpScale!==void 0&&(ne.bumpScale=y.bumpScale),y.normalMap!==void 0&&(ne.normalMap=z(y.normalMap)),y.normalMapType!==void 0&&(ne.normalMapType=y.normalMapType),y.normalScale!==void 0){let ie=y.normalScale;Array.isArray(ie)===!1&&(ie=[ie,ie]),ne.normalScale=new Yr().fromArray(ie)}return y.displacementMap!==void 0&&(ne.displacementMap=z(y.displacementMap)),y.displacementScale!==void 0&&(ne.displacementScale=y.displacementScale),y.displacementBias!==void 0&&(ne.displacementBias=y.displacementBias),y.roughnessMap!==void 0&&(ne.roughnessMap=z(y.roughnessMap)),y.metalnessMap!==void 0&&(ne.metalnessMap=z(y.metalnessMap)),y.emissiveMap!==void 0&&(ne.emissiveMap=z(y.emissiveMap)),y.emissiveIntensity!==void 0&&(ne.emissiveIntensity=y.emissiveIntensity),y.specularMap!==void 0&&(ne.specularMap=z(y.specularMap)),y.specularIntensityMap!==void 0&&(ne.specularIntensityMap=z(y.specularIntensityMap)),y.specularColorMap!==void 0&&(ne.specularColorMap=z(y.specularColorMap)),y.envMap!==void 0&&(ne.envMap=z(y.envMap)),y.envMapRotation!==void 0&&ne.envMapRotation.fromArray(y.envMapRotation),y.envMapIntensity!==void 0&&(ne.envMapIntensity=y.envMapIntensity),y.reflectivity!==void 0&&(ne.reflectivity=y.reflectivity),y.refractionRatio!==void 0&&(ne.refractionRatio=y.refractionRatio),y.lightMap!==void 0&&(ne.lightMap=z(y.lightMap)),y.lightMapIntensity!==void 0&&(ne.lightMapIntensity=y.lightMapIntensity),y.aoMap!==void 0&&(ne.aoMap=z(y.aoMap)),y.aoMapIntensity!==void 0&&(ne.aoMapIntensity=y.aoMapIntensity),y.gradientMap!==void 0&&(ne.gradientMap=z(y.gradientMap)),y.clearcoatMap!==void 0&&(ne.clearcoatMap=z(y.clearcoatMap)),y.clearcoatRoughnessMap!==void 0&&(ne.clearcoatRoughnessMap=z(y.clearcoatRoughnessMap)),y.clearcoatNormalMap!==void 0&&(ne.clearcoatNormalMap=z(y.clearcoatNormalMap)),y.clearcoatNormalScale!==void 0&&(ne.clearcoatNormalScale=new Yr().fromArray(y.clearcoatNormalScale)),y.iridescenceMap!==void 0&&(ne.iridescenceMap=z(y.iridescenceMap)),y.iridescenceThicknessMap!==void 0&&(ne.iridescenceThicknessMap=z(y.iridescenceThicknessMap)),y.transmissionMap!==void 0&&(ne.transmissionMap=z(y.transmissionMap)),y.thicknessMap!==void 0&&(ne.thicknessMap=z(y.thicknessMap)),y.anisotropyMap!==void 0&&(ne.anisotropyMap=z(y.anisotropyMap)),y.sheenColorMap!==void 0&&(ne.sheenColorMap=z(y.sheenColorMap)),y.sheenRoughnessMap!==void 0&&(ne.sheenRoughnessMap=z(y.sheenRoughnessMap)),ne}setTextures(y){return this.textures=y,this}createMaterialFromType(y){return by.createMaterialFromType(y)}static createMaterialFromType(y){const E={ShadowMaterial:bP,SpriteMaterial:v2,RawShaderMaterial:g1,ShaderMaterial:Rm,PointsMaterial:Iw,MeshPhysicalMaterial:m1,MeshStandardMaterial:$f,MeshPhongMaterial:Xw,MeshToonMaterial:vE,MeshNormalMaterial:a,MeshLambertMaterial:x,MeshDepthMaterial:b,MeshDistanceMaterial:te,MeshBasicMaterial:Yd,MeshMatcapMaterial:re,LineDashedMaterial:oe,LineBasicMaterial:Tp,Material:Zd};return new E[y]}}class hv{static extractUrlBase(y){const E=y.lastIndexOf("/");return E===-1?"./":y.slice(0,E+1)}static resolveURL(y,E){return typeof y!="string"||y===""?"":(/^https?:\/\//i.test(E)&&/^\//.test(y)&&(E=E.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(y)||/^data:.*,.*$/i.test(y)||/^blob:.*$/i.test(y)?y:E+y)}}class Zw extends null{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(y){return super.copy(y),this.instanceCount=y.instanceCount,this}toJSON(){const y=super.toJSON();return y.instanceCount=this.instanceCount,y.isInstancedBufferGeometry=!0,y}}class My extends null{constructor(y){super(y)}load(y,E,z,ne){const ie=this,se=new cc(ie.manager);se.setPath(ie.path),se.setRequestHeader(ie.requestHeader),se.setWithCredentials(ie.withCredentials),se.load(y,function(ae){try{E(ie.parse(JSON.parse(ae)))}catch(he){ne?ne(he):console.error(he),ie.manager.itemError(y)}},z,ne)}parse(y){const E={},z={};function ne(Be,De){if(E[De]!==void 0)return E[De];const Oe=Be.interleavedBuffers[De],Le=ie(Be,Oe.buffer),Je=sy(Oe.type,Le),$e=new Zh(Je,Oe.stride);return $e.uuid=Oe.uuid,E[De]=$e,$e}function ie(Be,De){if(z[De]!==void 0)return z[De];const Oe=Be.arrayBuffers[De],Le=new Uint32Array(Oe).buffer;return z[De]=Le,Le}const se=y.isInstancedBufferGeometry?new Zw:new Tu,ae=y.data.index;if(ae!==void 0){const Be=sy(ae.type,ae.array);se.setIndex(new rh(Be,1))}const he=y.data.attributes;for(const Be in he){const De=he[Be];let Re;if(De.isInterleavedBufferAttribute){const Oe=ne(y.data,De.data);Re=new wh(Oe,De.itemSize,De.offset,De.normalized)}else{const Oe=sy(De.type,De.array),Le=De.isInstancedBufferAttribute?vg:rh;Re=new Le(Oe,De.itemSize,De.normalized)}De.name!==void 0&&(Re.name=De.name),De.usage!==void 0&&Re.setUsage(De.usage),se.setAttribute(Be,Re)}const pe=y.data.morphAttributes;if(pe)for(const Be in pe){const De=pe[Be],Re=[];for(let Oe=0,Le=De.length;Oe<Le;Oe++){const Je=De[Oe];let $e;if(Je.isInterleavedBufferAttribute){const _e=ne(y.data,Je.data);$e=new wh(_e,Je.itemSize,Je.offset,Je.normalized)}else{const _e=sy(Je.type,Je.array);$e=new rh(_e,Je.itemSize,Je.normalized)}Je.name!==void 0&&($e.name=Je.name),Re.push($e)}se.morphAttributes[Be]=Re}y.data.morphTargetsRelative&&(se.morphTargetsRelative=!0);const xe=y.data.groups||y.data.drawcalls||y.data.offsets;if(xe!==void 0)for(let Be=0,De=xe.length;Be!==De;++Be){const Re=xe[Be];se.addGroup(Re.start,Re.count,Re.materialIndex)}const Se=y.data.boundingSphere;return Se!==void 0&&(se.boundingSphere=new Yf().fromJSON(Se)),y.name&&(se.name=y.name),y.userData&&(se.userData=y.userData),se}}class P0 extends null{constructor(y){super(y)}load(y,E,z,ne){const ie=this,se=this.path===""?hv.extractUrlBase(y):this.path;this.resourcePath=this.resourcePath||se;const ae=new cc(this.manager);ae.setPath(this.path),ae.setRequestHeader(this.requestHeader),ae.setWithCredentials(this.withCredentials),ae.load(y,function(he){let pe=null;try{pe=JSON.parse(he)}catch(xe){ne!==void 0&&ne(xe),console.error("THREE:ObjectLoader: Can't parse "+y+".",xe.message);return}const ve=pe.metadata;if(ve===void 0||ve.type===void 0||ve.type.toLowerCase()==="geometry"){ne!==void 0&&ne(new Error("THREE.ObjectLoader: Can't load "+y)),console.error("THREE.ObjectLoader: Can't load "+y);return}ie.parse(pe,E)},z,ne)}loadAsync(y,E){return Vl(this,null,function*(){const z=this,ne=this.path===""?hv.extractUrlBase(y):this.path;this.resourcePath=this.resourcePath||ne;const ie=new cc(this.manager);ie.setPath(this.path),ie.setRequestHeader(this.requestHeader),ie.setWithCredentials(this.withCredentials);const se=yield ie.loadAsync(y,E),ae=JSON.parse(se),he=ae.metadata;if(he===void 0||he.type===void 0||he.type.toLowerCase()==="geometry")throw new Error("THREE.ObjectLoader: Can't load "+y);return yield z.parseAsync(ae)})}parse(y,E){const z=this.parseAnimations(y.animations),ne=this.parseShapes(y.shapes),ie=this.parseGeometries(y.geometries,ne),se=this.parseImages(y.images,function(){E!==void 0&&E(pe)}),ae=this.parseTextures(y.textures,se),he=this.parseMaterials(y.materials,ae),pe=this.parseObject(y.object,ie,he,ae,z),ve=this.parseSkeletons(y.skeletons,pe);if(this.bindSkeletons(pe,ve),this.bindLightTargets(pe),E!==void 0){let xe=!1;for(const Se in se)if(se[Se].data instanceof HTMLImageElement){xe=!0;break}xe===!1&&E(pe)}return pe}parseAsync(y){return Vl(this,null,function*(){const E=this.parseAnimations(y.animations),z=this.parseShapes(y.shapes),ne=this.parseGeometries(y.geometries,z),ie=yield this.parseImagesAsync(y.images),se=this.parseTextures(y.textures,ie),ae=this.parseMaterials(y.materials,se),he=this.parseObject(y.object,ne,ae,se,E),pe=this.parseSkeletons(y.skeletons,he);return this.bindSkeletons(he,pe),this.bindLightTargets(he),he})}parseShapes(y){const E={};if(y!==void 0)for(let z=0,ne=y.length;z<ne;z++){const ie=new uv().fromJSON(y[z]);E[ie.uuid]=ie}return E}parseSkeletons(y,E){const z={},ne={};if(E.traverse(function(ie){ie.isBone&&(ne[ie.uuid]=ie)}),y!==void 0)for(let ie=0,se=y.length;ie<se;ie++){const ae=new Eu().fromJSON(y[ie],ne);z[ae.uuid]=ae}return z}parseGeometries(y,E){const z={};if(y!==void 0){const ne=new My;for(let ie=0,se=y.length;ie<se;ie++){let ae;const he=y[ie];switch(he.type){case"BufferGeometry":case"InstancedBufferGeometry":ae=ne.parse(he);break;default:he.type in mE?ae=mE[he.type].fromJSON(he,E):console.warn(`THREE.ObjectLoader: Unsupported geometry type "${he.type}"`)}ae.uuid=he.uuid,he.name!==void 0&&(ae.name=he.name),he.userData!==void 0&&(ae.userData=he.userData),z[he.uuid]=ae}}return z}parseMaterials(y,E){const z={},ne={};if(y!==void 0){const ie=new by;ie.setTextures(E);for(let se=0,ae=y.length;se<ae;se++){const he=y[se];z[he.uuid]===void 0&&(z[he.uuid]=ie.parse(he)),ne[he.uuid]=z[he.uuid]}}return ne}parseAnimations(y){const E={};if(y!==void 0)for(let z=0;z<y.length;z++){const ne=y[z],ie=Di.parse(ne);E[ie.uuid]=ie}return E}parseImages(y,E){const z=this,ne={};let ie;function se(he){return z.manager.itemStart(he),ie.load(he,function(){z.manager.itemEnd(he)},void 0,function(){z.manager.itemError(he),z.manager.itemEnd(he)})}function ae(he){if(typeof he=="string"){const pe=he,ve=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(pe)?pe:z.resourcePath+pe;return se(ve)}else return he.data?{data:sy(he.type,he.data),width:he.width,height:he.height}:null}if(y!==void 0&&y.length>0){const he=new Ha(E);ie=new Dp(he),ie.setCrossOrigin(this.crossOrigin);for(let pe=0,ve=y.length;pe<ve;pe++){const xe=y[pe],Se=xe.url;if(Array.isArray(Se)){const Be=[];for(let De=0,Re=Se.length;De<Re;De++){const Oe=Se[De],Le=ae(Oe);Le!==null&&(Le instanceof HTMLImageElement?Be.push(Le):Be.push(new A0(Le.data,Le.width,Le.height)))}ne[xe.uuid]=new pA(Be)}else{const Be=ae(xe.url);ne[xe.uuid]=new pA(Be)}}}return ne}parseImagesAsync(y){return Vl(this,null,function*(){const E=this,z={};let ne;function ie(se){return Vl(this,null,function*(){if(typeof se=="string"){const ae=se,he=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(ae)?ae:E.resourcePath+ae;return yield ne.loadAsync(he)}else return se.data?{data:sy(se.type,se.data),width:se.width,height:se.height}:null})}if(y!==void 0&&y.length>0){ne=new Dp(this.manager),ne.setCrossOrigin(this.crossOrigin);for(let se=0,ae=y.length;se<ae;se++){const he=y[se],pe=he.url;if(Array.isArray(pe)){const ve=[];for(let xe=0,Se=pe.length;xe<Se;xe++){const Be=pe[xe],De=yield ie(Be);De!==null&&(De instanceof HTMLImageElement?ve.push(De):ve.push(new A0(De.data,De.width,De.height)))}z[he.uuid]=new pA(ve)}else{const ve=yield ie(he.url);z[he.uuid]=new pA(ve)}}}return z})}parseTextures(y,E){function z(ie,se){return typeof ie=="number"?ie:(console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",ie),se[ie])}const ne={};if(y!==void 0)for(let ie=0,se=y.length;ie<se;ie++){const ae=y[ie];ae.image===void 0&&console.warn('THREE.ObjectLoader: No "image" specified for',ae.uuid),E[ae.image]===void 0&&console.warn("THREE.ObjectLoader: Undefined image",ae.image);const he=E[ae.image],pe=he.data;let ve;Array.isArray(pe)?(ve=new Gr,pe.length===6&&(ve.needsUpdate=!0)):(pe&&pe.data?ve=new A0:ve=new nh,pe&&(ve.needsUpdate=!0)),ve.source=he,ve.uuid=ae.uuid,ae.name!==void 0&&(ve.name=ae.name),ae.mapping!==void 0&&(ve.mapping=z(ae.mapping,dv)),ae.channel!==void 0&&(ve.channel=ae.channel),ae.offset!==void 0&&ve.offset.fromArray(ae.offset),ae.repeat!==void 0&&ve.repeat.fromArray(ae.repeat),ae.center!==void 0&&ve.center.fromArray(ae.center),ae.rotation!==void 0&&(ve.rotation=ae.rotation),ae.wrap!==void 0&&(ve.wrapS=z(ae.wrap[0],Jd),ve.wrapT=z(ae.wrap[1],Jd)),ae.format!==void 0&&(ve.format=ae.format),ae.internalFormat!==void 0&&(ve.internalFormat=ae.internalFormat),ae.type!==void 0&&(ve.type=ae.type),ae.colorSpace!==void 0&&(ve.colorSpace=ae.colorSpace),ae.minFilter!==void 0&&(ve.minFilter=z(ae.minFilter,Qg)),ae.magFilter!==void 0&&(ve.magFilter=z(ae.magFilter,Qg)),ae.anisotropy!==void 0&&(ve.anisotropy=ae.anisotropy),ae.flipY!==void 0&&(ve.flipY=ae.flipY),ae.generateMipmaps!==void 0&&(ve.generateMipmaps=ae.generateMipmaps),ae.premultiplyAlpha!==void 0&&(ve.premultiplyAlpha=ae.premultiplyAlpha),ae.unpackAlignment!==void 0&&(ve.unpackAlignment=ae.unpackAlignment),ae.compareFunction!==void 0&&(ve.compareFunction=ae.compareFunction),ae.userData!==void 0&&(ve.userData=ae.userData),ne[ae.uuid]=ve}return ne}parseObject(y,E,z,ne,ie){let se;function ae(Se){return E[Se]===void 0&&console.warn("THREE.ObjectLoader: Undefined geometry",Se),E[Se]}function he(Se){if(Se!==void 0){if(Array.isArray(Se)){const Be=[];for(let De=0,Re=Se.length;De<Re;De++){const Oe=Se[De];z[Oe]===void 0&&console.warn("THREE.ObjectLoader: Undefined material",Oe),Be.push(z[Oe])}return Be}return z[Se]===void 0&&console.warn("THREE.ObjectLoader: Undefined material",Se),z[Se]}}function pe(Se){return ne[Se]===void 0&&console.warn("THREE.ObjectLoader: Undefined texture",Se),ne[Se]}let ve,xe;switch(y.type){case"Scene":se=new Pw,y.background!==void 0&&(Number.isInteger(y.background)?se.background=new ia(y.background):se.background=pe(y.background)),y.environment!==void 0&&(se.environment=pe(y.environment)),y.fog!==void 0&&(y.fog.type==="Fog"?se.fog=new y0(y.fog.color,y.fog.near,y.fog.far):y.fog.type==="FogExp2"&&(se.fog=new Sw(y.fog.color,y.fog.density)),y.fog.name!==""&&(se.fog.name=y.fog.name)),y.backgroundBlurriness!==void 0&&(se.backgroundBlurriness=y.backgroundBlurriness),y.backgroundIntensity!==void 0&&(se.backgroundIntensity=y.backgroundIntensity),y.backgroundRotation!==void 0&&se.backgroundRotation.fromArray(y.backgroundRotation),y.environmentIntensity!==void 0&&(se.environmentIntensity=y.environmentIntensity),y.environmentRotation!==void 0&&se.environmentRotation.fromArray(y.environmentRotation);break;case"PerspectiveCamera":se=new Bd(y.fov,y.aspect,y.near,y.far),y.focus!==void 0&&(se.focus=y.focus),y.zoom!==void 0&&(se.zoom=y.zoom),y.filmGauge!==void 0&&(se.filmGauge=y.filmGauge),y.filmOffset!==void 0&&(se.filmOffset=y.filmOffset),y.view!==void 0&&(se.view=Object.assign({},y.view));break;case"OrthographicCamera":se=new ed(y.left,y.right,y.top,y.bottom,y.near,y.far),y.zoom!==void 0&&(se.zoom=y.zoom),y.view!==void 0&&(se.view=Object.assign({},y.view));break;case"AmbientLight":se=new v1(y.color,y.intensity);break;case"DirectionalLight":se=new Qw(y.color,y.intensity),se.target=y.target||"";break;case"PointLight":se=new Cy(y.color,y.intensity,y.distance,y.decay);break;case"RectAreaLight":se=new yE(y.color,y.intensity,y.width,y.height);break;case"SpotLight":se=new Lh(y.color,y.intensity,y.distance,y.angle,y.penumbra,y.decay),se.target=y.target||"";break;case"HemisphereLight":se=new df(y.color,y.groundColor,y.intensity);break;case"LightProbe":se=new Gm().fromJSON(y);break;case"SkinnedMesh":ve=ae(y.geometry),xe=he(y.material),se=new D5(ve,xe),y.bindMode!==void 0&&(se.bindMode=y.bindMode),y.bindMatrix!==void 0&&se.bindMatrix.fromArray(y.bindMatrix),y.skeleton!==void 0&&(se.skeleton=y.skeleton);break;case"Mesh":ve=ae(y.geometry),xe=he(y.material),se=new Bc(ve,xe);break;case"InstancedMesh":ve=ae(y.geometry),xe=he(y.material);const Se=y.count,Be=y.instanceMatrix,De=y.instanceColor;se=new w2(ve,xe,Se),se.instanceMatrix=new vg(new Float32Array(Be.array),16),De!==void 0&&(se.instanceColor=new vg(new Float32Array(De.array),De.itemSize));break;case"BatchedMesh":ve=ae(y.geometry),xe=he(y.material),se=new u3(y.maxInstanceCount,y.maxVertexCount,y.maxIndexCount,xe),se.geometry=ve,se.perObjectFrustumCulled=y.perObjectFrustumCulled,se.sortObjects=y.sortObjects,se._drawRanges=y.drawRanges,se._reservedRanges=y.reservedRanges,se._geometryInfo=y.geometryInfo.map(Re=>{let Oe=null,Le=null;return Re.boundingBox!==void 0&&(Oe=new Zf().fromJSON(Re.boundingBox)),Re.boundingSphere!==void 0&&(Le=new Yf().fromJSON(Re.boundingSphere)),tx(Hd({},Re),{boundingBox:Oe,boundingSphere:Le})}),se._instanceInfo=y.instanceInfo,se._availableInstanceIds=y._availableInstanceIds,se._availableGeometryIds=y._availableGeometryIds,se._nextIndexStart=y.nextIndexStart,se._nextVertexStart=y.nextVertexStart,se._geometryCount=y.geometryCount,se._maxInstanceCount=y.maxInstanceCount,se._maxVertexCount=y.maxVertexCount,se._maxIndexCount=y.maxIndexCount,se._geometryInitialized=y.geometryInitialized,se._matricesTexture=pe(y.matricesTexture.uuid),se._indirectTexture=pe(y.indirectTexture.uuid),y.colorsTexture!==void 0&&(se._colorsTexture=pe(y.colorsTexture.uuid)),y.boundingSphere!==void 0&&(se.boundingSphere=new Yf().fromJSON(y.boundingSphere)),y.boundingBox!==void 0&&(se.boundingBox=new Zf().fromJSON(y.boundingBox));break;case"LOD":se=new s3;break;case"Line":se=new MA(ae(y.geometry),he(y.material));break;case"LineLoop":se=new L5(ae(y.geometry),he(y.material));break;case"LineSegments":se=new _f(ae(y.geometry),he(y.material));break;case"PointCloud":case"Points":se=new c3(ae(y.geometry),he(y.material));break;case"Sprite":se=new B5(he(y.material));break;case"Group":se=new PA;break;case"Bone":se=new ZC;break;default:se=new ih}if(se.uuid=y.uuid,y.name!==void 0&&(se.name=y.name),y.matrix!==void 0?(se.matrix.fromArray(y.matrix),y.matrixAutoUpdate!==void 0&&(se.matrixAutoUpdate=y.matrixAutoUpdate),se.matrixAutoUpdate&&se.matrix.decompose(se.position,se.quaternion,se.scale)):(y.position!==void 0&&se.position.fromArray(y.position),y.rotation!==void 0&&se.rotation.fromArray(y.rotation),y.quaternion!==void 0&&se.quaternion.fromArray(y.quaternion),y.scale!==void 0&&se.scale.fromArray(y.scale)),y.up!==void 0&&se.up.fromArray(y.up),y.castShadow!==void 0&&(se.castShadow=y.castShadow),y.receiveShadow!==void 0&&(se.receiveShadow=y.receiveShadow),y.shadow&&(y.shadow.intensity!==void 0&&(se.shadow.intensity=y.shadow.intensity),y.shadow.bias!==void 0&&(se.shadow.bias=y.shadow.bias),y.shadow.normalBias!==void 0&&(se.shadow.normalBias=y.shadow.normalBias),y.shadow.radius!==void 0&&(se.shadow.radius=y.shadow.radius),y.shadow.mapSize!==void 0&&se.shadow.mapSize.fromArray(y.shadow.mapSize),y.shadow.camera!==void 0&&(se.shadow.camera=this.parseObject(y.shadow.camera))),y.visible!==void 0&&(se.visible=y.visible),y.frustumCulled!==void 0&&(se.frustumCulled=y.frustumCulled),y.renderOrder!==void 0&&(se.renderOrder=y.renderOrder),y.userData!==void 0&&(se.userData=y.userData),y.layers!==void 0&&(se.layers.mask=y.layers),y.children!==void 0){const Se=y.children;for(let Be=0;Be<Se.length;Be++)se.add(this.parseObject(Se[Be],E,z,ne,ie))}if(y.animations!==void 0){const Se=y.animations;for(let Be=0;Be<Se.length;Be++){const De=Se[Be];se.animations.push(ie[De])}}if(y.type==="LOD"){y.autoUpdate!==void 0&&(se.autoUpdate=y.autoUpdate);const Se=y.levels;for(let Be=0;Be<Se.length;Be++){const De=Se[Be],Re=se.getObjectByProperty("uuid",De.object);Re!==void 0&&se.addLevel(Re,De.distance,De.hysteresis)}}return se}bindSkeletons(y,E){Object.keys(E).length!==0&&y.traverse(function(z){if(z.isSkinnedMesh===!0&&z.skeleton!==void 0){const ne=E[z.skeleton];ne===void 0?console.warn("THREE.ObjectLoader: No skeleton found with UUID:",z.skeleton):z.bind(ne,z.bindMatrix)}})}bindLightTargets(y){y.traverse(function(E){if(E.isDirectionalLight||E.isSpotLight){const z=E.target,ne=y.getObjectByProperty("uuid",z);ne!==void 0?E.target=ne:E.target=new ih}})}}const dv={UVMapping:Xh,CubeReflectionMapping:ud,CubeRefractionMapping:Xf,EquirectangularReflectionMapping:nA,EquirectangularRefractionMapping:cd,CubeUVReflectionMapping:Q0},Jd={RepeatWrapping:fp,ClampToEdgeWrapping:pp,MirroredRepeatWrapping:um},Qg={NearestFilter:Ic,NearestMipmapNearestFilter:Bm,NearestMipmapLinearFilter:gp,LinearFilter:qu,LinearMipmapNearestFilter:Wh,LinearMipmapLinearFilter:mp},Yw=new WeakMap;class fv extends null{constructor(y){super(y),this.isImageBitmapLoader=!0,typeof createImageBitmap=="undefined"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch=="undefined"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(y){return this.options=y,this}load(y,E,z,ne){y===void 0&&(y=""),this.path!==void 0&&(y=this.path+y),y=this.manager.resolveURL(y);const ie=this,se=Oo.get(y);if(se!==void 0){if(ie.manager.itemStart(y),se.then){se.then(pe=>{if(Yw.has(se)===!0)ne&&ne(Yw.get(se)),ie.manager.itemError(y),ie.manager.itemEnd(y);else return E&&E(pe),ie.manager.itemEnd(y),pe});return}return setTimeout(function(){E&&E(se),ie.manager.itemEnd(y)},0),se}const ae={};ae.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",ae.headers=this.requestHeader;const he=fetch(y,ae).then(function(pe){return pe.blob()}).then(function(pe){return createImageBitmap(pe,Object.assign(ie.options,{colorSpaceConversion:"none"}))}).then(function(pe){return Oo.add(y,pe),E&&E(pe),ie.manager.itemEnd(y),pe}).catch(function(pe){ne&&ne(pe),Yw.set(he,pe),Oo.remove(y),ie.manager.itemError(y),ie.manager.itemEnd(y)});Oo.add(y,he),ie.manager.itemStart(y)}}let By;class wg{static getContext(){return By===void 0&&(By=new(window.AudioContext||window.webkitAudioContext)),By}static setContext(y){By=y}}class y1 extends null{constructor(y){super(y)}load(y,E,z,ne){const ie=this,se=new cc(this.manager);se.setResponseType("arraybuffer"),se.setPath(this.path),se.setRequestHeader(this.requestHeader),se.setWithCredentials(this.withCredentials),se.load(y,function(he){try{const pe=he.slice(0);wg.getContext().decodeAudioData(pe,function(xe){E(xe)}).catch(ae)}catch(pe){ae(pe)}},z,ne);function ae(he){ne?ne(he):console.error(he),ie.manager.itemError(y)}}}const Zg=new Xa,FA=new Xa,Xm=new Xa;class Yg{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new Bd,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Bd,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(y){const E=this._cache;if(E.focus!==y.focus||E.fov!==y.fov||E.aspect!==y.aspect*this.aspect||E.near!==y.near||E.far!==y.far||E.zoom!==y.zoom||E.eyeSep!==this.eyeSep){E.focus=y.focus,E.fov=y.fov,E.aspect=y.aspect*this.aspect,E.near=y.near,E.far=y.far,E.zoom=y.zoom,E.eyeSep=this.eyeSep,Xm.copy(y.projectionMatrix);const ne=E.eyeSep/2,ie=ne*E.near/E.focus,se=E.near*Math.tan(J0*E.fov*.5)/E.zoom;let ae,he;FA.elements[12]=-ne,Zg.elements[12]=ne,ae=-se*E.aspect+ie,he=se*E.aspect+ie,Xm.elements[0]=2*E.near/(he-ae),Xm.elements[8]=(he+ae)/(he-ae),this.cameraL.projectionMatrix.copy(Xm),ae=-se*E.aspect-ie,he=se*E.aspect-ie,Xm.elements[0]=2*E.near/(he-ae),Xm.elements[8]=(he+ae)/(he-ae),this.cameraR.projectionMatrix.copy(Xm)}this.cameraL.matrixWorld.copy(y.matrixWorld).multiply(FA),this.cameraR.matrixWorld.copy(y.matrixWorld).multiply(Zg)}}class sh extends Bd{constructor(y=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=y}}class A1{constructor(y=!0){this.autoStart=y,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=vd(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let y=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const E=vd();y=(E-this.oldTime)/1e3,this.oldTime=E,this.elapsedTime+=y}return y}}function vd(){return performance.now()}const ju=new yn,td=new Bf,C0=new yn,eg=new yn,Kg=new yn;class Q5 extends null{constructor(){super(),this.type="AudioListener",this.context=wg.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new A1}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(y){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=y,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(y){return this.gain.gain.setTargetAtTime(y,this.context.currentTime,.01),this}updateMatrixWorld(y){super.updateMatrixWorld(y);const E=this.context.listener;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(ju,td,C0),eg.set(0,0,-1).applyQuaternion(td),Kg.set(0,1,0).applyQuaternion(td),E.positionX){const z=this.context.currentTime+this.timeDelta;E.positionX.linearRampToValueAtTime(ju.x,z),E.positionY.linearRampToValueAtTime(ju.y,z),E.positionZ.linearRampToValueAtTime(ju.z,z),E.forwardX.linearRampToValueAtTime(eg.x,z),E.forwardY.linearRampToValueAtTime(eg.y,z),E.forwardZ.linearRampToValueAtTime(eg.z,z),E.upX.linearRampToValueAtTime(Kg.x,z),E.upY.linearRampToValueAtTime(Kg.y,z),E.upZ.linearRampToValueAtTime(Kg.z,z)}else E.setPosition(ju.x,ju.y,ju.z),E.setOrientation(eg.x,eg.y,eg.z,Kg.x,Kg.y,Kg.z)}}class k2 extends null{constructor(y){super(),this.type="Audio",this.listener=y,this.context=y.context,this.gain=this.context.createGain(),this.gain.connect(y.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(y){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=y,this.connect(),this}setMediaElementSource(y){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(y),this.connect(),this}setMediaStreamSource(y){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(y),this.connect(),this}setBuffer(y){return this.buffer=y,this.sourceType="buffer",this.autoplay&&this.play(),this}play(y=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+y;const E=this.context.createBufferSource();return E.buffer=this.buffer,E.loop=this.loop,E.loopStart=this.loopStart,E.loopEnd=this.loopEnd,E.onended=this.onEnded.bind(this),E.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=E,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(y=0){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(this.context.currentTime+y),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let y=1,E=this.filters.length;y<E;y++)this.filters[y-1].connect(this.filters[y]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this._connected!==!1){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let y=1,E=this.filters.length;y<E;y++)this.filters[y-1].disconnect(this.filters[y]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}}getFilters(){return this.filters}setFilters(y){return y||(y=[]),this._connected===!0?(this.disconnect(),this.filters=y.slice(),this.connect()):this.filters=y.slice(),this}setDetune(y){return this.detune=y,this.isPlaying===!0&&this.source.detune!==void 0&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(y){return this.setFilters(y?[y]:[])}setPlaybackRate(y){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.playbackRate=y,this.isPlaying===!0&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1,this._progress=0}getLoop(){return this.hasPlaybackControl===!1?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop}setLoop(y){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.loop=y,this.isPlaying===!0&&(this.source.loop=this.loop),this}setLoopStart(y){return this.loopStart=y,this}setLoopEnd(y){return this.loopEnd=y,this}getVolume(){return this.gain.gain.value}setVolume(y){return this.gain.gain.setTargetAtTime(y,this.context.currentTime,.01),this}copy(y,E){return super.copy(y,E),y.sourceType!=="buffer"?(console.warn("THREE.Audio: Audio source type cannot be copied."),this):(this.autoplay=y.autoplay,this.buffer=y.buffer,this.detune=y.detune,this.loop=y.loop,this.loopStart=y.loopStart,this.loopEnd=y.loopEnd,this.offset=y.offset,this.duration=y.duration,this.playbackRate=y.playbackRate,this.hasPlaybackControl=y.hasPlaybackControl,this.sourceType=y.sourceType,this.filters=y.filters.slice(),this)}clone(y){return new this.constructor(this.listener).copy(this,y)}}const Wm=new yn,Ty=new Bf,x1=new yn,Ih=new yn;class pv extends null{constructor(y){super(y),this.panner=this.context.createPanner(),this.panner.panningModel="HRTF",this.panner.connect(this.gain)}connect(){return super.connect(),this.panner.connect(this.gain),this}disconnect(){return super.disconnect(),this.panner.disconnect(this.gain),this}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(y){return this.panner.refDistance=y,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(y){return this.panner.rolloffFactor=y,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(y){return this.panner.distanceModel=y,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(y){return this.panner.maxDistance=y,this}setDirectionalCone(y,E,z){return this.panner.coneInnerAngle=y,this.panner.coneOuterAngle=E,this.panner.coneOuterGain=z,this}updateMatrixWorld(y){if(super.updateMatrixWorld(y),this.hasPlaybackControl===!0&&this.isPlaying===!1)return;this.matrixWorld.decompose(Wm,Ty,x1),Ih.set(0,0,1).applyQuaternion(Ty);const E=this.panner;if(E.positionX){const z=this.context.currentTime+this.listener.timeDelta;E.positionX.linearRampToValueAtTime(Wm.x,z),E.positionY.linearRampToValueAtTime(Wm.y,z),E.positionZ.linearRampToValueAtTime(Wm.z,z),E.orientationX.linearRampToValueAtTime(Ih.x,z),E.orientationY.linearRampToValueAtTime(Ih.y,z),E.orientationZ.linearRampToValueAtTime(Ih.z,z)}else E.setPosition(Wm.x,Wm.y,Wm.z),E.setOrientation(Ih.x,Ih.y,Ih.z)}}class Am{constructor(y,E=2048){this.analyser=y.context.createAnalyser(),this.analyser.fftSize=E,this.data=new Uint8Array(this.analyser.frequencyBinCount),y.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let y=0;const E=this.getFrequencyData();for(let z=0;z<E.length;z++)y+=E[z];return y/E.length}}class Np{constructor(y,E,z){this.binding=y,this.valueSize=z;let ne,ie,se;switch(E){case"quaternion":ne=this._slerp,ie=this._slerpAdditive,se=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(z*6),this._workIndex=5;break;case"string":case"bool":ne=this._select,ie=this._select,se=this._setAdditiveIdentityOther,this.buffer=new Array(z*5);break;default:ne=this._lerp,ie=this._lerpAdditive,se=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(z*5)}this._mixBufferRegion=ne,this._mixBufferRegionAdditive=ie,this._setIdentity=se,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(y,E){const z=this.buffer,ne=this.valueSize,ie=y*ne+ne;let se=this.cumulativeWeight;if(se===0){for(let ae=0;ae!==ne;++ae)z[ie+ae]=z[ae];se=E}else{se+=E;const ae=E/se;this._mixBufferRegion(z,ie,0,ae,ne)}this.cumulativeWeight=se}accumulateAdditive(y){const E=this.buffer,z=this.valueSize,ne=z*this._addIndex;this.cumulativeWeightAdditive===0&&this._setIdentity(),this._mixBufferRegionAdditive(E,ne,0,y,z),this.cumulativeWeightAdditive+=y}apply(y){const E=this.valueSize,z=this.buffer,ne=y*E+E,ie=this.cumulativeWeight,se=this.cumulativeWeightAdditive,ae=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,ie<1){const he=E*this._origIndex;this._mixBufferRegion(z,ne,he,1-ie,E)}se>0&&this._mixBufferRegionAdditive(z,ne,this._addIndex*E,1,E);for(let he=E,pe=E+E;he!==pe;++he)if(z[he]!==z[he+E]){ae.setValue(z,ne);break}}saveOriginalState(){const y=this.binding,E=this.buffer,z=this.valueSize,ne=z*this._origIndex;y.getValue(E,ne);for(let ie=z,se=ne;ie!==se;++ie)E[ie]=E[ne+ie%z];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const y=this.valueSize*3;this.binding.setValue(this.buffer,y)}_setAdditiveIdentityNumeric(){const y=this._addIndex*this.valueSize,E=y+this.valueSize;for(let z=y;z<E;z++)this.buffer[z]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const y=this._origIndex*this.valueSize,E=this._addIndex*this.valueSize;for(let z=0;z<this.valueSize;z++)this.buffer[E+z]=this.buffer[y+z]}_select(y,E,z,ne,ie){if(ne>=.5)for(let se=0;se!==ie;++se)y[E+se]=y[z+se]}_slerp(y,E,z,ne){Bf.slerpFlat(y,E,y,E,y,z,ne)}_slerpAdditive(y,E,z,ne,ie){const se=this._workIndex*ie;Bf.multiplyQuaternionsFlat(y,se,y,E,y,z),Bf.slerpFlat(y,E,y,E,y,se,ne)}_lerp(y,E,z,ne,ie){const se=1-ne;for(let ae=0;ae!==ie;++ae){const he=E+ae;y[he]=y[he]*se+y[z+ae]*ne}}_lerpAdditive(y,E,z,ne,ie){for(let se=0;se!==ie;++se){const ae=E+se;y[ae]=y[ae]+y[z+se]*ne}}}const E0="\\[\\]\\.:\\/",Kw=new RegExp("["+E0+"]","g"),b0="[^"+E0+"]",AE="[^"+E0.replace("\\.","")+"]",Jw=/((?:WC+[\/:])*)/.source.replace("WC",b0),nc=/(WCOD+)?/.source.replace("WCOD",AE),Sg=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",b0),tg=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",b0),xE=new RegExp("^"+Jw+nc+Sg+tg+"$"),Lf=["material","materials","bones","map"];class gv{constructor(y,E,z){const ne=z||Su.parseTrackName(E);this._targetGroup=y,this._bindings=y.subscribe_(E,ne)}getValue(y,E){this.bind();const z=this._targetGroup.nCachedObjects_,ne=this._bindings[z];ne!==void 0&&ne.getValue(y,E)}setValue(y,E){const z=this._bindings;for(let ne=this._targetGroup.nCachedObjects_,ie=z.length;ne!==ie;++ne)z[ne].setValue(y,E)}bind(){const y=this._bindings;for(let E=this._targetGroup.nCachedObjects_,z=y.length;E!==z;++E)y[E].bind()}unbind(){const y=this._bindings;for(let E=this._targetGroup.nCachedObjects_,z=y.length;E!==z;++E)y[E].unbind()}}class Su{constructor(y,E,z){this.path=E,this.parsedPath=z||Su.parseTrackName(E),this.node=Su.findNode(y,this.parsedPath.nodeName),this.rootNode=y,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(y,E,z){return y&&y.isAnimationObjectGroup?new Su.Composite(y,E,z):new Su(y,E,z)}static sanitizeNodeName(y){return y.replace(/\s/g,"_").replace(Kw,"")}static parseTrackName(y){const E=xE.exec(y);if(E===null)throw new Error("PropertyBinding: Cannot parse trackName: "+y);const z={nodeName:E[2],objectName:E[3],objectIndex:E[4],propertyName:E[5],propertyIndex:E[6]},ne=z.nodeName&&z.nodeName.lastIndexOf(".");if(ne!==void 0&&ne!==-1){const ie=z.nodeName.substring(ne+1);Lf.indexOf(ie)!==-1&&(z.nodeName=z.nodeName.substring(0,ne),z.objectName=ie)}if(z.propertyName===null||z.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+y);return z}static findNode(y,E){if(E===void 0||E===""||E==="."||E===-1||E===y.name||E===y.uuid)return y;if(y.skeleton){const z=y.skeleton.getBoneByName(E);if(z!==void 0)return z}if(y.children){const z=function(ie){for(let se=0;se<ie.length;se++){const ae=ie[se];if(ae.name===E||ae.uuid===E)return ae;const he=z(ae.children);if(he)return he}return null},ne=z(y.children);if(ne)return ne}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(y,E){y[E]=this.targetObject[this.propertyName]}_getValue_array(y,E){const z=this.resolvedProperty;for(let ne=0,ie=z.length;ne!==ie;++ne)y[E++]=z[ne]}_getValue_arrayElement(y,E){y[E]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(y,E){this.resolvedProperty.toArray(y,E)}_setValue_direct(y,E){this.targetObject[this.propertyName]=y[E]}_setValue_direct_setNeedsUpdate(y,E){this.targetObject[this.propertyName]=y[E],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(y,E){this.targetObject[this.propertyName]=y[E],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(y,E){const z=this.resolvedProperty;for(let ne=0,ie=z.length;ne!==ie;++ne)z[ne]=y[E++]}_setValue_array_setNeedsUpdate(y,E){const z=this.resolvedProperty;for(let ne=0,ie=z.length;ne!==ie;++ne)z[ne]=y[E++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(y,E){const z=this.resolvedProperty;for(let ne=0,ie=z.length;ne!==ie;++ne)z[ne]=y[E++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(y,E){this.resolvedProperty[this.propertyIndex]=y[E]}_setValue_arrayElement_setNeedsUpdate(y,E){this.resolvedProperty[this.propertyIndex]=y[E],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(y,E){this.resolvedProperty[this.propertyIndex]=y[E],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(y,E){this.resolvedProperty.fromArray(y,E)}_setValue_fromArray_setNeedsUpdate(y,E){this.resolvedProperty.fromArray(y,E),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(y,E){this.resolvedProperty.fromArray(y,E),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(y,E){this.bind(),this.getValue(y,E)}_setValue_unbound(y,E){this.bind(),this.setValue(y,E)}bind(){let y=this.node;const E=this.parsedPath,z=E.objectName,ne=E.propertyName;let ie=E.propertyIndex;if(y||(y=Su.findNode(this.rootNode,E.nodeName),this.node=y),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!y){console.warn("THREE.PropertyBinding: No target node found for track: "+this.path+".");return}if(z){let pe=E.objectIndex;switch(z){case"materials":if(!y.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!y.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}y=y.material.materials;break;case"bones":if(!y.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}y=y.skeleton.bones;for(let ve=0;ve<y.length;ve++)if(y[ve].name===pe){pe=ve;break}break;case"map":if("map"in y){y=y.map;break}if(!y.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!y.material.map){console.error("THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.",this);return}y=y.material.map;break;default:if(y[z]===void 0){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}y=y[z]}if(pe!==void 0){if(y[pe]===void 0){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,y);return}y=y[pe]}}const se=y[ne];if(se===void 0){const pe=E.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+pe+"."+ne+" but it wasn't found.",y);return}let ae=this.Versioning.None;this.targetObject=y,y.isMaterial===!0?ae=this.Versioning.NeedsUpdate:y.isObject3D===!0&&(ae=this.Versioning.MatrixWorldNeedsUpdate);let he=this.BindingType.Direct;if(ie!==void 0){if(ne==="morphTargetInfluences"){if(!y.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(!y.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}y.morphTargetDictionary[ie]!==void 0&&(ie=y.morphTargetDictionary[ie])}he=this.BindingType.ArrayElement,this.resolvedProperty=se,this.propertyIndex=ie}else se.fromArray!==void 0&&se.toArray!==void 0?(he=this.BindingType.HasFromToArray,this.resolvedProperty=se):Array.isArray(se)?(he=this.BindingType.EntireArray,this.resolvedProperty=se):this.propertyName=ne;this.getValue=this.GetterByBindingType[he],this.setValue=this.SetterByBindingTypeAndVersioning[he][ae]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}Su.Composite=gv,Su.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Su.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},Su.prototype.GetterByBindingType=[Su.prototype._getValue_direct,Su.prototype._getValue_array,Su.prototype._getValue_arrayElement,Su.prototype._getValue_toArray],Su.prototype.SetterByBindingTypeAndVersioning=[[Su.prototype._setValue_direct,Su.prototype._setValue_direct_setNeedsUpdate,Su.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Su.prototype._setValue_array,Su.prototype._setValue_array_setNeedsUpdate,Su.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Su.prototype._setValue_arrayElement,Su.prototype._setValue_arrayElement_setNeedsUpdate,Su.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Su.prototype._setValue_fromArray,Su.prototype._setValue_fromArray_setNeedsUpdate,Su.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class MP{constructor(){this.isAnimationObjectGroup=!0,this.uuid=pg(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;const y={};this._indicesByUUID=y;for(let z=0,ne=arguments.length;z!==ne;++z)y[arguments[z].uuid]=z;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};const E=this;this.stats={objects:{get total(){return E._objects.length},get inUse(){return this.total-E.nCachedObjects_}},get bindingsPerObject(){return E._bindings.length}}}add(){const y=this._objects,E=this._indicesByUUID,z=this._paths,ne=this._parsedPaths,ie=this._bindings,se=ie.length;let ae,he=y.length,pe=this.nCachedObjects_;for(let ve=0,xe=arguments.length;ve!==xe;++ve){const Se=arguments[ve],Be=Se.uuid;let De=E[Be];if(De===void 0){De=he++,E[Be]=De,y.push(Se);for(let Re=0,Oe=se;Re!==Oe;++Re)ie[Re].push(new Su(Se,z[Re],ne[Re]))}else if(De<pe){ae=y[De];const Re=--pe,Oe=y[Re];E[Oe.uuid]=De,y[De]=Oe,E[Be]=Re,y[Re]=Se;for(let Le=0,Je=se;Le!==Je;++Le){const $e=ie[Le],_e=$e[Re];let st=$e[De];$e[De]=_e,st===void 0&&(st=new Su(Se,z[Le],ne[Le])),$e[Re]=st}}else y[De]!==ae&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=pe}remove(){const y=this._objects,E=this._indicesByUUID,z=this._bindings,ne=z.length;let ie=this.nCachedObjects_;for(let se=0,ae=arguments.length;se!==ae;++se){const he=arguments[se],pe=he.uuid,ve=E[pe];if(ve!==void 0&&ve>=ie){const xe=ie++,Se=y[xe];E[Se.uuid]=ve,y[ve]=Se,E[pe]=xe,y[xe]=he;for(let Be=0,De=ne;Be!==De;++Be){const Re=z[Be],Oe=Re[xe],Le=Re[ve];Re[ve]=Oe,Re[xe]=Le}}}this.nCachedObjects_=ie}uncache(){const y=this._objects,E=this._indicesByUUID,z=this._bindings,ne=z.length;let ie=this.nCachedObjects_,se=y.length;for(let ae=0,he=arguments.length;ae!==he;++ae){const pe=arguments[ae],ve=pe.uuid,xe=E[ve];if(xe!==void 0)if(delete E[ve],xe<ie){const Se=--ie,Be=y[Se],De=--se,Re=y[De];E[Be.uuid]=xe,y[xe]=Be,E[Re.uuid]=Se,y[Se]=Re,y.pop();for(let Oe=0,Le=ne;Oe!==Le;++Oe){const Je=z[Oe],$e=Je[Se],_e=Je[De];Je[xe]=$e,Je[Se]=_e,Je.pop()}}else{const Se=--se,Be=y[Se];Se>0&&(E[Be.uuid]=xe),y[xe]=Be,y.pop();for(let De=0,Re=ne;De!==Re;++De){const Oe=z[De];Oe[xe]=Oe[Se],Oe.pop()}}}this.nCachedObjects_=ie}subscribe_(y,E){const z=this._bindingsIndicesByPath;let ne=z[y];const ie=this._bindings;if(ne!==void 0)return ie[ne];const se=this._paths,ae=this._parsedPaths,he=this._objects,pe=he.length,ve=this.nCachedObjects_,xe=new Array(pe);ne=ie.length,z[y]=ne,se.push(y),ae.push(E),ie.push(xe);for(let Se=ve,Be=he.length;Se!==Be;++Se){const De=he[Se];xe[Se]=new Su(De,y,E)}return xe}unsubscribe_(y){const E=this._bindingsIndicesByPath,z=E[y];if(z!==void 0){const ne=this._paths,ie=this._parsedPaths,se=this._bindings,ae=se.length-1,he=se[ae],pe=y[ae];E[pe]=z,se[z]=he,se.pop(),ie[z]=ie[ae],ie.pop(),ne[z]=ne[ae],ne.pop()}}}class Dy{constructor(y,E,z=null,ne=E.blendMode){this._mixer=y,this._clip=E,this._localRoot=z,this.blendMode=ne;const ie=E.tracks,se=ie.length,ae=new Array(se),he={endingStart:Sx,endingEnd:Sx};for(let pe=0;pe!==se;++pe){const ve=ie[pe].createInterpolant(null);ae[pe]=ve,ve.settings=he}this._interpolantSettings=he,this._interpolants=ae,this._propertyBindings=new Array(se),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=bC,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(y){return this._startTime=y,this}setLoop(y,E){return this.loop=y,this.repetitions=E,this}setEffectiveWeight(y){return this.weight=y,this._effectiveWeight=this.enabled?y:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(y){return this._scheduleFading(y,0,1)}fadeOut(y){return this._scheduleFading(y,1,0)}crossFadeFrom(y,E,z=!1){if(y.fadeOut(E),this.fadeIn(E),z===!0){const ne=this._clip.duration,ie=y._clip.duration,se=ie/ne,ae=ne/ie;y.warp(1,se,E),this.warp(ae,1,E)}return this}crossFadeTo(y,E,z=!1){return y.crossFadeFrom(this,E,z)}stopFading(){const y=this._weightInterpolant;return y!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(y)),this}setEffectiveTimeScale(y){return this.timeScale=y,this._effectiveTimeScale=this.paused?0:y,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(y){return this.timeScale=this._clip.duration/y,this.stopWarping()}syncWith(y){return this.time=y.time,this.timeScale=y.timeScale,this.stopWarping()}halt(y){return this.warp(this._effectiveTimeScale,0,y)}warp(y,E,z){const ne=this._mixer,ie=ne.time,se=this.timeScale;let ae=this._timeScaleInterpolant;ae===null&&(ae=ne._lendControlInterpolant(),this._timeScaleInterpolant=ae);const he=ae.parameterPositions,pe=ae.sampleValues;return he[0]=ie,he[1]=ie+z,pe[0]=y/se,pe[1]=E/se,this}stopWarping(){const y=this._timeScaleInterpolant;return y!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(y)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(y,E,z,ne){if(!this.enabled){this._updateWeight(y);return}const ie=this._startTime;if(ie!==null){const he=(y-ie)*z;he<0||z===0?E=0:(this._startTime=null,E=z*he)}E*=this._updateTimeScale(y);const se=this._updateTime(E),ae=this._updateWeight(y);if(ae>0){const he=this._interpolants,pe=this._propertyBindings;switch(this.blendMode){case Nm:for(let ve=0,xe=he.length;ve!==xe;++ve)he[ve].evaluate(se),pe[ve].accumulateAdditive(ae);break;case zS:default:for(let ve=0,xe=he.length;ve!==xe;++ve)he[ve].evaluate(se),pe[ve].accumulate(ne,ae)}}}_updateWeight(y){let E=0;if(this.enabled){E=this.weight;const z=this._weightInterpolant;if(z!==null){const ne=z.evaluate(y)[0];E*=ne,y>z.parameterPositions[1]&&(this.stopFading(),ne===0&&(this.enabled=!1))}}return this._effectiveWeight=E,E}_updateTimeScale(y){let E=0;if(!this.paused){E=this.timeScale;const z=this._timeScaleInterpolant;if(z!==null){const ne=z.evaluate(y)[0];E*=ne,y>z.parameterPositions[1]&&(this.stopWarping(),E===0?this.paused=!0:this.timeScale=E)}}return this._effectiveTimeScale=E,E}_updateTime(y){const E=this._clip.duration,z=this.loop;let ne=this.time+y,ie=this._loopCount;const se=z===i5;if(y===0)return ie===-1?ne:se&&(ie&1)===1?E-ne:ne;if(z===EC){ie===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(ne>=E)ne=E;else if(ne<0)ne=0;else{this.time=ne;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=ne,this._mixer.dispatchEvent({type:"finished",action:this,direction:y<0?-1:1})}}else{if(ie===-1&&(y>=0?(ie=0,this._setEndings(!0,this.repetitions===0,se)):this._setEndings(this.repetitions===0,!0,se)),ne>=E||ne<0){const ae=Math.floor(ne/E);ne-=E*ae,ie+=Math.abs(ae);const he=this.repetitions-ie;if(he<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,ne=y>0?E:0,this.time=ne,this._mixer.dispatchEvent({type:"finished",action:this,direction:y>0?1:-1});else{if(he===1){const pe=y<0;this._setEndings(pe,!pe,se)}else this._setEndings(!1,!1,se);this._loopCount=ie,this.time=ne,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:ae})}}else this.time=ne;if(se&&(ie&1)===1)return E-ne}return ne}_setEndings(y,E,z){const ne=this._interpolantSettings;z?(ne.endingStart=iy,ne.endingEnd=iy):(y?ne.endingStart=this.zeroSlopeAtStart?iy:Sx:ne.endingStart=RS,E?ne.endingEnd=this.zeroSlopeAtEnd?iy:Sx:ne.endingEnd=RS)}_scheduleFading(y,E,z){const ne=this._mixer,ie=ne.time;let se=this._weightInterpolant;se===null&&(se=ne._lendControlInterpolant(),this._weightInterpolant=se);const ae=se.parameterPositions,he=se.sampleValues;return ae[0]=ie,he[0]=E,ae[1]=ie+y,he[1]=z,this}}const BP=new Float32Array(1);class TP extends null{constructor(y){super(),this._root=y,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(y,E){const z=y._localRoot||this._root,ne=y._clip.tracks,ie=ne.length,se=y._propertyBindings,ae=y._interpolants,he=z.uuid,pe=this._bindingsByRootAndName;let ve=pe[he];ve===void 0&&(ve={},pe[he]=ve);for(let xe=0;xe!==ie;++xe){const Se=ne[xe],Be=Se.name;let De=ve[Be];if(De!==void 0)++De.referenceCount,se[xe]=De;else{if(De=se[xe],De!==void 0){De._cacheIndex===null&&(++De.referenceCount,this._addInactiveBinding(De,he,Be));continue}const Re=E&&E._propertyBindings[xe].binding.parsedPath;De=new Np(Su.create(z,Be,Re),Se.ValueTypeName,Se.getValueSize()),++De.referenceCount,this._addInactiveBinding(De,he,Be),se[xe]=De}ae[xe].resultBuffer=De.buffer}}_activateAction(y){if(!this._isActiveAction(y)){if(y._cacheIndex===null){const z=(y._localRoot||this._root).uuid,ne=y._clip.uuid,ie=this._actionsByClip[ne];this._bindAction(y,ie&&ie.knownActions[0]),this._addInactiveAction(y,ne,z)}const E=y._propertyBindings;for(let z=0,ne=E.length;z!==ne;++z){const ie=E[z];ie.useCount++===0&&(this._lendBinding(ie),ie.saveOriginalState())}this._lendAction(y)}}_deactivateAction(y){if(this._isActiveAction(y)){const E=y._propertyBindings;for(let z=0,ne=E.length;z!==ne;++z){const ie=E[z];--ie.useCount===0&&(ie.restoreOriginalState(),this._takeBackBinding(ie))}this._takeBackAction(y)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const y=this;this.stats={actions:{get total(){return y._actions.length},get inUse(){return y._nActiveActions}},bindings:{get total(){return y._bindings.length},get inUse(){return y._nActiveBindings}},controlInterpolants:{get total(){return y._controlInterpolants.length},get inUse(){return y._nActiveControlInterpolants}}}}_isActiveAction(y){const E=y._cacheIndex;return E!==null&&E<this._nActiveActions}_addInactiveAction(y,E,z){const ne=this._actions,ie=this._actionsByClip;let se=ie[E];if(se===void 0)se={knownActions:[y],actionByRoot:{}},y._byClipCacheIndex=0,ie[E]=se;else{const ae=se.knownActions;y._byClipCacheIndex=ae.length,ae.push(y)}y._cacheIndex=ne.length,ne.push(y),se.actionByRoot[z]=y}_removeInactiveAction(y){const E=this._actions,z=E[E.length-1],ne=y._cacheIndex;z._cacheIndex=ne,E[ne]=z,E.pop(),y._cacheIndex=null;const ie=y._clip.uuid,se=this._actionsByClip,ae=se[ie],he=ae.knownActions,pe=he[he.length-1],ve=y._byClipCacheIndex;pe._byClipCacheIndex=ve,he[ve]=pe,he.pop(),y._byClipCacheIndex=null;const xe=ae.actionByRoot,Se=(y._localRoot||this._root).uuid;delete xe[Se],he.length===0&&delete se[ie],this._removeInactiveBindingsForAction(y)}_removeInactiveBindingsForAction(y){const E=y._propertyBindings;for(let z=0,ne=E.length;z!==ne;++z){const ie=E[z];--ie.referenceCount===0&&this._removeInactiveBinding(ie)}}_lendAction(y){const E=this._actions,z=y._cacheIndex,ne=this._nActiveActions++,ie=E[ne];y._cacheIndex=ne,E[ne]=y,ie._cacheIndex=z,E[z]=ie}_takeBackAction(y){const E=this._actions,z=y._cacheIndex,ne=--this._nActiveActions,ie=E[ne];y._cacheIndex=ne,E[ne]=y,ie._cacheIndex=z,E[z]=ie}_addInactiveBinding(y,E,z){const ne=this._bindingsByRootAndName,ie=this._bindings;let se=ne[E];se===void 0&&(se={},ne[E]=se),se[z]=y,y._cacheIndex=ie.length,ie.push(y)}_removeInactiveBinding(y){const E=this._bindings,z=y.binding,ne=z.rootNode.uuid,ie=z.path,se=this._bindingsByRootAndName,ae=se[ne],he=E[E.length-1],pe=y._cacheIndex;he._cacheIndex=pe,E[pe]=he,E.pop(),delete ae[ie],Object.keys(ae).length===0&&delete se[ne]}_lendBinding(y){const E=this._bindings,z=y._cacheIndex,ne=this._nActiveBindings++,ie=E[ne];y._cacheIndex=ne,E[ne]=y,ie._cacheIndex=z,E[z]=ie}_takeBackBinding(y){const E=this._bindings,z=y._cacheIndex,ne=--this._nActiveBindings,ie=E[ne];y._cacheIndex=ne,E[ne]=y,ie._cacheIndex=z,E[z]=ie}_lendControlInterpolant(){const y=this._controlInterpolants,E=this._nActiveControlInterpolants++;let z=y[E];return z===void 0&&(z=new Pt(new Float32Array(2),new Float32Array(2),1,BP),z.__cacheIndex=E,y[E]=z),z}_takeBackControlInterpolant(y){const E=this._controlInterpolants,z=y.__cacheIndex,ne=--this._nActiveControlInterpolants,ie=E[ne];y.__cacheIndex=ne,E[ne]=y,ie.__cacheIndex=z,E[z]=ie}clipAction(y,E,z){const ne=E||this._root,ie=ne.uuid;let se=typeof y=="string"?Di.findByName(ne,y):y;const ae=se!==null?se.uuid:y,he=this._actionsByClip[ae];let pe=null;if(z===void 0&&(se!==null?z=se.blendMode:z=zS),he!==void 0){const xe=he.actionByRoot[ie];if(xe!==void 0&&xe.blendMode===z)return xe;pe=he.knownActions[0],se===null&&(se=pe._clip)}if(se===null)return null;const ve=new Dy(this,se,E,z);return this._bindAction(ve,pe),this._addInactiveAction(ve,ae,ie),ve}existingAction(y,E){const z=E||this._root,ne=z.uuid,ie=typeof y=="string"?Di.findByName(z,y):y,se=ie?ie.uuid:y,ae=this._actionsByClip[se];return ae!==void 0&&ae.actionByRoot[ne]||null}stopAllAction(){const y=this._actions,E=this._nActiveActions;for(let z=E-1;z>=0;--z)y[z].stop();return this}update(y){y*=this.timeScale;const E=this._actions,z=this._nActiveActions,ne=this.time+=y,ie=Math.sign(y),se=this._accuIndex^=1;for(let pe=0;pe!==z;++pe)E[pe]._update(ne,y,ie,se);const ae=this._bindings,he=this._nActiveBindings;for(let pe=0;pe!==he;++pe)ae[pe].apply(se);return this}setTime(y){this.time=0;for(let E=0;E<this._actions.length;E++)this._actions[E].time=0;return this.update(y)}getRoot(){return this._root}uncacheClip(y){const E=this._actions,z=y.uuid,ne=this._actionsByClip,ie=ne[z];if(ie!==void 0){const se=ie.knownActions;for(let ae=0,he=se.length;ae!==he;++ae){const pe=se[ae];this._deactivateAction(pe);const ve=pe._cacheIndex,xe=E[E.length-1];pe._cacheIndex=null,pe._byClipCacheIndex=null,xe._cacheIndex=ve,E[ve]=xe,E.pop(),this._removeInactiveBindingsForAction(pe)}delete ne[z]}}uncacheRoot(y){const E=y.uuid,z=this._actionsByClip;for(const se in z){const ae=z[se].actionByRoot,he=ae[E];he!==void 0&&(this._deactivateAction(he),this._removeInactiveAction(he))}const ne=this._bindingsByRootAndName,ie=ne[E];if(ie!==void 0)for(const se in ie){const ae=ie[se];ae.restoreOriginalState(),this._removeInactiveBinding(ae)}}uncacheAction(y,E){const z=this.existingAction(y,E);z!==null&&(this._deactivateAction(z),this._removeInactiveAction(z))}}class Qm extends null{constructor(y=1,E=1,z=1,ne={}){super(y,E,ne),this.isRenderTarget3D=!0,this.depth=z,this.texture=new OC(null,y,E,z),this._setTextureOptions(ne),this.texture.isRenderTargetTexture=!0}}class Ny{constructor(y){this.value=y}clone(){return new Ny(this.value.clone===void 0?this.value:this.value.clone())}}let Fy=0;class DP extends null{constructor(){super(),this.isUniformsGroup=!0,Object.defineProperty(this,"id",{value:Fy++}),this.name="",this.usage=Mx,this.uniforms=[]}add(y){return this.uniforms.push(y),this}remove(y){const E=this.uniforms.indexOf(y);return E!==-1&&this.uniforms.splice(E,1),this}setName(y){return this.name=y,this}setUsage(y){return this.usage=y,this}dispose(){this.dispatchEvent({type:"dispose"})}copy(y){this.name=y.name,this.usage=y.usage;const E=y.uniforms;this.uniforms.length=0;for(let z=0,ne=E.length;z<ne;z++){const ie=Array.isArray(E[z])?E[z]:[E[z]];for(let se=0;se<ie.length;se++)this.uniforms.push(ie[se].clone())}return this}clone(){return new this.constructor().copy(this)}}class mv extends Zh{constructor(y,E,z=1){super(y,E),this.isInstancedInterleavedBuffer=!0,this.meshPerAttribute=z}copy(y){return super.copy(y),this.meshPerAttribute=y.meshPerAttribute,this}clone(y){const E=super.clone(y);return E.meshPerAttribute=this.meshPerAttribute,E}toJSON(y){const E=super.toJSON(y);return E.isInstancedInterleavedBuffer=!0,E.meshPerAttribute=this.meshPerAttribute,E}}class M0{constructor(y,E,z,ne,ie){this.isGLBufferAttribute=!0,this.name="",this.buffer=y,this.type=E,this.itemSize=z,this.elementSize=ne,this.count=ie,this.version=0}set needsUpdate(y){y===!0&&this.version++}setBuffer(y){return this.buffer=y,this}setType(y,E){return this.type=y,this.elementSize=E,this}setItemSize(y){return this.itemSize=y,this}setCount(y){return this.count=y,this}}const B0=new Xa;class Zm{constructor(y,E,z=0,ne=1/0){this.ray=new yA(y,E),this.near=z,this.far=ne,this.camera=null,this.layers=new AA,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(y,E){this.ray.set(y,E)}setFromCamera(y,E){E.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(E.matrixWorld),this.ray.direction.set(y.x,y.y,.5).unproject(E).sub(this.ray.origin).normalize(),this.camera=E):E.isOrthographicCamera?(this.ray.origin.set(y.x,y.y,(E.near+E.far)/(E.near-E.far)).unproject(E),this.ray.direction.set(0,0,-1).transformDirection(E.matrixWorld),this.camera=E):console.error("THREE.Raycaster: Unsupported camera type: "+E.type)}setFromXRController(y){return B0.identity().extractRotation(y.matrixWorld),this.ray.origin.setFromMatrixPosition(y.matrixWorld),this.ray.direction.set(0,0,-1).applyMatrix4(B0),this}intersectObject(y,E=!0,z=[]){return vv(y,this,z,E),z.sort(T0),z}intersectObjects(y,E=!0,z=[]){for(let ne=0,ie=y.length;ne<ie;ne++)vv(y[ne],this,z,E);return z.sort(T0),z}}function T0(ee,y){return ee.distance-y.distance}function vv(ee,y,E,z){let ne=!0;if(ee.layers.test(y.layers)&&ee.raycast(y,E)===!1&&(ne=!1),ne===!0&&z===!0){const ie=ee.children;for(let se=0,ae=ie.length;se<ae;se++)vv(ie[se],y,E,!0)}}class Pg{constructor(y=1,E=0,z=0){this.radius=y,this.phi=E,this.theta=z}set(y,E,z){return this.radius=y,this.phi=E,this.theta=z,this}copy(y){return this.radius=y.radius,this.phi=y.phi,this.theta=y.theta,this}makeSafe(){return this.phi=Bu(this.phi,1e-6,Math.PI-1e-6),this}setFromVector3(y){return this.setFromCartesianCoords(y.x,y.y,y.z)}setFromCartesianCoords(y,E,z){return this.radius=Math.sqrt(y*y+E*E+z*z),this.radius===0?(this.theta=0,this.phi=0):(this.theta=Math.atan2(y,z),this.phi=Math.acos(Bu(E/this.radius,-1,1))),this}clone(){return new this.constructor().copy(this)}}class qw{constructor(y=1,E=0,z=0){this.radius=y,this.theta=E,this.y=z}set(y,E,z){return this.radius=y,this.theta=E,this.y=z,this}copy(y){return this.radius=y.radius,this.theta=y.theta,this.y=y.y,this}setFromVector3(y){return this.setFromCartesianCoords(y.x,y.y,y.z)}setFromCartesianCoords(y,E,z){return this.radius=Math.sqrt(y*y+z*z),this.theta=Math.atan2(y,z),this.y=E,this}clone(){return new this.constructor().copy(this)}}class xm{constructor(y,E,z,ne){xm.prototype.isMatrix2=!0,this.elements=[1,0,0,1],y!==void 0&&this.set(y,E,z,ne)}identity(){return this.set(1,0,0,1),this}fromArray(y,E=0){for(let z=0;z<4;z++)this.elements[z]=y[z+E];return this}set(y,E,z,ne){const ie=this.elements;return ie[0]=y,ie[2]=E,ie[1]=z,ie[3]=ne,this}}const LA=new Yr;class Z5{constructor(y=new Yr(1/0,1/0),E=new Yr(-1/0,-1/0)){this.isBox2=!0,this.min=y,this.max=E}set(y,E){return this.min.copy(y),this.max.copy(E),this}setFromPoints(y){this.makeEmpty();for(let E=0,z=y.length;E<z;E++)this.expandByPoint(y[E]);return this}setFromCenterAndSize(y,E){const z=LA.copy(E).multiplyScalar(.5);return this.min.copy(y).sub(z),this.max.copy(y).add(z),this}clone(){return new this.constructor().copy(this)}copy(y){return this.min.copy(y.min),this.max.copy(y.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(y){return this.isEmpty()?y.set(0,0):y.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(y){return this.isEmpty()?y.set(0,0):y.subVectors(this.max,this.min)}expandByPoint(y){return this.min.min(y),this.max.max(y),this}expandByVector(y){return this.min.sub(y),this.max.add(y),this}expandByScalar(y){return this.min.addScalar(-y),this.max.addScalar(y),this}containsPoint(y){return y.x>=this.min.x&&y.x<=this.max.x&&y.y>=this.min.y&&y.y<=this.max.y}containsBox(y){return this.min.x<=y.min.x&&y.max.x<=this.max.x&&this.min.y<=y.min.y&&y.max.y<=this.max.y}getParameter(y,E){return E.set((y.x-this.min.x)/(this.max.x-this.min.x),(y.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(y){return y.max.x>=this.min.x&&y.min.x<=this.max.x&&y.max.y>=this.min.y&&y.min.y<=this.max.y}clampPoint(y,E){return E.copy(y).clamp(this.min,this.max)}distanceToPoint(y){return this.clampPoint(y,LA).distanceTo(y)}intersect(y){return this.min.max(y.min),this.max.min(y.max),this.isEmpty()&&this.makeEmpty(),this}union(y){return this.min.min(y.min),this.max.max(y.max),this}translate(y){return this.min.add(y),this.max.add(y),this}equals(y){return y.min.equals(this.min)&&y.max.equals(this.max)}}const Ym=new yn,D0=new yn;class wE{constructor(y=new yn,E=new yn){this.start=y,this.end=E}set(y,E){return this.start.copy(y),this.end.copy(E),this}copy(y){return this.start.copy(y.start),this.end.copy(y.end),this}getCenter(y){return y.addVectors(this.start,this.end).multiplyScalar(.5)}delta(y){return y.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(y,E){return this.delta(E).multiplyScalar(y).add(this.start)}closestPointToPointParameter(y,E){Ym.subVectors(y,this.start),D0.subVectors(this.end,this.start);const z=D0.dot(D0);let ie=D0.dot(Ym)/z;return E&&(ie=Bu(ie,0,1)),ie}closestPointToPoint(y,E,z){const ne=this.closestPointToPointParameter(y,E);return this.delta(z).multiplyScalar(ne).add(this.start)}applyMatrix4(y){return this.start.applyMatrix4(y),this.end.applyMatrix4(y),this}equals(y){return y.start.equals(this.start)&&y.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const SE=new yn;class O2 extends null{constructor(y,E){super(),this.light=y,this.matrixAutoUpdate=!1,this.color=E,this.type="SpotLightHelper";const z=new Tu,ne=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let se=0,ae=1,he=32;se<he;se++,ae++){const pe=se/he*Math.PI*2,ve=ae/he*Math.PI*2;ne.push(Math.cos(pe),Math.sin(pe),1,Math.cos(ve),Math.sin(ve),1)}z.setAttribute("position",new Za(ne,3));const ie=new Tp({fog:!1,toneMapped:!1});this.cone=new _f(z,ie),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),this.parent?(this.parent.updateWorldMatrix(!0),this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld)):this.matrix.copy(this.light.matrixWorld),this.matrixWorld.copy(this.light.matrixWorld);const y=this.light.distance?this.light.distance:1e3,E=y*Math.tan(this.light.angle);this.cone.scale.set(E,E,y),SE.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(SE),this.color!==void 0?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}const Jg=new yn,yv=new Xa,_w=new Xa;class v3 extends null{constructor(y){const E=$w(y),z=new Tu,ne=[],ie=[],se=new ia(0,0,1),ae=new ia(0,1,0);for(let pe=0;pe<E.length;pe++){const ve=E[pe];ve.parent&&ve.parent.isBone&&(ne.push(0,0,0),ne.push(0,0,0),ie.push(se.r,se.g,se.b),ie.push(ae.r,ae.g,ae.b))}z.setAttribute("position",new Za(ne,3)),z.setAttribute("color",new Za(ie,3));const he=new Tp({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0});super(z,he),this.isSkeletonHelper=!0,this.type="SkeletonHelper",this.root=y,this.bones=E,this.matrix=y.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(y){const E=this.bones,z=this.geometry,ne=z.getAttribute("position");_w.copy(this.root.matrixWorld).invert();for(let ie=0,se=0;ie<E.length;ie++){const ae=E[ie];ae.parent&&ae.parent.isBone&&(yv.multiplyMatrices(_w,ae.matrixWorld),Jg.setFromMatrixPosition(yv),ne.setXYZ(se,Jg.x,Jg.y,Jg.z),yv.multiplyMatrices(_w,ae.parent.matrixWorld),Jg.setFromMatrixPosition(yv),ne.setXYZ(se+1,Jg.x,Jg.y,Jg.z),se+=2)}z.getAttribute("position").needsUpdate=!0,super.updateMatrixWorld(y)}dispose(){this.geometry.dispose(),this.material.dispose()}}function $w(ee){const y=[];ee.isBone===!0&&y.push(ee);for(let E=0;E<ee.children.length;E++)y.push(...$w(ee.children[E]));return y}class PE extends null{constructor(y,E,z){const ne=new ym(E,4,2),ie=new Yd({wireframe:!0,fog:!1,toneMapped:!1});super(ne,ie),this.light=y,this.color=z,this.type="PointLightHelper",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.color!==void 0?this.material.color.set(this.color):this.material.color.copy(this.light.color)}}const CE=new yn,Y5=new ia,NP=new ia;class R2 extends null{constructor(y,E,z){super(),this.light=y,this.matrix=y.matrixWorld,this.matrixAutoUpdate=!1,this.color=z,this.type="HemisphereLightHelper";const ne=new vm(E);ne.rotateY(Math.PI*.5),this.material=new Yd({wireframe:!0,fog:!1,toneMapped:!1}),this.color===void 0&&(this.material.vertexColors=!0);const ie=ne.getAttribute("position"),se=new Float32Array(ie.count*3);ne.setAttribute("color",new rh(se,3)),this.add(new Bc(ne,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const y=this.children[0];if(this.color!==void 0)this.material.color.set(this.color);else{const E=y.geometry.getAttribute("color");Y5.copy(this.light.color),NP.copy(this.light.groundColor);for(let z=0,ne=E.count;z<ne;z++){const ie=z<ne/2?Y5:NP;E.setXYZ(z,ie.r,ie.g,ie.b)}E.needsUpdate=!0}this.light.updateWorldMatrix(!0,!1),y.lookAt(CE.setFromMatrixPosition(this.light.matrixWorld).negate())}}class EN extends null{constructor(y=10,E=10,z=4473924,ne=8947848){z=new ia(z),ne=new ia(ne);const ie=E/2,se=y/E,ae=y/2,he=[],pe=[];for(let Se=0,Be=0,De=-ae;Se<=E;Se++,De+=se){he.push(-ae,0,De,ae,0,De),he.push(De,0,-ae,De,0,ae);const Re=Se===ie?z:ne;Re.toArray(pe,Be),Be+=3,Re.toArray(pe,Be),Be+=3,Re.toArray(pe,Be),Be+=3,Re.toArray(pe,Be),Be+=3}const ve=new Tu;ve.setAttribute("position",new Za(he,3)),ve.setAttribute("color",new Za(pe,3));const xe=new Tp({vertexColors:!0,toneMapped:!1});super(ve,xe),this.type="GridHelper"}dispose(){this.geometry.dispose(),this.material.dispose()}}class z2 extends null{constructor(y=10,E=16,z=8,ne=64,ie=4473924,se=8947848){ie=new ia(ie),se=new ia(se);const ae=[],he=[];if(E>1)for(let xe=0;xe<E;xe++){const Se=xe/E*(Math.PI*2),Be=Math.sin(Se)*y,De=Math.cos(Se)*y;ae.push(0,0,0),ae.push(Be,0,De);const Re=xe&1?ie:se;he.push(Re.r,Re.g,Re.b),he.push(Re.r,Re.g,Re.b)}for(let xe=0;xe<z;xe++){const Se=xe&1?ie:se,Be=y-y/z*xe;for(let De=0;De<ne;De++){let Re=De/ne*(Math.PI*2),Oe=Math.sin(Re)*Be,Le=Math.cos(Re)*Be;ae.push(Oe,0,Le),he.push(Se.r,Se.g,Se.b),Re=(De+1)/ne*(Math.PI*2),Oe=Math.sin(Re)*Be,Le=Math.cos(Re)*Be,ae.push(Oe,0,Le),he.push(Se.r,Se.g,Se.b)}}const pe=new Tu;pe.setAttribute("position",new Za(ae,3)),pe.setAttribute("color",new Za(he,3));const ve=new Tp({vertexColors:!0,toneMapped:!1});super(pe,ve),this.type="PolarGridHelper"}dispose(){this.geometry.dispose(),this.material.dispose()}}const EE=new yn,IA=new yn,bE=new yn;class K5 extends null{constructor(y,E,z){super(),this.light=y,this.matrix=y.matrixWorld,this.matrixAutoUpdate=!1,this.color=z,this.type="DirectionalLightHelper",E===void 0&&(E=1);let ne=new Tu;ne.setAttribute("position",new Za([-E,E,0,E,E,0,E,-E,0,-E,-E,0,-E,E,0],3));const ie=new Tp({fog:!1,toneMapped:!1});this.lightPlane=new MA(ne,ie),this.add(this.lightPlane),ne=new Tu,ne.setAttribute("position",new Za([0,0,0,0,0,1],3)),this.targetLine=new MA(ne,ie),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),EE.setFromMatrixPosition(this.light.matrixWorld),IA.setFromMatrixPosition(this.light.target.matrixWorld),bE.subVectors(IA,EE),this.lightPlane.lookAt(IA),this.color!==void 0?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(IA),this.targetLine.scale.z=bE.length()}}const J5=new yn,pf=new oP;class Kle extends null{constructor(y){const E=new Tu,z=new Tp({color:16777215,vertexColors:!0,toneMapped:!1}),ne=[],ie=[],se={};ae("n1","n2"),ae("n2","n4"),ae("n4","n3"),ae("n3","n1"),ae("f1","f2"),ae("f2","f4"),ae("f4","f3"),ae("f3","f1"),ae("n1","f1"),ae("n2","f2"),ae("n3","f3"),ae("n4","f4"),ae("p","n1"),ae("p","n2"),ae("p","n3"),ae("p","n4"),ae("u1","u2"),ae("u2","u3"),ae("u3","u1"),ae("c","t"),ae("p","c"),ae("cn1","cn2"),ae("cn3","cn4"),ae("cf1","cf2"),ae("cf3","cf4");function ae(De,Re){he(De),he(Re)}function he(De){ne.push(0,0,0),ie.push(0,0,0),se[De]===void 0&&(se[De]=[]),se[De].push(ne.length/3-1)}E.setAttribute("position",new Za(ne,3)),E.setAttribute("color",new Za(ie,3)),super(E,z),this.type="CameraHelper",this.camera=y,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=y.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=se,this.update();const pe=new ia(16755200),ve=new ia(16711680),xe=new ia(43775),Se=new ia(16777215),Be=new ia(3355443);this.setColors(pe,ve,xe,Se,Be)}setColors(y,E,z,ne,ie){const ae=this.geometry.getAttribute("color");ae.setXYZ(0,y.r,y.g,y.b),ae.setXYZ(1,y.r,y.g,y.b),ae.setXYZ(2,y.r,y.g,y.b),ae.setXYZ(3,y.r,y.g,y.b),ae.setXYZ(4,y.r,y.g,y.b),ae.setXYZ(5,y.r,y.g,y.b),ae.setXYZ(6,y.r,y.g,y.b),ae.setXYZ(7,y.r,y.g,y.b),ae.setXYZ(8,y.r,y.g,y.b),ae.setXYZ(9,y.r,y.g,y.b),ae.setXYZ(10,y.r,y.g,y.b),ae.setXYZ(11,y.r,y.g,y.b),ae.setXYZ(12,y.r,y.g,y.b),ae.setXYZ(13,y.r,y.g,y.b),ae.setXYZ(14,y.r,y.g,y.b),ae.setXYZ(15,y.r,y.g,y.b),ae.setXYZ(16,y.r,y.g,y.b),ae.setXYZ(17,y.r,y.g,y.b),ae.setXYZ(18,y.r,y.g,y.b),ae.setXYZ(19,y.r,y.g,y.b),ae.setXYZ(20,y.r,y.g,y.b),ae.setXYZ(21,y.r,y.g,y.b),ae.setXYZ(22,y.r,y.g,y.b),ae.setXYZ(23,y.r,y.g,y.b),ae.setXYZ(24,E.r,E.g,E.b),ae.setXYZ(25,E.r,E.g,E.b),ae.setXYZ(26,E.r,E.g,E.b),ae.setXYZ(27,E.r,E.g,E.b),ae.setXYZ(28,E.r,E.g,E.b),ae.setXYZ(29,E.r,E.g,E.b),ae.setXYZ(30,E.r,E.g,E.b),ae.setXYZ(31,E.r,E.g,E.b),ae.setXYZ(32,z.r,z.g,z.b),ae.setXYZ(33,z.r,z.g,z.b),ae.setXYZ(34,z.r,z.g,z.b),ae.setXYZ(35,z.r,z.g,z.b),ae.setXYZ(36,z.r,z.g,z.b),ae.setXYZ(37,z.r,z.g,z.b),ae.setXYZ(38,ne.r,ne.g,ne.b),ae.setXYZ(39,ne.r,ne.g,ne.b),ae.setXYZ(40,ie.r,ie.g,ie.b),ae.setXYZ(41,ie.r,ie.g,ie.b),ae.setXYZ(42,ie.r,ie.g,ie.b),ae.setXYZ(43,ie.r,ie.g,ie.b),ae.setXYZ(44,ie.r,ie.g,ie.b),ae.setXYZ(45,ie.r,ie.g,ie.b),ae.setXYZ(46,ie.r,ie.g,ie.b),ae.setXYZ(47,ie.r,ie.g,ie.b),ae.setXYZ(48,ie.r,ie.g,ie.b),ae.setXYZ(49,ie.r,ie.g,ie.b),ae.needsUpdate=!0}update(){const y=this.geometry,E=this.pointMap,z=1,ne=1;pf.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);const ie=this.camera.coordinateSystem===xp?-1:0;If("c",E,y,pf,0,0,ie),If("t",E,y,pf,0,0,1),If("n1",E,y,pf,-1,-1,ie),If("n2",E,y,pf,z,-1,ie),If("n3",E,y,pf,-1,ne,ie),If("n4",E,y,pf,z,ne,ie),If("f1",E,y,pf,-1,-1,1),If("f2",E,y,pf,z,-1,1),If("f3",E,y,pf,-1,ne,1),If("f4",E,y,pf,z,ne,1),If("u1",E,y,pf,z*.7,ne*1.1,ie),If("u2",E,y,pf,-1*.7,ne*1.1,ie),If("u3",E,y,pf,0,ne*2,ie),If("cf1",E,y,pf,-1,0,1),If("cf2",E,y,pf,z,0,1),If("cf3",E,y,pf,0,-1,1),If("cf4",E,y,pf,0,ne,1),If("cn1",E,y,pf,-1,0,ie),If("cn2",E,y,pf,z,0,ie),If("cn3",E,y,pf,0,-1,ie),If("cn4",E,y,pf,0,ne,ie),y.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}}function If(ee,y,E,z,ne,ie,se){J5.set(ne,ie,se).unproject(z);const ae=y[ee];if(ae!==void 0){const he=E.getAttribute("position");for(let pe=0,ve=ae.length;pe<ve;pe++)he.setXYZ(ae[pe],J5.x,J5.y,J5.z)}}const q5=new Zf;class Jle extends null{constructor(y,E=16776960){const z=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),ne=new Float32Array(8*3),ie=new Tu;ie.setIndex(new rh(z,1)),ie.setAttribute("position",new rh(ne,3)),super(ie,new Tp({color:E,toneMapped:!1})),this.object=y,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(){if(this.object!==void 0&&q5.setFromObject(this.object),q5.isEmpty())return;const y=q5.min,E=q5.max,z=this.geometry.attributes.position,ne=z.array;ne[0]=E.x,ne[1]=E.y,ne[2]=E.z,ne[3]=y.x,ne[4]=E.y,ne[5]=E.z,ne[6]=y.x,ne[7]=y.y,ne[8]=E.z,ne[9]=E.x,ne[10]=y.y,ne[11]=E.z,ne[12]=E.x,ne[13]=E.y,ne[14]=y.z,ne[15]=y.x,ne[16]=E.y,ne[17]=y.z,ne[18]=y.x,ne[19]=y.y,ne[20]=y.z,ne[21]=E.x,ne[22]=y.y,ne[23]=y.z,z.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(y){return this.object=y,this.update(),this}copy(y,E){return super.copy(y,E),this.object=y.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class qle extends null{constructor(y,E=16776960){const z=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),ne=[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],ie=new Tu;ie.setIndex(new rh(z,1)),ie.setAttribute("position",new Za(ne,3)),super(ie,new Tp({color:E,toneMapped:!1})),this.box=y,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(y){const E=this.box;E.isEmpty()||(E.getCenter(this.position),E.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(y))}dispose(){this.geometry.dispose(),this.material.dispose()}}class _le extends null{constructor(y,E=1,z=16776960){const ne=z,ie=[1,-1,0,-1,1,0,-1,-1,0,1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],se=new Tu;se.setAttribute("position",new Za(ie,3)),se.computeBoundingSphere(),super(se,new Tp({color:ne,toneMapped:!1})),this.type="PlaneHelper",this.plane=y,this.size=E;const ae=[1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],he=new Tu;he.setAttribute("position",new Za(ae,3)),he.computeBoundingSphere(),this.add(new Bc(he,new Yd({color:ne,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(y){this.position.set(0,0,0),this.scale.set(.5*this.size,.5*this.size,1),this.lookAt(this.plane.normal),this.translateZ(-this.plane.constant),super.updateMatrixWorld(y)}dispose(){this.geometry.dispose(),this.material.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()}}const bN=new yn;let _5,y3;class $le extends null{constructor(y=new yn(0,0,1),E=new yn(0,0,0),z=1,ne=16776960,ie=z*.2,se=ie*.2){super(),this.type="ArrowHelper",_5===void 0&&(_5=new Tu,_5.setAttribute("position",new Za([0,0,0,0,1,0],3)),y3=new av(.5,1,5,1),y3.translate(0,-.5,0)),this.position.copy(E),this.line=new MA(_5,new Tp({color:ne,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Bc(y3,new Yd({color:ne,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(y),this.setLength(z,ie,se)}setDirection(y){if(y.y>.99999)this.quaternion.set(0,0,0,1);else if(y.y<-.99999)this.quaternion.set(1,0,0,0);else{bN.set(y.z,0,-y.x).normalize();const E=Math.acos(y.y);this.quaternion.setFromAxisAngle(bN,E)}}setLength(y,E=y*.2,z=E*.2){this.line.scale.set(1,Math.max(1e-4,y-E),1),this.line.updateMatrix(),this.cone.scale.set(z,E,z),this.cone.position.y=y,this.cone.updateMatrix()}setColor(y){this.line.material.color.set(y),this.cone.material.color.set(y)}copy(y){return super.copy(y,!1),this.line.copy(y.line),this.cone.copy(y.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class eue extends null{constructor(y=1){const E=[0,0,0,y,0,0,0,0,0,0,y,0,0,0,0,0,0,y],z=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],ne=new Tu;ne.setAttribute("position",new Za(E,3)),ne.setAttribute("color",new Za(z,3));const ie=new Tp({vertexColors:!0,toneMapped:!1});super(ne,ie),this.type="AxesHelper"}setColors(y,E,z){const ne=new ia,ie=this.geometry.attributes.color.array;return ne.set(y),ne.toArray(ie,0),ne.toArray(ie,3),ne.set(E),ne.toArray(ie,6),ne.toArray(ie,9),ne.set(z),ne.toArray(ie,12),ne.toArray(ie,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class tue{constructor(){this.type="ShapePath",this.color=new ia,this.subPaths=[],this.currentPath=null}moveTo(y,E){return this.currentPath=new F2,this.subPaths.push(this.currentPath),this.currentPath.moveTo(y,E),this}lineTo(y,E){return this.currentPath.lineTo(y,E),this}quadraticCurveTo(y,E,z,ne){return this.currentPath.quadraticCurveTo(y,E,z,ne),this}bezierCurveTo(y,E,z,ne,ie,se){return this.currentPath.bezierCurveTo(y,E,z,ne,ie,se),this}splineThru(y){return this.currentPath.splineThru(y),this}toShapes(y){function E(Le){const Je=[];for(let $e=0,_e=Le.length;$e<_e;$e++){const st=Le[$e],ct=new uv;ct.curves=st.curves,Je.push(ct)}return Je}function z(Le,Je){const $e=Je.length;let _e=!1;for(let st=$e-1,ct=0;ct<$e;st=ct++){let ut=Je[st],ht=Je[ct],pt=ht.x-ut.x,gt=ht.y-ut.y;if(Math.abs(gt)>Number.EPSILON){if(gt<0&&(ut=Je[ct],pt=-pt,ht=Je[st],gt=-gt),Le.y<ut.y||Le.y>ht.y)continue;if(Le.y===ut.y){if(Le.x===ut.x)return!0}else{const zt=gt*(Le.x-ut.x)-pt*(Le.y-ut.y);if(zt===0)return!0;if(zt<0)continue;_e=!_e}}else{if(Le.y!==ut.y)continue;if(ht.x<=Le.x&&Le.x<=ut.x||ut.x<=Le.x&&Le.x<=ht.x)return!0}}return _e}const ne=Xg.isClockWise,ie=this.subPaths;if(ie.length===0)return[];let se,ae,he;const pe=[];if(ie.length===1)return ae=ie[0],he=new uv,he.curves=ae.curves,pe.push(he),pe;let ve=!ne(ie[0].getPoints());ve=y?!ve:ve;const xe=[],Se=[];let Be=[],De=0,Re;Se[De]=void 0,Be[De]=[];for(let Le=0,Je=ie.length;Le<Je;Le++)ae=ie[Le],Re=ae.getPoints(),se=ne(Re),se=y?!se:se,se?(!ve&&Se[De]&&De++,Se[De]={s:new uv,p:Re},Se[De].s.curves=ae.curves,ve&&De++,Be[De]=[]):Be[De].push({h:ae,p:Re[0]});if(!Se[0])return E(ie);if(Se.length>1){let Le=!1,Je=0;for(let $e=0,_e=Se.length;$e<_e;$e++)xe[$e]=[];for(let $e=0,_e=Se.length;$e<_e;$e++){const st=Be[$e];for(let ct=0;ct<st.length;ct++){const ut=st[ct];let ht=!0;for(let pt=0;pt<Se.length;pt++)z(ut.p,Se[pt].p)&&($e!==pt&&Je++,ht?(ht=!1,xe[pt].push(ut)):Le=!0);ht&&xe[$e].push(ut)}}Je>0&&Le===!1&&(Be=xe)}let Oe;for(let Le=0,Je=Se.length;Le<Je;Le++){he=Se[Le].s,pe.push(he),Oe=Be[Le];for(let $e=0,_e=Oe.length;$e<_e;$e++)he.holes.push(Oe[$e].h)}return pe}}class $5 extends Hg{constructor(y,E=null){super(),this.object=y,this.domElement=E,this.enabled=!0,this.state=-1,this.keys={},this.mouseButtons={LEFT:null,MIDDLE:null,RIGHT:null},this.touches={ONE:null,TWO:null}}connect(y){if(y===void 0){console.warn("THREE.Controls: connect() now requires an element.");return}this.domElement!==null&&this.disconnect(),this.domElement=y}disconnect(){}dispose(){}update(){}}function lU(ee,y){const E=ee.image&&ee.image.width?ee.image.width/ee.image.height:1;return E>y?(ee.repeat.x=1,ee.repeat.y=E/y,ee.offset.x=0,ee.offset.y=(1-ee.repeat.y)/2):(ee.repeat.x=y/E,ee.repeat.y=1,ee.offset.x=(1-ee.repeat.x)/2,ee.offset.y=0),ee}function uU(ee,y){const E=ee.image&&ee.image.width?ee.image.width/ee.image.height:1;return E>y?(ee.repeat.x=y/E,ee.repeat.y=1,ee.offset.x=(1-ee.repeat.x)/2,ee.offset.y=0):(ee.repeat.x=1,ee.repeat.y=E/y,ee.offset.x=0,ee.offset.y=(1-ee.repeat.y)/2),ee}function cU(ee){return ee.repeat.x=1,ee.repeat.y=1,ee.offset.x=0,ee.offset.y=0,ee}function A3(ee,y,E,z){const ne=hU(z);switch(E){case Zb:return ee*y;case rA:return ee*y/ne.components*ne.byteLength;case Dm:return ee*y/ne.components*ne.byteLength;case kg:return ee*y*2/ne.components*ne.byteLength;case Qp:return ee*y*2/ne.components*ne.byteLength;case Yv:return ee*y*3/ne.components*ne.byteLength;case Ws:return ee*y*4/ne.components*ne.byteLength;case oA:return ee*y*4/ne.components*ne.byteLength;case Kv:case Z0:return Math.floor((ee+3)/4)*Math.floor((y+3)/4)*8;case Jv:case Og:return Math.floor((ee+3)/4)*Math.floor((y+3)/4)*16;case Ax:case Y0:return Math.max(ee,16)*Math.max(y,8)/4;case yx:case sA:return Math.max(ee,8)*Math.max(y,8)/2;case xx:case zl:return Math.floor((ee+3)/4)*Math.floor((y+3)/4)*8;case hd:return Math.floor((ee+3)/4)*Math.floor((y+3)/4)*16;case Bh:return Math.floor((ee+3)/4)*Math.floor((y+3)/4)*16;case vp:return Math.floor((ee+4)/5)*Math.floor((y+3)/4)*16;case l0:return Math.floor((ee+4)/5)*Math.floor((y+4)/5)*16;case dg:return Math.floor((ee+5)/6)*Math.floor((y+4)/5)*16;case Zp:return Math.floor((ee+5)/6)*Math.floor((y+5)/6)*16;case Ed:return Math.floor((ee+7)/8)*Math.floor((y+4)/5)*16;case u0:return Math.floor((ee+7)/8)*Math.floor((y+5)/6)*16;case c0:return Math.floor((ee+7)/8)*Math.floor((y+7)/8)*16;case wx:return Math.floor((ee+9)/10)*Math.floor((y+4)/5)*16;case lc:return Math.floor((ee+9)/10)*Math.floor((y+5)/6)*16;case qv:return Math.floor((ee+9)/10)*Math.floor((y+7)/8)*16;case _v:return Math.floor((ee+9)/10)*Math.floor((y+9)/10)*16;case $v:return Math.floor((ee+11)/12)*Math.floor((y+9)/10)*16;case ey:return Math.floor((ee+11)/12)*Math.floor((y+11)/12)*16;case ty:case sw:case aw:return Math.ceil(ee/4)*Math.ceil(y/4)*16;case lw:case aA:return Math.ceil(ee/4)*Math.ceil(y/4)*8;case lA:case ny:return Math.ceil(ee/4)*Math.ceil(y/4)*16}throw new Error(`Unable to determine texture byte length for ${E} format.`)}function hU(ee){switch(ee){case yh:case Zv:return{byteLength:1,components:1};case Tm:case iA:case Hc:return{byteLength:2,components:1};case Fg:case vx:return{byteLength:2,components:4};case Oc:case sf:case Ah:return{byteLength:4,components:1};case a0:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${ee}.`)}class nue{static contain(y,E){return lU(y,E)}static cover(y,E){return uU(y,E)}static fill(y){return cU(y)}static getByteLength(y,E,z,ne){return A3(y,E,z,ne)}}typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:cg}})),typeof window!="undefined"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=cg);const ME=new Yh,w1=new Yr,MN=new yn,x3=new Yr,eB=new Yr,tB=new yn,w3=new yn,BN=new Xa,TN=new yn,DN=new yn;let Km=null,kA=null;const S1=[],eS={NONE:-1,PAN:0,ROTATE:1};class dU extends $5{constructor(y,E,z=null){super(E,z),this.objects=y,this.recursive=!0,this.transformGroup=!1,this.rotateSpeed=1,this.raycaster=new Zm,this.mouseButtons={LEFT:ad.PAN,MIDDLE:ad.PAN,RIGHT:ad.ROTATE},this.touches={ONE:jf.PAN},this._onPointerMove=fU.bind(this),this._onPointerDown=pU.bind(this),this._onPointerCancel=gU.bind(this),this._onContextMenu=mU.bind(this),z!==null&&this.connect(z)}connect(y){super.connect(y),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointerup",this._onPointerCancel),this.domElement.addEventListener("pointerleave",this._onPointerCancel),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointerup",this._onPointerCancel),this.domElement.removeEventListener("pointerleave",this._onPointerCancel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction="auto",this.domElement.style.cursor=""}dispose(){this.disconnect()}_updatePointer(y){const E=this.domElement.getBoundingClientRect();w1.x=(y.clientX-E.left)/E.width*2-1,w1.y=-(y.clientY-E.top)/E.height*2+1}_updateState(y){let E;if(y.pointerType==="touch")E=this.touches.ONE;else switch(y.button){case 0:E=this.mouseButtons.LEFT;break;case 1:E=this.mouseButtons.MIDDLE;break;case 2:E=this.mouseButtons.RIGHT;break;default:E=null}switch(E){case ad.PAN:case jf.PAN:this.state=eS.PAN;break;case ad.ROTATE:case jf.ROTATE:this.state=eS.ROTATE;break;default:this.state=eS.NONE}}getRaycaster(){return console.warn("THREE.DragControls: getRaycaster() has been deprecated. Use controls.raycaster instead."),this.raycaster}setObjects(y){console.warn("THREE.DragControls: setObjects() has been deprecated. Use controls.objects instead."),this.objects=y}getObjects(){return console.warn("THREE.DragControls: getObjects() has been deprecated. Use controls.objects instead."),this.objects}activate(){console.warn("THREE.DragControls: activate() has been renamed to connect()."),this.connect()}deactivate(){console.warn("THREE.DragControls: deactivate() has been renamed to disconnect()."),this.disconnect()}set mode(y){console.warn("THREE.DragControls: The .mode property has been removed. Define the type of transformation via the .mouseButtons or .touches properties.")}get mode(){console.warn("THREE.DragControls: The .mode property has been removed. Define the type of transformation via the .mouseButtons or .touches properties.")}}function fU(ee){const y=this.object,E=this.domElement,z=this.raycaster;if(this.enabled!==!1){if(this._updatePointer(ee),z.setFromCamera(w1,y),Km)this.state===eS.PAN?z.ray.intersectPlane(ME,tB)&&Km.position.copy(tB.sub(MN).applyMatrix4(BN)):this.state===eS.ROTATE&&(x3.subVectors(w1,eB).multiplyScalar(this.rotateSpeed),Km.rotateOnWorldAxis(TN,x3.x),Km.rotateOnWorldAxis(DN.normalize(),-x3.y)),this.dispatchEvent({type:"drag",object:Km}),eB.copy(w1);else if(ee.pointerType==="mouse"||ee.pointerType==="pen")if(S1.length=0,z.setFromCamera(w1,y),z.intersectObjects(this.objects,this.recursive,S1),S1.length>0){const ne=S1[0].object;ME.setFromNormalAndCoplanarPoint(y.getWorldDirection(ME.normal),w3.setFromMatrixPosition(ne.matrixWorld)),kA!==ne&&kA!==null&&(this.dispatchEvent({type:"hoveroff",object:kA}),E.style.cursor="auto",kA=null),kA!==ne&&(this.dispatchEvent({type:"hoveron",object:ne}),E.style.cursor="pointer",kA=ne)}else kA!==null&&(this.dispatchEvent({type:"hoveroff",object:kA}),E.style.cursor="auto",kA=null);eB.copy(w1)}}function pU(ee){const y=this.object,E=this.domElement,z=this.raycaster;this.enabled!==!1&&(this._updatePointer(ee),this._updateState(ee),S1.length=0,z.setFromCamera(w1,y),z.intersectObjects(this.objects,this.recursive,S1),S1.length>0&&(this.transformGroup===!0?Km=NN(S1[0].object):Km=S1[0].object,ME.setFromNormalAndCoplanarPoint(y.getWorldDirection(ME.normal),w3.setFromMatrixPosition(Km.matrixWorld)),z.ray.intersectPlane(ME,tB)&&(this.state===eS.PAN?(BN.copy(Km.parent.matrixWorld).invert(),MN.copy(tB).sub(w3.setFromMatrixPosition(Km.matrixWorld))):this.state===eS.ROTATE&&(TN.set(0,1,0).applyQuaternion(y.quaternion).normalize(),DN.set(1,0,0).applyQuaternion(y.quaternion).normalize())),E.style.cursor="move",this.dispatchEvent({type:"dragstart",object:Km})),eB.copy(w1))}function gU(){this.enabled!==!1&&(Km&&(this.dispatchEvent({type:"dragend",object:Km}),Km=null),this.domElement.style.cursor=kA?"pointer":"auto",this.state=eS.NONE)}function mU(ee){this.enabled!==!1&&ee.preventDefault()}function NN(ee,y=null){return ee.isGroup&&(y=ee),ee.parent===null?y:NN(ee.parent,y)}var vU=je(18609),yU=je(83833);const AU=1664525,xU=1013904223,FN=4294967296;function wU(){let ee=1;return()=>(ee=(AU*ee+xU)%FN)/FN}var LN=3;function S3(ee){return ee.x}function IN(ee){return ee.y}function SU(ee){return ee.z}var PU=10,CU=Math.PI*(3-Math.sqrt(5)),EU=Math.PI*20/(9+Math.sqrt(221));function kN(ee,y){y=y||2;var E=Math.min(LN,Math.max(1,Math.round(y))),z,ne=1,ie=.001,se=1-Math.pow(ie,1/300),ae=0,he=.6,pe=new Map,ve=(0,yU.HT)(Be),xe=(0,vU.Z)("tick","end"),Se=wU();ee==null&&(ee=[]);function Be(){De(),xe.call("tick",z),ne<ie&&(ve.stop(),xe.call("end",z))}function De(Le){var Je,$e=ee.length,_e;Le===void 0&&(Le=1);for(var st=0;st<Le;++st)for(ne+=(ae-ne)*se,pe.forEach(function(ct){ct(ne)}),Je=0;Je<$e;++Je)_e=ee[Je],_e.fx==null?_e.x+=_e.vx*=he:(_e.x=_e.fx,_e.vx=0),E>1&&(_e.fy==null?_e.y+=_e.vy*=he:(_e.y=_e.fy,_e.vy=0)),E>2&&(_e.fz==null?_e.z+=_e.vz*=he:(_e.z=_e.fz,_e.vz=0));return z}function Re(){for(var Le=0,Je=ee.length,$e;Le<Je;++Le){if($e=ee[Le],$e.index=Le,$e.fx!=null&&($e.x=$e.fx),$e.fy!=null&&($e.y=$e.fy),$e.fz!=null&&($e.z=$e.fz),isNaN($e.x)||E>1&&isNaN($e.y)||E>2&&isNaN($e.z)){var _e=PU*(E>2?Math.cbrt(.5+Le):E>1?Math.sqrt(.5+Le):Le),st=Le*CU,ct=Le*EU;E===1?$e.x=_e:E===2?($e.x=_e*Math.cos(st),$e.y=_e*Math.sin(st)):($e.x=_e*Math.sin(st)*Math.cos(ct),$e.y=_e*Math.cos(st),$e.z=_e*Math.sin(st)*Math.sin(ct))}(isNaN($e.vx)||E>1&&isNaN($e.vy)||E>2&&isNaN($e.vz))&&($e.vx=0,E>1&&($e.vy=0),E>2&&($e.vz=0))}}function Oe(Le){return Le.initialize&&Le.initialize(ee,Se,E),Le}return Re(),z={tick:De,restart:function(){return ve.restart(Be),z},stop:function(){return ve.stop(),z},numDimensions:function(Le){return arguments.length?(E=Math.min(LN,Math.max(1,Math.round(Le))),pe.forEach(Oe),z):E},nodes:function(Le){return arguments.length?(ee=Le,Re(),pe.forEach(Oe),z):ee},alpha:function(Le){return arguments.length?(ne=+Le,z):ne},alphaMin:function(Le){return arguments.length?(ie=+Le,z):ie},alphaDecay:function(Le){return arguments.length?(se=+Le,z):+se},alphaTarget:function(Le){return arguments.length?(ae=+Le,z):ae},velocityDecay:function(Le){return arguments.length?(he=1-Le,z):1-he},randomSource:function(Le){return arguments.length?(Se=Le,pe.forEach(Oe),z):Se},force:function(Le,Je){return arguments.length>1?(Je==null?pe.delete(Le):pe.set(Le,Oe(Je)),z):pe.get(Le)},find:function(){var Le=Array.prototype.slice.call(arguments),Je=Le.shift()||0,$e=(E>1?Le.shift():null)||0,_e=(E>2?Le.shift():null)||0,st=Le.shift()||1/0,ct=0,ut=ee.length,ht,pt,gt,zt,cn,Tn;for(st*=st,ct=0;ct<ut;++ct)cn=ee[ct],ht=Je-cn.x,pt=$e-(cn.y||0),gt=_e-(cn.z||0),zt=ht*ht+pt*pt+gt*gt,zt<st&&(Tn=cn,st=zt);return Tn},on:function(Le,Je){return arguments.length>1?(xe.on(Le,Je),z):xe.on(Le)}}}function Ly(ee){return function(){return ee}}function Av(ee){return(ee()-.5)*1e-6}function bU(ee){return ee.index}function ON(ee,y){var E=ee.get(y);if(!E)throw new Error("node not found: "+y);return E}function RN(ee){var y=bU,E=Se,z,ne=Ly(30),ie,se,ae,he,pe,ve,xe=1;ee==null&&(ee=[]);function Se(Le){return 1/Math.min(he[Le.source.index],he[Le.target.index])}function Be(Le){for(var Je=0,$e=ee.length;Je<xe;++Je)for(var _e=0,st,ct,ut,ht=0,pt=0,gt=0,zt,cn;_e<$e;++_e)st=ee[_e],ct=st.source,ut=st.target,ht=ut.x+ut.vx-ct.x-ct.vx||Av(ve),ae>1&&(pt=ut.y+ut.vy-ct.y-ct.vy||Av(ve)),ae>2&&(gt=ut.z+ut.vz-ct.z-ct.vz||Av(ve)),zt=Math.sqrt(ht*ht+pt*pt+gt*gt),zt=(zt-ie[_e])/zt*Le*z[_e],ht*=zt,pt*=zt,gt*=zt,ut.vx-=ht*(cn=pe[_e]),ae>1&&(ut.vy-=pt*cn),ae>2&&(ut.vz-=gt*cn),ct.vx+=ht*(cn=1-cn),ae>1&&(ct.vy+=pt*cn),ae>2&&(ct.vz+=gt*cn)}function De(){if(se){var Le,Je=se.length,$e=ee.length,_e=new Map(se.map((ct,ut)=>[y(ct,ut,se),ct])),st;for(Le=0,he=new Array(Je);Le<$e;++Le)st=ee[Le],st.index=Le,typeof st.source!="object"&&(st.source=ON(_e,st.source)),typeof st.target!="object"&&(st.target=ON(_e,st.target)),he[st.source.index]=(he[st.source.index]||0)+1,he[st.target.index]=(he[st.target.index]||0)+1;for(Le=0,pe=new Array($e);Le<$e;++Le)st=ee[Le],pe[Le]=he[st.source.index]/(he[st.source.index]+he[st.target.index]);z=new Array($e),Re(),ie=new Array($e),Oe()}}function Re(){if(se)for(var Le=0,Je=ee.length;Le<Je;++Le)z[Le]=+E(ee[Le],Le,ee)}function Oe(){if(se)for(var Le=0,Je=ee.length;Le<Je;++Le)ie[Le]=+ne(ee[Le],Le,ee)}return Be.initialize=function(Le,...Je){se=Le,ve=Je.find($e=>typeof $e=="function")||Math.random,ae=Je.find($e=>[1,2,3].includes($e))||2,De()},Be.links=function(Le){return arguments.length?(ee=Le,De(),Be):ee},Be.id=function(Le){return arguments.length?(y=Le,Be):y},Be.iterations=function(Le){return arguments.length?(xe=+Le,Be):xe},Be.strength=function(Le){return arguments.length?(E=typeof Le=="function"?Le:Ly(+Le),Re(),Be):E},Be.distance=function(Le){return arguments.length?(ne=typeof Le=="function"?Le:Ly(+Le),Oe(),Be):ne},Be}function MU(ee){const y=+this._x.call(null,ee);return zN(this.cover(y),y,ee)}function zN(ee,y,E){if(isNaN(y))return ee;var z,ne=ee._root,ie={data:E},se=ee._x0,ae=ee._x1,he,pe,ve,xe,Se;if(!ne)return ee._root=ie,ee;for(;ne.length;)if((ve=y>=(he=(se+ae)/2))?se=he:ae=he,z=ne,!(ne=ne[xe=+ve]))return z[xe]=ie,ee;if(pe=+ee._x.call(null,ne.data),y===pe)return ie.next=ne,z?z[xe]=ie:ee._root=ie,ee;do z=z?z[xe]=new Array(2):ee._root=new Array(2),(ve=y>=(he=(se+ae)/2))?se=he:ae=he;while((xe=+ve)==(Se=+(pe>=he)));return z[Se]=ne,z[xe]=ie,ee}function BU(ee){Array.isArray(ee)||(ee=Array.from(ee));const y=ee.length,E=new Float64Array(y);let z=1/0,ne=-1/0;for(let ie=0,se;ie<y;++ie)isNaN(se=+this._x.call(null,ee[ie]))||(E[ie]=se,se<z&&(z=se),se>ne&&(ne=se));if(z>ne)return this;this.cover(z).cover(ne);for(let ie=0;ie<y;++ie)zN(this,E[ie],ee[ie]);return this}function TU(ee){if(isNaN(ee=+ee))return this;var y=this._x0,E=this._x1;if(isNaN(y))E=(y=Math.floor(ee))+1;else{for(var z=E-y||1,ne=this._root,ie,se;y>ee||ee>=E;)switch(se=+(ee<y),ie=new Array(2),ie[se]=ne,ne=ie,z*=2,se){case 0:E=y+z;break;case 1:y=E-z;break}this._root&&this._root.length&&(this._root=ne)}return this._x0=y,this._x1=E,this}function DU(){var ee=[];return this.visit(function(y){if(!y.length)do ee.push(y.data);while(y=y.next)}),ee}function NU(ee){return arguments.length?this.cover(+ee[0][0]).cover(+ee[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]}function P1(ee,y,E){this.node=ee,this.x0=y,this.x1=E}function FU(ee,y){var E,z=this._x0,ne,ie,se=this._x1,ae=[],he=this._root,pe,ve;for(he&&ae.push(new P1(he,z,se)),y==null?y=1/0:(z=ee-y,se=ee+y);pe=ae.pop();)if(!(!(he=pe.node)||(ne=pe.x0)>se||(ie=pe.x1)<z))if(he.length){var xe=(ne+ie)/2;ae.push(new P1(he[1],xe,ie),new P1(he[0],ne,xe)),(ve=+(ee>=xe))&&(pe=ae[ae.length-1],ae[ae.length-1]=ae[ae.length-1-ve],ae[ae.length-1-ve]=pe)}else{var Se=Math.abs(ee-+this._x.call(null,he.data));Se<y&&(y=Se,z=ee-Se,se=ee+Se,E=he.data)}return E}function LU(ee){if(isNaN(he=+this._x.call(null,ee)))return this;var y,E=this._root,z,ne,ie,se=this._x0,ae=this._x1,he,pe,ve,xe,Se;if(!E)return this;if(E.length)for(;;){if((ve=he>=(pe=(se+ae)/2))?se=pe:ae=pe,y=E,!(E=E[xe=+ve]))return this;if(!E.length)break;y[xe+1&1]&&(z=y,Se=xe)}for(;E.data!==ee;)if(ne=E,!(E=E.next))return this;return(ie=E.next)&&delete E.next,ne?(ie?ne.next=ie:delete ne.next,this):y?(ie?y[xe]=ie:delete y[xe],(E=y[0]||y[1])&&E===(y[1]||y[0])&&!E.length&&(z?z[Se]=E:this._root=E),this):(this._root=ie,this)}function IU(ee){for(var y=0,E=ee.length;y<E;++y)this.remove(ee[y]);return this}function kU(){return this._root}function OU(){var ee=0;return this.visit(function(y){if(!y.length)do++ee;while(y=y.next)}),ee}function RU(ee){var y=[],E,z=this._root,ne,ie,se;for(z&&y.push(new P1(z,this._x0,this._x1));E=y.pop();)if(!ee(z=E.node,ie=E.x0,se=E.x1)&&z.length){var ae=(ie+se)/2;(ne=z[1])&&y.push(new P1(ne,ae,se)),(ne=z[0])&&y.push(new P1(ne,ie,ae))}return this}function zU(ee){var y=[],E=[],z;for(this._root&&y.push(new P1(this._root,this._x0,this._x1));z=y.pop();){var ne=z.node;if(ne.length){var ie,se=z.x0,ae=z.x1,he=(se+ae)/2;(ie=ne[0])&&y.push(new P1(ie,se,he)),(ie=ne[1])&&y.push(new P1(ie,he,ae))}E.push(z)}for(;z=E.pop();)ee(z.node,z.x0,z.x1);return this}function UU(ee){return ee[0]}function HU(ee){return arguments.length?(this._x=ee,this):this._x}function P3(ee,y){var E=new C3(y==null?UU:y,NaN,NaN);return ee==null?E:E.addAll(ee)}function C3(ee,y,E){this._x=ee,this._x0=y,this._x1=E,this._root=void 0}function UN(ee){for(var y={data:ee.data},E=y;ee=ee.next;)E=E.next={data:ee.data};return y}var Jm=P3.prototype=C3.prototype;Jm.copy=function(){var ee=new C3(this._x,this._x0,this._x1),y=this._root,E,z;if(!y)return ee;if(!y.length)return ee._root=UN(y),ee;for(E=[{source:y,target:ee._root=new Array(2)}];y=E.pop();)for(var ne=0;ne<2;++ne)(z=y.source[ne])&&(z.length?E.push({source:z,target:y.target[ne]=new Array(2)}):y.target[ne]=UN(z));return ee},Jm.add=MU,Jm.addAll=BU,Jm.cover=TU,Jm.data=DU,Jm.extent=NU,Jm.find=FU,Jm.remove=LU,Jm.removeAll=IU,Jm.root=kU,Jm.size=OU,Jm.visit=RU,Jm.visitAfter=zU,Jm.x=HU;var HN=je(14301),VN=je(7695);function jN(){var ee,y,E,z,ne,ie=Ly(-30),se,ae=1,he=1/0,pe=.81;function ve(De){var Re,Oe=ee.length,Le=(y===1?P3(ee,S3):y===2?(0,HN.Z)(ee,S3,IN):y===3?(0,VN.Z)(ee,S3,IN,SU):null).visitAfter(Se);for(ne=De,Re=0;Re<Oe;++Re)E=ee[Re],Le.visit(Be)}function xe(){if(ee){var De,Re=ee.length,Oe;for(se=new Array(Re),De=0;De<Re;++De)Oe=ee[De],se[Oe.index]=+ie(Oe,De,ee)}}function Se(De){var Re=0,Oe,Le,Je=0,$e,_e,st,ct,ut=De.length;if(ut){for($e=_e=st=ct=0;ct<ut;++ct)(Oe=De[ct])&&(Le=Math.abs(Oe.value))&&(Re+=Oe.value,Je+=Le,$e+=Le*(Oe.x||0),_e+=Le*(Oe.y||0),st+=Le*(Oe.z||0));Re*=Math.sqrt(4/ut),De.x=$e/Je,y>1&&(De.y=_e/Je),y>2&&(De.z=st/Je)}else{Oe=De,Oe.x=Oe.data.x,y>1&&(Oe.y=Oe.data.y),y>2&&(Oe.z=Oe.data.z);do Re+=se[Oe.data.index];while(Oe=Oe.next)}De.value=Re}function Be(De,Re,Oe,Le,Je){if(!De.value)return!0;var $e=[Oe,Le,Je][y-1],_e=De.x-E.x,st=y>1?De.y-E.y:0,ct=y>2?De.z-E.z:0,ut=$e-Re,ht=_e*_e+st*st+ct*ct;if(ut*ut/pe<ht)return ht<he&&(_e===0&&(_e=Av(z),ht+=_e*_e),y>1&&st===0&&(st=Av(z),ht+=st*st),y>2&&ct===0&&(ct=Av(z),ht+=ct*ct),ht<ae&&(ht=Math.sqrt(ae*ht)),E.vx+=_e*De.value*ne/ht,y>1&&(E.vy+=st*De.value*ne/ht),y>2&&(E.vz+=ct*De.value*ne/ht)),!0;if(De.length||ht>=he)return;(De.data!==E||De.next)&&(_e===0&&(_e=Av(z),ht+=_e*_e),y>1&&st===0&&(st=Av(z),ht+=st*st),y>2&&ct===0&&(ct=Av(z),ht+=ct*ct),ht<ae&&(ht=Math.sqrt(ae*ht)));do De.data!==E&&(ut=se[De.data.index]*ne/ht,E.vx+=_e*ut,y>1&&(E.vy+=st*ut),y>2&&(E.vz+=ct*ut));while(De=De.next)}return ve.initialize=function(De,...Re){ee=De,z=Re.find(Oe=>typeof Oe=="function")||Math.random,y=Re.find(Oe=>[1,2,3].includes(Oe))||2,xe()},ve.strength=function(De){return arguments.length?(ie=typeof De=="function"?De:Ly(+De),xe(),ve):ie},ve.distanceMin=function(De){return arguments.length?(ae=De*De,ve):Math.sqrt(ae)},ve.distanceMax=function(De){return arguments.length?(he=De*De,ve):Math.sqrt(he)},ve.theta=function(De){return arguments.length?(pe=De*De,ve):Math.sqrt(pe)},ve}function GN(ee,y,E){var z,ne=1;ee==null&&(ee=0),y==null&&(y=0),E==null&&(E=0);function ie(){var se,ae=z.length,he,pe=0,ve=0,xe=0;for(se=0;se<ae;++se)he=z[se],pe+=he.x||0,ve+=he.y||0,xe+=he.z||0;for(pe=(pe/ae-ee)*ne,ve=(ve/ae-y)*ne,xe=(xe/ae-E)*ne,se=0;se<ae;++se)he=z[se],pe&&(he.x-=pe),ve&&(he.y-=ve),xe&&(he.z-=xe)}return ie.initialize=function(se){z=se},ie.x=function(se){return arguments.length?(ee=+se,ie):ee},ie.y=function(se){return arguments.length?(y=+se,ie):y},ie.z=function(se){return arguments.length?(E=+se,ie):E},ie.strength=function(se){return arguments.length?(ne=+se,ie):ne},ie}function VU(ee,y,E,z){var ne,ie,se=Ly(.1),ae,he;typeof ee!="function"&&(ee=Ly(+ee)),y==null&&(y=0),E==null&&(E=0),z==null&&(z=0);function pe(xe){for(var Se=0,Be=ne.length;Se<Be;++Se){var De=ne[Se],Re=De.x-y||1e-6,Oe=(De.y||0)-E||1e-6,Le=(De.z||0)-z||1e-6,Je=Math.sqrt(Re*Re+Oe*Oe+Le*Le),$e=(he[Se]-Je)*ae[Se]*xe/Je;De.vx+=Re*$e,ie>1&&(De.vy+=Oe*$e),ie>2&&(De.vz+=Le*$e)}}function ve(){if(ne){var xe,Se=ne.length;for(ae=new Array(Se),he=new Array(Se),xe=0;xe<Se;++xe)he[xe]=+ee(ne[xe],xe,ne),ae[xe]=isNaN(he[xe])?0:+se(ne[xe],xe,ne)}}return pe.initialize=function(xe,...Se){ne=xe,ie=Se.find(Be=>[1,2,3].includes(Be))||2,ve()},pe.strength=function(xe){return arguments.length?(se=typeof xe=="function"?xe:Ly(+xe),ve(),pe):se},pe.radius=function(xe){return arguments.length?(ee=typeof xe=="function"?xe:Ly(+xe),ve(),pe):ee},pe.x=function(xe){return arguments.length?(y=+xe,pe):y},pe.y=function(xe){return arguments.length?(E=+xe,pe):E},pe.z=function(xe){return arguments.length?(z=+xe,pe):z},pe}var jU=je(45174),GU=je(91998);function XU(ee){var y=typeof ee;return ee!=null&&(y=="object"||y=="function")}var E3=XU,WU=typeof global=="object"&&global&&global.Object===Object&&global,QU=WU,ZU=typeof self=="object"&&self&&self.Object===Object&&self,YU=QU||ZU||Function("return this")(),XN=YU,KU=function(){return XN.Date.now()},b3=KU,JU=/\s/;function qU(ee){for(var y=ee.length;y--&&JU.test(ee.charAt(y)););return y}var _U=qU,$U=/^\s+/;function eH(ee){return ee&&ee.slice(0,_U(ee)+1).replace($U,"")}var tH=eH,nH=XN.Symbol,nB=nH,WN=Object.prototype,iH=WN.hasOwnProperty,rH=WN.toString,U2=nB?nB.toStringTag:void 0;function oH(ee){var y=iH.call(ee,U2),E=ee[U2];try{ee[U2]=void 0;var z=!0}catch(ie){}var ne=rH.call(ee);return z&&(y?ee[U2]=E:delete ee[U2]),ne}var sH=oH,aH=Object.prototype,lH=aH.toString;function uH(ee){return lH.call(ee)}var cH=uH,hH="[object Null]",dH="[object Undefined]",QN=nB?nB.toStringTag:void 0;function fH(ee){return ee==null?ee===void 0?dH:hH:QN&&QN in Object(ee)?sH(ee):cH(ee)}var pH=fH;function gH(ee){return ee!=null&&typeof ee=="object"}var mH=gH,vH="[object Symbol]";function yH(ee){return typeof ee=="symbol"||mH(ee)&&pH(ee)==vH}var AH=yH,ZN=NaN,xH=/^[-+]0x[0-9a-f]+$/i,wH=/^0b[01]+$/i,SH=/^0o[0-7]+$/i,PH=parseInt;function CH(ee){if(typeof ee=="number")return ee;if(AH(ee))return ZN;if(E3(ee)){var y=typeof ee.valueOf=="function"?ee.valueOf():ee;ee=E3(y)?y+"":y}if(typeof ee!="string")return ee===0?ee:+ee;ee=tH(ee);var E=wH.test(ee);return E||SH.test(ee)?PH(ee.slice(2),E?2:8):xH.test(ee)?ZN:+ee}var YN=CH,EH="Expected a function",bH=Math.max,MH=Math.min;function BH(ee,y,E){var z,ne,ie,se,ae,he,pe=0,ve=!1,xe=!1,Se=!0;if(typeof ee!="function")throw new TypeError(EH);y=YN(y)||0,E3(E)&&(ve=!!E.leading,xe="maxWait"in E,ie=xe?bH(YN(E.maxWait)||0,y):ie,Se="trailing"in E?!!E.trailing:Se);function Be(ct){var ut=z,ht=ne;return z=ne=void 0,pe=ct,se=ee.apply(ht,ut),se}function De(ct){return pe=ct,ae=setTimeout(Le,y),ve?Be(ct):se}function Re(ct){var ut=ct-he,ht=ct-pe,pt=y-ut;return xe?MH(pt,ie-ht):pt}function Oe(ct){var ut=ct-he,ht=ct-pe;return he===void 0||ut>=y||ut<0||xe&&ht>=ie}function Le(){var ct=b3();if(Oe(ct))return Je(ct);ae=setTimeout(Le,Re(ct))}function Je(ct){return ae=void 0,Se&&z?Be(ct):(z=ne=void 0,se)}function $e(){ae!==void 0&&clearTimeout(ae),pe=0,z=he=ne=ae=void 0}function _e(){return ae===void 0?se:Je(b3())}function st(){var ct=b3(),ut=Oe(ct);if(z=arguments,ne=this,he=ct,ut){if(ae===void 0)return De(he);if(xe)return clearTimeout(ae),ae=setTimeout(Le,y),Be(he)}return ae===void 0&&(ae=setTimeout(Le,y)),se}return st.cancel=$e,st.flush=_e,st}var TH=BH;function KN(ee,y){(y==null||y>ee.length)&&(y=ee.length);for(var E=0,z=Array(y);E<y;E++)z[E]=ee[E];return z}function DH(ee){if(Array.isArray(ee))return ee}function NH(ee,y){if(!(ee instanceof y))throw new TypeError("Cannot call a class as a function")}function FH(ee,y,E){return Object.defineProperty(ee,"prototype",{writable:!1}),ee}function LH(ee,y){var E=ee==null?null:typeof Symbol!="undefined"&&ee[Symbol.iterator]||ee["@@iterator"];if(E!=null){var z,ne,ie,se,ae=[],he=!0,pe=!1;try{if(ie=(E=E.call(ee)).next,y!==0)for(;!(he=(z=ie.call(E)).done)&&(ae.push(z.value),ae.length!==y);he=!0);}catch(ve){pe=!0,ne=ve}finally{try{if(!he&&E.return!=null&&(se=E.return(),Object(se)!==se))return}finally{if(pe)throw ne}}return ae}}function IH(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kH(ee,y){return DH(ee)||LH(ee,y)||OH(ee,y)||IH()}function OH(ee,y){if(ee){if(typeof ee=="string")return KN(ee,y);var E={}.toString.call(ee).slice(8,-1);return E==="Object"&&ee.constructor&&(E=ee.constructor.name),E==="Map"||E==="Set"?Array.from(ee):E==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(E)?KN(ee,y):void 0}}var RH=FH(function ee(y,E){var z=E.default,ne=z===void 0?null:z,ie=E.triggerUpdate,se=ie===void 0?!0:ie,ae=E.onChange,he=ae===void 0?function(pe,ve){}:ae;NH(this,ee),this.name=y,this.defaultVal=ne,this.triggerUpdate=se,this.onChange=he});function iB(ee){var y=ee.stateInit,E=y===void 0?function(){return{}}:y,z=ee.props,ne=z===void 0?{}:z,ie=ee.methods,se=ie===void 0?{}:ie,ae=ee.aliases,he=ae===void 0?{}:ae,pe=ee.init,ve=pe===void 0?function(){}:pe,xe=ee.update,Se=xe===void 0?function(){}:xe,Be=Object.keys(ne).map(function(De){return new RH(De,ne[De])});return function De(){for(var Re=arguments.length,Oe=new Array(Re),Le=0;Le<Re;Le++)Oe[Le]=arguments[Le];var Je=!!(this instanceof De&&this.constructor),$e=Je?Oe.shift():void 0,_e=Oe[0],st=_e===void 0?{}:_e,ct=Object.assign({},E instanceof Function?E(st):E,{initialised:!1}),ut={};function ht(zt){return pt(zt,st),gt(),ht}var pt=function(cn,Tn){ve.call(ht,cn,ct,Tn),ct.initialised=!0},gt=TH(function(){ct.initialised&&(Se.call(ht,ct,ut),ut={})},1);return Be.forEach(function(zt){ht[zt.name]=cn(zt);function cn(Tn){var Zn=Tn.name,Nn=Tn.triggerUpdate,di=Nn===void 0?!1:Nn,yi=Tn.onChange,bn=yi===void 0?function(ti,fn){}:yi,Sn=Tn.defaultVal,ki=Sn===void 0?null:Sn;return function(ti){var fn=ct[Zn];if(!arguments.length)return fn;var Bi=ti===void 0?ki:ti;return ct[Zn]=Bi,bn.call(ht,Bi,ct,fn),!ut.hasOwnProperty(Zn)&&(ut[Zn]=fn),di&>(),ht}}}),Object.keys(se).forEach(function(zt){ht[zt]=function(){for(var cn,Tn=arguments.length,Zn=new Array(Tn),Nn=0;Nn<Tn;Nn++)Zn[Nn]=arguments[Nn];return(cn=se[zt]).call.apply(cn,[ht,ct].concat(Zn))}}),Object.entries(he).forEach(function(zt){var cn=kH(zt,2),Tn=cn[0],Zn=cn[1];return ht[Tn]=ht[Zn]}),ht.resetProps=function(){return Be.forEach(function(zt){ht[zt.name](zt.defaultVal)}),ht},ht.resetProps(),ct._rerender=gt,Je&&$e&&ht($e),ht}}var Xc=function(ee){return typeof ee=="function"?ee:typeof ee=="string"?function(y){return y[ee]}:function(y){return ee}};function zH(ee,y){let E;if(y===void 0)for(const z of ee)z!=null&&(E>z||E===void 0&&z>=z)&&(E=z);else{let z=-1;for(let ne of ee)(ne=y(ne,++z,ee))!=null&&(E>ne||E===void 0&&ne>=ne)&&(E=ne)}return E}function UH(ee,y){let E;if(y===void 0)for(const z of ee)z!=null&&(E<z||E===void 0&&z>=z)&&(E=z);else{let z=-1;for(let ne of ee)(ne=y(ne,++z,ee))!=null&&(E<ne||E===void 0&&ne>=ne)&&(E=ne)}return E}function M3(ee,y){(y==null||y>ee.length)&&(y=ee.length);for(var E=0,z=Array(y);E<y;E++)z[E]=ee[E];return z}function HH(ee){if(Array.isArray(ee))return ee}function VH(ee){if(Array.isArray(ee))return M3(ee)}function JN(ee,y,E){if(typeof ee=="function"?ee===y:ee.has(y))return arguments.length<3?y:E;throw new TypeError("Private element is not present on this object")}function jH(ee,y){if(y.has(ee))throw new TypeError("Cannot initialize the same private elements twice on an object")}function GH(ee,y){if(!(ee instanceof y))throw new TypeError("Cannot call a class as a function")}function qg(ee,y){return ee.get(JN(ee,y))}function BE(ee,y,E){jH(ee,y),y.set(ee,E)}function rB(ee,y,E){return ee.set(JN(ee,y),E),E}function XH(ee,y){for(var E=0;E<y.length;E++){var z=y[E];z.enumerable=z.enumerable||!1,z.configurable=!0,"value"in z&&(z.writable=!0),Object.defineProperty(ee,$H(z.key),z)}}function WH(ee,y,E){return y&&XH(ee.prototype,y),Object.defineProperty(ee,"prototype",{writable:!1}),ee}function QH(ee){if(typeof Symbol!="undefined"&&ee[Symbol.iterator]!=null||ee["@@iterator"]!=null)return Array.from(ee)}function ZH(ee,y){var E=ee==null?null:typeof Symbol!="undefined"&&ee[Symbol.iterator]||ee["@@iterator"];if(E!=null){var z,ne,ie,se,ae=[],he=!0,pe=!1;try{if(ie=(E=E.call(ee)).next,y!==0)for(;!(he=(z=ie.call(E)).done)&&(ae.push(z.value),ae.length!==y);he=!0);}catch(ve){pe=!0,ne=ve}finally{try{if(!he&&E.return!=null&&(se=E.return(),Object(se)!==se))return}finally{if(pe)throw ne}}return ae}}function YH(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function KH(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function JH(ee,y){return HH(ee)||ZH(ee,y)||qN(ee,y)||YH()}function qH(ee){return VH(ee)||QH(ee)||qN(ee)||KH()}function _H(ee,y){if(typeof ee!="object"||!ee)return ee;var E=ee[Symbol.toPrimitive];if(E!==void 0){var z=E.call(ee,y);if(typeof z!="object")return z;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(ee)}function $H(ee){var y=_H(ee,"string");return typeof y=="symbol"?y:y+""}function qN(ee,y){if(ee){if(typeof ee=="string")return M3(ee,y);var E={}.toString.call(ee).slice(8,-1);return E==="Object"&&ee.constructor&&(E=ee.constructor.name),E==="Map"||E==="Set"?Array.from(ee):E==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(E)?M3(ee,y):void 0}}var TE=new WeakMap,H2=new WeakMap,DE=new WeakMap,B3=new WeakMap,T3=new WeakMap,D3=new WeakMap,eV=function(){function ee(){GH(this,ee),BE(this,TE,new Map),BE(this,H2,new Map),BE(this,DE,function(y){return y}),BE(this,B3,function(){return{}}),BE(this,T3,function(){}),BE(this,D3,function(){})}return WH(ee,[{key:"getObj",value:function(E){return qg(TE,this).get(qg(DE,this).call(this,E))}},{key:"getData",value:function(E){return qg(H2,this).get(E)}},{key:"entries",value:function(){return qH(qg(H2,this).entries()).map(function(E){var z=JH(E,2),ne=z[0],ie=z[1];return[ie,ne]})}},{key:"id",value:function(E){return rB(DE,this,Xc(E)),this}},{key:"onCreateObj",value:function(E){return rB(B3,this,E),this}},{key:"onUpdateObj",value:function(E){return rB(T3,this,E),this}},{key:"onRemoveObj",value:function(E){return rB(D3,this,E),this}},{key:"digest",value:function(E){var z=this;E.filter(function(ie){return!qg(TE,z).has(qg(DE,z).call(z,ie))}).forEach(function(ie){var se=qg(B3,z).call(z,ie);qg(TE,z).set(qg(DE,z).call(z,ie),se),qg(H2,z).set(se,ie)});var ne=new Map(E.map(function(ie){return[qg(DE,z).call(z,ie),ie]}));return qg(TE,this).forEach(function(ie,se){ne.has(se)?qg(T3,z).call(z,ie,ne.get(se)):(qg(D3,z).call(z,ie,se),qg(TE,z).delete(se),qg(H2,z).delete(ie))}),this}},{key:"clear",value:function(){return this.digest([]),this}}])}();class _N extends Map{constructor(y,E=tF){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:E}}),y!=null)for(const[z,ne]of y)this.set(z,ne)}get(y){return super.get(N3(this,y))}has(y){return super.has(N3(this,y))}set(y,E){return super.set($N(this,y),E)}delete(y){return super.delete(eF(this,y))}}class iue extends null{constructor(y,E=tF){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:E}}),y!=null)for(const z of y)this.add(z)}has(y){return super.has(N3(this,y))}add(y){return super.add($N(this,y))}delete(y){return super.delete(eF(this,y))}}function N3({_intern:ee,_key:y},E){const z=y(E);return ee.has(z)?ee.get(z):E}function $N({_intern:ee,_key:y},E){const z=y(E);return ee.has(z)?ee.get(z):(ee.set(z,E),E)}function eF({_intern:ee,_key:y},E){const z=y(E);return ee.has(z)&&(E=ee.get(z),ee.delete(z)),E}function tF(ee){return ee!==null&&typeof ee=="object"?ee.valueOf():ee}function tV(ee,y){switch(arguments.length){case 0:break;case 1:this.range(ee);break;default:this.range(y).domain(ee);break}return this}function rue(ee,y){switch(arguments.length){case 0:break;case 1:{typeof ee=="function"?this.interpolator(ee):this.range(ee);break}default:{this.domain(ee),typeof y=="function"?this.interpolator(y):this.range(y);break}}return this}const nF=Symbol("implicit");function iF(){var ee=new _N,y=[],E=[],z=nF;function ne(ie){let se=ee.get(ie);if(se===void 0){if(z!==nF)return z;ee.set(ie,se=y.push(ie)-1)}return E[se%E.length]}return ne.domain=function(ie){if(!arguments.length)return y.slice();y=[],ee=new _N;for(const se of ie)ee.has(se)||ee.set(se,y.push(se)-1);return ne},ne.range=function(ie){return arguments.length?(E=Array.from(ie),ne):E.slice()},ne.unknown=function(ie){return arguments.length?(z=ie,ne):z},ne.copy=function(){return iF(y,E).unknown(z)},tV.apply(ne,arguments),ne}function nV(ee){for(var y=ee.length/6|0,E=new Array(y),z=0;z<y;)E[z]="#"+ee.slice(z*6,++z*6);return E}var iV=nV("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928");function oB(ee){"@babel/helpers - typeof";return oB=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(y){return typeof y}:function(y){return y&&typeof Symbol=="function"&&y.constructor===Symbol&&y!==Symbol.prototype?"symbol":typeof y},oB(ee)}var rV=/^\s+/,oV=/\s+$/;function Gl(ee,y){if(ee=ee||"",y=y||{},ee instanceof Gl)return ee;if(!(this instanceof Gl))return new Gl(ee,y);var E=sV(ee);this._originalInput=ee,this._r=E.r,this._g=E.g,this._b=E.b,this._a=E.a,this._roundA=Math.round(100*this._a)/100,this._format=y.format||E.format,this._gradientType=y.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=E.ok}Gl.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var y=this.toRgb();return(y.r*299+y.g*587+y.b*114)/1e3},getLuminance:function(){var y=this.toRgb(),E,z,ne,ie,se,ae;return E=y.r/255,z=y.g/255,ne=y.b/255,E<=.03928?ie=E/12.92:ie=Math.pow((E+.055)/1.055,2.4),z<=.03928?se=z/12.92:se=Math.pow((z+.055)/1.055,2.4),ne<=.03928?ae=ne/12.92:ae=Math.pow((ne+.055)/1.055,2.4),.2126*ie+.7152*se+.0722*ae},setAlpha:function(y){return this._a=uF(y),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var y=oF(this._r,this._g,this._b);return{h:y.h*360,s:y.s,v:y.v,a:this._a}},toHsvString:function(){var y=oF(this._r,this._g,this._b),E=Math.round(y.h*360),z=Math.round(y.s*100),ne=Math.round(y.v*100);return this._a==1?"hsv("+E+", "+z+"%, "+ne+"%)":"hsva("+E+", "+z+"%, "+ne+"%, "+this._roundA+")"},toHsl:function(){var y=rF(this._r,this._g,this._b);return{h:y.h*360,s:y.s,l:y.l,a:this._a}},toHslString:function(){var y=rF(this._r,this._g,this._b),E=Math.round(y.h*360),z=Math.round(y.s*100),ne=Math.round(y.l*100);return this._a==1?"hsl("+E+", "+z+"%, "+ne+"%)":"hsla("+E+", "+z+"%, "+ne+"%, "+this._roundA+")"},toHex:function(y){return sF(this._r,this._g,this._b,y)},toHexString:function(y){return"#"+this.toHex(y)},toHex8:function(y){return cV(this._r,this._g,this._b,this._a,y)},toHex8String:function(y){return"#"+this.toHex8(y)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(kd(this._r,255)*100)+"%",g:Math.round(kd(this._g,255)*100)+"%",b:Math.round(kd(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+Math.round(kd(this._r,255)*100)+"%, "+Math.round(kd(this._g,255)*100)+"%, "+Math.round(kd(this._b,255)*100)+"%)":"rgba("+Math.round(kd(this._r,255)*100)+"%, "+Math.round(kd(this._g,255)*100)+"%, "+Math.round(kd(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:SV[sF(this._r,this._g,this._b,!0)]||!1},toFilter:function(y){var E="#"+aF(this._r,this._g,this._b,this._a),z=E,ne=this._gradientType?"GradientType = 1, ":"";if(y){var ie=Gl(y);z="#"+aF(ie._r,ie._g,ie._b,ie._a)}return"progid:DXImageTransform.Microsoft.gradient("+ne+"startColorstr="+E+",endColorstr="+z+")"},toString:function(y){var E=!!y;y=y||this._format;var z=!1,ne=this._a<1&&this._a>=0,ie=!E&&ne&&(y==="hex"||y==="hex6"||y==="hex3"||y==="hex4"||y==="hex8"||y==="name");return ie?y==="name"&&this._a===0?this.toName():this.toRgbString():(y==="rgb"&&(z=this.toRgbString()),y==="prgb"&&(z=this.toPercentageRgbString()),(y==="hex"||y==="hex6")&&(z=this.toHexString()),y==="hex3"&&(z=this.toHexString(!0)),y==="hex4"&&(z=this.toHex8String(!0)),y==="hex8"&&(z=this.toHex8String()),y==="name"&&(z=this.toName()),y==="hsl"&&(z=this.toHslString()),y==="hsv"&&(z=this.toHsvString()),z||this.toHexString())},clone:function(){return Gl(this.toString())},_applyModification:function(y,E){var z=y.apply(null,[this].concat([].slice.call(E)));return this._r=z._r,this._g=z._g,this._b=z._b,this.setAlpha(z._a),this},lighten:function(){return this._applyModification(pV,arguments)},brighten:function(){return this._applyModification(gV,arguments)},darken:function(){return this._applyModification(mV,arguments)},desaturate:function(){return this._applyModification(hV,arguments)},saturate:function(){return this._applyModification(dV,arguments)},greyscale:function(){return this._applyModification(fV,arguments)},spin:function(){return this._applyModification(vV,arguments)},_applyCombination:function(y,E){return y.apply(null,[this].concat([].slice.call(E)))},analogous:function(){return this._applyCombination(xV,arguments)},complement:function(){return this._applyCombination(yV,arguments)},monochromatic:function(){return this._applyCombination(wV,arguments)},splitcomplement:function(){return this._applyCombination(AV,arguments)},triad:function(){return this._applyCombination(lF,[3])},tetrad:function(){return this._applyCombination(lF,[4])}},Gl.fromRatio=function(ee,y){if(oB(ee)=="object"){var E={};for(var z in ee)ee.hasOwnProperty(z)&&(z==="a"?E[z]=ee[z]:E[z]=V2(ee[z]));ee=E}return Gl(ee,y)};function sV(ee){var y={r:0,g:0,b:0},E=1,z=null,ne=null,ie=null,se=!1,ae=!1;return typeof ee=="string"&&(ee=bV(ee)),oB(ee)=="object"&&(C1(ee.r)&&C1(ee.g)&&C1(ee.b)?(y=aV(ee.r,ee.g,ee.b),se=!0,ae=String(ee.r).substr(-1)==="%"?"prgb":"rgb"):C1(ee.h)&&C1(ee.s)&&C1(ee.v)?(z=V2(ee.s),ne=V2(ee.v),y=uV(ee.h,z,ne),se=!0,ae="hsv"):C1(ee.h)&&C1(ee.s)&&C1(ee.l)&&(z=V2(ee.s),ie=V2(ee.l),y=lV(ee.h,z,ie),se=!0,ae="hsl"),ee.hasOwnProperty("a")&&(E=ee.a)),E=uF(E),{ok:se,format:ee.format||ae,r:Math.min(255,Math.max(y.r,0)),g:Math.min(255,Math.max(y.g,0)),b:Math.min(255,Math.max(y.b,0)),a:E}}function aV(ee,y,E){return{r:kd(ee,255)*255,g:kd(y,255)*255,b:kd(E,255)*255}}function rF(ee,y,E){ee=kd(ee,255),y=kd(y,255),E=kd(E,255);var z=Math.max(ee,y,E),ne=Math.min(ee,y,E),ie,se,ae=(z+ne)/2;if(z==ne)ie=se=0;else{var he=z-ne;switch(se=ae>.5?he/(2-z-ne):he/(z+ne),z){case ee:ie=(y-E)/he+(y<E?6:0);break;case y:ie=(E-ee)/he+2;break;case E:ie=(ee-y)/he+4;break}ie/=6}return{h:ie,s:se,l:ae}}function lV(ee,y,E){var z,ne,ie;ee=kd(ee,360),y=kd(y,100),E=kd(E,100);function se(pe,ve,xe){return xe<0&&(xe+=1),xe>1&&(xe-=1),xe<1/6?pe+(ve-pe)*6*xe:xe<1/2?ve:xe<2/3?pe+(ve-pe)*(2/3-xe)*6:pe}if(y===0)z=ne=ie=E;else{var ae=E<.5?E*(1+y):E+y-E*y,he=2*E-ae;z=se(he,ae,ee+1/3),ne=se(he,ae,ee),ie=se(he,ae,ee-1/3)}return{r:z*255,g:ne*255,b:ie*255}}function oF(ee,y,E){ee=kd(ee,255),y=kd(y,255),E=kd(E,255);var z=Math.max(ee,y,E),ne=Math.min(ee,y,E),ie,se,ae=z,he=z-ne;if(se=z===0?0:he/z,z==ne)ie=0;else{switch(z){case ee:ie=(y-E)/he+(y<E?6:0);break;case y:ie=(E-ee)/he+2;break;case E:ie=(ee-y)/he+4;break}ie/=6}return{h:ie,s:se,v:ae}}function uV(ee,y,E){ee=kd(ee,360)*6,y=kd(y,100),E=kd(E,100);var z=Math.floor(ee),ne=ee-z,ie=E*(1-y),se=E*(1-ne*y),ae=E*(1-(1-ne)*y),he=z%6,pe=[E,se,ie,ie,ae,E][he],ve=[ae,E,E,se,ie,ie][he],xe=[ie,ie,ae,E,E,se][he];return{r:pe*255,g:ve*255,b:xe*255}}function sF(ee,y,E,z){var ne=[Iy(Math.round(ee).toString(16)),Iy(Math.round(y).toString(16)),Iy(Math.round(E).toString(16))];return z&&ne[0].charAt(0)==ne[0].charAt(1)&&ne[1].charAt(0)==ne[1].charAt(1)&&ne[2].charAt(0)==ne[2].charAt(1)?ne[0].charAt(0)+ne[1].charAt(0)+ne[2].charAt(0):ne.join("")}function cV(ee,y,E,z,ne){var ie=[Iy(Math.round(ee).toString(16)),Iy(Math.round(y).toString(16)),Iy(Math.round(E).toString(16)),Iy(cF(z))];return ne&&ie[0].charAt(0)==ie[0].charAt(1)&&ie[1].charAt(0)==ie[1].charAt(1)&&ie[2].charAt(0)==ie[2].charAt(1)&&ie[3].charAt(0)==ie[3].charAt(1)?ie[0].charAt(0)+ie[1].charAt(0)+ie[2].charAt(0)+ie[3].charAt(0):ie.join("")}function aF(ee,y,E,z){var ne=[Iy(cF(z)),Iy(Math.round(ee).toString(16)),Iy(Math.round(y).toString(16)),Iy(Math.round(E).toString(16))];return ne.join("")}Gl.equals=function(ee,y){return!ee||!y?!1:Gl(ee).toRgbString()==Gl(y).toRgbString()},Gl.random=function(){return Gl.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})};function hV(ee,y){y=y===0?0:y||10;var E=Gl(ee).toHsl();return E.s-=y/100,E.s=sB(E.s),Gl(E)}function dV(ee,y){y=y===0?0:y||10;var E=Gl(ee).toHsl();return E.s+=y/100,E.s=sB(E.s),Gl(E)}function fV(ee){return Gl(ee).desaturate(100)}function pV(ee,y){y=y===0?0:y||10;var E=Gl(ee).toHsl();return E.l+=y/100,E.l=sB(E.l),Gl(E)}function gV(ee,y){y=y===0?0:y||10;var E=Gl(ee).toRgb();return E.r=Math.max(0,Math.min(255,E.r-Math.round(255*-(y/100)))),E.g=Math.max(0,Math.min(255,E.g-Math.round(255*-(y/100)))),E.b=Math.max(0,Math.min(255,E.b-Math.round(255*-(y/100)))),Gl(E)}function mV(ee,y){y=y===0?0:y||10;var E=Gl(ee).toHsl();return E.l-=y/100,E.l=sB(E.l),Gl(E)}function vV(ee,y){var E=Gl(ee).toHsl(),z=(E.h+y)%360;return E.h=z<0?360+z:z,Gl(E)}function yV(ee){var y=Gl(ee).toHsl();return y.h=(y.h+180)%360,Gl(y)}function lF(ee,y){if(isNaN(y)||y<=0)throw new Error("Argument to polyad must be a positive number");for(var E=Gl(ee).toHsl(),z=[Gl(ee)],ne=360/y,ie=1;ie<y;ie++)z.push(Gl({h:(E.h+ie*ne)%360,s:E.s,l:E.l}));return z}function AV(ee){var y=Gl(ee).toHsl(),E=y.h;return[Gl(ee),Gl({h:(E+72)%360,s:y.s,l:y.l}),Gl({h:(E+216)%360,s:y.s,l:y.l})]}function xV(ee,y,E){y=y||6,E=E||30;var z=Gl(ee).toHsl(),ne=360/E,ie=[Gl(ee)];for(z.h=(z.h-(ne*y>>1)+720)%360;--y;)z.h=(z.h+ne)%360,ie.push(Gl(z));return ie}function wV(ee,y){y=y||6;for(var E=Gl(ee).toHsv(),z=E.h,ne=E.s,ie=E.v,se=[],ae=1/y;y--;)se.push(Gl({h:z,s:ne,v:ie})),ie=(ie+ae)%1;return se}Gl.mix=function(ee,y,E){E=E===0?0:E||50;var z=Gl(ee).toRgb(),ne=Gl(y).toRgb(),ie=E/100,se={r:(ne.r-z.r)*ie+z.r,g:(ne.g-z.g)*ie+z.g,b:(ne.b-z.b)*ie+z.b,a:(ne.a-z.a)*ie+z.a};return Gl(se)},Gl.readability=function(ee,y){var E=Gl(ee),z=Gl(y);return(Math.max(E.getLuminance(),z.getLuminance())+.05)/(Math.min(E.getLuminance(),z.getLuminance())+.05)},Gl.isReadable=function(ee,y,E){var z=Gl.readability(ee,y),ne,ie;switch(ie=!1,ne=MV(E),ne.level+ne.size){case"AAsmall":case"AAAlarge":ie=z>=4.5;break;case"AAlarge":ie=z>=3;break;case"AAAsmall":ie=z>=7;break}return ie},Gl.mostReadable=function(ee,y,E){var z=null,ne=0,ie,se,ae,he;E=E||{},se=E.includeFallbackColors,ae=E.level,he=E.size;for(var pe=0;pe<y.length;pe++)ie=Gl.readability(ee,y[pe]),ie>ne&&(ne=ie,z=Gl(y[pe]));return Gl.isReadable(ee,z,{level:ae,size:he})||!se?z:(E.includeFallbackColors=!1,Gl.mostReadable(ee,["#fff","#000"],E))};var F3=Gl.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},SV=Gl.hexNames=PV(F3);function PV(ee){var y={};for(var E in ee)ee.hasOwnProperty(E)&&(y[ee[E]]=E);return y}function uF(ee){return ee=parseFloat(ee),(isNaN(ee)||ee<0||ee>1)&&(ee=1),ee}function kd(ee,y){CV(ee)&&(ee="100%");var E=EV(ee);return ee=Math.min(y,Math.max(0,parseFloat(ee))),E&&(ee=parseInt(ee*y,10)/100),Math.abs(ee-y)<1e-6?1:ee%y/parseFloat(y)}function sB(ee){return Math.min(1,Math.max(0,ee))}function N0(ee){return parseInt(ee,16)}function CV(ee){return typeof ee=="string"&&ee.indexOf(".")!=-1&&parseFloat(ee)===1}function EV(ee){return typeof ee=="string"&&ee.indexOf("%")!=-1}function Iy(ee){return ee.length==1?"0"+ee:""+ee}function V2(ee){return ee<=1&&(ee=ee*100+"%"),ee}function cF(ee){return Math.round(parseFloat(ee)*255).toString(16)}function hF(ee){return N0(ee)/255}var ky=function(){var ee="[-\\+]?\\d+%?",y="[-\\+]?\\d*\\.\\d+%?",E="(?:"+y+")|(?:"+ee+")",z="[\\s|\\(]+("+E+")[,|\\s]+("+E+")[,|\\s]+("+E+")\\s*\\)?",ne="[\\s|\\(]+("+E+")[,|\\s]+("+E+")[,|\\s]+("+E+")[,|\\s]+("+E+")\\s*\\)?";return{CSS_UNIT:new RegExp(E),rgb:new RegExp("rgb"+z),rgba:new RegExp("rgba"+ne),hsl:new RegExp("hsl"+z),hsla:new RegExp("hsla"+ne),hsv:new RegExp("hsv"+z),hsva:new RegExp("hsva"+ne),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function C1(ee){return!!ky.CSS_UNIT.exec(ee)}function bV(ee){ee=ee.replace(rV,"").replace(oV,"").toLowerCase();var y=!1;if(F3[ee])ee=F3[ee],y=!0;else if(ee=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var E;return(E=ky.rgb.exec(ee))?{r:E[1],g:E[2],b:E[3]}:(E=ky.rgba.exec(ee))?{r:E[1],g:E[2],b:E[3],a:E[4]}:(E=ky.hsl.exec(ee))?{h:E[1],s:E[2],l:E[3]}:(E=ky.hsla.exec(ee))?{h:E[1],s:E[2],l:E[3],a:E[4]}:(E=ky.hsv.exec(ee))?{h:E[1],s:E[2],v:E[3]}:(E=ky.hsva.exec(ee))?{h:E[1],s:E[2],v:E[3],a:E[4]}:(E=ky.hex8.exec(ee))?{r:N0(E[1]),g:N0(E[2]),b:N0(E[3]),a:hF(E[4]),format:y?"name":"hex8"}:(E=ky.hex6.exec(ee))?{r:N0(E[1]),g:N0(E[2]),b:N0(E[3]),format:y?"name":"hex"}:(E=ky.hex4.exec(ee))?{r:N0(E[1]+""+E[1]),g:N0(E[2]+""+E[2]),b:N0(E[3]+""+E[3]),a:hF(E[4]+""+E[4]),format:y?"name":"hex8"}:(E=ky.hex3.exec(ee))?{r:N0(E[1]+""+E[1]),g:N0(E[2]+""+E[2]),b:N0(E[3]+""+E[3]),format:y?"name":"hex"}:!1}function MV(ee){var y,E;return ee=ee||{level:"AA",size:"small"},y=(ee.level||"AA").toUpperCase(),E=(ee.size||"small").toLowerCase(),y!=="AA"&&y!=="AAA"&&(y="AA"),E!=="small"&&E!=="large"&&(E="small"),{level:y,size:E}}function L3(ee,y){(y==null||y>ee.length)&&(y=ee.length);for(var E=0,z=Array(y);E<y;E++)z[E]=ee[E];return z}function BV(ee){if(Array.isArray(ee))return ee}function TV(ee){if(Array.isArray(ee))return L3(ee)}function dF(ee,y,E){if(typeof ee=="function"?ee===y:ee.has(y))return arguments.length<3?y:E;throw new TypeError("Private element is not present on this object")}function DV(ee){if(ee===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return ee}function fF(ee,y,E){return y=NE(y),zV(ee,O3()?Reflect.construct(y,E||[],NE(ee).constructor):y.apply(ee,E))}function NV(ee,y){if(y.has(ee))throw new TypeError("Cannot initialize the same private elements twice on an object")}function pF(ee,y){if(!(ee instanceof y))throw new TypeError("Cannot call a class as a function")}function I3(ee,y){return ee.get(dF(ee,y))}function gF(ee,y,E){NV(ee,y),y.set(ee,E)}function mF(ee,y,E){return ee.set(dF(ee,y),E),E}function vF(ee,y,E){if(O3())return Reflect.construct.apply(null,arguments);var z=[null];z.push.apply(z,y);var ne=new(ee.bind.apply(ee,z));return ne}function FV(ee,y){for(var E=0;E<y.length;E++){var z=y[E];z.enumerable=z.enumerable||!1,z.configurable=!0,"value"in z&&(z.writable=!0),Object.defineProperty(ee,wF(z.key),z)}}function yF(ee,y,E){return y&&FV(ee.prototype,y),Object.defineProperty(ee,"prototype",{writable:!1}),ee}function aB(ee,y,E){return(y=wF(y))in ee?Object.defineProperty(ee,y,{value:E,enumerable:!0,configurable:!0,writable:!0}):ee[y]=E,ee}function k3(){return k3=typeof Reflect!="undefined"&&Reflect.get?Reflect.get.bind():function(ee,y,E){var z=UV(ee,y);if(z){var ne=Object.getOwnPropertyDescriptor(z,y);return ne.get?ne.get.call(arguments.length<3?ee:E):ne.value}},k3.apply(null,arguments)}function NE(ee){return NE=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(y){return y.__proto__||Object.getPrototypeOf(y)},NE(ee)}function AF(ee,y){if(typeof y!="function"&&y!==null)throw new TypeError("Super expression must either be null or a function");ee.prototype=Object.create(y&&y.prototype,{constructor:{value:ee,writable:!0,configurable:!0}}),Object.defineProperty(ee,"prototype",{writable:!1}),y&&R3(ee,y)}function O3(){try{var ee=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(y){}return(O3=function(){return!!ee})()}function LV(ee){if(typeof Symbol!="undefined"&&ee[Symbol.iterator]!=null||ee["@@iterator"]!=null)return Array.from(ee)}function IV(ee,y){var E=ee==null?null:typeof Symbol!="undefined"&&ee[Symbol.iterator]||ee["@@iterator"];if(E!=null){var z,ne,ie,se,ae=[],he=!0,pe=!1;try{if(ie=(E=E.call(ee)).next,y!==0)for(;!(he=(z=ie.call(E)).done)&&(ae.push(z.value),ae.length!==y);he=!0);}catch(ve){pe=!0,ne=ve}finally{try{if(!he&&E.return!=null&&(se=E.return(),Object(se)!==se))return}finally{if(pe)throw ne}}return ae}}function kV(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function OV(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xF(ee,y){var E=Object.keys(ee);if(Object.getOwnPropertySymbols){var z=Object.getOwnPropertySymbols(ee);y&&(z=z.filter(function(ne){return Object.getOwnPropertyDescriptor(ee,ne).enumerable})),E.push.apply(E,z)}return E}function RV(ee){for(var y=1;y<arguments.length;y++){var E=arguments[y]!=null?arguments[y]:{};y%2?xF(Object(E),!0).forEach(function(z){aB(ee,z,E[z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(ee,Object.getOwnPropertyDescriptors(E)):xF(Object(E)).forEach(function(z){Object.defineProperty(ee,z,Object.getOwnPropertyDescriptor(E,z))})}return ee}function zV(ee,y){if(y&&(typeof y=="object"||typeof y=="function"))return y;if(y!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return DV(ee)}function R3(ee,y){return R3=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(E,z){return E.__proto__=z,E},R3(ee,y)}function j2(ee,y){return BV(ee)||IV(ee,y)||SF(ee,y)||kV()}function UV(ee,y){for(;!{}.hasOwnProperty.call(ee,y)&&(ee=NE(ee))!==null;);return ee}function z3(ee,y,E,z){var ne=k3(NE(ee.prototype),y,E);return typeof ne=="function"?function(ie){return ne.apply(E,ie)}:ne}function Oy(ee){return TV(ee)||LV(ee)||SF(ee)||OV()}function HV(ee,y){if(typeof ee!="object"||!ee)return ee;var E=ee[Symbol.toPrimitive];if(E!==void 0){var z=E.call(ee,y);if(typeof z!="object")return z;throw new TypeError("@@toPrimitive must return a primitive value.")}return(y==="string"?String:Number)(ee)}function wF(ee){var y=HV(ee,"string");return typeof y=="symbol"?y:y+""}function U3(ee){"@babel/helpers - typeof";return U3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(y){return typeof y}:function(y){return y&&typeof Symbol=="function"&&y.constructor===Symbol&&y!==Symbol.prototype?"symbol":typeof y},U3(ee)}function SF(ee,y){if(ee){if(typeof ee=="string")return L3(ee,y);var E={}.toString.call(ee).slice(8,-1);return E==="Object"&&ee.constructor&&(E=ee.constructor.name),E==="Map"||E==="Set"?Array.from(ee):E==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(E)?L3(ee,y):void 0}}var PF=function(y){y instanceof Array?y.forEach(PF):(y.map&&y.map.dispose(),y.dispose())},CF=function(y){y.geometry&&y.geometry.dispose(),y.material&&PF(y.material),y.texture&&y.texture.dispose(),y.children&&y.children.forEach(CF)},H3=function(y){for(;y.children.length;){var E=y.children[0];y.remove(E),CF(E)}},V3=new WeakMap,lB=new WeakMap,G2=function(ee){function y(E){var z,ne=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ie=ne.dataBindAttr,se=ie===void 0?"__data":ie,ae=ne.objBindAttr,he=ae===void 0?"__threeObj":ae;return pF(this,y),z=fF(this,y),aB(z,"scene",void 0),gF(z,V3,void 0),gF(z,lB,void 0),z.scene=E,mF(V3,z,se),mF(lB,z,he),z.onRemoveObj(function(){}),z}return AF(y,ee),yF(y,[{key:"onCreateObj",value:function(z){var ne=this;return z3(y,"onCreateObj",this)([function(ie){var se=z(ie);return ie[I3(lB,ne)]=se,se[I3(V3,ne)]=ie,ne.scene.add(se),se}]),this}},{key:"onRemoveObj",value:function(z){var ne=this;return z3(y,"onRemoveObj",this)([function(ie,se){var ae=z3(y,"getData",ne)([ie]);z(ie,se),ne.scene.remove(ie),H3(ie),delete ae[I3(lB,ne)]}]),this}}])}(eV),X2=function(y){return isNaN(y)?parseInt(Gl(y).toHex(),16):y},j3=function(y){return isNaN(y)?Gl(y).getAlpha():1},VV=iF(iV);function EF(ee,y,E){!y||typeof E!="string"||ee.filter(function(z){return!z[E]}).forEach(function(z){z[E]=VV(y(z))})}function jV(ee,y){var E=ee.nodes,z=ee.links,ne=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},ie=ne.nodeFilter,se=ie===void 0?function(){return!0}:ie,ae=ne.onLoopError,he=ae===void 0?function(Be){throw"Invalid DAG structure! Found cycle in node path: ".concat(Be.join(" -> "),".")}:ae,pe={};E.forEach(function(Be){return pe[y(Be)]={data:Be,out:[],depth:-1,skip:!se(Be)}}),z.forEach(function(Be){var De=Be.source,Re=Be.target,Oe=_e(De),Le=_e(Re);if(!pe.hasOwnProperty(Oe))throw"Missing source node with id: ".concat(Oe);if(!pe.hasOwnProperty(Le))throw"Missing target node with id: ".concat(Le);var Je=pe[Oe],$e=pe[Le];Je.out.push($e);function _e(st){return U3(st)==="object"?y(st):st}});var ve=[];Se(Object.values(pe));var xe=Object.assign.apply(Object,[{}].concat(Oy(Object.entries(pe).filter(function(Be){var De=j2(Be,2),Re=De[1];return!Re.skip}).map(function(Be){var De=j2(Be,2),Re=De[0],Oe=De[1];return aB({},Re,Oe.depth)}))));return xe;function Se(Be){for(var De=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],Re=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,Oe=function(){var _e=Be[Le];if(De.indexOf(_e)!==-1){var st=[].concat(Oy(De.slice(De.indexOf(_e))),[_e]).map(function(ct){return y(ct.data)});return ve.some(function(ct){return ct.length===st.length&&ct.every(function(ut,ht){return ut===st[ht]})})||(ve.push(st),he(st)),1}Re>_e.depth&&(_e.depth=Re,Se(_e.out,[].concat(Oy(De),[_e]),Re+(_e.skip?0:1)))},Le=0,Je=Be.length;Le<Je;Le++)Oe()}}var yu=window.THREE?window.THREE:{Group:PA,Mesh:Bc,MeshLambertMaterial:x,Color:ia,BufferGeometry:Tu,BufferAttribute:rh,Matrix4:Xa,Vector3:yn,SphereGeometry:ym,CylinderGeometry:Kd,TubeGeometry:Gw,ConeGeometry:av,Line:MA,LineBasicMaterial:Tp,QuadraticBezierCurve3:Nf,CubicBezierCurve3:hE,Box3:Zf},bF={graph:jU,forcelayout:GU},GV=2,G3=new yu.BufferGeometry().setAttribute?"setAttribute":"addAttribute",uB=new yu.BufferGeometry().applyMatrix4?"applyMatrix4":"applyMatrix",XV=iB({props:{jsonUrl:{onChange:function(y,E){var z=this;y&&!E.fetchingJson&&(E.fetchingJson=!0,E.onLoading(),fetch(y).then(function(ne){return ne.json()}).then(function(ne){E.fetchingJson=!1,E.onFinishLoading(ne),z.graphData(ne)}))},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(y,E){E.engineRunning=!1}},numDimensions:{default:3,onChange:function(y,E){var z=E.d3ForceLayout.force("charge");z&&z.strength(y>2?-60:-30),y<3&&ne(E.graphData.nodes,"z"),y<2&&ne(E.graphData.nodes,"y");function ne(ie,se){ie.forEach(function(ae){delete ae[se],delete ae["v".concat(se)]})}}},dagMode:{onChange:function(y,E){!y&&E.forceEngine==="d3"&&(E.graphData.nodes||[]).forEach(function(z){return z.fx=z.fy=z.fz=void 0})}},dagLevelDistance:{},dagNodeFilter:{default:function(y){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4},nodeId:{default:"id"},nodeVal:{default:"val"},nodeResolution:{default:8},nodeColor:{default:"color"},nodeAutoColorBy:{},nodeOpacity:{default:.75},nodeVisibility:{default:!0},nodeThreeObject:{},nodeThreeObjectExtend:{default:!1},nodePositionUpdate:{triggerUpdate:!1},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0},linkColor:{default:"color"},linkAutoColorBy:{},linkOpacity:{default:.2},linkWidth:{},linkResolution:{default:6},linkCurvature:{default:0,triggerUpdate:!1},linkCurveRotation:{default:0,triggerUpdate:!1},linkMaterial:{},linkThreeObject:{},linkThreeObjectExtend:{default:!1},linkPositionUpdate:{triggerUpdate:!1},linkDirectionalArrowLength:{default:0},linkDirectionalArrowColor:{},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1},linkDirectionalArrowResolution:{default:8},linkDirectionalParticles:{default:0},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleWidth:{default:.5},linkDirectionalParticleColor:{},linkDirectionalParticleResolution:{default:4},forceEngine:{default:"d3"},d3AlphaMin:{default:0},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(y,E){E.d3ForceLayout.alphaDecay(y)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(y,E){E.d3ForceLayout.alphaTarget(y)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(y,E){E.d3ForceLayout.velocityDecay(y)}},ngraphPhysics:{default:{timeStep:20,gravity:-1.2,theta:.8,springLength:30,springCoefficient:8e-4,dragCoefficient:.02}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onLoading:{default:function(){},triggerUpdate:!1},onFinishLoading:{default:function(){},triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1}},methods:{refresh:function(y){return y._flushObjects=!0,y._rerender(),this},d3Force:function(y,E,z){return z===void 0?y.d3ForceLayout.force(E):(y.d3ForceLayout.force(E,z),this)},d3ReheatSimulation:function(y){return y.d3ForceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(y){return y.cntTicks=0,y.startTickTime=new Date,y.engineRunning=!0,this},tickFrame:function(y){var E=y.forceEngine!=="ngraph";return y.engineRunning&&z(),ne(),ie(),this;function z(){++y.cntTicks>y.cooldownTicks||new Date-y.startTickTime>y.cooldownTime||E&&y.d3AlphaMin>0&&y.d3ForceLayout.alpha()<y.d3AlphaMin?(y.engineRunning=!1,y.onEngineStop()):(y.layout[E?"tick":"step"](),y.onEngineTick());var se=Xc(y.nodeThreeObjectExtend);y.nodeDataMapper.entries().forEach(function(Se){var Be=j2(Se,2),De=Be[0],Re=Be[1];if(Re){var Oe=E?De:y.layout.getNodePosition(De[y.nodeId]),Le=se(De);(!y.nodePositionUpdate||!y.nodePositionUpdate(Le?Re.children[0]:Re,{x:Oe.x,y:Oe.y,z:Oe.z},De)||Le)&&(Re.position.x=Oe.x,Re.position.y=Oe.y||0,Re.position.z=Oe.z||0)}});var ae=Xc(y.linkWidth),he=Xc(y.linkCurvature),pe=Xc(y.linkCurveRotation),ve=Xc(y.linkThreeObjectExtend);y.linkDataMapper.entries().forEach(function(Se){var Be=j2(Se,2),De=Be[0],Re=Be[1];if(Re){var Oe=E?De:y.layout.getLinkPosition(y.layout.graph.getLink(De.source,De.target).id),Le=Oe[E?"source":"from"],Je=Oe[E?"target":"to"];if(!(!Le||!Je||!Le.hasOwnProperty("x")||!Je.hasOwnProperty("x"))){xe(De);var $e=ve(De);if(!(y.linkPositionUpdate&&y.linkPositionUpdate($e?Re.children[1]:Re,{start:{x:Le.x,y:Le.y,z:Le.z},end:{x:Je.x,y:Je.y,z:Je.z}},De)&&!$e)){var _e=30,st=De.__curve,ct=Re.children.length?Re.children[0]:Re;if(ct.type==="Line"){if(st){var ht=st.getPoints(_e);ct.geometry.getAttribute("position").array.length!==ht.length*3&&ct.geometry[G3]("position",new yu.BufferAttribute(new Float32Array(ht.length*3),3)),ct.geometry.setFromPoints(ht)}else{var ut=ct.geometry.getAttribute("position");(!ut||!ut.array||ut.array.length!==6)&&ct.geometry[G3]("position",ut=new yu.BufferAttribute(new Float32Array(2*3),3)),ut.array[0]=Le.x,ut.array[1]=Le.y||0,ut.array[2]=Le.z||0,ut.array[3]=Je.x,ut.array[4]=Je.y||0,ut.array[5]=Je.z||0,ut.needsUpdate=!0}ct.geometry.computeBoundingSphere()}else if(ct.type==="Mesh")if(st){ct.geometry.type.match(/^Tube(Buffer)?Geometry$/)||(ct.position.set(0,0,0),ct.rotation.set(0,0,0),ct.scale.set(1,1,1));var Nn=Math.ceil(ae(De)*10)/10,di=Nn/2,yi=new yu.TubeGeometry(st,_e,di,y.linkResolution,!1);ct.geometry.dispose(),ct.geometry=yi}else{if(!ct.geometry.type.match(/^Cylinder(Buffer)?Geometry$/)){var pt=Math.ceil(ae(De)*10)/10,gt=pt/2,zt=new yu.CylinderGeometry(gt,gt,1,y.linkResolution,1,!1);zt[uB](new yu.Matrix4().makeTranslation(0,1/2,0)),zt[uB](new yu.Matrix4().makeRotationX(Math.PI/2)),ct.geometry.dispose(),ct.geometry=zt}var cn=new yu.Vector3(Le.x,Le.y||0,Le.z||0),Tn=new yu.Vector3(Je.x,Je.y||0,Je.z||0),Zn=cn.distanceTo(Tn);ct.position.x=cn.x,ct.position.y=cn.y,ct.position.z=cn.z,ct.scale.z=Zn,ct.parent.localToWorld(Tn),ct.lookAt(Tn)}}}}});function xe(Se){var Be=E?Se:y.layout.getLinkPosition(y.layout.graph.getLink(Se.source,Se.target).id),De=Be[E?"source":"from"],Re=Be[E?"target":"to"];if(!(!De||!Re||!De.hasOwnProperty("x")||!Re.hasOwnProperty("x"))){var Oe=he(Se);if(!Oe)Se.__curve=null;else{var Le=new yu.Vector3(De.x,De.y||0,De.z||0),Je=new yu.Vector3(Re.x,Re.y||0,Re.z||0),$e=Le.distanceTo(Je),_e,st=pe(Se);if($e>0){var ct=Re.x-De.x,ut=Re.y-De.y||0,ht=new yu.Vector3().subVectors(Je,Le),pt=ht.clone().multiplyScalar(Oe).cross(ct!==0||ut!==0?new yu.Vector3(0,0,1):new yu.Vector3(0,1,0)).applyAxisAngle(ht.normalize(),st).add(new yu.Vector3().addVectors(Le,Je).divideScalar(2));_e=new yu.QuadraticBezierCurve3(Le,pt,Je)}else{var gt=Oe*70,zt=-st,cn=zt+Math.PI/2;_e=new yu.CubicBezierCurve3(Le,new yu.Vector3(gt*Math.cos(cn),gt*Math.sin(cn),0).add(Le),new yu.Vector3(gt*Math.cos(zt),gt*Math.sin(zt),0).add(Le),Je)}Se.__curve=_e}}}}function ne(){var se=Xc(y.linkDirectionalArrowRelPos),ae=Xc(y.linkDirectionalArrowLength),he=Xc(y.nodeVal);y.arrowDataMapper.entries().forEach(function(pe){var ve=j2(pe,2),xe=ve[0],Se=ve[1];if(Se){var Be=E?xe:y.layout.getLinkPosition(y.layout.graph.getLink(xe.source,xe.target).id),De=Be[E?"source":"from"],Re=Be[E?"target":"to"];if(!(!De||!Re||!De.hasOwnProperty("x")||!Re.hasOwnProperty("x"))){var Oe=Math.cbrt(Math.max(0,he(De)||1))*y.nodeRelSize,Le=Math.cbrt(Math.max(0,he(Re)||1))*y.nodeRelSize,Je=ae(xe),$e=se(xe),_e=xe.__curve?function(gt){return xe.__curve.getPoint(gt)}:function(gt){var zt=function(Tn,Zn,Nn,di){return Zn[Tn]+(Nn[Tn]-Zn[Tn])*di||0};return{x:zt("x",De,Re,gt),y:zt("y",De,Re,gt),z:zt("z",De,Re,gt)}},st=xe.__curve?xe.__curve.getLength():Math.sqrt(["x","y","z"].map(function(gt){return Math.pow((Re[gt]||0)-(De[gt]||0),2)}).reduce(function(gt,zt){return gt+zt},0)),ct=Oe+Je+(st-Oe-Le-Je)*$e,ut=_e(ct/st),ht=_e((ct-Je)/st);["x","y","z"].forEach(function(gt){return Se.position[gt]=ht[gt]});var pt=vF(yu.Vector3,Oy(["x","y","z"].map(function(gt){return ut[gt]})));Se.parent.localToWorld(pt),Se.lookAt(pt)}}})}function ie(){var se=Xc(y.linkDirectionalParticleSpeed);y.graphData.links.forEach(function(ae){var he=y.particlesDataMapper.getObj(ae),pe=he&&he.children,ve=ae.__singleHopPhotonsObj&&ae.__singleHopPhotonsObj.children;if(!((!ve||!ve.length)&&(!pe||!pe.length))){var xe=E?ae:y.layout.getLinkPosition(y.layout.graph.getLink(ae.source,ae.target).id),Se=xe[E?"source":"from"],Be=xe[E?"target":"to"];if(!(!Se||!Be||!Se.hasOwnProperty("x")||!Be.hasOwnProperty("x"))){var De=se(ae),Re=ae.__curve?function(Le){return ae.__curve.getPoint(Le)}:function(Le){var Je=function(_e,st,ct,ut){return st[_e]+(ct[_e]-st[_e])*ut||0};return{x:Je("x",Se,Be,Le),y:Je("y",Se,Be,Le),z:Je("z",Se,Be,Le)}},Oe=[].concat(Oy(pe||[]),Oy(ve||[]));Oe.forEach(function(Le,Je){var $e=Le.parent.__linkThreeObjType==="singleHopPhotons";if(Le.hasOwnProperty("__progressRatio")||(Le.__progressRatio=$e?0:Je/pe.length),Le.__progressRatio+=De,Le.__progressRatio>=1)if(!$e)Le.__progressRatio=Le.__progressRatio%1;else{Le.parent.remove(Le),H3(Le);return}var _e=Le.__progressRatio,st=Re(_e);["x","y","z"].forEach(function(ct){return Le.position[ct]=st[ct]})})}}})}},emitParticle:function(y,E){if(E&&y.graphData.links.includes(E)){if(!E.__singleHopPhotonsObj){var z=new yu.Group;z.__linkThreeObjType="singleHopPhotons",E.__singleHopPhotonsObj=z,y.graphScene.add(z)}var ne=Xc(y.linkDirectionalParticleWidth),ie=Math.ceil(ne(E)*10)/10/2,se=y.linkDirectionalParticleResolution,ae=new yu.SphereGeometry(ie,se,se),he=Xc(y.linkColor),pe=Xc(y.linkDirectionalParticleColor),ve=pe(E)||he(E)||"#f0f0f0",xe=new yu.Color(X2(ve)),Se=y.linkOpacity*3,Be=new yu.MeshLambertMaterial({color:xe,transparent:!0,opacity:Se});E.__singleHopPhotonsObj.add(new yu.Mesh(ae,Be))}return this},getGraphBbox:function(y){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){return!0};if(!y.initialised)return null;var z=function ne(ie){var se=[];if(ie.geometry){ie.geometry.computeBoundingBox();var ae=new yu.Box3;ae.copy(ie.geometry.boundingBox).applyMatrix4(ie.matrixWorld),se.push(ae)}return se.concat.apply(se,Oy((ie.children||[]).filter(function(he){return!he.hasOwnProperty("__graphObjType")||he.__graphObjType==="node"&&E(he.__data)}).map(ne)))}(y.graphScene);return z.length?Object.assign.apply(Object,Oy(["x","y","z"].map(function(ne){return aB({},ne,[zH(z,function(ie){return ie.min[ne]}),UH(z,function(ie){return ie.max[ne]})])}))):null}},stateInit:function(){return{d3ForceLayout:kN().force("link",RN()).force("charge",jN()).force("center",GN()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(y,E){E.graphScene=y,E.nodeDataMapper=new G2(y,{objBindAttr:"__threeObj"}),E.linkDataMapper=new G2(y,{objBindAttr:"__lineObj"}),E.arrowDataMapper=new G2(y,{objBindAttr:"__arrowObj"}),E.particlesDataMapper=new G2(y,{objBindAttr:"__photonsObj"})},update:function(y,E){var z=function(ei){return ei.some(function(hr){return E.hasOwnProperty(hr)})};if(y.engineRunning=!1,typeof y.onUpdate=="function"&&y.onUpdate(),y.nodeAutoColorBy!==null&&z(["nodeAutoColorBy","graphData","nodeColor"])&&EF(y.graphData.nodes,Xc(y.nodeAutoColorBy),y.nodeColor),y.linkAutoColorBy!==null&&z(["linkAutoColorBy","graphData","linkColor"])&&EF(y.graphData.links,Xc(y.linkAutoColorBy),y.linkColor),y._flushObjects||z(["graphData","nodeThreeObject","nodeThreeObjectExtend","nodeVal","nodeColor","nodeVisibility","nodeRelSize","nodeResolution","nodeOpacity"])){var ne=Xc(y.nodeThreeObject),ie=Xc(y.nodeThreeObjectExtend),se=Xc(y.nodeVal),ae=Xc(y.nodeColor),he=Xc(y.nodeVisibility),pe={},ve={};(y._flushObjects||z(["nodeThreeObject","nodeThreeObjectExtend"]))&&y.nodeDataMapper.clear(),y.nodeDataMapper.onCreateObj(function(jn){var ei=ne(jn),hr=ie(jn);ei&&y.nodeThreeObject===ei&&(ei=ei.clone());var _n;return ei&&!hr?_n=ei:(_n=new yu.Mesh,_n.__graphDefaultObj=!0,ei&&hr&&_n.add(ei)),_n.__graphObjType="node",_n}).onUpdateObj(function(jn,ei){if(jn.__graphDefaultObj){var hr=se(ei)||1,_n=Math.cbrt(hr)*y.nodeRelSize,qi=y.nodeResolution;(!jn.geometry.type.match(/^Sphere(Buffer)?Geometry$/)||jn.geometry.parameters.radius!==_n||jn.geometry.parameters.widthSegments!==qi)&&(pe.hasOwnProperty(hr)||(pe[hr]=new yu.SphereGeometry(_n,qi,qi)),jn.geometry.dispose(),jn.geometry=pe[hr]);var Sr=ae(ei),Pr=new yu.Color(X2(Sr||"#ffffaa")),Go=y.nodeOpacity*j3(Sr);(jn.material.type!=="MeshLambertMaterial"||!jn.material.color.equals(Pr)||jn.material.opacity!==Go)&&(ve.hasOwnProperty(Sr)||(ve[Sr]=new yu.MeshLambertMaterial({color:Pr,transparent:!0,opacity:Go})),jn.material.dispose(),jn.material=ve[Sr])}}).digest(y.graphData.nodes.filter(he))}if(y._flushObjects||z(["graphData","linkThreeObject","linkThreeObjectExtend","linkMaterial","linkColor","linkWidth","linkVisibility","linkResolution","linkOpacity","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowResolution","linkDirectionalParticles","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleResolution"])){var xe=Xc(y.linkThreeObject),Se=Xc(y.linkThreeObjectExtend),Be=Xc(y.linkMaterial),De=Xc(y.linkVisibility),Re=Xc(y.linkColor),Oe=Xc(y.linkWidth),Le={},Je={},$e={},_e=y.graphData.links.filter(De);if((y._flushObjects||z(["linkThreeObject","linkThreeObjectExtend","linkWidth"]))&&y.linkDataMapper.clear(),y.linkDataMapper.onRemoveObj(function(jn){var ei=jn.__data&&jn.__data.__singleHopPhotonsObj;ei&&(ei.parent.remove(ei),H3(ei),delete jn.__data.__singleHopPhotonsObj)}).onCreateObj(function(jn){var ei=xe(jn),hr=Se(jn);ei&&y.linkThreeObject===ei&&(ei=ei.clone());var _n;if(!ei||hr){var qi=!!Oe(jn);if(qi)_n=new yu.Mesh;else{var Sr=new yu.BufferGeometry;Sr[G3]("position",new yu.BufferAttribute(new Float32Array(2*3),3)),_n=new yu.Line(Sr)}}var Pr;return ei?hr?(Pr=new yu.Group,Pr.__graphDefaultObj=!0,Pr.add(_n),Pr.add(ei)):Pr=ei:(Pr=_n,Pr.__graphDefaultObj=!0),Pr.renderOrder=10,Pr.__graphObjType="link",Pr}).onUpdateObj(function(jn,ei){if(jn.__graphDefaultObj){var hr=jn.children.length?jn.children[0]:jn,_n=Math.ceil(Oe(ei)*10)/10,qi=!!_n;if(qi){var Sr=_n/2,Pr=y.linkResolution;if(!hr.geometry.type.match(/^Cylinder(Buffer)?Geometry$/)||hr.geometry.parameters.radiusTop!==Sr||hr.geometry.parameters.radialSegments!==Pr){if(!Le.hasOwnProperty(_n)){var Go=new yu.CylinderGeometry(Sr,Sr,1,Pr,1,!1);Go[uB](new yu.Matrix4().makeTranslation(0,1/2,0)),Go[uB](new yu.Matrix4().makeRotationX(Math.PI/2)),Le[_n]=Go}hr.geometry.dispose(),hr.geometry=Le[_n]}}var _o=Be(ei);if(_o)hr.material=_o;else{var ta=Re(ei),un=new yu.Color(X2(ta||"#f0f0f0")),so=y.linkOpacity*j3(ta),Kr=qi?"MeshLambertMaterial":"LineBasicMaterial";if(hr.material.type!==Kr||!hr.material.color.equals(un)||hr.material.opacity!==so){var kr=qi?Je:$e;kr.hasOwnProperty(ta)||(kr[ta]=new yu[Kr]({color:un,transparent:so<1,opacity:so,depthWrite:so>=1})),hr.material.dispose(),hr.material=kr[ta]}}}}).digest(_e),y.linkDirectionalArrowLength||E.hasOwnProperty("linkDirectionalArrowLength")){var st=Xc(y.linkDirectionalArrowLength),ct=Xc(y.linkDirectionalArrowColor);y.arrowDataMapper.onCreateObj(function(){var jn=new yu.Mesh(void 0,new yu.MeshLambertMaterial({transparent:!0}));return jn.__linkThreeObjType="arrow",jn}).onUpdateObj(function(jn,ei){var hr=st(ei),_n=y.linkDirectionalArrowResolution;if(!jn.geometry.type.match(/^Cone(Buffer)?Geometry$/)||jn.geometry.parameters.height!==hr||jn.geometry.parameters.radialSegments!==_n){var qi=new yu.ConeGeometry(hr*.25,hr,_n);qi.translate(0,hr/2,0),qi.rotateX(Math.PI/2),jn.geometry.dispose(),jn.geometry=qi}var Sr=ct(ei)||Re(ei)||"#f0f0f0";jn.material.color=new yu.Color(X2(Sr)),jn.material.opacity=y.linkOpacity*3*j3(Sr)}).digest(_e.filter(st))}if(y.linkDirectionalParticles||E.hasOwnProperty("linkDirectionalParticles")){var ut=Xc(y.linkDirectionalParticles),ht=Xc(y.linkDirectionalParticleWidth),pt=Xc(y.linkDirectionalParticleColor),gt={},zt={};y.particlesDataMapper.onCreateObj(function(){var jn=new yu.Group;return jn.__linkThreeObjType="photons",jn.__photonDataMapper=new G2(jn),jn}).onUpdateObj(function(jn,ei){var hr=Math.round(Math.abs(ut(ei))),_n=!!jn.children.length&&jn.children[0],qi=Math.ceil(ht(ei)*10)/10/2,Sr=y.linkDirectionalParticleResolution,Pr;_n&&_n.geometry.parameters.radius===qi&&_n.geometry.parameters.widthSegments===Sr?Pr=_n.geometry:(zt.hasOwnProperty(qi)||(zt[qi]=new yu.SphereGeometry(qi,Sr,Sr)),Pr=zt[qi],_n&&_n.geometry.dispose());var Go=pt(ei)||Re(ei)||"#f0f0f0",_o=new yu.Color(X2(Go)),ta=y.linkOpacity*3,un;_n&&_n.material.color.equals(_o)&&_n.material.opacity===ta?un=_n.material:(gt.hasOwnProperty(Go)||(gt[Go]=new yu.MeshLambertMaterial({color:_o,transparent:!0,opacity:ta})),un=gt[Go],_n&&_n.material.dispose()),jn.__photonDataMapper.id(function(so){return so.idx}).onCreateObj(function(){return new yu.Mesh(Pr,un)}).onUpdateObj(function(so){so.geometry=Pr,so.material=un}).digest(Oy(new Array(hr)).map(function(so,Kr){return{idx:Kr}}))}).digest(_e.filter(ut))}}if(y._flushObjects=!1,z(["graphData","nodeId","linkSource","linkTarget","numDimensions","forceEngine","dagMode","dagNodeFilter","dagLevelDistance"])){y.engineRunning=!1,y.graphData.links.forEach(function(jn){jn.source=jn[y.linkSource],jn.target=jn[y.linkTarget]});var cn=y.forceEngine!=="ngraph",Tn;if(cn){(Tn=y.d3ForceLayout).stop().alpha(1).numDimensions(y.numDimensions).nodes(y.graphData.nodes);var Zn=y.d3ForceLayout.force("link");Zn&&Zn.id(function(jn){return jn[y.nodeId]}).links(y.graphData.links);var Nn=y.dagMode&&jV(y.graphData,function(jn){return jn[y.nodeId]},{nodeFilter:y.dagNodeFilter,onLoopError:y.onDagError||void 0}),di=Math.max.apply(Math,Oy(Object.values(Nn||[]))),yi=y.dagLevelDistance||y.graphData.nodes.length/(di||1)*GV*(["radialin","radialout"].indexOf(y.dagMode)!==-1?.7:1);if(["lr","rl","td","bu","zin","zout"].includes(E.dagMode)){var bn=["lr","rl"].includes(E.dagMode)?"fx":["td","bu"].includes(E.dagMode)?"fy":"fz";y.graphData.nodes.filter(y.dagNodeFilter).forEach(function(jn){return delete jn[bn]})}if(["lr","rl","td","bu","zin","zout"].includes(y.dagMode)){var Sn=["rl","td","zout"].includes(y.dagMode),ki=function(ei){return(Nn[ei[y.nodeId]]-di/2)*yi*(Sn?-1:1)},ti=["lr","rl"].includes(y.dagMode)?"fx":["td","bu"].includes(y.dagMode)?"fy":"fz";y.graphData.nodes.filter(y.dagNodeFilter).forEach(function(jn){return jn[ti]=ki(jn)})}y.d3ForceLayout.force("dagRadial",["radialin","radialout"].indexOf(y.dagMode)!==-1?VU(function(jn){var ei=Nn[jn[y.nodeId]]||-1;return(y.dagMode==="radialin"?di-ei:ei)*yi}).strength(function(jn){return y.dagNodeFilter(jn)?1:0}):null)}else{var fn=bF.graph();y.graphData.nodes.forEach(function(jn){fn.addNode(jn[y.nodeId])}),y.graphData.links.forEach(function(jn){fn.addLink(jn.source,jn.target)}),Tn=bF.forcelayout(fn,RV({dimensions:y.numDimensions},y.ngraphPhysics)),Tn.graph=fn}for(var Bi=0;Bi<y.warmupTicks&&!(cn&&y.d3AlphaMin>0&&y.d3ForceLayout.alpha()<y.d3AlphaMin);Bi++)Tn[cn?"tick":"step"]();y.layout=Tn,this.resetCountdown()}y.engineRunning=!0,y.onFinishUpdate()}});function WV(ee){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Object,E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,z=function(ne){function ie(){var se;pF(this,ie);for(var ae=arguments.length,he=new Array(ae),pe=0;pe<ae;pe++)he[pe]=arguments[pe];return se=fF(this,ie,[].concat(he)),se.__kapsuleInstance=vF(ee,[].concat(Oy(E?[se]:[]),he)),se}return AF(ie,ne),yF(ie)}(y);return Object.keys(ee()).forEach(function(ne){return z.prototype[ne]=function(){var ie,se=(ie=this.__kapsuleInstance)[ne].apply(ie,arguments);return se===this.__kapsuleInstance?this:se}}),z}var QV=window.THREE?window.THREE:{Group:PA},MF=WV(XV,QV.Group,!0);function BF(){let ee=null,y=!1,E=null,z=null;function ne(ie,se){E(ie,se),z=ee.requestAnimationFrame(ne)}return{start:function(){y!==!0&&E!==null&&(z=ee.requestAnimationFrame(ne),y=!0)},stop:function(){ee.cancelAnimationFrame(z),y=!1},setAnimationLoop:function(ie){E=ie},setContext:function(ie){ee=ie}}}function ZV(ee){const y=new WeakMap;function E(ae,he){const pe=ae.array,ve=ae.usage,xe=pe.byteLength,Se=ee.createBuffer();ee.bindBuffer(he,Se),ee.bufferData(he,pe,ve),ae.onUploadCallback();let Be;if(pe instanceof Float32Array)Be=ee.FLOAT;else if(pe instanceof Uint16Array)ae.isFloat16BufferAttribute?Be=ee.HALF_FLOAT:Be=ee.UNSIGNED_SHORT;else if(pe instanceof Int16Array)Be=ee.SHORT;else if(pe instanceof Uint32Array)Be=ee.UNSIGNED_INT;else if(pe instanceof Int32Array)Be=ee.INT;else if(pe instanceof Int8Array)Be=ee.BYTE;else if(pe instanceof Uint8Array)Be=ee.UNSIGNED_BYTE;else if(pe instanceof Uint8ClampedArray)Be=ee.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+pe);return{buffer:Se,type:Be,bytesPerElement:pe.BYTES_PER_ELEMENT,version:ae.version,size:xe}}function z(ae,he,pe){const ve=he.array,xe=he.updateRanges;if(ee.bindBuffer(pe,ae),xe.length===0)ee.bufferSubData(pe,0,ve);else{xe.sort((Be,De)=>Be.start-De.start);let Se=0;for(let Be=1;Be<xe.length;Be++){const De=xe[Se],Re=xe[Be];Re.start<=De.start+De.count+1?De.count=Math.max(De.count,Re.start+Re.count-De.start):(++Se,xe[Se]=Re)}xe.length=Se+1;for(let Be=0,De=xe.length;Be<De;Be++){const Re=xe[Be];ee.bufferSubData(pe,Re.start*ve.BYTES_PER_ELEMENT,ve,Re.start,Re.count)}he.clearUpdateRanges()}he.onUploadCallback()}function ne(ae){return ae.isInterleavedBufferAttribute&&(ae=ae.data),y.get(ae)}function ie(ae){ae.isInterleavedBufferAttribute&&(ae=ae.data);const he=y.get(ae);he&&(ee.deleteBuffer(he.buffer),y.delete(ae))}function se(ae,he){if(ae.isInterleavedBufferAttribute&&(ae=ae.data),ae.isGLBufferAttribute){const ve=y.get(ae);(!ve||ve.version<ae.version)&&y.set(ae,{buffer:ae.buffer,type:ae.type,bytesPerElement:ae.elementSize,version:ae.version});return}const pe=y.get(ae);if(pe===void 0)y.set(ae,E(ae,he));else if(pe.version<ae.version){if(pe.size!==ae.array.byteLength)throw new Error("THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.");z(pe.buffer,ae,he),pe.version=ae.version}}return{get:ne,remove:ie,update:se}}var YV=`#ifdef USE_ALPHAHASH
|
|
if ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;
|
|
#endif`,KV=`#ifdef USE_ALPHAHASH
|
|
const float ALPHA_HASH_SCALE = 0.05;
|
|
float hash2D( vec2 value ) {
|
|
return fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );
|
|
}
|
|
float hash3D( vec3 value ) {
|
|
return hash2D( vec2( hash2D( value.xy ), value.z ) );
|
|
}
|
|
float getAlphaHashThreshold( vec3 position ) {
|
|
float maxDeriv = max(
|
|
length( dFdx( position.xyz ) ),
|
|
length( dFdy( position.xyz ) )
|
|
);
|
|
float pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );
|
|
vec2 pixScales = vec2(
|
|
exp2( floor( log2( pixScale ) ) ),
|
|
exp2( ceil( log2( pixScale ) ) )
|
|
);
|
|
vec2 alpha = vec2(
|
|
hash3D( floor( pixScales.x * position.xyz ) ),
|
|
hash3D( floor( pixScales.y * position.xyz ) )
|
|
);
|
|
float lerpFactor = fract( log2( pixScale ) );
|
|
float x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;
|
|
float a = min( lerpFactor, 1.0 - lerpFactor );
|
|
vec3 cases = vec3(
|
|
x * x / ( 2.0 * a * ( 1.0 - a ) ),
|
|
( x - 0.5 * a ) / ( 1.0 - a ),
|
|
1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )
|
|
);
|
|
float threshold = ( x < ( 1.0 - a ) )
|
|
? ( ( x < a ) ? cases.x : cases.y )
|
|
: cases.z;
|
|
return clamp( threshold , 1.0e-6, 1.0 );
|
|
}
|
|
#endif`,JV=`#ifdef USE_ALPHAMAP
|
|
diffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;
|
|
#endif`,qV=`#ifdef USE_ALPHAMAP
|
|
uniform sampler2D alphaMap;
|
|
#endif`,_V=`#ifdef USE_ALPHATEST
|
|
#ifdef ALPHA_TO_COVERAGE
|
|
diffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );
|
|
if ( diffuseColor.a == 0.0 ) discard;
|
|
#else
|
|
if ( diffuseColor.a < alphaTest ) discard;
|
|
#endif
|
|
#endif`,$V=`#ifdef USE_ALPHATEST
|
|
uniform float alphaTest;
|
|
#endif`,ej=`#ifdef USE_AOMAP
|
|
float ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;
|
|
reflectedLight.indirectDiffuse *= ambientOcclusion;
|
|
#if defined( USE_CLEARCOAT )
|
|
clearcoatSpecularIndirect *= ambientOcclusion;
|
|
#endif
|
|
#if defined( USE_SHEEN )
|
|
sheenSpecularIndirect *= ambientOcclusion;
|
|
#endif
|
|
#if defined( USE_ENVMAP ) && defined( STANDARD )
|
|
float dotNV = saturate( dot( geometryNormal, geometryViewDir ) );
|
|
reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );
|
|
#endif
|
|
#endif`,tj=`#ifdef USE_AOMAP
|
|
uniform sampler2D aoMap;
|
|
uniform float aoMapIntensity;
|
|
#endif`,nj=`#ifdef USE_BATCHING
|
|
#if ! defined( GL_ANGLE_multi_draw )
|
|
#define gl_DrawID _gl_DrawID
|
|
uniform int _gl_DrawID;
|
|
#endif
|
|
uniform highp sampler2D batchingTexture;
|
|
uniform highp usampler2D batchingIdTexture;
|
|
mat4 getBatchingMatrix( const in float i ) {
|
|
int size = textureSize( batchingTexture, 0 ).x;
|
|
int j = int( i ) * 4;
|
|
int x = j % size;
|
|
int y = j / size;
|
|
vec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );
|
|
vec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );
|
|
vec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );
|
|
vec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );
|
|
return mat4( v1, v2, v3, v4 );
|
|
}
|
|
float getIndirectIndex( const in int i ) {
|
|
int size = textureSize( batchingIdTexture, 0 ).x;
|
|
int x = i % size;
|
|
int y = i / size;
|
|
return float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );
|
|
}
|
|
#endif
|
|
#ifdef USE_BATCHING_COLOR
|
|
uniform sampler2D batchingColorTexture;
|
|
vec3 getBatchingColor( const in float i ) {
|
|
int size = textureSize( batchingColorTexture, 0 ).x;
|
|
int j = int( i );
|
|
int x = j % size;
|
|
int y = j / size;
|
|
return texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;
|
|
}
|
|
#endif`,ij=`#ifdef USE_BATCHING
|
|
mat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );
|
|
#endif`,rj=`vec3 transformed = vec3( position );
|
|
#ifdef USE_ALPHAHASH
|
|
vPosition = vec3( position );
|
|
#endif`,oj=`vec3 objectNormal = vec3( normal );
|
|
#ifdef USE_TANGENT
|
|
vec3 objectTangent = vec3( tangent.xyz );
|
|
#endif`,sj=`float G_BlinnPhong_Implicit( ) {
|
|
return 0.25;
|
|
}
|
|
float D_BlinnPhong( const in float shininess, const in float dotNH ) {
|
|
return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );
|
|
}
|
|
vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {
|
|
vec3 halfDir = normalize( lightDir + viewDir );
|
|
float dotNH = saturate( dot( normal, halfDir ) );
|
|
float dotVH = saturate( dot( viewDir, halfDir ) );
|
|
vec3 F = F_Schlick( specularColor, 1.0, dotVH );
|
|
float G = G_BlinnPhong_Implicit( );
|
|
float D = D_BlinnPhong( shininess, dotNH );
|
|
return F * ( G * D );
|
|
} // validated`,aj=`#ifdef USE_IRIDESCENCE
|
|
const mat3 XYZ_TO_REC709 = mat3(
|
|
3.2404542, -0.9692660, 0.0556434,
|
|
-1.5371385, 1.8760108, -0.2040259,
|
|
-0.4985314, 0.0415560, 1.0572252
|
|
);
|
|
vec3 Fresnel0ToIor( vec3 fresnel0 ) {
|
|
vec3 sqrtF0 = sqrt( fresnel0 );
|
|
return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );
|
|
}
|
|
vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {
|
|
return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );
|
|
}
|
|
float IorToFresnel0( float transmittedIor, float incidentIor ) {
|
|
return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));
|
|
}
|
|
vec3 evalSensitivity( float OPD, vec3 shift ) {
|
|
float phase = 2.0 * PI * OPD * 1.0e-9;
|
|
vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );
|
|
vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );
|
|
vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );
|
|
vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );
|
|
xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );
|
|
xyz /= 1.0685e-7;
|
|
vec3 rgb = XYZ_TO_REC709 * xyz;
|
|
return rgb;
|
|
}
|
|
vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {
|
|
vec3 I;
|
|
float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );
|
|
float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );
|
|
float cosTheta2Sq = 1.0 - sinTheta2Sq;
|
|
if ( cosTheta2Sq < 0.0 ) {
|
|
return vec3( 1.0 );
|
|
}
|
|
float cosTheta2 = sqrt( cosTheta2Sq );
|
|
float R0 = IorToFresnel0( iridescenceIOR, outsideIOR );
|
|
float R12 = F_Schlick( R0, 1.0, cosTheta1 );
|
|
float T121 = 1.0 - R12;
|
|
float phi12 = 0.0;
|
|
if ( iridescenceIOR < outsideIOR ) phi12 = PI;
|
|
float phi21 = PI - phi12;
|
|
vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );
|
|
vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );
|
|
vec3 phi23 = vec3( 0.0 );
|
|
if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;
|
|
if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;
|
|
if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;
|
|
float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;
|
|
vec3 phi = vec3( phi21 ) + phi23;
|
|
vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );
|
|
vec3 r123 = sqrt( R123 );
|
|
vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );
|
|
vec3 C0 = R12 + Rs;
|
|
I = C0;
|
|
vec3 Cm = Rs - T121;
|
|
for ( int m = 1; m <= 2; ++ m ) {
|
|
Cm *= r123;
|
|
vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );
|
|
I += Cm * Sm;
|
|
}
|
|
return max( I, vec3( 0.0 ) );
|
|
}
|
|
#endif`,lj=`#ifdef USE_BUMPMAP
|
|
uniform sampler2D bumpMap;
|
|
uniform float bumpScale;
|
|
vec2 dHdxy_fwd() {
|
|
vec2 dSTdx = dFdx( vBumpMapUv );
|
|
vec2 dSTdy = dFdy( vBumpMapUv );
|
|
float Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;
|
|
float dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;
|
|
float dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;
|
|
return vec2( dBx, dBy );
|
|
}
|
|
vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {
|
|
vec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );
|
|
vec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );
|
|
vec3 vN = surf_norm;
|
|
vec3 R1 = cross( vSigmaY, vN );
|
|
vec3 R2 = cross( vN, vSigmaX );
|
|
float fDet = dot( vSigmaX, R1 ) * faceDirection;
|
|
vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );
|
|
return normalize( abs( fDet ) * surf_norm - vGrad );
|
|
}
|
|
#endif`,uj=`#if NUM_CLIPPING_PLANES > 0
|
|
vec4 plane;
|
|
#ifdef ALPHA_TO_COVERAGE
|
|
float distanceToPlane, distanceGradient;
|
|
float clipOpacity = 1.0;
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
|
|
plane = clippingPlanes[ i ];
|
|
distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
|
|
distanceGradient = fwidth( distanceToPlane ) / 2.0;
|
|
clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
|
|
if ( clipOpacity == 0.0 ) discard;
|
|
}
|
|
#pragma unroll_loop_end
|
|
#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
|
|
float unionClipOpacity = 1.0;
|
|
#pragma unroll_loop_start
|
|
for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
|
|
plane = clippingPlanes[ i ];
|
|
distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
|
|
distanceGradient = fwidth( distanceToPlane ) / 2.0;
|
|
unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
|
|
}
|
|
#pragma unroll_loop_end
|
|
clipOpacity *= 1.0 - unionClipOpacity;
|
|
#endif
|
|
diffuseColor.a *= clipOpacity;
|
|
if ( diffuseColor.a == 0.0 ) discard;
|
|
#else
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
|
|
plane = clippingPlanes[ i ];
|
|
if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;
|
|
}
|
|
#pragma unroll_loop_end
|
|
#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
|
|
bool clipped = true;
|
|
#pragma unroll_loop_start
|
|
for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
|
|
plane = clippingPlanes[ i ];
|
|
clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;
|
|
}
|
|
#pragma unroll_loop_end
|
|
if ( clipped ) discard;
|
|
#endif
|
|
#endif
|
|
#endif`,cj=`#if NUM_CLIPPING_PLANES > 0
|
|
varying vec3 vClipPosition;
|
|
uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];
|
|
#endif`,hj=`#if NUM_CLIPPING_PLANES > 0
|
|
varying vec3 vClipPosition;
|
|
#endif`,dj=`#if NUM_CLIPPING_PLANES > 0
|
|
vClipPosition = - mvPosition.xyz;
|
|
#endif`,fj=`#if defined( USE_COLOR_ALPHA )
|
|
diffuseColor *= vColor;
|
|
#elif defined( USE_COLOR )
|
|
diffuseColor.rgb *= vColor;
|
|
#endif`,pj=`#if defined( USE_COLOR_ALPHA )
|
|
varying vec4 vColor;
|
|
#elif defined( USE_COLOR )
|
|
varying vec3 vColor;
|
|
#endif`,gj=`#if defined( USE_COLOR_ALPHA )
|
|
varying vec4 vColor;
|
|
#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )
|
|
varying vec3 vColor;
|
|
#endif`,mj=`#if defined( USE_COLOR_ALPHA )
|
|
vColor = vec4( 1.0 );
|
|
#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )
|
|
vColor = vec3( 1.0 );
|
|
#endif
|
|
#ifdef USE_COLOR
|
|
vColor *= color;
|
|
#endif
|
|
#ifdef USE_INSTANCING_COLOR
|
|
vColor.xyz *= instanceColor.xyz;
|
|
#endif
|
|
#ifdef USE_BATCHING_COLOR
|
|
vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );
|
|
vColor.xyz *= batchingColor.xyz;
|
|
#endif`,vj=`#define PI 3.141592653589793
|
|
#define PI2 6.283185307179586
|
|
#define PI_HALF 1.5707963267948966
|
|
#define RECIPROCAL_PI 0.3183098861837907
|
|
#define RECIPROCAL_PI2 0.15915494309189535
|
|
#define EPSILON 1e-6
|
|
#ifndef saturate
|
|
#define saturate( a ) clamp( a, 0.0, 1.0 )
|
|
#endif
|
|
#define whiteComplement( a ) ( 1.0 - saturate( a ) )
|
|
float pow2( const in float x ) { return x*x; }
|
|
vec3 pow2( const in vec3 x ) { return x*x; }
|
|
float pow3( const in float x ) { return x*x*x; }
|
|
float pow4( const in float x ) { float x2 = x*x; return x2*x2; }
|
|
float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }
|
|
float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }
|
|
highp float rand( const in vec2 uv ) {
|
|
const highp float a = 12.9898, b = 78.233, c = 43758.5453;
|
|
highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );
|
|
return fract( sin( sn ) * c );
|
|
}
|
|
#ifdef HIGH_PRECISION
|
|
float precisionSafeLength( vec3 v ) { return length( v ); }
|
|
#else
|
|
float precisionSafeLength( vec3 v ) {
|
|
float maxComponent = max3( abs( v ) );
|
|
return length( v / maxComponent ) * maxComponent;
|
|
}
|
|
#endif
|
|
struct IncidentLight {
|
|
vec3 color;
|
|
vec3 direction;
|
|
bool visible;
|
|
};
|
|
struct ReflectedLight {
|
|
vec3 directDiffuse;
|
|
vec3 directSpecular;
|
|
vec3 indirectDiffuse;
|
|
vec3 indirectSpecular;
|
|
};
|
|
#ifdef USE_ALPHAHASH
|
|
varying vec3 vPosition;
|
|
#endif
|
|
vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
|
|
return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
|
|
}
|
|
vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {
|
|
return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );
|
|
}
|
|
mat3 transposeMat3( const in mat3 m ) {
|
|
mat3 tmp;
|
|
tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );
|
|
tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );
|
|
tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );
|
|
return tmp;
|
|
}
|
|
bool isPerspectiveMatrix( mat4 m ) {
|
|
return m[ 2 ][ 3 ] == - 1.0;
|
|
}
|
|
vec2 equirectUv( in vec3 dir ) {
|
|
float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;
|
|
float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
|
|
return vec2( u, v );
|
|
}
|
|
vec3 BRDF_Lambert( const in vec3 diffuseColor ) {
|
|
return RECIPROCAL_PI * diffuseColor;
|
|
}
|
|
vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {
|
|
float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
|
|
return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
|
|
}
|
|
float F_Schlick( const in float f0, const in float f90, const in float dotVH ) {
|
|
float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
|
|
return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
|
|
} // validated`,yj=`#ifdef ENVMAP_TYPE_CUBE_UV
|
|
#define cubeUV_minMipLevel 4.0
|
|
#define cubeUV_minTileSize 16.0
|
|
float getFace( vec3 direction ) {
|
|
vec3 absDirection = abs( direction );
|
|
float face = - 1.0;
|
|
if ( absDirection.x > absDirection.z ) {
|
|
if ( absDirection.x > absDirection.y )
|
|
face = direction.x > 0.0 ? 0.0 : 3.0;
|
|
else
|
|
face = direction.y > 0.0 ? 1.0 : 4.0;
|
|
} else {
|
|
if ( absDirection.z > absDirection.y )
|
|
face = direction.z > 0.0 ? 2.0 : 5.0;
|
|
else
|
|
face = direction.y > 0.0 ? 1.0 : 4.0;
|
|
}
|
|
return face;
|
|
}
|
|
vec2 getUV( vec3 direction, float face ) {
|
|
vec2 uv;
|
|
if ( face == 0.0 ) {
|
|
uv = vec2( direction.z, direction.y ) / abs( direction.x );
|
|
} else if ( face == 1.0 ) {
|
|
uv = vec2( - direction.x, - direction.z ) / abs( direction.y );
|
|
} else if ( face == 2.0 ) {
|
|
uv = vec2( - direction.x, direction.y ) / abs( direction.z );
|
|
} else if ( face == 3.0 ) {
|
|
uv = vec2( - direction.z, direction.y ) / abs( direction.x );
|
|
} else if ( face == 4.0 ) {
|
|
uv = vec2( - direction.x, direction.z ) / abs( direction.y );
|
|
} else {
|
|
uv = vec2( direction.x, direction.y ) / abs( direction.z );
|
|
}
|
|
return 0.5 * ( uv + 1.0 );
|
|
}
|
|
vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {
|
|
float face = getFace( direction );
|
|
float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );
|
|
mipInt = max( mipInt, cubeUV_minMipLevel );
|
|
float faceSize = exp2( mipInt );
|
|
highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;
|
|
if ( face > 2.0 ) {
|
|
uv.y += faceSize;
|
|
face -= 3.0;
|
|
}
|
|
uv.x += face * faceSize;
|
|
uv.x += filterInt * 3.0 * cubeUV_minTileSize;
|
|
uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );
|
|
uv.x *= CUBEUV_TEXEL_WIDTH;
|
|
uv.y *= CUBEUV_TEXEL_HEIGHT;
|
|
#ifdef texture2DGradEXT
|
|
return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;
|
|
#else
|
|
return texture2D( envMap, uv ).rgb;
|
|
#endif
|
|
}
|
|
#define cubeUV_r0 1.0
|
|
#define cubeUV_m0 - 2.0
|
|
#define cubeUV_r1 0.8
|
|
#define cubeUV_m1 - 1.0
|
|
#define cubeUV_r4 0.4
|
|
#define cubeUV_m4 2.0
|
|
#define cubeUV_r5 0.305
|
|
#define cubeUV_m5 3.0
|
|
#define cubeUV_r6 0.21
|
|
#define cubeUV_m6 4.0
|
|
float roughnessToMip( float roughness ) {
|
|
float mip = 0.0;
|
|
if ( roughness >= cubeUV_r1 ) {
|
|
mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;
|
|
} else if ( roughness >= cubeUV_r4 ) {
|
|
mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;
|
|
} else if ( roughness >= cubeUV_r5 ) {
|
|
mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;
|
|
} else if ( roughness >= cubeUV_r6 ) {
|
|
mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;
|
|
} else {
|
|
mip = - 2.0 * log2( 1.16 * roughness ); }
|
|
return mip;
|
|
}
|
|
vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {
|
|
float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );
|
|
float mipF = fract( mip );
|
|
float mipInt = floor( mip );
|
|
vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );
|
|
if ( mipF == 0.0 ) {
|
|
return vec4( color0, 1.0 );
|
|
} else {
|
|
vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );
|
|
return vec4( mix( color0, color1, mipF ), 1.0 );
|
|
}
|
|
}
|
|
#endif`,Aj=`vec3 transformedNormal = objectNormal;
|
|
#ifdef USE_TANGENT
|
|
vec3 transformedTangent = objectTangent;
|
|
#endif
|
|
#ifdef USE_BATCHING
|
|
mat3 bm = mat3( batchingMatrix );
|
|
transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );
|
|
transformedNormal = bm * transformedNormal;
|
|
#ifdef USE_TANGENT
|
|
transformedTangent = bm * transformedTangent;
|
|
#endif
|
|
#endif
|
|
#ifdef USE_INSTANCING
|
|
mat3 im = mat3( instanceMatrix );
|
|
transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );
|
|
transformedNormal = im * transformedNormal;
|
|
#ifdef USE_TANGENT
|
|
transformedTangent = im * transformedTangent;
|
|
#endif
|
|
#endif
|
|
transformedNormal = normalMatrix * transformedNormal;
|
|
#ifdef FLIP_SIDED
|
|
transformedNormal = - transformedNormal;
|
|
#endif
|
|
#ifdef USE_TANGENT
|
|
transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;
|
|
#ifdef FLIP_SIDED
|
|
transformedTangent = - transformedTangent;
|
|
#endif
|
|
#endif`,xj=`#ifdef USE_DISPLACEMENTMAP
|
|
uniform sampler2D displacementMap;
|
|
uniform float displacementScale;
|
|
uniform float displacementBias;
|
|
#endif`,wj=`#ifdef USE_DISPLACEMENTMAP
|
|
transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );
|
|
#endif`,Sj=`#ifdef USE_EMISSIVEMAP
|
|
vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );
|
|
#ifdef DECODE_VIDEO_TEXTURE_EMISSIVE
|
|
emissiveColor = sRGBTransferEOTF( emissiveColor );
|
|
#endif
|
|
totalEmissiveRadiance *= emissiveColor.rgb;
|
|
#endif`,Pj=`#ifdef USE_EMISSIVEMAP
|
|
uniform sampler2D emissiveMap;
|
|
#endif`,Cj="gl_FragColor = linearToOutputTexel( gl_FragColor );",Ej=`vec4 LinearTransferOETF( in vec4 value ) {
|
|
return value;
|
|
}
|
|
vec4 sRGBTransferEOTF( in vec4 value ) {
|
|
return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );
|
|
}
|
|
vec4 sRGBTransferOETF( in vec4 value ) {
|
|
return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );
|
|
}`,bj=`#ifdef USE_ENVMAP
|
|
#ifdef ENV_WORLDPOS
|
|
vec3 cameraToFrag;
|
|
if ( isOrthographic ) {
|
|
cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
|
|
} else {
|
|
cameraToFrag = normalize( vWorldPosition - cameraPosition );
|
|
}
|
|
vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
|
|
#ifdef ENVMAP_MODE_REFLECTION
|
|
vec3 reflectVec = reflect( cameraToFrag, worldNormal );
|
|
#else
|
|
vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );
|
|
#endif
|
|
#else
|
|
vec3 reflectVec = vReflect;
|
|
#endif
|
|
#ifdef ENVMAP_TYPE_CUBE
|
|
vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );
|
|
#else
|
|
vec4 envColor = vec4( 0.0 );
|
|
#endif
|
|
#ifdef ENVMAP_BLENDING_MULTIPLY
|
|
outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );
|
|
#elif defined( ENVMAP_BLENDING_MIX )
|
|
outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );
|
|
#elif defined( ENVMAP_BLENDING_ADD )
|
|
outgoingLight += envColor.xyz * specularStrength * reflectivity;
|
|
#endif
|
|
#endif`,Mj=`#ifdef USE_ENVMAP
|
|
uniform float envMapIntensity;
|
|
uniform float flipEnvMap;
|
|
uniform mat3 envMapRotation;
|
|
#ifdef ENVMAP_TYPE_CUBE
|
|
uniform samplerCube envMap;
|
|
#else
|
|
uniform sampler2D envMap;
|
|
#endif
|
|
|
|
#endif`,Bj=`#ifdef USE_ENVMAP
|
|
uniform float reflectivity;
|
|
#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
|
|
#define ENV_WORLDPOS
|
|
#endif
|
|
#ifdef ENV_WORLDPOS
|
|
varying vec3 vWorldPosition;
|
|
uniform float refractionRatio;
|
|
#else
|
|
varying vec3 vReflect;
|
|
#endif
|
|
#endif`,Tj=`#ifdef USE_ENVMAP
|
|
#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
|
|
#define ENV_WORLDPOS
|
|
#endif
|
|
#ifdef ENV_WORLDPOS
|
|
|
|
varying vec3 vWorldPosition;
|
|
#else
|
|
varying vec3 vReflect;
|
|
uniform float refractionRatio;
|
|
#endif
|
|
#endif`,Dj=`#ifdef USE_ENVMAP
|
|
#ifdef ENV_WORLDPOS
|
|
vWorldPosition = worldPosition.xyz;
|
|
#else
|
|
vec3 cameraToVertex;
|
|
if ( isOrthographic ) {
|
|
cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
|
|
} else {
|
|
cameraToVertex = normalize( worldPosition.xyz - cameraPosition );
|
|
}
|
|
vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
|
|
#ifdef ENVMAP_MODE_REFLECTION
|
|
vReflect = reflect( cameraToVertex, worldNormal );
|
|
#else
|
|
vReflect = refract( cameraToVertex, worldNormal, refractionRatio );
|
|
#endif
|
|
#endif
|
|
#endif`,Nj=`#ifdef USE_FOG
|
|
vFogDepth = - mvPosition.z;
|
|
#endif`,Fj=`#ifdef USE_FOG
|
|
varying float vFogDepth;
|
|
#endif`,Lj=`#ifdef USE_FOG
|
|
#ifdef FOG_EXP2
|
|
float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );
|
|
#else
|
|
float fogFactor = smoothstep( fogNear, fogFar, vFogDepth );
|
|
#endif
|
|
gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );
|
|
#endif`,Ij=`#ifdef USE_FOG
|
|
uniform vec3 fogColor;
|
|
varying float vFogDepth;
|
|
#ifdef FOG_EXP2
|
|
uniform float fogDensity;
|
|
#else
|
|
uniform float fogNear;
|
|
uniform float fogFar;
|
|
#endif
|
|
#endif`,kj=`#ifdef USE_GRADIENTMAP
|
|
uniform sampler2D gradientMap;
|
|
#endif
|
|
vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {
|
|
float dotNL = dot( normal, lightDirection );
|
|
vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );
|
|
#ifdef USE_GRADIENTMAP
|
|
return vec3( texture2D( gradientMap, coord ).r );
|
|
#else
|
|
vec2 fw = fwidth( coord ) * 0.5;
|
|
return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );
|
|
#endif
|
|
}`,Oj=`#ifdef USE_LIGHTMAP
|
|
uniform sampler2D lightMap;
|
|
uniform float lightMapIntensity;
|
|
#endif`,Rj=`LambertMaterial material;
|
|
material.diffuseColor = diffuseColor.rgb;
|
|
material.specularStrength = specularStrength;`,zj=`varying vec3 vViewPosition;
|
|
struct LambertMaterial {
|
|
vec3 diffuseColor;
|
|
float specularStrength;
|
|
};
|
|
void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
|
|
float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
|
|
vec3 irradiance = dotNL * directLight.color;
|
|
reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
}
|
|
void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
|
|
reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
}
|
|
#define RE_Direct RE_Direct_Lambert
|
|
#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,Uj=`uniform bool receiveShadow;
|
|
uniform vec3 ambientLightColor;
|
|
#if defined( USE_LIGHT_PROBES )
|
|
uniform vec3 lightProbe[ 9 ];
|
|
#endif
|
|
vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {
|
|
float x = normal.x, y = normal.y, z = normal.z;
|
|
vec3 result = shCoefficients[ 0 ] * 0.886227;
|
|
result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;
|
|
result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;
|
|
result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;
|
|
result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;
|
|
result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;
|
|
result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );
|
|
result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;
|
|
result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );
|
|
return result;
|
|
}
|
|
vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {
|
|
vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
|
|
vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );
|
|
return irradiance;
|
|
}
|
|
vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
|
|
vec3 irradiance = ambientLightColor;
|
|
return irradiance;
|
|
}
|
|
float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {
|
|
float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );
|
|
if ( cutoffDistance > 0.0 ) {
|
|
distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );
|
|
}
|
|
return distanceFalloff;
|
|
}
|
|
float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {
|
|
return smoothstep( coneCosine, penumbraCosine, angleCosine );
|
|
}
|
|
#if NUM_DIR_LIGHTS > 0
|
|
struct DirectionalLight {
|
|
vec3 direction;
|
|
vec3 color;
|
|
};
|
|
uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];
|
|
void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {
|
|
light.color = directionalLight.color;
|
|
light.direction = directionalLight.direction;
|
|
light.visible = true;
|
|
}
|
|
#endif
|
|
#if NUM_POINT_LIGHTS > 0
|
|
struct PointLight {
|
|
vec3 position;
|
|
vec3 color;
|
|
float distance;
|
|
float decay;
|
|
};
|
|
uniform PointLight pointLights[ NUM_POINT_LIGHTS ];
|
|
void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {
|
|
vec3 lVector = pointLight.position - geometryPosition;
|
|
light.direction = normalize( lVector );
|
|
float lightDistance = length( lVector );
|
|
light.color = pointLight.color;
|
|
light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );
|
|
light.visible = ( light.color != vec3( 0.0 ) );
|
|
}
|
|
#endif
|
|
#if NUM_SPOT_LIGHTS > 0
|
|
struct SpotLight {
|
|
vec3 position;
|
|
vec3 direction;
|
|
vec3 color;
|
|
float distance;
|
|
float decay;
|
|
float coneCos;
|
|
float penumbraCos;
|
|
};
|
|
uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];
|
|
void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {
|
|
vec3 lVector = spotLight.position - geometryPosition;
|
|
light.direction = normalize( lVector );
|
|
float angleCos = dot( light.direction, spotLight.direction );
|
|
float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );
|
|
if ( spotAttenuation > 0.0 ) {
|
|
float lightDistance = length( lVector );
|
|
light.color = spotLight.color * spotAttenuation;
|
|
light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );
|
|
light.visible = ( light.color != vec3( 0.0 ) );
|
|
} else {
|
|
light.color = vec3( 0.0 );
|
|
light.visible = false;
|
|
}
|
|
}
|
|
#endif
|
|
#if NUM_RECT_AREA_LIGHTS > 0
|
|
struct RectAreaLight {
|
|
vec3 color;
|
|
vec3 position;
|
|
vec3 halfWidth;
|
|
vec3 halfHeight;
|
|
};
|
|
uniform sampler2D ltc_1; uniform sampler2D ltc_2;
|
|
uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];
|
|
#endif
|
|
#if NUM_HEMI_LIGHTS > 0
|
|
struct HemisphereLight {
|
|
vec3 direction;
|
|
vec3 skyColor;
|
|
vec3 groundColor;
|
|
};
|
|
uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];
|
|
vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {
|
|
float dotNL = dot( normal, hemiLight.direction );
|
|
float hemiDiffuseWeight = 0.5 * dotNL + 0.5;
|
|
vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );
|
|
return irradiance;
|
|
}
|
|
#endif`,Hj=`#ifdef USE_ENVMAP
|
|
vec3 getIBLIrradiance( const in vec3 normal ) {
|
|
#ifdef ENVMAP_TYPE_CUBE_UV
|
|
vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
|
|
vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );
|
|
return PI * envMapColor.rgb * envMapIntensity;
|
|
#else
|
|
return vec3( 0.0 );
|
|
#endif
|
|
}
|
|
vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {
|
|
#ifdef ENVMAP_TYPE_CUBE_UV
|
|
vec3 reflectVec = reflect( - viewDir, normal );
|
|
reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );
|
|
reflectVec = inverseTransformDirection( reflectVec, viewMatrix );
|
|
vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );
|
|
return envMapColor.rgb * envMapIntensity;
|
|
#else
|
|
return vec3( 0.0 );
|
|
#endif
|
|
}
|
|
#ifdef USE_ANISOTROPY
|
|
vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {
|
|
#ifdef ENVMAP_TYPE_CUBE_UV
|
|
vec3 bentNormal = cross( bitangent, viewDir );
|
|
bentNormal = normalize( cross( bentNormal, bitangent ) );
|
|
bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );
|
|
return getIBLRadiance( viewDir, bentNormal, roughness );
|
|
#else
|
|
return vec3( 0.0 );
|
|
#endif
|
|
}
|
|
#endif
|
|
#endif`,Vj=`ToonMaterial material;
|
|
material.diffuseColor = diffuseColor.rgb;`,jj=`varying vec3 vViewPosition;
|
|
struct ToonMaterial {
|
|
vec3 diffuseColor;
|
|
};
|
|
void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
|
|
vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;
|
|
reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
}
|
|
void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
|
|
reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
}
|
|
#define RE_Direct RE_Direct_Toon
|
|
#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,Gj=`BlinnPhongMaterial material;
|
|
material.diffuseColor = diffuseColor.rgb;
|
|
material.specularColor = specular;
|
|
material.specularShininess = shininess;
|
|
material.specularStrength = specularStrength;`,Xj=`varying vec3 vViewPosition;
|
|
struct BlinnPhongMaterial {
|
|
vec3 diffuseColor;
|
|
vec3 specularColor;
|
|
float specularShininess;
|
|
float specularStrength;
|
|
};
|
|
void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
|
|
float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
|
|
vec3 irradiance = dotNL * directLight.color;
|
|
reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;
|
|
}
|
|
void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
|
|
reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
}
|
|
#define RE_Direct RE_Direct_BlinnPhong
|
|
#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,Wj=`PhysicalMaterial material;
|
|
material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );
|
|
vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );
|
|
float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );
|
|
material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;
|
|
material.roughness = min( material.roughness, 1.0 );
|
|
#ifdef IOR
|
|
material.ior = ior;
|
|
#ifdef USE_SPECULAR
|
|
float specularIntensityFactor = specularIntensity;
|
|
vec3 specularColorFactor = specularColor;
|
|
#ifdef USE_SPECULAR_COLORMAP
|
|
specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;
|
|
#endif
|
|
#ifdef USE_SPECULAR_INTENSITYMAP
|
|
specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;
|
|
#endif
|
|
material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );
|
|
#else
|
|
float specularIntensityFactor = 1.0;
|
|
vec3 specularColorFactor = vec3( 1.0 );
|
|
material.specularF90 = 1.0;
|
|
#endif
|
|
material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );
|
|
#else
|
|
material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );
|
|
material.specularF90 = 1.0;
|
|
#endif
|
|
#ifdef USE_CLEARCOAT
|
|
material.clearcoat = clearcoat;
|
|
material.clearcoatRoughness = clearcoatRoughness;
|
|
material.clearcoatF0 = vec3( 0.04 );
|
|
material.clearcoatF90 = 1.0;
|
|
#ifdef USE_CLEARCOATMAP
|
|
material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;
|
|
#endif
|
|
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
|
|
material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;
|
|
#endif
|
|
material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );
|
|
material.clearcoatRoughness += geometryRoughness;
|
|
material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );
|
|
#endif
|
|
#ifdef USE_DISPERSION
|
|
material.dispersion = dispersion;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCE
|
|
material.iridescence = iridescence;
|
|
material.iridescenceIOR = iridescenceIOR;
|
|
#ifdef USE_IRIDESCENCEMAP
|
|
material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCE_THICKNESSMAP
|
|
material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;
|
|
#else
|
|
material.iridescenceThickness = iridescenceThicknessMaximum;
|
|
#endif
|
|
#endif
|
|
#ifdef USE_SHEEN
|
|
material.sheenColor = sheenColor;
|
|
#ifdef USE_SHEEN_COLORMAP
|
|
material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;
|
|
#endif
|
|
material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );
|
|
#ifdef USE_SHEEN_ROUGHNESSMAP
|
|
material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;
|
|
#endif
|
|
#endif
|
|
#ifdef USE_ANISOTROPY
|
|
#ifdef USE_ANISOTROPYMAP
|
|
mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );
|
|
vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;
|
|
vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;
|
|
#else
|
|
vec2 anisotropyV = anisotropyVector;
|
|
#endif
|
|
material.anisotropy = length( anisotropyV );
|
|
if( material.anisotropy == 0.0 ) {
|
|
anisotropyV = vec2( 1.0, 0.0 );
|
|
} else {
|
|
anisotropyV /= material.anisotropy;
|
|
material.anisotropy = saturate( material.anisotropy );
|
|
}
|
|
material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );
|
|
material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;
|
|
material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;
|
|
#endif`,Qj=`struct PhysicalMaterial {
|
|
vec3 diffuseColor;
|
|
float roughness;
|
|
vec3 specularColor;
|
|
float specularF90;
|
|
float dispersion;
|
|
#ifdef USE_CLEARCOAT
|
|
float clearcoat;
|
|
float clearcoatRoughness;
|
|
vec3 clearcoatF0;
|
|
float clearcoatF90;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCE
|
|
float iridescence;
|
|
float iridescenceIOR;
|
|
float iridescenceThickness;
|
|
vec3 iridescenceFresnel;
|
|
vec3 iridescenceF0;
|
|
#endif
|
|
#ifdef USE_SHEEN
|
|
vec3 sheenColor;
|
|
float sheenRoughness;
|
|
#endif
|
|
#ifdef IOR
|
|
float ior;
|
|
#endif
|
|
#ifdef USE_TRANSMISSION
|
|
float transmission;
|
|
float transmissionAlpha;
|
|
float thickness;
|
|
float attenuationDistance;
|
|
vec3 attenuationColor;
|
|
#endif
|
|
#ifdef USE_ANISOTROPY
|
|
float anisotropy;
|
|
float alphaT;
|
|
vec3 anisotropyT;
|
|
vec3 anisotropyB;
|
|
#endif
|
|
};
|
|
vec3 clearcoatSpecularDirect = vec3( 0.0 );
|
|
vec3 clearcoatSpecularIndirect = vec3( 0.0 );
|
|
vec3 sheenSpecularDirect = vec3( 0.0 );
|
|
vec3 sheenSpecularIndirect = vec3(0.0 );
|
|
vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {
|
|
float x = clamp( 1.0 - dotVH, 0.0, 1.0 );
|
|
float x2 = x * x;
|
|
float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );
|
|
return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );
|
|
}
|
|
float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {
|
|
float a2 = pow2( alpha );
|
|
float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );
|
|
float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );
|
|
return 0.5 / max( gv + gl, EPSILON );
|
|
}
|
|
float D_GGX( const in float alpha, const in float dotNH ) {
|
|
float a2 = pow2( alpha );
|
|
float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;
|
|
return RECIPROCAL_PI * a2 / pow2( denom );
|
|
}
|
|
#ifdef USE_ANISOTROPY
|
|
float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {
|
|
float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );
|
|
float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );
|
|
float v = 0.5 / ( gv + gl );
|
|
return saturate(v);
|
|
}
|
|
float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {
|
|
float a2 = alphaT * alphaB;
|
|
highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );
|
|
highp float v2 = dot( v, v );
|
|
float w2 = a2 / v2;
|
|
return RECIPROCAL_PI * a2 * pow2 ( w2 );
|
|
}
|
|
#endif
|
|
#ifdef USE_CLEARCOAT
|
|
vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {
|
|
vec3 f0 = material.clearcoatF0;
|
|
float f90 = material.clearcoatF90;
|
|
float roughness = material.clearcoatRoughness;
|
|
float alpha = pow2( roughness );
|
|
vec3 halfDir = normalize( lightDir + viewDir );
|
|
float dotNL = saturate( dot( normal, lightDir ) );
|
|
float dotNV = saturate( dot( normal, viewDir ) );
|
|
float dotNH = saturate( dot( normal, halfDir ) );
|
|
float dotVH = saturate( dot( viewDir, halfDir ) );
|
|
vec3 F = F_Schlick( f0, f90, dotVH );
|
|
float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
|
|
float D = D_GGX( alpha, dotNH );
|
|
return F * ( V * D );
|
|
}
|
|
#endif
|
|
vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {
|
|
vec3 f0 = material.specularColor;
|
|
float f90 = material.specularF90;
|
|
float roughness = material.roughness;
|
|
float alpha = pow2( roughness );
|
|
vec3 halfDir = normalize( lightDir + viewDir );
|
|
float dotNL = saturate( dot( normal, lightDir ) );
|
|
float dotNV = saturate( dot( normal, viewDir ) );
|
|
float dotNH = saturate( dot( normal, halfDir ) );
|
|
float dotVH = saturate( dot( viewDir, halfDir ) );
|
|
vec3 F = F_Schlick( f0, f90, dotVH );
|
|
#ifdef USE_IRIDESCENCE
|
|
F = mix( F, material.iridescenceFresnel, material.iridescence );
|
|
#endif
|
|
#ifdef USE_ANISOTROPY
|
|
float dotTL = dot( material.anisotropyT, lightDir );
|
|
float dotTV = dot( material.anisotropyT, viewDir );
|
|
float dotTH = dot( material.anisotropyT, halfDir );
|
|
float dotBL = dot( material.anisotropyB, lightDir );
|
|
float dotBV = dot( material.anisotropyB, viewDir );
|
|
float dotBH = dot( material.anisotropyB, halfDir );
|
|
float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );
|
|
float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );
|
|
#else
|
|
float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
|
|
float D = D_GGX( alpha, dotNH );
|
|
#endif
|
|
return F * ( V * D );
|
|
}
|
|
vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {
|
|
const float LUT_SIZE = 64.0;
|
|
const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;
|
|
const float LUT_BIAS = 0.5 / LUT_SIZE;
|
|
float dotNV = saturate( dot( N, V ) );
|
|
vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );
|
|
uv = uv * LUT_SCALE + LUT_BIAS;
|
|
return uv;
|
|
}
|
|
float LTC_ClippedSphereFormFactor( const in vec3 f ) {
|
|
float l = length( f );
|
|
return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );
|
|
}
|
|
vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {
|
|
float x = dot( v1, v2 );
|
|
float y = abs( x );
|
|
float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;
|
|
float b = 3.4175940 + ( 4.1616724 + y ) * y;
|
|
float v = a / b;
|
|
float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;
|
|
return cross( v1, v2 ) * theta_sintheta;
|
|
}
|
|
vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {
|
|
vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];
|
|
vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];
|
|
vec3 lightNormal = cross( v1, v2 );
|
|
if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );
|
|
vec3 T1, T2;
|
|
T1 = normalize( V - N * dot( V, N ) );
|
|
T2 = - cross( N, T1 );
|
|
mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );
|
|
vec3 coords[ 4 ];
|
|
coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );
|
|
coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );
|
|
coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );
|
|
coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );
|
|
coords[ 0 ] = normalize( coords[ 0 ] );
|
|
coords[ 1 ] = normalize( coords[ 1 ] );
|
|
coords[ 2 ] = normalize( coords[ 2 ] );
|
|
coords[ 3 ] = normalize( coords[ 3 ] );
|
|
vec3 vectorFormFactor = vec3( 0.0 );
|
|
vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );
|
|
vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );
|
|
vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );
|
|
vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );
|
|
float result = LTC_ClippedSphereFormFactor( vectorFormFactor );
|
|
return vec3( result );
|
|
}
|
|
#if defined( USE_SHEEN )
|
|
float D_Charlie( float roughness, float dotNH ) {
|
|
float alpha = pow2( roughness );
|
|
float invAlpha = 1.0 / alpha;
|
|
float cos2h = dotNH * dotNH;
|
|
float sin2h = max( 1.0 - cos2h, 0.0078125 );
|
|
return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );
|
|
}
|
|
float V_Neubelt( float dotNV, float dotNL ) {
|
|
return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );
|
|
}
|
|
vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {
|
|
vec3 halfDir = normalize( lightDir + viewDir );
|
|
float dotNL = saturate( dot( normal, lightDir ) );
|
|
float dotNV = saturate( dot( normal, viewDir ) );
|
|
float dotNH = saturate( dot( normal, halfDir ) );
|
|
float D = D_Charlie( sheenRoughness, dotNH );
|
|
float V = V_Neubelt( dotNV, dotNL );
|
|
return sheenColor * ( D * V );
|
|
}
|
|
#endif
|
|
float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
|
|
float dotNV = saturate( dot( normal, viewDir ) );
|
|
float r2 = roughness * roughness;
|
|
float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;
|
|
float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;
|
|
float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );
|
|
return saturate( DG * RECIPROCAL_PI );
|
|
}
|
|
vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
|
|
float dotNV = saturate( dot( normal, viewDir ) );
|
|
const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );
|
|
const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );
|
|
vec4 r = roughness * c0 + c1;
|
|
float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;
|
|
vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;
|
|
return fab;
|
|
}
|
|
vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {
|
|
vec2 fab = DFGApprox( normal, viewDir, roughness );
|
|
return specularColor * fab.x + specularF90 * fab.y;
|
|
}
|
|
#ifdef USE_IRIDESCENCE
|
|
void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
|
|
#else
|
|
void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
|
|
#endif
|
|
vec2 fab = DFGApprox( normal, viewDir, roughness );
|
|
#ifdef USE_IRIDESCENCE
|
|
vec3 Fr = mix( specularColor, iridescenceF0, iridescence );
|
|
#else
|
|
vec3 Fr = specularColor;
|
|
#endif
|
|
vec3 FssEss = Fr * fab.x + specularF90 * fab.y;
|
|
float Ess = fab.x + fab.y;
|
|
float Ems = 1.0 - Ess;
|
|
vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );
|
|
singleScatter += FssEss;
|
|
multiScatter += Fms * Ems;
|
|
}
|
|
#if NUM_RECT_AREA_LIGHTS > 0
|
|
void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
|
|
vec3 normal = geometryNormal;
|
|
vec3 viewDir = geometryViewDir;
|
|
vec3 position = geometryPosition;
|
|
vec3 lightPos = rectAreaLight.position;
|
|
vec3 halfWidth = rectAreaLight.halfWidth;
|
|
vec3 halfHeight = rectAreaLight.halfHeight;
|
|
vec3 lightColor = rectAreaLight.color;
|
|
float roughness = material.roughness;
|
|
vec3 rectCoords[ 4 ];
|
|
rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;
|
|
rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;
|
|
rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;
|
|
vec2 uv = LTC_Uv( normal, viewDir, roughness );
|
|
vec4 t1 = texture2D( ltc_1, uv );
|
|
vec4 t2 = texture2D( ltc_2, uv );
|
|
mat3 mInv = mat3(
|
|
vec3( t1.x, 0, t1.y ),
|
|
vec3( 0, 1, 0 ),
|
|
vec3( t1.z, 0, t1.w )
|
|
);
|
|
vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );
|
|
reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );
|
|
reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );
|
|
}
|
|
#endif
|
|
void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
|
|
float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
|
|
vec3 irradiance = dotNL * directLight.color;
|
|
#ifdef USE_CLEARCOAT
|
|
float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );
|
|
vec3 ccIrradiance = dotNLcc * directLight.color;
|
|
clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );
|
|
#endif
|
|
#ifdef USE_SHEEN
|
|
sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );
|
|
#endif
|
|
reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );
|
|
reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
}
|
|
void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
|
|
reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
}
|
|
void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {
|
|
#ifdef USE_CLEARCOAT
|
|
clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );
|
|
#endif
|
|
#ifdef USE_SHEEN
|
|
sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );
|
|
#endif
|
|
vec3 singleScattering = vec3( 0.0 );
|
|
vec3 multiScattering = vec3( 0.0 );
|
|
vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;
|
|
#ifdef USE_IRIDESCENCE
|
|
computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );
|
|
#else
|
|
computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );
|
|
#endif
|
|
vec3 totalScattering = singleScattering + multiScattering;
|
|
vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );
|
|
reflectedLight.indirectSpecular += radiance * singleScattering;
|
|
reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;
|
|
reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;
|
|
}
|
|
#define RE_Direct RE_Direct_Physical
|
|
#define RE_Direct_RectArea RE_Direct_RectArea_Physical
|
|
#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical
|
|
#define RE_IndirectSpecular RE_IndirectSpecular_Physical
|
|
float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {
|
|
return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );
|
|
}`,Zj=`
|
|
vec3 geometryPosition = - vViewPosition;
|
|
vec3 geometryNormal = normal;
|
|
vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );
|
|
vec3 geometryClearcoatNormal = vec3( 0.0 );
|
|
#ifdef USE_CLEARCOAT
|
|
geometryClearcoatNormal = clearcoatNormal;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCE
|
|
float dotNVi = saturate( dot( normal, geometryViewDir ) );
|
|
if ( material.iridescenceThickness == 0.0 ) {
|
|
material.iridescence = 0.0;
|
|
} else {
|
|
material.iridescence = saturate( material.iridescence );
|
|
}
|
|
if ( material.iridescence > 0.0 ) {
|
|
material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );
|
|
material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );
|
|
}
|
|
#endif
|
|
IncidentLight directLight;
|
|
#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )
|
|
PointLight pointLight;
|
|
#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0
|
|
PointLightShadow pointLightShadow;
|
|
#endif
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
|
|
pointLight = pointLights[ i ];
|
|
getPointLightInfo( pointLight, geometryPosition, directLight );
|
|
#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )
|
|
pointLightShadow = pointLightShadows[ i ];
|
|
directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;
|
|
#endif
|
|
RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
|
|
}
|
|
#pragma unroll_loop_end
|
|
#endif
|
|
#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )
|
|
SpotLight spotLight;
|
|
vec4 spotColor;
|
|
vec3 spotLightCoord;
|
|
bool inSpotLightMap;
|
|
#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0
|
|
SpotLightShadow spotLightShadow;
|
|
#endif
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
|
|
spotLight = spotLights[ i ];
|
|
getSpotLightInfo( spotLight, geometryPosition, directLight );
|
|
#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
|
|
#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX
|
|
#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
|
|
#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS
|
|
#else
|
|
#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
|
|
#endif
|
|
#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )
|
|
spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;
|
|
inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );
|
|
spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );
|
|
directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;
|
|
#endif
|
|
#undef SPOT_LIGHT_MAP_INDEX
|
|
#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
|
|
spotLightShadow = spotLightShadows[ i ];
|
|
directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
|
|
#endif
|
|
RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
|
|
}
|
|
#pragma unroll_loop_end
|
|
#endif
|
|
#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )
|
|
DirectionalLight directionalLight;
|
|
#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0
|
|
DirectionalLightShadow directionalLightShadow;
|
|
#endif
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
|
|
directionalLight = directionalLights[ i ];
|
|
getDirectionalLightInfo( directionalLight, directLight );
|
|
#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )
|
|
directionalLightShadow = directionalLightShadows[ i ];
|
|
directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
|
|
#endif
|
|
RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
|
|
}
|
|
#pragma unroll_loop_end
|
|
#endif
|
|
#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )
|
|
RectAreaLight rectAreaLight;
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {
|
|
rectAreaLight = rectAreaLights[ i ];
|
|
RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
|
|
}
|
|
#pragma unroll_loop_end
|
|
#endif
|
|
#if defined( RE_IndirectDiffuse )
|
|
vec3 iblIrradiance = vec3( 0.0 );
|
|
vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );
|
|
#if defined( USE_LIGHT_PROBES )
|
|
irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );
|
|
#endif
|
|
#if ( NUM_HEMI_LIGHTS > 0 )
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
|
|
irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );
|
|
}
|
|
#pragma unroll_loop_end
|
|
#endif
|
|
#endif
|
|
#if defined( RE_IndirectSpecular )
|
|
vec3 radiance = vec3( 0.0 );
|
|
vec3 clearcoatRadiance = vec3( 0.0 );
|
|
#endif`,Yj=`#if defined( RE_IndirectDiffuse )
|
|
#ifdef USE_LIGHTMAP
|
|
vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
|
|
vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;
|
|
irradiance += lightMapIrradiance;
|
|
#endif
|
|
#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )
|
|
iblIrradiance += getIBLIrradiance( geometryNormal );
|
|
#endif
|
|
#endif
|
|
#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )
|
|
#ifdef USE_ANISOTROPY
|
|
radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );
|
|
#else
|
|
radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );
|
|
#endif
|
|
#ifdef USE_CLEARCOAT
|
|
clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );
|
|
#endif
|
|
#endif`,Kj=`#if defined( RE_IndirectDiffuse )
|
|
RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
|
|
#endif
|
|
#if defined( RE_IndirectSpecular )
|
|
RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
|
|
#endif`,Jj=`#if defined( USE_LOGDEPTHBUF )
|
|
gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;
|
|
#endif`,qj=`#if defined( USE_LOGDEPTHBUF )
|
|
uniform float logDepthBufFC;
|
|
varying float vFragDepth;
|
|
varying float vIsPerspective;
|
|
#endif`,_j=`#ifdef USE_LOGDEPTHBUF
|
|
varying float vFragDepth;
|
|
varying float vIsPerspective;
|
|
#endif`,$j=`#ifdef USE_LOGDEPTHBUF
|
|
vFragDepth = 1.0 + gl_Position.w;
|
|
vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );
|
|
#endif`,eG=`#ifdef USE_MAP
|
|
vec4 sampledDiffuseColor = texture2D( map, vMapUv );
|
|
#ifdef DECODE_VIDEO_TEXTURE
|
|
sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );
|
|
#endif
|
|
diffuseColor *= sampledDiffuseColor;
|
|
#endif`,tG=`#ifdef USE_MAP
|
|
uniform sampler2D map;
|
|
#endif`,nG=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
|
|
#if defined( USE_POINTS_UV )
|
|
vec2 uv = vUv;
|
|
#else
|
|
vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;
|
|
#endif
|
|
#endif
|
|
#ifdef USE_MAP
|
|
diffuseColor *= texture2D( map, uv );
|
|
#endif
|
|
#ifdef USE_ALPHAMAP
|
|
diffuseColor.a *= texture2D( alphaMap, uv ).g;
|
|
#endif`,iG=`#if defined( USE_POINTS_UV )
|
|
varying vec2 vUv;
|
|
#else
|
|
#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
|
|
uniform mat3 uvTransform;
|
|
#endif
|
|
#endif
|
|
#ifdef USE_MAP
|
|
uniform sampler2D map;
|
|
#endif
|
|
#ifdef USE_ALPHAMAP
|
|
uniform sampler2D alphaMap;
|
|
#endif`,rG=`float metalnessFactor = metalness;
|
|
#ifdef USE_METALNESSMAP
|
|
vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );
|
|
metalnessFactor *= texelMetalness.b;
|
|
#endif`,oG=`#ifdef USE_METALNESSMAP
|
|
uniform sampler2D metalnessMap;
|
|
#endif`,sG=`#ifdef USE_INSTANCING_MORPH
|
|
float morphTargetInfluences[ MORPHTARGETS_COUNT ];
|
|
float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;
|
|
for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
|
|
morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;
|
|
}
|
|
#endif`,aG=`#if defined( USE_MORPHCOLORS )
|
|
vColor *= morphTargetBaseInfluence;
|
|
for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
|
|
#if defined( USE_COLOR_ALPHA )
|
|
if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];
|
|
#elif defined( USE_COLOR )
|
|
if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];
|
|
#endif
|
|
}
|
|
#endif`,lG=`#ifdef USE_MORPHNORMALS
|
|
objectNormal *= morphTargetBaseInfluence;
|
|
for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
|
|
if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];
|
|
}
|
|
#endif`,uG=`#ifdef USE_MORPHTARGETS
|
|
#ifndef USE_INSTANCING_MORPH
|
|
uniform float morphTargetBaseInfluence;
|
|
uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];
|
|
#endif
|
|
uniform sampler2DArray morphTargetsTexture;
|
|
uniform ivec2 morphTargetsTextureSize;
|
|
vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {
|
|
int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;
|
|
int y = texelIndex / morphTargetsTextureSize.x;
|
|
int x = texelIndex - y * morphTargetsTextureSize.x;
|
|
ivec3 morphUV = ivec3( x, y, morphTargetIndex );
|
|
return texelFetch( morphTargetsTexture, morphUV, 0 );
|
|
}
|
|
#endif`,cG=`#ifdef USE_MORPHTARGETS
|
|
transformed *= morphTargetBaseInfluence;
|
|
for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
|
|
if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];
|
|
}
|
|
#endif`,hG=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
|
|
#ifdef FLAT_SHADED
|
|
vec3 fdx = dFdx( vViewPosition );
|
|
vec3 fdy = dFdy( vViewPosition );
|
|
vec3 normal = normalize( cross( fdx, fdy ) );
|
|
#else
|
|
vec3 normal = normalize( vNormal );
|
|
#ifdef DOUBLE_SIDED
|
|
normal *= faceDirection;
|
|
#endif
|
|
#endif
|
|
#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )
|
|
#ifdef USE_TANGENT
|
|
mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
|
|
#else
|
|
mat3 tbn = getTangentFrame( - vViewPosition, normal,
|
|
#if defined( USE_NORMALMAP )
|
|
vNormalMapUv
|
|
#elif defined( USE_CLEARCOAT_NORMALMAP )
|
|
vClearcoatNormalMapUv
|
|
#else
|
|
vUv
|
|
#endif
|
|
);
|
|
#endif
|
|
#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )
|
|
tbn[0] *= faceDirection;
|
|
tbn[1] *= faceDirection;
|
|
#endif
|
|
#endif
|
|
#ifdef USE_CLEARCOAT_NORMALMAP
|
|
#ifdef USE_TANGENT
|
|
mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
|
|
#else
|
|
mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );
|
|
#endif
|
|
#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )
|
|
tbn2[0] *= faceDirection;
|
|
tbn2[1] *= faceDirection;
|
|
#endif
|
|
#endif
|
|
vec3 nonPerturbedNormal = normal;`,dG=`#ifdef USE_NORMALMAP_OBJECTSPACE
|
|
normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
|
|
#ifdef FLIP_SIDED
|
|
normal = - normal;
|
|
#endif
|
|
#ifdef DOUBLE_SIDED
|
|
normal = normal * faceDirection;
|
|
#endif
|
|
normal = normalize( normalMatrix * normal );
|
|
#elif defined( USE_NORMALMAP_TANGENTSPACE )
|
|
vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
|
|
mapN.xy *= normalScale;
|
|
normal = normalize( tbn * mapN );
|
|
#elif defined( USE_BUMPMAP )
|
|
normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );
|
|
#endif`,fG=`#ifndef FLAT_SHADED
|
|
varying vec3 vNormal;
|
|
#ifdef USE_TANGENT
|
|
varying vec3 vTangent;
|
|
varying vec3 vBitangent;
|
|
#endif
|
|
#endif`,pG=`#ifndef FLAT_SHADED
|
|
varying vec3 vNormal;
|
|
#ifdef USE_TANGENT
|
|
varying vec3 vTangent;
|
|
varying vec3 vBitangent;
|
|
#endif
|
|
#endif`,gG=`#ifndef FLAT_SHADED
|
|
vNormal = normalize( transformedNormal );
|
|
#ifdef USE_TANGENT
|
|
vTangent = normalize( transformedTangent );
|
|
vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );
|
|
#endif
|
|
#endif`,mG=`#ifdef USE_NORMALMAP
|
|
uniform sampler2D normalMap;
|
|
uniform vec2 normalScale;
|
|
#endif
|
|
#ifdef USE_NORMALMAP_OBJECTSPACE
|
|
uniform mat3 normalMatrix;
|
|
#endif
|
|
#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )
|
|
mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {
|
|
vec3 q0 = dFdx( eye_pos.xyz );
|
|
vec3 q1 = dFdy( eye_pos.xyz );
|
|
vec2 st0 = dFdx( uv.st );
|
|
vec2 st1 = dFdy( uv.st );
|
|
vec3 N = surf_norm;
|
|
vec3 q1perp = cross( q1, N );
|
|
vec3 q0perp = cross( N, q0 );
|
|
vec3 T = q1perp * st0.x + q0perp * st1.x;
|
|
vec3 B = q1perp * st0.y + q0perp * st1.y;
|
|
float det = max( dot( T, T ), dot( B, B ) );
|
|
float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );
|
|
return mat3( T * scale, B * scale, N );
|
|
}
|
|
#endif`,vG=`#ifdef USE_CLEARCOAT
|
|
vec3 clearcoatNormal = nonPerturbedNormal;
|
|
#endif`,yG=`#ifdef USE_CLEARCOAT_NORMALMAP
|
|
vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;
|
|
clearcoatMapN.xy *= clearcoatNormalScale;
|
|
clearcoatNormal = normalize( tbn2 * clearcoatMapN );
|
|
#endif`,AG=`#ifdef USE_CLEARCOATMAP
|
|
uniform sampler2D clearcoatMap;
|
|
#endif
|
|
#ifdef USE_CLEARCOAT_NORMALMAP
|
|
uniform sampler2D clearcoatNormalMap;
|
|
uniform vec2 clearcoatNormalScale;
|
|
#endif
|
|
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
|
|
uniform sampler2D clearcoatRoughnessMap;
|
|
#endif`,xG=`#ifdef USE_IRIDESCENCEMAP
|
|
uniform sampler2D iridescenceMap;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCE_THICKNESSMAP
|
|
uniform sampler2D iridescenceThicknessMap;
|
|
#endif`,wG=`#ifdef OPAQUE
|
|
diffuseColor.a = 1.0;
|
|
#endif
|
|
#ifdef USE_TRANSMISSION
|
|
diffuseColor.a *= material.transmissionAlpha;
|
|
#endif
|
|
gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,SG=`vec3 packNormalToRGB( const in vec3 normal ) {
|
|
return normalize( normal ) * 0.5 + 0.5;
|
|
}
|
|
vec3 unpackRGBToNormal( const in vec3 rgb ) {
|
|
return 2.0 * rgb.xyz - 1.0;
|
|
}
|
|
const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;
|
|
const float Inv255 = 1. / 255.;
|
|
const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );
|
|
const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );
|
|
const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );
|
|
const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );
|
|
vec4 packDepthToRGBA( const in float v ) {
|
|
if( v <= 0.0 )
|
|
return vec4( 0., 0., 0., 0. );
|
|
if( v >= 1.0 )
|
|
return vec4( 1., 1., 1., 1. );
|
|
float vuf;
|
|
float af = modf( v * PackFactors.a, vuf );
|
|
float bf = modf( vuf * ShiftRight8, vuf );
|
|
float gf = modf( vuf * ShiftRight8, vuf );
|
|
return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );
|
|
}
|
|
vec3 packDepthToRGB( const in float v ) {
|
|
if( v <= 0.0 )
|
|
return vec3( 0., 0., 0. );
|
|
if( v >= 1.0 )
|
|
return vec3( 1., 1., 1. );
|
|
float vuf;
|
|
float bf = modf( v * PackFactors.b, vuf );
|
|
float gf = modf( vuf * ShiftRight8, vuf );
|
|
return vec3( vuf * Inv255, gf * PackUpscale, bf );
|
|
}
|
|
vec2 packDepthToRG( const in float v ) {
|
|
if( v <= 0.0 )
|
|
return vec2( 0., 0. );
|
|
if( v >= 1.0 )
|
|
return vec2( 1., 1. );
|
|
float vuf;
|
|
float gf = modf( v * 256., vuf );
|
|
return vec2( vuf * Inv255, gf );
|
|
}
|
|
float unpackRGBAToDepth( const in vec4 v ) {
|
|
return dot( v, UnpackFactors4 );
|
|
}
|
|
float unpackRGBToDepth( const in vec3 v ) {
|
|
return dot( v, UnpackFactors3 );
|
|
}
|
|
float unpackRGToDepth( const in vec2 v ) {
|
|
return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;
|
|
}
|
|
vec4 pack2HalfToRGBA( const in vec2 v ) {
|
|
vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );
|
|
return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );
|
|
}
|
|
vec2 unpackRGBATo2Half( const in vec4 v ) {
|
|
return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );
|
|
}
|
|
float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {
|
|
return ( viewZ + near ) / ( near - far );
|
|
}
|
|
float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {
|
|
return depth * ( near - far ) - near;
|
|
}
|
|
float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {
|
|
return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );
|
|
}
|
|
float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {
|
|
return ( near * far ) / ( ( far - near ) * depth - far );
|
|
}`,PG=`#ifdef PREMULTIPLIED_ALPHA
|
|
gl_FragColor.rgb *= gl_FragColor.a;
|
|
#endif`,CG=`vec4 mvPosition = vec4( transformed, 1.0 );
|
|
#ifdef USE_BATCHING
|
|
mvPosition = batchingMatrix * mvPosition;
|
|
#endif
|
|
#ifdef USE_INSTANCING
|
|
mvPosition = instanceMatrix * mvPosition;
|
|
#endif
|
|
mvPosition = modelViewMatrix * mvPosition;
|
|
gl_Position = projectionMatrix * mvPosition;`,EG=`#ifdef DITHERING
|
|
gl_FragColor.rgb = dithering( gl_FragColor.rgb );
|
|
#endif`,bG=`#ifdef DITHERING
|
|
vec3 dithering( vec3 color ) {
|
|
float grid_position = rand( gl_FragCoord.xy );
|
|
vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );
|
|
dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );
|
|
return color + dither_shift_RGB;
|
|
}
|
|
#endif`,MG=`float roughnessFactor = roughness;
|
|
#ifdef USE_ROUGHNESSMAP
|
|
vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );
|
|
roughnessFactor *= texelRoughness.g;
|
|
#endif`,BG=`#ifdef USE_ROUGHNESSMAP
|
|
uniform sampler2D roughnessMap;
|
|
#endif`,TG=`#if NUM_SPOT_LIGHT_COORDS > 0
|
|
varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
|
|
#endif
|
|
#if NUM_SPOT_LIGHT_MAPS > 0
|
|
uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];
|
|
#endif
|
|
#ifdef USE_SHADOWMAP
|
|
#if NUM_DIR_LIGHT_SHADOWS > 0
|
|
uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];
|
|
varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
|
|
struct DirectionalLightShadow {
|
|
float shadowIntensity;
|
|
float shadowBias;
|
|
float shadowNormalBias;
|
|
float shadowRadius;
|
|
vec2 shadowMapSize;
|
|
};
|
|
uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
|
|
#endif
|
|
#if NUM_SPOT_LIGHT_SHADOWS > 0
|
|
uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];
|
|
struct SpotLightShadow {
|
|
float shadowIntensity;
|
|
float shadowBias;
|
|
float shadowNormalBias;
|
|
float shadowRadius;
|
|
vec2 shadowMapSize;
|
|
};
|
|
uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
|
|
#endif
|
|
#if NUM_POINT_LIGHT_SHADOWS > 0
|
|
uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];
|
|
varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
|
|
struct PointLightShadow {
|
|
float shadowIntensity;
|
|
float shadowBias;
|
|
float shadowNormalBias;
|
|
float shadowRadius;
|
|
vec2 shadowMapSize;
|
|
float shadowCameraNear;
|
|
float shadowCameraFar;
|
|
};
|
|
uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
|
|
#endif
|
|
float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {
|
|
return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );
|
|
}
|
|
vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {
|
|
return unpackRGBATo2Half( texture2D( shadow, uv ) );
|
|
}
|
|
float VSMShadow (sampler2D shadow, vec2 uv, float compare ){
|
|
float occlusion = 1.0;
|
|
vec2 distribution = texture2DDistribution( shadow, uv );
|
|
float hard_shadow = step( compare , distribution.x );
|
|
if (hard_shadow != 1.0 ) {
|
|
float distance = compare - distribution.x ;
|
|
float variance = max( 0.00000, distribution.y * distribution.y );
|
|
float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );
|
|
}
|
|
return occlusion;
|
|
}
|
|
float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {
|
|
float shadow = 1.0;
|
|
shadowCoord.xyz /= shadowCoord.w;
|
|
shadowCoord.z += shadowBias;
|
|
bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;
|
|
bool frustumTest = inFrustum && shadowCoord.z <= 1.0;
|
|
if ( frustumTest ) {
|
|
#if defined( SHADOWMAP_TYPE_PCF )
|
|
vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
|
|
float dx0 = - texelSize.x * shadowRadius;
|
|
float dy0 = - texelSize.y * shadowRadius;
|
|
float dx1 = + texelSize.x * shadowRadius;
|
|
float dy1 = + texelSize.y * shadowRadius;
|
|
float dx2 = dx0 / 2.0;
|
|
float dy2 = dy0 / 2.0;
|
|
float dx3 = dx1 / 2.0;
|
|
float dy3 = dy1 / 2.0;
|
|
shadow = (
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )
|
|
) * ( 1.0 / 17.0 );
|
|
#elif defined( SHADOWMAP_TYPE_PCF_SOFT )
|
|
vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
|
|
float dx = texelSize.x;
|
|
float dy = texelSize.y;
|
|
vec2 uv = shadowCoord.xy;
|
|
vec2 f = fract( uv * shadowMapSize + 0.5 );
|
|
uv -= f * texelSize;
|
|
shadow = (
|
|
texture2DCompare( shadowMap, uv, shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +
|
|
texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +
|
|
mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),
|
|
texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),
|
|
f.x ) +
|
|
mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),
|
|
texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),
|
|
f.x ) +
|
|
mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),
|
|
texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),
|
|
f.y ) +
|
|
mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),
|
|
texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),
|
|
f.y ) +
|
|
mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),
|
|
texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),
|
|
f.x ),
|
|
mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),
|
|
texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),
|
|
f.x ),
|
|
f.y )
|
|
) * ( 1.0 / 9.0 );
|
|
#elif defined( SHADOWMAP_TYPE_VSM )
|
|
shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );
|
|
#else
|
|
shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );
|
|
#endif
|
|
}
|
|
return mix( 1.0, shadow, shadowIntensity );
|
|
}
|
|
vec2 cubeToUV( vec3 v, float texelSizeY ) {
|
|
vec3 absV = abs( v );
|
|
float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );
|
|
absV *= scaleToCube;
|
|
v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );
|
|
vec2 planar = v.xy;
|
|
float almostATexel = 1.5 * texelSizeY;
|
|
float almostOne = 1.0 - almostATexel;
|
|
if ( absV.z >= almostOne ) {
|
|
if ( v.z > 0.0 )
|
|
planar.x = 4.0 - v.x;
|
|
} else if ( absV.x >= almostOne ) {
|
|
float signX = sign( v.x );
|
|
planar.x = v.z * signX + 2.0 * signX;
|
|
} else if ( absV.y >= almostOne ) {
|
|
float signY = sign( v.y );
|
|
planar.x = v.x + 2.0 * signY + 2.0;
|
|
planar.y = v.z * signY - 2.0;
|
|
}
|
|
return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );
|
|
}
|
|
float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {
|
|
float shadow = 1.0;
|
|
vec3 lightToPosition = shadowCoord.xyz;
|
|
|
|
float lightToPositionLength = length( lightToPosition );
|
|
if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {
|
|
float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias;
|
|
vec3 bd3D = normalize( lightToPosition );
|
|
vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );
|
|
#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )
|
|
vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;
|
|
shadow = (
|
|
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +
|
|
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +
|
|
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +
|
|
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +
|
|
texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +
|
|
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +
|
|
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +
|
|
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +
|
|
texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )
|
|
) * ( 1.0 / 9.0 );
|
|
#else
|
|
shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );
|
|
#endif
|
|
}
|
|
return mix( 1.0, shadow, shadowIntensity );
|
|
}
|
|
#endif`,DG=`#if NUM_SPOT_LIGHT_COORDS > 0
|
|
uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];
|
|
varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
|
|
#endif
|
|
#ifdef USE_SHADOWMAP
|
|
#if NUM_DIR_LIGHT_SHADOWS > 0
|
|
uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];
|
|
varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
|
|
struct DirectionalLightShadow {
|
|
float shadowIntensity;
|
|
float shadowBias;
|
|
float shadowNormalBias;
|
|
float shadowRadius;
|
|
vec2 shadowMapSize;
|
|
};
|
|
uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
|
|
#endif
|
|
#if NUM_SPOT_LIGHT_SHADOWS > 0
|
|
struct SpotLightShadow {
|
|
float shadowIntensity;
|
|
float shadowBias;
|
|
float shadowNormalBias;
|
|
float shadowRadius;
|
|
vec2 shadowMapSize;
|
|
};
|
|
uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
|
|
#endif
|
|
#if NUM_POINT_LIGHT_SHADOWS > 0
|
|
uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];
|
|
varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
|
|
struct PointLightShadow {
|
|
float shadowIntensity;
|
|
float shadowBias;
|
|
float shadowNormalBias;
|
|
float shadowRadius;
|
|
vec2 shadowMapSize;
|
|
float shadowCameraNear;
|
|
float shadowCameraFar;
|
|
};
|
|
uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
|
|
#endif
|
|
#endif`,NG=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )
|
|
vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
|
|
vec4 shadowWorldPosition;
|
|
#endif
|
|
#if defined( USE_SHADOWMAP )
|
|
#if NUM_DIR_LIGHT_SHADOWS > 0
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
|
|
shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );
|
|
vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;
|
|
}
|
|
#pragma unroll_loop_end
|
|
#endif
|
|
#if NUM_POINT_LIGHT_SHADOWS > 0
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
|
|
shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );
|
|
vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;
|
|
}
|
|
#pragma unroll_loop_end
|
|
#endif
|
|
#endif
|
|
#if NUM_SPOT_LIGHT_COORDS > 0
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {
|
|
shadowWorldPosition = worldPosition;
|
|
#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
|
|
shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;
|
|
#endif
|
|
vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;
|
|
}
|
|
#pragma unroll_loop_end
|
|
#endif`,FG=`float getShadowMask() {
|
|
float shadow = 1.0;
|
|
#ifdef USE_SHADOWMAP
|
|
#if NUM_DIR_LIGHT_SHADOWS > 0
|
|
DirectionalLightShadow directionalLight;
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
|
|
directionalLight = directionalLightShadows[ i ];
|
|
shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
|
|
}
|
|
#pragma unroll_loop_end
|
|
#endif
|
|
#if NUM_SPOT_LIGHT_SHADOWS > 0
|
|
SpotLightShadow spotLight;
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {
|
|
spotLight = spotLightShadows[ i ];
|
|
shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
|
|
}
|
|
#pragma unroll_loop_end
|
|
#endif
|
|
#if NUM_POINT_LIGHT_SHADOWS > 0
|
|
PointLightShadow pointLight;
|
|
#pragma unroll_loop_start
|
|
for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
|
|
pointLight = pointLightShadows[ i ];
|
|
shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;
|
|
}
|
|
#pragma unroll_loop_end
|
|
#endif
|
|
#endif
|
|
return shadow;
|
|
}`,LG=`#ifdef USE_SKINNING
|
|
mat4 boneMatX = getBoneMatrix( skinIndex.x );
|
|
mat4 boneMatY = getBoneMatrix( skinIndex.y );
|
|
mat4 boneMatZ = getBoneMatrix( skinIndex.z );
|
|
mat4 boneMatW = getBoneMatrix( skinIndex.w );
|
|
#endif`,IG=`#ifdef USE_SKINNING
|
|
uniform mat4 bindMatrix;
|
|
uniform mat4 bindMatrixInverse;
|
|
uniform highp sampler2D boneTexture;
|
|
mat4 getBoneMatrix( const in float i ) {
|
|
int size = textureSize( boneTexture, 0 ).x;
|
|
int j = int( i ) * 4;
|
|
int x = j % size;
|
|
int y = j / size;
|
|
vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );
|
|
vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );
|
|
vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );
|
|
vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );
|
|
return mat4( v1, v2, v3, v4 );
|
|
}
|
|
#endif`,kG=`#ifdef USE_SKINNING
|
|
vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );
|
|
vec4 skinned = vec4( 0.0 );
|
|
skinned += boneMatX * skinVertex * skinWeight.x;
|
|
skinned += boneMatY * skinVertex * skinWeight.y;
|
|
skinned += boneMatZ * skinVertex * skinWeight.z;
|
|
skinned += boneMatW * skinVertex * skinWeight.w;
|
|
transformed = ( bindMatrixInverse * skinned ).xyz;
|
|
#endif`,OG=`#ifdef USE_SKINNING
|
|
mat4 skinMatrix = mat4( 0.0 );
|
|
skinMatrix += skinWeight.x * boneMatX;
|
|
skinMatrix += skinWeight.y * boneMatY;
|
|
skinMatrix += skinWeight.z * boneMatZ;
|
|
skinMatrix += skinWeight.w * boneMatW;
|
|
skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;
|
|
objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;
|
|
#ifdef USE_TANGENT
|
|
objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;
|
|
#endif
|
|
#endif`,RG=`float specularStrength;
|
|
#ifdef USE_SPECULARMAP
|
|
vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );
|
|
specularStrength = texelSpecular.r;
|
|
#else
|
|
specularStrength = 1.0;
|
|
#endif`,zG=`#ifdef USE_SPECULARMAP
|
|
uniform sampler2D specularMap;
|
|
#endif`,UG=`#if defined( TONE_MAPPING )
|
|
gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );
|
|
#endif`,HG=`#ifndef saturate
|
|
#define saturate( a ) clamp( a, 0.0, 1.0 )
|
|
#endif
|
|
uniform float toneMappingExposure;
|
|
vec3 LinearToneMapping( vec3 color ) {
|
|
return saturate( toneMappingExposure * color );
|
|
}
|
|
vec3 ReinhardToneMapping( vec3 color ) {
|
|
color *= toneMappingExposure;
|
|
return saturate( color / ( vec3( 1.0 ) + color ) );
|
|
}
|
|
vec3 CineonToneMapping( vec3 color ) {
|
|
color *= toneMappingExposure;
|
|
color = max( vec3( 0.0 ), color - 0.004 );
|
|
return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );
|
|
}
|
|
vec3 RRTAndODTFit( vec3 v ) {
|
|
vec3 a = v * ( v + 0.0245786 ) - 0.000090537;
|
|
vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;
|
|
return a / b;
|
|
}
|
|
vec3 ACESFilmicToneMapping( vec3 color ) {
|
|
const mat3 ACESInputMat = mat3(
|
|
vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ),
|
|
vec3( 0.04823, 0.01566, 0.83777 )
|
|
);
|
|
const mat3 ACESOutputMat = mat3(
|
|
vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ),
|
|
vec3( -0.07367, -0.00605, 1.07602 )
|
|
);
|
|
color *= toneMappingExposure / 0.6;
|
|
color = ACESInputMat * color;
|
|
color = RRTAndODTFit( color );
|
|
color = ACESOutputMat * color;
|
|
return saturate( color );
|
|
}
|
|
const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(
|
|
vec3( 1.6605, - 0.1246, - 0.0182 ),
|
|
vec3( - 0.5876, 1.1329, - 0.1006 ),
|
|
vec3( - 0.0728, - 0.0083, 1.1187 )
|
|
);
|
|
const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(
|
|
vec3( 0.6274, 0.0691, 0.0164 ),
|
|
vec3( 0.3293, 0.9195, 0.0880 ),
|
|
vec3( 0.0433, 0.0113, 0.8956 )
|
|
);
|
|
vec3 agxDefaultContrastApprox( vec3 x ) {
|
|
vec3 x2 = x * x;
|
|
vec3 x4 = x2 * x2;
|
|
return + 15.5 * x4 * x2
|
|
- 40.14 * x4 * x
|
|
+ 31.96 * x4
|
|
- 6.868 * x2 * x
|
|
+ 0.4298 * x2
|
|
+ 0.1191 * x
|
|
- 0.00232;
|
|
}
|
|
vec3 AgXToneMapping( vec3 color ) {
|
|
const mat3 AgXInsetMatrix = mat3(
|
|
vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),
|
|
vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),
|
|
vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )
|
|
);
|
|
const mat3 AgXOutsetMatrix = mat3(
|
|
vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),
|
|
vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),
|
|
vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )
|
|
);
|
|
const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069;
|
|
color *= toneMappingExposure;
|
|
color = LINEAR_SRGB_TO_LINEAR_REC2020 * color;
|
|
color = AgXInsetMatrix * color;
|
|
color = max( color, 1e-10 ); color = log2( color );
|
|
color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );
|
|
color = clamp( color, 0.0, 1.0 );
|
|
color = agxDefaultContrastApprox( color );
|
|
color = AgXOutsetMatrix * color;
|
|
color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );
|
|
color = LINEAR_REC2020_TO_LINEAR_SRGB * color;
|
|
color = clamp( color, 0.0, 1.0 );
|
|
return color;
|
|
}
|
|
vec3 NeutralToneMapping( vec3 color ) {
|
|
const float StartCompression = 0.8 - 0.04;
|
|
const float Desaturation = 0.15;
|
|
color *= toneMappingExposure;
|
|
float x = min( color.r, min( color.g, color.b ) );
|
|
float offset = x < 0.08 ? x - 6.25 * x * x : 0.04;
|
|
color -= offset;
|
|
float peak = max( color.r, max( color.g, color.b ) );
|
|
if ( peak < StartCompression ) return color;
|
|
float d = 1. - StartCompression;
|
|
float newPeak = 1. - d * d / ( peak + d - StartCompression );
|
|
color *= newPeak / peak;
|
|
float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );
|
|
return mix( color, vec3( newPeak ), g );
|
|
}
|
|
vec3 CustomToneMapping( vec3 color ) { return color; }`,VG=`#ifdef USE_TRANSMISSION
|
|
material.transmission = transmission;
|
|
material.transmissionAlpha = 1.0;
|
|
material.thickness = thickness;
|
|
material.attenuationDistance = attenuationDistance;
|
|
material.attenuationColor = attenuationColor;
|
|
#ifdef USE_TRANSMISSIONMAP
|
|
material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;
|
|
#endif
|
|
#ifdef USE_THICKNESSMAP
|
|
material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;
|
|
#endif
|
|
vec3 pos = vWorldPosition;
|
|
vec3 v = normalize( cameraPosition - pos );
|
|
vec3 n = inverseTransformDirection( normal, viewMatrix );
|
|
vec4 transmitted = getIBLVolumeRefraction(
|
|
n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,
|
|
pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,
|
|
material.attenuationColor, material.attenuationDistance );
|
|
material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );
|
|
totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );
|
|
#endif`,jG=`#ifdef USE_TRANSMISSION
|
|
uniform float transmission;
|
|
uniform float thickness;
|
|
uniform float attenuationDistance;
|
|
uniform vec3 attenuationColor;
|
|
#ifdef USE_TRANSMISSIONMAP
|
|
uniform sampler2D transmissionMap;
|
|
#endif
|
|
#ifdef USE_THICKNESSMAP
|
|
uniform sampler2D thicknessMap;
|
|
#endif
|
|
uniform vec2 transmissionSamplerSize;
|
|
uniform sampler2D transmissionSamplerMap;
|
|
uniform mat4 modelMatrix;
|
|
uniform mat4 projectionMatrix;
|
|
varying vec3 vWorldPosition;
|
|
float w0( float a ) {
|
|
return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );
|
|
}
|
|
float w1( float a ) {
|
|
return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );
|
|
}
|
|
float w2( float a ){
|
|
return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );
|
|
}
|
|
float w3( float a ) {
|
|
return ( 1.0 / 6.0 ) * ( a * a * a );
|
|
}
|
|
float g0( float a ) {
|
|
return w0( a ) + w1( a );
|
|
}
|
|
float g1( float a ) {
|
|
return w2( a ) + w3( a );
|
|
}
|
|
float h0( float a ) {
|
|
return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );
|
|
}
|
|
float h1( float a ) {
|
|
return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );
|
|
}
|
|
vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {
|
|
uv = uv * texelSize.zw + 0.5;
|
|
vec2 iuv = floor( uv );
|
|
vec2 fuv = fract( uv );
|
|
float g0x = g0( fuv.x );
|
|
float g1x = g1( fuv.x );
|
|
float h0x = h0( fuv.x );
|
|
float h1x = h1( fuv.x );
|
|
float h0y = h0( fuv.y );
|
|
float h1y = h1( fuv.y );
|
|
vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
|
|
vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
|
|
vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
|
|
vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
|
|
return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +
|
|
g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );
|
|
}
|
|
vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {
|
|
vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );
|
|
vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );
|
|
vec2 fLodSizeInv = 1.0 / fLodSize;
|
|
vec2 cLodSizeInv = 1.0 / cLodSize;
|
|
vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );
|
|
vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );
|
|
return mix( fSample, cSample, fract( lod ) );
|
|
}
|
|
vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {
|
|
vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );
|
|
vec3 modelScale;
|
|
modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );
|
|
modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );
|
|
modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
|
|
return normalize( refractionVector ) * thickness * modelScale;
|
|
}
|
|
float applyIorToRoughness( const in float roughness, const in float ior ) {
|
|
return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
|
|
}
|
|
vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {
|
|
float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
|
|
return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );
|
|
}
|
|
vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {
|
|
if ( isinf( attenuationDistance ) ) {
|
|
return vec3( 1.0 );
|
|
} else {
|
|
vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;
|
|
vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance;
|
|
}
|
|
}
|
|
vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,
|
|
const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,
|
|
const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,
|
|
const in vec3 attenuationColor, const in float attenuationDistance ) {
|
|
vec4 transmittedLight;
|
|
vec3 transmittance;
|
|
#ifdef USE_DISPERSION
|
|
float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;
|
|
vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );
|
|
for ( int i = 0; i < 3; i ++ ) {
|
|
vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );
|
|
vec3 refractedRayExit = position + transmissionRay;
|
|
vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
|
|
vec2 refractionCoords = ndcPos.xy / ndcPos.w;
|
|
refractionCoords += 1.0;
|
|
refractionCoords /= 2.0;
|
|
vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );
|
|
transmittedLight[ i ] = transmissionSample[ i ];
|
|
transmittedLight.a += transmissionSample.a;
|
|
transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];
|
|
}
|
|
transmittedLight.a /= 3.0;
|
|
#else
|
|
vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
|
|
vec3 refractedRayExit = position + transmissionRay;
|
|
vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
|
|
vec2 refractionCoords = ndcPos.xy / ndcPos.w;
|
|
refractionCoords += 1.0;
|
|
refractionCoords /= 2.0;
|
|
transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );
|
|
transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );
|
|
#endif
|
|
vec3 attenuatedColor = transmittance * transmittedLight.rgb;
|
|
vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );
|
|
float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;
|
|
return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );
|
|
}
|
|
#endif`,GG=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
|
|
varying vec2 vUv;
|
|
#endif
|
|
#ifdef USE_MAP
|
|
varying vec2 vMapUv;
|
|
#endif
|
|
#ifdef USE_ALPHAMAP
|
|
varying vec2 vAlphaMapUv;
|
|
#endif
|
|
#ifdef USE_LIGHTMAP
|
|
varying vec2 vLightMapUv;
|
|
#endif
|
|
#ifdef USE_AOMAP
|
|
varying vec2 vAoMapUv;
|
|
#endif
|
|
#ifdef USE_BUMPMAP
|
|
varying vec2 vBumpMapUv;
|
|
#endif
|
|
#ifdef USE_NORMALMAP
|
|
varying vec2 vNormalMapUv;
|
|
#endif
|
|
#ifdef USE_EMISSIVEMAP
|
|
varying vec2 vEmissiveMapUv;
|
|
#endif
|
|
#ifdef USE_METALNESSMAP
|
|
varying vec2 vMetalnessMapUv;
|
|
#endif
|
|
#ifdef USE_ROUGHNESSMAP
|
|
varying vec2 vRoughnessMapUv;
|
|
#endif
|
|
#ifdef USE_ANISOTROPYMAP
|
|
varying vec2 vAnisotropyMapUv;
|
|
#endif
|
|
#ifdef USE_CLEARCOATMAP
|
|
varying vec2 vClearcoatMapUv;
|
|
#endif
|
|
#ifdef USE_CLEARCOAT_NORMALMAP
|
|
varying vec2 vClearcoatNormalMapUv;
|
|
#endif
|
|
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
|
|
varying vec2 vClearcoatRoughnessMapUv;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCEMAP
|
|
varying vec2 vIridescenceMapUv;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCE_THICKNESSMAP
|
|
varying vec2 vIridescenceThicknessMapUv;
|
|
#endif
|
|
#ifdef USE_SHEEN_COLORMAP
|
|
varying vec2 vSheenColorMapUv;
|
|
#endif
|
|
#ifdef USE_SHEEN_ROUGHNESSMAP
|
|
varying vec2 vSheenRoughnessMapUv;
|
|
#endif
|
|
#ifdef USE_SPECULARMAP
|
|
varying vec2 vSpecularMapUv;
|
|
#endif
|
|
#ifdef USE_SPECULAR_COLORMAP
|
|
varying vec2 vSpecularColorMapUv;
|
|
#endif
|
|
#ifdef USE_SPECULAR_INTENSITYMAP
|
|
varying vec2 vSpecularIntensityMapUv;
|
|
#endif
|
|
#ifdef USE_TRANSMISSIONMAP
|
|
uniform mat3 transmissionMapTransform;
|
|
varying vec2 vTransmissionMapUv;
|
|
#endif
|
|
#ifdef USE_THICKNESSMAP
|
|
uniform mat3 thicknessMapTransform;
|
|
varying vec2 vThicknessMapUv;
|
|
#endif`,XG=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
|
|
varying vec2 vUv;
|
|
#endif
|
|
#ifdef USE_MAP
|
|
uniform mat3 mapTransform;
|
|
varying vec2 vMapUv;
|
|
#endif
|
|
#ifdef USE_ALPHAMAP
|
|
uniform mat3 alphaMapTransform;
|
|
varying vec2 vAlphaMapUv;
|
|
#endif
|
|
#ifdef USE_LIGHTMAP
|
|
uniform mat3 lightMapTransform;
|
|
varying vec2 vLightMapUv;
|
|
#endif
|
|
#ifdef USE_AOMAP
|
|
uniform mat3 aoMapTransform;
|
|
varying vec2 vAoMapUv;
|
|
#endif
|
|
#ifdef USE_BUMPMAP
|
|
uniform mat3 bumpMapTransform;
|
|
varying vec2 vBumpMapUv;
|
|
#endif
|
|
#ifdef USE_NORMALMAP
|
|
uniform mat3 normalMapTransform;
|
|
varying vec2 vNormalMapUv;
|
|
#endif
|
|
#ifdef USE_DISPLACEMENTMAP
|
|
uniform mat3 displacementMapTransform;
|
|
varying vec2 vDisplacementMapUv;
|
|
#endif
|
|
#ifdef USE_EMISSIVEMAP
|
|
uniform mat3 emissiveMapTransform;
|
|
varying vec2 vEmissiveMapUv;
|
|
#endif
|
|
#ifdef USE_METALNESSMAP
|
|
uniform mat3 metalnessMapTransform;
|
|
varying vec2 vMetalnessMapUv;
|
|
#endif
|
|
#ifdef USE_ROUGHNESSMAP
|
|
uniform mat3 roughnessMapTransform;
|
|
varying vec2 vRoughnessMapUv;
|
|
#endif
|
|
#ifdef USE_ANISOTROPYMAP
|
|
uniform mat3 anisotropyMapTransform;
|
|
varying vec2 vAnisotropyMapUv;
|
|
#endif
|
|
#ifdef USE_CLEARCOATMAP
|
|
uniform mat3 clearcoatMapTransform;
|
|
varying vec2 vClearcoatMapUv;
|
|
#endif
|
|
#ifdef USE_CLEARCOAT_NORMALMAP
|
|
uniform mat3 clearcoatNormalMapTransform;
|
|
varying vec2 vClearcoatNormalMapUv;
|
|
#endif
|
|
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
|
|
uniform mat3 clearcoatRoughnessMapTransform;
|
|
varying vec2 vClearcoatRoughnessMapUv;
|
|
#endif
|
|
#ifdef USE_SHEEN_COLORMAP
|
|
uniform mat3 sheenColorMapTransform;
|
|
varying vec2 vSheenColorMapUv;
|
|
#endif
|
|
#ifdef USE_SHEEN_ROUGHNESSMAP
|
|
uniform mat3 sheenRoughnessMapTransform;
|
|
varying vec2 vSheenRoughnessMapUv;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCEMAP
|
|
uniform mat3 iridescenceMapTransform;
|
|
varying vec2 vIridescenceMapUv;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCE_THICKNESSMAP
|
|
uniform mat3 iridescenceThicknessMapTransform;
|
|
varying vec2 vIridescenceThicknessMapUv;
|
|
#endif
|
|
#ifdef USE_SPECULARMAP
|
|
uniform mat3 specularMapTransform;
|
|
varying vec2 vSpecularMapUv;
|
|
#endif
|
|
#ifdef USE_SPECULAR_COLORMAP
|
|
uniform mat3 specularColorMapTransform;
|
|
varying vec2 vSpecularColorMapUv;
|
|
#endif
|
|
#ifdef USE_SPECULAR_INTENSITYMAP
|
|
uniform mat3 specularIntensityMapTransform;
|
|
varying vec2 vSpecularIntensityMapUv;
|
|
#endif
|
|
#ifdef USE_TRANSMISSIONMAP
|
|
uniform mat3 transmissionMapTransform;
|
|
varying vec2 vTransmissionMapUv;
|
|
#endif
|
|
#ifdef USE_THICKNESSMAP
|
|
uniform mat3 thicknessMapTransform;
|
|
varying vec2 vThicknessMapUv;
|
|
#endif`,WG=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
|
|
vUv = vec3( uv, 1 ).xy;
|
|
#endif
|
|
#ifdef USE_MAP
|
|
vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_ALPHAMAP
|
|
vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_LIGHTMAP
|
|
vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_AOMAP
|
|
vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_BUMPMAP
|
|
vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_NORMALMAP
|
|
vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_DISPLACEMENTMAP
|
|
vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_EMISSIVEMAP
|
|
vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_METALNESSMAP
|
|
vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_ROUGHNESSMAP
|
|
vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_ANISOTROPYMAP
|
|
vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_CLEARCOATMAP
|
|
vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_CLEARCOAT_NORMALMAP
|
|
vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_CLEARCOAT_ROUGHNESSMAP
|
|
vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCEMAP
|
|
vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCE_THICKNESSMAP
|
|
vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_SHEEN_COLORMAP
|
|
vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_SHEEN_ROUGHNESSMAP
|
|
vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_SPECULARMAP
|
|
vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_SPECULAR_COLORMAP
|
|
vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_SPECULAR_INTENSITYMAP
|
|
vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_TRANSMISSIONMAP
|
|
vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;
|
|
#endif
|
|
#ifdef USE_THICKNESSMAP
|
|
vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;
|
|
#endif`,QG=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0
|
|
vec4 worldPosition = vec4( transformed, 1.0 );
|
|
#ifdef USE_BATCHING
|
|
worldPosition = batchingMatrix * worldPosition;
|
|
#endif
|
|
#ifdef USE_INSTANCING
|
|
worldPosition = instanceMatrix * worldPosition;
|
|
#endif
|
|
worldPosition = modelMatrix * worldPosition;
|
|
#endif`;const hc={alphahash_fragment:YV,alphahash_pars_fragment:KV,alphamap_fragment:JV,alphamap_pars_fragment:qV,alphatest_fragment:_V,alphatest_pars_fragment:$V,aomap_fragment:ej,aomap_pars_fragment:tj,batching_pars_vertex:nj,batching_vertex:ij,begin_vertex:rj,beginnormal_vertex:oj,bsdfs:sj,iridescence_fragment:aj,bumpmap_pars_fragment:lj,clipping_planes_fragment:uj,clipping_planes_pars_fragment:cj,clipping_planes_pars_vertex:hj,clipping_planes_vertex:dj,color_fragment:fj,color_pars_fragment:pj,color_pars_vertex:gj,color_vertex:mj,common:vj,cube_uv_reflection_fragment:yj,defaultnormal_vertex:Aj,displacementmap_pars_vertex:xj,displacementmap_vertex:wj,emissivemap_fragment:Sj,emissivemap_pars_fragment:Pj,colorspace_fragment:Cj,colorspace_pars_fragment:Ej,envmap_fragment:bj,envmap_common_pars_fragment:Mj,envmap_pars_fragment:Bj,envmap_pars_vertex:Tj,envmap_physical_pars_fragment:Hj,envmap_vertex:Dj,fog_vertex:Nj,fog_pars_vertex:Fj,fog_fragment:Lj,fog_pars_fragment:Ij,gradientmap_pars_fragment:kj,lightmap_pars_fragment:Oj,lights_lambert_fragment:Rj,lights_lambert_pars_fragment:zj,lights_pars_begin:Uj,lights_toon_fragment:Vj,lights_toon_pars_fragment:jj,lights_phong_fragment:Gj,lights_phong_pars_fragment:Xj,lights_physical_fragment:Wj,lights_physical_pars_fragment:Qj,lights_fragment_begin:Zj,lights_fragment_maps:Yj,lights_fragment_end:Kj,logdepthbuf_fragment:Jj,logdepthbuf_pars_fragment:qj,logdepthbuf_pars_vertex:_j,logdepthbuf_vertex:$j,map_fragment:eG,map_pars_fragment:tG,map_particle_fragment:nG,map_particle_pars_fragment:iG,metalnessmap_fragment:rG,metalnessmap_pars_fragment:oG,morphinstance_vertex:sG,morphcolor_vertex:aG,morphnormal_vertex:lG,morphtarget_pars_vertex:uG,morphtarget_vertex:cG,normal_fragment_begin:hG,normal_fragment_maps:dG,normal_pars_fragment:fG,normal_pars_vertex:pG,normal_vertex:gG,normalmap_pars_fragment:mG,clearcoat_normal_fragment_begin:vG,clearcoat_normal_fragment_maps:yG,clearcoat_pars_fragment:AG,iridescence_pars_fragment:xG,opaque_fragment:wG,packing:SG,premultiplied_alpha_fragment:PG,project_vertex:CG,dithering_fragment:EG,dithering_pars_fragment:bG,roughnessmap_fragment:MG,roughnessmap_pars_fragment:BG,shadowmap_pars_fragment:TG,shadowmap_pars_vertex:DG,shadowmap_vertex:NG,shadowmask_pars_fragment:FG,skinbase_vertex:LG,skinning_pars_vertex:IG,skinning_vertex:kG,skinnormal_vertex:OG,specularmap_fragment:RG,specularmap_pars_fragment:zG,tonemapping_fragment:UG,tonemapping_pars_fragment:HG,transmission_fragment:VG,transmission_pars_fragment:jG,uv_pars_fragment:GG,uv_pars_vertex:XG,uv_vertex:WG,worldpos_vertex:QG,background_vert:`varying vec2 vUv;
|
|
uniform mat3 uvTransform;
|
|
void main() {
|
|
vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
|
|
gl_Position = vec4( position.xy, 1.0, 1.0 );
|
|
}`,background_frag:`uniform sampler2D t2D;
|
|
uniform float backgroundIntensity;
|
|
varying vec2 vUv;
|
|
void main() {
|
|
vec4 texColor = texture2D( t2D, vUv );
|
|
#ifdef DECODE_VIDEO_TEXTURE
|
|
texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );
|
|
#endif
|
|
texColor.rgb *= backgroundIntensity;
|
|
gl_FragColor = texColor;
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
}`,backgroundCube_vert:`varying vec3 vWorldDirection;
|
|
#include <common>
|
|
void main() {
|
|
vWorldDirection = transformDirection( position, modelMatrix );
|
|
#include <begin_vertex>
|
|
#include <project_vertex>
|
|
gl_Position.z = gl_Position.w;
|
|
}`,backgroundCube_frag:`#ifdef ENVMAP_TYPE_CUBE
|
|
uniform samplerCube envMap;
|
|
#elif defined( ENVMAP_TYPE_CUBE_UV )
|
|
uniform sampler2D envMap;
|
|
#endif
|
|
uniform float flipEnvMap;
|
|
uniform float backgroundBlurriness;
|
|
uniform float backgroundIntensity;
|
|
uniform mat3 backgroundRotation;
|
|
varying vec3 vWorldDirection;
|
|
#include <cube_uv_reflection_fragment>
|
|
void main() {
|
|
#ifdef ENVMAP_TYPE_CUBE
|
|
vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );
|
|
#elif defined( ENVMAP_TYPE_CUBE_UV )
|
|
vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );
|
|
#else
|
|
vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );
|
|
#endif
|
|
texColor.rgb *= backgroundIntensity;
|
|
gl_FragColor = texColor;
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
}`,cube_vert:`varying vec3 vWorldDirection;
|
|
#include <common>
|
|
void main() {
|
|
vWorldDirection = transformDirection( position, modelMatrix );
|
|
#include <begin_vertex>
|
|
#include <project_vertex>
|
|
gl_Position.z = gl_Position.w;
|
|
}`,cube_frag:`uniform samplerCube tCube;
|
|
uniform float tFlip;
|
|
uniform float opacity;
|
|
varying vec3 vWorldDirection;
|
|
void main() {
|
|
vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );
|
|
gl_FragColor = texColor;
|
|
gl_FragColor.a *= opacity;
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
}`,depth_vert:`#include <common>
|
|
#include <batching_pars_vertex>
|
|
#include <uv_pars_vertex>
|
|
#include <displacementmap_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <skinning_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
varying vec2 vHighPrecisionZW;
|
|
void main() {
|
|
#include <uv_vertex>
|
|
#include <batching_vertex>
|
|
#include <skinbase_vertex>
|
|
#include <morphinstance_vertex>
|
|
#ifdef USE_DISPLACEMENTMAP
|
|
#include <beginnormal_vertex>
|
|
#include <morphnormal_vertex>
|
|
#include <skinnormal_vertex>
|
|
#endif
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <skinning_vertex>
|
|
#include <displacementmap_vertex>
|
|
#include <project_vertex>
|
|
#include <logdepthbuf_vertex>
|
|
#include <clipping_planes_vertex>
|
|
vHighPrecisionZW = gl_Position.zw;
|
|
}`,depth_frag:`#if DEPTH_PACKING == 3200
|
|
uniform float opacity;
|
|
#endif
|
|
#include <common>
|
|
#include <packing>
|
|
#include <uv_pars_fragment>
|
|
#include <map_pars_fragment>
|
|
#include <alphamap_pars_fragment>
|
|
#include <alphatest_pars_fragment>
|
|
#include <alphahash_pars_fragment>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
varying vec2 vHighPrecisionZW;
|
|
void main() {
|
|
vec4 diffuseColor = vec4( 1.0 );
|
|
#include <clipping_planes_fragment>
|
|
#if DEPTH_PACKING == 3200
|
|
diffuseColor.a = opacity;
|
|
#endif
|
|
#include <map_fragment>
|
|
#include <alphamap_fragment>
|
|
#include <alphatest_fragment>
|
|
#include <alphahash_fragment>
|
|
#include <logdepthbuf_fragment>
|
|
float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;
|
|
#if DEPTH_PACKING == 3200
|
|
gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );
|
|
#elif DEPTH_PACKING == 3201
|
|
gl_FragColor = packDepthToRGBA( fragCoordZ );
|
|
#elif DEPTH_PACKING == 3202
|
|
gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );
|
|
#elif DEPTH_PACKING == 3203
|
|
gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );
|
|
#endif
|
|
}`,distanceRGBA_vert:`#define DISTANCE
|
|
varying vec3 vWorldPosition;
|
|
#include <common>
|
|
#include <batching_pars_vertex>
|
|
#include <uv_pars_vertex>
|
|
#include <displacementmap_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <skinning_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
void main() {
|
|
#include <uv_vertex>
|
|
#include <batching_vertex>
|
|
#include <skinbase_vertex>
|
|
#include <morphinstance_vertex>
|
|
#ifdef USE_DISPLACEMENTMAP
|
|
#include <beginnormal_vertex>
|
|
#include <morphnormal_vertex>
|
|
#include <skinnormal_vertex>
|
|
#endif
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <skinning_vertex>
|
|
#include <displacementmap_vertex>
|
|
#include <project_vertex>
|
|
#include <worldpos_vertex>
|
|
#include <clipping_planes_vertex>
|
|
vWorldPosition = worldPosition.xyz;
|
|
}`,distanceRGBA_frag:`#define DISTANCE
|
|
uniform vec3 referencePosition;
|
|
uniform float nearDistance;
|
|
uniform float farDistance;
|
|
varying vec3 vWorldPosition;
|
|
#include <common>
|
|
#include <packing>
|
|
#include <uv_pars_fragment>
|
|
#include <map_pars_fragment>
|
|
#include <alphamap_pars_fragment>
|
|
#include <alphatest_pars_fragment>
|
|
#include <alphahash_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
void main () {
|
|
vec4 diffuseColor = vec4( 1.0 );
|
|
#include <clipping_planes_fragment>
|
|
#include <map_fragment>
|
|
#include <alphamap_fragment>
|
|
#include <alphatest_fragment>
|
|
#include <alphahash_fragment>
|
|
float dist = length( vWorldPosition - referencePosition );
|
|
dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
|
|
dist = saturate( dist );
|
|
gl_FragColor = packDepthToRGBA( dist );
|
|
}`,equirect_vert:`varying vec3 vWorldDirection;
|
|
#include <common>
|
|
void main() {
|
|
vWorldDirection = transformDirection( position, modelMatrix );
|
|
#include <begin_vertex>
|
|
#include <project_vertex>
|
|
}`,equirect_frag:`uniform sampler2D tEquirect;
|
|
varying vec3 vWorldDirection;
|
|
#include <common>
|
|
void main() {
|
|
vec3 direction = normalize( vWorldDirection );
|
|
vec2 sampleUV = equirectUv( direction );
|
|
gl_FragColor = texture2D( tEquirect, sampleUV );
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
}`,linedashed_vert:`uniform float scale;
|
|
attribute float lineDistance;
|
|
varying float vLineDistance;
|
|
#include <common>
|
|
#include <uv_pars_vertex>
|
|
#include <color_pars_vertex>
|
|
#include <fog_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
void main() {
|
|
vLineDistance = scale * lineDistance;
|
|
#include <uv_vertex>
|
|
#include <color_vertex>
|
|
#include <morphinstance_vertex>
|
|
#include <morphcolor_vertex>
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <project_vertex>
|
|
#include <logdepthbuf_vertex>
|
|
#include <clipping_planes_vertex>
|
|
#include <fog_vertex>
|
|
}`,linedashed_frag:`uniform vec3 diffuse;
|
|
uniform float opacity;
|
|
uniform float dashSize;
|
|
uniform float totalSize;
|
|
varying float vLineDistance;
|
|
#include <common>
|
|
#include <color_pars_fragment>
|
|
#include <uv_pars_fragment>
|
|
#include <map_pars_fragment>
|
|
#include <fog_pars_fragment>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
void main() {
|
|
vec4 diffuseColor = vec4( diffuse, opacity );
|
|
#include <clipping_planes_fragment>
|
|
if ( mod( vLineDistance, totalSize ) > dashSize ) {
|
|
discard;
|
|
}
|
|
vec3 outgoingLight = vec3( 0.0 );
|
|
#include <logdepthbuf_fragment>
|
|
#include <map_fragment>
|
|
#include <color_fragment>
|
|
outgoingLight = diffuseColor.rgb;
|
|
#include <opaque_fragment>
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
#include <fog_fragment>
|
|
#include <premultiplied_alpha_fragment>
|
|
}`,meshbasic_vert:`#include <common>
|
|
#include <batching_pars_vertex>
|
|
#include <uv_pars_vertex>
|
|
#include <envmap_pars_vertex>
|
|
#include <color_pars_vertex>
|
|
#include <fog_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <skinning_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
void main() {
|
|
#include <uv_vertex>
|
|
#include <color_vertex>
|
|
#include <morphinstance_vertex>
|
|
#include <morphcolor_vertex>
|
|
#include <batching_vertex>
|
|
#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )
|
|
#include <beginnormal_vertex>
|
|
#include <morphnormal_vertex>
|
|
#include <skinbase_vertex>
|
|
#include <skinnormal_vertex>
|
|
#include <defaultnormal_vertex>
|
|
#endif
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <skinning_vertex>
|
|
#include <project_vertex>
|
|
#include <logdepthbuf_vertex>
|
|
#include <clipping_planes_vertex>
|
|
#include <worldpos_vertex>
|
|
#include <envmap_vertex>
|
|
#include <fog_vertex>
|
|
}`,meshbasic_frag:`uniform vec3 diffuse;
|
|
uniform float opacity;
|
|
#ifndef FLAT_SHADED
|
|
varying vec3 vNormal;
|
|
#endif
|
|
#include <common>
|
|
#include <dithering_pars_fragment>
|
|
#include <color_pars_fragment>
|
|
#include <uv_pars_fragment>
|
|
#include <map_pars_fragment>
|
|
#include <alphamap_pars_fragment>
|
|
#include <alphatest_pars_fragment>
|
|
#include <alphahash_pars_fragment>
|
|
#include <aomap_pars_fragment>
|
|
#include <lightmap_pars_fragment>
|
|
#include <envmap_common_pars_fragment>
|
|
#include <envmap_pars_fragment>
|
|
#include <fog_pars_fragment>
|
|
#include <specularmap_pars_fragment>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
void main() {
|
|
vec4 diffuseColor = vec4( diffuse, opacity );
|
|
#include <clipping_planes_fragment>
|
|
#include <logdepthbuf_fragment>
|
|
#include <map_fragment>
|
|
#include <color_fragment>
|
|
#include <alphamap_fragment>
|
|
#include <alphatest_fragment>
|
|
#include <alphahash_fragment>
|
|
#include <specularmap_fragment>
|
|
ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
|
|
#ifdef USE_LIGHTMAP
|
|
vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
|
|
reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;
|
|
#else
|
|
reflectedLight.indirectDiffuse += vec3( 1.0 );
|
|
#endif
|
|
#include <aomap_fragment>
|
|
reflectedLight.indirectDiffuse *= diffuseColor.rgb;
|
|
vec3 outgoingLight = reflectedLight.indirectDiffuse;
|
|
#include <envmap_fragment>
|
|
#include <opaque_fragment>
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
#include <fog_fragment>
|
|
#include <premultiplied_alpha_fragment>
|
|
#include <dithering_fragment>
|
|
}`,meshlambert_vert:`#define LAMBERT
|
|
varying vec3 vViewPosition;
|
|
#include <common>
|
|
#include <batching_pars_vertex>
|
|
#include <uv_pars_vertex>
|
|
#include <displacementmap_pars_vertex>
|
|
#include <envmap_pars_vertex>
|
|
#include <color_pars_vertex>
|
|
#include <fog_pars_vertex>
|
|
#include <normal_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <skinning_pars_vertex>
|
|
#include <shadowmap_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
void main() {
|
|
#include <uv_vertex>
|
|
#include <color_vertex>
|
|
#include <morphinstance_vertex>
|
|
#include <morphcolor_vertex>
|
|
#include <batching_vertex>
|
|
#include <beginnormal_vertex>
|
|
#include <morphnormal_vertex>
|
|
#include <skinbase_vertex>
|
|
#include <skinnormal_vertex>
|
|
#include <defaultnormal_vertex>
|
|
#include <normal_vertex>
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <skinning_vertex>
|
|
#include <displacementmap_vertex>
|
|
#include <project_vertex>
|
|
#include <logdepthbuf_vertex>
|
|
#include <clipping_planes_vertex>
|
|
vViewPosition = - mvPosition.xyz;
|
|
#include <worldpos_vertex>
|
|
#include <envmap_vertex>
|
|
#include <shadowmap_vertex>
|
|
#include <fog_vertex>
|
|
}`,meshlambert_frag:`#define LAMBERT
|
|
uniform vec3 diffuse;
|
|
uniform vec3 emissive;
|
|
uniform float opacity;
|
|
#include <common>
|
|
#include <packing>
|
|
#include <dithering_pars_fragment>
|
|
#include <color_pars_fragment>
|
|
#include <uv_pars_fragment>
|
|
#include <map_pars_fragment>
|
|
#include <alphamap_pars_fragment>
|
|
#include <alphatest_pars_fragment>
|
|
#include <alphahash_pars_fragment>
|
|
#include <aomap_pars_fragment>
|
|
#include <lightmap_pars_fragment>
|
|
#include <emissivemap_pars_fragment>
|
|
#include <envmap_common_pars_fragment>
|
|
#include <envmap_pars_fragment>
|
|
#include <fog_pars_fragment>
|
|
#include <bsdfs>
|
|
#include <lights_pars_begin>
|
|
#include <normal_pars_fragment>
|
|
#include <lights_lambert_pars_fragment>
|
|
#include <shadowmap_pars_fragment>
|
|
#include <bumpmap_pars_fragment>
|
|
#include <normalmap_pars_fragment>
|
|
#include <specularmap_pars_fragment>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
void main() {
|
|
vec4 diffuseColor = vec4( diffuse, opacity );
|
|
#include <clipping_planes_fragment>
|
|
ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
|
|
vec3 totalEmissiveRadiance = emissive;
|
|
#include <logdepthbuf_fragment>
|
|
#include <map_fragment>
|
|
#include <color_fragment>
|
|
#include <alphamap_fragment>
|
|
#include <alphatest_fragment>
|
|
#include <alphahash_fragment>
|
|
#include <specularmap_fragment>
|
|
#include <normal_fragment_begin>
|
|
#include <normal_fragment_maps>
|
|
#include <emissivemap_fragment>
|
|
#include <lights_lambert_fragment>
|
|
#include <lights_fragment_begin>
|
|
#include <lights_fragment_maps>
|
|
#include <lights_fragment_end>
|
|
#include <aomap_fragment>
|
|
vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
|
|
#include <envmap_fragment>
|
|
#include <opaque_fragment>
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
#include <fog_fragment>
|
|
#include <premultiplied_alpha_fragment>
|
|
#include <dithering_fragment>
|
|
}`,meshmatcap_vert:`#define MATCAP
|
|
varying vec3 vViewPosition;
|
|
#include <common>
|
|
#include <batching_pars_vertex>
|
|
#include <uv_pars_vertex>
|
|
#include <color_pars_vertex>
|
|
#include <displacementmap_pars_vertex>
|
|
#include <fog_pars_vertex>
|
|
#include <normal_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <skinning_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
void main() {
|
|
#include <uv_vertex>
|
|
#include <color_vertex>
|
|
#include <morphinstance_vertex>
|
|
#include <morphcolor_vertex>
|
|
#include <batching_vertex>
|
|
#include <beginnormal_vertex>
|
|
#include <morphnormal_vertex>
|
|
#include <skinbase_vertex>
|
|
#include <skinnormal_vertex>
|
|
#include <defaultnormal_vertex>
|
|
#include <normal_vertex>
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <skinning_vertex>
|
|
#include <displacementmap_vertex>
|
|
#include <project_vertex>
|
|
#include <logdepthbuf_vertex>
|
|
#include <clipping_planes_vertex>
|
|
#include <fog_vertex>
|
|
vViewPosition = - mvPosition.xyz;
|
|
}`,meshmatcap_frag:`#define MATCAP
|
|
uniform vec3 diffuse;
|
|
uniform float opacity;
|
|
uniform sampler2D matcap;
|
|
varying vec3 vViewPosition;
|
|
#include <common>
|
|
#include <dithering_pars_fragment>
|
|
#include <color_pars_fragment>
|
|
#include <uv_pars_fragment>
|
|
#include <map_pars_fragment>
|
|
#include <alphamap_pars_fragment>
|
|
#include <alphatest_pars_fragment>
|
|
#include <alphahash_pars_fragment>
|
|
#include <fog_pars_fragment>
|
|
#include <normal_pars_fragment>
|
|
#include <bumpmap_pars_fragment>
|
|
#include <normalmap_pars_fragment>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
void main() {
|
|
vec4 diffuseColor = vec4( diffuse, opacity );
|
|
#include <clipping_planes_fragment>
|
|
#include <logdepthbuf_fragment>
|
|
#include <map_fragment>
|
|
#include <color_fragment>
|
|
#include <alphamap_fragment>
|
|
#include <alphatest_fragment>
|
|
#include <alphahash_fragment>
|
|
#include <normal_fragment_begin>
|
|
#include <normal_fragment_maps>
|
|
vec3 viewDir = normalize( vViewPosition );
|
|
vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
|
|
vec3 y = cross( viewDir, x );
|
|
vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;
|
|
#ifdef USE_MATCAP
|
|
vec4 matcapColor = texture2D( matcap, uv );
|
|
#else
|
|
vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );
|
|
#endif
|
|
vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;
|
|
#include <opaque_fragment>
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
#include <fog_fragment>
|
|
#include <premultiplied_alpha_fragment>
|
|
#include <dithering_fragment>
|
|
}`,meshnormal_vert:`#define NORMAL
|
|
#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
|
|
varying vec3 vViewPosition;
|
|
#endif
|
|
#include <common>
|
|
#include <batching_pars_vertex>
|
|
#include <uv_pars_vertex>
|
|
#include <displacementmap_pars_vertex>
|
|
#include <normal_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <skinning_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
void main() {
|
|
#include <uv_vertex>
|
|
#include <batching_vertex>
|
|
#include <beginnormal_vertex>
|
|
#include <morphinstance_vertex>
|
|
#include <morphnormal_vertex>
|
|
#include <skinbase_vertex>
|
|
#include <skinnormal_vertex>
|
|
#include <defaultnormal_vertex>
|
|
#include <normal_vertex>
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <skinning_vertex>
|
|
#include <displacementmap_vertex>
|
|
#include <project_vertex>
|
|
#include <logdepthbuf_vertex>
|
|
#include <clipping_planes_vertex>
|
|
#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
|
|
vViewPosition = - mvPosition.xyz;
|
|
#endif
|
|
}`,meshnormal_frag:`#define NORMAL
|
|
uniform float opacity;
|
|
#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
|
|
varying vec3 vViewPosition;
|
|
#endif
|
|
#include <packing>
|
|
#include <uv_pars_fragment>
|
|
#include <normal_pars_fragment>
|
|
#include <bumpmap_pars_fragment>
|
|
#include <normalmap_pars_fragment>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
void main() {
|
|
vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );
|
|
#include <clipping_planes_fragment>
|
|
#include <logdepthbuf_fragment>
|
|
#include <normal_fragment_begin>
|
|
#include <normal_fragment_maps>
|
|
gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );
|
|
#ifdef OPAQUE
|
|
gl_FragColor.a = 1.0;
|
|
#endif
|
|
}`,meshphong_vert:`#define PHONG
|
|
varying vec3 vViewPosition;
|
|
#include <common>
|
|
#include <batching_pars_vertex>
|
|
#include <uv_pars_vertex>
|
|
#include <displacementmap_pars_vertex>
|
|
#include <envmap_pars_vertex>
|
|
#include <color_pars_vertex>
|
|
#include <fog_pars_vertex>
|
|
#include <normal_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <skinning_pars_vertex>
|
|
#include <shadowmap_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
void main() {
|
|
#include <uv_vertex>
|
|
#include <color_vertex>
|
|
#include <morphcolor_vertex>
|
|
#include <batching_vertex>
|
|
#include <beginnormal_vertex>
|
|
#include <morphinstance_vertex>
|
|
#include <morphnormal_vertex>
|
|
#include <skinbase_vertex>
|
|
#include <skinnormal_vertex>
|
|
#include <defaultnormal_vertex>
|
|
#include <normal_vertex>
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <skinning_vertex>
|
|
#include <displacementmap_vertex>
|
|
#include <project_vertex>
|
|
#include <logdepthbuf_vertex>
|
|
#include <clipping_planes_vertex>
|
|
vViewPosition = - mvPosition.xyz;
|
|
#include <worldpos_vertex>
|
|
#include <envmap_vertex>
|
|
#include <shadowmap_vertex>
|
|
#include <fog_vertex>
|
|
}`,meshphong_frag:`#define PHONG
|
|
uniform vec3 diffuse;
|
|
uniform vec3 emissive;
|
|
uniform vec3 specular;
|
|
uniform float shininess;
|
|
uniform float opacity;
|
|
#include <common>
|
|
#include <packing>
|
|
#include <dithering_pars_fragment>
|
|
#include <color_pars_fragment>
|
|
#include <uv_pars_fragment>
|
|
#include <map_pars_fragment>
|
|
#include <alphamap_pars_fragment>
|
|
#include <alphatest_pars_fragment>
|
|
#include <alphahash_pars_fragment>
|
|
#include <aomap_pars_fragment>
|
|
#include <lightmap_pars_fragment>
|
|
#include <emissivemap_pars_fragment>
|
|
#include <envmap_common_pars_fragment>
|
|
#include <envmap_pars_fragment>
|
|
#include <fog_pars_fragment>
|
|
#include <bsdfs>
|
|
#include <lights_pars_begin>
|
|
#include <normal_pars_fragment>
|
|
#include <lights_phong_pars_fragment>
|
|
#include <shadowmap_pars_fragment>
|
|
#include <bumpmap_pars_fragment>
|
|
#include <normalmap_pars_fragment>
|
|
#include <specularmap_pars_fragment>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
void main() {
|
|
vec4 diffuseColor = vec4( diffuse, opacity );
|
|
#include <clipping_planes_fragment>
|
|
ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
|
|
vec3 totalEmissiveRadiance = emissive;
|
|
#include <logdepthbuf_fragment>
|
|
#include <map_fragment>
|
|
#include <color_fragment>
|
|
#include <alphamap_fragment>
|
|
#include <alphatest_fragment>
|
|
#include <alphahash_fragment>
|
|
#include <specularmap_fragment>
|
|
#include <normal_fragment_begin>
|
|
#include <normal_fragment_maps>
|
|
#include <emissivemap_fragment>
|
|
#include <lights_phong_fragment>
|
|
#include <lights_fragment_begin>
|
|
#include <lights_fragment_maps>
|
|
#include <lights_fragment_end>
|
|
#include <aomap_fragment>
|
|
vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
|
|
#include <envmap_fragment>
|
|
#include <opaque_fragment>
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
#include <fog_fragment>
|
|
#include <premultiplied_alpha_fragment>
|
|
#include <dithering_fragment>
|
|
}`,meshphysical_vert:`#define STANDARD
|
|
varying vec3 vViewPosition;
|
|
#ifdef USE_TRANSMISSION
|
|
varying vec3 vWorldPosition;
|
|
#endif
|
|
#include <common>
|
|
#include <batching_pars_vertex>
|
|
#include <uv_pars_vertex>
|
|
#include <displacementmap_pars_vertex>
|
|
#include <color_pars_vertex>
|
|
#include <fog_pars_vertex>
|
|
#include <normal_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <skinning_pars_vertex>
|
|
#include <shadowmap_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
void main() {
|
|
#include <uv_vertex>
|
|
#include <color_vertex>
|
|
#include <morphinstance_vertex>
|
|
#include <morphcolor_vertex>
|
|
#include <batching_vertex>
|
|
#include <beginnormal_vertex>
|
|
#include <morphnormal_vertex>
|
|
#include <skinbase_vertex>
|
|
#include <skinnormal_vertex>
|
|
#include <defaultnormal_vertex>
|
|
#include <normal_vertex>
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <skinning_vertex>
|
|
#include <displacementmap_vertex>
|
|
#include <project_vertex>
|
|
#include <logdepthbuf_vertex>
|
|
#include <clipping_planes_vertex>
|
|
vViewPosition = - mvPosition.xyz;
|
|
#include <worldpos_vertex>
|
|
#include <shadowmap_vertex>
|
|
#include <fog_vertex>
|
|
#ifdef USE_TRANSMISSION
|
|
vWorldPosition = worldPosition.xyz;
|
|
#endif
|
|
}`,meshphysical_frag:`#define STANDARD
|
|
#ifdef PHYSICAL
|
|
#define IOR
|
|
#define USE_SPECULAR
|
|
#endif
|
|
uniform vec3 diffuse;
|
|
uniform vec3 emissive;
|
|
uniform float roughness;
|
|
uniform float metalness;
|
|
uniform float opacity;
|
|
#ifdef IOR
|
|
uniform float ior;
|
|
#endif
|
|
#ifdef USE_SPECULAR
|
|
uniform float specularIntensity;
|
|
uniform vec3 specularColor;
|
|
#ifdef USE_SPECULAR_COLORMAP
|
|
uniform sampler2D specularColorMap;
|
|
#endif
|
|
#ifdef USE_SPECULAR_INTENSITYMAP
|
|
uniform sampler2D specularIntensityMap;
|
|
#endif
|
|
#endif
|
|
#ifdef USE_CLEARCOAT
|
|
uniform float clearcoat;
|
|
uniform float clearcoatRoughness;
|
|
#endif
|
|
#ifdef USE_DISPERSION
|
|
uniform float dispersion;
|
|
#endif
|
|
#ifdef USE_IRIDESCENCE
|
|
uniform float iridescence;
|
|
uniform float iridescenceIOR;
|
|
uniform float iridescenceThicknessMinimum;
|
|
uniform float iridescenceThicknessMaximum;
|
|
#endif
|
|
#ifdef USE_SHEEN
|
|
uniform vec3 sheenColor;
|
|
uniform float sheenRoughness;
|
|
#ifdef USE_SHEEN_COLORMAP
|
|
uniform sampler2D sheenColorMap;
|
|
#endif
|
|
#ifdef USE_SHEEN_ROUGHNESSMAP
|
|
uniform sampler2D sheenRoughnessMap;
|
|
#endif
|
|
#endif
|
|
#ifdef USE_ANISOTROPY
|
|
uniform vec2 anisotropyVector;
|
|
#ifdef USE_ANISOTROPYMAP
|
|
uniform sampler2D anisotropyMap;
|
|
#endif
|
|
#endif
|
|
varying vec3 vViewPosition;
|
|
#include <common>
|
|
#include <packing>
|
|
#include <dithering_pars_fragment>
|
|
#include <color_pars_fragment>
|
|
#include <uv_pars_fragment>
|
|
#include <map_pars_fragment>
|
|
#include <alphamap_pars_fragment>
|
|
#include <alphatest_pars_fragment>
|
|
#include <alphahash_pars_fragment>
|
|
#include <aomap_pars_fragment>
|
|
#include <lightmap_pars_fragment>
|
|
#include <emissivemap_pars_fragment>
|
|
#include <iridescence_fragment>
|
|
#include <cube_uv_reflection_fragment>
|
|
#include <envmap_common_pars_fragment>
|
|
#include <envmap_physical_pars_fragment>
|
|
#include <fog_pars_fragment>
|
|
#include <lights_pars_begin>
|
|
#include <normal_pars_fragment>
|
|
#include <lights_physical_pars_fragment>
|
|
#include <transmission_pars_fragment>
|
|
#include <shadowmap_pars_fragment>
|
|
#include <bumpmap_pars_fragment>
|
|
#include <normalmap_pars_fragment>
|
|
#include <clearcoat_pars_fragment>
|
|
#include <iridescence_pars_fragment>
|
|
#include <roughnessmap_pars_fragment>
|
|
#include <metalnessmap_pars_fragment>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
void main() {
|
|
vec4 diffuseColor = vec4( diffuse, opacity );
|
|
#include <clipping_planes_fragment>
|
|
ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
|
|
vec3 totalEmissiveRadiance = emissive;
|
|
#include <logdepthbuf_fragment>
|
|
#include <map_fragment>
|
|
#include <color_fragment>
|
|
#include <alphamap_fragment>
|
|
#include <alphatest_fragment>
|
|
#include <alphahash_fragment>
|
|
#include <roughnessmap_fragment>
|
|
#include <metalnessmap_fragment>
|
|
#include <normal_fragment_begin>
|
|
#include <normal_fragment_maps>
|
|
#include <clearcoat_normal_fragment_begin>
|
|
#include <clearcoat_normal_fragment_maps>
|
|
#include <emissivemap_fragment>
|
|
#include <lights_physical_fragment>
|
|
#include <lights_fragment_begin>
|
|
#include <lights_fragment_maps>
|
|
#include <lights_fragment_end>
|
|
#include <aomap_fragment>
|
|
vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;
|
|
vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;
|
|
#include <transmission_fragment>
|
|
vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;
|
|
#ifdef USE_SHEEN
|
|
float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );
|
|
outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;
|
|
#endif
|
|
#ifdef USE_CLEARCOAT
|
|
float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );
|
|
vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );
|
|
outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;
|
|
#endif
|
|
#include <opaque_fragment>
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
#include <fog_fragment>
|
|
#include <premultiplied_alpha_fragment>
|
|
#include <dithering_fragment>
|
|
}`,meshtoon_vert:`#define TOON
|
|
varying vec3 vViewPosition;
|
|
#include <common>
|
|
#include <batching_pars_vertex>
|
|
#include <uv_pars_vertex>
|
|
#include <displacementmap_pars_vertex>
|
|
#include <color_pars_vertex>
|
|
#include <fog_pars_vertex>
|
|
#include <normal_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <skinning_pars_vertex>
|
|
#include <shadowmap_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
void main() {
|
|
#include <uv_vertex>
|
|
#include <color_vertex>
|
|
#include <morphinstance_vertex>
|
|
#include <morphcolor_vertex>
|
|
#include <batching_vertex>
|
|
#include <beginnormal_vertex>
|
|
#include <morphnormal_vertex>
|
|
#include <skinbase_vertex>
|
|
#include <skinnormal_vertex>
|
|
#include <defaultnormal_vertex>
|
|
#include <normal_vertex>
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <skinning_vertex>
|
|
#include <displacementmap_vertex>
|
|
#include <project_vertex>
|
|
#include <logdepthbuf_vertex>
|
|
#include <clipping_planes_vertex>
|
|
vViewPosition = - mvPosition.xyz;
|
|
#include <worldpos_vertex>
|
|
#include <shadowmap_vertex>
|
|
#include <fog_vertex>
|
|
}`,meshtoon_frag:`#define TOON
|
|
uniform vec3 diffuse;
|
|
uniform vec3 emissive;
|
|
uniform float opacity;
|
|
#include <common>
|
|
#include <packing>
|
|
#include <dithering_pars_fragment>
|
|
#include <color_pars_fragment>
|
|
#include <uv_pars_fragment>
|
|
#include <map_pars_fragment>
|
|
#include <alphamap_pars_fragment>
|
|
#include <alphatest_pars_fragment>
|
|
#include <alphahash_pars_fragment>
|
|
#include <aomap_pars_fragment>
|
|
#include <lightmap_pars_fragment>
|
|
#include <emissivemap_pars_fragment>
|
|
#include <gradientmap_pars_fragment>
|
|
#include <fog_pars_fragment>
|
|
#include <bsdfs>
|
|
#include <lights_pars_begin>
|
|
#include <normal_pars_fragment>
|
|
#include <lights_toon_pars_fragment>
|
|
#include <shadowmap_pars_fragment>
|
|
#include <bumpmap_pars_fragment>
|
|
#include <normalmap_pars_fragment>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
void main() {
|
|
vec4 diffuseColor = vec4( diffuse, opacity );
|
|
#include <clipping_planes_fragment>
|
|
ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
|
|
vec3 totalEmissiveRadiance = emissive;
|
|
#include <logdepthbuf_fragment>
|
|
#include <map_fragment>
|
|
#include <color_fragment>
|
|
#include <alphamap_fragment>
|
|
#include <alphatest_fragment>
|
|
#include <alphahash_fragment>
|
|
#include <normal_fragment_begin>
|
|
#include <normal_fragment_maps>
|
|
#include <emissivemap_fragment>
|
|
#include <lights_toon_fragment>
|
|
#include <lights_fragment_begin>
|
|
#include <lights_fragment_maps>
|
|
#include <lights_fragment_end>
|
|
#include <aomap_fragment>
|
|
vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
|
|
#include <opaque_fragment>
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
#include <fog_fragment>
|
|
#include <premultiplied_alpha_fragment>
|
|
#include <dithering_fragment>
|
|
}`,points_vert:`uniform float size;
|
|
uniform float scale;
|
|
#include <common>
|
|
#include <color_pars_vertex>
|
|
#include <fog_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
#ifdef USE_POINTS_UV
|
|
varying vec2 vUv;
|
|
uniform mat3 uvTransform;
|
|
#endif
|
|
void main() {
|
|
#ifdef USE_POINTS_UV
|
|
vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
|
|
#endif
|
|
#include <color_vertex>
|
|
#include <morphinstance_vertex>
|
|
#include <morphcolor_vertex>
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <project_vertex>
|
|
gl_PointSize = size;
|
|
#ifdef USE_SIZEATTENUATION
|
|
bool isPerspective = isPerspectiveMatrix( projectionMatrix );
|
|
if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );
|
|
#endif
|
|
#include <logdepthbuf_vertex>
|
|
#include <clipping_planes_vertex>
|
|
#include <worldpos_vertex>
|
|
#include <fog_vertex>
|
|
}`,points_frag:`uniform vec3 diffuse;
|
|
uniform float opacity;
|
|
#include <common>
|
|
#include <color_pars_fragment>
|
|
#include <map_particle_pars_fragment>
|
|
#include <alphatest_pars_fragment>
|
|
#include <alphahash_pars_fragment>
|
|
#include <fog_pars_fragment>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
void main() {
|
|
vec4 diffuseColor = vec4( diffuse, opacity );
|
|
#include <clipping_planes_fragment>
|
|
vec3 outgoingLight = vec3( 0.0 );
|
|
#include <logdepthbuf_fragment>
|
|
#include <map_particle_fragment>
|
|
#include <color_fragment>
|
|
#include <alphatest_fragment>
|
|
#include <alphahash_fragment>
|
|
outgoingLight = diffuseColor.rgb;
|
|
#include <opaque_fragment>
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
#include <fog_fragment>
|
|
#include <premultiplied_alpha_fragment>
|
|
}`,shadow_vert:`#include <common>
|
|
#include <batching_pars_vertex>
|
|
#include <fog_pars_vertex>
|
|
#include <morphtarget_pars_vertex>
|
|
#include <skinning_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <shadowmap_pars_vertex>
|
|
void main() {
|
|
#include <batching_vertex>
|
|
#include <beginnormal_vertex>
|
|
#include <morphinstance_vertex>
|
|
#include <morphnormal_vertex>
|
|
#include <skinbase_vertex>
|
|
#include <skinnormal_vertex>
|
|
#include <defaultnormal_vertex>
|
|
#include <begin_vertex>
|
|
#include <morphtarget_vertex>
|
|
#include <skinning_vertex>
|
|
#include <project_vertex>
|
|
#include <logdepthbuf_vertex>
|
|
#include <worldpos_vertex>
|
|
#include <shadowmap_vertex>
|
|
#include <fog_vertex>
|
|
}`,shadow_frag:`uniform vec3 color;
|
|
uniform float opacity;
|
|
#include <common>
|
|
#include <packing>
|
|
#include <fog_pars_fragment>
|
|
#include <bsdfs>
|
|
#include <lights_pars_begin>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <shadowmap_pars_fragment>
|
|
#include <shadowmask_pars_fragment>
|
|
void main() {
|
|
#include <logdepthbuf_fragment>
|
|
gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
#include <fog_fragment>
|
|
}`,sprite_vert:`uniform float rotation;
|
|
uniform vec2 center;
|
|
#include <common>
|
|
#include <uv_pars_vertex>
|
|
#include <fog_pars_vertex>
|
|
#include <logdepthbuf_pars_vertex>
|
|
#include <clipping_planes_pars_vertex>
|
|
void main() {
|
|
#include <uv_vertex>
|
|
vec4 mvPosition = modelViewMatrix[ 3 ];
|
|
vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );
|
|
#ifndef USE_SIZEATTENUATION
|
|
bool isPerspective = isPerspectiveMatrix( projectionMatrix );
|
|
if ( isPerspective ) scale *= - mvPosition.z;
|
|
#endif
|
|
vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;
|
|
vec2 rotatedPosition;
|
|
rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
|
|
rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
|
|
mvPosition.xy += rotatedPosition;
|
|
gl_Position = projectionMatrix * mvPosition;
|
|
#include <logdepthbuf_vertex>
|
|
#include <clipping_planes_vertex>
|
|
#include <fog_vertex>
|
|
}`,sprite_frag:`uniform vec3 diffuse;
|
|
uniform float opacity;
|
|
#include <common>
|
|
#include <uv_pars_fragment>
|
|
#include <map_pars_fragment>
|
|
#include <alphamap_pars_fragment>
|
|
#include <alphatest_pars_fragment>
|
|
#include <alphahash_pars_fragment>
|
|
#include <fog_pars_fragment>
|
|
#include <logdepthbuf_pars_fragment>
|
|
#include <clipping_planes_pars_fragment>
|
|
void main() {
|
|
vec4 diffuseColor = vec4( diffuse, opacity );
|
|
#include <clipping_planes_fragment>
|
|
vec3 outgoingLight = vec3( 0.0 );
|
|
#include <logdepthbuf_fragment>
|
|
#include <map_fragment>
|
|
#include <alphamap_fragment>
|
|
#include <alphatest_fragment>
|
|
#include <alphahash_fragment>
|
|
outgoingLight = diffuseColor.rgb;
|
|
#include <opaque_fragment>
|
|
#include <tonemapping_fragment>
|
|
#include <colorspace_fragment>
|
|
#include <fog_fragment>
|
|
}`},Ia={common:{diffuse:{value:new ia(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new nu},alphaMap:{value:null},alphaMapTransform:{value:new nu},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new nu}},envmap:{envMap:{value:null},envMapRotation:{value:new nu},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new nu}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new nu}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new nu},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new nu},normalScale:{value:new Yr(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new nu},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new nu}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new nu}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new nu}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new ia(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new ia(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new nu},alphaTest:{value:0},uvTransform:{value:new nu}},sprite:{diffuse:{value:new ia(16777215)},opacity:{value:1},center:{value:new Yr(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new nu},alphaMap:{value:null},alphaMapTransform:{value:new nu},alphaTest:{value:0}}},OA={basic:{uniforms:Jp([Ia.common,Ia.specularmap,Ia.envmap,Ia.aomap,Ia.lightmap,Ia.fog]),vertexShader:hc.meshbasic_vert,fragmentShader:hc.meshbasic_frag},lambert:{uniforms:Jp([Ia.common,Ia.specularmap,Ia.envmap,Ia.aomap,Ia.lightmap,Ia.emissivemap,Ia.bumpmap,Ia.normalmap,Ia.displacementmap,Ia.fog,Ia.lights,{emissive:{value:new ia(0)}}]),vertexShader:hc.meshlambert_vert,fragmentShader:hc.meshlambert_frag},phong:{uniforms:Jp([Ia.common,Ia.specularmap,Ia.envmap,Ia.aomap,Ia.lightmap,Ia.emissivemap,Ia.bumpmap,Ia.normalmap,Ia.displacementmap,Ia.fog,Ia.lights,{emissive:{value:new ia(0)},specular:{value:new ia(1118481)},shininess:{value:30}}]),vertexShader:hc.meshphong_vert,fragmentShader:hc.meshphong_frag},standard:{uniforms:Jp([Ia.common,Ia.envmap,Ia.aomap,Ia.lightmap,Ia.emissivemap,Ia.bumpmap,Ia.normalmap,Ia.displacementmap,Ia.roughnessmap,Ia.metalnessmap,Ia.fog,Ia.lights,{emissive:{value:new ia(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:hc.meshphysical_vert,fragmentShader:hc.meshphysical_frag},toon:{uniforms:Jp([Ia.common,Ia.aomap,Ia.lightmap,Ia.emissivemap,Ia.bumpmap,Ia.normalmap,Ia.displacementmap,Ia.gradientmap,Ia.fog,Ia.lights,{emissive:{value:new ia(0)}}]),vertexShader:hc.meshtoon_vert,fragmentShader:hc.meshtoon_frag},matcap:{uniforms:Jp([Ia.common,Ia.bumpmap,Ia.normalmap,Ia.displacementmap,Ia.fog,{matcap:{value:null}}]),vertexShader:hc.meshmatcap_vert,fragmentShader:hc.meshmatcap_frag},points:{uniforms:Jp([Ia.points,Ia.fog]),vertexShader:hc.points_vert,fragmentShader:hc.points_frag},dashed:{uniforms:Jp([Ia.common,Ia.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:hc.linedashed_vert,fragmentShader:hc.linedashed_frag},depth:{uniforms:Jp([Ia.common,Ia.displacementmap]),vertexShader:hc.depth_vert,fragmentShader:hc.depth_frag},normal:{uniforms:Jp([Ia.common,Ia.bumpmap,Ia.normalmap,Ia.displacementmap,{opacity:{value:1}}]),vertexShader:hc.meshnormal_vert,fragmentShader:hc.meshnormal_frag},sprite:{uniforms:Jp([Ia.sprite,Ia.fog]),vertexShader:hc.sprite_vert,fragmentShader:hc.sprite_frag},background:{uniforms:{uvTransform:{value:new nu},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:hc.background_vert,fragmentShader:hc.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new nu}},vertexShader:hc.backgroundCube_vert,fragmentShader:hc.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:hc.cube_vert,fragmentShader:hc.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:hc.equirect_vert,fragmentShader:hc.equirect_frag},distanceRGBA:{uniforms:Jp([Ia.common,Ia.displacementmap,{referencePosition:{value:new yn},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:hc.distanceRGBA_vert,fragmentShader:hc.distanceRGBA_frag},shadow:{uniforms:Jp([Ia.lights,Ia.fog,{color:{value:new ia(0)},opacity:{value:1}}]),vertexShader:hc.shadow_vert,fragmentShader:hc.shadow_frag}};OA.physical={uniforms:Jp([OA.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new nu},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new nu},clearcoatNormalScale:{value:new Yr(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new nu},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new nu},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new nu},sheen:{value:0},sheenColor:{value:new ia(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new nu},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new nu},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new nu},transmissionSamplerSize:{value:new Yr},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new nu},attenuationDistance:{value:0},attenuationColor:{value:new ia(0)},specularColor:{value:new ia(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new nu},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new nu},anisotropyVector:{value:new Yr},anisotropyMap:{value:null},anisotropyMapTransform:{value:new nu}}]),vertexShader:hc.meshphysical_vert,fragmentShader:hc.meshphysical_frag};const cB={r:0,b:0,g:0},FP=new Pp,ZG=new Xa;function YG(ee,y,E,z,ne,ie,se){const ae=new ia(0);let he=ie===!0?0:1,pe,ve,xe=null,Se=0,Be=null;function De($e){let _e=$e.isScene===!0?$e.background:null;return _e&&_e.isTexture&&(_e=($e.backgroundBlurriness>0?E:y).get(_e)),_e}function Re($e){let _e=!1;const st=De($e);st===null?Le(ae,he):st&&st.isColor&&(Le(st,1),_e=!0);const ct=ee.xr.getEnvironmentBlendMode();ct==="additive"?z.buffers.color.setClear(0,0,0,1,se):ct==="alpha-blend"&&z.buffers.color.setClear(0,0,0,0,se),(ee.autoClear||_e)&&(z.buffers.depth.setTest(!0),z.buffers.depth.setMask(!0),z.buffers.color.setMask(!0),ee.clear(ee.autoClearColor,ee.autoClearDepth,ee.autoClearStencil))}function Oe($e,_e){const st=De(_e);st&&(st.isCubeTexture||st.mapping===Q0)?(ve===void 0&&(ve=new Bc(new Wa(1,1,1),new Rm({name:"BackgroundCubeMaterial",uniforms:Yx(OA.backgroundCube.uniforms),vertexShader:OA.backgroundCube.vertexShader,fragmentShader:OA.backgroundCube.fragmentShader,side:wc,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),ve.geometry.deleteAttribute("normal"),ve.geometry.deleteAttribute("uv"),ve.onBeforeRender=function(ct,ut,ht){this.matrixWorld.copyPosition(ht.matrixWorld)},Object.defineProperty(ve.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),ne.update(ve)),FP.copy(_e.backgroundRotation),FP.x*=-1,FP.y*=-1,FP.z*=-1,st.isCubeTexture&&st.isRenderTargetTexture===!1&&(FP.y*=-1,FP.z*=-1),ve.material.uniforms.envMap.value=st,ve.material.uniforms.flipEnvMap.value=st.isCubeTexture&&st.isRenderTargetTexture===!1?-1:1,ve.material.uniforms.backgroundBlurriness.value=_e.backgroundBlurriness,ve.material.uniforms.backgroundIntensity.value=_e.backgroundIntensity,ve.material.uniforms.backgroundRotation.value.setFromMatrix4(ZG.makeRotationFromEuler(FP)),ve.material.toneMapped=su.getTransfer(st.colorSpace)!==Ua,(xe!==st||Se!==st.version||Be!==ee.toneMapping)&&(ve.material.needsUpdate=!0,xe=st,Se=st.version,Be=ee.toneMapping),ve.layers.enableAll(),$e.unshift(ve,ve.geometry,ve.material,0,0,null)):st&&st.isTexture&&(pe===void 0&&(pe=new Bc(new $p(2,2),new Rm({name:"BackgroundMaterial",uniforms:Yx(OA.background.uniforms),vertexShader:OA.background.vertexShader,fragmentShader:OA.background.fragmentShader,side:hp,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),pe.geometry.deleteAttribute("normal"),Object.defineProperty(pe.material,"map",{get:function(){return this.uniforms.t2D.value}}),ne.update(pe)),pe.material.uniforms.t2D.value=st,pe.material.uniforms.backgroundIntensity.value=_e.backgroundIntensity,pe.material.toneMapped=su.getTransfer(st.colorSpace)!==Ua,st.matrixAutoUpdate===!0&&st.updateMatrix(),pe.material.uniforms.uvTransform.value.copy(st.matrix),(xe!==st||Se!==st.version||Be!==ee.toneMapping)&&(pe.material.needsUpdate=!0,xe=st,Se=st.version,Be=ee.toneMapping),pe.layers.enableAll(),$e.unshift(pe,pe.geometry,pe.material,0,0,null))}function Le($e,_e){$e.getRGB(cB,p2(ee)),z.buffers.color.setClear(cB.r,cB.g,cB.b,_e,se)}function Je(){ve!==void 0&&(ve.geometry.dispose(),ve.material.dispose(),ve=void 0),pe!==void 0&&(pe.geometry.dispose(),pe.material.dispose(),pe=void 0)}return{getClearColor:function(){return ae},setClearColor:function($e,_e=1){ae.set($e),he=_e,Le(ae,he)},getClearAlpha:function(){return he},setClearAlpha:function($e){he=$e,Le(ae,he)},render:Re,addToRenderList:Oe,dispose:Je}}function KG(ee,y){const E=ee.getParameter(ee.MAX_VERTEX_ATTRIBS),z={},ne=Se(null);let ie=ne,se=!1;function ae(gt,zt,cn,Tn,Zn){let Nn=!1;const di=xe(Tn,cn,zt);ie!==di&&(ie=di,pe(ie.object)),Nn=Be(gt,Tn,cn,Zn),Nn&&De(gt,Tn,cn,Zn),Zn!==null&&y.update(Zn,ee.ELEMENT_ARRAY_BUFFER),(Nn||se)&&(se=!1,_e(gt,zt,cn,Tn),Zn!==null&&ee.bindBuffer(ee.ELEMENT_ARRAY_BUFFER,y.get(Zn).buffer))}function he(){return ee.createVertexArray()}function pe(gt){return ee.bindVertexArray(gt)}function ve(gt){return ee.deleteVertexArray(gt)}function xe(gt,zt,cn){const Tn=cn.wireframe===!0;let Zn=z[gt.id];Zn===void 0&&(Zn={},z[gt.id]=Zn);let Nn=Zn[zt.id];Nn===void 0&&(Nn={},Zn[zt.id]=Nn);let di=Nn[Tn];return di===void 0&&(di=Se(he()),Nn[Tn]=di),di}function Se(gt){const zt=[],cn=[],Tn=[];for(let Zn=0;Zn<E;Zn++)zt[Zn]=0,cn[Zn]=0,Tn[Zn]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:zt,enabledAttributes:cn,attributeDivisors:Tn,object:gt,attributes:{},index:null}}function Be(gt,zt,cn,Tn){const Zn=ie.attributes,Nn=zt.attributes;let di=0;const yi=cn.getAttributes();for(const bn in yi)if(yi[bn].location>=0){const ki=Zn[bn];let ti=Nn[bn];if(ti===void 0&&(bn==="instanceMatrix"&>.instanceMatrix&&(ti=gt.instanceMatrix),bn==="instanceColor"&>.instanceColor&&(ti=gt.instanceColor)),ki===void 0||ki.attribute!==ti||ti&&ki.data!==ti.data)return!0;di++}return ie.attributesNum!==di||ie.index!==Tn}function De(gt,zt,cn,Tn){const Zn={},Nn=zt.attributes;let di=0;const yi=cn.getAttributes();for(const bn in yi)if(yi[bn].location>=0){let ki=Nn[bn];ki===void 0&&(bn==="instanceMatrix"&>.instanceMatrix&&(ki=gt.instanceMatrix),bn==="instanceColor"&>.instanceColor&&(ki=gt.instanceColor));const ti={};ti.attribute=ki,ki&&ki.data&&(ti.data=ki.data),Zn[bn]=ti,di++}ie.attributes=Zn,ie.attributesNum=di,ie.index=Tn}function Re(){const gt=ie.newAttributes;for(let zt=0,cn=gt.length;zt<cn;zt++)gt[zt]=0}function Oe(gt){Le(gt,0)}function Le(gt,zt){const cn=ie.newAttributes,Tn=ie.enabledAttributes,Zn=ie.attributeDivisors;cn[gt]=1,Tn[gt]===0&&(ee.enableVertexAttribArray(gt),Tn[gt]=1),Zn[gt]!==zt&&(ee.vertexAttribDivisor(gt,zt),Zn[gt]=zt)}function Je(){const gt=ie.newAttributes,zt=ie.enabledAttributes;for(let cn=0,Tn=zt.length;cn<Tn;cn++)zt[cn]!==gt[cn]&&(ee.disableVertexAttribArray(cn),zt[cn]=0)}function $e(gt,zt,cn,Tn,Zn,Nn,di){di===!0?ee.vertexAttribIPointer(gt,zt,cn,Zn,Nn):ee.vertexAttribPointer(gt,zt,cn,Tn,Zn,Nn)}function _e(gt,zt,cn,Tn){Re();const Zn=Tn.attributes,Nn=cn.getAttributes(),di=zt.defaultAttributeValues;for(const yi in Nn){const bn=Nn[yi];if(bn.location>=0){let Sn=Zn[yi];if(Sn===void 0&&(yi==="instanceMatrix"&>.instanceMatrix&&(Sn=gt.instanceMatrix),yi==="instanceColor"&>.instanceColor&&(Sn=gt.instanceColor)),Sn!==void 0){const ki=Sn.normalized,ti=Sn.itemSize,fn=y.get(Sn);if(fn===void 0)continue;const Bi=fn.buffer,jn=fn.type,ei=fn.bytesPerElement,hr=jn===ee.INT||jn===ee.UNSIGNED_INT||Sn.gpuType===sf;if(Sn.isInterleavedBufferAttribute){const _n=Sn.data,qi=_n.stride,Sr=Sn.offset;if(_n.isInstancedInterleavedBuffer){for(let Pr=0;Pr<bn.locationSize;Pr++)Le(bn.location+Pr,_n.meshPerAttribute);gt.isInstancedMesh!==!0&&Tn._maxInstanceCount===void 0&&(Tn._maxInstanceCount=_n.meshPerAttribute*_n.count)}else for(let Pr=0;Pr<bn.locationSize;Pr++)Oe(bn.location+Pr);ee.bindBuffer(ee.ARRAY_BUFFER,Bi);for(let Pr=0;Pr<bn.locationSize;Pr++)$e(bn.location+Pr,ti/bn.locationSize,jn,ki,qi*ei,(Sr+ti/bn.locationSize*Pr)*ei,hr)}else{if(Sn.isInstancedBufferAttribute){for(let _n=0;_n<bn.locationSize;_n++)Le(bn.location+_n,Sn.meshPerAttribute);gt.isInstancedMesh!==!0&&Tn._maxInstanceCount===void 0&&(Tn._maxInstanceCount=Sn.meshPerAttribute*Sn.count)}else for(let _n=0;_n<bn.locationSize;_n++)Oe(bn.location+_n);ee.bindBuffer(ee.ARRAY_BUFFER,Bi);for(let _n=0;_n<bn.locationSize;_n++)$e(bn.location+_n,ti/bn.locationSize,jn,ki,ti*ei,ti/bn.locationSize*_n*ei,hr)}}else if(di!==void 0){const ki=di[yi];if(ki!==void 0)switch(ki.length){case 2:ee.vertexAttrib2fv(bn.location,ki);break;case 3:ee.vertexAttrib3fv(bn.location,ki);break;case 4:ee.vertexAttrib4fv(bn.location,ki);break;default:ee.vertexAttrib1fv(bn.location,ki)}}}}Je()}function st(){ht();for(const gt in z){const zt=z[gt];for(const cn in zt){const Tn=zt[cn];for(const Zn in Tn)ve(Tn[Zn].object),delete Tn[Zn];delete zt[cn]}delete z[gt]}}function ct(gt){if(z[gt.id]===void 0)return;const zt=z[gt.id];for(const cn in zt){const Tn=zt[cn];for(const Zn in Tn)ve(Tn[Zn].object),delete Tn[Zn];delete zt[cn]}delete z[gt.id]}function ut(gt){for(const zt in z){const cn=z[zt];if(cn[gt.id]===void 0)continue;const Tn=cn[gt.id];for(const Zn in Tn)ve(Tn[Zn].object),delete Tn[Zn];delete cn[gt.id]}}function ht(){pt(),se=!0,ie!==ne&&(ie=ne,pe(ie.object))}function pt(){ne.geometry=null,ne.program=null,ne.wireframe=!1}return{setup:ae,reset:ht,resetDefaultState:pt,dispose:st,releaseStatesOfGeometry:ct,releaseStatesOfProgram:ut,initAttributes:Re,enableAttribute:Oe,disableUnusedAttributes:Je}}function JG(ee,y,E){let z;function ne(pe){z=pe}function ie(pe,ve){ee.drawArrays(z,pe,ve),E.update(ve,z,1)}function se(pe,ve,xe){xe!==0&&(ee.drawArraysInstanced(z,pe,ve,xe),E.update(ve,z,xe))}function ae(pe,ve,xe){if(xe===0)return;y.get("WEBGL_multi_draw").multiDrawArraysWEBGL(z,pe,0,ve,0,xe);let Be=0;for(let De=0;De<xe;De++)Be+=ve[De];E.update(Be,z,1)}function he(pe,ve,xe,Se){if(xe===0)return;const Be=y.get("WEBGL_multi_draw");if(Be===null)for(let De=0;De<pe.length;De++)se(pe[De],ve[De],Se[De]);else{Be.multiDrawArraysInstancedWEBGL(z,pe,0,ve,0,Se,0,xe);let De=0;for(let Re=0;Re<xe;Re++)De+=ve[Re]*Se[Re];E.update(De,z,1)}}this.setMode=ne,this.render=ie,this.renderInstances=se,this.renderMultiDraw=ae,this.renderMultiDrawInstances=he}function qG(ee,y,E,z){let ne;function ie(){if(ne!==void 0)return ne;if(y.has("EXT_texture_filter_anisotropic")===!0){const ut=y.get("EXT_texture_filter_anisotropic");ne=ee.getParameter(ut.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else ne=0;return ne}function se(ut){return!(ut!==Ws&&z.convert(ut)!==ee.getParameter(ee.IMPLEMENTATION_COLOR_READ_FORMAT))}function ae(ut){const ht=ut===Hc&&(y.has("EXT_color_buffer_half_float")||y.has("EXT_color_buffer_float"));return!(ut!==yh&&z.convert(ut)!==ee.getParameter(ee.IMPLEMENTATION_COLOR_READ_TYPE)&&ut!==Ah&&!ht)}function he(ut){if(ut==="highp"){if(ee.getShaderPrecisionFormat(ee.VERTEX_SHADER,ee.HIGH_FLOAT).precision>0&&ee.getShaderPrecisionFormat(ee.FRAGMENT_SHADER,ee.HIGH_FLOAT).precision>0)return"highp";ut="mediump"}return ut==="mediump"&&ee.getShaderPrecisionFormat(ee.VERTEX_SHADER,ee.MEDIUM_FLOAT).precision>0&&ee.getShaderPrecisionFormat(ee.FRAGMENT_SHADER,ee.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let pe=E.precision!==void 0?E.precision:"highp";const ve=he(pe);ve!==pe&&(console.warn("THREE.WebGLRenderer:",pe,"not supported, using",ve,"instead."),pe=ve);const xe=E.logarithmicDepthBuffer===!0,Se=E.reverseDepthBuffer===!0&&y.has("EXT_clip_control"),Be=ee.getParameter(ee.MAX_TEXTURE_IMAGE_UNITS),De=ee.getParameter(ee.MAX_VERTEX_TEXTURE_IMAGE_UNITS),Re=ee.getParameter(ee.MAX_TEXTURE_SIZE),Oe=ee.getParameter(ee.MAX_CUBE_MAP_TEXTURE_SIZE),Le=ee.getParameter(ee.MAX_VERTEX_ATTRIBS),Je=ee.getParameter(ee.MAX_VERTEX_UNIFORM_VECTORS),$e=ee.getParameter(ee.MAX_VARYING_VECTORS),_e=ee.getParameter(ee.MAX_FRAGMENT_UNIFORM_VECTORS),st=De>0,ct=ee.getParameter(ee.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:ie,getMaxPrecision:he,textureFormatReadable:se,textureTypeReadable:ae,precision:pe,logarithmicDepthBuffer:xe,reverseDepthBuffer:Se,maxTextures:Be,maxVertexTextures:De,maxTextureSize:Re,maxCubemapSize:Oe,maxAttributes:Le,maxVertexUniforms:Je,maxVaryings:$e,maxFragmentUniforms:_e,vertexTextures:st,maxSamples:ct}}function _G(ee){const y=this;let E=null,z=0,ne=!1,ie=!1;const se=new Yh,ae=new nu,he={value:null,needsUpdate:!1};this.uniform=he,this.numPlanes=0,this.numIntersection=0,this.init=function(xe,Se){const Be=xe.length!==0||Se||z!==0||ne;return ne=Se,z=xe.length,Be},this.beginShadows=function(){ie=!0,ve(null)},this.endShadows=function(){ie=!1},this.setGlobalState=function(xe,Se){E=ve(xe,Se,0)},this.setState=function(xe,Se,Be){const De=xe.clippingPlanes,Re=xe.clipIntersection,Oe=xe.clipShadows,Le=ee.get(xe);if(!ne||De===null||De.length===0||ie&&!Oe)ie?ve(null):pe();else{const Je=ie?0:z,$e=Je*4;let _e=Le.clippingState||null;he.value=_e,_e=ve(De,Se,$e,Be);for(let st=0;st!==$e;++st)_e[st]=E[st];Le.clippingState=_e,this.numIntersection=Re?this.numPlanes:0,this.numPlanes+=Je}};function pe(){he.value!==E&&(he.value=E,he.needsUpdate=z>0),y.numPlanes=z,y.numIntersection=0}function ve(xe,Se,Be,De){const Re=xe!==null?xe.length:0;let Oe=null;if(Re!==0){if(Oe=he.value,De!==!0||Oe===null){const Le=Be+Re*4,Je=Se.matrixWorldInverse;ae.getNormalMatrix(Je),(Oe===null||Oe.length<Le)&&(Oe=new Float32Array(Le));for(let $e=0,_e=Be;$e!==Re;++$e,_e+=4)se.copy(xe[$e]).applyMatrix4(Je,ae),se.normal.toArray(Oe,_e),Oe[_e+3]=se.constant}he.value=Oe,he.needsUpdate=!0}return y.numPlanes=Re,y.numIntersection=0,Oe}}function $G(ee){let y=new WeakMap;function E(se,ae){return ae===nA?se.mapping=ud:ae===cd&&(se.mapping=Xf),se}function z(se){if(se&&se.isTexture){const ae=se.mapping;if(ae===nA||ae===cd)if(y.has(se)){const he=y.get(se).texture;return E(he,se.mapping)}else{const he=se.image;if(he&&he.height>0){const pe=new Jx(he.height);return pe.fromEquirectangularTexture(ee,se),y.set(se,pe),se.addEventListener("dispose",ne),E(pe.texture,se.mapping)}else return null}}return se}function ne(se){const ae=se.target;ae.removeEventListener("dispose",ne);const he=y.get(ae);he!==void 0&&(y.delete(ae),he.dispose())}function ie(){y=new WeakMap}return{get:z,dispose:ie}}const FE=4,TF=[.125,.215,.35,.446,.526,.582],LP=20,X3=new ed,DF=new ia;let W3=null,Q3=0,Z3=0,Y3=!1;const IP=(1+Math.sqrt(5))/2,LE=1/IP,NF=[new yn(-IP,LE,0),new yn(IP,LE,0),new yn(-LE,0,IP),new yn(LE,0,IP),new yn(0,IP,-LE),new yn(0,IP,LE),new yn(-1,1,-1),new yn(1,1,-1),new yn(-1,1,1),new yn(1,1,1)],eX=new yn;class FF{constructor(y){this._renderer=y,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(y,E=0,z=.1,ne=100,ie={}){const{size:se=256,position:ae=eX}=ie;W3=this._renderer.getRenderTarget(),Q3=this._renderer.getActiveCubeFace(),Z3=this._renderer.getActiveMipmapLevel(),Y3=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(se);const he=this._allocateTargets();return he.depthBuffer=!0,this._sceneToCubeUV(y,z,ne,he,ae),E>0&&this._blur(he,0,0,E),this._applyPMREM(he),this._cleanup(he),he}fromEquirectangular(y,E=null){return this._fromTexture(y,E)}fromCubemap(y,E=null){return this._fromTexture(y,E)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=kF(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=IF(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(y){this._lodMax=Math.floor(Math.log2(y)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let y=0;y<this._lodPlanes.length;y++)this._lodPlanes[y].dispose()}_cleanup(y){this._renderer.setRenderTarget(W3,Q3,Z3),this._renderer.xr.enabled=Y3,y.scissorTest=!1,hB(y,0,0,y.width,y.height)}_fromTexture(y,E){y.mapping===ud||y.mapping===Xf?this._setSize(y.image.length===0?16:y.image[0].width||y.image[0].image.width):this._setSize(y.image.width/4),W3=this._renderer.getRenderTarget(),Q3=this._renderer.getActiveCubeFace(),Z3=this._renderer.getActiveMipmapLevel(),Y3=this._renderer.xr.enabled,this._renderer.xr.enabled=!1;const z=E||this._allocateTargets();return this._textureToCubeUV(y,z),this._applyPMREM(z),this._cleanup(z),z}_allocateTargets(){const y=3*Math.max(this._cubeSize,112),E=4*this._cubeSize,z={magFilter:qu,minFilter:qu,generateMipmaps:!1,type:Hc,format:Ws,colorSpace:Fm,depthBuffer:!1},ne=LF(y,E,z);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==y||this._pingPongRenderTarget.height!==E){this._pingPongRenderTarget!==null&&this._dispose(),this._pingPongRenderTarget=LF(y,E,z);const{_lodMax:ie}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=tX(ie)),this._blurMaterial=nX(ie,y,E)}return ne}_compileMaterial(y){const E=new Bc(this._lodPlanes[0],y);this._renderer.compile(E,X3)}_sceneToCubeUV(y,E,z,ne,ie){const he=new Bd(90,1,E,z),pe=[1,-1,1,1,1,1],ve=[1,1,1,-1,-1,-1],xe=this._renderer,Se=xe.autoClear,Be=xe.toneMapping;xe.getClearColor(DF),xe.toneMapping=bc,xe.autoClear=!1;const De=new Yd({name:"PMREM.Background",side:wc,depthWrite:!1,depthTest:!1}),Re=new Bc(new Wa,De);let Oe=!1;const Le=y.background;Le?Le.isColor&&(De.color.copy(Le),y.background=null,Oe=!0):(De.color.copy(DF),Oe=!0);for(let Je=0;Je<6;Je++){const $e=Je%3;$e===0?(he.up.set(0,pe[Je],0),he.position.set(ie.x,ie.y,ie.z),he.lookAt(ie.x+ve[Je],ie.y,ie.z)):$e===1?(he.up.set(0,0,pe[Je]),he.position.set(ie.x,ie.y,ie.z),he.lookAt(ie.x,ie.y+ve[Je],ie.z)):(he.up.set(0,pe[Je],0),he.position.set(ie.x,ie.y,ie.z),he.lookAt(ie.x,ie.y,ie.z+ve[Je]));const _e=this._cubeSize;hB(ne,$e*_e,Je>2?_e:0,_e,_e),xe.setRenderTarget(ne),Oe&&xe.render(Re,he),xe.render(y,he)}Re.geometry.dispose(),Re.material.dispose(),xe.toneMapping=Be,xe.autoClear=Se,y.background=Le}_textureToCubeUV(y,E){const z=this._renderer,ne=y.mapping===ud||y.mapping===Xf;ne?(this._cubemapMaterial===null&&(this._cubemapMaterial=kF()),this._cubemapMaterial.uniforms.flipEnvMap.value=y.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=IF());const ie=ne?this._cubemapMaterial:this._equirectMaterial,se=new Bc(this._lodPlanes[0],ie),ae=ie.uniforms;ae.envMap.value=y;const he=this._cubeSize;hB(E,0,0,3*he,2*he),z.setRenderTarget(E),z.render(se,X3)}_applyPMREM(y){const E=this._renderer,z=E.autoClear;E.autoClear=!1;const ne=this._lodPlanes.length;for(let ie=1;ie<ne;ie++){const se=Math.sqrt(this._sigmas[ie]*this._sigmas[ie]-this._sigmas[ie-1]*this._sigmas[ie-1]),ae=NF[(ne-ie-1)%NF.length];this._blur(y,ie-1,ie,se,ae)}E.autoClear=z}_blur(y,E,z,ne,ie){const se=this._pingPongRenderTarget;this._halfBlur(y,se,E,z,ne,"latitudinal",ie),this._halfBlur(se,y,z,z,ne,"longitudinal",ie)}_halfBlur(y,E,z,ne,ie,se,ae){const he=this._renderer,pe=this._blurMaterial;se!=="latitudinal"&&se!=="longitudinal"&&console.error("blur direction must be either latitudinal or longitudinal!");const ve=3,xe=new Bc(this._lodPlanes[ne],pe),Se=pe.uniforms,Be=this._sizeLods[z]-1,De=isFinite(ie)?Math.PI/(2*Be):2*Math.PI/(2*LP-1),Re=ie/De,Oe=isFinite(ie)?1+Math.floor(ve*Re):LP;Oe>LP&&console.warn(`sigmaRadians, ${ie}, is too large and will clip, as it requested ${Oe} samples when the maximum is set to ${LP}`);const Le=[];let Je=0;for(let ut=0;ut<LP;++ut){const ht=ut/Re,pt=Math.exp(-ht*ht/2);Le.push(pt),ut===0?Je+=pt:ut<Oe&&(Je+=2*pt)}for(let ut=0;ut<Le.length;ut++)Le[ut]=Le[ut]/Je;Se.envMap.value=y.texture,Se.samples.value=Oe,Se.weights.value=Le,Se.latitudinal.value=se==="latitudinal",ae&&(Se.poleAxis.value=ae);const{_lodMax:$e}=this;Se.dTheta.value=De,Se.mipInt.value=$e-z;const _e=this._sizeLods[ne],st=3*_e*(ne>$e-FE?ne-$e+FE:0),ct=4*(this._cubeSize-_e);hB(E,st,ct,3*_e,2*_e),he.setRenderTarget(E),he.render(xe,X3)}}function tX(ee){const y=[],E=[],z=[];let ne=ee;const ie=ee-FE+1+TF.length;for(let se=0;se<ie;se++){const ae=Math.pow(2,ne);E.push(ae);let he=1/ae;se>ee-FE?he=TF[se-ee+FE-1]:se===0&&(he=0),z.push(he);const pe=1/(ae-2),ve=-pe,xe=1+pe,Se=[ve,ve,xe,ve,xe,xe,ve,ve,xe,xe,ve,xe],Be=6,De=6,Re=3,Oe=2,Le=1,Je=new Float32Array(Re*De*Be),$e=new Float32Array(Oe*De*Be),_e=new Float32Array(Le*De*Be);for(let ct=0;ct<Be;ct++){const ut=ct%3*2/3-1,ht=ct>2?0:-1,pt=[ut,ht,0,ut+2/3,ht,0,ut+2/3,ht+1,0,ut,ht,0,ut+2/3,ht+1,0,ut,ht+1,0];Je.set(pt,Re*De*ct),$e.set(Se,Oe*De*ct);const gt=[ct,ct,ct,ct,ct,ct];_e.set(gt,Le*De*ct)}const st=new Tu;st.setAttribute("position",new rh(Je,Re)),st.setAttribute("uv",new rh($e,Oe)),st.setAttribute("faceIndex",new rh(_e,Le)),y.push(st),ne>FE&&ne--}return{lodPlanes:y,sizeLods:E,sigmas:z}}function LF(ee,y,E){const z=new Kp(ee,y,E);return z.texture.mapping=Q0,z.texture.name="PMREM.cubeUv",z.scissorTest=!0,z}function hB(ee,y,E,z,ne){ee.viewport.set(y,E,z,ne),ee.scissor.set(y,E,z,ne)}function nX(ee,y,E){const z=new Float32Array(LP),ne=new yn(0,1,0);return new Rm({name:"SphericalGaussianBlur",defines:{n:LP,CUBEUV_TEXEL_WIDTH:1/y,CUBEUV_TEXEL_HEIGHT:1/E,CUBEUV_MAX_MIP:`${ee}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:z},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:ne}},vertexShader:K3(),fragmentShader:`
|
|
|
|
precision mediump float;
|
|
precision mediump int;
|
|
|
|
varying vec3 vOutputDirection;
|
|
|
|
uniform sampler2D envMap;
|
|
uniform int samples;
|
|
uniform float weights[ n ];
|
|
uniform bool latitudinal;
|
|
uniform float dTheta;
|
|
uniform float mipInt;
|
|
uniform vec3 poleAxis;
|
|
|
|
#define ENVMAP_TYPE_CUBE_UV
|
|
#include <cube_uv_reflection_fragment>
|
|
|
|
vec3 getSample( float theta, vec3 axis ) {
|
|
|
|
float cosTheta = cos( theta );
|
|
// Rodrigues' axis-angle rotation
|
|
vec3 sampleDirection = vOutputDirection * cosTheta
|
|
+ cross( axis, vOutputDirection ) * sin( theta )
|
|
+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );
|
|
|
|
return bilinearCubeUV( envMap, sampleDirection, mipInt );
|
|
|
|
}
|
|
|
|
void main() {
|
|
|
|
vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );
|
|
|
|
if ( all( equal( axis, vec3( 0.0 ) ) ) ) {
|
|
|
|
axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );
|
|
|
|
}
|
|
|
|
axis = normalize( axis );
|
|
|
|
gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );
|
|
gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );
|
|
|
|
for ( int i = 1; i < n; i++ ) {
|
|
|
|
if ( i >= samples ) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
float theta = dTheta * float( i );
|
|
gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );
|
|
gl_FragColor.rgb += weights[ i ] * getSample( theta, axis );
|
|
|
|
}
|
|
|
|
}
|
|
`,blending:of,depthTest:!1,depthWrite:!1})}function IF(){return new Rm({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:K3(),fragmentShader:`
|
|
|
|
precision mediump float;
|
|
precision mediump int;
|
|
|
|
varying vec3 vOutputDirection;
|
|
|
|
uniform sampler2D envMap;
|
|
|
|
#include <common>
|
|
|
|
void main() {
|
|
|
|
vec3 outputDirection = normalize( vOutputDirection );
|
|
vec2 uv = equirectUv( outputDirection );
|
|
|
|
gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );
|
|
|
|
}
|
|
`,blending:of,depthTest:!1,depthWrite:!1})}function kF(){return new Rm({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:K3(),fragmentShader:`
|
|
|
|
precision mediump float;
|
|
precision mediump int;
|
|
|
|
uniform float flipEnvMap;
|
|
|
|
varying vec3 vOutputDirection;
|
|
|
|
uniform samplerCube envMap;
|
|
|
|
void main() {
|
|
|
|
gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );
|
|
|
|
}
|
|
`,blending:of,depthTest:!1,depthWrite:!1})}function K3(){return`
|
|
|
|
precision mediump float;
|
|
precision mediump int;
|
|
|
|
attribute float faceIndex;
|
|
|
|
varying vec3 vOutputDirection;
|
|
|
|
// RH coordinate system; PMREM face-indexing convention
|
|
vec3 getDirection( vec2 uv, float face ) {
|
|
|
|
uv = 2.0 * uv - 1.0;
|
|
|
|
vec3 direction = vec3( uv, 1.0 );
|
|
|
|
if ( face == 0.0 ) {
|
|
|
|
direction = direction.zyx; // ( 1, v, u ) pos x
|
|
|
|
} else if ( face == 1.0 ) {
|
|
|
|
direction = direction.xzy;
|
|
direction.xz *= -1.0; // ( -u, 1, -v ) pos y
|
|
|
|
} else if ( face == 2.0 ) {
|
|
|
|
direction.x *= -1.0; // ( -u, v, 1 ) pos z
|
|
|
|
} else if ( face == 3.0 ) {
|
|
|
|
direction = direction.zyx;
|
|
direction.xz *= -1.0; // ( -1, v, -u ) neg x
|
|
|
|
} else if ( face == 4.0 ) {
|
|
|
|
direction = direction.xzy;
|
|
direction.xy *= -1.0; // ( -u, -1, v ) neg y
|
|
|
|
} else if ( face == 5.0 ) {
|
|
|
|
direction.z *= -1.0; // ( u, v, -1 ) neg z
|
|
|
|
}
|
|
|
|
return direction;
|
|
|
|
}
|
|
|
|
void main() {
|
|
|
|
vOutputDirection = getDirection( uv, faceIndex );
|
|
gl_Position = vec4( position, 1.0 );
|
|
|
|
}
|
|
`}function iX(ee){let y=new WeakMap,E=null;function z(ae){if(ae&&ae.isTexture){const he=ae.mapping,pe=he===nA||he===cd,ve=he===ud||he===Xf;if(pe||ve){let xe=y.get(ae);const Se=xe!==void 0?xe.texture.pmremVersion:0;if(ae.isRenderTargetTexture&&ae.pmremVersion!==Se)return E===null&&(E=new FF(ee)),xe=pe?E.fromEquirectangular(ae,xe):E.fromCubemap(ae,xe),xe.texture.pmremVersion=ae.pmremVersion,y.set(ae,xe),xe.texture;if(xe!==void 0)return xe.texture;{const Be=ae.image;return pe&&Be&&Be.height>0||ve&&Be&&ne(Be)?(E===null&&(E=new FF(ee)),xe=pe?E.fromEquirectangular(ae):E.fromCubemap(ae),xe.texture.pmremVersion=ae.pmremVersion,y.set(ae,xe),ae.addEventListener("dispose",ie),xe.texture):null}}}return ae}function ne(ae){let he=0;const pe=6;for(let ve=0;ve<pe;ve++)ae[ve]!==void 0&&he++;return he===pe}function ie(ae){const he=ae.target;he.removeEventListener("dispose",ie);const pe=y.get(he);pe!==void 0&&(y.delete(he),pe.dispose())}function se(){y=new WeakMap,E!==null&&(E.dispose(),E=null)}return{get:z,dispose:se}}function rX(ee){const y={};function E(z){if(y[z]!==void 0)return y[z];let ne;switch(z){case"WEBGL_depth_texture":ne=ee.getExtension("WEBGL_depth_texture")||ee.getExtension("MOZ_WEBGL_depth_texture")||ee.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":ne=ee.getExtension("EXT_texture_filter_anisotropic")||ee.getExtension("MOZ_EXT_texture_filter_anisotropic")||ee.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":ne=ee.getExtension("WEBGL_compressed_texture_s3tc")||ee.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||ee.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":ne=ee.getExtension("WEBGL_compressed_texture_pvrtc")||ee.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:ne=ee.getExtension(z)}return y[z]=ne,ne}return{has:function(z){return E(z)!==null},init:function(){E("EXT_color_buffer_float"),E("WEBGL_clip_cull_distance"),E("OES_texture_float_linear"),E("EXT_color_buffer_half_float"),E("WEBGL_multisampled_render_to_texture"),E("WEBGL_render_shared_exponent")},get:function(z){const ne=E(z);return ne===null&&vc("THREE.WebGLRenderer: "+z+" extension not supported."),ne}}}function oX(ee,y,E,z){const ne={},ie=new WeakMap;function se(xe){const Se=xe.target;Se.index!==null&&y.remove(Se.index);for(const De in Se.attributes)y.remove(Se.attributes[De]);Se.removeEventListener("dispose",se),delete ne[Se.id];const Be=ie.get(Se);Be&&(y.remove(Be),ie.delete(Se)),z.releaseStatesOfGeometry(Se),Se.isInstancedBufferGeometry===!0&&delete Se._maxInstanceCount,E.memory.geometries--}function ae(xe,Se){return ne[Se.id]===!0||(Se.addEventListener("dispose",se),ne[Se.id]=!0,E.memory.geometries++),Se}function he(xe){const Se=xe.attributes;for(const Be in Se)y.update(Se[Be],ee.ARRAY_BUFFER)}function pe(xe){const Se=[],Be=xe.index,De=xe.attributes.position;let Re=0;if(Be!==null){const Je=Be.array;Re=Be.version;for(let $e=0,_e=Je.length;$e<_e;$e+=3){const st=Je[$e+0],ct=Je[$e+1],ut=Je[$e+2];Se.push(st,ct,ct,ut,ut,st)}}else if(De!==void 0){const Je=De.array;Re=De.version;for(let $e=0,_e=Je.length/3-1;$e<_e;$e+=3){const st=$e+0,ct=$e+1,ut=$e+2;Se.push(st,ct,ct,ut,ut,st)}}else return;const Oe=new(s2(Se)?h2:nP)(Se,1);Oe.version=Re;const Le=ie.get(xe);Le&&y.remove(Le),ie.set(xe,Oe)}function ve(xe){const Se=ie.get(xe);if(Se){const Be=xe.index;Be!==null&&Se.version<Be.version&&pe(xe)}else pe(xe);return ie.get(xe)}return{get:ae,update:he,getWireframeAttribute:ve}}function sX(ee,y,E){let z;function ne(Se){z=Se}let ie,se;function ae(Se){ie=Se.type,se=Se.bytesPerElement}function he(Se,Be){ee.drawElements(z,Be,ie,Se*se),E.update(Be,z,1)}function pe(Se,Be,De){De!==0&&(ee.drawElementsInstanced(z,Be,ie,Se*se,De),E.update(Be,z,De))}function ve(Se,Be,De){if(De===0)return;y.get("WEBGL_multi_draw").multiDrawElementsWEBGL(z,Be,0,ie,Se,0,De);let Oe=0;for(let Le=0;Le<De;Le++)Oe+=Be[Le];E.update(Oe,z,1)}function xe(Se,Be,De,Re){if(De===0)return;const Oe=y.get("WEBGL_multi_draw");if(Oe===null)for(let Le=0;Le<Se.length;Le++)pe(Se[Le]/se,Be[Le],Re[Le]);else{Oe.multiDrawElementsInstancedWEBGL(z,Be,0,ie,Se,0,Re,0,De);let Le=0;for(let Je=0;Je<De;Je++)Le+=Be[Je]*Re[Je];E.update(Le,z,1)}}this.setMode=ne,this.setIndex=ae,this.render=he,this.renderInstances=pe,this.renderMultiDraw=ve,this.renderMultiDrawInstances=xe}function aX(ee){const y={geometries:0,textures:0},E={frame:0,calls:0,triangles:0,points:0,lines:0};function z(ie,se,ae){switch(E.calls++,se){case ee.TRIANGLES:E.triangles+=ae*(ie/3);break;case ee.LINES:E.lines+=ae*(ie/2);break;case ee.LINE_STRIP:E.lines+=ae*(ie-1);break;case ee.LINE_LOOP:E.lines+=ae*ie;break;case ee.POINTS:E.points+=ae*ie;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",se);break}}function ne(){E.calls=0,E.triangles=0,E.points=0,E.lines=0}return{memory:y,render:E,programs:null,autoReset:!0,reset:ne,update:z}}function lX(ee,y,E){const z=new WeakMap,ne=new Ul;function ie(se,ae,he){const pe=se.morphTargetInfluences,ve=ae.morphAttributes.position||ae.morphAttributes.normal||ae.morphAttributes.color,xe=ve!==void 0?ve.length:0;let Se=z.get(ae);if(Se===void 0||Se.count!==xe){let pt=function(){ut.dispose(),z.delete(ae),ae.removeEventListener("dispose",pt)};Se!==void 0&&Se.texture.dispose();const Be=ae.morphAttributes.position!==void 0,De=ae.morphAttributes.normal!==void 0,Re=ae.morphAttributes.color!==void 0,Oe=ae.morphAttributes.position||[],Le=ae.morphAttributes.normal||[],Je=ae.morphAttributes.color||[];let $e=0;Be===!0&&($e=1),De===!0&&($e=2),Re===!0&&($e=3);let _e=ae.attributes.position.count*$e,st=1;_e>y.maxTextureSize&&(st=Math.ceil(_e/y.maxTextureSize),_e=y.maxTextureSize);const ct=new Float32Array(_e*st*4*xe),ut=new Dx(ct,_e,st,xe);ut.type=Ah,ut.needsUpdate=!0;const ht=$e*4;for(let gt=0;gt<xe;gt++){const zt=Oe[gt],cn=Le[gt],Tn=Je[gt],Zn=_e*st*4*gt;for(let Nn=0;Nn<zt.count;Nn++){const di=Nn*ht;Be===!0&&(ne.fromBufferAttribute(zt,Nn),ct[Zn+di+0]=ne.x,ct[Zn+di+1]=ne.y,ct[Zn+di+2]=ne.z,ct[Zn+di+3]=0),De===!0&&(ne.fromBufferAttribute(cn,Nn),ct[Zn+di+4]=ne.x,ct[Zn+di+5]=ne.y,ct[Zn+di+6]=ne.z,ct[Zn+di+7]=0),Re===!0&&(ne.fromBufferAttribute(Tn,Nn),ct[Zn+di+8]=ne.x,ct[Zn+di+9]=ne.y,ct[Zn+di+10]=ne.z,ct[Zn+di+11]=Tn.itemSize===4?ne.w:1)}}Se={count:xe,texture:ut,size:new Yr(_e,st)},z.set(ae,Se),ae.addEventListener("dispose",pt)}if(se.isInstancedMesh===!0&&se.morphTexture!==null)he.getUniforms().setValue(ee,"morphTexture",se.morphTexture,E);else{let Be=0;for(let Re=0;Re<pe.length;Re++)Be+=pe[Re];const De=ae.morphTargetsRelative?1:1-Be;he.getUniforms().setValue(ee,"morphTargetBaseInfluence",De),he.getUniforms().setValue(ee,"morphTargetInfluences",pe)}he.getUniforms().setValue(ee,"morphTargetsTexture",Se.texture,E),he.getUniforms().setValue(ee,"morphTargetsTextureSize",Se.size)}return{update:ie}}function uX(ee,y,E,z){let ne=new WeakMap;function ie(he){const pe=z.render.frame,ve=he.geometry,xe=y.get(he,ve);if(ne.get(xe)!==pe&&(y.update(xe),ne.set(xe,pe)),he.isInstancedMesh&&(he.hasEventListener("dispose",ae)===!1&&he.addEventListener("dispose",ae),ne.get(he)!==pe&&(E.update(he.instanceMatrix,ee.ARRAY_BUFFER),he.instanceColor!==null&&E.update(he.instanceColor,ee.ARRAY_BUFFER),ne.set(he,pe))),he.isSkinnedMesh){const Se=he.skeleton;ne.get(Se)!==pe&&(Se.update(),ne.set(Se,pe))}return xe}function se(){ne=new WeakMap}function ae(he){const pe=he.target;pe.removeEventListener("dispose",ae),E.remove(pe.instanceMatrix),pe.instanceColor!==null&&E.remove(pe.instanceColor)}return{update:ie,dispose:se}}const OF=new nh,RF=new jg(1,1),zF=new Dx,UF=new OC,HF=new Gr,VF=[],jF=[],GF=new Float32Array(16),XF=new Float32Array(9),WF=new Float32Array(4);function IE(ee,y,E){const z=ee[0];if(z<=0||z>0)return ee;const ne=y*E;let ie=VF[ne];if(ie===void 0&&(ie=new Float32Array(ne),VF[ne]=ie),y!==0){z.toArray(ie,0);for(let se=1,ae=0;se!==y;++se)ae+=E,ee[se].toArray(ie,ae)}return ie}function Fp(ee,y){if(ee.length!==y.length)return!1;for(let E=0,z=ee.length;E<z;E++)if(ee[E]!==y[E])return!1;return!0}function Lp(ee,y){for(let E=0,z=y.length;E<z;E++)ee[E]=y[E]}function dB(ee,y){let E=jF[y];E===void 0&&(E=new Int32Array(y),jF[y]=E);for(let z=0;z!==y;++z)E[z]=ee.allocateTextureUnit();return E}function cX(ee,y){const E=this.cache;E[0]!==y&&(ee.uniform1f(this.addr,y),E[0]=y)}function hX(ee,y){const E=this.cache;if(y.x!==void 0)(E[0]!==y.x||E[1]!==y.y)&&(ee.uniform2f(this.addr,y.x,y.y),E[0]=y.x,E[1]=y.y);else{if(Fp(E,y))return;ee.uniform2fv(this.addr,y),Lp(E,y)}}function dX(ee,y){const E=this.cache;if(y.x!==void 0)(E[0]!==y.x||E[1]!==y.y||E[2]!==y.z)&&(ee.uniform3f(this.addr,y.x,y.y,y.z),E[0]=y.x,E[1]=y.y,E[2]=y.z);else if(y.r!==void 0)(E[0]!==y.r||E[1]!==y.g||E[2]!==y.b)&&(ee.uniform3f(this.addr,y.r,y.g,y.b),E[0]=y.r,E[1]=y.g,E[2]=y.b);else{if(Fp(E,y))return;ee.uniform3fv(this.addr,y),Lp(E,y)}}function fX(ee,y){const E=this.cache;if(y.x!==void 0)(E[0]!==y.x||E[1]!==y.y||E[2]!==y.z||E[3]!==y.w)&&(ee.uniform4f(this.addr,y.x,y.y,y.z,y.w),E[0]=y.x,E[1]=y.y,E[2]=y.z,E[3]=y.w);else{if(Fp(E,y))return;ee.uniform4fv(this.addr,y),Lp(E,y)}}function pX(ee,y){const E=this.cache,z=y.elements;if(z===void 0){if(Fp(E,y))return;ee.uniformMatrix2fv(this.addr,!1,y),Lp(E,y)}else{if(Fp(E,z))return;WF.set(z),ee.uniformMatrix2fv(this.addr,!1,WF),Lp(E,z)}}function gX(ee,y){const E=this.cache,z=y.elements;if(z===void 0){if(Fp(E,y))return;ee.uniformMatrix3fv(this.addr,!1,y),Lp(E,y)}else{if(Fp(E,z))return;XF.set(z),ee.uniformMatrix3fv(this.addr,!1,XF),Lp(E,z)}}function mX(ee,y){const E=this.cache,z=y.elements;if(z===void 0){if(Fp(E,y))return;ee.uniformMatrix4fv(this.addr,!1,y),Lp(E,y)}else{if(Fp(E,z))return;GF.set(z),ee.uniformMatrix4fv(this.addr,!1,GF),Lp(E,z)}}function vX(ee,y){const E=this.cache;E[0]!==y&&(ee.uniform1i(this.addr,y),E[0]=y)}function yX(ee,y){const E=this.cache;if(y.x!==void 0)(E[0]!==y.x||E[1]!==y.y)&&(ee.uniform2i(this.addr,y.x,y.y),E[0]=y.x,E[1]=y.y);else{if(Fp(E,y))return;ee.uniform2iv(this.addr,y),Lp(E,y)}}function AX(ee,y){const E=this.cache;if(y.x!==void 0)(E[0]!==y.x||E[1]!==y.y||E[2]!==y.z)&&(ee.uniform3i(this.addr,y.x,y.y,y.z),E[0]=y.x,E[1]=y.y,E[2]=y.z);else{if(Fp(E,y))return;ee.uniform3iv(this.addr,y),Lp(E,y)}}function xX(ee,y){const E=this.cache;if(y.x!==void 0)(E[0]!==y.x||E[1]!==y.y||E[2]!==y.z||E[3]!==y.w)&&(ee.uniform4i(this.addr,y.x,y.y,y.z,y.w),E[0]=y.x,E[1]=y.y,E[2]=y.z,E[3]=y.w);else{if(Fp(E,y))return;ee.uniform4iv(this.addr,y),Lp(E,y)}}function wX(ee,y){const E=this.cache;E[0]!==y&&(ee.uniform1ui(this.addr,y),E[0]=y)}function SX(ee,y){const E=this.cache;if(y.x!==void 0)(E[0]!==y.x||E[1]!==y.y)&&(ee.uniform2ui(this.addr,y.x,y.y),E[0]=y.x,E[1]=y.y);else{if(Fp(E,y))return;ee.uniform2uiv(this.addr,y),Lp(E,y)}}function PX(ee,y){const E=this.cache;if(y.x!==void 0)(E[0]!==y.x||E[1]!==y.y||E[2]!==y.z)&&(ee.uniform3ui(this.addr,y.x,y.y,y.z),E[0]=y.x,E[1]=y.y,E[2]=y.z);else{if(Fp(E,y))return;ee.uniform3uiv(this.addr,y),Lp(E,y)}}function CX(ee,y){const E=this.cache;if(y.x!==void 0)(E[0]!==y.x||E[1]!==y.y||E[2]!==y.z||E[3]!==y.w)&&(ee.uniform4ui(this.addr,y.x,y.y,y.z,y.w),E[0]=y.x,E[1]=y.y,E[2]=y.z,E[3]=y.w);else{if(Fp(E,y))return;ee.uniform4uiv(this.addr,y),Lp(E,y)}}function EX(ee,y,E){const z=this.cache,ne=E.allocateTextureUnit();z[0]!==ne&&(ee.uniform1i(this.addr,ne),z[0]=ne);let ie;this.type===ee.SAMPLER_2D_SHADOW?(RF.compareFunction=cA,ie=RF):ie=OF,E.setTexture2D(y||ie,ne)}function bX(ee,y,E){const z=this.cache,ne=E.allocateTextureUnit();z[0]!==ne&&(ee.uniform1i(this.addr,ne),z[0]=ne),E.setTexture3D(y||UF,ne)}function MX(ee,y,E){const z=this.cache,ne=E.allocateTextureUnit();z[0]!==ne&&(ee.uniform1i(this.addr,ne),z[0]=ne),E.setTextureCube(y||HF,ne)}function BX(ee,y,E){const z=this.cache,ne=E.allocateTextureUnit();z[0]!==ne&&(ee.uniform1i(this.addr,ne),z[0]=ne),E.setTexture2DArray(y||zF,ne)}function TX(ee){switch(ee){case 5126:return cX;case 35664:return hX;case 35665:return dX;case 35666:return fX;case 35674:return pX;case 35675:return gX;case 35676:return mX;case 5124:case 35670:return vX;case 35667:case 35671:return yX;case 35668:case 35672:return AX;case 35669:case 35673:return xX;case 5125:return wX;case 36294:return SX;case 36295:return PX;case 36296:return CX;case 35678:case 36198:case 36298:case 36306:case 35682:return EX;case 35679:case 36299:case 36307:return bX;case 35680:case 36300:case 36308:case 36293:return MX;case 36289:case 36303:case 36311:case 36292:return BX}}function DX(ee,y){ee.uniform1fv(this.addr,y)}function NX(ee,y){const E=IE(y,this.size,2);ee.uniform2fv(this.addr,E)}function FX(ee,y){const E=IE(y,this.size,3);ee.uniform3fv(this.addr,E)}function LX(ee,y){const E=IE(y,this.size,4);ee.uniform4fv(this.addr,E)}function IX(ee,y){const E=IE(y,this.size,4);ee.uniformMatrix2fv(this.addr,!1,E)}function kX(ee,y){const E=IE(y,this.size,9);ee.uniformMatrix3fv(this.addr,!1,E)}function OX(ee,y){const E=IE(y,this.size,16);ee.uniformMatrix4fv(this.addr,!1,E)}function RX(ee,y){ee.uniform1iv(this.addr,y)}function zX(ee,y){ee.uniform2iv(this.addr,y)}function UX(ee,y){ee.uniform3iv(this.addr,y)}function HX(ee,y){ee.uniform4iv(this.addr,y)}function VX(ee,y){ee.uniform1uiv(this.addr,y)}function jX(ee,y){ee.uniform2uiv(this.addr,y)}function GX(ee,y){ee.uniform3uiv(this.addr,y)}function XX(ee,y){ee.uniform4uiv(this.addr,y)}function WX(ee,y,E){const z=this.cache,ne=y.length,ie=dB(E,ne);Fp(z,ie)||(ee.uniform1iv(this.addr,ie),Lp(z,ie));for(let se=0;se!==ne;++se)E.setTexture2D(y[se]||OF,ie[se])}function QX(ee,y,E){const z=this.cache,ne=y.length,ie=dB(E,ne);Fp(z,ie)||(ee.uniform1iv(this.addr,ie),Lp(z,ie));for(let se=0;se!==ne;++se)E.setTexture3D(y[se]||UF,ie[se])}function ZX(ee,y,E){const z=this.cache,ne=y.length,ie=dB(E,ne);Fp(z,ie)||(ee.uniform1iv(this.addr,ie),Lp(z,ie));for(let se=0;se!==ne;++se)E.setTextureCube(y[se]||HF,ie[se])}function YX(ee,y,E){const z=this.cache,ne=y.length,ie=dB(E,ne);Fp(z,ie)||(ee.uniform1iv(this.addr,ie),Lp(z,ie));for(let se=0;se!==ne;++se)E.setTexture2DArray(y[se]||zF,ie[se])}function KX(ee){switch(ee){case 5126:return DX;case 35664:return NX;case 35665:return FX;case 35666:return LX;case 35674:return IX;case 35675:return kX;case 35676:return OX;case 5124:case 35670:return RX;case 35667:case 35671:return zX;case 35668:case 35672:return UX;case 35669:case 35673:return HX;case 5125:return VX;case 36294:return jX;case 36295:return GX;case 36296:return XX;case 35678:case 36198:case 36298:case 36306:case 35682:return WX;case 35679:case 36299:case 36307:return QX;case 35680:case 36300:case 36308:case 36293:return ZX;case 36289:case 36303:case 36311:case 36292:return YX}}class JX{constructor(y,E,z){this.id=y,this.addr=z,this.cache=[],this.type=E.type,this.setValue=TX(E.type)}}class qX{constructor(y,E,z){this.id=y,this.addr=z,this.cache=[],this.type=E.type,this.size=E.size,this.setValue=KX(E.type)}}class _X{constructor(y){this.id=y,this.seq=[],this.map={}}setValue(y,E,z){const ne=this.seq;for(let ie=0,se=ne.length;ie!==se;++ie){const ae=ne[ie];ae.setValue(y,E[ae.id],z)}}}const J3=/(\w+)(\])?(\[|\.)?/g;function QF(ee,y){ee.seq.push(y),ee.map[y.id]=y}function $X(ee,y,E){const z=ee.name,ne=z.length;for(J3.lastIndex=0;;){const ie=J3.exec(z),se=J3.lastIndex;let ae=ie[1];const he=ie[2]==="]",pe=ie[3];if(he&&(ae=ae|0),pe===void 0||pe==="["&&se+2===ne){QF(E,pe===void 0?new JX(ae,ee,y):new qX(ae,ee,y));break}else{let xe=E.map[ae];xe===void 0&&(xe=new _X(ae),QF(E,xe)),E=xe}}}class fB{constructor(y,E){this.seq=[],this.map={};const z=y.getProgramParameter(E,y.ACTIVE_UNIFORMS);for(let ne=0;ne<z;++ne){const ie=y.getActiveUniform(E,ne),se=y.getUniformLocation(E,ie.name);$X(ie,se,this)}}setValue(y,E,z,ne){const ie=this.map[E];ie!==void 0&&ie.setValue(y,z,ne)}setOptional(y,E,z){const ne=E[z];ne!==void 0&&this.setValue(y,z,ne)}static upload(y,E,z,ne){for(let ie=0,se=E.length;ie!==se;++ie){const ae=E[ie],he=z[ae.id];he.needsUpdate!==!1&&ae.setValue(y,he.value,ne)}}static seqWithValue(y,E){const z=[];for(let ne=0,ie=y.length;ne!==ie;++ne){const se=y[ne];se.id in E&&z.push(se)}return z}}function ZF(ee,y,E){const z=ee.createShader(y);return ee.shaderSource(z,E),ee.compileShader(z),z}const eW=37297;let tW=0;function nW(ee,y){const E=ee.split(`
|
|
`),z=[],ne=Math.max(y-6,0),ie=Math.min(y+6,E.length);for(let se=ne;se<ie;se++){const ae=se+1;z.push(`${ae===y?">":" "} ${ae}: ${E[se]}`)}return z.join(`
|
|
`)}const YF=new nu;function iW(ee){su._getMatrix(YF,su.workingColorSpace,ee);const y=`mat3( ${YF.elements.map(E=>E.toFixed(4))} )`;switch(su.getTransfer(ee)){case Cx:return[y,"LinearTransferOETF"];case Ua:return[y,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",ee),[y,"LinearTransferOETF"]}}function KF(ee,y,E){const z=ee.getShaderParameter(y,ee.COMPILE_STATUS),ne=ee.getShaderInfoLog(y).trim();if(z&&ne==="")return"";const ie=/ERROR: 0:(\d+)/.exec(ne);if(ie){const se=parseInt(ie[1]);return E.toUpperCase()+`
|
|
|
|
`+ne+`
|
|
|
|
`+nW(ee.getShaderSource(y),se)}else return ne}function rW(ee,y){const E=iW(y);return[`vec4 ${ee}( vec4 value ) {`,` return ${E[1]}( vec4( value.rgb * ${E[0]}, value.a ) );`,"}"].join(`
|
|
`)}function oW(ee,y){let E;switch(y){case hg:E="Linear";break;case Jc:E="Reinhard";break;case Wp:E="Cineon";break;case vh:E="ACESFilmic";break;case dp:E="AgX";break;case Gf:E="Neutral";break;case mx:E="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",y),E="Linear"}return"vec3 "+ee+"( vec3 color ) { return "+E+"ToneMapping( color ); }"}const pB=new yn;function sW(){su.getLuminanceCoefficients(pB);const ee=pB.x.toFixed(4),y=pB.y.toFixed(4),E=pB.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${ee}, ${y}, ${E} );`," return dot( weights, rgb );","}"].join(`
|
|
`)}function aW(ee){return[ee.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",ee.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(W2).join(`
|
|
`)}function lW(ee){const y=[];for(const E in ee){const z=ee[E];z!==!1&&y.push("#define "+E+" "+z)}return y.join(`
|
|
`)}function uW(ee,y){const E={},z=ee.getProgramParameter(y,ee.ACTIVE_ATTRIBUTES);for(let ne=0;ne<z;ne++){const ie=ee.getActiveAttrib(y,ne),se=ie.name;let ae=1;ie.type===ee.FLOAT_MAT2&&(ae=2),ie.type===ee.FLOAT_MAT3&&(ae=3),ie.type===ee.FLOAT_MAT4&&(ae=4),E[se]={type:ie.type,location:ee.getAttribLocation(y,se),locationSize:ae}}return E}function W2(ee){return ee!==""}function JF(ee,y){const E=y.numSpotLightShadows+y.numSpotLightMaps-y.numSpotLightShadowsWithMaps;return ee.replace(/NUM_DIR_LIGHTS/g,y.numDirLights).replace(/NUM_SPOT_LIGHTS/g,y.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,y.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,E).replace(/NUM_RECT_AREA_LIGHTS/g,y.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,y.numPointLights).replace(/NUM_HEMI_LIGHTS/g,y.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,y.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,y.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,y.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,y.numPointLightShadows)}function qF(ee,y){return ee.replace(/NUM_CLIPPING_PLANES/g,y.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,y.numClippingPlanes-y.numClipIntersection)}const cW=/^[ \t]*#include +<([\w\d./]+)>/gm;function q3(ee){return ee.replace(cW,dW)}const hW=new Map;function dW(ee,y){let E=hc[y];if(E===void 0){const z=hW.get(y);if(z!==void 0)E=hc[z],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',y,z);else throw new Error("Can not resolve #include <"+y+">")}return q3(E)}const fW=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function _F(ee){return ee.replace(fW,pW)}function pW(ee,y,E,z){let ne="";for(let ie=parseInt(y);ie<parseInt(E);ie++)ne+=z.replace(/\[\s*i\s*\]/g,"[ "+ie+" ]").replace(/UNROLLED_LOOP_INDEX/g,ie);return ne}function $F(ee){let y=`precision ${ee.precision} float;
|
|
precision ${ee.precision} int;
|
|
precision ${ee.precision} sampler2D;
|
|
precision ${ee.precision} samplerCube;
|
|
precision ${ee.precision} sampler3D;
|
|
precision ${ee.precision} sampler2DArray;
|
|
precision ${ee.precision} sampler2DShadow;
|
|
precision ${ee.precision} samplerCubeShadow;
|
|
precision ${ee.precision} sampler2DArrayShadow;
|
|
precision ${ee.precision} isampler2D;
|
|
precision ${ee.precision} isampler3D;
|
|
precision ${ee.precision} isamplerCube;
|
|
precision ${ee.precision} isampler2DArray;
|
|
precision ${ee.precision} usampler2D;
|
|
precision ${ee.precision} usampler3D;
|
|
precision ${ee.precision} usamplerCube;
|
|
precision ${ee.precision} usampler2DArray;
|
|
`;return ee.precision==="highp"?y+=`
|
|
#define HIGH_PRECISION`:ee.precision==="mediump"?y+=`
|
|
#define MEDIUM_PRECISION`:ee.precision==="lowp"&&(y+=`
|
|
#define LOW_PRECISION`),y}function gW(ee){let y="SHADOWMAP_TYPE_BASIC";return ee.shadowMapType===Qv?y="SHADOWMAP_TYPE_PCF":ee.shadowMapType===PC?y="SHADOWMAP_TYPE_PCF_SOFT":ee.shadowMapType===gc&&(y="SHADOWMAP_TYPE_VSM"),y}function mW(ee){let y="ENVMAP_TYPE_CUBE";if(ee.envMap)switch(ee.envMapMode){case ud:case Xf:y="ENVMAP_TYPE_CUBE";break;case Q0:y="ENVMAP_TYPE_CUBE_UV";break}return y}function vW(ee){let y="ENVMAP_MODE_REFLECTION";if(ee.envMap)switch(ee.envMapMode){case Xf:y="ENVMAP_MODE_REFRACTION";break}return y}function yW(ee){let y="ENVMAP_BLENDING_NONE";if(ee.envMap)switch(ee.combine){case Fu:y="ENVMAP_BLENDING_MULTIPLY";break;case th:y="ENVMAP_BLENDING_MIX";break;case ld:y="ENVMAP_BLENDING_ADD";break}return y}function AW(ee){const y=ee.envMapCubeUVHeight;if(y===null)return null;const E=Math.log2(y)-2,z=1/y;return{texelWidth:1/(3*Math.max(Math.pow(2,E),7*16)),texelHeight:z,maxMip:E}}function xW(ee,y,E,z){const ne=ee.getContext(),ie=E.defines;let se=E.vertexShader,ae=E.fragmentShader;const he=gW(E),pe=mW(E),ve=vW(E),xe=yW(E),Se=AW(E),Be=aW(E),De=lW(ie),Re=ne.createProgram();let Oe,Le,Je=E.glslVersion?"#version "+E.glslVersion+`
|
|
`:"";E.isRawShaderMaterial?(Oe=["#define SHADER_TYPE "+E.shaderType,"#define SHADER_NAME "+E.shaderName,De].filter(W2).join(`
|
|
`),Oe.length>0&&(Oe+=`
|
|
`),Le=["#define SHADER_TYPE "+E.shaderType,"#define SHADER_NAME "+E.shaderName,De].filter(W2).join(`
|
|
`),Le.length>0&&(Le+=`
|
|
`)):(Oe=[$F(E),"#define SHADER_TYPE "+E.shaderType,"#define SHADER_NAME "+E.shaderName,De,E.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",E.batching?"#define USE_BATCHING":"",E.batchingColor?"#define USE_BATCHING_COLOR":"",E.instancing?"#define USE_INSTANCING":"",E.instancingColor?"#define USE_INSTANCING_COLOR":"",E.instancingMorph?"#define USE_INSTANCING_MORPH":"",E.useFog&&E.fog?"#define USE_FOG":"",E.useFog&&E.fogExp2?"#define FOG_EXP2":"",E.map?"#define USE_MAP":"",E.envMap?"#define USE_ENVMAP":"",E.envMap?"#define "+ve:"",E.lightMap?"#define USE_LIGHTMAP":"",E.aoMap?"#define USE_AOMAP":"",E.bumpMap?"#define USE_BUMPMAP":"",E.normalMap?"#define USE_NORMALMAP":"",E.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",E.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",E.displacementMap?"#define USE_DISPLACEMENTMAP":"",E.emissiveMap?"#define USE_EMISSIVEMAP":"",E.anisotropy?"#define USE_ANISOTROPY":"",E.anisotropyMap?"#define USE_ANISOTROPYMAP":"",E.clearcoatMap?"#define USE_CLEARCOATMAP":"",E.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",E.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",E.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",E.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",E.specularMap?"#define USE_SPECULARMAP":"",E.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",E.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",E.roughnessMap?"#define USE_ROUGHNESSMAP":"",E.metalnessMap?"#define USE_METALNESSMAP":"",E.alphaMap?"#define USE_ALPHAMAP":"",E.alphaHash?"#define USE_ALPHAHASH":"",E.transmission?"#define USE_TRANSMISSION":"",E.transmissionMap?"#define USE_TRANSMISSIONMAP":"",E.thicknessMap?"#define USE_THICKNESSMAP":"",E.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",E.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",E.mapUv?"#define MAP_UV "+E.mapUv:"",E.alphaMapUv?"#define ALPHAMAP_UV "+E.alphaMapUv:"",E.lightMapUv?"#define LIGHTMAP_UV "+E.lightMapUv:"",E.aoMapUv?"#define AOMAP_UV "+E.aoMapUv:"",E.emissiveMapUv?"#define EMISSIVEMAP_UV "+E.emissiveMapUv:"",E.bumpMapUv?"#define BUMPMAP_UV "+E.bumpMapUv:"",E.normalMapUv?"#define NORMALMAP_UV "+E.normalMapUv:"",E.displacementMapUv?"#define DISPLACEMENTMAP_UV "+E.displacementMapUv:"",E.metalnessMapUv?"#define METALNESSMAP_UV "+E.metalnessMapUv:"",E.roughnessMapUv?"#define ROUGHNESSMAP_UV "+E.roughnessMapUv:"",E.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+E.anisotropyMapUv:"",E.clearcoatMapUv?"#define CLEARCOATMAP_UV "+E.clearcoatMapUv:"",E.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+E.clearcoatNormalMapUv:"",E.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+E.clearcoatRoughnessMapUv:"",E.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+E.iridescenceMapUv:"",E.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+E.iridescenceThicknessMapUv:"",E.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+E.sheenColorMapUv:"",E.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+E.sheenRoughnessMapUv:"",E.specularMapUv?"#define SPECULARMAP_UV "+E.specularMapUv:"",E.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+E.specularColorMapUv:"",E.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+E.specularIntensityMapUv:"",E.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+E.transmissionMapUv:"",E.thicknessMapUv?"#define THICKNESSMAP_UV "+E.thicknessMapUv:"",E.vertexTangents&&E.flatShading===!1?"#define USE_TANGENT":"",E.vertexColors?"#define USE_COLOR":"",E.vertexAlphas?"#define USE_COLOR_ALPHA":"",E.vertexUv1s?"#define USE_UV1":"",E.vertexUv2s?"#define USE_UV2":"",E.vertexUv3s?"#define USE_UV3":"",E.pointsUvs?"#define USE_POINTS_UV":"",E.flatShading?"#define FLAT_SHADED":"",E.skinning?"#define USE_SKINNING":"",E.morphTargets?"#define USE_MORPHTARGETS":"",E.morphNormals&&E.flatShading===!1?"#define USE_MORPHNORMALS":"",E.morphColors?"#define USE_MORPHCOLORS":"",E.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+E.morphTextureStride:"",E.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+E.morphTargetsCount:"",E.doubleSided?"#define DOUBLE_SIDED":"",E.flipSided?"#define FLIP_SIDED":"",E.shadowMapEnabled?"#define USE_SHADOWMAP":"",E.shadowMapEnabled?"#define "+he:"",E.sizeAttenuation?"#define USE_SIZEATTENUATION":"",E.numLightProbes>0?"#define USE_LIGHT_PROBES":"",E.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",E.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",`
|
|
`].filter(W2).join(`
|
|
`),Le=[$F(E),"#define SHADER_TYPE "+E.shaderType,"#define SHADER_NAME "+E.shaderName,De,E.useFog&&E.fog?"#define USE_FOG":"",E.useFog&&E.fogExp2?"#define FOG_EXP2":"",E.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",E.map?"#define USE_MAP":"",E.matcap?"#define USE_MATCAP":"",E.envMap?"#define USE_ENVMAP":"",E.envMap?"#define "+pe:"",E.envMap?"#define "+ve:"",E.envMap?"#define "+xe:"",Se?"#define CUBEUV_TEXEL_WIDTH "+Se.texelWidth:"",Se?"#define CUBEUV_TEXEL_HEIGHT "+Se.texelHeight:"",Se?"#define CUBEUV_MAX_MIP "+Se.maxMip+".0":"",E.lightMap?"#define USE_LIGHTMAP":"",E.aoMap?"#define USE_AOMAP":"",E.bumpMap?"#define USE_BUMPMAP":"",E.normalMap?"#define USE_NORMALMAP":"",E.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",E.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",E.emissiveMap?"#define USE_EMISSIVEMAP":"",E.anisotropy?"#define USE_ANISOTROPY":"",E.anisotropyMap?"#define USE_ANISOTROPYMAP":"",E.clearcoat?"#define USE_CLEARCOAT":"",E.clearcoatMap?"#define USE_CLEARCOATMAP":"",E.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",E.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",E.dispersion?"#define USE_DISPERSION":"",E.iridescence?"#define USE_IRIDESCENCE":"",E.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",E.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",E.specularMap?"#define USE_SPECULARMAP":"",E.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",E.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",E.roughnessMap?"#define USE_ROUGHNESSMAP":"",E.metalnessMap?"#define USE_METALNESSMAP":"",E.alphaMap?"#define USE_ALPHAMAP":"",E.alphaTest?"#define USE_ALPHATEST":"",E.alphaHash?"#define USE_ALPHAHASH":"",E.sheen?"#define USE_SHEEN":"",E.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",E.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",E.transmission?"#define USE_TRANSMISSION":"",E.transmissionMap?"#define USE_TRANSMISSIONMAP":"",E.thicknessMap?"#define USE_THICKNESSMAP":"",E.vertexTangents&&E.flatShading===!1?"#define USE_TANGENT":"",E.vertexColors||E.instancingColor||E.batchingColor?"#define USE_COLOR":"",E.vertexAlphas?"#define USE_COLOR_ALPHA":"",E.vertexUv1s?"#define USE_UV1":"",E.vertexUv2s?"#define USE_UV2":"",E.vertexUv3s?"#define USE_UV3":"",E.pointsUvs?"#define USE_POINTS_UV":"",E.gradientMap?"#define USE_GRADIENTMAP":"",E.flatShading?"#define FLAT_SHADED":"",E.doubleSided?"#define DOUBLE_SIDED":"",E.flipSided?"#define FLIP_SIDED":"",E.shadowMapEnabled?"#define USE_SHADOWMAP":"",E.shadowMapEnabled?"#define "+he:"",E.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",E.numLightProbes>0?"#define USE_LIGHT_PROBES":"",E.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",E.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",E.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",E.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",E.toneMapping!==bc?"#define TONE_MAPPING":"",E.toneMapping!==bc?hc.tonemapping_pars_fragment:"",E.toneMapping!==bc?oW("toneMapping",E.toneMapping):"",E.dithering?"#define DITHERING":"",E.opaque?"#define OPAQUE":"",hc.colorspace_pars_fragment,rW("linearToOutputTexel",E.outputColorSpace),sW(),E.useDepthPacking?"#define DEPTH_PACKING "+E.depthPacking:"",`
|
|
`].filter(W2).join(`
|
|
`)),se=q3(se),se=JF(se,E),se=qF(se,E),ae=q3(ae),ae=JF(ae,E),ae=qF(ae,E),se=_F(se),ae=_F(ae),E.isRawShaderMaterial!==!0&&(Je=`#version 300 es
|
|
`,Oe=[Be,"#define attribute in","#define varying out","#define texture2D texture"].join(`
|
|
`)+`
|
|
`+Oe,Le=["#define varying in",E.glslVersion===Rg?"":"layout(location = 0) out highp vec4 pc_fragColor;",E.glslVersion===Rg?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(`
|
|
`)+`
|
|
`+Le);const $e=Je+Oe+se,_e=Je+Le+ae,st=ZF(ne,ne.VERTEX_SHADER,$e),ct=ZF(ne,ne.FRAGMENT_SHADER,_e);ne.attachShader(Re,st),ne.attachShader(Re,ct),E.index0AttributeName!==void 0?ne.bindAttribLocation(Re,0,E.index0AttributeName):E.morphTargets===!0&&ne.bindAttribLocation(Re,0,"position"),ne.linkProgram(Re);function ut(zt){if(ee.debug.checkShaderErrors){const cn=ne.getProgramInfoLog(Re).trim(),Tn=ne.getShaderInfoLog(st).trim(),Zn=ne.getShaderInfoLog(ct).trim();let Nn=!0,di=!0;if(ne.getProgramParameter(Re,ne.LINK_STATUS)===!1)if(Nn=!1,typeof ee.debug.onShaderError=="function")ee.debug.onShaderError(ne,Re,st,ct);else{const yi=KF(ne,st,"vertex"),bn=KF(ne,ct,"fragment");console.error("THREE.WebGLProgram: Shader Error "+ne.getError()+" - VALIDATE_STATUS "+ne.getProgramParameter(Re,ne.VALIDATE_STATUS)+`
|
|
|
|
Material Name: `+zt.name+`
|
|
Material Type: `+zt.type+`
|
|
|
|
Program Info Log: `+cn+`
|
|
`+yi+`
|
|
`+bn)}else cn!==""?console.warn("THREE.WebGLProgram: Program Info Log:",cn):(Tn===""||Zn==="")&&(di=!1);di&&(zt.diagnostics={runnable:Nn,programLog:cn,vertexShader:{log:Tn,prefix:Oe},fragmentShader:{log:Zn,prefix:Le}})}ne.deleteShader(st),ne.deleteShader(ct),ht=new fB(ne,Re),pt=uW(ne,Re)}let ht;this.getUniforms=function(){return ht===void 0&&ut(this),ht};let pt;this.getAttributes=function(){return pt===void 0&&ut(this),pt};let gt=E.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return gt===!1&&(gt=ne.getProgramParameter(Re,eW)),gt},this.destroy=function(){z.releaseStatesOfProgram(this),ne.deleteProgram(Re),this.program=void 0},this.type=E.shaderType,this.name=E.shaderName,this.id=tW++,this.cacheKey=y,this.usedTimes=1,this.program=Re,this.vertexShader=st,this.fragmentShader=ct,this}let wW=0;class SW{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(y){const E=y.vertexShader,z=y.fragmentShader,ne=this._getShaderStage(E),ie=this._getShaderStage(z),se=this._getShaderCacheForMaterial(y);return se.has(ne)===!1&&(se.add(ne),ne.usedTimes++),se.has(ie)===!1&&(se.add(ie),ie.usedTimes++),this}remove(y){const E=this.materialCache.get(y);for(const z of E)z.usedTimes--,z.usedTimes===0&&this.shaderCache.delete(z.code);return this.materialCache.delete(y),this}getVertexShaderID(y){return this._getShaderStage(y.vertexShader).id}getFragmentShaderID(y){return this._getShaderStage(y.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(y){const E=this.materialCache;let z=E.get(y);return z===void 0&&(z=new Set,E.set(y,z)),z}_getShaderStage(y){const E=this.shaderCache;let z=E.get(y);return z===void 0&&(z=new PW(y),E.set(y,z)),z}}class PW{constructor(y){this.id=wW++,this.code=y,this.usedTimes=0}}function CW(ee,y,E,z,ne,ie,se){const ae=new AA,he=new SW,pe=new Set,ve=[],xe=ne.logarithmicDepthBuffer,Se=ne.vertexTextures;let Be=ne.precision;const De={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function Re(pt){return pe.add(pt),pt===0?"uv":`uv${pt}`}function Oe(pt,gt,zt,cn,Tn){const Zn=cn.fog,Nn=Tn.geometry,di=pt.isMeshStandardMaterial?cn.environment:null,yi=(pt.isMeshStandardMaterial?E:y).get(pt.envMap||di),bn=yi&&yi.mapping===Q0?yi.image.height:null,Sn=De[pt.type];pt.precision!==null&&(Be=ne.getMaxPrecision(pt.precision),Be!==pt.precision&&console.warn("THREE.WebGLProgram.getParameters:",pt.precision,"not supported, using",Be,"instead."));const ki=Nn.morphAttributes.position||Nn.morphAttributes.normal||Nn.morphAttributes.color,ti=ki!==void 0?ki.length:0;let fn=0;Nn.morphAttributes.position!==void 0&&(fn=1),Nn.morphAttributes.normal!==void 0&&(fn=2),Nn.morphAttributes.color!==void 0&&(fn=3);let Bi,jn,ei,hr;if(Sn){const ya=OA[Sn];Bi=ya.vertexShader,jn=ya.fragmentShader}else Bi=pt.vertexShader,jn=pt.fragmentShader,he.update(pt),ei=he.getVertexShaderID(pt),hr=he.getFragmentShaderID(pt);const _n=ee.getRenderTarget(),qi=ee.state.buffers.depth.getReversed(),Sr=Tn.isInstancedMesh===!0,Pr=Tn.isBatchedMesh===!0,Go=!!pt.map,_o=!!pt.matcap,ta=!!yi,un=!!pt.aoMap,so=!!pt.lightMap,Kr=!!pt.bumpMap,kr=!!pt.normalMap,_r=!!pt.displacementMap,Ks=!!pt.emissiveMap,jo=!!pt.metalnessMap,Ro=!!pt.roughnessMap,qa=pt.anisotropy>0,mn=pt.clearcoat>0,Gt=pt.dispersion>0,tr=pt.iridescence>0,Fr=pt.sheen>0,vi=pt.transmission>0,Dr=qa&&!!pt.anisotropyMap,Es=mn&&!!pt.clearcoatMap,gs=mn&&!!pt.clearcoatNormalMap,Na=mn&&!!pt.clearcoatRoughnessMap,Qa=tr&&!!pt.iridescenceMap,Zo=tr&&!!pt.iridescenceThicknessMap,ba=Fr&&!!pt.sheenColorMap,Ba=Fr&&!!pt.sheenRoughnessMap,ra=!!pt.specularMap,ns=!!pt.specularColorMap,Fl=!!pt.specularIntensityMap,Xi=vi&&!!pt.transmissionMap,xa=vi&&!!pt.thicknessMap,No=!!pt.gradientMap,oa=!!pt.alphaMap,vs=pt.alphaTest>0,Yo=!!pt.alphaHash,Jr=!!pt.extensions;let Ps=bc;pt.toneMapped&&(_n===null||_n.isXRRenderTarget===!0)&&(Ps=ee.toneMapping);const Ga={shaderID:Sn,shaderType:pt.type,shaderName:pt.name,vertexShader:Bi,fragmentShader:jn,defines:pt.defines,customVertexShaderID:ei,customFragmentShaderID:hr,isRawShaderMaterial:pt.isRawShaderMaterial===!0,glslVersion:pt.glslVersion,precision:Be,batching:Pr,batchingColor:Pr&&Tn._colorsTexture!==null,instancing:Sr,instancingColor:Sr&&Tn.instanceColor!==null,instancingMorph:Sr&&Tn.morphTexture!==null,supportsVertexTextures:Se,outputColorSpace:_n===null?ee.outputColorSpace:_n.isXRRenderTarget===!0?_n.texture.colorSpace:Fm,alphaToCoverage:!!pt.alphaToCoverage,map:Go,matcap:_o,envMap:ta,envMapMode:ta&&yi.mapping,envMapCubeUVHeight:bn,aoMap:un,lightMap:so,bumpMap:Kr,normalMap:kr,displacementMap:Se&&_r,emissiveMap:Ks,normalMapObjectSpace:kr&&pt.normalMapType===MC,normalMapTangentSpace:kr&&pt.normalMapType===h0,metalnessMap:jo,roughnessMap:Ro,anisotropy:qa,anisotropyMap:Dr,clearcoat:mn,clearcoatMap:Es,clearcoatNormalMap:gs,clearcoatRoughnessMap:Na,dispersion:Gt,iridescence:tr,iridescenceMap:Qa,iridescenceThicknessMap:Zo,sheen:Fr,sheenColorMap:ba,sheenRoughnessMap:Ba,specularMap:ra,specularColorMap:ns,specularIntensityMap:Fl,transmission:vi,transmissionMap:Xi,thicknessMap:xa,gradientMap:No,opaque:pt.transparent===!1&&pt.blending===de&&pt.alphaToCoverage===!1,alphaMap:oa,alphaTest:vs,alphaHash:Yo,combine:pt.combine,mapUv:Go&&Re(pt.map.channel),aoMapUv:un&&Re(pt.aoMap.channel),lightMapUv:so&&Re(pt.lightMap.channel),bumpMapUv:Kr&&Re(pt.bumpMap.channel),normalMapUv:kr&&Re(pt.normalMap.channel),displacementMapUv:_r&&Re(pt.displacementMap.channel),emissiveMapUv:Ks&&Re(pt.emissiveMap.channel),metalnessMapUv:jo&&Re(pt.metalnessMap.channel),roughnessMapUv:Ro&&Re(pt.roughnessMap.channel),anisotropyMapUv:Dr&&Re(pt.anisotropyMap.channel),clearcoatMapUv:Es&&Re(pt.clearcoatMap.channel),clearcoatNormalMapUv:gs&&Re(pt.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Na&&Re(pt.clearcoatRoughnessMap.channel),iridescenceMapUv:Qa&&Re(pt.iridescenceMap.channel),iridescenceThicknessMapUv:Zo&&Re(pt.iridescenceThicknessMap.channel),sheenColorMapUv:ba&&Re(pt.sheenColorMap.channel),sheenRoughnessMapUv:Ba&&Re(pt.sheenRoughnessMap.channel),specularMapUv:ra&&Re(pt.specularMap.channel),specularColorMapUv:ns&&Re(pt.specularColorMap.channel),specularIntensityMapUv:Fl&&Re(pt.specularIntensityMap.channel),transmissionMapUv:Xi&&Re(pt.transmissionMap.channel),thicknessMapUv:xa&&Re(pt.thicknessMap.channel),alphaMapUv:oa&&Re(pt.alphaMap.channel),vertexTangents:!!Nn.attributes.tangent&&(kr||qa),vertexColors:pt.vertexColors,vertexAlphas:pt.vertexColors===!0&&!!Nn.attributes.color&&Nn.attributes.color.itemSize===4,pointsUvs:Tn.isPoints===!0&&!!Nn.attributes.uv&&(Go||oa),fog:!!Zn,useFog:pt.fog===!0,fogExp2:!!Zn&&Zn.isFogExp2,flatShading:pt.flatShading===!0,sizeAttenuation:pt.sizeAttenuation===!0,logarithmicDepthBuffer:xe,reverseDepthBuffer:qi,skinning:Tn.isSkinnedMesh===!0,morphTargets:Nn.morphAttributes.position!==void 0,morphNormals:Nn.morphAttributes.normal!==void 0,morphColors:Nn.morphAttributes.color!==void 0,morphTargetsCount:ti,morphTextureStride:fn,numDirLights:gt.directional.length,numPointLights:gt.point.length,numSpotLights:gt.spot.length,numSpotLightMaps:gt.spotLightMap.length,numRectAreaLights:gt.rectArea.length,numHemiLights:gt.hemi.length,numDirLightShadows:gt.directionalShadowMap.length,numPointLightShadows:gt.pointShadowMap.length,numSpotLightShadows:gt.spotShadowMap.length,numSpotLightShadowsWithMaps:gt.numSpotLightShadowsWithMaps,numLightProbes:gt.numLightProbes,numClippingPlanes:se.numPlanes,numClipIntersection:se.numIntersection,dithering:pt.dithering,shadowMapEnabled:ee.shadowMap.enabled&&zt.length>0,shadowMapType:ee.shadowMap.type,toneMapping:Ps,decodeVideoTexture:Go&&pt.map.isVideoTexture===!0&&su.getTransfer(pt.map.colorSpace)===Ua,decodeVideoTextureEmissive:Ks&&pt.emissiveMap.isVideoTexture===!0&&su.getTransfer(pt.emissiveMap.colorSpace)===Ua,premultipliedAlpha:pt.premultipliedAlpha,doubleSided:pt.side===Fh,flipSided:pt.side===wc,useDepthPacking:pt.depthPacking>=0,depthPacking:pt.depthPacking||0,index0AttributeName:pt.index0AttributeName,extensionClipCullDistance:Jr&&pt.extensions.clipCullDistance===!0&&z.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(Jr&&pt.extensions.multiDraw===!0||Pr)&&z.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:z.has("KHR_parallel_shader_compile"),customProgramCacheKey:pt.customProgramCacheKey()};return Ga.vertexUv1s=pe.has(1),Ga.vertexUv2s=pe.has(2),Ga.vertexUv3s=pe.has(3),pe.clear(),Ga}function Le(pt){const gt=[];if(pt.shaderID?gt.push(pt.shaderID):(gt.push(pt.customVertexShaderID),gt.push(pt.customFragmentShaderID)),pt.defines!==void 0)for(const zt in pt.defines)gt.push(zt),gt.push(pt.defines[zt]);return pt.isRawShaderMaterial===!1&&(Je(gt,pt),$e(gt,pt),gt.push(ee.outputColorSpace)),gt.push(pt.customProgramCacheKey),gt.join()}function Je(pt,gt){pt.push(gt.precision),pt.push(gt.outputColorSpace),pt.push(gt.envMapMode),pt.push(gt.envMapCubeUVHeight),pt.push(gt.mapUv),pt.push(gt.alphaMapUv),pt.push(gt.lightMapUv),pt.push(gt.aoMapUv),pt.push(gt.bumpMapUv),pt.push(gt.normalMapUv),pt.push(gt.displacementMapUv),pt.push(gt.emissiveMapUv),pt.push(gt.metalnessMapUv),pt.push(gt.roughnessMapUv),pt.push(gt.anisotropyMapUv),pt.push(gt.clearcoatMapUv),pt.push(gt.clearcoatNormalMapUv),pt.push(gt.clearcoatRoughnessMapUv),pt.push(gt.iridescenceMapUv),pt.push(gt.iridescenceThicknessMapUv),pt.push(gt.sheenColorMapUv),pt.push(gt.sheenRoughnessMapUv),pt.push(gt.specularMapUv),pt.push(gt.specularColorMapUv),pt.push(gt.specularIntensityMapUv),pt.push(gt.transmissionMapUv),pt.push(gt.thicknessMapUv),pt.push(gt.combine),pt.push(gt.fogExp2),pt.push(gt.sizeAttenuation),pt.push(gt.morphTargetsCount),pt.push(gt.morphAttributeCount),pt.push(gt.numDirLights),pt.push(gt.numPointLights),pt.push(gt.numSpotLights),pt.push(gt.numSpotLightMaps),pt.push(gt.numHemiLights),pt.push(gt.numRectAreaLights),pt.push(gt.numDirLightShadows),pt.push(gt.numPointLightShadows),pt.push(gt.numSpotLightShadows),pt.push(gt.numSpotLightShadowsWithMaps),pt.push(gt.numLightProbes),pt.push(gt.shadowMapType),pt.push(gt.toneMapping),pt.push(gt.numClippingPlanes),pt.push(gt.numClipIntersection),pt.push(gt.depthPacking)}function $e(pt,gt){ae.disableAll(),gt.supportsVertexTextures&&ae.enable(0),gt.instancing&&ae.enable(1),gt.instancingColor&&ae.enable(2),gt.instancingMorph&&ae.enable(3),gt.matcap&&ae.enable(4),gt.envMap&&ae.enable(5),gt.normalMapObjectSpace&&ae.enable(6),gt.normalMapTangentSpace&&ae.enable(7),gt.clearcoat&&ae.enable(8),gt.iridescence&&ae.enable(9),gt.alphaTest&&ae.enable(10),gt.vertexColors&&ae.enable(11),gt.vertexAlphas&&ae.enable(12),gt.vertexUv1s&&ae.enable(13),gt.vertexUv2s&&ae.enable(14),gt.vertexUv3s&&ae.enable(15),gt.vertexTangents&&ae.enable(16),gt.anisotropy&&ae.enable(17),gt.alphaHash&&ae.enable(18),gt.batching&&ae.enable(19),gt.dispersion&&ae.enable(20),gt.batchingColor&&ae.enable(21),pt.push(ae.mask),ae.disableAll(),gt.fog&&ae.enable(0),gt.useFog&&ae.enable(1),gt.flatShading&&ae.enable(2),gt.logarithmicDepthBuffer&&ae.enable(3),gt.reverseDepthBuffer&&ae.enable(4),gt.skinning&&ae.enable(5),gt.morphTargets&&ae.enable(6),gt.morphNormals&&ae.enable(7),gt.morphColors&&ae.enable(8),gt.premultipliedAlpha&&ae.enable(9),gt.shadowMapEnabled&&ae.enable(10),gt.doubleSided&&ae.enable(11),gt.flipSided&&ae.enable(12),gt.useDepthPacking&&ae.enable(13),gt.dithering&&ae.enable(14),gt.transmission&&ae.enable(15),gt.sheen&&ae.enable(16),gt.opaque&&ae.enable(17),gt.pointsUvs&&ae.enable(18),gt.decodeVideoTexture&&ae.enable(19),gt.decodeVideoTextureEmissive&&ae.enable(20),gt.alphaToCoverage&&ae.enable(21),pt.push(ae.mask)}function _e(pt){const gt=De[pt.type];let zt;if(gt){const cn=OA[gt];zt=GC.clone(cn.uniforms)}else zt=pt.uniforms;return zt}function st(pt,gt){let zt;for(let cn=0,Tn=ve.length;cn<Tn;cn++){const Zn=ve[cn];if(Zn.cacheKey===gt){zt=Zn,++zt.usedTimes;break}}return zt===void 0&&(zt=new xW(ee,gt,pt,ie),ve.push(zt)),zt}function ct(pt){if(--pt.usedTimes===0){const gt=ve.indexOf(pt);ve[gt]=ve[ve.length-1],ve.pop(),pt.destroy()}}function ut(pt){he.remove(pt)}function ht(){he.dispose()}return{getParameters:Oe,getProgramCacheKey:Le,getUniforms:_e,acquireProgram:st,releaseProgram:ct,releaseShaderCache:ut,programs:ve,dispose:ht}}function EW(){let ee=new WeakMap;function y(se){return ee.has(se)}function E(se){let ae=ee.get(se);return ae===void 0&&(ae={},ee.set(se,ae)),ae}function z(se){ee.delete(se)}function ne(se,ae,he){ee.get(se)[ae]=he}function ie(){ee=new WeakMap}return{has:y,get:E,remove:z,update:ne,dispose:ie}}function bW(ee,y){return ee.groupOrder!==y.groupOrder?ee.groupOrder-y.groupOrder:ee.renderOrder!==y.renderOrder?ee.renderOrder-y.renderOrder:ee.material.id!==y.material.id?ee.material.id-y.material.id:ee.z!==y.z?ee.z-y.z:ee.id-y.id}function eL(ee,y){return ee.groupOrder!==y.groupOrder?ee.groupOrder-y.groupOrder:ee.renderOrder!==y.renderOrder?ee.renderOrder-y.renderOrder:ee.z!==y.z?y.z-ee.z:ee.id-y.id}function tL(){const ee=[];let y=0;const E=[],z=[],ne=[];function ie(){y=0,E.length=0,z.length=0,ne.length=0}function se(xe,Se,Be,De,Re,Oe){let Le=ee[y];return Le===void 0?(Le={id:xe.id,object:xe,geometry:Se,material:Be,groupOrder:De,renderOrder:xe.renderOrder,z:Re,group:Oe},ee[y]=Le):(Le.id=xe.id,Le.object=xe,Le.geometry=Se,Le.material=Be,Le.groupOrder=De,Le.renderOrder=xe.renderOrder,Le.z=Re,Le.group=Oe),y++,Le}function ae(xe,Se,Be,De,Re,Oe){const Le=se(xe,Se,Be,De,Re,Oe);Be.transmission>0?z.push(Le):Be.transparent===!0?ne.push(Le):E.push(Le)}function he(xe,Se,Be,De,Re,Oe){const Le=se(xe,Se,Be,De,Re,Oe);Be.transmission>0?z.unshift(Le):Be.transparent===!0?ne.unshift(Le):E.unshift(Le)}function pe(xe,Se){E.length>1&&E.sort(xe||bW),z.length>1&&z.sort(Se||eL),ne.length>1&&ne.sort(Se||eL)}function ve(){for(let xe=y,Se=ee.length;xe<Se;xe++){const Be=ee[xe];if(Be.id===null)break;Be.id=null,Be.object=null,Be.geometry=null,Be.material=null,Be.group=null}}return{opaque:E,transmissive:z,transparent:ne,init:ie,push:ae,unshift:he,finish:ve,sort:pe}}function MW(){let ee=new WeakMap;function y(z,ne){const ie=ee.get(z);let se;return ie===void 0?(se=new tL,ee.set(z,[se])):ne>=ie.length?(se=new tL,ie.push(se)):se=ie[ne],se}function E(){ee=new WeakMap}return{get:y,dispose:E}}function BW(){const ee={};return{get:function(y){if(ee[y.id]!==void 0)return ee[y.id];let E;switch(y.type){case"DirectionalLight":E={direction:new yn,color:new ia};break;case"SpotLight":E={position:new yn,direction:new yn,color:new ia,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":E={position:new yn,color:new ia,distance:0,decay:0};break;case"HemisphereLight":E={direction:new yn,skyColor:new ia,groundColor:new ia};break;case"RectAreaLight":E={color:new ia,position:new yn,halfWidth:new yn,halfHeight:new yn};break}return ee[y.id]=E,E}}}function TW(){const ee={};return{get:function(y){if(ee[y.id]!==void 0)return ee[y.id];let E;switch(y.type){case"DirectionalLight":E={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Yr};break;case"SpotLight":E={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Yr};break;case"PointLight":E={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Yr,shadowCameraNear:1,shadowCameraFar:1e3};break}return ee[y.id]=E,E}}}let DW=0;function NW(ee,y){return(y.castShadow?2:0)-(ee.castShadow?2:0)+(y.map?1:0)-(ee.map?1:0)}function FW(ee){const y=new BW,E=TW(),z={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let pe=0;pe<9;pe++)z.probe.push(new yn);const ne=new yn,ie=new Xa,se=new Xa;function ae(pe){let ve=0,xe=0,Se=0;for(let pt=0;pt<9;pt++)z.probe[pt].set(0,0,0);let Be=0,De=0,Re=0,Oe=0,Le=0,Je=0,$e=0,_e=0,st=0,ct=0,ut=0;pe.sort(NW);for(let pt=0,gt=pe.length;pt<gt;pt++){const zt=pe[pt],cn=zt.color,Tn=zt.intensity,Zn=zt.distance,Nn=zt.shadow&&zt.shadow.map?zt.shadow.map.texture:null;if(zt.isAmbientLight)ve+=cn.r*Tn,xe+=cn.g*Tn,Se+=cn.b*Tn;else if(zt.isLightProbe){for(let di=0;di<9;di++)z.probe[di].addScaledVector(zt.sh.coefficients[di],Tn);ut++}else if(zt.isDirectionalLight){const di=y.get(zt);if(di.color.copy(zt.color).multiplyScalar(zt.intensity),zt.castShadow){const yi=zt.shadow,bn=E.get(zt);bn.shadowIntensity=yi.intensity,bn.shadowBias=yi.bias,bn.shadowNormalBias=yi.normalBias,bn.shadowRadius=yi.radius,bn.shadowMapSize=yi.mapSize,z.directionalShadow[Be]=bn,z.directionalShadowMap[Be]=Nn,z.directionalShadowMatrix[Be]=zt.shadow.matrix,Je++}z.directional[Be]=di,Be++}else if(zt.isSpotLight){const di=y.get(zt);di.position.setFromMatrixPosition(zt.matrixWorld),di.color.copy(cn).multiplyScalar(Tn),di.distance=Zn,di.coneCos=Math.cos(zt.angle),di.penumbraCos=Math.cos(zt.angle*(1-zt.penumbra)),di.decay=zt.decay,z.spot[Re]=di;const yi=zt.shadow;if(zt.map&&(z.spotLightMap[st]=zt.map,st++,yi.updateMatrices(zt),zt.castShadow&&ct++),z.spotLightMatrix[Re]=yi.matrix,zt.castShadow){const bn=E.get(zt);bn.shadowIntensity=yi.intensity,bn.shadowBias=yi.bias,bn.shadowNormalBias=yi.normalBias,bn.shadowRadius=yi.radius,bn.shadowMapSize=yi.mapSize,z.spotShadow[Re]=bn,z.spotShadowMap[Re]=Nn,_e++}Re++}else if(zt.isRectAreaLight){const di=y.get(zt);di.color.copy(cn).multiplyScalar(Tn),di.halfWidth.set(zt.width*.5,0,0),di.halfHeight.set(0,zt.height*.5,0),z.rectArea[Oe]=di,Oe++}else if(zt.isPointLight){const di=y.get(zt);if(di.color.copy(zt.color).multiplyScalar(zt.intensity),di.distance=zt.distance,di.decay=zt.decay,zt.castShadow){const yi=zt.shadow,bn=E.get(zt);bn.shadowIntensity=yi.intensity,bn.shadowBias=yi.bias,bn.shadowNormalBias=yi.normalBias,bn.shadowRadius=yi.radius,bn.shadowMapSize=yi.mapSize,bn.shadowCameraNear=yi.camera.near,bn.shadowCameraFar=yi.camera.far,z.pointShadow[De]=bn,z.pointShadowMap[De]=Nn,z.pointShadowMatrix[De]=zt.shadow.matrix,$e++}z.point[De]=di,De++}else if(zt.isHemisphereLight){const di=y.get(zt);di.skyColor.copy(zt.color).multiplyScalar(Tn),di.groundColor.copy(zt.groundColor).multiplyScalar(Tn),z.hemi[Le]=di,Le++}}Oe>0&&(ee.has("OES_texture_float_linear")===!0?(z.rectAreaLTC1=Ia.LTC_FLOAT_1,z.rectAreaLTC2=Ia.LTC_FLOAT_2):(z.rectAreaLTC1=Ia.LTC_HALF_1,z.rectAreaLTC2=Ia.LTC_HALF_2)),z.ambient[0]=ve,z.ambient[1]=xe,z.ambient[2]=Se;const ht=z.hash;(ht.directionalLength!==Be||ht.pointLength!==De||ht.spotLength!==Re||ht.rectAreaLength!==Oe||ht.hemiLength!==Le||ht.numDirectionalShadows!==Je||ht.numPointShadows!==$e||ht.numSpotShadows!==_e||ht.numSpotMaps!==st||ht.numLightProbes!==ut)&&(z.directional.length=Be,z.spot.length=Re,z.rectArea.length=Oe,z.point.length=De,z.hemi.length=Le,z.directionalShadow.length=Je,z.directionalShadowMap.length=Je,z.pointShadow.length=$e,z.pointShadowMap.length=$e,z.spotShadow.length=_e,z.spotShadowMap.length=_e,z.directionalShadowMatrix.length=Je,z.pointShadowMatrix.length=$e,z.spotLightMatrix.length=_e+st-ct,z.spotLightMap.length=st,z.numSpotLightShadowsWithMaps=ct,z.numLightProbes=ut,ht.directionalLength=Be,ht.pointLength=De,ht.spotLength=Re,ht.rectAreaLength=Oe,ht.hemiLength=Le,ht.numDirectionalShadows=Je,ht.numPointShadows=$e,ht.numSpotShadows=_e,ht.numSpotMaps=st,ht.numLightProbes=ut,z.version=DW++)}function he(pe,ve){let xe=0,Se=0,Be=0,De=0,Re=0;const Oe=ve.matrixWorldInverse;for(let Le=0,Je=pe.length;Le<Je;Le++){const $e=pe[Le];if($e.isDirectionalLight){const _e=z.directional[xe];_e.direction.setFromMatrixPosition($e.matrixWorld),ne.setFromMatrixPosition($e.target.matrixWorld),_e.direction.sub(ne),_e.direction.transformDirection(Oe),xe++}else if($e.isSpotLight){const _e=z.spot[Be];_e.position.setFromMatrixPosition($e.matrixWorld),_e.position.applyMatrix4(Oe),_e.direction.setFromMatrixPosition($e.matrixWorld),ne.setFromMatrixPosition($e.target.matrixWorld),_e.direction.sub(ne),_e.direction.transformDirection(Oe),Be++}else if($e.isRectAreaLight){const _e=z.rectArea[De];_e.position.setFromMatrixPosition($e.matrixWorld),_e.position.applyMatrix4(Oe),se.identity(),ie.copy($e.matrixWorld),ie.premultiply(Oe),se.extractRotation(ie),_e.halfWidth.set($e.width*.5,0,0),_e.halfHeight.set(0,$e.height*.5,0),_e.halfWidth.applyMatrix4(se),_e.halfHeight.applyMatrix4(se),De++}else if($e.isPointLight){const _e=z.point[Se];_e.position.setFromMatrixPosition($e.matrixWorld),_e.position.applyMatrix4(Oe),Se++}else if($e.isHemisphereLight){const _e=z.hemi[Re];_e.direction.setFromMatrixPosition($e.matrixWorld),_e.direction.transformDirection(Oe),Re++}}}return{setup:ae,setupView:he,state:z}}function nL(ee){const y=new FW(ee),E=[],z=[];function ne(ve){pe.camera=ve,E.length=0,z.length=0}function ie(ve){E.push(ve)}function se(ve){z.push(ve)}function ae(){y.setup(E)}function he(ve){y.setupView(E,ve)}const pe={lightsArray:E,shadowsArray:z,camera:null,lights:y,transmissionRenderTarget:{}};return{init:ne,state:pe,setupLights:ae,setupLightsView:he,pushLight:ie,pushShadow:se}}function LW(ee){let y=new WeakMap;function E(ne,ie=0){const se=y.get(ne);let ae;return se===void 0?(ae=new nL(ee),y.set(ne,[ae])):ie>=se.length?(ae=new nL(ee),se.push(ae)):ae=se[ie],ae}function z(){y=new WeakMap}return{get:E,dispose:z}}const IW=`void main() {
|
|
gl_Position = vec4( position, 1.0 );
|
|
}`,kW=`uniform sampler2D shadow_pass;
|
|
uniform vec2 resolution;
|
|
uniform float radius;
|
|
#include <packing>
|
|
void main() {
|
|
const float samples = float( VSM_SAMPLES );
|
|
float mean = 0.0;
|
|
float squared_mean = 0.0;
|
|
float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );
|
|
float uvStart = samples <= 1.0 ? 0.0 : - 1.0;
|
|
for ( float i = 0.0; i < samples; i ++ ) {
|
|
float uvOffset = uvStart + i * uvStride;
|
|
#ifdef HORIZONTAL_PASS
|
|
vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );
|
|
mean += distribution.x;
|
|
squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;
|
|
#else
|
|
float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );
|
|
mean += depth;
|
|
squared_mean += depth * depth;
|
|
#endif
|
|
}
|
|
mean = mean / samples;
|
|
squared_mean = squared_mean / samples;
|
|
float std_dev = sqrt( squared_mean - mean * mean );
|
|
gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );
|
|
}`;function OW(ee,y,E){let z=new hf;const ne=new Yr,ie=new Yr,se=new Ul,ae=new b({depthPacking:o5}),he=new te,pe={},ve=E.maxTextureSize,xe={[hp]:wc,[wc]:hp,[Fh]:Fh},Se=new Rm({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Yr},radius:{value:4}},vertexShader:IW,fragmentShader:kW}),Be=Se.clone();Be.defines.HORIZONTAL_PASS=1;const De=new Tu;De.setAttribute("position",new rh(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const Re=new Bc(De,Se),Oe=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Qv;let Le=this.type;this.render=function(ct,ut,ht){if(Oe.enabled===!1||Oe.autoUpdate===!1&&Oe.needsUpdate===!1||ct.length===0)return;const pt=ee.getRenderTarget(),gt=ee.getActiveCubeFace(),zt=ee.getActiveMipmapLevel(),cn=ee.state;cn.setBlending(of),cn.buffers.color.setClear(1,1,1,1),cn.buffers.depth.setTest(!0),cn.setScissorTest(!1);const Tn=Le!==gc&&this.type===gc,Zn=Le===gc&&this.type!==gc;for(let Nn=0,di=ct.length;Nn<di;Nn++){const yi=ct[Nn],bn=yi.shadow;if(bn===void 0){console.warn("THREE.WebGLShadowMap:",yi,"has no shadow.");continue}if(bn.autoUpdate===!1&&bn.needsUpdate===!1)continue;ne.copy(bn.mapSize);const Sn=bn.getFrameExtents();if(ne.multiply(Sn),ie.copy(bn.mapSize),(ne.x>ve||ne.y>ve)&&(ne.x>ve&&(ie.x=Math.floor(ve/Sn.x),ne.x=ie.x*Sn.x,bn.mapSize.x=ie.x),ne.y>ve&&(ie.y=Math.floor(ve/Sn.y),ne.y=ie.y*Sn.y,bn.mapSize.y=ie.y)),bn.map===null||Tn===!0||Zn===!0){const ti=this.type!==gc?{minFilter:Ic,magFilter:Ic}:{};bn.map!==null&&bn.map.dispose(),bn.map=new Kp(ne.x,ne.y,ti),bn.map.texture.name=yi.name+".shadowMap",bn.camera.updateProjectionMatrix()}ee.setRenderTarget(bn.map),ee.clear();const ki=bn.getViewportCount();for(let ti=0;ti<ki;ti++){const fn=bn.getViewport(ti);se.set(ie.x*fn.x,ie.y*fn.y,ie.x*fn.z,ie.y*fn.w),cn.viewport(se),bn.updateMatrices(yi,ti),z=bn.getFrustum(),_e(ut,ht,bn.camera,yi,this.type)}bn.isPointLightShadow!==!0&&this.type===gc&&Je(bn,ht),bn.needsUpdate=!1}Le=this.type,Oe.needsUpdate=!1,ee.setRenderTarget(pt,gt,zt)};function Je(ct,ut){const ht=y.update(Re);Se.defines.VSM_SAMPLES!==ct.blurSamples&&(Se.defines.VSM_SAMPLES=ct.blurSamples,Be.defines.VSM_SAMPLES=ct.blurSamples,Se.needsUpdate=!0,Be.needsUpdate=!0),ct.mapPass===null&&(ct.mapPass=new Kp(ne.x,ne.y)),Se.uniforms.shadow_pass.value=ct.map.texture,Se.uniforms.resolution.value=ct.mapSize,Se.uniforms.radius.value=ct.radius,ee.setRenderTarget(ct.mapPass),ee.clear(),ee.renderBufferDirect(ut,null,ht,Se,Re,null),Be.uniforms.shadow_pass.value=ct.mapPass.texture,Be.uniforms.resolution.value=ct.mapSize,Be.uniforms.radius.value=ct.radius,ee.setRenderTarget(ct.map),ee.clear(),ee.renderBufferDirect(ut,null,ht,Be,Re,null)}function $e(ct,ut,ht,pt){let gt=null;const zt=ht.isPointLight===!0?ct.customDistanceMaterial:ct.customDepthMaterial;if(zt!==void 0)gt=zt;else if(gt=ht.isPointLight===!0?he:ae,ee.localClippingEnabled&&ut.clipShadows===!0&&Array.isArray(ut.clippingPlanes)&&ut.clippingPlanes.length!==0||ut.displacementMap&&ut.displacementScale!==0||ut.alphaMap&&ut.alphaTest>0||ut.map&&ut.alphaTest>0||ut.alphaToCoverage===!0){const cn=gt.uuid,Tn=ut.uuid;let Zn=pe[cn];Zn===void 0&&(Zn={},pe[cn]=Zn);let Nn=Zn[Tn];Nn===void 0&&(Nn=gt.clone(),Zn[Tn]=Nn,ut.addEventListener("dispose",st)),gt=Nn}if(gt.visible=ut.visible,gt.wireframe=ut.wireframe,pt===gc?gt.side=ut.shadowSide!==null?ut.shadowSide:ut.side:gt.side=ut.shadowSide!==null?ut.shadowSide:xe[ut.side],gt.alphaMap=ut.alphaMap,gt.alphaTest=ut.alphaToCoverage===!0?.5:ut.alphaTest,gt.map=ut.map,gt.clipShadows=ut.clipShadows,gt.clippingPlanes=ut.clippingPlanes,gt.clipIntersection=ut.clipIntersection,gt.displacementMap=ut.displacementMap,gt.displacementScale=ut.displacementScale,gt.displacementBias=ut.displacementBias,gt.wireframeLinewidth=ut.wireframeLinewidth,gt.linewidth=ut.linewidth,ht.isPointLight===!0&>.isMeshDistanceMaterial===!0){const cn=ee.properties.get(gt);cn.light=ht}return gt}function _e(ct,ut,ht,pt,gt){if(ct.visible===!1)return;if(ct.layers.test(ut.layers)&&(ct.isMesh||ct.isLine||ct.isPoints)&&(ct.castShadow||ct.receiveShadow&>===gc)&&(!ct.frustumCulled||z.intersectsObject(ct))){ct.modelViewMatrix.multiplyMatrices(ht.matrixWorldInverse,ct.matrixWorld);const Tn=y.update(ct),Zn=ct.material;if(Array.isArray(Zn)){const Nn=Tn.groups;for(let di=0,yi=Nn.length;di<yi;di++){const bn=Nn[di],Sn=Zn[bn.materialIndex];if(Sn&&Sn.visible){const ki=$e(ct,Sn,pt,gt);ct.onBeforeShadow(ee,ct,ut,ht,Tn,ki,bn),ee.renderBufferDirect(ht,null,Tn,ki,ct,bn),ct.onAfterShadow(ee,ct,ut,ht,Tn,ki,bn)}}}else if(Zn.visible){const Nn=$e(ct,Zn,pt,gt);ct.onBeforeShadow(ee,ct,ut,ht,Tn,Nn,null),ee.renderBufferDirect(ht,null,Tn,Nn,ct,null),ct.onAfterShadow(ee,ct,ut,ht,Tn,Nn,null)}}const cn=ct.children;for(let Tn=0,Zn=cn.length;Tn<Zn;Tn++)_e(cn[Tn],ut,ht,pt,gt)}function st(ct){ct.target.removeEventListener("dispose",st);for(const ht in pe){const pt=pe[ht],gt=ct.target.uuid;gt in pt&&(pt[gt].dispose(),delete pt[gt])}}}const RW={[bh]:Lc,[Cd]:Gh,[gh]:mh,[Mh]:Gd,[Lc]:bh,[Gh]:Cd,[mh]:gh,[Gd]:Mh};function zW(ee,y){function E(){let Xi=!1;const xa=new Ul;let No=null;const oa=new Ul(0,0,0,0);return{setMask:function(vs){No!==vs&&!Xi&&(ee.colorMask(vs,vs,vs,vs),No=vs)},setLocked:function(vs){Xi=vs},setClear:function(vs,Yo,Jr,Ps,Ga){Ga===!0&&(vs*=Ps,Yo*=Ps,Jr*=Ps),xa.set(vs,Yo,Jr,Ps),oa.equals(xa)===!1&&(ee.clearColor(vs,Yo,Jr,Ps),oa.copy(xa))},reset:function(){Xi=!1,No=null,oa.set(-1,0,0,0)}}}function z(){let Xi=!1,xa=!1,No=null,oa=null,vs=null;return{setReversed:function(Yo){if(xa!==Yo){const Jr=y.get("EXT_clip_control");Yo?Jr.clipControlEXT(Jr.LOWER_LEFT_EXT,Jr.ZERO_TO_ONE_EXT):Jr.clipControlEXT(Jr.LOWER_LEFT_EXT,Jr.NEGATIVE_ONE_TO_ONE_EXT),xa=Yo;const Ps=vs;vs=null,this.setClear(Ps)}},getReversed:function(){return xa},setTest:function(Yo){Yo?_n(ee.DEPTH_TEST):qi(ee.DEPTH_TEST)},setMask:function(Yo){No!==Yo&&!Xi&&(ee.depthMask(Yo),No=Yo)},setFunc:function(Yo){if(xa&&(Yo=RW[Yo]),oa!==Yo){switch(Yo){case bh:ee.depthFunc(ee.NEVER);break;case Lc:ee.depthFunc(ee.ALWAYS);break;case Cd:ee.depthFunc(ee.LESS);break;case Mh:ee.depthFunc(ee.LEQUAL);break;case gh:ee.depthFunc(ee.EQUAL);break;case Gd:ee.depthFunc(ee.GEQUAL);break;case Gh:ee.depthFunc(ee.GREATER);break;case mh:ee.depthFunc(ee.NOTEQUAL);break;default:ee.depthFunc(ee.LEQUAL)}oa=Yo}},setLocked:function(Yo){Xi=Yo},setClear:function(Yo){vs!==Yo&&(xa&&(Yo=1-Yo),ee.clearDepth(Yo),vs=Yo)},reset:function(){Xi=!1,No=null,oa=null,vs=null,xa=!1}}}function ne(){let Xi=!1,xa=null,No=null,oa=null,vs=null,Yo=null,Jr=null,Ps=null,Ga=null;return{setTest:function(ya){Xi||(ya?_n(ee.STENCIL_TEST):qi(ee.STENCIL_TEST))},setMask:function(ya){xa!==ya&&!Xi&&(ee.stencilMask(ya),xa=ya)},setFunc:function(ya,$a,ef){(No!==ya||oa!==$a||vs!==ef)&&(ee.stencilFunc(ya,$a,ef),No=ya,oa=$a,vs=ef)},setOp:function(ya,$a,ef){(Yo!==ya||Jr!==$a||Ps!==ef)&&(ee.stencilOp(ya,$a,ef),Yo=ya,Jr=$a,Ps=ef)},setLocked:function(ya){Xi=ya},setClear:function(ya){Ga!==ya&&(ee.clearStencil(ya),Ga=ya)},reset:function(){Xi=!1,xa=null,No=null,oa=null,vs=null,Yo=null,Jr=null,Ps=null,Ga=null}}}const ie=new E,se=new z,ae=new ne,he=new WeakMap,pe=new WeakMap;let ve={},xe={},Se=new WeakMap,Be=[],De=null,Re=!1,Oe=null,Le=null,Je=null,$e=null,_e=null,st=null,ct=null,ut=new ia(0,0,0),ht=0,pt=!1,gt=null,zt=null,cn=null,Tn=null,Zn=null;const Nn=ee.getParameter(ee.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let di=!1,yi=0;const bn=ee.getParameter(ee.VERSION);bn.indexOf("WebGL")!==-1?(yi=parseFloat(/^WebGL (\d)/.exec(bn)[1]),di=yi>=1):bn.indexOf("OpenGL ES")!==-1&&(yi=parseFloat(/^OpenGL ES (\d)/.exec(bn)[1]),di=yi>=2);let Sn=null,ki={};const ti=ee.getParameter(ee.SCISSOR_BOX),fn=ee.getParameter(ee.VIEWPORT),Bi=new Ul().fromArray(ti),jn=new Ul().fromArray(fn);function ei(Xi,xa,No,oa){const vs=new Uint8Array(4),Yo=ee.createTexture();ee.bindTexture(Xi,Yo),ee.texParameteri(Xi,ee.TEXTURE_MIN_FILTER,ee.NEAREST),ee.texParameteri(Xi,ee.TEXTURE_MAG_FILTER,ee.NEAREST);for(let Jr=0;Jr<No;Jr++)Xi===ee.TEXTURE_3D||Xi===ee.TEXTURE_2D_ARRAY?ee.texImage3D(xa,0,ee.RGBA,1,1,oa,0,ee.RGBA,ee.UNSIGNED_BYTE,vs):ee.texImage2D(xa+Jr,0,ee.RGBA,1,1,0,ee.RGBA,ee.UNSIGNED_BYTE,vs);return Yo}const hr={};hr[ee.TEXTURE_2D]=ei(ee.TEXTURE_2D,ee.TEXTURE_2D,1),hr[ee.TEXTURE_CUBE_MAP]=ei(ee.TEXTURE_CUBE_MAP,ee.TEXTURE_CUBE_MAP_POSITIVE_X,6),hr[ee.TEXTURE_2D_ARRAY]=ei(ee.TEXTURE_2D_ARRAY,ee.TEXTURE_2D_ARRAY,1,1),hr[ee.TEXTURE_3D]=ei(ee.TEXTURE_3D,ee.TEXTURE_3D,1,1),ie.setClear(0,0,0,1),se.setClear(1),ae.setClear(0),_n(ee.DEPTH_TEST),se.setFunc(Mh),Kr(!1),kr(eA),_n(ee.CULL_FACE),un(of);function _n(Xi){ve[Xi]!==!0&&(ee.enable(Xi),ve[Xi]=!0)}function qi(Xi){ve[Xi]!==!1&&(ee.disable(Xi),ve[Xi]=!1)}function Sr(Xi,xa){return xe[Xi]!==xa?(ee.bindFramebuffer(Xi,xa),xe[Xi]=xa,Xi===ee.DRAW_FRAMEBUFFER&&(xe[ee.FRAMEBUFFER]=xa),Xi===ee.FRAMEBUFFER&&(xe[ee.DRAW_FRAMEBUFFER]=xa),!0):!1}function Pr(Xi,xa){let No=Be,oa=!1;if(Xi){No=Se.get(xa),No===void 0&&(No=[],Se.set(xa,No));const vs=Xi.textures;if(No.length!==vs.length||No[0]!==ee.COLOR_ATTACHMENT0){for(let Yo=0,Jr=vs.length;Yo<Jr;Yo++)No[Yo]=ee.COLOR_ATTACHMENT0+Yo;No.length=vs.length,oa=!0}}else No[0]!==ee.BACK&&(No[0]=ee.BACK,oa=!0);oa&&ee.drawBuffers(No)}function Go(Xi){return De!==Xi?(ee.useProgram(Xi),De=Xi,!0):!1}const _o={[Xe]:ee.FUNC_ADD,[at]:ee.FUNC_SUBTRACT,[Ct]:ee.FUNC_REVERSE_SUBTRACT};_o[St]=ee.MIN,_o[jt]=ee.MAX;const ta={[On]:ee.ZERO,[nn]:ee.ONE,[wi]:ee.SRC_COLOR,[jr]:ee.SRC_ALPHA,[va]:ee.SRC_ALPHA_SATURATE,[na]:ee.DST_COLOR,[To]:ee.DST_ALPHA,[li]:ee.ONE_MINUS_SRC_COLOR,[no]:ee.ONE_MINUS_SRC_ALPHA,[Ns]:ee.ONE_MINUS_DST_COLOR,[rs]:ee.ONE_MINUS_DST_ALPHA,[ml]:ee.CONSTANT_COLOR,[Os]:ee.ONE_MINUS_CONSTANT_COLOR,[ou]:ee.CONSTANT_ALPHA,[Uc]:ee.ONE_MINUS_CONSTANT_ALPHA};function un(Xi,xa,No,oa,vs,Yo,Jr,Ps,Ga,ya){if(Xi===of){Re===!0&&(qi(ee.BLEND),Re=!1);return}if(Re===!1&&(_n(ee.BLEND),Re=!0),Xi!==Ne){if(Xi!==Oe||ya!==pt){if((Le!==Xe||_e!==Xe)&&(ee.blendEquation(ee.FUNC_ADD),Le=Xe,_e=Xe),ya)switch(Xi){case de:ee.blendFuncSeparate(ee.ONE,ee.ONE_MINUS_SRC_ALPHA,ee.ONE,ee.ONE_MINUS_SRC_ALPHA);break;case me:ee.blendFunc(ee.ONE,ee.ONE);break;case Ee:ee.blendFuncSeparate(ee.ZERO,ee.ONE_MINUS_SRC_COLOR,ee.ZERO,ee.ONE);break;case Pe:ee.blendFuncSeparate(ee.ZERO,ee.SRC_COLOR,ee.ZERO,ee.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",Xi);break}else switch(Xi){case de:ee.blendFuncSeparate(ee.SRC_ALPHA,ee.ONE_MINUS_SRC_ALPHA,ee.ONE,ee.ONE_MINUS_SRC_ALPHA);break;case me:ee.blendFunc(ee.SRC_ALPHA,ee.ONE);break;case Ee:ee.blendFuncSeparate(ee.ZERO,ee.ONE_MINUS_SRC_COLOR,ee.ZERO,ee.ONE);break;case Pe:ee.blendFunc(ee.ZERO,ee.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",Xi);break}Je=null,$e=null,st=null,ct=null,ut.set(0,0,0),ht=0,Oe=Xi,pt=ya}return}vs=vs||xa,Yo=Yo||No,Jr=Jr||oa,(xa!==Le||vs!==_e)&&(ee.blendEquationSeparate(_o[xa],_o[vs]),Le=xa,_e=vs),(No!==Je||oa!==$e||Yo!==st||Jr!==ct)&&(ee.blendFuncSeparate(ta[No],ta[oa],ta[Yo],ta[Jr]),Je=No,$e=oa,st=Yo,ct=Jr),(Ps.equals(ut)===!1||Ga!==ht)&&(ee.blendColor(Ps.r,Ps.g,Ps.b,Ga),ut.copy(Ps),ht=Ga),Oe=Xi,pt=!1}function so(Xi,xa){Xi.side===Fh?qi(ee.CULL_FACE):_n(ee.CULL_FACE);let No=Xi.side===wc;xa&&(No=!No),Kr(No),Xi.blending===de&&Xi.transparent===!1?un(of):un(Xi.blending,Xi.blendEquation,Xi.blendSrc,Xi.blendDst,Xi.blendEquationAlpha,Xi.blendSrcAlpha,Xi.blendDstAlpha,Xi.blendColor,Xi.blendAlpha,Xi.premultipliedAlpha),se.setFunc(Xi.depthFunc),se.setTest(Xi.depthTest),se.setMask(Xi.depthWrite),ie.setMask(Xi.colorWrite);const oa=Xi.stencilWrite;ae.setTest(oa),oa&&(ae.setMask(Xi.stencilWriteMask),ae.setFunc(Xi.stencilFunc,Xi.stencilRef,Xi.stencilFuncMask),ae.setOp(Xi.stencilFail,Xi.stencilZFail,Xi.stencilZPass)),Ks(Xi.polygonOffset,Xi.polygonOffsetFactor,Xi.polygonOffsetUnits),Xi.alphaToCoverage===!0?_n(ee.SAMPLE_ALPHA_TO_COVERAGE):qi(ee.SAMPLE_ALPHA_TO_COVERAGE)}function Kr(Xi){gt!==Xi&&(Xi?ee.frontFace(ee.CW):ee.frontFace(ee.CCW),gt=Xi)}function kr(Xi){Xi!==xc?(_n(ee.CULL_FACE),Xi!==zt&&(Xi===eA?ee.cullFace(ee.BACK):Xi===rw?ee.cullFace(ee.FRONT):ee.cullFace(ee.FRONT_AND_BACK))):qi(ee.CULL_FACE),zt=Xi}function _r(Xi){Xi!==cn&&(di&&ee.lineWidth(Xi),cn=Xi)}function Ks(Xi,xa,No){Xi?(_n(ee.POLYGON_OFFSET_FILL),(Tn!==xa||Zn!==No)&&(ee.polygonOffset(xa,No),Tn=xa,Zn=No)):qi(ee.POLYGON_OFFSET_FILL)}function jo(Xi){Xi?_n(ee.SCISSOR_TEST):qi(ee.SCISSOR_TEST)}function Ro(Xi){Xi===void 0&&(Xi=ee.TEXTURE0+Nn-1),Sn!==Xi&&(ee.activeTexture(Xi),Sn=Xi)}function qa(Xi,xa,No){No===void 0&&(Sn===null?No=ee.TEXTURE0+Nn-1:No=Sn);let oa=ki[No];oa===void 0&&(oa={type:void 0,texture:void 0},ki[No]=oa),(oa.type!==Xi||oa.texture!==xa)&&(Sn!==No&&(ee.activeTexture(No),Sn=No),ee.bindTexture(Xi,xa||hr[Xi]),oa.type=Xi,oa.texture=xa)}function mn(){const Xi=ki[Sn];Xi!==void 0&&Xi.type!==void 0&&(ee.bindTexture(Xi.type,null),Xi.type=void 0,Xi.texture=void 0)}function Gt(){try{ee.compressedTexImage2D(...arguments)}catch(Xi){console.error("THREE.WebGLState:",Xi)}}function tr(){try{ee.compressedTexImage3D(...arguments)}catch(Xi){console.error("THREE.WebGLState:",Xi)}}function Fr(){try{ee.texSubImage2D(...arguments)}catch(Xi){console.error("THREE.WebGLState:",Xi)}}function vi(){try{ee.texSubImage3D(...arguments)}catch(Xi){console.error("THREE.WebGLState:",Xi)}}function Dr(){try{ee.compressedTexSubImage2D(...arguments)}catch(Xi){console.error("THREE.WebGLState:",Xi)}}function Es(){try{ee.compressedTexSubImage3D(...arguments)}catch(Xi){console.error("THREE.WebGLState:",Xi)}}function gs(){try{ee.texStorage2D(...arguments)}catch(Xi){console.error("THREE.WebGLState:",Xi)}}function Na(){try{ee.texStorage3D(...arguments)}catch(Xi){console.error("THREE.WebGLState:",Xi)}}function Qa(){try{ee.texImage2D(...arguments)}catch(Xi){console.error("THREE.WebGLState:",Xi)}}function Zo(){try{ee.texImage3D(...arguments)}catch(Xi){console.error("THREE.WebGLState:",Xi)}}function ba(Xi){Bi.equals(Xi)===!1&&(ee.scissor(Xi.x,Xi.y,Xi.z,Xi.w),Bi.copy(Xi))}function Ba(Xi){jn.equals(Xi)===!1&&(ee.viewport(Xi.x,Xi.y,Xi.z,Xi.w),jn.copy(Xi))}function ra(Xi,xa){let No=pe.get(xa);No===void 0&&(No=new WeakMap,pe.set(xa,No));let oa=No.get(Xi);oa===void 0&&(oa=ee.getUniformBlockIndex(xa,Xi.name),No.set(Xi,oa))}function ns(Xi,xa){const oa=pe.get(xa).get(Xi);he.get(xa)!==oa&&(ee.uniformBlockBinding(xa,oa,Xi.__bindingPointIndex),he.set(xa,oa))}function Fl(){ee.disable(ee.BLEND),ee.disable(ee.CULL_FACE),ee.disable(ee.DEPTH_TEST),ee.disable(ee.POLYGON_OFFSET_FILL),ee.disable(ee.SCISSOR_TEST),ee.disable(ee.STENCIL_TEST),ee.disable(ee.SAMPLE_ALPHA_TO_COVERAGE),ee.blendEquation(ee.FUNC_ADD),ee.blendFunc(ee.ONE,ee.ZERO),ee.blendFuncSeparate(ee.ONE,ee.ZERO,ee.ONE,ee.ZERO),ee.blendColor(0,0,0,0),ee.colorMask(!0,!0,!0,!0),ee.clearColor(0,0,0,0),ee.depthMask(!0),ee.depthFunc(ee.LESS),se.setReversed(!1),ee.clearDepth(1),ee.stencilMask(4294967295),ee.stencilFunc(ee.ALWAYS,0,4294967295),ee.stencilOp(ee.KEEP,ee.KEEP,ee.KEEP),ee.clearStencil(0),ee.cullFace(ee.BACK),ee.frontFace(ee.CCW),ee.polygonOffset(0,0),ee.activeTexture(ee.TEXTURE0),ee.bindFramebuffer(ee.FRAMEBUFFER,null),ee.bindFramebuffer(ee.DRAW_FRAMEBUFFER,null),ee.bindFramebuffer(ee.READ_FRAMEBUFFER,null),ee.useProgram(null),ee.lineWidth(1),ee.scissor(0,0,ee.canvas.width,ee.canvas.height),ee.viewport(0,0,ee.canvas.width,ee.canvas.height),ve={},Sn=null,ki={},xe={},Se=new WeakMap,Be=[],De=null,Re=!1,Oe=null,Le=null,Je=null,$e=null,_e=null,st=null,ct=null,ut=new ia(0,0,0),ht=0,pt=!1,gt=null,zt=null,cn=null,Tn=null,Zn=null,Bi.set(0,0,ee.canvas.width,ee.canvas.height),jn.set(0,0,ee.canvas.width,ee.canvas.height),ie.reset(),se.reset(),ae.reset()}return{buffers:{color:ie,depth:se,stencil:ae},enable:_n,disable:qi,bindFramebuffer:Sr,drawBuffers:Pr,useProgram:Go,setBlending:un,setMaterial:so,setFlipSided:Kr,setCullFace:kr,setLineWidth:_r,setPolygonOffset:Ks,setScissorTest:jo,activeTexture:Ro,bindTexture:qa,unbindTexture:mn,compressedTexImage2D:Gt,compressedTexImage3D:tr,texImage2D:Qa,texImage3D:Zo,updateUBOMapping:ra,uniformBlockBinding:ns,texStorage2D:gs,texStorage3D:Na,texSubImage2D:Fr,texSubImage3D:vi,compressedTexSubImage2D:Dr,compressedTexSubImage3D:Es,scissor:ba,viewport:Ba,reset:Fl}}function UW(ee,y,E,z,ne,ie,se){const ae=y.has("WEBGL_multisampled_render_to_texture")?y.get("WEBGL_multisampled_render_to_texture"):null,he=typeof navigator=="undefined"?!1:/OculusBrowser/g.test(navigator.userAgent),pe=new Yr,ve=new WeakMap;let xe;const Se=new WeakMap;let Be=!1;try{Be=typeof OffscreenCanvas!="undefined"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch(mn){}function De(mn,Gt){return Be?new OffscreenCanvas(mn,Gt):WS("canvas")}function Re(mn,Gt,tr){let Fr=1;const vi=qa(mn);if((vi.width>tr||vi.height>tr)&&(Fr=tr/Math.max(vi.width,vi.height)),Fr<1)if(typeof HTMLImageElement!="undefined"&&mn instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&mn instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&mn instanceof ImageBitmap||typeof VideoFrame!="undefined"&&mn instanceof VideoFrame){const Dr=Math.floor(Fr*vi.width),Es=Math.floor(Fr*vi.height);xe===void 0&&(xe=De(Dr,Es));const gs=Gt?De(Dr,Es):xe;return gs.width=Dr,gs.height=Es,gs.getContext("2d").drawImage(mn,0,0,Dr,Es),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+vi.width+"x"+vi.height+") to ("+Dr+"x"+Es+")."),gs}else return"data"in mn&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+vi.width+"x"+vi.height+")."),mn;return mn}function Oe(mn){return mn.generateMipmaps}function Le(mn){ee.generateMipmap(mn)}function Je(mn){return mn.isWebGLCubeRenderTarget?ee.TEXTURE_CUBE_MAP:mn.isWebGL3DRenderTarget?ee.TEXTURE_3D:mn.isWebGLArrayRenderTarget||mn.isCompressedArrayTexture?ee.TEXTURE_2D_ARRAY:ee.TEXTURE_2D}function $e(mn,Gt,tr,Fr,vi=!1){if(mn!==null){if(ee[mn]!==void 0)return ee[mn];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+mn+"'")}let Dr=Gt;if(Gt===ee.RED&&(tr===ee.FLOAT&&(Dr=ee.R32F),tr===ee.HALF_FLOAT&&(Dr=ee.R16F),tr===ee.UNSIGNED_BYTE&&(Dr=ee.R8)),Gt===ee.RED_INTEGER&&(tr===ee.UNSIGNED_BYTE&&(Dr=ee.R8UI),tr===ee.UNSIGNED_SHORT&&(Dr=ee.R16UI),tr===ee.UNSIGNED_INT&&(Dr=ee.R32UI),tr===ee.BYTE&&(Dr=ee.R8I),tr===ee.SHORT&&(Dr=ee.R16I),tr===ee.INT&&(Dr=ee.R32I)),Gt===ee.RG&&(tr===ee.FLOAT&&(Dr=ee.RG32F),tr===ee.HALF_FLOAT&&(Dr=ee.RG16F),tr===ee.UNSIGNED_BYTE&&(Dr=ee.RG8)),Gt===ee.RG_INTEGER&&(tr===ee.UNSIGNED_BYTE&&(Dr=ee.RG8UI),tr===ee.UNSIGNED_SHORT&&(Dr=ee.RG16UI),tr===ee.UNSIGNED_INT&&(Dr=ee.RG32UI),tr===ee.BYTE&&(Dr=ee.RG8I),tr===ee.SHORT&&(Dr=ee.RG16I),tr===ee.INT&&(Dr=ee.RG32I)),Gt===ee.RGB_INTEGER&&(tr===ee.UNSIGNED_BYTE&&(Dr=ee.RGB8UI),tr===ee.UNSIGNED_SHORT&&(Dr=ee.RGB16UI),tr===ee.UNSIGNED_INT&&(Dr=ee.RGB32UI),tr===ee.BYTE&&(Dr=ee.RGB8I),tr===ee.SHORT&&(Dr=ee.RGB16I),tr===ee.INT&&(Dr=ee.RGB32I)),Gt===ee.RGBA_INTEGER&&(tr===ee.UNSIGNED_BYTE&&(Dr=ee.RGBA8UI),tr===ee.UNSIGNED_SHORT&&(Dr=ee.RGBA16UI),tr===ee.UNSIGNED_INT&&(Dr=ee.RGBA32UI),tr===ee.BYTE&&(Dr=ee.RGBA8I),tr===ee.SHORT&&(Dr=ee.RGBA16I),tr===ee.INT&&(Dr=ee.RGBA32I)),Gt===ee.RGB&&tr===ee.UNSIGNED_INT_5_9_9_9_REV&&(Dr=ee.RGB9_E5),Gt===ee.RGBA){const Es=vi?Cx:su.getTransfer(Fr);tr===ee.FLOAT&&(Dr=ee.RGBA32F),tr===ee.HALF_FLOAT&&(Dr=ee.RGBA16F),tr===ee.UNSIGNED_BYTE&&(Dr=Es===Ua?ee.SRGB8_ALPHA8:ee.RGBA8),tr===ee.UNSIGNED_SHORT_4_4_4_4&&(Dr=ee.RGBA4),tr===ee.UNSIGNED_SHORT_5_5_5_1&&(Dr=ee.RGB5_A1)}return(Dr===ee.R16F||Dr===ee.R32F||Dr===ee.RG16F||Dr===ee.RG32F||Dr===ee.RGBA16F||Dr===ee.RGBA32F)&&y.get("EXT_color_buffer_float"),Dr}function _e(mn,Gt){let tr;return mn?Gt===null||Gt===Oc||Gt===xh?tr=ee.DEPTH24_STENCIL8:Gt===Ah?tr=ee.DEPTH32F_STENCIL8:Gt===Tm&&(tr=ee.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):Gt===null||Gt===Oc||Gt===xh?tr=ee.DEPTH_COMPONENT24:Gt===Ah?tr=ee.DEPTH_COMPONENT32F:Gt===Tm&&(tr=ee.DEPTH_COMPONENT16),tr}function st(mn,Gt){return Oe(mn)===!0||mn.isFramebufferTexture&&mn.minFilter!==Ic&&mn.minFilter!==qu?Math.log2(Math.max(Gt.width,Gt.height))+1:mn.mipmaps!==void 0&&mn.mipmaps.length>0?mn.mipmaps.length:mn.isCompressedTexture&&Array.isArray(mn.image)?Gt.mipmaps.length:1}function ct(mn){const Gt=mn.target;Gt.removeEventListener("dispose",ct),ht(Gt),Gt.isVideoTexture&&ve.delete(Gt)}function ut(mn){const Gt=mn.target;Gt.removeEventListener("dispose",ut),gt(Gt)}function ht(mn){const Gt=z.get(mn);if(Gt.__webglInit===void 0)return;const tr=mn.source,Fr=Se.get(tr);if(Fr){const vi=Fr[Gt.__cacheKey];vi.usedTimes--,vi.usedTimes===0&&pt(mn),Object.keys(Fr).length===0&&Se.delete(tr)}z.remove(mn)}function pt(mn){const Gt=z.get(mn);ee.deleteTexture(Gt.__webglTexture);const tr=mn.source,Fr=Se.get(tr);delete Fr[Gt.__cacheKey],se.memory.textures--}function gt(mn){const Gt=z.get(mn);if(mn.depthTexture&&(mn.depthTexture.dispose(),z.remove(mn.depthTexture)),mn.isWebGLCubeRenderTarget)for(let Fr=0;Fr<6;Fr++){if(Array.isArray(Gt.__webglFramebuffer[Fr]))for(let vi=0;vi<Gt.__webglFramebuffer[Fr].length;vi++)ee.deleteFramebuffer(Gt.__webglFramebuffer[Fr][vi]);else ee.deleteFramebuffer(Gt.__webglFramebuffer[Fr]);Gt.__webglDepthbuffer&&ee.deleteRenderbuffer(Gt.__webglDepthbuffer[Fr])}else{if(Array.isArray(Gt.__webglFramebuffer))for(let Fr=0;Fr<Gt.__webglFramebuffer.length;Fr++)ee.deleteFramebuffer(Gt.__webglFramebuffer[Fr]);else ee.deleteFramebuffer(Gt.__webglFramebuffer);if(Gt.__webglDepthbuffer&&ee.deleteRenderbuffer(Gt.__webglDepthbuffer),Gt.__webglMultisampledFramebuffer&&ee.deleteFramebuffer(Gt.__webglMultisampledFramebuffer),Gt.__webglColorRenderbuffer)for(let Fr=0;Fr<Gt.__webglColorRenderbuffer.length;Fr++)Gt.__webglColorRenderbuffer[Fr]&&ee.deleteRenderbuffer(Gt.__webglColorRenderbuffer[Fr]);Gt.__webglDepthRenderbuffer&&ee.deleteRenderbuffer(Gt.__webglDepthRenderbuffer)}const tr=mn.textures;for(let Fr=0,vi=tr.length;Fr<vi;Fr++){const Dr=z.get(tr[Fr]);Dr.__webglTexture&&(ee.deleteTexture(Dr.__webglTexture),se.memory.textures--),z.remove(tr[Fr])}z.remove(mn)}let zt=0;function cn(){zt=0}function Tn(){const mn=zt;return mn>=ne.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+mn+" texture units while this GPU supports only "+ne.maxTextures),zt+=1,mn}function Zn(mn){const Gt=[];return Gt.push(mn.wrapS),Gt.push(mn.wrapT),Gt.push(mn.wrapR||0),Gt.push(mn.magFilter),Gt.push(mn.minFilter),Gt.push(mn.anisotropy),Gt.push(mn.internalFormat),Gt.push(mn.format),Gt.push(mn.type),Gt.push(mn.generateMipmaps),Gt.push(mn.premultiplyAlpha),Gt.push(mn.flipY),Gt.push(mn.unpackAlignment),Gt.push(mn.colorSpace),Gt.join()}function Nn(mn,Gt){const tr=z.get(mn);if(mn.isVideoTexture&&jo(mn),mn.isRenderTargetTexture===!1&&mn.version>0&&tr.__version!==mn.version){const Fr=mn.image;if(Fr===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Fr.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{hr(tr,mn,Gt);return}}E.bindTexture(ee.TEXTURE_2D,tr.__webglTexture,ee.TEXTURE0+Gt)}function di(mn,Gt){const tr=z.get(mn);if(mn.version>0&&tr.__version!==mn.version){hr(tr,mn,Gt);return}E.bindTexture(ee.TEXTURE_2D_ARRAY,tr.__webglTexture,ee.TEXTURE0+Gt)}function yi(mn,Gt){const tr=z.get(mn);if(mn.version>0&&tr.__version!==mn.version){hr(tr,mn,Gt);return}E.bindTexture(ee.TEXTURE_3D,tr.__webglTexture,ee.TEXTURE0+Gt)}function bn(mn,Gt){const tr=z.get(mn);if(mn.version>0&&tr.__version!==mn.version){_n(tr,mn,Gt);return}E.bindTexture(ee.TEXTURE_CUBE_MAP,tr.__webglTexture,ee.TEXTURE0+Gt)}const Sn={[fp]:ee.REPEAT,[pp]:ee.CLAMP_TO_EDGE,[um]:ee.MIRRORED_REPEAT},ki={[Ic]:ee.NEAREST,[Bm]:ee.NEAREST_MIPMAP_NEAREST,[gp]:ee.NEAREST_MIPMAP_LINEAR,[qu]:ee.LINEAR,[Wh]:ee.LINEAR_MIPMAP_NEAREST,[mp]:ee.LINEAR_MIPMAP_LINEAR},ti={[uw]:ee.NEVER,[hA]:ee.ALWAYS,[bx]:ee.LESS,[cA]:ee.LEQUAL,[HS]:ee.EQUAL,[K0]:ee.GEQUAL,[cw]:ee.GREATER,[xs]:ee.NOTEQUAL};function fn(mn,Gt){if(Gt.type===Ah&&y.has("OES_texture_float_linear")===!1&&(Gt.magFilter===qu||Gt.magFilter===Wh||Gt.magFilter===gp||Gt.magFilter===mp||Gt.minFilter===qu||Gt.minFilter===Wh||Gt.minFilter===gp||Gt.minFilter===mp)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),ee.texParameteri(mn,ee.TEXTURE_WRAP_S,Sn[Gt.wrapS]),ee.texParameteri(mn,ee.TEXTURE_WRAP_T,Sn[Gt.wrapT]),(mn===ee.TEXTURE_3D||mn===ee.TEXTURE_2D_ARRAY)&&ee.texParameteri(mn,ee.TEXTURE_WRAP_R,Sn[Gt.wrapR]),ee.texParameteri(mn,ee.TEXTURE_MAG_FILTER,ki[Gt.magFilter]),ee.texParameteri(mn,ee.TEXTURE_MIN_FILTER,ki[Gt.minFilter]),Gt.compareFunction&&(ee.texParameteri(mn,ee.TEXTURE_COMPARE_MODE,ee.COMPARE_REF_TO_TEXTURE),ee.texParameteri(mn,ee.TEXTURE_COMPARE_FUNC,ti[Gt.compareFunction])),y.has("EXT_texture_filter_anisotropic")===!0){if(Gt.magFilter===Ic||Gt.minFilter!==gp&&Gt.minFilter!==mp||Gt.type===Ah&&y.has("OES_texture_float_linear")===!1)return;if(Gt.anisotropy>1||z.get(Gt).__currentAnisotropy){const tr=y.get("EXT_texture_filter_anisotropic");ee.texParameterf(mn,tr.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(Gt.anisotropy,ne.getMaxAnisotropy())),z.get(Gt).__currentAnisotropy=Gt.anisotropy}}}function Bi(mn,Gt){let tr=!1;mn.__webglInit===void 0&&(mn.__webglInit=!0,Gt.addEventListener("dispose",ct));const Fr=Gt.source;let vi=Se.get(Fr);vi===void 0&&(vi={},Se.set(Fr,vi));const Dr=Zn(Gt);if(Dr!==mn.__cacheKey){vi[Dr]===void 0&&(vi[Dr]={texture:ee.createTexture(),usedTimes:0},se.memory.textures++,tr=!0),vi[Dr].usedTimes++;const Es=vi[mn.__cacheKey];Es!==void 0&&(vi[mn.__cacheKey].usedTimes--,Es.usedTimes===0&&pt(Gt)),mn.__cacheKey=Dr,mn.__webglTexture=vi[Dr].texture}return tr}function jn(mn,Gt,tr){return Math.floor(Math.floor(mn/tr)/Gt)}function ei(mn,Gt,tr,Fr){const Dr=mn.updateRanges;if(Dr.length===0)E.texSubImage2D(ee.TEXTURE_2D,0,0,0,Gt.width,Gt.height,tr,Fr,Gt.data);else{Dr.sort((Zo,ba)=>Zo.start-ba.start);let Es=0;for(let Zo=1;Zo<Dr.length;Zo++){const ba=Dr[Es],Ba=Dr[Zo],ra=ba.start+ba.count,ns=jn(Ba.start,Gt.width,4),Fl=jn(ba.start,Gt.width,4);Ba.start<=ra+1&&ns===Fl&&jn(Ba.start+Ba.count-1,Gt.width,4)===ns?ba.count=Math.max(ba.count,Ba.start+Ba.count-ba.start):(++Es,Dr[Es]=Ba)}Dr.length=Es+1;const gs=ee.getParameter(ee.UNPACK_ROW_LENGTH),Na=ee.getParameter(ee.UNPACK_SKIP_PIXELS),Qa=ee.getParameter(ee.UNPACK_SKIP_ROWS);ee.pixelStorei(ee.UNPACK_ROW_LENGTH,Gt.width);for(let Zo=0,ba=Dr.length;Zo<ba;Zo++){const Ba=Dr[Zo],ra=Math.floor(Ba.start/4),ns=Math.ceil(Ba.count/4),Fl=ra%Gt.width,Xi=Math.floor(ra/Gt.width),xa=ns,No=1;ee.pixelStorei(ee.UNPACK_SKIP_PIXELS,Fl),ee.pixelStorei(ee.UNPACK_SKIP_ROWS,Xi),E.texSubImage2D(ee.TEXTURE_2D,0,Fl,Xi,xa,No,tr,Fr,Gt.data)}mn.clearUpdateRanges(),ee.pixelStorei(ee.UNPACK_ROW_LENGTH,gs),ee.pixelStorei(ee.UNPACK_SKIP_PIXELS,Na),ee.pixelStorei(ee.UNPACK_SKIP_ROWS,Qa)}}function hr(mn,Gt,tr){let Fr=ee.TEXTURE_2D;(Gt.isDataArrayTexture||Gt.isCompressedArrayTexture)&&(Fr=ee.TEXTURE_2D_ARRAY),Gt.isData3DTexture&&(Fr=ee.TEXTURE_3D);const vi=Bi(mn,Gt),Dr=Gt.source;E.bindTexture(Fr,mn.__webglTexture,ee.TEXTURE0+tr);const Es=z.get(Dr);if(Dr.version!==Es.__version||vi===!0){E.activeTexture(ee.TEXTURE0+tr);const gs=su.getPrimaries(su.workingColorSpace),Na=Gt.colorSpace===yp?null:su.getPrimaries(Gt.colorSpace),Qa=Gt.colorSpace===yp||gs===Na?ee.NONE:ee.BROWSER_DEFAULT_WEBGL;ee.pixelStorei(ee.UNPACK_FLIP_Y_WEBGL,Gt.flipY),ee.pixelStorei(ee.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Gt.premultiplyAlpha),ee.pixelStorei(ee.UNPACK_ALIGNMENT,Gt.unpackAlignment),ee.pixelStorei(ee.UNPACK_COLORSPACE_CONVERSION_WEBGL,Qa);let Zo=Re(Gt.image,!1,ne.maxTextureSize);Zo=Ro(Gt,Zo);const ba=ie.convert(Gt.format,Gt.colorSpace),Ba=ie.convert(Gt.type);let ra=$e(Gt.internalFormat,ba,Ba,Gt.colorSpace,Gt.isVideoTexture);fn(Fr,Gt);let ns;const Fl=Gt.mipmaps,Xi=Gt.isVideoTexture!==!0,xa=Es.__version===void 0||vi===!0,No=Dr.dataReady,oa=st(Gt,Zo);if(Gt.isDepthTexture)ra=_e(Gt.format===Ig,Gt.type),xa&&(Xi?E.texStorage2D(ee.TEXTURE_2D,1,ra,Zo.width,Zo.height):E.texImage2D(ee.TEXTURE_2D,0,ra,Zo.width,Zo.height,0,ba,Ba,null));else if(Gt.isDataTexture)if(Fl.length>0){Xi&&xa&&E.texStorage2D(ee.TEXTURE_2D,oa,ra,Fl[0].width,Fl[0].height);for(let vs=0,Yo=Fl.length;vs<Yo;vs++)ns=Fl[vs],Xi?No&&E.texSubImage2D(ee.TEXTURE_2D,vs,0,0,ns.width,ns.height,ba,Ba,ns.data):E.texImage2D(ee.TEXTURE_2D,vs,ra,ns.width,ns.height,0,ba,Ba,ns.data);Gt.generateMipmaps=!1}else Xi?(xa&&E.texStorage2D(ee.TEXTURE_2D,oa,ra,Zo.width,Zo.height),No&&ei(Gt,Zo,ba,Ba)):E.texImage2D(ee.TEXTURE_2D,0,ra,Zo.width,Zo.height,0,ba,Ba,Zo.data);else if(Gt.isCompressedTexture)if(Gt.isCompressedArrayTexture){Xi&&xa&&E.texStorage3D(ee.TEXTURE_2D_ARRAY,oa,ra,Fl[0].width,Fl[0].height,Zo.depth);for(let vs=0,Yo=Fl.length;vs<Yo;vs++)if(ns=Fl[vs],Gt.format!==Ws)if(ba!==null)if(Xi){if(No)if(Gt.layerUpdates.size>0){const Jr=A3(ns.width,ns.height,Gt.format,Gt.type);for(const Ps of Gt.layerUpdates){const Ga=ns.data.subarray(Ps*Jr/ns.data.BYTES_PER_ELEMENT,(Ps+1)*Jr/ns.data.BYTES_PER_ELEMENT);E.compressedTexSubImage3D(ee.TEXTURE_2D_ARRAY,vs,0,0,Ps,ns.width,ns.height,1,ba,Ga)}Gt.clearLayerUpdates()}else E.compressedTexSubImage3D(ee.TEXTURE_2D_ARRAY,vs,0,0,0,ns.width,ns.height,Zo.depth,ba,ns.data)}else E.compressedTexImage3D(ee.TEXTURE_2D_ARRAY,vs,ra,ns.width,ns.height,Zo.depth,0,ns.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else Xi?No&&E.texSubImage3D(ee.TEXTURE_2D_ARRAY,vs,0,0,0,ns.width,ns.height,Zo.depth,ba,Ba,ns.data):E.texImage3D(ee.TEXTURE_2D_ARRAY,vs,ra,ns.width,ns.height,Zo.depth,0,ba,Ba,ns.data)}else{Xi&&xa&&E.texStorage2D(ee.TEXTURE_2D,oa,ra,Fl[0].width,Fl[0].height);for(let vs=0,Yo=Fl.length;vs<Yo;vs++)ns=Fl[vs],Gt.format!==Ws?ba!==null?Xi?No&&E.compressedTexSubImage2D(ee.TEXTURE_2D,vs,0,0,ns.width,ns.height,ba,ns.data):E.compressedTexImage2D(ee.TEXTURE_2D,vs,ra,ns.width,ns.height,0,ns.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):Xi?No&&E.texSubImage2D(ee.TEXTURE_2D,vs,0,0,ns.width,ns.height,ba,Ba,ns.data):E.texImage2D(ee.TEXTURE_2D,vs,ra,ns.width,ns.height,0,ba,Ba,ns.data)}else if(Gt.isDataArrayTexture)if(Xi){if(xa&&E.texStorage3D(ee.TEXTURE_2D_ARRAY,oa,ra,Zo.width,Zo.height,Zo.depth),No)if(Gt.layerUpdates.size>0){const vs=A3(Zo.width,Zo.height,Gt.format,Gt.type);for(const Yo of Gt.layerUpdates){const Jr=Zo.data.subarray(Yo*vs/Zo.data.BYTES_PER_ELEMENT,(Yo+1)*vs/Zo.data.BYTES_PER_ELEMENT);E.texSubImage3D(ee.TEXTURE_2D_ARRAY,0,0,0,Yo,Zo.width,Zo.height,1,ba,Ba,Jr)}Gt.clearLayerUpdates()}else E.texSubImage3D(ee.TEXTURE_2D_ARRAY,0,0,0,0,Zo.width,Zo.height,Zo.depth,ba,Ba,Zo.data)}else E.texImage3D(ee.TEXTURE_2D_ARRAY,0,ra,Zo.width,Zo.height,Zo.depth,0,ba,Ba,Zo.data);else if(Gt.isData3DTexture)Xi?(xa&&E.texStorage3D(ee.TEXTURE_3D,oa,ra,Zo.width,Zo.height,Zo.depth),No&&E.texSubImage3D(ee.TEXTURE_3D,0,0,0,0,Zo.width,Zo.height,Zo.depth,ba,Ba,Zo.data)):E.texImage3D(ee.TEXTURE_3D,0,ra,Zo.width,Zo.height,Zo.depth,0,ba,Ba,Zo.data);else if(Gt.isFramebufferTexture){if(xa)if(Xi)E.texStorage2D(ee.TEXTURE_2D,oa,ra,Zo.width,Zo.height);else{let vs=Zo.width,Yo=Zo.height;for(let Jr=0;Jr<oa;Jr++)E.texImage2D(ee.TEXTURE_2D,Jr,ra,vs,Yo,0,ba,Ba,null),vs>>=1,Yo>>=1}}else if(Fl.length>0){if(Xi&&xa){const vs=qa(Fl[0]);E.texStorage2D(ee.TEXTURE_2D,oa,ra,vs.width,vs.height)}for(let vs=0,Yo=Fl.length;vs<Yo;vs++)ns=Fl[vs],Xi?No&&E.texSubImage2D(ee.TEXTURE_2D,vs,0,0,ba,Ba,ns):E.texImage2D(ee.TEXTURE_2D,vs,ra,ba,Ba,ns);Gt.generateMipmaps=!1}else if(Xi){if(xa){const vs=qa(Zo);E.texStorage2D(ee.TEXTURE_2D,oa,ra,vs.width,vs.height)}No&&E.texSubImage2D(ee.TEXTURE_2D,0,0,0,ba,Ba,Zo)}else E.texImage2D(ee.TEXTURE_2D,0,ra,ba,Ba,Zo);Oe(Gt)&&Le(Fr),Es.__version=Dr.version,Gt.onUpdate&&Gt.onUpdate(Gt)}mn.__version=Gt.version}function _n(mn,Gt,tr){if(Gt.image.length!==6)return;const Fr=Bi(mn,Gt),vi=Gt.source;E.bindTexture(ee.TEXTURE_CUBE_MAP,mn.__webglTexture,ee.TEXTURE0+tr);const Dr=z.get(vi);if(vi.version!==Dr.__version||Fr===!0){E.activeTexture(ee.TEXTURE0+tr);const Es=su.getPrimaries(su.workingColorSpace),gs=Gt.colorSpace===yp?null:su.getPrimaries(Gt.colorSpace),Na=Gt.colorSpace===yp||Es===gs?ee.NONE:ee.BROWSER_DEFAULT_WEBGL;ee.pixelStorei(ee.UNPACK_FLIP_Y_WEBGL,Gt.flipY),ee.pixelStorei(ee.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Gt.premultiplyAlpha),ee.pixelStorei(ee.UNPACK_ALIGNMENT,Gt.unpackAlignment),ee.pixelStorei(ee.UNPACK_COLORSPACE_CONVERSION_WEBGL,Na);const Qa=Gt.isCompressedTexture||Gt.image[0].isCompressedTexture,Zo=Gt.image[0]&&Gt.image[0].isDataTexture,ba=[];for(let Yo=0;Yo<6;Yo++)!Qa&&!Zo?ba[Yo]=Re(Gt.image[Yo],!0,ne.maxCubemapSize):ba[Yo]=Zo?Gt.image[Yo].image:Gt.image[Yo],ba[Yo]=Ro(Gt,ba[Yo]);const Ba=ba[0],ra=ie.convert(Gt.format,Gt.colorSpace),ns=ie.convert(Gt.type),Fl=$e(Gt.internalFormat,ra,ns,Gt.colorSpace),Xi=Gt.isVideoTexture!==!0,xa=Dr.__version===void 0||Fr===!0,No=vi.dataReady;let oa=st(Gt,Ba);fn(ee.TEXTURE_CUBE_MAP,Gt);let vs;if(Qa){Xi&&xa&&E.texStorage2D(ee.TEXTURE_CUBE_MAP,oa,Fl,Ba.width,Ba.height);for(let Yo=0;Yo<6;Yo++){vs=ba[Yo].mipmaps;for(let Jr=0;Jr<vs.length;Jr++){const Ps=vs[Jr];Gt.format!==Ws?ra!==null?Xi?No&&E.compressedTexSubImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,Jr,0,0,Ps.width,Ps.height,ra,Ps.data):E.compressedTexImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,Jr,Fl,Ps.width,Ps.height,0,Ps.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):Xi?No&&E.texSubImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,Jr,0,0,Ps.width,Ps.height,ra,ns,Ps.data):E.texImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,Jr,Fl,Ps.width,Ps.height,0,ra,ns,Ps.data)}}}else{if(vs=Gt.mipmaps,Xi&&xa){vs.length>0&&oa++;const Yo=qa(ba[0]);E.texStorage2D(ee.TEXTURE_CUBE_MAP,oa,Fl,Yo.width,Yo.height)}for(let Yo=0;Yo<6;Yo++)if(Zo){Xi?No&&E.texSubImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,0,0,0,ba[Yo].width,ba[Yo].height,ra,ns,ba[Yo].data):E.texImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,0,Fl,ba[Yo].width,ba[Yo].height,0,ra,ns,ba[Yo].data);for(let Jr=0;Jr<vs.length;Jr++){const Ga=vs[Jr].image[Yo].image;Xi?No&&E.texSubImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,Jr+1,0,0,Ga.width,Ga.height,ra,ns,Ga.data):E.texImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,Jr+1,Fl,Ga.width,Ga.height,0,ra,ns,Ga.data)}}else{Xi?No&&E.texSubImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,0,0,0,ra,ns,ba[Yo]):E.texImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,0,Fl,ra,ns,ba[Yo]);for(let Jr=0;Jr<vs.length;Jr++){const Ps=vs[Jr];Xi?No&&E.texSubImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,Jr+1,0,0,ra,ns,Ps.image[Yo]):E.texImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+Yo,Jr+1,Fl,ra,ns,Ps.image[Yo])}}}Oe(Gt)&&Le(ee.TEXTURE_CUBE_MAP),Dr.__version=vi.version,Gt.onUpdate&&Gt.onUpdate(Gt)}mn.__version=Gt.version}function qi(mn,Gt,tr,Fr,vi,Dr){const Es=ie.convert(tr.format,tr.colorSpace),gs=ie.convert(tr.type),Na=$e(tr.internalFormat,Es,gs,tr.colorSpace),Qa=z.get(Gt),Zo=z.get(tr);if(Zo.__renderTarget=Gt,!Qa.__hasExternalTextures){const ba=Math.max(1,Gt.width>>Dr),Ba=Math.max(1,Gt.height>>Dr);vi===ee.TEXTURE_3D||vi===ee.TEXTURE_2D_ARRAY?E.texImage3D(vi,Dr,Na,ba,Ba,Gt.depth,0,Es,gs,null):E.texImage2D(vi,Dr,Na,ba,Ba,0,Es,gs,null)}E.bindFramebuffer(ee.FRAMEBUFFER,mn),Ks(Gt)?ae.framebufferTexture2DMultisampleEXT(ee.FRAMEBUFFER,Fr,vi,Zo.__webglTexture,0,_r(Gt)):(vi===ee.TEXTURE_2D||vi>=ee.TEXTURE_CUBE_MAP_POSITIVE_X&&vi<=ee.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&ee.framebufferTexture2D(ee.FRAMEBUFFER,Fr,vi,Zo.__webglTexture,Dr),E.bindFramebuffer(ee.FRAMEBUFFER,null)}function Sr(mn,Gt,tr){if(ee.bindRenderbuffer(ee.RENDERBUFFER,mn),Gt.depthBuffer){const Fr=Gt.depthTexture,vi=Fr&&Fr.isDepthTexture?Fr.type:null,Dr=_e(Gt.stencilBuffer,vi),Es=Gt.stencilBuffer?ee.DEPTH_STENCIL_ATTACHMENT:ee.DEPTH_ATTACHMENT,gs=_r(Gt);Ks(Gt)?ae.renderbufferStorageMultisampleEXT(ee.RENDERBUFFER,gs,Dr,Gt.width,Gt.height):tr?ee.renderbufferStorageMultisample(ee.RENDERBUFFER,gs,Dr,Gt.width,Gt.height):ee.renderbufferStorage(ee.RENDERBUFFER,Dr,Gt.width,Gt.height),ee.framebufferRenderbuffer(ee.FRAMEBUFFER,Es,ee.RENDERBUFFER,mn)}else{const Fr=Gt.textures;for(let vi=0;vi<Fr.length;vi++){const Dr=Fr[vi],Es=ie.convert(Dr.format,Dr.colorSpace),gs=ie.convert(Dr.type),Na=$e(Dr.internalFormat,Es,gs,Dr.colorSpace),Qa=_r(Gt);tr&&Ks(Gt)===!1?ee.renderbufferStorageMultisample(ee.RENDERBUFFER,Qa,Na,Gt.width,Gt.height):Ks(Gt)?ae.renderbufferStorageMultisampleEXT(ee.RENDERBUFFER,Qa,Na,Gt.width,Gt.height):ee.renderbufferStorage(ee.RENDERBUFFER,Na,Gt.width,Gt.height)}}ee.bindRenderbuffer(ee.RENDERBUFFER,null)}function Pr(mn,Gt){if(Gt&&Gt.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(E.bindFramebuffer(ee.FRAMEBUFFER,mn),!(Gt.depthTexture&&Gt.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");const Fr=z.get(Gt.depthTexture);Fr.__renderTarget=Gt,(!Fr.__webglTexture||Gt.depthTexture.image.width!==Gt.width||Gt.depthTexture.image.height!==Gt.height)&&(Gt.depthTexture.image.width=Gt.width,Gt.depthTexture.image.height=Gt.height,Gt.depthTexture.needsUpdate=!0),Nn(Gt.depthTexture,0);const vi=Fr.__webglTexture,Dr=_r(Gt);if(Gt.depthTexture.format===Lg)Ks(Gt)?ae.framebufferTexture2DMultisampleEXT(ee.FRAMEBUFFER,ee.DEPTH_ATTACHMENT,ee.TEXTURE_2D,vi,0,Dr):ee.framebufferTexture2D(ee.FRAMEBUFFER,ee.DEPTH_ATTACHMENT,ee.TEXTURE_2D,vi,0);else if(Gt.depthTexture.format===Ig)Ks(Gt)?ae.framebufferTexture2DMultisampleEXT(ee.FRAMEBUFFER,ee.DEPTH_STENCIL_ATTACHMENT,ee.TEXTURE_2D,vi,0,Dr):ee.framebufferTexture2D(ee.FRAMEBUFFER,ee.DEPTH_STENCIL_ATTACHMENT,ee.TEXTURE_2D,vi,0);else throw new Error("Unknown depthTexture format")}function Go(mn){const Gt=z.get(mn),tr=mn.isWebGLCubeRenderTarget===!0;if(Gt.__boundDepthTexture!==mn.depthTexture){const Fr=mn.depthTexture;if(Gt.__depthDisposeCallback&&Gt.__depthDisposeCallback(),Fr){const vi=()=>{delete Gt.__boundDepthTexture,delete Gt.__depthDisposeCallback,Fr.removeEventListener("dispose",vi)};Fr.addEventListener("dispose",vi),Gt.__depthDisposeCallback=vi}Gt.__boundDepthTexture=Fr}if(mn.depthTexture&&!Gt.__autoAllocateDepthBuffer){if(tr)throw new Error("target.depthTexture not supported in Cube render targets");const Fr=mn.texture.mipmaps;Fr&&Fr.length>0?Pr(Gt.__webglFramebuffer[0],mn):Pr(Gt.__webglFramebuffer,mn)}else if(tr){Gt.__webglDepthbuffer=[];for(let Fr=0;Fr<6;Fr++)if(E.bindFramebuffer(ee.FRAMEBUFFER,Gt.__webglFramebuffer[Fr]),Gt.__webglDepthbuffer[Fr]===void 0)Gt.__webglDepthbuffer[Fr]=ee.createRenderbuffer(),Sr(Gt.__webglDepthbuffer[Fr],mn,!1);else{const vi=mn.stencilBuffer?ee.DEPTH_STENCIL_ATTACHMENT:ee.DEPTH_ATTACHMENT,Dr=Gt.__webglDepthbuffer[Fr];ee.bindRenderbuffer(ee.RENDERBUFFER,Dr),ee.framebufferRenderbuffer(ee.FRAMEBUFFER,vi,ee.RENDERBUFFER,Dr)}}else{const Fr=mn.texture.mipmaps;if(Fr&&Fr.length>0?E.bindFramebuffer(ee.FRAMEBUFFER,Gt.__webglFramebuffer[0]):E.bindFramebuffer(ee.FRAMEBUFFER,Gt.__webglFramebuffer),Gt.__webglDepthbuffer===void 0)Gt.__webglDepthbuffer=ee.createRenderbuffer(),Sr(Gt.__webglDepthbuffer,mn,!1);else{const vi=mn.stencilBuffer?ee.DEPTH_STENCIL_ATTACHMENT:ee.DEPTH_ATTACHMENT,Dr=Gt.__webglDepthbuffer;ee.bindRenderbuffer(ee.RENDERBUFFER,Dr),ee.framebufferRenderbuffer(ee.FRAMEBUFFER,vi,ee.RENDERBUFFER,Dr)}}E.bindFramebuffer(ee.FRAMEBUFFER,null)}function _o(mn,Gt,tr){const Fr=z.get(mn);Gt!==void 0&&qi(Fr.__webglFramebuffer,mn,mn.texture,ee.COLOR_ATTACHMENT0,ee.TEXTURE_2D,0),tr!==void 0&&Go(mn)}function ta(mn){const Gt=mn.texture,tr=z.get(mn),Fr=z.get(Gt);mn.addEventListener("dispose",ut);const vi=mn.textures,Dr=mn.isWebGLCubeRenderTarget===!0,Es=vi.length>1;if(Es||(Fr.__webglTexture===void 0&&(Fr.__webglTexture=ee.createTexture()),Fr.__version=Gt.version,se.memory.textures++),Dr){tr.__webglFramebuffer=[];for(let gs=0;gs<6;gs++)if(Gt.mipmaps&&Gt.mipmaps.length>0){tr.__webglFramebuffer[gs]=[];for(let Na=0;Na<Gt.mipmaps.length;Na++)tr.__webglFramebuffer[gs][Na]=ee.createFramebuffer()}else tr.__webglFramebuffer[gs]=ee.createFramebuffer()}else{if(Gt.mipmaps&&Gt.mipmaps.length>0){tr.__webglFramebuffer=[];for(let gs=0;gs<Gt.mipmaps.length;gs++)tr.__webglFramebuffer[gs]=ee.createFramebuffer()}else tr.__webglFramebuffer=ee.createFramebuffer();if(Es)for(let gs=0,Na=vi.length;gs<Na;gs++){const Qa=z.get(vi[gs]);Qa.__webglTexture===void 0&&(Qa.__webglTexture=ee.createTexture(),se.memory.textures++)}if(mn.samples>0&&Ks(mn)===!1){tr.__webglMultisampledFramebuffer=ee.createFramebuffer(),tr.__webglColorRenderbuffer=[],E.bindFramebuffer(ee.FRAMEBUFFER,tr.__webglMultisampledFramebuffer);for(let gs=0;gs<vi.length;gs++){const Na=vi[gs];tr.__webglColorRenderbuffer[gs]=ee.createRenderbuffer(),ee.bindRenderbuffer(ee.RENDERBUFFER,tr.__webglColorRenderbuffer[gs]);const Qa=ie.convert(Na.format,Na.colorSpace),Zo=ie.convert(Na.type),ba=$e(Na.internalFormat,Qa,Zo,Na.colorSpace,mn.isXRRenderTarget===!0),Ba=_r(mn);ee.renderbufferStorageMultisample(ee.RENDERBUFFER,Ba,ba,mn.width,mn.height),ee.framebufferRenderbuffer(ee.FRAMEBUFFER,ee.COLOR_ATTACHMENT0+gs,ee.RENDERBUFFER,tr.__webglColorRenderbuffer[gs])}ee.bindRenderbuffer(ee.RENDERBUFFER,null),mn.depthBuffer&&(tr.__webglDepthRenderbuffer=ee.createRenderbuffer(),Sr(tr.__webglDepthRenderbuffer,mn,!0)),E.bindFramebuffer(ee.FRAMEBUFFER,null)}}if(Dr){E.bindTexture(ee.TEXTURE_CUBE_MAP,Fr.__webglTexture),fn(ee.TEXTURE_CUBE_MAP,Gt);for(let gs=0;gs<6;gs++)if(Gt.mipmaps&&Gt.mipmaps.length>0)for(let Na=0;Na<Gt.mipmaps.length;Na++)qi(tr.__webglFramebuffer[gs][Na],mn,Gt,ee.COLOR_ATTACHMENT0,ee.TEXTURE_CUBE_MAP_POSITIVE_X+gs,Na);else qi(tr.__webglFramebuffer[gs],mn,Gt,ee.COLOR_ATTACHMENT0,ee.TEXTURE_CUBE_MAP_POSITIVE_X+gs,0);Oe(Gt)&&Le(ee.TEXTURE_CUBE_MAP),E.unbindTexture()}else if(Es){for(let gs=0,Na=vi.length;gs<Na;gs++){const Qa=vi[gs],Zo=z.get(Qa);E.bindTexture(ee.TEXTURE_2D,Zo.__webglTexture),fn(ee.TEXTURE_2D,Qa),qi(tr.__webglFramebuffer,mn,Qa,ee.COLOR_ATTACHMENT0+gs,ee.TEXTURE_2D,0),Oe(Qa)&&Le(ee.TEXTURE_2D)}E.unbindTexture()}else{let gs=ee.TEXTURE_2D;if((mn.isWebGL3DRenderTarget||mn.isWebGLArrayRenderTarget)&&(gs=mn.isWebGL3DRenderTarget?ee.TEXTURE_3D:ee.TEXTURE_2D_ARRAY),E.bindTexture(gs,Fr.__webglTexture),fn(gs,Gt),Gt.mipmaps&&Gt.mipmaps.length>0)for(let Na=0;Na<Gt.mipmaps.length;Na++)qi(tr.__webglFramebuffer[Na],mn,Gt,ee.COLOR_ATTACHMENT0,gs,Na);else qi(tr.__webglFramebuffer,mn,Gt,ee.COLOR_ATTACHMENT0,gs,0);Oe(Gt)&&Le(gs),E.unbindTexture()}mn.depthBuffer&&Go(mn)}function un(mn){const Gt=mn.textures;for(let tr=0,Fr=Gt.length;tr<Fr;tr++){const vi=Gt[tr];if(Oe(vi)){const Dr=Je(mn),Es=z.get(vi).__webglTexture;E.bindTexture(Dr,Es),Le(Dr),E.unbindTexture()}}}const so=[],Kr=[];function kr(mn){if(mn.samples>0){if(Ks(mn)===!1){const Gt=mn.textures,tr=mn.width,Fr=mn.height;let vi=ee.COLOR_BUFFER_BIT;const Dr=mn.stencilBuffer?ee.DEPTH_STENCIL_ATTACHMENT:ee.DEPTH_ATTACHMENT,Es=z.get(mn),gs=Gt.length>1;if(gs)for(let Qa=0;Qa<Gt.length;Qa++)E.bindFramebuffer(ee.FRAMEBUFFER,Es.__webglMultisampledFramebuffer),ee.framebufferRenderbuffer(ee.FRAMEBUFFER,ee.COLOR_ATTACHMENT0+Qa,ee.RENDERBUFFER,null),E.bindFramebuffer(ee.FRAMEBUFFER,Es.__webglFramebuffer),ee.framebufferTexture2D(ee.DRAW_FRAMEBUFFER,ee.COLOR_ATTACHMENT0+Qa,ee.TEXTURE_2D,null,0);E.bindFramebuffer(ee.READ_FRAMEBUFFER,Es.__webglMultisampledFramebuffer);const Na=mn.texture.mipmaps;Na&&Na.length>0?E.bindFramebuffer(ee.DRAW_FRAMEBUFFER,Es.__webglFramebuffer[0]):E.bindFramebuffer(ee.DRAW_FRAMEBUFFER,Es.__webglFramebuffer);for(let Qa=0;Qa<Gt.length;Qa++){if(mn.resolveDepthBuffer&&(mn.depthBuffer&&(vi|=ee.DEPTH_BUFFER_BIT),mn.stencilBuffer&&mn.resolveStencilBuffer&&(vi|=ee.STENCIL_BUFFER_BIT)),gs){ee.framebufferRenderbuffer(ee.READ_FRAMEBUFFER,ee.COLOR_ATTACHMENT0,ee.RENDERBUFFER,Es.__webglColorRenderbuffer[Qa]);const Zo=z.get(Gt[Qa]).__webglTexture;ee.framebufferTexture2D(ee.DRAW_FRAMEBUFFER,ee.COLOR_ATTACHMENT0,ee.TEXTURE_2D,Zo,0)}ee.blitFramebuffer(0,0,tr,Fr,0,0,tr,Fr,vi,ee.NEAREST),he===!0&&(so.length=0,Kr.length=0,so.push(ee.COLOR_ATTACHMENT0+Qa),mn.depthBuffer&&mn.resolveDepthBuffer===!1&&(so.push(Dr),Kr.push(Dr),ee.invalidateFramebuffer(ee.DRAW_FRAMEBUFFER,Kr)),ee.invalidateFramebuffer(ee.READ_FRAMEBUFFER,so))}if(E.bindFramebuffer(ee.READ_FRAMEBUFFER,null),E.bindFramebuffer(ee.DRAW_FRAMEBUFFER,null),gs)for(let Qa=0;Qa<Gt.length;Qa++){E.bindFramebuffer(ee.FRAMEBUFFER,Es.__webglMultisampledFramebuffer),ee.framebufferRenderbuffer(ee.FRAMEBUFFER,ee.COLOR_ATTACHMENT0+Qa,ee.RENDERBUFFER,Es.__webglColorRenderbuffer[Qa]);const Zo=z.get(Gt[Qa]).__webglTexture;E.bindFramebuffer(ee.FRAMEBUFFER,Es.__webglFramebuffer),ee.framebufferTexture2D(ee.DRAW_FRAMEBUFFER,ee.COLOR_ATTACHMENT0+Qa,ee.TEXTURE_2D,Zo,0)}E.bindFramebuffer(ee.DRAW_FRAMEBUFFER,Es.__webglMultisampledFramebuffer)}else if(mn.depthBuffer&&mn.resolveDepthBuffer===!1&&he){const Gt=mn.stencilBuffer?ee.DEPTH_STENCIL_ATTACHMENT:ee.DEPTH_ATTACHMENT;ee.invalidateFramebuffer(ee.DRAW_FRAMEBUFFER,[Gt])}}}function _r(mn){return Math.min(ne.maxSamples,mn.samples)}function Ks(mn){const Gt=z.get(mn);return mn.samples>0&&y.has("WEBGL_multisampled_render_to_texture")===!0&&Gt.__useRenderToTexture!==!1}function jo(mn){const Gt=se.render.frame;ve.get(mn)!==Gt&&(ve.set(mn,Gt),mn.update())}function Ro(mn,Gt){const tr=mn.colorSpace,Fr=mn.format,vi=mn.type;return mn.isCompressedTexture===!0||mn.isVideoTexture===!0||tr!==Fm&&tr!==yp&&(su.getTransfer(tr)===Ua?(Fr!==Ws||vi!==yh)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",tr)),Gt}function qa(mn){return typeof HTMLImageElement!="undefined"&&mn instanceof HTMLImageElement?(pe.width=mn.naturalWidth||mn.width,pe.height=mn.naturalHeight||mn.height):typeof VideoFrame!="undefined"&&mn instanceof VideoFrame?(pe.width=mn.displayWidth,pe.height=mn.displayHeight):(pe.width=mn.width,pe.height=mn.height),pe}this.allocateTextureUnit=Tn,this.resetTextureUnits=cn,this.setTexture2D=Nn,this.setTexture2DArray=di,this.setTexture3D=yi,this.setTextureCube=bn,this.rebindTextures=_o,this.setupRenderTarget=ta,this.updateRenderTargetMipmap=un,this.updateMultisampleRenderTarget=kr,this.setupDepthRenderbuffer=Go,this.setupFrameBufferTexture=qi,this.useMultisampledRTT=Ks}function HW(ee,y){function E(z,ne=yp){let ie;const se=su.getTransfer(ne);if(z===yh)return ee.UNSIGNED_BYTE;if(z===Fg)return ee.UNSIGNED_SHORT_4_4_4_4;if(z===vx)return ee.UNSIGNED_SHORT_5_5_5_1;if(z===a0)return ee.UNSIGNED_INT_5_9_9_9_REV;if(z===Zv)return ee.BYTE;if(z===iA)return ee.SHORT;if(z===Tm)return ee.UNSIGNED_SHORT;if(z===sf)return ee.INT;if(z===Oc)return ee.UNSIGNED_INT;if(z===Ah)return ee.FLOAT;if(z===Hc)return ee.HALF_FLOAT;if(z===Zb)return ee.ALPHA;if(z===Yv)return ee.RGB;if(z===Ws)return ee.RGBA;if(z===Lg)return ee.DEPTH_COMPONENT;if(z===Ig)return ee.DEPTH_STENCIL;if(z===rA)return ee.RED;if(z===Dm)return ee.RED_INTEGER;if(z===kg)return ee.RG;if(z===Qp)return ee.RG_INTEGER;if(z===oA)return ee.RGBA_INTEGER;if(z===Kv||z===Z0||z===Jv||z===Og)if(se===Ua)if(ie=y.get("WEBGL_compressed_texture_s3tc_srgb"),ie!==null){if(z===Kv)return ie.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(z===Z0)return ie.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(z===Jv)return ie.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(z===Og)return ie.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(ie=y.get("WEBGL_compressed_texture_s3tc"),ie!==null){if(z===Kv)return ie.COMPRESSED_RGB_S3TC_DXT1_EXT;if(z===Z0)return ie.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(z===Jv)return ie.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(z===Og)return ie.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(z===yx||z===Ax||z===sA||z===Y0)if(ie=y.get("WEBGL_compressed_texture_pvrtc"),ie!==null){if(z===yx)return ie.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(z===Ax)return ie.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(z===sA)return ie.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(z===Y0)return ie.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(z===xx||z===zl||z===hd)if(ie=y.get("WEBGL_compressed_texture_etc"),ie!==null){if(z===xx||z===zl)return se===Ua?ie.COMPRESSED_SRGB8_ETC2:ie.COMPRESSED_RGB8_ETC2;if(z===hd)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:ie.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(z===Bh||z===vp||z===l0||z===dg||z===Zp||z===Ed||z===u0||z===c0||z===wx||z===lc||z===qv||z===_v||z===$v||z===ey)if(ie=y.get("WEBGL_compressed_texture_astc"),ie!==null){if(z===Bh)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:ie.COMPRESSED_RGBA_ASTC_4x4_KHR;if(z===vp)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:ie.COMPRESSED_RGBA_ASTC_5x4_KHR;if(z===l0)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:ie.COMPRESSED_RGBA_ASTC_5x5_KHR;if(z===dg)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:ie.COMPRESSED_RGBA_ASTC_6x5_KHR;if(z===Zp)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:ie.COMPRESSED_RGBA_ASTC_6x6_KHR;if(z===Ed)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:ie.COMPRESSED_RGBA_ASTC_8x5_KHR;if(z===u0)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:ie.COMPRESSED_RGBA_ASTC_8x6_KHR;if(z===c0)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:ie.COMPRESSED_RGBA_ASTC_8x8_KHR;if(z===wx)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:ie.COMPRESSED_RGBA_ASTC_10x5_KHR;if(z===lc)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:ie.COMPRESSED_RGBA_ASTC_10x6_KHR;if(z===qv)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:ie.COMPRESSED_RGBA_ASTC_10x8_KHR;if(z===_v)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:ie.COMPRESSED_RGBA_ASTC_10x10_KHR;if(z===$v)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:ie.COMPRESSED_RGBA_ASTC_12x10_KHR;if(z===ey)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:ie.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(z===ty||z===sw||z===aw)if(ie=y.get("EXT_texture_compression_bptc"),ie!==null){if(z===ty)return se===Ua?ie.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:ie.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(z===sw)return ie.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(z===aw)return ie.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(z===lw||z===aA||z===lA||z===ny)if(ie=y.get("EXT_texture_compression_rgtc"),ie!==null){if(z===ty)return ie.COMPRESSED_RED_RGTC1_EXT;if(z===aA)return ie.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(z===lA)return ie.COMPRESSED_RED_GREEN_RGTC2_EXT;if(z===ny)return ie.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return z===xh?ee.UNSIGNED_INT_24_8:ee[z]!==void 0?ee[z]:null}return{convert:E}}const VW=`
|
|
void main() {
|
|
|
|
gl_Position = vec4( position, 1.0 );
|
|
|
|
}`,jW=`
|
|
uniform sampler2DArray depthColor;
|
|
uniform float depthWidth;
|
|
uniform float depthHeight;
|
|
|
|
void main() {
|
|
|
|
vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );
|
|
|
|
if ( coord.x >= 1.0 ) {
|
|
|
|
gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;
|
|
|
|
} else {
|
|
|
|
gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;
|
|
|
|
}
|
|
|
|
}`;class GW{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(y,E,z){if(this.texture===null){const ne=new nh,ie=y.properties.get(ne);ie.__webglTexture=E.texture,(E.depthNear!==z.depthNear||E.depthFar!==z.depthFar)&&(this.depthNear=E.depthNear,this.depthFar=E.depthFar),this.texture=ne}}getMesh(y){if(this.texture!==null&&this.mesh===null){const E=y.cameras[0].viewport,z=new Rm({vertexShader:VW,fragmentShader:jW,uniforms:{depthColor:{value:this.texture},depthWidth:{value:E.z},depthHeight:{value:E.w}}});this.mesh=new Bc(new $p(20,20),z)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class XW extends Hg{constructor(y,E){super();const z=this;let ne=null,ie=1,se=null,ae="local-floor",he=1,pe=null,ve=null,xe=null,Se=null,Be=null,De=null;const Re=new GW,Oe=E.getContextAttributes();let Le=null,Je=null;const $e=[],_e=[],st=new Yr;let ct=null;const ut=new Bd;ut.viewport=new Ul;const ht=new Bd;ht.viewport=new Ul;const pt=[ut,ht],gt=new sh;let zt=null,cn=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(jn){let ei=$e[jn];return ei===void 0&&(ei=new aP,$e[jn]=ei),ei.getTargetRaySpace()},this.getControllerGrip=function(jn){let ei=$e[jn];return ei===void 0&&(ei=new aP,$e[jn]=ei),ei.getGripSpace()},this.getHand=function(jn){let ei=$e[jn];return ei===void 0&&(ei=new aP,$e[jn]=ei),ei.getHandSpace()};function Tn(jn){const ei=_e.indexOf(jn.inputSource);if(ei===-1)return;const hr=$e[ei];hr!==void 0&&(hr.update(jn.inputSource,jn.frame,pe||se),hr.dispatchEvent({type:jn.type,data:jn.inputSource}))}function Zn(){ne.removeEventListener("select",Tn),ne.removeEventListener("selectstart",Tn),ne.removeEventListener("selectend",Tn),ne.removeEventListener("squeeze",Tn),ne.removeEventListener("squeezestart",Tn),ne.removeEventListener("squeezeend",Tn),ne.removeEventListener("end",Zn),ne.removeEventListener("inputsourceschange",Nn);for(let jn=0;jn<$e.length;jn++){const ei=_e[jn];ei!==null&&(_e[jn]=null,$e[jn].disconnect(ei))}zt=null,cn=null,Re.reset(),y.setRenderTarget(Le),Be=null,Se=null,xe=null,ne=null,Je=null,Bi.stop(),z.isPresenting=!1,y.setPixelRatio(ct),y.setSize(st.width,st.height,!1),z.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(jn){ie=jn,z.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(jn){ae=jn,z.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return pe||se},this.setReferenceSpace=function(jn){pe=jn},this.getBaseLayer=function(){return Se!==null?Se:Be},this.getBinding=function(){return xe},this.getFrame=function(){return De},this.getSession=function(){return ne},this.setSession=function(jn){return Vl(this,null,function*(){if(ne=jn,ne!==null){if(Le=y.getRenderTarget(),ne.addEventListener("select",Tn),ne.addEventListener("selectstart",Tn),ne.addEventListener("selectend",Tn),ne.addEventListener("squeeze",Tn),ne.addEventListener("squeezestart",Tn),ne.addEventListener("squeezeend",Tn),ne.addEventListener("end",Zn),ne.addEventListener("inputsourceschange",Nn),Oe.xrCompatible!==!0&&(yield E.makeXRCompatible()),ct=y.getPixelRatio(),y.getSize(st),typeof XRWebGLBinding!="undefined"&&"createProjectionLayer"in XRWebGLBinding.prototype){let hr=null,_n=null,qi=null;Oe.depth&&(qi=Oe.stencil?E.DEPTH24_STENCIL8:E.DEPTH_COMPONENT24,hr=Oe.stencil?Ig:Lg,_n=Oe.stencil?xh:Oc);const Sr={colorFormat:E.RGBA8,depthFormat:qi,scaleFactor:ie};xe=new XRWebGLBinding(ne,E),Se=xe.createProjectionLayer(Sr),ne.updateRenderState({layers:[Se]}),y.setPixelRatio(1),y.setSize(Se.textureWidth,Se.textureHeight,!1),Je=new Kp(Se.textureWidth,Se.textureHeight,{format:Ws,type:yh,depthTexture:new jg(Se.textureWidth,Se.textureHeight,_n,void 0,void 0,void 0,void 0,void 0,void 0,hr),stencilBuffer:Oe.stencil,colorSpace:y.outputColorSpace,samples:Oe.antialias?4:0,resolveDepthBuffer:Se.ignoreDepthValues===!1,resolveStencilBuffer:Se.ignoreDepthValues===!1})}else{const hr={antialias:Oe.antialias,alpha:!0,depth:Oe.depth,stencil:Oe.stencil,framebufferScaleFactor:ie};Be=new XRWebGLLayer(ne,E,hr),ne.updateRenderState({baseLayer:Be}),y.setPixelRatio(1),y.setSize(Be.framebufferWidth,Be.framebufferHeight,!1),Je=new Kp(Be.framebufferWidth,Be.framebufferHeight,{format:Ws,type:yh,colorSpace:y.outputColorSpace,stencilBuffer:Oe.stencil,resolveDepthBuffer:Be.ignoreDepthValues===!1,resolveStencilBuffer:Be.ignoreDepthValues===!1})}Je.isXRRenderTarget=!0,this.setFoveation(he),pe=null,se=yield ne.requestReferenceSpace(ae),Bi.setContext(ne),Bi.start(),z.isPresenting=!0,z.dispatchEvent({type:"sessionstart"})}})},this.getEnvironmentBlendMode=function(){if(ne!==null)return ne.environmentBlendMode},this.getDepthTexture=function(){return Re.getDepthTexture()};function Nn(jn){for(let ei=0;ei<jn.removed.length;ei++){const hr=jn.removed[ei],_n=_e.indexOf(hr);_n>=0&&(_e[_n]=null,$e[_n].disconnect(hr))}for(let ei=0;ei<jn.added.length;ei++){const hr=jn.added[ei];let _n=_e.indexOf(hr);if(_n===-1){for(let Sr=0;Sr<$e.length;Sr++)if(Sr>=_e.length){_e.push(hr),_n=Sr;break}else if(_e[Sr]===null){_e[Sr]=hr,_n=Sr;break}if(_n===-1)break}const qi=$e[_n];qi&&qi.connect(hr)}}const di=new yn,yi=new yn;function bn(jn,ei,hr){di.setFromMatrixPosition(ei.matrixWorld),yi.setFromMatrixPosition(hr.matrixWorld);const _n=di.distanceTo(yi),qi=ei.projectionMatrix.elements,Sr=hr.projectionMatrix.elements,Pr=qi[14]/(qi[10]-1),Go=qi[14]/(qi[10]+1),_o=(qi[9]+1)/qi[5],ta=(qi[9]-1)/qi[5],un=(qi[8]-1)/qi[0],so=(Sr[8]+1)/Sr[0],Kr=Pr*un,kr=Pr*so,_r=_n/(-un+so),Ks=_r*-un;if(ei.matrixWorld.decompose(jn.position,jn.quaternion,jn.scale),jn.translateX(Ks),jn.translateZ(_r),jn.matrixWorld.compose(jn.position,jn.quaternion,jn.scale),jn.matrixWorldInverse.copy(jn.matrixWorld).invert(),qi[10]===-1)jn.projectionMatrix.copy(ei.projectionMatrix),jn.projectionMatrixInverse.copy(ei.projectionMatrixInverse);else{const jo=Pr+_r,Ro=Go+_r,qa=Kr-Ks,mn=kr+(_n-Ks),Gt=_o*Go/Ro*jo,tr=ta*Go/Ro*jo;jn.projectionMatrix.makePerspective(qa,mn,Gt,tr,jo,Ro),jn.projectionMatrixInverse.copy(jn.projectionMatrix).invert()}}function Sn(jn,ei){ei===null?jn.matrixWorld.copy(jn.matrix):jn.matrixWorld.multiplyMatrices(ei.matrixWorld,jn.matrix),jn.matrixWorldInverse.copy(jn.matrixWorld).invert()}this.updateCamera=function(jn){if(ne===null)return;let ei=jn.near,hr=jn.far;Re.texture!==null&&(Re.depthNear>0&&(ei=Re.depthNear),Re.depthFar>0&&(hr=Re.depthFar)),gt.near=ht.near=ut.near=ei,gt.far=ht.far=ut.far=hr,(zt!==gt.near||cn!==gt.far)&&(ne.updateRenderState({depthNear:gt.near,depthFar:gt.far}),zt=gt.near,cn=gt.far),ut.layers.mask=jn.layers.mask|2,ht.layers.mask=jn.layers.mask|4,gt.layers.mask=ut.layers.mask|ht.layers.mask;const _n=jn.parent,qi=gt.cameras;Sn(gt,_n);for(let Sr=0;Sr<qi.length;Sr++)Sn(qi[Sr],_n);qi.length===2?bn(gt,ut,ht):gt.projectionMatrix.copy(ut.projectionMatrix),ki(jn,gt,_n)};function ki(jn,ei,hr){hr===null?jn.matrix.copy(ei.matrixWorld):(jn.matrix.copy(hr.matrixWorld),jn.matrix.invert(),jn.matrix.multiply(ei.matrixWorld)),jn.matrix.decompose(jn.position,jn.quaternion,jn.scale),jn.updateMatrixWorld(!0),jn.projectionMatrix.copy(ei.projectionMatrix),jn.projectionMatrixInverse.copy(ei.projectionMatrixInverse),jn.isPerspectiveCamera&&(jn.fov=q0*2*Math.atan(1/jn.projectionMatrix.elements[5]),jn.zoom=1)}this.getCamera=function(){return gt},this.getFoveation=function(){if(!(Se===null&&Be===null))return he},this.setFoveation=function(jn){he=jn,Se!==null&&(Se.fixedFoveation=jn),Be!==null&&Be.fixedFoveation!==void 0&&(Be.fixedFoveation=jn)},this.hasDepthSensing=function(){return Re.texture!==null},this.getDepthSensingMesh=function(){return Re.getMesh(gt)};let ti=null;function fn(jn,ei){if(ve=ei.getViewerPose(pe||se),De=ei,ve!==null){const hr=ve.views;Be!==null&&(y.setRenderTargetFramebuffer(Je,Be.framebuffer),y.setRenderTarget(Je));let _n=!1;hr.length!==gt.cameras.length&&(gt.cameras.length=0,_n=!0);for(let Pr=0;Pr<hr.length;Pr++){const Go=hr[Pr];let _o=null;if(Be!==null)_o=Be.getViewport(Go);else{const un=xe.getViewSubImage(Se,Go);_o=un.viewport,Pr===0&&(y.setRenderTargetTextures(Je,un.colorTexture,un.depthStencilTexture),y.setRenderTarget(Je))}let ta=pt[Pr];ta===void 0&&(ta=new Bd,ta.layers.enable(Pr),ta.viewport=new Ul,pt[Pr]=ta),ta.matrix.fromArray(Go.transform.matrix),ta.matrix.decompose(ta.position,ta.quaternion,ta.scale),ta.projectionMatrix.fromArray(Go.projectionMatrix),ta.projectionMatrixInverse.copy(ta.projectionMatrix).invert(),ta.viewport.set(_o.x,_o.y,_o.width,_o.height),Pr===0&&(gt.matrix.copy(ta.matrix),gt.matrix.decompose(gt.position,gt.quaternion,gt.scale)),_n===!0&>.cameras.push(ta)}const qi=ne.enabledFeatures;if(qi&&qi.includes("depth-sensing")&&ne.depthUsage=="gpu-optimized"&&xe){const Pr=xe.getDepthInformation(hr[0]);Pr&&Pr.isValid&&Pr.texture&&Re.init(y,Pr,ne.renderState)}}for(let hr=0;hr<$e.length;hr++){const _n=_e[hr],qi=$e[hr];_n!==null&&qi!==void 0&&qi.update(_n,ei,pe||se)}ti&&ti(jn,ei),ei.detectedPlanes&&z.dispatchEvent({type:"planesdetected",data:ei}),De=null}const Bi=new BF;Bi.setAnimationLoop(fn),this.setAnimationLoop=function(jn){ti=jn},this.dispose=function(){}}}const kP=new Pp,WW=new Xa;function QW(ee,y){function E(Oe,Le){Oe.matrixAutoUpdate===!0&&Oe.updateMatrix(),Le.value.copy(Oe.matrix)}function z(Oe,Le){Le.color.getRGB(Oe.fogColor.value,p2(ee)),Le.isFog?(Oe.fogNear.value=Le.near,Oe.fogFar.value=Le.far):Le.isFogExp2&&(Oe.fogDensity.value=Le.density)}function ne(Oe,Le,Je,$e,_e){Le.isMeshBasicMaterial||Le.isMeshLambertMaterial?ie(Oe,Le):Le.isMeshToonMaterial?(ie(Oe,Le),xe(Oe,Le)):Le.isMeshPhongMaterial?(ie(Oe,Le),ve(Oe,Le)):Le.isMeshStandardMaterial?(ie(Oe,Le),Se(Oe,Le),Le.isMeshPhysicalMaterial&&Be(Oe,Le,_e)):Le.isMeshMatcapMaterial?(ie(Oe,Le),De(Oe,Le)):Le.isMeshDepthMaterial?ie(Oe,Le):Le.isMeshDistanceMaterial?(ie(Oe,Le),Re(Oe,Le)):Le.isMeshNormalMaterial?ie(Oe,Le):Le.isLineBasicMaterial?(se(Oe,Le),Le.isLineDashedMaterial&&ae(Oe,Le)):Le.isPointsMaterial?he(Oe,Le,Je,$e):Le.isSpriteMaterial?pe(Oe,Le):Le.isShadowMaterial?(Oe.color.value.copy(Le.color),Oe.opacity.value=Le.opacity):Le.isShaderMaterial&&(Le.uniformsNeedUpdate=!1)}function ie(Oe,Le){Oe.opacity.value=Le.opacity,Le.color&&Oe.diffuse.value.copy(Le.color),Le.emissive&&Oe.emissive.value.copy(Le.emissive).multiplyScalar(Le.emissiveIntensity),Le.map&&(Oe.map.value=Le.map,E(Le.map,Oe.mapTransform)),Le.alphaMap&&(Oe.alphaMap.value=Le.alphaMap,E(Le.alphaMap,Oe.alphaMapTransform)),Le.bumpMap&&(Oe.bumpMap.value=Le.bumpMap,E(Le.bumpMap,Oe.bumpMapTransform),Oe.bumpScale.value=Le.bumpScale,Le.side===wc&&(Oe.bumpScale.value*=-1)),Le.normalMap&&(Oe.normalMap.value=Le.normalMap,E(Le.normalMap,Oe.normalMapTransform),Oe.normalScale.value.copy(Le.normalScale),Le.side===wc&&Oe.normalScale.value.negate()),Le.displacementMap&&(Oe.displacementMap.value=Le.displacementMap,E(Le.displacementMap,Oe.displacementMapTransform),Oe.displacementScale.value=Le.displacementScale,Oe.displacementBias.value=Le.displacementBias),Le.emissiveMap&&(Oe.emissiveMap.value=Le.emissiveMap,E(Le.emissiveMap,Oe.emissiveMapTransform)),Le.specularMap&&(Oe.specularMap.value=Le.specularMap,E(Le.specularMap,Oe.specularMapTransform)),Le.alphaTest>0&&(Oe.alphaTest.value=Le.alphaTest);const Je=y.get(Le),$e=Je.envMap,_e=Je.envMapRotation;$e&&(Oe.envMap.value=$e,kP.copy(_e),kP.x*=-1,kP.y*=-1,kP.z*=-1,$e.isCubeTexture&&$e.isRenderTargetTexture===!1&&(kP.y*=-1,kP.z*=-1),Oe.envMapRotation.value.setFromMatrix4(WW.makeRotationFromEuler(kP)),Oe.flipEnvMap.value=$e.isCubeTexture&&$e.isRenderTargetTexture===!1?-1:1,Oe.reflectivity.value=Le.reflectivity,Oe.ior.value=Le.ior,Oe.refractionRatio.value=Le.refractionRatio),Le.lightMap&&(Oe.lightMap.value=Le.lightMap,Oe.lightMapIntensity.value=Le.lightMapIntensity,E(Le.lightMap,Oe.lightMapTransform)),Le.aoMap&&(Oe.aoMap.value=Le.aoMap,Oe.aoMapIntensity.value=Le.aoMapIntensity,E(Le.aoMap,Oe.aoMapTransform))}function se(Oe,Le){Oe.diffuse.value.copy(Le.color),Oe.opacity.value=Le.opacity,Le.map&&(Oe.map.value=Le.map,E(Le.map,Oe.mapTransform))}function ae(Oe,Le){Oe.dashSize.value=Le.dashSize,Oe.totalSize.value=Le.dashSize+Le.gapSize,Oe.scale.value=Le.scale}function he(Oe,Le,Je,$e){Oe.diffuse.value.copy(Le.color),Oe.opacity.value=Le.opacity,Oe.size.value=Le.size*Je,Oe.scale.value=$e*.5,Le.map&&(Oe.map.value=Le.map,E(Le.map,Oe.uvTransform)),Le.alphaMap&&(Oe.alphaMap.value=Le.alphaMap,E(Le.alphaMap,Oe.alphaMapTransform)),Le.alphaTest>0&&(Oe.alphaTest.value=Le.alphaTest)}function pe(Oe,Le){Oe.diffuse.value.copy(Le.color),Oe.opacity.value=Le.opacity,Oe.rotation.value=Le.rotation,Le.map&&(Oe.map.value=Le.map,E(Le.map,Oe.mapTransform)),Le.alphaMap&&(Oe.alphaMap.value=Le.alphaMap,E(Le.alphaMap,Oe.alphaMapTransform)),Le.alphaTest>0&&(Oe.alphaTest.value=Le.alphaTest)}function ve(Oe,Le){Oe.specular.value.copy(Le.specular),Oe.shininess.value=Math.max(Le.shininess,1e-4)}function xe(Oe,Le){Le.gradientMap&&(Oe.gradientMap.value=Le.gradientMap)}function Se(Oe,Le){Oe.metalness.value=Le.metalness,Le.metalnessMap&&(Oe.metalnessMap.value=Le.metalnessMap,E(Le.metalnessMap,Oe.metalnessMapTransform)),Oe.roughness.value=Le.roughness,Le.roughnessMap&&(Oe.roughnessMap.value=Le.roughnessMap,E(Le.roughnessMap,Oe.roughnessMapTransform)),Le.envMap&&(Oe.envMapIntensity.value=Le.envMapIntensity)}function Be(Oe,Le,Je){Oe.ior.value=Le.ior,Le.sheen>0&&(Oe.sheenColor.value.copy(Le.sheenColor).multiplyScalar(Le.sheen),Oe.sheenRoughness.value=Le.sheenRoughness,Le.sheenColorMap&&(Oe.sheenColorMap.value=Le.sheenColorMap,E(Le.sheenColorMap,Oe.sheenColorMapTransform)),Le.sheenRoughnessMap&&(Oe.sheenRoughnessMap.value=Le.sheenRoughnessMap,E(Le.sheenRoughnessMap,Oe.sheenRoughnessMapTransform))),Le.clearcoat>0&&(Oe.clearcoat.value=Le.clearcoat,Oe.clearcoatRoughness.value=Le.clearcoatRoughness,Le.clearcoatMap&&(Oe.clearcoatMap.value=Le.clearcoatMap,E(Le.clearcoatMap,Oe.clearcoatMapTransform)),Le.clearcoatRoughnessMap&&(Oe.clearcoatRoughnessMap.value=Le.clearcoatRoughnessMap,E(Le.clearcoatRoughnessMap,Oe.clearcoatRoughnessMapTransform)),Le.clearcoatNormalMap&&(Oe.clearcoatNormalMap.value=Le.clearcoatNormalMap,E(Le.clearcoatNormalMap,Oe.clearcoatNormalMapTransform),Oe.clearcoatNormalScale.value.copy(Le.clearcoatNormalScale),Le.side===wc&&Oe.clearcoatNormalScale.value.negate())),Le.dispersion>0&&(Oe.dispersion.value=Le.dispersion),Le.iridescence>0&&(Oe.iridescence.value=Le.iridescence,Oe.iridescenceIOR.value=Le.iridescenceIOR,Oe.iridescenceThicknessMinimum.value=Le.iridescenceThicknessRange[0],Oe.iridescenceThicknessMaximum.value=Le.iridescenceThicknessRange[1],Le.iridescenceMap&&(Oe.iridescenceMap.value=Le.iridescenceMap,E(Le.iridescenceMap,Oe.iridescenceMapTransform)),Le.iridescenceThicknessMap&&(Oe.iridescenceThicknessMap.value=Le.iridescenceThicknessMap,E(Le.iridescenceThicknessMap,Oe.iridescenceThicknessMapTransform))),Le.transmission>0&&(Oe.transmission.value=Le.transmission,Oe.transmissionSamplerMap.value=Je.texture,Oe.transmissionSamplerSize.value.set(Je.width,Je.height),Le.transmissionMap&&(Oe.transmissionMap.value=Le.transmissionMap,E(Le.transmissionMap,Oe.transmissionMapTransform)),Oe.thickness.value=Le.thickness,Le.thicknessMap&&(Oe.thicknessMap.value=Le.thicknessMap,E(Le.thicknessMap,Oe.thicknessMapTransform)),Oe.attenuationDistance.value=Le.attenuationDistance,Oe.attenuationColor.value.copy(Le.attenuationColor)),Le.anisotropy>0&&(Oe.anisotropyVector.value.set(Le.anisotropy*Math.cos(Le.anisotropyRotation),Le.anisotropy*Math.sin(Le.anisotropyRotation)),Le.anisotropyMap&&(Oe.anisotropyMap.value=Le.anisotropyMap,E(Le.anisotropyMap,Oe.anisotropyMapTransform))),Oe.specularIntensity.value=Le.specularIntensity,Oe.specularColor.value.copy(Le.specularColor),Le.specularColorMap&&(Oe.specularColorMap.value=Le.specularColorMap,E(Le.specularColorMap,Oe.specularColorMapTransform)),Le.specularIntensityMap&&(Oe.specularIntensityMap.value=Le.specularIntensityMap,E(Le.specularIntensityMap,Oe.specularIntensityMapTransform))}function De(Oe,Le){Le.matcap&&(Oe.matcap.value=Le.matcap)}function Re(Oe,Le){const Je=y.get(Le).light;Oe.referencePosition.value.setFromMatrixPosition(Je.matrixWorld),Oe.nearDistance.value=Je.shadow.camera.near,Oe.farDistance.value=Je.shadow.camera.far}return{refreshFogUniforms:z,refreshMaterialUniforms:ne}}function ZW(ee,y,E,z){let ne={},ie={},se=[];const ae=ee.getParameter(ee.MAX_UNIFORM_BUFFER_BINDINGS);function he(Je,$e){const _e=$e.program;z.uniformBlockBinding(Je,_e)}function pe(Je,$e){let _e=ne[Je.id];_e===void 0&&(De(Je),_e=ve(Je),ne[Je.id]=_e,Je.addEventListener("dispose",Oe));const st=$e.program;z.updateUBOMapping(Je,st);const ct=y.render.frame;ie[Je.id]!==ct&&(Se(Je),ie[Je.id]=ct)}function ve(Je){const $e=xe();Je.__bindingPointIndex=$e;const _e=ee.createBuffer(),st=Je.__size,ct=Je.usage;return ee.bindBuffer(ee.UNIFORM_BUFFER,_e),ee.bufferData(ee.UNIFORM_BUFFER,st,ct),ee.bindBuffer(ee.UNIFORM_BUFFER,null),ee.bindBufferBase(ee.UNIFORM_BUFFER,$e,_e),_e}function xe(){for(let Je=0;Je<ae;Je++)if(se.indexOf(Je)===-1)return se.push(Je),Je;return console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}function Se(Je){const $e=ne[Je.id],_e=Je.uniforms,st=Je.__cache;ee.bindBuffer(ee.UNIFORM_BUFFER,$e);for(let ct=0,ut=_e.length;ct<ut;ct++){const ht=Array.isArray(_e[ct])?_e[ct]:[_e[ct]];for(let pt=0,gt=ht.length;pt<gt;pt++){const zt=ht[pt];if(Be(zt,ct,pt,st)===!0){const cn=zt.__offset,Tn=Array.isArray(zt.value)?zt.value:[zt.value];let Zn=0;for(let Nn=0;Nn<Tn.length;Nn++){const di=Tn[Nn],yi=Re(di);typeof di=="number"||typeof di=="boolean"?(zt.__data[0]=di,ee.bufferSubData(ee.UNIFORM_BUFFER,cn+Zn,zt.__data)):di.isMatrix3?(zt.__data[0]=di.elements[0],zt.__data[1]=di.elements[1],zt.__data[2]=di.elements[2],zt.__data[3]=0,zt.__data[4]=di.elements[3],zt.__data[5]=di.elements[4],zt.__data[6]=di.elements[5],zt.__data[7]=0,zt.__data[8]=di.elements[6],zt.__data[9]=di.elements[7],zt.__data[10]=di.elements[8],zt.__data[11]=0):(di.toArray(zt.__data,Zn),Zn+=yi.storage/Float32Array.BYTES_PER_ELEMENT)}ee.bufferSubData(ee.UNIFORM_BUFFER,cn,zt.__data)}}}ee.bindBuffer(ee.UNIFORM_BUFFER,null)}function Be(Je,$e,_e,st){const ct=Je.value,ut=$e+"_"+_e;if(st[ut]===void 0)return typeof ct=="number"||typeof ct=="boolean"?st[ut]=ct:st[ut]=ct.clone(),!0;{const ht=st[ut];if(typeof ct=="number"||typeof ct=="boolean"){if(ht!==ct)return st[ut]=ct,!0}else if(ht.equals(ct)===!1)return ht.copy(ct),!0}return!1}function De(Je){const $e=Je.uniforms;let _e=0;const st=16;for(let ut=0,ht=$e.length;ut<ht;ut++){const pt=Array.isArray($e[ut])?$e[ut]:[$e[ut]];for(let gt=0,zt=pt.length;gt<zt;gt++){const cn=pt[gt],Tn=Array.isArray(cn.value)?cn.value:[cn.value];for(let Zn=0,Nn=Tn.length;Zn<Nn;Zn++){const di=Tn[Zn],yi=Re(di),bn=_e%st,Sn=bn%yi.boundary,ki=bn+Sn;_e+=Sn,ki!==0&&st-ki<yi.storage&&(_e+=st-ki),cn.__data=new Float32Array(yi.storage/Float32Array.BYTES_PER_ELEMENT),cn.__offset=_e,_e+=yi.storage}}}const ct=_e%st;return ct>0&&(_e+=st-ct),Je.__size=_e,Je.__cache={},this}function Re(Je){const $e={boundary:0,storage:0};return typeof Je=="number"||typeof Je=="boolean"?($e.boundary=4,$e.storage=4):Je.isVector2?($e.boundary=8,$e.storage=8):Je.isVector3||Je.isColor?($e.boundary=16,$e.storage=12):Je.isVector4?($e.boundary=16,$e.storage=16):Je.isMatrix3?($e.boundary=48,$e.storage=48):Je.isMatrix4?($e.boundary=64,$e.storage=64):Je.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",Je),$e}function Oe(Je){const $e=Je.target;$e.removeEventListener("dispose",Oe);const _e=se.indexOf($e.__bindingPointIndex);se.splice(_e,1),ee.deleteBuffer(ne[$e.id]),delete ne[$e.id],delete ie[$e.id]}function Le(){for(const Je in ne)ee.deleteBuffer(ne[Je]);se=[],ne={},ie={}}return{bind:he,update:pe,dispose:Le}}class YW{constructor(y={}){const{canvas:E=a2(),context:z=null,depth:ne=!0,stencil:ie=!1,alpha:se=!1,antialias:ae=!1,premultipliedAlpha:he=!0,preserveDrawingBuffer:pe=!1,powerPreference:ve="default",failIfMajorPerformanceCaveat:xe=!1,reverseDepthBuffer:Se=!1}=y;this.isWebGLRenderer=!0;let Be;if(z!==null){if(typeof WebGLRenderingContext!="undefined"&&z instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");Be=z.getContextAttributes().alpha}else Be=se;const De=new Uint32Array(4),Re=new Int32Array(4);let Oe=null,Le=null;const Je=[],$e=[];this.domElement=E,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=bc,this.toneMappingExposure=1,this.transmissionResolutionScale=1;const _e=this;let st=!1;this._outputColorSpace=Wf;let ct=0,ut=0,ht=null,pt=-1,gt=null;const zt=new Ul,cn=new Ul;let Tn=null;const Zn=new ia(0);let Nn=0,di=E.width,yi=E.height,bn=1,Sn=null,ki=null;const ti=new Ul(0,0,di,yi),fn=new Ul(0,0,di,yi);let Bi=!1;const jn=new hf;let ei=!1,hr=!1;const _n=new Xa,qi=new Xa,Sr=new yn,Pr=new Ul,Go={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let _o=!1;function ta(){return ht===null?bn:1}let un=z;function so(Pn,mr){return E.getContext(Pn,mr)}try{const Pn={alpha:!0,depth:ne,stencil:ie,antialias:ae,premultipliedAlpha:he,preserveDrawingBuffer:pe,powerPreference:ve,failIfMajorPerformanceCaveat:xe};if("setAttribute"in E&&E.setAttribute("data-engine",`three.js r${cg}`),E.addEventListener("webglcontextlost",oa,!1),E.addEventListener("webglcontextrestored",vs,!1),E.addEventListener("webglcontextcreationerror",Yo,!1),un===null){const mr="webgl2";if(un=so(mr,Pn),un===null)throw so(mr)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(Pn){throw console.error("THREE.WebGLRenderer: "+Pn.message),Pn}let Kr,kr,_r,Ks,jo,Ro,qa,mn,Gt,tr,Fr,vi,Dr,Es,gs,Na,Qa,Zo,ba,Ba,ra,ns,Fl,Xi;function xa(){Kr=new rX(un),Kr.init(),ns=new HW(un,Kr),kr=new qG(un,Kr,y,ns),_r=new zW(un,Kr),kr.reverseDepthBuffer&&Se&&_r.buffers.depth.setReversed(!0),Ks=new aX(un),jo=new EW,Ro=new UW(un,Kr,_r,jo,kr,ns,Ks),qa=new $G(_e),mn=new iX(_e),Gt=new ZV(un),Fl=new KG(un,Gt),tr=new oX(un,Gt,Ks,Fl),Fr=new uX(un,tr,Gt,Ks),ba=new lX(un,kr,Ro),Na=new _G(jo),vi=new CW(_e,qa,mn,Kr,kr,Fl,Na),Dr=new QW(_e,jo),Es=new MW,gs=new LW(Kr),Zo=new YG(_e,qa,mn,_r,Fr,Be,he),Qa=new OW(_e,Fr,kr),Xi=new ZW(un,Ks,kr,_r),Ba=new JG(un,Kr,Ks),ra=new sX(un,Kr,Ks),Ks.programs=vi.programs,_e.capabilities=kr,_e.extensions=Kr,_e.properties=jo,_e.renderLists=Es,_e.shadowMap=Qa,_e.state=_r,_e.info=Ks}xa();const No=new XW(_e,un);this.xr=No,this.getContext=function(){return un},this.getContextAttributes=function(){return un.getContextAttributes()},this.forceContextLoss=function(){const Pn=Kr.get("WEBGL_lose_context");Pn&&Pn.loseContext()},this.forceContextRestore=function(){const Pn=Kr.get("WEBGL_lose_context");Pn&&Pn.restoreContext()},this.getPixelRatio=function(){return bn},this.setPixelRatio=function(Pn){Pn!==void 0&&(bn=Pn,this.setSize(di,yi,!1))},this.getSize=function(Pn){return Pn.set(di,yi)},this.setSize=function(Pn,mr,io=!0){if(No.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}di=Pn,yi=mr,E.width=Math.floor(Pn*bn),E.height=Math.floor(mr*bn),io===!0&&(E.style.width=Pn+"px",E.style.height=mr+"px"),this.setViewport(0,0,Pn,mr)},this.getDrawingBufferSize=function(Pn){return Pn.set(di*bn,yi*bn).floor()},this.setDrawingBufferSize=function(Pn,mr,io){di=Pn,yi=mr,bn=io,E.width=Math.floor(Pn*io),E.height=Math.floor(mr*io),this.setViewport(0,0,Pn,mr)},this.getCurrentViewport=function(Pn){return Pn.copy(zt)},this.getViewport=function(Pn){return Pn.copy(ti)},this.setViewport=function(Pn,mr,io,ro){Pn.isVector4?ti.set(Pn.x,Pn.y,Pn.z,Pn.w):ti.set(Pn,mr,io,ro),_r.viewport(zt.copy(ti).multiplyScalar(bn).round())},this.getScissor=function(Pn){return Pn.copy(fn)},this.setScissor=function(Pn,mr,io,ro){Pn.isVector4?fn.set(Pn.x,Pn.y,Pn.z,Pn.w):fn.set(Pn,mr,io,ro),_r.scissor(cn.copy(fn).multiplyScalar(bn).round())},this.getScissorTest=function(){return Bi},this.setScissorTest=function(Pn){_r.setScissorTest(Bi=Pn)},this.setOpaqueSort=function(Pn){Sn=Pn},this.setTransparentSort=function(Pn){ki=Pn},this.getClearColor=function(Pn){return Pn.copy(Zo.getClearColor())},this.setClearColor=function(){Zo.setClearColor(...arguments)},this.getClearAlpha=function(){return Zo.getClearAlpha()},this.setClearAlpha=function(){Zo.setClearAlpha(...arguments)},this.clear=function(Pn=!0,mr=!0,io=!0){let ro=0;if(Pn){let ur=!1;if(ht!==null){const Rs=ht.texture.format;ur=Rs===oA||Rs===Qp||Rs===Dm}if(ur){const Rs=ht.texture.type,ho=Rs===yh||Rs===Oc||Rs===Tm||Rs===xh||Rs===Fg||Rs===vx,ka=Zo.getClearColor(),_a=Zo.getClearAlpha(),du=ka.r,fu=ka.g,Hl=ka.b;ho?(De[0]=du,De[1]=fu,De[2]=Hl,De[3]=_a,un.clearBufferuiv(un.COLOR,0,De)):(Re[0]=du,Re[1]=fu,Re[2]=Hl,Re[3]=_a,un.clearBufferiv(un.COLOR,0,Re))}else ro|=un.COLOR_BUFFER_BIT}mr&&(ro|=un.DEPTH_BUFFER_BIT),io&&(ro|=un.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),un.clear(ro)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){E.removeEventListener("webglcontextlost",oa,!1),E.removeEventListener("webglcontextrestored",vs,!1),E.removeEventListener("webglcontextcreationerror",Yo,!1),Zo.dispose(),Es.dispose(),gs.dispose(),jo.dispose(),qa.dispose(),mn.dispose(),Fr.dispose(),Fl.dispose(),Xi.dispose(),vi.dispose(),No.dispose(),No.removeEventListener("sessionstart",Cm),No.removeEventListener("sessionend",Lv),i0.stop()};function oa(Pn){Pn.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),st=!0}function vs(){console.log("THREE.WebGLRenderer: Context Restored."),st=!1;const Pn=Ks.autoReset,mr=Qa.enabled,io=Qa.autoUpdate,ro=Qa.needsUpdate,ur=Qa.type;xa(),Ks.autoReset=Pn,Qa.enabled=mr,Qa.autoUpdate=io,Qa.needsUpdate=ro,Qa.type=ur}function Yo(Pn){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",Pn.statusMessage)}function Jr(Pn){const mr=Pn.target;mr.removeEventListener("dispose",Jr),Ps(mr)}function Ps(Pn){Ga(Pn),jo.remove(Pn)}function Ga(Pn){const mr=jo.get(Pn).programs;mr!==void 0&&(mr.forEach(function(io){vi.releaseProgram(io)}),Pn.isShaderMaterial&&vi.releaseShaderCache(Pn))}this.renderBufferDirect=function(Pn,mr,io,ro,ur,Rs){mr===null&&(mr=Go);const ho=ur.isMesh&&ur.matrixWorld.determinant()<0,ka=fa(Pn,mr,io,ro,ur);_r.setMaterial(ro,ho);let _a=io.index,du=1;if(ro.wireframe===!0){if(_a=tr.getWireframeAttribute(io),_a===void 0)return;du=2}const fu=io.drawRange,Hl=io.attributes.position;let Pu=fu.start*du,Cc=(fu.start+fu.count)*du;Rs!==null&&(Pu=Math.max(Pu,Rs.start*du),Cc=Math.min(Cc,(Rs.start+Rs.count)*du)),_a!==null?(Pu=Math.max(Pu,0),Cc=Math.min(Cc,_a.count)):Hl!=null&&(Pu=Math.max(Pu,0),Cc=Math.min(Cc,Hl.count));const Sd=Cc-Pu;if(Sd<0||Sd===1/0)return;Fl.setup(ur,ro,ka,io,_a);let Pd,Vi=Ba;if(_a!==null&&(Pd=Gt.get(_a),Vi=ra,Vi.setIndex(Pd)),ur.isMesh)ro.wireframe===!0?(_r.setLineWidth(ro.wireframeLinewidth*ta()),Vi.setMode(un.LINES)):Vi.setMode(un.TRIANGLES);else if(ur.isLine){let zo=ro.linewidth;zo===void 0&&(zo=1),_r.setLineWidth(zo*ta()),ur.isLineSegments?Vi.setMode(un.LINES):ur.isLineLoop?Vi.setMode(un.LINE_LOOP):Vi.setMode(un.LINE_STRIP)}else ur.isPoints?Vi.setMode(un.POINTS):ur.isSprite&&Vi.setMode(un.TRIANGLES);if(ur.isBatchedMesh)if(ur._multiDrawInstances!==null)vc("THREE.WebGLRenderer: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection."),Vi.renderMultiDrawInstances(ur._multiDrawStarts,ur._multiDrawCounts,ur._multiDrawCount,ur._multiDrawInstances);else if(Kr.get("WEBGL_multi_draw"))Vi.renderMultiDraw(ur._multiDrawStarts,ur._multiDrawCounts,ur._multiDrawCount);else{const zo=ur._multiDrawStarts,Ya=ur._multiDrawCounts,sa=ur._multiDrawCount,Zc=_a?Gt.get(_a).bytesPerElement:1,Tc=jo.get(ro).currentProgram.getUniforms();for(let ic=0;ic<sa;ic++)Tc.setValue(un,"_gl_DrawID",ic),Vi.render(zo[ic]/Zc,Ya[ic])}else if(ur.isInstancedMesh)Vi.renderInstances(Pu,Sd,ur.count);else if(io.isInstancedBufferGeometry){const zo=io._maxInstanceCount!==void 0?io._maxInstanceCount:1/0,Ya=Math.min(io.instanceCount,zo);Vi.renderInstances(Pu,Sd,Ya)}else Vi.render(Pu,Sd)};function ya(Pn,mr,io){Pn.transparent===!0&&Pn.side===Fh&&Pn.forceSinglePass===!1?(Pn.side=wc,Pn.needsUpdate=!0,wd(Pn,mr,io),Pn.side=hp,Pn.needsUpdate=!0,wd(Pn,mr,io),Pn.side=Fh):wd(Pn,mr,io)}this.compile=function(Pn,mr,io=null){io===null&&(io=Pn),Le=gs.get(io),Le.init(mr),$e.push(Le),io.traverseVisible(function(ur){ur.isLight&&ur.layers.test(mr.layers)&&(Le.pushLight(ur),ur.castShadow&&Le.pushShadow(ur))}),Pn!==io&&Pn.traverseVisible(function(ur){ur.isLight&&ur.layers.test(mr.layers)&&(Le.pushLight(ur),ur.castShadow&&Le.pushShadow(ur))}),Le.setupLights();const ro=new Set;return Pn.traverse(function(ur){if(!(ur.isMesh||ur.isPoints||ur.isLine||ur.isSprite))return;const Rs=ur.material;if(Rs)if(Array.isArray(Rs))for(let ho=0;ho<Rs.length;ho++){const ka=Rs[ho];ya(ka,io,ur),ro.add(ka)}else ya(Rs,io,ur),ro.add(Rs)}),Le=$e.pop(),ro},this.compileAsync=function(Pn,mr,io=null){const ro=this.compile(Pn,mr,io);return new Promise(ur=>{function Rs(){if(ro.forEach(function(ho){jo.get(ho).currentProgram.isReady()&&ro.delete(ho)}),ro.size===0){ur(Pn);return}setTimeout(Rs,10)}Kr.get("KHR_parallel_shader_compile")!==null?Rs():setTimeout(Rs,10)})};let $a=null;function ef(Pn){$a&&$a(Pn)}function Cm(){i0.stop()}function Lv(){i0.start()}const i0=new BF;i0.setAnimationLoop(ef),typeof self!="undefined"&&i0.setContext(self),this.setAnimationLoop=function(Pn){$a=Pn,No.setAnimationLoop(Pn),Pn===null?i0.stop():i0.start()},No.addEventListener("sessionstart",Cm),No.addEventListener("sessionend",Lv),this.render=function(Pn,mr){if(mr!==void 0&&mr.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(st===!0)return;if(Pn.matrixWorldAutoUpdate===!0&&Pn.updateMatrixWorld(),mr.parent===null&&mr.matrixWorldAutoUpdate===!0&&mr.updateMatrixWorld(),No.enabled===!0&&No.isPresenting===!0&&(No.cameraAutoUpdate===!0&&No.updateCamera(mr),mr=No.getCamera()),Pn.isScene===!0&&Pn.onBeforeRender(_e,Pn,mr,ht),Le=gs.get(Pn,$e.length),Le.init(mr),$e.push(Le),qi.multiplyMatrices(mr.projectionMatrix,mr.matrixWorldInverse),jn.setFromProjectionMatrix(qi),hr=this.localClippingEnabled,ei=Na.init(this.clippingPlanes,hr),Oe=Es.get(Pn,Je.length),Oe.init(),Je.push(Oe),No.enabled===!0&&No.isPresenting===!0){const Rs=_e.xr.getDepthSensingMesh();Rs!==null&&Iv(Rs,mr,-1/0,_e.sortObjects)}Iv(Pn,mr,0,_e.sortObjects),Oe.finish(),_e.sortObjects===!0&&Oe.sort(Sn,ki),_o=No.enabled===!1||No.isPresenting===!1||No.hasDepthSensing()===!1,_o&&Zo.addToRenderList(Oe,Pn),this.info.render.frame++,ei===!0&&Na.beginShadows();const io=Le.state.shadowsArray;Qa.render(io,Pn,mr),ei===!0&&Na.endShadows(),this.info.autoReset===!0&&this.info.reset();const ro=Oe.opaque,ur=Oe.transmissive;if(Le.setupLights(),mr.isArrayCamera){const Rs=mr.cameras;if(ur.length>0)for(let ho=0,ka=Rs.length;ho<ka;ho++){const _a=Rs[ho];H0(ro,ur,Pn,_a)}_o&&Zo.render(Pn);for(let ho=0,ka=Rs.length;ho<ka;ho++){const _a=Rs[ho];cC(Oe,Pn,_a,_a.viewport)}}else ur.length>0&&H0(ro,ur,Pn,mr),_o&&Zo.render(Pn),cC(Oe,Pn,mr);ht!==null&&ut===0&&(Ro.updateMultisampleRenderTarget(ht),Ro.updateRenderTargetMipmap(ht)),Pn.isScene===!0&&Pn.onAfterRender(_e,Pn,mr),Fl.resetDefaultState(),pt=-1,gt=null,$e.pop(),$e.length>0?(Le=$e[$e.length-1],ei===!0&&Na.setGlobalState(_e.clippingPlanes,Le.state.camera)):Le=null,Je.pop(),Je.length>0?Oe=Je[Je.length-1]:Oe=null};function Iv(Pn,mr,io,ro){if(Pn.visible===!1)return;if(Pn.layers.test(mr.layers)){if(Pn.isGroup)io=Pn.renderOrder;else if(Pn.isLOD)Pn.autoUpdate===!0&&Pn.update(mr);else if(Pn.isLight)Le.pushLight(Pn),Pn.castShadow&&Le.pushShadow(Pn);else if(Pn.isSprite){if(!Pn.frustumCulled||jn.intersectsSprite(Pn)){ro&&Pr.setFromMatrixPosition(Pn.matrixWorld).applyMatrix4(qi);const ho=Fr.update(Pn),ka=Pn.material;ka.visible&&Oe.push(Pn,ho,ka,io,Pr.z,null)}}else if((Pn.isMesh||Pn.isLine||Pn.isPoints)&&(!Pn.frustumCulled||jn.intersectsObject(Pn))){const ho=Fr.update(Pn),ka=Pn.material;if(ro&&(Pn.boundingSphere!==void 0?(Pn.boundingSphere===null&&Pn.computeBoundingSphere(),Pr.copy(Pn.boundingSphere.center)):(ho.boundingSphere===null&&ho.computeBoundingSphere(),Pr.copy(ho.boundingSphere.center)),Pr.applyMatrix4(Pn.matrixWorld).applyMatrix4(qi)),Array.isArray(ka)){const _a=ho.groups;for(let du=0,fu=_a.length;du<fu;du++){const Hl=_a[du],Pu=ka[Hl.materialIndex];Pu&&Pu.visible&&Oe.push(Pn,ho,Pu,io,Pr.z,Hl)}}else ka.visible&&Oe.push(Pn,ho,ka,io,Pr.z,null)}}const Rs=Pn.children;for(let ho=0,ka=Rs.length;ho<ka;ho++)Iv(Rs[ho],mr,io,ro)}function cC(Pn,mr,io,ro){const ur=Pn.opaque,Rs=Pn.transmissive,ho=Pn.transparent;Le.setupLightsView(io),ei===!0&&Na.setGlobalState(_e.clippingPlanes,io),ro&&_r.viewport(zt.copy(ro)),ur.length>0&&$A(ur,mr,io),Rs.length>0&&$A(Rs,mr,io),ho.length>0&&$A(ho,mr,io),_r.buffers.depth.setTest(!0),_r.buffers.depth.setMask(!0),_r.buffers.color.setMask(!0),_r.setPolygonOffset(!1)}function H0(Pn,mr,io,ro){if((io.isScene===!0?io.overrideMaterial:null)!==null)return;Le.state.transmissionRenderTarget[ro.id]===void 0&&(Le.state.transmissionRenderTarget[ro.id]=new Kp(1,1,{generateMipmaps:!0,type:Kr.has("EXT_color_buffer_half_float")||Kr.has("EXT_color_buffer_float")?Hc:yh,minFilter:mp,samples:4,stencilBuffer:ie,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:su.workingColorSpace}));const Rs=Le.state.transmissionRenderTarget[ro.id],ho=ro.viewport||zt;Rs.setSize(ho.z*_e.transmissionResolutionScale,ho.w*_e.transmissionResolutionScale);const ka=_e.getRenderTarget();_e.setRenderTarget(Rs),_e.getClearColor(Zn),Nn=_e.getClearAlpha(),Nn<1&&_e.setClearColor(16777215,.5),_e.clear(),_o&&Zo.render(io);const _a=_e.toneMapping;_e.toneMapping=bc;const du=ro.viewport;if(ro.viewport!==void 0&&(ro.viewport=void 0),Le.setupLightsView(ro),ei===!0&&Na.setGlobalState(_e.clippingPlanes,ro),$A(Pn,io,ro),Ro.updateMultisampleRenderTarget(Rs),Ro.updateRenderTargetMipmap(Rs),Kr.has("WEBGL_multisampled_render_to_texture")===!1){let fu=!1;for(let Hl=0,Pu=mr.length;Hl<Pu;Hl++){const Cc=mr[Hl],Sd=Cc.object,Pd=Cc.geometry,Vi=Cc.material,zo=Cc.group;if(Vi.side===Fh&&Sd.layers.test(ro.layers)){const Ya=Vi.side;Vi.side=wc,Vi.needsUpdate=!0,zf(Sd,io,ro,Pd,Vi,zo),Vi.side=Ya,Vi.needsUpdate=!0,fu=!0}}fu===!0&&(Ro.updateMultisampleRenderTarget(Rs),Ro.updateRenderTargetMipmap(Rs))}_e.setRenderTarget(ka),_e.setClearColor(Zn,Nn),du!==void 0&&(ro.viewport=du),_e.toneMapping=_a}function $A(Pn,mr,io){const ro=mr.isScene===!0?mr.overrideMaterial:null;for(let ur=0,Rs=Pn.length;ur<Rs;ur++){const ho=Pn[ur],ka=ho.object,_a=ho.geometry,du=ho.group;let fu=ho.material;fu.allowOverride===!0&&ro!==null&&(fu=ro),ka.layers.test(io.layers)&&zf(ka,mr,io,_a,fu,du)}}function zf(Pn,mr,io,ro,ur,Rs){Pn.onBeforeRender(_e,mr,io,ro,ur,Rs),Pn.modelViewMatrix.multiplyMatrices(io.matrixWorldInverse,Pn.matrixWorld),Pn.normalMatrix.getNormalMatrix(Pn.modelViewMatrix),ur.onBeforeRender(_e,mr,io,ro,Pn,Rs),ur.transparent===!0&&ur.side===Fh&&ur.forceSinglePass===!1?(ur.side=wc,ur.needsUpdate=!0,_e.renderBufferDirect(io,mr,ro,ur,Pn,Rs),ur.side=hp,ur.needsUpdate=!0,_e.renderBufferDirect(io,mr,ro,ur,Pn,Rs),ur.side=Fh):_e.renderBufferDirect(io,mr,ro,ur,Pn,Rs),Pn.onAfterRender(_e,mr,io,ro,ur,Rs)}function wd(Pn,mr,io){mr.isScene!==!0&&(mr=Go);const ro=jo.get(Pn),ur=Le.state.lights,Rs=Le.state.shadowsArray,ho=ur.state.version,ka=vi.getParameters(Pn,ur.state,Rs,mr,io),_a=vi.getProgramCacheKey(ka);let du=ro.programs;ro.environment=Pn.isMeshStandardMaterial?mr.environment:null,ro.fog=mr.fog,ro.envMap=(Pn.isMeshStandardMaterial?mn:qa).get(Pn.envMap||ro.environment),ro.envMapRotation=ro.environment!==null&&Pn.envMap===null?mr.environmentRotation:Pn.envMapRotation,du===void 0&&(Pn.addEventListener("dispose",Jr),du=new Map,ro.programs=du);let fu=du.get(_a);if(fu!==void 0){if(ro.currentProgram===fu&&ro.lightsStateVersion===ho)return hC(Pn,ka),fu}else ka.uniforms=vi.getUniforms(Pn),Pn.onBeforeCompile(ka,_e),fu=vi.acquireProgram(ka,_a),du.set(_a,fu),ro.uniforms=ka.uniforms;const Hl=ro.uniforms;return(!Pn.isShaderMaterial&&!Pn.isRawShaderMaterial||Pn.clipping===!0)&&(Hl.clippingPlanes=Na.uniform),hC(Pn,ka),ro.needsLights=Mg(Pn),ro.lightsStateVersion=ho,ro.needsLights&&(Hl.ambientLightColor.value=ur.state.ambient,Hl.lightProbe.value=ur.state.probe,Hl.directionalLights.value=ur.state.directional,Hl.directionalLightShadows.value=ur.state.directionalShadow,Hl.spotLights.value=ur.state.spot,Hl.spotLightShadows.value=ur.state.spotShadow,Hl.rectAreaLights.value=ur.state.rectArea,Hl.ltc_1.value=ur.state.rectAreaLTC1,Hl.ltc_2.value=ur.state.rectAreaLTC2,Hl.pointLights.value=ur.state.point,Hl.pointLightShadows.value=ur.state.pointShadow,Hl.hemisphereLights.value=ur.state.hemi,Hl.directionalShadowMap.value=ur.state.directionalShadowMap,Hl.directionalShadowMatrix.value=ur.state.directionalShadowMatrix,Hl.spotShadowMap.value=ur.state.spotShadowMap,Hl.spotLightMatrix.value=ur.state.spotLightMatrix,Hl.spotLightMap.value=ur.state.spotLightMap,Hl.pointShadowMap.value=ur.state.pointShadowMap,Hl.pointShadowMatrix.value=ur.state.pointShadowMatrix),ro.currentProgram=fu,ro.uniformsList=null,fu}function tm(Pn){if(Pn.uniformsList===null){const mr=Pn.currentProgram.getUniforms();Pn.uniformsList=fB.seqWithValue(mr.seq,Pn.uniforms)}return Pn.uniformsList}function hC(Pn,mr){const io=jo.get(Pn);io.outputColorSpace=mr.outputColorSpace,io.batching=mr.batching,io.batchingColor=mr.batchingColor,io.instancing=mr.instancing,io.instancingColor=mr.instancingColor,io.instancingMorph=mr.instancingMorph,io.skinning=mr.skinning,io.morphTargets=mr.morphTargets,io.morphNormals=mr.morphNormals,io.morphColors=mr.morphColors,io.morphTargetsCount=mr.morphTargetsCount,io.numClippingPlanes=mr.numClippingPlanes,io.numIntersection=mr.numClipIntersection,io.vertexAlphas=mr.vertexAlphas,io.vertexTangents=mr.vertexTangents,io.toneMapping=mr.toneMapping}function fa(Pn,mr,io,ro,ur){mr.isScene!==!0&&(mr=Go),Ro.resetTextureUnits();const Rs=mr.fog,ho=ro.isMeshStandardMaterial?mr.environment:null,ka=ht===null?_e.outputColorSpace:ht.isXRRenderTarget===!0?ht.texture.colorSpace:Fm,_a=(ro.isMeshStandardMaterial?mn:qa).get(ro.envMap||ho),du=ro.vertexColors===!0&&!!io.attributes.color&&io.attributes.color.itemSize===4,fu=!!io.attributes.tangent&&(!!ro.normalMap||ro.anisotropy>0),Hl=!!io.morphAttributes.position,Pu=!!io.morphAttributes.normal,Cc=!!io.morphAttributes.color;let Sd=bc;ro.toneMapped&&(ht===null||ht.isXRRenderTarget===!0)&&(Sd=_e.toneMapping);const Pd=io.morphAttributes.position||io.morphAttributes.normal||io.morphAttributes.color,Vi=Pd!==void 0?Pd.length:0,zo=jo.get(ro),Ya=Le.state.lights;if(ei===!0&&(hr===!0||Pn!==gt)){const Af=Pn===gt&&ro.id===pt;Na.setState(ro,Pn,Af)}let sa=!1;ro.version===zo.__version?(zo.needsLights&&zo.lightsStateVersion!==Ya.state.version||zo.outputColorSpace!==ka||ur.isBatchedMesh&&zo.batching===!1||!ur.isBatchedMesh&&zo.batching===!0||ur.isBatchedMesh&&zo.batchingColor===!0&&ur.colorTexture===null||ur.isBatchedMesh&&zo.batchingColor===!1&&ur.colorTexture!==null||ur.isInstancedMesh&&zo.instancing===!1||!ur.isInstancedMesh&&zo.instancing===!0||ur.isSkinnedMesh&&zo.skinning===!1||!ur.isSkinnedMesh&&zo.skinning===!0||ur.isInstancedMesh&&zo.instancingColor===!0&&ur.instanceColor===null||ur.isInstancedMesh&&zo.instancingColor===!1&&ur.instanceColor!==null||ur.isInstancedMesh&&zo.instancingMorph===!0&&ur.morphTexture===null||ur.isInstancedMesh&&zo.instancingMorph===!1&&ur.morphTexture!==null||zo.envMap!==_a||ro.fog===!0&&zo.fog!==Rs||zo.numClippingPlanes!==void 0&&(zo.numClippingPlanes!==Na.numPlanes||zo.numIntersection!==Na.numIntersection)||zo.vertexAlphas!==du||zo.vertexTangents!==fu||zo.morphTargets!==Hl||zo.morphNormals!==Pu||zo.morphColors!==Cc||zo.toneMapping!==Sd||zo.morphTargetsCount!==Vi)&&(sa=!0):(sa=!0,zo.__version=ro.version);let Zc=zo.currentProgram;sa===!0&&(Zc=wd(ro,mr,ur));let Tc=!1,ic=!1,Rh=!1;const Qu=Zc.getUniforms(),rd=zo.uniforms;if(_r.useProgram(Zc.program)&&(Tc=!0,ic=!0,Rh=!0),ro.id!==pt&&(pt=ro.id,ic=!0),Tc||gt!==Pn){_r.buffers.depth.getReversed()?(_n.copy(Pn.projectionMatrix),mo(_n),Qd(_n),Qu.setValue(un,"projectionMatrix",_n)):Qu.setValue(un,"projectionMatrix",Pn.projectionMatrix),Qu.setValue(un,"viewMatrix",Pn.matrixWorldInverse);const Up=Qu.map.cameraPosition;Up!==void 0&&Up.setValue(un,Sr.setFromMatrixPosition(Pn.matrixWorld)),kr.logarithmicDepthBuffer&&Qu.setValue(un,"logDepthBufFC",2/(Math.log(Pn.far+1)/Math.LN2)),(ro.isMeshPhongMaterial||ro.isMeshToonMaterial||ro.isMeshLambertMaterial||ro.isMeshBasicMaterial||ro.isMeshStandardMaterial||ro.isShaderMaterial)&&Qu.setValue(un,"isOrthographic",Pn.isOrthographicCamera===!0),gt!==Pn&&(gt=Pn,ic=!0,Rh=!0)}if(ur.isSkinnedMesh){Qu.setOptional(un,ur,"bindMatrix"),Qu.setOptional(un,ur,"bindMatrixInverse");const Af=ur.skeleton;Af&&(Af.boneTexture===null&&Af.computeBoneTexture(),Qu.setValue(un,"boneTexture",Af.boneTexture,Ro))}ur.isBatchedMesh&&(Qu.setOptional(un,ur,"batchingTexture"),Qu.setValue(un,"batchingTexture",ur._matricesTexture,Ro),Qu.setOptional(un,ur,"batchingIdTexture"),Qu.setValue(un,"batchingIdTexture",ur._indirectTexture,Ro),Qu.setOptional(un,ur,"batchingColorTexture"),ur._colorsTexture!==null&&Qu.setValue(un,"batchingColorTexture",ur._colorsTexture,Ro));const Ud=io.morphAttributes;if((Ud.position!==void 0||Ud.normal!==void 0||Ud.color!==void 0)&&ba.update(ur,io,Zc),(ic||zo.receiveShadow!==ur.receiveShadow)&&(zo.receiveShadow=ur.receiveShadow,Qu.setValue(un,"receiveShadow",ur.receiveShadow)),ro.isMeshGouraudMaterial&&ro.envMap!==null&&(rd.envMap.value=_a,rd.flipEnvMap.value=_a.isCubeTexture&&_a.isRenderTargetTexture===!1?-1:1),ro.isMeshStandardMaterial&&ro.envMap===null&&mr.environment!==null&&(rd.envMapIntensity.value=mr.environmentIntensity),ic&&(Qu.setValue(un,"toneMappingExposure",_e.toneMappingExposure),zo.needsLights&&nm(rd,Rh),Rs&&ro.fog===!0&&Dr.refreshFogUniforms(rd,Rs),Dr.refreshMaterialUniforms(rd,ro,bn,yi,Le.state.transmissionRenderTarget[Pn.id]),fB.upload(un,tm(zo),rd,Ro)),ro.isShaderMaterial&&ro.uniformsNeedUpdate===!0&&(fB.upload(un,tm(zo),rd,Ro),ro.uniformsNeedUpdate=!1),ro.isSpriteMaterial&&Qu.setValue(un,"center",ur.center),Qu.setValue(un,"modelViewMatrix",ur.modelViewMatrix),Qu.setValue(un,"normalMatrix",ur.normalMatrix),Qu.setValue(un,"modelMatrix",ur.matrixWorld),ro.isShaderMaterial||ro.isRawShaderMaterial){const Af=ro.uniformsGroups;for(let Up=0,mS=Af.length;Up<mS;Up++){const kv=Af[Up];Xi.update(kv,Zc),Xi.bind(kv,Zc)}}return Zc}function nm(Pn,mr){Pn.ambientLightColor.needsUpdate=mr,Pn.lightProbe.needsUpdate=mr,Pn.directionalLights.needsUpdate=mr,Pn.directionalLightShadows.needsUpdate=mr,Pn.pointLights.needsUpdate=mr,Pn.pointLightShadows.needsUpdate=mr,Pn.spotLights.needsUpdate=mr,Pn.spotLightShadows.needsUpdate=mr,Pn.rectAreaLights.needsUpdate=mr,Pn.hemisphereLights.needsUpdate=mr}function Mg(Pn){return Pn.isMeshLambertMaterial||Pn.isMeshToonMaterial||Pn.isMeshPhongMaterial||Pn.isMeshStandardMaterial||Pn.isShadowMaterial||Pn.isShaderMaterial&&Pn.lights===!0}this.getActiveCubeFace=function(){return ct},this.getActiveMipmapLevel=function(){return ut},this.getRenderTarget=function(){return ht},this.setRenderTargetTextures=function(Pn,mr,io){const ro=jo.get(Pn);ro.__autoAllocateDepthBuffer=Pn.resolveDepthBuffer===!1,ro.__autoAllocateDepthBuffer===!1&&(ro.__useRenderToTexture=!1),jo.get(Pn.texture).__webglTexture=mr,jo.get(Pn.depthTexture).__webglTexture=ro.__autoAllocateDepthBuffer?void 0:io,ro.__hasExternalTextures=!0},this.setRenderTargetFramebuffer=function(Pn,mr){const io=jo.get(Pn);io.__webglFramebuffer=mr,io.__useDefaultFramebuffer=mr===void 0};const im=un.createFramebuffer();this.setRenderTarget=function(Pn,mr=0,io=0){ht=Pn,ct=mr,ut=io;let ro=!0,ur=null,Rs=!1,ho=!1;if(Pn){const _a=jo.get(Pn);if(_a.__useDefaultFramebuffer!==void 0)_r.bindFramebuffer(un.FRAMEBUFFER,null),ro=!1;else if(_a.__webglFramebuffer===void 0)Ro.setupRenderTarget(Pn);else if(_a.__hasExternalTextures)Ro.rebindTextures(Pn,jo.get(Pn.texture).__webglTexture,jo.get(Pn.depthTexture).__webglTexture);else if(Pn.depthBuffer){const Hl=Pn.depthTexture;if(_a.__boundDepthTexture!==Hl){if(Hl!==null&&jo.has(Hl)&&(Pn.width!==Hl.image.width||Pn.height!==Hl.image.height))throw new Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");Ro.setupDepthRenderbuffer(Pn)}}const du=Pn.texture;(du.isData3DTexture||du.isDataArrayTexture||du.isCompressedArrayTexture)&&(ho=!0);const fu=jo.get(Pn).__webglFramebuffer;Pn.isWebGLCubeRenderTarget?(Array.isArray(fu[mr])?ur=fu[mr][io]:ur=fu[mr],Rs=!0):Pn.samples>0&&Ro.useMultisampledRTT(Pn)===!1?ur=jo.get(Pn).__webglMultisampledFramebuffer:Array.isArray(fu)?ur=fu[io]:ur=fu,zt.copy(Pn.viewport),cn.copy(Pn.scissor),Tn=Pn.scissorTest}else zt.copy(ti).multiplyScalar(bn).floor(),cn.copy(fn).multiplyScalar(bn).floor(),Tn=Bi;if(io!==0&&(ur=im),_r.bindFramebuffer(un.FRAMEBUFFER,ur)&&ro&&_r.drawBuffers(Pn,ur),_r.viewport(zt),_r.scissor(cn),_r.setScissorTest(Tn),Rs){const _a=jo.get(Pn.texture);un.framebufferTexture2D(un.FRAMEBUFFER,un.COLOR_ATTACHMENT0,un.TEXTURE_CUBE_MAP_POSITIVE_X+mr,_a.__webglTexture,io)}else if(ho){const _a=jo.get(Pn.texture),du=mr;un.framebufferTextureLayer(un.FRAMEBUFFER,un.COLOR_ATTACHMENT0,_a.__webglTexture,io,du)}else if(Pn!==null&&io!==0){const _a=jo.get(Pn.texture);un.framebufferTexture2D(un.FRAMEBUFFER,un.COLOR_ATTACHMENT0,un.TEXTURE_2D,_a.__webglTexture,io)}pt=-1},this.readRenderTargetPixels=function(Pn,mr,io,ro,ur,Rs,ho,ka=0){if(!(Pn&&Pn.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let _a=jo.get(Pn).__webglFramebuffer;if(Pn.isWebGLCubeRenderTarget&&ho!==void 0&&(_a=_a[ho]),_a){_r.bindFramebuffer(un.FRAMEBUFFER,_a);try{const du=Pn.textures[ka],fu=du.format,Hl=du.type;if(!kr.textureFormatReadable(fu)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!kr.textureTypeReadable(Hl)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}mr>=0&&mr<=Pn.width-ro&&io>=0&&io<=Pn.height-ur&&(Pn.textures.length>1&&un.readBuffer(un.COLOR_ATTACHMENT0+ka),un.readPixels(mr,io,ro,ur,ns.convert(fu),ns.convert(Hl),Rs))}finally{const du=ht!==null?jo.get(ht).__webglFramebuffer:null;_r.bindFramebuffer(un.FRAMEBUFFER,du)}}},this.readRenderTargetPixelsAsync=function(Pn,mr,io,ro,ur,Rs,ho,ka=0){return Vl(this,null,function*(){if(!(Pn&&Pn.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let _a=jo.get(Pn).__webglFramebuffer;if(Pn.isWebGLCubeRenderTarget&&ho!==void 0&&(_a=_a[ho]),_a)if(mr>=0&&mr<=Pn.width-ro&&io>=0&&io<=Pn.height-ur){_r.bindFramebuffer(un.FRAMEBUFFER,_a);const du=Pn.textures[ka],fu=du.format,Hl=du.type;if(!kr.textureFormatReadable(fu))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!kr.textureTypeReadable(Hl))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");const Pu=un.createBuffer();un.bindBuffer(un.PIXEL_PACK_BUFFER,Pu),un.bufferData(un.PIXEL_PACK_BUFFER,Rs.byteLength,un.STREAM_READ),Pn.textures.length>1&&un.readBuffer(un.COLOR_ATTACHMENT0+ka),un.readPixels(mr,io,ro,ur,ns.convert(fu),ns.convert(Hl),0);const Cc=ht!==null?jo.get(ht).__webglFramebuffer:null;_r.bindFramebuffer(un.FRAMEBUFFER,Cc);const Sd=un.fenceSync(un.SYNC_GPU_COMMANDS_COMPLETE,0);return un.flush(),yield l2(un,Sd,4),un.bindBuffer(un.PIXEL_PACK_BUFFER,Pu),un.getBufferSubData(un.PIXEL_PACK_BUFFER,0,Rs),un.deleteBuffer(Pu),un.deleteSync(Sd),Rs}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")})},this.copyFramebufferToTexture=function(Pn,mr=null,io=0){const ro=Math.pow(2,-io),ur=Math.floor(Pn.image.width*ro),Rs=Math.floor(Pn.image.height*ro),ho=mr!==null?mr.x:0,ka=mr!==null?mr.y:0;Ro.setTexture2D(Pn,0),un.copyTexSubImage2D(un.TEXTURE_2D,io,0,0,ho,ka,ur,Rs),_r.unbindTexture()};const ex=un.createFramebuffer(),Vb=un.createFramebuffer();this.copyTextureToTexture=function(Pn,mr,io=null,ro=null,ur=0,Rs=null){Rs===null&&(ur!==0?(vc("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),Rs=ur,ur=0):Rs=0);let ho,ka,_a,du,fu,Hl,Pu,Cc,Sd;const Pd=Pn.isCompressedTexture?Pn.mipmaps[Rs]:Pn.image;if(io!==null)ho=io.max.x-io.min.x,ka=io.max.y-io.min.y,_a=io.isBox3?io.max.z-io.min.z:1,du=io.min.x,fu=io.min.y,Hl=io.isBox3?io.min.z:0;else{const Ud=Math.pow(2,-ur);ho=Math.floor(Pd.width*Ud),ka=Math.floor(Pd.height*Ud),Pn.isDataArrayTexture?_a=Pd.depth:Pn.isData3DTexture?_a=Math.floor(Pd.depth*Ud):_a=1,du=0,fu=0,Hl=0}ro!==null?(Pu=ro.x,Cc=ro.y,Sd=ro.z):(Pu=0,Cc=0,Sd=0);const Vi=ns.convert(mr.format),zo=ns.convert(mr.type);let Ya;mr.isData3DTexture?(Ro.setTexture3D(mr,0),Ya=un.TEXTURE_3D):mr.isDataArrayTexture||mr.isCompressedArrayTexture?(Ro.setTexture2DArray(mr,0),Ya=un.TEXTURE_2D_ARRAY):(Ro.setTexture2D(mr,0),Ya=un.TEXTURE_2D),un.pixelStorei(un.UNPACK_FLIP_Y_WEBGL,mr.flipY),un.pixelStorei(un.UNPACK_PREMULTIPLY_ALPHA_WEBGL,mr.premultiplyAlpha),un.pixelStorei(un.UNPACK_ALIGNMENT,mr.unpackAlignment);const sa=un.getParameter(un.UNPACK_ROW_LENGTH),Zc=un.getParameter(un.UNPACK_IMAGE_HEIGHT),Tc=un.getParameter(un.UNPACK_SKIP_PIXELS),ic=un.getParameter(un.UNPACK_SKIP_ROWS),Rh=un.getParameter(un.UNPACK_SKIP_IMAGES);un.pixelStorei(un.UNPACK_ROW_LENGTH,Pd.width),un.pixelStorei(un.UNPACK_IMAGE_HEIGHT,Pd.height),un.pixelStorei(un.UNPACK_SKIP_PIXELS,du),un.pixelStorei(un.UNPACK_SKIP_ROWS,fu),un.pixelStorei(un.UNPACK_SKIP_IMAGES,Hl);const Qu=Pn.isDataArrayTexture||Pn.isData3DTexture,rd=mr.isDataArrayTexture||mr.isData3DTexture;if(Pn.isDepthTexture){const Ud=jo.get(Pn),Af=jo.get(mr),Up=jo.get(Ud.__renderTarget),mS=jo.get(Af.__renderTarget);_r.bindFramebuffer(un.READ_FRAMEBUFFER,Up.__webglFramebuffer),_r.bindFramebuffer(un.DRAW_FRAMEBUFFER,mS.__webglFramebuffer);for(let kv=0;kv<_a;kv++)Qu&&(un.framebufferTextureLayer(un.READ_FRAMEBUFFER,un.COLOR_ATTACHMENT0,jo.get(Pn).__webglTexture,ur,Hl+kv),un.framebufferTextureLayer(un.DRAW_FRAMEBUFFER,un.COLOR_ATTACHMENT0,jo.get(mr).__webglTexture,Rs,Sd+kv)),un.blitFramebuffer(du,fu,ho,ka,Pu,Cc,ho,ka,un.DEPTH_BUFFER_BIT,un.NEAREST);_r.bindFramebuffer(un.READ_FRAMEBUFFER,null),_r.bindFramebuffer(un.DRAW_FRAMEBUFFER,null)}else if(ur!==0||Pn.isRenderTargetTexture||jo.has(Pn)){const Ud=jo.get(Pn),Af=jo.get(mr);_r.bindFramebuffer(un.READ_FRAMEBUFFER,ex),_r.bindFramebuffer(un.DRAW_FRAMEBUFFER,Vb);for(let Up=0;Up<_a;Up++)Qu?un.framebufferTextureLayer(un.READ_FRAMEBUFFER,un.COLOR_ATTACHMENT0,Ud.__webglTexture,ur,Hl+Up):un.framebufferTexture2D(un.READ_FRAMEBUFFER,un.COLOR_ATTACHMENT0,un.TEXTURE_2D,Ud.__webglTexture,ur),rd?un.framebufferTextureLayer(un.DRAW_FRAMEBUFFER,un.COLOR_ATTACHMENT0,Af.__webglTexture,Rs,Sd+Up):un.framebufferTexture2D(un.DRAW_FRAMEBUFFER,un.COLOR_ATTACHMENT0,un.TEXTURE_2D,Af.__webglTexture,Rs),ur!==0?un.blitFramebuffer(du,fu,ho,ka,Pu,Cc,ho,ka,un.COLOR_BUFFER_BIT,un.NEAREST):rd?un.copyTexSubImage3D(Ya,Rs,Pu,Cc,Sd+Up,du,fu,ho,ka):un.copyTexSubImage2D(Ya,Rs,Pu,Cc,du,fu,ho,ka);_r.bindFramebuffer(un.READ_FRAMEBUFFER,null),_r.bindFramebuffer(un.DRAW_FRAMEBUFFER,null)}else rd?Pn.isDataTexture||Pn.isData3DTexture?un.texSubImage3D(Ya,Rs,Pu,Cc,Sd,ho,ka,_a,Vi,zo,Pd.data):mr.isCompressedArrayTexture?un.compressedTexSubImage3D(Ya,Rs,Pu,Cc,Sd,ho,ka,_a,Vi,Pd.data):un.texSubImage3D(Ya,Rs,Pu,Cc,Sd,ho,ka,_a,Vi,zo,Pd):Pn.isDataTexture?un.texSubImage2D(un.TEXTURE_2D,Rs,Pu,Cc,ho,ka,Vi,zo,Pd.data):Pn.isCompressedTexture?un.compressedTexSubImage2D(un.TEXTURE_2D,Rs,Pu,Cc,Pd.width,Pd.height,Vi,Pd.data):un.texSubImage2D(un.TEXTURE_2D,Rs,Pu,Cc,ho,ka,Vi,zo,Pd);un.pixelStorei(un.UNPACK_ROW_LENGTH,sa),un.pixelStorei(un.UNPACK_IMAGE_HEIGHT,Zc),un.pixelStorei(un.UNPACK_SKIP_PIXELS,Tc),un.pixelStorei(un.UNPACK_SKIP_ROWS,ic),un.pixelStorei(un.UNPACK_SKIP_IMAGES,Rh),Rs===0&&mr.generateMipmaps&&un.generateMipmap(Ya),_r.unbindTexture()},this.copyTextureToTexture3D=function(Pn,mr,io=null,ro=null,ur=0){return vc('WebGLRenderer: copyTextureToTexture3D function has been deprecated. Use "copyTextureToTexture" instead.'),this.copyTextureToTexture(Pn,mr,io,ro,ur)},this.initRenderTarget=function(Pn){jo.get(Pn).__webglFramebuffer===void 0&&Ro.setupRenderTarget(Pn)},this.initTexture=function(Pn){Pn.isCubeTexture?Ro.setTextureCube(Pn,0):Pn.isData3DTexture?Ro.setTexture3D(Pn,0):Pn.isDataArrayTexture||Pn.isCompressedArrayTexture?Ro.setTexture2DArray(Pn,0):Ro.setTexture2D(Pn,0),_r.unbindTexture()},this.resetState=function(){ct=0,ut=0,ht=null,_r.reset(),Fl.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return xp}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(y){this._outputColorSpace=y;const E=this.getContext();E.drawingBufferColorSpace=su._getDrawingBufferColorSpace(y),E.unpackColorSpace=su._getUnpackColorSpace()}}const KW=["alphaMap","alphaTest","anisotropy","anisotropyMap","anisotropyRotation","aoMap","aoMapIntensity","attenuationColor","attenuationDistance","bumpMap","clearcoat","clearcoatMap","clearcoatNormalMap","clearcoatNormalScale","clearcoatRoughness","color","dispersion","displacementMap","emissive","emissiveIntensity","emissiveMap","envMap","envMapIntensity","gradientMap","ior","iridescence","iridescenceIOR","iridescenceMap","iridescenceThicknessMap","lightMap","lightMapIntensity","map","matcap","metalness","metalnessMap","normalMap","normalScale","opacity","roughness","roughnessMap","sheen","sheenColor","sheenColorMap","sheenRoughnessMap","shininess","specular","specularColor","specularColorMap","specularIntensity","specularIntensityMap","specularMap","thickness","transmission","transmissionMap"];class JW{constructor(y){this.renderObjects=new WeakMap,this.hasNode=this.containsNode(y),this.hasAnimation=y.object.isSkinnedMesh===!0,this.refreshUniforms=KW,this.renderId=0}firstInitialization(y){return this.renderObjects.has(y)===!1?(this.getRenderObjectData(y),!0):!1}needsVelocity(y){const E=y.getMRT();return E!==null&&E.has("velocity")}getRenderObjectData(y){let E=this.renderObjects.get(y);if(E===void 0){const{geometry:z,material:ne,object:ie}=y;if(E={material:this.getMaterialData(ne),geometry:{id:z.id,attributes:this.getAttributesData(z.attributes),indexVersion:z.index?z.index.version:null,drawRange:{start:z.drawRange.start,count:z.drawRange.count}},worldMatrix:ie.matrixWorld.clone()},ie.center&&(E.center=ie.center.clone()),ie.morphTargetInfluences&&(E.morphTargetInfluences=ie.morphTargetInfluences.slice()),y.bundle!==null&&(E.version=y.bundle.version),E.material.transmission>0){const{width:se,height:ae}=y.context;E.bufferWidth=se,E.bufferHeight=ae}this.renderObjects.set(y,E)}return E}getAttributesData(y){const E={};for(const z in y){const ne=y[z];E[z]={version:ne.version}}return E}containsNode(y){const E=y.material;for(const z in E)if(E[z]&&E[z].isNode)return!0;return y.renderer.overrideNodes.modelViewMatrix!==null||y.renderer.overrideNodes.modelNormalViewMatrix!==null}getMaterialData(y){const E={};for(const z of this.refreshUniforms){const ne=y[z];ne!=null&&(typeof ne=="object"&&ne.clone!==void 0?ne.isTexture===!0?E[z]={id:ne.id,version:ne.version}:E[z]=ne.clone():E[z]=ne)}return E}equals(y){const{object:E,material:z,geometry:ne}=y,ie=this.getRenderObjectData(y);if(ie.worldMatrix.equals(E.matrixWorld)!==!0)return ie.worldMatrix.copy(E.matrixWorld),!1;const se=ie.material;for(const Re in se){const Oe=se[Re],Le=z[Re];if(Oe.equals!==void 0){if(Oe.equals(Le)===!1)return Oe.copy(Le),!1}else if(Le.isTexture===!0){if(Oe.id!==Le.id||Oe.version!==Le.version)return Oe.id=Le.id,Oe.version=Le.version,!1}else if(Oe!==Le)return se[Re]=Le,!1}if(se.transmission>0){const{width:Re,height:Oe}=y.context;if(ie.bufferWidth!==Re||ie.bufferHeight!==Oe)return ie.bufferWidth=Re,ie.bufferHeight=Oe,!1}const ae=ie.geometry,he=ne.attributes,pe=ae.attributes,ve=Object.keys(pe),xe=Object.keys(he);if(ae.id!==ne.id)return ae.id=ne.id,!1;if(ve.length!==xe.length)return ie.geometry.attributes=this.getAttributesData(he),!1;for(const Re of ve){const Oe=pe[Re],Le=he[Re];if(Le===void 0)return delete pe[Re],!1;if(Oe.version!==Le.version)return Oe.version=Le.version,!1}const Se=ne.index,Be=ae.indexVersion,De=Se?Se.version:null;if(Be!==De)return ae.indexVersion=De,!1;if(ae.drawRange.start!==ne.drawRange.start||ae.drawRange.count!==ne.drawRange.count)return ae.drawRange.start=ne.drawRange.start,ae.drawRange.count=ne.drawRange.count,!1;if(ie.morphTargetInfluences){let Re=!1;for(let Oe=0;Oe<ie.morphTargetInfluences.length;Oe++)ie.morphTargetInfluences[Oe]!==E.morphTargetInfluences[Oe]&&(Re=!0);if(Re)return!0}return ie.center&&ie.center.equals(E.center)===!1?(ie.center.copy(E.center),!0):(y.bundle!==null&&(ie.version=y.bundle.version),!0)}needsRefresh(y,E){if(this.hasNode||this.hasAnimation||this.firstInitialization(y)||this.needsVelocity(E.renderer))return!0;const{renderId:z}=E;if(this.renderId!==z)return this.renderId=z,!0;const ne=y.object.static===!0,ie=y.bundle!==null&&y.bundle.static===!0&&this.getRenderObjectData(y).version===y.bundle.version;return ne||ie?!1:this.equals(y)!==!0}}function Q2(ee,y=0){let E=3735928559^y,z=1103547991^y;if(ee instanceof Array)for(let ne=0,ie;ne<ee.length;ne++)ie=ee[ne],E=Math.imul(E^ie,2654435761),z=Math.imul(z^ie,1597334677);else for(let ne=0,ie;ne<ee.length;ne++)ie=ee.charCodeAt(ne),E=Math.imul(E^ie,2654435761),z=Math.imul(z^ie,1597334677);return E=Math.imul(E^E>>>16,2246822507),E^=Math.imul(z^z>>>13,3266489909),z=Math.imul(z^z>>>16,2246822507),z^=Math.imul(E^E>>>13,3266489909),4294967296*(2097151&z)+(E>>>0)}const _3=ee=>Q2(ee),Z2=ee=>Q2(ee),Y2=(...ee)=>Q2(ee);function $3(ee,y=!1){const E=[];ee.isNode===!0&&(E.push(ee.id),ee=ee.getSelf());for(const{property:z,childNode:ne}of K2(ee))E.push(Q2(z.slice(0,-4)),ne.getCacheKey(y));return Q2(E)}function*K2(ee,y=!1){for(const E in ee){if(E.startsWith("_")===!0)continue;const z=ee[E];if(Array.isArray(z)===!0)for(let ne=0;ne<z.length;ne++){const ie=z[ne];ie&&(ie.isNode===!0||y&&typeof ie.toJSON=="function")&&(yield{property:E,index:ne,childNode:ie})}else if(z&&z.isNode===!0)yield{property:E,childNode:z};else if(typeof z=="object")for(const ne in z){const ie=z[ne];ie&&(ie.isNode===!0||y&&typeof ie.toJSON=="function")&&(yield{property:E,index:ne,childNode:ie})}}}const qW=new Map([[1,"float"],[2,"vec2"],[3,"vec3"],[4,"vec4"],[9,"mat3"],[16,"mat4"]]),iL=new WeakMap;function e8(ee){return qW.get(ee)}function J2(ee){if(/[iu]?vec\d/.test(ee))return ee.startsWith("ivec")?Int32Array:ee.startsWith("uvec")?Uint32Array:Float32Array;if(/mat\d/.test(ee)||/float/.test(ee))return Float32Array;if(/uint/.test(ee))return Uint32Array;if(/int/.test(ee))return Int32Array;throw new Error(`THREE.NodeUtils: Unsupported type: ${ee}`)}function t8(ee){if(/float|int|uint/.test(ee))return 1;if(/vec2/.test(ee))return 2;if(/vec3/.test(ee))return 3;if(/vec4/.test(ee)||/mat2/.test(ee))return 4;if(/mat3/.test(ee))return 9;if(/mat4/.test(ee))return 16;console.error("THREE.TSL: Unsupported type:",ee)}function rL(ee){if(/float|int|uint/.test(ee))return 1;if(/vec2/.test(ee))return 2;if(/vec3/.test(ee))return 3;if(/vec4/.test(ee)||/mat2/.test(ee))return 4;if(/mat3/.test(ee))return 12;if(/mat4/.test(ee))return 16;console.error("THREE.TSL: Unsupported type:",ee)}function oL(ee){if(/float|int|uint/.test(ee))return 4;if(/vec2/.test(ee))return 8;if(/vec3/.test(ee)||/vec4/.test(ee))return 16;if(/mat2/.test(ee))return 8;if(/mat3/.test(ee))return 48;if(/mat4/.test(ee))return 64;console.error("THREE.TSL: Unsupported type:",ee)}function E1(ee){if(ee==null)return null;const y=typeof ee;return ee.isNode===!0?"node":y==="number"?"float":y==="boolean"?"bool":y==="string"?"string":y==="function"?"shader":ee.isVector2===!0?"vec2":ee.isVector3===!0?"vec3":ee.isVector4===!0?"vec4":ee.isMatrix2===!0?"mat2":ee.isMatrix3===!0?"mat3":ee.isMatrix4===!0?"mat4":ee.isColor===!0?"color":ee instanceof ArrayBuffer?"ArrayBuffer":null}function n8(ee,...y){const E=ee?ee.slice(-4):void 0;return y.length===1&&(E==="vec2"?y=[y[0],y[0]]:E==="vec3"?y=[y[0],y[0],y[0]]:E==="vec4"&&(y=[y[0],y[0],y[0],y[0]])),ee==="color"?new ia(...y):E==="vec2"?new Yr(...y):E==="vec3"?new yn(...y):E==="vec4"?new Ul(...y):E==="mat2"?new xm(...y):E==="mat3"?new nu(...y):E==="mat4"?new Xa(...y):ee==="bool"?y[0]||!1:ee==="float"||ee==="int"||ee==="uint"?y[0]||0:ee==="string"?y[0]||"":ee==="ArrayBuffer"?o8(y[0]):null}function i8(ee){let y=iL.get(ee);return y===void 0&&(y={},iL.set(ee,y)),y}function r8(ee){let y="";const E=new Uint8Array(ee);for(let z=0;z<E.length;z++)y+=String.fromCharCode(E[z]);return btoa(y)}function o8(ee){return Uint8Array.from(atob(ee),y=>y.charCodeAt(0)).buffer}var Uue=Object.freeze({__proto__:null,arrayBufferToBase64:r8,base64ToArrayBuffer:o8,getByteBoundaryFromType:oL,getCacheKey:$3,getDataFromObject:i8,getLengthFromType:t8,getMemoryLengthFromType:rL,getNodeChildren:K2,getTypeFromLength:e8,getTypedArrayFromType:J2,getValueFromType:n8,getValueType:E1,hash:Y2,hashArray:Z2,hashString:_3});const q2={VERTEX:"vertex",FRAGMENT:"fragment"},Uu={NONE:"none",FRAME:"frame",RENDER:"render",OBJECT:"object"},_W={BOOLEAN:"bool",INTEGER:"int",FLOAT:"float",VECTOR2:"vec2",VECTOR3:"vec3",VECTOR4:"vec4",MATRIX2:"mat2",MATRIX3:"mat3",MATRIX4:"mat4"},_g={READ_ONLY:"readOnly",WRITE_ONLY:"writeOnly",READ_WRITE:"readWrite"},sL=["fragment","vertex"],s8=["setup","analyze","generate"],a8=[...sL,"compute"],OP=["x","y","z","w"],$W={analyze:"setup",generate:"analyze"};let eQ=0;class Zl extends Hg{static get type(){return"Node"}constructor(y=null){super(),this.nodeType=y,this.updateType=Uu.NONE,this.updateBeforeType=Uu.NONE,this.updateAfterType=Uu.NONE,this.uuid=hw.generateUUID(),this.version=0,this.global=!1,this.parents=!1,this.isNode=!0,this._cacheKey=null,this._cacheKeyVersion=0,Object.defineProperty(this,"id",{value:eQ++})}set needsUpdate(y){y===!0&&this.version++}get type(){return this.constructor.type}onUpdate(y,E){return this.updateType=E,this.update=y.bind(this.getSelf()),this}onFrameUpdate(y){return this.onUpdate(y,Uu.FRAME)}onRenderUpdate(y){return this.onUpdate(y,Uu.RENDER)}onObjectUpdate(y){return this.onUpdate(y,Uu.OBJECT)}onReference(y){return this.updateReference=y.bind(this.getSelf()),this}getSelf(){return this.self||this}updateReference(){return this}isGlobal(){return this.global}*getChildren(){for(const{childNode:y}of K2(this))yield y}dispose(){this.dispatchEvent({type:"dispose"})}traverse(y){y(this);for(const E of this.getChildren())E.traverse(y)}getCacheKey(y=!1){return y=y||this.version!==this._cacheKeyVersion,(y===!0||this._cacheKey===null)&&(this._cacheKey=Y2($3(this,y),this.customCacheKey()),this._cacheKeyVersion=this.version),this._cacheKey}customCacheKey(){return 0}getScope(){return this}getHash(){return this.uuid}getUpdateType(){return this.updateType}getUpdateBeforeType(){return this.updateBeforeType}getUpdateAfterType(){return this.updateAfterType}getElementType(y){const E=this.getNodeType(y);return y.getElementType(E)}getMemberType(){return"void"}getNodeType(y){const E=y.getNodeProperties(this);return E.outputNode?E.outputNode.getNodeType(y):this.nodeType}getShared(y){const E=this.getHash(y);return y.getNodeFromHash(E)||this}setup(y){const E=y.getNodeProperties(this);let z=0;for(const ne of this.getChildren())E["node"+z++]=ne;return E.outputNode||null}analyze(y,E=null){const z=y.increaseUsage(this);if(this.parents===!0){const ne=y.getDataFromNode(this,"any");ne.stages=ne.stages||{},ne.stages[y.shaderStage]=ne.stages[y.shaderStage]||[],ne.stages[y.shaderStage].push(E)}if(z===1){const ne=y.getNodeProperties(this);for(const ie of Object.values(ne))ie&&ie.isNode===!0&&ie.build(y,this)}}generate(y,E){const{outputNode:z}=y.getNodeProperties(this);if(z&&z.isNode===!0)return z.build(y,E)}updateBefore(){console.warn("Abstract function.")}updateAfter(){console.warn("Abstract function.")}update(){console.warn("Abstract function.")}build(y,E=null){const z=this.getShared(y);if(this!==z)return z.build(y,E);const ne=y.getDataFromNode(this);ne.buildStages=ne.buildStages||{},ne.buildStages[y.buildStage]=!0;const ie=$W[y.buildStage];if(ie&&ne.buildStages[ie]!==!0){const he=y.getBuildStage();y.setBuildStage(ie),this.build(y),y.setBuildStage(he)}y.addNode(this),y.addChain(this);let se=null;const ae=y.getBuildStage();if(ae==="setup"){this.updateReference(y);const he=y.getNodeProperties(this);if(he.initialized!==!0){he.initialized=!0,he.outputNode=this.setup(y)||he.outputNode||null;for(const pe of Object.values(he))if(pe&&pe.isNode===!0){if(pe.parents===!0){const ve=y.getNodeProperties(pe);ve.parents=ve.parents||[],ve.parents.push(this)}pe.build(y)}}se=he.outputNode}else if(ae==="analyze")this.analyze(y,E);else if(ae==="generate")if(this.generate.length===1){const pe=this.getNodeType(y),ve=y.getDataFromNode(this);se=ve.snippet,se===void 0?ve.generated===void 0?(ve.generated=!0,se=this.generate(y)||"",ve.snippet=se):(console.warn("THREE.Node: Recursion detected.",this),se=""):ve.flowCodes!==void 0&&y.context.nodeBlock!==void 0&&y.addFlowCodeHierarchy(this,y.context.nodeBlock),se=y.format(se,pe,E)}else se=this.generate(y,E)||"";return y.removeChain(this),y.addSequentialNode(this),se}getSerializeChildren(){return K2(this)}serialize(y){const E=this.getSerializeChildren(),z={};for(const{property:ne,index:ie,childNode:se}of E)ie!==void 0?(z[ne]===void 0&&(z[ne]=Number.isInteger(ie)?[]:{}),z[ne][ie]=se.toJSON(y.meta).uuid):z[ne]=se.toJSON(y.meta).uuid;Object.keys(z).length>0&&(y.inputNodes=z)}deserialize(y){if(y.inputNodes!==void 0){const E=y.meta.nodes;for(const z in y.inputNodes)if(Array.isArray(y.inputNodes[z])){const ne=[];for(const ie of y.inputNodes[z])ne.push(E[ie]);this[z]=ne}else if(typeof y.inputNodes[z]=="object"){const ne={};for(const ie in y.inputNodes[z]){const se=y.inputNodes[z][ie];ne[ie]=E[se]}this[z]=ne}else{const ne=y.inputNodes[z];this[z]=E[ne]}}}toJSON(y){const{uuid:E,type:z}=this,ne=y===void 0||typeof y=="string";ne&&(y={textures:{},images:{},nodes:{}});let ie=y.nodes[E];ie===void 0&&(ie={uuid:E,type:z,meta:y,metadata:{version:4.7,type:"Node",generator:"Node.toJSON"}},ne!==!0&&(y.nodes[ie.uuid]=ie),this.serialize(ie),delete ie.meta);function se(ae){const he=[];for(const pe in ae){const ve=ae[pe];delete ve.metadata,he.push(ve)}return he}if(ne){const ae=se(y.textures),he=se(y.images),pe=se(y.nodes);ae.length>0&&(ie.textures=ae),he.length>0&&(ie.images=he),pe.length>0&&(ie.nodes=pe)}return ie}}class RP extends Zl{static get type(){return"ArrayElementNode"}constructor(y,E){super(),this.node=y,this.indexNode=E,this.isArrayElementNode=!0}getNodeType(y){return this.node.getElementType(y)}generate(y){const E=this.indexNode.getNodeType(y),z=this.node.build(y),ne=this.indexNode.build(y,!y.isVector(E)&&y.isInteger(E)?E:"uint");return`${z}[ ${ne} ]`}}class aL extends Zl{static get type(){return"ConvertNode"}constructor(y,E){super(),this.node=y,this.convertTo=E}getNodeType(y){const E=this.node.getNodeType(y);let z=null;for(const ne of this.convertTo.split("|"))(z===null||y.getTypeLength(E)===y.getTypeLength(ne))&&(z=ne);return z}serialize(y){super.serialize(y),y.convertTo=this.convertTo}deserialize(y){super.deserialize(y),this.convertTo=y.convertTo}generate(y,E){const z=this.node,ne=this.getNodeType(y),ie=z.build(y,ne);return y.format(ie,ne,E)}}class gf extends Zl{static get type(){return"TempNode"}constructor(y=null){super(y),this.isTempNode=!0}hasDependencies(y){return y.getDataFromNode(this).usageCount>1}build(y,E){if(y.getBuildStage()==="generate"){const ne=y.getVectorType(this.getNodeType(y,E)),ie=y.getDataFromNode(this);if(ie.propertyName!==void 0)return y.format(ie.propertyName,ne,E);if(ne!=="void"&&E!=="void"&&this.hasDependencies(y)){const se=super.build(y,ne),ae=y.getVarFromNode(this,null,ne),he=y.getPropertyName(ae);return y.addLineFlowCode(`${he} = ${se}`,this),ie.snippet=se,ie.propertyName=he,y.format(ie.propertyName,ne,E)}}return super.build(y,E)}}class tQ extends gf{static get type(){return"JoinNode"}constructor(y=[],E=null){super(E),this.nodes=y}getNodeType(y){return this.nodeType!==null?y.getVectorType(this.nodeType):y.getTypeFromLength(this.nodes.reduce((E,z)=>E+y.getTypeLength(z.getNodeType(y)),0))}generate(y,E){const z=this.getNodeType(y),ne=y.getTypeLength(z),ie=this.nodes,se=y.getComponentType(z),ae=[];let he=0;for(const ve of ie){if(he>=ne){console.error(`THREE.TSL: Length of parameters exceeds maximum length of function '${z}()' type.`);break}let xe=ve.getNodeType(y),Se=y.getTypeLength(xe),Be;he+Se>ne&&(console.error(`THREE.TSL: Length of '${z}()' data exceeds maximum length of output type.`),Se=ne-he,xe=y.getTypeFromLength(Se)),he+=Se,Be=ve.build(y,xe);const De=y.getComponentType(xe);De!==se&&(Be=y.format(Be,De,se)),ae.push(Be)}const pe=`${y.getType(z)}( ${ae.join(", ")} )`;return y.format(pe,z,E)}}const nQ=OP.join("");class l8 extends Zl{static get type(){return"SplitNode"}constructor(y,E="x"){super(),this.node=y,this.components=E,this.isSplitNode=!0}getVectorLength(){let y=this.components.length;for(const E of this.components)y=Math.max(OP.indexOf(E)+1,y);return y}getComponentType(y){return y.getComponentType(this.node.getNodeType(y))}getNodeType(y){return y.getTypeFromLength(this.components.length,this.getComponentType(y))}generate(y,E){const z=this.node,ne=y.getTypeLength(z.getNodeType(y));let ie=null;if(ne>1){let se=null;this.getVectorLength()>=ne&&(se=y.getTypeFromLength(this.getVectorLength(),this.getComponentType(y)));const he=z.build(y,se);this.components.length===ne&&this.components===nQ.slice(0,this.components.length)?ie=y.format(he,se,E):ie=y.format(`${he}.${this.components}`,this.getNodeType(y),E)}else ie=z.build(y,E);return ie}serialize(y){super.serialize(y),y.components=this.components}deserialize(y){super.deserialize(y),this.components=y.components}}class iQ extends gf{static get type(){return"SetNode"}constructor(y,E,z){super(),this.sourceNode=y,this.components=E,this.targetNode=z}getNodeType(y){return this.sourceNode.getNodeType(y)}generate(y){const{sourceNode:E,components:z,targetNode:ne}=this,ie=this.getNodeType(y),se=y.getComponentType(ne.getNodeType(y)),ae=y.getTypeFromLength(z.length,se),he=ne.build(y,ae),pe=E.build(y,ie),ve=y.getTypeLength(ie),xe=[];for(let Se=0;Se<ve;Se++){const Be=OP[Se];Be===z[0]?(xe.push(he),Se+=z.length-1):xe.push(pe+"."+Be)}return`${y.getType(ie)}( ${xe.join(", ")} )`}}class rQ extends gf{static get type(){return"FlipNode"}constructor(y,E){super(),this.sourceNode=y,this.components=E}getNodeType(y){return this.sourceNode.getNodeType(y)}generate(y){const{components:E,sourceNode:z}=this,ne=this.getNodeType(y),ie=z.build(y),se=y.getVarFromNode(this),ae=y.getPropertyName(se);y.addLineFlowCode(ae+" = "+ie,this);const he=y.getTypeLength(ne),pe=[];let ve=0;for(let xe=0;xe<he;xe++){const Se=OP[xe];Se===E[ve]?(pe.push("1.0 - "+(ae+"."+Se)),ve++):pe.push(ae+"."+Se)}return`${y.getType(ne)}( ${pe.join(", ")} )`}}class u8 extends Zl{static get type(){return"InputNode"}constructor(y,E=null){super(E),this.isInputNode=!0,this.value=y,this.precision=null}getNodeType(){return this.nodeType===null?E1(this.value):this.nodeType}getInputType(y){return this.getNodeType(y)}setPrecision(y){return this.precision=y,this}serialize(y){super.serialize(y),y.value=this.value,this.value&&this.value.toArray&&(y.value=this.value.toArray()),y.valueType=E1(this.value),y.nodeType=this.nodeType,y.valueType==="ArrayBuffer"&&(y.value=r8(y.value)),y.precision=this.precision}deserialize(y){super.deserialize(y),this.nodeType=y.nodeType,this.value=Array.isArray(y.value)?n8(y.valueType,...y.value):y.value,this.precision=y.precision||null,this.value&&this.value.fromArray&&(this.value=this.value.fromArray(y.value))}generate(){console.warn("Abstract function.")}}const lL=/float|u?int/;class Ry extends u8{static get type(){return"ConstNode"}constructor(y,E=null){super(y,E),this.isConstNode=!0}generateConst(y){return y.generateConst(this.getNodeType(y),this.value)}generate(y,E){const z=this.getNodeType(y);return lL.test(z)&&lL.test(E)?y.generateConst(E,this.value):y.format(this.generateConst(y),z,E)}}class oQ extends Zl{static get type(){return"MemberNode"}constructor(y,E){super(),this.node=y,this.property=E,this.isMemberNode=!0}getNodeType(y){return this.node.getMemberType(y,this.property)}generate(y){return this.node.build(y)+"."+this.property}}let zP=null;const kE=new Map;function xo(ee,y){if(kE.has(ee)){console.warn(`THREE.TSL: Redefinition of method chaining '${ee}'.`);return}if(typeof y!="function")throw new Error(`THREE.TSL: Node element ${ee} is not a function`);kE.set(ee,y)}const uL=ee=>ee.replace(/r|s/g,"x").replace(/g|t/g,"y").replace(/b|p/g,"z").replace(/a|q/g,"w"),cL=ee=>uL(ee).split("").sort().join(""),hL={setup(ee,y){const E=y.shift();return ee($2(E),...y)},get(ee,y,E){if(typeof y=="string"&&ee[y]===void 0){if(ee.isStackNode!==!0&&y==="assign")return(...z)=>(zP.assign(E,...z),E);if(kE.has(y)){const z=kE.get(y);return ee.isStackNode?(...ne)=>E.add(z(...ne)):(...ne)=>z(E,...ne)}else{if(y==="self")return ee;if(y.endsWith("Assign")&&kE.has(y.slice(0,y.length-6))){const z=kE.get(y.slice(0,y.length-6));return ee.isStackNode?(...ne)=>E.assign(ne[0],z(...ne)):(...ne)=>E.assign(z(E,...ne))}else{if(/^[xyzwrgbastpq]{1,4}$/.test(y)===!0)return y=uL(y),wo(new l8(E,y));if(/^set[XYZWRGBASTPQ]{1,4}$/.test(y)===!0)return y=cL(y.slice(3).toLowerCase()),z=>wo(new iQ(ee,y,wo(z)));if(/^flip[XYZWRGBASTPQ]{1,4}$/.test(y)===!0)return y=cL(y.slice(4).toLowerCase()),()=>wo(new rQ(wo(ee),y));if(y==="width"||y==="height"||y==="depth")return y==="width"?y="x":y==="height"?y="y":y==="depth"&&(y="z"),wo(new l8(ee,y));if(/^\d+$/.test(y)===!0)return wo(new RP(E,new Ry(Number(y),"uint")));if(/^get$/.test(y)===!0)return z=>wo(new oQ(E,z))}}}return Reflect.get(ee,y,E)},set(ee,y,E,z){return typeof y=="string"&&ee[y]===void 0&&(/^[xyzwrgbastpq]{1,4}$/.test(y)===!0||y==="width"||y==="height"||y==="depth"||/^\d+$/.test(y)===!0)?(z[y].assign(E),!0):Reflect.set(ee,y,E,z)}},c8=new WeakMap,dL=new WeakMap,sQ=function(ee,y=null){const E=E1(ee);if(E==="node"){let z=c8.get(ee);return z===void 0&&(z=new Proxy(ee,hL),c8.set(ee,z),c8.set(z,z)),z}else{if(y===null&&(E==="float"||E==="boolean")||E&&E!=="shader"&&E!=="string")return wo(p8(ee,y));if(E==="shader")return $i(ee)}return ee},aQ=function(ee,y=null){for(const E in ee)ee[E]=wo(ee[E],y);return ee},lQ=function(ee,y=null){const E=ee.length;for(let z=0;z<E;z++)ee[z]=wo(ee[z],y);return ee},uQ=function(ee,y=null,E=null,z=null){const ne=ve=>wo(z!==null?Object.assign(ve,z):ve);let ie,se=y,ae,he;function pe(ve){let xe;return se?xe=/[a-z]/i.test(se)?se+"()":se:xe=ee.type,ae!==void 0&&ve.length<ae?(console.error(`THREE.TSL: "${xe}" parameter length is less than minimum required.`),ve.concat(new Array(ae-ve.length).fill(0))):he!==void 0&&ve.length>he?(console.error(`THREE.TSL: "${xe}" parameter length exceeds limit.`),ve.slice(0,he)):ve}return y===null?ie=(...ve)=>ne(new ee(...UP(pe(ve)))):E!==null?(E=wo(E),ie=(...ve)=>ne(new ee(y,...UP(pe(ve)),E))):ie=(...ve)=>ne(new ee(y,...UP(pe(ve)))),ie.setParameterLength=(...ve)=>(ve.length===1?ae=he=ve[0]:ve.length===2&&([ae,he]=ve),ie),ie.setName=ve=>(se=ve,ie),ie},cQ=function(ee,...y){return wo(new ee(...UP(y)))};class hQ extends Zl{constructor(y,E){super(),this.shaderNode=y,this.inputNodes=E,this.isShaderCallNodeInternal=!0}getNodeType(y){return this.shaderNode.nodeType||this.getOutputNode(y).getNodeType(y)}getMemberType(y,E){return this.getOutputNode(y).getMemberType(y,E)}call(y){const{shaderNode:E,inputNodes:z}=this,ne=y.getNodeProperties(E),ie=E.namespace&&E.namespace===y.namespace?y.getNamespace("once"):"once";if(ne[ie])return ne[ie];let se=null;if(E.layout){let ae=dL.get(y.constructor);ae===void 0&&(ae=new WeakMap,dL.set(y.constructor,ae));let he=ae.get(E);he===void 0&&(he=wo(y.buildFunctionNode(E)),ae.set(E,he)),y.addInclude(he),se=wo(he.call(z))}else{const ae=E.jsFunc,he=z!==null||ae.length>1?ae(z||[],y):ae(y);se=wo(he)}return E.once&&(ne[ie]=se),se}setupOutput(y){return y.addStack(),y.stack.outputNode=this.call(y),y.removeStack()}getOutputNode(y){const E=y.getNodeProperties(this),z=y.getOutputNamespace();return E[z]=E[z]||this.setupOutput(y),E[z]}build(y,E=null){let z=null;const ne=y.getBuildStage(),ie=y.getNodeProperties(this),se=y.getOutputNamespace(),ae=this.getOutputNode(y);if(ne==="setup"){const he=y.getNamespace("initialized");ie[he]!==!0&&(ie[he]=!0,ie[se]=this.getOutputNode(y),ie[se].build(y)),z=ie[se]}else ne==="analyze"?ae.build(y,E):ne==="generate"&&(z=ae.build(y,E)||"");return z}}class dQ extends Zl{constructor(y,E){super(E),this.jsFunc=y,this.layout=null,this.global=!0,this.once=!1,this.namespace=null}setLayout(y){return this.layout=y,this}call(y=null){return $2(y),wo(new hQ(this,y))}setup(){return this.call()}}const fQ=[!1,!0],pQ=[0,1,2,3],gQ=[-1,-2],fL=[.5,1.5,1/3,1e-6,1e6,Math.PI,Math.PI*2,1/Math.PI,2/Math.PI,1/(Math.PI*2),Math.PI/2],h8=new Map;for(const ee of fQ)h8.set(ee,new Ry(ee));const d8=new Map;for(const ee of pQ)d8.set(ee,new Ry(ee,"uint"));const f8=new Map([...d8].map(ee=>new Ry(ee.value,"int")));for(const ee of gQ)f8.set(ee,new Ry(ee,"int"));const gB=new Map([...f8].map(ee=>new Ry(ee.value)));for(const ee of fL)gB.set(ee,new Ry(ee));for(const ee of fL)gB.set(-ee,new Ry(-ee));const mB={bool:h8,uint:d8,ints:f8,float:gB},pL=new Map([...h8,...gB]),p8=(ee,y)=>pL.has(ee)?pL.get(ee):ee.isNode===!0?ee:new Ry(ee,y),mQ=ee=>{try{return ee.getNodeType()}catch(y){return}},tp=function(ee,y=null){return(...E)=>{if((E.length===0||!["bool","float","int","uint"].includes(ee)&&E.every(ne=>typeof ne!="object"))&&(E=[n8(ee,...E)]),E.length===1&&y!==null&&y.has(E[0]))return wo(y.get(E[0]));if(E.length===1){const ne=p8(E[0],ee);return mQ(ne)===ee?wo(ne):wo(new aL(ne,ee))}const z=E.map(ne=>p8(ne));return wo(new tQ(z,ee))}},_2=ee=>typeof ee=="object"&&ee!==null?ee.value:ee,gL=ee=>ee!=null?ee.nodeType||ee.convertTo||(typeof ee=="string"?ee:null):null;function OE(ee,y){return new Proxy(new dQ(ee,y),hL)}const wo=(ee,y=null)=>sQ(ee,y),$2=(ee,y=null)=>new aQ(ee,y),UP=(ee,y=null)=>new lQ(ee,y),Do=(...ee)=>new uQ(...ee),Qs=(...ee)=>new cQ(...ee);let vQ=0;const $i=(ee,y=null)=>{let E=null;y!==null&&(typeof y=="object"?E=y.return:(typeof y=="string"?E=y:console.error("THREE.TSL: Invalid layout type."),y=null));const z=new OE(ee,E),ne=(...ie)=>{let se;$2(ie),ie[0]&&(ie[0].isNode||Object.getPrototypeOf(ie[0])!==Object.prototype)?se=[...ie]:se=ie[0];const he=z.call(se);return E==="void"&&he.toStack(),he};if(ne.shaderNode=z,ne.id=z.id,ne.getNodeType=(...ie)=>z.getNodeType(...ie),ne.getCacheKey=(...ie)=>z.getCacheKey(...ie),ne.setLayout=ie=>(z.setLayout(ie),ne),ne.once=(ie=null)=>(z.once=!0,z.namespace=ie,ne),y!==null){if(typeof y.inputs!="object"){const ie={name:"fn"+vQ++,type:E,inputs:[]};for(const se in y)se!=="return"&&ie.inputs.push({name:se,type:y[se]});y=ie}ne.setLayout(y)}return ne},eM=ee=>{zP=ee},g8=()=>zP,$l=(...ee)=>zP.If(...ee),yQ=(...ee)=>zP.Switch(...ee);function vB(ee){return zP&&zP.add(ee),ee}xo("toStack",vB);const mL=new tp("color"),Dn=new tp("float",mB.float),gi=new tp("int",mB.ints),Ea=new tp("uint",mB.uint),RA=new tp("bool",mB.bool),Qo=new tp("vec2"),Ip=new tp("ivec2"),vL=new tp("uvec2"),yL=new tp("bvec2"),Li=new tp("vec3"),AL=new tp("ivec3"),RE=new tp("uvec3"),m8=new tp("bvec3"),Da=new tp("vec4"),xL=new tp("ivec4"),wL=new tp("uvec4"),SL=new tp("bvec4"),yB=new tp("mat2"),$g=new tp("mat3"),HP=new tp("mat4"),AQ=(ee="")=>wo(new Ry(ee,"string")),xQ=ee=>wo(new Ry(ee,"ArrayBuffer"));xo("toColor",mL),xo("toFloat",Dn),xo("toInt",gi),xo("toUint",Ea),xo("toBool",RA),xo("toVec2",Qo),xo("toIVec2",Ip),xo("toUVec2",vL),xo("toBVec2",yL),xo("toVec3",Li),xo("toIVec3",AL),xo("toUVec3",RE),xo("toBVec3",m8),xo("toVec4",Da),xo("toIVec4",xL),xo("toUVec4",wL),xo("toBVec4",SL),xo("toMat2",yB),xo("toMat3",$g),xo("toMat4",HP);const PL=Do(RP).setParameterLength(2),CL=(ee,y)=>wo(new aL(wo(ee),y)),wQ=(ee,y)=>wo(new l8(wo(ee),y));xo("element",PL),xo("convert",CL);const SQ=ee=>(console.warn("THREE.TSL: append() has been renamed to Stack()."),vB(ee));xo("append",ee=>(console.warn("THREE.TSL: .append() has been renamed to .toStack()."),vB(ee)));const PQ=(...ee)=>(console.warn("THREE.TSL: tslFn() has been renamed to Fn()."),$i(...ee));class ah extends Zl{static get type(){return"PropertyNode"}constructor(y,E=null,z=!1){super(y),this.name=E,this.varying=z,this.isPropertyNode=!0,this.global=!0}getHash(y){return this.name||super.getHash(y)}generate(y){let E;return this.varying===!0?(E=y.getVaryingFromNode(this,this.name),E.needsInterpolation=!0):E=y.getVarFromNode(this,this.name),y.getPropertyName(E)}}const tS=(ee,y)=>wo(new ah(ee,y)),F0=(ee,y)=>wo(new ah(ee,y,!0)),Wc=Qs(ah,"vec4","DiffuseColor"),v8=Qs(ah,"vec3","EmissiveColor"),zA=Qs(ah,"float","Roughness"),tM=Qs(ah,"float","Metalness"),AB=Qs(ah,"float","Clearcoat"),nM=Qs(ah,"float","ClearcoatRoughness"),VP=Qs(ah,"vec3","Sheen"),xB=Qs(ah,"float","SheenRoughness"),wB=Qs(ah,"float","Iridescence"),y8=Qs(ah,"float","IridescenceIOR"),A8=Qs(ah,"float","IridescenceThickness"),SB=Qs(ah,"float","AlphaT"),nS=Qs(ah,"float","Anisotropy"),iM=Qs(ah,"vec3","AnisotropyT"),jP=Qs(ah,"vec3","AnisotropyB"),qm=Qs(ah,"color","SpecularColor"),rM=Qs(ah,"float","SpecularF90"),PB=Qs(ah,"float","Shininess"),zE=Qs(ah,"vec4","Output"),GP=Qs(ah,"float","dashSize"),oM=Qs(ah,"float","gapSize"),CQ=Qs(ah,"float","pointWidth"),sM=Qs(ah,"float","IOR"),CB=Qs(ah,"float","Transmission"),x8=Qs(ah,"float","Thickness"),w8=Qs(ah,"float","AttenuationDistance"),S8=Qs(ah,"color","AttenuationColor"),P8=Qs(ah,"float","Dispersion");class EL extends Zl{static get type(){return"UniformGroupNode"}constructor(y,E=!1,z=1){super("string"),this.name=y,this.shared=E,this.order=z,this.isUniformGroup=!0}serialize(y){super.serialize(y),y.name=this.name,y.version=this.version,y.shared=this.shared}deserialize(y){super.deserialize(y),this.name=y.name,this.version=y.version,this.shared=y.shared}}const bL=ee=>new EL(ee),EB=(ee,y=0)=>new EL(ee,!0,y),ML=EB("frame"),Yl=EB("render"),C8=bL("object");class aM extends u8{static get type(){return"UniformNode"}constructor(y,E=null){super(y,E),this.isUniformNode=!0,this.name="",this.groupNode=C8}label(y){return this.name=y,this}setGroup(y){return this.groupNode=y,this}getGroup(){return this.groupNode}getUniformHash(y){return this.getHash(y)}onUpdate(y,E){const z=this.getSelf();return y=y.bind(z),super.onUpdate(ne=>{const ie=y(ne,z);ie!==void 0&&(this.value=ie)},E)}generate(y,E){const z=this.getNodeType(y),ne=this.getUniformHash(y);let ie=y.getNodeFromHash(ne);ie===void 0&&(y.setHashNode(this,ne),ie=this);const se=ie.getInputType(y),ae=y.getUniformFromNode(ie,se,y.shaderStage,this.name||y.context.label),he=y.getPropertyName(ae);return y.context.label!==void 0&&delete y.context.label,y.format(he,z,E)}}const vl=(ee,y)=>{const E=gL(y||ee),z=ee&&ee.isNode===!0?ee.node&&ee.node.value||ee.value:ee;return wo(new aM(z,E))};class BL extends gf{static get type(){return"ArrayNode"}constructor(y,E,z=null){super(y),this.count=E,this.values=z,this.isArrayNode=!0}getNodeType(y){return this.nodeType===null&&(this.nodeType=this.values[0].getNodeType(y)),this.nodeType}getElementType(y){return this.getNodeType(y)}generate(y){const E=this.getNodeType(y);return y.generateArray(E,this.count,this.values)}}const TL=(...ee)=>{let y;if(ee.length===1){const E=ee[0];y=new BL(null,E.length,E)}else{const E=ee[0],z=ee[1];y=new BL(E,z)}return wo(y)};xo("toArray",(ee,y)=>TL(Array(y).fill(ee)));class EQ extends gf{static get type(){return"AssignNode"}constructor(y,E){super(),this.targetNode=y,this.sourceNode=E,this.isAssignNode=!0}hasDependencies(){return!1}getNodeType(y,E){return E!=="void"?this.targetNode.getNodeType(y):"void"}needsSplitAssign(y){const{targetNode:E}=this;if(y.isAvailable("swizzleAssign")===!1&&E.isSplitNode&&E.components.length>1){const z=y.getTypeLength(E.node.getNodeType(y));return OP.join("").slice(0,z)!==E.components}return!1}setup(y){const{targetNode:E,sourceNode:z}=this,ne=y.getNodeProperties(this);ne.sourceNode=z,ne.targetNode=E.context({assign:!0})}generate(y,E){const{targetNode:z,sourceNode:ne}=y.getNodeProperties(this),ie=this.needsSplitAssign(y),se=z.getNodeType(y),ae=z.build(y),he=ne.build(y,se),pe=ne.getNodeType(y),ve=y.getDataFromNode(this);let xe;if(ve.initialized===!0)E!=="void"&&(xe=ae);else if(ie){const Se=y.getVarFromNode(this,null,se),Be=y.getPropertyName(Se);y.addLineFlowCode(`${Be} = ${he}`,this);const De=z.node,Oe=De.node.context({assign:!0}).build(y);for(let Le=0;Le<De.components.length;Le++){const Je=De.components[Le];y.addLineFlowCode(`${Oe}.${Je} = ${Be}[ ${Le} ]`,this)}E!=="void"&&(xe=ae)}else xe=`${ae} = ${he}`,(E==="void"||pe==="void")&&(y.addLineFlowCode(xe,this),E!=="void"&&(xe=ae));return ve.initialized=!0,y.format(xe,se,E)}}const DL=Do(EQ).setParameterLength(2);xo("assign",DL);class bQ extends gf{static get type(){return"FunctionCallNode"}constructor(y=null,E={}){super(),this.functionNode=y,this.parameters=E}setParameters(y){return this.parameters=y,this}getParameters(){return this.parameters}getNodeType(y){return this.functionNode.getNodeType(y)}generate(y){const E=[],z=this.functionNode,ne=z.getInputs(y),ie=this.parameters,se=(he,pe)=>{const ve=pe.type,xe=ve==="pointer";let Se;return xe?Se="&"+he.build(y):Se=he.build(y,ve),Se};if(Array.isArray(ie)){if(ie.length>ne.length)console.error("THREE.TSL: The number of provided parameters exceeds the expected number of inputs in 'Fn()'."),ie.length=ne.length;else if(ie.length<ne.length)for(console.error("THREE.TSL: The number of provided parameters is less than the expected number of inputs in 'Fn()'.");ie.length<ne.length;)ie.push(Dn(0));for(let he=0;he<ie.length;he++)E.push(se(ie[he],ne[he]))}else for(const he of ne){const pe=ie[he.name];pe!==void 0?E.push(se(pe,he)):(console.error(`THREE.TSL: Input '${he.name}' not found in 'Fn()'.`),E.push(se(Dn(0),he)))}return`${z.build(y,"property")}( ${E.join(", ")} )`}}const NL=(ee,...y)=>(y=y.length>1||y[0]&&y[0].isNode===!0?UP(y):$2(y[0]),wo(new bQ(wo(ee),y)));xo("call",NL);const MQ={"==":"equal","!=":"notEqual","<":"lessThan",">":"greaterThan","<=":"lessThanEqual",">=":"greaterThanEqual","%":"mod"};class Od extends gf{static get type(){return"OperatorNode"}constructor(y,E,z,...ne){if(super(),ne.length>0){let ie=new Od(y,E,z);for(let se=0;se<ne.length-1;se++)ie=new Od(y,ie,ne[se]);E=ie,z=ne[ne.length-1]}this.op=y,this.aNode=E,this.bNode=z,this.isOperatorNode=!0}getOperatorMethod(y,E){return y.getMethod(MQ[this.op],E)}getNodeType(y){const E=this.op,z=this.aNode,ne=this.bNode,ie=z.getNodeType(y),se=ne?ne.getNodeType(y):null;if(ie==="void"||se==="void")return"void";if(E==="%")return ie;if(E==="~"||E==="&"||E==="|"||E==="^"||E===">>"||E==="<<")return y.getIntegerType(ie);if(E==="!"||E==="&&"||E==="||"||E==="^^")return"bool";if(E==="=="||E==="!="||E==="<"||E===">"||E==="<="||E===">="){const ae=Math.max(y.getTypeLength(ie),y.getTypeLength(se));return ae>1?`bvec${ae}`:"bool"}else{if(y.isMatrix(ie)){if(se==="float")return ie;if(y.isVector(se))return y.getVectorFromMatrix(ie);if(y.isMatrix(se))return ie}else if(y.isMatrix(se)){if(ie==="float")return se;if(y.isVector(ie))return y.getVectorFromMatrix(se)}return y.getTypeLength(se)>y.getTypeLength(ie)?se:ie}}generate(y,E){const z=this.op,{aNode:ne,bNode:ie}=this,se=this.getNodeType(y);let ae=null,he=null;se!=="void"?(ae=ne.getNodeType(y),he=ie?ie.getNodeType(y):null,z==="<"||z===">"||z==="<="||z===">="||z==="=="||z==="!="?y.isVector(ae)?he=ae:y.isVector(he)?ae=he:ae!==he&&(ae=he="float"):z===">>"||z==="<<"?(ae=se,he=y.changeComponentType(he,"uint")):z==="%"?(ae=se,he=y.isInteger(ae)&&y.isInteger(he)?he:ae):y.isMatrix(ae)?he==="float"?he="float":y.isVector(he)?he=y.getVectorFromMatrix(ae):y.isMatrix(he)||(ae=he=se):y.isMatrix(he)?ae==="float"?ae="float":y.isVector(ae)?ae=y.getVectorFromMatrix(he):ae=he=se:ae=he=se):ae=he=se;const pe=ne.build(y,ae),ve=ie?ie.build(y,he):null,xe=y.getFunctionOperator(z);if(E!=="void"){const Se=y.renderer.coordinateSystem===xp;if(z==="=="||z==="!="||z==="<"||z===">"||z==="<="||z===">=")return Se?y.isVector(ae)?y.format(`${this.getOperatorMethod(y,E)}( ${pe}, ${ve} )`,se,E):y.format(`( ${pe} ${z} ${ve} )`,se,E):y.format(`( ${pe} ${z} ${ve} )`,se,E);if(z==="%")return y.isInteger(he)?y.format(`( ${pe} % ${ve} )`,se,E):y.format(`${this.getOperatorMethod(y,se)}( ${pe}, ${ve} )`,se,E);if(z==="!"||z==="~")return y.format(`(${z}${pe})`,ae,E);if(xe)return y.format(`${xe}( ${pe}, ${ve} )`,se,E);if(y.isMatrix(ae)&&he==="float")return y.format(`( ${ve} ${z} ${pe} )`,se,E);if(ae==="float"&&y.isMatrix(he))return y.format(`${pe} ${z} ${ve}`,se,E);{let Be=`( ${pe} ${z} ${ve} )`;return!Se&&se==="bool"&&y.isVector(ae)&&y.isVector(he)&&(Be=`all${Be}`),y.format(Be,se,E)}}else if(ae!=="void")return xe?y.format(`${xe}( ${pe}, ${ve} )`,se,E):y.isMatrix(ae)&&he==="float"?y.format(`${ve} ${z} ${pe}`,se,E):y.format(`${pe} ${z} ${ve}`,se,E)}serialize(y){super.serialize(y),y.op=this.op}deserialize(y){super.deserialize(y),this.op=y.op}}const kf=Do(Od,"+").setParameterLength(2,1/0).setName("add"),Pc=Do(Od,"-").setParameterLength(2,1/0).setName("sub"),Lu=Do(Od,"*").setParameterLength(2,1/0).setName("mul"),xv=Do(Od,"/").setParameterLength(2,1/0).setName("div"),lM=Do(Od,"%").setParameterLength(2).setName("mod"),E8=Do(Od,"==").setParameterLength(2).setName("equal"),FL=Do(Od,"!=").setParameterLength(2).setName("notEqual"),LL=Do(Od,"<").setParameterLength(2).setName("lessThan"),b8=Do(Od,">").setParameterLength(2).setName("greaterThan"),IL=Do(Od,"<=").setParameterLength(2).setName("lessThanEqual"),kL=Do(Od,">=").setParameterLength(2).setName("greaterThanEqual"),OL=Do(Od,"&&").setParameterLength(2,1/0).setName("and"),RL=Do(Od,"||").setParameterLength(2,1/0).setName("or"),zL=Do(Od,"!").setParameterLength(1).setName("not"),UL=Do(Od,"^^").setParameterLength(2).setName("xor"),HL=Do(Od,"&").setParameterLength(2).setName("bitAnd"),VL=Do(Od,"~").setParameterLength(2).setName("bitNot"),jL=Do(Od,"|").setParameterLength(2).setName("bitOr"),GL=Do(Od,"^").setParameterLength(2).setName("bitXor"),XL=Do(Od,"<<").setParameterLength(2).setName("shiftLeft"),WL=Do(Od,">>").setParameterLength(2).setName("shiftRight"),QL=$i(([ee])=>(ee.addAssign(1),ee)),ZL=$i(([ee])=>(ee.subAssign(1),ee)),YL=$i(([ee])=>{const y=gi(ee).toConst();return ee.addAssign(1),y}),KL=$i(([ee])=>{const y=gi(ee).toConst();return ee.subAssign(1),y});xo("add",kf),xo("sub",Pc),xo("mul",Lu),xo("div",xv),xo("mod",lM),xo("equal",E8),xo("notEqual",FL),xo("lessThan",LL),xo("greaterThan",b8),xo("lessThanEqual",IL),xo("greaterThanEqual",kL),xo("and",OL),xo("or",RL),xo("not",zL),xo("xor",UL),xo("bitAnd",HL),xo("bitNot",VL),xo("bitOr",jL),xo("bitXor",GL),xo("shiftLeft",XL),xo("shiftRight",WL),xo("incrementBefore",QL),xo("decrementBefore",ZL),xo("increment",YL),xo("decrement",KL);const JL=(ee,y)=>(console.warn('THREE.TSL: "remainder()" is deprecated. Use "mod( int( ... ) )" instead.'),lM(ee,y)),qL=(ee,y)=>(console.warn('THREE.TSL: "modInt()" is deprecated. Use "mod( int( ... ) )" instead.'),lM(gi(ee),gi(y)));xo("remainder",JL),xo("modInt",qL);class wr extends gf{static get type(){return"MathNode"}constructor(y,E,z=null,ne=null){if(super(),(y===wr.MAX||y===wr.MIN)&&arguments.length>3){let ie=new wr(y,E,z);for(let se=2;se<arguments.length-1;se++)ie=new wr(y,ie,arguments[se]);E=ie,z=arguments[arguments.length-1],ne=null}this.method=y,this.aNode=E,this.bNode=z,this.cNode=ne,this.isMathNode=!0}getInputType(y){const E=this.aNode.getNodeType(y),z=this.bNode?this.bNode.getNodeType(y):null,ne=this.cNode?this.cNode.getNodeType(y):null,ie=y.isMatrix(E)?0:y.getTypeLength(E),se=y.isMatrix(z)?0:y.getTypeLength(z),ae=y.isMatrix(ne)?0:y.getTypeLength(ne);return ie>se&&ie>ae?E:se>ae?z:ae>ie?ne:E}getNodeType(y){const E=this.method;return E===wr.LENGTH||E===wr.DISTANCE||E===wr.DOT?"float":E===wr.CROSS?"vec3":E===wr.ALL||E===wr.ANY?"bool":E===wr.EQUALS?y.changeComponentType(this.aNode.getNodeType(y),"bool"):this.getInputType(y)}setup(y){const{aNode:E,bNode:z,method:ne}=this;let ie=null;if(ne===wr.ONE_MINUS)ie=Pc(1,E);else if(ne===wr.RECIPROCAL)ie=xv(1,E);else if(ne===wr.DIFFERENCE)ie=Kh(Pc(E,z));else if(ne===wr.TRANSFORM_DIRECTION){let se=E,ae=z;y.isMatrix(se.getNodeType(y))?ae=Da(Li(ae),0):se=Da(Li(se),0);const he=Lu(se,ae).xyz;ie=b1(he)}return ie!==null?ie:super.setup(y)}generate(y,E){if(y.getNodeProperties(this).outputNode)return super.generate(y,E);let ne=this.method;const ie=this.getNodeType(y),se=this.getInputType(y),ae=this.aNode,he=this.bNode,pe=this.cNode,ve=y.renderer.coordinateSystem;if(ne===wr.NEGATE)return y.format("( - "+ae.build(y,se)+" )",ie,E);{const xe=[];return ne===wr.CROSS?xe.push(ae.build(y,ie),he.build(y,ie)):ve===xp&&ne===wr.STEP?xe.push(ae.build(y,y.getTypeLength(ae.getNodeType(y))===1?"float":se),he.build(y,se)):ve===xp&&(ne===wr.MIN||ne===wr.MAX)?xe.push(ae.build(y,se),he.build(y,y.getTypeLength(he.getNodeType(y))===1?"float":se)):ne===wr.REFRACT?xe.push(ae.build(y,se),he.build(y,se),pe.build(y,"float")):ne===wr.MIX?xe.push(ae.build(y,se),he.build(y,se),pe.build(y,y.getTypeLength(pe.getNodeType(y))===1?"float":se)):(ve===zg&&ne===wr.ATAN&&he!==null&&(ne="atan2"),y.shaderStage!=="fragment"&&(ne===wr.DFDX||ne===wr.DFDY)&&(console.warn(`THREE.TSL: '${ne}' is not supported in the ${y.shaderStage} stage.`),ne="/*"+ne+"*/"),xe.push(ae.build(y,se)),he!==null&&xe.push(he.build(y,se)),pe!==null&&xe.push(pe.build(y,se))),y.format(`${y.getMethod(ne,ie)}( ${xe.join(", ")} )`,ie,E)}}serialize(y){super.serialize(y),y.method=this.method}deserialize(y){super.deserialize(y),this.method=y.method}}wr.ALL="all",wr.ANY="any",wr.RADIANS="radians",wr.DEGREES="degrees",wr.EXP="exp",wr.EXP2="exp2",wr.LOG="log",wr.LOG2="log2",wr.SQRT="sqrt",wr.INVERSE_SQRT="inversesqrt",wr.FLOOR="floor",wr.CEIL="ceil",wr.NORMALIZE="normalize",wr.FRACT="fract",wr.SIN="sin",wr.COS="cos",wr.TAN="tan",wr.ASIN="asin",wr.ACOS="acos",wr.ATAN="atan",wr.ABS="abs",wr.SIGN="sign",wr.LENGTH="length",wr.NEGATE="negate",wr.ONE_MINUS="oneMinus",wr.DFDX="dFdx",wr.DFDY="dFdy",wr.ROUND="round",wr.RECIPROCAL="reciprocal",wr.TRUNC="trunc",wr.FWIDTH="fwidth",wr.TRANSPOSE="transpose",wr.BITCAST="bitcast",wr.EQUALS="equals",wr.MIN="min",wr.MAX="max",wr.STEP="step",wr.REFLECT="reflect",wr.DISTANCE="distance",wr.DIFFERENCE="difference",wr.DOT="dot",wr.CROSS="cross",wr.POW="pow",wr.TRANSFORM_DIRECTION="transformDirection",wr.MIX="mix",wr.CLAMP="clamp",wr.REFRACT="refract",wr.SMOOTHSTEP="smoothstep",wr.FACEFORWARD="faceforward";const _L=Dn(1e-6),BQ=Dn(1e6),bB=Dn(Math.PI),TQ=Dn(Math.PI*2),$L=Do(wr,wr.ALL).setParameterLength(1),e4=Do(wr,wr.ANY).setParameterLength(1),t4=Do(wr,wr.RADIANS).setParameterLength(1),n4=Do(wr,wr.DEGREES).setParameterLength(1),M8=Do(wr,wr.EXP).setParameterLength(1),UE=Do(wr,wr.EXP2).setParameterLength(1),MB=Do(wr,wr.LOG).setParameterLength(1),UA=Do(wr,wr.LOG2).setParameterLength(1),HA=Do(wr,wr.SQRT).setParameterLength(1),B8=Do(wr,wr.INVERSE_SQRT).setParameterLength(1),VA=Do(wr,wr.FLOOR).setParameterLength(1),BB=Do(wr,wr.CEIL).setParameterLength(1),b1=Do(wr,wr.NORMALIZE).setParameterLength(1),M1=Do(wr,wr.FRACT).setParameterLength(1),L0=Do(wr,wr.SIN).setParameterLength(1),B1=Do(wr,wr.COS).setParameterLength(1),i4=Do(wr,wr.TAN).setParameterLength(1),r4=Do(wr,wr.ASIN).setParameterLength(1),T8=Do(wr,wr.ACOS).setParameterLength(1),D8=Do(wr,wr.ATAN).setParameterLength(1,2),Kh=Do(wr,wr.ABS).setParameterLength(1),uM=Do(wr,wr.SIGN).setParameterLength(1),jA=Do(wr,wr.LENGTH).setParameterLength(1),o4=Do(wr,wr.NEGATE).setParameterLength(1),s4=Do(wr,wr.ONE_MINUS).setParameterLength(1),N8=Do(wr,wr.DFDX).setParameterLength(1),F8=Do(wr,wr.DFDY).setParameterLength(1),a4=Do(wr,wr.ROUND).setParameterLength(1),l4=Do(wr,wr.RECIPROCAL).setParameterLength(1),L8=Do(wr,wr.TRUNC).setParameterLength(1),u4=Do(wr,wr.FWIDTH).setParameterLength(1),c4=Do(wr,wr.TRANSPOSE).setParameterLength(1),DQ=Do(wr,wr.BITCAST).setParameterLength(2),h4=(ee,y)=>(console.warn('THREE.TSL: "equals" is deprecated. Use "equal" inside a vector instead, like: "bvec*( equal( ... ) )"'),E8(ee,y)),_m=Do(wr,wr.MIN).setParameterLength(2,1/0),qd=Do(wr,wr.MAX).setParameterLength(2,1/0),TB=Do(wr,wr.STEP).setParameterLength(2),d4=Do(wr,wr.REFLECT).setParameterLength(2),f4=Do(wr,wr.DISTANCE).setParameterLength(2),p4=Do(wr,wr.DIFFERENCE).setParameterLength(2),iS=Do(wr,wr.DOT).setParameterLength(2),DB=Do(wr,wr.CROSS).setParameterLength(2),zy=Do(wr,wr.POW).setParameterLength(2),I8=Do(wr,wr.POW,2).setParameterLength(1),g4=Do(wr,wr.POW,3).setParameterLength(1),m4=Do(wr,wr.POW,4).setParameterLength(1),v4=Do(wr,wr.TRANSFORM_DIRECTION).setParameterLength(2),y4=ee=>Lu(uM(ee),zy(Kh(ee),1/3)),k8=ee=>iS(ee,ee),Qc=Do(wr,wr.MIX).setParameterLength(3),GA=(ee,y=0,E=1)=>wo(new wr(wr.CLAMP,wo(ee),wo(y),wo(E))),O8=ee=>GA(ee),R8=Do(wr,wr.REFRACT).setParameterLength(3),wv=Do(wr,wr.SMOOTHSTEP).setParameterLength(3),z8=Do(wr,wr.FACEFORWARD).setParameterLength(3),A4=$i(([ee])=>{const z=43758.5453,ne=iS(ee.xy,Qo(12.9898,78.233)),ie=lM(ne,bB);return M1(L0(ie).mul(z))}),x4=(ee,y,E)=>Qc(y,E,ee),w4=(ee,y,E)=>wv(y,E,ee),S4=(ee,y)=>(console.warn('THREE.TSL: "atan2" is overloaded. Use "atan" instead.'),D8(ee,y)),NQ=z8,FQ=B8;xo("all",$L),xo("any",e4),xo("equals",h4),xo("radians",t4),xo("degrees",n4),xo("exp",M8),xo("exp2",UE),xo("log",MB),xo("log2",UA),xo("sqrt",HA),xo("inverseSqrt",B8),xo("floor",VA),xo("ceil",BB),xo("normalize",b1),xo("fract",M1),xo("sin",L0),xo("cos",B1),xo("tan",i4),xo("asin",r4),xo("acos",T8),xo("atan",D8),xo("abs",Kh),xo("sign",uM),xo("length",jA),xo("lengthSq",k8),xo("negate",o4),xo("oneMinus",s4),xo("dFdx",N8),xo("dFdy",F8),xo("round",a4),xo("reciprocal",l4),xo("trunc",L8),xo("fwidth",u4),xo("atan2",S4),xo("min",_m),xo("max",qd),xo("step",TB),xo("reflect",d4),xo("distance",f4),xo("dot",iS),xo("cross",DB),xo("pow",zy),xo("pow2",I8),xo("pow3",g4),xo("pow4",m4),xo("transformDirection",v4),xo("mix",x4),xo("clamp",GA),xo("refract",R8),xo("smoothstep",w4),xo("faceForward",z8),xo("difference",p4),xo("saturate",O8),xo("cbrt",y4),xo("transpose",c4),xo("rand",A4);class LQ extends Zl{static get type(){return"ConditionalNode"}constructor(y,E,z=null){super(),this.condNode=y,this.ifNode=E,this.elseNode=z}getNodeType(y){const{ifNode:E,elseNode:z}=y.getNodeProperties(this);if(E===void 0)return this.setup(y),this.getNodeType(y);const ne=E.getNodeType(y);if(z!==null){const ie=z.getNodeType(y);if(y.getTypeLength(ie)>y.getTypeLength(ne))return ie}return ne}setup(y){const E=this.condNode.cache(),z=this.ifNode.cache(),ne=this.elseNode?this.elseNode.cache():null,ie=y.context.nodeBlock;y.getDataFromNode(z).parentNodeBlock=ie,ne!==null&&(y.getDataFromNode(ne).parentNodeBlock=ie);const se=y.getNodeProperties(this);se.condNode=E,se.ifNode=z.context({nodeBlock:z}),se.elseNode=ne?ne.context({nodeBlock:ne}):null}generate(y,E){const z=this.getNodeType(y),ne=y.getDataFromNode(this);if(ne.nodeProperty!==void 0)return ne.nodeProperty;const{condNode:ie,ifNode:se,elseNode:ae}=y.getNodeProperties(this),he=y.currentFunctionNode,pe=E!=="void",ve=pe?tS(z).build(y):"";ne.nodeProperty=ve;const xe=ie.build(y,"bool");y.addFlowCode(`
|
|
${y.tab}if ( ${xe} ) {
|
|
|
|
`).addFlowTab();let Se=se.build(y,z);if(Se&&(pe?Se=ve+" = "+Se+";":(Se="return "+Se+";",he===null&&(console.warn("THREE.TSL: Return statement used in an inline 'Fn()'. Define a layout struct to allow return values."),Se="// "+Se))),y.removeFlowTab().addFlowCode(y.tab+" "+Se+`
|
|
|
|
`+y.tab+"}"),ae!==null){y.addFlowCode(` else {
|
|
|
|
`).addFlowTab();let Be=ae.build(y,z);Be&&(pe?Be=ve+" = "+Be+";":(Be="return "+Be+";",he===null&&(console.warn("THREE.TSL: Return statement used in an inline 'Fn()'. Define a layout struct to allow return values."),Be="// "+Be))),y.removeFlowTab().addFlowCode(y.tab+" "+Be+`
|
|
|
|
`+y.tab+`}
|
|
|
|
`)}else y.addFlowCode(`
|
|
|
|
`);return y.format(ve,z,E)}}const kp=Do(LQ).setParameterLength(2,3);xo("select",kp);const P4=(...ee)=>(console.warn("THREE.TSL: cond() has been renamed to select()."),kp(...ee));xo("cond",P4);class C4 extends Zl{static get type(){return"ContextNode"}constructor(y,E={}){super(),this.isContextNode=!0,this.node=y,this.value=E}getScope(){return this.node.getScope()}getNodeType(y){return this.node.getNodeType(y)}analyze(y){const E=y.getContext();y.setContext(Hd(Hd({},y.context),this.value)),this.node.build(y),y.setContext(E)}setup(y){const E=y.getContext();y.setContext(Hd(Hd({},y.context),this.value)),this.node.build(y),y.setContext(E)}generate(y,E){const z=y.getContext();y.setContext(Hd(Hd({},y.context),this.value));const ne=this.node.build(y,E);return y.setContext(z),ne}}const NB=Do(C4).setParameterLength(1,2),E4=(ee,y)=>NB(ee,{label:y});xo("context",NB),xo("label",E4);class FB extends Zl{static get type(){return"VarNode"}constructor(y,E=null,z=!1){super(),this.node=y,this.name=E,this.global=!0,this.isVarNode=!0,this.readOnly=z,this.parents=!0}getMemberType(y,E){return this.node.getMemberType(y,E)}getElementType(y){return this.node.getElementType(y)}getNodeType(y){return this.node.getNodeType(y)}generate(y){const{node:E,name:z,readOnly:ne}=this,{renderer:ie}=y,se=ie.backend.isWebGPUBackend===!0;let ae=!1,he=!1;ne&&(ae=y.isDeterministic(E),he=se?ne:ae);const pe=y.getVectorType(this.getNodeType(y)),ve=E.build(y,pe),xe=y.getVarFromNode(this,z,pe,void 0,he),Se=y.getPropertyName(xe);let Be=Se;if(he)if(se)Be=ae?`const ${Se}`:`let ${Se}`;else{const De=y.getArrayCount(E);Be=`const ${y.getVar(xe.type,Se,De)}`}return y.addLineFlowCode(`${Be} = ${ve}`,this),Se}}const U8=Do(FB),b4=(ee,y=null)=>U8(ee,y).toStack(),M4=(ee,y=null)=>U8(ee,y,!0).toStack();xo("toVar",b4),xo("toConst",M4);const B4=ee=>(console.warn('TSL: "temp( node )" is deprecated. Use "Var( node )" or "node.toVar()" instead.'),U8(ee));xo("temp",B4);class IQ extends Zl{static get type(){return"VaryingNode"}constructor(y,E=null){super(),this.node=y,this.name=E,this.isVaryingNode=!0,this.interpolationType=null,this.interpolationSampling=null,this.global=!0}setInterpolation(y,E=null){return this.interpolationType=y,this.interpolationSampling=E,this}getHash(y){return this.name||super.getHash(y)}getNodeType(y){return this.node.getNodeType(y)}setupVarying(y){const E=y.getNodeProperties(this);let z=E.varying;if(z===void 0){const ne=this.name,ie=this.getNodeType(y),se=this.interpolationType,ae=this.interpolationSampling;E.varying=z=y.getVaryingFromNode(this,ne,ie,se,ae),E.node=this.node}return z.needsInterpolation||(z.needsInterpolation=y.shaderStage==="fragment"),z}setup(y){this.setupVarying(y),y.flowNodeFromShaderStage(q2.VERTEX,this.node)}analyze(y){this.setupVarying(y),y.flowNodeFromShaderStage(q2.VERTEX,this.node)}generate(y){const E=y.getNodeProperties(this),z=this.setupVarying(y);if(E.propertyName===void 0){const ne=this.getNodeType(y),ie=y.getPropertyName(z,q2.VERTEX);y.flowNodeFromShaderStage(q2.VERTEX,this.node,ne,ie),E.propertyName=ie}return y.getPropertyName(z)}}const I0=Do(IQ).setParameterLength(1,2),T4=ee=>I0(ee);xo("toVarying",I0),xo("toVertexStage",T4),xo("varying",(...ee)=>(console.warn("THREE.TSL: .varying() has been renamed to .toVarying()."),I0(...ee))),xo("vertexStage",(...ee)=>(console.warn("THREE.TSL: .vertexStage() has been renamed to .toVertexStage()."),I0(...ee)));const D4=$i(([ee])=>{const y=ee.mul(.9478672986).add(.0521327014).pow(2.4),E=ee.mul(.0773993808),z=ee.lessThanEqual(.04045);return Qc(y,E,z)}).setLayout({name:"sRGBTransferEOTF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),N4=$i(([ee])=>{const y=ee.pow(.41666).mul(1.055).sub(.055),E=ee.mul(12.92),z=ee.lessThanEqual(.0031308);return Qc(y,E,z)}).setLayout({name:"sRGBTransferOETF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),H8="WorkingColorSpace",kQ="OutputColorSpace";class V8 extends gf{static get type(){return"ColorSpaceNode"}constructor(y,E,z){super("vec4"),this.colorNode=y,this.source=E,this.target=z}resolveColorSpace(y,E){return E===H8?su.workingColorSpace:E===kQ?y.context.outputColorSpace||y.renderer.outputColorSpace:E}setup(y){const{colorNode:E}=this,z=this.resolveColorSpace(y,this.source),ne=this.resolveColorSpace(y,this.target);let ie=E;return su.enabled===!1||z===ne||!z||!ne||(su.getTransfer(z)===Ua&&(ie=Da(D4(ie.rgb),ie.a)),su.getPrimaries(z)!==su.getPrimaries(ne)&&(ie=Da($g(su._getMatrix(new nu,z,ne)).mul(ie.rgb),ie.a)),su.getTransfer(ne)===Ua&&(ie=Da(N4(ie.rgb),ie.a))),ie}}const F4=(ee,y)=>wo(new V8(wo(ee),H8,y)),LB=(ee,y)=>wo(new V8(wo(ee),y,H8)),OQ=(ee,y,E)=>wo(new V8(wo(ee),y,E));xo("workingToColorSpace",F4),xo("colorSpaceToWorking",LB);let RQ=class extends RP{static get type(){return"ReferenceElementNode"}constructor(y,E){super(y,E),this.referenceNode=y,this.isReferenceElementNode=!0}getNodeType(){return this.referenceNode.uniformType}generate(y){const E=super.generate(y),z=this.referenceNode.getNodeType(),ne=this.getNodeType();return y.format(E,z,ne)}};class L4 extends Zl{static get type(){return"ReferenceBaseNode"}constructor(y,E,z=null,ne=null){super(),this.property=y,this.uniformType=E,this.object=z,this.count=ne,this.properties=y.split("."),this.reference=z,this.node=null,this.group=null,this.updateType=Uu.OBJECT}setGroup(y){return this.group=y,this}element(y){return wo(new RQ(this,wo(y)))}setNodeType(y){const E=vl(null,y).getSelf();this.group!==null&&E.setGroup(this.group),this.node=E}getNodeType(y){return this.node===null&&(this.updateReference(y),this.updateValue()),this.node.getNodeType(y)}getValueFromReference(y=this.reference){const{properties:E}=this;let z=y[E[0]];for(let ne=1;ne<E.length;ne++)z=z[E[ne]];return z}updateReference(y){return this.reference=this.object!==null?this.object:y.object,this.reference}setup(){return this.updateValue(),this.node}update(){this.updateValue()}updateValue(){this.node===null&&this.setNodeType(this.uniformType);const y=this.getValueFromReference();Array.isArray(y)?this.node.array=y:this.node.value=y}}const zQ=(ee,y,E)=>wo(new L4(ee,y,E));class UQ extends L4{static get type(){return"RendererReferenceNode"}constructor(y,E,z=null){super(y,E,z),this.renderer=z,this.setGroup(Yl)}updateReference(y){return this.reference=this.renderer!==null?this.renderer:y.renderer,this.reference}}const I4=(ee,y,E=null)=>wo(new UQ(ee,y,E));class HQ extends gf{static get type(){return"ToneMappingNode"}constructor(y,E=O4,z=null){super("vec3"),this.toneMapping=y,this.exposureNode=E,this.colorNode=z}customCacheKey(){return Y2(this.toneMapping)}setup(y){const E=this.colorNode||y.context.color,z=this.toneMapping;if(z===bc)return E;let ne=null;const ie=y.renderer.library.getToneMappingFunction(z);return ie!==null?ne=Da(ie(E.rgb,this.exposureNode),E.a):(console.error("ToneMappingNode: Unsupported Tone Mapping configuration.",z),ne=E),ne}}const k4=(ee,y,E)=>wo(new HQ(ee,wo(y),wo(E))),O4=I4("toneMappingExposure","float");xo("toneMapping",(ee,y,E)=>k4(y,E,ee));class VQ extends u8{static get type(){return"BufferAttributeNode"}constructor(y,E=null,z=0,ne=0){super(y,E),this.isBufferNode=!0,this.bufferType=E,this.bufferStride=z,this.bufferOffset=ne,this.usage=Mx,this.instanced=!1,this.attribute=null,this.global=!0,y&&y.isBufferAttribute===!0&&(this.attribute=y,this.usage=y.usage,this.instanced=y.isInstancedBufferAttribute)}getHash(y){if(this.bufferStride===0&&this.bufferOffset===0){let E=y.globalCache.getData(this.value);return E===void 0&&(E={node:this},y.globalCache.setData(this.value,E)),E.node.uuid}return this.uuid}getNodeType(y){return this.bufferType===null&&(this.bufferType=y.getTypeFromAttribute(this.attribute)),this.bufferType}setup(y){if(this.attribute!==null)return;const E=this.getNodeType(y),z=this.value,ne=y.getTypeLength(E),ie=this.bufferStride||ne,se=this.bufferOffset,ae=z.isInterleavedBuffer===!0?z:new Zh(z,ie),he=new wh(ae,ne,se);ae.setUsage(this.usage),this.attribute=he,this.attribute.isInstancedBufferAttribute=this.instanced}generate(y){const E=this.getNodeType(y),z=y.getBufferAttributeFromNode(this,E),ne=y.getPropertyName(z);let ie=null;return y.shaderStage==="vertex"||y.shaderStage==="compute"?(this.name=ne,ie=ne):ie=I0(this).build(y,E),ie}getInputType(){return"bufferAttribute"}setUsage(y){return this.usage=y,this.attribute&&this.attribute.isBufferAttribute===!0&&(this.attribute.usage=y),this}setInstanced(y){return this.instanced=y,this}}const cM=(ee,y=null,E=0,z=0)=>wo(new VQ(ee,y,E,z)),R4=(ee,y=null,E=0,z=0)=>cM(ee,y,E,z).setUsage(oy),IB=(ee,y=null,E=0,z=0)=>cM(ee,y,E,z).setInstanced(!0),j8=(ee,y=null,E=0,z=0)=>R4(ee,y,E,z).setInstanced(!0);xo("toAttribute",ee=>cM(ee.value));class jQ extends Zl{static get type(){return"ComputeNode"}constructor(y,E,z=[64]){super("void"),this.isComputeNode=!0,this.computeNode=y,this.count=E,this.workgroupSize=z,this.dispatchCount=0,this.version=1,this.name="",this.updateBeforeType=Uu.OBJECT,this.onInitFunction=null,this.updateDispatchCount()}dispose(){this.dispatchEvent({type:"dispose"})}label(y){return this.name=y,this}updateDispatchCount(){const{count:y,workgroupSize:E}=this;let z=E[0];for(let ne=1;ne<E.length;ne++)z*=E[ne];this.dispatchCount=Math.ceil(y/z)}onInit(y){return this.onInitFunction=y,this}updateBefore({renderer:y}){y.compute(this)}setup(y){const E=this.computeNode.build(y);if(E){const z=y.getNodeProperties(this);z.outputComputeNode=E.outputNode,E.outputNode=null}return E}generate(y,E){const{shaderStage:z}=y;if(z==="compute"){const ne=this.computeNode.build(y,"void");ne!==""&&y.addLineFlowCode(ne,this)}else{const ie=y.getNodeProperties(this).outputComputeNode;if(ie)return ie.build(y,E)}}}const z4=(ee,y,E)=>wo(new jQ(wo(ee),y,E));xo("compute",z4);class GQ extends Zl{static get type(){return"CacheNode"}constructor(y,E=!0){super(),this.node=y,this.parent=E,this.isCacheNode=!0}getNodeType(y){const E=y.getCache(),z=y.getCacheFromNode(this,this.parent);y.setCache(z);const ne=this.node.getNodeType(y);return y.setCache(E),ne}build(y,...E){const z=y.getCache(),ne=y.getCacheFromNode(this,this.parent);y.setCache(ne);const ie=this.node.build(y,...E);return y.setCache(z),ie}}const hM=(ee,y)=>wo(new GQ(wo(ee),y)),U4=(ee,y)=>ee.context({namespace:y});xo("cache",hM);class XQ extends Zl{static get type(){return"BypassNode"}constructor(y,E){super(),this.isBypassNode=!0,this.outputNode=y,this.callNode=E}getNodeType(y){return this.outputNode.getNodeType(y)}generate(y){const E=this.callNode.build(y,"void");return E!==""&&y.addLineFlowCode(E,this),this.outputNode.build(y)}}const H4=Do(XQ).setParameterLength(2);xo("bypass",H4);class V4 extends Zl{static get type(){return"RemapNode"}constructor(y,E,z,ne=Dn(0),ie=Dn(1)){super(),this.node=y,this.inLowNode=E,this.inHighNode=z,this.outLowNode=ne,this.outHighNode=ie,this.doClamp=!0}setup(){const{node:y,inLowNode:E,inHighNode:z,outLowNode:ne,outHighNode:ie,doClamp:se}=this;let ae=y.sub(E).div(z.sub(E));return se===!0&&(ae=ae.clamp()),ae.mul(ie.sub(ne)).add(ne)}}const j4=Do(V4,null,null,{doClamp:!1}).setParameterLength(3,5),G4=Do(V4).setParameterLength(3,5);xo("remap",j4),xo("remapClamp",G4);class kB extends Zl{static get type(){return"ExpressionNode"}constructor(y="",E="void"){super(E),this.snippet=y}generate(y,E){const z=this.getNodeType(y),ne=this.snippet;if(z==="void")y.addLineFlowCode(ne,this);else return y.format(ne,z,E)}}const T1=Do(kB).setParameterLength(1,2),X4=ee=>(ee?kp(ee,T1("discard")):T1("discard")).toStack(),WQ=()=>T1("return").toStack();xo("discard",X4);class QQ extends gf{static get type(){return"RenderOutputNode"}constructor(y,E,z){super("vec4"),this.colorNode=y,this.toneMapping=E,this.outputColorSpace=z,this.isRenderOutputNode=!0}setup({context:y}){let E=this.colorNode||y.color;const z=(this.toneMapping!==null?this.toneMapping:y.toneMapping)||bc,ne=(this.outputColorSpace!==null?this.outputColorSpace:y.outputColorSpace)||yp;return z!==bc&&(E=E.toneMapping(z)),ne!==yp&&ne!==su.workingColorSpace&&(E=E.workingToColorSpace(ne)),E}}const G8=(ee,y=null,E=null)=>wo(new QQ(wo(ee),y,E));xo("renderOutput",G8);class ZQ extends gf{static get type(){return"DebugNode"}constructor(y,E=null){super(),this.node=y,this.callback=E}getNodeType(y){return this.node.getNodeType(y)}setup(y){return this.node.build(y)}analyze(y){return this.node.build(y)}generate(y){const E=this.callback,z=this.node.build(y),ne="--- TSL debug - "+y.shaderStage+" shader ---",ie="-".repeat(ne.length);let se="";return se+="// #"+ne+`#
|
|
`,se+=y.flow.code.replace(/^\t/mg,"")+`
|
|
`,se+="/* ... */ "+z+` /* ... */
|
|
`,se+="// #"+ie+`#
|
|
`,E!==null?E(y,se):console.log(se),z}}const W4=(ee,y=null)=>wo(new ZQ(wo(ee),y));xo("debug",W4);function YQ(ee){console.warn("THREE.TSL: AddNodeElement has been removed in favor of tree-shaking. Trying add",ee)}class Q4 extends Zl{static get type(){return"AttributeNode"}constructor(y,E=null){super(E),this.global=!0,this._attributeName=y}getHash(y){return this.getAttributeName(y)}getNodeType(y){let E=this.nodeType;if(E===null){const z=this.getAttributeName(y);if(y.hasGeometryAttribute(z)){const ne=y.geometry.getAttribute(z);E=y.getTypeFromAttribute(ne)}else E="float"}return E}setAttributeName(y){return this._attributeName=y,this}getAttributeName(){return this._attributeName}generate(y){const E=this.getAttributeName(y),z=this.getNodeType(y);if(y.hasGeometryAttribute(E)===!0){const ie=y.geometry.getAttribute(E),se=y.getTypeFromAttribute(ie),ae=y.getAttribute(E,se);return y.shaderStage==="vertex"?y.format(ae.name,se,z):I0(this).build(y,z)}else return console.warn(`AttributeNode: Vertex attribute "${E}" not found on geometry.`),y.generateConst(z)}serialize(y){super.serialize(y),y.global=this.global,y._attributeName=this._attributeName}deserialize(y){super.deserialize(y),this.global=y.global,this._attributeName=y._attributeName}}const wm=(ee,y=null)=>wo(new Q4(ee,y)),nd=(ee=0)=>wm("uv"+(ee>0?ee:""),"vec2");class KQ extends Zl{static get type(){return"TextureSizeNode"}constructor(y,E=null){super("uvec2"),this.isTextureSizeNode=!0,this.textureNode=y,this.levelNode=E}generate(y,E){const z=this.textureNode.build(y,"property"),ne=this.levelNode===null?"0":this.levelNode.build(y,"int");return y.format(`${y.getMethod("textureDimensions")}( ${z}, ${ne} )`,this.getNodeType(y),E)}}const rS=Do(KQ).setParameterLength(1,2);class JQ extends aM{static get type(){return"MaxMipLevelNode"}constructor(y){super(0),this._textureNode=y,this.updateType=Uu.FRAME}get textureNode(){return this._textureNode}get texture(){return this._textureNode.value}update(){const y=this.texture,E=y.images,z=E&&E.length>0?E[0]&&E[0].image||E[0]:y.image;if(z&&z.width!==void 0){const{width:ne,height:ie}=z;this.value=Math.log2(Math.max(ne,ie))}}}const Z4=Do(JQ).setParameterLength(1),X8=new nh;class XA extends aM{static get type(){return"TextureNode"}constructor(y=X8,E=null,z=null,ne=null){super(y),this.isTextureNode=!0,this.uvNode=E,this.levelNode=z,this.biasNode=ne,this.compareNode=null,this.depthNode=null,this.gradNode=null,this.sampler=!0,this.updateMatrix=!1,this.updateType=Uu.NONE,this.referenceNode=null,this._value=y,this._matrixUniform=null,this.setUpdateMatrix(E===null)}set value(y){this.referenceNode?this.referenceNode.value=y:this._value=y}get value(){return this.referenceNode?this.referenceNode.value:this._value}getUniformHash(){return this.value.uuid}getNodeType(){return this.value.isDepthTexture===!0?"float":this.value.type===Oc?"uvec4":this.value.type===sf?"ivec4":"vec4"}getInputType(){return"texture"}getDefaultUV(){return nd(this.value.channel)}updateReference(){return this.value}getTransformedUV(y){return this._matrixUniform===null&&(this._matrixUniform=vl(this.value.matrix)),this._matrixUniform.mul(Li(y,1)).xy}setUpdateMatrix(y){return this.updateMatrix=y,this.updateType=y?Uu.OBJECT:Uu.NONE,this}setupUV(y,E){const z=this.value;return y.isFlipY()&&(z.image instanceof ImageBitmap&&z.flipY===!0||z.isRenderTargetTexture===!0||z.isFramebufferTexture===!0||z.isDepthTexture===!0)&&(this.sampler?E=E.flipY():E=E.setY(gi(rS(this,this.levelNode).y).sub(E.y).sub(1))),E}setup(y){const E=y.getNodeProperties(this);E.referenceNode=this.referenceNode;const z=this.value;if(!z||z.isTexture!==!0)throw new Error("THREE.TSL: `texture( value )` function expects a valid instance of THREE.Texture().");let ne=this.uvNode;(ne===null||y.context.forceUVContext===!0)&&y.context.getUV&&(ne=y.context.getUV(this,y)),ne||(ne=this.getDefaultUV()),this.updateMatrix===!0&&(ne=this.getTransformedUV(ne)),ne=this.setupUV(y,ne);let ie=this.levelNode;ie===null&&y.context.getTextureLevel&&(ie=y.context.getTextureLevel(this)),E.uvNode=ne,E.levelNode=ie,E.biasNode=this.biasNode,E.compareNode=this.compareNode,E.gradNode=this.gradNode,E.depthNode=this.depthNode}generateUV(y,E){return E.build(y,this.sampler===!0?"vec2":"ivec2")}generateSnippet(y,E,z,ne,ie,se,ae,he){const pe=this.value;let ve;return ne?ve=y.generateTextureLevel(pe,E,z,ne,se):ie?ve=y.generateTextureBias(pe,E,z,ie,se):he?ve=y.generateTextureGrad(pe,E,z,he,se):ae?ve=y.generateTextureCompare(pe,E,z,ae,se):this.sampler===!1?ve=y.generateTextureLoad(pe,E,z,se):ve=y.generateTexture(pe,E,z,se),ve}generate(y,E){const z=this.value,ne=y.getNodeProperties(this),ie=super.generate(y,"property");if(/^sampler/.test(E))return ie+"_sampler";if(y.isReference(E))return ie;{const se=y.getDataFromNode(this);let ae=se.propertyName;if(ae===void 0){const{uvNode:ve,levelNode:xe,biasNode:Se,compareNode:Be,depthNode:De,gradNode:Re}=ne,Oe=this.generateUV(y,ve),Le=xe?xe.build(y,"float"):null,Je=Se?Se.build(y,"float"):null,$e=De?De.build(y,"int"):null,_e=Be?Be.build(y,"float"):null,st=Re?[Re[0].build(y,"vec2"),Re[1].build(y,"vec2")]:null,ct=y.getVarFromNode(this);ae=y.getPropertyName(ct);const ut=this.generateSnippet(y,ie,Oe,Le,Je,$e,_e,st);y.addLineFlowCode(`${ae} = ${ut}`,this),se.snippet=ut,se.propertyName=ae}let he=ae;const pe=this.getNodeType(y);return y.needsToWorkingColorSpace(z)&&(he=LB(T1(he,pe),z.colorSpace).setup(y).build(y,pe)),y.format(he,pe,E)}}setSampler(y){return this.sampler=y,this}getSampler(){return this.sampler}uv(y){return console.warn("THREE.TextureNode: .uv() has been renamed. Use .sample() instead."),this.sample(y)}sample(y){const E=this.clone();return E.uvNode=wo(y),E.referenceNode=this.getSelf(),wo(E)}blur(y){const E=this.clone();E.biasNode=wo(y).mul(Z4(E)),E.referenceNode=this.getSelf();const z=E.value;return E.generateMipmaps===!1&&(z&&z.generateMipmaps===!1||z.minFilter===Ic||z.magFilter===Ic)&&(console.warn("THREE.TSL: texture().blur() requires mipmaps and sampling. Use .generateMipmaps=true and .minFilter/.magFilter=THREE.LinearFilter in the Texture."),E.biasNode=null),wo(E)}level(y){const E=this.clone();return E.levelNode=wo(y),E.referenceNode=this.getSelf(),wo(E)}size(y){return rS(this,y)}bias(y){const E=this.clone();return E.biasNode=wo(y),E.referenceNode=this.getSelf(),wo(E)}compare(y){const E=this.clone();return E.compareNode=wo(y),E.referenceNode=this.getSelf(),wo(E)}grad(y,E){const z=this.clone();return z.gradNode=[wo(y),wo(E)],z.referenceNode=this.getSelf(),wo(z)}depth(y){const E=this.clone();return E.depthNode=wo(y),E.referenceNode=this.getSelf(),wo(E)}serialize(y){super.serialize(y),y.value=this.value.toJSON(y.meta).uuid,y.sampler=this.sampler,y.updateMatrix=this.updateMatrix,y.updateType=this.updateType}deserialize(y){super.deserialize(y),this.value=y.meta.textures[y.value],this.sampler=y.sampler,this.updateMatrix=y.updateMatrix,this.updateType=y.updateType}update(){const y=this.value,E=this._matrixUniform;E!==null&&(E.value=y.matrix),y.matrixAutoUpdate===!0&&y.updateMatrix()}clone(){const y=new this.constructor(this.value,this.uvNode,this.levelNode,this.biasNode);return y.sampler=this.sampler,y.depthNode=this.depthNode,y.compareNode=this.compareNode,y.gradNode=this.gradNode,y}}const qQ=Do(XA).setParameterLength(1,4).setName("texture"),dc=(ee=X8,y=null,E=null,z=null)=>{let ne;return ee&&ee.isTextureNode===!0?(ne=wo(ee.clone()),ne.referenceNode=ee.getSelf(),y!==null&&(ne.uvNode=wo(y)),E!==null&&(ne.levelNode=wo(E)),z!==null&&(ne.biasNode=wo(z))):ne=qQ(ee,y,E,z),ne},_Q=(ee=X8)=>dc(ee),mf=(...ee)=>dc(...ee).setSampler(!1),$Q=ee=>(ee.isNode===!0?ee:dc(ee)).convert("sampler"),eZ=ee=>(ee.isNode===!0?ee:dc(ee)).convert("samplerComparison");class W8 extends aM{static get type(){return"BufferNode"}constructor(y,E,z=0){super(y,E),this.isBufferNode=!0,this.bufferType=E,this.bufferCount=z}getElementType(y){return this.getNodeType(y)}getInputType(){return"buffer"}}const dM=(ee,y,E)=>wo(new W8(ee,y,E));class tZ extends RP{static get type(){return"UniformArrayElementNode"}constructor(y,E){super(y,E),this.isArrayBufferElementNode=!0}generate(y){const E=super.generate(y),z=this.getNodeType(),ne=this.node.getPaddedType();return y.format(E,ne,z)}}class Y4 extends W8{static get type(){return"UniformArrayNode"}constructor(y,E=null){super(null),this.array=y,this.elementType=E===null?E1(y[0]):E,this.paddedType=this.getPaddedType(),this.updateType=Uu.RENDER,this.isArrayBufferNode=!0}getNodeType(){return this.paddedType}getElementType(){return this.elementType}getPaddedType(){const y=this.elementType;let E="vec4";return y==="mat2"?E="mat2":/mat/.test(y)===!0?E="mat4":y.charAt(0)==="i"?E="ivec4":y.charAt(0)==="u"&&(E="uvec4"),E}update(){const{array:y,value:E}=this,z=this.elementType;if(z==="float"||z==="int"||z==="uint")for(let ne=0;ne<y.length;ne++){const ie=ne*4;E[ie]=y[ne]}else if(z==="color")for(let ne=0;ne<y.length;ne++){const ie=ne*4,se=y[ne];E[ie]=se.r,E[ie+1]=se.g,E[ie+2]=se.b||0}else if(z==="mat2")for(let ne=0;ne<y.length;ne++){const ie=ne*4,se=y[ne];E[ie]=se.elements[0],E[ie+1]=se.elements[1],E[ie+2]=se.elements[2],E[ie+3]=se.elements[3]}else if(z==="mat3")for(let ne=0;ne<y.length;ne++){const ie=ne*16,se=y[ne];E[ie]=se.elements[0],E[ie+1]=se.elements[1],E[ie+2]=se.elements[2],E[ie+4]=se.elements[3],E[ie+5]=se.elements[4],E[ie+6]=se.elements[5],E[ie+8]=se.elements[6],E[ie+9]=se.elements[7],E[ie+10]=se.elements[8],E[ie+15]=1}else if(z==="mat4")for(let ne=0;ne<y.length;ne++){const ie=ne*16,se=y[ne];for(let ae=0;ae<se.elements.length;ae++)E[ie+ae]=se.elements[ae]}else for(let ne=0;ne<y.length;ne++){const ie=ne*4,se=y[ne];E[ie]=se.x,E[ie+1]=se.y,E[ie+2]=se.z||0,E[ie+3]=se.w||0}}setup(y){const E=this.array.length,z=this.elementType;let ne=Float32Array;const ie=this.paddedType,se=y.getTypeLength(ie);return z.charAt(0)==="i"&&(ne=Int32Array),z.charAt(0)==="u"&&(ne=Uint32Array),this.value=new ne(E*se),this.bufferCount=E,this.bufferType=ie,super.setup(y)}element(y){return wo(new tZ(this,wo(y)))}}const Sv=(ee,y)=>wo(new Y4(ee,y)),nZ=(ee,y)=>(console.warn("THREE.TSL: uniforms() has been renamed to uniformArray()."),wo(new Y4(ee,y)));class iZ extends Zl{constructor(y){super("float"),this.name=y,this.isBuiltinNode=!0}generate(){return this.name}}const fM=Do(iZ).setParameterLength(1),OB=vl(0,"uint").label("u_cameraIndex").setGroup(EB("cameraIndex")).toVarying("v_cameraIndex"),D1=vl("float").label("cameraNear").setGroup(Yl).onRenderUpdate(({camera:ee})=>ee.near),N1=vl("float").label("cameraFar").setGroup(Yl).onRenderUpdate(({camera:ee})=>ee.far),k0=$i(({camera:ee})=>{let y;if(ee.isArrayCamera&&ee.cameras.length>0){const E=[];for(const ne of ee.cameras)E.push(ne.projectionMatrix);y=Sv(E).setGroup(Yl).label("cameraProjectionMatrices").element(ee.isMultiViewCamera?fM("gl_ViewID_OVR"):OB).toVar("cameraProjectionMatrix")}else y=vl("mat4").label("cameraProjectionMatrix").setGroup(Yl).onRenderUpdate(({camera:E})=>E.projectionMatrix);return y}).once()(),rZ=$i(({camera:ee})=>{let y;if(ee.isArrayCamera&&ee.cameras.length>0){const E=[];for(const ne of ee.cameras)E.push(ne.projectionMatrixInverse);y=Sv(E).setGroup(Yl).label("cameraProjectionMatricesInverse").element(ee.isMultiViewCamera?fM("gl_ViewID_OVR"):OB).toVar("cameraProjectionMatrixInverse")}else y=vl("mat4").label("cameraProjectionMatrixInverse").setGroup(Yl).onRenderUpdate(({camera:E})=>E.projectionMatrixInverse);return y}).once()(),Sm=$i(({camera:ee})=>{let y;if(ee.isArrayCamera&&ee.cameras.length>0){const E=[];for(const ne of ee.cameras)E.push(ne.matrixWorldInverse);y=Sv(E).setGroup(Yl).label("cameraViewMatrices").element(ee.isMultiViewCamera?fM("gl_ViewID_OVR"):OB).toVar("cameraViewMatrix")}else y=vl("mat4").label("cameraViewMatrix").setGroup(Yl).onRenderUpdate(({camera:E})=>E.matrixWorldInverse);return y}).once()(),oZ=vl("mat4").label("cameraWorldMatrix").setGroup(Yl).onRenderUpdate(({camera:ee})=>ee.matrixWorld),sZ=vl("mat3").label("cameraNormalMatrix").setGroup(Yl).onRenderUpdate(({camera:ee})=>ee.normalMatrix),pM=vl(new yn).label("cameraPosition").setGroup(Yl).onRenderUpdate(({camera:ee},y)=>y.value.setFromMatrixPosition(ee.matrixWorld)),K4=new Yf;class yc extends Zl{static get type(){return"Object3DNode"}constructor(y,E=null){super(),this.scope=y,this.object3d=E,this.updateType=Uu.OBJECT,this.uniformNode=new aM(null)}getNodeType(){const y=this.scope;if(y===yc.WORLD_MATRIX)return"mat4";if(y===yc.POSITION||y===yc.VIEW_POSITION||y===yc.DIRECTION||y===yc.SCALE)return"vec3";if(y===yc.RADIUS)return"float"}update(y){const E=this.object3d,z=this.uniformNode,ne=this.scope;if(ne===yc.WORLD_MATRIX)z.value=E.matrixWorld;else if(ne===yc.POSITION)z.value=z.value||new yn,z.value.setFromMatrixPosition(E.matrixWorld);else if(ne===yc.SCALE)z.value=z.value||new yn,z.value.setFromMatrixScale(E.matrixWorld);else if(ne===yc.DIRECTION)z.value=z.value||new yn,E.getWorldDirection(z.value);else if(ne===yc.VIEW_POSITION){const ie=y.camera;z.value=z.value||new yn,z.value.setFromMatrixPosition(E.matrixWorld),z.value.applyMatrix4(ie.matrixWorldInverse)}else if(ne===yc.RADIUS){const ie=y.object.geometry;ie.boundingSphere===null&&ie.computeBoundingSphere(),K4.copy(ie.boundingSphere).applyMatrix4(E.matrixWorld),z.value=K4.radius}}generate(y){const E=this.scope;return E===yc.WORLD_MATRIX?this.uniformNode.nodeType="mat4":E===yc.POSITION||E===yc.VIEW_POSITION||E===yc.DIRECTION||E===yc.SCALE?this.uniformNode.nodeType="vec3":E===yc.RADIUS&&(this.uniformNode.nodeType="float"),this.uniformNode.build(y)}serialize(y){super.serialize(y),y.scope=this.scope}deserialize(y){super.deserialize(y),this.scope=y.scope}}yc.WORLD_MATRIX="worldMatrix",yc.POSITION="position",yc.SCALE="scale",yc.VIEW_POSITION="viewPosition",yc.DIRECTION="direction",yc.RADIUS="radius";const aZ=Do(yc,yc.DIRECTION).setParameterLength(1),lZ=Do(yc,yc.WORLD_MATRIX).setParameterLength(1),J4=Do(yc,yc.POSITION).setParameterLength(1),uZ=Do(yc,yc.SCALE).setParameterLength(1),cZ=Do(yc,yc.VIEW_POSITION).setParameterLength(1),hZ=Do(yc,yc.RADIUS).setParameterLength(1);class Pv extends yc{static get type(){return"ModelNode"}constructor(y){super(y)}update(y){this.object3d=y.object,super.update(y)}}const dZ=Qs(Pv,Pv.DIRECTION),Cv=Qs(Pv,Pv.WORLD_MATRIX),fZ=Qs(Pv,Pv.POSITION),pZ=Qs(Pv,Pv.SCALE),gZ=Qs(Pv,Pv.VIEW_POSITION),q4=Qs(Pv,Pv.RADIUS),_4=vl(new nu).onObjectUpdate(({object:ee},y)=>y.value.getNormalMatrix(ee.matrixWorld)),mZ=vl(new Xa).onObjectUpdate(({object:ee},y)=>y.value.copy(ee.matrixWorld).invert()),F1=$i(ee=>ee.renderer.overrideNodes.modelViewMatrix||$4).once()().toVar("modelViewMatrix"),$4=Sm.mul(Cv),Q8=$i(ee=>(ee.context.isHighPrecisionModelViewMatrix=!0,vl("mat4").onObjectUpdate(({object:y,camera:E})=>y.modelViewMatrix.multiplyMatrices(E.matrixWorldInverse,y.matrixWorld)))).once()().toVar("highpModelViewMatrix"),Z8=$i(ee=>{const y=ee.context.isHighPrecisionModelViewMatrix;return vl("mat3").onObjectUpdate(({object:E,camera:z})=>(y!==!0&&E.modelViewMatrix.multiplyMatrices(z.matrixWorldInverse,E.matrixWorld),E.normalMatrix.getNormalMatrix(E.modelViewMatrix)))}).once()().toVar("highpModelNormalViewMatrix"),Cg=wm("position","vec3"),vf=Cg.toVarying("positionLocal"),RB=Cg.toVarying("positionPrevious"),Ev=$i(ee=>Cv.mul(vf).xyz.toVarying(ee.getNamespace("v_positionWorld")),"vec3").once("POSITION")(),Y8=$i(ee=>vf.transformDirection(Cv).toVarying(ee.getNamespace("v_positionWorldDirection")).normalize().toVar("positionWorldDirection"),"vec3").once("POSITION")(),Of=$i(ee=>ee.context.setupPositionView().toVarying(ee.getNamespace("v_positionView")),"vec3").once("POSITION")(),id=Of.negate().toVarying("v_positionViewDirection").normalize().toVar("positionViewDirection");class vZ extends Zl{static get type(){return"FrontFacingNode"}constructor(){super("bool"),this.isFrontFacingNode=!0}generate(y){const{renderer:E,material:z}=y;return E.coordinateSystem===xp&&z.side===wc?"false":y.getFrontFacing()}}const eI=Qs(vZ),gM=Dn(eI).mul(2).sub(1),zB=wm("normal","vec3"),$m=$i(ee=>ee.geometry.hasAttribute("normal")===!1?(console.warn('THREE.TSL: Vertex attribute "normal" not found on geometry.'),Li(0,1,0)):zB,"vec3").once()().toVar("normalLocal"),tI=Of.dFdx().cross(Of.dFdy()).normalize().toVar("normalFlat"),Uy=$i(ee=>{let y;return ee.material.flatShading===!0?y=tI:y=I0(K8($m),"v_normalView").normalize(),y},"vec3").once()().toVar("normalView"),mM=$i(ee=>{let y=Uy.transformDirection(Sm);return ee.material.flatShading!==!0&&(y=I0(y,"v_normalWorld")),y},"vec3").once()().normalize().toVar("normalWorld"),_d=$i(ee=>{let y=ee.context.setupNormal().context({getUV:null});return ee.material.flatShading!==!0&&(y=y.mul(gM)),y},"vec3").once()().toVar("transformedNormalView"),UB=_d.transformDirection(Sm).toVar("transformedNormalWorld"),HE=$i(ee=>{let y=ee.context.setupClearcoatNormal().context({getUV:null});return ee.material.flatShading!==!0&&(y=y.mul(gM)),y},"vec3").once()().toVar("transformedClearcoatNormalView"),nI=$i(([ee,y=Cv])=>{const E=$g(y),z=ee.div(Li(E[0].dot(E[0]),E[1].dot(E[1]),E[2].dot(E[2])));return E.mul(z).xyz}),K8=$i(([ee],y)=>{const E=y.renderer.overrideNodes.modelNormalViewMatrix;if(E!==null)return E.transformDirection(ee);const z=_4.mul(ee);return Sm.transformDirection(z)}),iI=new Pp,J8=new Xa,rI=vl(0).onReference(({material:ee})=>ee).onObjectUpdate(({material:ee})=>ee.refractionRatio),HB=vl(1).onReference(({material:ee})=>ee).onObjectUpdate(function({material:ee,scene:y}){return ee.envMap?ee.envMapIntensity:y.environmentIntensity}),q8=vl(new Xa).onReference(function(ee){return ee.material}).onObjectUpdate(function({material:ee,scene:y}){const E=y.environment!==null&&ee.envMap===null?y.environmentRotation:ee.envMapRotation;return E?(iI.copy(E),J8.makeRotationFromEuler(iI)):J8.identity(),J8}),oI=id.negate().reflect(_d),sI=id.negate().refract(_d,rI),aI=oI.transformDirection(Sm).toVar("reflectVector"),lI=sI.transformDirection(Sm).toVar("reflectVector"),uI=new Gr;class yZ extends XA{static get type(){return"CubeTextureNode"}constructor(y,E=null,z=null,ne=null){super(y,E,z,ne),this.isCubeTextureNode=!0}getInputType(){return"cubeTexture"}getDefaultUV(){const y=this.value;return y.mapping===ud?aI:y.mapping===Xf?lI:(console.error('THREE.CubeTextureNode: Mapping "%s" not supported.',y.mapping),Li(0,0,0))}setUpdateMatrix(){}setupUV(y,E){const z=this.value;return(y.renderer.coordinateSystem===zg||!z.isRenderTargetTexture)&&(E=Li(E.x.negate(),E.yz)),q8.mul(E)}generateUV(y,E){return E.build(y,"vec3")}}const _8=Do(yZ).setParameterLength(1,4).setName("cubeTexture"),VE=(ee=uI,y=null,E=null,z=null)=>{let ne;return ee&&ee.isCubeTextureNode===!0?(ne=wo(ee.clone()),ne.referenceNode=ee.getSelf(),y!==null&&(ne.uvNode=wo(y)),E!==null&&(ne.levelNode=wo(E)),z!==null&&(ne.biasNode=wo(z))):ne=_8(ee,y,E,z),ne},AZ=(ee=uI)=>_8(ee);class xZ extends RP{static get type(){return"ReferenceElementNode"}constructor(y,E){super(y,E),this.referenceNode=y,this.isReferenceElementNode=!0}getNodeType(){return this.referenceNode.uniformType}generate(y){const E=super.generate(y),z=this.referenceNode.getNodeType(),ne=this.getNodeType();return y.format(E,z,ne)}}class VB extends Zl{static get type(){return"ReferenceNode"}constructor(y,E,z=null,ne=null){super(),this.property=y,this.uniformType=E,this.object=z,this.count=ne,this.properties=y.split("."),this.reference=z,this.node=null,this.group=null,this.name=null,this.updateType=Uu.OBJECT}element(y){return wo(new xZ(this,wo(y)))}setGroup(y){return this.group=y,this}label(y){return this.name=y,this}setNodeType(y){let E=null;this.count!==null?E=dM(null,y,this.count):Array.isArray(this.getValueFromReference())?E=Sv(null,y):y==="texture"?E=dc(null):y==="cubeTexture"?E=VE(null):E=vl(null,y),this.group!==null&&E.setGroup(this.group),this.name!==null&&E.label(this.name),this.node=E.getSelf()}getNodeType(y){return this.node===null&&(this.updateReference(y),this.updateValue()),this.node.getNodeType(y)}getValueFromReference(y=this.reference){const{properties:E}=this;let z=y[E[0]];for(let ne=1;ne<E.length;ne++)z=z[E[ne]];return z}updateReference(y){return this.reference=this.object!==null?this.object:y.object,this.reference}setup(){return this.updateValue(),this.node}update(){this.updateValue()}updateValue(){this.node===null&&this.setNodeType(this.uniformType);const y=this.getValueFromReference();Array.isArray(y)?this.node.array=y:this.node.value=y}}const kh=(ee,y,E)=>wo(new VB(ee,y,E)),$8=(ee,y,E,z)=>wo(new VB(ee,y,z,E));class wZ extends VB{static get type(){return"MaterialReferenceNode"}constructor(y,E,z=null){super(y,E,z),this.material=z,this.isMaterialReferenceNode=!0}updateReference(y){return this.reference=this.material!==null?this.material:y.material,this.reference}}const L1=(ee,y,E=null)=>wo(new wZ(ee,y,E)),jB=$i(ee=>(ee.geometry.hasAttribute("tangent")===!1&&ee.geometry.computeTangents(),wm("tangent","vec4")))(),vM=jB.xyz.toVar("tangentLocal"),yM=F1.mul(Da(vM,0)).xyz.toVarying("v_tangentView").normalize().toVar("tangentView"),cI=yM.transformDirection(Sm).toVarying("v_tangentWorld").normalize().toVar("tangentWorld"),eD=yM.toVar("transformedTangentView"),SZ=eD.transformDirection(Sm).normalize().toVar("transformedTangentWorld"),AM=$i(([ee,y],E)=>{let z=ee.mul(jB.w).xyz;return E.material.flatShading!==!0&&(z=I0(z,y)),z}).once(),PZ=AM(zB.cross(jB),"v_bitangentGeometry").normalize().toVar("bitangentGeometry"),CZ=AM($m.cross(vM),"v_bitangentLocal").normalize().toVar("bitangentLocal"),hI=AM(Uy.cross(yM),"v_bitangentView").normalize().toVar("bitangentView"),EZ=AM(mM.cross(cI),"v_bitangentWorld").normalize().toVar("bitangentWorld"),dI=AM(_d.cross(eD),"v_transformedBitangentView").normalize().toVar("transformedBitangentView"),bZ=dI.transformDirection(Sm).normalize().toVar("transformedBitangentWorld"),XP=$g(yM,hI,Uy),fI=id.mul(XP),MZ=(ee,y)=>ee.sub(fI.mul(y)),pI=(()=>{let ee=jP.cross(id);return ee=ee.cross(jP).normalize(),ee=Qc(ee,_d,nS.mul(zA.oneMinus()).oneMinus().pow2().pow2()).normalize(),ee})(),BZ=$i(ee=>{const{eye_pos:y,surf_norm:E,mapN:z,uv:ne}=ee,ie=y.dFdx(),se=y.dFdy(),ae=ne.dFdx(),he=ne.dFdy(),pe=E,ve=se.cross(pe),xe=pe.cross(ie),Se=ve.mul(ae.x).add(xe.mul(he.x)),Be=ve.mul(ae.y).add(xe.mul(he.y)),De=Se.dot(Se).max(Be.dot(Be)),Re=gM.mul(De.inverseSqrt());return kf(Se.mul(z.x,Re),Be.mul(z.y,Re),pe.mul(z.z)).normalize()});class TZ extends gf{static get type(){return"NormalMapNode"}constructor(y,E=null){super("vec3"),this.node=y,this.scaleNode=E,this.normalMapType=h0}setup(y){const{normalMapType:E,scaleNode:z}=this;let ne=this.node.mul(2).sub(1);z!==null&&(ne=Li(ne.xy.mul(z),ne.z));let ie=null;return E===MC?ie=K8(ne):E===h0&&(y.hasGeometryAttribute("tangent")===!0?ie=XP.mul(ne).normalize():ie=BZ({eye_pos:Of,surf_norm:Uy,mapN:ne,uv:nd()})),ie}}const tD=Do(TZ).setParameterLength(1,2),DZ=$i(({textureNode:ee,bumpScale:y})=>{const E=ne=>ee.cache().context({getUV:ie=>ne(ie.uvNode||nd()),forceUVContext:!0}),z=Dn(E(ne=>ne));return Qo(Dn(E(ne=>ne.add(ne.dFdx()))).sub(z),Dn(E(ne=>ne.add(ne.dFdy()))).sub(z)).mul(y)}),NZ=$i(ee=>{const{surf_pos:y,surf_norm:E,dHdxy:z}=ee,ne=y.dFdx().normalize(),ie=y.dFdy().normalize(),se=E,ae=ie.cross(se),he=se.cross(ne),pe=ne.dot(ae).mul(gM),ve=pe.sign().mul(z.x.mul(ae).add(z.y.mul(he)));return pe.abs().mul(E).sub(ve).normalize()});class FZ extends gf{static get type(){return"BumpMapNode"}constructor(y,E=null){super("vec3"),this.textureNode=y,this.scaleNode=E}setup(){const y=this.scaleNode!==null?this.scaleNode:1,E=DZ({textureNode:this.textureNode,bumpScale:y});return NZ({surf_pos:Of,surf_norm:Uy,dHdxy:E})}}const gI=Do(FZ).setParameterLength(1,2),mI=new Map;class So extends Zl{static get type(){return"MaterialNode"}constructor(y){super(),this.scope=y}getCache(y,E){let z=mI.get(y);return z===void 0&&(z=L1(y,E),mI.set(y,z)),z}getFloat(y){return this.getCache(y,"float")}getColor(y){return this.getCache(y,"color")}getTexture(y){return this.getCache(y==="map"?"map":y+"Map","texture")}setup(y){const E=y.context.material,z=this.scope;let ne=null;if(z===So.COLOR){const ie=E.color!==void 0?this.getColor(z):Li();E.map&&E.map.isTexture===!0?ne=ie.mul(this.getTexture("map")):ne=ie}else if(z===So.OPACITY){const ie=this.getFloat(z);E.alphaMap&&E.alphaMap.isTexture===!0?ne=ie.mul(this.getTexture("alpha")):ne=ie}else if(z===So.SPECULAR_STRENGTH)E.specularMap&&E.specularMap.isTexture===!0?ne=this.getTexture("specular").r:ne=Dn(1);else if(z===So.SPECULAR_INTENSITY){const ie=this.getFloat(z);E.specularIntensityMap&&E.specularIntensityMap.isTexture===!0?ne=ie.mul(this.getTexture(z).a):ne=ie}else if(z===So.SPECULAR_COLOR){const ie=this.getColor(z);E.specularColorMap&&E.specularColorMap.isTexture===!0?ne=ie.mul(this.getTexture(z).rgb):ne=ie}else if(z===So.ROUGHNESS){const ie=this.getFloat(z);E.roughnessMap&&E.roughnessMap.isTexture===!0?ne=ie.mul(this.getTexture(z).g):ne=ie}else if(z===So.METALNESS){const ie=this.getFloat(z);E.metalnessMap&&E.metalnessMap.isTexture===!0?ne=ie.mul(this.getTexture(z).b):ne=ie}else if(z===So.EMISSIVE){const ie=this.getFloat("emissiveIntensity"),se=this.getColor(z).mul(ie);E.emissiveMap&&E.emissiveMap.isTexture===!0?ne=se.mul(this.getTexture(z)):ne=se}else if(z===So.NORMAL)E.normalMap?(ne=tD(this.getTexture("normal"),this.getCache("normalScale","vec2")),ne.normalMapType=E.normalMapType):E.bumpMap?ne=gI(this.getTexture("bump").r,this.getFloat("bumpScale")):ne=Uy;else if(z===So.CLEARCOAT){const ie=this.getFloat(z);E.clearcoatMap&&E.clearcoatMap.isTexture===!0?ne=ie.mul(this.getTexture(z).r):ne=ie}else if(z===So.CLEARCOAT_ROUGHNESS){const ie=this.getFloat(z);E.clearcoatRoughnessMap&&E.clearcoatRoughnessMap.isTexture===!0?ne=ie.mul(this.getTexture(z).r):ne=ie}else if(z===So.CLEARCOAT_NORMAL)E.clearcoatNormalMap?ne=tD(this.getTexture(z),this.getCache(z+"Scale","vec2")):ne=Uy;else if(z===So.SHEEN){const ie=this.getColor("sheenColor").mul(this.getFloat("sheen"));E.sheenColorMap&&E.sheenColorMap.isTexture===!0?ne=ie.mul(this.getTexture("sheenColor").rgb):ne=ie}else if(z===So.SHEEN_ROUGHNESS){const ie=this.getFloat(z);E.sheenRoughnessMap&&E.sheenRoughnessMap.isTexture===!0?ne=ie.mul(this.getTexture(z).a):ne=ie,ne=ne.clamp(.07,1)}else if(z===So.ANISOTROPY)if(E.anisotropyMap&&E.anisotropyMap.isTexture===!0){const ie=this.getTexture(z);ne=yB(jE.x,jE.y,jE.y.negate(),jE.x).mul(ie.rg.mul(2).sub(Qo(1)).normalize().mul(ie.b))}else ne=jE;else if(z===So.IRIDESCENCE_THICKNESS){const ie=kh("1","float",E.iridescenceThicknessRange);if(E.iridescenceThicknessMap){const se=kh("0","float",E.iridescenceThicknessRange);ne=ie.sub(se).mul(this.getTexture(z).g).add(se)}else ne=ie}else if(z===So.TRANSMISSION){const ie=this.getFloat(z);E.transmissionMap?ne=ie.mul(this.getTexture(z).r):ne=ie}else if(z===So.THICKNESS){const ie=this.getFloat(z);E.thicknessMap?ne=ie.mul(this.getTexture(z).g):ne=ie}else if(z===So.IOR)ne=this.getFloat(z);else if(z===So.LIGHT_MAP)ne=this.getTexture(z).rgb.mul(this.getFloat("lightMapIntensity"));else if(z===So.AO)ne=this.getTexture(z).r.sub(1).mul(this.getFloat("aoMapIntensity")).add(1);else if(z===So.LINE_DASH_OFFSET)ne=E.dashOffset?this.getFloat(z):Dn(0);else{const ie=this.getNodeType(y);ne=this.getCache(z,ie)}return ne}}So.ALPHA_TEST="alphaTest",So.COLOR="color",So.OPACITY="opacity",So.SHININESS="shininess",So.SPECULAR="specular",So.SPECULAR_STRENGTH="specularStrength",So.SPECULAR_INTENSITY="specularIntensity",So.SPECULAR_COLOR="specularColor",So.REFLECTIVITY="reflectivity",So.ROUGHNESS="roughness",So.METALNESS="metalness",So.NORMAL="normal",So.CLEARCOAT="clearcoat",So.CLEARCOAT_ROUGHNESS="clearcoatRoughness",So.CLEARCOAT_NORMAL="clearcoatNormal",So.EMISSIVE="emissive",So.ROTATION="rotation",So.SHEEN="sheen",So.SHEEN_ROUGHNESS="sheenRoughness",So.ANISOTROPY="anisotropy",So.IRIDESCENCE="iridescence",So.IRIDESCENCE_IOR="iridescenceIOR",So.IRIDESCENCE_THICKNESS="iridescenceThickness",So.IOR="ior",So.TRANSMISSION="transmission",So.THICKNESS="thickness",So.ATTENUATION_DISTANCE="attenuationDistance",So.ATTENUATION_COLOR="attenuationColor",So.LINE_SCALE="scale",So.LINE_DASH_SIZE="dashSize",So.LINE_GAP_SIZE="gapSize",So.LINE_WIDTH="linewidth",So.LINE_DASH_OFFSET="dashOffset",So.POINT_SIZE="size",So.DISPERSION="dispersion",So.LIGHT_MAP="light",So.AO="ao";const vI=Qs(So,So.ALPHA_TEST),GB=Qs(So,So.COLOR),yI=Qs(So,So.SHININESS),AI=Qs(So,So.EMISSIVE),XB=Qs(So,So.OPACITY),xI=Qs(So,So.SPECULAR),nD=Qs(So,So.SPECULAR_INTENSITY),wI=Qs(So,So.SPECULAR_COLOR),xM=Qs(So,So.SPECULAR_STRENGTH),WB=Qs(So,So.REFLECTIVITY),SI=Qs(So,So.ROUGHNESS),PI=Qs(So,So.METALNESS),CI=Qs(So,So.NORMAL),EI=Qs(So,So.CLEARCOAT),bI=Qs(So,So.CLEARCOAT_ROUGHNESS),MI=Qs(So,So.CLEARCOAT_NORMAL),BI=Qs(So,So.ROTATION),TI=Qs(So,So.SHEEN),DI=Qs(So,So.SHEEN_ROUGHNESS),NI=Qs(So,So.ANISOTROPY),FI=Qs(So,So.IRIDESCENCE),LI=Qs(So,So.IRIDESCENCE_IOR),II=Qs(So,So.IRIDESCENCE_THICKNESS),kI=Qs(So,So.TRANSMISSION),OI=Qs(So,So.THICKNESS),RI=Qs(So,So.IOR),zI=Qs(So,So.ATTENUATION_DISTANCE),UI=Qs(So,So.ATTENUATION_COLOR),iD=Qs(So,So.LINE_SCALE),rD=Qs(So,So.LINE_DASH_SIZE),oD=Qs(So,So.LINE_GAP_SIZE),QB=Qs(So,So.LINE_WIDTH),sD=Qs(So,So.LINE_DASH_OFFSET),HI=Qs(So,So.POINT_SIZE),VI=Qs(So,So.DISPERSION),aD=Qs(So,So.LIGHT_MAP),jI=Qs(So,So.AO),jE=vl(new Yr).onReference(function(ee){return ee.material}).onRenderUpdate(function({material:ee}){this.value.set(ee.anisotropy*Math.cos(ee.anisotropyRotation),ee.anisotropy*Math.sin(ee.anisotropyRotation))}),lD=$i(ee=>ee.context.setupModelViewProjection(),"vec4").once()().toVarying("v_modelViewProjection");class yd extends Zl{static get type(){return"IndexNode"}constructor(y){super("uint"),this.scope=y,this.isIndexNode=!0}generate(y){const E=this.getNodeType(y),z=this.scope;let ne;if(z===yd.VERTEX)ne=y.getVertexIndex();else if(z===yd.INSTANCE)ne=y.getInstanceIndex();else if(z===yd.DRAW)ne=y.getDrawIndex();else if(z===yd.INVOCATION_LOCAL)ne=y.getInvocationLocalIndex();else if(z===yd.INVOCATION_SUBGROUP)ne=y.getInvocationSubgroupIndex();else if(z===yd.SUBGROUP)ne=y.getSubgroupIndex();else throw new Error("THREE.IndexNode: Unknown scope: "+z);let ie;return y.shaderStage==="vertex"||y.shaderStage==="compute"?ie=ne:ie=I0(this).build(y,E),ie}}yd.VERTEX="vertex",yd.INSTANCE="instance",yd.SUBGROUP="subgroup",yd.INVOCATION_LOCAL="invocationLocal",yd.INVOCATION_SUBGROUP="invocationSubgroup",yd.DRAW="draw";const GI=Qs(yd,yd.VERTEX),oS=Qs(yd,yd.INSTANCE),LZ=Qs(yd,yd.SUBGROUP),IZ=Qs(yd,yd.INVOCATION_SUBGROUP),kZ=Qs(yd,yd.INVOCATION_LOCAL),XI=Qs(yd,yd.DRAW);class WI extends Zl{static get type(){return"InstanceNode"}constructor(y,E,z=null){super("void"),this.count=y,this.instanceMatrix=E,this.instanceColor=z,this.instanceMatrixNode=null,this.instanceColorNode=null,this.updateType=Uu.FRAME,this.buffer=null,this.bufferColor=null}setup(y){const{count:E,instanceMatrix:z,instanceColor:ne}=this;let{instanceMatrixNode:ie,instanceColorNode:se}=this;if(ie===null){if(E<=1e3)ie=dM(z.array,"mat4",Math.max(E,1)).element(oS);else{const he=new mv(z.array,16,1);this.buffer=he;const pe=z.usage===oy?j8:IB,ve=[pe(he,"vec4",16,0),pe(he,"vec4",16,4),pe(he,"vec4",16,8),pe(he,"vec4",16,12)];ie=HP(...ve)}this.instanceMatrixNode=ie}if(ne&&se===null){const he=new vg(ne.array,3),pe=ne.usage===oy?j8:IB;this.bufferColor=he,se=Li(pe(he,"vec3",3,0)),this.instanceColorNode=se}const ae=ie.mul(vf).xyz;if(vf.assign(ae),y.hasGeometryAttribute("normal")){const he=nI($m,ie);$m.assign(he)}this.instanceColorNode!==null&&F0("vec3","vInstanceColor").assign(this.instanceColorNode)}update(){this.instanceMatrix.usage!==oy&&this.buffer!==null&&this.instanceMatrix.version!==this.buffer.version&&(this.buffer.version=this.instanceMatrix.version),this.instanceColor&&this.instanceColor.usage!==oy&&this.bufferColor!==null&&this.instanceColor.version!==this.bufferColor.version&&(this.bufferColor.version=this.instanceColor.version)}}const OZ=Do(WI).setParameterLength(2,3);class RZ extends WI{static get type(){return"InstancedMeshNode"}constructor(y){const{count:E,instanceMatrix:z,instanceColor:ne}=y;super(E,z,ne),this.instancedMesh=y}}const QI=Do(RZ).setParameterLength(1);class zZ extends Zl{static get type(){return"BatchNode"}constructor(y){super("void"),this.batchMesh=y,this.batchingIdNode=null}setup(y){this.batchingIdNode===null&&(y.getDrawIndex()===null?this.batchingIdNode=oS:this.batchingIdNode=XI);const z=$i(([De])=>{const Re=gi(rS(mf(this.batchMesh._indirectTexture),0).x),Oe=gi(De).mod(Re),Le=gi(De).div(Re);return mf(this.batchMesh._indirectTexture,Ip(Oe,Le)).x}).setLayout({name:"getIndirectIndex",type:"uint",inputs:[{name:"id",type:"int"}]})(gi(this.batchingIdNode)),ne=this.batchMesh._matricesTexture,ie=gi(rS(mf(ne),0).x),se=Dn(z).mul(4).toInt().toVar(),ae=se.mod(ie),he=se.div(ie),pe=HP(mf(ne,Ip(ae,he)),mf(ne,Ip(ae.add(1),he)),mf(ne,Ip(ae.add(2),he)),mf(ne,Ip(ae.add(3),he))),ve=this.batchMesh._colorsTexture;if(ve!==null){const Re=$i(([Oe])=>{const Le=gi(rS(mf(ve),0).x),Je=Oe,$e=Je.mod(Le),_e=Je.div(Le);return mf(ve,Ip($e,_e)).rgb}).setLayout({name:"getBatchingColor",type:"vec3",inputs:[{name:"id",type:"int"}]})(z);F0("vec3","vBatchColor").assign(Re)}const xe=$g(pe);vf.assign(pe.mul(vf));const Se=$m.div(Li(xe[0].dot(xe[0]),xe[1].dot(xe[1]),xe[2].dot(xe[2]))),Be=xe.mul(Se).xyz;$m.assign(Be),y.hasGeometryAttribute("tangent")&&vM.mulAssign(xe)}}const ZI=Do(zZ).setParameterLength(1);class UZ extends RP{static get type(){return"StorageArrayElementNode"}constructor(y,E){super(y,E),this.isStorageArrayElementNode=!0}set storageBufferNode(y){this.node=y}get storageBufferNode(){return this.node}getMemberType(y,E){const z=this.storageBufferNode.structTypeNode;return z?z.getMemberType(y,E):"void"}setup(y){return y.isAvailable("storageBuffer")===!1&&this.node.isPBO===!0&&y.setupPBO(this.node),super.setup(y)}generate(y,E){let z;const ne=y.context.assign;if(y.isAvailable("storageBuffer")===!1?this.node.isPBO===!0&&ne!==!0&&(this.node.value.isInstancedBufferAttribute||y.shaderStage!=="compute")?z=y.generatePBO(this):z=this.node.build(y):z=super.generate(y),ne!==!0){const ie=this.getNodeType(y);z=y.format(z,ie,E)}return z}}const HZ=Do(UZ).setParameterLength(2);class VZ extends W8{static get type(){return"StorageBufferNode"}constructor(y,E=null,z=0){let ne,ie=null;E&&E.isStruct?(ne="struct",ie=E.layout,(y.isStorageBufferAttribute||y.isStorageInstancedBufferAttribute)&&(z=y.count)):E===null&&(y.isStorageBufferAttribute||y.isStorageInstancedBufferAttribute)?(ne=e8(y.itemSize),z=y.count):ne=E,super(y,ne,z),this.isStorageBufferNode=!0,this.structTypeNode=ie,this.access=_g.READ_WRITE,this.isAtomic=!1,this.isPBO=!1,this._attribute=null,this._varying=null,this.global=!0,y.isStorageBufferAttribute!==!0&&y.isStorageInstancedBufferAttribute!==!0&&(y.isInstancedBufferAttribute?y.isStorageInstancedBufferAttribute=!0:y.isStorageBufferAttribute=!0)}getHash(y){if(this.bufferCount===0){let E=y.globalCache.getData(this.value);return E===void 0&&(E={node:this},y.globalCache.setData(this.value,E)),E.node.uuid}return this.uuid}getInputType(){return this.value.isIndirectStorageBufferAttribute?"indirectStorageBuffer":"storageBuffer"}element(y){return HZ(this,y)}setPBO(y){return this.isPBO=y,this}getPBO(){return this.isPBO}setAccess(y){return this.access=y,this}toReadOnly(){return this.setAccess(_g.READ_ONLY)}setAtomic(y){return this.isAtomic=y,this}toAtomic(){return this.setAtomic(!0)}getAttributeData(){return this._attribute===null&&(this._attribute=cM(this.value),this._varying=I0(this._attribute)),{attribute:this._attribute,varying:this._varying}}getNodeType(y){if(this.structTypeNode!==null)return this.structTypeNode.getNodeType(y);if(y.isAvailable("storageBuffer")||y.isAvailable("indirectStorageBuffer"))return super.getNodeType(y);const{attribute:E}=this.getAttributeData();return E.getNodeType(y)}getMemberType(y,E){return this.structTypeNode!==null?this.structTypeNode.getMemberType(y,E):"void"}generate(y){if(this.structTypeNode!==null&&this.structTypeNode.build(y),y.isAvailable("storageBuffer")||y.isAvailable("indirectStorageBuffer"))return super.generate(y);const{attribute:E,varying:z}=this.getAttributeData(),ne=z.build(y);return y.registerTransform(ne,E),ne}}const WP=(ee,y=null,E=0)=>wo(new VZ(ee,y,E)),jZ=(ee,y,E)=>(console.warn('THREE.TSL: "storageObject()" is deprecated. Use "storage().setPBO( true )" instead.'),WP(ee,y,E).setPBO(!0)),YI=new WeakMap;class KI extends Zl{static get type(){return"SkinningNode"}constructor(y){super("void"),this.skinnedMesh=y,this.updateType=Uu.OBJECT,this.skinIndexNode=wm("skinIndex","uvec4"),this.skinWeightNode=wm("skinWeight","vec4"),this.bindMatrixNode=kh("bindMatrix","mat4"),this.bindMatrixInverseNode=kh("bindMatrixInverse","mat4"),this.boneMatricesNode=$8("skeleton.boneMatrices","mat4",y.skeleton.bones.length),this.positionNode=vf,this.toPositionNode=vf,this.previousBoneMatricesNode=null}getSkinnedPosition(y=this.boneMatricesNode,E=this.positionNode){const{skinIndexNode:z,skinWeightNode:ne,bindMatrixNode:ie,bindMatrixInverseNode:se}=this,ae=y.element(z.x),he=y.element(z.y),pe=y.element(z.z),ve=y.element(z.w),xe=ie.mul(E),Se=kf(ae.mul(ne.x).mul(xe),he.mul(ne.y).mul(xe),pe.mul(ne.z).mul(xe),ve.mul(ne.w).mul(xe));return se.mul(Se).xyz}getSkinnedNormal(y=this.boneMatricesNode,E=$m){const{skinIndexNode:z,skinWeightNode:ne,bindMatrixNode:ie,bindMatrixInverseNode:se}=this,ae=y.element(z.x),he=y.element(z.y),pe=y.element(z.z),ve=y.element(z.w);let xe=kf(ne.x.mul(ae),ne.y.mul(he),ne.z.mul(pe),ne.w.mul(ve));return xe=se.mul(xe).mul(ie),xe.transformDirection(E).xyz}getPreviousSkinnedPosition(y){const E=y.object;return this.previousBoneMatricesNode===null&&(E.skeleton.previousBoneMatrices=new Float32Array(E.skeleton.boneMatrices),this.previousBoneMatricesNode=$8("skeleton.previousBoneMatrices","mat4",E.skeleton.bones.length)),this.getSkinnedPosition(this.previousBoneMatricesNode,RB)}needsPreviousBoneMatrices(y){const E=y.renderer.getMRT();return E&&E.has("velocity")||i8(y.object).useVelocity===!0}setup(y){this.needsPreviousBoneMatrices(y)&&RB.assign(this.getPreviousSkinnedPosition(y));const E=this.getSkinnedPosition();if(this.toPositionNode&&this.toPositionNode.assign(E),y.hasGeometryAttribute("normal")){const z=this.getSkinnedNormal();$m.assign(z),y.hasGeometryAttribute("tangent")&&vM.assign(z)}return E}generate(y,E){if(E!=="void")return super.generate(y,E)}update(y){const E=y.object&&y.object.skeleton?y.object.skeleton:this.skinnedMesh.skeleton;YI.get(E)!==y.frameId&&(YI.set(E,y.frameId),this.previousBoneMatricesNode!==null&&E.previousBoneMatrices.set(E.boneMatrices),E.update())}}const JI=ee=>wo(new KI(ee)),GZ=(ee,y=null)=>{const E=new KI(ee);return E.positionNode=WP(new vg(ee.geometry.getAttribute("position").array,3),"vec3").setPBO(!0).toReadOnly().element(oS).toVar(),E.skinIndexNode=WP(new vg(new Uint32Array(ee.geometry.getAttribute("skinIndex").array),4),"uvec4").setPBO(!0).toReadOnly().element(oS).toVar(),E.skinWeightNode=WP(new vg(ee.geometry.getAttribute("skinWeight").array,4),"vec4").setPBO(!0).toReadOnly().element(oS).toVar(),E.bindMatrixNode=vl(ee.bindMatrix,"mat4"),E.bindMatrixInverseNode=vl(ee.bindMatrixInverse,"mat4"),E.boneMatricesNode=dM(ee.skeleton.boneMatrices,"mat4",ee.skeleton.bones.length),E.toPositionNode=y,wo(E)};class XZ extends Zl{static get type(){return"LoopNode"}constructor(y=[]){super(),this.params=y}getVarName(y){return String.fromCharCode(105+y)}getProperties(y){const E=y.getNodeProperties(this);if(E.stackNode!==void 0)return E;const z={};for(let se=0,ae=this.params.length-1;se<ae;se++){const he=this.params[se],pe=he.isNode!==!0&&he.name||this.getVarName(se),ve=he.isNode!==!0&&he.type||"int";z[pe]=T1(pe,ve)}const ne=y.addStack();E.returnsNode=this.params[this.params.length-1](z,y),E.stackNode=ne;const ie=this.params[0];return ie.isNode!==!0&&typeof ie.update=="function"&&(E.updateNode=$i(this.params[0].update)(z)),y.removeStack(),E}getNodeType(y){const{returnsNode:E}=this.getProperties(y);return E?E.getNodeType(y):"void"}setup(y){this.getProperties(y)}generate(y){const E=this.getProperties(y),z=this.params,ne=E.stackNode;for(let ae=0,he=z.length-1;ae<he;ae++){const pe=z[ae];let ve=!1,xe=null,Se=null,Be=null,De=null,Re=null,Oe=null;pe.isNode?pe.getNodeType(y)==="bool"?(ve=!0,De="bool",Se=pe.build(y,De)):(De="int",Be=this.getVarName(ae),xe="0",Se=pe.build(y,De),Re="<"):(De=pe.type||"int",Be=pe.name||this.getVarName(ae),xe=pe.start,Se=pe.end,Re=pe.condition,Oe=pe.update,typeof xe=="number"?xe=y.generateConst(De,xe):xe&&xe.isNode&&(xe=xe.build(y,De)),typeof Se=="number"?Se=y.generateConst(De,Se):Se&&Se.isNode&&(Se=Se.build(y,De)),xe!==void 0&&Se===void 0?(xe=xe+" - 1",Se="0",Re=">="):Se!==void 0&&xe===void 0&&(xe="0",Re="<"),Re===void 0&&(Number(xe)>Number(Se)?Re=">=":Re="<"));let Le;if(ve)Le=`while ( ${Se} )`;else{const Je={start:xe,end:Se},$e=Je.start,_e=Je.end;let st;const ct=()=>Re.includes("<")?"+=":"-=";if(Oe!=null)switch(typeof Oe){case"function":st=y.flowStagesNode(E.updateNode,"void").code.replace(/\t|;/g,"");break;case"number":st=Be+" "+ct()+" "+y.generateConst(De,Oe);break;case"string":st=Be+" "+Oe;break;default:Oe.isNode?st=Be+" "+ct()+" "+Oe.build(y):(console.error("THREE.TSL: 'Loop( { update: ... } )' is not a function, string or number."),st="break /* invalid update */")}else De==="int"||De==="uint"?Oe=Re.includes("<")?"++":"--":Oe=ct()+" 1.",st=Be+" "+Oe;const ut=y.getVar(De,Be)+" = "+$e,ht=Be+" "+Re+" "+_e;Le=`for ( ${ut}; ${ht}; ${st} )`}y.addFlowCode((ae===0?`
|
|
`:"")+y.tab+Le+` {
|
|
|
|
`).addFlowTab()}const ie=ne.build(y,"void"),se=E.returnsNode?E.returnsNode.build(y):"";y.removeFlowTab().addFlowCode(`
|
|
`+y.tab+ie);for(let ae=0,he=this.params.length-1;ae<he;ae++)y.addFlowCode((ae===0?"":y.tab)+`}
|
|
|
|
`).removeFlowTab();return y.addFlowTab(),se}}const qc=(...ee)=>wo(new XZ(UP(ee,"int"))).toStack(),WZ=()=>T1("continue").toStack(),qI=()=>T1("break").toStack(),QZ=(...ee)=>(console.warn("THREE.TSL: loop() has been renamed to Loop()."),qc(...ee)),uD=new WeakMap,O0=new Ul,_I=$i(({bufferMap:ee,influence:y,stride:E,width:z,depth:ne,offset:ie})=>{const se=gi(GI).mul(E).add(ie),ae=se.div(z),he=se.sub(ae.mul(z));return mf(ee,Ip(he,ae)).depth(ne).xyz.mul(y)});function ZZ(ee){const y=ee.morphAttributes.position!==void 0,E=ee.morphAttributes.normal!==void 0,z=ee.morphAttributes.color!==void 0,ne=ee.morphAttributes.position||ee.morphAttributes.normal||ee.morphAttributes.color,ie=ne!==void 0?ne.length:0;let se=uD.get(ee);if(se===void 0||se.count!==ie){let Le=function(){Re.dispose(),uD.delete(ee),ee.removeEventListener("dispose",Le)};se!==void 0&&se.texture.dispose();const ae=ee.morphAttributes.position||[],he=ee.morphAttributes.normal||[],pe=ee.morphAttributes.color||[];let ve=0;y===!0&&(ve=1),E===!0&&(ve=2),z===!0&&(ve=3);let xe=ee.attributes.position.count*ve,Se=1;const Be=4096;xe>Be&&(Se=Math.ceil(xe/Be),xe=Be);const De=new Float32Array(xe*Se*4*ie),Re=new Dx(De,xe,Se,ie);Re.type=Ah,Re.needsUpdate=!0;const Oe=ve*4;for(let Je=0;Je<ie;Je++){const $e=ae[Je],_e=he[Je],st=pe[Je],ct=xe*Se*4*Je;for(let ut=0;ut<$e.count;ut++){const ht=ut*Oe;y===!0&&(O0.fromBufferAttribute($e,ut),De[ct+ht+0]=O0.x,De[ct+ht+1]=O0.y,De[ct+ht+2]=O0.z,De[ct+ht+3]=0),E===!0&&(O0.fromBufferAttribute(_e,ut),De[ct+ht+4]=O0.x,De[ct+ht+5]=O0.y,De[ct+ht+6]=O0.z,De[ct+ht+7]=0),z===!0&&(O0.fromBufferAttribute(st,ut),De[ct+ht+8]=O0.x,De[ct+ht+9]=O0.y,De[ct+ht+10]=O0.z,De[ct+ht+11]=st.itemSize===4?O0.w:1)}}se={count:ie,texture:Re,stride:ve,size:new Yr(xe,Se)},uD.set(ee,se),ee.addEventListener("dispose",Le)}return se}class YZ extends Zl{static get type(){return"MorphNode"}constructor(y){super("void"),this.mesh=y,this.morphBaseInfluence=vl(1),this.updateType=Uu.OBJECT}setup(y){const{geometry:E}=y,z=E.morphAttributes.position!==void 0,ne=E.hasAttribute("normal")&&E.morphAttributes.normal!==void 0,ie=E.morphAttributes.position||E.morphAttributes.normal||E.morphAttributes.color,se=ie!==void 0?ie.length:0,{texture:ae,stride:he,size:pe}=ZZ(E);z===!0&&vf.mulAssign(this.morphBaseInfluence),ne===!0&&$m.mulAssign(this.morphBaseInfluence);const ve=gi(pe.width);qc(se,({i:xe})=>{const Se=Dn(0).toVar();this.mesh.count>1&&this.mesh.morphTexture!==null&&this.mesh.morphTexture!==void 0?Se.assign(mf(this.mesh.morphTexture,Ip(gi(xe).add(1),gi(oS))).r):Se.assign(kh("morphTargetInfluences","float").element(xe).toVar()),$l(Se.notEqual(0),()=>{z===!0&&vf.addAssign(_I({bufferMap:ae,influence:Se,stride:he,width:ve,depth:xe,offset:gi(0)})),ne===!0&&$m.addAssign(_I({bufferMap:ae,influence:Se,stride:he,width:ve,depth:xe,offset:gi(1)}))})})}update(){const y=this.morphBaseInfluence;this.mesh.geometry.morphTargetsRelative?y.value=1:y.value=1-this.mesh.morphTargetInfluences.reduce((E,z)=>E+z,0)}}const $I=Do(YZ).setParameterLength(1);class GE extends Zl{static get type(){return"LightingNode"}constructor(){super("vec3"),this.isLightingNode=!0}}class KZ extends GE{static get type(){return"AONode"}constructor(y=null){super(),this.aoNode=y}setup(y){y.context.ambientOcclusion.mulAssign(this.aoNode)}}class JZ extends C4{static get type(){return"LightingContextNode"}constructor(y,E=null,z=null,ne=null){super(y),this.lightingModel=E,this.backdropNode=z,this.backdropAlphaNode=ne,this._value=null}getContext(){const{backdropNode:y,backdropAlphaNode:E}=this,z=Li().toVar("directDiffuse"),ne=Li().toVar("directSpecular"),ie=Li().toVar("indirectDiffuse"),se=Li().toVar("indirectSpecular"),ae={directDiffuse:z,directSpecular:ne,indirectDiffuse:ie,indirectSpecular:se};return{radiance:Li().toVar("radiance"),irradiance:Li().toVar("irradiance"),iblIrradiance:Li().toVar("iblIrradiance"),ambientOcclusion:Dn(1).toVar("ambientOcclusion"),reflectedLight:ae,backdrop:y,backdropAlpha:E}}setup(y){return this.value=this._value||(this._value=this.getContext()),this.value.lightingModel=this.lightingModel||y.context.lightingModel,super.setup(y)}}const e7=Do(JZ);class qZ extends GE{static get type(){return"IrradianceNode"}constructor(y){super(),this.node=y}setup(y){y.context.irradiance.addAssign(this.node)}}let wM,SM;class np extends Zl{static get type(){return"ScreenNode"}constructor(y){super(),this.scope=y,this.isViewportNode=!0}getNodeType(){return this.scope===np.VIEWPORT?"vec4":"vec2"}getUpdateType(){let y=Uu.NONE;return(this.scope===np.SIZE||this.scope===np.VIEWPORT)&&(y=Uu.RENDER),this.updateType=y,y}update({renderer:y}){const E=y.getRenderTarget();this.scope===np.VIEWPORT?E!==null?SM.copy(E.viewport):(y.getViewport(SM),SM.multiplyScalar(y.getPixelRatio())):E!==null?(wM.width=E.width,wM.height=E.height):y.getDrawingBufferSize(wM)}setup(){const y=this.scope;let E=null;return y===np.SIZE?E=vl(wM||(wM=new Yr)):y===np.VIEWPORT?E=vl(SM||(SM=new Ul)):E=Qo(CM.div(PM)),E}generate(y){if(this.scope===np.COORDINATE){let E=y.getFragCoord();if(y.isFlipY()){const z=y.getNodeProperties(PM).outputNode.build(y);E=`${y.getType("vec2")}( ${E}.x, ${z}.y - ${E}.y )`}return E}return super.generate(y)}}np.COORDINATE="coordinate",np.VIEWPORT="viewport",np.SIZE="size",np.UV="uv";const Hy=Qs(np,np.UV),PM=Qs(np,np.SIZE),CM=Qs(np,np.COORDINATE),I1=Qs(np,np.VIEWPORT),t7=I1.zw,n7=CM.sub(I1.xy),_Z=n7.div(t7),$Z=$i(()=>(console.warn('THREE.TSL: "viewportResolution" is deprecated. Use "screenSize" instead.'),PM),"vec2").once()(),eY=$i(()=>(console.warn('THREE.TSL: "viewportTopLeft" is deprecated. Use "screenUV" instead.'),Hy),"vec2").once()(),tY=$i(()=>(console.warn('THREE.TSL: "viewportBottomLeft" is deprecated. Use "screenUV.flipY()" instead.'),Hy.flipY()),"vec2").once()(),EM=new Yr;class ZB extends XA{static get type(){return"ViewportTextureNode"}constructor(y=Hy,E=null,z=null){z===null&&(z=new P2,z.minFilter=mp),super(z,y,E),this.generateMipmaps=!1,this.isOutputTextureNode=!0,this.updateBeforeType=Uu.FRAME}updateBefore(y){const E=y.renderer;E.getDrawingBufferSize(EM);const z=this.value;(z.image.width!==EM.width||z.image.height!==EM.height)&&(z.image.width=EM.width,z.image.height=EM.height,z.needsUpdate=!0);const ne=z.generateMipmaps;z.generateMipmaps=this.generateMipmaps,E.copyFramebufferToTexture(z),z.generateMipmaps=ne}clone(){const y=new this.constructor(this.uvNode,this.levelNode,this.value);return y.generateMipmaps=this.generateMipmaps,y}}const nY=Do(ZB).setParameterLength(0,3),cD=Do(ZB,null,null,{generateMipmaps:!0}).setParameterLength(0,3);let hD=null;class iY extends ZB{static get type(){return"ViewportDepthTextureNode"}constructor(y=Hy,E=null){hD===null&&(hD=new jg),super(y,E,hD)}}const dD=Do(iY).setParameterLength(0,2);class e0 extends Zl{static get type(){return"ViewportDepthNode"}constructor(y,E=null){super("float"),this.scope=y,this.valueNode=E,this.isViewportDepthNode=!0}generate(y){const{scope:E}=this;return E===e0.DEPTH_BASE?y.getFragDepth():super.generate(y)}setup({camera:y}){const{scope:E}=this,z=this.valueNode;let ne=null;if(E===e0.DEPTH_BASE)z!==null&&(ne=i7().assign(z));else if(E===e0.DEPTH)y.isPerspectiveCamera?ne=fD(Of.z,D1,N1):ne=XE(Of.z,D1,N1);else if(E===e0.LINEAR_DEPTH)if(z!==null)if(y.isPerspectiveCamera){const ie=pD(z,D1,N1);ne=XE(ie,D1,N1)}else ne=z;else ne=XE(Of.z,D1,N1);return ne}}e0.DEPTH_BASE="depthBase",e0.DEPTH="depth",e0.LINEAR_DEPTH="linearDepth";const XE=(ee,y,E)=>ee.add(y).div(y.sub(E)),rY=(ee,y,E)=>y.sub(E).mul(ee).sub(y),fD=(ee,y,E)=>y.add(ee).mul(E).div(E.sub(y).mul(ee)),pD=(ee,y,E)=>y.mul(E).div(E.sub(y).mul(ee).sub(E)),gD=(ee,y,E)=>{y=y.max(1e-6).toVar();const z=UA(ee.negate().div(y)),ne=UA(E.div(y));return z.div(ne)},oY=(ee,y,E)=>{const z=ee.mul(MB(E.div(y)));return Dn(Math.E).pow(z).mul(y).negate()},i7=Do(e0,e0.DEPTH_BASE),mD=Qs(e0,e0.DEPTH),WE=Do(e0,e0.LINEAR_DEPTH).setParameterLength(0,1),sY=WE(dD());mD.assign=ee=>i7(ee);class bv extends Zl{static get type(){return"ClippingNode"}constructor(y=bv.DEFAULT){super(),this.scope=y}setup(y){super.setup(y);const E=y.clippingContext,{intersectionPlanes:z,unionPlanes:ne}=E;return this.hardwareClipping=y.material.hardwareClipping,this.scope===bv.ALPHA_TO_COVERAGE?this.setupAlphaToCoverage(z,ne):this.scope===bv.HARDWARE?this.setupHardwareClipping(ne,y):this.setupDefault(z,ne)}setupAlphaToCoverage(y,E){return $i(()=>{const z=Dn().toVar("distanceToPlane"),ne=Dn().toVar("distanceToGradient"),ie=Dn(1).toVar("clipOpacity"),se=E.length;if(this.hardwareClipping===!1&&se>0){const he=Sv(E);qc(se,({i:pe})=>{const ve=he.element(pe);z.assign(Of.dot(ve.xyz).negate().add(ve.w)),ne.assign(z.fwidth().div(2)),ie.mulAssign(wv(ne.negate(),ne,z))})}const ae=y.length;if(ae>0){const he=Sv(y),pe=Dn(1).toVar("intersectionClipOpacity");qc(ae,({i:ve})=>{const xe=he.element(ve);z.assign(Of.dot(xe.xyz).negate().add(xe.w)),ne.assign(z.fwidth().div(2)),pe.mulAssign(wv(ne.negate(),ne,z).oneMinus())}),ie.mulAssign(pe.oneMinus())}Wc.a.mulAssign(ie),Wc.a.equal(0).discard()})()}setupDefault(y,E){return $i(()=>{const z=E.length;if(this.hardwareClipping===!1&&z>0){const ie=Sv(E);qc(z,({i:se})=>{const ae=ie.element(se);Of.dot(ae.xyz).greaterThan(ae.w).discard()})}const ne=y.length;if(ne>0){const ie=Sv(y),se=RA(!0).toVar("clipped");qc(ne,({i:ae})=>{const he=ie.element(ae);se.assign(Of.dot(he.xyz).greaterThan(he.w).and(se))}),se.discard()}})()}setupHardwareClipping(y,E){const z=y.length;return E.enableHardwareClipping(z),$i(()=>{const ne=Sv(y),ie=fM(E.getClipDistance());qc(z,({i:se})=>{const ae=ne.element(se),he=Of.dot(ae.xyz).sub(ae.w).negate();ie.element(se).assign(he)})})()}}bv.ALPHA_TO_COVERAGE="alphaToCoverage",bv.DEFAULT="default",bv.HARDWARE="hardware";const aY=()=>wo(new bv),lY=()=>wo(new bv(bv.ALPHA_TO_COVERAGE)),uY=()=>wo(new bv(bv.HARDWARE)),cY=.05,r7=$i(([ee])=>M1(Lu(1e4,L0(Lu(17,ee.x).add(Lu(.1,ee.y)))).mul(kf(.1,Kh(L0(Lu(13,ee.y).add(ee.x))))))),o7=$i(([ee])=>r7(Qo(r7(ee.xy),ee.z))),hY=$i(([ee])=>{const y=qd(jA(N8(ee.xyz)),jA(F8(ee.xyz))),E=Dn(1).div(Dn(cY).mul(y)).toVar("pixScale"),z=Qo(UE(VA(UA(E))),UE(BB(UA(E)))),ne=Qo(o7(VA(z.x.mul(ee.xyz))),o7(VA(z.y.mul(ee.xyz)))),ie=M1(UA(E)),se=kf(Lu(ie.oneMinus(),ne.x),Lu(ie,ne.y)),ae=_m(ie,ie.oneMinus()),he=Li(se.mul(se).div(Lu(2,ae).mul(Pc(1,ae))),se.sub(Lu(.5,ae)).div(Pc(1,ae)),Pc(1,Pc(1,se).mul(Pc(1,se)).div(Lu(2,ae).mul(Pc(1,ae))))),pe=se.lessThan(ae.oneMinus()).select(se.lessThan(ae).select(he.x,he.y),he.z);return GA(pe,1e-6,1)}).setLayout({name:"getAlphaHashThreshold",type:"float",inputs:[{name:"position",type:"vec3"}]});class dY extends Q4{static get type(){return"VertexColorNode"}constructor(y){super(null,"vec4"),this.isVertexColorNode=!0,this.index=y}getAttributeName(){const y=this.index;return"color"+(y>0?y:"")}generate(y){const E=this.getAttributeName(y),z=y.hasGeometryAttribute(E);let ne;return z===!0?ne=super.generate(y):ne=y.generateConst(this.nodeType,new Ul(1,1,1,1)),ne}serialize(y){super.serialize(y),y.index=this.index}deserialize(y){super.deserialize(y),this.index=y.index}}const s7=(ee=0)=>wo(new dY(ee));class $d extends Zd{static get type(){return"NodeMaterial"}get type(){return this.constructor.type}set type(y){}constructor(){super(),this.isNodeMaterial=!0,this.fog=!0,this.lights=!1,this.hardwareClipping=!1,this.lightsNode=null,this.envNode=null,this.aoNode=null,this.colorNode=null,this.normalNode=null,this.opacityNode=null,this.backdropNode=null,this.backdropAlphaNode=null,this.alphaTestNode=null,this.maskNode=null,this.positionNode=null,this.geometryNode=null,this.depthNode=null,this.receivedShadowPositionNode=null,this.castShadowPositionNode=null,this.receivedShadowNode=null,this.castShadowNode=null,this.outputNode=null,this.mrtNode=null,this.fragmentNode=null,this.vertexNode=null,Object.defineProperty(this,"shadowPositionNode",{get:()=>this.receivedShadowPositionNode,set:y=>{console.warn('THREE.NodeMaterial: ".shadowPositionNode" was renamed to ".receivedShadowPositionNode".'),this.receivedShadowPositionNode=y}})}customProgramCacheKey(){return this.type+$3(this)}build(y){this.setup(y)}setupObserver(y){return new JW(y)}setup(y){y.context.setupNormal=()=>this.setupNormal(y),y.context.setupPositionView=()=>this.setupPositionView(y),y.context.setupModelViewProjection=()=>this.setupModelViewProjection(y);const E=y.renderer,z=E.getRenderTarget();y.addStack();const ne=this.setupVertex(y),ie=this.vertexNode||ne;y.stack.outputNode=ie,this.setupHardwareClipping(y),this.geometryNode!==null&&(y.stack.outputNode=y.stack.outputNode.bypass(this.geometryNode)),y.addFlow("vertex",y.removeStack()),y.addStack();let se;const ae=this.setupClipping(y);if((this.depthWrite===!0||this.depthTest===!0)&&(z!==null?z.depthBuffer===!0&&this.setupDepth(y):E.depth===!0&&this.setupDepth(y)),this.fragmentNode===null){this.setupDiffuseColor(y),this.setupVariants(y);const he=this.setupLighting(y);ae!==null&&y.stack.add(ae);const pe=Da(he,Wc.a).max(0);se=this.setupOutput(y,pe),zE.assign(se);const ve=this.outputNode!==null;if(ve&&(se=this.outputNode),z!==null){const xe=E.getMRT(),Se=this.mrtNode;xe!==null?(ve&&zE.assign(se),se=xe,Se!==null&&(se=xe.merge(Se))):Se!==null&&(se=Se)}}else{let he=this.fragmentNode;he.isOutputStructNode!==!0&&(he=Da(he)),se=this.setupOutput(y,he)}y.stack.outputNode=se,y.addFlow("fragment",y.removeStack()),y.observer=this.setupObserver(y)}setupClipping(y){if(y.clippingContext===null)return null;const{unionPlanes:E,intersectionPlanes:z}=y.clippingContext;let ne=null;if(E.length>0||z.length>0){const ie=y.renderer.samples;this.alphaToCoverage&&ie>1?ne=lY():y.stack.add(aY())}return ne}setupHardwareClipping(y){if(this.hardwareClipping=!1,y.clippingContext===null)return;const E=y.clippingContext.unionPlanes.length;E>0&&E<=8&&y.isAvailable("clipDistance")&&(y.stack.add(uY()),this.hardwareClipping=!0)}setupDepth(y){const{renderer:E,camera:z}=y;let ne=this.depthNode;if(ne===null){const ie=E.getMRT();ie&&ie.has("depth")?ne=ie.get("depth"):E.logarithmicDepthBuffer===!0&&(z.isPerspectiveCamera?ne=gD(Of.z,D1,N1):ne=XE(Of.z,D1,N1))}ne!==null&&mD.assign(ne).toStack()}setupPositionView(){return F1.mul(vf).xyz}setupModelViewProjection(){return k0.mul(Of)}setupVertex(y){return y.addStack(),this.setupPosition(y),y.context.vertex=y.removeStack(),lD}setupPosition(y){const{object:E,geometry:z}=y;if((z.morphAttributes.position||z.morphAttributes.normal||z.morphAttributes.color)&&$I(E).toStack(),E.isSkinnedMesh===!0&&JI(E).toStack(),this.displacementMap){const ne=L1("displacementMap","texture"),ie=L1("displacementScale","float"),se=L1("displacementBias","float");vf.addAssign($m.normalize().mul(ne.x.mul(ie).add(se)))}return E.isBatchedMesh&&ZI(E).toStack(),E.isInstancedMesh&&E.instanceMatrix&&E.instanceMatrix.isInstancedBufferAttribute===!0&&QI(E).toStack(),this.positionNode!==null&&vf.assign(U4(this.positionNode,"POSITION")),vf}setupDiffuseColor({object:y,geometry:E}){this.maskNode!==null&&RA(this.maskNode).not().discard();let z=this.colorNode?Da(this.colorNode):GB;this.vertexColors===!0&&E.hasAttribute("color")&&(z=z.mul(s7())),y.instanceColor&&(z=F0("vec3","vInstanceColor").mul(z)),y.isBatchedMesh&&y._colorsTexture&&(z=F0("vec3","vBatchColor").mul(z)),Wc.assign(z);const ne=this.opacityNode?Dn(this.opacityNode):XB;Wc.a.assign(Wc.a.mul(ne));let ie=null;(this.alphaTestNode!==null||this.alphaTest>0)&&(ie=this.alphaTestNode!==null?Dn(this.alphaTestNode):vI,Wc.a.lessThanEqual(ie).discard()),this.alphaHash===!0&&Wc.a.lessThan(hY(vf)).discard(),this.transparent===!1&&this.blending===de&&this.alphaToCoverage===!1?Wc.a.assign(1):ie===null&&Wc.a.lessThanEqual(0).discard()}setupVariants(){}setupOutgoingLight(){return this.lights===!0?Li(0):Wc.rgb}setupNormal(){return this.normalNode?Li(this.normalNode):CI}setupEnvironment(){let y=null;return this.envNode?y=this.envNode:this.envMap&&(y=this.envMap.isCubeTexture?L1("envMap","cubeTexture"):L1("envMap","texture")),y}setupLightMap(y){let E=null;return y.material.lightMap&&(E=new qZ(aD)),E}setupLights(y){const E=[],z=this.setupEnvironment(y);z&&z.isLightingNode&&E.push(z);const ne=this.setupLightMap(y);if(ne&&ne.isLightingNode&&E.push(ne),this.aoNode!==null||y.material.aoMap){const se=this.aoNode!==null?this.aoNode:jI;E.push(new KZ(se))}let ie=this.lightsNode||y.lightsNode;return E.length>0&&(ie=y.renderer.lighting.createNode([...ie.getLights(),...E])),ie}setupLightingModel(){}setupLighting(y){const{material:E}=y,{backdropNode:z,backdropAlphaNode:ne,emissiveNode:ie}=this,ae=this.lights===!0||this.lightsNode!==null?this.setupLights(y):null;let he=this.setupOutgoingLight(y);if(ae&&ae.getScope().hasLights){const pe=this.setupLightingModel(y)||null;he=e7(ae,pe,z,ne)}else z!==null&&(he=Li(ne!==null?Qc(he,z,ne):z));return(ie&&ie.isNode===!0||E.emissive&&E.emissive.isColor===!0)&&(v8.assign(Li(ie||AI)),he=he.add(v8)),he}setupFog(y,E){const z=y.fogNode;return z&&(zE.assign(E),E=Da(z)),E}setupOutput(y,E){return this.fog===!0&&(E=this.setupFog(y,E)),E}setDefaultValues(y){for(const z in y){const ne=y[z];this[z]===void 0&&(this[z]=ne,ne&&ne.clone&&(this[z]=ne.clone()))}const E=Object.getOwnPropertyDescriptors(y.constructor.prototype);for(const z in E)Object.getOwnPropertyDescriptor(this.constructor.prototype,z)===void 0&&E[z].get!==void 0&&Object.defineProperty(this.constructor.prototype,z,E[z])}toJSON(y){const E=y===void 0||typeof y=="string";E&&(y={textures:{},images:{},nodes:{}});const z=Zd.prototype.toJSON.call(this,y),ne=K2(this);z.inputNodes={};for(const{property:se,childNode:ae}of ne)z.inputNodes[se]=ae.toJSON(y).uuid;function ie(se){const ae=[];for(const he in se){const pe=se[he];delete pe.metadata,ae.push(pe)}return ae}if(E){const se=ie(y.textures),ae=ie(y.images),he=ie(y.nodes);se.length>0&&(z.textures=se),ae.length>0&&(z.images=ae),he.length>0&&(z.nodes=he)}return z}copy(y){return this.lightsNode=y.lightsNode,this.envNode=y.envNode,this.colorNode=y.colorNode,this.normalNode=y.normalNode,this.opacityNode=y.opacityNode,this.backdropNode=y.backdropNode,this.backdropAlphaNode=y.backdropAlphaNode,this.alphaTestNode=y.alphaTestNode,this.maskNode=y.maskNode,this.positionNode=y.positionNode,this.geometryNode=y.geometryNode,this.depthNode=y.depthNode,this.receivedShadowPositionNode=y.receivedShadowPositionNode,this.castShadowPositionNode=y.castShadowPositionNode,this.receivedShadowNode=y.receivedShadowNode,this.castShadowNode=y.castShadowNode,this.outputNode=y.outputNode,this.mrtNode=y.mrtNode,this.fragmentNode=y.fragmentNode,this.vertexNode=y.vertexNode,super.copy(y)}}const fY=new Tp;class pY extends $d{static get type(){return"LineBasicNodeMaterial"}constructor(y){super(),this.isLineBasicNodeMaterial=!0,this.setDefaultValues(fY),this.setValues(y)}}const gY=new oe;class mY extends $d{static get type(){return"LineDashedNodeMaterial"}constructor(y){super(),this.isLineDashedNodeMaterial=!0,this.setDefaultValues(gY),this.dashOffset=0,this.offsetNode=null,this.dashScaleNode=null,this.dashSizeNode=null,this.gapSizeNode=null,this.setValues(y)}setupVariants(){const y=this.offsetNode?Dn(this.offsetNode):sD,E=this.dashScaleNode?Dn(this.dashScaleNode):iD,z=this.dashSizeNode?Dn(this.dashSizeNode):rD,ne=this.gapSizeNode?Dn(this.gapSizeNode):oD;GP.assign(z),oM.assign(ne);const ie=I0(wm("lineDistance").mul(E));(y?ie.add(y):ie).mod(GP.add(oM)).greaterThan(GP).discard()}}let vD=null;class vY extends ZB{static get type(){return"ViewportSharedTextureNode"}constructor(y=Hy,E=null){vD===null&&(vD=new P2),super(y,E,vD)}updateReference(){return this}}const a7=Do(vY).setParameterLength(0,2),yY=new oe;class Hue extends null{static get type(){return"Line2NodeMaterial"}constructor(y={}){super(),this.isLine2NodeMaterial=!0,this.setDefaultValues(yY),this.useColor=y.vertexColors,this.dashOffset=0,this.lineWidth=1,this.lineColorNode=null,this.offsetNode=null,this.dashScaleNode=null,this.dashSizeNode=null,this.gapSizeNode=null,this.blending=NoBlending,this._useDash=y.dashed,this._useAlphaToCoverage=!0,this._useWorldUnits=!1,this.setValues(y)}setup(y){const{renderer:E}=y,z=this._useAlphaToCoverage,ne=this.useColor,ie=this._useDash,se=this._useWorldUnits,ae=$i(({start:pe,end:ve})=>{const xe=k0.element(2).element(2),De=k0.element(3).element(2).mul(-.5).div(xe).sub(pe.z).div(ve.z.sub(pe.z));return Da(Qc(pe.xyz,ve.xyz,De),ve.w)}).setLayout({name:"trimSegment",type:"vec4",inputs:[{name:"start",type:"vec4"},{name:"end",type:"vec4"}]});this.vertexNode=$i(()=>{const pe=wm("instanceStart"),ve=wm("instanceEnd"),xe=Da(F1.mul(Da(pe,1))).toVar("start"),Se=Da(F1.mul(Da(ve,1))).toVar("end");if(ie){const st=this.dashScaleNode?Dn(this.dashScaleNode):iD,ct=this.offsetNode?Dn(this.offsetNode):sD,ut=wm("instanceDistanceStart"),ht=wm("instanceDistanceEnd");let pt=Cg.y.lessThan(.5).select(st.mul(ut),st.mul(ht));pt=pt.add(ct),F0("float","lineDistance").assign(pt)}se&&(F0("vec3","worldStart").assign(xe.xyz),F0("vec3","worldEnd").assign(Se.xyz));const Be=I1.z.div(I1.w),De=k0.element(2).element(3).equal(-1);$l(De,()=>{$l(xe.z.lessThan(0).and(Se.z.greaterThan(0)),()=>{Se.assign(ae({start:xe,end:Se}))}).ElseIf(Se.z.lessThan(0).and(xe.z.greaterThanEqual(0)),()=>{xe.assign(ae({start:Se,end:xe}))})});const Re=k0.mul(xe),Oe=k0.mul(Se),Le=Re.xyz.div(Re.w),Je=Oe.xyz.div(Oe.w),$e=Je.xy.sub(Le.xy).toVar();$e.x.assign($e.x.mul(Be)),$e.assign($e.normalize());const _e=Da().toVar();if(se){const st=Se.xyz.sub(xe.xyz).normalize(),ct=Qc(xe.xyz,Se.xyz,.5).normalize(),ut=st.cross(ct).normalize(),ht=st.cross(ut),pt=F0("vec4","worldPos");pt.assign(Cg.y.lessThan(.5).select(xe,Se));const gt=QB.mul(.5);pt.addAssign(Da(Cg.x.lessThan(0).select(ut.mul(gt),ut.mul(gt).negate()),0)),ie||(pt.addAssign(Da(Cg.y.lessThan(.5).select(st.mul(gt).negate(),st.mul(gt)),0)),pt.addAssign(Da(ht.mul(gt),0)),$l(Cg.y.greaterThan(1).or(Cg.y.lessThan(0)),()=>{pt.subAssign(Da(ht.mul(2).mul(gt),0))})),_e.assign(k0.mul(pt));const zt=Li().toVar();zt.assign(Cg.y.lessThan(.5).select(Le,Je)),_e.z.assign(zt.z.mul(_e.w))}else{const st=Qo($e.y,$e.x.negate()).toVar("offset");$e.x.assign($e.x.div(Be)),st.x.assign(st.x.div(Be)),st.assign(Cg.x.lessThan(0).select(st.negate(),st)),$l(Cg.y.lessThan(0),()=>{st.assign(st.sub($e))}).ElseIf(Cg.y.greaterThan(1),()=>{st.assign(st.add($e))}),st.assign(st.mul(QB)),st.assign(st.div(I1.w)),_e.assign(Cg.y.lessThan(.5).select(Re,Oe)),st.assign(st.mul(_e.w)),_e.assign(_e.add(Da(st,0,0)))}return _e})();const he=$i(({p1:pe,p2:ve,p3:xe,p4:Se})=>{const Be=pe.sub(xe),De=Se.sub(xe),Re=ve.sub(pe),Oe=Be.dot(De),Le=De.dot(Re),Je=Be.dot(Re),$e=De.dot(De),st=Re.dot(Re).mul($e).sub(Le.mul(Le)),ut=Oe.mul(Le).sub(Je.mul($e)).div(st).clamp(),ht=Oe.add(Le.mul(ut)).div($e).clamp();return Qo(ut,ht)});if(this.colorNode=$i(()=>{const pe=nd();if(ie){const Se=this.dashSizeNode?Dn(this.dashSizeNode):rD,Be=this.gapSizeNode?Dn(this.gapSizeNode):oD;GP.assign(Se),oM.assign(Be);const De=F0("float","lineDistance");pe.y.lessThan(-1).or(pe.y.greaterThan(1)).discard(),De.mod(GP.add(oM)).greaterThan(GP).discard()}const ve=Dn(1).toVar("alpha");if(se){const Se=F0("vec3","worldStart"),Be=F0("vec3","worldEnd"),De=F0("vec4","worldPos").xyz.normalize().mul(1e5),Re=Be.sub(Se),Oe=he({p1:Se,p2:Be,p3:Li(0,0,0),p4:De}),Le=Se.add(Re.mul(Oe.x)),Je=De.mul(Oe.y),st=Le.sub(Je).length().div(QB);if(!ie)if(z&&E.samples>1){const ct=st.fwidth();ve.assign(wv(ct.negate().add(.5),ct.add(.5),st).oneMinus())}else st.greaterThan(.5).discard()}else if(z&&E.samples>1){const Se=pe.x,Be=pe.y.greaterThan(0).select(pe.y.sub(1),pe.y.add(1)),De=Se.mul(Se).add(Be.mul(Be)),Re=Dn(De.fwidth()).toVar("dlen");$l(pe.y.abs().greaterThan(1),()=>{ve.assign(wv(Re.oneMinus(),Re.add(1),De).oneMinus())})}else $l(pe.y.abs().greaterThan(1),()=>{const Se=pe.x,Be=pe.y.greaterThan(0).select(pe.y.sub(1),pe.y.add(1));Se.mul(Se).add(Be.mul(Be)).greaterThan(1).discard()});let xe;if(this.lineColorNode)xe=this.lineColorNode;else if(ne){const Se=wm("instanceColorStart"),Be=wm("instanceColorEnd");xe=Cg.y.lessThan(.5).select(Se,Be).mul(GB)}else xe=GB;return Da(xe,ve)})(),this.transparent){const pe=this.opacityNode?Dn(this.opacityNode):XB;this.outputNode=Da(this.colorNode.rgb.mul(pe).add(a7().rgb.mul(pe.oneMinus())),this.colorNode.a)}super.setup(y)}get worldUnits(){return this._useWorldUnits}set worldUnits(y){this._useWorldUnits!==y&&(this._useWorldUnits=y,this.needsUpdate=!0)}get dashed(){return this._useDash}set dashed(y){this._useDash!==y&&(this._useDash=y,this.needsUpdate=!0)}get alphaToCoverage(){return this._useAlphaToCoverage}set alphaToCoverage(y){this._useAlphaToCoverage!==y&&(this._useAlphaToCoverage=y,this.needsUpdate=!0)}}const l7=ee=>wo(ee).mul(.5).add(.5),AY=ee=>wo(ee).mul(2).sub(1),xY=new a;class wY extends $d{static get type(){return"MeshNormalNodeMaterial"}constructor(y){super(),this.isMeshNormalNodeMaterial=!0,this.setDefaultValues(xY),this.setValues(y)}setupDiffuseColor(){const y=this.opacityNode?Dn(this.opacityNode):XB;Wc.assign(LB(Da(l7(_d),y),Wf))}}class SY extends gf{static get type(){return"EquirectUVNode"}constructor(y=Y8){super("vec2"),this.dirNode=y}setup(){const y=this.dirNode,E=y.z.atan(y.x).mul(1/(Math.PI*2)).add(.5),z=y.y.clamp(-1,1).asin().mul(1/Math.PI).add(.5);return Qo(E,z)}}const yD=Do(SY).setParameterLength(0,1);class u7 extends Jx{constructor(y=1,E={}){super(y,E),this.isCubeRenderTarget=!0}fromEquirectangularTexture(y,E){const z=E.minFilter,ne=E.generateMipmaps;E.generateMipmaps=!0,this.texture.type=E.type,this.texture.colorSpace=E.colorSpace,this.texture.generateMipmaps=E.generateMipmaps,this.texture.minFilter=E.minFilter,this.texture.magFilter=E.magFilter;const ie=new Wa(5,5,5),se=yD(Y8),ae=new $d;ae.colorNode=dc(E,se,0),ae.side=wc,ae.blending=of;const he=new Bc(ie,ae),pe=new Pw;pe.add(he),E.minFilter===mp&&(E.minFilter=qu);const ve=new sP(1,10,this),xe=y.getMRT();return y.setMRT(null),ve.update(y,pe),y.setMRT(xe),E.minFilter=z,E.currentGenerateMipmaps=ne,he.geometry.dispose(),he.material.dispose(),this}}const bM=new WeakMap;class PY extends gf{static get type(){return"CubeMapNode"}constructor(y){super("vec3"),this.envNode=y,this._cubeTexture=null,this._cubeTextureNode=VE(null);const E=new Gr;E.isRenderTargetTexture=!0,this._defaultTexture=E,this.updateBeforeType=Uu.RENDER}updateBefore(y){const{renderer:E,material:z}=y,ne=this.envNode;if(ne.isTextureNode||ne.isMaterialReferenceNode){const ie=ne.isTextureNode?ne.value:z[ne.property];if(ie&&ie.isTexture){const se=ie.mapping;if(se===nA||se===cd){if(bM.has(ie)){const ae=bM.get(ie);h7(ae,ie.mapping),this._cubeTexture=ae}else{const ae=ie.image;if(CY(ae)){const he=new u7(ae.height);he.fromEquirectangularTexture(E,ie),h7(he.texture,ie.mapping),this._cubeTexture=he.texture,bM.set(ie,he.texture),ie.addEventListener("dispose",c7)}else this._cubeTexture=this._defaultTexture}this._cubeTextureNode.value=this._cubeTexture}else this._cubeTextureNode=this.envNode}}}setup(y){return this.updateBefore(y),this._cubeTextureNode}}function CY(ee){return ee==null?!1:ee.height>0}function c7(ee){const y=ee.target;y.removeEventListener("dispose",c7);const E=bM.get(y);E!==void 0&&(bM.delete(y),E.dispose())}function h7(ee,y){y===nA?ee.mapping=ud:y===cd&&(ee.mapping=Xf)}const d7=Do(PY).setParameterLength(1);class AD extends GE{static get type(){return"BasicEnvironmentNode"}constructor(y=null){super(),this.envNode=y}setup(y){y.context.environment=d7(this.envNode)}}class EY extends GE{static get type(){return"BasicLightMapNode"}constructor(y=null){super(),this.lightMapNode=y}setup(y){const E=Dn(1/Math.PI);y.context.irradianceLightMap=this.lightMapNode.mul(E)}}class YB{start(y){y.lightsNode.setupLights(y,y.lightsNode.getLightNodes(y)),this.indirect(y)}finish(){}direct(){}directRectArea(){}indirect(){}ambientOcclusion(){}}class f7 extends YB{constructor(){super()}indirect({context:y}){const E=y.ambientOcclusion,z=y.reflectedLight,ne=y.irradianceLightMap;z.indirectDiffuse.assign(Da(0)),ne?z.indirectDiffuse.addAssign(ne):z.indirectDiffuse.addAssign(Da(1,1,1,0)),z.indirectDiffuse.mulAssign(E),z.indirectDiffuse.mulAssign(Wc.rgb)}finish(y){const{material:E,context:z}=y,ne=z.outgoingLight,ie=y.context.environment;if(ie)switch(E.combine){case Fu:ne.rgb.assign(Qc(ne.rgb,ne.rgb.mul(ie.rgb),xM.mul(WB)));break;case th:ne.rgb.assign(Qc(ne.rgb,ie.rgb,xM.mul(WB)));break;case ld:ne.rgb.addAssign(ie.rgb.mul(xM.mul(WB)));break;default:console.warn("THREE.BasicLightingModel: Unsupported .combine value:",E.combine);break}}}const bY=new Yd;class MY extends $d{static get type(){return"MeshBasicNodeMaterial"}constructor(y){super(),this.isMeshBasicNodeMaterial=!0,this.lights=!0,this.setDefaultValues(bY),this.setValues(y)}setupNormal(){return Uy}setupEnvironment(y){const E=super.setupEnvironment(y);return E?new AD(E):null}setupLightMap(y){let E=null;return y.material.lightMap&&(E=new EY(aD)),E}setupOutgoingLight(){return Wc.rgb}setupLightingModel(){return new f7}}const QE=$i(({f0:ee,f90:y,dotVH:E})=>{const z=E.mul(-5.55473).sub(6.98316).mul(E).exp2();return ee.mul(z.oneMinus()).add(y.mul(z))}),QP=$i(ee=>ee.diffuseColor.mul(1/Math.PI)),BY=()=>Dn(.25),TY=$i(({dotNH:ee})=>PB.mul(Dn(.5)).add(1).mul(Dn(1/Math.PI)).mul(ee.pow(PB))),DY=$i(({lightDirection:ee})=>{const y=ee.add(id).normalize(),E=_d.dot(y).clamp(),z=id.dot(y).clamp(),ne=QE({f0:qm,f90:1,dotVH:z}),ie=BY(),se=TY({dotNH:E});return ne.mul(ie).mul(se)});class p7 extends f7{constructor(y=!0){super(),this.specular=y}direct({lightDirection:y,lightColor:E,reflectedLight:z}){const ie=_d.dot(y).clamp().mul(E);z.directDiffuse.addAssign(ie.mul(QP({diffuseColor:Wc.rgb}))),this.specular===!0&&z.directSpecular.addAssign(ie.mul(DY({lightDirection:y})).mul(xM))}indirect(y){const{ambientOcclusion:E,irradiance:z,reflectedLight:ne}=y.context;ne.indirectDiffuse.addAssign(z.mul(QP({diffuseColor:Wc}))),ne.indirectDiffuse.mulAssign(E)}}const NY=new x;class FY extends $d{static get type(){return"MeshLambertNodeMaterial"}constructor(y){super(),this.isMeshLambertNodeMaterial=!0,this.lights=!0,this.setDefaultValues(NY),this.setValues(y)}setupEnvironment(y){const E=super.setupEnvironment(y);return E?new AD(E):null}setupLightingModel(){return new p7(!1)}}const LY=new Xw;class IY extends $d{static get type(){return"MeshPhongNodeMaterial"}constructor(y){super(),this.isMeshPhongNodeMaterial=!0,this.lights=!0,this.shininessNode=null,this.specularNode=null,this.setDefaultValues(LY),this.setValues(y)}setupEnvironment(y){const E=super.setupEnvironment(y);return E?new AD(E):null}setupLightingModel(){return new p7}setupVariants(){const y=(this.shininessNode?Dn(this.shininessNode):yI).max(1e-4);PB.assign(y);const E=this.specularNode||xI;qm.assign(E)}copy(y){return this.shininessNode=y.shininessNode,this.specularNode=y.specularNode,super.copy(y)}}const g7=$i(ee=>{if(ee.geometry.hasAttribute("normal")===!1)return Dn(0);const y=Uy.dFdx().abs().max(Uy.dFdy().abs());return y.x.max(y.y).max(y.z)}),xD=$i(ee=>{const{roughness:y}=ee,E=g7();let z=y.max(.0525);return z=z.add(E),z=z.min(1),z}),m7=$i(({alpha:ee,dotNL:y,dotNV:E})=>{const z=ee.pow2(),ne=y.mul(z.add(z.oneMinus().mul(E.pow2())).sqrt()),ie=E.mul(z.add(z.oneMinus().mul(y.pow2())).sqrt());return xv(.5,ne.add(ie).max(_L))}).setLayout({name:"V_GGX_SmithCorrelated",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNL",type:"float"},{name:"dotNV",type:"float"}]}),kY=$i(({alphaT:ee,alphaB:y,dotTV:E,dotBV:z,dotTL:ne,dotBL:ie,dotNV:se,dotNL:ae})=>{const he=ae.mul(Li(ee.mul(E),y.mul(z),se).length()),pe=se.mul(Li(ee.mul(ne),y.mul(ie),ae).length());return xv(.5,he.add(pe)).saturate()}).setLayout({name:"V_GGX_SmithCorrelated_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotTV",type:"float",qualifier:"in"},{name:"dotBV",type:"float",qualifier:"in"},{name:"dotTL",type:"float",qualifier:"in"},{name:"dotBL",type:"float",qualifier:"in"},{name:"dotNV",type:"float",qualifier:"in"},{name:"dotNL",type:"float",qualifier:"in"}]}),v7=$i(({alpha:ee,dotNH:y})=>{const E=ee.pow2(),z=y.pow2().mul(E.oneMinus()).oneMinus();return E.div(z.pow2()).mul(1/Math.PI)}).setLayout({name:"D_GGX",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNH",type:"float"}]}),OY=Dn(1/Math.PI),RY=$i(({alphaT:ee,alphaB:y,dotNH:E,dotTH:z,dotBH:ne})=>{const ie=ee.mul(y),se=Li(y.mul(z),ee.mul(ne),ie.mul(E)),ae=se.dot(se),he=ie.div(ae);return OY.mul(ie.mul(he.pow2()))}).setLayout({name:"D_GGX_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotNH",type:"float",qualifier:"in"},{name:"dotTH",type:"float",qualifier:"in"},{name:"dotBH",type:"float",qualifier:"in"}]}),wD=$i(ee=>{const{lightDirection:y,f0:E,f90:z,roughness:ne,f:ie,USE_IRIDESCENCE:se,USE_ANISOTROPY:ae}=ee,he=ee.normalView||_d,pe=ne.pow2(),ve=y.add(id).normalize(),xe=he.dot(y).clamp(),Se=he.dot(id).clamp(),Be=he.dot(ve).clamp(),De=id.dot(ve).clamp();let Re=QE({f0:E,f90:z,dotVH:De}),Oe,Le;if(_2(se)&&(Re=wB.mix(Re,ie)),_2(ae)){const Je=iM.dot(y),$e=iM.dot(id),_e=iM.dot(ve),st=jP.dot(y),ct=jP.dot(id),ut=jP.dot(ve);Oe=kY({alphaT:SB,alphaB:pe,dotTV:$e,dotBV:ct,dotTL:Je,dotBL:st,dotNV:Se,dotNL:xe}),Le=RY({alphaT:SB,alphaB:pe,dotNH:Be,dotTH:_e,dotBH:ut})}else Oe=m7({alpha:pe,dotNL:xe,dotNV:Se}),Le=v7({alpha:pe,dotNH:Be});return Re.mul(Oe).mul(Le)}),SD=$i(({roughness:ee,dotNV:y})=>{const E=Da(-1,-.0275,-.572,.022),z=Da(1,.0425,1.04,-.04),ne=ee.mul(E).add(z),ie=ne.x.mul(ne.x).min(y.mul(-9.28).exp2()).mul(ne.x).add(ne.y);return Qo(-1.04,1.04).mul(ie).add(ne.zw)}).setLayout({name:"DFGApprox",type:"vec2",inputs:[{name:"roughness",type:"float"},{name:"dotNV",type:"vec3"}]}),y7=$i(ee=>{const{dotNV:y,specularColor:E,specularF90:z,roughness:ne}=ee,ie=SD({dotNV:y,roughness:ne});return E.mul(ie.x).add(z.mul(ie.y))}),A7=$i(({f:ee,f90:y,dotVH:E})=>{const z=E.oneMinus().saturate(),ne=z.mul(z),ie=z.mul(ne,ne).clamp(0,.9999);return ee.sub(Li(y).mul(ie)).div(ie.oneMinus())}).setLayout({name:"Schlick_to_F0",type:"vec3",inputs:[{name:"f",type:"vec3"},{name:"f90",type:"float"},{name:"dotVH",type:"float"}]}),zY=$i(({roughness:ee,dotNH:y})=>{const E=ee.pow2(),z=Dn(1).div(E),ie=y.pow2().oneMinus().max(.0078125);return Dn(2).add(z).mul(ie.pow(z.mul(.5))).div(2*Math.PI)}).setLayout({name:"D_Charlie",type:"float",inputs:[{name:"roughness",type:"float"},{name:"dotNH",type:"float"}]}),UY=$i(({dotNV:ee,dotNL:y})=>Dn(1).div(Dn(4).mul(y.add(ee).sub(y.mul(ee))))).setLayout({name:"V_Neubelt",type:"float",inputs:[{name:"dotNV",type:"float"},{name:"dotNL",type:"float"}]}),HY=$i(({lightDirection:ee})=>{const y=ee.add(id).normalize(),E=_d.dot(ee).clamp(),z=_d.dot(id).clamp(),ne=_d.dot(y).clamp(),ie=zY({roughness:xB,dotNH:ne}),se=UY({dotNV:z,dotNL:E});return VP.mul(ie).mul(se)}),VY=$i(({N:ee,V:y,roughness:E})=>{const ie=.0078125,se=ee.dot(y).saturate(),ae=Qo(E,se.oneMinus().sqrt());return ae.assign(ae.mul(.984375).add(ie)),ae}).setLayout({name:"LTC_Uv",type:"vec2",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"roughness",type:"float"}]}),x7=$i(({f:ee})=>{const y=ee.length();return qd(y.mul(y).add(ee.z).div(y.add(1)),0)}).setLayout({name:"LTC_ClippedSphereFormFactor",type:"float",inputs:[{name:"f",type:"vec3"}]}),sS=$i(({v1:ee,v2:y})=>{const E=ee.dot(y),z=E.abs().toVar(),ne=z.mul(.0145206).add(.4965155).mul(z).add(.8543985).toVar(),ie=z.add(4.1616724).mul(z).add(3.417594).toVar(),se=ne.div(ie),ae=E.greaterThan(0).select(se,qd(E.mul(E).oneMinus(),1e-7).inverseSqrt().mul(.5).sub(se));return ee.cross(y).mul(ae)}).setLayout({name:"LTC_EdgeVectorFormFactor",type:"vec3",inputs:[{name:"v1",type:"vec3"},{name:"v2",type:"vec3"}]}),w7=$i(({N:ee,V:y,P:E,mInv:z,p0:ne,p1:ie,p2:se,p3:ae})=>{const he=ie.sub(ne).toVar(),pe=ae.sub(ne).toVar(),ve=he.cross(pe),xe=Li().toVar();return $l(ve.dot(E.sub(ne)).greaterThanEqual(0),()=>{const Se=y.sub(ee.mul(y.dot(ee))).normalize(),Be=ee.cross(Se).negate(),De=z.mul($g(Se,Be,ee).transpose()).toVar(),Re=De.mul(ne.sub(E)).normalize().toVar(),Oe=De.mul(ie.sub(E)).normalize().toVar(),Le=De.mul(se.sub(E)).normalize().toVar(),Je=De.mul(ae.sub(E)).normalize().toVar(),$e=Li(0).toVar();$e.addAssign(sS({v1:Re,v2:Oe})),$e.addAssign(sS({v1:Oe,v2:Le})),$e.addAssign(sS({v1:Le,v2:Je})),$e.addAssign(sS({v1:Je,v2:Re})),xe.assign(Li(x7({f:$e})))}),xe}).setLayout({name:"LTC_Evaluate",type:"vec3",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"P",type:"vec3"},{name:"mInv",type:"mat3"},{name:"p0",type:"vec3"},{name:"p1",type:"vec3"},{name:"p2",type:"vec3"},{name:"p3",type:"vec3"}]}),jY=$i(({P:ee,p0:y,p1:E,p2:z,p3:ne})=>{const ie=E.sub(y).toVar(),se=ne.sub(y).toVar(),ae=ie.cross(se),he=Li().toVar();return $l(ae.dot(ee.sub(y)).greaterThanEqual(0),()=>{const pe=y.sub(ee).normalize().toVar(),ve=E.sub(ee).normalize().toVar(),xe=z.sub(ee).normalize().toVar(),Se=ne.sub(ee).normalize().toVar(),Be=Li(0).toVar();Be.addAssign(sS({v1:pe,v2:ve})),Be.addAssign(sS({v1:ve,v2:xe})),Be.addAssign(sS({v1:xe,v2:Se})),Be.addAssign(sS({v1:Se,v2:pe})),he.assign(Li(x7({f:Be.abs()})))}),he}).setLayout({name:"LTC_Evaluate",type:"vec3",inputs:[{name:"P",type:"vec3"},{name:"p0",type:"vec3"},{name:"p1",type:"vec3"},{name:"p2",type:"vec3"},{name:"p3",type:"vec3"}]}),KB=1/6,S7=ee=>Lu(KB,Lu(ee,Lu(ee,ee.negate().add(3)).sub(3)).add(1)),PD=ee=>Lu(KB,Lu(ee,Lu(ee,Lu(3,ee).sub(6))).add(4)),P7=ee=>Lu(KB,Lu(ee,Lu(ee,Lu(-3,ee).add(3)).add(3)).add(1)),CD=ee=>Lu(KB,zy(ee,3)),C7=ee=>S7(ee).add(PD(ee)),E7=ee=>P7(ee).add(CD(ee)),b7=ee=>kf(-1,PD(ee).div(S7(ee).add(PD(ee)))),M7=ee=>kf(1,CD(ee).div(P7(ee).add(CD(ee)))),B7=(ee,y,E)=>{const z=ee.uvNode,ne=Lu(z,y.zw).add(.5),ie=VA(ne),se=M1(ne),ae=C7(se.x),he=E7(se.x),pe=b7(se.x),ve=M7(se.x),xe=b7(se.y),Se=M7(se.y),Be=Qo(ie.x.add(pe),ie.y.add(xe)).sub(.5).mul(y.xy),De=Qo(ie.x.add(ve),ie.y.add(xe)).sub(.5).mul(y.xy),Re=Qo(ie.x.add(pe),ie.y.add(Se)).sub(.5).mul(y.xy),Oe=Qo(ie.x.add(ve),ie.y.add(Se)).sub(.5).mul(y.xy),Le=C7(se.y).mul(kf(ae.mul(ee.sample(Be).level(E)),he.mul(ee.sample(De).level(E)))),Je=E7(se.y).mul(kf(ae.mul(ee.sample(Re).level(E)),he.mul(ee.sample(Oe).level(E))));return Le.add(Je)},T7=$i(([ee,y=Dn(3)])=>{const E=Qo(ee.size(gi(y))),z=Qo(ee.size(gi(y.add(1)))),ne=xv(1,E),ie=xv(1,z),se=B7(ee,Da(ne,E),VA(y)),ae=B7(ee,Da(ie,z),BB(y));return M1(y).mix(se,ae)}),D7=$i(([ee,y,E,z,ne])=>{const ie=Li(R8(y.negate(),b1(ee),xv(1,z))),se=Li(jA(ne[0].xyz),jA(ne[1].xyz),jA(ne[2].xyz));return b1(ie).mul(E.mul(se))}).setLayout({name:"getVolumeTransmissionRay",type:"vec3",inputs:[{name:"n",type:"vec3"},{name:"v",type:"vec3"},{name:"thickness",type:"float"},{name:"ior",type:"float"},{name:"modelMatrix",type:"mat4"}]}),GY=$i(([ee,y])=>ee.mul(GA(y.mul(2).sub(2),0,1))).setLayout({name:"applyIorToRoughness",type:"float",inputs:[{name:"roughness",type:"float"},{name:"ior",type:"float"}]}),XY=cD(),WY=cD(),N7=$i(([ee,y,E],{material:z})=>{const ie=(z.side===wc?XY:WY).sample(ee),se=UA(PM.x).mul(GY(y,E));return T7(ie,se)}),F7=$i(([ee,y,E])=>($l(E.notEqual(0),()=>{const z=MB(y).negate().div(E);return M8(z.negate().mul(ee))}),Li(1))).setLayout({name:"volumeAttenuation",type:"vec3",inputs:[{name:"transmissionDistance",type:"float"},{name:"attenuationColor",type:"vec3"},{name:"attenuationDistance",type:"float"}]}),QY=$i(([ee,y,E,z,ne,ie,se,ae,he,pe,ve,xe,Se,Be,De])=>{let Re,Oe;if(De){Re=Da().toVar(),Oe=Li().toVar();const st=ve.sub(1).mul(De.mul(.025)),ct=Li(ve.sub(st),ve,ve.add(st));qc({start:0,end:3},({i:ut})=>{const ht=ct.element(ut),pt=D7(ee,y,xe,ht,ae),gt=se.add(pt),zt=pe.mul(he.mul(Da(gt,1))),cn=Qo(zt.xy.div(zt.w)).toVar();cn.addAssign(1),cn.divAssign(2),cn.assign(Qo(cn.x,cn.y.oneMinus()));const Tn=N7(cn,E,ht);Re.element(ut).assign(Tn.element(ut)),Re.a.addAssign(Tn.a),Oe.element(ut).assign(z.element(ut).mul(F7(jA(pt),Se,Be).element(ut)))}),Re.a.divAssign(3)}else{const st=D7(ee,y,xe,ve,ae),ct=se.add(st),ut=pe.mul(he.mul(Da(ct,1))),ht=Qo(ut.xy.div(ut.w)).toVar();ht.addAssign(1),ht.divAssign(2),ht.assign(Qo(ht.x,ht.y.oneMinus())),Re=N7(ht,E,ve),Oe=z.mul(F7(jA(st),Se,Be))}const Le=Oe.rgb.mul(Re.rgb),Je=ee.dot(y).clamp(),$e=Li(y7({dotNV:Je,specularColor:ne,specularF90:ie,roughness:E})),_e=Oe.r.add(Oe.g,Oe.b).div(3);return Da($e.oneMinus().mul(Le),Re.a.oneMinus().mul(_e).oneMinus())}),ZY=$g(3.2404542,-.969266,.0556434,-1.5371385,1.8760108,-.2040259,-.4985314,.041556,1.0572252),YY=ee=>{const y=ee.sqrt();return Li(1).add(y).div(Li(1).sub(y))},L7=(ee,y)=>ee.sub(y).div(ee.add(y)).pow2(),KY=(ee,y)=>{const E=ee.mul(2*Math.PI*1e-9),z=Li(54856e-17,44201e-17,52481e-17),ne=Li(1681e3,1795300,2208400),ie=Li(43278e5,93046e5,66121e5),se=Dn(9747e-17*Math.sqrt(2*Math.PI*45282e5)).mul(E.mul(2239900).add(y.x).cos()).mul(E.pow2().mul(-45282e5).exp());let ae=z.mul(ie.mul(2*Math.PI).sqrt()).mul(ne.mul(E).add(y).cos()).mul(E.pow2().negate().mul(ie).exp());return ae=Li(ae.x.add(se),ae.y,ae.z).div(10685e-11),ZY.mul(ae)},JY=$i(({outsideIOR:ee,eta2:y,cosTheta1:E,thinFilmThickness:z,baseF0:ne})=>{const ie=Qc(ee,y,wv(0,.03,z)),ae=ee.div(ie).pow2().mul(E.pow2().oneMinus()).oneMinus();$l(ae.lessThan(0),()=>Li(1));const he=ae.sqrt(),pe=L7(ie,ee),ve=QE({f0:pe,f90:1,dotVH:E}),xe=ve.oneMinus(),Se=ie.lessThan(ee).select(Math.PI,0),Be=Dn(Math.PI).sub(Se),De=YY(ne.clamp(0,.9999)),Re=L7(De,ie.toVec3()),Oe=QE({f0:Re,f90:1,dotVH:he}),Le=Li(De.x.lessThan(ie).select(Math.PI,0),De.y.lessThan(ie).select(Math.PI,0),De.z.lessThan(ie).select(Math.PI,0)),Je=ie.mul(z,he,2),$e=Li(Be).add(Le),_e=ve.mul(Oe).clamp(1e-5,.9999),st=_e.sqrt(),ct=xe.pow2().mul(Oe).div(Li(1).sub(_e)),ht=ve.add(ct).toVar(),pt=ct.sub(xe).toVar();return qc({start:1,end:2,condition:"<=",name:"m"},({m:gt})=>{pt.mulAssign(st);const zt=KY(Dn(gt).mul(Je),Dn(gt).mul($e)).mul(2);ht.addAssign(pt.mul(zt))}),ht.max(Li(0))}).setLayout({name:"evalIridescence",type:"vec3",inputs:[{name:"outsideIOR",type:"float"},{name:"eta2",type:"float"},{name:"cosTheta1",type:"float"},{name:"thinFilmThickness",type:"float"},{name:"baseF0",type:"vec3"}]}),qY=$i(({normal:ee,viewDir:y,roughness:E})=>{const z=ee.dot(y).saturate(),ne=E.pow2(),ie=kp(E.lessThan(.25),Dn(-339.2).mul(ne).add(Dn(161.4).mul(E)).sub(25.9),Dn(-8.48).mul(ne).add(Dn(14.3).mul(E)).sub(9.95)),se=kp(E.lessThan(.25),Dn(44).mul(ne).sub(Dn(23.7).mul(E)).add(3.26),Dn(1.97).mul(ne).sub(Dn(3.27).mul(E)).add(.72));return kp(E.lessThan(.25),0,Dn(.1).mul(E).sub(.025)).add(ie.mul(z).add(se).exp()).mul(1/Math.PI).saturate()}),ED=Li(.04),bD=Dn(1);class I7 extends YB{constructor(y=!1,E=!1,z=!1,ne=!1,ie=!1,se=!1){super(),this.clearcoat=y,this.sheen=E,this.iridescence=z,this.anisotropy=ne,this.transmission=ie,this.dispersion=se,this.clearcoatRadiance=null,this.clearcoatSpecularDirect=null,this.clearcoatSpecularIndirect=null,this.sheenSpecularDirect=null,this.sheenSpecularIndirect=null,this.iridescenceFresnel=null,this.iridescenceF0=null}start(y){if(this.clearcoat===!0&&(this.clearcoatRadiance=Li().toVar("clearcoatRadiance"),this.clearcoatSpecularDirect=Li().toVar("clearcoatSpecularDirect"),this.clearcoatSpecularIndirect=Li().toVar("clearcoatSpecularIndirect")),this.sheen===!0&&(this.sheenSpecularDirect=Li().toVar("sheenSpecularDirect"),this.sheenSpecularIndirect=Li().toVar("sheenSpecularIndirect")),this.iridescence===!0){const E=_d.dot(id).clamp();this.iridescenceFresnel=JY({outsideIOR:Dn(1),eta2:y8,cosTheta1:E,thinFilmThickness:A8,baseF0:qm}),this.iridescenceF0=A7({f:this.iridescenceFresnel,f90:1,dotVH:E})}if(this.transmission===!0){const E=Ev,z=pM.sub(Ev).normalize(),ne=UB,ie=y.context;ie.backdrop=QY(ne,z,zA,Wc,qm,rM,E,Cv,Sm,k0,sM,x8,S8,w8,this.dispersion?P8:null),ie.backdropAlpha=CB,Wc.a.mulAssign(Qc(1,ie.backdrop.a,CB))}super.start(y)}computeMultiscattering(y,E,z){const ne=_d.dot(id).clamp(),ie=SD({roughness:zA,dotNV:ne}),ae=(this.iridescenceF0?wB.mix(qm,this.iridescenceF0):qm).mul(ie.x).add(z.mul(ie.y)),pe=ie.x.add(ie.y).oneMinus(),ve=qm.add(qm.oneMinus().mul(.047619)),xe=ae.mul(ve).div(pe.mul(ve).oneMinus());y.addAssign(ae),E.addAssign(xe.mul(pe))}direct({lightDirection:y,lightColor:E,reflectedLight:z}){const ie=_d.dot(y).clamp().mul(E);if(this.sheen===!0&&this.sheenSpecularDirect.addAssign(ie.mul(HY({lightDirection:y}))),this.clearcoat===!0){const ae=HE.dot(y).clamp().mul(E);this.clearcoatSpecularDirect.addAssign(ae.mul(wD({lightDirection:y,f0:ED,f90:bD,roughness:nM,normalView:HE})))}z.directDiffuse.addAssign(ie.mul(QP({diffuseColor:Wc.rgb}))),z.directSpecular.addAssign(ie.mul(wD({lightDirection:y,f0:qm,f90:1,roughness:zA,iridescence:this.iridescence,f:this.iridescenceFresnel,USE_IRIDESCENCE:this.iridescence,USE_ANISOTROPY:this.anisotropy})))}directRectArea({lightColor:y,lightPosition:E,halfWidth:z,halfHeight:ne,reflectedLight:ie,ltc_1:se,ltc_2:ae}){const he=E.add(z).sub(ne),pe=E.sub(z).sub(ne),ve=E.sub(z).add(ne),xe=E.add(z).add(ne),Se=_d,Be=id,De=Of.toVar(),Re=VY({N:Se,V:Be,roughness:zA}),Oe=se.sample(Re).toVar(),Le=ae.sample(Re).toVar(),Je=$g(Li(Oe.x,0,Oe.y),Li(0,1,0),Li(Oe.z,0,Oe.w)).toVar(),$e=qm.mul(Le.x).add(qm.oneMinus().mul(Le.y)).toVar();ie.directSpecular.addAssign(y.mul($e).mul(w7({N:Se,V:Be,P:De,mInv:Je,p0:he,p1:pe,p2:ve,p3:xe}))),ie.directDiffuse.addAssign(y.mul(Wc).mul(w7({N:Se,V:Be,P:De,mInv:$g(1,0,0,0,1,0,0,0,1),p0:he,p1:pe,p2:ve,p3:xe})))}indirect(y){this.indirectDiffuse(y),this.indirectSpecular(y),this.ambientOcclusion(y)}indirectDiffuse(y){const{irradiance:E,reflectedLight:z}=y.context;z.indirectDiffuse.addAssign(E.mul(QP({diffuseColor:Wc})))}indirectSpecular(y){const{radiance:E,iblIrradiance:z,reflectedLight:ne}=y.context;if(this.sheen===!0&&this.sheenSpecularIndirect.addAssign(z.mul(VP,qY({normal:_d,viewDir:id,roughness:xB}))),this.clearcoat===!0){const ve=HE.dot(id).clamp(),xe=y7({dotNV:ve,specularColor:ED,specularF90:bD,roughness:nM});this.clearcoatSpecularIndirect.addAssign(this.clearcoatRadiance.mul(xe))}const ie=Li().toVar("singleScattering"),se=Li().toVar("multiScattering"),ae=z.mul(1/Math.PI);this.computeMultiscattering(ie,se,rM);const he=ie.add(se),pe=Wc.mul(he.r.max(he.g).max(he.b).oneMinus());ne.indirectSpecular.addAssign(E.mul(ie)),ne.indirectSpecular.addAssign(se.mul(ae)),ne.indirectDiffuse.addAssign(pe.mul(ae))}ambientOcclusion(y){const{ambientOcclusion:E,reflectedLight:z}=y.context,ie=_d.dot(id).clamp().add(E),se=zA.mul(-16).oneMinus().negate().exp2(),ae=E.sub(ie.pow(se).oneMinus()).clamp();this.clearcoat===!0&&this.clearcoatSpecularIndirect.mulAssign(E),this.sheen===!0&&this.sheenSpecularIndirect.mulAssign(E),z.indirectDiffuse.mulAssign(E),z.indirectSpecular.mulAssign(ae)}finish({context:y}){const{outgoingLight:E}=y;if(this.clearcoat===!0){const z=HE.dot(id).clamp(),ne=QE({dotVH:z,f0:ED,f90:bD}),ie=E.mul(AB.mul(ne).oneMinus()).add(this.clearcoatSpecularDirect.add(this.clearcoatSpecularIndirect).mul(AB));E.assign(ie)}if(this.sheen===!0){const z=VP.r.max(VP.g).max(VP.b).mul(.157).oneMinus(),ne=E.mul(z).add(this.sheenSpecularDirect,this.sheenSpecularIndirect);E.assign(ne)}}}const k7=Dn(1),MD=Dn(-2),JB=Dn(.8),BD=Dn(-1),qB=Dn(.4),TD=Dn(2),_B=Dn(.305),DD=Dn(3),O7=Dn(.21),_Y=Dn(4),R7=Dn(4),$Y=Dn(16),eK=$i(([ee])=>{const y=Li(Kh(ee)).toVar(),E=Dn(-1).toVar();return $l(y.x.greaterThan(y.z),()=>{$l(y.x.greaterThan(y.y),()=>{E.assign(kp(ee.x.greaterThan(0),0,3))}).Else(()=>{E.assign(kp(ee.y.greaterThan(0),1,4))})}).Else(()=>{$l(y.z.greaterThan(y.y),()=>{E.assign(kp(ee.z.greaterThan(0),2,5))}).Else(()=>{E.assign(kp(ee.y.greaterThan(0),1,4))})}),E}).setLayout({name:"getFace",type:"float",inputs:[{name:"direction",type:"vec3"}]}),tK=$i(([ee,y])=>{const E=Qo().toVar();return $l(y.equal(0),()=>{E.assign(Qo(ee.z,ee.y).div(Kh(ee.x)))}).ElseIf(y.equal(1),()=>{E.assign(Qo(ee.x.negate(),ee.z.negate()).div(Kh(ee.y)))}).ElseIf(y.equal(2),()=>{E.assign(Qo(ee.x.negate(),ee.y).div(Kh(ee.z)))}).ElseIf(y.equal(3),()=>{E.assign(Qo(ee.z.negate(),ee.y).div(Kh(ee.x)))}).ElseIf(y.equal(4),()=>{E.assign(Qo(ee.x.negate(),ee.z).div(Kh(ee.y)))}).Else(()=>{E.assign(Qo(ee.x,ee.y).div(Kh(ee.z)))}),Lu(.5,E.add(1))}).setLayout({name:"getUV",type:"vec2",inputs:[{name:"direction",type:"vec3"},{name:"face",type:"float"}]}),nK=$i(([ee])=>{const y=Dn(0).toVar();return $l(ee.greaterThanEqual(JB),()=>{y.assign(k7.sub(ee).mul(BD.sub(MD)).div(k7.sub(JB)).add(MD))}).ElseIf(ee.greaterThanEqual(qB),()=>{y.assign(JB.sub(ee).mul(TD.sub(BD)).div(JB.sub(qB)).add(BD))}).ElseIf(ee.greaterThanEqual(_B),()=>{y.assign(qB.sub(ee).mul(DD.sub(TD)).div(qB.sub(_B)).add(TD))}).ElseIf(ee.greaterThanEqual(O7),()=>{y.assign(_B.sub(ee).mul(_Y.sub(DD)).div(_B.sub(O7)).add(DD))}).Else(()=>{y.assign(Dn(-2).mul(UA(Lu(1.16,ee))))}),y}).setLayout({name:"roughnessToMip",type:"float",inputs:[{name:"roughness",type:"float"}]}),z7=$i(([ee,y])=>{const E=ee.toVar();E.assign(Lu(2,E).sub(1));const z=Li(E,1).toVar();return $l(y.equal(0),()=>{z.assign(z.zyx)}).ElseIf(y.equal(1),()=>{z.assign(z.xzy),z.xz.mulAssign(-1)}).ElseIf(y.equal(2),()=>{z.x.mulAssign(-1)}).ElseIf(y.equal(3),()=>{z.assign(z.zyx),z.xz.mulAssign(-1)}).ElseIf(y.equal(4),()=>{z.assign(z.xzy),z.xy.mulAssign(-1)}).ElseIf(y.equal(5),()=>{z.z.mulAssign(-1)}),z}).setLayout({name:"getDirection",type:"vec3",inputs:[{name:"uv",type:"vec2"},{name:"face",type:"float"}]}),U7=$i(([ee,y,E,z,ne,ie])=>{const se=Dn(E),ae=Li(y),he=GA(nK(se),MD,ie),pe=M1(he),ve=VA(he),xe=Li(ND(ee,ae,ve,z,ne,ie)).toVar();return $l(pe.notEqual(0),()=>{const Se=Li(ND(ee,ae,ve.add(1),z,ne,ie)).toVar();xe.assign(Qc(xe,Se,pe))}),xe}),ND=$i(([ee,y,E,z,ne,ie])=>{const se=Dn(E).toVar(),ae=Li(y),he=Dn(eK(ae)).toVar(),pe=Dn(qd(R7.sub(se),0)).toVar();se.assign(qd(se,R7));const ve=Dn(UE(se)).toVar(),xe=Qo(tK(ae,he).mul(ve.sub(2)).add(1)).toVar();return $l(he.greaterThan(2),()=>{xe.y.addAssign(ve),he.subAssign(3)}),xe.x.addAssign(he.mul(ve)),xe.x.addAssign(pe.mul(Lu(3,$Y))),xe.y.addAssign(Lu(4,UE(ie).sub(ve))),xe.x.mulAssign(z),xe.y.mulAssign(ne),ee.sample(xe).grad(Qo(),Qo())}),FD=$i(({envMap:ee,mipInt:y,outputDirection:E,theta:z,axis:ne,CUBEUV_TEXEL_WIDTH:ie,CUBEUV_TEXEL_HEIGHT:se,CUBEUV_MAX_MIP:ae})=>{const he=B1(z),pe=E.mul(he).add(ne.cross(E).mul(L0(z))).add(ne.mul(ne.dot(E).mul(he.oneMinus())));return ND(ee,pe,y,ie,se,ae)}),H7=$i(({n:ee,latitudinal:y,poleAxis:E,outputDirection:z,weights:ne,samples:ie,dTheta:se,mipInt:ae,envMap:he,CUBEUV_TEXEL_WIDTH:pe,CUBEUV_TEXEL_HEIGHT:ve,CUBEUV_MAX_MIP:xe})=>{const Se=Li(kp(y,E,DB(E,z))).toVar();$l(Se.equal(Li(0)),()=>{Se.assign(Li(z.z,0,z.x.negate()))}),Se.assign(b1(Se));const Be=Li().toVar();return Be.addAssign(ne.element(0).mul(FD({theta:0,axis:Se,outputDirection:z,mipInt:ae,envMap:he,CUBEUV_TEXEL_WIDTH:pe,CUBEUV_TEXEL_HEIGHT:ve,CUBEUV_MAX_MIP:xe}))),qc({start:gi(1),end:ee},({i:De})=>{$l(De.greaterThanEqual(ie),()=>{qI()});const Re=Dn(se.mul(Dn(De))).toVar();Be.addAssign(ne.element(De).mul(FD({theta:Re.mul(-1),axis:Se,outputDirection:z,mipInt:ae,envMap:he,CUBEUV_TEXEL_WIDTH:pe,CUBEUV_TEXEL_HEIGHT:ve,CUBEUV_MAX_MIP:xe}))),Be.addAssign(ne.element(De).mul(FD({theta:Re,axis:Se,outputDirection:z,mipInt:ae,envMap:he,CUBEUV_TEXEL_WIDTH:pe,CUBEUV_TEXEL_HEIGHT:ve,CUBEUV_MAX_MIP:xe})))}),Da(Be,1)}),ZE=4,V7=[.125,.215,.35,.446,.526,.582],ZP=20,LD=new ed(-1,1,1,-1,0,1),iK=new Bd(90,1),j7=new ia;let ID=null,kD=0,OD=0;const YP=(1+Math.sqrt(5))/2,YE=1/YP,G7=[new yn(-YP,YE,0),new yn(YP,YE,0),new yn(-YE,0,YP),new yn(YE,0,YP),new yn(0,YP,-YE),new yn(0,YP,YE),new yn(-1,1,-1),new yn(1,1,-1),new yn(-1,1,1),new yn(1,1,1)],rK=new yn,X7=new WeakMap,oK=[3,1,5,0,4,2],RD=z7(nd(),wm("faceIndex")).normalize(),zD=Li(RD.x,RD.y,RD.z);class sK{constructor(y){this._renderer=y,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._lodMeshes=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._backgroundBox=null}get _hasInitialized(){return this._renderer.hasInitialized()}fromScene(y,E=0,z=.1,ne=100,ie={}){const{size:se=256,position:ae=rK,renderTarget:he=null}=ie;if(this._setSize(se),this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromScene() called before the backend is initialized. Try using .fromSceneAsync() instead.");const ve=he||this._allocateTarget();return ie.renderTarget=ve,this.fromSceneAsync(y,E,z,ne,ie),ve}ID=this._renderer.getRenderTarget(),kD=this._renderer.getActiveCubeFace(),OD=this._renderer.getActiveMipmapLevel();const pe=he||this._allocateTarget();return pe.depthBuffer=!0,this._init(pe),this._sceneToCubeUV(y,z,ne,pe,ae),E>0&&this._blur(pe,0,0,E),this._applyPMREM(pe),this._cleanup(pe),pe}fromSceneAsync(se){return Vl(this,arguments,function*(y,E=0,z=.1,ne=100,ie={}){return this._hasInitialized===!1&&(yield this._renderer.init()),this.fromScene(y,E,z,ne,ie)})}fromEquirectangular(y,E=null){if(this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromEquirectangular() called before the backend is initialized. Try using .fromEquirectangularAsync() instead."),this._setSizeFromTexture(y);const z=E||this._allocateTarget();return this.fromEquirectangularAsync(y,z),z}return this._fromTexture(y,E)}fromEquirectangularAsync(y,E=null){return Vl(this,null,function*(){return this._hasInitialized===!1&&(yield this._renderer.init()),this._fromTexture(y,E)})}fromCubemap(y,E=null){if(this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromCubemap() called before the backend is initialized. Try using .fromCubemapAsync() instead."),this._setSizeFromTexture(y);const z=E||this._allocateTarget();return this.fromCubemapAsync(y,E),z}return this._fromTexture(y,E)}fromCubemapAsync(y,E=null){return Vl(this,null,function*(){return this._hasInitialized===!1&&(yield this._renderer.init()),this._fromTexture(y,E)})}compileCubemapShader(){return Vl(this,null,function*(){this._cubemapMaterial===null&&(this._cubemapMaterial=Q7(),yield this._compileMaterial(this._cubemapMaterial))})}compileEquirectangularShader(){return Vl(this,null,function*(){this._equirectMaterial===null&&(this._equirectMaterial=Z7(),yield this._compileMaterial(this._equirectMaterial))})}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSizeFromTexture(y){y.mapping===ud||y.mapping===Xf?this._setSize(y.image.length===0?16:y.image[0].width||y.image[0].image.width):this._setSize(y.image.width/4)}_setSize(y){this._lodMax=Math.floor(Math.log2(y)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let y=0;y<this._lodPlanes.length;y++)this._lodPlanes[y].dispose()}_cleanup(y){this._renderer.setRenderTarget(ID,kD,OD),y.scissorTest=!1,$B(y,0,0,y.width,y.height)}_fromTexture(y,E){this._setSizeFromTexture(y),ID=this._renderer.getRenderTarget(),kD=this._renderer.getActiveCubeFace(),OD=this._renderer.getActiveMipmapLevel();const z=E||this._allocateTarget();return this._init(z),this._textureToCubeUV(y,z),this._applyPMREM(z),this._cleanup(z),z}_allocateTarget(){const y=3*Math.max(this._cubeSize,112),E=4*this._cubeSize;return W7(y,E)}_init(y){if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==y.width||this._pingPongRenderTarget.height!==y.height){this._pingPongRenderTarget!==null&&this._dispose(),this._pingPongRenderTarget=W7(y.width,y.height);const{_lodMax:E}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas,lodMeshes:this._lodMeshes}=aK(E)),this._blurMaterial=lK(E,y.width,y.height)}}_compileMaterial(y){return Vl(this,null,function*(){const E=new Bc(this._lodPlanes[0],y);yield this._renderer.compile(E,LD)})}_sceneToCubeUV(y,E,z,ne,ie){const se=iK;se.near=E,se.far=z;const ae=[1,1,1,1,-1,1],he=[1,-1,1,-1,1,-1],pe=this._renderer,ve=pe.autoClear;pe.getClearColor(j7),pe.autoClear=!1;let xe=this._backgroundBox;if(xe===null){const De=new Yd({name:"PMREM.Background",side:wc,depthWrite:!1,depthTest:!1});xe=new Bc(new Wa,De)}let Se=!1;const Be=y.background;Be?Be.isColor&&(xe.material.color.copy(Be),y.background=null,Se=!0):(xe.material.color.copy(j7),Se=!0),pe.setRenderTarget(ne),pe.clear(),Se&&pe.render(xe,se);for(let De=0;De<6;De++){const Re=De%3;Re===0?(se.up.set(0,ae[De],0),se.position.set(ie.x,ie.y,ie.z),se.lookAt(ie.x+he[De],ie.y,ie.z)):Re===1?(se.up.set(0,0,ae[De]),se.position.set(ie.x,ie.y,ie.z),se.lookAt(ie.x,ie.y+he[De],ie.z)):(se.up.set(0,ae[De],0),se.position.set(ie.x,ie.y,ie.z),se.lookAt(ie.x,ie.y,ie.z+he[De]));const Oe=this._cubeSize;$B(ne,Re*Oe,De>2?Oe:0,Oe,Oe),pe.render(y,se)}pe.autoClear=ve,y.background=Be}_textureToCubeUV(y,E){const z=this._renderer,ne=y.mapping===ud||y.mapping===Xf;ne?this._cubemapMaterial===null&&(this._cubemapMaterial=Q7(y)):this._equirectMaterial===null&&(this._equirectMaterial=Z7(y));const ie=ne?this._cubemapMaterial:this._equirectMaterial;ie.fragmentNode.value=y;const se=this._lodMeshes[0];se.material=ie;const ae=this._cubeSize;$B(E,0,0,3*ae,2*ae),z.setRenderTarget(E),z.render(se,LD)}_applyPMREM(y){const E=this._renderer,z=E.autoClear;E.autoClear=!1;const ne=this._lodPlanes.length;for(let ie=1;ie<ne;ie++){const se=Math.sqrt(this._sigmas[ie]*this._sigmas[ie]-this._sigmas[ie-1]*this._sigmas[ie-1]),ae=G7[(ne-ie-1)%G7.length];this._blur(y,ie-1,ie,se,ae)}E.autoClear=z}_blur(y,E,z,ne,ie){const se=this._pingPongRenderTarget;this._halfBlur(y,se,E,z,ne,"latitudinal",ie),this._halfBlur(se,y,z,z,ne,"longitudinal",ie)}_halfBlur(y,E,z,ne,ie,se,ae){const he=this._renderer,pe=this._blurMaterial;se!=="latitudinal"&&se!=="longitudinal"&&console.error("blur direction must be either latitudinal or longitudinal!");const ve=3,xe=this._lodMeshes[ne];xe.material=pe;const Se=X7.get(pe),Be=this._sizeLods[z]-1,De=isFinite(ie)?Math.PI/(2*Be):2*Math.PI/(2*ZP-1),Re=ie/De,Oe=isFinite(ie)?1+Math.floor(ve*Re):ZP;Oe>ZP&&console.warn(`sigmaRadians, ${ie}, is too large and will clip, as it requested ${Oe} samples when the maximum is set to ${ZP}`);const Le=[];let Je=0;for(let ut=0;ut<ZP;++ut){const ht=ut/Re,pt=Math.exp(-ht*ht/2);Le.push(pt),ut===0?Je+=pt:ut<Oe&&(Je+=2*pt)}for(let ut=0;ut<Le.length;ut++)Le[ut]=Le[ut]/Je;y.texture.frame=(y.texture.frame||0)+1,Se.envMap.value=y.texture,Se.samples.value=Oe,Se.weights.array=Le,Se.latitudinal.value=se==="latitudinal"?1:0,ae&&(Se.poleAxis.value=ae);const{_lodMax:$e}=this;Se.dTheta.value=De,Se.mipInt.value=$e-z;const _e=this._sizeLods[ne],st=3*_e*(ne>$e-ZE?ne-$e+ZE:0),ct=4*(this._cubeSize-_e);$B(E,st,ct,3*_e,2*_e),he.setRenderTarget(E),he.render(xe,LD)}}function aK(ee){const y=[],E=[],z=[],ne=[];let ie=ee;const se=ee-ZE+1+V7.length;for(let ae=0;ae<se;ae++){const he=Math.pow(2,ie);E.push(he);let pe=1/he;ae>ee-ZE?pe=V7[ae-ee+ZE-1]:ae===0&&(pe=0),z.push(pe);const ve=1/(he-2),xe=-ve,Se=1+ve,Be=[xe,xe,Se,xe,Se,Se,xe,xe,Se,Se,xe,Se],De=6,Re=6,Oe=3,Le=2,Je=1,$e=new Float32Array(Oe*Re*De),_e=new Float32Array(Le*Re*De),st=new Float32Array(Je*Re*De);for(let ut=0;ut<De;ut++){const ht=ut%3*2/3-1,pt=ut>2?0:-1,gt=[ht,pt,0,ht+2/3,pt,0,ht+2/3,pt+1,0,ht,pt,0,ht+2/3,pt+1,0,ht,pt+1,0],zt=oK[ut];$e.set(gt,Oe*Re*zt),_e.set(Be,Le*Re*zt);const cn=[zt,zt,zt,zt,zt,zt];st.set(cn,Je*Re*zt)}const ct=new Tu;ct.setAttribute("position",new rh($e,Oe)),ct.setAttribute("uv",new rh(_e,Le)),ct.setAttribute("faceIndex",new rh(st,Je)),y.push(ct),ne.push(new Bc(ct,null)),ie>ZE&&ie--}return{lodPlanes:y,sizeLods:E,sigmas:z,lodMeshes:ne}}function W7(ee,y){const E={magFilter:qu,minFilter:qu,generateMipmaps:!1,type:Hc,format:Ws,colorSpace:Fm},z=new p0(ee,y,E);return z.texture.mapping=Q0,z.texture.name="PMREM.cubeUv",z.texture.isPMREMTexture=!0,z.scissorTest=!0,z}function $B(ee,y,E,z,ne){ee.viewport.set(y,E,z,ne),ee.scissor.set(y,E,z,ne)}function UD(ee){const y=new $d;return y.depthTest=!1,y.depthWrite=!1,y.blending=of,y.name=`PMREM_${ee}`,y}function lK(ee,y,E){const z=Sv(new Array(ZP).fill(0)),ne=vl(new yn(0,1,0)),ie=vl(0),se=Dn(ZP),ae=vl(0),he=vl(1),pe=dc(null),ve=vl(0),xe=Dn(1/y),Se=Dn(1/E),Be=Dn(ee),De={n:se,latitudinal:ae,weights:z,poleAxis:ne,outputDirection:zD,dTheta:ie,samples:he,envMap:pe,mipInt:ve,CUBEUV_TEXEL_WIDTH:xe,CUBEUV_TEXEL_HEIGHT:Se,CUBEUV_MAX_MIP:Be},Re=UD("blur");return Re.fragmentNode=H7(tx(Hd({},De),{latitudinal:ae.equal(1)})),X7.set(Re,De),Re}function Q7(ee){const y=UD("cubemap");return y.fragmentNode=VE(ee,zD),y}function Z7(ee){const y=UD("equirect");return y.fragmentNode=dc(ee,yD(zD),0),y}const Y7=new WeakMap;function uK(ee){const y=Math.log2(ee)-2,E=1/ee;return{texelWidth:1/(3*Math.max(Math.pow(2,y),7*16)),texelHeight:E,maxMip:y}}function cK(ee,y,E){const z=hK(y);let ne=z.get(ee);if((ne!==void 0?ne.pmremVersion:-1)!==ee.pmremVersion){const se=ee.image;if(ee.isCubeTexture)if(fK(se))ne=E.fromCubemap(ee,ne);else return null;else if(pK(se))ne=E.fromEquirectangular(ee,ne);else return null;ne.pmremVersion=ee.pmremVersion,z.set(ee,ne)}return ne.texture}function hK(ee){let y=Y7.get(ee);return y===void 0&&(y=new WeakMap,Y7.set(ee,y)),y}class dK extends gf{static get type(){return"PMREMNode"}constructor(y,E=null,z=null){super("vec3"),this._value=y,this._pmrem=null,this.uvNode=E,this.levelNode=z,this._generator=null;const ne=new nh;ne.isRenderTargetTexture=!0,this._texture=dc(ne),this._width=vl(0),this._height=vl(0),this._maxMip=vl(0),this.updateBeforeType=Uu.RENDER}set value(y){this._value=y,this._pmrem=null}get value(){return this._value}updateFromTexture(y){const E=uK(y.image.height);this._texture.value=y,this._width.value=E.texelWidth,this._height.value=E.texelHeight,this._maxMip.value=E.maxMip}updateBefore(y){let E=this._pmrem;const z=E?E.pmremVersion:-1,ne=this._value;z!==ne.pmremVersion&&(ne.isPMREMTexture===!0?E=ne:E=cK(ne,y.renderer,this._generator),E!==null&&(this._pmrem=E,this.updateFromTexture(E)))}setup(y){this._generator===null&&(this._generator=new sK(y.renderer)),this.updateBefore(y);let E=this.uvNode;E===null&&y.context.getUV&&(E=y.context.getUV(this)),E=q8.mul(Li(E.x,E.y.negate(),E.z));let z=this.levelNode;return z===null&&y.context.getTextureLevel&&(z=y.context.getTextureLevel(this)),U7(this._texture,E,z,this._width,this._height,this._maxMip)}dispose(){super.dispose(),this._generator!==null&&this._generator.dispose()}}function fK(ee){if(ee==null)return!1;let y=0;const E=6;for(let z=0;z<E;z++)ee[z]!==void 0&&y++;return y===E}function pK(ee){return ee==null?!1:ee.height>0}const HD=Do(dK).setParameterLength(1,3),K7=new WeakMap;class gK extends GE{static get type(){return"EnvironmentNode"}constructor(y=null){super(),this.envNode=y}setup(y){const{material:E}=y;let z=this.envNode;if(z.isTextureNode||z.isMaterialReferenceNode){const xe=z.isTextureNode?z.value:E[z.property];let Se=K7.get(xe);Se===void 0&&(Se=HD(xe),K7.set(xe,Se)),z=Se}const ie=E.useAnisotropy===!0||E.anisotropy>0?pI:_d,se=z.context(J7(zA,ie)).mul(HB),ae=z.context(mK(UB)).mul(Math.PI).mul(HB),he=hM(se),pe=hM(ae);y.context.radiance.addAssign(he),y.context.iblIrradiance.addAssign(pe);const ve=y.context.lightingModel.clearcoatRadiance;if(ve){const xe=z.context(J7(nM,HE)).mul(HB),Se=hM(xe);ve.addAssign(Se)}}}const J7=(ee,y)=>{let E=null;return{getUV:()=>(E===null&&(E=id.negate().reflect(y),E=ee.mul(ee).mix(E,y).normalize(),E=E.transformDirection(Sm)),E),getTextureLevel:()=>ee}},mK=ee=>({getUV:()=>ee,getTextureLevel:()=>Dn(1)}),vK=new $f;class q7 extends $d{static get type(){return"MeshStandardNodeMaterial"}constructor(y){super(),this.isMeshStandardNodeMaterial=!0,this.lights=!0,this.emissiveNode=null,this.metalnessNode=null,this.roughnessNode=null,this.setDefaultValues(vK),this.setValues(y)}setupEnvironment(y){let E=super.setupEnvironment(y);return E===null&&y.environmentNode&&(E=y.environmentNode),E?new gK(E):null}setupLightingModel(){return new I7}setupSpecular(){const y=Qc(Li(.04),Wc.rgb,tM);qm.assign(y),rM.assign(1)}setupVariants(){const y=this.metalnessNode?Dn(this.metalnessNode):PI;tM.assign(y);let E=this.roughnessNode?Dn(this.roughnessNode):SI;E=xD({roughness:E}),zA.assign(E),this.setupSpecular(),Wc.assign(Da(Wc.rgb.mul(y.oneMinus()),Wc.a))}copy(y){return this.emissiveNode=y.emissiveNode,this.metalnessNode=y.metalnessNode,this.roughnessNode=y.roughnessNode,super.copy(y)}}const yK=new m1;class AK extends q7{static get type(){return"MeshPhysicalNodeMaterial"}constructor(y){super(),this.isMeshPhysicalNodeMaterial=!0,this.clearcoatNode=null,this.clearcoatRoughnessNode=null,this.clearcoatNormalNode=null,this.sheenNode=null,this.sheenRoughnessNode=null,this.iridescenceNode=null,this.iridescenceIORNode=null,this.iridescenceThicknessNode=null,this.specularIntensityNode=null,this.specularColorNode=null,this.iorNode=null,this.transmissionNode=null,this.thicknessNode=null,this.attenuationDistanceNode=null,this.attenuationColorNode=null,this.dispersionNode=null,this.anisotropyNode=null,this.setDefaultValues(yK),this.setValues(y)}get useClearcoat(){return this.clearcoat>0||this.clearcoatNode!==null}get useIridescence(){return this.iridescence>0||this.iridescenceNode!==null}get useSheen(){return this.sheen>0||this.sheenNode!==null}get useAnisotropy(){return this.anisotropy>0||this.anisotropyNode!==null}get useTransmission(){return this.transmission>0||this.transmissionNode!==null}get useDispersion(){return this.dispersion>0||this.dispersionNode!==null}setupSpecular(){const y=this.iorNode?Dn(this.iorNode):RI;sM.assign(y),qm.assign(Qc(_m(I8(sM.sub(1).div(sM.add(1))).mul(wI),Li(1)).mul(nD),Wc.rgb,tM)),rM.assign(Qc(nD,1,tM))}setupLightingModel(){return new I7(this.useClearcoat,this.useSheen,this.useIridescence,this.useAnisotropy,this.useTransmission,this.useDispersion)}setupVariants(y){if(super.setupVariants(y),this.useClearcoat){const E=this.clearcoatNode?Dn(this.clearcoatNode):EI,z=this.clearcoatRoughnessNode?Dn(this.clearcoatRoughnessNode):bI;AB.assign(E),nM.assign(xD({roughness:z}))}if(this.useSheen){const E=this.sheenNode?Li(this.sheenNode):TI,z=this.sheenRoughnessNode?Dn(this.sheenRoughnessNode):DI;VP.assign(E),xB.assign(z)}if(this.useIridescence){const E=this.iridescenceNode?Dn(this.iridescenceNode):FI,z=this.iridescenceIORNode?Dn(this.iridescenceIORNode):LI,ne=this.iridescenceThicknessNode?Dn(this.iridescenceThicknessNode):II;wB.assign(E),y8.assign(z),A8.assign(ne)}if(this.useAnisotropy){const E=(this.anisotropyNode?Qo(this.anisotropyNode):NI).toVar();nS.assign(E.length()),$l(nS.equal(0),()=>{E.assign(Qo(1,0))}).Else(()=>{E.divAssign(Qo(nS)),nS.assign(nS.saturate())}),SB.assign(nS.pow2().mix(zA.pow2(),1)),iM.assign(XP[0].mul(E.x).add(XP[1].mul(E.y))),jP.assign(XP[1].mul(E.x).sub(XP[0].mul(E.y)))}if(this.useTransmission){const E=this.transmissionNode?Dn(this.transmissionNode):kI,z=this.thicknessNode?Dn(this.thicknessNode):OI,ne=this.attenuationDistanceNode?Dn(this.attenuationDistanceNode):zI,ie=this.attenuationColorNode?Li(this.attenuationColorNode):UI;if(CB.assign(E),x8.assign(z),w8.assign(ne),S8.assign(ie),this.useDispersion){const se=this.dispersionNode?Dn(this.dispersionNode):VI;P8.assign(se)}}}setupClearcoatNormal(){return this.clearcoatNormalNode?Li(this.clearcoatNormalNode):MI}setup(y){y.context.setupClearcoatNormal=()=>this.setupClearcoatNormal(y),super.setup(y)}copy(y){return this.clearcoatNode=y.clearcoatNode,this.clearcoatRoughnessNode=y.clearcoatRoughnessNode,this.clearcoatNormalNode=y.clearcoatNormalNode,this.sheenNode=y.sheenNode,this.sheenRoughnessNode=y.sheenRoughnessNode,this.iridescenceNode=y.iridescenceNode,this.iridescenceIORNode=y.iridescenceIORNode,this.iridescenceThicknessNode=y.iridescenceThicknessNode,this.specularIntensityNode=y.specularIntensityNode,this.specularColorNode=y.specularColorNode,this.transmissionNode=y.transmissionNode,this.thicknessNode=y.thicknessNode,this.attenuationDistanceNode=y.attenuationDistanceNode,this.attenuationColorNode=y.attenuationColorNode,this.dispersionNode=y.dispersionNode,this.anisotropyNode=y.anisotropyNode,super.copy(y)}}class xK extends null{constructor(y=!1,E=!1,z=!1,ne=!1,ie=!1,se=!1,ae=!1){super(y,E,z,ne,ie,se),this.useSSS=ae}direct({lightDirection:y,lightColor:E,reflectedLight:z},ne){if(this.useSSS===!0){const ie=ne.material,{thicknessColorNode:se,thicknessDistortionNode:ae,thicknessAmbientNode:he,thicknessAttenuationNode:pe,thicknessPowerNode:ve,thicknessScaleNode:xe}=ie,Se=y.add(_d.mul(ae)).normalize(),Be=Dn(id.dot(Se.negate()).saturate().pow(ve).mul(xe)),De=Li(Be.add(he).mul(se));z.directDiffuse.addAssign(De.mul(pe.mul(E)))}super.direct({lightDirection:y,lightColor:E,reflectedLight:z},ne)}}class Vue extends null{static get type(){return"MeshSSSNodeMaterial"}constructor(y){super(y),this.thicknessColorNode=null,this.thicknessDistortionNode=Dn(.1),this.thicknessAmbientNode=Dn(0),this.thicknessAttenuationNode=Dn(.1),this.thicknessPowerNode=Dn(2),this.thicknessScaleNode=Dn(10)}get useSSS(){return this.thicknessColorNode!==null}setupLightingModel(){return new xK(this.useClearcoat,this.useSheen,this.useIridescence,this.useAnisotropy,this.useTransmission,this.useDispersion,this.useSSS)}copy(y){return this.thicknessColorNode=y.thicknessColorNode,this.thicknessDistortionNode=y.thicknessDistortionNode,this.thicknessAmbientNode=y.thicknessAmbientNode,this.thicknessAttenuationNode=y.thicknessAttenuationNode,this.thicknessPowerNode=y.thicknessPowerNode,this.thicknessScaleNode=y.thicknessScaleNode,super.copy(y)}}const wK=$i(({normal:ee,lightDirection:y,builder:E})=>{const z=ee.dot(y),ne=Qo(z.mul(.5).add(.5),0);if(E.material.gradientMap){const ie=L1("gradientMap","texture").context({getUV:()=>ne});return Li(ie.r)}else{const ie=ne.fwidth().mul(.5);return Qc(Li(.7),Li(1),wv(Dn(.7).sub(ie.x),Dn(.7).add(ie.x),ne.x))}});class SK extends YB{direct({lightDirection:y,lightColor:E,reflectedLight:z},ne){const ie=wK({normal:zB,lightDirection:y,builder:ne}).mul(E);z.directDiffuse.addAssign(ie.mul(QP({diffuseColor:Wc.rgb})))}indirect(y){const{ambientOcclusion:E,irradiance:z,reflectedLight:ne}=y.context;ne.indirectDiffuse.addAssign(z.mul(QP({diffuseColor:Wc}))),ne.indirectDiffuse.mulAssign(E)}}const PK=new vE;class CK extends $d{static get type(){return"MeshToonNodeMaterial"}constructor(y){super(),this.isMeshToonNodeMaterial=!0,this.lights=!0,this.setDefaultValues(PK),this.setValues(y)}setupLightingModel(){return new SK}}class EK extends gf{static get type(){return"MatcapUVNode"}constructor(){super("vec2")}setup(){const y=Li(id.z,0,id.x.negate()).normalize(),E=id.cross(y);return Qo(y.dot(_d),E.dot(_d)).mul(.495).add(.5)}}const _7=Qs(EK),bK=new re;class MK extends $d{static get type(){return"MeshMatcapNodeMaterial"}constructor(y){super(),this.isMeshMatcapNodeMaterial=!0,this.setDefaultValues(bK),this.setValues(y)}setupVariants(y){const E=_7;let z;y.material.matcap?z=L1("matcap","texture").context({getUV:()=>E}):z=Li(Qc(.2,.8,E.y)),Wc.rgb.mulAssign(z.rgb)}}class BK extends gf{static get type(){return"RotateNode"}constructor(y,E){super(),this.positionNode=y,this.rotationNode=E}getNodeType(y){return this.positionNode.getNodeType(y)}setup(y){const{rotationNode:E,positionNode:z}=this;if(this.getNodeType(y)==="vec2"){const ie=E.cos(),se=E.sin();return yB(ie,se,se.negate(),ie).mul(z)}else{const ie=E,se=HP(Da(1,0,0,0),Da(0,B1(ie.x),L0(ie.x).negate(),0),Da(0,L0(ie.x),B1(ie.x),0),Da(0,0,0,1)),ae=HP(Da(B1(ie.y),0,L0(ie.y),0),Da(0,1,0,0),Da(L0(ie.y).negate(),0,B1(ie.y),0),Da(0,0,0,1)),he=HP(Da(B1(ie.z),L0(ie.z).negate(),0,0),Da(L0(ie.z),B1(ie.z),0,0),Da(0,0,1,0),Da(0,0,0,1));return se.mul(ae).mul(he).mul(Da(z,1)).xyz}}}const eT=Do(BK).setParameterLength(2),TK=new v2;class $7 extends $d{static get type(){return"SpriteNodeMaterial"}constructor(y){super(),this.isSpriteNodeMaterial=!0,this._useSizeAttenuation=!0,this.positionNode=null,this.rotationNode=null,this.scaleNode=null,this.transparent=!0,this.setDefaultValues(TK),this.setValues(y)}setupPositionView(y){const{object:E,camera:z}=y,ne=this.sizeAttenuation,{positionNode:ie,rotationNode:se,scaleNode:ae}=this,he=F1.mul(Li(ie||0));let pe=Qo(Cv[0].xyz.length(),Cv[1].xyz.length());if(ae!==null&&(pe=pe.mul(Qo(ae))),ne===!1)if(z.isPerspectiveCamera)pe=pe.mul(he.z.negate());else{const Be=Dn(2).div(k0.element(1).element(1));pe=pe.mul(Be.mul(2))}let ve=Cg.xy;if(E.center&&E.center.isVector2===!0){const Be=zQ("center","vec2",E);ve=ve.sub(Be.sub(.5))}ve=ve.mul(pe);const xe=Dn(se||BI),Se=eT(ve,xe);return Da(he.xy.add(Se),he.zw)}copy(y){return this.positionNode=y.positionNode,this.rotationNode=y.rotationNode,this.scaleNode=y.scaleNode,super.copy(y)}get sizeAttenuation(){return this._useSizeAttenuation}set sizeAttenuation(y){this._useSizeAttenuation!==y&&(this._useSizeAttenuation=y,this.needsUpdate=!0)}}const DK=new Iw;class NK extends $7{static get type(){return"PointsNodeMaterial"}constructor(y){super(),this.sizeNode=null,this.isPointsNodeMaterial=!0,this.setDefaultValues(DK),this.setValues(y)}setupPositionView(){const{positionNode:y}=this;return F1.mul(Li(y||vf)).xyz}setupVertex(y){const E=super.setupVertex(y);if(y.material.isNodeMaterial!==!0)return E;const{rotationNode:z,scaleNode:ne,sizeNode:ie}=this,se=Cg.xy.toVar(),ae=I1.z.div(I1.w);if(z&&z.isNode){const pe=Dn(z);se.assign(eT(se,pe))}let he=ie!==null?Qo(ie):HI;return this.sizeAttenuation===!0&&(he=he.mul(he.div(Of.z.negate()))),ne&&ne.isNode&&(he=he.mul(Qo(ne))),se.mulAssign(he.mul(2)),se.assign(se.div(I1.z)),se.y.assign(se.y.mul(ae)),se.assign(se.mul(E.w)),E.addAssign(Da(se,0,0)),E}get alphaToCoverage(){return this._useAlphaToCoverage}set alphaToCoverage(y){this._useAlphaToCoverage!==y&&(this._useAlphaToCoverage=y,this.needsUpdate=!0)}}class FK extends YB{constructor(){super(),this.shadowNode=Dn(1).toVar("shadowMask")}direct({lightNode:y}){y.shadowNode!==null&&this.shadowNode.mulAssign(y.shadowNode)}finish({context:y}){Wc.a.mulAssign(this.shadowNode.oneMinus()),y.outgoingLight.rgb.assign(Wc.rgb)}}const LK=new bP;class IK extends $d{static get type(){return"ShadowNodeMaterial"}constructor(y){super(),this.isShadowNodeMaterial=!0,this.lights=!0,this.transparent=!0,this.setDefaultValues(LK),this.setValues(y)}setupLightingModel(){return new FK}}const MM=tS("vec3"),e9=tS("vec3"),t9=tS("vec3");class kK extends null{constructor(){super()}start(y){const{material:E,context:z}=y,ne=tS("vec3"),ie=tS("vec3");$l(pM.sub(Ev).length().greaterThan(q4.mul(2)),()=>{ne.assign(pM),ie.assign(Ev)}).Else(()=>{ne.assign(Ev),ie.assign(pM)});const se=ie.sub(ne),ae=vl("int").onRenderUpdate(({material:Se})=>Se.steps),he=se.length().div(ae).toVar(),pe=se.normalize().toVar(),ve=Dn(0).toVar(),xe=Li(1).toVar();E.offsetNode&&ve.addAssign(E.offsetNode.mul(he)),qc(ae,()=>{const Se=ne.add(pe.mul(ve)),Be=Sm.mul(Da(Se,1)).xyz;E.depthNode!==null&&(e9.assign(WE(fD(Be.z,D1,N1))),z.sceneDepthNode=WE(E.depthNode).toVar()),z.positionWorld=Se,z.shadowPositionWorld=Se,z.positionView=Be,MM.assign(0);let De;E.scatteringNode&&(De=E.scatteringNode({positionRay:Se})),super.start(y),De&&MM.mulAssign(De);const Re=MM.mul(.01).negate().mul(he).exp();xe.mulAssign(Re),ve.addAssign(he)}),t9.addAssign(xe.saturate().oneMinus())}scatteringLight(y,E){const z=E.context.sceneDepthNode;z?$l(z.greaterThanEqual(e9),()=>{MM.addAssign(y)}):MM.addAssign(y)}direct({lightNode:y,lightColor:E},z){if(y.light.distance===void 0)return;const ne=E.xyz.toVar();ne.mulAssign(y.shadowNode),this.scatteringLight(ne,z)}directRectArea({lightColor:y,lightPosition:E,halfWidth:z,halfHeight:ne},ie){const se=E.add(z).sub(ne),ae=E.sub(z).sub(ne),he=E.sub(z).add(ne),pe=E.add(z).add(ne),ve=ie.context.positionView,xe=y.xyz.mul(jY({P:ve,p0:se,p1:ae,p2:he,p3:pe})).pow(1.5);this.scatteringLight(xe,ie)}finish(y){y.context.outgoingLight.assign(t9)}}class jue extends null{static get type(){return"VolumeNodeMaterial"}constructor(y){super(),this.isVolumeNodeMaterial=!0,this.steps=25,this.offsetNode=null,this.scatteringNode=null,this.lights=!0,this.transparent=!0,this.side=BackSide,this.depthTest=!1,this.depthWrite=!1,this.setValues(y)}setupLightingModel(){return new kK}}class OK{constructor(y,E){this.nodes=y,this.info=E,this._context=typeof self!="undefined"?self:null,this._animationLoop=null,this._requestId=null}start(){const y=(E,z)=>{this._requestId=this._context.requestAnimationFrame(y),this.info.autoReset===!0&&this.info.reset(),this.nodes.nodeFrame.update(),this.info.frame=this.nodes.nodeFrame.frameId,this._animationLoop!==null&&this._animationLoop(E,z)};y()}stop(){this._context.cancelAnimationFrame(this._requestId),this._requestId=null}getAnimationLoop(){return this._animationLoop}setAnimationLoop(y){this._animationLoop=y}getContext(){return this._context}setContext(y){this._context=y}dispose(){this.stop()}}class Vy{constructor(){this.weakMap=new WeakMap}get(y){let E=this.weakMap;for(let z=0;z<y.length-1;z++)if(E=E.get(y[z]),E===void 0)return;return E.get(y[y.length-1])}set(y,E){let z=this.weakMap;for(let ne=0;ne<y.length-1;ne++){const ie=y[ne];z.has(ie)===!1&&z.set(ie,new WeakMap),z=z.get(ie)}return z.set(y[y.length-1],E),this}delete(y){let E=this.weakMap;for(let z=0;z<y.length-1;z++)if(E=E.get(y[z]),E===void 0)return!1;return E.delete(y[y.length-1])}}let RK=0;function zK(ee){const y=Object.keys(ee);let E=Object.getPrototypeOf(ee);for(;E;){const z=Object.getOwnPropertyDescriptors(E);for(const ne in z)if(z[ne]!==void 0){const ie=z[ne];ie&&typeof ie.get=="function"&&y.push(ne)}E=Object.getPrototypeOf(E)}return y}class UK{constructor(y,E,z,ne,ie,se,ae,he,pe,ve){this.id=RK++,this._nodes=y,this._geometries=E,this.renderer=z,this.object=ne,this.material=ie,this.scene=se,this.camera=ae,this.lightsNode=he,this.context=pe,this.geometry=ne.geometry,this.version=ie.version,this.drawRange=null,this.attributes=null,this.pipeline=null,this.group=null,this.vertexBuffers=null,this.drawParams=null,this.bundle=null,this.clippingContext=ve,this.clippingContextCacheKey=ve!==null?ve.cacheKey:"",this.initialNodesCacheKey=this.getDynamicCacheKey(),this.initialCacheKey=this.getCacheKey(),this._nodeBuilderState=null,this._bindings=null,this._monitor=null,this.onDispose=null,this.isRenderObject=!0,this.onMaterialDispose=()=>{this.dispose()},this.material.addEventListener("dispose",this.onMaterialDispose)}updateClipping(y){this.clippingContext=y}get clippingNeedsUpdate(){return this.clippingContext===null||this.clippingContext.cacheKey===this.clippingContextCacheKey?!1:(this.clippingContextCacheKey=this.clippingContext.cacheKey,!0)}get hardwareClippingPlanes(){return this.material.hardwareClipping===!0?this.clippingContext.unionClippingCount:0}getNodeBuilderState(){return this._nodeBuilderState||(this._nodeBuilderState=this._nodes.getForRender(this))}getMonitor(){return this._monitor||(this._monitor=this.getNodeBuilderState().observer)}getBindings(){return this._bindings||(this._bindings=this.getNodeBuilderState().createBindings())}getBindingGroup(y){for(const E of this.getBindings())if(E.name===y)return E}getIndex(){return this._geometries.getIndex(this)}getIndirect(){return this._geometries.getIndirect(this)}getChainArray(){return[this.object,this.material,this.context,this.lightsNode]}setGeometry(y){this.geometry=y,this.attributes=null}getAttributes(){if(this.attributes!==null)return this.attributes;const y=this.getNodeBuilderState().nodeAttributes,E=this.geometry,z=[],ne=new Set;for(const ie of y){const se=ie.node&&ie.node.attribute?ie.node.attribute:E.getAttribute(ie.name);if(se===void 0)continue;z.push(se);const ae=se.isInterleavedBufferAttribute?se.data:se;ne.add(ae)}return this.attributes=z,this.vertexBuffers=Array.from(ne.values()),z}getVertexBuffers(){return this.vertexBuffers===null&&this.getAttributes(),this.vertexBuffers}getDrawParameters(){const{object:y,material:E,geometry:z,group:ne,drawRange:ie}=this,se=this.drawParams||(this.drawParams={vertexCount:0,firstVertex:0,instanceCount:0,firstInstance:0}),ae=this.getIndex(),he=ae!==null;let pe=1;if(z.isInstancedBufferGeometry===!0?pe=z.instanceCount:y.count!==void 0&&(pe=Math.max(0,y.count)),pe===0)return null;if(se.instanceCount=pe,y.isBatchedMesh===!0)return se;let ve=1;E.wireframe===!0&&!y.isPoints&&!y.isLineSegments&&!y.isLine&&!y.isLineLoop&&(ve=2);let xe=ie.start*ve,Se=(ie.start+ie.count)*ve;ne!==null&&(xe=Math.max(xe,ne.start*ve),Se=Math.min(Se,(ne.start+ne.count)*ve));const Be=z.attributes.position;let De=1/0;he?De=ae.count:Be!=null&&(De=Be.count),xe=Math.max(xe,0),Se=Math.min(Se,De);const Re=Se-xe;return Re<0||Re===1/0?null:(se.vertexCount=Re,se.firstVertex=xe,se)}getGeometryCacheKey(){const{geometry:y}=this;let E="";for(const z of Object.keys(y.attributes).sort()){const ne=y.attributes[z];E+=z+",",ne.data&&(E+=ne.data.stride+","),ne.offset&&(E+=ne.offset+","),ne.itemSize&&(E+=ne.itemSize+","),ne.normalized&&(E+="n,")}for(const z of Object.keys(y.morphAttributes).sort()){const ne=y.morphAttributes[z];E+="morph-"+z+",";for(let ie=0,se=ne.length;ie<se;ie++){const ae=ne[ie];E+=ae.id+","}}return y.index&&(E+="index,"),E}getMaterialCacheKey(){const{object:y,material:E}=this;let z=E.customProgramCacheKey();for(const ne of zK(E)){if(/^(is[A-Z]|_)|^(visible|version|uuid|name|opacity|userData)$/.test(ne))continue;const ie=E[ne];let se;if(ie!==null){const ae=typeof ie;ae==="number"?se=ie!==0?"1":"0":ae==="object"?(se="{",ie.isTexture&&(se+=ie.mapping),se+="}"):se=String(ie)}else se=String(ie);z+=se+","}return z+=this.clippingContextCacheKey+",",y.geometry&&(z+=this.getGeometryCacheKey()),y.skeleton&&(z+=y.skeleton.bones.length+","),y.isBatchedMesh&&(z+=y._matricesTexture.uuid+",",y._colorsTexture!==null&&(z+=y._colorsTexture.uuid+",")),y.count>1&&(z+=y.uuid+","),z+=y.receiveShadow+",",_3(z)}get needsGeometryUpdate(){return this.geometry.id!==this.object.geometry.id}get needsUpdate(){return this.initialNodesCacheKey!==this.getDynamicCacheKey()||this.clippingNeedsUpdate}getDynamicCacheKey(){let y=0;return this.material.isShadowPassMaterial!==!0&&(y=this._nodes.getCacheKey(this.scene,this.lightsNode)),this.camera.isArrayCamera&&(y=Y2(y,this.camera.cameras.length)),this.object.receiveShadow&&(y=Y2(y,1)),y}getCacheKey(){return this.getMaterialCacheKey()+this.getDynamicCacheKey()}dispose(){this.material.removeEventListener("dispose",this.onMaterialDispose),this.onDispose()}}const KP=[];class HK{constructor(y,E,z,ne,ie,se){this.renderer=y,this.nodes=E,this.geometries=z,this.pipelines=ne,this.bindings=ie,this.info=se,this.chainMaps={}}get(y,E,z,ne,ie,se,ae,he){const pe=this.getChainMap(he);KP[0]=y,KP[1]=E,KP[2]=se,KP[3]=ie;let ve=pe.get(KP);return ve===void 0?(ve=this.createRenderObject(this.nodes,this.geometries,this.renderer,y,E,z,ne,ie,se,ae,he),pe.set(KP,ve)):(ve.updateClipping(ae),ve.needsGeometryUpdate&&ve.setGeometry(y.geometry),(ve.version!==E.version||ve.needsUpdate)&&(ve.initialCacheKey!==ve.getCacheKey()?(ve.dispose(),ve=this.get(y,E,z,ne,ie,se,ae,he)):ve.version=E.version)),KP.length=0,ve}getChainMap(y="default"){return this.chainMaps[y]||(this.chainMaps[y]=new Vy)}dispose(){this.chainMaps={}}createRenderObject(y,E,z,ne,ie,se,ae,he,pe,ve,xe){const Se=this.getChainMap(xe),Be=new UK(y,E,z,ne,ie,se,ae,he,pe,ve);return Be.onDispose=()=>{this.pipelines.delete(Be),this.bindings.delete(Be),this.nodes.delete(Be),Se.delete(Be.getChainArray())},Be}}class aS{constructor(){this.data=new WeakMap}get(y){let E=this.data.get(y);return E===void 0&&(E={},this.data.set(y,E)),E}delete(y){let E=null;return this.data.has(y)&&(E=this.data.get(y),this.data.delete(y)),E}has(y){return this.data.has(y)}dispose(){this.data=new WeakMap}}const Mv={VERTEX:1,INDEX:2,STORAGE:3,INDIRECT:4},lS=16,VK=211,jK=212;class GK extends aS{constructor(y){super(),this.backend=y}delete(y){const E=super.delete(y);return E!==null&&this.backend.destroyAttribute(y),E}update(y,E){const z=this.get(y);if(z.version===void 0)E===Mv.VERTEX?this.backend.createAttribute(y):E===Mv.INDEX?this.backend.createIndexAttribute(y):E===Mv.STORAGE?this.backend.createStorageAttribute(y):E===Mv.INDIRECT&&this.backend.createIndirectStorageAttribute(y),z.version=this._getBufferAttribute(y).version;else{const ne=this._getBufferAttribute(y);(z.version<ne.version||ne.usage===oy)&&(this.backend.updateAttribute(y),z.version=ne.version)}}_getBufferAttribute(y){return y.isInterleavedBufferAttribute&&(y=y.data),y}}function n9(ee){return ee.index!==null?ee.index.version:ee.attributes.position.version}function i9(ee){const y=[],E=ee.index,z=ee.attributes.position;if(E!==null){const ie=E.array;for(let se=0,ae=ie.length;se<ae;se+=3){const he=ie[se+0],pe=ie[se+1],ve=ie[se+2];y.push(he,pe,pe,ve,ve,he)}}else{const ie=z.array;for(let se=0,ae=ie.length/3-1;se<ae;se+=3){const he=se+0,pe=se+1,ve=se+2;y.push(he,pe,pe,ve,ve,he)}}const ne=new(s2(y)?h2:nP)(y,1);return ne.version=n9(ee),ne}class XK extends aS{constructor(y,E){super(),this.attributes=y,this.info=E,this.wireframes=new WeakMap,this.attributeCall=new WeakMap}has(y){const E=y.geometry;return super.has(E)&&this.get(E).initialized===!0}updateForRender(y){this.has(y)===!1&&this.initGeometry(y),this.updateAttributes(y)}initGeometry(y){const E=y.geometry,z=this.get(E);z.initialized=!0,this.info.memory.geometries++;const ne=()=>{this.info.memory.geometries--;const ie=E.index,se=y.getAttributes();ie!==null&&this.attributes.delete(ie);for(const he of se)this.attributes.delete(he);const ae=this.wireframes.get(E);ae!==void 0&&this.attributes.delete(ae),E.removeEventListener("dispose",ne)};E.addEventListener("dispose",ne)}updateAttributes(y){const E=y.getAttributes();for(const ie of E)ie.isStorageBufferAttribute||ie.isStorageInstancedBufferAttribute?this.updateAttribute(ie,Mv.STORAGE):this.updateAttribute(ie,Mv.VERTEX);const z=this.getIndex(y);z!==null&&this.updateAttribute(z,Mv.INDEX);const ne=y.geometry.indirect;ne!==null&&this.updateAttribute(ne,Mv.INDIRECT)}updateAttribute(y,E){const z=this.info.render.calls;y.isInterleavedBufferAttribute?this.attributeCall.get(y)===void 0?(this.attributes.update(y,E),this.attributeCall.set(y,z)):this.attributeCall.get(y.data)!==z&&(this.attributes.update(y,E),this.attributeCall.set(y.data,z),this.attributeCall.set(y,z)):this.attributeCall.get(y)!==z&&(this.attributes.update(y,E),this.attributeCall.set(y,z))}getIndirect(y){return y.geometry.indirect}getIndex(y){const{geometry:E,material:z}=y;let ne=E.index;if(z.wireframe===!0){const ie=this.wireframes;let se=ie.get(E);se===void 0?(se=i9(E),ie.set(E,se)):se.version!==n9(E)&&(this.attributes.delete(se),se=i9(E),ie.set(E,se)),ne=se}return ne}}class WK{constructor(){this.autoReset=!0,this.frame=0,this.calls=0,this.render={calls:0,frameCalls:0,drawCalls:0,triangles:0,points:0,lines:0,timestamp:0},this.compute={calls:0,frameCalls:0,timestamp:0},this.memory={geometries:0,textures:0}}update(y,E,z){this.render.drawCalls++,y.isMesh||y.isSprite?this.render.triangles+=z*(E/3):y.isPoints?this.render.points+=z*E:y.isLineSegments?this.render.lines+=z*(E/2):y.isLine?this.render.lines+=z*(E-1):console.error("THREE.WebGPUInfo: Unknown object type.")}reset(){this.render.drawCalls=0,this.render.frameCalls=0,this.compute.frameCalls=0,this.render.triangles=0,this.render.points=0,this.render.lines=0}dispose(){this.reset(),this.calls=0,this.render.calls=0,this.compute.calls=0,this.render.timestamp=0,this.compute.timestamp=0,this.memory.geometries=0,this.memory.textures=0}}class r9{constructor(y){this.cacheKey=y,this.usedTimes=0}}class QK extends r9{constructor(y,E,z){super(y),this.vertexProgram=E,this.fragmentProgram=z}}class ZK extends r9{constructor(y,E){super(y),this.computeProgram=E,this.isComputePipeline=!0}}let YK=0;class VD{constructor(y,E,z,ne=null,ie=null){this.id=YK++,this.code=y,this.stage=E,this.name=z,this.transforms=ne,this.attributes=ie,this.usedTimes=0}}class KK extends aS{constructor(y,E){super(),this.backend=y,this.nodes=E,this.bindings=null,this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}getForCompute(y,E){const{backend:z}=this,ne=this.get(y);if(this._needsComputeUpdate(y)){const ie=ne.pipeline;ie&&(ie.usedTimes--,ie.computeProgram.usedTimes--);const se=this.nodes.getForCompute(y);let ae=this.programs.compute.get(se.computeShader);ae===void 0&&(ie&&ie.computeProgram.usedTimes===0&&this._releaseProgram(ie.computeProgram),ae=new VD(se.computeShader,"compute",y.name,se.transforms,se.nodeAttributes),this.programs.compute.set(se.computeShader,ae),z.createProgram(ae));const he=this._getComputeCacheKey(y,ae);let pe=this.caches.get(he);pe===void 0&&(ie&&ie.usedTimes===0&&this._releasePipeline(ie),pe=this._getComputePipeline(y,ae,he,E)),pe.usedTimes++,ae.usedTimes++,ne.version=y.version,ne.pipeline=pe}return ne.pipeline}getForRender(y,E=null){const{backend:z}=this,ne=this.get(y);if(this._needsRenderUpdate(y)){const ie=ne.pipeline;ie&&(ie.usedTimes--,ie.vertexProgram.usedTimes--,ie.fragmentProgram.usedTimes--);const se=y.getNodeBuilderState(),ae=y.material?y.material.name:"";let he=this.programs.vertex.get(se.vertexShader);he===void 0&&(ie&&ie.vertexProgram.usedTimes===0&&this._releaseProgram(ie.vertexProgram),he=new VD(se.vertexShader,"vertex",ae),this.programs.vertex.set(se.vertexShader,he),z.createProgram(he));let pe=this.programs.fragment.get(se.fragmentShader);pe===void 0&&(ie&&ie.fragmentProgram.usedTimes===0&&this._releaseProgram(ie.fragmentProgram),pe=new VD(se.fragmentShader,"fragment",ae),this.programs.fragment.set(se.fragmentShader,pe),z.createProgram(pe));const ve=this._getRenderCacheKey(y,he,pe);let xe=this.caches.get(ve);xe===void 0?(ie&&ie.usedTimes===0&&this._releasePipeline(ie),xe=this._getRenderPipeline(y,he,pe,ve,E)):y.pipeline=xe,xe.usedTimes++,he.usedTimes++,pe.usedTimes++,ne.pipeline=xe}return ne.pipeline}delete(y){const E=this.get(y).pipeline;return E&&(E.usedTimes--,E.usedTimes===0&&this._releasePipeline(E),E.isComputePipeline?(E.computeProgram.usedTimes--,E.computeProgram.usedTimes===0&&this._releaseProgram(E.computeProgram)):(E.fragmentProgram.usedTimes--,E.vertexProgram.usedTimes--,E.vertexProgram.usedTimes===0&&this._releaseProgram(E.vertexProgram),E.fragmentProgram.usedTimes===0&&this._releaseProgram(E.fragmentProgram))),super.delete(y)}dispose(){super.dispose(),this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}updateForRender(y){this.getForRender(y)}_getComputePipeline(y,E,z,ne){z=z||this._getComputeCacheKey(y,E);let ie=this.caches.get(z);return ie===void 0&&(ie=new ZK(z,E),this.caches.set(z,ie),this.backend.createComputePipeline(ie,ne)),ie}_getRenderPipeline(y,E,z,ne,ie){ne=ne||this._getRenderCacheKey(y,E,z);let se=this.caches.get(ne);return se===void 0&&(se=new QK(ne,E,z),this.caches.set(ne,se),y.pipeline=se,this.backend.createRenderPipeline(y,ie)),se}_getComputeCacheKey(y,E){return y.id+","+E.id}_getRenderCacheKey(y,E,z){return E.id+","+z.id+","+this.backend.getRenderCacheKey(y)}_releasePipeline(y){this.caches.delete(y.cacheKey)}_releaseProgram(y){const E=y.code,z=y.stage;this.programs[z].delete(E)}_needsComputeUpdate(y){const E=this.get(y);return E.pipeline===void 0||E.version!==y.version}_needsRenderUpdate(y){return this.get(y).pipeline===void 0||this.backend.needsRenderUpdate(y)}}class JK extends aS{constructor(y,E,z,ne,ie,se){super(),this.backend=y,this.textures=z,this.pipelines=ie,this.attributes=ne,this.nodes=E,this.info=se,this.pipelines.bindings=this}getForRender(y){const E=y.getBindings();for(const z of E){const ne=this.get(z);ne.bindGroup===void 0&&(this._init(z),this.backend.createBindings(z,E,0),ne.bindGroup=z)}return E}getForCompute(y){const E=this.nodes.getForCompute(y).bindings;for(const z of E){const ne=this.get(z);ne.bindGroup===void 0&&(this._init(z),this.backend.createBindings(z,E,0),ne.bindGroup=z)}return E}updateForCompute(y){this._updateBindings(this.getForCompute(y))}updateForRender(y){this._updateBindings(this.getForRender(y))}_updateBindings(y){for(const E of y)this._update(E,y)}_init(y){for(const E of y.bindings)if(E.isSampledTexture)this.textures.updateTexture(E.texture);else if(E.isStorageBuffer){const z=E.attribute,ne=z.isIndirectStorageBufferAttribute?Mv.INDIRECT:Mv.STORAGE;this.attributes.update(z,ne)}}_update(y,E){const{backend:z}=this;let ne=!1,ie=!0,se=0,ae=0;for(const he of y.bindings)if(!(he.isNodeUniformsGroup&&this.nodes.updateGroup(he)===!1)){if(he.isStorageBuffer){const pe=he.attribute,ve=pe.isIndirectStorageBufferAttribute?Mv.INDIRECT:Mv.STORAGE;this.attributes.update(pe,ve)}if(he.isUniformBuffer)he.update()&&z.updateBinding(he);else if(he.isSampler)he.update();else if(he.isSampledTexture){const pe=this.textures.get(he.texture);he.needsBindingsUpdate(pe.generation)&&(ne=!0);const ve=he.update(),xe=he.texture;ve&&this.textures.updateTexture(xe);const Se=z.get(xe);if(Se.externalTexture!==void 0||pe.isDefaultTexture?ie=!1:(se=se*10+xe.id,ae+=xe.version),z.isWebGPUBackend===!0&&Se.texture===void 0&&Se.externalTexture===void 0&&(console.error("Bindings._update: binding should be available:",he,ve,xe,he.textureNode.value,ne),this.textures.updateTexture(xe),ne=!0),xe.isStorageTexture===!0){const Be=this.get(xe);he.store===!0?Be.needsMipmap=!0:this.textures.needsMipmaps(xe)&&Be.needsMipmap===!0&&(this.backend.generateMipmaps(xe),Be.needsMipmap=!1)}}}ne===!0&&this.backend.updateBindings(y,E,ie?se:0,ae)}}function qK(ee,y){return ee.groupOrder!==y.groupOrder?ee.groupOrder-y.groupOrder:ee.renderOrder!==y.renderOrder?ee.renderOrder-y.renderOrder:ee.z!==y.z?ee.z-y.z:ee.id-y.id}function o9(ee,y){return ee.groupOrder!==y.groupOrder?ee.groupOrder-y.groupOrder:ee.renderOrder!==y.renderOrder?ee.renderOrder-y.renderOrder:ee.z!==y.z?y.z-ee.z:ee.id-y.id}function s9(ee){return(ee.transmission>0||ee.transmissionNode)&&ee.side===Fh&&ee.forceSinglePass===!1}class _K{constructor(y,E,z){this.renderItems=[],this.renderItemsIndex=0,this.opaque=[],this.transparentDoublePass=[],this.transparent=[],this.bundles=[],this.lightsNode=y.getNode(E,z),this.lightsArray=[],this.scene=E,this.camera=z,this.occlusionQueryCount=0}begin(){return this.renderItemsIndex=0,this.opaque.length=0,this.transparentDoublePass.length=0,this.transparent.length=0,this.bundles.length=0,this.lightsArray.length=0,this.occlusionQueryCount=0,this}getNextRenderItem(y,E,z,ne,ie,se,ae){let he=this.renderItems[this.renderItemsIndex];return he===void 0?(he={id:y.id,object:y,geometry:E,material:z,groupOrder:ne,renderOrder:y.renderOrder,z:ie,group:se,clippingContext:ae},this.renderItems[this.renderItemsIndex]=he):(he.id=y.id,he.object=y,he.geometry=E,he.material=z,he.groupOrder=ne,he.renderOrder=y.renderOrder,he.z=ie,he.group=se,he.clippingContext=ae),this.renderItemsIndex++,he}push(y,E,z,ne,ie,se,ae){const he=this.getNextRenderItem(y,E,z,ne,ie,se,ae);y.occlusionTest===!0&&this.occlusionQueryCount++,z.transparent===!0||z.transmission>0?(s9(z)&&this.transparentDoublePass.push(he),this.transparent.push(he)):this.opaque.push(he)}unshift(y,E,z,ne,ie,se,ae){const he=this.getNextRenderItem(y,E,z,ne,ie,se,ae);z.transparent===!0||z.transmission>0?(s9(z)&&this.transparentDoublePass.unshift(he),this.transparent.unshift(he)):this.opaque.unshift(he)}pushBundle(y){this.bundles.push(y)}pushLight(y){this.lightsArray.push(y)}sort(y,E){this.opaque.length>1&&this.opaque.sort(y||qK),this.transparentDoublePass.length>1&&this.transparentDoublePass.sort(E||o9),this.transparent.length>1&&this.transparent.sort(E||o9)}finish(){this.lightsNode.setLights(this.lightsArray);for(let y=this.renderItemsIndex,E=this.renderItems.length;y<E;y++){const z=this.renderItems[y];if(z.id===null)break;z.id=null,z.object=null,z.geometry=null,z.material=null,z.groupOrder=null,z.renderOrder=null,z.z=null,z.group=null,z.clippingContext=null}}}const BM=[];class $K{constructor(y){this.lighting=y,this.lists=new Vy}get(y,E){const z=this.lists;BM[0]=y,BM[1]=E;let ne=z.get(BM);return ne===void 0&&(ne=new _K(this.lighting,y,E),z.set(BM,ne)),BM.length=0,ne}dispose(){this.lists=new Vy}}let eJ=0;class tJ{constructor(){this.id=eJ++,this.color=!0,this.clearColor=!0,this.clearColorValue={r:0,g:0,b:0,a:1},this.depth=!0,this.clearDepth=!0,this.clearDepthValue=1,this.stencil=!1,this.clearStencil=!0,this.clearStencilValue=1,this.viewport=!1,this.viewportValue=new Ul,this.scissor=!1,this.scissorValue=new Ul,this.renderTarget=null,this.textures=null,this.depthTexture=null,this.activeCubeFace=0,this.activeMipmapLevel=0,this.sampleCount=1,this.width=0,this.height=0,this.occlusionQueryCount=0,this.clippingContext=null,this.isRenderContext=!0}getCacheKey(){return a9(this)}}function a9(ee){const{textures:y,activeCubeFace:E}=ee,z=[E];for(const ne of y)z.push(ne.id);return Z2(z)}const TM=[],nJ=new Pw,iJ=new oP;class rJ{constructor(){this.chainMaps={}}get(y,E,z=null){TM[0]=y,TM[1]=E;let ne;if(z===null)ne="default";else{const ae=z.texture.format;ne=`${z.textures.length}:${ae}:${z.samples}:${z.depthBuffer}:${z.stencilBuffer}`}const ie=this._getChainMap(ne);let se=ie.get(TM);return se===void 0&&(se=new tJ,ie.set(TM,se)),TM.length=0,z!==null&&(se.sampleCount=z.samples===0?1:z.samples),se}getForClear(y=null){return this.get(nJ,iJ,y)}_getChainMap(y){return this.chainMaps[y]||(this.chainMaps[y]=new Vy)}dispose(){this.chainMaps={}}}const oJ=new yn;class sJ extends aS{constructor(y,E,z){super(),this.renderer=y,this.backend=E,this.info=z}updateRenderTarget(y,E=0){const z=this.get(y),ne=y.samples===0?1:y.samples,ie=z.depthTextureMips||(z.depthTextureMips={}),se=y.textures,ae=this.getSize(se[0]),he=ae.width>>E,pe=ae.height>>E;let ve=y.depthTexture||ie[E];const xe=y.depthBuffer===!0||y.stencilBuffer===!0;let Se=!1;ve===void 0&&xe&&(ve=new jg,ve.format=y.stencilBuffer?Ig:Lg,ve.type=y.stencilBuffer?xh:Oc,ve.image.width=he,ve.image.height=pe,ve.image.depth=ae.depth,ve.isArrayTexture=y.multiview===!0&&ae.depth>1,ie[E]=ve),(z.width!==ae.width||ae.height!==z.height)&&(Se=!0,ve&&(ve.needsUpdate=!0,ve.image.width=he,ve.image.height=pe,ve.image.depth=ve.isArrayTexture?ve.image.depth:1)),z.width=ae.width,z.height=ae.height,z.textures=se,z.depthTexture=ve||null,z.depth=y.depthBuffer,z.stencil=y.stencilBuffer,z.renderTarget=y,z.sampleCount!==ne&&(Se=!0,ve&&(ve.needsUpdate=!0),z.sampleCount=ne);const Be={sampleCount:ne};if(y.isXRRenderTarget!==!0){for(let De=0;De<se.length;De++){const Re=se[De];Se&&(Re.needsUpdate=!0),this.updateTexture(Re,Be)}ve&&this.updateTexture(ve,Be)}if(z.initialized!==!0){z.initialized=!0;const De=()=>{y.removeEventListener("dispose",De);for(let Re=0;Re<se.length;Re++)this._destroyTexture(se[Re]);ve&&this._destroyTexture(ve),this.delete(y)};y.addEventListener("dispose",De)}}updateTexture(y,E={}){const z=this.get(y);if(z.initialized===!0&&z.version===y.version)return;const ne=y.isRenderTargetTexture||y.isDepthTexture||y.isFramebufferTexture,ie=this.backend;if(ne&&z.initialized===!0&&(ie.destroySampler(y),ie.destroyTexture(y)),y.isFramebufferTexture){const pe=this.renderer.getRenderTarget();pe?y.type=pe.texture.type:y.type=yh}const{width:se,height:ae,depth:he}=this.getSize(y);if(E.width=se,E.height=ae,E.depth=he,E.needsMipmaps=this.needsMipmaps(y),E.levels=E.needsMipmaps?this.getMipLevels(y,se,ae):1,ne||y.isStorageTexture===!0)ie.createSampler(y),ie.createTexture(y,E),z.generation=y.version;else if(z.initialized!==!0&&ie.createSampler(y),y.version>0){const ve=y.image;if(ve===void 0)console.warn("THREE.Renderer: Texture marked for update but image is undefined.");else if(ve.complete===!1)console.warn("THREE.Renderer: Texture marked for update but image is incomplete.");else{if(y.images){const xe=[];for(const Se of y.images)xe.push(Se);E.images=xe}else E.image=ve;(z.isDefaultTexture===void 0||z.isDefaultTexture===!0)&&(ie.createTexture(y,E),z.isDefaultTexture=!1,z.generation=y.version),y.source.dataReady===!0&&ie.updateTexture(y,E),E.needsMipmaps&&y.mipmaps.length===0&&ie.generateMipmaps(y)}}else ie.createDefaultTexture(y),z.isDefaultTexture=!0,z.generation=y.version;if(z.initialized!==!0){z.initialized=!0,z.generation=y.version,this.info.memory.textures++;const pe=()=>{y.removeEventListener("dispose",pe),this._destroyTexture(y)};y.addEventListener("dispose",pe)}z.version=y.version}getSize(y,E=oJ){let z=y.images?y.images[0]:y.image;return z?(z.image!==void 0&&(z=z.image),E.width=z.width||1,E.height=z.height||1,E.depth=y.isCubeTexture?6:z.depth||1):E.width=E.height=E.depth=1,E}getMipLevels(y,E,z){let ne;return y.isCompressedTexture?y.mipmaps?ne=y.mipmaps.length:ne=1:ne=Math.floor(Math.log2(Math.max(E,z)))+1,ne}needsMipmaps(y){return y.isCompressedTexture===!0||y.generateMipmaps}_destroyTexture(y){this.has(y)===!0&&(this.backend.destroySampler(y),this.backend.destroyTexture(y),this.delete(y),this.info.memory.textures--)}}class jD extends ia{constructor(y,E,z,ne=1){super(y,E,z),this.a=ne}set(y,E,z,ne=1){return this.a=ne,super.set(y,E,z)}copy(y){return y.a!==void 0&&(this.a=y.a),super.copy(y)}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}}class l9 extends ah{static get type(){return"ParameterNode"}constructor(y,E=null){super(y,E),this.isParameterNode=!0}getHash(){return this.uuid}generate(){return this.name}}const aJ=(ee,y)=>wo(new l9(ee,y));class lJ extends Zl{static get type(){return"StackNode"}constructor(y=null){super(),this.nodes=[],this.outputNode=null,this.parent=y,this._currentCond=null,this._expressionNode=null,this.isStackNode=!0}getNodeType(y){return this.outputNode?this.outputNode.getNodeType(y):"void"}getMemberType(y,E){return this.outputNode?this.outputNode.getMemberType(y,E):"void"}add(y){return this.nodes.push(y),this}If(y,E){const z=new OE(E);return this._currentCond=kp(y,z),this.add(this._currentCond)}ElseIf(y,E){const z=new OE(E),ne=kp(y,z);return this._currentCond.elseNode=ne,this._currentCond=ne,this}Else(y){return this._currentCond.elseNode=new OE(y),this}Switch(y){return this._expressionNode=wo(y),this}Case(...y){const E=[];if(y.length>=2)for(let ae=0;ae<y.length-1;ae++)E.push(this._expressionNode.equal(wo(y[ae])));else throw new Error("TSL: Invalid parameter length. Case() requires at least two parameters.");const z=y[y.length-1],ne=new OE(z);let ie=E[0];for(let ae=1;ae<E.length;ae++)ie=ie.or(E[ae]);const se=kp(ie,ne);return this._currentCond===null?(this._currentCond=se,this.add(this._currentCond)):(this._currentCond.elseNode=se,this._currentCond=se,this)}Default(y){return this.Else(y),this}build(y,...E){const z=g8();eM(this);const ne=y.buildStage;for(const ie of this.nodes)if(ne==="setup")ie.build(y);else if(ne==="analyze")ie.build(y,this);else if(ne==="generate"){const se=y.getDataFromNode(ie,"any").stages,ae=se&&se[y.shaderStage];if(ie.isVarNode&&ae&&ae.length===1&&ae[0]&&ae[0].isStackNode)continue;ie.build(y,"void")}return eM(z),this.outputNode?this.outputNode.build(y,...E):super.build(y,...E)}else(...y){return console.warn("THREE.TSL: .else() has been renamed to .Else()."),this.Else(...y)}elseif(...y){return console.warn("THREE.TSL: .elseif() has been renamed to .ElseIf()."),this.ElseIf(...y)}}const tT=Do(lJ).setParameterLength(0,1);function uJ(ee){return Object.entries(ee).map(([y,E])=>typeof E=="string"?{name:y,type:E,atomic:!1}:{name:y,type:E.type,atomic:E.atomic||!1})}class cJ extends Zl{static get type(){return"StructTypeNode"}constructor(y,E=null){super("struct"),this.membersLayout=uJ(y),this.name=E,this.isStructLayoutNode=!0}getLength(){const E=Float32Array.BYTES_PER_ELEMENT;let z=0;for(const ne of this.membersLayout){const ie=ne.type,se=rL(ie)*E,ae=oL(ie),he=z%8,pe=he%ae,ve=he+pe;z+=pe,ve!==0&&8-ve<se&&(z+=8-ve),z+=se}return Math.ceil(z/8)*8/E}getMemberType(y,E){const z=this.membersLayout.find(ne=>ne.name===E);return z?z.type:"void"}getNodeType(y){return y.getStructTypeFromNode(this,this.membersLayout,this.name).name}setup(y){y.addInclude(this)}generate(y){return this.getNodeType(y)}}class hJ extends Zl{static get type(){return"StructNode"}constructor(y,E){super("vec3"),this.structLayoutNode=y,this.values=E,this.isStructNode=!0}getNodeType(y){return this.structLayoutNode.getNodeType(y)}getMemberType(y,E){return this.structLayoutNode.getMemberType(y,E)}generate(y){const E=y.getVarFromNode(this),z=E.type,ne=y.getPropertyName(E);return y.addLineFlowCode(`${ne} = ${y.generateStruct(z,this.structLayoutNode.membersLayout,this.values)}`,this),E.name}}const dJ=(ee,y=null)=>{const E=new cJ(ee,y),z=(...ne)=>{let ie=null;if(ne.length>0)if(ne[0].isNode){ie={};const se=Object.keys(ee);for(let ae=0;ae<ne.length;ae++)ie[se[ae]]=ne[ae]}else ie=ne[0];return wo(new hJ(E,ie))};return z.layout=E,z.isStruct=!0,z};class u9 extends Zl{static get type(){return"OutputStructNode"}constructor(...y){super(),this.members=y,this.isOutputStructNode=!0}getNodeType(y){const E=y.getNodeProperties(this);if(E.membersLayout===void 0){const z=this.members,ne=[];for(let ie=0;ie<z.length;ie++){const se="m"+ie,ae=z[ie].getNodeType(y);ne.push({name:se,type:ae,index:ie})}E.membersLayout=ne,E.structType=y.getOutputStructTypeFromNode(this,E.membersLayout)}return E.structType.name}generate(y){const E=y.getOutputStructName(),z=this.members,ne=E!==""?E+".":"";for(let ie=0;ie<z.length;ie++){const se=z[ie].build(y);y.addLineFlowCode(`${ne}m${ie} = ${se}`,this)}return E}}const fJ=Do(u9);function c9(ee,y){for(let E=0;E<ee.length;E++)if(ee[E].name===y)return E;return-1}class pJ extends u9{static get type(){return"MRTNode"}constructor(y){super(),this.outputNodes=y,this.isMRTNode=!0}has(y){return this.outputNodes[y]!==void 0}get(y){return this.outputNodes[y]}merge(y){const E=Hd(Hd({},this.outputNodes),y.outputNodes);return h9(E)}setup(y){const E=this.outputNodes,z=y.renderer.getRenderTarget(),ne=[],ie=z.textures;for(const se in E){const ae=c9(ie,se);ne[ae]=Da(E[se])}return this.members=ne,super.setup(y)}}const h9=Do(pJ),gJ=$i(([ee])=>{const y=ee.toUint().mul(747796405).add(2891336453),E=y.shiftRight(y.shiftRight(28).add(4)).bitXor(y).mul(277803737);return E.shiftRight(22).bitXor(E).toFloat().mul(1/PN(2,32))}),GD=(ee,y)=>zy(Lu(4,ee.mul(Pc(1,ee))),y),mJ=(ee,y)=>ee.lessThan(.5)?GD(ee.mul(2),y).div(2):Pc(1,GD(Lu(Pc(1,ee),2),y).div(2)),vJ=(ee,y,E)=>zy(xv(zy(ee,y),kf(zy(ee,y),zy(Pc(1,ee),E))),1/y),yJ=(ee,y)=>L0(bB.mul(y.mul(ee).sub(1))).div(bB.mul(y.mul(ee).sub(1))),k1=$i(([ee])=>ee.fract().sub(.5).abs()).setLayout({name:"tri",type:"float",inputs:[{name:"x",type:"float"}]}),AJ=$i(([ee])=>Li(k1(ee.z.add(k1(ee.y.mul(1)))),k1(ee.z.add(k1(ee.x.mul(1)))),k1(ee.y.add(k1(ee.x.mul(1)))))).setLayout({name:"tri3",type:"vec3",inputs:[{name:"p",type:"vec3"}]}),xJ=$i(([ee,y,E])=>{const z=Li(ee).toVar(),ne=Dn(1.4).toVar(),ie=Dn(0).toVar(),se=Li(z).toVar();return qc({start:Dn(0),end:Dn(3),type:"float",condition:"<="},()=>{const ae=Li(AJ(se.mul(2))).toVar();z.addAssign(ae.add(E.mul(Dn(.1).mul(y)))),se.mulAssign(1.8),ne.mulAssign(1.5),z.mulAssign(1.2);const he=Dn(k1(z.z.add(k1(z.x.add(k1(z.y)))))).toVar();ie.addAssign(he.div(ne)),se.addAssign(.14)}),ie}).setLayout({name:"triNoise3D",type:"float",inputs:[{name:"position",type:"vec3"},{name:"speed",type:"float"},{name:"time",type:"float"}]});class wJ extends Zl{static get type(){return"FunctionOverloadingNode"}constructor(y=[],...E){super(),this.functionNodes=y,this.parametersNodes=E,this._candidateFnCall=null,this.global=!0}getNodeType(){return this.functionNodes[0].shaderNode.layout.type}setup(y){const E=this.parametersNodes;let z=this._candidateFnCall;if(z===null){let ne=null,ie=-1;for(const se of this.functionNodes){const he=se.shaderNode.layout;if(he===null)throw new Error("FunctionOverloadingNode: FunctionNode must be a layout.");const pe=he.inputs;if(E.length===pe.length){let ve=0;for(let xe=0;xe<E.length;xe++){const Se=E[xe],Be=pe[xe];Se.getNodeType(y)===Be.type?ve++:ve=0}ve>ie&&(ne=se,ie=ve)}}this._candidateFnCall=z=ne(...E)}return z}}const SJ=Do(wJ),Eg=ee=>(...y)=>SJ(ee,...y),JP=vl(0).setGroup(Yl).onRenderUpdate(ee=>ee.time),d9=vl(0).setGroup(Yl).onRenderUpdate(ee=>ee.deltaTime),PJ=vl(0,"uint").setGroup(Yl).onRenderUpdate(ee=>ee.frameId),CJ=(ee=1)=>(console.warn('TSL: timerLocal() is deprecated. Use "time" instead.'),JP.mul(ee)),EJ=(ee=1)=>(console.warn('TSL: timerGlobal() is deprecated. Use "time" instead.'),JP.mul(ee)),bJ=(ee=1)=>(console.warn('TSL: timerDelta() is deprecated. Use "deltaTime" instead.'),d9.mul(ee)),MJ=(ee=JP)=>ee.add(.75).mul(Math.PI*2).sin().mul(.5).add(.5),BJ=(ee=JP)=>ee.fract().round(),TJ=(ee=JP)=>ee.add(.5).fract().mul(2).sub(1).abs(),DJ=(ee=JP)=>ee.fract(),NJ=$i(([ee,y,E=Qo(.5)])=>eT(ee.sub(E),y).add(E)),FJ=$i(([ee,y,E=Qo(.5)])=>{const z=ee.sub(E),ne=z.dot(z),se=ne.mul(ne).mul(y);return ee.add(z.mul(se))}),LJ=$i(({position:ee=null,horizontal:y=!0,vertical:E=!1})=>{let z;ee!==null?(z=Cv.toVar(),z[3][0]=ee.x,z[3][1]=ee.y,z[3][2]=ee.z):z=Cv;const ne=Sm.mul(z);return _2(y)&&(ne[0][0]=Cv[0].length(),ne[0][1]=0,ne[0][2]=0),_2(E)&&(ne[1][0]=0,ne[1][1]=Cv[1].length(),ne[1][2]=0),ne[2][0]=0,ne[2][1]=0,ne[2][2]=1,k0.mul(ne).mul(vf)}),IJ=$i(([ee=null])=>{const y=WE();return WE(dD(ee)).sub(y).lessThan(0).select(Hy,ee)});class kJ extends Zl{static get type(){return"SpriteSheetUVNode"}constructor(y,E=nd(),z=Dn(0)){super("vec2"),this.countNode=y,this.uvNode=E,this.frameNode=z}setup(){const{frameNode:y,uvNode:E,countNode:z}=this,{width:ne,height:ie}=z,se=y.mod(ne.mul(ie)).floor(),ae=se.mod(ne),he=ie.sub(se.add(1).div(ne).ceil()),pe=z.reciprocal(),ve=Qo(ae,he);return E.add(ve).mul(pe)}}const OJ=Do(kJ).setParameterLength(3);class RJ extends Zl{static get type(){return"TriplanarTexturesNode"}constructor(y,E=null,z=null,ne=Dn(1),ie=vf,se=$m){super("vec4"),this.textureXNode=y,this.textureYNode=E,this.textureZNode=z,this.scaleNode=ne,this.positionNode=ie,this.normalNode=se}setup(){const{textureXNode:y,textureYNode:E,textureZNode:z,scaleNode:ne,positionNode:ie,normalNode:se}=this;let ae=se.abs().normalize();ae=ae.div(ae.dot(Li(1)));const he=ie.yz.mul(ne),pe=ie.zx.mul(ne),ve=ie.xy.mul(ne),xe=y.value,Se=E!==null?E.value:xe,Be=z!==null?z.value:xe,De=dc(xe,he).mul(ae.x),Re=dc(Se,pe).mul(ae.y),Oe=dc(Be,ve).mul(ae.z);return kf(De,Re,Oe)}}const f9=Do(RJ).setParameterLength(1,6),zJ=(...ee)=>f9(...ee),KE=new Yh,qP=new yn,JE=new yn,XD=new yn,DM=new Xa,nT=new yn(0,0,-1),WA=new Ul,NM=new yn,iT=new yn,FM=new Ul,rT=new Yr,oT=new p0,UJ=Hy.flipX();oT.depthTexture=new jg(1,1);let sT=!1;class WD extends XA{static get type(){return"ReflectorNode"}constructor(y={}){super(y.defaultTexture||oT.texture,UJ),this._reflectorBaseNode=y.reflector||new HJ(this,y),this._depthNode=null,this.setUpdateMatrix(!1)}get reflector(){return this._reflectorBaseNode}get target(){return this._reflectorBaseNode.target}getDepthNode(){if(this._depthNode===null){if(this._reflectorBaseNode.depth!==!0)throw new Error("THREE.ReflectorNode: Depth node can only be requested when the reflector is created with { depth: true }. ");this._depthNode=wo(new WD({defaultTexture:oT.depthTexture,reflector:this._reflectorBaseNode}))}return this._depthNode}setup(y){return y.object.isQuadMesh||this._reflectorBaseNode.build(y),super.setup(y)}clone(){const y=new this.constructor(this.reflectorNode);return y._reflectorBaseNode=this._reflectorBaseNode,y}dispose(){super.dispose(),this._reflectorBaseNode.dispose()}}class HJ extends Zl{static get type(){return"ReflectorBaseNode"}constructor(y,E={}){super();const{target:z=new ih,resolution:ne=1,generateMipmaps:ie=!1,bounces:se=!0,depth:ae=!1}=E;this.textureNode=y,this.target=z,this.resolution=ne,this.generateMipmaps=ie,this.bounces=se,this.depth=ae,this.updateBeforeType=se?Uu.RENDER:Uu.FRAME,this.virtualCameras=new WeakMap,this.renderTargets=new Map,this.forceUpdate=!1,this.hasOutput=!1}_updateResolution(y,E){const z=this.resolution;E.getDrawingBufferSize(rT),y.setSize(Math.round(rT.width*z),Math.round(rT.height*z))}setup(y){return this._updateResolution(oT,y.renderer),super.setup(y)}dispose(){super.dispose();for(const y of this.renderTargets.values())y.dispose()}getVirtualCamera(y){let E=this.virtualCameras.get(y);return E===void 0&&(E=y.clone(),this.virtualCameras.set(y,E)),E}getRenderTarget(y){let E=this.renderTargets.get(y);return E===void 0&&(E=new p0(0,0,{type:Hc}),this.generateMipmaps===!0&&(E.texture.minFilter=n5,E.texture.generateMipmaps=!0),this.depth===!0&&(E.depthTexture=new jg),this.renderTargets.set(y,E)),E}updateBefore(y){if(this.bounces===!1&&sT)return!1;sT=!0;const{scene:E,camera:z,renderer:ne,material:ie}=y,{target:se}=this,ae=this.getVirtualCamera(z),he=this.getRenderTarget(ae);ne.getDrawingBufferSize(rT),this._updateResolution(he,ne),JE.setFromMatrixPosition(se.matrixWorld),XD.setFromMatrixPosition(z.matrixWorld),DM.extractRotation(se.matrixWorld),qP.set(0,0,1),qP.applyMatrix4(DM),NM.subVectors(JE,XD);const pe=NM.dot(qP)>0;let ve=!1;if(pe===!0&&this.forceUpdate===!1){if(this.hasOutput===!1){sT=!1;return}ve=!0}NM.reflect(qP).negate(),NM.add(JE),DM.extractRotation(z.matrixWorld),nT.set(0,0,-1),nT.applyMatrix4(DM),nT.add(XD),iT.subVectors(JE,nT),iT.reflect(qP).negate(),iT.add(JE),ae.coordinateSystem=z.coordinateSystem,ae.position.copy(NM),ae.up.set(0,1,0),ae.up.applyMatrix4(DM),ae.up.reflect(qP),ae.lookAt(iT),ae.near=z.near,ae.far=z.far,ae.updateMatrixWorld(),ae.projectionMatrix.copy(z.projectionMatrix),KE.setFromNormalAndCoplanarPoint(qP,JE),KE.applyMatrix4(ae.matrixWorldInverse),WA.set(KE.normal.x,KE.normal.y,KE.normal.z,KE.constant);const xe=ae.projectionMatrix;FM.x=(Math.sign(WA.x)+xe.elements[8])/xe.elements[0],FM.y=(Math.sign(WA.y)+xe.elements[9])/xe.elements[5],FM.z=-1,FM.w=(1+xe.elements[10])/xe.elements[14],WA.multiplyScalar(1/WA.dot(FM));const Se=0;xe.elements[2]=WA.x,xe.elements[6]=WA.y,xe.elements[10]=ne.coordinateSystem===zg?WA.z-Se:WA.z+1-Se,xe.elements[14]=WA.w,this.textureNode.value=he.texture,this.depth===!0&&(this.textureNode.getDepthNode().value=he.depthTexture),ie.visible=!1;const Be=ne.getRenderTarget(),De=ne.getMRT(),Re=ne.autoClear;ne.setMRT(null),ne.setRenderTarget(he),ne.autoClear=!0,ve?(ne.clear(),this.hasOutput=!1):(ne.render(E,ae),this.hasOutput=!0),ne.setMRT(De),ne.setRenderTarget(Be),ne.autoClear=Re,ie.visible=!0,sT=!1,this.forceUpdate=!1}}const VJ=ee=>wo(new WD(ee)),QD=new ed(-1,1,1,-1,0,1);class jJ extends Tu{constructor(y=!1){super();const E=y===!1?[0,-1,0,1,2,1]:[0,2,0,0,2,0];this.setAttribute("position",new Za([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Za(E,2))}}const GJ=new jJ;class LM extends Bc{constructor(y=null){super(GJ,y),this.camera=QD,this.isQuadMesh=!0}renderAsync(y){return Vl(this,null,function*(){return y.renderAsync(this,QD)})}render(y){y.render(this,QD)}}const XJ=new Yr;class WJ extends XA{static get type(){return"RTTNode"}constructor(y,E=null,z=null,ne={type:Hc}){const ie=new p0(E,z,ne);super(ie.texture,nd()),this.node=y,this.width=E,this.height=z,this.pixelRatio=1,this.renderTarget=ie,this.textureNeedsUpdate=!0,this.autoUpdate=!0,this._rttNode=null,this._quadMesh=new LM(new $d),this.updateBeforeType=Uu.RENDER}get autoSize(){return this.width===null}setup(y){return this._rttNode=this.node.context(y.getSharedContext()),this._quadMesh.material.name="RTT",this._quadMesh.material.needsUpdate=!0,super.setup(y)}setSize(y,E){this.width=y,this.height=E;const z=y*this.pixelRatio,ne=E*this.pixelRatio;this.renderTarget.setSize(z,ne),this.textureNeedsUpdate=!0}setPixelRatio(y){this.pixelRatio=y,this.setSize(this.width,this.height)}updateBefore({renderer:y}){if(this.textureNeedsUpdate===!1&&this.autoUpdate===!1)return;if(this.textureNeedsUpdate=!1,this.autoSize===!0){this.pixelRatio=y.getPixelRatio();const z=y.getSize(XJ);this.setSize(z.width,z.height)}this._quadMesh.material.fragmentNode=this._rttNode;const E=y.getRenderTarget();y.setRenderTarget(this.renderTarget),this._quadMesh.render(y),y.setRenderTarget(E)}clone(){const y=new XA(this.value,this.uvNode,this.levelNode);return y.sampler=this.sampler,y.referenceNode=this,y}}const p9=(ee,...y)=>wo(new WJ(wo(ee),...y)),QJ=(ee,...y)=>ee.isTextureNode?ee:ee.isPassNode?ee.getTextureNode():p9(ee,...y),qE=$i(([ee,y,E],z)=>{let ne;z.renderer.coordinateSystem===zg?(ee=Qo(ee.x,ee.y.oneMinus()).mul(2).sub(1),ne=Da(Li(ee,y),1)):ne=Da(Li(ee.x,ee.y.oneMinus(),y).mul(2).sub(1),1);const ie=Da(E.mul(ne));return ie.xyz.div(ie.w)}),ZJ=$i(([ee,y])=>{const E=y.mul(Da(ee,1)),z=E.xy.div(E.w).mul(.5).add(.5).toVar();return Qo(z.x,z.y.oneMinus())}),YJ=$i(([ee,y,E])=>{const z=rS(mf(y)),ne=Ip(ee.mul(z)).toVar(),ie=mf(y,ne).toVar(),se=mf(y,ne.sub(Ip(2,0))).toVar(),ae=mf(y,ne.sub(Ip(1,0))).toVar(),he=mf(y,ne.add(Ip(1,0))).toVar(),pe=mf(y,ne.add(Ip(2,0))).toVar(),ve=mf(y,ne.add(Ip(0,2))).toVar(),xe=mf(y,ne.add(Ip(0,1))).toVar(),Se=mf(y,ne.sub(Ip(0,1))).toVar(),Be=mf(y,ne.sub(Ip(0,2))).toVar(),De=Kh(Pc(Dn(2).mul(ae).sub(se),ie)).toVar(),Re=Kh(Pc(Dn(2).mul(he).sub(pe),ie)).toVar(),Oe=Kh(Pc(Dn(2).mul(xe).sub(ve),ie)).toVar(),Le=Kh(Pc(Dn(2).mul(Se).sub(Be),ie)).toVar(),Je=qE(ee,ie,E).toVar(),$e=De.lessThan(Re).select(Je.sub(qE(ee.sub(Qo(Dn(1).div(z.x),0)),ae,E)),Je.negate().add(qE(ee.add(Qo(Dn(1).div(z.x),0)),he,E))),_e=Oe.lessThan(Le).select(Je.sub(qE(ee.add(Qo(0,Dn(1).div(z.y))),xe,E)),Je.negate().add(qE(ee.sub(Qo(0,Dn(1).div(z.y))),Se,E)));return b1(DB($e,_e))});class KJ extends vg{constructor(y,E,z=Float32Array){const ne=ArrayBuffer.isView(y)?y:new z(y*E);super(ne,E),this.isStorageInstancedBufferAttribute=!0}}class JJ extends rh{constructor(y,E,z=Float32Array){const ne=ArrayBuffer.isView(y)?y:new z(y*E);super(ne,E),this.isStorageBufferAttribute=!0}}const qJ=(ee,y="float")=>{let E,z;y.isStruct===!0?(E=y.layout.getLength(),z=J2("float")):(E=t8(y),z=J2(y));const ne=new JJ(ee,E,z);return WP(ne,y,ee)},_J=(ee,y="float")=>{let E,z;y.isStruct===!0?(E=y.layout.getLength(),z=J2("float")):(E=t8(y),z=J2(y));const ne=new KJ(ee,E,z);return WP(ne,y,ee)};class $J extends Zl{static get type(){return"PointUVNode"}constructor(){super("vec2"),this.isPointUVNode=!0}generate(){return"vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y )"}}const eq=Qs($J),IM=new Pp,ZD=new Xa;class t0 extends Zl{static get type(){return"SceneNode"}constructor(y=t0.BACKGROUND_BLURRINESS,E=null){super(),this.scope=y,this.scene=E}setup(y){const E=this.scope,z=this.scene!==null?this.scene:y.scene;let ne;return E===t0.BACKGROUND_BLURRINESS?ne=kh("backgroundBlurriness","float",z):E===t0.BACKGROUND_INTENSITY?ne=kh("backgroundIntensity","float",z):E===t0.BACKGROUND_ROTATION?ne=vl("mat4").label("backgroundRotation").setGroup(Yl).onRenderUpdate(()=>{const ie=z.background;return ie!==null&&ie.isTexture&&ie.mapping!==Xh?(IM.copy(z.backgroundRotation),IM.x*=-1,IM.y*=-1,IM.z*=-1,ZD.makeRotationFromEuler(IM)):ZD.identity(),ZD}):console.error("THREE.SceneNode: Unknown scope:",E),ne}}t0.BACKGROUND_BLURRINESS="backgroundBlurriness",t0.BACKGROUND_INTENSITY="backgroundIntensity",t0.BACKGROUND_ROTATION="backgroundRotation";const g9=Qs(t0,t0.BACKGROUND_BLURRINESS),YD=Qs(t0,t0.BACKGROUND_INTENSITY),m9=Qs(t0,t0.BACKGROUND_ROTATION);class tq extends XA{static get type(){return"StorageTextureNode"}constructor(y,E,z=null){super(y,E),this.storeNode=z,this.isStorageTextureNode=!0,this.access=_g.WRITE_ONLY}getInputType(){return"storageTexture"}setup(y){super.setup(y);const E=y.getNodeProperties(this);return E.storeNode=this.storeNode,E}setAccess(y){return this.access=y,this}generate(y,E){let z;return this.storeNode!==null?z=this.generateStore(y):z=super.generate(y,E),z}toReadWrite(){return this.setAccess(_g.READ_WRITE)}toReadOnly(){return this.setAccess(_g.READ_ONLY)}toWriteOnly(){return this.setAccess(_g.WRITE_ONLY)}generateStore(y){const E=y.getNodeProperties(this),{uvNode:z,storeNode:ne,depthNode:ie}=E,se=super.generate(y,"property"),ae=z.build(y,"uvec2"),he=ne.build(y,"vec4"),pe=ie?ie.build(y,"int"):null,ve=y.generateTextureStore(y,se,ae,pe,he);y.addLineFlowCode(ve,this)}clone(){const y=super.clone();return y.storeNode=this.storeNode,y}}const v9=Do(tq).setParameterLength(1,3),nq=(ee,y,E)=>{const z=v9(ee,y,E);return E!==null&&z.toStack(),z},iq=$i(({texture:ee,uv:y})=>{const z=Li().toVar();return $l(y.x.lessThan(1e-4),()=>{z.assign(Li(1,0,0))}).ElseIf(y.y.lessThan(1e-4),()=>{z.assign(Li(0,1,0))}).ElseIf(y.z.lessThan(1e-4),()=>{z.assign(Li(0,0,1))}).ElseIf(y.x.greaterThan(1-1e-4),()=>{z.assign(Li(-1,0,0))}).ElseIf(y.y.greaterThan(1-1e-4),()=>{z.assign(Li(0,-1,0))}).ElseIf(y.z.greaterThan(1-1e-4),()=>{z.assign(Li(0,0,-1))}).Else(()=>{const ie=ee.sample(y.add(Li(-.01,0,0))).r.sub(ee.sample(y.add(Li(.01,0,0))).r),se=ee.sample(y.add(Li(0,-.01,0))).r.sub(ee.sample(y.add(Li(0,.01,0))).r),ae=ee.sample(y.add(Li(0,0,-.01))).r.sub(ee.sample(y.add(Li(0,0,.01))).r);z.assign(Li(ie,se,ae))}),z.normalize()});class rq extends XA{static get type(){return"Texture3DNode"}constructor(y,E=null,z=null){super(y,E,z),this.isTexture3DNode=!0}getInputType(){return"texture3D"}getDefaultUV(){return Li(.5,.5,.5)}setUpdateMatrix(){}setupUV(y,E){const z=this.value;return y.isFlipY()&&(z.isRenderTargetTexture===!0||z.isFramebufferTexture===!0)&&(this.sampler?E=E.flipY():E=E.setY(gi(rS(this,this.levelNode).y).sub(E.y).sub(1))),E}generateUV(y,E){return E.build(y,"vec3")}normal(y){return iq({texture:this,uv:y})}}const y9=Do(rq).setParameterLength(1,3);class oq extends VB{static get type(){return"UserDataNode"}constructor(y,E,z=null){super(y,E,z),this.userData=z}updateReference(y){return this.reference=this.userData!==null?this.userData:y.object.userData,this.reference}}const sq=(ee,y,E)=>wo(new oq(ee,y,E)),A9=new WeakMap;class aq extends gf{static get type(){return"VelocityNode"}constructor(){super("vec2"),this.projectionMatrix=null,this.updateType=Uu.OBJECT,this.updateAfterType=Uu.OBJECT,this.previousModelWorldMatrix=vl(new Xa),this.previousProjectionMatrix=vl(new Xa).setGroup(Yl),this.previousCameraViewMatrix=vl(new Xa)}setProjectionMatrix(y){this.projectionMatrix=y}update({frameId:y,camera:E,object:z}){const ne=w9(z);this.previousModelWorldMatrix.value.copy(ne);const ie=x9(E);ie.frameId!==y&&(ie.frameId=y,ie.previousProjectionMatrix===void 0?(ie.previousProjectionMatrix=new Xa,ie.previousCameraViewMatrix=new Xa,ie.currentProjectionMatrix=new Xa,ie.currentCameraViewMatrix=new Xa,ie.previousProjectionMatrix.copy(this.projectionMatrix||E.projectionMatrix),ie.previousCameraViewMatrix.copy(E.matrixWorldInverse)):(ie.previousProjectionMatrix.copy(ie.currentProjectionMatrix),ie.previousCameraViewMatrix.copy(ie.currentCameraViewMatrix)),ie.currentProjectionMatrix.copy(this.projectionMatrix||E.projectionMatrix),ie.currentCameraViewMatrix.copy(E.matrixWorldInverse),this.previousProjectionMatrix.value.copy(ie.previousProjectionMatrix),this.previousCameraViewMatrix.value.copy(ie.previousCameraViewMatrix))}updateAfter({object:y}){w9(y).copy(y.matrixWorld)}setup(){const y=this.projectionMatrix===null?k0:vl(this.projectionMatrix),E=this.previousCameraViewMatrix.mul(this.previousModelWorldMatrix),z=y.mul(F1).mul(vf),ne=this.previousProjectionMatrix.mul(E).mul(RB),ie=z.xy.div(z.w),se=ne.xy.div(ne.w);return Pc(ie,se)}}function x9(ee){let y=A9.get(ee);return y===void 0&&(y={},A9.set(ee,y)),y}function w9(ee,y=0){const E=x9(ee);let z=E[y];return z===void 0&&(E[y]=z=new Xa,E[y].copy(ee.matrixWorld)),z}const lq=Qs(aq),S9=$i(([ee,y])=>_m(1,ee.oneMinus().div(y)).oneMinus()).setLayout({name:"blendBurn",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),P9=$i(([ee,y])=>_m(ee.div(y.oneMinus()),1)).setLayout({name:"blendDodge",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),C9=$i(([ee,y])=>ee.oneMinus().mul(y.oneMinus()).oneMinus()).setLayout({name:"blendScreen",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),E9=$i(([ee,y])=>Qc(ee.mul(2).mul(y),ee.oneMinus().mul(2).mul(y.oneMinus()).oneMinus(),TB(.5,ee))).setLayout({name:"blendOverlay",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),uq=$i(([ee,y])=>{const E=y.a.add(ee.a.mul(y.a.oneMinus()));return Da(y.rgb.mul(y.a).add(ee.rgb.mul(ee.a).mul(y.a.oneMinus())).div(E),E)}).setLayout({name:"blendColor",type:"vec4",inputs:[{name:"base",type:"vec4"},{name:"blend",type:"vec4"}]}),cq=$i(([ee])=>Da(ee.rgb.mul(ee.a),ee.a),{color:"vec4",return:"vec4"}),hq=$i(([ee])=>($l(ee.a.equal(0),()=>Da(0)),Da(ee.rgb.div(ee.a),ee.a)),{color:"vec4",return:"vec4"}),dq=(...ee)=>(console.warn('THREE.TSL: "burn" has been renamed. Use "blendBurn" instead.'),S9(ee)),fq=(...ee)=>(console.warn('THREE.TSL: "dodge" has been renamed. Use "blendDodge" instead.'),P9(ee)),pq=(...ee)=>(console.warn('THREE.TSL: "screen" has been renamed. Use "blendScreen" instead.'),C9(ee)),gq=(...ee)=>(console.warn('THREE.TSL: "overlay" has been renamed. Use "blendOverlay" instead.'),E9(ee)),mq=$i(([ee])=>KD(ee.rgb)),vq=$i(([ee,y=Dn(1)])=>y.mix(KD(ee.rgb),ee.rgb)),yq=$i(([ee,y=Dn(1)])=>{const E=kf(ee.r,ee.g,ee.b).div(3),z=ee.r.max(ee.g.max(ee.b)),ne=z.sub(E).mul(y).mul(-3);return Qc(ee.rgb,z,ne)}),Aq=$i(([ee,y=Dn(1)])=>{const E=Li(.57735,.57735,.57735),z=y.cos();return Li(ee.rgb.mul(z).add(E.cross(ee.rgb).mul(y.sin()).add(E.mul(iS(E,ee.rgb).mul(z.oneMinus())))))}),KD=(ee,y=Li(su.getLuminanceCoefficients(new yn)))=>iS(ee,y),xq=$i(([ee,y=Li(1),E=Li(0),z=Li(1),ne=Dn(1),ie=Li(su.getLuminanceCoefficients(new yn,Fm))])=>{const se=ee.rgb.dot(Li(ie)),ae=qd(ee.rgb.mul(y).add(E),0).toVar(),he=ae.pow(z).toVar();return $l(ae.r.greaterThan(0),()=>{ae.r.assign(he.r)}),$l(ae.g.greaterThan(0),()=>{ae.g.assign(he.g)}),$l(ae.b.greaterThan(0),()=>{ae.b.assign(he.b)}),ae.assign(se.add(ae.sub(se).mul(ne))),Da(ae.rgb,ee.a)});class wq extends gf{static get type(){return"PosterizeNode"}constructor(y,E){super(),this.sourceNode=y,this.stepsNode=E}setup(){const{sourceNode:y,stepsNode:E}=this;return y.mul(E).floor().div(E)}}const Sq=Do(wq).setParameterLength(2),aT=new Yr;class b9 extends XA{static get type(){return"PassTextureNode"}constructor(y,E){super(E),this.passNode=y,this.setUpdateMatrix(!1)}setup(y){return y.object.isQuadMesh&&this.passNode.build(y),super.setup(y)}clone(){return new this.constructor(this.passNode,this.value)}}class M9 extends b9{static get type(){return"PassMultipleTextureNode"}constructor(y,E,z=!1){super(y,null),this.textureName=E,this.previousTexture=z}updateTexture(){this.value=this.previousTexture?this.passNode.getPreviousTexture(this.textureName):this.passNode.getTexture(this.textureName)}setup(y){return this.updateTexture(),super.setup(y)}clone(){return new this.constructor(this.passNode,this.textureName,this.previousTexture)}}class QA extends gf{static get type(){return"PassNode"}constructor(y,E,z,ne={}){super("vec4"),this.scope=y,this.scene=E,this.camera=z,this.options=ne,this._pixelRatio=1,this._width=1,this._height=1;const ie=new jg;ie.isRenderTargetTexture=!0,ie.name="depth";const se=new p0(this._width*this._pixelRatio,this._height*this._pixelRatio,Hd({type:Hc},ne));se.texture.name="output",se.depthTexture=ie,this.renderTarget=se,this._textures={output:se.texture,depth:ie},this._textureNodes={},this._linearDepthNodes={},this._viewZNodes={},this._previousTextures={},this._previousTextureNodes={},this._cameraNear=vl(0),this._cameraFar=vl(0),this._mrt=null,this._layers=null,this._resolution=1,this.isPassNode=!0,this.updateBeforeType=Uu.FRAME,this.global=!0}setResolution(y){return this._resolution=y,this}getResolution(){return this._resolution}setLayers(y){return this._layers=y,this}getLayers(){return this._layers}setMRT(y){return this._mrt=y,this}getMRT(){return this._mrt}getTexture(y){let E=this._textures[y];return E===void 0&&(E=this.renderTarget.texture.clone(),E.name=y,this._textures[y]=E,this.renderTarget.textures.push(E)),E}getPreviousTexture(y){let E=this._previousTextures[y];return E===void 0&&(E=this.getTexture(y).clone(),this._previousTextures[y]=E),E}toggleTexture(y){const E=this._previousTextures[y];if(E!==void 0){const z=this._textures[y],ne=this.renderTarget.textures.indexOf(z);this.renderTarget.textures[ne]=E,this._textures[y]=E,this._previousTextures[y]=z,this._textureNodes[y].updateTexture(),this._previousTextureNodes[y].updateTexture()}}getTextureNode(y="output"){let E=this._textureNodes[y];return E===void 0&&(E=wo(new M9(this,y)),E.updateTexture(),this._textureNodes[y]=E),E}getPreviousTextureNode(y="output"){let E=this._previousTextureNodes[y];return E===void 0&&(this._textureNodes[y]===void 0&&this.getTextureNode(y),E=wo(new M9(this,y,!0)),E.updateTexture(),this._previousTextureNodes[y]=E),E}getViewZNode(y="depth"){let E=this._viewZNodes[y];if(E===void 0){const z=this._cameraNear,ne=this._cameraFar;this._viewZNodes[y]=E=pD(this.getTextureNode(y),z,ne)}return E}getLinearDepthNode(y="depth"){let E=this._linearDepthNodes[y];if(E===void 0){const z=this._cameraNear,ne=this._cameraFar,ie=this.getViewZNode(y);this._linearDepthNodes[y]=E=XE(ie,z,ne)}return E}setup({renderer:y}){return this.renderTarget.samples=this.options.samples===void 0?y.samples:this.options.samples,y.backend.isWebGLBackend===!0&&(this.renderTarget.samples=0),this.renderTarget.texture.type=y.getColorBufferType(),this.scope===QA.COLOR?this.getTextureNode():this.getLinearDepthNode()}updateBefore(y){const{renderer:E}=y,{scene:z}=this;let ne,ie;const se=E.getOutputRenderTarget();se&&se.isXRRenderTarget===!0?(ie=1,ne=E.xr.getCamera(),E.xr.updateCamera(ne),aT.set(se.width,se.height)):(ne=this.camera,ie=E.getPixelRatio(),E.getSize(aT)),this._pixelRatio=ie,this.setSize(aT.width,aT.height);const ae=E.getRenderTarget(),he=E.getMRT(),pe=ne.layers.mask;this._cameraNear.value=ne.near,this._cameraFar.value=ne.far,this._layers!==null&&(ne.layers.mask=this._layers.mask);for(const ve in this._previousTextures)this.toggleTexture(ve);E.setRenderTarget(this.renderTarget),E.setMRT(this._mrt),E.render(z,ne),E.setRenderTarget(ae),E.setMRT(he),ne.layers.mask=pe}setSize(y,E){this._width=y,this._height=E;const z=this._width*this._pixelRatio*this._resolution,ne=this._height*this._pixelRatio*this._resolution;this.renderTarget.setSize(z,ne)}setPixelRatio(y){this._pixelRatio=y,this.setSize(this._width,this._height)}dispose(){this.renderTarget.dispose()}}QA.COLOR="color",QA.DEPTH="depth";const Pq=(ee,y,E)=>wo(new QA(QA.COLOR,ee,y,E)),Cq=(ee,y)=>wo(new b9(ee,y)),Eq=(ee,y,E)=>wo(new QA(QA.DEPTH,ee,y,E));class bq extends QA{static get type(){return"ToonOutlinePassNode"}constructor(y,E,z,ne,ie){super(QA.COLOR,y,E),this.colorNode=z,this.thicknessNode=ne,this.alphaNode=ie,this._materialCache=new WeakMap}updateBefore(y){const{renderer:E}=y,z=E.getRenderObjectFunction();E.setRenderObjectFunction((ne,ie,se,ae,he,pe,ve,xe)=>{if((he.isMeshToonMaterial||he.isMeshToonNodeMaterial)&&he.wireframe===!1){const Se=this._getOutlineMaterial(he);E.renderObject(ne,ie,se,ae,Se,pe,ve,xe)}E.renderObject(ne,ie,se,ae,he,pe,ve,xe)}),super.updateBefore(y),E.setRenderObjectFunction(z)}_createMaterial(){const y=new $d;y.isMeshToonOutlineMaterial=!0,y.name="Toon_Outline",y.side=wc;const E=$m.negate(),z=k0.mul(F1),ne=Dn(1),ie=z.mul(Da(vf,1)),se=z.mul(Da(vf.add(E),1)),ae=b1(ie.sub(se));return y.vertexNode=ie.add(ae.mul(this.thicknessNode).mul(ie.w).mul(ne)),y.colorNode=Da(this.colorNode,this.alphaNode),y}_getOutlineMaterial(y){let E=this._materialCache.get(y);return E===void 0&&(E=this._createMaterial(),this._materialCache.set(y,E)),E}}const Mq=(ee,y,E=new ia(0,0,0),z=.003,ne=1)=>wo(new bq(ee,y,wo(E),wo(z),wo(ne))),B9=$i(([ee,y])=>ee.mul(y).clamp()).setLayout({name:"linearToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),T9=$i(([ee,y])=>(ee=ee.mul(y),ee.div(ee.add(1)).clamp())).setLayout({name:"reinhardToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),D9=$i(([ee,y])=>{ee=ee.mul(y),ee=ee.sub(.004).max(0);const E=ee.mul(ee.mul(6.2).add(.5)),z=ee.mul(ee.mul(6.2).add(1.7)).add(.06);return E.div(z).pow(2.2)}).setLayout({name:"cineonToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),Bq=$i(([ee])=>{const y=ee.mul(ee.add(.0245786)).sub(90537e-9),E=ee.mul(ee.add(.432951).mul(.983729)).add(.238081);return y.div(E)}),N9=$i(([ee,y])=>{const E=$g(.59719,.35458,.04823,.076,.90834,.01566,.0284,.13383,.83777),z=$g(1.60475,-.53108,-.07367,-.10208,1.10813,-.00605,-.00327,-.07276,1.07602);return ee=ee.mul(y).div(.6),ee=E.mul(ee),ee=Bq(ee),ee=z.mul(ee),ee.clamp()}).setLayout({name:"acesFilmicToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),Tq=$g(Li(1.6605,-.1246,-.0182),Li(-.5876,1.1329,-.1006),Li(-.0728,-.0083,1.1187)),Dq=$g(Li(.6274,.0691,.0164),Li(.3293,.9195,.088),Li(.0433,.0113,.8956)),Nq=$i(([ee])=>{const y=Li(ee).toVar(),E=Li(y.mul(y)).toVar(),z=Li(E.mul(E)).toVar();return Dn(15.5).mul(z.mul(E)).sub(Lu(40.14,z.mul(y))).add(Lu(31.96,z).sub(Lu(6.868,E.mul(y))).add(Lu(.4298,E).add(Lu(.1191,y).sub(.00232))))}),F9=$i(([ee,y])=>{const E=Li(ee).toVar(),z=$g(Li(.856627153315983,.137318972929847,.11189821299995),Li(.0951212405381588,.761241990602591,.0767994186031903),Li(.0482516061458583,.101439036467562,.811302368396859)),ne=$g(Li(1.1271005818144368,-.1413297634984383,-.14132976349843826),Li(-.11060664309660323,1.157823702216272,-.11060664309660294),Li(-.016493938717834573,-.016493938717834257,1.2519364065950405)),ie=Dn(-12.47393),se=Dn(4.026069);return E.mulAssign(y),E.assign(Dq.mul(E)),E.assign(z.mul(E)),E.assign(qd(E,1e-10)),E.assign(UA(E)),E.assign(E.sub(ie).div(se.sub(ie))),E.assign(GA(E,0,1)),E.assign(Nq(E)),E.assign(ne.mul(E)),E.assign(zy(qd(Li(0),E),Li(2.2))),E.assign(Tq.mul(E)),E.assign(GA(E,0,1)),E}).setLayout({name:"agxToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),L9=$i(([ee,y])=>{const E=Dn(.76),z=Dn(.15);ee=ee.mul(y);const ne=_m(ee.r,_m(ee.g,ee.b)),ie=kp(ne.lessThan(.08),ne.sub(Lu(6.25,ne.mul(ne))),.04);ee.subAssign(ie);const se=qd(ee.r,qd(ee.g,ee.b));$l(se.lessThan(E),()=>ee);const ae=Pc(1,E),he=Pc(1,ae.mul(ae).div(se.add(ae.sub(E))));ee.mulAssign(he.div(se));const pe=Pc(1,xv(1,z.mul(se.sub(he)).add(1)));return Qc(ee,Li(he),pe)}).setLayout({name:"neutralToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]});class ip extends Zl{static get type(){return"CodeNode"}constructor(y="",E=[],z=""){super("code"),this.isCodeNode=!0,this.global=!0,this.code=y,this.includes=E,this.language=z}setIncludes(y){return this.includes=y,this}getIncludes(){return this.includes}generate(y){const E=this.getIncludes(y);for(const ne of E)ne.build(y);const z=y.getCodeFromNode(this,this.getNodeType(y));return z.code=this.code,z.code}serialize(y){super.serialize(y),y.code=this.code,y.language=this.language}deserialize(y){super.deserialize(y),this.code=y.code,this.language=y.language}}const lT=Do(ip).setParameterLength(1,3),Fq=(ee,y)=>lT(ee,y,"js"),Lq=(ee,y)=>lT(ee,y,"wgsl"),Iq=(ee,y)=>lT(ee,y,"glsl");class I9 extends ip{static get type(){return"FunctionNode"}constructor(y="",E=[],z=""){super(y,E,z)}getNodeType(y){return this.getNodeFunction(y).type}getInputs(y){return this.getNodeFunction(y).inputs}getNodeFunction(y){const E=y.getDataFromNode(this);let z=E.nodeFunction;return z===void 0&&(z=y.parser.parseFunction(this.code),E.nodeFunction=z),z}generate(y,E){super.generate(y);const z=this.getNodeFunction(y),ne=z.name,ie=z.type,se=y.getCodeFromNode(this,ie);ne!==""&&(se.name=ne);const ae=y.getPropertyName(se),he=this.getNodeFunction(y).getCode(ae);return se.code=he+`
|
|
`,E==="property"?ae:y.format(`${ae}()`,ie,E)}}const k9=(ee,y=[],E="")=>{for(let ie=0;ie<y.length;ie++){const se=y[ie];typeof se=="function"&&(y[ie]=se.functionNode)}const z=wo(new I9(ee,y,E)),ne=(...ie)=>z.call(...ie);return ne.functionNode=z,ne},kq=(ee,y)=>k9(ee,y,"glsl"),Oq=(ee,y)=>k9(ee,y,"wgsl");class Rq extends Zl{static get type(){return"ScriptableValueNode"}constructor(y=null){super(),this._value=y,this._cache=null,this.inputType=null,this.outputType=null,this.events=new Hg,this.isScriptableValueNode=!0}get isScriptableOutputNode(){return this.outputType!==null}set value(y){this._value!==y&&(this._cache&&this.inputType==="URL"&&this.value.value instanceof ArrayBuffer&&(URL.revokeObjectURL(this._cache),this._cache=null),this._value=y,this.events.dispatchEvent({type:"change"}),this.refresh())}get value(){return this._value}refresh(){this.events.dispatchEvent({type:"refresh"})}getValue(){const y=this.value;if(y&&this._cache===null&&this.inputType==="URL"&&y.value instanceof ArrayBuffer)this._cache=URL.createObjectURL(new Blob([y.value]));else if(y&&y.value!==null&&y.value!==void 0&&((this.inputType==="URL"||this.inputType==="String")&&typeof y.value=="string"||this.inputType==="Number"&&typeof y.value=="number"||this.inputType==="Vector2"&&y.value.isVector2||this.inputType==="Vector3"&&y.value.isVector3||this.inputType==="Vector4"&&y.value.isVector4||this.inputType==="Color"&&y.value.isColor||this.inputType==="Matrix3"&&y.value.isMatrix3||this.inputType==="Matrix4"&&y.value.isMatrix4))return y.value;return this._cache||y}getNodeType(y){return this.value&&this.value.isNode?this.value.getNodeType(y):"float"}setup(){return this.value&&this.value.isNode?this.value:Dn()}serialize(y){super.serialize(y),this.value!==null?this.inputType==="ArrayBuffer"?y.value=r8(this.value):y.value=this.value?this.value.toJSON(y.meta).uuid:null:y.value=null,y.inputType=this.inputType,y.outputType=this.outputType}deserialize(y){super.deserialize(y);let E=null;y.value!==null&&(y.inputType==="ArrayBuffer"?E=o8(y.value):y.inputType==="Texture"?E=y.meta.textures[y.value]:E=y.meta.nodes[y.value]||null),this.value=E,this.inputType=y.inputType,this.outputType=y.outputType}}const uT=Do(Rq).setParameterLength(1);class O9 extends Map{get(y,E=null,...z){if(this.has(y))return super.get(y);if(E!==null){const ne=E(...z);return this.set(y,ne),ne}}}class zq{constructor(y){this.scriptableNode=y}get parameters(){return this.scriptableNode.parameters}get layout(){return this.scriptableNode.getLayout()}getInputLayout(y){return this.scriptableNode.getInputLayout(y)}get(y){const E=this.parameters[y];return E?E.getValue():null}}const cT=new O9;class Uq extends Zl{static get type(){return"ScriptableNode"}constructor(y=null,E={}){super(),this.codeNode=y,this.parameters=E,this._local=new O9,this._output=uT(null),this._outputs={},this._source=this.source,this._method=null,this._object=null,this._value=null,this._needsOutputUpdate=!0,this.onRefresh=this.onRefresh.bind(this),this.isScriptableNode=!0}get source(){return this.codeNode?this.codeNode.code:""}setLocal(y,E){return this._local.set(y,E)}getLocal(y){return this._local.get(y)}onRefresh(){this._refresh()}getInputLayout(y){for(const E of this.getLayout())if(E.inputType&&(E.id===y||E.name===y))return E}getOutputLayout(y){for(const E of this.getLayout())if(E.outputType&&(E.id===y||E.name===y))return E}setOutput(y,E){const z=this._outputs;return z[y]===void 0?z[y]=uT(E):z[y].value=E,this}getOutput(y){return this._outputs[y]}getParameter(y){return this.parameters[y]}setParameter(y,E){const z=this.parameters;return E&&E.isScriptableNode?(this.deleteParameter(y),z[y]=E,z[y].getDefaultOutput().events.addEventListener("refresh",this.onRefresh)):E&&E.isScriptableValueNode?(this.deleteParameter(y),z[y]=E,z[y].events.addEventListener("refresh",this.onRefresh)):z[y]===void 0?(z[y]=uT(E),z[y].events.addEventListener("refresh",this.onRefresh)):z[y].value=E,this}getValue(){return this.getDefaultOutput().getValue()}deleteParameter(y){let E=this.parameters[y];return E&&(E.isScriptableNode&&(E=E.getDefaultOutput()),E.events.removeEventListener("refresh",this.onRefresh)),this}clearParameters(){for(const y of Object.keys(this.parameters))this.deleteParameter(y);return this.needsUpdate=!0,this}call(y,...E){const ne=this.getObject()[y];if(typeof ne=="function")return ne(...E)}callAsync(y,...E){return Vl(this,null,function*(){const ne=this.getObject()[y];if(typeof ne=="function")return ne.constructor.name==="AsyncFunction"?yield ne(...E):ne(...E)})}getNodeType(y){return this.getDefaultOutputNode().getNodeType(y)}refresh(y=null){y!==null?this.getOutput(y).refresh():this._refresh()}getObject(){if(this.needsUpdate&&this.dispose(),this._object!==null)return this._object;const y=()=>this.refresh(),E=(pe,ve)=>this.setOutput(pe,ve),z=new zq(this),ne=cT.get("THREE"),ie=cT.get("TSL"),se=this.getMethod(),ae=[z,this._local,cT,y,E,ne,ie];this._object=se(...ae);const he=this._object.layout;if(he&&(he.cache===!1&&this._local.clear(),this._output.outputType=he.outputType||null,Array.isArray(he.elements)))for(const pe of he.elements){const ve=pe.id||pe.name;pe.inputType&&(this.getParameter(ve)===void 0&&this.setParameter(ve,null),this.getParameter(ve).inputType=pe.inputType),pe.outputType&&(this.getOutput(ve)===void 0&&this.setOutput(ve,null),this.getOutput(ve).outputType=pe.outputType)}return this._object}deserialize(y){super.deserialize(y);for(const E in this.parameters){let z=this.parameters[E];z.isScriptableNode&&(z=z.getDefaultOutput()),z.events.addEventListener("refresh",this.onRefresh)}}getLayout(){return this.getObject().layout}getDefaultOutputNode(){const y=this.getDefaultOutput().value;return y&&y.isNode?y:Dn()}getDefaultOutput(){return this._exec()._output}getMethod(){if(this.needsUpdate&&this.dispose(),this._method!==null)return this._method;const y=["parameters","local","global","refresh","setOutput","THREE","TSL"],z=["layout","init","main","dispose"].join(", "),ne="var "+z+`; var output = {};
|
|
`,ie=`
|
|
return { ...output, `+z+" };",se=ne+this.codeNode.code+ie;return this._method=new Function(...y,se),this._method}dispose(){this._method!==null&&(this._object&&typeof this._object.dispose=="function"&&this._object.dispose(),this._method=null,this._object=null,this._source=null,this._value=null,this._needsOutputUpdate=!0,this._output.value=null,this._outputs={})}setup(){return this.getDefaultOutputNode()}getCacheKey(y){const E=[_3(this.source),this.getDefaultOutputNode().getCacheKey(y)];for(const z in this.parameters)E.push(this.parameters[z].getCacheKey(y));return Z2(E)}set needsUpdate(y){y===!0&&this.dispose()}get needsUpdate(){return this.source!==this._source}_exec(){return this.codeNode===null?this:(this._needsOutputUpdate===!0&&(this._value=this.call("main"),this._needsOutputUpdate=!1),this._output.value=this._value,this)}_refresh(){this.needsUpdate=!0,this._exec(),this._output.refresh()}}const Hq=Do(Uq).setParameterLength(1,2);function R9(ee){let y;const E=ee.context.getViewZ;return E!==void 0&&(y=E(this)),(y||Of.z).negate()}const JD=$i(([ee,y],E)=>{const z=R9(E);return wv(ee,y,z)}),qD=$i(([ee],y)=>{const E=R9(y);return ee.mul(ee,E,E).negate().exp().oneMinus()}),kM=$i(([ee,y])=>Da(y.toFloat().mix(zE.rgb,ee.toVec3()),zE.a));function Vq(ee,y,E){return console.warn('THREE.TSL: "rangeFog( color, near, far )" is deprecated. Use "fog( color, rangeFogFactor( near, far ) )" instead.'),kM(ee,JD(y,E))}function jq(ee,y){return console.warn('THREE.TSL: "densityFog( color, density )" is deprecated. Use "fog( color, densityFogFactor( density ) )" instead.'),kM(ee,qD(y))}let _P=null,$P=null;class Gq extends Zl{static get type(){return"RangeNode"}constructor(y=Dn(),E=Dn()){super(),this.minNode=y,this.maxNode=E}getVectorLength(y){const E=y.getTypeLength(E1(this.minNode.value)),z=y.getTypeLength(E1(this.maxNode.value));return E>z?E:z}getNodeType(y){return y.object.count>1?y.getTypeFromLength(this.getVectorLength(y)):"float"}setup(y){const E=y.object;let z=null;if(E.count>1){const ne=this.minNode.value,ie=this.maxNode.value,se=y.getTypeLength(E1(ne)),ae=y.getTypeLength(E1(ie));_P=_P||new Ul,$P=$P||new Ul,_P.setScalar(0),$P.setScalar(0),se===1?_P.setScalar(ne):ne.isColor?_P.set(ne.r,ne.g,ne.b,1):_P.set(ne.x,ne.y,ne.z||0,ne.w||0),ae===1?$P.setScalar(ie):ie.isColor?$P.set(ie.r,ie.g,ie.b,1):$P.set(ie.x,ie.y,ie.z||0,ie.w||0);const he=4,pe=he*E.count,ve=new Float32Array(pe);for(let Se=0;Se<pe;Se++){const Be=Se%he,De=_P.getComponent(Be),Re=$P.getComponent(Be);ve[Se]=hw.lerp(De,Re,Math.random())}const xe=this.getNodeType(y);if(E.count<=4096)z=dM(ve,"vec4",E.count).element(oS).convert(xe);else{const Se=new vg(ve,4);y.geometry.setAttribute("__range"+this.id,Se),z=IB(Se).convert(xe)}}else z=Dn(0);return z}}const Xq=Do(Gq).setParameterLength(2);class Wq extends Zl{static get type(){return"ComputeBuiltinNode"}constructor(y,E){super(E),this._builtinName=y}getHash(y){return this.getBuiltinName(y)}getNodeType(){return this.nodeType}setBuiltinName(y){return this._builtinName=y,this}getBuiltinName(){return this._builtinName}hasBuiltin(y){return y.hasBuiltin(this._builtinName)}generate(y,E){const z=this.getBuiltinName(y),ne=this.getNodeType(y);return y.shaderStage==="compute"?y.format(z,ne,E):(console.warn(`ComputeBuiltinNode: Compute built-in value ${z} can not be accessed in the ${y.shaderStage} stage`),y.generateConst(ne))}serialize(y){super.serialize(y),y.global=this.global,y._builtinName=this._builtinName}deserialize(y){super.deserialize(y),this.global=y.global,this._builtinName=y._builtinName}}const OM=(ee,y)=>wo(new Wq(ee,y)),Qq=OM("numWorkgroups","uvec3"),Zq=OM("workgroupId","uvec3"),Yq=OM("globalId","uvec3"),Kq=OM("localId","uvec3"),Jq=OM("subgroupSize","uint");class qq extends Zl{constructor(y){super(),this.scope=y}generate(y){const{scope:E}=this,{renderer:z}=y;z.backend.isWebGLBackend===!0?y.addFlowCode(` // ${E}Barrier
|
|
`):y.addLineFlowCode(`${E}Barrier()`,this)}}const _D=Do(qq),_q=()=>_D("workgroup").toStack(),$q=()=>_D("storage").toStack(),e_=()=>_D("texture").toStack();class t_ extends RP{constructor(y,E){super(y,E),this.isWorkgroupInfoElementNode=!0}generate(y,E){let z;const ne=y.context.assign;if(z=super.generate(y),ne!==!0){const ie=this.getNodeType(y);z=y.format(z,ie,E)}return z}}class n_ extends Zl{constructor(y,E,z=0){super(E),this.bufferType=E,this.bufferCount=z,this.isWorkgroupInfoNode=!0,this.elementType=E,this.scope=y}label(y){return this.name=y,this}setScope(y){return this.scope=y,this}getElementType(){return this.elementType}getInputType(){return`${this.scope}Array`}element(y){return wo(new t_(this,y))}generate(y){return y.getScopedArray(this.name||`${this.scope}Array_${this.id}`,this.scope.toLowerCase(),this.bufferType,this.bufferCount)}}const i_=(ee,y)=>wo(new n_("Workgroup",ee,y));class Op extends Zl{static get type(){return"AtomicFunctionNode"}constructor(y,E,z){super("uint"),this.method=y,this.pointerNode=E,this.valueNode=z,this.parents=!0}getInputType(y){return this.pointerNode.getNodeType(y)}getNodeType(y){return this.getInputType(y)}generate(y){const E=y.getNodeProperties(this),z=E.parents,ne=this.method,ie=this.getNodeType(y),se=this.getInputType(y),ae=this.pointerNode,he=this.valueNode,pe=[];pe.push(`&${ae.build(y,se)}`),he!==null&&pe.push(he.build(y,se));const ve=`${y.getMethod(ne,ie)}( ${pe.join(", ")} )`;if(z.length===1&&z[0].isStackNode===!0)y.addLineFlowCode(ve,this);else return E.constNode===void 0&&(E.constNode=T1(ve,ie).toConst()),E.constNode.build(y)}}Op.ATOMIC_LOAD="atomicLoad",Op.ATOMIC_STORE="atomicStore",Op.ATOMIC_ADD="atomicAdd",Op.ATOMIC_SUB="atomicSub",Op.ATOMIC_MAX="atomicMax",Op.ATOMIC_MIN="atomicMin",Op.ATOMIC_AND="atomicAnd",Op.ATOMIC_OR="atomicOr",Op.ATOMIC_XOR="atomicXor";const r_=Do(Op),ZA=(ee,y,E)=>r_(ee,y,E).toStack(),o_=ee=>ZA(Op.ATOMIC_LOAD,ee,null),s_=(ee,y)=>ZA(Op.ATOMIC_STORE,ee,y),a_=(ee,y)=>ZA(Op.ATOMIC_ADD,ee,y),l_=(ee,y)=>ZA(Op.ATOMIC_SUB,ee,y),u_=(ee,y)=>ZA(Op.ATOMIC_MAX,ee,y),c_=(ee,y)=>ZA(Op.ATOMIC_MIN,ee,y),h_=(ee,y)=>ZA(Op.ATOMIC_AND,ee,y),d_=(ee,y)=>ZA(Op.ATOMIC_OR,ee,y),f_=(ee,y)=>ZA(Op.ATOMIC_XOR,ee,y);let hT;function dT(ee){hT=hT||new WeakMap;let y=hT.get(ee);return y===void 0&&hT.set(ee,y={}),y}function $D(ee){const y=dT(ee);return y.shadowMatrix||(y.shadowMatrix=vl("mat4").setGroup(Yl).onRenderUpdate(E=>((ee.castShadow!==!0||E.renderer.shadowMap.enabled===!1)&&ee.shadow.updateMatrices(ee),ee.shadow.matrix)))}function z9(ee,y=Ev){const E=$D(ee).mul(y);return E.xyz.div(E.w)}function e6(ee){const y=dT(ee);return y.position||(y.position=vl(new yn).setGroup(Yl).onRenderUpdate((E,z)=>z.value.setFromMatrixPosition(ee.matrixWorld)))}function U9(ee){const y=dT(ee);return y.targetPosition||(y.targetPosition=vl(new yn).setGroup(Yl).onRenderUpdate((E,z)=>z.value.setFromMatrixPosition(ee.target.matrixWorld)))}function t6(ee){const y=dT(ee);return y.viewPosition||(y.viewPosition=vl(new yn).setGroup(Yl).onRenderUpdate(({camera:E},z)=>{z.value=z.value||new yn,z.value.setFromMatrixPosition(ee.matrixWorld),z.value.applyMatrix4(E.matrixWorldInverse)}))}const n6=ee=>Sm.transformDirection(e6(ee).sub(U9(ee))),p_=ee=>ee.sort((y,E)=>y.id-E.id),g_=(ee,y)=>{for(const E of y)if(E.isAnalyticLightNode&&E.light.id===ee)return E;return null},i6=new WeakMap,RM=[];class r6 extends Zl{static get type(){return"LightsNode"}constructor(){super("vec3"),this.totalDiffuseNode=Li().toVar(),this.totalSpecularNode=Li().toVar(),this.outgoingLightNode=Li().toVar(),this._lights=[],this._lightNodes=null,this._lightNodesHash=null,this.global=!0}customCacheKey(){const y=this._lights;for(let z=0;z<y.length;z++){const ne=y[z];if(RM.push(ne.id),RM.push(ne.castShadow?1:0),ne.isSpotLight===!0){const ie=ne.map!==null?ne.map.id:-1,se=ne.colorNode?ne.colorNode.getCacheKey():-1;RM.push(ie,se)}}const E=Z2(RM);return RM.length=0,E}getHash(y){if(this._lightNodesHash===null){this._lightNodes===null&&this.setupLightsNode(y);const E=[];for(const z of this._lightNodes)E.push(z.getSelf().getHash());this._lightNodesHash="lights-"+E.join(",")}return this._lightNodesHash}analyze(y){const E=y.getNodeProperties(this);for(const z of E.nodes)z.build(y);E.outputNode.build(y)}setupLightsNode(y){const E=[],z=this._lightNodes,ne=p_(this._lights),ie=y.renderer.library;for(const se of ne)if(se.isNode)E.push(wo(se));else{let ae=null;if(z!==null&&(ae=g_(se.id,z)),ae===null){const he=ie.getLightNodeClass(se.constructor);if(he===null){console.warn(`LightsNode.setupNodeLights: Light node not found for ${se.constructor.name}`);continue}let pe=null;i6.has(se)?pe=i6.get(se):(pe=wo(new he(se)),i6.set(se,pe)),E.push(pe)}}this._lightNodes=E}setupDirectLight(y,E,z){const{lightingModel:ne,reflectedLight:ie}=y.context;ne.direct(tx(Hd({},z),{lightNode:E,reflectedLight:ie}),y)}setupDirectRectAreaLight(y,E,z){const{lightingModel:ne,reflectedLight:ie}=y.context;ne.directRectArea(tx(Hd({},z),{lightNode:E,reflectedLight:ie}),y)}setupLights(y,E){for(const z of E)z.build(y)}getLightNodes(y){return this._lightNodes===null&&this.setupLightsNode(y),this._lightNodes}setup(y){const E=y.lightsNode;y.lightsNode=this;let z=this.outgoingLightNode;const ne=y.context,ie=ne.lightingModel,se=y.getNodeProperties(this);if(ie){const{totalDiffuseNode:ae,totalSpecularNode:he}=this;ne.outgoingLight=z;const pe=y.addStack();se.nodes=pe.nodes,ie.start(y);const{backdrop:ve,backdropAlpha:xe}=ne,{directDiffuse:Se,directSpecular:Be,indirectDiffuse:De,indirectSpecular:Re}=ne.reflectedLight;let Oe=Se.add(De);ve!==null&&(xe!==null?Oe=Li(xe.mix(Oe,ve)):Oe=Li(ve),ne.material.transparent=!0),ae.assign(Oe),he.assign(Be.add(Re)),z.assign(ae.add(he)),ie.finish(y),z=z.bypass(y.removeStack())}else se.nodes=[];return y.lightsNode=E,z}setLights(y){return this._lights=y,this._lightNodes=null,this._lightNodesHash=null,this}getLights(){return this._lights}get hasLights(){return this._lights.length>0}}const m_=(ee=[])=>wo(new r6).setLights(ee);class v_ extends Zl{static get type(){return"ShadowBaseNode"}constructor(y){super(),this.light=y,this.updateBeforeType=Uu.RENDER,this.isShadowBaseNode=!0}setupShadowPosition({context:y,material:E}){o6.assign(E.receivedShadowPositionNode||y.shadowPositionWorld||Ev)}}const o6=tS("vec3","shadowPositionWorld");function s6(ee,y={}){return y.toneMapping=ee.toneMapping,y.toneMappingExposure=ee.toneMappingExposure,y.outputColorSpace=ee.outputColorSpace,y.renderTarget=ee.getRenderTarget(),y.activeCubeFace=ee.getActiveCubeFace(),y.activeMipmapLevel=ee.getActiveMipmapLevel(),y.renderObjectFunction=ee.getRenderObjectFunction(),y.pixelRatio=ee.getPixelRatio(),y.mrt=ee.getMRT(),y.clearColor=ee.getClearColor(y.clearColor||new ia),y.clearAlpha=ee.getClearAlpha(),y.autoClear=ee.autoClear,y.scissorTest=ee.getScissorTest(),y}function H9(ee,y){return y=s6(ee,y),ee.setMRT(null),ee.setRenderObjectFunction(null),ee.setClearColor(0,1),ee.autoClear=!0,y}function V9(ee,y){ee.toneMapping=y.toneMapping,ee.toneMappingExposure=y.toneMappingExposure,ee.outputColorSpace=y.outputColorSpace,ee.setRenderTarget(y.renderTarget,y.activeCubeFace,y.activeMipmapLevel),ee.setRenderObjectFunction(y.renderObjectFunction),ee.setPixelRatio(y.pixelRatio),ee.setMRT(y.mrt),ee.setClearColor(y.clearColor,y.clearAlpha),ee.autoClear=y.autoClear,ee.setScissorTest(y.scissorTest)}function a6(ee,y={}){return y.background=ee.background,y.backgroundNode=ee.backgroundNode,y.overrideMaterial=ee.overrideMaterial,y}function j9(ee,y){return y=a6(ee,y),ee.background=null,ee.backgroundNode=null,ee.overrideMaterial=null,y}function G9(ee,y){ee.background=y.background,ee.backgroundNode=y.backgroundNode,ee.overrideMaterial=y.overrideMaterial}function y_(ee,y,E={}){return E=s6(ee,E),E=a6(y,E),E}function X9(ee,y,E){return E=H9(ee,E),E=j9(y,E),E}function W9(ee,y,E){V9(ee,E),G9(y,E)}var Gue=Object.freeze({__proto__:null,resetRendererAndSceneState:X9,resetRendererState:H9,resetSceneState:j9,restoreRendererAndSceneState:W9,restoreRendererState:V9,restoreSceneState:G9,saveRendererAndSceneState:y_,saveRendererState:s6,saveSceneState:a6});const Q9=new WeakMap,Z9=$i(({depthTexture:ee,shadowCoord:y,depthLayer:E})=>{let z=dc(ee,y.xy).label("t_basic");return ee.isArrayTexture&&(z=z.depth(E)),z.compare(y.z)}),Y9=$i(({depthTexture:ee,shadowCoord:y,shadow:E,depthLayer:z})=>{const ne=(Oe,Le)=>{let Je=dc(ee,Oe);return ee.isArrayTexture&&(Je=Je.depth(z)),Je.compare(Le)},ie=kh("mapSize","vec2",E).setGroup(Yl),se=kh("radius","float",E).setGroup(Yl),ae=Qo(1).div(ie),he=ae.x.negate().mul(se),pe=ae.y.negate().mul(se),ve=ae.x.mul(se),xe=ae.y.mul(se),Se=he.div(2),Be=pe.div(2),De=ve.div(2),Re=xe.div(2);return kf(ne(y.xy.add(Qo(he,pe)),y.z),ne(y.xy.add(Qo(0,pe)),y.z),ne(y.xy.add(Qo(ve,pe)),y.z),ne(y.xy.add(Qo(Se,Be)),y.z),ne(y.xy.add(Qo(0,Be)),y.z),ne(y.xy.add(Qo(De,Be)),y.z),ne(y.xy.add(Qo(he,0)),y.z),ne(y.xy.add(Qo(Se,0)),y.z),ne(y.xy,y.z),ne(y.xy.add(Qo(De,0)),y.z),ne(y.xy.add(Qo(ve,0)),y.z),ne(y.xy.add(Qo(Se,Re)),y.z),ne(y.xy.add(Qo(0,Re)),y.z),ne(y.xy.add(Qo(De,Re)),y.z),ne(y.xy.add(Qo(he,xe)),y.z),ne(y.xy.add(Qo(0,xe)),y.z),ne(y.xy.add(Qo(ve,xe)),y.z)).mul(1/17)}),K9=$i(({depthTexture:ee,shadowCoord:y,shadow:E,depthLayer:z})=>{const ne=(xe,Se)=>{let Be=dc(ee,xe);return ee.isArrayTexture&&(Be=Be.depth(z)),Be.compare(Se)},ie=kh("mapSize","vec2",E).setGroup(Yl),se=Qo(1).div(ie),ae=se.x,he=se.y,pe=y.xy,ve=M1(pe.mul(ie).add(.5));return pe.subAssign(ve.mul(se)),kf(ne(pe,y.z),ne(pe.add(Qo(ae,0)),y.z),ne(pe.add(Qo(0,he)),y.z),ne(pe.add(se),y.z),Qc(ne(pe.add(Qo(ae.negate(),0)),y.z),ne(pe.add(Qo(ae.mul(2),0)),y.z),ve.x),Qc(ne(pe.add(Qo(ae.negate(),he)),y.z),ne(pe.add(Qo(ae.mul(2),he)),y.z),ve.x),Qc(ne(pe.add(Qo(0,he.negate())),y.z),ne(pe.add(Qo(0,he.mul(2))),y.z),ve.y),Qc(ne(pe.add(Qo(ae,he.negate())),y.z),ne(pe.add(Qo(ae,he.mul(2))),y.z),ve.y),Qc(Qc(ne(pe.add(Qo(ae.negate(),he.negate())),y.z),ne(pe.add(Qo(ae.mul(2),he.negate())),y.z),ve.x),Qc(ne(pe.add(Qo(ae.negate(),he.mul(2))),y.z),ne(pe.add(Qo(ae.mul(2),he.mul(2))),y.z),ve.x),ve.y)).mul(1/9)}),J9=$i(({depthTexture:ee,shadowCoord:y,depthLayer:E})=>{const z=Dn(1).toVar();let ne=dc(ee).sample(y.xy);ee.isArrayTexture&&(ne=ne.depth(E)),ne=ne.rg;const ie=TB(y.z,ne.x);return $l(ie.notEqual(Dn(1)),()=>{const se=y.z.sub(ne.x),ae=qd(0,ne.y.mul(ne.y));let he=ae.div(ae.add(se.mul(se)));he=GA(Pc(he,.3).div(.95-.3)),z.assign(GA(qd(ie,he)))}),z}),A_=$i(([ee,y,E])=>{let z=Ev.sub(ee).length();return z=z.sub(y).div(E.sub(y)),z=z.saturate(),z}),x_=ee=>{const y=ee.shadow.camera,E=kh("near","float",y).setGroup(Yl),z=kh("far","float",y).setGroup(Yl),ne=J4(ee);return A_(ne,E,z)},q9=ee=>{let y=Q9.get(ee);if(y===void 0){const E=ee.isPointLight?x_(ee):null;y=new $d,y.colorNode=Da(0,0,0,1),y.depthNode=E,y.isShadowPassMaterial=!0,y.name="ShadowMaterial",y.fog=!1,Q9.set(ee,y)}return y},_9=new Vy,_E=[],$9=(ee,y,E,z)=>{_E[0]=ee,_E[1]=y;let ne=_9.get(_E);return(ne===void 0||ne.shadowType!==E||ne.useVelocity!==z)&&(ne=(ie,se,ae,he,pe,ve,...xe)=>{(ie.castShadow===!0||ie.receiveShadow&&E===gc)&&(z&&(i8(ie).useVelocity=!0),ie.onBeforeShadow(ee,ie,ae,y.camera,he,se.overrideMaterial,ve),ee.renderObject(ie,se,ae,he,pe,ve,...xe),ie.onAfterShadow(ee,ie,ae,y.camera,he,se.overrideMaterial,ve))},ne.shadowType=E,ne.useVelocity=z,_9.set(_E,ne)),_E[0]=null,_E[1]=null,ne},w_=$i(({samples:ee,radius:y,size:E,shadowPass:z,depthLayer:ne})=>{const ie=Dn(0).toVar("meanVertical"),se=Dn(0).toVar("squareMeanVertical"),ae=ee.lessThanEqual(Dn(1)).select(Dn(0),Dn(2).div(ee.sub(1))),he=ee.lessThanEqual(Dn(1)).select(Dn(0),Dn(-1));qc({start:gi(0),end:gi(ee),type:"int",condition:"<"},({i:ve})=>{const xe=he.add(Dn(ve).mul(ae));let Se=z.sample(kf(CM.xy,Qo(0,xe).mul(y)).div(E));z.value.isArrayTexture&&(Se=Se.depth(ne)),Se=Se.x,ie.addAssign(Se),se.addAssign(Se.mul(Se))}),ie.divAssign(ee),se.divAssign(ee);const pe=HA(se.sub(ie.mul(ie)));return Qo(ie,pe)}),S_=$i(({samples:ee,radius:y,size:E,shadowPass:z,depthLayer:ne})=>{const ie=Dn(0).toVar("meanHorizontal"),se=Dn(0).toVar("squareMeanHorizontal"),ae=ee.lessThanEqual(Dn(1)).select(Dn(0),Dn(2).div(ee.sub(1))),he=ee.lessThanEqual(Dn(1)).select(Dn(0),Dn(-1));qc({start:gi(0),end:gi(ee),type:"int",condition:"<"},({i:ve})=>{const xe=he.add(Dn(ve).mul(ae));let Se=z.sample(kf(CM.xy,Qo(xe,0).mul(y)).div(E));z.value.isArrayTexture&&(Se=Se.depth(ne)),ie.addAssign(Se.x),se.addAssign(kf(Se.y.mul(Se.y),Se.x.mul(Se.x)))}),ie.divAssign(ee),se.divAssign(ee);const pe=HA(se.sub(ie.mul(ie)));return Qo(ie,pe)}),P_=[Z9,Y9,K9,J9];let l6;const fT=new LM;class ek extends v_{static get type(){return"ShadowNode"}constructor(y,E=null){super(y),this.shadow=E||y.shadow,this.shadowMap=null,this.vsmShadowMapVertical=null,this.vsmShadowMapHorizontal=null,this.vsmMaterialVertical=null,this.vsmMaterialHorizontal=null,this._node=null,this._cameraFrameId=new WeakMap,this.isShadowNode=!0,this.depthLayer=0}setupShadowFilter(y,{filterFn:E,depthTexture:z,shadowCoord:ne,shadow:ie,depthLayer:se}){const ae=ne.x.greaterThanEqual(0).and(ne.x.lessThanEqual(1)).and(ne.y.greaterThanEqual(0)).and(ne.y.lessThanEqual(1)).and(ne.z.lessThanEqual(1)),he=E({depthTexture:z,shadowCoord:ne,shadow:ie,depthLayer:se});return ae.select(he,Dn(1))}setupShadowCoord(y,E){const{shadow:z}=this,{renderer:ne}=y,ie=kh("bias","float",z).setGroup(Yl);let se=E,ae;if(z.camera.isOrthographicCamera||ne.logarithmicDepthBuffer!==!0)se=se.xyz.div(se.w),ae=se.z,ne.coordinateSystem===zg&&(ae=ae.mul(2).sub(1));else{const he=se.w;se=se.xy.div(he);const pe=kh("near","float",z.camera).setGroup(Yl),ve=kh("far","float",z.camera).setGroup(Yl);ae=gD(he.negate(),pe,ve)}return se=Li(se.x,se.y.oneMinus(),ae.add(ie)),se}getShadowFilterFn(y){return P_[y]}setupRenderTarget(y,E){const z=new jg(y.mapSize.width,y.mapSize.height);z.name="ShadowDepthTexture",z.compareFunction=bx;const ne=E.createRenderTarget(y.mapSize.width,y.mapSize.height);return ne.texture.name="ShadowMap",ne.texture.type=y.mapType,ne.depthTexture=z,{shadowMap:ne,depthTexture:z}}setupShadow(y){const{renderer:E}=y,{light:z,shadow:ne}=this,ie=E.shadowMap.type,{depthTexture:se,shadowMap:ae}=this.setupRenderTarget(ne,y);if(ne.camera.updateProjectionMatrix(),ie===gc&&ne.isPointLightShadow!==!0){se.compareFunction=null,ae.depth>1?(ae._vsmShadowMapVertical||(ae._vsmShadowMapVertical=y.createRenderTarget(ne.mapSize.width,ne.mapSize.height,{format:kg,type:Hc,depth:ae.depth,depthBuffer:!1}),ae._vsmShadowMapVertical.texture.name="VSMVertical"),this.vsmShadowMapVertical=ae._vsmShadowMapVertical,ae._vsmShadowMapHorizontal||(ae._vsmShadowMapHorizontal=y.createRenderTarget(ne.mapSize.width,ne.mapSize.height,{format:kg,type:Hc,depth:ae.depth,depthBuffer:!1}),ae._vsmShadowMapHorizontal.texture.name="VSMHorizontal"),this.vsmShadowMapHorizontal=ae._vsmShadowMapHorizontal):(this.vsmShadowMapVertical=y.createRenderTarget(ne.mapSize.width,ne.mapSize.height,{format:kg,type:Hc,depthBuffer:!1}),this.vsmShadowMapHorizontal=y.createRenderTarget(ne.mapSize.width,ne.mapSize.height,{format:kg,type:Hc,depthBuffer:!1}));let Le=dc(se);se.isArrayTexture&&(Le=Le.depth(this.depthLayer));let Je=dc(this.vsmShadowMapVertical.texture);se.isArrayTexture&&(Je=Je.depth(this.depthLayer));const $e=kh("blurSamples","float",ne).setGroup(Yl),_e=kh("radius","float",ne).setGroup(Yl),st=kh("mapSize","vec2",ne).setGroup(Yl);let ct=this.vsmMaterialVertical||(this.vsmMaterialVertical=new $d);ct.fragmentNode=w_({samples:$e,radius:_e,size:st,shadowPass:Le,depthLayer:this.depthLayer}).context(y.getSharedContext()),ct.name="VSMVertical",ct=this.vsmMaterialHorizontal||(this.vsmMaterialHorizontal=new $d),ct.fragmentNode=S_({samples:$e,radius:_e,size:st,shadowPass:Je,depthLayer:this.depthLayer}).context(y.getSharedContext()),ct.name="VSMHorizontal"}const he=kh("intensity","float",ne).setGroup(Yl),pe=kh("normalBias","float",ne).setGroup(Yl),ve=$D(z).mul(o6.add(UB.mul(pe))),xe=this.setupShadowCoord(y,ve),Se=ne.filterNode||this.getShadowFilterFn(E.shadowMap.type)||null;if(Se===null)throw new Error("THREE.WebGPURenderer: Shadow map type not supported yet.");const Be=ie===gc&&ne.isPointLightShadow!==!0?this.vsmShadowMapHorizontal.texture:se,De=this.setupShadowFilter(y,{filterFn:Se,shadowTexture:ae.texture,depthTexture:Be,shadowCoord:xe,shadow:ne,depthLayer:this.depthLayer});let Re=dc(ae.texture,xe);se.isArrayTexture&&(Re=Re.depth(this.depthLayer));const Oe=Qc(1,De.rgb.mix(Re,1),he.mul(Re.a)).toVar();return this.shadowMap=ae,this.shadow.map=ae,Oe}setup(y){if(y.renderer.shadowMap.enabled!==!1)return $i(()=>{let E=this._node;return this.setupShadowPosition(y),E===null&&(this._node=E=this.setupShadow(y)),y.material.shadowNode&&console.warn('THREE.NodeMaterial: ".shadowNode" is deprecated. Use ".castShadowNode" instead.'),y.material.receivedShadowNode&&(E=y.material.receivedShadowNode(E)),E})()}renderShadow(y){const{shadow:E,shadowMap:z,light:ne}=this,{renderer:ie,scene:se}=y;E.updateMatrices(ne),z.setSize(E.mapSize.width,E.mapSize.height,z.depth),ie.render(se,E.camera)}updateShadow(y){const{shadowMap:E,light:z,shadow:ne}=this,{renderer:ie,scene:se,camera:ae}=y,he=ie.shadowMap.type,pe=E.depthTexture.version;this._depthVersionCached=pe;const ve=ne.camera.layers.mask;ne.camera.layers.mask&4294967294||(ne.camera.layers.mask=ae.layers.mask);const xe=ie.getRenderObjectFunction(),Se=ie.getMRT(),Be=Se?Se.has("velocity"):!1;l6=X9(ie,se,l6),se.overrideMaterial=q9(z),ie.setRenderObjectFunction($9(ie,ne,he,Be)),ie.setClearColor(0,0),ie.setRenderTarget(E),this.renderShadow(y),ie.setRenderObjectFunction(xe),he===gc&&ne.isPointLightShadow!==!0&&this.vsmPass(ie),ne.camera.layers.mask=ve,W9(ie,se,l6)}vsmPass(y){const{shadow:E}=this,z=this.shadowMap.depth;this.vsmShadowMapVertical.setSize(E.mapSize.width,E.mapSize.height,z),this.vsmShadowMapHorizontal.setSize(E.mapSize.width,E.mapSize.height,z),y.setRenderTarget(this.vsmShadowMapVertical),fT.material=this.vsmMaterialVertical,fT.render(y),y.setRenderTarget(this.vsmShadowMapHorizontal),fT.material=this.vsmMaterialHorizontal,fT.render(y)}dispose(){this.shadowMap.dispose(),this.shadowMap=null,this.vsmShadowMapVertical!==null&&(this.vsmShadowMapVertical.dispose(),this.vsmShadowMapVertical=null,this.vsmMaterialVertical.dispose(),this.vsmMaterialVertical=null),this.vsmShadowMapHorizontal!==null&&(this.vsmShadowMapHorizontal.dispose(),this.vsmShadowMapHorizontal=null,this.vsmMaterialHorizontal.dispose(),this.vsmMaterialHorizontal=null),super.dispose()}updateBefore(y){const{shadow:E}=this;let z=E.needsUpdate||E.autoUpdate;z&&(this._cameraFrameId[y.camera]===y.frameId&&(z=!1),this._cameraFrameId[y.camera]=y.frameId),z&&(this.updateShadow(y),this.shadowMap.depthTexture.version===this._depthVersionCached&&(E.needsUpdate=!1))}}const tk=(ee,y)=>wo(new ek(ee,y)),C_=new ia,jy=$i(([ee,y])=>{const E=ee.toVar(),z=Kh(E),ne=xv(1,qd(z.x,qd(z.y,z.z)));z.mulAssign(ne),E.mulAssign(ne.mul(y.mul(2).oneMinus()));const ie=Qo(E.xy).toVar(),ae=y.mul(1.5).oneMinus();return $l(z.z.greaterThanEqual(ae),()=>{$l(E.z.greaterThan(0),()=>{ie.x.assign(Pc(4,E.x))})}).ElseIf(z.x.greaterThanEqual(ae),()=>{const he=uM(E.x);ie.x.assign(E.z.mul(he).add(he.mul(2)))}).ElseIf(z.y.greaterThanEqual(ae),()=>{const he=uM(E.y);ie.x.assign(E.x.add(he.mul(2)).add(2)),ie.y.assign(E.z.mul(he).sub(2))}),Qo(.125,.25).mul(ie).add(Qo(.375,.75)).flipY()}).setLayout({name:"cubeToUV",type:"vec2",inputs:[{name:"pos",type:"vec3"},{name:"texelSizeY",type:"float"}]}),nk=$i(({depthTexture:ee,bd3D:y,dp:E,texelSize:z})=>dc(ee,jy(y,z.y)).compare(E)),ik=$i(({depthTexture:ee,bd3D:y,dp:E,texelSize:z,shadow:ne})=>{const ie=kh("radius","float",ne).setGroup(Yl),se=Qo(-1,1).mul(ie).mul(z.y);return dc(ee,jy(y.add(se.xyy),z.y)).compare(E).add(dc(ee,jy(y.add(se.yyy),z.y)).compare(E)).add(dc(ee,jy(y.add(se.xyx),z.y)).compare(E)).add(dc(ee,jy(y.add(se.yyx),z.y)).compare(E)).add(dc(ee,jy(y,z.y)).compare(E)).add(dc(ee,jy(y.add(se.xxy),z.y)).compare(E)).add(dc(ee,jy(y.add(se.yxy),z.y)).compare(E)).add(dc(ee,jy(y.add(se.xxx),z.y)).compare(E)).add(dc(ee,jy(y.add(se.yxx),z.y)).compare(E)).mul(1/9)}),E_=$i(({filterFn:ee,depthTexture:y,shadowCoord:E,shadow:z})=>{const ne=E.xyz.toVar(),ie=ne.length(),se=vl("float").setGroup(Yl).onRenderUpdate(()=>z.camera.near),ae=vl("float").setGroup(Yl).onRenderUpdate(()=>z.camera.far),he=kh("bias","float",z).setGroup(Yl),pe=vl(z.mapSize).setGroup(Yl),ve=Dn(1).toVar();return $l(ie.sub(ae).lessThanEqual(0).and(ie.sub(se).greaterThanEqual(0)),()=>{const xe=ie.sub(se).div(ae.sub(se)).toVar();xe.addAssign(he);const Se=ne.normalize(),Be=Qo(1).div(pe.mul(Qo(4,2)));ve.assign(ee({depthTexture:y,bd3D:Se,dp:xe,texelSize:Be,shadow:z}))}),ve}),rk=new Ul,$E=new Yr,zM=new Yr;class b_ extends ek{static get type(){return"PointShadowNode"}constructor(y,E=null){super(y,E)}getShadowFilterFn(y){return y===tA?nk:ik}setupShadowCoord(y,E){return E}setupShadowFilter(y,{filterFn:E,shadowTexture:z,depthTexture:ne,shadowCoord:ie,shadow:se}){return E_({filterFn:E,shadowTexture:z,depthTexture:ne,shadowCoord:ie,shadow:se})}renderShadow(y){const{shadow:E,shadowMap:z,light:ne}=this,{renderer:ie,scene:se}=y,ae=E.getFrameExtents();zM.copy(E.mapSize),zM.multiply(ae),z.setSize(zM.width,zM.height),$E.copy(E.mapSize);const he=ie.autoClear,pe=ie.getClearColor(C_),ve=ie.getClearAlpha();ie.autoClear=!1,ie.setClearColor(E.clearColor,E.clearAlpha),ie.clear();const xe=E.getViewportCount();for(let Se=0;Se<xe;Se++){const Be=E.getViewport(Se),De=$E.x*Be.x,Re=zM.y-$E.y-$E.y*Be.y;rk.set(De,Re,$E.x*Be.z,$E.y*Be.w),z.viewport.copy(rk),E.updateMatrices(ne,Se),ie.render(se,E.camera)}ie.autoClear=he,ie.setClearColor(pe,ve)}}const ok=(ee,y)=>wo(new b_(ee,y));class eC extends GE{static get type(){return"AnalyticLightNode"}constructor(y=null){super(),this.light=y,this.color=new ia,this.colorNode=y&&y.colorNode||vl(this.color).setGroup(Yl),this.baseColorNode=null,this.shadowNode=null,this.shadowColorNode=null,this.isAnalyticLightNode=!0,this.updateType=Uu.FRAME}getHash(){return this.light.uuid}getLightVector(y){return t6(this.light).sub(y.context.positionView||Of)}setupDirect(){}setupDirectRectArea(){}setupShadowNode(){return tk(this.light)}setupShadow(y){const{renderer:E}=y;if(E.shadowMap.enabled===!1)return;let z=this.shadowColorNode;if(z===null){const ne=this.light.shadow.shadowNode;let ie;ne!==void 0?ie=wo(ne):ie=this.setupShadowNode(),this.shadowNode=ie,this.shadowColorNode=z=this.colorNode.mul(ie),this.baseColorNode=this.colorNode}this.colorNode=z}setup(y){this.colorNode=this.baseColorNode||this.colorNode,this.light.castShadow?y.object.receiveShadow&&this.setupShadow(y):this.shadowNode!==null&&(this.shadowNode.dispose(),this.shadowNode=null,this.shadowColorNode=null);const E=this.setupDirect(y),z=this.setupDirectRectArea(y);E&&y.lightsNode.setupDirectLight(y,this,E),z&&y.lightsNode.setupDirectRectAreaLight(y,this,z)}update(){const{light:y}=this;this.color.copy(y.color).multiplyScalar(y.intensity)}}const u6=$i(({lightDistance:ee,cutoffDistance:y,decayExponent:E})=>{const z=ee.pow(E).max(.01).reciprocal();return y.greaterThan(0).select(z.mul(ee.div(y).pow4().oneMinus().clamp().pow2()),z)}),sk=({color:ee,lightVector:y,cutoffDistance:E,decayExponent:z})=>{const ne=y.normalize(),ie=y.length(),se=u6({lightDistance:ie,cutoffDistance:E,decayExponent:z}),ae=ee.mul(se);return{lightDirection:ne,lightColor:ae}};class M_ extends eC{static get type(){return"PointLightNode"}constructor(y=null){super(y),this.cutoffDistanceNode=vl(0).setGroup(Yl),this.decayExponentNode=vl(2).setGroup(Yl)}update(y){const{light:E}=this;super.update(y),this.cutoffDistanceNode.value=E.distance,this.decayExponentNode.value=E.decay}setupShadowNode(){return ok(this.light)}setupDirect(y){return sk({color:this.colorNode,lightVector:this.getLightVector(y),cutoffDistance:this.cutoffDistanceNode,decayExponent:this.decayExponentNode})}}const B_=$i(([ee=nd()])=>{const y=ee.mul(2),E=y.x.floor(),z=y.y.floor();return E.add(z).mod(2).sign()}),T_=$i(([ee=nd()],{renderer:y,material:E})=>{const z=k8(ee.mul(2).sub(1));let ne;if(E.alphaToCoverage&&y.samples>1){const ie=Dn(z.fwidth()).toVar();ne=wv(ie.oneMinus(),ie.add(1),z).oneMinus()}else ne=kp(z.greaterThan(1),0,1);return ne}),UM=$i(([ee,y,E])=>{const z=Dn(E).toVar(),ne=Dn(y).toVar(),ie=RA(ee).toVar();return kp(ie,ne,z)}).setLayout({name:"mx_select",type:"float",inputs:[{name:"b",type:"bool"},{name:"t",type:"float"},{name:"f",type:"float"}]}),pT=$i(([ee,y])=>{const E=RA(y).toVar(),z=Dn(ee).toVar();return kp(E,z.negate(),z)}).setLayout({name:"mx_negate_if",type:"float",inputs:[{name:"val",type:"float"},{name:"b",type:"bool"}]}),Rf=$i(([ee])=>{const y=Dn(ee).toVar();return gi(VA(y))}).setLayout({name:"mx_floor",type:"int",inputs:[{name:"x",type:"float"}]}),Ad=$i(([ee,y])=>{const E=Dn(ee).toVar();return y.assign(Rf(E)),E.sub(Dn(y))}),ak=Eg([$i(([ee,y,E,z,ne,ie])=>{const se=Dn(ie).toVar(),ae=Dn(ne).toVar(),he=Dn(z).toVar(),pe=Dn(E).toVar(),ve=Dn(y).toVar(),xe=Dn(ee).toVar(),Se=Dn(Pc(1,ae)).toVar();return Pc(1,se).mul(xe.mul(Se).add(ve.mul(ae))).add(se.mul(pe.mul(Se).add(he.mul(ae))))}).setLayout({name:"mx_bilerp_0",type:"float",inputs:[{name:"v0",type:"float"},{name:"v1",type:"float"},{name:"v2",type:"float"},{name:"v3",type:"float"},{name:"s",type:"float"},{name:"t",type:"float"}]}),$i(([ee,y,E,z,ne,ie])=>{const se=Dn(ie).toVar(),ae=Dn(ne).toVar(),he=Li(z).toVar(),pe=Li(E).toVar(),ve=Li(y).toVar(),xe=Li(ee).toVar(),Se=Dn(Pc(1,ae)).toVar();return Pc(1,se).mul(xe.mul(Se).add(ve.mul(ae))).add(se.mul(pe.mul(Se).add(he.mul(ae))))}).setLayout({name:"mx_bilerp_1",type:"vec3",inputs:[{name:"v0",type:"vec3"},{name:"v1",type:"vec3"},{name:"v2",type:"vec3"},{name:"v3",type:"vec3"},{name:"s",type:"float"},{name:"t",type:"float"}]})]),lk=Eg([$i(([ee,y,E,z,ne,ie,se,ae,he,pe,ve])=>{const xe=Dn(ve).toVar(),Se=Dn(pe).toVar(),Be=Dn(he).toVar(),De=Dn(ae).toVar(),Re=Dn(se).toVar(),Oe=Dn(ie).toVar(),Le=Dn(ne).toVar(),Je=Dn(z).toVar(),$e=Dn(E).toVar(),_e=Dn(y).toVar(),st=Dn(ee).toVar(),ct=Dn(Pc(1,Be)).toVar(),ut=Dn(Pc(1,Se)).toVar();return Dn(Pc(1,xe)).toVar().mul(ut.mul(st.mul(ct).add(_e.mul(Be))).add(Se.mul($e.mul(ct).add(Je.mul(Be))))).add(xe.mul(ut.mul(Le.mul(ct).add(Oe.mul(Be))).add(Se.mul(Re.mul(ct).add(De.mul(Be))))))}).setLayout({name:"mx_trilerp_0",type:"float",inputs:[{name:"v0",type:"float"},{name:"v1",type:"float"},{name:"v2",type:"float"},{name:"v3",type:"float"},{name:"v4",type:"float"},{name:"v5",type:"float"},{name:"v6",type:"float"},{name:"v7",type:"float"},{name:"s",type:"float"},{name:"t",type:"float"},{name:"r",type:"float"}]}),$i(([ee,y,E,z,ne,ie,se,ae,he,pe,ve])=>{const xe=Dn(ve).toVar(),Se=Dn(pe).toVar(),Be=Dn(he).toVar(),De=Li(ae).toVar(),Re=Li(se).toVar(),Oe=Li(ie).toVar(),Le=Li(ne).toVar(),Je=Li(z).toVar(),$e=Li(E).toVar(),_e=Li(y).toVar(),st=Li(ee).toVar(),ct=Dn(Pc(1,Be)).toVar(),ut=Dn(Pc(1,Se)).toVar();return Dn(Pc(1,xe)).toVar().mul(ut.mul(st.mul(ct).add(_e.mul(Be))).add(Se.mul($e.mul(ct).add(Je.mul(Be))))).add(xe.mul(ut.mul(Le.mul(ct).add(Oe.mul(Be))).add(Se.mul(Re.mul(ct).add(De.mul(Be))))))}).setLayout({name:"mx_trilerp_1",type:"vec3",inputs:[{name:"v0",type:"vec3"},{name:"v1",type:"vec3"},{name:"v2",type:"vec3"},{name:"v3",type:"vec3"},{name:"v4",type:"vec3"},{name:"v5",type:"vec3"},{name:"v6",type:"vec3"},{name:"v7",type:"vec3"},{name:"s",type:"float"},{name:"t",type:"float"},{name:"r",type:"float"}]})]),ng=Eg([$i(([ee,y,E])=>{const z=Dn(E).toVar(),ne=Dn(y).toVar(),ie=Ea(ee).toVar(),se=Ea(ie.bitAnd(Ea(7))).toVar(),ae=Dn(UM(se.lessThan(Ea(4)),ne,z)).toVar(),he=Dn(Lu(2,UM(se.lessThan(Ea(4)),z,ne))).toVar();return pT(ae,RA(se.bitAnd(Ea(1)))).add(pT(he,RA(se.bitAnd(Ea(2)))))}).setLayout({name:"mx_gradient_float_0",type:"float",inputs:[{name:"hash",type:"uint"},{name:"x",type:"float"},{name:"y",type:"float"}]}),$i(([ee,y,E,z])=>{const ne=Dn(z).toVar(),ie=Dn(E).toVar(),se=Dn(y).toVar(),ae=Ea(ee).toVar(),he=Ea(ae.bitAnd(Ea(15))).toVar(),pe=Dn(UM(he.lessThan(Ea(8)),se,ie)).toVar(),ve=Dn(UM(he.lessThan(Ea(4)),ie,UM(he.equal(Ea(12)).or(he.equal(Ea(14))),se,ne))).toVar();return pT(pe,RA(he.bitAnd(Ea(1)))).add(pT(ve,RA(he.bitAnd(Ea(2)))))}).setLayout({name:"mx_gradient_float_1",type:"float",inputs:[{name:"hash",type:"uint"},{name:"x",type:"float"},{name:"y",type:"float"},{name:"z",type:"float"}]})]),Bv=Eg([$i(([ee,y,E])=>{const z=Dn(E).toVar(),ne=Dn(y).toVar(),ie=RE(ee).toVar();return Li(ng(ie.x,ne,z),ng(ie.y,ne,z),ng(ie.z,ne,z))}).setLayout({name:"mx_gradient_vec3_0",type:"vec3",inputs:[{name:"hash",type:"uvec3"},{name:"x",type:"float"},{name:"y",type:"float"}]}),$i(([ee,y,E,z])=>{const ne=Dn(z).toVar(),ie=Dn(E).toVar(),se=Dn(y).toVar(),ae=RE(ee).toVar();return Li(ng(ae.x,se,ie,ne),ng(ae.y,se,ie,ne),ng(ae.z,se,ie,ne))}).setLayout({name:"mx_gradient_vec3_1",type:"vec3",inputs:[{name:"hash",type:"uvec3"},{name:"x",type:"float"},{name:"y",type:"float"},{name:"z",type:"float"}]})]),D_=$i(([ee])=>{const y=Dn(ee).toVar();return Lu(.6616,y)}).setLayout({name:"mx_gradient_scale2d_0",type:"float",inputs:[{name:"v",type:"float"}]}),N_=$i(([ee])=>{const y=Dn(ee).toVar();return Lu(.982,y)}).setLayout({name:"mx_gradient_scale3d_0",type:"float",inputs:[{name:"v",type:"float"}]}),uk=Eg([D_,$i(([ee])=>{const y=Li(ee).toVar();return Lu(.6616,y)}).setLayout({name:"mx_gradient_scale2d_1",type:"vec3",inputs:[{name:"v",type:"vec3"}]})]),ck=Eg([N_,$i(([ee])=>{const y=Li(ee).toVar();return Lu(.982,y)}).setLayout({name:"mx_gradient_scale3d_1",type:"vec3",inputs:[{name:"v",type:"vec3"}]})]),R0=$i(([ee,y])=>{const E=gi(y).toVar(),z=Ea(ee).toVar();return z.shiftLeft(E).bitOr(z.shiftRight(gi(32).sub(E)))}).setLayout({name:"mx_rotl32",type:"uint",inputs:[{name:"x",type:"uint"},{name:"k",type:"int"}]}),hk=$i(([ee,y,E])=>{ee.subAssign(E),ee.bitXorAssign(R0(E,gi(4))),E.addAssign(y),y.subAssign(ee),y.bitXorAssign(R0(ee,gi(6))),ee.addAssign(E),E.subAssign(y),E.bitXorAssign(R0(y,gi(8))),y.addAssign(ee),ee.subAssign(E),ee.bitXorAssign(R0(E,gi(16))),E.addAssign(y),y.subAssign(ee),y.bitXorAssign(R0(ee,gi(19))),ee.addAssign(E),E.subAssign(y),E.bitXorAssign(R0(y,gi(4))),y.addAssign(ee)}),HM=$i(([ee,y,E])=>{const z=Ea(E).toVar(),ne=Ea(y).toVar(),ie=Ea(ee).toVar();return z.bitXorAssign(ne),z.subAssign(R0(ne,gi(14))),ie.bitXorAssign(z),ie.subAssign(R0(z,gi(11))),ne.bitXorAssign(ie),ne.subAssign(R0(ie,gi(25))),z.bitXorAssign(ne),z.subAssign(R0(ne,gi(16))),ie.bitXorAssign(z),ie.subAssign(R0(z,gi(4))),ne.bitXorAssign(ie),ne.subAssign(R0(ie,gi(14))),z.bitXorAssign(ne),z.subAssign(R0(ne,gi(24))),z}).setLayout({name:"mx_bjfinal",type:"uint",inputs:[{name:"a",type:"uint"},{name:"b",type:"uint"},{name:"c",type:"uint"}]}),em=$i(([ee])=>{const y=Ea(ee).toVar();return Dn(y).div(Dn(Ea(gi(4294967295))))}).setLayout({name:"mx_bits_to_01",type:"float",inputs:[{name:"bits",type:"uint"}]}),YA=$i(([ee])=>{const y=Dn(ee).toVar();return y.mul(y).mul(y).mul(y.mul(y.mul(6).sub(15)).add(10))}).setLayout({name:"mx_fade",type:"float",inputs:[{name:"t",type:"float"}]}),Ph=Eg([$i(([ee])=>{const y=gi(ee).toVar(),E=Ea(Ea(1)).toVar(),z=Ea(Ea(gi(3735928559)).add(E.shiftLeft(Ea(2))).add(Ea(13))).toVar();return HM(z.add(Ea(y)),z,z)}).setLayout({name:"mx_hash_int_0",type:"uint",inputs:[{name:"x",type:"int"}]}),$i(([ee,y])=>{const E=gi(y).toVar(),z=gi(ee).toVar(),ne=Ea(Ea(2)).toVar(),ie=Ea().toVar(),se=Ea().toVar(),ae=Ea().toVar();return ie.assign(se.assign(ae.assign(Ea(gi(3735928559)).add(ne.shiftLeft(Ea(2))).add(Ea(13))))),ie.addAssign(Ea(z)),se.addAssign(Ea(E)),HM(ie,se,ae)}).setLayout({name:"mx_hash_int_1",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"}]}),$i(([ee,y,E])=>{const z=gi(E).toVar(),ne=gi(y).toVar(),ie=gi(ee).toVar(),se=Ea(Ea(3)).toVar(),ae=Ea().toVar(),he=Ea().toVar(),pe=Ea().toVar();return ae.assign(he.assign(pe.assign(Ea(gi(3735928559)).add(se.shiftLeft(Ea(2))).add(Ea(13))))),ae.addAssign(Ea(ie)),he.addAssign(Ea(ne)),pe.addAssign(Ea(z)),HM(ae,he,pe)}).setLayout({name:"mx_hash_int_2",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"}]}),$i(([ee,y,E,z])=>{const ne=gi(z).toVar(),ie=gi(E).toVar(),se=gi(y).toVar(),ae=gi(ee).toVar(),he=Ea(Ea(4)).toVar(),pe=Ea().toVar(),ve=Ea().toVar(),xe=Ea().toVar();return pe.assign(ve.assign(xe.assign(Ea(gi(3735928559)).add(he.shiftLeft(Ea(2))).add(Ea(13))))),pe.addAssign(Ea(ae)),ve.addAssign(Ea(se)),xe.addAssign(Ea(ie)),hk(pe,ve,xe),pe.addAssign(Ea(ne)),HM(pe,ve,xe)}).setLayout({name:"mx_hash_int_3",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xx",type:"int"}]}),$i(([ee,y,E,z,ne])=>{const ie=gi(ne).toVar(),se=gi(z).toVar(),ae=gi(E).toVar(),he=gi(y).toVar(),pe=gi(ee).toVar(),ve=Ea(Ea(5)).toVar(),xe=Ea().toVar(),Se=Ea().toVar(),Be=Ea().toVar();return xe.assign(Se.assign(Be.assign(Ea(gi(3735928559)).add(ve.shiftLeft(Ea(2))).add(Ea(13))))),xe.addAssign(Ea(pe)),Se.addAssign(Ea(he)),Be.addAssign(Ea(ae)),hk(xe,Se,Be),xe.addAssign(Ea(se)),Se.addAssign(Ea(ie)),HM(xe,Se,Be)}).setLayout({name:"mx_hash_int_4",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xx",type:"int"},{name:"yy",type:"int"}]})]),Tv=Eg([$i(([ee,y])=>{const E=gi(y).toVar(),z=gi(ee).toVar(),ne=Ea(Ph(z,E)).toVar(),ie=RE().toVar();return ie.x.assign(ne.bitAnd(gi(255))),ie.y.assign(ne.shiftRight(gi(8)).bitAnd(gi(255))),ie.z.assign(ne.shiftRight(gi(16)).bitAnd(gi(255))),ie}).setLayout({name:"mx_hash_vec3_0",type:"uvec3",inputs:[{name:"x",type:"int"},{name:"y",type:"int"}]}),$i(([ee,y,E])=>{const z=gi(E).toVar(),ne=gi(y).toVar(),ie=gi(ee).toVar(),se=Ea(Ph(ie,ne,z)).toVar(),ae=RE().toVar();return ae.x.assign(se.bitAnd(gi(255))),ae.y.assign(se.shiftRight(gi(8)).bitAnd(gi(255))),ae.z.assign(se.shiftRight(gi(16)).bitAnd(gi(255))),ae}).setLayout({name:"mx_hash_vec3_1",type:"uvec3",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"}]})]),c6=Eg([$i(([ee])=>{const y=Qo(ee).toVar(),E=gi().toVar(),z=gi().toVar(),ne=Dn(Ad(y.x,E)).toVar(),ie=Dn(Ad(y.y,z)).toVar(),se=Dn(YA(ne)).toVar(),ae=Dn(YA(ie)).toVar(),he=Dn(ak(ng(Ph(E,z),ne,ie),ng(Ph(E.add(gi(1)),z),ne.sub(1),ie),ng(Ph(E,z.add(gi(1))),ne,ie.sub(1)),ng(Ph(E.add(gi(1)),z.add(gi(1))),ne.sub(1),ie.sub(1)),se,ae)).toVar();return uk(he)}).setLayout({name:"mx_perlin_noise_float_0",type:"float",inputs:[{name:"p",type:"vec2"}]}),$i(([ee])=>{const y=Li(ee).toVar(),E=gi().toVar(),z=gi().toVar(),ne=gi().toVar(),ie=Dn(Ad(y.x,E)).toVar(),se=Dn(Ad(y.y,z)).toVar(),ae=Dn(Ad(y.z,ne)).toVar(),he=Dn(YA(ie)).toVar(),pe=Dn(YA(se)).toVar(),ve=Dn(YA(ae)).toVar(),xe=Dn(lk(ng(Ph(E,z,ne),ie,se,ae),ng(Ph(E.add(gi(1)),z,ne),ie.sub(1),se,ae),ng(Ph(E,z.add(gi(1)),ne),ie,se.sub(1),ae),ng(Ph(E.add(gi(1)),z.add(gi(1)),ne),ie.sub(1),se.sub(1),ae),ng(Ph(E,z,ne.add(gi(1))),ie,se,ae.sub(1)),ng(Ph(E.add(gi(1)),z,ne.add(gi(1))),ie.sub(1),se,ae.sub(1)),ng(Ph(E,z.add(gi(1)),ne.add(gi(1))),ie,se.sub(1),ae.sub(1)),ng(Ph(E.add(gi(1)),z.add(gi(1)),ne.add(gi(1))),ie.sub(1),se.sub(1),ae.sub(1)),he,pe,ve)).toVar();return ck(xe)}).setLayout({name:"mx_perlin_noise_float_1",type:"float",inputs:[{name:"p",type:"vec3"}]})]),h6=Eg([$i(([ee])=>{const y=Qo(ee).toVar(),E=gi().toVar(),z=gi().toVar(),ne=Dn(Ad(y.x,E)).toVar(),ie=Dn(Ad(y.y,z)).toVar(),se=Dn(YA(ne)).toVar(),ae=Dn(YA(ie)).toVar(),he=Li(ak(Bv(Tv(E,z),ne,ie),Bv(Tv(E.add(gi(1)),z),ne.sub(1),ie),Bv(Tv(E,z.add(gi(1))),ne,ie.sub(1)),Bv(Tv(E.add(gi(1)),z.add(gi(1))),ne.sub(1),ie.sub(1)),se,ae)).toVar();return uk(he)}).setLayout({name:"mx_perlin_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"vec2"}]}),$i(([ee])=>{const y=Li(ee).toVar(),E=gi().toVar(),z=gi().toVar(),ne=gi().toVar(),ie=Dn(Ad(y.x,E)).toVar(),se=Dn(Ad(y.y,z)).toVar(),ae=Dn(Ad(y.z,ne)).toVar(),he=Dn(YA(ie)).toVar(),pe=Dn(YA(se)).toVar(),ve=Dn(YA(ae)).toVar(),xe=Li(lk(Bv(Tv(E,z,ne),ie,se,ae),Bv(Tv(E.add(gi(1)),z,ne),ie.sub(1),se,ae),Bv(Tv(E,z.add(gi(1)),ne),ie,se.sub(1),ae),Bv(Tv(E.add(gi(1)),z.add(gi(1)),ne),ie.sub(1),se.sub(1),ae),Bv(Tv(E,z,ne.add(gi(1))),ie,se,ae.sub(1)),Bv(Tv(E.add(gi(1)),z,ne.add(gi(1))),ie.sub(1),se,ae.sub(1)),Bv(Tv(E,z.add(gi(1)),ne.add(gi(1))),ie,se.sub(1),ae.sub(1)),Bv(Tv(E.add(gi(1)),z.add(gi(1)),ne.add(gi(1))),ie.sub(1),se.sub(1),ae.sub(1)),he,pe,ve)).toVar();return ck(xe)}).setLayout({name:"mx_perlin_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec3"}]})]),F_=Eg([$i(([ee])=>{const y=Dn(ee).toVar(),E=gi(Rf(y)).toVar();return em(Ph(E))}).setLayout({name:"mx_cell_noise_float_0",type:"float",inputs:[{name:"p",type:"float"}]}),$i(([ee])=>{const y=Qo(ee).toVar(),E=gi(Rf(y.x)).toVar(),z=gi(Rf(y.y)).toVar();return em(Ph(E,z))}).setLayout({name:"mx_cell_noise_float_1",type:"float",inputs:[{name:"p",type:"vec2"}]}),$i(([ee])=>{const y=Li(ee).toVar(),E=gi(Rf(y.x)).toVar(),z=gi(Rf(y.y)).toVar(),ne=gi(Rf(y.z)).toVar();return em(Ph(E,z,ne))}).setLayout({name:"mx_cell_noise_float_2",type:"float",inputs:[{name:"p",type:"vec3"}]}),$i(([ee])=>{const y=Da(ee).toVar(),E=gi(Rf(y.x)).toVar(),z=gi(Rf(y.y)).toVar(),ne=gi(Rf(y.z)).toVar(),ie=gi(Rf(y.w)).toVar();return em(Ph(E,z,ne,ie))}).setLayout({name:"mx_cell_noise_float_3",type:"float",inputs:[{name:"p",type:"vec4"}]})]),dk=Eg([$i(([ee])=>{const y=Dn(ee).toVar(),E=gi(Rf(y)).toVar();return Li(em(Ph(E,gi(0))),em(Ph(E,gi(1))),em(Ph(E,gi(2))))}).setLayout({name:"mx_cell_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"float"}]}),$i(([ee])=>{const y=Qo(ee).toVar(),E=gi(Rf(y.x)).toVar(),z=gi(Rf(y.y)).toVar();return Li(em(Ph(E,z,gi(0))),em(Ph(E,z,gi(1))),em(Ph(E,z,gi(2))))}).setLayout({name:"mx_cell_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec2"}]}),$i(([ee])=>{const y=Li(ee).toVar(),E=gi(Rf(y.x)).toVar(),z=gi(Rf(y.y)).toVar(),ne=gi(Rf(y.z)).toVar();return Li(em(Ph(E,z,ne,gi(0))),em(Ph(E,z,ne,gi(1))),em(Ph(E,z,ne,gi(2))))}).setLayout({name:"mx_cell_noise_vec3_2",type:"vec3",inputs:[{name:"p",type:"vec3"}]}),$i(([ee])=>{const y=Da(ee).toVar(),E=gi(Rf(y.x)).toVar(),z=gi(Rf(y.y)).toVar(),ne=gi(Rf(y.z)).toVar(),ie=gi(Rf(y.w)).toVar();return Li(em(Ph(E,z,ne,ie,gi(0))),em(Ph(E,z,ne,ie,gi(1))),em(Ph(E,z,ne,ie,gi(2))))}).setLayout({name:"mx_cell_noise_vec3_3",type:"vec3",inputs:[{name:"p",type:"vec4"}]})]),gT=$i(([ee,y,E,z])=>{const ne=Dn(z).toVar(),ie=Dn(E).toVar(),se=gi(y).toVar(),ae=Li(ee).toVar(),he=Dn(0).toVar(),pe=Dn(1).toVar();return qc(se,()=>{he.addAssign(pe.mul(c6(ae))),pe.mulAssign(ne),ae.mulAssign(ie)}),he}).setLayout({name:"mx_fractal_noise_float",type:"float",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),fk=$i(([ee,y,E,z])=>{const ne=Dn(z).toVar(),ie=Dn(E).toVar(),se=gi(y).toVar(),ae=Li(ee).toVar(),he=Li(0).toVar(),pe=Dn(1).toVar();return qc(se,()=>{he.addAssign(pe.mul(h6(ae))),pe.mulAssign(ne),ae.mulAssign(ie)}),he}).setLayout({name:"mx_fractal_noise_vec3",type:"vec3",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),L_=$i(([ee,y,E,z])=>{const ne=Dn(z).toVar(),ie=Dn(E).toVar(),se=gi(y).toVar(),ae=Li(ee).toVar();return Qo(gT(ae,se,ie,ne),gT(ae.add(Li(gi(19),gi(193),gi(17))),se,ie,ne))}).setLayout({name:"mx_fractal_noise_vec2",type:"vec2",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),I_=$i(([ee,y,E,z])=>{const ne=Dn(z).toVar(),ie=Dn(E).toVar(),se=gi(y).toVar(),ae=Li(ee).toVar(),he=Li(fk(ae,se,ie,ne)).toVar(),pe=Dn(gT(ae.add(Li(gi(19),gi(193),gi(17))),se,ie,ne)).toVar();return Da(he,pe)}).setLayout({name:"mx_fractal_noise_vec4",type:"vec4",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),Sb=Eg([$i(([ee,y,E,z,ne,ie,se])=>{const ae=gi(se).toVar(),he=Dn(ie).toVar(),pe=gi(ne).toVar(),ve=gi(z).toVar(),xe=gi(E).toVar(),Se=gi(y).toVar(),Be=Qo(ee).toVar(),De=Li(dk(Qo(Se.add(ve),xe.add(pe)))).toVar(),Re=Qo(De.x,De.y).toVar();Re.subAssign(.5),Re.mulAssign(he),Re.addAssign(.5);const Oe=Qo(Qo(Dn(Se),Dn(xe)).add(Re)).toVar(),Le=Qo(Oe.sub(Be)).toVar();return $l(ae.equal(gi(2)),()=>Kh(Le.x).add(Kh(Le.y))),$l(ae.equal(gi(3)),()=>qd(Kh(Le.x),Kh(Le.y))),iS(Le,Le)}).setLayout({name:"mx_worley_distance_0",type:"float",inputs:[{name:"p",type:"vec2"},{name:"x",type:"int"},{name:"y",type:"int"},{name:"xoff",type:"int"},{name:"yoff",type:"int"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),$i(([ee,y,E,z,ne,ie,se,ae,he])=>{const pe=gi(he).toVar(),ve=Dn(ae).toVar(),xe=gi(se).toVar(),Se=gi(ie).toVar(),Be=gi(ne).toVar(),De=gi(z).toVar(),Re=gi(E).toVar(),Oe=gi(y).toVar(),Le=Li(ee).toVar(),Je=Li(dk(Li(Oe.add(Be),Re.add(Se),De.add(xe)))).toVar();Je.subAssign(.5),Je.mulAssign(ve),Je.addAssign(.5);const $e=Li(Li(Dn(Oe),Dn(Re),Dn(De)).add(Je)).toVar(),_e=Li($e.sub(Le)).toVar();return $l(pe.equal(gi(2)),()=>Kh(_e.x).add(Kh(_e.y)).add(Kh(_e.z))),$l(pe.equal(gi(3)),()=>qd(Kh(_e.x),Kh(_e.y),Kh(_e.z))),iS(_e,_e)}).setLayout({name:"mx_worley_distance_1",type:"float",inputs:[{name:"p",type:"vec3"},{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xoff",type:"int"},{name:"yoff",type:"int"},{name:"zoff",type:"int"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]})]),k_=$i(([ee,y,E])=>{const z=gi(E).toVar(),ne=Dn(y).toVar(),ie=Qo(ee).toVar(),se=gi().toVar(),ae=gi().toVar(),he=Qo(Ad(ie.x,se),Ad(ie.y,ae)).toVar(),pe=Dn(1e6).toVar();return qc({start:-1,end:gi(1),name:"x",condition:"<="},({x:ve})=>{qc({start:-1,end:gi(1),name:"y",condition:"<="},({y:xe})=>{const Se=Dn(Sb(he,ve,xe,se,ae,ne,z)).toVar();pe.assign(_m(pe,Se))})}),$l(z.equal(gi(0)),()=>{pe.assign(HA(pe))}),pe}).setLayout({name:"mx_worley_noise_float_0",type:"float",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),O_=$i(([ee,y,E])=>{const z=gi(E).toVar(),ne=Dn(y).toVar(),ie=Qo(ee).toVar(),se=gi().toVar(),ae=gi().toVar(),he=Qo(Ad(ie.x,se),Ad(ie.y,ae)).toVar(),pe=Qo(1e6,1e6).toVar();return qc({start:-1,end:gi(1),name:"x",condition:"<="},({x:ve})=>{qc({start:-1,end:gi(1),name:"y",condition:"<="},({y:xe})=>{const Se=Dn(Sb(he,ve,xe,se,ae,ne,z)).toVar();$l(Se.lessThan(pe.x),()=>{pe.y.assign(pe.x),pe.x.assign(Se)}).ElseIf(Se.lessThan(pe.y),()=>{pe.y.assign(Se)})})}),$l(z.equal(gi(0)),()=>{pe.assign(HA(pe))}),pe}).setLayout({name:"mx_worley_noise_vec2_0",type:"vec2",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),R_=$i(([ee,y,E])=>{const z=gi(E).toVar(),ne=Dn(y).toVar(),ie=Qo(ee).toVar(),se=gi().toVar(),ae=gi().toVar(),he=Qo(Ad(ie.x,se),Ad(ie.y,ae)).toVar(),pe=Li(1e6,1e6,1e6).toVar();return qc({start:-1,end:gi(1),name:"x",condition:"<="},({x:ve})=>{qc({start:-1,end:gi(1),name:"y",condition:"<="},({y:xe})=>{const Se=Dn(Sb(he,ve,xe,se,ae,ne,z)).toVar();$l(Se.lessThan(pe.x),()=>{pe.z.assign(pe.y),pe.y.assign(pe.x),pe.x.assign(Se)}).ElseIf(Se.lessThan(pe.y),()=>{pe.z.assign(pe.y),pe.y.assign(Se)}).ElseIf(Se.lessThan(pe.z),()=>{pe.z.assign(Se)})})}),$l(z.equal(gi(0)),()=>{pe.assign(HA(pe))}),pe}).setLayout({name:"mx_worley_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),z_=Eg([k_,$i(([ee,y,E])=>{const z=gi(E).toVar(),ne=Dn(y).toVar(),ie=Li(ee).toVar(),se=gi().toVar(),ae=gi().toVar(),he=gi().toVar(),pe=Li(Ad(ie.x,se),Ad(ie.y,ae),Ad(ie.z,he)).toVar(),ve=Dn(1e6).toVar();return qc({start:-1,end:gi(1),name:"x",condition:"<="},({x:xe})=>{qc({start:-1,end:gi(1),name:"y",condition:"<="},({y:Se})=>{qc({start:-1,end:gi(1),name:"z",condition:"<="},({z:Be})=>{const De=Dn(Sb(pe,xe,Se,Be,se,ae,he,ne,z)).toVar();ve.assign(_m(ve,De))})})}),$l(z.equal(gi(0)),()=>{ve.assign(HA(ve))}),ve}).setLayout({name:"mx_worley_noise_float_1",type:"float",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]})]),U_=Eg([O_,$i(([ee,y,E])=>{const z=gi(E).toVar(),ne=Dn(y).toVar(),ie=Li(ee).toVar(),se=gi().toVar(),ae=gi().toVar(),he=gi().toVar(),pe=Li(Ad(ie.x,se),Ad(ie.y,ae),Ad(ie.z,he)).toVar(),ve=Qo(1e6,1e6).toVar();return qc({start:-1,end:gi(1),name:"x",condition:"<="},({x:xe})=>{qc({start:-1,end:gi(1),name:"y",condition:"<="},({y:Se})=>{qc({start:-1,end:gi(1),name:"z",condition:"<="},({z:Be})=>{const De=Dn(Sb(pe,xe,Se,Be,se,ae,he,ne,z)).toVar();$l(De.lessThan(ve.x),()=>{ve.y.assign(ve.x),ve.x.assign(De)}).ElseIf(De.lessThan(ve.y),()=>{ve.y.assign(De)})})})}),$l(z.equal(gi(0)),()=>{ve.assign(HA(ve))}),ve}).setLayout({name:"mx_worley_noise_vec2_1",type:"vec2",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]})]),H_=Eg([R_,$i(([ee,y,E])=>{const z=gi(E).toVar(),ne=Dn(y).toVar(),ie=Li(ee).toVar(),se=gi().toVar(),ae=gi().toVar(),he=gi().toVar(),pe=Li(Ad(ie.x,se),Ad(ie.y,ae),Ad(ie.z,he)).toVar(),ve=Li(1e6,1e6,1e6).toVar();return qc({start:-1,end:gi(1),name:"x",condition:"<="},({x:xe})=>{qc({start:-1,end:gi(1),name:"y",condition:"<="},({y:Se})=>{qc({start:-1,end:gi(1),name:"z",condition:"<="},({z:Be})=>{const De=Dn(Sb(pe,xe,Se,Be,se,ae,he,ne,z)).toVar();$l(De.lessThan(ve.x),()=>{ve.z.assign(ve.y),ve.y.assign(ve.x),ve.x.assign(De)}).ElseIf(De.lessThan(ve.y),()=>{ve.z.assign(ve.y),ve.y.assign(De)}).ElseIf(De.lessThan(ve.z),()=>{ve.z.assign(De)})})})}),$l(z.equal(gi(0)),()=>{ve.assign(HA(ve))}),ve}).setLayout({name:"mx_worley_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]})]),V_=$i(([ee])=>{const y=ee.y,E=ee.z,z=Li().toVar();return $l(y.lessThan(1e-4),()=>{z.assign(Li(E,E,E))}).Else(()=>{let ne=ee.x;ne=ne.sub(VA(ne)).mul(6).toVar();const ie=gi(L8(ne)),se=ne.sub(Dn(ie)),ae=E.mul(y.oneMinus()),he=E.mul(y.mul(se).oneMinus()),pe=E.mul(y.mul(se.oneMinus()).oneMinus());$l(ie.equal(gi(0)),()=>{z.assign(Li(E,pe,ae))}).ElseIf(ie.equal(gi(1)),()=>{z.assign(Li(he,E,ae))}).ElseIf(ie.equal(gi(2)),()=>{z.assign(Li(ae,E,pe))}).ElseIf(ie.equal(gi(3)),()=>{z.assign(Li(ae,he,E))}).ElseIf(ie.equal(gi(4)),()=>{z.assign(Li(pe,ae,E))}).Else(()=>{z.assign(Li(E,ae,he))})}),z}).setLayout({name:"mx_hsvtorgb",type:"vec3",inputs:[{name:"hsv",type:"vec3"}]}),j_=$i(([ee])=>{const y=Li(ee).toVar(),E=Dn(y.x).toVar(),z=Dn(y.y).toVar(),ne=Dn(y.z).toVar(),ie=Dn(_m(E,_m(z,ne))).toVar(),se=Dn(qd(E,qd(z,ne))).toVar(),ae=Dn(se.sub(ie)).toVar(),he=Dn().toVar(),pe=Dn().toVar(),ve=Dn().toVar();return ve.assign(se),$l(se.greaterThan(0),()=>{pe.assign(ae.div(se))}).Else(()=>{pe.assign(0)}),$l(pe.lessThanEqual(0),()=>{he.assign(0)}).Else(()=>{$l(E.greaterThanEqual(se),()=>{he.assign(z.sub(ne).div(ae))}).ElseIf(z.greaterThanEqual(se),()=>{he.assign(kf(2,ne.sub(E).div(ae)))}).Else(()=>{he.assign(kf(4,E.sub(z).div(ae)))}),he.mulAssign(1/6),$l(he.lessThan(0),()=>{he.addAssign(1)})}),Li(he,pe,ve)}).setLayout({name:"mx_rgbtohsv",type:"vec3",inputs:[{name:"c",type:"vec3"}]}),G_=$i(([ee])=>{const y=Li(ee).toVar(),E=m8(b8(y,Li(.04045))).toVar(),z=Li(y.div(12.92)).toVar(),ne=Li(zy(qd(y.add(Li(.055)),Li(0)).div(1.055),Li(2.4))).toVar();return Qc(z,ne,E)}).setLayout({name:"mx_srgb_texture_to_lin_rec709",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),pk=(ee,y)=>{ee=Dn(ee),y=Dn(y);const E=Qo(y.dFdx(),y.dFdy()).length().mul(.7071067811865476);return wv(ee.sub(E),ee.add(E),y)},gk=(ee,y,E,z)=>Qc(ee,y,E[z].clamp()),X_=(ee,y,E=nd())=>gk(ee,y,E,"x"),W_=(ee,y,E=nd())=>gk(ee,y,E,"y"),mk=(ee,y,E,z,ne)=>Qc(ee,y,pk(E,z[ne])),Q_=(ee,y,E,z=nd())=>mk(ee,y,E,z,"x"),Z_=(ee,y,E,z=nd())=>mk(ee,y,E,z,"y"),Y_=(ee=1,y=0,E=nd())=>E.mul(ee).add(y),K_=(ee,y=1)=>(ee=Dn(ee),ee.abs().pow(y).mul(ee.sign())),J_=(ee,y=1,E=.5)=>Dn(ee).sub(E).mul(y).add(E),q_=(ee=nd(),y=1,E=0)=>c6(ee.convert("vec2|vec3")).mul(y).add(E),__=(ee=nd(),y=1,E=0)=>h6(ee.convert("vec2|vec3")).mul(y).add(E),$_=(ee=nd(),y=1,E=0)=>(ee=ee.convert("vec2|vec3"),Da(h6(ee),c6(ee.add(Qo(19,73)))).mul(y).add(E)),e$=(ee=nd(),y=1)=>z_(ee.convert("vec2|vec3"),y,gi(1)),t$=(ee=nd(),y=1)=>U_(ee.convert("vec2|vec3"),y,gi(1)),n$=(ee=nd(),y=1)=>H_(ee.convert("vec2|vec3"),y,gi(1)),i$=(ee=nd())=>F_(ee.convert("vec2|vec3")),r$=(ee=nd(),y=3,E=2,z=.5,ne=1)=>gT(ee,gi(y),E,z).mul(ne),o$=(ee=nd(),y=3,E=2,z=.5,ne=1)=>L_(ee,gi(y),E,z).mul(ne),s$=(ee=nd(),y=3,E=2,z=.5,ne=1)=>fk(ee,gi(y),E,z).mul(ne),a$=(ee=nd(),y=3,E=2,z=.5,ne=1)=>I_(ee,gi(y),E,z).mul(ne),l$=$i(([ee,y,E])=>{const z=b1(ee).toVar(),ne=Pc(Dn(.5).mul(y.sub(E)),Ev).div(z).toVar(),ie=Pc(Dn(-.5).mul(y.sub(E)),Ev).div(z).toVar(),se=Li().toVar();se.x=z.x.greaterThan(Dn(0)).select(ne.x,ie.x),se.y=z.y.greaterThan(Dn(0)).select(ne.y,ie.y),se.z=z.z.greaterThan(Dn(0)).select(ne.z,ie.z);const ae=_m(se.x,se.y,se.z).toVar();return Ev.add(z.mul(ae)).toVar().sub(E)}),vk=$i(([ee,y])=>{const E=ee.x,z=ee.y,ne=ee.z;let ie=y.element(0).mul(.886227);return ie=ie.add(y.element(1).mul(2*.511664).mul(z)),ie=ie.add(y.element(2).mul(2*.511664).mul(ne)),ie=ie.add(y.element(3).mul(2*.511664).mul(E)),ie=ie.add(y.element(4).mul(2*.429043).mul(E).mul(z)),ie=ie.add(y.element(5).mul(2*.429043).mul(z).mul(ne)),ie=ie.add(y.element(6).mul(ne.mul(ne).mul(.743125).sub(.247708))),ie=ie.add(y.element(7).mul(2*.429043).mul(E).mul(ne)),ie=ie.add(y.element(8).mul(.429043).mul(Lu(E,E).sub(Lu(z,z)))),ie});var Cce=Object.freeze({__proto__:null,BRDF_GGX:wD,BRDF_Lambert:QP,BasicPointShadowFilter:nk,BasicShadowFilter:Z9,Break:qI,Const:M4,Continue:WZ,DFGApprox:SD,D_GGX:v7,Discard:X4,EPSILON:_L,F_Schlick:QE,Fn:$i,INFINITY:BQ,If:$l,Loop:qc,NodeAccess:_g,NodeShaderStage:q2,NodeType:_W,NodeUpdateType:Uu,PCFShadowFilter:Y9,PCFSoftShadowFilter:K9,PI:bB,PI2:TQ,PointShadowFilter:ik,Return:WQ,Schlick_to_F0:A7,ScriptableNodeResources:cT,ShaderNode:OE,Stack:vB,Switch:yQ,TBNViewMatrix:XP,VSMShadowFilter:J9,V_GGX_SmithCorrelated:m7,Var:b4,abs:Kh,acesFilmicToneMapping:N9,acos:T8,add:kf,addMethodChaining:xo,addNodeElement:YQ,agxToneMapping:F9,all:$L,alphaT:SB,and:OL,anisotropy:nS,anisotropyB:jP,anisotropyT:iM,any:e4,append:SQ,array:TL,arrayBuffer:xQ,asin:r4,assign:DL,atan:D8,atan2:S4,atomicAdd:a_,atomicAnd:h_,atomicFunc:ZA,atomicLoad:o_,atomicMax:u_,atomicMin:c_,atomicOr:d_,atomicStore:s_,atomicSub:l_,atomicXor:f_,attenuationColor:S8,attenuationDistance:w8,attribute:wm,attributeArray:qJ,backgroundBlurriness:g9,backgroundIntensity:YD,backgroundRotation:m9,batch:ZI,billboarding:LJ,bitAnd:HL,bitNot:VL,bitOr:jL,bitXor:GL,bitangentGeometry:PZ,bitangentLocal:CZ,bitangentView:hI,bitangentWorld:EZ,bitcast:DQ,blendBurn:S9,blendColor:uq,blendDodge:P9,blendOverlay:E9,blendScreen:C9,blur:H7,bool:RA,buffer:dM,bufferAttribute:cM,bumpMap:gI,burn:dq,bvec2:yL,bvec3:m8,bvec4:SL,bypass:H4,cache:hM,call:NL,cameraFar:N1,cameraIndex:OB,cameraNear:D1,cameraNormalMatrix:sZ,cameraPosition:pM,cameraProjectionMatrix:k0,cameraProjectionMatrixInverse:rZ,cameraViewMatrix:Sm,cameraWorldMatrix:oZ,cbrt:y4,cdl:xq,ceil:BB,checker:B_,cineonToneMapping:D9,clamp:GA,clearcoat:AB,clearcoatRoughness:nM,code:lT,color:mL,colorSpaceToWorking:LB,colorToDirection:AY,compute:z4,computeSkinning:GZ,cond:P4,context:NB,convert:CL,convertColorSpace:OQ,convertToTexture:QJ,cos:B1,cross:DB,cubeTexture:VE,cubeTextureBase:_8,cubeToUV:jy,dFdx:N8,dFdy:F8,dashSize:GP,debug:W4,decrement:KL,decrementBefore:ZL,defaultBuildStages:s8,defaultShaderStages:sL,defined:_2,degrees:n4,deltaTime:d9,densityFog:jq,densityFogFactor:qD,depth:mD,depthPass:Eq,difference:p4,diffuseColor:Wc,directPointLight:sk,directionToColor:l7,dispersion:P8,distance:f4,div:xv,dodge:fq,dot:iS,drawIndex:XI,dynamicBufferAttribute:R4,element:PL,emissive:v8,equal:E8,equals:h4,equirectUV:yD,exp:M8,exp2:UE,expression:T1,faceDirection:gM,faceForward:z8,faceforward:NQ,float:Dn,floor:VA,fog:kM,fract:M1,frameGroup:ML,frameId:PJ,frontFacing:eI,fwidth:u4,gain:mJ,gapSize:oM,getConstNodeType:gL,getCurrentStack:g8,getDirection:z7,getDistanceAttenuation:u6,getGeometryRoughness:g7,getNormalFromDepth:YJ,getParallaxCorrectNormal:l$,getRoughness:xD,getScreenPosition:ZJ,getShIrradianceAt:vk,getShadowMaterial:q9,getShadowRenderObjectFunction:$9,getTextureIndex:c9,getViewPosition:qE,globalId:Yq,glsl:Iq,glslFn:kq,grayscale:mq,greaterThan:b8,greaterThanEqual:kL,hash:gJ,highpModelNormalViewMatrix:Z8,highpModelViewMatrix:Q8,hue:Aq,increment:YL,incrementBefore:QL,instance:OZ,instanceIndex:oS,instancedArray:_J,instancedBufferAttribute:IB,instancedDynamicBufferAttribute:j8,instancedMesh:QI,int:gi,inverseSqrt:B8,inversesqrt:FQ,invocationLocalIndex:kZ,invocationSubgroupIndex:IZ,ior:sM,iridescence:wB,iridescenceIOR:y8,iridescenceThickness:A8,ivec2:Ip,ivec3:AL,ivec4:xL,js:Fq,label:E4,length:jA,lengthSq:k8,lessThan:LL,lessThanEqual:IL,lightPosition:e6,lightProjectionUV:z9,lightShadowMatrix:$D,lightTargetDirection:n6,lightTargetPosition:U9,lightViewPosition:t6,lightingContext:e7,lights:m_,linearDepth:WE,linearToneMapping:B9,localId:Kq,log:MB,log2:UA,logarithmicDepthToViewZ:oY,loop:QZ,luminance:KD,mat2:yB,mat3:$g,mat4:HP,matcapUV:_7,materialAO:jI,materialAlphaTest:vI,materialAnisotropy:NI,materialAnisotropyVector:jE,materialAttenuationColor:UI,materialAttenuationDistance:zI,materialClearcoat:EI,materialClearcoatNormal:MI,materialClearcoatRoughness:bI,materialColor:GB,materialDispersion:VI,materialEmissive:AI,materialEnvIntensity:HB,materialEnvRotation:q8,materialIOR:RI,materialIridescence:FI,materialIridescenceIOR:LI,materialIridescenceThickness:II,materialLightMap:aD,materialLineDashOffset:sD,materialLineDashSize:rD,materialLineGapSize:oD,materialLineScale:iD,materialLineWidth:QB,materialMetalness:PI,materialNormal:CI,materialOpacity:XB,materialPointSize:HI,materialReference:L1,materialReflectivity:WB,materialRefractionRatio:rI,materialRotation:BI,materialRoughness:SI,materialSheen:TI,materialSheenRoughness:DI,materialShininess:yI,materialSpecular:xI,materialSpecularColor:wI,materialSpecularIntensity:nD,materialSpecularStrength:xM,materialThickness:OI,materialTransmission:kI,max:qd,maxMipLevel:Z4,mediumpModelViewMatrix:$4,metalness:tM,min:_m,mix:Qc,mixElement:x4,mod:lM,modInt:qL,modelDirection:dZ,modelNormalMatrix:_4,modelPosition:fZ,modelRadius:q4,modelScale:pZ,modelViewMatrix:F1,modelViewPosition:gZ,modelViewProjection:lD,modelWorldMatrix:Cv,modelWorldMatrixInverse:mZ,morphReference:$I,mrt:h9,mul:Lu,mx_aastep:pk,mx_cell_noise_float:i$,mx_contrast:J_,mx_fractal_noise_float:r$,mx_fractal_noise_vec2:o$,mx_fractal_noise_vec3:s$,mx_fractal_noise_vec4:a$,mx_hsvtorgb:V_,mx_noise_float:q_,mx_noise_vec3:__,mx_noise_vec4:$_,mx_ramplr:X_,mx_ramptb:W_,mx_rgbtohsv:j_,mx_safepower:K_,mx_splitlr:Q_,mx_splittb:Z_,mx_srgb_texture_to_lin_rec709:G_,mx_transform_uv:Y_,mx_worley_noise_float:e$,mx_worley_noise_vec2:t$,mx_worley_noise_vec3:n$,namespace:U4,negate:o4,neutralToneMapping:L9,nodeArray:UP,nodeImmutable:Qs,nodeObject:wo,nodeObjects:$2,nodeProxy:Do,normalFlat:tI,normalGeometry:zB,normalLocal:$m,normalMap:tD,normalView:Uy,normalWorld:mM,normalize:b1,not:zL,notEqual:FL,numWorkgroups:Qq,objectDirection:aZ,objectGroup:C8,objectPosition:J4,objectRadius:hZ,objectScale:uZ,objectViewPosition:cZ,objectWorldMatrix:lZ,oneMinus:s4,or:RL,orthographicDepthToViewZ:rY,oscSawtooth:DJ,oscSine:MJ,oscSquare:BJ,oscTriangle:TJ,output:zE,outputStruct:fJ,overlay:gq,overloadingFn:Eg,parabola:GD,parallaxDirection:fI,parallaxUV:MZ,parameter:aJ,pass:Pq,passTexture:Cq,pcurve:vJ,perspectiveDepthToViewZ:pD,pmremTexture:HD,pointShadow:ok,pointUV:eq,pointWidth:CQ,positionGeometry:Cg,positionLocal:vf,positionPrevious:RB,positionView:Of,positionViewDirection:id,positionWorld:Ev,positionWorldDirection:Y8,posterize:Sq,pow:zy,pow2:I8,pow3:g4,pow4:m4,premult:cq,property:tS,radians:t4,rand:A4,range:Xq,rangeFog:Vq,rangeFogFactor:JD,reciprocal:l4,reference:kh,referenceBuffer:$8,reflect:d4,reflectVector:aI,reflectView:oI,reflector:VJ,refract:R8,refractVector:lI,refractView:sI,reinhardToneMapping:T9,remainder:JL,remap:j4,remapClamp:G4,renderGroup:Yl,renderOutput:G8,rendererReference:I4,rotate:eT,rotateUV:NJ,roughness:zA,round:a4,rtt:p9,sRGBTransferEOTF:D4,sRGBTransferOETF:N4,sampler:$Q,samplerComparison:eZ,saturate:O8,saturation:vq,screen:pq,screenCoordinate:CM,screenSize:PM,screenUV:Hy,scriptable:Hq,scriptableValue:uT,select:kp,setCurrentStack:eM,shaderStages:a8,shadow:tk,shadowPositionWorld:o6,shapeCircle:T_,sharedUniformGroup:EB,sheen:VP,sheenRoughness:xB,shiftLeft:XL,shiftRight:WL,shininess:PB,sign:uM,sin:L0,sinc:yJ,skinning:JI,smoothstep:wv,smoothstepElement:w4,specularColor:qm,specularF90:rM,spherizeUV:FJ,split:wQ,spritesheetUV:OJ,sqrt:HA,stack:tT,step:TB,storage:WP,storageBarrier:$q,storageObject:jZ,storageTexture:v9,string:AQ,struct:dJ,sub:Pc,subgroupIndex:LZ,subgroupSize:Jq,tan:i4,tangentGeometry:jB,tangentLocal:vM,tangentView:yM,tangentWorld:cI,temp:B4,texture:dc,texture3D:y9,textureBarrier:e_,textureBicubic:T7,textureCubeUV:U7,textureLoad:mf,textureSize:rS,textureStore:nq,thickness:x8,time:JP,timerDelta:bJ,timerGlobal:EJ,timerLocal:CJ,toneMapping:k4,toneMappingExposure:O4,toonOutlinePass:Mq,transformDirection:v4,transformNormal:nI,transformNormalToView:K8,transformedBentNormalView:pI,transformedBitangentView:dI,transformedBitangentWorld:bZ,transformedClearcoatNormalView:HE,transformedNormalView:_d,transformedNormalWorld:UB,transformedTangentView:eD,transformedTangentWorld:SZ,transmission:CB,transpose:c4,triNoise3D:xJ,triplanarTexture:zJ,triplanarTextures:f9,trunc:L8,tslFn:PQ,uint:Ea,uniform:vl,uniformArray:Sv,uniformCubeTexture:AZ,uniformGroup:bL,uniformTexture:_Q,uniforms:nZ,unpremult:hq,userData:sq,uv:nd,uvec2:vL,uvec3:RE,uvec4:wL,varying:I0,varyingProperty:F0,vec2:Qo,vec3:Li,vec4:Da,vectorComponents:OP,velocity:lq,vertexColor:s7,vertexIndex:GI,vertexStage:T4,vibrance:yq,viewZToLogarithmicDepth:gD,viewZToOrthographicDepth:XE,viewZToPerspectiveDepth:fD,viewport:I1,viewportBottomLeft:tY,viewportCoordinate:n7,viewportDepthTexture:dD,viewportLinearDepth:sY,viewportMipTexture:cD,viewportResolution:$Z,viewportSafeUV:IJ,viewportSharedTexture:a7,viewportSize:t7,viewportTexture:nY,viewportTopLeft:eY,viewportUV:_Z,wgsl:Lq,wgslFn:Oq,workgroupArray:i_,workgroupBarrier:_q,workgroupId:Zq,workingToColorSpace:F4,xor:UL});const Gy=new jD;class u$ extends aS{constructor(y,E){super(),this.renderer=y,this.nodes=E}update(y,E,z){const ne=this.renderer,ie=this.nodes.getBackgroundNode(y)||y.background;let se=!1;if(ie===null)ne._clearColor.getRGB(Gy),Gy.a=ne._clearColor.a;else if(ie.isColor===!0)ie.getRGB(Gy),Gy.a=1,se=!0;else if(ie.isNode===!0){const he=this.get(y),pe=ie;Gy.copy(ne._clearColor);let ve=he.backgroundMesh;if(ve===void 0){let Re=function(){ie.removeEventListener("dispose",Re),ve.material.dispose(),ve.geometry.dispose()};const Se=NB(Da(pe).mul(YD),{getUV:()=>m9.mul(mM),getTextureLevel:()=>g9});let Be=lD;Be=Be.setZ(Be.w);const De=new $d;De.name="Background.material",De.side=wc,De.depthTest=!1,De.depthWrite=!1,De.allowOverride=!1,De.fog=!1,De.lights=!1,De.vertexNode=Be,De.colorNode=Se,he.backgroundMeshNode=Se,he.backgroundMesh=ve=new Bc(new ym(1,32,32),De),ve.frustumCulled=!1,ve.name="Background.mesh",ve.onBeforeRender=function(Oe,Le,Je){this.matrixWorld.copyPosition(Je.matrixWorld)},ie.addEventListener("dispose",Re)}const xe=pe.getCacheKey();he.backgroundCacheKey!==xe&&(he.backgroundMeshNode.node=Da(pe).mul(YD),he.backgroundMeshNode.needsUpdate=!0,ve.material.needsUpdate=!0,he.backgroundCacheKey=xe),E.unshift(ve,ve.geometry,ve.material,0,0,null,null)}else console.error("THREE.Renderer: Unsupported background configuration.",ie);const ae=ne.xr.getEnvironmentBlendMode();if(ae==="additive"?Gy.set(0,0,0,1):ae==="alpha-blend"&&Gy.set(0,0,0,0),ne.autoClear===!0||se===!0){const he=z.clearColorValue;he.r=Gy.r,he.g=Gy.g,he.b=Gy.b,he.a=Gy.a,(ne.backend.isWebGLBackend===!0||ne.alpha===!0)&&(he.r*=he.a,he.g*=he.a,he.b*=he.a),z.depthClearValue=ne._clearDepth,z.stencilClearValue=ne._clearStencil,z.clearColor=ne.autoClearColor===!0,z.clearDepth=ne.autoClearDepth===!0,z.clearStencil=ne.autoClearStencil===!0}else z.clearColor=!1,z.clearDepth=!1,z.clearStencil=!1}}let c$=0;class d6{constructor(y="",E=[],z=0,ne=[]){this.name=y,this.bindings=E,this.index=z,this.bindingsReference=ne,this.id=c$++}}class h${constructor(y,E,z,ne,ie,se,ae,he,pe,ve=[]){this.vertexShader=y,this.fragmentShader=E,this.computeShader=z,this.transforms=ve,this.nodeAttributes=ne,this.bindings=ie,this.updateNodes=se,this.updateBeforeNodes=ae,this.updateAfterNodes=he,this.observer=pe,this.usedTimes=0}createBindings(){const y=[];for(const E of this.bindings)if(E.bindings[0].groupNode.shared!==!0){const ne=new d6(E.name,[],E.index,E);y.push(ne);for(const ie of E.bindings)ne.bindings.push(ie.clone())}else y.push(E);return y}}class yk{constructor(y,E,z=null){this.isNodeAttribute=!0,this.name=y,this.type=E,this.node=z}}class d${constructor(y,E,z){this.isNodeUniform=!0,this.name=y,this.type=E,this.node=z.getSelf()}get value(){return this.node.value}set value(y){this.node.value=y}get id(){return this.node.id}get groupNode(){return this.node.groupNode}}class Ak{constructor(y,E,z=!1,ne=null){this.isNodeVar=!0,this.name=y,this.type=E,this.readOnly=z,this.count=ne}}class f$ extends Ak{constructor(y,E,z=null,ne=null){super(y,E),this.needsInterpolation=!1,this.isNodeVarying=!0,this.interpolationType=z,this.interpolationSampling=ne}}class p${constructor(y,E,z=""){this.name=y,this.type=E,this.code=z,Object.defineProperty(this,"isNodeCode",{value:!0})}}let g$=0;class f6{constructor(y=null){this.id=g$++,this.nodesData=new WeakMap,this.parent=y}getData(y){let E=this.nodesData.get(y);return E===void 0&&this.parent!==null&&(E=this.parent.getData(y)),E}setData(y,E){this.nodesData.set(y,E)}}class m${constructor(y,E){this.name=y,this.members=E,this.output=!1}}class uS{constructor(y,E){this.name=y,this.value=E,this.boundary=0,this.itemSize=0,this.offset=0}setValue(y){this.value=y}getValue(){return this.value}}class v$ extends uS{constructor(y,E=0){super(y,E),this.isNumberUniform=!0,this.boundary=4,this.itemSize=1}}class y$ extends uS{constructor(y,E=new Yr){super(y,E),this.isVector2Uniform=!0,this.boundary=8,this.itemSize=2}}class A$ extends uS{constructor(y,E=new yn){super(y,E),this.isVector3Uniform=!0,this.boundary=16,this.itemSize=3}}class x$ extends uS{constructor(y,E=new Ul){super(y,E),this.isVector4Uniform=!0,this.boundary=16,this.itemSize=4}}class w$ extends uS{constructor(y,E=new ia){super(y,E),this.isColorUniform=!0,this.boundary=16,this.itemSize=3}}class S$ extends uS{constructor(y,E=new xm){super(y,E),this.isMatrix2Uniform=!0,this.boundary=8,this.itemSize=4}}class P$ extends uS{constructor(y,E=new nu){super(y,E),this.isMatrix3Uniform=!0,this.boundary=48,this.itemSize=12}}class C$ extends uS{constructor(y,E=new Xa){super(y,E),this.isMatrix4Uniform=!0,this.boundary=64,this.itemSize=16}}class E$ extends v${constructor(y){super(y.name,y.value),this.nodeUniform=y}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class b$ extends y${constructor(y){super(y.name,y.value),this.nodeUniform=y}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class M$ extends A${constructor(y){super(y.name,y.value),this.nodeUniform=y}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class B$ extends x${constructor(y){super(y.name,y.value),this.nodeUniform=y}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class T$ extends w${constructor(y){super(y.name,y.value),this.nodeUniform=y}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class D$ extends S${constructor(y){super(y.name,y.value),this.nodeUniform=y}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class N$ extends P${constructor(y){super(y.name,y.value),this.nodeUniform=y}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class F$ extends C${constructor(y){super(y.name,y.value),this.nodeUniform=y}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}const xk=new WeakMap,L$=new Map([[Int8Array,"int"],[Int16Array,"int"],[Int32Array,"int"],[Uint8Array,"uint"],[Uint16Array,"uint"],[Uint32Array,"uint"],[Float32Array,"float"]]),mT=ee=>/e/g.test(ee)?String(ee).replace(/\+/g,""):(ee=Number(ee),ee+(ee%1?"":".0"));class wk{constructor(y,E,z){this.object=y,this.material=y&&y.material||null,this.geometry=y&&y.geometry||null,this.renderer=E,this.parser=z,this.scene=null,this.camera=null,this.nodes=[],this.sequentialNodes=[],this.updateNodes=[],this.updateBeforeNodes=[],this.updateAfterNodes=[],this.hashNodes={},this.observer=null,this.lightsNode=null,this.environmentNode=null,this.fogNode=null,this.clippingContext=null,this.vertexShader=null,this.fragmentShader=null,this.computeShader=null,this.flowNodes={vertex:[],fragment:[],compute:[]},this.flowCode={vertex:"",fragment:"",compute:""},this.uniforms={vertex:[],fragment:[],compute:[],index:0},this.structs={vertex:[],fragment:[],compute:[],index:0},this.bindings={vertex:{},fragment:{},compute:{}},this.bindingsIndexes={},this.bindGroups=null,this.attributes=[],this.bufferAttributes=[],this.varyings=[],this.codes={},this.vars={},this.declarations={},this.flow={code:""},this.chaining=[],this.stack=tT(),this.stacks=[],this.tab=" ",this.currentFunctionNode=null,this.context={material:this.material},this.cache=new f6,this.globalCache=this.cache,this.flowsData=new WeakMap,this.shaderStage=null,this.buildStage=null}getBindGroupsCache(){let y=xk.get(this.renderer);return y===void 0&&(y=new Vy,xk.set(this.renderer,y)),y}createRenderTarget(y,E,z){return new p0(y,E,z)}createCubeRenderTarget(y,E){return new u7(y,E)}includes(y){return this.nodes.includes(y)}getOutputStructName(){}_getBindGroup(y,E){const z=this.getBindGroupsCache(),ne=[];let ie=!0;for(const ae of E)ne.push(ae),ie=ie&&ae.groupNode.shared!==!0;let se;return ie?(se=z.get(ne),se===void 0&&(se=new d6(y,ne,this.bindingsIndexes[y].group,ne),z.set(ne,se))):se=new d6(y,ne,this.bindingsIndexes[y].group,ne),se}getBindGroupArray(y,E){const z=this.bindings[E];let ne=z[y];return ne===void 0&&(this.bindingsIndexes[y]===void 0&&(this.bindingsIndexes[y]={binding:0,group:Object.keys(this.bindingsIndexes).length}),z[y]=ne=[]),ne}getBindings(){let y=this.bindGroups;if(y===null){const E={},z=this.bindings;for(const ne of a8)for(const ie in z[ne]){const se=z[ne][ie];(E[ie]||(E[ie]=[])).push(...se)}y=[];for(const ne in E){const ie=E[ne],se=this._getBindGroup(ne,ie);y.push(se)}this.bindGroups=y}return y}sortBindingGroups(){const y=this.getBindings();y.sort((E,z)=>E.bindings[0].groupNode.order-z.bindings[0].groupNode.order);for(let E=0;E<y.length;E++){const z=y[E];this.bindingsIndexes[z.name].group=E,z.index=E}}setHashNode(y,E){this.hashNodes[E]=y}addNode(y){this.nodes.includes(y)===!1&&(this.nodes.push(y),this.setHashNode(y,y.getHash(this)))}addSequentialNode(y){this.sequentialNodes.includes(y)===!1&&this.sequentialNodes.push(y)}buildUpdateNodes(){for(const y of this.nodes)y.getUpdateType()!==Uu.NONE&&this.updateNodes.push(y.getSelf());for(const y of this.sequentialNodes){const E=y.getUpdateBeforeType(),z=y.getUpdateAfterType();E!==Uu.NONE&&this.updateBeforeNodes.push(y.getSelf()),z!==Uu.NONE&&this.updateAfterNodes.push(y.getSelf())}}get currentNode(){return this.chaining[this.chaining.length-1]}isFilteredTexture(y){return y.magFilter===qu||y.magFilter===Wh||y.magFilter===gp||y.magFilter===mp||y.minFilter===qu||y.minFilter===Wh||y.minFilter===gp||y.minFilter===mp}addChain(y){this.chaining.push(y)}removeChain(y){if(this.chaining.pop()!==y)throw new Error("NodeBuilder: Invalid node chaining!")}getMethod(y){return y}getNodeFromHash(y){return this.hashNodes[y]}addFlow(y,E){return this.flowNodes[y].push(E),E}setContext(y){this.context=y}getContext(){return this.context}getSharedContext(){return Hd({},this.context),this.context}setCache(y){this.cache=y}getCache(){return this.cache}getCacheFromNode(y,E=!0){const z=this.getDataFromNode(y);return z.cache===void 0&&(z.cache=new f6(E?this.getCache():null)),z.cache}isAvailable(){return!1}getVertexIndex(){console.warn("Abstract function.")}getInstanceIndex(){console.warn("Abstract function.")}getDrawIndex(){console.warn("Abstract function.")}getFrontFacing(){console.warn("Abstract function.")}getFragCoord(){console.warn("Abstract function.")}isFlipY(){return!1}increaseUsage(y){const E=this.getDataFromNode(y);return E.usageCount=E.usageCount===void 0?1:E.usageCount+1,E.usageCount}generateTexture(){console.warn("Abstract function.")}generateTextureLod(){console.warn("Abstract function.")}generateArrayDeclaration(y,E){return this.getType(y)+"[ "+E+" ]"}generateArray(y,E,z=null){let ne=this.generateArrayDeclaration(y,E)+"( ";for(let ie=0;ie<E;ie++){const se=z?z[ie]:null;se!==null?ne+=se.build(this,y):ne+=this.generateConst(y),ie<E-1&&(ne+=", ")}return ne+=" )",ne}generateStruct(y,E,z=null){const ne=[];for(const ie of E){const{name:se,type:ae}=ie;z&&z[se]&&z[se].isNode?ne.push(z[se].build(this,ae)):ne.push(this.generateConst(ae))}return y+"( "+ne.join(", ")+" )"}generateConst(y,E=null){if(E===null&&(y==="float"||y==="int"||y==="uint"?E=0:y==="bool"?E=!1:y==="color"?E=new ia:y==="vec2"?E=new Yr:y==="vec3"?E=new yn:y==="vec4"&&(E=new Ul)),y==="float")return mT(E);if(y==="int")return`${Math.round(E)}`;if(y==="uint")return E>=0?`${Math.round(E)}u`:"0u";if(y==="bool")return E?"true":"false";if(y==="color")return`${this.getType("vec3")}( ${mT(E.r)}, ${mT(E.g)}, ${mT(E.b)} )`;const z=this.getTypeLength(y),ne=this.getComponentType(y),ie=se=>this.generateConst(ne,se);if(z===2)return`${this.getType(y)}( ${ie(E.x)}, ${ie(E.y)} )`;if(z===3)return`${this.getType(y)}( ${ie(E.x)}, ${ie(E.y)}, ${ie(E.z)} )`;if(z===4&&y!=="mat2")return`${this.getType(y)}( ${ie(E.x)}, ${ie(E.y)}, ${ie(E.z)}, ${ie(E.w)} )`;if(z>=4&&E&&(E.isMatrix2||E.isMatrix3||E.isMatrix4))return`${this.getType(y)}( ${E.elements.map(ie).join(", ")} )`;if(z>4)return`${this.getType(y)}()`;throw new Error(`NodeBuilder: Type '${y}' not found in generate constant attempt.`)}getType(y){return y==="color"?"vec3":y}hasGeometryAttribute(y){return this.geometry&&this.geometry.getAttribute(y)!==void 0}getAttribute(y,E){const z=this.attributes;for(const ie of z)if(ie.name===y)return ie;const ne=new yk(y,E);return this.registerDeclaration(ne),z.push(ne),ne}getPropertyName(y){return y.name}isVector(y){return/vec\d/.test(y)}isMatrix(y){return/mat\d/.test(y)}isReference(y){return y==="void"||y==="property"||y==="sampler"||y==="samplerComparison"||y==="texture"||y==="cubeTexture"||y==="storageTexture"||y==="depthTexture"||y==="texture3D"}needsToWorkingColorSpace(){return!1}getComponentTypeFromTexture(y){const E=y.type;if(y.isDataTexture){if(E===sf)return"int";if(E===Oc)return"uint"}return"float"}getElementType(y){return y==="mat2"?"vec2":y==="mat3"?"vec3":y==="mat4"?"vec4":this.getComponentType(y)}getComponentType(y){if(y=this.getVectorType(y),y==="float"||y==="bool"||y==="int"||y==="uint")return y;const E=/(b|i|u|)(vec|mat)([2-4])/.exec(y);return E===null?null:E[1]==="b"?"bool":E[1]==="i"?"int":E[1]==="u"?"uint":"float"}getVectorType(y){return y==="color"?"vec3":y==="texture"||y==="cubeTexture"||y==="storageTexture"||y==="texture3D"?"vec4":y}getTypeFromLength(y,E="float"){if(y===1)return E;let z=e8(y);const ne=E==="float"?"":E[0];return/mat2/.test(E)===!0&&(z=z.replace("vec","mat")),ne+z}getTypeFromArray(y){return L$.get(y.constructor)}isInteger(y){return/int|uint|(i|u)vec/.test(y)}getTypeFromAttribute(y){let E=y;y.isInterleavedBufferAttribute&&(E=y.data);const z=E.array,ne=y.itemSize,ie=y.normalized;let se;return!(y instanceof d2)&&ie!==!0&&(se=this.getTypeFromArray(z)),this.getTypeFromLength(ne,se)}getTypeLength(y){const E=this.getVectorType(y),z=/vec([2-4])/.exec(E);return z!==null?Number(z[1]):E==="float"||E==="bool"||E==="int"||E==="uint"?1:/mat2/.test(y)===!0?4:/mat3/.test(y)===!0?9:/mat4/.test(y)===!0?16:0}getVectorFromMatrix(y){return y.replace("mat","vec")}changeComponentType(y,E){return this.getTypeFromLength(this.getTypeLength(y),E)}getIntegerType(y){const E=this.getComponentType(y);return E==="int"||E==="uint"?y:this.changeComponentType(y,"int")}addStack(){return this.stack=tT(this.stack),this.stacks.push(g8()||this.stack),eM(this.stack),this.stack}removeStack(){const y=this.stack;return this.stack=y.parent,eM(this.stacks.pop()),y}getDataFromNode(y,E=this.shaderStage,z=null){z=z===null?y.isGlobal(this)?this.globalCache:this.cache:z;let ne=z.getData(y);return ne===void 0&&(ne={},z.setData(y,ne)),ne[E]===void 0&&(ne[E]={}),ne[E]}getNodeProperties(y,E="any"){const z=this.getDataFromNode(y,E);return z.properties||(z.properties={outputNode:null})}getBufferAttributeFromNode(y,E){const z=this.getDataFromNode(y);let ne=z.bufferAttribute;if(ne===void 0){const ie=this.uniforms.index++;ne=new yk("nodeAttribute"+ie,E,y),this.bufferAttributes.push(ne),z.bufferAttribute=ne}return ne}getStructTypeFromNode(y,E,z=null,ne=this.shaderStage){const ie=this.getDataFromNode(y,ne,this.globalCache);let se=ie.structType;if(se===void 0){const ae=this.structs.index++;z===null&&(z="StructType"+ae),se=new m$(z,E),this.structs[ne].push(se),ie.structType=se}return se}getOutputStructTypeFromNode(y,E){const z=this.getStructTypeFromNode(y,E,"OutputType","fragment");return z.output=!0,z}getUniformFromNode(y,E,z=this.shaderStage,ne=null){const ie=this.getDataFromNode(y,z,this.globalCache);let se=ie.uniform;if(se===void 0){const ae=this.uniforms.index++;se=new d$(ne||"nodeUniform"+ae,E,y),this.uniforms[z].push(se),this.registerDeclaration(se),ie.uniform=se}return se}getArrayCount(y){let E=null;return y.isArrayNode?E=y.count:y.isVarNode&&y.node.isArrayNode&&(E=y.node.count),E}getVarFromNode(y,E=null,z=y.getNodeType(this),ne=this.shaderStage,ie=!1){const se=this.getDataFromNode(y,ne);let ae=se.variable;if(ae===void 0){const he=ie?"_const":"_var",pe=this.vars[ne]||(this.vars[ne]=[]),ve=this.vars[he]||(this.vars[he]=0);E===null&&(E=(ie?"nodeConst":"nodeVar")+ve,this.vars[he]++);const xe=this.getArrayCount(y);ae=new Ak(E,z,ie,xe),ie||pe.push(ae),this.registerDeclaration(ae),se.variable=ae}return ae}isDeterministic(y){if(y.isMathNode)return this.isDeterministic(y.aNode)&&(y.bNode?this.isDeterministic(y.bNode):!0)&&(y.cNode?this.isDeterministic(y.cNode):!0);if(y.isOperatorNode)return this.isDeterministic(y.aNode)&&(y.bNode?this.isDeterministic(y.bNode):!0);if(y.isArrayNode){if(y.values!==null){for(const E of y.values)if(!this.isDeterministic(E))return!1}return!0}else if(y.isConstNode)return!0;return!1}getVaryingFromNode(y,E=null,z=y.getNodeType(this),ne=null,ie=null){const se=this.getDataFromNode(y,"any");let ae=se.varying;if(ae===void 0){const he=this.varyings,pe=he.length;E===null&&(E="nodeVarying"+pe),ae=new f$(E,z,ne,ie),he.push(ae),this.registerDeclaration(ae),se.varying=ae}return ae}get namespace(){return this.context.namespace}getOutputNamespace(){return this.getNamespace("outputNode")}getNamespace(y=""){const E=this.namespace;let z;return E?z=y?E+"_"+y:E:z=y,z}registerDeclaration(y){const E=this.shaderStage,z=this.declarations[E]||(this.declarations[E]={}),ne=this.getPropertyName(y);let ie=1,se=ne;for(;z[se]!==void 0;)se=ne+"_"+ie++;ie>1&&(y.name=se,console.warn(`THREE.TSL: Declaration name '${ne}' of '${y.type}' already in use. Renamed to '${se}'.`)),z[se]=y}getCodeFromNode(y,E,z=this.shaderStage){const ne=this.getDataFromNode(y);let ie=ne.code;if(ie===void 0){const se=this.codes[z]||(this.codes[z]=[]),ae=se.length;ie=new p$("nodeCode"+ae,E),se.push(ie),ne.code=ie}return ie}addFlowCodeHierarchy(y,E){const{flowCodes:z,flowCodeBlock:ne}=this.getDataFromNode(y);let ie=!0,se=E;for(;se;){if(ne.get(se)===!0){ie=!1;break}se=this.getDataFromNode(se).parentNodeBlock}if(ie)for(const ae of z)this.addLineFlowCode(ae)}addLineFlowCodeBlock(y,E,z){const ne=this.getDataFromNode(y),ie=ne.flowCodes||(ne.flowCodes=[]),se=ne.flowCodeBlock||(ne.flowCodeBlock=new WeakMap);ie.push(E),se.set(z,!0)}addLineFlowCode(y,E=null){return y===""?this:(E!==null&&this.context.nodeBlock&&this.addLineFlowCodeBlock(E,y,this.context.nodeBlock),y=this.tab+y,/;\s*$/.test(y)||(y=y+`;
|
|
`),this.flow.code+=y,this)}addFlowCode(y){return this.flow.code+=y,this}addFlowTab(){return this.tab+=" ",this}removeFlowTab(){return this.tab=this.tab.slice(0,-1),this}getFlowData(y){return this.flowsData.get(y)}flowNode(y){const E=y.getNodeType(this),z=this.flowChildNode(y,E);return this.flowsData.set(y,z),z}addInclude(y){this.currentFunctionNode!==null&&this.currentFunctionNode.includes.push(y)}buildFunctionNode(y){const E=new I9,z=this.currentFunctionNode;return this.currentFunctionNode=E,E.code=this.buildFunctionCode(y),this.currentFunctionNode=z,E}flowShaderNode(y){const E=y.layout,z={[Symbol.iterator](){let se=0;const ae=Object.values(this);return{next:()=>({value:ae[se],done:se++>=ae.length})}}};for(const se of E.inputs)z[se.name]=new l9(se.type,se.name);y.layout=null;const ne=y.call(z),ie=this.flowStagesNode(ne,E.type);return y.layout=E,ie}flowStagesNode(y,E=null){const z=this.flow,ne=this.vars,ie=this.declarations,se=this.cache,ae=this.buildStage,he=this.stack,pe={code:""};this.flow=pe,this.vars={},this.declarations={},this.cache=new f6,this.stack=tT();for(const ve of s8)this.setBuildStage(ve),pe.result=y.build(this,E);return pe.vars=this.getVars(this.shaderStage),this.flow=z,this.vars=ne,this.declarations=ie,this.cache=se,this.stack=he,this.setBuildStage(ae),pe}getFunctionOperator(){return null}buildFunctionCode(){console.warn("Abstract function.")}flowChildNode(y,E=null){const z=this.flow,ne={code:""};return this.flow=ne,ne.result=y.build(this,E),this.flow=z,ne}flowNodeFromShaderStage(y,E,z=null,ne=null){const ie=this.tab,se=this.cache,ae=this.shaderStage,he=this.context;this.setShaderStage(y);const pe=Hd({},this.context);delete pe.nodeBlock,this.cache=this.globalCache,this.tab=" ",this.context=pe;let ve=null;if(this.buildStage==="generate"){const xe=this.flowChildNode(E,z);ne!==null&&(xe.code+=`${this.tab+ne} = ${xe.result};
|
|
`),this.flowCode[y]=this.flowCode[y]+xe.code,ve=xe}else ve=E.build(this);return this.setShaderStage(ae),this.cache=se,this.tab=ie,this.context=he,ve}getAttributesArray(){return this.attributes.concat(this.bufferAttributes)}getAttributes(){console.warn("Abstract function.")}getVaryings(){console.warn("Abstract function.")}getVar(y,E,z=null){return`${z!==null?this.generateArrayDeclaration(y,z):this.getType(y)} ${E}`}getVars(y){let E="";const z=this.vars[y];if(z!==void 0)for(const ne of z)E+=`${this.getVar(ne.type,ne.name)}; `;return E}getUniforms(){console.warn("Abstract function.")}getCodes(y){const E=this.codes[y];let z="";if(E!==void 0)for(const ne of E)z+=ne.code+`
|
|
`;return z}getHash(){return this.vertexShader+this.fragmentShader+this.computeShader}setShaderStage(y){this.shaderStage=y}getShaderStage(){return this.shaderStage}setBuildStage(y){this.buildStage=y}getBuildStage(){return this.buildStage}buildCode(){console.warn("Abstract function.")}build(){const{object:y,material:E,renderer:z}=this;if(E!==null){let ne=z.library.fromMaterial(E);ne===null&&(console.error(`NodeMaterial: Material "${E.type}" is not compatible.`),ne=new $d),ne.build(this)}else this.addFlow("compute",y);for(const ne of s8){this.setBuildStage(ne),this.context.vertex&&this.context.vertex.isNode&&this.flowNodeFromShaderStage("vertex",this.context.vertex);for(const ie of a8){this.setShaderStage(ie);const se=this.flowNodes[ie];for(const ae of se)ne==="generate"?this.flowNode(ae):ae.build(this)}}return this.setBuildStage(null),this.setShaderStage(null),this.buildCode(),this.buildUpdateNodes(),this}getNodeUniform(y,E){if(E==="float"||E==="int"||E==="uint")return new E$(y);if(E==="vec2"||E==="ivec2"||E==="uvec2")return new b$(y);if(E==="vec3"||E==="ivec3"||E==="uvec3")return new M$(y);if(E==="vec4"||E==="ivec4"||E==="uvec4")return new B$(y);if(E==="color")return new T$(y);if(E==="mat2")return new D$(y);if(E==="mat3")return new N$(y);if(E==="mat4")return new F$(y);throw new Error(`Uniform "${E}" not declared.`)}format(y,E,z){if(E=this.getVectorType(E),z=this.getVectorType(z),E===z||z===null||this.isReference(z))return y;const ne=this.getTypeLength(E),ie=this.getTypeLength(z);return ne===16&&ie===9?`${this.getType(z)}( ${y}[ 0 ].xyz, ${y}[ 1 ].xyz, ${y}[ 2 ].xyz )`:ne===9&&ie===4?`${this.getType(z)}( ${y}[ 0 ].xy, ${y}[ 1 ].xy )`:ne>4||ie>4||ie===0?y:ne===ie?`${this.getType(z)}( ${y} )`:ne>ie?(y=z==="bool"?`all( ${y} )`:`${y}.${"xyz".slice(0,ie)}`,this.format(y,this.getTypeFromLength(ie,this.getComponentType(E)),z)):ie===4&&ne>1?`${this.getType(z)}( ${this.format(y,E,"vec3")}, 1.0 )`:ne===2?`${this.getType(z)}( ${this.format(y,E,"vec2")}, 0.0 )`:(ne===1&&ie>1&&E!==this.getComponentType(z)&&(y=`${this.getType(this.getComponentType(z))}( ${y} )`),`${this.getType(z)}( ${y} )`)}getSignature(){return`// Three.js r${cg} - Node System
|
|
`}*[Symbol.iterator](){}createNodeMaterial(y="NodeMaterial"){throw new Error(`THREE.NodeBuilder: createNodeMaterial() was deprecated. Use new ${y}() instead.`)}}class Sk{constructor(){this.time=0,this.deltaTime=0,this.frameId=0,this.renderId=0,this.updateMap=new WeakMap,this.updateBeforeMap=new WeakMap,this.updateAfterMap=new WeakMap,this.renderer=null,this.material=null,this.camera=null,this.object=null,this.scene=null}_getMaps(y,E){let z=y.get(E);return z===void 0&&(z={renderMap:new WeakMap,frameMap:new WeakMap},y.set(E,z)),z}updateBeforeNode(y){const E=y.getUpdateBeforeType(),z=y.updateReference(this);if(E===Uu.FRAME){const{frameMap:ne}=this._getMaps(this.updateBeforeMap,z);ne.get(z)!==this.frameId&&y.updateBefore(this)!==!1&&ne.set(z,this.frameId)}else if(E===Uu.RENDER){const{renderMap:ne}=this._getMaps(this.updateBeforeMap,z);ne.get(z)!==this.renderId&&y.updateBefore(this)!==!1&&ne.set(z,this.renderId)}else E===Uu.OBJECT&&y.updateBefore(this)}updateAfterNode(y){const E=y.getUpdateAfterType(),z=y.updateReference(this);if(E===Uu.FRAME){const{frameMap:ne}=this._getMaps(this.updateAfterMap,z);ne.get(z)!==this.frameId&&y.updateAfter(this)!==!1&&ne.set(z,this.frameId)}else if(E===Uu.RENDER){const{renderMap:ne}=this._getMaps(this.updateAfterMap,z);ne.get(z)!==this.renderId&&y.updateAfter(this)!==!1&&ne.set(z,this.renderId)}else E===Uu.OBJECT&&y.updateAfter(this)}updateNode(y){const E=y.getUpdateType(),z=y.updateReference(this);if(E===Uu.FRAME){const{frameMap:ne}=this._getMaps(this.updateMap,z);ne.get(z)!==this.frameId&&y.update(this)!==!1&&ne.set(z,this.frameId)}else if(E===Uu.RENDER){const{renderMap:ne}=this._getMaps(this.updateMap,z);ne.get(z)!==this.renderId&&y.update(this)!==!1&&ne.set(z,this.renderId)}else E===Uu.OBJECT&&y.update(this)}update(){this.frameId++,this.lastTime===void 0&&(this.lastTime=performance.now()),this.deltaTime=(performance.now()-this.lastTime)/1e3,this.lastTime=performance.now(),this.time+=this.deltaTime}}class p6{constructor(y,E,z=null,ne="",ie=!1){this.type=y,this.name=E,this.count=z,this.qualifier=ne,this.isConst=ie}}p6.isNodeFunctionInput=!0;class I$ extends eC{static get type(){return"DirectionalLightNode"}constructor(y=null){super(y)}setupDirect(){const y=this.colorNode;return{lightDirection:n6(this.light),lightColor:y}}}const g6=new Xa,vT=new Xa;let VM=null;class k$ extends eC{static get type(){return"RectAreaLightNode"}constructor(y=null){super(y),this.halfHeight=vl(new yn).setGroup(Yl),this.halfWidth=vl(new yn).setGroup(Yl),this.updateType=Uu.RENDER}update(y){super.update(y);const{light:E}=this,z=y.camera.matrixWorldInverse;vT.identity(),g6.copy(E.matrixWorld),g6.premultiply(z),vT.extractRotation(g6),this.halfWidth.value.set(E.width*.5,0,0),this.halfHeight.value.set(0,E.height*.5,0),this.halfWidth.value.applyMatrix4(vT),this.halfHeight.value.applyMatrix4(vT)}setupDirectRectArea(y){let E,z;y.isAvailable("float32Filterable")?(E=dc(VM.LTC_FLOAT_1),z=dc(VM.LTC_FLOAT_2)):(E=dc(VM.LTC_HALF_1),z=dc(VM.LTC_HALF_2));const{colorNode:ne,light:ie}=this,se=t6(ie);return{lightColor:ne,lightPosition:se,halfWidth:this.halfWidth,halfHeight:this.halfHeight,ltc_1:E,ltc_2:z}}static setLTC(y){VM=y}}class m6 extends eC{static get type(){return"SpotLightNode"}constructor(y=null){super(y),this.coneCosNode=vl(0).setGroup(Yl),this.penumbraCosNode=vl(0).setGroup(Yl),this.cutoffDistanceNode=vl(0).setGroup(Yl),this.decayExponentNode=vl(0).setGroup(Yl),this.colorNode=vl(this.color).setGroup(Yl)}update(y){super.update(y);const{light:E}=this;this.coneCosNode.value=Math.cos(E.angle),this.penumbraCosNode.value=Math.cos(E.angle*(1-E.penumbra)),this.cutoffDistanceNode.value=E.distance,this.decayExponentNode.value=E.decay}getSpotAttenuation(y,E){const{coneCosNode:z,penumbraCosNode:ne}=this;return wv(z,ne,E)}getLightCoord(y){const E=y.getNodeProperties(this);let z=E.projectionUV;return z===void 0&&(z=z9(this.light,y.context.positionWorld),E.projectionUV=z),z}setupDirect(y){const{colorNode:E,cutoffDistanceNode:z,decayExponentNode:ne,light:ie}=this,se=this.getLightVector(y),ae=se.normalize(),he=ae.dot(n6(ie)),pe=this.getSpotAttenuation(y,he),ve=se.length(),xe=u6({lightDistance:ve,cutoffDistance:z,decayExponent:ne});let Se=E.mul(pe).mul(xe),Be,De;return ie.colorNode?(De=this.getLightCoord(y),Be=ie.colorNode(De)):ie.map&&(De=this.getLightCoord(y),Be=dc(ie.map,De.xy).onRenderUpdate(()=>ie.map)),Be&&(Se=De.mul(2).sub(1).abs().lessThan(1).all().select(Se.mul(Be),Se)),{lightColor:Se,lightDirection:ae}}}class O$ extends m6{static get type(){return"IESSpotLightNode"}getSpotAttenuation(y,E){const z=this.light.iesMap;let ne=null;if(z&&z.isTexture===!0){const ie=E.acos().mul(1/Math.PI);ne=dc(z,Qo(ie,0),0).r}else ne=super.getSpotAttenuation(E);return ne}}const R$=$i(([ee,y])=>{const E=ee.abs().sub(y);return jA(qd(E,0)).add(_m(qd(E.x,E.y),0))});class z$ extends m6{static get type(){return"ProjectorLightNode"}update(y){super.update(y);const E=this.light;if(this.penumbraCosNode.value=Math.min(Math.cos(E.angle*(1-E.penumbra)),.99999),E.aspect===null){let z=1;E.map!==null&&(z=E.map.width/E.map.height),E.shadow.aspect=z}else E.shadow.aspect=E.aspect}getSpotAttenuation(y){const E=this.penumbraCosNode,z=this.getLightCoord(y),ne=z.xyz.div(z.w),ie=R$(ne.xy.sub(Qo(.5)),Qo(.5)),se=xv(-1,Pc(1,T8(E)).sub(1));return O8(ie.mul(-2).mul(se))}}class U$ extends eC{static get type(){return"AmbientLightNode"}constructor(y=null){super(y)}setup({context:y}){y.irradiance.addAssign(this.colorNode)}}class H$ extends eC{static get type(){return"HemisphereLightNode"}constructor(y=null){super(y),this.lightPositionNode=e6(y),this.lightDirectionNode=this.lightPositionNode.normalize(),this.groundColorNode=vl(new ia).setGroup(Yl)}update(y){const{light:E}=this;super.update(y),this.lightPositionNode.object3d=E,this.groundColorNode.value.copy(E.groundColor).multiplyScalar(E.intensity)}setup(y){const{colorNode:E,groundColorNode:z,lightDirectionNode:ne}=this,se=mM.dot(ne).mul(.5).add(.5),ae=Qc(z,E,se);y.context.irradiance.addAssign(ae)}}class V$ extends eC{static get type(){return"LightProbeNode"}constructor(y=null){super(y);const E=[];for(let z=0;z<9;z++)E.push(new yn);this.lightProbe=Sv(E)}update(y){const{light:E}=this;super.update(y);for(let z=0;z<9;z++)this.lightProbe.array[z].copy(E.sh.coefficients[z]).multiplyScalar(E.intensity)}setup(y){const E=vk(mM,this.lightProbe);y.context.irradiance.addAssign(E)}}class Pk{parseFunction(){console.warn("Abstract function.")}}class v6{constructor(y,E,z="",ne=""){this.type=y,this.inputs=E,this.name=z,this.precision=ne}getCode(){console.warn("Abstract function.")}}v6.isNodeFunction=!0;const j$=/^\s*(highp|mediump|lowp)?\s*([a-z_0-9]+)\s*([a-z_0-9]+)?\s*\(([\s\S]*?)\)/i,G$=/[a-z_0-9]+/ig,Ck="#pragma main",X$=ee=>{ee=ee.trim();const y=ee.indexOf(Ck),E=y!==-1?ee.slice(y+Ck.length):ee,z=E.match(j$);if(z!==null&&z.length===5){const ne=z[4],ie=[];let se=null;for(;(se=G$.exec(ne))!==null;)ie.push(se);const ae=[];let he=0;for(;he<ie.length;){const De=ie[he][0]==="const";De===!0&&he++;let Re=ie[he][0];Re==="in"||Re==="out"||Re==="inout"?he++:Re="";const Oe=ie[he++][0];let Le=Number.parseInt(ie[he][0]);Number.isNaN(Le)===!1?he++:Le=null;const Je=ie[he++][0];ae.push(new p6(Oe,Je,Le,Re,De))}const pe=E.substring(z[0].length),ve=z[3]!==void 0?z[3]:"",xe=z[2],Se=z[1]!==void 0?z[1]:"",Be=y!==-1?ee.slice(0,y):"";return{type:xe,inputs:ae,name:ve,precision:Se,inputsCode:ne,blockCode:pe,headerCode:Be}}else throw new Error("FunctionNode: Function is not a GLSL code.")};class W$ extends v6{constructor(y){const{type:E,inputs:z,name:ne,precision:ie,inputsCode:se,blockCode:ae,headerCode:he}=X$(y);super(E,z,ne,ie),this.inputsCode=se,this.blockCode=ae,this.headerCode=he}getCode(y=this.name){let E;const z=this.blockCode;if(z!==""){const{type:ne,inputsCode:ie,headerCode:se,precision:ae}=this;let he=`${ne} ${y} ( ${ie.trim()} )`;ae!==""&&(he=`${ae} ${he}`),E=se+he+z}else E="";return E}}class Q$ extends Pk{parseFunction(y){return new W$(y)}}const Ek=new WeakMap,KA=[],tC=[];class Z$ extends aS{constructor(y,E){super(),this.renderer=y,this.backend=E,this.nodeFrame=new Sk,this.nodeBuilderCache=new Map,this.callHashCache=new Vy,this.groupsData=new Vy,this.cacheLib={}}updateGroup(y){const E=y.groupNode,z=E.name;if(z===C8.name)return!0;if(z===Yl.name){const ie=this.get(y),se=this.nodeFrame.renderId;return ie.renderId!==se?(ie.renderId=se,!0):!1}if(z===ML.name){const ie=this.get(y),se=this.nodeFrame.frameId;return ie.frameId!==se?(ie.frameId=se,!0):!1}KA[0]=E,KA[1]=y;let ne=this.groupsData.get(KA);return ne===void 0&&this.groupsData.set(KA,ne={}),KA.length=0,ne.version!==E.version?(ne.version=E.version,!0):!1}getForRenderCacheKey(y){return y.initialCacheKey}getForRender(y){const E=this.get(y);let z=E.nodeBuilderState;if(z===void 0){const{nodeBuilderCache:ne}=this,ie=this.getForRenderCacheKey(y);if(z=ne.get(ie),z===void 0){const se=this.backend.createNodeBuilder(y.object,this.renderer);se.scene=y.scene,se.material=y.material,se.camera=y.camera,se.context.material=y.material,se.lightsNode=y.lightsNode,se.environmentNode=this.getEnvironmentNode(y.scene),se.fogNode=this.getFogNode(y.scene),se.clippingContext=y.clippingContext,this.renderer.getOutputRenderTarget()&&this.renderer.getOutputRenderTarget().multiview&&se.enableMultiview(),se.build(),z=this._createNodeBuilderState(se),ne.set(ie,z)}z.usedTimes++,E.nodeBuilderState=z}return z}delete(y){if(y.isRenderObject){const E=this.get(y).nodeBuilderState;E.usedTimes--,E.usedTimes===0&&this.nodeBuilderCache.delete(this.getForRenderCacheKey(y))}return super.delete(y)}getForCompute(y){const E=this.get(y);let z=E.nodeBuilderState;if(z===void 0){const ne=this.backend.createNodeBuilder(y,this.renderer);ne.build(),z=this._createNodeBuilderState(ne),E.nodeBuilderState=z}return z}_createNodeBuilderState(y){return new h$(y.vertexShader,y.fragmentShader,y.computeShader,y.getAttributesArray(),y.getBindings(),y.updateNodes,y.updateBeforeNodes,y.updateAfterNodes,y.observer,y.transforms)}getEnvironmentNode(y){this.updateEnvironment(y);let E=null;if(y.environmentNode&&y.environmentNode.isNode)E=y.environmentNode;else{const z=this.get(y);z.environmentNode&&(E=z.environmentNode)}return E}getBackgroundNode(y){this.updateBackground(y);let E=null;if(y.backgroundNode&&y.backgroundNode.isNode)E=y.backgroundNode;else{const z=this.get(y);z.backgroundNode&&(E=z.backgroundNode)}return E}getFogNode(y){return this.updateFog(y),y.fogNode||this.get(y).fogNode||null}getCacheKey(y,E){KA[0]=y,KA[1]=E;const z=this.renderer.info.calls,ne=this.callHashCache.get(KA)||{};if(ne.callId!==z){const ie=this.getEnvironmentNode(y),se=this.getFogNode(y);E&&tC.push(E.getCacheKey(!0)),ie&&tC.push(ie.getCacheKey()),se&&tC.push(se.getCacheKey()),tC.push(this.renderer.getOutputRenderTarget()&&this.renderer.getOutputRenderTarget().multiview?1:0),tC.push(this.renderer.shadowMap.enabled?1:0),ne.callId=z,ne.cacheKey=Z2(tC),this.callHashCache.set(KA,ne),tC.length=0}return KA.length=0,ne.cacheKey}get isToneMappingState(){return!this.renderer.getRenderTarget()}updateBackground(y){const E=this.get(y),z=y.background;if(z){const ne=y.backgroundBlurriness===0&&E.backgroundBlurriness>0||y.backgroundBlurriness>0&&E.backgroundBlurriness===0;if(E.background!==z||ne){const ie=this.getCacheNode("background",z,()=>{if(z.isCubeTexture===!0||z.mapping===nA||z.mapping===cd||z.mapping===Q0){if(y.backgroundBlurriness>0||z.mapping===Q0)return HD(z);{let se;return z.isCubeTexture===!0?se=VE(z):se=dc(z),d7(se)}}else{if(z.isTexture===!0)return dc(z,Hy.flipY()).setUpdateMatrix(!0);z.isColor!==!0&&console.error("WebGPUNodes: Unsupported background configuration.",z)}},ne);E.backgroundNode=ie,E.background=z,E.backgroundBlurriness=y.backgroundBlurriness}}else E.backgroundNode&&(delete E.backgroundNode,delete E.background)}getCacheNode(y,E,z,ne=!1){const ie=this.cacheLib[y]||(this.cacheLib[y]=new WeakMap);let se=ie.get(E);return(se===void 0||ne)&&(se=z(),ie.set(E,se)),se}updateFog(y){const E=this.get(y),z=y.fog;if(z){if(E.fog!==z){const ne=this.getCacheNode("fog",z,()=>{if(z.isFogExp2){const ie=kh("color","color",z).setGroup(Yl),se=kh("density","float",z).setGroup(Yl);return kM(ie,qD(se))}else if(z.isFog){const ie=kh("color","color",z).setGroup(Yl),se=kh("near","float",z).setGroup(Yl),ae=kh("far","float",z).setGroup(Yl);return kM(ie,JD(se,ae))}else console.error("THREE.Renderer: Unsupported fog configuration.",z)});E.fogNode=ne,E.fog=z}}else delete E.fogNode,delete E.fog}updateEnvironment(y){const E=this.get(y),z=y.environment;if(z){if(E.environment!==z){const ne=this.getCacheNode("environment",z,()=>{if(z.isCubeTexture===!0)return VE(z);if(z.isTexture===!0)return dc(z);console.error("Nodes: Unsupported environment configuration.",z)});E.environmentNode=ne,E.environment=z}}else E.environmentNode&&(delete E.environmentNode,delete E.environment)}getNodeFrame(y=this.renderer,E=null,z=null,ne=null,ie=null){const se=this.nodeFrame;return se.renderer=y,se.scene=E,se.object=z,se.camera=ne,se.material=ie,se}getNodeFrameForRender(y){return this.getNodeFrame(y.renderer,y.scene,y.object,y.camera,y.material)}getOutputCacheKey(){const y=this.renderer;return y.toneMapping+","+y.currentColorSpace+","+y.xr.isPresenting}hasOutputChange(y){return Ek.get(y)!==this.getOutputCacheKey()}getOutputNode(y){const E=this.renderer,z=this.getOutputCacheKey(),ne=y.isArrayTexture?y9(y,Li(Hy,fM("gl_ViewID_OVR"))).renderOutput(E.toneMapping,E.currentColorSpace):dc(y,Hy).renderOutput(E.toneMapping,E.currentColorSpace);return Ek.set(y,z),ne}updateBefore(y){const E=y.getNodeBuilderState();for(const z of E.updateBeforeNodes)this.getNodeFrameForRender(y).updateBeforeNode(z)}updateAfter(y){const E=y.getNodeBuilderState();for(const z of E.updateAfterNodes)this.getNodeFrameForRender(y).updateAfterNode(z)}updateForCompute(y){const E=this.getNodeFrame(),z=this.getForCompute(y);for(const ne of z.updateNodes)E.updateNode(ne)}updateForRender(y){const E=this.getNodeFrameForRender(y),z=y.getNodeBuilderState();for(const ne of z.updateNodes)E.updateNode(ne)}needsRefresh(y){const E=this.getNodeFrameForRender(y);return y.getMonitor().needsRefresh(y,E)}dispose(){super.dispose(),this.nodeFrame=new Sk,this.nodeBuilderCache=new Map,this.cacheLib={}}}const y6=new Yh;class yT{constructor(y=null){this.version=0,this.clipIntersection=null,this.cacheKey="",this.shadowPass=!1,this.viewNormalMatrix=new nu,this.clippingGroupContexts=new WeakMap,this.intersectionPlanes=[],this.unionPlanes=[],this.parentVersion=null,y!==null&&(this.viewNormalMatrix=y.viewNormalMatrix,this.clippingGroupContexts=y.clippingGroupContexts,this.shadowPass=y.shadowPass,this.viewMatrix=y.viewMatrix)}projectPlanes(y,E,z){const ne=y.length;for(let ie=0;ie<ne;ie++){y6.copy(y[ie]).applyMatrix4(this.viewMatrix,this.viewNormalMatrix);const se=E[z+ie],ae=y6.normal;se.x=-ae.x,se.y=-ae.y,se.z=-ae.z,se.w=y6.constant}}updateGlobal(y,E){this.shadowPass=y.overrideMaterial!==null&&y.overrideMaterial.isShadowPassMaterial,this.viewMatrix=E.matrixWorldInverse,this.viewNormalMatrix.getNormalMatrix(this.viewMatrix)}update(y,E){let z=!1;y.version!==this.parentVersion&&(this.intersectionPlanes=Array.from(y.intersectionPlanes),this.unionPlanes=Array.from(y.unionPlanes),this.parentVersion=y.version),this.clipIntersection!==E.clipIntersection&&(this.clipIntersection=E.clipIntersection,this.clipIntersection?this.unionPlanes.length=y.unionPlanes.length:this.intersectionPlanes.length=y.intersectionPlanes.length);const ne=E.clippingPlanes,ie=ne.length;let se,ae;if(this.clipIntersection?(se=this.intersectionPlanes,ae=y.intersectionPlanes.length):(se=this.unionPlanes,ae=y.unionPlanes.length),se.length!==ae+ie){se.length=ae+ie;for(let he=0;he<ie;he++)se[ae+he]=new Ul;z=!0}this.projectPlanes(ne,se,ae),z&&(this.version++,this.cacheKey=`${this.intersectionPlanes.length}:${this.unionPlanes.length}`)}getGroupContext(y){if(this.shadowPass&&!y.clipShadows)return this;let E=this.clippingGroupContexts.get(y);return E===void 0&&(E=new yT(this),this.clippingGroupContexts.set(y,E)),E.update(this,y),E}get unionClippingCount(){return this.unionPlanes.length}}class Y${constructor(y,E){this.bundleGroup=y,this.camera=E}}const jM=[];class K${constructor(){this.bundles=new Vy}get(y,E){const z=this.bundles;jM[0]=y,jM[1]=E;let ne=z.get(jM);return ne===void 0&&(ne=new Y$(y,E),z.set(jM,ne)),jM.length=0,ne}dispose(){this.bundles=new Vy}}class bk{constructor(){this.lightNodes=new WeakMap,this.materialNodes=new Map,this.toneMappingNodes=new Map}fromMaterial(y){if(y.isNodeMaterial)return y;let E=null;const z=this.getMaterialNodeClass(y.type);if(z!==null){E=new z;for(const ne in y)E[ne]=y[ne]}return E}addToneMapping(y,E){this.addType(y,E,this.toneMappingNodes)}getToneMappingFunction(y){return this.toneMappingNodes.get(y)||null}getMaterialNodeClass(y){return this.materialNodes.get(y)||null}addMaterial(y,E){this.addType(y,E,this.materialNodes)}getLightNodeClass(y){return this.lightNodes.get(y)||null}addLight(y,E){this.addClass(y,E,this.lightNodes)}addType(y,E,z){if(z.has(E)){console.warn(`Redefinition of node ${E}`);return}if(typeof y!="function")throw new Error(`Node class ${y.name} is not a class.`);if(typeof E=="function"||typeof E=="object")throw new Error(`Base class ${E} is not a class.`);z.set(E,y)}addClass(y,E,z){if(z.has(E)){console.warn(`Redefinition of node ${E.name}`);return}if(typeof y!="function")throw new Error(`Node class ${y.name} is not a class.`);if(typeof E!="function")throw new Error(`Base class ${E.name} is not a class.`);z.set(E,y)}}const J$=new r6,GM=[];class q$ extends Vy{constructor(){super()}createNode(y=[]){return new r6().setLights(y)}getNode(y,E){if(y.isQuadMesh)return J$;GM[0]=y,GM[1]=E;let z=this.get(GM);return z===void 0&&(z=this.createNode(),this.set(GM,z)),GM.length=0,z}}class XM extends p0{constructor(y=1,E=1,z={}){super(y,E,z),this.isXRRenderTarget=!0,this.hasExternalTextures=!1,this.autoAllocateDepthBuffer=!0}copy(y){return super.copy(y),this.hasExternalTextures=y.hasExternalTextures,this.autoAllocateDepthBuffer=y.autoAllocateDepthBuffer,this}}const Mk=new yn,Bk=new yn;class _$ extends Hg{constructor(y,E=!1){super(),this.enabled=!1,this.isPresenting=!1,this.cameraAutoUpdate=!0,this._renderer=y,this._cameraL=new Bd,this._cameraL.viewport=new Ul,this._cameraR=new Bd,this._cameraR.viewport=new Ul,this._cameras=[this._cameraL,this._cameraR],this._cameraXR=new sh,this._currentDepthNear=null,this._currentDepthFar=null,this._controllers=[],this._controllerInputSources=[],this._xrRenderTarget=null,this._layers=[],this._supportsLayers=!1,this._frameBufferTargets=null,this._createXRLayer=ree.bind(this),this._gl=null,this._currentAnimationContext=null,this._currentAnimationLoop=null,this._currentPixelRatio=null,this._currentSize=new Yr,this._onSessionEvent=tee.bind(this),this._onSessionEnd=nee.bind(this),this._onInputSourcesChange=iee.bind(this),this._onAnimationFrame=oee.bind(this),this._referenceSpace=null,this._referenceSpaceType="local-floor",this._customReferenceSpace=null,this._framebufferScaleFactor=1,this._foveation=1,this._session=null,this._glBaseLayer=null,this._glBinding=null,this._glProjLayer=null,this._xrFrame=null,this._useLayers=typeof XRWebGLBinding!="undefined"&&"createProjectionLayer"in XRWebGLBinding.prototype,this._useMultiviewIfPossible=E,this._useMultiview=!1}getController(y){return this._getController(y).getTargetRaySpace()}getControllerGrip(y){return this._getController(y).getGripSpace()}getHand(y){return this._getController(y).getHandSpace()}getFoveation(){if(!(this._glProjLayer===null&&this._glBaseLayer===null))return this._foveation}setFoveation(y){this._foveation=y,this._glProjLayer!==null&&(this._glProjLayer.fixedFoveation=y),this._glBaseLayer!==null&&this._glBaseLayer.fixedFoveation!==void 0&&(this._glBaseLayer.fixedFoveation=y)}getFramebufferScaleFactor(){return this._framebufferScaleFactor}setFramebufferScaleFactor(y){this._framebufferScaleFactor=y,this.isPresenting===!0&&console.warn("THREE.XRManager: Cannot change framebuffer scale while presenting.")}getReferenceSpaceType(){return this._referenceSpaceType}setReferenceSpaceType(y){this._referenceSpaceType=y,this.isPresenting===!0&&console.warn("THREE.XRManager: Cannot change reference space type while presenting.")}getReferenceSpace(){return this._customReferenceSpace||this._referenceSpace}setReferenceSpace(y){this._customReferenceSpace=y}getCamera(){return this._cameraXR}getEnvironmentBlendMode(){if(this._session!==null)return this._session.environmentBlendMode}getFrame(){return this._xrFrame}useMultiview(){return this._useMultiview}createQuadLayer(y,E,z,ne,ie,se,ae,he={}){const pe=new $p(y,E),ve=new XM(ie,se,{format:Ws,type:yh,depthTexture:new jg(ie,se,he.stencil?xh:Oc,void 0,void 0,void 0,void 0,void 0,void 0,he.stencil?Ig:Lg),stencilBuffer:he.stencil,resolveDepthBuffer:!1,resolveStencilBuffer:!1});ve.autoAllocateDepthBuffer=!0;const xe=new Yd({color:16777215,side:hp});xe.map=ve.texture,xe.map.offset.y=1,xe.map.repeat.y=-1;const Se=new Bc(pe,xe);Se.position.copy(z),Se.quaternion.copy(ne);const Be={type:"quad",width:y,height:E,translation:z,quaternion:ne,pixelwidth:ie,pixelheight:se,plane:Se,material:xe,rendercall:ae,renderTarget:ve};if(this._layers.push(Be),this._session!==null){Be.plane.material=new Yd({color:16777215,side:hp}),Be.plane.material.blending=Ne,Be.plane.material.blendEquation=Xe,Be.plane.material.blendSrc=On,Be.plane.material.blendDst=On,Be.xrlayer=this._createXRLayer(Be);const De=this._session.renderState.layers;De.unshift(Be.xrlayer),this._session.updateRenderState({layers:De})}else ve.isXRRenderTarget=!1;return Se}createCylinderLayer(y,E,z,ne,ie,se,ae,he,pe={}){const ve=new Kd(y,y,y*E/z,64,64,!0,Math.PI-E/2,E),xe=new XM(se,ae,{format:Ws,type:yh,depthTexture:new jg(se,ae,pe.stencil?xh:Oc,void 0,void 0,void 0,void 0,void 0,void 0,pe.stencil?Ig:Lg),stencilBuffer:pe.stencil,resolveDepthBuffer:!1,resolveStencilBuffer:!1});xe.autoAllocateDepthBuffer=!0;const Se=new Yd({color:16777215,side:wc});Se.map=xe.texture,Se.map.offset.y=1,Se.map.repeat.y=-1;const Be=new Bc(ve,Se);Be.position.copy(ne),Be.quaternion.copy(ie);const De={type:"cylinder",radius:y,centralAngle:E,aspectratio:z,translation:ne,quaternion:ie,pixelwidth:se,pixelheight:ae,plane:Be,material:Se,rendercall:he,renderTarget:xe};if(this._layers.push(De),this._session!==null){De.plane.material=new Yd({color:16777215,side:wc}),De.plane.material.blending=Ne,De.plane.material.blendEquation=Xe,De.plane.material.blendSrc=On,De.plane.material.blendDst=On,De.xrlayer=this._createXRLayer(De);const Re=this._session.renderState.layers;Re.unshift(De.xrlayer),this._session.updateRenderState({layers:Re})}else xe.isXRRenderTarget=!1;return Be}renderLayers(){const y=new yn,E=new Bf,z=this._renderer,ne=this.isPresenting,ie=z.getOutputRenderTarget(),se=z._frameBufferTarget;this.isPresenting=!1;const ae=new Yr;z.getSize(ae);const he=z._quad;for(const pe of this._layers)if(pe.renderTarget.isXRRenderTarget=this._session!==null,pe.renderTarget.hasExternalTextures=pe.renderTarget.isXRRenderTarget,pe.renderTarget.isXRRenderTarget&&this._supportsLayers){pe.xrlayer.transform=new XRRigidTransform(pe.plane.getWorldPosition(y),pe.plane.getWorldQuaternion(E));const ve=this._glBinding.getSubImage(pe.xrlayer,this._xrFrame);z.backend.setXRRenderTargetTextures(pe.renderTarget,ve.colorTexture,void 0),z._setXRLayerSize(pe.renderTarget.width,pe.renderTarget.height),z.setOutputRenderTarget(pe.renderTarget),z.setRenderTarget(null),z._frameBufferTarget=null,this._frameBufferTargets||(this._frameBufferTargets=new WeakMap);const{frameBufferTarget:xe,quad:Se}=this._frameBufferTargets.get(pe.renderTarget)||{frameBufferTarget:null,quad:null};xe?(z._frameBufferTarget=xe,z._quad=Se):(z._quad=new LM(new $d),this._frameBufferTargets.set(pe.renderTarget,{frameBufferTarget:z._getFrameBufferTarget(),quad:z._quad})),pe.rendercall(),z._frameBufferTarget=null}else z.setRenderTarget(pe.renderTarget),pe.rendercall();z.setRenderTarget(null),z.setOutputRenderTarget(ie),z._frameBufferTarget=se,z._setXRLayerSize(ae.x,ae.y),z._quad=he,this.isPresenting=ne}getSession(){return this._session}setSession(y){return Vl(this,null,function*(){const E=this._renderer,z=E.backend;this._gl=E.getContext();const ne=this._gl,ie=ne.getContextAttributes();if(this._session=y,y!==null){if(z.isWebGPUBackend===!0)throw new Error('THREE.XRManager: XR is currently not supported with a WebGPU backend. Use WebGL by passing "{ forceWebGL: true }" to the constructor of the renderer.');if(y.addEventListener("select",this._onSessionEvent),y.addEventListener("selectstart",this._onSessionEvent),y.addEventListener("selectend",this._onSessionEvent),y.addEventListener("squeeze",this._onSessionEvent),y.addEventListener("squeezestart",this._onSessionEvent),y.addEventListener("squeezeend",this._onSessionEvent),y.addEventListener("end",this._onSessionEnd),y.addEventListener("inputsourceschange",this._onInputSourcesChange),yield z.makeXRCompatible(),this._currentPixelRatio=E.getPixelRatio(),E.getSize(this._currentSize),this._currentAnimationContext=E._animation.getContext(),this._currentAnimationLoop=E._animation.getAnimationLoop(),E._animation.stop(),this._useLayers===!0){let se=null,ae=null,he=null;E.depth&&(he=E.stencil?ne.DEPTH24_STENCIL8:ne.DEPTH_COMPONENT24,se=E.stencil?Ig:Lg,ae=E.stencil?xh:Oc);const pe={colorFormat:ne.RGBA8,depthFormat:he,scaleFactor:this._framebufferScaleFactor,clearOnAccess:!1};this._useMultiviewIfPossible&&E.hasFeature("OVR_multiview2")&&(pe.textureType="texture-array",this._useMultiview=!0);const ve=new XRWebGLBinding(y,ne),xe=ve.createProjectionLayer(pe),Se=[xe];this._glBinding=ve,this._glProjLayer=xe,E.setPixelRatio(1),E._setXRLayerSize(xe.textureWidth,xe.textureHeight);const Be=this._useMultiview?2:1,De=new jg(xe.textureWidth,xe.textureHeight,ae,void 0,void 0,void 0,void 0,void 0,void 0,se,Be);if(this._xrRenderTarget=new XM(xe.textureWidth,xe.textureHeight,{format:Ws,type:yh,colorSpace:E.outputColorSpace,depthTexture:De,stencilBuffer:E.stencil,samples:ie.antialias?4:0,resolveDepthBuffer:xe.ignoreDepthValues===!1,resolveStencilBuffer:xe.ignoreDepthValues===!1,depth:this._useMultiview?2:1,multiview:this._useMultiview}),this._xrRenderTarget.hasExternalTextures=!0,this._xrRenderTarget.depth=this._useMultiview?2:1,this._supportsLayers=y.enabledFeatures.includes("layers"),this._referenceSpace=yield y.requestReferenceSpace(this.getReferenceSpaceType()),this._supportsLayers)for(const Re of this._layers)Re.plane.material=new Yd({color:16777215,side:Re.type==="cylinder"?wc:hp}),Re.plane.material.blending=Ne,Re.plane.material.blendEquation=Xe,Re.plane.material.blendSrc=On,Re.plane.material.blendDst=On,Re.xrlayer=this._createXRLayer(Re),Se.unshift(Re.xrlayer);y.updateRenderState({layers:Se})}else{const se={antialias:E.samples>0,alpha:!0,depth:E.depth,stencil:E.stencil,framebufferScaleFactor:this.getFramebufferScaleFactor()},ae=new XRWebGLLayer(y,ne,se);this._glBaseLayer=ae,y.updateRenderState({baseLayer:ae}),E.setPixelRatio(1),E._setXRLayerSize(ae.framebufferWidth,ae.framebufferHeight),this._xrRenderTarget=new XM(ae.framebufferWidth,ae.framebufferHeight,{format:Ws,type:yh,colorSpace:E.outputColorSpace,stencilBuffer:E.stencil,resolveDepthBuffer:ae.ignoreDepthValues===!1,resolveStencilBuffer:ae.ignoreDepthValues===!1}),this._referenceSpace=yield y.requestReferenceSpace(this.getReferenceSpaceType())}this.setFoveation(this.getFoveation()),E._animation.setAnimationLoop(this._onAnimationFrame),E._animation.setContext(y),E._animation.start(),this.isPresenting=!0,this.dispatchEvent({type:"sessionstart"})}})}updateCamera(y){const E=this._session;if(E===null)return;const z=y.near,ne=y.far,ie=this._cameraXR,se=this._cameraL,ae=this._cameraR;ie.near=ae.near=se.near=z,ie.far=ae.far=se.far=ne,ie.isMultiViewCamera=this._useMultiview,(this._currentDepthNear!==ie.near||this._currentDepthFar!==ie.far)&&(E.updateRenderState({depthNear:ie.near,depthFar:ie.far}),this._currentDepthNear=ie.near,this._currentDepthFar=ie.far),se.layers.mask=y.layers.mask|2,ae.layers.mask=y.layers.mask|4,ie.layers.mask=se.layers.mask|ae.layers.mask;const he=y.parent,pe=ie.cameras;Tk(ie,he);for(let ve=0;ve<pe.length;ve++)Tk(pe[ve],he);pe.length===2?$$(ie,se,ae):ie.projectionMatrix.copy(se.projectionMatrix),eee(y,ie,he)}_getController(y){let E=this._controllers[y];return E===void 0&&(E=new aP,this._controllers[y]=E),E}}function $$(ee,y,E){Mk.setFromMatrixPosition(y.matrixWorld),Bk.setFromMatrixPosition(E.matrixWorld);const z=Mk.distanceTo(Bk),ne=y.projectionMatrix.elements,ie=E.projectionMatrix.elements,se=ne[14]/(ne[10]-1),ae=ne[14]/(ne[10]+1),he=(ne[9]+1)/ne[5],pe=(ne[9]-1)/ne[5],ve=(ne[8]-1)/ne[0],xe=(ie[8]+1)/ie[0],Se=se*ve,Be=se*xe,De=z/(-ve+xe),Re=De*-ve;if(y.matrixWorld.decompose(ee.position,ee.quaternion,ee.scale),ee.translateX(Re),ee.translateZ(De),ee.matrixWorld.compose(ee.position,ee.quaternion,ee.scale),ee.matrixWorldInverse.copy(ee.matrixWorld).invert(),ne[10]===-1)ee.projectionMatrix.copy(y.projectionMatrix),ee.projectionMatrixInverse.copy(y.projectionMatrixInverse);else{const Oe=se+De,Le=ae+De,Je=Se-Re,$e=Be+(z-Re),_e=he*ae/Le*Oe,st=pe*ae/Le*Oe;ee.projectionMatrix.makePerspective(Je,$e,_e,st,Oe,Le),ee.projectionMatrixInverse.copy(ee.projectionMatrix).invert()}}function Tk(ee,y){y===null?ee.matrixWorld.copy(ee.matrix):ee.matrixWorld.multiplyMatrices(y.matrixWorld,ee.matrix),ee.matrixWorldInverse.copy(ee.matrixWorld).invert()}function eee(ee,y,E){E===null?ee.matrix.copy(y.matrixWorld):(ee.matrix.copy(E.matrixWorld),ee.matrix.invert(),ee.matrix.multiply(y.matrixWorld)),ee.matrix.decompose(ee.position,ee.quaternion,ee.scale),ee.updateMatrixWorld(!0),ee.projectionMatrix.copy(y.projectionMatrix),ee.projectionMatrixInverse.copy(y.projectionMatrixInverse),ee.isPerspectiveCamera&&(ee.fov=q0*2*Math.atan(1/ee.projectionMatrix.elements[5]),ee.zoom=1)}function tee(ee){const y=this._controllerInputSources.indexOf(ee.inputSource);if(y===-1)return;const E=this._controllers[y];if(E!==void 0){const z=this.getReferenceSpace();E.update(ee.inputSource,ee.frame,z),E.dispatchEvent({type:ee.type,data:ee.inputSource})}}function nee(){const ee=this._session,y=this._renderer;ee.removeEventListener("select",this._onSessionEvent),ee.removeEventListener("selectstart",this._onSessionEvent),ee.removeEventListener("selectend",this._onSessionEvent),ee.removeEventListener("squeeze",this._onSessionEvent),ee.removeEventListener("squeezestart",this._onSessionEvent),ee.removeEventListener("squeezeend",this._onSessionEvent),ee.removeEventListener("end",this._onSessionEnd),ee.removeEventListener("inputsourceschange",this._onInputSourcesChange);for(let E=0;E<this._controllers.length;E++){const z=this._controllerInputSources[E];z!==null&&(this._controllerInputSources[E]=null,this._controllers[E].disconnect(z))}if(this._currentDepthNear=null,this._currentDepthFar=null,y._resetXRState(),this._session=null,this._xrRenderTarget=null,this._supportsLayers===!0)for(const E of this._layers)E.renderTarget=new XM(E.pixelwidth,E.pixelheight,{format:Ws,type:yh,depthTexture:new jg(E.pixelwidth,E.pixelheight,E.stencilBuffer?xh:Oc,void 0,void 0,void 0,void 0,void 0,void 0,E.stencilBuffer?Ig:Lg),stencilBuffer:E.stencilBuffer,resolveDepthBuffer:!1,resolveStencilBuffer:!1}),E.renderTarget.isXRRenderTarget=!1,E.plane.material=E.material,E.material.map=E.renderTarget.texture,E.material.map.offset.y=1,E.material.map.repeat.y=-1,delete E.xrlayer;this.isPresenting=!1,this._useMultiview=!1,y._animation.stop(),y._animation.setAnimationLoop(this._currentAnimationLoop),y._animation.setContext(this._currentAnimationContext),y._animation.start(),y.setPixelRatio(this._currentPixelRatio),y.setSize(this._currentSize.width,this._currentSize.height,!1),this.dispatchEvent({type:"sessionend"})}function iee(ee){const y=this._controllers,E=this._controllerInputSources;for(let z=0;z<ee.removed.length;z++){const ne=ee.removed[z],ie=E.indexOf(ne);ie>=0&&(E[ie]=null,y[ie].disconnect(ne))}for(let z=0;z<ee.added.length;z++){const ne=ee.added[z];let ie=E.indexOf(ne);if(ie===-1){for(let ae=0;ae<y.length;ae++)if(ae>=E.length){E.push(ne),ie=ae;break}else if(E[ae]===null){E[ae]=ne,ie=ae;break}if(ie===-1)break}const se=y[ie];se&&se.connect(ne)}}function ree(ee){return ee.type==="quad"?this._glBinding.createQuadLayer({transform:new XRRigidTransform(ee.translation,ee.quaternion),width:ee.width/2,height:ee.height/2,space:this._referenceSpace,viewPixelWidth:ee.pixelwidth,viewPixelHeight:ee.pixelheight,clearOnAccess:!1}):this._glBinding.createCylinderLayer({transform:new XRRigidTransform(ee.translation,ee.quaternion),radius:ee.radius,centralAngle:ee.centralAngle,aspectRatio:ee.aspectRatio,space:this._referenceSpace,viewPixelWidth:ee.pixelwidth,viewPixelHeight:ee.pixelheight,clearOnAccess:!1})}function oee(ee,y){if(y===void 0)return;const E=this._cameraXR,z=this._renderer,ne=z.backend,ie=this._glBaseLayer,se=this.getReferenceSpace(),ae=y.getViewerPose(se);if(this._xrFrame=y,ae!==null){const he=ae.views;this._glBaseLayer!==null&&ne.setXRTarget(ie.framebuffer);let pe=!1;he.length!==E.cameras.length&&(E.cameras.length=0,pe=!0);for(let ve=0;ve<he.length;ve++){const xe=he[ve];let Se;if(this._useLayers===!0){const De=this._glBinding.getViewSubImage(this._glProjLayer,xe);Se=De.viewport,ve===0&&ne.setXRRenderTargetTextures(this._xrRenderTarget,De.colorTexture,this._glProjLayer.ignoreDepthValues&&!this._useMultiview?void 0:De.depthStencilTexture)}else Se=ie.getViewport(xe);let Be=this._cameras[ve];Be===void 0&&(Be=new Bd,Be.layers.enable(ve),Be.viewport=new Ul,this._cameras[ve]=Be),Be.matrix.fromArray(xe.transform.matrix),Be.matrix.decompose(Be.position,Be.quaternion,Be.scale),Be.projectionMatrix.fromArray(xe.projectionMatrix),Be.projectionMatrixInverse.copy(Be.projectionMatrix).invert(),Be.viewport.set(Se.x,Se.y,Se.width,Se.height),ve===0&&(E.matrix.copy(Be.matrix),E.matrix.decompose(E.position,E.quaternion,E.scale)),pe===!0&&E.cameras.push(Be)}z.setOutputRenderTarget(this._xrRenderTarget)}for(let he=0;he<this._controllers.length;he++){const pe=this._controllerInputSources[he],ve=this._controllers[he];pe!==null&&ve!==void 0&&ve.update(pe,y,se)}this._currentAnimationLoop&&this._currentAnimationLoop(ee,y),y.detectedPlanes&&this.dispatchEvent({type:"planesdetected",data:y}),this._xrFrame=null}const Dk=new Pw,AT=new Yr,A6=new Ul,x6=new hf,w6=new x0,xT=new Xa,cS=new Ul;class see{constructor(y,E={}){this.isRenderer=!0;const{logarithmicDepthBuffer:z=!1,alpha:ne=!0,depth:ie=!0,stencil:se=!1,antialias:ae=!1,samples:he=0,getFallback:pe=null,colorBufferType:ve=Hc,multiview:xe=!1}=E;this.domElement=y.getDomElement(),this.backend=y,this.samples=he||ae===!0?4:0,this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.alpha=ne,this.logarithmicDepthBuffer=z,this.outputColorSpace=Wf,this.toneMapping=bc,this.toneMappingExposure=1,this.sortObjects=!0,this.depth=ie,this.stencil=se,this.info=new WK,this.overrideNodes={modelViewMatrix:null,modelNormalViewMatrix:null},this.library=new bk,this.lighting=new q$,this._getFallback=pe,this._pixelRatio=1,this._width=this.domElement.width,this._height=this.domElement.height,this._viewport=new Ul(0,0,this._width,this._height),this._scissor=new Ul(0,0,this._width,this._height),this._scissorTest=!1,this._attributes=null,this._geometries=null,this._nodes=null,this._animation=null,this._bindings=null,this._objects=null,this._pipelines=null,this._bundles=null,this._renderLists=null,this._renderContexts=null,this._textures=null,this._background=null,this._quad=new LM(new $d),this._quad.material.name="Renderer_output",this._currentRenderContext=null,this._opaqueSort=null,this._transparentSort=null,this._frameBufferTarget=null;const Se=this.alpha===!0?0:1;this._clearColor=new jD(0,0,0,Se),this._clearDepth=1,this._clearStencil=0,this._renderTarget=null,this._activeCubeFace=0,this._activeMipmapLevel=0,this._outputRenderTarget=null,this._mrt=null,this._renderObjectFunction=null,this._currentRenderObjectFunction=null,this._currentRenderBundle=null,this._handleObjectFunction=this._renderObjectDirect,this._isDeviceLost=!1,this.onDeviceLost=this._onDeviceLost,this._colorBufferType=ve,this._initialized=!1,this._initPromise=null,this._compilationPromises=null,this.transparent=!0,this.opaque=!0,this.shadowMap={enabled:!1,type:Qv},this.xr=new _$(this,xe),this.debug={checkShaderErrors:!0,onShaderError:null,getShaderAsync:(Be,De,Re)=>Vl(this,null,function*(){yield this.compileAsync(Be,De);const Oe=this._renderLists.get(Be,De),Le=this._renderContexts.get(Be,De,this._renderTarget),Je=Be.overrideMaterial||Re.material,$e=this._objects.get(Re,Je,Be,De,Oe.lightsNode,Le,Le.clippingContext),{fragmentShader:_e,vertexShader:st}=$e.getNodeBuilderState();return{fragmentShader:_e,vertexShader:st}})}}init(){return Vl(this,null,function*(){if(this._initialized)throw new Error("Renderer: Backend has already been initialized.");return this._initPromise!==null?this._initPromise:(this._initPromise=new Promise((y,E)=>Vl(this,null,function*(){let z=this.backend;try{yield z.init(this)}catch(ne){if(this._getFallback!==null)try{this.backend=z=this._getFallback(ne),yield z.init(this)}catch(ie){E(ie);return}else{E(ne);return}}this._nodes=new Z$(this,z),this._animation=new OK(this._nodes,this.info),this._attributes=new GK(z),this._background=new u$(this,this._nodes),this._geometries=new XK(this._attributes,this.info),this._textures=new sJ(this,z,this.info),this._pipelines=new KK(z,this._nodes),this._bindings=new JK(z,this._nodes,this._textures,this._attributes,this._pipelines,this.info),this._objects=new HK(this,this._nodes,this._geometries,this._pipelines,this._bindings,this.info),this._renderLists=new $K(this.lighting),this._bundles=new K$,this._renderContexts=new rJ,this._animation.start(),this._initialized=!0,y(this)})),this._initPromise)})}get coordinateSystem(){return this.backend.coordinateSystem}compileAsync(y,E,z=null){return Vl(this,null,function*(){if(this._isDeviceLost===!0)return;this._initialized===!1&&(yield this.init());const ne=this._nodes.nodeFrame,ie=ne.renderId,se=this._currentRenderContext,ae=this._currentRenderObjectFunction,he=this._compilationPromises,pe=y.isScene===!0?y:Dk;z===null&&(z=y);const ve=this._renderTarget,xe=this._renderContexts.get(z,E,ve),Se=this._activeMipmapLevel,Be=[];this._currentRenderContext=xe,this._currentRenderObjectFunction=this.renderObject,this._handleObjectFunction=this._createObjectPipeline,this._compilationPromises=Be,ne.renderId++,ne.update(),xe.depth=this.depth,xe.stencil=this.stencil,xe.clippingContext||(xe.clippingContext=new yT),xe.clippingContext.updateGlobal(pe,E),pe.onBeforeRender(this,y,E,ve);const De=this._renderLists.get(y,E);if(De.begin(),this._projectObject(y,E,0,De,xe.clippingContext),z!==y&&z.traverseVisible(function($e){$e.isLight&&$e.layers.test(E.layers)&&De.pushLight($e)}),De.finish(),ve!==null){this._textures.updateRenderTarget(ve,Se);const $e=this._textures.get(ve);xe.textures=$e.textures,xe.depthTexture=$e.depthTexture}else xe.textures=null,xe.depthTexture=null;this._background.update(pe,De,xe);const Re=De.opaque,Oe=De.transparent,Le=De.transparentDoublePass,Je=De.lightsNode;this.opaque===!0&&Re.length>0&&this._renderObjects(Re,E,pe,Je),this.transparent===!0&&Oe.length>0&&this._renderTransparents(Oe,Le,E,pe,Je),ne.renderId=ie,this._currentRenderContext=se,this._currentRenderObjectFunction=ae,this._compilationPromises=he,this._handleObjectFunction=this._renderObjectDirect,yield Promise.all(Be)})}renderAsync(y,E){return Vl(this,null,function*(){this._initialized===!1&&(yield this.init()),this._renderScene(y,E)})}waitForGPU(){return Vl(this,null,function*(){yield this.backend.waitForGPU()})}set highPrecision(y){y===!0?(this.overrideNodes.modelViewMatrix=Q8,this.overrideNodes.modelNormalViewMatrix=Z8):this.highPrecision&&(this.overrideNodes.modelViewMatrix=null,this.overrideNodes.modelNormalViewMatrix=null)}get highPrecision(){return this.overrideNodes.modelViewMatrix===Q8&&this.overrideNodes.modelNormalViewMatrix===Z8}setMRT(y){return this._mrt=y,this}getMRT(){return this._mrt}getColorBufferType(){return this._colorBufferType}_onDeviceLost(y){let E=`THREE.WebGPURenderer: ${y.api} Device Lost:
|
|
|
|
Message: ${y.message}`;y.reason&&(E+=`
|
|
Reason: ${y.reason}`),console.error(E),this._isDeviceLost=!0}_renderBundle(y,E,z){const{bundleGroup:ne,camera:ie,renderList:se}=y,ae=this._currentRenderContext,he=this._bundles.get(ne,ie),pe=this.backend.get(he);pe.renderContexts===void 0&&(pe.renderContexts=new Set);const ve=ne.version!==pe.version,xe=pe.renderContexts.has(ae)===!1||ve;if(pe.renderContexts.add(ae),xe){this.backend.beginBundle(ae),(pe.renderObjects===void 0||ve)&&(pe.renderObjects=[]),this._currentRenderBundle=he;const{transparentDoublePass:Se,transparent:Be,opaque:De}=se;this.opaque===!0&&De.length>0&&this._renderObjects(De,ie,E,z),this.transparent===!0&&Be.length>0&&this._renderTransparents(Be,Se,ie,E,z),this._currentRenderBundle=null,this.backend.finishBundle(ae,he),pe.version=ne.version}else{const{renderObjects:Se}=pe;for(let Be=0,De=Se.length;Be<De;Be++){const Re=Se[Be];this._nodes.needsRefresh(Re)&&(this._nodes.updateBefore(Re),this._nodes.updateForRender(Re),this._bindings.updateForRender(Re),this._nodes.updateAfter(Re))}}this.backend.addBundle(ae,he)}render(y,E){if(this._initialized===!1)return console.warn("THREE.Renderer: .render() called before the backend is initialized. Try using .renderAsync() instead."),this.renderAsync(y,E);this._renderScene(y,E)}_getFrameBufferTarget(){const{currentToneMapping:y,currentColorSpace:E}=this;if(y!==bc===!1&&E!==Fm===!1)return null;const{width:ie,height:se}=this.getDrawingBufferSize(AT),{depth:ae,stencil:he}=this;let pe=this._frameBufferTarget;pe===null&&(pe=new p0(ie,se,{depthBuffer:ae,stencilBuffer:he,type:this._colorBufferType,format:Ws,colorSpace:Fm,generateMipmaps:!1,minFilter:qu,magFilter:qu,samples:this.samples}),pe.isPostProcessingRenderTarget=!0,this._frameBufferTarget=pe);const ve=this.getOutputRenderTarget();return pe.depthBuffer=ae,pe.stencilBuffer=he,ve!==null?pe.setSize(ve.width,ve.height,ve.depth):pe.setSize(ie,se,1),pe.viewport.copy(this._viewport),pe.scissor.copy(this._scissor),pe.viewport.multiplyScalar(this._pixelRatio),pe.scissor.multiplyScalar(this._pixelRatio),pe.scissorTest=this._scissorTest,pe.multiview=ve!==null?ve.multiview:!1,pe.resolveDepthBuffer=ve!==null?ve.resolveDepthBuffer:!0,pe.autoAllocateDepthBuffer=ve!==null?ve.autoAllocateDepthBuffer:!1,pe}_renderScene(y,E,z=!0){if(this._isDeviceLost===!0)return;const ne=z?this._getFrameBufferTarget():null,ie=this._nodes.nodeFrame,se=ie.renderId,ae=this._currentRenderContext,he=this._currentRenderObjectFunction,pe=y.isScene===!0?y:Dk,ve=this._renderTarget||this._outputRenderTarget,xe=this._activeCubeFace,Se=this._activeMipmapLevel;let Be;ne!==null?(Be=ne,this.setRenderTarget(Be)):Be=ve;const De=this._renderContexts.get(y,E,Be);this._currentRenderContext=De,this._currentRenderObjectFunction=this._renderObjectFunction||this.renderObject,this.info.calls++,this.info.render.calls++,this.info.render.frameCalls++,ie.renderId=this.info.calls;const Re=this.coordinateSystem,Oe=this.xr;if(E.coordinateSystem!==Re&&Oe.isPresenting===!1&&(E.coordinateSystem=Re,E.updateProjectionMatrix(),E.isArrayCamera))for(const Tn of E.cameras)Tn.coordinateSystem=Re,Tn.updateProjectionMatrix();y.matrixWorldAutoUpdate===!0&&y.updateMatrixWorld(),E.parent===null&&E.matrixWorldAutoUpdate===!0&&E.updateMatrixWorld(),Oe.enabled===!0&&Oe.isPresenting===!0&&(Oe.cameraAutoUpdate===!0&&Oe.updateCamera(E),E=Oe.getCamera());let Le=this._viewport,Je=this._scissor,$e=this._pixelRatio;Be!==null&&(Le=Be.viewport,Je=Be.scissor,$e=1),this.getDrawingBufferSize(AT),A6.set(0,0,AT.width,AT.height);const _e=Le.minDepth===void 0?0:Le.minDepth,st=Le.maxDepth===void 0?1:Le.maxDepth;De.viewportValue.copy(Le).multiplyScalar($e).floor(),De.viewportValue.width>>=Se,De.viewportValue.height>>=Se,De.viewportValue.minDepth=_e,De.viewportValue.maxDepth=st,De.viewport=De.viewportValue.equals(A6)===!1,De.scissorValue.copy(Je).multiplyScalar($e).floor(),De.scissor=this._scissorTest&&De.scissorValue.equals(A6)===!1,De.scissorValue.width>>=Se,De.scissorValue.height>>=Se,De.clippingContext||(De.clippingContext=new yT),De.clippingContext.updateGlobal(pe,E),pe.onBeforeRender(this,y,E,Be);const ct=E.isArrayCamera?w6:x6;E.isArrayCamera||(xT.multiplyMatrices(E.projectionMatrix,E.matrixWorldInverse),ct.setFromProjectionMatrix(xT,Re));const ut=this._renderLists.get(y,E);if(ut.begin(),this._projectObject(y,E,0,ut,De.clippingContext),ut.finish(),this.sortObjects===!0&&ut.sort(this._opaqueSort,this._transparentSort),Be!==null){this._textures.updateRenderTarget(Be,Se);const Tn=this._textures.get(Be);De.textures=Tn.textures,De.depthTexture=Tn.depthTexture,De.width=Tn.width,De.height=Tn.height,De.renderTarget=Be,De.depth=Be.depthBuffer,De.stencil=Be.stencilBuffer}else De.textures=null,De.depthTexture=null,De.width=this.domElement.width,De.height=this.domElement.height,De.depth=this.depth,De.stencil=this.stencil;De.width>>=Se,De.height>>=Se,De.activeCubeFace=xe,De.activeMipmapLevel=Se,De.occlusionQueryCount=ut.occlusionQueryCount,this._background.update(pe,ut,De),De.camera=E,this.backend.beginRender(De);const{bundles:ht,lightsNode:pt,transparentDoublePass:gt,transparent:zt,opaque:cn}=ut;return ht.length>0&&this._renderBundles(ht,pe,pt),this.opaque===!0&&cn.length>0&&this._renderObjects(cn,E,pe,pt),this.transparent===!0&&zt.length>0&&this._renderTransparents(zt,gt,E,pe,pt),this.backend.finishRender(De),ie.renderId=se,this._currentRenderContext=ae,this._currentRenderObjectFunction=he,ne!==null&&(this.setRenderTarget(ve,xe,Se),this._renderOutput(Be)),pe.onAfterRender(this,y,E,Be),De}_setXRLayerSize(y,E){this._width=y,this._height=E,this.setViewport(0,0,y,E)}_renderOutput(y){const E=this._quad;this._nodes.hasOutputChange(y.texture)&&(E.material.fragmentNode=this._nodes.getOutputNode(y.texture),E.material.needsUpdate=!0);const z=this.autoClear,ne=this.xr.enabled;this.autoClear=!1,this.xr.enabled=!1,this._renderScene(E,E.camera,!1),this.autoClear=z,this.xr.enabled=ne}getMaxAnisotropy(){return this.backend.getMaxAnisotropy()}getActiveCubeFace(){return this._activeCubeFace}getActiveMipmapLevel(){return this._activeMipmapLevel}setAnimationLoop(y){return Vl(this,null,function*(){this._initialized===!1&&(yield this.init()),this._animation.setAnimationLoop(y)})}getArrayBufferAsync(y){return Vl(this,null,function*(){return yield this.backend.getArrayBufferAsync(y)})}getContext(){return this.backend.getContext()}getPixelRatio(){return this._pixelRatio}getDrawingBufferSize(y){return y.set(this._width*this._pixelRatio,this._height*this._pixelRatio).floor()}getSize(y){return y.set(this._width,this._height)}setPixelRatio(y=1){this._pixelRatio!==y&&(this._pixelRatio=y,this.setSize(this._width,this._height,!1))}setDrawingBufferSize(y,E,z){this.xr&&this.xr.isPresenting||(this._width=y,this._height=E,this._pixelRatio=z,this.domElement.width=Math.floor(y*z),this.domElement.height=Math.floor(E*z),this.setViewport(0,0,y,E),this._initialized&&this.backend.updateSize())}setSize(y,E,z=!0){this.xr&&this.xr.isPresenting||(this._width=y,this._height=E,this.domElement.width=Math.floor(y*this._pixelRatio),this.domElement.height=Math.floor(E*this._pixelRatio),z===!0&&(this.domElement.style.width=y+"px",this.domElement.style.height=E+"px"),this.setViewport(0,0,y,E),this._initialized&&this.backend.updateSize())}setOpaqueSort(y){this._opaqueSort=y}setTransparentSort(y){this._transparentSort=y}getScissor(y){const E=this._scissor;return y.x=E.x,y.y=E.y,y.width=E.width,y.height=E.height,y}setScissor(y,E,z,ne){const ie=this._scissor;y.isVector4?ie.copy(y):ie.set(y,E,z,ne)}getScissorTest(){return this._scissorTest}setScissorTest(y){this._scissorTest=y,this.backend.setScissorTest(y)}getViewport(y){return y.copy(this._viewport)}setViewport(y,E,z,ne,ie=0,se=1){const ae=this._viewport;y.isVector4?ae.copy(y):ae.set(y,E,z,ne),ae.minDepth=ie,ae.maxDepth=se}getClearColor(y){return y.copy(this._clearColor)}setClearColor(y,E=1){this._clearColor.set(y),this._clearColor.a=E}getClearAlpha(){return this._clearColor.a}setClearAlpha(y){this._clearColor.a=y}getClearDepth(){return this._clearDepth}setClearDepth(y){this._clearDepth=y}getClearStencil(){return this._clearStencil}setClearStencil(y){this._clearStencil=y}isOccluded(y){const E=this._currentRenderContext;return E&&this.backend.isOccluded(E,y)}clear(y=!0,E=!0,z=!0){if(this._initialized===!1)return console.warn("THREE.Renderer: .clear() called before the backend is initialized. Try using .clearAsync() instead."),this.clearAsync(y,E,z);const ne=this._renderTarget||this._getFrameBufferTarget();let ie=null;if(ne!==null){this._textures.updateRenderTarget(ne);const se=this._textures.get(ne);ie=this._renderContexts.getForClear(ne),ie.textures=se.textures,ie.depthTexture=se.depthTexture,ie.width=se.width,ie.height=se.height,ie.renderTarget=ne,ie.depth=ne.depthBuffer,ie.stencil=ne.stencilBuffer,ie.clearColorValue=this.backend.getClearColor(),ie.activeCubeFace=this.getActiveCubeFace(),ie.activeMipmapLevel=this.getActiveMipmapLevel()}this.backend.clear(y,E,z,ie),ne!==null&&this._renderTarget===null&&this._renderOutput(ne)}clearColor(){return this.clear(!0,!1,!1)}clearDepth(){return this.clear(!1,!0,!1)}clearStencil(){return this.clear(!1,!1,!0)}clearAsync(y=!0,E=!0,z=!0){return Vl(this,null,function*(){this._initialized===!1&&(yield this.init()),this.clear(y,E,z)})}clearColorAsync(){return Vl(this,null,function*(){this.clearAsync(!0,!1,!1)})}clearDepthAsync(){return Vl(this,null,function*(){this.clearAsync(!1,!0,!1)})}clearStencilAsync(){return Vl(this,null,function*(){this.clearAsync(!1,!1,!0)})}get currentToneMapping(){return this.isOutputTarget?this.toneMapping:bc}get currentColorSpace(){return this.isOutputTarget?this.outputColorSpace:Fm}get isOutputTarget(){return this._renderTarget===this._outputRenderTarget||this._renderTarget===null}dispose(){this.info.dispose(),this.backend.dispose(),this._animation.dispose(),this._objects.dispose(),this._pipelines.dispose(),this._nodes.dispose(),this._bindings.dispose(),this._renderLists.dispose(),this._renderContexts.dispose(),this._textures.dispose(),this._frameBufferTarget!==null&&this._frameBufferTarget.dispose(),Object.values(this.backend.timestampQueryPool).forEach(y=>{y!==null&&y.dispose()}),this.setRenderTarget(null),this.setAnimationLoop(null)}setRenderTarget(y,E=0,z=0){this._renderTarget=y,this._activeCubeFace=E,this._activeMipmapLevel=z}getRenderTarget(){return this._renderTarget}setOutputRenderTarget(y){this._outputRenderTarget=y}getOutputRenderTarget(){return this._outputRenderTarget}_resetXRState(){this.backend.setXRTarget(null),this.setOutputRenderTarget(null),this.setRenderTarget(null),this._frameBufferTarget.dispose(),this._frameBufferTarget=null}setRenderObjectFunction(y){this._renderObjectFunction=y}getRenderObjectFunction(){return this._renderObjectFunction}compute(y){if(this._isDeviceLost===!0)return;if(this._initialized===!1)return console.warn("THREE.Renderer: .compute() called before the backend is initialized. Try using .computeAsync() instead."),this.computeAsync(y);const E=this._nodes.nodeFrame,z=E.renderId;this.info.calls++,this.info.compute.calls++,this.info.compute.frameCalls++,E.renderId=this.info.calls;const ne=this.backend,ie=this._pipelines,se=this._bindings,ae=this._nodes,he=Array.isArray(y)?y:[y];if(he[0]===void 0||he[0].isComputeNode!==!0)throw new Error("THREE.Renderer: .compute() expects a ComputeNode.");ne.beginCompute(y);for(const pe of he){if(ie.has(pe)===!1){const Se=()=>{pe.removeEventListener("dispose",Se),ie.delete(pe),se.delete(pe),ae.delete(pe)};pe.addEventListener("dispose",Se);const Be=pe.onInitFunction;Be!==null&&Be.call(pe,{renderer:this})}ae.updateForCompute(pe),se.updateForCompute(pe);const ve=se.getForCompute(pe),xe=ie.getForCompute(pe,ve);ne.compute(y,pe,ve,xe)}ne.finishCompute(y),E.renderId=z}computeAsync(y){return Vl(this,null,function*(){this._initialized===!1&&(yield this.init()),this.compute(y)})}hasFeatureAsync(y){return Vl(this,null,function*(){return this._initialized===!1&&(yield this.init()),this.backend.hasFeature(y)})}resolveTimestampsAsync(y="render"){return Vl(this,null,function*(){return this._initialized===!1&&(yield this.init()),this.backend.resolveTimestampsAsync(y)})}hasFeature(y){return this._initialized===!1?(console.warn("THREE.Renderer: .hasFeature() called before the backend is initialized. Try using .hasFeatureAsync() instead."),!1):this.backend.hasFeature(y)}hasInitialized(){return this._initialized}initTextureAsync(y){return Vl(this,null,function*(){this._initialized===!1&&(yield this.init()),this._textures.updateTexture(y)})}initTexture(y){this._initialized===!1&&console.warn("THREE.Renderer: .initTexture() called before the backend is initialized. Try using .initTextureAsync() instead."),this._textures.updateTexture(y)}copyFramebufferToTexture(y,E=null){if(E!==null)if(E.isVector2)E=cS.set(E.x,E.y,y.image.width,y.image.height).floor();else if(E.isVector4)E=cS.copy(E).floor();else{console.error("THREE.Renderer.copyFramebufferToTexture: Invalid rectangle.");return}else E=cS.set(0,0,y.image.width,y.image.height);let z=this._currentRenderContext,ne;z!==null?ne=z.renderTarget:(ne=this._renderTarget||this._getFrameBufferTarget(),ne!==null&&(this._textures.updateRenderTarget(ne),z=this._textures.get(ne))),this._textures.updateTexture(y,{renderTarget:ne}),this.backend.copyFramebufferToTexture(y,z,E)}copyTextureToTexture(y,E,z=null,ne=null,ie=0,se=0){this._textures.updateTexture(y),this._textures.updateTexture(E),this.backend.copyTextureToTexture(y,E,z,ne,ie,se)}readRenderTargetPixelsAsync(y,E,z,ne,ie,se=0,ae=0){return Vl(this,null,function*(){return this.backend.copyTextureToBuffer(y.textures[se],E,z,ne,ie,ae)})}_projectObject(y,E,z,ne,ie){if(y.visible===!1)return;if(y.layers.test(E.layers)){if(y.isGroup)z=y.renderOrder,y.isClippingGroup&&y.enabled&&(ie=ie.getGroupContext(y));else if(y.isLOD)y.autoUpdate===!0&&y.update(E);else if(y.isLight)ne.pushLight(y);else if(y.isSprite){const he=E.isArrayCamera?w6:x6;if(!y.frustumCulled||he.intersectsSprite(y,E)){this.sortObjects===!0&&cS.setFromMatrixPosition(y.matrixWorld).applyMatrix4(xT);const{geometry:pe,material:ve}=y;ve.visible&&ne.push(y,pe,ve,z,cS.z,null,ie)}}else if(y.isLineLoop)console.error("THREE.Renderer: Objects of type THREE.LineLoop are not supported. Please use THREE.Line or THREE.LineSegments.");else if(y.isMesh||y.isLine||y.isPoints){const he=E.isArrayCamera?w6:x6;if(!y.frustumCulled||he.intersectsObject(y,E)){const{geometry:pe,material:ve}=y;if(this.sortObjects===!0&&(pe.boundingSphere===null&&pe.computeBoundingSphere(),cS.copy(pe.boundingSphere.center).applyMatrix4(y.matrixWorld).applyMatrix4(xT)),Array.isArray(ve)){const xe=pe.groups;for(let Se=0,Be=xe.length;Se<Be;Se++){const De=xe[Se],Re=ve[De.materialIndex];Re&&Re.visible&&ne.push(y,pe,Re,z,cS.z,De,ie)}}else ve.visible&&ne.push(y,pe,ve,z,cS.z,null,ie)}}}if(y.isBundleGroup===!0&&this.backend.beginBundle!==void 0){const he=ne;ne=this._renderLists.get(y,E),ne.begin(),he.pushBundle({bundleGroup:y,camera:E,renderList:ne}),ne.finish()}const ae=y.children;for(let he=0,pe=ae.length;he<pe;he++)this._projectObject(ae[he],E,z,ne,ie)}_renderBundles(y,E,z){for(const ne of y)this._renderBundle(ne,E,z)}_renderTransparents(y,E,z,ne,ie){if(E.length>0){for(const{material:se}of E)se.side=wc;this._renderObjects(E,z,ne,ie,"backSide");for(const{material:se}of E)se.side=hp;this._renderObjects(y,z,ne,ie);for(const{material:se}of E)se.side=Fh}else this._renderObjects(y,z,ne,ie)}_renderObjects(y,E,z,ne,ie=null){for(let se=0,ae=y.length;se<ae;se++){const{object:he,geometry:pe,material:ve,group:xe,clippingContext:Se}=y[se];this._currentRenderObjectFunction(he,z,E,pe,ve,xe,ne,Se,ie)}}renderObject(y,E,z,ne,ie,se,ae,he=null,pe=null){let ve,xe,Se;if(y.onBeforeRender(this,E,z,ne,ie,se),ie.allowOverride===!0&&E.overrideMaterial!==null){const Be=E.overrideMaterial;ie.positionNode&&ie.positionNode.isNode&&(ve=Be.positionNode,Be.positionNode=ie.positionNode),Be.alphaTest=ie.alphaTest,Be.alphaMap=ie.alphaMap,Be.transparent=ie.transparent||ie.transmission>0,Be.isShadowPassMaterial&&(Be.side=ie.shadowSide===null?ie.side:ie.shadowSide,ie.depthNode&&ie.depthNode.isNode&&(Se=Be.depthNode,Be.depthNode=ie.depthNode),ie.castShadowNode&&ie.castShadowNode.isNode&&(xe=Be.colorNode,Be.colorNode=ie.castShadowNode),ie.castShadowPositionNode&&ie.castShadowPositionNode.isNode&&(ve=Be.positionNode,Be.positionNode=ie.castShadowPositionNode)),ie=Be}ie.transparent===!0&&ie.side===Fh&&ie.forceSinglePass===!1?(ie.side=wc,this._handleObjectFunction(y,ie,E,z,ae,se,he,"backSide"),ie.side=hp,this._handleObjectFunction(y,ie,E,z,ae,se,he,pe),ie.side=Fh):this._handleObjectFunction(y,ie,E,z,ae,se,he,pe),ve!==void 0&&(E.overrideMaterial.positionNode=ve),Se!==void 0&&(E.overrideMaterial.depthNode=Se),xe!==void 0&&(E.overrideMaterial.colorNode=xe),y.onAfterRender(this,E,z,ne,ie,se)}_renderObjectDirect(y,E,z,ne,ie,se,ae,he){const pe=this._objects.get(y,E,z,ne,ie,this._currentRenderContext,ae,he);pe.drawRange=y.geometry.drawRange,pe.group=se;const ve=this._nodes.needsRefresh(pe);ve&&(this._nodes.updateBefore(pe),this._geometries.updateForRender(pe),this._nodes.updateForRender(pe),this._bindings.updateForRender(pe)),this._pipelines.updateForRender(pe),this._currentRenderBundle!==null&&(this.backend.get(this._currentRenderBundle).renderObjects.push(pe),pe.bundle=this._currentRenderBundle.bundleGroup),this.backend.draw(pe,this.info),ve&&this._nodes.updateAfter(pe)}_createObjectPipeline(y,E,z,ne,ie,se,ae,he){const pe=this._objects.get(y,E,z,ne,ie,this._currentRenderContext,ae,he);pe.drawRange=y.geometry.drawRange,pe.group=se,this._nodes.updateBefore(pe),this._geometries.updateForRender(pe),this._nodes.updateForRender(pe),this._bindings.updateForRender(pe),this._pipelines.getForRender(pe,this._compilationPromises),this._nodes.updateAfter(pe)}get compile(){return this.compileAsync}}class S6{constructor(y=""){this.name=y,this.visibility=0}setVisibility(y){this.visibility|=y}clone(){return Object.assign(new this.constructor,this)}}function aee(ee){return ee+(lS-ee%lS)%lS}class Nk extends S6{constructor(y,E=null){super(y),this.isBuffer=!0,this.bytesPerElement=Float32Array.BYTES_PER_ELEMENT,this._buffer=E}get byteLength(){return aee(this._buffer.byteLength)}get buffer(){return this._buffer}update(){return!0}}class Fk extends Nk{constructor(y,E=null){super(y,E),this.isUniformBuffer=!0}}let lee=0;class Lk extends Fk{constructor(y,E){super("UniformBuffer_"+lee++,y?y.value:null),this.nodeUniform=y,this.groupNode=E}get buffer(){return this.nodeUniform.value}}class uee extends Fk{constructor(y){super(y),this.isUniformsGroup=!0,this._values=null,this.uniforms=[]}addUniform(y){return this.uniforms.push(y),this}removeUniform(y){const E=this.uniforms.indexOf(y);return E!==-1&&this.uniforms.splice(E,1),this}get values(){return this._values===null&&(this._values=Array.from(this.buffer)),this._values}get buffer(){let y=this._buffer;if(y===null){const E=this.byteLength;y=new Float32Array(new ArrayBuffer(E)),this._buffer=y}return y}get byteLength(){const y=this.bytesPerElement;let E=0;for(let z=0,ne=this.uniforms.length;z<ne;z++){const ie=this.uniforms[z],se=ie.boundary,ae=ie.itemSize*y,he=E%lS,pe=he%se,ve=he+pe;E+=pe,ve!==0&&lS-ve<ae&&(E+=lS-ve),ie.offset=E/y,E+=ae}return Math.ceil(E/lS)*lS}update(){let y=!1;for(const E of this.uniforms)this.updateByType(E)===!0&&(y=!0);return y}updateByType(y){if(y.isNumberUniform)return this.updateNumber(y);if(y.isVector2Uniform)return this.updateVector2(y);if(y.isVector3Uniform)return this.updateVector3(y);if(y.isVector4Uniform)return this.updateVector4(y);if(y.isColorUniform)return this.updateColor(y);if(y.isMatrix3Uniform)return this.updateMatrix3(y);if(y.isMatrix4Uniform)return this.updateMatrix4(y);console.error("THREE.WebGPUUniformsGroup: Unsupported uniform type.",y)}updateNumber(y){let E=!1;const z=this.values,ne=y.getValue(),ie=y.offset,se=y.getType();if(z[ie]!==ne){const ae=this._getBufferForType(se);ae[ie]=z[ie]=ne,E=!0}return E}updateVector2(y){let E=!1;const z=this.values,ne=y.getValue(),ie=y.offset,se=y.getType();if(z[ie+0]!==ne.x||z[ie+1]!==ne.y){const ae=this._getBufferForType(se);ae[ie+0]=z[ie+0]=ne.x,ae[ie+1]=z[ie+1]=ne.y,E=!0}return E}updateVector3(y){let E=!1;const z=this.values,ne=y.getValue(),ie=y.offset,se=y.getType();if(z[ie+0]!==ne.x||z[ie+1]!==ne.y||z[ie+2]!==ne.z){const ae=this._getBufferForType(se);ae[ie+0]=z[ie+0]=ne.x,ae[ie+1]=z[ie+1]=ne.y,ae[ie+2]=z[ie+2]=ne.z,E=!0}return E}updateVector4(y){let E=!1;const z=this.values,ne=y.getValue(),ie=y.offset,se=y.getType();if(z[ie+0]!==ne.x||z[ie+1]!==ne.y||z[ie+2]!==ne.z||z[ie+4]!==ne.w){const ae=this._getBufferForType(se);ae[ie+0]=z[ie+0]=ne.x,ae[ie+1]=z[ie+1]=ne.y,ae[ie+2]=z[ie+2]=ne.z,ae[ie+3]=z[ie+3]=ne.w,E=!0}return E}updateColor(y){let E=!1;const z=this.values,ne=y.getValue(),ie=y.offset;if(z[ie+0]!==ne.r||z[ie+1]!==ne.g||z[ie+2]!==ne.b){const se=this.buffer;se[ie+0]=z[ie+0]=ne.r,se[ie+1]=z[ie+1]=ne.g,se[ie+2]=z[ie+2]=ne.b,E=!0}return E}updateMatrix3(y){let E=!1;const z=this.values,ne=y.getValue().elements,ie=y.offset;if(z[ie+0]!==ne[0]||z[ie+1]!==ne[1]||z[ie+2]!==ne[2]||z[ie+4]!==ne[3]||z[ie+5]!==ne[4]||z[ie+6]!==ne[5]||z[ie+8]!==ne[6]||z[ie+9]!==ne[7]||z[ie+10]!==ne[8]){const se=this.buffer;se[ie+0]=z[ie+0]=ne[0],se[ie+1]=z[ie+1]=ne[1],se[ie+2]=z[ie+2]=ne[2],se[ie+4]=z[ie+4]=ne[3],se[ie+5]=z[ie+5]=ne[4],se[ie+6]=z[ie+6]=ne[5],se[ie+8]=z[ie+8]=ne[6],se[ie+9]=z[ie+9]=ne[7],se[ie+10]=z[ie+10]=ne[8],E=!0}return E}updateMatrix4(y){let E=!1;const z=this.values,ne=y.getValue().elements,ie=y.offset;return hee(z,ne,ie)===!1&&(this.buffer.set(ne,ie),cee(z,ne,ie),E=!0),E}_getBufferForType(y){return y==="int"||y==="ivec2"||y==="ivec3"||y==="ivec4"?new Int32Array(this.buffer.buffer):y==="uint"||y==="uvec2"||y==="uvec3"||y==="uvec4"?new Uint32Array(this.buffer.buffer):this.buffer}}function cee(ee,y,E){for(let z=0,ne=y.length;z<ne;z++)ee[E+z]=y[z]}function hee(ee,y,E){for(let z=0,ne=y.length;z<ne;z++)if(ee[E+z]!==y[z])return!1;return!0}let dee=0;class Ik extends uee{constructor(y,E){super(y),this.id=dee++,this.groupNode=E,this.isNodeUniformsGroup=!0}}let fee=0;class pee extends S6{constructor(y,E){super(y),this.id=fee++,this.texture=E,this.version=E?E.version:0,this.store=!1,this.generation=null,this.isSampledTexture=!0}needsBindingsUpdate(y){const{texture:E}=this;return y!==this.generation?(this.generation=y,!0):E.isVideoTexture}update(){const{texture:y,version:E}=this;return E!==y.version?(this.version=y.version,!0):!1}}class wT extends pee{constructor(y,E,z,ne=null){super(y,E?E.value:null),this.textureNode=E,this.groupNode=z,this.access=ne}needsBindingsUpdate(y){return this.textureNode.value!==this.texture||super.needsBindingsUpdate(y)}update(){const{textureNode:y}=this;return this.texture!==y.value?(this.texture=y.value,!0):super.update()}}class kk extends wT{constructor(y,E,z,ne=null){super(y,E,z,ne),this.isSampledCubeTexture=!0}}class Ok extends wT{constructor(y,E,z,ne=null){super(y,E,z,ne),this.isSampledTexture3D=!0}}const gee={textureDimensions:"textureSize",equals:"equal"},mee={low:"lowp",medium:"mediump",high:"highp"},Rk={swizzleAssign:!0,storageBuffer:!1},zk={perspective:"smooth",linear:"noperspective"},Uk={centroid:"centroid","flat first":"flat","flat either":"flat"},Hk=`
|
|
precision highp float;
|
|
precision highp int;
|
|
precision highp sampler2D;
|
|
precision highp sampler3D;
|
|
precision highp samplerCube;
|
|
precision highp sampler2DArray;
|
|
|
|
precision highp usampler2D;
|
|
precision highp usampler3D;
|
|
precision highp usamplerCube;
|
|
precision highp usampler2DArray;
|
|
|
|
precision highp isampler2D;
|
|
precision highp isampler3D;
|
|
precision highp isamplerCube;
|
|
precision highp isampler2DArray;
|
|
|
|
precision lowp sampler2DShadow;
|
|
precision lowp sampler2DArrayShadow;
|
|
precision lowp samplerCubeShadow;
|
|
`;class vee extends wk{constructor(y,E){super(y,E,new Q$),this.uniformGroups={},this.transforms=[],this.extensions={},this.builtins={vertex:[],fragment:[],compute:[]}}needsToWorkingColorSpace(y){return y.isVideoTexture===!0&&y.colorSpace!==yp}getMethod(y){return gee[y]||y}getOutputStructName(){return""}buildFunctionCode(y){const E=y.layout,z=this.flowShaderNode(y),ne=[];for(const se of E.inputs)ne.push(this.getType(se.type)+" "+se.name);return`${this.getType(E.type)} ${E.name}( ${ne.join(", ")} ) {
|
|
|
|
${z.vars}
|
|
|
|
${z.code}
|
|
return ${z.result};
|
|
|
|
}`}setupPBO(y){const E=y.value;if(E.pbo===void 0){const z=E.array,ne=E.count*E.itemSize,{itemSize:ie}=E,se=E.array.constructor.name.toLowerCase().includes("int");let ae=se?Dm:rA;ie===2?ae=se?Qp:kg:ie===3?ae=se?Yb:Yv:ie===4&&(ae=se?oA:Ws);const he={Float32Array:Ah,Uint8Array:yh,Uint16Array:Tm,Uint32Array:Oc,Int8Array:Zv,Int16Array:iA,Int32Array:sf,Uint8ClampedArray:yh},pe=Math.pow(2,Math.ceil(Math.log2(Math.sqrt(ne/ie))));let ve=Math.ceil(ne/ie/pe);pe*ve*ie<ne&&ve++;const xe=pe*ve*ie,Se=new z.constructor(xe);Se.set(z,0),E.array=Se;const Be=new A0(E.array,pe,ve,ae,he[E.array.constructor.name]||Ah);Be.needsUpdate=!0,Be.isPBOTexture=!0;const De=new XA(Be,null,null);De.setPrecision("high"),E.pboNode=De,E.pbo=De.value,this.getUniformFromNode(E.pboNode,"texture",this.shaderStage,this.context.label)}}getPropertyName(y,E=this.shaderStage){return y.isNodeUniform&&y.node.isTextureNode!==!0&&y.node.isBufferNode!==!0?E.charAt(0)+"_"+y.name:super.getPropertyName(y,E)}generatePBO(y){const{node:E,indexNode:z}=y,ne=E.value;if(this.renderer.backend.has(ne)){const ve=this.renderer.backend.get(ne);ve.pbo=ne.pbo}const ie=this.getUniformFromNode(ne.pboNode,"texture",this.shaderStage,this.context.label),se=this.getPropertyName(ie);this.increaseUsage(z);const ae=z.build(this,"uint"),he=this.getDataFromNode(y);let pe=he.propertyName;if(pe===void 0){const ve=this.getVarFromNode(y);pe=this.getPropertyName(ve);const xe=this.getDataFromNode(E);let Se=xe.propertySizeName;Se===void 0&&(Se=pe+"Size",this.getVarFromNode(E,Se,"uint"),this.addLineFlowCode(`${Se} = uint( textureSize( ${se}, 0 ).x )`,y),xe.propertySizeName=Se);const{itemSize:Be}=ne,De="."+OP.join("").slice(0,Be),Re=`ivec2(${ae} % ${Se}, ${ae} / ${Se})`,Oe=this.generateTextureLoad(null,se,Re,null,"0");let Le="vec4";ne.pbo.type===Oc?Le="uvec4":ne.pbo.type===sf&&(Le="ivec4"),this.addLineFlowCode(`${pe} = ${Le}(${Oe})${De}`,y),he.propertyName=pe}return pe}generateTextureLoad(y,E,z,ne,ie="0"){return ne?`texelFetch( ${E}, ivec3( ${z}, ${ne} ), ${ie} )`:`texelFetch( ${E}, ${z}, ${ie} )`}generateTexture(y,E,z,ne){return y.isDepthTexture?(ne&&(z=`vec4( ${z}, ${ne} )`),`texture( ${E}, ${z} ).x`):(ne&&(z=`vec3( ${z}, ${ne} )`),`texture( ${E}, ${z} )`)}generateTextureLevel(y,E,z,ne){return`textureLod( ${E}, ${z}, ${ne} )`}generateTextureBias(y,E,z,ne){return`texture( ${E}, ${z}, ${ne} )`}generateTextureGrad(y,E,z,ne){return`textureGrad( ${E}, ${z}, ${ne[0]}, ${ne[1]} )`}generateTextureCompare(y,E,z,ne,ie,se=this.shaderStage){if(se==="fragment")return ie?`texture( ${E}, vec4( ${z}, ${ie}, ${ne} ) )`:`texture( ${E}, vec3( ${z}, ${ne} ) )`;console.error(`WebGPURenderer: THREE.DepthTexture.compareFunction() does not support ${se} shader.`)}getVars(y){const E=[],z=this.vars[y];if(z!==void 0)for(const ne of z)E.push(`${this.getVar(ne.type,ne.name,ne.count)};`);return E.join(`
|
|
`)}getUniforms(y){const E=this.uniforms[y],z=[],ne={};for(const se of E){let ae=null,he=!1;if(se.type==="texture"||se.type==="texture3D"){const ve=se.node.value;let xe="";(ve.isDataTexture===!0||ve.isData3DTexture===!0)&&(ve.type===Oc?xe="u":ve.type===sf&&(xe="i")),se.type==="texture3D"&&ve.isArrayTexture===!1?ae=`${xe}sampler3D ${se.name};`:ve.compareFunction?ve.isArrayTexture===!0?ae=`sampler2DArrayShadow ${se.name};`:ae=`sampler2DShadow ${se.name};`:ve.isArrayTexture===!0||ve.isDataArrayTexture===!0||ve.isCompressedArrayTexture===!0?ae=`${xe}sampler2DArray ${se.name};`:ae=`${xe}sampler2D ${se.name};`}else if(se.type==="cubeTexture")ae=`samplerCube ${se.name};`;else if(se.type==="buffer"){const ve=se.node,xe=this.getType(ve.bufferType),Se=ve.bufferCount,Be=Se>0?Se:"";ae=`${ve.name} {
|
|
${xe} ${se.name}[${Be}];
|
|
};
|
|
`}else ae=`${this.getVectorType(se.type)} ${this.getPropertyName(se,y)};`,he=!0;const pe=se.node.precision;if(pe!==null&&(ae=mee[pe]+" "+ae),he){ae=" "+ae;const ve=se.groupNode.name;(ne[ve]||(ne[ve]=[])).push(ae)}else ae="uniform "+ae,z.push(ae)}let ie="";for(const se in ne){const ae=ne[se];ie+=this._getGLSLUniformStruct(y+"_"+se,ae.join(`
|
|
`))+`
|
|
`}return ie+=z.join(`
|
|
`),ie}getTypeFromAttribute(y){let E=super.getTypeFromAttribute(y);if(/^[iu]/.test(E)&&y.gpuType!==sf){let z=y;y.isInterleavedBufferAttribute&&(z=y.data);const ne=z.array;ne instanceof Uint32Array||ne instanceof Int32Array||(E=E.slice(1))}return E}getAttributes(y){let E="";if(y==="vertex"||y==="compute"){const z=this.getAttributesArray();let ne=0;for(const ie of z)E+=`layout( location = ${ne++} ) in ${ie.type} ${ie.name};
|
|
`}return E}getStructMembers(y){const E=[];for(const z of y.members)E.push(` ${z.type} ${z.name};`);return E.join(`
|
|
`)}getStructs(y){const E=[],z=this.structs[y],ne=[];for(const ie of z)if(ie.output)for(const se of ie.members)ne.push(`layout( location = ${se.index} ) out ${se.type} ${se.name};`);else{let se="struct "+ie.name+` {
|
|
`;se+=this.getStructMembers(ie),se+=`
|
|
};
|
|
`,E.push(se)}return ne.length===0&&ne.push("layout( location = 0 ) out vec4 fragColor;"),`
|
|
`+ne.join(`
|
|
`)+`
|
|
|
|
`+E.join(`
|
|
`)}getVaryings(y){let E="";const z=this.varyings;if(y==="vertex"||y==="compute")for(const ne of z){y==="compute"&&(ne.needsInterpolation=!0);const ie=this.getType(ne.type);if(ne.needsInterpolation)if(ne.interpolationType){const se=zk[ne.interpolationType]||ne.interpolationType,ae=Uk[ne.interpolationSampling]||"";E+=`${se} ${ae} out ${ie} ${ne.name};
|
|
`}else{const se=ie.includes("int")||ie.includes("uv")||ie.includes("iv")?"flat ":"";E+=`${se}out ${ie} ${ne.name};
|
|
`}else E+=`${ie} ${ne.name};
|
|
`}else if(y==="fragment"){for(const ne of z)if(ne.needsInterpolation){const ie=this.getType(ne.type);if(ne.interpolationType){const se=zk[ne.interpolationType]||ne.interpolationType,ae=Uk[ne.interpolationSampling]||"";E+=`${se} ${ae} in ${ie} ${ne.name};
|
|
`}else{const se=ie.includes("int")||ie.includes("uv")||ie.includes("iv")?"flat ":"";E+=`${se}in ${ie} ${ne.name};
|
|
`}}}for(const ne of this.builtins[y])E+=`${ne};
|
|
`;return E}getVertexIndex(){return"uint( gl_VertexID )"}getInstanceIndex(){return"uint( gl_InstanceID )"}getInvocationLocalIndex(){return`uint( gl_InstanceID ) % ${this.object.workgroupSize.reduce((z,ne)=>z*ne,1)}u`}getDrawIndex(){return this.renderer.backend.extensions.has("WEBGL_multi_draw")?"uint( gl_DrawID )":null}getFrontFacing(){return"gl_FrontFacing"}getFragCoord(){return"gl_FragCoord.xy"}getFragDepth(){return"gl_FragDepth"}enableExtension(y,E,z=this.shaderStage){const ne=this.extensions[z]||(this.extensions[z]=new Map);ne.has(y)===!1&&ne.set(y,{name:y,behavior:E})}getExtensions(y){const E=[];if(y==="vertex"){const ne=this.renderer.backend.extensions;this.object.isBatchedMesh&&ne.has("WEBGL_multi_draw")&&this.enableExtension("GL_ANGLE_multi_draw","require",y)}const z=this.extensions[y];if(z!==void 0)for(const{name:ne,behavior:ie}of z.values())E.push(`#extension ${ne} : ${ie}`);return E.join(`
|
|
`)}getClipDistance(){return"gl_ClipDistance"}isAvailable(y){let E=Rk[y];if(E===void 0){let z;switch(E=!1,y){case"float32Filterable":z="OES_texture_float_linear";break;case"clipDistance":z="WEBGL_clip_cull_distance";break}if(z!==void 0){const ne=this.renderer.backend.extensions;ne.has(z)&&(ne.get(z),E=!0)}Rk[y]=E}return E}isFlipY(){return!0}enableHardwareClipping(y){this.enableExtension("GL_ANGLE_clip_cull_distance","require"),this.builtins.vertex.push(`out float gl_ClipDistance[ ${y} ]`)}enableMultiview(){this.enableExtension("GL_OVR_multiview2","require","fragment"),this.enableExtension("GL_OVR_multiview2","require","vertex"),this.builtins.vertex.push("layout(num_views = 2) in")}registerTransform(y,E){this.transforms.push({varyingName:y,attributeNode:E})}getTransforms(){const y=this.transforms;let E="";for(let z=0;z<y.length;z++){const ne=y[z],ie=this.getPropertyName(ne.attributeNode);ie&&(E+=`${ne.varyingName} = ${ie};
|
|
`)}return E}_getGLSLUniformStruct(y,E){return`
|
|
layout( std140 ) uniform ${y} {
|
|
${E}
|
|
};`}_getGLSLVertexCode(y){return`#version 300 es
|
|
|
|
${this.getSignature()}
|
|
|
|
// extensions
|
|
${y.extensions}
|
|
|
|
// precision
|
|
${Hk}
|
|
|
|
// uniforms
|
|
${y.uniforms}
|
|
|
|
// varyings
|
|
${y.varyings}
|
|
|
|
// attributes
|
|
${y.attributes}
|
|
|
|
// codes
|
|
${y.codes}
|
|
|
|
void main() {
|
|
|
|
// vars
|
|
${y.vars}
|
|
|
|
// transforms
|
|
${y.transforms}
|
|
|
|
// flow
|
|
${y.flow}
|
|
|
|
gl_PointSize = 1.0;
|
|
|
|
}
|
|
`}_getGLSLFragmentCode(y){return`#version 300 es
|
|
|
|
${this.getSignature()}
|
|
|
|
// extensions
|
|
${y.extensions}
|
|
|
|
// precision
|
|
${Hk}
|
|
|
|
// uniforms
|
|
${y.uniforms}
|
|
|
|
// varyings
|
|
${y.varyings}
|
|
|
|
// codes
|
|
${y.codes}
|
|
|
|
// structs
|
|
${y.structs}
|
|
|
|
void main() {
|
|
|
|
// vars
|
|
${y.vars}
|
|
|
|
// flow
|
|
${y.flow}
|
|
|
|
}
|
|
`}buildCode(){const y=this.material!==null?{fragment:{},vertex:{}}:{compute:{}};this.sortBindingGroups();for(const E in y){let z=`// code
|
|
|
|
`;z+=this.flowCode[E];const ne=this.flowNodes[E],ie=ne[ne.length-1];for(const ae of ne){const he=this.getFlowData(ae),pe=ae.name;pe&&(z.length>0&&(z+=`
|
|
`),z+=` // flow -> ${pe}
|
|
`),z+=`${he.code}
|
|
`,ae===ie&&E!=="compute"&&(z+=`// result
|
|
`,E==="vertex"?(z+="gl_Position = ",z+=`${he.result};`):E==="fragment"&&(ae.outputNode.isOutputStructNode||(z+="fragColor = ",z+=`${he.result};`)))}const se=y[E];se.extensions=this.getExtensions(E),se.uniforms=this.getUniforms(E),se.attributes=this.getAttributes(E),se.varyings=this.getVaryings(E),se.vars=this.getVars(E),se.structs=this.getStructs(E),se.codes=this.getCodes(E),se.transforms=this.getTransforms(E),se.flow=z}this.material!==null?(this.vertexShader=this._getGLSLVertexCode(y.vertex),this.fragmentShader=this._getGLSLFragmentCode(y.fragment)):this.computeShader=this._getGLSLVertexCode(y.compute)}getUniformFromNode(y,E,z,ne=null){const ie=super.getUniformFromNode(y,E,z,ne),se=this.getDataFromNode(y,z,this.globalCache);let ae=se.uniformGPU;if(ae===void 0){const he=y.groupNode,pe=he.name,ve=this.getBindGroupArray(pe,z);if(E==="texture")ae=new wT(ie.name,ie.node,he),ve.push(ae);else if(E==="cubeTexture")ae=new kk(ie.name,ie.node,he),ve.push(ae);else if(E==="texture3D")ae=new Ok(ie.name,ie.node,he),ve.push(ae);else if(E==="buffer"){y.name=`NodeBuffer_${y.id}`,ie.name=`buffer${y.id}`;const xe=new Lk(y,he);xe.name=y.name,ve.push(xe),ae=xe}else{const xe=this.uniformGroups[z]||(this.uniformGroups[z]={});let Se=xe[pe];Se===void 0&&(Se=new Ik(z+"_"+pe,he),xe[pe]=Se,ve.push(Se)),ae=this.getNodeUniform(ie,E),Se.addUniform(ae)}se.uniformGPU=ae}return ie}}let P6=null,Pb=null;class Vk{constructor(y={}){this.parameters=Object.assign({},y),this.data=new WeakMap,this.renderer=null,this.domElement=null,this.timestampQueryPool={render:null,compute:null},this.trackTimestamp=y.trackTimestamp===!0}init(y){return Vl(this,null,function*(){this.renderer=y})}get coordinateSystem(){}beginRender(){}finishRender(){}beginCompute(){}finishCompute(){}draw(){}compute(){}createProgram(){}destroyProgram(){}createBindings(){}updateBindings(){}updateBinding(){}createRenderPipeline(){}createComputePipeline(){}needsRenderUpdate(){}getRenderCacheKey(){}createNodeBuilder(){}createSampler(){}destroySampler(){}createDefaultTexture(){}createTexture(){}updateTexture(){}generateMipmaps(){}destroyTexture(){}copyTextureToBuffer(){return Vl(this,null,function*(){})}copyTextureToTexture(){}copyFramebufferToTexture(){}createAttribute(){}createIndexAttribute(){}createStorageAttribute(){}updateAttribute(){}destroyAttribute(){}getContext(){}updateSize(){}updateViewport(){}isOccluded(){}resolveTimestampsAsync(y="render"){return Vl(this,null,function*(){if(!this.trackTimestamp){vc("WebGPURenderer: Timestamp tracking is disabled.");return}const E=this.timestampQueryPool[y];if(!E){vc(`WebGPURenderer: No timestamp query pool for type '${y}' found.`);return}const z=yield E.resolveQueriesAsync();return this.renderer.info[y].timestamp=z,z})}waitForGPU(){return Vl(this,null,function*(){})}getArrayBufferAsync(){return Vl(this,null,function*(){})}hasFeatureAsync(){return Vl(this,null,function*(){})}hasFeature(){}getMaxAnisotropy(){}getDrawingBufferSize(){return P6=P6||new Yr,this.renderer.getDrawingBufferSize(P6)}setScissorTest(){}getClearColor(){const y=this.renderer;return Pb=Pb||new jD,y.getClearColor(Pb),Pb.getRGB(Pb),Pb}getDomElement(){let y=this.domElement;return y===null&&(y=this.parameters.canvas!==void 0?this.parameters.canvas:a2(),"setAttribute"in y&&y.setAttribute("data-engine",`three.js r${cg} webgpu`),this.domElement=y),y}set(y,E){this.data.set(y,E)}get(y){let E=this.data.get(y);return E===void 0&&(E={},this.data.set(y,E)),E}has(y){return this.data.has(y)}delete(y){this.data.delete(y)}dispose(){}}let yee=0;class Aee{constructor(y,E){this.buffers=[y.bufferGPU,E],this.type=y.type,this.bufferType=y.bufferType,this.pbo=y.pbo,this.byteLength=y.byteLength,this.bytesPerElement=y.BYTES_PER_ELEMENT,this.version=y.version,this.isInteger=y.isInteger,this.activeBufferIndex=0,this.baseId=y.id}get id(){return`${this.baseId}|${this.activeBufferIndex}`}get bufferGPU(){return this.buffers[this.activeBufferIndex]}get transformBuffer(){return this.buffers[this.activeBufferIndex^1]}switchBuffers(){this.activeBufferIndex^=1}}class xee{constructor(y){this.backend=y}createAttribute(y,E){const z=this.backend,{gl:ne}=z,ie=y.array,se=y.usage||ne.STATIC_DRAW,ae=y.isInterleavedBufferAttribute?y.data:y,he=z.get(ae);let pe=he.bufferGPU;pe===void 0&&(pe=this._createBuffer(ne,E,ie,se),he.bufferGPU=pe,he.bufferType=E,he.version=ae.version);let ve;if(ie instanceof Float32Array)ve=ne.FLOAT;else if(ie instanceof Uint16Array)y.isFloat16BufferAttribute?ve=ne.HALF_FLOAT:ve=ne.UNSIGNED_SHORT;else if(ie instanceof Int16Array)ve=ne.SHORT;else if(ie instanceof Uint32Array)ve=ne.UNSIGNED_INT;else if(ie instanceof Int32Array)ve=ne.INT;else if(ie instanceof Int8Array)ve=ne.BYTE;else if(ie instanceof Uint8Array)ve=ne.UNSIGNED_BYTE;else if(ie instanceof Uint8ClampedArray)ve=ne.UNSIGNED_BYTE;else throw new Error("THREE.WebGLBackend: Unsupported buffer data format: "+ie);let xe={bufferGPU:pe,bufferType:E,type:ve,byteLength:ie.byteLength,bytesPerElement:ie.BYTES_PER_ELEMENT,version:y.version,pbo:y.pbo,isInteger:ve===ne.INT||ve===ne.UNSIGNED_INT||y.gpuType===sf,id:yee++};if(y.isStorageBufferAttribute||y.isStorageInstancedBufferAttribute){const Se=this._createBuffer(ne,E,ie,se);xe=new Aee(xe,Se)}z.set(y,xe)}updateAttribute(y){const E=this.backend,{gl:z}=E,ne=y.array,ie=y.isInterleavedBufferAttribute?y.data:y,se=E.get(ie),ae=se.bufferType,he=y.isInterleavedBufferAttribute?y.data.updateRanges:y.updateRanges;if(z.bindBuffer(ae,se.bufferGPU),he.length===0)z.bufferSubData(ae,0,ne);else{for(let pe=0,ve=he.length;pe<ve;pe++){const xe=he[pe];z.bufferSubData(ae,xe.start*ne.BYTES_PER_ELEMENT,ne,xe.start,xe.count)}ie.clearUpdateRanges()}z.bindBuffer(ae,null),se.version=ie.version}destroyAttribute(y){const E=this.backend,{gl:z}=E;y.isInterleavedBufferAttribute&&E.delete(y.data);const ne=E.get(y);z.deleteBuffer(ne.bufferGPU),E.delete(y)}getArrayBufferAsync(y){return Vl(this,null,function*(){const E=this.backend,{gl:z}=E,ne=y.isInterleavedBufferAttribute?y.data:y,{bufferGPU:ie}=E.get(ne),se=y.array,ae=se.byteLength;z.bindBuffer(z.COPY_READ_BUFFER,ie);const he=z.createBuffer();z.bindBuffer(z.COPY_WRITE_BUFFER,he),z.bufferData(z.COPY_WRITE_BUFFER,ae,z.STREAM_READ),z.copyBufferSubData(z.COPY_READ_BUFFER,z.COPY_WRITE_BUFFER,0,0,ae),yield E.utils._clientWaitAsync();const pe=new y.array.constructor(se.length);return z.bindBuffer(z.COPY_WRITE_BUFFER,he),z.getBufferSubData(z.COPY_WRITE_BUFFER,0,pe),z.deleteBuffer(he),z.bindBuffer(z.COPY_READ_BUFFER,null),z.bindBuffer(z.COPY_WRITE_BUFFER,null),pe.buffer})}_createBuffer(y,E,z,ne){const ie=y.createBuffer();return y.bindBuffer(E,ie),y.bufferData(E,z,ne),y.bindBuffer(E,null),ie}}let C6,WM;class wee{constructor(y){this.backend=y,this.gl=this.backend.gl,this.enabled={},this.currentFlipSided=null,this.currentCullFace=null,this.currentProgram=null,this.currentBlendingEnabled=!1,this.currentBlending=null,this.currentBlendSrc=null,this.currentBlendDst=null,this.currentBlendSrcAlpha=null,this.currentBlendDstAlpha=null,this.currentPremultipledAlpha=null,this.currentPolygonOffsetFactor=null,this.currentPolygonOffsetUnits=null,this.currentColorMask=null,this.currentDepthFunc=null,this.currentDepthMask=null,this.currentStencilFunc=null,this.currentStencilRef=null,this.currentStencilFuncMask=null,this.currentStencilFail=null,this.currentStencilZFail=null,this.currentStencilZPass=null,this.currentStencilMask=null,this.currentLineWidth=null,this.currentClippingPlanes=0,this.currentVAO=null,this.currentIndex=null,this.currentBoundFramebuffers={},this.currentDrawbuffers=new WeakMap,this.maxTextures=this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS),this.currentTextureSlot=null,this.currentBoundTextures={},this.currentBoundBufferBases={},this._init()}_init(){const y=this.gl;C6={[Xe]:y.FUNC_ADD,[at]:y.FUNC_SUBTRACT,[Ct]:y.FUNC_REVERSE_SUBTRACT},WM={[On]:y.ZERO,[nn]:y.ONE,[wi]:y.SRC_COLOR,[jr]:y.SRC_ALPHA,[va]:y.SRC_ALPHA_SATURATE,[na]:y.DST_COLOR,[To]:y.DST_ALPHA,[li]:y.ONE_MINUS_SRC_COLOR,[no]:y.ONE_MINUS_SRC_ALPHA,[Ns]:y.ONE_MINUS_DST_COLOR,[rs]:y.ONE_MINUS_DST_ALPHA};const E=y.getParameter(y.SCISSOR_BOX),z=y.getParameter(y.VIEWPORT);this.currentScissor=new Ul().fromArray(E),this.currentViewport=new Ul().fromArray(z),this._tempVec4=new Ul}enable(y){const{enabled:E}=this;E[y]!==!0&&(this.gl.enable(y),E[y]=!0)}disable(y){const{enabled:E}=this;E[y]!==!1&&(this.gl.disable(y),E[y]=!1)}setFlipSided(y){if(this.currentFlipSided!==y){const{gl:E}=this;y?E.frontFace(E.CW):E.frontFace(E.CCW),this.currentFlipSided=y}}setCullFace(y){const{gl:E}=this;y!==xc?(this.enable(E.CULL_FACE),y!==this.currentCullFace&&(y===eA?E.cullFace(E.BACK):y===rw?E.cullFace(E.FRONT):E.cullFace(E.FRONT_AND_BACK))):this.disable(E.CULL_FACE),this.currentCullFace=y}setLineWidth(y){const{currentLineWidth:E,gl:z}=this;y!==E&&(z.lineWidth(y),this.currentLineWidth=y)}setBlending(y,E,z,ne,ie,se,ae,he){const{gl:pe}=this;if(y===of){this.currentBlendingEnabled===!0&&(this.disable(pe.BLEND),this.currentBlendingEnabled=!1);return}if(this.currentBlendingEnabled===!1&&(this.enable(pe.BLEND),this.currentBlendingEnabled=!0),y!==Ne){if(y!==this.currentBlending||he!==this.currentPremultipledAlpha){if((this.currentBlendEquation!==Xe||this.currentBlendEquationAlpha!==Xe)&&(pe.blendEquation(pe.FUNC_ADD),this.currentBlendEquation=Xe,this.currentBlendEquationAlpha=Xe),he)switch(y){case de:pe.blendFuncSeparate(pe.ONE,pe.ONE_MINUS_SRC_ALPHA,pe.ONE,pe.ONE_MINUS_SRC_ALPHA);break;case me:pe.blendFunc(pe.ONE,pe.ONE);break;case Ee:pe.blendFuncSeparate(pe.ZERO,pe.ONE_MINUS_SRC_COLOR,pe.ZERO,pe.ONE);break;case Pe:pe.blendFuncSeparate(pe.ZERO,pe.SRC_COLOR,pe.ZERO,pe.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",y);break}else switch(y){case de:pe.blendFuncSeparate(pe.SRC_ALPHA,pe.ONE_MINUS_SRC_ALPHA,pe.ONE,pe.ONE_MINUS_SRC_ALPHA);break;case me:pe.blendFunc(pe.SRC_ALPHA,pe.ONE);break;case Ee:pe.blendFuncSeparate(pe.ZERO,pe.ONE_MINUS_SRC_COLOR,pe.ZERO,pe.ONE);break;case Pe:pe.blendFunc(pe.ZERO,pe.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",y);break}this.currentBlendSrc=null,this.currentBlendDst=null,this.currentBlendSrcAlpha=null,this.currentBlendDstAlpha=null,this.currentBlending=y,this.currentPremultipledAlpha=he}return}ie=ie||E,se=se||z,ae=ae||ne,(E!==this.currentBlendEquation||ie!==this.currentBlendEquationAlpha)&&(pe.blendEquationSeparate(C6[E],C6[ie]),this.currentBlendEquation=E,this.currentBlendEquationAlpha=ie),(z!==this.currentBlendSrc||ne!==this.currentBlendDst||se!==this.currentBlendSrcAlpha||ae!==this.currentBlendDstAlpha)&&(pe.blendFuncSeparate(WM[z],WM[ne],WM[se],WM[ae]),this.currentBlendSrc=z,this.currentBlendDst=ne,this.currentBlendSrcAlpha=se,this.currentBlendDstAlpha=ae),this.currentBlending=y,this.currentPremultipledAlpha=!1}setColorMask(y){this.currentColorMask!==y&&(this.gl.colorMask(y,y,y,y),this.currentColorMask=y)}setDepthTest(y){const{gl:E}=this;y?this.enable(E.DEPTH_TEST):this.disable(E.DEPTH_TEST)}setDepthMask(y){this.currentDepthMask!==y&&(this.gl.depthMask(y),this.currentDepthMask=y)}setDepthFunc(y){if(this.currentDepthFunc!==y){const{gl:E}=this;switch(y){case bh:E.depthFunc(E.NEVER);break;case Lc:E.depthFunc(E.ALWAYS);break;case Cd:E.depthFunc(E.LESS);break;case Mh:E.depthFunc(E.LEQUAL);break;case gh:E.depthFunc(E.EQUAL);break;case Gd:E.depthFunc(E.GEQUAL);break;case Gh:E.depthFunc(E.GREATER);break;case mh:E.depthFunc(E.NOTEQUAL);break;default:E.depthFunc(E.LEQUAL)}this.currentDepthFunc=y}}scissor(y,E,z,ne){const ie=this._tempVec4.set(y,E,z,ne);if(this.currentScissor.equals(ie)===!1){const{gl:se}=this;se.scissor(ie.x,ie.y,ie.z,ie.w),this.currentScissor.copy(ie)}}viewport(y,E,z,ne){const ie=this._tempVec4.set(y,E,z,ne);if(this.currentViewport.equals(ie)===!1){const{gl:se}=this;se.viewport(ie.x,ie.y,ie.z,ie.w),this.currentViewport.copy(ie)}}setScissorTest(y){const E=this.gl;y?E.enable(E.SCISSOR_TEST):E.disable(E.SCISSOR_TEST)}setStencilTest(y){const{gl:E}=this;y?this.enable(E.STENCIL_TEST):this.disable(E.STENCIL_TEST)}setStencilMask(y){this.currentStencilMask!==y&&(this.gl.stencilMask(y),this.currentStencilMask=y)}setStencilFunc(y,E,z){(this.currentStencilFunc!==y||this.currentStencilRef!==E||this.currentStencilFuncMask!==z)&&(this.gl.stencilFunc(y,E,z),this.currentStencilFunc=y,this.currentStencilRef=E,this.currentStencilFuncMask=z)}setStencilOp(y,E,z){(this.currentStencilFail!==y||this.currentStencilZFail!==E||this.currentStencilZPass!==z)&&(this.gl.stencilOp(y,E,z),this.currentStencilFail=y,this.currentStencilZFail=E,this.currentStencilZPass=z)}setMaterial(y,E,z){const{gl:ne}=this;y.side===Fh?this.disable(ne.CULL_FACE):this.enable(ne.CULL_FACE);let ie=y.side===wc;E&&(ie=!ie),this.setFlipSided(ie),y.blending===de&&y.transparent===!1?this.setBlending(of):this.setBlending(y.blending,y.blendEquation,y.blendSrc,y.blendDst,y.blendEquationAlpha,y.blendSrcAlpha,y.blendDstAlpha,y.premultipliedAlpha),this.setDepthFunc(y.depthFunc),this.setDepthTest(y.depthTest),this.setDepthMask(y.depthWrite),this.setColorMask(y.colorWrite);const se=y.stencilWrite;if(this.setStencilTest(se),se&&(this.setStencilMask(y.stencilWriteMask),this.setStencilFunc(y.stencilFunc,y.stencilRef,y.stencilFuncMask),this.setStencilOp(y.stencilFail,y.stencilZFail,y.stencilZPass)),this.setPolygonOffset(y.polygonOffset,y.polygonOffsetFactor,y.polygonOffsetUnits),y.alphaToCoverage===!0&&this.backend.renderer.samples>1?this.enable(ne.SAMPLE_ALPHA_TO_COVERAGE):this.disable(ne.SAMPLE_ALPHA_TO_COVERAGE),z>0&&this.currentClippingPlanes!==z)for(let he=0;he<8;he++)he<z?this.enable(12288+he):this.disable(12288+he)}setPolygonOffset(y,E,z){const{gl:ne}=this;y?(this.enable(ne.POLYGON_OFFSET_FILL),(this.currentPolygonOffsetFactor!==E||this.currentPolygonOffsetUnits!==z)&&(ne.polygonOffset(E,z),this.currentPolygonOffsetFactor=E,this.currentPolygonOffsetUnits=z)):this.disable(ne.POLYGON_OFFSET_FILL)}useProgram(y){return this.currentProgram!==y?(this.gl.useProgram(y),this.currentProgram=y,!0):!1}setVertexState(y,E=null){const z=this.gl;return this.currentVAO!==y||this.currentIndex!==E?(z.bindVertexArray(y),E!==null&&z.bindBuffer(z.ELEMENT_ARRAY_BUFFER,E),this.currentVAO=y,this.currentIndex=E,!0):!1}resetVertexState(){const y=this.gl;y.bindVertexArray(null),y.bindBuffer(y.ELEMENT_ARRAY_BUFFER,null),this.currentVAO=null,this.currentIndex=null}bindFramebuffer(y,E){const{gl:z,currentBoundFramebuffers:ne}=this;return ne[y]!==E?(z.bindFramebuffer(y,E),ne[y]=E,y===z.DRAW_FRAMEBUFFER&&(ne[z.FRAMEBUFFER]=E),y===z.FRAMEBUFFER&&(ne[z.DRAW_FRAMEBUFFER]=E),!0):!1}drawBuffers(y,E){const{gl:z}=this;let ne=[],ie=!1;if(y.textures!==null){ne=this.currentDrawbuffers.get(E),ne===void 0&&(ne=[],this.currentDrawbuffers.set(E,ne));const se=y.textures;if(ne.length!==se.length||ne[0]!==z.COLOR_ATTACHMENT0){for(let ae=0,he=se.length;ae<he;ae++)ne[ae]=z.COLOR_ATTACHMENT0+ae;ne.length=se.length,ie=!0}}else ne[0]!==z.BACK&&(ne[0]=z.BACK,ie=!0);ie&&z.drawBuffers(ne)}activeTexture(y){const{gl:E,currentTextureSlot:z,maxTextures:ne}=this;y===void 0&&(y=E.TEXTURE0+ne-1),z!==y&&(E.activeTexture(y),this.currentTextureSlot=y)}bindTexture(y,E,z){const{gl:ne,currentTextureSlot:ie,currentBoundTextures:se,maxTextures:ae}=this;z===void 0&&(ie===null?z=ne.TEXTURE0+ae-1:z=ie);let he=se[z];he===void 0&&(he={type:void 0,texture:void 0},se[z]=he),(he.type!==y||he.texture!==E)&&(ie!==z&&(ne.activeTexture(z),this.currentTextureSlot=z),ne.bindTexture(y,E),he.type=y,he.texture=E)}bindBufferBase(y,E,z){const{gl:ne}=this,ie=`${y}-${E}`;return this.currentBoundBufferBases[ie]!==z?(ne.bindBufferBase(y,E,z),this.currentBoundBufferBases[ie]=z,!0):!1}unbindTexture(){const{gl:y,currentTextureSlot:E,currentBoundTextures:z}=this,ne=z[E];ne!==void 0&&ne.type!==void 0&&(y.bindTexture(ne.type,null),ne.type=void 0,ne.texture=void 0)}}class See{constructor(y){this.backend=y,this.gl=this.backend.gl,this.extensions=y.extensions}convert(y,E=yp){const{gl:z,extensions:ne}=this;let ie;const se=su.getTransfer(E);if(y===yh)return z.UNSIGNED_BYTE;if(y===Fg)return z.UNSIGNED_SHORT_4_4_4_4;if(y===vx)return z.UNSIGNED_SHORT_5_5_5_1;if(y===a0)return z.UNSIGNED_INT_5_9_9_9_REV;if(y===Zv)return z.BYTE;if(y===iA)return z.SHORT;if(y===Tm)return z.UNSIGNED_SHORT;if(y===sf)return z.INT;if(y===Oc)return z.UNSIGNED_INT;if(y===Ah)return z.FLOAT;if(y===Hc)return z.HALF_FLOAT;if(y===Zb)return z.ALPHA;if(y===Yv)return z.RGB;if(y===Ws)return z.RGBA;if(y===Lg)return z.DEPTH_COMPONENT;if(y===Ig)return z.DEPTH_STENCIL;if(y===rA)return z.RED;if(y===Dm)return z.RED_INTEGER;if(y===kg)return z.RG;if(y===Qp)return z.RG_INTEGER;if(y===oA)return z.RGBA_INTEGER;if(y===Kv||y===Z0||y===Jv||y===Og)if(se===Ua)if(ie=ne.get("WEBGL_compressed_texture_s3tc_srgb"),ie!==null){if(y===Kv)return ie.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(y===Z0)return ie.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(y===Jv)return ie.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(y===Og)return ie.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(ie=ne.get("WEBGL_compressed_texture_s3tc"),ie!==null){if(y===Kv)return ie.COMPRESSED_RGB_S3TC_DXT1_EXT;if(y===Z0)return ie.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(y===Jv)return ie.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(y===Og)return ie.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(y===yx||y===Ax||y===sA||y===Y0)if(ie=ne.get("WEBGL_compressed_texture_pvrtc"),ie!==null){if(y===yx)return ie.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(y===Ax)return ie.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(y===sA)return ie.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(y===Y0)return ie.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(y===xx||y===zl||y===hd)if(ie=ne.get("WEBGL_compressed_texture_etc"),ie!==null){if(y===xx||y===zl)return se===Ua?ie.COMPRESSED_SRGB8_ETC2:ie.COMPRESSED_RGB8_ETC2;if(y===hd)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:ie.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(y===Bh||y===vp||y===l0||y===dg||y===Zp||y===Ed||y===u0||y===c0||y===wx||y===lc||y===qv||y===_v||y===$v||y===ey)if(ie=ne.get("WEBGL_compressed_texture_astc"),ie!==null){if(y===Bh)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:ie.COMPRESSED_RGBA_ASTC_4x4_KHR;if(y===vp)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:ie.COMPRESSED_RGBA_ASTC_5x4_KHR;if(y===l0)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:ie.COMPRESSED_RGBA_ASTC_5x5_KHR;if(y===dg)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:ie.COMPRESSED_RGBA_ASTC_6x5_KHR;if(y===Zp)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:ie.COMPRESSED_RGBA_ASTC_6x6_KHR;if(y===Ed)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:ie.COMPRESSED_RGBA_ASTC_8x5_KHR;if(y===u0)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:ie.COMPRESSED_RGBA_ASTC_8x6_KHR;if(y===c0)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:ie.COMPRESSED_RGBA_ASTC_8x8_KHR;if(y===wx)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:ie.COMPRESSED_RGBA_ASTC_10x5_KHR;if(y===lc)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:ie.COMPRESSED_RGBA_ASTC_10x6_KHR;if(y===qv)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:ie.COMPRESSED_RGBA_ASTC_10x8_KHR;if(y===_v)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:ie.COMPRESSED_RGBA_ASTC_10x10_KHR;if(y===$v)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:ie.COMPRESSED_RGBA_ASTC_12x10_KHR;if(y===ey)return se===Ua?ie.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:ie.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(y===ty)if(ie=ne.get("EXT_texture_compression_bptc"),ie!==null){if(y===ty)return se===Ua?ie.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:ie.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(y===lw||y===aA||y===lA||y===ny)if(ie=ne.get("EXT_texture_compression_rgtc"),ie!==null){if(y===ty)return ie.COMPRESSED_RED_RGTC1_EXT;if(y===aA)return ie.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(y===lA)return ie.COMPRESSED_RED_GREEN_RGTC2_EXT;if(y===ny)return ie.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return y===xh?z.UNSIGNED_INT_24_8:z[y]!==void 0?z[y]:null}_clientWaitAsync(){const{gl:y}=this,E=y.fenceSync(y.SYNC_GPU_COMMANDS_COMPLETE,0);return y.flush(),new Promise((z,ne)=>{function ie(){const se=y.clientWaitSync(E,y.SYNC_FLUSH_COMMANDS_BIT,0);if(se===y.WAIT_FAILED){y.deleteSync(E),ne();return}if(se===y.TIMEOUT_EXPIRED){requestAnimationFrame(ie);return}y.deleteSync(E),z()}ie()})}}let jk=!1,ST,E6,Gk;class Pee{constructor(y){this.backend=y,this.gl=y.gl,this.extensions=y.extensions,this.defaultTextures={},jk===!1&&(this._init(),jk=!0)}_init(){const y=this.gl;ST={[fp]:y.REPEAT,[pp]:y.CLAMP_TO_EDGE,[um]:y.MIRRORED_REPEAT},E6={[Ic]:y.NEAREST,[Bm]:y.NEAREST_MIPMAP_NEAREST,[gp]:y.NEAREST_MIPMAP_LINEAR,[qu]:y.LINEAR,[Wh]:y.LINEAR_MIPMAP_NEAREST,[mp]:y.LINEAR_MIPMAP_LINEAR},Gk={[uw]:y.NEVER,[hA]:y.ALWAYS,[bx]:y.LESS,[cA]:y.LEQUAL,[HS]:y.EQUAL,[K0]:y.GEQUAL,[cw]:y.GREATER,[xs]:y.NOTEQUAL}}getGLTextureType(y){const{gl:E}=this;let z;return y.isCubeTexture===!0?z=E.TEXTURE_CUBE_MAP:y.isArrayTexture===!0||y.isDataArrayTexture===!0||y.isCompressedArrayTexture===!0?z=E.TEXTURE_2D_ARRAY:y.isData3DTexture===!0?z=E.TEXTURE_3D:z=E.TEXTURE_2D,z}getInternalFormat(y,E,z,ne,ie=!1){const{gl:se,extensions:ae}=this;if(y!==null){if(se[y]!==void 0)return se[y];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+y+"'")}let he=E;if(E===se.RED&&(z===se.FLOAT&&(he=se.R32F),z===se.HALF_FLOAT&&(he=se.R16F),z===se.UNSIGNED_BYTE&&(he=se.R8),z===se.UNSIGNED_SHORT&&(he=se.R16),z===se.UNSIGNED_INT&&(he=se.R32UI),z===se.BYTE&&(he=se.R8I),z===se.SHORT&&(he=se.R16I),z===se.INT&&(he=se.R32I)),E===se.RED_INTEGER&&(z===se.UNSIGNED_BYTE&&(he=se.R8UI),z===se.UNSIGNED_SHORT&&(he=se.R16UI),z===se.UNSIGNED_INT&&(he=se.R32UI),z===se.BYTE&&(he=se.R8I),z===se.SHORT&&(he=se.R16I),z===se.INT&&(he=se.R32I)),E===se.RG&&(z===se.FLOAT&&(he=se.RG32F),z===se.HALF_FLOAT&&(he=se.RG16F),z===se.UNSIGNED_BYTE&&(he=se.RG8),z===se.UNSIGNED_SHORT&&(he=se.RG16),z===se.UNSIGNED_INT&&(he=se.RG32UI),z===se.BYTE&&(he=se.RG8I),z===se.SHORT&&(he=se.RG16I),z===se.INT&&(he=se.RG32I)),E===se.RG_INTEGER&&(z===se.UNSIGNED_BYTE&&(he=se.RG8UI),z===se.UNSIGNED_SHORT&&(he=se.RG16UI),z===se.UNSIGNED_INT&&(he=se.RG32UI),z===se.BYTE&&(he=se.RG8I),z===se.SHORT&&(he=se.RG16I),z===se.INT&&(he=se.RG32I)),E===se.RGB){const pe=ie?Cx:su.getTransfer(ne);z===se.FLOAT&&(he=se.RGB32F),z===se.HALF_FLOAT&&(he=se.RGB16F),z===se.UNSIGNED_BYTE&&(he=se.RGB8),z===se.UNSIGNED_SHORT&&(he=se.RGB16),z===se.UNSIGNED_INT&&(he=se.RGB32UI),z===se.BYTE&&(he=se.RGB8I),z===se.SHORT&&(he=se.RGB16I),z===se.INT&&(he=se.RGB32I),z===se.UNSIGNED_BYTE&&(he=pe===Ua?se.SRGB8:se.RGB8),z===se.UNSIGNED_SHORT_5_6_5&&(he=se.RGB565),z===se.UNSIGNED_SHORT_5_5_5_1&&(he=se.RGB5_A1),z===se.UNSIGNED_SHORT_4_4_4_4&&(he=se.RGB4),z===se.UNSIGNED_INT_5_9_9_9_REV&&(he=se.RGB9_E5)}if(E===se.RGB_INTEGER&&(z===se.UNSIGNED_BYTE&&(he=se.RGB8UI),z===se.UNSIGNED_SHORT&&(he=se.RGB16UI),z===se.UNSIGNED_INT&&(he=se.RGB32UI),z===se.BYTE&&(he=se.RGB8I),z===se.SHORT&&(he=se.RGB16I),z===se.INT&&(he=se.RGB32I)),E===se.RGBA){const pe=ie?Cx:su.getTransfer(ne);z===se.FLOAT&&(he=se.RGBA32F),z===se.HALF_FLOAT&&(he=se.RGBA16F),z===se.UNSIGNED_BYTE&&(he=se.RGBA8),z===se.UNSIGNED_SHORT&&(he=se.RGBA16),z===se.UNSIGNED_INT&&(he=se.RGBA32UI),z===se.BYTE&&(he=se.RGBA8I),z===se.SHORT&&(he=se.RGBA16I),z===se.INT&&(he=se.RGBA32I),z===se.UNSIGNED_BYTE&&(he=pe===Ua?se.SRGB8_ALPHA8:se.RGBA8),z===se.UNSIGNED_SHORT_4_4_4_4&&(he=se.RGBA4),z===se.UNSIGNED_SHORT_5_5_5_1&&(he=se.RGB5_A1)}return E===se.RGBA_INTEGER&&(z===se.UNSIGNED_BYTE&&(he=se.RGBA8UI),z===se.UNSIGNED_SHORT&&(he=se.RGBA16UI),z===se.UNSIGNED_INT&&(he=se.RGBA32UI),z===se.BYTE&&(he=se.RGBA8I),z===se.SHORT&&(he=se.RGBA16I),z===se.INT&&(he=se.RGBA32I)),E===se.DEPTH_COMPONENT&&(z===se.UNSIGNED_SHORT&&(he=se.DEPTH_COMPONENT16),z===se.UNSIGNED_INT&&(he=se.DEPTH_COMPONENT24),z===se.FLOAT&&(he=se.DEPTH_COMPONENT32F)),E===se.DEPTH_STENCIL&&z===se.UNSIGNED_INT_24_8&&(he=se.DEPTH24_STENCIL8),(he===se.R16F||he===se.R32F||he===se.RG16F||he===se.RG32F||he===se.RGBA16F||he===se.RGBA32F)&&ae.get("EXT_color_buffer_float"),he}setTextureParameters(y,E){const{gl:z,extensions:ne,backend:ie}=this,se=su.getPrimaries(su.workingColorSpace),ae=E.colorSpace===yp?null:su.getPrimaries(E.colorSpace),he=E.colorSpace===yp||se===ae?z.NONE:z.BROWSER_DEFAULT_WEBGL;z.pixelStorei(z.UNPACK_FLIP_Y_WEBGL,E.flipY),z.pixelStorei(z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,E.premultiplyAlpha),z.pixelStorei(z.UNPACK_ALIGNMENT,E.unpackAlignment),z.pixelStorei(z.UNPACK_COLORSPACE_CONVERSION_WEBGL,he),z.texParameteri(y,z.TEXTURE_WRAP_S,ST[E.wrapS]),z.texParameteri(y,z.TEXTURE_WRAP_T,ST[E.wrapT]),(y===z.TEXTURE_3D||y===z.TEXTURE_2D_ARRAY)&&(E.isArrayTexture||z.texParameteri(y,z.TEXTURE_WRAP_R,ST[E.wrapR])),z.texParameteri(y,z.TEXTURE_MAG_FILTER,E6[E.magFilter]);const pe=E.mipmaps!==void 0&&E.mipmaps.length>0,ve=E.minFilter===qu&&pe?mp:E.minFilter;if(z.texParameteri(y,z.TEXTURE_MIN_FILTER,E6[ve]),E.compareFunction&&(z.texParameteri(y,z.TEXTURE_COMPARE_MODE,z.COMPARE_REF_TO_TEXTURE),z.texParameteri(y,z.TEXTURE_COMPARE_FUNC,Gk[E.compareFunction])),ne.has("EXT_texture_filter_anisotropic")===!0){if(E.magFilter===Ic||E.minFilter!==gp&&E.minFilter!==mp||E.type===Ah&&ne.has("OES_texture_float_linear")===!1)return;if(E.anisotropy>1){const xe=ne.get("EXT_texture_filter_anisotropic");z.texParameterf(y,xe.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(E.anisotropy,ie.getMaxAnisotropy()))}}}createDefaultTexture(y){const{gl:E,backend:z,defaultTextures:ne}=this,ie=this.getGLTextureType(y);let se=ne[ie];se===void 0&&(se=E.createTexture(),z.state.bindTexture(ie,se),E.texParameteri(ie,E.TEXTURE_MIN_FILTER,E.NEAREST),E.texParameteri(ie,E.TEXTURE_MAG_FILTER,E.NEAREST),ne[ie]=se),z.set(y,{textureGPU:se,glTextureType:ie,isDefault:!0})}createTexture(y,E){const{gl:z,backend:ne}=this,{levels:ie,width:se,height:ae,depth:he}=E,pe=ne.utils.convert(y.format,y.colorSpace),ve=ne.utils.convert(y.type),xe=this.getInternalFormat(y.internalFormat,pe,ve,y.colorSpace,y.isVideoTexture),Se=z.createTexture(),Be=this.getGLTextureType(y);ne.state.bindTexture(Be,Se),this.setTextureParameters(Be,y),y.isArrayTexture||y.isDataArrayTexture||y.isCompressedArrayTexture?z.texStorage3D(z.TEXTURE_2D_ARRAY,ie,xe,se,ae,he):y.isData3DTexture?z.texStorage3D(z.TEXTURE_3D,ie,xe,se,ae,he):y.isVideoTexture||z.texStorage2D(Be,ie,xe,se,ae),ne.set(y,{textureGPU:Se,glTextureType:Be,glFormat:pe,glType:ve,glInternalFormat:xe})}copyBufferToTexture(y,E){const{gl:z,backend:ne}=this,{textureGPU:ie,glTextureType:se,glFormat:ae,glType:he}=ne.get(E),{width:pe,height:ve}=E.source.data;z.bindBuffer(z.PIXEL_UNPACK_BUFFER,y),ne.state.bindTexture(se,ie),z.pixelStorei(z.UNPACK_FLIP_Y_WEBGL,!1),z.pixelStorei(z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),z.texSubImage2D(se,0,0,0,pe,ve,ae,he,0),z.bindBuffer(z.PIXEL_UNPACK_BUFFER,null),ne.state.unbindTexture()}updateTexture(y,E){const{gl:z}=this,{width:ne,height:ie}=E,{textureGPU:se,glTextureType:ae,glFormat:he,glType:pe,glInternalFormat:ve}=this.backend.get(y);if(!(y.isRenderTargetTexture||se===void 0))if(this.backend.state.bindTexture(ae,se),this.setTextureParameters(ae,y),y.isCompressedTexture){const xe=y.mipmaps,Se=E.image;for(let Be=0;Be<xe.length;Be++){const De=xe[Be];y.isCompressedArrayTexture?y.format!==z.RGBA?he!==null?z.compressedTexSubImage3D(z.TEXTURE_2D_ARRAY,Be,0,0,0,De.width,De.height,Se.depth,he,De.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):z.texSubImage3D(z.TEXTURE_2D_ARRAY,Be,0,0,0,De.width,De.height,Se.depth,he,pe,De.data):he!==null?z.compressedTexSubImage2D(z.TEXTURE_2D,Be,0,0,De.width,De.height,he,De.data):console.warn("Unsupported compressed texture format")}}else if(y.isCubeTexture){const xe=E.images;for(let Se=0;Se<6;Se++){const Be=Xk(xe[Se]);z.texSubImage2D(z.TEXTURE_CUBE_MAP_POSITIVE_X+Se,0,0,0,ne,ie,he,pe,Be)}}else if(y.isDataArrayTexture||y.isArrayTexture){const xe=E.image;z.texSubImage3D(z.TEXTURE_2D_ARRAY,0,0,0,0,xe.width,xe.height,xe.depth,he,pe,xe.data)}else if(y.isData3DTexture){const xe=E.image;z.texSubImage3D(z.TEXTURE_3D,0,0,0,0,xe.width,xe.height,xe.depth,he,pe,xe.data)}else if(y.isVideoTexture)y.update(),z.texImage2D(ae,0,ve,he,pe,E.image);else{const xe=Xk(E.image);z.texSubImage2D(ae,0,0,0,ne,ie,he,pe,xe)}}generateMipmaps(y){const{gl:E,backend:z}=this,{textureGPU:ne,glTextureType:ie}=z.get(y);z.state.bindTexture(ie,ne),E.generateMipmap(ie)}deallocateRenderBuffers(y){const{gl:E,backend:z}=this;if(y){const ne=z.get(y);if(ne.renderBufferStorageSetup=void 0,ne.framebuffers){for(const ie in ne.framebuffers)E.deleteFramebuffer(ne.framebuffers[ie]);delete ne.framebuffers}if(ne.depthRenderbuffer&&(E.deleteRenderbuffer(ne.depthRenderbuffer),delete ne.depthRenderbuffer),ne.stencilRenderbuffer&&(E.deleteRenderbuffer(ne.stencilRenderbuffer),delete ne.stencilRenderbuffer),ne.msaaFrameBuffer&&(E.deleteFramebuffer(ne.msaaFrameBuffer),delete ne.msaaFrameBuffer),ne.msaaRenderbuffers){for(let ie=0;ie<ne.msaaRenderbuffers.length;ie++)E.deleteRenderbuffer(ne.msaaRenderbuffers[ie]);delete ne.msaaRenderbuffers}}}destroyTexture(y){const{gl:E,backend:z}=this,{textureGPU:ne,renderTarget:ie}=z.get(y);this.deallocateRenderBuffers(ie),E.deleteTexture(ne),z.delete(y)}copyTextureToTexture(y,E,z=null,ne=null,ie=0,se=0){const{gl:ae,backend:he}=this,{state:pe}=this.backend,{textureGPU:ve,glTextureType:xe,glType:Se,glFormat:Be}=he.get(E);pe.bindTexture(xe,ve);let De,Re,Oe,Le,Je,$e,_e,st,ct;const ut=y.isCompressedTexture?y.mipmaps[se]:y.image;if(z!==null)De=z.max.x-z.min.x,Re=z.max.y-z.min.y,Oe=z.isBox3?z.max.z-z.min.z:1,Le=z.min.x,Je=z.min.y,$e=z.isBox3?z.min.z:0;else{const Zn=Math.pow(2,-ie);De=Math.floor(ut.width*Zn),Re=Math.floor(ut.height*Zn),y.isDataArrayTexture||y.isArrayTexture?Oe=ut.depth:y.isData3DTexture?Oe=Math.floor(ut.depth*Zn):Oe=1,Le=0,Je=0,$e=0}ne!==null?(_e=ne.x,st=ne.y,ct=ne.z):(_e=0,st=0,ct=0),ae.pixelStorei(ae.UNPACK_FLIP_Y_WEBGL,E.flipY),ae.pixelStorei(ae.UNPACK_PREMULTIPLY_ALPHA_WEBGL,E.premultiplyAlpha),ae.pixelStorei(ae.UNPACK_ALIGNMENT,E.unpackAlignment);const ht=ae.getParameter(ae.UNPACK_ROW_LENGTH),pt=ae.getParameter(ae.UNPACK_IMAGE_HEIGHT),gt=ae.getParameter(ae.UNPACK_SKIP_PIXELS),zt=ae.getParameter(ae.UNPACK_SKIP_ROWS),cn=ae.getParameter(ae.UNPACK_SKIP_IMAGES);ae.pixelStorei(ae.UNPACK_ROW_LENGTH,ut.width),ae.pixelStorei(ae.UNPACK_IMAGE_HEIGHT,ut.height),ae.pixelStorei(ae.UNPACK_SKIP_PIXELS,Le),ae.pixelStorei(ae.UNPACK_SKIP_ROWS,Je),ae.pixelStorei(ae.UNPACK_SKIP_IMAGES,$e);const Tn=E.isDataArrayTexture||E.isData3DTexture||E.isArrayTexture;if(y.isRenderTargetTexture||y.isDepthTexture){const Zn=he.get(y),Nn=he.get(E),di=he.get(Zn.renderTarget),yi=he.get(Nn.renderTarget),bn=di.framebuffers[Zn.cacheKey],Sn=yi.framebuffers[Nn.cacheKey];pe.bindFramebuffer(ae.READ_FRAMEBUFFER,bn),pe.bindFramebuffer(ae.DRAW_FRAMEBUFFER,Sn);let ki=ae.COLOR_BUFFER_BIT;y.isDepthTexture&&(ki=ae.DEPTH_BUFFER_BIT),ae.blitFramebuffer(Le,Je,De,Re,_e,st,De,Re,ki,ae.NEAREST),pe.bindFramebuffer(ae.READ_FRAMEBUFFER,null),pe.bindFramebuffer(ae.DRAW_FRAMEBUFFER,null)}else Tn?y.isDataTexture||y.isData3DTexture?ae.texSubImage3D(xe,se,_e,st,ct,De,Re,Oe,Be,Se,ut.data):E.isCompressedArrayTexture?ae.compressedTexSubImage3D(xe,se,_e,st,ct,De,Re,Oe,Be,ut.data):ae.texSubImage3D(xe,se,_e,st,ct,De,Re,Oe,Be,Se,ut):y.isDataTexture?ae.texSubImage2D(xe,se,_e,st,De,Re,Be,Se,ut.data):y.isCompressedTexture?ae.compressedTexSubImage2D(xe,se,_e,st,ut.width,ut.height,Be,ut.data):ae.texSubImage2D(xe,se,_e,st,De,Re,Be,Se,ut);ae.pixelStorei(ae.UNPACK_ROW_LENGTH,ht),ae.pixelStorei(ae.UNPACK_IMAGE_HEIGHT,pt),ae.pixelStorei(ae.UNPACK_SKIP_PIXELS,gt),ae.pixelStorei(ae.UNPACK_SKIP_ROWS,zt),ae.pixelStorei(ae.UNPACK_SKIP_IMAGES,cn),se===0&&E.generateMipmaps&&ae.generateMipmap(xe),pe.unbindTexture()}copyFramebufferToTexture(y,E,z){const{gl:ne}=this,{state:ie}=this.backend,{textureGPU:se}=this.backend.get(y),{x:ae,y:he,z:pe,w:ve}=z,xe=y.isDepthTexture===!0||E.renderTarget&&E.renderTarget.samples>0,Se=E.renderTarget?E.renderTarget.height:this.backend.getDrawingBufferSize().y;if(xe){const Be=ae!==0||he!==0;let De,Re;if(y.isDepthTexture===!0?(De=ne.DEPTH_BUFFER_BIT,Re=ne.DEPTH_ATTACHMENT,E.stencil&&(De|=ne.STENCIL_BUFFER_BIT)):(De=ne.COLOR_BUFFER_BIT,Re=ne.COLOR_ATTACHMENT0),Be){const Oe=this.backend.get(E.renderTarget),Le=Oe.framebuffers[E.getCacheKey()],Je=Oe.msaaFrameBuffer;ie.bindFramebuffer(ne.DRAW_FRAMEBUFFER,Le),ie.bindFramebuffer(ne.READ_FRAMEBUFFER,Je);const $e=Se-he-ve;ne.blitFramebuffer(ae,$e,ae+pe,$e+ve,ae,$e,ae+pe,$e+ve,De,ne.NEAREST),ie.bindFramebuffer(ne.READ_FRAMEBUFFER,Le),ie.bindTexture(ne.TEXTURE_2D,se),ne.copyTexSubImage2D(ne.TEXTURE_2D,0,0,0,ae,$e,pe,ve),ie.unbindTexture()}else{const Oe=ne.createFramebuffer();ie.bindFramebuffer(ne.DRAW_FRAMEBUFFER,Oe),ne.framebufferTexture2D(ne.DRAW_FRAMEBUFFER,Re,ne.TEXTURE_2D,se,0),ne.blitFramebuffer(0,0,pe,ve,0,0,pe,ve,De,ne.NEAREST),ne.deleteFramebuffer(Oe)}}else ie.bindTexture(ne.TEXTURE_2D,se),ne.copyTexSubImage2D(ne.TEXTURE_2D,0,0,0,ae,Se-ve-he,pe,ve),ie.unbindTexture();y.generateMipmaps&&this.generateMipmaps(y),this.backend._setFramebuffer(E)}setupRenderBufferStorage(y,E,z,ne=!1){const{gl:ie}=this,se=E.renderTarget,{depthTexture:ae,depthBuffer:he,stencilBuffer:pe,width:ve,height:xe}=se;if(ie.bindRenderbuffer(ie.RENDERBUFFER,y),he&&!pe){let Se=ie.DEPTH_COMPONENT24;ne===!0?this.extensions.get("WEBGL_multisampled_render_to_texture").renderbufferStorageMultisampleEXT(ie.RENDERBUFFER,se.samples,Se,ve,xe):z>0?(ae&&ae.isDepthTexture&&ae.type===ie.FLOAT&&(Se=ie.DEPTH_COMPONENT32F),ie.renderbufferStorageMultisample(ie.RENDERBUFFER,z,Se,ve,xe)):ie.renderbufferStorage(ie.RENDERBUFFER,Se,ve,xe),ie.framebufferRenderbuffer(ie.FRAMEBUFFER,ie.DEPTH_ATTACHMENT,ie.RENDERBUFFER,y)}else he&&pe&&(z>0?ie.renderbufferStorageMultisample(ie.RENDERBUFFER,z,ie.DEPTH24_STENCIL8,ve,xe):ie.renderbufferStorage(ie.RENDERBUFFER,ie.DEPTH_STENCIL,ve,xe),ie.framebufferRenderbuffer(ie.FRAMEBUFFER,ie.DEPTH_STENCIL_ATTACHMENT,ie.RENDERBUFFER,y))}copyTextureToBuffer(y,E,z,ne,ie,se){return Vl(this,null,function*(){const{backend:ae,gl:he}=this,{textureGPU:pe,glFormat:ve,glType:xe}=this.backend.get(y),Se=he.createFramebuffer();he.bindFramebuffer(he.READ_FRAMEBUFFER,Se);const Be=y.isCubeTexture?he.TEXTURE_CUBE_MAP_POSITIVE_X+se:he.TEXTURE_2D;he.framebufferTexture2D(he.READ_FRAMEBUFFER,he.COLOR_ATTACHMENT0,Be,pe,0);const De=this._getTypedArrayType(xe),Re=this._getBytesPerTexel(xe,ve),Le=ne*ie*Re,Je=he.createBuffer();he.bindBuffer(he.PIXEL_PACK_BUFFER,Je),he.bufferData(he.PIXEL_PACK_BUFFER,Le,he.STREAM_READ),he.readPixels(E,z,ne,ie,ve,xe,0),he.bindBuffer(he.PIXEL_PACK_BUFFER,null),yield ae.utils._clientWaitAsync();const $e=new De(Le/De.BYTES_PER_ELEMENT);return he.bindBuffer(he.PIXEL_PACK_BUFFER,Je),he.getBufferSubData(he.PIXEL_PACK_BUFFER,0,$e),he.bindBuffer(he.PIXEL_PACK_BUFFER,null),he.deleteFramebuffer(Se),$e})}_getTypedArrayType(y){const{gl:E}=this;if(y===E.UNSIGNED_BYTE)return Uint8Array;if(y===E.UNSIGNED_SHORT_4_4_4_4||y===E.UNSIGNED_SHORT_5_5_5_1||y===E.UNSIGNED_SHORT_5_6_5||y===E.UNSIGNED_SHORT)return Uint16Array;if(y===E.UNSIGNED_INT)return Uint32Array;if(y===E.HALF_FLOAT)return Uint16Array;if(y===E.FLOAT)return Float32Array;throw new Error(`Unsupported WebGL type: ${y}`)}_getBytesPerTexel(y,E){const{gl:z}=this;let ne=0;if(y===z.UNSIGNED_BYTE&&(ne=1),(y===z.UNSIGNED_SHORT_4_4_4_4||y===z.UNSIGNED_SHORT_5_5_5_1||y===z.UNSIGNED_SHORT_5_6_5||y===z.UNSIGNED_SHORT||y===z.HALF_FLOAT)&&(ne=2),(y===z.UNSIGNED_INT||y===z.FLOAT)&&(ne=4),E===z.RGBA)return ne*4;if(E===z.RGB)return ne*3;if(E===z.ALPHA)return ne}}function Xk(ee){return ee.isDataTexture?ee.image.data:typeof HTMLImageElement!="undefined"&&ee instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&ee instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&ee instanceof ImageBitmap||typeof OffscreenCanvas!="undefined"&&ee instanceof OffscreenCanvas?ee:ee.data}class Cee{constructor(y){this.backend=y,this.gl=this.backend.gl,this.availableExtensions=this.gl.getSupportedExtensions(),this.extensions={}}get(y){let E=this.extensions[y];return E===void 0&&(E=this.gl.getExtension(y),this.extensions[y]=E),E}has(y){return this.availableExtensions.includes(y)}}class Eee{constructor(y){this.backend=y,this.maxAnisotropy=null}getMaxAnisotropy(){if(this.maxAnisotropy!==null)return this.maxAnisotropy;const y=this.backend.gl,E=this.backend.extensions;if(E.has("EXT_texture_filter_anisotropic")===!0){const z=E.get("EXT_texture_filter_anisotropic");this.maxAnisotropy=y.getParameter(z.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else this.maxAnisotropy=0;return this.maxAnisotropy}}const Wk={WEBGL_multi_draw:"WEBGL_multi_draw",WEBGL_compressed_texture_astc:"texture-compression-astc",WEBGL_compressed_texture_etc:"texture-compression-etc2",WEBGL_compressed_texture_etc1:"texture-compression-etc1",WEBGL_compressed_texture_pvrtc:"texture-compression-pvrtc",WEBKIT_WEBGL_compressed_texture_pvrtc:"texture-compression-pvrtc",WEBGL_compressed_texture_s3tc:"texture-compression-bc",EXT_texture_compression_bptc:"texture-compression-bptc",EXT_disjoint_timer_query_webgl2:"timestamp-query",OVR_multiview2:"OVR_multiview2"};class bee{constructor(y){this.gl=y.gl,this.extensions=y.extensions,this.info=y.renderer.info,this.mode=null,this.index=0,this.type=null,this.object=null}render(y,E){const{gl:z,mode:ne,object:ie,type:se,info:ae,index:he}=this;he!==0?z.drawElements(ne,E,se,y):z.drawArrays(ne,y,E),ae.update(ie,E,1)}renderInstances(y,E,z){const{gl:ne,mode:ie,type:se,index:ae,object:he,info:pe}=this;z!==0&&(ae!==0?ne.drawElementsInstanced(ie,E,se,y,z):ne.drawArraysInstanced(ie,y,E,z),pe.update(he,E,z))}renderMultiDraw(y,E,z){const{extensions:ne,mode:ie,object:se,info:ae}=this;if(z===0)return;const he=ne.get("WEBGL_multi_draw");if(he===null)for(let pe=0;pe<z;pe++)this.render(y[pe],E[pe]);else{this.index!==0?he.multiDrawElementsWEBGL(ie,E,0,this.type,y,0,z):he.multiDrawArraysWEBGL(ie,y,0,E,0,z);let pe=0;for(let ve=0;ve<z;ve++)pe+=E[ve];ae.update(se,pe,1)}}renderMultiDrawInstances(y,E,z,ne){const{extensions:ie,mode:se,object:ae,info:he}=this;if(z===0)return;const pe=ie.get("WEBGL_multi_draw");if(pe===null)for(let ve=0;ve<z;ve++)this.renderInstances(y[ve],E[ve],ne[ve]);else{this.index!==0?pe.multiDrawElementsInstancedWEBGL(se,E,0,this.type,y,0,ne,0,z):pe.multiDrawArraysInstancedWEBGL(se,y,0,E,0,ne,0,z);let ve=0;for(let xe=0;xe<z;xe++)ve+=E[xe]*ne[xe];he.update(ae,ve,1)}}}class Qk{constructor(y=256){this.trackTimestamp=!0,this.maxQueries=y,this.currentQueryIndex=0,this.queryOffsets=new Map,this.isDisposed=!1,this.lastValue=0,this.pendingResolve=!1}allocateQueriesForContext(){}resolveQueriesAsync(){return Vl(this,null,function*(){})}dispose(){}}class Mee extends Qk{constructor(y,E,z=2048){if(super(z),this.gl=y,this.type=E,this.ext=y.getExtension("EXT_disjoint_timer_query_webgl2")||y.getExtension("EXT_disjoint_timer_query"),!this.ext){console.warn("EXT_disjoint_timer_query not supported; timestamps will be disabled."),this.trackTimestamp=!1;return}this.queries=[];for(let ne=0;ne<this.maxQueries;ne++)this.queries.push(y.createQuery());this.activeQuery=null,this.queryStates=new Map}allocateQueriesForContext(y){if(!this.trackTimestamp)return null;if(this.currentQueryIndex+2>this.maxQueries)return vc(`WebGPUTimestampQueryPool [${this.type}]: Maximum number of queries exceeded, when using trackTimestamp it is necessary to resolves the queries via renderer.resolveTimestampsAsync( THREE.TimestampQuery.${this.type.toUpperCase()} ).`),null;const E=this.currentQueryIndex;return this.currentQueryIndex+=2,this.queryStates.set(E,"inactive"),this.queryOffsets.set(y.id,E),E}beginQuery(y){if(!this.trackTimestamp||this.isDisposed)return;const E=this.queryOffsets.get(y.id);if(E==null||this.activeQuery!==null)return;const z=this.queries[E];if(z)try{this.queryStates.get(E)==="inactive"&&(this.gl.beginQuery(this.ext.TIME_ELAPSED_EXT,z),this.activeQuery=E,this.queryStates.set(E,"started"))}catch(ne){console.error("Error in beginQuery:",ne),this.activeQuery=null,this.queryStates.set(E,"inactive")}}endQuery(y){if(!this.trackTimestamp||this.isDisposed)return;const E=this.queryOffsets.get(y.id);if(E!=null&&this.activeQuery===E)try{this.gl.endQuery(this.ext.TIME_ELAPSED_EXT),this.queryStates.set(E,"ended"),this.activeQuery=null}catch(z){console.error("Error in endQuery:",z),this.queryStates.set(E,"inactive"),this.activeQuery=null}}resolveQueriesAsync(){return Vl(this,null,function*(){if(!this.trackTimestamp||this.pendingResolve)return this.lastValue;this.pendingResolve=!0;try{const y=[];for(const[ne,ie]of this.queryStates)if(ie==="ended"){const se=this.queries[ne];y.push(this.resolveQuery(se))}if(y.length===0)return this.lastValue;const z=(yield Promise.all(y)).reduce((ne,ie)=>ne+ie,0);return this.lastValue=z,this.currentQueryIndex=0,this.queryOffsets.clear(),this.queryStates.clear(),this.activeQuery=null,z}catch(y){return console.error("Error resolving queries:",y),this.lastValue}finally{this.pendingResolve=!1}})}resolveQuery(y){return Vl(this,null,function*(){return new Promise(E=>{if(this.isDisposed){E(this.lastValue);return}let z,ne=!1;const ie=()=>{z&&(clearTimeout(z),z=null)},se=he=>{ne||(ne=!0,ie(),E(he))},ae=()=>{if(this.isDisposed){se(this.lastValue);return}try{if(this.gl.getParameter(this.ext.GPU_DISJOINT_EXT)){se(this.lastValue);return}if(!this.gl.getQueryParameter(y,this.gl.QUERY_RESULT_AVAILABLE)){z=setTimeout(ae,1);return}const ve=this.gl.getQueryParameter(y,this.gl.QUERY_RESULT);E(Number(ve)/1e6)}catch(he){console.error("Error checking query:",he),E(this.lastValue)}};ae()})})}dispose(){if(!this.isDisposed&&(this.isDisposed=!0,!!this.trackTimestamp)){for(const y of this.queries)this.gl.deleteQuery(y);this.queries=[],this.queryStates.clear(),this.queryOffsets.clear(),this.lastValue=0,this.activeQuery=null}}}const Zk=new Yr;class Yk extends Vk{constructor(y={}){super(y),this.isWebGLBackend=!0,this.attributeUtils=null,this.extensions=null,this.capabilities=null,this.textureUtils=null,this.bufferRenderer=null,this.gl=null,this.state=null,this.utils=null,this.vaoCache={},this.transformFeedbackCache={},this.discard=!1,this.disjoint=null,this.parallel=null,this._currentContext=null,this._knownBindings=new WeakSet,this._supportsInvalidateFramebuffer=typeof navigator=="undefined"?!1:/OculusBrowser/g.test(navigator.userAgent),this._xrFramebuffer=null}init(y){super.init(y);const E=this.parameters,z={antialias:y.samples>0,alpha:!0,depth:y.depth,stencil:y.stencil},ne=E.context!==void 0?E.context:y.domElement.getContext("webgl2",z);function ie(se){se.preventDefault();const ae={api:"WebGL",message:se.statusMessage||"Unknown reason",reason:null,originalEvent:se};y.onDeviceLost(ae)}this._onContextLost=ie,y.domElement.addEventListener("webglcontextlost",ie,!1),this.gl=ne,this.extensions=new Cee(this),this.capabilities=new Eee(this),this.attributeUtils=new xee(this),this.textureUtils=new Pee(this),this.bufferRenderer=new bee(this),this.state=new wee(this),this.utils=new See(this),this.extensions.get("EXT_color_buffer_float"),this.extensions.get("WEBGL_clip_cull_distance"),this.extensions.get("OES_texture_float_linear"),this.extensions.get("EXT_color_buffer_half_float"),this.extensions.get("WEBGL_multisampled_render_to_texture"),this.extensions.get("WEBGL_render_shared_exponent"),this.extensions.get("WEBGL_multi_draw"),this.extensions.get("OVR_multiview2"),this.disjoint=this.extensions.get("EXT_disjoint_timer_query_webgl2"),this.parallel=this.extensions.get("KHR_parallel_shader_compile")}get coordinateSystem(){return xp}getArrayBufferAsync(y){return Vl(this,null,function*(){return yield this.attributeUtils.getArrayBufferAsync(y)})}waitForGPU(){return Vl(this,null,function*(){yield this.utils._clientWaitAsync()})}makeXRCompatible(){return Vl(this,null,function*(){this.gl.getContextAttributes().xrCompatible!==!0&&(yield this.gl.makeXRCompatible())})}setXRTarget(y){this._xrFramebuffer=y}setXRRenderTargetTextures(y,E,z=null){const ne=this.gl;if(this.set(y.texture,{textureGPU:E,glInternalFormat:ne.RGBA8}),z!==null){const ie=y.stencilBuffer?ne.DEPTH24_STENCIL8:ne.DEPTH_COMPONENT24;this.set(y.depthTexture,{textureGPU:z,glInternalFormat:ie}),this.extensions.has("WEBGL_multisampled_render_to_texture")===!0&&y.autoAllocateDepthBuffer===!0&&y.multiview===!1&&console.warn("THREE.WebGLBackend: Render-to-texture extension was disabled because an external texture was provided"),y.autoAllocateDepthBuffer=!1}}initTimestampQuery(y){if(!this.disjoint||!this.trackTimestamp)return;const E=y.isComputeNode?"compute":"render";this.timestampQueryPool[E]||(this.timestampQueryPool[E]=new Mee(this.gl,E,2048));const z=this.timestampQueryPool[E];z.allocateQueriesForContext(y)!==null&&z.beginQuery(y)}prepareTimestampBuffer(y){if(!this.disjoint||!this.trackTimestamp)return;const E=y.isComputeNode?"compute":"render";this.timestampQueryPool[E].endQuery(y)}getContext(){return this.gl}beginRender(y){const{state:E}=this,z=this.get(y);if(y.viewport)this.updateViewport(y);else{const{width:ie,height:se}=this.getDrawingBufferSize(Zk);E.viewport(0,0,ie,se)}if(y.scissor){const{x:ie,y:se,width:ae,height:he}=y.scissorValue;E.scissor(ie,y.height-he-se,ae,he)}this.initTimestampQuery(y),z.previousContext=this._currentContext,this._currentContext=y,this._setFramebuffer(y),this.clear(y.clearColor,y.clearDepth,y.clearStencil,y,!1);const ne=y.occlusionQueryCount;ne>0&&(z.currentOcclusionQueries=z.occlusionQueries,z.currentOcclusionQueryObjects=z.occlusionQueryObjects,z.lastOcclusionObject=null,z.occlusionQueries=new Array(ne),z.occlusionQueryObjects=new Array(ne),z.occlusionQueryIndex=0)}finishRender(y){const{gl:E,state:z}=this,ne=this.get(y),ie=ne.previousContext;z.resetVertexState();const se=y.occlusionQueryCount;se>0&&(se>ne.occlusionQueryIndex&&E.endQuery(E.ANY_SAMPLES_PASSED),this.resolveOccludedAsync(y));const ae=y.textures;if(ae!==null)for(let he=0;he<ae.length;he++){const pe=ae[he];pe.generateMipmaps&&this.generateMipmaps(pe)}if(this._currentContext=ie,y.textures!==null&&y.renderTarget){const he=this.get(y.renderTarget),{resolveDepthBuffer:pe,samples:ve}=y.renderTarget;if(ve>0&&this._useMultisampledExtension(y.renderTarget)===!1){const xe=he.framebuffers[y.getCacheKey()],Se=E.COLOR_BUFFER_BIT,Be=he.msaaFrameBuffer,De=y.textures;z.bindFramebuffer(E.READ_FRAMEBUFFER,Be),z.bindFramebuffer(E.DRAW_FRAMEBUFFER,xe);for(let Re=0;Re<De.length;Re++)if(y.scissor){const{x:Oe,y:Le,width:Je,height:$e}=y.scissorValue,_e=y.height-$e-Le;E.blitFramebuffer(Oe,_e,Oe+Je,_e+$e,Oe,_e,Oe+Je,_e+$e,Se,E.NEAREST),this._supportsInvalidateFramebuffer===!0&&E.invalidateSubFramebuffer(E.READ_FRAMEBUFFER,he.invalidationArray,Oe,_e,Je,$e)}else E.blitFramebuffer(0,0,y.width,y.height,0,0,y.width,y.height,Se,E.NEAREST),this._supportsInvalidateFramebuffer===!0&&E.invalidateFramebuffer(E.READ_FRAMEBUFFER,he.invalidationArray)}else if(pe===!1&&he.framebuffers){const xe=he.framebuffers[y.getCacheKey()];z.bindFramebuffer(E.DRAW_FRAMEBUFFER,xe),E.invalidateFramebuffer(E.DRAW_FRAMEBUFFER,he.depthInvalidationArray)}}if(ie!==null)if(this._setFramebuffer(ie),ie.viewport)this.updateViewport(ie);else{const{width:he,height:pe}=this.getDrawingBufferSize(Zk);z.viewport(0,0,he,pe)}this.prepareTimestampBuffer(y)}resolveOccludedAsync(y){const E=this.get(y),{currentOcclusionQueries:z,currentOcclusionQueryObjects:ne}=E;if(z&&ne){const ie=new WeakSet,{gl:se}=this;E.currentOcclusionQueryObjects=null,E.currentOcclusionQueries=null;const ae=()=>{let he=0;for(let pe=0;pe<z.length;pe++){const ve=z[pe];ve!==null&&se.getQueryParameter(ve,se.QUERY_RESULT_AVAILABLE)&&(se.getQueryParameter(ve,se.QUERY_RESULT)===0&&ie.add(ne[pe]),z[pe]=null,se.deleteQuery(ve),he++)}he<z.length?requestAnimationFrame(ae):E.occluded=ie};ae()}}isOccluded(y,E){const z=this.get(y);return z.occluded&&z.occluded.has(E)}updateViewport(y){const{state:E}=this,{x:z,y:ne,width:ie,height:se}=y.viewportValue;E.viewport(z,y.height-se-ne,ie,se)}setScissorTest(y){this.state.setScissorTest(y)}getClearColor(){const y=super.getClearColor();return y.r*=y.a,y.g*=y.a,y.b*=y.a,y}clear(y,E,z,ne=null,ie=!0){const{gl:se,renderer:ae}=this;ne===null&&(ne={textures:null,clearColorValue:this.getClearColor()});let he=0;if(y&&(he|=se.COLOR_BUFFER_BIT),E&&(he|=se.DEPTH_BUFFER_BIT),z&&(he|=se.STENCIL_BUFFER_BIT),he!==0){let pe;ne.clearColorValue?pe=ne.clearColorValue:pe=this.getClearColor();const ve=ae.getClearDepth(),xe=ae.getClearStencil();if(E&&this.state.setDepthMask(!0),ne.textures===null)se.clearColor(pe.r,pe.g,pe.b,pe.a),se.clear(he);else{if(ie&&this._setFramebuffer(ne),y)for(let Se=0;Se<ne.textures.length;Se++)Se===0?se.clearBufferfv(se.COLOR,Se,[pe.r,pe.g,pe.b,pe.a]):se.clearBufferfv(se.COLOR,Se,[0,0,0,1]);E&&z?se.clearBufferfi(se.DEPTH_STENCIL,0,ve,xe):E?se.clearBufferfv(se.DEPTH,0,[ve]):z&&se.clearBufferiv(se.STENCIL,0,[xe])}}}beginCompute(y){const{state:E,gl:z}=this;E.bindFramebuffer(z.FRAMEBUFFER,null),this.initTimestampQuery(y)}compute(y,E,z,ne){const{state:ie,gl:se}=this;this.discard===!1&&(se.enable(se.RASTERIZER_DISCARD),this.discard=!0);const{programGPU:ae,transformBuffers:he,attributes:pe}=this.get(ne),ve=this._getVaoKey(pe),xe=this.vaoCache[ve];xe===void 0?this._createVao(pe):ie.setVertexState(xe),ie.useProgram(ae),this._bindUniforms(z);const Se=this._getTransformFeedback(he);se.bindTransformFeedback(se.TRANSFORM_FEEDBACK,Se),se.beginTransformFeedback(se.POINTS),pe[0].isStorageInstancedBufferAttribute?se.drawArraysInstanced(se.POINTS,0,1,E.count):se.drawArrays(se.POINTS,0,E.count),se.endTransformFeedback(),se.bindTransformFeedback(se.TRANSFORM_FEEDBACK,null);for(let Be=0;Be<he.length;Be++){const De=he[Be];De.pbo&&this.textureUtils.copyBufferToTexture(De.transformBuffer,De.pbo),De.switchBuffers()}}finishCompute(y){const E=this.gl;this.discard=!1,E.disable(E.RASTERIZER_DISCARD),this.prepareTimestampBuffer(y),this._currentContext&&this._setFramebuffer(this._currentContext)}_isRenderCameraDepthArray(y){return y.depthTexture&&y.depthTexture.isArrayTexture&&y.camera.isArrayCamera}draw(y){const{object:E,pipeline:z,material:ne,context:ie,hardwareClippingPlanes:se}=y,{programGPU:ae}=this.get(z),{gl:he,state:pe}=this,ve=this.get(ie),xe=y.getDrawParameters();if(xe===null)return;this._bindUniforms(y.getBindings());const Se=E.isMesh&&E.matrixWorld.determinant()<0;pe.setMaterial(ne,Se,se),pe.useProgram(ae);const Be=this.get(y);let De=Be.staticVao;if(De===void 0||Be.geometryId!==y.geometry.id){const ut=this._getVaoKey(y.getAttributes());if(De=this.vaoCache[ut],De===void 0){let ht;({vaoGPU:De,staticVao:ht}=this._createVao(y.getAttributes())),ht&&(Be.staticVao=De,Be.geometryId=y.geometry.id)}}const Re=y.getIndex(),Oe=Re!==null?this.get(Re).bufferGPU:null;pe.setVertexState(De,Oe);const Le=ve.lastOcclusionObject;if(Le!==E&&Le!==void 0){if(Le!==null&&Le.occlusionTest===!0&&(he.endQuery(he.ANY_SAMPLES_PASSED),ve.occlusionQueryIndex++),E.occlusionTest===!0){const ut=he.createQuery();he.beginQuery(he.ANY_SAMPLES_PASSED,ut),ve.occlusionQueries[ve.occlusionQueryIndex]=ut,ve.occlusionQueryObjects[ve.occlusionQueryIndex]=E}ve.lastOcclusionObject=E}const Je=this.bufferRenderer;E.isPoints?Je.mode=he.POINTS:E.isLineSegments?Je.mode=he.LINES:E.isLine?Je.mode=he.LINE_STRIP:E.isLineLoop?Je.mode=he.LINE_LOOP:ne.wireframe===!0?(pe.setLineWidth(ne.wireframeLinewidth*this.renderer.getPixelRatio()),Je.mode=he.LINES):Je.mode=he.TRIANGLES;const{vertexCount:$e,instanceCount:_e}=xe;let{firstVertex:st}=xe;if(Je.object=E,Re!==null){st*=Re.array.BYTES_PER_ELEMENT;const ut=this.get(Re);Je.index=Re.count,Je.type=ut.type}else Je.index=0;const ct=()=>{E.isBatchedMesh?E._multiDrawInstances!==null?(vc("THREE.WebGLBackend: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection."),Je.renderMultiDrawInstances(E._multiDrawStarts,E._multiDrawCounts,E._multiDrawCount,E._multiDrawInstances)):this.hasFeature("WEBGL_multi_draw")?Je.renderMultiDraw(E._multiDrawStarts,E._multiDrawCounts,E._multiDrawCount):vc("THREE.WebGLRenderer: WEBGL_multi_draw not supported."):_e>1?Je.renderInstances(st,$e,_e):Je.render(st,$e)};if(y.camera.isArrayCamera===!0&&y.camera.cameras.length>0&&y.camera.isMultiViewCamera===!1){const ut=this.get(y.camera),ht=y.camera.cameras,pt=y.getBindingGroup("cameraIndex").bindings[0];if(ut.indexesGPU===void 0||ut.indexesGPU.length!==ht.length){const Nn=new Uint32Array([0,0,0,0]),di=[];for(let yi=0,bn=ht.length;yi<bn;yi++){const Sn=he.createBuffer();Nn[0]=yi,he.bindBuffer(he.UNIFORM_BUFFER,Sn),he.bufferData(he.UNIFORM_BUFFER,Nn,he.STATIC_DRAW),di.push(Sn)}ut.indexesGPU=di}const gt=this.get(pt),zt=this.renderer.getPixelRatio(),cn=this._currentContext.renderTarget,Tn=this._isRenderCameraDepthArray(this._currentContext),Zn=this._currentContext.activeCubeFace;if(Tn){const Nn=this.get(cn.depthTexture);if(Nn.clearedRenderId!==this.renderer._nodes.nodeFrame.renderId){Nn.clearedRenderId=this.renderer._nodes.nodeFrame.renderId;const{stencilBuffer:di}=cn;for(let yi=0,bn=ht.length;yi<bn;yi++)this.renderer._activeCubeFace=yi,this._currentContext.activeCubeFace=yi,this._setFramebuffer(this._currentContext),this.clear(!1,!0,di,this._currentContext,!1);this.renderer._activeCubeFace=Zn,this._currentContext.activeCubeFace=Zn}}for(let Nn=0,di=ht.length;Nn<di;Nn++){const yi=ht[Nn];if(E.layers.test(yi.layers)){Tn&&(this.renderer._activeCubeFace=Nn,this._currentContext.activeCubeFace=Nn,this._setFramebuffer(this._currentContext));const bn=yi.viewport;if(bn!==void 0){const Sn=bn.x*zt,ki=bn.y*zt,ti=bn.width*zt,fn=bn.height*zt;pe.viewport(Math.floor(Sn),Math.floor(y.context.height-fn-ki),Math.floor(ti),Math.floor(fn))}pe.bindBufferBase(he.UNIFORM_BUFFER,gt.index,ut.indexesGPU[Nn]),ct()}this._currentContext.activeCubeFace=Zn,this.renderer._activeCubeFace=Zn}}else ct()}needsRenderUpdate(){return!1}getRenderCacheKey(){return""}createDefaultTexture(y){this.textureUtils.createDefaultTexture(y)}createTexture(y,E){this.textureUtils.createTexture(y,E)}updateTexture(y,E){this.textureUtils.updateTexture(y,E)}generateMipmaps(y){this.textureUtils.generateMipmaps(y)}destroyTexture(y){this.textureUtils.destroyTexture(y)}copyTextureToBuffer(y,E,z,ne,ie,se){return Vl(this,null,function*(){return this.textureUtils.copyTextureToBuffer(y,E,z,ne,ie,se)})}createSampler(){}destroySampler(){}createNodeBuilder(y,E){return new vee(y,E)}createProgram(y){const E=this.gl,{stage:z,code:ne}=y,ie=z==="fragment"?E.createShader(E.FRAGMENT_SHADER):E.createShader(E.VERTEX_SHADER);E.shaderSource(ie,ne),E.compileShader(ie),this.set(y,{shaderGPU:ie})}destroyProgram(y){this.delete(y)}createRenderPipeline(y,E){const z=this.gl,ne=y.pipeline,{fragmentProgram:ie,vertexProgram:se}=ne,ae=z.createProgram(),he=this.get(ie).shaderGPU,pe=this.get(se).shaderGPU;if(z.attachShader(ae,he),z.attachShader(ae,pe),z.linkProgram(ae),this.set(ne,{programGPU:ae,fragmentShader:he,vertexShader:pe}),E!==null&&this.parallel){const ve=new Promise(xe=>{const Se=this.parallel,Be=()=>{z.getProgramParameter(ae,Se.COMPLETION_STATUS_KHR)?(this._completeCompile(y,ne),xe()):requestAnimationFrame(Be)};Be()});E.push(ve);return}this._completeCompile(y,ne)}_handleSource(y,E){const z=y.split(`
|
|
`),ne=[],ie=Math.max(E-6,0),se=Math.min(E+6,z.length);for(let ae=ie;ae<se;ae++){const he=ae+1;ne.push(`${he===E?">":" "} ${he}: ${z[ae]}`)}return ne.join(`
|
|
`)}_getShaderErrors(y,E,z){const ne=y.getShaderParameter(E,y.COMPILE_STATUS),ie=y.getShaderInfoLog(E).trim();if(ne&&ie==="")return"";const se=/ERROR: 0:(\d+)/.exec(ie);if(se){const ae=parseInt(se[1]);return z.toUpperCase()+`
|
|
|
|
`+ie+`
|
|
|
|
`+this._handleSource(y.getShaderSource(E),ae)}else return ie}_logProgramError(y,E,z){if(this.renderer.debug.checkShaderErrors){const ne=this.gl,ie=ne.getProgramInfoLog(y).trim();if(ne.getProgramParameter(y,ne.LINK_STATUS)===!1)if(typeof this.renderer.debug.onShaderError=="function")this.renderer.debug.onShaderError(ne,y,z,E);else{const se=this._getShaderErrors(ne,z,"vertex"),ae=this._getShaderErrors(ne,E,"fragment");console.error("THREE.WebGLProgram: Shader Error "+ne.getError()+" - VALIDATE_STATUS "+ne.getProgramParameter(y,ne.VALIDATE_STATUS)+`
|
|
|
|
Program Info Log: `+ie+`
|
|
`+se+`
|
|
`+ae)}else ie!==""&&console.warn("THREE.WebGLProgram: Program Info Log:",ie)}}_completeCompile(y,E){const{state:z,gl:ne}=this,ie=this.get(E),{programGPU:se,fragmentShader:ae,vertexShader:he}=ie;ne.getProgramParameter(se,ne.LINK_STATUS)===!1&&this._logProgramError(se,ae,he),z.useProgram(se);const pe=y.getBindings();this._setupBindings(pe,se),this.set(E,{programGPU:se})}createComputePipeline(y,E){const{state:z,gl:ne}=this,ie={stage:"fragment",code:`#version 300 es
|
|
precision highp float;
|
|
void main() {}`};this.createProgram(ie);const{computeProgram:se}=y,ae=ne.createProgram(),he=this.get(ie).shaderGPU,pe=this.get(se).shaderGPU,ve=se.transforms,xe=[],Se=[];for(let Oe=0;Oe<ve.length;Oe++){const Le=ve[Oe];xe.push(Le.varyingName),Se.push(Le.attributeNode)}ne.attachShader(ae,he),ne.attachShader(ae,pe),ne.transformFeedbackVaryings(ae,xe,ne.SEPARATE_ATTRIBS),ne.linkProgram(ae),ne.getProgramParameter(ae,ne.LINK_STATUS)===!1&&this._logProgramError(ae,he,pe),z.useProgram(ae),this._setupBindings(E,ae);const Be=se.attributes,De=[],Re=[];for(let Oe=0;Oe<Be.length;Oe++){const Le=Be[Oe].node.attribute;De.push(Le),this.has(Le)||this.attributeUtils.createAttribute(Le,ne.ARRAY_BUFFER)}for(let Oe=0;Oe<Se.length;Oe++){const Le=Se[Oe].attribute;this.has(Le)||this.attributeUtils.createAttribute(Le,ne.ARRAY_BUFFER);const Je=this.get(Le);Re.push(Je)}this.set(y,{programGPU:ae,transformBuffers:Re,attributes:De})}createBindings(y,E){if(this._knownBindings.has(E)===!1){this._knownBindings.add(E);let z=0,ne=0;for(const ie of E){this.set(ie,{textures:ne,uniformBuffers:z});for(const se of ie.bindings)se.isUniformBuffer&&z++,se.isSampledTexture&&ne++}}this.updateBindings(y,E)}updateBindings(y){const{gl:E}=this,z=this.get(y);let ne=z.uniformBuffers,ie=z.textures;for(const se of y.bindings)if(se.isUniformsGroup||se.isUniformBuffer){const ae=se.buffer,he=E.createBuffer();E.bindBuffer(E.UNIFORM_BUFFER,he),E.bufferData(E.UNIFORM_BUFFER,ae,E.DYNAMIC_DRAW),this.set(se,{index:ne++,bufferGPU:he})}else if(se.isSampledTexture){const{textureGPU:ae,glTextureType:he}=this.get(se.texture);this.set(se,{index:ie++,textureGPU:ae,glTextureType:he})}}updateBinding(y){const E=this.gl;if(y.isUniformsGroup||y.isUniformBuffer){const ne=this.get(y).bufferGPU,ie=y.buffer;E.bindBuffer(E.UNIFORM_BUFFER,ne),E.bufferData(E.UNIFORM_BUFFER,ie,E.DYNAMIC_DRAW)}}createIndexAttribute(y){const E=this.gl;this.attributeUtils.createAttribute(y,E.ELEMENT_ARRAY_BUFFER)}createAttribute(y){if(this.has(y))return;const E=this.gl;this.attributeUtils.createAttribute(y,E.ARRAY_BUFFER)}createStorageAttribute(y){if(this.has(y))return;const E=this.gl;this.attributeUtils.createAttribute(y,E.ARRAY_BUFFER)}updateAttribute(y){this.attributeUtils.updateAttribute(y)}destroyAttribute(y){this.attributeUtils.destroyAttribute(y)}hasFeature(y){const E=Object.keys(Wk).filter(ne=>Wk[ne]===y),z=this.extensions;for(let ne=0;ne<E.length;ne++)if(z.has(E[ne]))return!0;return!1}getMaxAnisotropy(){return this.capabilities.getMaxAnisotropy()}copyTextureToTexture(y,E,z=null,ne=null,ie=0,se=0){this.textureUtils.copyTextureToTexture(y,E,z,ne,ie,se)}copyFramebufferToTexture(y,E,z){this.textureUtils.copyFramebufferToTexture(y,E,z)}_setFramebuffer(y){const{gl:E,state:z}=this;let ne=null;if(y.textures!==null){const ie=y.renderTarget,se=this.get(ie),{samples:ae,depthBuffer:he,stencilBuffer:pe}=ie,ve=ie.isWebGLCubeRenderTarget===!0,xe=ie.isRenderTarget3D===!0,Se=ie.depth>1,Be=ie.isXRRenderTarget===!0,De=Be===!0&&ie.hasExternalTextures===!0;let Re=se.msaaFrameBuffer,Oe=se.depthRenderbuffer;const Le=this.extensions.get("WEBGL_multisampled_render_to_texture"),Je=this.extensions.get("OVR_multiview2"),$e=this._useMultisampledExtension(ie),_e=a9(y);let st;if(ve?(se.cubeFramebuffers||(se.cubeFramebuffers={}),st=se.cubeFramebuffers[_e]):Be&&De===!1?st=this._xrFramebuffer:(se.framebuffers||(se.framebuffers={}),st=se.framebuffers[_e]),st===void 0){st=E.createFramebuffer(),z.bindFramebuffer(E.FRAMEBUFFER,st);const ct=y.textures,ut=[];if(ve){se.cubeFramebuffers[_e]=st;const{textureGPU:pt}=this.get(ct[0]),gt=this.renderer._activeCubeFace;E.framebufferTexture2D(E.FRAMEBUFFER,E.COLOR_ATTACHMENT0,E.TEXTURE_CUBE_MAP_POSITIVE_X+gt,pt,0)}else{se.framebuffers[_e]=st;for(let pt=0;pt<ct.length;pt++){const gt=ct[pt],zt=this.get(gt);zt.renderTarget=y.renderTarget,zt.cacheKey=_e;const cn=E.COLOR_ATTACHMENT0+pt;if(ie.multiview)Je.framebufferTextureMultisampleMultiviewOVR(E.FRAMEBUFFER,cn,zt.textureGPU,0,ae,0,2);else if(xe||Se){const Tn=this.renderer._activeCubeFace;E.framebufferTextureLayer(E.FRAMEBUFFER,cn,zt.textureGPU,0,Tn)}else $e?Le.framebufferTexture2DMultisampleEXT(E.FRAMEBUFFER,cn,E.TEXTURE_2D,zt.textureGPU,0,ae):E.framebufferTexture2D(E.FRAMEBUFFER,cn,E.TEXTURE_2D,zt.textureGPU,0)}z.drawBuffers(y,st)}const ht=pe?E.DEPTH_STENCIL_ATTACHMENT:E.DEPTH_ATTACHMENT;if(ie.autoAllocateDepthBuffer===!0){const pt=E.createRenderbuffer();this.textureUtils.setupRenderBufferStorage(pt,y,0,$e),se.xrDepthRenderbuffer=pt,ut.push(pe?E.DEPTH_STENCIL_ATTACHMENT:E.DEPTH_ATTACHMENT),E.bindRenderbuffer(E.RENDERBUFFER,pt),E.framebufferRenderbuffer(E.FRAMEBUFFER,ht,E.RENDERBUFFER,pt)}else if(y.depthTexture!==null){ut.push(pe?E.DEPTH_STENCIL_ATTACHMENT:E.DEPTH_ATTACHMENT);const pt=this.get(y.depthTexture);if(pt.renderTarget=y.renderTarget,pt.cacheKey=_e,ie.multiview)Je.framebufferTextureMultisampleMultiviewOVR(E.FRAMEBUFFER,ht,pt.textureGPU,0,ae,0,2);else if(De&&$e)Le.framebufferTexture2DMultisampleEXT(E.FRAMEBUFFER,ht,E.TEXTURE_2D,pt.textureGPU,0,ae);else if(y.depthTexture.isArrayTexture){const gt=this.renderer._activeCubeFace;E.framebufferTextureLayer(E.FRAMEBUFFER,ht,pt.textureGPU,0,gt)}else E.framebufferTexture2D(E.FRAMEBUFFER,ht,E.TEXTURE_2D,pt.textureGPU,0)}se.depthInvalidationArray=ut}else{if(this._isRenderCameraDepthArray(y)){z.bindFramebuffer(E.FRAMEBUFFER,st);const ut=this.renderer._activeCubeFace,ht=this.get(y.depthTexture),pt=pe?E.DEPTH_STENCIL_ATTACHMENT:E.DEPTH_ATTACHMENT;E.framebufferTextureLayer(E.FRAMEBUFFER,pt,ht.textureGPU,0,ut)}if(Be||$e||ie.multiview){z.bindFramebuffer(E.FRAMEBUFFER,st);const ut=this.get(y.textures[0]);ie.multiview?Je.framebufferTextureMultisampleMultiviewOVR(E.FRAMEBUFFER,E.COLOR_ATTACHMENT0,ut.textureGPU,0,ae,0,2):$e?Le.framebufferTexture2DMultisampleEXT(E.FRAMEBUFFER,E.COLOR_ATTACHMENT0,E.TEXTURE_2D,ut.textureGPU,0,ae):E.framebufferTexture2D(E.FRAMEBUFFER,E.COLOR_ATTACHMENT0,E.TEXTURE_2D,ut.textureGPU,0);const ht=pe?E.DEPTH_STENCIL_ATTACHMENT:E.DEPTH_ATTACHMENT;if(ie.autoAllocateDepthBuffer===!0){const pt=se.xrDepthRenderbuffer;E.bindRenderbuffer(E.RENDERBUFFER,pt),E.framebufferRenderbuffer(E.FRAMEBUFFER,ht,E.RENDERBUFFER,pt)}else{const pt=this.get(y.depthTexture);ie.multiview?Je.framebufferTextureMultisampleMultiviewOVR(E.FRAMEBUFFER,ht,pt.textureGPU,0,ae,0,2):$e?Le.framebufferTexture2DMultisampleEXT(E.FRAMEBUFFER,ht,E.TEXTURE_2D,pt.textureGPU,0,ae):E.framebufferTexture2D(E.FRAMEBUFFER,ht,E.TEXTURE_2D,pt.textureGPU,0)}}}if(ae>0&&$e===!1&&!ie.multiview){if(Re===void 0){const ct=[];Re=E.createFramebuffer(),z.bindFramebuffer(E.FRAMEBUFFER,Re);const ut=[],ht=y.textures;for(let pt=0;pt<ht.length;pt++){if(ut[pt]=E.createRenderbuffer(),E.bindRenderbuffer(E.RENDERBUFFER,ut[pt]),ct.push(E.COLOR_ATTACHMENT0+pt),he){const cn=pe?E.DEPTH_STENCIL_ATTACHMENT:E.DEPTH_ATTACHMENT;ct.push(cn)}const gt=y.textures[pt],zt=this.get(gt);E.renderbufferStorageMultisample(E.RENDERBUFFER,ae,zt.glInternalFormat,y.width,y.height),E.framebufferRenderbuffer(E.FRAMEBUFFER,E.COLOR_ATTACHMENT0+pt,E.RENDERBUFFER,ut[pt])}if(se.msaaFrameBuffer=Re,se.msaaRenderbuffers=ut,Oe===void 0){Oe=E.createRenderbuffer(),this.textureUtils.setupRenderBufferStorage(Oe,y,ae),se.depthRenderbuffer=Oe;const pt=pe?E.DEPTH_STENCIL_ATTACHMENT:E.DEPTH_ATTACHMENT;ct.push(pt)}se.invalidationArray=ct}ne=se.msaaFrameBuffer}else ne=st}z.bindFramebuffer(E.FRAMEBUFFER,ne)}_getVaoKey(y){let E="";for(let z=0;z<y.length;z++){const ne=this.get(y[z]);E+=":"+ne.id}return E}_createVao(y){const{gl:E}=this,z=E.createVertexArray();let ne="",ie=!0;E.bindVertexArray(z);for(let se=0;se<y.length;se++){const ae=y[se],he=this.get(ae);ne+=":"+he.id,E.bindBuffer(E.ARRAY_BUFFER,he.bufferGPU),E.enableVertexAttribArray(se),(ae.isStorageBufferAttribute||ae.isStorageInstancedBufferAttribute)&&(ie=!1);let pe,ve;ae.isInterleavedBufferAttribute===!0?(pe=ae.data.stride*he.bytesPerElement,ve=ae.offset*he.bytesPerElement):(pe=0,ve=0),he.isInteger?E.vertexAttribIPointer(se,ae.itemSize,he.type,pe,ve):E.vertexAttribPointer(se,ae.itemSize,he.type,ae.normalized,pe,ve),ae.isInstancedBufferAttribute&&!ae.isInterleavedBufferAttribute?E.vertexAttribDivisor(se,ae.meshPerAttribute):ae.isInterleavedBufferAttribute&&ae.data.isInstancedInterleavedBuffer&&E.vertexAttribDivisor(se,ae.data.meshPerAttribute)}return E.bindBuffer(E.ARRAY_BUFFER,null),this.vaoCache[ne]=z,{vaoGPU:z,staticVao:ie}}_getTransformFeedback(y){let E="";for(let ie=0;ie<y.length;ie++)E+=":"+y[ie].id;let z=this.transformFeedbackCache[E];if(z!==void 0)return z;const{gl:ne}=this;z=ne.createTransformFeedback(),ne.bindTransformFeedback(ne.TRANSFORM_FEEDBACK,z);for(let ie=0;ie<y.length;ie++){const se=y[ie];ne.bindBufferBase(ne.TRANSFORM_FEEDBACK_BUFFER,ie,se.transformBuffer)}return ne.bindTransformFeedback(ne.TRANSFORM_FEEDBACK,null),this.transformFeedbackCache[E]=z,z}_setupBindings(y,E){const z=this.gl;for(const ne of y)for(const ie of ne.bindings){const ae=this.get(ie).index;if(ie.isUniformsGroup||ie.isUniformBuffer){const he=z.getUniformBlockIndex(E,ie.name);z.uniformBlockBinding(E,he,ae)}else if(ie.isSampledTexture){const he=z.getUniformLocation(E,ie.name);z.uniform1i(he,ae)}}}_bindUniforms(y){const{gl:E,state:z}=this;for(const ne of y)for(const ie of ne.bindings){const se=this.get(ie),ae=se.index;ie.isUniformsGroup||ie.isUniformBuffer?z.bindBufferBase(E.UNIFORM_BUFFER,ae,se.bufferGPU):ie.isSampledTexture&&z.bindTexture(se.glTextureType,se.textureGPU,E.TEXTURE0+ae)}}_useMultisampledExtension(y){return y.multiview===!0?!0:y.samples>0&&this.extensions.has("WEBGL_multisampled_render_to_texture")===!0&&y.autoAllocateDepthBuffer!==!1}dispose(){const y=this.extensions.get("WEBGL_lose_context");y&&y.loseContext(),this.renderer.domElement.removeEventListener("webglcontextlost",this._onContextLost)}}const Mb={PointList:"point-list",LineList:"line-list",LineStrip:"line-strip",TriangleList:"triangle-list",TriangleStrip:"triangle-strip"},bg={Never:"never",Less:"less",Equal:"equal",LessEqual:"less-equal",Greater:"greater",NotEqual:"not-equal",GreaterEqual:"greater-equal",Always:"always"},Pm={Store:"store"},lh={Load:"load",Clear:"clear"},b6={CCW:"ccw"},M6={None:"none",Front:"front",Back:"back"},Tb={Uint16:"uint16",Uint32:"uint32"},Ri={R8Unorm:"r8unorm",R8Snorm:"r8snorm",R8Uint:"r8uint",R8Sint:"r8sint",R16Uint:"r16uint",R16Sint:"r16sint",R16Float:"r16float",RG8Unorm:"rg8unorm",RG8Snorm:"rg8snorm",RG8Uint:"rg8uint",RG8Sint:"rg8sint",R32Uint:"r32uint",R32Sint:"r32sint",R32Float:"r32float",RG16Uint:"rg16uint",RG16Sint:"rg16sint",RG16Float:"rg16float",RGBA8Unorm:"rgba8unorm",RGBA8UnormSRGB:"rgba8unorm-srgb",RGBA8Snorm:"rgba8snorm",RGBA8Uint:"rgba8uint",RGBA8Sint:"rgba8sint",BGRA8Unorm:"bgra8unorm",BGRA8UnormSRGB:"bgra8unorm-srgb",RGB9E5UFloat:"rgb9e5ufloat",RGB10A2Unorm:"rgb10a2unorm",RG11B10UFloat:"rgb10a2unorm",RG32Uint:"rg32uint",RG32Sint:"rg32sint",RG32Float:"rg32float",RGBA16Uint:"rgba16uint",RGBA16Sint:"rgba16sint",RGBA16Float:"rgba16float",RGBA32Uint:"rgba32uint",RGBA32Sint:"rgba32sint",RGBA32Float:"rgba32float",Depth16Unorm:"depth16unorm",Depth24Plus:"depth24plus",Depth24PlusStencil8:"depth24plus-stencil8",Depth32Float:"depth32float",Depth32FloatStencil8:"depth32float-stencil8",BC1RGBAUnorm:"bc1-rgba-unorm",BC1RGBAUnormSRGB:"bc1-rgba-unorm-srgb",BC2RGBAUnorm:"bc2-rgba-unorm",BC2RGBAUnormSRGB:"bc2-rgba-unorm-srgb",BC3RGBAUnorm:"bc3-rgba-unorm",BC3RGBAUnormSRGB:"bc3-rgba-unorm-srgb",BC4RUnorm:"bc4-r-unorm",BC4RSnorm:"bc4-r-snorm",BC5RGUnorm:"bc5-rg-unorm",BC5RGSnorm:"bc5-rg-snorm",BC6HRGBUFloat:"bc6h-rgb-ufloat",BC6HRGBFloat:"bc6h-rgb-float",BC7RGBAUnorm:"bc7-rgba-unorm",BC7RGBAUnormSRGB:"bc7-rgba-srgb",ETC2RGB8Unorm:"etc2-rgb8unorm",ETC2RGB8UnormSRGB:"etc2-rgb8unorm-srgb",ETC2RGB8A1Unorm:"etc2-rgb8a1unorm",ETC2RGB8A1UnormSRGB:"etc2-rgb8a1unorm-srgb",ETC2RGBA8Unorm:"etc2-rgba8unorm",ETC2RGBA8UnormSRGB:"etc2-rgba8unorm-srgb",EACR11Unorm:"eac-r11unorm",EACR11Snorm:"eac-r11snorm",EACRG11Unorm:"eac-rg11unorm",EACRG11Snorm:"eac-rg11snorm",ASTC4x4Unorm:"astc-4x4-unorm",ASTC4x4UnormSRGB:"astc-4x4-unorm-srgb",ASTC5x4Unorm:"astc-5x4-unorm",ASTC5x4UnormSRGB:"astc-5x4-unorm-srgb",ASTC5x5Unorm:"astc-5x5-unorm",ASTC5x5UnormSRGB:"astc-5x5-unorm-srgb",ASTC6x5Unorm:"astc-6x5-unorm",ASTC6x5UnormSRGB:"astc-6x5-unorm-srgb",ASTC6x6Unorm:"astc-6x6-unorm",ASTC6x6UnormSRGB:"astc-6x6-unorm-srgb",ASTC8x5Unorm:"astc-8x5-unorm",ASTC8x5UnormSRGB:"astc-8x5-unorm-srgb",ASTC8x6Unorm:"astc-8x6-unorm",ASTC8x6UnormSRGB:"astc-8x6-unorm-srgb",ASTC8x8Unorm:"astc-8x8-unorm",ASTC8x8UnormSRGB:"astc-8x8-unorm-srgb",ASTC10x5Unorm:"astc-10x5-unorm",ASTC10x5UnormSRGB:"astc-10x5-unorm-srgb",ASTC10x6Unorm:"astc-10x6-unorm",ASTC10x6UnormSRGB:"astc-10x6-unorm-srgb",ASTC10x8Unorm:"astc-10x8-unorm",ASTC10x8UnormSRGB:"astc-10x8-unorm-srgb",ASTC10x10Unorm:"astc-10x10-unorm",ASTC10x10UnormSRGB:"astc-10x10-unorm-srgb",ASTC12x10Unorm:"astc-12x10-unorm",ASTC12x10UnormSRGB:"astc-12x10-unorm-srgb",ASTC12x12Unorm:"astc-12x12-unorm",ASTC12x12UnormSRGB:"astc-12x12-unorm-srgb"},B6={ClampToEdge:"clamp-to-edge",Repeat:"repeat",MirrorRepeat:"mirror-repeat"},nC={Linear:"linear",Nearest:"nearest"},Hu={Zero:"zero",One:"one",Src:"src",OneMinusSrc:"one-minus-src",SrcAlpha:"src-alpha",OneMinusSrcAlpha:"one-minus-src-alpha",Dst:"dst",OneMinusDst:"one-minus-dst",DstAlpha:"dst-alpha",OneMinusDstAlpha:"one-minus-dst-alpha",SrcAlphaSaturated:"src-alpha-saturated",Constant:"constant",OneMinusConstant:"one-minus-constant"},iC={Add:"add",Subtract:"subtract",ReverseSubtract:"reverse-subtract",Min:"min",Max:"max"},Kk={None:0,All:15},hS={Keep:"keep",Zero:"zero",Replace:"replace",Invert:"invert",IncrementClamp:"increment-clamp",DecrementClamp:"decrement-clamp",IncrementWrap:"increment-wrap",DecrementWrap:"decrement-wrap"},T6={Storage:"storage",ReadOnlyStorage:"read-only-storage"},D6={WriteOnly:"write-only",ReadOnly:"read-only",ReadWrite:"read-write"},Jk={NonFiltering:"non-filtering",Comparison:"comparison"},rC={Float:"float",UnfilterableFloat:"unfilterable-float",Depth:"depth",SInt:"sint",UInt:"uint"},qk={TwoD:"2d",ThreeD:"3d"},ig={TwoD:"2d",TwoDArray:"2d-array",Cube:"cube",ThreeD:"3d"},Bee={All:"all"},PT={Vertex:"vertex",Instance:"instance"},N6={DepthClipControl:"depth-clip-control",Depth32FloatStencil8:"depth32float-stencil8",TextureCompressionBC:"texture-compression-bc",TextureCompressionETC2:"texture-compression-etc2",TextureCompressionASTC:"texture-compression-astc",TimestampQuery:"timestamp-query",IndirectFirstInstance:"indirect-first-instance",ShaderF16:"shader-f16",RG11B10UFloat:"rg11b10ufloat-renderable",BGRA8UNormStorage:"bgra8unorm-storage",Float32Filterable:"float32-filterable",ClipDistances:"clip-distances",DualSourceBlending:"dual-source-blending",Subgroups:"subgroups"};class Tee extends S6{constructor(y,E){super(y),this.texture=E,this.version=E?E.version:0,this.isSampler=!0}}class Dee extends Tee{constructor(y,E,z){super(y,E?E.value:null),this.textureNode=E,this.groupNode=z}update(){this.texture=this.textureNode.value}}class Nee extends Nk{constructor(y,E){super(y,E?E.array:null),this.attribute=E,this.isStorageBuffer=!0}}let Fee=0;class Lee extends Nee{constructor(y,E){super("StorageBuffer_"+Fee++,y?y.value:null),this.nodeUniform=y,this.access=y?y.access:_g.READ_WRITE,this.groupNode=E}get buffer(){return this.nodeUniform.value}}class Iee extends aS{constructor(y){super(),this.device=y;const E=`
|
|
struct VarysStruct {
|
|
@builtin( position ) Position: vec4<f32>,
|
|
@location( 0 ) vTex : vec2<f32>
|
|
};
|
|
|
|
@vertex
|
|
fn main( @builtin( vertex_index ) vertexIndex : u32 ) -> VarysStruct {
|
|
|
|
var Varys : VarysStruct;
|
|
|
|
var pos = array< vec2<f32>, 4 >(
|
|
vec2<f32>( -1.0, 1.0 ),
|
|
vec2<f32>( 1.0, 1.0 ),
|
|
vec2<f32>( -1.0, -1.0 ),
|
|
vec2<f32>( 1.0, -1.0 )
|
|
);
|
|
|
|
var tex = array< vec2<f32>, 4 >(
|
|
vec2<f32>( 0.0, 0.0 ),
|
|
vec2<f32>( 1.0, 0.0 ),
|
|
vec2<f32>( 0.0, 1.0 ),
|
|
vec2<f32>( 1.0, 1.0 )
|
|
);
|
|
|
|
Varys.vTex = tex[ vertexIndex ];
|
|
Varys.Position = vec4<f32>( pos[ vertexIndex ], 0.0, 1.0 );
|
|
|
|
return Varys;
|
|
|
|
}
|
|
`,z=`
|
|
@group( 0 ) @binding( 0 )
|
|
var imgSampler : sampler;
|
|
|
|
@group( 0 ) @binding( 1 )
|
|
var img : texture_2d<f32>;
|
|
|
|
@fragment
|
|
fn main( @location( 0 ) vTex : vec2<f32> ) -> @location( 0 ) vec4<f32> {
|
|
|
|
return textureSample( img, imgSampler, vTex );
|
|
|
|
}
|
|
`,ne=`
|
|
@group( 0 ) @binding( 0 )
|
|
var imgSampler : sampler;
|
|
|
|
@group( 0 ) @binding( 1 )
|
|
var img : texture_2d<f32>;
|
|
|
|
@fragment
|
|
fn main( @location( 0 ) vTex : vec2<f32> ) -> @location( 0 ) vec4<f32> {
|
|
|
|
return textureSample( img, imgSampler, vec2( vTex.x, 1.0 - vTex.y ) );
|
|
|
|
}
|
|
`;this.mipmapSampler=y.createSampler({minFilter:nC.Linear}),this.flipYSampler=y.createSampler({minFilter:nC.Nearest}),this.transferPipelines={},this.flipYPipelines={},this.mipmapVertexShaderModule=y.createShaderModule({label:"mipmapVertex",code:E}),this.mipmapFragmentShaderModule=y.createShaderModule({label:"mipmapFragment",code:z}),this.flipYFragmentShaderModule=y.createShaderModule({label:"flipYFragment",code:ne})}getTransferPipeline(y){let E=this.transferPipelines[y];return E===void 0&&(E=this.device.createRenderPipeline({label:`mipmap-${y}`,vertex:{module:this.mipmapVertexShaderModule,entryPoint:"main"},fragment:{module:this.mipmapFragmentShaderModule,entryPoint:"main",targets:[{format:y}]},primitive:{topology:Mb.TriangleStrip,stripIndexFormat:Tb.Uint32},layout:"auto"}),this.transferPipelines[y]=E),E}getFlipYPipeline(y){let E=this.flipYPipelines[y];return E===void 0&&(E=this.device.createRenderPipeline({label:`flipY-${y}`,vertex:{module:this.mipmapVertexShaderModule,entryPoint:"main"},fragment:{module:this.flipYFragmentShaderModule,entryPoint:"main",targets:[{format:y}]},primitive:{topology:Mb.TriangleStrip,stripIndexFormat:Tb.Uint32},layout:"auto"}),this.flipYPipelines[y]=E),E}flipY(y,E,z=0){const ne=E.format,{width:ie,height:se}=E.size,ae=this.getTransferPipeline(ne),he=this.getFlipYPipeline(ne),pe=this.device.createTexture({size:{width:ie,height:se,depthOrArrayLayers:1},format:ne,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING}),ve=y.createView({baseMipLevel:0,mipLevelCount:1,dimension:ig.TwoD,baseArrayLayer:z}),xe=pe.createView({baseMipLevel:0,mipLevelCount:1,dimension:ig.TwoD,baseArrayLayer:0}),Se=this.device.createCommandEncoder({}),Be=(De,Re,Oe)=>{const Le=De.getBindGroupLayout(0),Je=this.device.createBindGroup({layout:Le,entries:[{binding:0,resource:this.flipYSampler},{binding:1,resource:Re}]}),$e=Se.beginRenderPass({colorAttachments:[{view:Oe,loadOp:lh.Clear,storeOp:Pm.Store,clearValue:[0,0,0,0]}]});$e.setPipeline(De),$e.setBindGroup(0,Je),$e.draw(4,1,0,0),$e.end()};Be(ae,ve,xe),Be(he,xe,ve),this.device.queue.submit([Se.finish()]),pe.destroy()}generateMipmaps(y,E,z=0){const ne=this.get(y);ne.useCount===void 0&&(ne.useCount=0,ne.layers=[]);const ie=ne.layers[z]||this._mipmapCreateBundles(y,E,z),se=this.device.createCommandEncoder({});this._mipmapRunBundles(se,ie),this.device.queue.submit([se.finish()]),ne.useCount!==0&&(ne.layers[z]=ie),ne.useCount++}_mipmapCreateBundles(y,E,z){const ne=this.getTransferPipeline(E.format),ie=ne.getBindGroupLayout(0);let se=y.createView({baseMipLevel:0,mipLevelCount:1,dimension:ig.TwoD,baseArrayLayer:z});const ae=[];for(let he=1;he<E.mipLevelCount;he++){const pe=this.device.createBindGroup({layout:ie,entries:[{binding:0,resource:this.mipmapSampler},{binding:1,resource:se}]}),ve=y.createView({baseMipLevel:he,mipLevelCount:1,dimension:ig.TwoD,baseArrayLayer:z}),xe={colorAttachments:[{view:ve,loadOp:lh.Clear,storeOp:Pm.Store,clearValue:[0,0,0,0]}]},Se=this.device.createRenderBundleEncoder({colorFormats:[E.format]});Se.setPipeline(ne),Se.setBindGroup(0,pe),Se.draw(4,1,0,0),ae.push({renderBundles:[Se.finish()],passDescriptor:xe}),se=ve}return ae}_mipmapRunBundles(y,E){const z=E.length;for(let ne=0;ne<z;ne++){const ie=E[ne],se=y.beginRenderPass(ie.passDescriptor);se.executeBundles(ie.renderBundles),se.end()}}}const kee={[uw]:"never",[bx]:"less",[HS]:"equal",[cA]:"less-equal",[cw]:"greater",[K0]:"greater-equal",[hA]:"always",[xs]:"not-equal"},Oee=[0,1,3,2,4,5];class Ree{constructor(y){this.backend=y,this._passUtils=null,this.defaultTexture={},this.defaultCubeTexture={},this.defaultVideoFrame=null,this.colorBuffer=null,this.depthTexture=new jg,this.depthTexture.name="depthBuffer"}createSampler(y){const E=this.backend,z=E.device,ne=E.get(y),ie={addressModeU:this._convertAddressMode(y.wrapS),addressModeV:this._convertAddressMode(y.wrapT),addressModeW:this._convertAddressMode(y.wrapR),magFilter:this._convertFilterMode(y.magFilter),minFilter:this._convertFilterMode(y.minFilter),mipmapFilter:this._convertFilterMode(y.minFilter),maxAnisotropy:1};ie.magFilter===nC.Linear&&ie.minFilter===nC.Linear&&ie.mipmapFilter===nC.Linear&&(ie.maxAnisotropy=y.anisotropy),y.isDepthTexture&&y.compareFunction!==null&&(ie.compare=kee[y.compareFunction]),ne.sampler=z.createSampler(ie)}createDefaultTexture(y){let E;const z=F6(y);y.isCubeTexture?E=this._getDefaultCubeTextureGPU(z):y.isVideoTexture?this.backend.get(y).externalTexture=this._getDefaultVideoFrame():E=this._getDefaultTextureGPU(z),this.backend.get(y).texture=E}createTexture(y,E={}){const z=this.backend,ne=z.get(y);if(ne.initialized)throw new Error("WebGPUTextureUtils: Texture already initialized.");E.needsMipmaps===void 0&&(E.needsMipmaps=!1),E.levels===void 0&&(E.levels=1),E.depth===void 0&&(E.depth=1);const{width:ie,height:se,depth:ae,levels:he}=E;y.isFramebufferTexture&&(E.renderTarget?E.format=this.backend.utils.getCurrentColorFormat(E.renderTarget):E.format=this.backend.utils.getPreferredCanvasFormat());const pe=this._getDimension(y),ve=y.internalFormat||E.format||F6(y,z.device);ne.format=ve;const{samples:xe,primarySamples:Se,isMSAA:Be}=z.utils.getTextureSampleData(y);let De=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC;y.isStorageTexture===!0&&(De|=GPUTextureUsage.STORAGE_BINDING),y.isCompressedTexture!==!0&&y.isCompressedArrayTexture!==!0&&(De|=GPUTextureUsage.RENDER_ATTACHMENT);const Re={label:y.name,size:{width:ie,height:se,depthOrArrayLayers:ae},mipLevelCount:he,sampleCount:Se,dimension:pe,format:ve,usage:De};if(y.isVideoTexture){const Oe=y.source.data,Le=new VideoFrame(Oe);Re.size.width=Le.displayWidth,Re.size.height=Le.displayHeight,Le.close(),ne.externalTexture=Oe}else{if(ve===void 0){console.warn("WebGPURenderer: Texture format not supported."),this.createDefaultTexture(y);return}y.isCubeTexture&&(Re.textureBindingViewDimension=ig.Cube),ne.texture=z.device.createTexture(Re)}if(Be){const Oe=Object.assign({},Re);Oe.label=Oe.label+"-msaa",Oe.sampleCount=xe,ne.msaaTexture=z.device.createTexture(Oe)}ne.initialized=!0,ne.textureDescriptorGPU=Re}destroyTexture(y){const E=this.backend,z=E.get(y);z.texture!==void 0&&z.texture.destroy(),z.msaaTexture!==void 0&&z.msaaTexture.destroy(),E.delete(y)}destroySampler(y){const z=this.backend.get(y);delete z.sampler}generateMipmaps(y){const E=this.backend.get(y);if(y.isCubeTexture)for(let z=0;z<6;z++)this._generateMipmaps(E.texture,E.textureDescriptorGPU,z);else{const z=y.image.depth||1;for(let ne=0;ne<z;ne++)this._generateMipmaps(E.texture,E.textureDescriptorGPU,ne)}}getColorBuffer(){this.colorBuffer&&this.colorBuffer.destroy();const y=this.backend,{width:E,height:z}=y.getDrawingBufferSize();return this.colorBuffer=y.device.createTexture({label:"colorBuffer",size:{width:E,height:z,depthOrArrayLayers:1},sampleCount:y.utils.getSampleCount(y.renderer.samples),format:y.utils.getPreferredCanvasFormat(),usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC}),this.colorBuffer}getDepthBuffer(y=!0,E=!1){const z=this.backend,{width:ne,height:ie}=z.getDrawingBufferSize(),se=this.depthTexture,ae=z.get(se).texture;let he,pe;if(E?(he=Ig,pe=xh):y&&(he=Lg,pe=Oc),ae!==void 0){if(se.image.width===ne&&se.image.height===ie&&se.format===he&&se.type===pe)return ae;this.destroyTexture(se)}return se.name="depthBuffer",se.format=he,se.type=pe,se.image.width=ne,se.image.height=ie,this.createTexture(se,{width:ne,height:ie}),z.get(se).texture}updateTexture(y,E){const z=this.backend.get(y),{textureDescriptorGPU:ne}=z;if(!(y.isRenderTargetTexture||ne===void 0)){if(y.isDataTexture)this._copyBufferToTexture(E.image,z.texture,ne,0,y.flipY);else if(y.isArrayTexture||y.isDataArrayTexture||y.isData3DTexture)for(let ie=0;ie<E.image.depth;ie++)this._copyBufferToTexture(E.image,z.texture,ne,ie,y.flipY,ie);else if(y.isCompressedTexture||y.isCompressedArrayTexture)this._copyCompressedBufferToTexture(y.mipmaps,z.texture,ne);else if(y.isCubeTexture)this._copyCubeMapToTexture(E.images,z.texture,ne,y.flipY,y.premultiplyAlpha);else if(y.isVideoTexture){const ie=y.source.data;z.externalTexture=ie}else this._copyImageToTexture(E.image,z.texture,ne,0,y.flipY,y.premultiplyAlpha);z.version=y.version,y.onUpdate&&y.onUpdate(y)}}copyTextureToBuffer(y,E,z,ne,ie,se){return Vl(this,null,function*(){const ae=this.backend.device,he=this.backend.get(y),pe=he.texture,ve=he.textureDescriptorGPU.format,xe=this._getBytesPerTexel(ve);let Se=ne*xe;Se=Math.ceil(Se/256)*256;const Be=ae.createBuffer({size:ne*ie*xe,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),De=ae.createCommandEncoder();De.copyTextureToBuffer({texture:pe,origin:{x:E,y:z,z:se}},{buffer:Be,bytesPerRow:Se},{width:ne,height:ie});const Re=this._getTypedArrayType(ve);ae.queue.submit([De.finish()]),yield Be.mapAsync(GPUMapMode.READ);const Oe=Be.getMappedRange();return new Re(Oe)})}_getDefaultTextureGPU(y){let E=this.defaultTexture[y];if(E===void 0){const z=new nh;z.minFilter=Ic,z.magFilter=Ic,this.createTexture(z,{width:1,height:1,format:y}),this.defaultTexture[y]=E=z}return this.backend.get(E).texture}_getDefaultCubeTextureGPU(y){let E=this.defaultTexture[y];if(E===void 0){const z=new Gr;z.minFilter=Ic,z.magFilter=Ic,this.createTexture(z,{width:1,height:1,depth:6}),this.defaultCubeTexture[y]=E=z}return this.backend.get(E).texture}_getDefaultVideoFrame(){let y=this.defaultVideoFrame;if(y===null){const E={timestamp:0,codedWidth:1,codedHeight:1,format:"RGBA"};this.defaultVideoFrame=y=new VideoFrame(new Uint8Array([0,0,0,255]),E)}return y}_copyCubeMapToTexture(y,E,z,ne,ie){for(let se=0;se<6;se++){const ae=y[se],he=ne===!0?Oee[se]:se;ae.isDataTexture?this._copyBufferToTexture(ae.image,E,z,he,ne):this._copyImageToTexture(ae,E,z,he,ne,ie)}}_copyImageToTexture(y,E,z,ne,ie,se){this.backend.device.queue.copyExternalImageToTexture({source:y,flipY:ie},{texture:E,mipLevel:0,origin:{x:0,y:0,z:ne},premultipliedAlpha:se},{width:y.width,height:y.height,depthOrArrayLayers:1})}_getPassUtils(){let y=this._passUtils;return y===null&&(this._passUtils=y=new Iee(this.backend.device)),y}_generateMipmaps(y,E,z=0){this._getPassUtils().generateMipmaps(y,E,z)}_flipY(y,E,z=0){this._getPassUtils().flipY(y,E,z)}_copyBufferToTexture(y,E,z,ne,ie,se=0){const ae=this.backend.device,he=y.data,pe=this._getBytesPerTexel(z.format),ve=y.width*pe;ae.queue.writeTexture({texture:E,mipLevel:0,origin:{x:0,y:0,z:ne}},he,{offset:y.width*y.height*pe*se,bytesPerRow:ve},{width:y.width,height:y.height,depthOrArrayLayers:1}),ie===!0&&this._flipY(E,z,ne)}_copyCompressedBufferToTexture(y,E,z){const ne=this.backend.device,ie=this._getBlockData(z.format),se=z.size.depthOrArrayLayers>1;for(let ae=0;ae<y.length;ae++){const he=y[ae],pe=he.width,ve=he.height,xe=se?z.size.depthOrArrayLayers:1,Se=Math.ceil(pe/ie.width)*ie.byteLength,Be=Se*Math.ceil(ve/ie.height);for(let De=0;De<xe;De++)ne.queue.writeTexture({texture:E,mipLevel:ae,origin:{x:0,y:0,z:De}},he.data,{offset:De*Be,bytesPerRow:Se,rowsPerImage:Math.ceil(ve/ie.height)},{width:Math.ceil(pe/ie.width)*ie.width,height:Math.ceil(ve/ie.height)*ie.height,depthOrArrayLayers:1})}}_getBlockData(y){if(y===Ri.BC1RGBAUnorm||y===Ri.BC1RGBAUnormSRGB)return{byteLength:8,width:4,height:4};if(y===Ri.BC2RGBAUnorm||y===Ri.BC2RGBAUnormSRGB)return{byteLength:16,width:4,height:4};if(y===Ri.BC3RGBAUnorm||y===Ri.BC3RGBAUnormSRGB)return{byteLength:16,width:4,height:4};if(y===Ri.BC4RUnorm||y===Ri.BC4RSnorm)return{byteLength:8,width:4,height:4};if(y===Ri.BC5RGUnorm||y===Ri.BC5RGSnorm)return{byteLength:16,width:4,height:4};if(y===Ri.BC6HRGBUFloat||y===Ri.BC6HRGBFloat)return{byteLength:16,width:4,height:4};if(y===Ri.BC7RGBAUnorm||y===Ri.BC7RGBAUnormSRGB)return{byteLength:16,width:4,height:4};if(y===Ri.ETC2RGB8Unorm||y===Ri.ETC2RGB8UnormSRGB)return{byteLength:8,width:4,height:4};if(y===Ri.ETC2RGB8A1Unorm||y===Ri.ETC2RGB8A1UnormSRGB)return{byteLength:8,width:4,height:4};if(y===Ri.ETC2RGBA8Unorm||y===Ri.ETC2RGBA8UnormSRGB)return{byteLength:16,width:4,height:4};if(y===Ri.EACR11Unorm)return{byteLength:8,width:4,height:4};if(y===Ri.EACR11Snorm)return{byteLength:8,width:4,height:4};if(y===Ri.EACRG11Unorm)return{byteLength:16,width:4,height:4};if(y===Ri.EACRG11Snorm)return{byteLength:16,width:4,height:4};if(y===Ri.ASTC4x4Unorm||y===Ri.ASTC4x4UnormSRGB)return{byteLength:16,width:4,height:4};if(y===Ri.ASTC5x4Unorm||y===Ri.ASTC5x4UnormSRGB)return{byteLength:16,width:5,height:4};if(y===Ri.ASTC5x5Unorm||y===Ri.ASTC5x5UnormSRGB)return{byteLength:16,width:5,height:5};if(y===Ri.ASTC6x5Unorm||y===Ri.ASTC6x5UnormSRGB)return{byteLength:16,width:6,height:5};if(y===Ri.ASTC6x6Unorm||y===Ri.ASTC6x6UnormSRGB)return{byteLength:16,width:6,height:6};if(y===Ri.ASTC8x5Unorm||y===Ri.ASTC8x5UnormSRGB)return{byteLength:16,width:8,height:5};if(y===Ri.ASTC8x6Unorm||y===Ri.ASTC8x6UnormSRGB)return{byteLength:16,width:8,height:6};if(y===Ri.ASTC8x8Unorm||y===Ri.ASTC8x8UnormSRGB)return{byteLength:16,width:8,height:8};if(y===Ri.ASTC10x5Unorm||y===Ri.ASTC10x5UnormSRGB)return{byteLength:16,width:10,height:5};if(y===Ri.ASTC10x6Unorm||y===Ri.ASTC10x6UnormSRGB)return{byteLength:16,width:10,height:6};if(y===Ri.ASTC10x8Unorm||y===Ri.ASTC10x8UnormSRGB)return{byteLength:16,width:10,height:8};if(y===Ri.ASTC10x10Unorm||y===Ri.ASTC10x10UnormSRGB)return{byteLength:16,width:10,height:10};if(y===Ri.ASTC12x10Unorm||y===Ri.ASTC12x10UnormSRGB)return{byteLength:16,width:12,height:10};if(y===Ri.ASTC12x12Unorm||y===Ri.ASTC12x12UnormSRGB)return{byteLength:16,width:12,height:12}}_convertAddressMode(y){let E=B6.ClampToEdge;return y===fp?E=B6.Repeat:y===um&&(E=B6.MirrorRepeat),E}_convertFilterMode(y){let E=nC.Linear;return(y===Ic||y===Bm||y===gp)&&(E=nC.Nearest),E}_getBytesPerTexel(y){if(y===Ri.R8Unorm||y===Ri.R8Snorm||y===Ri.R8Uint||y===Ri.R8Sint)return 1;if(y===Ri.R16Uint||y===Ri.R16Sint||y===Ri.R16Float||y===Ri.RG8Unorm||y===Ri.RG8Snorm||y===Ri.RG8Uint||y===Ri.RG8Sint)return 2;if(y===Ri.R32Uint||y===Ri.R32Sint||y===Ri.R32Float||y===Ri.RG16Uint||y===Ri.RG16Sint||y===Ri.RG16Float||y===Ri.RGBA8Unorm||y===Ri.RGBA8UnormSRGB||y===Ri.RGBA8Snorm||y===Ri.RGBA8Uint||y===Ri.RGBA8Sint||y===Ri.BGRA8Unorm||y===Ri.BGRA8UnormSRGB||y===Ri.RGB9E5UFloat||y===Ri.RGB10A2Unorm||y===Ri.RG11B10UFloat||y===Ri.Depth32Float||y===Ri.Depth24Plus||y===Ri.Depth24PlusStencil8||y===Ri.Depth32FloatStencil8)return 4;if(y===Ri.RG32Uint||y===Ri.RG32Sint||y===Ri.RG32Float||y===Ri.RGBA16Uint||y===Ri.RGBA16Sint||y===Ri.RGBA16Float)return 8;if(y===Ri.RGBA32Uint||y===Ri.RGBA32Sint||y===Ri.RGBA32Float)return 16}_getTypedArrayType(y){if(y===Ri.R8Uint)return Uint8Array;if(y===Ri.R8Sint)return Int8Array;if(y===Ri.R8Unorm)return Uint8Array;if(y===Ri.R8Snorm)return Int8Array;if(y===Ri.RG8Uint)return Uint8Array;if(y===Ri.RG8Sint)return Int8Array;if(y===Ri.RG8Unorm)return Uint8Array;if(y===Ri.RG8Snorm)return Int8Array;if(y===Ri.RGBA8Uint)return Uint8Array;if(y===Ri.RGBA8Sint)return Int8Array;if(y===Ri.RGBA8Unorm)return Uint8Array;if(y===Ri.RGBA8Snorm)return Int8Array;if(y===Ri.R16Uint)return Uint16Array;if(y===Ri.R16Sint)return Int16Array;if(y===Ri.RG16Uint)return Uint16Array;if(y===Ri.RG16Sint)return Int16Array;if(y===Ri.RGBA16Uint)return Uint16Array;if(y===Ri.RGBA16Sint)return Int16Array;if(y===Ri.R16Float||y===Ri.RG16Float||y===Ri.RGBA16Float)return Uint16Array;if(y===Ri.R32Uint)return Uint32Array;if(y===Ri.R32Sint)return Int32Array;if(y===Ri.R32Float)return Float32Array;if(y===Ri.RG32Uint)return Uint32Array;if(y===Ri.RG32Sint)return Int32Array;if(y===Ri.RG32Float)return Float32Array;if(y===Ri.RGBA32Uint)return Uint32Array;if(y===Ri.RGBA32Sint)return Int32Array;if(y===Ri.RGBA32Float)return Float32Array;if(y===Ri.BGRA8Unorm||y===Ri.BGRA8UnormSRGB)return Uint8Array;if(y===Ri.RGB10A2Unorm||y===Ri.RGB9E5UFloat||y===Ri.RG11B10UFloat)return Uint32Array;if(y===Ri.Depth32Float)return Float32Array;if(y===Ri.Depth24Plus||y===Ri.Depth24PlusStencil8)return Uint32Array;if(y===Ri.Depth32FloatStencil8)return Float32Array}_getDimension(y){let E;return y.isData3DTexture?E=qk.ThreeD:E=qk.TwoD,E}}function F6(ee,y=null){const E=ee.format,z=ee.type,ne=ee.colorSpace,ie=su.getTransfer(ne);let se;if(ee.isCompressedTexture===!0||ee.isCompressedArrayTexture===!0)switch(E){case Z0:se=ie===Ua?Ri.BC1RGBAUnormSRGB:Ri.BC1RGBAUnorm;break;case Jv:se=ie===Ua?Ri.BC2RGBAUnormSRGB:Ri.BC2RGBAUnorm;break;case Og:se=ie===Ua?Ri.BC3RGBAUnormSRGB:Ri.BC3RGBAUnorm;break;case zl:se=ie===Ua?Ri.ETC2RGB8UnormSRGB:Ri.ETC2RGB8Unorm;break;case hd:se=ie===Ua?Ri.ETC2RGBA8UnormSRGB:Ri.ETC2RGBA8Unorm;break;case Bh:se=ie===Ua?Ri.ASTC4x4UnormSRGB:Ri.ASTC4x4Unorm;break;case vp:se=ie===Ua?Ri.ASTC5x4UnormSRGB:Ri.ASTC5x4Unorm;break;case l0:se=ie===Ua?Ri.ASTC5x5UnormSRGB:Ri.ASTC5x5Unorm;break;case dg:se=ie===Ua?Ri.ASTC6x5UnormSRGB:Ri.ASTC6x5Unorm;break;case Zp:se=ie===Ua?Ri.ASTC6x6UnormSRGB:Ri.ASTC6x6Unorm;break;case Ed:se=ie===Ua?Ri.ASTC8x5UnormSRGB:Ri.ASTC8x5Unorm;break;case u0:se=ie===Ua?Ri.ASTC8x6UnormSRGB:Ri.ASTC8x6Unorm;break;case c0:se=ie===Ua?Ri.ASTC8x8UnormSRGB:Ri.ASTC8x8Unorm;break;case wx:se=ie===Ua?Ri.ASTC10x5UnormSRGB:Ri.ASTC10x5Unorm;break;case lc:se=ie===Ua?Ri.ASTC10x6UnormSRGB:Ri.ASTC10x6Unorm;break;case qv:se=ie===Ua?Ri.ASTC10x8UnormSRGB:Ri.ASTC10x8Unorm;break;case _v:se=ie===Ua?Ri.ASTC10x10UnormSRGB:Ri.ASTC10x10Unorm;break;case $v:se=ie===Ua?Ri.ASTC12x10UnormSRGB:Ri.ASTC12x10Unorm;break;case ey:se=ie===Ua?Ri.ASTC12x12UnormSRGB:Ri.ASTC12x12Unorm;break;case Ws:se=ie===Ua?Ri.RGBA8UnormSRGB:Ri.RGBA8Unorm;break;default:console.error("WebGPURenderer: Unsupported texture format.",E)}else switch(E){case Ws:switch(z){case Zv:se=Ri.RGBA8Snorm;break;case iA:se=Ri.RGBA16Sint;break;case Tm:se=Ri.RGBA16Uint;break;case Oc:se=Ri.RGBA32Uint;break;case sf:se=Ri.RGBA32Sint;break;case yh:se=ie===Ua?Ri.RGBA8UnormSRGB:Ri.RGBA8Unorm;break;case Hc:se=Ri.RGBA16Float;break;case Ah:se=Ri.RGBA32Float;break;default:console.error("WebGPURenderer: Unsupported texture type with RGBAFormat.",z)}break;case Yv:switch(z){case a0:se=Ri.RGB9E5UFloat;break;default:console.error("WebGPURenderer: Unsupported texture type with RGBFormat.",z)}break;case rA:switch(z){case Zv:se=Ri.R8Snorm;break;case iA:se=Ri.R16Sint;break;case Tm:se=Ri.R16Uint;break;case Oc:se=Ri.R32Uint;break;case sf:se=Ri.R32Sint;break;case yh:se=Ri.R8Unorm;break;case Hc:se=Ri.R16Float;break;case Ah:se=Ri.R32Float;break;default:console.error("WebGPURenderer: Unsupported texture type with RedFormat.",z)}break;case kg:switch(z){case Zv:se=Ri.RG8Snorm;break;case iA:se=Ri.RG16Sint;break;case Tm:se=Ri.RG16Uint;break;case Oc:se=Ri.RG32Uint;break;case sf:se=Ri.RG32Sint;break;case yh:se=Ri.RG8Unorm;break;case Hc:se=Ri.RG16Float;break;case Ah:se=Ri.RG32Float;break;default:console.error("WebGPURenderer: Unsupported texture type with RGFormat.",z)}break;case Lg:switch(z){case Tm:se=Ri.Depth16Unorm;break;case Oc:se=Ri.Depth24Plus;break;case Ah:se=Ri.Depth32Float;break;default:console.error("WebGPURenderer: Unsupported texture type with DepthFormat.",z)}break;case Ig:switch(z){case xh:se=Ri.Depth24PlusStencil8;break;case Ah:y&&y.features.has(N6.Depth32FloatStencil8)===!1&&console.error('WebGPURenderer: Depth textures with DepthStencilFormat + FloatType can only be used with the "depth32float-stencil8" GPU feature.'),se=Ri.Depth32FloatStencil8;break;default:console.error("WebGPURenderer: Unsupported texture type with DepthStencilFormat.",z)}break;case Dm:switch(z){case sf:se=Ri.R32Sint;break;case Oc:se=Ri.R32Uint;break;default:console.error("WebGPURenderer: Unsupported texture type with RedIntegerFormat.",z)}break;case Qp:switch(z){case sf:se=Ri.RG32Sint;break;case Oc:se=Ri.RG32Uint;break;default:console.error("WebGPURenderer: Unsupported texture type with RGIntegerFormat.",z)}break;case oA:switch(z){case sf:se=Ri.RGBA32Sint;break;case Oc:se=Ri.RGBA32Uint;break;default:console.error("WebGPURenderer: Unsupported texture type with RGBAIntegerFormat.",z)}break;default:console.error("WebGPURenderer: Unsupported texture format.",E)}return se}const zee=/^[fn]*\s*([a-z_0-9]+)?\s*\(([\s\S]*?)\)\s*[\-\>]*\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/i,Uee=/([a-z_0-9]+)\s*:\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/ig,_k={f32:"float",i32:"int",u32:"uint",bool:"bool","vec2<f32>":"vec2","vec2<i32>":"ivec2","vec2<u32>":"uvec2","vec2<bool>":"bvec2",vec2f:"vec2",vec2i:"ivec2",vec2u:"uvec2",vec2b:"bvec2","vec3<f32>":"vec3","vec3<i32>":"ivec3","vec3<u32>":"uvec3","vec3<bool>":"bvec3",vec3f:"vec3",vec3i:"ivec3",vec3u:"uvec3",vec3b:"bvec3","vec4<f32>":"vec4","vec4<i32>":"ivec4","vec4<u32>":"uvec4","vec4<bool>":"bvec4",vec4f:"vec4",vec4i:"ivec4",vec4u:"uvec4",vec4b:"bvec4","mat2x2<f32>":"mat2",mat2x2f:"mat2","mat3x3<f32>":"mat3",mat3x3f:"mat3","mat4x4<f32>":"mat4",mat4x4f:"mat4",sampler:"sampler",texture_1d:"texture",texture_2d:"texture",texture_2d_array:"texture",texture_multisampled_2d:"cubeTexture",texture_depth_2d:"depthTexture",texture_depth_2d_array:"depthTexture",texture_depth_multisampled_2d:"depthTexture",texture_depth_cube:"depthTexture",texture_depth_cube_array:"depthTexture",texture_3d:"texture3D",texture_cube:"cubeTexture",texture_cube_array:"cubeTexture",texture_storage_1d:"storageTexture",texture_storage_2d:"storageTexture",texture_storage_2d_array:"storageTexture",texture_storage_3d:"storageTexture"},Hee=ee=>{ee=ee.trim();const y=ee.match(zee);if(y!==null&&y.length===4){const E=y[2],z=[];let ne=null;for(;(ne=Uee.exec(E))!==null;)z.push({name:ne[1],type:ne[2]});const ie=[];for(let ve=0;ve<z.length;ve++){const{name:xe,type:Se}=z[ve];let Be=Se;Be.startsWith("ptr")?Be="pointer":(Be.startsWith("texture")&&(Be=Se.split("<")[0]),Be=_k[Be]),ie.push(new p6(Be,xe))}const se=ee.substring(y[0].length),ae=y[3]||"void",he=y[1]!==void 0?y[1]:"";return{type:_k[ae]||ae,inputs:ie,name:he,inputsCode:E,blockCode:se,outputType:ae}}else throw new Error("FunctionNode: Function is not a WGSL code.")};class Vee extends v6{constructor(y){const{type:E,inputs:z,name:ne,inputsCode:ie,blockCode:se,outputType:ae}=Hee(y);super(E,z,ne),this.inputsCode=ie,this.blockCode=se,this.outputType=ae}getCode(y=this.name){const E=this.outputType!=="void"?"-> "+this.outputType:"";return`fn ${y} ( ${this.inputsCode.trim()} ) ${E}`+this.blockCode}}class jee extends Pk{parseFunction(y){return new Vee(y)}}const Nb=typeof self!="undefined"?self.GPUShaderStage:{VERTEX:1,FRAGMENT:2,COMPUTE:4},Gee={[_g.READ_ONLY]:"read",[_g.WRITE_ONLY]:"write",[_g.READ_WRITE]:"read_write"},$k={[fp]:"repeat",[pp]:"clamp",[um]:"mirror"},CT={vertex:Nb?Nb.VERTEX:1,fragment:Nb?Nb.FRAGMENT:2,compute:Nb?Nb.COMPUTE:4},eO={instance:!0,swizzleAssign:!1,storageBuffer:!0},Xee={"^^":"tsl_xor"},Wee={float:"f32",int:"i32",uint:"u32",bool:"bool",color:"vec3<f32>",vec2:"vec2<f32>",ivec2:"vec2<i32>",uvec2:"vec2<u32>",bvec2:"vec2<bool>",vec3:"vec3<f32>",ivec3:"vec3<i32>",uvec3:"vec3<u32>",bvec3:"vec3<bool>",vec4:"vec4<f32>",ivec4:"vec4<i32>",uvec4:"vec4<u32>",bvec4:"vec4<bool>",mat2:"mat2x2<f32>",mat3:"mat3x3<f32>",mat4:"mat4x4<f32>"},tO={},Dv={tsl_xor:new ip("fn tsl_xor( a : bool, b : bool ) -> bool { return ( a || b ) && !( a && b ); }"),mod_float:new ip("fn tsl_mod_float( x : f32, y : f32 ) -> f32 { return x - y * floor( x / y ); }"),mod_vec2:new ip("fn tsl_mod_vec2( x : vec2f, y : vec2f ) -> vec2f { return x - y * floor( x / y ); }"),mod_vec3:new ip("fn tsl_mod_vec3( x : vec3f, y : vec3f ) -> vec3f { return x - y * floor( x / y ); }"),mod_vec4:new ip("fn tsl_mod_vec4( x : vec4f, y : vec4f ) -> vec4f { return x - y * floor( x / y ); }"),equals_bool:new ip("fn tsl_equals_bool( a : bool, b : bool ) -> bool { return a == b; }"),equals_bvec2:new ip("fn tsl_equals_bvec2( a : vec2f, b : vec2f ) -> vec2<bool> { return vec2<bool>( a.x == b.x, a.y == b.y ); }"),equals_bvec3:new ip("fn tsl_equals_bvec3( a : vec3f, b : vec3f ) -> vec3<bool> { return vec3<bool>( a.x == b.x, a.y == b.y, a.z == b.z ); }"),equals_bvec4:new ip("fn tsl_equals_bvec4( a : vec4f, b : vec4f ) -> vec4<bool> { return vec4<bool>( a.x == b.x, a.y == b.y, a.z == b.z, a.w == b.w ); }"),repeatWrapping_float:new ip("fn tsl_repeatWrapping_float( coord: f32 ) -> f32 { return fract( coord ); }"),mirrorWrapping_float:new ip("fn tsl_mirrorWrapping_float( coord: f32 ) -> f32 { let mirrored = fract( coord * 0.5 ) * 2.0; return 1.0 - abs( 1.0 - mirrored ); }"),clampWrapping_float:new ip("fn tsl_clampWrapping_float( coord: f32 ) -> f32 { return clamp( coord, 0.0, 1.0 ); }"),biquadraticTexture:new ip(`
|
|
fn tsl_biquadraticTexture( map : texture_2d<f32>, coord : vec2f, iRes : vec2u, level : u32 ) -> vec4f {
|
|
|
|
let res = vec2f( iRes );
|
|
|
|
let uvScaled = coord * res;
|
|
let uvWrapping = ( ( uvScaled % res ) + res ) % res;
|
|
|
|
// https://www.shadertoy.com/view/WtyXRy
|
|
|
|
let uv = uvWrapping - 0.5;
|
|
let iuv = floor( uv );
|
|
let f = fract( uv );
|
|
|
|
let rg1 = textureLoad( map, vec2u( iuv + vec2( 0.5, 0.5 ) ) % iRes, level );
|
|
let rg2 = textureLoad( map, vec2u( iuv + vec2( 1.5, 0.5 ) ) % iRes, level );
|
|
let rg3 = textureLoad( map, vec2u( iuv + vec2( 0.5, 1.5 ) ) % iRes, level );
|
|
let rg4 = textureLoad( map, vec2u( iuv + vec2( 1.5, 1.5 ) ) % iRes, level );
|
|
|
|
return mix( mix( rg1, rg2, f.x ), mix( rg3, rg4, f.x ), f.y );
|
|
|
|
}
|
|
`)},QM={dFdx:"dpdx",dFdy:"- dpdy",mod_float:"tsl_mod_float",mod_vec2:"tsl_mod_vec2",mod_vec3:"tsl_mod_vec3",mod_vec4:"tsl_mod_vec4",equals_bool:"tsl_equals_bool",equals_bvec2:"tsl_equals_bvec2",equals_bvec3:"tsl_equals_bvec3",equals_bvec4:"tsl_equals_bvec4",inversesqrt:"inverseSqrt",bitcast:"bitcast<f32>"};typeof navigator!="undefined"&&/Windows/g.test(navigator.userAgent)&&(Dv.pow_float=new ip("fn tsl_pow_float( a : f32, b : f32 ) -> f32 { return select( -pow( -a, b ), pow( a, b ), a > 0.0 ); }"),Dv.pow_vec2=new ip("fn tsl_pow_vec2( a : vec2f, b : vec2f ) -> vec2f { return vec2f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ) ); }",[Dv.pow_float]),Dv.pow_vec3=new ip("fn tsl_pow_vec3( a : vec3f, b : vec3f ) -> vec3f { return vec3f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ), tsl_pow_float( a.z, b.z ) ); }",[Dv.pow_float]),Dv.pow_vec4=new ip("fn tsl_pow_vec4( a : vec4f, b : vec4f ) -> vec4f { return vec4f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ), tsl_pow_float( a.z, b.z ), tsl_pow_float( a.w, b.w ) ); }",[Dv.pow_float]),QM.pow_float="tsl_pow_float",QM.pow_vec2="tsl_pow_vec2",QM.pow_vec3="tsl_pow_vec3",QM.pow_vec4="tsl_pow_vec4");let nO="";(typeof navigator!="undefined"&&/Firefox|Deno/g.test(navigator.userAgent))!==!0&&(nO+=`diagnostic( off, derivative_uniformity );
|
|
`);class Qee extends wk{constructor(y,E){super(y,E,new jee),this.uniformGroups={},this.builtins={},this.directives={},this.scopedArrays=new Map}needsToWorkingColorSpace(y){return y.isVideoTexture===!0&&y.colorSpace!==yp}_generateTextureSample(y,E,z,ne,ie=this.shaderStage){return ie==="fragment"?ne?`textureSample( ${E}, ${E}_sampler, ${z}, ${ne} )`:`textureSample( ${E}, ${E}_sampler, ${z} )`:this._generateTextureSampleLevel(y,E,z,"0",ne)}_generateVideoSample(y,E,z=this.shaderStage){if(z==="fragment")return`textureSampleBaseClampToEdge( ${y}, ${y}_sampler, vec2<f32>( ${E}.x, 1.0 - ${E}.y ) )`;console.error(`WebGPURenderer: THREE.VideoTexture does not support ${z} shader.`)}_generateTextureSampleLevel(y,E,z,ne,ie){return this.isUnfilterable(y)===!1?`textureSampleLevel( ${E}, ${E}_sampler, ${z}, ${ne} )`:this.isFilteredTexture(y)?this.generateFilteredTexture(y,E,z,ne):this.generateTextureLod(y,E,z,ie,ne)}generateWrapFunction(y){const E=`tsl_coord_${$k[y.wrapS]}S_${$k[y.wrapT]}_${y.isData3DTexture?"3d":"2d"}T`;let z=tO[E];if(z===void 0){const ne=[],ie=y.isData3DTexture?"vec3f":"vec2f";let se=`fn ${E}( coord : ${ie} ) -> ${ie} {
|
|
|
|
return ${ie}(
|
|
`;const ae=(he,pe)=>{he===fp?(ne.push(Dv.repeatWrapping_float),se+=` tsl_repeatWrapping_float( coord.${pe} )`):he===pp?(ne.push(Dv.clampWrapping_float),se+=` tsl_clampWrapping_float( coord.${pe} )`):he===um?(ne.push(Dv.mirrorWrapping_float),se+=` tsl_mirrorWrapping_float( coord.${pe} )`):(se+=` coord.${pe}`,console.warn(`WebGPURenderer: Unsupported texture wrap type "${he}" for vertex shader.`))};ae(y.wrapS,"x"),se+=`,
|
|
`,ae(y.wrapT,"y"),y.isData3DTexture&&(se+=`,
|
|
`,ae(y.wrapR,"z")),se+=`
|
|
);
|
|
|
|
}
|
|
`,tO[E]=z=new ip(se,ne)}return z.build(this),E}generateArrayDeclaration(y,E){return`array< ${this.getType(y)}, ${E} >`}generateTextureDimension(y,E,z){const ne=this.getDataFromNode(y,this.shaderStage,this.globalCache);ne.dimensionsSnippet===void 0&&(ne.dimensionsSnippet={});let ie=ne.dimensionsSnippet[z];if(ne.dimensionsSnippet[z]===void 0){let se,ae;const{primarySamples:he}=this.renderer.backend.utils.getTextureSampleData(y),pe=he>1;y.isData3DTexture?ae="vec3<u32>":ae="vec2<u32>",pe||y.isVideoTexture||y.isStorageTexture?se=E:se=`${E}${z?`, u32( ${z} )`:""}`,ie=new FB(new kB(`textureDimensions( ${se} )`,ae)),ne.dimensionsSnippet[z]=ie,(y.isArrayTexture||y.isDataArrayTexture||y.isData3DTexture)&&(ne.arrayLayerCount=new FB(new kB(`textureNumLayers(${E})`,"u32"))),y.isTextureCube&&(ne.cubeFaceCount=new FB(new kB("6u","u32")))}return ie.build(this)}generateFilteredTexture(y,E,z,ne="0u"){this._include("biquadraticTexture");const ie=this.generateWrapFunction(y),se=this.generateTextureDimension(y,E,ne);return`tsl_biquadraticTexture( ${E}, ${ie}( ${z} ), ${se}, u32( ${ne} ) )`}generateTextureLod(y,E,z,ne,ie="0u"){const se=this.generateWrapFunction(y),ae=this.generateTextureDimension(y,E,ie),he=y.isData3DTexture?"vec3":"vec2",pe=`${he}<u32>( ${se}( ${z} ) * ${he}<f32>( ${ae} ) )`;return this.generateTextureLoad(y,E,pe,ne,ie)}generateTextureLoad(y,E,z,ne,ie="0u"){let se;return y.isVideoTexture===!0?se=`textureLoad( ${E}, ${z} )`:ne?se=`textureLoad( ${E}, ${z}, ${ne}, u32( ${ie} ) )`:(se=`textureLoad( ${E}, ${z}, u32( ${ie} ) )`,this.renderer.backend.compatibilityMode&&y.isDepthTexture&&(se+=".x")),se}generateTextureStore(y,E,z,ne,ie){let se;return ne?se=`textureStore( ${E}, ${z}, ${ne}, ${ie} )`:se=`textureStore( ${E}, ${z}, ${ie} )`,se}isSampleCompare(y){return y.isDepthTexture===!0&&y.compareFunction!==null}isUnfilterable(y){return this.getComponentTypeFromTexture(y)!=="float"||!this.isAvailable("float32Filterable")&&y.isDataTexture===!0&&y.type===Ah||this.isSampleCompare(y)===!1&&y.minFilter===Ic&&y.magFilter===Ic||this.renderer.backend.utils.getTextureSampleData(y).primarySamples>1}generateTexture(y,E,z,ne,ie=this.shaderStage){let se=null;return y.isVideoTexture===!0?se=this._generateVideoSample(E,z,ie):this.isUnfilterable(y)?se=this.generateTextureLod(y,E,z,ne,"0",ie):se=this._generateTextureSample(y,E,z,ne,ie),se}generateTextureGrad(y,E,z,ne,ie,se=this.shaderStage){if(se==="fragment")return`textureSampleGrad( ${E}, ${E}_sampler, ${z}, ${ne[0]}, ${ne[1]} )`;console.error(`WebGPURenderer: THREE.TextureNode.gradient() does not support ${se} shader.`)}generateTextureCompare(y,E,z,ne,ie,se=this.shaderStage){if(se==="fragment")return y.isDepthTexture===!0&&y.isArrayTexture===!0?`textureSampleCompare( ${E}, ${E}_sampler, ${z}, ${ie}, ${ne} )`:`textureSampleCompare( ${E}, ${E}_sampler, ${z}, ${ne} )`;console.error(`WebGPURenderer: THREE.DepthTexture.compareFunction() does not support ${se} shader.`)}generateTextureLevel(y,E,z,ne,ie,se=this.shaderStage){let ae=null;return y.isVideoTexture===!0?ae=this._generateVideoSample(E,z,se):ae=this._generateTextureSampleLevel(y,E,z,ne,ie),ae}generateTextureBias(y,E,z,ne,ie,se=this.shaderStage){if(se==="fragment")return`textureSampleBias( ${E}, ${E}_sampler, ${z}, ${ne} )`;console.error(`WebGPURenderer: THREE.TextureNode.biasNode does not support ${se} shader.`)}getPropertyName(y,E=this.shaderStage){if(y.isNodeVarying===!0&&y.needsInterpolation===!0){if(E==="vertex")return`varyings.${y.name}`}else if(y.isNodeUniform===!0){const z=y.name,ne=y.type;return ne==="texture"||ne==="cubeTexture"||ne==="storageTexture"||ne==="texture3D"?z:ne==="buffer"||ne==="storageBuffer"||ne==="indirectStorageBuffer"?this.isCustomStruct(y)?z:z+".value":y.groupNode.name+"."+z}return super.getPropertyName(y)}getOutputStructName(){return"output"}getFunctionOperator(y){const E=Xee[y];return E!==void 0?(this._include(E),E):null}getNodeAccess(y,E){return E!=="compute"?_g.READ_ONLY:y.access}getStorageAccess(y,E){return Gee[this.getNodeAccess(y,E)]}getUniformFromNode(y,E,z,ne=null){const ie=super.getUniformFromNode(y,E,z,ne),se=this.getDataFromNode(y,z,this.globalCache);if(se.uniformGPU===void 0){let ae;const he=y.groupNode,pe=he.name,ve=this.getBindGroupArray(pe,z);if(E==="texture"||E==="cubeTexture"||E==="storageTexture"||E==="texture3D"){let xe=null;const Se=this.getNodeAccess(y,z);if(E==="texture"||E==="storageTexture"?xe=new wT(ie.name,ie.node,he,Se):E==="cubeTexture"?xe=new kk(ie.name,ie.node,he,Se):E==="texture3D"&&(xe=new Ok(ie.name,ie.node,he,Se)),xe.store=y.isStorageTextureNode===!0,xe.setVisibility(CT[z]),this.isUnfilterable(y.value)===!1&&xe.store===!1){const Be=new Dee(`${ie.name}_sampler`,ie.node,he);Be.setVisibility(CT[z]),ve.push(Be,xe),ae=[Be,xe]}else ve.push(xe),ae=[xe]}else if(E==="buffer"||E==="storageBuffer"||E==="indirectStorageBuffer"){const xe=E==="buffer"?Lk:Lee,Se=new xe(y,he);Se.setVisibility(CT[z]),ve.push(Se),ae=Se,ie.name=ne||"NodeBuffer_"+ie.id}else{const xe=this.uniformGroups[z]||(this.uniformGroups[z]={});let Se=xe[pe];Se===void 0&&(Se=new Ik(pe,he),Se.setVisibility(CT[z]),xe[pe]=Se,ve.push(Se)),ae=this.getNodeUniform(ie,E),Se.addUniform(ae)}se.uniformGPU=ae}return ie}getBuiltin(y,E,z,ne=this.shaderStage){const ie=this.builtins[ne]||(this.builtins[ne]=new Map);return ie.has(y)===!1&&ie.set(y,{name:y,property:E,type:z}),E}hasBuiltin(y,E=this.shaderStage){return this.builtins[E]!==void 0&&this.builtins[E].has(y)}getVertexIndex(){return this.shaderStage==="vertex"?this.getBuiltin("vertex_index","vertexIndex","u32","attribute"):"vertexIndex"}buildFunctionCode(y){const E=y.layout,z=this.flowShaderNode(y),ne=[];for(const se of E.inputs)ne.push(se.name+" : "+this.getType(se.type));let ie=`fn ${E.name}( ${ne.join(", ")} ) -> ${this.getType(E.type)} {
|
|
${z.vars}
|
|
${z.code}
|
|
`;return z.result&&(ie+=` return ${z.result};
|
|
`),ie+=`
|
|
}
|
|
`,ie}getInstanceIndex(){return this.shaderStage==="vertex"?this.getBuiltin("instance_index","instanceIndex","u32","attribute"):"instanceIndex"}getInvocationLocalIndex(){return this.getBuiltin("local_invocation_index","invocationLocalIndex","u32","attribute")}getSubgroupSize(){return this.enableSubGroups(),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute")}getInvocationSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_invocation_id","invocationSubgroupIndex","u32","attribute")}getSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_id","subgroupIndex","u32","attribute")}getDrawIndex(){return null}getFrontFacing(){return this.getBuiltin("front_facing","isFront","bool")}getFragCoord(){return this.getBuiltin("position","fragCoord","vec4<f32>")+".xy"}getFragDepth(){return"output."+this.getBuiltin("frag_depth","depth","f32","output")}getClipDistance(){return"varyings.hw_clip_distances"}isFlipY(){return!1}enableDirective(y,E=this.shaderStage){(this.directives[E]||(this.directives[E]=new Set)).add(y)}getDirectives(y){const E=[],z=this.directives[y];if(z!==void 0)for(const ne of z)E.push(`enable ${ne};`);return E.join(`
|
|
`)}enableSubGroups(){this.enableDirective("subgroups")}enableSubgroupsF16(){this.enableDirective("subgroups-f16")}enableClipDistances(){this.enableDirective("clip_distances")}enableShaderF16(){this.enableDirective("f16")}enableDualSourceBlending(){this.enableDirective("dual_source_blending")}enableHardwareClipping(y){this.enableClipDistances(),this.getBuiltin("clip_distances","hw_clip_distances",`array<f32, ${y} >`,"vertex")}getBuiltins(y){const E=[],z=this.builtins[y];if(z!==void 0)for(const{name:ne,property:ie,type:se}of z.values())E.push(`@builtin( ${ne} ) ${ie} : ${se}`);return E.join(`,
|
|
`)}getScopedArray(y,E,z,ne){return this.scopedArrays.has(y)===!1&&this.scopedArrays.set(y,{name:y,scope:E,bufferType:z,bufferCount:ne}),y}getScopedArrays(y){if(y!=="compute")return;const E=[];for(const{name:z,scope:ne,bufferType:ie,bufferCount:se}of this.scopedArrays.values()){const ae=this.getType(ie);E.push(`var<${ne}> ${z}: array< ${ae}, ${se} >;`)}return E.join(`
|
|
`)}getAttributes(y){const E=[];if(y==="compute"&&(this.getBuiltin("global_invocation_id","globalId","vec3<u32>","attribute"),this.getBuiltin("workgroup_id","workgroupId","vec3<u32>","attribute"),this.getBuiltin("local_invocation_id","localId","vec3<u32>","attribute"),this.getBuiltin("num_workgroups","numWorkgroups","vec3<u32>","attribute"),this.renderer.hasFeature("subgroups")&&(this.enableDirective("subgroups",y),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute"))),y==="vertex"||y==="compute"){const z=this.getBuiltins("attribute");z&&E.push(z);const ne=this.getAttributesArray();for(let ie=0,se=ne.length;ie<se;ie++){const ae=ne[ie],he=ae.name,pe=this.getType(ae.type);E.push(`@location( ${ie} ) ${he} : ${pe}`)}}return E.join(`,
|
|
`)}getStructMembers(y){const E=[];for(const z of y.members){const ne=y.output?"@location( "+z.index+" ) ":"";let ie=this.getType(z.type);z.atomic&&(ie="atomic< "+ie+" >"),E.push(` ${ne+z.name} : ${ie}`)}return y.output&&E.push(` ${this.getBuiltins("output")}`),E.join(`,
|
|
`)}getStructs(y){let E="";const z=this.structs[y];if(z.length>0){const ne=[];for(const ie of z){let se=`struct ${ie.name} {
|
|
`;se+=this.getStructMembers(ie),se+=`
|
|
};`,ne.push(se)}E=`
|
|
`+ne.join(`
|
|
|
|
`)+`
|
|
`}return E}getVar(y,E,z=null){let ne=`var ${E} : `;return z!==null?ne+=this.generateArrayDeclaration(y,z):ne+=this.getType(y),ne}getVars(y){const E=[],z=this.vars[y];if(z!==void 0)for(const ne of z)E.push(` ${this.getVar(ne.type,ne.name,ne.count)};`);return`
|
|
${E.join(`
|
|
`)}
|
|
`}getVaryings(y){const E=[];if(y==="vertex"&&this.getBuiltin("position","Vertex","vec4<f32>","vertex"),y==="vertex"||y==="fragment"){const ie=this.varyings,se=this.vars[y];for(let ae=0;ae<ie.length;ae++){const he=ie[ae];if(he.needsInterpolation){let pe=`@location( ${ae} )`;if(he.interpolationType){const ve=he.interpolationSampling!==null?`, ${he.interpolationSampling} )`:" )";pe+=` @interpolate( ${he.interpolationType}${ve}`}else/^(int|uint|ivec|uvec)/.test(he.type)&&(pe+=` @interpolate( ${this.renderer.backend.compatibilityMode?"flat, either":"flat"} )`);E.push(`${pe} ${he.name} : ${this.getType(he.type)}`)}else y==="vertex"&&se.includes(he)===!1&&se.push(he)}}const z=this.getBuiltins(y);z&&E.push(z);const ne=E.join(`,
|
|
`);return y==="vertex"?this._getWGSLStruct("VaryingsStruct"," "+ne):ne}isCustomStruct(y){const E=y.value,z=y.node,ne=(E.isBufferAttribute||E.isInstancedBufferAttribute)&&z.structTypeNode!==null,ie=z.value&&z.value.array&&typeof z.value.itemSize=="number"&&z.value.array.length>z.value.itemSize;return ne&&!ie}getUniforms(y){const E=this.uniforms[y],z=[],ne=[],ie=[],se={};for(const he of E){const pe=he.groupNode.name,ve=this.bindingsIndexes[pe];if(he.type==="texture"||he.type==="cubeTexture"||he.type==="storageTexture"||he.type==="texture3D"){const xe=he.node.value;this.isUnfilterable(xe)===!1&&he.node.isStorageTextureNode!==!0&&(this.isSampleCompare(xe)?z.push(`@binding( ${ve.binding++} ) @group( ${ve.group} ) var ${he.name}_sampler : sampler_comparison;`):z.push(`@binding( ${ve.binding++} ) @group( ${ve.group} ) var ${he.name}_sampler : sampler;`));let Se,Be="";const{primarySamples:De}=this.renderer.backend.utils.getTextureSampleData(xe);if(De>1&&(Be="_multisampled"),xe.isCubeTexture===!0)Se="texture_cube<f32>";else if(xe.isDepthTexture===!0)this.renderer.backend.compatibilityMode&&xe.compareFunction===null?Se=`texture${Be}_2d<f32>`:Se=`texture_depth${Be}_2d${xe.isArrayTexture===!0?"_array":""}`;else if(xe.isArrayTexture===!0||xe.isDataArrayTexture===!0||xe.isCompressedArrayTexture===!0)Se="texture_2d_array<f32>";else if(xe.isVideoTexture===!0)Se="texture_external";else if(xe.isData3DTexture===!0)Se="texture_3d<f32>";else if(he.node.isStorageTextureNode===!0){const Re=F6(xe),Oe=this.getStorageAccess(he.node,y);Se=`texture_storage_2d<${Re}, ${Oe}>`}else{const Re=this.getComponentTypeFromTexture(xe).charAt(0);Se=`texture${Be}_2d<${Re}32>`}z.push(`@binding( ${ve.binding++} ) @group( ${ve.group} ) var ${he.name} : ${Se};`)}else if(he.type==="buffer"||he.type==="storageBuffer"||he.type==="indirectStorageBuffer"){const xe=he.node,Se=this.getType(xe.getNodeType(this)),Be=xe.bufferCount,De=Be>0&&he.type==="buffer"?", "+Be:"",Re=xe.isStorageBufferNode?`storage, ${this.getStorageAccess(xe,y)}`:"uniform";if(this.isCustomStruct(he))ne.push(`@binding( ${ve.binding++} ) @group( ${ve.group} ) var<${Re}> ${he.name} : ${Se};`);else{const Le=` value : array< ${xe.isAtomic?`atomic<${Se}>`:`${Se}`}${De} >`;ne.push(this._getWGSLStructBinding(he.name,Le,Re,ve.binding++,ve.group))}}else{const xe=this.getType(this.getVectorType(he.type)),Se=he.groupNode.name;(se[Se]||(se[Se]={index:ve.binding++,id:ve.group,snippets:[]})).snippets.push(` ${he.name} : ${xe}`)}}for(const he in se){const pe=se[he];ie.push(this._getWGSLStructBinding(he,pe.snippets.join(`,
|
|
`),"uniform",pe.index,pe.id))}let ae=z.join(`
|
|
`);return ae+=ne.join(`
|
|
`),ae+=ie.join(`
|
|
`),ae}buildCode(){const y=this.material!==null?{fragment:{},vertex:{}}:{compute:{}};this.sortBindingGroups();for(const E in y){this.shaderStage=E;const z=y[E];z.uniforms=this.getUniforms(E),z.attributes=this.getAttributes(E),z.varyings=this.getVaryings(E),z.structs=this.getStructs(E),z.vars=this.getVars(E),z.codes=this.getCodes(E),z.directives=this.getDirectives(E),z.scopedArrays=this.getScopedArrays(E);let ne=`// code
|
|
|
|
`;ne+=this.flowCode[E];const ie=this.flowNodes[E],se=ie[ie.length-1],ae=se.outputNode,he=ae!==void 0&&ae.isOutputStructNode===!0;for(const pe of ie){const ve=this.getFlowData(pe),xe=pe.name;if(xe&&(ne.length>0&&(ne+=`
|
|
`),ne+=` // flow -> ${xe}
|
|
`),ne+=`${ve.code}
|
|
`,pe===se&&E!=="compute"){if(ne+=`// result
|
|
|
|
`,E==="vertex")ne+=`varyings.Vertex = ${ve.result};`;else if(E==="fragment")if(he)z.returnType=ae.getNodeType(this),z.structs+="var<private> output : "+z.returnType+";",ne+=`return ${ve.result};`;else{let Se=" @location(0) color: vec4<f32>";const Be=this.getBuiltins("output");Be&&(Se+=`,
|
|
`+Be),z.returnType="OutputStruct",z.structs+=this._getWGSLStruct("OutputStruct",Se),z.structs+=`
|
|
var<private> output : OutputStruct;`,ne+=`output.color = ${ve.result};
|
|
|
|
return output;`}}}z.flow=ne}this.shaderStage=null,this.material!==null?(this.vertexShader=this._getWGSLVertexCode(y.vertex),this.fragmentShader=this._getWGSLFragmentCode(y.fragment)):this.computeShader=this._getWGSLComputeCode(y.compute,(this.object.workgroupSize||[64]).join(", "))}getMethod(y,E=null){let z;return E!==null&&(z=this._getWGSLMethod(y+"_"+E)),z===void 0&&(z=this._getWGSLMethod(y)),z||y}getType(y){return Wee[y]||y}isAvailable(y){let E=eO[y];return E===void 0&&(y==="float32Filterable"?E=this.renderer.hasFeature("float32-filterable"):y==="clipDistance"&&(E=this.renderer.hasFeature("clip-distances")),eO[y]=E),E}_getWGSLMethod(y){return Dv[y]!==void 0&&this._include(y),QM[y]}_include(y){const E=Dv[y];return E.build(this),this.currentFunctionNode!==null&&this.currentFunctionNode.includes.push(E),E}_getWGSLVertexCode(y){return`${this.getSignature()}
|
|
// directives
|
|
${y.directives}
|
|
|
|
// structs
|
|
${y.structs}
|
|
|
|
// uniforms
|
|
${y.uniforms}
|
|
|
|
// varyings
|
|
${y.varyings}
|
|
var<private> varyings : VaryingsStruct;
|
|
|
|
// codes
|
|
${y.codes}
|
|
|
|
@vertex
|
|
fn main( ${y.attributes} ) -> VaryingsStruct {
|
|
|
|
// vars
|
|
${y.vars}
|
|
|
|
// flow
|
|
${y.flow}
|
|
|
|
return varyings;
|
|
|
|
}
|
|
`}_getWGSLFragmentCode(y){return`${this.getSignature()}
|
|
// global
|
|
${nO}
|
|
|
|
// structs
|
|
${y.structs}
|
|
|
|
// uniforms
|
|
${y.uniforms}
|
|
|
|
// codes
|
|
${y.codes}
|
|
|
|
@fragment
|
|
fn main( ${y.varyings} ) -> ${y.returnType} {
|
|
|
|
// vars
|
|
${y.vars}
|
|
|
|
// flow
|
|
${y.flow}
|
|
|
|
}
|
|
`}_getWGSLComputeCode(y,E){return`${this.getSignature()}
|
|
// directives
|
|
${y.directives}
|
|
|
|
// system
|
|
var<private> instanceIndex : u32;
|
|
|
|
// locals
|
|
${y.scopedArrays}
|
|
|
|
// structs
|
|
${y.structs}
|
|
|
|
// uniforms
|
|
${y.uniforms}
|
|
|
|
// codes
|
|
${y.codes}
|
|
|
|
@compute @workgroup_size( ${E} )
|
|
fn main( ${y.attributes} ) {
|
|
|
|
// system
|
|
instanceIndex = globalId.x + globalId.y * numWorkgroups.x * u32(${E}) + globalId.z * numWorkgroups.x * numWorkgroups.y * u32(${E});
|
|
|
|
// vars
|
|
${y.vars}
|
|
|
|
// flow
|
|
${y.flow}
|
|
|
|
}
|
|
`}_getWGSLStruct(y,E){return`
|
|
struct ${y} {
|
|
${E}
|
|
};`}_getWGSLStructBinding(y,E,z,ne=0,ie=0){const se=y+"Struct";return`${this._getWGSLStruct(se,E)}
|
|
@binding( ${ne} ) @group( ${ie} )
|
|
var<${z}> ${y} : ${se};`}}class Zee{constructor(y){this.backend=y}getCurrentDepthStencilFormat(y){let E;return y.depthTexture!==null?E=this.getTextureFormatGPU(y.depthTexture):y.depth&&y.stencil?E=Ri.Depth24PlusStencil8:y.depth&&(E=Ri.Depth24Plus),E}getTextureFormatGPU(y){return this.backend.get(y).format}getTextureSampleData(y){let E;if(y.isFramebufferTexture)E=1;else if(y.isDepthTexture&&!y.renderTarget){const ie=this.backend.renderer,se=ie.getRenderTarget();E=se?se.samples:ie.samples}else y.renderTarget&&(E=y.renderTarget.samples);E=E||1;const z=E>1&&y.renderTarget!==null&&y.isDepthTexture!==!0&&y.isFramebufferTexture!==!0;return{samples:E,primarySamples:z?1:E,isMSAA:z}}getCurrentColorFormat(y){let E;return y.textures!==null?E=this.getTextureFormatGPU(y.textures[0]):E=this.getPreferredCanvasFormat(),E}getCurrentColorSpace(y){return y.textures!==null?y.textures[0].colorSpace:this.backend.renderer.outputColorSpace}getPrimitiveTopology(y,E){if(y.isPoints)return Mb.PointList;if(y.isLineSegments||y.isMesh&&E.wireframe===!0)return Mb.LineList;if(y.isLine)return Mb.LineStrip;if(y.isMesh)return Mb.TriangleList}getSampleCount(y){let E=1;return y>1&&(E=Math.pow(2,Math.floor(Math.log2(y))),E===2&&(E=4)),E}getSampleCountRenderContext(y){return y.textures!==null?this.getSampleCount(y.sampleCount):this.getSampleCount(this.backend.renderer.samples)}getPreferredCanvasFormat(){const y=this.backend.parameters.outputType;if(y===void 0)return navigator.gpu.getPreferredCanvasFormat();if(y===yh)return Ri.BGRA8Unorm;if(y===Hc)return Ri.RGBA16Float;throw new Error("Unsupported outputType")}}const Yee=new Map([[Int8Array,["sint8","snorm8"]],[Uint8Array,["uint8","unorm8"]],[Int16Array,["sint16","snorm16"]],[Uint16Array,["uint16","unorm16"]],[Int32Array,["sint32","snorm32"]],[Uint32Array,["uint32","unorm32"]],[Float32Array,["float32"]]]),Kee=new Map([[d2,["float16"]]]),Jee=new Map([[Int32Array,"sint32"],[Int16Array,"sint32"],[Uint32Array,"uint32"],[Uint16Array,"uint32"],[Float32Array,"float32"]]);class qee{constructor(y){this.backend=y}createAttribute(y,E){const z=this._getBufferAttribute(y),ne=this.backend,ie=ne.get(z);let se=ie.buffer;if(se===void 0){const ae=ne.device;let he=z.array;if(y.normalized===!1){if(he.constructor===Int16Array||he.constructor===Int8Array)he=new Int32Array(he);else if((he.constructor===Uint16Array||he.constructor===Uint8Array)&&(he=new Uint32Array(he),E&GPUBufferUsage.INDEX))for(let xe=0;xe<he.length;xe++)he[xe]===65535&&(he[xe]=4294967295)}if(z.array=he,(z.isStorageBufferAttribute||z.isStorageInstancedBufferAttribute)&&z.itemSize===3){he=new he.constructor(z.count*4);for(let xe=0;xe<z.count;xe++)he.set(z.array.subarray(xe*3,xe*3+3),xe*4);z.itemSize=4,z.array=he,ie._force3to4BytesAlignment=!0}const pe=he.byteLength,ve=pe+(4-pe%4)%4;se=ae.createBuffer({label:z.name,size:ve,usage:E,mappedAtCreation:!0}),new he.constructor(se.getMappedRange()).set(he),se.unmap(),ie.buffer=se}}updateAttribute(y){const E=this._getBufferAttribute(y),z=this.backend,ne=z.device,ie=z.get(E),se=z.get(E).buffer;let ae=E.array;if(ie._force3to4BytesAlignment===!0){ae=new ae.constructor(E.count*4);for(let ve=0;ve<E.count;ve++)ae.set(E.array.subarray(ve*3,ve*3+3),ve*4);E.array=ae}const he=this._isTypedArray(ae),pe=E.updateRanges;if(pe.length===0)ne.queue.writeBuffer(se,0,ae,0);else{const ve=he?1:ae.BYTES_PER_ELEMENT;for(let xe=0,Se=pe.length;xe<Se;xe++){const Be=pe[xe];let De,Re;if(ie._force3to4BytesAlignment===!0){const Le=Math.floor(Be.start/3),Je=Math.ceil(Be.count/3);De=Le*4*ve,Re=Je*4*ve}else De=Be.start*ve,Re=Be.count*ve;const Oe=De*(he?ae.BYTES_PER_ELEMENT:1);ne.queue.writeBuffer(se,Oe,ae,De,Re)}E.clearUpdateRanges()}}createShaderVertexBuffers(y){const E=y.getAttributes(),z=new Map;for(let ne=0;ne<E.length;ne++){const ie=E[ne],se=ie.array.BYTES_PER_ELEMENT,ae=this._getBufferAttribute(ie);let he=z.get(ae);if(he===void 0){let xe,Se;ie.isInterleavedBufferAttribute===!0?(xe=ie.data.stride*se,Se=ie.data.isInstancedInterleavedBuffer?PT.Instance:PT.Vertex):(xe=ie.itemSize*se,Se=ie.isInstancedBufferAttribute?PT.Instance:PT.Vertex),ie.normalized===!1&&(ie.array.constructor===Int16Array||ie.array.constructor===Uint16Array)&&(xe=4),he={arrayStride:xe,attributes:[],stepMode:Se},z.set(ae,he)}const pe=this._getVertexFormat(ie),ve=ie.isInterleavedBufferAttribute===!0?ie.offset*se:0;he.attributes.push({shaderLocation:ne,offset:ve,format:pe})}return Array.from(z.values())}destroyAttribute(y){const E=this.backend;E.get(this._getBufferAttribute(y)).buffer.destroy(),E.delete(y)}getArrayBufferAsync(y){return Vl(this,null,function*(){const E=this.backend,z=E.device,ie=E.get(this._getBufferAttribute(y)).buffer,se=ie.size,ae=z.createBuffer({label:`${y.name}_readback`,size:se,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),he=z.createCommandEncoder({label:`readback_encoder_${y.name}`});he.copyBufferToBuffer(ie,0,ae,0,se);const pe=he.finish();z.queue.submit([pe]),yield ae.mapAsync(GPUMapMode.READ);const ve=ae.getMappedRange(),xe=new y.array.constructor(ve.slice(0));return ae.unmap(),xe.buffer})}_getVertexFormat(y){const{itemSize:E,normalized:z}=y,ne=y.array.constructor,ie=y.constructor;let se;if(E===1)se=Jee.get(ne);else{const he=(Kee.get(ie)||Yee.get(ne))[z?1:0];if(he){const pe=ne.BYTES_PER_ELEMENT*E,xe=Math.floor((pe+3)/4)*4/ne.BYTES_PER_ELEMENT;if(xe%1)throw new Error("THREE.WebGPUAttributeUtils: Bad vertex format item size.");se=`${he}x${xe}`}}return se||console.error("THREE.WebGPUAttributeUtils: Vertex format not supported yet."),se}_isTypedArray(y){return ArrayBuffer.isView(y)&&!(y instanceof DataView)}_getBufferAttribute(y){return y.isInterleavedBufferAttribute&&(y=y.data),y}}class _ee{constructor(y){this.backend=y,this.bindGroupLayoutCache=new WeakMap}createBindingsLayout(y){const E=this.backend,z=E.device,ne=[];let ie=0;for(const se of y.bindings){const ae={binding:ie++,visibility:se.visibility};if(se.isUniformBuffer||se.isStorageBuffer){const he={};se.isStorageBuffer&&(se.visibility&4&&(se.access===_g.READ_WRITE||se.access===_g.WRITE_ONLY)?he.type=T6.Storage:he.type=T6.ReadOnlyStorage),ae.buffer=he}else if(se.isSampler){const he={};se.texture.isDepthTexture&&(se.texture.compareFunction!==null?he.type=Jk.Comparison:E.compatibilityMode&&(he.type=Jk.NonFiltering)),ae.sampler=he}else if(se.isSampledTexture&&se.texture.isVideoTexture)ae.externalTexture={};else if(se.isSampledTexture&&se.store){const he={};he.format=this.backend.get(se.texture).texture.format;const pe=se.access;pe===_g.READ_WRITE?he.access=D6.ReadWrite:pe===_g.WRITE_ONLY?he.access=D6.WriteOnly:he.access=D6.ReadOnly,ae.storageTexture=he}else if(se.isSampledTexture){const he={},{primarySamples:pe}=E.utils.getTextureSampleData(se.texture);if(pe>1&&(he.multisampled=!0,se.texture.isDepthTexture||(he.sampleType=rC.UnfilterableFloat)),se.texture.isDepthTexture)E.compatibilityMode&&se.texture.compareFunction===null?he.sampleType=rC.UnfilterableFloat:he.sampleType=rC.Depth;else if(se.texture.isDataTexture||se.texture.isDataArrayTexture||se.texture.isData3DTexture){const ve=se.texture.type;ve===sf?he.sampleType=rC.SInt:ve===Oc?he.sampleType=rC.UInt:ve===Ah&&(this.backend.hasFeature("float32-filterable")?he.sampleType=rC.Float:he.sampleType=rC.UnfilterableFloat)}se.isSampledCubeTexture?he.viewDimension=ig.Cube:se.texture.isArrayTexture||se.texture.isDataArrayTexture||se.texture.isCompressedArrayTexture?he.viewDimension=ig.TwoDArray:se.isSampledTexture3D&&(he.viewDimension=ig.ThreeD),ae.texture=he}else console.error(`WebGPUBindingUtils: Unsupported binding "${se}".`);ne.push(ae)}return z.createBindGroupLayout({entries:ne})}createBindings(y,E,z,ne=0){const{backend:ie,bindGroupLayoutCache:se}=this,ae=ie.get(y);let he=se.get(y.bindingsReference);he===void 0&&(he=this.createBindingsLayout(y),se.set(y.bindingsReference,he));let pe;z>0&&(ae.groups===void 0&&(ae.groups=[],ae.versions=[]),ae.versions[z]===ne&&(pe=ae.groups[z])),pe===void 0&&(pe=this.createBindGroup(y,he),z>0&&(ae.groups[z]=pe,ae.versions[z]=ne)),ae.group=pe,ae.layout=he}updateBinding(y){const E=this.backend,z=E.device,ne=y.buffer,ie=E.get(y).buffer;z.queue.writeBuffer(ie,0,ne,0)}createBindGroupIndex(y,E){const ne=this.backend.device,ie=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,se=y[0],ae=ne.createBuffer({label:"bindingCameraIndex_"+se,size:16,usage:ie});ne.queue.writeBuffer(ae,0,y,0);const he=[{binding:0,resource:{buffer:ae}}];return ne.createBindGroup({label:"bindGroupCameraIndex_"+se,layout:E,entries:he})}createBindGroup(y,E){const z=this.backend,ne=z.device;let ie=0;const se=[];for(const ae of y.bindings){if(ae.isUniformBuffer){const he=z.get(ae);if(he.buffer===void 0){const pe=ae.byteLength,ve=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,xe=ne.createBuffer({label:"bindingBuffer_"+ae.name,size:pe,usage:ve});he.buffer=xe}se.push({binding:ie,resource:{buffer:he.buffer}})}else if(ae.isStorageBuffer){const he=z.get(ae);if(he.buffer===void 0){const pe=ae.attribute;he.buffer=z.get(pe).buffer}se.push({binding:ie,resource:{buffer:he.buffer}})}else if(ae.isSampler){const he=z.get(ae.texture);se.push({binding:ie,resource:he.sampler})}else if(ae.isSampledTexture){const he=z.get(ae.texture);let pe;if(he.externalTexture!==void 0)pe=ne.importExternalTexture({source:he.externalTexture});else{const ve=ae.store?1:he.texture.mipLevelCount,xe=`view-${he.texture.width}-${he.texture.height}-${ve}`;if(pe=he[xe],pe===void 0){const Se=Bee.All;let Be;ae.isSampledCubeTexture?Be=ig.Cube:ae.isSampledTexture3D?Be=ig.ThreeD:ae.texture.isArrayTexture||ae.texture.isDataArrayTexture||ae.texture.isCompressedArrayTexture?Be=ig.TwoDArray:Be=ig.TwoD,pe=he[xe]=he.texture.createView({aspect:Se,dimension:Be,mipLevelCount:ve})}}se.push({binding:ie,resource:pe})}ie++}return ne.createBindGroup({label:"bindGroup_"+y.name,layout:E,entries:se})}}class $ee{constructor(y){this.backend=y,this._activePipelines=new WeakMap}setPipeline(y,E){this._activePipelines.get(y)!==E&&(y.setPipeline(E),this._activePipelines.set(y,E))}_getSampleCount(y){return this.backend.utils.getSampleCountRenderContext(y)}createRenderPipeline(y,E){const{object:z,material:ne,geometry:ie,pipeline:se}=y,{vertexProgram:ae,fragmentProgram:he}=se,pe=this.backend,ve=pe.device,xe=pe.utils,Se=pe.get(se),Be=[];for(const Tn of y.getBindings()){const Zn=pe.get(Tn);Be.push(Zn.layout)}const De=pe.attributeUtils.createShaderVertexBuffers(y);let Re;ne.blending!==of&&(ne.blending!==de||ne.transparent!==!1)&&(Re=this._getBlending(ne));let Oe={};ne.stencilWrite===!0&&(Oe={compare:this._getStencilCompare(ne),failOp:this._getStencilOperation(ne.stencilFail),depthFailOp:this._getStencilOperation(ne.stencilZFail),passOp:this._getStencilOperation(ne.stencilZPass)});const Le=this._getColorWriteMask(ne),Je=[];if(y.context.textures!==null){const Tn=y.context.textures;for(let Zn=0;Zn<Tn.length;Zn++){const Nn=xe.getTextureFormatGPU(Tn[Zn]);Je.push({format:Nn,blend:Re,writeMask:Le})}}else{const Tn=xe.getCurrentColorFormat(y.context);Je.push({format:Tn,blend:Re,writeMask:Le})}const $e=pe.get(ae).module,_e=pe.get(he).module,st=this._getPrimitiveState(z,ie,ne),ct=this._getDepthCompare(ne),ut=xe.getCurrentDepthStencilFormat(y.context),ht=this._getSampleCount(y.context),pt={label:`renderPipeline_${ne.name||ne.type}_${ne.id}`,vertex:Object.assign({},$e,{buffers:De}),fragment:Object.assign({},_e,{targets:Je}),primitive:st,multisample:{count:ht,alphaToCoverageEnabled:ne.alphaToCoverage&&ht>1},layout:ve.createPipelineLayout({bindGroupLayouts:Be})},gt={},zt=y.context.depth,cn=y.context.stencil;if((zt===!0||cn===!0)&&(zt===!0&&(gt.format=ut,gt.depthWriteEnabled=ne.depthWrite,gt.depthCompare=ct),cn===!0&&(gt.stencilFront=Oe,gt.stencilBack={},gt.stencilReadMask=ne.stencilFuncMask,gt.stencilWriteMask=ne.stencilWriteMask),ne.polygonOffset===!0&&(gt.depthBias=ne.polygonOffsetUnits,gt.depthBiasSlopeScale=ne.polygonOffsetFactor,gt.depthBiasClamp=0),pt.depthStencil=gt),E===null)Se.pipeline=ve.createRenderPipeline(pt);else{const Tn=new Promise(Zn=>{ve.createRenderPipelineAsync(pt).then(Nn=>{Se.pipeline=Nn,Zn()})});E.push(Tn)}}createBundleEncoder(y,E="renderBundleEncoder"){const z=this.backend,{utils:ne,device:ie}=z,se=ne.getCurrentDepthStencilFormat(y),ae=ne.getCurrentColorFormat(y),he=this._getSampleCount(y),pe={label:E,colorFormats:[ae],depthStencilFormat:se,sampleCount:he};return ie.createRenderBundleEncoder(pe)}createComputePipeline(y,E){const z=this.backend,ne=z.device,ie=z.get(y.computeProgram).module,se=z.get(y),ae=[];for(const he of E){const pe=z.get(he);ae.push(pe.layout)}se.pipeline=ne.createComputePipeline({compute:ie,layout:ne.createPipelineLayout({bindGroupLayouts:ae})})}_getBlending(y){let E,z;const ne=y.blending,ie=y.blendSrc,se=y.blendDst,ae=y.blendEquation;if(ne===Ne){const he=y.blendSrcAlpha!==null?y.blendSrcAlpha:ie,pe=y.blendDstAlpha!==null?y.blendDstAlpha:se,ve=y.blendEquationAlpha!==null?y.blendEquationAlpha:ae;E={srcFactor:this._getBlendFactor(ie),dstFactor:this._getBlendFactor(se),operation:this._getBlendOperation(ae)},z={srcFactor:this._getBlendFactor(he),dstFactor:this._getBlendFactor(pe),operation:this._getBlendOperation(ve)}}else{const he=y.premultipliedAlpha,pe=(ve,xe,Se,Be)=>{E={srcFactor:ve,dstFactor:xe,operation:iC.Add},z={srcFactor:Se,dstFactor:Be,operation:iC.Add}};if(he)switch(ne){case de:pe(Hu.One,Hu.OneMinusSrcAlpha,Hu.One,Hu.OneMinusSrcAlpha);break;case me:pe(Hu.One,Hu.One,Hu.One,Hu.One);break;case Ee:pe(Hu.Zero,Hu.OneMinusSrc,Hu.Zero,Hu.One);break;case Pe:pe(Hu.Zero,Hu.Src,Hu.Zero,Hu.SrcAlpha);break}else switch(ne){case de:pe(Hu.SrcAlpha,Hu.OneMinusSrcAlpha,Hu.One,Hu.OneMinusSrcAlpha);break;case me:pe(Hu.SrcAlpha,Hu.One,Hu.SrcAlpha,Hu.One);break;case Ee:pe(Hu.Zero,Hu.OneMinusSrc,Hu.Zero,Hu.One);break;case Pe:pe(Hu.Zero,Hu.Src,Hu.Zero,Hu.Src);break}}if(E!==void 0&&z!==void 0)return{color:E,alpha:z};console.error("THREE.WebGPURenderer: Invalid blending: ",ne)}_getBlendFactor(y){let E;switch(y){case On:E=Hu.Zero;break;case nn:E=Hu.One;break;case wi:E=Hu.Src;break;case li:E=Hu.OneMinusSrc;break;case jr:E=Hu.SrcAlpha;break;case no:E=Hu.OneMinusSrcAlpha;break;case na:E=Hu.Dst;break;case Ns:E=Hu.OneMinusDst;break;case To:E=Hu.DstAlpha;break;case rs:E=Hu.OneMinusDstAlpha;break;case va:E=Hu.SrcAlphaSaturated;break;case VK:E=Hu.Constant;break;case jK:E=Hu.OneMinusConstant;break;default:console.error("THREE.WebGPURenderer: Blend factor not supported.",y)}return E}_getStencilCompare(y){let E;const z=y.stencilFunc;switch(z){case TC:E=bg.Never;break;case mc:E=bg.Always;break;case cm:E=bg.Less;break;case l5:E=bg.LessEqual;break;case a5:E=bg.Equal;break;case Ap:E=bg.GreaterEqual;break;case fg:E=bg.Greater;break;case d0:E=bg.NotEqual;break;default:console.error("THREE.WebGPURenderer: Invalid stencil function.",z)}return E}_getStencilOperation(y){let E;switch(y){case Ex:E=hS.Keep;break;case Yp:E=hS.Zero;break;case US:E=hS.Replace;break;case _b:E=hS.Invert;break;case s5:E=hS.IncrementClamp;break;case BC:E=hS.DecrementClamp;break;case Kb:E=hS.IncrementWrap;break;case Jb:E=hS.DecrementWrap;break;default:console.error("THREE.WebGPURenderer: Invalid stencil operation.",E)}return E}_getBlendOperation(y){let E;switch(y){case Xe:E=iC.Add;break;case at:E=iC.Subtract;break;case Ct:E=iC.ReverseSubtract;break;case St:E=iC.Min;break;case jt:E=iC.Max;break;default:console.error("THREE.WebGPUPipelineUtils: Blend equation not supported.",y)}return E}_getPrimitiveState(y,E,z){const ne={},ie=this.backend.utils;switch(ne.topology=ie.getPrimitiveTopology(y,z),E.index!==null&&y.isLine===!0&&y.isLineSegments!==!0&&(ne.stripIndexFormat=E.index.array instanceof Uint16Array?Tb.Uint16:Tb.Uint32),z.side){case hp:ne.frontFace=b6.CCW,ne.cullMode=M6.Back;break;case wc:ne.frontFace=b6.CCW,ne.cullMode=M6.Front;break;case Fh:ne.frontFace=b6.CCW,ne.cullMode=M6.None;break;default:console.error("THREE.WebGPUPipelineUtils: Unknown material.side value.",z.side);break}return ne}_getColorWriteMask(y){return y.colorWrite===!0?Kk.All:Kk.None}_getDepthCompare(y){let E;if(y.depthTest===!1)E=bg.Always;else{const z=y.depthFunc;switch(z){case bh:E=bg.Never;break;case Lc:E=bg.Always;break;case Cd:E=bg.Less;break;case Mh:E=bg.LessEqual;break;case gh:E=bg.Equal;break;case Gd:E=bg.GreaterEqual;break;case Gh:E=bg.Greater;break;case mh:E=bg.NotEqual;break;default:console.error("THREE.WebGPUPipelineUtils: Invalid depth function.",z)}}return E}}class ete extends Qk{constructor(y,E,z=2048){super(z),this.device=y,this.type=E,this.querySet=this.device.createQuerySet({type:"timestamp",count:this.maxQueries,label:`queryset_global_timestamp_${E}`});const ne=this.maxQueries*8;this.resolveBuffer=this.device.createBuffer({label:`buffer_timestamp_resolve_${E}`,size:ne,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),this.resultBuffer=this.device.createBuffer({label:`buffer_timestamp_result_${E}`,size:ne,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ})}allocateQueriesForContext(y){if(!this.trackTimestamp||this.isDisposed)return null;if(this.currentQueryIndex+2>this.maxQueries)return vc(`WebGPUTimestampQueryPool [${this.type}]: Maximum number of queries exceeded, when using trackTimestamp it is necessary to resolves the queries via renderer.resolveTimestampsAsync( THREE.TimestampQuery.${this.type.toUpperCase()} ).`),null;const E=this.currentQueryIndex;return this.currentQueryIndex+=2,this.queryOffsets.set(y.id,E),E}resolveQueriesAsync(){return Vl(this,null,function*(){if(!this.trackTimestamp||this.currentQueryIndex===0||this.isDisposed)return this.lastValue;if(this.pendingResolve)return this.pendingResolve;this.pendingResolve=this._resolveQueries();try{return yield this.pendingResolve}finally{this.pendingResolve=null}})}_resolveQueries(){return Vl(this,null,function*(){if(this.isDisposed)return this.lastValue;try{if(this.resultBuffer.mapState!=="unmapped")return this.lastValue;const y=new Map(this.queryOffsets),E=this.currentQueryIndex,z=E*8;this.currentQueryIndex=0,this.queryOffsets.clear();const ne=this.device.createCommandEncoder();ne.resolveQuerySet(this.querySet,0,E,this.resolveBuffer,0),ne.copyBufferToBuffer(this.resolveBuffer,0,this.resultBuffer,0,z);const ie=ne.finish();if(this.device.queue.submit([ie]),this.resultBuffer.mapState!=="unmapped")return this.lastValue;if(yield this.resultBuffer.mapAsync(GPUMapMode.READ,0,z),this.isDisposed)return this.resultBuffer.mapState==="mapped"&&this.resultBuffer.unmap(),this.lastValue;const se=new BigUint64Array(this.resultBuffer.getMappedRange(0,z));let ae=0;for(const[,he]of y){const pe=se[he],ve=se[he+1],xe=Number(ve-pe)/1e6;ae+=xe}return this.resultBuffer.unmap(),this.lastValue=ae,ae}catch(y){return console.error("Error resolving queries:",y),this.resultBuffer.mapState==="mapped"&&this.resultBuffer.unmap(),this.lastValue}})}dispose(){return Vl(this,null,function*(){if(!this.isDisposed){if(this.isDisposed=!0,this.pendingResolve)try{yield this.pendingResolve}catch(y){console.error("Error waiting for pending resolve:",y)}if(this.resultBuffer&&this.resultBuffer.mapState==="mapped")try{this.resultBuffer.unmap()}catch(y){console.error("Error unmapping buffer:",y)}this.querySet&&(this.querySet.destroy(),this.querySet=null),this.resolveBuffer&&(this.resolveBuffer.destroy(),this.resolveBuffer=null),this.resultBuffer&&(this.resultBuffer.destroy(),this.resultBuffer=null),this.queryOffsets.clear(),this.pendingResolve=null}})}}class L6 extends Vk{constructor(y={}){super(y),this.isWebGPUBackend=!0,this.parameters.alpha=y.alpha===void 0?!0:y.alpha,this.parameters.compatibilityMode=y.compatibilityMode===void 0?!1:y.compatibilityMode,this.parameters.requiredLimits=y.requiredLimits===void 0?{}:y.requiredLimits,this.compatibilityMode=this.parameters.compatibilityMode,this.device=null,this.context=null,this.colorBuffer=null,this.defaultRenderPassdescriptor=null,this.utils=new Zee(this),this.attributeUtils=new qee(this),this.bindingUtils=new _ee(this),this.pipelineUtils=new $ee(this),this.textureUtils=new Ree(this),this.occludedResolveCache=new Map}init(y){return Vl(this,null,function*(){yield aU(L6.prototype,this,"init").call(this,y);const E=this.parameters;let z;if(E.device===void 0){const se={powerPreference:E.powerPreference,featureLevel:E.compatibilityMode?"compatibility":void 0},ae=typeof navigator!="undefined"?yield navigator.gpu.requestAdapter(se):null;if(ae===null)throw new Error("WebGPUBackend: Unable to create WebGPU adapter.");const he=Object.values(N6),pe=[];for(const xe of he)ae.features.has(xe)&&pe.push(xe);const ve={requiredFeatures:pe,requiredLimits:E.requiredLimits};z=yield ae.requestDevice(ve)}else z=E.device;z.lost.then(se=>{const ae={api:"WebGPU",message:se.message||"Unknown reason",reason:se.reason||null,originalEvent:se};y.onDeviceLost(ae)});const ne=E.context!==void 0?E.context:y.domElement.getContext("webgpu");this.device=z,this.context=ne;const ie=E.alpha?"premultiplied":"opaque";this.trackTimestamp=this.trackTimestamp&&this.hasFeature(N6.TimestampQuery),this.context.configure({device:this.device,format:this.utils.getPreferredCanvasFormat(),usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,alphaMode:ie}),this.updateSize()})}get coordinateSystem(){return zg}getArrayBufferAsync(y){return Vl(this,null,function*(){return yield this.attributeUtils.getArrayBufferAsync(y)})}getContext(){return this.context}_getDefaultRenderPassDescriptor(){let y=this.defaultRenderPassdescriptor;if(y===null){const z=this.renderer;y={colorAttachments:[{view:null}]},(this.renderer.depth===!0||this.renderer.stencil===!0)&&(y.depthStencilAttachment={view:this.textureUtils.getDepthBuffer(z.depth,z.stencil).createView()});const ne=y.colorAttachments[0];this.renderer.samples>0?ne.view=this.colorBuffer.createView():ne.resolveTarget=void 0,this.defaultRenderPassdescriptor=y}const E=y.colorAttachments[0];return this.renderer.samples>0?E.resolveTarget=this.context.getCurrentTexture().createView():E.view=this.context.getCurrentTexture().createView(),y}_isRenderCameraDepthArray(y){return y.depthTexture&&y.depthTexture.image.depth>1&&y.camera.isArrayCamera}_getRenderPassDescriptor(y,E={}){const z=y.renderTarget,ne=this.get(z);let ie=ne.descriptors;if(ie===void 0||ne.width!==z.width||ne.height!==z.height||ne.dimensions!==z.dimensions||ne.activeMipmapLevel!==y.activeMipmapLevel||ne.activeCubeFace!==y.activeCubeFace||ne.samples!==z.samples){ie={},ne.descriptors=ie;const pe=()=>{z.removeEventListener("dispose",pe),this.delete(z)};z.hasEventListener("dispose",pe)===!1&&z.addEventListener("dispose",pe)}const se=y.getCacheKey();let ae=ie[se];if(ae===void 0){const pe=y.textures,ve=[];let xe;const Se=this._isRenderCameraDepthArray(y);for(let Be=0;Be<pe.length;Be++){const De=this.get(pe[Be]),Re={label:`colorAttachment_${Be}`,baseMipLevel:y.activeMipmapLevel,mipLevelCount:1,baseArrayLayer:y.activeCubeFace,arrayLayerCount:1,dimension:ig.TwoD};if(z.isRenderTarget3D)xe=y.activeCubeFace,Re.baseArrayLayer=0,Re.dimension=ig.ThreeD,Re.depthOrArrayLayers=pe[Be].image.depth;else if(z.isRenderTarget&&pe[Be].image.depth>1)if(Se===!0){const Oe=y.camera.cameras;for(let Le=0;Le<Oe.length;Le++){const Je=tx(Hd({},Re),{baseArrayLayer:Le,arrayLayerCount:1,dimension:ig.TwoD}),$e=De.texture.createView(Je);ve.push({view:$e,resolveTarget:void 0,depthSlice:void 0})}}else Re.dimension=ig.TwoDArray,Re.depthOrArrayLayers=pe[Be].image.depth;if(Se!==!0){const Oe=De.texture.createView(Re);let Le,Je;De.msaaTexture!==void 0?(Le=De.msaaTexture.createView(),Je=Oe):(Le=Oe,Je=void 0),ve.push({view:Le,resolveTarget:Je,depthSlice:xe})}}if(ae={textureViews:ve},y.depth){const Be=this.get(y.depthTexture),De={};y.depthTexture.isArrayTexture&&(De.dimension=ig.TwoD,De.arrayLayerCount=1,De.baseArrayLayer=y.activeCubeFace),ae.depthStencilView=Be.texture.createView(De)}ie[se]=ae,ne.width=z.width,ne.height=z.height,ne.samples=z.samples,ne.activeMipmapLevel=y.activeMipmapLevel,ne.activeCubeFace=y.activeCubeFace,ne.dimensions=z.dimensions}const he={colorAttachments:[]};for(let pe=0;pe<ae.textureViews.length;pe++){const ve=ae.textureViews[pe];let xe={r:0,g:0,b:0,a:1};pe===0&&E.clearValue&&(xe=E.clearValue),he.colorAttachments.push({view:ve.view,depthSlice:ve.depthSlice,resolveTarget:ve.resolveTarget,loadOp:E.loadOp||lh.Load,storeOp:E.storeOp||Pm.Store,clearValue:xe})}return ae.depthStencilView&&(he.depthStencilAttachment={view:ae.depthStencilView}),he}beginRender(y){const E=this.get(y),z=this.device,ne=y.occlusionQueryCount;let ie;ne>0&&(E.currentOcclusionQuerySet&&E.currentOcclusionQuerySet.destroy(),E.currentOcclusionQueryBuffer&&E.currentOcclusionQueryBuffer.destroy(),E.currentOcclusionQuerySet=E.occlusionQuerySet,E.currentOcclusionQueryBuffer=E.occlusionQueryBuffer,E.currentOcclusionQueryObjects=E.occlusionQueryObjects,ie=z.createQuerySet({type:"occlusion",count:ne,label:`occlusionQuerySet_${y.id}`}),E.occlusionQuerySet=ie,E.occlusionQueryIndex=0,E.occlusionQueryObjects=new Array(ne),E.lastOcclusionObject=null);let se;y.textures===null?se=this._getDefaultRenderPassDescriptor():se=this._getRenderPassDescriptor(y,{loadOp:lh.Load}),this.initTimestampQuery(y,se),se.occlusionQuerySet=ie;const ae=se.depthStencilAttachment;if(y.textures!==null){const pe=se.colorAttachments;for(let ve=0;ve<pe.length;ve++){const xe=pe[ve];y.clearColor?(xe.clearValue=ve===0?y.clearColorValue:{r:0,g:0,b:0,a:1},xe.loadOp=lh.Clear):xe.loadOp=lh.Load,xe.storeOp=Pm.Store}}else{const pe=se.colorAttachments[0];y.clearColor?(pe.clearValue=y.clearColorValue,pe.loadOp=lh.Clear):pe.loadOp=lh.Load,pe.storeOp=Pm.Store}y.depth&&(y.clearDepth?(ae.depthClearValue=y.clearDepthValue,ae.depthLoadOp=lh.Clear):ae.depthLoadOp=lh.Load,ae.depthStoreOp=Pm.Store),y.stencil&&(y.clearStencil?(ae.stencilClearValue=y.clearStencilValue,ae.stencilLoadOp=lh.Clear):ae.stencilLoadOp=lh.Load,ae.stencilStoreOp=Pm.Store);const he=z.createCommandEncoder({label:"renderContext_"+y.id});if(this._isRenderCameraDepthArray(y)===!0){const pe=y.camera.cameras;!E.layerDescriptors||E.layerDescriptors.length!==pe.length?this._createDepthLayerDescriptors(y,E,se,pe):this._updateDepthLayerDescriptors(y,E,pe),E.bundleEncoders=[],E.bundleSets=[];for(let ve=0;ve<pe.length;ve++){const xe=this.pipelineUtils.createBundleEncoder(y,"renderBundleArrayCamera_"+ve),Se={attributes:{},bindingGroups:[],pipeline:null,index:null};E.bundleEncoders.push(xe),E.bundleSets.push(Se)}E.currentPass=null}else{const pe=he.beginRenderPass(se);if(E.currentPass=pe,y.viewport&&this.updateViewport(y),y.scissor){const{x:ve,y:xe,width:Se,height:Be}=y.scissorValue;pe.setScissorRect(ve,xe,Se,Be)}}E.descriptor=se,E.encoder=he,E.currentSets={attributes:{},bindingGroups:[],pipeline:null,index:null},E.renderBundles=[]}_createDepthLayerDescriptors(y,E,z,ne){const ie=z.depthStencilAttachment;E.layerDescriptors=[];const se=this.get(y.depthTexture);se.viewCache||(se.viewCache=[]);for(let ae=0;ae<ne.length;ae++){const he=tx(Hd({},z),{colorAttachments:[tx(Hd({},z.colorAttachments[0]),{view:z.colorAttachments[ae].view})]});if(z.depthStencilAttachment){const pe=ae;se.viewCache[pe]||(se.viewCache[pe]=se.texture.createView({dimension:ig.TwoD,baseArrayLayer:ae,arrayLayerCount:1})),he.depthStencilAttachment={view:se.viewCache[pe],depthLoadOp:ie.depthLoadOp||lh.Clear,depthStoreOp:ie.depthStoreOp||Pm.Store,depthClearValue:ie.depthClearValue||1},y.stencil&&(he.depthStencilAttachment.stencilLoadOp=ie.stencilLoadOp,he.depthStencilAttachment.stencilStoreOp=ie.stencilStoreOp,he.depthStencilAttachment.stencilClearValue=ie.stencilClearValue)}else he.depthStencilAttachment=Hd({},ie);E.layerDescriptors.push(he)}}_updateDepthLayerDescriptors(y,E,z){for(let ne=0;ne<z.length;ne++){const ie=E.layerDescriptors[ne];if(ie.depthStencilAttachment){const se=ie.depthStencilAttachment;y.depth&&(y.clearDepth?(se.depthClearValue=y.clearDepthValue,se.depthLoadOp=lh.Clear):se.depthLoadOp=lh.Load),y.stencil&&(y.clearStencil?(se.stencilClearValue=y.clearStencilValue,se.stencilLoadOp=lh.Clear):se.stencilLoadOp=lh.Load)}}}finishRender(y){const E=this.get(y),z=y.occlusionQueryCount;E.renderBundles.length>0&&E.currentPass.executeBundles(E.renderBundles),z>E.occlusionQueryIndex&&E.currentPass.endOcclusionQuery();const ne=E.encoder;if(this._isRenderCameraDepthArray(y)===!0){const ie=[];for(let se=0;se<E.bundleEncoders.length;se++){const ae=E.bundleEncoders[se];ie.push(ae.finish())}for(let se=0;se<E.layerDescriptors.length;se++)if(se<ie.length){const ae=E.layerDescriptors[se],he=ne.beginRenderPass(ae);if(y.viewport){const{x:pe,y:ve,width:xe,height:Se,minDepth:Be,maxDepth:De}=y.viewportValue;he.setViewport(pe,ve,xe,Se,Be,De)}if(y.scissor){const{x:pe,y:ve,width:xe,height:Se}=y.scissorValue;he.setScissorRect(pe,ve,xe,Se)}he.executeBundles([ie[se]]),he.end()}}else E.currentPass&&E.currentPass.end();if(z>0){const ie=z*8;let se=this.occludedResolveCache.get(ie);se===void 0&&(se=this.device.createBuffer({size:ie,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),this.occludedResolveCache.set(ie,se));const ae=this.device.createBuffer({size:ie,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});E.encoder.resolveQuerySet(E.occlusionQuerySet,0,z,se,0),E.encoder.copyBufferToBuffer(se,0,ae,0,ie),E.occlusionQueryBuffer=ae,this.resolveOccludedAsync(y)}if(this.device.queue.submit([E.encoder.finish()]),y.textures!==null){const ie=y.textures;for(let se=0;se<ie.length;se++){const ae=ie[se];ae.generateMipmaps===!0&&this.textureUtils.generateMipmaps(ae)}}}isOccluded(y,E){const z=this.get(y);return z.occluded&&z.occluded.has(E)}resolveOccludedAsync(y){return Vl(this,null,function*(){const E=this.get(y),{currentOcclusionQueryBuffer:z,currentOcclusionQueryObjects:ne}=E;if(z&&ne){const ie=new WeakSet;E.currentOcclusionQueryObjects=null,E.currentOcclusionQueryBuffer=null,yield z.mapAsync(GPUMapMode.READ);const se=z.getMappedRange(),ae=new BigUint64Array(se);for(let he=0;he<ne.length;he++)ae[he]===BigInt(0)&&ie.add(ne[he]);z.destroy(),E.occluded=ie}})}updateViewport(y){const{currentPass:E}=this.get(y),{x:z,y:ne,width:ie,height:se,minDepth:ae,maxDepth:he}=y.viewportValue;E.setViewport(z,ne,ie,se,ae,he)}getClearColor(){const y=super.getClearColor();return this.renderer.alpha===!0&&(y.r*=y.a,y.g*=y.a,y.b*=y.a),y}clear(y,E,z,ne=null){const ie=this.device,se=this.renderer;let ae=[],he,pe,ve,xe;if(y){const De=this.getClearColor();pe={r:De.r,g:De.g,b:De.b,a:De.a}}if(ne===null){ve=se.depth,xe=se.stencil;const De=this._getDefaultRenderPassDescriptor();if(y){ae=De.colorAttachments;const Re=ae[0];Re.clearValue=pe,Re.loadOp=lh.Clear,Re.storeOp=Pm.Store}(ve||xe)&&(he=De.depthStencilAttachment)}else{ve=ne.depth,xe=ne.stencil;const De={loadOp:y?lh.Clear:lh.Load,clearValue:y?pe:void 0};ve&&(De.depthLoadOp=E?lh.Clear:lh.Load,De.depthClearValue=E?se.getClearDepth():void 0,De.depthStoreOp=Pm.Store),xe&&(De.stencilLoadOp=z?lh.Clear:lh.Load,De.stencilClearValue=z?se.getClearStencil():void 0,De.stencilStoreOp=Pm.Store);const Re=this._getRenderPassDescriptor(ne,De);ae=Re.colorAttachments,he=Re.depthStencilAttachment}ve&&he&&he.depthLoadOp===void 0&&(E?(he.depthLoadOp=lh.Clear,he.depthClearValue=se.getClearDepth(),he.depthStoreOp=Pm.Store):(he.depthLoadOp=lh.Load,he.depthStoreOp=Pm.Store)),xe&&he&&he.stencilLoadOp===void 0&&(z?(he.stencilLoadOp=lh.Clear,he.stencilClearValue=se.getClearStencil(),he.stencilStoreOp=Pm.Store):(he.stencilLoadOp=lh.Load,he.stencilStoreOp=Pm.Store));const Se=ie.createCommandEncoder({label:"clear"});Se.beginRenderPass({colorAttachments:ae,depthStencilAttachment:he}).end(),ie.queue.submit([Se.finish()])}beginCompute(y){const E=this.get(y),z={label:"computeGroup_"+y.id};this.initTimestampQuery(y,z),E.cmdEncoderGPU=this.device.createCommandEncoder({label:"computeGroup_"+y.id}),E.passEncoderGPU=E.cmdEncoderGPU.beginComputePass(z)}compute(y,E,z,ne){const{passEncoderGPU:ie}=this.get(y),se=this.get(ne).pipeline;this.pipelineUtils.setPipeline(ie,se);for(let ve=0,xe=z.length;ve<xe;ve++){const Se=z[ve],Be=this.get(Se);ie.setBindGroup(ve,Be.group)}const ae=this.device.limits.maxComputeWorkgroupsPerDimension,he=this.get(E);he.dispatchSize===void 0&&(he.dispatchSize={x:0,y:1,z:1});const{dispatchSize:pe}=he;E.dispatchCount>ae?(pe.x=Math.min(E.dispatchCount,ae),pe.y=Math.ceil(E.dispatchCount/ae)):pe.x=E.dispatchCount,ie.dispatchWorkgroups(pe.x,pe.y,pe.z)}finishCompute(y){const E=this.get(y);E.passEncoderGPU.end(),this.device.queue.submit([E.cmdEncoderGPU.finish()])}waitForGPU(){return Vl(this,null,function*(){yield this.device.queue.onSubmittedWorkDone()})}draw(y,E){const{object:z,material:ne,context:ie,pipeline:se}=y,ae=y.getBindings(),he=this.get(ie),pe=this.get(se).pipeline,ve=y.getIndex(),xe=ve!==null,Se=y.getDrawParameters();if(Se===null)return;const Be=(Re,Oe)=>{this.pipelineUtils.setPipeline(Re,pe),Oe.pipeline=pe;const Le=Oe.bindingGroups;for(let $e=0,_e=ae.length;$e<_e;$e++){const st=ae[$e],ct=this.get(st);Le[st.index]!==st.id&&(Re.setBindGroup(st.index,ct.group),Le[st.index]=st.id)}if(xe===!0&&Oe.index!==ve){const $e=this.get(ve).buffer,_e=ve.array instanceof Uint16Array?Tb.Uint16:Tb.Uint32;Re.setIndexBuffer($e,_e),Oe.index=ve}const Je=y.getVertexBuffers();for(let $e=0,_e=Je.length;$e<_e;$e++){const st=Je[$e];if(Oe.attributes[$e]!==st){const ct=this.get(st).buffer;Re.setVertexBuffer($e,ct),Oe.attributes[$e]=st}}ie.stencil===!0&&ne.stencilWrite===!0&&he.currentStencilRef!==ne.stencilRef&&(Re.setStencilReference(ne.stencilRef),he.currentStencilRef=ne.stencilRef)},De=(Re,Oe)=>{if(Be(Re,Oe),z.isBatchedMesh===!0){const Le=z._multiDrawStarts,Je=z._multiDrawCounts,$e=z._multiDrawCount,_e=z._multiDrawInstances;_e!==null&&vc("THREE.WebGPUBackend: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection.");for(let st=0;st<$e;st++){const ct=_e?_e[st]:1,ut=ct>1?0:st;xe===!0?Re.drawIndexed(Je[st],ct,Le[st]/ve.array.BYTES_PER_ELEMENT,0,ut):Re.draw(Je[st],ct,Le[st],ut),E.update(z,Je[st],ct)}}else if(xe===!0){const{vertexCount:Le,instanceCount:Je,firstVertex:$e}=Se,_e=y.getIndirect();if(_e!==null){const st=this.get(_e).buffer;Re.drawIndexedIndirect(st,0)}else Re.drawIndexed(Le,Je,$e,0,0);E.update(z,Le,Je)}else{const{vertexCount:Le,instanceCount:Je,firstVertex:$e}=Se,_e=y.getIndirect();if(_e!==null){const st=this.get(_e).buffer;Re.drawIndirect(st,0)}else Re.draw(Le,Je,$e,0);E.update(z,Le,Je)}};if(y.camera.isArrayCamera&&y.camera.cameras.length>0){const Re=this.get(y.camera),Oe=y.camera.cameras,Le=y.getBindingGroup("cameraIndex");if(Re.indexesGPU===void 0||Re.indexesGPU.length!==Oe.length){const $e=this.get(Le),_e=[],st=new Uint32Array([0,0,0,0]);for(let ct=0,ut=Oe.length;ct<ut;ct++){st[0]=ct;const ht=this.bindingUtils.createBindGroupIndex(st,$e.layout);_e.push(ht)}Re.indexesGPU=_e}const Je=this.renderer.getPixelRatio();for(let $e=0,_e=Oe.length;$e<_e;$e++){const st=Oe[$e];if(z.layers.test(st.layers)){const ct=st.viewport;let ut=he.currentPass,ht=he.currentSets;if(he.bundleEncoders){const pt=he.bundleEncoders[$e],gt=he.bundleSets[$e];ut=pt,ht=gt}ct&&ut.setViewport(Math.floor(ct.x*Je),Math.floor(ct.y*Je),Math.floor(ct.width*Je),Math.floor(ct.height*Je),ie.viewportValue.minDepth,ie.viewportValue.maxDepth),Le&&Re.indexesGPU&&(ut.setBindGroup(Le.index,Re.indexesGPU[$e]),ht.bindingGroups[Le.index]=Le.id),De(ut,ht)}}}else if(he.currentPass){if(he.occlusionQuerySet!==void 0){const Re=he.lastOcclusionObject;Re!==z&&(Re!==null&&Re.occlusionTest===!0&&(he.currentPass.endOcclusionQuery(),he.occlusionQueryIndex++),z.occlusionTest===!0&&(he.currentPass.beginOcclusionQuery(he.occlusionQueryIndex),he.occlusionQueryObjects[he.occlusionQueryIndex]=z),he.lastOcclusionObject=z)}De(he.currentPass,he.currentSets)}}needsRenderUpdate(y){const E=this.get(y),{object:z,material:ne}=y,ie=this.utils,se=ie.getSampleCountRenderContext(y.context),ae=ie.getCurrentColorSpace(y.context),he=ie.getCurrentColorFormat(y.context),pe=ie.getCurrentDepthStencilFormat(y.context),ve=ie.getPrimitiveTopology(z,ne);let xe=!1;return(E.material!==ne||E.materialVersion!==ne.version||E.transparent!==ne.transparent||E.blending!==ne.blending||E.premultipliedAlpha!==ne.premultipliedAlpha||E.blendSrc!==ne.blendSrc||E.blendDst!==ne.blendDst||E.blendEquation!==ne.blendEquation||E.blendSrcAlpha!==ne.blendSrcAlpha||E.blendDstAlpha!==ne.blendDstAlpha||E.blendEquationAlpha!==ne.blendEquationAlpha||E.colorWrite!==ne.colorWrite||E.depthWrite!==ne.depthWrite||E.depthTest!==ne.depthTest||E.depthFunc!==ne.depthFunc||E.stencilWrite!==ne.stencilWrite||E.stencilFunc!==ne.stencilFunc||E.stencilFail!==ne.stencilFail||E.stencilZFail!==ne.stencilZFail||E.stencilZPass!==ne.stencilZPass||E.stencilFuncMask!==ne.stencilFuncMask||E.stencilWriteMask!==ne.stencilWriteMask||E.side!==ne.side||E.alphaToCoverage!==ne.alphaToCoverage||E.sampleCount!==se||E.colorSpace!==ae||E.colorFormat!==he||E.depthStencilFormat!==pe||E.primitiveTopology!==ve||E.clippingContextCacheKey!==y.clippingContextCacheKey)&&(E.material=ne,E.materialVersion=ne.version,E.transparent=ne.transparent,E.blending=ne.blending,E.premultipliedAlpha=ne.premultipliedAlpha,E.blendSrc=ne.blendSrc,E.blendDst=ne.blendDst,E.blendEquation=ne.blendEquation,E.blendSrcAlpha=ne.blendSrcAlpha,E.blendDstAlpha=ne.blendDstAlpha,E.blendEquationAlpha=ne.blendEquationAlpha,E.colorWrite=ne.colorWrite,E.depthWrite=ne.depthWrite,E.depthTest=ne.depthTest,E.depthFunc=ne.depthFunc,E.stencilWrite=ne.stencilWrite,E.stencilFunc=ne.stencilFunc,E.stencilFail=ne.stencilFail,E.stencilZFail=ne.stencilZFail,E.stencilZPass=ne.stencilZPass,E.stencilFuncMask=ne.stencilFuncMask,E.stencilWriteMask=ne.stencilWriteMask,E.side=ne.side,E.alphaToCoverage=ne.alphaToCoverage,E.sampleCount=se,E.colorSpace=ae,E.colorFormat=he,E.depthStencilFormat=pe,E.primitiveTopology=ve,E.clippingContextCacheKey=y.clippingContextCacheKey,xe=!0),xe}getRenderCacheKey(y){const{object:E,material:z}=y,ne=this.utils,ie=y.context;return[z.transparent,z.blending,z.premultipliedAlpha,z.blendSrc,z.blendDst,z.blendEquation,z.blendSrcAlpha,z.blendDstAlpha,z.blendEquationAlpha,z.colorWrite,z.depthWrite,z.depthTest,z.depthFunc,z.stencilWrite,z.stencilFunc,z.stencilFail,z.stencilZFail,z.stencilZPass,z.stencilFuncMask,z.stencilWriteMask,z.side,ne.getSampleCountRenderContext(ie),ne.getCurrentColorSpace(ie),ne.getCurrentColorFormat(ie),ne.getCurrentDepthStencilFormat(ie),ne.getPrimitiveTopology(E,z),y.getGeometryCacheKey(),y.clippingContextCacheKey].join()}createSampler(y){this.textureUtils.createSampler(y)}destroySampler(y){this.textureUtils.destroySampler(y)}createDefaultTexture(y){this.textureUtils.createDefaultTexture(y)}createTexture(y,E){this.textureUtils.createTexture(y,E)}updateTexture(y,E){this.textureUtils.updateTexture(y,E)}generateMipmaps(y){this.textureUtils.generateMipmaps(y)}destroyTexture(y){this.textureUtils.destroyTexture(y)}copyTextureToBuffer(y,E,z,ne,ie,se){return Vl(this,null,function*(){return this.textureUtils.copyTextureToBuffer(y,E,z,ne,ie,se)})}initTimestampQuery(y,E){if(!this.trackTimestamp)return;const z=y.isComputeNode?"compute":"render";this.timestampQueryPool[z]||(this.timestampQueryPool[z]=new ete(this.device,z,2048));const ne=this.timestampQueryPool[z],ie=ne.allocateQueriesForContext(y);E.timestampWrites={querySet:ne.querySet,beginningOfPassWriteIndex:ie,endOfPassWriteIndex:ie+1}}createNodeBuilder(y,E){return new Qee(y,E)}createProgram(y){const E=this.get(y);E.module={module:this.device.createShaderModule({code:y.code,label:y.stage+(y.name!==""?`_${y.name}`:"")}),entryPoint:"main"}}destroyProgram(y){this.delete(y)}createRenderPipeline(y,E){this.pipelineUtils.createRenderPipeline(y,E)}createComputePipeline(y,E){this.pipelineUtils.createComputePipeline(y,E)}beginBundle(y){const E=this.get(y);E._currentPass=E.currentPass,E._currentSets=E.currentSets,E.currentSets={attributes:{},bindingGroups:[],pipeline:null,index:null},E.currentPass=this.pipelineUtils.createBundleEncoder(y)}finishBundle(y,E){const z=this.get(y),ie=z.currentPass.finish();this.get(E).bundleGPU=ie,z.currentSets=z._currentSets,z.currentPass=z._currentPass}addBundle(y,E){this.get(y).renderBundles.push(this.get(E).bundleGPU)}createBindings(y,E,z,ne){this.bindingUtils.createBindings(y,E,z,ne)}updateBindings(y,E,z,ne){this.bindingUtils.createBindings(y,E,z,ne)}updateBinding(y){this.bindingUtils.updateBinding(y)}createIndexAttribute(y){this.attributeUtils.createAttribute(y,GPUBufferUsage.INDEX|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}createAttribute(y){this.attributeUtils.createAttribute(y,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}createStorageAttribute(y){this.attributeUtils.createAttribute(y,GPUBufferUsage.STORAGE|GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}createIndirectStorageAttribute(y){this.attributeUtils.createAttribute(y,GPUBufferUsage.STORAGE|GPUBufferUsage.INDIRECT|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}updateAttribute(y){this.attributeUtils.updateAttribute(y)}destroyAttribute(y){this.attributeUtils.destroyAttribute(y)}updateSize(){this.colorBuffer=this.textureUtils.getColorBuffer(),this.defaultRenderPassdescriptor=null}getMaxAnisotropy(){return 16}hasFeature(y){return this.device.features.has(y)}copyTextureToTexture(y,E,z=null,ne=null,ie=0,se=0){let ae=0,he=0,pe=0,ve=0,xe=0,Se=0,Be=y.image.width,De=y.image.height,Re=1;z!==null&&(z.isBox3===!0?(ve=z.min.x,xe=z.min.y,Se=z.min.z,Be=z.max.x-z.min.x,De=z.max.y-z.min.y,Re=z.max.z-z.min.z):(ve=z.min.x,xe=z.min.y,Be=z.max.x-z.min.x,De=z.max.y-z.min.y,Re=1)),ne!==null&&(ae=ne.x,he=ne.y,pe=ne.z||0);const Oe=this.device.createCommandEncoder({label:"copyTextureToTexture_"+y.id+"_"+E.id}),Le=this.get(y).texture,Je=this.get(E).texture;Oe.copyTextureToTexture({texture:Le,mipLevel:ie,origin:{x:ve,y:xe,z:Se}},{texture:Je,mipLevel:se,origin:{x:ae,y:he,z:pe}},[Be,De,Re]),this.device.queue.submit([Oe.finish()]),se===0&&E.generateMipmaps&&this.textureUtils.generateMipmaps(E)}copyFramebufferToTexture(y,E,z){const ne=this.get(E);let ie=null;E.renderTarget?y.isDepthTexture?ie=this.get(E.depthTexture).texture:ie=this.get(E.textures[0]).texture:y.isDepthTexture?ie=this.textureUtils.getDepthBuffer(E.depth,E.stencil):ie=this.context.getCurrentTexture();const se=this.get(y).texture;if(ie.format!==se.format){console.error("WebGPUBackend: copyFramebufferToTexture: Source and destination formats do not match.",ie.format,se.format);return}let ae;if(ne.currentPass?(ne.currentPass.end(),ae=ne.encoder):ae=this.device.createCommandEncoder({label:"copyFramebufferToTexture_"+y.id}),ae.copyTextureToTexture({texture:ie,origin:[z.x,z.y,0]},{texture:se},[z.z,z.w]),ne.currentPass){const{descriptor:he}=ne;for(let pe=0;pe<he.colorAttachments.length;pe++)he.colorAttachments[pe].loadOp=lh.Load;if(E.depth&&(he.depthStencilAttachment.depthLoadOp=lh.Load),E.stencil&&(he.depthStencilAttachment.stencilLoadOp=lh.Load),ne.currentPass=ae.beginRenderPass(he),ne.currentSets={attributes:{},bindingGroups:[],pipeline:null,index:null},E.viewport&&this.updateViewport(E),E.scissor){const{x:pe,y:ve,width:xe,height:Se}=E.scissorValue;ne.currentPass.setScissorRect(pe,ve,xe,Se)}}else this.device.queue.submit([ae.finish()]);y.generateMipmaps&&this.textureUtils.generateMipmaps(y)}}class tte extends Lh{constructor(y,E,z,ne,ie,se){super(y,E,z,ne,ie,se),this.iesMap=null}copy(y,E){return super.copy(y,E),this.iesMap=y.iesMap,this}}class nte extends Lh{constructor(y,E,z,ne,ie,se){super(y,E,z,ne,ie,se),this.aspect=null}copy(y,E){return super.copy(y,E),this.aspect=y.aspect,this}}class ite extends bk{constructor(){super(),this.addMaterial(IY,"MeshPhongMaterial"),this.addMaterial(q7,"MeshStandardMaterial"),this.addMaterial(AK,"MeshPhysicalMaterial"),this.addMaterial(CK,"MeshToonMaterial"),this.addMaterial(MY,"MeshBasicMaterial"),this.addMaterial(FY,"MeshLambertMaterial"),this.addMaterial(wY,"MeshNormalMaterial"),this.addMaterial(MK,"MeshMatcapMaterial"),this.addMaterial(pY,"LineBasicMaterial"),this.addMaterial(mY,"LineDashedMaterial"),this.addMaterial(NK,"PointsMaterial"),this.addMaterial($7,"SpriteMaterial"),this.addMaterial(IK,"ShadowMaterial"),this.addLight(M_,Cy),this.addLight(I$,Qw),this.addLight(k$,yE),this.addLight(m6,Lh),this.addLight(U$,v1),this.addLight(H$,df),this.addLight(V$,Gm),this.addLight(O$,tte),this.addLight(z$,nte),this.addToneMapping(B9,hg),this.addToneMapping(T9,Jc),this.addToneMapping(D9,Wp),this.addToneMapping(N9,vh),this.addToneMapping(F9,dp),this.addToneMapping(L9,Gf)}}class rte extends see{constructor(y={}){let E;y.forceWebGL?E=Yk:(E=L6,y.getFallback=()=>(console.warn("THREE.WebGPURenderer: WebGPU is not available, running under WebGL2 backend."),new Yk(y)));const z=new E(y);super(z,y),this.library=new ite,this.isWebGPURenderer=!0,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}}class Ece extends null{constructor(){super(),this.isBundleGroup=!0,this.type="BundleGroup",this.static=!0,this.version=0}set needsUpdate(y){y===!0&&this.version++}}class bce{constructor(y,E=Da(0,0,1,1)){this.renderer=y,this.outputNode=E,this.outputColorTransform=!0,this.needsUpdate=!0;const z=new $d;z.name="PostProcessing",this._quadMesh=new LM(z)}render(){this._update();const y=this.renderer,E=y.toneMapping,z=y.outputColorSpace;y.toneMapping=NoToneMapping,y.outputColorSpace=LinearSRGBColorSpace;const ne=y.xr.enabled;y.xr.enabled=!1,this._quadMesh.render(y),y.xr.enabled=ne,y.toneMapping=E,y.outputColorSpace=z}dispose(){this._quadMesh.material.dispose()}_update(){if(this.needsUpdate===!0){const y=this.renderer,E=y.toneMapping,z=y.outputColorSpace;this._quadMesh.material.fragmentNode=this.outputColorTransform===!0?G8(this.outputNode,E,z):this.outputNode.context({toneMapping:E,outputColorSpace:z}),this._quadMesh.material.needsUpdate=!0,this.needsUpdate=!1}}renderAsync(){return Vl(this,null,function*(){this._update();const y=this.renderer,E=y.toneMapping,z=y.outputColorSpace;y.toneMapping=NoToneMapping,y.outputColorSpace=LinearSRGBColorSpace;const ne=y.xr.enabled;y.xr.enabled=!1,yield this._quadMesh.renderAsync(y),y.xr.enabled=ne,y.toneMapping=E,y.outputColorSpace=z})}}class Mce extends null{constructor(y=1,E=1){super(),this.image={width:y,height:E},this.magFilter=LinearFilter,this.minFilter=LinearFilter,this.isStorageTexture=!0}}class Bce extends null{constructor(y,E){super(y,E,Uint32Array),this.isIndirectStorageBufferAttribute=!0}}class ote extends null{constructor(y){super(y),this.textures={},this.nodes={}}load(y,E,z,ne){const ie=new FileLoader(this.manager);ie.setPath(this.path),ie.setRequestHeader(this.requestHeader),ie.setWithCredentials(this.withCredentials),ie.load(y,se=>{try{E(this.parse(JSON.parse(se)))}catch(ae){ne?ne(ae):console.error(ae),this.manager.itemError(y)}},z,ne)}parseNodes(y){const E={};if(y!==void 0){for(const ne of y){const{uuid:ie,type:se}=ne;E[ie]=this.createNodeFromType(se),E[ie].uuid=ie}const z={nodes:E,textures:this.textures};for(const ne of y)ne.meta=z,E[ne.uuid].deserialize(ne),delete ne.meta}return E}parse(y){const E=this.createNodeFromType(y.type);E.uuid=y.uuid;const ne={nodes:this.parseNodes(y.nodes),textures:this.textures};return y.meta=ne,E.deserialize(y),delete y.meta,E}setTextures(y){return this.textures=y,this}setNodes(y){return this.nodes=y,this}createNodeFromType(y){return this.nodes[y]===void 0?(console.error("THREE.NodeLoader: Node type not found:",y),Dn()):wo(new this.nodes[y])}}class ste extends null{constructor(y){super(y),this.nodes={},this.nodeMaterials={}}parse(y){const E=super.parse(y),z=this.nodes,ne=y.inputNodes;for(const ie in ne){const se=ne[ie];E[ie]=z[se]}return E}setNodes(y){return this.nodes=y,this}setNodeMaterials(y){return this.nodeMaterials=y,this}createMaterialFromType(y){const E=this.nodeMaterials[y];return E!==void 0?new E:super.createMaterialFromType(y)}}class Tce extends null{constructor(y){super(y),this.nodes={},this.nodeMaterials={},this._nodesJSON=null}setNodes(y){return this.nodes=y,this}setNodeMaterials(y){return this.nodeMaterials=y,this}parse(y,E){this._nodesJSON=y.nodes;const z=super.parse(y,E);return this._nodesJSON=null,z}parseNodes(y,E){if(y!==void 0){const z=new ote;return z.setNodes(this.nodes),z.setTextures(E),z.parseNodes(y)}return{}}parseMaterials(y,E){const z={};if(y!==void 0){const ne=this.parseNodes(this._nodesJSON,E),ie=new ste;ie.setTextures(E),ie.setNodes(ne),ie.setNodeMaterials(this.nodeMaterials);for(let se=0,ae=y.length;se<ae;se++){const he=y[se];z[he.uuid]=ie.parse(he)}}return z}}class Dce extends null{constructor(){super(),this.isClippingGroup=!0,this.clippingPlanes=[],this.enabled=!0,this.clipIntersection=!1,this.clipShadows=!1}}const I6={type:"change"},k6={type:"start"},O6={type:"end"},iO=1e-6,uh={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4},ET=new Yr,dS=new Yr,ate=new yn,bT=new yn,R6=new yn,Lb=new Bf,rO=new yn,MT=new yn,z6=new yn,BT=new yn;class lte extends $5{constructor(y,E=null){super(y,E),this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.keys=["KeyA","KeyS","KeyD"],this.mouseButtons={LEFT:ad.ROTATE,MIDDLE:ad.DOLLY,RIGHT:ad.PAN},this.target=new yn,this.state=uh.NONE,this.keyState=uh.NONE,this._lastPosition=new yn,this._lastZoom=1,this._touchZoomDistanceStart=0,this._touchZoomDistanceEnd=0,this._lastAngle=0,this._eye=new yn,this._movePrev=new Yr,this._moveCurr=new Yr,this._lastAxis=new yn,this._zoomStart=new Yr,this._zoomEnd=new Yr,this._panStart=new Yr,this._panEnd=new Yr,this._pointers=[],this._pointerPositions={},this._onPointerMove=cte.bind(this),this._onPointerDown=ute.bind(this),this._onPointerUp=hte.bind(this),this._onPointerCancel=dte.bind(this),this._onContextMenu=Ate.bind(this),this._onMouseWheel=yte.bind(this),this._onKeyDown=pte.bind(this),this._onKeyUp=fte.bind(this),this._onTouchStart=xte.bind(this),this._onTouchMove=wte.bind(this),this._onTouchEnd=Ste.bind(this),this._onMouseDown=gte.bind(this),this._onMouseMove=mte.bind(this),this._onMouseUp=vte.bind(this),this._target0=this.target.clone(),this._position0=this.object.position.clone(),this._up0=this.object.up.clone(),this._zoom0=this.object.zoom,E!==null&&(this.connect(E),this.handleResize()),this.update()}connect(y){super.connect(y),window.addEventListener("keydown",this._onKeyDown),window.addEventListener("keyup",this._onKeyUp),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerCancel),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction="none"}disconnect(){window.removeEventListener("keydown",this._onKeyDown),window.removeEventListener("keyup",this._onKeyUp),this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerCancel),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}handleResize(){const y=this.domElement.getBoundingClientRect(),E=this.domElement.ownerDocument.documentElement;this.screen.left=y.left+window.pageXOffset-E.clientLeft,this.screen.top=y.top+window.pageYOffset-E.clientTop,this.screen.width=y.width,this.screen.height=y.height}update(){this._eye.subVectors(this.object.position,this.target),this.noRotate||this._rotateCamera(),this.noZoom||this._zoomCamera(),this.noPan||this._panCamera(),this.object.position.addVectors(this.target,this._eye),this.object.isPerspectiveCamera?(this._checkDistances(),this.object.lookAt(this.target),this._lastPosition.distanceToSquared(this.object.position)>iO&&(this.dispatchEvent(I6),this._lastPosition.copy(this.object.position))):this.object.isOrthographicCamera?(this.object.lookAt(this.target),(this._lastPosition.distanceToSquared(this.object.position)>iO||this._lastZoom!==this.object.zoom)&&(this.dispatchEvent(I6),this._lastPosition.copy(this.object.position),this._lastZoom=this.object.zoom)):console.warn("THREE.TrackballControls: Unsupported camera type.")}reset(){this.state=uh.NONE,this.keyState=uh.NONE,this.target.copy(this._target0),this.object.position.copy(this._position0),this.object.up.copy(this._up0),this.object.zoom=this._zoom0,this.object.updateProjectionMatrix(),this._eye.subVectors(this.object.position,this.target),this.object.lookAt(this.target),this.dispatchEvent(I6),this._lastPosition.copy(this.object.position),this._lastZoom=this.object.zoom}_panCamera(){if(dS.copy(this._panEnd).sub(this._panStart),dS.lengthSq()){if(this.object.isOrthographicCamera){const y=(this.object.right-this.object.left)/this.object.zoom/this.domElement.clientWidth,E=(this.object.top-this.object.bottom)/this.object.zoom/this.domElement.clientWidth;dS.x*=y,dS.y*=E}dS.multiplyScalar(this._eye.length()*this.panSpeed),bT.copy(this._eye).cross(this.object.up).setLength(dS.x),bT.add(ate.copy(this.object.up).setLength(dS.y)),this.object.position.add(bT),this.target.add(bT),this.staticMoving?this._panStart.copy(this._panEnd):this._panStart.add(dS.subVectors(this._panEnd,this._panStart).multiplyScalar(this.dynamicDampingFactor))}}_rotateCamera(){BT.set(this._moveCurr.x-this._movePrev.x,this._moveCurr.y-this._movePrev.y,0);let y=BT.length();y?(this._eye.copy(this.object.position).sub(this.target),rO.copy(this._eye).normalize(),MT.copy(this.object.up).normalize(),z6.crossVectors(MT,rO).normalize(),MT.setLength(this._moveCurr.y-this._movePrev.y),z6.setLength(this._moveCurr.x-this._movePrev.x),BT.copy(MT.add(z6)),R6.crossVectors(BT,this._eye).normalize(),y*=this.rotateSpeed,Lb.setFromAxisAngle(R6,y),this._eye.applyQuaternion(Lb),this.object.up.applyQuaternion(Lb),this._lastAxis.copy(R6),this._lastAngle=y):!this.staticMoving&&this._lastAngle&&(this._lastAngle*=Math.sqrt(1-this.dynamicDampingFactor),this._eye.copy(this.object.position).sub(this.target),Lb.setFromAxisAngle(this._lastAxis,this._lastAngle),this._eye.applyQuaternion(Lb),this.object.up.applyQuaternion(Lb)),this._movePrev.copy(this._moveCurr)}_zoomCamera(){let y;this.state===uh.TOUCH_ZOOM_PAN?(y=this._touchZoomDistanceStart/this._touchZoomDistanceEnd,this._touchZoomDistanceStart=this._touchZoomDistanceEnd,this.object.isPerspectiveCamera?this._eye.multiplyScalar(y):this.object.isOrthographicCamera?(this.object.zoom=hw.clamp(this.object.zoom/y,this.minZoom,this.maxZoom),this._lastZoom!==this.object.zoom&&this.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")):(y=1+(this._zoomEnd.y-this._zoomStart.y)*this.zoomSpeed,y!==1&&y>0&&(this.object.isPerspectiveCamera?this._eye.multiplyScalar(y):this.object.isOrthographicCamera?(this.object.zoom=hw.clamp(this.object.zoom/y,this.minZoom,this.maxZoom),this._lastZoom!==this.object.zoom&&this.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")),this.staticMoving?this._zoomStart.copy(this._zoomEnd):this._zoomStart.y+=(this._zoomEnd.y-this._zoomStart.y)*this.dynamicDampingFactor)}_getMouseOnScreen(y,E){return ET.set((y-this.screen.left)/this.screen.width,(E-this.screen.top)/this.screen.height),ET}_getMouseOnCircle(y,E){return ET.set((y-this.screen.width*.5-this.screen.left)/(this.screen.width*.5),(this.screen.height+2*(this.screen.top-E))/this.screen.width),ET}_addPointer(y){this._pointers.push(y)}_removePointer(y){delete this._pointerPositions[y.pointerId];for(let E=0;E<this._pointers.length;E++)if(this._pointers[E].pointerId==y.pointerId){this._pointers.splice(E,1);return}}_trackPointer(y){let E=this._pointerPositions[y.pointerId];E===void 0&&(E=new Yr,this._pointerPositions[y.pointerId]=E),E.set(y.pageX,y.pageY)}_getSecondPointerPosition(y){const E=y.pointerId===this._pointers[0].pointerId?this._pointers[1]:this._pointers[0];return this._pointerPositions[E.pointerId]}_checkDistances(){(!this.noZoom||!this.noPan)&&(this._eye.lengthSq()>this.maxDistance*this.maxDistance&&(this.object.position.addVectors(this.target,this._eye.setLength(this.maxDistance)),this._zoomStart.copy(this._zoomEnd)),this._eye.lengthSq()<this.minDistance*this.minDistance&&(this.object.position.addVectors(this.target,this._eye.setLength(this.minDistance)),this._zoomStart.copy(this._zoomEnd)))}}function ute(ee){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(ee.pointerId),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerup",this._onPointerUp)),this._addPointer(ee),ee.pointerType==="touch"?this._onTouchStart(ee):this._onMouseDown(ee))}function cte(ee){this.enabled!==!1&&(ee.pointerType==="touch"?this._onTouchMove(ee):this._onMouseMove(ee))}function hte(ee){this.enabled!==!1&&(ee.pointerType==="touch"?this._onTouchEnd(ee):this._onMouseUp(),this._removePointer(ee),this._pointers.length===0&&(this.domElement.releasePointerCapture(ee.pointerId),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp)))}function dte(ee){this._removePointer(ee)}function fte(){this.enabled!==!1&&(this.keyState=uh.NONE,window.addEventListener("keydown",this._onKeyDown))}function pte(ee){this.enabled!==!1&&(window.removeEventListener("keydown",this._onKeyDown),this.keyState===uh.NONE&&(ee.code===this.keys[uh.ROTATE]&&!this.noRotate?this.keyState=uh.ROTATE:ee.code===this.keys[uh.ZOOM]&&!this.noZoom?this.keyState=uh.ZOOM:ee.code===this.keys[uh.PAN]&&!this.noPan&&(this.keyState=uh.PAN)))}function gte(ee){let y;switch(ee.button){case 0:y=this.mouseButtons.LEFT;break;case 1:y=this.mouseButtons.MIDDLE;break;case 2:y=this.mouseButtons.RIGHT;break;default:y=-1}switch(y){case ad.DOLLY:this.state=uh.ZOOM;break;case ad.ROTATE:this.state=uh.ROTATE;break;case ad.PAN:this.state=uh.PAN;break;default:this.state=uh.NONE}const E=this.keyState!==uh.NONE?this.keyState:this.state;E===uh.ROTATE&&!this.noRotate?(this._moveCurr.copy(this._getMouseOnCircle(ee.pageX,ee.pageY)),this._movePrev.copy(this._moveCurr)):E===uh.ZOOM&&!this.noZoom?(this._zoomStart.copy(this._getMouseOnScreen(ee.pageX,ee.pageY)),this._zoomEnd.copy(this._zoomStart)):E===uh.PAN&&!this.noPan&&(this._panStart.copy(this._getMouseOnScreen(ee.pageX,ee.pageY)),this._panEnd.copy(this._panStart)),this.dispatchEvent(k6)}function mte(ee){const y=this.keyState!==uh.NONE?this.keyState:this.state;y===uh.ROTATE&&!this.noRotate?(this._movePrev.copy(this._moveCurr),this._moveCurr.copy(this._getMouseOnCircle(ee.pageX,ee.pageY))):y===uh.ZOOM&&!this.noZoom?this._zoomEnd.copy(this._getMouseOnScreen(ee.pageX,ee.pageY)):y===uh.PAN&&!this.noPan&&this._panEnd.copy(this._getMouseOnScreen(ee.pageX,ee.pageY))}function vte(){this.state=uh.NONE,this.dispatchEvent(O6)}function yte(ee){if(this.enabled!==!1&&this.noZoom!==!0){switch(ee.preventDefault(),ee.deltaMode){case 2:this._zoomStart.y-=ee.deltaY*.025;break;case 1:this._zoomStart.y-=ee.deltaY*.01;break;default:this._zoomStart.y-=ee.deltaY*25e-5;break}this.dispatchEvent(k6),this.dispatchEvent(O6)}}function Ate(ee){this.enabled!==!1&&ee.preventDefault()}function xte(ee){switch(this._trackPointer(ee),this._pointers.length){case 1:this.state=uh.TOUCH_ROTATE,this._moveCurr.copy(this._getMouseOnCircle(this._pointers[0].pageX,this._pointers[0].pageY)),this._movePrev.copy(this._moveCurr);break;default:this.state=uh.TOUCH_ZOOM_PAN;const y=this._pointers[0].pageX-this._pointers[1].pageX,E=this._pointers[0].pageY-this._pointers[1].pageY;this._touchZoomDistanceEnd=this._touchZoomDistanceStart=Math.sqrt(y*y+E*E);const z=(this._pointers[0].pageX+this._pointers[1].pageX)/2,ne=(this._pointers[0].pageY+this._pointers[1].pageY)/2;this._panStart.copy(this._getMouseOnScreen(z,ne)),this._panEnd.copy(this._panStart);break}this.dispatchEvent(k6)}function wte(ee){switch(this._trackPointer(ee),this._pointers.length){case 1:this._movePrev.copy(this._moveCurr),this._moveCurr.copy(this._getMouseOnCircle(ee.pageX,ee.pageY));break;default:const y=this._getSecondPointerPosition(ee),E=ee.pageX-y.x,z=ee.pageY-y.y;this._touchZoomDistanceEnd=Math.sqrt(E*E+z*z);const ne=(ee.pageX+y.x)/2,ie=(ee.pageY+y.y)/2;this._panEnd.copy(this._getMouseOnScreen(ne,ie));break}}function Ste(ee){switch(this._pointers.length){case 0:this.state=uh.NONE;break;case 1:this.state=uh.TOUCH_ROTATE,this._moveCurr.copy(this._getMouseOnCircle(ee.pageX,ee.pageY)),this._movePrev.copy(this._moveCurr);break;case 2:this.state=uh.TOUCH_ZOOM_PAN;for(let y=0;y<this._pointers.length;y++)if(this._pointers[y].pointerId!==ee.pointerId){const E=this._pointerPositions[this._pointers[y].pointerId];this._moveCurr.copy(this._getMouseOnCircle(E.x,E.y)),this._movePrev.copy(this._moveCurr);break}break}this.dispatchEvent(O6)}const oO={type:"change"},U6={type:"start"},sO={type:"end"},TT=new yA,aO=new Yh,Pte=Math.cos(70*hw.DEG2RAD),Rp=new yn,n0=2*Math.PI,Oh={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},H6=1e-6;class Cte extends $5{constructor(y,E=null){super(y,E),this.state=Oh.NONE,this.target=new yn,this.cursor=new yn,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:ad.ROTATE,MIDDLE:ad.DOLLY,RIGHT:ad.PAN},this.touches={ONE:jf.ROTATE,TWO:jf.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new yn,this._lastQuaternion=new Bf,this._lastTargetPosition=new yn,this._quat=new Bf().setFromUnitVectors(y.up,new yn(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new Pg,this._sphericalDelta=new Pg,this._scale=1,this._panOffset=new yn,this._rotateStart=new Yr,this._rotateEnd=new Yr,this._rotateDelta=new Yr,this._panStart=new Yr,this._panEnd=new Yr,this._panDelta=new Yr,this._dollyStart=new Yr,this._dollyEnd=new Yr,this._dollyDelta=new Yr,this._dollyDirection=new yn,this._mouse=new Yr,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=bte.bind(this),this._onPointerDown=Ete.bind(this),this._onPointerUp=Mte.bind(this),this._onContextMenu=Ite.bind(this),this._onMouseWheel=Dte.bind(this),this._onKeyDown=Nte.bind(this),this._onTouchStart=Fte.bind(this),this._onTouchMove=Lte.bind(this),this._onMouseDown=Bte.bind(this),this._onMouseMove=Tte.bind(this),this._interceptControlDown=kte.bind(this),this._interceptControlUp=Ote.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}connect(y){super.connect(y),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(y){y.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=y}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(oO),this.update(),this.state=Oh.NONE}update(y=null){const E=this.object.position;Rp.copy(E).sub(this.target),Rp.applyQuaternion(this._quat),this._spherical.setFromVector3(Rp),this.autoRotate&&this.state===Oh.NONE&&this._rotateLeft(this._getAutoRotationAngle(y)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let z=this.minAzimuthAngle,ne=this.maxAzimuthAngle;isFinite(z)&&isFinite(ne)&&(z<-Math.PI?z+=n0:z>Math.PI&&(z-=n0),ne<-Math.PI?ne+=n0:ne>Math.PI&&(ne-=n0),z<=ne?this._spherical.theta=Math.max(z,Math.min(ne,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(z+ne)/2?Math.max(z,this._spherical.theta):Math.min(ne,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let ie=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const se=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),ie=se!=this._spherical.radius}if(Rp.setFromSpherical(this._spherical),Rp.applyQuaternion(this._quatInverse),E.copy(this.target).add(Rp),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let se=null;if(this.object.isPerspectiveCamera){const ae=Rp.length();se=this._clampDistance(ae*this._scale);const he=ae-se;this.object.position.addScaledVector(this._dollyDirection,he),this.object.updateMatrixWorld(),ie=!!he}else if(this.object.isOrthographicCamera){const ae=new yn(this._mouse.x,this._mouse.y,0);ae.unproject(this.object);const he=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),ie=he!==this.object.zoom;const pe=new yn(this._mouse.x,this._mouse.y,0);pe.unproject(this.object),this.object.position.sub(pe).add(ae),this.object.updateMatrixWorld(),se=Rp.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;se!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(se).add(this.object.position):(TT.origin.copy(this.object.position),TT.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(TT.direction))<Pte?this.object.lookAt(this.target):(aO.setFromNormalAndCoplanarPoint(this.object.up,this.target),TT.intersectPlane(aO,this.target))))}else if(this.object.isOrthographicCamera){const se=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),se!==this.object.zoom&&(this.object.updateProjectionMatrix(),ie=!0)}return this._scale=1,this._performCursorZoom=!1,ie||this._lastPosition.distanceToSquared(this.object.position)>H6||8*(1-this._lastQuaternion.dot(this.object.quaternion))>H6||this._lastTargetPosition.distanceToSquared(this.target)>H6?(this.dispatchEvent(oO),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(y){return y!==null?n0/60*this.autoRotateSpeed*y:n0/60/60*this.autoRotateSpeed}_getZoomScale(y){const E=Math.abs(y*.01);return Math.pow(.95,this.zoomSpeed*E)}_rotateLeft(y){this._sphericalDelta.theta-=y}_rotateUp(y){this._sphericalDelta.phi-=y}_panLeft(y,E){Rp.setFromMatrixColumn(E,0),Rp.multiplyScalar(-y),this._panOffset.add(Rp)}_panUp(y,E){this.screenSpacePanning===!0?Rp.setFromMatrixColumn(E,1):(Rp.setFromMatrixColumn(E,0),Rp.crossVectors(this.object.up,Rp)),Rp.multiplyScalar(y),this._panOffset.add(Rp)}_pan(y,E){const z=this.domElement;if(this.object.isPerspectiveCamera){const ne=this.object.position;Rp.copy(ne).sub(this.target);let ie=Rp.length();ie*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*y*ie/z.clientHeight,this.object.matrix),this._panUp(2*E*ie/z.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(y*(this.object.right-this.object.left)/this.object.zoom/z.clientWidth,this.object.matrix),this._panUp(E*(this.object.top-this.object.bottom)/this.object.zoom/z.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(y){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=y:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(y){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=y:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(y,E){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const z=this.domElement.getBoundingClientRect(),ne=y-z.left,ie=E-z.top,se=z.width,ae=z.height;this._mouse.x=ne/se*2-1,this._mouse.y=-(ie/ae)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(y){return Math.max(this.minDistance,Math.min(this.maxDistance,y))}_handleMouseDownRotate(y){this._rotateStart.set(y.clientX,y.clientY)}_handleMouseDownDolly(y){this._updateZoomParameters(y.clientX,y.clientX),this._dollyStart.set(y.clientX,y.clientY)}_handleMouseDownPan(y){this._panStart.set(y.clientX,y.clientY)}_handleMouseMoveRotate(y){this._rotateEnd.set(y.clientX,y.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const E=this.domElement;this._rotateLeft(n0*this._rotateDelta.x/E.clientHeight),this._rotateUp(n0*this._rotateDelta.y/E.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(y){this._dollyEnd.set(y.clientX,y.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(y){this._panEnd.set(y.clientX,y.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(y){this._updateZoomParameters(y.clientX,y.clientY),y.deltaY<0?this._dollyIn(this._getZoomScale(y.deltaY)):y.deltaY>0&&this._dollyOut(this._getZoomScale(y.deltaY)),this.update()}_handleKeyDown(y){let E=!1;switch(y.code){case this.keys.UP:y.ctrlKey||y.metaKey||y.shiftKey?this.enableRotate&&this._rotateUp(n0*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),E=!0;break;case this.keys.BOTTOM:y.ctrlKey||y.metaKey||y.shiftKey?this.enableRotate&&this._rotateUp(-n0*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),E=!0;break;case this.keys.LEFT:y.ctrlKey||y.metaKey||y.shiftKey?this.enableRotate&&this._rotateLeft(n0*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),E=!0;break;case this.keys.RIGHT:y.ctrlKey||y.metaKey||y.shiftKey?this.enableRotate&&this._rotateLeft(-n0*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),E=!0;break}E&&(y.preventDefault(),this.update())}_handleTouchStartRotate(y){if(this._pointers.length===1)this._rotateStart.set(y.pageX,y.pageY);else{const E=this._getSecondPointerPosition(y),z=.5*(y.pageX+E.x),ne=.5*(y.pageY+E.y);this._rotateStart.set(z,ne)}}_handleTouchStartPan(y){if(this._pointers.length===1)this._panStart.set(y.pageX,y.pageY);else{const E=this._getSecondPointerPosition(y),z=.5*(y.pageX+E.x),ne=.5*(y.pageY+E.y);this._panStart.set(z,ne)}}_handleTouchStartDolly(y){const E=this._getSecondPointerPosition(y),z=y.pageX-E.x,ne=y.pageY-E.y,ie=Math.sqrt(z*z+ne*ne);this._dollyStart.set(0,ie)}_handleTouchStartDollyPan(y){this.enableZoom&&this._handleTouchStartDolly(y),this.enablePan&&this._handleTouchStartPan(y)}_handleTouchStartDollyRotate(y){this.enableZoom&&this._handleTouchStartDolly(y),this.enableRotate&&this._handleTouchStartRotate(y)}_handleTouchMoveRotate(y){if(this._pointers.length==1)this._rotateEnd.set(y.pageX,y.pageY);else{const z=this._getSecondPointerPosition(y),ne=.5*(y.pageX+z.x),ie=.5*(y.pageY+z.y);this._rotateEnd.set(ne,ie)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const E=this.domElement;this._rotateLeft(n0*this._rotateDelta.x/E.clientHeight),this._rotateUp(n0*this._rotateDelta.y/E.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(y){if(this._pointers.length===1)this._panEnd.set(y.pageX,y.pageY);else{const E=this._getSecondPointerPosition(y),z=.5*(y.pageX+E.x),ne=.5*(y.pageY+E.y);this._panEnd.set(z,ne)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(y){const E=this._getSecondPointerPosition(y),z=y.pageX-E.x,ne=y.pageY-E.y,ie=Math.sqrt(z*z+ne*ne);this._dollyEnd.set(0,ie),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const se=(y.pageX+E.x)*.5,ae=(y.pageY+E.y)*.5;this._updateZoomParameters(se,ae)}_handleTouchMoveDollyPan(y){this.enableZoom&&this._handleTouchMoveDolly(y),this.enablePan&&this._handleTouchMovePan(y)}_handleTouchMoveDollyRotate(y){this.enableZoom&&this._handleTouchMoveDolly(y),this.enableRotate&&this._handleTouchMoveRotate(y)}_addPointer(y){this._pointers.push(y.pointerId)}_removePointer(y){delete this._pointerPositions[y.pointerId];for(let E=0;E<this._pointers.length;E++)if(this._pointers[E]==y.pointerId){this._pointers.splice(E,1);return}}_isTrackingPointer(y){for(let E=0;E<this._pointers.length;E++)if(this._pointers[E]==y.pointerId)return!0;return!1}_trackPointer(y){let E=this._pointerPositions[y.pointerId];E===void 0&&(E=new Yr,this._pointerPositions[y.pointerId]=E),E.set(y.pageX,y.pageY)}_getSecondPointerPosition(y){const E=y.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[E]}_customWheelEvent(y){const E=y.deltaMode,z={clientX:y.clientX,clientY:y.clientY,deltaY:y.deltaY};switch(E){case 1:z.deltaY*=16;break;case 2:z.deltaY*=100;break}return y.ctrlKey&&!this._controlActive&&(z.deltaY*=10),z}}function Ete(ee){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(ee.pointerId),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerup",this._onPointerUp)),!this._isTrackingPointer(ee)&&(this._addPointer(ee),ee.pointerType==="touch"?this._onTouchStart(ee):this._onMouseDown(ee)))}function bte(ee){this.enabled!==!1&&(ee.pointerType==="touch"?this._onTouchMove(ee):this._onMouseMove(ee))}function Mte(ee){switch(this._removePointer(ee),this._pointers.length){case 0:this.domElement.releasePointerCapture(ee.pointerId),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent(sO),this.state=Oh.NONE;break;case 1:const y=this._pointers[0],E=this._pointerPositions[y];this._onTouchStart({pointerId:y,pageX:E.x,pageY:E.y});break}}function Bte(ee){let y;switch(ee.button){case 0:y=this.mouseButtons.LEFT;break;case 1:y=this.mouseButtons.MIDDLE;break;case 2:y=this.mouseButtons.RIGHT;break;default:y=-1}switch(y){case ad.DOLLY:if(this.enableZoom===!1)return;this._handleMouseDownDolly(ee),this.state=Oh.DOLLY;break;case ad.ROTATE:if(ee.ctrlKey||ee.metaKey||ee.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(ee),this.state=Oh.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(ee),this.state=Oh.ROTATE}break;case ad.PAN:if(ee.ctrlKey||ee.metaKey||ee.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(ee),this.state=Oh.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(ee),this.state=Oh.PAN}break;default:this.state=Oh.NONE}this.state!==Oh.NONE&&this.dispatchEvent(U6)}function Tte(ee){switch(this.state){case Oh.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(ee);break;case Oh.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(ee);break;case Oh.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(ee);break}}function Dte(ee){this.enabled===!1||this.enableZoom===!1||this.state!==Oh.NONE||(ee.preventDefault(),this.dispatchEvent(U6),this._handleMouseWheel(this._customWheelEvent(ee)),this.dispatchEvent(sO))}function Nte(ee){this.enabled!==!1&&this._handleKeyDown(ee)}function Fte(ee){switch(this._trackPointer(ee),this._pointers.length){case 1:switch(this.touches.ONE){case jf.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(ee),this.state=Oh.TOUCH_ROTATE;break;case jf.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(ee),this.state=Oh.TOUCH_PAN;break;default:this.state=Oh.NONE}break;case 2:switch(this.touches.TWO){case jf.DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchStartDollyPan(ee),this.state=Oh.TOUCH_DOLLY_PAN;break;case jf.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(ee),this.state=Oh.TOUCH_DOLLY_ROTATE;break;default:this.state=Oh.NONE}break;default:this.state=Oh.NONE}this.state!==Oh.NONE&&this.dispatchEvent(U6)}function Lte(ee){switch(this._trackPointer(ee),this.state){case Oh.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(ee),this.update();break;case Oh.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(ee),this.update();break;case Oh.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(ee),this.update();break;case Oh.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(ee),this.update();break;default:this.state=Oh.NONE}}function Ite(ee){this.enabled!==!1&&ee.preventDefault()}function kte(ee){ee.key==="Control"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function Ote(ee){ee.key==="Control"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}const Rte={type:"change"},lO=1e-6,uO=new Bf;class zte extends $5{constructor(y,E=null){super(y,E),this.movementSpeed=1,this.rollSpeed=.005,this.dragToLook=!1,this.autoForward=!1,this._moveState={up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0},this._moveVector=new yn(0,0,0),this._rotationVector=new yn(0,0,0),this._lastQuaternion=new Bf,this._lastPosition=new yn,this._status=0,this._onKeyDown=Ute.bind(this),this._onKeyUp=Hte.bind(this),this._onPointerMove=jte.bind(this),this._onPointerDown=Vte.bind(this),this._onPointerUp=Gte.bind(this),this._onPointerCancel=Xte.bind(this),this._onContextMenu=Wte.bind(this),E!==null&&this.connect(E)}connect(y){super.connect(y),window.addEventListener("keydown",this._onKeyDown),window.addEventListener("keyup",this._onKeyUp),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointerup",this._onPointerUp),this.domElement.addEventListener("pointercancel",this._onPointerCancel),this.domElement.addEventListener("contextmenu",this._onContextMenu)}disconnect(){window.removeEventListener("keydown",this._onKeyDown),window.removeEventListener("keyup",this._onKeyUp),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerCancel),this.domElement.removeEventListener("contextmenu",this._onContextMenu)}dispose(){this.disconnect()}update(y){if(this.enabled===!1)return;const E=this.object,z=y*this.movementSpeed,ne=y*this.rollSpeed;E.translateX(this._moveVector.x*z),E.translateY(this._moveVector.y*z),E.translateZ(this._moveVector.z*z),uO.set(this._rotationVector.x*ne,this._rotationVector.y*ne,this._rotationVector.z*ne,1).normalize(),E.quaternion.multiply(uO),(this._lastPosition.distanceToSquared(E.position)>lO||8*(1-this._lastQuaternion.dot(E.quaternion))>lO)&&(this.dispatchEvent(Rte),this._lastQuaternion.copy(E.quaternion),this._lastPosition.copy(E.position))}_updateMovementVector(){const y=this._moveState.forward||this.autoForward&&!this._moveState.back?1:0;this._moveVector.x=-this._moveState.left+this._moveState.right,this._moveVector.y=-this._moveState.down+this._moveState.up,this._moveVector.z=-y+this._moveState.back}_updateRotationVector(){this._rotationVector.x=-this._moveState.pitchDown+this._moveState.pitchUp,this._rotationVector.y=-this._moveState.yawRight+this._moveState.yawLeft,this._rotationVector.z=-this._moveState.rollRight+this._moveState.rollLeft}_getContainerDimensions(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}}}function Ute(ee){if(!(ee.altKey||this.enabled===!1)){switch(ee.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=.1;break;case"KeyW":this._moveState.forward=1;break;case"KeyS":this._moveState.back=1;break;case"KeyA":this._moveState.left=1;break;case"KeyD":this._moveState.right=1;break;case"KeyR":this._moveState.up=1;break;case"KeyF":this._moveState.down=1;break;case"ArrowUp":this._moveState.pitchUp=1;break;case"ArrowDown":this._moveState.pitchDown=1;break;case"ArrowLeft":this._moveState.yawLeft=1;break;case"ArrowRight":this._moveState.yawRight=1;break;case"KeyQ":this._moveState.rollLeft=1;break;case"KeyE":this._moveState.rollRight=1;break}this._updateMovementVector(),this._updateRotationVector()}}function Hte(ee){if(this.enabled!==!1){switch(ee.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=1;break;case"KeyW":this._moveState.forward=0;break;case"KeyS":this._moveState.back=0;break;case"KeyA":this._moveState.left=0;break;case"KeyD":this._moveState.right=0;break;case"KeyR":this._moveState.up=0;break;case"KeyF":this._moveState.down=0;break;case"ArrowUp":this._moveState.pitchUp=0;break;case"ArrowDown":this._moveState.pitchDown=0;break;case"ArrowLeft":this._moveState.yawLeft=0;break;case"ArrowRight":this._moveState.yawRight=0;break;case"KeyQ":this._moveState.rollLeft=0;break;case"KeyE":this._moveState.rollRight=0;break}this._updateMovementVector(),this._updateRotationVector()}}function Vte(ee){if(this.enabled!==!1)if(this.dragToLook)this._status++;else{switch(ee.button){case 0:this._moveState.forward=1;break;case 2:this._moveState.back=1;break}this._updateMovementVector()}}function jte(ee){if(this.enabled!==!1&&(!this.dragToLook||this._status>0)){const y=this._getContainerDimensions(),E=y.size[0]/2,z=y.size[1]/2;this._moveState.yawLeft=-(ee.pageX-y.offset[0]-E)/E,this._moveState.pitchDown=(ee.pageY-y.offset[1]-z)/z,this._updateRotationVector()}}function Gte(ee){if(this.enabled!==!1){if(this.dragToLook)this._status--,this._moveState.yawLeft=this._moveState.pitchDown=0;else{switch(ee.button){case 0:this._moveState.forward=0;break;case 2:this._moveState.back=0;break}this._updateMovementVector()}this._updateRotationVector()}}function Xte(){this.enabled!==!1&&(this.dragToLook?(this._status=0,this._moveState.yawLeft=this._moveState.pitchDown=0):(this._moveState.forward=0,this._moveState.back=0,this._updateMovementVector()),this._updateRotationVector())}function Wte(ee){this.enabled!==!1&&ee.preventDefault()}const Qte={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:`
|
|
|
|
varying vec2 vUv;
|
|
|
|
void main() {
|
|
|
|
vUv = uv;
|
|
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
|
|
|
|
}`,fragmentShader:`
|
|
|
|
uniform float opacity;
|
|
|
|
uniform sampler2D tDiffuse;
|
|
|
|
varying vec2 vUv;
|
|
|
|
void main() {
|
|
|
|
vec4 texel = texture2D( tDiffuse, vUv );
|
|
gl_FragColor = opacity * texel;
|
|
|
|
|
|
}`};class DT{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const Zte=new ed(-1,1,1,-1,0,1);class Yte extends Tu{constructor(){super(),this.setAttribute("position",new Za([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Za([0,2,0,0,2,0],2))}}const Kte=new Yte;class Jte{constructor(y){this._mesh=new Bc(Kte,y)}dispose(){this._mesh.geometry.dispose()}render(y){y.render(this._mesh,Zte)}get material(){return this._mesh.material}set material(y){this._mesh.material=y}}class qte extends DT{constructor(y,E="tDiffuse"){super(),this.textureID=E,this.uniforms=null,this.material=null,y instanceof Rm?(this.uniforms=y.uniforms,this.material=y):y&&(this.uniforms=GC.clone(y.uniforms),this.material=new Rm({name:y.name!==void 0?y.name:"unspecified",defines:Object.assign({},y.defines),uniforms:this.uniforms,vertexShader:y.vertexShader,fragmentShader:y.fragmentShader})),this._fsQuad=new Jte(this.material)}render(y,E,z){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=z.texture),this._fsQuad.material=this.material,this.renderToScreen?(y.setRenderTarget(null),this._fsQuad.render(y)):(y.setRenderTarget(E),this.clear&&y.clear(y.autoClearColor,y.autoClearDepth,y.autoClearStencil),this._fsQuad.render(y))}dispose(){this.material.dispose(),this._fsQuad.dispose()}}class cO extends DT{constructor(y,E){super(),this.scene=y,this.camera=E,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(y,E,z){const ne=y.getContext(),ie=y.state;ie.buffers.color.setMask(!1),ie.buffers.depth.setMask(!1),ie.buffers.color.setLocked(!0),ie.buffers.depth.setLocked(!0);let se,ae;this.inverse?(se=0,ae=1):(se=1,ae=0),ie.buffers.stencil.setTest(!0),ie.buffers.stencil.setOp(ne.REPLACE,ne.REPLACE,ne.REPLACE),ie.buffers.stencil.setFunc(ne.ALWAYS,se,4294967295),ie.buffers.stencil.setClear(ae),ie.buffers.stencil.setLocked(!0),y.setRenderTarget(z),this.clear&&y.clear(),y.render(this.scene,this.camera),y.setRenderTarget(E),this.clear&&y.clear(),y.render(this.scene,this.camera),ie.buffers.color.setLocked(!1),ie.buffers.depth.setLocked(!1),ie.buffers.color.setMask(!0),ie.buffers.depth.setMask(!0),ie.buffers.stencil.setLocked(!1),ie.buffers.stencil.setFunc(ne.EQUAL,1,4294967295),ie.buffers.stencil.setOp(ne.KEEP,ne.KEEP,ne.KEEP),ie.buffers.stencil.setLocked(!0)}}class _te extends DT{constructor(){super(),this.needsSwap=!1}render(y){y.state.buffers.stencil.setLocked(!1),y.state.buffers.stencil.setTest(!1)}}class $te{constructor(y,E){if(this.renderer=y,this._pixelRatio=y.getPixelRatio(),E===void 0){const z=y.getSize(new Yr);this._width=z.width,this._height=z.height,E=new Kp(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:Hc}),E.texture.name="EffectComposer.rt1"}else this._width=E.width,this._height=E.height;this.renderTarget1=E,this.renderTarget2=E.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new qte(Qte),this.copyPass.material.blending=of,this.clock=new A1}swapBuffers(){const y=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=y}addPass(y){this.passes.push(y),y.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(y,E){this.passes.splice(E,0,y),y.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(y){const E=this.passes.indexOf(y);E!==-1&&this.passes.splice(E,1)}isLastEnabledPass(y){for(let E=y+1;E<this.passes.length;E++)if(this.passes[E].enabled)return!1;return!0}render(y){y===void 0&&(y=this.clock.getDelta());const E=this.renderer.getRenderTarget();let z=!1;for(let ne=0,ie=this.passes.length;ne<ie;ne++){const se=this.passes[ne];if(se.enabled!==!1){if(se.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(ne),se.render(this.renderer,this.writeBuffer,this.readBuffer,y,z),se.needsSwap){if(z){const ae=this.renderer.getContext(),he=this.renderer.state.buffers.stencil;he.setFunc(ae.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,y),he.setFunc(ae.EQUAL,1,4294967295)}this.swapBuffers()}cO!==void 0&&(se instanceof cO?z=!0:se instanceof _te&&(z=!1))}}this.renderer.setRenderTarget(E)}reset(y){if(y===void 0){const E=this.renderer.getSize(new Yr);this._pixelRatio=this.renderer.getPixelRatio(),this._width=E.width,this._height=E.height,y=this.renderTarget1.clone(),y.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=y,this.renderTarget2=y.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(y,E){this._width=y,this._height=E;const z=this._width*this._pixelRatio,ne=this._height*this._pixelRatio;this.renderTarget1.setSize(z,ne),this.renderTarget2.setSize(z,ne);for(let ie=0;ie<this.passes.length;ie++)this.passes[ie].setSize(z,ne)}setPixelRatio(y){this._pixelRatio=y,this.setSize(this._width,this._height)}dispose(){this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.copyPass.dispose()}}class ene extends DT{constructor(y,E,z=null,ne=null,ie=null){super(),this.scene=y,this.camera=E,this.overrideMaterial=z,this.clearColor=ne,this.clearAlpha=ie,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new ia}render(y,E,z){const ne=y.autoClear;y.autoClear=!1;let ie,se;this.overrideMaterial!==null&&(se=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor!==null&&(y.getClearColor(this._oldClearColor),y.setClearColor(this.clearColor,y.getClearAlpha())),this.clearAlpha!==null&&(ie=y.getClearAlpha(),y.setClearAlpha(this.clearAlpha)),this.clearDepth==!0&&y.clearDepth(),y.setRenderTarget(this.renderToScreen?null:z),this.clear===!0&&y.clear(y.autoClearColor,y.autoClearDepth,y.autoClearStencil),y.render(this.scene,this.camera),this.clearColor!==null&&y.setClearColor(this._oldClearColor),this.clearAlpha!==null&&y.setClearAlpha(ie),this.overrideMaterial!==null&&(this.scene.overrideMaterial=se),y.autoClear=ne}}var Nv=je(14809),tne=je(13028),nne=je(57629),ine=je(56920);function hO(){var ee;return ee=arguments.length-1,ee<0||arguments.length<=ee?void 0:arguments[ee]}function rne(ee){return-ee}function one(ee,y){return ee+y}function sne(ee,y){return ee-y}function ane(ee,y){return ee*y}function lne(ee,y){return ee/y}function une(){return Math.max.apply(Math,arguments)}function cne(){return Math.min.apply(Math,arguments)}function hne(){return Array.of.apply(Array,arguments)}var Nce={symbols:{"*":{infix:{symbol:"*",f:ane,notation:"infix",precedence:4,rightToLeft:0,argCount:2},symbol:"*",regSymbol:"\\*"},"/":{infix:{symbol:"/",f:lne,notation:"infix",precedence:4,rightToLeft:0,argCount:2},symbol:"/",regSymbol:"/"},"+":{infix:{symbol:"+",f:one,notation:"infix",precedence:2,rightToLeft:0,argCount:2},prefix:{symbol:"+",f:hO,notation:"prefix",precedence:3,rightToLeft:0,argCount:1},symbol:"+",regSymbol:"\\+"},"-":{infix:{symbol:"-",f:sne,notation:"infix",precedence:2,rightToLeft:0,argCount:2},prefix:{symbol:"-",f:rne,notation:"prefix",precedence:3,rightToLeft:0,argCount:1},symbol:"-",regSymbol:"-"},",":{infix:{symbol:",",f:hne,notation:"infix",precedence:1,rightToLeft:0,argCount:2},symbol:",",regSymbol:","},"(":{prefix:{symbol:"(",f:hO,notation:"prefix",precedence:0,rightToLeft:0,argCount:1},symbol:"(",regSymbol:"\\("},")":{postfix:{symbol:")",f:void 0,notation:"postfix",precedence:0,rightToLeft:0,argCount:1},symbol:")",regSymbol:"\\)"},min:{func:{symbol:"min",f:cne,notation:"func",precedence:0,rightToLeft:0,argCount:1},symbol:"min",regSymbol:"min\\b"},max:{func:{symbol:"max",f:une,notation:"func",precedence:0,rightToLeft:0,argCount:1},symbol:"max",regSymbol:"max\\b"}}},dO=null,Fce={1:`Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).
|
|
|
|
`,2:`Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).
|
|
|
|
`,3:`Passed an incorrect argument to a color function, please pass a string representation of a color.
|
|
|
|
`,4:`Couldn't generate valid rgb string from %s, it returned %s.
|
|
|
|
`,5:`Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.
|
|
|
|
`,6:`Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).
|
|
|
|
`,7:`Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).
|
|
|
|
`,8:`Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.
|
|
|
|
`,9:`Please provide a number of steps to the modularScale helper.
|
|
|
|
`,10:`Please pass a number or one of the predefined scales to the modularScale helper as the ratio.
|
|
|
|
`,11:`Invalid value passed as base to modularScale, expected number or em string but got "%s"
|
|
|
|
`,12:`Expected a string ending in "px" or a number passed as the first argument to %s(), got "%s" instead.
|
|
|
|
`,13:`Expected a string ending in "px" or a number passed as the second argument to %s(), got "%s" instead.
|
|
|
|
`,14:`Passed invalid pixel value ("%s") to %s(), please pass a value like "12px" or 12.
|
|
|
|
`,15:`Passed invalid base value ("%s") to %s(), please pass a value like "12px" or 12.
|
|
|
|
`,16:`You must provide a template to this method.
|
|
|
|
`,17:`You passed an unsupported selector state to this method.
|
|
|
|
`,18:`minScreen and maxScreen must be provided as stringified numbers with the same units.
|
|
|
|
`,19:`fromSize and toSize must be provided as stringified numbers with the same units.
|
|
|
|
`,20:`expects either an array of objects or a single object with the properties prop, fromSize, and toSize.
|
|
|
|
`,21:"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\n\n",22:"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\n\n",23:`fontFace expects a name of a font-family.
|
|
|
|
`,24:`fontFace expects either the path to the font file(s) or a name of a local copy.
|
|
|
|
`,25:`fontFace expects localFonts to be an array.
|
|
|
|
`,26:`fontFace expects fileFormats to be an array.
|
|
|
|
`,27:`radialGradient requries at least 2 color-stops to properly render.
|
|
|
|
`,28:`Please supply a filename to retinaImage() as the first argument.
|
|
|
|
`,29:`Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.
|
|
|
|
`,30:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",31:`The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation
|
|
|
|
`,32:`To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])
|
|
To pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')
|
|
|
|
`,33:`The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation
|
|
|
|
`,34:`borderRadius expects a radius value as a string or number as the second argument.
|
|
|
|
`,35:`borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.
|
|
|
|
`,36:`Property must be a string value.
|
|
|
|
`,37:`Syntax Error at %s.
|
|
|
|
`,38:`Formula contains a function that needs parentheses at %s.
|
|
|
|
`,39:`Formula is missing closing parenthesis at %s.
|
|
|
|
`,40:`Formula has too many closing parentheses at %s.
|
|
|
|
`,41:`All values in a formula must have the same unit or be unitless.
|
|
|
|
`,42:`Please provide a number of steps to the modularScale helper.
|
|
|
|
`,43:`Please pass a number or one of the predefined scales to the modularScale helper as the ratio.
|
|
|
|
`,44:`Invalid value passed as base to modularScale, expected number or em/rem string but got %s.
|
|
|
|
`,45:`Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.
|
|
|
|
`,46:`Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.
|
|
|
|
`,47:`minScreen and maxScreen must be provided as stringified numbers with the same units.
|
|
|
|
`,48:`fromSize and toSize must be provided as stringified numbers with the same units.
|
|
|
|
`,49:`Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.
|
|
|
|
`,50:`Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.
|
|
|
|
`,51:`Expects the first argument object to have the properties prop, fromSize, and toSize.
|
|
|
|
`,52:`fontFace expects either the path to the font file(s) or a name of a local copy.
|
|
|
|
`,53:`fontFace expects localFonts to be an array.
|
|
|
|
`,54:`fontFace expects fileFormats to be an array.
|
|
|
|
`,55:`fontFace expects a name of a font-family.
|
|
|
|
`,56:`linearGradient requries at least 2 color-stops to properly render.
|
|
|
|
`,57:`radialGradient requries at least 2 color-stops to properly render.
|
|
|
|
`,58:`Please supply a filename to retinaImage() as the first argument.
|
|
|
|
`,59:`Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.
|
|
|
|
`,60:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",61:`Property must be a string value.
|
|
|
|
`,62:`borderRadius expects a radius value as a string or number as the second argument.
|
|
|
|
`,63:`borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.
|
|
|
|
`,64:`The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.
|
|
|
|
`,65:`To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').
|
|
|
|
`,66:`The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.
|
|
|
|
`,67:`You must provide a template to this method.
|
|
|
|
`,68:`You passed an unsupported selector state to this method.
|
|
|
|
`,69:`Expected a string ending in "px" or a number passed as the first argument to %s(), got %s instead.
|
|
|
|
`,70:`Expected a string ending in "px" or a number passed as the second argument to %s(), got %s instead.
|
|
|
|
`,71:`Passed invalid pixel value %s to %s(), please pass a value like "12px" or 12.
|
|
|
|
`,72:`Passed invalid base value %s to %s(), please pass a value like "12px" or 12.
|
|
|
|
`,73:`Please provide a valid CSS variable.
|
|
|
|
`,74:`CSS variable not found and no default was provided.
|
|
|
|
`,75:`important requires a valid style object, got a %s instead.
|
|
|
|
`,76:`fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.
|
|
|
|
`,77:`remToPx expects a value in "rem" but you provided it in "%s".
|
|
|
|
`,78:`base must be set in "px" or "%" but you set it in "%s".
|
|
`};function Lce(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];var z=y[0],ne=[],ie;for(ie=1;ie<y.length;ie+=1)ne.push(y[ie]);return ne.forEach(function(se){z=z.replace(/%[a-z]/,se)}),z}var hu=function(ee){(0,nne.Z)(y,ee);function y(E){var z;if(1)z=ee.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+E+" for more information.")||this;else var ne,ie,se;return(0,tne.Z)(z)}return y}((0,ine.Z)(Error)),fO=/((?!\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\D|$)|ged|darg?|nrut)/g;function dne(ee){var y={};return y.symbols=ee?_extends({},dO.symbols,ee.symbols):_extends({},dO.symbols),y}function pO(ee,y){var E,z=ee.pop();return y.push(z.f.apply(z,(E=[]).concat.apply(E,y.splice(-z.argCount)))),z.precedence}function fne(ee,y){var E=dne(y),z,ne=[E.symbols["("].prefix],ie=[],se=new RegExp("\\d+(?:\\.\\d+)?|"+Object.keys(E.symbols).map(function(Oe){return E.symbols[Oe]}).sort(function(Oe,Le){return Le.symbol.length-Oe.symbol.length}).map(function(Oe){return Oe.regSymbol}).join("|")+"|(\\S)","g");se.lastIndex=0;var ae=!1;do{z=se.exec(ee);var he=z||[")",void 0],pe=he[0],ve=he[1],xe=E.symbols[pe],Se=xe&&!xe.prefix&&!xe.func,Be=!xe||!xe.postfix&&!xe.infix;if(ve||(ae?Be:Se))throw new hu(37,z?z.index:ee.length,ee);if(ae){var De=xe.postfix||xe.infix;do{var Re=ne[ne.length-1];if((De.precedence-Re.precedence||Re.rightToLeft)>0)break}while(pO(ne,ie));ae=De.notation==="postfix",De.symbol!==")"&&(ne.push(De),ae&&pO(ne,ie))}else if(xe){if(ne.push(xe.prefix||xe.func),xe.func&&(z=se.exec(ee),!z||z[0]!=="("))throw new hu(38,z?z.index:ee.length,ee)}else ie.push(+pe),ae=!0}while(z&&ne.length);if(ne.length)throw new hu(39,z?z.index:ee.length,ee);if(z)throw new hu(40,z?z.index:ee.length,ee);return ie.pop()}function V6(ee){return ee.split("").reverse().join("")}function Ice(ee,y){var E=V6(ee),z=E.match(fO);if(z&&!z.every(function(ie){return ie===z[0]}))throw new hu(41);var ne=V6(E.replace(fO,""));return""+fne(ne,y)+(z?V6(z[0]):"")}var pne=/--[\S]*/g;function kce(ee,y){if(!ee||!ee.match(pne))throw new hu(73);var E;if(typeof document!="undefined"&&document.documentElement!==null&&(E=getComputedStyle(document.documentElement).getPropertyValue(ee)),E)return E.trim();if(y)return y;throw new hu(74)}function ZM(ee){return ee.charAt(0).toUpperCase()+ee.slice(1)}var gne=null;function mne(ee,y){if(!ee)return y.toLowerCase();var E=ee.split("-");if(E.length>1)return E.splice(1,0,y),E.reduce(function(ne,ie){return""+ne+ZM(ie)});var z=ee.replace(/([a-z])([A-Z])/g,"$1"+y+"$2");return ee===z?""+ee+y:z}function vne(ee,y){for(var E={},z=0;z<y.length;z+=1)(y[z]||y[z]===0)&&(E[mne(ee,gne[z])]=y[z]);return E}function oC(ee){for(var y=arguments.length,E=new Array(y>1?y-1:0),z=1;z<y;z++)E[z-1]=arguments[z];var ne=E[0],ie=E[1],se=ie===void 0?ne:ie,ae=E[2],he=ae===void 0?ne:ae,pe=E[3],ve=pe===void 0?se:pe,xe=[ne,se,he,ve];return vne(ee,xe)}function gO(ee,y){return ee.substr(-y.length)===y}var yne=/^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/;function mO(ee){if(typeof ee!="string")return ee;var y=ee.match(yne);return y?parseFloat(ee):ee}var Ane=function(y){return function(E,z){z===void 0&&(z="16px");var ne=E,ie=z;if(typeof E=="string"){if(!gO(E,"px"))throw new hu(69,y,E);ne=mO(E)}if(typeof z=="string"){if(!gO(z,"px"))throw new hu(70,y,z);ie=mO(z)}if(typeof ne=="string")throw new hu(71,E,y);if(typeof ie=="string")throw new hu(72,z,y);return""+ne/ie+y}},vO=Ane,Oce=vO("em"),Rce=null,xne=/^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/;function O1(ee){if(typeof ee!="string")return[ee,""];var y=ee.match(xne);return y?[parseFloat(ee),y[2]]:[ee,void 0]}function wne(ee,y){if(typeof ee!="object"||ee===null)throw new hu(75,typeof ee);var E={};return Object.keys(ee).forEach(function(z){typeof ee[z]=="object"&&ee[z]!==null?E[z]=wne(ee[z],y):!y||y&&(y===z||y.indexOf(z)>=0)?E[z]=ee[z]+" !important":E[z]=ee[z]}),E}var yO={minorSecond:1.067,majorSecond:1.125,minorThird:1.2,majorThird:1.25,perfectFourth:1.333,augFourth:1.414,perfectFifth:1.5,minorSixth:1.6,goldenSection:1.618,majorSixth:1.667,minorSeventh:1.778,majorSeventh:1.875,octave:2,majorTenth:2.5,majorEleventh:2.667,majorTwelfth:3,doubleOctave:4};function Sne(ee){return yO[ee]}function zce(ee,y,E){if(y===void 0&&(y="1em"),E===void 0&&(E=1.333),typeof ee!="number")throw new hu(42);if(typeof E=="string"&&!yO[E])throw new hu(43);var z=typeof y=="string"?O1(y):[y,""],ne=z[0],ie=z[1],se=typeof E=="string"?Sne(E):E;if(typeof ne=="string")throw new hu(44,y);return""+ne*Math.pow(se,ee)+(ie||"")}var Uce=vO("rem"),Hce=null,j6=16;function AO(ee){var y=O1(ee);if(y[1]==="px")return parseFloat(ee);if(y[1]==="%")return parseFloat(ee)/100*j6;throw new hu(78,y[1])}function Pne(){if(typeof document!="undefined"&&document.documentElement!==null){var ee=getComputedStyle(document.documentElement).fontSize;return ee?AO(ee):j6}return j6}function Vce(ee,y){var E=O1(ee);if(E[1]!=="rem"&&E[1]!=="")throw new hu(77,E[1]);var z=y?AO(y):Pne();return E[0]*z+"px"}var Cne={back:"cubic-bezier(0.600, -0.280, 0.735, 0.045)",circ:"cubic-bezier(0.600, 0.040, 0.980, 0.335)",cubic:"cubic-bezier(0.550, 0.055, 0.675, 0.190)",expo:"cubic-bezier(0.950, 0.050, 0.795, 0.035)",quad:"cubic-bezier(0.550, 0.085, 0.680, 0.530)",quart:"cubic-bezier(0.895, 0.030, 0.685, 0.220)",quint:"cubic-bezier(0.755, 0.050, 0.855, 0.060)",sine:"cubic-bezier(0.470, 0.000, 0.745, 0.715)"};function jce(ee){return Cne[ee.toLowerCase().trim()]}var Ene={back:"cubic-bezier(0.680, -0.550, 0.265, 1.550)",circ:"cubic-bezier(0.785, 0.135, 0.150, 0.860)",cubic:"cubic-bezier(0.645, 0.045, 0.355, 1.000)",expo:"cubic-bezier(1.000, 0.000, 0.000, 1.000)",quad:"cubic-bezier(0.455, 0.030, 0.515, 0.955)",quart:"cubic-bezier(0.770, 0.000, 0.175, 1.000)",quint:"cubic-bezier(0.860, 0.000, 0.070, 1.000)",sine:"cubic-bezier(0.445, 0.050, 0.550, 0.950)"};function Gce(ee){return Ene[ee.toLowerCase().trim()]}var bne={back:"cubic-bezier(0.175, 0.885, 0.320, 1.275)",cubic:"cubic-bezier(0.215, 0.610, 0.355, 1.000)",circ:"cubic-bezier(0.075, 0.820, 0.165, 1.000)",expo:"cubic-bezier(0.190, 1.000, 0.220, 1.000)",quad:"cubic-bezier(0.250, 0.460, 0.450, 0.940)",quart:"cubic-bezier(0.165, 0.840, 0.440, 1.000)",quint:"cubic-bezier(0.230, 1.000, 0.320, 1.000)",sine:"cubic-bezier(0.390, 0.575, 0.565, 1.000)"};function Xce(ee){return bne[ee.toLowerCase().trim()]}function xO(ee,y,E,z){E===void 0&&(E="320px"),z===void 0&&(z="1200px");var ne=O1(ee),ie=ne[0],se=ne[1],ae=O1(y),he=ae[0],pe=ae[1],ve=O1(E),xe=ve[0],Se=ve[1],Be=O1(z),De=Be[0],Re=Be[1];if(typeof xe!="number"||typeof De!="number"||!Se||!Re||Se!==Re)throw new hu(47);if(typeof ie!="number"||typeof he!="number"||se!==pe)throw new hu(48);if(se!==Se||pe!==Re)throw new hu(76);var Oe=(ie-he)/(xe-De),Le=he-Oe*De;return"calc("+Le.toFixed(2)+(se||"")+" + "+(100*Oe).toFixed(2)+"vw)"}function Wce(ee){var y;ee===void 0&&(ee="&");var E=ee+"::after";return y={},y[E]={clear:"both",content:'""',display:"table"},y}function Qce(ee){return ee===void 0&&(ee=0),{position:"absolute",top:ee,right:ee,bottom:ee,left:ee}}function Zce(ee,y){y===void 0&&(y=1);var E={display:"inline-block",maxWidth:ee||"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",wordWrap:"normal"};return y>1?_extends({},E,{WebkitBoxOrient:"vertical",WebkitLineClamp:y,display:"-webkit-box",whiteSpace:"normal"}):E}function Mne(ee,y){var E=typeof Symbol!="undefined"&&ee[Symbol.iterator]||ee["@@iterator"];if(E)return(E=E.call(ee)).next.bind(E);if(Array.isArray(ee)||(E=Bne(ee))||y&&ee&&typeof ee.length=="number"){E&&(ee=E);var z=0;return function(){return z>=ee.length?{done:!0}:{done:!1,value:ee[z++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Bne(ee,y){if(ee){if(typeof ee=="string")return wO(ee,y);var E=Object.prototype.toString.call(ee).slice(8,-1);if(E==="Object"&&ee.constructor&&(E=ee.constructor.name),E==="Map"||E==="Set")return Array.from(ee);if(E==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(E))return wO(ee,y)}}function wO(ee,y){(y==null||y>ee.length)&&(y=ee.length);for(var E=0,z=new Array(y);E<y;E++)z[E]=ee[E];return z}function Yce(ee,y,E){if(y===void 0&&(y="320px"),E===void 0&&(E="1200px"),!Array.isArray(ee)&&typeof ee!="object"||ee===null)throw new hu(49);if(Array.isArray(ee)){for(var z={},ne={},ie=Mne(ee),se;!(se=ie()).done;){var ae,he,pe=se.value;if(!pe.prop||!pe.fromSize||!pe.toSize)throw new hu(50);ne[pe.prop]=pe.fromSize,z["@media (min-width: "+y+")"]=_extends({},z["@media (min-width: "+y+")"],(ae={},ae[pe.prop]=xO(pe.fromSize,pe.toSize,y,E),ae)),z["@media (min-width: "+E+")"]=_extends({},z["@media (min-width: "+E+")"],(he={},he[pe.prop]=pe.toSize,he))}return _extends({},ne,z)}else{var ve,xe,Se;if(!ee.prop||!ee.fromSize||!ee.toSize)throw new hu(51);return Se={},Se[ee.prop]=ee.fromSize,Se["@media (min-width: "+y+")"]=(ve={},ve[ee.prop]=xO(ee.fromSize,ee.toSize,y,E),ve),Se["@media (min-width: "+E+")"]=(xe={},xe[ee.prop]=ee.toSize,xe),Se}}var Tne=/^\s*data:([a-z]+\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\-._~:@/?%\s]*\s*$/i,Dne={woff:"woff",woff2:"woff2",ttf:"truetype",otf:"opentype",eot:"embedded-opentype",svg:"svg",svgz:"svg"};function SO(ee,y){return y?' format("'+Dne[ee]+'")':""}function Nne(ee){return!!ee.replace(/\s+/g," ").match(Tne)}function Fne(ee,y,E){if(Nne(ee))return'url("'+ee+'")'+SO(y[0],E);var z=y.map(function(ne){return'url("'+ee+"."+ne+'")'+SO(ne,E)});return z.join(", ")}function Lne(ee){var y=ee.map(function(E){return'local("'+E+'")'});return y.join(", ")}function Ine(ee,y,E,z){var ne=[];return y&&ne.push(Lne(y)),ee&&ne.push(Fne(ee,E,z)),ne.join(", ")}function Kce(ee){var y=ee.fontFamily,E=ee.fontFilePath,z=ee.fontStretch,ne=ee.fontStyle,ie=ee.fontVariant,se=ee.fontWeight,ae=ee.fileFormats,he=ae===void 0?["eot","woff2","woff","ttf","svg"]:ae,pe=ee.formatHint,ve=pe===void 0?!1:pe,xe=ee.localFonts,Se=xe===void 0?[y]:xe,Be=ee.unicodeRange,De=ee.fontDisplay,Re=ee.fontVariationSettings,Oe=ee.fontFeatureSettings;if(!y)throw new hu(55);if(!E&&!Se)throw new hu(52);if(Se&&!Array.isArray(Se))throw new hu(53);if(!Array.isArray(he))throw new hu(54);var Le={"@font-face":{fontFamily:y,src:Ine(E,Se,he,ve),unicodeRange:Be,fontStretch:z,fontStyle:ne,fontVariant:ie,fontWeight:se,fontDisplay:De,fontVariationSettings:Re,fontFeatureSettings:Oe}};return JSON.parse(JSON.stringify(Le))}function Jce(){return{textIndent:"101%",overflow:"hidden",whiteSpace:"nowrap"}}function qce(){return{border:"0",clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:"0",position:"absolute",whiteSpace:"nowrap",width:"1px"}}function kne(ee){return ee===void 0&&(ee=1.3),`
|
|
@media only screen and (-webkit-min-device-pixel-ratio: `+ee+`),
|
|
only screen and (min--moz-device-pixel-ratio: `+ee+`),
|
|
only screen and (-o-min-device-pixel-ratio: `+ee+`/1),
|
|
only screen and (min-resolution: `+Math.round(ee*96)+`dpi),
|
|
only screen and (min-resolution: `+ee+`dppx)
|
|
`}function PO(ee){for(var y="",E=arguments.length,z=new Array(E>1?E-1:0),ne=1;ne<E;ne++)z[ne-1]=arguments[ne];for(var ie=0;ie<ee.length;ie+=1)if(y+=ee[ie],ie===z.length-1&&z[ie]){var se=z.filter(function(ae){return!!ae});se.length>1?(y=y.slice(0,-1),y+=", "+z[ie]):se.length===1&&(y+=""+z[ie])}else z[ie]&&(y+=z[ie]+" ");return y.trim()}var CO;function _ce(ee){var y=ee.colorStops,E=ee.fallback,z=ee.toDirection,ne=z===void 0?"":z;if(!y||y.length<2)throw new hu(56);return{backgroundColor:E||y[0].replace(/,\s+/g,",").split(" ")[0].replace(/,(?=\S)/g,", "),backgroundImage:PO(CO||(CO=_taggedTemplateLiteralLoose(["linear-gradient(","",")"])),ne,y.join(", ").replace(/,(?=\S)/g,", "))}}function $ce(){var ee;return[(ee={html:{lineHeight:"1.15",textSizeAdjust:"100%"},body:{margin:"0"},main:{display:"block"},h1:{fontSize:"2em",margin:"0.67em 0"},hr:{boxSizing:"content-box",height:"0",overflow:"visible"},pre:{fontFamily:"monospace, monospace",fontSize:"1em"},a:{backgroundColor:"transparent"},"abbr[title]":{borderBottom:"none",textDecoration:"underline"}},ee[`b,
|
|
strong`]={fontWeight:"bolder"},ee[`code,
|
|
kbd,
|
|
samp`]={fontFamily:"monospace, monospace",fontSize:"1em"},ee.small={fontSize:"80%"},ee[`sub,
|
|
sup`]={fontSize:"75%",lineHeight:"0",position:"relative",verticalAlign:"baseline"},ee.sub={bottom:"-0.25em"},ee.sup={top:"-0.5em"},ee.img={borderStyle:"none"},ee[`button,
|
|
input,
|
|
optgroup,
|
|
select,
|
|
textarea`]={fontFamily:"inherit",fontSize:"100%",lineHeight:"1.15",margin:"0"},ee[`button,
|
|
input`]={overflow:"visible"},ee[`button,
|
|
select`]={textTransform:"none"},ee[`button,
|
|
html [type="button"],
|
|
[type="reset"],
|
|
[type="submit"]`]={WebkitAppearance:"button"},ee[`button::-moz-focus-inner,
|
|
[type="button"]::-moz-focus-inner,
|
|
[type="reset"]::-moz-focus-inner,
|
|
[type="submit"]::-moz-focus-inner`]={borderStyle:"none",padding:"0"},ee[`button:-moz-focusring,
|
|
[type="button"]:-moz-focusring,
|
|
[type="reset"]:-moz-focusring,
|
|
[type="submit"]:-moz-focusring`]={outline:"1px dotted ButtonText"},ee.fieldset={padding:"0.35em 0.625em 0.75em"},ee.legend={boxSizing:"border-box",color:"inherit",display:"table",maxWidth:"100%",padding:"0",whiteSpace:"normal"},ee.progress={verticalAlign:"baseline"},ee.textarea={overflow:"auto"},ee[`[type="checkbox"],
|
|
[type="radio"]`]={boxSizing:"border-box",padding:"0"},ee[`[type="number"]::-webkit-inner-spin-button,
|
|
[type="number"]::-webkit-outer-spin-button`]={height:"auto"},ee['[type="search"]']={WebkitAppearance:"textfield",outlineOffset:"-2px"},ee['[type="search"]::-webkit-search-decoration']={WebkitAppearance:"none"},ee["::-webkit-file-upload-button"]={WebkitAppearance:"button",font:"inherit"},ee.details={display:"block"},ee.summary={display:"list-item"},ee.template={display:"none"},ee["[hidden]"]={display:"none"},ee),{"abbr[title]":{textDecoration:"underline dotted"}}]}var EO;function ehe(ee){var y=ee.colorStops,E=ee.extent,z=E===void 0?"":E,ne=ee.fallback,ie=ee.position,se=ie===void 0?"":ie,ae=ee.shape,he=ae===void 0?"":ae;if(!y||y.length<2)throw new hu(57);return{backgroundColor:ne||y[0].split(" ")[0],backgroundImage:PO(EO||(EO=_taggedTemplateLiteralLoose(["radial-gradient(","","","",")"])),se,he,z,y.join(", "))}}function the(ee,y,E,z,ne){var ie;if(E===void 0&&(E="png"),ne===void 0&&(ne="_2x"),!ee)throw new hu(58);var se=E.replace(/^\./,""),ae=z?z+"."+se:""+ee+ne+"."+se;return ie={backgroundImage:"url("+ee+"."+se+")"},ie[kne()]=_extends({backgroundImage:"url("+ae+")"},y?{backgroundSize:y}:{}),ie}var One={easeInBack:"cubic-bezier(0.600, -0.280, 0.735, 0.045)",easeInCirc:"cubic-bezier(0.600, 0.040, 0.980, 0.335)",easeInCubic:"cubic-bezier(0.550, 0.055, 0.675, 0.190)",easeInExpo:"cubic-bezier(0.950, 0.050, 0.795, 0.035)",easeInQuad:"cubic-bezier(0.550, 0.085, 0.680, 0.530)",easeInQuart:"cubic-bezier(0.895, 0.030, 0.685, 0.220)",easeInQuint:"cubic-bezier(0.755, 0.050, 0.855, 0.060)",easeInSine:"cubic-bezier(0.470, 0.000, 0.745, 0.715)",easeOutBack:"cubic-bezier(0.175, 0.885, 0.320, 1.275)",easeOutCubic:"cubic-bezier(0.215, 0.610, 0.355, 1.000)",easeOutCirc:"cubic-bezier(0.075, 0.820, 0.165, 1.000)",easeOutExpo:"cubic-bezier(0.190, 1.000, 0.220, 1.000)",easeOutQuad:"cubic-bezier(0.250, 0.460, 0.450, 0.940)",easeOutQuart:"cubic-bezier(0.165, 0.840, 0.440, 1.000)",easeOutQuint:"cubic-bezier(0.230, 1.000, 0.320, 1.000)",easeOutSine:"cubic-bezier(0.390, 0.575, 0.565, 1.000)",easeInOutBack:"cubic-bezier(0.680, -0.550, 0.265, 1.550)",easeInOutCirc:"cubic-bezier(0.785, 0.135, 0.150, 0.860)",easeInOutCubic:"cubic-bezier(0.645, 0.045, 0.355, 1.000)",easeInOutExpo:"cubic-bezier(1.000, 0.000, 0.000, 1.000)",easeInOutQuad:"cubic-bezier(0.455, 0.030, 0.515, 0.955)",easeInOutQuart:"cubic-bezier(0.770, 0.000, 0.175, 1.000)",easeInOutQuint:"cubic-bezier(0.860, 0.000, 0.070, 1.000)",easeInOutSine:"cubic-bezier(0.445, 0.050, 0.550, 0.950)"};function Rne(ee){return One[ee]}function nhe(ee){return Rne(ee)}var zne=function(y,E,z){var ne=""+z[0]+(z[1]||""),ie=""+z[0]/2+(z[1]||""),se=""+E[0]+(E[1]||""),ae=""+E[0]/2+(E[1]||"");switch(y){case"top":return"0 "+ie+" "+se+" "+ie;case"topLeft":return ne+" "+se+" 0 0";case"left":return ae+" "+ne+" "+ae+" 0";case"bottomLeft":return ne+" 0 0 "+se;case"bottom":return se+" "+ie+" 0 "+ie;case"bottomRight":return"0 0 "+ne+" "+se;case"right":return ae+" 0 "+ae+" "+ne;case"topRight":default:return"0 "+ne+" "+se+" 0"}},Une=function(y,E){switch(y){case"top":case"bottomRight":return{borderBottomColor:E};case"right":case"bottomLeft":return{borderLeftColor:E};case"bottom":case"topLeft":return{borderTopColor:E};case"left":case"topRight":return{borderRightColor:E};default:throw new hu(59)}};function ihe(ee){var y=ee.pointingDirection,E=ee.height,z=ee.width,ne=ee.foregroundColor,ie=ee.backgroundColor,se=ie===void 0?"transparent":ie,ae=O1(z),he=O1(E);if(isNaN(he[0])||isNaN(ae[0]))throw new hu(60);return _extends({width:"0",height:"0",borderColor:se},Une(y,ne),{borderStyle:"solid",borderWidth:zne(y,he,ae)})}function rhe(ee){ee===void 0&&(ee="break-word");var y=ee==="break-word"?"break-all":ee;return{overflowWrap:ee,wordWrap:ee,wordBreak:y}}function G6(ee){return Math.round(ee*255)}function Hne(ee,y,E){return G6(ee)+","+G6(y)+","+G6(E)}function YM(ee,y,E,z){if(z===void 0&&(z=Hne),y===0)return z(E,E,E);var ne=(ee%360+360)%360/60,ie=(1-Math.abs(2*E-1))*y,se=ie*(1-Math.abs(ne%2-1)),ae=0,he=0,pe=0;ne>=0&&ne<1?(ae=ie,he=se):ne>=1&&ne<2?(ae=se,he=ie):ne>=2&&ne<3?(he=ie,pe=se):ne>=3&&ne<4?(he=se,pe=ie):ne>=4&&ne<5?(ae=se,pe=ie):ne>=5&&ne<6&&(ae=ie,pe=se);var ve=E-ie/2,xe=ae+ve,Se=he+ve,Be=pe+ve;return z(xe,Se,Be)}var bO={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};function Vne(ee){if(typeof ee!="string")return ee;var y=ee.toLowerCase();return bO[y]?"#"+bO[y]:ee}var jne=/^#[a-fA-F0-9]{6}$/,Gne=/^#[a-fA-F0-9]{8}$/,Xne=/^#[a-fA-F0-9]{3}$/,Wne=/^#[a-fA-F0-9]{4}$/,X6=/^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i,Qne=/^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i,Zne=/^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,Yne=/^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;function R1(ee){if(typeof ee!="string")throw new hu(3);var y=Vne(ee);if(y.match(jne))return{red:parseInt(""+y[1]+y[2],16),green:parseInt(""+y[3]+y[4],16),blue:parseInt(""+y[5]+y[6],16)};if(y.match(Gne)){var E=parseFloat((parseInt(""+y[7]+y[8],16)/255).toFixed(2));return{red:parseInt(""+y[1]+y[2],16),green:parseInt(""+y[3]+y[4],16),blue:parseInt(""+y[5]+y[6],16),alpha:E}}if(y.match(Xne))return{red:parseInt(""+y[1]+y[1],16),green:parseInt(""+y[2]+y[2],16),blue:parseInt(""+y[3]+y[3],16)};if(y.match(Wne)){var z=parseFloat((parseInt(""+y[4]+y[4],16)/255).toFixed(2));return{red:parseInt(""+y[1]+y[1],16),green:parseInt(""+y[2]+y[2],16),blue:parseInt(""+y[3]+y[3],16),alpha:z}}var ne=X6.exec(y);if(ne)return{red:parseInt(""+ne[1],10),green:parseInt(""+ne[2],10),blue:parseInt(""+ne[3],10)};var ie=Qne.exec(y.substring(0,50));if(ie)return{red:parseInt(""+ie[1],10),green:parseInt(""+ie[2],10),blue:parseInt(""+ie[3],10),alpha:parseFloat(""+ie[4])>1?parseFloat(""+ie[4])/100:parseFloat(""+ie[4])};var se=Zne.exec(y);if(se){var ae=parseInt(""+se[1],10),he=parseInt(""+se[2],10)/100,pe=parseInt(""+se[3],10)/100,ve="rgb("+YM(ae,he,pe)+")",xe=X6.exec(ve);if(!xe)throw new hu(4,y,ve);return{red:parseInt(""+xe[1],10),green:parseInt(""+xe[2],10),blue:parseInt(""+xe[3],10)}}var Se=Yne.exec(y.substring(0,50));if(Se){var Be=parseInt(""+Se[1],10),De=parseInt(""+Se[2],10)/100,Re=parseInt(""+Se[3],10)/100,Oe="rgb("+YM(Be,De,Re)+")",Le=X6.exec(Oe);if(!Le)throw new hu(4,y,Oe);return{red:parseInt(""+Le[1],10),green:parseInt(""+Le[2],10),blue:parseInt(""+Le[3],10),alpha:parseFloat(""+Se[4])>1?parseFloat(""+Se[4])/100:parseFloat(""+Se[4])}}throw new hu(5)}function Kne(ee){var y=ee.red/255,E=ee.green/255,z=ee.blue/255,ne=Math.max(y,E,z),ie=Math.min(y,E,z),se=(ne+ie)/2;if(ne===ie)return ee.alpha!==void 0?{hue:0,saturation:0,lightness:se,alpha:ee.alpha}:{hue:0,saturation:0,lightness:se};var ae,he=ne-ie,pe=se>.5?he/(2-ne-ie):he/(ne+ie);switch(ne){case y:ae=(E-z)/he+(E<z?6:0);break;case E:ae=(z-y)/he+2;break;default:ae=(y-E)/he+4;break}return ae*=60,ee.alpha!==void 0?{hue:ae,saturation:pe,lightness:se,alpha:ee.alpha}:{hue:ae,saturation:pe,lightness:se}}function JA(ee){return Kne(R1(ee))}var Jne=function(y){return y.length===7&&y[1]===y[2]&&y[3]===y[4]&&y[5]===y[6]?"#"+y[1]+y[3]+y[5]:y},W6=Jne;function sC(ee){var y=ee.toString(16);return y.length===1?"0"+y:y}function Q6(ee){return sC(Math.round(ee*255))}function qne(ee,y,E){return W6("#"+Q6(ee)+Q6(y)+Q6(E))}function NT(ee,y,E){return YM(ee,y,E,qne)}function MO(ee,y,E){if(typeof ee=="number"&&typeof y=="number"&&typeof E=="number")return NT(ee,y,E);if(typeof ee=="object"&&y===void 0&&E===void 0)return NT(ee.hue,ee.saturation,ee.lightness);throw new hu(1)}function BO(ee,y,E,z){if(typeof ee=="number"&&typeof y=="number"&&typeof E=="number"&&typeof z=="number")return z>=1?NT(ee,y,E):"rgba("+YM(ee,y,E)+","+z+")";if(typeof ee=="object"&&y===void 0&&E===void 0&&z===void 0)return ee.alpha>=1?NT(ee.hue,ee.saturation,ee.lightness):"rgba("+YM(ee.hue,ee.saturation,ee.lightness)+","+ee.alpha+")";throw new hu(2)}function FT(ee,y,E){if(typeof ee=="number"&&typeof y=="number"&&typeof E=="number")return W6("#"+sC(ee)+sC(y)+sC(E));if(typeof ee=="object"&&y===void 0&&E===void 0)return W6("#"+sC(ee.red)+sC(ee.green)+sC(ee.blue));throw new hu(6)}function KM(ee,y,E,z){if(typeof ee=="string"&&typeof y=="number"){var ne=R1(ee);return"rgba("+ne.red+","+ne.green+","+ne.blue+","+y+")"}else{if(typeof ee=="number"&&typeof y=="number"&&typeof E=="number"&&typeof z=="number")return z>=1?FT(ee,y,E):"rgba("+ee+","+y+","+E+","+z+")";if(typeof ee=="object"&&y===void 0&&E===void 0&&z===void 0)return ee.alpha>=1?FT(ee.red,ee.green,ee.blue):"rgba("+ee.red+","+ee.green+","+ee.blue+","+ee.alpha+")"}throw new hu(7)}var _ne=function(y){return typeof y.red=="number"&&typeof y.green=="number"&&typeof y.blue=="number"&&(typeof y.alpha!="number"||typeof y.alpha=="undefined")},$ne=function(y){return typeof y.red=="number"&&typeof y.green=="number"&&typeof y.blue=="number"&&typeof y.alpha=="number"},eie=function(y){return typeof y.hue=="number"&&typeof y.saturation=="number"&&typeof y.lightness=="number"&&(typeof y.alpha!="number"||typeof y.alpha=="undefined")},tie=function(y){return typeof y.hue=="number"&&typeof y.saturation=="number"&&typeof y.lightness=="number"&&typeof y.alpha=="number"};function Xy(ee){if(typeof ee!="object")throw new hu(8);if($ne(ee))return KM(ee);if(_ne(ee))return FT(ee);if(tie(ee))return BO(ee);if(eie(ee))return MO(ee);throw new hu(8)}function TO(ee,y,E){return function(){var ne=E.concat(Array.prototype.slice.call(arguments));return ne.length>=y?ee.apply(this,ne):TO(ee,y,ne)}}function z0(ee){return TO(ee,ee.length,[])}function nie(ee,y){if(y==="transparent")return y;var E=JA(y);return Xy((0,Nv.Z)({},E,{hue:E.hue+parseFloat(ee)}))}var ohe=z0(nie),she=null;function ahe(ee){if(ee==="transparent")return ee;var y=JA(ee);return Xy(_extends({},y,{hue:(y.hue+180)%360}))}function Ib(ee,y,E){return Math.max(ee,Math.min(y,E))}function iie(ee,y){if(y==="transparent")return y;var E=JA(y);return Xy((0,Nv.Z)({},E,{lightness:Ib(0,1,E.lightness-parseFloat(ee))}))}var lhe=z0(iie),uhe=null;function rie(ee,y){if(y==="transparent")return y;var E=JA(y);return Xy((0,Nv.Z)({},E,{saturation:Ib(0,1,E.saturation-parseFloat(ee))}))}var che=z0(rie),hhe=null;function Z6(ee){if(ee==="transparent")return 0;var y=R1(ee),E=Object.keys(y).map(function(se){var ae=y[se]/255;return ae<=.03928?ae/12.92:Math.pow((ae+.055)/1.055,2.4)}),z=E[0],ne=E[1],ie=E[2];return parseFloat((.2126*z+.7152*ne+.0722*ie).toFixed(3))}function DO(ee,y){var E=Z6(ee),z=Z6(y);return parseFloat((E>z?(E+.05)/(z+.05):(z+.05)/(E+.05)).toFixed(2))}function dhe(ee){return ee==="transparent"?ee:Xy(_extends({},JA(ee),{saturation:0}))}function fhe(ee){if(typeof ee=="object"&&typeof ee.hue=="number"&&typeof ee.saturation=="number"&&typeof ee.lightness=="number")return ee.alpha&&typeof ee.alpha=="number"?BO({hue:ee.hue,saturation:ee.saturation,lightness:ee.lightness,alpha:ee.alpha}):MO({hue:ee.hue,saturation:ee.saturation,lightness:ee.lightness});throw new hu(45)}function phe(ee){if(ee==="transparent")return ee;var y=R1(ee);return Xy(_extends({},y,{red:255-y.red,green:255-y.green,blue:255-y.blue}))}function oie(ee,y){if(y==="transparent")return y;var E=JA(y);return Xy((0,Nv.Z)({},E,{lightness:Ib(0,1,E.lightness+parseFloat(ee))}))}var ghe=z0(oie),mhe=null;function vhe(ee,y){var E=DO(ee,y);return{AA:E>=4.5,AALarge:E>=3,AAA:E>=7,AAALarge:E>=4.5}}function sie(ee,y,E){if(y==="transparent")return E;if(E==="transparent")return y;if(ee===0)return E;var z=R1(y),ne=(0,Nv.Z)({},z,{alpha:typeof z.alpha=="number"?z.alpha:1}),ie=R1(E),se=(0,Nv.Z)({},ie,{alpha:typeof ie.alpha=="number"?ie.alpha:1}),ae=ne.alpha-se.alpha,he=parseFloat(ee)*2-1,pe=he*ae===-1?he:he+ae,ve=1+he*ae,xe=(pe/ve+1)/2,Se=1-xe,Be={red:Math.floor(ne.red*xe+se.red*Se),green:Math.floor(ne.green*xe+se.green*Se),blue:Math.floor(ne.blue*xe+se.blue*Se),alpha:ne.alpha*parseFloat(ee)+se.alpha*(1-parseFloat(ee))};return KM(Be)}var aie=z0(sie),NO=aie;function lie(ee,y){if(y==="transparent")return y;var E=R1(y),z=typeof E.alpha=="number"?E.alpha:1,ne=(0,Nv.Z)({},E,{alpha:Ib(0,1,(z*100+parseFloat(ee)*100)/100)});return KM(ne)}var uie=z0(lie),cie=uie,FO="#000",LO="#fff";function yhe(ee,y,E,z){y===void 0&&(y=FO),E===void 0&&(E=LO),z===void 0&&(z=!0);var ne=Z6(ee)>.179,ie=ne?y:E;return!z||DO(ee,ie)>=4.5?ie:ne?FO:LO}function Ahe(ee){if(typeof ee=="object"&&typeof ee.red=="number"&&typeof ee.green=="number"&&typeof ee.blue=="number")return typeof ee.alpha=="number"?KM({red:ee.red,green:ee.green,blue:ee.blue,alpha:ee.alpha}):FT({red:ee.red,green:ee.green,blue:ee.blue});throw new hu(46)}function hie(ee,y){if(y==="transparent")return y;var E=JA(y);return Xy((0,Nv.Z)({},E,{saturation:Ib(0,1,E.saturation+parseFloat(ee))}))}var xhe=z0(hie),whe=null;function die(ee,y){return y==="transparent"?y:Xy((0,Nv.Z)({},JA(y),{hue:parseFloat(ee)}))}var She=z0(die),Phe=null;function fie(ee,y){return y==="transparent"?y:Xy((0,Nv.Z)({},JA(y),{lightness:parseFloat(ee)}))}var Che=z0(fie),Ehe=null;function pie(ee,y){return y==="transparent"?y:Xy((0,Nv.Z)({},JA(y),{saturation:parseFloat(ee)}))}var bhe=z0(pie),Mhe=null;function gie(ee,y){return y==="transparent"?y:NO(parseFloat(ee),"rgb(0, 0, 0)",y)}var Bhe=z0(gie),The=null;function mie(ee,y){return y==="transparent"?y:NO(parseFloat(ee),"rgb(255, 255, 255)",y)}var Dhe=z0(mie),Nhe=null;function vie(ee,y){if(y==="transparent")return y;var E=R1(y),z=typeof E.alpha=="number"?E.alpha:1,ne=(0,Nv.Z)({},E,{alpha:Ib(0,1,+(z*100-parseFloat(ee)*100).toFixed(2)/100)});return KM(ne)}var Fhe=z0(vie),Lhe=null;function Ihe(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];var z=Array.isArray(y[0]);if(!z&&y.length>8)throw new hu(64);var ne=y.map(function(ie){if(z&&!Array.isArray(ie)||!z&&Array.isArray(ie))throw new hu(65);if(Array.isArray(ie)&&ie.length>8)throw new hu(66);return Array.isArray(ie)?ie.join(" "):ie}).join(", ");return{animation:ne}}function khe(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];return{backgroundImage:y.join(", ")}}function Ohe(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];return{background:y.join(", ")}}var yie=null;function Rhe(ee){for(var y=arguments.length,E=new Array(y>1?y-1:0),z=1;z<y;z++)E[z-1]=arguments[z];if(typeof ee=="string"&&yie.indexOf(ee)>=0){var ne;return ne={},ne["border"+ZM(ee)+"Width"]=E[0],ne["border"+ZM(ee)+"Style"]=E[1],ne["border"+ZM(ee)+"Color"]=E[2],ne}else return E.unshift(ee),{borderWidth:E[0],borderStyle:E[1],borderColor:E[2]}}function zhe(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];return oC.apply(void 0,["borderColor"].concat(y))}function Uhe(ee,y){var E=ZM(ee);if(!y&&y!==0)throw new hu(62);if(E==="Top"||E==="Bottom"){var z;return z={},z["border"+E+"RightRadius"]=y,z["border"+E+"LeftRadius"]=y,z}if(E==="Left"||E==="Right"){var ne;return ne={},ne["borderTop"+E+"Radius"]=y,ne["borderBottom"+E+"Radius"]=y,ne}throw new hu(63)}function Hhe(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];return oC.apply(void 0,["borderStyle"].concat(y))}function Vhe(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];return oC.apply(void 0,["borderWidth"].concat(y))}function IO(ee,y){var E=y?":"+y:"";return ee(E)}function kO(ee,y,E){if(!y)throw new hu(67);if(ee.length===0)return IO(y,null);for(var z=[],ne=0;ne<ee.length;ne+=1){if(E&&E.indexOf(ee[ne])<0)throw new hu(68);z.push(IO(y,ee[ne]))}return z=z.join(","),z}var Aie=null;function xie(ee){return"button"+ee+`,
|
|
input[type="button"]`+ee+`,
|
|
input[type="reset"]`+ee+`,
|
|
input[type="submit"]`+ee}function jhe(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];return kO(y,xie,Aie)}function Ghe(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];return oC.apply(void 0,["margin"].concat(y))}function Xhe(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];return oC.apply(void 0,["padding"].concat(y))}var wie=null;function Whe(ee){for(var y=arguments.length,E=new Array(y>1?y-1:0),z=1;z<y;z++)E[z-1]=arguments[z];return wie.indexOf(ee)>=0&&ee?_extends({},oC.apply(void 0,[""].concat(E)),{position:ee}):oC.apply(void 0,["",ee].concat(E))}function Qhe(ee,y){return y===void 0&&(y=ee),{height:ee,width:y}}var Sie=null;function Pie(ee){return'input[type="color"]'+ee+`,
|
|
input[type="date"]`+ee+`,
|
|
input[type="datetime"]`+ee+`,
|
|
input[type="datetime-local"]`+ee+`,
|
|
input[type="email"]`+ee+`,
|
|
input[type="month"]`+ee+`,
|
|
input[type="number"]`+ee+`,
|
|
input[type="password"]`+ee+`,
|
|
input[type="search"]`+ee+`,
|
|
input[type="tel"]`+ee+`,
|
|
input[type="text"]`+ee+`,
|
|
input[type="time"]`+ee+`,
|
|
input[type="url"]`+ee+`,
|
|
input[type="week"]`+ee+`,
|
|
input:not([type])`+ee+`,
|
|
textarea`+ee}function Zhe(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];return kO(y,Pie,Sie)}function Yhe(){for(var ee=arguments.length,y=new Array(ee),E=0;E<ee;E++)y[E]=arguments[E];if(Array.isArray(y[0])&&y.length===2){var z=y[1];if(typeof z!="string")throw new hu(61);var ne=y[0].map(function(ie){return ie+" "+z}).join(", ");return{transition:ne}}else return{transition:y.join(", ")}}var fS=Object.freeze({Linear:Object.freeze({None:function(ee){return ee},In:function(ee){return ee},Out:function(ee){return ee},InOut:function(ee){return ee}}),Quadratic:Object.freeze({In:function(ee){return ee*ee},Out:function(ee){return ee*(2-ee)},InOut:function(ee){return(ee*=2)<1?.5*ee*ee:-.5*(--ee*(ee-2)-1)}}),Cubic:Object.freeze({In:function(ee){return ee*ee*ee},Out:function(ee){return--ee*ee*ee+1},InOut:function(ee){return(ee*=2)<1?.5*ee*ee*ee:.5*((ee-=2)*ee*ee+2)}}),Quartic:Object.freeze({In:function(ee){return ee*ee*ee*ee},Out:function(ee){return 1- --ee*ee*ee*ee},InOut:function(ee){return(ee*=2)<1?.5*ee*ee*ee*ee:-.5*((ee-=2)*ee*ee*ee-2)}}),Quintic:Object.freeze({In:function(ee){return ee*ee*ee*ee*ee},Out:function(ee){return--ee*ee*ee*ee*ee+1},InOut:function(ee){return(ee*=2)<1?.5*ee*ee*ee*ee*ee:.5*((ee-=2)*ee*ee*ee*ee+2)}}),Sinusoidal:Object.freeze({In:function(ee){return 1-Math.sin((1-ee)*Math.PI/2)},Out:function(ee){return Math.sin(ee*Math.PI/2)},InOut:function(ee){return .5*(1-Math.sin(Math.PI*(.5-ee)))}}),Exponential:Object.freeze({In:function(ee){return ee===0?0:Math.pow(1024,ee-1)},Out:function(ee){return ee===1?1:1-Math.pow(2,-10*ee)},InOut:function(ee){return ee===0?0:ee===1?1:(ee*=2)<1?.5*Math.pow(1024,ee-1):.5*(-Math.pow(2,-10*(ee-1))+2)}}),Circular:Object.freeze({In:function(ee){return 1-Math.sqrt(1-ee*ee)},Out:function(ee){return Math.sqrt(1- --ee*ee)},InOut:function(ee){return(ee*=2)<1?-.5*(Math.sqrt(1-ee*ee)-1):.5*(Math.sqrt(1-(ee-=2)*ee)+1)}}),Elastic:Object.freeze({In:function(ee){return ee===0?0:ee===1?1:-Math.pow(2,10*(ee-1))*Math.sin((ee-1.1)*5*Math.PI)},Out:function(ee){return ee===0?0:ee===1?1:Math.pow(2,-10*ee)*Math.sin((ee-.1)*5*Math.PI)+1},InOut:function(ee){return ee===0?0:ee===1?1:(ee*=2,ee<1?-.5*Math.pow(2,10*(ee-1))*Math.sin((ee-1.1)*5*Math.PI):.5*Math.pow(2,-10*(ee-1))*Math.sin((ee-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(ee){var y=1.70158;return ee===1?1:ee*ee*((y+1)*ee-y)},Out:function(ee){var y=1.70158;return ee===0?0:--ee*ee*((y+1)*ee+y)+1},InOut:function(ee){var y=2.5949095;return(ee*=2)<1?.5*(ee*ee*((y+1)*ee-y)):.5*((ee-=2)*ee*((y+1)*ee+y)+2)}}),Bounce:Object.freeze({In:function(ee){return 1-fS.Bounce.Out(1-ee)},Out:function(ee){return ee<1/2.75?7.5625*ee*ee:ee<2/2.75?7.5625*(ee-=1.5/2.75)*ee+.75:ee<2.5/2.75?7.5625*(ee-=2.25/2.75)*ee+.9375:7.5625*(ee-=2.625/2.75)*ee+.984375},InOut:function(ee){return ee<.5?fS.Bounce.In(ee*2)*.5:fS.Bounce.Out(ee*2-1)*.5+.5}}),generatePow:function(ee){return ee===void 0&&(ee=4),ee=ee<Number.EPSILON?Number.EPSILON:ee,ee=ee>1e4?1e4:ee,{In:function(y){return Math.pow(y,ee)},Out:function(y){return 1-Math.pow(1-y,ee)},InOut:function(y){return y<.5?Math.pow(y*2,ee)/2:(1-Math.pow(2-y*2,ee))/2+.5}}}}),Ob=function(){return performance.now()},Y6=function(){function ee(){for(var y=[],E=0;E<arguments.length;E++)y[E]=arguments[E];this._tweens={},this._tweensAddedDuringUpdate={},this.add.apply(this,y)}return ee.prototype.getAll=function(){var y=this;return Object.keys(this._tweens).map(function(E){return y._tweens[E]})},ee.prototype.removeAll=function(){this._tweens={}},ee.prototype.add=function(){for(var y,E=[],z=0;z<arguments.length;z++)E[z]=arguments[z];for(var ne=0,ie=E;ne<ie.length;ne++){var se=ie[ne];(y=se._group)===null||y===void 0||y.remove(se),se._group=this,this._tweens[se.getId()]=se,this._tweensAddedDuringUpdate[se.getId()]=se}},ee.prototype.remove=function(){for(var y=[],E=0;E<arguments.length;E++)y[E]=arguments[E];for(var z=0,ne=y;z<ne.length;z++){var ie=ne[z];ie._group=void 0,delete this._tweens[ie.getId()],delete this._tweensAddedDuringUpdate[ie.getId()]}},ee.prototype.allStopped=function(){return this.getAll().every(function(y){return!y.isPlaying()})},ee.prototype.update=function(y,E){y===void 0&&(y=Ob()),E===void 0&&(E=!0);var z=Object.keys(this._tweens);if(z.length!==0)for(;z.length>0;){this._tweensAddedDuringUpdate={};for(var ne=0;ne<z.length;ne++){var ie=this._tweens[z[ne]],se=!E;ie&&ie.update(y,se)===!1&&!E&&this.remove(ie)}z=Object.keys(this._tweensAddedDuringUpdate)}},ee}(),aC={Linear:function(ee,y){var E=ee.length-1,z=E*y,ne=Math.floor(z),ie=aC.Utils.Linear;return y<0?ie(ee[0],ee[1],z):y>1?ie(ee[E],ee[E-1],E-z):ie(ee[ne],ee[ne+1>E?E:ne+1],z-ne)},Bezier:function(ee,y){for(var E=0,z=ee.length-1,ne=Math.pow,ie=aC.Utils.Bernstein,se=0;se<=z;se++)E+=ne(1-y,z-se)*ne(y,se)*ee[se]*ie(z,se);return E},CatmullRom:function(ee,y){var E=ee.length-1,z=E*y,ne=Math.floor(z),ie=aC.Utils.CatmullRom;return ee[0]===ee[E]?(y<0&&(ne=Math.floor(z=E*(1+y))),ie(ee[(ne-1+E)%E],ee[ne],ee[(ne+1)%E],ee[(ne+2)%E],z-ne)):y<0?ee[0]-(ie(ee[0],ee[0],ee[1],ee[1],-z)-ee[0]):y>1?ee[E]-(ie(ee[E],ee[E],ee[E-1],ee[E-1],z-E)-ee[E]):ie(ee[ne?ne-1:0],ee[ne],ee[E<ne+1?E:ne+1],ee[E<ne+2?E:ne+2],z-ne)},Utils:{Linear:function(ee,y,E){return(y-ee)*E+ee},Bernstein:function(ee,y){var E=aC.Utils.Factorial;return E(ee)/E(y)/E(ee-y)},Factorial:function(){var ee=[1];return function(y){var E=1;if(ee[y])return ee[y];for(var z=y;z>1;z--)E*=z;return ee[y]=E,E}}(),CatmullRom:function(ee,y,E,z,ne){var ie=(E-ee)*.5,se=(z-y)*.5,ae=ne*ne,he=ne*ae;return(2*y-2*E+ie+se)*he+(-3*y+3*E-2*ie-se)*ae+ie*ne+y}}},K6=function(){function ee(){}return ee.nextId=function(){return ee._nextId++},ee._nextId=0,ee}(),J6=new Y6,q6=function(){function ee(y,E){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=fS.Linear.None,this._interpolationFunction=aC.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=K6.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=y,typeof E=="object"?(this._group=E,E.add(this)):E===!0&&(this._group=J6,J6.add(this))}return ee.prototype.getId=function(){return this._id},ee.prototype.isPlaying=function(){return this._isPlaying},ee.prototype.isPaused=function(){return this._isPaused},ee.prototype.getDuration=function(){return this._duration},ee.prototype.to=function(y,E){if(E===void 0&&(E=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=y,this._propertiesAreSetUp=!1,this._duration=E<0?0:E,this},ee.prototype.duration=function(y){return y===void 0&&(y=1e3),this._duration=y<0?0:y,this},ee.prototype.dynamic=function(y){return y===void 0&&(y=!1),this._isDynamic=y,this},ee.prototype.start=function(y,E){if(y===void 0&&(y=Ob()),E===void 0&&(E=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var z in this._valuesStartRepeat)this._swapEndStartRepeatValues(z),this._valuesStart[z]=this._valuesStartRepeat[z]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=y,this._startTime+=this._delayTime,!this._propertiesAreSetUp||E){if(this._propertiesAreSetUp=!0,!this._isDynamic){var ne={};for(var ie in this._valuesEnd)ne[ie]=this._valuesEnd[ie];this._valuesEnd=ne}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,E)}return this},ee.prototype.startFromCurrentValues=function(y){return this.start(y,!0)},ee.prototype._setupProperties=function(y,E,z,ne,ie){for(var se in z){var ae=y[se],he=Array.isArray(ae),pe=he?"array":typeof ae,ve=!he&&Array.isArray(z[se]);if(!(pe==="undefined"||pe==="function")){if(ve){var xe=z[se];if(xe.length===0)continue;for(var Se=[ae],Be=0,De=xe.length;Be<De;Be+=1){var Re=this._handleRelativeValue(ae,xe[Be]);if(isNaN(Re)){ve=!1,console.warn("Found invalid interpolation list. Skipping.");break}Se.push(Re)}ve&&(z[se]=Se)}if((pe==="object"||he)&&ae&&!ve){E[se]=he?[]:{};var Oe=ae;for(var Le in Oe)E[se][Le]=Oe[Le];ne[se]=he?[]:{};var xe=z[se];if(!this._isDynamic){var Je={};for(var Le in xe)Je[Le]=xe[Le];z[se]=xe=Je}this._setupProperties(Oe,E[se],xe,ne[se],ie)}else(typeof E[se]=="undefined"||ie)&&(E[se]=ae),he||(E[se]*=1),ve?ne[se]=z[se].slice().reverse():ne[se]=E[se]||0}}},ee.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},ee.prototype.end=function(){return this._goToEnd=!0,this.update(this._startTime+this._duration),this},ee.prototype.pause=function(y){return y===void 0&&(y=Ob()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=y,this)},ee.prototype.resume=function(y){return y===void 0&&(y=Ob()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=y-this._pauseStart,this._pauseStart=0,this)},ee.prototype.stopChainedTweens=function(){for(var y=0,E=this._chainedTweens.length;y<E;y++)this._chainedTweens[y].stop();return this},ee.prototype.group=function(y){return y?(y.add(this),this):(console.warn("tween.group() without args has been removed, use group.add(tween) instead."),this)},ee.prototype.remove=function(){var y;return(y=this._group)===null||y===void 0||y.remove(this),this},ee.prototype.delay=function(y){return y===void 0&&(y=0),this._delayTime=y,this},ee.prototype.repeat=function(y){return y===void 0&&(y=0),this._initialRepeat=y,this._repeat=y,this},ee.prototype.repeatDelay=function(y){return this._repeatDelayTime=y,this},ee.prototype.yoyo=function(y){return y===void 0&&(y=!1),this._yoyo=y,this},ee.prototype.easing=function(y){return y===void 0&&(y=fS.Linear.None),this._easingFunction=y,this},ee.prototype.interpolation=function(y){return y===void 0&&(y=aC.Linear),this._interpolationFunction=y,this},ee.prototype.chain=function(){for(var y=[],E=0;E<arguments.length;E++)y[E]=arguments[E];return this._chainedTweens=y,this},ee.prototype.onStart=function(y){return this._onStartCallback=y,this},ee.prototype.onEveryStart=function(y){return this._onEveryStartCallback=y,this},ee.prototype.onUpdate=function(y){return this._onUpdateCallback=y,this},ee.prototype.onRepeat=function(y){return this._onRepeatCallback=y,this},ee.prototype.onComplete=function(y){return this._onCompleteCallback=y,this},ee.prototype.onStop=function(y){return this._onStopCallback=y,this},ee.prototype.update=function(y,E){var z=this,ne;if(y===void 0&&(y=Ob()),E===void 0&&(E=ee.autoStartOnUpdate),this._isPaused)return!0;var ie;if(!this._goToEnd&&!this._isPlaying)if(E)this.start(y,!0);else return!1;if(this._goToEnd=!1,y<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var se=y-this._startTime,ae=this._duration+((ne=this._repeatDelayTime)!==null&&ne!==void 0?ne:this._delayTime),he=this._duration+this._repeat*ae,pe=function(){if(z._duration===0||se>he)return 1;var Re=Math.trunc(se/ae),Oe=se-Re*ae,Le=Math.min(Oe/z._duration,1);return Le===0&&se===z._duration?1:Le},ve=pe(),xe=this._easingFunction(ve);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,xe),this._onUpdateCallback&&this._onUpdateCallback(this._object,ve),this._duration===0||se>=this._duration)if(this._repeat>0){var Se=Math.min(Math.trunc((se-this._duration)/ae)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=Se);for(ie in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[ie]=="string"&&(this._valuesStartRepeat[ie]=this._valuesStartRepeat[ie]+parseFloat(this._valuesEnd[ie])),this._yoyo&&this._swapEndStartRepeatValues(ie),this._valuesStart[ie]=this._valuesStartRepeat[ie];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=ae*Se,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var Be=0,De=this._chainedTweens.length;Be<De;Be++)this._chainedTweens[Be].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},ee.prototype._updateProperties=function(y,E,z,ne){for(var ie in z)if(E[ie]!==void 0){var se=E[ie]||0,ae=z[ie],he=Array.isArray(y[ie]),pe=Array.isArray(ae),ve=!he&&pe;ve?y[ie]=this._interpolationFunction(ae,ne):typeof ae=="object"&&ae?this._updateProperties(y[ie],se,ae,ne):(ae=this._handleRelativeValue(se,ae),typeof ae=="number"&&(y[ie]=se+(ae-se)*ne))}},ee.prototype._handleRelativeValue=function(y,E){return typeof E!="string"?E:E.charAt(0)==="+"||E.charAt(0)==="-"?y+parseFloat(E):parseFloat(E)},ee.prototype._swapEndStartRepeatValues=function(y){var E=this._valuesStartRepeat[y],z=this._valuesEnd[y];typeof z=="string"?this._valuesStartRepeat[y]=this._valuesStartRepeat[y]+parseFloat(z):this._valuesStartRepeat[y]=this._valuesEnd[y],this._valuesEnd[y]=E},ee.autoStartOnUpdate=!1,ee}(),Cie="25.0.0",Eie=K6.nextId,qA=J6,bie=qA.getAll.bind(qA),Mie=qA.removeAll.bind(qA),Bie=qA.add.bind(qA),Tie=qA.remove.bind(qA),Die=qA.update.bind(qA),Khe={Easing:fS,Group:Y6,Interpolation:aC,now:Ob,Sequence:K6,nextId:Eie,Tween:q6,VERSION:Cie,getAll:bie,removeAll:Mie,add:Bie,remove:Tie,update:Die};function Nie(){}function OO(ee){return ee==null?Nie:function(){return this.querySelector(ee)}}function Fie(ee){typeof ee!="function"&&(ee=OO(ee));for(var y=this._groups,E=y.length,z=new Array(E),ne=0;ne<E;++ne)for(var ie=y[ne],se=ie.length,ae=z[ne]=new Array(se),he,pe,ve=0;ve<se;++ve)(he=ie[ve])&&(pe=ee.call(he,he.__data__,ve,ie))&&("__data__"in he&&(pe.__data__=he.__data__),ae[ve]=pe);return new U0(z,this._parents)}function Lie(ee){return ee==null?[]:Array.isArray(ee)?ee:Array.from(ee)}function Iie(){return[]}function kie(ee){return ee==null?Iie:function(){return this.querySelectorAll(ee)}}function Oie(ee){return function(){return Lie(ee.apply(this,arguments))}}function Rie(ee){typeof ee=="function"?ee=Oie(ee):ee=kie(ee);for(var y=this._groups,E=y.length,z=[],ne=[],ie=0;ie<E;++ie)for(var se=y[ie],ae=se.length,he,pe=0;pe<ae;++pe)(he=se[pe])&&(z.push(ee.call(he,he.__data__,pe,se)),ne.push(he));return new U0(z,ne)}function zie(ee){return function(){return this.matches(ee)}}function RO(ee){return function(y){return y.matches(ee)}}var Uie=Array.prototype.find;function Hie(ee){return function(){return Uie.call(this.children,ee)}}function Vie(){return this.firstElementChild}function jie(ee){return this.select(ee==null?Vie:Hie(typeof ee=="function"?ee:RO(ee)))}var Gie=Array.prototype.filter;function Xie(){return Array.from(this.children)}function Wie(ee){return function(){return Gie.call(this.children,ee)}}function Qie(ee){return this.selectAll(ee==null?Xie:Wie(typeof ee=="function"?ee:RO(ee)))}function Zie(ee){typeof ee!="function"&&(ee=zie(ee));for(var y=this._groups,E=y.length,z=new Array(E),ne=0;ne<E;++ne)for(var ie=y[ne],se=ie.length,ae=z[ne]=[],he,pe=0;pe<se;++pe)(he=ie[pe])&&ee.call(he,he.__data__,pe,ie)&&ae.push(he);return new U0(z,this._parents)}function zO(ee){return new Array(ee.length)}function Yie(){return new U0(this._enter||this._groups.map(zO),this._parents)}function LT(ee,y){this.ownerDocument=ee.ownerDocument,this.namespaceURI=ee.namespaceURI,this._next=null,this._parent=ee,this.__data__=y}LT.prototype={constructor:LT,appendChild:function(ee){return this._parent.insertBefore(ee,this._next)},insertBefore:function(ee,y){return this._parent.insertBefore(ee,y)},querySelector:function(ee){return this._parent.querySelector(ee)},querySelectorAll:function(ee){return this._parent.querySelectorAll(ee)}};function Kie(ee){return function(){return ee}}function Jie(ee,y,E,z,ne,ie){for(var se=0,ae,he=y.length,pe=ie.length;se<pe;++se)(ae=y[se])?(ae.__data__=ie[se],z[se]=ae):E[se]=new LT(ee,ie[se]);for(;se<he;++se)(ae=y[se])&&(ne[se]=ae)}function qie(ee,y,E,z,ne,ie,se){var ae,he,pe=new Map,ve=y.length,xe=ie.length,Se=new Array(ve),Be;for(ae=0;ae<ve;++ae)(he=y[ae])&&(Se[ae]=Be=se.call(he,he.__data__,ae,y)+"",pe.has(Be)?ne[ae]=he:pe.set(Be,he));for(ae=0;ae<xe;++ae)Be=se.call(ee,ie[ae],ae,ie)+"",(he=pe.get(Be))?(z[ae]=he,he.__data__=ie[ae],pe.delete(Be)):E[ae]=new LT(ee,ie[ae]);for(ae=0;ae<ve;++ae)(he=y[ae])&&pe.get(Se[ae])===he&&(ne[ae]=he)}function _ie(ee){return ee.__data__}function $ie(ee,y){if(!arguments.length)return Array.from(this,_ie);var E=y?qie:Jie,z=this._parents,ne=this._groups;typeof ee!="function"&&(ee=Kie(ee));for(var ie=ne.length,se=new Array(ie),ae=new Array(ie),he=new Array(ie),pe=0;pe<ie;++pe){var ve=z[pe],xe=ne[pe],Se=xe.length,Be=ere(ee.call(ve,ve&&ve.__data__,pe,z)),De=Be.length,Re=ae[pe]=new Array(De),Oe=se[pe]=new Array(De),Le=he[pe]=new Array(Se);E(ve,xe,Re,Oe,Le,Be,y);for(var Je=0,$e=0,_e,st;Je<De;++Je)if(_e=Re[Je]){for(Je>=$e&&($e=Je+1);!(st=Oe[$e])&&++$e<De;);_e._next=st||null}}return se=new U0(se,z),se._enter=ae,se._exit=he,se}function ere(ee){return typeof ee=="object"&&"length"in ee?ee:Array.from(ee)}function tre(){return new U0(this._exit||this._groups.map(zO),this._parents)}function nre(ee,y,E){var z=this.enter(),ne=this,ie=this.exit();return typeof ee=="function"?(z=ee(z),z&&(z=z.selection())):z=z.append(ee+""),y!=null&&(ne=y(ne),ne&&(ne=ne.selection())),E==null?ie.remove():E(ie),z&&ne?z.merge(ne).order():ne}function ire(ee){for(var y=ee.selection?ee.selection():ee,E=this._groups,z=y._groups,ne=E.length,ie=z.length,se=Math.min(ne,ie),ae=new Array(ne),he=0;he<se;++he)for(var pe=E[he],ve=z[he],xe=pe.length,Se=ae[he]=new Array(xe),Be,De=0;De<xe;++De)(Be=pe[De]||ve[De])&&(Se[De]=Be);for(;he<ne;++he)ae[he]=E[he];return new U0(ae,this._parents)}function rre(){for(var ee=this._groups,y=-1,E=ee.length;++y<E;)for(var z=ee[y],ne=z.length-1,ie=z[ne],se;--ne>=0;)(se=z[ne])&&(ie&&se.compareDocumentPosition(ie)^4&&ie.parentNode.insertBefore(se,ie),ie=se);return this}function ore(ee){ee||(ee=sre);function y(xe,Se){return xe&&Se?ee(xe.__data__,Se.__data__):!xe-!Se}for(var E=this._groups,z=E.length,ne=new Array(z),ie=0;ie<z;++ie){for(var se=E[ie],ae=se.length,he=ne[ie]=new Array(ae),pe,ve=0;ve<ae;++ve)(pe=se[ve])&&(he[ve]=pe);he.sort(y)}return new U0(ne,this._parents).order()}function sre(ee,y){return ee<y?-1:ee>y?1:ee>=y?0:NaN}function are(){var ee=arguments[0];return arguments[0]=this,ee.apply(null,arguments),this}function lre(){return Array.from(this)}function ure(){for(var ee=this._groups,y=0,E=ee.length;y<E;++y)for(var z=ee[y],ne=0,ie=z.length;ne<ie;++ne){var se=z[ne];if(se)return se}return null}function cre(){let ee=0;for(const y of this)++ee;return ee}function hre(){return!this.node()}function dre(ee){for(var y=this._groups,E=0,z=y.length;E<z;++E)for(var ne=y[E],ie=0,se=ne.length,ae;ie<se;++ie)(ae=ne[ie])&&ee.call(ae,ae.__data__,ie,ne);return this}var _6="http://www.w3.org/1999/xhtml",UO={svg:"http://www.w3.org/2000/svg",xhtml:_6,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function HO(ee){var y=ee+="",E=y.indexOf(":");return E>=0&&(y=ee.slice(0,E))!=="xmlns"&&(ee=ee.slice(E+1)),UO.hasOwnProperty(y)?{space:UO[y],local:ee}:ee}function fre(ee){return function(){this.removeAttribute(ee)}}function pre(ee){return function(){this.removeAttributeNS(ee.space,ee.local)}}function gre(ee,y){return function(){this.setAttribute(ee,y)}}function mre(ee,y){return function(){this.setAttributeNS(ee.space,ee.local,y)}}function vre(ee,y){return function(){var E=y.apply(this,arguments);E==null?this.removeAttribute(ee):this.setAttribute(ee,E)}}function yre(ee,y){return function(){var E=y.apply(this,arguments);E==null?this.removeAttributeNS(ee.space,ee.local):this.setAttributeNS(ee.space,ee.local,E)}}function Are(ee,y){var E=HO(ee);if(arguments.length<2){var z=this.node();return E.local?z.getAttributeNS(E.space,E.local):z.getAttribute(E)}return this.each((y==null?E.local?pre:fre:typeof y=="function"?E.local?yre:vre:E.local?mre:gre)(E,y))}function VO(ee){return ee.ownerDocument&&ee.ownerDocument.defaultView||ee.document&&ee||ee.defaultView}function xre(ee){return function(){this.style.removeProperty(ee)}}function wre(ee,y,E){return function(){this.style.setProperty(ee,y,E)}}function Sre(ee,y,E){return function(){var z=y.apply(this,arguments);z==null?this.style.removeProperty(ee):this.style.setProperty(ee,z,E)}}function Pre(ee,y,E){return arguments.length>1?this.each((y==null?xre:typeof y=="function"?Sre:wre)(ee,y,E==null?"":E)):Cre(this.node(),ee)}function Cre(ee,y){return ee.style.getPropertyValue(y)||VO(ee).getComputedStyle(ee,null).getPropertyValue(y)}function Ere(ee){return function(){delete this[ee]}}function bre(ee,y){return function(){this[ee]=y}}function Mre(ee,y){return function(){var E=y.apply(this,arguments);E==null?delete this[ee]:this[ee]=E}}function Bre(ee,y){return arguments.length>1?this.each((y==null?Ere:typeof y=="function"?Mre:bre)(ee,y)):this.node()[ee]}function jO(ee){return ee.trim().split(/^|\s+/)}function $6(ee){return ee.classList||new GO(ee)}function GO(ee){this._node=ee,this._names=jO(ee.getAttribute("class")||"")}GO.prototype={add:function(ee){var y=this._names.indexOf(ee);y<0&&(this._names.push(ee),this._node.setAttribute("class",this._names.join(" ")))},remove:function(ee){var y=this._names.indexOf(ee);y>=0&&(this._names.splice(y,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(ee){return this._names.indexOf(ee)>=0}};function XO(ee,y){for(var E=$6(ee),z=-1,ne=y.length;++z<ne;)E.add(y[z])}function WO(ee,y){for(var E=$6(ee),z=-1,ne=y.length;++z<ne;)E.remove(y[z])}function Tre(ee){return function(){XO(this,ee)}}function Dre(ee){return function(){WO(this,ee)}}function Nre(ee,y){return function(){(y.apply(this,arguments)?XO:WO)(this,ee)}}function Fre(ee,y){var E=jO(ee+"");if(arguments.length<2){for(var z=$6(this.node()),ne=-1,ie=E.length;++ne<ie;)if(!z.contains(E[ne]))return!1;return!0}return this.each((typeof y=="function"?Nre:y?Tre:Dre)(E,y))}function Lre(){this.textContent=""}function Ire(ee){return function(){this.textContent=ee}}function kre(ee){return function(){var y=ee.apply(this,arguments);this.textContent=y==null?"":y}}function Ore(ee){return arguments.length?this.each(ee==null?Lre:(typeof ee=="function"?kre:Ire)(ee)):this.node().textContent}function Rre(){this.innerHTML=""}function zre(ee){return function(){this.innerHTML=ee}}function Ure(ee){return function(){var y=ee.apply(this,arguments);this.innerHTML=y==null?"":y}}function Hre(ee){return arguments.length?this.each(ee==null?Rre:(typeof ee=="function"?Ure:zre)(ee)):this.node().innerHTML}function Vre(){this.nextSibling&&this.parentNode.appendChild(this)}function jre(){return this.each(Vre)}function Gre(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Xre(){return this.each(Gre)}function Wre(ee){return function(){var y=this.ownerDocument,E=this.namespaceURI;return E===_6&&y.documentElement.namespaceURI===_6?y.createElement(ee):y.createElementNS(E,ee)}}function Qre(ee){return function(){return this.ownerDocument.createElementNS(ee.space,ee.local)}}function QO(ee){var y=HO(ee);return(y.local?Qre:Wre)(y)}function Zre(ee){var y=typeof ee=="function"?ee:QO(ee);return this.select(function(){return this.appendChild(y.apply(this,arguments))})}function Yre(){return null}function Kre(ee,y){var E=typeof ee=="function"?ee:QO(ee),z=y==null?Yre:typeof y=="function"?y:OO(y);return this.select(function(){return this.insertBefore(E.apply(this,arguments),z.apply(this,arguments)||null)})}function Jre(){var ee=this.parentNode;ee&&ee.removeChild(this)}function qre(){return this.each(Jre)}function _re(){var ee=this.cloneNode(!1),y=this.parentNode;return y?y.insertBefore(ee,this.nextSibling):ee}function $re(){var ee=this.cloneNode(!0),y=this.parentNode;return y?y.insertBefore(ee,this.nextSibling):ee}function eoe(ee){return this.select(ee?$re:_re)}function toe(ee){return arguments.length?this.property("__data__",ee):this.node().__data__}function noe(ee){return function(y){ee.call(this,y,this.__data__)}}function ioe(ee){return ee.trim().split(/^|\s+/).map(function(y){var E="",z=y.indexOf(".");return z>=0&&(E=y.slice(z+1),y=y.slice(0,z)),{type:y,name:E}})}function roe(ee){return function(){var y=this.__on;if(y){for(var E=0,z=-1,ne=y.length,ie;E<ne;++E)ie=y[E],(!ee.type||ie.type===ee.type)&&ie.name===ee.name?this.removeEventListener(ie.type,ie.listener,ie.options):y[++z]=ie;++z?y.length=z:delete this.__on}}}function ooe(ee,y,E){return function(){var z=this.__on,ne,ie=noe(y);if(z){for(var se=0,ae=z.length;se<ae;++se)if((ne=z[se]).type===ee.type&&ne.name===ee.name){this.removeEventListener(ne.type,ne.listener,ne.options),this.addEventListener(ne.type,ne.listener=ie,ne.options=E),ne.value=y;return}}this.addEventListener(ee.type,ie,E),ne={type:ee.type,name:ee.name,value:y,listener:ie,options:E},z?z.push(ne):this.__on=[ne]}}function soe(ee,y,E){var z=ioe(ee+""),ne,ie=z.length,se;if(arguments.length<2){var ae=this.node().__on;if(ae){for(var he=0,pe=ae.length,ve;he<pe;++he)for(ne=0,ve=ae[he];ne<ie;++ne)if((se=z[ne]).type===ve.type&&se.name===ve.name)return ve.value}return}for(ae=y?ooe:roe,ne=0;ne<ie;++ne)this.each(ae(z[ne],y,E));return this}function ZO(ee,y,E){var z=VO(ee),ne=z.CustomEvent;typeof ne=="function"?ne=new ne(y,E):(ne=z.document.createEvent("Event"),E?(ne.initEvent(y,E.bubbles,E.cancelable),ne.detail=E.detail):ne.initEvent(y,!1,!1)),ee.dispatchEvent(ne)}function aoe(ee,y){return function(){return ZO(this,ee,y)}}function loe(ee,y){return function(){return ZO(this,ee,y.apply(this,arguments))}}function uoe(ee,y){return this.each((typeof y=="function"?loe:aoe)(ee,y))}function*coe(){for(var ee=this._groups,y=0,E=ee.length;y<E;++y)for(var z=ee[y],ne=0,ie=z.length,se;ne<ie;++ne)(se=z[ne])&&(yield se)}var YO=[null];function U0(ee,y){this._groups=ee,this._parents=y}function hoe(){return new U0([[document.documentElement]],YO)}function doe(){return this}U0.prototype=hoe.prototype={constructor:U0,select:Fie,selectAll:Rie,selectChild:jie,selectChildren:Qie,filter:Zie,data:$ie,enter:Yie,exit:tre,join:nre,merge:ire,selection:doe,order:rre,sort:ore,call:are,nodes:lre,node:ure,size:cre,empty:hre,each:dre,attr:Are,style:Pre,property:Bre,classed:Fre,text:Ore,html:Hre,raise:jre,lower:Xre,append:Zre,insert:Kre,remove:qre,clone:eoe,datum:toe,on:soe,dispatch:uoe,[Symbol.iterator]:coe};var Jhe=null;function foe(ee){return typeof ee=="string"?new U0([[document.querySelector(ee)]],[document.documentElement]):new U0([[ee]],YO)}function poe(ee){let y;for(;y=ee.sourceEvent;)ee=y;return ee}function goe(ee,y){if(ee=poe(ee),y===void 0&&(y=ee.currentTarget),y){var E=y.ownerSVGElement||y;if(E.createSVGPoint){var z=E.createSVGPoint();return z.x=ee.clientX,z.y=ee.clientY,z=z.matrixTransform(y.getScreenCTM().inverse()),[z.x,z.y]}if(y.getBoundingClientRect){var ne=y.getBoundingClientRect();return[ee.clientX-ne.left-y.clientLeft,ee.clientY-ne.top-y.clientTop]}}return[ee.pageX,ee.pageY]}var JM,Rd,KO,JO,lC,qO,_O,$O,eR,eN,tN,nN,tR,qM={},nR=[],moe=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,_M=Array.isArray;function _A(ee,y){for(var E in y)ee[E]=y[E];return ee}function iN(ee){ee&&ee.parentNode&&ee.parentNode.removeChild(ee)}function voe(ee,y,E){var z,ne,ie,se={};for(ie in y)ie=="key"?z=y[ie]:ie=="ref"?ne=y[ie]:se[ie]=y[ie];if(arguments.length>2&&(se.children=arguments.length>3?JM.call(arguments,2):E),typeof ee=="function"&&ee.defaultProps!=null)for(ie in ee.defaultProps)se[ie]===void 0&&(se[ie]=ee.defaultProps[ie]);return $M(ee,se,z,ne,null)}function $M(ee,y,E,z,ne){var ie={type:ee,props:y,key:E,ref:z,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:ne==null?++KO:ne,__i:-1,__u:0};return ne==null&&Rd.vnode!=null&&Rd.vnode(ie),ie}function qhe(){return{current:null}}function IT(ee){return ee.children}function kT(ee,y){this.props=ee,this.context=y}function Rb(ee,y){if(y==null)return ee.__?Rb(ee.__,ee.__i+1):null;for(var E;y<ee.__k.length;y++)if((E=ee.__k[y])!=null&&E.__e!=null)return E.__e;return typeof ee.type=="function"?Rb(ee):null}function iR(ee){var y,E;if((ee=ee.__)!=null&&ee.__c!=null){for(ee.__e=ee.__c.base=null,y=0;y<ee.__k.length;y++)if((E=ee.__k[y])!=null&&E.__e!=null){ee.__e=ee.__c.base=E.__e;break}return iR(ee)}}function rN(ee){(!ee.__d&&(ee.__d=!0)&&lC.push(ee)&&!OT.__r++||qO!=Rd.debounceRendering)&&((qO=Rd.debounceRendering)||_O)(OT)}function OT(){for(var ee,y,E,z,ne,ie,se,ae=1;lC.length;)lC.length>ae&&lC.sort($O),ee=lC.shift(),ae=lC.length,ee.__d&&(E=void 0,ne=(z=(y=ee).__v).__e,ie=[],se=[],y.__P&&((E=_A({},z)).__v=z.__v+1,Rd.vnode&&Rd.vnode(E),oN(y.__P,E,z,y.__n,y.__P.namespaceURI,32&z.__u?[ne]:null,ie,ne==null?Rb(z):ne,!!(32&z.__u),se),E.__v=z.__v,E.__.__k[E.__i]=E,lR(ie,E,se),E.__e!=ne&&iR(E)));OT.__r=0}function rR(ee,y,E,z,ne,ie,se,ae,he,pe,ve){var xe,Se,Be,De,Re,Oe,Le=z&&z.__k||nR,Je=y.length;for(he=yoe(E,y,Le,he,Je),xe=0;xe<Je;xe++)(Be=E.__k[xe])!=null&&(Se=Be.__i==-1?qM:Le[Be.__i]||qM,Be.__i=xe,Oe=oN(ee,Be,Se,ne,ie,se,ae,he,pe,ve),De=Be.__e,Be.ref&&Se.ref!=Be.ref&&(Se.ref&&sN(Se.ref,null,Be),ve.push(Be.ref,Be.__c||De,Be)),Re==null&&De!=null&&(Re=De),4&Be.__u||Se.__k===Be.__k?he=oR(Be,he,ee):typeof Be.type=="function"&&Oe!==void 0?he=Oe:De&&(he=De.nextSibling),Be.__u&=-7);return E.__e=Re,he}function yoe(ee,y,E,z,ne){var ie,se,ae,he,pe,ve=E.length,xe=ve,Se=0;for(ee.__k=new Array(ne),ie=0;ie<ne;ie++)(se=y[ie])!=null&&typeof se!="boolean"&&typeof se!="function"?(he=ie+Se,(se=ee.__k[ie]=typeof se=="string"||typeof se=="number"||typeof se=="bigint"||se.constructor==String?$M(null,se,null,null,null):_M(se)?$M(IT,{children:se},null,null,null):se.constructor==null&&se.__b>0?$M(se.type,se.props,se.key,se.ref?se.ref:null,se.__v):se).__=ee,se.__b=ee.__b+1,ae=null,(pe=se.__i=xoe(se,E,he,xe))!=-1&&(xe--,(ae=E[pe])&&(ae.__u|=2)),ae==null||ae.__v==null?(pe==-1&&(ne>ve?Se--:ne<ve&&Se++),typeof se.type!="function"&&(se.__u|=4)):pe!=he&&(pe==he-1?Se--:pe==he+1?Se++:(pe>he?Se--:Se++,se.__u|=4))):ee.__k[ie]=null;if(xe)for(ie=0;ie<ve;ie++)(ae=E[ie])!=null&&!(2&ae.__u)&&(ae.__e==z&&(z=Rb(ae)),cR(ae,ae));return z}function oR(ee,y,E){var z,ne;if(typeof ee.type=="function"){for(z=ee.__k,ne=0;z&&ne<z.length;ne++)z[ne]&&(z[ne].__=ee,y=oR(z[ne],y,E));return y}ee.__e!=y&&(y&&ee.type&&!E.contains(y)&&(y=Rb(ee)),E.insertBefore(ee.__e,y||null),y=ee.__e);do y=y&&y.nextSibling;while(y!=null&&y.nodeType==8);return y}function Aoe(ee,y){return y=y||[],ee==null||typeof ee=="boolean"||(_M(ee)?ee.some(function(E){Aoe(E,y)}):y.push(ee)),y}function xoe(ee,y,E,z){var ne,ie,se=ee.key,ae=ee.type,he=y[E];if(he===null&&ee.key==null||he&&se==he.key&&ae==he.type&&!(2&he.__u))return E;if(z>(he!=null&&!(2&he.__u)?1:0))for(ne=E-1,ie=E+1;ne>=0||ie<y.length;){if(ne>=0){if((he=y[ne])&&!(2&he.__u)&&se==he.key&&ae==he.type)return ne;ne--}if(ie<y.length){if((he=y[ie])&&!(2&he.__u)&&se==he.key&&ae==he.type)return ie;ie++}}return-1}function sR(ee,y,E){y[0]=="-"?ee.setProperty(y,E==null?"":E):ee[y]=E==null?"":typeof E!="number"||moe.test(y)?E:E+"px"}function RT(ee,y,E,z,ne){var ie,se;e:if(y=="style")if(typeof E=="string")ee.style.cssText=E;else{if(typeof z=="string"&&(ee.style.cssText=z=""),z)for(y in z)E&&y in E||sR(ee.style,y,"");if(E)for(y in E)z&&E[y]==z[y]||sR(ee.style,y,E[y])}else if(y[0]=="o"&&y[1]=="n")ie=y!=(y=y.replace(eR,"$1")),se=y.toLowerCase(),y=se in ee||y=="onFocusOut"||y=="onFocusIn"?se.slice(2):y.slice(2),ee.l||(ee.l={}),ee.l[y+ie]=E,E?z?E.u=z.u:(E.u=eN,ee.addEventListener(y,ie?nN:tN,ie)):ee.removeEventListener(y,ie?nN:tN,ie);else{if(ne=="http://www.w3.org/2000/svg")y=y.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(y!="width"&&y!="height"&&y!="href"&&y!="list"&&y!="form"&&y!="tabIndex"&&y!="download"&&y!="rowSpan"&&y!="colSpan"&&y!="role"&&y!="popover"&&y in ee)try{ee[y]=E==null?"":E;break e}catch(ae){}typeof E=="function"||(E==null||E===!1&&y[4]!="-"?ee.removeAttribute(y):ee.setAttribute(y,y=="popover"&&E==1?"":E))}}function aR(ee){return function(y){if(this.l){var E=this.l[y.type+ee];if(y.t==null)y.t=eN++;else if(y.t<E.u)return;return E(Rd.event?Rd.event(y):y)}}}function oN(ee,y,E,z,ne,ie,se,ae,he,pe){var ve,xe,Se,Be,De,Re,Oe,Le,Je,$e,_e,st,ct,ut,ht,pt,gt,zt=y.type;if(y.constructor!=null)return null;128&E.__u&&(he=!!(32&E.__u),ie=[ae=y.__e=E.__e]),(ve=Rd.__b)&&ve(y);e:if(typeof zt=="function")try{if(Le=y.props,Je="prototype"in zt&&zt.prototype.render,$e=(ve=zt.contextType)&&z[ve.__c],_e=ve?$e?$e.props.value:ve.__:z,E.__c?Oe=(xe=y.__c=E.__c).__=xe.__E:(Je?y.__c=xe=new zt(Le,_e):(y.__c=xe=new kT(Le,_e),xe.constructor=zt,xe.render=Soe),$e&&$e.sub(xe),xe.props=Le,xe.state||(xe.state={}),xe.context=_e,xe.__n=z,Se=xe.__d=!0,xe.__h=[],xe._sb=[]),Je&&xe.__s==null&&(xe.__s=xe.state),Je&&zt.getDerivedStateFromProps!=null&&(xe.__s==xe.state&&(xe.__s=_A({},xe.__s)),_A(xe.__s,zt.getDerivedStateFromProps(Le,xe.__s))),Be=xe.props,De=xe.state,xe.__v=y,Se)Je&&zt.getDerivedStateFromProps==null&&xe.componentWillMount!=null&&xe.componentWillMount(),Je&&xe.componentDidMount!=null&&xe.__h.push(xe.componentDidMount);else{if(Je&&zt.getDerivedStateFromProps==null&&Le!==Be&&xe.componentWillReceiveProps!=null&&xe.componentWillReceiveProps(Le,_e),!xe.__e&&xe.shouldComponentUpdate!=null&&xe.shouldComponentUpdate(Le,xe.__s,_e)===!1||y.__v==E.__v){for(y.__v!=E.__v&&(xe.props=Le,xe.state=xe.__s,xe.__d=!1),y.__e=E.__e,y.__k=E.__k,y.__k.some(function(cn){cn&&(cn.__=y)}),st=0;st<xe._sb.length;st++)xe.__h.push(xe._sb[st]);xe._sb=[],xe.__h.length&&se.push(xe);break e}xe.componentWillUpdate!=null&&xe.componentWillUpdate(Le,xe.__s,_e),Je&&xe.componentDidUpdate!=null&&xe.__h.push(function(){xe.componentDidUpdate(Be,De,Re)})}if(xe.context=_e,xe.props=Le,xe.__P=ee,xe.__e=!1,ct=Rd.__r,ut=0,Je){for(xe.state=xe.__s,xe.__d=!1,ct&&ct(y),ve=xe.render(xe.props,xe.state,xe.context),ht=0;ht<xe._sb.length;ht++)xe.__h.push(xe._sb[ht]);xe._sb=[]}else do xe.__d=!1,ct&&ct(y),ve=xe.render(xe.props,xe.state,xe.context),xe.state=xe.__s;while(xe.__d&&++ut<25);xe.state=xe.__s,xe.getChildContext!=null&&(z=_A(_A({},z),xe.getChildContext())),Je&&!Se&&xe.getSnapshotBeforeUpdate!=null&&(Re=xe.getSnapshotBeforeUpdate(Be,De)),pt=ve,ve!=null&&ve.type===IT&&ve.key==null&&(pt=uR(ve.props.children)),ae=rR(ee,_M(pt)?pt:[pt],y,E,z,ne,ie,se,ae,he,pe),xe.base=y.__e,y.__u&=-161,xe.__h.length&&se.push(xe),Oe&&(xe.__E=xe.__=null)}catch(cn){if(y.__v=null,he||ie!=null)if(cn.then){for(y.__u|=he?160:128;ae&&ae.nodeType==8&&ae.nextSibling;)ae=ae.nextSibling;ie[ie.indexOf(ae)]=null,y.__e=ae}else for(gt=ie.length;gt--;)iN(ie[gt]);else y.__e=E.__e,y.__k=E.__k;Rd.__e(cn,y,E)}else ie==null&&y.__v==E.__v?(y.__k=E.__k,y.__e=E.__e):ae=y.__e=woe(E.__e,y,E,z,ne,ie,se,he,pe);return(ve=Rd.diffed)&&ve(y),128&y.__u?void 0:ae}function lR(ee,y,E){for(var z=0;z<E.length;z++)sN(E[z],E[++z],E[++z]);Rd.__c&&Rd.__c(y,ee),ee.some(function(ne){try{ee=ne.__h,ne.__h=[],ee.some(function(ie){ie.call(ne)})}catch(ie){Rd.__e(ie,ne.__v)}})}function uR(ee){return typeof ee!="object"||ee==null||ee.__b&&ee.__b>0?ee:_M(ee)?ee.map(uR):_A({},ee)}function woe(ee,y,E,z,ne,ie,se,ae,he){var pe,ve,xe,Se,Be,De,Re,Oe=E.props,Le=y.props,Je=y.type;if(Je=="svg"?ne="http://www.w3.org/2000/svg":Je=="math"?ne="http://www.w3.org/1998/Math/MathML":ne||(ne="http://www.w3.org/1999/xhtml"),ie!=null){for(pe=0;pe<ie.length;pe++)if((Be=ie[pe])&&"setAttribute"in Be==!!Je&&(Je?Be.localName==Je:Be.nodeType==3)){ee=Be,ie[pe]=null;break}}if(ee==null){if(Je==null)return document.createTextNode(Le);ee=document.createElementNS(ne,Je,Le.is&&Le),ae&&(Rd.__m&&Rd.__m(y,ie),ae=!1),ie=null}if(Je==null)Oe===Le||ae&&ee.data==Le||(ee.data=Le);else{if(ie=ie&&JM.call(ee.childNodes),Oe=E.props||qM,!ae&&ie!=null)for(Oe={},pe=0;pe<ee.attributes.length;pe++)Oe[(Be=ee.attributes[pe]).name]=Be.value;for(pe in Oe)if(Be=Oe[pe],pe!="children"){if(pe=="dangerouslySetInnerHTML")xe=Be;else if(!(pe in Le)){if(pe=="value"&&"defaultValue"in Le||pe=="checked"&&"defaultChecked"in Le)continue;RT(ee,pe,null,Be,ne)}}for(pe in Le)Be=Le[pe],pe=="children"?Se=Be:pe=="dangerouslySetInnerHTML"?ve=Be:pe=="value"?De=Be:pe=="checked"?Re=Be:ae&&typeof Be!="function"||Oe[pe]===Be||RT(ee,pe,Be,Oe[pe],ne);if(ve)ae||xe&&(ve.__html==xe.__html||ve.__html==ee.innerHTML)||(ee.innerHTML=ve.__html),y.__k=[];else if(xe&&(ee.innerHTML=""),rR(y.type=="template"?ee.content:ee,_M(Se)?Se:[Se],y,E,z,Je=="foreignObject"?"http://www.w3.org/1999/xhtml":ne,ie,se,ie?ie[0]:E.__k&&Rb(E,0),ae,he),ie!=null)for(pe=ie.length;pe--;)iN(ie[pe]);ae||(pe="value",Je=="progress"&&De==null?ee.removeAttribute("value"):De!=null&&(De!==ee[pe]||Je=="progress"&&!De||Je=="option"&&De!=Oe[pe])&&RT(ee,pe,De,Oe[pe],ne),pe="checked",Re!=null&&Re!=ee[pe]&&RT(ee,pe,Re,Oe[pe],ne))}return ee}function sN(ee,y,E){try{if(typeof ee=="function"){var z=typeof ee.__u=="function";z&&ee.__u(),z&&y==null||(ee.__u=ee(y))}else ee.current=y}catch(ne){Rd.__e(ne,E)}}function cR(ee,y,E){var z,ne;if(Rd.unmount&&Rd.unmount(ee),(z=ee.ref)&&(z.current&&z.current!=ee.__e||sN(z,null,y)),(z=ee.__c)!=null){if(z.componentWillUnmount)try{z.componentWillUnmount()}catch(ie){Rd.__e(ie,y)}z.base=z.__P=null}if(z=ee.__k)for(ne=0;ne<z.length;ne++)z[ne]&&cR(z[ne],y,E||typeof ee.type!="function");E||iN(ee.__e),ee.__c=ee.__=ee.__e=void 0}function Soe(ee,y,E){return this.constructor(ee,E)}function hR(ee,y,E){var z,ne,ie,se;y==document&&(y=document.documentElement),Rd.__&&Rd.__(ee,y),ne=(z=typeof E=="function")?null:E&&E.__k||y.__k,ie=[],se=[],oN(y,ee=(!z&&E||y).__k=voe(IT,null,[ee]),ne||qM,qM,y.namespaceURI,!z&&E?[E]:ne?null:y.firstChild?JM.call(y.childNodes):null,ie,!z&&E?E:ne?ne.__e:y.firstChild,z,se),lR(ie,ee,se)}function Poe(ee,y){hR(ee,y,Poe)}function dR(ee,y,E){var z,ne,ie,se,ae=_A({},ee.props);for(ie in ee.type&&ee.type.defaultProps&&(se=ee.type.defaultProps),y)ie=="key"?z=y[ie]:ie=="ref"?ne=y[ie]:ae[ie]=y[ie]===void 0&&se!=null?se[ie]:y[ie];return arguments.length>2&&(ae.children=arguments.length>3?JM.call(arguments,2):E),$M(ee.type,ae,z||ee.key,ne||ee.ref,null)}function _he(ee){function y(E){var z,ne;return this.getChildContext||(z=new Set,(ne={})[y.__c]=this,this.getChildContext=function(){return ne},this.componentWillUnmount=function(){z=null},this.shouldComponentUpdate=function(ie){this.props.value!=ie.value&&z.forEach(function(se){se.__e=!0,rN(se)})},this.sub=function(ie){z.add(ie);var se=ie.componentWillUnmount;ie.componentWillUnmount=function(){z&&z.delete(ie),se&&se.call(ie)}}),E.children}return y.__c="__cC"+tR++,y.__=ee,y.Provider=y.__l=(y.Consumer=function(E,z){return E.children(z)}).contextType=y,y}JM=nR.slice,Rd={__e:function(ee,y,E,z){for(var ne,ie,se;y=y.__;)if((ne=y.__c)&&!ne.__)try{if((ie=ne.constructor)&&ie.getDerivedStateFromError!=null&&(ne.setState(ie.getDerivedStateFromError(ee)),se=ne.__d),ne.componentDidCatch!=null&&(ne.componentDidCatch(ee,z||{}),se=ne.__d),se)return ne.__E=ne}catch(ae){ee=ae}throw ee}},KO=0,JO=function(ee){return ee!=null&&ee.constructor==null},kT.prototype.setState=function(ee,y){var E;E=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=_A({},this.state),typeof ee=="function"&&(ee=ee(_A({},E),this.props)),ee&&_A(E,ee),ee!=null&&this.__v&&(y&&this._sb.push(y),rN(this))},kT.prototype.forceUpdate=function(ee){this.__v&&(this.__e=!0,ee&&this.__h.push(ee),rN(this))},kT.prototype.render=IT,lC=[],_O=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$O=function(ee,y){return ee.__v.__b-y.__v.__b},OT.__r=0,eR=/(PointerCapture)$|Capture$/i,eN=0,tN=aR(!1),nN=aR(!0),tR=0;function fR(ee,y){(y==null||y>ee.length)&&(y=ee.length);for(var E=0,z=Array(y);E<y;E++)z[E]=ee[E];return z}function Coe(ee){if(Array.isArray(ee))return ee}function Eoe(ee,y,E){return(y=Noe(y))in ee?Object.defineProperty(ee,y,{value:E,enumerable:!0,configurable:!0,writable:!0}):ee[y]=E,ee}function boe(ee,y){var E=ee==null?null:typeof Symbol!="undefined"&&ee[Symbol.iterator]||ee["@@iterator"];if(E!=null){var z,ne,ie,se,ae=[],he=!0,pe=!1;try{if(ie=(E=E.call(ee)).next,y!==0)for(;!(he=(z=ie.call(E)).done)&&(ae.push(z.value),ae.length!==y);he=!0);}catch(ve){pe=!0,ne=ve}finally{try{if(!he&&E.return!=null&&(se=E.return(),Object(se)!==se))return}finally{if(pe)throw ne}}return ae}}function Moe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pR(ee,y){var E=Object.keys(ee);if(Object.getOwnPropertySymbols){var z=Object.getOwnPropertySymbols(ee);y&&(z=z.filter(function(ne){return Object.getOwnPropertyDescriptor(ee,ne).enumerable})),E.push.apply(E,z)}return E}function Boe(ee){for(var y=1;y<arguments.length;y++){var E=arguments[y]!=null?arguments[y]:{};y%2?pR(Object(E),!0).forEach(function(z){Eoe(ee,z,E[z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(ee,Object.getOwnPropertyDescriptors(E)):pR(Object(E)).forEach(function(z){Object.defineProperty(ee,z,Object.getOwnPropertyDescriptor(E,z))})}return ee}function Toe(ee,y){return Coe(ee)||boe(ee,y)||Foe(ee,y)||Moe()}function Doe(ee,y){if(typeof ee!="object"||!ee)return ee;var E=ee[Symbol.toPrimitive];if(E!==void 0){var z=E.call(ee,y);if(typeof z!="object")return z;throw new TypeError("@@toPrimitive must return a primitive value.")}return(y==="string"?String:Number)(ee)}function Noe(ee){var y=Doe(ee,"string");return typeof y=="symbol"?y:y+""}function zT(ee){"@babel/helpers - typeof";return zT=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(y){return typeof y}:function(y){return y&&typeof Symbol=="function"&&y.constructor===Symbol&&y!==Symbol.prototype?"symbol":typeof y},zT(ee)}function Foe(ee,y){if(ee){if(typeof ee=="string")return fR(ee,y);var E={}.toString.call(ee).slice(8,-1);return E==="Object"&&ee.constructor&&(E=ee.constructor.name),E==="Map"||E==="Set"?Array.from(ee):E==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(E)?fR(ee,y):void 0}}var aN=function(y){if(zT(y)!=="object")return y;var E=dR(y);if(E.props){var z;E.props=Boe({},E.props),E!=null&&(z=E.props)!==null&&z!==void 0&&z.children&&(E.props.children=Array.isArray(E.props.children)?E.props.children.map(aN):aN(E.props.children))}return E},Loe=function(y){return JO(dR(y))},Ioe=function(y,E){delete E.__k,hR(aN(y),E)};function koe(ee,y){y===void 0&&(y={});var E=y.insertAt;if(typeof document!="undefined"){var z=document.head||document.getElementsByTagName("head")[0],ne=document.createElement("style");ne.type="text/css",E==="top"&&z.firstChild?z.insertBefore(ne,z.firstChild):z.appendChild(ne),ne.styleSheet?ne.styleSheet.cssText=ee:ne.appendChild(document.createTextNode(ee))}}var Ooe=`.float-tooltip-kap {
|
|
position: absolute;
|
|
width: max-content; /* prevent shrinking near right edge */
|
|
max-width: max(50%, 150px);
|
|
padding: 3px 5px;
|
|
border-radius: 3px;
|
|
font: 12px sans-serif;
|
|
color: #eee;
|
|
background: rgba(0,0,0,0.6);
|
|
pointer-events: none;
|
|
}
|
|
`;koe(Ooe);var Roe=iB({props:{content:{default:!1},offsetX:{triggerUpdate:!1},offsetY:{triggerUpdate:!1}},init:function(y,E){var z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},ne=z.style,ie=ne===void 0?{}:ne,se=!!y&&zT(y)==="object"&&!!y.node&&typeof y.node=="function",ae=foe(se?y.node():y);ae.style("position")==="static"&&ae.style("position","relative"),E.tooltipEl=ae.append("div").attr("class","float-tooltip-kap"),Object.entries(ie).forEach(function(pe){var ve=Toe(pe,2),xe=ve[0],Se=ve[1];return E.tooltipEl.style(xe,Se)}),E.tooltipEl.style("left","-10000px").style("display","none");var he="tooltip-".concat(Math.round(Math.random()*1e12));E.mouseInside=!1,ae.on("mousemove.".concat(he),function(pe){E.mouseInside=!0;var ve=goe(pe),xe=ae.node(),Se=xe.offsetWidth,Be=xe.offsetHeight,De=[E.offsetX===null||E.offsetX===void 0?"-".concat(ve[0]/Se*100,"%"):typeof E.offsetX=="number"?"calc(-50% + ".concat(E.offsetX,"px)"):E.offsetX,E.offsetY===null||E.offsetY===void 0?Be>130&&Be-ve[1]<100?"calc(-100% - 6px)":"21px":typeof E.offsetY=="number"?E.offsetY<0?"calc(-100% - ".concat(Math.abs(E.offsetY),"px)"):"".concat(E.offsetY,"px"):E.offsetY];E.tooltipEl.style("left",ve[0]+"px").style("top",ve[1]+"px").style("transform","translate(".concat(De.join(","),")")),E.content&&E.tooltipEl.style("display","inline")}),ae.on("mouseover.".concat(he),function(){E.mouseInside=!0,E.content&&E.tooltipEl.style("display","inline")}),ae.on("mouseout.".concat(he),function(){E.mouseInside=!1,E.tooltipEl.style("display","none")})},update:function(y){y.tooltipEl.style("display",y.content&&y.mouseInside?"inline":"none"),y.content?y.content instanceof HTMLElement?(y.tooltipEl.text(""),y.tooltipEl.append(function(){return y.content})):typeof y.content=="string"?y.tooltipEl.html(y.content):Loe(y.content)?(y.tooltipEl.text(""),Ioe(y.content,y.tooltipEl.node())):(y.tooltipEl.style("display","none"),console.warn("Tooltip content is invalid, skipping.",y.content,y.content.toString())):y.tooltipEl.text("")}});function zoe(ee,y){y===void 0&&(y={});var E=y.insertAt;if(typeof document!="undefined"){var z=document.head||document.getElementsByTagName("head")[0],ne=document.createElement("style");ne.type="text/css",E==="top"&&z.firstChild?z.insertBefore(ne,z.firstChild):z.appendChild(ne),ne.styleSheet?ne.styleSheet.cssText=ee:ne.appendChild(document.createTextNode(ee))}}var Uoe=`.scene-nav-info {
|
|
position: absolute;
|
|
bottom: 5px;
|
|
width: 100%;
|
|
text-align: center;
|
|
color: slategrey;
|
|
opacity: 0.7;
|
|
font-size: 10px;
|
|
font-family: sans-serif;
|
|
pointer-events: none;
|
|
user-select: none;
|
|
}
|
|
|
|
.scene-container canvas:focus {
|
|
outline: none;
|
|
}`;zoe(Uoe);function lN(ee,y){(y==null||y>ee.length)&&(y=ee.length);for(var E=0,z=Array(y);E<y;E++)z[E]=ee[E];return z}function Hoe(ee){if(Array.isArray(ee))return ee}function Voe(ee){if(Array.isArray(ee))return lN(ee)}function joe(ee,y,E){return(y=Koe(y))in ee?Object.defineProperty(ee,y,{value:E,enumerable:!0,configurable:!0,writable:!0}):ee[y]=E,ee}function Goe(ee){if(typeof Symbol!="undefined"&&ee[Symbol.iterator]!=null||ee["@@iterator"]!=null)return Array.from(ee)}function Xoe(ee,y){var E=ee==null?null:typeof Symbol!="undefined"&&ee[Symbol.iterator]||ee["@@iterator"];if(E!=null){var z,ne,ie,se,ae=[],he=!0,pe=!1;try{if(ie=(E=E.call(ee)).next,y!==0)for(;!(he=(z=ie.call(E)).done)&&(ae.push(z.value),ae.length!==y);he=!0);}catch(ve){pe=!0,ne=ve}finally{try{if(!he&&E.return!=null&&(se=E.return(),Object(se)!==se))return}finally{if(pe)throw ne}}return ae}}function Woe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qoe(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Zoe(ee,y){return Hoe(ee)||Xoe(ee,y)||gR(ee,y)||Woe()}function uC(ee){return Voe(ee)||Goe(ee)||gR(ee)||Qoe()}function Yoe(ee,y){if(typeof ee!="object"||!ee)return ee;var E=ee[Symbol.toPrimitive];if(E!==void 0){var z=E.call(ee,y);if(typeof z!="object")return z;throw new TypeError("@@toPrimitive must return a primitive value.")}return(y==="string"?String:Number)(ee)}function Koe(ee){var y=Yoe(ee,"string");return typeof y=="symbol"?y:y+""}function gR(ee,y){if(ee){if(typeof ee=="string")return lN(ee,y);var E={}.toString.call(ee).slice(8,-1);return E==="Object"&&ee.constructor&&(E=ee.constructor.name),E==="Map"||E==="Set"?Array.from(ee):E==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(E)?lN(ee,y):void 0}}var zd=window.THREE?window.THREE:{WebGLRenderer:YW,Scene:Pw,PerspectiveCamera:Bd,Raycaster:Zm,SRGBColorSpace:Wf,TextureLoader:ep,Vector2:Yr,Vector3:yn,Box3:Zf,Color:ia,Mesh:Bc,SphereGeometry:ym,MeshBasicMaterial:Yd,BackSide:wc,Clock:A1},mR=iB({props:{width:{default:window.innerWidth,onChange:function(y,E,z){isNaN(y)&&(E.width=z)}},height:{default:window.innerHeight,onChange:function(y,E,z){isNaN(y)&&(E.height=z)}},viewOffset:{default:[0,0]},backgroundColor:{default:"#000011"},backgroundImageUrl:{},onBackgroundImageLoaded:{},showNavInfo:{default:!0},skyRadius:{default:5e4},objects:{default:[]},lights:{default:[]},enablePointerInteraction:{default:!0,onChange:function(y,E){E.hoverObj=null,E.tooltip&&E.tooltip.content(null)},triggerUpdate:!1},pointerRaycasterThrottleMs:{default:50,triggerUpdate:!1},lineHoverPrecision:{default:1,triggerUpdate:!1},pointsHoverPrecision:{default:1,triggerUpdate:!1},hoverOrderComparator:{triggerUpdate:!1},hoverFilter:{default:function(){return!0},triggerUpdate:!1},tooltipContent:{triggerUpdate:!1},hoverDuringDrag:{default:!1,triggerUpdate:!1},clickAfterDrag:{default:!1,triggerUpdate:!1},onHover:{default:function(){},triggerUpdate:!1},onClick:{default:function(){},triggerUpdate:!1},onRightClick:{triggerUpdate:!1}},methods:{tick:function(y){if(y.initialised){y.controls.enabled&&y.controls.update&&y.controls.update(Math.min(1,y.clock.getDelta())),y.postProcessingComposer?y.postProcessingComposer.render():y.renderer.render(y.scene,y.camera),y.extraRenderers.forEach(function(se){return se.render(y.scene,y.camera)});var E=+new Date;if(y.enablePointerInteraction&&E-y.lastRaycasterCheck>=y.pointerRaycasterThrottleMs){y.lastRaycasterCheck=E;var z=null;if(y.hoverDuringDrag||!y.isPointerDragging){var ne=this.intersectingObjects(y.pointerPos.x,y.pointerPos.y);y.hoverOrderComparator&&ne.sort(function(se,ae){return y.hoverOrderComparator(se.object,ae.object)});var ie=ne.find(function(se){return y.hoverFilter(se.object)})||null;z=ie?ie.object:null,y.intersection=ie||null}z!==y.hoverObj&&(y.onHover(z,y.hoverObj,y.intersection),y.tooltip.content(z&&Xc(y.tooltipContent)(z,y.intersection)||null),y.hoverObj=z)}y.tweenGroup.update()}return this},getPointerPos:function(y){var E=y.pointerPos,z=E.x,ne=E.y;return{x:z,y:ne}},cameraPosition:function(y,E,z,ne){var ie=y.camera;if(E&&y.initialised){var se=E,ae=z||{x:0,y:0,z:0};if(!ne)ve(se),xe(ae);else{var he=Object.assign({},ie.position),pe=Se();y.tweenGroup.add(new q6(he).to(se,ne).easing(fS.Quadratic.Out).onUpdate(ve).start()),y.tweenGroup.add(new q6(pe).to(ae,ne/3).easing(fS.Quadratic.Out).onUpdate(xe).start())}return this}return Object.assign({},ie.position,{lookAt:Se()});function ve(Be){var De=Be.x,Re=Be.y,Oe=Be.z;De!==void 0&&(ie.position.x=De),Re!==void 0&&(ie.position.y=Re),Oe!==void 0&&(ie.position.z=Oe)}function xe(Be){var De=new zd.Vector3(Be.x,Be.y,Be.z);y.controls.target?y.controls.target=De:ie.lookAt(De)}function Se(){return Object.assign(new zd.Vector3(0,0,-1e3).applyQuaternion(ie.quaternion).add(ie.position))}},zoomToFit:function(y){for(var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,ne=arguments.length,ie=new Array(ne>3?ne-3:0),se=3;se<ne;se++)ie[se-3]=arguments[se];return this.fitToBbox(this.getBbox.apply(this,ie),E,z)},fitToBbox:function(y,E){var z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,ne=arguments.length>3&&arguments[3]!==void 0?arguments[3]:10,ie=y.camera;if(E){var se=new zd.Vector3(0,0,0),ae=Math.max.apply(Math,uC(Object.entries(E).map(function(Be){var De=Zoe(Be,2),Re=De[0],Oe=De[1];return Math.max.apply(Math,uC(Oe.map(function(Le){return Math.abs(se[Re]-Le)})))})))*2,he=(1-ne*2/y.height)*ie.fov,pe=ae/Math.atan(he*Math.PI/180),ve=pe/ie.aspect,xe=Math.max(pe,ve);if(xe>0){var Se=se.clone().sub(ie.position).normalize().multiplyScalar(-xe);this.cameraPosition(Se,se,z)}}return this},getBbox:function(y){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){return!0},z=new zd.Box3(new zd.Vector3(0,0,0),new zd.Vector3(0,0,0)),ne=y.objects.filter(E);return ne.length?(ne.forEach(function(ie){return z.expandByObject(ie)}),Object.assign.apply(Object,uC(["x","y","z"].map(function(ie){return joe({},ie,[z.min[ie],z.max[ie]])})))):null},getScreenCoords:function(y,E,z,ne){var ie=new zd.Vector3(E,z,ne);return ie.project(this.camera()),{x:(ie.x+1)*y.width/2,y:-(ie.y-1)*y.height/2}},getSceneCoords:function(y,E,z){var ne=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,ie=new zd.Vector2(E/y.width*2-1,-(z/y.height)*2+1),se=new zd.Raycaster;return se.setFromCamera(ie,y.camera),Object.assign({},se.ray.at(ne,new zd.Vector3))},intersectingObjects:function(y,E,z){var ne=new zd.Vector2(E/y.width*2-1,-(z/y.height)*2+1),ie=new zd.Raycaster;return ie.params.Line.threshold=y.lineHoverPrecision,ie.params.Points.threshold=y.pointsHoverPrecision,ie.setFromCamera(ne,y.camera),ie.intersectObjects(y.objects,!0)},renderer:function(y){return y.renderer},scene:function(y){return y.scene},camera:function(y){return y.camera},postProcessingComposer:function(y){return y.postProcessingComposer},controls:function(y){return y.controls},tbControls:function(y){return y.controls}},stateInit:function(){return{scene:new zd.Scene,camera:new zd.PerspectiveCamera,clock:new zd.Clock,tweenGroup:new Y6,lastRaycasterCheck:0}},init:function(y,E){var z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},ne=z.controlType,ie=ne===void 0?"trackball":ne,se=z.useWebGPU,ae=se===void 0?!1:se,he=z.rendererConfig,pe=he===void 0?{}:he,ve=z.extraRenderers,xe=ve===void 0?[]:ve,Se=z.waitForLoadComplete,Be=Se===void 0?!0:Se;y.innerHTML="",y.appendChild(E.container=document.createElement("div")),E.container.className="scene-container",E.container.style.position="relative",E.container.appendChild(E.navInfo=document.createElement("div")),E.navInfo.className="scene-nav-info",E.navInfo.textContent={orbit:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",trackball:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",fly:"WASD: move, R|F: up | down, Q|E: roll, up|down: pitch, left|right: yaw"}[ie]||"",E.navInfo.style.display=E.showNavInfo?null:"none",E.tooltip=new Roe(E.container),E.pointerPos=new zd.Vector2,E.pointerPos.x=-2,E.pointerPos.y=-2,["pointermove","pointerdown"].forEach(function(De){return E.container.addEventListener(De,function(Re){if(De==="pointerdown"&&(E.isPointerPressed=!0),!E.isPointerDragging&&Re.type==="pointermove"&&(Re.pressure>0||E.isPointerPressed)&&(Re.pointerType!=="touch"||Re.movementX===void 0||[Re.movementX,Re.movementY].some(function(Je){return Math.abs(Je)>1}))&&(E.isPointerDragging=!0),E.enablePointerInteraction){var Oe=Le(E.container);E.pointerPos.x=Re.pageX-Oe.left,E.pointerPos.y=Re.pageY-Oe.top}function Le(Je){var $e=Je.getBoundingClientRect(),_e=window.pageXOffset||document.documentElement.scrollLeft,st=window.pageYOffset||document.documentElement.scrollTop;return{top:$e.top+st,left:$e.left+_e}}},{passive:!0})}),E.container.addEventListener("pointerup",function(De){E.isPointerPressed&&(E.isPointerPressed=!1,!(E.isPointerDragging&&(E.isPointerDragging=!1,!E.clickAfterDrag))&&requestAnimationFrame(function(){De.button===0&&E.onClick(E.hoverObj||null,De,E.intersection),De.button===2&&E.onRightClick&&E.onRightClick(E.hoverObj||null,De,E.intersection)}))},{passive:!0,capture:!0}),E.container.addEventListener("contextmenu",function(De){E.onRightClick&&De.preventDefault()}),E.renderer=new(ae?rte:zd.WebGLRenderer)(Object.assign({antialias:!0,alpha:!0},pe)),E.renderer.setPixelRatio(Math.min(2,window.devicePixelRatio)),E.container.appendChild(E.renderer.domElement),E.extraRenderers=xe,E.extraRenderers.forEach(function(De){De.domElement.style.position="absolute",De.domElement.style.top="0px",De.domElement.style.pointerEvents="none",E.container.appendChild(De.domElement)}),E.postProcessingComposer=new $te(E.renderer),E.postProcessingComposer.addPass(new ene(E.scene,E.camera)),E.controls=new{trackball:lte,orbit:Cte,fly:zte}[ie](E.camera,E.renderer.domElement),ie==="fly"&&(E.controls.movementSpeed=300,E.controls.rollSpeed=Math.PI/6,E.controls.dragToLook=!0),(ie==="trackball"||ie==="orbit")&&(E.controls.minDistance=.1,E.controls.maxDistance=E.skyRadius,E.controls.addEventListener("start",function(){E.controlsEngaged=!0}),E.controls.addEventListener("change",function(){E.controlsEngaged&&(E.controlsDragging=!0)}),E.controls.addEventListener("end",function(){E.controlsEngaged=!1,E.controlsDragging=!1})),[E.renderer,E.postProcessingComposer].concat(uC(E.extraRenderers)).forEach(function(De){return De.setSize(E.width,E.height)}),E.camera.aspect=E.width/E.height,E.camera.updateProjectionMatrix(),E.camera.position.z=1e3,E.scene.add(E.skysphere=new zd.Mesh),E.skysphere.visible=!1,E.loadComplete=E.scene.visible=!Be,window.scene=E.scene},update:function(y,E){if(y.width&&y.height&&(E.hasOwnProperty("width")||E.hasOwnProperty("height"))){var z,ne=y.width,ie=y.height;y.container.style.width="".concat(ne,"px"),y.container.style.height="".concat(ie,"px"),[y.renderer,y.postProcessingComposer].concat(uC(y.extraRenderers)).forEach(function(Be){return Be.setSize(ne,ie)}),y.camera.aspect=ne/ie;var se=y.viewOffset.slice(0,2);se.some(function(Be){return Be})&&(z=y.camera).setViewOffset.apply(z,[ne,ie].concat(uC(se),[ne,ie])),y.camera.updateProjectionMatrix()}if(E.hasOwnProperty("viewOffset")){var ae,he=y.width,pe=y.height,ve=y.viewOffset.slice(0,2);ve.some(function(Be){return Be})?(ae=y.camera).setViewOffset.apply(ae,[he,pe].concat(uC(ve),[he,pe])):y.camera.clearViewOffset()}if(E.hasOwnProperty("skyRadius")&&y.skyRadius&&(y.controls.hasOwnProperty("maxDistance")&&E.skyRadius&&(y.controls.maxDistance=Math.min(y.controls.maxDistance,y.skyRadius)),y.camera.far=y.skyRadius*2.5,y.camera.updateProjectionMatrix(),y.skysphere.geometry=new zd.SphereGeometry(y.skyRadius)),E.hasOwnProperty("backgroundColor")){var xe=R1(y.backgroundColor).alpha;xe===void 0&&(xe=1),y.renderer.setClearColor(new zd.Color(cie(1,y.backgroundColor)),xe)}E.hasOwnProperty("backgroundImageUrl")&&(y.backgroundImageUrl?new zd.TextureLoader().load(y.backgroundImageUrl,function(Be){Be.colorSpace=zd.SRGBColorSpace,y.skysphere.material=new zd.MeshBasicMaterial({map:Be,side:zd.BackSide}),y.skysphere.visible=!0,y.onBackgroundImageLoaded&&setTimeout(y.onBackgroundImageLoaded),!y.loadComplete&&Se()}):(y.skysphere.visible=!1,y.skysphere.material.map=null,!y.loadComplete&&Se())),E.hasOwnProperty("showNavInfo")&&(y.navInfo.style.display=y.showNavInfo?null:"none"),E.hasOwnProperty("lights")&&((E.lights||[]).forEach(function(Be){return y.scene.remove(Be)}),y.lights.forEach(function(Be){return y.scene.add(Be)})),E.hasOwnProperty("objects")&&((E.objects||[]).forEach(function(Be){return y.scene.remove(Be)}),y.objects.forEach(function(Be){return y.scene.add(Be)}));function Se(){y.loadComplete=y.scene.visible=!0}}});function Joe(ee,y){y===void 0&&(y={});var E=y.insertAt;if(typeof document!="undefined"){var z=document.head||document.getElementsByTagName("head")[0],ne=document.createElement("style");ne.type="text/css",E==="top"&&z.firstChild?z.insertBefore(ne,z.firstChild):z.appendChild(ne),ne.styleSheet?ne.styleSheet.cssText=ee:ne.appendChild(document.createTextNode(ee))}}var qoe=`.graph-info-msg {
|
|
top: 50%;
|
|
width: 100%;
|
|
text-align: center;
|
|
color: lavender;
|
|
opacity: 0.7;
|
|
font-size: 22px;
|
|
position: absolute;
|
|
font-family: Sans-serif;
|
|
}
|
|
|
|
.scene-container .clickable {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.scene-container .grabbable {
|
|
cursor: move;
|
|
cursor: grab;
|
|
cursor: -moz-grab;
|
|
cursor: -webkit-grab;
|
|
}
|
|
|
|
.scene-container .grabbable:active {
|
|
cursor: grabbing;
|
|
cursor: -moz-grabbing;
|
|
cursor: -webkit-grabbing;
|
|
}`;Joe(qoe);function uN(ee,y){(y==null||y>ee.length)&&(y=ee.length);for(var E=0,z=Array(y);E<y;E++)z[E]=ee[E];return z}function _oe(ee){if(Array.isArray(ee))return uN(ee)}function e5(ee,y,E){return(y=nse(y))in ee?Object.defineProperty(ee,y,{value:E,enumerable:!0,configurable:!0,writable:!0}):ee[y]=E,ee}function $oe(ee){if(typeof Symbol!="undefined"&&ee[Symbol.iterator]!=null||ee["@@iterator"]!=null)return Array.from(ee)}function ese(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vR(ee,y){var E=Object.keys(ee);if(Object.getOwnPropertySymbols){var z=Object.getOwnPropertySymbols(ee);y&&(z=z.filter(function(ne){return Object.getOwnPropertyDescriptor(ee,ne).enumerable})),E.push.apply(E,z)}return E}function UT(ee){for(var y=1;y<arguments.length;y++){var E=arguments[y]!=null?arguments[y]:{};y%2?vR(Object(E),!0).forEach(function(z){e5(ee,z,E[z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(ee,Object.getOwnPropertyDescriptors(E)):vR(Object(E)).forEach(function(z){Object.defineProperty(ee,z,Object.getOwnPropertyDescriptor(E,z))})}return ee}function HT(ee){return _oe(ee)||$oe(ee)||ise(ee)||ese()}function tse(ee,y){if(typeof ee!="object"||!ee)return ee;var E=ee[Symbol.toPrimitive];if(E!==void 0){var z=E.call(ee,y);if(typeof z!="object")return z;throw new TypeError("@@toPrimitive must return a primitive value.")}return(y==="string"?String:Number)(ee)}function nse(ee){var y=tse(ee,"string");return typeof y=="symbol"?y:y+""}function ise(ee,y){if(ee){if(typeof ee=="string")return uN(ee,y);var E={}.toString.call(ee).slice(8,-1);return E==="Object"&&ee.constructor&&(E=ee.constructor.name),E==="Map"||E==="Set"?Array.from(ee):E==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(E)?uN(ee,y):void 0}}function yR(ee,y){var E=new y;return E._destructor&&E._destructor(),{linkProp:function(ne){return{default:E[ne](),onChange:function(se,ae){ae[ee][ne](se)},triggerUpdate:!1}},linkMethod:function(ne){return function(ie){for(var se=ie[ee],ae=arguments.length,he=new Array(ae>1?ae-1:0),pe=1;pe<ae;pe++)he[pe-1]=arguments[pe];var ve=se[ne].apply(se,he);return ve===se?this:ve}}}}var cN=window.THREE?window.THREE:{AmbientLight:v1,DirectionalLight:Qw,REVISION:cg},rse=170,AR=yR("forceGraph",MF),ose=Object.assign.apply(Object,HT(["jsonUrl","graphData","numDimensions","dagMode","dagLevelDistance","dagNodeFilter","onDagError","nodeRelSize","nodeId","nodeVal","nodeResolution","nodeColor","nodeAutoColorBy","nodeOpacity","nodeVisibility","nodeThreeObject","nodeThreeObjectExtend","nodePositionUpdate","linkSource","linkTarget","linkVisibility","linkColor","linkAutoColorBy","linkOpacity","linkWidth","linkResolution","linkCurvature","linkCurveRotation","linkMaterial","linkThreeObject","linkThreeObjectExtend","linkPositionUpdate","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalArrowResolution","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleResolution","forceEngine","d3AlphaDecay","d3VelocityDecay","d3AlphaMin","ngraphPhysics","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"].map(function(ee){return e5({},ee,AR.linkProp(ee))}))),sse=Object.assign.apply(Object,HT(["refresh","getGraphBbox","d3Force","d3ReheatSimulation","emitParticle"].map(function(ee){return e5({},ee,AR.linkMethod(ee))}))),VT=yR("renderObjs",mR),ase=Object.assign.apply(Object,HT(["width","height","backgroundColor","showNavInfo","enablePointerInteraction"].map(function(ee){return e5({},ee,VT.linkProp(ee))}))),lse=Object.assign.apply(Object,HT(["lights","cameraPosition","postProcessingComposer"].map(function(ee){return e5({},ee,VT.linkMethod(ee))})).concat([{graph2ScreenCoords:VT.linkMethod("getScreenCoords"),screen2GraphCoords:VT.linkMethod("getSceneCoords")}])),use=iB({props:UT(UT({nodeLabel:{default:"name",triggerUpdate:!1},linkLabel:{default:"name",triggerUpdate:!1},linkHoverPrecision:{default:1,onChange:function(y,E){return E.renderObjs.lineHoverPrecision(y)},triggerUpdate:!1},enableNavigationControls:{default:!0,onChange:function(y,E){var z=E.renderObjs.controls();z&&(z.enabled=y,y&&z.domElement&&z.domElement.dispatchEvent(new PointerEvent("pointerup")))},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1}},ose),ase),methods:UT(UT({zoomToFit:function(y,E,z){for(var ne,ie=arguments.length,se=new Array(ie>3?ie-3:0),ae=3;ae<ie;ae++)se[ae-3]=arguments[ae];return y.renderObjs.fitToBbox((ne=y.forceGraph).getGraphBbox.apply(ne,se),E,z),this},pauseAnimation:function(y){return y.animationFrameRequestId!==null&&(cancelAnimationFrame(y.animationFrameRequestId),y.animationFrameRequestId=null),this},resumeAnimation:function(y){return y.animationFrameRequestId===null&&this._animationCycle(),this},_animationCycle:function(y){y.enablePointerInteraction&&(this.renderer().domElement.style.cursor=null),y.forceGraph.tickFrame(),y.renderObjs.tick(),y.animationFrameRequestId=requestAnimationFrame(this._animationCycle)},scene:function(y){return y.renderObjs.scene()},camera:function(y){return y.renderObjs.camera()},renderer:function(y){return y.renderObjs.renderer()},controls:function(y){return y.renderObjs.controls()},tbControls:function(y){return y.renderObjs.tbControls()},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},sse),lse),stateInit:function(y){var E=y.controlType,z=y.rendererConfig,ne=y.extraRenderers,ie=new MF;return{forceGraph:ie,renderObjs:mR({controlType:E,rendererConfig:z,extraRenderers:ne}).objects([ie]).lights([new cN.AmbientLight(13421772,Math.PI),new cN.DirectionalLight(16777215,.6*Math.PI)])}},init:function(y,E){y.innerHTML="",y.appendChild(E.container=document.createElement("div")),E.container.style.position="relative";var z=document.createElement("div");E.container.appendChild(z),E.renderObjs(z);var ne=E.renderObjs.camera(),ie=E.renderObjs.renderer(),se=E.renderObjs.controls();se.enabled=!!E.enableNavigationControls,E.lastSetCameraZ=ne.position.z;var ae;E.container.appendChild(ae=document.createElement("div")),ae.className="graph-info-msg",ae.textContent="",E.forceGraph.onLoading(function(){ae.textContent="Loading..."}).onFinishLoading(function(){ae.textContent=""}).onUpdate(function(){E.graphData=E.forceGraph.graphData(),ne.position.x===0&&ne.position.y===0&&ne.position.z===E.lastSetCameraZ&&E.graphData.nodes.length&&(ne.lookAt(E.forceGraph.position),E.lastSetCameraZ=ne.position.z=Math.cbrt(E.graphData.nodes.length)*rse)}).onFinishUpdate(function(){if(E._dragControls){var he=E.graphData.nodes.find(function(ve){return ve.__initialFixedPos&&!ve.__disposeControlsAfterDrag});he?he.__disposeControlsAfterDrag=!0:E._dragControls.dispose(),E._dragControls=void 0}if(E.enableNodeDrag&&E.enablePointerInteraction&&E.forceEngine==="d3"){var pe=E._dragControls=new dU(E.graphData.nodes.map(function(ve){return ve.__threeObj}).filter(function(ve){return ve}),ne,ie.domElement);pe.addEventListener("dragstart",function(ve){var xe=z1(ve.object);if(xe){se.enabled=!1,ve.object.__initialPos=ve.object.position.clone(),ve.object.__prevPos=ve.object.position.clone();var Se=xe.__data;!Se.__initialFixedPos&&(Se.__initialFixedPos={fx:Se.fx,fy:Se.fy,fz:Se.fz}),!Se.__initialPos&&(Se.__initialPos={x:Se.x,y:Se.y,z:Se.z}),["x","y","z"].forEach(function(Be){return Se["f".concat(Be)]=Se[Be]}),ie.domElement.classList.add("grabbable")}}),pe.addEventListener("drag",function(ve){var xe=z1(ve.object);if(xe){if(!ve.object.hasOwnProperty("__graphObjType")){var Se=ve.object.__initialPos,Be=ve.object.__prevPos,De=ve.object.position;xe.position.add(De.clone().sub(Be)),Be.copy(De),De.copy(Se)}var Re=xe.__data,Oe=xe.position,Le={x:Oe.x-Re.x,y:Oe.y-Re.y,z:Oe.z-Re.z};["x","y","z"].forEach(function(Je){return Re["f".concat(Je)]=Re[Je]=Oe[Je]}),E.forceGraph.d3AlphaTarget(.3).resetCountdown(),Re.__dragged=!0,E.onNodeDrag(Re,Le)}}),pe.addEventListener("dragend",function(ve){var xe=z1(ve.object);if(xe){delete ve.object.__initialPos,delete ve.object.__prevPos;var Se=xe.__data;Se.__disposeControlsAfterDrag&&(pe.dispose(),delete Se.__disposeControlsAfterDrag);var Be=Se.__initialFixedPos,De=Se.__initialPos,Re={x:De.x-Se.x,y:De.y-Se.y,z:De.z-Se.z};Be&&(["x","y","z"].forEach(function(Oe){var Le="f".concat(Oe);Be[Le]===void 0&&delete Se[Le]}),delete Se.__initialFixedPos,delete Se.__initialPos,Se.__dragged&&(delete Se.__dragged,E.onNodeDragEnd(Se,Re))),E.forceGraph.d3AlphaTarget(0).resetCountdown(),E.enableNavigationControls&&(se.enabled=!0,se.domElement&&se.domElement.ownerDocument&&se.domElement.ownerDocument.dispatchEvent(new PointerEvent("pointerup",{pointerType:"touch"}))),ie.domElement.classList.remove("grabbable")}})}}),cN.REVISION<155&&(E.renderObjs.renderer().useLegacyLights=!1),E.renderObjs.hoverOrderComparator(function(he,pe){var ve=z1(he);if(!ve)return 1;var xe=z1(pe);if(!xe)return-1;var Se=function(De){return De.__graphObjType==="node"};return Se(xe)-Se(ve)}).tooltipContent(function(he){var pe=z1(he);return pe&&Xc(E["".concat(pe.__graphObjType,"Label")])(pe.__data)||""}).hoverDuringDrag(!1).onHover(function(he){var pe=z1(he);if(pe!==E.hoverObj){var ve=E.hoverObj?E.hoverObj.__graphObjType:null,xe=E.hoverObj?E.hoverObj.__data:null,Se=pe?pe.__graphObjType:null,Be=pe?pe.__data:null;if(ve&&ve!==Se){var De=E["on".concat(ve==="node"?"Node":"Link","Hover")];De&&De(null,xe)}if(Se){var Re=E["on".concat(Se==="node"?"Node":"Link","Hover")];Re&&Re(Be,ve===Se?xe:null)}ie.domElement.classList[pe&&E["on".concat(Se==="node"?"Node":"Link","Click")]||!pe&&E.onBackgroundClick?"add":"remove"]("clickable"),E.hoverObj=pe}}).clickAfterDrag(!1).onClick(function(he,pe){var ve=z1(he);if(ve){var xe=E["on".concat(ve.__graphObjType==="node"?"Node":"Link","Click")];xe&&xe(ve.__data,pe)}else E.onBackgroundClick&&E.onBackgroundClick(pe)}).onRightClick(function(he,pe){var ve=z1(he);if(ve){var xe=E["on".concat(ve.__graphObjType==="node"?"Node":"Link","RightClick")];xe&&xe(ve.__data,pe)}else E.onBackgroundRightClick&&E.onBackgroundRightClick(pe)}),this._animationCycle()}});function z1(ee){for(var y=ee;y&&!y.hasOwnProperty("__graphObjType");)y=y.parent;return y}var pr=je(12708);const jT={width:pr.number,height:pr.number,graphData:pr.shape({nodes:pr.arrayOf(pr.object).isRequired,links:pr.arrayOf(pr.object).isRequired}),backgroundColor:pr.string,nodeRelSize:pr.number,nodeId:pr.string,nodeLabel:pr.oneOfType([pr.string,pr.func]),nodeVal:pr.oneOfType([pr.number,pr.string,pr.func]),nodeVisibility:pr.oneOfType([pr.bool,pr.string,pr.func]),nodeColor:pr.oneOfType([pr.string,pr.func]),nodeAutoColorBy:pr.oneOfType([pr.string,pr.func]),onNodeHover:pr.func,onNodeClick:pr.func,linkSource:pr.string,linkTarget:pr.string,linkLabel:pr.oneOfType([pr.string,pr.func]),linkVisibility:pr.oneOfType([pr.bool,pr.string,pr.func]),linkColor:pr.oneOfType([pr.string,pr.func]),linkAutoColorBy:pr.oneOfType([pr.string,pr.func]),linkWidth:pr.oneOfType([pr.number,pr.string,pr.func]),linkCurvature:pr.oneOfType([pr.number,pr.string,pr.func]),linkDirectionalArrowLength:pr.oneOfType([pr.number,pr.string,pr.func]),linkDirectionalArrowColor:pr.oneOfType([pr.string,pr.func]),linkDirectionalArrowRelPos:pr.oneOfType([pr.number,pr.string,pr.func]),linkDirectionalParticles:pr.oneOfType([pr.number,pr.string,pr.func]),linkDirectionalParticleSpeed:pr.oneOfType([pr.number,pr.string,pr.func]),linkDirectionalParticleWidth:pr.oneOfType([pr.number,pr.string,pr.func]),linkDirectionalParticleColor:pr.oneOfType([pr.string,pr.func]),onLinkHover:pr.func,onLinkClick:pr.func,dagMode:pr.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:pr.number,dagNodeFilter:pr.func,onDagError:pr.func,d3AlphaMin:pr.number,d3AlphaDecay:pr.number,d3VelocityDecay:pr.number,warmupTicks:pr.number,cooldownTicks:pr.number,cooldownTime:pr.number,onEngineTick:pr.func,onEngineStop:pr.func,getGraphBbox:pr.func},xR={zoomToFit:pr.func,onNodeRightClick:pr.func,onNodeDrag:pr.func,onNodeDragEnd:pr.func,onLinkRightClick:pr.func,linkHoverPrecision:pr.number,onBackgroundClick:pr.func,onBackgroundRightClick:pr.func,enablePointerInteraction:pr.bool,enableNodeDrag:pr.bool},hN={showNavInfo:pr.bool,nodeOpacity:pr.number,nodeResolution:pr.number,nodeThreeObject:pr.oneOfType([pr.object,pr.string,pr.func]),nodeThreeObjectExtend:pr.oneOfType([pr.bool,pr.string,pr.func]),linkOpacity:pr.number,linkResolution:pr.number,linkCurveRotation:pr.oneOfType([pr.number,pr.string,pr.func]),linkMaterial:pr.oneOfType([pr.object,pr.string,pr.func]),linkThreeObject:pr.oneOfType([pr.object,pr.string,pr.func]),linkThreeObjectExtend:pr.oneOfType([pr.bool,pr.string,pr.func]),linkPositionUpdate:pr.func,linkDirectionalArrowResolution:pr.number,linkDirectionalParticleResolution:pr.number,forceEngine:pr.oneOf(["d3","ngraph"]),ngraphPhysics:pr.object,numDimensions:pr.oneOf([1,2,3])};Object.assign({},jT,xR,{linkLineDash:pr.oneOfType([pr.arrayOf(pr.number),pr.string,pr.func]),nodeCanvasObjectMode:pr.oneOfType([pr.string,pr.func]),nodeCanvasObject:pr.func,nodePointerAreaPaint:pr.func,linkCanvasObjectMode:pr.oneOfType([pr.string,pr.func]),linkCanvasObject:pr.func,linkPointerAreaPaint:pr.func,autoPauseRedraw:pr.bool,minZoom:pr.number,maxZoom:pr.number,enableZoomInteraction:pr.oneOfType([pr.bool,pr.func]),enablePanInteraction:pr.oneOfType([pr.bool,pr.func]),onZoom:pr.func,onZoomEnd:pr.func,onRenderFramePre:pr.func,onRenderFramePost:pr.func});const cse=Object.assign({},jT,xR,hN,{enableNavigationControls:pr.bool,controlType:pr.oneOf(["trackball","orbit","fly"]),rendererConfig:pr.object,extraRenderers:pr.arrayOf(pr.shape({render:pr.func.isRequired}))});Object.assign({},jT,hN,{nodeDesc:pr.oneOfType([pr.string,pr.func]),linkDesc:pr.oneOfType([pr.string,pr.func])}),Object.assign({},jT,hN,{markerAttrs:pr.object,yOffset:pr.number,glScale:pr.number});const dN=kS(use,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","cameraPosition","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords","postProcessingComposer","lights","scene","camera","renderer","controls","refresh"],initPropNames:["controlType","rendererConfig","extraRenderers"]});dN.displayName="ForceGraph3D",dN.propTypes=cse;function fN(ee){return ee.x+ee.vx}function wR(ee){return ee.y+ee.vy}function hse(ee){return ee.z+ee.vz}function dse(ee){var y,E,z,ne,ie=1,se=1;typeof ee!="function"&&(ee=Ly(ee==null?1:+ee));function ae(){for(var ve,xe=y.length,Se,Be,De,Re,Oe,Le,Je,$e=0;$e<se;++$e)for(Se=(E===1?P3(y,fN):E===2?(0,HN.Z)(y,fN,wR):E===3?(0,VN.Z)(y,fN,wR,hse):null).visitAfter(he),ve=0;ve<xe;++ve)Be=y[ve],Le=z[Be.index],Je=Le*Le,De=Be.x+Be.vx,E>1&&(Re=Be.y+Be.vy),E>2&&(Oe=Be.z+Be.vz),Se.visit(_e);function _e(st,ct,ut,ht,pt,gt,zt){var cn=[ct,ut,ht,pt,gt,zt],Tn=cn[0],Zn=cn[1],Nn=cn[2],di=cn[E],yi=cn[E+1],bn=cn[E+2],Sn=st.data,ki=st.r,ti=Le+ki;if(Sn){if(Sn.index>Be.index){var fn=De-Sn.x-Sn.vx,Bi=E>1?Re-Sn.y-Sn.vy:0,jn=E>2?Oe-Sn.z-Sn.vz:0,ei=fn*fn+Bi*Bi+jn*jn;ei<ti*ti&&(fn===0&&(fn=Av(ne),ei+=fn*fn),E>1&&Bi===0&&(Bi=Av(ne),ei+=Bi*Bi),E>2&&jn===0&&(jn=Av(ne),ei+=jn*jn),ei=(ti-(ei=Math.sqrt(ei)))/ei*ie,Be.vx+=(fn*=ei)*(ti=(ki*=ki)/(Je+ki)),E>1&&(Be.vy+=(Bi*=ei)*ti),E>2&&(Be.vz+=(jn*=ei)*ti),Sn.vx-=fn*(ti=1-ti),E>1&&(Sn.vy-=Bi*ti),E>2&&(Sn.vz-=jn*ti))}return}return Tn>De+ti||di<De-ti||E>1&&(Zn>Re+ti||yi<Re-ti)||E>2&&(Nn>Oe+ti||bn<Oe-ti)}}function he(ve){if(ve.data)return ve.r=z[ve.data.index];for(var xe=ve.r=0;xe<Math.pow(2,E);++xe)ve[xe]&&ve[xe].r>ve.r&&(ve.r=ve[xe].r)}function pe(){if(y){var ve,xe=y.length,Se;for(z=new Array(xe),ve=0;ve<xe;++ve)Se=y[ve],z[Se.index]=+ee(Se,ve,y)}}return ae.initialize=function(ve,...xe){y=ve,ne=xe.find(Se=>typeof Se=="function")||Math.random,E=xe.find(Se=>[1,2,3].includes(Se))||2,pe()},ae.iterations=function(ve){return arguments.length?(se=+ve,ae):se},ae.strength=function(ve){return arguments.length?(ie=+ve,ae):ie},ae.radius=function(ve){return arguments.length?(ee=typeof ve=="function"?ve:Ly(+ve),pe(),ae):ee},ae}var SR=je(59301),fse=Object.defineProperty,pse=Object.defineProperties,gse=Object.getOwnPropertyDescriptors,PR=Object.getOwnPropertySymbols,mse=Object.prototype.hasOwnProperty,vse=Object.prototype.propertyIsEnumerable,CR=(ee,y,E)=>y in ee?fse(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,pN=(ee,y)=>{for(var E in y||(y={}))mse.call(y,E)&&CR(ee,E,y[E]);if(PR)for(var E of PR(y))vse.call(y,E)&&CR(ee,E,y[E]);return ee},gN=(ee,y)=>pse(ee,gse(y)),yse=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const ER=new Tu,Ase=new Float32Array([0,.5,0,-.5,-.5,0,.5,-.5,0]);ER.setAttribute("position",new rh(Ase,3));const xse=new Yd({color:"#FF4500",side:Fh,transparent:!0,opacity:.8}),mN=new Map,bR=ee=>(mN.has(ee)||mN.set(ee,new Xw({transparent:!1,color:ee})),mN.get(ee)),$he=(ee,y)=>{const E=ee.getParentData(y.id,"tree");return E?y.style.x>E.style.x?"right":"left":"center"},vN=[20,15,10],MR=[{name:"\u6839\u8282\u70B9",src:"/images/one.svg",color:"#CC7CF5"},{name:"\u8BFE\u7A0B",src:"/images/kc.svg",color:"#3241F7"},{name:"\u7AE0\u8282",src:"/images/zj.svg",color:"#5e54e7"},{name:"\u77E5\u8BC6\u70B9",src:"/images/zsd.svg",color:"#FFDF55"},{name:"\u5B9E\u8BAD",src:"/images/sx.svg",color:"#4E9DFF"},{name:"\u4F5C\u4E1A",src:"/images/zy.svg",color:"#445DF3"},{name:"\u89C6\u9891",src:"/images/sp.svg",color:"#6BC4DE"},{name:"\u8BFE\u4EF6",src:"/images/fj.svg",color:"#6BDE73"},{name:"\u8BD5\u5377",src:"/images/sj.svg",color:"#2D9534"},{name:"\u5176\u4ED6",src:"/images/qt.svg",color:"#2D947C"}],wse=(ee,y)=>{const E={};let z=null;return ee.forEach(ne=>{E[ne.properties.uuid]=gN(pN({},ne),{id:ne.properties.uuid,children:[]})}),y.forEach(ne=>{const ie=E[ne.startNodeUuid],se=E[ne.endNodeUuid];ie&&(ie.id=ie.properties.uuid),ie&&se&&ie.children.push(se)}),ee.forEach(ne=>{!y.some(se=>se.endNodeUuid===ne.properties.uuid)&&(z=E[ne.properties.uuid])}),z};var Sse=(0,Me.forwardRef)(({nodeUuid:ee,subject_id:y,setshowdetail:E,setitems:z,setzoomsize:ne},ie)=>{var se;const[ae,he]=(0,Me.useState)(!1),[pe,ve]=(0,Me.useState)({nodes:[],links:[]}),xe=(0,Me.useRef)(),Se=(0,Me.useRef)(1),Be=(0,Me.useRef)(null),De=(0,Me.useRef)(null),Re=50,Oe=2e3,[Le,Je]=(0,Me.useState)(null),[$e,_e]=(0,Me.useState)(""),[st,ct]=(0,Me.useState)(null),ut=(0,Me.useRef)(new Map);(0,Me.useEffect)(()=>{ht()},[]);const ht=()=>yse(void 0,null,function*(){var Sn,ki,ti,fn,Bi,jn,ei,hr;he(!0);let _n=yield(0,on.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{nodeUuid:ee,subject_id:y,depth:-1,relationshipFilter:"\u5305\u542B>"}});he(!1);let qi=(ki=(Sn=_n==null?void 0:_n.data)==null?void 0:Sn.nodes)==null?void 0:ki.map(un=>{var so,Kr,kr,_r,Ks,jo,Ro,qa,mn,Gt;return gN(pN({},un==null?void 0:un.properties),{id:(so=un==null?void 0:un.properties)==null?void 0:so.uuid,name:(Kr=un==null?void 0:un.properties)==null?void 0:Kr.name,description:(kr=un==null?void 0:un.properties)==null?void 0:kr.description,nodeType:(_r=un==null?void 0:un.properties)==null?void 0:_r.nodeType,tags:((Ro=(jo=(Ks=un==null?void 0:un.properties)==null?void 0:Ks.tags)==null?void 0:jo.split("\uFF0C"))==null?void 0:Ro.map(tr=>({name:tr})))||[],colorType:parseInt((qa=un==null?void 0:un.properties)==null?void 0:qa.color)>3?"3":(mn=un==null?void 0:un.properties)==null?void 0:mn.color,activeColor:"#FA6400",size:vN[((Gt=un==null?void 0:un.properties)==null?void 0:Gt.color)-1]||20,shape:"circle",hide:!1,isExtendedState:!0})}),Sr=wse((fn=(ti=_n==null?void 0:_n.data)==null?void 0:ti.nodes)==null?void 0:fn.map((un,so)=>{var Kr,kr,_r,Ks,jo,Ro,qa,mn,Gt;const tr=parseInt((Kr=un==null?void 0:un.properties)==null?void 0:Kr.color)===1?"#CC7CF5":((kr=MR.find(Fr=>{var vi;return(Fr==null?void 0:Fr.name)===((vi=un==null?void 0:un.properties)==null?void 0:vi.nodeType)}))==null?void 0:kr.color)||"#2D947C";return gN(pN({},un),{key:so,title:(_r=un==null?void 0:un.properties)==null?void 0:_r.name,newcolor:tr,nodeColor:tr,color:tr,colornodeType:parseInt((Ks=un==null?void 0:un.properties)==null?void 0:Ks.color)===1?"\u6839\u8282\u70B9":((jo=MR.find(Fr=>{var vi;return(Fr==null?void 0:Fr.name)===((vi=un==null?void 0:un.properties)==null?void 0:vi.nodeType)}))==null?void 0:jo.name)||"\u5176\u4ED6",val:vN[((Ro=un==null?void 0:un.properties)==null?void 0:Ro.color)-1]||10,nodeVal:vN[((qa=un==null?void 0:un.properties)==null?void 0:qa.color)-1]||10,name:(mn=un==null?void 0:un.properties)==null?void 0:mn.name,nodeLabel:(Gt=un==null?void 0:un.properties)==null?void 0:Gt.name})}),(jn=(Bi=_n==null?void 0:_n.data)==null?void 0:Bi.relationships)==null?void 0:jn.filter(un=>un.type==="\u5305\u542B")),Pr=(0,ug.RN)(Sr),Go=(ei=Pr.nodes)==null?void 0:ei.filter((un,so,Kr)=>so===Kr.findIndex(kr=>kr.id===un.id)),_o=(hr=Pr.edges)==null?void 0:hr.filter((un,so,Kr)=>so===Kr.findIndex(kr=>kr.source===un.source&&kr.target===un.target));ve({nodes:Go,links:_o})}),pt=(Sn,ki)=>{const ti=new Map([[Sn,!0]]),fn=jn=>{ki.forEach(ei=>{ei.source.id===jn&&!ti.has(ei.target.id)&&(ti.set(ei.target.id,!0),fn(ei.target.id))})},Bi=jn=>{ki.forEach(ei=>{ei.target.id===jn&&!ti.has(ei.source.id)&&(ti.set(ei.source.id,!0),Bi(ei.source.id))})};return fn(Sn),Bi(Sn),ti};(0,Me.useEffect)(()=>{st?ut.current=pt(st.id,pe.links):ut.current=new Map},[st,pe.links]);const gt=()=>kN().force("charge",jN().strength(-50)).force("collision",dse().radius(Sn=>(Sn.val||20)*1.2)).force("link",RN().id(Sn=>Sn.id).distance(80)).force("center",GN()).numDimensions(3).tick(100),zt=Sn=>st?ut.current.has(Sn.id):!0,cn=Sn=>st?ut.current.has(Sn.source.id)&&ut.current.has(Sn.target.id):!0;(0,Me.useEffect)(()=>()=>{De.current&&cancelAnimationFrame(De.current)},[]);const Tn=()=>{if(!Be.current||!xe.current)return;const Sn=xe.current,ki=Sn.cameraPosition(),ti={x:0,y:0,z:0},fn=.1,Bi={x:ki.x+(Be.current.x-ki.x)*fn,y:ki.y+(Be.current.y-ki.y)*fn,z:ki.z+(Be.current.z-ki.z)*fn};Sn.cameraPosition(Bi,ti,0),Math.hypot(Bi.x-Be.current.x,Bi.y-Be.current.y,Bi.z-Be.current.z)>5?De.current=requestAnimationFrame(Tn):(De.current=null,Be.current=null)};(0,Me.useImperativeHandle)(ie,()=>({handleZoom:di,getData:ht,selectall:Zn,settype:Nn}));const Zn=Sn=>{Je(Sn)},Nn=Sn=>{_e(Sn)},di=Sn=>{De.current&&(cancelAnimationFrame(De.current),De.current=null);const ki=xe.current;if(!ki)return;const ti=ki.cameraPosition(),fn={x:0,y:0,z:0},Bi={x:ti.x-fn.x,y:ti.y-fn.y,z:ti.z-fn.z},jn=Math.hypot(Bi.x,Bi.y,Bi.z);let hr=jn*(Sn==="in"?.8:1.2);if(hr=Math.max(Re,Math.min(Oe,hr)),jn>0){const _n=hr/jn;Be.current={x:fn.x+Bi.x*_n,y:fn.y+Bi.y*_n,z:fn.z+Bi.z*_n},Se.current=1e3/hr,Tn()}},yi=(0,el.debounce)(Sn=>{ct(Sn)},100),bn=Sn=>{console.log("---",Sn),Je(Sn.id),z(Sn),E(!0)};return SR.createElement("div",{style:{height:"calc(100vh - 0px)",overflow:"hidden"}},((se=pe==null?void 0:pe.nodes)==null?void 0:se.length)>0&&SR.createElement(dN,{graphData:pe,ref:xe,enableNodeDrag:!1,backgroundColor:"rgb(1, 10, 35)",linkColor:Sn=>cn(Sn)?"#ccc":"rgba(0,0,0,0)",linkWidth:Sn=>(cn(Sn),1),linkDirectionalArrowLength:st?6:0,nodeRelSize:8,linkDirectionalArrowColor:()=>"rgba(0,0,0,0)",linkDirectionalParticles:Sn=>cn(Sn)?3:0,linkDirectionalParticleSpeed:.001,linkDirectionalParticleWidth:2,linkDirectionalParticleColor:Sn=>cn(Sn)?"#ccc":"rgba(0,0,0,0)",linkThreeObjectExtend:!0,nodeThreeObject:Sn=>{if($e){const ki=new Bc(new ym(Sn.val,16,16),bR(Sn.colornodeType===$e?Sn.nodeColor:"#999999"));if(Sn.id===Le){const ti=new Bc(new ym(Sn.val+5,32,32),new Yd({transparent:!0,opacity:.3}));ki.add(ti)}return ki}else{const ki=new Bc(new ym(Sn.val,16,16),bR(Sn.id===Le||zt(Sn)?Sn.nodeColor:"#999999"));if(Sn.id===Le){const ti=new Bc(new ym(Sn.val+5,32,32),new Yd({transparent:!0,opacity:.3}));ki.add(ti)}return ki}},linkThreeObject:Sn=>cn(Sn)?new Bc(ER,xse):null,onNodeHover:yi,onNodeClick:bn,onEngineStop:()=>{},onNodeDragEnd:Sn=>{Sn.fx=Sn.x,Sn.fy=Sn.y,Sn.fz=Sn.z}}))}),rp={flex_box_center:"flex_box_center___mORrQ",flex_space_between:"flex_space_between___AGgBm",flex_box_vertical_center:"flex_box_vertical_center____H93g",flex_box_center_end:"flex_box_center_end___VPK8Q",flex_box_column:"flex_box_column___qksG3",autocomp:"autocomp___H_feM",autocompwidth:"autocompwidth___RMYtG",hoverone:"hoverone___j7m8k",name:"name___qwPqM",img:"img___WHKD_",autopop:"autopop___YCC3k",studentHead:"studentHead___DeVom",headLi:"headLi___qiYnp",btn:"btn___s7HI8",tupugx:"tupugx___JCYSy",textname:"textname___iEAMA",dropdownst:"dropdownst___ca1cn"},yN=je(84989),BR=je(59301),Pse=Object.defineProperty,Cse=Object.defineProperties,Ese=Object.getOwnPropertyDescriptors,GT=Object.getOwnPropertySymbols,TR=Object.prototype.hasOwnProperty,DR=Object.prototype.propertyIsEnumerable,NR=(ee,y,E)=>y in ee?Pse(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,FR=(ee,y)=>{for(var E in y||(y={}))TR.call(y,E)&&NR(ee,E,y[E]);if(GT)for(var E of GT(y))DR.call(y,E)&&NR(ee,E,y[E]);return ee},bse=(ee,y)=>Cse(ee,Ese(y)),Mse=(ee,y)=>{var E={};for(var z in ee)TR.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&>)for(var z of GT(ee))y.indexOf(z)<0&&DR.call(ee,z)&&(E[z]=ee[z]);return E},Bse=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});let XT=[{name:"\u6839\u8282\u70B9",src:"/images/one.svg",color:"#CC7CF5",bordercolor:"#A150CB"},{name:"\u8BFE\u7A0B",src:"/images/kc.svg",color:"#3241F7",bordercolor:"#3437D9"},{name:"\u7AE0\u8282",src:"/images/zj.svg",color:"#5e54e7",bordercolor:"#7f77f9"},{name:"\u77E5\u8BC6\u70B9",src:"/images/zsd.svg",color:"#FFDF55",bordercolor:"#FFD60F"},{name:"\u5B9E\u8BAD",src:"/images/sx.svg",color:"#4E9DFF",bordercolor:"#0882FB"},{name:"\u4F5C\u4E1A",src:"/images/zy.svg",color:"#445DF3",bordercolor:"#3149D5"},{name:"\u89C6\u9891",src:"/images/sp.svg",color:"#6BC4DE",bordercolor:"#339DC4"},{name:"\u8BFE\u4EF6",src:"/images/fj.svg",color:"#6BDE73",bordercolor:"#33C448"},{name:"\u8BD5\u5377",src:"/images/sj.svg",color:"#2D9534",bordercolor:"#077A04"},{name:"\u5176\u4ED6",src:"/images/qt.svg",color:"#2D947C",bordercolor:"#157660"}];const tde=null;let nde=null;const Tse=ee=>{var y=ee,{pathsDetail:E,user:z,globalSetting:ne,loading:ie,dispatch:se,datas:ae}=y,he=Mse(y,["pathsDetail","user","globalSetting","loading","dispatch","datas"]);const pe=(0,Me.useRef)(),ve=(0,Me.useRef)(null);(0,Me.useEffect)(()=>{xe()},[ae]);function xe(){return Bse(this,null,function*(){var Se,Be,De,Re,Oe,Le,Je;if(((Se=ae==null?void 0:ae.nodes)==null?void 0:Se.length)>0){let $e=(0,Et.fX)((Be=ae==null?void 0:ae.nodes)==null?void 0:Be.map((ht,pt)=>{var gt,zt,cn,Tn,Zn,Nn,di,yi,bn,Sn,ki,ti,fn,Bi,jn,ei;return bse(FR(FR({},ht),ht==null?void 0:ht.properties),{rootNodeUuid:(gt=ht==null?void 0:ht.properties)==null?void 0:gt.rootNodeUuid,id:(zt=ht==null?void 0:ht.properties)==null?void 0:zt.uuid,name:(cn=ht==null?void 0:ht.properties)==null?void 0:cn.name,labelstype:(Tn=ht==null?void 0:ht.labels)==null?void 0:Tn[1],description:(Zn=ht==null?void 0:ht.properties)==null?void 0:Zn.description,nodeType:(Nn=ht==null?void 0:ht.properties)==null?void 0:Nn.nodeType,colornodeType:parseInt((di=ht==null?void 0:ht.properties)==null?void 0:di.color)===1?"\u6839\u8282\u70B9":((yi=XT==null?void 0:XT.find(hr=>{var _n;return(hr==null?void 0:hr.name)===((_n=ht==null?void 0:ht.properties)==null?void 0:_n.nodeType)}))==null?void 0:yi.name)||"\u5176\u4ED6",newcolor:parseInt((bn=ht==null?void 0:ht.properties)==null?void 0:bn.color)===1?"#CC7CF5":((Sn=XT==null?void 0:XT.find(hr=>{var _n;return(hr==null?void 0:hr.name)===((_n=ht==null?void 0:ht.properties)==null?void 0:_n.nodeType)}))==null?void 0:Sn.color)||"#2D947C",tags:((ki=ht==null?void 0:ht.properties)==null?void 0:ki.tags)&&((Bi=(fn=(ti=ht==null?void 0:ht.properties)==null?void 0:ti.tags)==null?void 0:fn.split("\uFF0C"))==null?void 0:Bi.map(hr=>({name:hr})))||[],colorType:parseInt((jn=ht==null?void 0:ht.properties)==null?void 0:jn.color)>3?"3":(ei=ht==null?void 0:ht.properties)==null?void 0:ei.color})}),(Oe=(Re=(De=ae==null?void 0:ae.relationships)==null?void 0:De.filter(ht=>{var pt,gt,zt;return(ht==null?void 0:ht.endNodeUuid)!==((zt=(gt=(pt=ae==null?void 0:ae.nodes)==null?void 0:pt[0])==null?void 0:gt.properties)==null?void 0:zt.rootNodeUuid)}))==null?void 0:Re.filter(ht=>{var pt,gt,zt;return(ht==null?void 0:ht.startNodeUuid)!==((zt=(gt=(pt=ae==null?void 0:ae.nodes)==null?void 0:pt[0])==null?void 0:gt.properties)==null?void 0:zt.rootNodeUuid)}))==null?void 0:Oe.filter(ht=>ht.type==="\u5305\u542B")),_e=(0,ug.RN)($e),st=(Le=_e.nodes)==null?void 0:Le.filter((ht,pt,gt)=>pt===gt.findIndex(zt=>zt.id===ht.id)),ct=(Je=_e.edges)==null?void 0:Je.filter((ht,pt,gt)=>pt===gt.findIndex(zt=>zt.source===ht.source&&zt.target===ht.target));st.map(ht=>(ht.transformd=!0,ht.style={labelWordWrap:!0,labelPlacement:ht.depth===0?"center":ht.depth<3?"top-left":"top",haloLineWidth:Math.max(20-ht.depth*6,0),labelMaxWidth:ht.depth===0?300:200,labelFontSize:ht.depth===0?22:st.length>300?12:14,labelLineHeight:100,halo:ht.depth<3},ht)),pe.current=null;let ut=st==null?void 0:st.length;pe.current=new ug.kJ({container:ve.current,autoResize:!0,background:"#010A23",autoFit:{type:st.length>50?"view":"center",options:{direction:"both",when:"always"}},animation:!1,padding:50,data:{nodes:st,edges:ct},node:{type:"circle",style:{size:ht=>ht.colorType==1?100:ht.depth<2?50:ut>250?10:20,fill:ht=>ht.newcolor,labelText:ht=>ht.name,labelFill:"#ffffff"},state:{highlight:{stroke:"transparent"},selected:{stroke:"transparent"},inactive:{fill:ht=>ht.newcolor,port:!1,labelBackground:!1,halo:!1,badgeBackground:!1}}},edge:{style:{labelBackground:!1,halo:!1,stroke:"#A150CB",strokeOpacity:.5},state:{inactive:{stroke:"#f9f0ff",strokeOpacity:.5,halo:!1,labelBackground:!1,lineWidth:1},highlight:{stroke:"#43E93F",strokeOpacity:1,halo:!1,lineWidth:1},selected:{stroke:"#43E93F",strokeOpacity:1,halo:!1,lineWidth:1},active:{halo:!1},disable:{halo:!1}}},layout:[{type:"dendrogram",radial:!0,nodeSep:40,rankSep:st.length>250?360:240,direction:"RL",unitRadius:90,linkDistance:200,preventOverlap:!0,maxPreventOverlapIteration:100,strictRadial:!1}],plugins:[{type:"tooltip",enable:ht=>ht.targetType==="node",getContent:(ht,pt)=>{let gt="";return pt.forEach(zt=>{gt+=`<div>${zt.name||""}</div>`}),gt}}],behaviors:["drag-canvas",{type:"zoom-canvas"},"drag-element",{type:"collapse-expand",onExpand:(ht,pt)=>{console.log("----",ht,pt)}},{type:"fix-element-size",state:"fix-element-size",enable:!0}],transforms:[{type:"place-radial-labels"}]}),pe.current.render()}})}return BR.createElement("div",{style:{background:"#fff",height:"800rem"}},BR.createElement("div",{style:{width:"100%",height:"800rem"},ref:ve}))};var Dse=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(Tse),ds=je(59301),Nse=Object.defineProperty,Fse=Object.defineProperties,Lse=Object.getOwnPropertyDescriptors,WT=Object.getOwnPropertySymbols,LR=Object.prototype.hasOwnProperty,IR=Object.prototype.propertyIsEnumerable,kR=(ee,y,E)=>y in ee?Nse(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Ub=(ee,y)=>{for(var E in y||(y={}))LR.call(y,E)&&kR(ee,E,y[E]);if(WT)for(var E of WT(y))IR.call(y,E)&&kR(ee,E,y[E]);return ee},Ise=(ee,y)=>Fse(ee,Lse(y)),kse=(ee,y)=>{var E={};for(var z in ee)LR.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&WT)for(var z of WT(ee))y.indexOf(z)<0&&IR.call(ee,z)&&(E[z]=ee[z]);return E},U1=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});let t5=[{name:"\u6839\u8282\u70B9",src:"/images/one.svg",color:"#CC7CF5",bordercolor:"#A150CB"},{name:"\u8BFE\u7A0B",src:"/images/kc.svg",color:"#3241F7",bordercolor:"#3437D9"},{name:"\u7AE0\u8282",src:"/images/zj.svg",color:"#5e54e7",bordercolor:"#7f77f9"},{name:"\u77E5\u8BC6\u70B9",src:"/images/zsd.svg",color:"#FFDF55",bordercolor:"#FFD60F"},{name:"\u5B9E\u8BAD",src:"/images/sx.svg",color:"#4E9DFF",bordercolor:"#0882FB"},{name:"\u4F5C\u4E1A",src:"/images/zy.svg",color:"#445DF3",bordercolor:"#3149D5"},{name:"\u89C6\u9891",src:"/images/sp.svg",color:"#6BC4DE",bordercolor:"#339DC4"},{name:"\u8BFE\u4EF6",src:"/images/fj.svg",color:"#6BDE73",bordercolor:"#33C448"},{name:"\u8BD5\u5377",src:"/images/sj.svg",color:"#2D9534",bordercolor:"#077A04"},{name:"\u5176\u4ED6",src:"/images/qt.svg",color:"#2D947C",bordercolor:"#157660"}];const Ose=ee=>{var y=ee,{pathsDetail:E,user:z,globalSetting:ne,loading:ie,dispatch:se,uuid:ae,Tabsdatas:he,initdata:pe,setactivied:ve,tpacti:xe}=y,Se=kse(y,["pathsDetail","user","globalSetting","loading","dispatch","uuid","Tabsdatas","initdata","setactivied","tpacti"]),Be,De,Re,Oe,Le,Je,$e,_e;const st=(0,yt.useParams)(),ct=(0,Me.useRef)(),ut=(0,Me.useRef)(),ht=(0,Me.useRef)(),[pt,gt]=(0,Me.useState)([]),[zt,cn]=(0,Me.useState)(!0),[Tn,Zn]=(0,Me.useState)([]),[Nn,di]=(0,Me.useState)(""),[yi,bn]=(0,Me.useState)(!1),Sn=(0,Me.useRef)(null),[ki,ti]=(0,Me.useState)(),[fn,Bi]=(0,Me.useState)(!1),[jn,ei]=(0,Me.useState)([]);let[hr,_n]=(0,Me.useState)(!1);const[qi,Sr]=(0,Me.useState)(!1),[Pr,Go]=(0,Me.useState)(!1),[_o,ta]=(0,Me.useState)(!1),[un,so]=(0,Me.useState)([]),[Kr,kr]=(0,Me.useState)(!1),[_r,Ks]=(0,Me.useState)([]),[jo]=(0,yt.useSearchParams)(),[Ro,qa]=(0,Me.useState)(!1),[mn,Gt]=(0,Me.useState)(0),[tr,Fr]=(0,Me.useState)("\u5168\u90E8");let[vi,Dr]=(0,Me.useState)({page:1,limit:10});const[Es,gs]=(0,Me.useState)({}),[Na,Qa]=(0,Me.useState)([]),Zo=(0,Me.useRef)(null),ba=(0,Me.useRef)(null),[Ba,ra]=(0,Me.useState)(!1);(0,Me.useEffect)(()=>(hr=!1,_n(!1),oa(2,!0),Qt.ZP.config({getContainer:()=>Sn.current}),()=>{var Jr;cn(!1),Zn([]),Bi(!1),di(""),(Jr=ht.current)==null||Jr.clear()}),[ae]),(0,Me.useEffect)(()=>(document.addEventListener("keydown",ns),document.addEventListener("keyup",Fl),()=>{document.removeEventListener("keydown",ns),document.addEventListener("keyup",Fl)}),[]);function ns(Jr){Jr.ctrlKey&&ht.current&&ht.current.setBehaviors(Ps=>[...Ps.filter(ya=>typeof ya=="string"?ya!=="zoom-canvas":ya.type!=="zoom-canvas"),{type:"zoom-canvas",key:"new-zoom",enable:!0,preventDefault:!0}])}function Fl(Jr){ht.current&&ht.current.setBehaviors(Ps=>[...Ps.filter(ya=>typeof ya=="string"?ya!=="zoom-canvas":ya.type!=="zoom-canvas"),{type:"zoom-canvas",key:"new-zoom1",enable:!1,preventDefault:!1}])}const Xi={onRemove:()=>{so([])},beforeUpload:Jr=>{if(console.log(Jr),(Jr==null?void 0:Jr.size)>1024*1024*50)return Qt.ZP.info("\u6587\u4EF6\u8D85\u8FC750M\uFF0C\u4E0D\u7B26\u5408\u4E0A\u4F20\u8981\u6C42"),!1;let Ps=[];return Ps.push(Jr),so([...Ps]),!1},fileList:un,accept:".xls,.xlsx"};(0,Me.useEffect)(()=>{},[hr]),(0,Me.useEffect)(()=>(window.addEventListener("resize",xa),()=>{window.removeEventListener("resize",xa)}),[]);function xa(){var Jr,Ps;(Ps=(Jr=ct.current)==null?void 0:Jr.update)==null||Ps.call(Jr)}const No=(...Jr)=>U1(void 0,[...Jr],function*(Ps={}){return yield se({type:"pathsDetail/getKnowledgeGraphs",payload:Ub({graphable_type:jo.get("type")==="classrooms"?"course":"subject",graphable_id:st==null?void 0:st.pathId},Ps)})});function oa(Jr,Ps=!1){return U1(this,null,function*(){var Ga,ya,$a,ef,Cm,Lv,i0;qa(!0);let Iv=yield(0,on.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{nodeUuid:ae,subject_id:st==null?void 0:st.pathId,depth:Jr===0?Jr:Jr||-1,relationshipFilter:"\u5305\u542B>"}});if(qa(!1),(Iv==null?void 0:Iv.status)===0){if(Ps||No({graphable_id:st==null?void 0:st.pathId}),hr){ut.current.getData();return}cn(!0);let $A=(0,Et.fX)((ya=(Ga=Iv==null?void 0:Iv.data)==null?void 0:Ga.nodes)==null?void 0:ya.map((fa,nm)=>{var Mg,im,ex,Vb,Pn,mr,io,ro,ur,Rs,ho,ka,_a,du,fu,Hl;return Ise(Ub(Ub({},fa),fa==null?void 0:fa.properties),{rootNodeUuid:(Mg=fa==null?void 0:fa.properties)==null?void 0:Mg.rootNodeUuid,id:(im=fa==null?void 0:fa.properties)==null?void 0:im.uuid,name:(ex=fa==null?void 0:fa.properties)==null?void 0:ex.name,labelstype:(Vb=fa==null?void 0:fa.labels)==null?void 0:Vb[1],description:(Pn=fa==null?void 0:fa.properties)==null?void 0:Pn.description,nodeType:(mr=fa==null?void 0:fa.properties)==null?void 0:mr.nodeType,colornodeType:parseInt((io=fa==null?void 0:fa.properties)==null?void 0:io.color)===1?"\u6839\u8282\u70B9":((ro=t5==null?void 0:t5.find(Pu=>{var Cc;return(Pu==null?void 0:Pu.name)===((Cc=fa==null?void 0:fa.properties)==null?void 0:Cc.nodeType)}))==null?void 0:ro.name)||"\u5176\u4ED6",newcolor:parseInt((ur=fa==null?void 0:fa.properties)==null?void 0:ur.color)===1?"#CC7CF5":((Rs=t5==null?void 0:t5.find(Pu=>{var Cc;return(Pu==null?void 0:Pu.name)===((Cc=fa==null?void 0:fa.properties)==null?void 0:Cc.nodeType)}))==null?void 0:Rs.color)||"#2D947C",tags:((ho=fa==null?void 0:fa.properties)==null?void 0:ho.tags)&&((du=(_a=(ka=fa==null?void 0:fa.properties)==null?void 0:ka.tags)==null?void 0:_a.split("\uFF0C"))==null?void 0:du.map(Pu=>({name:Pu})))||[],colorType:parseInt((fu=fa==null?void 0:fa.properties)==null?void 0:fu.color)>3?"3":(Hl=fa==null?void 0:fa.properties)==null?void 0:Hl.color})}),(ef=($a=Iv==null?void 0:Iv.data)==null?void 0:$a.relationships)==null?void 0:ef.filter(fa=>fa.type==="\u5305\u542B")),zf=(0,ug.RN)($A),wd=(Cm=zf.nodes)==null?void 0:Cm.filter((fa,nm,Mg)=>nm===Mg.findIndex(im=>im.id===fa.id));gt(wd);let tm=(Lv=zf.edges)==null?void 0:Lv.filter((fa,nm,Mg)=>nm===Mg.findIndex(im=>im.source===fa.source&&im.target===fa.target));wd.map(fa=>(fa.transformd=!0,fa.style={labelWordWrap:!0,labelPlacement:fa.depth===0?"center":fa.depth<3?"top-left":"top",haloLineWidth:Math.max(20-fa.depth*6,0),labelMaxWidth:fa.depth===0?300:200,labelFontSize:fa.depth===0?22:wd.length>300?12:14,labelLineHeight:100,halo:fa.depth<3},fa)),ht.current=null;let hC=wd==null?void 0:wd.length;ht.current=new ug.kJ({container:ba.current,autoResize:!0,background:"#010A23",autoFit:{type:wd.length>50?"view":"center",options:{direction:"both",when:"always"}},animation:!1,padding:50,data:{nodes:wd,edges:tm},node:{type:"circle",style:{size:fa=>fa.colorType==1?100:fa.depth<2?50:hC>250?10:20,fill:fa=>fa.newcolor,labelText:fa=>fa.name,labelFill:"#ffffff"},state:{highlight:{stroke:"transparent"},selected:{stroke:"transparent"},inactive:{fill:fa=>fa.newcolor,port:!1,labelBackground:!1,halo:!1,badgeBackground:!1}}},edge:{style:{labelBackground:!1,halo:!1,stroke:"#A150CB",strokeOpacity:.5},state:{inactive:{stroke:"#f9f0ff",strokeOpacity:.5,halo:!1,labelBackground:!1,lineWidth:1},highlight:{stroke:"#43E93F",strokeOpacity:1,halo:!1,lineWidth:1},selected:{stroke:"#43E93F",strokeOpacity:1,halo:!1,lineWidth:1},active:{halo:!1},disable:{halo:!1}}},layout:[{type:"dendrogram",radial:!0,nodeSep:40,rankSep:wd.length>250?360:240,direction:"RL",unitRadius:90,linkDistance:200,preventOverlap:!0,maxPreventOverlapIteration:100,strictRadial:!1}],plugins:[{type:"tooltip",position:"bottom",enable:fa=>fa.targetType==="node",getContent:(fa,nm)=>{let Mg="";return nm.forEach(im=>{Mg+=`<div>${im.name||""}</div>`}),Mg}}],behaviors:["drag-canvas",{type:"zoom-canvas",enable:!1,preventDefault:!1,onFinish:()=>{setTimeout(()=>{var fa;Gt((((fa=ht==null?void 0:ht.current)==null?void 0:fa.getZoom())*100).toFixed(0))},300)}},"drag-element",{type:"collapse-expand",onExpand:(fa,nm)=>{console.log("----",fa,nm)}},{type:"fix-element-size",state:"fix-element-size",enable:!0},{type:"click-select",state:"selected",onClick:fa=>{Zo.current?(clearTimeout(Zo.current),Zo.current=null):Zo.current=setTimeout(()=>{let nm=wd.filter(Mg=>{var im,ex;return(Mg==null?void 0:Mg.id)===((ex=(im=fa.target)==null?void 0:im.config)==null?void 0:ex.id)});if((nm==null?void 0:nm.length)===0){Bi(!1);return}ti(nm==null?void 0:nm[0]),Bi(!0),fa.view.setCursor("pointer"),Zo.current=null},300)},multiple:!1},{type:"hover-activate",enable:fa=>fa.targetType==="node",degree:1,state:"highlight",direction:"both",inactiveState:"inactive",onHover:fa=>{fa.view.setCursor("pointer")},onHoverEnd:fa=>{fa.view.setCursor("default")}}],transforms:[{type:"place-radial-labels"}]}),ht.current.render(),ba.current&&(ba.current.style.opacity=1),(i0=ht==null?void 0:ht.current)==null||i0.fitView(),setTimeout(()=>{var fa;Gt((((fa=ht==null?void 0:ht.current)==null?void 0:fa.getZoom())*100).toFixed(0))},300);var cC=ht.current.getOptions();setTimeout(()=>{cC.animation=!0,ht.current.setOptions(cC)},2500),window.graphsRef=ht.current}let H0=yield(0,on.ZP)("/api/knowledge_items.json",{method:"get",params:{item_type:3,subject_id:st==null?void 0:st.pathId}});(H0==null?void 0:H0.status)===0&&Qa(H0==null?void 0:H0.data)})}const vs=(Jr,Ps)=>{if(ht.current){if(qi){Jr==="Leave"?ut.current.settype(""):ut.current.settype(Ps==null?void 0:Ps.name);return}if(hr){ut.current.onMouse(Jr,Ps.name);return}try{const Ga={},ya={};ht.current.getEdgeData().map($a=>{Ga[$a.id]=Jr==="Enter"?"inactive":"active"}),ht.current.getNodeData().map($a=>{Jr==="Enter"?ya[$a.id]=$a.colornodeType===Ps.name?"highlight":"inactive":ya[$a.id]="active"}),ht.current.setElementState(Ga),ht.current.setElementState(ya)}catch(Ga){}}},Yo=(Jr,Ps)=>{if(ht.current){if(hr){ut.current.onMouse(Jr,Ps.name);return}try{const Ga={},ya={};ht.current.getEdgeData().map($a=>{Ga[$a.id]=Jr==="Enter"?"inactive":"active"}),ht.current.getNodeData().map($a=>{var ef,Cm;Jr==="Enter"?ya[$a.id]=(Cm=(ef=$a.tags)==null?void 0:ef.map(Lv=>Lv==null?void 0:Lv.name))!=null&&Cm.includes(Ps.name)?"highlight":"inactive":ya[$a.id]="active"}),ht.current.setElementState(Ga),ht.current.setElementState(ya)}catch(Ga){}}};return ds.createElement(rn.Z,{spinning:Ro},ds.createElement("div",{ref:Sn,className:"h-screen flex flex-col",style:{background:"#010A23",height:"100%"}},ds.createElement("div",{className:"relative w-full"},ds.createElement("div",{className:"flex w-full px-40px-rem pt-24px-rem absolute gap-20px-rem",style:{left:0,top:0,justifyContent:"start",zIndex:1}},ds.createElement("span",{className:rp.tupugx,onClick:()=>{ve()}},ds.createElement("img",{src:"/images/tpgx.svg",style:{marginRight:"10rem",width:"16rem"}}),"\u56FE\u8C31\u5173\u7CFB"),ds.createElement("div",{className:rp.autocomp},zt&&ds.createElement("div",{style:{display:"flex",alignItems:"center"}},ds.createElement(PS.Z,{className:rp.autocompwidth,options:Tn,popupClassName:rp.autopop,getPopupContainer:()=>Sn.current,value:Nn,onSelect:(Jr,Ps)=>{var Ga;if(di(pt.find(ya=>ya.id===Jr).name),ti(pt.find(ya=>ya.id===Jr)),Bi(!0),qi){ut.current.selectall(Jr);return}if(hr)ut.current.selectall(Jr);else{let ya=ht.current.getElementDataByState("node","selected");(ya==null?void 0:ya.length)>0&&ht.current.setElementState((Ga=ya==null?void 0:ya[0])==null?void 0:Ga.id,[""]),ht.current.setElementState(Jr,["selected"])}},onChange:Jr=>{di(Jr)},onSearch:Jr=>{Zn(()=>{var Ps,Ga,ya;return tr==="\u5168\u90E8"?(Ps=pt==null?void 0:pt.filter($a=>$a.name.includes(Jr)))==null?void 0:Ps.map($a=>({label:ds.createElement("div",{style:{display:"flex",alignItems:"center"}},ds.createElement("span",{style:{marginRight:"10rem",height:"20rem",lineHeight:"20rem",padding:"0rem 6rem",color:"#fff",fontSize:"12rem",background:"#1890FF",borderRadius:"2rem"}},$a==null?void 0:$a.nodeType)," ",ds.createElement("div",{style:{color:"#fff"},dangerouslySetInnerHTML:{__html:$a==null?void 0:$a.name.replaceAll(Jr,`<span style= "color: #00B187" >${Jr}</span>`)}})),value:$a==null?void 0:$a.id})):(ya=(Ga=pt==null?void 0:pt.filter($a=>{var ef;return(ef=$a==null?void 0:$a.tags)==null?void 0:ef.find(Cm=>Cm.name===tr)}))==null?void 0:Ga.filter($a=>$a.name.includes(Jr)))==null?void 0:ya.map($a=>({label:ds.createElement("div",{style:{display:"flex",alignItems:"center"}},ds.createElement("span",{style:{marginRight:"10rem",height:"20rem",padding:"2rem 6rem",color:"#fff",fontSize:"12rem",background:"#1890FF",borderRadius:"2rem"}},$a==null?void 0:$a.nodeType)," ",ds.createElement("div",{style:{color:"#fff"},dangerouslySetInnerHTML:{__html:$a==null?void 0:$a.name.replaceAll(Jr,`<span style= "color: #00B187" >${Jr}</span>`)}})),value:$a==null?void 0:$a.id}))})}},ds.createElement(ln.default,{placeholder:"\u8BF7\u8F93\u5165\u5173\u952E\u8BCD\u641C\u7D22",addonBefore:ds.createElement(lm.Z,{overlayClassName:rp.dropdownst,menu:{items:[{label:ds.createElement("div",{onClick:()=>{Fr("\u5168\u90E8"),Yo("\u5168\u90E8","")}},"\u5168\u90E8"),key:"1"},...Na==null?void 0:Na.map(Jr=>({label:ds.createElement("div",{onClick:()=>{Fr(Jr.name),Yo("Enter",Jr)}},Jr==null?void 0:Jr.name),key:Jr.id}))]}},ds.createElement("div",{style:{display:"flex",alignItems:"center"}},ds.createElement("div",{className:rp.textname,style:{width:"60rem"}},tr),ds.createElement("div",{style:{height:"22rem",background:"linear-gradient( 180deg, rgba(255,255,255,0) 0%, #AEAEAE 52%, rgba(255,255,255,0) 100%)",width:"1rem"}})))})))),ds.createElement("div",{className:"flex ml-auto",style:{zIndex:"3"}},((Be=E==null?void 0:E.detail)==null?void 0:Be.sync_uuid)&&((De=E==null?void 0:E.detail)==null?void 0:De.sync_uuid)===ae&&((Re=E==null?void 0:E.detail)==null?void 0:Re.can_managed)&&ds.createElement(lt.Z,{title:"\u540C\u6B65"},ds.createElement("img",{className:"current",onClick:(0,el.debounce)(()=>{Jt.default.confirm({title:"\u63D0\u793A",icon:null,centered:!0,getContainer:()=>Sn.current,content:"\u8BF7\u786E\u5B9A\u662F\u5426\u5C06\u540C\u6B65\u8BFE\u7A0B\u7AE0\u8282\u5185\u5BB9\uFF0C\u66F4\u65B0\u540E\u539F\u6709\u77E5\u8BC6\u56FE\u8C31\u5185\u5BB9\u5C06\u88AB\u8986\u76D6\uFF0C\u8986\u76D6\u540E\u53EF\u5728\u7248\u672C\u7BA1\u7406\u4E2D\u9009\u62E9\u6062\u590D\u3002",onOk:()=>U1(void 0,null,function*(){var Jr;const Ps=(Jr=he==null?void 0:he.find(ya=>(ya==null?void 0:ya.uuid)===ae))==null?void 0:Jr.name;let Ga=yield(0,on.ZP)("/api/knowledge/v2/sync.json",{method:"post",body:{subject_id:st==null?void 0:st.pathId,uuid:ae,name:Ps}});Ga.status===0&&Qt.ZP.info(Ga==null?void 0:Ga.message)})})},500),src:Ba===1?"/images/gxxz.png":"/images/gx.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(1)},style:{width:"40rem",height:"40rem",marginRight:"15rem",marginTop:"5rem"}})),((Oe=E==null?void 0:E.detail)==null?void 0:Oe.can_managed)&&ds.createElement("div",{className:rp.hoverone},ds.createElement("div",{onClick:()=>U1(void 0,null,function*(){let Jr=yield(0,on.ZP)("/api/knowledge/v2/backup.json",{method:"POST",body:{subject_id:st==null?void 0:st.pathId,parentNodeUuid:ae}});(Jr==null?void 0:Jr.status)===0&&Qt.ZP.info("\u56FE\u8C31\u4FDD\u5B58\u6210\u529F")})},ds.createElement("img",{src:Ba===2?"/images/bcbbxz.png":"/images/bcbb.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(2)}}),ds.createElement("div",{className:rp.name},"\u4FDD\u5B58\u7248\u672C")),ds.createElement("div",{onClick:()=>U1(void 0,null,function*(){vi.page=1,vi.limit=10;let Jr=yield(0,on.ZP)("/api/knowledge/v2/knowledge_histories.json",{mehtod:"get",params:Ub({subject_id:st==null?void 0:st.pathId,nodeUuid:ae},vi)});Dr(vi),(Jr==null?void 0:Jr.status)===0&&(kr(!0),Ks(Jr))})},ds.createElement("img",{src:Ba===3?"/images/qhbbxz.png":"/images/qhbb.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(3)},className:rp.img}),ds.createElement("div",{className:rp.name},"\u5207\u6362\u7248\u672C"))),((Le=E==null?void 0:E.detail)==null?void 0:Le.can_managed)&&ds.createElement(lt.Z,{title:"\u521B\u5EFA\u77E5\u8BC6\u56FE\u8C31"},ds.createElement("div",{className:"current flex item-center justify-center c-white",style:{width:"40rem",height:"40rem",marginRight:"15rem",marginTop:"5rem",borderRadius:"50%",background:"#202F4F"},onClick:()=>{Wr.Z.publish("create_a_knowledge_map")}},ds.createElement("span",{className:"iconfont icon-tianjia4"}))),jo.get("type")!=="classrooms"&&!(0,ru.JA)()&&ds.createElement(lt.Z,{title:"\u53D1\u9001\u81F3\u8BFE\u5802"},ds.createElement("img",{src:Ba===13?"/images/glkt.png":"/images/glktxz.png",className:"current",style:{width:"40rem",height:"40rem",marginRight:"15rem",marginTop:"5rem"},onClick:()=>{se({type:"pathsDetail/save",payload:{actionTabs:{key:"\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802",params:{type:"knowledge"}}}})},onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(13)}})),ds.createElement("div",{className:rp.hoverone},ds.createElement("div",{onClick:()=>{hr=!1,_n(!1),Sr(!1),cn(!0),oa(2,!0)}},ds.createElement("img",{src:Ba===4?"/images/gxtxz.png":"/images/gxt.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(4)}}),ds.createElement("div",{className:rp.name},"\u5173\u7CFB\u56FE")),ds.createElement("div",{onClick:()=>{hr=!0,Sr(!1),_n(!0)}},ds.createElement("img",{src:Ba===5?"/images/zssxz.png":"/images/zss.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(5)},className:rp.img}),ds.createElement("div",{className:rp.name},"\u77E5\u8BC6\u6811"))),ds.createElement(lt.Z,{title:"\u5168\u5C4F"},ds.createElement("img",{className:"current",onClick:()=>{var Jr,Ps,Ga,ya;(0,yN.vp)()?(bn(!1),(0,yN.BU)(),!hr&&zt?(Jr=ht==null?void 0:ht.current)==null||Jr.fitCenter():(Ps=ut==null?void 0:ut.current)==null||Ps.fitView()):(bn(!0),(0,yN.Dj)(Sn.current),!hr&&zt?(Ga=ht==null?void 0:ht.current)==null||Ga.fitCenter():(ya=ut==null?void 0:ut.current)==null||ya.fitView())},src:Ba===6?"/images/qpxz.png":"/images/qp.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(6)},style:{width:"40rem",height:"40rem",marginRight:"15rem",marginTop:"5rem"}})),((Je=E==null?void 0:E.detail)==null?void 0:Je.can_managed)&&ds.createElement("div",{className:rp.hoverone,style:{marginRight:"0rem"}},ds.createElement("div",{onClick:()=>{Go(!0)}},ds.createElement("img",{src:Ba===10?"/images/drxz.png":"/images/dr.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(10)}}),ds.createElement("div",{className:rp.name},"\u5BFC\u5165")),ds.createElement("div",{onClick:()=>{(0,Et.FH)("",xt.Z.API_SERVER+`/api/knowledge/v2/export.json?subject_id=${st==null?void 0:st.pathId}&fileType=xlsx&parentNodeUuid=${ae}`)}},ds.createElement("img",{src:Ba===11?"/images/dcxz.png":"/images/dc.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(11)},className:rp.img}),ds.createElement("div",{className:rp.name},"\u5BFC\u51FA")))))),zt&&!hr&&!qi&&ds.createElement("div",{className:"w-full h-screen",style:{opacity:0},ref:ba}),ds.createElement("div",{id:"myDiagramDiv",className:`w-full ${hr?"h-screen":""}`},hr?ds.createElement(AC,{ref:ut,setzoomsize:Gt,setshowdetail:Bi,setitems:ti,nodeUuid:ae,subject_id:st==null?void 0:st.pathId}):"",qi?ds.createElement(Sse,{ref:ut,setzoomsize:Gt,setshowdetail:Bi,setitems:ti,nodeUuid:ae,subject_id:st==null?void 0:st.pathId}):""),ds.createElement("div",{className:"flex item-center sticky c-white px-10px-rem",style:{bottom:"30px",zIndex:101}},(pt==null?void 0:pt.length)>0&&ds.createElement("div",{className:" flex item-center gap-12px-rem"},($e=t5.filter(Jr=>{var Ps;return(Ps=pt==null?void 0:pt.map(Ga=>Ga==null?void 0:Ga.colornodeType))==null?void 0:Ps.includes(Jr==null?void 0:Jr.name)}))==null?void 0:$e.map(Jr=>ds.createElement("div",{onMouseLeave:()=>vs("Leave",Jr),onMouseEnter:()=>vs("Enter",Jr),className:"flex item-center current gap-6px-rem"},ds.createElement("div",{className:"rounded-full",style:{width:"20rem",height:"20rem",background:Jr.color}}),ds.createElement("span",null,Jr==null?void 0:Jr.name)))),ds.createElement("div",{className:"flex item-center ml-auto"},!hr&&!qi&&ds.createElement(lm.Z,{overlayClassName:rp.dropdownst,getPopupContainer:()=>Sn.current,menu:{items:[{label:ds.createElement("div",{onClick:()=>{oa()}},"\u5C55\u5F00\u5168\u90E8"),key:"1"},{label:ds.createElement("div",{onClick:()=>{oa(3)}},"\u5C55\u5F003\u5C42"),key:"2"},{label:ds.createElement("div",{onClick:()=>{oa(2)}},"\u5C55\u5F002\u5C42"),key:"3"},{label:ds.createElement("div",{onClick:()=>{oa(1)}},"\u5C55\u5F001\u5C42"),key:"4"},{label:ds.createElement("div",{onClick:()=>{oa(0)}},"\u6536\u8D77\u5168\u90E8"),key:"5"}]}},ds.createElement("img",{style:{cursor:"pointer"},onClick:()=>{},src:Ba===7?"/images/xscjxz.png":"/images/xscj.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(7)}})),!qi&&ds.createElement(lt.Z,{title:"\u5C45\u4E2D\u663E\u793A"},ds.createElement("img",{onClick:()=>{cn(!1),oa()},style:{marginLeft:"10rem",cursor:"pointer"},src:Ba===8?"/images/jzxsxz.png":"/images/jzxs.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(8)},className:rp.img})),ds.createElement("div",{style:{marginLeft:"10rem",background:"#202F4F",borderRadius:"4px",alignItems:"center"}},ds.createElement("img",{style:{cursor:"pointer"},onClick:()=>{if(qi){ut.current.handleZoom("out");return}hr?(ut.current.zoomBy(.9),ut.current.getZooms()):(ht.current.zoomBy(.9),setTimeout(()=>{var Jr;Gt((((Jr=ht==null?void 0:ht.current)==null?void 0:Jr.getZoom())*100).toFixed(0))},300))},src:Ba===9?"/images/newsxxz.png":"/images/newsx.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(9)}}),!qi&&ds.createElement("span",{style:{display:"inline-flex",width:"46px",justifyContent:"center"},onClick:()=>{}}," ",mn+"%"),ds.createElement("img",{style:{cursor:"pointer"},onClick:()=>{if(qi){ut.current.handleZoom("in");return}hr?(ut.current.zoomBy(1.1),ut.current.getZooms()):(ht.current.zoomBy(1.1),setTimeout(()=>{var Jr;Gt((((Jr=ht==null?void 0:ht.current)==null?void 0:Jr.getZoom())*100).toFixed(0))},300))},src:Ba===12?"/images/newfdxz.png":"/images/newfd.png",onMouseOut:()=>{ra(!1)},onMouseOver:()=>{ra(12)}})))),ds.createElement(uu,{tpacti:xe,initdata:pe,uuid:ae,Tabsdatas:he,setshow:cn,getData:oa,containerRef:Sn,showdetail:fn,setshowdetail:Bi,items:ki}),ds.createElement(Jt.default,{title:"\u6587\u4EF6\u5BFC\u5165",open:Pr,centered:!0,getContainer:()=>Sn.current,okButtonProps:{loading:_o},onCancel:()=>{Go(!1),so([])},onOk:()=>U1(void 0,null,function*(){var Jr,Ps,Ga;const ya=new FormData;if(un.length>0)ya.append("file",un[0]);else{Qt.ZP.warning("\u8BF7\u9009\u62E9\u6587\u4EF6");return}ta(!0),ya.append("subject_id",(st==null?void 0:st.pathId)+""),ya.append("parentNodeUuid",ae);let $a=yield(0,on.ZP)("/api/knowledge/v2/import.json",{method:"post",body:ya},!0);ta(!1),($a==null?void 0:$a.status)===0&&((Jr=$a==null?void 0:$a.data)!=null&&Jr.importErrorFilePath?Jt.default.confirm({icon:null,title:"\u5BFC\u5165\u5931\u8D25",centered:!0,content:ds.createElement("span",null,"\u68C0\u6D4B\u5230\u672C\u6B21\u5BFC\u5165\u5B58\u5728\u4E0D\u7B26\u5408\u8981\u6C42\u7684\u6570\u636E\uFF0C\u70B9\u51FB\u4E0B\u8F7D",ds.createElement("a",{href:`${xt.Z.API_SERVER}${(Ps=$a==null?void 0:$a.data)==null?void 0:Ps.importErrorFilePath}`,download:"\u5931\u8D25\u6570\u636E.xlsx"},"\u5BFC\u5165\u5931\u8D25\u7684\u6570\u636E"),"\u67E5\u770B")}):(oa(),cn(!1),(Ga=$a==null?void 0:$a.data)!=null&&Ga.has_route?Qt.ZP.info("\u77E5\u8BC6\u56FE\u8C31\u6570\u636E\u5BFC\u5165\u6210\u529F\uFF0C\u4E3A\u4FDD\u8BC1\u5B66\u4E60\u8DEF\u5F84\u7684\u8282\u70B9\u4E0E\u77E5\u8BC6\u56FE\u8C31\u8282\u70B9\u7ED1\u5B9A\uFF0C\u8BF7\u66F4\u65B0\u5B66\u4E60\u8DEF\u5F84"):Qt.ZP.info("\u5BFC\u5165\u6210\u529F"),so([]),ti({}),Go(!1)))})},(pt==null?void 0:pt.length)>0&&ds.createElement("div",{style:{marginBottom:30,color:"#333333"}},"\u68C0\u6D4B\u5F53\u524D\u5DF2\u5B58\u5728\u6570\u636E\uFF0C\u5BFC\u5165\u540E\u539F\u6570\u636E\u5C06\u4F1A\u88AB\u8986\u76D6\uFF0C\u6309\u7167\u6700\u65B0\u5BFC\u5165\u7684\u4E3A\u4E3B\uFF0C\u5982\u9700\u7EE7\u7EED\u5BFC\u5165\uFF0C\u8BF7\u6309\u7167\u4E0B\u65B9\u6B65\u9AA4\u8FDB\u884C"),ds.createElement("p",{style:{color:"#5F6368"}},"\u6B65\u9AA41\uFF1A",ds.createElement("span",{style:{color:"#000000"}},"\u4E0B\u8F7D"),ds.createElement("a",{href:`${xt.Z.API_SERVER}/api/knowledge/v2/down_template.json`,download:"\u6A21\u7248.xlsx"},"\u77E5\u8BC6\u56FE\u8C31\u5BFC\u5165\u6A21\u7248")),ds.createElement(dh.Z,null,ds.createElement(bf.Z,{style:{color:"#5F6368"}},"\u6B65\u9AA42\uFF1A",ds.createElement("span",{style:{color:"#000000"}},"\u4E0A\u4F20\u586B\u5199\u597D\u7684\u300A\u77E5\u8BC6\u56FE\u8C31\u5BFC\u5165\u6A21\u7248\u300B"))),ds.createElement(dh.Z,{style:{marginTop:10,marginLeft:50}},ds.createElement(Hr.default,Ub({},Xi),ds.createElement("span",{style:{padding:"0px 16px",color:"#1b8565",cursor:"pointer",height:32,alignItems:"center",display:"inline-flex",borderRadius:2,border:"1px solid #1b8565",background:"#1b8565 linear-gradient(180deg, #FFFFFF 0%, #F6F7F9 100%)",boxShadow:"0px 2px 4px 0px #E0DFE1, inset 0px 1px 3px 0px rgba(255,255,255,0.5)"}},ds.createElement("i",{style:{fontSize:12,marginRight:6},className:"iconfont icon-tianjiashitixiaojiahao"})," \u9009\u62E9\u6587\u4EF6")))),ds.createElement(ms,null,ds.createElement(ds.Fragment,null,ds.createElement(Jt.default,{title:"\u7248\u672C\u8BB0\u5F55",centered:!0,width:1200,open:Kr,footer:!1,getContainer:()=>Sn.current,onCancel:()=>{kr(!1)}},ds.createElement(bs.default,{dataSource:_r==null?void 0:_r.data,pagination:!1,columns:[{title:"\u7248\u672C\u4FDD\u5B58\u65F6\u95F4",dataIndex:"created_at",ellipsis:!0,key:"created_at",render:(Jr,Ps)=>ds.createElement("div",null,ds.createElement("span",null,Jr),(Ps==null?void 0:Ps.is_now_version)&&ds.createElement("span",{style:{background:"#2BAC8E",padding:"4rem",fontSize:"12rem",marginLeft:"5rem",color:"#fff"}},"\u5F53\u524D\u4F7F\u7528\u7248\u672C"))},{title:"\u4FDD\u5B58\u4EBA",dataIndex:"username",ellipsis:!0,key:"username"},{title:"\u64CD\u4F5C",dataIndex:"name",ellipsis:!0,key:"name",render:(Jr,Ps)=>ds.createElement("div",null,ds.createElement("span",{style:{color:"#1B8565",marginRight:"30rem",cursor:"pointer"},onClick:()=>U1(void 0,null,function*(){var Ga,ya;let $a=yield(0,on.ZP)(`${Ps==null?void 0:Ps.url}`,{method:"get"});($a==null?void 0:$a.status)===0&&((ya=(Ga=$a==null?void 0:$a.data)==null?void 0:Ga.nodes)==null?void 0:ya.length)>0&&ei($a==null?void 0:$a.data)})},"\u67E5\u770B"),ds.createElement("span",{onClick:()=>U1(void 0,null,function*(){if(Ps!=null&&Ps.is_now_version)return;let Ga=yield(0,on.ZP)("/api/knowledge/v2/restore.json",{method:"post",body:{subject_id:st==null?void 0:st.pathId,backupFilePath:Ps==null?void 0:Ps.backupFilePath}});(Ga==null?void 0:Ga.status)===0&&(oa(),kr(!1),cn(!1),Qt.ZP.info("\u5207\u6362\u6210\u529F"))}),style:{color:Ps!=null&&Ps.is_now_version?"#999999":"#1B8565",cursor:"pointer"}},"\u5207\u6362\u81F3\u5F53\u524D\u7248\u672C"))}]}),ds.createElement(Fn.Z,{hideOnSinglePage:!0,style:{marginTop:"20rem"},pageSize:vi.limit,total:_r==null?void 0:_r.total_count,current:vi.page,onChange:(Jr,Ps)=>U1(void 0,null,function*(){vi.page=Jr,vi.limit=Ps,Dr(vi);let Ga=yield(0,on.ZP)("/api/knowledge/v2/knowledge_histories.json",{mehtod:"get",params:Ub({subject_id:st==null?void 0:st.pathId,nodeUuid:ae},vi)});(Ga==null?void 0:Ga.status)===0&&(kr(!0),Ks(Ga))})})),ds.createElement(Jt.default,{open:((_e=jn==null?void 0:jn.nodes)==null?void 0:_e.length)>0,title:"\u5386\u53F2\u56FE\u8C31",width:"1200rem",footer:null,getContainer:()=>Sn.current,destroyOnClose:!0,onCancel:()=>{ei({})}},ds.createElement(Dse,{datas:jn}))))))};var Rse=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(Ose),H1={wrap:"wrap___HuFFi",add:"add___GrP2R",dimensionalBall:"dimensionalBall___flm6B",archer:"archer___biVqC",svg:"svg___hXxGw",modal:"modal___DR9M_",mHead:"mHead___I923K",form:"form___W2fTe",mType:"mType___hoISa",listItem:"listItem___JCZwd"},Fv={flex_box_center:"flex_box_center___aEG4A",flex_space_between:"flex_space_between___O70yE",flex_box_vertical_center:"flex_box_vertical_center___rEvY1",flex_box_center_end:"flex_box_center_end___Xp3ui",flex_box_column:"flex_box_column___McZmY",largeBall:"largeBall___SbxSR",middleBall:"middleBall___eKLzh",smallBall:"smallBall___r7xv5",largeBallDish:"largeBallDish___EeTGm",middleBallDish:"middleBallDish___hca4h",smallBallDish:"smallBallDish___rrHxf",smallBallGather:"smallBallGather___hHHqa",box:"box___yWjPn",spectrum:"spectrum___r9a7p",pedestal:"pedestal___Grjvz",spectrumHover:"spectrumHover___OibBM",pedestalHover:"pedestalHover___EcKUJ"};const zse="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjkxcHgiIGhlaWdodD0iMTk0cHgiIHZpZXdCb3g9IjAgMCAyOTEgMTk0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA2MSAoODk1ODEpIC0gaHR0cHM6Ly9za2V0Y2guY29tIC0tPgogICAgPHRpdGxlPuWfuuW6pzwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMjcuNzcyODY0MyUiIHkxPSI0My4xNzgwNjE3JSIgeDI9Ijk3LjIyMjIyMjIlIiB5Mj0iNTAlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMzMTdDRDMiIG9mZnNldD0iMCUiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzI3MkE5NSIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjE0LjI3MTI2ODMlIiB5MT0iMzEuNjQ0NzI5NyUiIHgyPSIxMDAlIiB5Mj0iNzMuMTEyMDA3OCUiIGlkPSJsaW5lYXJHcmFkaWVudC0yIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzI3NzFEQiIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjg0REIwIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMTAwJSIgeTE9IjM1LjA0MTMwMTklIiB4Mj0iMCUiIHkyPSI2NS41NDY3MzEzJSIgaWQ9ImxpbmVhckdyYWRpZW50LTMiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMzA2NkI0IiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMxNDM4OTQiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIyNy43NzI4NjQzJSIgeTE9IjQzLjE1NTA2NzMlIiB4Mj0iOTcuMjIyMjIyMiUiIHkyPSI1MCUiIGlkPSJsaW5lYXJHcmFkaWVudC00Ij4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzMxN0NEMyIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjcyQTk1IiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMCUiIHkxPSI1MCUiIHgyPSI1MCUiIHkyPSI2NC4yMTc0OTQ1JSIgaWQ9ImxpbmVhckdyYWRpZW50LTUiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMkY3MEM5IiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM1QjVGRkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtNiIgcG9pbnRzPSIxNDQuNzQ1OSAxNi40Njc5NzAxIDI2MC4xMzI5MzUgNzIuOTI3OTU1NiAxNDYuMTg4MjM4IDEzOC43NTc4OTYgMzAuODAxMjAzMyA3Mi4yMDcxODk5Ij48L3BvbHlnb24+CiAgICAgICAgPGZpbHRlciB4PSItMS41JSIgeT0iLTIuOSUiIHdpZHRoPSIxMDMuMSUiIGhlaWdodD0iMTA1LjclIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJmaWx0ZXItNyI+CiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dCbHVySW5uZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSI1IiBpbj0ic2hhZG93Qmx1cklubmVyMSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRJbm5lcjEiPjwvZmVPZmZzZXQ+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0ic2hhZG93T2Zmc2V0SW5uZXIxIiBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIgcmVzdWx0PSJzaGFkb3dJbm5lcklubmVyMSI+PC9mZUNvbXBvc2l0ZT4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAuNzk2ODM2ODkgICAwIDAgMCAwIDAuOTc0NjYwMTA4ICAgMCAwIDAgMCAxICAwIDAgMCAwLjUgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93SW5uZXJJbm5lcjEiPjwvZmVDb2xvck1hdHJpeD4KICAgICAgICA8L2ZpbHRlcj4KICAgIDwvZGVmcz4KICAgIDxnIGlkPSLpobXpnaItMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IjA4MjAtM0Tlm77osLEt5YiH5Zu+VjQuMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ0OS4wMDAwMDAsIC0xMzQ0LjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0i5Z+65bqnIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0NDkuMDAwMDAwLCAxMzQ0LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IuefqeW9oiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSIgb3BhY2l0eT0iMC4zMjA4NzA1MzYiIHBvaW50cz0iMTQ0LjU4NDkwNiAzOC45MDI0MTk0IDI5MSAxMTAuNDY0MzA1IDE0Ni40MTUwOTQgMTkzLjkwMjQxOSAwIDEwOS41NTA3NDkiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLnn6nlvaIiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMikiIHBvaW50cz0iLTcuNTMxNzUzZS0xMyA3MC43NTEyNzkgMTQ2LjA3Njk5NCAxNTUuMjI1ODY2IDE0Ni4wNzY5OTQgMTc3Ljc5MzA4NSAtNy41MzE3NTNlLTEzIDkzLjMxODQ5NzMiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLnn6nlvaIiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMykiIHBvaW50cz0iMTQ2LjA3Njk5NCAxNTUuMjI1ODY2IDI5MC45MzQxMzggNzEuNjY2MTY2MiAyOTAuOTM0MTM4IDk0LjIzMzM4NDUgMTQ2LjA3Njk5NCAxNzcuNzkzMDg1Ij48L3BvbHlnb24+CiAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0i55+p5b2iIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTQpIiBwb2ludHM9IjE0NC41NTIxODIgLTUuODk5OTA5NzdlLTEzIDI5MC45MzQxMzggNzEuNjY2MTY2MiAxNDYuMzgxOTU2IDE1NS4yMjU4NjYgLTUuNjg0MzQxODllLTEzIDcwLjc1MTI3OSI+PC9wb2x5Z29uPgogICAgICAgICAgICAgICAgPGcgaWQ9IuefqeW9oiI+CiAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTUpIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHhsaW5rOmhyZWY9IiNwYXRoLTYiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMSIgZmlsdGVyPSJ1cmwoI2ZpbHRlci03KSIgeGxpbms6aHJlZj0iI3BhdGgtNiI+PC91c2U+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==",Use="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjk1cHgiIGhlaWdodD0iMTk3cHgiIHZpZXdCb3g9IjAgMCAyOTUgMTk3IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA2MSAoODk1ODEpIC0gaHR0cHM6Ly9za2V0Y2guY29tIC0tPgogICAgPHRpdGxlPuW6leW6p+mAieS4rTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMjcuNzcyODY0MyUiIHkxPSI0My4xNTUwNjczJSIgeDI9Ijk3LjIyMjIyMjIlIiB5Mj0iNTAlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMzMTdDRDMiIG9mZnNldD0iMCUiPjwvc3RvcD4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzI3MkE5NSIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjE0LjI3MTI2ODMlIiB5MT0iMzEuNjQ0NzI5NyUiIHgyPSIxMDAlIiB5Mj0iNzMuMTEyMDA3OCUiIGlkPSJsaW5lYXJHcmFkaWVudC0yIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzI3NzFEQiIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjg0REIwIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMTAwJSIgeTE9IjM1LjA0MTMwMTklIiB4Mj0iMCUiIHkyPSI2NS41NDY3MzEzJSIgaWQ9ImxpbmVhckdyYWRpZW50LTMiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMzA2NkI0IiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMxNDM4OTQiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSI1MCUiIHkxPSI2LjA2MjU2MyUiIHgyPSI1MCUiIHkyPSI2NC40MjMxOTgxJSIgaWQ9ImxpbmVhckdyYWRpZW50LTQiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMkY3MEM5IiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyREUxRkQiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtNSIgcG9pbnRzPSIxNDYuMzI3NiAxNi42NDc5MjI2IDI2Mi45NzU1MTcgNzMuNzI0ODcwMiAxNDcuNzg1Njk5IDE0MC4yNzQxNjIgMzEuMTM3NzgxMSA3Mi45OTYyMjgzIj48L3BvbHlnb24+CiAgICAgICAgPGZpbHRlciB4PSItMS4xJSIgeT0iLTIuMCUiIHdpZHRoPSIxMDIuMiUiIGhlaWdodD0iMTA0LjAlIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJmaWx0ZXItNiI+CiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjAuNSIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd0JsdXJJbm5lcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgICAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjQiIGluPSJzaGFkb3dCbHVySW5uZXIxIiByZXN1bHQ9InNoYWRvd09mZnNldElubmVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlQ29tcG9zaXRlIGluPSJzaGFkb3dPZmZzZXRJbm5lcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJhcml0aG1ldGljIiBrMj0iLTEiIGszPSIxIiByZXN1bHQ9InNoYWRvd0lubmVySW5uZXIxIj48L2ZlQ29tcG9zaXRlPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMC43OTY4MzY4OSAgIDAgMCAwIDAgMC45NzQ2NjAxMDggICAwIDAgMCAwIDEgIDAgMCAwIDAuNSAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dJbm5lcklubmVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9Iumhtemdoi0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iMDgyMC0zROWbvuiwsS3liIflm75WNC4wIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTQ3MS4wMDAwMDAsIC0xMzU0LjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0i5bqV5bqn6YCJ5LitIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNDcxLjAwMDAwMCwgMTM1NC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSLnvJbnu4QtMyI+CiAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IuefqeW9oiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSIgb3BhY2l0eT0iMC4zMjA4NzA1MzYiIHBvaW50cz0iMTQ2LjEzMTc2NSAzOS40MTkzNDQyIDI5NC4xMTMyOTggMTExLjg2ODYzNyAxNDcuOTgxNTM0IDE5Ni4zNDE0MjkgLTEuNDIxMDg1NDdlLTEzIDExMC45NDM3NTIiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0i55+p5b2iIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTIpIiBwb2ludHM9IjEuMTM2ODY4MzhlLTEzIDcxLjUyNDQwOCAxNDcuNjczMjM5IDE1Ni45MjIwODUgMTQ3LjY3MzIzOSAxNzkuNzM1OTA1IDEuMTM2ODY4MzhlLTEzIDk0LjMzODIyNzgiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0i55+p5b2iIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTMpIiBwb2ludHM9IjE0Ny42NzMyMzkgMTU2LjkyMjA4NSAyOTQuMTEzMjk4IDcyLjQ0OTI5MjYgMjk0LjExMzI5OCA5NS4yNjMxMTI0IDE0Ny42NzMyMzkgMTc5LjczNTkwNSI+PC9wb2x5Z29uPgogICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLnn6nlvaIiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiIHBvaW50cz0iMTQ2LjEzMTc2NSAtNC43OTMzNDg4M2UtMTMgMjk0LjExMzI5OCA3Mi40NDkyOTI2IDE0Ny45ODE1MzQgMTU2LjkyMjA4NSAtMS40MjEwODU0N2UtMTMgNzEuNTI0NDA4Ij48L3BvbHlnb24+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IuefqeW9oiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC00KSIgZmlsbC1ydWxlPSJldmVub2RkIiB4bGluazpocmVmPSIjcGF0aC01Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTYpIiB4bGluazpocmVmPSIjcGF0aC01Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==",Hse="data:image/png;base64,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",Vse="data:image/png;base64,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";var jse=Object.defineProperty,Gse=Object.defineProperties,Xse=Object.getOwnPropertyDescriptors,OR=Object.getOwnPropertySymbols,Wse=Object.prototype.hasOwnProperty,Qse=Object.prototype.propertyIsEnumerable,RR=(ee,y,E)=>y in ee?jse(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,QT=(ee,y)=>{for(var E in y||(y={}))Wse.call(y,E)&&RR(ee,E,y[E]);if(OR)for(var E of OR(y))Qse.call(y,E)&&RR(ee,E,y[E]);return ee},ZT=(ee,y)=>Gse(ee,Xse(y)),Zse=({className:ee,style:y={},title:E="",childNode:z=[],knowledgeNode:ne=[]})=>{const ie="rem",se=[{position:"absolute",zIndex:2,bottom:112,left:44},{position:"absolute",zIndex:3,bottom:94,left:74},{position:"absolute",zIndex:4,bottom:78,left:104},{position:"absolute",zIndex:5,bottom:66,left:136},{position:"absolute",zIndex:6,bottom:82,left:168},{position:"absolute",zIndex:7,bottom:104,left:202},{position:"absolute",zIndex:8,bottom:122,left:166}],ae=[{position:"absolute",zIndex:10,bottom:166,left:66},{position:"absolute",zIndex:11,bottom:148,left:120},{position:"absolute",zIndex:12,bottom:150,left:180},{position:"absolute",zIndex:13,bottom:188,left:164},{position:"absolute",zIndex:14,bottom:192,left:114}],he=(Se="")=>{if(!Se)return"-";let Be=3;return/[\u4e00-\u9fff]/.test(Se)||(Be=7),(Se==null?void 0:Se.length)>=Be?(Se==null?void 0:Se.slice(0,Be-1))+"...":Se},pe=()=>(Array.isArray(ne)?ne.slice(0,7):Array(7).fill("\u77E5\u8BC6\u70B9")).map((De,Re)=>{const Oe=se[Re],Le=ZT(QT({},Oe),{bottom:`${Oe.bottom}${ie}`,left:`${Oe.left}${ie}`});return Me.createElement("div",{key:Re,style:Le,className:Fv.smallBallGather},Me.createElement("div",{className:Fv.smallBall},Me.createElement("b",null,he(De))),Me.createElement("div",{className:Fv.smallBallDish}))}),ve=()=>(Array.isArray(z)?z.slice(0,5):Array(5).fill("\u5B50\u8282\u70B9")).map((De,Re)=>{const Oe=ae[Re],Le=ZT(QT({},Oe),{bottom:`${Oe.bottom}${ie}`,left:`${Oe.left}${ie}`});return Me.createElement("div",{key:Re,style:Le,className:Fv.middleBall},Me.createElement("div",null,Me.createElement("b",null,he(De))))}),xe={position:"absolute",zIndex:1,bottom:0,width:"100%"};return Me.createElement("div",{className:pn()(Fv.box,ee),style:y},Me.createElement("img",{className:Fv.pedestal,style:xe,src:zse}),Me.createElement("img",{className:Fv.pedestalHover,style:xe,src:Use}),pe(),Me.createElement("div",{style:{position:"absolute",zIndex:9,bottom:138+ie,left:"50%",transform:"translateX(-50%)"},className:Fv.middleBallDish}),ve(),Me.createElement("div",{style:{position:"absolute",zIndex:15,bottom:214+ie,left:"50%",transform:"translateX(-50%)"},className:Fv.largeBallDish}),Me.createElement("div",{style:{position:"absolute",zIndex:16,bottom:234+ie,left:120+ie},className:Fv.largeBall},Me.createElement("b",null,he(E))),Me.createElement("img",{style:ZT(QT({},xe),{zIndex:17}),className:Fv.spectrum,src:Hse}),Me.createElement("img",{style:ZT(QT({},xe),{zIndex:17}),className:Fv.spectrumHover,src:Vse}),Me.createElement("div",{title:E,style:{position:"absolute",zIndex:18,bottom:304+ie,left:0,fontSize:24+ie,width:"100%",textAlign:"center"},className:"c-white blod"},(0,Et.Pq)(E,9)))},Yse=Object.defineProperty,Kse=Object.defineProperties,Jse=Object.getOwnPropertyDescriptors,zR=Object.getOwnPropertySymbols,qse=Object.prototype.hasOwnProperty,_se=Object.prototype.propertyIsEnumerable,UR=(ee,y,E)=>y in ee?Yse(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,HR=(ee,y)=>{for(var E in y||(y={}))qse.call(y,E)&&UR(ee,E,y[E]);if(zR)for(var E of zR(y))_se.call(y,E)&&UR(ee,E,y[E]);return ee},VR=(ee,y)=>Kse(ee,Jse(y));function $se(ee){const y=new Map,E=[];return ee.nodes.forEach(z=>{const ne=VR(HR({},z.properties),{children:[]});y.set(ne.uuid,ne)}),ee.relationships.forEach(z=>{const ne=y.get(z.startNodeUuid),ie=y.get(z.endNodeUuid);ne&&ie&&ne.children.push(ie)}),ee.nodes.forEach(z=>{const ne=z.properties;if(!ee.relationships.some(ae=>ae.startNodeUuid===ne.uuid||ae.endNodeUuid===ne.uuid))return;ee.relationships.some(ae=>ae.endNodeUuid===ne.uuid)||E.push(y.get(ne.uuid))}),E.length===1?E[0]:E}function jR(ee,y){const E=new Set,z=[];return ee.forEach(ne=>{const ie=ne[y[0]],se=ne[y[1]];if(!ie||!se)return;const ae=`${ie}-${se}`,he=`${se}-${ie}`;ie!==se&&!E.has(ae)&&!E.has(he)&&(z.push(ne),E.add(ae),E.add(he))}),z}const eae=(ee,y)=>{const E=ee==null?void 0:ee.map(ne=>{const ie=se=>{let ae=[se.uuid];return se.children.forEach(he=>{ae=ae.concat(ie(he))}),ae};return ie(ne)});return y.map(ne=>{let ie,se;return E.forEach(ae=>{ae.includes(ne.startNodeUuid)&&(ie=ae[0]),ae.includes(ne.endNodeUuid)&&(se=ae[0])}),VR(HR({},ne),{firstStartNodeUuid:ie,firstEndNodeUuid:se})})};var zp=je(59301),tae=({data:ee})=>{const y=(0,Me.useRef)(),E=(0,Me.useRef)();function z(se,ae,he){let pe,ve;switch(ae){case"top":pe=Math.ceil(se.left+se.width/2-he.left),ve=Math.ceil(se.top-he.top);break;case"bottom":pe=Math.ceil(se.left+se.width/2-he.left),ve=Math.ceil(se.bottom-he.top+15);break;case"left":pe=Math.ceil(se.left-he.left-10),ve=Math.ceil(se.top+se.height/2-he.top+80);break;case"right":pe=Math.ceil(se.right-he.left+10),ve=Math.ceil(se.top+se.height/2-he.top+50);break}return{x:pe,y:ve}}function ne(se,ae){const he={x:parseInt(se.left+se.width/2),y:parseInt(se.top+se.height/2)},pe={x:parseInt(ae.left+ae.width/2),y:parseInt(ae.top+ae.height/2)},ve=pe.x-he.x,xe=pe.y-he.y;let Se,Be;return Math.abs(ve)>Math.abs(xe)?(Se=ve>0?"right":"left",Be=ve>0?"left":"right"):(Se=xe>0?"bottom":"top",Be=xe>0?"top":"bottom"),{startEdge:Se,endEdge:Be}}function ie(){let se=ee;if(!(se!=null&&se.length))return;const ae=document.getElementById("lineContainer"),he=document.getElementById("parentContainer").getBoundingClientRect();ae.querySelectorAll("line").forEach(pe=>pe.remove()),se.forEach(pe=>{const ve=document.getElementById(pe.from),xe=document.getElementById(pe.to),Se=ve.getBoundingClientRect(),Be=xe.getBoundingClientRect();let{startEdge:De,endEdge:Re}=pe;if(!De||!Re){const $e=ne(Se,Be);De=De||$e.startEdge,Re=Re||$e.endEdge}const Oe=z(Se,De,he),Le=z(Be,Re,he),Je=document.createElementNS("http://www.w3.org/2000/svg","line");if(Je.setAttribute("x1",Oe.x+pe.offsetStart.x),Je.setAttribute("y1",Oe.y+pe.offsetStart.y),Je.setAttribute("x2",Oe.x+pe.offsetStart.x+.01),Je.setAttribute("y2",Oe.y+pe.offsetStart.y),Je.setAttribute("stroke",`url(#${pe.gradient})`),Je.setAttribute("stroke-width","2"),pe.dashed&&Je.setAttribute("stroke-dasharray","5, 5"),pe.arrow==="start"?Je.setAttribute("marker-start",pe!=null&&pe.animated?"url(#triangle-start-h)":"url(#triangle-start)"):pe.arrow==="end"?Je.setAttribute("marker-end",pe!=null&&pe.animated?"url(#triangle-end-h)":"url(#triangle-end)"):pe.arrow==="both"&&(Je.setAttribute("marker-start",pe!=null&&pe.animated?"url(#triangle-start-h)":"url(#triangle-start)"),Je.setAttribute("marker-end",pe!=null&&pe.animated?"url(#triangle-end-h)":"url(#triangle-end)")),pe.animated){Je.classList.add("dashed-line");const $e=document.createElementNS("http://www.w3.org/2000/svg","animate");$e.setAttribute("attributeName","x2"),$e.setAttribute("from",Oe.x+pe.offsetStart.x),$e.setAttribute("to",Le.x+pe.offsetEnd.x+.01),$e.setAttribute("dur","1s"),$e.setAttribute("fill","freeze"),Je.appendChild($e);const _e=document.createElementNS("http://www.w3.org/2000/svg","animate");_e.setAttribute("attributeName","y2"),_e.setAttribute("from",Oe.y+pe.offsetStart.y),_e.setAttribute("to",Le.y+pe.offsetEnd.y),_e.setAttribute("dur","1s"),_e.setAttribute("fill","freeze"),Je.appendChild(_e)}else Je.setAttribute("x2",Le.x+pe.offsetEnd.x+.01),Je.setAttribute("y2",Le.y+pe.offsetEnd.y);ae.appendChild(Je)})}return(0,Me.useEffect)(()=>{ee!=null&&ee.length&&ie()},[ee]),(0,Me.useEffect)(()=>(window.addEventListener("resize",()=>ie),window.addEventListener("scroll",()=>ie),()=>{window.removeEventListener("resize",ie),window.removeEventListener("scroll",ie)}),[]),zp.createElement(zp.Fragment,null,zp.createElement("svg",{id:"lineContainer",style:{width:"100%",height:"100%",position:"absolute",top:0,left:0}}),zp.createElement("svg",null,zp.createElement("defs",null,zp.createElement("linearGradient",{id:"gradient1",x1:"0%",y1:"0%",x2:"0%",y2:"100%"},zp.createElement("stop",{"stop-color":"#42BECD",offset:"0%"}),zp.createElement("stop",{"stop-color":"#3C30C6",offset:"100%"})),zp.createElement("linearGradient",{id:"gradient2",x1:"0%",y1:"0%",x2:"100%",y2:"100%"},zp.createElement("stop",{"stop-color":"#2DE1FD",offset:"0%"}),zp.createElement("stop",{"stop-color":"#C7FFB0",offset:"100%"})),zp.createElement("marker",{id:"triangle-start",viewBox:"0 0 10 10",refX:"2",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto"},zp.createElement("path",{d:"M 10 0 L 0 5 L 10 10 z",fill:"url(#gradient1)"})),zp.createElement("marker",{id:"triangle-end",viewBox:"0 0 10 10",refX:"8",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto"},zp.createElement("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"url(#gradient1)"})),zp.createElement("marker",{id:"triangle-start-h",viewBox:"0 0 10 10",refX:"2",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto"},zp.createElement("path",{d:"M 10 0 L 0 5 L 10 10 z",fill:"url(#gradient2)"})),zp.createElement("marker",{id:"triangle-end-h",viewBox:"0 0 10 10",refX:"8",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto"},zp.createElement("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"url(#gradient2)"})))))},nae=Object.defineProperty,iae=Object.defineProperties,rae=Object.getOwnPropertyDescriptors,GR=Object.getOwnPropertySymbols,oae=Object.prototype.hasOwnProperty,sae=Object.prototype.propertyIsEnumerable,XR=(ee,y,E)=>y in ee?nae(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,WR=(ee,y)=>{for(var E in y||(y={}))oae.call(y,E)&&XR(ee,E,y[E]);if(GR)for(var E of GR(y))sae.call(y,E)&&XR(ee,E,y[E]);return ee},aae=(ee,y)=>iae(ee,rae(y)),QR=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())}),lae=({subjectId:ee,setActivated:y,onAddSuccess:E,settpacti:z})=>{const ne=(0,yt.useSelector)(Sn=>Sn),{pathsDetail:{detail:ie={}}}=ne,[se]=an.default.useForm(),[ae,he]=(0,Me.useState)(""),[pe,ve]=(0,Me.useState)(!1),[xe,Se]=(0,Me.useState)(!0),[Be,De]=(0,Me.useState)(!1),[Re,Oe]=(0,Me.useState)([]),[Le,Je]=(0,Me.useState)([]),[$e,_e]=(0,Me.useState)(null),[st,ct]=(0,Me.useState)(),ut=(0,Me.useRef)(),ht=(0,Me.useRef)();let pt=(0,Me.useRef)().current,gt=(0,Me.useRef)().current,zt=(0,Me.useRef)(!1).current;const cn=ie==null?void 0:ie.can_managed;(0,Me.useEffect)(()=>{ee&&Tn()},[ee]);const Tn=()=>QR(void 0,null,function*(){var Sn,ki,ti,fn,Bi;Se(!0);const jn=yield(0,on.ZP)("/api/knowledge/v2/get_node.json",{method:"get",params:{depth:-1,subject_id:ee}});if(jn.status===0){he((fn=(ti=(ki=(Sn=jn==null?void 0:jn.data)==null?void 0:Sn.nodes)==null?void 0:ki[0])==null?void 0:ti.properties)==null?void 0:fn.uuid);const ei=((Bi=jn==null?void 0:jn.data)==null?void 0:Bi.relationships)||[];let hr=[],_n=[];ei==null||ei.forEach(Go=>{["\u5173\u8054"].includes(Go.type)?hr.push(Go):["\u5305\u542B"].includes(Go.type)&&_n.push(Go)}),hr=jR(hr,["startNodeUuid","endNodeUuid"]);const qi=aae(WR({},jn==null?void 0:jn.data),{relationships:_n}),Sr=$se(qi);let Pr=eae((Sr==null?void 0:Sr.children)||[],hr);console.log(Pr,3),Pr=jR(Pr,["firstStartNodeUuid","firstEndNodeUuid"]),Oe((Sr==null?void 0:Sr.children)||[]),Je(Pr),console.log(Pr,Sr==null?void 0:Sr.children,222)}Se(!1)});(0,Me.useEffect)(()=>{Le!=null&&Le.length&&ct(Le.map(Sn=>({from:Sn.firstStartNodeUuid,to:Sn.firstEndNodeUuid,animated:!1,dashed:!0,arrow:"both",offsetStart:{x:0,y:0},offsetEnd:{x:0,y:1},gradient:"gradient1"})))},[Le]),(0,Me.useEffect)(()=>{var Sn;st!=null&&st.length&&((Sn=st==null?void 0:st.map)==null||Sn.call(st,ki=>{ki.animated=ki.from===$e||ki.to===$e,ki.gradient=ki.from===$e||ki.to===$e?"gradient2":"gradient1"}),ct([...st]))},[$e]);function Zn(Sn){var ki,ti;if(!zt)return;const fn=Sn.pageY-pt;(ti=(ki=ut.current)==null?void 0:ki.scrollTo)==null||ti.call(ki,0,gt-fn)}function Nn(Sn){var ki;zt=!0,pt=Sn.pageY,gt=((ki=ut.current)==null?void 0:ki.scrollTop)||0}function di(Sn){zt=!1}(0,Me.useEffect)(()=>(document.addEventListener("mousedown",Nn),document.addEventListener("mousemove",Zn),document.addEventListener("mouseup",di),()=>{document.removeEventListener("mouseup",di),document.removeEventListener("mousemove",Zn),document.removeEventListener("mousedown",Nn)}),[]);const yi=Sn=>QR(void 0,null,function*(){const{nodeType:ki,description:ti,name:fn,tags:Bi}=Sn;De(!0);const jn=yield(0,on.ZP)("/api/knowledge/v2/add_node.json",{method:"POST",body:{label:"\u56FE\u8C31",subject_id:ee,properties:{description:ti,rootNodeUuid:ae,name:fn,nodeType:ki[0],tags:(Bi==null?void 0:Bi.join("\uFF0C"))||"",color:"1"},relationships:[{startNodeUuid:ae,type:"\u5305\u542B"}]}});(jn==null?void 0:jn.status)===0&&(ve(!1),Tn(),E()),De(!1)}),bn=()=>{const Sn=[],ki=Re==null?void 0:Re.map((fn,Bi)=>{var jn;let ei;const hr=Bi+1,_n=Sn.length-3,qi=Sn[_n];hr%3===1&&(ei={top:qi!==void 0?`${parseFloat(qi==null?void 0:qi.top)+600}rem`:"100rem",left:"50%",marginLeft:"-146rem"}),hr%3===2&&(ei={top:qi!==void 0?`${parseFloat(qi==null?void 0:qi.top)+600}rem`:"380rem",left:0}),hr%3===0&&(ei={top:qi!==void 0?`${parseFloat(qi==null?void 0:qi.top)+600}rem`:"380rem",right:0}),Sn.push(ei);let Sr=[],Pr=(jn=fn==null?void 0:fn.children)==null?void 0:jn.map(Go=>{var _o;return Go!=null&&Go.children&&((_o=Go==null?void 0:Go.children)==null||_o.forEach(ta=>{Sr.push(ta.name)})),Go.name});return Pr.length>5&&(Pr[0]="..."),Sr.length>7&&(Sr[0]="..."),Me.createElement("div",{className:H1.listItem,key:Bi,onMouseEnter:()=>_e(fn==null?void 0:fn.uuid),onMouseLeave:()=>_e(null),id:fn==null?void 0:fn.uuid,onClick:()=>{y(fn==null?void 0:fn.uuid),z(fn==null?void 0:fn.uuid)},style:WR({position:"absolute",zIndex:10},ei)},Me.createElement(Zse,{childNode:Pr,knowledgeNode:Sr,title:fn==null?void 0:fn.name}))}),ti=parseFloat(Sn[Sn.length-1].top)+352+80+"rem";return Me.createElement("div",{ref:ht,style:{height:ti}},ki)};return Me.createElement(ms,null,Me.createElement("div",{className:H1.wrap},xe&&Me.createElement(rn.Z,{style:{width:"100%",marginTop:"300rem"},spinning:xe}),!xe&&Me.createElement(Me.Fragment,null,cn&&Me.createElement("div",{className:H1.add,onClick:()=>ve(!0)},Me.createElement("i",{className:"iconfont icon-tianjiatixing"})),Re!=null&&Re.length?Me.createElement("div",{className:H1.dimensionalBall,ref:ut},Me.createElement("div",{className:H1.archer,id:"parentContainer"},bn(),Me.createElement(tae,{data:st}))):Me.createElement(da,{text:"\u6682\u65E0\u56FE\u8C31\uFF0C\u7ACB\u5373\u65B0\u5EFA\u4E00\u4E2A\u56FE\u8C31\u5427\uFF5E",textColor:"#fff",buttonText:cn&&"\u65B0\u5EFA\u56FE\u8C31",onClick:()=>ve(!0)})),Me.createElement(Jt.default,{open:pe,centered:!0,width:"1000rem",okText:"\u4FDD\u5B58",onCancel:()=>ve(!1),cancelText:"\u53D6\u6D88",afterClose:()=>{se.resetFields()},confirmLoading:Be,onOk:()=>se.submit(),title:"\u65B0\u589E\u77E5\u8BC6\u56FE\u8C31"},Me.createElement("div",{className:H1.modal},Me.createElement("div",{className:H1.mHead},"\u8282\u70B9\u5C5E\u6027"),Me.createElement(an.default,{form:se,scrollToFirstError:!0,layout:"horizontal",colon:!1,size:"large",labelCol:{flex:"110rem"},onFinish:yi,className:H1.form},Me.createElement(an.default.Item,{label:"\u56FE\u8C31\u540D\u79F0",name:"name",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u8282\u70B9\u540D\u79F0"},{type:"string",max:60,message:"\u8F93\u5165\u8D85\u9650\uFF0C\u8BF7\u7F29\u51CF\u5B57\u7B26\u6570"},{type:"string",whitespace:!0,message:"\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},Me.createElement(ln.default,{maxLength:60,showCount:!0,placeholder:"\u8BF7\u8F93\u5165"})),Me.createElement(an.default.Item,{label:"\u7B80\u4ECB",name:"description",rules:[{type:"string",max:5e3,message:"\u8F93\u5165\u8D85\u9650\uFF0C\u8BF7\u7F29\u51CF\u5B57\u7B26\u6570"},{type:"string",whitespace:!0,message:"\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},Me.createElement(ln.default.TextArea,{maxLength:5e3,showCount:!0,placeholder:"\u8BF7\u8F93\u5165"})),Me.createElement(an.default.Item,{className:H1.mType,label:Me.createElement("span",null,"\u56FE\u8C31\u7C7B\u578B ",Me.createElement(lt.Z,{title:"\u5F53\u524D\u77E5\u8BC6\u56FE\u8C31\u7684\u7C7B\u578B\uFF0C\u5982\uFF1A\u5927\u7EB2\u56FE\u8C31\u3001\u80FD\u529B\u56FE\u8C31"},Me.createElement(ys.Z,null))),name:"nodeType",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u8282\u70B9\u7C7B\u578B"}]},Me.createElement(Q1,{subjectId:ee,type:1})))))))},xd={statistics:"statistics___BP4qi",noUnfold:"noUnfold___EpqXR",wrapBox:"wrapBox___TsFlb",scrollBox:"scrollBox___Oh4zJ",content:"content___NRQFH",title:"title___z20Sn",box:"box___k6Eep",left:"left___Gnxfc",right:"right___rNC9V",head:"head___mT3Wl",radio:"radio___sjK3F",active:"active___oX7gd",average:"average___KVA2l",li:"li____NnY1",yellow:"yellow___CCujs",blue:"blue___m_425",lineTitle:"lineTitle___qo6vf",echartsTwo:"echartsTwo___aC24D",echartsThree:"echartsThree___Z2Q2A",unfold:"unfold___VUl4t",select:"select___dM1mS"},uae="data:image/png;base64,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",cae="data:image/png;base64,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",hae="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAsCAYAAAA5KtvpAAAAAXNSR0IArs4c6QAABFJJREFUaEPtml9MW1Ucxz+nlxbaUkYvYjdENG7RiEg6jNGQ+aIx08SE6IvZxGS+qGGPPjnj2+J8MIuJMVk00Zgg0zc1Rpm+Gf+M+GdkZKhT4gyMjnWllJWWtrf3mNPLHJcWaBmlXcMvaV96fufez/n+fuf8zjkV/a8ZBzB5R4JO7VpICHlo8A3nt6L/VWNSIttrl9UiEzAyeMz5sOg/khmTkq7aBxbfDB6r2y8OHZFBjzf7rt5Mb61ChyOcWkxrhz86KiaEggxF5Aum5INaBRaCJ9taxPBSaG8D15zQVaVwnQaao/QxlhLSxnU/1Y+RLdxP1QA7BAT8IHIzSekWjUMyBS1NUO+EuTgkUvn9lB84mwVNK4pA921c4bkFS1V/IzS4QA3AYroCwM2nBpnf14fp9RUFvRmNVLSYskIh3XryOMJIc+WZw1sKvdrAlT2kFbAzPEVGDxB5eqDi0EUDzyetSWC1UFk+oq74LPqFURrD/9AUOo8jm8n9nNwR4M/HBzDc5Q1vhwO8LvC5N5jDV5MQXVg/u1wLUe789TP8F88hpFnQIdkUYPyxATJlhlYPb/WBu97+GkUpHJ6HZIEZb3lX/qkx9vw0hJYpsBasQE807+LsE6+AkqKM1tgAeuMGgC/HYNGKyoKmFL37uw9XVXW5k3Ro/NX7PLMd3WVEtbr21kPLiuwpSuG1gLVUguCXb+JMxdcF2ErYsgHfNfIpt06M5GANl4doWyfzgT25HM3U+9h9eghP7BKbBauKi08+t9eNDg0O9uUXN5uusGdumu6v3iLT4ONCTx+RjmBeXt7/9XE8sdCmhbECPjG4rHAG6jTBy/1bANx+dhjPXIiJh54lW+8pGNJdw28z3floSTkbnoVozF4qteoC/w4wDDjxcYWAO377gsngU8g1ZltP9CIJ/23r5vfyBj/8YnLmnH1Z631Ao6dL5OrlyihsmjiyBqbTVRKMamxm4cy4XUG1LQzeZ22V1gSupMIlky45pDPw3pA9LJ11gpees/KwOhVeh/bvfyVTIbuKu+8Q3L5LcEPA1arw9z+bjI7b83DfgxrBzhsErlgOAwsJu8xqH+peKtjLBlwphVNpeP+kPQ9dTsGLB608LBtwpRTeBga2Fa6lSaumQ3r2KsRX7OtvBuAmNzR7N3AAkMnCzJz9PKvagVWpurM5/5y7qAMANUZZE1KZ69DqfH30D3slpfYQe++16uHJS3A5Yv+9PSAI3GL1Nfr7Cl8Bezst36kZmLlS2Nc08+vw3HOXfJW/ur1wu0DVBSutaOCN1s3V5rcNvNaFuAoVV121aZb/PmpzsspNiwr34i/Er93MVTtyYhHU5VohKwnY2wDqU82m7orjydXP0UsCrmbQYt8tD3g6IvdLSe5PH7VomoPunboYyy1f6ktK2TAdYRS4p+aABT+26TwihMidTPy/TM/EZcBY5HUEPUJyE8zL60gjSEk47RYc1XURu9b6P7vslVpOgNBqAAAAAElFTkSuQmCC",dae="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAACYCAYAAABNo8N/AAAAAXNSR0IArs4c6QAAIABJREFUeF7svQmQJcd5Hvj/mVnXu/uamZ4bg8E1wwMQIUqkKJKwSFGiRGklLWFRorSWw0HL2tB6FVJI1kZseLixDu/acmht7VIrru31+gjboC9ZIkiKpAcWZZqkAJGAMINjAMzVMz3T9zvryGv5Z73qfv36TV+DATgRnTHAX68rMysr66u//vyvRLhLi7UWAdCNHhGstYBE6XdxTHQ75zdOAXVDTV13ecf9Tvv90zXpOtu6/nD/W403v+7a9TeOrzj3xt3/6mR8h+Mln5G7sDhAf5Jg9e2p/ptnAD55JqfbKUVdot+Gziepiz513f3NM/DJT55xNC9nvo2wM9++FlH3u39MdOtS9EV0dP9DfQyNb8P9bXV+qyHt4v4LZrFV12/2+W09kDd7kKOuT4D+zGceZ3Tuox89bT/zmXNI9PUYa9EX0VH9bXW94fbD9T/zmVP40Y+et0Tz8efHRLcz/q36304fm9UZ7v/8+dP2zJkz5nb7fSPa38WAPsMAckDsvHyGYAQARNfKU0/N9/t7PwA89e3/iFIpjolS2er88Ii2qj98frj95td///tPbetFWOt19P2vnS/mhiiV8xZxD9A7x9kOWli7BuinnjqP9FCJjoIb0AOnc/0Hv6H++wE+/enr+J73HHTtz50DOH06p6PKaarz7deBqCtDfxhuP1y/aFt0f+LEtH3ttVkkSt0Vx0RHXX+wfrs969rc7v0/9RT10X99+8f0t7xvMHuA3gE4d1OVAP3MM9c5tX3HOw7aZ565jkRH9VWcIzqqfvH3dvug6+/w4XE7M7OEROl3cUx01PndjH+wzU77H6wfx4v2h394Qt/u/RdzeIv53AP07T7krdo7Dt0HNLwDAJ4hZPdbFcdER5UR9c9Hy3iq9GEnk8NxALjUp3R4CeD48ZyOOL2h/mrbfv3h/jac3+pmh8azrr1qWzj5vLnd+1+dQ4foofmEg3qPQ2/1kG7zPAH6/PlzYlQ3p06N2fPnl5EonS+Oieb1NwoBc3On2QMPTOeA3rIcBIDrAECUSnFMlMr689PTsZ2djZAonZ2dXcbp6TFLlH5Pw0GYheuOuvP9Y6LufL8u0eH2ly69aOv1GT045N3c/9qcbLz5c+dAP/74Z9ZdY8spepMq7HJR9SaNduCy1j7BAc47EeGVVxbx5MkJS5R+F8dER470/DmAU6cBiFI5dRouPXWJHX//x1x/8/NNnJqqW6L0e8okdp6FSNTV378f4ObNnI6q329LfWxrpm5SnwBAlPpjTZwydUvUXX+T/mZnL9lu93l9u/fv5oLmZNR8fvOGwj1Ab+tR7rqSA/QrX3Ec+hUCcZ+O6rA4R3RUofbhvGDd8be4/iYAYLFP6XdxTHQ754evsdP+httvdn2dLpl26Yq63fsfbL9hvk5+v0J8fI9D7xqt22hIgL506UlvG1W3VSUIjrM4nPZgeVvV72ilRqNsV1a6SJQuVBwTXXfhMQA5t2KC4AV5Jwd06dJx9dhjZ9SdvMbr1ffdLXL0AT0jxvCwWrZEaWKKY6L5RG22qspr3GxN8qB2euQL0mI+1kxmiVLd4pjo6/UgNu+nQbAGAKIO4v3jFWikRs+Un1e3e/+bXv/4cYW4B+g7+qzPnj0jTp5sbotDHybVGwG9P6LimKh7AWjh2Krzw7VTPrSA/kENcpqX4b8UZ4mu1c1/bSybt96q91Hj6V+jBpBly9r3X8w2m+zt3P+m83O4LvcAfUfhDGDPnhGzD1z3t3WZISXE9P6ynb3ZRaLU3h0ffTtrL1aCTtfDSjm0nW7iKJ3vsAQrJrRER16vDQBVACAKAFu1L/oiOrL/7fZXT1DKFe1530o3nYft3H9/Tqif4fmBPUBvC2a3VcnaM+Lmc68G1ImZiiybj5GoeyBO9ZXT7Zal7rTwyg+4F6TAJlEqQ/ja0OVW9bGboC2Hlig1Lo6Jbmd8HXpJ6MXqVy76Yz3FZLqg+NiLye3e/6bjmD6Y7XHo7Typ26jjAH0zB/SazitXo62q1Ei15rRs++HmzZuO5qfzY6JF8+7MQVE+fDrvbxhBBZqIujL0h04HoFIBIDri9Mb++nWpzagLbnn9vBX2BEp/SQlxKcl1fru//8Hmq8f96ZmRUfboo5++owvP24DCuqZ37aLw6ac/4R2NhAPg1ETbzi9WkSj9Lo6JbneiYn3Ei6oH+i/IcKsyAHQBgCiV4pgoQKkU2F4vRaL0u9cTWCopS3R0/fwc1Rldf5vXLwOo5WU1Xf+T+Hbvf7N5mopVinuA3i6UdlfPPv0Jb/5oH9AEYgJ2v6uFpQQnx0NLlP5UHBOl3y8tJVjohun3+Hho4/iIV8J9EUS+LREoCaj9/opjoiNLnCG1A6LULvJtL86QqANsv6+i/XD/w31uVX/tvEClYnmAPx0X90R9rayk2GjkL9eo+y/miuioQvM4OJ8wpVLEPQ69O6RusxUBeuGYCl31YcvDJn3Qwx51Oqqf9iIxFQHk/yCGnI4qxTmiIzsbaj9c//XqfxyAAN26+FS8ag0aGM8gqLc5rXm1IUvQ3Fw7PX36M5tqUnbU/x2svO1P8h0cw666tvYT3tIrwS0gt0R8FwCIUimOx2GlmSLjxEkL3S5ArSJNBqeD+vgDAUCGScIxDLUlSq2LY6L0e/j8GvpzhIehb5MkQ6Kj6m/d3/CU3OqNGINANuWNha/0GC8NPMtcT12rzPed8tfuP+95/fyMNwK7tJIiUXd2pYzjja4l6mYvu5HgHqB3hdNtN7L297ylV54fCejxcYClJRIl+o+vf0x/c4CeKOGgnYK1Uxy/5yGh2odKYQSQECgJuMVohvDk6sQAREeV4fZFX/nnZOv+N/Q5zNEHxqNUJjuLX18nDTUaJHYAHD+qHaCLuSA69H67n7iSom0Elij9Lo6JOkDfmEjw9Jk9Dr1tdO6i4rlzZ/zp8PqthIJb9oishMjCdV+mZrMJ4/tOeMqeLMTmXYzojW+SphI90ZSdpT/r1uv1DQMwaul1CZsaO3EwRtwD9B19wvbcGX+ldGkkABt13640MyRKgyiOiSKLsNNj69xErUlsUHrAt3xfGQJvg244CDxL4CFK/RXHRLd3k1vy6HXdbP96Ej2Vyu7KNzqDL2m14tt2J8ND+6Xzvxi8/+2Nd32txvHjvT1A72bmdtBmPaBv7euQd7l2vtNDVq+H2GoD1PqWk1a7BWOTb/OXklI519vR/8n4VmjxiuPcIBdAACmkjjqA94+J5mXz9htvkyGAsQBEqdCLQy9L8XKtv/5q+wCgIky2dPPF7pqBnM7mxvZyONv3kFs/P4VIQtQBfmUFGo2Go8PzRb8XlI7vu+93NrdG7uDZ3cmq2+Qwd3IIu+vb2jN+88rNQjG87U6IO3NRG+LQmfVLJwOLY+W74qkVr03gg1BpFree7mDfcWpwIlQ2p4lbb3tyblGxnoke7gH6dqdx8/YE6NbMVWdqqxnftliGREe1Ks4RRd5gyKrrAF0xYJZ61ciLjpQ6mUJisJ4VVqJyL3xxTJR+0983O0+rJ7KhF6soRIXWCkt0ZH+ZQs8XVtK1RzD4W1/fMM576T59pdVhwCp2/f23ll7Vtcra3ND9j5qf4fkbnC83v0mpuwfoO4tnuHDhl4OToXAcugUtqEHN0a3KKECTBTDTLEjxnr4tehiSBTwLX6jh8+uv6oMPGWRAlEpxTHRU2W39AEPkLEm5fbFdgTJ0nAVzrTSXX9PVysY1wcYxrPceHPbvW1JHevfcc2ZV6bPVHL+Z5+9ekePCLwftyKx6V6ybxHYboFoFIEqlOK5WAXmNxUnAnRW7//xLJc/Kbj1MogOj+xt+QlkG4Pvku5mfKY6Jjio7rb9dRPgAXKdZyV5q9XBggdrtApTLoK68pCplzw7ev+t62Ntq2Ltq6PpVOdXFPUBv96nsrp4lQJvULeuqZc+2uxKJuufVPyaaA3rtIcZJxFnW4KUJaQtA93oAIjoSpGKicLBbNyjfEzaTComOxGv/HNXZzd0M95+BQh+EJer6I7cg8vwecg+SkiGDOK3jq03EDEulvqm9lx/fmLmsyw7QAyAeBegtBl31D3b2AL2bJ7uDNtb+ctCezQG9k8L4JEfm8d6A2bpkpG3DdIh8elv9eeCBBAlEc7zlx0TfyEKyPGNxWvcuNHuxt+FlUukV6QB9m6U6fbCDuCdy3OY0bt784sW/FE6GJEuQu+eQ++Zw08K1s1IB5BM8bUYiGpPW+WuQZSyUtrO8P5SlyVsFnazvUUoAzwMgSqU4JjqKoxbctYivGea4w+eHx3+L66HPkDGdeq0XmqWJCCBe71yi00UJNrWrrq2Fu+o23VOLYawo0Tly5Ldv5blyR5/zTjvf1Sdypxe5E/XtxTNhR98YDUDiSiRuFNypOO5KTFRNlKcmWLwsEcKce41baefsVIh8wvW3Fd6UVCg8YYm6F8ITFqVCovS7OOa9ywFPb0YmmEq0dyC1Xh6AUJwnSr+LvoiOuv5w/dX5RIaBr5JIv9SMkwEOTfeVSPQrK6kD9MD9u7ZD8zPs7r0B70p0cA/QdwLGa306QEd9QO+A4yTZfsF55NIVhGHujwwgbUfvC9vJeINEBwESyMRWZLEpjrcb9oy6xWuz/+RRzBbzZHkUVWOFBL+2qP2phRiPL6bjb18Rtpybprfg0DSOUeOJAbHsZ7HXudKMxgacT/qGSSPmM0uA3mHZEM8go/YeoHc4iTutfvWrvxKNHWjfQkQYdshf6515FZFKAvSa+1GcAHhBFMTeofq2om43DHY9IivXf/u7MVk4DHArVwoG1qJBr76og8lFLY4s2ql3LmYmukXui9Eyi8IEfakSL3htBdNBGTq/Nw+bKdhRkenrAxS2mvvWEmsffPTTt3QH36r9G3n+rhU5rl79lWhMpRs9cmj2Sp6FnkRHhwrjFZEthH6wPzJJkmtBkgRA+PUgMfuKPAGbPwPBLSiNQJRKcaw0YvfVUuPm//eDO32IBH3DoiaIyQVVPrZgKqeW0ujYaN1v/3qYGAbQSspwY8W9n0XpixweX0pGArqYG6LbKOVAtfDgHqC3MVW7r2Kv/krUDW4B6GEGNMCwUznmcRkKCMNV/9DAKrssa5HxDuQvyE4XcQNCdzj3z+/3ey+e2v2drbW0POxab2JB84NLduKBhYQ9mGvOV8enETFOSqXry5gW4V79NzQMwUuuJZY49OYRZBuHOlS/rPYA/Xo8z037IED3dPcWHPXWQVSpHvNKoiGSAY4WWGFX2rxkvCP1XG+xU6l5TcqtX/v77+JycR8AWdcLkaM4Lizu9PfB89ubLstEalhjyUbTC0nw4Lysnu54ECdjwdWlFAcA3Ren1MpcGgXWbAwCG77e5kFnJR+aexx6e89o17Ws/ZWod1XSUgjACAtMoaNUimOiQ4WpuoflSZ6kEsNVV9EElpOJKING3p/bDmhoW6DVvwEIwa1SGok6+KsYBHigZAzjM7/1YW2sl4M5B/BWcCZnVmMA1ju1bj01hlVX9PjDz/DqsQuAfPV+invrtl7LQgfoobLVfFFGKHJ26meGaoe11oEDv7Xerr718N6UGtuSod6UkW1x0evXP1GqK397Mu9AX0zUvXav4vl+X/4lbUfg2V5aLXWgPFbw2g2XVwosz9vgt7MlQygAFEONmtw8EdGg3zpfryz82/f2X4nVuR0F6HwTHgsObgwsum22ij+Y/H1AtMZavDXQGXCQiTdx+j/2at9bxKOsDl2nV9ORgN7hA237YXMP0DuctJ1Wt9c/UYo163PU7bfOdMVHvU+k/pq/cwDaJnKylIa1htYaOYFLMOefbDLgfvpqvbTw5KNCLxy2WesQM2m9v6Pc6oUJvdaoCK3cnj/IqCEjUwa8FvBgxfL6rOKVJYbWGGOAWYK+sYTxNe5Ppu9Ecgvn2/f+3NeGu+TpbBIFxPuHyyYxXSPGFXmVFdzj0NsH2W5q2utnSrFZ7EcNbtHDQAxeZid8jDjHjKP1tSUHuMAXtgfjUQ8nJzONwjAhEIFLVHzf5d/+QNj8rz+HRo3WqOxm8NtoQ9sgaq9xLovu+QZikDpGbknuoX/aMms16c/RpGmI3Wvxvf/D5wv31KJ7ld5IHIcejrENpQUyxBB1nxwPwUrr6ChAi2B5D9DbeGi3U2VHgB64UKYnfKa5Z73AUFxJ1zCvbctBEEzUVlRpAo1lAJw22rQHr/z6T/ntcx+7nXHedlvmzSeVtz4ByEEbkj4Y0j9r8+gWNKlEoS/ae3/xi7q3kvkemhzYAQi8nIDj7OvLzvgzQKepV/ad/lSRiey2b+lOdnDXytA3bvxauaZNn0NviNO+5ZxlquYpU/M7WImUVysJG/kKNIINfalFGRmokCUqWPkvE2NX/sGnrbW3yKZ0Jx/L+r6tP3FW8YPfAsFAk0jNOBogyUhwRK2NN36hffgTzxmWaA9V4smVXoktZzqbT4NRi8IdDj3yYBn37QF6h9O2s+r2xq+VQfccoONEYBQqS9T1QiZtOi5M28VxIrDl31dvi/3jNgM/4NpoY2TkdWNUgqUmqHLOLGgBY6/+yi+xeOYndzaqO1QbWTeJ3vYPc6WJAY5oaONR+mlBKSgd/5N4+qfm2qoSoic4GVNUmqVj/sUbFTaXrs7FLeZnY96boaBer7aM+87sceg79HhdtwToWGeU42fLQg9s3pT8FO6fMFitpNqyssh6nm12uW5mZaH1kpqoKBx3/SngcODFv/K3UDYf3bLzN6iCKr/ldw36/YiCXDViwCKHNDP73/GvWe2hTk95wkA1TL1aOZF+KDyTRHpp5RCeXx5MBLVVIqcN573xpT1A3+EHTYBOTDzpLrNFZhdppoJr8t6DiJYFNu3VheylyYoiLUYeZGKswfFSR9fy/gDgwIu/8I/BpDvJyHtH71iVTvwrw+pz7iKFHhBJWW7beOzxf5H5DPMIL2Mp8qvbq5bisBQihKFI49Z0+M2ba5lzdjbUTrW8NDX1d/rhPztr+0bXvmtlaAfoWLn8jGEgbZJ6SDSfwLVPZsqrfCa+n/akgLK8clOwptRQDwaDpawAY9lkuaMrE6S28zm3U+c/9vvWkoHkO6OY8NAfKm/fxcHRkBIPee0yP/IXPieVzzwvT1VGIbqZjW0ZluM5fGC8Y8b2lXHx5j7zcrHv0Y5uKqz4i7gH6B3N2Y4rz839UqWqfcdRN0vjct0+ONnL6vun7UuvToQrCYh9/rIOHaDXQla1zWStnOjGhAbjXvJDDtDgtnn7TijaP/SkDPa/NjgWMsVkpXu/WT7yzq9L4DgcwitwrmtNYublg5MreuLQMfHMuZpI1PaX0H32IPYAfccxYOfOVJLeQpFB95bXu5B+74NVv7s0xr41H1hupZ0MmGj42bpwKW0zNVHummjSGIbAORx58S/+++8oQIeHnpRius+h++ZFsNgd/+CXyuXqq+BtDNDl6fWeL6RzST2v3/fIPrz0yiS7vLXo4By3EnIYd/Paa6eLE/f9ztYh9Xf8qW99gbtX5Jg7UwFTAHo9j05TjUHALdEX1fecqsLizQnz4lJIuS/seKCiug9SY8kLnI5WZl1I9Xi5idGkJrM2EKAf/3ffSYCW4eHPZXy/22yZ1NDGAjLmqfaxv/wfJ1hvLsdzDmopFXqesEnnYhwI5QD95+n3PjJduv7qpL7SKuaGaA6RLRYh7XQR9wC99dt0OzWIQ4Nt7qM+0gQgCHM6XC4nJw/2oFG7t/z8K75OFAEaS5VAZrDK1KQ1tpeUKj0ccyIM+XNMP//T//aOAZqFwA//AmBwAPSNfw+2/a0tp0IGhz+fif2OQxe+Hdbft9CZ/pmvTPC5OfAZ0j0NFpZe7xKgb9jD9QV59OQx/uxzVd6VxVwRdfM3kLyMfg8nMgOhFnBij0Nv+ZBup8L8i79erZZiB+jNSsfU/avZAyd8lsT7xeXZqg/Qy8YG3eEBhLa9JCrHMDEFYCiUhB196S/+6zsC6OAg+O/8I2DVfBtiaxTIpz8MZuGLm95HFp34svL3XwKDFlAb0kTL6n0Xuo0P/vk+/8ZNqbyhfcoziPhce6azr76MRw+XWXv5RHju2lbzNep8UIb5PUDvZuZ20MbO/3oVTAHoIZEjU0j+GWk/tdYCTldutPYdCjwtq17cLmOSlQTm4obUGDPGM76/0e0FByxyrjni/S/81P9jrX1dF4UY3QPe93wJWOnEujvV818A+ac/tOndq+jEl2NxaIZUdoXWrl3/wW9C9cTVhmheN7opoyjUKPNFbcxCMd/xSp3Mr1cD2ZlgF65NlmMXFplmgoJrLdGRAO7PHc2hOy9K8zjxyT0Zegf43HFVB2gr3bZPaQoQBDkd+ckMAOY6+8s31fiUwqjElDTlMO0EgdDc+gEiE61EVEAENQbWZBmaky//5D9+PTk0lh8E/3u+BBge2nCveuFLIL/xwc05dHjkj5R/8JIxyJlgqA3HpSO/+F88HsYc4mXfGpORX4fOslT7UdeWy8woXQ3SlYPVF24GiTVFMtUN89WfO5rDkfNZ9udx/H9v7vghvQkN7t5F4fyvV9MkOTAawqPTz3aUx2/oE9OpGT+WaVr6UUoNZiOuVjyWaiWjMvNAa63h+Isf/1dbApoFwA78FCAvg775+wBZbvcYLlh7BPzv/gJgMFopkz39Y2Dm/mBbgHaVjAHjN1YW9//CMwJ1ZkHGiS3XUy1qEkyMipV9K1sHSldeHuczW2s1tgBeUI7m9gB9h99Ox6ETmwN6QzrmYZads6AbcHzMsH2NtuI1lVqboGVWas40ZBLBRxaWfWQq9I2856XH/+mmgGYB+O/6KrD6d7kh2GwBsj/9UbDNr6+7c2y8G/zvfhLQ2+h9So5w6vm/Bvrqp7ecLRUe/SPp779EXnbGIkvC+6/O13/sqjZWeTxtK4sCLPO4Z3sRs14Qogx1Z7liry9Wwm66+hlzIofGwOeWqJs+y22KGomOnE/B9gC95RO6zQr2wi/XIPL6HHqLzljAZtWxfRqDklJkiEmSkoh7FD/Yk6WwnYlSYsK6NMGEoTARZu07Lj3+DzaTodnBj4P/8D9bd2Erm5B944Ngm3/q/s4mPgDeO/4DYJ4kdX1dWgw++/NgZv/ltmYiCe55KhZHZyjqABjD+cpfeKETvWXZszIue8lcyaZJ2c+6IYslMJ93dLVqKKCFUvvZ5YU6m9m1DLwizdzYPf9HkQ19W+N9syrdvSLH4i/X0oRt6WuRZRpb+Mh0G1lln+0tBmKll9hysJq1i1AtYqN6Y7Ubqn5QWvC0NuLhyx//1GaA5kf/Gnhv+dRGoMoVB2oMD4P38L8C5Bu9T61OQX7zo1uKGYOd9/wH/qQjpq+R8wYHa66NffxPRFBJyyJbnghu9LUXDNeSOhprVJxl3v5xaWrVirgyM2mXR3rMbdyBYP1tBRnexD1A39l31C7+zVqWdg7SVXzLbYYaidLv4phoW01Wl+Sxo5F/beYwm1/pZvUo9epRvgVEXiSFdOiJ8mIWHWCMWR+sPfTSz/yzTUUO/wAE7zsP6G2MArOyBcBLgKzIvbQ2F1Z1QT7zY2AW/9OOJog4tBTTlxi3xohKp73vF76WGOAlkXbGRXOWxCcB/aBd0EjHvr7WBpuapnjLwY70KvfguZd9b2P2m8H5GjWfUCrdxLEzexx6R09sh5UJ0NAH9GZNX8seujdAlRzyXrsOoG3P1qME6pFHtrZ+sWDsii5X46yyv4jUPn7hZ/7JVotCHHsP+N/9OUCxvTBCS9z7T38Y7MqG8L8t7z4Lj31Z+gcvuxcwOHKtOfbfvEzOdgFmnbFwYdaFsQyVwMy3fZGqTAp+Gb/rbWPmlZcm/aWdZ0CKqjf2AL3lI7q9CvbV36hDlDoOvTHf/loG/QvZW09NRM3rleRi0/e4bcpKycBYKFwQbIHozLZNqdpJCdB5OXbhZ//frQBN9XDs+/ug3ny7F5vOQfaNHwTbfnZXN67CY1/OvOkr1Lhbfef5uPI9N8lHMAhkuypWZj1kWCTzLbLzVcxC2+ep0z2/kL7tbePezcv72c0dq9+akt1oHPvflnc18De40d0rQ7/6G/VMKKfUJaBmUiNRB/D+MdHr8qGjBi3bZ1+6UikxnQO6FkH/80z1RYhmJfVrsaruM1JThJM99vLPblsPjWPvzTUZIxZ/1L+NZyD7xgfAdl/a9eMlQKfe9FXqYGXqY/9Ve5MJBYMjpp2pUvu6TixbyxOS5wzx9Wzb46mSpupfVPe/5bD3yrmG39n51hKS3cA9QO/62W2roV36jTqkOaA3K005VrqWHj5RE+25feFr88qOhamqlIRltsgmKoS1zSyqdjRxaA2Mczj2wsf/0XY4dHFtHH9fDmq+futE030Fsq9/ACBx0sKui4zu/c+Zd/CKxbA3t+/nv84YGmMsi4RpTwZLs0qRU9X6MoYzK11WETPx0WOcG3MyeuHVXQ0g8maxscehdzV3221kL/6PDWBBDugNe/qs3wOlhftK15PJI8AFTODiQmjBJAiMwvEEF84EHmNjbEGWjjD0hUXN77/w0393p6ZvNv7+XE3X1zmb1rOQfeOHALIb272tW9ZLwnu/osJj1+Lw1Mxy7X1Oq0HRjz7GK/vKrcs2ppQeBhUYDCUY5TFsJyJomtr+ahAvTNlLN8qRy3GW7w0zuEfMxglcv48Xg1k88tsbEtnc9k3dgQ7uXpGDAM3FYTcnJGpIjY7eojTteLSc1iaaWXmfAC0nw+68UACpF1QyKEVKQbln/SpHI5m25sSFj/3OTgHtLh0cAr7/x8GqFTCz/4YsLq/LY5PRPU+l3olXl8Z/8lvGG5MaDbeWC0SrygEsM5vpiKkWil683PaqbVOZ8oXsTbCl2clys+mZbC29dTFXREfN3/B51Nf3AP26PMZbd+I4dNQH9PAD2MBx8n6kjrxFNVafs+P3JtKvMs/aGsduJFpzaBTrqOokOQ9zLeG6U16qAAAgAElEQVSeV3/hd3cictzh24WkfPoPFyd+/ovS3xdbxii7NDLOANF0K2x5KeWNekdGB3qJMpx5ftVrz0zaG1cqYafrQxGa1R8lhWpJjrAasjU0+g3zCdf2AH2Hn7C9/DfGgKkjO7lMrMfL87j/iLJBRaVJTxlgynolwxnojHbGZKFgRvoC1b2v/Pz/tSsOvZMB7aBue/xHPtWc/OlvOvnIIGbWcKnBl4ZZH3WsEUXAdRZy2wIuIg7cr3jN6w11cdYTIxI27uDagN41PPy3dxWPuJPLvB51716RgwDNs6PbnYQ5c/SAZNW60DJm1ihreu4TnBkuDPNFW0bjbekdUBKdNeS7Z3/uk99JgF6of+Qf3Rz72PlUW89oKygtB3JrAmbajSC5VuJZypiS3FhNicwkiMAw7hn0vX3i2mVPrexcu7E6ucHMHqC3i7Rd1rMrf2MMOsmxvPnmm5TM26PTmSlVyzh7g3MwxlYDpTMUIGhdCFpnmPFKdTmrHNQuMBbxwct/6e+AMd8xUd8z9b/4L26UP/KC8KziViuPMy2YMQHTrQnRvmY5RbwLQK2xyJJa4t1OjLVaR1X2TfHrr0Sw0Af1+vmSSlN+GkvUzWb/mKibXmZm8ODfW9jlo3pDm929HPrqr4yDti49AXjMAjm2E3VO+wbJLZRol01WWurAsZq4cblhFjqxrpfaWC6tS5urNWSsXGmn5WkKkKX42WMz//3/zHR31dDyhj6VERe7NvnX/m5c/54ZhmgYaLBAcjTF1pj2ZNi+prVkw5sahTDrzNUpOz7Z1aX6IfvnL3tkUNpkvnL2wKwEg0TdUHy8ugfoO4wAe/XMOJj2PaMuI6UEz/OA6Kx94J6AJck4zNygUKuurpYN1ktuX6r+PleJUiChWm2a4IAxBgUT9vCV3/yrIrv5ljt8G9vu/srxv/erRoytU5kYC8xjuj2BzetiwG1EkTpSUAr2GytCZ0pxX8yaB06N4ZVXKrzZ22rj0OHznSy7Ur3vd+a3Pdg3seJdy6FbL/zmRNVPRgN6QAiZMfc/NM6WrntqrlWKmO3osXKMfmlt0zaAQIJZ1F49ltUDzpeDARy4+VsfKcXPf+BNfDarlzYsWrx09Hf/lyLTMyUBM8CAc4sBk+0GLF7XlAC4/4I6TQ0AVOzcsmBSkWfhxezUqXGcu1b3FjaavrfamDENL+N9f3sP0HcSDHbmNycg7bngPElhreSrj3k8XXFMdBbucQvHSX1xxuNgOqZajlmtpHVel0pgwXR0WOtB5QDliyPjRCmbLR+89r/+TwiKUuO9qaXT+IF/Pj/x088M+8kZgxgw3a4Hi9e1ZlgkyeHALB3vx6VFArRknF+Rp95+kF84F0HSD1S79S1tmE8TXMKTvzU6HOdNnZmNF79rOTQBWvZ6Jx2AhbFSMSQ6fIsJlMKZ5MT94/7cTJTNrWRsoiRZaZ19mnNlmllU79qSCxgwiqIMrZ2a/6ffV+v8l596M5+Z5JOvXDn6tz5llEAm8o1Ci2OrBRMsbe8PV2a0Fizf7GitNPy5RZtJM2MevE8ILSezVy+vc8rqVx2ev2Iuibr5Zd7FPUDfYRTYl351UrLMAXqrsmgmxzp2Ytqz3ZUGj1tSiwgGhU5rbEtG9Z6pbIiAGWt/8b6x1md/gunulikTthrHTs4j42m39MiXZsf+uz+2GI7ckJPsKxzSToN1r/EBGVorAM61QdtNVszBwwyVHrPXrpbF1tx51Bgzzi5WTvz9mzsZ/5tV9+7l0Nd/dVJ1k/to4m61dXDBr6RGlvFGeV5O7LcYRELFvZIXt0mFp50vkjBdHdS6MpqmEKzhhyFszMu9Zw6H8voEV/OT3PQ29xXd5dM04Eklxhelf2ChF771eiKm3c5TJA8XcjH9Lo6VBfRRtvd7rWspGCRRAzh9rTyvq8vjiiOvis5iWS8uVnh313powcVruAfoXT7VbTazF355SiE6QG/cV3A9xItfqa5ES3Jsqm2rUwAWQ5Z0Sly2BaRpApVqM6McA0P5WlyKcVqC5UuxUaU4R3RUGW4/XH+r88N9ru5yyBADkO3xYOGqMR5PjYg6Kmwo60e+UPGEWLwS6pVOxdNycK/wbU7xarVuql6rnP7U7XtY7fTCu6h/93JoArTRD2znnp2rKBok2tKVasdONBT4QddAxVjPY2hoxxxUVtRo0ynGGO05DApsf37I4EBGhr4zz5YXLeoWzlLr2zPg1oBGotRVcUyUfm88P7yNJ0GaW221ANBZJGw7kaLMGMX3Jkno6U7E0rRh5+cEy9Tg/W/9+o9gD4F5Fe/ZA/SWj/12KrSf/cV9YYg5oHew8Wtb1yq0KDSGM8OQG+sLSo3XUf5YRwWTxIQ5GsMESK6t8Rko8j1evytsMfK1zTU3vZetdt68RePii5BzdECLhknNuQLwlEJB7v0e10mNJzcjoWMElQVgJCXuYNbYGiwuCXTM+bZKhvqV8qlPz95WJ29Q47uXQ7/ya/tU1n4wn6etpOi1821Vq6QmqHDPN0WGaMo42oWg0ZTVg9Zapi2SIZlbcmuzlFUcLTC0gnapt8wwZgwnfzcOhmrQppmMceu2g3XJFCmF1iDYh7dCZmAM7VSViyjEmeky9FMpWuppRj1qbblGZMYK2sWNgWFA+wVxrrUwTAthjMey1pTfmbFWWQ58nUxUhZt9QG81P5ujTYC9gHuAvrOvpCVAy+5DO71KT9UqMZQqlqEtRGLO0PRMUGuaaBotkkUZrXViM2hrGRiO0mpODkEEb2uAGQTa5jXfWg2wry4kQse0tMz7JzFgjZ/n9R14HZJtvkXbqmiT82IaG+1JiIz86ig9o7Ee0v61ThyyaKlPbSkNaYhZezzozGhJ29GtLw224PTQO52j4foZ8gvlB//P67fbzxvR/q7l0J0//+v7A5GOBjQZTdxuVrnxZFAiiW29rHilbCj9UB9sWlsbY1DrZJU8z8eQiGCURUZbqmmLYAzS9mpWW9pazf2HVqNh9DeHR3K2AGK5Fjnt/Lo2x4aWosTPdc71+3nLSdtClyUen48p75W6pDMkeqBL0VB8AUjSd/u7gWBZe5K3rlGDAjCUWoleilJ2czkQanVBuBpyxplV2qCgORqeoBEfPIHiZdwD9J19H+2f//X9iqUuJ23hu0B0VKEHVzzANtQqmalUKWU4J0ckUoNpZWNbra1Iz0WRE1DcdsQDm2wTZ1zltP1zVCcv/V2pCOwD7RG5+22MIjHEUQdcTsk11vrP+14TUWjTT4d42qK5X+hPq0oUA3TsdnbzuG5PwNIM5wIpJ99gidTcki+UHLx/dx5XU6bnL3zf96OYP/IDKf5G56WEl0oP/9+7SsV7Z1Gwsfe7lkPbc790QCmdJ1neQelgtRLrasVpc/scihZQsSrVViCazlVv62Xe1V8EYOKK9BIQRyQJABhI4pVODqA/kRtcLg87Vt8XS4ohksyd6ygcl3VSOlq3kb11e4zT1sdOKHGbfLvrrY2okLlzNSJ9F0KbtSdEe0YTSIdKxc4tBaCL7AarZ7daQw9L3NLii3uA3gHIdlOVAJ1q6bzhhg0Pw/0VhgiiHahVtKlUNG1guYoyYzsqrLVNOefQqzIxQZtEWQGKUa5ozoxlnHglffBpf2JS95H/tOtqI6Y23NoA883lbwdcuiZJF5Zy3ljBSXSnhac1OaX3xxi6YPFNIGiTFB0I3Zrgy9c0qWwGr8bQVmB+yQflNlkp5mg78zU8aGnti6W3/8OZ3TynN7rNXcuhu09/YpoL9Vb3gCwjKRaJugkcYjHkiEQ7xBJ1gIZyLkP3gUvgjk1EgaXTjrtSwkYkJsq5BhQUW2itYARj6p44MQnMlKaZdGmWNixGZkCrfBtukhY0APJcHl6n8FhdFNL1GSUkI5mblnqoweYvCpDihPb0JlmcNm+jbQWcfK3QKo1GU9SYonvwMGtPYWvGIPHy/gK0z9IrYmHRRy0H73/UfBVzR3TUecHgBdwD9J19N+35T0ynsX2bu8oQiyYGp4HTdu8O4LSY4xwt0S7WKpktV0kN52zIBDAmTc9UG8u6fASAQrK4sEg6amRIsEdtrCFdhyF9miamysFqcoVySgqV801kpADpL9xo0VeoUQijffHBVaT8zk5koc3n6SXpixLUgdN4kATNGKnsLDJuOHLUSHpzx85pucu41SiVjpCSNbYuu/RRoi/DW2up/xrML/io5OD953e8lRpv/flA2HN7gL6zeIbun/3lg9xiDugdlAQbla6Nqo6bWWUJvIqXyl1bnmxnfNKByAXskbVQK7RacbCKWcqdT3yyL2KT5mFAJTc4hEKdt9mw6CqjzOxrbRmQNsWQiG0svVhMAfMMQ0EKCvcCIdqA6bjBs5ueTVoe9HpOBidlHwMom8VFEjl2MD0jqxo/OFd666dc1qbv9HL3ihwEaIC373SCu1itZKZUIbaeca8iWaWhUUSpZmE3sxUSHRBkxsFIkWv8co2E47hvYnHCdp69wAA5krJAA/d8brOaDx3GjeQq6QYqWeLQzej+amJpgeduHLdVjBHnSo9+2uXV+04vdy2g7Z/95YMpmofdBG+1bCeJ2CkhLCZYrfSgXEtZdSzDcMxycrxkIKX1Oyn4PlMxcWa321TfVEGTRIs/J6Hnlo6+LN3XMZPimZGsXDQoxIhc/CAxgowvhQEFi76dgWSjwxMKtEzT9XPjI4nlrp9+VcwlGC4ZD7gQrCxs7ORtkrNRJ17WXvBtt9PgKzmgB+5/JCD7c+PmiMqQRGK0//weoO/wq9z76s8fYpw/QpfRoIEDd5RKcUw0/wOt22iHWGO7plpZEgfuURhN2NxGjdwwiLX1pDQUI0u+EECs0Ir8AaPKDRW5vOtM1eRWAdaB2Lh0YtqS4qzvjEQ6Y+LoRIfxSvK0wzYZZkgGd2JzLsuQqOD02KTN4OheElf6L0qhv3ODMLSgZIJ7PAhAUnNaFJCoJABSoeZn96mblzlqPXj/br4G1hRbzZd7kVLxfPR9/+j2kvPdYTwU3d+9HPpbv3iolyVug5NhtV2mFQKLuGGWox8Io0MvsSi48Fhmo3rLVo+6mBS3ICTcok2lAplpA2QEIZY2IGLkRg1CE2kfSBvhPOWcRZB+O+aItMlJ7mVPqr5igomz04qSkR3b0dxCQos7JP8Px/RJS9c3oTuTNynrSNfsbCuW1HWD46HXltTXOh8XK5c9Mooi7VTozPZgwAfTLcH8qwKU9NBoa7RiqJSfKWVRa26VKcwwW6k9reDPRd+1B+g7+k72vvZXDnPQ79AghOS+Z7jnGfA8QonTIOTJDI1TRlhpPLAK0Ogmm5ju2drR3Ae5b4kjy6CySOl3CZikoiOeTP4clnESWpE0DM7Pw4HVLSlp78scuAV813lTFD8G1HaFSOI+6cYt+pzIUUi5uUhjOe05kadIchIOyRrk22FJvjdkf3efEIvaGM9jxuPUz5r4Qq3o3sblzecCkaSGCa7pRjgN3HcDM8TNSeuttSGBy7Mq4zpV5BI1/OCswueid/0Tty3zd3q5azj0E088wU+850Qw226XfF6OjiXPHB3LLr+VPs9gjRaG5F4yL2SKodFOjeWR27EmNmp8BJNZzZr8yNE2a9xL2jhKBE2qudxFCJnUgHGqaNG1aiMh4cE668naVJHCgzQcjqs6nk3rtdx65wzWhXPSLZaRuXElB7xzVOp3vXatwbfEyeA0gL5F0Qnlzr8j4GhpNyun+wZN7xo5MpE2kV4CfUBffTowKx2SrJ3S3NCHhYPU3NOQx1UKlmWUDEEx5jlrPFlPlTaCqUzoNAOdSWHNM3uAvs1X+ckLTwbR5HQEC2kFQhNq5KR6NaBQeZUgO3bjy5O13iunSWrULKparbIKNFucVMHEeFgoJHq+smEkuV/SGISWcV9ar5JAab+TigecIwguxtKztCi1AVIyEzKck1DfVkKmardpD6V4IebeBzNhiZKkF74dufcdiRd9B36nBnT99y2KuVyMRjtRppBpnYefk3Gd60fxWtDrll+JLu489SyGPrmxInLy9aNru1CywpKIiEYlESazAtPEKik90D0uu7Fnk1RiGCjwPF83u8A9TKBMG46qSHe6lIRKmsAnLxFSadI+ny1x+IUrlXdc8qKoF8/N95ovNZPHH398ZJzjbT72227+HcOhCcAsbJStwlrFY76SmmmmM4OYsK6XctZDXS7ZmPFYpW3/oYXnTzfUhYfKcnHF+LWwp0VVCC4BGNec+xrCQCMGBnlgme9TkiHDkdyAiHthBqJiyaM5Vz4Q4PoqXJJf6T/yJVKWzNFGEdIcX81dQglAJMGg17cE9n0uHMpzsG7qDz1gaCFrn6vb/xs5RDmZPXckze2GTtQBdBIKYV0w93UhQSg3eJN8Lml565g5B5NwNDExdVoOcMaUMVJ6CCmDLLUqUwJsxnUcuzdWaeObVodAnPBKVUsDVd5appQ7BO4kajx3Yf9PzkBXhSbQATEXZqTmJuhBr9t5/6n39+gVum00vg4dvGmAprXO5175eoVjWvdYqaSZYlpZWfFNT2rZ81JPy6DMM93zGQZph3GsmE4ta2bYDdjiI/Irx2rp8veTasGQ3GwZRU6BBuLKfghchBq9gPwdBJjMs1lb2F7HGkOZ3PwEKwc08+qaYlNIhnCGP+aUDS45vns8zt+N7G7O+87JnkXsym1ppQmehNRBLcZQ9EthPySNIDkokYzklqUO4049kjtdOxM+kkWRwCvQZp6J5yLoLDJELa2IFIuqGkXJAhcIWgmrY2azhFudWqW08C0piAx56wmmMz9tdRzn5uUafapWNP/a+cpHLosSCD/J4nJQZknF83WSlBAh1JKzUsPLuu20Ewndfuyex3YdkHu7mH5DAX3WnhX6RV2HUr0OWRxyI4wSuoeB381iK/eVhVqcX0QxXm0krVSjD4IjQ901dula3KqeqFlj5URV8NJ07/z0VPLSQ7R6J/2FNFFZe35ZoYisAUo/EXs6bvsmbnKTxIYJEUO5ZoQXMW2MANkjCPWgNCmVqFuGwgmmzneCOHDua5Tjur/w60cA9klfIzeCMfWxuepdOtDegXHkIrLP2/suq7nn0nqf/dVlZn9s5HEN5DXNnMNJ4rN40Ye0hUx4ErxIIBim445nOh2ax4SXKxLCuuZhhdL/Ca5TobIeGtn1DHFrZqzhvhHAaE3CQcZCd+JF7/grF8LHZpuxkRHrtMYqY3yumfjekUbsMw91O+Y+h8hjWDJWB9pwg0p3VdJe+dDbP+Qi19+ocscBffbsWaEP6DqvlMZsYgLQQO7ynTjVvTJXMvYPy+jkjOaX+dRykmBgQiszyQy3CqTh0IvbuhpGUVAeYwK9EFUqMWjds/TZfaWs+V7Jo7phUUkDL5GkyW3WikxnieukK6zKUDDegdqEZqUagpHcdJtc9mJPgJHOD4302GHUxdKE5lFdGx4RHyT9Wn99tx7PhDNOzkfk7ZHrqVcjUAql88aIq00lEFd9QMc83P86MJD4QQZ7TisK8sSTvTKmC55qrQTMZE7B4VJIc5byck2zoEYCVGh6S4FaXjHM48qKQHm1WgKlCcN4iQNKa9Keb9OOr9tNpqU0fuRLI0q0iugGB565WXr3n8lZKc3JYKLb1BxVppVtdaeiKT0fSy5XQMHJQB/sGkHcGzNVYYgRZClJRJ1qubr06MFHd76l3A7fhDsG6CcvPFnzbXVSM1UiEAswbSPqHdNZVE3RlB899VH19Ytfn1pJMpbqzAiJoeAq7ngRF0vLnXTsZDohmlOK2zF6dBptu9c27SP7q1k7bdcmOy+/o9q58m7iyuR84dl4MdCtBSHTxNo0C9GaJmtMZl5jkrZzZSpeKunlxcDKLEXuCZtJMEY7fyJkqKznxxCGhkWVFIN6ZkUFUAS2v7JzZpKcaVpGC8Y1c8eQ97QzJvaB7uJIXGxUUZ80JoXdchOBo8+unX81OSu5EFkSfyi3tYc6ZiZrh9BrBZB0hE0yppUiDQZpbehrxBlnCpTSGJVSVt+fYlAJTNaO9PINX7faBrmXYugbUar0WG0/8LAKRmUIqhuaXsvXK0vMkl7EF/PRva++NvHeBZQqNb632LoK8Ynji9hMxqdUN/fMarbjLkAtjvxFrExU3N+81POSSuLLNq+WojBK0sRyL1peiq8sP3768ddnr44hwL+ugCaRAi7BpGZ8nGUMrUw7ftlv1YJaJmdk9uijj0oCeiNsiFYLIGZprYwyM53QLqllI6qp2wuvwRuT2g8nQyky7fWWwyzsXdfXU6gd5mOxPG4tHhxLX7t3PLn8Nm7SpYpemuVZr8dQZuSszwXDFZw4IEV9n2XcE2lztgqL80zJTIlS5KlMaiO1VzgXUeQKqfdcLJQQEqwwPPSk9KME/IrifmSBR8oy3zAmnBmQNBf9ybSckdHQ6dZyEYV0L9xR97uQl53DKOlgnBWFrDqry0dCIvmiFn06nxJanhqjfKZTBBn7OusFKLsAaRLSitVm0r2Qww+VIUttFAieOseqVPthHE0d1EZ4ApJeJVu4wQz5q1DmYM5NEAWxLTcSf+wQMM/nWdpjQveibGW+JJeXm2L8uRcP/bfXlBE1JdNGAGEq0+pMdbzrrt2TrBZwWV7odQzXFaPnVesnHnvMpfI9Yy1736Wn/FjFfh3rYQZYy7I0FJ6JU0jnP3zfh3e9B/ko5v26APrsxbOhsWa/Ba/OMnqLzUqms5hSE3/4vg+ntAB86tJTtW5bYMCSqo38IOkkSmplogyXX5mA9N3NfWZ5DEqQdY9yo40Mgnk/zXrzp+bjx/Fxffbi2UYm7QMW9KRAETWSK9OHWt+Myqa9YE038Ujt1jd999jEZNtrHGbgeRxUr5Fcf0Vg6pIUZqxURtXtEZiL+rTHuzM09E3lxXFiNaeVP+1KpMgnGiNfIfe1ZYFBz9cWfTLQ0a6A5I5NSjharDnfZkvxrAU8B3g0QYDkFdrj2GoyzxjubOhKcQSF1kphZcbRpKhl5nGdMh0rWuCRZsHnRrkYl4FcSsV4B+8ntSKgEDNh8vtWNgiAcUarP2bi1ENmButLBlxjrdTzJo+kzBvnhrQkWvqmvejJ3mcn3/cPXyBNlMf2hSprj3EODWtYs/nAzStwHviJsRNi9vosTOyfsP5NXxHzGgbcE/YJfnjmsN/NfN+33Zr0sGpTa4U184898BhteXFbS+3B5ckOJZW8+levfjWKk/igNFgpo9fuyu4KKkybb2smDoRnz4pqtYpRFOFieXEibseipwwvRSXMOq12nE10YWYmI53m51743HG0/njgsbmW9prpc9d7ha7z81c/P45t7y3IsMFJo2FMdLD1zI0jybeOeKClNqSacnoK1IzzlnfoXoVelYRbD2S70bv2Mmf0aeSQYhBpRil0k2TV1cNSmKsLac39p/vHROm3g14R4mTok84ZfYwpypSg6WIFuEClkVMwABkVyfSSx3BTAhtauZFOmlRr5HgEhvBMLqlk5Wa+0eTJSvoUxmhJpVyyG5CZ06nTl2NwDMW9EnXjHbh/92AMspiVSxF2e5ySnQ05B2y8v7X7l1iKlsKpEwZLdbRpxhF1m9e+cq50z+cLMeHcuXP+Rb1U9oIeMbHAsOTiTjkt9XHZvxwyWSlHwjY0aiYxmP/Qye+jtL27BvauODS9qb71DzHLqjzgrXarvdLrjCePv/vdpK5ZHQxxVeazaqepGLfSkxnDUOPccracnU/PyzOPnVH01o5dGLvfKMGtTa9PxpPtwbf77NmzFTWlHgbBJ9yz0qbC0L768OJ/WIrS+XcOv4kKgqBdPnh/pplPmOAAKkwXL5X0cpMeLAHQisB3zvtWS49k6depOKDQNQonpv5vRsoDQ7pj4/RjoDn4wjq7JqnKCmDeahhFcAJRB+Ah56KiHd2bIpHBQ7RSqZBJJ6dSql1Om6+Qg9Y2CollK8HhtxoysyMzzdLRF+dLJ/74A/d94KUBfTP+wfWno0q3PW6V3S8zefVDb//QjlPuOjH1PIQ60mVPeeMJM2REuPHYA4/taguMbd3gwBzg2WfPHrJVO4EGu91ed7G8WI4fe2xN70hM5usXvzwVa+71ZI8iLQQBOUhhaa49l4bNcNXKRHU/+8IfnQoE05GJZt7z4Hs6gy8EyV/f8/yX38I9dhyk4oZRjBBWfMG/8L3Xf6+ijf7+4edDMvCyf/h+gywszjHQcaRWbgRmZcVxYUP7YqOgjQ0lcVLUxjNGWS51waXX9Xu7QXlbgeg2+neLQC4ExbDTEpSB0cwoRfbHW152G9dbDg6fzHg0xbROF8N7LyxUTryGIvqzD538vnWg/b2nf8873jg+xhN+LAuySx++78O7SoxOjG3q/FQEJaiAhklttQl19+p7Hvzx9lbTN3h+24CmxZynvGMBRcsbPheUgu67j7yb5OTVQiJGfDjmHHk9yixvZh6TqGRJWNWCVmd4Zfull790wmpbNmPmtQ8d+BCpdNZ9ar524claW3nvMhYjcg51HNpgdEPb//hzS//S66rOj20AtLEYB/v2dXjlUJGfwokN2mTCxs2S6S4J2+mR91EuKlCeL8bBCiaRJAHnlWRyvxDiabe5JdpOnsZWdZE53xPDyJAkGEV9OwdZElsIyERpvE6Lfnul5e0/3PPqx7hVvfnooWdb0ZEVMPLaD5z+oWeGrYLkZxM8FEyGLDwOCp6/Hd0zAbvy9UrZq3gN4Ytx8GBl/k/nr27X1L4tQH/5/JePCc+MJ4lZ8Jm//Nhn/nMPzpzZsLr+40t/PI069TqZYr41tisF00u95Weh0Tnz2GOEyDVx5NzZSgbZ6TIvnx/mzMWj+Oz5zx4LFD6SO5xzcqKw2pp6ibEv/qcnvnbzV9/13E9ahArlEBhMHKNQeB0+MS15ecI51ReO8bSwIq8ym3Z922v5JunRAoxAop1TsvNRQsYRleac8n3lbxGAcIEihhyhKF5Qry4AACAASURBVBS3DxqyT5JCbz2AirHkZu08e9Lg+Ea9hO5vZERy8nCufmMokILE3EvXTyzjbD/aWM+5fzvHLEqF4Kx8nlh1oN4RmkeNd14cOQVeUEWA+LXK933VeEJrzbt+xf/KKEvg2bNnRDb9riMqU5UfeduP/PmOBjCi8tNPP+3d8G9UyoG3n1IMhlC9+J4H37Mlt94U0E+ce8Ifh8pJTkp6a69Pxpfbjz76VzfInF989Yv1MR6UukkcKi6YbEmUkhTL4Zxoi+5jjz22IQzoPz37uQcygbp1rnXxVm/fl7712fu1L06ByrkzARoVi4zVy+Fy+T+/I/nUMcb1u0Y9kEx7QebXxxJRnlQGA/J5zsMBXQg3aZJpe7TMQ91DlSQBZj1m0ozRIoo4IYFxNddFzhlJRs7DV7mLWll1zidNdt/FuXg2ubEkl53FGp7JT49esA311z1TNzy3nRrpPwyjjTOLvzmrN/kiAXj9r8dWL9BOz6e81ljx9j/EUaU9f/LqtfLDL7v3DTCLW9lXfvw9o8WAJ65+NRpfbj4cZ+rZjzz6kdfDiIJfePYLJWAwLridkgCzP3TqhzZNGnlLQH/h2S+UmdD3i4C1PZXefM+DP75Ovh18AM6Iwv0IumTlLEO3OwcmiNLGSqMzCszU9vPf+vw7ueIvffDRD5IecuQn8nPf/Nxxxu3DayqqPDLFMBsZbWektM+8d+EfvxcRXD6NDZyPdMrMLyW8NpbZoE5+PWQY6ftf5pihkFLQGslfmpzhjUrB6swHmSLKjPYFh1QbEAQuyqgETl9MrsWrpdDK8bVFVxGmRYKLE3mKROXE5d11B2IUCay5UjgvedIN9zeX48iFo9A+yOTRcYv0ULfLEvvtY15tdMTEveT8ZC12X2t899c1RrQnAIV49bx69Me38tUgcaH6fPV0meP8e7cA3k6GS9y6V3+toW3jEDO2+b4HP3TxVu1HAvrsubMVy7IHrFULiyvducff/fg6WbnojLQdVebtN9JwySTq2Ng0ScCgr26ywzf+6ghdZNH2S8/9wbuWxia+9fiQHD440C8+/cW68eN3AyCZzPNnzSlWw31kAzC4WLGzL5+68YePcASnBdkAauK2yD2JQZRhqSZJnYfCzxNrDQa+Uv44+u3SFxnKeoDGaKC0BRT9DVpx8huxljzVCPxaGEonQF97ZUmvq5my1MRFB9wiIrwYH3FNx+VBIAHXyfOWM4Uu9oqTidoCCgNckFORtMyjb4MHmTNP+zYd+Ux2ApTBuoTYNJjcn0Bt2nDnepjcKL31zzpi0n3maTWOHlz72qkfffrMLTzrSJauPxjdZ7RIfviRH359AwLOnGFnf/ztNR2FRyExyQce/hH31RguGwD91a8+EaXV8ukM5M0my27eykTZN5b4pUSXlae5zixf6iTCEx5bvrG8/PEPf5wm4paLky+f+4N3xkutCz/6/T9LFqWR9WiCaqeit1ilTzCXrLBfyAhnLUewntIoA5lcf2T58we5XBgfCSTifqQi4UyQH7BiXimDoGIwiMi2a51jZhHk6mzNbkC5Oo24Y9/5mSgZoHO/aArqIyWgS91MOmXnXkoWcqus0zujzkWHtRjZfigXNSVP+ty90+mtgZPWm5LFIMk8zEXGcNrZKt9njn67eC7QnNuMq14nBNniptsjMYmMKMO57Qbna92eFutQwDAWjbFYVPZr65XJeVWD6M5WHni2JyZymZXiiKVUSgdP/8g7f+SWmfxJjo7HHnlr5InZx07fut5uXzqSep688GTVT/A4Z1nvsdM//sqmgCYtBZ9OTmkLrWp36tooa0/Rwdlv/vuGX6/VkyQBYs6pjDWmqLMgMfFrovX445vb6v/om//mPssD3nwxvrDZCvb3/+T3q+Uqf1haPUXXRovEAlPU0LOcdci/KZFG+R6vHVx57uh+9doRXy1nZH1zThfUhtb+ZP7of/5JO2BMIKzHeGa80HA/VOhFFrlvgFEYF4nH7mXPrXJ5KQ4oA4zh2iXoyh841eoHvzp2tt47qXDuz+lallDG0GVOcqGDzlCZ+1OvBR70r9t3hDIkkLvgKnrpKL+vin3dWymZ3hJQHEpfDCru9Vb3T39XtMYIK/WElScs8yKXDgqtjVlj5lLpoZe4CN3KhYLijZSU8ObFqFl/+VYiJI30q1efiLqL4TvEcvXpQVXubQB4JBN+8mtPVis1dlJyefMHHvjIuiSS6zj02Wd+/ySrcq+L7DUyWW8yEDx78WwAKyuhDi0HxYXxIi4XpWeyZveZ939s6VafpaJPsjJ2Fua/qwvm3E888hO0GeStuDl+6YV/N6669phgUZJC3C0ZvxsrnmmhVfxarCqPVDCdSaPSJFa9bnffgd5zp2vpwqHA9sg3uEcqOM5JM5urO4pjRx2D5GSC4aQOsySeAA/IZ5qSe2rLKThAME42PMMo5YtzaCsCX3OtWT+KL+/fgU7nK79RxQXI8oFMdQO+HvRAnAjdjxLM4wqAMjUppA3nrJLM6ozc3bhSJOOn1vQyj+J5RtwfXZ/+TvcqDYiUlyvGqzSkFRXLhF9cLPUqNxdL97zc8SZpreSKQYPMknSmLnmNxoub+TmT/Dz5bPig1sp88B0/+eJ2rX3UjqzKOwQ9fv7cE2M+lO/zuTo/qKteBTRpKkSvd59K0wsffPTxWy7U6MK0YJyqqslmmiFTxJ1RxxloJroaoNr7yKMfIfluK10onn32yUMZZIcAWs9/6O0/f0u/WTKw/Ogzfxi2286LSz02pAIsJuPpp3/PS5IDYauUhr40Ywd7L54qycV7fdOtM53GgSHf3zQj7QFxs77r0Pq5dLoLziRSVkaP0m8x8uNAJrhybse0VYsn3M4VKLiLesmz0JCUkCdv7Afp5okeaX1H+Qmcx5xjwRRM5lLskkOzk0ddvgNSgGhmjNaoDMnnyJSkzE2CkudZpQo9s6VFC1LgpKJkeKv3sm6hmudTZwr9UHlROcOwqtEr2TzMBjnSRqWQdsTY9Xbp2OUe1gZkcqfFoTyr/3973x4b13Xe+Z3Hfc3M5XBIDkWGeti0JcWULb8oWZYlS2wTO/Y6zSYLa7eLYFM32appGgP7R7F/lv8uFigW2XVTB+h2GyTZBV2g29prw3YQSY0t2xJpVVJEO5EtWxYtSqQ4nOE87uO8Vt8lqVDUDElRlC25voAggjz33HPP/Z3vfOd7/L5YifCU4t6HC1kt8Ps8eOz5dSB0eymOjzU6c80HLYL5C+81fZESko3DSBglgxh4NQxMDSTUzrnnwr11rGrYD6qjuR63ixPW0rfpXx2dxdslQB849n/vAgJFfSE7utC2gp2hahK3xE6riE28KjDRe1UzPp7W+XxeHzhwQPfXsVHXW4HoZbrNtK1RxOQp6HcXW0hLXcX9Fw8Qu3btsgMvsBVXdmt8ti0bfrTREVPrbFNt4xgVr6LQMjLECD0ulZhLz5kc1tDxMqN2JHbkaW5F0MhgkPye466fEJ4nMRuIWOSDxnzs5FA1Q/k4o+YkkhCNlwTd39N542i9QJMeAh21FI4Uo5iLmIh8VEOm7d5op8Mowtn3n9WXZ/mtp/XjpOiRpYjlRmClNLNTGrijKbEVUlUmZwFiBHPLMc9cmGL5c2W3q4BRJ3PnNUlcTMQ6KUht3odWDyPiGu7WCKzm9bTbKN5iM/Prvnu/nkTZLeXC7/TYd3bklAncqMItENIVSrpGEYcYxWOA0Se2/JtTjfrat+9vXJJvuksycupLd3wDg5umcydQ4to0vCPW7jvX4uVZykvMb/Piiz9wnI6uDqlNB2h+9o0tX/t4MXXlKp9DBk4MWPkxsKHZ4lNR4NxSHeki5sJaX0eriInabC2RL9rgds5AxiCVtEDESbx0krI6yxc3kzOYcMfN/K6O40RolZj1VFLyBFcB5uMmtuXEyYOnWXyH2QPsfDvx/PebdcwkagAwJgmzCLO5INRV1HIQuECYbQy1VJI3Ow1KY6gQ3C0l/2jz5JTTPhFSL8aaG5fz6zJMoEwywqk2ZSD0jJKps15wqNbX19+QSuz5wedTjg42YOw1ZfRU38Kq4xWfDRfD6ru99ZSbtjCAyCBrFeXVoCJCB2wxXg7CPX17LqlA8zvAnWHn0Rc6iRZtv3PfN1BKTwP6l7/6x7VEGc8VXacWOgheJZCW3BxVhYkonzNOvJpqisn2H6yUtK43CT3Dz/HsSGjRVpdHdoqqqfNel/q41YvCdqbjVkp1jsrQ56A9osIURS0BZfOsKU9rxSjSJqAugaY9ZFOc8R6qae9hwnIw46FMGErnXHgQTHJikwMieicNkejFTlJ20WSHgVqGG7C4STKvCdeEo9kOTT3coFkvObgij4gVaeIEkrJQMq8mmVutQaoa2Jmy4s3hbBUABPEVxDJo506OzgS3iikl4BzVcE7nM9XFpLK/Rq3htt0htZo0Kh59fNs3rzquGS1lrx3/f9l0s/KqRelK7qRIFHkxgK0iLHEnp8of8RMLGQ0GDg547Rl+TyZeO4jYTQCN6oZm1vh4T3V8GQr6koG7UEPcfrZ+5faMzbw2JeM8c1jZrZXP7Njx7YYOnRV58MVOpnX0IXYqPsUdXeZaUGa15omZmGIWUxYxoZsVRd8hUYaDyABEaWKMw8A4WgiHaGVxBtxgEe5k80duBfQBJSoyNdpCRyVPSGpQXUkscehaTGTKtCo+Tb6BSwMZwQwBS4kkgIVLBUxqyqU2REiWigy3oog4cQSe4Mghg/zYSTw3xVRhg+a7S6rDvElK/Df4kMTTbiIDrGAzPUaZMxFknODx9Y9jhF5DM2rrBugQQnQxcERs9Ggqny8uMymWDL4/0CSEc6chWmjJqoSICggSBCGaJi0SR5P0jVdPXVhIhUX1lzQX7jVAT6K6kwD6F8cG7ifKev/APxydWqr+u1JgqqeCeJ1rPBVH7ZLSZqNkaBH349de+sZkf38dZsPrNZCZfpOMi/37aRAcZ5XmDppNhzQsZ2kURDTfZpEomKAATVCrBaTJ9yGohUTYkmLt5JBxwoOIgJ3aQLnqIgTjL7AQwHQIacJhp9GSMA3I2SsBZaKsTBO4o5RlSMCgFPpeZtQVYzCebhq488Pn5k5KwtyRRGgbaZDYOgYBU5ozpNqdqMqg1uXeHS60M584MWCPVKCLU8hLJZQN7nlL8tLPH/q96nLVw+ms/5esLhJmi1WeBltnVCxTSmgrKc6hVBiJYPz3dn5rQdZTPFiuOg49TKqJHff9/tkE0PuO/12vjPTJ11/YU/40QFMPk5gFUx0567ku5LSmLdM6py4oW51/9O7/cEVk3nXG9XK6T+a2v7+fbHv0i/cwQm6VM1wIFO3NdTA4W5ho7p8SfXfetWD0J3odtUGemuQMSoEIBiaQxpriTBfB6FIMOoDWlujQ7Y+JRoBMHGdD/7tFxrwTHJ1WEgJqmXEZq4oXdNUWMxwsMmFk35G/z2Z8ukkaGsQiKmujy9WCiNIe0opwrqlO6yASX14CoDuOwEYjVXnX1t8/k0zWPx39P/dxTj98pefJ4nJX3HK++FLuSdJ+ShXXAZaSOmqJgKY4MZJzmIQiu9DXtwfNfYuZCJfyqOvW5uU3f3q/UeQWgkygydWoHP1S6ROne0FiXyRpnO0uUT8AaWIgAA1VAmSKAy8HStRq0hLQDvFwz7DsJ1dGSiaCbd8+Dv5os5K8XXHlMyyEYaAUR7VJT2WC8d2QpMNd40SRwcHnPYy+0ZNBkwTIADi+oLFHQooElBElUAprtHQ2Lk091ffUghwf6J3k+c2bLMPObbvra+cTQP/87YEeo6HCy/mz17jyrvFdG9+ehCfG3Y5IMdtyaMYC06SBphT6RCJZhbQs2AU11bfIBFy3AS7Q8Uuv/2QLAbM2UTmWeKE5MIE9mtUUA46pN7O0o4ZoBlom6oOikQYTGAZVYkQtJk6Q4jzUVijVx0VZeaxDNgIhSuHXX//HdEQqLcqCHNHMJRSJh+kUMVAqVqthM0DY1/cUmu1WRGigZWPd/fw2okwHGAjiUE0Jni45UI3LMuQsZhlmrKY4Emx1i3V80yLZ4YkOnR3dYkr8eF/fnso0oI//bBUVtCM8N/bu448/vZCHcImf4/o2S7IkLM+2tW9F5YrHHe0zwlORBNuymdQiDhwrXVSeKo+fgGCpweHXa9Qv7f/bB5lNViNl3vxnoG6cMCRIAGKBRj3XYM4BtuVaUkOEASKkNrFNaRQrFdkAYSx1zBwVa+pKVtLKtlH63yIX8gOgidRuzWaA8iwz0CS1SbJ6DEXZCFMqVpVarGLhpKMnH3wyWml6L7Rm9fbulSdODKSrABlNqC+kbjKKuagghUJWLUWLkalOBRHT/3r3H0wtMgby4ps/8dMOu/P8SfYWfucE0AMDA3bnRnWvJ9i7L9xAevRSAJak7nyYt+R7v3HcVRkaV2TKKEhrh6e0lLaVMMpQgVJMUV3RglRpR662iGt/KY9ecpuXD/z4VsJVFhPEMUZUG3RTY+aU0BL/l1QbV0rKXEVQ5oYVBb4tWU0rKWNT87h2q5ZG0La3p/XYWF7v3r0bPYt1aJtQdejncUu3AxVIK9A+5Sj1iIcBqbhLMIIS3apQHVQjqeJIE3F7zo82bdqDAawrIonnTw6CGbJtd4kYA8qicTIVjk+t6oxbJgoOyaasWqnmUYv7MlJIvFn80s5v1Y2mm9tvciB8W2+gDNTOe/7dTMz2TItfHv5ptwSVGk+5v7leJCBLRsA1NEz0wFuAB+8ct7XfyiyqLOoYVxrqsVh61LIsEwPTmMQERBDGIh3hoUkHaUJDxqzw+PFJuXfvlYkMyx0WWglKJWAjMAL5KHcJMEFQNuvWdZgg6DZDQ0OwYcOoGR/vMcPDw6a/vx/b1QVXYiF46b9boiltW5q4FmGeZjpFgXqgtWOQCTq5mUqiWUS5rDHDasBpWA0MhkeKIDgnHnvs+2KlpfD8OZqN1Ui8gv92c84Y3UIoZEEJT2Kuu+EFQ8TY6F3WFLwBdj6qOgBpierDIvNNXnvtrzPSs+/JmNpQb+/eJKHg0gn65MkXnY8nC5spNSO/eOH985+2+W654Jl/H07kE090sjjO8WLxnOV1+jQKFHV4k402ZMOlY5R2KOGWBGFpzaiVZMcgJ0ISu5TYfy1DhDYCmXaF7REBVUdWuVHNJJRV39KlqqszxYyurKuY7mDSlMsbDMCBZDi7d/ckwNy/f5gA7Ep+h/QOY2MHqef5pOLHVIecpVyfkmLAAWJOUjanRFtKUpsSYyklbeTwS2omJhwgBDkT0EevNCeCRiY2DoT4E7GsCLUUZmsFxbQEqEqA03Ihr99KzffcfhKpnGq7S2KmtGFnobbuwlh2jLZAweGa2tWi9IFazZSYtBCJm+l037ZvLqnAJ+5CzL9tswBV+t3eP0D3+Eyk4pwR7Bv8WRuQ6HYr0Cc+CYfG9ZjEpfaZEKh3T9Jy2WYANS4lZ7ytPbErpyRlNbA4IzWLUsfCuAIMCpbEWAgmwyQmHFKtDCU2xQTERDAgd8fcejuztYzQCow/IwAVmW47244l6gdGW+BfsU4tUp8iTy7VBMstYgEjwmQESuKiUg4IG3BBxVIp14ROVVOrSaEerbrbpDfiqauJp1nqfF1Fu9lwcjRZ0i9/vbuNcbdNa9XMNLCYkSmq4tHtv3YnhnD+vZyjKoFjhSql027Q1/vvF6UvwG+3am21WwFpCgtTv5p77rvMxokNO7uDLiFUZ9USx786I8av4mU+K03JwMAAzefzpL19nJ44McKy2TYapgW1uEOiAP8PCGc24bWQwIxDJeP7EEclygJO0BgVBZyk0kjchQ5EAMeVBqoAypMGs1w85RilxDTXRso1UC6DTLlGqtg4XpsWMjZeUNIVn+tM2dbTAWDDevdudCbWN719mh8A8XPrRridWDqtiH36gYsBQwjqRx7pcVRGuMSmHolIi4plNlnYhhStSJzesePb5eQstD9PFrOyGdNPDx5Zv8YY0wlBhIL3ssTZK4z2uE3EJLVORlFLNm2fuHuBsM5Pc/Ju8GeT/n5U5/rrDnNGP55Wc2/uK9FjKfXl9otpegjeJ5/saS4zuZrGplkqLRk1o7WCGkVz6syu6MQec6Oym2KgWhTVY31bn2qYBTN3ehDMb/7zurVRTDttJX69fft3CvOnr25OYZIrWDzXBYTnWRyf3L79O0iieLNP/s0NnRtw9AnA3t241iP61liRMUfKDzdvPhUMDXW6AH4qgjhLgbYJDS4xosiUOfPKKyNFPJ/NgnssG6nH1y9uKsb2+dXV9cyiTbGG97/0wLcQzFdgsi6gce7QZplOZ9q1Q7o4p2d33P/ByI24zd2A3/kzOSQE7+Hhde2ylC6hNJ55STI4+KwnrXSLRciqmGifgC5AlX24bds3p5JDIeRSNYhSIHXeUNEcBXL0kV1/fPJqJmlw8NlUbNyNaFPUFf1BX99TDTOcGgIaH5jkGLLjOWJ7aw3Ygmvv5JyXuZoxfd72Jp8BlJC3b4o3Cqk7wJiR2uTaU7P6LoL99dfXpF3XzsRcd+hQNmtDSkSGH+zc+SdF099Php7odIvK9dC23tf31JKSAFCF2fnIqk6X2WsjCgU7grPzdeYlqRxzG2GnX/nK7RlBahiAnwMpRnfsGP1cWt/kAF1o+EeGf7o+iGVt+z3fmpuAStDDFwRBC7WhK5TKNoH+8NVXR87MmngRK1//erc3HkQZG2CVUaSZg3j3oYe+e4kPD9sswSRM9u17Js1T7m0QS9fzUh+Vy3JyKWENC0rouS+N6S4AtWbHcToVNVRyffrAC6OFJQzuM/zpb95XO3r0x+lq1dX1dtx//vXfdokI7tBSFlv8zuPr56RgoaRev77qS2laIq260NRoYnj/4Yf3zmU0Is8PPutlypBynFz1anZ1dEIVCsVbKGWtkYkKRHjnx8fT5aWGLywZ0MmR3PTTt95qyShFcwLsdixpRwj96GY9NOIiPXDgdPwZXpTk6NEfp+pZqo4f/9mqUEabSco50rvxctvvtO4LWUX5LQRYFqT+zdatf3hm7vJNrGEx87WO85ryDiPE2K5d33unzhK/ZJdeaPljf0Gg1hDLaucAtThmo0qR8lKk8tx+rwrQszfiw8vlWppzp4VSjoxFInbMyM0ksX957C9zpkh6KhUx2Cgga9++ZzK+z6N6fH43imzGA1O5vCGuZ7+dVgHWbQ2NKDxwzx9dFhuBnuGKOL9Wx6bbSPFeb+/e9+e/04kTz2QqFTtvjL5FSlOedMnwfN8EGg9aW2lmItL08Yefvmoq3WTnd2qrLUraiOJhbFnnoFqrHDjwvdpyYvOXBejZF8eX8Tzfo1TmGFOthmtjgXWec33+RgYBjru5zd6hYz1y9mzbe/W2M1y0UWQeJKTlcKMtEwGfShnngQf+NMk4rncdPPgX3oMPTkX1LEQzkhAj0BoSGx49+pPVQlQLjdoMDv6v25hrWu6986nD9Z5/9OiP24UR9xClz9x//3+8TIImUpbrdh6TLypFJs+cyR2dPxfoYk6lbs1qHa6TUqakTA3Wk5qoiixVLcCQi1dffbbJ902XUpDVOq45jn8+jnX17Fn/UuWG5QiNawL07ANR7xkb+zjleZkMIapVKeMA0Kkoqp3r6/tPC5HILGfM13zPoSM/2hJXJaO07WgjsB4+/D+7pYzWnjnT+stGH+rNf/rLzQBUbnv4j4cbDeqNwz98KKy4Q/VAcOzYT3Ohqt6x9d4/Otjo/rd/9dd3Y93y++77dpLVPP9CXVgauUMLOLllyx9ekfKfSOkvr2qLbbZZCHN++/a9l1Hdohp56FBbTil7ozGaG1M6smPHf76CthafEwRRhnONi2tZVQ+QzTY/dq7dskgHcIaZwCUhvAtKBcH4eH5FwnxXBNCzk4xxyptC7hISe8aYHCGmSTOibaIKxWI49uijf/app0699daPNhCi11BKBnt799Yl1EGp5PudvyNlNLxt29MNg2XeeuuHj0YRPTbvQHQZ5oaGfvSEMeYX9SQsSm/P8h9RRL/YCCQI+khWdzb74cvrGzggDh36mw7Dwt64Zl7fufNPkkpi8y60F7cqpTdLqQvbt48fm79jvPnmD5qUYt1EUrJ913eP1Fs8MxaKhlGA9e4xAwPsYNdEKyFylTEkQylEAKwgpSkx1ha+8sqeaDmqRSMBsKKAnn3ItP++yfGinBM4YdpEcY44dgp1bUJgEonT+/q+94mnTg0OPpt1GN0aiPj4iy+OjzU6DB458sNbdAzdUzX3YKNDCZJaWrTwyAcfnXtpz57+hjX3hg791VcvTJZ/8eijf1aPGYocfvtHX6loc7ivd2/doBycy68+1v6QMHRi27b6OwFK2Tfe6NxAjVz70cfj+xuN5+DBv2ghytpMNZx+YNf3r6Ckff75Z1OdLli9X96Lu+qyr8Fnn7WiO3XOMiqvgfoK6zlpU6KUFRkT4UcfFcKF5mzZD54bPnotnSx0L0728HAPL5VGWK1GmzzPyTOtm/EeRWVRKXI+9Y5T7F3B+ONG4zl58gdOqeS4L7wwejEZuFFeXT/P5b7wu1ZsHX3uxdMNQT809MztWtPVW7Z8d/9C73/o0DNfnZysNQI0HHr9mS2U6LB3+/cbst7jQlSx6mvJy5caSWmUhIe7xu+LY8V29D39ZqMx4a4wYafJCgeeTduNedxOCGvnwDxCWBjK6ILWehygOfyNH6u9vXsx6PC6hlBcFwndaDLx4LBpE7CxsSpNpappIWQbB5pThNpEaWRjKCg+NTE6ehuyly45/+4qFuPs+zacVBzjHXeU2t65M3thoYTQt9/+q16t48ne3qevsA7MHc/hN//H1+xS8PO760toOHTomTU6Nl/ctuNPX230HkkY5u7sA4bz0zt2fP9so3Z4lpmYOJd9eHFrw5JMaQvNKy4Mra0cIbKdamjGgFhFoEIIGWclPRl4bDvSowAABHZJREFUfuz7scKUq+sN4rnj/EQBPffBKLmHhjoZxiO3Q42XQTUD0y0GmG/AYLhwoAgtShkW2tvXTi2WLHkVoF606VJO7GguQxVqsQPS4OB/WwtD3mijHQh3jcmzrH3rru9dZuedP8hpi9Jdainhldcj5ua1f/gvvmlxckzTVkJVFhmewMgAtF0wcVggPivn81yPjBRUX1//ZfV0Fp3wFWzwqQF6/qEF449npbeU5x2fp3xlm2YioYlQbROJbFmqKkAXKU0XPY9VFgPTCs7TsrtCVYAsvNsksdfXaUdazrjJyy//11Srx5tqwHKOVllFdYoltcF0jVlsUoVQ5M1euVy2NUrh++8fvciUfWPEZ98ogJ4/8clHngV4HF9gGYC0k3F8I6FJ6TiNZRqwciZwCJTQFZuxkqywKm93gpsB6MtB2krfg06NlKqmwQqapOZZxlWGGuIkBDXEREKQMidxyUTOFDRBEEVTxvc71alTP9d79jx3PVTCa37FGxXQV7zYrIoyNhYleXgAp7nvZ1xRZhkjI59yK60NcQhWUTXCaMUiznSNEV5RFqlCgQb+uo7wk1RdrvnrXGMHScyxN+zErU0uFyatQGa0YVjY0rMsYimVsDJJzlhNga5QQ8oR9SpekUXljK2nM8yH9YEDsGSK5Gsc8jXfftMAut6bIsj37wfa3t5Dx8aGqeM0ET0uuNvEHJAyFXOesplOCQkeWMTSMVDGkITfKCGMIBYNCdCQhjKMTBw2p3PhhBwTq4MWcaTSIW8gNeDS6/826bfKsQo8dVJ22QjXAeWCIB6zmau1dLDET1JsHBErAcsdxribMQFVlSJVpdxarVaNfZ/p30renB4e3nMx4/yT5xC8ZiTPdHBTA7rRJMwC3fc7yaxEd5xJki4rqm1uFWvCtV3qcJs4IIRHKLeV1vYsCJArmRnbSJCQ1AkkRimszQlEEvxnEUmwiA7higqtmKeUlKAZxW6kkQK069pGK9wp7EsWFcpiQhkyvqYgFgbZBajgLuXcUMxWsgxlERjOOWNGIJ0uHo4NZwwrx2IeLWXIWwdKI4W5wWrhybiMEagiMGoiiQsUWMiJFeqoFkOYE3Fr1SBog6DFtLc7+tQpBG5ClVCX12OlwPVp9POZBPRCE9nfD7Sn50mSz28iCHjPGyX26RYy4vkEQW9PTBG001KqeFrZjPLA0sRwF1weUmEh6GJCLW4UwxxtbRSjlFOUhsi1jNRdWHNWEk14YsqazvKevTDLO/nZ6KSeMVLhYggmIUxRonFBaGJsSalSMS4eQ6SjtQiRQloq0ewTWSuHird/QcLoKMStTSaKcgY5PiqVgunu7jQI2CefHL5IC9CY2+PTANsn8cx/cYC+ikm9mOjaT/78zwGee66H5PPIqYF8Gp3k1KlRsmkTwOnTLWQ9AIx4hZl5XAfO+OT0z6sXedKMQx153gFOT98StBjMTVq3rmBOnABAcJbL0+Qz+Pd/qSC9im/2W6KZq7np87afz8CNOgOfS+gb9ct8Pq5lzcD/B6kPVvCV/7fcAAAAAElFTkSuQmCC",fae="data:image/png;base64,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",AN={wave:"wave___rx4XG",fillWrap:"fillWrap___q512j",svgBox:"svgBox___DfbUu"},pae=Object.defineProperty,ZR=Object.getOwnPropertySymbols,gae=Object.prototype.hasOwnProperty,mae=Object.prototype.propertyIsEnumerable,YR=(ee,y,E)=>y in ee?pae(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,vae=(ee,y)=>{for(var E in y||(y={}))gae.call(y,E)&&YR(ee,E,y[E]);if(ZR)for(var E of ZR(y))mae.call(y,E)&&YR(ee,E,y[E]);return ee};const sde=ee=>React.createElement("svg",vae({width:449,height:204,xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},ee),React.createElement("title",null,"\u6CE2\u7EB9"),React.createElement("defs",null,React.createElement("linearGradient",{x1:"50%",y1:"41.532%",x2:"51.437%",y2:"65.254%",id:"water_svg__c"},React.createElement("stop",{stopColor:"#34D5A2",offset:"0%"}),React.createElement("stop",{stopColor:"#1D9F76",offset:"100%"})),React.createElement("path",{id:"water_svg__a",d:"M0 0h449v204H0z"})),React.createElement("g",{fill:"none",fillRule:"evenodd"},React.createElement("mask",{id:"water_svg__b",fill:"#fff"},React.createElement("use",{xlinkHref:"#water_svg__a"})),React.createElement("g",{mask:"url(#water_svg__b)"},React.createElement("path",{d:"M0 7.704c14.667 8 29.667 8 45 0 6.537-3.41 23.776-14.982 45 0 17 12 29 9 45 0s31-9 45 0c25 17 35 8 45 0s32.344-7.91 45 0c16 10 32 10 45 0 10.947-8.42 33.124-8.71 45 0 15 11 31.839 11.136 45 0 13-11 30-9.517 45 0s15 17 45 0v196H0v-196Z",fill:"url(#water_svg__c)",transform:"translate(-40)"}),React.createElement("path",{d:"M0 11c14.667 8 29.667 8 45 0 6.537-3.41 23.776-14.982 45 0 17 12 29 9 45 0s31-9 45 0c25 17 35 8 45 0s32.344-7.91 45 0c16 10 32 10 45 0 10.947-8.42 33.124-8.71 45 0 15 11 31.839 11.137 45 0 13-11 30-10 45 0s15 17 45 0v193H0V11Z",fill:"#38E5AE"}))));var yae="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQ5IiBoZWlnaHQ9IjIwNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI1MCUiIHkxPSI0MS41MzIlIiB4Mj0iNTEuNDM3JSIgeTI9IjY1LjI1NCUiIGlkPSJjIj48c3RvcCBzdG9wLWNvbG9yPSIjMzRENUEyIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzFEOUY3NiIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBpZD0iYSIgZD0iTTAgMGg0NDl2MjA0SDB6Ii8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PG1hc2sgaWQ9ImIiIGZpbGw9IiNmZmYiPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48L21hc2s+PGcgbWFzaz0idXJsKCNiKSI+PHBhdGggZD0iTTAgNy43MDRjMTQuNjY3IDggMjkuNjY3IDggNDUgMCA2LjUzNy0zLjQxIDIzLjc3Ni0xNC45ODIgNDUgMCAxNyAxMiAyOSA5IDQ1IDBzMzEtOSA0NSAwYzI1IDE3IDM1IDggNDUgMHMzMi4zNDQtNy45MSA0NSAwYzE2IDEwIDMyIDEwIDQ1IDAgMTAuOTQ3LTguNDIgMzMuMTI0LTguNzEgNDUgMCAxNSAxMSAzMS44MzkgMTEuMTM2IDQ1IDAgMTMtMTEgMzAtOS41MTcgNDUgMHMxNSAxNyA0NSAwdjE5Nkgwdi0xOTZaIiBmaWxsPSJ1cmwoI2MpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDApIi8+PHBhdGggZD0iTTAgMTFjMTQuNjY3IDggMjkuNjY3IDggNDUgMCA2LjUzNy0zLjQxIDIzLjc3Ni0xNC45ODIgNDUgMCAxNyAxMiAyOSA5IDQ1IDBzMzEtOSA0NSAwYzI1IDE3IDM1IDggNDUgMHMzMi4zNDQtNy45MSA0NSAwYzE2IDEwIDMyIDEwIDQ1IDAgMTAuOTQ3LTguNDIgMzMuMTI0LTguNzEgNDUgMCAxNSAxMSAzMS44MzkgMTEuMTM3IDQ1IDAgMTMtMTEgMzAtMTAgNDUgMHMxNSAxNyA0NSAwdjE5M0gwVjExWiIgZmlsbD0iIzM4RTVBRSIvPjwvZz48L2c+PC9zdmc+",Aae=({percentage:ee,size:y=180,unit:E="rem"})=>{const[z,ne]=(0,Me.useState)(["",""]),[ie,se]=(0,Me.useState)(0),ae=(0,Me.useRef)(null),he=(0,Me.useRef)(null);(0,Me.useEffect)(()=>(ae.current&&(clearTimeout(he.current),he.current=setTimeout(()=>{var Be;const De=ie+20;De+y>((Be=ae.current)==null?void 0:Be.offsetWidth)-40&&ne([...z,""]),se(De)},200)),()=>{clearTimeout(he.current)}),[ae.current,ie]),(0,Me.useEffect)(()=>(window.addEventListener("resize",pe),()=>{window.removeEventListener("resize",pe)}),[]);const pe=()=>{se(0)},ve={width:y+E,height:y+E},xe=148-y*(ee/100),Se=()=>Me.createElement("img",{src:yae,style:{width:`449${E}`,height:`204${E}`}});return Me.createElement("div",{className:AN.wave,style:ve},Me.createElement("div",{className:AN.fillWrap},Me.createElement("div",{style:{fontSize:`28${E}`,zIndex:2,color:"#fff"}},ee,"%"),Me.createElement("div",{className:AN.svgBox,ref:ae,style:{top:xe+E,transform:`translateX(-${ie}px)`}},z.map((Be,De)=>Me.createElement(Se,{key:De})))))},V1={trapezoid:"trapezoid___qw8yM",pillarBox:"pillarBox___rGJCP",pillar1:"pillar1___uJ0zx",point:"point____XIHt",pillar2:"pillar2___pL9k5",pillar3:"pillar3___dUdZf",textBox:"textBox___isldE",text1:"text1___g5Hy9",tip:"tip___PXfJr",line:"line___A5wA_",l:"l___hfZzL",text2:"text2___u2scn",text3:"text3___WSnmy"},xae=Object.defineProperty,wae=Object.defineProperties,Sae=Object.getOwnPropertyDescriptors,KR=Object.getOwnPropertySymbols,Pae=Object.prototype.hasOwnProperty,Cae=Object.prototype.propertyIsEnumerable,JR=(ee,y,E)=>y in ee?xae(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,qR=(ee,y)=>{for(var E in y||(y={}))Pae.call(y,E)&&JR(ee,E,y[E]);if(KR)for(var E of KR(y))Cae.call(y,E)&&JR(ee,E,y[E]);return ee},_R=(ee,y)=>wae(ee,Sae(y)),Eae=({dataSource:ee=[]})=>{const[y,E]=(0,Me.useState)([]),[z,ne]=(0,Me.useState)(0),ie=(0,Me.useRef)(String(Math.random()).slice(-6));(0,Me.useEffect)(()=>{if(ee!=null&&ee.length){const pe=he(ee),ve=ee.map((xe,Se)=>_R(qR({value:xe,lineWidth:30,pillarWidth:104+pe[Se]},ae[Se]),{from:ae[Se].from+ie.current,to:ae[Se].to+ie.current}));E(ve),ne(z+1)}},[JSON.stringify(ee)]),(0,Me.useEffect)(()=>{z>0&&se()},[z]),(0,Me.useEffect)(()=>(window.addEventListener("resize",se),()=>{window.removeEventListener("resize",se)}),[z]);const se=()=>{const pe=y.map((ve,xe)=>{const{from:Se,to:Be}=ve,De=document.querySelector(`#${Se}`),Re=document.querySelector(`#${Be}`),Oe=De.getBoundingClientRect(),Le=Re.getBoundingClientRect(),Je=Math.abs(Le.left-Oe.left);return _R(qR({},ve),{lineWidth:Je})});E(pe)},ae=[{title:"\u5B8C\u6210\u738780%\uFF5E100%",pillarTitle:"80\uFF5E100%",from:"lineStart1",to:"lineEnd1"},{title:"\u5B8C\u6210\u738760%\uFF5E79%",pillarTitle:"60\uFF5E79%",from:"lineStart2",to:"lineEnd2"},{title:"\u5B8C\u6210\u738759%\u4EE5\u4E0B",pillarTitle:"59%\u4EE5\u4E0B",from:"lineStart3",to:"lineEnd3"}];function he(pe){const ve=pe.reduce((xe,Se)=>xe+Se,0);return pe.map(xe=>xe/ve*100)}return Me.createElement("div",{className:V1.trapezoid},Me.createElement("div",{className:V1.textBox},y.map((pe,ve)=>{const{value:xe,lineWidth:Se,title:Be,from:De}=pe,Re=ve+1;return Me.createElement("div",{key:ve,className:V1[`text${Re}`]},Me.createElement("div",{className:V1.tip},Be,Me.createElement("span",null,xe)),Me.createElement("div",{id:De,className:V1.line},Me.createElement("div",{style:{width:Se},className:V1.l})))})),Me.createElement("div",{className:V1.pillarBox},y.map((pe,ve)=>{const{pillarWidth:xe,pillarTitle:Se,to:Be}=pe,De=ve+1;return Me.createElement("div",{key:ve,className:V1[`pillar${De}`],style:{width:xe+"rem"}},Me.createElement("span",null,Se),Me.createElement("div",{id:Be,className:V1.point}))})))},Ja=je(59301),bae=Object.defineProperty,$R=Object.getOwnPropertySymbols,Mae=Object.prototype.hasOwnProperty,Bae=Object.prototype.propertyIsEnumerable,ez=(ee,y,E)=>y in ee?bae(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,xN=(ee,y)=>{for(var E in y||(y={}))Mae.call(y,E)&&ez(ee,E,y[E]);if($R)for(var E of $R(y))Bae.call(y,E)&&ez(ee,E,y[E]);return ee},Tae=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())}),Dae=({subjectId:ee,uuid:y,isAll:E})=>{const[z,ne]=(0,Me.useState)(!1),[ie,se]=(0,Me.useState)({type:0,course_id:null}),[ae,he]=(0,Me.useState)(!0),[pe,ve]=(0,Me.useState)(!0),[xe,Se]=(0,Me.useState)([]),[Be]=(0,yt.useSearchParams)(),[De,Re]=(0,Me.useState)({graphCount:0,tagCount:0,resourceCount:0,proportionCount:0}),Oe=[{name:"",value:0,itemStyle:{color:"rgb(223,209,38)"}},{name:"",value:0,itemStyle:{color:"rgb(6,234,230)"}},{name:"",value:0,itemStyle:{color:"rgb(6,110,247)"}}],[Le,Je]=(0,Me.useState)({averageCompletionRate:0,averageMasteryRate:0,completionRate:[0,0,0],masteryRate:Oe});(0,Me.useEffect)(()=>{z?$e(ie):se({type:0,course_id:null})},[z]),(0,Me.useEffect)(()=>{z&&ne(!1)},[y]);const $e=(ut,ht=!1)=>Tae(void 0,null,function*(){var pt,gt,zt,cn,Tn,Zn,Nn,di,yi,bn;ht?ve(!0):he(!0);const Sn=yield(0,on.ZP)(E?"/api/knowledge/v2/subject_statistics.json":"/api/knowledge/v2/knowledge_statistics.json",{method:"get",params:xN({subject_id:ee,parentNodeUuid:y,labels:"\u56FE\u8C31,\u6807\u7B7E,\u8D44\u6E90",depth:-1},ut)});if((Sn==null?void 0:Sn.status)===0){let ki=(pt=Sn==null?void 0:Sn.data)==null?void 0:pt.metricCounters;ki=ki||[];const ti={graphCount:((gt=ki.find(ei=>(ei==null?void 0:ei.name)==="\u56FE\u8C31"))==null?void 0:gt.count)||0,tagCount:((zt=ki.find(ei=>(ei==null?void 0:ei.name)==="\u6807\u7B7E"))==null?void 0:zt.count)||0,resourceCount:((cn=ki.find(ei=>(ei==null?void 0:ei.name)==="\u8D44\u6E90"))==null?void 0:cn.count)||0,proportionCount:(Tn=Sn==null?void 0:Sn.data)==null?void 0:Tn.resource_rate};let fn=Object.entries((Zn=Sn==null?void 0:Sn.data)==null?void 0:Zn.study_grasp_hash).map(([ei,hr],_n)=>({name:ei,value:hr,itemStyle:Oe[_n].itemStyle}));const Bi={averageCompletionRate:(Nn=Sn==null?void 0:Sn.data)==null?void 0:Nn.study_complete_rate,averageMasteryRate:(di=Sn==null?void 0:Sn.data)==null?void 0:di.study_grasp_rate,completionRate:Object.values((yi=Sn==null?void 0:Sn.data)==null?void 0:yi.study_complete_hash),masteryRate:fn};console.log(fn,"newMasteryRate");const jn=(bn=Sn==null?void 0:Sn.courses)==null?void 0:bn.map(ei=>({label:ei.name,value:ei.id}));Se(jn),Re(ti),Je(Bi)}setTimeout(()=>{he(!1)},500),ve(!1)}),_e=ut=>{ie.type=ut,se(xN({},ie)),(ut!==2||ie.course_id)&&$e(ie,!0)},st=ut=>{ie.course_id=ut,se(xN({},ie)),$e(ie,!0)},ct=[{name:"\u5168\u90E8",id:0},{name:"\u81EA\u4E3B\u5B66\u4E60",id:1},{name:"\u8BFE\u5802\u5B66\u4E60",id:2}];return Ja.createElement(ms,null,Ja.createElement("div",{className:xd.statistics},Ja.createElement("div",{onClick:()=>ne(!0),className:xd.noUnfold},Ja.createElement("img",{style:{width:"32rem",marginBottom:"4rem"},src:uae}),Ja.createElement("span",null,"\u7EDF"),Ja.createElement("span",null,"\u8BA1")),Ja.createElement("div",{className:xd.wrapBox,style:{right:z?0:"-600rem"}},ae&&Ja.createElement(rn.Z,{style:{width:"100%",marginTop:"200rem"},spinning:!0}),!ae&&Ja.createElement(Ja.Fragment,null,Ja.createElement("div",{className:xd.scrollBox},Ja.createElement("div",{className:xd.content},Ja.createElement("div",{className:xd.title},Ja.createElement("img",{src:cae}),Ja.createElement("span",null,"\u56FE\u8C31\u7EDF\u8BA1\u5206\u6790")),Ja.createElement(dh.Z,{className:xd.box,justify:"space-between"},Ja.createElement("div",{className:xd.left},Ja.createElement("div",null,Ja.createElement("span",null,"\u77E5\u8BC6\u56FE\u8C31\u6570\u91CF"),Ja.createElement("b",null,De==null?void 0:De.graphCount)),Ja.createElement("div",{style:{margin:"18rem 0"}},Ja.createElement("span",null,"\u6807\u7B7E\u8282\u70B9\u6570\u91CF"),Ja.createElement("b",null,De==null?void 0:De.tagCount)),Ja.createElement("div",null,Ja.createElement("span",null,"\u8D44\u6E90\u8282\u70B9\u6570\u91CF"),Ja.createElement("b",null,De==null?void 0:De.resourceCount))),Ja.createElement("div",{className:xd.right},z&&Ja.createElement(Aae,{percentage:De==null?void 0:De.proportionCount}),Ja.createElement("div",{className:"c-white",style:{marginTop:"20rem",fontSize:"14rem"}},"\u5DF2\u5173\u8054\u8D44\u6E90\u7684\u6807\u7B7E\u8282\u70B9\u5360\u6BD4"))),Ja.createElement("div",{style:{marginTop:"20rem"},className:xd.title},Ja.createElement("img",{src:hae}),Ja.createElement("span",null,"\u5B66\u4E60\u7EDF\u8BA1\u5206\u6790")),Ja.createElement("div",{className:xd.box},Be.get("type")!=="classrooms"&&Ja.createElement("div",{className:xd.head},Ja.createElement("span",{style:{marginRight:"10rem",fontSize:"16rem"}},"\u7EDF\u8BA1\u8303\u56F4"),Ja.createElement("div",{className:xd.radio},ct.map(ut=>Ja.createElement("div",{className:ie.type===ut.id?xd.active:"",key:ut.id,onClick:()=>_e(ut.id)},Ja.createElement("b",null),Ja.createElement("span",null,ut.name)))),ie.type===2&&Ja.createElement(hl.default,{className:xd.select,options:xe,value:ie==null?void 0:ie.course_id,onChange:st,placeholder:"\u8BF7\u9009\u62E9",getPopupContainer:ut=>ut.parentNode,style:{width:"156rem",marginLeft:"10rem"},suffixIcon:Ja.createElement("i",{className:"iconfont icon-a-bianzu11",style:{color:"#1B8565",fontSize:"16rem"}})})),Ja.createElement(rn.Z,{spinning:pe},Ja.createElement("div",{className:xd.average},Ja.createElement("div",{className:xd.li},Ja.createElement("img",{src:dae,style:{marginLeft:0}}),Ja.createElement("aside",{className:xd.yellow},Ja.createElement("div",{style:{fontSize:"16rem"}},"\u5E73\u5747\u5B8C\u6210\u7387"),Ja.createElement("div",null,Ja.createElement("b",{style:{fontSize:"40rem"}},Le==null?void 0:Le.averageCompletionRate),Ja.createElement("span",{style:{fontSize:"20rem"}},"%")))),Ja.createElement("div",{className:xd.li},Ja.createElement("img",{src:fae}),Ja.createElement("aside",{className:xd.blue},Ja.createElement("div",{style:{fontSize:"16rem"}},"\u5E73\u5747\u638C\u63E1\u7387"),Ja.createElement("div",null,Ja.createElement("b",{style:{fontSize:"40rem"}},Le==null?void 0:Le.averageMasteryRate),Ja.createElement("span",{style:{fontSize:"20rem"}},"%"))))),Ja.createElement("div",{className:xd.lineTitle},Ja.createElement("b",null),Ja.createElement("span",null,"\u5B8C\u6210\u7387"),Ja.createElement("b",null)),Ja.createElement("div",{className:xd.echartsTwo},Ja.createElement(Eae,{dataSource:Le==null?void 0:Le.completionRate})),Ja.createElement("div",{className:xd.lineTitle,style:{marginTop:"40rem"}},Ja.createElement("b",null),Ja.createElement("span",null,"\u638C\u63E1\u7387"),Ja.createElement("b",null)),Ja.createElement("div",{className:xd.echartsThree},Ja.createElement(Ju,{dataSource:Le==null?void 0:Le.masteryRate})))))),z&&Ja.createElement("div",{onClick:()=>ne(!1),className:xd.unfold})))))},yf={statistics:"statistics___BZJje",noUnfold:"noUnfold___L4va9",wrapBox:"wrapBox___tHLW6",scrollBox:"scrollBox___m8AGu",content:"content____Gl9N",title:"title___SAaGy",top:"top___h1nbU",topLi:"topLi___Ib2Tu",bottom:"bottom___ZKnwW",bottomLi:"bottomLi___YAGiM",echarts:"echarts___M5Dkf",name:"name___XhFko",unfold:"unfold___I5om1",select:"select___TcV_B"},Nae="data:image/png;base64,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",Fae="data:image/png;base64,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",Lae="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAsCAYAAAA5KtvpAAAAAXNSR0IArs4c6QAABFJJREFUaEPtml9MW1Ucxz+nlxbaUkYvYjdENG7RiEg6jNGQ+aIx08SE6IvZxGS+qGGPPjnj2+J8MIuJMVk00Zgg0zc1Rpm+Gf+M+GdkZKhT4gyMjnWllJWWtrf3mNPLHJcWaBmlXcMvaV96fufez/n+fuf8zjkV/a8ZBzB5R4JO7VpICHlo8A3nt6L/VWNSIttrl9UiEzAyeMz5sOg/khmTkq7aBxbfDB6r2y8OHZFBjzf7rt5Mb61ChyOcWkxrhz86KiaEggxF5Aum5INaBRaCJ9taxPBSaG8D15zQVaVwnQaao/QxlhLSxnU/1Y+RLdxP1QA7BAT8IHIzSekWjUMyBS1NUO+EuTgkUvn9lB84mwVNK4pA921c4bkFS1V/IzS4QA3AYroCwM2nBpnf14fp9RUFvRmNVLSYskIh3XryOMJIc+WZw1sKvdrAlT2kFbAzPEVGDxB5eqDi0EUDzyetSWC1UFk+oq74LPqFURrD/9AUOo8jm8n9nNwR4M/HBzDc5Q1vhwO8LvC5N5jDV5MQXVg/u1wLUe789TP8F88hpFnQIdkUYPyxATJlhlYPb/WBu97+GkUpHJ6HZIEZb3lX/qkx9vw0hJYpsBasQE807+LsE6+AkqKM1tgAeuMGgC/HYNGKyoKmFL37uw9XVXW5k3Ro/NX7PLMd3WVEtbr21kPLiuwpSuG1gLVUguCXb+JMxdcF2ErYsgHfNfIpt06M5GANl4doWyfzgT25HM3U+9h9eghP7BKbBauKi08+t9eNDg0O9uUXN5uusGdumu6v3iLT4ONCTx+RjmBeXt7/9XE8sdCmhbECPjG4rHAG6jTBy/1bANx+dhjPXIiJh54lW+8pGNJdw28z3floSTkbnoVozF4qteoC/w4wDDjxcYWAO377gsngU8g1ZltP9CIJ/23r5vfyBj/8YnLmnH1Z631Ao6dL5OrlyihsmjiyBqbTVRKMamxm4cy4XUG1LQzeZ22V1gSupMIlky45pDPw3pA9LJ11gpees/KwOhVeh/bvfyVTIbuKu+8Q3L5LcEPA1arw9z+bjI7b83DfgxrBzhsErlgOAwsJu8xqH+peKtjLBlwphVNpeP+kPQ9dTsGLB608LBtwpRTeBga2Fa6lSaumQ3r2KsRX7OtvBuAmNzR7N3AAkMnCzJz9PKvagVWpurM5/5y7qAMANUZZE1KZ69DqfH30D3slpfYQe++16uHJS3A5Yv+9PSAI3GL1Nfr7Cl8Bezst36kZmLlS2Nc08+vw3HOXfJW/ur1wu0DVBSutaOCN1s3V5rcNvNaFuAoVV121aZb/PmpzsspNiwr34i/Er93MVTtyYhHU5VohKwnY2wDqU82m7orjydXP0UsCrmbQYt8tD3g6IvdLSe5PH7VomoPunboYyy1f6ktK2TAdYRS4p+aABT+26TwihMidTPy/TM/EZcBY5HUEPUJyE8zL60gjSEk47RYc1XURu9b6P7vslVpOgNBqAAAAAElFTkSuQmCC",Iae=je.p+"static/a.d3f19668.png",kae=je.p+"static/b.ba7414bd.png",Oae=je.p+"static/c.2b6f6bd3.png",Rae=je.p+"static/d.f1216ccd.png",pS={cylinder:"cylinder___rUBlO",cylinderBox:"cylinderBox___NurwX",cylinder1:"cylinder1___LPJD0",item1:"item1___ekrFi",item2:"item2___PuVOv",item3:"item3___x9UjL",point:"point___ZJ1ZD",cylinder2:"cylinder2___aQBbC",cylinder3:"cylinder3___lefpl",textBox:"textBox____wuhT"},zae=Object.defineProperty,Uae=Object.defineProperties,Hae=Object.getOwnPropertyDescriptors,tz=Object.getOwnPropertySymbols,Vae=Object.prototype.hasOwnProperty,jae=Object.prototype.propertyIsEnumerable,nz=(ee,y,E)=>y in ee?zae(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,iz=(ee,y)=>{for(var E in y||(y={}))Vae.call(y,E)&&nz(ee,E,y[E]);if(tz)for(var E of tz(y))jae.call(y,E)&&nz(ee,E,y[E]);return ee},rz=(ee,y)=>Uae(ee,Hae(y)),Gae=({dataSource:ee=[]})=>{const[y,E]=(0,Me.useState)([]),[z,ne]=(0,Me.useState)(0),ie=(0,Me.useRef)(String(Math.random()).slice(-6));console.log(ee,y,223),(0,Me.useEffect)(()=>{if(ee!=null&&ee.length){const pe=he(ee),ve=ee.map((xe,Se)=>rz(iz({value:xe,lineWidth:30,cylinderWidth:40+pe[Se]},ae[Se]),{from:ae[Se].from+ie.current,to:ae[Se].to+ie.current}));E(ve),ne(z+1)}},[JSON.stringify(ee)]),(0,Me.useEffect)(()=>{z>0&&se()},[z]),(0,Me.useEffect)(()=>(window.addEventListener("resize",se),()=>{window.removeEventListener("resize",se)}),[z]);const se=()=>{const pe=y.map((ve,xe)=>{const{from:Se,to:Be}=ve,De=document.querySelector(`#${Se}`),Re=document.querySelector(`#${Be}`),Oe=De.getBoundingClientRect(),Le=Re.getBoundingClientRect(),Je=Math.abs(Le.left-Oe.left);return rz(iz({},ve),{lineWidth:Je})});E(pe)},ae=[{title:"\u90E8\u5206\u638C\u63E1 ",from:"lineStart1",to:"lineEnd1"},{title:"\u5168\u90E8\u638C\u63E1 ",from:"lineStart2",to:"lineEnd2"},{title:"\u672A \u638C \u63E1 ",from:"lineStart3",to:"lineEnd3"}];function he(pe){const ve=pe.reduce((xe,Se)=>xe+Se,0);return pe.map(xe=>xe/ve*122)}return Me.createElement("div",{className:pS.cylinder},Me.createElement("div",{className:pS.cylinderBox},y.map((pe,ve)=>{const{cylinderWidth:xe,lineWidth:Se,from:Be}=pe,De=ve+1;return Me.createElement("div",{key:De,className:pS[`cylinder${De}`],style:{width:xe+"rem"}},Me.createElement("div",{className:pS.item1}),Me.createElement("div",{className:pS.item2}),Me.createElement("div",{className:pS.item3}),Me.createElement("div",{id:Be,style:{width:Se},className:pS.point}))})),Me.createElement("div",{className:pS.textBox},y.map((pe,ve)=>{const{title:xe,to:Se,value:Be}=pe,De=ve+1;return Me.createElement("div",{key:De,id:Se},Me.createElement("span",{dangerouslySetInnerHTML:{__html:`${xe}${Be}%`}}))})))},Kl=je(59301),Xae=Object.defineProperty,oz=Object.getOwnPropertySymbols,Wae=Object.prototype.hasOwnProperty,Qae=Object.prototype.propertyIsEnumerable,sz=(ee,y,E)=>y in ee?Xae(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,az=(ee,y)=>{for(var E in y||(y={}))Wae.call(y,E)&&sz(ee,E,y[E]);if(oz)for(var E of oz(y))Qae.call(y,E)&&sz(ee,E,y[E]);return ee},Zae=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())}),Yae=({subjectId:ee,uuid:y,isAll:E})=>{const[z,ne]=(0,Me.useState)(!1),[ie,se]=(0,Me.useState)({course_id:null}),[ae,he]=(0,Me.useState)(!0),[pe,ve]=(0,Me.useState)(!0),[xe,Se]=(0,Me.useState)([]),[Be]=(0,yt.useSearchParams)(),[De,Re]=(0,Me.useState)({graphCount:0,tagCount:0,resourceCount:0,proportionCount:0}),Oe=[{name:"\u5DF2\u5B8C\u6210",value:0,itemStyle:{color:"rgb(223,209,38)"}},{name:"\u5F85\u5F00\u59CB",value:0,itemStyle:{color:"rgb(6,234,230)"}},{name:"\u90E8\u5206\u5B8C\u6210",value:0,itemStyle:{color:"rgb(6,110,247)"}}],[Le,Je]=(0,Me.useState)({averageCompletionRate:0,averageMasteryRate:0,completionRate:Oe,masteryRate:[0,0,0],course_rank_num:0,course_rank_all_num:0,system_rank_num:0,system_rank_all_num:0});(0,Me.useEffect)(()=>{z?$e(ie):se({course_id:null})},[z]),(0,Me.useEffect)(()=>{z&&ne(!1)},[y]);const $e=(st,ct=!1)=>Zae(void 0,null,function*(){var ut,ht,pt,gt,zt,cn,Tn,Zn,Nn,di,yi,bn,Sn,ki,ti;ct?ve(!0):he(!0);const fn=yield(0,on.ZP)(E?"/api/knowledge/v2/subject_statistics.json":"/api/knowledge/v2/knowledge_statistics.json",{method:"get",params:az({subject_id:ee,parentNodeUuid:y,labels:"\u56FE\u8C31,\u6807\u7B7E,\u8D44\u6E90",depth:-1},st)});if((fn==null?void 0:fn.status)===0){let Bi=(ut=fn==null?void 0:fn.data)==null?void 0:ut.metricCounters;Bi=Bi||[];const jn={graphCount:((ht=Bi.find(qi=>(qi==null?void 0:qi.name)==="\u56FE\u8C31"))==null?void 0:ht.count)||0,tagCount:((pt=Bi.find(qi=>(qi==null?void 0:qi.name)==="\u6807\u7B7E"))==null?void 0:pt.count)||0,resourceCount:((gt=Bi.find(qi=>(qi==null?void 0:qi.name)==="\u8D44\u6E90"))==null?void 0:gt.count)||0,proportionCount:(zt=fn==null?void 0:fn.data)==null?void 0:zt.resource_rate};let ei=Object.entries((cn=fn==null?void 0:fn.data)==null?void 0:cn.study_complete_hash).map(([qi,Sr],Pr)=>({name:Oe[Pr].name,value:Sr,itemStyle:Oe[Pr].itemStyle}));const hr={averageCompletionRate:(Tn=fn==null?void 0:fn.data)==null?void 0:Tn.study_complete_rate,averageMasteryRate:(Zn=fn==null?void 0:fn.data)==null?void 0:Zn.study_grasp_rate,completionRate:ei,masteryRate:Object.values((Nn=fn==null?void 0:fn.data)==null?void 0:Nn.study_grasp_hash),course_rank_num:(di=fn==null?void 0:fn.data)==null?void 0:di.course_rank_num,course_rank_all_num:(yi=fn==null?void 0:fn.data)==null?void 0:yi.course_rank_all_num,system_rank_num:(bn=fn==null?void 0:fn.data)==null?void 0:bn.system_rank_num,system_rank_all_num:(Sn=fn==null?void 0:fn.data)==null?void 0:Sn.system_rank_all_num},_n=(ki=fn==null?void 0:fn.courses)==null?void 0:ki.map(qi=>({label:qi.name,value:qi.id}));Se(_n),Re(jn),Je(hr),ct||se({course_id:((ti=_n==null?void 0:_n[0])==null?void 0:ti.value)||null})}setTimeout(()=>{he(!1)},500),ve(!1)}),_e=st=>{ie.course_id=st,se(az({},ie)),$e(ie,!0)};return Kl.createElement(ms,null,Kl.createElement("div",{className:yf.statistics},Kl.createElement("div",{onClick:()=>ne(!0),className:yf.noUnfold},Kl.createElement("img",{style:{width:"32rem",marginBottom:"4rem"},src:Nae}),Kl.createElement("span",null,"\u7EDF"),Kl.createElement("span",null,"\u8BA1")),Kl.createElement("div",{className:yf.wrapBox,style:{right:z?0:"-600rem"}},ae&&Kl.createElement(rn.Z,{style:{width:"100%",marginTop:"200rem"},spinning:!0}),!ae&&Kl.createElement(Kl.Fragment,null,Kl.createElement("div",{className:yf.scrollBox},Kl.createElement("div",{className:yf.content},Kl.createElement("div",{className:yf.title},Kl.createElement("img",{src:Fae}),Kl.createElement("span",null,"\u56FE\u8C31\u7EDF\u8BA1\u5206\u6790")),Kl.createElement("div",{className:yf.top},Kl.createElement("div",{className:yf.topLi},Kl.createElement("div",null,De==null?void 0:De.graphCount),Kl.createElement("div",null,"\u77E5\u8BC6\u56FE\u8C31\u6570\u91CF")),Kl.createElement("div",{className:yf.topLi},Kl.createElement("div",null,De==null?void 0:De.tagCount),Kl.createElement("div",null,"\u6807\u7B7E\u8282\u70B9\u6570\u91CF")),Kl.createElement("div",{className:yf.topLi},Kl.createElement("div",null,De==null?void 0:De.resourceCount),Kl.createElement("div",null,"\u8D44\u6E90\u8282\u70B9\u6570\u91CF"))),Kl.createElement("div",{style:{marginTop:"20rem"},className:yf.title},Kl.createElement("img",{src:Lae}),Kl.createElement("span",null,"\u5B66\u4E60\u7EDF\u8BA1\u5206\u6790")),Kl.createElement(rn.Z,{spinning:pe},Kl.createElement("div",{className:yf.bottom},Kl.createElement("div",{className:yf.bottomLi,style:{marginTop:"82rem",marginRight:"26rem"}},Be.get("type")!=="classrooms"&&Kl.createElement(hl.default,{className:yf.select,options:xe,value:ie==null?void 0:ie.course_id,size:"small",onChange:_e,placeholder:"\u8BF7\u9009\u62E9",getPopupContainer:st=>st.parentNode,style:{width:"222rem"},suffixIcon:Kl.createElement("i",{className:"iconfont icon-a-bianzu11",style:{color:"#fff",fontSize:"12rem"}})}),Kl.createElement("b",{style:{fontSize:"26rem",marginTop:"5rem"}},Le==null?void 0:Le.course_rank_num),Kl.createElement("div",{style:{fontSize:"16rem",marginTop:"4rem"}},"\u8BFE\u5802\u6392\u540D"),Kl.createElement("div",{style:{fontSize:"16rem",marginTop:"4rem"}},"\uFF08\u5171",Le==null?void 0:Le.course_rank_all_num,"\u4EBA\uFF09"),Kl.createElement("img",{src:Iae})),Kl.createElement("div",{className:yf.bottomLi,style:{marginTop:"82rem"}},Kl.createElement("b",{style:{fontSize:"26rem",marginTop:"30rem"}},Le==null?void 0:Le.system_rank_num),Kl.createElement("div",{style:{fontSize:"16rem",marginTop:"4rem"}},"\u7CFB\u7EDF\u6392\u540D"),Kl.createElement("div",{style:{fontSize:"16rem",marginTop:"4rem"}},"\uFF08\u5171",Le==null?void 0:Le.system_rank_all_num,"\u4EBA\uFF09"),Kl.createElement("img",{src:kae})),Kl.createElement("div",{className:yf.bottomLi,style:{marginTop:"104rem",marginRight:"26rem"}},Kl.createElement("b",{style:{fontSize:"26rem",marginTop:"30rem"}},Le==null?void 0:Le.averageCompletionRate,"%"),Kl.createElement("div",{style:{fontSize:"14rem",marginTop:"2rem"}},"\u5E73\u5747\u5B8C\u6210\u7387"),Kl.createElement("img",{src:Oae})),Kl.createElement("div",{className:yf.bottomLi,style:{marginTop:"104rem"}},Kl.createElement("b",{style:{fontSize:"26rem",marginTop:"30rem"}},Le==null?void 0:Le.averageMasteryRate,"%"),Kl.createElement("div",{style:{fontSize:"14rem",marginTop:"2rem"}},"\u5E73\u5747\u638C\u63E1\u7387"),Kl.createElement("img",{src:Rae})),Kl.createElement("div",{className:yf.echarts},Kl.createElement("div",{className:yf.name},"\u5B8C\u6210\u60C5\u51B5"),Kl.createElement(Ju,{dataSource:Le==null?void 0:Le.completionRate})),Kl.createElement("div",{className:yf.echarts},Kl.createElement("div",{className:yf.name},"\u638C\u63E1\u60C5\u51B5"),Kl.createElement(Gae,{dataSource:Le==null?void 0:Le.masteryRate})))))),z&&Kl.createElement("div",{onClick:()=>ne(!1),className:yf.unfold})))))},Hb=je(59301),Kae=Object.defineProperty,YT=Object.getOwnPropertySymbols,lz=Object.prototype.hasOwnProperty,uz=Object.prototype.propertyIsEnumerable,cz=(ee,y,E)=>y in ee?Kae(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Jae=(ee,y)=>{for(var E in y||(y={}))lz.call(y,E)&&cz(ee,E,y[E]);if(YT)for(var E of YT(y))uz.call(y,E)&&cz(ee,E,y[E]);return ee},qae=(ee,y)=>{var E={};for(var z in ee)lz.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&YT)for(var z of YT(ee))y.indexOf(z)<0&&uz.call(ee,z)&&(E[z]=ee[z]);return E},hz=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const _ae=ee=>{var y=ee,{pathsDetail:E,user:z,globalSetting:ne,loading:ie,dispatch:se,tpacti:ae,settpacti:he}=y,pe=qae(y,["pathsDetail","user","globalSetting","loading","dispatch","tpacti","settpacti"]),ve,xe,Se,Be,De,Re;const Oe=(0,yt.useParams)(),[Le,Je]=(0,Me.useState)(""),[$e,_e]=(0,Me.useState)([]),[st]=(0,yt.useSearchParams)(),[ct,ut]=(0,Me.useState)([]),[ht,pt]=(0,Me.useState)(1);(0,Me.useEffect)(()=>{var cn,Tn,Zn,Nn,di,yi;if((cn=E==null?void 0:E.detail)!=null&&cn.nodes&&ht===1){_e((Tn=E==null?void 0:E.detail)==null?void 0:Tn.nodes),Je((di=(Nn=(Zn=E==null?void 0:E.detail)==null?void 0:Zn.nodes)==null?void 0:Nn[1])==null?void 0:di.uuid);let bn=[...(yi=E==null?void 0:E.detail)==null?void 0:yi.nodes];ut(bn==null?void 0:bn.splice(1)),pt(2)}},[(ve=E==null?void 0:E.detail)==null?void 0:ve.nodes]),(0,Me.useEffect)(()=>{var cn,Tn,Zn;Je(ae||((Zn=(Tn=(cn=E==null?void 0:E.detail)==null?void 0:cn.nodes)==null?void 0:Tn[1])==null?void 0:Zn.uuid))},[ae]);const gt=(...cn)=>hz(void 0,[...cn],function*(Tn={}){return yield se({type:"pathsDetail/getKnowledgeGraphs",payload:Jae({graphable_type:st.get("type")==="classrooms"?"course":"subject",graphable_id:Oe==null?void 0:Oe.pathId},Tn)})});function zt(){return hz(this,null,function*(){var cn,Tn,Zn,Nn;const di=yield gt({graphable_id:Oe==null?void 0:Oe.pathId});Je((Tn=(cn=di==null?void 0:di.nodes)==null?void 0:cn[1])==null?void 0:Tn.uuid),he((Nn=(Zn=di==null?void 0:di.nodes)==null?void 0:Zn[1])==null?void 0:Nn.uuid)})}return Hb.createElement("div",{style:{height:"calc(100vh - 72px - 170rem)"}},($e==null?void 0:$e.length)>0&&Hb.createElement("div",{className:Ky.content},((xe=$e==null?void 0:$e[0])==null?void 0:xe.uuid)===Le&&Le&&Hb.createElement(lae,{onAddSuccess:zt,setActivated:Je,subjectId:Oe==null?void 0:Oe.pathId,settpacti:he}),((Se=$e==null?void 0:$e[0])==null?void 0:Se.uuid)!==Le&&Le&&Hb.createElement(Rse,{tpacti:ae,setactivied:()=>{var cn;Je((cn=$e==null?void 0:$e[0])==null?void 0:cn.uuid)},initdata:zt,Tabsdatas:ct,uuid:Le})),(Be=E==null?void 0:E.detail)!=null&&Be.can_managed?Hb.createElement(Dae,{isAll:((De=$e==null?void 0:$e[0])==null?void 0:De.uuid)===Le,subjectId:Oe==null?void 0:Oe.pathId,uuid:Le}):Hb.createElement(Yae,{isAll:((Re=$e==null?void 0:$e[0])==null?void 0:Re.uuid)===Le,subjectId:Oe==null?void 0:Oe.pathId,uuid:Le}))};var $ae=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(_ae),dz={TabsItemActive:"TabsItemActive___UqdaX",TabsItem:"TabsItem___L0dKD"},gS=je(59301),ele=Object.defineProperty,tle=Object.defineProperties,nle=Object.getOwnPropertyDescriptors,KT=Object.getOwnPropertySymbols,fz=Object.prototype.hasOwnProperty,pz=Object.prototype.propertyIsEnumerable,gz=(ee,y,E)=>y in ee?ele(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,ile=(ee,y)=>{for(var E in y||(y={}))fz.call(y,E)&&gz(ee,E,y[E]);if(KT)for(var E of KT(y))pz.call(y,E)&&gz(ee,E,y[E]);return ee},rle=(ee,y)=>tle(ee,nle(y)),ole=(ee,y)=>{var E={};for(var z in ee)fz.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&KT)for(var z of KT(ee))y.indexOf(z)<0&&pz.call(ee,z)&&(E[z]=ee[z]);return E};const mz=({DataProps:ee,isActive:y=!1,onClick:E})=>gS.createElement("div",{className:`current ${dz.TabsItem} ${y?dz.TabsItemActive:""}`,onClick:E},(ee==null?void 0:ee.name)||""),sle=ee=>{var y=ee,{pathsDetail:E,dispatch:z,activied:ne,setactivied:ie,settpacti:se,tpacti:ae,setxxljac:he,xxljac:pe,TabsData:ve=[],tplist:xe=[]}=y,Se=ole(y,["pathsDetail","dispatch","activied","setactivied","settpacti","tpacti","setxxljac","xxljac","TabsData","tplist"]),Be,De,Re,Oe;const Le=(0,Me.useRef)(null),[Je,$e]=(0,Me.useState)(0),[_e,st]=(0,Me.useState)(!1),ct=(0,Me.useMemo)(()=>(ve==null?void 0:ve.filter(ut=>![1,3,4].includes(ut==null?void 0:ut.key)))||[],[ve]);return(0,Me.useEffect)(()=>{Le.current&&setTimeout(()=>{const ut=(0,Et.ZR)(Le.current,"rem",1,!0);$e(ut)},500)},[Le.current,E==null?void 0:E.detail]),gS.createElement("div",{className:"flex c-white justify-between overflow_hidden",style:{height:_e?"auto":"40rem",background:"#101C39",borderRadius:"22rem",backdropFilter:"blur(10rem)",fontSize:"16rem",lineHeight:"26rem"}},gS.createElement("div",{ref:Le,className:"flex flex-wrap",style:{gap:"25rem 40rem"}},(Oe=((De=(Be=E==null?void 0:E.detail)==null?void 0:Be.nodes)==null?void 0:De.length)>1?(Re=E==null?void 0:E.detail)==null?void 0:Re.nodes.slice(1):[{isNull:!0}])==null?void 0:Oe.map((ut,ht)=>{var pt;return gS.createElement(mz,{key:ut==null?void 0:ut.uuid,DataProps:ut!=null&&ut.isNull?rle(ile({},ut),{name:((pt=ve==null?void 0:ve.find(gt=>(gt==null?void 0:gt.key)==3))==null?void 0:pt.name)||(ut==null?void 0:ut.name)}):ut,isActive:ut!=null&&ut.isNull?ne==3:ne==3&&(ae?(ut==null?void 0:ut.uuid)==ae:ht==0),onClick:()=>{se==null||se(ut==null?void 0:ut.uuid),ie==null||ie(3)}})}),ct==null?void 0:ct.map(ut=>gS.createElement(mz,{key:ut==null?void 0:ut.key,DataProps:ut,isActive:ne==(ut==null?void 0:ut.key),onClick:()=>{ie==null||ie(ut==null?void 0:ut.key)}}))),Je>44&&gS.createElement("div",{className:"current flex text-nowrap",style:{padding:"7rem 20rem"},onClick:()=>{st(!_e)}},gS.createElement("a",null,_e?"\u6536\u8D77":"\u5C55\u5F00"," ",gS.createElement(Cu.Z,{rotate:_e?-180:0,rev:void 0}))))};var ale=(0,yt.connect)(({pathsDetail:ee})=>({pathsDetail:ee}))(sle),vz=je(60242),lle=je(90356),ule="data:image/png;base64,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",cle="data:image/png;base64,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",hle=je(37426),dle=je(19150),fle=je(55303),ple=je(92691),gle=je(99755),mle=je(46016),vle="data:image/png;base64,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",yle=je(70453),Ale=je.p+"static/bg.a1e8d200.png",wN={ChangeBut:"ChangeBut___VXZuF"},xle=je(54650),wle=Object.defineProperty,Sle=Object.defineProperties,Ple=Object.getOwnPropertyDescriptors,yz=Object.getOwnPropertySymbols,Cle=Object.prototype.hasOwnProperty,Ele=Object.prototype.propertyIsEnumerable,Az=(ee,y,E)=>y in ee?wle(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,xz=(ee,y)=>{for(var E in y||(y={}))Cle.call(y,E)&&Az(ee,E,y[E]);if(yz)for(var E of yz(y))Ele.call(y,E)&&Az(ee,E,y[E]);return ee},wz=(ee,y)=>Sle(ee,Ple(y)),SN=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const ble=({pathsDetail:ee,dispatch:y})=>{var E,z,ne,ie,se,ae,he,pe,ve,xe,Se,Be,De,Re,Oe,Le,Je,$e,_e,st;const{detail:ct,actionTabs:ut}=ee,ht=(0,yt.useParams)(),[pt]=(0,yt.useSearchParams)(),gt=(0,Me.useRef)(null),[zt,cn]=(0,Me.useState)({}),[,Tn,Zn,Nn]=(0,$t.U)(Mt.Eu,{subject_id:ht==null?void 0:ht.pathId}),[di,yi]=(0,Me.useState)([{name:"\u638C\u63E1\u738759%\u4EE5\u4E0B",value:0,itemStyle:{color:"rgb(6,110,247)"}},{name:"\u638C\u63E1\u738760%\uFF5E79%",value:0,itemStyle:{color:"rgb(6,234,230)"}},{name:"\u638C\u63E1\u738780%\uFF5E100%",value:0,itemStyle:{color:"rgb(223,209,38)"}}]),bn=[{title:"\u80FD\u529B\u76EE\u6807\u638C\u63E1\u6570",value:(E=Nn==null?void 0:Nn.data)==null?void 0:E.total_grasp_count,unit:"\u4E2A",img:mle,bg:"rgba(18, 42, 159, .4)",ProgressTitle:"\u5B8C\u6210\u6574\u4F53\u80FD\u529B\u7387",percent:((z=Nn==null?void 0:Nn.data)==null?void 0:z.total_grasp_rate)||0,trailColor:"rgba(22, 115, 255, .1)",strokeColor:"#1673FF"},{title:"\u5DF2\u638C\u63E1\u5B50\u80FD\u529B\u6570",value:(ne=Nn==null?void 0:Nn.data)==null?void 0:ne.children_ability_goal_grasp_count,unit:"\u4E2A",img:vle,bg:"rgba(0, 87, 76, .4)",ProgressTitle:"\u5B8C\u6210\u5B50\u80FD\u529B\u7387",percent:((ie=Nn==null?void 0:Nn.data)==null?void 0:ie.children_ability_goal_grasp_rate)||0,trailColor:"rgba(50, 199, 145, .1)",strokeColor:"#32C791"},{title:"\u8D44\u6E90\u5B8C\u6210\u6570",value:(se=Nn==null?void 0:Nn.data)==null?void 0:se.resource_complete_count,unit:"\u4E2A",img:ple,bg:"rgba(108, 76, 0, .4)",ProgressTitle:"\u5B8C\u6210\u8D44\u6E90\u7387",percent:((ae=Nn==null?void 0:Nn.data)==null?void 0:ae.resource_complete_rate)||0,trailColor:"rgba(209, 157, 83, .1)",strokeColor:"#D19D53"},{title:"\u5DF2\u7ECF\u638C\u63E1\u77E5\u8BC6\u70B9",value:(he=Nn==null?void 0:Nn.data)==null?void 0:he.knowledge_grasp_count,unit:"\u4E2A",img:gle,bg:"rgba(0, 28, 106, .4)",ProgressTitle:"\u77E5\u8BC6\u70B9\u638C\u63E1\u7387",percent:((pe=Nn==null?void 0:Nn.data)==null?void 0:pe.knowledge_grasp_rate)||0,trailColor:"rgba(50, 199, 145, .1)",strokeColor:"#1673FF"}],Sn=(...ti)=>SN(void 0,[...ti],function*(fn={}){yield Zn(wz(xz({},fn),{subject_id:ht==null?void 0:ht.pathId}))}),ki=()=>SN(void 0,null,function*(){y({type:"pathsDetail/getKnowledgeGraphs",payload:{graphable_type:pt.get("type")==="classrooms"?"course":"subject",graphable_id:ht.pathId}})});return(0,Me.useEffect)(()=>{var ti,fn;if((Nn==null?void 0:Nn.status)==0&&(ct!=null&&ct.can_managed)){const Bi=(fn=Object==null?void 0:Object.entries(((ti=Nn==null?void 0:Nn.data)==null?void 0:ti.study_grasp_hash)||{}))==null?void 0:fn.map(([jn,ei],hr)=>({name:jn,value:ei,itemStyle:di[hr].itemStyle}));yi(Bi)}},[ct==null?void 0:ct.can_managed,Nn]),(0,Me.useEffect)(()=>{zt!=null&&zt.id&&Sn({id:zt==null?void 0:zt.id})},[zt]),(0,Me.useEffect)(()=>{var ti,fn,Bi;if(((ti=ct==null?void 0:ct.ability_goals)==null?void 0:ti.length)>0){const jn=(fn=ct==null?void 0:ct.ability_goals)==null?void 0:fn.find(ei=>ei==null?void 0:ei.is_choice);cn(wz(xz({},jn),{knowledge_graph_route_id:(Bi=Nn==null?void 0:Nn.data)==null?void 0:Bi.knowledge_graph_route_id})),!(jn!=null&&jn.id)&&y({type:"pathsDetail/save",payload:{actionTabs:{key:"\u5207\u6362\u80FD\u529B\u56FE\u8C31"}}})}},[ct==null?void 0:ct.ability_goals,(ve=Nn==null?void 0:Nn.data)==null?void 0:ve.knowledge_graph_route_id]),Me.createElement(rn.Z,{spinning:Tn},((xe=ct==null?void 0:ct.ability_goals)==null?void 0:xe.length)>0?Me.createElement("div",{className:"flex w-full c-white overflow_hidden",style:{padding:"20rem 40rem",fontSize:"16rem"}},Me.createElement("div",{className:" minW-0 flex flex-col",style:{flex:"1.5",gap:"10rem"}},Me.createElement("div",{className:" flex-1",style:{padding:"20rem",background:"rgba(32, 47, 79, .34)",borderRadius:"12rem"}},Me.createElement("div",{className:"flex item-center gap-10px-rem"},Me.createElement("div",{className:"flex item-center rounded-full text-14px-rem mr-auto",style:{background:"#101C39",padding:"0 0 0 20rem",gap:"10rem"}},Me.createElement("div",{className:"c-grey-eee text-nowrap "},"\u5F53\u524D\u8DEF\u5F84"),Me.createElement(lt.Z,{title:(zt==null?void 0:zt.name)||"",placement:"topLeft"},Me.createElement("div",{className:"multi_ellipsis1"},(zt==null?void 0:zt.name)||"")),Me.createElement("div",{className:`current flex item-center text-nowrap ${wN.ChangeBut}`,onClick:()=>{y({type:"pathsDetail/save",payload:{actionTabs:{key:"\u5207\u6362\u80FD\u529B\u56FE\u8C31"}}})}},Me.createElement("span",{className:"iconfont icon-dingbu-qiehuanbanben",style:{fontSize:"14rem"}})," \u66F4\u6362")),(ct==null?void 0:ct.can_managed)&&Me.createElement("div",{className:"text-12px-rem c-white flex item-center gap-10px-rem"},Me.createElement("div",{className:"flex current item-center rounded-full gap-6px-rem text-nowrap",style:{background:"#202F4F",padding:"5rem 8rem"},onClick:()=>{y({type:"pathsDetail/save",payload:{actionTabs:{key:"\u65B0\u5EFA\u80FD\u529B\u56FE\u8C31"}}})}},Me.createElement("span",{className:"iconfont icon-tianjiatixing",style:{fontSize:"12rem"}})," \u65B0\u5EFA\u80FD\u529B\u56FE\u8C31"),Me.createElement("div",{className:"flex current item-center rounded-full gap-6px-rem text-nowrap",style:{background:"#202F4F",padding:"5rem 8rem"},onClick:()=>{y({type:"pathsDetail/save",payload:{actionTabs:{key:"\u7F16\u8F91\u80FD\u529B\u56FE\u8C31"}}})}},Me.createElement("span",{className:"iconfont icon-bianji13",style:{fontSize:"12rem"}})," \u7F16\u8F91\u80FD\u529B\u56FE\u8C31"),Me.createElement("div",{className:"flex current item-center rounded-full gap-6px-rem text-nowrap",style:{background:"#202F4F",padding:"5rem 8rem"},onClick:()=>{Jt.default.confirm({title:"\u5220\u9664\u80FD\u529B\u56FE\u8C31",icon:null,centered:!0,width:"500rem",content:Me.createElement(Me.Fragment,null,Me.createElement("div",{className:"text-16px-rem c-black ",style:{marginBottom:"10rem"}},"\u8BF7\u786E\u8BA4\u662F\u5426\u9700\u8981\u5220\u9664\u300A",zt==null?void 0:zt.name,"\u300B\u80FD\u529B\u56FE\u8C31\uFF1F\u5220\u9664\u540E\uFF0C\u5C06\u65E0\u6CD5\u6062\u590D\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\u3002"),Me.createElement(xle.Z,{ref:ti=>gt.current=ti})),okText:"\u786E\u8BA4\u5220\u9664",onOk:()=>SN(void 0,null,function*(){if(gt.current.onVerify())return Promise.reject();const ti=yield(0,Mt.pf)({id:zt==null?void 0:zt.id,subject_id:ht==null?void 0:ht.pathId});(ti==null?void 0:ti.status)===0&&(Qt.ZP.success("\u5220\u9664\u6210\u529F"),ki())})})}},Me.createElement("span",{className:"iconfont icon-shanchu17",style:{fontSize:"12rem"}})," \u5220\u9664\u80FD\u529B\u56FE\u8C31"))),Me.createElement("div",{className:"flex",style:{marginTop:"30rem",gap:"10rem"}},Me.createElement("div",{className:"minW-0 flex",style:{flex:"1.5"}},[{title:"\u4E3B\u80FD\u529B\uFF08\u4E2A\uFF09",value:(Se=Nn==null?void 0:Nn.data)==null?void 0:Se.total_count,img:ule},{title:"\u5B50\u80FD\u529B\uFF08\u4E2A\uFF09",value:(Be=Nn==null?void 0:Nn.data)==null?void 0:Be.total_children_count,img:cle}].map((ti,fn)=>Me.createElement("div",{key:fn,className:"flex-1 minW-0 flex flex-col item-center",style:{gap:"10rem"}},Me.createElement("div",{style:{fontSize:"30rem",textShadow:"0 1rem 10rem #0096FC"}},ti==null?void 0:ti.value),Me.createElement("div",{style:{fontSize:"14rem"}},ti==null?void 0:ti.title),Me.createElement("img",{src:ti==null?void 0:ti.img,width:"166rem",height:"160rem",style:{width:"166rem",height:"160rem",marginTop:"-15rem"}})))),Me.createElement("div",{className:"flex-1 minW-0 flex flex-col justify-between",style:{gap:"70rem"}},[{title:"\u8986\u76D6\u77E5\u8BC6\u70B9",value:(De=Nn==null?void 0:Nn.data)==null?void 0:De.total_knowledge_count,unit:"\u4E2A",percent:(Re=Nn==null?void 0:Nn.data)==null?void 0:Re.knowledge_rate,percenttitle:"\u5360\u603B\u77E5\u8BC6\u70B9"},{title:"\u8986\u76D6\u8D44\u6E90\u6570",value:(Oe=Nn==null?void 0:Nn.data)==null?void 0:Oe.total_resource_count,unit:"\u4E2A",percent:(Le=Nn==null?void 0:Nn.data)==null?void 0:Le.resource_rate,percenttitle:"\u5360\u603B\u8D44\u6E90\u6570"}].map((ti,fn)=>Me.createElement("div",{key:fn,className:"flex-1 minW-0 flex relative",style:{gap:"20rem"}},Me.createElement("div",{className:"flex flex-col justify-between",style:{marginLeft:"40rem"}},Me.createElement("div",{style:{fontSize:"14rem",whiteSpace:"nowrap"}},ti==null?void 0:ti.title),Me.createElement("div",{style:{fontSize:"26rem",textShadow:(ti==null?void 0:ti.value)==0?"":"0 1rem 10rem #0096FC",opacity:(ti==null?void 0:ti.value)==0?.9:1}},ti==null?void 0:ti.value,Me.createElement("span",{style:{fontSize:"14rem"}},ti==null?void 0:ti.unit))),Me.createElement(vz.Z,{type:"dashboard",percent:ti==null?void 0:ti.percent,gapDegree:178,strokeWidth:10,className:"absolute",style:{right:"30rem",top:"15rem"},trailColor:"#1E2E72",strokeColor:{"0%":"#0E5FFF","50%":"#2DE1FD","100%":"#2DE1FD"},strokeLinecap:"round",format:Bi=>Me.createElement("div",{className:"c-white",style:{fontSize:"12rem",textAlign:"center",marginTop:"-35rem"}},Bi,"%",Me.createElement("br",null),Me.createElement("br",null),ti==null?void 0:ti.percenttitle)})))))),Me.createElement("div",{className:"flex-1",style:{padding:"20rem",background:"rgba(32, 47, 79, .34)",borderRadius:"12rem"}},Me.createElement("div",{style:{marginBottom:"20rem"}},"\u4E3B\u80FD\u529B\u5B66\u4E60\u60C5\u51B5"),ct!=null&&ct.can_managed?Me.createElement("div",{className:"flex",style:{gap:"10rem"}},Me.createElement("div",{className:"minW-0 flex flex-col flex-1",style:{gap:"13rem"}},[{title:"\u5B66\u4E60\u4EBA\u6570",value:(Je=Nn==null?void 0:Nn.data)==null?void 0:Je.study_count,unit:"",img:hle,bg:"rgba(68, 95, 232, 0.4)"},{title:"\u5B66\u4E60\u5B8C\u6210\u7387",value:($e=Nn==null?void 0:Nn.data)==null?void 0:$e.complete_rate,unit:"%",img:dle,bg:"rgba(182, 129, 0, .4)"},{title:"\u5B66\u4E60\u638C\u63E1\u7387",value:(_e=Nn==null?void 0:Nn.data)==null?void 0:_e.grasp_rate,unit:"%",img:fle,bg:"rgba(6, 145, 127, .4)"}].map((ti,fn)=>Me.createElement("div",{key:fn,className:"relative",style:{borderRadius:"6rem",padding:"20rem",background:ti==null?void 0:ti.bg}},Me.createElement("div",{style:{fontSize:"14rem",color:"rgba(255,255,255,.8)"}},ti==null?void 0:ti.title),Me.createElement("div",{style:{fontSize:"26rem"}},ti==null?void 0:ti.value,Me.createElement("span",{style:{fontSize:"14rem"}},ti==null?void 0:ti.unit)),Me.createElement("img",{className:"absolute",style:{right:"6rem",bottom:"6rem"},height:"35rem",src:ti==null?void 0:ti.img})))),Me.createElement("div",{className:"flex-2 minW-0"},Me.createElement(lle.Z,{dataSource:di,legend:{top:null,icon:"roundRect",bottom:10,left:"center",itemWidth:14,itemGap:15,textStyle:{color:"#fff"},formatter:ti=>ti}}))):Me.createElement("div",{style:{display:"grid",gap:"20rem",gridTemplateColumns:"1fr 1fr"}},bn==null?void 0:bn.map((ti,fn)=>Me.createElement("div",{key:fn,className:"relative c-white",style:{padding:"22rem 30rem",background:ti==null?void 0:ti.bg,borderRadius:"6rem"}},Me.createElement("img",{src:ti==null?void 0:ti.img,width:"43rem",height:"43rem",className:"absolute",style:{right:"22rem",top:"22rem"}}),Me.createElement("div",{style:{fontSize:"14rem"}},ti==null?void 0:ti.title),Me.createElement("div",{className:" blod",style:{marginTop:"10rem",fontSize:"26rem",lineHeight:"26rem"}},ti==null?void 0:ti.value,Me.createElement("span",{style:{fontSize:"14rem"}},ti==null?void 0:ti.unit)),Me.createElement("div",{style:{fontSize:"12rem",marginTop:"26rem"}},Me.createElement("div",null,ti==null?void 0:ti.ProgressTitle,ti==null?void 0:ti.percent,"%"),Me.createElement(vz.Z,{percent:ti==null?void 0:ti.percent,showInfo:!1,trailColor:ti==null?void 0:ti.trailColor,strokeColor:ti==null?void 0:ti.strokeColor,style:{marginBottom:"0",marginLeft:"0"}}))))))),Me.createElement("div",{className:"flex-2 minW-0 flex item-center justify-center relative"},(ct==null?void 0:ct.can_managed)&&Me.createElement("div",{className:"absolute flex item-center gap-16px-rem",style:{top:0,right:0}},Me.createElement("div",{className:`current flex item-center ${wN.ChangeBut}`,onClick:()=>{(0,Et.xg)(`/knowledgegraph/${ht.pathId}/abilityMap/edit/${zt==null?void 0:zt.id}${window.location.search}`)}},Me.createElement("span",{className:"iconfont icon-dingbu-qiehuanbanben",style:{fontSize:"14rem"}})," \u7F16\u8F91\u80FD\u529B\u76EE\u6807"),pt.get("type")!=="classrooms"&&Me.createElement("div",{className:`current flex item-center ${wN.ChangeBut}`,onClick:()=>{y({type:"pathsDetail/save",payload:{actionTabs:{key:"\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802",params:{type:"goal"}}}})}},Me.createElement("span",{className:"iconfont icon-dingbu-qiehuanbanben",style:{fontSize:"14rem"}})," \u53D1\u9001\u81F3\u8BFE\u5802")),Me.createElement("img",{src:Ale,className:"absolute",width:"1532rem",height:"100%",style:{left:"50%",pointerEvents:"none",transform:"translateX(-61%)"}}),Me.createElement(yle.Z,{DataProps:((st=Nn==null?void 0:Nn.data)==null?void 0:st.ability_goals)||[],className:"c-white",style:{backgroundSize:"auto 100%",height:"710rem",width:"710rem"}}))):Me.createElement("div",{className:"w-full c-white text-14px-rem flex flex-col justify-center",style:{padding:"70rem 150rem",minHeight:"100vh"}},Me.createElement("div",{className:"flex item-center justify-center gap-30px-rem"},(ct==null?void 0:ct.can_managed)&&Me.createElement("div",{className:"current rounded-full py-10px-rem px-40px-rem",style:{background:"linear-gradient( 90deg, #272B95 0%, #295BAB 100%)"},onClick:()=>{y({type:"pathsDetail/save",payload:{actionTabs:{key:"\u65B0\u5EFA\u80FD\u529B\u56FE\u8C31"}}})}},"\u521B\u5EFA\u80FD\u529B\u56FE\u8C31")),Me.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem mt-40px-rem",style:{background:`url(${je(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}}," \u8BFE\u7A0B\u80FD\u529B\u56FE\u8C31\u662F\u4EC0\u4E48\uFF1F "),Me.createElement("div",{className:"rounded-8px-rem py-16px-rem px-20px-rem w-full mt-20px-rem relative",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},"\u80FD\u529B\u56FE\u8C31\u901A\u8FC7\u6574\u5408\u8BFE\u7A0B\u57F9\u517B\u76EE\u6807\u4E0E\u77E5\u8BC6\u70B9\uFF0C\u6784\u5EFA\u4EE5\u80FD\u529B\u57F9\u517B\u4E3A\u6838\u5FC3\u7684\u6210\u957F\u5730\u56FE\u3002\u5B83\u6E05\u6670\u6807\u6CE8\u6BCF\u4E00\u95E8\u8BFE\u7A0B\u9700\u638C\u63E1\u7684\u6838\u5FC3\u80FD\u529B\uFF0C\u5C06\u62BD\u8C61\u7684\u77E5\u8BC6\u8F6C\u5316\u4E3A\u53EF\u91CF\u5316\u3001\u53EF\u8FFD\u8E2A\u7684\u80FD\u529B\u5750\u6807\uFF0C\u8BA9\u5B66\u4E60\u6709\u65B9\u5411\uFF0C\u6210\u957F\u6709\u8F68\u8FF9\u3002",Me.createElement("img",{className:"absolute",src:je(23280),style:{width:"66rem",height:"83rem",right:"8rem",bottom:"16rem"}})),Me.createElement("div",{className:"flex gap-40px-rem mt-40px-rem"},Me.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},Me.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${je(37618)}) 0 0 /100% 100% no-repeat`,width:"340rem",height:"40rem",color:"#F9F9F9"}}," \u8BFE\u7A0B\u80FD\u529B\u56FE\u8C31\u5728\u5E73\u53F0\u7684\u5E94\u7528 "),Me.createElement("div",{className:"w-full flex justify-between gap-32px-rem relative"},Me.createElement("img",{className:"absolute",style:{width:"97rem",height:"42rem",left:"200rem",top:"80rem"},src:je(79989)}),Me.createElement("img",{className:"absolute",style:{width:"97rem",height:"42rem",right:"210rem",top:"80rem"},src:je(73486)}),[{title:"\u591A\u7EF4\u80FD\u529B\u56FE\u8C31",desc:"\u4E00\u4E2A\u8BFE\u7A0B\u4E0B\u652F\u6301\u6784\u5EFA\u591A\u4E2A\u80FD\u529B\u56FE\u8C31\uFF0C\u5B66\u751F\u53EF\u4EE5\u6839\u636E\u4E2A\u4EBA\u4E13\u4E1A\u3001\u5B66\u4E60\u60C5\u51B5\u7B49\u56E0\u7D20\uFF0C\u9009\u62E9\u4E0D\u540C\u7684\u80FD\u529B\u56FE\u8C31\u8FDB\u884C\u5B66\u4E60\u3002",img:je(4212)},{title:"\u6570\u636E\u5173\u8054",desc:"\u652F\u6301\u5C06\u5B66\u751F\u5728\u6559\u5B66\u8BFE\u5802\u3001\u77E5\u8BC6\u56FE\u8C31\u3001\u5B66\u4E60\u8DEF\u5F84\u4E2D\u7684\u5B66\u4E60\u60C5\u51B5\u8FDB\u884C\u6C47\u603B\u7EDF\u8BA1\uFF0C\u5206\u6790\u51FA\u5B66\u751F\u5728\u80FD\u529B\u56FE\u8C31\u4E2D\u7684\u638C\u63E1\u60C5\u51B5\u3002",img:je(50356)},{title:"\u80FD\u529B\u5B66\u4E60\u8DEF\u5F84",desc:"\u652F\u6301\u6839\u636E\u80FD\u529B\u56FE\u8C31\u4E2D\u7684\u4E3B\u80FD\u529B\u548C\u5B50\u80FD\u529B\u751F\u6210\u5BF9\u5E94\u5B66\u4E60\u8DEF\u5F84\uFF0C\u4FBF\u4E8E\u5B66\u751F\u6309\u7167\u5BF9\u7528\u8DEF\u5F84\u8FDB\u884C\u5B66\u4E60\u3002",img:je(40362)}].map((ti,fn)=>Me.createElement("div",{key:fn,className:`flex flex-col item-center ${fn!=1?"mt-64px-rem":""}`},Me.createElement("img",{src:ti==null?void 0:ti.img,style:{width:"127rem",height:"119rem"}}),Me.createElement("div",{className:"px-20px-rem pb-20px-rem",style:{background:`url(${je(14760)}) 0 0 / 100% 100% no-repeat`}},ti==null?void 0:ti.title),Me.createElement("div",{className:"mt-6px-rem",style:{width:"20rem",height:"10rem",background:"#7A99DD",clipPath:"polygon(100% 0, 0 0, 50% 100%)",WebkitClipPath:"polygon(100% 0, 0 0, 50% 100%)"}}),Me.createElement("div",{className:"px-20px-rem py-20px-rem mt-6px-rem rounded-8px-rem",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259",color:"rgba(255,255,255,0.8)",width:"236rem",height:"153rem"}},ti==null?void 0:ti.desc))))),Me.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},Me.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${je(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}}," \u521B\u5EFA\u80FD\u529B\u56FE\u8C31\u6CE8\u610F\u4E8B\u9879 "),Me.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-10px-rem"},[{desc:Me.createElement("div",{className:"flex flex-col gap-4px-rem"},Me.createElement("div",{className:"text-16px-rem"},"\u80FD\u529B\u56FE\u8C31\u6784\u5EFA"),Me.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u80FD\u529B\u56FE\u8C31\u57FA\u4E8E\u5B66\u4E60\u8DEF\u5F84\u548C\u77E5\u8BC6\u56FE\u8C31\u521B\u5EFA\uFF0C\u5728\u521B\u5EFA\u80FD\u529B\u56FE\u8C31\u524D\uFF0C\u9700\u521B\u5EFA\u77E5\u8BC6\u56FE\u8C31\u548C\u5B66\u4E60\u8DEF\u5F84\u3002"))},{desc:Me.createElement("div",{className:"flex flex-col gap-4px-rem"},Me.createElement("div",{className:"text-16px-rem"},"\u5B50\u80FD\u529B/\u4E3B\u80FD\u529B\u638C\u63E1\u5EA6\u8BA1\u7B97"),Me.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},Me.createElement("span",{className:"c-white"},"\u5B50\u80FD\u529B\uFF1A"),"\u6839\u636E\u5F53\u524D\u5173\u8054\u7684\u8D44\u6E90\u638C\u63E1\u8FDB\u884C\u8BA1\u7B97\uFF0C\u6240\u6709\u8D44\u6E90\u638C\u63E1\u7387\u8FBE\u5230\u8BBE\u7F6E\u6570\u503C\u540E, \u8868\u793A\u638C\u63E1\u6539\u8BE5\u80FD\u529B\uFF1B",Me.createElement("br",null),Me.createElement("span",{className:"c-white"},"\u4E3B\u80FD\u529B\uFF1A"),"\u6839\u636E\u8BE5\u4E3B\u80FD\u529B\u4E0B\u7684\u5B50\u80FD\u529B\u8FDB\u884C\u8BA1\u7B97\uFF0C\u6240\u6709\u5B50\u80FD\u529B\u638C\u63E1\u540E\uFF0C\u8868\u793A\u4E3B\u80FD\u529B\u638C\u63E1\u3002"))},{desc:Me.createElement("div",{className:"flex flex-col gap-4px-rem"},Me.createElement("div",{className:"text-16px-rem"},"\u4E3B\u80FD\u529B/\u5B50\u80FD\u529B\u6570\u91CF\u9650\u5236"),Me.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u4E00\u4E2A\u80FD\u529B\u56FE\u8C31\u4E2D\u6700\u591A\u521B\u5EFA8\u4E2A\u4E3B\u80FD\u529B\uFF0C\u4E3B\u80FD\u529B\u4E0B\u4E0D\u9650\u5236\u5B50\u80FD\u529B\u6570\u91CF\uFF0C\u5B50\u80FD\u529B\u4E0B\u4E0D\u9650\u5236\u8D44\u6E90\u77E5\u8BC6\u70B9\u5173\u8054\u6570\u91CF\u3002"))}].map((ti,fn)=>Me.createElement("div",{key:fn,className:"px-16px-rem py-22px-rem w-full flex item-center gap-20px-rem rounded-8px-rem",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},Me.createElement("div",{className:"text-18px-rem flex item-center justify-center rounded-4px-rem",style:{background:"rgba(48,97,208,0.2)",width:"70rem",height:"80rem"}},(fn+1).toString().padStart(2,"0")),Me.createElement("div",{className:"flex-1 minW-0"},ti==null?void 0:ti.desc))))))),(ut==null?void 0:ut.key)=="\u5207\u6362\u80FD\u529B\u56FE\u8C31"&&Me.createElement(sx.E_,{type:"goal",open:(ut==null?void 0:ut.key)=="\u5207\u6362\u80FD\u529B\u56FE\u8C31",title:"\u9009\u62E9\u80FD\u529B\u56FE\u8C31",currentSeleteData:zt,onFinish:()=>{ki()}}),((ut==null?void 0:ut.key)=="\u65B0\u5EFA\u80FD\u529B\u56FE\u8C31"||(ut==null?void 0:ut.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31")&&Me.createElement(sx.DZ,{currentSeleteData:zt,onFinish:()=>{ki()}}))};var Mle=(0,yt.connect)(({pathsDetail:ee})=>({pathsDetail:ee}))(ble),Ble=je(2960),il=je(59301),Tle=Object.defineProperty,JT=Object.getOwnPropertySymbols,Sz=Object.prototype.hasOwnProperty,Pz=Object.prototype.propertyIsEnumerable,Cz=(ee,y,E)=>y in ee?Tle(ee,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):ee[y]=E,Dle=(ee,y)=>{for(var E in y||(y={}))Sz.call(y,E)&&Cz(ee,E,y[E]);if(JT)for(var E of JT(y))Pz.call(y,E)&&Cz(ee,E,y[E]);return ee},Nle=(ee,y)=>{var E={};for(var z in ee)Sz.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&JT)for(var z of JT(ee))y.indexOf(z)<0&&Pz.call(ee,z)&&(E[z]=ee[z]);return E},Ez=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});const Fle=ee=>{var y=ee,{pathsDetail:E,user:z,globalSetting:ne,loading:ie,dispatch:se,activied:ae,setactivied:he}=y,pe=Nle(y,["pathsDetail","user","globalSetting","loading","dispatch","activied","setactivied"]),ve,xe,Se,Be,De,Re,Oe,Le,Je;const{detail:$e,actionTabs:_e}=E,st=(0,yt.useParams)(),[ct]=(0,yt.useSearchParams)(),[ut,ht]=(0,Me.useState)([]),[pt,gt]=(0,Me.useState)(),[zt,cn]=(0,Me.useState)(),[Tn]=an.default.useForm(),[Zn,Nn]=(0,Me.useState)(!1),[di,yi]=(0,Me.useState)(!1),bn=(xe=(ve=$e==null?void 0:$e.route_nodes)==null?void 0:ve.find(fn=>fn==null?void 0:fn.is_choice))==null?void 0:xe.id,Sn=[{name:"\u8BFE\u7A0B\u4FE1\u606F",key:1,content:il.createElement(Hi,null),isshow:ct.get("type")!=="classrooms"},{name:"\u8BFE\u7A0B\u56FE\u8C31",key:3,content:((Be=(Se=E==null?void 0:E.detail)==null?void 0:Se.nodes)==null?void 0:Be.length)<=1?il.createElement("div",{className:"w-full c-white text-14px-rem flex flex-col justify-center",style:{padding:"70rem 150rem",minHeight:"100vh"}},il.createElement("div",{className:"flex item-center justify-center gap-30px-rem"},((De=E==null?void 0:E.detail)==null?void 0:De.can_managed)&&il.createElement("div",{className:"current rounded-full py-10px-rem px-40px-rem",style:{background:"linear-gradient( 90deg, #272B95 0%, #295BAB 100%)"},onClick:()=>{yi(!0)}},"\u65B0\u5EFA\u56FE\u8C31"),((Re=E==null?void 0:E.detail)==null?void 0:Re.can_managed)&&ct.get("type")!=="classrooms"&&il.createElement("div",{className:"current rounded-full py-10px-rem px-40px-rem flex item-center gap-4px-rem",style:{background:"linear-gradient( 90deg, #272B95 0%, #295BAB 100%)"},onClick:()=>Ez(void 0,null,function*(){let fn=yield(0,on.ZP)("/api/knowledge/v2/sync.json",{method:"post",body:{subject_id:st==null?void 0:st.pathId}});fn.status===0&&Qt.ZP.info(fn==null?void 0:fn.message)})},"\u751F\u6210\u56FE\u8C31",il.createElement(lt.Z,{title:il.createElement("span",{className:"c-black"},"\u6839\u636E\u65E7\u7248\u77E5\u8BC6\u56FE\u8C31\u5185\u5BB9\u6216\u8BFE\u7A0B\u7AE0\u8282\u53CA\u8D44\u6E90\u5185\u5BB9\u81EA\u52A8\u751F\u6210\u77E5\u8BC6\u56FE\u8C31"),color:"#fff"},il.createElement(ys.Z,{style:{color:"#fff",marginLeft:5,marginTop:0},rev:void 0})))),il.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem mt-40px-rem",style:{background:`url(${je(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}},"\u8BFE\u7A0B\u77E5\u8BC6\u56FE\u8C31\u662F\u4EC0\u4E48\uFF1F"),il.createElement("div",{className:"rounded-8px-rem py-16px-rem px-20px-rem w-full mt-20px-rem relative",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},"\u8BFE\u7A0B\u77E5\u8BC6\u56FE\u8C31\u662F\u4E00\u5F20\u667A\u80FD\u5316\u7684\u77E5\u8BC6\u5BFC\u822A\u5730\u56FE\uFF0C\u901A\u8FC7AI\u6280\u672F\u5C06\u96F6\u6563\u77E5\u8BC6\u70B9\u4E32\u8054\u6210\u903B\u8F91\u7F51\u7EDC\uFF0C\u6E05\u6670\u5C55\u73B0\u5B66\u79D1\u6838\u5FC3\u6982\u5FF5\u3001\u80FD\u529B\u5C42\u7EA7\u4E0E\u5173\u8054\u8DEF\u5F84\u3002\u5B83\u5982\u540C\u4E00\u4F4D\u201C\u8D85\u7EA7\u5BFC\u5E08\u201D\uFF0C\u4E3A\u4F60\u6307\u660E\u5B66\u4EC0\u4E48\u3001\u600E\u4E48\u5B66\u3001\u5B66\u5230\u54EA\u3002",il.createElement("img",{className:"absolute",src:je(23280),style:{width:"66rem",height:"83rem",right:"8rem",bottom:"16rem"}})),il.createElement("div",{className:"flex gap-40px-rem mt-40px-rem"},il.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},il.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${je(37618)}) 0 0 /100% 100% no-repeat`,width:"340rem",height:"40rem",color:"#F9F9F9"}}," \u8BFE\u7A0B\u77E5\u8BC6\u56FE\u8C31\u5728\u5E73\u53F0\u7684\u5E94\u7528 "),il.createElement("div",{className:"w-full flex flex-wrap justify-between",style:{background:`url(${je(30019)}) center / auto 100% no-repeat`,height:"446rem",gap:"54rem 200rem"}},[{title:"\u5B66\u4E60\u8DEF\u5F84\u751F\u6210",order:1,desc:"\u5C06\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8282\u70B9\uFF0C\u6839\u636E\u5173\u7CFB\uFF08\u5305\u542B\u3001\u524D/\u540E\u7EED\uFF09\u548C\u8282\u70B9\u6807\u7B7E\uFF08\u5982\uFF1A\u6587\u79D1/\u7406\u79D1\u3001\u57FA\u7840/\u8FDB\u9636/\u7A81\u7834\uFF09\u5FEB\u901F\u81EA\u52A8\u6784\u5EFA\u5B66\u4E60\u8DEF\u5F84\u3002"},{title:"\u80FD\u529B\u56FE\u8C31\u6784\u5EFA",order:2,desc:"\u5C06\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8282\u70B9\uFF0C\u6309\u7167\u80FD\u529B\u7EF4\u5EA6\uFF0C\u6784\u5EFA\u8BFE\u7A0B\u80FD\u529B\u56FE\u8C31\uFF0C\u7528\u4E8E\u68C0\u9A8C\u5B66\u751F\u5BF9\u8BFE\u7A0B\u57F9\u517B\u80FD\u529B\u7684\u638C\u63E1\u3002"},{title:"\u8BFE\u5802\u5B66\u60C5\u5206\u6790",order:4,desc:"\u652F\u6301\u4E00\u952E\u5C06\u77E5\u8BC6\u56FE\u8C31\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802\uFF0C\u8BA9\u5B66\u751F\u5728\u6559\u5B66\u8BFE\u5802\u4E2D\u5B8C\u6210\u5B66\u4E60\u4EFB\u52A1\uFF0C\u5E76\u53EF\u4EE5\u6839\u636E\u5B66\u751F\u5B66\u4E60\u60C5\u51B5\u8FDB\u884C\u5B66\u60C5\u5206\u6790\u548C\u5B66\u60C5\u9884\u8B66\u3002"},{title:"\u5B66\u4E60\u8D44\u6E90\u63A8\u8350",order:3,desc:"\u5229\u7528\u77E5\u8BC6\u56FE\u8C31\u4E2D\u7684\u8282\u70B9\u5173\u7CFB\u548C\u6807\u7B7E\u5206\u7C7B\uFF0C\u57FA\u4E8E\u5B66\u751F\u5B66\u4E60\u53CA\u638C\u63E1\u5185\u5BB9\u4E3A\u5B66\u751F\u63A8\u8350\u8584\u5F31\u70B9\u3001\u63D0\u5347\u70B9\u3001\u7A81\u7834\u70B9\u8D44\u6E90\u5B66\u4E60\u3002"}].map((fn,Bi)=>il.createElement("div",{key:Bi,className:"py-10px-rem px-20px-rem flex flex-col gap-10px-rem rounded-8px-rem",style:{width:"234rem",height:"160rem",background:"rgba(70,99,162,0.16)",border:"1rem solid #203259",order:fn==null?void 0:fn.order}},il.createElement("div",{className:"text-16px-rem"},Bi+1,". ",fn==null?void 0:fn.title),il.createElement("div",{style:{color:"rgba(255,255,255,0.8)"}},fn==null?void 0:fn.desc))))),il.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-20px-rem"},il.createElement("div",{className:"pl-40px-rem text-20px-rem pt-2px-rem",style:{background:`url(${je(63232)}) 0 0 /100% 100% no-repeat`,width:"250rem",height:"40rem",color:"#F9F9F9"}}," \u521B\u5EFA\u77E5\u8BC6\u56FE\u8C31\u6CE8\u610F\u4E8B\u9879 "),il.createElement("div",{className:"flex-1 minW-0 flex flex-col gap-10px-rem"},[{desc:il.createElement("div",{className:"flex flex-col gap-4px-rem"},il.createElement("div",{className:"text-16px-rem"},"\u77E5\u8BC6\u56FE\u8C31\u8282\u70B9\u7C7B\u578B"),il.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u77E5\u8BC6\u56FE\u8C31\u8282\u70B9\u4E3B\u8981\u5206\u4E3A\u4E24\u79CD\u7C7B\u578B\uFF1A",il.createElement("span",{style:{color:"#FFE698"}},"\u6807\u7B7E\u8282\u70B9\u548C\u8D44\u6E90\u8282\u70B9"),il.createElement("br",null),il.createElement("span",{className:"c-white"},"\u6807\u7B7E\u8282\u70B9\uFF1A"),"\u7528\u4E8E\u521B\u5EFA\u6587\u672C\u5185\u5BB9\uFF0C\u5982\u7AE0\u8282\u3001\u77E5\u8BC6\u70B9\u3002",il.createElement("br",null),il.createElement("span",{className:"c-white"},"\u8D44\u6E90\u8282\u70B9\uFF1A"),"\u7528\u4E8E\u521B\u5EFA\u8D44\u6E90\u5185\u5BB9\uFF0C\u53EF\u4EE5\u9009\u62E9\u5E73\u53F0\u8D44\u6E90\u3001\u672C\u5730\u4E0A\u4F20\u6587\u4EF6\u548C\u5916\u94FE\u3002",il.createElement("br",null)))},{desc:il.createElement("div",{className:"flex flex-col gap-4px-rem"},il.createElement("div",{className:"text-16px-rem"},"\u77E5\u8BC6\u56FE\u8C31\u8282\u70B9\u6807\u7B7E"),il.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u77E5\u8BC6\u56FE\u8C31\u6807\u7B7E\u53EF\u4EE5\u7528\u6237\u81EA\u5B9A\u4E49\u6DFB\u52A0\uFF0C\u8282\u70B9\u6807\u7B7E\u4E3B\u8981\u7528\u4E8E\u7B5B\u9009\u8282\u70B9\uFF0C\u5982\u6587\u79D1/\u7406\u79D1/\u5DE5\u79D1\u3001\u7B80\u5355/\u8FDB\u9636/\u56F0\u96BE\u3002",il.createElement("br",null),il.createElement("span",{style:{color:"#FFE698"}},"\u5EFA\u8BAE\u521B\u5EFA\u56FE\u8C31\u65F6\uFF0C\u5C06\u6807\u7B7E\u540C\u6B65\u5EFA\u7ACB\uFF0C\u540E\u7EED\u5728\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84\u548C\u80FD\u529B\u56FE\u8C31\u65F6\u53EF\u4EE5\u4F7F\u7528\u3002")))},{desc:il.createElement("div",{className:"flex flex-col gap-4px-rem"},il.createElement("div",{className:"text-16px-rem"},"\u77E5\u8BC6\u56FE\u8C31\u8282\u70B9\u5173\u7CFB"),il.createElement("div",{className:"",style:{color:"rgba(255,255,255,0.8)"}},"\u77E5\u8BC6\u56FE\u8C31\u5173\u7CFB",il.createElement("span",{style:{color:"#FFE698"}},"\u6709\u5305\u542B/\u88AB\u5305\u542B\u3001\u524D\u5E8F/\u540E\u7EED\u3001\u5173\u8054\u3002"),il.createElement("br",null),il.createElement("span",{style:{color:"#FFE698"}},"\u5EFA\u8BAE\u521B\u5EFA\u56FE\u8C31\u65F6\uFF0C\u5C06\u5173\u7CFB\u540C\u6B65\u5EFA\u7ACB\uFF0C\u5728\u521B\u5EFA\u5B66\u4E60\u8DEF\u5F84\u65F6\uFF0C\u5C06\u6839\u636E\u524D\u5E8F/\u540E\u7EED\u5173\u7CFB\u751F\u6210\u5B66\u4E60\u8DEF\u5F84\u3002")))}].map((fn,Bi)=>il.createElement("div",{key:Bi,className:"py-22px-rem px-16px-rem w-full flex item-center gap-20px-rem rounded-8px-rem",style:{background:"rgba(70,99,162,0.16)",border:"1rem solid #203259"}},il.createElement("div",{className:"text-18px-rem flex item-center justify-center rounded-4px-rem",style:{background:"rgba(48,97,208,0.2)",width:"70rem",height:"80rem"}},(Bi+1).toString().padStart(2,"0")),il.createElement("div",{className:"flex-1 minW-0"},fn==null?void 0:fn.desc))))))):il.createElement($ae,{settpacti:gt,tpacti:pt}),isshow:!0},{name:"\u5B66\u4E60\u8DEF\u5F84",key:2,content:il.createElement(SS,{setxxljac:cn,xxljac:zt}),isshow:!0},{name:"\u4EA4\u6D41\u53CD\u9988",key:4,content:il.createElement(Js,null),isshow:ct.get("type")!=="classrooms"},{name:"\u80FD\u529B\u56FE\u8C31",key:5,content:il.createElement(Mle,null),isshow:!0},{name:"\u6570\u636E\u7EDF\u8BA1",key:6,content:il.createElement(Ble.default,{learningpathId:bn,isCompontent:!0}),isshow:ct.get("type")=="classrooms"&&bn}].filter(fn=>fn==null?void 0:fn.isshow);(0,Me.useEffect)(()=>{var fn,Bi;if((fn=E==null?void 0:E.detail)!=null&&fn.nodes){let jn=[...(Bi=E==null?void 0:E.detail)==null?void 0:Bi.nodes];ht(jn==null?void 0:jn.splice(1))}},[(Oe=E==null?void 0:E.detail)==null?void 0:Oe.nodes]),(0,Me.useEffect)(()=>Wr.Z.subscribe("create_a_knowledge_map",()=>{yi(!0)}),[]);const ki=(fn={})=>{se({type:"pathsDetail/getKnowledgeGraphs",payload:Dle({graphable_type:ct.get("type")==="classrooms"?"course":"subject",graphable_id:st.pathId},fn)})},ti=fn=>Ez(void 0,null,function*(){var Bi,jn,ei,hr,_n,qi,Sr;const{nodeType:Pr,description:Go,name:_o,tags:ta}=fn;Nn(!0);const un=yield(0,on.ZP)("/api/knowledge/v2/add_node.json",{method:"POST",body:{label:"\u56FE\u8C31",subject_id:st==null?void 0:st.pathId,properties:{description:Go,rootNodeUuid:(ei=(jn=(Bi=E==null?void 0:E.detail)==null?void 0:Bi.nodes)==null?void 0:jn[0])==null?void 0:ei.uuid,name:_o,nodeType:Pr[0],tags:(ta==null?void 0:ta.join("\uFF0C"))||"",color:"1"},relationships:[{startNodeUuid:(qi=(_n=(hr=E==null?void 0:E.detail)==null?void 0:hr.nodes)==null?void 0:_n[0])==null?void 0:qi.uuid,type:"\u5305\u542B"}]}});(un==null?void 0:un.status)===0&&(yi(!1),gt((Sr=un==null?void 0:un.data)==null?void 0:Sr.uuid),he(3),ki({graphable_id:st==null?void 0:st.pathId})),Nn(!1)});return il.createElement("div",{className:ir.content,style:{paddingTop:"20rem"}},il.createElement("div",{style:{padding:"0 40rem",position:"sticky",top:0,zIndex:99}},il.createElement(ale,{activied:ae,setactivied:he,TabsData:Sn,tplist:ut,settpacti:gt,tpacti:pt,setxxljac:cn,xxljac:zt})),(_e==null?void 0:_e.key)=="\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802"&&il.createElement(sx.NI,{onFinish:()=>{ki()},type:(Le=_e==null?void 0:_e.params)==null?void 0:Le.type}),il.createElement(Jt.default,{open:di,centered:!0,width:"1000rem",okText:"\u4FDD\u5B58",onCancel:()=>yi(!1),cancelText:"\u53D6\u6D88",afterClose:()=>{Tn.resetFields()},confirmLoading:Zn,onOk:()=>Tn.submit(),title:"\u65B0\u589E\u77E5\u8BC6\u56FE\u8C31"},il.createElement("div",{className:ir.modal},il.createElement("div",{className:ir.mHead},"\u8282\u70B9\u5C5E\u6027"),il.createElement(an.default,{form:Tn,scrollToFirstError:!0,layout:"horizontal",colon:!1,size:"large",labelCol:{flex:"110rem"},onFinish:ti,className:ir.form},il.createElement(an.default.Item,{label:"\u56FE\u8C31\u540D\u79F0",name:"name",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u8282\u70B9\u540D\u79F0"},{type:"string",max:60,message:"\u8F93\u5165\u8D85\u9650\uFF0C\u8BF7\u7F29\u51CF\u5B57\u7B26\u6570"},{type:"string",whitespace:!0,message:"\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},il.createElement(ln.default,{maxLength:60,showCount:!0,placeholder:"\u8BF7\u8F93\u5165"})),il.createElement(an.default.Item,{label:"\u7B80\u4ECB",name:"description",rules:[{type:"string",max:5e3,message:"\u8F93\u5165\u8D85\u9650\uFF0C\u8BF7\u7F29\u51CF\u5B57\u7B26\u6570"},{type:"string",whitespace:!0,message:"\u5185\u5BB9\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},il.createElement(ln.default.TextArea,{maxLength:5e3,showCount:!0,placeholder:"\u8BF7\u8F93\u5165"})),il.createElement(an.default.Item,{className:ir.mType,label:il.createElement("span",null,"\u56FE\u8C31\u7C7B\u578B ",il.createElement(lt.Z,{title:"\u5F53\u524D\u77E5\u8BC6\u56FE\u8C31\u7684\u7C7B\u578B\uFF0C\u5982\uFF1A\u5927\u7EB2\u56FE\u8C31\u3001\u80FD\u529B\u56FE\u8C31"},il.createElement(ys.Z,null))),name:"nodeType",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u8282\u70B9\u7C7B\u578B"}]},il.createElement(Q1,{subjectId:st==null?void 0:st.pathId,type:1}))))),il.createElement("div",{className:ir.content},(Je=Sn.find(fn=>fn.key===ae))==null?void 0:Je.content))};var Lle=(0,yt.connect)(({pathsDetail:ee,user:y,loading:E,globalSetting:z})=>({pathsDetail:ee,user:y,globalSetting:z,loading:E.models.index}))(Fle),qT=je(59301),bz=Object.getOwnPropertySymbols,Ile=Object.prototype.hasOwnProperty,kle=Object.prototype.propertyIsEnumerable,Ole=(ee,y)=>{var E={};for(var z in ee)Ile.call(ee,z)&&y.indexOf(z)<0&&(E[z]=ee[z]);if(ee!=null&&bz)for(var z of bz(ee))y.indexOf(z)<0&&kle.call(ee,z)&&(E[z]=ee[z]);return E},Rle=(ee,y,E)=>new Promise((z,ne)=>{var ie=he=>{try{ae(E.next(he))}catch(pe){ne(pe)}},se=he=>{try{ae(E.throw(he))}catch(pe){ne(pe)}},ae=he=>he.done?z(he.value):Promise.resolve(he.value).then(ie,se);ae((E=E.apply(ee,y)).next())});function Mz(ee){const y=(ne,ie)=>{if(ne.localName===ie)return ne;for(let se=0,ae=ne;ae=ae.parentNode;se++){if(ae.localName===ie)return ae;if(ae==document.documentElement)return!1}},E=ee.target,z=y(E,"a");if(console.log([z],z==null?void 0:z.href,44),!(z!=null&&z.href)&&E.tagName.toUpperCase()==="IMG"){let ne=E.src||E.getAttribute("src");ne&&ne.indexOf("/images/avatars/User")===-1&&(ee.stopPropagation(),ee.preventDefault(),Wr.Z.publish("preview-image",ne))}}const zle=ee=>{var y=ee,{pathsDetail:E,globalSetting:z,loading:ne,dispatch:ie}=y,se=Ole(y,["pathsDetail","globalSetting","loading","dispatch"]);const[ae]=(0,yt.useSearchParams)(),he=(0,yt.useParams)(),pe=(0,Me.useRef)(),[ve,xe]=(0,Me.useState)((ae==null?void 0:ae.get("type"))!=="classrooms"?3:1);(0,Me.useEffect)(()=>{ae.get("tabs")&&xe(parseInt(ae.get("tabs"))||3)},[ae.get("tabs")]),(0,Me.useEffect)(()=>{if(pe.current)return pe.current.addEventListener("mousedown",Mz),()=>{var Be;(Be=pe.current)==null||Be.removeEventListener("mousedown",Mz)}},[pe.current]),(0,Me.useEffect)(()=>{he.pathId&&Se()},[he.pathId]),(0,Me.useEffect)(()=>(ie({type:"globalSetting/footerToggle",payload:!1}),()=>{ie({type:"globalSetting/footerToggle",payload:!0})}),[]);const Se=()=>Rle(void 0,null,function*(){const Be=yield ie({type:"pathsDetail/getKnowledgeGraphs",payload:{graphable_type:ae.get("type")==="classrooms"?"course":"subject",graphable_id:he.pathId}});ae.get("type")!="classrooms"&&(Be!=null&&Be.id)&&ae.get("token")&&(location.href=location.pathname)});return qT.createElement(rn.Z,{spinning:!1},qT.createElement("section",{id:"knowledgegraphDetail",className:Or.bg,style:{background:ae.get("type")!=="classrooms"?"#010A23":""}},qT.createElement(ao,null),qT.createElement(Lle,{activied:ve,setactivied:xe})))};var Ule=(0,yt.connect)(({pathsDetail:ee,loading:y,globalSetting:E})=>({pathsDetail:ee,globalSetting:E,loading:y}))(zle)},2960:function(Cn,Ei,je){"use strict";je.r(Ei),je.d(Ei,{KNOWLEDGELEARNINGDETAIL:function(){return Rt},default:function(){return en}});var Me=je(59301),yt=je(25690),Jt=je.p+"static/nav.8f5feceb.png",Qt="data:image/png;base64,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",It="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAiCAYAAABStIn6AAAAAXNSR0IArs4c6QAABCRJREFUSEudlm1om1UUx8+5Ny+LCAVdY5t16NbWzgqW0KRNNxuz4oZMUT9sIoLKFGXaIX7a/LBCkImifnBss6BVpl8KTl0RZFAWm3ZLt25LaCdZ1zdljHTtbOwL29qtee6Re588SZ70LfhASO59cn7P//zPOTdByLsC8c593MFOhTY/O5l/b7U1LgFd7ewiInJW79xxElErFGYC7aG47dZgYgYIHIj4Sbh6x6H/BWoaDG3ViCIECICckMHz3VWB04XATIoCg6GPBLFPQYIAAZEn7Vabu7Oi7sZaMBPomWvdv5OAXQAMABkQATDkF6q2WPzfoGexILODRKxr6Ny/RKxIpaZeLK2MHenZ4vmwIJB/pNdNKYgZaeWqkuqQ8d1nH6/5ZSVYJjX/0IVmEnhMBklYVpX0isn1nIXz2nDFk6PLwTKgwN/xEu3eQpQAXMpo5RMCkaygDkZk/RaroyG8adNCPsxk9vbhgfoUQTcB2EEBsuqUKrkHrC1SVfnOqiB50z8Sf0vT6DtMqzAMN6oogcjwzXMVm3/MhWHt5fH1UY9rKnfz6aFB6VUzqU2zZ0oZsrtI1rpIZWnciEN3ZNxPVtt8f936S8bmu0TW+MhYiAgapT+qklIJSNNB9wv4NVuRxRt2Om/LOB3EuI9Six0DjWXDBmzn6ITzDs1fJmAbsy2h95aESWWA2N5b/shrJhACpNgia4/6i28asG1j4x4g7awgXKePTNpws8r3e8sfas0oUsGEd0pnZttO76q8Z8Dq44m996cXDygZwAGEer6cHfWZkN1PzdGrJhBHdinqK+4yIMEgsaNz538lAS+RIB0igYJArqVTgHTFUeJoyIAY4yPRuoc7EFEvFgAUH+j7TAhxMDfYgCkwwbQN7J7JVu9fCgQW/hjjzvaoBzMT7mzpe0OkxA8kVcgUpAIZq9QoxwQJfGH6WIM6r9DdN1lTdBfHwtv1MsrLGby4lTT6gwTZs2p0oFwrqMCW5JGGw5k+ym/10sOxRzWRukgCnHqAHmgApD8g8LepL30v59pgmrXq4/EHk7PzERLiKZVS2lgjNblGwuEiO3lHg74504hkKkTEWr+InQIhXsxCpBopSb4DMILbjFP9RNB3NT+TjCLXV7G3hUZtxtP1cksCgjxzSZPy2J5/gt6f8yHpztK3NxwdaNJSqZCpXyRHAvQB+/zWIe/B5SAmUNlPNxxiYmpGCGHL9URVStAZf7nnuZOvrPyDaTLbdTzWQwIaDRV67+B1vu6B2sT+J5IrqTEpkgtXa//HJERLZhSIFoBbtt3cXxNbDbIEtOHbgSbSRMhIjQncm/jAfWItyBKQ9IlmkzOkkQ0Bvk7sczcXAlkCkhtl31/pIU3wEndNIHf21gIu+Vuz8cSf7zHOO66/Xp054NaCLKuokKDlvvMfv2MJoMXHak4AAAAASUVORK5CYII=",dt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAAXNSR0IArs4c6QAAA45JREFUSEuVVm1oTXEcfn5nQyvKW4jE0myUNGwZuUuIJLSrxIgPSHzwkkVeNy8h8lKS+KIkH1jxxUuYTG3aymSp3SkvacvabdGUYs7D/56XnfM/5957dr7c2zn//+/5/Z7f2yOI8Nwhi00TqyCICTCBwHh1TYBOAh0g6g0DD9aJtGQzJ5kO3OxjXIhTAArDztEChfq1HUhQcGhzrtSmsxsKeOMX88XAbRJlXoO6ERGABNRv6nE8ABpponJrnnwK3NFfXPvFGAnl4ehs9LgAToj+C0kxEN+eJ/Xe174IL/UyJsQzEQyKSKEnqFD3fpvAkt3D+kFdwHPfmW8ATRCMdpMSxkc/bf0UepLo9cCmO2kSpVXDLXpdwLM9bCBQ5sPQq8L+eGCUlbUzPWS2EG2Qxv0jZZ4LeLKLcRq4FyAlpAwVwJExFuCJbhVDtEdMrDk8VmpTF492sQ1EoV51TgXqZo+PswCPfssM6LUnQKJ6rBTJgQ4Wi+CNr6zT+W33yOkJFuDBTqYQ3a6wW8R1w+kp+wCJWVL1lTXKWW8bZePp/EQLcN9Xf4Sa/UDXCHBcdn1hHYiFqYRqjaxT6hi8PNkC3PWZzDQYAtkVvJCdH5kgMTVK6h2Hrk6xAHd89APqEeo2SbTL1nb2imBoGKXpKLpeYAFuaWdSBKO8w9TXJsEq/ymb2thrOIB60jUXHQduFlmA699xxJDBqFbBAsgNodA7X9X/XtnwngnCojRrDvtznBBg763p8lDd29jKaaaBiwCWZkoNgXZZ28o6wCqaQJHo20C3Jnhk/sWeuzMloT6tbeUKABcAFKQBfiEVLayG4FjogWx1bl36I8AVow81d+fIj4q3XEhABeHuSnd+EjWyspnFzInW+IEa8DPQDeIwBNtAzE65ojksBmalwJc1sy3dVo/SLu6ZNLPXHkWJxyVSlAJc/JpxImR4DwgthEOPAwKseTbXHt7KbqyBDSDKfCIlWCR6mQdETZo+bKyf71lPym7pS+bnGmiiV1pkpihS/AIk+0yUNpVrC1jdLqljOQ08BcIlxkAD/r9QfotgSXN5iMRwjM14zliOWCIqsPDTKADXEX9VJg0i3rIog4hyLhY+YX4OcBvilxwBWaiF7A4OE41/gcrE0ggy0Wuj4DHj/+k9JbYQjhCgGpOHPiwboBDWczXpIYsFWG0IFpgm1L5PSX0SnYaBDpN4ReD+l+XZpf4/FIGC9X1F6awAAAAASUVORK5CYII=",Mt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAcCAYAAAB75n/uAAAAAXNSR0IArs4c6QAAAz9JREFUSEu1lltoHGUUx3//SQz1VqUkM0us2Agqtl5QLBUad1axD5YiFUVptT6IPqhUH9RAi/dCRYsPKloQ+qSk3opCWwQVs5umISBUjBeoFluwht1JX6RI0012jpnZZLub7s7uVvq9nv85v3O+8505I8u5Y8AqGh3jMJ3hSvWfOFktsbEliyl2jmNc1dAXDshy3n6wtQkiML2hTGFrDSDrbUe2JdEP7ZcNeTfg2E+AkyCegs5r5U/8FWks13slzPwOLErwmUHOzSo7eLvAHkuugo+VCTbF+qz7EeKR5Oz5QH7wdBkw0t1LyfkDuKiOkwGR7ReK0+Ukui7YBVoBdh0Qx1hw/kHONUrnJytGy/VsA71YJRwFG6TT+VyrC0G9bG106RKmT68HPQisqVyzGFA62BH5nAGMdF9KyTkCTAFPyA++MUOMdN9KqLtByzBSMUjkwY7h2Hf0nzgkYZZNrUThh8Bl/Lv4eq09croGEF/VsLsaJxzHWTRDsfgk4jmgt8ldT2C8TVfXTo4fL+L1XC1/MrrSuVwWeFuuJw0aBK5oEnih+W+wjfInh6sNNQ2yrBtl/R7Q0WbweXkJY7Mywc6zKrCc99Dsq9jd4FVE+pOIp4BThHiI9xskYaAN8gufVnpgOa8P7LfEwREPKB3siXtV1v+ZUOUUaLn8wtHyHGTdLxHrGzhMYHpemUJUXXxaAIDxlTLBfbKh1DKc8GiD4K9ycbBdtzFdbW8JEDmETp8s6w4g3qwLMN2rTGGvjS69kOniHdFstFxBuQEDspz7BXB//Qr0ONjliM0YB+UHD7cFgD0RIHkfnCEPngNgLAIcAm5p4d2fC+BHWbZnL9K68wIw2xc1+S3EC+cHwA7ZAW8VoUV9aHbavyJHt89tNHccuDGRYPYJl0w+GmtOdfcROoebZPSz/OCmuUlO3YnC75uV0JbdnLuUyQ9VbTTvHbBn2grSUKx35ReeLc/a/PfFcBj2ds9+9KL19z+OPiNd2CAR1gDiCY0h7kuzX5GXm/zG1EsgCvg66WDbfPCzAJVqyvv1NeCeFkv5GnNeUSb/w0J9vV+OisZGUisoldaB1iBql75xDOxbOjr2qT//a6NE/gPtIUhN59fk8wAAAABJRU5ErkJggg==",an="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAcCAYAAAB75n/uAAAAAXNSR0IArs4c6QAAA/xJREFUSEulVltsFFUY/v5ZKgspihiiQY2tSUFF7M4agnamrTXSaatEjMrFyIsJD423B2ONxgtKoijxQYliSHhRg6FClCjtTiWudGfaJjY7u0WMWCIYi2kkGK3EXWFnfnNmL+xtZtd4XiY5//ed77+eM6Qb1gSANfBeJ9JYsPp+9aa/iiFDExOXz8vMn2LgBm8qx0g3rMMA+nwEhOkNTZVfKMbohvU6gOf9eAQcJt1M3gp2kgAkbzClYQeWa52rfhEY/eix6xGwfwQ46COQsR1uJZdgxveC6bEaUXysqfIWF29YHwF41BdPeF9T5MddgREjvoxB0wAWViExA9MS+DsKOq4TTnreXgArAV4BwD2jZDH+tJlb+jrCZwtG3YxvB9OLBSBjjIB9LEmfakrrb9W8jYwdX0L2xfUMZwMRrS1K84CmyjsFpyBwyPhhURCpkwDSRLS1WwmNMDONGPEwI3CPRGhi4mtcEtOswzhNsI90q+E4EfGwaa2WGHsAXGHPNd7c19fyT4mAm6pRS0lJC6aWSr9nzvPCfmZ+BsCyGrX5lYjebqS/d8/MzFxYfHXLjd2dski3uyryp5vxDjDtA3BtjYPLzWdA/IimhEeLDSUCuhnvB9MuAIH/eHgeboP4SU0J766IQDfjm3Kel0f1E4D9YDpJcFIMuhIS3w6mTV5dB9BmTQ3tL6RIP5psRoC/rzI4h+y5xo35ghVH5XIkZxSE6yqjFYNJt2idradyg2Z9Bsb68m7OEDffq4R/FvtHYonlNjntl12kg11d8h9iLxKLbyGiD6umk/C5psgP0PC41STZOFUFZGqqrIr9ycnJhnPpwCyAJQy816PKT1wS5RNe9XICaKYR0xpgxpseIHGDngUgvq3ZvuOnNCUsGgHDMesuiRD1aYgB0o3EAYAfrKtrCHvG20L924gcgddNaxCMh725dFBc17XeA8HP5DwvtF8klniOiHf4O0YTQsACEPIBnnMYD/W2y98IzNDQ9PzAovO7QNhaK2oGLNJN6wsw7vOqARE6uhU5UdRJBwBaVevwbL3wpYjgLQDPViMwaGOPGhrM2/RYch3ASwtTSmhg8Ac+YjtJjyXXgBxRh7LFxzQ1fJufp9FoNHihYXHKE8PSHdlBM+JTlWHTjquCmZf9BM6kG4NBpOaqY7IOugIRI9FF4K/rymudIAbd3aOGopdetFjiHdGKdfL9YUzvau2hp7N1zq1tzFKbmfiEgQ3/R4SAwTEltDk/jCVXsxC5cyzxEhgi9z6/MVVdcEB4bbwttD1/eEkExZTc+/oqgN46oxl2CK/0KvK35fjKX44iRMRIrHSHUMJaYm4C4D76AGaZ6DQcfCWGqUcNHfdy5F/NC49YNh8yZwAAAABJRU5ErkJggg==",qt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAcCAYAAAB75n/uAAAAAXNSR0IArs4c6QAABDJJREFUSEuVlm2IVGUUx3/nzujuvbOroH4II9SFFNNekMRACislEgsr3JwZZ2ZVCiS0D5Fk9LIlGGV9KKFQMJ2Z3ZltNSrUgjSFghCiLF8CtVSIUlKyxZ07s+7MPfHMOuu+3JnZzreH8z/nf85z/s+LZOLOUWABVU1P54Oh+Ws/vnJtKKQjOmmCFSgcB6ZVDRX5TjJx5wCwtDoBoLwVSbsvD8VkYs4WhE014+CAdMWa5nri/QJYNcAFCejM8K78HwaTXW3fpiU5AzTWiCl6JetuMYBM3NkJrKldjXZEUvnYAN5Og6yqU/2HkZT7XJkgu8aZ6hU5K+D4BCnIWUFPBhobykUU8307EZ0DMgso5xhmSk8waN3euqv38qCzM+ZsFuGVIcDvRcn0Y+2Jp3v/9qu2e+2ESaX+4nKFVmDJzW2WjZFUbquJGSTYuWZKs110f1MoBESeWZnMfW1KzySceagsRnS6wC0mSOESKhcQPRRJuj8JaFebM9/z2CEwceJEd/bSbfQNIzCLjoS9sC8QOt587UqxaNvrQF4AptbZ679A3wvm8x8B1/tDDS3R3X1nKzGj9q8z0fiAqJUBbq2TeKT7TxUvEk0Wvh3qGEbQmXDWibINCPzP5BV4SYX10aRruinbIEE2bj+tSNZHFZdB0qBnRMVV05noIuCRKkWooOFwKv/JIEEq1jgjKNavIw+Oot9MaMw//tgO3JHJOmP2kyKy11emUCiqd0c8XTg/cNASzmcoy0ckKZQ8WmId7sXyWUnYG1StacF8blPrHq6X4+LOQWCxbyfC55Gk+4Rk2xqnq2ed9wH9Y7ZG0OMq2otKuWUV7o0m3R8HCEIZ0HC1eYnlzZBMLLQR0bfHMFSj++5wMv+S0X0y3jx5HKXTwOTqsbJRMjFnL8JT9QhUZXU0ndttcN0rGF+yncMKC2vGKZ+a67rOezCQQlVbKY0/FM30XDXrL9fT8G+P80UNNRmJHjUEx4B76nVww19UYUNF55lE0xzUO1kj9phk484+hWU+oALwO8I5VPKg5kLDSDeaypeVs/1ZxjUXnLKi/Exgv2Ti9jsgL/oAToVT7p1moN0rCBRt52dgLty8KbtWOfM8i7Ki/E23SjZmL1ARMwcfk7ZIKpc0jiOLCF6c1jQrkuw9dWPQdr9t7xPk4aodqN5XedFODFQ3yjxVtoyzG95t3XG1p+LtijXN9izdjur91YvnRCTt3lUm6Iw3PSh4h2sMqwSYa9kFmVJb+wNZFOuhaKr3yJAXLfS+iG6oQTJml6p8EE3nnjcBgwTt7Vgzz4WyFbWMOdsooHSfacmF29vxhhGYhSGZdc55VeG1Ot8YP35P4M3TLe7mSvJRBINDbHPmlzzeEHh0LJ0ofBWweH3lbveHkfjRX44hCHNSVXUZeEsEmc6NRx+4pOgFsA6KyP6KdP2K+Q8ZS5awQH1xoQAAAABJRU5ErkJggg==",nt="data:image/png;base64,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",ln="data:image/png;base64,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",rn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAAAXNSR0IArs4c6QAAIABJREFUeF7svWm0JdlVHvidc2K49805VWZWlkpVJSQEwmLQAoMwpmwsQDIIWyIb1NgC23hs07bbuL169epeq7t/9Fr9w+62l9vLDQLb2GC7sEASWLKwpLKQGGxJDEJIoopSzdPLzDfeISLO0OvbJ+LeuNO772W+qsqSFFC6L++NGzfixHe+vfe399mh8OXthCMQ1LmruBNdIAnInvsZPAqocMKDfHn3egTUl0fiuCMQNK4i2QDW8hyvS4BVZ+C9w6evPYkdXECFB+C/DMbjjmfc78sAPHK8gsYbYM5fQcevY1MrrHL3BLjsgA7/9g6PKoOQWBSFw87OI+jjk3CA8ie7FV+ae38ZgPPu+9VgAGSXgDW/gg3jkZUWgUBTHr7y9kqaJB3nLCrrvpDnOYKDyhIo62BVwP7zCQ7x+yjxSdgvs+LiyfVlAI7GJihcRXq+QK5XsZIYbAUFXQWaVQBFgQIllM+8Tk0LgIMvxENkIBC5EYzCjgn64QD7u7sY4kEUXwbiLBC/DECy3RD5Rged1RTrMFgh05HxIu4KAOVo5NoA5GcBZQ3A8eDmyIA2KwZUQ4fdlQSD555AgQeV/dI0uF8G4HgErobsDNBNE3SCwXqikDZmNrIdtzHwmi8eB4DjHxmzYqqgaZ6DR88O0f8yK34pBiFXg9mqsG42sEoJxRiIzRS2OwJ0E/NWIxjVvZM+4CIGnM9uEYw0z7TUNqCyBcpKYXBgsY8H1CzavwRo8kvDBN8fOhdfgQ0DdKqAbD7bzWe8GQzcNACbI2WC+pDkErRoBec0SmtRGIX9535G9b4EcDd2ab54LzaoM1exoTKsp2Q7jRQJ1CTbta/+mAR0ywAcA5F/kRUJRFgEa2ATj+pwiMN9YA8PKPfFe3++WE3wm0N+xxa2dI6us0hSwBwNvGMyX4OEUwPgLBAb81yVcBrCjINre9jD+1T/ixWIXyQmOLJdt4NNmthMQwePkVMVI9mjtmOyHw9x6gBsn1cm/xBWrN+uAGcS2H4P+1+MrPgyBmBQeAOSK6/Dhg3YoF9H0I34bBRULOOOE4DvBQfgJBgbXZFgVBqh9PBeY3B9Bzt4HwZfDLriywyAQeF+mAsX0HEZtjp1aqxtRJez3TQgbwaA6Z1adTrWztcBl0H+pJ83umLDivx+8BgWCjs3nkIfD0oO+mWZ+nt5AJBi8SGSO7ewXhlske1UnaEQ+Byb7W4RfCMGfHEBOD7rsa4oYGQUDbiywP7zlHK2UeFByUO/bKpzbmMAxtTYBSDzXWzmGutyI+oMBYF3crZ7uQNwfP55HoejAaKk/xz6gz72dgsM8H5ULwdWvP0AWBcCbABdBhWdHJ2KoLMIjbG8deC1jfYJDaIEIS8VAzbn2hjjEhPmOYEiEI2BtT3sPjtED0+jwidVdcKrfNF2v30A+OaQX1hDilWsZR4bPsAwJzsC3k2b2XljeUK/r32I2wqAzYnxeibNMwspOH7DCocA9m88hfJ2LIh4aQF4NZiLHXQGQ+QsBMgzdAUaLba7ef/uqEn8cgfgyPjOvUjJLzZSTgJFvhxolGaA/cpiuL3N6pzboyDipQHg1dC9sIrNpESuE+RJBkMz21SgNKCLxU2oCwNOyyrcAvjqyWFMeqdOk461bm41zGmd6dHHacfEi/ccgTGBShOoilKOR8HUnyvQ33kABy+lr/giAjDoM1exrrtYYyFA1yAvHBSj2REkpgTjZfLxyW/0LYLvZgHocwVdvACR6fFAKIRYs6JwZ82K1sL6FIU/xPDZbey8FKz4wgOwlRpLLJIkQUIYtNluEZBOF4CnAL65ADz4Qn17F1xGcxU5cOpAPD4Am5NrrIqY6BqIZEVW57iA4Yud+nuBABjU2R/CeifDJjU7yclqaIJuEdvNu3svDwDOFqTKtfhS1SJJvDQdC1zjZ6fJiCcH4QQYa1+RYCwZYDlYW8EeJjg8+JfYeaHN8+kC8A0hvfjVOJOnWPMexmtoudiyVdq5NC97G/p97dlhEYxRd+q0yYSwJH/EK9FjJcBaW/BKKR3CaL/GHDf7nYp5vnUginnOKLxGX5HrX4YW/WvP4gYeVMOTuzzLv3EKAAzqwlWspms4owM6zMcGlhfdBOjap3tbsl/NZMGnl9MsXXHlMAQ/fDSe9xgAY8C1r4gg5VXlmPEHb5kRbx580xCZiKDrw2ouxHKwhcHObg8Hp1kmdpMAjGtk70ywoQ22fAauIotbA7xjMt28OXLbgo9FAT54rbIrEgVXToVwOFoTEqaYr31tkQG55eAEVXVGZwKMtxEQ45kCGcu3W/gmGIcWh9eu40bMttC1uPnU3wkAGDTuh2YhANkuV1jhSQpYaseuycsuJ97Fe5wu+FondysnNW2Clbqi0q4sy/TusGZA5mbV4vG0mQBQ6fjabCMwts3wLQHx9NiwOcd5rEgzHRyKPbLip9G72bXQywFYFwJcWsNGsootkyDh7KXDehps174Ztz34RgyoryjT7U4A8CjwNRdZg5CO1ogBpTz/NBnxdAE45d2OaxXrn2HwUg3hS4397R728AjsSdZCLwDguBAg5FjPMmxIlESzMc129VpYise3ut36EdpncEqyS3NI1hqSpWweTMOA1iqve2MGPPYAZECLCdtgHB+imIycj31s7vjCgbCxetOsSHzQ/y8sBkNgd/e54xVEzAfgG0L6yq/GXcjRkULIGngLb+ltB75TNr0N+GrTaFznTpWQAQt4XQchtvHxGu9pDmISSjPN1nasxmZ5LjOeKErmcWNu+DS3NhNOW61RBXcdQZPRfYWy9Hh22SKr+QC8P3S+4tV4Vd/BTkSzi67oFgF4usx3yuBrMyD/9vDCgALAHry2j2ICfFO+IM0ugdeYXx5jBMQpkCxlReqJdUZlqZ/44gCwGZ46vh/loJMUZj/g6d1/rnaPmggLAXj3vbjPVix2LOSgC7cvdvDR2a51vPhaBBPMZZWsjwFYDw4dc4G/Roh/Zyh1GTKf1e+XITJTy5YQmBTfRkAvlZhnEbLrbSpw4bvzzfY0QNusfOt8eAQKRgcXIOY5VjvQexbP3DoAjzrvL2bwiaQy5maCLzJZCIkyl3zS7UJMsBUfsAHf7HCNwUUwjgzwCJR1hmQaZG0AzgHiUgCesgluTmEZCF88AN4i+HhBt7XprdmM5zkCXx0FkwEbACawj40ZL94m2X/OpnQ6IcGMATnHXM4DZJsZj8OKI+3x1tmvfYSjQPiyAeBtC76WmBwaFmr5cI0JFgDaQiXKPjoNuEZ0bpvuI/2gFjAbMIvMdYQJnjDRx2HIUwTjSw/AL3r2y9UE+HiDR8FENMHKdFcYBZvgHmvu/zjbMQm3BqBkwOCrpew4Ab5p5M5hvqP8xQlT/SKA8PQZcF4Q8sUMwJoBBYDt6LWJXG0mxQgeSZfBROLso23GW2bsps1ws78AM0tHX5/28W4VlC8EEOcx4QsPwNsSfLxvNyk8t+WMBnwspvCHM9JJjGZLOAYh6HSVLwJN8BhER6TippC5CIjiQ/L3W9s8MDLoOZGZrplTjvUCMuELC8BTAN9tE3zMAd7o5jfgawnHBB9ZisBx3l0MSacbQqnIgHNZbwpEoJ9XVhCW4+sR2zQ4G0ASPO2/pw8xw5Jtc934szoL40KIW5NpXnwGPAUA3lbBRzvgaADDG0WWqMHXaHgN+Bi5ShSMzsgECxCmATcDsHmRbgsADShbZnjkWzaVM61jNvnjRYCca7Kn/MfTAOI0CF84BjwF8J0++53Q7Dastwh4coPLUcDRiMkN+C5dtOn/8JdW/8Qd55Pv3lrD12Sp2gwKB0URnnzumvvQhz5efPiBXyqfnsHeCJzMAU+xzjzJxpah7Q9OH2+eBngUIGdMtaQW8YIw4ZcBOM+0TZnbCR+rLfg2TJOUqm1y/+YPd1/7ja9Xbzu3pf60NmozhAClFPjKTUEhIMhrfxB+4w+ecA/8n//08CP7+2GqF/R06u0YJrAB6AK/rTHLi4TpiUqbOkszvVTgVv3CeRUzp5cJaaLgW2TAl9T0TjNeyx8SBMm/x2xK8H3914aNv/C21bfceYf6/jxXrxVVblHxGnHE+KPBk2Lb03B9+4b/hQ98vHj3z/9S8eTkvFiSp10UJLTZ8hiBxFxQ1mm/0aIwEdfhbzUwaS+hPd1U3C0Crxn40wPgMc1uO6KdZsWpNFfWWkD0d3+0+/Vf+zp9dX1NfZdCkHFt2I6vEqhMM2DNhvM+V0qFw374jUeeCP/+//pnw1lWpODcZF3a4vORYcrUhwQjwTkXlG2wx7GbLoqV5uynBMIXxgSfZDDm7Ht64Kt9tEVmdspJH7HbvGiwlb/9lq83m1e/J/2+uy4nb09MeNWIzRpVZZrhZpyyWJg+ZkgCtfVG/X1nw43tG+G9v/Lx4bvf/f4wErCnzeTM5d00MCdTf5PHLSeAyN6Dt2qKm+Pfdgz4YgAw6FyPZAoy2gLQNYPEAOPv/mj+ja97TXJ1bU39KaVDNkp+TeFnhKUmObbs82UTVgH9gfqvf/ikf/c//dnhf3puO0zoMgsLDXjcBozHZs2xuC2nNQfMrPnkR2wNfKummMe5rQB4uuCbYsB5vl0DvHnVJADuf0Ny9m1vzr7v0nn9/YkJ90QTG923RYS37PMZQjzB8XxQe9d3/fs++gn77n/zvuqRZdiV8631wIVAbaQcSjtTBRATx2+BsenAykVXxzmHo/b5IgZgObvmVrIWLcab8e+iYfzxv9L95lffh+9fW1XfoaDSJmqNTtG0xVwc5XL3xriOCHEGcMu+HyNmnkPc4gkMC/1bjz3t3/3//Xzxwaef9sXIN2zf7YXmeDawmS6KGB1mWldsHZPtOm6VBW8LAJ46803pZUGXcdH7EYz35j+eXPrub8v+zPmz+s8mJtw1ugFTPt0MoFqyys0AdBrQI3odqS5TiJ+eAB77Owfqlz/+2+7f/5v3DB+eYJu26W2VjMV9qDMeHdRMFEy0gUhdsF5+casByW0BQA7HqYGwBp/od9NsN1U9vNVVyd/6C90/edeV8PbVrn4jQohAbW9TNnXGpZuKcpebpBM6hSew6cNC/c5jz4R//9P/tvjg09f8UFhxOuJtQDeajFFoHp13LTxP/3sGjPKdEtZmt8SCtwUATwV8LdZbxngE3t/7G/k77roj+UtG+wsTutwUgmYZbzqInbSps7LLpM84bZNnTXQUrRuZZpoRl+3P7wbovWe3/c/9q58vf+73H/YHiyfFVNAxbb5HYB0DVIA4WigfmfBWApKXHICnCb6FWYt6YJtS+H/4v3X/weqK+k7xqJYFAVOqyVJAzjDoXJVlrENPqzInnQBHUK7z2Pn0Z/G//uN/Pvz4/N2OAOD0FxqWFPNbg7A2xV+6APRKBTY1mjAh7eWMtbfT9KCpB/Wf/O8rv5QYvHK5uVwO0FkfrhWoHOcHlgB2JopZcszpCWWduvbX/pfBdy2qjglJOm790Tp2ezLPRNAEXhL8mAnLYH16U72lX1IGvBX2C5pPHZClj9GHmRPRzqv+4Hvf+x3pPd/5x7J/kCTh1csYrYmAx1HoSREz6fMtY9zpuLmdO+YvT5/P7OfjQN069dRv/Z79P37q31T/ZR5ux6J2OqorbBI1M1c5LxomEGspxnpUNxMRv/wASNaTAKMBHjmonZudzcJOmuaYhto4o9O/8Y7OD1y+EH7UaHVuEcCmb/DNkFr7O8sANCPcLEXsdFAz/rUPf8y+4+d/xf7B8nM+vimerJamuxlNcuVR3Ywu2ABwfw9P7zyg9o461+OtC15+tbcU8QrzzQHf9FLHeaAbR3bjauSL51X23749eetdl9J3Jppi8xQnLgXAMS54YpcTRsEzhz/+9z/0MfzAL36omJRmsABssv6k9dlRkXGz1pi7s/U1QYjgrJ/M0hxnZF50AN6y2a31LHlsaTlZbDADukUjUB9jupz9r/5Q94+/8or/oW6u/uiiry67/ctM5nFuSnufZb9HM7t9PfziYBiu3/sK/be1wkbDsr/ysfCDvzQC4BKWO1IznDrrVkDCT2i26QQRgATiSa7xVAF4UBQT/T+nT+RWwEc9iwGHAK/ZyrL2XeoOAvUCbkgruqmtvXa3bcLn7Pdd96f3fdPrzQ9ubqi3KBVWJ03o2MeaN9DLALPMg5z+fJ6PCih30Pe/+sij4d3/4oHq16MPnKr/+W/pHz+7hR9ozuHDH8U7fvkjfsyA05mRtuY3I1RjghB5Xo3kKefIIW4zoEJQLth2Z+XjAPFFA+CtgK8xu23wjZZCUtGfGLxmZFql72WFkMRFQrJND/yCxeF3XVHdt353+pYrF/D9SYKvjLN9Sqc7ziif0j7W4dlr1/0v/udP+vd84lNue/KwKf7+Xzc/du6s/+GGhT/ycfWD73/QPzwen9bYHOOcRkFcfckzk4fMx602w1oHa0uUJwlGXjYA5HN9ZRY2YJs3Y2t2XNRtQADYZAcW3IB55U58723flf6Rr3qVfvv6Gt4EhU70FW+GA0/Kkdoe9v3HHn1C/8K/fc/w16ojxI4f/2v5j104h3c2rPmRX3Pv+MBH7MMzVDbntEPSXoNcm+vprEjzvan3xQQ7BGXgrQvFSczwiwZAnvtNsaBXKq3b+s4FXxt089JII6DOv3PTgJv2C0f3qr7z973SrH/3d2Tfc/Gc+bNpilfN3stJo7k0dzxzgPiNyvknrl/X73nwN+wv/e5n3PVjEBb+zl9Jf+z8OfXOJo568OPqHb/y0bEJHoNs2h+sQBM++g1dBQHtvEneWJD2CTEIMfAEYZ0iPmYl8Lgc61Si4EU+4E0BTy40+n18bMPIdDYXPo/tFrJjG3zUvOJsn+6vd+RNJgAN/c8UcFXg39/7nSuvf+2rku9bX/VvUnUb4mUV0NNR9kStQ1DD3jB8+PMPuff84geGn4rnc3yJ5G//5fzHzp3FO5vr+OivYxaADdDahQj8AkHHzwR89e8eZW2mB4vH46MbdChOIsm84Ax40+CrAZgkZYJRcDH260ZmVkzq/BUYY3abZL+FLDc9qItuwJQzf/Gy7r7l2/V3Xr6gvi/L1OsnDrNM6aZlqMLnntsO7/mVj/oPPP542VOqvQBpPgBDsEqpJPC1+b3//ke7f/PcWTUC4IO/qX7oIx9rBSHzQCPvTTFg29QumpXTS0troVonGJ4kGr59AVibXjG7/E/aura6CdiaFRuSqDHWXnIY00/T/VV4Qxc4UjNgrm/+iBXm3I0p8H/rG5NXft1r8datDf0WbXB++htjD1AN9/fdBz/9efXz/+k/Dz43sR+Zlo69MG7t5Ld3MC1z2Xr/7/2N9P/u5viW5jcefhT/08/+QvjwaJeJ62j5ee1jL/KtW5mQURaKqouYEpZMVkqZxDPSExa006v85iP5BQXgrbBfQGVSZPGRDm3wHcF43PVY7EbRdeTzsBK4iSjmsQ3ZYeEat9aoVghBcV2RmLAkV/ot93e/9vw5/13rq/q1SeK3tFYHldWPb2/bX//wx4Yfefo5158wsQ3g5t6ro03xO/+b9O2vuIz/sR3iOK+eefcHzV/8/EP9sQ/Z9vXEyrTKsaavkz/Jeth2Gq65FwSfbo9LnNg6JEOti+K4ZVq3JQA5w1KPRADVZD6mBmcu0CYyJLVpOcqHGu0/vwvVIusj59UyfYv2Ixi9ry4FHzrAANqsPjZitYkvHdfPm9qPviiAb/+W7NVv/Ob0Z+bVM/b74Vf/n3fhx2fO0VsFnYxX2bV3aJtX6fwQgZbUFqgS8KUqCVCWEbC3dcFv4lUIlUnCsLLgR0tF6RcMgDfNfl4pPqSQNS5icluMN5npOIKV2mCdrvqdiIobczx5Y7/tjemrXvsV7nu2t/2nPvAR++uDQTU7kEeyVX03HUv7yosRgCV01nl8dJ9pYkfbEgBOmeQ7Lunun/jm7E+d31J/9PGn8R4Nn7721eYfxokxWeI/rNRv/6OfCH9Vfoqgm9hkjk+/NZNyHbk+zTV7CPiaySRuUr1ywLtQ0A+kJngcM0wAMvQZDk8hF9xEwTcNvprxUo10BD4DGrXZQGMRAEa+YKWUHS81nPUFJ8ed+zb7/M0fyf9JnvlvlBsKvbu35z/wuUfcL338N8uH5oOm5VM2vht1MQkS+he9C9IbRpvOaHnlLBMuZ8Hv+Lbu13zFPeqtqyt4k9ZBHv5Tluoz/+hd1V/8y38u/fHN9XC1fVXW4tGP/Jr+O7/z6fKZ+Sw9BcA5zDcCH1mPvp6BSlztf/PeNH/TIMPChWRofBiqpKgqZG5ZgcILwoA3DcCa/YJXCS90BLwW2OS9pVuj+E/KL+OvNe+3b3odCWqE/+6H8c+zDF8d9x97VZXFZ7evu/d+9OPVf3zmWX8435y2Tk4YcHAxeB1NcLYaGXDa1xpVHs+uzb33PnPmW742e/O5M3hrkuDe6fpDa/HQP/6JwZ/nYd/5g52/fu6M/mHmzIYVPvXe95d//6mndasiugbcRARrAZtENm69PwO82udLQirMN9JkI/PpoKMZ9j4Z6hCG1AMrlI4PQD3qdp06Ay7FxhE7iO+nkXqrUgkMCDwWk7ZBtzQgmGqxcqIT4g2y+Os/kvx0lkYAzq4z573SRb/vH3zymfC+D3y0+IRErPM2AtAdXgrsmhCgdFqb4BkNrl4cxGWRvlJJluk3fXv2LXde0t+7uqL+2LjR2uwyO+vw0P/7rghAbt/7nZ1v767i/Ht/xb1neIh6MBYAj1+QACMZgW9CaWhYbxRwpGhM78jsGqvgEz4ATgJGrVF4hIF2oRAA+uzIVh63DwAb9oMygQFIw4ANYywD3lGJ9hlwNCCd4wMB+Mt/Lvx0likB4HQ11vShvMdze/v4D7/3efvLv/N71ROjz6Nf5CMD2g4TpgsZsP7S13/9yt1f/RXmezbX9VuUDiLhzFSDTRVckwH/2U83AKwZfab9W/s662ufiGwTsSoTrCc/HuUVOb066JD9YgmwQgM+BmRJwlwIn2o/9CoMKMWosnQ0w0flhm8bADaRr9e8asjFHE/+OAbFtTsEaNtiq2kAWpCBfvSd3Z9KklADcLL4YLbb1Ti3UVXqszt7/kOfe0h96DOfHT7D2xTKw4shMAjhPWwFIfVpX7iQr77xG82bzp0zfzpL8Udmih3mNDNqr4wnAH/iX9jIgEv7DpLxanM72t8iTEszU/pelFvmsJ+U9loFk6jgXSIsr0zfiwlGqXRhoxzDB+bMa7JUIs/Xbz0IuXQv7tMVHIOQm90ClEkTJDS/woBNgNpKubHydvJBMK0VWs2AzmnQOHlOR5no6Bv+yA91fqphwBkbvIQSG4/RVvjsQQ8f/fznDj7725/uPUsu1NmqBCEX70jWv+713T96/lz4k6td/a1QfC5rPS+WUe4UIK3Dwz/1L4cjE4y0ZsF21YLM6VkzPGNum4GS/Ul1Uetr/L5GHJfAQ9gPKuiE8NSafnuguxR6YoJZIT0KRAp/ewOwyXoARgDYRMHHRPPEUsFFTDABzEUgjAB85ztaAJw6h2kGPNYpepRDG540SpVah02T6EtUraOJPZphp48/jc+ywsP/8meHf260X+MvS6lUBKMs3EKK9treI8E3Mrs1+JqD18GgADBYJaZYKQFgCEgMAZiYQ18yCkYlgYgv/VgPnGbB24UB2/6fQWIqlVWqml0kzoHwnGdxhs5Lqk2E/SOT1AZcUjvefG+ObwTgh34g+ak0jSZ4GQCWNiOaAfBMe8CJXjMzP7ikt0dlw8P/6ucaAE76gAwUmmZCAsRFprb9oxzb1ti32c8Gq4xOas3PagI70YkKFiYER+1WBWUOfRUGAkBfVpVOrfJkQG63KQDF/EbhOfEeudEqnZE4HOccb3dLWmmBcS5Y2ouoZQc75SfNB+A73pa8K619wBMvu1xW7rfs8xnEH70w2Vo8/LPvdn8+9qqelKgaAI4kEzl2Gk3rzO+0A4468xFSxfYvzAtMiM7MfBBsUOREHTy0UUnKsEtMsAoD5oS1D1WUYtoZkUkQnkoQcks+YFNyRfMbA5DMKJUKzdcVt+1Z3Pgh1ldxVrVB2MgGrcGdeSCMmOKROhFvROMv1f7TD3xf8q40iww4a3JPusxy3tQYv7dszdOyz60LD//bX/BjH7BdtNv8zEjGmmL9xteTC22i3RaIvZjXkJgYJctQOUsOFPaTcjnAmIAkKJUqZSwB6AKGBJ/OQlnZ0kYppn5y5xQL3hYAZMEpL8QLA6rcKLGuRoBCgOlEwNYGonVWXN7RrQxpBGQ7glsExBEIGwYcTDDD29/WeVejAy7thrXEhzupjzdDTEuO77x6+N+9u6hLsObLSiKZLGK8CallFnz8bpIko0p0muERAIMy1GiDR2pMXPMwAqAJlQqoFAo3joSbkxiz4EsOQMovLLcn+Bj9MgDRXuXBIIGzQcq9KaM4kUClF4kYU2uRMCNZbzEp3hRT1hrWkYBs7UsGJPvVTPi2t3XflRg/1wec6c92q8s4l1Hcks8rqx5+93uKH570Z6fQ1qzdmAYi+Y0TnFtT2cIRl3GLXeHIfiPRWd6vgw8DZXySWOV0cCrT2iRaofC+ijJMkpSLAcgDRRC+9ABs/L9agPZQmTHIg3Mp30KwLEmYC0K5glYWwipW9dYD2ooCF/o80ahMMCvfeeubzbsWByEni1pPymgzTLXkDTLgLwgAubUYsAFdA6ZFx5kG3pz9RwwoFDCOfuvsh9FB5YyItTbD4EPf+apQJqlEipnQAtsnEVcynpoOyAdWFyfVAcX/K3WqMx2sSn2CJDibGq1yjSSzcJTbGX5EE7wIiNyj8esas9wAsbnmxtRM+D30lWP6Dao7YtO3vtm9K0nxVfFenGwZ5qzJnox6ZwG5pOPqdPOiqSCGQch7f7nkOpCWmZ0yxQ3TzQNbc0Lt7zdPkqAfpJMYiISkznxQ+5Ol6MxYaaOR+KBiqlGbXgjVkAUJmibYwS6iv3gdAAAgAElEQVQGYPzhlxyA4v9ZaAlAaIKDTbRSnQCVicokHGc8mMGQCpMFJpk+YXtbBMQ2IJuIeso0veW79U82AFymCy9D6DEq8idOe6Z1x4wPOAloZ/HwL7+/rBmQpjQZm9X2kZcx3RwzTearvFUT4BPTrLQEH5T+lJPAkfdJa933wQ6dS4o2AGNVTCPFTE7BHBnSTn5r5ViMgm+GAcX/s6VmOO91Jim4YFSine1olXagrHaehY1ChfLgPOnIKdSUxGxrHZzQJ2w1K41gnAZh2+eZAOtkMcF3v8n8ZLJABzypiTzp/stcwmlOtl49/IE2AKdNMf8tsWxrOcO4629dUj/R82jEpCPNjwJYDWBhP1cDUCMJXqXBIFPeFCHYHgtSnRoDUPtYljWOgm9HAGZZzIAQgEqlOthcAAhrGFo4BatEbuFABYoDXgBI46lsoE41Ck4aJmwGecR4rYhZIuuWAz6Fkje9Sf9kkgQxwbfaamN5FHxrwqBz4eEPfrCKDNgUbCQU26l51qZ4GnzxwloKwpyGTqyXbnzKGoAN+IwyWoKPAObhMpph+n4eGLgQKq1NoXjPjmOCXzoGLMHHJQgDNgCkCTYqMUDm4bo6ICHYXAw1vJIQowZgU2AwHR23TXE7LTWx0qzWDxvgtcGYpPiT3+5+YixEL+tgOf35pNO4rL3b8u5bRxtx6/Hwh/5j+SOjOTSqnWzVOk6k5+o9p1mwNQljig1BTG8DvqYCumE/koVWSeAifan6CT2lQ+EYeBCEPqmUPoYP+FIDMEVpoDM9ygEHZciAQakOZxcB5zWqKDizEohglExmnTAfm2LnW35gy5GemO3zGLH1eAIGQfd/O34yTdVXxF2XhSEnNLLLbeyJDliWePJjH3F/wRszXPjFaWswRxcM9Lc5vaP8PzLD1PxkFFq+n2Q/HIwxKmOVgfKwQQcuJy0jABkBh5cPAANyqQGkBmioByqkXrmO9krKmDxCSd19xIJ1amc6IOHAuTpijj5gA9KWiWmZHtERmflUVmtbrofy+mU33Lnnj7351X+xs5JePg4Spg3o9HeWwXeZAV72+WBQXf/V//AH/85k5x5XK2f+MEG+TU1UJmqcP2OSPeKCRsBrTVxRXplyi85PDD4iII1mtiog1zS/MAPvbT/6f7BamZKhM/PB84Xo8Ym8REFI7NxAE5ySyhsROkHSAFCLGVZdKKedlyVoTM5FENYsKBijkQiggiP+oPiK7W0KhAI6FrvCGu9Ux5W7Z1Hs3e3t4TkfLCv4whu/87VvX1nP44Npjk7FzrmlR5vM2eONETLf55yUgaa/f3hQPPmbH3zogaBVJ/gq1dnGrsnO/6HON5/Qipoc7Cg4mzpbAV0bpM3fVBRr8MX7FNNu8phCRr9G7lnqNXKWQXMFgJRgQRjQKmOq2xiA47Yh4yKEPGZBGgAam4SgMkVxzrOOCMEHofRqLguOxOckEIRyI+v3KCXQaJMVEmZcrM2ct2dQXr/kyv0rcGXXR7YYAXfr3MqZr/qGu76ru5peOQ4L3to+JxNq2rnpYb967g9++9n3X98+uK6V4hgprZPUO7vCxQBm5dxTKj/3qFH5816HYZy4rFhpLepvLEXb7LaZj5/Lqrwx+0nwIVotMgYbAebQe1soqrkusU76BMKppKy0DfY2i4KnAZiJDBMs0hEAxcF1ufIY64Ee1qtQ1KsnRr5gw4LRR0xEkJbojWaIddViwpH5yq14OziD4vplX+xcomnx5EsBXi1GT5RnAXe/+uyr77r37LdmHXOuAdmyoGLOo5Sm6q8mKfXkUbaCrdz+M4/tf/yRz23/Pnyb8GOxgVaO15R4V3aDQmbyredNZ+tRmNXnDfyhh2Hym8w29vW81bXiNyqDG6/FUUZA6yU40fTNa/YzPmAoAYgJlWPUq5idC1bpyoofiOAqvbhLwumY4Cu4z6rjZEKmOpqOyrCmGFDkGJfqgFzMsJESfUtfsJ7FMSLmkMi0r7XBOmdM4HHAvHcr3vsNFHsXfLlzMbhyA6HytB6jlN0y+tIKd9175tWX7t76xs5KcnlGVmk5WfNM6KxPOG1yp547MmX024CvKrf7/BO9//LYQ89/xle+hkPC9b7xZ3T9d/PKSZkkCs6uqGC7KukcqmTraZWtP6l1smOUPiBgKliTOCmxYuFHXB/S8vuiZZZFRwJEpt60Rh7Lr0wvwA5AN0kl1qFyZMEJANJnX/DYsNsTgIyy4DIGI1olHf4NRyOAynuZTSJMCwgbbdAkAsjg0HHWrys/OOuLnXPeHtyB4A37uXtjxg/X403jjRKKnHoaOYUfbSACkNzY+Pe5O7cuXbp7/fXrW92v1HruIocZOC9Z0nGc/UPvoHz0+Wd6v/3MY7tfGJXuL5s47c+5HIAJNG9Tr9IuRVOddq6Z9OxTUHpbJ/muMaYnWQ9rTWjKr1jOSr8vyjJ19kOZoJGroHISgmnML1NvSJy1lVMhcVKQylIsMuALLkQfiwFnW8bN8wFDsKzsJlRS6kySlqPW5FkJYyrnrSXwjGYjnEBQWuuRWFudU+7wvK8Ot4Iv1+CqLpEFPV6XSrEq3pfGbLWrlKZWVhKUOmYPdPBsDpx5T7fAZypLOucvrd559uLqXRub3cuKmYD6hi+LeqdxMzfIUSr0D8obO9u9J55/pvf48LDcZ084rRP6cSUl9PG1zEeiHj1qqfV5w5SxTjr1CKlSHat00tPJ2jWTrT+l0uQZBesiZ4kiIcWnMRnK+4FUGdWNUo0+9LADyi/CemD9UsVwhce0UhHNe3REi45TZkCugZ6/+mneMLUB6HWsARwBkPW9QTHdkWmlVmudyhKEcoEMSpRaLavivCt7F+B6ayFUK3BFHC7Gxir6govIwgc6UPNAqIg9PmfNePiOgup4oUtnEJzmaY6OaaC2zqxsbZ7tXljdyi/knXQrzc1K8AzW56z5mC5uiBTpikF10N+vru3vDp/f3e49Xw5ta8Y6Jb+pE8coKmhVaKUGDDTqAE3OZy7ohOHrlhzsBdPeCCLv2fIlhWK1/dpQ6c6+ztaeSYx5EtB7kuv1tEQqJRt6I/ejo3ywQZkD5n75t5hfVVmE1CtN5oOTiuiJkvzZO9EAsPB46sa/VvtHEftsUSP3vj90Lo0YcB4AFzfLnMuAzmqjU+aSTOAM1EgU1BrrzQR4MM65arMaHt4R7HDduUFXhyIXr6VhuzjT63zwYgA2F9uwiWapZdxypzRneQZP821jl67FfXknxs0k2qysd9Y6a9lakqjcJDrRrHM0xnjvnbeu8hZVWbnh4KA46B0UvdbzWJcZVyUTjLKxMoXyttBKD2JFz5xrnRChDYSQJrbaDVHOhGAojKbQJmjTHSjTuW6ylccN9J4PLufXjGEBNAXoMDA+HPjAerZgJV3Kg7NxByqnRQf01Wwx6uSvv7QAFB2wNCJE11FwoDNME5xwkRUM84wKSScEd7ay1UVb9M/CDjKgSINzSikvtQxSO9+EhJIrb9JttYPO2kKBkOMNrJnARaFWUr6J9iF0g9IdiZ+Zh2YWWtrD1P4gX+W4Uz5ie0yX7Tv9efNdhsPc3NKGUvEbytRPueQN50VprsUdxmZqsXxttLVzwRPn2qL/4BWXzXF1egg6DVonISCFyb3SHat1updlnS/oNNkPzpuR+WXVsw9W0qVc1SOmuKJoI1EwTfCiAERmep2Ke/EZ0OexFpAiNFNxtQk2rDNLYJiHZBBibXm2Gh5+VfDhPM1hgDPK83o9Na2glY0RrUkD3JBmio/tYv3+2Ny0xWlOYDGjBFJlvFlLVai6PpgMgeabPEKAEggN8bXumqoZhPs0f0/c7DosXsRjBJgxk0Djv295yyVu1cGVQad9vkpL9wnWnma/+kcb5h/ljBMNX9UdEMKKD2aTjUWQbu4nJt3JO+mn4fVT1P5YwaksNb/EcZ2OomJoE8mCaFvYoySYFwGAU+bX59JwvOl6Kr3/KJdQLNAqIe2JfCKRbHV3VfauBNs/EwIXfJhcmzwhK3kVnICQJtcN+JBfJ+X4ks2U6HY+CLVREZkspTE02x0Ey6bPt3z7x2BtgHsaxzzJaRHETdTODKbmQDBoKWI9h5VWSRPXStbTtc8u8LWA6ShSfsz9aq2C7XioNZjcAVlQiszoC6PNdpqmD5s0eVSrMLCV9YyCxRSLIM3X2iyPHunaLEwaX9cLzIB8LEIEnaz5mKKUVFJiqeEiJB+kAuZ8MRze66vBJfgyhZKmN5rhb1DEKDN3WrMHk7f9SvnCsVmYho8zvfGBGMHSNIvJpYnWdOLF2Vb0X4LvgiUOsSB1Mdud5P7f7L68pPbm2bF1eau2ye/UpnS66VE0014HmgZTIHA9ZUVn0cUxqbegJeqSf7nYfDIorYJKkyCyTcg140F+x/vS8zgqaO8qVnQWJs2eyLPkIaX0DQrTyqPSSaisa8rU4++wlnO6PvCFAWDd6YAvxqdcYDS6WAoA4vYaKG/ZFgSdoqzuqcri7uAHZzhczOKwZQCzcdTRSX40m1L1zbRvsMGDk005CsvU+Dg0kjYfSS1EljeB1jyoFASdhMXiB9YBSm36uGxVbl7r5s/7m+9xI0BuBijNDV/WaGkZmOmiNktt23/P+x4/Fx+Xr9ZplQ4CVKlgrYwfK4ga8NF10R3egFiAoFjxrBPoNOOqN6nGDGEYGHiEummnTrXyNvdK6dSk102SPJSn+SNVsD2tk4J3aIRzw3g/ru12XDdM+QZwWZKpW/YBK+YkWNuXZIkO6FIvmlhcrhBSTZ+N7deQWmBjMCzusVV5Bb6kXkJ8maDJcIxp68exBlZBD4NC6b2nCJplGoqrq+ngWHbFkTaJfNEprQM1uzhwzmZQ1IW0QbOO+KhItrmp9BOFDZySVa/LtqbVr8yJlj/H47X/vew4L8znk1EvWVEma6eEsly5ZuFLKxM4mgN2N6A55nJfo7UxUDmXvCvvfak0m8LEaczpzhR0tDyKxcMZ6EAHVXby/AsmMQ8lyuwFYEBzXLla+m81X9cJqsSgOCzx2N7PYldwsGCbK8NcuBrW0i5e7TVlcHD6cC1HXLsRr8ibFOT7jqvQrTzuKMvhXVVlz9Ttr7mfUUrzAk2sVGYmjWm2gQPNrOhYLL5VxqssDUk31d4xUvU+kC75wvUxMF7KgKtcPH2RY2ieJdptX9hyUL0wYDiNo7Y178huC+9Yi+GbfUaMWGvn5CStCx0qG8gLXLtBa8wbIn0kcloNWiAb/HCglavgvIdZVSFJjVBKXdCrjQ5eMoSM3hRTdcokybXEpI+kiX42BPSNguShR2VeVI5TJM7j8V6J5/YqDLGNCg+qmQY+Uxca1MU/j5WgcWk9w2tKCy/LMmLnuMBucSogCwGrhcOGtf5SURSXEbjCqFV9IrlF5m1Jej7Als6HgdWu9F4nSrIQ8ajsRKI8nWCwDm2FVTKUTuQzLsmqW4TpOIjUsG30AWNE28gw7dvVTom8MKCck9ITWSdOzjim7eLZibNrMei8ft+N+W1Yti3xNGnESXBOsaFWUDnlO824gz6iLBFUhn41gzxaI65KtyH4oQplSckPorpQaqd4kWkkBKk2yrCAnc8Xkqcm+VgriC5CoAZapEn2uE70UxrY0Rr94FCSnDIp78LzlUJP05JWGFiNned+Bv02I06e/NVgrmS4nKe4rFNcJnQcvTGWTgHrzmG18jhbVfaSreyZEOAZUsUBlykm12AtEcKg4tDq0LcUEkjjDEC83BqvRCBWHGVPhjNKmW4wnRUpVgiB5pj9SWiKvYAvVrPFmEcrcl+ALxq/KQJt+mY1/z4icyLamwCHPmQddS4D0SLdbyFtNZU5Lb1xet+pHPUI0LP7zbKjBP86Zsca7VE65hOIPqEEq7SqWN7Fec9WEyH4XvDlQIchneS4TJad8oJljjL2RuDp6hVmU1hErXWijCaJskgs+iFZCCHXWiFJyYrJU0rhWgLs5xn6sNiuTGRHKiFhgBtPlXgGD6iRnDADwIsd3N3p4HJucJGiiHe4UHlcGJT2THBhVUwq0VVXqyQ8IXq+1paVtUPYA0ayFsFR1Sdzm6BYFFrzqE7gldZaJakPJg0qyQHVUVpnwYdcxYIAQYIAUIrlAlU/giyW8HNmi8NCnNNV4WuL3UfdFY7b2rdZc7u4u9aRXQqO8XiHCRw1lS0R+DfpU9Lvq1k3lvOMMyJxUsl9YZAWC05Z9AL6zxy2AX04vqowHGitSriSjXnIkmwcIGvJEEo+tLqOsI0OOk+8Xk/zLJH7pWtd1jMw9Ip1hMzzB23Mfprq543BZ4zGH0qeP8D0Klx/7gk80TbFkwC8PyR33YN7uwnuGTp8U2lxzjrfYTdQ8QOU9jHXGjf6dASdq4ZDRaazBJ6NJUWckQSg9JnjtPPawySaTwdmekgnqx6GA8LAgrNUJhmLjVTsIxMda1kcI850lGWiBMPHx9AJjaos3yODtUG40Ieayp1OmMfpRx4spLTJD5oKnGPt3gQ0NQm0K3jmfZ/juPBaWssy5QHnsbIPzFlHSYbV4GQ/I3Oe8legk+1LMc1KUQJwWqlhcOVAq6rw8oAQVzOiD0py0wShlIUxFy/mOei1VJm0k6dp3gSZdLtqv4hgNEqp55XW1/IEj6UJHq1KPP3U43hkMQDfENK7vwGvSQMueuDOQYnXlJW7wpnT9FBr184RgMOqOvSHT+2JKCotbsZdl8QPUVniAjKtO6mnTVDo+kDNg0UAcsK1CaSCwGBYGwJQxFHWjCvtgveO0VkDwiYYoqQqaqHUsDF0aTEezfSym3sswHCnliA8N5NSX0O7kLTGjeTW5vtu8de5X/O95u/Z95oCm9rVmZg19fg16UcRHAR8MkcJPJbAQWlPs+Q8leOKHhJjYLEs1BXB9J8rg3MDLc66LQ0zL8rx4WixbkNssq0ZMjF67cpmJ03XqOuOzij6vux7yzxzmRnzeNrBZzJguwx4/onfxufxSQF+Q2Kti3lDSO/5BrwuSXGH1OU55C5gq7C4uyzxGh98RkCMomExIfAuOFeWtueL/QP4Pa7N5PMnmIHLoVdy78uVoDqUcYznBGuS5xJpBWpTjePOII0BfaK1TknpolOJOWa1kszxkTnmeXB0yX8CQDmfdnctaoGLJIBjpsrqrqfSqls4mcM9BZqjgNxeQLTIFz3mIqPRTaOhEFGhsRP0rAXxDVtyEisGcWIWGb2F4HzwRfAg+7kIPoJJwr3a5HJ8GU8qp5Qb6FD2AFdQuKWtE1dHb2a6s7GWJcmq0YZSzkS1dQiefmKZ5/h8ZvCEAfagUTACsBWef/RT+MxiAF4N2T2b+IZOhgvewSVs2ho7crLEdssG3F1UuC8EdKXks3XFNJOsHLC2KobDog/Xo1uwqgI6NMVxcVAzQKKttQawnr1iP2Tg+JoaglArw8oWipuOs1YCHyVolAp0+oO1WE0gTmBBwBtz+DHLP5nPb783vaRigpxo0OrYe+TkHwE6iRrF/s1uzfvNmRy177yfoAMS3x8DUKrwqemxRlWebBe0EeZTCS0JQWa9K4L3pXTgpuMZhfvYIIo58ObfcbDo5ngyRQgYaJQDSjSdTr6SJGlOU052jfwzYjK+N8hTPJIoPJ6k2A1cPFVncijsDC2uPbqHT+EBNcrnzgQhd+W4d2UVrzEJclE6Wq0yvJN+nXlV4Urh8JoQQPqNp6tpNslwrHSBGVawg0Hv0A13SvqncTFgzXRxxtf3h/ISZT9RmGhMxW+MpkNCZdaqSWmMCnCeziSUc8FxxxgZN7NYAMgIaTQqE4Cc3x/4KPo6/md1cnD0e2OgHP8Yx9lTpuao2qcWSJikZLkPZVORr8jRms9loZsTvHMFlCocF1lHCattehn5NpoqG32OLIxG5Uy+1el2V9c60lCfvWJgHSvZZeGSrGakSnKYaDzUyfAkAgptwLTW2DVgnYZF0S/w0JM9PLI4Cm5m1puR3XURd691cJ9OsKFjUmvCmCiPpAq42zl8ZenBBT4d9v1nVOA4p/iQJw/W7tj+cHBYFuV4kXVctTM2GVKBQvDF96iX6vhAa4rZnMVUWBnGia4lImCEXWBQxEEQF0emZG2KJ9tUHK0HNgvLpxHQSBrNtddcOr/6eurLzcqk46BqZFtHN60+XylsnSSJugwrch71ATFRMqE5bFLTxUDOxBQln/PmuLotgFGugIt9AbgcOKCK7BdZLwKvHr+8u5KvdPP1NEEqeZZId/GVKxmBYaZx3Rh8Xis8TmBOY4S/5y32D/r4wlOP43E8CJY0TZihxREWf+hqMHd1cSnv4DWdFBflgYMemTZcP4COUuh4SCbkXFnhkq2wScEuRl/xUuiZ8MU6uMN+2Sursh+ct546VaPgxwEQ+b1+ZgOfSUkGZL2n+IQMhPhPzjopEaFPWA+a995rLc97kDqHGBvXQ9aYlKVAaPz81pC0l7fV5j0mEya3GdPOpH8TWCg+8LX+TttFEPDUOGtajLRr/Oa9NyL2CD7mMUWXI+MFaJ2YxCiT0hQzbvCeOV5fOsfoTLQ3X/vK4kvTgoxdGSmUMXmWdVZXstWU7Fn7WbV3yetmBsEag708x7OpxnUNDDxQyDpih0IZFNbD2QrPHR7gD6Z1v9k5vvTGBIX7Ye66B1+1tYavzVJcVgHr0FTD2bUAMUKlFwF0ncVl63HWeTDRHT19mcgCfTp+7nCA3mGvf8DghY6LRLFxsUxzqySKE9daRlgaZydaGdGaYpzBn2a+eATERqoRcyK2mHtRq2lJR6MgYs51xzU6Ex0XmplPaBw9WadKq8dh6/iHmgOcOD3TBELxUAI+8fViICJlQZypiTEZQcQKbWsZybohAmh2ZdKKj1y7LLWCRfdcMTm80l1Z73awKq16WQDbZjwFZzTKROOGSfCM4UPyeA6U/qOlkoXsUNgrKzyze4jfefJRfBYP0olbnAeOFzN3i6DDOrI71rCepthMDNYqhZUOcDHNcCVNcDZJ0JVuB9HkMnlLg+GcR+4c7rAOZ11Al35haMAYR4wt2ny/wGF/WPScc6W3lL0luqNgFf+v8RVjWk4CE605yNQKlfJO5BmpHib9jfzBVqQsMFwYCdc02VR3tcZiGkCjgaqZaw4RTj7rudUrSeaQsEmkvIlnQk/1VJp/O+J9kjqBOsiQP2Q5rwBQZCvmOxw5zvmhD66AFxvLtyRvJLppXaBAWSZJ0yzP8rW1DlZpZ+rYfmQ+tEJlDIpE43qaYJt1iKLoSmq46S2Dylr0K4/daognh06YceACDsoC+88f4gAHKBeBcQ4Ag7pwFat6HXckHhv07aCwwiJsunds08DplWXJ5moHr1jJcUlrbKQG0vMlAqKePwHaelworTDiKgJy0YzqPGmjZgwK9HoDe1hVZVF5JxoR7a93DRiFfyaZUCMz2tAMEf8cNDq+jYmJ+jSjZ9b3i9QzCthmCIj3tOGWptQwRpZT/pdM2XrIGhmkjZhp69z4IM0+EwvO6zfbkk4EqUQRfG3OaQRgum61wMxAQ5ZzKMNneVC4Z+qy8sENnHWlMF9dYS6lIKzbkwpKk6ZJlnU7yfpqByt8j7569JQkm+mMYlkV+mmCG5pmNkghqlgkeXRxFLT7lcNBv8CzvSGeKEu7xyUXXG7BfDErZeAlDTe0Gvv+AM9vP4DeNCPOA6C+4x24sNLBPV5jje01SstO/pMlxtK/RcGlCitrHdzVzXGlk2FLaaxLWT0z33yNUZKuHM5Yi7PeY83Rf2wFNlJqCqiiRK8/xEFRFUVVVqUHqxbqCmuCkdo6E5uyiEZWcsnMj8CXn+N9E1+ncaopE3L0GwASlA0eSGZ1pZjcIfl7EnNTAcAYks3a4PpYM+PYCPazjNbGfyS28RO9amml9SXGGJx59RVIhMsSIpbq0RJA1fWQPhTWu6H31Pqoqch0lLFQbPwi7l3WWVtRa90UK9IVpqZVCWYAqzUGmcGhUdjVGrsifcXCEjpIwnrO4XBYYndQ4KnDIZ6sAvrszDP9yF2TwGSJKCM0/QflEI8+/3PYPkYQEitiDHBOpThjgHUiuqpgJNk15XGzGFHWDACdlS6udHPclSU4n2fYrG18IyAH59j0EOvOY8sDG5VFt+nzxJvAkWVCrldi0BvgsCxtv7Ll0PESomhHfUtUU3bP5gIbrdlMUadMdtfdoygXUid09SJ3ie4ajZBWPt7wJb5Jo1I2CBP1fewKTgXGcn+aRq9zzei8N8VXbQFypPGNdq5VDqkg0BRI5Ye43FKUAen47rxzw8o6BhxVCIEpNks7zIlKtss7SXc1w3qWoqMjIMTb4ZpD1gwqhX6isJeQ8QwOW9EsLQej6lBY7BUVrhF4/QJPBi+Bh2kXJvOs6UPyHqapFHixxObAD7HrDa5NV8LU+Fg0XEHhzcg2z2BlI8XZoHE+1ZIZyZgppBbEIp6m9YpUxcauBvzxrdUOznVy3Lue4xX03SSbEYFQPwQZ7CC+4gPWrccmm+NIjUtt5Qgoln8XFYphgf5hv9ivqqqoo2WWD2t63nXOMdNad6LwGrWaEEIsZhBVKKacWuGx1GjWJq7JoEywX8zjS78BAZaJvUJiRe2oH2B0xWMZ0NFbvVx5rBNOauJxVtSBjvgLMfDgL8k1ihcsuqhOWCTFi3HO8YEdA+dD4QNTZooBh02ztLO2kq+T6fKMlkL0W+qoUb2PAUSVaOxpjf0kwUETWNSNjuiUJD6g7BV4ojfAo8MK16sKu809HgGPWWI+3sFIhy0uOmMl8tBaXN/rY2d/G308iGLRhF86cDKsV0N2pYt1pXE209gMGl1H39ACpYcVVoxLxmXFijAPn82QYCPLcWatg3vXO7hXG6x6L2JyLPhhFY1H6h3yELDuAzatp28XdXkxiApcGs3a56I/RL/Xt3vDYjioc5xsjkVWoHFmdUautaZcwwH3nh4rfUMBv1TURB9R/EGRa5q/aefiR6JqSJqHWrNdU1YAABvQSURBVGTcamYS9ysu7IkwjOY6/k/dVHUMotYzORtVb2RsxVkdI5Zj0RQTSOdnOXAUlSPbsego+lYcMwdrne156wohJ+vIfK7b6XTXV5ONPEU3S8BHY0hNZtvn1gaFAXa1woHSKIwC9dk48UmMGhl9u94QXzgc4gtlhZ2ywoEoZER/QKwqZX0olz/RDZCnfsm6kUHpsbffw/V94LCd8Vg0PY8HwHgXFN6A5Mx9WMnWca6TYEs7rDEzwnRdWbGUPgJPWFEy39JsiCe6wkh6fQX3bHTxlanBeelxFy+EWUlevBEweqzZgM0AdCT9Vd9ggpH6fT0rh7uHbnc4KHrRbaNYLYvdKVpz0Xguq3BYb8jsrVSAyOJcdh0gOxJsMRU1FkZr2SYW9o5TbvyBBmRCryPA1QJt/HcrtG1H0FItFiWqUbZhqmsNnLfau5CxQyTL44XllRLmy/iUUVYHxSVZnFIDa+3AezewTlYQ+SzLV7bW1GaWIKffxRokX69vqBdBECB9pbBnDHrGSEu8imaYkS9BzWUVlcWNvR4+vz/AY9Zht3IY8H7Sn5to/MT1EwnYaYCDNXBAvyhwoxzixs4j6OOTsqL+WGrTyQDIW3FVboC5wKrrNZzJEpzzHqtGYYVCCk0zbX97RT9NNs81S+mzgWmdV57fxDenRvxER7ZrPXxPSrJcwIrz2JDq2/pqar5RLC5hafSgRLHfw25/UOyL1BUraRKtDZ3fzBjTMVqx5CvG3VELoywxEmWVYgG2eIgMSKKiWVOaRDzRsRTJnIwd8S5SBBtfy2oMyarWqzI4IWJFVJ0sp+mvtbf6Okc3RiodZel9oLbZMUZ75t9ZtMFpbIw48ZSsXFWBfl7PB89AQ7JKNLObK9gg2yW1cNwed+5jFHpGY09p0e4s/XVeCysoma3i/5ceuzcO8JuHAzzlPQ7LKi4tlBRAs0lzH3EH0jSRe9bXGr3S4np1iJ1t9rfhUD1Q122eDgCjHyKg257j51yIUsBdXTHNZ32CVUO/jpEzq6mnI+e6nRedV22wsZbhVVtr+LpOivN0iIUkmuSAyPRgr7rMeymEWG0S93HiRUB4rjCxqHZ6uHbYLw9YsBjZkC6iom6YJ1p1jZbGi3TlxBhTLiIY63ymeLAMHclxtaGVvESz/owMRJZjRMpXAk/0iHjMuISnBqf4UVEJlwCMl0Q3IhaDxmtkuW4tbos6QinFiNgunSMY5Sv2Rasc+pUFtdKh874kAla6ydrZOPkpd4xyJg1WqPch4DBJsKcVyjriFa9TssVkvQBXWDy708PvHPTxqPUYEJxyD6ZW+ElEKxNbgoq+tuiVHjeeHOCGgG57qsqDB7mAcBwwHi1EHyx3rnEfvPzQ/dBX7sZmSHC+A6xTwlGeTzOBKx0bsU1VqsRZSFB0qCeeWcPXrWa4C/Rzav9wNPvYQIfBj8e6AlZdu44w7kTzxEWFloy423c3RJCJwniijcnY/TPV6CSJ6JqpiN3RLJKseMPERIvPFKUjCoxyw8QhE+1DlH+WZNI/ZLkt15fx+eKyOr7Jz/KwdD9Y7CRr+1iN4rhYIbKiCPYxSUPgkYgIJKYb5TqsRVFZHBYV+taFgQuu5GMUNlbV5sYqNhI6/G0Psv67ViN62mCfKbOmx6K4RtFN4PUV/RKP7ezjE8MKT/H+8PNp0JGDua6DlcxB8zGtOBwCB8ri2lOPYw8PwgsxPTK36GfS5aMwtyAr0gIgJTsAb4DBfUuA9whCBN64tr81HurMVWysreC8FDIkogt2nIUnIzppONmYObFWLEBLXYBazXGR6b71Dr4iUeiOwFiHAWQNpvcYOXuPlfpBag2QRtfC2o69Q+zt9nC9cmxnIalmtqClWcsShdWMWRyNDh8NJM53VGJrv7BmiYYNawBSXjCJSA0EH3s6mJwLcDJwLZnmsyhoVhn6OMdiXWFnmQplFU01P9PMOrBoU7oyRYe+sqiKEoPCUgfFgXUic1ijkZ5bx9baikw+QSt9yibVKCVp0bQeKoVeooXV6X9HlPIfLEQI6O8P8dkbe/ivlcfzM4ATeowtksh4Im879onGAQsKehbbN/41Dub6dleDESAeBzefbPTkWJQgOpOk3dizdNk2gBPkT1U0LPza94aVO7dwPs+xpQPWdSJ+IsiI1EZid+MahFz6WTv4aYqNrXV83cYKXmsU1lPmnZlGYg1vI9XEXDHz0ZRy+N0o79TmT5JUgDossL9zgOvDEkNWZEoMSyCyGbdCh9oY/dc0RTc3yEyChA/aZnhN88anaghF1YsZCbI0heqmUOurUFtdqDPrUBsrIkcIMoYlsN8HdvvA4UCuF/1CzDCKCihLhNIiDEvYfomiV+JwWGBvUOCQ1coMDPIc3TMr2FrNsRpVmVpCiW4CB82JeQV6DAQa37WmYvF6yaQ2YGe3j0/vHOATlcUu/dZ5bMfJRcbjNXiPng84LArsPr2La3if6i+DRvw8aFrCE2CpaWwT6OdpHCIRV3XRdqGuRHlAQHisKEcO9eaQn9/EuZV1nCEQUyWRrmpMs0QEPqZwDGD4WWxYie7GBl5/fhVfrTXOpYmk8/jDoxtCXZFLRR2wLo3gffSfGsFEMi6A6hXo7xzgWr8UdpFIOOEjxKLflSUGeZJipUMgJsjXcqx0cqQrOcxKBrXShVrLoTZXgTNrwNYqcG4duLgFnNsA1juRnQiw/QFwbR+4cQBs16/P78BvHyLs9WD3+yj2+uj3BugNKvHx+jwnmvY8w8rZdWx1M8mhxxwue8HGwg8ui5RavKSWUeJC8joyjy4HO+wcDi2u7/bw6f1D/BbzsrXvO3FvpclHbWo50aqAQ++w36+wc63A9ePIKG3LJxgij24fYZZJGWuwqDE0C7b7QwIGFzzIBVAlis/N4db8fShZvpoNxf0+HhjvD8mle3HGOJzpdnFOaaw2kTMLhirW/FkYWVMaG2hLK84ApGdX8VVn1vA1aYJLmcGWpqPe+GsshIjs2GG1NkVt+a8uSq7XjHExpaZfda2Hnd4Q+9aitC54CrsmOv8J5QVKEmTGPEVnJUN3vYNsrYN0fRXJ2VWYO7ZgLp+FurgFdekMcHETWGPvVh9Z75kbwJPXEJ6+gfDsLuyzO6ie38Vw5xDDXoliUGBIRi6t6HCKZW5kuq0VbKUJ++nE2rwmK0hGJPAQGW/AZ/g2N74OgGi9SjLcgNUoPfzu7iE+xwqV2i+c6KokrkQqizaZRWbN5mFV4oYbYOdZ4MZ812oeK9VBasN6lGu4TeNlGwEkLwYrU4vTj5BhgsZVJAJEFl81W/vgB/A4gEO068cHIiTdd4EyTJZiK9Eit+hC6lqgK8skuyS8pQhBlgVQPlDQa128amMVr1vJ8cpuhnNMAVLcbqSO+jRT6yTfzEX0ZMTYs4s3tY6urcfw+iF2egPsEwzWBUvFlyxMf46vZNQ846JlkR6yLEW2kiDfWEW2tYbs7BrSC5swFzagyYis+Nzeg3/6Otz2Pqrr+yh7AwwPCgzFv2NUW6FksESZJU+Qrnewtr4iY0DxnNkiUSF5PdJaQ4oKUCZGBOOq0SRrkd5Yh0HpcK1X4LHdQ3z6cIhHaD3Y1N1XbCiEiiZXTG9cKUzwMQByVcB+WWDPKuw++9O4dmwiiXEZdWHGC4kQ07yN+CDwHhBdcCr3E79wDB0waPmhdZiLr4gIf44JmXojCzw3hAdZsUWtx/IZrgazAWxurWMr1TiTJNh0rLTmfxZGHjMVs8ARiLwMSgUKeqWDV5xdwVevdHBvJ8HlNMWaLKSPq/fjei9GmVzo7mVVnwQbI+aI6ShVebjdHnYO+tgflOhR+qDOR0AwSpX/GKlyMWIqr2k3Q0rBdyVHlqfybybeuYY69ErRJ6t+gbKoUJYWbKpcke1YdUJtr5MiX82xvt7FRrOQUjyo2pxSHjKx5J0BFGUU9nmRCJpROCN75+V8nyHgdnr4/cEQT/EYEncYVN6hpGwibEc/m08lkMoOsMPVLkrs7jrs7lXYPxHjNa7aGvTFDvQ0FgQfT8CNiWk+8Eb34VhAiQ7myE+8eB6Jn4N69iGdBOO8KHnBL94fOlfuxiqAc3kHd2hgxTnkXC/oGUHX6b6mrpBmykT/iIWUd22u4I/QRGcJzjAHXFdOx1nGao+Y25TeyOIrNumxGoj0K4sCw75F76CHnb0+drlLGsuL4iqzWqNLGSXy7yTeXMmIyDNKpMWmY3tNisdkZmqUZN6NFWx2c2zkCboEIP1FXlM7K0Jw8KkBrMNjdUozUrKgN1bL6rLCtd0+fm/nEL9bFHi6dBKEiFDO1ro8hq+Bx/4sPEbKGk2FYTHE85ImO0QP71cjM74UA4xyGR8kMBc68/07uffXYE9KQsdgwOnTmwSi46K7OZvZhBcwLmhKs/Cir4bsDNCljJMl4MNnNph7pmm2dauQOB9iNCcProntQ1ifeMdaB68+u4Y3dHJcjusfxNwJIzbCL9mQQGTqT4BAaSQKeZJqKz2Kwz72d3rYPRhih4VNcdU/DKNheXpH/by1upBzNI7Sq4E9BVxkn40VbK3n2FztYjUxAv52CYzIJZRRtOFySQkw+J+UT4j2WGvhgwJP7vTwyd0+/rAs8Hzlsc/JyLZN8cGCKPgqfVm4yJedy1j5AvRLlscXuHbjcxi0l0QuBV6MB1Iy3ZH3+SaAdxMMOAeIMUuSXOwgLYdI+BzM6b1MCb9NILJ04QHGGccPWC5cQMes4nw3wSuMwVneDGkXIh0Z6tZjLdWeuWIm4lODrfUVvPrcBr5pLcereE6yVqpu6xtDZKlhk25RZMaaJeX06V9RnKY5LioMrh9IRHmttLAp01F1ZB1THxNuDKUiR1/xzCoubHSxxfwstUcuuRLBe7zRx5PHXwW6FbIKf6SP0kdLmNHb7eFz1w7xif4AXxg63JDwj2wY+10x7ilZQMqJwOCt7klBN+XgsIdnqyFubG9jOK8z1XwACsGkGCIh2zn2RZvaQgmVdWCfG6KK/t1J/P/Jg90EA8477Vr/WUd2phNn+fRGcAoYt2HnrY46ghHpfueiJ2a4hyaWGmtdKOsr5ljo+8QCCLkeApGRrDHCiq+4sIlvPruG1zPvyQUz4wLQuhohSjnszEWfUY4hJUu1pugCKudR3DjEjef28IytJAqNRZqxSEBaA3VzrFxYx6W1Ls4w783UmgRH9SblULGcgSvIuMRxNCmkPi8Cm+K8vX6IT23v4b+w/s6S7bigPAZQ8kQQzWaQQEWfkAswa9mKzaR290o8vd3DHh6QMqi5zv/seMs9zC5cQELQEWTz7skOQRdL7I+vBx9BtacEwOYXalH7AtIzjEApoU5tqodAMN4oZfacbICuIj/Xxdm1BHenKc4z1Sc+IvugWsk9j4A4qmyXsnWsdHNcvGMTbzy3jm9iA6QahJL5aFXz8ny5kJvFt1xoLUve61dSt/NO8s47z+3iCWqKFL7JdBc3cYXmlmk5Ju1l5W291T5c7CnHPFAEpeSdpcQ9UqquPHrX9vCb2wf4dfp6zoJPLJ+QUGiiabLZKk8aqMnTblB6hxvFEE8/NcDBiSwNsXwV+dkMKUG36J7tMCASd2r5QqMj8DZLTCfZ+fj71n7iNtKtLXTCyvzZpPoI+Tqq555AcSITcT/yCxew1VnHXd0Ud7B0i2CsaJqr8Wr8uiggVsfHjsl5J8X6uU1824UNvDE3WBdwtS6M6T5Z2sGgpdX/WtY5112YpRWSgzsYYo952W6OdRF145qJUVW/tFqK1TACvGbJSGNq5WcCwtBi59oefvXaAX6jYDYkoFBJBF7T7obAYxUKTXmSCltWOmBwUOJaeQ1PX8vRP340K8+CSS6+AnlxgHTR/dEV/M42ClwQsjhZ8uGYYDllBpxrnqWy+uxZ5D6F9ozZ5mxZgepajuL4szfWJ27ch/X1dbyiY3Cn4cIoLRXb4NP6hIXq1hBkRPlZmrEYuXYvbuJb7tjCt61kuMQAQ0xg/WSSBiz1WgwK47FjNfW5Wr7i341m176kutKQQYTUH7L4lhKntA2PjCts2Cvw+LO7ePDGAT7JzgFS+UV2bD0EkFF1J4vSkpRBWRSsCex7PPXMH+K5o6qN55rZNyPlvbDl1GNEG7ZehSfwbtxAgffLQvLjJRmOCbgZi3iT37uJr0Xn9myGjgswawn0ATOYANa7UPybrz0Nt/sonWbRwI4hbtPsP2jWL9+/tZnjcpbjjiSuW2ZWREqaGLQIkzT+Xat4VAMpCyAubeH+9RW8KmEmE1IAynVvsUiVwUZMAQrLzVvcJtiOVdGxE2INfqkaIKtK10cUzqG/P8AfPLuDD93o4XNamoPXFYst4NGn45M9yHY0tyzL8g694RDPPX0Nzx1fRhllK7Kte9BhT7xmrJvxl3NfhU97sNuPoDhJQelNAGHiKy8CA845xftDcn4D3WoNCYEYKvCpZeNCzQqqp+D2DlActaZ08sgRiOc37u92zuJSmuNyorCRIOadKeFQT6x7lMaApVkEVC8TXV/Fqy6dwXdsdPG6TopzrCEU3mtFr1KRM9YWG/9wHGjEDIZsnABkvcphWFg8v3OA331mBx9m1iKSsTw0MIK88Rk1fE7QRfBXXqFfFdjvDfDsvFVliwEwXtu9uY58NcBMjzH/fWjhswrVNhebz61uulWIHf39lwaAzTnVfsjQISMQ3SCaSennJK3ouHpaSpWG9cxkcfIxorq4oOrOTdyRdXDF5NgiGKnlFRZ21HqYmZbYjFvGwdNXs/ArXdz1igv4M5tdfGUnxyVKKXUdX7v529jXq7MUZDv6ik2GiQu2BwWe2enhM09cw3vLCs/yOXns59UMAcVolk0xNZYnCHyAAhzYXXy/LLG3e4hn9x9QLPw85hZTqFKxnqDTjGEznnw1XXgCr2NQnsz/PuYpnGC3lxaAzYlSaR8ip4TTTZA63gTeRTaWIJN0oPh3maG48RTK6BQfN8sS1B3vwB3dFdyZaZzTWtYuZ6x9qNg7gFpanWVhHqt+HA79tmolxz2XtvCtm6v42tUuXtnJsFZXMzcMF9FWj2INPgxK7PaGeGznAL/1zA4+NrRg7+RcgBf1QEcTLcWtRqp+FPOz7DxgK0mx3RjewLPX3qv4pMjjbRzDbaRnryBj4e30+PHffMx1fwArUkqH/vZxx/B4p3Aze90eABydeZQEKOEQiFWORBV8wGsNROY0mBzNUez2UJw0y7JxNZzdWsMlk+F8BpxRBitimis40RNrUxzRFcufmGFYMbh4cQvfvLWOb1jv4lXdHOfnDXZviGcP+nj42h4+caOP/zqocD3lUwVi8+GmrZlogcxgUNROlchIg8Jj1/Vx/bFdPHeC+jsJxHAn0q1zyLIC8vTL9niFHCotYAdctsCI9oglkjcDoFv9zm0GwNblMA20joz+S5bFgZ3eTA9uuIpq9zpKvI9tII4Zsb0hpHe+Bpvo4v9v71q22rai6JauJEvyQ3F4rUCyslYnadfqrD/QaQcMGfT3+gntD/QPOuioHbQpXSTQAAFjIfnq1bWPJNsEAxaBAAZN8MJ6Xm3fex777LPkO3hhK/SlzQ/TdexIx9wzZ6hKw5DpvoTtBwz4XR+vAx/fBD6+JTFBlrYc0eEQvw1C/DGM8Q8ZyMKmkRJLZGLfKem6zFoYITdw1tOJKAy8HyQ4bEwK2ITHsXEVbOnEMmPTGqOJHX2+R8fngucmjr+/AKyfrspHBjZcWVqEyHQ25WeyMMmAlsH+hbSleexEmebM/ha6QRv9losNyxKdQ8beSOpMdLk0l7wa2oqpNBxjW07bdbFEJ4LmH2fRUYJdRvtIZ6+zFawDIQ3KtmHZIiAkdb1FnGP/NMaOPsDR/s+ilzKHXVvK5a25cC0DbpLIzKnOjAU1EVxpOBZLJKGRqXITcGp+jvsPwPqZKhunv4KW1YbXyqFipu+nNg4+Z8V0hHh/gKhJcJtyJFmCoNfFRsvCKr1XOiUMbLNeg8uxqFdXm5SeTm3CX6zSZPyCMx3JrTblQ0iwJaA1do8zvP9wgEHTGfv51/D4A+Rs9+mzu05Zl01n7aN4sxfz75pD5HaPeDgAHI9DyU9c3oBrtuHblAZmBndqIzDpVYqt+DvChgwQd/0FOp0AXzkKq1WrWeaP0ySHZhkBC3dmvRbJ0RqwLAXHsIRMQAc3iRLs/vcRb+dVCxife6twAhttLrOMnbomzOkfXUtJ+i4pUoTNogS3C6omZ3+AAKwfr4xzMZ0EoG3lcGYBkbOikyPZ2UaIX42JTPBVo7RVOD2gsxTgpcflmZV7JUE2jXPoXCMd5xKknTFs6rAwosKshS6gT0P8ezLETqkWMGlNcNWlsVV46xbamuTVSpXq02PSCHo3Rlh6s7eTJrvyPm9ghwcMwOmnL0xswl17hg6BOHN2UlJ0w4r/cJZK04VjWYWIXi5ho+vhtcly0SpmmObQ5CnaSupIxBFIc4SRxtvtv/CumQ1WmCtb8A0LbRJJ2R5m1j1lDka7+wib2bo3gJRbOsWCAHBqVmQA+hm6po3Whd5hIsHo8FAjnH/2KGfc9VdY9ztSBtAh+HhlWe4zHB8c4e/9DHtNz9lfEYXStjOjNNbQlL9HMYgQlUt4A07lLYHmJk+7YACcGprvCjt4g46dw5MXW8UQzwyehWI4RFi92AsLZ2YN+OqPxVqnh1dmiixKsL3zk3Ew/4spuXcsQSgU/IvuTUfIUhenRyEpVncfNJ7/+ebfc3EBWI/BVqGeO2ibVEOwYTkFFA3B2l5sZTBGCkUxwKnYVJfoGc8/rLP2nNisRYqO8uHW1+beXHJ5T0aOnB4tBhg2CtF83s3d2dGLD8Dx0JbKr7mSwnjbrlyIGoi1zRWS7XyKk2ZhnMveX0kbYxjFV+gq6UA++QHUwGO4JzWFAdTMRr0z6NzMhR8RAKcGbLPw6bCwGxSBWJCMT1AkbMMMg6CIRohyheGhRnw9u6sw8QPsfkeK2ylL0pIZbuoabOSc5kgyjdFuKehYdh5/RNvjBOBkefY2PPgsbufMlDlQZqUkJU1KLammG4mdWErNnuv0cw4rlde80ReFhrbpwDEonstlvjqn0lK6mUAh2vmA4fzcvsVD5uMG4JSdyBSXSuEVvmgcSo6XwCEI+ZmgyQxo8UZn1dV+X0gAm943Z7uc7GeWHlXbGTDHiO8LG+WuIf0EwDNvoPROg3V4fQdBWgFRauW40VFg8w0TmtT4vRgnrJmlU2FZaHG2E07NdGYmg5Ep6HiAI2rDfAma+12Dqsn1nwA4c7TEY231VuC3e+h6ZsnG0STPl1LDzL0WlugpiYQBxYzkf/X3/BvHiE8VBkd7iB7zMnsZIJ8AeOnPtaxjoVKD10GvZYgo5jiEU3uw42W2CqXoEcJRhOMvXV/RZOa5L/s+AXCuNzGpr1gOEPQ8dKfBV38+STCQgnDW0C5o4Hiu4Wqw0xMAGwxWuWsZXllbRuCY6NK7TSMM3v2J41Kmbk5uX+PrLuYBTwC89nsdq0BQDf5WiravfWsP6MD/Ae6DH8ts9CS5AAAAAElFTkSuQmCC",on="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfoAAAAyCAYAAAC02RkkAAAAAXNSR0IArs4c6QAAIABJREFUeF7tfWuMXclxXp9zX3PnxeHwtVySu9ynrJVkI4DgODFgL+RoBa0kP6RIkZUsLAtxfjgy4CRGAgRIfiRAgAROYsCKfySBImNjWVAUx1p7HViOhLUAJ46hALGlrKV9v0guySU5MxzO695zTtDdVd3Vr9N9zr2XM/QOodXce24/qqur6qvqru6T3f+Xfu47g/lj72KMsYoxlsFf/h0/87+t/mUZY1XFGP8rOoDP/K/nX9P+o+WdAVgPLHqi7TVlwuH4D+f/UP4P9f/Q/h3a/33Ev61bV/9fxh55pH//8Ecv9QfLqwKQiWGKAX1VVSzLMsb/ev/FgM7qIGMZq1jF+F+f4+E4Cnb7DhER6LYdj8PxH87/ofwrYD7Ufx38eAOTQ/t3aP8POP7tbm1cf3n3D08LRD378MfPzB25+8Vub26wu3OTXb/yEqtKDrkItxWAOX9SSunH3wTIVxIgAlG6Kts0ItYd6ZoBn0KuP/j+Wc/VV/6B/paRr3VrGIQANWb3mUmm/KZbDQ6CDABKO6SEaZO/kN8xklDPdJvoTOnynnarktCjpcGZT8U6bIM/gIeCBt4bFsrVb5rejLEc5iM0PGCZ+pnKIHrLQg61zCqZhLJVVcIjcyyVkGk6hyjivD3OA3vssDrldSz1w9YrYdY0RtUmRZxwFAZRnoqJbUVpalRAExWZ/katTlYYg4TJWrFra/MzkXS4dgKfUPsmdNBj54Q9AH0UepeD5cCy1BaCMFpywUMyWVr+5ToiPmelaE33WmHzUo0qXkpDSAWlS1FBt6Za4LEntWvUAKC6899LJFC3jtCkzAPquSqqByXNhkmZtiVoJSnOoU2oURjvFMNDoxr5QuogZ9VcKT7wQrhSbnbCA+8Tpx9ic8MjbLS7vbu2cemBa8/9lwuq1N3v+OgPL67c/82808m3br7Fblx73TCaCPvS8KEx5f0h8PsHbLGyodakGqI6pbF+U1+lcGsZIiAVpNKixxAMZIuPD/azFGsK9DhDC49V/oLKTQdhjU3occJ4PePzUs6xmzBTgjqhA0GcGBgukIoKdApCzpqvUyGGVBYRzalsasUU8qt8VKnQUrn5/yyHRvkLpqybuhmf04lMeZPKKeJEZL1WJ5u01VCbw8WbDHZqnUYamg3Q2zZn8pF7WhCPEKx94E2eCTNIdJEDL4CuwaAKAUqCjIRrWTQXoCP1Mc/QAUDTCuApVktlTfoP3AP5HOiWLSMdWFraayTDcb4VRhOwFh+1XeAfhdaTZ2hDRCmPswBEa6ot/FO46JMm7+QiH00umHKhlVXxK4pbss7R4/ewpeVTrChG5a23XviRiy8+9Uc4T6qPs9/3yZ+bXzn777MsZxs3LrDN9StgDlH7CajTaBYtpmewUwP6WgPk42iNAigRRYVIVTdKBI0eceDUxQxMpBRXn1hYz9KBnoKsHBodjwvyctS+MoQ2RaL8YFBMqqJN0T58xrIOipZU3gwiBkVXloklP/nP55hYrMDODfaDQntXVQCgyW/SZ6FqyT/L+dJOLJVWNAiWBAdl3Z3TVKlKEIbpFVERUkA+nWE0HUWKbNO+m7Y/PVbse0tcD6ZKhG0zANAN4KdmH3UPPXWkh9oMn53QIM9by1mpgF+AvuiCR/ckEvYCvKbFcBsMenFM8q8EekoTkTdqsxDfBboTHQb9FTpfIPPRllBHgBgd0kUGQG8CfI3M+yZYFA/MvPVYAz3MpaM6usLSkbvYyupZxlcub15/7e9ceu7L/wGLO72d/b5P/erC0TOf5QV4VM+je1hzIZ5QSVbvgUm1AttU+UNLo75OWoK8s6TlHwBv3e+seIDeu33hG3uMHyGQtwHamnVHCWDVwmKR4xjYQ4dx1Np8Y7k+Y5noShoMSQYamVx/F49QYBuYOCVihOe2o6kAGAsjiMPgYHWCgjrdnKLLdELdPYDue5bitDUYaSOzT+enUR9Q2Jxf6qTKAnabMak1iU8p3YjqRryZtHDQPk/acNCETQv0fbbDju5xci1AF1/1SieuupmSgHWsJXtYxke5MRfo7UHTfiHKV7ZBtqAjfGpLoHXHztVMigJ60GkV1UtQVxG+iA2Ud6BWs6WNoLpBvxNnICYXmm1Q0iNhxiP9xb+Ej83IcgtLx9nq8fOC1ps3Lnzu4ne/+AuOT2DTePZdT3xlYfn0x3iS3dpbL7OtzesE7Pkk0D3NmELHfrd6p15ZjHnBqJRUtKNbQ0iaGhrby6NjS43m6aBs3gQRGUYaopcqMraPQCu/143UoMI3XaSyZp9sXxgDjExyshePS/dgPOQ0YJ0AJPicaKFX4JXbWwkU3O3oXXRhKqXhhZPo3kwmlX2ZPPG5eg3lmk4AqdpWAutUI9pmqEDDIflo8DfR2iWJWoBZFIjxrxmbGowdbFWs/7Qx2/vsNkjW2AzVgV5tC7khNhzJ78QJEA+QBybAO5YJHQ2x6gRlqb1WNoUapDC3+C869kIQh5U9kYMGNhvAX9gBZWPItp/KQ0PGoF1JA3peqp5KE7TN+UWO0vkz8W1+cZWtHr9PxFCb6xe/cuHZ3/i4LSPB/s+984mvDZdPvZ8TeePqi2zn1hrZ13STtJRdNXpophKuAIfq22T7huERZO+SdmAWvF3DBAvZtSbZKT/p2Mk2WwiqCXj6laY+Soj6VI4+gfMgnGwC8FyMOySSz3Lxu+wdE+2MDB2UbPlXbp6pj/ozAXi6ykABXuE5VT7ZmIZrMhdK33EuPdG74cCb81i7J+ezwA1ANWbgm0hUrC1DpJo0nIYySZtTiU3d1mJJfCMUxVnXAOgpwAbsuu6aABc+pKBo2wxnYBRIMYqnz4AAJ5jy2xQN8DTSt6bOoMECfVjnl09pRE/KCXNCtvroZ7RJpmWx9uO1y6FAnTv1/D+I6HkQq1bu0M4I+xRYxfZtHQINtmz4ZavOaXFxTrRJHg/nj7LVk/cLe3tr/c0/uPDnTz7WxAyJsufe/TP/a7h48oc4I65ffo7tbK+7AIeG1mk9rgLpGlynLDGQD2TTG6BPKXFBQf5KnBvvvnCgjfRBuiWNpDn6c8gbx+35uLmqBXmrurQfGL3D9oFamgfQ50t+AuzBEPC1fJ6Ex3HeGBltHAEZxEptrUsQlsqISTIk0saI29p/k91oAPexnu9f6XK8X0tO6fQ7WzGa3tppjbPfu+Ifq9ZUo2LtTSKaKXWb0pvS5qzLmDyzgS+8pRgeaxugN625aao8AG+ZBn/8GJAG9RjHynXW1FjZPDjt8NnfGibpSRqxRj3AWUnRCOZ2n2hvRGIvyUPitJLtQrRVfjnh+/J6PoSlECAvjIxcocfkXDx1BiCPdsVxAoTJoXNstu9MjUOY5cgEbSX+AGmQGWOD4TI7fupBxnPqtjau/PEbz/76XwnpR9QWnHv3p/9sbuH4e7iBvPbmd9nezqZhKJVtdXqYvZprcdKiKD+RNHDv8ZK6tRTD0pNRmUkd8oeQUzClsfuAXkqyNQD9Pei/WPOTBPTQl9Q96IMDvmAv7v/z7zrpThaDaN+RLvsBUQpxik2CdAkArlfR6DIblFF7avZ82byn3+lKFMxgMtCb7dbOcFSrwvmYoaptJSqFlJBxmNbztrSjpFuaNi2yvO1ofhHOub5pcALdsfqBPqwJNlk6UMFM97DNpWbB7iEmCdCPAfy0jvk5DPQuWw3sdn6GHB76PLdXGEhggwZORfPE1sAWoj7KGxAVtC8KoyGo4OAuggi9koi2SAO9J0/IMKZ+CQhzn8pZ+pz15xbZsbseZjkH+VtvffuN73zh++sUIzb7AjXPvednvzc3f+zBsizYjcvPs92ddd2mM65J1LqZDttHNbQ3R4DQRj6a7W10h3SnAn3Is3bH72NylEuhjFyHfjwDG9mIt90zHwHEudRGVp6KleAul+FFMTgyJ5bowQkQgA9lkbWYXe/yQCfLCVK4kpXyzDpxsOWSGS7bIyjDcpuZQCcaCWm2NXo9d37xlU9NHyAR6FM0qga5DoHenELkR1RfmpmOYGmNc7GJ9OfkpNLZCOiBWgPoo1Y9Rr/nd+NRjQ1VfYe2Bm3LTNcYZCfSVmsrY6QZSwNj5QDC/Rs6fNfL+GgrhS2SbWLAoYdk6S83MsquQGIeyQUSgA/3bsijuby+Ps2j04Vk4GEn89Lp4SXaAb1vkjM2mFtiR+96iHEXaWf7xguvf/vz76gxfprfcR15tHv2PeefGw6P3cd3KtauvMB2bt3wVNPMnLbBcjuzxJ7uCSthUHBjCZVvxDbQW5mW4mefM2BPqd9Q1fXoreHk0tjL9QCqVFdqJtJwOu1yHkdSnYUHYBdL8rCPJpUwYx08g5vLPXkqzer4nDMOnQCDu+gCyMGbVjoFioaJcXJ5DRJpyIY+QDL8hiTY5tYzb05M5nHcDFvuN+HO05h9pWLkma9Z6E0KSXEbMHkJyqu2NKUCaVtqdbDgszjus+CtoC0IaDs2h5cGgNaaaQuBQuBPn/s/+2nQfbsmhq5UEPBXsAR78aqiXkE0L+OCLUIJ77DrQLcZQxNBtwJ5PCEBW+zEi4ADc4ALiPIZYwVcngVYoHdwAeyxkuoyZUZhgNrDrJWcufkVtnLyATHW3e1rL7/+7VceZuyZcUzcmuhbfu6RJ/50sHjy3dz4rl19iW3fukbad724YOeBXmvBSDVm+WjowSmUoZ4gJm5YHdr9a/dMm38n2Y5OGvlszGXc0Qm7BYQoOveBrQedxV4/xYZ/4iuK3RJBU0tfIqkOL7Lj0Twk2Yln4GjoAvpsPtLv5TOyGCP6klWwb4b7ZWr5TGybwXIajeZxHGpwgblJVjhLIen0Ovv0JhNrVZmOP0Xnazz/cPXQL66SNVH2mOHYz9/dEU/DhSCg5Nn/quWdfUpjAuYkionTg0FfHdB75dm1PbKDulH7baq/hmHQoGVdkmKceZGXtDF6pxK+w9K+vpiLg72ml9umHAMP78qox/HHWzOrihWABwL8hT8gVxVVZI+/Yw6RdAt0VG8Y3ZQZ9Z2QcIVouHCMrRy/T/Bje/Pqdy48++QPxCJ5bKWx7p9550//0XDx9F/lDWxce5Vt3bwS3nCktCZ6LMAyArgBUo32SCamOpYBQiHmn3x2+AfemAH2VlZ9INnCaIqUSWWqFAGqBMTYCAGnLZnlYqduowBv6zEaB1iKlxE8JwFvqMph+Z6TjIBPvXJI2PPyFx4iUZjpqhQF98hKsUKG4C6VDPfNsA0aZtPrmA30d7UkOCkeRTT8hniefYoqN7H9jn9Ux9Now2ZrfjY0HUGqhEeJa1VAUtuUZrurwBg8eTGyZMxrw9MbrYakKk1lVKFEnYjTSq2PMQrXi6gdpL+4bcvoqR1ozsA7arNpzg+3R/qCH7lMDyd7yP49X9bW+UIel0WQY63aQsa93JeXAC+sETczpczGl0fLVbgPCcPEcVA2ziejgdmNYmPF5pdOsiOr9wpGbd289D8vfvc3f7iJpLXS2NPv+BtPLyyfeZx3dPPGG+zW+sVwn9FB1JMbFnxs2AJ5A9SJRxjsxgf0nj2XoJJoCrMGWhoGeUxss5wTBGKtE8aInK5jtDg+hFYmnminEuwEPxHk8TMqESqQbkx+sjsHHvOfVMILKhpmvcq/coUej7yo6yrkWIXGQdvJRouwyZH2GiYRTynWVYzVTRQSy3JS/e1Op7cUxY/1ZM96m3E2rTMdkKe9WpwIAb0Nnl5PGqiLMS4w6JbVXEyeGOhtAhOkpSYL2IQAx/DAPRy+qFbaQBXUiMgDcobQzotquHxPtjcxpwj27dF8mrQYHj3gvgRyAfbiI1/Ml7foIciXsMyP93vo7RuVtg8MrN+754Uss+6VjIUjp9nSylkA+YtPX/zulz7cVG8SZtDf5OmHPvGf54/c/TchtZ/dvPGqeVSpoRfYjHAKJ3TZBsGRArwsaw7UmmB6dhKByojQfRn3SLGlnlFt1ZSIoh4+6Qx3avYTORTt35OwL4iQYI4eMt50J3FeQD8k4snl/MBChEGkvlea8I96w+BRq6hd8LyE1ydIJZF7Zug8EDNPfIeg2bal2yvtAYZRQ46+xQwNtM+0upSlTG6anKQofqy3cBsprafRaZaKr660adW2Dvp6Zt2a80wxx7Yllo1vQFCM3ylN1W7pxTzWYAct5tNn/x0st4/x6aCNjkPdx0HAHQFfGiMRvyv7JeZT2TK90qh8EUqHoBM5j/v2+ha9Et7lIpbv4WSQAH+0SQD66vIdlWRE8cFcOXC4GWAvl7mlo/ew4eIJQePW+hu/cen5r/ytFDnw2ZM29USd0w9+9N8Oj5z7RQ72ezs32drV51lVQl6Ab9m5dU+WKYe25ZuPEHQwK5Oip0YkE17JxMK5a8MrE3Ovy0hZCKmhDfT0u28GQ0Cv8wm0BwvjNt1QzQyfsfEaIKwCDRGgVqfcedId7rvDDXcyqoclfNhKUHtfNmn23KpkOlAkRRdk0au3I8L51ZLjOZ5lxf17ctSF6E3dEKP+pTMlBxPo/aoyDSiYihJGIKEFMETIIi7eDAZg0euL6oMRq519r73CprPVtLxlFcEW1vC+Bugn6VtbXNJ3QBFNU4bfaD35mf6/jixo0q9+Cya/wEMfqcM9fb01IMwd2jz4Ir/CqFX3JEEPrsGWifhyJVHm6JGcIVG9FGfztXxChr5hpGig6Mll80xZlnfYyokHWX+wKALo7fXXf+XSC7/199oK/8QaeeL+D//s4vK9/zHv9PLxaIfdeOs5Vox3DRiI7SfX5nyokVGhgFkzpIYm3hlIZvEGQ0EaEpoTISr4EvQI2HjQFh7R8M9mr6sIfNpVUokTJhNg9u0R2oiXCvJCkwgP8dIJOLlAAZ6Xk/tddJ/MI26CnTQhBUAaHSncD8MywhHALHqpSPInUBnjUhzZnzm8OtNkmAnrmI7jkYR1xzKMdQHRpIYyrsCz7yFOw/RKuIZHPvGP8naNXeubY7NqX0Bjg70eSWoQPekIneDAmSpql8wfm/XNS4dhw/yF2i/sU5cQn/T/EcywQm5cnld5SwjiYPNhOZ8eq8MkProSo7bw4d4PLm3mmgLCtcQGZdIAKqqKZ+DD9qMwXQQ3uBeAt+fR5xRLKn1roDM9hHGd3oAdPf4Q63QHrCzH5eb6K3/76ku/+58m0b6JgZ53ftd9H/jBweI9f9jpL8wxftb+rRfY3u4GEQhrcinFhqfsEznL63PWjc23H6sI1eeBK/C2wd5K8FLHt8KmR1slSrNNv/2qMHvtijonIPVquDFnxbPKUAf0SspRu1BJNIiLX0RmPSa7ys8yigfwpBIj+gPe0YsmULgBrHUCiywvV0/omxAh6U550YSP0Ad2lS7sPoNCahuSHzB1HisdMtzNjGX6KCwXp2nFw/KNORAGe9+Svm4+ENl7FwO1tJhy084cK7e2tvqkQJ8i4X4CDLfbKOJzyIndI8l1mHov9uOVPSL2U4E9+g5kNZJiAQn4MZvfdTER8DExGMwcBiewPI9bjsa7OERVzCXyZeLb+/bEv2GM9QdL7MjxBxiP6Iu9Wzu7m6/96Jsv//6fNBZjq0I7yfL0unjqsZNHjp3+s8HcyinOgJvrr/MjAOYoHDvrS8AwvAD5xfb6jHUYcr5Sn8PwZ8kiwCiUJoCvkMS6dMWy7JwUU+RDCm6z1vPdcFoUunodJMOgkHPk6rlBlBZUyT+8lhaVCEFeMldH8Jhpr5VNHlXBFQAAdvUHk0+I4UJvli91oWOleKs9ZfqKSHQEZLY9mX/4Yk5ByOD4RJmAfWw6vLGkL1IL7+KkmEI/cPtoT29tUiNwWN9jc8Du2JF9FOyxKY9nquXY0k9jApqZZGka6+pYcuQRqzRJSyuVFu1rZ8rJjzDGYwVCZD9e2jWShCeifQz6ADaEQ4BHgS0YoSv8CmPQ9BKgx0ADoYK82ZInD+M13fIveT02xRoa4Sub6PJzuHSCLa6cEyg22lm/fOPaxe/fvPw1fqxt4n/NpCreXX76HZ/838PFU+/lRXe2rrONG6/BjWd2ZfDmHAqoEJAZUGBPJpMuP4vmzYm21nrJheo4a/S95ch4+df18igAaW326LOHS3SQOjrG5SX0VmWndDGJ1qP0Af0GKFIIwR90FqreHgDDgMZBOMjSS5aOMnkZjbXCz10cebKA7mXJpSwnaQ4jfOqUGDmN8mXQ0vjhnrxvlaJpApYf8G1f0b/66DNm8My2lwG7V28OU41lXNEOS8ySA8RBVMZA26XoVmTNiqCS9+A2RZpJ1vIcK3+7gZ6ipn+OLO46gZw7NpJ/BWCvbCbkEWkbKoMUupVhfCaJ+cTQa3MAvwuuCUKobQIbq4w+nBiC7UgRqMBlOyrKB1uJNlMbPW3Ps6zDlo6eY3MLq6LYzq3L37r4vS/95dQz8imaEJOSlDacMnfd/1OfGy6f+XkeKpbFHlu79hIbj7atcjagkwQMXyIfBUED4Cm4e4ajJsV+tS7/oYS5VO6amYFZN3qK8P7AD2pbIC8ESAqj9sTxO1USeyw1QE90WcKiuVIil7uwbfmmOVkGkluAJg30+Dv1twmPCDjLvXWyDM+rwisg9QtkzORGOIiqdUFKP/VU1OemMB+OKPB6TM+0OPMc9KCMkr5l/DCUH4J8K2Oyb5UgEMH+na2vutiVyrI571J15LOwRMTNsjaRsbKGcfBys5lkxkrH6KF885QlfNYzQOylmVVHbKl9URpeDY6rmXqhVN2tQ7p3FkUs0qi516YKz9TDm+1I4p5Y9BexDNhNurpJov1ub8iWj50X+/FVWVRbGxd/7cpL/+2z0xb7+Ky07PHkPY+/f7B85qlubzjHlzU2+VK+cZOey2X1xInUOREA6LAco9+wBEJA6TTsNAIUDSfxKkN82xKZENVOpXHYI9vUM8dtapdVFnsdIaXpoBTk7c8ekDWOhOh+FKlqYYALOr0+Ei/AkTyVJIFK0TOnZDAyO9UyGPg+Z/WWOTRuYMQM8KdL8rotZ0ne4DPxpBvLoE+sJwR6j2VulpwXM5CNB3lYYaYcMGXIWLJHfQn2b4Or/j4p0Js2MsYAS+YCIthMMmOl0yBFl/LZSDkuFw/wCbn3XhTE79TOgX3Dlkjso9slMRGFI8pWfM7TrRz/n4C4gBdM4IPTQ7CXrysW+nUcVSUi+MUjZ8QqajHa3tnZuPDjV177vT+IzWqb39NmpU3LjLGV84+uDAdn/nhu/hi/dJ9fwM9u3nid8exFPY00+oQ3GSnmEi4LgKeRqQ2SQCTFJGc/BH/kkbydFEFBH6w6dh9SEJx5b0SfAPIkqkfv1Tx8gR1Tw+EBXZwf2qX4jE4QvjIWChBHSjzhCXhQ3HSbPA6G5ZmiwyMf83k1QV2fLwWe2mBuACg6C3JAdSbF/s0VZPtJAtCrKiYdBjVBp89VEsu8t9Siw2r7xwHT+htL9sJs1ZlPW2eJFLWM6NFGpJ1S8mhQjULF4Nucg1DpZnBSq7O2M+VbBVWBEz1qh3ZPB4b26oexOEM8ClXOIMwzy8ROaMeNvlYbLtqRP8oTReqSnZLxpfrFI3ezueGKyO3f27rxva3dN35o7ZVn1mYl681mpiUVpx746K8Ol07/XZ6/XZYjtnH9VTbauwWt0U0TfeOa4QjIt6fIvRcr4cILjOqV47ikTN9BDiAv5kAKrH49DrQmuOKz6KayqhIG0HtYSiN5Kk3qyI4Lr2b/1CkJeOkGyGN7OrNeIzn8Rt70RFf6JXmyP8UXkmCHL5mR7OFiqo/GIc36NY8hPtq8pUaxGcDbIhkzHpYOm9WNH8NHpryiERaXiMvSUqne1tV8ZqsZVKWxz3XW1RP0mScAez/FYZMcP0JHRxWwEzUDb85BWqM5lPhrUOdKf5aBiLZd0nDj72S110ilN+0q5iEpLLF4oRwAq5q0j+QWfodwPEkEL7nDo8Lqsh0ZMHGw7w/m2eLSaZZ3+jzgrXY2Lv+7yy//119Ik8f2pZrPTsu++FJ+f+Gur3YHC0MOFttb19itjUvq3LQEcdQeMqFy4xjOmlsRPcK0WlMBwRO4rvdPNDzz32FfnssJqSdATSmvBqhgAEpfZKEwwTYM0o0wk+20FKkb8CyempEgBRwTEFU17NbYGqBJd+ZqiFQaoihqUQUcHcpPugSvzrnTpSni/OCxEvRkFRsbxOaBfIemRsgyEaDblncekn7+nI7BmB9ftB8uLks3pb6lkr0tqtWZrFnxWRsGNwsflclmvg20plabKSn4Wx3Ix7LrJwP5mtozlarIiOn6PeIzyW+iF6bRJGISPAJ+6EH412HoHj3aR/sMvrl945lvNA0I9Cp1iQNSxuYXjrO54VERYI5HO9t721d+4srLT81kqd6m7rYBPe/4/PlH57Y7J56eWzzxPh6ZF+MR29x4g412eXRPDzjqLEt+rlv+RJItFKChgcXlYn2mW2Z6wV68MrQlZI2j/EhPC6NYkxmu0SAr9RD0alRy7jsiNOrkOHRgcNnPZb+RfIbL5D4ttKvS/hzPtwNjpJ4MLmXjOCmA0XwG/AwveIA3zSG8SzykpxeAWAKU1MRFBW5KQE9ZZi65JoJ9EKD9QC/YcBjVzxQU6tLfdMezAHsitZ4le3tp2HHsrGjB8YMTuKYj2oTCvsTWlGqkzCy4GCIhahOMCMxOm6cZ+SShW0X2NDzHq3GJz2CtyNCYycnWV3GotQ2IJk/ZLrj8C+Cn0x2yhYWTLO92xT7+7vb1b8ztDT70yitf2Gk4La2Lx3ncuulwxWPnP/iTw+HpL3Z6wyH3krZvXWdbty7LM4mwF483scltbMigxH16A0vwSkJhanHtxHwBirgsHaNVHWOrjEjBBRuq/UCPSqrg0acRNsiTtXHjqkbvIT7pfEiciUTwisUkgx94JfnIeSdS7MW/8NW62BcBeHSScOUCj40o6pBO5Dm1EhTaXQa5QodP/Al4kxsdAu5qOcMNFlyJDfUcmJdasJ98FDNQxTukyaYTECJiAAATsklEQVRmaha8joC9VDD/v2kBvbnkWN/ZFFgwhSYayVf9LNNcLhqwAOPt/C0xHdZxa7CCCuZVh/KDjuRVCRUgyebBpqrFFQ34pvMGdqzMWX9+lQ0GR0SDxWh3e2/r6qeuvPLbv92IMVMo3FSDptAlNPHII/1Tu+/6vcHCiR/jDCzLMdvavMJ2926qpXoRzXPm4gsK4D3ESIQMeOXxLoWJApAQfMyIni/PK49N6aUV0aoRErCy7TrZMneUQXSgcwrM/QBy1INYBdWG+mBd2iNAn7CeDkK1Y501VZn0kGhHhRwcG3OoGrjlzXVkkATkxWtmqFQL2uwwXPPU6wcZCmeJFPGK1TxPRepc3nuF33h4CPRTYf3EjYTNFHERSS+zgCgT6LEzhIgmhtRMUJUtxSjW7ZtHZ/WgrRZiDSbMyRSaSOjFLFLLR+WkW6UgqDG2SRVwuxZfw7inb9UWxJz4ulvuNqiIHtMFdABh86rTXWKDuVWW5V2RxzTeXvv6xe7/fZw9++xeY6ZMoUIT+ZxCd24Tx+/70I8P5k/9Zrc7nOfSPh5vs63Nq2xc7cJyPbmilW6kgHbIawjJeUaaOCbUR4ImJpbxActBxyL4ANDDY8Q6c4LNxEJr01/H1CCwjiIpALU9Cw/Ii0FZQoz7UTTJz7ijm0437R34hC9tUCCvjyFK0qgDYJknG/yBxwcO6KUwqH/Ojt3MgD7FnM9Exf4CNNoU6HHI04YqG2DoUjGVqTDLJUXu/lSM0kZAH2ssUSKm1ExibyH4tar7UuOVA0DCclByWdwH9rZMEQ4joAsTqwMEeUMoPMMVU0AXpDLPB6w3t8ryzlDMc1nsbo12r/705ReeeqoRI6ZceN+BHsaTn7jvY58fLJx4IodN+b29Dba9c10qhcgQ16QqARQgj7cTQfY3KhEsPcsoXousnCufCNvPNKIDvElSiY6ae7JxkDfnjl7BhH3XADxWVmzA/vTZUTuZsf66ThwMgjeaIMhtIAl5wSx6PRGWWJq8pN8wAgrK8cwieqnwhsAThTbXXXVipp9OS1YsnykuXfthQqdsOaLNhZzKaEVPgbZmalZ8Nukx4w/rNzIaBfKgenSgMUq9HLAfxhqhmJdSNmGloc1s1tVJmmlguGHV1UIHAXUA+fCMUANAnQFtKVTshKCPGfgK9BH8c9YbHGOd7rLAqqoqyvHO2pMXn//SZ6Z5w11bfifxtW3jTeutPvDYuUHnxO90+0s/IKLVqmI7e2tsNOLJenxaObkadjXI4xlGcpwOok85QBm942cHMxHBDcE294ud1WljTYCyEYXH86yWIS7I44hVNSWLOBqATbXcRO8h0Pv2toskelKJfrgvj2+Tkysgkhr64hnt+OhhxCHNP+QasTOCHcM0NhWn2vL2mWhqA42KXlJrgD6wT49thl2gqQ7vADQ2TaD3a2zaIBMRLa0xTyk9TnvB0XEePcieSt3EhrqugQgRqTS2ZiGpmDJOQQ+AuK6qtzTIjMDPVNt94E7ky3AOtH1Vy/b8ShJslf+c56zbWxYgL3LJqooVo40/rcZXP3Lxxa+9Pg2eTKONFL5Oo59GbZy6/6c+nA+OPNnrzq/I24bGbHd3g43GAPgSqXQ0T29ng2x7c6keRZWek5ckCdeBhOZaqDXQQ3fGOoC522/BhG95qZYDNHvfLKgmCAWbCri6lx5f3GAKsWF4jAhd8k8tT6gcBwBW8adw08iREc5YmpiCiMippvT5gyatpwqaawzsJX2rJYNsD0X0kc8ngub8Y5nFCFM5MatyBwXoUdZnNU4CEjZghUTd9elriZvYSDugiN01JCRA5TSlN2WsRn+GkQNg9tKpE+loOrZGAU8yJb62m0TzIsUPfIpuf5n1hkdZnvdFM2WxtVbtXHviwku/87uzlram7afwtWmbUyt/8qGP/at+f/UXs6zbE4wsR2yPR/jjLcCoUt44JEAM9+klSMmXr+CpPf0eYP+A8V3ollHgOX3wSAsXdSGgAzVieuxC9hRUAuOHwI3uzlEevT1gnvFEAQ8l6iCBJJFOsA34pkAIwZ8er8MffSNpo+L7AfScTrdfL9hbdtuopb7EgB4cpkAadj3X6K82zW34PTV1PCANtTVZt5N3Jo0+iptQ03bExACmQXQToqwWJ6hqtBQbq7cfTDxu0JI+/UQVHgMlGjDJZXx5kbh83ptbZIN5HsH3xcJzWeyNxrtv/cqbL371Hx4QJXHIiPF1/+l+5OP9U3v5r3UHyz+TZ50uZ3tZ7rKdnXU2Ht+CRDy9/CzvvSGX4hCozR3YJVEj3Rum+/DOUizN3UegJ5Bhrd+lAX3AITCOjJK32kGCiOqVCjo+JJExnURxk53wiQDU8Uff2+YMT8UqP5Fk1Iidd3UlnpVcT04M6G2HTfsFDqXKg6yxdOqK05BbWUftIdDXz2VbkzUtKEoR/LY0+tuerLU659/iyQQsmqBqA3gO2UlfJF/PNe+1OaKK9XIcskvQ7y2zuflVlnUGguaqGo/HO2/9+uW5535+v7LpU6TRY91Sq+1DufOfnjvV2fx8p7/yiU7eFYfDi2KXjfbW2R4/kldi0p0JSHlGXk5jAz3cYCQnDcHPOr6uQJ9G6ChE/C8RMvGRloPvVvTu455RBCN5d9NPJpRRh9PrzSr01qfeRQfQC4I6PDMWye1bX0g937pDOyNUV8u/jdHOkPhqEacsZmIsMuX0BijxOFaSle5Y243FdNf2QQMPUJftpE4PYPIZSGPGpHTKXlq3QuyRn14PH1qypmU1h6zYWP39gA22K1P9izWszshT285fr5Kzfn+JDYZHWaczJ+gty1Ex3l778mW29Bl2Gy+9SZO5WTiLk/Tcsu7qgx9c7laLX+j1V34iyzsiR6KsxmxvZ42Nd9dYxfeWyQVI5kK7FhM8y4o4hm8eQtBHWKwqKiEYzROwMARIC4nvlrSkIav27BugdP6J1F8bsHxKK50ezJqXJQgPQsfllAOQDi5RPYqBKqUN/RFSp7khqavh8+cDI3DAPpCRTx0poFvLgNlI87HUSc50W0uS0QNTqJnUJYPd1Mc3GZ2T1fYlruEAa2SnoVg1LB7kcMpY3b7qXy9kdkajJB8ZMpDiF431544KgM9zsXPMymJUjvdufHW8tv3p69f/+8bUxWSGDabwdYbdt2/6xIlHF9ni0c/1BiufzPK+WEvhMMwj/GLvBqvKkbra1uzFvO1GnBRX+9WyJGbYa5CnB/Lo/cq+c7T8aEWTcVlLa1YUbzrlVjRvAbciXoG5ftmCxCGEeukAyGIWsaqMxxjY4/JFvE2GLsryRkjD/o/RC0XcbusnAWIAD7UelTAe0RUiq7pn4n1g30g8GvPTM6et2riTKjU3Y/4agVyZmbCiGc3NSlsET1I5QVgTiiRzsD2pbWuawM9fNjM3typAXhyT49ap2N0d7a59id1a++zVq89sJg/mABVsy50DNATGTtz7kX/cGSz/g253cZVPDB9UMd5i5WidleObFpjhO4NJVj0APcAf4A4CtpV8Z2V5mgy0QR5+pZpgVLC8S/WbvqRBARIsGevqslH1ne6xW2AtS+I9A4HzX04UH0Bce+bJeKYiTFMDej/guTTaT2JAD/cw+Abri+oVGfbM3Q4VmqYJvh30TtJHmvTFS91OsKfjjVMWLxHhX9sGAmI0C+lqS+IEGxwi0a43WGb9uRXW6y8oqzoabV4fb63962sXnv4Xk0jmQajbnq8HgXqLhpPnHvvJfLD6y93+8gPSHMvLX8rxBitG69wzg6VsmXFuXKJHTujrk2gE5AWnKLs8AGFLvrHsD/W9uKIBH7uRf+mSFG1cfxYUIkjjy2XUKHXSnciwd5rACJ8yMhHga2xUK6HyWA3/iNsIHuVXjaeifgqMQE1TzYU6PrAXz8w2Z2Ek0zizfz2n0TdJqXrJ8/nYTm9k/vaHUw3GMAmrsG6qskb0M52UYNQT076ELpoNptOdY4O5o6zXP8KyXL4TRBzm3t14sRjd+KVrr3/ttt9JnzDIVkVSOdOq8f2qdPq+991bZUd+udNb/hDL+0OVIFfusWK0JqJ8flTPBnr11nqQxUpdjeAaam24gYWGItjPCJsNX0F+0YsE/LtMMCA59pKNKqKHdQf0RmCfXdonjEagDH9Uwh69MRnhc/uhZfTaubSkKFmoIpaUxlZm0eQegOw6oK+bW2vUyUCP9bBfdzunHYjU1WrKk7oZbUfdfum72W+YD+qXGKvQcd73AbmExkhvTXJqwy3iAElTSKZiY0yvlxLV550u6/V59M6T62T2PP9Xjne29/bWny7ym7+09vI3Xm3NxwNaMXV6Dyj5cbLuuueDfz0fLPyTrLP0nop1xfFzjo1lucOq0U02Hm2yotiTezEC/5Al9jE62peB1h455p0EystQHQ/4i48A9zqbnp7w0KJIGrRusxNRPUbnJMKH54oU9wNNzXOZmWrv7xCgT4AA4EGgpAJ6YrhCjRqR/SHQxzV1WiVis+w7bmYJ+r5H9ciLuHmOl0jka2pDKghKbFcVawLYFLKb1ZPdmYPh++48c77TX2K93lDnUFXjarS78e1iZ+2fX3/z619pOqI7qXzq9N5JY/LSevfdH5kvB+U/y7tLn2L54ml5fz6Ae7nHxqObbLQnQR92YT3tWOxyluahim/JXskfAXm4cYkembNe0Ec3FEjyHAVzufcuoQcz7AGI6Gq9lSgW3YlMBXlXr+LHgWrbdikLF08VX9lCDALMCQ+DvfFL9Lgd+IGeQaSzOL2kz9BNprxN+56st+nU9s8dOtR+QfCBPVIT1ZbpkB1sJVXOwzLum0Wn1ZRupg70Yc30v5PEZpKfaL4s3+0tsf7csrq5Ttj1qmDFaOvSeLT+xbniyj+9ePH/bM148g5E8ylTeyAInSYRZ89+YHWn2/tHeb7wiU5v4V4GLyDk4T5/XW5R7LBitM3GxTa/9Qi6tkHeI6BKmzwRP0byJKLH2+3oixOoEZJL+mKtAV7HC58h90BiNwF5PC5n5NsZaA8OQQKkWVv6tfxvGtF7sUM/tH+eFtTUC7v9ayLQCzEIUGhjRyOwn3TU01Nt2+BOStk0dbm+LZcH7o1ovhZ8aLbfYF/vqk7CU9NxjbTUCuibSAynxiwfl+SM8ai915tnnd4i6/bmxfE45aaVRTUebb5aFre+PFor/uXGxu/zt6W9rf7FefgXnR3nH507Vg3/fp4vPJF3Fh7KOz0tIXBGvxhvM/nfHivLPXe7ScilB9wF7+C5uuVGvjceS4v4Xr3yUCd5GSCPS/MCfHkEL6/71RDPr7bVpwjklJkAH1K1oADUBTg+mSAN1QqVatdP0axAPs1MxsFe+WmUB8oh8zDGB+5R3jYxjHUKOpl6u7XDztjBNRPmKGJAr0sTYCcyO62ZmQ2/2s+3qhlrojHQz4JjEti7ImpfYN3ugjjrzntCN6EsRkVRbD5f7G0+eaO3+2/YK8/szIbnd0arsWm9M0YxRSqP3fOBv1Zlw890uoMf6XTmT2fw2lwNnhUryl1WjHf5u4ZZMR45UT/f59eM1W+Rk5vwcgNeADzccme+A0ee04YTnIDmpb70BjMIBZRLgDcu/7EAHiDfy6E0QNZVa1U2GejDrfh+maaZ8I0Xn8l+6kpIPniB3qiaFrb77lpAx22K4jzJvWrRLZiDEOOm8cpywgO3woYcGzEvdwzYp7m0EV89ugcQ18t4idS546De6Q5YpzMvEug63aF6Uxzuv1bVuBwX25fKve1vZuXNz1+7+Mz/SGv/7VHqEOjr5zk/cuaxj3Z7wyc62fAHs87gRA7X7xrVqpIV5Uhk8pfFWCz/V2XBimLMb1uAtHrMsNNvURKvSVCJdxjNV7CRwBWFJt2Jq31U5C535AHo6T39DYzSVIGe2Jf6dg8O0Nt0asosYCCTHYx81A9pQC+myRvZT8tAItHtVTxWM21N5qAYUhyN/Ou9XbrmECSdqzvHwYnCuVHAmO/Q5Ecj+nbyy5faO50+y/I+/O2xTt5neXcgXiejvGwI23nEXhY7V8vx1p+MR5tPrr/5zG8dhPe+HxRpt+mI6fJBpXvf6Dp+5vGHx3n+iU7We1/e6T+SdwbHMx/4I4X8HH9ZiCSQUpzdx2V2/oY9CdbixD+/k5//xmP+TD7nToIooy7D0cCu9u0F+GOeHipZ2hLrQQf6diYjLBr2eGcD9GriTUJ8+H+HA73hU6rRTnvWpqXq1mwbd1ToPoJRvTGsOxnqw1qfCvShGZZbkGqtknzmAU1H/pd1xX951mH8qJsAeH7FbNYRdk7cRodeFWRLl9WYg/pbVbH1bFGMv1Gw0ZdvXvj6c9OSjLdDO4dAP4VZPnH2/Q/tVb0f62Sd97K89868070nz3rH8k5/jksuLuS7ggxLgnT9mH9GTcLPdd41Le9z43DjCrYKuIlS9MBnZbawbKqtjtDH+zH6cxT5cPxqYxFR83D+D+X/baj/VVVU5Xi0U7G9a2Wx9xorx39eVDvfqrLx1zfe+ObzUzDTb+smDoF+xtO/dObxh7sVe2+V5ffnWefevNM5XVX5qSzrruadbJlVnWGeZ52SsU7G8jzjsX2Wy8N/zitvJUgjMNtA6g7FRm4TmRGE09uzg1STHtfPqAd6PN5oXhhEPBOrweb0Ho7ffJfA4fxLL0KavebydCj/lAM2//hqJewtVvyfeF94VRYZR3FWbBfFeCNjxfWyLC9X5egSq8pXy6x8qcqqbx1G6LMFov8PQcUPbMlsTCAAAAAASUVORK5CYII=",et="data:image/png;base64,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",ue="data:image/png;base64,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",ce="data:image/png;base64,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",Ce="data:image/png;base64,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",Ae=je(48289),Te=je(25399),Ie=je(6767),ze=je(29787),Ye=je(54172),lt=je(60242),Bt=je(53664),kt=je(47125),xt=je(42441),Et=je(76411),$t=je(61186),Zt=je.n($t),Yn=je(9148),gn=je(28426),Jn=je(45937),ci=je(36714),Xn=je(346),In=je(51257),hi=Object.defineProperty,Ht=Object.defineProperties,At=Object.getOwnPropertyDescriptors,Hn=Object.getOwnPropertySymbols,_i=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable,En=(Ti,Lr,Tt)=>Lr in Ti?hi(Ti,Lr,{enumerable:!0,configurable:!0,writable:!0,value:Tt}):Ti[Lr]=Tt,Mn=(Ti,Lr)=>{for(var Tt in Lr||(Lr={}))_i.call(Lr,Tt)&&En(Ti,Tt,Lr[Tt]);if(Hn)for(var Tt of Hn(Lr))dr.call(Lr,Tt)&&En(Ti,Tt,Lr[Tt]);return Ti},Ln=(Ti,Lr)=>Ht(Ti,At(Lr)),Mi=(Ti,Lr,Tt)=>new Promise((Ze,Ge)=>{var rt=mt=>{try{qe(Tt.next(mt))}catch(An){Ge(An)}},Ft=mt=>{try{qe(Tt.throw(mt))}catch(An){Ge(An)}},qe=mt=>mt.done?Ze(mt.value):Promise.resolve(mt.value).then(rt,Ft);qe((Tt=Tt.apply(Ti,Lr)).next())}),Rt=(Ti=>(Ti.KNOWLEDGE="1",Ti.RESOURCE="2",Ti.STUDENT="3",Ti))(Rt||{});const ni=({dispatch:Ti,pathsDetail:Lr,learningpathId:Tt,isCompontent:Ze})=>{var Ge,rt,Ft,qe,mt,An,Gn,fo,qn,Kn,oi,Wi,Nr,Uo;const{detail:Vr,actionTabs:lo}=Lr,[Rn,$n]=(0,Me.useState)((0,yt.useParams)()),pi=new URLSearchParams(window.location.search),[Ai,Cr]=(0,Me.useState)({}),[zr,ao]=(0,Me.useState)("good"),[,Wr,Or,ir]=(0,Jn.U)(ci.b,{subject_id:Rn==null?void 0:Rn.pathId,id:Rn==null?void 0:Rn.learningpathId}),[,ss,Us,as]=(0,Jn.U)(ci.S$,{subject_id:Rn==null?void 0:Rn.pathId,id:Rn==null?void 0:Rn.learningpathId}),[ls,La]=(0,Me.useState)({page:1,limit:10,type:"1",keyword:""}),Fs=(0,Me.useMemo)(()=>{var si,Hi;const or=((Hi=(si=ir==null?void 0:ir.data)==null?void 0:si.route_study_info)==null?void 0:Hi.study_grasp_hash)||[],Fn=or==null?void 0:or.reduce((pn=0,Ur)=>pn+((Ur==null?void 0:Ur.value)||0),0),vn=15;return{title:[{text:"\u5404\u9636\u6BB5\u638C\u63E1\u7387\u5360\u6BD4",top:"50%",left:"15%",textStyle:{color:"#A4C8FC",fontWeight:"normal",fontSize:12}},{text:"\u638C\u63E1\u7387 \u4EBA\u6570 \u5360\u6BD4 ",top:"10%",right:0,textStyle:{color:"#A4C8FC",fontWeight:"normal",fontSize:14}}],tooltip:{trigger:"item",formatter:({color:pn,value:Ur,name:Ho,percent:bo})=>`<div class='flex item-center gap-10px-rem'>
|
|
<div class="rounded-full" style="background:${pn};width:8rem;height:8rem;"></div>
|
|
<div>\u638C\u63E1\u7387${Ho}</div>
|
|
</div>${Ur}\u4EBA <span style="margin-left:10rem;">\u5360\u6BD4${bo}%</span>`},legend:{orient:"vertical",icon:"circle",formatter:pn=>{var Ur,Ho;const bo=or==null?void 0:or.find(ji=>(ji==null?void 0:ji.name)==pn);return`${pn.padEnd(pn=="100%"?vn+4:vn)}${(Ur=`${bo==null?void 0:bo.value}`)==null?void 0:Ur.padEnd(10)}${(Ho=`${bo==null?void 0:bo.rate}%`)==null?void 0:Ho.padEnd(5)}`},textStyle:{color:"#fff",fontSize:14},itemGap:20,top:"24%",right:0},color:Fn==0?["#1F2A51"]:["#37AD83","#0374EA","#F29533","#EE5D5D","#A4C8FC"],series:{type:"pie",radius:["45%","80%"],center:["25%","55%"],label:{position:"inner",fontSize:14,formatter:({percent:pn})=>pn==0?"":`${pn}%`},labelLine:{show:!1},data:or}}},[(Ge=ir==null?void 0:ir.data)==null?void 0:Ge.route_study_info]),ha=(0,Me.useMemo)(()=>{var si,Hi,or,Fn,vn,pn,Ur,Ho,bo,ji;const co=[{value:((Hi=(si=ir==null?void 0:ir.data)==null?void 0:si.route_study_info)==null?void 0:Hi.complete_rate)||0,name:"\u5E73\u5747\u5B8C\u6210\u7387"},{value:((vn=(Fn=(or=ir==null?void 0:ir.data)==null?void 0:or.route_study_info)==null?void 0:Fn.personal_complete)==null?void 0:vn.complete_rate)||0,name:"\u6700\u9AD8\u5B8C\u6210\u7387"},{value:((Ur=(pn=ir==null?void 0:ir.data)==null?void 0:pn.route_study_info)==null?void 0:Ur.grasp_rate)||0,name:"\u5E73\u5747\u638C\u63E1\u7387"},{value:((ji=(bo=(Ho=ir==null?void 0:ir.data)==null?void 0:Ho.route_study_info)==null?void 0:bo.personal_grasp)==null?void 0:ji.grasp_rate)||0,name:"\u6700\u9AD8\u638C\u63E1\u7387"}],Oa=aa=>{var pa,hn,Ar,Xo;return(aa=="\u6700\u9AD8\u5B8C\u6210\u7387"?(hn=(pa=ir==null?void 0:ir.data)==null?void 0:pa.route_study_info)==null?void 0:hn.personal_complete:(Xo=(Ar=ir==null?void 0:ir.data)==null?void 0:Ar.route_study_info)==null?void 0:Xo.personal_grasp)||[]};return{tooltip:{trigger:"item",formatter:({value:aa,name:pa})=>{var hn,Ar,Xo;return pa=="\u5E73\u5747\u5B8C\u6210\u7387"||pa=="\u5E73\u5747\u638C\u63E1\u7387"?`${pa}: <span style="margin-left:10rem;">${aa}%</span>`:`<div>
|
|
${pa}\u5B66\u751F\uFF1A<br/>
|
|
\u59D3\u540D\uFF1A${(hn=Oa(pa))==null?void 0:hn.real_name}<br/>
|
|
\u5B66\u53F7\uFF1A${(Ar=Oa(pa))==null?void 0:Ar.student_id}<br/>
|
|
\u73ED\u7EA7\uFF1A${(Xo=Oa(pa))==null?void 0:Xo.course_group_name}<br/>
|
|
</div>`}},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:{data:co.map(aa=>aa.name),axisLabel:{color:"#fff"},axisTick:{show:!1},axisLine:{show:!1}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#A4C8FC",formatter:"{value}%"},splitLine:{lineStyle:{color:"rgba(164,200,252,0.1)"}}},series:{type:"bar",data:co,barMaxWidth:"20%",itemStyle:{color:new Et.graphic.LinearGradient(0,0,0,1,[{offset:0,color:"#B2E0FF"},{offset:.5,color:"#7BC9FF"},{offset:1,color:"#0A2552"}])},label:{show:!0,position:"top",formatter:"{c}%",color:"#fff"}}}},[(rt=ir==null?void 0:ir.data)==null?void 0:rt.route_study_info]),Al=(0,Me.useMemo)(()=>{var si,Hi,or,Fn,vn,pn,Ur,Ho,bo,ji;return[{title:"\u5B66\u4E60\u603B\u4EBA\u6570",num:((Hi=(si=ir==null?void 0:ir.data)==null?void 0:si.basic_info)==null?void 0:Hi.study_count)||0,unit:"",img:rn},{title:"\u672A\u5B66\u4E60\u4EBA\u6570",num:((Fn=(or=ir==null?void 0:ir.data)==null?void 0:or.basic_info)==null?void 0:Fn.no_study_count)||0,unit:"",img:et},{title:"\u672C\u5468\u5B66\u4E60\u4EBA\u6570",num:((pn=(vn=ir==null?void 0:ir.data)==null?void 0:vn.basic_info)==null?void 0:pn.week_study_count)||0,unit:"",img:ue},{title:"\u77E5\u8BC6\u70B9\u6570",num:((Ho=(Ur=ir==null?void 0:ir.data)==null?void 0:Ur.basic_info)==null?void 0:Ho.knowledge_count)||0,unit:"",img:ce},{title:"\u8D44\u6E90\u603B\u6570",num:((ji=(bo=ir==null?void 0:ir.data)==null?void 0:bo.basic_info)==null?void 0:ji.resource_count)||0,unit:"",img:Ce}]},[(Ft=ir==null?void 0:ir.data)==null?void 0:Ft.basic_info]),We=(0,Me.useMemo)(()=>{var si,Hi,or,Fn,vn,pn,Ur,Ho,bo,ji,co,Oa;const aa=(or=(Hi=(si=ir==null?void 0:ir.data)==null?void 0:si.resource_info)==null?void 0:Hi.resource_data)==null?void 0:or.reduce((Ar=0,Xo)=>Ar+((Xo==null?void 0:Xo.num)||0),0),pa=(pn=(vn=(Fn=ir==null?void 0:ir.data)==null?void 0:Fn.resource_info)==null?void 0:vn.publish_resource_data)==null?void 0:pn.reduce((Ar=0,Xo)=>Ar+((Xo==null?void 0:Xo.num)||0),0),hn=[{title:"\u5B9E\u8BAD\u6570",node_type:"\u5B9E\u8BAD",num:0,publishNum:0,unit:"",img:je(31537),trailColor:"#202857",strokeColor:"#0676DB"},{title:"\u89C6\u9891\u6570",node_type:"\u89C6\u9891",num:0,publishNum:0,unit:"",img:je(46058),trailColor:"#202857",strokeColor:"#26A27A"},{title:"\u8BFE\u4EF6\u6570",node_type:"\u8BFE\u4EF6",num:0,publishNum:0,unit:"",img:je(71190),trailColor:"#202857",strokeColor:"#CDCB56"},{title:"\u8BD5\u5377\u6570",node_type:"\u8BD5\u5377",num:0,publishNum:0,unit:"",img:je(51889),trailColor:"#202857",strokeColor:"#C2652F"},{title:"\u4F5C\u4E1A\u6570",node_type:"\u4F5C\u4E1A",num:0,publishNum:0,unit:"",img:je(95754),trailColor:"#202857",strokeColor:"#5DC711"},{title:"\u5176\u4ED6\u7C7B\u578B",node_type:"",num:0,publishNum:0,unit:"",img:je(9490),trailColor:"#202857",strokeColor:"#4903FE"}];return{resource_data:(bo=(Ho=(Ur=ir==null?void 0:ir.data)==null?void 0:Ur.resource_info)==null?void 0:Ho.resource_data)==null?void 0:bo.map(Ar=>Ln(Mn(Mn({},(hn==null?void 0:hn.find(Xo=>(Xo==null?void 0:Xo.node_type)==(Ar==null?void 0:Ar.node_type)))||{}),Ar),{publishNum:((Ar==null?void 0:Ar.num)||0)/aa*100})),publish_resource_data:(Oa=(co=(ji=ir==null?void 0:ir.data)==null?void 0:ji.resource_info)==null?void 0:co.publish_resource_data)==null?void 0:Oa.map(Ar=>Ln(Mn(Mn({},(hn==null?void 0:hn.find(Xo=>(Xo==null?void 0:Xo.node_type)==(Ar==null?void 0:Ar.node_type)))||{}),Ar),{publishNum:((Ar==null?void 0:Ar.num)||0)/pa*100}))}},[(qe=ir==null?void 0:ir.data)==null?void 0:qe.resource_info]),ui=[{title:"\u6392\u540D",dataIndex:"test1",width:55,render:(si,Hi,or)=>Me.createElement(Me.Fragment,null,or==0||or==1||or==2?Me.createElement("img",{src:or==0?Mt:or==1?an:qt,width:12,height:14,style:{width:"12rem"}}):or+1)},{title:"\u77E5\u8BC6\u70B9\u540D\u79F0",ellipsis:!0,dataIndex:"name"},{title:"\u7ED1\u5B9A\u8D44\u6E90\u6570",ellipsis:!0,dataIndex:"resource_count"},{title:"\u5B66\u4E60\u4EBA\u6570",ellipsis:!0,dataIndex:"study_count"},{title:"\u5E73\u5747\u638C\u63E1\u7387",ellipsis:!0,dataIndex:"grasp_rate",render:si=>`${si}%`}],Si=[{title:"\u6392\u5E8F",width:80,dataIndex:"test1",render:(si,Hi,or)=>or+1},{title:"\u77E5\u8BC6\u70B9\u540D\u79F0",ellipsis:!0,dataIndex:"name"},{title:"\u5173\u8054\u8D44\u6E90\u6570",width:120,ellipsis:!0,dataIndex:"resource_count"},{title:"\u5B9E\u8BAD",width:120,ellipsis:!0,dataIndex:"shixun"},{title:"\u89C6\u9891",width:120,ellipsis:!0,dataIndex:"video"},{title:"\u8BFE\u4EF6",width:120,ellipsis:!0,dataIndex:"attachment"},{title:"\u8003\u8BD5",width:120,ellipsis:!0,dataIndex:"examination_bank"},{title:"\u4F5C\u4E1A",width:120,ellipsis:!0,dataIndex:"homework"},{title:"\u5E73\u5747\u5B8C\u6210\u7387",width:120,ellipsis:!0,dataIndex:"complete_rate",render:si=>`${si}%`},{title:"\u5E73\u5747\u638C\u63E1\u7387",width:120,ellipsis:!0,dataIndex:"grasp_rate",render:si=>`${si}%`},{title:"\u64CD\u4F5C",width:100,ellipsis:!0,dataIndex:"test11",render:(si,Hi)=>Me.createElement("a",{style:{color:"#18D6FF"},onClick:()=>{pi.set("StatisticName",Hi==null?void 0:Hi.name),(0,In.xg)(`/knowledgegraph/${Rn==null?void 0:Rn.pathId}/statistics/learningpath/${Rn==null?void 0:Rn.learningpathId}/detail/${Hi==null?void 0:Hi.id}?${pi}`)}},"\u67E5\u770B\u8BE6\u60C5")}],ms=[{title:"\u6392\u5E8F",width:80,dataIndex:"test1",render:(si,Hi,or)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?null:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",or+1," "))},{title:"\u8D44\u6E90\u540D\u79F0",ellipsis:!0,dataIndex:"name",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si," "))},{title:"\u6240\u5C5E\u77E5\u8BC6\u70B9",width:120,ellipsis:!0,dataIndex:"knowledge_name",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si," "))},{title:"\u8D44\u6E90\u7C7B\u578B",width:120,ellipsis:!0,dataIndex:"node_type",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si," "))},{title:"\u5B8C\u6210\u7387",width:120,ellipsis:!0,dataIndex:"complete_rate",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si," %"))},{title:"\u638C\u63E1\u7387",width:120,ellipsis:!0,dataIndex:"grasp_rate",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si," %"))},{title:"\u8BC4\u6D4B\u6B21\u6570",width:120,ellipsis:!0,dataIndex:"evaluate_count",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si," "))},{title:"\u89C2\u770B\u65F6\u957F",width:120,ellipsis:!0,dataIndex:"watch_time",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si," "))},{title:"\u67E5\u770B\u6B21\u6570/\u4E0B\u8F7D\u6B21\u6570",width:180,ellipsis:!0,dataIndex:"download_count",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si," "))},{title:"\u64CD\u4F5C",width:100,ellipsis:!0,dataIndex:"test11",render:(si,Hi)=>Me.createElement("a",{style:{color:"#18D6FF"},onClick:()=>{pi.set("StatisticName",encodeURIComponent(Hi==null?void 0:Hi.name)),pi.set("knowledge_name",encodeURIComponent(Hi==null?void 0:Hi.knowledge_name)),(0,In.xg)(`/knowledgegraph/${Rn==null?void 0:Rn.pathId}/statistics/learningpath/${Rn==null?void 0:Rn.learningpathId}/detail/${Hi==null?void 0:Hi.id}?${pi}`)}},"\u67E5\u770B\u8BE6\u60C5")}],Po=[{title:"\u6392\u5E8F",width:80,dataIndex:"test1",render:(si,Hi,or)=>or+1},{title:"\u59D3\u540D",ellipsis:!0,dataIndex:"name"},{title:"\u5B66\u53F7",ellipsis:!0,dataIndex:"student_id"},{title:"\u73ED\u7EA7",ellipsis:!0,dataIndex:"course_group_name"},{title:"\u77E5\u8BC6\u70B9\u638C\u63E1\u6570",ellipsis:!0,dataIndex:"knowledge_count"},{title:"\u5E73\u5747\u5B8C\u6210\u7387",ellipsis:!0,dataIndex:"complete_rate",render:si=>`${si}%`},{title:"\u5E73\u5747\u638C\u63E1\u7387",ellipsis:!0,dataIndex:"grasp_rate",render:si=>`${si}%`},{title:"\u64CD\u4F5C",width:200,ellipsis:!0,dataIndex:"test11",render:(si,Hi)=>Me.createElement("div",{className:"flex item-center gap-20px-rem"},Me.createElement("a",{style:{color:"#18D6FF"},onClick:()=>{(0,In.xg)(`/knowledgegraph/${Rn==null?void 0:Rn.pathId}/statistics/learningpath/${Rn==null?void 0:Rn.learningpathId}/detail/${Hi==null?void 0:Hi.user_id}?${pi}`)}},"\u67E5\u770B\u8BE6\u60C5"))}],Xr=[{title:"\u6392\u540D",width:80,dataIndex:"test1",render:(si,Hi,or)=>Me.createElement(Te.Z,{title:!(Hi!=null&&Hi.is_publish)&&"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}},or==0||or==1||or==2?Me.createElement("img",{src:or==0?Mt:or==1?an:qt,width:12,height:14,style:{width:"12rem"}}):or+1))},{title:"\u9636\u6BB5\u540D\u79F0",ellipsis:!0,dataIndex:"name",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si," "))},{title:"\u77E5\u8BC6\u70B9\u6570",width:100,ellipsis:!0,dataIndex:"knowledge_count",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si," "))},{title:"\u8D44\u6E90\u6570",width:100,ellipsis:!0,dataIndex:"resource_count",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si," "))},{title:"\u5E73\u5747\u638C\u63E1\u7387",width:100,ellipsis:!0,dataIndex:"grasp_rate",render:(si,Hi)=>Me.createElement(Te.Z,{title:Hi!=null&&Hi.is_publish?si:"\u6682\u672A\u53D1\u5E03"},Me.createElement("span",{style:{color:Hi!=null&&Hi.is_publish?"":"#535A6E"}}," ",si,"% "))}];return(0,Me.useEffect)(()=>{Tt&&$n(Ln(Mn({},Rn),{learningpathId:Tt}))},[Tt]),(0,Me.useEffect)(()=>{var si;Rn!=null&&Rn.learningpathId&&Cr(((si=Vr==null?void 0:Vr.route_nodes)==null?void 0:si.find(Hi=>(Hi==null?void 0:Hi.id)==(Rn==null?void 0:Rn.learningpathId)))||{})},[Rn,Vr==null?void 0:Vr.route_nodes]),(0,Me.useEffect)(()=>{Rn!=null&&Rn.learningpathId&&Or({subject_id:Rn==null?void 0:Rn.pathId,id:Rn==null?void 0:Rn.learningpathId})},[Rn==null?void 0:Rn.learningpathId]),(0,Me.useEffect)(()=>{var si;(si=ir==null?void 0:ir.data)!=null&&si.is_updating&&Ie.ZP.warning("\u5B66\u4E60\u8DEF\u5F84\u7EDF\u8BA1\u6570\u6B63\u5728\u66F4\u65B0\uFF0C\u8BF7\u7A0D\u540E\u5237\u65B0\u9875\u9762")},[(mt=ir==null?void 0:ir.data)==null?void 0:mt.is_updating]),(0,Me.useEffect)(()=>{(()=>{function si(){var Hi=document.documentElement,or=Hi.clientWidth,Fn=1920,vn=or/Fn;vn<1&&(Hi.style.fontSize="1px")}window.addEventListener("resize",si),si()})()},[]),(0,Me.useEffect)(()=>{Rn!=null&&Rn.learningpathId&&Us(Ln(Mn({},ls),{id:Rn==null?void 0:Rn.learningpathId}))},[ls,Rn==null?void 0:Rn.learningpathId]),(0,Me.useEffect)(()=>{pi&&(pi.set("StatisticType",ls==null?void 0:ls.type),pi.set("tabs","2"))},[pi,ls==null?void 0:ls.type]),Me.createElement(ze.Z,{spinning:Wr},Me.createElement("div",{className:"w-full c-white text-14px-rem flex flex-col pb-20px-rem",style:{background:"#030616",minWidth:"1900px"}},Me.createElement("div",{className:`sticky w-full px-56px-rem flex item-center gap-10px-rem ${Ze?"py-10px-rem":"pt-22px-rem pb-32px-rem"}`,style:{height:Ze?"auto":"90rem",top:Ze?"40rem":0,zIndex:1,background:`rgb(3, 6, 22) ${Ze?"":`url(${Jt})`}`,backgroundRepeat:"no-repeat",backgroundSize:"100% 100%"}},Me.createElement("img",{src:Qt,className:"current",style:{width:"66rem",height:"20rem"},onClick:()=>{yt.history.push(`/knowledgegraph/${Rn.pathId}?${pi}`)}}),Me.createElement("div",{className:"flex item-center rounded-full text-14px-rem mr-auto",style:{background:"#123269",padding:"0 0 0 20rem",gap:"10rem"}},Me.createElement("div",{className:"c-grey-eee text-nowrap "},"\u5F53\u524D\u8DEF\u5F84"),Me.createElement(Te.Z,{title:(Ai==null?void 0:Ai.name)||"",placement:"topLeft"},Me.createElement("div",{className:"multi_ellipsis1"},(Ai==null?void 0:Ai.name)||"")),Me.createElement("div",{className:`current flex item-center justify-center text-nowrap ${Bt.Z.ChangeBut}`,onClick:()=>{Ti({type:"pathsDetail/save",payload:{actionTabs:{key:"\u5207\u6362\u5B66\u4E60\u8DEF\u5F84",title:"",type:"route",currentSelectData:Ai}}})}},Me.createElement("span",{className:"iconfont icon-dingbu-qiehuanbanben",style:{fontSize:"14rem"}})," \u66F4\u6362")),((An=ir==null?void 0:ir.data)==null?void 0:An.updated_at)&&Me.createElement(Me.Fragment,null,Me.createElement("img",{src:dt,style:{width:"14rem"}}),Me.createElement("div",null,Zt()((Gn=ir==null?void 0:ir.data)==null?void 0:Gn.updated_at).format("YYYY-MM-DD HH:mm"))),Me.createElement("div",{className:`current flex item-center text-nowrap ${Bt.Z.ChangeBut}`,onClick:()=>Mi(void 0,null,function*(){const si=yield(0,ci.D$)({subject_id:Rn==null?void 0:Rn.pathId,id:Rn==null?void 0:Rn.learningpathId});(si==null?void 0:si.status)==0&&Ie.ZP.success("\u6570\u636E\u66F4\u65B0\u4E2D\uFF0C\u5927\u698210 ~ 15\u5206\u949F\u4E4B\u540E\u5237\u65B0\u9875\u9762")})}," \u66F4\u65B0")),Me.createElement("div",{className:"flex gap-20px-rem px-40px-rem py-20px-rem",style:{background:`url(${Ae})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",backgroundPosition:"center"}},Me.createElement("div",{className:"flex flex-col gap-20px-rem",style:{flex:1.5}},Me.createElement("div",{className:`${Bt.Z.DefaultDiv} p-20px-rem flex-1`},Me.createElement("div",{className:"flex item-center text-16px-rem gap-8px-rem"},Me.createElement("img",{src:It,style:{width:"9rem",height:"17rem"}}),Me.createElement("div",null,"\u5404\u9636\u6BB5\u638C\u63E1\u7387\u5360\u6BD4")),Me.createElement(xt.Z,{className:"w-full",style:{height:"240rem"},option:Fs})),Me.createElement("div",{className:`${Bt.Z.DefaultDiv} p-20px-rem gap-16px-rem flex flex-col`,style:{flex:2.5,paddingTop:0}},Me.createElement("div",{className:"flex item-center"},[{name:"\u77E5\u8BC6\u70B9\u638C\u63E1\u4F18\u79C0\u699C",img:nt,key:"good"},{name:"\u77E5\u8BC6\u70B9\u638C\u63E1\u5F85\u63D0\u5347\u699C",img:ln,key:"up"}].map(si=>Me.createElement("div",{key:si==null?void 0:si.name,className:`flex-1 py-12px-rem flex item-center justify-center current text-16px-rem gap-6px-rem
|
|
${Bt.Z.DefaultDivItem} ${zr==(si==null?void 0:si.key)?Bt.Z.DefaultDivItemActive:""}`,style:{height:"40rem"},onClick:()=>{ao(si==null?void 0:si.key)}},Me.createElement("img",{src:si==null?void 0:si.img,width:16,height:16,style:{width:"16rem"}}),si==null?void 0:si.name))),Me.createElement(Ye.default,{className:`mt-16px-rem ${Bt.Z.TableStyle} flex-1`,locale:{emptyText:Me.createElement(gn.Z,null)},columns:ui,pagination:!1,dataSource:zr=="good"?(fo=ir==null?void 0:ir.data)==null?void 0:fo.desc_knowledge_infos:(qn=ir==null?void 0:ir.data)==null?void 0:qn.asc_knowledge_infos}))),Me.createElement("div",{className:"flex-2 flex flex-col gap-20px-rem"},Me.createElement("div",{className:"flex-1 flex gap-30px-rem pt-40px-rem"},Al==null?void 0:Al.map((si,Hi)=>Me.createElement("div",{key:Hi,className:`flex-1 pb-20px-rem flex flex-col gap-10px-rem item-center ${Bt.Z.DefaultDiv}`},Me.createElement("img",{src:si==null?void 0:si.img,width:80,height:80,style:{width:"80rem",height:"80rem",marginTop:"-40rem"}}),Me.createElement("div",{className:"text-18px-rem blod",style:{color:"#72E8FF"}},si==null?void 0:si.num,si==null?void 0:si.unit),Me.createElement("div",{className:"",style:{color:"#A4C8FC"}},si==null?void 0:si.title)))),Me.createElement("div",{className:`flex-2 ${Bt.Z.DefaultDiv} relative`},Me.createElement("div",{className:"absolute flex item-center justify-center",style:{color:"#C2E0F8",height:"25rem",width:"253rem",top:0,left:"50%",transform:"translateX(-50%)",background:`url(${on})`,backgroundRepeat:"no-repeat",backgroundSize:"100% 100%"}}," \u8DEF\u5F84\u5B66\u4E60\u60C5\u51B5 "),Me.createElement(xt.Z,{className:"w-full h-full",option:ha})),Me.createElement("div",{className:`p-20px-rem ${Bt.Z.DefaultDiv}`,style:{flex:3}},Me.createElement("div",{className:"text-16px-rem"},"\u9636\u6BB5\u5B66\u4E60\u60C5\u51B5"),Me.createElement(Ye.default,{className:`mt-14px-rem ${Bt.Z.TableStyle} flex-1`,locale:{emptyText:Me.createElement(gn.Z,null)},columns:Xr,pagination:!1,dataSource:((Kn=ir==null?void 0:ir.data)==null?void 0:Kn.stage_knowledge_infos)||[]}))),Me.createElement("div",{className:"flex flex-col gap-20px-rem",style:{flex:1.5}},Me.createElement("div",{className:`p-20px-rem ${Bt.Z.DefaultDiv} flex-1 flex gap-10px-rem`},Me.createElement("div",{className:"flex-1"},Me.createElement("div",{className:"flex item-center text-16px-rem gap-8px-rem"},Me.createElement("img",{src:It,style:{width:"9rem",height:"17rem"}}),Me.createElement("div",null,"\u8D44\u6E90\u603B\u6570\u91CF")),Me.createElement("div",{className:"mt-40px-rem",style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:"25rem 10rem"}},(oi=We==null?void 0:We.resource_data)==null?void 0:oi.map((si,Hi)=>Me.createElement("div",{key:Hi,className:"flex flex-col item-center",style:{height:"84rem",background:`url(${si==null?void 0:si.img}) 0% 0% / 100% 100% no-repeat`}},Me.createElement("div",{className:"text-18px-rem blod",style:{color:"#72E8FF"}},si==null?void 0:si.num,si==null?void 0:si.unit),Me.createElement("div",{className:"text-12px-rem",style:{color:"#D7EEFF"}},si==null?void 0:si.title))))),Me.createElement("div",{className:"flex-1"},Me.createElement("div",{className:"flex item-center text-16px-rem gap-8px-rem"},Me.createElement("img",{src:It,style:{width:"9rem",height:"17rem"}}),Me.createElement("div",null,"\u5DF2\u53D1\u5E03\u8D44\u6E90\u6570")),Me.createElement("div",{className:"mt-30px-rem flex flex-col gap-12px-rem pl-20px-rem"},(Wi=We==null?void 0:We.publish_resource_data)==null?void 0:Wi.map((si,Hi)=>Me.createElement("div",{key:Hi,className:"flex flex-col gap-6px-rem"},Me.createElement("div",{className:"w-full flex item-center justify-between text-12px-rem"},Me.createElement("div",{style:{color:"#D7EEFF"}},si==null?void 0:si.title),Me.createElement("div",null,si==null?void 0:si.num)),Me.createElement(lt.Z,{className:`${Bt.Z.ProgressStyle}`,style:{marginBottom:"0",marginLeft:"0",height:"6rem"},percent:si==null?void 0:si.publishNum,showInfo:!1,trailColor:si==null?void 0:si.trailColor,strokeColor:si==null?void 0:si.strokeColor})))))),Me.createElement("div",{className:`p-20px-rem ${Bt.Z.DefaultDiv}`,style:{flex:2.5}},Me.createElement("div",{className:"flex item-center text-16px-rem gap-8px-rem"},Me.createElement("img",{src:It,style:{width:"9rem",height:"17rem"}}),Me.createElement("div",null,"\u5B66\u751F\u638C\u63E1\u7387\u6392\u884C\u699C")),Me.createElement("div",{className:"flex flex-col mt-24px-rem gap-10px-rem"},(Uo=(Nr=ir==null?void 0:ir.data)==null?void 0:Nr.student_grasp_rank_lists)==null?void 0:Uo.map((si,Hi)=>Me.createElement("div",{key:si==null?void 0:si.user_id,className:`flex item-center ${Bt.Z.RankingDiv} px-20px-rem gap-20px-rem rounded-2px-rem`,style:{height:"46rem"}},Hi==0||Hi==2||Hi==1?Me.createElement("img",{src:Hi==0?je(71463):Hi==1?je(69035):je(16065),width:34,height:34,style:{width:"34rem",height:"34rem"}}):Me.createElement("div",{className:"flex item-center justify-center",style:{width:"34rem",height:"34rem",background:`url(${je(73099)}) 0% 0% / 100% 100% no-repeat`}},Hi+1),Me.createElement("div",{className:"flex flex-2 minW-0 item-center"},Me.createElement("img",{src:`${Xn.Z.IMG_SERVER}/images/${si==null?void 0:si.avatar_url}`,width:30,height:30,className:"rounded-full",style:{width:"30rem",height:"30rem",border:"1rem solid #18D6FF"}}),Me.createElement(Te.Z,{title:si==null?void 0:si.real_name},Me.createElement("div",{className:"flex-1 minW-0 multi_ellipsis1 ml-10px-rem"},si==null?void 0:si.real_name))),Me.createElement("div",{className:"flex-1 minW-0 flex item-center"},Me.createElement(Te.Z,{title:"\u638C\u63E1\u7387"},Me.createElement("img",{src:je(39633),width:14,height:14,style:{width:"14rem",height:"14rem"}})),Me.createElement("div",{className:"flex-1 minW-0 multi_ellipsis1 ml-10px-rem"},si==null?void 0:si.grasp_rate,"%")),Me.createElement("div",{className:"flex-1 minW-0 flex item-center"},Me.createElement(Te.Z,{title:"\u5B8C\u6210\u7387"},Me.createElement("img",{src:je(31434),width:14,height:14,style:{width:"14rem",height:"14rem"}})),Me.createElement("div",{className:"flex-1 minW-0 multi_ellipsis1 ml-10px-rem"},si==null?void 0:si.complete_rate,"%")))))))),Me.createElement("div",{className:`flex item-center ${Bt.Z.NavBgTwo}`},[{title:"\u77E5\u8BC6\u70B9\u7EDF\u8BA1",key:"1"},{title:"\u8D44\u6E90\u5B66\u4E60\u7EDF\u8BA1\u8868",key:"2"},{title:"\u5B66\u751F\u5B66\u60C5\u7EDF\u8BA1\u8868",key:"3"}].map(si=>Me.createElement("div",{key:si==null?void 0:si.key,className:`flex item-center justify-center text-16px-rem h-full current
|
|
${Bt.Z.NavBgItem} ${(ls==null?void 0:ls.type)==(si==null?void 0:si.key)?Bt.Z.NavBgTwoActive:""}`,onClick:()=>{La(Ln(Mn({},ls),{type:si==null?void 0:si.key,page:1,keyword:""}))}},si==null?void 0:si.title))),Me.createElement("div",{className:"px-40px-rem flex item-center justify-between mt-10px-rem"},Me.createElement("div",{className:"text-16px-rem"},"\u5217\u8868\u8BE6\u60C5"),Me.createElement(Yn.t7,{className:Bt.Z.InputStyle,style:{background:"#0A1634"},placeholder:"\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u8FDB\u884C\u641C\u7D22",value:ls==null?void 0:ls.keyword,onChange:si=>{La(Ln(Mn({},ls),{keyword:si,page:1}))}})),Me.createElement("div",{className:`${Bt.Z.DefaultDiv} ml-40px-rem mr-40px-rem p-20px mt-10px-rem`,style:{background:`url(${Ae})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",backgroundPosition:"center"}},Me.createElement(Ye.default,{className:`${Bt.Z.TableStyle}`,loading:ss,locale:{emptyText:Me.createElement(gn.Z,null)},columns:(ls==null?void 0:ls.type)=="1"?Si:(ls==null?void 0:ls.type)=="2"?ms:Po,dataSource:(as==null?void 0:as.data)||[],pagination:{total:(as==null?void 0:as.total_count)||0,onChange:(si,Hi)=>{La(Ln(Mn({},ls),{page:si,limit:Hi}))},current:ls==null?void 0:ls.page,pageSize:ls==null?void 0:ls.limit}})),(lo==null?void 0:lo.key)&&Me.createElement(kt.E_,{type:"route",isCustom:!0,open:(lo==null?void 0:lo.key)=="\u5207\u6362\u5B66\u4E60\u8DEF\u5F84",title:"\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84",currentSeleteData:Ai,onFinish:si=>{yt.history.push(`/knowledgegraph/${Rn==null?void 0:Rn.pathId}/statistics/learningpath/${si==null?void 0:si.selectId}?${pi}`)}})))};var en=(0,yt.connect)(({pathsDetail:Ti})=>({pathsDetail:Ti}))(ni)},47125:function(Cn,Ei,je){"use strict";je.d(Ei,{E_:function(){return xt},DZ:function(){return $t},NI:function(){return Yn}});var Me=je(62957),yt=je(6767),Jt=je(25399),Qt=je(62673),It=je(28284),dt=je(37568),Mt=je(82326),an=je(47889),qt=je(71411),nt=je(59301),ln=je(25690),rn={ItemDom:"ItemDom___gJ4Dc"},on=je(45937),et=je(36714),ue=Object.defineProperty,ce=Object.defineProperties,Ce=Object.getOwnPropertyDescriptors,Ae=Object.getOwnPropertySymbols,Te=Object.prototype.hasOwnProperty,Ie=Object.prototype.propertyIsEnumerable,ze=(gn,Jn,ci)=>Jn in gn?ue(gn,Jn,{enumerable:!0,configurable:!0,writable:!0,value:ci}):gn[Jn]=ci,Ye=(gn,Jn)=>{for(var ci in Jn||(Jn={}))Te.call(Jn,ci)&&ze(gn,ci,Jn[ci]);if(Ae)for(var ci of Ae(Jn))Ie.call(Jn,ci)&&ze(gn,ci,Jn[ci]);return gn},lt=(gn,Jn)=>ce(gn,Ce(Jn)),Bt=(gn,Jn,ci)=>new Promise((Xn,In)=>{var hi=Hn=>{try{At(ci.next(Hn))}catch(_i){In(_i)}},Ht=Hn=>{try{At(ci.throw(Hn))}catch(_i){In(_i)}},At=Hn=>Hn.done?Xn(Hn.value):Promise.resolve(Hn.value).then(hi,Ht);At((ci=ci.apply(gn,Jn)).next())});const kt=({dispatch:gn,pathsDetail:Jn,currentSeleteData:ci,onFinish:Xn,open:In,title:hi,type:Ht,isCustom:At})=>{var Hn;const _i=(0,ln.useParams)(),{detail:dr}=Jn,[En,Mn]=(0,nt.useState)(ci==null?void 0:ci.id),[,Ln,Mi]=(0,on.U)(et.mE,{subject_id:_i==null?void 0:_i.pathId,type:Ht});return nt.createElement(Me.default,{open:In,width:1078,destroyOnClose:!0,closeIcon:ci!=null&&ci.id?"":null,centered:!0,maskClosable:!1,keyboard:!1,confirmLoading:Ln,title:hi,cancelButtonProps:{style:{display:ci!=null&&ci.id?"inline-block":"none"}},onCancel:()=>{ci!=null&&ci.id&&gn({type:"pathsDetail/save",payload:{actionTabs:{key:""}}})},onOk:()=>Bt(void 0,null,function*(){var Rt;if(!En){yt.ZP.warning(`\u8BF7\u5148\u9009\u62E9${Ht=="goal"?"\u80FD\u529B\u56FE\u8C31":"\u5B66\u4E60\u8DEF\u5F84"}`);return}let ni;At||(ni=yield Mi({type:Ht,subject_id:_i==null?void 0:_i.pathId,id:En})),((ni==null?void 0:ni.status)==0||At)&&((Rt=yt.ZP)==null||Rt.success(`${Ht=="goal"?"\u80FD\u529B\u56FE\u8C31":"\u5B66\u4E60\u8DEF\u5F84"}\u9009\u62E9\u6210\u529F\uFF01`),gn({type:"pathsDetail/save",payload:{actionTabs:{key:""}}}),Xn==null||Xn({selectId:En}))})},nt.createElement("div",{className:"flex flex-col gap-16px-rem p-4px-rem",style:{overflow:"auto",maxHeight:"60vh"}},(Hn=Ht=="goal"?dr==null?void 0:dr.ability_goals:dr==null?void 0:dr.route_nodes)==null?void 0:Hn.map(Rt=>{var ni;return nt.createElement("div",{key:Rt==null?void 0:Rt.id,className:`flex flex-col px-20px-rem py-14px-rem rounded-4px-rem ${(ni=rn)==null?void 0:ni.ItemDom}`},nt.createElement("div",{className:"flex item-center gap-10px-rem"},nt.createElement(Jt.Z,{title:Rt==null?void 0:Rt.name},nt.createElement("div",{className:"text-500 text-16px-rem multi_ellipsis1 flex-1 minW-0",style:{color:"#232B40"}},Rt==null?void 0:Rt.name)),nt.createElement(Qt.default,{className:"ml-auto",checked:En===(Rt==null?void 0:Rt.id),onChange:en=>{Mn(en.target.checked?Rt==null?void 0:Rt.id:null)}})),nt.createElement("div",{className:"flex item-center gap-12px-rem text-14px-rem",style:{marginTop:"14rem"}},nt.createElement("div",{className:"text-end w-64px-rem",style:{color:"#9096A3"}},"\u9002\u7528\u4EBA\u7FA4"),nt.createElement("div",{style:{color:"#232B40"}},(Rt==null?void 0:Rt.applicable_people)||"--")),nt.createElement("div",{className:"flex item-center gap-12px-rem text-14px-rem",style:{marginTop:"12rem"}},nt.createElement("div",{className:"text-end w-64px-rem",style:{color:"#9096A3"}},"\u7B80\u4ECB"),nt.createElement(Jt.Z,{title:Rt==null?void 0:Rt.description,placement:"topLeft"},nt.createElement("div",{className:"multi_ellipsis1 flex-1 minW-0",style:{color:"#232B40"}},(Rt==null?void 0:Rt.description)||"--"))))})))},xt=(0,ln.connect)(({pathsDetail:gn})=>({pathsDetail:gn}))(kt),Et=({pathsDetail:gn,dispatch:Jn,onFinish:ci,currentSeleteData:Xn={}})=>{const{actionTabs:In,detail:hi}=gn,Ht=(0,ln.useParams)(),[At]=It.default.useForm(),[,Hn,_i]=(0,on.U)(et.wv,{subject_id:Ht==null?void 0:Ht.pathId}),[,dr,En]=(0,on.U)(et.EG,{subject_id:Ht==null?void 0:Ht.pathId});return(0,nt.useEffect)(()=>{(In==null?void 0:In.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31"&&At.setFieldsValue(Ye({},Xn))},[Xn,In]),nt.createElement(Me.default,{open:(In==null?void 0:In.key)=="\u65B0\u5EFA\u80FD\u529B\u56FE\u8C31"||(In==null?void 0:In.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31",width:700,centered:!0,confirmLoading:Hn||dr,destroyOnClose:!0,title:In==null?void 0:In.key,onCancel:()=>{Jn({type:"pathsDetail/save",payload:{actionTabs:{key:""}}}),At.resetFields()},okText:(In==null?void 0:In.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31"?"\u786E\u5B9A\u4FEE\u6539":"\u786E\u8BA4\u65B0\u5EFA",onOk:()=>Bt(void 0,null,function*(){At.submit()})},nt.createElement(It.default,{form:At,preserve:!1,labelCol:{span:4},labelAlign:"right",size:"large",colon:!1,onFinish:Mn=>Bt(void 0,null,function*(){const Ln=yield((In==null?void 0:In.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31"?En:_i)(lt(Ye({},Mn),{subject_id:Ht==null?void 0:Ht.pathId}));(Ln==null?void 0:Ln.status)==0&&(yt.ZP.success((In==null?void 0:In.key)=="\u7F16\u8F91\u80FD\u529B\u56FE\u8C31"?"\u4FEE\u6539\u6210\u529F":"\u521B\u5EFA\u6210\u529F"),At.resetFields(),Jn({type:"pathsDetail/save",payload:{actionTabs:{key:""}}}),ci==null||ci())})},nt.createElement(It.default.Item,{name:"id",hidden:!0}),nt.createElement(It.default.Item,{name:"name",label:"\u540D\u79F0",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u540D\u79F0"},{whitespace:!0,message:"\u8F93\u5165\u540D\u79F0\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"}]},nt.createElement(dt.default,{placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0",maxLength:20,showCount:!0})),nt.createElement(It.default.Item,{name:"knowledge_graph_route_id",label:"\u5173\u8054\u5B66\u4E60\u8DEF\u5F84",rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84"}]},nt.createElement(Mt.default,{showSearch:!0,optionFilterProp:"name",fieldNames:{label:"name",value:"id"},placeholder:"\u8BF7\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84",options:(hi==null?void 0:hi.route_nodes)||[]})),nt.createElement(It.default.Item,{name:"applicable_people",label:"\u9002\u7528\u4EBA\u7FA4"},nt.createElement(dt.default,{placeholder:"\u8BF7\u8F93\u5165\u9002\u7528\u4EBA\u7FA4",maxLength:50,showCount:!0})),nt.createElement(It.default.Item,{name:"description",label:"\u7B80\u4ECB"},nt.createElement(dt.default.TextArea,{rows:4,placeholder:"\u8BF7\u8F93\u5165\u7B80\u4ECB",maxLength:200,showCount:!0}))))},$t=(0,ln.connect)(({pathsDetail:gn})=>({pathsDetail:gn}))(Et),Zt=({pathsDetail:gn,onFinish:Jn,dispatch:ci,type:Xn})=>{var In,hi,Ht;const{actionTabs:At,detail:Hn}=gn,_i=(0,ln.useParams)(),[dr]=It.default.useForm(),En=It.default.useWatch("uuid",dr),Mn=It.default.useWatch("send_route",dr),[Ln,Mi]=(0,nt.useState)(!1),[Rt,ni]=(0,nt.useState)(null),[,en,Ti,Lr]=(0,on.U)(et.O9,{type:Xn,subject_id:_i==null?void 0:_i.pathId}),[,,Tt,Ze]=(0,on.U)(et.Ho,{subject_id:_i==null?void 0:_i.pathId}),[,Ge,rt]=(0,on.U)(et.zc,{subject_id:_i==null?void 0:_i.pathId,type:Xn}),[Ft,qe]=(0,nt.useState)({}),mt=(...An)=>Bt(void 0,[...An],function*(Gn=dr.getFieldsValue()){const fo=yield rt(lt(Ye({},Gn),{repeat_names:Lr==null?void 0:Lr.repeat_names,is_cover:Rt,subject_id:_i==null?void 0:_i.pathId,type:Xn}));(fo==null?void 0:fo.status)==0&&(yt.ZP.success("\u53D1\u9001\u6210\u529F"),Jn==null||Jn(),ci({type:"pathsDetail/save",payload:{actionTabs:{key:""}}}),Mi(!1),dr.resetFields())});return(0,nt.useEffect)(()=>{var An;dr.setFieldsValue(Ye({},(An=At==null?void 0:At.params)==null?void 0:An.data))},[At]),(0,nt.useEffect)(()=>{Tt({subject_id:_i==null?void 0:_i.pathId})},[]),(0,nt.useEffect)(()=>{var An;En&&qe(((An=Hn==null?void 0:Hn.nodes)==null?void 0:An.find(Gn=>(Gn==null?void 0:Gn.uuid)==En))||{})},[En]),nt.createElement(nt.Fragment,null,nt.createElement(Me.default,{open:(At==null?void 0:At.key)=="\u53D1\u9001\u81F3\u6559\u5B66\u8BFE\u5802",width:670,centered:!0,destroyOnClose:!0,confirmLoading:en||Ge,title:At==null?void 0:At.key,onCancel:()=>{ci({type:"pathsDetail/save",payload:{actionTabs:{key:""}}}),dr.resetFields()},okText:"\u786E\u8BA4\u53D1\u9001",onOk:()=>Bt(void 0,null,function*(){dr.submit()})},nt.createElement(It.default,{preserve:!1,form:dr,labelCol:{span:3},labelAlign:"right",size:"large",colon:!1,onValuesChange:An=>{"uuid"in An&&dr.setFieldsValue({ids:[]})},onFinish:An=>Bt(void 0,null,function*(){console.log("allvalue",An);const Gn=yield Ti(lt(Ye({},An),{name:Ft==null?void 0:Ft.name,subject_id:_i==null?void 0:_i.pathId}));if((Gn==null?void 0:Gn.status)==0&&(Gn!=null&&Gn.is_repeat)){Mi(!0);return}yield mt(An)})},nt.createElement(It.default.Item,{name:"course_id",label:"\u6559\u5B66\u8BFE\u5802",required:!1,rules:[{required:!0,message:"\u8BF7\u9009\u62E9\u6559\u5B66\u8BFE\u5802"}]},nt.createElement(Mt.default,{showSearch:!0,optionFilterProp:"name",fieldNames:{label:"name",value:"id"},placeholder:"\u8BF7\u9009\u62E9\u6559\u5B66\u8BFE\u5802",options:(Ze==null?void 0:Ze.data)||[]})),Xn=="knowledge"?nt.createElement(It.default.Item,{name:"uuid",label:"\u77E5\u8BC6\u56FE\u8C31"},nt.createElement(an.ZP.Group,{options:((hi=((In=Hn==null?void 0:Hn.nodes)==null?void 0:In.length)>1?Hn==null?void 0:Hn.nodes.slice(1):[])==null?void 0:hi.map(An=>({label:An==null?void 0:An.name,value:An==null?void 0:An.uuid})))||[]})):nt.createElement(It.default.Item,{name:"ids",label:Xn=="goal"?"\u80FD\u529B\u56FE\u8C31":"\u5B66\u4E60\u8DEF\u5F84",required:!1,rules:[{required:!0,message:`\u8BF7\u9009\u62E9${Xn=="goal"?"\u80FD\u529B\u56FE\u8C31":"\u5B66\u4E60\u8DEF\u5F84"}`}]},nt.createElement(Qt.default.Group,{options:((Ht=(Xn=="goal"?Hn==null?void 0:Hn.ability_goals:Hn==null?void 0:Hn.route_nodes)||[])==null?void 0:Ht.map(An=>({label:An==null?void 0:An.name,value:(An==null?void 0:An.id)||(An==null?void 0:An.uuid)})))||[]})),Xn=="knowledge"?nt.createElement(nt.Fragment,null,nt.createElement("div",{className:"flex pl-64px-rem"},nt.createElement(It.default.Item,{name:"send_route",label:" ",valuePropName:"checked"},nt.createElement(qt.Z,null)),nt.createElement("div",{style:{lineHeight:"40px"}},"\u540C\u6B65\u53D1\u9001\uFF08\u5F00\u542F\u540E\uFF0C\u5C06\u56FE\u8C31\u4E2D\u5BF9\u5E94\u7684\u5B66\u4E60\u8DEF\u5F84\u53D1\u9001\u5230\u6559\u5B66\u8BFE\u5802\u4E2D\uFF09")),nt.createElement(It.default.Item,{name:"ids",label:" ",required:!1,rules:[{required:Mn,message:"\u8BF7\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84"}]},nt.createElement(Mt.default,{showSearch:!0,mode:"multiple",optionFilterProp:"name",fieldNames:{label:"name",value:"id"},placeholder:"\u8BF7\u9009\u62E9\u5B66\u4E60\u8DEF\u5F84",options:(Ft==null?void 0:Ft.routes)||[]}))):nt.createElement("div",{className:"flex item-center gap-10px-rem",style:{color:"#FF8C29"}},nt.createElement("span",{className:"iconfont icon-tishi7"}),Xn=="goal"&&nt.createElement("span",null,"\u53D1\u9001\u80FD\u529B\u56FE\u8C31\u81F3\u6559\u5B66\u8BFE\u5802\u65F6\uFF0C\u4F1A\u540C\u6B65\u5C06\u80FD\u529B\u56FE\u8C31\u4E2D\u5173\u8054\u7684\u5B66\u4E60\u8DEF\u5F84\u548C\u77E5\u8BC6\u56FE\u8C31\u540C\u6B65\u53D1\u9001\u5230\u8BFE\u5802"),Xn=="route"&&nt.createElement("span",null,"\u53D1\u9001\u5B66\u4E60\u8DEF\u5F84\u81F3\u6559\u5B66\u8BFE\u5802\u65F6\uFF0C\u4F1A\u540C\u6B65\u5C06\u77E5\u8BC6\u56FE\u8C31\u540C\u6B65\u53D1\u9001\u5230\u8BFE\u5802")))),nt.createElement(Me.default,{open:Ln,title:"\u56FE\u8C31\u540D\u79F0\u91CD\u590D",width:346,destroyOnClose:!0,centered:!0,confirmLoading:Ge,onCancel:()=>{Mi(!1),ni(null)},okButtonProps:{disabled:Rt==null},onOk:()=>Bt(void 0,null,function*(){yield mt()})},nt.createElement("div",{className:"flex flex-col"},Xn=="goal"?nt.createElement("div",null,"\u6559\u5B66\u8BFE\u5802\u4E2D\u5DF2\u5B58\u5728\u540C\u540D\u56FE\u8C31\uFF0C\u8BF7\u786E\u8BA4\u662F\u5426\u8986\u76D6?"):nt.createElement("div",null,"\u6559\u5B66\u8BFE\u5802\u4E2D\u5DF2\u5B58\u5728\u540C\u540D\u56FE\u8C31\u6216\u5B66\u4E60\u8DEF\u5F84\uFF0C\u8BF7\u786E\u8BA4\u662F\u5426\u8986\u76D6"),nt.createElement(an.ZP.Group,{className:"mt-14px-rem",value:Rt,onChange:An=>{ni(An.target.value)},options:[{label:"\u8986\u76D6",value:!0},{label:"\u4E0D\u8986\u76D6\uFF08\u6309\u7167\u65E5\u671F\u91CD\u547D\u540D\uFF09",value:!1}]}))))},Yn=(0,ln.connect)(({pathsDetail:gn})=>({pathsDetail:gn}))(Zt)},81428:function(Cn,Ei,je){"use strict";je.d(Ei,{AL:function(){return ze},Iy:function(){return ln},Qv:function(){return et},ez:function(){return Ie},jb:function(){return rn}});var Me=je(32834),yt=je.n(Me),Jt=je(11690),Qt=je.n(Jt);let It=1;function dt(xt,Et){const $t=xt.match(/^(\s+)(?:```)/);if($t===null)return Et;const Zt=$t[1];return Et.split(`
|
|
`).map(Yn=>{const gn=Yn.match(/^\s+/);if(gn===null)return Yn;const[Jn]=gn;return Jn.length>=Zt.length?Yn.slice(Zt.length):Yn}).join(`
|
|
`)}let Mt=[],an=["<ul>"];const qt=new(yt()).Renderer,nt=/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/;function ln(){Mt.length=0,an=["<ul>"]}const rn={overflow:"hidden",WebkitBoxOrient:"vertical",display:"-webkit-box",WebkitLineClamp:2};function on(xt,Et,$t,Zt){if(Et>=xt.length||xt[Et].level<=$t)return Et;var Yn=xt[Et];Zt.push("<li><a href='#"+It+Yn.anchor+"'>"+Yn.text+"</a>"),Et++;var gn=[];return Et=on(xt,Et,Yn.level,gn),gn.length>0&&(Zt.push("<ul>"),gn.forEach(function(Jn){Zt.push(Jn)}),Zt.push("</ul>")),Zt.push("</li>"),Et=on(xt,Et,$t,Zt),Et}function et(){return on(Mt,0,0,an),an.push("</ul>"),an.join("")}const ue={heading(xt){const Et=nt.exec(xt);if(It+=1,Et)return{type:"heading",raw:Et[0],depth:Et[1].length,text:Et[2]}},fences(xt){const Et=this.rules.block.fences.exec(xt);if(Et){const $t=Et[0];let Zt=dt($t,Et[3]||"");const Yn=Et[2]?Et[2].trim():Et[2];if(["latex","katex","math"].indexOf(Yn)>=0){const gn=Ae(),Jn=Zt;Zt=gn,Te[gn]={type:"block",expression:Jn}}return{type:"code",raw:$t,lang:Yn,text:Zt}}}},ce=/(?:\${2})([^\n`]+?)(?:\${2})/gi;let Ce=0;const Ae=()=>`__special_katext_id_${Ce++}__`;let Te={};function Ie(){return Te}function ze(){Ce=0,Te={}}function Ye(xt){return xt=xt.replace(ce,(Et,$t)=>{const Zt=Ae();return Te[Zt]={type:"inline",expression:$t},Zt}),xt}const lt=qt.listitem;qt.listitem=function(xt){return lt(Ye(xt))};const Bt=qt.paragraph;qt.paragraph=function(xt){return Bt(Ye(xt))};const kt=qt.tablecell;qt.tablecell=function(xt,Et){return kt(Ye(xt),Et)},qt.code=function(xt,Et,$t){const Zt=(Et||"").match(/\S*/)[0];return Zt?["latex","katex","math"].indexOf(Zt)>=0?`<p class='editormd-tex'>${xt}</p>`:`<pre class="prettyprint linenums"><code class="language-${Et}">${$t?xt:(0,Jt.escape)(xt,!0)}</code></pre>
|
|
`:'<pre class="prettyprint linenums"><code>'+($t?xt:(0,Jt.escape)(xt,!0))+"</code></pre>"},qt.heading=function(xt,Et,$t){let Zt=this.options.headerPrefix+$t.toLowerCase().replace(/[^\w\\u4e00-\\u9fa5]]+/g,"-");return Mt.push({anchor:Zt,level:Et,text:xt}),"<h"+Et+' id="'+It+Zt+'">'+xt+"</h"+Et+">"},yt().setOptions({silent:!0,gfm:!0,pedantic:!1}),yt().use({tokenizer:ue,renderer:qt}),Ei.ZP=yt()},40197:function(Cn,Ei,je){"use strict";je.d(Ei,{rX:function(){return Ye},pW:function(){return lt},gy:function(){return Bt},xY:function(){return ze},O5:function(){return Ie},hs:function(){return ce},tJ:function(){return et},o1:function(){return ue},Rd:function(){return Te}});var Me=je(25690),yt=je(62957),Jt=je(37285),Qt=je(6767),It=je(48790),dt=je(51257),Mt=je(87169),an=je(25510),qt="data:image/png;base64,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",nt=je.p+"static/newqrcode.a8740efb.png",ln=je(32637),rn=je(59301),on=(kt,xt,Et)=>new Promise(($t,Zt)=>{var Yn=ci=>{try{Jn(Et.next(ci))}catch(Xn){Zt(Xn)}},gn=ci=>{try{Jn(Et.throw(ci))}catch(Xn){Zt(Xn)}},Jn=ci=>ci.done?$t(ci.value):Promise.resolve(ci.value).then(Yn,gn);Jn((Et=Et.apply(kt,xt)).next())});const et=(kt,xt=!1,Et=!1,$t="",Zt=!1)=>!!(ue(kt)&&Ce(kt,xt,Et,$t,Zt)),ue=kt=>(0,It.bg)()?!0:(kt({type:"user/showPopLogin",payload:{showPopLogin:!0,showClosable:!0}}),!1),ce=kt=>{var xt,Et,$t;const{user:Zt}=(0,Me.getDvaApp)()._store.getState();(0,It.bg)()&&!((Et=(xt=Zt==null?void 0:Zt.userInfo)==null?void 0:xt.course)!=null&&Et.course_public)&&!(($t=Zt==null?void 0:Zt.userInfo)!=null&&$t.profile_completed)&&kt({type:"user/showUpdateProfilePanel",payload:{showUpdateProfilePanel:!0,showClosable:!0,backurl:"/account/profile/edit",isCurrentPage:!0}})},Ce=(kt,xt=!1,Et=!0,$t="",Zt=!1)=>{var Yn;const{user:gn}=(0,Me.getDvaApp)()._store.getState();return(Yn=gn.userInfo)!=null&&Yn.profile_completed?!0:(Et?kt({type:"user/showUpdateProfilePanel",payload:{showUpdateProfilePanel:!0,showClosable:!0,backurl:$t,isCurrentPage:Zt}}):yt.default.confirm({title:"\u63D0\u793A",width:530,centered:!0,content:"\u60A8\u9700\u8981\u53BB\u5B8C\u5584\u60A8\u7684\u4E2A\u4EBA\u8D44\u6599\uFF0C\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD",okText:"\u7ACB\u5373\u5B8C\u5584",cancelText:"\u7A0D\u540E\u5B8C\u5584",onOk:()=>{(0,dt.xg)("/account/profile/edit"),Ae()}}),!1)},Ae=()=>{yt.default.success({title:"\u63D0\u793A",width:430,closable:!0,centered:!0,content:"\u5DF2\u5B8C\u5584\u4E2A\u4EBA\u8D44\u6599\uFF1F\u8BF7\u5237\u65B0\u9875\u9762",okText:"\u7ACB\u5373\u5237\u65B0",icon:null,onOk:()=>{location.reload()}})},Te=()=>{yt.default.warning({title:"\u63D0\u793A",icon:null,width:400,content:rn.createElement("div",{style:{textAlign:"center"}},rn.createElement("div",{style:{color:"#191919",fontSize:14,marginBottom:15,textAlign:"left"}},"\u8001\u5E08\u60A8\u597D\uFF0C\u60A8\u7684\u8BFE\u5802\u8BD5\u7528\u671F\u5DF2\u7ED3\u675F\uFF0C\u76F8\u5173\u529F\u80FD\u88AB\u9650\u5236\u3002 \u5982\u9700\u7EE7\u7EED\u4F7F\u7528\uFF0C\u8BF7\u5C3D\u5FEB\u5BF9\u63A5\u4EBA\u5DE5\u652F\u6301\uFF01"),rn.createElement("img",{style:{border:"1px solid #D8E3E9",width:190,height:180},src:ln}),rn.createElement("div",{style:{color:"#666666",fontSize:14,marginTop:15}},"\u6DFB\u52A0\u5BA2\u670D\u4EBA\u5458\u5FAE\u4FE1\uFF0C\u83B7\u5F97\u66F4\u591A\u652F\u6301"))})},Ie=()=>{var kt;const{user:xt}=(0,Me.getDvaApp)()._store.getState();return(kt=xt.userInfo)!=null&&kt.professional_certification?!0:(yt.default.confirm({title:"\u63D0\u793A",centered:!0,content:rn.createElement("div",{className:"tc"},"\u60A8\u9700\u8981\u53BB\u5B8C\u6210\u60A8\u7684\u804C\u4E1A\u8BA4\u8BC1\uFF0C\u624D\u80FD\u4F7F\u7528\u6B64\u529F\u80FD"),okText:"\u7ACB\u5373\u5B8C\u5584",cancelText:"\u7A0D\u540E\u5B8C\u5584",onOk:()=>{(0,dt.xg)("/account/certification")}}),!1)},ze=()=>(0,It.V9)()?!0:(yt.default.warning({centered:!0,width:530,title:"\u63D0\u793A",content:rn.createElement("div",{className:"tc",style:{marginLeft:-38}},rn.createElement("p",null,"\u626B\u7801\u52A0\u5934\u6B4C\u52A9\u6559\uFF0C\u7533\u8BF7\u64CD\u4F5C\u6743\u9650"),rn.createElement("img",{src:nt,width:200})),okText:"\u6211\u77E5\u9053\u4E86",maskClosable:!0}),!1),Ye=(kt,xt)=>kt?!0:(yt.default.confirm({centered:!0,zIndex:1e4,width:530,title:"\u63D0\u793A",content:rn.createElement("div",null,rn.createElement("p",null,xt||"\u8BE5\u5B9E\u8DF5\u8D44\u6E90\u9700\u6388\u6743\u540E\u624D\u53EF\u4F7F\u7528\u3002 \u60A8\u53EF\u4EE5\u5728QQ\u670D\u52A1\u7FA4\u5411\u7BA1\u7406\u5458\u7533\u8BF7\uFF0C\u83B7\u5F97\u7EE7\u7EED\u64CD\u4F5C\u7684\u6743\u9650\u3002"),rn.createElement("div",{style:{marginLeft:"110px"}},rn.createElement("img",{src:qt,width:200}),rn.createElement("div",{style:{marginLeft:"35px"}},"\u7FA4\u53F7\uFF1A","714336072"))),okText:"\u7ACB\u5373\u8054\u7CFB",cancelText:"\u53D6\u6D88",onOk:()=>{(0,dt.xg)("https://qm.qq.com/cgi-bin/qm/qr?k=tIyDPXUtE0yEk-MOJxhH55lTUJS-nYAM&jump_from=webapi")}}),!1),lt=kt=>{yt.default.info({title:"\u8054\u7CFB\u5E73\u53F0\u8FD0\u8425",icon:null,width:615,centered:!0,content:rn.createElement("div",null,rn.createElement("div",null,rn.createElement("p",{style:{color:"#191919",fontWeight:400,fontSize:14}},"\u201C\u4FDD\u5B58\u5B9E\u9A8C\u4E34\u65F6\u6570\u636E\u201D\u529F\u80FD\u4E3A\u4ED8\u8D39\u529F\u80FD\uFF0C\u8BF7\u8054\u7CFB\u5E73\u53F0\u8FD0\u8425\u8FDB\u884C\u5F00\u901A\u3002"),rn.createElement(Jt.Z,null),rn.createElement("p",{style:{color:"#666666",fontSize:12}}," ",rn.createElement("span",{style:{display:"inline-flex",width:14,height:14,borderRadius:2,background:"#F3F3F3",justifyContent:"center",color:"#666666",fontSize:12,lineHeight:"14px",marginRight:8}},"1")," \u56E0\u5E73\u53F0\u7684\u5B9E\u9A8C\u6570\u636E\u50A8\u5B58\u5BB9\u91CF\u548C\u6210\u672C\u6D88\u8017\u8F83\u5927\uFF0C\u5B9E\u8DF5\u9879\u76EE\u9ED8\u8BA4\u4FDD\u5B58\u5B9E\u9A8C\u73AF\u5883\u4E2D\u4E34\u65F6\u6570\u636E ",rn.createElement("a",null,kt),"\u5929\u3002"),rn.createElement("p",{style:{color:"#666666",fontSize:12}}," ",rn.createElement("span",{style:{display:"inline-flex",width:14,height:14,borderRadius:2,background:"#F3F3F3",justifyContent:"center",color:"#666666",fontSize:12,lineHeight:"14px",marginRight:8}},"2"),"\u82E5\u60A8\u9700\u8981\u4E2A\u6027\u5316\u7684\u6570\u636E\u4FDD\u5B58\u5468\u671F\u670D\u52A1\uFF0C\u6211\u4EEC\u53EF\u4EE5\u63D0\u4F9B\u76F8\u5173\u6280\u672F\u652F\u6301\uFF0C\u5E76\u6839\u636E\u60A8\u7684\u9700\u6C42\u6536\u53D6\u5B9A\u5236\u8D39\u7528\u3002")),rn.createElement("div",{style:{textAlign:"center",marginTop:30}},rn.createElement("img",{style:{border:"4px solid #0152d9",borderRadius:"4px"},src:an,alt:"\u4E8C\u7EF4\u7801",width:160})))})},Bt=(kt,xt="")=>{const{shixunsDetail:{detail:Et}}=(0,Me.getDvaApp)()._store.getState();if((Et==null?void 0:Et.public)===2||(Et==null?void 0:Et.public)===1||(Et==null?void 0:Et.shixun_status)===3){let $t="";return(Et==null?void 0:Et.public)===2&&($t="\u5DF2\u516C\u5F00"),(Et==null?void 0:Et.public)===1&&($t="\u5F85\u5BA1\u6838"),(Et==null?void 0:Et.shixun_status)===3&&($t="\u5DF2\u5173\u95ED"),yt.default.info({centered:!0,icon:rn.createElement(Mt.Z,{style:{color:"#faad14"}}),width:460,title:"\u63D0\u793A",content:rn.createElement("div",{className:"tc",style:{marginLeft:-38}},rn.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start",paddingLeft:38,margin:"12px 0"}},rn.createElement("span",null,"\u8BE5\u5B9E\u8DF5\u9879\u76EE\u7684\u72B6\u6001\u4E3A",$t,"\uFF0C",xt,"\u3002"),rn.createElement("p",null,"\u5982\u6709\u9700\u8981\uFF0C\u8BF7\u8054\u7CFB\u5E73\u53F0\u7BA1\u7406\u5458\u8FDB\u884C\u6280\u672F\u652F\u6301\u3002")),rn.createElement("img",{style:{border:"4px solid #0152d9",borderRadius:"4px"},src:an,alt:"\u4E8C\u7EF4\u7801",width:160})),okText:"\u6211\u77E5\u9053\u4E86"}),!0}return(Et==null?void 0:Et.shixun_status)===2?(yt.default.confirm({centered:!0,icon:rn.createElement(Mt.Z,null),title:"\u63D0\u793A",content:rn.createElement("div",null,rn.createElement("span",null,"\u8BE5\u5B9E\u8DF5\u9879\u76EE\u5DF2\u53D1\u5E03\uFF0C",xt,"\u3002"),rn.createElement("br",null),rn.createElement("span",null,"\u5982\u6709\u9700\u8981\uFF0C\u60A8\u53EF\u4EE5\u64A4\u9500\u53D1\u5E03\u540E\uFF0C\u518D\u8FDB\u884C\u64CD\u4F5C\u3002")),okText:"\u64A4\u9500\u53D1\u5E03",cancelText:"\u53D6\u6D88",onOk:()=>{yt.default.confirm({width:440,centered:!0,icon:rn.createElement(Mt.Z,{style:{color:"#faad14"}}),title:"\u63D0\u793A",content:"\u64A4\u9500\u53D1\u5E03\u540E\uFF0C\u5B66\u5458\u5C06\u65E0\u6CD5\u8FDB\u884C\u7EC3\u4E60\u3002\u662F\u5426\u786E\u8BA4\u64A4\u9500\u53D1\u5E03\uFF1F",okText:"\u786E\u5B9A\u64A4\u9500\u53D1\u5E03",cancelText:"\u53D6\u6D88",onOk:()=>on(void 0,null,function*(){(yield kt({type:"shixunsDetail/cancelRelease",payload:{id:Et==null?void 0:Et.identifier}})).status!==401&&(Qt.ZP.success("\u64A4\u9500\u53D1\u5E03\u6210\u529F\u3002\u5B9E\u8BAD\u56DE\u5230\u672A\u53D1\u5E03\u7684\u72B6\u6001\u3002"),kt({type:"shixunsDetail/getShixunsDetail",payload:{id:Et==null?void 0:Et.identifier}}),kt({type:"practiceSetting/getCommonData",payload:{id:Et==null?void 0:Et.identifier}}))})})}}),!0):!1}},99498:function(Cn,Ei,je){(function(Me){Me(je(89780))})(function(Me){Me.defineOption("placeholder","",function(an,qt,nt){var ln=nt&&nt!=Me.Init;if(qt&&!ln)an.on("blur",It),an.on("change",dt),an.on("swapDoc",dt),Me.on(an.getInputField(),"compositionupdate",an.state.placeholderCompose=function(){Qt(an)}),dt(an);else if(!qt&&ln){an.off("blur",It),an.off("change",dt),an.off("swapDoc",dt),Me.off(an.getInputField(),"compositionupdate",an.state.placeholderCompose),yt(an);var rn=an.getWrapperElement();rn.className=rn.className.replace(" CodeMirror-empty","")}qt&&!an.hasFocus()&&It(an)});function yt(an){an.state.placeholder&&(an.state.placeholder.parentNode.removeChild(an.state.placeholder),an.state.placeholder=null)}function Jt(an){yt(an);var qt=an.state.placeholder=document.createElement("pre");qt.style.cssText="height: 0; overflow: visible",qt.style.direction=an.getOption("direction"),qt.className="CodeMirror-placeholder CodeMirror-line-like";var nt=an.getOption("placeholder");typeof nt=="string"&&(nt=document.createTextNode(nt)),qt.appendChild(nt),an.display.lineSpace.insertBefore(qt,an.display.lineSpace.firstChild)}function Qt(an){setTimeout(function(){var qt=!1,nt=an.getInputField();nt.nodeName=="TEXTAREA"?qt=!nt.value:an.lineCount()==1&&(qt=!/[^\u200b]/.test(nt.querySelector(".CodeMirror-line").textContent)),qt?Jt(an):yt(an)},20)}function It(an){Mt(an)&&Jt(an)}function dt(an){var qt=an.getWrapperElement(),nt=Mt(an);qt.className=qt.className.replace(" CodeMirror-empty","")+(nt?" CodeMirror-empty":""),nt?Jt(an):yt(an)}function Mt(an){return an.lineCount()===1&&an.getLine(0)===""}})},25717:function(Cn,Ei,je){(function(Me){Me(je(89780))})(function(Me){var yt={pairs:`()[]{}''""`,closeBefore:`)]}'":;>`,triples:"",explode:"[]{}"},Jt=Me.Pos;Me.defineOption("autoCloseBrackets",!1,function(ue,ce,Ce){Ce&&Ce!=Me.Init&&(ue.removeKeyMap(It),ue.state.closeBrackets=null),ce&&(dt(Qt(ce,"pairs")),ue.state.closeBrackets=ce,ue.addKeyMap(It))});function Qt(ue,ce){return ce=="pairs"&&typeof ue=="string"?ue:typeof ue=="object"&&ue[ce]!=null?ue[ce]:yt[ce]}var It={Backspace:qt,Enter:nt};function dt(ue){for(var ce=0;ce<ue.length;ce++){var Ce=ue.charAt(ce),Ae="'"+Ce+"'";It[Ae]||(It[Ae]=Mt(Ce))}}dt(yt.pairs+"`");function Mt(ue){return function(ce){return rn(ce,ue)}}function an(ue){var ce=ue.state.closeBrackets;if(!ce||ce.override)return ce;var Ce=ue.getModeAt(ue.getCursor());return Ce.closeBrackets||ce}function qt(ue){var ce=an(ue);if(!ce||ue.getOption("disableInput"))return Me.Pass;for(var Ce=Qt(ce,"pairs"),Ae=ue.listSelections(),Te=0;Te<Ae.length;Te++){if(!Ae[Te].empty())return Me.Pass;var Ie=on(ue,Ae[Te].head);if(!Ie||Ce.indexOf(Ie)%2!=0)return Me.Pass}for(var Te=Ae.length-1;Te>=0;Te--){var ze=Ae[Te].head;ue.replaceRange("",Jt(ze.line,ze.ch-1),Jt(ze.line,ze.ch+1),"+delete")}}function nt(ue){var ce=an(ue),Ce=ce&&Qt(ce,"explode");if(!Ce||ue.getOption("disableInput"))return Me.Pass;for(var Ae=ue.listSelections(),Te=0;Te<Ae.length;Te++){if(!Ae[Te].empty())return Me.Pass;var Ie=on(ue,Ae[Te].head);if(!Ie||Ce.indexOf(Ie)%2!=0)return Me.Pass}ue.operation(function(){var ze=ue.lineSeparator()||`
|
|
`;ue.replaceSelection(ze+ze,null),ue.execCommand("goCharLeft"),Ae=ue.listSelections();for(var Ye=0;Ye<Ae.length;Ye++){var lt=Ae[Ye].head.line;ue.indentLine(lt,null,!0),ue.indentLine(lt+1,null,!0)}})}function ln(ue){var ce=Me.cmpPos(ue.anchor,ue.head)>0;return{anchor:new Jt(ue.anchor.line,ue.anchor.ch+(ce?-1:1)),head:new Jt(ue.head.line,ue.head.ch+(ce?1:-1))}}function rn(ue,ce){var Ce=an(ue);if(!Ce||ue.getOption("disableInput"))return Me.Pass;var Ae=Qt(Ce,"pairs"),Te=Ae.indexOf(ce);if(Te==-1)return Me.Pass;for(var Ie=Qt(Ce,"closeBefore"),ze=Qt(Ce,"triples"),Ye=Ae.charAt(Te+1)==ce,lt=ue.listSelections(),Bt=Te%2==0,kt,xt=0;xt<lt.length;xt++){var Et=lt[xt],$t=Et.head,Zt,Yn=ue.getRange($t,Jt($t.line,$t.ch+1));if(Bt&&!Et.empty())Zt="surround";else if((Ye||!Bt)&&Yn==ce)Ye&&et(ue,$t)?Zt="both":ze.indexOf(ce)>=0&&ue.getRange($t,Jt($t.line,$t.ch+3))==ce+ce+ce?Zt="skipThree":Zt="skip";else if(Ye&&$t.ch>1&&ze.indexOf(ce)>=0&&ue.getRange(Jt($t.line,$t.ch-2),$t)==ce+ce){if($t.ch>2&&/\bstring/.test(ue.getTokenTypeAt(Jt($t.line,$t.ch-2))))return Me.Pass;Zt="addFour"}else if(Ye){var gn=$t.ch==0?" ":ue.getRange(Jt($t.line,$t.ch-1),$t);if(!Me.isWordChar(Yn)&&gn!=ce&&!Me.isWordChar(gn))Zt="both";else return Me.Pass}else if(Bt&&(Yn.length===0||/\s/.test(Yn)||Ie.indexOf(Yn)>-1))Zt="both";else return Me.Pass;if(!kt)kt=Zt;else if(kt!=Zt)return Me.Pass}var Jn=Te%2?Ae.charAt(Te-1):ce,ci=Te%2?ce:Ae.charAt(Te+1);ue.operation(function(){if(kt=="skip")ue.execCommand("goCharRight");else if(kt=="skipThree")for(var Xn=0;Xn<3;Xn++)ue.execCommand("goCharRight");else if(kt=="surround"){for(var In=ue.getSelections(),Xn=0;Xn<In.length;Xn++)In[Xn]=Jn+In[Xn]+ci;ue.replaceSelections(In,"around"),In=ue.listSelections().slice();for(var Xn=0;Xn<In.length;Xn++)In[Xn]=ln(In[Xn]);ue.setSelections(In)}else kt=="both"?(ue.replaceSelection(Jn+ci,null),ue.triggerElectric(Jn+ci),ue.execCommand("goCharLeft")):kt=="addFour"&&(ue.replaceSelection(Jn+Jn+Jn+Jn,"before"),ue.execCommand("goCharRight"))})}function on(ue,ce){var Ce=ue.getRange(Jt(ce.line,ce.ch-1),Jt(ce.line,ce.ch+1));return Ce.length==2?Ce:null}function et(ue,ce){var Ce=ue.getTokenAt(Jt(ce.line,ce.ch+1));return/\bstring/.test(Ce.type)&&Ce.start==ce.ch&&(ce.ch==0||!/\bstring/.test(ue.getTokenTypeAt(ce)))}})},6313:function(Cn,Ei,je){(function(Me){Me(je(89780),je(32855))})(function(Me){Me.defineOption("autoCloseTags",!1,function(qt,nt,ln){if(ln!=Me.Init&&ln&&qt.removeKeyMap("autoCloseTags"),!!nt){var rn={name:"autoCloseTags"};(typeof nt!="object"||nt.whenClosing!==!1)&&(rn["'/'"]=function(on){return dt(on)}),(typeof nt!="object"||nt.whenOpening!==!1)&&(rn["'>'"]=function(on){return Qt(on)}),qt.addKeyMap(rn)}});var yt=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],Jt=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];function Qt(qt){if(qt.getOption("disableInput"))return Me.Pass;for(var nt=qt.listSelections(),ln=[],rn=qt.getOption("autoCloseTags"),on=0;on<nt.length;on++){if(!nt[on].empty())return Me.Pass;var et=nt[on].head,ue=qt.getTokenAt(et),ce=Me.innerMode(qt.getMode(),ue.state),Ce=ce.state,Ae=ce.mode.xmlCurrentTag&&ce.mode.xmlCurrentTag(Ce),Te=Ae&&Ae.name;if(!Te)return Me.Pass;var Ie=ce.mode.configuration=="html",ze=typeof rn=="object"&&rn.dontCloseTags||Ie&&yt,Ye=typeof rn=="object"&&rn.indentTags||Ie&&Jt;ue.end>et.ch&&(Te=Te.slice(0,Te.length-ue.end+et.ch));var lt=Te.toLowerCase();if(!Te||ue.type=="string"&&(ue.end!=et.ch||!/[\"\']/.test(ue.string.charAt(ue.string.length-1))||ue.string.length==1)||ue.type=="tag"&&Ae.close||ue.string.indexOf("/")==et.ch-ue.start-1||ze&&Mt(ze,lt)>-1||an(qt,ce.mode.xmlCurrentContext&&ce.mode.xmlCurrentContext(Ce)||[],Te,et,!0))return Me.Pass;var Bt=typeof rn=="object"&&rn.emptyTags;if(Bt&&Mt(Bt,Te)>-1){ln[on]={text:"/>",newPos:Me.Pos(et.line,et.ch+2)};continue}var kt=Ye&&Mt(Ye,lt)>-1;ln[on]={indent:kt,text:">"+(kt?`
|
|
|
|
`:"")+"</"+Te+">",newPos:kt?Me.Pos(et.line+1,0):Me.Pos(et.line,et.ch+1)}}for(var xt=typeof rn=="object"&&rn.dontIndentOnAutoClose,on=nt.length-1;on>=0;on--){var Et=ln[on];qt.replaceRange(Et.text,nt[on].head,nt[on].anchor,"+insert");var $t=qt.listSelections().slice(0);$t[on]={head:Et.newPos,anchor:Et.newPos},qt.setSelections($t),!xt&&Et.indent&&(qt.indentLine(Et.newPos.line,null,!0),qt.indentLine(Et.newPos.line+1,null,!0))}}function It(qt,nt){for(var ln=qt.listSelections(),rn=[],on=nt?"/":"</",et=qt.getOption("autoCloseTags"),ue=typeof et=="object"&&et.dontIndentOnSlash,ce=0;ce<ln.length;ce++){if(!ln[ce].empty())return Me.Pass;var Ce=ln[ce].head,Ae=qt.getTokenAt(Ce),Te=Me.innerMode(qt.getMode(),Ae.state),Ie=Te.state;if(nt&&(Ae.type=="string"||Ae.string.charAt(0)!="<"||Ae.start!=Ce.ch-1))return Me.Pass;var ze,Ye=Te.mode.name!="xml"&&qt.getMode().name=="htmlmixed";if(Ye&&Te.mode.name=="javascript")ze=on+"script";else if(Ye&&Te.mode.name=="css")ze=on+"style";else{var lt=Te.mode.xmlCurrentContext&&Te.mode.xmlCurrentContext(Ie);if(!lt||lt.length&&an(qt,lt,lt[lt.length-1],Ce))return Me.Pass;ze=on+lt[lt.length-1]}qt.getLine(Ce.line).charAt(Ae.end)!=">"&&(ze+=">"),rn[ce]=ze}if(qt.replaceSelections(rn),ln=qt.listSelections(),!ue)for(var ce=0;ce<ln.length;ce++)(ce==ln.length-1||ln[ce].head.line<ln[ce+1].head.line)&&qt.indentLine(ln[ce].head.line)}function dt(qt){return qt.getOption("disableInput")?Me.Pass:It(qt,!0)}Me.commands.closeTag=function(qt){return It(qt)};function Mt(qt,nt){if(qt.indexOf)return qt.indexOf(nt);for(var ln=0,rn=qt.length;ln<rn;++ln)if(qt[ln]==nt)return ln;return-1}function an(qt,nt,ln,rn,on){if(!Me.scanForClosingTag)return!1;var et=Math.min(qt.lastLine()+1,rn.line+500),ue=Me.scanForClosingTag(qt,rn,null,et);if(!ue||ue.tag!=ln)return!1;for(var ce=on?1:0,Ce=nt.length-1;Ce>=0&&nt[Ce]==ln;Ce--)++ce;rn=ue.to;for(var Ce=1;Ce<ce;Ce++){var Ae=Me.scanForClosingTag(qt,rn,null,et);if(!Ae||Ae.tag!=ln)return!1;rn=Ae.to}return!0}})},32855:function(Cn,Ei,je){(function(Me){Me(je(89780))})(function(Me){"use strict";var yt=Me.Pos;function Jt(Ce,Ae){return Ce.line-Ae.line||Ce.ch-Ae.ch}var Qt="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",It=Qt+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",dt=new RegExp("<(/?)(["+Qt+"]["+It+"]*)","g");function Mt(Ce,Ae,Te,Ie){this.line=Ae,this.ch=Te,this.cm=Ce,this.text=Ce.getLine(Ae),this.min=Ie?Math.max(Ie.from,Ce.firstLine()):Ce.firstLine(),this.max=Ie?Math.min(Ie.to-1,Ce.lastLine()):Ce.lastLine()}function an(Ce,Ae){var Te=Ce.cm.getTokenTypeAt(yt(Ce.line,Ae));return Te&&/\btag\b/.test(Te)}function qt(Ce){if(!(Ce.line>=Ce.max))return Ce.ch=0,Ce.text=Ce.cm.getLine(++Ce.line),!0}function nt(Ce){if(!(Ce.line<=Ce.min))return Ce.text=Ce.cm.getLine(--Ce.line),Ce.ch=Ce.text.length,!0}function ln(Ce){for(;;){var Ae=Ce.text.indexOf(">",Ce.ch);if(Ae==-1){if(qt(Ce))continue;return}if(!an(Ce,Ae+1)){Ce.ch=Ae+1;continue}var Te=Ce.text.lastIndexOf("/",Ae),Ie=Te>-1&&!/\S/.test(Ce.text.slice(Te+1,Ae));return Ce.ch=Ae+1,Ie?"selfClose":"regular"}}function rn(Ce){for(;;){var Ae=Ce.ch?Ce.text.lastIndexOf("<",Ce.ch-1):-1;if(Ae==-1){if(nt(Ce))continue;return}if(!an(Ce,Ae+1)){Ce.ch=Ae;continue}dt.lastIndex=Ae,Ce.ch=Ae;var Te=dt.exec(Ce.text);if(Te&&Te.index==Ae)return Te}}function on(Ce){for(;;){dt.lastIndex=Ce.ch;var Ae=dt.exec(Ce.text);if(!Ae){if(qt(Ce))continue;return}if(!an(Ce,Ae.index+1)){Ce.ch=Ae.index+1;continue}return Ce.ch=Ae.index+Ae[0].length,Ae}}function et(Ce){for(;;){var Ae=Ce.ch?Ce.text.lastIndexOf(">",Ce.ch-1):-1;if(Ae==-1){if(nt(Ce))continue;return}if(!an(Ce,Ae+1)){Ce.ch=Ae;continue}var Te=Ce.text.lastIndexOf("/",Ae),Ie=Te>-1&&!/\S/.test(Ce.text.slice(Te+1,Ae));return Ce.ch=Ae+1,Ie?"selfClose":"regular"}}function ue(Ce,Ae){for(var Te=[];;){var Ie=on(Ce),ze,Ye=Ce.line,lt=Ce.ch-(Ie?Ie[0].length:0);if(!Ie||!(ze=ln(Ce)))return;if(ze!="selfClose")if(Ie[1]){for(var Bt=Te.length-1;Bt>=0;--Bt)if(Te[Bt]==Ie[2]){Te.length=Bt;break}if(Bt<0&&(!Ae||Ae==Ie[2]))return{tag:Ie[2],from:yt(Ye,lt),to:yt(Ce.line,Ce.ch)}}else Te.push(Ie[2])}}function ce(Ce,Ae){for(var Te=[];;){var Ie=et(Ce);if(!Ie)return;if(Ie=="selfClose"){rn(Ce);continue}var ze=Ce.line,Ye=Ce.ch,lt=rn(Ce);if(!lt)return;if(lt[1])Te.push(lt[2]);else{for(var Bt=Te.length-1;Bt>=0;--Bt)if(Te[Bt]==lt[2]){Te.length=Bt;break}if(Bt<0&&(!Ae||Ae==lt[2]))return{tag:lt[2],from:yt(Ce.line,Ce.ch),to:yt(ze,Ye)}}}}Me.registerHelper("fold","xml",function(Ce,Ae){for(var Te=new Mt(Ce,Ae.line,0);;){var Ie=on(Te);if(!Ie||Te.line!=Ae.line)return;var ze=ln(Te);if(!ze)return;if(!Ie[1]&&ze!="selfClose"){var Ye=yt(Te.line,Te.ch),lt=ue(Te,Ie[2]);return lt&&Jt(lt.from,Ye)>0?{from:Ye,to:lt.from}:null}}}),Me.findMatchingTag=function(Ce,Ae,Te){var Ie=new Mt(Ce,Ae.line,Ae.ch,Te);if(!(Ie.text.indexOf(">")==-1&&Ie.text.indexOf("<")==-1)){var ze=ln(Ie),Ye=ze&&yt(Ie.line,Ie.ch),lt=ze&&rn(Ie);if(!(!ze||!lt||Jt(Ie,Ae)>0)){var Bt={from:yt(Ie.line,Ie.ch),to:Ye,tag:lt[2]};return ze=="selfClose"?{open:Bt,close:null,at:"open"}:lt[1]?{open:ce(Ie,lt[2]),close:Bt,at:"close"}:(Ie=new Mt(Ce,Ye.line,Ye.ch,Te),{open:Bt,close:ue(Ie,lt[2]),at:"open"})}}},Me.findEnclosingTag=function(Ce,Ae,Te,Ie){for(var ze=new Mt(Ce,Ae.line,Ae.ch,Te);;){var Ye=ce(ze,Ie);if(!Ye)break;var lt=new Mt(Ce,Ae.line,Ae.ch,Te),Bt=ue(lt,Ye.tag);if(Bt)return{open:Ye,close:Bt}}},Me.scanForClosingTag=function(Ce,Ae,Te,Ie){var ze=new Mt(Ce,Ae.line,Ae.ch,Ie?{from:0,to:Ie}:null);return ue(ze,Te)}})},89780:function(Cn){(function(Ei,je){Cn.exports=je()})(this,function(){"use strict";var Ei=navigator.userAgent,je=navigator.platform,Me=/gecko\/\d/i.test(Ei),yt=/MSIE \d/.test(Ei),Jt=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Ei),Qt=/Edge\/(\d+)/.exec(Ei),It=yt||Jt||Qt,dt=It&&(yt?document.documentMode||6:+(Qt||Jt)[1]),Mt=!Qt&&/WebKit\//.test(Ei),an=Mt&&/Qt\/\d+\.\d+/.test(Ei),qt=!Qt&&/Chrome\//.test(Ei),nt=/Opera\//.test(Ei),ln=/Apple Computer/.test(navigator.vendor),rn=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(Ei),on=/PhantomJS/.test(Ei),et=!Qt&&/AppleWebKit/.test(Ei)&&/Mobile\/\w+/.test(Ei),ue=/Android/.test(Ei),ce=et||ue||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(Ei),Ce=et||/Mac/.test(je),Ae=/\bCrOS\b/.test(Ei),Te=/win/i.test(je),Ie=nt&&Ei.match(/Version\/(\d*\.\d*)/);Ie&&(Ie=Number(Ie[1])),Ie&&Ie>=15&&(nt=!1,Mt=!0);var ze=Ce&&(an||nt&&(Ie==null||Ie<12.11)),Ye=Me||It&&dt>=9;function lt(de){return new RegExp("(^|\\s)"+de+"(?:$|\\s)\\s*")}var Bt=function(de,me){var Ee=de.className,Pe=lt(me).exec(Ee);if(Pe){var Ne=Ee.slice(Pe.index+Pe[0].length);de.className=Ee.slice(0,Pe.index)+(Ne?Pe[1]+Ne:"")}};function kt(de){for(var me=de.childNodes.length;me>0;--me)de.removeChild(de.firstChild);return de}function xt(de,me){return kt(de).appendChild(me)}function Et(de,me,Ee,Pe){var Ne=document.createElement(de);if(Ee&&(Ne.className=Ee),Pe&&(Ne.style.cssText=Pe),typeof me=="string")Ne.appendChild(document.createTextNode(me));else if(me)for(var Xe=0;Xe<me.length;++Xe)Ne.appendChild(me[Xe]);return Ne}function $t(de,me,Ee,Pe){var Ne=Et(de,me,Ee,Pe);return Ne.setAttribute("role","presentation"),Ne}var Zt;document.createRange?Zt=function(de,me,Ee,Pe){var Ne=document.createRange();return Ne.setEnd(Pe||de,Ee),Ne.setStart(de,me),Ne}:Zt=function(de,me,Ee){var Pe=document.body.createTextRange();try{Pe.moveToElementText(de.parentNode)}catch(Ne){return Pe}return Pe.collapse(!0),Pe.moveEnd("character",Ee),Pe.moveStart("character",me),Pe};function Yn(de,me){if(me.nodeType==3&&(me=me.parentNode),de.contains)return de.contains(me);do if(me.nodeType==11&&(me=me.host),me==de)return!0;while(me=me.parentNode)}function gn(){var de;try{de=document.activeElement}catch(me){de=document.body||null}for(;de&&de.shadowRoot&&de.shadowRoot.activeElement;)de=de.shadowRoot.activeElement;return de}function Jn(de,me){var Ee=de.className;lt(me).test(Ee)||(de.className+=(Ee?" ":"")+me)}function ci(de,me){for(var Ee=de.split(" "),Pe=0;Pe<Ee.length;Pe++)Ee[Pe]&&!lt(Ee[Pe]).test(me)&&(me+=" "+Ee[Pe]);return me}var Xn=function(de){de.select()};et?Xn=function(de){de.selectionStart=0,de.selectionEnd=de.value.length}:It&&(Xn=function(de){try{de.select()}catch(me){}});function In(de){var me=Array.prototype.slice.call(arguments,1);return function(){return de.apply(null,me)}}function hi(de,me,Ee){me||(me={});for(var Pe in de)de.hasOwnProperty(Pe)&&(Ee!==!1||!me.hasOwnProperty(Pe))&&(me[Pe]=de[Pe]);return me}function Ht(de,me,Ee,Pe,Ne){me==null&&(me=de.search(/[^\s\u00a0]/),me==-1&&(me=de.length));for(var Xe=Pe||0,at=Ne||0;;){var Ct=de.indexOf(" ",Xe);if(Ct<0||Ct>=me)return at+(me-Xe);at+=Ct-Xe,at+=Ee-at%Ee,Xe=Ct+1}}var At=function(){this.id=null,this.f=null,this.time=0,this.handler=In(this.onTimeout,this)};At.prototype.onTimeout=function(de){de.id=0,de.time<=+new Date?de.f():setTimeout(de.handler,de.time-+new Date)},At.prototype.set=function(de,me){this.f=me;var Ee=+new Date+de;(!this.id||Ee<this.time)&&(clearTimeout(this.id),this.id=setTimeout(this.handler,de),this.time=Ee)};function Hn(de,me){for(var Ee=0;Ee<de.length;++Ee)if(de[Ee]==me)return Ee;return-1}var _i=50,dr={toString:function(){return"CodeMirror.Pass"}},En={scroll:!1},Mn={origin:"*mouse"},Ln={origin:"+move"};function Mi(de,me,Ee){for(var Pe=0,Ne=0;;){var Xe=de.indexOf(" ",Pe);Xe==-1&&(Xe=de.length);var at=Xe-Pe;if(Xe==de.length||Ne+at>=me)return Pe+Math.min(at,me-Ne);if(Ne+=Xe-Pe,Ne+=Ee-Ne%Ee,Pe=Xe+1,Ne>=me)return Pe}}var Rt=[""];function ni(de){for(;Rt.length<=de;)Rt.push(en(Rt)+" ");return Rt[de]}function en(de){return de[de.length-1]}function Ti(de,me){for(var Ee=[],Pe=0;Pe<de.length;Pe++)Ee[Pe]=me(de[Pe],Pe);return Ee}function Lr(de,me,Ee){for(var Pe=0,Ne=Ee(me);Pe<de.length&&Ee(de[Pe])<=Ne;)Pe++;de.splice(Pe,0,me)}function Tt(){}function Ze(de,me){var Ee;return Object.create?Ee=Object.create(de):(Tt.prototype=de,Ee=new Tt),me&&hi(me,Ee),Ee}var Ge=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;function rt(de){return/\w/.test(de)||de>"\x80"&&(de.toUpperCase()!=de.toLowerCase()||Ge.test(de))}function Ft(de,me){return me?me.source.indexOf("\\w")>-1&&rt(de)?!0:me.test(de):rt(de)}function qe(de){for(var me in de)if(de.hasOwnProperty(me)&&de[me])return!1;return!0}var mt=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function An(de){return de.charCodeAt(0)>=768&&mt.test(de)}function Gn(de,me,Ee){for(;(Ee<0?me>0:me<de.length)&&An(de.charAt(me));)me+=Ee;return me}function fo(de,me,Ee){for(var Pe=me>Ee?-1:1;;){if(me==Ee)return me;var Ne=(me+Ee)/2,Xe=Pe<0?Math.ceil(Ne):Math.floor(Ne);if(Xe==me)return de(Xe)?me:Ee;de(Xe)?Ee=Xe:me=Xe+Pe}}function qn(de,me,Ee,Pe){if(!de)return Pe(me,Ee,"ltr",0);for(var Ne=!1,Xe=0;Xe<de.length;++Xe){var at=de[Xe];(at.from<Ee&&at.to>me||me==Ee&&at.to==me)&&(Pe(Math.max(at.from,me),Math.min(at.to,Ee),at.level==1?"rtl":"ltr",Xe),Ne=!0)}Ne||Pe(me,Ee,"ltr")}var Kn=null;function oi(de,me,Ee){var Pe;Kn=null;for(var Ne=0;Ne<de.length;++Ne){var Xe=de[Ne];if(Xe.from<me&&Xe.to>me)return Ne;Xe.to==me&&(Xe.from!=Xe.to&&Ee=="before"?Pe=Ne:Kn=Ne),Xe.from==me&&(Xe.from!=Xe.to&&Ee!="before"?Pe=Ne:Kn=Ne)}return Pe!=null?Pe:Kn}var Wi=function(){var de="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",me="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function Ee(jt){return jt<=247?de.charAt(jt):1424<=jt&&jt<=1524?"R":1536<=jt&&jt<=1785?me.charAt(jt-1536):1774<=jt&&jt<=2220?"r":8192<=jt&&jt<=8203?"w":jt==8204?"b":"L"}var Pe=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,Ne=/[stwN]/,Xe=/[LRr]/,at=/[Lb1n]/,Ct=/[1n]/;function St(jt,On,nn){this.level=jt,this.from=On,this.to=nn}return function(jt,On){var nn=On=="ltr"?"L":"R";if(jt.length==0||On=="ltr"&&!Pe.test(jt))return!1;for(var wi=jt.length,li=[],jr=0;jr<wi;++jr)li.push(Ee(jt.charCodeAt(jr)));for(var no=0,To=nn;no<wi;++no){var rs=li[no];rs=="m"?li[no]=To:To=rs}for(var na=0,Ns=nn;na<wi;++na){var va=li[na];va=="1"&&Ns=="r"?li[na]="n":Xe.test(va)&&(Ns=va,va=="r"&&(li[na]="R"))}for(var ml=1,Os=li[0];ml<wi-1;++ml){var ou=li[ml];ou=="+"&&Os=="1"&&li[ml+1]=="1"?li[ml]="1":ou==","&&Os==li[ml+1]&&(Os=="1"||Os=="n")&&(li[ml]=Os),Os=ou}for(var Uc=0;Uc<wi;++Uc){var bh=li[Uc];if(bh==",")li[Uc]="N";else if(bh=="%"){var Lc=void 0;for(Lc=Uc+1;Lc<wi&&li[Lc]=="%";++Lc);for(var Cd=Uc&&li[Uc-1]=="!"||Lc<wi&&li[Lc]=="1"?"1":"N",Mh=Uc;Mh<Lc;++Mh)li[Mh]=Cd;Uc=Lc-1}}for(var gh=0,Gd=nn;gh<wi;++gh){var Gh=li[gh];Gd=="L"&&Gh=="1"?li[gh]="L":Xe.test(Gh)&&(Gd=Gh)}for(var mh=0;mh<wi;++mh)if(Ne.test(li[mh])){var Fu=void 0;for(Fu=mh+1;Fu<wi&&Ne.test(li[Fu]);++Fu);for(var th=(mh?li[mh-1]:nn)=="L",ld=(Fu<wi?li[Fu]:nn)=="L",bc=th==ld?th?"L":"R":nn,hg=mh;hg<Fu;++hg)li[hg]=bc;mh=Fu-1}for(var Jc=[],Wp,vh=0;vh<wi;)if(at.test(li[vh])){var mx=vh;for(++vh;vh<wi&&at.test(li[vh]);++vh);Jc.push(new St(0,mx,vh))}else{var dp=vh,Gf=Jc.length,Mf=On=="rtl"?1:0;for(++vh;vh<wi&&li[vh]!="L";++vh);for(var Mc=dp;Mc<vh;)if(Ct.test(li[Mc])){dp<Mc&&(Jc.splice(Gf,0,new St(1,dp,Mc)),Gf+=Mf);var Xh=Mc;for(++Mc;Mc<vh&&Ct.test(li[Mc]);++Mc);Jc.splice(Gf,0,new St(2,Xh,Mc)),Gf+=Mf,dp=Mc}else++Mc;dp<vh&&Jc.splice(Gf,0,new St(1,dp,vh))}return On=="ltr"&&(Jc[0].level==1&&(Wp=jt.match(/^\s+/))&&(Jc[0].from=Wp[0].length,Jc.unshift(new St(0,0,Wp[0].length))),en(Jc).level==1&&(Wp=jt.match(/\s+$/))&&(en(Jc).to-=Wp[0].length,Jc.push(new St(0,wi-Wp[0].length,wi)))),On=="rtl"?Jc.reverse():Jc}}();function Nr(de,me){var Ee=de.order;return Ee==null&&(Ee=de.order=Wi(de.text,me)),Ee}var Uo=[],Vr=function(de,me,Ee){if(de.addEventListener)de.addEventListener(me,Ee,!1);else if(de.attachEvent)de.attachEvent("on"+me,Ee);else{var Pe=de._handlers||(de._handlers={});Pe[me]=(Pe[me]||Uo).concat(Ee)}};function lo(de,me){return de._handlers&&de._handlers[me]||Uo}function Rn(de,me,Ee){if(de.removeEventListener)de.removeEventListener(me,Ee,!1);else if(de.detachEvent)de.detachEvent("on"+me,Ee);else{var Pe=de._handlers,Ne=Pe&&Pe[me];if(Ne){var Xe=Hn(Ne,Ee);Xe>-1&&(Pe[me]=Ne.slice(0,Xe).concat(Ne.slice(Xe+1)))}}}function $n(de,me){var Ee=lo(de,me);if(Ee.length)for(var Pe=Array.prototype.slice.call(arguments,2),Ne=0;Ne<Ee.length;++Ne)Ee[Ne].apply(null,Pe)}function pi(de,me,Ee){return typeof me=="string"&&(me={type:me,preventDefault:function(){this.defaultPrevented=!0}}),$n(de,Ee||me.type,de,me),Or(me)||me.codemirrorIgnore}function Ai(de){var me=de._handlers&&de._handlers.cursorActivity;if(me)for(var Ee=de.curOp.cursorActivityHandlers||(de.curOp.cursorActivityHandlers=[]),Pe=0;Pe<me.length;++Pe)Hn(Ee,me[Pe])==-1&&Ee.push(me[Pe])}function Cr(de,me){return lo(de,me).length>0}function zr(de){de.prototype.on=function(me,Ee){Vr(this,me,Ee)},de.prototype.off=function(me,Ee){Rn(this,me,Ee)}}function ao(de){de.preventDefault?de.preventDefault():de.returnValue=!1}function Wr(de){de.stopPropagation?de.stopPropagation():de.cancelBubble=!0}function Or(de){return de.defaultPrevented!=null?de.defaultPrevented:de.returnValue==!1}function ir(de){ao(de),Wr(de)}function ss(de){return de.target||de.srcElement}function Us(de){var me=de.which;return me==null&&(de.button&1?me=1:de.button&2?me=3:de.button&4&&(me=2)),Ce&&de.ctrlKey&&me==1&&(me=3),me}var as=function(){if(It&&dt<9)return!1;var de=Et("div");return"draggable"in de||"dragDrop"in de}(),ls;function La(de){if(ls==null){var me=Et("span","\u200B");xt(de,Et("span",[me,document.createTextNode("x")])),de.firstChild.offsetHeight!=0&&(ls=me.offsetWidth<=1&&me.offsetHeight>2&&!(It&&dt<8))}var Ee=ls?Et("span","\u200B"):Et("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return Ee.setAttribute("cm-text",""),Ee}var Fs;function ha(de){if(Fs!=null)return Fs;var me=xt(de,document.createTextNode("A\u062EA")),Ee=Zt(me,0,1).getBoundingClientRect(),Pe=Zt(me,1,2).getBoundingClientRect();return kt(de),!Ee||Ee.left==Ee.right?!1:Fs=Pe.right-Ee.right<3}var Al=`
|
|
|
|
b`.split(/\n/).length!=3?function(de){for(var me=0,Ee=[],Pe=de.length;me<=Pe;){var Ne=de.indexOf(`
|
|
`,me);Ne==-1&&(Ne=de.length);var Xe=de.slice(me,de.charAt(Ne-1)=="\r"?Ne-1:Ne),at=Xe.indexOf("\r");at!=-1?(Ee.push(Xe.slice(0,at)),me+=at+1):(Ee.push(Xe),me=Ne+1)}return Ee}:function(de){return de.split(/\r\n?|\n/)},We=window.getSelection?function(de){try{return de.selectionStart!=de.selectionEnd}catch(me){return!1}}:function(de){var me;try{me=de.ownerDocument.selection.createRange()}catch(Ee){}return!me||me.parentElement()!=de?!1:me.compareEndPoints("StartToEnd",me)!=0},ui=function(){var de=Et("div");return"oncopy"in de?!0:(de.setAttribute("oncopy","return;"),typeof de.oncopy=="function")}(),Si=null;function ms(de){if(Si!=null)return Si;var me=xt(de,Et("span","x")),Ee=me.getBoundingClientRect(),Pe=Zt(me,0,1).getBoundingClientRect();return Si=Math.abs(Ee.left-Pe.left)>1}var Po={},Xr={};function si(de,me){arguments.length>2&&(me.dependencies=Array.prototype.slice.call(arguments,2)),Po[de]=me}function Hi(de,me){Xr[de]=me}function or(de){if(typeof de=="string"&&Xr.hasOwnProperty(de))de=Xr[de];else if(de&&typeof de.name=="string"&&Xr.hasOwnProperty(de.name)){var me=Xr[de.name];typeof me=="string"&&(me={name:me}),de=Ze(me,de),de.name=me.name}else{if(typeof de=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(de))return or("application/xml");if(typeof de=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(de))return or("application/json")}return typeof de=="string"?{name:de}:de||{name:"null"}}function Fn(de,me){me=or(me);var Ee=Po[me.name];if(!Ee)return Fn(de,"text/plain");var Pe=Ee(de,me);if(vn.hasOwnProperty(me.name)){var Ne=vn[me.name];for(var Xe in Ne)Ne.hasOwnProperty(Xe)&&(Pe.hasOwnProperty(Xe)&&(Pe["_"+Xe]=Pe[Xe]),Pe[Xe]=Ne[Xe])}if(Pe.name=me.name,me.helperType&&(Pe.helperType=me.helperType),me.modeProps)for(var at in me.modeProps)Pe[at]=me.modeProps[at];return Pe}var vn={};function pn(de,me){var Ee=vn.hasOwnProperty(de)?vn[de]:vn[de]={};hi(me,Ee)}function Ur(de,me){if(me===!0)return me;if(de.copyState)return de.copyState(me);var Ee={};for(var Pe in me){var Ne=me[Pe];Ne instanceof Array&&(Ne=Ne.concat([])),Ee[Pe]=Ne}return Ee}function Ho(de,me){for(var Ee;de.innerMode&&(Ee=de.innerMode(me),!(!Ee||Ee.mode==de));)me=Ee.state,de=Ee.mode;return Ee||{mode:de,state:me}}function bo(de,me,Ee){return de.startState?de.startState(me,Ee):!0}var ji=function(de,me,Ee){this.pos=this.start=0,this.string=de,this.tabSize=me||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=Ee};ji.prototype.eol=function(){return this.pos>=this.string.length},ji.prototype.sol=function(){return this.pos==this.lineStart},ji.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},ji.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},ji.prototype.eat=function(de){var me=this.string.charAt(this.pos),Ee;if(typeof de=="string"?Ee=me==de:Ee=me&&(de.test?de.test(me):de(me)),Ee)return++this.pos,me},ji.prototype.eatWhile=function(de){for(var me=this.pos;this.eat(de););return this.pos>me},ji.prototype.eatSpace=function(){for(var de=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>de},ji.prototype.skipToEnd=function(){this.pos=this.string.length},ji.prototype.skipTo=function(de){var me=this.string.indexOf(de,this.pos);if(me>-1)return this.pos=me,!0},ji.prototype.backUp=function(de){this.pos-=de},ji.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=Ht(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?Ht(this.string,this.lineStart,this.tabSize):0)},ji.prototype.indentation=function(){return Ht(this.string,null,this.tabSize)-(this.lineStart?Ht(this.string,this.lineStart,this.tabSize):0)},ji.prototype.match=function(de,me,Ee){if(typeof de=="string"){var Pe=function(at){return Ee?at.toLowerCase():at},Ne=this.string.substr(this.pos,de.length);if(Pe(Ne)==Pe(de))return me!==!1&&(this.pos+=de.length),!0}else{var Xe=this.string.slice(this.pos).match(de);return Xe&&Xe.index>0?null:(Xe&&me!==!1&&(this.pos+=Xe[0].length),Xe)}},ji.prototype.current=function(){return this.string.slice(this.start,this.pos)},ji.prototype.hideFirstChars=function(de,me){this.lineStart+=de;try{return me()}finally{this.lineStart-=de}},ji.prototype.lookAhead=function(de){var me=this.lineOracle;return me&&me.lookAhead(de)},ji.prototype.baseToken=function(){var de=this.lineOracle;return de&&de.baseToken(this.pos)};function co(de,me){if(me-=de.first,me<0||me>=de.size)throw new Error("There is no line "+(me+de.first)+" in the document.");for(var Ee=de;!Ee.lines;)for(var Pe=0;;++Pe){var Ne=Ee.children[Pe],Xe=Ne.chunkSize();if(me<Xe){Ee=Ne;break}me-=Xe}return Ee.lines[me]}function Oa(de,me,Ee){var Pe=[],Ne=me.line;return de.iter(me.line,Ee.line+1,function(Xe){var at=Xe.text;Ne==Ee.line&&(at=at.slice(0,Ee.ch)),Ne==me.line&&(at=at.slice(me.ch)),Pe.push(at),++Ne}),Pe}function aa(de,me,Ee){var Pe=[];return de.iter(me,Ee,function(Ne){Pe.push(Ne.text)}),Pe}function pa(de,me){var Ee=me-de.height;if(Ee)for(var Pe=de;Pe;Pe=Pe.parent)Pe.height+=Ee}function hn(de){if(de.parent==null)return null;for(var me=de.parent,Ee=Hn(me.lines,de),Pe=me.parent;Pe;me=Pe,Pe=Pe.parent)for(var Ne=0;Pe.children[Ne]!=me;++Ne)Ee+=Pe.children[Ne].chunkSize();return Ee+me.first}function Ar(de,me){var Ee=de.first;e:do{for(var Pe=0;Pe<de.children.length;++Pe){var Ne=de.children[Pe],Xe=Ne.height;if(me<Xe){de=Ne;continue e}me-=Xe,Ee+=Ne.chunkSize()}return Ee}while(!de.lines);for(var at=0;at<de.lines.length;++at){var Ct=de.lines[at],St=Ct.height;if(me<St)break;me-=St}return Ee+at}function Xo(de,me){return me>=de.first&&me<de.first+de.size}function al(de,me){return String(de.lineNumberFormatter(me+de.firstLineNumber))}function Ji(de,me,Ee){if(Ee===void 0&&(Ee=null),!(this instanceof Ji))return new Ji(de,me,Ee);this.line=de,this.ch=me,this.sticky=Ee}function Fo(de,me){return de.line-me.line||de.ch-me.ch}function wa(de,me){return de.sticky==me.sticky&&Fo(de,me)==0}function xl(de){return Ji(de.line,de.ch)}function Ll(de,me){return Fo(de,me)<0?me:de}function ys(de,me){return Fo(de,me)<0?de:me}function As(de,me){return Math.max(de.first,Math.min(me,de.first+de.size-1))}function Jo(de,me){if(me.line<de.first)return Ji(de.first,0);var Ee=de.first+de.size-1;return me.line>Ee?Ji(Ee,co(de,Ee).text.length):da(me,co(de,me.line).text.length)}function da(de,me){var Ee=de.ch;return Ee==null||Ee>me?Ji(de.line,me):Ee<0?Ji(de.line,0):de}function us(de,me){for(var Ee=[],Pe=0;Pe<me.length;Pe++)Ee[Pe]=Jo(de,me[Pe]);return Ee}var Sa=function(de,me){this.state=de,this.lookAhead=me},zi=function(de,me,Ee,Pe){this.state=me,this.doc=de,this.line=Ee,this.maxLookAhead=Pe||0,this.baseTokens=null,this.baseTokenPos=1};zi.prototype.lookAhead=function(de){var me=this.doc.getLine(this.line+de);return me!=null&&de>this.maxLookAhead&&(this.maxLookAhead=de),me},zi.prototype.baseToken=function(de){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=de;)this.baseTokenPos+=2;var me=this.baseTokens[this.baseTokenPos+1];return{type:me&&me.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-de}},zi.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},zi.fromSaved=function(de,me,Ee){return me instanceof Sa?new zi(de,Ur(de.mode,me.state),Ee,me.lookAhead):new zi(de,Ur(de.mode,me),Ee)},zi.prototype.save=function(de){var me=de!==!1?Ur(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new Sa(me,this.maxLookAhead):me};function fc(de,me,Ee,Pe){var Ne=[de.state.modeGen],Xe={};wl(de,me.text,de.doc.mode,Ee,function(jt,On){return Ne.push(jt,On)},Xe,Pe);for(var at=Ee.state,Ct=function(jt){Ee.baseTokens=Ne;var On=de.state.overlays[jt],nn=1,wi=0;Ee.state=!0,wl(de,me.text,On.mode,Ee,function(li,jr){for(var no=nn;wi<li;){var To=Ne[nn];To>li&&Ne.splice(nn,1,li,Ne[nn+1],To),nn+=2,wi=Math.min(li,To)}if(jr)if(On.opaque)Ne.splice(no,nn-no,li,"overlay "+jr),nn=no+2;else for(;no<nn;no+=2){var rs=Ne[no+1];Ne[no+1]=(rs?rs+" ":"")+"overlay "+jr}},Xe),Ee.state=at,Ee.baseTokens=null,Ee.baseTokenPos=1},St=0;St<de.state.overlays.length;++St)Ct(St);return{styles:Ne,classes:Xe.bgClass||Xe.textClass?Xe:null}}function iu(de,me,Ee){if(!me.styles||me.styles[0]!=de.state.modeGen){var Pe=Gu(de,hn(me)),Ne=me.text.length>de.options.maxHighlightLength&&Ur(de.doc.mode,Pe.state),Xe=fc(de,me,Pe);Ne&&(Pe.state=Ne),me.stateAfter=Pe.save(!Ne),me.styles=Xe.styles,Xe.classes?me.styleClasses=Xe.classes:me.styleClasses&&(me.styleClasses=null),Ee===de.doc.highlightFrontier&&(de.doc.modeFrontier=Math.max(de.doc.modeFrontier,++de.doc.highlightFrontier))}return me.styles}function Gu(de,me,Ee){var Pe=de.doc,Ne=de.display;if(!Pe.mode.startState)return new zi(Pe,!0,me);var Xe=Sl(de,me,Ee),at=Xe>Pe.first&&co(Pe,Xe-1).stateAfter,Ct=at?zi.fromSaved(Pe,at,Xe):new zi(Pe,bo(Pe.mode),Xe);return Pe.iter(Xe,me,function(St){Ni(de,St.text,Ct);var jt=Ct.line;St.stateAfter=jt==me-1||jt%5==0||jt>=Ne.viewFrom&&jt<Ne.viewTo?Ct.save():null,Ct.nextLine()}),Ee&&(Pe.modeFrontier=Ct.line),Ct}function Ni(de,me,Ee,Pe){var Ne=de.doc.mode,Xe=new ji(me,de.options.tabSize,Ee);for(Xe.start=Xe.pos=Pe||0,me==""&&Lo(Ne,Ee.state);!Xe.eol();)zs(Ne,Xe,Ee.state),Xe.start=Xe.pos}function Lo(de,me){if(de.blankLine)return de.blankLine(me);if(de.innerMode){var Ee=Ho(de,me);if(Ee.mode.blankLine)return Ee.mode.blankLine(Ee.state)}}function zs(de,me,Ee,Pe){for(var Ne=0;Ne<10;Ne++){Pe&&(Pe[0]=Ho(de,Ee).mode);var Xe=de.token(me,Ee);if(me.pos>me.start)return Xe}throw new Error("Mode "+de.name+" failed to advance stream.")}var Fa=function(de,me,Ee){this.start=de.start,this.end=de.pos,this.string=de.current(),this.type=me||null,this.state=Ee};function Js(de,me,Ee,Pe){var Ne=de.doc,Xe=Ne.mode,at;me=Jo(Ne,me);var Ct=co(Ne,me.line),St=Gu(de,me.line,Ee),jt=new ji(Ct.text,de.options.tabSize,St),On;for(Pe&&(On=[]);(Pe||jt.pos<me.ch)&&!jt.eol();)jt.start=jt.pos,at=zs(Xe,jt,St.state),Pe&&On.push(new Fa(jt,at,Ur(Ne.mode,St.state)));return Pe?On:new Fa(jt,at,St.state)}function _s(de,me){if(de)for(;;){var Ee=de.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!Ee)break;de=de.slice(0,Ee.index)+de.slice(Ee.index+Ee[0].length);var Pe=Ee[1]?"bgClass":"textClass";me[Pe]==null?me[Pe]=Ee[2]:new RegExp("(?:^|\\s)"+Ee[2]+"(?:$|\\s)").test(me[Pe])||(me[Pe]+=" "+Ee[2])}return de}function wl(de,me,Ee,Pe,Ne,Xe,at){var Ct=Ee.flattenSpans;Ct==null&&(Ct=de.options.flattenSpans);var St=0,jt=null,On=new ji(me,de.options.tabSize,Pe),nn,wi=de.options.addModeClass&&[null];for(me==""&&_s(Lo(Ee,Pe.state),Xe);!On.eol();){if(On.pos>de.options.maxHighlightLength?(Ct=!1,at&&Ni(de,me,Pe,On.pos),On.pos=me.length,nn=null):nn=_s(zs(Ee,On,Pe.state,wi),Xe),wi){var li=wi[0].name;li&&(nn="m-"+(nn?li+" "+nn:li))}if(!Ct||jt!=nn){for(;St<On.start;)St=Math.min(On.start,St+5e3),Ne(St,jt);jt=nn}On.start=On.pos}for(;St<On.pos;){var jr=Math.min(On.pos,St+5e3);Ne(jr,jt),St=jr}}function Sl(de,me,Ee){for(var Pe,Ne,Xe=de.doc,at=Ee?-1:me-(de.doc.mode.innerMode?1e3:100),Ct=me;Ct>at;--Ct){if(Ct<=Xe.first)return Xe.first;var St=co(Xe,Ct-1),jt=St.stateAfter;if(jt&&(!Ee||Ct+(jt instanceof Sa?jt.lookAhead:0)<=Xe.modeFrontier))return Ct;var On=Ht(St.text,null,de.options.tabSize);(Ne==null||Pe>On)&&(Ne=Ct-1,Pe=On)}return Ne}function rl(de,me){if(de.modeFrontier=Math.min(de.modeFrontier,me),!(de.highlightFrontier<me-10)){for(var Ee=de.first,Pe=me-1;Pe>Ee;Pe--){var Ne=co(de,Pe).stateAfter;if(Ne&&(!(Ne instanceof Sa)||Pe+Ne.lookAhead<me)){Ee=Pe+1;break}}de.highlightFrontier=Math.min(de.highlightFrontier,Ee)}}var Il=!1,Zi=!1;function hl(){Il=!0}function Yi(){Zi=!0}function $o(de,me,Ee){this.marker=de,this.from=me,this.to=Ee}function dl(de,me){if(de)for(var Ee=0;Ee<de.length;++Ee){var Pe=de[Ee];if(Pe.marker==me)return Pe}}function Pl(de,me){for(var Ee,Pe=0;Pe<de.length;++Pe)de[Pe]!=me&&(Ee||(Ee=[])).push(de[Pe]);return Ee}function pc(de,me){de.markedSpans=de.markedSpans?de.markedSpans.concat([me]):[me],me.marker.attachLine(de)}function pu(de,me,Ee){var Pe;if(de)for(var Ne=0;Ne<de.length;++Ne){var Xe=de[Ne],at=Xe.marker,Ct=Xe.from==null||(at.inclusiveLeft?Xe.from<=me:Xe.from<me);if(Ct||Xe.from==me&&at.type=="bookmark"&&(!Ee||!Xe.marker.insertLeft)){var St=Xe.to==null||(at.inclusiveRight?Xe.to>=me:Xe.to>me);(Pe||(Pe=[])).push(new $o(at,Xe.from,St?null:Xe.to))}}return Pe}function jl(de,me,Ee){var Pe;if(de)for(var Ne=0;Ne<de.length;++Ne){var Xe=de[Ne],at=Xe.marker,Ct=Xe.to==null||(at.inclusiveRight?Xe.to>=me:Xe.to>me);if(Ct||Xe.from==me&&at.type=="bookmark"&&(!Ee||Xe.marker.insertLeft)){var St=Xe.from==null||(at.inclusiveLeft?Xe.from<=me:Xe.from<me);(Pe||(Pe=[])).push(new $o(at,St?null:Xe.from-me,Xe.to==null?null:Xe.to-me))}}return Pe}function Vu(de,me){if(me.full)return null;var Ee=Xo(de,me.from.line)&&co(de,me.from.line).markedSpans,Pe=Xo(de,me.to.line)&&co(de,me.to.line).markedSpans;if(!Ee&&!Pe)return null;var Ne=me.from.ch,Xe=me.to.ch,at=Fo(me.from,me.to)==0,Ct=pu(Ee,Ne,at),St=jl(Pe,Xe,at),jt=me.text.length==1,On=en(me.text).length+(jt?Ne:0);if(Ct)for(var nn=0;nn<Ct.length;++nn){var wi=Ct[nn];if(wi.to==null){var li=dl(St,wi.marker);li?jt&&(wi.to=li.to==null?null:li.to+On):wi.to=Ne}}if(St)for(var jr=0;jr<St.length;++jr){var no=St[jr];if(no.to!=null&&(no.to+=On),no.from==null){var To=dl(Ct,no.marker);To||(no.from=On,jt&&(Ct||(Ct=[])).push(no))}else no.from+=On,jt&&(Ct||(Ct=[])).push(no)}Ct&&(Ct=Un(Ct)),St&&St!=Ct&&(St=Un(St));var rs=[Ct];if(!jt){var na=me.text.length-2,Ns;if(na>0&&Ct)for(var va=0;va<Ct.length;++va)Ct[va].to==null&&(Ns||(Ns=[])).push(new $o(Ct[va].marker,null,null));for(var ml=0;ml<na;++ml)rs.push(Ns);rs.push(St)}return rs}function Un(de){for(var me=0;me<de.length;++me){var Ee=de[me];Ee.from!=null&&Ee.from==Ee.to&&Ee.marker.clearWhenEmpty!==!1&&de.splice(me--,1)}return de.length?de:null}function xi(de,me,Ee){var Pe=null;if(de.iter(me.line,Ee.line+1,function(li){if(li.markedSpans)for(var jr=0;jr<li.markedSpans.length;++jr){var no=li.markedSpans[jr].marker;no.readOnly&&(!Pe||Hn(Pe,no)==-1)&&(Pe||(Pe=[])).push(no)}}),!Pe)return null;for(var Ne=[{from:me,to:Ee}],Xe=0;Xe<Pe.length;++Xe)for(var at=Pe[Xe],Ct=at.find(0),St=0;St<Ne.length;++St){var jt=Ne[St];if(!(Fo(jt.to,Ct.from)<0||Fo(jt.from,Ct.to)>0)){var On=[St,1],nn=Fo(jt.from,Ct.from),wi=Fo(jt.to,Ct.to);(nn<0||!at.inclusiveLeft&&!nn)&&On.push({from:jt.from,to:Ct.from}),(wi>0||!at.inclusiveRight&&!wi)&&On.push({from:Ct.to,to:jt.to}),Ne.splice.apply(Ne,On),St+=On.length-3}}return Ne}function kn(de){var me=de.markedSpans;if(me){for(var Ee=0;Ee<me.length;++Ee)me[Ee].marker.detachLine(de);de.markedSpans=null}}function it(de,me){if(me){for(var Ee=0;Ee<me.length;++Ee)me[Ee].marker.attachLine(de);de.markedSpans=me}}function fr(de){return de.inclusiveLeft?-1:0}function xr(de){return de.inclusiveRight?1:0}function Rr(de,me){var Ee=de.lines.length-me.lines.length;if(Ee!=0)return Ee;var Pe=de.find(),Ne=me.find(),Xe=Fo(Pe.from,Ne.from)||fr(de)-fr(me);if(Xe)return-Xe;var at=Fo(Pe.to,Ne.to)||xr(de)-xr(me);return at||me.id-de.id}function po(de,me){var Ee=Zi&&de.markedSpans,Pe;if(Ee)for(var Ne=void 0,Xe=0;Xe<Ee.length;++Xe)Ne=Ee[Xe],Ne.marker.collapsed&&(me?Ne.from:Ne.to)==null&&(!Pe||Rr(Pe,Ne.marker)<0)&&(Pe=Ne.marker);return Pe}function ko(de){return po(de,!0)}function Bo(de){return po(de,!1)}function Bs(de,me){var Ee=Zi&&de.markedSpans,Pe;if(Ee)for(var Ne=0;Ne<Ee.length;++Ne){var Xe=Ee[Ne];Xe.marker.collapsed&&(Xe.from==null||Xe.from<me)&&(Xe.to==null||Xe.to>me)&&(!Pe||Rr(Pe,Xe.marker)<0)&&(Pe=Xe.marker)}return Pe}function Vo(de,me,Ee,Pe,Ne){var Xe=co(de,me),at=Zi&&Xe.markedSpans;if(at)for(var Ct=0;Ct<at.length;++Ct){var St=at[Ct];if(St.marker.collapsed){var jt=St.marker.find(0),On=Fo(jt.from,Ee)||fr(St.marker)-fr(Ne),nn=Fo(jt.to,Pe)||xr(St.marker)-xr(Ne);if(!(On>=0&&nn<=0||On<=0&&nn>=0)&&(On<=0&&(St.marker.inclusiveRight&&Ne.inclusiveLeft?Fo(jt.to,Ee)>=0:Fo(jt.to,Ee)>0)||On>=0&&(St.marker.inclusiveRight&&Ne.inclusiveLeft?Fo(jt.from,Pe)<=0:Fo(jt.from,Pe)<0)))return!0}}}function Co(de){for(var me;me=ko(de);)de=me.find(-1,!0).line;return de}function vo(de){for(var me;me=Bo(de);)de=me.find(1,!0).line;return de}function fs(de){for(var me,Ee;me=Bo(de);)de=me.find(1,!0).line,(Ee||(Ee=[])).push(de);return Ee}function tt(de,me){var Ee=co(de,me),Pe=Co(Ee);return Ee==Pe?me:hn(Pe)}function Xt(de,me){if(me>de.lastLine())return me;var Ee=co(de,me),Pe;if(!Dt(de,Ee))return me;for(;Pe=Bo(Ee);)Ee=Pe.find(1,!0).line;return hn(Ee)+1}function Dt(de,me){var Ee=Zi&&me.markedSpans;if(Ee){for(var Pe=void 0,Ne=0;Ne<Ee.length;++Ne)if(Pe=Ee[Ne],!!Pe.marker.collapsed){if(Pe.from==null)return!0;if(!Pe.marker.widgetNode&&Pe.from==0&&Pe.marker.inclusiveLeft&&Kt(de,me,Pe))return!0}}}function Kt(de,me,Ee){if(Ee.to==null){var Pe=Ee.marker.find(1,!0);return Kt(de,Pe.line,dl(Pe.line.markedSpans,Ee.marker))}if(Ee.marker.inclusiveRight&&Ee.to==me.text.length)return!0;for(var Ne=void 0,Xe=0;Xe<me.markedSpans.length;++Xe)if(Ne=me.markedSpans[Xe],Ne.marker.collapsed&&!Ne.marker.widgetNode&&Ne.from==Ee.to&&(Ne.to==null||Ne.to!=Ee.from)&&(Ne.marker.inclusiveLeft||Ee.marker.inclusiveRight)&&Kt(de,me,Ne))return!0}function sn(de){de=Co(de);for(var me=0,Ee=de.parent,Pe=0;Pe<Ee.lines.length;++Pe){var Ne=Ee.lines[Pe];if(Ne==de)break;me+=Ne.height}for(var Xe=Ee.parent;Xe;Ee=Xe,Xe=Ee.parent)for(var at=0;at<Xe.children.length;++at){var Ct=Xe.children[at];if(Ct==Ee)break;me+=Ct.height}return me}function Vn(de){if(de.height==0)return 0;for(var me=de.text.length,Ee,Pe=de;Ee=ko(Pe);){var Ne=Ee.find(0,!0);Pe=Ne.from.line,me+=Ne.from.ch-Ne.to.ch}for(Pe=de;Ee=Bo(Pe);){var Xe=Ee.find(0,!0);me-=Pe.text.length-Xe.from.ch,Pe=Xe.to.line,me+=Pe.text.length-Xe.to.ch}return me}function Qn(de){var me=de.display,Ee=de.doc;me.maxLine=co(Ee,Ee.first),me.maxLineLength=Vn(me.maxLine),me.maxLineChanged=!0,Ee.iter(function(Pe){var Ne=Vn(Pe);Ne>me.maxLineLength&&(me.maxLineLength=Ne,me.maxLine=Pe)})}var zn=function(de,me,Ee){this.text=de,it(this,me),this.height=Ee?Ee(this):1};zn.prototype.lineNo=function(){return hn(this)},zr(zn);function Oi(de,me,Ee,Pe){de.text=me,de.stateAfter&&(de.stateAfter=null),de.styles&&(de.styles=null),de.order!=null&&(de.order=null),kn(de),it(de,Ee);var Ne=Pe?Pe(de):1;Ne!=de.height&&pa(de,Ne)}function Qi(de){de.parent=null,kn(de)}var ri={},cr={};function $r(de,me){if(!de||/^\s*$/.test(de))return null;var Ee=me.addModeClass?cr:ri;return Ee[de]||(Ee[de]=de.replace(/\S+/g,"cm-$&"))}function Yt(de,me){var Ee=$t("span",null,null,Mt?"padding-right: .1px":null),Pe={pre:$t("pre",[Ee],"CodeMirror-line"),content:Ee,col:0,pos:0,cm:de,trailingSpace:!1,splitSpaces:de.getOption("lineWrapping")};me.measure={};for(var Ne=0;Ne<=(me.rest?me.rest.length:0);Ne++){var Xe=Ne?me.rest[Ne-1]:me.line,at=void 0;Pe.pos=0,Pe.addToken=sr,ha(de.display.measure)&&(at=Nr(Xe,de.doc.direction))&&(Pe.addToken=lr(Pe.addToken,at)),Pe.map=[];var Ct=me!=de.display.externalMeasured&&hn(Xe);Qr(Xe,Pe,iu(de,Xe,Ct)),Xe.styleClasses&&(Xe.styleClasses.bgClass&&(Pe.bgClass=ci(Xe.styleClasses.bgClass,Pe.bgClass||"")),Xe.styleClasses.textClass&&(Pe.textClass=ci(Xe.styleClasses.textClass,Pe.textClass||""))),Pe.map.length==0&&Pe.map.push(0,0,Pe.content.appendChild(La(de.display.measure))),Ne==0?(me.measure.map=Pe.map,me.measure.cache={}):((me.measure.maps||(me.measure.maps=[])).push(Pe.map),(me.measure.caches||(me.measure.caches=[])).push({}))}if(Mt){var St=Pe.content.lastChild;(/\bcm-tab\b/.test(St.className)||St.querySelector&&St.querySelector(".cm-tab"))&&(Pe.content.className="cm-tab-wrap-hack")}return $n(de,"renderLine",de,me.line,Pe.pre),Pe.pre.className&&(Pe.textClass=ci(Pe.pre.className,Pe.textClass||"")),Pe}function er(de){var me=Et("span","\u2022","cm-invalidchar");return me.title="\\u"+de.charCodeAt(0).toString(16),me.setAttribute("aria-label",me.title),me}function sr(de,me,Ee,Pe,Ne,Xe,at){if(me){var Ct=de.splitSpaces?Ki(me,de.trailingSpace):me,St=de.cm.state.specialChars,jt=!1,On;if(!St.test(me))de.col+=me.length,On=document.createTextNode(Ct),de.map.push(de.pos,de.pos+me.length,On),It&&dt<9&&(jt=!0),de.pos+=me.length;else{On=document.createDocumentFragment();for(var nn=0;;){St.lastIndex=nn;var wi=St.exec(me),li=wi?wi.index-nn:me.length-nn;if(li){var jr=document.createTextNode(Ct.slice(nn,nn+li));It&&dt<9?On.appendChild(Et("span",[jr])):On.appendChild(jr),de.map.push(de.pos,de.pos+li,jr),de.col+=li,de.pos+=li}if(!wi)break;nn+=li+1;var no=void 0;if(wi[0]==" "){var To=de.cm.options.tabSize,rs=To-de.col%To;no=On.appendChild(Et("span",ni(rs),"cm-tab")),no.setAttribute("role","presentation"),no.setAttribute("cm-text"," "),de.col+=rs}else wi[0]=="\r"||wi[0]==`
|
|
`?(no=On.appendChild(Et("span",wi[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),no.setAttribute("cm-text",wi[0]),de.col+=1):(no=de.cm.options.specialCharPlaceholder(wi[0]),no.setAttribute("cm-text",wi[0]),It&&dt<9?On.appendChild(Et("span",[no])):On.appendChild(no),de.col+=1);de.map.push(de.pos,de.pos+1,no),de.pos++}}if(de.trailingSpace=Ct.charCodeAt(me.length-1)==32,Ee||Pe||Ne||jt||Xe||at){var na=Ee||"";Pe&&(na+=Pe),Ne&&(na+=Ne);var Ns=Et("span",[On],na,Xe);if(at)for(var va in at)at.hasOwnProperty(va)&&va!="style"&&va!="class"&&Ns.setAttribute(va,at[va]);return de.content.appendChild(Ns)}de.content.appendChild(On)}}function Ki(de,me){if(de.length>1&&!/ /.test(de))return de;for(var Ee=me,Pe="",Ne=0;Ne<de.length;Ne++){var Xe=de.charAt(Ne);Xe==" "&&Ee&&(Ne==de.length-1||de.charCodeAt(Ne+1)==32)&&(Xe="\xA0"),Pe+=Xe,Ee=Xe==" "}return Pe}function lr(de,me){return function(Ee,Pe,Ne,Xe,at,Ct,St){Ne=Ne?Ne+" cm-force-border":"cm-force-border";for(var jt=Ee.pos,On=jt+Pe.length;;){for(var nn=void 0,wi=0;wi<me.length&&(nn=me[wi],!(nn.to>jt&&nn.from<=jt));wi++);if(nn.to>=On)return de(Ee,Pe,Ne,Xe,at,Ct,St);de(Ee,Pe.slice(0,nn.to-jt),Ne,Xe,null,Ct,St),Xe=null,Pe=Pe.slice(nn.to-jt),jt=nn.to}}}function vr(de,me,Ee,Pe){var Ne=!Pe&&Ee.widgetNode;Ne&&de.map.push(de.pos,de.pos+me,Ne),!Pe&&de.cm.display.input.needsContentAttribute&&(Ne||(Ne=de.content.appendChild(document.createElement("span"))),Ne.setAttribute("cm-marker",Ee.id)),Ne&&(de.cm.display.input.setUneditable(Ne),de.content.appendChild(Ne)),de.pos+=me,de.trailingSpace=!1}function Qr(de,me,Ee){var Pe=de.markedSpans,Ne=de.text,Xe=0;if(!Pe){for(var at=1;at<Ee.length;at+=2)me.addToken(me,Ne.slice(Xe,Xe=Ee[at]),$r(Ee[at+1],me.cm.options));return}for(var Ct=Ne.length,St=0,jt=1,On="",nn,wi,li=0,jr,no,To,rs,na;;){if(li==St){jr=no=To=wi="",na=null,rs=null,li=1/0;for(var Ns=[],va=void 0,ml=0;ml<Pe.length;++ml){var Os=Pe[ml],ou=Os.marker;if(ou.type=="bookmark"&&Os.from==St&&ou.widgetNode)Ns.push(ou);else if(Os.from<=St&&(Os.to==null||Os.to>St||ou.collapsed&&Os.to==St&&Os.from==St)){if(Os.to!=null&&Os.to!=St&&li>Os.to&&(li=Os.to,no=""),ou.className&&(jr+=" "+ou.className),ou.css&&(wi=(wi?wi+";":"")+ou.css),ou.startStyle&&Os.from==St&&(To+=" "+ou.startStyle),ou.endStyle&&Os.to==li&&(va||(va=[])).push(ou.endStyle,Os.to),ou.title&&((na||(na={})).title=ou.title),ou.attributes)for(var Uc in ou.attributes)(na||(na={}))[Uc]=ou.attributes[Uc];ou.collapsed&&(!rs||Rr(rs.marker,ou)<0)&&(rs=Os)}else Os.from>St&&li>Os.from&&(li=Os.from)}if(va)for(var bh=0;bh<va.length;bh+=2)va[bh+1]==li&&(no+=" "+va[bh]);if(!rs||rs.from==St)for(var Lc=0;Lc<Ns.length;++Lc)vr(me,0,Ns[Lc]);if(rs&&(rs.from||0)==St){if(vr(me,(rs.to==null?Ct+1:rs.to)-St,rs.marker,rs.from==null),rs.to==null)return;rs.to==St&&(rs=!1)}}if(St>=Ct)break;for(var Cd=Math.min(Ct,li);;){if(On){var Mh=St+On.length;if(!rs){var gh=Mh>Cd?On.slice(0,Cd-St):On;me.addToken(me,gh,nn?nn+jr:jr,To,St+gh.length==li?no:"",wi,na)}if(Mh>=Cd){On=On.slice(Cd-St),St=Cd;break}St=Mh,To=""}On=Ne.slice(Xe,Xe=Ee[jt++]),nn=$r(Ee[jt++],me.cm.options)}}}function Mr(de,me,Ee){this.line=me,this.rest=fs(me),this.size=this.rest?hn(en(this.rest))-Ee+1:1,this.node=this.text=null,this.hidden=Dt(de,me)}function Hr(de,me,Ee){for(var Pe=[],Ne,Xe=me;Xe<Ee;Xe=Ne){var at=new Mr(de.doc,co(de.doc,Xe),Xe);Ne=Xe+at.size,Pe.push(at)}return Pe}var Zr=null;function mi(de){Zr?Zr.ops.push(de):de.ownsGroup=Zr={ops:[de],delayedCallbacks:[]}}function cs(de){var me=de.delayedCallbacks,Ee=0;do{for(;Ee<me.length;Ee++)me[Ee].call(null);for(var Pe=0;Pe<de.ops.length;Pe++){var Ne=de.ops[Pe];if(Ne.cursorActivityHandlers)for(;Ne.cursorActivityCalled<Ne.cursorActivityHandlers.length;)Ne.cursorActivityHandlers[Ne.cursorActivityCalled++].call(null,Ne.cm)}}while(Ee<me.length)}function Hs(de,me){var Ee=de.ownsGroup;if(Ee)try{cs(Ee)}finally{Zr=null,me(Ee)}}var js=null;function yr(de,me){var Ee=lo(de,me);if(Ee.length){var Pe=Array.prototype.slice.call(arguments,2),Ne;Zr?Ne=Zr.delayedCallbacks:js?Ne=js:(Ne=js=[],setTimeout(yo,0));for(var Xe=function(Ct){Ne.push(function(){return Ee[Ct].apply(null,Pe)})},at=0;at<Ee.length;++at)Xe(at)}}function yo(){var de=js;js=null;for(var me=0;me<de.length;++me)de[me]()}function es(de,me,Ee,Pe){for(var Ne=0;Ne<me.changes.length;Ne++){var Xe=me.changes[Ne];Xe=="text"?Ii(de,me):Xe=="gutter"?Is(de,me,Ee,Pe):Xe=="class"?Cs(de,me):Xe=="widget"&&Pa(de,me,Pe)}me.changes=null}function Ts(de){return de.node==de.text&&(de.node=Et("div",null,null,"position: relative"),de.text.parentNode&&de.text.parentNode.replaceChild(de.node,de.text),de.node.appendChild(de.text),It&&dt<8&&(de.node.style.zIndex=2)),de.node}function Zs(de,me){var Ee=me.bgClass?me.bgClass+" "+(me.line.bgClass||""):me.line.bgClass;if(Ee&&(Ee+=" CodeMirror-linebackground"),me.background)Ee?me.background.className=Ee:(me.background.parentNode.removeChild(me.background),me.background=null);else if(Ee){var Pe=Ts(me);me.background=Pe.insertBefore(Et("div",null,Ee),Pe.firstChild),de.display.input.setUneditable(me.background)}}function Ls(de,me){var Ee=de.display.externalMeasured;return Ee&&Ee.line==me.line?(de.display.externalMeasured=null,me.measure=Ee.measure,Ee.built):Yt(de,me)}function Ii(de,me){var Ee=me.text.className,Pe=Ls(de,me);me.text==me.node&&(me.node=Pe.pre),me.text.parentNode.replaceChild(Pe.pre,me.text),me.text=Pe.pre,Pe.bgClass!=me.bgClass||Pe.textClass!=me.textClass?(me.bgClass=Pe.bgClass,me.textClass=Pe.textClass,Cs(de,me)):Ee&&(me.text.className=Ee)}function Cs(de,me){Zs(de,me),me.line.wrapClass?Ts(me).className=me.line.wrapClass:me.node!=me.text&&(me.node.className="");var Ee=me.textClass?me.textClass+" "+(me.line.textClass||""):me.line.textClass;me.text.className=Ee||""}function Is(de,me,Ee,Pe){if(me.gutter&&(me.node.removeChild(me.gutter),me.gutter=null),me.gutterBackground&&(me.node.removeChild(me.gutterBackground),me.gutterBackground=null),me.line.gutterClass){var Ne=Ts(me);me.gutterBackground=Et("div",null,"CodeMirror-gutter-background "+me.line.gutterClass,"left: "+(de.options.fixedGutter?Pe.fixedPos:-Pe.gutterTotalWidth)+"px; width: "+Pe.gutterTotalWidth+"px"),de.display.input.setUneditable(me.gutterBackground),Ne.insertBefore(me.gutterBackground,me.text)}var Xe=me.line.gutterMarkers;if(de.options.lineNumbers||Xe){var at=Ts(me),Ct=me.gutter=Et("div",null,"CodeMirror-gutter-wrapper","left: "+(de.options.fixedGutter?Pe.fixedPos:-Pe.gutterTotalWidth)+"px");if(de.display.input.setUneditable(Ct),at.insertBefore(Ct,me.text),me.line.gutterClass&&(Ct.className+=" "+me.line.gutterClass),de.options.lineNumbers&&(!Xe||!Xe["CodeMirror-linenumbers"])&&(me.lineNumber=Ct.appendChild(Et("div",al(de.options,Ee),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+Pe.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+de.display.lineNumInnerWidth+"px"))),Xe)for(var St=0;St<de.display.gutterSpecs.length;++St){var jt=de.display.gutterSpecs[St].className,On=Xe.hasOwnProperty(jt)&&Xe[jt];On&&Ct.appendChild(Et("div",[On],"CodeMirror-gutter-elt","left: "+Pe.gutterLeft[jt]+"px; width: "+Pe.gutterWidth[jt]+"px"))}}}function Pa(de,me,Ee){me.alignable&&(me.alignable=null);for(var Pe=lt("CodeMirror-linewidget"),Ne=me.node.firstChild,Xe=void 0;Ne;Ne=Xe)Xe=Ne.nextSibling,Pe.test(Ne.className)&&me.node.removeChild(Ne);qo(de,me,Ee)}function Gs(de,me,Ee,Pe){var Ne=Ls(de,me);return me.text=me.node=Ne.pre,Ne.bgClass&&(me.bgClass=Ne.bgClass),Ne.textClass&&(me.textClass=Ne.textClass),Cs(de,me),Is(de,me,Ee,Pe),qo(de,me,Pe),me.node}function qo(de,me,Ee){if(eo(de,me.line,me,Ee,!0),me.rest)for(var Pe=0;Pe<me.rest.length;Pe++)eo(de,me.rest[Pe],me,Ee,!1)}function eo(de,me,Ee,Pe,Ne){if(me.widgets)for(var Xe=Ts(Ee),at=0,Ct=me.widgets;at<Ct.length;++at){var St=Ct[at],jt=Et("div",[St.node],"CodeMirror-linewidget"+(St.className?" "+St.className:""));St.handleMouseEvents||jt.setAttribute("cm-ignore-events","true"),bs(St,jt,Ee,Pe),de.display.input.setUneditable(jt),Ne&&St.above?Xe.insertBefore(jt,Ee.gutter||Ee.text):Xe.appendChild(jt),yr(St,"redraw")}}function bs(de,me,Ee,Pe){if(de.noHScroll){(Ee.alignable||(Ee.alignable=[])).push(me);var Ne=Pe.wrapperWidth;me.style.left=Pe.fixedPos+"px",de.coverGutter||(Ne-=Pe.gutterTotalWidth,me.style.paddingLeft=Pe.gutterTotalWidth+"px"),me.style.width=Ne+"px"}de.coverGutter&&(me.style.zIndex=5,me.style.position="relative",de.noHScroll||(me.style.marginLeft=-Pe.gutterTotalWidth+"px"))}function Ta(de){if(de.height!=null)return de.height;var me=de.doc.cm;if(!me)return 0;if(!Yn(document.body,de.node)){var Ee="position: relative;";de.coverGutter&&(Ee+="margin-left: -"+me.display.gutters.offsetWidth+"px;"),de.noHScroll&&(Ee+="width: "+me.display.wrapper.clientWidth+"px;"),xt(me.display.measure,Et("div",[de.node],null,Ee))}return de.height=de.node.parentNode.offsetHeight}function Ms(de,me){for(var Ee=ss(me);Ee!=de.wrapper;Ee=Ee.parentNode)if(!Ee||Ee.nodeType==1&&Ee.getAttribute("cm-ignore-events")=="true"||Ee.parentNode==de.sizer&&Ee!=de.mover)return!0}function ws(de){return de.lineSpace.offsetTop}function Ra(de){return de.mover.offsetHeight-de.lineSpace.offsetHeight}function Aa(de){if(de.cachedPaddingH)return de.cachedPaddingH;var me=xt(de.measure,Et("pre","x","CodeMirror-line-like")),Ee=window.getComputedStyle?window.getComputedStyle(me):me.currentStyle,Pe={left:parseInt(Ee.paddingLeft),right:parseInt(Ee.paddingRight)};return!isNaN(Pe.left)&&!isNaN(Pe.right)&&(de.cachedPaddingH=Pe),Pe}function ga(de){return _i-de.display.nativeBarWidth}function ol(de){return de.display.scroller.clientWidth-ga(de)-de.display.barWidth}function fl(de){return de.display.scroller.clientHeight-ga(de)-de.display.barHeight}function gu(de,me,Ee){var Pe=de.options.lineWrapping,Ne=Pe&&ol(de);if(!me.measure.heights||Pe&&me.measure.width!=Ne){var Xe=me.measure.heights=[];if(Pe){me.measure.width=Ne;for(var at=me.text.firstChild.getClientRects(),Ct=0;Ct<at.length-1;Ct++){var St=at[Ct],jt=at[Ct+1];Math.abs(St.bottom-jt.bottom)>2&&Xe.push((St.bottom+jt.top)/2-Ee.top)}}Xe.push(Ee.bottom-Ee.top)}}function Ys(de,me,Ee){if(de.line==me)return{map:de.measure.map,cache:de.measure.cache};for(var Pe=0;Pe<de.rest.length;Pe++)if(de.rest[Pe]==me)return{map:de.measure.maps[Pe],cache:de.measure.caches[Pe]};for(var Ne=0;Ne<de.rest.length;Ne++)if(hn(de.rest[Ne])>Ee)return{map:de.measure.maps[Ne],cache:de.measure.caches[Ne],before:!0}}function Cu(de,me){me=Co(me);var Ee=hn(me),Pe=de.display.externalMeasured=new Mr(de.doc,me,Ee);Pe.lineN=Ee;var Ne=Pe.built=Yt(de,Pe);return Pe.text=Ne.pre,xt(de.display.lineMeasure,Ne.pre),Pe}function Wo(de,me,Ee,Pe){return au(de,Ml(de,me),Ee,Pe)}function Zu(de,me){if(me>=de.display.viewFrom&&me<de.display.viewTo)return de.display.view[_c(de,me)];var Ee=de.display.externalMeasured;if(Ee&&me>=Ee.lineN&&me<Ee.lineN+Ee.size)return Ee}function Ml(de,me){var Ee=hn(me),Pe=Zu(de,Ee);Pe&&!Pe.text?Pe=null:Pe&&Pe.changes&&(es(de,Pe,Ee,Rc(de)),de.curOp.forceUpdate=!0),Pe||(Pe=Cu(de,me));var Ne=Ys(Pe,me,Ee);return{line:me,view:Pe,rect:null,map:Ne.map,cache:Ne.cache,before:Ne.before,hasHeights:!1}}function au(de,me,Ee,Pe,Ne){me.before&&(Ee=-1);var Xe=Ee+(Pe||""),at;return me.cache.hasOwnProperty(Xe)?at=me.cache[Xe]:(me.rect||(me.rect=me.view.text.getBoundingClientRect()),me.hasHeights||(gu(de,me.view,me.rect),me.hasHeights=!0),at=Bl(de,me,Ee,Pe),at.bogus||(me.cache[Xe]=at)),{left:at.left,right:at.right,top:Ne?at.rtop:at.top,bottom:Ne?at.rbottom:at.bottom}}var Cl={left:0,right:0,top:0,bottom:0};function ll(de,me,Ee){for(var Pe,Ne,Xe,at,Ct,St,jt=0;jt<de.length;jt+=3)if(Ct=de[jt],St=de[jt+1],me<Ct?(Ne=0,Xe=1,at="left"):me<St?(Ne=me-Ct,Xe=Ne+1):(jt==de.length-3||me==St&&de[jt+3]>me)&&(Xe=St-Ct,Ne=Xe-1,me>=St&&(at="right")),Ne!=null){if(Pe=de[jt+2],Ct==St&&Ee==(Pe.insertLeft?"left":"right")&&(at=Ee),Ee=="left"&&Ne==0)for(;jt&&de[jt-2]==de[jt-3]&&de[jt-1].insertLeft;)Pe=de[(jt-=3)+2],at="left";if(Ee=="right"&&Ne==St-Ct)for(;jt<de.length-3&&de[jt+3]==de[jt+4]&&!de[jt+5].insertLeft;)Pe=de[(jt+=3)+2],at="right";break}return{node:Pe,start:Ne,end:Xe,collapse:at,coverStart:Ct,coverEnd:St}}function El(de,me){var Ee=Cl;if(me=="left")for(var Pe=0;Pe<de.length&&(Ee=de[Pe]).left==Ee.right;Pe++);else for(var Ne=de.length-1;Ne>=0&&(Ee=de[Ne]).left==Ee.right;Ne--);return Ee}function Bl(de,me,Ee,Pe){var Ne=ll(me.map,Ee,Pe),Xe=Ne.node,at=Ne.start,Ct=Ne.end,St=Ne.collapse,jt;if(Xe.nodeType==3){for(var On=0;On<4;On++){for(;at&&An(me.line.text.charAt(Ne.coverStart+at));)--at;for(;Ne.coverStart+Ct<Ne.coverEnd&&An(me.line.text.charAt(Ne.coverStart+Ct));)++Ct;if(It&&dt<9&&at==0&&Ct==Ne.coverEnd-Ne.coverStart?jt=Xe.parentNode.getBoundingClientRect():jt=El(Zt(Xe,at,Ct).getClientRects(),Pe),jt.left||jt.right||at==0)break;Ct=at,at=at-1,St="right"}It&&dt<11&&(jt=Xu(de.display.measure,jt))}else{at>0&&(St=Pe="right");var nn;de.options.lineWrapping&&(nn=Xe.getClientRects()).length>1?jt=nn[Pe=="right"?nn.length-1:0]:jt=Xe.getBoundingClientRect()}if(It&&dt<9&&!at&&(!jt||!jt.left&&!jt.right)){var wi=Xe.parentNode.getClientRects()[0];wi?jt={left:wi.left,right:wi.left+hh(de.display),top:wi.top,bottom:wi.bottom}:jt=Cl}for(var li=jt.top-me.rect.top,jr=jt.bottom-me.rect.top,no=(li+jr)/2,To=me.view.measure.heights,rs=0;rs<To.length-1&&!(no<To[rs]);rs++);var na=rs?To[rs-1]:0,Ns=To[rs],va={left:(St=="right"?jt.right:jt.left)-me.rect.left,right:(St=="left"?jt.left:jt.right)-me.rect.left,top:na,bottom:Ns};return!jt.left&&!jt.right&&(va.bogus=!0),de.options.singleCursorHeightPerLine||(va.rtop=li,va.rbottom=jr),va}function Xu(de,me){if(!window.screen||screen.logicalXDPI==null||screen.logicalXDPI==screen.deviceXDPI||!ms(de))return me;var Ee=screen.logicalXDPI/screen.deviceXDPI,Pe=screen.logicalYDPI/screen.deviceYDPI;return{left:me.left*Ee,right:me.right*Ee,top:me.top*Pe,bottom:me.bottom*Pe}}function Dc(de){if(de.measure&&(de.measure.cache={},de.measure.heights=null,de.rest))for(var me=0;me<de.rest.length;me++)de.measure.caches[me]={}}function eu(de){de.display.externalMeasure=null,kt(de.display.lineMeasure);for(var me=0;me<de.display.view.length;me++)Dc(de.display.view[me])}function Yc(de){eu(de),de.display.cachedCharWidth=de.display.cachedTextHeight=de.display.cachedPaddingH=null,de.options.lineWrapping||(de.display.maxLineChanged=!0),de.display.lineNumChars=null}function Tl(){return qt&&ue?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function pl(){return qt&&ue?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function el(de){var me=0;if(de.widgets)for(var Ee=0;Ee<de.widgets.length;++Ee)de.widgets[Ee].above&&(me+=Ta(de.widgets[Ee]));return me}function ru(de,me,Ee,Pe,Ne){if(!Ne){var Xe=el(me);Ee.top+=Xe,Ee.bottom+=Xe}if(Pe=="line")return Ee;Pe||(Pe="local");var at=sn(me);if(Pe=="local"?at+=ws(de.display):at-=de.display.viewOffset,Pe=="page"||Pe=="window"){var Ct=de.display.lineSpace.getBoundingClientRect();at+=Ct.top+(Pe=="window"?0:pl());var St=Ct.left+(Pe=="window"?0:Tl());Ee.left+=St,Ee.right+=St}return Ee.top+=at,Ee.bottom+=at,Ee}function bl(de,me,Ee){if(Ee=="div")return me;var Pe=me.left,Ne=me.top;if(Ee=="page")Pe-=Tl(),Ne-=pl();else if(Ee=="local"||!Ee){var Xe=de.display.sizer.getBoundingClientRect();Pe+=Xe.left,Ne+=Xe.top}var at=de.display.lineSpace.getBoundingClientRect();return{left:Pe-at.left,top:Ne-at.top}}function mu(de,me,Ee,Pe,Ne){return Pe||(Pe=co(de.doc,me.line)),ru(de,Pe,Wo(de,Pe,me.ch,Ne),Ee)}function hs(de,me,Ee,Pe,Ne,Xe){Pe=Pe||co(de.doc,me.line),Ne||(Ne=Ml(de,Pe));function at(jr,no){var To=au(de,Ne,jr,no?"right":"left",Xe);return no?To.left=To.right:To.right=To.left,ru(de,Pe,To,Ee)}var Ct=Nr(Pe,de.doc.direction),St=me.ch,jt=me.sticky;if(St>=Pe.text.length?(St=Pe.text.length,jt="before"):St<=0&&(St=0,jt="after"),!Ct)return at(jt=="before"?St-1:St,jt=="before");function On(jr,no,To){var rs=Ct[no],na=rs.level==1;return at(To?jr-1:jr,na!=To)}var nn=oi(Ct,St,jt),wi=Kn,li=On(St,nn,jt=="before");return wi!=null&&(li.other=On(St,wi,jt!="before")),li}function ps(de,me){var Ee=0;me=Jo(de.doc,me),de.options.lineWrapping||(Ee=hh(de.display)*me.ch);var Pe=co(de.doc,me.line),Ne=sn(Pe)+ws(de.display);return{left:Ee,right:Ee,top:Ne,bottom:Ne+Pe.height}}function kl(de,me,Ee,Pe,Ne){var Xe=Ji(de,me,Ee);return Xe.xRel=Ne,Pe&&(Xe.outside=Pe),Xe}function Vs(de,me,Ee){var Pe=de.doc;if(Ee+=de.display.viewOffset,Ee<0)return kl(Pe.first,0,null,-1,-1);var Ne=Ar(Pe,Ee),Xe=Pe.first+Pe.size-1;if(Ne>Xe)return kl(Pe.first+Pe.size-1,co(Pe,Xe).text.length,null,1,1);me<0&&(me=0);for(var at=co(Pe,Ne);;){var Ct=ai(de,at,Ne,me,Ee),St=Bs(at,Ct.ch+(Ct.xRel>0||Ct.outside>0?1:0));if(!St)return Ct;var jt=St.find(1);if(jt.line==Ne)return jt;at=co(Pe,Ne=jt.line)}}function Br(de,me,Ee,Pe){Pe-=el(me);var Ne=me.text.length,Xe=fo(function(at){return au(de,Ee,at-1).bottom<=Pe},Ne,0);return Ne=fo(function(at){return au(de,Ee,at).top>Pe},Xe,Ne),{begin:Xe,end:Ne}}function Iu(de,me,Ee,Pe){Ee||(Ee=Ml(de,me));var Ne=ru(de,me,au(de,Ee,Pe),"line").top;return Br(de,me,Ee,Ne)}function _t(de,me,Ee,Pe){return de.bottom<=Ee?!1:de.top>Ee?!0:(Pe?de.left:de.right)>me}function ai(de,me,Ee,Pe,Ne){Ne-=sn(me);var Xe=Ml(de,me),at=el(me),Ct=0,St=me.text.length,jt=!0,On=Nr(me,de.doc.direction);if(On){var nn=(de.options.lineWrapping?ch:zh)(de,me,Ee,Xe,On,Pe,Ne);jt=nn.level!=1,Ct=jt?nn.from:nn.to-1,St=jt?nn.to:nn.from-1}var wi=null,li=null,jr=fo(function(ml){var Os=au(de,Xe,ml);return Os.top+=at,Os.bottom+=at,_t(Os,Pe,Ne,!1)?(Os.top<=Ne&&Os.left<=Pe&&(wi=ml,li=Os),!0):!1},Ct,St),no,To,rs=!1;if(li){var na=Pe-li.left<li.right-Pe,Ns=na==jt;jr=wi+(Ns?0:1),To=Ns?"after":"before",no=na?li.left:li.right}else{!jt&&(jr==St||jr==Ct)&&jr++,To=jr==0?"after":jr==me.text.length?"before":au(de,Xe,jr-(jt?1:0)).bottom+at<=Ne==jt?"after":"before";var va=hs(de,Ji(Ee,jr,To),"line",me,Xe);no=va.left,rs=Ne<va.top?-1:Ne>=va.bottom?1:0}return jr=Gn(me.text,jr,1),kl(Ee,jr,To,rs,Pe-no)}function zh(de,me,Ee,Pe,Ne,Xe,at){var Ct=fo(function(nn){var wi=Ne[nn],li=wi.level!=1;return _t(hs(de,Ji(Ee,li?wi.to:wi.from,li?"before":"after"),"line",me,Pe),Xe,at,!0)},0,Ne.length-1),St=Ne[Ct];if(Ct>0){var jt=St.level!=1,On=hs(de,Ji(Ee,jt?St.from:St.to,jt?"after":"before"),"line",me,Pe);_t(On,Xe,at,!0)&&On.top>at&&(St=Ne[Ct-1])}return St}function ch(de,me,Ee,Pe,Ne,Xe,at){var Ct=Br(de,me,Pe,at),St=Ct.begin,jt=Ct.end;/\s/.test(me.text.charAt(jt-1))&&jt--;for(var On=null,nn=null,wi=0;wi<Ne.length;wi++){var li=Ne[wi];if(!(li.from>=jt||li.to<=St)){var jr=li.level!=1,no=au(de,Pe,jr?Math.min(jt,li.to)-1:Math.max(St,li.from)).right,To=no<Xe?Xe-no+1e9:no-Xe;(!On||nn>To)&&(On=li,nn=To)}}return On||(On=Ne[Ne.length-1]),On.from<St&&(On={from:St,to:On.to,level:On.level}),On.to>jt&&(On={from:On.from,to:jt,level:On.level}),On}var rc;function Ec(de){if(de.cachedTextHeight!=null)return de.cachedTextHeight;if(rc==null){rc=Et("pre",null,"CodeMirror-line-like");for(var me=0;me<49;++me)rc.appendChild(document.createTextNode("x")),rc.appendChild(Et("br"));rc.appendChild(document.createTextNode("x"))}xt(de.measure,rc);var Ee=rc.offsetHeight/50;return Ee>3&&(de.cachedTextHeight=Ee),kt(de.measure),Ee||1}function hh(de){if(de.cachedCharWidth!=null)return de.cachedCharWidth;var me=Et("span","xxxxxxxxxx"),Ee=Et("pre",[me],"CodeMirror-line-like");xt(de.measure,Ee);var Pe=me.getBoundingClientRect(),Ne=(Pe.right-Pe.left)/10;return Ne>2&&(de.cachedCharWidth=Ne),Ne||10}function Rc(de){for(var me=de.display,Ee={},Pe={},Ne=me.gutters.clientLeft,Xe=me.gutters.firstChild,at=0;Xe;Xe=Xe.nextSibling,++at){var Ct=de.display.gutterSpecs[at].className;Ee[Ct]=Xe.offsetLeft+Xe.clientLeft+Ne,Pe[Ct]=Xe.clientWidth}return{fixedPos:od(me),gutterTotalWidth:me.gutters.offsetWidth,gutterLeft:Ee,gutterWidth:Pe,wrapperWidth:me.wrapper.clientWidth}}function od(de){return de.scroller.getBoundingClientRect().left-de.sizer.getBoundingClientRect().left}function ku(de){var me=Ec(de.display),Ee=de.options.lineWrapping,Pe=Ee&&Math.max(5,de.display.scroller.clientWidth/hh(de.display)-3);return function(Ne){if(Dt(de.doc,Ne))return 0;var Xe=0;if(Ne.widgets)for(var at=0;at<Ne.widgets.length;at++)Ne.widgets[at].height&&(Xe+=Ne.widgets[at].height);return Ee?Xe+(Math.ceil(Ne.text.length/Pe)||1)*me:Xe+me}}function $s(de){var me=de.doc,Ee=ku(de);me.iter(function(Pe){var Ne=Ee(Pe);Ne!=Pe.height&&pa(Pe,Ne)})}function zc(de,me,Ee,Pe){var Ne=de.display;if(!Ee&&ss(me).getAttribute("cm-not-content")=="true")return null;var Xe,at,Ct=Ne.lineSpace.getBoundingClientRect();try{Xe=me.clientX-Ct.left,at=me.clientY-Ct.top}catch(nn){return null}var St=Vs(de,Xe,at),jt;if(Pe&&St.xRel>0&&(jt=co(de.doc,St.line).text).length==St.ch){var On=Ht(jt,jt.length,de.options.tabSize)-jt.length;St=Ji(St.line,Math.max(0,Math.round((Xe-Aa(de.display).left)/hh(de.display))-On))}return St}function _c(de,me){if(me>=de.display.viewTo||(me-=de.display.viewFrom,me<0))return null;for(var Ee=de.display.view,Pe=0;Pe<Ee.length;Pe++)if(me-=Ee[Pe].size,me<0)return Pe}function Au(de,me,Ee,Pe){me==null&&(me=de.doc.first),Ee==null&&(Ee=de.doc.first+de.doc.size),Pe||(Pe=0);var Ne=de.display;if(Pe&&Ee<Ne.viewTo&&(Ne.updateLineNumbers==null||Ne.updateLineNumbers>me)&&(Ne.updateLineNumbers=me),de.curOp.viewChanged=!0,me>=Ne.viewTo)Zi&&tt(de.doc,me)<Ne.viewTo&&Yu(de);else if(Ee<=Ne.viewFrom)Zi&&Xt(de.doc,Ee+Pe)>Ne.viewFrom?Yu(de):(Ne.viewFrom+=Pe,Ne.viewTo+=Pe);else if(me<=Ne.viewFrom&&Ee>=Ne.viewTo)Yu(de);else if(me<=Ne.viewFrom){var Xe=Ch(de,Ee,Ee+Pe,1);Xe?(Ne.view=Ne.view.slice(Xe.index),Ne.viewFrom=Xe.lineN,Ne.viewTo+=Pe):Yu(de)}else if(Ee>=Ne.viewTo){var at=Ch(de,me,me,-1);at?(Ne.view=Ne.view.slice(0,at.index),Ne.viewTo=at.lineN):Yu(de)}else{var Ct=Ch(de,me,me,-1),St=Ch(de,Ee,Ee+Pe,1);Ct&&St?(Ne.view=Ne.view.slice(0,Ct.index).concat(Hr(de,Ct.lineN,St.lineN)).concat(Ne.view.slice(St.index)),Ne.viewTo+=Pe):Yu(de)}var jt=Ne.externalMeasured;jt&&(Ee<jt.lineN?jt.lineN+=Pe:me<jt.lineN+jt.size&&(Ne.externalMeasured=null))}function tl(de,me,Ee){de.curOp.viewChanged=!0;var Pe=de.display,Ne=de.display.externalMeasured;if(Ne&&me>=Ne.lineN&&me<Ne.lineN+Ne.size&&(Pe.externalMeasured=null),!(me<Pe.viewFrom||me>=Pe.viewTo)){var Xe=Pe.view[_c(de,me)];if(Xe.node!=null){var at=Xe.changes||(Xe.changes=[]);Hn(at,Ee)==-1&&at.push(Ee)}}}function Yu(de){de.display.viewFrom=de.display.viewTo=de.doc.first,de.display.view=[],de.display.viewOffset=0}function Ch(de,me,Ee,Pe){var Ne=_c(de,me),Xe,at=de.display.view;if(!Zi||Ee==de.doc.first+de.doc.size)return{index:Ne,lineN:Ee};for(var Ct=de.display.viewFrom,St=0;St<Ne;St++)Ct+=at[St].size;if(Ct!=me){if(Pe>0){if(Ne==at.length-1)return null;Xe=Ct+at[Ne].size-me,Ne++}else Xe=Ct-me;me+=Xe,Ee+=Xe}for(;tt(de.doc,Ee)!=Ee;){if(Ne==(Pe<0?0:at.length-1))return null;Ee+=Pe*at[Ne-(Pe<0?1:0)].size,Ne+=Pe}return{index:Ne,lineN:Ee}}function Du(de,me,Ee){var Pe=de.display,Ne=Pe.view;Ne.length==0||me>=Pe.viewTo||Ee<=Pe.viewFrom?(Pe.view=Hr(de,me,Ee),Pe.viewFrom=me):(Pe.viewFrom>me?Pe.view=Hr(de,me,Pe.viewFrom).concat(Pe.view):Pe.viewFrom<me&&(Pe.view=Pe.view.slice(_c(de,me))),Pe.viewFrom=me,Pe.viewTo<Ee?Pe.view=Pe.view.concat(Hr(de,Pe.viewTo,Ee)):Pe.viewTo>Ee&&(Pe.view=Pe.view.slice(0,_c(de,Ee)))),Pe.viewTo=Ee}function Eh(de){for(var me=de.display.view,Ee=0,Pe=0;Pe<me.length;Pe++){var Ne=me[Pe];!Ne.hidden&&(!Ne.node||Ne.changes)&&++Ee}return Ee}function Ju(de){de.display.input.showSelection(de.display.input.prepareSelection())}function xf(de,me){me===void 0&&(me=!0);for(var Ee=de.doc,Pe={},Ne=Pe.cursors=document.createDocumentFragment(),Xe=Pe.selection=document.createDocumentFragment(),at=0;at<Ee.sel.ranges.length;at++)if(!(!me&&at==Ee.sel.primIndex)){var Ct=Ee.sel.ranges[at];if(!(Ct.from().line>=de.display.viewTo||Ct.to().line<de.display.viewFrom)){var St=Ct.empty();(St||de.options.showCursorWhenSelecting)&&ul(de,Ct.head,Ne),St||Dl(de,Ct,Xe)}}return Pe}function ul(de,me,Ee){var Pe=hs(de,me,"div",null,null,!de.options.singleCursorHeightPerLine),Ne=Ee.appendChild(Et("div","\xA0","CodeMirror-cursor"));if(Ne.style.left=Pe.left+"px",Ne.style.top=Pe.top+"px",Ne.style.height=Math.max(0,Pe.bottom-Pe.top)*de.options.cursorHeight+"px",Pe.other){var Xe=Ee.appendChild(Et("div","\xA0","CodeMirror-cursor CodeMirror-secondarycursor"));Xe.style.display="",Xe.style.left=Pe.other.left+"px",Xe.style.top=Pe.other.top+"px",Xe.style.height=(Pe.other.bottom-Pe.other.top)*.85+"px"}}function Ka(de,me){return de.top-me.top||de.left-me.left}function Dl(de,me,Ee){var Pe=de.display,Ne=de.doc,Xe=document.createDocumentFragment(),at=Aa(de.display),Ct=at.left,St=Math.max(Pe.sizerWidth,ol(de)-Pe.sizer.offsetLeft)-at.right,jt=Ne.direction=="ltr";function On(Ns,va,ml,Os){va<0&&(va=0),va=Math.round(va),Os=Math.round(Os),Xe.appendChild(Et("div",null,"CodeMirror-selected","position: absolute; left: "+Ns+`px;
|
|
top: `+va+"px; width: "+(ml==null?St-Ns:ml)+`px;
|
|
height: `+(Os-va)+"px"))}function nn(Ns,va,ml){var Os=co(Ne,Ns),ou=Os.text.length,Uc,bh;function Lc(gh,Gd){return mu(de,Ji(Ns,gh),"div",Os,Gd)}function Cd(gh,Gd,Gh){var mh=Iu(de,Os,null,gh),Fu=Gd=="ltr"==(Gh=="after")?"left":"right",th=Gh=="after"?mh.begin:mh.end-(/\s/.test(Os.text.charAt(mh.end-1))?2:1);return Lc(th,Fu)[Fu]}var Mh=Nr(Os,Ne.direction);return qn(Mh,va||0,ml==null?ou:ml,function(gh,Gd,Gh,mh){var Fu=Gh=="ltr",th=Lc(gh,Fu?"left":"right"),ld=Lc(Gd-1,Fu?"right":"left"),bc=va==null&&gh==0,hg=ml==null&&Gd==ou,Jc=mh==0,Wp=!Mh||mh==Mh.length-1;if(ld.top-th.top<=3){var vh=(jt?bc:hg)&&Jc,mx=(jt?hg:bc)&&Wp,dp=vh?Ct:(Fu?th:ld).left,Gf=mx?St:(Fu?ld:th).right;On(dp,th.top,Gf-dp,th.bottom)}else{var Mf,Mc,Xh,ud;Fu?(Mf=jt&&bc&&Jc?Ct:th.left,Mc=jt?St:Cd(gh,Gh,"before"),Xh=jt?Ct:Cd(Gd,Gh,"after"),ud=jt&&hg&&Wp?St:ld.right):(Mf=jt?Cd(gh,Gh,"before"):Ct,Mc=!jt&&bc&&Jc?St:th.right,Xh=!jt&&hg&&Wp?Ct:ld.left,ud=jt?Cd(Gd,Gh,"after"):St),On(Mf,th.top,Mc-Mf,th.bottom),th.bottom<ld.top&&On(Ct,th.bottom,null,ld.top),On(Xh,ld.top,ud-Xh,ld.bottom)}(!Uc||Ka(th,Uc)<0)&&(Uc=th),Ka(ld,Uc)<0&&(Uc=ld),(!bh||Ka(th,bh)<0)&&(bh=th),Ka(ld,bh)<0&&(bh=ld)}),{start:Uc,end:bh}}var wi=me.from(),li=me.to();if(wi.line==li.line)nn(wi.line,wi.ch,li.ch);else{var jr=co(Ne,wi.line),no=co(Ne,li.line),To=Co(jr)==Co(no),rs=nn(wi.line,wi.ch,To?jr.text.length+1:null).end,na=nn(li.line,To?0:null,li.ch).start;To&&(rs.top<na.top-2?(On(rs.right,rs.top,null,rs.bottom),On(Ct,na.top,na.left,na.bottom)):On(rs.right,rs.top,na.left-rs.right,rs.bottom)),rs.bottom<na.top&&On(Ct,rs.bottom,null,na.top)}Ee.appendChild(Xe)}function Ol(de){if(de.state.focused){var me=de.display;clearInterval(me.blinker);var Ee=!0;me.cursorDiv.style.visibility="",de.options.cursorBlinkRate>0?me.blinker=setInterval(function(){de.hasFocus()||tf(de),me.cursorDiv.style.visibility=(Ee=!Ee)?"":"hidden"},de.options.cursorBlinkRate):de.options.cursorBlinkRate<0&&(me.cursorDiv.style.visibility="hidden")}}function Ou(de){de.state.focused||(de.display.input.focus(),Jl(de))}function Wu(de){de.state.delayingBlurEvent=!0,setTimeout(function(){de.state.delayingBlurEvent&&(de.state.delayingBlurEvent=!1,tf(de))},100)}function Jl(de,me){de.state.delayingBlurEvent&&(de.state.delayingBlurEvent=!1),de.options.readOnly!="nocursor"&&(de.state.focused||($n(de,"focus",de,me),de.state.focused=!0,Jn(de.display.wrapper,"CodeMirror-focused"),!de.curOp&&de.display.selForContextMenu!=de.doc.sel&&(de.display.input.reset(),Mt&&setTimeout(function(){return de.display.input.reset(!0)},20)),de.display.input.receivedFocus()),Ol(de))}function tf(de,me){de.state.delayingBlurEvent||(de.state.focused&&($n(de,"blur",de,me),de.state.focused=!1,Bt(de.display.wrapper,"CodeMirror-focused")),clearInterval(de.display.blinker),setTimeout(function(){de.state.focused||(de.display.shift=!1)},150))}function la(de){for(var me=de.display,Ee=me.lineDiv.offsetTop,Pe=0;Pe<me.view.length;Pe++){var Ne=me.view[Pe],Xe=de.options.lineWrapping,at=void 0,Ct=0;if(!Ne.hidden){if(It&&dt<8){var St=Ne.node.offsetTop+Ne.node.offsetHeight;at=St-Ee,Ee=St}else{var jt=Ne.node.getBoundingClientRect();at=jt.bottom-jt.top,!Xe&&Ne.text.firstChild&&(Ct=Ne.text.firstChild.getBoundingClientRect().right-jt.left-1)}var On=Ne.line.height-at;if((On>.005||On<-.005)&&(pa(Ne.line,at),rg(Ne.line),Ne.rest))for(var nn=0;nn<Ne.rest.length;nn++)rg(Ne.rest[nn]);if(Ct>de.display.sizerWidth){var wi=Math.ceil(Ct/hh(de.display));wi>de.display.maxLineLength&&(de.display.maxLineLength=wi,de.display.maxLine=Ne.line,de.display.maxLineChanged=!0)}}}}function rg(de){if(de.widgets)for(var me=0;me<de.widgets.length;++me){var Ee=de.widgets[me],Pe=Ee.node.parentNode;Pe&&(Ee.height=Pe.offsetHeight)}}function sl(de,me,Ee){var Pe=Ee&&Ee.top!=null?Math.max(0,Ee.top):de.scroller.scrollTop;Pe=Math.floor(Pe-ws(de));var Ne=Ee&&Ee.bottom!=null?Ee.bottom:Pe+de.wrapper.clientHeight,Xe=Ar(me,Pe),at=Ar(me,Ne);if(Ee&&Ee.ensure){var Ct=Ee.ensure.from.line,St=Ee.ensure.to.line;Ct<Xe?(Xe=Ct,at=Ar(me,sn(co(me,Ct))+de.wrapper.clientHeight)):Math.min(St,me.lastLine())>=at&&(Xe=Ar(me,sn(co(me,St))-de.wrapper.clientHeight),at=St)}return{from:Xe,to:Math.max(at,Xe+1)}}function Uh(de,me){if(!pi(de,"scrollCursorIntoView")){var Ee=de.display,Pe=Ee.sizer.getBoundingClientRect(),Ne=null;if(me.top+Pe.top<0?Ne=!0:me.bottom+Pe.top>(window.innerHeight||document.documentElement.clientHeight)&&(Ne=!1),Ne!=null&&!on){var Xe=Et("div","\u200B",null,`position: absolute;
|
|
top: `+(me.top-Ee.viewOffset-ws(de.display))+`px;
|
|
height: `+(me.bottom-me.top+ga(de)+Ee.barHeight)+`px;
|
|
left: `+me.left+"px; width: "+Math.max(2,me.right-me.left)+"px;");de.display.lineSpace.appendChild(Xe),Xe.scrollIntoView(Ne),de.display.lineSpace.removeChild(Xe)}}}function Jh(de,me,Ee,Pe){Pe==null&&(Pe=0);var Ne;!de.options.lineWrapping&&me==Ee&&(me=me.ch?Ji(me.line,me.sticky=="before"?me.ch-1:me.ch,"after"):me,Ee=me.sticky=="before"?Ji(me.line,me.ch+1,"before"):me);for(var Xe=0;Xe<5;Xe++){var at=!1,Ct=hs(de,me),St=!Ee||Ee==me?Ct:hs(de,Ee);Ne={left:Math.min(Ct.left,St.left),top:Math.min(Ct.top,St.top)-Pe,right:Math.max(Ct.left,St.left),bottom:Math.max(Ct.bottom,St.bottom)+Pe};var jt=lp(de,Ne),On=de.doc.scrollTop,nn=de.doc.scrollLeft;if(jt.scrollTop!=null&&(Pf(de,jt.scrollTop),Math.abs(de.doc.scrollTop-On)>1&&(at=!0)),jt.scrollLeft!=null&&(nf(de,jt.scrollLeft),Math.abs(de.doc.scrollLeft-nn)>1&&(at=!0)),!at)break}return Ne}function lu(de,me){var Ee=lp(de,me);Ee.scrollTop!=null&&Pf(de,Ee.scrollTop),Ee.scrollLeft!=null&&nf(de,Ee.scrollLeft)}function lp(de,me){var Ee=de.display,Pe=Ec(de.display);me.top<0&&(me.top=0);var Ne=de.curOp&&de.curOp.scrollTop!=null?de.curOp.scrollTop:Ee.scroller.scrollTop,Xe=fl(de),at={};me.bottom-me.top>Xe&&(me.bottom=me.top+Xe);var Ct=de.doc.height+Ra(Ee),St=me.top<Pe,jt=me.bottom>Ct-Pe;if(me.top<Ne)at.scrollTop=St?0:me.top;else if(me.bottom>Ne+Xe){var On=Math.min(me.top,(jt?Ct:me.bottom)-Xe);On!=Ne&&(at.scrollTop=On)}var nn=de.options.fixedGutter?0:Ee.gutters.offsetWidth,wi=de.curOp&&de.curOp.scrollLeft!=null?de.curOp.scrollLeft:Ee.scroller.scrollLeft-nn,li=ol(de)-Ee.gutters.offsetWidth,jr=me.right-me.left>li;return jr&&(me.right=me.left+li),me.left<10?at.scrollLeft=0:me.left<wi?at.scrollLeft=Math.max(0,me.left+nn-(jr?0:10)):me.right>li+wi-3&&(at.scrollLeft=me.right+(jr?0:10)-li),at}function wf(de,me){me!=null&&(_h(de),de.curOp.scrollTop=(de.curOp.scrollTop==null?de.doc.scrollTop:de.curOp.scrollTop)+me)}function qh(de){_h(de);var me=de.getCursor();de.curOp.scrollToPos={from:me,to:me,margin:de.options.cursorScrollMargin}}function Sf(de,me,Ee){(me!=null||Ee!=null)&&_h(de),me!=null&&(de.curOp.scrollLeft=me),Ee!=null&&(de.curOp.scrollTop=Ee)}function ql(de,me){_h(de),de.curOp.scrollToPos=me}function _h(de){var me=de.curOp.scrollToPos;if(me){de.curOp.scrollToPos=null;var Ee=ps(de,me.from),Pe=ps(de,me.to);Hp(de,Ee,Pe,me.margin)}}function Hp(de,me,Ee,Pe){var Ne=lp(de,{left:Math.min(me.left,Ee.left),top:Math.min(me.top,Ee.top)-Pe,right:Math.max(me.right,Ee.right),bottom:Math.max(me.bottom,Ee.bottom)+Pe});Sf(de,Ne.scrollLeft,Ne.scrollTop)}function Pf(de,me){Math.abs(de.doc.scrollTop-me)<2||(Me||o0(de,{top:me}),Vp(de,me,!0),Me&&o0(de),Wl(de,100))}function Vp(de,me,Ee){me=Math.max(0,Math.min(de.display.scroller.scrollHeight-de.display.scroller.clientHeight,me)),!(de.display.scroller.scrollTop==me&&!Ee)&&(de.doc.scrollTop=me,de.display.scrollbars.setScrollTop(me),de.display.scroller.scrollTop!=me&&(de.display.scroller.scrollTop=me))}function nf(de,me,Ee,Pe){me=Math.max(0,Math.min(me,de.display.scroller.scrollWidth-de.display.scroller.clientWidth)),!((Ee?me==de.doc.scrollLeft:Math.abs(de.doc.scrollLeft-me)<2)&&!Pe)&&(de.doc.scrollLeft=me,V0(de),de.display.scroller.scrollLeft!=me&&(de.display.scroller.scrollLeft=me),de.display.scrollbars.setScrollLeft(me))}function gl(de){var me=de.display,Ee=me.gutters.offsetWidth,Pe=Math.round(de.doc.height+Ra(de.display));return{clientHeight:me.scroller.clientHeight,viewHeight:me.wrapper.clientHeight,scrollWidth:me.scroller.scrollWidth,clientWidth:me.scroller.clientWidth,viewWidth:me.wrapper.clientWidth,barLeft:de.options.fixedGutter?Ee:0,docHeight:Pe,scrollHeight:Pe+ga(de)+me.barHeight,nativeBarWidth:me.nativeBarWidth,gutterWidth:Ee}}var Xl=function(de,me,Ee){this.cm=Ee;var Pe=this.vert=Et("div",[Et("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),Ne=this.horiz=Et("div",[Et("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");Pe.tabIndex=Ne.tabIndex=-1,de(Pe),de(Ne),Vr(Pe,"scroll",function(){Pe.clientHeight&&me(Pe.scrollTop,"vertical")}),Vr(Ne,"scroll",function(){Ne.clientWidth&&me(Ne.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,It&&dt<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Xl.prototype.update=function(de){var me=de.scrollWidth>de.clientWidth+1,Ee=de.scrollHeight>de.clientHeight+1,Pe=de.nativeBarWidth;if(Ee){this.vert.style.display="block",this.vert.style.bottom=me?Pe+"px":"0";var Ne=de.viewHeight-(me?Pe:0);this.vert.firstChild.style.height=Math.max(0,de.scrollHeight-de.clientHeight+Ne)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(me){this.horiz.style.display="block",this.horiz.style.right=Ee?Pe+"px":"0",this.horiz.style.left=de.barLeft+"px";var Xe=de.viewWidth-de.barLeft-(Ee?Pe:0);this.horiz.firstChild.style.width=Math.max(0,de.scrollWidth-de.clientWidth+Xe)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&de.clientHeight>0&&(Pe==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:Ee?Pe:0,bottom:me?Pe:0}},Xl.prototype.setScrollLeft=function(de){this.horiz.scrollLeft!=de&&(this.horiz.scrollLeft=de),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Xl.prototype.setScrollTop=function(de){this.vert.scrollTop!=de&&(this.vert.scrollTop=de),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Xl.prototype.zeroWidthHack=function(){var de=Ce&&!rn?"12px":"18px";this.horiz.style.height=this.vert.style.width=de,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new At,this.disableVert=new At},Xl.prototype.enableZeroWidthBar=function(de,me,Ee){de.style.pointerEvents="auto";function Pe(){var Ne=de.getBoundingClientRect(),Xe=Ee=="vert"?document.elementFromPoint(Ne.right-1,(Ne.top+Ne.bottom)/2):document.elementFromPoint((Ne.right+Ne.left)/2,Ne.bottom-1);Xe!=de?de.style.pointerEvents="none":me.set(1e3,Pe)}me.set(1e3,Pe)},Xl.prototype.clear=function(){var de=this.horiz.parentNode;de.removeChild(this.horiz),de.removeChild(this.vert)};var oc=function(){};oc.prototype.update=function(){return{bottom:0,right:0}},oc.prototype.setScrollLeft=function(){},oc.prototype.setScrollTop=function(){},oc.prototype.clear=function(){};function Ac(de,me){me||(me=gl(de));var Ee=de.display.barWidth,Pe=de.display.barHeight;gr(de,me);for(var Ne=0;Ne<4&&Ee!=de.display.barWidth||Pe!=de.display.barHeight;Ne++)Ee!=de.display.barWidth&&de.options.lineWrapping&&la(de),gr(de,gl(de)),Ee=de.display.barWidth,Pe=de.display.barHeight}function gr(de,me){var Ee=de.display,Pe=Ee.scrollbars.update(me);Ee.sizer.style.paddingRight=(Ee.barWidth=Pe.right)+"px",Ee.sizer.style.paddingBottom=(Ee.barHeight=Pe.bottom)+"px",Ee.heightForcer.style.borderBottom=Pe.bottom+"px solid transparent",Pe.right&&Pe.bottom?(Ee.scrollbarFiller.style.display="block",Ee.scrollbarFiller.style.height=Pe.bottom+"px",Ee.scrollbarFiller.style.width=Pe.right+"px"):Ee.scrollbarFiller.style.display="",Pe.bottom&&de.options.coverGutterNextToScrollbar&&de.options.fixedGutter?(Ee.gutterFiller.style.display="block",Ee.gutterFiller.style.height=Pe.bottom+"px",Ee.gutterFiller.style.width=me.gutterWidth+"px"):Ee.gutterFiller.style.display=""}var Hh={native:Xl,null:oc};function Cf(de){de.display.scrollbars&&(de.display.scrollbars.clear(),de.display.scrollbars.addClass&&Bt(de.display.wrapper,de.display.scrollbars.addClass)),de.display.scrollbars=new Hh[de.options.scrollbarStyle](function(me){de.display.wrapper.insertBefore(me,de.display.scrollbarFiller),Vr(me,"mousedown",function(){de.state.focused&&setTimeout(function(){return de.display.input.focus()},0)}),me.setAttribute("cm-not-content","true")},function(me,Ee){Ee=="horizontal"?nf(de,me):Pf(de,me)},de),de.display.scrollbars.addClass&&Jn(de.display.wrapper,de.display.scrollbars.addClass)}var Rl=0;function Va(de){de.curOp={cm:de,viewChanged:!1,startHeight:de.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Rl},mi(de.curOp)}function Nc(de){var me=de.curOp;me&&Hs(me,function(Ee){for(var Pe=0;Pe<Ee.ops.length;Pe++)Ee.ops[Pe].cm.curOp=null;Ef(Ee)})}function Ef(de){for(var me=de.ops,Ee=0;Ee<me.length;Ee++)rm(me[Ee]);for(var Pe=0;Pe<me.length;Pe++)jp(me[Pe]);for(var Ne=0;Ne<me.length;Ne++)Vd(me[Ne]);for(var Xe=0;Xe<me.length;Xe++)bu(me[Xe]);for(var at=0;at<me.length;at++)og(me[at])}function rm(de){var me=de.cm,Ee=me.display;nx(me),de.updateMaxLine&&Qn(me),de.mustUpdate=de.viewChanged||de.forceUpdate||de.scrollTop!=null||de.scrollToPos&&(de.scrollToPos.from.line<Ee.viewFrom||de.scrollToPos.to.line>=Ee.viewTo)||Ee.maxLineChanged&&me.options.lineWrapping,de.update=de.mustUpdate&&new om(me,de.mustUpdate&&{top:de.scrollTop,ensure:de.scrollToPos},de.forceUpdate)}function jp(de){de.updatedDisplay=de.mustUpdate&&r0(de.cm,de.update)}function Vd(de){var me=de.cm,Ee=me.display;de.updatedDisplay&&la(me),de.barMeasure=gl(me),Ee.maxLineChanged&&!me.options.lineWrapping&&(de.adjustWidthTo=Wo(me,Ee.maxLine,Ee.maxLine.text.length).left+3,me.display.sizerWidth=de.adjustWidthTo,de.barMeasure.scrollWidth=Math.max(Ee.scroller.clientWidth,Ee.sizer.offsetLeft+de.adjustWidthTo+ga(me)+me.display.barWidth),de.maxScrollLeft=Math.max(0,Ee.sizer.offsetLeft+de.adjustWidthTo-ol(me))),(de.updatedDisplay||de.selectionChanged)&&(de.preparedSelection=Ee.input.prepareSelection())}function bu(de){var me=de.cm;de.adjustWidthTo!=null&&(me.display.sizer.style.minWidth=de.adjustWidthTo+"px",de.maxScrollLeft<me.doc.scrollLeft&&nf(me,Math.min(me.display.scroller.scrollLeft,de.maxScrollLeft),!0),me.display.maxLineChanged=!1);var Ee=de.focus&&de.focus==gn();de.preparedSelection&&me.display.input.showSelection(de.preparedSelection,Ee),(de.updatedDisplay||de.startHeight!=me.doc.height)&&Ac(me,de.barMeasure),de.updatedDisplay&&Em(me,de.barMeasure),de.selectionChanged&&Ol(me),me.state.focused&&de.updateInput&&me.display.input.reset(de.typing),Ee&&Ou(de.cm)}function og(de){var me=de.cm,Ee=me.display,Pe=me.doc;if(de.updatedDisplay&&Ru(me,de.update),Ee.wheelStartX!=null&&(de.scrollTop!=null||de.scrollLeft!=null||de.scrollToPos)&&(Ee.wheelStartX=Ee.wheelStartY=null),de.scrollTop!=null&&Vp(me,de.scrollTop,de.forceScroll),de.scrollLeft!=null&&nf(me,de.scrollLeft,!0,!0),de.scrollToPos){var Ne=Jh(me,Jo(Pe,de.scrollToPos.from),Jo(Pe,de.scrollToPos.to),de.scrollToPos.margin);Uh(me,Ne)}var Xe=de.maybeHiddenMarkers,at=de.maybeUnhiddenMarkers;if(Xe)for(var Ct=0;Ct<Xe.length;++Ct)Xe[Ct].lines.length||$n(Xe[Ct],"hide");if(at)for(var St=0;St<at.length;++St)at[St].lines.length&&$n(at[St],"unhide");Ee.wrapper.offsetHeight&&(Pe.scrollTop=me.display.scroller.scrollTop),de.changeObjs&&$n(me,"changes",me,de.changeObjs),de.update&&de.update.finish()}function Ma(de,me){if(de.curOp)return me();Va(de);try{return me()}finally{Nc(de)}}function ja(de,me){return function(){if(de.curOp)return me.apply(de,arguments);Va(de);try{return me.apply(de,arguments)}finally{Nc(de)}}}function cl(de){return function(){if(this.curOp)return de.apply(this,arguments);Va(this);try{return de.apply(this,arguments)}finally{Nc(this)}}}function uu(de){return function(){var me=this.cm;if(!me||me.curOp)return de.apply(this,arguments);Va(me);try{return de.apply(this,arguments)}finally{Nc(me)}}}function Wl(de,me){de.doc.highlightFrontier<de.display.viewTo&&de.state.highlight.set(me,In(Kc,de))}function Kc(de){var me=de.doc;if(!(me.highlightFrontier>=de.display.viewTo)){var Ee=+new Date+de.options.workTime,Pe=Gu(de,me.highlightFrontier),Ne=[];me.iter(Pe.line,Math.min(me.first+me.size,de.display.viewTo+500),function(Xe){if(Pe.line>=de.display.viewFrom){var at=Xe.styles,Ct=Xe.text.length>de.options.maxHighlightLength?Ur(me.mode,Pe.state):null,St=fc(de,Xe,Pe,!0);Ct&&(Pe.state=Ct),Xe.styles=St.styles;var jt=Xe.styleClasses,On=St.classes;On?Xe.styleClasses=On:jt&&(Xe.styleClasses=null);for(var nn=!at||at.length!=Xe.styles.length||jt!=On&&(!jt||!On||jt.bgClass!=On.bgClass||jt.textClass!=On.textClass),wi=0;!nn&&wi<at.length;++wi)nn=at[wi]!=Xe.styles[wi];nn&&Ne.push(Pe.line),Xe.stateAfter=Pe.save(),Pe.nextLine()}else Xe.text.length<=de.options.maxHighlightLength&&Ni(de,Xe.text,Pe),Xe.stateAfter=Pe.line%5==0?Pe.save():null,Pe.nextLine();if(+new Date>Ee)return Wl(de,de.options.workDelay),!0}),me.highlightFrontier=Pe.line,me.modeFrontier=Math.max(me.modeFrontier,Pe.line),Ne.length&&Ma(de,function(){for(var Xe=0;Xe<Ne.length;Xe++)tl(de,Ne[Xe],"text")})}}var om=function(de,me,Ee){var Pe=de.display;this.viewport=me,this.visible=sl(Pe,de.doc,me),this.editorIsHidden=!Pe.wrapper.offsetWidth,this.wrapperHeight=Pe.wrapper.clientHeight,this.wrapperWidth=Pe.wrapper.clientWidth,this.oldDisplayWidth=ol(de),this.force=Ee,this.dims=Rc(de),this.events=[]};om.prototype.signal=function(de,me){Cr(de,me)&&this.events.push(arguments)},om.prototype.finish=function(){for(var de=0;de<this.events.length;de++)$n.apply(null,this.events[de])};function nx(de){var me=de.display;!me.scrollbarsClipped&&me.scroller.offsetWidth&&(me.nativeBarWidth=me.scroller.offsetWidth-me.scroller.clientWidth,me.heightForcer.style.height=ga(de)+"px",me.sizer.style.marginBottom=-me.nativeBarWidth+"px",me.sizer.style.borderRightWidth=ga(de)+"px",me.scrollbarsClipped=!0)}function Ov(de){if(de.hasFocus())return null;var me=gn();if(!me||!Yn(de.display.lineDiv,me))return null;var Ee={activeElt:me};if(window.getSelection){var Pe=window.getSelection();Pe.anchorNode&&Pe.extend&&Yn(de.display.lineDiv,Pe.anchorNode)&&(Ee.anchorNode=Pe.anchorNode,Ee.anchorOffset=Pe.anchorOffset,Ee.focusNode=Pe.focusNode,Ee.focusOffset=Pe.focusOffset)}return Ee}function Vh(de){if(!(!de||!de.activeElt||de.activeElt==gn())&&(de.activeElt.focus(),!/^(INPUT|TEXTAREA)$/.test(de.activeElt.nodeName)&&de.anchorNode&&Yn(document.body,de.anchorNode)&&Yn(document.body,de.focusNode))){var me=window.getSelection(),Ee=document.createRange();Ee.setEnd(de.anchorNode,de.anchorOffset),Ee.collapse(!1),me.removeAllRanges(),me.addRange(Ee),me.extend(de.focusNode,de.focusOffset)}}function r0(de,me){var Ee=de.display,Pe=de.doc;if(me.editorIsHidden)return Yu(de),!1;if(!me.force&&me.visible.from>=Ee.viewFrom&&me.visible.to<=Ee.viewTo&&(Ee.updateLineNumbers==null||Ee.updateLineNumbers>=Ee.viewTo)&&Ee.renderedView==Ee.view&&Eh(de)==0)return!1;fh(de)&&(Yu(de),me.dims=Rc(de));var Ne=Pe.first+Pe.size,Xe=Math.max(me.visible.from-de.options.viewportMargin,Pe.first),at=Math.min(Ne,me.visible.to+de.options.viewportMargin);Ee.viewFrom<Xe&&Xe-Ee.viewFrom<20&&(Xe=Math.max(Pe.first,Ee.viewFrom)),Ee.viewTo>at&&Ee.viewTo-at<20&&(at=Math.min(Ne,Ee.viewTo)),Zi&&(Xe=tt(de.doc,Xe),at=Xt(de.doc,at));var Ct=Xe!=Ee.viewFrom||at!=Ee.viewTo||Ee.lastWrapHeight!=me.wrapperHeight||Ee.lastWrapWidth!=me.wrapperWidth;Du(de,Xe,at),Ee.viewOffset=sn(co(de.doc,Ee.viewFrom)),de.display.mover.style.top=Ee.viewOffset+"px";var St=Eh(de);if(!Ct&&St==0&&!me.force&&Ee.renderedView==Ee.view&&(Ee.updateLineNumbers==null||Ee.updateLineNumbers>=Ee.viewTo))return!1;var jt=Ov(de);return St>4&&(Ee.lineDiv.style.display="none"),ix(de,Ee.updateLineNumbers,me.dims),St>4&&(Ee.lineDiv.style.display=""),Ee.renderedView=Ee.view,Vh(jt),kt(Ee.cursorDiv),kt(Ee.selectionDiv),Ee.gutters.style.height=Ee.sizer.style.minHeight=0,Ct&&(Ee.lastWrapHeight=me.wrapperHeight,Ee.lastWrapWidth=me.wrapperWidth,Wl(de,400)),Ee.updateLineNumbers=null,!0}function Ru(de,me){for(var Ee=me.viewport,Pe=!0;;Pe=!1){if(!Pe||!de.options.lineWrapping||me.oldDisplayWidth==ol(de)){if(Ee&&Ee.top!=null&&(Ee={top:Math.min(de.doc.height+Ra(de.display)-fl(de),Ee.top)}),me.visible=sl(de.display,de.doc,Ee),me.visible.from>=de.display.viewFrom&&me.visible.to<=de.display.viewTo)break}else Pe&&(me.visible=sl(de.display,de.doc,Ee));if(!r0(de,me))break;la(de);var Ne=gl(de);Ju(de),Ac(de,Ne),Em(de,Ne),me.force=!1}me.signal(de,"update",de),(de.display.viewFrom!=de.display.reportedViewFrom||de.display.viewTo!=de.display.reportedViewTo)&&(me.signal(de,"viewportChange",de,de.display.viewFrom,de.display.viewTo),de.display.reportedViewFrom=de.display.viewFrom,de.display.reportedViewTo=de.display.viewTo)}function o0(de,me){var Ee=new om(de,me);if(r0(de,Ee)){la(de),Ru(de,Ee);var Pe=gl(de);Ju(de),Ac(de,Pe),Em(de,Pe),Ee.finish()}}function ix(de,me,Ee){var Pe=de.display,Ne=de.options.lineNumbers,Xe=Pe.lineDiv,at=Xe.firstChild;function Ct(jr){var no=jr.nextSibling;return Mt&&Ce&&de.display.currentWheelTarget==jr?jr.style.display="none":jr.parentNode.removeChild(jr),no}for(var St=Pe.view,jt=Pe.viewFrom,On=0;On<St.length;On++){var nn=St[On];if(!nn.hidden)if(!nn.node||nn.node.parentNode!=Xe){var wi=Gs(de,nn,jt,Ee);Xe.insertBefore(wi,at)}else{for(;at!=nn.node;)at=Ct(at);var li=Ne&&me!=null&&me<=jt&&nn.lineNumber;nn.changes&&(Hn(nn.changes,"gutter")>-1&&(li=!1),es(de,nn,jt,Ee)),li&&(kt(nn.lineNumber),nn.lineNumber.appendChild(document.createTextNode(al(de.options,jt)))),at=nn.node.nextSibling}jt+=nn.size}for(;at;)at=Ct(at)}function dh(de){var me=de.gutters.offsetWidth;de.sizer.style.marginLeft=me+"px"}function Em(de,me){de.display.sizer.style.minHeight=me.docHeight+"px",de.display.heightForcer.style.top=me.docHeight+"px",de.display.gutters.style.height=me.docHeight+de.display.barHeight+ga(de)+"px"}function V0(de){var me=de.display,Ee=me.view;if(!(!me.alignWidgets&&(!me.gutters.firstChild||!de.options.fixedGutter))){for(var Pe=od(me)-me.scroller.scrollLeft+de.doc.scrollLeft,Ne=me.gutters.offsetWidth,Xe=Pe+"px",at=0;at<Ee.length;at++)if(!Ee[at].hidden){de.options.fixedGutter&&(Ee[at].gutter&&(Ee[at].gutter.style.left=Xe),Ee[at].gutterBackground&&(Ee[at].gutterBackground.style.left=Xe));var Ct=Ee[at].alignable;if(Ct)for(var St=0;St<Ct.length;St++)Ct[St].style.left=Xe}de.options.fixedGutter&&(me.gutters.style.left=Pe+Ne+"px")}}function fh(de){if(!de.options.lineNumbers)return!1;var me=de.doc,Ee=al(de.options,me.first+me.size-1),Pe=de.display;if(Ee.length!=Pe.lineNumChars){var Ne=Pe.measure.appendChild(Et("div",[Et("div",Ee)],"CodeMirror-linenumber CodeMirror-gutter-elt")),Xe=Ne.firstChild.offsetWidth,at=Ne.offsetWidth-Xe;return Pe.lineGutter.style.width="",Pe.lineNumInnerWidth=Math.max(Xe,Pe.lineGutter.offsetWidth-at)+1,Pe.lineNumWidth=Pe.lineNumInnerWidth+at,Pe.lineNumChars=Pe.lineNumInnerWidth?Ee.length:-1,Pe.lineGutter.style.width=Pe.lineNumWidth+"px",dh(de.display),!0}return!1}function jh(de,me){for(var Ee=[],Pe=!1,Ne=0;Ne<de.length;Ne++){var Xe=de[Ne],at=null;if(typeof Xe!="string"&&(at=Xe.style,Xe=Xe.className),Xe=="CodeMirror-linenumbers")if(me)Pe=!0;else continue;Ee.push({className:Xe,style:at})}return me&&!Pe&&Ee.push({className:"CodeMirror-linenumbers",style:null}),Ee}function s0(de){var me=de.gutters,Ee=de.gutterSpecs;kt(me),de.lineGutter=null;for(var Pe=0;Pe<Ee.length;++Pe){var Ne=Ee[Pe],Xe=Ne.className,at=Ne.style,Ct=me.appendChild(Et("div",null,"CodeMirror-gutter "+Xe));at&&(Ct.style.cssText=at),Xe=="CodeMirror-linenumbers"&&(de.lineGutter=Ct,Ct.style.width=(de.lineNumWidth||1)+"px")}me.style.display=Ee.length?"":"none",dh(de)}function Uf(de){s0(de.display),Au(de),V0(de)}function bm(de,me,Ee,Pe){var Ne=this;this.input=Ee,Ne.scrollbarFiller=Et("div",null,"CodeMirror-scrollbar-filler"),Ne.scrollbarFiller.setAttribute("cm-not-content","true"),Ne.gutterFiller=Et("div",null,"CodeMirror-gutter-filler"),Ne.gutterFiller.setAttribute("cm-not-content","true"),Ne.lineDiv=$t("div",null,"CodeMirror-code"),Ne.selectionDiv=Et("div",null,null,"position: relative; z-index: 1"),Ne.cursorDiv=Et("div",null,"CodeMirror-cursors"),Ne.measure=Et("div",null,"CodeMirror-measure"),Ne.lineMeasure=Et("div",null,"CodeMirror-measure"),Ne.lineSpace=$t("div",[Ne.measure,Ne.lineMeasure,Ne.selectionDiv,Ne.cursorDiv,Ne.lineDiv],null,"position: relative; outline: none");var Xe=$t("div",[Ne.lineSpace],"CodeMirror-lines");Ne.mover=Et("div",[Xe],null,"position: relative"),Ne.sizer=Et("div",[Ne.mover],"CodeMirror-sizer"),Ne.sizerWidth=null,Ne.heightForcer=Et("div",null,null,"position: absolute; height: "+_i+"px; width: 1px;"),Ne.gutters=Et("div",null,"CodeMirror-gutters"),Ne.lineGutter=null,Ne.scroller=Et("div",[Ne.sizer,Ne.heightForcer,Ne.gutters],"CodeMirror-scroll"),Ne.scroller.setAttribute("tabIndex","-1"),Ne.wrapper=Et("div",[Ne.scrollbarFiller,Ne.gutterFiller,Ne.scroller],"CodeMirror"),It&&dt<8&&(Ne.gutters.style.zIndex=-1,Ne.scroller.style.paddingRight=0),!Mt&&!(Me&&ce)&&(Ne.scroller.draggable=!0),de&&(de.appendChild?de.appendChild(Ne.wrapper):de(Ne.wrapper)),Ne.viewFrom=Ne.viewTo=me.first,Ne.reportedViewFrom=Ne.reportedViewTo=me.first,Ne.view=[],Ne.renderedView=null,Ne.externalMeasured=null,Ne.viewOffset=0,Ne.lastWrapHeight=Ne.lastWrapWidth=0,Ne.updateLineNumbers=null,Ne.nativeBarWidth=Ne.barHeight=Ne.barWidth=0,Ne.scrollbarsClipped=!1,Ne.lineNumWidth=Ne.lineNumInnerWidth=Ne.lineNumChars=null,Ne.alignWidgets=!1,Ne.cachedCharWidth=Ne.cachedTextHeight=Ne.cachedPaddingH=null,Ne.maxLine=null,Ne.maxLineLength=0,Ne.maxLineChanged=!1,Ne.wheelDX=Ne.wheelDY=Ne.wheelStartX=Ne.wheelStartY=null,Ne.shift=!1,Ne.selForContextMenu=null,Ne.activeTouch=null,Ne.gutterSpecs=jh(Pe.gutters,Pe.lineNumbers),s0(Ne),Ee.init(Ne)}var $h=0,$c=null;It?$c=-.53:Me?$c=15:qt?$c=-.7:ln&&($c=-1/3);function bf(de){var me=de.wheelDeltaX,Ee=de.wheelDeltaY;return me==null&&de.detail&&de.axis==de.HORIZONTAL_AXIS&&(me=de.detail),Ee==null&&de.detail&&de.axis==de.VERTICAL_AXIS?Ee=de.detail:Ee==null&&(Ee=de.wheelDelta),{x:me,y:Ee}}function Hf(de){var me=bf(de);return me.x*=$c,me.y*=$c,me}function xu(de,me){var Ee=bf(me),Pe=Ee.x,Ne=Ee.y,Xe=de.display,at=Xe.scroller,Ct=at.scrollWidth>at.clientWidth,St=at.scrollHeight>at.clientHeight;if(Pe&&Ct||Ne&&St){if(Ne&&Ce&&Mt){e:for(var jt=me.target,On=Xe.view;jt!=at;jt=jt.parentNode)for(var nn=0;nn<On.length;nn++)if(On[nn].node==jt){de.display.currentWheelTarget=jt;break e}}if(Pe&&!Me&&!nt&&$c!=null){Ne&&St&&Pf(de,Math.max(0,at.scrollTop+Ne*$c)),nf(de,Math.max(0,at.scrollLeft+Pe*$c)),(!Ne||Ne&&St)&&ao(me),Xe.wheelStartX=null;return}if(Ne&&$c!=null){var wi=Ne*$c,li=de.doc.scrollTop,jr=li+Xe.wrapper.clientHeight;wi<0?li=Math.max(0,li+wi-50):jr=Math.min(de.doc.height,jr+wi+50),o0(de,{top:li,bottom:jr})}$h<20&&(Xe.wheelStartX==null?(Xe.wheelStartX=at.scrollLeft,Xe.wheelStartY=at.scrollTop,Xe.wheelDX=Pe,Xe.wheelDY=Ne,setTimeout(function(){if(Xe.wheelStartX!=null){var no=at.scrollLeft-Xe.wheelStartX,To=at.scrollTop-Xe.wheelStartY,rs=To&&Xe.wheelDY&&To/Xe.wheelDY||no&&Xe.wheelDX&&no/Xe.wheelDX;Xe.wheelStartX=Xe.wheelStartY=null,rs&&($c=($c*$h+rs)/($h+1),++$h)}},200)):(Xe.wheelDX+=Pe,Xe.wheelDY+=Ne))}}var up=function(de,me){this.ranges=de,this.primIndex=me};up.prototype.primary=function(){return this.ranges[this.primIndex]},up.prototype.equals=function(de){if(de==this)return!0;if(de.primIndex!=this.primIndex||de.ranges.length!=this.ranges.length)return!1;for(var me=0;me<this.ranges.length;me++){var Ee=this.ranges[me],Pe=de.ranges[me];if(!wa(Ee.anchor,Pe.anchor)||!wa(Ee.head,Pe.head))return!1}return!0},up.prototype.deepCopy=function(){for(var de=[],me=0;me<this.ranges.length;me++)de[me]=new sc(xl(this.ranges[me].anchor),xl(this.ranges[me].head));return new up(de,this.primIndex)},up.prototype.somethingSelected=function(){for(var de=0;de<this.ranges.length;de++)if(!this.ranges[de].empty())return!0;return!1},up.prototype.contains=function(de,me){me||(me=de);for(var Ee=0;Ee<this.ranges.length;Ee++){var Pe=this.ranges[Ee];if(Fo(me,Pe.from())>=0&&Fo(de,Pe.to())<=0)return Ee}return-1};var sc=function(de,me){this.anchor=de,this.head=me};sc.prototype.from=function(){return ys(this.anchor,this.head)},sc.prototype.to=function(){return Ll(this.anchor,this.head)},sc.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function Fe(de,me,Ee){var Pe=de&&de.options.selectionsMayTouch,Ne=me[Ee];me.sort(function(wi,li){return Fo(wi.from(),li.from())}),Ee=Hn(me,Ne);for(var Xe=1;Xe<me.length;Xe++){var at=me[Xe],Ct=me[Xe-1],St=Fo(Ct.to(),at.from());if(Pe&&!at.empty()?St>0:St>=0){var jt=ys(Ct.from(),at.from()),On=Ll(Ct.to(),at.to()),nn=Ct.empty()?at.from()==at.head:Ct.from()==Ct.head;Xe<=Ee&&--Ee,me.splice(--Xe,2,new sc(nn?On:jt,nn?jt:On))}}return new up(me,Ee)}function He(de,me){return new up([new sc(de,me||de)],0)}function Qe(de){return de.text?Ji(de.from.line+de.text.length-1,en(de.text).length+(de.text.length==1?de.from.ch:0)):de.to}function ot(de,me){if(Fo(de,me.from)<0)return de;if(Fo(de,me.to)<=0)return Qe(me);var Ee=de.line+me.text.length-(me.to.line-me.from.line)-1,Pe=de.ch;return de.line==me.to.line&&(Pe+=Qe(me).ch-me.to.ch),Ji(Ee,Pe)}function vt(de,me){for(var Ee=[],Pe=0;Pe<de.sel.ranges.length;Pe++){var Ne=de.sel.ranges[Pe];Ee.push(new sc(ot(Ne.anchor,me),ot(Ne.head,me)))}return Fe(de.cm,Ee,de.sel.primIndex)}function bt(de,me,Ee){return de.line==me.line?Ji(Ee.line,de.ch-me.ch+Ee.ch):Ji(Ee.line+(de.line-me.line),de.ch)}function Ot(de,me,Ee){for(var Pe=[],Ne=Ji(de.first,0),Xe=Ne,at=0;at<me.length;at++){var Ct=me[at],St=bt(Ct.from,Ne,Xe),jt=bt(Qe(Ct),Ne,Xe);if(Ne=Ct.to,Xe=jt,Ee=="around"){var On=de.sel.ranges[at],nn=Fo(On.head,On.anchor)<0;Pe[at]=new sc(nn?jt:St,nn?St:jt)}else Pe[at]=new sc(St,St)}return new up(Pe,de.sel.primIndex)}function wt(de){de.doc.mode=Fn(de.options,de.doc.modeOption),dn(de)}function dn(de){de.doc.iter(function(me){me.stateAfter&&(me.stateAfter=null),me.styles&&(me.styles=null)}),de.doc.modeFrontier=de.doc.highlightFrontier=de.doc.first,Wl(de,100),de.state.modeGen++,de.curOp&&Au(de)}function Vt(de,me){return me.from.ch==0&&me.to.ch==0&&en(me.text)==""&&(!de.cm||de.cm.options.wholeLineUpdateBefore)}function Wt(de,me,Ee,Pe){function Ne(na){return Ee?Ee[na]:null}function Xe(na,Ns,va){Oi(na,Ns,va,Pe),yr(na,"change",na,me)}function at(na,Ns){for(var va=[],ml=na;ml<Ns;++ml)va.push(new zn(jt[ml],Ne(ml),Pe));return va}var Ct=me.from,St=me.to,jt=me.text,On=co(de,Ct.line),nn=co(de,St.line),wi=en(jt),li=Ne(jt.length-1),jr=St.line-Ct.line;if(me.full)de.insert(0,at(0,jt.length)),de.remove(jt.length,de.size-jt.length);else if(Vt(de,me)){var no=at(0,jt.length-1);Xe(nn,nn.text,li),jr&&de.remove(Ct.line,jr),no.length&&de.insert(Ct.line,no)}else if(On==nn)if(jt.length==1)Xe(On,On.text.slice(0,Ct.ch)+wi+On.text.slice(St.ch),li);else{var To=at(1,jt.length-1);To.push(new zn(wi+On.text.slice(St.ch),li,Pe)),Xe(On,On.text.slice(0,Ct.ch)+jt[0],Ne(0)),de.insert(Ct.line+1,To)}else if(jt.length==1)Xe(On,On.text.slice(0,Ct.ch)+jt[0]+nn.text.slice(St.ch),Ne(0)),de.remove(Ct.line+1,jr);else{Xe(On,On.text.slice(0,Ct.ch)+jt[0],Ne(0)),Xe(nn,wi+nn.text.slice(St.ch),li);var rs=at(1,jt.length-1);jr>1&&de.remove(Ct.line+1,jr-1),de.insert(Ct.line+1,rs)}yr(de,"change",de,me)}function Bn(de,me,Ee){function Pe(Ne,Xe,at){if(Ne.linked)for(var Ct=0;Ct<Ne.linked.length;++Ct){var St=Ne.linked[Ct];if(St.doc!=Xe){var jt=at&&St.sharedHist;Ee&&!jt||(me(St.doc,jt),Pe(St.doc,Ne,jt))}}}Pe(de,null,!0)}function Wn(de,me){if(me.cm)throw new Error("This document is already in use.");de.doc=me,me.cm=de,$s(de),wt(de),Gi(de),de.options.lineWrapping||Qn(de),de.options.mode=me.modeOption,Au(de)}function Gi(de){(de.doc.direction=="rtl"?Jn:Bt)(de.display.lineDiv,"CodeMirror-rtl")}function bi(de){Ma(de,function(){Gi(de),Au(de)})}function fi(de){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=de||1}function Fi(de,me){var Ee={from:xl(me.from),to:Qe(me),text:Oa(de,me.from,me.to)};return Ss(de,Ee,me.from.line,me.to.line+1),Bn(de,function(Pe){return Ss(Pe,Ee,me.from.line,me.to.line+1)},!0),Ee}function Tr(de){for(;de.length;){var me=en(de);if(me.ranges)de.pop();else break}}function rr(de,me){if(me)return Tr(de.done),en(de.done);if(de.done.length&&!en(de.done).ranges)return en(de.done);if(de.done.length>1&&!de.done[de.done.length-2].ranges)return de.done.pop(),en(de.done)}function to(de,me,Ee,Pe){var Ne=de.history;Ne.undone.length=0;var Xe=+new Date,at,Ct;if((Ne.lastOp==Pe||Ne.lastOrigin==me.origin&&me.origin&&(me.origin.charAt(0)=="+"&&Ne.lastModTime>Xe-(de.cm?de.cm.options.historyEventDelay:500)||me.origin.charAt(0)=="*"))&&(at=rr(Ne,Ne.lastOp==Pe)))Ct=en(at.changes),Fo(me.from,me.to)==0&&Fo(me.from,Ct.to)==0?Ct.to=Qe(me):at.changes.push(Fi(de,me));else{var St=en(Ne.done);for((!St||!St.ranges)&&uo(de.sel,Ne.done),at={changes:[Fi(de,me)],generation:Ne.generation},Ne.done.push(at);Ne.done.length>Ne.undoDepth;)Ne.done.shift(),Ne.done[0].ranges||Ne.done.shift()}Ne.done.push(Ee),Ne.generation=++Ne.maxGeneration,Ne.lastModTime=Ne.lastSelTime=Xe,Ne.lastOp=Ne.lastSelOp=Pe,Ne.lastOrigin=Ne.lastSelOrigin=me.origin,Ct||$n(de,"historyAdded")}function Io(de,me,Ee,Pe){var Ne=me.charAt(0);return Ne=="*"||Ne=="+"&&Ee.ranges.length==Pe.ranges.length&&Ee.somethingSelected()==Pe.somethingSelected()&&new Date-de.history.lastSelTime<=(de.cm?de.cm.options.historyEventDelay:500)}function ks(de,me,Ee,Pe){var Ne=de.history,Xe=Pe&&Pe.origin;Ee==Ne.lastSelOp||Xe&&Ne.lastSelOrigin==Xe&&(Ne.lastModTime==Ne.lastSelTime&&Ne.lastOrigin==Xe||Io(de,Xe,en(Ne.done),me))?Ne.done[Ne.done.length-1]=me:uo(me,Ne.done),Ne.lastSelTime=+new Date,Ne.lastSelOrigin=Xe,Ne.lastSelOp=Ee,Pe&&Pe.clearRedo!==!1&&Tr(Ne.undone)}function uo(de,me){var Ee=en(me);Ee&&Ee.ranges&&Ee.equals(de)||me.push(de)}function Ss(de,me,Ee,Pe){var Ne=me["spans_"+de.id],Xe=0;de.iter(Math.max(de.first,Ee),Math.min(de.first+de.size,Pe),function(at){at.markedSpans&&((Ne||(Ne=me["spans_"+de.id]={}))[Xe]=at.markedSpans),++Xe})}function Xs(de){if(!de)return null;for(var me,Ee=0;Ee<de.length;++Ee)de[Ee].marker.explicitlyCleared?me||(me=de.slice(0,Ee)):me&&me.push(de[Ee]);return me?me.length?me:null:de}function ua(de,me){var Ee=me["spans_"+de.id];if(!Ee)return null;for(var Pe=[],Ne=0;Ne<me.text.length;++Ne)Pe.push(Xs(Ee[Ne]));return Pe}function Ao(de,me){var Ee=ua(de,me),Pe=Vu(de,me);if(!Ee)return Pe;if(!Pe)return Ee;for(var Ne=0;Ne<Ee.length;++Ne){var Xe=Ee[Ne],at=Pe[Ne];if(Xe&&at)e:for(var Ct=0;Ct<at.length;++Ct){for(var St=at[Ct],jt=0;jt<Xe.length;++jt)if(Xe[jt].marker==St.marker)continue e;Xe.push(St)}else at&&(Ee[Ne]=at)}return Ee}function Er(de,me,Ee){for(var Pe=[],Ne=0;Ne<de.length;++Ne){var Xe=de[Ne];if(Xe.ranges){Pe.push(Ee?up.prototype.deepCopy.call(Xe):Xe);continue}var at=Xe.changes,Ct=[];Pe.push({changes:Ct});for(var St=0;St<at.length;++St){var jt=at[St],On=void 0;if(Ct.push({from:jt.from,to:jt.to,text:jt.text}),me)for(var nn in jt)(On=nn.match(/^spans_(\d+)$/))&&Hn(me,Number(On[1]))>-1&&(en(Ct)[nn]=jt[nn],delete jt[nn])}}return Pe}function ca(de,me,Ee,Pe){if(Pe){var Ne=de.anchor;if(Ee){var Xe=Fo(me,Ne)<0;Xe!=Fo(Ee,Ne)<0?(Ne=me,me=Ee):Xe!=Fo(me,Ee)<0&&(me=Ee)}return new sc(Ne,me)}else return new sc(Ee||me,me)}function Ci(de,me,Ee,Pe,Ne){Ne==null&&(Ne=de.cm&&(de.cm.display.shift||de.extend)),Ko(de,new up([ca(de.sel.primary(),me,Ee,Ne)],0),Pe)}function qr(de,me,Ee){for(var Pe=[],Ne=de.cm&&(de.cm.display.shift||de.extend),Xe=0;Xe<de.sel.ranges.length;Xe++)Pe[Xe]=ca(de.sel.ranges[Xe],me[Xe],null,Ne);var at=Fe(de.cm,Pe,de.sel.primIndex);Ko(de,at,Ee)}function Mo(de,me,Ee,Pe){var Ne=de.sel.ranges.slice(0);Ne[me]=Ee,Ko(de,Fe(de.cm,Ne,de.sel.primIndex),Pe)}function Eo(de,me,Ee,Pe){Ko(de,He(me,Ee),Pe)}function Ds(de,me,Ee){var Pe={ranges:me.ranges,update:function(Ne){this.ranges=[];for(var Xe=0;Xe<Ne.length;Xe++)this.ranges[Xe]=new sc(Jo(de,Ne[Xe].anchor),Jo(de,Ne[Xe].head))},origin:Ee&&Ee.origin};return $n(de,"beforeSelectionChange",de,Pe),de.cm&&$n(de.cm,"beforeSelectionChange",de.cm,Pe),Pe.ranges!=me.ranges?Fe(de.cm,Pe.ranges,Pe.ranges.length-1):me}function is(de,me,Ee){var Pe=de.history.done,Ne=en(Pe);Ne&&Ne.ranges?(Pe[Pe.length-1]=me,za(de,me,Ee)):Ko(de,me,Ee)}function Ko(de,me,Ee){za(de,me,Ee),ks(de,de.sel,de.cm?de.cm.curOp.id:NaN,Ee)}function za(de,me,Ee){(Cr(de,"beforeSelectionChange")||de.cm&&Cr(de.cm,"beforeSelectionChange"))&&(me=Ds(de,me,Ee));var Pe=Ee&&Ee.bias||(Fo(me.primary().head,de.sel.primary().head)<0?-1:1);tu(de,Ku(de,me,Pe,!0)),!(Ee&&Ee.scroll===!1)&&de.cm&&qh(de.cm)}function tu(de,me){me.equals(de.sel)||(de.sel=me,de.cm&&(de.cm.curOp.updateInput=1,de.cm.curOp.selectionChanged=!0,Ai(de.cm)),yr(de,"cursorActivity",de))}function ea(de){tu(de,Ku(de,de.sel,null,!1))}function Ku(de,me,Ee,Pe){for(var Ne,Xe=0;Xe<me.ranges.length;Xe++){var at=me.ranges[Xe],Ct=me.ranges.length==de.sel.ranges.length&&de.sel.ranges[Xe],St=Fc(de,at.anchor,Ct&&Ct.anchor,Ee,Pe),jt=Fc(de,at.head,Ct&&Ct.head,Ee,Pe);(Ne||St!=at.anchor||jt!=at.head)&&(Ne||(Ne=me.ranges.slice(0,Xe)),Ne[Xe]=new sc(St,jt))}return Ne?Fe(de.cm,Ne,me.primIndex):me}function Mu(de,me,Ee,Pe,Ne){var Xe=co(de,me.line);if(Xe.markedSpans)for(var at=0;at<Xe.markedSpans.length;++at){var Ct=Xe.markedSpans[at],St=Ct.marker,jt="selectLeft"in St?!St.selectLeft:St.inclusiveLeft,On="selectRight"in St?!St.selectRight:St.inclusiveRight;if((Ct.from==null||(jt?Ct.from<=me.ch:Ct.from<me.ch))&&(Ct.to==null||(On?Ct.to>=me.ch:Ct.to>me.ch))){if(Ne&&($n(St,"beforeCursorEnter"),St.explicitlyCleared))if(Xe.markedSpans){--at;continue}else break;if(!St.atomic)continue;if(Ee){var nn=St.find(Pe<0?1:-1),wi=void 0;if((Pe<0?On:jt)&&(nn=ph(de,nn,-Pe,nn&&nn.line==me.line?Xe:null)),nn&&nn.line==me.line&&(wi=Fo(nn,Ee))&&(Pe<0?wi<0:wi>0))return Mu(de,nn,me,Pe,Ne)}var li=St.find(Pe<0?-1:1);return(Pe<0?jt:On)&&(li=ph(de,li,Pe,li.line==me.line?Xe:null)),li?Mu(de,li,me,Pe,Ne):null}}return me}function Fc(de,me,Ee,Pe,Ne){var Xe=Pe||1,at=Mu(de,me,Ee,Xe,Ne)||!Ne&&Mu(de,me,Ee,Xe,!0)||Mu(de,me,Ee,-Xe,Ne)||!Ne&&Mu(de,me,Ee,-Xe,!0);return at||(de.cantEdit=!0,Ji(de.first,0))}function ph(de,me,Ee,Pe){return Ee<0&&me.ch==0?me.line>de.first?Jo(de,Ji(me.line-1)):null:Ee>0&&me.ch==(Pe||co(de,me.line)).text.length?me.line<de.first+de.size-1?Ji(me.line+1,0):null:new Ji(me.line,me.ch+Ee)}function Nu(de){de.setSelection(Ji(de.firstLine(),0),Ji(de.lastLine()),En)}function sg(de,me,Ee){var Pe={canceled:!1,from:me.from,to:me.to,text:me.text,origin:me.origin,cancel:function(){return Pe.canceled=!0}};return Ee&&(Pe.update=function(Ne,Xe,at,Ct){Ne&&(Pe.from=Jo(de,Ne)),Xe&&(Pe.to=Jo(de,Xe)),at&&(Pe.text=at),Ct!==void 0&&(Pe.origin=Ct)}),$n(de,"beforeChange",de,Pe),de.cm&&$n(de.cm,"beforeChange",de.cm,Pe),Pe.canceled?(de.cm&&(de.cm.curOp.updateInput=2),null):{from:Pe.from,to:Pe.to,text:Pe.text,origin:Pe.origin}}function Tg(de,me,Ee){if(de.cm){if(!de.cm.curOp)return ja(de.cm,Tg)(de,me,Ee);if(de.cm.state.suppressEdits)return}if(!((Cr(de,"beforeChange")||de.cm&&Cr(de.cm,"beforeChange"))&&(me=sg(de,me,!0),!me))){var Pe=Il&&!Ee&&xi(de,me.from,me.to);if(Pe)for(var Ne=Pe.length-1;Ne>=0;--Ne)Mm(de,{from:Pe[Ne].from,to:Pe[Ne].to,text:Ne?[""]:me.text,origin:me.origin});else Mm(de,me)}}function Mm(de,me){if(!(me.text.length==1&&me.text[0]==""&&Fo(me.from,me.to)==0)){var Ee=vt(de,me);to(de,me,Ee,de.cm?de.cm.curOp.id:NaN),Wy(de,me,Ee,Vu(de,me));var Pe=[];Bn(de,function(Ne,Xe){!Xe&&Hn(Pe,Ne.history)==-1&&(yS(Ne.history,me),Pe.push(Ne.history)),Wy(Ne,me,null,Vu(Ne,me))})}}function rx(de,me,Ee){var Pe=de.cm&&de.cm.state.suppressEdits;if(!(Pe&&!Ee)){for(var Ne=de.history,Xe,at=de.sel,Ct=me=="undo"?Ne.done:Ne.undone,St=me=="undo"?Ne.undone:Ne.done,jt=0;jt<Ct.length&&(Xe=Ct[jt],!(Ee?Xe.ranges&&!Xe.equals(de.sel):!Xe.ranges));jt++);if(jt!=Ct.length){for(Ne.lastOrigin=Ne.lastSelOrigin=null;;)if(Xe=Ct.pop(),Xe.ranges){if(uo(Xe,St),Ee&&!Xe.equals(de.sel)){Ko(de,Xe,{clearRedo:!1});return}at=Xe}else if(Pe){Ct.push(Xe);return}else break;var On=[];uo(at,St),St.push({changes:On,generation:Ne.generation}),Ne.generation=Xe.generation||++Ne.maxGeneration;for(var nn=Cr(de,"beforeChange")||de.cm&&Cr(de.cm,"beforeChange"),wi=function(no){var To=Xe.changes[no];if(To.origin=me,nn&&!sg(de,To,!1))return Ct.length=0,{};On.push(Fi(de,To));var rs=no?vt(de,To):en(Ct);Wy(de,To,rs,Ao(de,To)),!no&&de.cm&&de.cm.scrollIntoView({from:To.from,to:Qe(To)});var na=[];Bn(de,function(Ns,va){!va&&Hn(na,Ns.history)==-1&&(yS(Ns.history,To),na.push(Ns.history)),Wy(Ns,To,null,Ao(Ns,To))})},li=Xe.changes.length-1;li>=0;--li){var jr=wi(li);if(jr)return jr.v}}}}function j1(de,me){if(me!=0&&(de.first+=me,de.sel=new up(Ti(de.sel.ranges,function(Ne){return new sc(Ji(Ne.anchor.line+me,Ne.anchor.ch),Ji(Ne.head.line+me,Ne.head.ch))}),de.sel.primIndex),de.cm)){Au(de.cm,de.first,de.first-me,me);for(var Ee=de.cm.display,Pe=Ee.viewFrom;Pe<Ee.viewTo;Pe++)tl(de.cm,Pe,"gutter")}}function Wy(de,me,Ee,Pe){if(de.cm&&!de.cm.curOp)return ja(de.cm,Wy)(de,me,Ee,Pe);if(me.to.line<de.first){j1(de,me.text.length-1-(me.to.line-me.from.line));return}if(!(me.from.line>de.lastLine())){if(me.from.line<de.first){var Ne=me.text.length-1-(de.first-me.from.line);j1(de,Ne),me={from:Ji(de.first,0),to:Ji(me.to.line+Ne,me.to.ch),text:[en(me.text)],origin:me.origin}}var Xe=de.lastLine();me.to.line>Xe&&(me={from:me.from,to:Ji(Xe,co(de,Xe).text.length),text:[me.text[0]],origin:me.origin}),me.removed=Oa(de,me.from,me.to),Ee||(Ee=vt(de,me)),de.cm?Xb(de.cm,me,Pe):Wt(de,me,Pe),za(de,Ee,En),de.cantEdit&&Fc(de,Ji(de.firstLine(),0))&&(de.cantEdit=!1)}}function Xb(de,me,Ee){var Pe=de.doc,Ne=de.display,Xe=me.from,at=me.to,Ct=!1,St=Xe.line;de.options.lineWrapping||(St=hn(Co(co(Pe,Xe.line))),Pe.iter(St,at.line+1,function(li){if(li==Ne.maxLine)return Ct=!0,!0})),Pe.sel.contains(me.from,me.to)>-1&&Ai(de),Wt(Pe,me,Ee,ku(de)),de.options.lineWrapping||(Pe.iter(St,Xe.line+me.text.length,function(li){var jr=Vn(li);jr>Ne.maxLineLength&&(Ne.maxLine=li,Ne.maxLineLength=jr,Ne.maxLineChanged=!0,Ct=!1)}),Ct&&(de.curOp.updateMaxLine=!0)),rl(Pe,Xe.line),Wl(de,400);var jt=me.text.length-(at.line-Xe.line)-1;me.full?Au(de):Xe.line==at.line&&me.text.length==1&&!Vt(de.doc,me)?tl(de,Xe.line,"text"):Au(de,Xe.line,at.line+1,jt);var On=Cr(de,"changes"),nn=Cr(de,"change");if(nn||On){var wi={from:Xe,to:at,text:me.text,removed:me.removed,origin:me.origin};nn&&yr(de,"change",de,wi),On&&(de.curOp.changeObjs||(de.curOp.changeObjs=[])).push(wi)}de.display.selForContextMenu=null}function Rv(de,me,Ee,Pe,Ne){var Xe;Pe||(Pe=Ee),Fo(Pe,Ee)<0&&(Xe=[Pe,Ee],Ee=Xe[0],Pe=Xe[1]),typeof me=="string"&&(me=de.splitLines(me)),Tg(de,{from:Ee,to:Pe,text:me,origin:Ne})}function ag(de,me,Ee,Pe){Ee<de.line?de.line+=Pe:me<de.line&&(de.line=me,de.ch=0)}function vS(de,me,Ee,Pe){for(var Ne=0;Ne<de.length;++Ne){var Xe=de[Ne],at=!0;if(Xe.ranges){Xe.copied||(Xe=de[Ne]=Xe.deepCopy(),Xe.copied=!0);for(var Ct=0;Ct<Xe.ranges.length;Ct++)ag(Xe.ranges[Ct].anchor,me,Ee,Pe),ag(Xe.ranges[Ct].head,me,Ee,Pe);continue}for(var St=0;St<Xe.changes.length;++St){var jt=Xe.changes[St];if(Ee<jt.from.line)jt.from=Ji(jt.from.line+Pe,jt.from.ch),jt.to=Ji(jt.to.line+Pe,jt.to.ch);else if(me<=jt.to.line){at=!1;break}}at||(de.splice(0,Ne+1),Ne=0)}}function yS(de,me){var Ee=me.from.line,Pe=me.to.line,Ne=me.text.length-(Pe-Ee)-1;vS(de.done,Ee,Pe,Ne),vS(de.undone,Ee,Pe,Ne)}function zv(de,me,Ee,Pe){var Ne=me,Xe=me;return typeof me=="number"?Xe=co(de,As(de,me)):Ne=hn(me),Ne==null?null:(Pe(Xe,Ne)&&de.cm&&tl(de.cm,Ne,Ee),Xe)}function Uv(de){this.lines=de,this.parent=null;for(var me=0,Ee=0;Ee<de.length;++Ee)de[Ee].parent=this,me+=de[Ee].height;this.height=me}Uv.prototype={chunkSize:function(){return this.lines.length},removeInner:function(de,me){for(var Ee=de,Pe=de+me;Ee<Pe;++Ee){var Ne=this.lines[Ee];this.height-=Ne.height,Qi(Ne),yr(Ne,"delete")}this.lines.splice(de,me)},collapse:function(de){de.push.apply(de,this.lines)},insertInner:function(de,me,Ee){this.height+=Ee,this.lines=this.lines.slice(0,de).concat(me).concat(this.lines.slice(de));for(var Pe=0;Pe<me.length;++Pe)me[Pe].parent=this},iterN:function(de,me,Ee){for(var Pe=de+me;de<Pe;++de)if(Ee(this.lines[de]))return!0}};function eh(de){this.children=de;for(var me=0,Ee=0,Pe=0;Pe<de.length;++Pe){var Ne=de[Pe];me+=Ne.chunkSize(),Ee+=Ne.height,Ne.parent=this}this.size=me,this.height=Ee,this.parent=null}eh.prototype={chunkSize:function(){return this.size},removeInner:function(de,me){this.size-=me;for(var Ee=0;Ee<this.children.length;++Ee){var Pe=this.children[Ee],Ne=Pe.chunkSize();if(de<Ne){var Xe=Math.min(me,Ne-de),at=Pe.height;if(Pe.removeInner(de,Xe),this.height-=at-Pe.height,Ne==Xe&&(this.children.splice(Ee--,1),Pe.parent=null),(me-=Xe)==0)break;de=0}else de-=Ne}if(this.size-me<25&&(this.children.length>1||!(this.children[0]instanceof Uv))){var Ct=[];this.collapse(Ct),this.children=[new Uv(Ct)],this.children[0].parent=this}},collapse:function(de){for(var me=0;me<this.children.length;++me)this.children[me].collapse(de)},insertInner:function(de,me,Ee){this.size+=me.length,this.height+=Ee;for(var Pe=0;Pe<this.children.length;++Pe){var Ne=this.children[Pe],Xe=Ne.chunkSize();if(de<=Xe){if(Ne.insertInner(de,me,Ee),Ne.lines&&Ne.lines.length>50){for(var at=Ne.lines.length%25+25,Ct=at;Ct<Ne.lines.length;){var St=new Uv(Ne.lines.slice(Ct,Ct+=25));Ne.height-=St.height,this.children.splice(++Pe,0,St),St.parent=this}Ne.lines=Ne.lines.slice(0,at),this.maybeSpill()}break}de-=Xe}},maybeSpill:function(){if(!(this.children.length<=10)){var de=this;do{var me=de.children.splice(de.children.length-5,5),Ee=new eh(me);if(de.parent){de.size-=Ee.size,de.height-=Ee.height;var Ne=Hn(de.parent.children,de);de.parent.children.splice(Ne+1,0,Ee)}else{var Pe=new eh(de.children);Pe.parent=de,de.children=[Pe,Ee],de=Pe}Ee.parent=de.parent}while(de.children.length>10);de.parent.maybeSpill()}},iterN:function(de,me,Ee){for(var Pe=0;Pe<this.children.length;++Pe){var Ne=this.children[Pe],Xe=Ne.chunkSize();if(de<Xe){var at=Math.min(me,Xe-de);if(Ne.iterN(de,at,Ee))return!0;if((me-=at)==0)break;de=0}else de-=Xe}}};var j0=function(de,me,Ee){if(Ee)for(var Pe in Ee)Ee.hasOwnProperty(Pe)&&(this[Pe]=Ee[Pe]);this.doc=de,this.node=me};j0.prototype.clear=function(){var de=this.doc.cm,me=this.line.widgets,Ee=this.line,Pe=hn(Ee);if(!(Pe==null||!me)){for(var Ne=0;Ne<me.length;++Ne)me[Ne]==this&&me.splice(Ne--,1);me.length||(Ee.widgets=null);var Xe=Ta(this);pa(Ee,Math.max(0,Ee.height-Xe)),de&&(Ma(de,function(){dC(de,Ee,-Xe),tl(de,Pe,"widget")}),yr(de,"lineWidgetCleared",de,this,Pe))}},j0.prototype.changed=function(){var de=this,me=this.height,Ee=this.doc.cm,Pe=this.line;this.height=null;var Ne=Ta(this)-me;Ne&&(Dt(this.doc,Pe)||pa(Pe,Pe.height+Ne),Ee&&Ma(Ee,function(){Ee.curOp.forceUpdate=!0,dC(Ee,Pe,Ne),yr(Ee,"lineWidgetChanged",Ee,de,hn(Pe))}))},zr(j0);function dC(de,me,Ee){sn(me)<(de.curOp&&de.curOp.scrollTop||de.doc.scrollTop)&&wf(de,Ee)}function G1(de,me,Ee,Pe){var Ne=new j0(de,Ee,Pe),Xe=de.cm;return Xe&&Ne.noHScroll&&(Xe.display.alignWidgets=!0),zv(de,me,"widget",function(at){var Ct=at.widgets||(at.widgets=[]);if(Ne.insertAt==null?Ct.push(Ne):Ct.splice(Math.min(Ct.length-1,Math.max(0,Ne.insertAt)),0,Ne),Ne.line=at,Xe&&!Dt(de,at)){var St=sn(at)<de.scrollTop;pa(at,at.height+Ta(Ne)),St&&wf(Xe,Ne.height),Xe.curOp.forceUpdate=!0}return!0}),Xe&&yr(Xe,"lineWidgetAdded",Xe,Ne,typeof me=="number"?me:hn(me)),Ne}var AS=0,wn=function(de,me){this.lines=[],this.type=me,this.doc=de,this.id=++AS};wn.prototype.clear=function(){if(!this.explicitlyCleared){var de=this.doc.cm,me=de&&!de.curOp;if(me&&Va(de),Cr(this,"clear")){var Ee=this.find();Ee&&yr(this,"clear",Ee.from,Ee.to)}for(var Pe=null,Ne=null,Xe=0;Xe<this.lines.length;++Xe){var at=this.lines[Xe],Ct=dl(at.markedSpans,this);de&&!this.collapsed?tl(de,hn(at),"text"):de&&(Ct.to!=null&&(Ne=hn(at)),Ct.from!=null&&(Pe=hn(at))),at.markedSpans=Pl(at.markedSpans,Ct),Ct.from==null&&this.collapsed&&!Dt(this.doc,at)&&de&&pa(at,Ec(de.display))}if(de&&this.collapsed&&!de.options.lineWrapping)for(var St=0;St<this.lines.length;++St){var jt=Co(this.lines[St]),On=Vn(jt);On>de.display.maxLineLength&&(de.display.maxLine=jt,de.display.maxLineLength=On,de.display.maxLineChanged=!0)}Pe!=null&&de&&this.collapsed&&Au(de,Pe,Ne+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,de&&ea(de.doc)),de&&yr(de,"markerCleared",de,this,Pe,Ne),me&&Nc(de),this.parent&&this.parent.clear()}},wn.prototype.find=function(de,me){de==null&&this.type=="bookmark"&&(de=1);for(var Ee,Pe,Ne=0;Ne<this.lines.length;++Ne){var Xe=this.lines[Ne],at=dl(Xe.markedSpans,this);if(at.from!=null&&(Ee=Ji(me?Xe:hn(Xe),at.from),de==-1))return Ee;if(at.to!=null&&(Pe=Ji(me?Xe:hn(Xe),at.to),de==1))return Pe}return Ee&&{from:Ee,to:Pe}},wn.prototype.changed=function(){var de=this,me=this.find(-1,!0),Ee=this,Pe=this.doc.cm;!me||!Pe||Ma(Pe,function(){var Ne=me.line,Xe=hn(me.line),at=Zu(Pe,Xe);if(at&&(Dc(at),Pe.curOp.selectionChanged=Pe.curOp.forceUpdate=!0),Pe.curOp.updateMaxLine=!0,!Dt(Ee.doc,Ne)&&Ee.height!=null){var Ct=Ee.height;Ee.height=null;var St=Ta(Ee)-Ct;St&&pa(Ne,Ne.height+St)}yr(Pe,"markerChanged",Pe,de)})},wn.prototype.attachLine=function(de){if(!this.lines.length&&this.doc.cm){var me=this.doc.cm.curOp;(!me.maybeHiddenMarkers||Hn(me.maybeHiddenMarkers,this)==-1)&&(me.maybeUnhiddenMarkers||(me.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(de)},wn.prototype.detachLine=function(de){if(this.lines.splice(Hn(this.lines,de),1),!this.lines.length&&this.doc.cm){var me=this.doc.cm.curOp;(me.maybeHiddenMarkers||(me.maybeHiddenMarkers=[])).push(this)}},zr(wn);function Hv(de,me,Ee,Pe,Ne){if(Pe&&Pe.shared)return fC(de,me,Ee,Pe,Ne);if(de.cm&&!de.cm.curOp)return ja(de.cm,Hv)(de,me,Ee,Pe,Ne);var Xe=new wn(de,Ne),at=Fo(me,Ee);if(Pe&&hi(Pe,Xe,!1),at>0||at==0&&Xe.clearWhenEmpty!==!1)return Xe;if(Xe.replacedWith&&(Xe.collapsed=!0,Xe.widgetNode=$t("span",[Xe.replacedWith],"CodeMirror-widget"),Pe.handleMouseEvents||Xe.widgetNode.setAttribute("cm-ignore-events","true"),Pe.insertLeft&&(Xe.widgetNode.insertLeft=!0)),Xe.collapsed){if(Vo(de,me.line,me,Ee,Xe)||me.line!=Ee.line&&Vo(de,Ee.line,me,Ee,Xe))throw new Error("Inserting collapsed marker partially overlapping an existing one");Yi()}Xe.addToHistory&&to(de,{from:me,to:Ee,origin:"markText"},de.sel,NaN);var Ct=me.line,St=de.cm,jt;if(de.iter(Ct,Ee.line+1,function(nn){St&&Xe.collapsed&&!St.options.lineWrapping&&Co(nn)==St.display.maxLine&&(jt=!0),Xe.collapsed&&Ct!=me.line&&pa(nn,0),pc(nn,new $o(Xe,Ct==me.line?me.ch:null,Ct==Ee.line?Ee.ch:null)),++Ct}),Xe.collapsed&&de.iter(me.line,Ee.line+1,function(nn){Dt(de,nn)&&pa(nn,0)}),Xe.clearOnEnter&&Vr(Xe,"beforeCursorEnter",function(){return Xe.clear()}),Xe.readOnly&&(hl(),(de.history.done.length||de.history.undone.length)&&de.clearHistory()),Xe.collapsed&&(Xe.id=++AS,Xe.atomic=!0),St){if(jt&&(St.curOp.updateMaxLine=!0),Xe.collapsed)Au(St,me.line,Ee.line+1);else if(Xe.className||Xe.startStyle||Xe.endStyle||Xe.css||Xe.attributes||Xe.title)for(var On=me.line;On<=Ee.line;On++)tl(St,On,"text");Xe.atomic&&ea(St.doc),yr(St,"markerAdded",St,Xe)}return Xe}var sm=function(de,me){this.markers=de,this.primary=me;for(var Ee=0;Ee<de.length;++Ee)de[Ee].parent=this};sm.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var de=0;de<this.markers.length;++de)this.markers[de].clear();yr(this,"clear")}},sm.prototype.find=function(de,me){return this.primary.find(de,me)},zr(sm);function fC(de,me,Ee,Pe,Ne){Pe=hi(Pe),Pe.shared=!1;var Xe=[Hv(de,me,Ee,Pe,Ne)],at=Xe[0],Ct=Pe.widgetNode;return Bn(de,function(St){Ct&&(Pe.widgetNode=Ct.cloneNode(!0)),Xe.push(Hv(St,Jo(St,me),Jo(St,Ee),Pe,Ne));for(var jt=0;jt<St.linked.length;++jt)if(St.linked[jt].isParent)return;at=en(Xe)}),new sm(Xe,at)}function pC(de){return de.findMarks(Ji(de.first,0),de.clipPos(Ji(de.lastLine())),function(me){return me.parent})}function gC(de,me){for(var Ee=0;Ee<me.length;Ee++){var Pe=me[Ee],Ne=Pe.find(),Xe=de.clipPos(Ne.from),at=de.clipPos(Ne.to);if(Fo(Xe,at)){var Ct=Hv(de,Xe,at,Pe.primary,Pe.primary.type);Pe.markers.push(Ct),Ct.parent=Pe}}}function mC(de){for(var me=function(Pe){var Ne=de[Pe],Xe=[Ne.primary.doc];Bn(Ne.primary.doc,function(St){return Xe.push(St)});for(var at=0;at<Ne.markers.length;at++){var Ct=Ne.markers[at];Hn(Xe,Ct.doc)==-1&&(Ct.parent=null,Ne.markers.splice(at--,1))}},Ee=0;Ee<de.length;Ee++)me(Ee)}var Wb=0,jd=function(de,me,Ee,Pe,Ne){if(!(this instanceof jd))return new jd(de,me,Ee,Pe,Ne);Ee==null&&(Ee=0),eh.call(this,[new Uv([new zn("",null)])]),this.first=Ee,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=Ee;var Xe=Ji(Ee,0);this.sel=He(Xe),this.history=new fi(null),this.id=++Wb,this.modeOption=me,this.lineSep=Pe,this.direction=Ne=="rtl"?"rtl":"ltr",this.extend=!1,typeof de=="string"&&(de=this.splitLines(de)),Wt(this,{from:Xe,to:Xe,text:de}),Ko(this,He(Xe),En)};jd.prototype=Ze(eh.prototype,{constructor:jd,iter:function(de,me,Ee){Ee?this.iterN(de-this.first,me-de,Ee):this.iterN(this.first,this.first+this.size,de)},insert:function(de,me){for(var Ee=0,Pe=0;Pe<me.length;++Pe)Ee+=me[Pe].height;this.insertInner(de-this.first,me,Ee)},remove:function(de,me){this.removeInner(de-this.first,me)},getValue:function(de){var me=aa(this,this.first,this.first+this.size);return de===!1?me:me.join(de||this.lineSeparator())},setValue:uu(function(de){var me=Ji(this.first,0),Ee=this.first+this.size-1;Tg(this,{from:me,to:Ji(Ee,co(this,Ee).text.length),text:this.splitLines(de),origin:"setValue",full:!0},!0),this.cm&&Sf(this.cm,0,0),Ko(this,He(me),En)}),replaceRange:function(de,me,Ee,Pe){me=Jo(this,me),Ee=Ee?Jo(this,Ee):me,Rv(this,de,me,Ee,Pe)},getRange:function(de,me,Ee){var Pe=Oa(this,Jo(this,de),Jo(this,me));return Ee===!1?Pe:Pe.join(Ee||this.lineSeparator())},getLine:function(de){var me=this.getLineHandle(de);return me&&me.text},getLineHandle:function(de){if(Xo(this,de))return co(this,de)},getLineNumber:function(de){return hn(de)},getLineHandleVisualStart:function(de){return typeof de=="number"&&(de=co(this,de)),Co(de)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(de){return Jo(this,de)},getCursor:function(de){var me=this.sel.primary(),Ee;return de==null||de=="head"?Ee=me.head:de=="anchor"?Ee=me.anchor:de=="end"||de=="to"||de===!1?Ee=me.to():Ee=me.from(),Ee},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:uu(function(de,me,Ee){Eo(this,Jo(this,typeof de=="number"?Ji(de,me||0):de),null,Ee)}),setSelection:uu(function(de,me,Ee){Eo(this,Jo(this,de),Jo(this,me||de),Ee)}),extendSelection:uu(function(de,me,Ee){Ci(this,Jo(this,de),me&&Jo(this,me),Ee)}),extendSelections:uu(function(de,me){qr(this,us(this,de),me)}),extendSelectionsBy:uu(function(de,me){var Ee=Ti(this.sel.ranges,de);qr(this,us(this,Ee),me)}),setSelections:uu(function(de,me,Ee){if(de.length){for(var Pe=[],Ne=0;Ne<de.length;Ne++)Pe[Ne]=new sc(Jo(this,de[Ne].anchor),Jo(this,de[Ne].head));me==null&&(me=Math.min(de.length-1,this.sel.primIndex)),Ko(this,Fe(this.cm,Pe,me),Ee)}}),addSelection:uu(function(de,me,Ee){var Pe=this.sel.ranges.slice(0);Pe.push(new sc(Jo(this,de),Jo(this,me||de))),Ko(this,Fe(this.cm,Pe,Pe.length-1),Ee)}),getSelection:function(de){for(var me=this.sel.ranges,Ee,Pe=0;Pe<me.length;Pe++){var Ne=Oa(this,me[Pe].from(),me[Pe].to());Ee=Ee?Ee.concat(Ne):Ne}return de===!1?Ee:Ee.join(de||this.lineSeparator())},getSelections:function(de){for(var me=[],Ee=this.sel.ranges,Pe=0;Pe<Ee.length;Pe++){var Ne=Oa(this,Ee[Pe].from(),Ee[Pe].to());de!==!1&&(Ne=Ne.join(de||this.lineSeparator())),me[Pe]=Ne}return me},replaceSelection:function(de,me,Ee){for(var Pe=[],Ne=0;Ne<this.sel.ranges.length;Ne++)Pe[Ne]=de;this.replaceSelections(Pe,me,Ee||"+input")},replaceSelections:uu(function(de,me,Ee){for(var Pe=[],Ne=this.sel,Xe=0;Xe<Ne.ranges.length;Xe++){var at=Ne.ranges[Xe];Pe[Xe]={from:at.from(),to:at.to(),text:this.splitLines(de[Xe]),origin:Ee}}for(var Ct=me&&me!="end"&&Ot(this,Pe,me),St=Pe.length-1;St>=0;St--)Tg(this,Pe[St]);Ct?is(this,Ct):this.cm&&qh(this.cm)}),undo:uu(function(){rx(this,"undo")}),redo:uu(function(){rx(this,"redo")}),undoSelection:uu(function(){rx(this,"undo",!0)}),redoSelection:uu(function(){rx(this,"redo",!0)}),setExtending:function(de){this.extend=de},getExtending:function(){return this.extend},historySize:function(){for(var de=this.history,me=0,Ee=0,Pe=0;Pe<de.done.length;Pe++)de.done[Pe].ranges||++me;for(var Ne=0;Ne<de.undone.length;Ne++)de.undone[Ne].ranges||++Ee;return{undo:me,redo:Ee}},clearHistory:function(){var de=this;this.history=new fi(this.history.maxGeneration),Bn(this,function(me){return me.history=de.history},!0)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(de){return de&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(de){return this.history.generation==(de||this.cleanGeneration)},getHistory:function(){return{done:Er(this.history.done),undone:Er(this.history.undone)}},setHistory:function(de){var me=this.history=new fi(this.history.maxGeneration);me.done=Er(de.done.slice(0),null,!0),me.undone=Er(de.undone.slice(0),null,!0)},setGutterMarker:uu(function(de,me,Ee){return zv(this,de,"gutter",function(Pe){var Ne=Pe.gutterMarkers||(Pe.gutterMarkers={});return Ne[me]=Ee,!Ee&&qe(Ne)&&(Pe.gutterMarkers=null),!0})}),clearGutter:uu(function(de){var me=this;this.iter(function(Ee){Ee.gutterMarkers&&Ee.gutterMarkers[de]&&zv(me,Ee,"gutter",function(){return Ee.gutterMarkers[de]=null,qe(Ee.gutterMarkers)&&(Ee.gutterMarkers=null),!0})})}),lineInfo:function(de){var me;if(typeof de=="number"){if(!Xo(this,de)||(me=de,de=co(this,de),!de))return null}else if(me=hn(de),me==null)return null;return{line:me,handle:de,text:de.text,gutterMarkers:de.gutterMarkers,textClass:de.textClass,bgClass:de.bgClass,wrapClass:de.wrapClass,widgets:de.widgets}},addLineClass:uu(function(de,me,Ee){return zv(this,de,me=="gutter"?"gutter":"class",function(Pe){var Ne=me=="text"?"textClass":me=="background"?"bgClass":me=="gutter"?"gutterClass":"wrapClass";if(!Pe[Ne])Pe[Ne]=Ee;else{if(lt(Ee).test(Pe[Ne]))return!1;Pe[Ne]+=" "+Ee}return!0})}),removeLineClass:uu(function(de,me,Ee){return zv(this,de,me=="gutter"?"gutter":"class",function(Pe){var Ne=me=="text"?"textClass":me=="background"?"bgClass":me=="gutter"?"gutterClass":"wrapClass",Xe=Pe[Ne];if(Xe)if(Ee==null)Pe[Ne]=null;else{var at=Xe.match(lt(Ee));if(!at)return!1;var Ct=at.index+at[0].length;Pe[Ne]=Xe.slice(0,at.index)+(!at.index||Ct==Xe.length?"":" ")+Xe.slice(Ct)||null}else return!1;return!0})}),addLineWidget:uu(function(de,me,Ee){return G1(this,de,me,Ee)}),removeLineWidget:function(de){de.clear()},markText:function(de,me,Ee){return Hv(this,Jo(this,de),Jo(this,me),Ee,Ee&&Ee.type||"range")},setBookmark:function(de,me){var Ee={replacedWith:me&&(me.nodeType==null?me.widget:me),insertLeft:me&&me.insertLeft,clearWhenEmpty:!1,shared:me&&me.shared,handleMouseEvents:me&&me.handleMouseEvents};return de=Jo(this,de),Hv(this,de,de,Ee,"bookmark")},findMarksAt:function(de){de=Jo(this,de);var me=[],Ee=co(this,de.line).markedSpans;if(Ee)for(var Pe=0;Pe<Ee.length;++Pe){var Ne=Ee[Pe];(Ne.from==null||Ne.from<=de.ch)&&(Ne.to==null||Ne.to>=de.ch)&&me.push(Ne.marker.parent||Ne.marker)}return me},findMarks:function(de,me,Ee){de=Jo(this,de),me=Jo(this,me);var Pe=[],Ne=de.line;return this.iter(de.line,me.line+1,function(Xe){var at=Xe.markedSpans;if(at)for(var Ct=0;Ct<at.length;Ct++){var St=at[Ct];!(St.to!=null&&Ne==de.line&&de.ch>=St.to||St.from==null&&Ne!=de.line||St.from!=null&&Ne==me.line&&St.from>=me.ch)&&(!Ee||Ee(St.marker))&&Pe.push(St.marker.parent||St.marker)}++Ne}),Pe},getAllMarks:function(){var de=[];return this.iter(function(me){var Ee=me.markedSpans;if(Ee)for(var Pe=0;Pe<Ee.length;++Pe)Ee[Pe].from!=null&&de.push(Ee[Pe].marker)}),de},posFromIndex:function(de){var me,Ee=this.first,Pe=this.lineSeparator().length;return this.iter(function(Ne){var Xe=Ne.text.length+Pe;if(Xe>de)return me=de,!0;de-=Xe,++Ee}),Jo(this,Ji(Ee,me))},indexFromPos:function(de){de=Jo(this,de);var me=de.ch;if(de.line<this.first||de.ch<0)return 0;var Ee=this.lineSeparator().length;return this.iter(this.first,de.line,function(Pe){me+=Pe.text.length+Ee}),me},copy:function(de){var me=new jd(aa(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return me.scrollTop=this.scrollTop,me.scrollLeft=this.scrollLeft,me.sel=this.sel,me.extend=!1,de&&(me.history.undoDepth=this.history.undoDepth,me.setHistory(this.getHistory())),me},linkedDoc:function(de){de||(de={});var me=this.first,Ee=this.first+this.size;de.from!=null&&de.from>me&&(me=de.from),de.to!=null&&de.to<Ee&&(Ee=de.to);var Pe=new jd(aa(this,me,Ee),de.mode||this.modeOption,me,this.lineSep,this.direction);return de.sharedHist&&(Pe.history=this.history),(this.linked||(this.linked=[])).push({doc:Pe,sharedHist:de.sharedHist}),Pe.linked=[{doc:this,isParent:!0,sharedHist:de.sharedHist}],gC(Pe,pC(this)),Pe},unlinkDoc:function(de){if(de instanceof zu&&(de=de.doc),this.linked)for(var me=0;me<this.linked.length;++me){var Ee=this.linked[me];if(Ee.doc==de){this.linked.splice(me,1),de.unlinkDoc(this),mC(pC(this));break}}if(de.history==this.history){var Pe=[de.id];Bn(de,function(Ne){return Pe.push(Ne.id)},!0),de.history=new fi(null),de.history.done=Er(this.history.done,Pe),de.history.undone=Er(this.history.undone,Pe)}},iterLinkedDocs:function(de){Bn(this,de)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(de){return this.lineSep?de.split(this.lineSep):Al(de)},lineSeparator:function(){return this.lineSep||`
|
|
`},setDirection:uu(function(de){de!="rtl"&&(de="ltr"),de!=this.direction&&(this.direction=de,this.iter(function(me){return me.order=null}),this.cm&&bi(this.cm))})}),jd.prototype.eachLine=jd.prototype.iter;var ox=0;function xS(de){var me=this;if(yC(me),!(pi(me,de)||Ms(me.display,de))){ao(de),It&&(ox=+new Date);var Ee=zc(me,de,!0),Pe=de.dataTransfer.files;if(!(!Ee||me.isReadOnly()))if(Pe&&Pe.length&&window.FileReader&&window.File)for(var Ne=Pe.length,Xe=Array(Ne),at=0,Ct=function(){++at==Ne&&ja(me,function(){Ee=Jo(me.doc,Ee);var li={from:Ee,to:Ee,text:me.doc.splitLines(Xe.filter(function(jr){return jr!=null}).join(me.doc.lineSeparator())),origin:"paste"};Tg(me.doc,li),is(me.doc,He(Jo(me.doc,Ee),Jo(me.doc,Qe(li))))})()},St=function(li,jr){if(me.options.allowDropFileTypes&&Hn(me.options.allowDropFileTypes,li.type)==-1){Ct();return}var no=new FileReader;no.onerror=function(){return Ct()},no.onload=function(){var To=no.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(To)){Ct();return}Xe[jr]=To,Ct()},no.readAsText(li)},jt=0;jt<Pe.length;jt++)St(Pe[jt],jt);else{if(me.state.draggingText&&me.doc.sel.contains(Ee)>-1){me.state.draggingText(de),setTimeout(function(){return me.display.input.focus()},20);return}try{var On=de.dataTransfer.getData("Text");if(On){var nn;if(me.state.draggingText&&!me.state.draggingText.copy&&(nn=me.listSelections()),za(me.doc,He(Ee,Ee)),nn)for(var wi=0;wi<nn.length;++wi)Rv(me.doc,"",nn[wi].anchor,nn[wi].head,"drag");me.replaceSelection(On,"around","paste"),me.display.input.focus()}}catch(li){}}}}function vC(de,me){if(It&&(!de.state.draggingText||+new Date-ox<100)){ir(me);return}if(!(pi(de,me)||Ms(de.display,me))&&(me.dataTransfer.setData("Text",de.getSelection()),me.dataTransfer.effectAllowed="copyMove",me.dataTransfer.setDragImage&&!ln)){var Ee=Et("img",null,null,"position: fixed; left: 0; top: 0;");Ee.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",nt&&(Ee.width=Ee.height=1,de.display.wrapper.appendChild(Ee),Ee._top=Ee.offsetTop),me.dataTransfer.setDragImage(Ee,0,0),nt&&Ee.parentNode.removeChild(Ee)}}function Qb(de,me){var Ee=zc(de,me);if(Ee){var Pe=document.createDocumentFragment();ul(de,Ee,Pe),de.display.dragCursor||(de.display.dragCursor=Et("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),de.display.lineSpace.insertBefore(de.display.dragCursor,de.display.cursorDiv)),xt(de.display.dragCursor,Pe)}}function yC(de){de.display.dragCursor&&(de.display.lineSpace.removeChild(de.display.dragCursor),de.display.dragCursor=null)}function sx(de){if(document.getElementsByClassName){for(var me=document.getElementsByClassName("CodeMirror"),Ee=[],Pe=0;Pe<me.length;Pe++){var Ne=me[Pe].CodeMirror;Ne&&Ee.push(Ne)}Ee.length&&Ee[0].operation(function(){for(var Xe=0;Xe<Ee.length;Xe++)de(Ee[Xe])})}}var oo=!1;function Gp(){oo||(Qy(),oo=!0)}function Qy(){var de;Vr(window,"resize",function(){de==null&&(de=setTimeout(function(){de=null,sx(wS)},100))}),Vr(window,"blur",function(){return sx(tf)})}function wS(de){var me=de.display;me.cachedCharWidth=me.cachedTextHeight=me.cachedPaddingH=null,me.scrollbarsClipped=!1,de.setSize()}for(var am={3:"Pause",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",145:"ScrollLock",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",224:"Mod",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},ax=0;ax<10;ax++)am[ax+48]=am[ax+96]=String(ax);for(var X1=65;X1<=90;X1++)am[X1]=String.fromCharCode(X1);for(var Zy=1;Zy<=12;Zy++)am[Zy+111]=am[Zy+63235]="F"+Zy;var rf={};rf.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},rf.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},rf.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},rf.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},rf.default=Ce?rf.macDefault:rf.pcDefault;function lx(de){var me=de.split(/-(?!$)/);de=me[me.length-1];for(var Ee,Pe,Ne,Xe,at=0;at<me.length-1;at++){var Ct=me[at];if(/^(cmd|meta|m)$/i.test(Ct))Xe=!0;else if(/^a(lt)?$/i.test(Ct))Ee=!0;else if(/^(c|ctrl|control)$/i.test(Ct))Pe=!0;else if(/^s(hift)?$/i.test(Ct))Ne=!0;else throw new Error("Unrecognized modifier name: "+Ct)}return Ee&&(de="Alt-"+de),Pe&&(de="Ctrl-"+de),Xe&&(de="Cmd-"+de),Ne&&(de="Shift-"+de),de}function Vv(de){var me={};for(var Ee in de)if(de.hasOwnProperty(Ee)){var Pe=de[Ee];if(/^(name|fallthrough|(de|at)tach)$/.test(Ee))continue;if(Pe=="..."){delete de[Ee];continue}for(var Ne=Ti(Ee.split(" "),lx),Xe=0;Xe<Ne.length;Xe++){var at=void 0,Ct=void 0;Xe==Ne.length-1?(Ct=Ne.join(" "),at=Pe):(Ct=Ne.slice(0,Xe+1).join(" "),at="...");var St=me[Ct];if(!St)me[Ct]=at;else if(St!=at)throw new Error("Inconsistent bindings for "+Ct)}delete de[Ee]}for(var jt in me)de[jt]=me[jt];return de}function lg(de,me,Ee,Pe){me=ac(me);var Ne=me.call?me.call(de,Pe):me[de];if(Ne===!1)return"nothing";if(Ne==="...")return"multi";if(Ne!=null&&Ee(Ne))return"handled";if(me.fallthrough){if(Object.prototype.toString.call(me.fallthrough)!="[object Array]")return lg(de,me.fallthrough,Ee,Pe);for(var Xe=0;Xe<me.fallthrough.length;Xe++){var at=lg(de,me.fallthrough[Xe],Ee,Pe);if(at)return at}}}function Yy(de){var me=typeof de=="string"?de:am[de.keyCode];return me=="Ctrl"||me=="Alt"||me=="Shift"||me=="Mod"}function SS(de,me,Ee){var Pe=de;return me.altKey&&Pe!="Alt"&&(de="Alt-"+de),(ze?me.metaKey:me.ctrlKey)&&Pe!="Ctrl"&&(de="Ctrl-"+de),(ze?me.ctrlKey:me.metaKey)&&Pe!="Mod"&&(de="Cmd-"+de),!Ee&&me.shiftKey&&Pe!="Shift"&&(de="Shift-"+de),de}function Dg(de,me){if(nt&&de.keyCode==34&&de.char)return!1;var Ee=am[de.keyCode];return Ee==null||de.altGraphKey?!1:(de.keyCode==3&&de.code&&(Ee=de.code),SS(Ee,de,me))}function ac(de){return typeof de=="string"?rf[de]:de}function cp(de,me){for(var Ee=de.doc.sel.ranges,Pe=[],Ne=0;Ne<Ee.length;Ne++){for(var Xe=me(Ee[Ne]);Pe.length&&Fo(Xe.from,en(Pe).to)<=0;){var at=Pe.pop();if(Fo(at.from,Xe.from)<0){Xe.from=at.from;break}}Pe.push(Xe)}Ma(de,function(){for(var Ct=Pe.length-1;Ct>=0;Ct--)Rv(de.doc,"",Pe[Ct].from,Pe[Ct].to,"+delete");qh(de)})}function W1(de,me,Ee){var Pe=Gn(de.text,me+Ee,Ee);return Pe<0||Pe>de.text.length?null:Pe}function Nh(de,me,Ee){var Pe=W1(de,me.ch,Ee);return Pe==null?null:new Ji(me.line,Pe,Ee<0?"after":"before")}function ux(de,me,Ee,Pe,Ne){if(de){me.doc.direction=="rtl"&&(Ne=-Ne);var Xe=Nr(Ee,me.doc.direction);if(Xe){var at=Ne<0?en(Xe):Xe[0],Ct=Ne<0==(at.level==1),St=Ct?"after":"before",jt;if(at.level>0||me.doc.direction=="rtl"){var On=Ml(me,Ee);jt=Ne<0?Ee.text.length-1:0;var nn=au(me,On,jt).top;jt=fo(function(wi){return au(me,On,wi).top==nn},Ne<0==(at.level==1)?at.from:at.to-1,jt),St=="before"&&(jt=W1(Ee,jt,1))}else jt=Ne<0?at.to:at.from;return new Ji(Pe,jt,St)}}return new Ji(Pe,Ne<0?Ee.text.length:0,Ne<0?"before":"after")}function cx(de,me,Ee,Pe){var Ne=Nr(me,de.doc.direction);if(!Ne)return Nh(me,Ee,Pe);Ee.ch>=me.text.length?(Ee.ch=me.text.length,Ee.sticky="before"):Ee.ch<=0&&(Ee.ch=0,Ee.sticky="after");var Xe=oi(Ne,Ee.ch,Ee.sticky),at=Ne[Xe];if(de.doc.direction=="ltr"&&at.level%2==0&&(Pe>0?at.to>Ee.ch:at.from<Ee.ch))return Nh(me,Ee,Pe);var Ct=function(rs,na){return W1(me,rs instanceof Ji?rs.ch:rs,na)},St,jt=function(rs){return de.options.lineWrapping?(St=St||Ml(de,me),Iu(de,me,St,rs)):{begin:0,end:me.text.length}},On=jt(Ee.sticky=="before"?Ct(Ee,-1):Ee.ch);if(de.doc.direction=="rtl"||at.level==1){var nn=at.level==1==Pe<0,wi=Ct(Ee,nn?1:-1);if(wi!=null&&(nn?wi<=at.to&&wi<=On.end:wi>=at.from&&wi>=On.begin)){var li=nn?"before":"after";return new Ji(Ee.line,wi,li)}}var jr=function(rs,na,Ns){for(var va=function(Uc,bh){return bh?new Ji(Ee.line,Ct(Uc,1),"before"):new Ji(Ee.line,Uc,"after")};rs>=0&&rs<Ne.length;rs+=na){var ml=Ne[rs],Os=na>0==(ml.level!=1),ou=Os?Ns.begin:Ct(Ns.end,-1);if(ml.from<=ou&&ou<ml.to||(ou=Os?ml.from:Ct(ml.to,-1),Ns.begin<=ou&&ou<Ns.end))return va(ou,Os)}},no=jr(Xe+Pe,Pe,On);if(no)return no;var To=Pe>0?On.end:Ct(On.begin,-1);return To!=null&&!(Pe>0&&To==me.text.length)&&(no=jr(Pe>0?0:Ne.length-1,Pe,jt(To)),no)?no:null}var G0={selectAll:Nu,singleSelection:function(de){return de.setSelection(de.getCursor("anchor"),de.getCursor("head"),En)},killLine:function(de){return cp(de,function(me){if(me.empty()){var Ee=co(de.doc,me.head.line).text.length;return me.head.ch==Ee&&me.head.line<de.lastLine()?{from:me.head,to:Ji(me.head.line+1,0)}:{from:me.head,to:Ji(me.head.line,Ee)}}else return{from:me.from(),to:me.to()}})},deleteLine:function(de){return cp(de,function(me){return{from:Ji(me.from().line,0),to:Jo(de.doc,Ji(me.to().line+1,0))}})},delLineLeft:function(de){return cp(de,function(me){return{from:Ji(me.from().line,0),to:me.from()}})},delWrappedLineLeft:function(de){return cp(de,function(me){var Ee=de.charCoords(me.head,"div").top+5,Pe=de.coordsChar({left:0,top:Ee},"div");return{from:Pe,to:me.from()}})},delWrappedLineRight:function(de){return cp(de,function(me){var Ee=de.charCoords(me.head,"div").top+5,Pe=de.coordsChar({left:de.display.lineDiv.offsetWidth+100,top:Ee},"div");return{from:me.from(),to:Pe}})},undo:function(de){return de.undo()},redo:function(de){return de.redo()},undoSelection:function(de){return de.undoSelection()},redoSelection:function(de){return de.redoSelection()},goDocStart:function(de){return de.extendSelection(Ji(de.firstLine(),0))},goDocEnd:function(de){return de.extendSelection(Ji(de.lastLine()))},goLineStart:function(de){return de.extendSelectionsBy(function(me){return X0(de,me.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(de){return de.extendSelectionsBy(function(me){return Q1(de,me.head)},{origin:"+move",bias:1})},goLineEnd:function(de){return de.extendSelectionsBy(function(me){return hx(de,me.head.line)},{origin:"+move",bias:-1})},goLineRight:function(de){return de.extendSelectionsBy(function(me){var Ee=de.cursorCoords(me.head,"div").top+5;return de.coordsChar({left:de.display.lineDiv.offsetWidth+100,top:Ee},"div")},Ln)},goLineLeft:function(de){return de.extendSelectionsBy(function(me){var Ee=de.cursorCoords(me.head,"div").top+5;return de.coordsChar({left:0,top:Ee},"div")},Ln)},goLineLeftSmart:function(de){return de.extendSelectionsBy(function(me){var Ee=de.cursorCoords(me.head,"div").top+5,Pe=de.coordsChar({left:0,top:Ee},"div");return Pe.ch<de.getLine(Pe.line).search(/\S/)?Q1(de,me.head):Pe},Ln)},goLineUp:function(de){return de.moveV(-1,"line")},goLineDown:function(de){return de.moveV(1,"line")},goPageUp:function(de){return de.moveV(-1,"page")},goPageDown:function(de){return de.moveV(1,"page")},goCharLeft:function(de){return de.moveH(-1,"char")},goCharRight:function(de){return de.moveH(1,"char")},goColumnLeft:function(de){return de.moveH(-1,"column")},goColumnRight:function(de){return de.moveH(1,"column")},goWordLeft:function(de){return de.moveH(-1,"word")},goGroupRight:function(de){return de.moveH(1,"group")},goGroupLeft:function(de){return de.moveH(-1,"group")},goWordRight:function(de){return de.moveH(1,"word")},delCharBefore:function(de){return de.deleteH(-1,"codepoint")},delCharAfter:function(de){return de.deleteH(1,"char")},delWordBefore:function(de){return de.deleteH(-1,"word")},delWordAfter:function(de){return de.deleteH(1,"word")},delGroupBefore:function(de){return de.deleteH(-1,"group")},delGroupAfter:function(de){return de.deleteH(1,"group")},indentAuto:function(de){return de.indentSelection("smart")},indentMore:function(de){return de.indentSelection("add")},indentLess:function(de){return de.indentSelection("subtract")},insertTab:function(de){return de.replaceSelection(" ")},insertSoftTab:function(de){for(var me=[],Ee=de.listSelections(),Pe=de.options.tabSize,Ne=0;Ne<Ee.length;Ne++){var Xe=Ee[Ne].from(),at=Ht(de.getLine(Xe.line),Xe.ch,Pe);me.push(ni(Pe-at%Pe))}de.replaceSelections(me)},defaultTab:function(de){de.somethingSelected()?de.indentSelection("add"):de.execCommand("insertTab")},transposeChars:function(de){return Ma(de,function(){for(var me=de.listSelections(),Ee=[],Pe=0;Pe<me.length;Pe++)if(me[Pe].empty()){var Ne=me[Pe].head,Xe=co(de.doc,Ne.line).text;if(Xe){if(Ne.ch==Xe.length&&(Ne=new Ji(Ne.line,Ne.ch-1)),Ne.ch>0)Ne=new Ji(Ne.line,Ne.ch+1),de.replaceRange(Xe.charAt(Ne.ch-1)+Xe.charAt(Ne.ch-2),Ji(Ne.line,Ne.ch-2),Ne,"+transpose");else if(Ne.line>de.doc.first){var at=co(de.doc,Ne.line-1).text;at&&(Ne=new Ji(Ne.line,1),de.replaceRange(Xe.charAt(0)+de.doc.lineSeparator()+at.charAt(at.length-1),Ji(Ne.line-1,at.length-1),Ne,"+transpose"))}}Ee.push(new sc(Ne,Ne))}de.setSelections(Ee)})},newlineAndIndent:function(de){return Ma(de,function(){for(var me=de.listSelections(),Ee=me.length-1;Ee>=0;Ee--)de.replaceRange(de.doc.lineSeparator(),me[Ee].anchor,me[Ee].head,"+input");me=de.listSelections();for(var Pe=0;Pe<me.length;Pe++)de.indentLine(me[Pe].from().line,null,!0);qh(de)})},openLine:function(de){return de.replaceSelection(`
|
|
`,"start")},toggleOverwrite:function(de){return de.toggleOverwrite()}};function X0(de,me){var Ee=co(de.doc,me),Pe=Co(Ee);return Pe!=Ee&&(me=hn(Pe)),ux(!0,de,Pe,me,1)}function hx(de,me){var Ee=co(de.doc,me),Pe=vo(Ee);return Pe!=Ee&&(me=hn(Pe)),ux(!0,de,Ee,me,-1)}function Q1(de,me){var Ee=X0(de,me.line),Pe=co(de.doc,Ee.line),Ne=Nr(Pe,de.doc.direction);if(!Ne||Ne[0].level==0){var Xe=Math.max(Ee.ch,Pe.text.search(/\S/)),at=me.line==Ee.line&&me.ch<=Xe&&me.ch;return Ji(Ee.line,at?0:Xe,Ee.sticky)}return Ee}function Ky(de,me,Ee){if(typeof me=="string"&&(me=G0[me],!me))return!1;de.display.input.ensurePolled();var Pe=de.display.shift,Ne=!1;try{de.isReadOnly()&&(de.state.suppressEdits=!0),Ee&&(de.display.shift=!1),Ne=me(de)!=dr}finally{de.display.shift=Pe,de.state.suppressEdits=!1}return Ne}function PS(de,me,Ee){for(var Pe=0;Pe<de.state.keyMaps.length;Pe++){var Ne=lg(me,de.state.keyMaps[Pe],Ee,de);if(Ne)return Ne}return de.options.extraKeys&&lg(me,de.options.extraKeys,Ee,de)||lg(me,de.options.keyMap,Ee,de)}var lm=new At;function ug(de,me,Ee,Pe){var Ne=de.state.keySeq;if(Ne){if(Yy(me))return"handled";if(/\'$/.test(me)?de.state.keySeq=null:lm.set(50,function(){de.state.keySeq==Ne&&(de.state.keySeq=null,de.display.input.reset())}),Jy(de,Ne+" "+me,Ee,Pe))return!0}return Jy(de,me,Ee,Pe)}function Jy(de,me,Ee,Pe){var Ne=PS(de,me,Pe);return Ne=="multi"&&(de.state.keySeq=me),Ne=="handled"&&yr(de,"keyHandled",de,me,Ee),(Ne=="handled"||Ne=="multi")&&(ao(Ee),Ol(de)),!!Ne}function Z1(de,me){var Ee=Dg(me,!0);return Ee?me.shiftKey&&!de.state.keySeq?ug(de,"Shift-"+Ee,me,function(Pe){return Ky(de,Pe,!0)})||ug(de,Ee,me,function(Pe){if(typeof Pe=="string"?/^go[A-Z]/.test(Pe):Pe.motion)return Ky(de,Pe)}):ug(de,Ee,me,function(Pe){return Ky(de,Pe)}):!1}function Y1(de,me,Ee){return ug(de,"'"+Ee+"'",me,function(Pe){return Ky(de,Pe,!0)})}var jv=null;function K1(de){var me=this;if(!(de.target&&de.target!=me.display.input.getField())&&(me.curOp.focus=gn(),!pi(me,de))){It&&dt<11&&de.keyCode==27&&(de.returnValue=!1);var Ee=de.keyCode;me.display.shift=Ee==16||de.shiftKey;var Pe=Z1(me,de);nt&&(jv=Pe?Ee:null,!Pe&&Ee==88&&!ui&&(Ce?de.metaKey:de.ctrlKey)&&me.replaceSelection("",null,"cut")),Me&&!Ce&&!Pe&&Ee==46&&de.shiftKey&&!de.ctrlKey&&document.execCommand&&document.execCommand("cut"),Ee==18&&!/\bCodeMirror-crosshair\b/.test(me.display.lineDiv.className)&&CS(me)}}function CS(de){var me=de.display.lineDiv;Jn(me,"CodeMirror-crosshair");function Ee(Pe){(Pe.keyCode==18||!Pe.altKey)&&(Bt(me,"CodeMirror-crosshair"),Rn(document,"keyup",Ee),Rn(document,"mouseover",Ee))}Vr(document,"keyup",Ee),Vr(document,"mouseover",Ee)}function ES(de){de.keyCode==16&&(this.doc.sel.shift=!1),pi(this,de)}function Ng(de){var me=this;if(!(de.target&&de.target!=me.display.input.getField())&&!(Ms(me.display,de)||pi(me,de)||de.ctrlKey&&!de.altKey||Ce&&de.metaKey)){var Ee=de.keyCode,Pe=de.charCode;if(nt&&Ee==jv){jv=null,ao(de);return}if(!(nt&&(!de.which||de.which<10)&&Z1(me,de))){var Ne=String.fromCharCode(Pe==null?Ee:Pe);Ne!="\b"&&(Y1(me,de,Ne)||me.display.input.onKeyPress(de))}}}var J1=400,dx=function(de,me,Ee){this.time=de,this.pos=me,this.button=Ee};dx.prototype.compare=function(de,me,Ee){return this.time+J1>de&&Fo(me,this.pos)==0&&Ee==this.button};var qy,Gv;function bS(de,me){var Ee=+new Date;return Gv&&Gv.compare(Ee,de,me)?(qy=Gv=null,"triple"):qy&&qy.compare(Ee,de,me)?(Gv=new dx(Ee,de,me),qy=null,"double"):(qy=new dx(Ee,de,me),Gv=null,"single")}function Xp(de){var me=this,Ee=me.display;if(!(pi(me,de)||Ee.activeTouch&&Ee.input.supportsTouch())){if(Ee.input.ensurePolled(),Ee.shift=de.shiftKey,Ms(Ee,de)){Mt||(Ee.scroller.draggable=!1,setTimeout(function(){return Ee.scroller.draggable=!0},100));return}if(!$1(me,de)){var Pe=zc(me,de),Ne=Us(de),Xe=Pe?bS(Pe,Ne):"single";window.focus(),Ne==1&&me.state.selectingText&&me.state.selectingText(de),!(Pe&&MS(me,Ne,Pe,Xe,de))&&(Ne==1?Pe?AC(me,Pe,Xe,de):ss(de)==Ee.scroller&&ao(de):Ne==2?(Pe&&Ci(me.doc,Pe),setTimeout(function(){return Ee.input.focus()},20)):Ne==3&&(Ye?me.display.input.onContextMenu(de):Wu(me)))}}}function MS(de,me,Ee,Pe,Ne){var Xe="Click";return Pe=="double"?Xe="Double"+Xe:Pe=="triple"&&(Xe="Triple"+Xe),Xe=(me==1?"Left":me==2?"Middle":"Right")+Xe,ug(de,SS(Xe,Ne),Ne,function(at){if(typeof at=="string"&&(at=G0[at]),!at)return!1;var Ct=!1;try{de.isReadOnly()&&(de.state.suppressEdits=!0),Ct=at(de,Ee)!=dr}finally{de.state.suppressEdits=!1}return Ct})}function BS(de,me,Ee){var Pe=de.getOption("configureMouse"),Ne=Pe?Pe(de,me,Ee):{};if(Ne.unit==null){var Xe=Ae?Ee.shiftKey&&Ee.metaKey:Ee.altKey;Ne.unit=Xe?"rectangle":me=="single"?"char":me=="double"?"word":"line"}return(Ne.extend==null||de.doc.extend)&&(Ne.extend=de.doc.extend||Ee.shiftKey),Ne.addNew==null&&(Ne.addNew=Ce?Ee.metaKey:Ee.ctrlKey),Ne.moveOnDrag==null&&(Ne.moveOnDrag=!(Ce?Ee.altKey:Ee.ctrlKey)),Ne}function AC(de,me,Ee,Pe){It?setTimeout(In(Ou,de),0):de.curOp.focus=gn();var Ne=BS(de,Ee,Pe),Xe=de.doc.sel,at;de.options.dragDrop&&as&&!de.isReadOnly()&&Ee=="single"&&(at=Xe.contains(me))>-1&&(Fo((at=Xe.ranges[at]).from(),me)<0||me.xRel>0)&&(Fo(at.to(),me)>0||me.xRel<0)?TS(de,Pe,me,Ne):xC(de,Pe,me,Ne)}function TS(de,me,Ee,Pe){var Ne=de.display,Xe=!1,at=ja(de,function(jt){Mt&&(Ne.scroller.draggable=!1),de.state.draggingText=!1,Rn(Ne.wrapper.ownerDocument,"mouseup",at),Rn(Ne.wrapper.ownerDocument,"mousemove",Ct),Rn(Ne.scroller,"dragstart",St),Rn(Ne.scroller,"drop",at),Xe||(ao(jt),Pe.addNew||Ci(de.doc,Ee,null,null,Pe.extend),Mt&&!ln||It&&dt==9?setTimeout(function(){Ne.wrapper.ownerDocument.body.focus({preventScroll:!0}),Ne.input.focus()},20):Ne.input.focus())}),Ct=function(jt){Xe=Xe||Math.abs(me.clientX-jt.clientX)+Math.abs(me.clientY-jt.clientY)>=10},St=function(){return Xe=!0};Mt&&(Ne.scroller.draggable=!0),de.state.draggingText=at,at.copy=!Pe.moveOnDrag,Ne.scroller.dragDrop&&Ne.scroller.dragDrop(),Vr(Ne.wrapper.ownerDocument,"mouseup",at),Vr(Ne.wrapper.ownerDocument,"mousemove",Ct),Vr(Ne.scroller,"dragstart",St),Vr(Ne.scroller,"drop",at),Wu(de),setTimeout(function(){return Ne.input.focus()},20)}function q1(de,me,Ee){if(Ee=="char")return new sc(me,me);if(Ee=="word")return de.findWordAt(me);if(Ee=="line")return new sc(Ji(me.line,0),Jo(de.doc,Ji(me.line+1,0)));var Pe=Ee(de,me);return new sc(Pe.from,Pe.to)}function xC(de,me,Ee,Pe){var Ne=de.display,Xe=de.doc;ao(me);var at,Ct,St=Xe.sel,jt=St.ranges;if(Pe.addNew&&!Pe.extend?(Ct=Xe.sel.contains(Ee),Ct>-1?at=jt[Ct]:at=new sc(Ee,Ee)):(at=Xe.sel.primary(),Ct=Xe.sel.primIndex),Pe.unit=="rectangle")Pe.addNew||(at=new sc(Ee,Ee)),Ee=zc(de,me,!0,!0),Ct=-1;else{var On=q1(de,Ee,Pe.unit);Pe.extend?at=ca(at,On.anchor,On.head,Pe.extend):at=On}Pe.addNew?Ct==-1?(Ct=jt.length,Ko(Xe,Fe(de,jt.concat([at]),Ct),{scroll:!1,origin:"*mouse"})):jt.length>1&&jt[Ct].empty()&&Pe.unit=="char"&&!Pe.extend?(Ko(Xe,Fe(de,jt.slice(0,Ct).concat(jt.slice(Ct+1)),0),{scroll:!1,origin:"*mouse"}),St=Xe.sel):Mo(Xe,Ct,at,Mn):(Ct=0,Ko(Xe,new up([at],0),Mn),St=Xe.sel);var nn=Ee;function wi(Ns){if(Fo(nn,Ns)!=0)if(nn=Ns,Pe.unit=="rectangle"){for(var va=[],ml=de.options.tabSize,Os=Ht(co(Xe,Ee.line).text,Ee.ch,ml),ou=Ht(co(Xe,Ns.line).text,Ns.ch,ml),Uc=Math.min(Os,ou),bh=Math.max(Os,ou),Lc=Math.min(Ee.line,Ns.line),Cd=Math.min(de.lastLine(),Math.max(Ee.line,Ns.line));Lc<=Cd;Lc++){var Mh=co(Xe,Lc).text,gh=Mi(Mh,Uc,ml);Uc==bh?va.push(new sc(Ji(Lc,gh),Ji(Lc,gh))):Mh.length>gh&&va.push(new sc(Ji(Lc,gh),Ji(Lc,Mi(Mh,bh,ml))))}va.length||va.push(new sc(Ee,Ee)),Ko(Xe,Fe(de,St.ranges.slice(0,Ct).concat(va),Ct),{origin:"*mouse",scroll:!1}),de.scrollIntoView(Ns)}else{var Gd=at,Gh=q1(de,Ns,Pe.unit),mh=Gd.anchor,Fu;Fo(Gh.anchor,mh)>0?(Fu=Gh.head,mh=ys(Gd.from(),Gh.anchor)):(Fu=Gh.anchor,mh=Ll(Gd.to(),Gh.head));var th=St.ranges.slice(0);th[Ct]=DS(de,new sc(Jo(Xe,mh),Fu)),Ko(Xe,Fe(de,th,Ct),Mn)}}var li=Ne.wrapper.getBoundingClientRect(),jr=0;function no(Ns){var va=++jr,ml=zc(de,Ns,!0,Pe.unit=="rectangle");if(ml)if(Fo(ml,nn)!=0){de.curOp.focus=gn(),wi(ml);var Os=sl(Ne,Xe);(ml.line>=Os.to||ml.line<Os.from)&&setTimeout(ja(de,function(){jr==va&&no(Ns)}),150)}else{var ou=Ns.clientY<li.top?-20:Ns.clientY>li.bottom?20:0;ou&&setTimeout(ja(de,function(){jr==va&&(Ne.scroller.scrollTop+=ou,no(Ns))}),50)}}function To(Ns){de.state.selectingText=!1,jr=1/0,Ns&&(ao(Ns),Ne.input.focus()),Rn(Ne.wrapper.ownerDocument,"mousemove",rs),Rn(Ne.wrapper.ownerDocument,"mouseup",na),Xe.history.lastSelOrigin=null}var rs=ja(de,function(Ns){Ns.buttons===0||!Us(Ns)?To(Ns):no(Ns)}),na=ja(de,To);de.state.selectingText=na,Vr(Ne.wrapper.ownerDocument,"mousemove",rs),Vr(Ne.wrapper.ownerDocument,"mouseup",na)}function DS(de,me){var Ee=me.anchor,Pe=me.head,Ne=co(de.doc,Ee.line);if(Fo(Ee,Pe)==0&&Ee.sticky==Pe.sticky)return me;var Xe=Nr(Ne);if(!Xe)return me;var at=oi(Xe,Ee.ch,Ee.sticky),Ct=Xe[at];if(Ct.from!=Ee.ch&&Ct.to!=Ee.ch)return me;var St=at+(Ct.from==Ee.ch==(Ct.level!=1)?0:1);if(St==0||St==Xe.length)return me;var jt;if(Pe.line!=Ee.line)jt=(Pe.line-Ee.line)*(de.doc.direction=="ltr"?1:-1)>0;else{var On=oi(Xe,Pe.ch,Pe.sticky),nn=On-at||(Pe.ch-Ee.ch)*(Ct.level==1?-1:1);On==St-1||On==St?jt=nn<0:jt=nn>0}var wi=Xe[St+(jt?-1:0)],li=jt==(wi.level==1),jr=li?wi.from:wi.to,no=li?"after":"before";return Ee.ch==jr&&Ee.sticky==no?me:new sc(new Ji(Ee.line,jr,no),Pe)}function _1(de,me,Ee,Pe){var Ne,Xe;if(me.touches)Ne=me.touches[0].clientX,Xe=me.touches[0].clientY;else try{Ne=me.clientX,Xe=me.clientY}catch(wi){return!1}if(Ne>=Math.floor(de.display.gutters.getBoundingClientRect().right))return!1;Pe&&ao(me);var at=de.display,Ct=at.lineDiv.getBoundingClientRect();if(Xe>Ct.bottom||!Cr(de,Ee))return Or(me);Xe-=Ct.top-at.viewOffset;for(var St=0;St<de.display.gutterSpecs.length;++St){var jt=at.gutters.childNodes[St];if(jt&&jt.getBoundingClientRect().right>=Ne){var On=Ar(de.doc,Xe),nn=de.display.gutterSpecs[St];return $n(de,Ee,de,On,nn.className,me),Or(me)}}}function $1(de,me){return _1(de,me,"gutterClick",!0)}function ew(de,me){Ms(de.display,me)||NS(de,me)||pi(de,me,"contextmenu")||Ye||de.display.input.onContextMenu(me)}function NS(de,me){return Cr(de,"gutterContextMenu")?_1(de,me,"gutterContextMenu",!1):!1}function _y(de){de.display.wrapper.className=de.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+de.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Yc(de)}var W0={toString:function(){return"CodeMirror.Init"}},FS={},fx={};function wC(de){var me=de.optionHandlers;function Ee(Pe,Ne,Xe,at){de.defaults[Pe]=Ne,Xe&&(me[Pe]=at?function(Ct,St,jt){jt!=W0&&Xe(Ct,St,jt)}:Xe)}de.defineOption=Ee,de.Init=W0,Ee("value","",function(Pe,Ne){return Pe.setValue(Ne)},!0),Ee("mode",null,function(Pe,Ne){Pe.doc.modeOption=Ne,wt(Pe)},!0),Ee("indentUnit",2,wt,!0),Ee("indentWithTabs",!1),Ee("smartIndent",!0),Ee("tabSize",4,function(Pe){dn(Pe),Yc(Pe),Au(Pe)},!0),Ee("lineSeparator",null,function(Pe,Ne){if(Pe.doc.lineSep=Ne,!!Ne){var Xe=[],at=Pe.doc.first;Pe.doc.iter(function(St){for(var jt=0;;){var On=St.text.indexOf(Ne,jt);if(On==-1)break;jt=On+Ne.length,Xe.push(Ji(at,On))}at++});for(var Ct=Xe.length-1;Ct>=0;Ct--)Rv(Pe.doc,Ne,Xe[Ct],Ji(Xe[Ct].line,Xe[Ct].ch+Ne.length))}}),Ee("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200c\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(Pe,Ne,Xe){Pe.state.specialChars=new RegExp(Ne.source+(Ne.test(" ")?"":"| "),"g"),Xe!=W0&&Pe.refresh()}),Ee("specialCharPlaceholder",er,function(Pe){return Pe.refresh()},!0),Ee("electricChars",!0),Ee("inputStyle",ce?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),Ee("spellcheck",!1,function(Pe,Ne){return Pe.getInputField().spellcheck=Ne},!0),Ee("autocorrect",!1,function(Pe,Ne){return Pe.getInputField().autocorrect=Ne},!0),Ee("autocapitalize",!1,function(Pe,Ne){return Pe.getInputField().autocapitalize=Ne},!0),Ee("rtlMoveVisually",!Te),Ee("wholeLineUpdateBefore",!0),Ee("theme","default",function(Pe){_y(Pe),Uf(Pe)},!0),Ee("keyMap","default",function(Pe,Ne,Xe){var at=ac(Ne),Ct=Xe!=W0&&ac(Xe);Ct&&Ct.detach&&Ct.detach(Pe,at),at.attach&&at.attach(Pe,Ct||null)}),Ee("extraKeys",null),Ee("configureMouse",null),Ee("lineWrapping",!1,SC,!0),Ee("gutters",[],function(Pe,Ne){Pe.display.gutterSpecs=jh(Ne,Pe.options.lineNumbers),Uf(Pe)},!0),Ee("fixedGutter",!0,function(Pe,Ne){Pe.display.gutters.style.left=Ne?od(Pe.display)+"px":"0",Pe.refresh()},!0),Ee("coverGutterNextToScrollbar",!1,function(Pe){return Ac(Pe)},!0),Ee("scrollbarStyle","native",function(Pe){Cf(Pe),Ac(Pe),Pe.display.scrollbars.setScrollTop(Pe.doc.scrollTop),Pe.display.scrollbars.setScrollLeft(Pe.doc.scrollLeft)},!0),Ee("lineNumbers",!1,function(Pe,Ne){Pe.display.gutterSpecs=jh(Pe.options.gutters,Ne),Uf(Pe)},!0),Ee("firstLineNumber",1,Uf,!0),Ee("lineNumberFormatter",function(Pe){return Pe},Uf,!0),Ee("showCursorWhenSelecting",!1,Ju,!0),Ee("resetSelectionOnContextMenu",!0),Ee("lineWiseCopyCut",!0),Ee("pasteLinesPerSelection",!0),Ee("selectionsMayTouch",!1),Ee("readOnly",!1,function(Pe,Ne){Ne=="nocursor"&&(tf(Pe),Pe.display.input.blur()),Pe.display.input.readOnlyChanged(Ne)}),Ee("screenReaderLabel",null,function(Pe,Ne){Ne=Ne===""?null:Ne,Pe.display.input.screenReaderLabelChanged(Ne)}),Ee("disableInput",!1,function(Pe,Ne){Ne||Pe.display.input.reset()},!0),Ee("dragDrop",!0,LS),Ee("allowDropFileTypes",null),Ee("cursorBlinkRate",530),Ee("cursorScrollMargin",0),Ee("cursorHeight",1,Ju,!0),Ee("singleCursorHeightPerLine",!0,Ju,!0),Ee("workTime",100),Ee("workDelay",100),Ee("flattenSpans",!0,dn,!0),Ee("addModeClass",!1,dn,!0),Ee("pollInterval",100),Ee("undoDepth",200,function(Pe,Ne){return Pe.doc.history.undoDepth=Ne}),Ee("historyEventDelay",1250),Ee("viewportMargin",10,function(Pe){return Pe.refresh()},!0),Ee("maxHighlightLength",1e4,dn,!0),Ee("moveInputWithCursor",!0,function(Pe,Ne){Ne||Pe.display.input.resetPosition()}),Ee("tabindex",null,function(Pe,Ne){return Pe.display.input.getField().tabIndex=Ne||""}),Ee("autofocus",null),Ee("direction","ltr",function(Pe,Ne){return Pe.doc.setDirection(Ne)},!0),Ee("phrases",null)}function LS(de,me,Ee){var Pe=Ee&&Ee!=W0;if(!me!=!Pe){var Ne=de.display.dragFunctions,Xe=me?Vr:Rn;Xe(de.display.scroller,"dragstart",Ne.start),Xe(de.display.scroller,"dragenter",Ne.enter),Xe(de.display.scroller,"dragover",Ne.over),Xe(de.display.scroller,"dragleave",Ne.leave),Xe(de.display.scroller,"drop",Ne.drop)}}function SC(de){de.options.lineWrapping?(Jn(de.display.wrapper,"CodeMirror-wrap"),de.display.sizer.style.minWidth="",de.display.sizerWidth=null):(Bt(de.display.wrapper,"CodeMirror-wrap"),Qn(de)),$s(de),Au(de),Yc(de),setTimeout(function(){return Ac(de)},100)}function zu(de,me){var Ee=this;if(!(this instanceof zu))return new zu(de,me);this.options=me=me?hi(me):{},hi(FS,me,!1);var Pe=me.value;typeof Pe=="string"?Pe=new jd(Pe,me.mode,null,me.lineSeparator,me.direction):me.mode&&(Pe.modeOption=me.mode),this.doc=Pe;var Ne=new zu.inputStyles[me.inputStyle](this),Xe=this.display=new bm(de,Pe,Ne,me);Xe.wrapper.CodeMirror=this,_y(this),me.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Cf(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new At,keySeq:null,specialChars:null},me.autofocus&&!ce&&Xe.input.focus(),It&&dt<11&&setTimeout(function(){return Ee.display.input.reset(!0)},20),$y(this),Gp(),Va(this),this.curOp.forceUpdate=!0,Wn(this,Pe),me.autofocus&&!ce||this.hasFocus()?setTimeout(function(){Ee.hasFocus()&&!Ee.state.focused&&Jl(Ee)},20):tf(this);for(var at in fx)fx.hasOwnProperty(at)&&fx[at](this,me[at],W0);fh(this),me.finishInit&&me.finishInit(this);for(var Ct=0;Ct<Xv.length;++Ct)Xv[Ct](this);Nc(this),Mt&&me.lineWrapping&&getComputedStyle(Xe.lineDiv).textRendering=="optimizelegibility"&&(Xe.lineDiv.style.textRendering="auto")}zu.defaults=FS,zu.optionHandlers=fx;function $y(de){var me=de.display;Vr(me.scroller,"mousedown",ja(de,Xp)),It&&dt<11?Vr(me.scroller,"dblclick",ja(de,function(St){if(!pi(de,St)){var jt=zc(de,St);if(!(!jt||$1(de,St)||Ms(de.display,St))){ao(St);var On=de.findWordAt(jt);Ci(de.doc,On.anchor,On.head)}}})):Vr(me.scroller,"dblclick",function(St){return pi(de,St)||ao(St)}),Vr(me.scroller,"contextmenu",function(St){return ew(de,St)}),Vr(me.input.getField(),"contextmenu",function(St){me.scroller.contains(St.target)||ew(de,St)});var Ee,Pe={end:0};function Ne(){me.activeTouch&&(Ee=setTimeout(function(){return me.activeTouch=null},1e3),Pe=me.activeTouch,Pe.end=+new Date)}function Xe(St){if(St.touches.length!=1)return!1;var jt=St.touches[0];return jt.radiusX<=1&&jt.radiusY<=1}function at(St,jt){if(jt.left==null)return!0;var On=jt.left-St.left,nn=jt.top-St.top;return On*On+nn*nn>20*20}Vr(me.scroller,"touchstart",function(St){if(!pi(de,St)&&!Xe(St)&&!$1(de,St)){me.input.ensurePolled(),clearTimeout(Ee);var jt=+new Date;me.activeTouch={start:jt,moved:!1,prev:jt-Pe.end<=300?Pe:null},St.touches.length==1&&(me.activeTouch.left=St.touches[0].pageX,me.activeTouch.top=St.touches[0].pageY)}}),Vr(me.scroller,"touchmove",function(){me.activeTouch&&(me.activeTouch.moved=!0)}),Vr(me.scroller,"touchend",function(St){var jt=me.activeTouch;if(jt&&!Ms(me,St)&&jt.left!=null&&!jt.moved&&new Date-jt.start<300){var On=de.coordsChar(me.activeTouch,"page"),nn;!jt.prev||at(jt,jt.prev)?nn=new sc(On,On):!jt.prev.prev||at(jt,jt.prev.prev)?nn=de.findWordAt(On):nn=new sc(Ji(On.line,0),Jo(de.doc,Ji(On.line+1,0))),de.setSelection(nn.anchor,nn.head),de.focus(),ao(St)}Ne()}),Vr(me.scroller,"touchcancel",Ne),Vr(me.scroller,"scroll",function(){me.scroller.clientHeight&&(Pf(de,me.scroller.scrollTop),nf(de,me.scroller.scrollLeft,!0),$n(de,"scroll",de))}),Vr(me.scroller,"mousewheel",function(St){return xu(de,St)}),Vr(me.scroller,"DOMMouseScroll",function(St){return xu(de,St)}),Vr(me.wrapper,"scroll",function(){return me.wrapper.scrollTop=me.wrapper.scrollLeft=0}),me.dragFunctions={enter:function(St){pi(de,St)||ir(St)},over:function(St){pi(de,St)||(Qb(de,St),ir(St))},start:function(St){return vC(de,St)},drop:ja(de,xS),leave:function(St){pi(de,St)||yC(de)}};var Ct=me.input.getField();Vr(Ct,"keyup",function(St){return ES.call(de,St)}),Vr(Ct,"keydown",ja(de,K1)),Vr(Ct,"keypress",ja(de,Ng)),Vr(Ct,"focus",function(St){return Jl(de,St)}),Vr(Ct,"blur",function(St){return tf(de,St)})}var Xv=[];zu.defineInitHook=function(de){return Xv.push(de)};function sd(de,me,Ee,Pe){var Ne=de.doc,Xe;Ee==null&&(Ee="add"),Ee=="smart"&&(Ne.mode.indent?Xe=Gu(de,me).state:Ee="prev");var at=de.options.tabSize,Ct=co(Ne,me),St=Ht(Ct.text,null,at);Ct.stateAfter&&(Ct.stateAfter=null);var jt=Ct.text.match(/^\s*/)[0],On;if(!Pe&&!/\S/.test(Ct.text))On=0,Ee="not";else if(Ee=="smart"&&(On=Ne.mode.indent(Xe,Ct.text.slice(jt.length),Ct.text),On==dr||On>150)){if(!Pe)return;Ee="prev"}Ee=="prev"?me>Ne.first?On=Ht(co(Ne,me-1).text,null,at):On=0:Ee=="add"?On=St+de.options.indentUnit:Ee=="subtract"?On=St-de.options.indentUnit:typeof Ee=="number"&&(On=St+Ee),On=Math.max(0,On);var nn="",wi=0;if(de.options.indentWithTabs)for(var li=Math.floor(On/at);li;--li)wi+=at,nn+=" ";if(wi<On&&(nn+=ni(On-wi)),nn!=jt)return Rv(Ne,nn,Ji(me,0),Ji(me,jt.length),"+input"),Ct.stateAfter=null,!0;for(var jr=0;jr<Ne.sel.ranges.length;jr++){var no=Ne.sel.ranges[jr];if(no.head.line==me&&no.head.ch<jt.length){var To=Ji(me,jt.length);Mo(Ne,jr,new sc(To,To));break}}}var Vf=null;function Wv(de){Vf=de}function px(de,me,Ee,Pe,Ne){var Xe=de.doc;de.display.shift=!1,Pe||(Pe=Xe.sel);var at=+new Date-200,Ct=Ne=="paste"||de.state.pasteIncoming>at,St=Al(me),jt=null;if(Ct&&Pe.ranges.length>1)if(Vf&&Vf.text.join(`
|
|
`)==me){if(Pe.ranges.length%Vf.text.length==0){jt=[];for(var On=0;On<Vf.text.length;On++)jt.push(Xe.splitLines(Vf.text[On]))}}else St.length==Pe.ranges.length&&de.options.pasteLinesPerSelection&&(jt=Ti(St,function(rs){return[rs]}));for(var nn=de.curOp.updateInput,wi=Pe.ranges.length-1;wi>=0;wi--){var li=Pe.ranges[wi],jr=li.from(),no=li.to();li.empty()&&(Ee&&Ee>0?jr=Ji(jr.line,jr.ch-Ee):de.state.overwrite&&!Ct?no=Ji(no.line,Math.min(co(Xe,no.line).text.length,no.ch+en(St).length)):Ct&&Vf&&Vf.lineWise&&Vf.text.join(`
|
|
`)==St.join(`
|
|
`)&&(jr=no=Ji(jr.line,0)));var To={from:jr,to:no,text:jt?jt[wi%jt.length]:St,origin:Ne||(Ct?"paste":de.state.cutIncoming>at?"cut":"+input")};Tg(de.doc,To),yr(de,"inputRead",de,To)}me&&!Ct&&tw(de,me),qh(de),de.curOp.updateInput<2&&(de.curOp.updateInput=nn),de.curOp.typing=!0,de.state.pasteIncoming=de.state.cutIncoming=-1}function IS(de,me){var Ee=de.clipboardData&&de.clipboardData.getData("Text");if(Ee)return de.preventDefault(),!me.isReadOnly()&&!me.options.disableInput&&Ma(me,function(){return px(me,Ee,0,null,"paste")}),!0}function tw(de,me){if(!(!de.options.electricChars||!de.options.smartIndent))for(var Ee=de.doc.sel,Pe=Ee.ranges.length-1;Pe>=0;Pe--){var Ne=Ee.ranges[Pe];if(!(Ne.head.ch>100||Pe&&Ee.ranges[Pe-1].head.line==Ne.head.line)){var Xe=de.getModeAt(Ne.head),at=!1;if(Xe.electricChars){for(var Ct=0;Ct<Xe.electricChars.length;Ct++)if(me.indexOf(Xe.electricChars.charAt(Ct))>-1){at=sd(de,Ne.head.line,"smart");break}}else Xe.electricInput&&Xe.electricInput.test(co(de.doc,Ne.head.line).text.slice(0,Ne.head.ch))&&(at=sd(de,Ne.head.line,"smart"));at&&yr(de,"electricInput",de,Ne.head.line)}}}function nw(de){for(var me=[],Ee=[],Pe=0;Pe<de.doc.sel.ranges.length;Pe++){var Ne=de.doc.sel.ranges[Pe].head.line,Xe={anchor:Ji(Ne,0),head:Ji(Ne+1,0)};Ee.push(Xe),me.push(de.getRange(Xe.anchor,Xe.head))}return{text:me,ranges:Ee}}function kS(de,me,Ee,Pe){de.setAttribute("autocorrect",Ee?"":"off"),de.setAttribute("autocapitalize",Pe?"":"off"),de.setAttribute("spellcheck",!!me)}function iw(){var de=Et("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),me=Et("div",[de],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return Mt?de.style.width="1000px":de.setAttribute("wrap","off"),et&&(de.style.border="1px solid black"),kS(de),me}function cg(de){var me=de.optionHandlers,Ee=de.helpers={};de.prototype={constructor:de,focus:function(){window.focus(),this.display.input.focus()},setOption:function(Pe,Ne){var Xe=this.options,at=Xe[Pe];Xe[Pe]==Ne&&Pe!="mode"||(Xe[Pe]=Ne,me.hasOwnProperty(Pe)&&ja(this,me[Pe])(this,Ne,at),$n(this,"optionChange",this,Pe))},getOption:function(Pe){return this.options[Pe]},getDoc:function(){return this.doc},addKeyMap:function(Pe,Ne){this.state.keyMaps[Ne?"push":"unshift"](ac(Pe))},removeKeyMap:function(Pe){for(var Ne=this.state.keyMaps,Xe=0;Xe<Ne.length;++Xe)if(Ne[Xe]==Pe||Ne[Xe].name==Pe)return Ne.splice(Xe,1),!0},addOverlay:cl(function(Pe,Ne){var Xe=Pe.token?Pe:de.getMode(this.options,Pe);if(Xe.startState)throw new Error("Overlays may not be stateful.");Lr(this.state.overlays,{mode:Xe,modeSpec:Pe,opaque:Ne&&Ne.opaque,priority:Ne&&Ne.priority||0},function(at){return at.priority}),this.state.modeGen++,Au(this)}),removeOverlay:cl(function(Pe){for(var Ne=this.state.overlays,Xe=0;Xe<Ne.length;++Xe){var at=Ne[Xe].modeSpec;if(at==Pe||typeof Pe=="string"&&at.name==Pe){Ne.splice(Xe,1),this.state.modeGen++,Au(this);return}}}),indentLine:cl(function(Pe,Ne,Xe){typeof Ne!="string"&&typeof Ne!="number"&&(Ne==null?Ne=this.options.smartIndent?"smart":"prev":Ne=Ne?"add":"subtract"),Xo(this.doc,Pe)&&sd(this,Pe,Ne,Xe)}),indentSelection:cl(function(Pe){for(var Ne=this.doc.sel.ranges,Xe=-1,at=0;at<Ne.length;at++){var Ct=Ne[at];if(Ct.empty())Ct.head.line>Xe&&(sd(this,Ct.head.line,Pe,!0),Xe=Ct.head.line,at==this.doc.sel.primIndex&&qh(this));else{var St=Ct.from(),jt=Ct.to(),On=Math.max(Xe,St.line);Xe=Math.min(this.lastLine(),jt.line-(jt.ch?0:1))+1;for(var nn=On;nn<Xe;++nn)sd(this,nn,Pe);var wi=this.doc.sel.ranges;St.ch==0&&Ne.length==wi.length&&wi[at].from().ch>0&&Mo(this.doc,at,new sc(St,wi[at].to()),En)}}}),getTokenAt:function(Pe,Ne){return Js(this,Pe,Ne)},getLineTokens:function(Pe,Ne){return Js(this,Ji(Pe),Ne,!0)},getTokenTypeAt:function(Pe){Pe=Jo(this.doc,Pe);var Ne=iu(this,co(this.doc,Pe.line)),Xe=0,at=(Ne.length-1)/2,Ct=Pe.ch,St;if(Ct==0)St=Ne[2];else for(;;){var jt=Xe+at>>1;if((jt?Ne[jt*2-1]:0)>=Ct)at=jt;else if(Ne[jt*2+1]<Ct)Xe=jt+1;else{St=Ne[jt*2+2];break}}var On=St?St.indexOf("overlay "):-1;return On<0?St:On==0?null:St.slice(0,On-1)},getModeAt:function(Pe){var Ne=this.doc.mode;return Ne.innerMode?de.innerMode(Ne,this.getTokenAt(Pe).state).mode:Ne},getHelper:function(Pe,Ne){return this.getHelpers(Pe,Ne)[0]},getHelpers:function(Pe,Ne){var Xe=[];if(!Ee.hasOwnProperty(Ne))return Xe;var at=Ee[Ne],Ct=this.getModeAt(Pe);if(typeof Ct[Ne]=="string")at[Ct[Ne]]&&Xe.push(at[Ct[Ne]]);else if(Ct[Ne])for(var St=0;St<Ct[Ne].length;St++){var jt=at[Ct[Ne][St]];jt&&Xe.push(jt)}else Ct.helperType&&at[Ct.helperType]?Xe.push(at[Ct.helperType]):at[Ct.name]&&Xe.push(at[Ct.name]);for(var On=0;On<at._global.length;On++){var nn=at._global[On];nn.pred(Ct,this)&&Hn(Xe,nn.val)==-1&&Xe.push(nn.val)}return Xe},getStateAfter:function(Pe,Ne){var Xe=this.doc;return Pe=As(Xe,Pe==null?Xe.first+Xe.size-1:Pe),Gu(this,Pe+1,Ne).state},cursorCoords:function(Pe,Ne){var Xe,at=this.doc.sel.primary();return Pe==null?Xe=at.head:typeof Pe=="object"?Xe=Jo(this.doc,Pe):Xe=Pe?at.from():at.to(),hs(this,Xe,Ne||"page")},charCoords:function(Pe,Ne){return mu(this,Jo(this.doc,Pe),Ne||"page")},coordsChar:function(Pe,Ne){return Pe=bl(this,Pe,Ne||"page"),Vs(this,Pe.left,Pe.top)},lineAtHeight:function(Pe,Ne){return Pe=bl(this,{top:Pe,left:0},Ne||"page").top,Ar(this.doc,Pe+this.display.viewOffset)},heightAtLine:function(Pe,Ne,Xe){var at=!1,Ct;if(typeof Pe=="number"){var St=this.doc.first+this.doc.size-1;Pe<this.doc.first?Pe=this.doc.first:Pe>St&&(Pe=St,at=!0),Ct=co(this.doc,Pe)}else Ct=Pe;return ru(this,Ct,{top:0,left:0},Ne||"page",Xe||at).top+(at?this.doc.height-sn(Ct):0)},defaultTextHeight:function(){return Ec(this.display)},defaultCharWidth:function(){return hh(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(Pe,Ne,Xe,at,Ct){var St=this.display;Pe=hs(this,Jo(this.doc,Pe));var jt=Pe.bottom,On=Pe.left;if(Ne.style.position="absolute",Ne.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(Ne),St.sizer.appendChild(Ne),at=="over")jt=Pe.top;else if(at=="above"||at=="near"){var nn=Math.max(St.wrapper.clientHeight,this.doc.height),wi=Math.max(St.sizer.clientWidth,St.lineSpace.clientWidth);(at=="above"||Pe.bottom+Ne.offsetHeight>nn)&&Pe.top>Ne.offsetHeight?jt=Pe.top-Ne.offsetHeight:Pe.bottom+Ne.offsetHeight<=nn&&(jt=Pe.bottom),On+Ne.offsetWidth>wi&&(On=wi-Ne.offsetWidth)}Ne.style.top=jt+"px",Ne.style.left=Ne.style.right="",Ct=="right"?(On=St.sizer.clientWidth-Ne.offsetWidth,Ne.style.right="0px"):(Ct=="left"?On=0:Ct=="middle"&&(On=(St.sizer.clientWidth-Ne.offsetWidth)/2),Ne.style.left=On+"px"),Xe&&lu(this,{left:On,top:jt,right:On+Ne.offsetWidth,bottom:jt+Ne.offsetHeight})},triggerOnKeyDown:cl(K1),triggerOnKeyPress:cl(Ng),triggerOnKeyUp:ES,triggerOnMouseDown:cl(Xp),execCommand:function(Pe){if(G0.hasOwnProperty(Pe))return G0[Pe].call(null,this)},triggerElectric:cl(function(Pe){tw(this,Pe)}),findPosH:function(Pe,Ne,Xe,at){var Ct=1;Ne<0&&(Ct=-1,Ne=-Ne);for(var St=Jo(this.doc,Pe),jt=0;jt<Ne&&(St=ad(this.doc,St,Ct,Xe,at),!St.hitSide);++jt);return St},moveH:cl(function(Pe,Ne){var Xe=this;this.extendSelectionsBy(function(at){return Xe.display.shift||Xe.doc.extend||at.empty()?ad(Xe.doc,at.head,Pe,Ne,Xe.options.rtlMoveVisually):Pe<0?at.from():at.to()},Ln)}),deleteH:cl(function(Pe,Ne){var Xe=this.doc.sel,at=this.doc;Xe.somethingSelected()?at.replaceSelection("",null,"+delete"):cp(this,function(Ct){var St=ad(at,Ct.head,Pe,Ne,!1);return Pe<0?{from:St,to:Ct.head}:{from:Ct.head,to:St}})}),findPosV:function(Pe,Ne,Xe,at){var Ct=1,St=at;Ne<0&&(Ct=-1,Ne=-Ne);for(var jt=Jo(this.doc,Pe),On=0;On<Ne;++On){var nn=hs(this,jt,"div");if(St==null?St=nn.left:nn.left=St,jt=jf(this,nn,Ct,Xe),jt.hitSide)break}return jt},moveV:cl(function(Pe,Ne){var Xe=this,at=this.doc,Ct=[],St=!this.display.shift&&!at.extend&&at.sel.somethingSelected();if(at.extendSelectionsBy(function(On){if(St)return Pe<0?On.from():On.to();var nn=hs(Xe,On.head,"div");On.goalColumn!=null&&(nn.left=On.goalColumn),Ct.push(nn.left);var wi=jf(Xe,nn,Pe,Ne);return Ne=="page"&&On==at.sel.primary()&&wf(Xe,mu(Xe,wi,"div").top-nn.top),wi},Ln),Ct.length)for(var jt=0;jt<at.sel.ranges.length;jt++)at.sel.ranges[jt].goalColumn=Ct[jt]}),findWordAt:function(Pe){var Ne=this.doc,Xe=co(Ne,Pe.line).text,at=Pe.ch,Ct=Pe.ch;if(Xe){var St=this.getHelper(Pe,"wordChars");(Pe.sticky=="before"||Ct==Xe.length)&&at?--at:++Ct;for(var jt=Xe.charAt(at),On=Ft(jt,St)?function(nn){return Ft(nn,St)}:/\s/.test(jt)?function(nn){return/\s/.test(nn)}:function(nn){return!/\s/.test(nn)&&!Ft(nn)};at>0&&On(Xe.charAt(at-1));)--at;for(;Ct<Xe.length&&On(Xe.charAt(Ct));)++Ct}return new sc(Ji(Pe.line,at),Ji(Pe.line,Ct))},toggleOverwrite:function(Pe){Pe!=null&&Pe==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?Jn(this.display.cursorDiv,"CodeMirror-overwrite"):Bt(this.display.cursorDiv,"CodeMirror-overwrite"),$n(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==gn()},isReadOnly:function(){return!!(this.options.readOnly||this.doc.cantEdit)},scrollTo:cl(function(Pe,Ne){Sf(this,Pe,Ne)}),getScrollInfo:function(){var Pe=this.display.scroller;return{left:Pe.scrollLeft,top:Pe.scrollTop,height:Pe.scrollHeight-ga(this)-this.display.barHeight,width:Pe.scrollWidth-ga(this)-this.display.barWidth,clientHeight:fl(this),clientWidth:ol(this)}},scrollIntoView:cl(function(Pe,Ne){Pe==null?(Pe={from:this.doc.sel.primary().head,to:null},Ne==null&&(Ne=this.options.cursorScrollMargin)):typeof Pe=="number"?Pe={from:Ji(Pe,0),to:null}:Pe.from==null&&(Pe={from:Pe,to:null}),Pe.to||(Pe.to=Pe.from),Pe.margin=Ne||0,Pe.from.line!=null?ql(this,Pe):Hp(this,Pe.from,Pe.to,Pe.margin)}),setSize:cl(function(Pe,Ne){var Xe=this,at=function(St){return typeof St=="number"||/^\d+$/.test(String(St))?St+"px":St};Pe!=null&&(this.display.wrapper.style.width=at(Pe)),Ne!=null&&(this.display.wrapper.style.height=at(Ne)),this.options.lineWrapping&&eu(this);var Ct=this.display.viewFrom;this.doc.iter(Ct,this.display.viewTo,function(St){if(St.widgets){for(var jt=0;jt<St.widgets.length;jt++)if(St.widgets[jt].noHScroll){tl(Xe,Ct,"widget");break}}++Ct}),this.curOp.forceUpdate=!0,$n(this,"refresh",this)}),operation:function(Pe){return Ma(this,Pe)},startOperation:function(){return Va(this)},endOperation:function(){return Nc(this)},refresh:cl(function(){var Pe=this.display.cachedTextHeight;Au(this),this.curOp.forceUpdate=!0,Yc(this),Sf(this,this.doc.scrollLeft,this.doc.scrollTop),dh(this.display),(Pe==null||Math.abs(Pe-Ec(this.display))>.5||this.options.lineWrapping)&&$s(this),$n(this,"refresh",this)}),swapDoc:cl(function(Pe){var Ne=this.doc;return Ne.cm=null,this.state.selectingText&&this.state.selectingText(),Wn(this,Pe),Yc(this),this.display.input.reset(),Sf(this,Pe.scrollLeft,Pe.scrollTop),this.curOp.forceScroll=!0,yr(this,"swapDoc",this,Ne),Ne}),phrase:function(Pe){var Ne=this.options.phrases;return Ne&&Object.prototype.hasOwnProperty.call(Ne,Pe)?Ne[Pe]:Pe},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},zr(de),de.registerHelper=function(Pe,Ne,Xe){Ee.hasOwnProperty(Pe)||(Ee[Pe]=de[Pe]={_global:[]}),Ee[Pe][Ne]=Xe},de.registerGlobalHelper=function(Pe,Ne,Xe,at){de.registerHelper(Pe,Ne,at),Ee[Pe]._global.push({pred:Xe,val:at})}}function ad(de,me,Ee,Pe,Ne){var Xe=me,at=Ee,Ct=co(de,me.line),St=Ne&&de.direction=="rtl"?-Ee:Ee;function jt(){var na=me.line+St;return na<de.first||na>=de.first+de.size?!1:(me=new Ji(na,me.ch,me.sticky),Ct=co(de,na))}function On(na){var Ns;if(Pe=="codepoint"){var va=Ct.text.charCodeAt(me.ch+(Pe>0?0:-1));isNaN(va)?Ns=null:Ns=new Ji(me.line,Math.max(0,Math.min(Ct.text.length,me.ch+Ee*(va>=55296&&va<56320?2:1))),-Ee)}else Ne?Ns=cx(de.cm,Ct,me,Ee):Ns=Nh(Ct,me,Ee);if(Ns==null)if(!na&&jt())me=ux(Ne,de.cm,Ct,me.line,St);else return!1;else me=Ns;return!0}if(Pe=="char"||Pe=="codepoint")On();else if(Pe=="column")On(!0);else if(Pe=="word"||Pe=="group")for(var nn=null,wi=Pe=="group",li=de.cm&&de.cm.getHelper(me,"wordChars"),jr=!0;!(Ee<0&&!On(!jr));jr=!1){var no=Ct.text.charAt(me.ch)||`
|
|
`,To=Ft(no,li)?"w":wi&&no==`
|
|
`?"n":!wi||/\s/.test(no)?null:"p";if(wi&&!jr&&!To&&(To="s"),nn&&nn!=To){Ee<0&&(Ee=1,On(),me.sticky="after");break}if(To&&(nn=To),Ee>0&&!On(!jr))break}var rs=Fc(de,me,Xe,at,!0);return wa(Xe,rs)&&(rs.hitSide=!0),rs}function jf(de,me,Ee,Pe){var Ne=de.doc,Xe=me.left,at;if(Pe=="page"){var Ct=Math.min(de.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),St=Math.max(Ct-.5*Ec(de.display),3);at=(Ee>0?me.bottom:me.top)+Ee*St}else Pe=="line"&&(at=Ee>0?me.bottom+3:me.top-3);for(var jt;jt=Vs(de,Xe,at),!!jt.outside;){if(Ee<0?at<=0:at>=Ne.height){jt.hitSide=!0;break}at+=Ee*5}return jt}var xc=function(de){this.cm=de,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new At,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};xc.prototype.init=function(de){var me=this,Ee=this,Pe=Ee.cm,Ne=Ee.div=de.lineDiv;kS(Ne,Pe.options.spellcheck,Pe.options.autocorrect,Pe.options.autocapitalize);function Xe(Ct){for(var St=Ct.target;St;St=St.parentNode){if(St==Ne)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(St.className))break}return!1}Vr(Ne,"paste",function(Ct){!Xe(Ct)||pi(Pe,Ct)||IS(Ct,Pe)||dt<=11&&setTimeout(ja(Pe,function(){return me.updateFromDOM()}),20)}),Vr(Ne,"compositionstart",function(Ct){me.composing={data:Ct.data,done:!1}}),Vr(Ne,"compositionupdate",function(Ct){me.composing||(me.composing={data:Ct.data,done:!1})}),Vr(Ne,"compositionend",function(Ct){me.composing&&(Ct.data!=me.composing.data&&me.readFromDOMSoon(),me.composing.done=!0)}),Vr(Ne,"touchstart",function(){return Ee.forceCompositionEnd()}),Vr(Ne,"input",function(){me.composing||me.readFromDOMSoon()});function at(Ct){if(!(!Xe(Ct)||pi(Pe,Ct))){if(Pe.somethingSelected())Wv({lineWise:!1,text:Pe.getSelections()}),Ct.type=="cut"&&Pe.replaceSelection("",null,"cut");else if(Pe.options.lineWiseCopyCut){var St=nw(Pe);Wv({lineWise:!0,text:St.text}),Ct.type=="cut"&&Pe.operation(function(){Pe.setSelections(St.ranges,0,En),Pe.replaceSelection("",null,"cut")})}else return;if(Ct.clipboardData){Ct.clipboardData.clearData();var jt=Vf.text.join(`
|
|
`);if(Ct.clipboardData.setData("Text",jt),Ct.clipboardData.getData("Text")==jt){Ct.preventDefault();return}}var On=iw(),nn=On.firstChild;Pe.display.lineSpace.insertBefore(On,Pe.display.lineSpace.firstChild),nn.value=Vf.text.join(`
|
|
`);var wi=document.activeElement;Xn(nn),setTimeout(function(){Pe.display.lineSpace.removeChild(On),wi.focus(),wi==Ne&&Ee.showPrimarySelection()},50)}}Vr(Ne,"copy",at),Vr(Ne,"cut",at)},xc.prototype.screenReaderLabelChanged=function(de){de?this.div.setAttribute("aria-label",de):this.div.removeAttribute("aria-label")},xc.prototype.prepareSelection=function(){var de=xf(this.cm,!1);return de.focus=document.activeElement==this.div,de},xc.prototype.showSelection=function(de,me){!de||!this.cm.display.view.length||((de.focus||me)&&this.showPrimarySelection(),this.showMultipleSelections(de))},xc.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},xc.prototype.showPrimarySelection=function(){var de=this.getSelection(),me=this.cm,Ee=me.doc.sel.primary(),Pe=Ee.from(),Ne=Ee.to();if(me.display.viewTo==me.display.viewFrom||Pe.line>=me.display.viewTo||Ne.line<me.display.viewFrom){de.removeAllRanges();return}var Xe=Qv(me,de.anchorNode,de.anchorOffset),at=Qv(me,de.focusNode,de.focusOffset);if(!(Xe&&!Xe.bad&&at&&!at.bad&&Fo(ys(Xe,at),Pe)==0&&Fo(Ll(Xe,at),Ne)==0)){var Ct=me.display.view,St=Pe.line>=me.display.viewFrom&&eA(me,Pe)||{node:Ct[0].measure.map[2],offset:0},jt=Ne.line<me.display.viewTo&&eA(me,Ne);if(!jt){var On=Ct[Ct.length-1].measure,nn=On.maps?On.maps[On.maps.length-1]:On.map;jt={node:nn[nn.length-1],offset:nn[nn.length-2]-nn[nn.length-3]}}if(!St||!jt){de.removeAllRanges();return}var wi=de.rangeCount&&de.getRangeAt(0),li;try{li=Zt(St.node,St.offset,jt.offset,jt.node)}catch(jr){}li&&(!Me&&me.state.focused?(de.collapse(St.node,St.offset),li.collapsed||(de.removeAllRanges(),de.addRange(li))):(de.removeAllRanges(),de.addRange(li)),wi&&de.anchorNode==null?de.addRange(wi):Me&&this.startGracePeriod()),this.rememberSelection()}},xc.prototype.startGracePeriod=function(){var de=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){de.gracePeriod=!1,de.selectionChanged()&&de.cm.operation(function(){return de.cm.curOp.selectionChanged=!0})},20)},xc.prototype.showMultipleSelections=function(de){xt(this.cm.display.cursorDiv,de.cursors),xt(this.cm.display.selectionDiv,de.selection)},xc.prototype.rememberSelection=function(){var de=this.getSelection();this.lastAnchorNode=de.anchorNode,this.lastAnchorOffset=de.anchorOffset,this.lastFocusNode=de.focusNode,this.lastFocusOffset=de.focusOffset},xc.prototype.selectionInEditor=function(){var de=this.getSelection();if(!de.rangeCount)return!1;var me=de.getRangeAt(0).commonAncestorContainer;return Yn(this.div,me)},xc.prototype.focus=function(){this.cm.options.readOnly!="nocursor"&&((!this.selectionInEditor()||document.activeElement!=this.div)&&this.showSelection(this.prepareSelection(),!0),this.div.focus())},xc.prototype.blur=function(){this.div.blur()},xc.prototype.getField=function(){return this.div},xc.prototype.supportsTouch=function(){return!0},xc.prototype.receivedFocus=function(){var de=this;this.selectionInEditor()?this.pollSelection():Ma(this.cm,function(){return de.cm.curOp.selectionChanged=!0});function me(){de.cm.state.focused&&(de.pollSelection(),de.polling.set(de.cm.options.pollInterval,me))}this.polling.set(this.cm.options.pollInterval,me)},xc.prototype.selectionChanged=function(){var de=this.getSelection();return de.anchorNode!=this.lastAnchorNode||de.anchorOffset!=this.lastAnchorOffset||de.focusNode!=this.lastFocusNode||de.focusOffset!=this.lastFocusOffset},xc.prototype.pollSelection=function(){if(!(this.readDOMTimeout!=null||this.gracePeriod||!this.selectionChanged())){var de=this.getSelection(),me=this.cm;if(ue&&qt&&this.cm.display.gutterSpecs.length&&rw(de.anchorNode)){this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),this.focus();return}if(!this.composing){this.rememberSelection();var Ee=Qv(me,de.anchorNode,de.anchorOffset),Pe=Qv(me,de.focusNode,de.focusOffset);Ee&&Pe&&Ma(me,function(){Ko(me.doc,He(Ee,Pe),En),(Ee.bad||Pe.bad)&&(me.curOp.selectionChanged=!0)})}}},xc.prototype.pollContent=function(){this.readDOMTimeout!=null&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var de=this.cm,me=de.display,Ee=de.doc.sel.primary(),Pe=Ee.from(),Ne=Ee.to();if(Pe.ch==0&&Pe.line>de.firstLine()&&(Pe=Ji(Pe.line-1,co(de.doc,Pe.line-1).length)),Ne.ch==co(de.doc,Ne.line).text.length&&Ne.line<de.lastLine()&&(Ne=Ji(Ne.line+1,0)),Pe.line<me.viewFrom||Ne.line>me.viewTo-1)return!1;var Xe,at,Ct;Pe.line==me.viewFrom||(Xe=_c(de,Pe.line))==0?(at=hn(me.view[0].line),Ct=me.view[0].node):(at=hn(me.view[Xe].line),Ct=me.view[Xe-1].node.nextSibling);var St=_c(de,Ne.line),jt,On;if(St==me.view.length-1?(jt=me.viewTo-1,On=me.lineDiv.lastChild):(jt=hn(me.view[St+1].line)-1,On=me.view[St+1].node.previousSibling),!Ct)return!1;for(var nn=de.doc.splitLines(tA(de,Ct,On,at,jt)),wi=Oa(de.doc,Ji(at,0),Ji(jt,co(de.doc,jt).text.length));nn.length>1&&wi.length>1;)if(en(nn)==en(wi))nn.pop(),wi.pop(),jt--;else if(nn[0]==wi[0])nn.shift(),wi.shift(),at++;else break;for(var li=0,jr=0,no=nn[0],To=wi[0],rs=Math.min(no.length,To.length);li<rs&&no.charCodeAt(li)==To.charCodeAt(li);)++li;for(var na=en(nn),Ns=en(wi),va=Math.min(na.length-(nn.length==1?li:0),Ns.length-(wi.length==1?li:0));jr<va&&na.charCodeAt(na.length-jr-1)==Ns.charCodeAt(Ns.length-jr-1);)++jr;if(nn.length==1&&wi.length==1&&at==Pe.line)for(;li&&li>Pe.ch&&na.charCodeAt(na.length-jr-1)==Ns.charCodeAt(Ns.length-jr-1);)li--,jr++;nn[nn.length-1]=na.slice(0,na.length-jr).replace(/^\u200b+/,""),nn[0]=nn[0].slice(li).replace(/\u200b+$/,"");var ml=Ji(at,li),Os=Ji(jt,wi.length?en(wi).length-jr:0);if(nn.length>1||nn[0]||Fo(ml,Os))return Rv(de.doc,nn,ml,Os,"+input"),!0},xc.prototype.ensurePolled=function(){this.forceCompositionEnd()},xc.prototype.reset=function(){this.forceCompositionEnd()},xc.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},xc.prototype.readFromDOMSoon=function(){var de=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(de.readDOMTimeout=null,de.composing)if(de.composing.done)de.composing=null;else return;de.updateFromDOM()},80))},xc.prototype.updateFromDOM=function(){var de=this;(this.cm.isReadOnly()||!this.pollContent())&&Ma(this.cm,function(){return Au(de.cm)})},xc.prototype.setUneditable=function(de){de.contentEditable="false"},xc.prototype.onKeyPress=function(de){de.charCode==0||this.composing||(de.preventDefault(),this.cm.isReadOnly()||ja(this.cm,px)(this.cm,String.fromCharCode(de.charCode==null?de.keyCode:de.charCode),0))},xc.prototype.readOnlyChanged=function(de){this.div.contentEditable=String(de!="nocursor")},xc.prototype.onContextMenu=function(){},xc.prototype.resetPosition=function(){},xc.prototype.needsContentAttribute=!0;function eA(de,me){var Ee=Zu(de,me.line);if(!Ee||Ee.hidden)return null;var Pe=co(de.doc,me.line),Ne=Ys(Ee,Pe,me.line),Xe=Nr(Pe,de.doc.direction),at="left";if(Xe){var Ct=oi(Xe,me.ch);at=Ct%2?"right":"left"}var St=ll(Ne.map,me.ch,at);return St.offset=St.collapse=="right"?St.end:St.start,St}function rw(de){for(var me=de;me;me=me.parentNode)if(/CodeMirror-gutter-wrapper/.test(me.className))return!0;return!1}function gx(de,me){return me&&(de.bad=!0),de}function tA(de,me,Ee,Pe,Ne){var Xe="",at=!1,Ct=de.doc.lineSeparator(),St=!1;function jt(li){return function(jr){return jr.id==li}}function On(){at&&(Xe+=Ct,St&&(Xe+=Ct),at=St=!1)}function nn(li){li&&(On(),Xe+=li)}function wi(li){if(li.nodeType==1){var jr=li.getAttribute("cm-text");if(jr){nn(jr);return}var no=li.getAttribute("cm-marker"),To;if(no){var rs=de.findMarks(Ji(Pe,0),Ji(Ne+1,0),jt(+no));rs.length&&(To=rs[0].find(0))&&nn(Oa(de.doc,To.from,To.to).join(Ct));return}if(li.getAttribute("contenteditable")=="false")return;var na=/^(pre|div|p|li|table|br)$/i.test(li.nodeName);if(!/^br$/i.test(li.nodeName)&&li.textContent.length==0)return;na&&On();for(var Ns=0;Ns<li.childNodes.length;Ns++)wi(li.childNodes[Ns]);/^(pre|p)$/i.test(li.nodeName)&&(St=!0),na&&(at=!0)}else li.nodeType==3&&nn(li.nodeValue.replace(/\u200b/g,"").replace(/\u00a0/g," "))}for(;wi(me),me!=Ee;)me=me.nextSibling,St=!1;return Xe}function Qv(de,me,Ee){var Pe;if(me==de.display.lineDiv){if(Pe=de.display.lineDiv.childNodes[Ee],!Pe)return gx(de.clipPos(Ji(de.display.viewTo-1)),!0);me=null,Ee=0}else for(Pe=me;;Pe=Pe.parentNode){if(!Pe||Pe==de.display.lineDiv)return null;if(Pe.parentNode&&Pe.parentNode==de.display.lineDiv)break}for(var Ne=0;Ne<de.display.view.length;Ne++){var Xe=de.display.view[Ne];if(Xe.node==Pe)return PC(Xe,me,Ee)}}function PC(de,me,Ee){var Pe=de.text.firstChild,Ne=!1;if(!me||!Yn(Pe,me))return gx(Ji(hn(de.line),0),!0);if(me==Pe&&(Ne=!0,me=Pe.childNodes[Ee],Ee=0,!me)){var Xe=de.rest?en(de.rest):de.line;return gx(Ji(hn(Xe),Xe.text.length),Ne)}var at=me.nodeType==3?me:null,Ct=me;for(!at&&me.childNodes.length==1&&me.firstChild.nodeType==3&&(at=me.firstChild,Ee&&(Ee=at.nodeValue.length));Ct.parentNode!=Pe;)Ct=Ct.parentNode;var St=de.measure,jt=St.maps;function On(To,rs,na){for(var Ns=-1;Ns<(jt?jt.length:0);Ns++)for(var va=Ns<0?St.map:jt[Ns],ml=0;ml<va.length;ml+=3){var Os=va[ml+2];if(Os==To||Os==rs){var ou=hn(Ns<0?de.line:de.rest[Ns]),Uc=va[ml]+na;return(na<0||Os!=To)&&(Uc=va[ml+(na?1:0)]),Ji(ou,Uc)}}}var nn=On(at,Ct,Ee);if(nn)return gx(nn,Ne);for(var wi=Ct.nextSibling,li=at?at.nodeValue.length-Ee:0;wi;wi=wi.nextSibling){if(nn=On(wi,wi.firstChild,0),nn)return gx(Ji(nn.line,nn.ch-li),Ne);li+=wi.textContent.length}for(var jr=Ct.previousSibling,no=Ee;jr;jr=jr.previousSibling){if(nn=On(jr,jr.firstChild,-1),nn)return gx(Ji(nn.line,nn.ch+no),Ne);no+=jr.textContent.length}}var gc=function(de){this.cm=de,this.prevInput="",this.pollingFast=!1,this.polling=new At,this.hasSelection=!1,this.composing=null};gc.prototype.init=function(de){var me=this,Ee=this,Pe=this.cm;this.createField(de);var Ne=this.textarea;de.wrapper.insertBefore(this.wrapper,de.wrapper.firstChild),et&&(Ne.style.width="0px"),Vr(Ne,"input",function(){It&&dt>=9&&me.hasSelection&&(me.hasSelection=null),Ee.poll()}),Vr(Ne,"paste",function(at){pi(Pe,at)||IS(at,Pe)||(Pe.state.pasteIncoming=+new Date,Ee.fastPoll())});function Xe(at){if(!pi(Pe,at)){if(Pe.somethingSelected())Wv({lineWise:!1,text:Pe.getSelections()});else if(Pe.options.lineWiseCopyCut){var Ct=nw(Pe);Wv({lineWise:!0,text:Ct.text}),at.type=="cut"?Pe.setSelections(Ct.ranges,null,En):(Ee.prevInput="",Ne.value=Ct.text.join(`
|
|
`),Xn(Ne))}else return;at.type=="cut"&&(Pe.state.cutIncoming=+new Date)}}Vr(Ne,"cut",Xe),Vr(Ne,"copy",Xe),Vr(de.scroller,"paste",function(at){if(!(Ms(de,at)||pi(Pe,at))){if(!Ne.dispatchEvent){Pe.state.pasteIncoming=+new Date,Ee.focus();return}var Ct=new Event("paste");Ct.clipboardData=at.clipboardData,Ne.dispatchEvent(Ct)}}),Vr(de.lineSpace,"selectstart",function(at){Ms(de,at)||ao(at)}),Vr(Ne,"compositionstart",function(){var at=Pe.getCursor("from");Ee.composing&&Ee.composing.range.clear(),Ee.composing={start:at,range:Pe.markText(at,Pe.getCursor("to"),{className:"CodeMirror-composing"})}}),Vr(Ne,"compositionend",function(){Ee.composing&&(Ee.poll(),Ee.composing.range.clear(),Ee.composing=null)})},gc.prototype.createField=function(de){this.wrapper=iw(),this.textarea=this.wrapper.firstChild},gc.prototype.screenReaderLabelChanged=function(de){de?this.textarea.setAttribute("aria-label",de):this.textarea.removeAttribute("aria-label")},gc.prototype.prepareSelection=function(){var de=this.cm,me=de.display,Ee=de.doc,Pe=xf(de);if(de.options.moveInputWithCursor){var Ne=hs(de,Ee.sel.primary().head,"div"),Xe=me.wrapper.getBoundingClientRect(),at=me.lineDiv.getBoundingClientRect();Pe.teTop=Math.max(0,Math.min(me.wrapper.clientHeight-10,Ne.top+at.top-Xe.top)),Pe.teLeft=Math.max(0,Math.min(me.wrapper.clientWidth-10,Ne.left+at.left-Xe.left))}return Pe},gc.prototype.showSelection=function(de){var me=this.cm,Ee=me.display;xt(Ee.cursorDiv,de.cursors),xt(Ee.selectionDiv,de.selection),de.teTop!=null&&(this.wrapper.style.top=de.teTop+"px",this.wrapper.style.left=de.teLeft+"px")},gc.prototype.reset=function(de){if(!(this.contextMenuPending||this.composing)){var me=this.cm;if(me.somethingSelected()){this.prevInput="";var Ee=me.getSelection();this.textarea.value=Ee,me.state.focused&&Xn(this.textarea),It&&dt>=9&&(this.hasSelection=Ee)}else de||(this.prevInput=this.textarea.value="",It&&dt>=9&&(this.hasSelection=null))}},gc.prototype.getField=function(){return this.textarea},gc.prototype.supportsTouch=function(){return!1},gc.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!ce||gn()!=this.textarea))try{this.textarea.focus()}catch(de){}},gc.prototype.blur=function(){this.textarea.blur()},gc.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},gc.prototype.receivedFocus=function(){this.slowPoll()},gc.prototype.slowPoll=function(){var de=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){de.poll(),de.cm.state.focused&&de.slowPoll()})},gc.prototype.fastPoll=function(){var de=!1,me=this;me.pollingFast=!0;function Ee(){var Pe=me.poll();!Pe&&!de?(de=!0,me.polling.set(60,Ee)):(me.pollingFast=!1,me.slowPoll())}me.polling.set(20,Ee)},gc.prototype.poll=function(){var de=this,me=this.cm,Ee=this.textarea,Pe=this.prevInput;if(this.contextMenuPending||!me.state.focused||We(Ee)&&!Pe&&!this.composing||me.isReadOnly()||me.options.disableInput||me.state.keySeq)return!1;var Ne=Ee.value;if(Ne==Pe&&!me.somethingSelected())return!1;if(It&&dt>=9&&this.hasSelection===Ne||Ce&&/[\uf700-\uf7ff]/.test(Ne))return me.display.input.reset(),!1;if(me.doc.sel==me.display.selForContextMenu){var Xe=Ne.charCodeAt(0);if(Xe==8203&&!Pe&&(Pe="\u200B"),Xe==8666)return this.reset(),this.cm.execCommand("undo")}for(var at=0,Ct=Math.min(Pe.length,Ne.length);at<Ct&&Pe.charCodeAt(at)==Ne.charCodeAt(at);)++at;return Ma(me,function(){px(me,Ne.slice(at),Pe.length-at,null,de.composing?"*compose":null),Ne.length>1e3||Ne.indexOf(`
|
|
`)>-1?Ee.value=de.prevInput="":de.prevInput=Ne,de.composing&&(de.composing.range.clear(),de.composing.range=me.markText(de.composing.start,me.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},gc.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},gc.prototype.onKeyPress=function(){It&&dt>=9&&(this.hasSelection=null),this.fastPoll()},gc.prototype.onContextMenu=function(de){var me=this,Ee=me.cm,Pe=Ee.display,Ne=me.textarea;me.contextMenuPending&&me.contextMenuPending();var Xe=zc(Ee,de),at=Pe.scroller.scrollTop;if(!Xe||nt)return;var Ct=Ee.options.resetSelectionOnContextMenu;Ct&&Ee.doc.sel.contains(Xe)==-1&&ja(Ee,Ko)(Ee.doc,He(Xe),En);var St=Ne.style.cssText,jt=me.wrapper.style.cssText,On=me.wrapper.offsetParent.getBoundingClientRect();me.wrapper.style.cssText="position: static",Ne.style.cssText=`position: absolute; width: 30px; height: 30px;
|
|
top: `+(de.clientY-On.top-5)+"px; left: "+(de.clientX-On.left-5)+`px;
|
|
z-index: 1000; background: `+(It?"rgba(255, 255, 255, .05)":"transparent")+`;
|
|
outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;var nn;Mt&&(nn=window.scrollY),Pe.input.focus(),Mt&&window.scrollTo(null,nn),Pe.input.reset(),Ee.somethingSelected()||(Ne.value=me.prevInput=" "),me.contextMenuPending=li,Pe.selForContextMenu=Ee.doc.sel,clearTimeout(Pe.detectingSelectAll);function wi(){if(Ne.selectionStart!=null){var no=Ee.somethingSelected(),To="\u200B"+(no?Ne.value:"");Ne.value="\u21DA",Ne.value=To,me.prevInput=no?"":"\u200B",Ne.selectionStart=1,Ne.selectionEnd=To.length,Pe.selForContextMenu=Ee.doc.sel}}function li(){if(me.contextMenuPending==li&&(me.contextMenuPending=!1,me.wrapper.style.cssText=jt,Ne.style.cssText=St,It&&dt<9&&Pe.scrollbars.setScrollTop(Pe.scroller.scrollTop=at),Ne.selectionStart!=null)){(!It||It&&dt<9)&&wi();var no=0,To=function(){Pe.selForContextMenu==Ee.doc.sel&&Ne.selectionStart==0&&Ne.selectionEnd>0&&me.prevInput=="\u200B"?ja(Ee,Nu)(Ee):no++<10?Pe.detectingSelectAll=setTimeout(To,500):(Pe.selForContextMenu=null,Pe.input.reset())};Pe.detectingSelectAll=setTimeout(To,200)}}if(It&&dt>=9&&wi(),Ye){ir(de);var jr=function(){Rn(window,"mouseup",jr),setTimeout(li,20)};Vr(window,"mouseup",jr)}else setTimeout(li,50)},gc.prototype.readOnlyChanged=function(de){de||this.reset(),this.textarea.disabled=de=="nocursor",this.textarea.readOnly=!!de},gc.prototype.setUneditable=function(){},gc.prototype.needsContentAttribute=!1;function hp(de,me){if(me=me?hi(me):{},me.value=de.value,!me.tabindex&&de.tabIndex&&(me.tabindex=de.tabIndex),!me.placeholder&&de.placeholder&&(me.placeholder=de.placeholder),me.autofocus==null){var Ee=gn();me.autofocus=Ee==de||de.getAttribute("autofocus")!=null&&Ee==document.body}function Pe(){de.value=Ct.getValue()}var Ne;if(de.form&&(Vr(de.form,"submit",Pe),!me.leaveSubmitMethodAlone)){var Xe=de.form;Ne=Xe.submit;try{var at=Xe.submit=function(){Pe(),Xe.submit=Ne,Xe.submit(),Xe.submit=at}}catch(St){}}me.finishInit=function(St){St.save=Pe,St.getTextArea=function(){return de},St.toTextArea=function(){St.toTextArea=isNaN,Pe(),de.parentNode.removeChild(St.getWrapperElement()),de.style.display="",de.form&&(Rn(de.form,"submit",Pe),!me.leaveSubmitMethodAlone&&typeof de.form.submit=="function"&&(de.form.submit=Ne))}},de.style.display="none";var Ct=zu(function(St){return de.parentNode.insertBefore(St,de.nextSibling)},me);return Ct}function wc(de){de.off=Rn,de.on=Vr,de.wheelEventPixels=Hf,de.Doc=jd,de.splitLines=Al,de.countColumn=Ht,de.findColumn=Mi,de.isWordChar=rt,de.Pass=dr,de.signal=$n,de.Line=zn,de.changeEnd=Qe,de.scrollbarModel=Hh,de.Pos=Ji,de.cmpPos=Fo,de.modes=Po,de.mimeModes=Xr,de.resolveMode=or,de.getMode=Fn,de.modeExtensions=vn,de.extendMode=pn,de.copyState=Ur,de.startState=bo,de.innerMode=Ho,de.commands=G0,de.keyMap=rf,de.keyName=Dg,de.isModifierKey=Yy,de.lookupKey=lg,de.normalizeKeyMap=Vv,de.StringStream=ji,de.SharedTextMarker=sm,de.TextMarker=wn,de.LineWidget=j0,de.e_preventDefault=ao,de.e_stopPropagation=Wr,de.e_stop=ir,de.addClass=Jn,de.contains=Yn,de.rmClass=Bt,de.keyNames=am}wC(zu),cg(zu);var Fh="iter insert remove copy getEditor constructor".split(" ");for(var of in jd.prototype)jd.prototype.hasOwnProperty(of)&&Hn(Fh,of)<0&&(zu.prototype[of]=function(de){return function(){return de.apply(this.doc,arguments)}}(jd.prototype[of]));return zr(jd),zu.inputStyles={textarea:gc,contenteditable:xc},zu.defineMode=function(de){!zu.defaults.mode&&de!="null"&&(zu.defaults.mode=de),si.apply(this,arguments)},zu.defineMIME=Hi,zu.defineMode("null",function(){return{token:function(de){return de.skipToEnd()}}}),zu.defineMIME("text/plain","null"),zu.defineExtension=function(de,me){zu.prototype[de]=me},zu.defineDocExtension=function(de,me){jd.prototype[de]=me},zu.fromTextArea=hp,wc(zu),zu.version="5.58.2",zu})},25419:function(Cn,Ei,je){(function(Me){Me(je(89780),je(15525),je(98101))})(function(Me){"use strict";Me.defineMode("markdown",function(yt,Jt){var Qt=Me.getMode(yt,"text/html"),It=Qt.name=="null";function dt(Ht){if(Me.findModeByName){var At=Me.findModeByName(Ht);At&&(Ht=At.mime||At.mimes[0])}var Hn=Me.getMode(yt,Ht);return Hn.name=="null"?null:Hn}Jt.highlightFormatting===void 0&&(Jt.highlightFormatting=!1),Jt.maxBlockquoteDepth===void 0&&(Jt.maxBlockquoteDepth=0),Jt.taskLists===void 0&&(Jt.taskLists=!1),Jt.strikethrough===void 0&&(Jt.strikethrough=!1),Jt.emoji===void 0&&(Jt.emoji=!1),Jt.fencedCodeBlockHighlighting===void 0&&(Jt.fencedCodeBlockHighlighting=!0),Jt.fencedCodeBlockDefaultMode===void 0&&(Jt.fencedCodeBlockDefaultMode="text/plain"),Jt.xml===void 0&&(Jt.xml=!0),Jt.tokenTypeOverrides===void 0&&(Jt.tokenTypeOverrides={});var Mt={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"image",imageAltText:"image-alt-text",imageMarker:"image-marker",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough",emoji:"builtin"};for(var an in Mt)Mt.hasOwnProperty(an)&&Jt.tokenTypeOverrides[an]&&(Mt[an]=Jt.tokenTypeOverrides[an]);var qt=/^([*\-_])(?:\s*\1){2,}\s*$/,nt=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,ln=/^\[(x| )\](?=\s)/i,rn=Jt.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,on=/^ {0,3}(?:\={1,}|-{2,})\s*$/,et=/^[^#!\[\]*_\\<>` "'(~:]+/,ue=/^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/,ce=/^\s*\[[^\]]+?\]:.*$/,Ce=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/,Ae=" ";function Te(Ht,At,Hn){return At.f=At.inline=Hn,Hn(Ht,At)}function Ie(Ht,At,Hn){return At.f=At.block=Hn,Hn(Ht,At)}function ze(Ht){return!Ht||!/\S/.test(Ht.string)}function Ye(Ht){if(Ht.linkTitle=!1,Ht.linkHref=!1,Ht.linkText=!1,Ht.em=!1,Ht.strong=!1,Ht.strikethrough=!1,Ht.quote=0,Ht.indentedCode=!1,Ht.f==Bt){var At=It;if(!At){var Hn=Me.innerMode(Qt,Ht.htmlState);At=Hn.mode.name=="xml"&&Hn.state.tagStart===null&&!Hn.state.context&&Hn.state.tokenize.isInText}At&&(Ht.f=$t,Ht.block=lt,Ht.htmlState=null)}return Ht.trailingSpace=0,Ht.trailingSpaceNewLine=!1,Ht.prevLine=Ht.thisLine,Ht.thisLine={stream:null},null}function lt(Ht,At){var Hn=Ht.column()===At.indentation,_i=ze(At.prevLine.stream),dr=At.indentedCode,En=At.prevLine.hr,Mn=At.list!==!1,Ln=(At.listStack[At.listStack.length-1]||0)+3;At.indentedCode=!1;var Mi=At.indentation;if(At.indentationDiff===null&&(At.indentationDiff=At.indentation,Mn)){for(At.list=null;Mi<At.listStack[At.listStack.length-1];)At.listStack.pop(),At.listStack.length?At.indentation=At.listStack[At.listStack.length-1]:At.list=!1;At.list!==!1&&(At.indentationDiff=Mi-At.listStack[At.listStack.length-1])}var Rt=!_i&&!En&&!At.prevLine.header&&(!Mn||!dr)&&!At.prevLine.fencedCodeEnd,ni=(At.list===!1||En||_i)&&At.indentation<=Ln&&Ht.match(qt),en=null;if(At.indentationDiff>=4&&(dr||At.prevLine.fencedCodeEnd||At.prevLine.header||_i))return Ht.skipToEnd(),At.indentedCode=!0,Mt.code;if(Ht.eatSpace())return null;if(Hn&&At.indentation<=Ln&&(en=Ht.match(rn))&&en[1].length<=6)return At.quote=0,At.header=en[1].length,At.thisLine.header=!0,Jt.highlightFormatting&&(At.formatting="header"),At.f=At.inline,xt(At);if(At.indentation<=Ln&&Ht.eat(">"))return At.quote=Hn?1:At.quote+1,Jt.highlightFormatting&&(At.formatting="quote"),Ht.eatSpace(),xt(At);if(!ni&&!At.setext&&Hn&&At.indentation<=Ln&&(en=Ht.match(nt))){var Ti=en[1]?"ol":"ul";return At.indentation=Mi+Ht.current().length,At.list=!0,At.quote=0,At.listStack.push(At.indentation),At.em=!1,At.strong=!1,At.code=!1,At.strikethrough=!1,Jt.taskLists&&Ht.match(ln,!1)&&(At.taskList=!0),At.f=At.inline,Jt.highlightFormatting&&(At.formatting=["list","list-"+Ti]),xt(At)}else{if(Hn&&At.indentation<=Ln&&(en=Ht.match(ue,!0)))return At.quote=0,At.fencedEndRE=new RegExp(en[1]+"+ *$"),At.localMode=Jt.fencedCodeBlockHighlighting&&dt(en[2]||Jt.fencedCodeBlockDefaultMode),At.localMode&&(At.localState=Me.startState(At.localMode)),At.f=At.block=kt,Jt.highlightFormatting&&(At.formatting="code-block"),At.code=-1,xt(At);if(At.setext||(!Rt||!Mn)&&!At.quote&&At.list===!1&&!At.code&&!ni&&!ce.test(Ht.string)&&(en=Ht.lookAhead(1))&&(en=en.match(on)))return At.setext?(At.header=At.setext,At.setext=0,Ht.skipToEnd(),Jt.highlightFormatting&&(At.formatting="header")):(At.header=en[0].charAt(0)=="="?1:2,At.setext=At.header),At.thisLine.header=!0,At.f=At.inline,xt(At);if(ni)return Ht.skipToEnd(),At.hr=!0,At.thisLine.hr=!0,Mt.hr;if(Ht.peek()==="[")return Te(Ht,At,ci)}return Te(Ht,At,At.inline)}function Bt(Ht,At){var Hn=Qt.token(Ht,At.htmlState);if(!It){var _i=Me.innerMode(Qt,At.htmlState);(_i.mode.name=="xml"&&_i.state.tagStart===null&&!_i.state.context&&_i.state.tokenize.isInText||At.md_inside&&Ht.current().indexOf(">")>-1)&&(At.f=$t,At.block=lt,At.htmlState=null)}return Hn}function kt(Ht,At){var Hn=At.listStack[At.listStack.length-1]||0,_i=At.indentation<Hn,dr=Hn+3;if(At.fencedEndRE&&At.indentation<=dr&&(_i||Ht.match(At.fencedEndRE))){Jt.highlightFormatting&&(At.formatting="code-block");var En;return _i||(En=xt(At)),At.localMode=At.localState=null,At.block=lt,At.f=$t,At.fencedEndRE=null,At.code=0,At.thisLine.fencedCodeEnd=!0,_i?Ie(Ht,At,At.block):En}else return At.localMode?At.localMode.token(Ht,At.localState):(Ht.skipToEnd(),Mt.code)}function xt(Ht){var At=[];if(Ht.formatting){At.push(Mt.formatting),typeof Ht.formatting=="string"&&(Ht.formatting=[Ht.formatting]);for(var Hn=0;Hn<Ht.formatting.length;Hn++)At.push(Mt.formatting+"-"+Ht.formatting[Hn]),Ht.formatting[Hn]==="header"&&At.push(Mt.formatting+"-"+Ht.formatting[Hn]+"-"+Ht.header),Ht.formatting[Hn]==="quote"&&(!Jt.maxBlockquoteDepth||Jt.maxBlockquoteDepth>=Ht.quote?At.push(Mt.formatting+"-"+Ht.formatting[Hn]+"-"+Ht.quote):At.push("error"))}if(Ht.taskOpen)return At.push("meta"),At.length?At.join(" "):null;if(Ht.taskClosed)return At.push("property"),At.length?At.join(" "):null;if(Ht.linkHref?At.push(Mt.linkHref,"url"):(Ht.strong&&At.push(Mt.strong),Ht.em&&At.push(Mt.em),Ht.strikethrough&&At.push(Mt.strikethrough),Ht.emoji&&At.push(Mt.emoji),Ht.linkText&&At.push(Mt.linkText),Ht.code&&At.push(Mt.code),Ht.image&&At.push(Mt.image),Ht.imageAltText&&At.push(Mt.imageAltText,"link"),Ht.imageMarker&&At.push(Mt.imageMarker)),Ht.header&&At.push(Mt.header,Mt.header+"-"+Ht.header),Ht.quote&&(At.push(Mt.quote),!Jt.maxBlockquoteDepth||Jt.maxBlockquoteDepth>=Ht.quote?At.push(Mt.quote+"-"+Ht.quote):At.push(Mt.quote+"-"+Jt.maxBlockquoteDepth)),Ht.list!==!1){var _i=(Ht.listStack.length-1)%3;_i?_i===1?At.push(Mt.list2):At.push(Mt.list3):At.push(Mt.list1)}return Ht.trailingSpaceNewLine?At.push("trailing-space-new-line"):Ht.trailingSpace&&At.push("trailing-space-"+(Ht.trailingSpace%2?"a":"b")),At.length?At.join(" "):null}function Et(Ht,At){if(Ht.match(et,!0))return xt(At)}function $t(Ht,At){var Hn=At.text(Ht,At);if(typeof Hn!="undefined")return Hn;if(At.list)return At.list=null,xt(At);if(At.taskList){var _i=Ht.match(ln,!0)[1]===" ";return _i?At.taskOpen=!0:At.taskClosed=!0,Jt.highlightFormatting&&(At.formatting="task"),At.taskList=!1,xt(At)}if(At.taskOpen=!1,At.taskClosed=!1,At.header&&Ht.match(/^#+$/,!0))return Jt.highlightFormatting&&(At.formatting="header"),xt(At);var dr=Ht.next();if(At.linkTitle){At.linkTitle=!1;var En=dr;dr==="("&&(En=")"),En=(En+"").replace(/([.?*+^\[\]\\(){}|-])/g,"\\$1");var Mn="^\\s*(?:[^"+En+"\\\\]+|\\\\\\\\|\\\\.)"+En;if(Ht.match(new RegExp(Mn),!0))return Mt.linkHref}if(dr==="`"){var Ln=At.formatting;Jt.highlightFormatting&&(At.formatting="code"),Ht.eatWhile("`");var Mi=Ht.current().length;if(At.code==0&&(!At.quote||Mi==1))return At.code=Mi,xt(At);if(Mi==At.code){var Rt=xt(At);return At.code=0,Rt}else return At.formatting=Ln,xt(At)}else if(At.code)return xt(At);if(dr==="\\"&&(Ht.next(),Jt.highlightFormatting)){var ni=xt(At),en=Mt.formatting+"-escape";return ni?ni+" "+en:en}if(dr==="!"&&Ht.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return At.imageMarker=!0,At.image=!0,Jt.highlightFormatting&&(At.formatting="image"),xt(At);if(dr==="["&&At.imageMarker&&Ht.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return At.imageMarker=!1,At.imageAltText=!0,Jt.highlightFormatting&&(At.formatting="image"),xt(At);if(dr==="]"&&At.imageAltText){Jt.highlightFormatting&&(At.formatting="image");var ni=xt(At);return At.imageAltText=!1,At.image=!1,At.inline=At.f=Yn,ni}if(dr==="["&&!At.image)return At.linkText&&Ht.match(/^.*?\]/)||(At.linkText=!0,Jt.highlightFormatting&&(At.formatting="link")),xt(At);if(dr==="]"&&At.linkText){Jt.highlightFormatting&&(At.formatting="link");var ni=xt(At);return At.linkText=!1,At.inline=At.f=Ht.match(/\(.*?\)| ?\[.*?\]/,!1)?Yn:$t,ni}if(dr==="<"&&Ht.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1)){At.f=At.inline=Zt,Jt.highlightFormatting&&(At.formatting="link");var ni=xt(At);return ni?ni+=" ":ni="",ni+Mt.linkInline}if(dr==="<"&&Ht.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1)){At.f=At.inline=Zt,Jt.highlightFormatting&&(At.formatting="link");var ni=xt(At);return ni?ni+=" ":ni="",ni+Mt.linkEmail}if(Jt.xml&&dr==="<"&&Ht.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var Ti=Ht.string.indexOf(">",Ht.pos);if(Ti!=-1){var Lr=Ht.string.substring(Ht.start,Ti);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(Lr)&&(At.md_inside=!0)}return Ht.backUp(1),At.htmlState=Me.startState(Qt),Ie(Ht,At,Bt)}if(Jt.xml&&dr==="<"&&Ht.match(/^\/\w*?>/))return At.md_inside=!1,"tag";if(dr==="*"||dr==="_"){for(var Tt=1,Ze=Ht.pos==1?" ":Ht.string.charAt(Ht.pos-2);Tt<3&&Ht.eat(dr);)Tt++;var Ge=Ht.peek()||" ",rt=!/\s/.test(Ge)&&(!Ce.test(Ge)||/\s/.test(Ze)||Ce.test(Ze)),Ft=!/\s/.test(Ze)&&(!Ce.test(Ze)||/\s/.test(Ge)||Ce.test(Ge)),qe=null,mt=null;if(Tt%2&&(!At.em&&rt&&(dr==="*"||!Ft||Ce.test(Ze))?qe=!0:At.em==dr&&Ft&&(dr==="*"||!rt||Ce.test(Ge))&&(qe=!1)),Tt>1&&(!At.strong&&rt&&(dr==="*"||!Ft||Ce.test(Ze))?mt=!0:At.strong==dr&&Ft&&(dr==="*"||!rt||Ce.test(Ge))&&(mt=!1)),mt!=null||qe!=null){Jt.highlightFormatting&&(At.formatting=qe==null?"strong":mt==null?"em":"strong em"),qe===!0&&(At.em=dr),mt===!0&&(At.strong=dr);var Rt=xt(At);return qe===!1&&(At.em=!1),mt===!1&&(At.strong=!1),Rt}}else if(dr===" "&&(Ht.eat("*")||Ht.eat("_"))){if(Ht.peek()===" ")return xt(At);Ht.backUp(1)}if(Jt.strikethrough){if(dr==="~"&&Ht.eatWhile(dr)){if(At.strikethrough){Jt.highlightFormatting&&(At.formatting="strikethrough");var Rt=xt(At);return At.strikethrough=!1,Rt}else if(Ht.match(/^[^\s]/,!1))return At.strikethrough=!0,Jt.highlightFormatting&&(At.formatting="strikethrough"),xt(At)}else if(dr===" "&&Ht.match(/^~~/,!0)){if(Ht.peek()===" ")return xt(At);Ht.backUp(2)}}if(Jt.emoji&&dr===":"&&Ht.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)){At.emoji=!0,Jt.highlightFormatting&&(At.formatting="emoji");var An=xt(At);return At.emoji=!1,An}return dr===" "&&(Ht.match(/^ +$/,!1)?At.trailingSpace++:At.trailingSpace&&(At.trailingSpaceNewLine=!0)),xt(At)}function Zt(Ht,At){var Hn=Ht.next();if(Hn===">"){At.f=At.inline=$t,Jt.highlightFormatting&&(At.formatting="link");var _i=xt(At);return _i?_i+=" ":_i="",_i+Mt.linkInline}return Ht.match(/^[^>]+/,!0),Mt.linkInline}function Yn(Ht,At){if(Ht.eatSpace())return null;var Hn=Ht.next();return Hn==="("||Hn==="["?(At.f=At.inline=Jn(Hn==="("?")":"]"),Jt.highlightFormatting&&(At.formatting="link-string"),At.linkHref=!0,xt(At)):"error"}var gn={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/};function Jn(Ht){return function(At,Hn){var _i=At.next();if(_i===Ht){Hn.f=Hn.inline=$t,Jt.highlightFormatting&&(Hn.formatting="link-string");var dr=xt(Hn);return Hn.linkHref=!1,dr}return At.match(gn[Ht]),Hn.linkHref=!0,xt(Hn)}}function ci(Ht,At){return Ht.match(/^([^\]\\]|\\.)*\]:/,!1)?(At.f=Xn,Ht.next(),Jt.highlightFormatting&&(At.formatting="link"),At.linkText=!0,xt(At)):Te(Ht,At,$t)}function Xn(Ht,At){if(Ht.match(/^\]:/,!0)){At.f=At.inline=In,Jt.highlightFormatting&&(At.formatting="link");var Hn=xt(At);return At.linkText=!1,Hn}return Ht.match(/^([^\]\\]|\\.)+/,!0),Mt.linkText}function In(Ht,At){return Ht.eatSpace()?null:(Ht.match(/^[^\s]+/,!0),Ht.peek()===void 0?At.linkTitle=!0:Ht.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/,!0),At.f=At.inline=$t,Mt.linkHref+" url")}var hi={startState:function(){return{f:lt,prevLine:{stream:null},thisLine:{stream:null},block:lt,htmlState:null,indentation:0,inline:$t,text:Et,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(Ht){return{f:Ht.f,prevLine:Ht.prevLine,thisLine:Ht.thisLine,block:Ht.block,htmlState:Ht.htmlState&&Me.copyState(Qt,Ht.htmlState),indentation:Ht.indentation,localMode:Ht.localMode,localState:Ht.localMode?Me.copyState(Ht.localMode,Ht.localState):null,inline:Ht.inline,text:Ht.text,formatting:!1,linkText:Ht.linkText,linkTitle:Ht.linkTitle,linkHref:Ht.linkHref,code:Ht.code,em:Ht.em,strong:Ht.strong,strikethrough:Ht.strikethrough,emoji:Ht.emoji,header:Ht.header,setext:Ht.setext,hr:Ht.hr,taskList:Ht.taskList,list:Ht.list,listStack:Ht.listStack.slice(0),quote:Ht.quote,indentedCode:Ht.indentedCode,trailingSpace:Ht.trailingSpace,trailingSpaceNewLine:Ht.trailingSpaceNewLine,md_inside:Ht.md_inside,fencedEndRE:Ht.fencedEndRE}},token:function(Ht,At){if(At.formatting=!1,Ht!=At.thisLine.stream){if(At.header=0,At.hr=!1,Ht.match(/^\s*$/,!0))return Ye(At),null;if(At.prevLine=At.thisLine,At.thisLine={stream:Ht},At.taskList=!1,At.trailingSpace=0,At.trailingSpaceNewLine=!1,!At.localState&&(At.f=At.block,At.f!=Bt)){var Hn=Ht.match(/^\s*/,!0)[0].replace(/\t/g,Ae).length;if(At.indentation=Hn,At.indentationDiff=null,Hn>0)return null}}return At.f(Ht,At)},innerMode:function(Ht){return Ht.block==Bt?{state:Ht.htmlState,mode:Qt}:Ht.localState?{state:Ht.localState,mode:Ht.localMode}:{state:Ht,mode:hi}},indent:function(Ht,At,Hn){return Ht.block==Bt&&Qt.indent?Qt.indent(Ht.htmlState,At,Hn):Ht.localState&&Ht.localMode.indent?Ht.localMode.indent(Ht.localState,At,Hn):Me.Pass},blankLine:Ye,getType:xt,blockCommentStart:"<!--",blockCommentEnd:"-->",closeBrackets:"()[]{}''\"\"``",fold:"markdown"};return hi},"xml"),Me.defineMIME("text/markdown","markdown"),Me.defineMIME("text/x-markdown","markdown")})},98101:function(Cn,Ei,je){(function(Me){Me(je(89780))})(function(Me){"use strict";Me.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["asc","pgp","sig"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h","ino"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp","cs"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists\.txt$/},{name:"CoffeeScript",mimes:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded Javascript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Esper",mime:"text/x-esper",mode:"sql"},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90","f95"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history)\.md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"],file:/^Jenkinsfile$/},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Pug",mime:"text/x-pug",mode:"pug",ext:["jade","pug"],alias:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"text/jinja2",mode:"jinja2",ext:["j2","jinja","jinja2"]},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb","wl","wls"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mimes:["application/n-triples","application/n-quads","text/n-triples"],mode:"ntriples",ext:["nt","nq"]},{name:"Objective-C",mime:"text/x-objectivec",mode:"clike",ext:["m"],alias:["objective-c","objc"]},{name:"Objective-C++",mime:"text/x-objectivec++",mode:"clike",ext:["mm"],alias:["objective-c++","objc++"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mimes:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],mode:"php",ext:["php","php3","php4","php5","php7","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PostgreSQL",mime:"text/x-pgsql",mode:"sql"},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r","R"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mimes:["text/x-sh","application/x-sh"],mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"SML",mime:"text/x-sml",mode:"mllike",ext:["sml","sig","fun","smackspec"]},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"SQLite",mime:"text/x-sqlite",mode:"sql"},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Stylus",mime:"text/x-styl",mode:"stylus",ext:["styl"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v","sv","svh"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"TypeScript-JSX",mime:"text/typescript-jsx",mode:"jsx",ext:["tsx"],alias:["tsx"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"Vue.js Component",mimes:["script/x-vue","text/x-vue"],mode:"vue",ext:["vue"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd","svg"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mimes:["text/x-yaml","text/yaml"],mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]},{name:"WebAssembly",mime:"text/webassembly",mode:"wast",ext:["wat","wast"]}];for(var yt=0;yt<Me.modeInfo.length;yt++){var Jt=Me.modeInfo[yt];Jt.mimes&&(Jt.mime=Jt.mimes[0])}Me.findModeByMIME=function(Qt){Qt=Qt.toLowerCase();for(var It=0;It<Me.modeInfo.length;It++){var dt=Me.modeInfo[It];if(dt.mime==Qt)return dt;if(dt.mimes){for(var Mt=0;Mt<dt.mimes.length;Mt++)if(dt.mimes[Mt]==Qt)return dt}}if(/\+xml$/.test(Qt))return Me.findModeByMIME("application/xml");if(/\+json$/.test(Qt))return Me.findModeByMIME("application/json")},Me.findModeByExtension=function(Qt){Qt=Qt.toLowerCase();for(var It=0;It<Me.modeInfo.length;It++){var dt=Me.modeInfo[It];if(dt.ext){for(var Mt=0;Mt<dt.ext.length;Mt++)if(dt.ext[Mt]==Qt)return dt}}},Me.findModeByFileName=function(Qt){for(var It=0;It<Me.modeInfo.length;It++){var dt=Me.modeInfo[It];if(dt.file&&dt.file.test(Qt))return dt}var Mt=Qt.lastIndexOf("."),an=Mt>-1&&Qt.substring(Mt+1,Qt.length);if(an)return Me.findModeByExtension(an)},Me.findModeByName=function(Qt){Qt=Qt.toLowerCase();for(var It=0;It<Me.modeInfo.length;It++){var dt=Me.modeInfo[It];if(dt.name.toLowerCase()==Qt)return dt;if(dt.alias){for(var Mt=0;Mt<dt.alias.length;Mt++)if(dt.alias[Mt].toLowerCase()==Qt)return dt}}}})},67549:function(Cn,Ei,je){(function(Me){Me(je(89780))})(function(Me){"use strict";Me.defineMode("stex",function(yt,Jt){"use strict";function Qt(et,ue){et.cmdState.push(ue)}function It(et){return et.cmdState.length>0?et.cmdState[et.cmdState.length-1]:null}function dt(et){var ue=et.cmdState.pop();ue&&ue.closeBracket()}function Mt(et){for(var ue=et.cmdState,ce=ue.length-1;ce>=0;ce--){var Ce=ue[ce];if(Ce.name!="DEFAULT")return Ce}return{styleIdentifier:function(){return null}}}function an(et,ue,ce){return function(){this.name=et,this.bracketNo=0,this.style=ue,this.styles=ce,this.argument=null,this.styleIdentifier=function(){return this.styles[this.bracketNo-1]||null},this.openBracket=function(){return this.bracketNo++,"bracket"},this.closeBracket=function(){}}}var qt={};qt.importmodule=an("importmodule","tag",["string","builtin"]),qt.documentclass=an("documentclass","tag",["","atom"]),qt.usepackage=an("usepackage","tag",["atom"]),qt.begin=an("begin","tag",["atom"]),qt.end=an("end","tag",["atom"]),qt.label=an("label","tag",["atom"]),qt.ref=an("ref","tag",["atom"]),qt.eqref=an("eqref","tag",["atom"]),qt.cite=an("cite","tag",["atom"]),qt.bibitem=an("bibitem","tag",["atom"]),qt.Bibitem=an("Bibitem","tag",["atom"]),qt.RBibitem=an("RBibitem","tag",["atom"]),qt.DEFAULT=function(){this.name="DEFAULT",this.style="tag",this.styleIdentifier=this.openBracket=this.closeBracket=function(){}};function nt(et,ue){et.f=ue}function ln(et,ue){var ce;if(et.match(/^\\[a-zA-Z@]+/)){var Ce=et.current().slice(1);return ce=qt.hasOwnProperty(Ce)?qt[Ce]:qt.DEFAULT,ce=new ce,Qt(ue,ce),nt(ue,on),ce.style}if(et.match(/^\\[$&%#{}_]/)||et.match(/^\\[,;!\/\\]/))return"tag";if(et.match("\\["))return nt(ue,function(Te,Ie){return rn(Te,Ie,"\\]")}),"keyword";if(et.match("\\("))return nt(ue,function(Te,Ie){return rn(Te,Ie,"\\)")}),"keyword";if(et.match("$$"))return nt(ue,function(Te,Ie){return rn(Te,Ie,"$$")}),"keyword";if(et.match("$"))return nt(ue,function(Te,Ie){return rn(Te,Ie,"$")}),"keyword";var Ae=et.next();if(Ae=="%")return et.skipToEnd(),"comment";if(Ae=="}"||Ae=="]"){if(ce=It(ue),ce)ce.closeBracket(Ae),nt(ue,on);else return"error";return"bracket"}else return Ae=="{"||Ae=="["?(ce=qt.DEFAULT,ce=new ce,Qt(ue,ce),"bracket"):/\d/.test(Ae)?(et.eatWhile(/[\w.%]/),"atom"):(et.eatWhile(/[\w\-_]/),ce=Mt(ue),ce.name=="begin"&&(ce.argument=et.current()),ce.styleIdentifier())}function rn(et,ue,ce){if(et.eatSpace())return null;if(ce&&et.match(ce))return nt(ue,ln),"keyword";if(et.match(/^\\[a-zA-Z@]+/))return"tag";if(et.match(/^[a-zA-Z]+/))return"variable-2";if(et.match(/^\\[$&%#{}_]/)||et.match(/^\\[,;!\/]/)||et.match(/^[\^_&]/))return"tag";if(et.match(/^[+\-<>|=,\/@!*:;'"`~#?]/))return null;if(et.match(/^(\d+\.\d*|\d*\.\d+|\d+)/))return"number";var Ce=et.next();return Ce=="{"||Ce=="}"||Ce=="["||Ce=="]"||Ce=="("||Ce==")"?"bracket":Ce=="%"?(et.skipToEnd(),"comment"):"error"}function on(et,ue){var ce=et.peek(),Ce;return ce=="{"||ce=="["?(Ce=It(ue),Ce.openBracket(ce),et.eat(ce),nt(ue,ln),"bracket"):/[ \t\r]/.test(ce)?(et.eat(ce),null):(nt(ue,ln),dt(ue),ln(et,ue))}return{startState:function(){var et=Jt.inMathMode?function(ue,ce){return rn(ue,ce)}:ln;return{cmdState:[],f:et}},copyState:function(et){return{cmdState:et.cmdState.slice(),f:et.f}},token:function(et,ue){return ue.f(et,ue)},blankLine:function(et){et.f=ln,et.cmdState.length=0},lineComment:"%"}}),Me.defineMIME("text/x-stex","stex"),Me.defineMIME("text/x-latex","stex")})},15525:function(Cn,Ei,je){(function(Me){Me(je(89780))})(function(Me){"use strict";var yt={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},Jt={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};Me.defineMode("xml",function(Qt,It){var dt=Qt.indentUnit,Mt={},an=It.htmlMode?yt:Jt;for(var qt in an)Mt[qt]=an[qt];for(var qt in It)Mt[qt]=It[qt];var nt,ln;function rn(Zt,Yn){function gn(Xn){return Yn.tokenize=Xn,Xn(Zt,Yn)}var Jn=Zt.next();if(Jn=="<")return Zt.eat("!")?Zt.eat("[")?Zt.match("CDATA[")?gn(ue("atom","]]>")):null:Zt.match("--")?gn(ue("comment","-->")):Zt.match("DOCTYPE",!0,!0)?(Zt.eatWhile(/[\w\._\-]/),gn(ce(1))):null:Zt.eat("?")?(Zt.eatWhile(/[\w\._\-]/),Yn.tokenize=ue("meta","?>"),"meta"):(nt=Zt.eat("/")?"closeTag":"openTag",Yn.tokenize=on,"tag bracket");if(Jn=="&"){var ci;return Zt.eat("#")?Zt.eat("x")?ci=Zt.eatWhile(/[a-fA-F\d]/)&&Zt.eat(";"):ci=Zt.eatWhile(/[\d]/)&&Zt.eat(";"):ci=Zt.eatWhile(/[\w\.\-:]/)&&Zt.eat(";"),ci?"atom":"error"}else return Zt.eatWhile(/[^&<]/),null}rn.isInText=!0;function on(Zt,Yn){var gn=Zt.next();if(gn==">"||gn=="/"&&Zt.eat(">"))return Yn.tokenize=rn,nt=gn==">"?"endTag":"selfcloseTag","tag bracket";if(gn=="=")return nt="equals",null;if(gn=="<"){Yn.tokenize=rn,Yn.state=Ie,Yn.tagName=Yn.tagStart=null;var Jn=Yn.tokenize(Zt,Yn);return Jn?Jn+" tag error":"tag error"}else return/[\'\"]/.test(gn)?(Yn.tokenize=et(gn),Yn.stringStartCol=Zt.column(),Yn.tokenize(Zt,Yn)):(Zt.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function et(Zt){var Yn=function(gn,Jn){for(;!gn.eol();)if(gn.next()==Zt){Jn.tokenize=on;break}return"string"};return Yn.isInAttribute=!0,Yn}function ue(Zt,Yn){return function(gn,Jn){for(;!gn.eol();){if(gn.match(Yn)){Jn.tokenize=rn;break}gn.next()}return Zt}}function ce(Zt){return function(Yn,gn){for(var Jn;(Jn=Yn.next())!=null;){if(Jn=="<")return gn.tokenize=ce(Zt+1),gn.tokenize(Yn,gn);if(Jn==">")if(Zt==1){gn.tokenize=rn;break}else return gn.tokenize=ce(Zt-1),gn.tokenize(Yn,gn)}return"meta"}}function Ce(Zt,Yn,gn){this.prev=Zt.context,this.tagName=Yn,this.indent=Zt.indented,this.startOfLine=gn,(Mt.doNotIndent.hasOwnProperty(Yn)||Zt.context&&Zt.context.noIndent)&&(this.noIndent=!0)}function Ae(Zt){Zt.context&&(Zt.context=Zt.context.prev)}function Te(Zt,Yn){for(var gn;;){if(!Zt.context||(gn=Zt.context.tagName,!Mt.contextGrabbers.hasOwnProperty(gn)||!Mt.contextGrabbers[gn].hasOwnProperty(Yn)))return;Ae(Zt)}}function Ie(Zt,Yn,gn){return Zt=="openTag"?(gn.tagStart=Yn.column(),ze):Zt=="closeTag"?Ye:Ie}function ze(Zt,Yn,gn){return Zt=="word"?(gn.tagName=Yn.current(),ln="tag",kt):Mt.allowMissingTagName&&Zt=="endTag"?(ln="tag bracket",kt(Zt,Yn,gn)):(ln="error",ze)}function Ye(Zt,Yn,gn){if(Zt=="word"){var Jn=Yn.current();return gn.context&&gn.context.tagName!=Jn&&Mt.implicitlyClosed.hasOwnProperty(gn.context.tagName)&&Ae(gn),gn.context&&gn.context.tagName==Jn||Mt.matchClosing===!1?(ln="tag",lt):(ln="tag error",Bt)}else return Mt.allowMissingTagName&&Zt=="endTag"?(ln="tag bracket",lt(Zt,Yn,gn)):(ln="error",Bt)}function lt(Zt,Yn,gn){return Zt!="endTag"?(ln="error",lt):(Ae(gn),Ie)}function Bt(Zt,Yn,gn){return ln="error",lt(Zt,Yn,gn)}function kt(Zt,Yn,gn){if(Zt=="word")return ln="attribute",xt;if(Zt=="endTag"||Zt=="selfcloseTag"){var Jn=gn.tagName,ci=gn.tagStart;return gn.tagName=gn.tagStart=null,Zt=="selfcloseTag"||Mt.autoSelfClosers.hasOwnProperty(Jn)?Te(gn,Jn):(Te(gn,Jn),gn.context=new Ce(gn,Jn,ci==gn.indented)),Ie}return ln="error",kt}function xt(Zt,Yn,gn){return Zt=="equals"?Et:(Mt.allowMissing||(ln="error"),kt(Zt,Yn,gn))}function Et(Zt,Yn,gn){return Zt=="string"?$t:Zt=="word"&&Mt.allowUnquoted?(ln="string",kt):(ln="error",kt(Zt,Yn,gn))}function $t(Zt,Yn,gn){return Zt=="string"?$t:kt(Zt,Yn,gn)}return{startState:function(Zt){var Yn={tokenize:rn,state:Ie,indented:Zt||0,tagName:null,tagStart:null,context:null};return Zt!=null&&(Yn.baseIndent=Zt),Yn},token:function(Zt,Yn){if(!Yn.tagName&&Zt.sol()&&(Yn.indented=Zt.indentation()),Zt.eatSpace())return null;nt=null;var gn=Yn.tokenize(Zt,Yn);return(gn||nt)&&gn!="comment"&&(ln=null,Yn.state=Yn.state(nt||gn,Zt,Yn),ln&&(gn=ln=="error"?gn+" error":ln)),gn},indent:function(Zt,Yn,gn){var Jn=Zt.context;if(Zt.tokenize.isInAttribute)return Zt.tagStart==Zt.indented?Zt.stringStartCol+1:Zt.indented+dt;if(Jn&&Jn.noIndent)return Me.Pass;if(Zt.tokenize!=on&&Zt.tokenize!=rn)return gn?gn.match(/^(\s*)/)[0].length:0;if(Zt.tagName)return Mt.multilineTagIndentPastTag!==!1?Zt.tagStart+Zt.tagName.length+2:Zt.tagStart+dt*(Mt.multilineTagIndentFactor||1);if(Mt.alignCDATA&&/<!\[CDATA\[/.test(Yn))return 0;var ci=Yn&&/^<(\/)?([\w_:\.-]*)/.exec(Yn);if(ci&&ci[1])for(;Jn;)if(Jn.tagName==ci[2]){Jn=Jn.prev;break}else if(Mt.implicitlyClosed.hasOwnProperty(Jn.tagName))Jn=Jn.prev;else break;else if(ci)for(;Jn;){var Xn=Mt.contextGrabbers[Jn.tagName];if(Xn&&Xn.hasOwnProperty(ci[2]))Jn=Jn.prev;else break}for(;Jn&&Jn.prev&&!Jn.startOfLine;)Jn=Jn.prev;return Jn?Jn.indent+dt:Zt.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:Mt.htmlMode?"html":"xml",helperType:Mt.htmlMode?"html":"xml",skipAttribute:function(Zt){Zt.state==Et&&(Zt.state=kt)},xmlCurrentTag:function(Zt){return Zt.tagName?{name:Zt.tagName,close:Zt.type=="closeTag"}:null},xmlCurrentContext:function(Zt){for(var Yn=[],gn=Zt.context;gn;gn=gn.prev)gn.tagName&&Yn.push(gn.tagName);return Yn.reverse()}}}),Me.defineMIME("text/xml","xml"),Me.defineMIME("application/xml","xml"),Me.mimeModes.hasOwnProperty("text/html")||Me.defineMIME("text/html",{name:"xml",htmlMode:!0})})},12378:function(Cn,Ei,je){"use strict";je.d(Ei,{$u:function(){return qt},BD:function(){return Tt},E9:function(){return an},FF:function(){return ls},FJ:function(){return Ie},Hn:function(){return Te},KX:function(){return Ye},NB:function(){return qn},S0:function(){return en},UL:function(){return nt},Vk:function(){return Ae},Vm:function(){return oi},YI:function(){return Ti},ZA:function(){return Jt},Zt:function(){return ln},al:function(){return qe},bn:function(){return Ft},bx:function(){return Ze},g2:function(){return Lr},h1:function(){return Et},hD:function(){return zr},l4:function(){return dt},rU:function(){return Kn},s_:function(){return Ge},uz:function(){return fo},z6:function(){return rn}}),Cn=je.hmd(Cn),function(){var We;function ui(a){var x=0;return function(){return x<a.length?{done:!1,value:a[x++]}:{done:!0}}}function Si(a){var x=typeof Symbol!="undefined"&&Symbol.iterator&&a[Symbol.iterator];return x?x.call(a):{next:ui(a)}}function ms(a){for(var x,b=[];!(x=a.next()).done;)b.push(x.value);return b}var Po=typeof Object.create=="function"?Object.create:function(a){function x(){}return x.prototype=a,new x},Xr;if(typeof Object.setPrototypeOf=="function")Xr=Object.setPrototypeOf;else{var si;e:{var Hi={a:!0},or={};try{or.__proto__=Hi,si=or.a;break e}catch(a){}si=!1}Xr=si?function(a,x){if(a.__proto__=x,a.__proto__!==x)throw new TypeError(a+" is not extensible");return a}:null}var Fn=Xr;function vn(a,x){if(a.prototype=Po(x.prototype),a.prototype.constructor=a,Fn)Fn(a,x);else for(var b in x)if(b!="prototype")if(Object.defineProperties){var te=Object.getOwnPropertyDescriptor(x,b);te&&Object.defineProperty(a,b,te)}else a[b]=x[b];a.QA=x.prototype}var pn=typeof je.g!="undefined"&&je.g!=null?je.g:self,Ur=typeof Object.assign=="function"?Object.assign:function(a,x){for(var b=1;b<arguments.length;b++){var te=arguments[b];if(te)for(var re in te)Object.prototype.hasOwnProperty.call(te,re)&&(a[re]=te[re])}return a},Ho=typeof Object.defineProperties=="function"?Object.defineProperty:function(a,x,b){a!=Array.prototype&&a!=Object.prototype&&(a[x]=b.value)};function bo(a,x){if(x){var b=pn;a=a.split(".");for(var te=0;te<a.length-1;te++){var re=a[te];re in b||(b[re]={}),b=b[re]}a=a[a.length-1],te=b[a],x=x(te),x!=te&&x!=null&&Ho(b,a,{writable:!0,value:x})}}bo("Object.assign",function(a){return a||Ur}),bo("Array.prototype.fill",function(a){return a||function(x,b,te){var re=this.length||0;for(0>b&&(b=Math.max(0,re+b)),(te==null||te>re)&&(te=re),te=Number(te),0>te&&(te=Math.max(0,re+te)),b=Number(b||0);b<te;b++)this[b]=x;return this}});var ji=typeof globalThis=="object"&&globalThis||typeof je.g=="object"&&je.g.global===je.g&&je.g||typeof self=="object"&&self.self===self&&self||{};ji.requestAnimationFrame===void 0&&(ji.setImmediate===void 0?ji.requestAnimationFrame=function(a){ji.setTimeout(a,0)}:ji.requestAnimationFrame=ji.setImmediate);function co(){}function Oa(a,x){var b=-1;return function(){var te=this,re=arguments;b!==-1&&ji.clearTimeout(b),b=aa(function(){b=-1,a.apply(te,re)},x)}}function aa(a,x){return ji.setTimeout(a,x)}function pa(a){return ji.document.createElement(a)}function hn(a){throw Error(a)}function Ar(a,x){a="The object is frozen, so its properties cannot be set: "+a.toString(),x!==void 0&&(a+=" to value: "+x),hn(a)}function Xo(a,x,b,te){b=b===null?"*":typeof b=="string"?b:typeof b=="function"&&typeof b.className=="string"?b.className:"",te!==void 0&&(b+="."+te),hn(b+" is not in the range "+x+": "+a)}function al(a){ji.console&&ji.console.log(a)}function Ji(a){return typeof a=="object"&&a!==null}function Fo(a){return Array.isArray(a)||ji.NodeList&&a instanceof ji.NodeList||ji.HTMLCollection&&a instanceof ji.HTMLCollection}function wa(a){return Array.prototype.slice.call(a)}function xl(a,x,b){Array.isArray(a)?x>=a.length?a.push(b):a.splice(x,0,b):hn("Cannot insert an object into an HTMLCollection or NodeList: "+b+" at "+x)}function Ll(a,x){Array.isArray(a)?x>=a.length?a.pop():a.splice(x,1):hn("Cannot remove an object from an HTMLCollection or NodeList at "+x)}function ys(){var a=Gu.pop();return a===void 0?[]:a}function As(a){a.length=0,Gu.push(a)}function Jo(a){if(typeof a=="function"){if(a.className)return a.className;if(a.name)return a.name;var x=a.toString();if(x=x.substring(9,x.indexOf("(")).trim(),x!=="")return a._className=x}else if(Ji(a)&&a.constructor)return Jo(a.constructor);return typeof a}function da(a){var x=a;return Ji(a)&&(a.text?x=a.text:a.name?x=a.name:a.key!==void 0?x=a.key:a.id!==void 0?x=a.id:a.constructor===Object&&(a.Text?x=a.Text:a.Name?x=a.Name:a.Key!==void 0?x=a.Key:a.Id!==void 0?x=a.Id:a.ID!==void 0&&(x=a.ID))),x===void 0?"undefined":x===null?"null":x.toString()}function us(a,x){if(a.hasOwnProperty(x))return!0;for(a=Object.getPrototypeOf(a);a&&a!==Function;){if(a.hasOwnProperty(x))return!0;var b=a.CA;if(b&&b[x])return!0;a=Object.getPrototypeOf(a)}return!1}function Sa(a,x,b){Object.defineProperty(sl.prototype,a,{get:x,set:b})}function zi(a){for(var x=[],b=0;256>b;b++)x["0123456789abcdef".charAt(b>>4)+"0123456789abcdef".charAt(b&15)]=String.fromCharCode(b);a.length%2&&(a="0"+a),b=[];for(var te=0,re=0;re<a.length;re+=2)b[te++]=x[a.substr(re,2)];for(a=b.join(""),a=a===""?"0":a,x=[],b=0;256>b;b++)x[b]=b;for(b=te=0;256>b;b++)te=(te+x[b]+119)%256,re=x[b],x[b]=x[te],x[te]=re;te=b=0;for(var oe="",le=0;le<a.length;le++)b=(b+1)%256,te=(te+x[b])%256,re=x[b],x[b]=x[te],x[te]=re,oe+=String.fromCharCode(a.charCodeAt(le)^x[(x[b]+x[te])%256]);return oe.indexOf("GoJS 2.1 evaluation")>-1||oe.indexOf("\xA9 1998-2021 Northwoods Software")>-1||oe.indexOf("Not for distribution or production use")>-1||oe.indexOf("gojs.net")>-1?"":oe}var fc=ji.navigator!==void 0&&0<ji.navigator.userAgent.indexOf("Trident/7"),iu=ji.navigator!==void 0&&ji.navigator.platform!==void 0&&ji.navigator.platform.match(/(iPhone|iPod|iPad|Mac)/i)!==null,Gu=[];Object.freeze([]),co.className="Util",co.Dx="32ab5ff3b26f42dc0ed90f21472913b5",co.adym="gojs.net",co.vfo="28e645fdb266",co.className="Util";function Ni(a,x,b){$o(this),this.j=a,this.xa=x,this.o=b}Ni.prototype.toString=function(){return"EnumValue."+this.xa};function Lo(a,x){return x==null||x===""?null:a[x]}pn.Object.defineProperties(Ni.prototype,{classType:{get:function(){return this.j}},name:{get:function(){return this.xa}},value:{get:function(){return this.o}}}),Ni.className="EnumValue";function zs(){this.ew=[]}zs.prototype.toString=function(){return this.ew.join("")},zs.prototype.add=function(a){a!==""&&this.ew.push(a)},zs.className="StringBuilder";function Fa(){}Fa.className="PropertyCollection";var Js={EA:!1,JA:!1,GA:!1,IA:!1,NA:!1,LA:!1,nx:!1,FA:null,trace:function(a){ji.console&&ji.console.log(a)},HA:function(a,x,b,te){a.strokeStyle="red",a.fillStyle="red",a.font="8px sans-serif",a.beginPath(),a.moveTo(-10,0),a.lineTo(10,0),a.moveTo(0,-10),a.lineTo(0,10),a.stroke(),a.setTransform(1,0,0,1,0,0),a.scale(b,b),a.transform(x.m11,x.m12,x.m21,x.m22,x.dx,x.dy),a.lineWidth=2,a.beginPath(),a.moveTo(te.left,te.top+20),a.lineTo(te.left,te.top),a.lineTo(te.left+20,te.top),a.moveTo(te.right,te.bottom-20),a.lineTo(te.right,te.bottom),a.lineTo(te.right-20,te.bottom),a.stroke(),a.fillText("DB: "+Math.round(te.x)+", "+Math.round(te.y)+", "+Math.round(te.width)+", "+Math.round(te.height),te.left,te.top-5)},DA:function(a){var x={},b;for(b in a){if(x.x=b,x.x!=="licenseKey"){var te=a[x.x];if(te.prototype!==void 0){x.Zl=Object.getOwnPropertyNames(te.prototype);for(var re={Tj:0};re.Tj<x.Zl.length;re={Tj:re.Tj},re.Tj++){var oe=Object.getOwnPropertyDescriptor(te.prototype,x.Zl[re.Tj]);oe.get!==void 0&&oe.set===void 0&&Object.defineProperty(te.prototype,x.Zl[re.Tj],{set:function(le,fe){return function(){throw Error("Property "+le.Zl[fe.Tj]+" of "+le.x+" is read-only.")}}(x,re)})}}}x={Zl:x.Zl,x:x.x}}}};function _s(){}_s.prototype.reset=function(){},_s.prototype.next=function(){return!1},_s.prototype.Ad=function(){return!1},_s.prototype.first=function(){return null},_s.prototype.any=function(){return!1},_s.prototype.all=function(){return!0},_s.prototype.each=function(){return this},_s.prototype.map=function(){return this},_s.prototype.filter=function(){return this},_s.prototype.de=function(){},_s.prototype.toString=function(){return"EmptyIterator"},pn.Object.defineProperties(_s.prototype,{iterator:{get:function(){return this}},count:{get:function(){return 0}}}),_s.prototype.first=_s.prototype.first,_s.prototype.hasNext=_s.prototype.Ad,_s.prototype.next=_s.prototype.next,_s.prototype.reset=_s.prototype.reset;var wl=null;_s.className="EmptyIterator",wl=new _s;function Sl(a){this.key=-1,this.value=a}Sl.prototype.reset=function(){this.key=-1},Sl.prototype.next=function(){return this.key===-1?(this.key=0,!0):!1},Sl.prototype.Ad=function(){return this.next()},Sl.prototype.first=function(){return this.key=0,this.value},Sl.prototype.any=function(a){return this.key=-1,a(this.value)},Sl.prototype.all=function(a){return this.key=-1,a(this.value)},Sl.prototype.each=function(a){return this.key=-1,a(this.value),this},Sl.prototype.map=function(a){return new Sl(a(this.value))},Sl.prototype.filter=function(a){return a(this.value)?new Sl(this.value):wl},Sl.prototype.de=function(){this.value=null},Sl.prototype.toString=function(){return"SingletonIterator("+this.value+")"},pn.Object.defineProperties(Sl.prototype,{iterator:{get:function(){return this}},count:{get:function(){return 1}}}),Sl.prototype.first=Sl.prototype.first,Sl.prototype.hasNext=Sl.prototype.Ad,Sl.prototype.next=Sl.prototype.next,Sl.prototype.reset=Sl.prototype.reset,Sl.className="SingletonIterator";function rl(a){this.Bb=a,this.qf=null,a.Sa=null,this.qa=a.Ja,this.Za=-1}rl.prototype.reset=function(){var a=this.Bb;a.Sa=null,this.qa=a.Ja,this.Za=-1},rl.prototype.next=function(){var a=this.Bb;if(a.Ja!==this.qa&&0>this.key)return!1;a=a.s;var x=a.length,b=++this.Za,te=this.qf;if(te!==null)for(;b<x;){var re=a[b];if(te(re))return this.key=this.Za=b,this.value=re,!0;b++}else{if(b<x)return this.key=b,this.value=a[b],!0;this.de()}return!1},rl.prototype.Ad=function(){return this.next()},rl.prototype.first=function(){var a=this.Bb;this.qa=a.Ja,this.Za=0,a=a.s;var x=a.length,b=this.qf;if(b!==null){for(var te=0;te<x;){var re=a[te];if(b(re))return this.key=this.Za=te,this.value=re;te++}return null}return 0<x?(a=a[0],this.key=0,this.value=a):null},rl.prototype.any=function(a){var x=this.Bb;x.Sa=null,this.Za=-1,x=x.s;for(var b=x.length,te=this.qf,re=0;re<b;re++){var oe=x[re];if((te===null||te(oe))&&a(oe))return!0}return!1},rl.prototype.all=function(a){var x=this.Bb;x.Sa=null,this.Za=-1,x=x.s;for(var b=x.length,te=this.qf,re=0;re<b;re++){var oe=x[re];if((te===null||te(oe))&&!a(oe))return!1}return!0},rl.prototype.each=function(a){var x=this.Bb;x.Sa=null,this.Za=-1,x=x.s;for(var b=x.length,te=this.qf,re=0;re<b;re++){var oe=x[re];(te===null||te(oe))&&a(oe)}return this},rl.prototype.map=function(a){var x=this.Bb;x.Sa=null,this.Za=-1;var b=[];x=x.s;for(var te=x.length,re=this.qf,oe=0;oe<te;oe++){var le=x[oe];(re===null||re(le))&&b.push(a(le))}return a=new Zi,a.s=b,a.xb(),a.iterator},rl.prototype.filter=function(a){var x=this.Bb;x.Sa=null,this.Za=-1;var b=[];x=x.s;for(var te=x.length,re=this.qf,oe=0;oe<te;oe++){var le=x[oe];(re===null||re(le))&&a(le)&&b.push(le)}return a=new Zi,a.s=b,a.xb(),a.iterator},rl.prototype.de=function(){this.key=-1,this.value=null,this.qa=-1,this.qf=null,this.Bb.Sa=this},rl.prototype.toString=function(){return"ListIterator@"+this.Za+"/"+this.Bb.count},pn.Object.defineProperties(rl.prototype,{iterator:{get:function(){return this}},predicate:{get:function(){return this.qf},set:function(a){this.qf=a}},count:{get:function(){var a=this.qf;if(a!==null){for(var x=0,b=this.Bb.s,te=b.length,re=0;re<te;re++)a(b[re])&&x++;return x}return this.Bb.s.length}}}),rl.prototype.first=rl.prototype.first,rl.prototype.hasNext=rl.prototype.Ad,rl.prototype.next=rl.prototype.next,rl.prototype.reset=rl.prototype.reset,rl.className="ListIterator";function Il(a){this.Bb=a,a.Hg=null,this.qa=a.Ja,this.Za=a.s.length}Il.prototype.reset=function(){var a=this.Bb;a.Hg=null,this.qa=a.Ja,this.Za=a.s.length},Il.prototype.next=function(){var a=this.Bb;if(a.Ja!==this.qa&&0>this.key)return!1;var x=--this.Za;return 0<=x?(this.key=x,this.value=a.s[x],!0):(this.de(),!1)},Il.prototype.Ad=function(){return this.next()},Il.prototype.first=function(){var a=this.Bb;this.qa=a.Ja;var x=a.s;return this.Za=a=x.length-1,0<=a?(x=x[a],this.key=a,this.value=x):null},Il.prototype.any=function(a){var x=this.Bb;x.Hg=null,x=x.s;var b=x.length;for(this.Za=b,--b;0<=b;b--)if(a(x[b]))return!0;return!1},Il.prototype.all=function(a){var x=this.Bb;x.Hg=null,x=x.s;var b=x.length;for(this.Za=b,--b;0<=b;b--)if(!a(x[b]))return!1;return!0},Il.prototype.each=function(a){var x=this.Bb;x.Hg=null,x=x.s;var b=x.length;for(this.Za=b,--b;0<=b;b--)a(x[b]);return this},Il.prototype.map=function(a){var x=this.Bb;x.Hg=null;var b=[];x=x.s;var te=x.length;for(this.Za=te,--te;0<=te;te--)b.push(a(x[te]));return a=new Zi,a.s=b,a.xb(),a.iterator},Il.prototype.filter=function(a){var x=this.Bb;x.Hg=null;var b=[];x=x.s;var te=x.length;for(this.Za=te,--te;0<=te;te--){var re=x[te];a(re)&&b.push(re)}return a=new Zi,a.s=b,a.xb(),a.iterator},Il.prototype.de=function(){this.key=-1,this.value=null,this.qa=-1,this.Bb.Hg=this},Il.prototype.toString=function(){return"ListIteratorBackwards("+this.Za+"/"+this.Bb.count+")"},pn.Object.defineProperties(Il.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.Bb.s.length}}}),Il.prototype.first=Il.prototype.first,Il.prototype.hasNext=Il.prototype.Ad,Il.prototype.next=Il.prototype.next,Il.prototype.reset=Il.prototype.reset,Il.className="ListIteratorBackwards";function Zi(a){$o(this),this._isFrozen=!1,this.s=[],this.Ja=0,this.Hg=this.Sa=null,typeof a=="string"&&hn("Error: Since 2.0 List/Map/Set constructors no longer take an argument that enforces type."),a!==void 0&&this.addAll(a)}We=Zi.prototype,We.xb=function(){var a=this.Ja;a++,999999999<a&&(a=0),this.Ja=a},We.freeze=function(){return this._isFrozen=!0,this},We.ka=function(){return this._isFrozen=!1,this},We.toString=function(){return"List()#"+Pl(this)},We.add=function(a){return a===null?this:(this._isFrozen&&Ar(this,a),this.s.push(a),this.xb(),this)},We.push=function(a){this.add(a)},We.addAll=function(a){if(a===null)return this;this._isFrozen&&Ar(this);var x=this.s;if(Fo(a))for(var b=a.length,te=0;te<b;te++)x.push(a[te]);else for(a=a.iterator;a.next();)x.push(a.value);return this.xb(),this},We.clear=function(){this._isFrozen&&Ar(this),this.s.length=0,this.xb()},We.contains=function(a){return a===null?!1:this.s.indexOf(a)!==-1},We.has=function(a){return this.contains(a)},We.indexOf=function(a){return a===null?-1:this.s.indexOf(a)},We.M=function(a){var x=this.s;return(0>a||a>=x.length)&&Xo(a,"0 <= i < length",Zi,"elt:i"),x[a]},We.get=function(a){return this.M(a)},We.cd=function(a,x){var b=this.s;(0>a||a>=b.length)&&Xo(a,"0 <= i < length",Zi,"setElt:i"),this._isFrozen&&Ar(this,a),b[a]=x},We.set=function(a,x){this.cd(a,x)},We.first=function(){var a=this.s;return a.length===0?null:a[0]},We.jc=function(){var a=this.s,x=a.length;return 0<x?a[x-1]:null},We.pop=function(){this._isFrozen&&Ar(this);var a=this.s;return 0<a.length?a.pop():null},Zi.prototype.any=function(a){for(var x=this.s,b=x.length,te=0;te<b;te++)if(a(x[te]))return!0;return!1},Zi.prototype.all=function(a){for(var x=this.s,b=x.length,te=0;te<b;te++)if(!a(x[te]))return!1;return!0},Zi.prototype.each=function(a){for(var x=this.s,b=x.length,te=0;te<b;te++)a(x[te]);return this},Zi.prototype.map=function(a){for(var x=new Zi,b=[],te=this.s,re=te.length,oe=0;oe<re;oe++)b.push(a(te[oe]));return x.s=b,x.xb(),x},Zi.prototype.filter=function(a){for(var x=new Zi,b=[],te=this.s,re=te.length,oe=0;oe<re;oe++){var le=te[oe];a(le)&&b.push(le)}return x.s=b,x.xb(),x},We=Zi.prototype,We.Gb=function(a,x){0>a&&Xo(a,">= 0",Zi,"insertAt:i"),this._isFrozen&&Ar(this,a);var b=this.s;a>=b.length?b.push(x):b.splice(a,0,x),this.xb()},We.remove=function(a){if(a===null)return!1;this._isFrozen&&Ar(this,a);var x=this.s;return a=x.indexOf(a),a===-1?!1:(a===x.length-1?x.pop():x.splice(a,1),this.xb(),!0)},We.delete=function(a){return this.remove(a)},We.mb=function(a){var x=this.s;(0>a||a>=x.length)&&Xo(a,"0 <= i < length",Zi,"removeAt:i"),this._isFrozen&&Ar(this,a),a===x.length-1?x.pop():x.splice(a,1),this.xb()},We.removeRange=function(a,x){var b=this.s,te=b.length;if(0>a)a=0;else if(a>=te)return this;if(0>x)return this;if(x>=te&&(x=te-1),a>x)return this;this._isFrozen&&Ar(this);for(var re=a,oe=x+1;oe<te;)b[re++]=b[oe++];return b.length=te-(x-a+1),this.xb(),this},Zi.prototype.copy=function(){var a=new Zi,x=this.s;return 0<x.length&&(a.s=Array.prototype.slice.call(x)),a},We=Zi.prototype,We.Fa=function(){for(var a=this.s,x=this.count,b=Array(x),te=0;te<x;te++)b[te]=a[te];return b},We.Iv=function(){for(var a=new Yi,x=this.s,b=this.count,te=0;te<b;te++)a.add(x[te]);return a},We.sort=function(a){return this._isFrozen&&Ar(this),this.s.sort(a),this.xb(),this},We.zi=function(a,x,b){var te=this.s,re=te.length;x===void 0&&(x=0),b===void 0&&(b=re),this._isFrozen&&Ar(this);var oe=b-x;if(1>=oe)return this;if((0>x||x>=re-1)&&Xo(x,"0 <= from < length",Zi,"sortRange:from"),oe===2)return b=te[x],re=te[x+1],0<a(b,re)&&(te[x]=re,te[x+1]=b,this.xb()),this;if(x===0)if(b>=re)te.sort(a);else for(x=te.slice(0,b),x.sort(a),a=0;a<b;a++)te[a]=x[a];else if(b>=re)for(b=te.slice(x),b.sort(a),a=x;a<re;a++)te[a]=b[a-x];else for(re=te.slice(x,b),re.sort(a),a=x;a<b;a++)te[a]=re[a-x];return this.xb(),this},We.reverse=function(){return this._isFrozen&&Ar(this),this.s.reverse(),this.xb(),this},pn.Object.defineProperties(Zi.prototype,{_dataArray:{get:function(){return this.s}},count:{get:function(){return this.s.length}},size:{get:function(){return this.s.length}},length:{get:function(){return this.s.length}},iterator:{get:function(){if(0>=this.s.length)return wl;var a=this.Sa;return a!==null?(a.reset(),a):new rl(this)}},iteratorBackwards:{get:function(){if(0>=this.s.length)return wl;var a=this.Hg;return a!==null?(a.reset(),a):new Il(this)}}}),Zi.prototype.reverse=Zi.prototype.reverse,Zi.prototype.sortRange=Zi.prototype.zi,Zi.prototype.sort=Zi.prototype.sort,Zi.prototype.toSet=Zi.prototype.Iv,Zi.prototype.toArray=Zi.prototype.Fa,Zi.prototype.removeRange=Zi.prototype.removeRange,Zi.prototype.removeAt=Zi.prototype.mb,Zi.prototype.delete=Zi.prototype.delete,Zi.prototype.remove=Zi.prototype.remove,Zi.prototype.insertAt=Zi.prototype.Gb,Zi.prototype.pop=Zi.prototype.pop,Zi.prototype.last=Zi.prototype.jc,Zi.prototype.first=Zi.prototype.first,Zi.prototype.set=Zi.prototype.set,Zi.prototype.setElt=Zi.prototype.cd,Zi.prototype.get=Zi.prototype.get,Zi.prototype.elt=Zi.prototype.M,Zi.prototype.indexOf=Zi.prototype.indexOf,Zi.prototype.has=Zi.prototype.has,Zi.prototype.contains=Zi.prototype.contains,Zi.prototype.clear=Zi.prototype.clear,Zi.prototype.addAll=Zi.prototype.addAll,Zi.prototype.push=Zi.prototype.push,Zi.prototype.add=Zi.prototype.add,Zi.prototype.thaw=Zi.prototype.ka,Zi.prototype.freeze=Zi.prototype.freeze,Zi.className="List";function hl(a){this.eg=a,a.Sa=null,this.qa=a.Ja,this.sa=null}hl.prototype.reset=function(){var a=this.eg;a.Sa=null,this.qa=a.Ja,this.sa=null},hl.prototype.next=function(){var a=this.eg;if(a.Ja!==this.qa&&this.key===null)return!1;var x=this.sa;return x=x===null?a.ea:x.va,x!==null?(this.sa=x,this.value=x.value,this.key=x.key,!0):(this.de(),!1)},hl.prototype.Ad=function(){return this.next()},hl.prototype.first=function(){var a=this.eg;if(this.qa=a.Ja,a=a.ea,a!==null){this.sa=a;var x=a.value;return this.key=a.key,this.value=x}return null},hl.prototype.any=function(a){var x=this.eg;for(this.sa=x.Sa=null,x=x.ea;x!==null;){if(a(x.value))return!0;x=x.va}return!1},hl.prototype.all=function(a){var x=this.eg;for(this.sa=x.Sa=null,x=x.ea;x!==null;){if(!a(x.value))return!1;x=x.va}return!0},hl.prototype.each=function(a){var x=this.eg;for(this.sa=x.Sa=null,x=x.ea;x!==null;)a(x.value),x=x.va;return this},hl.prototype.map=function(a){var x=this.eg;x.Sa=null;var b=new Zi;for(x=x.ea;x!==null;)b.add(a(x.value)),x=x.va;return b.iterator},hl.prototype.filter=function(a){var x=this.eg;x.Sa=null;var b=new Zi;for(x=x.ea;x!==null;){var te=x.value;a(te)&&b.add(te),x=x.va}return b.iterator},hl.prototype.de=function(){this.value=this.key=null,this.qa=-1,this.eg.Sa=this},hl.prototype.toString=function(){return this.sa!==null?"SetIterator@"+this.sa.value:"SetIterator"},pn.Object.defineProperties(hl.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.eg.Sb}}}),hl.prototype.first=hl.prototype.first,hl.prototype.hasNext=hl.prototype.Ad,hl.prototype.next=hl.prototype.next,hl.prototype.reset=hl.prototype.reset,hl.className="SetIterator";function Yi(a){$o(this),this._isFrozen=!1,this.Tb={},this.Sb=0,this.Sa=null,this.Ja=0,this.kf=this.ea=null,typeof a=="string"&&hn("Error: Since 2.0 List/Map/Set constructors no longer take an argument that enforces type."),a!==void 0&&this.addAll(a)}We=Yi.prototype,We.xb=function(){var a=this.Ja;a++,999999999<a&&(a=0),this.Ja=a},We.freeze=function(){return this._isFrozen=!0,this},We.ka=function(){return this._isFrozen=!1,this},We.toString=function(){return"Set()#"+Pl(this)},We.add=function(a){if(a===null)return this;this._isFrozen&&Ar(this,a);var x=a;return Ji(a)&&(x=dl(a)),this.Tb[x]===void 0&&(this.Sb++,a=new Un(a,a),this.Tb[x]=a,x=this.kf,x===null?this.ea=a:(a.ll=x,x.va=a),this.kf=a,this.xb()),this},We.addAll=function(a){if(a===null)return this;if(this._isFrozen&&Ar(this),Fo(a))for(var x=a.length,b=0;b<x;b++)this.add(a[b]);else for(a=a.iterator;a.next();)this.add(a.value);return this},We.contains=function(a){if(a===null)return!1;var x=a;return Ji(a)&&(x=Pl(a),x===void 0)?!1:this.Tb[x]!==void 0},We.has=function(a){return this.contains(a)},We.Sy=function(a){if(a===null)return!0;for(a=a.iterator;a.next();)if(!this.contains(a.value))return!1;return!0},We.Ty=function(a){if(a===null)return!0;for(a=a.iterator;a.next();)if(this.contains(a.value))return!0;return!1},We.first=function(){var a=this.ea;return a===null?null:a.value},Yi.prototype.any=function(a){for(var x=this.ea;x!==null;){if(a(x.value))return!0;x=x.va}return!1},Yi.prototype.all=function(a){for(var x=this.ea;x!==null;){if(!a(x.value))return!1;x=x.va}return!0},Yi.prototype.each=function(a){for(var x=this.ea;x!==null;)a(x.value),x=x.va;return this},Yi.prototype.map=function(a){for(var x=new Yi,b=this.ea;b!==null;)x.add(a(b.value)),b=b.va;return x},Yi.prototype.filter=function(a){for(var x=new Yi,b=this.ea;b!==null;){var te=b.value;a(te)&&x.add(te),b=b.va}return x},We=Yi.prototype,We.remove=function(a){if(a===null)return!1;this._isFrozen&&Ar(this,a);var x=a;if(Ji(a)&&(x=Pl(a),x===void 0)||(a=this.Tb[x],a===void 0))return!1;var b=a.va,te=a.ll;return b!==null&&(b.ll=te),te!==null&&(te.va=b),this.ea===a&&(this.ea=b),this.kf===a&&(this.kf=te),delete this.Tb[x],this.Sb--,this.xb(),!0},We.delete=function(a){return this.remove(a)},We.hp=function(a){if(a===null)return this;if(this._isFrozen&&Ar(this),Fo(a))for(var x=a.length,b=0;b<x;b++)this.remove(a[b]);else for(a=a.iterator;a.next();)this.remove(a.value);return this},We.pA=function(a){if(a===null||this.count===0)return this;this._isFrozen&&Ar(this);var x=new Yi;x.addAll(a),a=[];for(var b=this.iterator;b.next();){var te=b.value;x.contains(te)||a.push(te)}return this.hp(a),this},We.clear=function(){this._isFrozen&&Ar(this),this.Tb={},this.Sb=0,this.Sa!==null&&this.Sa.reset(),this.kf=this.ea=null,this.xb()},Yi.prototype.copy=function(){var a=new Yi,x=this.Tb,b;for(b in x)a.add(x[b].value);return a},Yi.prototype.Fa=function(){var a=Array(this.Sb),x=this.Tb,b=0,te;for(te in x)a[b]=x[te].value,b++;return a},Yi.prototype.Hv=function(){var a=new Zi,x=this.Tb,b;for(b in x)a.add(x[b].value);return a};function $o(a){a.__gohashid=pc++}function dl(a){var x=a.__gohashid;return x===void 0&&(x=pc++,a.__gohashid=x),x}function Pl(a){return a.__gohashid}pn.Object.defineProperties(Yi.prototype,{count:{get:function(){return this.Sb}},size:{get:function(){return this.Sb}},iterator:{get:function(){if(0>=this.Sb)return wl;var a=this.Sa;return a!==null?(a.reset(),a):new hl(this)}}}),Yi.prototype.toList=Yi.prototype.Hv,Yi.prototype.toArray=Yi.prototype.Fa,Yi.prototype.clear=Yi.prototype.clear,Yi.prototype.retainAll=Yi.prototype.pA,Yi.prototype.removeAll=Yi.prototype.hp,Yi.prototype.delete=Yi.prototype.delete,Yi.prototype.remove=Yi.prototype.remove,Yi.prototype.first=Yi.prototype.first,Yi.prototype.containsAny=Yi.prototype.Ty,Yi.prototype.containsAll=Yi.prototype.Sy,Yi.prototype.has=Yi.prototype.has,Yi.prototype.contains=Yi.prototype.contains,Yi.prototype.addAll=Yi.prototype.addAll,Yi.prototype.add=Yi.prototype.add,Yi.prototype.thaw=Yi.prototype.ka,Yi.prototype.freeze=Yi.prototype.freeze;var pc=1;Yi.className="Set",Yi.uniqueHash=$o,Yi.hashIdUnique=dl,Yi.hashId=Pl;function pu(a){this.ma=a,this.qa=a.Ja,this.sa=null}pu.prototype.reset=function(){this.qa=this.ma.Ja,this.sa=null},pu.prototype.next=function(){var a=this.ma;if(a.Ja!==this.qa&&this.key===null)return!1;var x=this.sa;return x=x===null?a.ea:x.va,x!==null?(this.sa=x,this.value=this.key=a=x.key,!0):(this.de(),!1)},pu.prototype.Ad=function(){return this.next()},pu.prototype.first=function(){var a=this.ma;return this.qa=a.Ja,a=a.ea,a!==null?(this.sa=a,this.value=this.key=a=a.key):null},pu.prototype.any=function(a){var x=this.ma;for(this.sa=null,x=x.ea;x!==null;){if(a(x.key))return!0;x=x.va}return!1},pu.prototype.all=function(a){var x=this.ma;for(this.sa=null,x=x.ea;x!==null;){if(!a(x.key))return!1;x=x.va}return!0},pu.prototype.each=function(a){var x=this.ma;for(this.sa=null,x=x.ea;x!==null;)a(x.key),x=x.va;return this},pu.prototype.map=function(a){var x=this.ma;this.sa=null;var b=new Zi;for(x=x.ea;x!==null;)b.add(a(x.key)),x=x.va;return b.iterator},pu.prototype.filter=function(a){var x=this.ma;this.sa=null;var b=new Zi;for(x=x.ea;x!==null;){var te=x.key;a(te)&&b.add(te),x=x.va}return b.iterator},pu.prototype.de=function(){this.value=this.key=null,this.qa=-1},pu.prototype.toString=function(){return this.sa!==null?"MapKeySetIterator@"+this.sa.value:"MapKeySetIterator"},pn.Object.defineProperties(pu.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.ma.Sb}}}),pu.prototype.first=pu.prototype.first,pu.prototype.hasNext=pu.prototype.Ad,pu.prototype.next=pu.prototype.next,pu.prototype.reset=pu.prototype.reset,pu.className="MapKeySetIterator";function jl(a){Yi.call(this),$o(this),this._isFrozen=!0,this.ma=a}vn(jl,Yi),We=jl.prototype,We.freeze=function(){return this},We.ka=function(){return this},We.toString=function(){return"MapKeySet("+this.ma.toString()+")"},We.add=function(){hn("This Set is read-only: "+this.toString())},We.contains=function(a){return this.ma.contains(a)},We.has=function(a){return this.contains(a)},We.remove=function(){hn("This Set is read-only: "+this.toString())},We.delete=function(a){return this.remove(a)},We.clear=function(){hn("This Set is read-only: "+this.toString())},We.first=function(){var a=this.ma.ea;return a!==null?a.key:null},jl.prototype.any=function(a){for(var x=this.ma.ea;x!==null;){if(a(x.key))return!0;x=x.va}return!1},jl.prototype.all=function(a){for(var x=this.ma.ea;x!==null;){if(!a(x.key))return!1;x=x.va}return!0},jl.prototype.each=function(a){for(var x=this.ma.ea;x!==null;)a(x.key),x=x.va;return this},jl.prototype.map=function(a){for(var x=new Yi,b=this.ma.ea;b!==null;)x.add(a(b.key)),b=b.va;return x},jl.prototype.filter=function(a){for(var x=new Yi,b=this.ma.ea;b!==null;){var te=b.key;a(te)&&x.add(te),b=b.va}return x},jl.prototype.copy=function(){return new jl(this.ma)},jl.prototype.Iv=function(){var a=new Yi,x=this.ma.Tb,b;for(b in x)a.add(x[b].key);return a},jl.prototype.Fa=function(){var a=this.ma.Tb,x=Array(this.ma.Sb),b=0,te;for(te in a)x[b]=a[te].key,b++;return x},jl.prototype.Hv=function(){var a=new Zi,x=this.ma.Tb,b;for(b in x)a.add(x[b].key);return a},pn.Object.defineProperties(jl.prototype,{count:{get:function(){return this.ma.Sb}},size:{get:function(){return this.ma.Sb}},iterator:{get:function(){return 0>=this.ma.Sb?wl:new pu(this.ma)}}}),jl.prototype.toList=jl.prototype.Hv,jl.prototype.toArray=jl.prototype.Fa,jl.prototype.toSet=jl.prototype.Iv,jl.prototype.first=jl.prototype.first,jl.prototype.clear=jl.prototype.clear,jl.prototype.delete=jl.prototype.delete,jl.prototype.remove=jl.prototype.remove,jl.prototype.has=jl.prototype.has,jl.prototype.contains=jl.prototype.contains,jl.prototype.add=jl.prototype.add,jl.prototype.thaw=jl.prototype.ka,jl.prototype.freeze=jl.prototype.freeze,jl.className="MapKeySet";function Vu(a){this.ma=a,a.jf=null,this.qa=a.Ja,this.sa=null}Vu.prototype.reset=function(){var a=this.ma;a.jf=null,this.qa=a.Ja,this.sa=null},Vu.prototype.next=function(){var a=this.ma;if(a.Ja!==this.qa&&this.key===null)return!1;var x=this.sa;return x=x===null?a.ea:x.va,x!==null?(this.sa=x,this.value=x.value,this.key=x.key,!0):(this.de(),!1)},Vu.prototype.Ad=function(){return this.next()},Vu.prototype.first=function(){var a=this.ma;if(this.qa=a.Ja,a=a.ea,a!==null){this.sa=a;var x=a.value;return this.key=a.key,this.value=x}return null},Vu.prototype.any=function(a){var x=this.ma;for(this.sa=x.jf=null,x=x.ea;x!==null;){if(a(x.value))return!0;x=x.va}return!1},Vu.prototype.all=function(a){var x=this.ma;for(this.sa=x.jf=null,x=x.ea;x!==null;){if(!a(x.value))return!1;x=x.va}return!0},Vu.prototype.each=function(a){var x=this.ma;for(this.sa=x.jf=null,x=x.ea;x!==null;)a(x.value),x=x.va;return this},Vu.prototype.map=function(a){var x=this.ma;this.sa=x.jf=null;var b=new Zi;for(x=x.ea;x!==null;)b.add(a(x.value)),x=x.va;return b.iterator},Vu.prototype.filter=function(a){var x=this.ma;this.sa=x.jf=null;var b=new Zi;for(x=x.ea;x!==null;){var te=x.value;a(te)&&b.add(te),x=x.va}return b.iterator},Vu.prototype.de=function(){this.value=this.key=null,this.qa=-1,this.ma.jf=this},Vu.prototype.toString=function(){return this.sa!==null?"MapValueSetIterator@"+this.sa.value:"MapValueSetIterator"},pn.Object.defineProperties(Vu.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.ma.Sb}}}),Vu.prototype.first=Vu.prototype.first,Vu.prototype.hasNext=Vu.prototype.Ad,Vu.prototype.next=Vu.prototype.next,Vu.prototype.reset=Vu.prototype.reset,Vu.className="MapValueSetIterator";function Un(a,x){this.key=a,this.value=x,this.ll=this.va=null}Un.prototype.toString=function(){return"{"+this.key+":"+this.value+"}"},Un.className="KeyValuePair";function xi(a){this.ma=a,a.Sa=null,this.qa=a.Ja,this.sa=null}xi.prototype.reset=function(){var a=this.ma;a.Sa=null,this.qa=a.Ja,this.sa=null},xi.prototype.next=function(){var a=this.ma;if(a.Ja!==this.qa&&this.key===null)return!1;var x=this.sa;return x=x===null?a.ea:x.va,x!==null?(this.sa=x,this.key=x.key,this.value=x.value,!0):(this.de(),!1)},xi.prototype.Ad=function(){return this.next()},xi.prototype.first=function(){var a=this.ma;return this.qa=a.Ja,a=a.ea,a!==null?(this.sa=a,this.key=a.key,this.value=a.value,a):null},xi.prototype.any=function(a){var x=this.ma;for(this.sa=x.Sa=null,x=x.ea;x!==null;){if(a(x))return!0;x=x.va}return!1},xi.prototype.all=function(a){var x=this.ma;for(this.sa=x.Sa=null,x=x.ea;x!==null;){if(!a(x))return!1;x=x.va}return!0},xi.prototype.each=function(a){var x=this.ma;for(this.sa=x.Sa=null,x=x.ea;x!==null;)a(x),x=x.va;return this},xi.prototype.map=function(a){var x=this.ma;this.sa=x.Sa=null;var b=new Zi;for(x=x.ea;x!==null;)b.add(a(x)),x=x.va;return b.iterator},xi.prototype.filter=function(a){var x=this.ma;this.sa=x.Sa=null;var b=new Zi;for(x=x.ea;x!==null;)a(x)&&b.add(x),x=x.va;return b.iterator},xi.prototype.de=function(){this.value=this.key=null,this.qa=-1,this.ma.Sa=this},xi.prototype.toString=function(){return this.sa!==null?"MapIterator@"+this.sa:"MapIterator"},pn.Object.defineProperties(xi.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.ma.Sb}}}),xi.prototype.first=xi.prototype.first,xi.prototype.hasNext=xi.prototype.Ad,xi.prototype.next=xi.prototype.next,xi.prototype.reset=xi.prototype.reset,xi.className="MapIterator";function kn(a){$o(this),this._isFrozen=!1,this.Tb={},this.Sb=0,this.jf=this.Sa=null,this.Ja=0,this.kf=this.ea=null,typeof a=="string"&&hn("Error: Since 2.0 List/Map/Set constructors no longer take an argument that enforces type."),a!==void 0&&this.addAll(a)}We=kn.prototype,We.xb=function(){var a=this.Ja;a++,999999999<a&&(a=0),this.Ja=a},We.freeze=function(){return this._isFrozen=!0,this},We.ka=function(){return this._isFrozen=!1,this},We.toString=function(){return"Map()#"+Pl(this)},We.add=function(a,x){this._isFrozen&&Ar(this,a);var b=a;Ji(a)&&(b=dl(a));var te=this.Tb[b];return te===void 0?(this.Sb++,a=new Un(a,x),this.Tb[b]=a,b=this.kf,b===null?this.ea=a:(a.ll=b,b.va=a),this.kf=a,this.xb()):te.value=x,this},We.set=function(a,x){return this.add(a,x)},We.addAll=function(a){if(a===null)return this;if(Fo(a))for(var x=a.length,b=0;b<x;b++){var te=a[b];this.add(te.key,te.value)}else if(a instanceof kn)for(a=a.iterator;a.next();)this.add(a.key,a.value);else for(a=a.iterator;a.next();)x=a.value,this.add(x.key,x.value);return this},We.first=function(){return this.ea},kn.prototype.any=function(a){for(var x=this.ea;x!==null;){if(a(x))return!0;x=x.va}return!1},kn.prototype.all=function(a){for(var x=this.ea;x!==null;){if(!a(x))return!1;x=x.va}return!0},kn.prototype.each=function(a){for(var x=this.ea;x!==null;)a(x),x=x.va;return this},kn.prototype.map=function(a){for(var x=new kn,b=this.ea;b!==null;)x.add(b.key,a(b)),b=b.va;return x},kn.prototype.filter=function(a){for(var x=new kn,b=this.ea;b!==null;)a(b)&&x.add(b.key,b.value),b=b.va;return x},We=kn.prototype,We.contains=function(a){var x=a;return Ji(a)&&(x=Pl(a),x===void 0)?!1:this.Tb[x]!==void 0},We.has=function(a){return this.contains(a)},We.I=function(a){var x=a;return Ji(a)&&(x=Pl(a),x===void 0)?null:(a=this.Tb[x],a===void 0?null:a.value)},We.get=function(a){return this.I(a)},We.remove=function(a){if(a===null)return!1;this._isFrozen&&Ar(this,a);var x=a;if(Ji(a)&&(x=Pl(a),x===void 0)||(a=this.Tb[x],a===void 0))return!1;var b=a.va,te=a.ll;return b!==null&&(b.ll=te),te!==null&&(te.va=b),this.ea===a&&(this.ea=b),this.kf===a&&(this.kf=te),delete this.Tb[x],this.Sb--,this.xb(),!0},We.delete=function(a){return this.remove(a)},We.clear=function(){this._isFrozen&&Ar(this),this.Tb={},this.Sb=0,this.Sa!==null&&this.Sa.reset(),this.jf!==null&&this.jf.reset(),this.kf=this.ea=null,this.xb()},kn.prototype.copy=function(){var a=new kn,x=this.Tb,b;for(b in x){var te=x[b];a.add(te.key,te.value)}return a},kn.prototype.Fa=function(){var a=this.Tb,x=Array(this.Sb),b=0,te;for(te in a){var re=a[te];x[b]=new Un(re.key,re.value),b++}return x},kn.prototype.Lf=function(){return new jl(this)},pn.Object.defineProperties(kn.prototype,{count:{get:function(){return this.Sb}},size:{get:function(){return this.Sb}},iterator:{get:function(){if(0>=this.count)return wl;var a=this.Sa;return a!==null?(a.reset(),a):new xi(this)}},iteratorKeys:{get:function(){return 0>=this.count?wl:new pu(this)}},iteratorValues:{get:function(){if(0>=this.count)return wl;var a=this.jf;return a!==null?(a.reset(),a):new Vu(this)}}}),kn.prototype.toKeySet=kn.prototype.Lf,kn.prototype.toArray=kn.prototype.Fa,kn.prototype.clear=kn.prototype.clear,kn.prototype.delete=kn.prototype.delete,kn.prototype.remove=kn.prototype.remove,kn.prototype.get=kn.prototype.get,kn.prototype.getValue=kn.prototype.I,kn.prototype.has=kn.prototype.has,kn.prototype.contains=kn.prototype.contains,kn.prototype.first=kn.prototype.first,kn.prototype.addAll=kn.prototype.addAll,kn.prototype.set=kn.prototype.set,kn.prototype.add=kn.prototype.add,kn.prototype.thaw=kn.prototype.ka,kn.prototype.freeze=kn.prototype.freeze,kn.className="Map";function it(a,x){a===void 0?this.y=this.x=0:typeof a=="number"&&typeof x=="number"?(this.x=a,this.y=x):hn("Invalid arguments to Point constructor: "+a+", "+x),this._isFrozen=!1}var fr,xr,Rr,po,ko;it.prototype.assign=function(a){return this.x=a.x,this.y=a.y,this},it.prototype.h=function(a,x){return this.x=a,this.y=x,this},it.prototype.sg=function(a,x){return this.x=a,this.y=x,this},it.prototype.set=function(a){return this.x=a.x,this.y=a.y,this},it.prototype.copy=function(){var a=new it;return a.x=this.x,a.y=this.y,a},We=it.prototype,We.ja=function(){return this._isFrozen=!0,Object.freeze(this),this},We.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},We.freeze=function(){return this._isFrozen=!0,this},We.ka=function(){return Object.isFrozen(this)&&hn("cannot thaw constant: "+this),this._isFrozen=!1,this};function Bo(a){if(typeof a=="string"){a=a.split(" ");for(var x=0,b=0;a[x]==="";)x++;var te=a[x++];te&&(b=parseFloat(te));for(var re=0;a[x]==="";)x++;return(te=a[x++])&&(re=parseFloat(te)),new it(b,re)}return new it}function Bs(a){return a.x.toString()+" "+a.y.toString()}We.toString=function(){return"Point("+this.x+","+this.y+")"},We.D=function(a){return a instanceof it?this.x===a.x&&this.y===a.y:!1},We.hi=function(a,x){return this.x===a&&this.y===x},We.Xa=function(a){return _t.B(this.x,a.x)&&_t.B(this.y,a.y)},We.add=function(a){return this.x+=a.x,this.y+=a.y,this},We.re=function(a){return this.x-=a.x,this.y-=a.y,this},We.offset=function(a,x){return this.x+=a,this.y+=x,this},it.prototype.rotate=function(a){if(a===0)return this;var x=this.x,b=this.y;if(x===0&&b===0)return this;if(360<=a?a-=360:0>a&&(a+=360),a===90){a=0;var te=1}else a===180?(a=-1,te=0):a===270?(a=0,te=-1):(te=a*Math.PI/180,a=Math.cos(te),te=Math.sin(te));return this.x=a*x-te*b,this.y=te*x+a*b,this},We=it.prototype,We.scale=function(a,x){return this.x*=a,this.y*=x,this},We.Bf=function(a){var x=a.x-this.x;return a=a.y-this.y,x*x+a*a},We.zd=function(a,x){return a-=this.x,x-=this.y,a*a+x*x},We.normalize=function(){var a=this.x,x=this.y,b=Math.sqrt(a*a+x*x);return 0<b&&(this.x=a/b,this.y=x/b),this},We.ab=function(a){return Vo(a.x-this.x,a.y-this.y)},We.direction=function(a,x){return Vo(a-this.x,x-this.y)};function Vo(a,x){if(a===0)return 0<x?90:0>x?270:0;if(x===0)return 0<a?0:180;if(isNaN(a)||isNaN(x))return 0;var b=180*Math.atan(Math.abs(x/a))/Math.PI;return 0>a?b=0>x?b+180:180-b:0>x&&(b=360-b),b}We.Ry=function(a,x){return _t.Fl(a.x,a.y,x.x,x.y,this.x,this.y)},We.fA=function(a,x,b,te){return _t.qh(a,x,b,te,this.x,this.y,this),this},We.gA=function(a,x){return _t.qh(a.x,a.y,x.x,x.y,this.x,this.y,this),this},We.uA=function(a,x,b,te){return _t.No(this.x,this.y,a,x,b,te,this),this},We.vA=function(a,x){return _t.No(this.x,this.y,a.x,a.y,x.width,x.height,this),this},We.xi=function(a,x){return this.x=a.x+x.x*a.width+x.offsetX,this.y=a.y+x.y*a.height+x.offsetY,this},We.yi=function(a,x,b,te,re){return this.x=a+re.x*b+re.offsetX,this.y=x+re.y*te+re.offsetY,this},We.transform=function(a){return a.Ga(this),this};function Co(a,x){return x.Cd(a),a}function vo(a,x,b,te,re,oe){var le=re-b,fe=oe-te,ge=le*le+fe*fe;b-=a,te-=x;var ye=-b*le-te*fe;return 0>=ye||ye>=ge?(le=re-a,fe=oe-x,Math.min(b*b+te*te,le*le+fe*fe)):(a=le*te-fe*b,a*a/ge)}function fs(a,x,b,te){return a=b-a,x=te-x,a*a+x*x}function tt(a,x,b,te){return a=b-a,x=te-x,a===0?0<x?90:0>x?270:0:x===0?0<a?0:180:isNaN(a)||isNaN(x)?0:(te=180*Math.atan(Math.abs(x/a))/Math.PI,0>a?te=0>x?te+180:180-te:0>x&&(te=360-te),te)}We.w=function(){return isFinite(this.x)&&isFinite(this.y)},it.alloc=function(){var a=Xt.pop();return a===void 0?new it:a},it.allocAt=function(a,x){var b=Xt.pop();return b===void 0?new it(a,x):(b.x=a,b.y=x,b)},it.free=function(a){Xt.push(a)},it.prototype.isReal=it.prototype.w,it.prototype.setSpot=it.prototype.yi,it.prototype.setRectSpot=it.prototype.xi,it.prototype.snapToGridPoint=it.prototype.vA,it.prototype.snapToGrid=it.prototype.uA,it.prototype.projectOntoLineSegmentPoint=it.prototype.gA,it.prototype.projectOntoLineSegment=it.prototype.fA,it.intersectingLineSegments=function(a,x,b,te,re,oe,le,fe){return _t.Rl(a,x,b,te,re,oe,le,fe)},it.prototype.compareWithLineSegmentPoint=it.prototype.Ry,it.compareWithLineSegment=function(a,x,b,te,re,oe){return _t.Fl(a,x,b,te,re,oe)},it.prototype.direction=it.prototype.direction,it.prototype.directionPoint=it.prototype.ab,it.prototype.normalize=it.prototype.normalize,it.prototype.distanceSquared=it.prototype.zd,it.prototype.distanceSquaredPoint=it.prototype.Bf,it.prototype.scale=it.prototype.scale,it.prototype.rotate=it.prototype.rotate,it.prototype.offset=it.prototype.offset,it.prototype.subtract=it.prototype.re,it.prototype.add=it.prototype.add,it.prototype.equalsApprox=it.prototype.Xa,it.prototype.equalTo=it.prototype.hi,it.prototype.equals=it.prototype.D,it.prototype.set=it.prototype.set,it.prototype.setTo=it.prototype.sg;var Xt=[];it.className="Point",it.parse=Bo,it.stringify=Bs,it.distanceLineSegmentSquared=vo,it.distanceSquared=fs,it.direction=tt,it.Origin=fr=new it(0,0).ja(),it.InfiniteTopLeft=xr=new it(-1/0,-1/0).ja(),it.InfiniteBottomRight=Rr=new it(1/0,1/0).ja(),it.SixPoint=po=new it(6,6).ja(),it.NoPoint=ko=new it(NaN,NaN).ja(),it.parse=Bo,it.stringify=Bs,it.distanceLineSegmentSquared=vo,it.distanceSquared=fs,it.direction=tt;function Dt(a,x){a===void 0?this.height=this.width=0:typeof a=="number"&&(0<=a||isNaN(a))&&typeof x=="number"&&(0<=x||isNaN(x))?(this.width=a,this.height=x):hn("Invalid arguments to Size constructor: "+a+", "+x),this._isFrozen=!1}var Kt,sn,Vn,Qn,zn,Oi,Qi;Dt.prototype.assign=function(a){return this.width=a.width,this.height=a.height,this},Dt.prototype.h=function(a,x){return this.width=a,this.height=x,this},Dt.prototype.sg=function(a,x){return this.width=a,this.height=x,this},Dt.prototype.set=function(a){return this.width=a.width,this.height=a.height,this},Dt.prototype.copy=function(){var a=new Dt;return a.width=this.width,a.height=this.height,a},We=Dt.prototype,We.ja=function(){return this._isFrozen=!0,Object.freeze(this),this},We.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},We.freeze=function(){return this._isFrozen=!0,this},We.ka=function(){return Object.isFrozen(this)&&hn("cannot thaw constant: "+this),this._isFrozen=!1,this};function ri(a){if(typeof a=="string"){a=a.split(" ");for(var x=0,b=0;a[x]==="";)x++;var te=a[x++];te&&(b=parseFloat(te));for(var re=0;a[x]==="";)x++;return(te=a[x++])&&(re=parseFloat(te)),new Dt(b,re)}return new Dt}function cr(a){return a.width.toString()+" "+a.height.toString()}We.toString=function(){return"Size("+this.width+","+this.height+")"},We.D=function(a){return a instanceof Dt?this.width===a.width&&this.height===a.height:!1},We.hi=function(a,x){return this.width===a&&this.height===x},We.Xa=function(a){return _t.B(this.width,a.width)&&_t.B(this.height,a.height)},We.Bc=function(a,x){return a=this.width+a,this.width=0<=a?a:0,x=this.height+x,this.height=0<=x?x:0,this},We.w=function(){return isFinite(this.width)&&isFinite(this.height)},Dt.alloc=function(){var a=$r.pop();return a===void 0?new Dt:a},Dt.free=function(a){$r.push(a)},Dt.prototype.isReal=Dt.prototype.w,Dt.prototype.inflate=Dt.prototype.Bc,Dt.prototype.equalsApprox=Dt.prototype.Xa,Dt.prototype.equalTo=Dt.prototype.hi,Dt.prototype.equals=Dt.prototype.D,Dt.prototype.set=Dt.prototype.set,Dt.prototype.setTo=Dt.prototype.sg;var $r=[];Dt.className="Size",Dt.parse=ri,Dt.stringify=cr,Dt.ZeroSize=Kt=new Dt(0,0).ja(),Dt.OneSize=sn=new Dt(1,1).ja(),Dt.SixSize=Vn=new Dt(6,6).ja(),Dt.EightSize=Qn=new Dt(8,8).ja(),Dt.TenSize=zn=new Dt(10,10).ja(),Dt.InfiniteSize=Oi=new Dt(1/0,1/0).ja(),Dt.NoSize=Qi=new Dt(NaN,NaN).ja(),Dt.parse=ri,Dt.stringify=cr;function Yt(a,x,b,te){a===void 0?this.height=this.width=this.y=this.x=0:typeof a=="number"&&typeof x=="number"&&typeof b=="number"&&(0<=b||isNaN(b))&&typeof te=="number"&&(0<=te||isNaN(te))?(this.x=a,this.y=x,this.width=b,this.height=te):a instanceof it?(b=a.x,a=a.y,x instanceof it?(te=x.x,x=x.y,this.x=Math.min(b,te),this.y=Math.min(a,x),this.width=Math.abs(b-te),this.height=Math.abs(a-x)):x instanceof Dt?(this.x=b,this.y=a,this.width=x.width,this.height=x.height):hn("Incorrect second argument supplied to Rect constructor "+x)):hn("Invalid arguments to Rect constructor: "+a+", "+x+", "+b+", "+te),this._isFrozen=!1}We=Yt.prototype,We.assign=function(a){return this.x=a.x,this.y=a.y,this.width=a.width,this.height=a.height,this},We.h=function(a,x,b,te){return this.x=a,this.y=x,this.width=b,this.height=te,this};function er(a,x,b){a.width=x,a.height=b}We.sg=function(a,x,b,te){return this.x=a,this.y=x,this.width=b,this.height=te,this},We.set=function(a){return this.x=a.x,this.y=a.y,this.width=a.width,this.height=a.height,this},We.dd=function(a){return this.x=a.x,this.y=a.y,this},We.tA=function(a){return this.width=a.width,this.height=a.height,this},Yt.prototype.copy=function(){var a=new Yt;return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},We=Yt.prototype,We.ja=function(){return this._isFrozen=!0,Object.freeze(this),this},We.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},We.freeze=function(){return this._isFrozen=!0,this},We.ka=function(){return Object.isFrozen(this)&&hn("cannot thaw constant: "+this),this._isFrozen=!1,this};function sr(a){if(typeof a=="string"){a=a.split(" ");for(var x=0,b=0;a[x]==="";)x++;var te=a[x++];te&&(b=parseFloat(te));for(var re=0;a[x]==="";)x++;(te=a[x++])&&(re=parseFloat(te));for(var oe=0;a[x]==="";)x++;(te=a[x++])&&(oe=parseFloat(te));for(var le=0;a[x]==="";)x++;return(te=a[x++])&&(le=parseFloat(te)),new Yt(b,re,oe,le)}return new Yt}function Ki(a){return a.x.toString()+" "+a.y.toString()+" "+a.width.toString()+" "+a.height.toString()}We.toString=function(){return"Rect("+this.x+","+this.y+","+this.width+","+this.height+")"},We.D=function(a){return a instanceof Yt?this.x===a.x&&this.y===a.y&&this.width===a.width&&this.height===a.height:!1},We.hi=function(a,x,b,te){return this.x===a&&this.y===x&&this.width===b&&this.height===te},We.Xa=function(a){return _t.B(this.x,a.x)&&_t.B(this.y,a.y)&&_t.B(this.width,a.width)&&_t.B(this.height,a.height)};function lr(a,x){return _t.$(a.x,x.x)&&_t.$(a.y,x.y)&&_t.$(a.width,x.width)&&_t.$(a.height,x.height)}We.ca=function(a){return this.x<=a.x&&this.x+this.width>=a.x&&this.y<=a.y&&this.y+this.height>=a.y},We.Re=function(a){return this.x<=a.x&&a.x+a.width<=this.x+this.width&&this.y<=a.y&&a.y+a.height<=this.y+this.height},We.contains=function(a,x,b,te){return b===void 0&&(b=0),te===void 0&&(te=0),this.x<=a&&a+b<=this.x+this.width&&this.y<=x&&x+te<=this.y+this.height},We.offset=function(a,x){return this.x+=a,this.y+=x,this},We.Bc=function(a,x){return vr(this,x,a,x,a)},We.Co=function(a){return vr(this,a.top,a.right,a.bottom,a.left)},We.Fv=function(a){return vr(this,-a.top,-a.right,-a.bottom,-a.left)},We.Hz=function(a,x,b,te){return vr(this,a,x,b,te)};function vr(a,x,b,te,re){var oe=a.width;return b+re<=-oe?(a.x+=oe/2,a.width=0):(a.x-=re,a.width+=b+re),b=a.height,x+te<=-b?(a.y+=b/2,a.height=0):(a.y-=x,a.height+=x+te),a}We.Ex=function(a){return Qr(this,a.x,a.y,a.width,a.height)},We.Uu=function(a,x,b,te){return Qr(this,a,x,b,te)};function Qr(a,x,b,te,re){var oe=Math.max(a.x,x),le=Math.max(a.y,b);return x=Math.min(a.x+a.width,x+te),b=Math.min(a.y+a.height,b+re),a.x=oe,a.y=le,a.width=Math.max(0,x-oe),a.height=Math.max(0,b-le),a}We.Yc=function(a){return this.Vu(a.x,a.y,a.width,a.height)},We.Vu=function(a,x,b,te){var re=this.width,oe=this.x;return re!==1/0&&b!==1/0&&(re+=oe,b+=a,isNaN(b)||isNaN(re)||oe>b||a>re)?!1:(a=this.height,b=this.y,!(a!==1/0&&te!==1/0&&(a+=b,te+=x,isNaN(te)||isNaN(a)||b>te||x>a)))};function Mr(a,x){var b=a.width,te=a.x,re=x.x-10;return te>x.width+10+10+re||re>b+te?!1:(b=a.height,a=a.y,te=x.y-10,!(a>x.height+10+10+te||te>b+a))}We.Ye=function(a){return Hr(this,a.x,a.y,0,0)},We.ed=function(a){return Hr(this,a.x,a.y,a.width,a.height)},We.Kv=function(a,x,b,te){return b===void 0&&(b=0),te===void 0&&(te=0),Hr(this,a,x,b,te)};function Hr(a,x,b,te,re){var oe=Math.min(a.x,x),le=Math.min(a.y,b);return x=Math.max(a.x+a.width,x+te),b=Math.max(a.y+a.height,b+re),a.x=oe,a.y=le,a.width=x-oe,a.height=b-le,a}We.yi=function(a,x,b){return this.x=a-b.offsetX-b.x*this.width,this.y=x-b.offsetY-b.y*this.height,this};function Zr(a,x,b,te,re,oe,le,fe){return le===void 0&&(le=0),fe===void 0&&(fe=0),a<=re&&re+le<=a+b&&x<=oe&&oe+fe<=x+te}function mi(a,x,b,te,re,oe,le,fe){return a>le+re||re>b+a?!1:!(x>fe+oe||oe>te+x)}We.w=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},We.Mz=function(){return this.width===0&&this.height===0},Yt.alloc=function(){var a=js.pop();return a===void 0?new Yt:a},Yt.allocAt=function(a,x,b,te){var re=js.pop();return re===void 0?new Yt(a,x,b,te):re.h(a,x,b,te)},Yt.free=function(a){js.push(a)},pn.Object.defineProperties(Yt.prototype,{left:{get:function(){return this.x},set:function(a){this.x=a}},top:{get:function(){return this.y},set:function(a){this.y=a}},right:{get:function(){return this.x+this.width},set:function(a){this.x+=a-(this.x+this.width)}},bottom:{get:function(){return this.y+this.height},set:function(a){this.y+=a-(this.y+this.height)}},position:{get:function(){return new it(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}},size:{get:function(){return new Dt(this.width,this.height)},set:function(a){this.width=a.width,this.height=a.height}},center:{get:function(){return new it(this.x+this.width/2,this.y+this.height/2)},set:function(a){this.x=a.x-this.width/2,this.y=a.y-this.height/2}},centerX:{get:function(){return this.x+this.width/2},set:function(a){this.x=a-this.width/2}},centerY:{get:function(){return this.y+this.height/2},set:function(a){this.y=a-this.height/2}}}),Yt.prototype.isEmpty=Yt.prototype.Mz,Yt.prototype.isReal=Yt.prototype.w,Yt.intersectsLineSegment=function(a,x,b,te,re,oe,le,fe){return _t.Fx(a,x,b,te,re,oe,le,fe)},Yt.prototype.setSpot=Yt.prototype.yi,Yt.prototype.union=Yt.prototype.Kv,Yt.prototype.unionRect=Yt.prototype.ed,Yt.prototype.unionPoint=Yt.prototype.Ye,Yt.prototype.intersects=Yt.prototype.Vu,Yt.prototype.intersectsRect=Yt.prototype.Yc,Yt.prototype.intersect=Yt.prototype.Uu,Yt.prototype.intersectRect=Yt.prototype.Ex,Yt.prototype.grow=Yt.prototype.Hz,Yt.prototype.subtractMargin=Yt.prototype.Fv,Yt.prototype.addMargin=Yt.prototype.Co,Yt.prototype.inflate=Yt.prototype.Bc,Yt.prototype.offset=Yt.prototype.offset,Yt.prototype.contains=Yt.prototype.contains,Yt.prototype.containsRect=Yt.prototype.Re,Yt.prototype.containsPoint=Yt.prototype.ca,Yt.prototype.equalsApprox=Yt.prototype.Xa,Yt.prototype.equalTo=Yt.prototype.hi,Yt.prototype.equals=Yt.prototype.D,Yt.prototype.setSize=Yt.prototype.tA,Yt.prototype.setPoint=Yt.prototype.dd,Yt.prototype.set=Yt.prototype.set,Yt.prototype.setTo=Yt.prototype.sg;var cs=null,Hs=null,js=[];Yt.className="Rect",Yt.parse=sr,Yt.stringify=Ki,Yt.contains=Zr,Yt.intersects=mi,Yt.ZeroRect=cs=new Yt(0,0,0,0).ja(),Yt.NoRect=Hs=new Yt(NaN,NaN,NaN,NaN).ja(),Yt.parse=sr,Yt.stringify=Ki,Yt.contains=Zr,Yt.intersects=mi;function yr(a,x,b,te){a===void 0?this.left=this.bottom=this.right=this.top=0:x===void 0?this.left=this.bottom=this.right=this.top=a:b===void 0?(this.top=a,this.right=x,this.bottom=a,this.left=x):te!==void 0?(this.top=a,this.right=x,this.bottom=b,this.left=te):hn("Invalid arguments to Margin constructor: "+a+", "+x+", "+b+", "+te),this._isFrozen=!1}yr.prototype.assign=function(a){return this.top=a.top,this.right=a.right,this.bottom=a.bottom,this.left=a.left,this},yr.prototype.sg=function(a,x,b,te){return this.top=a,this.right=x,this.bottom=b,this.left=te,this},yr.prototype.set=function(a){return this.top=a.top,this.right=a.right,this.bottom=a.bottom,this.left=a.left,this},yr.prototype.copy=function(){var a=new yr;return a.top=this.top,a.right=this.right,a.bottom=this.bottom,a.left=this.left,a},We=yr.prototype,We.ja=function(){return this._isFrozen=!0,Object.freeze(this),this},We.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},We.freeze=function(){return this._isFrozen=!0,this},We.ka=function(){return Object.isFrozen(this)&&hn("cannot thaw constant: "+this),this._isFrozen=!1,this};function yo(a){if(typeof a=="string"){a=a.split(" ");for(var x=0,b=NaN;a[x]==="";)x++;var te=a[x++];if(te&&(b=parseFloat(te)),isNaN(b))return new yr;for(var re=NaN;a[x]==="";)x++;if((te=a[x++])&&(re=parseFloat(te)),isNaN(re))return new yr(b);for(var oe=NaN;a[x]==="";)x++;if((te=a[x++])&&(oe=parseFloat(te)),isNaN(oe))return new yr(b,re);for(var le=NaN;a[x]==="";)x++;return(te=a[x++])&&(le=parseFloat(te)),isNaN(le)?new yr(b,re):new yr(b,re,oe,le)}return new yr}function es(a){return a.top.toString()+" "+a.right.toString()+" "+a.bottom.toString()+" "+a.left.toString()}We.toString=function(){return"Margin("+this.top+","+this.right+","+this.bottom+","+this.left+")"},We.D=function(a){return a instanceof yr?this.top===a.top&&this.right===a.right&&this.bottom===a.bottom&&this.left===a.left:!1},We.hi=function(a,x,b,te){return this.top===a&&this.right===x&&this.bottom===b&&this.left===te},We.Xa=function(a){return _t.B(this.top,a.top)&&_t.B(this.right,a.right)&&_t.B(this.bottom,a.bottom)&&_t.B(this.left,a.left)},We.w=function(){return isFinite(this.top)&&isFinite(this.right)&&isFinite(this.bottom)&&isFinite(this.left)},yr.alloc=function(){var a=Ls.pop();return a===void 0?new yr:a},yr.free=function(a){Ls.push(a)},yr.prototype.isReal=yr.prototype.w,yr.prototype.equalsApprox=yr.prototype.Xa,yr.prototype.equalTo=yr.prototype.hi,yr.prototype.equals=yr.prototype.D,yr.prototype.set=yr.prototype.set,yr.prototype.setTo=yr.prototype.sg;var Ts=null,Zs=null,Ls=[];yr.className="Margin",yr.parse=yo,yr.stringify=es,yr.ZeroMargin=Ts=new yr(0,0,0,0).ja(),yr.TwoMargin=Zs=new yr(2,2,2,2).ja(),yr.parse=yo,yr.stringify=es;function Ii(a,x,b,te){a===void 0?this.offsetY=this.offsetX=this.y=this.x=0:(x===void 0&&(x=0),b===void 0&&(b=0),te===void 0&&(te=0),this.x=a,this.y=x,this.offsetX=b,this.offsetY=te),this._isFrozen=!1}var Cs,Is,Pa,Gs,qo,eo,bs,Ta,Ms,ws,Ra,Aa,ga,ol,fl,gu,Ys,Cu,Wo,Zu,Ml,au,Cl,ll,El,Bl,Xu,Dc,eu,Yc,Tl,pl,el,ru,bl,mu;Ii.prototype.assign=function(a){return this.x=a.x,this.y=a.y,this.offsetX=a.offsetX,this.offsetY=a.offsetY,this},Ii.prototype.sg=function(a,x,b,te){return this.x=a,this.y=x,this.offsetX=b,this.offsetY=te,this},Ii.prototype.set=function(a){return this.x=a.x,this.y=a.y,this.offsetX=a.offsetX,this.offsetY=a.offsetY,this},Ii.prototype.copy=function(){var a=new Ii;return a.x=this.x,a.y=this.y,a.offsetX=this.offsetX,a.offsetY=this.offsetY,a},We=Ii.prototype,We.ja=function(){return this._isFrozen=!0,Object.freeze(this),this},We.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},We.freeze=function(){return this._isFrozen=!0,this},We.ka=function(){return Object.isFrozen(this)&&hn("cannot thaw constant: "+this),this._isFrozen=!1,this};function hs(a,x){return a.x=NaN,a.y=NaN,a.offsetX=x,a}function ps(a){if(typeof a=="string"){if(a=a.trim(),a==="None")return Cs;if(a==="TopLeft")return Is;if(a==="Top"||a==="TopCenter"||a==="MiddleTop")return Pa;if(a==="TopRight")return Gs;if(a==="Left"||a==="LeftCenter"||a==="MiddleLeft")return qo;if(a==="Center")return eo;if(a==="Right"||a==="RightCenter"||a==="MiddleRight")return bs;if(a==="BottomLeft")return Ta;if(a==="Bottom"||a==="BottomCenter"||a==="MiddleBottom")return Ms;if(a==="BottomRight")return ws;if(a==="TopSide")return Ra;if(a==="LeftSide")return Aa;if(a==="RightSide")return ga;if(a==="BottomSide")return ol;if(a==="TopBottomSides")return fl;if(a==="LeftRightSides")return gu;if(a==="TopLeftSides")return Ys;if(a==="TopRightSides")return Cu;if(a==="BottomLeftSides")return Wo;if(a==="BottomRightSides")return Zu;if(a==="NotTopSide")return Ml;if(a==="NotLeftSide")return au;if(a==="NotRightSide")return Cl;if(a==="NotBottomSide")return ll;if(a==="AllSides")return El;if(a==="Default")return Bl;a=a.split(" ");for(var x=0,b=0;a[x]==="";)x++;var te=a[x++];te!==void 0&&0<te.length&&(b=parseFloat(te));for(var re=0;a[x]==="";)x++;te=a[x++],te!==void 0&&0<te.length&&(re=parseFloat(te));for(var oe=0;a[x]==="";)x++;te=a[x++],te!==void 0&&0<te.length&&(oe=parseFloat(te));for(var le=0;a[x]==="";)x++;return te=a[x++],te!==void 0&&0<te.length&&(le=parseFloat(te)),new Ii(b,re,oe,le)}return new Ii}function kl(a){return a.sb()?a.x.toString()+" "+a.y.toString()+" "+a.offsetX.toString()+" "+a.offsetY.toString():a.toString()}We.toString=function(){return this.sb()?this.offsetX===0&&this.offsetY===0?"Spot("+this.x+","+this.y+")":"Spot("+this.x+","+this.y+","+this.offsetX+","+this.offsetY+")":this.D(Cs)?"None":this.D(Is)?"TopLeft":this.D(Pa)?"Top":this.D(Gs)?"TopRight":this.D(qo)?"Left":this.D(eo)?"Center":this.D(bs)?"Right":this.D(Ta)?"BottomLeft":this.D(Ms)?"Bottom":this.D(ws)?"BottomRight":this.D(Ra)?"TopSide":this.D(Aa)?"LeftSide":this.D(ga)?"RightSide":this.D(ol)?"BottomSide":this.D(fl)?"TopBottomSides":this.D(gu)?"LeftRightSides":this.D(Ys)?"TopLeftSides":this.D(Cu)?"TopRightSides":this.D(Wo)?"BottomLeftSides":this.D(Zu)?"BottomRightSides":this.D(Ml)?"NotTopSide":this.D(au)?"NotLeftSide":this.D(Cl)?"NotRightSide":this.D(ll)?"NotBottomSide":this.D(El)?"AllSides":this.D(Bl)?"Default":"None"},We.D=function(a){return a instanceof Ii?(this.x===a.x||isNaN(this.x)&&isNaN(a.x))&&(this.y===a.y||isNaN(this.y)&&isNaN(a.y))&&this.offsetX===a.offsetX&&this.offsetY===a.offsetY:!1},We.gv=function(){return new Ii(.5-(this.x-.5),.5-(this.y-.5),-this.offsetX,-this.offsetY)},We.Hf=function(a){if(!this.$c())return!1;if(!a.$c())if(a.D(Xu))a=Aa;else if(a.D(Dc))a=ga;else if(a.D(eu))a=Ra;else if(a.D(Yc))a=ol;else return!1;return a=a.offsetY,(this.offsetY&a)===a},We.sb=function(){return!isNaN(this.x)&&!isNaN(this.y)},We.Mc=function(){return isNaN(this.x)||isNaN(this.y)},We.$c=function(){return isNaN(this.x)&&isNaN(this.y)&&this.offsetX===1&&this.offsetY!==0},We.ys=function(){return isNaN(this.x)&&isNaN(this.y)&&this.offsetX===0&&this.offsetY===0},We.Xb=function(){return isNaN(this.x)&&isNaN(this.y)&&this.offsetX===-1&&this.offsetY===0},Ii.alloc=function(){var a=Vs.pop();return a===void 0?new Ii:a},Ii.free=function(a){Vs.push(a)},Ii.prototype.isDefault=Ii.prototype.Xb,Ii.prototype.isNone=Ii.prototype.ys,Ii.prototype.isSide=Ii.prototype.$c,Ii.prototype.isNoSpot=Ii.prototype.Mc,Ii.prototype.isSpot=Ii.prototype.sb,Ii.prototype.includesSide=Ii.prototype.Hf,Ii.prototype.opposite=Ii.prototype.gv,Ii.prototype.equals=Ii.prototype.D,Ii.prototype.set=Ii.prototype.set,Ii.prototype.setTo=Ii.prototype.sg;var Vs=[];Ii.className="Spot",Ii.parse=ps,Ii.stringify=kl,Ii.None=Cs=hs(new Ii(0,0,0,0),0).ja(),Ii.Default=Bl=hs(new Ii(0,0,-1,0),-1).ja(),Ii.TopLeft=Is=new Ii(0,0,0,0).ja(),Ii.TopCenter=Pa=new Ii(.5,0,0,0).ja(),Ii.TopRight=Gs=new Ii(1,0,0,0).ja(),Ii.LeftCenter=qo=new Ii(0,.5,0,0).ja(),Ii.Center=eo=new Ii(.5,.5,0,0).ja(),Ii.RightCenter=bs=new Ii(1,.5,0,0).ja(),Ii.BottomLeft=Ta=new Ii(0,1,0,0).ja(),Ii.BottomCenter=Ms=new Ii(.5,1,0,0).ja(),Ii.BottomRight=ws=new Ii(1,1,0,0).ja(),Ii.MiddleTop=Tl=Pa,Ii.MiddleLeft=pl=qo,Ii.MiddleRight=el=bs,Ii.MiddleBottom=ru=Ms,Ii.Top=eu=Pa,Ii.Left=Xu=qo,Ii.Right=Dc=bs,Ii.Bottom=Yc=Ms,Ii.TopSide=Ra=hs(new Ii(0,0,1,1),1).ja(),Ii.LeftSide=Aa=hs(new Ii(0,0,1,2),1).ja(),Ii.RightSide=ga=hs(new Ii(0,0,1,4),1).ja(),Ii.BottomSide=ol=hs(new Ii(0,0,1,8),1).ja(),Ii.TopBottomSides=fl=hs(new Ii(0,0,1,9),1).ja(),Ii.LeftRightSides=gu=hs(new Ii(0,0,1,6),1).ja(),Ii.TopLeftSides=Ys=hs(new Ii(0,0,1,3),1).ja(),Ii.TopRightSides=Cu=hs(new Ii(0,0,1,5),1).ja(),Ii.BottomLeftSides=Wo=hs(new Ii(0,0,1,10),1).ja(),Ii.BottomRightSides=Zu=hs(new Ii(0,0,1,12),1).ja(),Ii.NotTopSide=Ml=hs(new Ii(0,0,1,14),1).ja(),Ii.NotLeftSide=au=hs(new Ii(0,0,1,13),1).ja(),Ii.NotRightSide=Cl=hs(new Ii(0,0,1,11),1).ja(),Ii.NotBottomSide=ll=hs(new Ii(0,0,1,7),1).ja(),Ii.AllSides=El=hs(new Ii(0,0,1,15),1).ja(),bl=new Ii(.156,.156).ja(),mu=new Ii(.844,.844).ja(),Ii.parse=ps,Ii.stringify=kl;function Br(){this.m11=1,this.m21=this.m12=0,this.m22=1,this.dy=this.dx=0}Br.prototype.set=function(a){return this.m11=a.m11,this.m12=a.m12,this.m21=a.m21,this.m22=a.m22,this.dx=a.dx,this.dy=a.dy,this},Br.prototype.setTransform=function(a,x,b,te,re,oe){return this.m11=a,this.m12=x,this.m21=b,this.m22=te,this.dx=re,this.dy=oe,this},Br.prototype.copy=function(){var a=new Br;return a.m11=this.m11,a.m12=this.m12,a.m21=this.m21,a.m22=this.m22,a.dx=this.dx,a.dy=this.dy,a},Br.prototype.toString=function(){return"Transform("+this.m11+","+this.m12+","+this.m21+","+this.m22+","+this.dx+","+this.dy+")"},Br.prototype.D=function(a){return this.m11===a.m11&&this.m12===a.m12&&this.m21===a.m21&&this.m22===a.m22&&this.dx===a.dx&&this.dy===a.dy},Br.prototype.ws=function(){return this.dx===0&&this.dy===0&&this.m11===1&&this.m12===0&&this.m21===0&&this.m22===1},Br.prototype.reset=function(){return this.m11=1,this.m21=this.m12=0,this.m22=1,this.dy=this.dx=0,this},Br.prototype.multiply=function(a){var x=this.m11*a.m11+this.m21*a.m12,b=this.m12*a.m11+this.m22*a.m12,te=this.m11*a.m21+this.m21*a.m22,re=this.m12*a.m21+this.m22*a.m22;return this.dx=this.m11*a.dx+this.m21*a.dy+this.dx,this.dy=this.m12*a.dx+this.m22*a.dy+this.dy,this.m11=x,this.m12=b,this.m21=te,this.m22=re,this},Br.prototype.bv=function(a){var x=1/(a.m11*a.m22-a.m12*a.m21),b=a.m22*x,te=-a.m12*x,re=-a.m21*x,oe=a.m11*x,le=x*(a.m21*a.dy-a.m22*a.dx);return a=x*(a.m12*a.dx-a.m11*a.dy),x=this.m11*b+this.m21*te,b=this.m12*b+this.m22*te,te=this.m11*re+this.m21*oe,re=this.m12*re+this.m22*oe,this.dx=this.m11*le+this.m21*a+this.dx,this.dy=this.m12*le+this.m22*a+this.dy,this.m11=x,this.m12=b,this.m21=te,this.m22=re,this},Br.prototype.Vj=function(){var a=1/(this.m11*this.m22-this.m12*this.m21),x=-this.m12*a,b=-this.m21*a,te=this.m11*a,re=a*(this.m21*this.dy-this.m22*this.dx),oe=a*(this.m12*this.dx-this.m11*this.dy);return this.m11=this.m22*a,this.m12=x,this.m21=b,this.m22=te,this.dx=re,this.dy=oe,this},Br.prototype.rotate=function(a,x,b){if(360<=a?a-=360:0>a&&(a+=360),a===0)return this;if(this.translate(x,b),a===90){a=0;var te=1}else a===180?(a=-1,te=0):a===270?(a=0,te=-1):(te=a*Math.PI/180,a=Math.cos(te),te=Math.sin(te));var re=this.m12*a+this.m22*te,oe=this.m11*-te+this.m21*a,le=this.m12*-te+this.m22*a;return this.m11=this.m11*a+this.m21*te,this.m12=re,this.m21=oe,this.m22=le,this.translate(-x,-b),this},We=Br.prototype,We.translate=function(a,x){return this.dx+=this.m11*a+this.m21*x,this.dy+=this.m12*a+this.m22*x,this},We.scale=function(a,x){return x===void 0&&(x=a),this.m11*=a,this.m12*=a,this.m21*=x,this.m22*=x,this},We.Ga=function(a){var x=a.x,b=a.y;return a.h(x*this.m11+b*this.m21+this.dx,x*this.m12+b*this.m22+this.dy)},We.Cd=function(a){var x=1/(this.m11*this.m22-this.m12*this.m21),b=a.x,te=a.y;return a.h(b*this.m22*x+te*-this.m21*x+x*(this.m21*this.dy-this.m22*this.dx),b*-this.m12*x+te*this.m11*x+x*(this.m12*this.dx-this.m11*this.dy))},We.Eu=function(a){var x=1/(this.m11*this.m22-this.m12*this.m21),b=1.25*a.x,te=1.2*a.y;return a.h(b*this.m22*x+te*-this.m21*x+x*(this.m21*this.dy-this.m22*this.dx),b*-this.m12*x+te*this.m11*x+x*(this.m12*this.dx-this.m11*this.dy))},We.pp=function(a){var x=a.x,b=a.y,te=x+a.width,re=b+a.height,oe=this.m11,le=this.m12,fe=this.m21,ge=this.m22,ye=this.dx,we=this.dy,be=x*oe+b*fe+ye,ke=x*le+b*ge+we,Ue=te*oe+b*fe+ye,Ve=te*le+b*ge+we;return b=x*oe+re*fe+ye,x=x*le+re*ge+we,oe=te*oe+re*fe+ye,te=te*le+re*ge+we,re=Math.min(be,Ue),be=Math.max(be,Ue),Ue=Math.min(ke,Ve),ke=Math.max(ke,Ve),re=Math.min(re,b),be=Math.max(be,b),Ue=Math.min(Ue,x),ke=Math.max(ke,x),re=Math.min(re,oe),be=Math.max(be,oe),Ue=Math.min(Ue,te),ke=Math.max(ke,te),a.h(re,Ue,be-re,ke-Ue),a},Br.alloc=function(){var a=Iu.pop();return a===void 0?new Br:a},Br.free=function(a){Iu.push(a)},Br.prototype.transformRect=Br.prototype.pp,Br.prototype.transformPoint=Br.prototype.Ga,Br.prototype.scale=Br.prototype.scale,Br.prototype.translate=Br.prototype.translate,Br.prototype.rotate=Br.prototype.rotate,Br.prototype.invert=Br.prototype.Vj,Br.prototype.multiplyInverted=Br.prototype.bv,Br.prototype.multiply=Br.prototype.multiply,Br.prototype.reset=Br.prototype.reset,Br.prototype.isIdentity=Br.prototype.ws,Br.prototype.equals=Br.prototype.D,Br.prototype.setTransform=Br.prototype.setTransform,Br.prototype.set=Br.prototype.set;var Iu=[];Br.className="Transform",Br.xF="54a702f3e53909c447824c6706603faf4c";var _t={AA:"7da71ca0ad381e90",wg:(Math.sqrt(2)-1)/3*4,Uv:null,sqrt:function(a){if(0>=a)return 0;var x=_t.Uv;if(x===null){x=[];for(var b=0;2e3>=b;b++)x[b]=Math.sqrt(b);_t.Uv=x}return 1>a?(b=1/a,2e3>=b?1/x[b|0]:Math.sqrt(a)):2e3>=a?x[a|0]:Math.sqrt(a)},B:function(a,x){return a-=x,.5>a&&-.5<a},$:function(a,x){return a-=x,5e-8>a&&-5e-8<a},Yb:function(a,x,b,te,re,oe,le){if(0>=re&&(re=1e-6),a<b)var fe=a,ge=b;else fe=b,ge=a;if(x<te)var ye=x,we=te;else ye=te,we=x;if(a===b)return ye<=le&&le<=we&&a-re<=oe&&oe<=a+re;if(x===te)return fe<=oe&&oe<=ge&&x-re<=le&&le<=x+re;if(ge+=re,fe-=re,fe<=oe&&oe<=ge&&(we+=re,ye-=re,ye<=le&&le<=we))if(ge-fe>we-ye)if(a-b>re||b-a>re){if(oe=(te-x)/(b-a)*(oe-a)+x,oe-re<=le&&le<=oe+re)return!0}else return!0;else if(x-te>re||te-x>re){if(le=(b-a)/(te-x)*(le-x)+a,le-re<=oe&&oe<=le+re)return!0}else return!0;return!1},cs:function(a,x,b,te,re,oe,le,fe,ge,ye,we,be){if(_t.Yb(a,x,le,fe,be,b,te)&&_t.Yb(a,x,le,fe,be,re,oe))return _t.Yb(a,x,le,fe,be,ye,we);var ke=(a+b)/2,Ue=(x+te)/2,Ve=(b+re)/2,Ke=(te+oe)/2;re=(re+le)/2,oe=(oe+fe)/2,te=(ke+Ve)/2,b=(Ue+Ke)/2,Ve=(Ve+re)/2,Ke=(Ke+oe)/2;var Pt=(te+Ve)/2,ft=(b+Ke)/2;return _t.cs(a,x,ke,Ue,te,b,Pt,ft,ge,ye,we,be)||_t.cs(Pt,ft,Ve,Ke,re,oe,le,fe,ge,ye,we,be)},ax:function(a,x,b,te,re,oe,le,fe,ge){var ye=(b+re)/2,we=(te+oe)/2;return ge.h((((a+b)/2+ye)/2+(ye+(re+le)/2)/2)/2,(((x+te)/2+we)/2+(we+(oe+fe)/2)/2)/2),ge},My:function(a,x,b,te,re,oe,le,fe){var ge=(b+re)/2,ye=(te+oe)/2;return tt(((a+b)/2+ge)/2,((x+te)/2+ye)/2,(ge+(re+le)/2)/2,(ye+(oe+fe)/2)/2)},Dl:function(a,x,b,te,re,oe,le,fe,ge,ye){if(_t.Yb(a,x,le,fe,ge,b,te)&&_t.Yb(a,x,le,fe,ge,re,oe))Hr(ye,a,x,0,0),Hr(ye,le,fe,0,0);else{var we=(a+b)/2,be=(x+te)/2,ke=(b+re)/2,Ue=(te+oe)/2;re=(re+le)/2,oe=(oe+fe)/2,te=(we+ke)/2,b=(be+Ue)/2,ke=(ke+re)/2,Ue=(Ue+oe)/2;var Ve=(te+ke)/2,Ke=(b+Ue)/2;_t.Dl(a,x,we,be,te,b,Ve,Ke,ge,ye),_t.Dl(Ve,Ke,ke,Ue,re,oe,le,fe,ge,ye)}return ye},Qe:function(a,x,b,te,re,oe,le,fe,ge,ye){if(_t.Yb(a,x,le,fe,ge,b,te)&&_t.Yb(a,x,le,fe,ge,re,oe))ye.length===0&&(ye.push(a),ye.push(x)),ye.push(le),ye.push(fe);else{var we=(a+b)/2,be=(x+te)/2,ke=(b+re)/2,Ue=(te+oe)/2;re=(re+le)/2,oe=(oe+fe)/2,te=(we+ke)/2,b=(be+Ue)/2,ke=(ke+re)/2,Ue=(Ue+oe)/2;var Ve=(te+ke)/2,Ke=(b+Ue)/2;_t.Qe(a,x,we,be,te,b,Ve,Ke,ge,ye),_t.Qe(Ve,Ke,ke,Ue,re,oe,le,fe,ge,ye)}return ye},jv:function(a,x,b,te,re,oe,le,fe,ge,ye){if(_t.Yb(a,x,re,oe,ye,b,te))return _t.Yb(a,x,re,oe,ye,fe,ge);var we=(a+b)/2,be=(x+te)/2;b=(b+re)/2,te=(te+oe)/2;var ke=(we+b)/2,Ue=(be+te)/2;return _t.jv(a,x,we,be,ke,Ue,le,fe,ge,ye)||_t.jv(ke,Ue,b,te,re,oe,le,fe,ge,ye)},OA:function(a,x,b,te,re,oe,le){return le.h(((a+b)/2+(b+re)/2)/2,((x+te)/2+(te+oe)/2)/2),le},iv:function(a,x,b,te,re,oe,le,fe){if(_t.Yb(a,x,re,oe,le,b,te))Hr(fe,a,x,0,0),Hr(fe,re,oe,0,0);else{var ge=(a+b)/2,ye=(x+te)/2;b=(b+re)/2,te=(te+oe)/2;var we=(ge+b)/2,be=(ye+te)/2;_t.iv(a,x,ge,ye,we,be,le,fe),_t.iv(we,be,b,te,re,oe,le,fe)}return fe},ep:function(a,x,b,te,re,oe,le,fe){if(_t.Yb(a,x,re,oe,le,b,te))fe.length===0&&(fe.push(a),fe.push(x)),fe.push(re),fe.push(oe);else{var ge=(a+b)/2,ye=(x+te)/2;b=(b+re)/2,te=(te+oe)/2;var we=(ge+b)/2,be=(ye+te)/2;_t.ep(a,x,ge,ye,we,be,le,fe),_t.ep(we,be,b,te,re,oe,le,fe)}return fe},Eo:function(a,x,b,te,re,oe,le,fe,ge,ye,we,be,ke,Ue){if(_t.Yb(a,x,le,fe,ke,b,te)&&_t.Yb(a,x,le,fe,ke,re,oe))return!_t.Rl(a,x,le,fe,ge,ye,we,be)||(ke=(a-le)*(ye-be)-(x-fe)*(ge-we),ke===0)?!1:(Ue.h(((a*fe-x*le)*(ge-we)-(a-le)*(ge*be-ye*we))/ke,((a*fe-x*le)*(ye-be)-(x-fe)*(ge*be-ye*we))/ke),!0);var Ve=(a+b)/2,Ke=(x+te)/2,Pt=(b+re)/2,ft=(te+oe)/2;re=(re+le)/2,oe=(oe+fe)/2,te=(Ve+Pt)/2,b=(Ke+ft)/2,Pt=(Pt+re)/2,ft=(ft+oe)/2;var Nt=(te+Pt)/2,Lt=(b+ft)/2,Ut=1/0,tn=!1,xn=0,nr=0;return _t.Eo(a,x,Ve,Ke,te,b,Nt,Lt,ge,ye,we,be,ke,Ue)&&(a=(Ue.x-ge)*(Ue.x-ge)+(Ue.y-ye)*(Ue.y-ye),a<Ut&&(Ut=a,tn=!0,xn=Ue.x,nr=Ue.y)),_t.Eo(Nt,Lt,Pt,ft,re,oe,le,fe,ge,ye,we,be,ke,Ue)&&(Ue.x-ge)*(Ue.x-ge)+(Ue.y-ye)*(Ue.y-ye)<Ut&&(tn=!0,xn=Ue.x,nr=Ue.y),tn&&(Ue.x=xn,Ue.y=nr),tn},Fo:function(a,x,b,te,re,oe,le,fe,ge,ye,we,be,ke){var Ue=0;if(_t.Yb(a,x,le,fe,ke,b,te)&&_t.Yb(a,x,le,fe,ke,re,oe)){if(ke=(a-le)*(ye-be)-(x-fe)*(ge-we),ke===0)return Ue;var Ve=((a*fe-x*le)*(ge-we)-(a-le)*(ge*be-ye*we))/ke,Ke=((a*fe-x*le)*(ye-be)-(x-fe)*(ge*be-ye*we))/ke;if(Ve>=we)return Ue;if((ge>we?ge-we:we-ge)<(ye>be?ye-be:be-ye)){if(x<fe?(ge=x,a=fe):(ge=fe,a=x),Ke<ge||Ke>a)return Ue}else if(a<le?(ge=a,a=le):ge=le,Ve<ge||Ve>a)return Ue;0<ke?Ue++:0>ke&&Ue--}else{Ve=(a+b)/2,Ke=(x+te)/2;var Pt=(b+re)/2,ft=(te+oe)/2;re=(re+le)/2,oe=(oe+fe)/2,te=(Ve+Pt)/2,b=(Ke+ft)/2,Pt=(Pt+re)/2,ft=(ft+oe)/2;var Nt=(te+Pt)/2,Lt=(b+ft)/2;Ue+=_t.Fo(a,x,Ve,Ke,te,b,Nt,Lt,ge,ye,we,be,ke),Ue+=_t.Fo(Nt,Lt,Pt,ft,re,oe,le,fe,ge,ye,we,be,ke)}return Ue},qh:function(a,x,b,te,re,oe,le){return _t.$(a,b)?(x<te?(b=x,x=te):b=te,oe<b?(le.h(a,b),!1):oe>x?(le.h(a,x),!1):(le.h(a,oe),!0)):_t.$(x,te)?(a<b?(te=a,a=b):te=b,re<te?(le.h(te,x),!1):re>a?(le.h(a,x),!1):(le.h(re,x),!0)):(re=((a-re)*(a-b)+(x-oe)*(x-te))/((b-a)*(b-a)+(te-x)*(te-x)),-5e-6>re?(le.h(a,x),!1):1.000005<re?(le.h(b,te),!1):(le.h(a+re*(b-a),x+re*(te-x)),!0))},Ve:function(a,x,b,te,re,oe,le,fe,ge){return _t.B(a,b)&&_t.B(x,te)?(ge.h(a,x),!1):_t.$(re,le)?_t.$(a,b)?(_t.qh(a,x,b,te,re,oe,ge),!1):_t.qh(a,x,b,te,re,(te-x)/(b-a)*(re-a)+x,ge):(fe=(fe-oe)/(le-re),_t.$(a,b)?(b=fe*(a-re)+oe,x<te?(re=x,x=te):re=te,b<re?(ge.h(a,re),!1):b>x?(ge.h(a,x),!1):(ge.h(a,b),!0)):(le=(te-x)/(b-a),_t.$(fe,le)?(_t.qh(a,x,b,te,re,oe,ge),!1):(re=(le*a-fe*re+oe-x)/(le-fe),_t.$(le,0)?(a<b?(te=a,a=b):te=b,re<te?(ge.h(te,x),!1):re>a?(ge.h(a,x),!1):(ge.h(re,x),!0)):_t.qh(a,x,b,te,re,le*(re-a)+x,ge))))},MA:function(a,x,b,te,re){return _t.Ve(b.x,b.y,te.x,te.y,a.x,a.y,x.x,x.y,re)},KA:function(a,x,b,te,re,oe,le,fe,ge,ye){function we(Pt,ft){var Nt=(Pt-a)*(Pt-a)+(ft-x)*(ft-x);Nt<be&&(be=Nt,ge.h(Pt,ft))}var be=1/0;we(ge.x,ge.y);var ke=0,Ue=0,Ve=0,Ke=0;if(re<le?(ke=re,Ue=le):(ke=le,Ue=re),oe<fe?(Ve=re,Ke=le):(Ve=le,Ke=re),ke=(Ue-ke)/2+ye,ye=(Ke-Ve)/2+ye,re=(re+le)/2,oe=(oe+fe)/2,ke===0||ye===0)return ge;if(.5>(b>a?b-a:a-b)){if(ke=1-(b-re)*(b-re)/(ke*ke),0>ke)return ge;ke=Math.sqrt(ke),te=-ye*ke+oe,we(b,ye*ke+oe),we(b,te)}else{if(b=(te-x)/(b-a),te=1/(ke*ke)+b*b/(ye*ye),fe=2*b*(x-b*a)/(ye*ye)-2*b*oe/(ye*ye)-2*re/(ke*ke),ke=fe*fe-4*te*(2*b*a*oe/(ye*ye)-2*x*oe/(ye*ye)+oe*oe/(ye*ye)+re*re/(ke*ke)-1+(x-b*a)*(x-b*a)/(ye*ye)),0>ke)return ge;ke=Math.sqrt(ke),ye=(-fe+ke)/(2*te),we(ye,b*ye-b*a+x),ke=(-fe-ke)/(2*te),we(ke,b*ke-b*a+x)}return ge},Ff:function(a,x,b,te,re,oe,le,fe,ge){var ye=1e21,we=a,be=x;if(_t.Ve(a,x,a,te,re,oe,le,fe,ge)){var ke=(ge.x-re)*(ge.x-re)+(ge.y-oe)*(ge.y-oe);ke<ye&&(ye=ke,we=ge.x,be=ge.y)}return _t.Ve(b,x,b,te,re,oe,le,fe,ge)&&(ke=(ge.x-re)*(ge.x-re)+(ge.y-oe)*(ge.y-oe),ke<ye&&(ye=ke,we=ge.x,be=ge.y)),_t.Ve(a,x,b,x,re,oe,le,fe,ge)&&(x=(ge.x-re)*(ge.x-re)+(ge.y-oe)*(ge.y-oe),x<ye&&(ye=x,we=ge.x,be=ge.y)),_t.Ve(a,te,b,te,re,oe,le,fe,ge)&&(a=(ge.x-re)*(ge.x-re)+(ge.y-oe)*(ge.y-oe),a<ye&&(ye=a,we=ge.x,be=ge.y)),ge.h(we,be),1e21>ye},us:function(a,x,b){return _t.Fx(a.x,a.y,a.width,a.height,x.x,x.y,b.x,b.y)},Fx:function(a,x,b,te,re,oe,le,fe){var ge=a+b,ye=x+te;return re===le?(oe<fe?(le=oe,oe=fe):le=fe,a<=re&&re<=ge&&le<=ye&&oe>=x):oe===fe?(re<le?(fe=re,re=le):fe=le,x<=oe&&oe<=ye&&fe<=ge&&re>=a):!!(Zr(a,x,b,te,re,oe)||Zr(a,x,b,te,le,fe)||_t.Rl(a,x,ge,x,re,oe,le,fe)||_t.Rl(ge,x,ge,ye,re,oe,le,fe)||_t.Rl(ge,ye,a,ye,re,oe,le,fe)||_t.Rl(a,ye,a,x,re,oe,le,fe))},Rl:function(a,x,b,te,re,oe,le,fe){return a===b&&x===te&&re===le&&oe===fe?a===re&&x===oe:0>=_t.Fl(a,x,b,te,re,oe)*_t.Fl(a,x,b,te,le,fe)&&0>=_t.Fl(re,oe,le,fe,a,x)*_t.Fl(re,oe,le,fe,b,te)},Fl:function(a,x,b,te,re,oe){return b-=a,te-=x,a=re-a,x=oe-x,oe=a*te-x*b,oe===0&&(oe=a*b+x*te,0<oe&&(oe=(a-b)*b+(x-te)*te,0>oe&&(oe=0))),oe},bp:function(a){return 0>a&&(a+=360),360<=a&&(a-=360),a},jx:function(a,x,b,te,re,oe){var le=Math.PI;oe||(te*=le/180,re*=le/180);var fe=te>re?-1:1;oe=[];var ge=le/2,ye=te;if(te=Math.min(2*le,Math.abs(re-te)),1e-5>te)return ge=ye+fe*Math.min(te,ge),fe=a+b*Math.cos(ye),ye=x+b*Math.sin(ye),a+=b*Math.cos(ge),x+=b*Math.sin(ge),b=(fe+a)/2,ge=(ye+x)/2,oe.push([fe,ye,b,ge,b,ge,a,x]),oe;for(;1e-5<te;)re=ye+fe*Math.min(te,ge),oe.push(_t.Vy(b,ye,re,a,x)),te-=Math.abs(re-ye),ye=re;return oe},Vy:function(a,x,b,te,re){var oe=(b-x)/2,le=a*Math.cos(oe),fe=a*Math.sin(oe),ge=-fe,ye=le*le+ge*ge,we=ye+le*le+ge*fe;return ye=4/3*(Math.sqrt(2*ye*we)-we)/(le*fe-ge*le),fe=le-ye*ge,le=ge+ye*le,ge=-le,ye=oe+x,oe=Math.cos(ye),ye=Math.sin(ye),[te+a*Math.cos(x),re+a*Math.sin(x),te+fe*oe-le*ye,re+fe*ye+le*oe,te+fe*oe-ge*ye,re+fe*ye+ge*oe,te+a*Math.cos(b),re+a*Math.sin(b)]},No:function(a,x,b,te,re,oe,le){b=Math.floor((a-b)/re)*re+b,te=Math.floor((x-te)/oe)*oe+te;var fe=b;return b+re-a<re/2&&(fe=b+re),a=te,te+oe-x<oe/2&&(a=te+oe),le.h(fe,a),le},vx:function(a,x){var b=Math.max(a,x);a=Math.min(a,x);var te;do x=b%a,b=te=a,a=x;while(0<x);return te},$y:function(a,x,b,te){var re=0>b,oe=0>te;if(a<x)var le=1,fe=0;else le=0,fe=1;var ge=le===0?a:x,ye=le===0?b:te;return(le===0?re:oe)&&(ye=-ye),le=fe,b=le===0?b:te,(le===0?re:oe)&&(b=-b),_t.az(ge,le===0?a:x,ye,b,0,0)},az:function(a,x,b,te,re,oe){if(0<te)if(0<b){re=a*a,oe=x*x,a*=b;var le=x*te,fe=-oe+le,ge=-oe+Math.sqrt(a*a+le*le);x=fe;for(var ye=0;9999999999>ye&&(x=.5*(fe+ge),!(x===fe||x===ge));++ye){var we=a/(x+re),be=le/(x+oe);if(we=we*we+be*be-1,0<we)fe=x;else if(0>we)ge=x;else break}b=re*b/(x+re)-b,te=oe*te/(x+oe)-te,b=Math.sqrt(b*b+te*te)}else b=Math.abs(te-x);else te=a*a-x*x,oe=a*b,oe<te?(te=oe/te,oe=x*Math.sqrt(Math.abs(1-te*te)),b=a*te-b,b=Math.sqrt(b*b+oe*oe)):b=Math.abs(b-a);return b},Ze:new Fa,um:new Fa,Mf:new Fa,Nf:0,vm:100};_t.za=_t.AA;function ai(a){$o(this),this.l=2,a===void 0&&(a=ai.o),this.na=a,this.Ec=this.Dc=this.pd=this.od=0,a===ai.o?this.ee=new Zi:(ai.V===null&&(ai.V=new Zi().freeze()),this.ee=ai.V),this.aq=this.ee.Ja,this.Ip=new Yt().freeze(),this.ym=this.tk=null,this.zm=NaN,this.fg=Is,this.gg=ws,this.Rk=this.Sk=NaN,this.Uf=wi}ai.prototype.copy=function(){var a=new ai;if(a.l=this.l&-2,a.na=this.na,a.od=this.od,a.pd=this.pd,a.Dc=this.Dc,a.Ec=this.Ec,this.na===ai.o){for(var x=this.ee.s,b=a.ee,te=0;te<x.length;te++)b.add(x[te].copy());a.ee=b}else a.ee=this.ee;return a.aq=this.aq,a.Ip.assign(this.Ip),a.tk=this.tk,a.ym=this.ym,a.zm=this.zm,a.fg=this.fg.J(),a.gg=this.gg.J(),a.Sk=this.Sk,a.Rk=this.Rk,a.Uf=this.Uf,a},ai.prototype.ja=function(){return this.freeze(),Object.freeze(this),this},ai.prototype.freeze=function(){if(this._isFrozen=!0,this.type!==ai.o)return this;var a=this.figures;a.freeze(),a=a.s;for(var x=a.length,b=0;b<x;b++)a[b].freeze();return this},ai.prototype.ka=function(){if(Object.isFrozen(this)&&hn("cannot thaw constant: "+this),this._isFrozen=!1,this.type!==ai.o)return this;var a=this.figures;a.ka(),a=a.s;for(var x=a.length,b=0;b<x;b++)a[b].ka();return this},ai.prototype.Xa=function(a){if(!(a instanceof ai))return!1;if(this.type!==a.type)return this.type===ai.j&&a.type===ai.o?zh(this,a):a.type===ai.j&&this.type===ai.o?zh(a,this):!1;if(this.type===ai.o){var x=this.figures.s;a=a.figures.s;var b=x.length;if(b!==a.length)return!1;for(var te=0;te<b;te++)if(!x[te].Xa(a[te]))return!1;return!0}return _t.B(this.startX,a.startX)&&_t.B(this.startY,a.startY)&&_t.B(this.endX,a.endX)&&_t.B(this.endY,a.endY)};function zh(a,x){return a.type!==ai.j||x.type!==ai.o?!1:!!(x.figures.count===1&&(x=x.figures.M(0),x.segments.count===1&&_t.B(a.startX,x.startX)&&_t.B(a.startY,x.startY)&&(x=x.segments.M(0),x.type===tl&&_t.B(a.endX,x.endX)&&_t.B(a.endY,x.endY))))}ai.ia=function(a){return a.toString()},ai.prototype.qb=function(a){a.classType===ai&&(this.type=a)},ai.prototype.toString=function(a){switch(a===void 0&&(a=-1),this.type){case ai.j:return 0>a?"M"+this.startX.toString()+" "+this.startY.toString()+"L"+this.endX.toString()+" "+this.endY.toString():"M"+this.startX.toFixed(a)+" "+this.startY.toFixed(a)+"L"+this.endX.toFixed(a)+" "+this.endY.toFixed(a);case ai.u:var x=new Yt(this.startX,this.startY,0,0);return x.Kv(this.endX,this.endY,0,0),0>a?"M"+x.x.toString()+" "+x.y.toString()+"H"+x.right.toString()+"V"+x.bottom.toString()+"H"+x.left.toString()+"z":"M"+x.x.toFixed(a)+" "+x.y.toFixed(a)+"H"+x.right.toFixed(a)+"V"+x.bottom.toFixed(a)+"H"+x.left.toFixed(a)+"z";case ai.F:if(x=new Yt(this.startX,this.startY,0,0),x.Kv(this.endX,this.endY,0,0),0>a)return a=x.left.toString()+" "+(x.y+x.height/2).toString(),"M"+a+"A"+(x.width/2).toString()+" "+(x.height/2).toString()+" 0 0 1 "+(x.right.toString()+" "+(x.y+x.height/2).toString())+"A"+(x.width/2).toString()+" "+(x.height/2).toString()+" 0 0 1 "+a;var b=x.left.toFixed(a)+" "+(x.y+x.height/2).toFixed(a);return"M"+b+"A"+(x.width/2).toFixed(a)+" "+(x.height/2).toFixed(a)+" 0 0 1 "+(x.right.toFixed(a)+" "+(x.y+x.height/2).toFixed(a))+"A"+(x.width/2).toFixed(a)+" "+(x.height/2).toFixed(a)+" 0 0 1 "+b;case ai.o:x="",b=this.figures.s;for(var te=b.length,re=0;re<te;re++){var oe=b[re];0<re&&(x+=" x "),oe.isFilled&&(x+="F "),x+=oe.toString(a)}return x;default:return this.type.toString()}},ai.nb=function(a){a=a.split(/[Xx]/);for(var x=a.length,b="",te=0;te<x;te++){var re=a[te];b=re.match(/[Ff]/)!==null?te===0?b+re:b+("X"+(re[0]===" "?"":" ")+re):b+((te===0?"":"X ")+"F"+(re[0]===" "?"":" ")+re)}return b},ai.parse=function(a,x){function b(){return Ke>=Ut-1?!0:ye[Ke+1].match(tn)!==null}function te(){return Ke++,ye[Ke]}function re(os){var Oo=parseFloat(te()),Ha=parseFloat(te());Pt===Pt.toLowerCase()&&(Oo=Lt.x+Oo,Ha=Lt.y+Ha),os.h(Oo,Ha)}function oe(){return re(Lt),Lt}function le(){return re(Nt),Nt}function fe(){var os=ft.toLowerCase();return os!=="c"&&os!=="s"&&os!=="q"&&os!=="t"?Lt:new it(2*Lt.x-Nt.x,2*Lt.y-Nt.y)}x===void 0&&(x=!1);var ge=/([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])/gm;a=a.replace(/,/gm," "),a=a.replace(ge,"$1 $2"),a=a.replace(ge,"$1 $2"),a=a.replace(/([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])([^s])/gm,"$1 $2"),a=a.replace(/([^s])([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])/gm,"$1 $2"),a=a.replace(/([0-9])([+\-])/gm,"$1 $2"),a=a.replace(/[\s\r\t\n]+/gm," "),a=a.replace(/^\s+|\s+$/g,"");var ye=a.split(" ");for(a=0;a<ye.length;a++){var we=ye[a];if(we.match(/(\.[0-9]*)(\.)/gm)!==null){ge=ys();for(var be="",ke=!1,Ue=0;Ue<we.length;Ue++){var Ve=we[Ue];Ve!=="."||ke?Ve==="."?(ge.push(be),be="."):be+=Ve:(ke=!0,be+=Ve)}for(ge.push(be),ye.splice(a,1),we=0;we<ge.length;we++)ye.splice(a+we,0,ge[we]);a+=ge.length-1,As(ge)}}var Ke=-1,Pt="",ft="";ge=new it(0,0);var Nt=new it(0,0),Lt=new it(0,0),Ut=ye.length;a=a2(null),ke=be=we=!1,Ue=!0,Ve=null;for(var tn=/[UuBbMmZzLlHhVvCcSsQqTtAaFfXx]/;!(Ke>=Ut-1);)if(ft=Pt,Pt=te(),Pt!=="")switch(Pt.toUpperCase()){case"X":Ue=!0,be=we=!1;break;case"M":for(Ve=oe(),a.mc===null||Ue===!0?(fA(a,Ve.x,Ve.y,we,!be,ke),Ue=!1):a.moveTo(Ve.x,Ve.y),ge.assign(Lt);!b();)Ve=oe(),a.lineTo(Ve.x,Ve.y);break;case"L":for(;!b();)Ve=oe(),a.lineTo(Ve.x,Ve.y);break;case"H":for(;!b();)Lt=new it((Pt===Pt.toLowerCase()?Lt.x:0)+parseFloat(te()),Lt.y),a.lineTo(Lt.x,Lt.y);break;case"V":for(;!b();)Lt=new it(Lt.x,(Pt===Pt.toLowerCase()?Lt.y:0)+parseFloat(te())),a.lineTo(Lt.x,Lt.y);break;case"C":for(;!b();){Ve=new it,re(Ve);var xn=le(),nr=oe();_0(a,Ve.x,Ve.y,xn.x,xn.y,nr.x,nr.y)}break;case"S":for(;!b();)Ve=fe(),xn=le(),nr=oe(),_0(a,Ve.x,Ve.y,xn.x,xn.y,nr.x,nr.y);break;case"Q":for(;!b();)Ve=le(),xn=oe(),sy(a,Ve.x,Ve.y,xn.x,xn.y);break;case"T":for(;!b();)Nt=Ve=fe(),xn=oe(),sy(a,Ve.x,Ve.y,xn.x,xn.y);break;case"B":for(;!b();){Ve=parseFloat(te()),xn=parseFloat(te()),nr=parseFloat(te());var Ir=parseFloat(te()),br=parseFloat(te()),Di=br,ii=!1;b()||(Di=parseFloat(te()),b()||(ii=parseFloat(te())!==0)),Pt===Pt.toLowerCase()&&(nr+=Lt.x,Ir+=Lt.y),a.arcTo(Ve,xn,nr,Ir,br,Di,ii)}break;case"A":for(;!b();)Ve=Math.abs(parseFloat(te())),xn=Math.abs(parseFloat(te())),nr=parseFloat(te()),br=Ir=!1,ii=Di=0,Di=te(),Di.length===1?(Ir=!!parseFloat(Di),br=!!parseFloat(te()),Di=parseFloat(te())):Di.length===2?(Ir=!!parseFloat(Di[0]),br=!!parseFloat(Di[1]),Di=parseFloat(te())):(Ir=!!parseFloat(Di[0]),br=!!parseFloat(Di[1]),Di=parseFloat(Di.slice(2))),ii=parseFloat(te()),Pt===Pt.toLowerCase()&&(Di=Lt.x+Di,ii=Lt.y+ii),Lt.h(Di,ii),WS(a,Ve,xn,nr,Ir,br,Di,ii);break;case"Z":s2(a),Lt.assign(ge);break;case"F":for(Ve="",xn=1;ye[Ke+xn];)if(ye[Ke+xn]==="0")ke=!0,xn++;else if(ye[Ke+xn].match(/[Uu]/)!==null)xn++;else if(ye[Ke+xn].match(tn)===null)xn++;else{Ve=ye[Ke+xn];break}Ve.match(/[Mm]/)?we=!0:0<a.mc.segments.length&&(a.mc.isFilled=!0);break;case"U":for(Ve="",xn=1;ye[Ke+xn];)if(ye[Ke+xn].match(/[Ff]/)!==null)xn++;else if(ye[Ke+xn].match(tn)===null)xn++;else{Ve=ye[Ke+xn];break}Ve.match(/[Mm]/)?be=!0:a.mc.isShadowed=!1}if(ge=a.os,QS=a,x)for(x=ge.figures.iterator;x.next();)x.value.isFilled=!0;return ge},ai.Ha=function(a,x){for(var b=a.length,te=it.alloc(),re=0;re<b;re++){var oe=a[re];te.x=oe[0],te.y=oe[1],x.Ga(te),oe[0]=te.x,oe[1]=te.y,te.x=oe[2],te.y=oe[3],x.Ga(te),oe[2]=te.x,oe[3]=te.y,te.x=oe[4],te.y=oe[5],x.Ga(te),oe[4]=te.x,oe[5]=te.y,te.x=oe[6],te.y=oe[7],x.Ga(te),oe[6]=te.x,oe[7]=te.y}it.free(te)},ai.prototype.Zu=function(){if(this._isInvalidBounds)return!0;if(this.type===ai.o){if(this.aq!==this.figures.Ja)return!0;for(var a=this.figures.s,x=a.length,b=0;b<x;b++)if(a[b].Zu())return!0}return!1},ai.prototype.computeBounds=function(){if(this._isInvalidBounds=!1,this.ym=this.tk=null,this.zm=NaN,this.type===ai.o){this.aq=this.figures.Ja;for(var a=this.figures.s,x=a.length,b=0;b<x;b++){var te=a[b];te._isInvalidBounds=!1;var re=te.segments;te.sr=re.Ja,te=re.s,re=te.length;for(var oe=0;oe<re;oe++){var le=te[oe];le._isInvalidBounds=!1,le.ae=null}}}a=this.Ip,a.ka(),isNaN(this.Sk)||isNaN(this.Rk)?a.h(0,0,0,0):a.h(0,0,this.Sk,this.Rk),ch(this,a,!1),Hr(a,0,0,0,0),a.freeze()},ai.prototype.ix=function(){var a=new Yt;return ch(this,a,!0),a};function ch(a,x,b){switch(a.type){case ai.j:case ai.u:case ai.F:b?x.h(a.od,a.pd,0,0):Hr(x,a.od,a.pd,0,0),Hr(x,a.Dc,a.Ec,0,0);break;case ai.o:var te=a.figures;a=te.s,te=te.length;for(var re=0;re<te;re++){var oe=a[re];b&&re===0?x.h(oe.startX,oe.startY,0,0):Hr(x,oe.startX,oe.startY,0,0);for(var le=oe.segments.s,fe=le.length,ge=oe.startX,ye=oe.startY,we=0;we<fe;we++){var be=le[we];switch(be.type){case tl:case Au:ge=be.endX,ye=be.endY,Hr(x,ge,ye,0,0);break;case Yu:_t.Dl(ge,ye,be.point1X,be.point1Y,be.point2X,be.point2Y,be.endX,be.endY,.5,x),ge=be.endX,ye=be.endY;break;case Ch:_t.iv(ge,ye,be.point1X,be.point1Y,be.endX,be.endY,.5,x),ge=be.endX,ye=be.endY;break;case Du:case Eh:var ke=be.type===Du?zc(be,oe):_c(be,oe,ge,ye),Ue=ke.length;if(Ue===0){ge=be.type===Du?be.centerX:be.endX,ye=be.type===Du?be.centerY:be.endY,Hr(x,ge,ye,0,0);break}be=null;for(var Ve=0;Ve<Ue;Ve++)be=ke[Ve],_t.Dl(be[0],be[1],be[2],be[3],be[4],be[5],be[6],be[7],.5,x);be!==null&&(ge=be[6],ye=be[7]);break;default:hn("Unknown Segment type: "+be.type)}}}break;default:hn("Unknown Geometry type: "+a.type)}}ai.prototype.normalize=function(){this._isFrozen&&Ar(this);var a=this.ix();return this.offset(-a.x,-a.y),new it(-a.x,-a.y)},ai.prototype.offset=function(a,x){return this._isFrozen&&Ar(this),this.transform(1,0,0,1,a,x),this},ai.prototype.scale=function(a,x){return this._isFrozen&&Ar(this),this.transform(a,0,0,x,0,0),this},ai.prototype.rotate=function(a,x,b){this._isFrozen&&Ar(this),x===void 0&&(x=0),b===void 0&&(b=0);var te=Br.alloc();return te.reset(),te.rotate(a,x,b),this.transform(te.m11,te.m12,te.m21,te.m22,te.dx,te.dy),Br.free(te),this},We=ai.prototype,We.transform=function(a,x,b,te,re,oe){switch(this.type){case ai.j:case ai.u:case ai.F:var le=this.od,fe=this.pd;this.od=le*a+fe*b+re,this.pd=le*x+fe*te+oe,le=this.Dc,fe=this.Ec,this.Dc=le*a+fe*b+re,this.Ec=le*x+fe*te+oe;break;case ai.o:for(var ge=this.figures.s,ye=ge.length,we=0;we<ye;we++){var be=ge[we];le=be.startX,fe=be.startY,be.startX=le*a+fe*b+re,be.startY=le*x+fe*te+oe,be=be.segments.s;for(var ke=be.length,Ue=0;Ue<ke;Ue++){var Ve=be[Ue];switch(Ve.type){case tl:case Au:le=Ve.endX,fe=Ve.endY,Ve.endX=le*a+fe*b+re,Ve.endY=le*x+fe*te+oe;break;case Yu:le=Ve.point1X,fe=Ve.point1Y,Ve.point1X=le*a+fe*b+re,Ve.point1Y=le*x+fe*te+oe,le=Ve.point2X,fe=Ve.point2Y,Ve.point2X=le*a+fe*b+re,Ve.point2Y=le*x+fe*te+oe,le=Ve.endX,fe=Ve.endY,Ve.endX=le*a+fe*b+re,Ve.endY=le*x+fe*te+oe;break;case Ch:le=Ve.point1X,fe=Ve.point1Y,Ve.point1X=le*a+fe*b+re,Ve.point1Y=le*x+fe*te+oe,le=Ve.endX,fe=Ve.endY,Ve.endX=le*a+fe*b+re,Ve.endY=le*x+fe*te+oe;break;case Du:le=Ve.centerX,fe=Ve.centerY,Ve.centerX=le*a+fe*b+re,Ve.centerY=le*x+fe*te+oe,x!==0&&(le=180*Math.atan2(x,a)/Math.PI,0>le&&(le+=360),Ve.startAngle+=le),0>a&&(Ve.startAngle=180-Ve.startAngle,Ve.sweepAngle=-Ve.sweepAngle),0>te&&(Ve.startAngle=-Ve.startAngle,Ve.sweepAngle=-Ve.sweepAngle),Ve.radiusX*=Math.sqrt(a*a+b*b),Ve.radiusY!==void 0&&(Ve.radiusY*=Math.sqrt(x*x+te*te));break;case Eh:if(le=Ve.endX,fe=Ve.endY,Ve.endX=le*a+fe*b+re,Ve.endY=le*x+fe*te+oe,Ve.radiusX===0||Ve.radiusY===0)break;x!==0&&(le=180*Math.atan2(x,a)/Math.PI,0>le&&(le+=360),Ve.xAxisRotation+=le),0>a&&(Ve.xAxisRotation=180-Ve.xAxisRotation,Ve.isClockwiseArc=!Ve.isClockwiseArc),0>te&&(Ve.xAxisRotation=-Ve.xAxisRotation,Ve.isClockwiseArc=!Ve.isClockwiseArc),Ve.radiusX*=Math.sqrt(a*a+b*b),Ve.radiusY*=Math.sqrt(x*x+te*te);break;default:hn("Unknown Segment type: "+Ve.type)}}}}return this._isInvalidBounds=!0,this},We.ca=function(a,x){x===void 0&&(x=0);var b=this.od,te=this.pd,re=this.Dc,oe=this.Ec;switch(this.type){case ai.j:return _t.Yb(b,te,re,oe,x,a.x,a.y);case ai.u:var le=Yt.allocAt(Math.min(b,re)-x,Math.min(te,oe)-x,Math.abs(re-b)+2*x,Math.abs(oe-te)+2*x);return a=le.ca(a),Yt.free(le),a;case ai.F:le=Math.min(b,re)-x;var fe=Math.min(te,oe)-x;return b=(Math.abs(re-b)+2*x)/2,x=(Math.abs(oe-te)+2*x)/2,0>=b||0>=x?!1:(le=a.x-(le+b),fe=a.y-(fe+x),1>=le*le/(b*b)+fe*fe/(x*x));case ai.o:return rc(this,a,x,!0,!1);default:return!1}};function rc(a,x,b,te,re){var oe=x.x;x=x.y;for(var le=a.bounds.x-20,fe=0,ge,ye,we,be,ke=a.figures.s,Ue=ke.length,Ve=0;Ve<Ue;Ve++){var Ke=ke[Ve],Pt=!Ke.isEvenOdd;if(Ke.isFilled){if(te&&Ke.ca(oe,x,b))return!0;var ft=Ke.segments;ge=Ke.startX,ye=Ke.startY;for(var Nt=ge,Lt=ye,Ut=ft.s,tn=0;tn<=ft.length;tn++){var xn=void 0;if(tn!==ft.length){xn=Ut[tn];var nr=xn.type;a=xn.endX,be=xn.endY}else nr=tl,a=Nt,be=Lt;switch(nr){case Au:if(Nt=Ec(oe,x,le,x,ge,ye,Nt,Lt),isNaN(Nt))return!0;fe+=Nt,Nt=a,Lt=be;break;case tl:if(ge=Ec(oe,x,le,x,ge,ye,a,be),isNaN(ge))return!0;fe+=ge;break;case Yu:we=_t.Fo(ge,ye,xn.point1X,xn.point1Y,xn.point2X,xn.point2Y,a,be,le,x,oe,x,.5),fe+=we;break;case Ch:we=_t.Fo(ge,ye,(ge+2*xn.point1X)/3,(ye+2*xn.point1Y)/3,(2*xn.point1X+a)/3,(2*xn.point1Y+be)/3,a,be,le,x,oe,x,.5),fe+=we;break;case Du:case Eh:nr=xn.type===Du?zc(xn,Ke):_c(xn,Ke,ge,ye);var Ir=nr.length;if(Ir===0){if(ge=Ec(oe,x,le,x,ge,ye,xn.type===Du?xn.centerX:xn.endX,xn.type===Du?xn.centerY:xn.endY),isNaN(ge))return!0;fe+=ge;break}xn=null;for(var br=0;br<Ir;br++){if(xn=nr[br],br===0){if(we=Ec(oe,x,le,x,ge,ye,xn[0],xn[1]),isNaN(we))return!0;fe+=we}we=_t.Fo(xn[0],xn[1],xn[2],xn[3],xn[4],xn[5],xn[6],xn[7],le,x,oe,x,.5),fe+=we}xn!==null&&(a=xn[6],be=xn[7]);break;default:hn("Unknown Segment type: "+xn.type)}ge=a,ye=be}if(Pt){if(fe!==0)return!0}else if(fe%2!==0)return!0;fe=0}else if(Ke.ca(oe,x,re?b:b+2))return!0}return!1}function Ec(a,x,b,te,re,oe,le,fe){if(_t.Yb(re,oe,le,fe,.05,a,x))return NaN;var ge=(a-b)*(oe-fe);if(ge===0)return 0;var ye=((a*te-x*b)*(re-le)-(a-b)*(re*fe-oe*le))/ge;if(x=(a*te-x*b)*(oe-fe)/ge,ye>=a)return 0;if((re>le?re-le:le-re)<(oe>fe?oe-fe:fe-oe)){if(oe<fe){if(x<oe||x>fe)return 0}else if(x<fe||x>oe)return 0}else if(re<le){if(ye<re||ye>le)return 0}else if(ye<le||ye>re)return 0;return 0<ge?1:-1}function hh(a,x,b,te){a=a.figures.s;for(var re=a.length,oe=0;oe<re;oe++)if(a[oe].ca(x,b,te))return!0;return!1}We.Pu=function(a,x){if(0>a?a=0:1<a&&(a=1),x===void 0&&(x=new it),this.type===ai.j)return x.h(this.startX+a*(this.endX-this.startX),this.startY+a*(this.endY-this.startY)),x;for(var b=this.flattenedSegments,te=this.flattenedLengths,re=b.length,oe=this.flattenedTotalLength*a,le=0,fe=0;fe<re;fe++){var ge=te[fe],ye=ge.length;for(a=0;a<ye;a++){var we=ge[a];if(le+we>=oe)return te=oe-le,te=we===0?0:te/we,b=b[fe],fe=b[2*a],re=b[2*a+1],x.h(fe+(b[2*a+2]-fe)*te,re+(b[2*a+3]-re)*te),x;le+=we}}return x},We.wx=function(a){if(0>a?a=0:1<a&&(a=1),this.type===ai.j)return 180*Math.atan2(this.endY-this.startY,this.endX-this.startX)/Math.PI;for(var x=this.flattenedSegments,b=this.flattenedLengths,te=x.length,re=this.flattenedTotalLength*a,oe=0,le=0;le<te;le++){var fe=b[le],ge=fe.length;for(a=0;a<ge;a++){var ye=fe[a];if(oe+ye>=re)return re=x[le],x=re[2*a],b=re[2*a+1],te=re[2*a+2],a=re[2*a+3],1>Math.abs(te-x)&&1>Math.abs(a-b)?0:1>Math.abs(te-x)?0<=a-b?90:270:1>Math.abs(a-b)?0<=te-x?0:180:180*Math.atan2(a-b,te-x)/Math.PI;oe+=ye}}return NaN},We.Qu=function(a,x){if(0>a?a=0:1<a&&(a=1),x===void 0&&(x=[]),x.length=3,this.type===ai.j)return x[0]=this.startX+a*(this.endX-this.startX),x[1]=this.startY+a*(this.endY-this.startY),x[2]=180*Math.atan2(this.endY-this.startY,this.endX-this.startX)/Math.PI,x;for(var b=this.flattenedSegments,te=this.flattenedLengths,re=b.length,oe=this.flattenedTotalLength*a,le=0,fe=0;fe<re;fe++){var ge=te[fe],ye=ge.length;for(a=0;a<ye;a++){var we=ge[a];if(le+we>=oe)return te=oe-le,te=we===0?0:te/we,we=b[fe],b=we[2*a],fe=we[2*a+1],re=we[2*a+2],a=we[2*a+3],x[0]=b+(re-b)*te,x[1]=fe+(a-fe)*te,x[2]=1>Math.abs(re-b)&&1>Math.abs(a-fe)?0:1>Math.abs(re-b)?0<=a-fe?90:270:1>Math.abs(a-fe)?0<=re-b?0:180:180*Math.atan2(a-fe,re-b)/Math.PI,x;le+=we}}return x},We.xx=function(a){if(this.type===ai.j){var x=this.startX,b=this.startY,te=this.endX,re=this.endY;if(x!==te||b!==re){var oe=a.x;if(a=a.y,x===te){if(b<re){var le=b;te=re}else le=re,te=b;return a<=le?le===b?0:1:a>=te?te===b?0:1:Math.abs(a-b)/(te-le)}if(b===re)return x<te?le=x:(le=te,te=x),oe<=le?le===x?0:1:oe>=te?te===x?0:1:Math.abs(oe-x)/(te-le);le=(te-x)*(te-x)+(re-b)*(re-b);var fe=it.alloc();return _t.qh(x,b,te,re,oe,a,fe),a=fe.x,oe=fe.y,it.free(fe),Math.sqrt(((a-x)*(a-x)+(oe-b)*(oe-b))/le)}}else if(this.type===ai.u){le=this.startX,fe=this.startY;var ge=this.endX;if(re=this.endY,le!==ge||fe!==re){x=ge-le,b=re-fe,oe=2*x+2*b,te=a.x,a=a.y,te=Math.min(Math.max(te,le),ge),a=Math.min(Math.max(a,fe),re),le=Math.abs(te-le),ge=Math.abs(te-ge),fe=Math.abs(a-fe),re=Math.abs(a-re);var ye=Math.min(le,ge,fe,re);if(ye===fe)return te/oe;if(ye===ge)return(x+a)/oe;if(ye===re)return(2*x+b-te)/oe;if(ye===le)return(2*x+2*b-a)/oe}}else{x=this.flattenedSegments,b=this.flattenedLengths,oe=this.flattenedTotalLength,te=it.alloc(),re=1/0,fe=le=0,ge=x.length;for(var we=ye=0,be=0;be<ge;be++)for(var ke=x[be],Ue=b[be],Ve=ke.length,Ke=0;Ke<Ve;Ke+=2){var Pt=ke[Ke],ft=ke[Ke+1];if(Ke!==0){_t.qh(ye,we,Pt,ft,a.x,a.y,te);var Nt=(te.x-a.x)*(te.x-a.x)+(te.y-a.y)*(te.y-a.y);Nt<re&&(re=Nt,le=fe,le+=Math.sqrt((te.x-ye)*(te.x-ye)+(te.y-we)*(te.y-we))),fe+=Ue[(Ke-2)/2]}ye=Pt,we=ft}return it.free(te),a=le/oe,0>a?0:1<a?1:a}return 0};function Rc(a){if(a.tk===null){var x=a.tk=[],b=a.ym=[],te=[],re=[];if(a.type===ai.j)te.push(a.startX),te.push(a.startY),te.push(a.endX),te.push(a.endY),x.push(te),re.push(Math.sqrt((a.startX-a.endX)*(a.startX-a.endX)+(a.startY-a.endY)*(a.startY-a.endY))),b.push(re);else if(a.type===ai.u)te.push(a.startX),te.push(a.startY),te.push(a.endX),te.push(a.startY),te.push(a.endX),te.push(a.endY),te.push(a.startX),te.push(a.endY),te.push(a.startX),te.push(a.startY),x.push(te),re.push(Math.abs(a.startX-a.endX)),re.push(Math.abs(a.startY-a.endY)),re.push(Math.abs(a.startX-a.endX)),re.push(Math.abs(a.startY-a.endY)),b.push(re);else if(a.type===ai.F){var oe=new ku;oe.startX=a.endX,oe.startY=(a.startY+a.endY)/2;var le=new $s(Du);if(le.startAngle=0,le.sweepAngle=360,le.centerX=(a.startX+a.endX)/2,le.centerY=(a.startY+a.endY)/2,le.radiusX=Math.abs(a.startX-a.endX)/2,le.radiusY=Math.abs(a.startY-a.endY)/2,oe.add(le),a=zc(le,oe),re=a.length,re===0)te.push(le.centerX),te.push(le.centerY);else{le=oe.startX,oe=oe.startY;for(var fe=0;fe<re;fe++){var ge=a[fe];_t.Qe(le,oe,ge[2],ge[3],ge[4],ge[5],ge[6],ge[7],.5,te),le=ge[6],oe=ge[7]}}x.push(te),b.push(od(te))}else for(a=a.figures.iterator;a.next();){re=a.value,te=[],te.push(re.startX),te.push(re.startY),le=re.startX,oe=re.startY,fe=le,ge=oe;for(var ye=re.segments.s,we=ye.length,be=0;be<we;be++){var ke=ye[be];switch(ke.type){case Au:4<=te.length&&(x.push(te),b.push(od(te))),te=[],te.push(ke.endX),te.push(ke.endY),le=ke.endX,oe=ke.endY,fe=le,ge=oe;break;case tl:te.push(ke.endX),te.push(ke.endY),le=ke.endX,oe=ke.endY;break;case Yu:_t.Qe(le,oe,ke.point1X,ke.point1Y,ke.point2X,ke.point2Y,ke.endX,ke.endY,.5,te),le=ke.endX,oe=ke.endY;break;case Ch:_t.ep(le,oe,ke.point1X,ke.point1Y,ke.endX,ke.endY,.5,te),le=ke.endX,oe=ke.endY;break;case Du:var Ue=zc(ke,re),Ve=Ue.length;if(Ve===0){te.push(ke.centerX),te.push(ke.centerY),le=ke.centerX,oe=ke.centerY;break}for(var Ke=0;Ke<Ve;Ke++){var Pt=Ue[Ke];_t.Qe(le,oe,Pt[2],Pt[3],Pt[4],Pt[5],Pt[6],Pt[7],.5,te),le=Pt[6],oe=Pt[7]}break;case Eh:if(Ue=_c(ke,re,le,oe),Ve=Ue.length,Ke=ke.endX,Pt=ke.endY,Ve===0){te.push(Ke),te.push(Pt),le=Ke,oe=Pt;break}for(Ke=0;Ke<Ve;Ke++)Pt=Ue[Ke],_t.Qe(le,oe,Pt[2],Pt[3],Pt[4],Pt[5],Pt[6],Pt[7],.5,te),le=Pt[6],oe=Pt[7];break;default:hn("Segment not of valid type: "+ke.type)}ke.isClosed&&(te.push(fe),te.push(ge))}4<=te.length&&(x.push(te),b.push(od(te)))}}}function od(a){for(var x=[],b=0,te=0,re=a.length,oe=0;oe<re;oe+=2){var le=a[oe],fe=a[oe+1];oe!==0&&x.push(Math.sqrt(fs(b,te,le,fe))),b=le,te=fe}return x}We.add=function(a){return this.ee.add(a),this},We.pm=function(a,x,b,te,re,oe,le,fe){return this._isFrozen&&Ar(this),this.fg=new Ii(a,x,re,oe).freeze(),this.gg=new Ii(b,te,le,fe).freeze(),this},pn.Object.defineProperties(ai.prototype,{_isFrozen:{get:function(){return(this.l&1)!==0},set:function(a){this.l=a?this.l|1:this.l&-2}},_isInvalidBounds:{get:function(){return(this.l&2)!==0},set:function(a){this.l=a?this.l|2:this.l&-3}},flattenedSegments:{get:function(){return Rc(this),this.tk}},flattenedLengths:{get:function(){return Rc(this),this.ym}},flattenedTotalLength:{get:function(){var a=this.zm;if(isNaN(a)){if(this.type===ai.j){a=Math.abs(this.endX-this.startX);var x=Math.abs(this.endY-this.startY);a=Math.sqrt(a*a+x*x)}else if(this.type===ai.u)a=2*Math.abs(this.endX-this.startX)+2*Math.abs(this.endY-this.startY);else{x=this.flattenedLengths;for(var b=x.length,te=a=0;te<b;te++)for(var re=x[te],oe=re.length,le=0;le<oe;le++)a+=re[le]}this.zm=a}return a}},type:{get:function(){return this.na},set:function(a){this.na!==a&&(this._isFrozen&&Ar(this,a),this.na=a,a===ai.o?this.ee=new Zi:(ai.V===null&&(ai.V=new Zi().freeze()),this.ee=ai.V),this._isInvalidBounds=!0)}},startX:{get:function(){return this.od},set:function(a){this.od!==a&&(this._isFrozen&&Ar(this,a),this.od=a,this._isInvalidBounds=!0)}},startY:{get:function(){return this.pd},set:function(a){this.pd!==a&&(this._isFrozen&&Ar(this,a),this.pd=a,this._isInvalidBounds=!0)}},endX:{get:function(){return this.Dc},set:function(a){this.Dc!==a&&(this._isFrozen&&Ar(this,a),this.Dc=a,this._isInvalidBounds=!0)}},endY:{get:function(){return this.Ec},set:function(a){this.Ec!==a&&(this._isFrozen&&Ar(this,a),this.Ec=a,this._isInvalidBounds=!0)}},figures:{get:function(){return this.ee},set:function(a){this.ee!==a&&(this._isFrozen&&Ar(this,a),this.ee=a,this._isInvalidBounds=!0)}},spot1:{get:function(){return this.fg},set:function(a){this._isFrozen&&Ar(this,a),this.fg=a.J()}},spot2:{get:function(){return this.gg},set:function(a){this._isFrozen&&Ar(this,a),this.gg=a.J()}},defaultStretch:{get:function(){return this.Uf},set:function(a){this._isFrozen&&Ar(this,a),this.Uf=a}},bounds:{get:function(){return this.Zu()&&this.computeBounds(),this.Ip}}}),ai.prototype.setSpots=ai.prototype.pm,ai.prototype.add=ai.prototype.add,ai.prototype.getFractionForPoint=ai.prototype.xx,ai.prototype.getPointAndAngleAlongPath=ai.prototype.Qu,ai.prototype.getAngleAlongPath=ai.prototype.wx,ai.prototype.getPointAlongPath=ai.prototype.Pu,ai.prototype.containsPoint=ai.prototype.ca,ai.prototype.transform=ai.prototype.transform,ai.prototype.rotate=ai.prototype.rotate,ai.prototype.scale=ai.prototype.scale,ai.prototype.offset=ai.prototype.offset,ai.prototype.normalize=ai.prototype.normalize,ai.prototype.computeBoundsWithoutOrigin=ai.prototype.ix,ai.prototype.equalsApprox=ai.prototype.Xa,ai.className="Geometry",ai.j=new Ni(ai,"Line",0),ai.u=new Ni(ai,"Rectangle",1),ai.F=new Ni(ai,"Ellipse",2),ai.o=new Ni(ai,"Path",3),ai.V=null,ai.hb="UuBbMmZzLlHhVvCcSsQqTtAaFfXx",ai.className="Geometry",ai.stringify=ai.ia,ai.fillPath=ai.nb,ai.parse=ai.parse,ai.Line=ai.j,ai.Rectangle=ai.u,ai.Ellipse=ai.F,ai.Path=ai.o;function ku(a,x,b,te,re){$o(this),b===void 0&&(b=!0),te===void 0&&(te=!0),re===void 0&&(re=!1),this.l=2|(b?4:0)|(te?8:0)|(re?16:0),a!==void 0?this.od=a:this.od=0,x!==void 0?this.pd=x:this.pd=0,this.pl=new Zi,this.sr=this.pl.Ja,this.fw=null}ku.prototype.copy=function(){var a=new ku;a.l=this.l&-2,a.od=this.od,a.pd=this.pd;for(var x=this.pl.s,b=x.length,te=a.pl,re=0;re<b;re++){var oe=x[re].copy();te.add(oe)}return a.sr=this.sr,a.fw=this.fw,a},We=ku.prototype,We.Xa=function(a){if(!(a instanceof ku&&_t.B(this.startX,a.startX)&&_t.B(this.startY,a.startY)))return!1;var x=this.segments.s;a=a.segments.s;var b=x.length;if(b!==a.length)return!1;for(var te=0;te<b;te++)if(!x[te].Xa(a[te]))return!1;return!0},We.toString=function(a){a===void 0&&(a=-1);for(var x=0>a?"M"+this.startX.toString()+" "+this.startY.toString():"M"+this.startX.toFixed(a)+" "+this.startY.toFixed(a),b=this.segments.s,te=b.length,re=0;re<te;re++)x+=" "+b[re].toString(a);return x},We.freeze=function(){this._isFrozen=!0;var a=this.segments;a.freeze();var x=a.s;a=a.length;for(var b=0;b<a;b++)x[b].freeze();return this},We.ka=function(){this._isFrozen=!1;var a=this.segments;a.ka(),a=a.s;for(var x=a.length,b=0;b<x;b++)a[b].ka();return this},We.Zu=function(){if(this._isInvalidBounds)return!0;var a=this.segments;if(this.sr!==a.Ja)return!0;a=a.s;for(var x=a.length,b=0;b<x;b++)if(a[b]._isInvalidBounds)return!0;return!1},We.add=function(a){return this.pl.add(a),this},We.ca=function(a,x,b){for(var te=this.startX,re=this.startY,oe=te,le=re,fe=this.segments.s,ge=fe.length,ye=0;ye<ge;ye++){var we=fe[ye];switch(we.type){case Au:oe=we.endX,le=we.endY,te=we.endX,re=we.endY;break;case tl:if(_t.Yb(te,re,we.endX,we.endY,b,a,x))return!0;te=we.endX,re=we.endY;break;case Yu:if(_t.cs(te,re,we.point1X,we.point1Y,we.point2X,we.point2Y,we.endX,we.endY,.5,a,x,b))return!0;te=we.endX,re=we.endY;break;case Ch:if(_t.jv(te,re,we.point1X,we.point1Y,we.endX,we.endY,.5,a,x,b))return!0;te=we.endX,re=we.endY;break;case Du:case Eh:var be=we.type===Du?zc(we,this):_c(we,this,te,re),ke=be.length,Ue=we.type===Du?we.centerX:we.endX,Ve=we.type===Du?we.centerY:we.endY;if(ke===0){if(_t.Yb(te,re,Ue,Ve,b,a,x))return!0;te=Ue,re=Ve;break}for(Ue=null,Ve=0;Ve<ke;Ve++)if(Ue=be[Ve],Ve===0&&_t.Yb(te,re,Ue[0],Ue[1],b,a,x)||_t.cs(Ue[0],Ue[1],Ue[2],Ue[3],Ue[4],Ue[5],Ue[6],Ue[7],.5,a,x,b))return!0;Ue!==null&&(te=Ue[6],re=Ue[7]);break;default:hn("Unknown Segment type: "+we.type)}if(we.isClosed&&(te!==oe||re!==le)&&_t.Yb(te,re,oe,le,b,a,x))return!0}return!1},pn.Object.defineProperties(ku.prototype,{_isFrozen:{get:function(){return(this.l&1)!==0},set:function(a){this.l=a?this.l|1:this.l&-2}},_isInvalidBounds:{get:function(){return(this.l&2)!==0},set:function(a){this.l=a?this.l|2:this.l&-3}},isFilled:{get:function(){return(this.l&4)!==0},set:function(a){this._isFrozen&&Ar(this,a),this.l=a?this.l|4:this.l&-5}},isShadowed:{get:function(){return(this.l&8)!==0},set:function(a){this._isFrozen&&Ar(this,a),this.l=a?this.l|8:this.l&-9}},isEvenOdd:{get:function(){return(this.l&16)!==0},set:function(a){this._isFrozen&&Ar(this,a),this.l=a?this.l|16:this.l&-17}},startX:{get:function(){return this.od},set:function(a){this._isFrozen&&Ar(this,a),this.od=a,this._isInvalidBounds=!0}},startY:{get:function(){return this.pd},set:function(a){this._isFrozen&&Ar(this,a),this.pd=a,this._isInvalidBounds=!0}},segments:{get:function(){return this.pl},set:function(a){this._isFrozen&&Ar(this,a),this.pl=a,this._isInvalidBounds=!0}}}),ku.prototype.add=ku.prototype.add,ku.prototype.equalsApprox=ku.prototype.Xa,ku.className="PathFigure";function $s(a,x,b,te,re,oe,le,fe){$o(this),a===void 0&&(a=tl),this.na=a,this.l=2,x!==void 0?this.Dc=x:this.Dc=0,b!==void 0?this.Ec=b:this.Ec=0,te===void 0&&(te=0),re===void 0&&(re=0),oe===void 0&&(oe=0),le===void 0&&(le=0),a===Eh?(a=oe%360,0>a&&(a+=360),this.Ne=a,this.Vh=0,this.Wh=Math.max(te,0),this.Pg=Math.max(re,0),typeof le=="boolean"?le&&(this.isLargeArc=!0):typeof le=="number"&&le&&(this.isLargeArc=!0),fe&&(this.isClockwiseArc=!0)):(this.Ne=te,this.Vh=re,a===Du&&(oe=Math.max(oe,0)),this.Wh=oe,typeof le=="number"?(a===Du&&(le=Math.max(le,0)),this.Pg=le):this.Pg=0),this.ae=null}$s.prototype.copy=function(){var a=new $s;return a.na=this.na,a.l=this.l&-2,a.Dc=this.Dc,a.Ec=this.Ec,a.Ne=this.Ne,a.Vh=this.Vh,a.Wh=this.Wh,a.Pg=this.Pg,a},We=$s.prototype,We.Xa=function(a){if(!(a instanceof $s)||this.type!==a.type||this.isClosed!==a.isClosed)return!1;switch(this.type){case Au:case tl:return _t.B(this.endX,a.endX)&&_t.B(this.endY,a.endY);case Yu:return _t.B(this.endX,a.endX)&&_t.B(this.endY,a.endY)&&_t.B(this.point1X,a.point1X)&&_t.B(this.point1Y,a.point1Y)&&_t.B(this.point2X,a.point2X)&&_t.B(this.point2Y,a.point2Y);case Ch:return _t.B(this.endX,a.endX)&&_t.B(this.endY,a.endY)&&_t.B(this.point1X,a.point1X)&&_t.B(this.point1Y,a.point1Y);case Du:return _t.B(this.startAngle,a.startAngle)&&_t.B(this.sweepAngle,a.sweepAngle)&&_t.B(this.centerX,a.centerX)&&_t.B(this.centerY,a.centerY)&&_t.B(this.radiusX,a.radiusX)&&_t.B(this.radiusY,a.radiusY);case Eh:return this.isClockwiseArc===a.isClockwiseArc&&this.isLargeArc===a.isLargeArc&&_t.B(this.xAxisRotation,a.xAxisRotation)&&_t.B(this.endX,a.endX)&&_t.B(this.endY,a.endY)&&_t.B(this.radiusX,a.radiusX)&&_t.B(this.radiusY,a.radiusY);default:return!1}},We.qb=function(a){a.classType===$s&&(this.type=a)},We.toString=function(a){switch(a===void 0&&(a=-1),this.type){case Au:a=0>a?"M"+this.endX.toString()+" "+this.endY.toString():"M"+this.endX.toFixed(a)+" "+this.endY.toFixed(a);break;case tl:a=0>a?"L"+this.endX.toString()+" "+this.endY.toString():"L"+this.endX.toFixed(a)+" "+this.endY.toFixed(a);break;case Yu:a=0>a?"C"+this.point1X.toString()+" "+this.point1Y.toString()+" "+this.point2X.toString()+" "+this.point2Y.toString()+" "+this.endX.toString()+" "+this.endY.toString():"C"+this.point1X.toFixed(a)+" "+this.point1Y.toFixed(a)+" "+this.point2X.toFixed(a)+" "+this.point2Y.toFixed(a)+" "+this.endX.toFixed(a)+" "+this.endY.toFixed(a);break;case Ch:a=0>a?"Q"+this.point1X.toString()+" "+this.point1Y.toString()+" "+this.endX.toString()+" "+this.endY.toString():"Q"+this.point1X.toFixed(a)+" "+this.point1Y.toFixed(a)+" "+this.endX.toFixed(a)+" "+this.endY.toFixed(a);break;case Du:a=0>a?"B"+this.startAngle.toString()+" "+this.sweepAngle.toString()+" "+this.centerX.toString()+" "+this.centerY.toString()+" "+this.radiusX.toString()+" "+this.radiusY.toString():"B"+this.startAngle.toFixed(a)+" "+this.sweepAngle.toFixed(a)+" "+this.centerX.toFixed(a)+" "+this.centerY.toFixed(a)+" "+this.radiusX.toFixed(a)+" "+this.radiusY.toFixed(a);break;case Eh:a=0>a?"A"+this.radiusX.toString()+" "+this.radiusY.toString()+" "+this.xAxisRotation.toString()+" "+(this.isLargeArc?1:0)+" "+(this.isClockwiseArc?1:0)+" "+this.endX.toString()+" "+this.endY.toString():"A"+this.radiusX.toFixed(a)+" "+this.radiusY.toFixed(a)+" "+this.xAxisRotation.toFixed(a)+" "+(this.isLargeArc?1:0)+" "+(this.isClockwiseArc?1:0)+" "+this.endX.toFixed(a)+" "+this.endY.toFixed(a);break;default:a=this.type.toString()}return a+(this.isClosed?"z":"")},We.freeze=function(){return this._isFrozen=!0,this},We.ka=function(){return this._isFrozen=!1,this},We.close=function(){return this.isClosed=!0,this};function zc(a,x){if(a.ae!==null&&x._isInvalidBounds===!1)return a.ae;var b=a.radiusX,te=a.radiusY;if(te===void 0&&(te=b),b===0||te===0)return a.ae=[],a.ae;x=a.Ne;var re=a.Vh,oe=_t.jx(0,0,b<te?b:te,a.startAngle,a.startAngle+a.sweepAngle,!1);if(b!==te){var le=Br.alloc();le.reset(),b<te?le.scale(1,te/b):le.scale(b/te,1),ai.Ha(oe,le),Br.free(le)}for(b=oe.length,te=0;te<b;te++)le=oe[te],le[0]+=x,le[1]+=re,le[2]+=x,le[3]+=re,le[4]+=x,le[5]+=re,le[6]+=x,le[7]+=re;return a.ae=oe,a.ae}function _c(a,x,b,te){function re(Ke,Pt,ft,Nt){return(Ke*Nt<Pt*ft?-1:1)*Math.acos((Ke*ft+Pt*Nt)/(Math.sqrt(Ke*Ke+Pt*Pt)*Math.sqrt(ft*ft+Nt*Nt)))}if(a.ae!==null&&x._isInvalidBounds===!1)return a.ae;if(a.radiusX===0||a.radiusY===0)return a.ae=[],a.ae;x=a.Wh;var oe=a.Pg;x===0&&(x=1e-4),oe===0&&(oe=1e-4);var le=Math.PI/180*a.Ne,fe=a.isLargeArc,ge=a.isClockwiseArc,ye=a.Dc,we=a.Ec,be=Math.cos(le),ke=Math.sin(le),Ue=be*(b-ye)/2+ke*(te-we)/2;le=-ke*(b-ye)/2+be*(te-we)/2;var Ve=Ue*Ue/(x*x)+le*le/(oe*oe);return 1<Ve&&(x*=Math.sqrt(Ve),oe*=Math.sqrt(Ve)),Ve=(fe===ge?-1:1)*Math.sqrt((x*x*oe*oe-x*x*le*le-oe*oe*Ue*Ue)/(x*x*le*le+oe*oe*Ue*Ue)),isNaN(Ve)&&(Ve=0),fe=Ve*x*le/oe,Ve=Ve*-oe*Ue/x,isNaN(fe)&&(fe=0),isNaN(Ve)&&(Ve=0),b=(b+ye)/2+be*fe-ke*Ve,te=(te+we)/2+ke*fe+be*Ve,we=re(1,0,(Ue-fe)/x,(le-Ve)/oe),be=(Ue-fe)/x,ye=(le-Ve)/oe,Ue=(-Ue-fe)/x,fe=(-le-Ve)/oe,le=re(be,ye,Ue,fe),Ue=(be*Ue+ye*fe)/(Math.sqrt(be*be+ye*ye)*Math.sqrt(Ue*Ue+fe*fe)),-1>=Ue?le=Math.PI:1<=Ue&&(le=0),!ge&&0<le&&(le-=2*Math.PI),ge&&0>le&&(le+=2*Math.PI),ge=x>oe?1:x/oe,Ue=x>oe?oe/x:1,x=_t.jx(0,0,x>oe?x:oe,we,we+le,!0),oe=Br.alloc(),oe.reset(),oe.translate(b,te),oe.rotate(a.Ne,0,0),oe.scale(ge,Ue),ai.Ha(x,oe),Br.free(oe),a.ae=x,a.ae}pn.Object.defineProperties($s.prototype,{_isFrozen:{get:function(){return(this.l&1)!==0},set:function(a){this.l=a?this.l|1:this.l&-2}},_isInvalidBounds:{get:function(){return(this.l&2)!==0},set:function(a){this.l=a?this.l|2:this.l&-3}},isClosed:{get:function(){return(this.l&8)!==0},set:function(a){this.isClosed!==a&&(this.l=a?this.l|8:this.l&-9,this._isInvalidBounds=!0)}},type:{get:function(){return this.na},set:function(a){this._isFrozen&&Ar(this,a),this.na=a,this._isInvalidBounds=!0}},endX:{get:function(){return this.Dc},set:function(a){this._isFrozen&&Ar(this,a),this.Dc=a,this._isInvalidBounds=!0}},endY:{get:function(){return this.Ec},set:function(a){this._isFrozen&&Ar(this,a),this.Ec=a,this._isInvalidBounds=!0}},point1X:{get:function(){return this.Ne},set:function(a){this._isFrozen&&Ar(this,a),this.Ne=a,this._isInvalidBounds=!0}},point1Y:{get:function(){return this.Vh},set:function(a){this._isFrozen&&Ar(this,a),this.Vh=a,this._isInvalidBounds=!0}},point2X:{get:function(){return this.Wh},set:function(a){this._isFrozen&&Ar(this,a),this.Wh=a,this._isInvalidBounds=!0}},point2Y:{get:function(){return this.Pg},set:function(a){this._isFrozen&&Ar(this,a),this.Pg=a,this._isInvalidBounds=!0}},centerX:{get:function(){return this.Ne},set:function(a){this._isFrozen&&Ar(this,a),this.Ne=a,this._isInvalidBounds=!0}},centerY:{get:function(){return this.Vh},set:function(a){this._isFrozen&&Ar(this,a),this.Vh=a,this._isInvalidBounds=!0}},radiusX:{get:function(){return this.Wh},set:function(a){0>a&&Xo(a,">= zero",$s,"radiusX"),this._isFrozen&&Ar(this,a),this.Wh=a,this._isInvalidBounds=!0}},radiusY:{get:function(){return this.Pg},set:function(a){0>a&&Xo(a,">= zero",$s,"radiusY"),this._isFrozen&&Ar(this,a),this.Pg=a,this._isInvalidBounds=!0}},startAngle:{get:function(){return this.Dc},set:function(a){this._isFrozen&&Ar(this,a),a%=360,0>a&&(a+=360),this.Dc=a,this._isInvalidBounds=!0}},sweepAngle:{get:function(){return this.Ec},set:function(a){this._isFrozen&&Ar(this,a),360<a&&(a=360),-360>a&&(a=-360),this.Ec=a,this._isInvalidBounds=!0}},isClockwiseArc:{get:function(){return(this.l&4)!==0},set:function(a){this._isFrozen&&Ar(this,a),this.l=a?this.l|4:this.l&-5,this._isInvalidBounds=!0}},isLargeArc:{get:function(){return(this.l&16)!==0},set:function(a){this._isFrozen&&Ar(this,a),this.l=a?this.l|16:this.l&-17,this._isInvalidBounds=!0}},xAxisRotation:{get:function(){return this.Ne},set:function(a){this._isFrozen&&Ar(this,a),a%=360,0>a&&(a+=360),this.Ne=a,this._isInvalidBounds=!0}}}),$s.prototype.equalsApprox=$s.prototype.Xa;var Au=new Ni($s,"Move",0),tl=new Ni($s,"Line",1),Yu=new Ni($s,"Bezier",2),Ch=new Ni($s,"QuadraticBezier",3),Du=new Ni($s,"Arc",4),Eh=new Ni($s,"SvgArc",4);$s.className="PathSegment",$s.Move=Au,$s.Line=tl,$s.Bezier=Yu,$s.QuadraticBezier=Ch,$s.Arc=Du,$s.SvgArc=Eh;function Ju(){this.H=null,this.xu=new it(0,0).freeze(),this.mt=new it(0,0).freeze(),this.Bp=this.Rq=0,this.Cp=1,this.xq="",this.Wr=this.Tp=!1,this.Rp=this.Ep=0,this.xg=this.nq=this.tq=!1,this.Zp=null,this.Rr=0,this.xd=this.Nr=null}Ju.prototype.copy=function(){var a=new Ju;return this.clone(a)},Ju.prototype.clone=function(a){return a.H=this.H,a.xu.assign(this.viewPoint),a.mt.assign(this.documentPoint),a.Rq=this.Rq,a.Bp=this.Bp,a.Cp=this.Cp,a.xq=this.xq,a.Tp=this.Tp,a.Wr=this.Wr,a.Ep=this.Ep,a.Rp=this.Rp,a.tq=this.tq,a.nq=this.nq,a.xg=this.xg,a.Zp=this.Zp,a.Rr=this.Rr,a.Nr=this.Nr,a.xd=this.xd,a},Ju.prototype.toString=function(){var a="^";return this.modifiers!==0&&(a+="M:"+this.modifiers),this.button!==0&&(a+="B:"+this.button),this.key!==""&&(a+="K:"+this.key),this.clickCount!==0&&(a+="C:"+this.clickCount),this.delta!==0&&(a+="D:"+this.delta),this.handled&&(a+="h"),this.bubbles&&(a+="b"),this.documentPoint!==null&&(a+="@"+this.documentPoint.toString()),a},Ju.prototype.So=function(a,x){var b=this.diagram;return b===null||SS(b,a,x),x},Ju.prototype.Bz=function(a,x){var b=this.diagram;return b===null||(SS(b,a,x),x.assign(b.Ps(x))),x},pn.Object.defineProperties(Ju.prototype,{diagram:{get:function(){return this.H},set:function(a){this.H=a}},viewPoint:{get:function(){return this.xu},set:function(a){this.xu.assign(a)}},documentPoint:{get:function(){return this.mt},set:function(a){this.mt.assign(a)}},modifiers:{get:function(){return this.Rq},set:function(a){this.Rq=a}},button:{get:function(){return this.Bp},set:function(a){if(this.Bp=a,this.event===null)switch(a){case 0:this.buttons=1;break;case 1:this.buttons=4;break;case 2:this.buttons=2}}},buttons:{get:function(){return this.Cp},set:function(a){this.Cp=a}},key:{get:function(){return this.xq},set:function(a){this.xq=a}},down:{get:function(){return this.Tp},set:function(a){this.Tp=a}},up:{get:function(){return this.Wr},set:function(a){this.Wr=a}},clickCount:{get:function(){return this.Ep},set:function(a){this.Ep=a}},delta:{get:function(){return this.Rp},set:function(a){this.Rp=a}},isMultiTouch:{get:function(){return this.tq},set:function(a){this.tq=a}},handled:{get:function(){return this.nq},set:function(a){this.nq=a}},bubbles:{get:function(){return this.xg},set:function(a){this.xg=a}},event:{get:function(){return this.Zp},set:function(a){this.Zp=a}},isTouchEvent:{get:function(){var a=this.event;return a===null?!1:a.pointerType==="touch"||a.pointerType==="pen"}},timestamp:{get:function(){return this.Rr},set:function(a){this.Rr=a}},targetDiagram:{get:function(){return this.Nr},set:function(a){this.Nr=a}},targetObject:{get:function(){return this.xd},set:function(a){this.xd=a}},control:{get:function(){return(this.modifiers&1)!==0},set:function(a){this.modifiers=a?this.modifiers|1:this.modifiers&-2}},shift:{get:function(){return(this.modifiers&4)!==0},set:function(a){this.modifiers=a?this.modifiers|4:this.modifiers&-5}},alt:{get:function(){return(this.modifiers&2)!==0},set:function(a){this.modifiers=a?this.modifiers|2:this.modifiers&-3}},meta:{get:function(){return(this.modifiers&8)!==0},set:function(a){this.modifiers=a?this.modifiers|8:this.modifiers&-9}},left:{get:function(){var a=this.event;return a===null||a.type!=="mousedown"&&a.type!=="mouseup"&&a.type!=="pointerdown"&&a.type!=="pointerup"?(this.buttons&1)!==0:this.button===0},set:function(a){this.buttons=a?this.buttons|1:this.buttons&-2}},right:{get:function(){var a=this.event;return a===null||a.type!=="mousedown"&&a.type!=="mouseup"&&a.type!=="pointerdown"&&a.type!=="pointerup"?(this.buttons&2)!==0:this.button===2},set:function(a){this.buttons=a?this.buttons|2:this.buttons&-3}},middle:{get:function(){var a=this.event;return a===null||a.type!=="mousedown"&&a.type!=="mouseup"&&a.type!=="pointerdown"&&a.type!=="pointerup"?(this.buttons&4)!==0:this.button===1},set:function(a){this.buttons=a?this.buttons|4:this.buttons&-5}}}),Ju.prototype.getMultiTouchDocumentPoint=Ju.prototype.Bz,Ju.prototype.getMultiTouchViewPoint=Ju.prototype.So,Ju.className="InputEvent";function xf(){this.H=null,this.xa="",this.ar=this.Lr=null}xf.prototype.copy=function(){var a=new xf;return a.H=this.H,a.xa=this.xa,a.Lr=this.Lr,a.ar=this.ar,a},xf.prototype.toString=function(){var a="*"+this.name;return this.subject!==null&&(a+=":"+this.subject.toString()),this.parameter!==null&&(a+="("+this.parameter.toString()+")"),a},pn.Object.defineProperties(xf.prototype,{diagram:{get:function(){return this.H},set:function(a){this.H=a}},name:{get:function(){return this.xa},set:function(a){this.xa=a}},subject:{get:function(){return this.Lr},set:function(a){this.Lr=a}},parameter:{get:function(){return this.ar},set:function(a){this.ar=a}}}),xf.className="DiagramEvent";function ul(){this.Fm=Dl,this.rf=this.Qq="",this.Ln=this.Mn=this.Rn=this.Sn=this.Qn=this.H=this.cc=null}ul.prototype.clear=function(){this.Ln=this.Mn=this.Rn=this.Sn=this.Qn=this.H=this.cc=null},ul.prototype.copy=function(){var a=new ul;a.Fm=this.Fm,a.Qq=this.Qq,a.rf=this.rf,a.cc=this.cc,a.H=this.H,a.Qn=this.Qn;var x=this.Sn;return a.Sn=Ji(x)&&typeof x.J=="function"?x.J():x,x=this.Rn,a.Rn=Ji(x)&&typeof x.J=="function"?x.J():x,x=this.Mn,a.Mn=Ji(x)&&typeof x.J=="function"?x.J():x,x=this.Ln,a.Ln=Ji(x)&&typeof x.J=="function"?x.J():x,a},ul.prototype.qb=function(a){a.classType===ul&&(this.change=a)},ul.prototype.toString=function(){var a="";return a=this.change===Ka?a+"* ":this.change===Dl?a+(this.model!==null?"!m":"!d"):a+((this.model!==null?"!m":"!d")+this.change),this.propertyName&&typeof this.propertyName=="string"&&(a+=" "+this.propertyName),this.modelChange&&this.modelChange!==this.propertyName&&(a+=" "+this.modelChange),a+=": ",this.change===Ka?this.oldValue!==null&&(a+=" "+this.oldValue):(this.object!==null&&(a+=da(this.object)),this.oldValue!==null&&(a+=" old: "+da(this.oldValue)),this.oldParam!==null&&(a+=" "+this.oldParam),this.newValue!==null&&(a+=" new: "+da(this.newValue)),this.newParam!==null&&(a+=" "+this.newParam)),a},ul.prototype.I=function(a){return a?this.oldValue:this.newValue},ul.prototype.Dz=function(a){return a?this.oldParam:this.newParam},ul.prototype.canUndo=function(){return this.model!==null||this.diagram!==null},ul.prototype.undo=function(){this.canUndo()&&(this.model!==null?this.model.changeState(this,!0):this.diagram!==null&&this.diagram.changeState(this,!0))},ul.prototype.canRedo=function(){return this.model!==null||this.diagram!==null},ul.prototype.redo=function(){this.canRedo()&&(this.model!==null?this.model.changeState(this,!1):this.diagram!==null&&this.diagram.changeState(this,!1))},pn.Object.defineProperties(ul.prototype,{model:{get:function(){return this.cc},set:function(a){this.cc=a}},diagram:{get:function(){return this.H},set:function(a){this.H=a}},change:{get:function(){return this.Fm},set:function(a){this.Fm=a}},modelChange:{get:function(){return this.Qq},set:function(a){this.Qq=a}},propertyName:{get:function(){return this.rf},set:function(a){this.rf=a}},isTransactionFinished:{get:function(){return this.Fm===Ka&&(this.rf==="CommittedTransaction"||this.rf==="FinishedUndo"||this.rf==="FinishedRedo")}},object:{get:function(){return this.Qn},set:function(a){this.Qn=a}},oldValue:{get:function(){return this.Sn},set:function(a){this.Sn=a}},oldParam:{get:function(){return this.Rn},set:function(a){this.Rn=a}},newValue:{get:function(){return this.Mn},set:function(a){this.Mn=a}},newParam:{get:function(){return this.Ln},set:function(a){this.Ln=a}}}),ul.prototype.redo=ul.prototype.redo,ul.prototype.canRedo=ul.prototype.canRedo,ul.prototype.undo=ul.prototype.undo,ul.prototype.canUndo=ul.prototype.canUndo,ul.prototype.getParam=ul.prototype.Dz,ul.prototype.getValue=ul.prototype.I,ul.prototype.clear=ul.prototype.clear;var Ka=new Ni(ul,"Transaction",-1),Dl=new Ni(ul,"Property",0),Ol=new Ni(ul,"Insert",1),Ou=new Ni(ul,"Remove",2);ul.className="ChangedEvent",ul.Transaction=Ka,ul.Property=Dl,ul.Insert=Ol,ul.Remove=Ou;function Wu(){this.o=new Zi().freeze(),this.xa="",this.j=!1}Wu.prototype.toString=function(a){var x="Transaction: "+this.name+" "+this.changes.count.toString()+(this.isComplete?"":", incomplete");if(a!==void 0&&0<a){a=this.changes.count;for(var b=0;b<a;b++){var te=this.changes.M(b);te!==null&&(x+=`
|
|
`+te.toString())}}return x},Wu.prototype.clear=function(){var a=this.changes;a.ka();for(var x=a.count-1;0<=x;x--){var b=a.M(x);b!==null&&b.clear()}a.clear(),a.freeze()},Wu.prototype.canUndo=function(){return this.isComplete},Wu.prototype.undo=function(){if(this.canUndo())for(var a=this.changes.count-1;0<=a;a--){var x=this.changes.M(a);x!==null&&x.undo()}},Wu.prototype.canRedo=function(){return this.isComplete},Wu.prototype.redo=function(){if(this.canRedo())for(var a=this.changes.count,x=0;x<a;x++){var b=this.changes.M(x);b!==null&&b.redo()}},Wu.prototype.ak=function(){if(this.isComplete){var a=this.changes;a.ka();for(var x=new kn,b=0;b<a.count;b++){var te=a.M(b);if(te!==null&&te.change===Dl&&te.object){var re=x.get(te.object);re||(re=new kn,x.set(te.object,re));var oe=re.get(te.propertyName);oe===null?re.set(te.propertyName,-1):(0<oe&&a.cd(oe,null),re.set(te.propertyName,b))}}for(b=x=0;b<a.count;b++)te=a.M(b),te!==null&&(b>x&&a.cd(x,te),x++);for(;a.length>x;)a.pop();a.freeze()}},pn.Object.defineProperties(Wu.prototype,{changes:{get:function(){return this.o}},name:{get:function(){return this.xa},set:function(a){this.xa=a}},isComplete:{get:function(){return this.j},set:function(a){this.j=a}}}),Wu.prototype.optimize=Wu.prototype.ak,Wu.prototype.redo=Wu.prototype.redo,Wu.prototype.canRedo=Wu.prototype.canRedo,Wu.prototype.undo=Wu.prototype.undo,Wu.prototype.canUndo=Wu.prototype.canUndo,Wu.prototype.clear=Wu.prototype.clear,Wu.className="Transaction";function Jl(){this.Pt=new Yi,this.Jd=!1,this.u=new Zi().freeze(),this.Ce=-1,this.o=999,this.Fe=!1,this.Np=null,this.bi=0,this.j=!1,this.Ie=new Zi().freeze(),this.hl=new Zi,this.tt=!0,this.Dt=this.rq=this.Gt=this.Ft=!1}Jl.prototype.toString=function(a){var x="UndoManager "+this.historyIndex+"<"+this.history.count+"<="+this.maxHistoryLength;x+="[";for(var b=this.nestedTransactionNames.count,te=0;te<b;te++)0<te&&(x+=" "),x+=this.nestedTransactionNames.M(te);if(x+="]",a!==void 0&&0<a)for(b=this.history.count,te=0;te<b;te++)x+=`
|
|
`+this.history.M(te).toString(a-1);return x},Jl.prototype.clear=function(){var a=this.history;a.ka();for(var x=a.count-1;0<=x;x--){var b=a.M(x);b!==null&&b.clear()}a.clear(),this.Ce=-1,a.freeze(),this.Fe=!1,this.Np=null,this.bi=0,this.Ie.ka(),this.Ie.clear(),this.Ie.freeze(),this.hl.clear(),this.Dt=this.rq=this.Gt=this.Ft=!1},Jl.prototype.copyProperties=function(a){this.isEnabled=a.isEnabled,this.maxHistoryLength=a.maxHistoryLength,this.checksTransactionLevel=a.checksTransactionLevel},We=Jl.prototype,We.Xw=function(a){this.Pt.add(a)},We.Rx=function(a){this.Pt.remove(a)},We.Ea=function(a){if(a===void 0&&(a=""),a===null&&(a=""),this.isUndoingRedoing)return!1;this.tt===!0&&(this.tt=!1,this.bi++,this.isInternalTransaction||this.Ob("StartingFirstTransaction",a,this.currentTransaction),0<this.bi&&this.bi--),this.isEnabled&&(this.Ie.ka(),this.Ie.add(a),this.Ie.freeze(),this.currentTransaction===null?this.hl.add(0):this.hl.add(this.currentTransaction.changes.count)),this.bi++;var x=this.transactionLevel===1;return x&&(this.isInternalTransaction||this.Ob("StartedTransaction",a,this.currentTransaction)),x},We.eb=function(a){return a===void 0&&(a=""),tf(this,!0,a)},We.Kf=function(){return tf(this,!1,"")};function tf(a,x,b){if(a.isUndoingRedoing)return!1;a.checksTransactionLevel&&1>a.transactionLevel&&al("Ending transaction without having started a transaction: "+b);var te=a.transactionLevel===1,re=a.currentTransaction;te&&x&&(a.isInternalTransaction||a.Ob("CommittingTransaction",b,re));var oe=0;if(0<a.transactionLevel&&(a.bi--,a.isEnabled)){var le=a.Ie.count;0<le&&(b===""&&(b=a.Ie.M(0)),a.Ie.ka(),a.Ie.mb(le-1),a.Ie.freeze()),le=a.hl.count,0<le&&(oe=a.hl.M(le-1),a.hl.mb(le-1))}if(te){if(x)a.rq=!1,re===null&&b!==""&&(re=a.currentTransaction),a.isEnabled&&re!==null&&(re.isComplete||(re.isComplete=!0,re.name=b),a.lx(),x=a.history,x.ka(),te=a.maxHistoryLength,0<=te&&(te===0?x.clear():x.count>=te&&(oe=x.M(0),oe!==null&&oe.clear(),x.mb(0),a.Ce--)),te===0||x.count!==0&&x.get(x.count-1)===re||(x.add(re),a.Ce++),x.freeze()),a.isInternalTransaction||a.Ob("CommittedTransaction",b,re);else{a.Fe=!0;try{a.isEnabled&&re!==null&&(re.isComplete=!0,re.undo())}finally{a.isInternalTransaction||a.Ob("RolledBackTransaction",b,re),a.Fe=!1}re!==null&&re.clear()}return a.Np=null,a.isPendingClear&&a.clear(),a.isPendingClear=!1,a.isPendingUnmodified=!1,!0}if(a.isEnabled&&!x&&re!==null){for(a=oe,b=re.changes,re=b.count-1;re>=a;re--)x=b.M(re),x!==null&&x.undo(),b.ka(),b.mb(re);b.freeze()}return!1}We.lx=function(){if(!this.isUndoingRedoing&&this.canRedo()){var a=this.history;a.ka();for(var x=a.count-1;x>this.historyIndex;x--){var b=a.M(x);b!==null&&b.clear(),a.mb(x),this.rq=!0}a.freeze()}},Jl.prototype.canUndo=function(){if(!this.isEnabled||0<this.transactionLevel)return!1;var a=this.transactionToUndo;return!!(a!==null&&a.canUndo())},Jl.prototype.undo=function(){if(this.canUndo()){var a=this.transactionToUndo;try{this.Fe=!0,this.Ob("StartingUndo","Undo",a),this.Ce--,a.undo()}catch(x){al("undo error: "+x.toString())}finally{this.Ob("FinishedUndo","Undo",a),this.Fe=!1}}},Jl.prototype.canRedo=function(){if(!this.isEnabled||0<this.transactionLevel)return!1;var a=this.transactionToRedo;return!!(a!==null&&a.canRedo())},Jl.prototype.redo=function(){if(this.canRedo()){var a=this.transactionToRedo;try{this.Fe=!0,this.Ob("StartingRedo","Redo",a),this.Ce++,a.redo()}catch(x){al("redo error: "+x.toString())}finally{this.Ob("FinishedRedo","Redo",a),this.Fe=!1}}},Jl.prototype.Ob=function(a,x,b){b===void 0&&(b=null);var te=new ul;for(te.change=Ka,te.propertyName=a,te.object=b,te.oldValue=x,a=this.models;a.next();)x=a.value,te.model=x,x.ds(te)},Jl.prototype.Tu=function(a){if(this.isEnabled&&!this.isUndoingRedoing&&!this.skipsEvent(a)){var x=this.currentTransaction;x===null&&(this.Np=x=new Wu);var b=a.copy();x=x.changes,x.ka(),x.add(b),x.freeze(),this.checksTransactionLevel&&0>=this.transactionLevel&&!this.tt&&(a=a.diagram,a!==null&&a.pi===!1||al("Change not within a transaction: "+b.toString()))}},Jl.prototype.skipsEvent=function(a){if(a===null||0>a.change.value)return!0;if(a=a.object,a===null)return!1;if(a.layer!==void 0){if(a=a.layer,a!==null&&a.isTemporary)return!0}else if(a.isTemporary)return!0;return!1},pn.Object.defineProperties(Jl.prototype,{models:{get:function(){return this.Pt.iterator}},isEnabled:{get:function(){return this.Jd},set:function(a){this.Jd=a}},transactionToUndo:{get:function(){return 0<=this.historyIndex&&this.historyIndex<=this.history.count-1?this.history.M(this.historyIndex):null}},transactionToRedo:{get:function(){return this.historyIndex<this.history.count-1?this.history.M(this.historyIndex+1):null}},isUndoingRedoing:{get:function(){return this.Fe}},history:{get:function(){return this.u}},maxHistoryLength:{get:function(){return this.o},set:function(a){this.o=a}},historyIndex:{get:function(){return this.Ce}},currentTransaction:{get:function(){return this.Np}},transactionLevel:{get:function(){return this.bi}},isInTransaction:{get:function(){return 0<this.bi}},checksTransactionLevel:{get:function(){return this.j},set:function(a){this.j=a}},nestedTransactionNames:{get:function(){return this.Ie}},isPendingClear:{get:function(){return this.Ft},set:function(a){this.Ft=a}},isPendingUnmodified:{get:function(){return this.Gt},set:function(a){this.Gt=a}},isInternalTransaction:{get:function(){return this.Dt},set:function(a){this.Dt=a}},isJustDiscarded:{get:function(){return this.rq}}}),Jl.prototype.handleChanged=Jl.prototype.Tu,Jl.prototype.redo=Jl.prototype.redo,Jl.prototype.undo=Jl.prototype.undo,Jl.prototype.canUndo=Jl.prototype.canUndo,Jl.prototype.discardHistoryAfterIndex=Jl.prototype.lx,Jl.prototype.rollbackTransaction=Jl.prototype.Kf,Jl.prototype.commitTransaction=Jl.prototype.eb,Jl.prototype.startTransaction=Jl.prototype.Ea,Jl.prototype.removeModel=Jl.prototype.Rx,Jl.prototype.addModel=Jl.prototype.Xw,Jl.prototype.clear=Jl.prototype.clear,Jl.className="UndoManager";function la(){$o(this),this.H=sm,this.xa="",this.Jd=!0,this.nb=!1,this.wm=null,this.yy=new Ju,this.Zr=-1}la.prototype.toString=function(){return this.name!==""?this.name+" Tool":Jo(this.constructor)},la.prototype.updateAdornments=function(){},la.prototype.canStart=function(){return this.isEnabled},la.prototype.doStart=function(){},la.prototype.doActivate=function(){this.isActive=!0},la.prototype.doDeactivate=function(){this.isActive=!1},la.prototype.doStop=function(){},la.prototype.doCancel=function(){this.transactionResult=null,this.stopTool()},la.prototype.stopTool=function(){var a=this.diagram;a.currentTool===this&&(a.currentTool=null,a.currentCursor="")},la.prototype.doMouseDown=function(){!this.isActive&&this.canStart()&&this.doActivate()},la.prototype.doMouseMove=function(){},la.prototype.doMouseUp=function(){this.stopTool()},la.prototype.doMouseWheel=function(){},la.prototype.canStartMultiTouch=function(){return!0},la.prototype.standardPinchZoomStart=function(){var a=this.diagram,x=a.lastInput,b=x.So(0,it.allocAt(NaN,NaN)),te=x.So(1,it.allocAt(NaN,NaN));if(b.w()&&te.w()&&(this.doCancel(),a.Ql("hasGestureZoom"))){a.Bw=a.scale;var re=te.x-b.x,oe=te.y-b.y;a.Jw=Math.sqrt(re*re+oe*oe),x.bubbles=!1}it.free(b),it.free(te)},la.prototype.standardPinchZoomMove=function(){var a=this.diagram,x=a.lastInput,b=x.So(0,it.allocAt(NaN,NaN)),te=x.So(1,it.allocAt(NaN,NaN));if(b.w()&&te.w()&&(this.doCancel(),a.Ql("hasGestureZoom"))){var re=te.x-b.x,oe=te.y-b.y;oe=Math.sqrt(re*re+oe*oe)/a.Jw,re=new it((Math.min(te.x,b.x)+Math.max(te.x,b.x))/2,(Math.min(te.y,b.y)+Math.max(te.y,b.y))/2),oe*=a.Bw;var le=a.commandHandler;if(oe!==a.scale&&le.canResetZoom(oe)){var fe=a.zoomPoint;a.zoomPoint=re,le.resetZoom(oe),a.zoomPoint=fe}x.bubbles=!1}it.free(b),it.free(te)},la.prototype.doKeyDown=function(){this.diagram.lastInput.key==="Esc"&&this.doCancel()},la.prototype.doKeyUp=function(){},la.prototype.Ea=function(a){return a===void 0&&(a=this.name),this.transactionResult=null,this.diagram.Ea(a)},la.prototype.stopTransaction=function(){var a=this.diagram;return this.transactionResult===null?a.Kf():a.eb(this.transactionResult)},la.prototype.standardMouseSelect=function(){var a=this.diagram;if(a.allowSelect){var x=a.lastInput,b=a.Ol(x.documentPoint,!1);if(b!==null){if(iu?x.meta:x.control){for(a.R("ChangingSelection",a.selection),x=b;x!==null&&!x.canSelect();)x=x.containingGroup;x!==null&&(x.isSelected=!x.isSelected),a.R("ChangedSelection",a.selection)}else if(x.shift){if(!b.isSelected){for(a.R("ChangingSelection",a.selection),x=b;x!==null&&!x.canSelect();)x=x.containingGroup;x!==null&&(x.isSelected=!0),a.R("ChangedSelection",a.selection)}}else if(!b.isSelected){for(x=b;x!==null&&!x.canSelect();)x=x.containingGroup;x!==null&&a.select(x)}}else!x.left||(iu?x.meta:x.control)||x.shift||a.clearSelection()}},la.prototype.standardMouseClick=function(a,x){a===void 0&&(a=null),x===void 0&&(x=function(re){return!re.layer.isTemporary});var b=this.diagram,te=b.lastInput;return a=b.ic(te.documentPoint,a,x),te.targetObject=a,rg(a,te,b),te.handled};function rg(a,x,b){if(x.handled=!1,a===null||a.If()){var te=0;x.left?te=x.clickCount===1?1:x.clickCount===2?2:1:x.right&&x.clickCount===1&&(te=3);var re="ObjectSingleClicked";if(a!==null){switch(te){case 1:re="ObjectSingleClicked";break;case 2:re="ObjectDoubleClicked";break;case 3:re="ObjectContextClicked"}te!==0&&b.R(re,a)}else{switch(te){case 1:re="BackgroundSingleClicked";break;case 2:re="BackgroundDoubleClicked";break;case 3:re="BackgroundContextClicked"}te!==0&&b.R(re)}if(a!==null)for(;a!==null;){switch(b=null,te){case 1:b=a.click;break;case 2:b=a.doubleClick?a.doubleClick:a.click;break;case 3:b=a.contextClick}if(b!==null&&(b(x,a),x.handled))break;a=a.panel}else{switch(a=null,te){case 1:a=b.click;break;case 2:a=b.doubleClick?b.doubleClick:b.click;break;case 3:a=b.contextClick}a!==null&&a(x)}}}la.prototype.standardMouseOver=function(){var a=this.diagram,x=a.lastInput;if(a.animationManager.zb!==!0){var b=a.skipsUndoManager;a.skipsUndoManager=!0;var te=a.viewportBounds.ca(x.documentPoint)?a.ic(x.documentPoint,null,null):null;!x.event||x.event.type!=="pointercancel"&&x.event.type!=="pointerout"||(te=null),x.targetObject=te;var re=!1;if(te!==a.Ck){var oe=a.Ck,le=oe;for(a.Ck=te,this.doCurrentObjectChanged(oe,te),x.handled=!1;oe!==null;){var fe=oe.mouseLeave;if(fe!==null&&(te===oe||te!==null&&te.rg(oe)||(fe(x,oe,te),re=!0,x.handled)))break;oe=oe.panel}for(oe=le,x.handled=!1;te!==null&&(le=te.mouseEnter,!(le!==null&&(oe===te||oe!==null&&oe.rg(te)||(le(x,te,oe),re=!0,x.handled))));)te=te.panel;te=a.Ck}if(te!==null){for(oe=te,le="";oe!==null&&(le=oe.cursor,le==="");)oe=oe.panel;for(a.currentCursor=le,x.handled=!1,oe=te;oe!==null&&(te=oe.mouseOver,!(te!==null&&(te(x,oe),re=!0,x.handled)));)oe=oe.panel}else this.doUpdateCursor(null),te=a.mouseOver,te!==null&&(te(x),re=!0);re&&a.$b(),a.skipsUndoManager=b}},la.prototype.doUpdateCursor=function(){var a=this.diagram;a&&(a.currentCursor="")},la.prototype.doCurrentObjectChanged=function(){},la.prototype.standardMouseWheel=function(){var a=this.diagram,x=a.lastInput,b=x.delta;if(b!==0&&a.documentBounds.w()){var te=a.commandHandler,re=a.toolManager.mouseWheelBehavior;if(te!==null&&(re===lu&&!x.shift||re===Jh&&x.control))(0<b?te.canIncreaseZoom():te.canDecreaseZoom())&&(re=a.zoomPoint,a.zoomPoint=x.viewPoint,0<b?te.increaseZoom():te.decreaseZoom(),a.zoomPoint=re),x.bubbles=!1;else if(re===lu&&x.shift||re===Jh&&!x.control){te=a.position.copy();var oe=x.event;re=oe.deltaMode;var le=oe.deltaX;oe=oe.deltaY;var fe="pixel";if(le===0&&oe===0||x.shift)!x.shift&&a.allowVerticalScroll?(b=3*b*a.scrollVerticalLineChange,a.scroll(fe,0<b?"up":"down",Math.abs(b))):x.shift&&a.allowHorizontalScroll&&(b=3*b*a.scrollHorizontalLineChange,a.scroll(fe,0<b?"left":"right",Math.abs(b)));else{switch(re){case 0:fe="pixel";break;case 1:fe="line";break;case 2:fe="page"}le!==0&&a.allowHorizontalScroll&&(le*=a.scrollHorizontalLineChange/16,a.scroll(fe,0<le?"right":"left",Math.abs(le))),oe!==0&&a.allowVerticalScroll&&(oe*=a.scrollVerticalLineChange/16,a.scroll(fe,0<oe?"down":"up",Math.abs(oe)))}this.doWheelChange(a,te,x)}}},la.prototype.doWheelChange=function(a,x,b){a.position.D(x)&&b.event.wheelDeltaX===0||(b.bubbles=!1)},la.prototype.standardWaitAfter=function(a,x){x===void 0&&(x=this.diagram.lastInput),this.cancelWaitAfter();var b=this,te=x.clone(this.yy);this.Zr=aa(function(){b.doWaitAfter(te)},a)},la.prototype.cancelWaitAfter=function(){this.Zr!==-1&&ji.clearTimeout(this.Zr),this.Zr=-1},la.prototype.doWaitAfter=function(){},la.prototype.findToolHandleAt=function(a,x){return a=this.diagram.ic(a,function(b){for(;b!==null&&!(b.panel instanceof Ca);)b=b.panel;return b}),a===null?null:a.part.category===x?a:null},la.prototype.isBeyondDragSize=function(a,x){var b=this.diagram;a===void 0&&(a=b.firstInput.viewPoint),x===void 0&&(x=b.lastInput.viewPoint);var te=b.toolManager.dragSize,re=te.width;return te=te.height,b.firstInput.isTouchEvent&&(re+=6,te+=6),Math.abs(x.x-a.x)>re||Math.abs(x.y-a.y)>te},pn.Object.defineProperties(la.prototype,{diagram:{get:function(){return this.H},set:function(a){a instanceof wn&&(this.H=a)}},name:{get:function(){return this.xa},set:function(a){this.xa=a}},isEnabled:{get:function(){return this.Jd},set:function(a){this.Jd=a}},isActive:{get:function(){return this.nb},set:function(a){this.nb=a}},transactionResult:{get:function(){return this.wm},set:function(a){this.wm=a}}}),la.prototype.startTransaction=la.prototype.Ea,la.className="Tool";function sl(){la.call(this),this.name="ToolManager",this.hb=new Zi,this.ob=new Zi,this.Hb=new Zi,this.F=this.V=850,this.o=new Dt(2,2).ja(),this.Ha=5e3,this.ia=Jh,this.u=wf,this.Mp=this.j=null,this.zj=-1}vn(sl,la),sl.prototype.initializeStandardTools=function(){},sl.prototype.updateAdornments=function(a){var x=this.currentToolTip;if(x instanceof Ca&&this.Mp===a){var b=x.adornedObject;(a!==null?b.part===a:b===null)?this.showToolTip(x,b):this.hideToolTip()}},sl.prototype.doMouseDown=function(){var a=this.diagram,x=a.lastInput;if(x.isTouchEvent&&this.gestureBehavior===qh&&(x.bubbles=!1),x.isMultiTouch){if(this.cancelWaitAfter(),this.gestureBehavior===Sf){x.bubbles=!0;return}if(this.gestureBehavior===qh)return;if(a.currentTool.canStartMultiTouch()){a.currentTool.standardPinchZoomStart();return}}for(var b=this.mouseDownTools.length,te=0;te<b;te++){var re=this.mouseDownTools.M(te);if(re.diagram=this.diagram,re.canStart()){a.doFocus(),a.currentTool=re,a.currentTool===re&&(re.isActive||re.doActivate(),re.doMouseDown());return}}a.lastInput.button===1&&(this.mouseWheelBehavior===Jh?this.mouseWheelBehavior=lu:this.mouseWheelBehavior===lu&&(this.mouseWheelBehavior=Jh)),this.doActivate(),this.standardWaitAfter(this.holdDelay,x)},sl.prototype.doMouseMove=function(){var a=this.diagram,x=a.lastInput;if(x.isMultiTouch){if(this.gestureBehavior===Sf){x.bubbles=!0;return}if(this.gestureBehavior===qh)return;if(a.currentTool.canStartMultiTouch()){a.currentTool.standardPinchZoomMove();return}}if(this.isActive)for(var b=this.mouseMoveTools.length,te=0;te<b;te++){var re=this.mouseMoveTools.M(te);if(re.diagram=this.diagram,re.canStart()){a.doFocus(),a.currentTool=re,a.currentTool===re&&(re.isActive||re.doActivate(),re.doMouseMove());return}}Uh(this,a),a=x.event,a===null||a.type!=="pointermove"&&a.cancelable||(x.bubbles=!0)};function Uh(a,x){a.standardMouseOver(),a.isBeyondDragSize()&&a.standardWaitAfter(a.isActive?a.holdDelay:a.hoverDelay,x.lastInput)}sl.prototype.doCurrentObjectChanged=function(a,x){a=this.currentToolTip,a===null||x!==null&&a instanceof Ca&&(x===a||x.rg(a))||this.hideToolTip()},sl.prototype.doWaitAfter=function(a){var x=this.diagram;x.ta!==null&&(this.doMouseHover(),this.isActive||this.doToolTip(),a.isTouchEvent&&!x.lastInput.handled&&(a=a.copy(),a.button=2,a.buttons=2,x.lastInput=a,x.qu=!0,x.doMouseUp()))},sl.prototype.doMouseHover=function(){var a=this.diagram,x=a.lastInput;x.targetObject===null&&(x.targetObject=a.ic(x.documentPoint,null,null));var b=x.targetObject;if(b!==null)for(x.handled=!1;b!==null&&(a=this.isActive?b.mouseHold:b.mouseHover,!(a!==null&&(a(x,b),x.handled)));)b=b.panel;else b=this.isActive?a.mouseHold:a.mouseHover,b!==null&&b(x)},sl.prototype.doToolTip=function(){var a=this.diagram,x=a.lastInput;if(x.targetObject===null&&(x.targetObject=a.ic(x.documentPoint,null,null)),x=x.targetObject,x!==null){if(a=this.currentToolTip,!(a instanceof Ca)||x!==a&&!x.rg(a)){for(;x!==null;){if(a=x.toolTip,a!==null){this.showToolTip(a,x);return}x=x.panel}this.hideToolTip()}}else x=a.toolTip,x!==null?this.showToolTip(x,null):this.hideToolTip()},sl.prototype.showToolTip=function(a,x){var b=this.diagram;if(a!==this.currentToolTip&&this.hideToolTip(),a instanceof Ca){a.layerName="Tool",a.selectable=!1,a.scale=1/b.scale,a.category="ToolTip",a.placeholder!==null&&(a.placeholder.scale=b.scale);var te=a.diagram;te!==null&&te!==b&&te.remove(a),b.add(a),x!==null?a.adornedObject=x:a.data=b.model,a.Va(),this.positionToolTip(a,x)}else a instanceof bf&&a!==this.currentToolTip&&a.show(x,b,this);if(this.currentToolTip=a,this.zj!==-1&&(ji.clearTimeout(this.zj),this.zj=-1),a=this.toolTipDuration,0<a&&a!==1/0){var re=this;this.zj=aa(function(){re.hideToolTip()},a)}},sl.prototype.positionToolTip=function(a){if(a.placeholder===null){var x=this.diagram,b=x.lastInput.documentPoint.copy(),te=a.measuredBounds,re=x.viewportBounds;x.lastInput.isTouchEvent&&(b.x-=te.width),b.x+te.width>re.right&&(b.x-=te.width+5/x.scale),b.x<re.x&&(b.x=re.x),b.y=b.y+20/x.scale+te.height>re.bottom?b.y-(te.height+5/x.scale):b.y+20/x.scale,b.y<re.y&&(b.y=re.y),a.position=b}},sl.prototype.hideToolTip=function(){this.zj!==-1&&(ji.clearTimeout(this.zj),this.zj=-1);var a=this.diagram,x=this.currentToolTip;x!==null&&(x instanceof Ca?(a.remove(x),this.Mp!==null&&this.Mp.Jf(x.category),x.data=null,x.adornedObject=null):x instanceof bf&&x.hide!==null&&x.hide(a,this),this.currentToolTip=null)},sl.prototype.doMouseUp=function(){this.cancelWaitAfter();var a=this.diagram;if(this.isActive)for(var x=this.mouseUpTools.length,b=0;b<x;b++){var te=this.mouseUpTools.M(b);if(te.diagram=this.diagram,te.canStart()){a.doFocus(),a.currentTool=te,a.currentTool===te&&(te.isActive||te.doActivate(),te.doMouseUp());return}}a.doFocus(),this.doDeactivate()},sl.prototype.doMouseWheel=function(){this.standardMouseWheel()},sl.prototype.doKeyDown=function(){var a=this.diagram;a.commandHandler!==null&&a.commandHandler.doKeyDown()},sl.prototype.doKeyUp=function(){var a=this.diagram;a.commandHandler!==null&&a.commandHandler.doKeyUp()},sl.prototype.findTool=function(a){for(var x=this.mouseDownTools.length,b=0;b<x;b++){var te=this.mouseDownTools.M(b);if(te.name===a)return te}for(x=this.mouseMoveTools.length,b=0;b<x;b++)if(te=this.mouseMoveTools.M(b),te.name===a)return te;for(x=this.mouseUpTools.length,b=0;b<x;b++)if(te=this.mouseUpTools.M(b),te.name===a)return te;return null},sl.prototype.replaceTool=function(a,x){x!==null&&(x.diagram=this.diagram);for(var b=this.mouseDownTools.length,te=0;te<b;te++){var re=this.mouseDownTools.M(te);if(re.name===a)return x!==null?this.mouseDownTools.cd(te,x):this.mouseDownTools.mb(te),re}for(b=this.mouseMoveTools.length,te=0;te<b;te++)if(re=this.mouseMoveTools.M(te),re.name===a)return x!==null?this.mouseMoveTools.cd(te,x):this.mouseMoveTools.mb(te),re;for(b=this.mouseUpTools.length,te=0;te<b;te++)if(re=this.mouseUpTools.M(te),re.name===a)return x!==null?this.mouseUpTools.cd(te,x):this.mouseUpTools.mb(te),re;return null},sl.prototype.gb=function(a,x,b){x!==null&&(x.name=a,x.diagram=this.diagram),this.findTool(a)?this.replaceTool(a,x):x!==null&&b.add(x)},pn.Object.defineProperties(sl.prototype,{mouseWheelBehavior:{get:function(){return this.ia},set:function(a){this.ia=a}},gestureBehavior:{get:function(){return this.u},set:function(a){this.u=a}},currentToolTip:{get:function(){return this.j},set:function(a){this.j=a,this.Mp=a!==null&&a instanceof Ca?a.adornedPart:null}},mouseDownTools:{get:function(){return this.hb}},mouseMoveTools:{get:function(){return this.ob}},mouseUpTools:{get:function(){return this.Hb}},hoverDelay:{get:function(){return this.V},set:function(a){this.V=a}},holdDelay:{get:function(){return this.F},set:function(a){this.F=a}},dragSize:{get:function(){return this.o},set:function(a){this.o=a.J()}},toolTipDuration:{get:function(){return this.Ha},set:function(a){this.Ha=a}}}),sl.prototype.replaceStandardTool=sl.prototype.gb;var Jh=new Ni(sl,"WheelScroll",0),lu=new Ni(sl,"WheelZoom",1),lp=new Ni(sl,"WheelNone",2),wf=new Ni(sl,"GestureZoom",3),qh=new Ni(sl,"GestureCancel",4),Sf=new Ni(sl,"GestureNone",5);sl.className="ToolManager",sl.WheelScroll=Jh,sl.WheelZoom=lu,sl.WheelNone=lp,sl.GestureZoom=wf,sl.GestureCancel=qh,sl.GestureNone=Sf;function ql(){la.call(this),this.name="Dragging",this.u=this.Sw=this.ob=!0,this.o=this.Ha=this.V=this.Oe=null,this.Ym=this.Hb=!1,this.tl=new it(NaN,NaN),this.Fr=new it,this.hb=!0,this.Ik=100,this.Cg=[],this.te=new Yi().freeze(),this.ia=new me,this.Bn=null,this.F="copy",this.Oc="",this.Pc="no-drop"}var _h;vn(ql,la),ql.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;if(a.isReadOnly&&!a.allowDragOut||!a.allowMove&&!a.allowCopy&&!a.allowDragOut||!a.allowSelect)return!1;var x=a.lastInput;return!x.left||a.currentTool!==this&&(!this.isBeyondDragSize()||x.isTouchEvent&&x.timestamp-a.firstInput.timestamp<this.Ik)?!1:this.findDraggablePart()!==null},ql.prototype.findDraggablePart=function(){var a=this.diagram;if(a=a.Ol(a.firstInput.documentPoint,!1),a===null)return null;for(;a!==null&&!a.canSelect();)a=a.containingGroup;return a!==null&&(a.canMove()||a.canCopy())?a:null},ql.prototype.standardMouseSelect=function(){var a=this.diagram;if(a.allowSelect){var x=a.Ol(a.firstInput.documentPoint,!1);if(x!==null){for(;x!==null&&!x.canSelect();)x=x.containingGroup;this.currentPart=x,this.currentPart===null||this.currentPart.isSelected||(a.R("ChangingSelection",a.selection),x=a.lastInput,(iu?x.meta:x.control)||x.shift||a.clearSelection(!0),this.currentPart.isSelected=!0,a.R("ChangedSelection",a.selection))}}},ql.prototype.doActivate=function(){var a=this.diagram;this.Bn=null,this.currentPart===null&&this.standardMouseSelect();var x=this.currentPart;x!==null&&(x.canMove()||x.canCopy())&&(a.Fu(!0),bu=null,this.isActive=!0,this.tl.set(a.position),Hp(this,a.selection),this.Cg.length=0,a.animationManager.Cc(),this.draggedParts=this.computeEffectiveCollection(a.selection,this.dragOptions),this.Sw=this.diagram.layout.isRealtime,this.diagram.layout.isRealtime=!1,a.Ns=!0,a.Gf("temporaryPixelRatio")===!0&&30<a.$w&&jd(a),Y1(a,this.draggedParts),this.Ea("Drag"),this.startPoint=a.firstInput.documentPoint,a.isMouseCaptured=!0,a.allowDragOut&&(this.isDragOutStarted=!0,this.Ym=!1,bu=this,og=this.diagram,this.doSimulatedDragOut()))};function Hp(a,x){if(a.dragsLink){var b=a.diagram;b.allowRelink&&(b.model.Wj()&&x.count===1&&x.first()instanceof Ui?(a.draggedLink=x.first(),a.draggedLink.canRelinkFrom()&&a.draggedLink.canRelinkTo()&&a.draggedLink.Ej(),a.Oe=b.toolManager.findTool("Relinking"),a.Oe===null&&(a.Oe=new Vh,a.Oe.diagram=b),a.Oe.originalLink=a.draggedLink):(a.draggedLink=null,a.Oe=null))}}ql.prototype.computeEffectiveCollection=function(a,x){return this.diagram.commandHandler.computeEffectiveCollection(a,x)},ql.prototype.Pd=function(a){return a===void 0?new Fh(fr):this.isGridSnapEnabled?new Fh(new it(Math.round(1e3*a.x)/1e3,Math.round(1e3*a.y)/1e3)):new Fh(a.copy())},ql.prototype.doDeactivate=function(){this.isActive=!1;var a=this.diagram;if(this.diagram.layout.isRealtime=this.Sw,a.Fu(!1),a.ug(),Pf(this),jv(a,this.draggedParts),this.draggedParts=this.currentPart=this.Bn=null,this.Ym=this.isDragOutStarted=!1,0<_h.count){for(var x=_h,b=x.length,te=0;te<b;te++){var re=x.M(te);Xl(re),gl(re),Pf(re),re.diagram.ug()}x.clear()}Xl(this),this.tl.h(NaN,NaN),og!==null&&(og.currentCursor=""),bu=og=null,gl(this),a.isMouseCaptured=!1,a.currentCursor="",a.Ns=!1,this.stopTransaction(),ox(a,!0)},ql.prototype.stopTransaction=function(){var a=this.diagram,x=la.prototype.stopTransaction.call(this);return x&&a.undoManager.transactionToUndo!==null&&a.undoManager.transactionToUndo.ak(),x};function Pf(a){var x=a.diagram,b=x.skipsUndoManager;x.skipsUndoManager=!0,Hh(a,x.lastInput,null),x.skipsUndoManager=b,a.Cg.length=0}function Vp(){var a=bu;gl(a),Ac(a);var x=a.diagram;a.tl.w()&&(x.position=a.tl),x.ug()}ql.prototype.doCancel=function(){gl(this),Ac(this);var a=this.diagram;this.tl.w()&&(a.position=this.tl),this.stopTool()},ql.prototype.doKeyDown=function(){var a=this.diagram,x=a.lastInput;this.isActive&&(x.key==="Esc"?this.doCancel():x.key!==a.previousInput.key&&this.doMouseMove())},ql.prototype.doKeyUp=function(){this.isActive&&this.doMouseMove()};function nf(a,x){if(a.copiedParts===null){var b=a.diagram;if((!x||!b.isReadOnly&&!b.isModelReadOnly)&&a.draggedParts!==null){var te=b.undoManager;for(te.isEnabled&&te.isInTransaction?te.currentTransaction!==null&&0<te.currentTransaction.changes.count&&(b.undoManager.Kf(),b.Ea("Drag")):Ac(a),b.skipsUndoManager=!x,b.partManager.addsToTemporaryLayer=!x,a.startPoint=b.firstInput.documentPoint,x=a.copiesEffectiveCollection?a.draggedParts.Lf():b.selection,x=b.Kj(x,b,!0),b=new kn,te=a.draggedParts.iterator;te.next();){var re=te.key;if(re.Zc()&&re.canCopy()){var oe=x.I(re);oe!==null&&(oe.location=re.location,oe.Va(),b.add(oe,a.Pd(oe.location)))}}for(x=x.iterator;x.next();)te=x.value,te instanceof Ui&&te.canCopy()&&b.add(te,a.Pd());a.copiedParts=b,Hp(a,b.Lf()),a.draggedLink!==null&&(b=a.draggedLink,x=b.routeBounds,Md(b,a.startPoint.x-(x.x+x.width/2),a.startPoint.y-(x.y+x.height/2))),a.doUpdateCursor(null)}}}function gl(a){var x=a.diagram;if(a.copiedParts!==null){if(x.Is(a.copiedParts.Lf(),!1),a.copiedParts=null,a.draggedParts!==null)for(var b=a.draggedParts.iterator;b.next();)b.key instanceof Ui&&(b.value.point=new it(0,0));a.doUpdateCursor(null)}x.skipsUndoManager=!1,x.partManager.addsToTemporaryLayer=!1,a.startPoint=x.firstInput.documentPoint}function Xl(a){if(a.draggedLink!==null){if(a.dragsLink&&a.Oe!==null){var x=a.Oe;x.diagram.remove(x.temporaryFromNode),x.diagram.remove(x.temporaryToNode),a.Oe.originalLink=null}a.draggedLink=null,a.Oe=null}}function oc(a,x,b){var te=a.diagram,re=a.startPoint,oe=it.alloc();oe.assign(te.lastInput.documentPoint),a.moveParts(x,oe.re(re),b),it.free(oe),te.Gf("temporaryPixelRatio")===!0&&te.Yh===null&&30<te.$w&&(jd(te),te.hk())}ql.prototype.moveParts=function(a,x,b){b===void 0&&(b=!1);var te=this.diagram;te!==null&&ug(te,a,x,this.dragOptions,b)};function Ac(a){if(a.draggedParts!==null){for(var x=a.diagram,b=a.draggedParts.iterator;b.next();){var te=b.key;te.Zc()&&(te.location=b.value.point)}for(b=a.draggedParts.iterator;b.next();)if(te=b.key,te instanceof Ui&&te.suspendsRouting){var re=b.value.point;a.draggedParts.add(te,a.Pd()),Md(te,-re.x,-re.y)}x.bd()}}function gr(a,x){var b=a.diagram;a.dragsLink&&(a.draggedLink!==null&&(a.draggedLink.fromNode=null,a.draggedLink.toNode=null),Va(a,!1));var te=a.findDragOverObject(x),re=b.lastInput;re.targetObject=te,a.doUpdateCursor(te);var oe=b.skipsUndoManager,le=!1;try{if(b.skipsUndoManager=!0,le=Hh(a,re,te),!a.isActive&&bu===null)return;var fe=te!==null?te.part:null;if(fe===null||b.handlesDragDropForTopLevelParts&&fe.isTopLevel&&!(fe instanceof ts)){var ge=b.mouseDragOver;ge!==null&&(ge(re),le=!0)}if(!a.isActive&&bu===null||(a.doDragOver(x,te),!a.isActive&&bu===null))return}finally{b.skipsUndoManager=oe,le&&b.bd()}a.Bn=te,b.isReadOnly||!b.allowMove&&!b.allowCopy||!b.allowHorizontalScroll&&!b.allowVerticalScroll||b.gs(re.viewPoint)}ql.prototype.findDragOverObject=function(a){var x=this;return am(this.diagram,a,null,function(b){return b===null?b=!0:(b=b.part,b=!!(b===null||b instanceof Ca||b.layer.isTemporary||x.draggedParts&&x.draggedParts.contains(b)||x.copiedParts&&x.copiedParts.contains(b))),!b})},ql.prototype.doUpdateCursor=function(a){var x=this.diagram;(a===null||this.Bn!==a)&&(!this.diagram.currentTool.isActive||this.mayCopy()?x.currentCursor=this.copyCursor:this.mayMove()?x.currentCursor=this.moveCursor:this.mayDragOut()&&(x.currentCursor=this.nodropCursor))};function Hh(a,x,b){var te=!1,re=a.Cg.length,oe=0<re?a.Cg[0]:null;if(b===oe)return!1;x.handled=!1;for(var le=0;le<re;le++){var fe=a.Cg[le],ge=fe.mouseDragLeave;if(ge!==null&&(ge(x,fe,b),te=!0,x.handled))break}if(a.Cg.length=0,!a.isActive&&bu===null||b===null)return te;for(x.handled=!1,re=b;re!==null;)a.Cg.push(re),re=Cf(re);for(re=a.Cg.length,b=0;b<re&&(le=a.Cg[b],fe=le.mouseDragEnter,fe===null||(fe(x,le,oe),te=!0,!x.handled));b++);return te}function Cf(a){var x=a.panel;return x!==null?x:a instanceof mo&&!(a instanceof ts)&&(a=a.containingGroup,a!==null&&a.handlesDragDropForMembers)?a:null}function Rl(a,x,b){var te=a.Oe;if(te===null)return null;var re=a.diagram.og(x,te.portGravity,function(ye){return te.findValidLinkablePort(ye,b)});a=it.alloc();var oe=1/0,le=null;for(re=re.iterator;re.next();){var fe=re.value;if(fe.part!==null){var ge=fe.ga(eo,a);ge=x.Bf(ge),ge<oe&&(le=fe,oe=ge)}}return it.free(a),le}function Va(a,x){var b=a.draggedLink;if(b!==null&&!(2>b.pointsCount)){var te=a.diagram;if(!te.isReadOnly){var re=a.Oe;if(re!==null){var oe=null,le=null;b.fromNode===null&&(oe=Rl(a,b.i(0),!1),oe!==null&&(le=oe.part));var fe=null,ge=null;b.toNode===null&&(fe=Rl(a,b.i(b.pointsCount-1),!0),fe!==null&&(ge=fe.part)),re.isValidLink(le,oe,ge,fe)?x?(b.defaultFromPoint=b.i(0),b.defaultToPoint=b.i(b.pointsCount-1),b.suspendsRouting=!1,b.fromNode=le,oe!==null&&(b.fromPortId=oe.portId),b.toNode=ge,fe!==null&&(b.toPortId=fe.portId),b.fromPort!==te.Mx&&te.R("LinkRelinked",b,te.Mx),b.toPort!==te.Nx&&te.R("LinkRelinked",b,te.Nx)):r0(re,le,oe,ge,fe):r0(re,null,null,null,null)}}}}ql.prototype.doDragOver=function(){};function Nc(a,x){var b=a.diagram;a.dragsLink&&Va(a,!0),Pf(a);var te=a.findDragOverObject(x),re=b.lastInput;if(re.targetObject=te,te!==null){re.handled=!1;for(var oe=te;oe!==null;){var le=oe.mouseDrop;if(le!==null&&(le(re,oe),re.handled))break;Ef(a,re,oe),oe=Cf(oe)}}else oe=b.mouseDrop,oe!==null&&oe(re);if(a.isActive||bu!==null){for(re=(a.copiedParts||a.draggedParts).iterator;re.next();)oe=re.key,oe instanceof ar&&oe.linksConnected.each(function(fe){fe.suspendsRouting=!1});if(a.doDropOnto(x,te),a.isActive||bu!==null){for(a=Yt.alloc(),x=b.selection.iterator;x.next();)te=x.value,te instanceof ar&&rm(b,te,a);Yt.free(a)}}}function Ef(a,x,b){a=a.diagram,b=b.part,!a.handlesDragDropForTopLevelParts||!b.isTopLevel||b instanceof ts||(b=a.mouseDrop,b!==null&&b(x))}function rm(a,x,b){var te=!1;if(b=x.getAvoidableRect(b),a.viewportBounds.Re(b)&&(te=!0),a=a.Nu(b,function(re){return re.part},function(re){return re instanceof Ui},!0,function(re){return re instanceof Ui},te),a.count!==0)for(a=a.iterator;a.next();)b=a.value,!b.Td(x)&&b.isAvoiding&&b.bb()}ql.prototype.doDropOnto=function(){},ql.prototype.doMouseMove=function(){if(this.isActive){var a=this.diagram,x=a.lastInput;this.simulatedMouseMove(x.event,x.documentPoint,x.targetDiagram)||this.currentPart===null||this.draggedParts===null||(this.mayCopy()?(nf(this,!1),Y1(a,this.copiedParts),oc(this,this.copiedParts,!1),jv(a,this.copiedParts)):this.mayMove()?(gl(this),oc(this,this.draggedParts,!0)):this.mayDragOut()?(nf(this,!1),oc(this,this.copiedParts,!1)):gl(this),gr(this,a.lastInput.documentPoint))}},ql.prototype.doMouseUp=function(){if(this.isActive){var a=this.diagram,x=a.lastInput;if(!this.simulatedMouseUp(x.event,x.documentPoint,x.targetDiagram)){x=!1;var b=this.mayCopy();if(b&&this.copiedParts!==null?(gl(this),nf(this,!0),Y1(a,this.copiedParts),oc(this,this.copiedParts,!1),jv(a,this.copiedParts),this.copiedParts!==null&&(a.R("ChangingSelection",a.selection),a.clearSelection(!0),this.copiedParts.iteratorKeys.each(function(re){re.isSelected=!0}))):(x=!0,gl(this),this.mayMove()&&(oc(this,this.draggedParts,!0),gr(this,a.lastInput.documentPoint))),this.Ym=!0,Nc(this,a.lastInput.documentPoint),this.isActive){var te=b?this.copiedParts.Lf():this.draggedParts.Lf();this.copiedParts=null,x&&jp(this),a.Ya(),jv(a,this.draggedParts),this.transactionResult=b?"Copy":"Move",a.R(b?"SelectionCopied":"SelectionMoved",te)}this.stopTool(),b&&a.R("ChangedSelection",a.selection)}}},ql.prototype.simulatedMouseMove=function(a,x,b){if(bu===null)return!1;var te=bu.diagram;b instanceof wn||(b=null);var re=og;return b!==re&&(re!==null&&re!==te&&(re.ug(),bu.isDragOutStarted=!1,re=re.toolManager.findTool("Dragging"),re!==null&&re.doSimulatedDragLeave()),og=b,b!==null&&b!==te&&(Vp(),re=b.toolManager.findTool("Dragging"),re!==null&&(_h.contains(re)||_h.add(re),re.doSimulatedDragEnter())),this.doUpdateCursor(null)),b===null||b===te||!b.allowDrop||b.isReadOnly||!b.allowInsert?!1:(te=b.toolManager.findTool("Dragging"),te!==null&&(a!==null&&(a.targetTouches!==void 0&&(0<a.targetTouches.length?a=a.targetTouches[0]:0<a.changedTouches.length&&(a=a.changedTouches[0])),x=b.getMouse(a)),b.lastInput.documentPoint=x,b.lastInput.viewPoint=b.op(x),b.lastInput.down=!1,b.lastInput.up=!1,te.doSimulatedDragOver()),!0)},ql.prototype.simulatedMouseUp=function(a,x,b){if(bu===null)return!1;var te=og,re=bu.diagram;if(b===null)return bu.doCancel(),!0;if(b!==te){var oe=te.toolManager.findTool("Dragging");if(te!==null&&te!==re&&oe!==null)return te.ug(),bu.isDragOutStarted=!1,oe.doSimulatedDragLeave(),!1;og=b,te=b.toolManager.findTool("Dragging"),te!==null&&(Vp(),_h.contains(te)||_h.add(te),te.doSimulatedDragEnter())}return b!==this.diagram?(a!==null?(a.targetTouches!==void 0&&(0<a.targetTouches.length?a=a.targetTouches[0]:0<a.changedTouches.length&&(a=a.changedTouches[0])),x=b.getMouse(a)):x===null&&(x=new it),b.lastInput.documentPoint=x,b.lastInput.viewPoint=b.op(x),b.lastInput.down=!1,b.lastInput.up=!0,a=b.toolManager.findTool("Dragging"),a!==null&&a.doSimulatedDrop(),a=bu,a!==null&&(b=a.mayCopy(),a.transactionResult=b?"Copy":"Move",a.stopTool()),!0):!1};function jp(a){if(a.draggedParts!==null)for(var x=a.draggedParts.iterator;x.next();){var b=x.key;b instanceof ar&&(b=b.containingGroup,b===null||b.placeholder===null||a.draggedParts.contains(b)||b.placeholder.v())}}ql.prototype.mayCopy=function(){if(!this.isCopyEnabled)return!1;var a=this.diagram;if(a.isReadOnly||a.isModelReadOnly||!a.allowInsert||!a.allowCopy||(iu?!a.lastInput.alt:!a.lastInput.control))return!1;for(a=a.selection.iterator;a.next();)if(a.value.canCopy())return!0;return!!(this.draggedLink!==null&&this.dragsLink&&this.draggedLink.canCopy())},ql.prototype.mayDragOut=function(){if(!this.isCopyEnabled)return!1;var a=this.diagram;if(!a.allowDragOut||!a.allowCopy||a.allowMove)return!1;for(a=a.selection.iterator;a.next();)if(a.value.canCopy())return!0;return!!(this.draggedLink!==null&&this.dragsLink&&this.draggedLink.canCopy())},ql.prototype.mayMove=function(){var a=this.diagram;if(a.isReadOnly||!a.allowMove)return!1;for(a=a.selection.iterator;a.next();)if(a.value.canMove())return!0;return!!(this.draggedLink!==null&&this.dragsLink&&this.draggedLink.canMove())},ql.prototype.computeBorder=function(a,x,b){return this.Ym||this.draggedParts===null||this.draggedParts.contains(a)?null:b.assign(x)},ql.prototype.Az=function(){return bu},ql.prototype.mayDragIn=function(){var a=this.diagram;if(!a.allowDrop||a.isReadOnly||a.isModelReadOnly||!a.allowInsert)return!1;var x=bu;return!(x===null||x.diagram.model.dataFormat!==a.model.dataFormat)},ql.prototype.doSimulatedDragEnter=function(){if(this.mayDragIn()){var a=this.diagram;a.animationManager.Cc(),cp(a),a.animationManager.Cc(),a=bu,a!==null&&(a.diagram.Ns=!1),this.doUpdateCursor(null)}},ql.prototype.doSimulatedDragLeave=function(){var a=bu;a!==null&&a.doSimulatedDragOut(),this.doCancel()},ql.prototype.doSimulatedDragOver=function(){var a=this.diagram;a.animationManager.Dm=!0;var x=bu;if(x!==null&&x.draggedParts!==null){if(!this.mayDragIn())return;Vd(this,x.draggedParts.Lf(),!1,a.firstInput),oc(this,this.copiedParts,!1),gr(this,a.lastInput.documentPoint)}a.animationManager.Dm=!1},ql.prototype.doSimulatedDrop=function(){var a=this.diagram,x=bu;if(x!==null){var b=x.diagram;if(x.Ym=!0,gl(this),!this.mayDragIn())return;a.animationManager.Dm=!0,a.R("ChangingSelection",a.selection),this.Ea("Drop"),Vd(this,x.draggedParts.Lf(),!0,a.lastInput),oc(this,this.copiedParts,!1);var te=new Yi;this.copiedParts!==null&&(a.clearSelection(!0),this.copiedParts.iteratorKeys.each(function(re){re.isSelected=!0,te.add(re)})),Nc(this,a.lastInput.documentPoint),a.Ya(),this.copiedParts!==null&&(this.transactionResult="ExternalCopy"),this.copiedParts=null,a.doFocus(),a.R("ExternalObjectsDropped",te,b),this.stopTransaction(),a.R("ChangedSelection",a.selection)}a.animationManager.Dm=!1};function Vd(a,x,b,te){if(a.copiedParts===null){var re=a.diagram;if(!re.isReadOnly&&!re.isModelReadOnly){re.skipsUndoManager=!b,re.partManager.addsToTemporaryLayer=!b,a.startPoint=te.documentPoint,b=re.Kj(x,re,!0);var oe=Yt.alloc();re=te=1/0;for(var le=-1/0,fe=-1/0,ge=x.iterator;ge.next();){var ye=ge.value;if(ye.isVisible()){var we=ye.location;ye=we.x,we=we.y,isNaN(ye)||isNaN(we)||(ye<te&&(te=ye),we<re&&(re=we),ye>le&&(le=ye),we>fe&&(fe=we))}}for(te===1/0?oe.h(0,0,0,0):oe.h(te,re,le-te,fe-re),te=oe.x+oe.width/2,re=oe.y+oe.height/2,Yt.free(oe),oe=a.Fr,le=new kn,fe=it.alloc(),ge=x.iterator;ge.next();)ye=ge.value,ye instanceof Ui&&ye.canCopy()&&(we=b.I(ye),we!==null&&(we.points=ye.points,Md(we,oe.x-te,oe.y-re),we.suspendsRouting=!0,le.add(we,a.Pd())));for(x=x.iterator;x.next();)ye=x.value,ye.Zc()&&ye.canCopy()&&(ge=b.I(ye),ge!==null&&(ye=ye.location,fe.h(oe.x-(te-ye.x),oe.y-(re-ye.y)),ge.location=fe,ge.Va(),le.add(ge,a.Pd(fe))));it.free(fe),a.copiedParts=le,Hp(a,le.Lf()),a.draggedLink!==null&&(b=a.draggedLink,x=b.routeBounds,Md(b,a.startPoint.x-(x.x+x.width/2),a.startPoint.y-(x.y+x.height/2))),a.doUpdateCursor(null)}}}ql.prototype.doSimulatedDragOut=function(){var a=this.diagram;a.Ns=!1,this.mayCopy()||this.mayMove()?a.currentCursor="":a.currentCursor=this.nodropCursor,this.Bn=null},ql.prototype.computeMove=function(a,x,b,te){return b=this.diagram,b!==null?b.computeMove(a,x,this.dragOptions,te):new it},pn.Object.defineProperties(ql.prototype,{isCopyEnabled:{get:function(){return this.ob},set:function(a){this.ob=a}},copiesEffectiveCollection:{get:function(){return this.u},set:function(a){this.u=a}},dragOptions:{get:function(){return this.ia},set:function(a){this.ia=a}},isGridSnapEnabled:{get:function(){return this.dragOptions.isGridSnapEnabled},set:function(a){this.dragOptions.isGridSnapEnabled=a}},isComplexRoutingRealtime:{get:function(){return this.hb},set:function(a){this.hb=a}},isGridSnapRealtime:{get:function(){return this.dragOptions.isGridSnapRealtime},set:function(a){this.dragOptions.isGridSnapRealtime=a}},gridSnapCellSize:{get:function(){return this.dragOptions.gridSnapCellSize},set:function(a){this.dragOptions.gridSnapCellSize.D(a)||(a=a.J(),this.dragOptions.gridSnapCellSize=a)}},gridSnapCellSpot:{get:function(){return this.dragOptions.gridSnapCellSpot},set:function(a){this.dragOptions.gridSnapCellSpot.D(a)||(a=a.J(),this.dragOptions.gridSnapCellSpot=a)}},gridSnapOrigin:{get:function(){return this.dragOptions.gridSnapOrigin},set:function(a){this.dragOptions.gridSnapOrigin.D(a)||(a=a.J(),this.dragOptions.gridSnapOrigin=a)}},dragsLink:{get:function(){return this.dragOptions.dragsLink},set:function(a){this.dragOptions.dragsLink=a}},dragsTree:{get:function(){return this.dragOptions.dragsTree},set:function(a){this.dragOptions.dragsTree=a}},copyCursor:{get:function(){return this.F},set:function(a){this.F=a}},moveCursor:{get:function(){return this.Oc},set:function(a){this.Oc=a}},nodropCursor:{get:function(){return this.Pc},set:function(a){this.Pc=a}},currentPart:{get:function(){return this.V},set:function(a){this.V=a}},copiedParts:{get:function(){return this.o},set:function(a){this.o=a}},draggedParts:{get:function(){return this.Ha},set:function(a){this.Ha=a}},draggingParts:{get:function(){return this.copiedParts!==null?this.copiedParts.Lf():this.draggedParts!==null?this.draggedParts.Lf():this.te}},draggedLink:{get:function(){return this.diagram.draggedLink},set:function(a){this.diagram.draggedLink=a}},isDragOutStarted:{get:function(){return this.Hb},set:function(a){this.Hb=a}},startPoint:{get:function(){return this.Fr},set:function(a){this.Fr.D(a)||this.Fr.assign(a)}},delay:{get:function(){return this.Ik},set:function(a){this.Ik=a}}}),ql.prototype.getDraggingSource=ql.prototype.Az;var bu=null,og=null;ql.className="DraggingTool",_h=new Zi,Sa("draggingTool",function(){return this.findTool("Dragging")},function(a){this.gb("Dragging",a,this.mouseMoveTools)}),sl.prototype.doCancel=function(){bu!==null&&bu.doCancel(),la.prototype.doCancel.call(this)};function Ma(){la.call(this),this.te=100,this.Ha=!1,this.u="pointer";var a=new Ui,x=new xs;x.isPanelMain=!0,x.stroke="blue",a.add(x),x=new xs,x.toArrow="Standard",x.fill="blue",x.stroke="blue",a.add(x),a.layerName="Tool",this.Ci=a,a=new ar,x=new xs,x.portId="",x.figure="Rectangle",x.fill=null,x.stroke="magenta",x.strokeWidth=2,x.desiredSize=sn,a.add(x),a.selectable=!1,a.layerName="Tool",this.Bi=a,this.j=x,a=new ar,x=new xs,x.portId="",x.figure="Rectangle",x.fill=null,x.stroke="magenta",x.strokeWidth=2,x.desiredSize=sn,a.add(x),a.selectable=!1,a.layerName="Tool",this.Di=a,this.o=x,this.Pc=this.Oc=this.ob=this.hb=this.Hb=null,this.ia=!0,this.hy=new kn,this.Of=this.gj=this.Pf=null}vn(Ma,la),Ma.prototype.doStop=function(){this.diagram.ug(),this.originalToPort=this.originalToNode=this.originalFromPort=this.originalFromNode=this.originalLink=null,this.validPortsCache.clear(),this.targetPort=null},Ma.prototype.copyPortProperties=function(a,x,b,te,re){if(a!==null&&x!==null&&b!==null&&te!==null){var oe=x.Df(),le=Dt.alloc();le.width=x.naturalBounds.width*oe,le.height=x.naturalBounds.height*oe,te.desiredSize=le,Dt.free(le),re?(te.toSpot=x.toSpot,te.toEndSegmentLength=x.toEndSegmentLength):(te.fromSpot=x.fromSpot,te.fromEndSegmentLength=x.fromEndSegmentLength),b.locationSpot=eo,oe=it.alloc(),b.location=x.ga(eo,oe),it.free(oe),te.angle=x.li(),this.portTargeted!==null&&this.portTargeted(a,x,b,te,re)}},Ma.prototype.setNoTargetPortProperties=function(a,x,b){x!==null&&(x.desiredSize=sn,x.fromSpot=Cs,x.toSpot=Cs),a!==null&&(a.location=this.diagram.lastInput.documentPoint),this.portTargeted!==null&&this.portTargeted(null,null,a,x,b)},Ma.prototype.doMouseDown=function(){this.isActive&&this.doMouseMove()},Ma.prototype.doMouseMove=function(){if(this.isActive){var a=this.diagram;if(this.targetPort=this.findTargetPort(this.isForwards),this.targetPort!==null&&this.targetPort.part instanceof ar){var x=this.targetPort.part;this.isForwards?this.copyPortProperties(x,this.targetPort,this.temporaryToNode,this.temporaryToPort,!0):this.copyPortProperties(x,this.targetPort,this.temporaryFromNode,this.temporaryFromPort,!1)}else this.isForwards?this.setNoTargetPortProperties(this.temporaryToNode,this.temporaryToPort,!0):this.setNoTargetPortProperties(this.temporaryFromNode,this.temporaryFromPort,!1);(a.allowHorizontalScroll||a.allowVerticalScroll)&&a.gs(a.lastInput.viewPoint)}},Ma.prototype.findValidLinkablePort=function(a,x){if(a===null)return null;var b=a.part;if(!(b instanceof ar))return null;for(;a!==null;){var te=x?a.toLinkable:a.fromLinkable;if(te===!0&&(a.portId!==null||a instanceof ar)&&(x?this.isValidTo(b,a):this.isValidFrom(b,a)))return a;if(te===!1)break;a=a.panel}return null},Ma.prototype.findTargetPort=function(a){var x=this.diagram,b=x.lastInput.documentPoint,te=this.portGravity;0>=te&&(te=.1);var re=this,oe=x.og(b,te,function(be){return re.findValidLinkablePort(be,a)},null,!0);for(te=1/0,x=null,oe=oe.iterator;oe.next();){var le=oe.value,fe=le.part;if(fe instanceof ar){var ge=le.ga(eo,it.alloc()),ye=b.x-ge.x,we=b.y-ge.y;it.free(ge),ge=ye*ye+we*we,ge<te&&(ye=this.validPortsCache.I(le),ye!==null?ye&&(x=le,te=ge):a&&this.isValidLink(this.originalFromNode,this.originalFromPort,fe,le)||!a&&this.isValidLink(fe,le,this.originalToNode,this.originalToPort)?(this.validPortsCache.add(le,!0),x=le,te=ge):this.validPortsCache.add(le,!1))}}return x!==null&&(b=x.part,b instanceof ar&&(b.layer===null||b.layer.allowLink))?x:null},Ma.prototype.isValidFrom=function(a,x){if(a===null||x===null)return this.isUnconnectedLinkValid;if(this.diagram.currentTool===this&&(a.layer!==null&&!a.layer.allowLink||x.fromLinkable!==!0))return!1;var b=x.fromMaxLinks;if(1/0>b){if(this.originalLink!==null&&a===this.originalFromNode&&x===this.originalFromPort)return!0;if(x=x.portId,x===null&&(x=""),a.Mo(x).count>=b)return!1}return!0},Ma.prototype.isValidTo=function(a,x){if(a===null||x===null)return this.isUnconnectedLinkValid;if(this.diagram.currentTool===this&&(a.layer!==null&&!a.layer.allowLink||x.toLinkable!==!0))return!1;var b=x.toMaxLinks;if(1/0>b){if(this.originalLink!==null&&a===this.originalToNode&&x===this.originalToPort)return!0;if(x=x.portId,x===null&&(x=""),a.Sd(x).count>=b)return!1}return!0},Ma.prototype.isInSameNode=function(a,x){return a===null||x===null?!1:a===x?!0:(a=a.part,x=x.part,a!==null&&a===x)},Ma.prototype.isLinked=function(a,x){if(a===null||x===null)return!1;var b=a.part;if(!(b instanceof ar))return!1;a=a.portId,a===null&&(a="");var te=x.part;if(!(te instanceof ar))return!1;for(x=x.portId,x===null&&(x=""),x=te.Sd(x);x.next();)if(te=x.value,te.fromNode===b&&te.fromPortId===a)return!0;return!1},Ma.prototype.isValidLink=function(a,x,b,te){if(!this.isValidFrom(a,x)||!this.isValidTo(b,te)||!(x===null||te===null||(x.fromLinkableSelfNode&&te.toLinkableSelfNode||!this.isInSameNode(x,te))&&(x.fromLinkableDuplicates&&te.toLinkableDuplicates||!this.isLinked(x,te)))||this.originalLink!==null&&(a!==null&&this.isLabelDependentOnLink(a,this.originalLink)||b!==null&&this.isLabelDependentOnLink(b,this.originalLink))||a!==null&&b!==null&&(a.data===null&&b.data!==null||a.data!==null&&b.data===null)||!this.isValidCycle(a,b,this.originalLink))return!1;if(a!==null){var re=a.linkValidation;if(re!==null&&!re(a,x,b,te,this.originalLink))return!1}return b!==null&&(re=b.linkValidation,re!==null&&!re(a,x,b,te,this.originalLink))?!1:(re=this.linkValidation,re!==null?re(a,x,b,te,this.originalLink):!0)},Ma.prototype.isLabelDependentOnLink=function(a,x){if(a===null)return!1;var b=a.labeledLink;if(b===null)return!1;if(b===x)return!0;var te=new Yi;return te.add(a),ja(this,b,x,te)};function ja(a,x,b,te){if(x===b)return!0;var re=x.fromNode;return re!==null&&re.isLinkLabel&&(te.add(re),ja(a,re.labeledLink,b,te))?!0:(x=x.toNode,!!(x!==null&&x.isLinkLabel&&(te.add(x),ja(a,x.labeledLink,b,te))))}Ma.prototype.isValidCycle=function(a,x,b){if(b===void 0&&(b=null),a===null||x===null)return this.isUnconnectedLinkValid;var te=this.diagram.validCycle;if(te!==px){if(te===kS){if(te=b||this.temporaryLink,te!==null&&!te.isTreeLink)return!0;for(te=x.linksConnected;te.next();){var re=te.value;if(re!==b&&re.isTreeLink&&re.toNode===x)return!1}return!cl(this,a,x,b,!0)}if(te===iw){if(te=b||this.temporaryLink,te!==null&&!te.isTreeLink)return!0;for(te=a.linksConnected;te.next();)if(re=te.value,re!==b&&re.isTreeLink&&re.fromNode===a)return!1;return!cl(this,a,x,b,!0)}if(te===IS)return a===x?a=!0:(te=new Yi,te.add(x),a=uu(this,te,a,x,b)),!a;if(te===tw)return!cl(this,a,x,b,!1);if(te===nw)return a===x?a=!0:(te=new Yi,te.add(x),a=Wl(this,te,a,x,b)),!a}return!0};function cl(a,x,b,te,re){if(x===b)return!0;if(x===null||b===null)return!1;for(var oe=x.linksConnected;oe.next();){var le=oe.value;if(le!==te&&(!re||le.isTreeLink)&&le.toNode===x&&(le=le.fromNode,le!==x&&cl(a,le,b,te,re)))return!0}return!1}function uu(a,x,b,te,re){if(b===te)return!0;if(b===null||te===null||x.contains(b))return!1;x.add(b);for(var oe=b.linksConnected;oe.next();){var le=oe.value;if(le!==re&&le.toNode===b&&(le=le.fromNode,le!==b&&uu(a,x,le,te,re)))return!0}return!1}function Wl(a,x,b,te,re){if(b===te)return!0;if(b===null||te===null||x.contains(b))return!1;x.add(b);for(var oe=b.linksConnected;oe.next();){var le=oe.value;if(le!==re){var fe=le.fromNode;if(le=le.toNode,fe=fe===b?le:fe,fe!==b&&Wl(a,x,fe,te,re))return!0}}return!1}pn.Object.defineProperties(Ma.prototype,{portGravity:{get:function(){return this.te},set:function(a){0<=a&&(this.te=a)}},isUnconnectedLinkValid:{get:function(){return this.Ha},set:function(a){this.Ha=a}},linkingCursor:{get:function(){return this.u},set:function(a){this.u=a}},temporaryLink:{get:function(){return this.Ci},set:function(a){this.Ci=a}},temporaryFromNode:{get:function(){return this.Bi},set:function(a){(this.Bi=a)&&(this.j=a.port)}},temporaryFromPort:{get:function(){return this.j},set:function(a){if(this.j!==null){var x=this.j.panel;if(x!==null){var b=x.O.indexOf(this.j);x.mb(b),x.Gb(b,a)}}this.j=a}},temporaryToNode:{get:function(){return this.Di},set:function(a){(this.Di=a)&&(this.o=a.port)}},temporaryToPort:{get:function(){return this.o},set:function(a){if(this.o!==null){var x=this.o.panel;if(x!==null){var b=x.O.indexOf(this.o);x.mb(b),x.Gb(b,a)}}this.o=a}},originalLink:{get:function(){return this.Hb},set:function(a){this.Hb=a}},originalFromNode:{get:function(){return this.hb},set:function(a){this.hb=a}},originalFromPort:{get:function(){return this.ob},set:function(a){this.ob=a}},originalToNode:{get:function(){return this.Oc},set:function(a){this.Oc=a}},originalToPort:{get:function(){return this.Pc},set:function(a){this.Pc=a}},isForwards:{get:function(){return this.ia},set:function(a){this.ia=a}},validPortsCache:{get:function(){return this.hy}},targetPort:{get:function(){return this.Pf},set:function(a){this.Pf=a}},linkValidation:{get:function(){return this.gj},set:function(a){this.gj=a}},portTargeted:{get:function(){return this.Of},set:function(a){this.Of=a}}}),Ma.className="LinkingBaseTool";function Kc(){Ma.call(this),this.name="Linking",this.V={},this.F=null,this.K=om,this.Xd=null}vn(Kc,Ma),Kc.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;return a.isReadOnly||a.isModelReadOnly||!a.allowLink||!a.model.xs()||!a.lastInput.left||a.currentTool!==this&&!this.isBeyondDragSize()?!1:this.findLinkablePort()!==null},Kc.prototype.findLinkablePort=function(){var a=this.diagram,x=this.startObject;if(x===null&&(x=a.ic(a.firstInput.documentPoint,null,null)),x===null||(a=x.part,!(a instanceof ar)))return null;var b=this.direction;if(b===om||b===nx){var te=this.findValidLinkablePort(x,!1);if(te!==null||this.startObject===a&&(te=a.port,this.findValidLinkablePort(te,!1)))return this.isForwards=!0,te}return(b===om||b===Ov)&&(x=this.findValidLinkablePort(x,!0),x!==null||this.startObject===a&&(x=a.port,this.findValidLinkablePort(x,!0)))?(this.isForwards=!1,x):null},Kc.prototype.doActivate=function(){var a=this.diagram,x=this.findLinkablePort();x===null?this.stopTool():(this.Ea(this.name),a.isMouseCaptured=!0,a.currentCursor=this.linkingCursor,this.isForwards?(this.temporaryToNode!==null&&(this.temporaryToNode.location=a.lastInput.documentPoint),this.originalFromPort=x,x=this.originalFromPort.part,x instanceof ar&&(this.originalFromNode=x),this.copyPortProperties(this.originalFromNode,this.originalFromPort,this.temporaryFromNode,this.temporaryFromPort,!1)):(this.temporaryFromNode!==null&&(this.temporaryFromNode.location=a.lastInput.documentPoint),this.originalToPort=x,x=this.originalToPort.part,x instanceof ar&&(this.originalToNode=x),this.copyPortProperties(this.originalToNode,this.originalToPort,this.temporaryToNode,this.temporaryToPort,!0)),a.add(this.temporaryFromNode),this.temporaryFromNode&&this.temporaryFromNode.Va(),a.add(this.temporaryToNode),this.temporaryToNode&&this.temporaryToNode.Va(),this.temporaryLink!==null&&(this.temporaryFromNode!==null&&(this.temporaryLink.fromNode=this.temporaryFromNode),this.temporaryToNode!==null&&(this.temporaryLink.toNode=this.temporaryToNode),this.temporaryLink.isTreeLink=this.isNewTreeLink(),this.temporaryLink.bb(),a.add(this.temporaryLink)),this.isActive=!0)},Kc.prototype.doDeactivate=function(){this.isActive=!1;var a=this.diagram;a.remove(this.temporaryLink),a.remove(this.temporaryFromNode),a.remove(this.temporaryToNode),a.isMouseCaptured=!1,a.currentCursor="",this.stopTransaction()},Kc.prototype.doStop=function(){Ma.prototype.doStop.call(this),this.startObject=null},Kc.prototype.doMouseUp=function(){if(this.isActive){var a=this.diagram,x=this.transactionResult=null,b=null,te=null,re=null,oe=null;try{var le=this.targetPort=this.findTargetPort(this.isForwards);if(le!==null){var fe=le.part;fe instanceof ar&&(this.isForwards?(this.originalFromNode!==null&&(x=this.originalFromNode,b=this.originalFromPort),te=fe,re=le):(x=fe,b=le,this.originalToNode!==null&&(te=this.originalToNode,re=this.originalToPort)))}else this.isForwards?this.originalFromNode!==null&&this.isUnconnectedLinkValid&&(x=this.originalFromNode,b=this.originalFromPort):this.originalToNode!==null&&this.isUnconnectedLinkValid&&(te=this.originalToNode,re=this.originalToPort);x!==null||te!==null?(oe=this.insertLink(x,b,te,re),oe!==null?(le===null&&(this.isForwards?oe.defaultToPoint=a.lastInput.documentPoint:oe.defaultFromPoint=a.lastInput.documentPoint),a.allowSelect&&(a.R("ChangingSelection",a.selection),a.clearSelection(!0),oe.isSelected=!0),this.transactionResult=this.name,a.R("LinkDrawn",oe)):this.doNoLink(x,b,te,re)):this.isForwards?this.doNoLink(this.originalFromNode,this.originalFromPort,null,null):this.doNoLink(null,null,this.originalToNode,this.originalToPort)}finally{this.stopTool(),oe&&a.allowSelect&&a.R("ChangedSelection",a.selection)}}},Kc.prototype.isNewTreeLink=function(){var a=this.archetypeLinkData;if(a===null)return!0;if(a instanceof Ui)return a.isTreeLink;var x=this.diagram;return x===null?!0:(a=x.partManager.getLinkCategoryForData(a),x=x.partManager.findLinkTemplateForCategory(a),x!==null?x.isTreeLink:!0)},Kc.prototype.insertLink=function(a,x,b,te){return this.diagram.partManager.insertLink(a,x,b,te)},Kc.prototype.doNoLink=function(){},pn.Object.defineProperties(Kc.prototype,{archetypeLinkData:{get:function(){return this.V},set:function(a){this.V=a}},archetypeLabelNodeData:{get:function(){return this.F},set:function(a){this.F=a}},direction:{get:function(){return this.K},set:function(a){this.K=a}},startObject:{get:function(){return this.Xd},set:function(a){this.Xd=a}}});var om=new Ni(Kc,"Either",0),nx=new Ni(Kc,"ForwardsOnly",0),Ov=new Ni(Kc,"BackwardsOnly",0);Kc.className="LinkingTool",Kc.Either=om,Kc.ForwardsOnly=nx,Kc.BackwardsOnly=Ov;function Vh(){Ma.call(this),this.name="Relinking";var a=new xs;a.figure="Diamond",a.desiredSize=Qn,a.fill="lightblue",a.stroke="dodgerblue",a.cursor=this.linkingCursor,a.segmentIndex=0,this.V=a,a=new xs,a.figure="Diamond",a.desiredSize=Qn,a.fill="lightblue",a.stroke="dodgerblue",a.cursor=this.linkingCursor,a.segmentIndex=-1,this.Xd=a,this.F=null,this.Ew=new Yt}vn(Vh,Ma),Vh.prototype.updateAdornments=function(a){if(a!==null&&a instanceof Ui){var x="RelinkFrom",b=null;if(a.isSelected&&!this.diagram.isReadOnly){var te=a.selectionObject;te!==null&&a.canRelinkFrom()&&a.actualBounds.w()&&a.isVisible()&&te.actualBounds.w()&&te.Ed()&&(b=a.Pj(x),b===null&&(b=this.makeAdornment(te,!1),a.bh(x,b)))}b===null&&a.Jf(x),x="RelinkTo",b=null,a.isSelected&&!this.diagram.isReadOnly&&(te=a.selectionObject,te!==null&&a.canRelinkTo()&&a.actualBounds.w()&&a.isVisible()&&te.actualBounds.w()&&te.Ed()&&(b=a.Pj(x),b===null?(b=this.makeAdornment(te,!0),a.bh(x,b)):b.v())),b===null&&a.Jf(x)}},Vh.prototype.makeAdornment=function(a,x){var b=new Ca;return b.type=Pi.Link,x=x?this.toHandleArchetype:this.fromHandleArchetype,x!==null&&b.add(x.copy()),b.adornedObject=a,b},Vh.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;if(a.isReadOnly||a.isModelReadOnly||!a.allowRelink||!a.model.xs()||!a.lastInput.left)return!1;var x=this.findToolHandleAt(a.firstInput.documentPoint,"RelinkFrom");return x===null&&(x=this.findToolHandleAt(a.firstInput.documentPoint,"RelinkTo")),x!==null},Vh.prototype.doActivate=function(){var a=this.diagram;if(this.originalLink===null){var x=this.handle;if(x===null&&(x=this.findToolHandleAt(a.firstInput.documentPoint,"RelinkFrom"),x===null&&(x=this.findToolHandleAt(a.firstInput.documentPoint,"RelinkTo"))),x===null)return;var b=x.part;if(!(b instanceof Ca&&b.adornedPart instanceof Ui))return;this.handle=x,this.isForwards=b===null||b.category==="RelinkTo",this.originalLink=b.adornedPart}this.Ea(this.name),a.isMouseCaptured=!0,a.currentCursor=this.linkingCursor,this.originalFromPort=this.originalLink.fromPort,this.originalFromNode=this.originalLink.fromNode,this.originalToPort=this.originalLink.toPort,this.originalToNode=this.originalLink.toNode,this.Ew.set(this.originalLink.actualBounds),this.originalLink!==null&&0<this.originalLink.pointsCount&&(this.originalLink.fromNode===null&&(this.temporaryFromPort!==null&&(this.temporaryFromPort.desiredSize=Kt),this.temporaryFromNode!==null&&(this.temporaryFromNode.location=this.originalLink.i(0))),this.originalLink.toNode===null&&(this.temporaryToPort!==null&&(this.temporaryToPort.desiredSize=Kt),this.temporaryToNode!==null&&(this.temporaryToNode.location=this.originalLink.i(this.originalLink.pointsCount-1)))),this.copyPortProperties(this.originalFromNode,this.originalFromPort,this.temporaryFromNode,this.temporaryFromPort,!1),this.copyPortProperties(this.originalToNode,this.originalToPort,this.temporaryToNode,this.temporaryToPort,!0),a.add(this.temporaryFromNode),a.add(this.temporaryToNode),this.temporaryLink!==null&&(this.temporaryFromNode!==null&&(this.temporaryLink.fromNode=this.temporaryFromNode),this.temporaryToNode!==null&&(this.temporaryLink.toNode=this.temporaryToNode),this.copyLinkProperties(this.originalLink,this.temporaryLink),this.temporaryLink.bb(),a.add(this.temporaryLink)),this.isActive=!0},Vh.prototype.copyLinkProperties=function(a,x){if(a!==null&&x!==null){x.adjusting=a.adjusting,x.corner=a.corner;var b=a.curve;(b===wA||b===g0)&&(b=Th),x.curve=b,x.curviness=a.curviness,x.isTreeLink=a.isTreeLink,x.points=a.points,x.routing=a.routing,x.smoothness=a.smoothness,x.fromSpot=a.fromSpot,x.fromEndSegmentLength=a.fromEndSegmentLength,x.fromShortLength=a.fromShortLength,x.toSpot=a.toSpot,x.toEndSegmentLength=a.toEndSegmentLength,x.toShortLength=a.toShortLength}},Vh.prototype.doDeactivate=function(){this.isActive=!1;var a=this.diagram;a.remove(this.temporaryLink),a.remove(this.temporaryFromNode),a.remove(this.temporaryToNode),a.isMouseCaptured=!1,a.currentCursor="",this.stopTransaction()},Vh.prototype.doStop=function(){Ma.prototype.doStop.call(this),this.handle=null},Vh.prototype.doMouseUp=function(){if(this.isActive){var a=this.diagram;this.transactionResult=null;var x=this.originalFromNode,b=this.originalFromPort,te=this.originalToNode,re=this.originalToPort,oe=this.originalLink;try{if(this.targetPort=this.findTargetPort(this.isForwards),this.targetPort!==null){var le=this.targetPort.part;le instanceof ar&&(this.isForwards?(te=le,re=this.targetPort):(x=le,b=this.targetPort))}else this.isUnconnectedLinkValid?this.isForwards?re=te=null:b=x=null:oe=null;oe!==null?(this.reconnectLink(oe,this.isForwards?te:x,this.isForwards?re:b,this.isForwards),this.targetPort===null&&(this.isForwards?oe.defaultToPoint=a.lastInput.documentPoint:oe.defaultFromPoint=a.lastInput.documentPoint,oe.bb()),this.transactionResult=this.name,a.R("LinkRelinked",oe,this.isForwards?this.originalToPort:this.originalFromPort)):this.doNoRelink(this.originalLink,this.isForwards),this.originalLink.Xo(this.Ew)}finally{this.stopTool()}}},Vh.prototype.reconnectLink=function(a,x,b,te){return b=b!==null&&b.portId!==null?b.portId:"",te?(a.toNode=x,a.toPortId=b):(a.fromNode=x,a.fromPortId=b),!0},Vh.prototype.doNoRelink=function(){};function r0(a,x,b,te,re){x!==null?(a.copyPortProperties(x,b,a.temporaryFromNode,a.temporaryFromPort,!1),a.diagram.add(a.temporaryFromNode)):a.diagram.remove(a.temporaryFromNode),te!==null?(a.copyPortProperties(te,re,a.temporaryToNode,a.temporaryToPort,!0),a.diagram.add(a.temporaryToNode)):a.diagram.remove(a.temporaryToNode)}pn.Object.defineProperties(Vh.prototype,{fromHandleArchetype:{get:function(){return this.V},set:function(a){this.V=a}},toHandleArchetype:{get:function(){return this.Xd},set:function(a){this.Xd=a}},handle:{get:function(){return this.F},set:function(a){if(a!==null&&!(a.part instanceof Ca))throw Error("new handle is not in an Adornment: "+a);this.F=a}}}),Vh.className="RelinkingTool",Sa("linkingTool",function(){return this.findTool("Linking")},function(a){this.gb("Linking",a,this.mouseMoveTools)}),Sa("relinkingTool",function(){return this.findTool("Relinking")},function(a){this.gb("Relinking",a,this.mouseDownTools)});function Ru(){la.call(this),this.name="LinkReshaping";var a=new xs;a.figure="Rectangle",a.desiredSize=Vn,a.fill="lightblue",a.stroke="dodgerblue",this.o=a,a=new xs,a.figure="Diamond",a.desiredSize=Qn,a.fill="lightblue",a.stroke="dodgerblue",a.cursor="move",this.u=a,this.F=3,this.Ts=this.j=null,this.Fw=new it,this.Yq=new Zi}vn(Ru,la),Ru.prototype.Ru=function(a){return a&&a.reshapingBehavior.value!==0?a.reshapingBehavior:ix},Ru.prototype.om=function(a,x){a.reshapingBehavior=x},Ru.prototype.updateAdornments=function(a){if(a!==null&&a instanceof Ui){var x=null;if(a.isSelected&&!this.diagram.isReadOnly){var b=a.path;b!==null&&a.canReshape()&&a.actualBounds.w()&&a.isVisible()&&b.actualBounds.w()&&b.Ed()&&(x=a.Pj(this.name),x===null||x.Aw!==a.pointsCount||x.Uw!==a.resegmentable)&&(x=this.makeAdornment(b),x!==null&&(x.Aw=a.pointsCount,x.Uw=a.resegmentable,a.bh(this.name,x)))}x===null&&a.Jf(this.name)}},Ru.prototype.makeAdornment=function(a){var x=a.part,b=x.pointsCount,te=x.isOrthogonal,re=null;if(x.points!==null&&1<b){re=new Ca,re.type=Pi.Link,b=x.firstPickIndex;var oe=x.lastPickIndex,le=te?1:0;if(x.resegmentable&&x.computeCurve()!==fd)for(var fe=b+le;fe<oe-le;fe++){var ge=this.makeResegmentHandle(a,fe);ge!==null&&(ge.segmentIndex=fe,ge.segmentFraction=.5,ge.fromMaxLinks=999,re.add(ge))}for(le=b+1;le<oe;le++)if(fe=this.makeHandle(a,le),fe!==null){if(fe.segmentIndex=le,le!==b)if(le===b+1&&te){ge=x.i(b);var ye=x.i(b+1);_t.B(ge.x,ye.x)&&_t.B(ge.y,ye.y)&&(ye=x.i(b-1)),_t.B(ge.x,ye.x)?(this.om(fe,Em),fe.cursor="n-resize"):_t.B(ge.y,ye.y)&&(this.om(fe,dh),fe.cursor="w-resize")}else le===oe-1&&te?(ge=x.i(oe-1),ye=x.i(oe),_t.B(ge.x,ye.x)&&_t.B(ge.y,ye.y)&&(ge=x.i(oe+1)),_t.B(ge.x,ye.x)?(this.om(fe,Em),fe.cursor="n-resize"):_t.B(ge.y,ye.y)&&(this.om(fe,dh),fe.cursor="w-resize")):le!==oe&&(this.om(fe,V0),fe.cursor="move");re.add(fe)}re.adornedObject=a}return re},Ru.prototype.makeHandle=function(){var a=this.handleArchetype;return a===null?null:a.copy()},Ru.prototype.makeResegmentHandle=function(){var a=this.midHandleArchetype;return a===null?null:a.copy()},Ru.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;return!a.isReadOnly&&a.allowReshape&&a.lastInput.left?this.findToolHandleAt(a.firstInput.documentPoint,this.name)!==null:!1},Ru.prototype.doActivate=function(){var a=this.diagram;if(this.handle===null&&(this.handle=this.findToolHandleAt(a.firstInput.documentPoint,this.name)),this.handle!==null){var x=this.handle.part.adornedPart;if(x instanceof Ui){if(this.Ts=x,a.isMouseCaptured=!0,this.Ea(this.name),x.resegmentable&&this.handle.fromMaxLinks===999){var b=x.points.copy(),te=this.getResegmentingPoint();if(b.Gb(this.handle.segmentIndex+1,te),x.isOrthogonal&&b.Gb(this.handle.segmentIndex+1,te),x.points=b,x.Wb(),x.updateAdornments(),this.handle=this.findToolHandleAt(a.firstInput.documentPoint,this.name),this.handle===null){this.doDeactivate();return}}this.Fw=x.i(this.handle.segmentIndex),this.Yq=x.points.copy(),this.isActive=!0}}},Ru.prototype.doDeactivate=function(){this.stopTransaction(),this.Ts=this.handle=null,this.isActive=this.diagram.isMouseCaptured=!1},Ru.prototype.stopTransaction=function(){var a=this.diagram,x=la.prototype.stopTransaction.call(this);return x&&a.undoManager.transactionToUndo!==null&&a.undoManager.transactionToUndo.ak(),x},Ru.prototype.doCancel=function(){var a=this.adornedLink;a!==null&&(a.points=this.Yq),this.stopTool()},Ru.prototype.getResegmentingPoint=function(){return this.handle.ga(eo)},Ru.prototype.doMouseMove=function(){var a=this.diagram;this.isActive&&(a=this.computeReshape(a.lastInput.documentPoint),this.reshape(a))},Ru.prototype.doMouseUp=function(){var a=this.diagram;if(this.isActive){var x=this.computeReshape(a.lastInput.documentPoint);if(this.reshape(x),x=this.adornedLink,x!==null&&x.resegmentable){var b=this.handle.segmentIndex,te=x.i(b-1),re=x.i(b),oe=x.i(b+1);if(x.isOrthogonal){if(b>x.firstPickIndex+1&&b<x.lastPickIndex-1){var le=x.i(b-2);if(Math.abs(te.x-re.x)<this.resegmentingDistance&&Math.abs(te.y-re.y)<this.resegmentingDistance&&(o0(this,le,te,re,oe,!0)||o0(this,le,te,re,oe,!1))){var fe=x.points.copy();o0(this,le,te,re,oe,!0)?(fe.cd(b-2,new it(le.x,(oe.y+le.y)/2)),fe.cd(b+1,new it(oe.x,(oe.y+le.y)/2))):(fe.cd(b-2,new it((oe.x+le.x)/2,le.y)),fe.cd(b+1,new it((oe.x+le.x)/2,oe.y))),fe.mb(b),fe.mb(b-1),x.points=fe,x.Wb()}else le=x.i(b+2),Math.abs(re.x-oe.x)<this.resegmentingDistance&&Math.abs(re.y-oe.y)<this.resegmentingDistance&&(o0(this,te,re,oe,le,!0)||o0(this,te,re,oe,le,!1))&&(fe=x.points.copy(),o0(this,te,re,oe,le,!0)?(fe.cd(b-1,new it(te.x,(te.y+le.y)/2)),fe.cd(b+2,new it(le.x,(te.y+le.y)/2))):(fe.cd(b-1,new it((te.x+le.x)/2,te.y)),fe.cd(b+2,new it((te.x+le.x)/2,le.y))),fe.mb(b+1),fe.mb(b),x.points=fe,x.Wb())}}else le=it.alloc(),_t.qh(te.x,te.y,oe.x,oe.y,re.x,re.y,le)&&le.Bf(re)<this.resegmentingDistance*this.resegmentingDistance&&(te=x.points.copy(),te.mb(b),x.points=te,x.Wb()),it.free(le)}a.Ya(),this.transactionResult=this.name,a.R("LinkReshaped",this.adornedLink,this.Yq)}this.stopTool()};function o0(a,x,b,te,re,oe){return oe?Math.abs(x.y-b.y)<a.resegmentingDistance&&Math.abs(b.y-te.y)<a.resegmentingDistance&&Math.abs(te.y-re.y)<a.resegmentingDistance:Math.abs(x.x-b.x)<a.resegmentingDistance&&Math.abs(b.x-te.x)<a.resegmentingDistance&&Math.abs(te.x-re.x)<a.resegmentingDistance}Ru.prototype.reshape=function(a){var x=this.adornedLink;x.uh();var b=this.handle.segmentIndex,te=this.Ru(this.handle);if(x.isOrthogonal)if(b===x.firstPickIndex+1)b=x.firstPickIndex+1,te===Em?(x.L(b,x.i(b-1).x,a.y),x.L(b+1,x.i(b+2).x,a.y)):te===dh&&(x.L(b,a.x,x.i(b-1).y),x.L(b+1,a.x,x.i(b+2).y));else if(b===x.lastPickIndex-1)b=x.lastPickIndex-1,te===Em?(x.L(b-1,x.i(b-2).x,a.y),x.L(b,x.i(b+1).x,a.y)):te===dh&&(x.L(b-1,a.x,x.i(b-2).y),x.L(b,a.x,x.i(b+1).y));else{te=b;var re=x.i(te),oe=x.i(te-1),le=x.i(te+1);_t.B(oe.x,re.x)&&_t.B(re.y,le.y)?(_t.B(oe.x,x.i(te-2).x)&&!_t.B(oe.y,x.i(te-2).y)?(x.m(te,a.x,oe.y),b++,te++):x.L(te-1,a.x,oe.y),_t.B(le.y,x.i(te+2).y)&&!_t.B(le.x,x.i(te+2).x)?x.m(te+1,le.x,a.y):x.L(te+1,le.x,a.y)):_t.B(oe.y,re.y)&&_t.B(re.x,le.x)?(_t.B(oe.y,x.i(te-2).y)&&!_t.B(oe.x,x.i(te-2).x)?(x.m(te,oe.x,a.y),b++,te++):x.L(te-1,oe.x,a.y),_t.B(le.x,x.i(te+2).x)&&!_t.B(le.y,x.i(te+2).y)?x.m(te+1,a.x,le.y):x.L(te+1,a.x,le.y)):_t.B(oe.x,re.x)&&_t.B(re.x,le.x)?(_t.B(oe.x,x.i(te-2).x)&&!_t.B(oe.y,x.i(te-2).y)?(x.m(te,a.x,oe.y),b++,te++):x.L(te-1,a.x,oe.y),_t.B(le.x,x.i(te+2).x)&&!_t.B(le.y,x.i(te+2).y)?x.m(te+1,a.x,le.y):x.L(te+1,a.x,le.y)):_t.B(oe.y,re.y)&&_t.B(re.y,le.y)&&(_t.B(oe.y,x.i(te-2).y)&&!_t.B(oe.x,x.i(te-2).x)?(x.m(te,oe.x,a.y),b++,te++):x.L(te-1,oe.x,a.y),_t.B(le.y,x.i(te+2).y)&&!_t.B(le.x,x.i(te+2).x)?x.m(te+1,le.x,a.y):x.L(te+1,le.x,a.y)),x.L(b,a.x,a.y)}else x.L(b,a.x,a.y),te=x.fromNode,re=x.fromPort,te!==null&&(oe=te.findVisibleNode(),oe!==null&&oe!==te&&(te=oe,re=te.port)),b===1&&x.computeSpot(!0,re).Mc()&&(oe=re.ga(eo,it.alloc()),te=x.getLinkPointFromPoint(te,re,oe,a,!0,it.alloc()),x.L(0,te.x,te.y),it.free(oe),it.free(te)),te=x.toNode,re=x.toPort,te!==null&&(oe=te.findVisibleNode(),oe!==null&&oe!==te&&(te=oe,re=te.port)),b===x.pointsCount-2&&x.computeSpot(!1,re).Mc()&&(b=re.ga(eo,it.alloc()),a=x.getLinkPointFromPoint(te,re,b,a,!1,it.alloc()),x.L(x.pointsCount-1,a.x,a.y),it.free(b),it.free(a));x.zf()},Ru.prototype.computeReshape=function(a){var x=this.adornedLink,b=this.handle.segmentIndex;switch(this.Ru(this.handle)){case V0:return a;case Em:return new it(x.i(b).x,a.y);case dh:return new it(a.x,x.i(b).y);default:case ix:return x.i(b)}},pn.Object.defineProperties(Ru.prototype,{handleArchetype:{get:function(){return this.o},set:function(a){this.o=a}},midHandleArchetype:{get:function(){return this.u},set:function(a){this.u=a}},handle:{get:function(){return this.j},set:function(a){if(a!==null&&!(a.part instanceof Ca))throw Error("new handle is not in an Adornment: "+a);this.j=a}},adornedLink:{get:function(){return this.Ts}},resegmentingDistance:{get:function(){return this.F},set:function(a){this.F=a}},originalPoint:{get:function(){return this.Fw}},originalPoints:{get:function(){return this.Yq}}}),Ru.prototype.setReshapingBehavior=Ru.prototype.om,Ru.prototype.getReshapingBehavior=Ru.prototype.Ru;var ix=new Ni(Ru,"None",0),dh=new Ni(Ru,"Horizontal",1),Em=new Ni(Ru,"Vertical",2),V0=new Ni(Ru,"All",3);Ru.className="LinkReshapingTool",Ru.None=ix,Ru.Horizontal=dh,Ru.Vertical=Em,Ru.All=V0,Sa("linkReshapingTool",function(){return this.findTool("LinkReshaping")},function(a){this.gb("LinkReshaping",a,this.mouseDownTools)});function fh(){la.call(this),this.name="Resizing",this.o=new Dt(1,1).freeze(),this.j=new Dt(9999,9999).freeze(),this.yg=new Dt(NaN,NaN).freeze(),this.V=!1,this.ia=!0,this.ue=null;var a=new xs;a.alignmentFocus=eo,a.figure="Rectangle",a.desiredSize=Vn,a.fill="lightblue",a.stroke="dodgerblue",a.strokeWidth=1,a.cursor="pointer",this.F=a,this.u=null,this.Xq=new it,this.Dw=new Dt,this.Tn=new it,this.rt=new Dt(0,0),this.qt=new Dt(1/0,1/0),this.pt=new Dt(1,1)}vn(fh,la),fh.prototype.updateAdornments=function(a){if(!(a===null||a instanceof Ui)){if(a.isSelected&&!this.diagram.isReadOnly){var x=a.resizeObject,b=a.Pj(this.name);if(x!==null&&a.canResize()&&a.actualBounds.w()&&a.isVisible()&&x.actualBounds.w()&&x.Ed()&&((b===null||b.adornedObject!==x)&&(b=this.makeAdornment(x)),b!==null)){x=x.li(),Kp(a)&&this.updateResizeHandles(b,x),a.bh(this.name,b);return}}a.Jf(this.name)}},fh.prototype.makeAdornment=function(a){var x=a.part.resizeAdornmentTemplate;if(x===null){x=new Ca,x.type=Pi.Spot,x.locationSpot=eo;var b=new bd;b.isPanelMain=!0,x.add(b),x.add(this.makeHandle(a,Is)),x.add(this.makeHandle(a,Gs)),x.add(this.makeHandle(a,ws)),x.add(this.makeHandle(a,Ta)),x.add(this.makeHandle(a,Tl)),x.add(this.makeHandle(a,el)),x.add(this.makeHandle(a,ru)),x.add(this.makeHandle(a,pl))}else if(Yp(x),x=x.copy(),x===null)return null;return x.adornedObject=a,x},fh.prototype.makeHandle=function(a,x){return a=this.handleArchetype,a===null?null:(a=a.copy(),a.alignment=x,a)},fh.prototype.updateResizeHandles=function(a,x){if(a!==null){if(!a.alignment.Xb()&&(a.cursor==="pointer"||0<a.cursor.indexOf("resize")))e:{var b=a.alignment;if(b.Mc()&&(b=eo),0>=b.x)x=0>=b.y?x+225:1<=b.y?x+135:x+180;else if(1<=b.x)0>=b.y?x+=315:1<=b.y&&(x+=45);else if(0>=b.y)x+=270;else if(1<=b.y)x+=90;else break e;0>x?x+=360:360<=x&&(x-=360),a.cursor=22.5>x?"e-resize":67.5>x?"se-resize":112.5>x?"s-resize":157.5>x?"sw-resize":202.5>x?"w-resize":247.5>x?"nw-resize":292.5>x?"n-resize":337.5>x?"ne-resize":"e-resize"}else if(a instanceof Pi)for(a=a.elements;a.next();)this.updateResizeHandles(a.value,x)}},fh.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;return!a.isReadOnly&&a.allowResize&&a.lastInput.left?this.findToolHandleAt(a.firstInput.documentPoint,this.name)!==null:!1},fh.prototype.doActivate=function(){var a=this.diagram;this.handle===null&&(this.handle=this.findToolHandleAt(a.firstInput.documentPoint,this.name)),this.handle!==null&&(this.adornedObject=this.handle.part.adornedObject,this.adornedObject!==null&&(a.isMouseCaptured=!0,a.animationManager.Cc(),this.Ea(this.name),this.Xq.set(this.adornedObject.ga(this.handle.alignment.gv())),this.Tn.set(this.adornedObject.part.location),this.Dw.set(this.adornedObject.desiredSize),this.pt=this.computeCellSize(),this.rt=this.computeMinSize(),this.qt=this.computeMaxSize(),this.isActive=!0))},fh.prototype.doDeactivate=function(){var a=this.diagram;this.stopTransaction(),this.ue=this.handle=null,this.isActive=a.isMouseCaptured=!1},fh.prototype.stopTransaction=function(){var a=this.diagram,x=la.prototype.stopTransaction.call(this);return x&&a.undoManager.transactionToUndo!==null&&a.undoManager.transactionToUndo.ak(),x},fh.prototype.doCancel=function(){this.adornedObject!==null&&(this.adornedObject.desiredSize=this.originalDesiredSize,this.adornedObject.part.location=this.originalLocation),this.stopTool()},fh.prototype.doMouseMove=function(){var a=this.diagram;if(this.isActive){var x=this.rt,b=this.qt,te=this.pt,re=this.adornedObject.qs(a.lastInput.documentPoint,it.alloc()),oe=this.computeReshape();x=this.computeResize(re,this.handle.alignment,x,b,te,oe),this.resize(x),a.bd(),it.free(re)}},fh.prototype.doMouseUp=function(){var a=this.diagram;if(this.isActive){var x=this.rt,b=this.qt,te=this.pt,re=this.adornedObject.qs(a.lastInput.documentPoint,it.alloc()),oe=this.computeReshape();x=this.computeResize(re,this.handle.alignment,x,b,te,oe),this.resize(x),it.free(re),a.Ya(),this.transactionResult=this.name,a.R("PartResized",this.adornedObject,this.originalDesiredSize)}this.stopTool()},fh.prototype.resize=function(a){var x=this.diagram,b=this.adornedObject;if(b!==null){if(b.desiredSize=a.size,a=b.part,a.Va(),b=b.ga(this.handle.alignment.gv()),a instanceof ts){var te=new Zi;if(te.add(a),!this.dragsMembers&&a.placeholder===null){var re=new me;re.dragsMembers=!1}x.moveParts(te,this.oppositePoint.copy().re(b),!0,re)}else a.location=a.location.copy().re(b).add(this.oppositePoint);x.bd()}},fh.prototype.computeResize=function(a,x,b,te,re,oe){x.Mc()&&(x=eo);var le=this.adornedObject.naturalBounds,fe=le.x,ge=le.y,ye=le.x+le.width,we=le.y+le.height,be=1;if(!oe){be=le.width;var ke=le.height;0>=be&&(be=1),0>=ke&&(ke=1),be=ke/be}return ke=it.alloc(),_t.No(a.x,a.y,fe,ge,re.width,re.height,ke),a=le.copy(),0>=x.x?0>=x.y?(a.x=Math.max(ke.x,ye-te.width),a.x=Math.min(a.x,ye-b.width),a.width=Math.max(ye-a.x,b.width),a.y=Math.max(ke.y,we-te.height),a.y=Math.min(a.y,we-b.height),a.height=Math.max(we-a.y,b.height),oe||(1<=a.height/a.width?(a.height=Math.max(Math.min(be*a.width,te.height),b.height),a.width=a.height/be):(a.width=Math.max(Math.min(a.height/be,te.width),b.width),a.height=be*a.width),a.x=ye-a.width,a.y=we-a.height)):1<=x.y?(a.x=Math.max(ke.x,ye-te.width),a.x=Math.min(a.x,ye-b.width),a.width=Math.max(ye-a.x,b.width),a.height=Math.max(Math.min(ke.y-ge,te.height),b.height),oe||(1<=a.height/a.width?(a.height=Math.max(Math.min(be*a.width,te.height),b.height),a.width=a.height/be):(a.width=Math.max(Math.min(a.height/be,te.width),b.width),a.height=be*a.width),a.x=ye-a.width)):(a.x=Math.max(ke.x,ye-te.width),a.x=Math.min(a.x,ye-b.width),a.width=ye-a.x,oe||(a.height=Math.max(Math.min(be*a.width,te.height),b.height),a.width=a.height/be,a.y=ge+.5*(we-ge-a.height))):1<=x.x?0>=x.y?(a.width=Math.max(Math.min(ke.x-fe,te.width),b.width),a.y=Math.max(ke.y,we-te.height),a.y=Math.min(a.y,we-b.height),a.height=Math.max(we-a.y,b.height),oe||(1<=a.height/a.width?(a.height=Math.max(Math.min(be*a.width,te.height),b.height),a.width=a.height/be):(a.width=Math.max(Math.min(a.height/be,te.width),b.width),a.height=be*a.width),a.y=we-a.height)):1<=x.y?(a.width=Math.max(Math.min(ke.x-fe,te.width),b.width),a.height=Math.max(Math.min(ke.y-ge,te.height),b.height),oe||(1<=a.height/a.width?(a.height=Math.max(Math.min(be*a.width,te.height),b.height),a.width=a.height/be):(a.width=Math.max(Math.min(a.height/be,te.width),b.width),a.height=be*a.width))):(a.width=Math.max(Math.min(ke.x-fe,te.width),b.width),oe||(a.height=Math.max(Math.min(be*a.width,te.height),b.height),a.width=a.height/be,a.y=ge+.5*(we-ge-a.height))):0>=x.y?(a.y=Math.max(ke.y,we-te.height),a.y=Math.min(a.y,we-b.height),a.height=we-a.y,oe||(a.width=Math.max(Math.min(a.height/be,te.width),b.width),a.height=be*a.width,a.x=fe+.5*(ye-fe-a.width))):1<=x.y&&(a.height=Math.max(Math.min(ke.y-ge,te.height),b.height),oe||(a.width=Math.max(Math.min(a.height/be,te.width),b.width),a.height=be*a.width,a.x=fe+.5*(ye-fe-a.width))),it.free(ke),a},fh.prototype.computeReshape=function(){var a=li;return this.adornedObject instanceof xs&&(a=Mx(this.adornedObject)),!(a===jr||this.diagram.lastInput.shift)},fh.prototype.computeMinSize=function(){var a=this.adornedObject.minSize.copy(),x=this.minSize;return!isNaN(x.width)&&x.width>a.width&&(a.width=x.width),!isNaN(x.height)&&x.height>a.height&&(a.height=x.height),a},fh.prototype.computeMaxSize=function(){var a=this.adornedObject.maxSize.copy(),x=this.maxSize;return!isNaN(x.width)&&x.width<a.width&&(a.width=x.width),!isNaN(x.height)&&x.height<a.height&&(a.height=x.height),a},fh.prototype.computeCellSize=function(){var a=new Dt(NaN,NaN),x=this.adornedObject.part;return x!==null&&(x=x.resizeCellSize,!isNaN(x.width)&&0<x.width&&(a.width=x.width),!isNaN(x.height)&&0<x.height&&(a.height=x.height)),x=this.cellSize,isNaN(a.width)&&!isNaN(x.width)&&0<x.width&&(a.width=x.width),isNaN(a.height)&&!isNaN(x.height)&&0<x.height&&(a.height=x.height),x=this.diagram,(isNaN(a.width)||isNaN(a.height))&&x&&(x=x.grid,x!==null&&x.visible&&this.isGridSnapEnabled&&(x=x.gridCellSize,isNaN(a.width)&&!isNaN(x.width)&&0<x.width&&(a.width=x.width),isNaN(a.height)&&!isNaN(x.height)&&0<x.height&&(a.height=x.height))),(isNaN(a.width)||a.width===0||a.width===1/0)&&(a.width=1),(isNaN(a.height)||a.height===0||a.height===1/0)&&(a.height=1),a},pn.Object.defineProperties(fh.prototype,{handleArchetype:{get:function(){return this.F},set:function(a){this.F=a}},handle:{get:function(){return this.u},set:function(a){if(a!==null&&!(a.part instanceof Ca))throw Error("new handle is not in an Adornment: "+a);this.u=a}},adornedObject:{get:function(){return this.ue},set:function(a){if(a!==null&&a.part instanceof Ca)throw Error("new handle must not be in an Adornment: "+a);this.ue=a}},minSize:{get:function(){return this.o},set:function(a){if(!this.o.D(a)){var x=a.width;isNaN(x)&&(x=0),a=a.height,isNaN(a)&&(a=0),this.o.h(x,a)}}},maxSize:{get:function(){return this.j},set:function(a){if(!this.j.D(a)){var x=a.width;isNaN(x)&&(x=1/0),a=a.height,isNaN(a)&&(a=1/0),this.j.h(x,a)}}},cellSize:{get:function(){return this.yg},set:function(a){this.yg.D(a)||this.yg.assign(a)}},isGridSnapEnabled:{get:function(){return this.V},set:function(a){this.V=a}},dragsMembers:{get:function(){return this.ia},set:function(a){this.ia=a}},oppositePoint:{get:function(){return this.Xq},set:function(a){this.Xq.D(a)||this.Xq.assign(a)}},originalDesiredSize:{get:function(){return this.Dw}},originalLocation:{get:function(){return this.Tn}}}),fh.className="ResizingTool",Sa("resizingTool",function(){return this.findTool("Resizing")},function(a){this.gb("Resizing",a,this.mouseDownTools)});function jh(){la.call(this),this.name="Rotating",this.ia=45,this.V=2,this.Tn=new it,this.ue=null;var a=new xs;a.figure="Ellipse",a.desiredSize=Qn,a.fill="lightblue",a.stroke="dodgerblue",a.strokeWidth=1,a.cursor="pointer",this.o=a,this.j=null,this.Cw=0,this.kr=new it(NaN,NaN),this.u=0,this.F=50}vn(jh,la),jh.prototype.updateAdornments=function(a){if(a!==null){if(a.ph()){var x=a.rotateObject;if(x===a||x===a.path||x.isPanelMain)return}if(a.isSelected&&!this.diagram.isReadOnly&&(x=a.rotateObject,x!==null&&a.canRotate()&&a.actualBounds.w()&&a.isVisible()&&x.actualBounds.w()&&x.Ed())){var b=a.Pj(this.name);if((b===null||b.adornedObject!==x)&&(b=this.makeAdornment(x)),b!==null){b.angle=x.li(),b.placeholder===null&&(b.location=this.computeAdornmentLocation(x)),a.bh(this.name,b);return}}a.Jf(this.name)}},jh.prototype.makeAdornment=function(a){var x=a.part.rotateAdornmentTemplate;if(x===null){x=new Ca,x.type=Pi.Position,x.locationSpot=eo;var b=this.handleArchetype;b!==null&&x.add(b.copy())}else if(Yp(x),x=x.copy(),x===null)return null;return x.adornedObject=a,x},jh.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;return!a.isReadOnly&&a.allowRotate&&a.lastInput.left?this.findToolHandleAt(a.firstInput.documentPoint,this.name)!==null:!1},jh.prototype.doActivate=function(){var a=this.diagram;if(this.adornedObject===null){if(this.handle===null&&(this.handle=this.findToolHandleAt(a.firstInput.documentPoint,this.name)),this.handle===null)return;this.adornedObject=this.handle.part.adornedObject}this.adornedObject!==null&&(a.isMouseCaptured=!0,a.delaysLayout=!0,this.Ea(this.name),this.Cw=this.adornedObject.angle,this.kr=this.computeRotationPoint(this.adornedObject),this.Tn=this.adornedObject.part.location.copy(),this.isActive=!0)},jh.prototype.computeRotationPoint=function(a){var x=a.part,b=x.locationObject;return x.rotationSpot.sb()?a.ga(x.rotationSpot):a===x||a===b?b.ga(x.locationSpot):a.ga(eo)},jh.prototype.computeAdornmentLocation=function(a){var x=this.rotationPoint;x.w()||(x=this.computeRotationPoint(a)),x=a.qs(x);var b=this.handleAngle;0>b?b+=360:360<=b&&(b-=360),b=Math.round(45*Math.round(b/45));var te=this.handleDistance;return b===0?x.x=a.naturalBounds.width+te:b===45?(x.x=a.naturalBounds.width+te,x.y=a.naturalBounds.height+te):b===90?x.y=a.naturalBounds.height+te:b===135?(x.x=-te,x.y=a.naturalBounds.height+te):b===180?x.x=-te:b===225?(x.x=-te,x.y=-te):b===270?x.y=-te:b===315&&(x.x=a.naturalBounds.width+te,x.y=-te),a.ga(x)},jh.prototype.doDeactivate=function(){var a=this.diagram;this.stopTransaction(),this.ue=this.handle=null,this.kr=new it(NaN,NaN),this.isActive=a.isMouseCaptured=!1},jh.prototype.stopTransaction=function(){var a=this.diagram,x=la.prototype.stopTransaction.call(this);return x&&a.undoManager.transactionToUndo!==null&&a.undoManager.transactionToUndo.ak(),x},jh.prototype.doCancel=function(){this.diagram.delaysLayout=!1,this.rotate(this.originalAngle),this.stopTool()},jh.prototype.doMouseMove=function(){var a=this.diagram;this.isActive&&(a=this.computeRotate(a.lastInput.documentPoint),this.rotate(a))},jh.prototype.doMouseUp=function(){var a=this.diagram;if(this.isActive){a.delaysLayout=!1;var x=this.computeRotate(a.lastInput.documentPoint);this.rotate(x),a.Ya(),this.transactionResult=this.name,a.R("PartRotated",this.adornedObject,this.originalAngle)}this.stopTool()},jh.prototype.rotate=function(a){var x=this.adornedObject;if(x!==null){x.angle=a,x=x.part,x.Va();var b=x.locationObject,te=x.rotateObject;(b===te||b.rg(te))&&(b=this.Tn.copy(),x.location=b.re(this.rotationPoint).rotate(a-this.originalAngle).add(this.rotationPoint)),this.diagram.bd()}},jh.prototype.computeRotate=function(a){a=this.rotationPoint.ab(a)-this.handleAngle;var x=this.adornedObject.panel;x!==null&&(a-=x.li()),360<=a?a-=360:0>a&&(a+=360),x=Math.min(Math.abs(this.snapAngleMultiple),180);var b=Math.min(Math.abs(this.snapAngleEpsilon),x/2);return!this.diagram.lastInput.shift&&0<x&&0<b&&(a%x<b?a=Math.floor(a/x)*x:a%x>x-b&&(a=(Math.floor(a/x)+1)*x)),360<=a?a-=360:0>a&&(a+=360),a},pn.Object.defineProperties(jh.prototype,{handleArchetype:{get:function(){return this.o},set:function(a){this.o=a}},handle:{get:function(){return this.j},set:function(a){if(a!==null&&!(a.part instanceof Ca))throw Error("new handle is not in an Adornment: "+a);this.j=a}},adornedObject:{get:function(){return this.ue},set:function(a){if(a!==null&&a.part instanceof Ca)throw Error("new handle must not be in an Adornment: "+a);this.ue=a}},snapAngleMultiple:{get:function(){return this.ia},set:function(a){this.ia=a}},snapAngleEpsilon:{get:function(){return this.V},set:function(a){this.V=a}},originalAngle:{get:function(){return this.Cw}},rotationPoint:{get:function(){return this.kr},set:function(a){this.kr=a.copy()}},handleAngle:{get:function(){return this.u},set:function(a){this.u=a}},handleDistance:{get:function(){return this.F},set:function(a){this.F=a}}}),jh.className="RotatingTool",Sa("rotatingTool",function(){return this.findTool("Rotating")},function(a){this.gb("Rotating",a,this.mouseDownTools)});function s0(){la.call(this),this.name="ClickSelecting"}vn(s0,la),s0.prototype.canStart=function(){return!(!this.isEnabled||this.isBeyondDragSize())},s0.prototype.doMouseUp=function(){this.isActive&&(this.standardMouseSelect(),!this.standardMouseClick()&&this.diagram.lastInput.isTouchEvent&&this.diagram.toolManager.doToolTip()),this.stopTool()},s0.className="ClickSelectingTool";function Uf(){la.call(this),this.name="Action",this.pk=null}vn(Uf,la),Uf.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram,x=a.lastInput,b=a.ic(x.documentPoint,function(te){for(;te.panel!==null&&!te.isActionable;)te=te.panel;return te});return b!==null&&b.isActionable?(this.pk=b,a.Ck=a.ic(x.documentPoint,null,null),!0):!1},Uf.prototype.doMouseDown=function(){if(this.isActive){var a=this.diagram.lastInput,x=this.pk;x!==null&&(a.targetObject=x,x.actionDown!==null&&x.actionDown(a,x))}else this.canStart()&&this.doActivate()},Uf.prototype.doMouseMove=function(){if(this.isActive){var a=this.diagram.lastInput,x=this.pk;x!==null&&(a.targetObject=x,x.actionMove!==null&&x.actionMove(a,x))}},Uf.prototype.doMouseUp=function(){if(this.isActive){var a=this.diagram.lastInput,x=this.pk;if(x===null)return;a.targetObject=x,x.actionUp!==null&&x.actionUp(a,x),this.standardMouseClick(function(b){for(;b.panel!==null&&(!b.isActionable||b!==x);)b=b.panel;return b},function(b){return b===x})}this.stopTool()},Uf.prototype.doCancel=function(){var a=this.diagram.lastInput,x=this.pk;x!==null&&(a.targetObject=x,x.actionCancel!==null&&x.actionCancel(a,x),this.stopTool())},Uf.prototype.doStop=function(){this.pk=null},Uf.className="ActionTool";function bm(){la.call(this),this.name="ClickCreating",this.Ri=null,this.o=!0,this.j=!1,this.mw=new it(0,0)}vn(bm,la),bm.prototype.canStart=function(){if(!this.isEnabled||this.archetypeNodeData===null)return!1;var a=this.diagram;if(a.isReadOnly||a.isModelReadOnly||!a.allowInsert||!a.lastInput.left||this.isBeyondDragSize())return!1;if(this.isDoubleClick){if(a.lastInput.clickCount===1&&(this.mw=a.lastInput.viewPoint.copy()),a.lastInput.clickCount!==2||this.isBeyondDragSize(this.mw))return!1}else if(a.lastInput.clickCount!==1)return!1;return!(a.currentTool!==this&&a.Ol(a.lastInput.documentPoint,!0)!==null)},bm.prototype.doMouseUp=function(){var a=this.diagram;this.isActive&&this.insertPart(a.lastInput.documentPoint),this.stopTool()},bm.prototype.insertPart=function(a){var x=this.diagram,b=this.archetypeNodeData;if(b===null)return null;var te=null;try{if(x.R("ChangingSelection",x.selection),this.Ea(this.name),b instanceof mo)b.Zc()&&(Yp(b),te=b.copy(),te!==null&&x.add(te));else if(b!==null){var re=x.model.copyNodeData(b);Ji(re)&&(x.model.xf(re),te=x.Lc(re))}if(te!==null){var oe=it.allocAt(a.x,a.y);this.isGridSnapEnabled&&Z1(this.diagram,te,a,oe),te.location=oe,x.allowSelect&&(x.clearSelection(!0),te.isSelected=!0),it.free(oe)}x.Ya(),this.transactionResult=this.name,x.R("PartCreated",te)}finally{this.stopTransaction(),x.R("ChangedSelection",x.selection)}return te},pn.Object.defineProperties(bm.prototype,{archetypeNodeData:{get:function(){return this.Ri},set:function(a){this.Ri=a}},isDoubleClick:{get:function(){return this.o},set:function(a){this.o=a}},isGridSnapEnabled:{get:function(){return this.j},set:function(a){this.j=a}}}),bm.className="ClickCreatingTool";function $h(){la.call(this),this.name="DragSelecting",this.Ik=175,this.o=!1;var a=new mo;a.layerName="Tool",a.selectable=!1;var x=new xs;x.name="SHAPE",x.figure="Rectangle",x.fill=null,x.stroke="magenta",a.add(x),this.j=a}vn($h,la),$h.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;if(!a.allowSelect)return!1;var x=a.lastInput;return!(!x.left||a.currentTool!==this&&(!this.isBeyondDragSize()||x.timestamp-a.firstInput.timestamp<this.delay||a.Ol(x.documentPoint,!0)!==null))},$h.prototype.doActivate=function(){var a=this.diagram;this.isActive=!0,a.isMouseCaptured=!0,a.skipsUndoManager=!0,a.add(this.box),this.doMouseMove()},$h.prototype.doDeactivate=function(){var a=this.diagram;a.ug(),a.remove(this.box),a.skipsUndoManager=!1,this.isActive=a.isMouseCaptured=!1},$h.prototype.doMouseMove=function(){var a=this.diagram;if(this.isActive&&this.box!==null){var x=this.computeBoxBounds(),b=this.box.fb("SHAPE");b===null&&(b=this.box.Pb());var te=Dt.alloc().h(x.width,x.height);b.desiredSize=te,this.box.mm(x.x,x.y,!1),Dt.free(te),(a.allowHorizontalScroll||a.allowVerticalScroll)&&a.gs(a.lastInput.viewPoint)}},$h.prototype.doMouseUp=function(){if(this.isActive){var a=this.diagram;a.remove(this.box);try{a.currentCursor="wait",a.R("ChangingSelection",a.selection),this.selectInRect(this.computeBoxBounds()),a.R("ChangedSelection",a.selection)}finally{a.currentCursor=""}}this.stopTool()},$h.prototype.computeBoxBounds=function(){var a=this.diagram;return new Yt(a.firstInput.documentPoint,a.lastInput.documentPoint)},$h.prototype.selectInRect=function(a){var x=this.diagram,b=x.lastInput;if(a=x.ux(a,this.isPartialInclusion),iu?b.meta:b.control)if(b.shift)for(a=a.iterator;a.next();)x=a.value,x.isSelected&&(x.isSelected=!1);else for(a=a.iterator;a.next();)x=a.value,x.isSelected=!x.isSelected;else if(b.shift)for(a=a.iterator;a.next();)x=a.value,x.isSelected||(x.isSelected=!0);else{for(b=new Zi,x=x.selection.iterator;x.next();){var te=x.value;a.contains(te)||b.add(te)}for(x=b.iterator;x.next();)x.value.isSelected=!1;for(a=a.iterator;a.next();)x=a.value,x.isSelected||(x.isSelected=!0)}},pn.Object.defineProperties($h.prototype,{delay:{get:function(){return this.Ik},set:function(a){this.Ik=a}},isPartialInclusion:{get:function(){return this.o},set:function(a){this.o=a}},box:{get:function(){return this.j},set:function(a){this.j=a}}}),$h.className="DragSelectingTool";function $c(){la.call(this),this.name="Panning",this.Xt=new it,this.xy=new it,this.xg=!1;var a=this;this.Kw=function(){var x=a.diagram;x!==null&&x.removeEventListener(ji.document,"scroll",a.Kw,!1),a.stopTool()}}vn($c,la),$c.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;return!(!a.allowHorizontalScroll&&!a.allowVerticalScroll||!a.lastInput.left||a.currentTool!==this&&!this.isBeyondDragSize())},$c.prototype.doActivate=function(){var a=this.diagram;this.xg?(a.lastInput.bubbles=!0,a.addEventListener(ji.document,"scroll",this.Kw,!1)):(a.currentCursor="move",a.isMouseCaptured=!0,this.Xt.assign(a.position)),this.isActive=!0},$c.prototype.doDeactivate=function(){var a=this.diagram;a.currentCursor="",this.isActive=a.isMouseCaptured=!1},$c.prototype.doCancel=function(){var a=this.diagram;a.position=this.Xt,a.isMouseCaptured=!1,this.stopTool()},$c.prototype.doMouseMove=function(){this.move()},$c.prototype.doMouseUp=function(){this.move(),this.stopTool()},$c.prototype.move=function(){var a=this.diagram;if(this.isActive&&a)if(this.xg)a.lastInput.bubbles=!0;else{var x=a.position,b=a.firstInput.documentPoint,te=a.lastInput.documentPoint,re=x.x+b.x-te.x;b=x.y+b.y-te.y,a.allowHorizontalScroll||(re=x.x),a.allowVerticalScroll||(b=x.y),a.position=this.xy.h(re,b)}},pn.Object.defineProperties($c.prototype,{bubbles:{get:function(){return this.xg},set:function(a){this.xg=a}},originalPosition:{get:function(){return this.Xt}}}),$c.className="PanningTool",Sa("clickCreatingTool",function(){return this.findTool("ClickCreating")},function(a){this.gb("ClickCreating",a,this.mouseUpTools)}),Sa("clickSelectingTool",function(){return this.findTool("ClickSelecting")},function(a){this.gb("ClickSelecting",a,this.mouseUpTools)}),Sa("panningTool",function(){return this.findTool("Panning")},function(a){this.gb("Panning",a,this.mouseMoveTools)}),Sa("dragSelectingTool",function(){return this.findTool("DragSelecting")},function(a){this.gb("DragSelecting",a,this.mouseMoveTools)}),Sa("actionTool",function(){return this.findTool("Action")},function(a){this.gb("Action",a,this.mouseDownTools)});function bf(){this.F=this.u=this.j=this.o=null}pn.Object.defineProperties(bf.prototype,{mainElement:{get:function(){return this.u},set:function(a){this.u=a}},show:{get:function(){return this.o},set:function(a){this.o!==a&&(this.o=a)}},hide:{get:function(){return this.j},set:function(a){this.j!==a&&(this.j=a)}},valueFunction:{get:function(){return this.F},set:function(a){this.F=a}}}),bf.className="HTMLInfo";function Hf(a,x,b){this.text=a,this.hx=x,this.visible=b}Hf.className="ContextMenuButtonInfo";function xu(){la.call(this),this.name="ContextMenu",this.o=this.ht=this.j=null,this.yw=new it,this.jt=null,this.Et=!1;var a=this;this.tu=function(){a.stopTool()}}vn(xu,la);function up(a){var x=new bf;x.show=function(re,oe,le){le.showDefaultContextMenu()},x.hide=function(re,oe){oe.hideDefaultContextMenu()},ot=x,a.tu=function(){a.stopTool()},x=pa("div");var b=pa("div");x.style.cssText="top: 0px;z-index:10002;position: fixed;display: none;text-align: center;left: 25%;width: 50%;background-color: #F5F5F5;padding: 16px;border: 16px solid #444;border-radius: 10px;margin-top: 10px",b.style.cssText="z-index:10001;position: fixed;display: none;top: 0;left: 0;width: 100%;height: 100%;background-color: black;opacity: 0.8;";var te=pa("style");ji.document.getElementsByTagName("head")[0].appendChild(te),te.sheet.insertRule(".goCXul { list-style: none; }",0),te.sheet.insertRule(".goCXli {font:700 1.5em Helvetica, Arial, sans-serif;position: relative;min-width: 60px; }",0),te.sheet.insertRule(".goCXa {color: #444;display: inline-block;padding: 4px;text-decoration: none;margin: 2px;border: 1px solid gray;border-radius: 10px; }",0),te=a.diagram,te!==null&&(te.addEventListener(x,"contextmenu",sc,!1),te.addEventListener(x,"selectstart",sc,!1),te.addEventListener(b,"contextmenu",sc,!1)),x.className="goCXforeground",b.className="goCXbackground",ji.document.body&&(ji.document.body.appendChild(x),ji.document.body.appendChild(b)),Ot=x,bt=b,vt=!0}function sc(a){return a.preventDefault(),!1}xu.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;return this.isBeyondDragSize()||!a.lastInput.right||1<a.lastInput.clickCount?!1:!!(a.lastInput.isTouchEvent&&this.defaultTouchContextMenu!==null||this.findObjectWithContextMenu()!==null)},xu.prototype.doStart=function(){this.yw.set(this.diagram.firstInput.documentPoint)},xu.prototype.doStop=function(){this.hideContextMenu(),this.currentObject=null},xu.prototype.findObjectWithContextMenu=function(a){a===void 0&&(a=null);var x=this.diagram,b=x.lastInput,te=null;if(a instanceof wn||(a instanceof nn?te=a:te=x.ic(b.documentPoint,null,function(re){return!re.layer.isTemporary})),te!==null){for(a=te;a!==null;){if(a.contextMenu!==null)return a;a=a.panel}if(x.lastInput.isTouchEvent&&this.defaultTouchContextMenu)return te.part}else if(x.contextMenu!==null)return x;return null},xu.prototype.doActivate=function(){},xu.prototype.doMouseDown=function(){if(la.prototype.doMouseDown.call(this),this.isActive&&this.currentContextMenu instanceof Ca){var a=this.diagram.toolManager.findTool("Action");a!==null&&a.canStart()&&(a.doActivate(),a.doMouseDown(),a.doDeactivate())}this.diagram.toolManager.mouseDownTools.contains(this)&&Fe(this)},xu.prototype.doMouseUp=function(){if(this.isActive&&this.currentContextMenu instanceof Ca){var a=this.diagram.toolManager.findTool("Action");a!==null&&a.canStart()&&(a.doActivate(),a.doCancel(),a.doDeactivate())}Fe(this)};function Fe(a){var x=a.diagram;if(a.isActive){var b=a.currentContextMenu;if(b!==null){var te=null;b instanceof bf||(te=x.ic(x.lastInput.documentPoint,null,null),te!==null&&te.rg(b)&&a.standardMouseClick(null,null)),a.maybeStopTool(te)}}else a.canStart()&&(He(a,!0),a.isActive||a.stopTool())}xu.prototype.maybeStopTool=function(){this.stopTool(),this.canStart()&&(this.diagram.currentTool=this,this.doMouseUp())};function He(a,x,b){if(b===void 0&&(b=null),!a.Et&&(a.Et=!0,x&&a.standardMouseSelect(),x=a.standardMouseClick(),a.Et=!1,!x)){if(a.isActive=!0,x=ot,b===null&&(b=a.findObjectWithContextMenu()),b!==null){var te=b.contextMenu;te!==null?(a.currentObject=b instanceof nn?b:null,a.showContextMenu(te,a.currentObject)):x!==null&&a.showContextMenu(x,a.currentObject)}else x!==null&&a.showContextMenu(x,null);a.currentContextMenu instanceof Ca&&!a.currentContextMenu.visible&&a.stopTool()}}xu.prototype.doMouseMove=function(){var a=this.diagram.toolManager.findTool("Action");a!==null&&a.doMouseMove(),this.isActive&&this.diagram.toolManager.doMouseMove()},xu.prototype.showContextMenu=function(a,x){var b=this.diagram;if(a!==this.currentContextMenu&&this.hideContextMenu(),a instanceof Ca){a.layerName="Tool",a.selectable=!1,a.scale=1/b.scale,a.category=this.name,a.placeholder!==null&&(a.placeholder.scale=b.scale);var te=a.diagram;te!==null&&te!==b&&te.remove(a),b.add(a),x!==null?a.adornedObject=x:a.data=b.model,a.Va(),this.positionContextMenu(a,x)}else a instanceof bf&&a.show(x,b,this);this.currentContextMenu=a},xu.prototype.positionContextMenu=function(a){if(a.placeholder===null){var x=this.diagram,b=x.lastInput.documentPoint.copy(),te=a.measuredBounds,re=x.viewportBounds;x.lastInput.isTouchEvent&&(b.x-=te.width),b.x+te.width>re.right&&(b.x-=te.width+5/x.scale),b.x<re.x&&(b.x=re.x),b.y+te.height>re.bottom&&(b.y-=te.height+5/x.scale),b.y<re.y&&(b.y=re.y),a.position=b}},xu.prototype.hideContextMenu=function(){var a=this.diagram,x=this.currentContextMenu;x!==null&&(x instanceof Ca?(a.remove(x),this.ht!==null&&this.ht.Jf(x.category),x.data=null,x.adornedObject=null):x instanceof bf&&(x.hide!==null?x.hide(a,this):x.mainElement!==null&&(x.mainElement.style.display="none")),this.currentContextMenu=null,this.standardMouseOver())};function Qe(a){var x=new Zi;return x.add(new Hf("Copy",function(b){b.commandHandler.copySelection()},function(b){return b.commandHandler.canCopySelection()})),x.add(new Hf("Cut",function(b){b.commandHandler.cutSelection()},function(b){return b.commandHandler.canCutSelection()})),x.add(new Hf("Delete",function(b){b.commandHandler.deleteSelection()},function(b){return b.commandHandler.canDeleteSelection()})),x.add(new Hf("Paste",function(b){b.commandHandler.pasteSelection(a.mouseDownPoint)},function(b){return b.commandHandler.canPasteSelection(a.mouseDownPoint)})),x.add(new Hf("Select All",function(b){b.commandHandler.selectAll()},function(b){return b.commandHandler.canSelectAll()})),x.add(new Hf("Undo",function(b){b.commandHandler.undo()},function(b){return b.commandHandler.canUndo()})),x.add(new Hf("Redo",function(b){b.commandHandler.redo()},function(b){return b.commandHandler.canRedo()})),x.add(new Hf("Scroll To Part",function(b){b.commandHandler.scrollToPart()},function(b){return b.commandHandler.canScrollToPart()})),x.add(new Hf("Zoom To Fit",function(b){b.commandHandler.zoomToFit()},function(b){return b.commandHandler.canZoomToFit()})),x.add(new Hf("Reset Zoom",function(b){b.commandHandler.resetZoom()},function(b){return b.commandHandler.canResetZoom()})),x.add(new Hf("Group Selection",function(b){b.commandHandler.groupSelection()},function(b){return b.commandHandler.canGroupSelection()})),x.add(new Hf("Ungroup Selection",function(b){b.commandHandler.ungroupSelection()},function(b){return b.commandHandler.canUngroupSelection()})),x.add(new Hf("Edit Text",function(b){b.commandHandler.editTextBlock()},function(b){return b.commandHandler.canEditTextBlock()})),x}xu.prototype.showDefaultContextMenu=function(){var a=this.diagram;this.jt===null&&(this.jt=Qe(this)),Ot.innerHTML="",bt.addEventListener("pointerdown",this.tu,!1);var x=this,b=pa("ul");b.className="goCXul",Ot.appendChild(b),b.innerHTML="";for(var te=this.jt.iterator;te.next();){var re=te.value,oe=re.visible;if(typeof re.hx=="function"&&(typeof oe!="function"||oe(a))){oe=pa("li"),oe.className="goCXli";var le=pa("a");le.className="goCXa",le.href="#",le.ky=re.hx,le.addEventListener("pointerdown",function(fe){return this.ky(a),x.stopTool(),fe.preventDefault(),!1},!1),le.textContent=re.text,oe.appendChild(le),b.appendChild(oe)}}Ot.style.display="block",bt.style.display="block"},xu.prototype.hideDefaultContextMenu=function(){if(this.currentContextMenu!==null&&this.currentContextMenu===ot){Ot.style.display="none",bt.style.display="none";var a=this.diagram;a!==null&&a.removeEventListener(bt,"pointerdown",this.tu,!1),this.currentContextMenu=null}},pn.Object.defineProperties(xu.prototype,{currentContextMenu:{get:function(){return this.j},set:function(a){this.j=a,this.ht=a instanceof Ca?a.adornedPart:null}},defaultTouchContextMenu:{get:function(){return vt===!1&&ot===null&&zu&&up(this),ot},set:function(a){a===null&&(vt=!0),ot=a}},currentObject:{get:function(){return this.o},set:function(a){this.o=a}},mouseDownPoint:{get:function(){return this.yw}}});var ot=null,vt=!1,bt=null,Ot=null;xu.className="ContextMenuTool",Sa("contextMenuTool",function(){return this.findTool("ContextMenu")},function(a){this.gb("ContextMenu",a,this.mouseUpTools)});function wt(){la.call(this),this.name="TextEditing",this.Zh=new _l,this.ia=null,this.V=fi,this.vj=null,this.qa=Tr,this.u=1,this.F=!0,this.o=null,this.j=new bf,this.kt=null,dn(this,this.j)}vn(wt,la);function dn(a,x){if(zu){var b=pa("textarea");a.kt=b,b.addEventListener("input",function(){if(a.textBlock!==null){var te=a.Lx(this.value);this.style.width=20+te.measuredBounds.width*this.wA+"px",this.rows=te.lineCount}},!1),b.addEventListener("keydown",function(te){if(!te.isComposing&&a.textBlock!==null){var re=te.key;re==="Enter"?(a.textBlock.isMultiline===!1&&te.preventDefault(),a.acceptText(Gi)):re==="Tab"?(a.acceptText(Wn),te.preventDefault()):re==="Escape"&&(a.doCancel(),a.diagram!==null&&a.diagram.doFocus())}},!1),b.addEventListener("focus",function(){if(a.currentTextEditor!==null&&a.state!==Tr){var te=a.kt;a.qa===rr&&(a.qa=to),typeof te.select=="function"&&a.selectsTextOnActivate&&(te.select(),te.setSelectionRange(0,9999))}},!1),b.addEventListener("blur",function(){if(a.currentTextEditor!==null&&a.state!==Tr){var te=a.kt;typeof te.focus=="function"&&te.focus(),typeof te.select=="function"&&a.selectsTextOnActivate&&(te.select(),te.setSelectionRange(0,9999))}},!1),x.valueFunction=function(){return b.value},x.mainElement=b,x.show=function(te,re,oe){if(te instanceof _l&&oe instanceof wt)if(oe.state===ks)b.style.border="3px solid red",b.focus();else{var le=te.ga(eo),fe=re.position,ge=re.scale,ye=te.Df()*ge;ye<oe.minimumEditorScale&&(ye=oe.minimumEditorScale);var we=te.naturalBounds.width*ye+6,be=te.naturalBounds.height*ye+2,ke=(le.x-fe.x)*ge;le=(le.y-fe.y)*ge,fe=te.verticalAlignment,ge=(te.lineHeight+te.spacingAbove+te.spacingBelow)*te.lineCount*ye,be=fe.y*be-fe.y*ge+fe.offsetY-(.5*be-.5*ge)-ge/2,b.value=te.text,re.div.style.font=te.font,b.style.position="absolute",b.style.zIndex="100",b.style.font="inherit",b.style.fontSize=100*ye+"%",b.style.lineHeight="normal",b.style.width=we+"px",b.style.left=(ke-we/2|0)-1+"px",b.style.top=(le+be|0)-1+"px",b.style.textAlign=te.textAlign,b.style.margin="0",b.style.padding="1px",b.style.border="0",b.style.outline="none",b.style.whiteSpace="pre-wrap",b.style.overflow="hidden",b.rows=te.lineCount,b.wA=ye,b.className="goTXarea",re.div.appendChild(b),b.focus(),oe.selectsTextOnActivate&&(b.select(),b.setSelectionRange(0,9999))}},x.hide=function(te){te.div.removeChild(b)}}}wt.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;if(a===null||a.isReadOnly||Ss&&Ss!==this&&(Ss.acceptText(Bn),Ss&&Ss!==this)||!a.lastInput.left||this.isBeyondDragSize())return!1;var x=a.ic(a.lastInput.documentPoint);return x!==null&&x instanceof _l&&x.editable&&x.part.canEdit()?(x=x.part,!(x===null||this.starting===fi&&!x.isSelected||this.starting===Fi&&2>a.lastInput.clickCount)):!1},wt.prototype.doStart=function(){Ss=this,this.textBlock!==null&&this.doActivate()},wt.prototype.doActivate=function(){if(!this.isActive){var a=this.diagram;if(a!==null){var x=this.textBlock;if(x===null&&(x=a.ic(a.lastInput.documentPoint)),x!==null&&x instanceof _l&&(this.textBlock=x,x.part!==null)){a.animationManager.Cc(),this.isActive=!0,this.qa=rr;var b=this.defaultTextEditor;x.textEditor!==null&&(b=x.textEditor),this.Zh=this.textBlock.copy();var te=new Yt(this.textBlock.ga(Is),this.textBlock.ga(ws));a.tv(te),b.show(x,a,this),this.currentTextEditor=b}}}},wt.prototype.doCancel=function(){this.stopTool()},wt.prototype.doMouseUp=function(){this.canStart()&&this.doActivate()},wt.prototype.doMouseDown=function(){this.isActive&&this.acceptText(Bn)},wt.prototype.acceptText=function(a){switch(a){case Bn:this.qa===uo?this.currentTextEditor instanceof HTMLElement&&this.currentTextEditor.focus():(this.qa===rr||this.qa===ks||this.qa===to)&&(this.qa=Io,Vt(this));break;case Wt:case Gi:case Wn:(Gi!==a||this.textBlock.isMultiline!==!0)&&(this.qa===rr||this.qa===ks||this.qa===to)&&(this.qa=Io,Vt(this))}};function Vt(a){var x=a.textBlock,b=a.diagram,te=a.currentTextEditor;if(x!==null&&te!==null){var re=x.text,oe="";te.valueFunction!==null&&(oe=te.valueFunction()),a.isValidText(x,re,oe)?(a.Ea(a.name),a.qa=uo,a.transactionResult=a.name,x.text=oe,a.doSuccess(re,oe),b!==null&&b.R("TextEdited",x,re),a.stopTransaction(),a.stopTool(),b!==null&&b.doFocus()):(a.qa=ks,a.doError(re,oe))}}wt.prototype.doError=function(a,x){var b=this.textBlock;b.errorFunction!==null&&b.errorFunction(this,a,x),(a=this.currentTextEditor)&&a.show(b,this.diagram,this)},wt.prototype.doSuccess=function(a,x){var b=this.textBlock;b.textEdited!==null&&b.textEdited(b,a,x)},wt.prototype.doDeactivate=function(){var a=this.diagram;a!==null&&(this.qa=Tr,this.currentTextEditor!==null&&this.currentTextEditor.hide(a,this),this.textBlock=null,this.isActive=!1)},wt.prototype.doStop=function(){Ss=null},wt.prototype.isValidText=function(a,x,b){var te=this.textValidation;return te!==null&&!te(a,x,b)?!1:(te=a.textValidation,!!(te===null||te(a,x,b)))},wt.prototype.Lx=function(a){var x=this.Zh;return x.text=a,x.measure(this.textBlock.Ih,1/0),x},pn.Object.defineProperties(wt.prototype,{textBlock:{get:function(){return this.ia},set:function(a){this.ia=a}},currentTextEditor:{get:function(){return this.o},set:function(a){this.o=a}},defaultTextEditor:{get:function(){return this.j},set:function(a){this.j=a}},starting:{get:function(){return this.V},set:function(a){this.V=a}},textValidation:{get:function(){return this.vj},set:function(a){this.vj=a}},minimumEditorScale:{get:function(){return this.u},set:function(a){this.u=a}},selectsTextOnActivate:{get:function(){return this.F},set:function(a){this.F=a}},state:{get:function(){return this.qa},set:function(a){this.qa!==a&&(this.qa=a)}}}),wt.prototype.measureTemporaryTextBlock=wt.prototype.Lx;var Wt=new Ni(wt,"LostFocus",0),Bn=new Ni(wt,"MouseDown",1),Wn=new Ni(wt,"Tab",2),Gi=new Ni(wt,"Enter",3),bi=new Ni(wt,"SingleClick",0),fi=new Ni(wt,"SingleClickSelected",1),Fi=new Ni(wt,"DoubleClick",2),Tr=new Ni(wt,"StateNone",0),rr=new Ni(wt,"StateActive",1),to=new Ni(wt,"StateEditing",2),Io=new Ni(wt,"StateValidating",3),ks=new Ni(wt,"StateInvalid",4),uo=new Ni(wt,"StateValidated",5),Ss=null;wt.className="TextEditingTool",wt.LostFocus=Wt,wt.MouseDown=Bn,wt.Tab=Wn,wt.Enter=Gi,wt.SingleClick=bi,wt.SingleClickSelected=fi,wt.DoubleClick=Fi,wt.StateNone=Tr,wt.StateActive=rr,wt.StateEditing=to,wt.StateValidating=Io,wt.StateInvalid=ks,wt.StateValidated=uo,Sa("textEditingTool",function(){return this.findTool("TextEditing")},function(a){this.gb("TextEditing",a,this.mouseUpTools)});function Xs(a){Ku||(tu(),Ku=!0),this.H=sm,this.Ok=this.zb=this.vq=this.bc=!1,this.Qw=!0,this.Pk=Mu,this.Dm=!1,this.Gh=this.Jd=!0,this.Dg=600,this.cw=this.Ow=!1,this.Zd=new Yi,this.ce=new Nu,this.ce.Yd=this,this.Ei=new Yi,this.pu=new Yi,this.Sr=new Yi,this.pr=new Yi,a&&Object.assign(this,a)}Xs.prototype.Xe=function(a){this.H=a},Xs.prototype.canStart=function(){return!0};function ua(a,x){a.Jd&&a.canStart(x)&&(a.Zd.add(x),a.defaultAnimation.isAnimating&&a.Cc(),Nh(a.H),a.zb=!0)}function Ao(a){if(a.Jd&&a.zb){var x=a.ce,b=a.H,te=a.Zd.contains("Model");te&&(a.Ok=!0,a.Pk===Mu?(x.isViewportUnconstrained=!0,x.vc.clear(),x.add(b,"position",b.position.copy().offset(0,-200),b.position),x.add(b,"opacity",0,1)):a.Pk===ph&&x.vc.clear(),a.Qw=!!(a.Pk===Fc&&b.du.D(b.pa)),b.R("InitialAnimationStarting",a)),te&&!a.Gh||x.vc.count===0?(a.Zd.clear(),a.zb=!1,x.vc.clear(),sg(x,b),a.Ok=!1,b.N()):(a.Zd.clear(),b.kg=!1,te=x.vc.get(b),b.autoScale!==sd&&te!==null&&(delete te.start.scale,delete te.end.scale),ji.requestAnimationFrame(function(){a.zb===!1||x.bc||(b.Gf("temporaryPixelRatio")&&jd(b),xS(b),a.zb=!1,x.start(),x.bc&&(Mo(a),b.Ya(),j1(x,0),cp(b,!0),Eo(a),b.R("AnimationStarting",a)))}))}}function Er(a){return a.Zd.contains("Trigger")&&a.Zd.count===1}function ca(a,x,b,te){a.isTicking||Er(a)||x instanceof Ui&&(x.fromNode!==null||x.toNode!==null)||a.ce.add(x,"position",b,te,!1)}We=Xs.prototype,We.fv=function(a){return this.ce.fv(a)},We.Xu=function(a){return this.ce.Xu(a)};function Ci(a,x){function b(){if(0<re.Sr.count&&(te.addAll(re.Sr),re.Sr.clear(),re.bc=!0),re.bc!==!1&&te.count!==0){re.pu.addAll(te);for(var oe=re.pu.iterator;oe.next();){var le=oe.value;if(le.bc!==!1){e:if(0<le.yl.count)var fe=!0;else{for(fe=le.vc.iterator;fe.next();){var ge=fe.key;if(ge instanceof nn&&ge.diagram!==null||ge instanceof wn){fe=!0;break e}}fe=!1}fe?rx(le,!1):le.Xk=!0}}re.pu.clear(),re.bc!==!1&&(Mo(re),cp(re.H),Eo(re)),ji.requestAnimationFrame(b)}}var te=a.Ei,re=a;a.bc?a.Sr.add(x):(a.bc=!0,te.add(x),ji.requestAnimationFrame(function(){b()}))}function qr(a){for(a=a.Ei.iterator;a.next();)a.value.Xk=!1}function Mo(a){if(!a.vq){var x=a.H;a.Ow=x.skipsUndoManager,a.cw=x.skipsModelSourceBindings,x.skipsUndoManager=!0,x.skipsModelSourceBindings=!0,a.vq=!0}}function Eo(a){var x=a.H;x.skipsUndoManager=a.Ow,x.skipsModelSourceBindings=a.cw,a.vq=!1}We.Cc=function(a){var x=this.ce;if(this.zb===!0&&(this.Ok=this.zb=!1,this.Zd.clear(),0<x.vc.count&&this.H.$b()),this.bc){if(x.Ml(!0),x.vc.clear(),sg(x,null),a===!0)for(a=this.Ei.Fa(),x=0;x<a.length;x++)a[x].Ml(!0)}else x.vc.clear(),sg(x,this.H)},We.Ml=function(a){a===this.defaultAnimation&&this.defaultAnimation.vc.clear(),this.Ei.remove(a),this.Ei.count===0&&(this.bc=!1,this.H.$b()),a===this.defaultAnimation&&(this.defaultAnimation.vc.clear(),this.H.R("AnimationFinished",this))},We.Cj=function(a,x){this.zb&&(this.Zd.contains("Expand Tree")||this.Zd.contains("Expand SubGraph"))&&(this.ce.Cj(a,x),Ko(this,a))},We.Aj=function(a,x){this.zb&&(this.Zd.contains("Collapse Tree")||this.Zd.contains("Collapse SubGraph"))&&(this.ce.Aj(a,x),Tg(this.ce,x,"position",x.position,x.position),Ko(this,a))};function Ds(a,x,b){!a.zb||x.D(b)||Er(a)||(a.H.pi||(x=b.copy()),Tg(a.ce,a.H,"position",x,b))}function is(a,x,b){x.fd&&(x.Tg=b,a.pr.add(x))}function Ko(a,x){for(x=x.findLinksConnected();x.next();){var b=x.value;b.fd&&(b.Tg=b.points.copy(),a.pr.add(b))}}function za(a,x,b,te,re){a===null&&(a=[0,0,0,0]),x===null&&(x=[0,0,0,0]);var oe=a[0],le=a[1],fe=a[2];a=a[3];var ge=x[0],ye=x[1],we=x[2];return x=x[3],fe===0||fe===100?(oe=ge,le=ye):(we===0||we===100)&&(ge=oe,ye=le),180<Math.abs(ge-oe)&&(ge>oe?oe+=360:ge+=360),oe=re(b,oe,ge-oe,te)%360,le=re(b,le,ye-le,te),fe=re(b,fe,we-fe,te),b=re(b,a,x-a,te),"hsla("+oe+", "+le+"%, "+fe+"%, "+b+")"}function tu(){function a(b,te,re,oe,le,fe){b.position=new it(oe(le,te.x,re.x-te.x,fe),oe(le,te.y,re.y-te.y,fe))}var x=new kn;x.add("position:diagram",a),x.add("position",a),x.add("position:part",function(b,te,re,oe,le,fe){le<fe?b.mm(oe(le,te.x,re.x-te.x,fe),oe(le,te.y,re.y-te.y,fe),!1):b.position=new it(oe(le,te.x,re.x-te.x,fe),oe(le,te.y,re.y-te.y,fe))}),x.add("location",function(b,te,re,oe,le,fe){le<fe?b.mm(oe(le,te.x,re.x-te.x,fe),oe(le,te.y,re.y-te.y,fe),!0):b.location=new it(oe(le,te.x,re.x-te.x,fe),oe(le,te.y,re.y-te.y,fe))}),x.add("position:placeholder",function(b,te,re,oe,le,fe){le<fe?b.mm(oe(le,te.x,re.x-te.x,fe),oe(le,te.y,re.y-te.y,fe),!1):b.position=new it(oe(le,te.x,re.x-te.x,fe),oe(le,te.y,re.y-te.y,fe))}),x.add("position:nodeCollapse",function(b,te,re,oe,le,fe){var ge=b.actualBounds,ye=re.actualBounds;re=ye.x+ye.width/2-ge.width/2,ge=ye.y+ye.height/2-ge.height/2,le<fe?b.mm(oe(le,te.x,re-te.x,fe),oe(le,te.y,ge-te.y,fe),!1):b.position=new it(oe(le,te.x,re-te.x,fe),oe(le,te.y,ge-te.y,fe))}),x.add("desiredSize",function(b,te,re,oe,le,fe){b.desiredSize=new Yt(oe(le,te.width,re.width-te.width,fe),oe(le,te.height,re.height-te.height,fe))}),x.add("width",function(b,te,re,oe,le,fe){b.width=oe(le,te,re-te,fe)}),x.add("height",function(b,te,re,oe,le,fe){b.height=oe(le,te,re-te,fe)}),x.add("fill",function(b,te,re,oe,le,fe){b.fill=za(te,re,le,fe,oe)}),x.add("stroke",function(b,te,re,oe,le,fe){b.stroke=za(te,re,le,fe,oe)}),x.add("strokeWidth",function(b,te,re,oe,le,fe){b.strokeWidth=oe(le,te,re-te,fe)}),x.add("strokeDashOffset",function(b,te,re,oe,le,fe){b.strokeDashOffset=oe(le,te,re-te,fe)}),x.add("background",function(b,te,re,oe,le,fe){b.background=za(te,re,le,fe,oe)}),x.add("areaBackground",function(b,te,re,oe,le,fe){b.areaBackground=za(te,re,le,fe,oe)}),x.add("opacity",function(b,te,re,oe,le,fe){b.opacity=oe(le,te,re-te,fe)}),x.add("scale",function(b,te,re,oe,le,fe){b.scale=oe(le,te,re-te,fe)}),x.add("angle",function(b,te,re,oe,le,fe){b.angle=oe(le,te,re-te,fe)}),ea=x}pn.Object.defineProperties(Xs.prototype,{animationReasons:{get:function(){return this.Zd}},isEnabled:{get:function(){return this.Jd},set:function(a){(this.Jd=a)&&this.Ei.each(function(x){x.isAnimating||x.runCount!==1/0||x.start()})}},duration:{get:function(){return this.Dg},set:function(a){1>a&&Xo(a,">= 1",Xs,"duration"),this.Dg=a}},isAnimating:{get:function(){return this.bc}},isTicking:{get:function(){return this.vq}},isInitial:{get:function(){return this.Gh},set:function(a){this.Gh=a}},defaultAnimation:{get:function(){return this.ce}},activeAnimations:{get:function(){return this.Ei}},initialAnimationStyle:{get:function(){return this.Pk},set:function(a){this.Pk=a}}}),Xs.prototype.stopAnimation=Xs.prototype.Cc;var ea=null,Ku=!1,Mu=new Ni(Xs,"Default",1),Fc=new Ni(Xs,"AnimateLocations",2),ph=new Ni(Xs,"None",3);Xs.className="AnimationManager",Xs.defineAnimationEffect=function(a,x){Ku||(tu(),Ku=!0),ea.add(a,x)},Xs.Default=Mu,Xs.AnimateLocations=Fc,Xs.None=ph;function Nu(a){this.vu=this.Nw=this.Yd=this.H=null,this.Xk=this.bc=this.j=!1,this.cn=this.Qd=0,this.Lp=this.ot=Wy,this.Wk=this.ho=!1,this.cu=1,this.au=0,this.Gd=this.Dg=NaN,this.gw=0,this.dn=null,this.o=fr,this.vc=new kn,this.Tt=new kn,this.yl=new Yi,this.Ut=new Yi,this.dw=cg,a&&Object.assign(this,a)}Nu.prototype.suspend=function(){this.Xk=!0},Nu.prototype.advanceTo=function(a,x){x&&(this.Xk=!1),this.ho&&a>=this.Gd&&(this.Wk=!0,a-=this.Gd),this.gw=a,rx(this,!0),Mo(this.Yd),cp(this.H),Eo(this.Yd),this.H.redraw()};function sg(a,x){if(a.Tt.clear(),a.Wk=!1,a.au=0,a.Gd=NaN,0<a.yl.count&&a.yl.clear(),0<a.Ut.count&&a.Ut.clear(),x!==null)for(a=x.links;a.next();)a.value.Tg=null}We=Nu.prototype,We.start=function(){if(this.vc.count===0||this.bc)return this;for(var a=this.H,x=this.vc.iterator;x.next();){var b=x.key;a===null&&(b instanceof wn?a=b:b instanceof nn&&(a=b.diagram))}if(a!==null)this.H=a,this.Yd=a.animationManager;else return this;return x=this.Yd,x.isEnabled===!1?this:(this.Gd=isNaN(this.Dg)?x.duration:this.Dg,this.Lp=this.ot,x.Ok&&x.Pk===Mu&&this===x.defaultAnimation&&(this.Lp=Xb,this.Gd=isNaN(this.Dg)?x.duration===600?900:x.duration:this.Dg),this.dw=a.scrollMode,this.isViewportUnconstrained&&(a.sj=ad),Mo(x),this.yl.each(function(te){te.data=null,a.add(te)}),Eo(x),this.bc=!0,this.Qd=+new Date,this.cn=this.Qd+this.Gd,Ci(x,this),this)},We.Iy=function(a,x){return a.Zc()?(this.yl.add(a),this.H=x,this):this},We.add=function(a,x,b,te,re){if(x==="position"&&b.Xa(te))return this;if(this.H===null&&(a instanceof wn?this.H=a:a instanceof nn&&a.diagram!==null&&(this.H=a.diagram)),a instanceof mo){if(!a.isAnimated)return this;x==="position"&&(x="position:part")}return Tg(this,a,x,b,te,re),this};function Tg(a,x,b,te,re,oe){var le=a.vc;if(x instanceof wn&&b==="position"&&(b="position:diagram"),(b==="fill"||b==="stroke"||b==="background"||b==="areaBackground")&&(Qp(te),Yb(),te=[hd.j,hd.u,hd.o,hd.F],Qp(re),Yb(),re=[hd.j,hd.u,hd.o,hd.F]),le.contains(x)){var fe=le.I(x),ge=fe.start,ye=fe.end;ge[b]===void 0&&(ge[b]=Mm(te)),ye[b]=Mm(re)}else ge={},ye={},ge[b]=Mm(te),ye[b]=Mm(re),fe=ge.position,x instanceof nn&&fe instanceof it&&!fe.w()&&x.diagram.animationManager.Zd.contains("Expand SubGraph")&&fe.assign(ye.position),fe=new Rv(ge,ye,oe),le.add(x,fe);le=ge[b],le instanceof it&&!le.w()&&le.assign(a.o),oe&&b.indexOf("position:")===0&&x instanceof mo?fe.Ku.location=Mm(x.location):oe&&(fe.Ku[b]=Mm(te))}function Mm(a){return a instanceof it||a instanceof Dt?a.copy():a}We.fv=function(a){return this.bc?(a=this.vc.I(a),a!==null&&a.nv):!1},We.Xu=function(a){return this.bc?(a=this.vc.I(a),a!==null&&(a.start.position||a.start.location)):!1};function rx(a,x){if(!a.Xk||x){var b=a.Yd;if(a.bc!==!1){var te=+new Date,re=te>a.cn?a.Gd:te-a.Qd;x&&(re=a.gw,re<a.Gd?(a.Qd=+new Date-re,a.cn=a.Qd+a.Gd):re=a.Gd),Mo(b),j1(a,re),cp(a.H,!0),Eo(b),te>a.cn&&(a.ho&&!a.Wk?(a.Qd=+new Date,a.cn=a.Qd+a.Gd,a.Wk=!0):a.Ml(!1))}}}function j1(a,x){for(var b=a.Gd,te=a.vc.iterator,re=a.Wk;te.next();){var oe=te.key;if(!(oe instanceof nn&&oe.diagram===null)){var le=te.value,fe=re?le.end:le.start;le=re?le.start:le.end;var ge=ea,ye;for(ye in le)ye==="position"&&(le["position:placeholder"]||le["position:nodeCollapse"])||ge.get(ye)===null||ge.get(ye)(oe,fe[ye],le[ye],a.Lp,x,b,a)}}}We.stop=function(){return this.bc?(this.Ml(!0),this):this},We.Ml=function(a){if(this.vu!==null&&this.vu.jo.remove(this.Nw),this.bc){var x=this.H,b=this.Yd;this.Xk=this.bc=b.Ok=!1,Mo(b);for(var te=this.vc,re=this.yl.iterator;re.next();)x.remove(re.value);for(re=this.Ut.iterator;re.next();)re.value.v();re=this.ho,te=te.iterator;for(var oe=ea;te.next();){var le=te.key,fe=te.value,ge=re?fe.end:fe.start,ye=re?fe.start:fe.end,we=fe.Ku,be;for(be in ye)if(oe.get(be)!==null){var ke=be;!fe.Hu||ke!=="position:nodeCollapse"&&ke!=="position:placeholder"||(ke="position"),oe.get(ke)(le,ge[be],we[be]!==void 0?we[be]:fe.Hu?ge[be]:ye[be],this.Lp,this.Gd,this.Gd,this)}fe.Hu&&we.location!==void 0&&le instanceof mo&&(le.location=we.location),fe.nv&&le instanceof mo&&le.Zb(!1)}if(x.As.clear(),ox(x,!1),x.Ya(),x.N(),cp(x,!0),b.defaultAnimation===this){for(be=b.pr.iterator;be.next();)re=be.value,re.Tg!==null&&(re.points=re.Tg,re.Tg=null);b.pr.clear()}cp(x,!0),this.isViewportUnconstrained&&(x.scrollMode=this.dw),Eo(b),this.au++,!a&&this.cu>this.au?(this.Wk=!1,this.start()):(this.dn&&this.dn(this),sg(this,null),b.Ml(this),x.$b())}},We.Cj=function(a,x){var b=x.actualBounds,te=null;if(x instanceof ts&&(te=x.placeholder),te!==null?(b=te.ga(Is),te=te.padding,b.x+=te.left,b.y+=te.top,this.add(a,"position",b,a.position,!1)):this.add(a,"position",new it(b.x+b.width/2,b.y+b.height/2),a.position,!1),this.add(a,"scale",.01,a.scale,!1),a instanceof ts)for(a=a.memberParts;a.next();)te=a.value,te instanceof ar&&this.Cj(te,x)},We.Aj=function(a,x){if(a.isVisible()){var b=null;if(x instanceof ts&&(b=x.placeholder),b!==null){var te=b.ga(Is);b=b.padding,te.x+=b.left,te.y+=b.top,this.add(a,"position:placeholder",a.position,te,!0)}else this.add(a,"position:nodeCollapse",a.position,x,!0);if(this.add(a,"scale",a.scale,.01,!0),te=this.vc,te.contains(a)&&(te.I(a).nv=!0),a instanceof ts)for(a=a.memberParts;a.next();)te=a.value,te instanceof ar&&this.Aj(te,x)}},We.Ez=function(a){var x=this.Tt.get(a);return x===null&&(x={},this.Tt.add(a,x)),x},pn.Object.defineProperties(Nu.prototype,{duration:{get:function(){return this.Dg},set:function(a){1>a&&Xo(a,">= 1",Nu,"duration"),this.Dg=a}},reversible:{get:function(){return this.ho},set:function(a){this.ho=a}},runCount:{get:function(){return this.cu},set:function(a){0<a?this.cu=a:hn("Animation.runCount value must be a positive integer.")}},finished:{get:function(){return this.dn},set:function(a){this.dn!==a&&(this.dn=a)}},easing:{get:function(){return this.ot},set:function(a){this.ot=a}},isViewportUnconstrained:{get:function(){return this.j},set:function(a){this.j=a}},isAnimating:{get:function(){return this.bc}}}),Nu.prototype.getTemporaryState=Nu.prototype.Ez,Nu.prototype.stop=Nu.prototype.stop,Nu.prototype.add=Nu.prototype.add,Nu.prototype.addTemporaryPart=Nu.prototype.Iy;function Wy(a,x,b,te){return a/=te/2,1>a?b/2*a*a+x:-b/2*(--a*(a-2)-1)+x}function Xb(a,x,b,te){return a===te?x+b:b*(-Math.pow(2,-10*a/te)+1)+x}Nu.className="Animation",Nu.EaseLinear=function(a,x,b,te){return b*a/te+x},Nu.EaseInOutQuad=Wy,Nu.EaseInQuad=function(a,x,b,te){return b*(a/=te)*a+x},Nu.EaseOutQuad=function(a,x,b,te){return-b*(a/=te)*(a-2)+x},Nu.EaseInExpo=function(a,x,b,te){return a===0?x:b*Math.pow(2,10*(a/te-1))+x},Nu.EaseOutExpo=Xb;function Rv(a,x,b){this.start=a,this.end=x,this.Ku={},this.Hu=b,this.nv=!1}Rv.className="AnimationState";function ag(a,x,b){this.xd=null,this.rf=a,this.so=b||yS,this.uk=null,x!==void 0&&(this.uk=x,b===void 0&&(this.so=zv))}ag.prototype.copy=function(){var a=new ag(this.rf);a.so=this.so;var x=this.uk;if(x!==null){var b={};x.duration!==void 0&&(b.duration=x.duration),x.finished!==void 0&&(b.finished=x.finished),x.easing!==void 0&&(b.easing=x.easing),a.uk=b}return a};function vS(a,x){a=a.uk,a!==null&&(a.duration&&(x.duration=a.duration),a.finished&&(x.finished=a.finished),a.easing&&(x.easing=a.easing))}pn.Object.defineProperties(ag.prototype,{propertyName:{get:function(){return this.rf},set:function(a){this.rf=a}},animationSettings:{get:function(){return this.uk},set:function(a){this.uk=a}},startCondition:{get:function(){return this.so},set:function(a){this.so=a}}});var yS=new Ni(ag,"Default",1),zv=new Ni(ag,"Immediate",2),Uv=new Ni(ag,"Bundled",3);ag.className="AnimationTrigger",ag.Default=yS,ag.Immediate=zv,ag.Bundled=Uv;function eh(a){$o(this),this.H=null,this.Pa=new Zi,this.xa="",this.pb=1,this.o=!1,this.j=this.Uh=this.u=this.Oi=this.Ni=this.Mi=this.Li=this.Ji=this.Ki=this.Ii=this.Qi=this.Hi=this.Pi=this.Gi=this.Fi=!0,this.Zq=[],a&&Object.assign(this,a)}We=eh.prototype,We.clear=function(){for(var a=this.Pa,x=0;x<a.length;x++){var b=a.s[x];b.Ig=null,mh(b)}a.clear(),this.Zq.length=0},We.Xe=function(a){this.H=a},We.toString=function(a){a===void 0&&(a=0);var x='Layer "'+this.name+'"';if(0>=a)return x;for(var b=0,te=0,re=0,oe=0,le=0,fe=this.Pa.iterator;fe.next();){var ge=fe.value;ge instanceof ts?re++:ge instanceof ar?te++:ge instanceof Ui?oe++:ge instanceof Ca?le++:b++}if(fe="",0<b&&(fe+=b+" Parts "),0<te&&(fe+=te+" Nodes "),0<re&&(fe+=re+" Groups "),0<oe&&(fe+=oe+" Links "),0<le&&(fe+=le+" Adornments "),1<a)for(a=this.Pa.iterator;a.next();)b=a.value,fe+=`
|
|
`+b.toString(),te=b.data,te!==null&&Pl(te)&&(fe+=" #"+Pl(te)),b instanceof ar?fe+=" "+da(te):b instanceof Ui&&(fe+=" "+da(b.fromNode)+" "+da(b.toNode));return x+" "+this.Pa.count+": "+fe},We.ic=function(a,x,b){if(x===void 0&&(x=null),b===void 0&&(b=null),this.Uh===!1)return null;var te=!1;this.diagram!==null&&this.diagram.viewportBounds.ca(a)&&(te=!0);for(var re=it.alloc(),oe=this.Pa.s,le=oe.length;le--;){var fe=oe[le];if((te!==!0||Kp(fe)!==!1)&&fe.isVisible()&&(re.assign(a),Co(re,fe.oe),fe=fe.ic(re,x,b),fe!==null&&(x!==null&&(fe=x(fe)),fe!==null&&(b===null||b(fe)))))return it.free(re),fe}return it.free(re),null},We.ji=function(a,x,b,te){if(x===void 0&&(x=null),b===void 0&&(b=null),te instanceof Zi||te instanceof Yi||(te=new Yi),this.Uh===!1)return te;var re=!1;this.diagram!==null&&this.diagram.viewportBounds.ca(a)&&(re=!0);for(var oe=it.alloc(),le=this.Pa.s,fe=le.length;fe--;){var ge=le[fe];if((re!==!0||Kp(ge)!==!1)&&ge.isVisible()){oe.assign(a),Co(oe,ge.oe);var ye=ge;ge.ji(oe,x,b,te)&&(x!==null&&(ye=x(ye)),ye===null||b!==null&&!b(ye)||te.add(ye))}}return it.free(oe),te},We.Cf=function(a,x,b,te,re){if(x===void 0&&(x=null),b===void 0&&(b=null),te===void 0&&(te=!1),re instanceof Zi||re instanceof Yi||(re=new Yi),this.Uh===!1)return re;var oe=!1;this.diagram!==null&&this.diagram.viewportBounds.Re(a)&&(oe=!0);for(var le=this.Pa.s,fe=le.length;fe--;){var ge=le[fe];if((oe!==!0||Kp(ge)!==!1)&&ge.isVisible()){var ye=ge;ge.Cf(a,x,b,te,re)&&(x!==null&&(ye=x(ye)),ye===null||b!==null&&!b(ye)||re.add(ye))}}return re},We.Nu=function(a,x,b,te,re,oe,le){if(this.Uh===!1)return re;for(var fe=this.Pa.s,ge=fe.length;ge--;){var ye=fe[ge];if((le!==!0||Kp(ye)!==!1)&&oe(ye)&&ye.isVisible()){var we=ye;ye.Cf(a,x,b,te,re)&&(x!==null&&(we=x(we)),we===null||b!==null&&!b(we)||re.add(we))}}return re},We.og=function(a,x,b,te,re,oe){if(b===void 0&&(b=null),te===void 0&&(te=null),re===void 0&&(re=!0),re!==!1&&re!==!0&&((re instanceof Zi||re instanceof Yi)&&(oe=re),re=!0),oe instanceof Zi||oe instanceof Yi||(oe=new Yi),this.Uh===!1)return oe;var le=!1;this.diagram!==null&&this.diagram.viewportBounds.ca(a)&&(le=!0);for(var fe=it.alloc(),ge=it.alloc(),ye=this.Pa.s,we=ye.length;we--;){var be=ye[we];if((le!==!0||Kp(be)!==!1)&&be.isVisible()){fe.assign(a),Co(fe,be.oe),ge.h(a.x+x,a.y),Co(ge,be.oe);var ke=be;be.og(fe,ge,b,te,re,oe)&&(b!==null&&(ke=b(ke)),ke===null||te!==null&&!te(ke)||oe.add(ke))}}return it.free(fe),it.free(ge),oe},We.Fd=function(a,x){if(this.visible){var b=this.Pa.s,te=b.length;if(te!==0){a=ys();for(var re=ys(),oe=0;oe<te;oe++){var le=b[oe];if(le.vw=oe,le instanceof Ui){if(le.fd===!1)continue}else if(le instanceof Ca&&le.adornedPart!==null)continue;var fe=le.actualBounds;le.isVisible()&&Mr(fe,x)?(le.Fd(!0),a.push(le)):(le.Fd(!1),le.adornments!==null&&0<le.adornments.count&&re.push(le))}for(x=0;x<a.length;x++)for(b=a[x],LC(b),b=b.adornments;b.next();)te=b.value,te.measure(1/0,1/0),te.arrange(),te.Fd(!0);for(x=0;x<re.length;x++)LC(re[x]);As(a),As(re)}}};function j0(a,x){var b=1;return a.pb!==1&&(b=x.globalAlpha,x.globalAlpha=b*a.pb),b}We.gc=function(a,x,b){if(this.visible&&this.pb!==0&&(b===void 0&&(b=!0),b||!this.isTemporary)){b=this.Pa.s;var te=b.length;if(te!==0){if(a.isTemporary)for(var re=0;re<te;re++)b[re].Gj();re=j0(this,a);var oe=this.Zq;oe.length=0;for(var le=x.scale,fe=Yt.alloc(),ge=0;ge<te;ge++)this.Oj(a,b[ge],x,oe,le,fe,!0);if(Yt.free(fe),a.isTemporary)for(x=0;x<te;x++)b[x].Gj();a.globalAlpha=re}}};function dC(a,x,b,te,re){if(a.visible&&a.pb!==0&&(re||!a.isTemporary)){re=a.Pa.s;var oe=re.length;if(oe!==0){var le=j0(a,x),fe=a.Zq;fe.length=0;for(var ge=b.scale,ye=Yt.alloc(),we=0;we<oe;we++){var be=re[we];te.contains(be)&&a.Oj(x,be,b,fe,ge,ye,!1)}Yt.free(ye),x.globalAlpha=le}}}We.Oj=function(a,x,b,te,re,oe,le){if(le&&!Kp(x))a.Hs(x);else{if(te!==null&&x instanceof Ui&&(x.isOrthogonal&&te.push(x),x.fd===!1)){a.Hs(x);return}for(le=!1,te=x.containingGroup;te!==null;)le?te.tb!==null&&oe.Ex(te.tb):te.tb!==null&&(le=!0,oe.assign(te.tb)),te=te.containingGroup;var fe=x.actualBounds;if(te=!1,le&&x.isVisible()){if(!oe.Yc(fe)){a.Hs(x);return}te=!oe.Re(fe)}te&&(a.save(),a instanceof Wh?a.bk=oe.copy():(a.beginPath(),a.rect(oe.x,oe.y,oe.width,oe.height),a.clip())),fe.width*re>b.Oq||fe.height*re>b.Oq?x.gc(a,b):(re=x.actualBounds,oe=x.naturalBounds,re.width===0||re.height===0||isNaN(re.x)||isNaN(re.y)||!x.isVisible()||(b=x.transform,x.areaBackground!==null&&(Fu(x,a,x.areaBackground,!0,!0,oe,re),a.fillRect(re.x,re.y,re.width,re.height)),x.areaBackground===null&&x.background===null&&(Fu(x,a,"rgba(0,0,0,0.3)",!0,!1,oe,re),a.fillRect(re.x,re.y,re.width,re.height)),x.background!==null&&(a.transform(b.m11,b.m12,b.m21,b.m22,b.dx,b.dy),Fu(x,a,x.background,!0,!1,oe,re),a.fillRect(0,0,oe.width/2,oe.height/2),b.ws()||(x=1/(b.m11*b.m22-b.m12*b.m21),a.transform(b.m22*x,-b.m12*x,-b.m21*x,b.m11*x,x*(b.m21*b.dy-b.m22*b.dx),x*(b.m12*b.dx-b.m11*b.dy)))))),te&&(a.restore(),a.Vc(!0))}},We.g=function(a,x,b,te,re){var oe=this.diagram;oe!==null&&oe.cb(Dl,a,this,x,b,te,re)},We.oi=function(a,x,b){var te=this.Pa;if(x.Ig=this,this===null&&mh(x),a>=te.count)a=te.count;else if(te.M(a)===x)return-1;return te.Gb(a,x),x.Vo(b),te=this.diagram,te!==null&&(b?te.N():te.oi(x)),G1(this,a,x),a},We.pc=function(a,x,b){if(!b&&x.layer!==this&&x.layer!==null)return x.layer.pc(a,x,b);var te=this.Pa;if(0>a||a>=te.length){if(a=te.indexOf(x),0>a)return-1}else if(te.M(a)!==x&&(a=te.indexOf(x),0>a))return-1;return x.Wo(b),te.mb(a),te=this.diagram,te!==null&&(b?te.N():te.pc(x)),x.Ig=null,mh(x),a};function G1(a,x,b){if(x=AS(a,x,b),b instanceof ts&&b!==null&&isNaN(b.zOrder)){if(b.memberParts.count!==0){for(var te=-1,re=a.Pa.s,oe=re.length,le=0;le<oe;le++){var fe=re[le];if(fe===b&&(x=le,0<=te)||0>te&&fe.containingGroup===b&&(te=le,0<=x))break}!(0>te)&&te<x&&(re=a.Pa,re.mb(x),re.Gb(te,b))}x=b.containingGroup,x!==null&&G1(a,-1,x)}b.svg!==null&&b.svg.remove()}function AS(a,x,b){var te=b.zOrder;if(isNaN(te))return x;a=a.Pa;var re=a.count;if(1>=re)return x;if(0>x&&(x=a.indexOf(b)),0>x)return-1;for(var oe=x-1,le=NaN;0<=oe&&(le=a.M(oe).zOrder,!!isNaN(le));)oe--;for(var fe=x+1,ge=NaN;fe<re&&(ge=a.M(fe).zOrder,!!isNaN(ge));)fe++;if(!isNaN(le)&&le>te)for(;;){if(oe===-1||le<=te){if(oe++,oe===x)break;return a.mb(x),a.Gb(oe,b),oe}for(le=NaN;0<=--oe&&(le=a.M(oe).zOrder,isNaN(le)););}else if(!isNaN(ge)&&ge<te)for(;;){if(fe===re||ge>=te){if(fe--,fe===x)break;return a.mb(x),a.Gb(fe,b),fe}for(ge=NaN;++fe<re&&(ge=a.M(fe).zOrder,isNaN(ge)););}return x}pn.Object.defineProperties(eh.prototype,{parts:{get:function(){return this.Pa.iterator}},partsBackwards:{get:function(){return this.Pa.iteratorBackwards}},diagram:{get:function(){return this.H}},name:{get:function(){return this.xa},set:function(a){var x=this.xa;if(x!==a){var b=this.diagram;if(b!==null)for(x===""&&hn("Cannot rename default Layer to: "+a),b=b.layers;b.next();)b.value.name===a&&hn("Layer.name is already present in this diagram: "+a);for(this.xa=a,this.g("name",x,a),a=this.Pa.iterator;a.next();)a.value.layerName=this.xa}}},opacity:{get:function(){return this.pb},set:function(a){var x=this.pb;x!==a&&((0>a||1<a)&&Xo(a,"0 <= value <= 1",eh,"opacity"),this.pb=a,this.g("opacity",x,a),a=this.diagram,a!==null&&a.N())}},isTemporary:{get:function(){return this.o},set:function(a){var x=this.o;x!==a&&((this.o=a)&&(this.isInDocumentBounds=!1),this.g("isTemporary",x,a))}},visible:{get:function(){return this.u},set:function(a){var x=this.u;if(x!==a){for(this.u=a,this.g("visible",x,a),x=this.Pa.iterator;x.next();)x.value.Zb(a);a=this.diagram,a!==null&&a.N()}}},pickable:{get:function(){return this.Uh},set:function(a){var x=this.Uh;x!==a&&(this.Uh=a,this.g("pickable",x,a))}},isInDocumentBounds:{get:function(){return this.j},set:function(a){this.j!==a&&(this.j=a,this.diagram!==null&&this.diagram.Ya())}},allowCopy:{get:function(){return this.Fi},set:function(a){var x=this.Fi;x!==a&&(this.Fi=a,this.g("allowCopy",x,a))}},allowDelete:{get:function(){return this.Gi},set:function(a){var x=this.Gi;x!==a&&(this.Gi=a,this.g("allowDelete",x,a))}},allowTextEdit:{get:function(){return this.Pi},set:function(a){var x=this.Pi;x!==a&&(this.Pi=a,this.g("allowTextEdit",x,a))}},allowGroup:{get:function(){return this.Hi},set:function(a){var x=this.Hi;x!==a&&(this.Hi=a,this.g("allowGroup",x,a))}},allowUngroup:{get:function(){return this.Qi},set:function(a){var x=this.Qi;x!==a&&(this.Qi=a,this.g("allowUngroup",x,a))}},allowLink:{get:function(){return this.Ii},set:function(a){var x=this.Ii;x!==a&&(this.Ii=a,this.g("allowLink",x,a))}},allowRelink:{get:function(){return this.Ki},set:function(a){var x=this.Ki;x!==a&&(this.Ki=a,this.g("allowRelink",x,a))}},allowMove:{get:function(){return this.Ji},set:function(a){var x=this.Ji;x!==a&&(this.Ji=a,this.g("allowMove",x,a))}},allowReshape:{get:function(){return this.Li},set:function(a){var x=this.Li;x!==a&&(this.Li=a,this.g("allowReshape",x,a))}},allowResize:{get:function(){return this.Mi},set:function(a){var x=this.Mi;x!==a&&(this.Mi=a,this.g("allowResize",x,a))}},allowRotate:{get:function(){return this.Ni},set:function(a){var x=this.Ni;x!==a&&(this.Ni=a,this.g("allowRotate",x,a))}},allowSelect:{get:function(){return this.Oi},set:function(a){var x=this.Oi;x!==a&&(this.Oi=a,this.g("allowSelect",x,a))}}}),eh.prototype.findObjectsNear=eh.prototype.og,eh.prototype.findObjectsIn=eh.prototype.Cf,eh.prototype.findObjectsAt=eh.prototype.ji,eh.prototype.findObjectAt=eh.prototype.ic,eh.className="Layer";function wn(a,x){if(PC||(gc(),PC=!0),$o(this),sm=this,this.vb=!0,this.Ka=null,this.ya=this.Aa=0,this.ta=null,zu){var b=this,te=function(){b.removeEventListener(ji.document,"DOMContentLoaded",te,!1),b.setRTL()};ji.document.body!==null?this.setRTL():b.addEventListener(ji.document,"DOMContentLoaded",te,!1)}this.ol=null,LS.add("Model",Wa);var re=this;return this.Hb=function(oe){var le=re.partManager;if(oe.model===le.diagram.model&&le.diagram.aa){le.diagram.aa=!1;try{var fe=oe.change;oe.modelChange===""&&fe===Dl&&le.updateDataBindings(oe.object,oe.propertyName)}finally{le.diagram.aa=!0}}},this.Oc=function(oe){re.partManager.doModelChanged(oe)},this.hu=this.ku=null,fC(this),this.model=e1(),this.Wg=!0,vC(this),this.layout=new vu,this.Wg=!1,this.ck=this.ek=this.fk=this.dk=this.ui=this.aA=this.$j=this.Ov=null,this.hk=function(){},this.preventDefault=null,this.rn=!1,this.Yf=new hp,a!==void 0&&(typeof a=="string"||ji.Element&&a instanceof Element?mC(this,a):x=a),this.vb=!1,x&&this.nm(x),this}var Hv,sm;function fC(a){a.Yd=new Xs,a.Yd.Xe(a),a.Db=17,a.Gw=!1,a.tn=!1,a.bu="default",a.Wa=new Zi,a.pj=new kn,a.nl="default",a.Tx(),a.Sx(),a.pb=1,a.pa=new it(NaN,NaN).freeze(),a.du=new it(NaN,NaN),a.Ca=1,a.Pp=1,a.zt=new it(NaN,NaN).freeze(),a.At=NaN,a.Ot=1e-4,a.Mt=100,a.Ab=new Br,a.zu=new it(NaN,NaN).freeze(),a.ut=new Yt(NaN,NaN,NaN,NaN).freeze(),a.rj=new yr(0,0,0,0).freeze(),a.sj=cg,a.nu=!1,a.Zt=null,a.fu=null,a.yh=sd,a.zk=Bl,a.Fg=sd,a.pq=Bl,a.yt=Is,a.Bt=Is,a.Fc=!0,a.pn=!1,a.De=new Yi,a.Eh=new kn,a.Xm=!0,a.vp=250,a.vk=-1,a.xp=new yr(16,16,16,16).freeze(),a.kg=!1,a.Jk=!1,a.fn=!0,a.bq=new Ju,a.bq.diagram=a,a.Qg=new Ju,a.Qg.diagram=a,a.cj=new Ju,a.cj.diagram=a,a.zg=null,a.pf=null,a.qu=!1,xC(a),a.ai=new Yi,a.Ht=!0,a.uu=jf,a.pw=!1,a.wu=px,a.it="auto",a.Op="auto",a.zh=null,a.Fh=null,a.Bh=null,a.Qh=null,a.Oh=null,a.Nh=null,a.Qt=null,a.Lh=null,a.xt=!1,a.Mh=null,a.Ph=null,a.$h=null,a.Ch=null,a.Rt=!1,a.Yt={},a.oj=[null,null],a.Wg=!1,a.Iw=!1,a.ou=!1,a.lt=!1,a.rw=!0,a.ld=!1,a.$i=!1,a.Tw=!0,a.Ce=-2,a.Og=new kn,a.Xn=new Zi,a.Gg=!1,a.Jd=!0,a.Us=!0,a.Fi=!0,a.Gi=!0,a.Vs=!1,a.Ws=!0,a.Pi=!0,a.Hi=!0,a.Qi=!0,a.Ys=!0,a.Ii=!0,a.Ki=!0,a.Ji=!0,a.Li=!0,a.Mi=!0,a.Ni=!0,a.Oi=!0,a.Zs=!0,a.at=!0,a.qw=!1,a.Vk=!1,a.mn=!0,a.nn=!0,a.Xs=!0,a.$s=!0,a.iu=16,a.mu=16,a.qr=!1,a.gu=!1,a.lu=0,a.ju=0,a.yb=new yr(5).freeze(),a.Hw=new Yi().freeze(),a.Nt=999999999,a.nw=new Yi().freeze(),a.Zi=!0,a.Ee=!0,a.vd=!0,a.Be=!1,a.gf=!1,a.xh=!0,a.hf=!1,a.sy=new Yi,a.ow=new Yi,a.Xh=null,a.aw=new Dt(8,8),a.bw=999,a.Bw=1,a.Jw=0,a.fc={scale:1,position:new it,bounds:new Yt,Py:new Dt,bA:new Dt,Oz:!1},a.fc.canvasSize=a.fc.Py,a.fc.newCanvasSize=a.fc.bA,a.fc.isScroll=!1,a.Rw=new Yt(NaN,NaN,NaN,NaN).freeze(),a.wo=new Dt(NaN,NaN).freeze(),a.Sp=new Yt(NaN,NaN,NaN,NaN).freeze(),a.It=!1,a.Lg=new kn;var x=new ar,b=new _l;b.bind(new tc("text","",da)),x.add(b),a.ny=x,a.Lg.add("",x),x=new ar,b=new _l,b.stroke="brown",b.bind(new tc("text","",da)),x.add(b),a.Lg.add("Comment",x),x=new ar,x.selectable=!1,x.avoidable=!1,b=new xs,b.figure="Ellipse",b.fill="black",b.stroke=null,b.desiredSize=new Dt(3,3).ja(),x.add(b),a.Lg.add("LinkLabel",x),a.Yi=new kn,x=new ts,x.selectionObjectName="GROUPPANEL",x.type=Pi.Vertical,b=new _l,b.font="bold 12pt sans-serif",b.bind(new tc("text","",da)),x.add(b),b=new Pi(Pi.Auto),b.name="GROUPPANEL";var te=new xs;te.figure="Rectangle",te.fill="rgba(128,128,128,0.2)",te.stroke="black",b.add(te),te=new bd,te.padding=new yr(5,5,5,5).ja(),b.add(te),x.add(b),a.ly=x,a.Yi.add("",x),a.Kh=new kn,x=new Ui,b=new xs,b.isPanelMain=!0,x.add(b),b=new xs,b.toArrow="Standard",b.fill="black",b.stroke=null,b.strokeWidth=0,x.add(b),a.my=x,a.Kh.add("",x),x=new Ui,b=new xs,b.isPanelMain=!0,b.stroke="brown",x.add(b),a.Kh.add("Comment",x),x=new Ca,x.type=Pi.Auto,b=new xs,b.fill=null,b.stroke="dodgerblue",b.strokeWidth=3,x.add(b),b=new bd,b.margin=new yr(1.5,1.5,1.5,1.5).ja(),x.add(b),a.St=x,a.wt=x,x=new Ca,x.type=Pi.Link,b=new xs,b.isPanelMain=!0,b.fill=null,b.stroke="dodgerblue",b.strokeWidth=3,x.add(b),a.Kt=x,a.fe=null,a.mq=!1,a.Ck=null,a.partManager=new Wa,a.toolManager=new sl,a.toolManager.initializeStandardTools(),a.defaultTool=a.toolManager,a.currentTool=a.defaultTool,a.nt=null,a.Wm=new me,a.Vt=null,a.Wt=null,a.Mr=!1,a.commandHandler=gC(),a.eq=null,a.fq=ko,a.Pw=!1,a.Mb=1,a.Yh=null,a.Oq=1,a.Sq=0,a.zw=[0,0,0,0,0],a.Tq=0,a.yq=1,a.tw=0,a.uw=new it,a.zy=500,a.wp=new it,a.wq=!1}wn.prototype.clear=function(){this.animationManager.Cc(),this.model.clear(),$y=null,Xv="",pC(this,!1),this.Xn.clear(),wu(),this.Og.clear(),this.Xh=null,this.Ya(),this.Va(),this.N()};function pC(a,x){a.animationManager.Cc(!0),a.Hw=new Yi().freeze(),a.nw=new Yi().freeze();var b=a.skipsUndoManager,te=a.cc!==null&&a.cc!==void 0;te&&(a.skipsUndoManager=!0);var re=null;a.fe!==null&&(re=a.fe.part,re!==null&&a.remove(re));var oe=[],le=a.Wa.length;if(x){for(x=0;x<le;x++)for(var fe=a.Wa.s[x].parts;fe.next();){var ge=fe.value;ge!==re&&ge.data===null&&oe.push(ge)}for(x=0;x<oe.length;x++)a.remove(oe[x])}for(x=0;x<le;x++)a.Wa.s[x].clear();return a.partManager.clear(),a.De.clear(),a.Eh.clear(),a.ai.clear(),a.Ck=null,a.Xn.clear(),wu(),a.Og.clear(),Gu=[],re!==null&&(a.add(re),a.partManager.parts.remove(re)),te&&(a.skipsUndoManager=b),oe}function gC(){return null}wn.prototype.reset=function(){this.clear(),this.vb=!0,fC(this),Xp(this),this.Wg=!0,vC(this),this.layout=new vu,this.Wg=!1,this.model=e1(),this.model.undoManager=new Jl,this.vb=this.rn=!1,this.N()},wn.prototype.setRTL=function(a){a=a===void 0?this.div:a,a===null&&(a=ji.document.body);var x=pa("div");x.dir="rtl",x.style.cssText="font-size: 14px; width: 1px; height: 1px; position: absolute; top: -1000px; overflow: scroll;",x.textContent="A",a.appendChild(x);var b="reverse";0<x.scrollLeft?b="default":(x.scrollLeft=1,x.scrollLeft===0&&(b="negative")),a.removeChild(x),this.bu=b},wn.prototype.setScrollWidth=function(a){a=a===void 0?this.div:a,a===null&&(a=ji.document.body);var x=0;if(zu){var b=SC;x=Hv,b===null&&(b=SC=pa("p"),b.style.width="100%",b.style.height="200px",b.style.boxSizing="content-box",x=Hv=pa("div"),x.style.position="absolute",x.style.visibility="hidden",x.style.width="200px",x.style.height="150px",x.style.boxSizing="content-box",x.appendChild(b)),x.style.overflow="hidden",a.appendChild(x);var te=b.offsetWidth;x.style.overflow="scroll",b=b.offsetWidth,te===b&&(b=x.clientWidth),a.removeChild(x),x=te-b,x!==0||iu||(x=11)}this.Db=x,this.Gw=!0},wn.prototype.qb=function(a){a.classType===wn&&(this.autoScale=a)},wn.prototype.toString=function(a){a===void 0&&(a=0);var x="";if(this.div&&this.div.id&&(x=this.div.id),x='Diagram "'+x+'"',0>=a)return x;for(var b=this.Wa.iterator;b.next();)x+=`
|
|
`+b.value.toString(a-1);return x};function mC(a,x){if(zu){if(x!=null||hn("Diagram setup requires an argument DIV."),a.Ka!==null&&hn("Diagram has already completed setup."),typeof x=="string"?a.Ka=ji.document.getElementById(x):x instanceof HTMLDivElement?a.Ka=x:hn("No DIV or DIV id supplied: "+x),a.Ka===null&&hn("Invalid DIV id; could not get element with id: "+x),a.Ka.H!==void 0&&hn("Invalid div id; div already has a Diagram associated with it."),!a.ol&&ji.ResizeObserver){var b=Oa(function(){a.$b()},250);a.ol=new ji.ResizeObserver(function(){b()}),a.ol.observe(a.Ka)}ji.getComputedStyle(a.Ka,null).position==="static"&&(a.Ka.style.position="relative"),x=5;var te="rgba(2"+x+"5, 255, 255, 0)";x--,a.Ka.style["-webkit-tap-highlight-color"]=te,a.Ka.innerHTML="",a.Ka.H=a,a.Ka.goDiagram=a,a.Ka.go=ji.go;var re=new xh(a);if(re.style!==void 0&&(re.style.position="absolute",re.style.top="0px",re.style.left="0px",ji.getComputedStyle(a.Ka,null).getPropertyValue("direction")==="rtl"&&(a.tn=!0),re.style.zIndex="2",re.style.userSelect="none",re.style.MozUserSelect="none",re.style.touchAction="none",re.style.letterSpacing="normal !important",re.style.wordSpacing="normal !important"),a.ta=re,a.ib=re.context,te=a.ib,a.Mb=a.computePixelRatio(),a.viewSize.w()||(a.Aa=a.Ka.clientWidth||1,a.ya=a.Ka.clientHeight||1),Q1(a,a.Aa,a.ya),a.Ka.insertBefore(re.Oa,a.Ka.firstChild),re=new xh(null),re.width=1,re.height=1,a.jw=re,a.oy=re.context,zu){re=pa("div");var oe=pa("div");re.style.position="absolute",re.style.overflow="auto",re.style.width=a.Aa+"px",re.style.height=a.ya+"px",re.style.zIndex="1",oe.style.position="absolute",oe.style.width="1px",oe.style.height="1px",a.Ka.appendChild(re),re.appendChild(oe),re.onscroll=yC,re.addEventListener("pointerdown",sx),re.H=a,re.uy=!0,re.vy=!0,a.ku=re,a.hu=oe}a.hk=Oa(function(){a.Yh=null,a.N()},300),a.Ov=Oa(function(){xS(a)},250),a.preventDefault=function(le){return le.preventDefault(),!1},a.$j=function(le){if(a.isEnabled){var fe=rf(a,le,!0);fe.bubbles=!0;var ge=0,ye=0;fe.delta=0,le.deltaX!==void 0?(le.deltaX!==0&&(ge=0<le.deltaX?1:-1),le.deltaY!==0&&(ye=0<le.deltaY?1:-1),fe.delta=Math.abs(le.deltaX)>Math.abs(le.deltaY)?-ge:-ye):le.wheelDeltaX!==void 0?(le.wheelDeltaX!==0&&(ge=0<le.wheelDeltaX?-1:1),le.wheelDeltaY!==0&&(ye=0<le.wheelDeltaY?-1:1),fe.delta=Math.abs(le.wheelDeltaX)>Math.abs(le.wheelDeltaY)?-ge:-ye):le.wheelDelta!==void 0&&le.wheelDelta!==0&&(fe.delta=0<le.wheelDelta?1:-1),a.doMouseWheel(),lg(fe,le)}},a.aA=function(le){a.isEnabled&&(a.Vk=!1,rf(a,le,!0),le=a.currentTool,le.cancelWaitAfter(),le.standardMouseOver())},a.ui=function(le){if(a.isEnabled){a.Vk=!0;var fe=a.Yt;fe[le.pointerId]===void 0&&(fe[le.pointerId]=le),fe=a.oj;var ge=!1;if(fe[0]===null||fe[0].pointerId!==le.pointerId&&fe[0].pointerType===le.pointerType)if(fe[1]!==null&&fe[1].pointerId===le.pointerId)fe[1]=le,ge=!0;else if(fe[0]===null)fe[0]=le;else if(fe[1]===null)fe[1]=le,ge=!0;else{le.preventDefault();return}else fe[0]=le;(fe=le.pointerType==="touch"||le.pointerType==="pen")&&(a.qu=!1,a.wq=!0);var ye=ge;ge=Vv(a,le,!0,!1,!0,ye),Yy(a,le,ge),ge.targetDiagram=lx(le,le.target),ge.targetObject=null,ye||ge.clone(a.bq),ye=a.uw,fe=fe?25:10,le.timeStamp-a.tw<a.zy&&!(Math.abs(ye.x-le.screenX)>fe||Math.abs(ye.y-le.screenY)>fe)?a.yq++:a.yq=1,ge.clickCount=a.yq,a.tw=le.timeStamp,a.uw.sg(le.screenX,le.screenY),a.doMouseDown(),le.button===1?le.preventDefault():lg(ge,le)}},a.dk=function(le){if(a.isEnabled){a.Vk=!0;var fe=a.oj;if(fe[0]===null||fe[0].pointerId!==le.pointerId&&fe[0].pointerType===le.pointerType){if(fe[1]!==null&&fe[1].pointerId===le.pointerId){fe[1]=le;return}if(fe[0]===null)fe[0]=le;else return}else fe[0]=le;if(fe[0].pointerId===le.pointerId){fe=Vv(a,le,!1,!1,!1,fe[1]!==null);var ge=ji.document.elementFromPoint(le.clientX,le.clientY)||null;ge!==null&&ge.shadowRoot!==void 0&&ge.shadowRoot!==null&&(ge=ge.shadowRoot.elementFromPoint(le.clientX,le.clientY));var ye=a,we=le;ge&&ge.H&&(we=le,ye=ge.H),fe.targetDiagram=ye,Yy(a,we,fe),fe.targetObject=null,a.doMouseMove(),lg(fe,le)}}},a.fk=function(le){if(a.isEnabled){a.Vk=!0;var fe=le.pointerType==="touch"||le.pointerType==="pen",ge=a.Yt;if(fe&&a.qu)delete ge[le.pointerId],le.preventDefault();else if(ge=a.oj,ge[0]===null||ge[0].pointerId!==le.pointerId&&ge[0].pointerType===le.pointerType)ge[1]!==null&&ge[1].pointerId===le.pointerId&&(ge[1]=null);else{ge[0]=null,ge=Vv(a,le,!1,!0,!0,!1);var ye=ji.document.elementFromPoint(le.clientX,le.clientY)||null;ye!==null&&ye.shadowRoot!==void 0&&ye.shadowRoot!==null&&(ye=ye.shadowRoot.elementFromPoint(le.clientX,le.clientY)),ye!==null&&ye.H instanceof wn&&ye.H!==a&&Yy(ye.H,le,ge),ye===null&&(ye=le.target),Yy(a,le,ge),ge.clickCount=a.yq,ge.targetDiagram=lx(le,ye),ge.targetObject=null,a.doMouseUp(),lg(ge,le),fe&&(a.wq=!1)}}},a.ek=function(le){if(a.isEnabled){a.Vk=!1;var fe=a.Yt;fe[le.pointerId]&&delete fe[le.pointerId],fe=a.oj,fe[0]!==null&&fe[0].pointerId===le.pointerId&&(fe[0]=null),fe[1]!==null&&fe[1].pointerId===le.pointerId&&(fe[1]=null),le.pointerType!=="touch"&&le.pointerType!=="pen"&&(le=a.currentTool,le.cancelWaitAfter(),le.standardMouseOver())}},a.ck=function(le){var fe=a.oj;fe[0]!==null&&fe[0].pointerId===le.pointerId?(fe[0]=null,a.wq=!1):fe[1]!==null&&fe[1].pointerId===le.pointerId&&(fe[1]=null)},a.Vp=te.Z["d"+of[1]+of[2]+"wI"+tA.slice(1,5)]["b"+s3.slice(1,x)](te.Z,Qv,x,x),te.Vc(!0),Wb(a),a.nl==="svg"&&(x=a.pj.get("svg"),a.Ka.appendChild(x.Oa),a.ib=x.context)}}wn.prototype.addEventListener=function(a,x,b,te){a.addEventListener(x,b,{capture:te,passive:!1})},wn.prototype.removeEventListener=function(a,x,b,te){a.removeEventListener(x,b,{capture:te})};function Wb(a){var x=a.ta.Oa;x instanceof HTMLCanvasElement||(x=a.div),a.addEventListener(x,"pointerdown",a.ui,!1),a.addEventListener(x,"pointermove",a.dk,!1),a.addEventListener(x,"pointerup",a.fk,!1),a.addEventListener(x,"pointerout",a.ek,!1),a.addEventListener(x,"pointercancel",a.ck,!1),a.addEventListener(x,"pointerenter",a.bz,!1),a.addEventListener(x,"pointerleave",a.cz,!1),a.addEventListener(x,"wheel",a.$j,!1),a.addEventListener(x,"keydown",a.Qz,!1),a.addEventListener(x,"keyup",a.Rz,!1),a.addEventListener(x,"blur",a.Ny,!1),a.addEventListener(x,"focus",a.Oy,!1),a.addEventListener(x,"selectstart",function(b){return b.preventDefault(),!1},!1),a.addEventListener(x,"contextmenu",function(b){return b.preventDefault(),!1},!1),a.addEventListener(ji,"resize",a.Ov,!1)}function jd(a){30<a.Sq&&(a.Yh=1)}function ox(a,x){a.Yh!==null&&(a.Yh=null,x&&a.hk(),Js&&Js.nx||(a.Sq=0,a.zw=[0,0,0,0,0],a.Tq=0))}wn.prototype.computePixelRatio=function(){return this.Yh!==null?this.Yh:ji.devicePixelRatio||1},wn.prototype.doMouseMove=function(){this.currentTool.doMouseMove()},wn.prototype.doMouseDown=function(){this.currentTool.doMouseDown()},wn.prototype.doMouseUp=function(){this.currentTool.doMouseUp()},wn.prototype.doMouseWheel=function(){this.currentTool.doMouseWheel()},wn.prototype.doKeyDown=function(){this.currentTool.doKeyDown()},wn.prototype.doKeyUp=function(){this.currentTool.doKeyUp()},wn.prototype.doFocus=function(){this.focus()},wn.prototype.focus=function(){if(this.ta)if(this.scrollsPageOnFocus)this.ta.focus();else{var a=ji.scrollX||ji.pageXOffset,x=ji.scrollY||ji.pageYOffset;this.ta.focus(),ji.scrollTo(a,x)}},wn.prototype.Oy=function(){this.H.R("GainedFocus")},wn.prototype.Ny=function(){this.H.R("LostFocus")};function xS(a){if(a.ta!==null){var x=a.Ka;if(x!==null&&x.clientWidth!==0&&x.clientHeight!==0){a.Gw||a.setScrollWidth();var b=a.gf?a.Db:0,te=a.Be?a.Db:0,re=a.Mb;a.Mb=a.computePixelRatio(),a.Mb!==re&&(a.pn=!0,a.$b()),(x.clientWidth!==a.Aa+b||x.clientHeight!==a.ya+te)&&(a.Ee=!0,a.Fc=!0,x=a.layout,x!==null&&x.isViewportSized&&a.autoScale===sd&&(a.Jk=!0,x.C()),a.ld||a.$b())}}}function vC(a){var x=new eh;x.name="Background",a.Al(x),x=new eh,x.name="",a.Al(x),x=new eh,x.name="Foreground",a.Al(x),x=new eh,x.name="Adornment",x.isTemporary=!0,x.isInDocumentBounds=!1,a.Al(x),x=new eh,x.name="Tool",x.isTemporary=!0,x.isInDocumentBounds=!0,a.Al(x),x=new eh,x.name="Grid",x.allowSelect=!1,x.pickable=!1,x.isTemporary=!0,x.isInDocumentBounds=!1,a.Ww(x,a.Qj("Background"))}function Qb(a){var x=new Pi(Pi.Grid);x.name="GRID";var b=new xs;return b.figure="LineH",b.stroke="lightgray",b.strokeWidth=.5,b.interval=1,x.add(b),b=new xs,b.figure="LineH",b.stroke="gray",b.strokeWidth=.5,b.interval=5,x.add(b),b=new xs,b.figure="LineH",b.stroke="gray",b.strokeWidth=1,b.interval=10,x.add(b),b=new xs,b.figure="LineV",b.stroke="lightgray",b.strokeWidth=.5,b.interval=1,x.add(b),b=new xs,b.figure="LineV",b.stroke="gray",b.strokeWidth=.5,b.interval=5,x.add(b),b=new xs,b.figure="LineV",b.stroke="gray",b.strokeWidth=1,b.interval=10,x.add(b),b=new mo,b.add(x),b.layerName="Grid",b.zOrder=0,b.isInDocumentBounds=!1,b.isAnimated=!1,b.pickable=!1,b.locationObjectName="GRID",a.add(b),a.partManager.parts.remove(b),x.visible=!1,x}function yC(){this.H.gu?this.H.gu=!1:this.H.isEnabled?this.H.kx(this):Ky(this.H)}function sx(a){this.H.isEnabled?(this.H.lu=a.target.scrollTop,this.H.ju=a.target.scrollLeft):Ky(this.H)}wn.prototype.kx=function(a){if(this.ta!==null){var x=this.ku,b=this.hu;this.qr=!0;var te=this.documentBounds,re=this.viewportBounds,oe=this.rj,le=te.x-oe.left,fe=te.y-oe.top,ge=te.width+oe.left+oe.right,ye=te.height+oe.top+oe.bottom,we=te.right+oe.right;oe=te.bottom+oe.bottom;var be=re.x;te=re.y;var ke=re.width,Ue=re.height,Ve=re.right,Ke=re.bottom;re=this.scale;var Pt=a.scrollLeft;if(this.tn)switch(this.bu){case"negative":Pt=Pt+a.scrollWidth-a.clientWidth;break;case"reverse":Pt=a.scrollWidth-Pt-a.clientWidth}var ft=Pt;ke<ge||Ue<ye?(Pt=it.allocAt(this.position.x,this.position.y),this.allowHorizontalScroll&&this.ju!==ft&&(Pt.x=ft/re+le,this.ju=ft),this.allowVerticalScroll&&this.lu!==a.scrollTop&&(Pt.y=a.scrollTop/re+fe,this.lu=a.scrollTop),this.position=Pt,it.free(Pt),this.Ee=this.qr=!1):(Pt=it.alloc(),a.uy&&this.allowHorizontalScroll&&(le<be&&(this.position=Pt.h(ft+le,this.position.y)),we>Ve&&(this.position=Pt.h(-(x.scrollWidth-this.Aa)+ft-this.Aa/re+we,this.position.y))),a.vy&&this.allowVerticalScroll&&(fe<te&&(this.position=Pt.h(this.position.x,a.scrollTop+fe)),oe>Ke&&(this.position=Pt.h(this.position.x,-(x.scrollHeight-this.ya)+a.scrollTop-this.ya/re+oe))),it.free(Pt),this.vd=!0,this.Ee=this.qr=!1,te=this.documentBounds,re=this.viewportBounds,we=te.right,Ve=re.right,oe=te.bottom,Ke=re.bottom,le=te.x,be=re.x,fe=te.y,te=re.y,ke>=ge&&le>=be&&we<=Ve&&(b.style.width="1px"),Ue>=ye&&fe>=te&&oe<=Ke&&(b.style.height="1px"))}},wn.prototype.computeBounds=function(a){return a===void 0&&(a=new Yt),Nh(this),oo(this,a)};function oo(a,x){if(a.fixedBounds.w())return x.assign(a.fixedBounds),x.Co(a.yb),x;for(var b=!0,te=a.Wa.s,re=te.length,oe=0;oe<re;oe++){var le=te[oe];if(le.visible&&le.isInDocumentBounds){le=le.Pa.s;for(var fe=le.length,ge=0;ge<fe;ge++){var ye=le[ge];ye.isInDocumentBounds&&ye.isVisible()&&(ye=ye.actualBounds,ye.w()&&(b?(b=!1,x.assign(ye)):x.ed(ye)))}}}return b&&x.h(0,0,0,0),x.Co(a.yb),x}wn.prototype.computePartsBounds=function(a,x){x===void 0&&(x=!1);var b=null;if(Fo(a))for(var te=0;te<a.length;te++){var re=a[te];!x&&re instanceof Ui||(re.Va(),b===null?b=re.actualBounds.copy():b.ed(re.actualBounds))}else for(a=a.iterator;a.next();)te=a.value,!x&&te instanceof Ui||(te.Va(),b===null?b=te.actualBounds.copy():b.ed(te.actualBounds));return b===null?new Yt(NaN,NaN,0,0):b};function Gp(a,x){if((x||a.hf)&&!a.vb&&a.ta!==null&&a.documentBounds.w()){if(a.vb=!0,x){var b=a.initialPosition;if(b.w()){a.vb=!1,a.position=b;return}b=it.alloc(),b.xi(a.documentBounds,a.initialDocumentSpot);var te=a.viewportBounds;te=Yt.allocAt(0,0,te.width,te.height);var re=it.alloc();re.xi(te,a.initialViewportSpot),re.h(b.x-re.x,b.y-re.y),a.position=re,Yt.free(te),it.free(re),it.free(b)}b=a.yh,x&&a.Fg!==sd&&(b=a.Fg);var oe=b!==sd?Qy(a,b):a.scale;b=a.pa.x,te=a.pa.y,re=a.Aa/oe;var le=a.ya/oe,fe=a.zk,ge=a.pq;x&&!fe.sb()&&(ge.sb()||ge.Xb())&&(fe=ge.Xb()?eo:ge),wS(a,a.documentBounds,re,le,fe,x),x=a.scale,a.scale=oe,a.vb=!1,oe=a.viewportBounds,_t.B(oe.x,b)&&_t.B(oe.y,te)&&_t.B(oe.width,re)&&_t.B(oe.height,le)||a.onViewportBoundsChanged(new Yt(b,te,re,le),oe,x,!1)}}function Qy(a,x){var b=a.Pp;if(a.ta===null)return b;a.Va();var te=a.documentBounds;if(!te.w())return b;var re=te.width;te=te.height;var oe=a.Aa+(a.gf?a.Db:0),le=a.ya+(a.Be?a.Db:0),fe=oe/re,ge=le/te;return x===Vf?(x=Math.min(ge,fe),x>b&&(x=b),x<a.minScale&&(x=a.minScale),x>a.maxScale&&(x=a.maxScale),x):x===Wv?(x=ge>fe?(le-a.Db)/te:(oe-a.Db)/re,x>b&&(x=b),x<a.minScale&&(x=a.minScale),x>a.maxScale&&(x=a.maxScale),x):a.scale}wn.prototype.zoomToFit=function(){var a=this.sj;this.sj=cg,this.scale=Qy(this,Vf),a!==cg&&(Gp(this,!1),wS(this,this.documentBounds,this.Aa/this.Ca,this.ya/this.Ca,this.zk,!1)),this.sj=a},We=wn.prototype,We.BA=function(a,x){x===void 0&&(x=Vf);var b=a.width,te=a.height;if(!(b===0||te===0||isNaN(b)&&isNaN(te))){var re=1;if(x===Vf||x===Wv)if(isNaN(b))re=this.viewportBounds.height*this.scale/te;else if(isNaN(te))re=this.viewportBounds.width*this.scale/b;else{re=this.Aa;var oe=this.ya;re=x===Wv?oe/te>re/b?(oe-(this.Be?this.Db:0))/te:(re-(this.gf?this.Db:0))/b:Math.min(oe/te,re/b)}this.scale=re,this.position=new it(a.x,a.y)}},We.Jy=function(a,x){this.Va();var b=this.documentBounds,te=this.viewportBounds;this.position=new it(b.x+(a.x*b.width+a.offsetX)-(x.x*te.width-x.offsetX),b.y+(a.y*b.height+a.offsetY)-(x.y*te.height-x.offsetY))},We.zz=function(a){if(a instanceof nn){this.eq=a;var x=it.alloc();this.fq=this.op(a.ga(Is,x)),it.free(x)}else this.eq=null,this.fq=ko};function wS(a,x,b,te,re,oe){var le=it.allocAt(a.pa.x,a.pa.y),fe=le.x,ge=le.y;if(a.eq!==null){var ye=it.alloc();ye=a.eq.ga(Is,ye),fe=ye.x-a.fq.x/a.scale,ge=ye.y-a.fq.y/a.scale,re=Cs,it.free(ye)}(oe||a.scrollMode===cg)&&(re.sb()&&(b>x.width&&(fe=x.x+(re.x*x.width+re.offsetX)-(re.x*b-re.offsetX)),te>x.height&&(ge=x.y+(re.y*x.height+re.offsetY)-(re.y*te-re.offsetY))),re=a.rj,oe=b-x.width,b<x.width+re.left+re.right?(fe=Math.min(fe+b/2,x.right+Math.max(oe,re.right)-b/2),fe=Math.max(fe,x.left-Math.max(oe,re.left)+b/2),fe-=b/2):fe>x.left?fe=x.left:fe<x.right-b&&(fe=x.right-b),b=te-x.height,te<x.height+re.top+re.bottom?(ge=Math.min(ge+te/2,x.bottom+Math.max(b,re.bottom)-te/2),ge=Math.max(ge,x.top-Math.max(b,re.top)+te/2),ge-=te/2):ge>x.top?ge=x.top:ge<x.bottom-te&&(ge=x.bottom-te)),le.x=isFinite(fe)?fe:-a.yb.left,le.y=isFinite(ge)?ge:-a.yb.top,a.positionComputation!==null&&(x=a.positionComputation(a,le),le.x=x.x,le.y=x.y),Ds(a.Yd,a.pa,le),a.pa.h(le.x,le.y),Xp(a),it.free(le)}We.Ol=function(a,x){if(x===void 0&&(x=!0),x){if(a=am(this,a,function(b){return b.part},function(b){return b.canSelect()}),a instanceof mo)return a}else if(a=am(this,a,function(b){return b.part}),a instanceof mo)return a;return null},We.ic=function(a,x,b){x===void 0&&(x=null),b===void 0&&(b=null),Nh(this);for(var te=this.Wa.iteratorBackwards;te.next();){var re=te.value;if(re.visible&&(re=re.ic(a,x,b),re!==null))return re}return null};function am(a,x,b,te){for(b===void 0&&(b=null),te===void 0&&(te=null),Nh(a),a=a.Wa.iteratorBackwards;a.next();){var re=a.value;if(re.visible&&!re.isTemporary&&(re=re.ic(x,b,te),re!==null))return re}return null}We.lz=function(a,x,b){return x===void 0&&(x=!0),ax(this,a,function(te){return te.part},x?function(te){return te instanceof mo&&te.canSelect()}:null,b)};function ax(a,x,b,te,re){for(b===void 0&&(b=null),te===void 0&&(te=null),re instanceof Zi||re instanceof Yi||(re=new Yi),Nh(a),a=a.Wa.iteratorBackwards;a.next();){var oe=a.value;oe.visible&&!oe.isTemporary&&oe.ji(x,b,te,re)}return re}We.ji=function(a,x,b,te){x===void 0&&(x=null),b===void 0&&(b=null),te instanceof Zi||te instanceof Yi||(te=new Yi),Nh(this);for(var re=this.Wa.iteratorBackwards;re.next();){var oe=re.value;oe.visible&&oe.ji(a,x,b,te)}return te},We.ux=function(a,x,b,te){return x===void 0&&(x=!1),b===void 0&&(b=!0),X1(this,a,function(re){return re instanceof mo&&(!b||re.canSelect())},x,te)},We.Cf=function(a,x,b,te,re){x===void 0&&(x=null),b===void 0&&(b=null),te===void 0&&(te=!1),re instanceof Zi||re instanceof Yi||(re=new Yi),Nh(this);for(var oe=this.Wa.iteratorBackwards;oe.next();){var le=oe.value;le.visible&&le.Cf(a,x,b,te,re)}return re},We.Nu=function(a,x,b,te,re,oe){var le=new Yi;Nh(this);for(var fe=this.Wa.iteratorBackwards;fe.next();){var ge=fe.value;ge.visible&&ge.Nu(a,x,b,te,le,re,oe)}return le};function X1(a,x,b,te,re){var oe=null;for(oe===void 0&&(oe=null),b===void 0&&(b=null),te===void 0&&(te=!1),re instanceof Zi||re instanceof Yi||(re=new Yi),Nh(a),a=a.Wa.iteratorBackwards;a.next();){var le=a.value;le.visible&&!le.isTemporary&&le.Cf(x,oe,b,te,re)}return re}We.mz=function(a,x,b,te,re){return b===void 0&&(b=!0),te===void 0&&(te=!0),Zy(this,a,x,function(oe){return oe instanceof mo&&(!te||oe.canSelect())},b,re)},We.og=function(a,x,b,te,re,oe){b===void 0&&(b=null),te===void 0&&(te=null),re===void 0&&(re=!0),re!==!1&&re!==!0&&((re instanceof Zi||re instanceof Yi)&&(oe=re),re=!0),oe instanceof Zi||oe instanceof Yi||(oe=new Yi),Nh(this);for(var le=this.Wa.iteratorBackwards;le.next();){var fe=le.value;fe.visible&&fe.og(a,x,b,te,re,oe)}return oe};function Zy(a,x,b,te,re,oe){var le=null;for(le===void 0&&(le=null),te===void 0&&(te=null),re===void 0&&(re=!0),re!==!1&&re!==!0&&((re instanceof Zi||re instanceof Yi)&&(oe=re),re=!0),oe instanceof Zi||oe instanceof Yi||(oe=new Yi),Nh(a),a=a.Wa.iteratorBackwards;a.next();){var fe=a.value;fe.visible&&!fe.isTemporary&&fe.og(x,b,le,te,re,oe)}return oe}wn.prototype.acceptEvent=function(a){return rf(this,a,a instanceof MouseEvent)};function rf(a,x,b){var te=a.Qg;return a.Qg=a.cj,a.cj=te,te.diagram=a,te.event=x,b?Yy(a,x,te):(te.viewPoint=a.Qg.viewPoint,te.documentPoint=a.Qg.documentPoint),a=0,x.ctrlKey&&(a+=1),x.altKey&&(a+=2),x.shiftKey&&(a+=4),x.metaKey&&(a+=8),te.modifiers=a,te.button=x.button,x.buttons!==void 0&&(te.buttons=x.buttons),iu&&x.button===0&&x.ctrlKey&&(te.button=2),te.down=!1,te.up=!1,te.clickCount=1,te.delta=0,te.handled=!1,te.bubbles=!1,te.timestamp=x.timeStamp,te.isMultiTouch=!1,te.targetDiagram=lx(x,x.target),te.targetObject=null,te}function lx(a,x){return x===null?null:(x=x.H)?x:((x=a.path)||typeof a.composedPath!="function"||(x=a.composedPath()),x&&x[0]&&x[0].H?x[0].H:null)}function Vv(a,x,b,te,re,oe){var le=a.Qg;return a.Qg=a.cj,a.cj=le,le.diagram=a,le.clickCount=1,a=le.delta=0,x.ctrlKey&&(a+=1),x.altKey&&(a+=2),x.shiftKey&&(a+=4),x.metaKey&&(a+=8),le.modifiers=a,le.event=x,le.timestamp=x.timeStamp,le.button=x.button,le.buttons=x.buttons,iu&&x.button===0&&x.ctrlKey&&(le.button=2),le.down=b,le.up=te,le.handled=!1,le.bubbles=re,le.isMultiTouch=oe,le}function lg(a,x){return a.bubbles?!0:(x.stopPropagation!==void 0&&x.stopPropagation(),x.cancelable!==!1&&x.preventDefault(),x.cancelBubble=!0,!1)}wn.prototype.Qz=function(a){var x=this.H;if(!this.H.isEnabled)return!1;var b=rf(x,a,!1);switch(b.key=String.fromCharCode(a.which),b.down=!0,a.which){case 8:b.key="Backspace";break;case 33:b.key="PageUp";break;case 34:b.key="PageDown";break;case 35:b.key="End";break;case 36:b.key="Home";break;case 37:b.key="Left";break;case 38:b.key="Up";break;case 39:b.key="Right";break;case 40:b.key="Down";break;case 45:b.key="Insert";break;case 46:b.key="Del";break;case 48:b.key="0";break;case 187:case 61:case 107:b.key="Add";break;case 189:case 173:case 109:b.key="Subtract";break;case 27:b.key="Esc"}return x.doKeyDown(),lg(b,a)},wn.prototype.Rz=function(a){var x=this.H;if(!x.isEnabled)return!1;var b=rf(x,a,!1);switch(b.key=String.fromCharCode(a.which),b.up=!0,a.which){case 8:b.key="Backspace";break;case 33:b.key="PageUp";break;case 34:b.key="PageDown";break;case 35:b.key="End";break;case 36:b.key="Home";break;case 37:b.key="Left";break;case 38:b.key="Up";break;case 39:b.key="Right";break;case 40:b.key="Down";break;case 45:b.key="Insert";break;case 46:b.key="Del"}return x.doKeyUp(),lg(b,a)},wn.prototype.bz=function(a){var x=this.H;if(!x.isEnabled)return!1;var b=rf(x,a,!0);return x.mouseEnter!==null&&x.mouseEnter(b),x.currentTool.standardMouseOver(),lg(b,a)},wn.prototype.cz=function(a){var x=this.H;if(!x.isEnabled)return!1;var b=rf(x,a,!0);return x.mouseLeave!==null&&x.mouseLeave(b),lg(b,a)},wn.prototype.getMouse=function(a){var x=this.ta;if(x===null)return new it(0,0);var b=x.getBoundingClientRect();return x=a.clientX-this.Aa/b.width*b.left,a=a.clientY-this.ya/b.height*b.top,this.Ab!==null?Co(new it(x,a),this.Ab):new it(x,a)};function Yy(a,x,b){var te=a.ta,re=a.Aa,oe=a.ya,le=0,fe=0;te!==null&&(te=te.getBoundingClientRect(),le=x.clientX-re/te.width*te.left,fe=x.clientY-oe/te.height*te.top),b.viewPoint.h(le,fe),a.Ab!==null?(x=it.allocAt(le,fe),a.Ab.Cd(x),b.documentPoint.assign(x),it.free(x)):b.documentPoint.h(le,fe)}function SS(a,x,b){if(a.oj[0]!==null){x=a.oj[x];var te=a.ta;te!==null&&(te=te.getBoundingClientRect(),b.h(x.clientX-a.Aa/te.width*te.left,x.clientY-a.ya/te.height*te.top))}}wn.prototype.Ya=function(){this.Zi||(this.Zi=!0,this.$b(!1))};function Dg(a){a.ld||Nh(a),a.Va()}wn.prototype.redraw=function(){this.vb||this.ld||(this.N(),this.bd())},We=wn.prototype,We.Pz=function(){return this.kg},We.Xy=function(a){a===void 0&&(a=null);var x=this.animationManager,b=x.isEnabled;x.Cc(),x.isEnabled=!1,cp(this),this.hf=!1,this.du=new it(NaN,NaN),x.isEnabled=b,this.ld=!0;var te=this;a!==null&&aa(function(){te.ld=!1,ua(x,"Model"),a(te)},1)},We.$b=function(a){if(a===void 0&&(a=!1),this.kg!==!0&&!(this.vb||a===!1&&this.ld)){this.kg=!0;var x=this;ji.requestAnimationFrame(function(){x.kg&&x.bd()})}},We.bd=function(){(!this.fn||this.kg)&&(this.fn&&(this.fn=!1),cp(this))};function ac(a,x,b){!a.Ee||a.vb||a.animationManager.defaultAnimation.isAnimating||Ky(a)||(x&&Nh(a),b&&Gp(a,!1))}function cp(a,x){if(!a.ld&&(a.kg=!1,a.Ka!==null||a.wo.w())){a.ld=!0;var b=a.animationManager,te=a.Xn;if(!b.isAnimating&&te.length!==0){for(var re=te.s,oe=re.length,le=0;le<oe;le++){var fe=re[le];Mc(fe,!1),fe.v()}te.clear()}te=a.ow,0<te.count&&(te.each(function(ge){ge.Nv()}),te.clear()),re=te=!1,b.defaultAnimation.isAnimating&&(re=!0,te=a.skipsUndoManager,a.skipsUndoManager=!0),b.zb||xS(a),ac(a,!1,!0),a.fe!==null&&(a.fe.visible&&!a.mq&&(Ng(a),a.mq=!0),!a.fe.visible&&a.mq&&(a.mq=!1)),Nh(a),oe=!1,(!a.hf||a.xh)&&(a.hf?TS(a,!a.Jk):(a.Ea("Initial Layout"),b.isEnabled===!1&&b.Cc(),TS(a,!1)),oe=!0),a.Jk=!1,Nh(a),a.ou||Dg(a),ac(a,!0,!1),le=!1,oe?(b=Yt.alloc(),b.assign(a.viewportBounds),a.hf||(le=a.hf=!0,a.skipsUndoManager||(a.undoManager.isPendingClear=!0),a.undoManager.isPendingUnmodified=!0,W1(a)),a.R("LayoutCompleted"),ac(a,!0,!1),Yt.free(b)):b.Ok&&b.Qw&&(a.Fg!==sd?a.scale=Qy(a,a.Fg):a.yh!==sd?a.scale=Qy(a,a.yh):(b=a.initialScale,isFinite(b)&&0<b&&(a.scale=b)),Gp(a,!0)),oe&&le&&a.eb("Initial Layout"),Nh(a),x||a.gc(a.ib),re&&(a.skipsUndoManager=te),a.ld=!1}}function W1(a){if(a.Fg!==sd)a.scale=Qy(a,a.Fg);else if(a.yh!==sd)a.scale=Qy(a,a.yh);else{var x=a.initialScale;isFinite(x)&&0<x&&(a.scale=x)}Gp(a,!0),x=a.Wa.s,a.Fd(x,x.length,a,a.viewportBounds),a.R("InitialLayoutCompleted"),a.du.assign(a.pa),Ng(a)}function Nh(a){if(a.De.count!==0&&(a.ld||!a.animationManager.isTicking)){for(var x=0;23>x;x++){var b=a.De.iterator;if(b===null||a.De.count===0)break;a.De=new Yi,a.Nv(b,a.De)}a.nodes.each(function(te){te instanceof ts&&te.U&65536&&(te.U=te.U^65536)})}}We.Nv=function(a,x){for(a.reset();a.next();){var b=a.value;!b.Zc()||b instanceof ts||(b.si()?(b.measure(1/0,1/0),b.arrange()):x.add(b))}for(a.reset();a.next();)b=a.value,b instanceof ts&&b.isVisible()&&ux(this,b);for(a.reset();a.next();)b=a.value,b instanceof Ui&&b.isVisible()&&(b.si()?(b.measure(1/0,1/0),b.arrange()):x.add(b));for(a.reset();a.next();)b=a.value,b instanceof Ca&&b.isVisible()&&(b.si()?(b.measure(1/0,1/0),b.arrange()):x.add(b))};function ux(a,x){for(var b=ys(),te=ys(),re=x.memberParts;re.next();){var oe=re.value;oe.isVisible()&&(oe instanceof ts?(Mf(oe)||Xh(oe)||nh(oe))&&ux(a,oe):oe instanceof Ui?oe.fromNode===x||oe.toNode===x?te.push(oe):b.push(oe):(oe.measure(1/0,1/0),oe.arrange()))}for(a=b.length,re=0;re<a;re++)oe=b[re],oe.measure(1/0,1/0),oe.arrange();for(As(b),x.measure(1/0,1/0),x.arrange(),a=te.length,x=0;x<a;x++)b=te[x],b.measure(1/0,1/0),b.arrange();As(te)}We.Fd=function(a,x,b,te){if(this.vd||this.animationManager.isAnimating)for(var re=0;re<x;re++)a[re].Fd(b,te)},We.gc=function(a){if(this.Ka!==null){if(this.ta===null&&hn("No canvas specified"),this.nl==="svg"){if(this.Ka!==null){var x=this.animationManager;if(!x.zb&&(!x.isAnimating||x.isTicking)){hx(this);var b=this.Aa,te=this.ya;if(a.Gv.resize(b,te,b,te),b=this.Wa.s,te=b.length,this.Fd(b,te,this,this.viewportBounds),this.Fc||x.isAnimating){x=this.pa;var re=this.Ca,oe=Math.round(x.x*re)/re,le=Math.round(x.y*re)/re,fe=this.Ab;for(fe.reset(),re!==1&&fe.scale(re),x.x===0&&x.y===0||fe.translate(-oe,-le),a.ti=null,$T(a,fe.m11,fe.m12,fe.m21,fe.m22,fe.dx,fe.dy),this.pb!==1&&(a.globalAlpha=this.pb),G0(this,a),x=this.Mb,this.ta.context.setTransform(x,0,0,x,0,0),this.ta.context.clearRect(0,0,this.Aa,this.ya),x=0;x<te;x++)b[x].gc(a,this);a=!1,this.Yf?wc(this.Yf,this)&&(a=this.Vp()):a=!0,a&&(Br.prototype.Cd=Br.prototype.Eu),this.Fc=this.vd=!1}}}}else e:if(oe=this.animationManager,!oe.zb&&(!oe.isAnimating||oe.isTicking)&&(b=new Date,hx(this),this.Ka.style.opacity!=="0")){if(te=a!==this.ib,x=this.Wa.s,re=x.length,this.Fd(x,re,this,this.viewportBounds),te)a.Vc(!0),this.vd=!0;else if(!this.Fc&&!oe.isAnimating)break e;oe=this.Ab,oe.reset(),le=this.Mb,fe=this.pa;var ge=this.Ca,ye=Math.round(fe.x*ge)/ge,we=Math.round(fe.y*ge)/ge;for(ge!==1&&oe.scale(ge),fe.x===0&&fe.y===0||oe.translate(-ye,-we),a.setTransform(le,0,0,le,0,0),a.clearRect(0,0,this.Aa,this.ya),this.pb!==1&&(a.globalAlpha=this.pb),G0(this,a),fe=0;fe<re;fe++)a.setTransform(le,0,0,le,0,0),a.transform(oe.m11,oe.m12,oe.m21,oe.m22,oe.dx,oe.dy),a.yc(),x[fe].gc(a,this);if(x=!1,this.Yf?wc(this.Yf,this)&&(x=this.Vp()):x=!0,x&&(Br.prototype.Cd=Br.prototype.Eu),te?(this.ib.Vc(!0),this.vd=!0):this.Fc=this.vd=!1,x=+new Date-+b,te=Js&&Js.nx,b=this.zw,te||this.Yh===null){for(b[this.Tq]=x,this.Tq=(this.Tq+1)%b.length,re=x=0;re<b.length;re++)x+=b[re];this.Sq=x/b.length}if(this.pb!==1&&(a.globalAlpha=1),te)for(a.setTransform(1,0,0,1,0,0),te=0;te<b.length;te++)a.fillText(b[te].toString(),20,150+ +(20*te))}}};function cx(a,x,b,te,re,oe,le,fe,ge,ye){if(a.Ka!==null){a.ta===null&&hn("No canvas specified"),le===void 0&&(le=null),fe===void 0&&(fe=null),ge===void 0&&(ge=!1),ye===void 0&&(ye=!1),hx(a),a.ib.Vc(!0),a.vd=!0,a.$i=!0;var we=a.Ca;a.Ca=re;var be=a.Wa.s,ke=be.length;try{var Ue=new Yt(oe.x,oe.y,te.width/re,te.height/re),Ve=Ue.copy();Ve.Co(b),Ng(a,Ve),Nh(a),a.Fd(be,ke,a,Ue),x.setTransform(1,0,0,1,0,0),x.clearRect(0,0,te.width,te.height),fe!==null&&fe!==""&&(x.fillStyle=fe,x.ox(0,0,te.width,te.height));var Ke=a.Mb;x.scale(Ke,Ke);var Pt=Br.alloc();Pt.reset(),Pt.translate(b.left,b.top),Pt.scale(re),oe.x===0&&oe.y===0||Pt.translate(-oe.x,-oe.y),x.setTransform(Pt.m11,Pt.m12,Pt.m21,Pt.m22,Pt.dx,Pt.dy),x.yc(),x instanceof Wh&&$T(x,Pt.m11,Pt.m12,Pt.m21,Pt.m22,Pt.dx,Pt.dy),Br.free(Pt),G0(a,x),x.globalAlpha=a.pb;var ft=a.Qj("Grid");if(le){var Nt=new Yi,Lt=le.iterator;for(Lt.reset();Lt.next();){var Ut=Lt.value;Ut instanceof mo&&(ye||Ut.layer!==ft)&&(Ut.Gj(),Nt.add(Ut))}for(ye=0;ye<ke;ye++)dC(be[ye],x,a,Nt,ge);Nt.each(function(xn){return xn.Gj()})}else for(Nt=0;Nt<ke;Nt++){var tn=be[Nt];tn===ft?ye&&tn.gc(x,a,!0):tn.gc(x,a,ge)}a.$i=!1,a.Yf&&wc(a.Yf,a)&&a.Vp()}finally{a.Ca=we,a.ib.Vc(!0),a.vd=!0,a.Fd(be,ke,a,a.viewportBounds),Ng(a),a.ib instanceof Wh&&(a.ib.Nj.PA(),a.redraw())}}}We.Gf=function(a){return this.Rg[a]},We.Xx=function(a,x){a==="minDrawingLength"&&(this.Oq=x),this.Rg[a]=x,this.redraw()},We.Tx=function(){this.Rg=new Fa,this.Rg.drawShadows=!0,this.Rg.textGreeking=!0,this.Rg.viewportOptimizations=!(iu||fc),this.Rg.temporaryPixelRatio=!0,this.Rg.pictureRatioOptimization=!0,this.Oq=this.Rg.minDrawingLength=1};function G0(a,x){a=a.Rg,a!==null&&(a.imageSmoothingEnabled!==void 0&&x.Wx(!!a.imageSmoothingEnabled),a=a.defaultFont,a!=null&&(x.font=a))}We.Ql=function(a){return this.on[a]},We.sA=function(a,x){this.on[a]=x},We.Sx=function(){this.on=new Fa,this.on.extraTouchArea=10,this.on.extraTouchThreshold=10,this.on.hasGestureZoom=!0},We.set=function(a){return Object.assign(this,a),this},We.Du=function(a){return this.nm(a)},We.nm=function(a){return X0(this,a),this};function X0(a,x){var b=a instanceof Pi,te=a instanceof wn,re;for(re in x){re===""&&hn("Setting properties requires non-empty property names");var oe=a,le=re;if(b||te){var fe=re.indexOf(".");if(0<fe){var ge=re.substring(0,fe);b?oe=a.fb(ge):(oe=a[ge],oe==null&&(oe=a.toolManager[ge])),Ji(oe)?le=re.substr(fe+1):hn("Unable to find object named: "+ge+" in "+a.toString()+" when trying to set property: "+re)}}if(le[0]!=="_"&&!us(oe,le))if(te&&le==="ModelChanged"){a.Yw(x[le]);continue}else if(te&&le==="Changed"){a.Pe(x[le]);continue}else if(te&&us(a.toolManager,le))oe=a.toolManager;else if(te&&DS(a,le)){a.Bj(le,x[le]);continue}else if(a instanceof Gr&&le==="Changed"){a.Pe(x[le]);continue}else hn('Trying to set undefined property "'+le+'" on object: '+oe.toString());oe[le]=x[re],le[0]==="_"&&oe instanceof nn&&oe.Vw(le)}}We.bx=function(){if(this.Eh.count!==0&&!(1<this.undoManager.transactionLevel)){for(;0<this.Eh.count;){var a=this.Eh;for(this.Eh=new kn,a=a.iterator;a.next();){var x=a.key;x.Xo(a.value),x.qc()}}this.N()}},We.N=function(a){if(a===void 0)this.Fc=!0,this.$b();else{var x=this.viewportBounds;a.w()&&x.Yc(a)&&(this.Fc=!0,this.$b())}this.R("InvalidateDraw")},wn.prototype.invalidateViewport=function(a,x){if(this.Fc!==!0)if(this.Fc=!0,this.nl==="svg")this.bd();else{var b=this.Gf("temporaryPixelRatio")===!0;if(this.Gf("viewportOptimizations")===!0&&this.scrollMode!==ad&&this.rj.hi(0,0,0,0)&&x.width===a.width&&x.height===a.height){var te=this.scale,re=Math.max(a.y,x.y),oe=Math.min(a.y+a.height,x.y+x.height);if(0<Math.max(0,Math.min(a.x+a.width,x.x+x.width)-Math.max(a.x,x.x))*te&&0<Math.max(0,oe-re)*te){if(!(this.ld||(this.kg=!1,this.Ka===null||(this.ld=!0,this.documentBounds.w()||(te=Yt.alloc(),MS(this,this.computeBounds(te)),Yt.free(te)),te=this.ta,te===null||te instanceof qu)))){var le=this.Mb;re=this.Aa*le;var fe=this.ya*le,ge=this.scale*le;oe=Math.round(Math.round(x.x*ge)-Math.round(a.x*ge)),x=Math.round(Math.round(x.y*ge)-Math.round(a.y*ge)),ge=this.jw,a=this.oy,ge.width!==re&&(ge.width=re),ge.height!==fe&&(ge.height=fe),a.clearRect(0,0,re,fe),ge=190*le;var ye=70*le,we=Math.max(oe,0),be=Math.max(x,0),ke=Math.floor(re-we),Ue=Math.floor(fe-be);a.drawImage(te.Oa,we,be,ke,Ue,0,0,ke,Ue),wc(this.Yf,this)&&a.clearRect(0,0,ge,ye),te=ys(),a=ys(),Ue=Math.abs(oe),ke=Math.abs(x);var Ve=we===0?0:re-Ue;we=it.allocAt(Ve,0),Ue=it.allocAt(Ue+Ve,fe),a.push(new Yt(Math.min(we.x,Ue.x),Math.min(we.y,Ue.y),Math.abs(we.x-Ue.x),Math.abs(we.y-Ue.y)));var Ke=this.Ab;if(Ke.reset(),Ke.scale(le,le),this.Ca!==1&&Ke.scale(this.Ca),le=this.pa,(le.x!==0||le.y!==0)&&isFinite(le.x)&&isFinite(le.y)&&Ke.translate(-le.x,-le.y),Co(we,Ke),Co(Ue,Ke),te.push(new Yt(Math.min(we.x,Ue.x),Math.min(we.y,Ue.y),Math.abs(we.x-Ue.x),Math.abs(we.y-Ue.y))),Ve=be===0?0:fe-ke,we.h(0,Ve),Ue.h(re,ke+Ve),a.push(new Yt(Math.min(we.x,Ue.x),Math.min(we.y,Ue.y),Math.abs(we.x-Ue.x),Math.abs(we.y-Ue.y))),Co(we,Ke),Co(Ue,Ke),te.push(new Yt(Math.min(we.x,Ue.x),Math.min(we.y,Ue.y),Math.abs(we.x-Ue.x),Math.abs(we.y-Ue.y))),wc(this.Yf,this)&&(re=0<oe?0:-oe,fe=0<x?0:-x,we.h(re,fe),Ue.h(ge+re,ye+fe),a.push(new Yt(Math.min(we.x,Ue.x),Math.min(we.y,Ue.y),Math.abs(we.x-Ue.x),Math.abs(we.y-Ue.y))),Co(we,Ke),Co(Ue,Ke),te.push(new Yt(Math.min(we.x,Ue.x),Math.min(we.y,Ue.y),Math.abs(we.x-Ue.x),Math.abs(we.y-Ue.y)))),it.free(we),it.free(Ue),ac(this,!1,!0),this.Ka===null&&hn("No div specified"),this.ta===null&&hn("No canvas specified"),!this.animationManager.zb&&(re=this.ib,this.Fc)){for(hx(this),fe=this.Mb,re.setTransform(1,0,0,1,0,0),re.clearRect(0,0,this.Aa*fe,this.ya*fe),re.drawImage(this.jw.Oa,0<oe?0:Math.round(-oe),0<x?0:Math.round(-x)),oe=this.pa,le=this.Ca,ge=Math.round(oe.x*le)/le,ye=Math.round(oe.y*le)/le,x=this.Ab,x.reset(),le!==1&&x.scale(le),oe.x===0&&oe.y===0||x.translate(-ge,-ye),re.save(),re.beginPath(),oe=a.length,le=0;le<oe;le++)ge=a[le],ge.width!==0&&ge.height!==0&&re.rect(Math.floor(ge.x),Math.floor(ge.y),Math.ceil(ge.width),Math.ceil(ge.height));for(re.clip(),re.setTransform(fe,0,0,fe,0,0),re.transform(x.m11,x.m12,x.m21,x.m22,x.dx,x.dy),re.yc(),x=this.Wa.s,oe=x.length,this.Fd(x,oe,this,this.viewportBounds),G0(this,re),re.globalAlpha=this.pb,fe=0;fe<oe;fe++)if(le=x[fe],ge=te,le.visible&&le.pb!==0){ye=j0(le,re),be=le.Zq,be.length=0,we=this.scale,ke=Yt.alloc(),Ue=le.Pa.s,Ke=Ue.length,Ve=ge.length;for(var Pt=0;Pt<Ke;Pt++){var ft=Ue[Pt],Nt=hm(ft,ft.actualBounds);e:{for(var Lt=2/we,Ut=4/we,tn=0;tn<Ve;tn++){var xn=ge[tn];if(xn.width!==0&&xn.height!==0&&Nt.Vu(xn.x-Lt,xn.y-Lt,xn.width+Ut,xn.height+Ut)){Nt=!0;break e}}Nt=!1}Nt&&le.Oj(re,ft,this,be,we,ke,!0)}Yt.free(ke),re.globalAlpha=ye}re.restore(),re.Vc(!0),this.Yf&&wc(this.Yf,this)&&this.Vp(),this.Fc=this.vd=!1,this.hk()}As(te),As(a),this.ld=!1}}else this.bd();b&&(jd(this),this.bd(),ox(this,!0))}else b?(jd(this),this.bd(),ox(this,!0)):this.bd()}};function hx(a){a.pn!==!1&&(a.pn=!1,Q1(a,a.Aa,a.ya))}function Q1(a,x,b){Xp(a);var te=a.Mb;a.ta.resize(x*te,b*te,x,b)&&(a.Fc=!0,a.ib.Vc(!0))}function Ky(a){var x=a.ta;if(x===null||a.wo.w())return!0;var b=a.Aa,te=a.ya,re=a.Ka,oe=!1,le=a.gf?a.Db:0,fe=a.Be?a.Db:0,ge=re.clientWidth||b+le,ye=re.clientHeight||te+fe,we=a.viewportBounds;re=we.x;var be=we.y,ke=we.width,Ue=we.height;if((ge!==b+le||ye!==te+fe)&&(a.gf=!1,a.Be=!1,fe=le=0,a.Aa=ge,a.ya=ye,oe=a.pn=!0,Xp(a)),!a.hf||!a.viewportBounds.w())return!0;var Ve=a.ku,Ke=a.hu;if(a.Ee=!1,!(oe||a.gf||a.Be||a.mn||a.nn))return!0;var Pt=a.documentBounds,ft=0,Nt=0,Lt=0,Ut=0,tn=we.width,xn=we.height,nr=a.rj;a.contentAlignment.sb()?(Pt.width>tn&&(ft=nr.left,Nt=nr.right),Pt.height>xn&&(Lt=nr.top,Ut=nr.bottom)):(ft=nr.left,Nt=nr.right,Lt=nr.top,Ut=nr.bottom);var Ir=Pt.width+ft+Nt,br=Pt.height+Lt+Ut;nr=a.scale;var Di=Ir>ge/nr,ii=br>ye/nr;if(!(oe||a.gf||a.Be||Di||ii))return!0;ft=Pt.x-ft,ge=we.x,Nt=Pt.right+Nt,ye=we.right+le,Lt=Pt.y-Lt;var os=we.y;Pt=Pt.bottom+Ut,we=we.bottom+fe;var Oo="1px";if(Ut="1px",a.scrollMode===cg&&(Di||ii)&&(Di&&a.hasHorizontalScrollbar&&a.allowHorizontalScroll&&(Di=1,ft+1<ge&&(Di=Math.max((ge-ft)*nr+a.Aa,Di)),Nt>ye+1&&(Di=Math.max((Nt-ye)*nr+a.Aa,Di)),tn+le+1<Ir&&(Di=Math.max((Ir-tn)*nr+a.Aa,Di)),Oo=Di.toString()+"px"),ii&&a.hasVerticalScrollbar&&a.allowVerticalScroll&&(Di=1,Lt+1<os&&(Di=Math.max((os-Lt)*nr+a.ya,Di)),Pt>we+1&&(Di=Math.max((Pt-we)*nr+a.ya,Di)),xn+fe+1<br&&(Di=Math.max((br-xn)*nr+a.ya,Di)),Ut=Di.toString()+"px")),Di=Oo!=="1px",ii=Ut!=="1px",Di&&ii||!Di&&!ii||(ii&&(ye-=a.Db),Di&&(we-=a.Db),Ir<tn+le||!a.hasHorizontalScrollbar||!a.allowHorizontalScroll||(le=1,ft+1<ge&&(le=Math.max((ge-ft)*nr+a.Aa,le)),Nt>ye+1&&(le=Math.max((Nt-ye)*nr+a.Aa,le)),tn+1<Ir&&(le=Math.max((Ir-tn)*nr+a.Aa,le)),Oo=le.toString()+"px"),Di=Oo!=="1px",le=a.ya,Di!==a.Be&&(le=Di?a.ya-a.Db:a.ya+a.Db),br<xn+fe||!a.hasVerticalScrollbar||!a.allowVerticalScroll||(fe=1,Lt+1<os&&(fe=Math.max((os-Lt)*nr+le,fe)),Pt>we+1&&(fe=Math.max((Pt-we)*nr+le,fe)),xn+1<br&&(fe=Math.max((br-xn)*nr+le,fe)),Ut=fe.toString()+"px"),ii=Ut!=="1px"),a.qr&&Di===a.Be&&ii===a.gf)return b===a.Aa&&te===a.ya||a.bd(),!1;if(Di!==a.Be&&(Oo==="1px"?a.ya=a.ya+a.Db:a.ya=Math.max(a.ya-a.Db,1),oe=!0),a.Be=Di,Ke.style.width=Oo,ii!==a.gf&&(Ut==="1px"?a.Aa=a.Aa+a.Db:a.Aa=Math.max(a.Aa-a.Db,1),oe=!0,a.tn&&(fe=it.alloc(),ii?(x.style.left=a.Db+"px",a.position=fe.h(a.pa.x+a.Db/a.scale,a.pa.y)):(x.style.left="0px",a.position=fe.h(a.pa.x-a.Db/a.scale,a.pa.y)),it.free(fe))),oe&&Xp(a),a.gf=ii,Ke.style.height=Ut,a.gu=!0,oe&&(a.pn=!0),x=Ve.scrollLeft,a.hasHorizontalScrollbar&&a.allowHorizontalScroll&&(tn+1<Ir?x=(a.position.x-ft)*nr:ft+1<ge?x=Ve.scrollWidth-Ve.clientWidth:Nt>ye+1&&(x=a.position.x*nr)),a.tn)switch(a.bu){case"negative":x=-(Ve.scrollWidth-x-Ve.clientWidth);break;case"reverse":x=Ve.scrollWidth-x-Ve.clientWidth}return Ve.scrollLeft=x,a.hasVerticalScrollbar&&a.allowVerticalScroll&&(xn+1<br?Ve.scrollTop=(a.position.y-Lt)*nr:Lt+1<os?Ve.scrollTop=Ve.scrollHeight-Ve.clientHeight:Pt>we+1&&(Ve.scrollTop=a.position.y*nr)),ge=a.Aa,ye=a.ya,Ve.style.width=ge+(a.gf?a.Db:0)+"px",Ve.style.height=ye+(a.Be?a.Db:0)+"px",b!==ge||te!==ye||a.animationManager.zb?(b=Yt.allocAt(re,be,ke,Ue),a.onViewportBoundsChanged(b,a.viewportBounds,nr,oe),Yt.free(b),!1):!0}We=wn.prototype,We.add=function(a){var x=a.diagram;if(x!==this&&(x!==null&&hn("Cannot add part "+a.toString()+" to "+this.toString()+". It is already a part of "+x.toString()),x=this.Qj(a.layerName),x===null&&(x=this.Qj("")),x===null&&hn('Cannot add a Part when unable find a Layer named "'+a.layerName+'" and there is no default Layer'),a.layer!==x)){var b=x.oi(99999999,a,a.diagram===this);0<=b&&this.cb(Ol,"parts",x,null,a,null,b),x.isTemporary||this.Ya(),a.C(1),b=a.layerChanged,b!==null&&b(a,null,x)}},We.oi=function(a){this.partManager.oi(a);var x=this;Px(a,function(b){qy(x,b)}),(a instanceof Ca||a instanceof ts&&a.placeholder!==null)&&a.v(),a.data!==null&&Px(a,function(b){GC(x.partManager,b)}),Xh(a)!==!0&&nh(a)!==!0||this.De.add(a),A5(a,!0,this),Zf(a)?(a.actualBounds.w()&&this.N(hm(a,a.actualBounds)),this.Ya()):a.isVisible()&&a.actualBounds.w()&&this.N(hm(a,a.actualBounds)),this.$b()},We.pc=function(a){a.Ej(),this.partManager.pc(a);var x=this;a.data!==null&&Px(a,function(b){g2(x.partManager,b,x)}),this.De.remove(a),Zf(a)?(a.actualBounds.w()&&this.N(hm(a,a.actualBounds)),this.Ya()):a.isVisible()&&a.actualBounds.w()&&this.N(hm(a,a.actualBounds)),this.$b()},We.remove=function(a){PS(this,a,!0)};function PS(a,x,b){var te=x.layer;te!==null&&te.diagram===a&&(x.isSelected=!1,x.isHighlighted=!1,x.C(2),b&&x.Lj(),b=te.pc(-1,x,!1),0<=b&&a.cb(Ou,"parts",te,x,null,b,null),a=x.layerChanged,a!==null&&a(x,te,null))}We.Is=function(a,x){if(x===void 0&&(x=!1),Fo(a))for(var b=a.length,te=0;te<b;te++){var re=a[te];x&&!re.canDelete()||this.remove(re)}else for(b=new Yi,b.addAll(a),a=b.iterator;a.next();)b=a.value,x&&!b.canDelete()||this.remove(b)},We.Kj=function(a,x,b){return b===void 0&&(b=!1),this.partManager.Kj(a,x,b)},wn.prototype.moveParts=function(a,x,b,te){if(b===void 0&&(b=!1),te===void 0&&(te=Jy(this)),this.toolManager!==null){var re=new kn;if(a!==null)if(Fo(a))for(var oe=0;oe<a.length;oe++)lm(this,re,a[oe],b,te);else for(a=a.iterator;a.next();)lm(this,re,a.value,b,te);else{for(a=this.parts;a.next();)lm(this,re,a.value,b,te);for(a=this.nodes;a.next();)lm(this,re,a.value,b,te);for(a=this.links;a.next();)lm(this,re,a.value,b,te)}ug(this,re,x,te,b)}};function lm(a,x,b,te,re,oe){if(!x.contains(b)&&(oe===void 0&&(oe=!1),!te||oe||b.canMove()||b.canCopy()))if(re===void 0&&(re=Jy(a)),b instanceof ar){if(x.add(b,a.Pd(re,b,b.location)),b instanceof ts&&(b.placeholder!==null||re.dragsMembers))for(oe=b.memberParts;oe.next();)lm(a,x,oe.value,te,re,re.groupsAlwaysMove);for(oe=b.linksConnected;oe.next();){var le=oe.value;if(!x.contains(le)){var fe=le.fromNode,ge=le.toNode;fe!==null&&x.contains(fe)&&ge!==null&&x.contains(ge)&&lm(a,x,le,te,re)}}if(re.dragsTree)for(b=b.Ou();b.next();)lm(a,x,b.value,te,re)}else if(b instanceof Ui)for(x.add(b,a.Pd(re,b)),b=b.labelNodes;b.next();)lm(a,x,b.value,te,re);else b instanceof Ca||x.add(b,a.Pd(re,b,b.location))}function ug(a,x,b,te,re){if(x!==null&&x.count!==0){var oe=it.alloc(),le=it.alloc();le.assign(b),isNaN(le.x)&&(le.x=0),isNaN(le.y)&&(le.y=0),(b=a.Mr)||Y1(a,x);for(var fe=ys(),ge=ys(),ye=x.iterator,we=it.alloc();ye.next();){var be=ye.key,ke=ye.value;if(be.Zc()){var Ue=K1(a,be,x);Ue!==null?fe.push(new de(be,ke,Ue)):(!re||be.canMove())&&(Ue=ke.point,oe.assign(Ue),a.computeMove(be,oe.add(le),te,we),be.location=we,ke.shifted===void 0&&(ke.shifted=new it),ke.shifted.assign(we.re(Ue)))}else ye.key instanceof Ui&&ge.push(ye.sa)}for(it.free(we),re=fe.length,ye=0;ye<re;ye++)be=fe[ye],oe.assign(be.info.point),be.Su.shifted===void 0&&(be.Su.shifted=new it),be.node.location=oe.add(be.Su.shifted);for(re=it.alloc(),ye=it.alloc(),be=ge.length,ke=0;ke<be;ke++){var Ve=ge[ke];if(Ue=Ve.key,Ue instanceof Ui)if(Ue.suspendsRouting){Ue.Tg=null,we=Ue.fromNode;var Ke=Ue.toNode;if(a.draggedLink!==null&&te.dragsLink)if(Ke=Ve.value.point,Ue.dragComputation===null)x.add(Ue,a.Pd(te,Ue,le)),Md(Ue,le.x-Ke.x,le.y-Ke.y);else{Ve=it.allocAt(0,0),(we=Ue.i(0))&&we.w()&&Ve.assign(we);var Pt=we=it.alloc().assign(Ve).add(le);te.isGridSnapEnabled&&(te.isGridSnapRealtime||a.lastInput.up)&&(Pt=it.alloc(),Z1(a,Ue,we,Pt,te)),we.assign(Ue.dragComputation(Ue,we,Pt)).re(Ve),x.add(Ue,a.Pd(te,Ue,we)),Md(Ue,we.x-Ke.x,we.y-Ke.y),it.free(Ve),it.free(we),Pt!==we&&it.free(Pt)}else we!==null&&(re.assign(we.location),Pt=x.I(we),Pt!==null&&re.re(Pt.point)),Ke!==null&&(ye.assign(Ke.location),Pt=x.I(Ke),Pt!==null&&ye.re(Pt.point)),we!==null&&Ke!==null?re.Xa(ye)?(we=Ve.value.point,Ke=oe,Ke.assign(re),Ke.re(we),x.add(Ue,a.Pd(te,Ue,re)),Md(Ue,Ke.x,Ke.y)):(Ue.suspendsRouting=!1,Ue.bb()):(Ve=Ve.value.point,we=we!==null?re:Ke!==null?ye:le,x.add(Ue,a.Pd(te,Ue,we)),Md(Ue,we.x-Ve.x,we.y-Ve.y))}else(Ue.fromNode===null||Ue.toNode===null)&&(we=Ve.value.point,x.add(Ue,a.Pd(te,Ue,le)),Md(Ue,le.x-we.x,le.y-we.y))}it.free(oe),it.free(le),it.free(re),it.free(ye),As(fe),As(ge),b||(Nh(a),jv(a,x))}}wn.prototype.computeMove=function(a,x,b,te){if(te===void 0&&(te=new it),te.assign(x),a===null)return te;var re=x,oe=b.isGridSnapEnabled;oe&&(b.isGridSnapRealtime||this.lastInput.up)&&(re=it.alloc(),Z1(this,a,x,re,b)),b=a.dragComputation!==null?a.dragComputation(a,x,re):re;var le=a.minLocation,fe=le.x;isNaN(fe)&&(fe=oe?Math.round(1e3*a.location.x)/1e3:a.location.x),le=le.y,isNaN(le)&&(le=oe?Math.round(1e3*a.location.y)/1e3:a.location.y);var ge=a.maxLocation,ye=ge.x;return isNaN(ye)&&(ye=oe?Math.round(1e3*a.location.x)/1e3:a.location.x),ge=ge.y,isNaN(ge)&&(ge=oe?Math.round(1e3*a.location.y)/1e3:a.location.y),te.h(Math.max(fe,Math.min(b.x,ye)),Math.max(le,Math.min(b.y,ge))),re!==x&&it.free(re),te};function Jy(a){var x=a.toolManager.findTool("Dragging");return x!==null?x.dragOptions:a.Wm}function Z1(a,x,b,te,re){if(re===void 0&&(re=Jy(a)),te.assign(b),x!==null){var oe=a.grid;x=re.gridSnapCellSize,a=x.width,x=x.height;var le=re.gridSnapOrigin,fe=le.x;if(le=le.y,re=re.gridSnapCellSpot,oe!==null){var ge=oe.gridCellSize;isNaN(a)&&(a=ge.width),isNaN(x)&&(x=ge.height),oe=oe.gridOrigin,isNaN(fe)&&(fe=oe.x),isNaN(le)&&(le=oe.y)}oe=it.allocAt(0,0),oe.yi(0,0,a,x,re),_t.No(b.x,b.y,fe+oe.x,le+oe.y,a,x,te),it.free(oe)}}function Y1(a,x){if(x!==null)for(a.Mr=!0,a=x.iterator;a.next();)x=a.key,x instanceof Ui&&(x.suspendsRouting=!0)}function jv(a,x){if(x!==null){for(x=x.iterator;x.next();){var b=x.key;b instanceof Ui&&(b.suspendsRouting=!1,HC(b)&&b.bb())}a.Mr=!1}}function K1(a,x,b){return x=x.containingGroup,x!==null&&(a=K1(a,x,b),a!==null||(a=b.I(x),a!==null))?a:null}We=wn.prototype,We.Pd=function(a,x,b){if(b===void 0)return new Fh(fr);var te=a.isGridSnapEnabled;return a.groupsSnapMembers||x.containingGroup===null||(te=!1),te?new Fh(new it(Math.round(1e3*b.x)/1e3,Math.round(1e3*b.y)/1e3)):new Fh(b.copy())};function CS(a,x,b){if(x.diagram!==null&&x.diagram!==a&&hn("Cannot share a Layer with another Diagram: "+x+" of "+x.diagram),b===null?x.diagram!==null&&hn("Cannot add an existing Layer to this Diagram again: "+x):(b.diagram!==a&&hn("Existing Layer must be in this Diagram: "+b+" not in "+b.diagram),x===b&&hn("Cannot move a Layer before or after itself: "+x)),x.diagram!==a){x=x.name,a=a.Wa,b=a.count;for(var te=0;te<b;te++)a.M(te).name===x&&hn("Cannot add Layer with the name '"+x+"'; a Layer with the same name is already present in this Diagram.")}}We.Al=function(a){CS(this,a,null),a.Xe(this);var x=this.Wa,b=x.count-1;if(!a.isTemporary)for(;0<=b&&x.M(b).isTemporary;)b--;return x.Gb(b+1,a),this.cc!==null&&this.cb(Ol,"layers",this,null,a,null,b+1),this.N(),this.Ya(),this},We.Ww=function(a,x){CS(this,a,x),a.Xe(this);var b=this.Wa,te=b.indexOf(a);0<=te&&(b.remove(a),this.cc!==null&&this.cb(Ou,"layers",this,a,null,te,null));var re=b.count,oe;for(oe=0;oe<re;oe++)if(b.M(oe)===x){b.Gb(oe,a);break}return this.cc!==null&&this.cb(Ol,"layers",this,null,a,null,oe),this.N(),0>te&&this.Ya(),this},We.Cy=function(a,x){CS(this,a,x),a.Xe(this);var b=this.Wa,te=b.indexOf(a);0<=te&&(b.remove(a),this.cc!==null&&this.cb(Ou,"layers",this,a,null,te,null));var re=b.count,oe;for(oe=0;oe<re;oe++)if(b.M(oe)===x){b.Gb(oe+1,a);break}return this.cc!==null&&this.cb(Ol,"layers",this,null,a,null,oe+1),this.N(),0>te&&this.Ya(),this},We.kA=function(a){if(a.diagram!==this&&hn("Cannot remove a Layer from another Diagram: "+a+" of "+a.diagram),a.name!==""){var x=this.Wa,b=x.indexOf(a);if(x.remove(a)){for(x=a.Pa.copy().iterator;x.next();){var te=x.value,re=te.layerName;re!==a.name?te.layerName=re:te.layerName=""}this.cc!==null&&this.cb(Ou,"layers",this,a,null,b,null),this.N(),this.Ya()}}},We.Qj=function(a){for(var x=this.layers;x.next();){var b=x.value;if(b.name===a)return b}return null},We.Yw=function(a){return this.pf===null&&(this.pf=new Zi),this.pf.add(a),this.model.Pe(a),this},We.mA=function(a){this.pf!==null&&(this.pf.remove(a),this.pf.count===0&&(this.pf=null)),this.model.ik(a)},We.Pe=function(a){return this.zg===null&&(this.zg=new Zi),this.zg.add(a),this},We.ik=function(a){this.zg!==null&&(this.zg.remove(a),this.zg.count===0&&(this.zg=null))},We.ds=function(a){if(this.skipsUndoManager||this.model.skipsUndoManager||this.model.undoManager.Tu(a),a.change!==Ka&&(this.isModified=!0),this.zg!==null)for(var x=this.zg,b=x.length,te=0;te<b;te++)x.M(te)(a)},We.cb=function(a,x,b,te,re,oe,le){oe===void 0&&(oe=null),le===void 0&&(le=null);var fe=new ul;fe.diagram=this,fe.change=a,fe.propertyName=x,fe.object=b,fe.oldValue=te,fe.oldParam=oe,fe.newValue=re,fe.newParam=le,this.ds(fe)},We.g=function(a,x,b,te,re){this.cb(Dl,a,this,x,b,te,re)},wn.prototype.changeState=function(a,x){if(a!==null&&a.diagram===this){var b=this.skipsModelSourceBindings;try{this.skipsModelSourceBindings=!0;var te=a.change;if(te===Dl){var re=a.object;if(cu(re,a.propertyName,a.I(x)),re instanceof nn){var oe=re.part;oe!==null&&oe.Wb()}this.isModified=!0}else if(te===Ol){var le=a.object,fe=a.newParam,ge=a.newValue;if(le instanceof Pi)if(typeof fe=="number"&&ge instanceof nn){x?le.pc(fe):le.Gb(fe,ge);var ye=le.part;ye!==null&&ye.Wb()}else typeof fe=="number"&&ge instanceof mc&&(ge.isRow?Fm(le,fe,x?void 0:ge):Cx(le,fe,x?void 0:ge));else if(le instanceof eh){var we=a.oldParam===!0;typeof fe=="number"&&ge instanceof mo&&(x?(ge.isSelected=!1,ge.isHighlighted=!1,ge.Wb(),le.pc(we?fe:-1,ge,we)):le.oi(fe,ge,we))}else le instanceof wn?typeof fe=="number"&&ge instanceof eh&&(x?this.Wa.mb(fe):(ge.Xe(this),this.Wa.Gb(fe,ge))):hn("unknown ChangedEvent.Insert object: "+a.toString());this.isModified=!0}else if(te===Ou){var be=a.object,ke=a.oldParam,Ue=a.oldValue;if(be instanceof Pi)typeof ke=="number"&&Ue instanceof nn?x?be.Gb(ke,Ue):be.pc(ke):typeof ke=="number"&&Ue instanceof mc&&(Ue.isRow?Fm(be,ke,x?Ue:void 0):Cx(be,ke,x?Ue:void 0));else if(be instanceof eh){var Ve=a.newParam===!0;typeof ke=="number"&&Ue instanceof mo&&(x?0>be.Pa.indexOf(Ue)&&be.oi(ke,Ue,Ve):(Ue.isSelected=!1,Ue.isHighlighted=!1,Ue.Wb(),be.pc(Ve?ke:-1,Ue,Ve)))}else be instanceof wn?typeof ke=="number"&&Ue instanceof eh&&(x?(Ue.Xe(this),this.Wa.Gb(ke,Ue)):this.Wa.mb(ke)):hn("unknown ChangedEvent.Remove object: "+a.toString());this.isModified=!0}else te!==Ka&&hn("unknown ChangedEvent: "+a.toString())}finally{this.skipsModelSourceBindings=b}}},wn.prototype.Ea=function(a){return this.undoManager.Ea(a)},wn.prototype.eb=function(a){return this.undoManager.eb(a)},wn.prototype.Kf=function(){return this.undoManager.Kf()},wn.prototype.commit=function(a,x){x===void 0&&(x="");var b=this.skipsUndoManager;x===null&&(this.skipsUndoManager=!0,x=""),this.undoManager.Ea(x);var te=!1;try{a(this),te=!0}finally{te?this.undoManager.eb(x):this.undoManager.Kf(),this.skipsUndoManager=b}},wn.prototype.updateAllTargetBindings=function(a){this.partManager.updateAllTargetBindings(a)},wn.prototype.rp=function(){this.partManager.rp()};function ES(a,x,b){var te=a.animationManager;if(a.vb||a.ld)a.Ca=b,Xp(a),a.N(),a.Ee=!0,te.zb&&(Er(te)||te.ce.add(te.H,"scale",x,a.Ca));else if(a.ta===null)a.Ca=b,Xp(a);else{a.vb=!0;var re=a.viewportBounds.copy(),oe=a.Aa,le=a.ya,fe=a.zoomPoint.x,ge=a.zoomPoint.y,ye=a.contentAlignment;isNaN(fe)&&(ye.$c()?ye.Hf(Aa)?fe=0:ye.Hf(ga)&&(fe=oe-1):fe=ye.sb()?ye.x*(oe-1):oe/2),isNaN(ge)&&(ye.$c()?ye.Hf(Ra)?ge=0:ye.Hf(ol)&&(ge=le-1):ge=ye.sb()?ye.y*(le-1):le/2),a.scaleComputation===null||a.animationManager.defaultAnimation.isAnimating||(b=a.scaleComputation(a,b)),b<a.minScale&&(b=a.minScale),b>a.maxScale&&(b=a.maxScale),oe=it.allocAt(a.pa.x+fe/x-fe/b,a.pa.y+ge/x-ge/b),a.position=oe,it.free(oe),a.Ca=b,Xp(a),a.vb=!1,a.onViewportBoundsChanged(re,a.viewportBounds,x,!1),Gp(a,!1),te.zb&&(Er(te)||te.ce.add(te.H,"scale",x,a.Ca))}}wn.prototype.onViewportBoundsChanged=function(a,x,b,te){if(!a.D(x)){te===void 0&&(te=!1),te||(this.Ee=!0),this.vd=!0;var re=this.layout;re===null||!re.isViewportSized||this.autoScale!==sd||a.width===x.width&&a.height===x.height||re.C(),re=this.currentTool,this.Vk===!0&&re instanceof sl&&(this.lastInput.documentPoint=this.Ps(this.lastInput.viewPoint),Uh(re,this)),this.vb||this.invalidateViewport(a,x),Ng(this),this.fc.scale=b,this.fc.position.x=a.x,this.fc.position.y=a.y,this.fc.bounds.assign(a),this.fc.canvasSize.width=Math.round(a.width*b),this.fc.canvasSize.height=Math.round(a.height*b),this.fc.newCanvasSize.width=this.Aa,this.fc.newCanvasSize.height=this.ya,this.fc.isScroll=te,this.R("ViewportBoundsChanged",this.fc,a),this.isVirtualized&&this.links.each(function(oe){oe.isAvoiding&&oe.actualBounds.Yc(x)&&oe.bb()})}};function Ng(a,x){var b=a.fe;if(b!==null&&b.visible){for(var te=Dt.alloc(),re=1,oe=1,le=b.O.s,fe=le.length,ge=0;ge<fe;ge++){var ye=le[ge],we=Math.abs(ye.interval);2>we||(zS(ye.figure)?oe=oe*we/_t.vx(oe,we):re=re*we/_t.vx(re,we))}if(le=b.gridCellSize,te.h(oe*le.width,re*le.height),x!==void 0)re=x.width,oe=x.height,a=x.x,le=x.y;else{if(x=Yt.alloc(),a=a.viewportBounds,x.h(a.x,a.y,a.width,a.height),!x.w()){Yt.free(x);return}re=x.width,oe=x.height,a=x.x,le=x.y,Yt.free(x)}b.width=re+2*te.width,b.height=oe+2*te.height,x=it.alloc(),_t.No(a,le,0,0,te.width,te.height,x),x.offset(-te.width,-te.height),Dt.free(te),b.part.location=x,it.free(x)}}wn.prototype.clearSelection=function(a){a===void 0&&(a=!1);var x=this.selection;if(x.count!==0){a||this.R("ChangingSelection",x);for(var b=x.Fa(),te=b.length,re=0;re<te;re++)b[re].isSelected=!1;x.ka(),x.clear(),x.freeze(),a||this.R("ChangedSelection",x)}},wn.prototype.select=function(a){a!==null&&a.diagram===this&&(!a.isSelected||1<this.selection.count)&&(this.R("ChangingSelection",this.selection),this.clearSelection(!0),a.isSelected=!0,this.R("ChangedSelection",this.selection))},wn.prototype.rA=function(a){if(this.R("ChangingSelection",this.selection),this.clearSelection(!0),Fo(a))for(var x=a.length,b=0;b<x;b++){var te=a[b];te instanceof mo||hn("Diagram.selectCollection given something that is not a Part: "+te),te.isSelected=!0}else for(a=a.iterator;a.next();)x=a.value,x instanceof mo||hn("Diagram.selectCollection given something that is not a Part: "+x),x.isSelected=!0;this.R("ChangedSelection",this.selection)},wn.prototype.clearHighlighteds=function(){var a=this.highlighteds;if(0<a.count){for(var x=a.Fa(),b=x.length,te=0;te<b;te++)x[te].isHighlighted=!1;a.ka(),a.clear(),a.freeze()}},We=wn.prototype,We.Iz=function(a){a!==null&&a.diagram===this&&(!a.isHighlighted||1<this.highlighteds.count)&&(this.clearHighlighteds(),a.isHighlighted=!0)},We.Jz=function(a){a=new Yi().addAll(a);for(var x=this.highlighteds.copy().hp(a).iterator;x.next();)x.value.isHighlighted=!1;for(a=a.iterator;a.next();)x=a.value,x instanceof mo||hn("Diagram.highlightCollection given something that is not a Part: "+x),x.isHighlighted=!0},We.scroll=function(a,x,b){b===void 0&&(b=1);var te=x==="up"||x==="down",re=0,oe=it.alloc();if(a==="pixel")re=b;else if(a==="line")re=b*(te?this.scrollVerticalLineChange:this.scrollHorizontalLineChange);else if(a==="page")a=te?this.viewportBounds.height:this.viewportBounds.width,a*=this.scale,a!==0&&(re=b*Math.max(a-(te?this.scrollVerticalLineChange:this.scrollHorizontalLineChange),0));else{if(a==="document"){re=this.documentBounds,b=this.viewportBounds,x==="up"?this.position=oe.h(b.x,re.y):x==="left"?this.position=oe.h(re.x,b.y):x==="down"?this.position=oe.h(b.x,re.bottom-b.height):x==="right"&&(this.position=oe.h(re.right-b.width,b.y)),it.free(oe);return}hn("scrolling unit must be 'pixel', 'line', 'page', or 'document', not: "+a)}re/=this.scale,b=this.position,x==="up"?this.position=oe.h(b.x,b.y-re):x==="down"?this.position=oe.h(b.x,b.y+re):x==="left"?this.position=oe.h(b.x-re,b.y):x==="right"?this.position=oe.h(b.x+re,b.y):hn("scrolling direction must be 'up', 'down', 'left', or 'right', not: "+x),it.free(oe)},We.tv=function(a){var x=this.viewportBounds;x.Re(a)||(a=a.center,a.x-=x.width/2,a.y-=x.height/2,this.position=a)},We.es=function(a){var x=this.viewportBounds;a=a.center,a.x-=x.width/2,a.y-=x.height/2,this.position=a},We.op=function(a){var x=this.Ab;x.reset(),this.Ca!==1&&x.scale(this.Ca);var b=this.pa;return(b.x!==0||b.y!==0)&&isFinite(b.x)&&isFinite(b.y)&&x.translate(-b.x,-b.y),a.copy().transform(this.Ab)},We.zA=function(a){var x=this.Ab,b=a.x,te=a.y,re=b+a.width,oe=te+a.height,le=x.m11,fe=x.m12,ge=x.m21,ye=x.m22,we=x.dx,be=x.dy,ke=b*le+te*ge+we;x=b*fe+te*ye+be;var Ue=re*le+te*ge+we;return a=re*fe+te*ye+be,te=b*le+oe*ge+we,b=b*fe+oe*ye+be,le=re*le+oe*ge+we,re=re*fe+oe*ye+be,oe=Math.min(ke,Ue),ke=Math.max(ke,Ue),Ue=Math.min(x,a),x=Math.max(x,a),oe=Math.min(oe,te),ke=Math.max(ke,te),Ue=Math.min(Ue,b),x=Math.max(x,b),oe=Math.min(oe,le),ke=Math.max(ke,le),Ue=Math.min(Ue,re),x=Math.max(x,re),new Yt(oe,Ue,ke-oe,x-Ue)},We.Ps=function(a){var x=this.Ab;x.reset(),this.Ca!==1&&x.scale(this.Ca);var b=this.pa;return(b.x!==0||b.y!==0)&&isFinite(b.x)&&isFinite(b.y)&&x.translate(-b.x,-b.y),Co(a.copy(),this.Ab)};function J1(a){var x=a.isModified;a.Tw!==x&&(a.Tw=x,a.R("Modified"))}function dx(a){return a=LS.get(a),a!==null?new a:new Wa}wn.prototype.doModelChanged=function(a){var x=this;if(a.model===this.model){var b=a.change,te=a.propertyName;if(b===Ka&&te[0]==="S")if(te==="StartingFirstTransaction"){var re=this;a=this.toolManager,a.mouseDownTools.each(function(ge){return ge.diagram=re}),a.mouseMoveTools.each(function(ge){return ge.diagram=re}),a.mouseUpTools.each(function(ge){return ge.diagram=re}),this.ld||this.hf||(this.Jk=!0,this.fn&&(this.kg=!0))}else te==="StartingUndo"||te==="StartingRedo"?(a=this.animationManager,a.defaultAnimation.isAnimating&&!this.skipsUndoManager&&a.Cc(),this.R("ChangingSelection",this.selection)):te==="StartedTransaction"&&(a=this.animationManager,a.defaultAnimation.isAnimating&&!this.skipsUndoManager&&a.Cc());else if(this.aa){this.aa=!1;try{if(a.modelChange===""&&b===Ka){(te==="FinishedUndo"||te==="FinishedRedo")&&(this.R("ChangedSelection",this.selection),Nh(this));var oe=this.animationManager;te==="RolledBackTransaction"&&oe.Cc(),this.bx(),this.Jk=!0,this.bd(),this.undoManager.transactionLevel!==0&&this.undoManager.transactionLevel!==1||Ao(oe),te==="CommittedTransaction"&&this.undoManager.isJustDiscarded&&(this.Ce=Math.min(this.Ce,this.undoManager.historyIndex-1)),te!=="CommittedTransaction"&&te!=="RolledBackTransaction"||!this.undoManager.isPendingUnmodified||setTimeout(function(){x.isModified=!1},1);var le=a.isTransactionFinished;if(le&&(J1(this),this.As.clear(),qr(this.animationManager)),!this.Rt&&le&&this.lastInput.targetDiagram){this.Rt=!0;var fe=this;aa(function(){fe.currentTool.standardMouseOver(),fe.Rt=!1},10)}}}finally{this.aa=!0}}}};function qy(a,x){x=x.O.s;for(var b=x.length,te=0;te<b;te++)Gv(a,x[te])}function Gv(a,x){if(x instanceof Wd){var b=x.element;if(b!==null&&b instanceof HTMLImageElement){b.Bg instanceof Yi&&b.Bg.add(a);var te=x.Eg;if(te!==null&&te.sq===!0&&x.diagram!==null&&x.diagram.Xn.add(x),b.hn)if(b=b.getAttribute("src")||"",te=a.Og.I(b),te===null)te=[],te.push(x),a.Og.add(b,te);else{for(a=0;a<te.length;a++)if(te[a]===x)return;te.push(x)}}}}function bS(a,x){if(x instanceof Wd){var b=x.element;if(b!==null&&b instanceof HTMLImageElement&&b.hn){var te=b.getAttribute("src")||"",re=a.Og.I(te);if(re!==null){for(var oe=0;oe<re.length;oe++)if(re[oe]===x){re.splice(oe,1),re.length===0&&(a.Og.remove(te),b.Fq&&b.removeEventListener("load",b.Fq),b.Yp&&b.removeEventListener("error",b.Yp),delete b.Fq,delete b.Yp,b.Bg instanceof Yi&&b.Bg.remove(a),wu(te));break}}}}}wn.prototype.Wd=function(){this.partManager.Wd()},wn.prototype.Aj=function(a,x){this.Yd.Aj(a,x)},wn.prototype.Cj=function(a,x){this.Yd.Cj(a,x)},wn.prototype.findPartForKey=function(a){return this.partManager.findPartForKey(a)},wn.prototype.Vb=function(a){return this.partManager.Vb(a)},wn.prototype.findLinkForKey=function(a){return this.partManager.findLinkForKey(a)},We=wn.prototype,We.Lc=function(a){return this.partManager.Lc(a)},We.ii=function(a){return this.partManager.ii(a)},We.Kc=function(a){return this.partManager.Kc(a)},We.ms=function(a){for(var x=[],b=0;b<arguments.length;++b)x[b]=arguments[b];return this.partManager.ms.apply(this.partManager,x instanceof Array?x:ms(Si(x)))},We.ls=function(a){for(var x=[],b=0;b<arguments.length;++b)x[b]=arguments[b];return this.partManager.ls.apply(this.partManager,x instanceof Array?x:ms(Si(x)))};function Xp(a){var x=a.pa,b=a.Ca;a.Rw.h(x.x,x.y,Math.max(a.Aa,0)/b,Math.max(a.ya,0)/b),a.vd=!0}function MS(a,x){a.Zi=!1;var b=a.Sp;b.D(x)||(b=b.copy(),a.Sp.assign(x),Gp(a,!1),a.R("DocumentBoundsChanged",void 0,b),a.Ee=!0,a.N())}We.Va=function(){if(this.Zi){var a=Yt.alloc();MS(this,this.computeBounds(a)),Yt.free(a)}},We.rz=function(){for(var a=new Yi,x=this.nodes;x.next();){var b=x.value;b.isTopLevel&&a.add(b)}for(x=this.links;x.next();)b=x.value,b.isTopLevel&&a.add(b);return a.iterator},We.qz=function(){return this.ai.iterator},We.Uz=function(a){Nh(this),a&&BS(this,!0),this.ld?TS(this,!1):(this.Jk=!0,cp(this))};function BS(a,x){for(var b=a.ai.iterator;b.next();)AC(a,b.value,x);a.layout&&(x?a.layout.isValidLayout=!1:a.layout.C())}function AC(a,x,b){if(x!==null){for(var te=x.gl.iterator;te.next();)AC(a,te.value,b);x.layout!==null&&(b?x.layout.isValidLayout=!1:x.layout.C())}}function TS(a,x){if(a.xh&&!a.lt){var b=a.aa;a.aa=!0;var te=a.undoManager.transactionLevel,re=a.layout,oe=a.animationManager;try{te===0&&(a.undoManager.isInternalTransaction=!0,a.Ea("Layout")),1>=te&&!oe.defaultAnimation.isAnimating&&!oe.zb&&(x||ua(oe,"Layout")),a.xh=!1;for(var le=a.ai.iterator;le.next();)q1(a,le.value,x,te);re.isValidLayout||(!x||re.isRealtime||re.isRealtime===null||te===0?(re.doLayout(a),Nh(a),re.isValidLayout=!0):a.xh=!0)}finally{x=a.undoManager.isInternalTransaction,te===0&&(a.eb("Layout"),a.undoManager.isInternalTransaction=!1),!x||te!==0&&te!==1||Ao(oe),a.aa=b}}}function q1(a,x,b,te){if(x!==null){for(var re=x.gl.iterator;re.next();)q1(a,re.value,b,te);re=x.layout,re===null||re.isValidLayout||(!b||re.isRealtime||te===0?(x.rh=!x.location.w(),re.doLayout(x),x.C(32),ux(a,x),re.isValidLayout=!0):a.xh=!0)}}We.yz=function(){for(var a=new Zi,x=this.nodes;x.next();){var b=x.value;b.isTopLevel&&b.kh()===null&&a.add(b)}return a.iterator};function xC(a){function x(re){var oe=re.toLowerCase(),le=new Zi;b.add(re,le),b.add(oe,le),te.add(re,re),te.add(oe,re)}var b=new kn,te=new kn;x("InitialAnimationStarting"),x("AnimationStarting"),x("AnimationFinished"),x("BackgroundSingleClicked"),x("BackgroundDoubleClicked"),x("BackgroundContextClicked"),x("ClipboardChanged"),x("ClipboardPasted"),x("DocumentBoundsChanged"),x("ExternalObjectsDropped"),x("GainedFocus"),x("InitialLayoutCompleted"),x("LayoutCompleted"),x("LinkDrawn"),x("LinkRelinked"),x("LinkReshaped"),x("LostFocus"),x("Modified"),x("ObjectSingleClicked"),x("ObjectDoubleClicked"),x("ObjectContextClicked"),x("PartCreated"),x("PartResized"),x("PartRotated"),x("SelectionMoved"),x("SelectionCopied"),x("SelectionDeleting"),x("SelectionDeleted"),x("SelectionGrouped"),x("SelectionUngrouped"),x("ChangingSelection"),x("ChangedSelection"),x("SubGraphCollapsed"),x("SubGraphExpanded"),x("TextEdited"),x("TreeCollapsed"),x("TreeExpanded"),x("ViewportBoundsChanged"),x("InvalidateDraw"),a.iw=b,a.hw=te}function DS(a,x){var b=a.hw.I(x);return b!==null?b:a.hw.I(x.toLowerCase())}function _1(a,x){var b=a.iw.I(x);if(b!==null||(b=a.iw.I(x.toLowerCase()),b!==null))return b;hn("Unknown DiagramEvent name: "+x)}We.Bj=function(a,x){return a=_1(this,a),a!==null&&a.add(x),this},We.am=function(a,x){a=_1(this,a),a!==null&&a.remove(x)},We.R=function(a,x,b){var te=_1(this,a),re=new xf;if(re.diagram=this,a=DS(this,a),a!==null&&(re.name=a),x!==void 0&&(re.subject=x),b!==void 0&&(re.parameter=b),x=te.length,x===1)te.M(0)(re);else if(x!==0)for(te=te.Fa(),b=0;b<x;b++)(0,te[b])(re)};function $1(a){if(a.animationManager.isTicking)return!1;var x=a.currentTool;return x===a.toolManager.findTool("Dragging")?!a.Mr||x.isComplexRoutingRealtime:!0}We.Yj=function(a,x){return ew(this,!1,null,x||null).Yj(a.x,a.y,a.width,a.height)},wn.prototype.computeOccupiedArea=function(a){return this.isVirtualized?this.viewportBounds.copy():this.Zi?oo(this,a):a.assign(this.documentBounds)};function ew(a,x,b,te){var re=a.Xh;if(re===null&&(a.Xh=re=new pm(a.avoidanceCellSize)),re.vs||re.group!==b||re.Yx!==te){if(re.Hx=Math.max(re.Os+1,Math.floor(a.avoidanceLimit/a.avoidanceCellSize.width)),re.Ix=Math.max(re.Os+1,Math.floor(a.avoidanceLimit/a.avoidanceCellSize.height)),b!==null&&(b=NS(a,b)),b===null){x=Yt.alloc(),a.computeOccupiedArea(x),x.Bc(100,100),re.initialize(x);for(var oe=a.nodes;oe.next();){var le=oe.value,fe=le.layer;fe!==null&&fe.visible&&!fe.isTemporary&&_y(a,le,te,x)}Yt.free(x)}else{for(0<b.memberParts.count&&(x=a.computePartsBounds(b.memberParts,!1),x.Bc(20,20),re.initialize(x)),x=Yt.alloc(),oe=b.memberParts;oe.next();)le=oe.value,le instanceof ar&&_y(a,le,te,x);Yt.free(x)}re.group=b,re.Yx=te,re.vs=!1}else x&&yw(re);return re}function NS(a,x){return x.avoidable&&!x.isLinkLabel?x:x.containingGroup!==null?NS(a,x.containingGroup):null}function _y(a,x,b,te){if(x!==b&&x.isVisible()){if(x.avoidable&&!x.isLinkLabel){x=x.getAvoidableRect(te),a=a.Xh;var re=x.x,oe=x.y;if(vw(a,re,oe))for(b=(oe-a.Od)/a.sc|0,te=Math.min((re+x.width-a.Nd)/a.rc|0,a.di),x=Math.min((oe+x.height-a.Od)/a.sc|0,a.ei),re=(re-a.Nd)/a.rc|0;re<=te;re++)if(oe=a.ac[re],oe.fill)oe.fill(dy,b,x+1);else for(var le=b;le<=x;le++)oe[le]=dy}else if(x instanceof ts)for(x=x.memberParts;x.next();)re=x.value,re instanceof ar&&_y(a,re,b,te)}}function W0(a,x){a.Xh===null||a.Xh.vs||x!==void 0&&(!x.avoidable||x.isLinkLabel)||(a.Xh.vs=!0)}wn.prototype.gs=function(a){this.wp.assign(a),this.computeAutoScrollPosition(this.wp).Xa(this.position)?this.ug():FS(this)};function FS(a){a.vk===-1&&(a.vk=aa(function(){if(a.vk!==-1&&(a.ug(),a.lastInput.event!==null)){var x=a.computeAutoScrollPosition(a.wp);x.Xa(a.position)||(a.position=x,a.lastInput.documentPoint=a.Ps(a.wp),a.doMouseMove(),a.Zi=!0,x=Yt.alloc(),a.computeBounds(x),x.ed(a.documentBounds),MS(a,x),Yt.free(x),a.Fc=!0,a.bd(),FS(a))}},a.vp))}wn.prototype.ug=function(){this.vk!==-1&&(ji.clearTimeout(this.vk),this.vk=-1)},wn.prototype.computeAutoScrollPosition=function(a){var x=this.position,b=this.xp;if(0>=b.top&&0>=b.left&&0>=b.right&&0>=b.bottom)return x;var te=this.viewportBounds,re=this.scale;te=Yt.allocAt(0,0,te.width*re,te.height*re);var oe=it.allocAt(0,0);if(a.x>=te.x&&a.x<te.x+b.left&&this.allowHorizontalScroll){var le=Math.max(this.scrollHorizontalLineChange,1);le|=0,oe.x-=le,a.x<te.x+b.left/2&&(oe.x-=le),a.x<te.x+b.left/4&&(oe.x-=4*le)}else a.x<=te.x+te.width&&a.x>te.x+te.width-b.right&&this.allowHorizontalScroll&&(le=Math.max(this.scrollHorizontalLineChange,1),le|=0,oe.x+=le,a.x>te.x+te.width-b.right/2&&(oe.x+=le),a.x>te.x+te.width-b.right/4&&(oe.x+=4*le));return a.y>=te.y&&a.y<te.y+b.top&&this.allowVerticalScroll?(le=Math.max(this.scrollVerticalLineChange,1),le|=0,oe.y-=le,a.y<te.y+b.top/2&&(oe.y-=le),a.y<te.y+b.top/4&&(oe.y-=4*le)):a.y<=te.y+te.height&&a.y>te.y+te.height-b.bottom&&this.allowVerticalScroll&&(le=Math.max(this.scrollVerticalLineChange,1),le|=0,oe.y+=le,a.y>te.y+te.height-b.bottom/2&&(oe.y+=le),a.y>te.y+te.height-b.bottom/4&&(oe.y+=4*le)),oe.Xa(fr)||(x=new it(x.x+oe.x/re,x.y+oe.y/re)),Yt.free(te),it.free(oe),x},We=wn.prototype,We.Cs=function(){return null},We.av=function(){return null},We.bs=function(a,x){this.pj.add(a,x)},We.Fu=function(a){(this.Pw=a)||this.nodes.each(function(x){x instanceof ts&&(x.$p=null)})};function fx(a,x,b){function te(){var we=+new Date;for(oe=!0,le.reset();le.next();)if(!le.value[0].al){oe=!1;break}oe||we-ye>ge?x(b,re,fe):ji.requestAnimationFrame(te)}for(var re=b.callback,oe=!0,le=a.Og.iterator;le.next();)if(!le.value[0].al){oe=!1;break}if(typeof re!="function"||oe)return x(b,re,a);var fe=a,ge=b.callbackTimeout||300,ye=+new Date;return ji.requestAnimationFrame(function(){te()}),null}We.Wz=function(a){return zu?(a===void 0&&(a={}),a.returnType="Image",this.Jx(a)):null},We.Jx=function(a){return a===void 0&&(a={}),fx(this,this.Xz,a)},We.Xz=function(a,x,b){var te=wC(b,a,"canvas",null);if(te===null)return null;b=te.Z.canvas;var re=null;if(b!==null)switch(re=a.returnType,re===void 0?re="string":re=re.toLowerCase(),re){case tA+"data":re=te.getImageData(0,0,b.width,b.height);break;case tA:te=(a.document||document).createElement("img"),te.src=b.toDataURL(a.type,a.details),re=te;break;case"blob":return typeof x!="function"&&hn('Error: Diagram.makeImageData called with "returnType: toBlob", but no required "callback" function property defined.'),typeof b.toBlob=="function"?(b.toBlob(x,a.type,a.details),"toBlob"):(x(null),null);default:re=b.toDataURL(a.type,a.details)}return typeof x=="function"?(x(re),null):re};function wC(a,x,b,te){if(a.animationManager.Cc(),a.bd(),a.ta===null)return null;typeof x!="object"&&hn("properties argument must be an Object.");var re=x.size||null,oe=x.scale||null;x.scale!==void 0&&isNaN(x.scale)&&(oe="NaN");var le=x.maxSize;x.maxSize===void 0&&(le=b==="SVG"?new Dt(1/0,1/0):new Dt(2e3,2e3));var fe=x.position||null,ge=x.parts||null,ye=x.padding===void 0?1:x.padding,we=x.background||null,be=x.omitTemporary;be===void 0&&(be=!0);var ke=x.document||document,Ue=x.elementFinished||null,Ve=x.showTemporary;Ve===void 0&&(Ve=!be),x=x.showGrid,x===void 0&&(x=Ve),re!==null&&isNaN(re.width)&&isNaN(re.height)&&(re=null),typeof ye=="number"?ye=new yr(ye):ye instanceof yr||hn("MakeImage padding must be a Margin or a number."),ye.left=Math.max(ye.left,0),ye.right=Math.max(ye.right,0),ye.top=Math.max(ye.top,0),ye.bottom=Math.max(ye.bottom,0),a.ib.Vc(!0),be=new xh(null,ke,void 0,!0);var Ke=be.context;if(!(re||oe||ge||fe))return be.width=a.Aa+Math.ceil(ye.left+ye.right),be.height=a.ya+Math.ceil(ye.top+ye.bottom),b==="SVG"?te===null?null:(te.resize(be.width,be.height,be.width,be.height),te.ownerDocument=ke,te.hs=Ue,cx(a,te.context,ye,new Dt(be.width,be.height),a.Ca,a.pa,ge,we,Ve,x),te.context):(a.Xm=!1,cx(a,Ke,ye,new Dt(be.width,be.height),a.Ca,a.pa,ge,we,Ve,x),a.Xm=!0,be.context);var Pt=a.Pp,ft=a.documentBounds.copy();if(ft.Fv(a.yb),Ve)for(var Nt=a.Wa.s,Lt=Nt.length,Ut=0;Ut<Lt;Ut++){var tn=Nt[Ut];if(tn.visible&&tn.isTemporary){tn=tn.Pa.s;for(var xn=tn.length,nr=0;nr<xn;nr++){var Ir=tn[nr];Ir.isInDocumentBounds&&Ir.isVisible()&&(Ir=Ir.actualBounds,Ir.w()&&ft.ed(Ir))}}}if(Nt=new it(ft.x,ft.y),ge!==null){for(Lt=new Yt(0,0,0,0),Ut=!0,tn=ge.iterator,tn.reset();tn.next();)xn=tn.value,xn instanceof mo&&(nr=xn.layer,nr!==null&&!nr.visible||nr!==null&&!Ve&&nr.isTemporary||!xn.isVisible()||(xn=xn.actualBounds,xn.w()&&(Ut?(Ut=!1,Lt.assign(xn)):Lt.ed(xn))));ft.width=Lt.width,ft.height=Lt.height,Nt.x=Lt.x,Nt.y=Lt.y}return fe!==null&&fe.w()&&(Nt=fe,oe||(oe=Pt)),Lt=fe=0,ye!==null&&(fe=ye.left+ye.right,Lt=ye.top+ye.bottom),Ut=tn=0,re!==null&&(tn=re.width,Ut=re.height,isFinite(tn)&&(tn=Math.max(0,tn-fe)),isFinite(Ut)&&(Ut=Math.max(0,Ut-Lt))),re!==null&&oe!==null?(oe==="NaN"&&(oe=Pt),re.w()?(re=tn,ft=Ut):isNaN(Ut)?(re=tn,ft=ft.height*oe):(re=ft.width*oe,ft=Ut)):re!==null?re.w()?(oe=Math.min(tn/ft.width,Ut/ft.height),re=tn,ft=Ut):isNaN(Ut)?(oe=tn/ft.width,re=tn,ft=ft.height*oe):(oe=Ut/ft.height,re=ft.width*oe,ft=Ut):oe!==null?oe==="NaN"&&le.w()?(oe=Math.min((le.width-fe)/ft.width,(le.height-Lt)/ft.height),oe>Pt?(oe=Pt,re=ft.width,ft=ft.height):(re=le.width,ft=le.height)):(re=ft.width*oe,ft=ft.height*oe):(oe=Pt,re=ft.width,ft=ft.height),ye!==null?(re+=fe,ft+=Lt):ye=new yr(0),le!==null&&(Pt=le.width,le=le.height,isNaN(Pt)&&(Pt=2e3),isNaN(le)&&(le=2e3),isFinite(Pt)&&(re=Math.min(re,Pt)),isFinite(le)&&(ft=Math.min(ft,le))),be.width=Math.ceil(re),be.height=Math.ceil(ft),b==="SVG"?te===null?null:(te.resize(be.width,be.height,be.width,be.height),te.ownerDocument=ke,te.hs=Ue,cx(a,te.context,ye,new Dt(Math.ceil(re),Math.ceil(ft)),oe,Nt,ge,we,Ve,x),te.context):(a.Xm=!1,cx(a,Ke,ye,new Dt(Math.ceil(re),Math.ceil(ft)),oe,Nt,ge,we,Ve,x),a.Xm=!0,be.context)}pn.Object.defineProperties(wn.prototype,{renderer:{get:function(){return this.nl},set:function(a){this instanceof Ne||(a===""&&(a="default"),a=a.toLowerCase(),a!==this.nl&&(this.nl=a,a==="default"||a==="canvas"?(a=this.pj.get("svg"),a!==null&&a.Oa.remove(),this.ta&&(this.ib=this.ta.context)):a==="svg"?(this.pj.contains("svg")?a=this.pj.get("svg"):(a=new qu(this,ji.document),this.bs("svg",a)),this.div!==null&&this.div.appendChild(a.Oa),this.ib=a.context,this.ta&&(this.ta.context.setTransform(this.Mb,0,0,this.Mb,0,0),this.ta.context.clearRect(0,0,this.Aa,this.ya))):a!=="debug"||this.pj.contains("SVG")||(a=new qu(this,ji.document),this.bs("SVG",a),a.Oa.style.backgroundColor="whitesmoke",this.div!==null&&this.div.after(a.Oa)),this.hk()))}},div:{get:function(){return this.Ka},set:function(a){if(this.Ka!==a){var x=this.Ka;x!==null?(x.H=void 0,x.goDiagram=void 0,x.go=void 0,x.innerHTML="",this.ta!==null&&(x=this.ta.Oa,this.removeEventListener(x,"pointermove",this.dk,!1),this.removeEventListener(x,"pointerdown",this.ui,!1),this.removeEventListener(x,"pointerup",this.fk,!1),this.removeEventListener(x,"pointerout",this.ek,!1),this.removeEventListener(x,"pointercancel",this.ck,!1),this.ta.mx()),this.ol&&(this.ol.disconnect(),this.ol=null),x=this.toolManager,x!==null&&(x.mouseDownTools.each(function(b){b.cancelWaitAfter()}),x.mouseMoveTools.each(function(b){b.cancelWaitAfter()}),x.mouseUpTools.each(function(b){b.cancelWaitAfter()})),x.cancelWaitAfter(),this.currentTool.doCancel(),this.ta=null,this.removeEventListener(ji,"resize",this.Ov,!1),this.removeEventListener(ji,"wheel",this.$j,!0),sm===this&&(sm=null)):this.ui===null&&(this.hf=!1),this.Ka=null,a!==null&&((x=a.H)&&(x.div=null),mC(this,a),this.hk())}}},$w:{get:function(){return this.Sq}},pi:{get:function(){return this.hf}},draggedLink:{get:function(){return this.nt},set:function(a){this.nt!==a&&(this.nt=a,a!==null&&(this.Vt=a.fromPort,this.Wt=a.toPort))}},Mx:{get:function(){return this.Vt},set:function(a){this.Vt=a}},Nx:{get:function(){return this.Wt},set:function(a){this.Wt=a}},animationManager:{get:function(){return this.Yd}},undoManager:{get:function(){return this.cc.undoManager}},skipsUndoManager:{get:function(){return this.Wg},set:function(a){this.Wg=a,this.cc.skipsUndoManager=a}},delaysLayout:{get:function(){return this.lt},set:function(a){this.lt=a}},opacity:{get:function(){return this.pb},set:function(a){var x=this.pb;x!==a&&((0>a||1<a)&&Xo(a,"0 <= value <= 1",wn,"opacity"),this.pb=a,this.g("opacity",x,a),this.N())}},validCycle:{get:function(){return this.wu},set:function(a){var x=this.wu;x!==a&&(this.wu=a,this.g("validCycle",x,a))}},layers:{get:function(){return this.Wa.iterator}},isModelReadOnly:{get:function(){var a=this.cc;return a===null?!1:a.isReadOnly},set:function(a){var x=this.cc;x!==null&&(x.isReadOnly=a)}},isReadOnly:{get:function(){return this.Gg},set:function(a){var x=this.Gg;x!==a&&(this.Gg=a,this.g("isReadOnly",x,a))}},isEnabled:{get:function(){return this.Jd},set:function(a){var x=this.Jd;x!==a&&(this.Jd=a,this.g("isEnabled",x,a))}},allowClipboard:{get:function(){return this.Us},set:function(a){var x=this.Us;x!==a&&(this.Us=a,this.g("allowClipboard",x,a))}},allowCopy:{get:function(){return this.Fi},set:function(a){var x=this.Fi;x!==a&&(this.Fi=a,this.g("allowCopy",x,a))}},allowDelete:{get:function(){return this.Gi},set:function(a){var x=this.Gi;x!==a&&(this.Gi=a,this.g("allowDelete",x,a))}},allowDragOut:{get:function(){return this.Vs},set:function(a){var x=this.Vs;x!==a&&(this.Vs=a,this.g("allowDragOut",x,a))}},allowDrop:{get:function(){return this.Ws},set:function(a){var x=this.Ws;x!==a&&(this.Ws=a,this.g("allowDrop",x,a))}},allowTextEdit:{get:function(){return this.Pi},set:function(a){var x=this.Pi;x!==a&&(this.Pi=a,this.g("allowTextEdit",x,a))}},allowGroup:{get:function(){return this.Hi},set:function(a){var x=this.Hi;x!==a&&(this.Hi=a,this.g("allowGroup",x,a))}},allowUngroup:{get:function(){return this.Qi},set:function(a){var x=this.Qi;x!==a&&(this.Qi=a,this.g("allowUngroup",x,a))}},allowInsert:{get:function(){return this.Ys},set:function(a){var x=this.Ys;x!==a&&(this.Ys=a,this.g("allowInsert",x,a))}},allowLink:{get:function(){return this.Ii},set:function(a){var x=this.Ii;x!==a&&(this.Ii=a,this.g("allowLink",x,a))}},allowRelink:{get:function(){return this.Ki},set:function(a){var x=this.Ki;x!==a&&(this.Ki=a,this.g("allowRelink",x,a))}},allowMove:{get:function(){return this.Ji},set:function(a){var x=this.Ji;x!==a&&(this.Ji=a,this.g("allowMove",x,a))}},allowReshape:{get:function(){return this.Li},set:function(a){var x=this.Li;x!==a&&(this.Li=a,this.g("allowReshape",x,a))}},allowResize:{get:function(){return this.Mi},set:function(a){var x=this.Mi;x!==a&&(this.Mi=a,this.g("allowResize",x,a))}},allowRotate:{get:function(){return this.Ni},set:function(a){var x=this.Ni;x!==a&&(this.Ni=a,this.g("allowRotate",x,a))}},allowSelect:{get:function(){return this.Oi},set:function(a){var x=this.Oi;x!==a&&(this.Oi=a,this.g("allowSelect",x,a))}},allowUndo:{get:function(){return this.Zs},set:function(a){var x=this.Zs;x!==a&&(this.Zs=a,this.g("allowUndo",x,a))}},allowZoom:{get:function(){return this.at},set:function(a){var x=this.at;x!==a&&(this.at=a,this.g("allowZoom",x,a))}},hasVerticalScrollbar:{get:function(){return this.nn},set:function(a){var x=this.nn;x!==a&&(this.nn=a,this.Ee=!0,this.N(),this.g("hasVerticalScrollbar",x,a),Gp(this,!1))}},hasHorizontalScrollbar:{get:function(){return this.mn},set:function(a){var x=this.mn;x!==a&&(this.mn=a,this.Ee=!0,this.N(),this.g("hasHorizontalScrollbar",x,a),Gp(this,!1))}},allowHorizontalScroll:{get:function(){return this.Xs},set:function(a){var x=this.Xs;x!==a&&(this.Xs=a,this.g("allowHorizontalScroll",x,a),Gp(this,!1))}},allowVerticalScroll:{get:function(){return this.$s},set:function(a){var x=this.$s;x!==a&&(this.$s=a,this.g("allowVerticalScroll",x,a),Gp(this,!1))}},scrollHorizontalLineChange:{get:function(){return this.iu},set:function(a){var x=this.iu;x!==a&&(0>a&&Xo(a,">= 0",wn,"scrollHorizontalLineChange"),this.iu=a,this.g("scrollHorizontalLineChange",x,a))}},scrollVerticalLineChange:{get:function(){return this.mu},set:function(a){var x=this.mu;x!==a&&(0>a&&Xo(a,">= 0",wn,"scrollVerticalLineChange"),this.mu=a,this.g("scrollVerticalLineChange",x,a))}},lastInput:{get:function(){return this.cj},set:function(a){this.cj=a}},previousInput:{get:function(){return this.Qg},set:function(a){this.Qg=a}},firstInput:{get:function(){return this.bq},set:function(a){this.bq=a}},currentCursor:{get:function(){return this.it},set:function(a){if(a===""&&(a=this.Op),this.it!==a){var x=this.ta,b=this.Ka;if(x!==null&&b!==null){this.it=a;var te=x.style.cursor;x.style.cursor=a,b.style.cursor=a,x.style.cursor===te&&(x.style.cursor="-webkit-"+a,b.style.cursor="-webkit-"+a,x.style.cursor===te&&(x.style.cursor="-moz-"+a,b.style.cursor="-moz-"+a,x.style.cursor===te&&(x.style.cursor=a,b.style.cursor=a)))}}}},defaultCursor:{get:function(){return this.Op},set:function(a){a===""&&(a="auto");var x=this.Op;x!==a&&(this.Op=a,this.g("defaultCursor",x,a))}},click:{get:function(){return this.zh},set:function(a){var x=this.zh;x!==a&&(this.zh=a,this.g("click",x,a))}},doubleClick:{get:function(){return this.Fh},set:function(a){var x=this.Fh;x!==a&&(this.Fh=a,this.g("doubleClick",x,a))}},contextClick:{get:function(){return this.Bh},set:function(a){var x=this.Bh;x!==a&&(this.Bh=a,this.g("contextClick",x,a))}},mouseOver:{get:function(){return this.Qh},set:function(a){var x=this.Qh;x!==a&&(this.Qh=a,this.g("mouseOver",x,a))}},mouseHover:{get:function(){return this.Oh},set:function(a){var x=this.Oh;x!==a&&(this.Oh=a,this.g("mouseHover",x,a))}},mouseHold:{get:function(){return this.Nh},set:function(a){var x=this.Nh;x!==a&&(this.Nh=a,this.g("mouseHold",x,a))}},mouseDragOver:{get:function(){return this.Qt},set:function(a){var x=this.Qt;x!==a&&(this.Qt=a,this.g("mouseDragOver",x,a))}},mouseDrop:{get:function(){return this.Lh},set:function(a){var x=this.Lh;x!==a&&(this.Lh=a,this.g("mouseDrop",x,a))}},handlesDragDropForTopLevelParts:{get:function(){return this.xt},set:function(a){var x=this.xt;x!==a&&(this.xt=a,this.g("handlesDragDropForTopLevelParts",x,a))}},mouseEnter:{get:function(){return this.Mh},set:function(a){var x=this.Mh;x!==a&&(this.Mh=a,this.g("mouseEnter",x,a))}},mouseLeave:{get:function(){return this.Ph},set:function(a){var x=this.Ph;x!==a&&(this.Ph=a,this.g("mouseLeave",x,a))}},toolTip:{get:function(){return this.$h},set:function(a){var x=this.$h;x!==a&&(this.$h=a,this.g("toolTip",x,a))}},contextMenu:{get:function(){return this.Ch},set:function(a){var x=this.Ch;x!==a&&(this.Ch=a,this.g("contextMenu",x,a))}},commandHandler:{get:function(){return this.nb},set:function(a){this.nb!==a&&(this.nb=a,a.Xe(this))}},toolManager:{get:function(){return this.te},set:function(a){this.te!==a&&(this.te=a,a.diagram=this)}},defaultTool:{get:function(){return this.ob},set:function(a){var x=this.ob;x!==a&&(this.ob=a,a.diagram=this,this.currentTool===x&&(this.currentTool=a))}},currentTool:{get:function(){return this.hb},set:function(a){var x=this.hb;x&&(x.isActive&&x.doDeactivate(),x.cancelWaitAfter(),x.doStop()),a===null&&(a=this.defaultTool),a!==null&&(this.hb=a,a.diagram=this,a.doStart())}},selection:{get:function(){return this.Hw}},maxSelectionCount:{get:function(){return this.Nt},set:function(a){var x=this.Nt;if(x!==a)if(0<=a&&!isNaN(a)){if(this.Nt=a,this.g("maxSelectionCount",x,a),!this.undoManager.isUndoingRedoing&&(a=this.selection.count-a,0<a)){this.R("ChangingSelection",this.selection),x=this.selection.Fa();for(var b=0;b<a;b++)x[b].isSelected=!1;this.R("ChangedSelection",this.selection)}}else Xo(a,">= 0",wn,"maxSelectionCount")}},nodeSelectionAdornmentTemplate:{get:function(){return this.St},set:function(a){var x=this.St;x!==a&&(this.St=a,this.g("nodeSelectionAdornmentTemplate",x,a))}},groupSelectionAdornmentTemplate:{get:function(){return this.wt},set:function(a){var x=this.wt;x!==a&&(this.wt=a,this.g("groupSelectionAdornmentTemplate",x,a))}},linkSelectionAdornmentTemplate:{get:function(){return this.Kt},set:function(a){var x=this.Kt;x!==a&&(this.Kt=a,this.g("linkSelectionAdornmentTemplate",x,a))}},highlighteds:{get:function(){return this.nw}},isModified:{get:function(){var a=this.undoManager;return a.isEnabled?a.currentTransaction!==null?!0:this.rn&&this.Ce!==a.historyIndex:this.rn},set:function(a){if(this.rn!==a){this.rn=a;var x=this.undoManager;!a&&x.isEnabled&&(this.Ce=x.historyIndex),a||J1(this)}}},model:{get:function(){return this.cc},set:function(a){var x=this.cc;if(x!==a){this.currentTool.doCancel(),x&&x.undoManager!==a.undoManager&&x.undoManager.isInTransaction&&hn("Do not replace a Diagram.model while a transaction is in progress."),this.animationManager.Cc(!0);var b=pC(this,!0);this.hf=!1,this.fn=!0,this.Ce=-2,this.kg=!1;var te=this.vb;this.vb=!0,ua(this.animationManager,"Model"),x&&(this.pf!==null&&this.pf.each(function(oe){return x.ik(oe)}),x.ik(this.Oc)),this.cc=a,this.partManager=dx(this.cc.type);for(var re=0;re<b.length;re++)this.add(b[re]);a.Pe(this.Hb),this.partManager.addAllModeledParts(),a.ik(this.Hb),a.Pe(this.Oc),this.pf!==null&&this.pf.each(function(oe){return a.Pe(oe)}),this.vb=te,this.Ya(),this.vb||this.N(),x&&a.undoManager.copyProperties(x.undoManager)}}},aa:{get:function(){return this.rw},set:function(a){this.rw=a}},As:{get:function(){return this.sy}},skipsModelSourceBindings:{get:function(){return this.Iw},set:function(a){this.Iw=a}},Ns:{get:function(){return this.ou},set:function(a){this.ou=a}},nodeTemplate:{get:function(){return this.Lg.I("")},set:function(a){var x=this.Lg.I("");x!==a&&(this.Lg.add("",a),this.g("nodeTemplate",x,a),this.undoManager.isUndoingRedoing||this.Wd())}},nodeTemplateMap:{get:function(){return this.Lg},set:function(a){var x=this.Lg;x!==a&&(this.Lg=a,this.g("nodeTemplateMap",x,a),this.undoManager.isUndoingRedoing||this.Wd())}},groupTemplate:{get:function(){return this.Yi.I("")},set:function(a){var x=this.Yi.I("");x!==a&&(this.Yi.add("",a),this.g("groupTemplate",x,a),this.undoManager.isUndoingRedoing||this.Wd())}},groupTemplateMap:{get:function(){return this.Yi},set:function(a){var x=this.Yi;x!==a&&(this.Yi=a,this.g("groupTemplateMap",x,a),this.undoManager.isUndoingRedoing||this.Wd())}},linkTemplate:{get:function(){return this.Kh.I("")},set:function(a){var x=this.Kh.I("");x!==a&&(this.Kh.add("",a),this.g("linkTemplate",x,a),this.undoManager.isUndoingRedoing||this.Wd())}},linkTemplateMap:{get:function(){return this.Kh},set:function(a){var x=this.Kh;x!==a&&(this.Kh=a,this.g("linkTemplateMap",x,a),this.undoManager.isUndoingRedoing||this.Wd())}},isMouseCaptured:{get:function(){return this.qw},set:function(a){var x=this.ta;x!==null&&(x=x.Oa,x instanceof SVGElement||(a?(this.lastInput.bubbles=!1,this.removeEventListener(x,"pointermove",this.dk,!1),this.removeEventListener(x,"pointerdown",this.ui,!1),this.removeEventListener(x,"pointerup",this.fk,!1),this.removeEventListener(x,"pointerout",this.ek,!1),this.removeEventListener(x,"pointercancel",this.ck,!1),this.addEventListener(ji,"pointermove",this.dk,!0),this.addEventListener(ji,"pointerdown",this.ui,!0),this.addEventListener(ji,"pointerup",this.fk,!0),this.addEventListener(ji,"pointerout",this.ek,!0),this.addEventListener(ji,"pointercancel",this.ck,!0),this.removeEventListener(x,"wheel",this.$j,!1),this.addEventListener(ji,"wheel",this.$j,!0),this.addEventListener(ji,"selectstart",this.preventDefault,!1)):(this.removeEventListener(ji,"pointermove",this.dk,!0),this.removeEventListener(ji,"pointerdown",this.ui,!0),this.removeEventListener(ji,"pointerup",this.fk,!0),this.removeEventListener(ji,"pointerout",this.ek,!0),this.removeEventListener(ji,"pointercancel",this.ck,!0),this.addEventListener(x,"pointermove",this.dk,!1),this.addEventListener(x,"pointerdown",this.ui,!1),this.addEventListener(x,"pointerup",this.fk,!1),this.addEventListener(x,"pointerout",this.ek,!1),this.addEventListener(x,"pointercancel",this.ck,!1),this.removeEventListener(ji,"wheel",this.$j,!0),this.removeEventListener(ji,"selectstart",this.preventDefault,!1),this.addEventListener(x,"wheel",this.$j,!1)),this.qw=a))}},position:{get:function(){return this.pa},set:function(a){var x=it.alloc().assign(this.pa);if(!x.D(a)){var b=this.viewportBounds.copy();this.pa.assign(a),Ds(this.animationManager,x,this.pa),this.vb||this.ta===null&&!this.wo.w()?Xp(this):(this.vb=!0,a=this.scale,wS(this,this.Sp,this.Aa/a,this.ya/a,this.zk,!1),this.vb=!1),this.vb||this.onViewportBoundsChanged(b,this.viewportBounds,this.Ca,!1)}it.free(x)}},initialPosition:{get:function(){return this.zt},set:function(a){this.zt.D(a)||(this.zt=a.J())}},initialScale:{get:function(){return this.At},set:function(a){this.At!==a&&(this.At=a)}},grid:{get:function(){return this.fe===null&&(this.fe=Qb(this)),this.fe},set:function(a){var x=this.fe;if(x!==a){x===null&&(x=this.fe=Qb(this)),a.type!==Pi.Grid&&hn("Diagram.grid must be a Panel of type Panel.Grid");var b=x.panel;b!==null&&b.remove(x),this.fe=a,a.name="GRID",b!==null&&b.add(a),Ng(this),this.N(),this.g("grid",x,a)}}},viewportBounds:{get:function(){return this.Rw}},viewSize:{get:function(){return this.wo},set:function(a){var x=this.viewSize;x.D(a)||(this.wo=a=a.J(),this.ya=this.Aa=0,a.w()?(this.Aa=a.width,this.ya=a.height):this.Ka!==null&&(this.Aa=this.Ka.clientWidth||1,this.ya=this.Ka.clientHeight||1),Xp(this),this.Ya(),this.g("viewSize",x,a),this.redraw())}},fixedBounds:{get:function(){return this.ut},set:function(a){var x=this.ut;x.D(a)||(a.width!==-1/0&&a.height!==1/0&&a.height!==-1/0||hn("fixedBounds width/height must not be Infinity"),this.ut=a=a.J(),this.Ya(),this.g("fixedBounds",x,a))}},scrollMargin:{get:function(){return this.rj},set:function(a){typeof a=="number"&&(a=new yr(a));var x=this.rj;x.D(a)||(this.rj=a=a.J(),this.g("scrollMargin",x,a),this.hk())}},scrollMode:{get:function(){return this.sj},set:function(a){var x=this.sj;x!==a&&(this.sj=a,a===cg&&Gp(this,!1),this.g("scrollMode",x,a),this.Ee=!0,this.N())}},scrollsPageOnFocus:{get:function(){return this.nu},set:function(a){var x=this.nu;x!==a&&(this.nu=a,this.g("scrollsPageOnFocus",x,a))}},positionComputation:{get:function(){return this.Zt},set:function(a){var x=this.Zt;x!==a&&(this.Zt=a,Gp(this,!1),this.g("positionComputation",x,a))}},scaleComputation:{get:function(){return this.fu},set:function(a){var x=this.fu;x!==a&&(this.fu=a,ES(this,this.scale,this.scale),this.g("scaleComputation",x,a))}},documentBounds:{get:function(){return this.Sp}},isVirtualized:{get:function(){return this.It},set:function(a){var x=this.It;x!==a&&(this.It=a,this.g("isVirtualized",x,a))}},scale:{get:function(){return this.Ca},set:function(a){var x=this.Ca;x!==a&&ES(this,x,a)}},defaultScale:{get:function(){return this.Pp},set:function(a){this.Pp=a}},autoScale:{get:function(){return this.yh},set:function(a){var x=this.yh;x!==a&&(this.yh=a,this.g("autoScale",x,a),a!==sd&&Gp(this,!1))}},initialAutoScale:{get:function(){return this.Fg},set:function(a){var x=this.Fg;x!==a&&(this.Fg=a,this.g("initialAutoScale",x,a))}},initialViewportSpot:{get:function(){return this.Bt},set:function(a){var x=this.Bt;x!==a&&(a.sb()||hn("initialViewportSpot must be a specific Spot: "+a),this.Bt=a,this.g("initialViewportSpot",x,a))}},initialDocumentSpot:{get:function(){return this.yt},set:function(a){var x=this.yt;x!==a&&(a.sb()||hn("initialViewportSpot must be a specific Spot: "+a),this.yt=a,this.g("initialDocumentSpot",x,a))}},minScale:{get:function(){return this.Ot},set:function(a){var x=this.Ot;x!==a&&(0<a?(this.Ot=a,this.g("minScale",x,a),a>this.scale&&(this.scale=a)):Xo(a,"> 0",wn,"minScale"))}},maxScale:{get:function(){return this.Mt},set:function(a){var x=this.Mt;x!==a&&(0<a?(this.Mt=a,this.g("maxScale",x,a),a<this.scale&&(this.scale=a)):Xo(a,"> 0",wn,"maxScale"))}},zoomPoint:{get:function(){return this.zu},set:function(a){this.zu.D(a)||(this.zu=a=a.J())}},contentAlignment:{get:function(){return this.zk},set:function(a){var x=this.zk;x.D(a)||(this.zk=a=a.J(),this.g("contentAlignment",x,a),Gp(this,!1))}},initialContentAlignment:{get:function(){return this.pq},set:function(a){var x=this.pq;x.D(a)||(this.pq=a=a.J(),this.g("initialContentAlignment",x,a))}},padding:{get:function(){return this.yb},set:function(a){typeof a=="number"&&(a=new yr(a));var x=this.yb;x.D(a)||(this.yb=a=a.J(),this.Ya(),this.g("padding",x,a))}},partManager:{get:function(){return this.Pc},set:function(a){var x=this.Pc;x!==a&&(a.diagram!==null&&hn("Cannot share PartManagers between Diagrams: "+a.toString()),x&&x.Xe(null),this.Pc=a,a.Xe(this))}},nodes:{get:function(){return this.partManager.nodes.iterator}},links:{get:function(){return this.partManager.links.iterator}},parts:{get:function(){return this.partManager.parts.iterator}},layout:{get:function(){return this.Sc},set:function(a){var x=this.Sc;x!==a&&(this.Sc=a,a.diagram=this,a.group=null,this.xh=!0,this.g("layout",x,a),this.$b())}},isTreePathToChildren:{get:function(){return this.Ht},set:function(a){var x=this.Ht;if(x!==a&&(this.Ht=a,this.g("isTreePathToChildren",x,a),!this.undoManager.isUndoingRedoing))for(a=this.nodes;a.next();)Fx(a.value)}},treeCollapsePolicy:{get:function(){return this.uu},set:function(a){var x=this.uu;x!==a&&(a!==jf&&a!==xc&&a!==eA&&hn("Unknown Diagram.treeCollapsePolicy: "+a),this.uu=a,this.g("treeCollapsePolicy",x,a))}},Ue:{get:function(){return this.pw},set:function(a){this.pw=a}},avoidanceCellSize:{get:function(){return this.aw},set:function(a){this.Xh=null,this.aw=new Dt(Math.max(1,a.width),Math.max(1,a.height))}},avoidanceLimit:{get:function(){return this.bw},set:function(a){this.bw=Math.max(1,a)}},autoScrollInterval:{get:function(){return this.vp},set:function(a){var x=this.vp;x!==a&&(this.vp=a,this.g("autoScrollInterval",x,a))}},autoScrollRegion:{get:function(){return this.xp},set:function(a){typeof a=="number"&&(a=new yr(a));var x=this.xp;x.D(a)||(this.xp=a=a.J(),this.Ya(),this.g("autoScrollRegion",x,a))}}}),pn.Object.defineProperties(wn,{licenseKey:{get:function(){return rw.jc()},set:function(a){rw.add(a.replace(/\s/g,""))}},version:{get:function(){return gx}}}),wn.prototype.makeImageData=wn.prototype.Jx,wn.prototype.makeImage=wn.prototype.Wz,wn.prototype.cacheGroupExternalLinks=wn.prototype.Fu,wn.prototype.addRenderer=wn.prototype.bs,wn.prototype.makeSVG=wn.prototype.av,wn.prototype.makeSvg=wn.prototype.Cs,wn.prototype.stopAutoScroll=wn.prototype.ug,wn.prototype.doAutoScroll=wn.prototype.gs,wn.prototype.isUnoccupied=wn.prototype.Yj,wn.prototype.raiseDiagramEvent=wn.prototype.R,wn.prototype.removeDiagramListener=wn.prototype.am,wn.prototype.addDiagramListener=wn.prototype.Bj,wn.prototype.findTreeRoots=wn.prototype.yz,wn.prototype.layoutDiagram=wn.prototype.Uz,wn.prototype.findTopLevelGroups=wn.prototype.qz,wn.prototype.findTopLevelNodesAndLinks=wn.prototype.rz,wn.prototype.ensureBounds=wn.prototype.Va,wn.prototype.findLinksByExample=wn.prototype.ls,wn.prototype.findNodesByExample=wn.prototype.ms,wn.prototype.findLinkForData=wn.prototype.Kc,wn.prototype.findNodeForData=wn.prototype.ii,wn.prototype.findPartForData=wn.prototype.Lc,wn.prototype.findLinkForKey=wn.prototype.findLinkForKey,wn.prototype.findNodeForKey=wn.prototype.Vb,wn.prototype.findPartForKey=wn.prototype.findPartForKey,wn.prototype.rebuildParts=wn.prototype.Wd,wn.prototype.transformViewToDoc=wn.prototype.Ps,wn.prototype.transformRectDocToView=wn.prototype.zA,wn.prototype.transformDocToView=wn.prototype.op,wn.prototype.centerRect=wn.prototype.es,wn.prototype.scrollToRect=wn.prototype.tv,wn.prototype.scroll=wn.prototype.scroll,wn.prototype.highlightCollection=wn.prototype.Jz,wn.prototype.highlight=wn.prototype.Iz,wn.prototype.selectCollection=wn.prototype.rA,wn.prototype.select=wn.prototype.select,wn.prototype.updateAllRelationshipsFromData=wn.prototype.rp,wn.prototype.updateAllTargetBindings=wn.prototype.updateAllTargetBindings,wn.prototype.commit=wn.prototype.commit,wn.prototype.rollbackTransaction=wn.prototype.Kf,wn.prototype.commitTransaction=wn.prototype.eb,wn.prototype.startTransaction=wn.prototype.Ea,wn.prototype.raiseChanged=wn.prototype.g,wn.prototype.raiseChangedEvent=wn.prototype.cb,wn.prototype.removeChangedListener=wn.prototype.ik,wn.prototype.addChangedListener=wn.prototype.Pe,wn.prototype.removeModelChangedListener=wn.prototype.mA,wn.prototype.addModelChangedListener=wn.prototype.Yw,wn.prototype.findLayer=wn.prototype.Qj,wn.prototype.removeLayer=wn.prototype.kA,wn.prototype.addLayerAfter=wn.prototype.Cy,wn.prototype.addLayerBefore=wn.prototype.Ww,wn.prototype.addLayer=wn.prototype.Al,wn.prototype.moveParts=wn.prototype.moveParts,wn.prototype.copyParts=wn.prototype.Kj,wn.prototype.removeParts=wn.prototype.Is,wn.prototype.remove=wn.prototype.remove,wn.prototype.add=wn.prototype.add,wn.prototype.clearDelayedGeometries=wn.prototype.bx,wn.prototype.setProperties=wn.prototype.nm,wn.prototype.attach=wn.prototype.Du,wn.prototype.set=wn.prototype.set,wn.prototype.resetInputOptions=wn.prototype.Sx,wn.prototype.setInputOption=wn.prototype.sA,wn.prototype.getInputOption=wn.prototype.Ql,wn.prototype.resetRenderingHints=wn.prototype.Tx,wn.prototype.setRenderingHint=wn.prototype.Xx,wn.prototype.getRenderingHint=wn.prototype.Gf,wn.prototype.maybeUpdate=wn.prototype.bd,wn.prototype.requestUpdate=wn.prototype.$b,wn.prototype.delayInitialization=wn.prototype.Xy,wn.prototype.isUpdateRequested=wn.prototype.Pz,wn.prototype.invalidateDocumentBounds=wn.prototype.Ya,wn.prototype.findObjectsNear=wn.prototype.og,wn.prototype.findPartsNear=wn.prototype.mz,wn.prototype.findObjectsIn=wn.prototype.Cf,wn.prototype.findPartsIn=wn.prototype.ux,wn.prototype.findObjectsAt=wn.prototype.ji,wn.prototype.findPartsAt=wn.prototype.lz,wn.prototype.findObjectAt=wn.prototype.ic,wn.prototype.findPartAt=wn.prototype.Ol,wn.prototype.focusObject=wn.prototype.zz,wn.prototype.alignDocument=wn.prototype.Jy,wn.prototype.zoomToRect=wn.prototype.BA,wn.prototype.zoomToFit=wn.prototype.zoomToFit,wn.prototype.diagramScroll=wn.prototype.kx,wn.prototype.focus=wn.prototype.focus;var LS=new kn,SC=null,zu=ji.document!==void 0,$y=null,Xv="",sd=new Ni(wn,"None",0),Vf=new Ni(wn,"Uniform",1),Wv=new Ni(wn,"UniformToFill",2),px=new Ni(wn,"CycleAll",10),IS=new Ni(wn,"CycleNotDirected",11),tw=new Ni(wn,"CycleNotDirectedFast",12),nw=new Ni(wn,"CycleNotUndirected",13),kS=new Ni(wn,"CycleDestinationTree",14),iw=new Ni(wn,"CycleSourceTree",15),cg=new Ni(wn,"DocumentScroll",1),ad=new Ni(wn,"InfiniteScroll",2),jf=new Ni(wn,"TreeParentCollapsed",21),xc=new Ni(wn,"AllParentsCollapsed",22),eA=new Ni(wn,"AnyParentsCollapsed",23),rw=new Zi,gx="2.3.10",tA="image",Qv=null,PC=!1;function gc(){if(zu){var a=ji.document.createElement("canvas"),x=a.getContext("2d"),b=zi("7ca11abfd022028846");x[b]=zi("398c3597c01238");for(var te=["5da73c80a36455d7038e4972187c3cae51fd22",co.Dx+"4ae6247590da4bb21c324ba3a84e385776",Br.xF+"fb236cdfda5de14c134ba1a95a2d4c7cc6f93c1387",_t.za],re=1;5>re;re++)x[zi("7ca11abfd7330390")](zi(te[re-1]),10,15*re);for(x[b]=zi("39f046ebb36e4b"),b=1;5>b;b++)x[zi("7ca11abfd7330390")](zi(te[b-1]),10,15*b);(te.length!==4||te[0][0]!=="5"||te[3][0]!=="7")&&(Br.prototype.Cd=Br.prototype.Eu),Qv=a}}wn.className="Diagram",wn.fromDiv=function(a){var x=a;return typeof a=="string"&&(x=ji.document.getElementById(a)),x instanceof HTMLDivElement&&x.H instanceof wn?x.H:null},wn.inherit=function(a,x){function b(){}if(Object.getPrototypeOf(a).prototype)throw Error(`Used go.Diagram.inherit defining already defined class
|
|
`+a);b.prototype=x.prototype,a.prototype=new b,a.prototype.constructor=a},wn.useDOM=function(a){zu=a?ji.document!==void 0:!1},wn.isUsingDOM=function(){return zu},wn.None=sd,wn.Uniform=Vf,wn.UniformToFill=Wv,wn.CycleAll=px,wn.CycleNotDirected=IS,wn.CycleNotDirectedFast=tw,wn.CycleNotUndirected=nw,wn.CycleDestinationTree=kS,wn.CycleSourceTree=iw,wn.DocumentScroll=cg,wn.InfiniteScroll=ad,wn.TreeParentCollapsed=jf,wn.AllParentsCollapsed=xc,wn.AnyParentsCollapsed=eA;function hp(){this.wy=null,this.j="zz@orderNum",this._tk==="63ad05bbe23a1786468a4c741b6d2"?this.Rc=this.j=!0:this.Rc=null}function wc(a,x){if(x.ib.setTransform(x.Mb,0,0,x.Mb,0,0),x.ib.yc(),a.Rc===null)e:{x="f";var b=ji[zi("76a715b2f73f148a")][zi("72ba13b5")]||"";if(a.Rc=!0,zu){var te=wn[zi("76a115b6ed251eaf4692")];if(te)for(var re=rw.iterator;re.next()&&(te=re.value,te=zi(te).split(zi("39e9")),!(6>te.length));){var oe=zi(te[1]).split(".");if(te[4]!=="7da71ca0")break;var le=zi(co[zi("6cae19")]).split(".");if(oe[0]>le[0]||oe[0]===le[0]&&oe[1]>=le[1]){var fe=ji[zi("74a900bae4370f8b51")][zi("6fbb13a1c2311e8a57")].toLowerCase();if(le=fe[zi("73a612b6fb191d")](zi("3aad1ab6e022098b4dc4")),oe=zi(te[2]),-1<le&&(fe=fe[zi("73a612b6fb191d")](oe.toLowerCase()+"/"),a.Rc=!(-1<fe&&fe<le),!a.Rc))break;for(le=b[zi("76ad18b4f73e")],fe=b[zi("73a612b6fb191d")](zi("35e7"))+2;fe<le;fe++)x+=b[fe];if(le=x[zi("73a612b6fb191d")](oe),0>le&&oe!==zi("7da71ca0ad381e90")&&(le=x[zi("73a612b6fb191d")](zi("76a715b2ef3e149757"))),0>le&&(le=x[zi("73a612b6fb191d")](zi("76a715b2ef3e149757"))),0>le&&(le=x[zi("73a612b6fb191d")](zi("2bfa41fdb3784bca12"))),0>le&&(le=b[zi("73a612b6fb191d")](zi("7baa19a6f76c1988428554"))),a.Rc=!(0<=le&&le<x[zi("73a612b6fb191d")](zi("35"))||x[zi("73a612b6fb191d")](zi("35"))===-1),!a.Rc||b[zi("73a612b6fb191d")](zi("7fb002b6ed25128b4da25b2e"))&&(a.Rc=!(-1<b[zi("73a612b6fb191d")](oe)),!a.Rc)||(le=ji[zi("76a715b2f73f148a")][zi("69ad17a1e03e")],fe=le[zi("73a612b6fb191d")](zi("7fb002b6ed25128b4da25b2e")),-1<fe&&(a.Rc=!(le[zi("73a612b6fb191d")](oe)>fe),!a.Rc)))break;if(oe[0]==="#"){le=ji.document.createElement("div");for(var ge=te[0].replace(/[A-Za-z]/g,"");4>ge.length;)ge+="9";if(fe=ge,ge=ge.substr(ge.length-4),te="",te+=["gsh","gsf"][parseInt(ge.substr(0,1),10)%2],te+=["Header","Background","Display","Feedback"][parseInt(ge.substr(0,1),10)%4],le[zi("79a417a0f0181a8946")]=te,ji.document[zi("78a712aa")]){ji.document[zi("78a712aa")][zi("7bb806b6ed32388c4a875b")](le),ge=ji.getComputedStyle(le).getPropertyValue(zi("78a704b7e62456904c9b12701b6532a8"));var ye=ji.getComputedStyle(le).getPropertyValue(zi("75b817b0ea2202"));if(ji.document[zi("78a712aa")][zi("68ad1bbcf533388c4a875b")](le),ge){if(le=ji[zi("77a902b0eb1b1e804a8a")],ye==="0."+parseInt(fe,10)%100||ge.indexOf(parseInt(oe[1]+oe[2],16))!==-1&&ge.indexOf(parseInt(oe[3]+oe[4],16))!==-1){a.Rc=!1;break}else if(le&&le(zi("32ae19a1e0331fc94084537c067a67fa59f1386b89d006")).matches)for(te="."+te,oe=0;oe<document.styleSheets.length;oe++){le=document.styleSheets[oe].rules||document.styleSheets[oe].cssRules;for(var we in le)if(te===le[we].selectorText){a.Rc=!1;break e}}}}else a.Rc=null,a.Rc=!1}}}else{for(we=b[zi("76ad18b4f73e")],re=b[zi("73a612b6fb191d")](zi("35e7"))+2;re<we;re++)x+=b[re];b=x[zi("73a612b6fb191d")](zi("7da71ca0ad381e90")),a.Rc=!(0<=b&&b<x[zi("73a612b6fb191d")](zi("35")))}}}return 0<a.Rc&&a!==a.wy}hp.className="DiagramHelper";function Fh(a){this.j=a===void 0?new it:a,this.o=new it}pn.Object.defineProperties(Fh.prototype,{point:{get:function(){return this.j},set:function(a){this.j=a}},shifted:{get:function(){return this.o},set:function(a){this.o=a}}});var of="DraggingInfo";Fh.className="DraggingInfo";function de(a,x,b){this.node=a,this.info=x,this.Su=b}de.className="DraggingNodeInfoPair";function me(){this.reset()}me.prototype.reset=function(){this.isGridSnapEnabled=!1,this.isGridSnapRealtime=!0,this.gridSnapCellSize=new Dt(NaN,NaN).freeze(),this.gridSnapCellSpot=Is,this.gridSnapOrigin=new it(NaN,NaN).freeze(),this.groupsSnapMembers=this.dragsTree=this.dragsLink=!1,this.dragsMembers=this.groupsAlwaysMove=!0},me.className="DraggingOptions";function Ee(a,x){if(typeof a=="string"||ji.Element&&a instanceof Element)var b=wn.call(this,a)||this;else b=wn.call(this)||this,x=a;return Pe(b),x&&b.nm(x),b}vn(Ee,wn);function Pe(a){a.allowDragOut=!0,a.allowMove=!1,a.isReadOnly=!0,a.contentAlignment=Pa,a.layout=new Vc}Ee.prototype.reset=function(){wn.prototype.reset.call(this),Pe(this)},Ee.className="Palette";function Ne(a,x){if(typeof a=="string"||ji.Element&&a instanceof Element)var b=wn.call(this,a)||this;else b=wn.call(this)||this,x=a;var te=b;b.animationManager.isEnabled=!1,b.vb=!0,b.V=null,b.mn=!1,b.nn=!1,b.F=!0,b.u=!0,b.ia=0,b.o=!1,b.ql=null,b.Xx("drawShadows",!1),a=new mo;var re=new xs;return re.stroke="magenta",re.strokeWidth=2,re.fill="transparent",re.name="BOXSHAPE",a.selectable=!0,a.selectionAdorned=!1,a.selectionObjectName="BOXSHAPE",a.locationObjectName="BOXSHAPE",a.resizeObjectName="BOXSHAPE",a.cursor="move",a.add(re),b.j=a,b.allowCopy=!1,b.allowDelete=!1,b.allowSelect=!0,b.autoScrollRegion=new yr(0,0,0,0),b.pa.h(0,0),b.toolManager.gb("Dragging",new Ct,b.toolManager.mouseMoveTools),b.click=function(){var oe=te.observed;if(oe!==null){var le=oe.viewportBounds,fe=te.lastInput.documentPoint;oe.position=new it(fe.x-le.width/2,fe.y-le.height/2)}},b.Pf=function(){te.Ya(),at(te)},b.Xd=function(){te.observed!==null&&(te.Ya(),te.N())},b.Ha=function(){1>te.updateDelay?te.N():te.o||(te.o=!0,setTimeout(function(){return te.redraw()},te.updateDelay))},b.Of=function(){te.observed!==null&&at(te)},b.autoScale=Vf,b.vb=!1,x&&Object.assign(b,x),b}vn(Ne,wn),Ne.prototype.computePixelRatio=function(){return 1},Ne.prototype.redraw=function(){if(this.o&&1<=this.updateDelay){this.o=!1;var a=this.ta,x=this.ib;if(a!==null&&x!==null){if(hx(this),this.ql===null){var b=new xh(null);b.width=a.width,b.height=a.height,this.ql=b}try{this.ta=this.ql,this.ib=this.ta.context,this.ib.Vc(!0),this.ib.setTransform(1,0,0,1,0,0),this.ib.clearRect(0,0,this.ta.width,this.ta.height),Xe(this)}finally{this.ta=a,this.ib=x}}}wn.prototype.redraw.call(this)},Ne.prototype.gc=function(){if(this.Ka===null&&hn("No div specified"),this.ta===null&&hn("No canvas specified"),!(this.ta instanceof qu)&&(LC(this.box),this.Fc)){var a=this.observed;if(a!==null&&!a.animationManager.defaultAnimation.isAnimating&&a.pi){hx(this);var x=this.ta;a=this.ib,a.Vc(!0),a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,x.width,x.height),1>this.updateDelay?Xe(this):this.ql!==null&&(a.drawImage(this.ql.Oa,0,0),x=this.Ab,x.reset(),this.scale!==1&&x.scale(this.scale),this.position.x===0&&this.position.y===0||x.translate(-this.position.x,-this.position.y),a.scale(this.Mb,this.Mb),a.transform(x.m11,x.m12,x.m21,x.m22,x.dx,x.dy),a.yc()),x=this.Wa.s;for(var b=x.length,te=0;te<b;te++)x[te].gc(a,this);this.Fc=this.vd=!1}}};function Xe(a){var x=a.observed;if(x!==null){var b=a.drawsTemporaryLayers,te=a.drawsGrid&&b,re=x.grid;te&&re!==null&&re.visible&&!isNaN(re.width)&&!isNaN(re.height)&&(re=Yt.alloc().assign(a.viewportBounds).ed(x.viewportBounds),Ng(x,re),Yt.free(re),Nh(x));var oe=a.Ab;oe.reset(),a.scale!==1&&oe.scale(a.scale),a.position.x===0&&a.position.y===0||oe.translate(-a.position.x,-a.position.y),re=a.ib,re.scale(a.Mb,a.Mb),re.transform(oe.m11,oe.m12,oe.m21,oe.m22,oe.dx,oe.dy),re.yc(),x=x.Wa.s,oe=x.length;for(var le=0;le<oe;le++){var fe=x[le],ge=a;if(fe.visible&&fe.opacity!==0){var ye=fe.diagram.grid.part;if(!b&&fe.isTemporary)te&&ye.layer===fe&&(fe=j0(fe,re),ye.gc(re,ge),re.globalAlpha=fe);else{for(var we=j0(fe,re),be=ge.scale,ke=Yt.alloc(),Ue=fe.Pa.s,Ve=Ue.length,Ke=0;Ke<Ve;Ke++){var Pt=Ue[Ke];(te||Pt!==ye)&&fe.Oj(re,Pt,ge,null,be,ke,!1)}Yt.free(ke),re.globalAlpha=we}}}}}function at(a){var x=a.box;if(x!==null){var b=a.observed;if(b!==null){a.Fc=!0,b=b.viewportBounds;var te=x.selectionObject,re=Dt.alloc();re.h(b.width,b.height),te.desiredSize=re,Dt.free(re),a=2/a.scale,te instanceof xs&&(te.strokeWidth=a),x.location=new it(b.x-a/2,b.y-a/2),x.isSelected=!0}}}Ne.prototype.computeBounds=function(){var a=this.observed;if(a===null)return cs;var x=a.documentBounds.copy();return x.ed(a.viewportBounds),x},Ne.prototype.invalidateViewport=function(){this.Fc!==!0&&(this.Fc=!0,this.$b())},Ne.prototype.onViewportBoundsChanged=function(a,x,b,te){this.vb||(this.vd=!0,this.N(),this.Ee=!0,this.Ya(),at(this),this.fc.scale=b,this.fc.position.x=a.x,this.fc.position.y=a.y,this.fc.bounds.assign(a),this.fc.Oz=te,this.R("ViewportBoundsChanged",this.fc,a))},pn.Object.defineProperties(Ne.prototype,{observed:{get:function(){return this.V},set:function(a){var x=this.V;if(a instanceof Ne&&hn("Overview.observed Diagram may not be an Overview itself: "+a),x!==a){if(x!==null&&(this.remove(this.box),x.am("ViewportBoundsChanged",this.Pf),x.am("DocumentBoundsChanged",this.Xd),x.am("InvalidateDraw",this.Ha),x.am("AnimationFinished",this.Of)),this.V=a,a!==null&&(a.Bj("ViewportBoundsChanged",this.Pf),a.Bj("DocumentBoundsChanged",this.Xd),a.Bj("InvalidateDraw",this.Ha),a.Bj("AnimationFinished",this.Of),this.add(this.box)),this.Ya(),a===null){this.ql=null;var b=this.ta,te=this.ib;b&&te&&(te.setTransform(1,0,0,1,0,0),te.clearRect(0,0,b.width,b.height))}else this.Ha(null),at(this),this.N();this.g("observed",x,a)}}},box:{get:function(){return this.j},set:function(a){var x=this.j;x!==a&&(this.j=a,this.remove(x),this.add(this.j),at(this),this.g("box",x,a))}},drawsTemporaryLayers:{get:function(){return this.F},set:function(a){this.F!==a&&(this.F=a,this.redraw())}},drawsGrid:{get:function(){return this.u},set:function(a){this.u!==a&&(this.u=a,this.redraw())}},updateDelay:{get:function(){return this.ia},set:function(a){0>a&&(a=0),this.ia!==a&&(this.ia=a)}}}),Ne.className="Overview";function Ct(){ql.call(this),this.j=null}vn(Ct,ql),Ct.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;if(a===null||!a.allowMove||!a.allowSelect)return!1;var x=a.observed;if(x===null)return!1;var b=a.lastInput;return!b.left||a.currentTool!==this&&(!this.isBeyondDragSize()||b.isTouchEvent&&b.timestamp-a.firstInput.timestamp<this.delay)?!1:(this.findDraggablePart()===null&&(b=x.viewportBounds,this.j=new it(b.width/2,b.height/2),a=a.firstInput.documentPoint,x.position=new it(a.x-this.j.x,a.y-this.j.y)),!0)},Ct.prototype.doActivate=function(){this.j=null,ql.prototype.doActivate.call(this)},Ct.prototype.doUpdateCursor=function(){var a=this.diagram,x=a.box;x!==null&&x.cursor&&(a.currentCursor=x.cursor)},Ct.prototype.moveParts=function(){var a=this.diagram,x=a.observed;if(x!==null){var b=a.box;if(b!==null){if(this.j===null){var te=a.firstInput.documentPoint;b=b.location,this.j=new it(te.x-b.x,te.y-b.y)}a=a.lastInput.documentPoint,x.position=new it(a.x-this.j.x,a.y-this.j.y)}}},Ct.className="OverviewDraggingTool";function St(){$o(this),this.H=sm,this.Ha=this.u=this.o=!0,this.F=this.V=this.nb=this.ia=!1,this.ij=this.j=null,this.Hb=1.05,this.Jt=NaN,this.sw=null,this.Au=NaN,this.yu=cs,this.hb=!0,this.cg=null,this.ob=200}St.prototype.toString=function(){return"CommandHandler"},St.prototype.Xe=function(a){this.H=a},St.prototype.doKeyDown=function(){var a=this.diagram,x=a.lastInput,b=iu?x.meta:x.control,te=x.shift,re=x.alt,oe=x.key;!b||oe!=="C"&&oe!=="Insert"?b&&oe==="X"||te&&oe==="Del"?this.canCutSelection()&&this.cutSelection():b&&oe==="V"||te&&oe==="Insert"?this.canPasteSelection()&&this.pasteSelection():b&&oe==="Y"||re&&te&&oe==="Backspace"?this.canRedo()&&this.redo():b&&oe==="Z"||re&&oe==="Backspace"?this.canUndo()&&this.undo():oe==="Del"||oe==="Backspace"?this.canDeleteSelection()&&this.deleteSelection():b&&oe==="A"?this.canSelectAll()&&this.selectAll():oe==="Esc"?this.canStopCommand()&&this.stopCommand():oe==="Up"?a.allowVerticalScroll&&(b?a.scroll("pixel","up"):a.scroll("line","up")):oe==="Down"?a.allowVerticalScroll&&(b?a.scroll("pixel","down"):a.scroll("line","down")):oe==="Left"?a.allowHorizontalScroll&&(b?a.scroll("pixel","left"):a.scroll("line","left")):oe==="Right"?a.allowHorizontalScroll&&(b?a.scroll("pixel","right"):a.scroll("line","right")):oe==="PageUp"?te&&a.allowHorizontalScroll?a.scroll("page","left"):a.allowVerticalScroll&&a.scroll("page","up"):oe==="PageDown"?te&&a.allowHorizontalScroll?a.scroll("page","right"):a.allowVerticalScroll&&a.scroll("page","down"):oe==="Home"?b&&a.allowVerticalScroll?a.scroll("document","up"):!b&&a.allowHorizontalScroll&&a.scroll("document","left"):oe==="End"?b&&a.allowVerticalScroll?a.scroll("document","down"):!b&&a.allowHorizontalScroll&&a.scroll("document","right"):oe===" "?this.canScrollToPart()&&this.scrollToPart():oe==="Subtract"?this.canDecreaseZoom()&&this.decreaseZoom():oe==="Add"?this.canIncreaseZoom()&&this.increaseZoom():b&&oe==="0"?this.canResetZoom()&&this.resetZoom():te&&oe==="Z"?this.canZoomToFit()&&this.zoomToFit():b&&!te&&oe==="G"?this.canGroupSelection()&&this.groupSelection():b&&te&&oe==="G"?this.canUngroupSelection()&&this.ungroupSelection():oe==="F2"||x.event&&x.event.key==="F2"?this.canEditTextBlock()&&this.editTextBlock():oe==="ContextMenu"||x.event&&x.event.key==="ContextMenu"?this.canShowContextMenu()&&this.showContextMenu():x.bubbles=!0:this.canCopySelection()&&this.copySelection()},St.prototype.doKeyUp=function(){this.diagram.lastInput.bubbles=!0},St.prototype.stopCommand=function(){var a=this.diagram,x=a.currentTool;x instanceof sl&&a.allowSelect&&a.clearSelection(),x!==null&&x.doCancel()},St.prototype.canStopCommand=function(){return!0},St.prototype.selectAll=function(){var a=this.diagram;a.N();try{a.currentCursor="wait",a.R("ChangingSelection",a.selection);for(var x=a.parts;x.next();)x.value.isSelected=!0;for(var b=a.nodes;b.next();)b.value.isSelected=!0;for(var te=a.links;te.next();)te.value.isSelected=!0}finally{a.R("ChangedSelection",a.selection),a.currentCursor=""}},St.prototype.canSelectAll=function(){return this.diagram.allowSelect},St.prototype.deleteSelection=function(){var a=this.diagram;try{a.currentCursor="wait",a.R("ChangingSelection",a.selection),a.Ea("Delete"),a.R("SelectionDeleting",a.selection);for(var x=new Yi,b=a.selection.iterator;b.next();)Sp(x,b.value,!0,this.deletesTree?1/0:0,this.deletesConnectedLinks?null:!1,function(te){return te.canDelete()});a.Is(x,!0),a.R("SelectionDeleted",x)}finally{a.eb("Delete"),a.R("ChangedSelection",a.selection),a.currentCursor=""}},St.prototype.canDeleteSelection=function(){var a=this.diagram;return!(a.isReadOnly||a.isModelReadOnly||!a.allowDelete||a.selection.count===0)},St.prototype.copySelection=function(){var a=this.diagram,x=new Yi;for(a=a.selection.iterator;a.next();)Sp(x,a.value,!0,this.copiesTree?1/0:0,this.copiesConnectedLinks,function(b){return b.canCopy()});this.copyToClipboard(x)},St.prototype.canCopySelection=function(){var a=this.diagram;return!!(a.allowCopy&&a.allowClipboard&&a.selection.count!==0)},St.prototype.cutSelection=function(){this.copySelection(),this.deleteSelection()},St.prototype.canCutSelection=function(){var a=this.diagram;return!!(!a.isReadOnly&&!a.isModelReadOnly&&a.allowCopy&&a.allowDelete&&a.allowClipboard&&a.selection.count!==0)},St.prototype.copyToClipboard=function(a){var x=this.diagram,b=null;if(a===null)$y=null,Xv="";else{b=x.model;var te=!1,re=!1,oe=null;try{b.Tl()&&(te=b.Jj,b.Jj=this.copiesParentKey),b.Wj()&&(re=b.Ij,b.Ij=this.copiesGroupKey),oe=x.Kj(a,null,!0)}finally{b.Tl()&&(b.Jj=te),b.Wj()&&(b.Ij=re),b=new Zi,b.addAll(oe),$y=b,Xv=x.model.dataFormat}}x.R("ClipboardChanged",b)},St.prototype.pasteFromClipboard=function(){var a=new Yi,x=$y;if(x===null)return a;var b=this.diagram;if(Xv!==b.model.dataFormat)return a;var te=b.model,re=!1,oe=!1,le=null;try{te.Tl()&&(re=te.Jj,te.Jj=this.copiesParentKey),te.Wj()&&(oe=te.Ij,te.Ij=this.copiesGroupKey),le=b.Kj(x,b,!1)}finally{for(te.Tl()&&(te.Jj=re),te.Wj()&&(te.Ij=oe),x=le.iterator;x.next();)b=x.value,te=x.key,b.location.w()||(te.location.w()?b.location=te.location:!b.position.w()&&te.position.w()&&(b.position=te.position)),a.add(b)}return a},St.prototype.pasteSelection=function(a){a===void 0&&(a=null);var x=this.diagram;try{x.currentCursor="wait",x.R("ChangingSelection",x.selection),x.Ea("Paste");var b=this.pasteFromClipboard();0<b.count&&x.clearSelection(!0);for(var te=b.iterator;te.next();)te.value.isSelected=!0;if(a!==null){var re=x.computePartsBounds(x.selection);if(re.w()){var oe=this.computeEffectiveCollection(x.selection,x.Wm);ug(x,oe,new it(a.x-re.centerX,a.y-re.centerY),x.Wm,!1)}}x.R("ClipboardPasted",b)}finally{x.eb("Paste"),x.R("ChangedSelection",x.selection),x.currentCursor=""}},St.prototype.canPasteSelection=function(){var a=this.diagram;return!(a.isReadOnly||a.isModelReadOnly||!a.allowInsert||!a.allowClipboard||$y===null||$y.count===0||Xv!==a.model.dataFormat)},St.prototype.undo=function(){this.diagram.undoManager.undo()},St.prototype.canUndo=function(){var a=this.diagram;return a.isReadOnly||a.isModelReadOnly?!1:a.allowUndo&&a.undoManager.canUndo()},St.prototype.redo=function(){this.diagram.undoManager.redo()},St.prototype.canRedo=function(){var a=this.diagram;return a.isReadOnly||a.isModelReadOnly?!1:a.allowUndo&&a.undoManager.canRedo()},St.prototype.decreaseZoom=function(a){a===void 0&&(a=1/this.zoomFactor);var x=this.diagram;x.autoScale===sd&&(a=x.scale*a,a<x.minScale||a>x.maxScale||(x.scale=a))},St.prototype.canDecreaseZoom=function(a){a===void 0&&(a=1/this.zoomFactor);var x=this.diagram;return x.autoScale!==sd?!1:(a=x.scale*a,a<x.minScale||a>x.maxScale?!1:x.allowZoom)},St.prototype.increaseZoom=function(a){a===void 0&&(a=this.zoomFactor);var x=this.diagram;x.autoScale===sd&&(a=x.scale*a,a<x.minScale||a>x.maxScale||(x.scale=a))},St.prototype.canIncreaseZoom=function(a){a===void 0&&(a=this.zoomFactor);var x=this.diagram;return x.autoScale!==sd?!1:(a=x.scale*a,a<x.minScale||a>x.maxScale?!1:x.allowZoom)},St.prototype.resetZoom=function(a){a===void 0&&(a=this.defaultScale);var x=this.diagram;a<x.minScale||a>x.maxScale||(x.scale=a)},St.prototype.canResetZoom=function(a){a===void 0&&(a=this.defaultScale);var x=this.diagram;return a<x.minScale||a>x.maxScale?!1:x.allowZoom},St.prototype.zoomToFit=function(){var a=this.diagram,x=a.animationManager;x.Cc(),a.redraw();var b=a.position,te=a.scale;ua(x,"Zoom To Fit"),this.isZoomToFitRestoreEnabled&&te===this.Au&&!isNaN(this.Jt)&&a.documentBounds.D(this.yu)?(a.scale=this.Jt,a.position=this.sw,this.Au=NaN,this.yu=cs):(this.Jt=te,this.sw=b.copy(),a.zoomToFit(),this.Au=a.scale,this.yu=a.documentBounds.copy()),Ao(x)},St.prototype.canZoomToFit=function(){return this.diagram.allowZoom},St.prototype.scrollToPart=function(a){a===void 0&&(a=null);var x=this.diagram;if(x.Va(),a===null){try{this.cg!==null&&(this.cg.next()?a=this.cg.value:this.cg=null)}catch(ge){this.cg=null}a===null&&(0<x.highlighteds.count?this.cg=x.highlighteds.iterator:0<x.selection.count&&(this.cg=x.selection.iterator),this.cg!==null&&this.cg.next()&&(a=this.cg.value))}if(a!==null){var b=x.animationManager;ua(b,"Scroll To Part");var te=this.scrollToPartPause;if(0<te){var re=jt(this,a,[a]);if(re.length===1)x.Ea(),x.es(a.actualBounds),x.eb("Scroll To Part");else{var oe=function(){x.Ea();for(var ge=re.pop();0<re.length&&ge instanceof ar&&ge.isTreeExpanded&&(!(ge instanceof ts)||ge.isSubGraphExpanded);)ge=re.pop();0<re.length?(ge instanceof mo&&x.tv(ge.actualBounds),ge instanceof ar&&!ge.isTreeExpanded&&(ge.isTreeExpanded=!0),ge instanceof ts&&!ge.isSubGraphExpanded&&(ge.isSubGraphExpanded=!0)):(ge instanceof mo&&x.es(ge.actualBounds),x.am("LayoutCompleted",le)),x.eb("Scroll To Part")},le=function(){aa(oe,(b.isEnabled?b.duration:0)+te)};x.Bj("LayoutCompleted",le),oe()}}else{var fe=x.position.copy();x.es(a.actualBounds),fe.Xa(x.position)&&b.Cc()}}};function jt(a,x,b){if(x.isVisible())return b;if(x instanceof Ca)jt(a,x.adornedPart,b);else if(x instanceof Ui){var te=x.fromNode;te!==null&&jt(a,te,b),x=x.toNode,x!==null&&jt(a,x,b)}else x instanceof ar&&(te=x.labeledLink,te!==null&&jt(a,te,b),te=x.pg(),te!==null&&(te.isTreeExpanded||te.wasTreeExpanded||b.push(te),jt(a,te,b))),x=x.containingGroup,x!==null&&(x.isSubGraphExpanded||x.wasSubGraphExpanded||b.push(x),jt(a,x,b));return b}St.prototype.canScrollToPart=function(a){return a===void 0&&(a=null),a!==null&&!(a instanceof mo)?!1:(a=this.diagram,a.selection.count===0&&a.highlighteds.count===0?!1:a.allowHorizontalScroll&&a.allowVerticalScroll)},St.prototype.collapseTree=function(a){a===void 0&&(a=null);var x=this.diagram;try{x.Ea("Collapse Tree"),ua(x.animationManager,"Collapse Tree");var b=new Zi;if(a!==null&&a.isTreeExpanded)a.collapseTree(),b.add(a);else if(a===null)for(var te=x.selection.iterator;te.next();){var re=te.value;re instanceof ar&&re.isTreeExpanded&&(re.collapseTree(),b.add(re))}x.R("TreeCollapsed",b)}finally{x.eb("Collapse Tree")}},St.prototype.canCollapseTree=function(a){a===void 0&&(a=null);var x=this.diagram;if(x.isReadOnly)return!1;if(a!==null){if(!(a instanceof ar&&a.isTreeExpanded))return!1;if(0<a.Qo().count)return!0}else for(a=x.selection.iterator;a.next();)if(x=a.value,x instanceof ar&&x.isTreeExpanded&&0<x.Qo().count)return!0;return!1},St.prototype.expandTree=function(a){a===void 0&&(a=null);var x=this.diagram;try{x.Ea("Expand Tree"),ua(x.animationManager,"Expand Tree");var b=new Zi;if(a!==null&&!a.isTreeExpanded)a.expandTree(),b.add(a);else if(a===null)for(var te=x.selection.iterator;te.next();){var re=te.value;re instanceof ar&&!re.isTreeExpanded&&(re.expandTree(),b.add(re))}x.R("TreeExpanded",b)}finally{x.eb("Expand Tree")}},St.prototype.canExpandTree=function(a){a===void 0&&(a=null);var x=this.diagram;if(x.isReadOnly)return!1;if(a!==null){if(!(a instanceof ar)||a.isTreeExpanded)return!1;if(0<a.Qo().count)return!0}else for(a=x.selection.iterator;a.next();)if(x=a.value,x instanceof ar&&!x.isTreeExpanded&&0<x.Qo().count)return!0;return!1},St.prototype.groupSelection=function(){var a=this.diagram,x=a.model;if(x.Xj()){var b=this.archetypeGroupData;if(b!==null){var te=null;try{a.currentCursor="wait",a.R("ChangingSelection",a.selection),a.Ea("Group");for(var re=new Zi,oe=a.selection.iterator;oe.next();){var le=oe.value;le.Zc()&&le.canGroup()&&re.add(le)}for(var fe=new Zi,ge=re.iterator;ge.next();){var ye=ge.value;oe=!1;for(var we=re.iterator;we.next();)if(ye.Td(we.value)){oe=!0;break}oe||fe.add(ye)}if(0<fe.count){var be=fe.first().containingGroup;if(be!==null)for(;be!==null;){re=!1;for(var ke=fe.iterator;ke.next();)if(!ke.value.Td(be)){re=!0;break}if(re)be=be.containingGroup;else break}if(b instanceof ts)Yp(b),te=b.copy(),te!==null&&a.add(te);else if(x.Yu(b)){var Ue=x.copyNodeData(b);Ji(Ue)&&(x.xf(Ue),te=a.ii(Ue))}if(te!==null){be!==null&&this.isValidMember(be,te)&&(te.containingGroup=be);for(var Ve=fe.iterator;Ve.next();){var Ke=Ve.value;this.isValidMember(te,Ke)&&(Ke.containingGroup=te)}a.clearSelection(!0),te.isSelected=!0}}a.R("SelectionGrouped",te)}finally{a.eb("Group"),a.R("ChangedSelection",a.selection),a.currentCursor=""}}}},St.prototype.canGroupSelection=function(){var a=this.diagram;if(a.isReadOnly||a.isModelReadOnly||!a.allowInsert||!a.allowGroup||!a.model.Xj()||this.archetypeGroupData===null)return!1;for(a=a.selection.iterator;a.next();){var x=a.value;if(x.Zc()&&x.canGroup())return!0}return!1};function On(a){var x=ys();for(a=a.iterator;a.next();){var b=a.value;b instanceof Ui||x.push(b)}a=new Yi,b=x.length;for(var te=0;te<b;te++){for(var re=x[te],oe=!0,le=0;le<b;le++)if(re.Td(x[le])){oe=!1;break}oe&&a.add(re)}return As(x),a}St.prototype.isValidMember=function(a,x){if(x===null||a===x||x instanceof Ui)return!1;if(a!==null){if(a===x||a.Td(x))return!1;var b=a.memberValidation;if(b!==null&&!b(a,x)||a.data===null&&x.data!==null||a.data!==null&&x.data===null)return!1}return b=this.memberValidation,b!==null?b(a,x):!0},St.prototype.ungroupSelection=function(a){a===void 0&&(a=null);var x=this.diagram,b=x.model;if(b.Xj())try{x.currentCursor="wait",x.R("ChangingSelection",x.selection),x.Ea("Ungroup");var te=new Zi;if(a!==null)te.add(a);else for(var re=x.selection.iterator;re.next();){var oe=re.value;oe instanceof ts&&oe.canUngroup()&&te.add(oe)}var le=new Zi;if(0<te.count){x.clearSelection(!0);for(var fe=te.iterator;fe.next();){var ge=fe.value;ge.expandSubGraph();var ye=ge.containingGroup,we=ye!==null&&ye.data!==null?b.wa(ye.data):void 0;le.addAll(ge.memberParts);for(var be=le.iterator;be.next();){var ke=be.value;if(ke.isSelected=!0,!(ke instanceof Ui)){var Ue=ke.data;Ue!==null?b.mp(Ue,we):ke.containingGroup=ye}}x.remove(ge)}}x.R("SelectionUngrouped",te,le)}finally{x.eb("Ungroup"),x.R("ChangedSelection",x.selection),x.currentCursor=""}},St.prototype.canUngroupSelection=function(a){a===void 0&&(a=null);var x=this.diagram;if(x.isReadOnly||x.isModelReadOnly||!x.allowDelete||!x.allowUngroup||!x.model.Xj())return!1;if(a!==null){if(!(a instanceof ts))return!1;if(a.canUngroup())return!0}else for(a=x.selection.iterator;a.next();)if(x=a.value,x instanceof ts&&x.canUngroup())return!0;return!1},St.prototype.addTopLevelParts=function(a,x){var b=!0;for(a=On(a).iterator;a.next();){var te=a.value;te.containingGroup!==null&&(!x||this.isValidMember(null,te)?te.containingGroup=null:b=!1)}return b},St.prototype.collapseSubGraph=function(a){a===void 0&&(a=null);var x=this.diagram;try{x.Ea("Collapse SubGraph"),ua(x.animationManager,"Collapse SubGraph");var b=new Zi;if(a!==null&&a.isSubGraphExpanded)a.collapseSubGraph(),b.add(a);else if(a===null)for(var te=x.selection.iterator;te.next();){var re=te.value;re instanceof ts&&re.isSubGraphExpanded&&(re.collapseSubGraph(),b.add(re))}x.R("SubGraphCollapsed",b)}finally{x.eb("Collapse SubGraph")}},St.prototype.canCollapseSubGraph=function(a){a===void 0&&(a=null);var x=this.diagram;if(x.isReadOnly)return!1;if(a!==null)return!!(a instanceof ts&&a.isSubGraphExpanded);for(a=x.selection.iterator;a.next();)if(x=a.value,x instanceof ts&&x.isSubGraphExpanded)return!0;return!1},St.prototype.expandSubGraph=function(a){a===void 0&&(a=null);var x=this.diagram;try{x.Ea("Expand SubGraph"),ua(x.animationManager,"Expand SubGraph");var b=new Zi;if(a!==null&&!a.isSubGraphExpanded)a.expandSubGraph(),b.add(a);else if(a===null)for(var te=x.selection.iterator;te.next();){var re=te.value;re instanceof ts&&!re.isSubGraphExpanded&&(re.expandSubGraph(),b.add(re))}x.R("SubGraphExpanded",b)}finally{x.eb("Expand SubGraph")}},St.prototype.canExpandSubGraph=function(a){a===void 0&&(a=null);var x=this.diagram;if(x.isReadOnly)return!1;if(a!==null)return a instanceof ts&&!a.isSubGraphExpanded;for(a=x.selection.iterator;a.next();)if(x=a.value,x instanceof ts&&!x.isSubGraphExpanded)return!0;return!1},St.prototype.editTextBlock=function(a){a===void 0&&(a=null);var x=this.diagram,b=x.toolManager.findTool("TextEditing");if(b!==null){if(a===null){a=null;for(var te=x.selection.iterator;te.next();){var re=te.value;if(re.canEdit()){a=re;break}}if(a===null)return;a=a.Nl(function(oe){return oe instanceof _l&&oe.editable})}a!==null&&(x.currentTool=null,b.textBlock=a,x.currentTool=b)}},St.prototype.canEditTextBlock=function(a){a===void 0&&(a=null);var x=this.diagram;if(x.isReadOnly||x.isModelReadOnly||!x.allowTextEdit||x.toolManager.findTool("TextEditing")===null)return!1;if(a!==null){if(!(a instanceof _l))return!1;if(a=a.part,a!==null&&a.canEdit())return!0}else for(x=x.selection.iterator;x.next();)if(a=x.value,a.canEdit()&&(a=a.Nl(function(b){return b instanceof _l&&b.editable}),a!==null))return!0;return!1},St.prototype.showContextMenu=function(a){var x=this.diagram,b=x.toolManager.findTool("ContextMenu");if(b!==null&&(a===void 0&&(a=0<x.selection.count?x.selection.first():x),a=b.findObjectWithContextMenu(a),a!==null)){var te=x.lastInput,re=null;a instanceof nn?re=a.ga(eo):x.viewportBounds.ca(te.documentPoint)||(re=x.viewportBounds,re=new it(re.x+re.width/2,re.y+re.height/2)),re!==null&&(te.viewPoint=x.op(re),te.documentPoint=re,te.left=!1,te.right=!0,te.up=!0),x.currentTool=b,He(b,!1,a)}},St.prototype.canShowContextMenu=function(a){var x=this.diagram,b=x.toolManager.findTool("ContextMenu");return b===null?!1:(a===void 0&&(a=0<x.selection.count?x.selection.first():x),b.findObjectWithContextMenu(a)!==null)},St.prototype.computeEffectiveCollection=function(a,x){var b=this.diagram,te=b.toolManager.findTool("Dragging"),re=b.currentTool===te;if(x===void 0&&(x=re?te.dragOptions:b.Wm),te=new kn,a===null)return te;for(var oe=a.iterator;oe.next();)lm(b,te,oe.value,re,x);if(b.draggedLink!==null&&x.dragsLink)return te;for(oe=a.iterator;oe.next();)a=oe.value,a instanceof Ui&&(x=a.fromNode,x===null||te.contains(x)?(x=a.toNode,x===null||te.contains(x)||te.remove(a)):te.remove(a));return te},pn.Object.defineProperties(St.prototype,{diagram:{get:function(){return this.H}},copiesClipboardData:{get:function(){return this.o},set:function(a){this.o=a}},copiesConnectedLinks:{get:function(){return this.u},set:function(a){this.u=a}},deletesConnectedLinks:{get:function(){return this.Ha},set:function(a){this.Ha=a}},copiesTree:{get:function(){return this.ia},set:function(a){this.ia=a}},deletesTree:{get:function(){return this.nb},set:function(a){this.nb=a}},copiesParentKey:{get:function(){return this.V},set:function(a){this.V=a}},copiesGroupKey:{get:function(){return this.F},set:function(a){this.F=a}},archetypeGroupData:{get:function(){return this.j},set:function(a){this.j=a}},memberValidation:{get:function(){return this.ij},set:function(a){this.ij=a}},defaultScale:{get:function(){return this.diagram.defaultScale},set:function(a){this.diagram.defaultScale=a}},zoomFactor:{get:function(){return this.Hb},set:function(a){1<a||hn("zoomFactor must be larger than 1.0, not: "+a),this.Hb=a}},isZoomToFitRestoreEnabled:{get:function(){return this.hb},set:function(a){this.hb=a}},scrollToPartPause:{get:function(){return this.ob},set:function(a){this.ob=a}}}),St.className="CommandHandler",gC=function(){return new St};function nn(){$o(this),this.l=30723,this.pb=1,this.bn="",this.Ma=this.Me=null,this.pa=new it(NaN,NaN).freeze(),this.jd=Qi,this.Ab=new Br,this.wh=new Br,this.Lb=null,this.Ca=this.Kk=1,this.Kb=0,this.Kg=Ts,this.uc=new Yt(NaN,NaN,NaN,NaN).freeze(),this.Ib=new Yt(NaN,NaN,NaN,NaN).freeze(),this.dc=new Yt(0,0,NaN,NaN).freeze(),this.ba=this.Yn=this.Zn=null,this.sk=this.Jb=Bl,this.Ag=this.io=0,this.V=this.tb=this.Dh=this.A=this.Ua=null,this.Uc=!1,this.jo=this.Ng=null}var wi,li,jr,no,To,rs,na,Ns,va,ml;nn.prototype.cloneProtected=function(a){a.l=this.l|6144,a.pb=this.pb,a.bn=this.bn,a.Ma=this.Ma,a.pa.assign(this.pa),a.jd=this.jd.J(),this.Lb!==null?a.Lb=this.Lb.copy():a.Lb=null,a.Ca=this.Ca,a.Kb=this.Kb,a.Kg=this.Kg.J(),a.uc.assign(this.uc),a.Ib.assign(this.Ib),a.dc.assign(this.dc),a.Yn=this.Yn,this.ba!==null&&(a.ba=this.ba.copy()),a.Jb=this.Jb.J(),a.sk=this.sk.J(),a.io=this.io,a.Ag=this.Ag,this.Ua!==null&&(a.Ua=this.Ua.copy()),this.A!==null&&(a.A=this.A.nc?this.A:this.A.copy()),this.Dh!==null&&(a.Dh=wa(this.Dh)),this.tb!==null&&(a.tb=this.tb.copy())},nn.prototype.Vw=function(a){var x=this.Dh;if(Fo(x)){for(var b=0;b<x.length;b++)if(x[b]===a)return}else this.Dh=x=[];x.push(a)},nn.prototype.Af=function(a){a.Zn=null,a.Ng=null,a.v()},nn.prototype.clone=function(){var a=new this.constructor;if(this.cloneProtected(a),this.Dh!==null)for(var x=0;x<this.Dh.length;x++){var b=this.Dh[x];a[b]=this[b]}return a},nn.prototype.copy=function(){return this.clone()},We=nn.prototype,We.qb=function(a){a.classType===Ui?a.name.indexOf("Orient")===0?this.segmentOrientation=a:hn("Unknown Link enum value for GraphObject.segmentOrientation property: "+a):a.classType===nn&&(this.stretch=a)},We.toString=function(){return Jo(this.constructor)+"#"+Pl(this)},We.th=function(){this.A!==null&&(this.A.nc=!0)};function Os(a){a.A===null?a.A=new Ic:a.A.nc&&(a.A=a.A.copy())}We.Xc=function(){if(this.ba===null){var a=new CC;a.Xi=Cs,a.yj=Cs,a.Vi=10,a.wj=10,a.Wi=0,a.xj=0,this.ba=a}},We.cb=function(a,x,b,te,re,oe,le){var fe=this.part;if(fe!==null&&(fe.gk(a,x,b,te,re,oe,le),b===this&&a===Dl&&vh(this)&&ou(this,fe,x),oe=this.diagram,this.animationTriggers===null||oe===null||!oe.pi||oe.undoManager.isUndoingRedoing||oe.animationManager.Dm||(a=this.animationTriggers.get(x),a!==null&&oe.animationManager.isEnabled&&!oe.animationManager.isTicking&&(this.jo===null&&(this.jo=new kn),le=oe.undoManager.transactionLevel===0,a.startCondition===zv?le=!0:a.startCondition===Uv&&(le=!1),le?(oe=new Nu,vS(a,oe),le=this.jo.get(a),le!==null&&le.stop(),this.jo.add(a,oe),oe.vu=this,oe.Nw=a,oe.add(this,x,te,re),oe.start()):(ua(oe.animationManager,"Trigger"),oe.animationManager.defaultAnimation.add(this,x,te,re)))),this instanceof Pi&&b===fe&&(fe.l&16777216)!==0&&fe.data!==null))for(b=this.O.s,te=b.length,re=0;re<te;re++)fe=b[re],fe instanceof Pi&&Px(fe,function(ge){ge.data!==null&&ge.l&16777216&&ge.La(x)})};function ou(a,x,b){var te=a.ih();if(te!==null)for(var re=a.localBindings.iterator;re.next();){var oe=re.value,le=null;if(oe.sourceName!==null){if(le=y2(oe,te,a),le===null)continue;oe.sp(a,le,b,null)}else if(oe.isToModel){var fe=x.diagram;fe===null||fe.skipsModelSourceBindings||oe.sp(a,fe.model.modelData,b,te)}else{if(fe=te.data,fe===null)continue;var ge=x.diagram;ge===null||ge.skipsModelSourceBindings||oe.sp(a,fe,b,te)}le===a&&(fe=te.ks(oe.Ai),fe!==null&&oe.Mv(fe,le,b))}}We.ks=function(a){return this.bindingId===a?this:null},We.g=function(a,x,b){this.cb(Dl,a,this,x,b)},We.Ge=function(a,x,b,te){var re=this.uc;if(re.h(a,x,b,te),this.Ca!==1||this.Kb!==0){this.Lb===null&&(this.Lb=new Br);var oe=this.Lb;oe.reset(),this.no(oe,a,x,b,te),oe.pp(re)}};function Uc(a,x,b,te){return a.pickable===!1?!1:(te.multiply(a.transform),b?a.Yc(x,te):a.fh(x,te))}We.tx=function(a,x,b){if(this.pickable===!1)return!1;var te=this.naturalBounds;return x=a.Bf(x),b?vo(a.x,a.y,0,0,0,te.height)<=x||vo(a.x,a.y,0,te.height,te.width,te.height)<=x||vo(a.x,a.y,te.width,te.height,te.width,0)<=x||vo(a.x,a.y,te.width,0,0,0)<=x:a.zd(0,0)<=x&&a.zd(0,te.height)<=x&&a.zd(te.width,0)<=x&&a.zd(te.width,te.height)<=x},We.se=function(){return!0},We.ca=function(a){var x=it.alloc();x.assign(a),this.transform.Ga(x);var b=this.actualBounds;if(!b.w())return it.free(x),!1;var te=this.diagram;if(te!==null&&te.wq){var re=te.Ql("extraTouchThreshold"),oe=te.Ql("extraTouchArea"),le=oe/2,fe=this.naturalBounds;te=this.Df()*te.scale;var ge=1/te;if(fe.width*te<re&&fe.height*te<re)return a=Zr(b.x-le*ge,b.y-le*ge,b.width+oe*ge,b.height+oe*ge,x.x,x.y),it.free(x),a}return re=!1,(this instanceof Ca||this instanceof xs?Zr(b.x-5,b.y-5,b.width+10,b.height+10,x.x,x.y):b.ca(x))&&(this.tb&&!this.tb.ca(x)?re=!1:this.areaBackground!==null&&b.ca(x)||this.Ma!==null&&this.dc.ca(a)?re=!0:re=this.gh(a)),it.free(x),re},We.gh=function(a){var x=this.naturalBounds;return Zr(0,0,x.width,x.height,a.x,a.y)},We.Re=function(a){if(this.angle===0)return this.actualBounds.Re(a);var x=this.naturalBounds;x=Yt.allocAt(0,0,x.width,x.height);var b=this.transform,te=!1,re=it.allocAt(a.x,a.y);return x.ca(b.Cd(re))&&(re.h(a.x,a.bottom),x.ca(b.Cd(re))&&(re.h(a.right,a.bottom),x.ca(b.Cd(re))&&(re.h(a.right,a.y),x.ca(b.Cd(re))&&(te=!0)))),it.free(re),Yt.free(x),te},We.fh=function(a,x){if(x===void 0)return a.Re(this.actualBounds);var b=this.naturalBounds,te=!1,re=it.allocAt(0,0);return a.ca(x.Ga(re))&&(re.h(0,b.height),a.ca(x.Ga(re))&&(re.h(b.width,b.height),a.ca(x.Ga(re))&&(re.h(b.width,0),a.ca(x.Ga(re))&&(te=!0)))),it.free(re),te},We.Yc=function(a,x){if(x===void 0&&(x=this.transform,this.angle===0))return a.Yc(this.actualBounds);var b=this.naturalBounds,te=it.allocAt(0,0),re=it.allocAt(0,b.height),oe=it.allocAt(b.width,b.height),le=it.allocAt(b.width,0),fe=!1;if(a.ca(x.Ga(te))||a.ca(x.Ga(re))||a.ca(x.Ga(oe))||a.ca(x.Ga(le)))fe=!0;else{b=Yt.allocAt(0,0,b.width,b.height);var ge=it.allocAt(a.x,a.y);b.ca(x.Cd(ge))?fe=!0:(ge.h(a.x,a.bottom),b.ca(x.Cd(ge))?fe=!0:(ge.h(a.right,a.bottom),b.ca(x.Cd(ge))?fe=!0:(ge.h(a.right,a.y),b.ca(x.Cd(ge))&&(fe=!0)))),it.free(ge),Yt.free(b),!fe&&(_t.us(a,te,re)||_t.us(a,re,oe)||_t.us(a,oe,le)||_t.us(a,le,te))&&(fe=!0)}return it.free(te),it.free(re),it.free(oe),it.free(le),fe},We.ga=function(a,x){if(x===void 0&&(x=new it),a instanceof Ii){var b=this.naturalBounds;x.h(a.x*b.width+a.offsetX,a.y*b.height+a.offsetY)}else x.set(a);return this.oe.Ga(x),x},We.mi=function(a){a===void 0&&(a=new Yt);var x=this.naturalBounds,b=this.oe,te=it.allocAt(0,0).transform(b);return a.h(te.x,te.y,0,0),te.h(x.width,0).transform(b),Hr(a,te.x,te.y,0,0),te.h(x.width,x.height).transform(b),Hr(a,te.x,te.y,0,0),te.h(0,x.height).transform(b),Hr(a,te.x,te.y,0,0),it.free(te),a},We.li=function(){var a=this.oe;return a.m11===1&&a.m12===0?a=0:(a=180*Math.atan2(a.m12,a.m11)/Math.PI,0>a&&(a+=360)),a},We.Df=function(){if(!(this.l&4096))return this.Kk;var a=this.Ca;return this.panel!==null?a*this.panel.Df():a},We.qs=function(a,x){return x===void 0&&(x=new it),x.assign(a),this.oe.Cd(x),x},We.rs=function(a,x,b){return this.Sj(a.x,a.y,x.x,x.y,b)},We.Sj=function(a,x,b,te,re){var oe=this.transform,le=1/(oe.m11*oe.m22-oe.m12*oe.m21),fe=oe.m22*le,ge=-oe.m12*le,ye=-oe.m21*le,we=oe.m11*le,be=le*(oe.m21*oe.dy-oe.m22*oe.dx),ke=le*(oe.m12*oe.dx-oe.m11*oe.dy);return this.areaBackground!==null?(oe=this.actualBounds,_t.Ff(oe.left,oe.top,oe.right,oe.bottom,a,x,b,te,re)):(le=a*fe+x*ye+be,a=a*ge+x*we+ke,x=b*fe+te*ye+be,b=b*ge+te*we+ke,re.h(0,0),te=this.naturalBounds,b=_t.Ff(0,0,te.width,te.height,le,a,x,b,re),re.transform(oe),b)},nn.prototype.measure=function(a,x,b,te){if(Mf(this)!==!1){var re=this.Kg,oe=re.right+re.left;re=re.top+re.bottom,a=Math.max(a-oe,0),x=Math.max(x-re,0),b=Math.max((b||0)-oe,0),te=Math.max((te||0)-re,0),oe=this.angle,re=this.desiredSize;var le=this.kq();oe===90||oe===270?(a=isFinite(re.height)?re.height+le:a,x=isFinite(re.width)?re.width+le:x):(a=isFinite(re.width)?re.width+le:a,x=isFinite(re.height)?re.height+le:x),re=b||0,le=te||0;var fe=this instanceof Pi;switch(bc(this,!0)){case li:le=re=0,fe&&(x=a=1/0);break;case wi:isFinite(a)&&a>b&&(re=a),isFinite(x)&&x>te&&(le=x);break;case no:isFinite(a)&&a>b&&(re=a),le=0,fe&&(x=1/0);break;case To:isFinite(x)&&x>te&&(le=x),re=0,fe&&(a=1/0)}fe=this.maxSize;var ge=this.minSize;re>fe.width&&ge.width<fe.width&&(re=fe.width),le>fe.height&&ge.height<fe.height&&(le=fe.height),b=Math.max(re,ge.width),te=Math.max(le,ge.height),fe.width<b&&(b=Math.min(ge.width,b)),fe.height<te&&(te=Math.min(ge.height,te)),a=Math.min(fe.width,a),x=Math.min(fe.height,x),a=Math.max(b,a),x=Math.max(te,x),(oe===90||oe===270)&&(oe=a,a=x,x=oe,oe=b,b=te,te=oe),this.uc.ka(),this.Wl(a,x,b,te),this.uc.freeze(),this.uc.w()||hn("Non-real measuredBounds has been set. Object "+this+", measuredBounds: "+this.uc.toString()),Mc(this,!1)}},nn.prototype.Wl=function(){},nn.prototype.Dd=function(){return!1},nn.prototype.arrange=function(a,x,b,te,re){this.Uk();var oe=Yt.alloc();oe.assign(this.Ib),this.Ib.ka(),Xh(this)===!1?this.Ib.h(a,x,b,te):this.eh(a,x,b,te),this.Ib.freeze(),re===void 0?this.tb=null:this.tb=re,b=!1,re!==void 0?b=!0:(re=this.panel,re!==null&&ry(re)&&(re=re.panel),re!==null&&(re=re.dc,te=this.measuredBounds,this.areaBackground!==null&&(te=this.Ib),b=x+te.height,te=a+te.width,b=!(0<=a+.05&&te<=re.width+.05&&0<=x+.05&&b<=re.height+.05),this instanceof _l&&(a=this.naturalBounds,this.Lq>a.height||this.Cb>a.width))&&(b=!0)),this.l=b?this.l|256:this.l&-257,this.Ib.w()||hn("Non-real actualBounds has been set. Object "+this+", actualBounds: "+this.Ib.toString()),this.Xl(oe,this.Ib),ud(this,!1),Yt.free(oe)},We=nn.prototype,We.eh=function(){};function bh(a,x,b,te,re){if(a.Ib.h(x,b,te,re),!a.desiredSize.w()){var oe=a.uc;b=a.Kg,x=b.right+b.left;var le=b.top+b.bottom;switch(b=oe.width+x,oe=oe.height+le,te+=x,re+=le,x=bc(a,!0),b===te&&oe===re&&(x=li),x){case li:(b>te||oe>re)&&(Mc(a,!0),a.measure(b>te?te:b,oe>re?re:oe,0,0));break;case wi:Mc(a,!0),a.measure(te,re,0,0);break;case no:Mc(a,!0),a.measure(te,oe,0,0);break;case To:Mc(a,!0),a.measure(b,re,0,0)}}}We.Xl=function(a,x){var b=this.part;b!==null&&b.diagram!==null&&(b.selectionObject!==this&&b.resizeObject!==this&&b.rotateObject!==this||p0(b,!0),this.N(),lr(a,x)||(b.oh(),this.Pn(b)))},We.Pn=function(a){this.portId!==null&&(p0(a,!0),a instanceof ar&&mA(a,this))},We.gc=function(a,x){if(!Gd(this,a,x)&&this.visible){var b=this.opacity;if(b!==0){var te=1;b!==1&&(te=a.globalAlpha,a.globalAlpha=te*b);var re="";this.filter!==""&&(re=a.filter,a.filter=this.filter);var oe=this instanceof Pi&&ry(this),le=this.Ib;if(oe){var fe=this.Ib,ge=this.dc,ye=this.areaBackground,we=this.Ma;ye===null&&we===null||a.yc(),ye!==null&&(Fu(this,a,ye,!0,!0,ge,fe),ye instanceof Ws&&ye.type===Ed?(a.beginPath(),a.rect(fe.x,fe.y,fe.width,fe.height),a.ng(ye)):a.fillRect(fe.x,fe.y,fe.width,fe.height)),we!==null&&(Fu(this,a,we,!0,!1,ge,fe),we instanceof Ws&&we.type===Ed?(a.beginPath(),a.rect(fe.x,fe.y,fe.width,fe.height),a.ng(we)):a.fillRect(fe.x,fe.y,fe.width,fe.height)),this.hh(a,x)}if(!oe&&(oe||le.width!==0&&le.height!==0&&!isNaN(le.x)&&!isNaN(le.y))){oe=this.transform,fe=this.panel,this.l&4096&&th(this),ye=this.part,ge=!1;var be=0;ye&&x.Gf("drawShadows")&&(ge=ye.isShadowed)&&(we=ye.shadowOffset,be=Math.max(we.y,we.x)*x.scale*x.Mb),we=this.Dd();var ke;if(!(ke=x.$i||!we)){var Ue=this.naturalBounds;ke=this.wh;var Ve=ke.m11,Ke=ke.m21,Pt=ke.dx,ft=ke.m12,Nt=ke.m22,Lt=ke.dy,Ut,tn=Ut=0;ke=Ut*Ve+tn*Ke+Pt;var xn=Ut*ft+tn*Nt+Lt;Ut=Ue.width+be,tn=0;var nr=Ut*Ve+tn*Ke+Pt;Ut=Ut*ft+tn*Nt+Lt,tn=Math.min(ke,nr);var Ir=Math.min(xn,Ut),br=Math.max(ke+0,nr)-tn,Di=Math.max(xn+0,Ut)-Ir;ke=tn,xn=Ir,Ut=Ue.width+be,tn=Ue.height+be,nr=Ut*Ve+tn*Ke+Pt,Ut=Ut*ft+tn*Nt+Lt,tn=Math.min(ke,nr),Ir=Math.min(xn,Ut),br=Math.max(ke+br,nr)-tn,Di=Math.max(xn+Di,Ut)-Ir,ke=tn,xn=Ir,Ut=0,tn=Ue.height+be,nr=Ut*Ve+tn*Ke+Pt,Ut=Ut*ft+tn*Nt+Lt,tn=Math.min(ke,nr),Ir=Math.min(xn,Ut),br=Math.max(ke+br,nr)-tn,Di=Math.max(xn+Di,Ut)-Ir,ke=tn,xn=Ir,be=x.viewportBounds,Ue=be.x,Ve=be.y,ke=!(ke>be.width+Ue||Ue>br+ke||xn>be.height+Ve||Ve>Di+xn)}if(ke){if(ke=(this.l&256)!==0,a.clipInsteadOfFill&&(ke=!1),this instanceof _l&&(a.font=this.font),ke){if(xn=fe.se()?fe.naturalBounds:fe.actualBounds,br=Math.max(le.x,xn.x),Di=Math.max(le.y,xn.y),be=Math.min(le.right,xn.right)-br,Ue=Math.min(le.bottom,xn.bottom)-Di,Ve=this.tb,Ve!==null&&(br=Ve.x,Di=Ve.y,be=Ve.width,Ue=Ve.height),br>le.width+le.x||le.x>xn.width+xn.x){b!==1&&(a.globalAlpha=te),this.filter!==""&&(a.filter=re);return}a.save(),a.beginPath(),a.rect(br,Di,be,Ue),a.clip()}if(we){if(!ye.isVisible()){b!==1&&(a.globalAlpha=te),this.filter!==""&&(a.filter=re);return}ge&&(xn=ye.shadowOffset,a.Ev(xn.x*x.scale*this.scale*x.Mb,xn.y*x.scale*this.scale*x.Mb,ye.shadowBlur),Fg(a),a.shadowColor=ye.shadowColor)}ge&&this.shadowVisible===!0?Fg(a):ge&&this.shadowVisible===!1&&Hc(a),ye=this.naturalBounds,this.areaBackground!==null&&(a.yc(),Cd(this,a,ye,le)),a.transform(oe.m11,oe.m12,oe.m21,oe.m22,oe.dx,oe.dy),ge&&Lc(this,fe)&&this.shadowVisible===null&&Hc(a),this.Ma!==null&&(a.yc(),Mh(this,a,ye,le)),ge&&(this.Ma!==null||this.areaBackground!==null||Lc(this,fe))?(Wp(this,!0),this.shadowVisible===null&&Hc(a)):Wp(this,!1),this.hh(a,x),ge&&this.l&512&&Fg(a),we&&ge&&Hc(a),ke&&(a.restore(),a.Vc(this instanceof Pi)),oe.ws()||(x=1/(oe.m11*oe.m22-oe.m12*oe.m21),a.transform(oe.m22*x,-oe.m12*x,-oe.m21*x,oe.m11*x,x*(oe.m21*oe.dy-oe.m22*oe.dx),x*(oe.m12*oe.dx-oe.m11*oe.dy)))}}b!==1&&(a.globalAlpha=te),this.filter!==""&&(a.filter=re)}}};function Lc(a,x){return x===null?!1:(ry(x)&&(x=x.panel),(x.l&512)!==0||(x.type===Pi.Auto||x.type===Pi.Spot)&&x.Pb()!==a)}We.Dv=function(){};function Cd(a,x,b,te){Fu(a,x,a.areaBackground,!0,!0,b,te),a.areaBackground instanceof Ws&&a.areaBackground.type===Ed?(x.beginPath(),x.rect(te.x,te.y,te.width,te.height),x.ng(a.areaBackground)):x.fillRect(te.x,te.y,te.width,te.height)}function Mh(a,x,b,te){var re=a.kq(),oe=b.x,le=b.y,fe=b.width+re,ge=b.height+re;Fu(a,x,a.Ma,!0,!1,b,te),a.Ma instanceof Ws&&a.Ma.type===Ed?(x.beginPath(),x.rect(oe-re/2,le-re/2,fe,ge),x.ng(a.Ma)):x.fillRect(oe-re/2,le-re/2,fe,ge)}function gh(a,x,b){for(var te=x.O.s,re=te.length,oe=-1,le=0;le<re;le++)if(te[le]===a){oe=le;break}if(a=oe,a!==-1)if(a===0)x.svg.gd?x.svg.gd.after(b):x.svg.Ma?x.svg.Ma.after(b):x.type===Pi.Table?(x=x.svg.getElementsByClassName("gojs-ts"),x=x.length!==0?x[0]:null,x!==null&&x.after(b)):x.svg.prepend(b);else{for(;a!==0&&!x.M(a-1).Ed();)a--;a===0?x.svg.prepend(b):(a=x.M(a-1).svg,a!==null?a.after(b):x.svg.appendChild(b))}}function Gd(a,x,b){if(!(x instanceof Wh))return!1;if(!a.visible||a.opacity===0||a.Dd()&&!a.isVisible())return a.svg!==null&&a.svg.parentNode!==null&&a.svg.remove(),!0;var te=a.panel,re=a.nk(x);if(a.kk(x,b,re))return a.svg.parentElement!==null?(a.Dd()&&(x.ti=a.svg),!0):(a.Dd()?(x.ti!==null?x.ti.after(a.svg):x.Nj.prepend(a.svg),x.ti=a.svg):te&&gh(a,te,a.svg),!0);if(a.Dd()&&a.isShadowed){var oe=a.shadowOffset;x.Ev(oe.x*b.scale*a.scale*b.Mb,oe.y*b.scale*a.scale*b.Mb,a.shadowBlur),Fg(x),x.shadowColor=a.shadowColor}a instanceof _l&&(x.font=a.font),x.yd=null;var le=a.transform;oe=a instanceof Pi;var fe=a instanceof Pi?ry(a):!1;a.l&4096&&th(a);var ge=a.Ib;if(x.rb.ha=[1,0,0,1,0,0],x.o=!1,re&&(x.o=!0,oe&&fe?(Oc(x,1,0,0,1,0,0),a.svg=x.ad):oe?(Oc(x,le.m11,le.m12,le.m21,le.m22,le.dx,le.dy),a.svg=x.ad):Oc(x,1,0,0,1,0,0)),re=a.naturalBounds,a.areaBackground!==null){var ye=le.copy().Vj();x.rb.ha=[ye.m11,ye.m12,ye.m21,ye.m22,ye.dx,ye.dy],Cd(a,x,re,ge),x.rb.ha=[1,0,0,1,0,0],x.yd.gd=x.ad,x.yd.prepend(x.ad)}return oe||(x.rb.ha=[le.m11,le.m12,le.m21,le.m22,le.dx,le.dy]),a.background!==null&&(oe?(fe&&(x.rb.ha=[le.m11,le.m12,le.m21,le.m22,le.dx,le.dy]),Mh(a,x,re,ge),fe&&(x.rb.ha=[1,0,0,1,0,0])):(x.rb.ha=[le.m11,le.m12,le.m21,le.m22,le.dx,le.dy],Mh(a,x,re,ge)),x.yd.Ma=x.ad,x.yd.prepend(x.ad)),le=x.yd,re=a.part,fe=!1,re&&b.Gf("drawShadows")&&(fe=re.isShadowed),x.clipInsteadOfFill&&(fe=!1),a.Dd()&&fe&&Fg(x),fe&&a.shadowVisible===!0?Fg(x):fe&&a.shadowVisible===!1&&Hc(x),re=a.panel,fe&&Lc(a,re)&&a.shadowVisible===null&&Hc(x),x.Il&&(ye=b.computePixelRatio(),ye="drop-shadow("+x.shadowOffsetX/ye+"px "+x.shadowOffsetY/ye+"px "+x.shadowBlur/ye/2+"px "+x.shadowColor+")",a.background!==null&&le.Ma.setAttributeNS(null,"filter",ye),a.areaBackground!==null&&le.gd.setAttributeNS(null,"filter",ye)),fe&&(a.Ma!==null||a.areaBackground!==null||Lc(a,re))?(Wp(a,!0),a.shadowVisible===null&&Hc(x)):Wp(a,!1),re=fe,a.hh(x,b),oe&&x.nh.pop(),x.o&&x.nh.pop(),le=x.Gv.hs,fe=oe?a.svg:x.yd,ye=a.svg,!oe&&ye!==null&&fe!==ye&&ye.parentNode===a.panel.svg?(a.svg.replaceWith(fe),a.svg=fe,fe!==null&&a.$o(x,te,ge,fe),Gh(x,ye),!0):(a.svg=fe,le!==null&&fe===null&&(Ah(x),x.nh.pop()),fe===null||(a.$o(x,te,ge,fe),x.Il&&(b=b.computePixelRatio(),a.Dv(fe,"drop-shadow("+x.shadowOffsetX/b+"px "+x.shadowOffsetY/b+"px "+x.shadowBlur/b/2+"px "+x.shadowColor+")")),re&&a.l&512&&Fg(x),a.Dd()&&Hc(x),b=a.Dd()?a.opacity*x.globalAlpha:a.opacity,b!==1&&fe.setAttributeNS(null,"opacity",b.toString()),a.filter!==""&&fe.setAttributeNS(null,"filter",a.filter),a.Dd()?(x.ti?x.ti.after(fe):x.Nj.prepend(fe),x.ti=fe):te!==null&&gh(a,te,fe),le!==null&&le(a,fe)),!0)}We.$o=function(a,x,b,te){var re=(this.l&256)!==0;if(a.clipInsteadOfFill&&(re=!1),re){var oe=x.se()?x.naturalBounds:x.actualBounds;x=Math.max(b.x,oe.x),re=Math.max(b.y,oe.y);var le=Math.min(b.right,oe.right)-x;b=Math.min(b.bottom,oe.bottom)-re,oe=this.tb,oe!==null&&(x=oe.x,re=oe.y,le=oe.width,b=oe.height),oe=te.getAttribute("clip-path");var fe=null;oe!==null&&(fe=a.svg.getElementById(oe.split("#")[1].slice(0,-1))),fe===null?(oe="CLIP"+pc++,fe=a.Ud("clipPath",{id:oe}),x=a.Ud("rect",{x,y:re,width:le,height:b}),this instanceof Pi&&(re=this.transform.copy().Vj(),x.setAttribute("transform","matrix("+re.m11+", "+re.m12+", "+re.m21+", "+re.m22+", "+re.dx+", "+re.dy+")")),fe.appendChild(x),a.svg.appendChild(fe),te.setAttributeNS(null,"clip-path","url(#"+oe+")")):(a=fe.firstElementChild,a.setAttribute("x",x.toString()),a.setAttribute("y",re.toString()),a.setAttribute("width",le.toString()),a.setAttribute("height",b.toString()))}else te.removeAttributeNS(null,"clip-path"),Gh(a,te)};function Gh(a,x){x=x.getAttribute("clip-path"),x!==null&&(a=a.svg.getElementById(x.split("#")[1].slice(0,-1)),a!==null&&a.remove())}function mh(a){if(a.svg!==null){var x=a.svg.innerHTML.match(/url\(#((CLIP|GRAD).+?)\)/g),b=a.svg.ownerDocument;if(x!==null){x=Si(x);for(var te=x.next();!te.done;te=x.next())te=b.getElementById(te.value.split("#")[1].slice(0,-1)),te!==null&&te.remove()}a.svg.remove()}}We.hh=function(){},We.lv=function(){this.Uc=!0},We.kk=function(a,x,b){if(this.Uc)return this.lv(),this.Uc=!1;if(x=this.svg,x===null)return!1;if(!this.visible)return x.remove(),!1;if(x.nodeName!=="g"&&b||x.nodeName==="g"&&!b)return!1;var te=this.transform,re=this instanceof Pi?ry(this):!1;if(!(this instanceof Pi&&re))if(this instanceof Wd){var oe=this.bt;a.rb.ha=[te.m11,te.m12,te.m21,te.m22,te.dx,te.dy],oe!==null&&mp(a,oe[0],oe[1],oe[2],oe[3],oe[4],oe[5],oe[6],oe[7]),b?x.lastElementChild.setAttributeNS(null,"transform",n5(a)):x.setAttributeNS(null,"transform",n5(a))}else if(!b||this instanceof Pi)x.setAttributeNS(null,"transform","matrix("+te.m11+", "+te.m12+", "+te.m21+", "+te.m22+", "+te.dx+", "+te.dy+")");else if(this instanceof xs){oe=x.getElementsByTagName("path");for(var le=0;le<oe.length;le++)oe[le].setAttributeNS(null,"transform","matrix("+te.m11+", "+te.m12+", "+te.m21+", "+te.m22+", "+te.dx+", "+te.dy+")")}else x.lastElementChild.setAttributeNS(null,"transform","matrix("+te.m11+", "+te.m12+", "+te.m21+", "+te.m22+", "+te.dx+", "+te.dy+")");return oe=this.Dd()?this.opacity*a.globalAlpha:this.opacity,oe===1?x.removeAttribute("opacity"):x.setAttributeNS(null,"opacity",oe.toString()),a.rb.ha=[1,0,0,1,0,0],(this.areaBackground!==null||x.gd!==void 0)&&(oe=x.gd,this.areaBackground===null?(x.gd.remove(),x.gd=void 0):(le=te.copy().Vj(),a.rb.ha=[le.m11,le.m12,le.m21,le.m22,le.dx,le.dy],Cd(this,a,this.naturalBounds,this.actualBounds),a.rb.ha=[1,0,0,1,0,0],x.gd?(le=x.gd.getAttribute("filter"),le!==null&&a.ad.setAttribute("filter",le),x.gd.replaceWith(a.ad)):x.prepend(a.ad),x.gd=a.ad),oe&&vx(a,oe)),(this.background!==null||x.Ma!==void 0)&&(oe=x.Ma,this.background===null?(vx(a,x.Ma),x.Ma.remove(),x.Ma=void 0):((re||b&&!(this instanceof Pi))&&(a.rb.ha=[te.m11,te.m12,te.m21,te.m22,te.dx,te.dy]),Mh(this,a,this.naturalBounds,this.actualBounds),x.Ma?(vx(a,x.Ma),b=x.Ma.getAttribute("filter"),b!==null&&a.ad.setAttribute("filter",b),x.Ma.replaceWith(a.ad)):x.prepend(a.ad),x.Ma=a.ad),oe&&vx(a,oe)),this.$o(a,this.panel,this.actualBounds,x),!0},We.nk=function(a){if(this.background!==null||this.areaBackground!==null)return!0;var x=(this.l&256)!==0;return a.clipInsteadOfFill&&(x=!1),!!x};function Fu(a,x,b,te,re,oe,le){if(b!==null){var fe=1,ge=1;if(typeof b=="string")te?x.fillStyle=b:x.strokeStyle=b;else if(b.type===dg)te?x.fillStyle=b.color:x.strokeStyle=b.color;else{var ye=a.kq();if(fe=oe.width,ge=oe.height,re?(fe=le.width,ge=le.height):te||(fe+=ye,ge+=ye),(oe=x instanceof a0)&&b.xe&&(b.type===u0||b.yk===fe&&b.ft===ge))var we=b.xe;else{var be=0,ke=0,Ue=0,Ve=0,Ke=0,Pt=0;if(Pt=Ke=0,re?(Ke=le.x,Pt=le.y):te||(Ke-=ye/2,Pt-=ye/2),be=b.start.x*fe+b.start.offsetX,ke=b.start.y*ge+b.start.offsetY,Ue=b.end.x*fe+b.end.offsetX,Ve=b.end.y*ge+b.end.offsetY,be+=Ke,Ue+=Ke,ke+=Pt,Ve+=Pt,b.type===Zp)we=x.createLinearGradient(be,ke,Ue,Ve);else if(b.type===Ed)Pt=isNaN(b.endRadius)?Math.max(fe,ge)/2:b.endRadius,isNaN(b.startRadius)?(Ke=0,Pt=Math.max(fe,ge)/2):Ke=b.startRadius,we=x.createRadialGradient(be,ke,Ke,Ue,Ve,Pt);else if(b.type===u0)try{we=x.createPattern(b.pattern,"repeat")}catch(Nt){we=null}if(b.type!==u0&&(re=b.colorStops,re!==null))for(re=re.iterator;re.next();)we.addColorStop(re.key,re.value);if(oe&&(b.xe=we,we!==null&&(b.yk=fe,b.ft=ge),we===null&&b.type===u0&&b.yk!==-1)){b.yk=-1;var ft=a.diagram;ft!==null&&b.yk===-1&&aa(function(){ft.redraw()},600)}}te?x.fillStyle=we:x.strokeStyle=we}}}We.rg=function(a){if(a instanceof Pi)e:{if(this!==a&&a!==null)for(var x=this.panel;x!==null;){if(x===a){a=!0;break e}x=x.panel}a=!1}else a=!1;return a},We.Ed=function(){if(!this.visible)return!1;var a=this.panel;return a!==null?a.Ed():!0},We.If=function(){for(var a=this instanceof Pi?this:this.panel;a!==null&&a.isEnabled;)a=a.panel;return a===null};function th(a){if(a.l&2048){var x=a.Ab;if(x.reset(),!a.Ib.w()||!a.uc.w()){dp(a,!1);return}if(x.translate(a.Ib.x-a.uc.x,a.Ib.y-a.uc.y),a.scale!==1||a.angle!==0){var b=a.naturalBounds;a.no(x,b.x,b.y,b.width,b.height)}dp(a,!1),Gf(a,!0)}a.l&4096&&(x=a.panel,x===null?(a.wh.set(a.Ab),a.Kk=a.scale,Gf(a,!1)):x.oe!==null&&(b=a.wh,b.reset(),x.se()?b.multiply(x.wh):x.panel!==null&&b.multiply(x.panel.wh),b.multiply(a.Ab),a.Kk=a.scale*x.Kk,Gf(a,!1)))}We.no=function(a,x,b,te,re){if(this.Ca!==1&&a.scale(this.Ca),this.Kb!==0){var oe=it.alloc();oe.yi(x,b,te,re,eo),a.rotate(this.Kb,oe.x,oe.y),it.free(oe)}},We.v=function(a){if(!Mf(this)){a===void 0&&(a=!1),Mc(this,!0),ud(this,!0);var x=this.panel;x===null||a||x.v()}},We.Uj=function(){Mf(this)||(Mc(this,!0),ud(this,!0))};function ld(a){if(!Xh(a)){var x=a.panel;x!==null?x.v():a.Dd()&&(x=a.diagram,x!==null&&(x.De.add(a),a instanceof ar&&a.Bd(),x.$b())),ud(a,!0)}}We.Uk=function(){!(this.l&2048)&&(dp(this,!0),Gf(this,!0))},We.Wu=function(){Gf(this,!0)},We.N=function(){var a=this.part;a!==null&&a.N()};function bc(a,x){var b=a.stretch,te=a.panel;return te!==null&&te.type===Pi.Table?hg(a,te.Fb(a.row),te.Eb(a.column),x):te!==null&&te.type===Pi.Auto&&te.Pb()===a?Jc(a,wi,x):b===rs?te!==null?te.type===Pi.Spot&&te.Pb()===a?Jc(a,wi,x):(b=te.defaultStretch,b===rs?Jc(a,li,x):Jc(a,b,x)):Jc(a,li,x):Jc(a,b,x)}function hg(a,x,b,te){var re=a.stretch;if(re!==rs)return Jc(a,re,te);var oe=re=null;switch(x.stretch){case To:oe=!0;break;case wi:oe=!0}switch(b.stretch){case no:re=!0;break;case wi:re=!0}return x=a.panel.defaultStretch,re===null&&(re=x===no||x===wi),oe===null&&(oe=x===To||x===wi),re===!0&&oe===!0?Jc(a,wi,te):re===!0?Jc(a,no,te):oe===!0?Jc(a,To,te):Jc(a,li,te)}function Jc(a,x,b){if(b)return x;if(x===li||(b=a.desiredSize,b.w()))return li;if(a=a.angle,!isNaN(b.width))if(a!==90&&a!==270){if(x===no)return li;if(x===wi)return To}else{if(x===To)return li;if(x===wi)return no}if(!isNaN(b.height))if(a!==90&&a!==270){if(x===To)return li;if(x===wi)return no}else{if(x===no)return li;if(x===wi)return To}return x}function Wp(a,x){a.l=x?a.l|512:a.l&-513}function vh(a){return(a.l&1024)!==0}function mx(a,x){a.l=x?a.l|1024:a.l&-1025}function dp(a,x){a.l=x?a.l|2048:a.l&-2049}function Gf(a,x){a.l=x?a.l|4096:a.l&-4097}function Mf(a){return(a.l&8192)!==0}function Mc(a,x){a.l=x?a.l|8192:a.l&-8193}function Xh(a){return(a.l&16384)!==0}function ud(a,x){a.l=x?a.l|16384:a.l&-16385}We.Gj=function(){this.svg=null},We.wi=function(a){this.Me=a,this.svg!==null&&this.svg.remove()},We.Av=function(){},We.zv=function(a){return this.pa=a,ld(this),!0},We.mm=function(a,x){(this.pa.x!==a||this.pa.y!==x)&&(this.pa.h(a,x),this.Uk())},We.kq=function(){return 0};function Xf(a){var x=a.part;if(x instanceof ar&&(a.portId!==null||a===x.port)){var b=x.diagram;b===null||b.undoManager.isUndoingRedoing||mA(x,a)}}function nA(a){var x=a.diagram;x===null||x.undoManager.isUndoingRedoing||(a instanceof Pi?a instanceof ar?a.Bd():a.qm(a,function(b){Xf(b)}):Xf(a))}We.bind=function(a,x,b,te){var re=null;return typeof a=="string"?re=new tc(a,x,b,te):re=a,re.xd=this,a=this.ih(),a!==null&&Ua(a)&&hn("Cannot add a Binding to a template that has already been copied: "+re),this.localBindings===null&&(this.localBindings=new Zi),this.localBindings.add(re),this},We.set=function(a){return Object.assign(this,a),this},We.Du=function(a){return Q0(this,a),this},We.apply=function(a){return a(this),this},We.nm=function(a){return X0(this,a),this},We.pz=function(){return this.ih()},We.ih=function(){for(var a=this instanceof Pi?this:this.panel;a!==null;){if(a.allBindings!==null)return a;a=a.panel}return null},We.Jv=function(a){return a.xd=this,this.animationTriggers===null&&(this.animationTriggers=new kn),this.animationTriggers.add(a.propertyName,a),this};function cd(a,x){for(var b=1;b<arguments.length;++b);b=arguments;var te=null,re=null;if(typeof a=="function")re=a;else if(typeof a=="string"){var oe=um.I(a);typeof oe=="function"?(b=wa(arguments),te=oe(b),Ji(te)||hn('GraphObject.make invoked object builder "'+a+'", but it did not return an Object')):re=ji.go[a]}if(te===null&&(re!=null&&re.constructor||hn("GraphObject.make requires a class function or GoJS class name or name of an object builder, not: "+a),te=new re),re=1,te instanceof wn&&1<b.length){oe=te;var le=b[1];(typeof le=="string"||le instanceof HTMLDivElement)&&(mC(oe,le),re++)}for(;re<b.length;re++)oe=b[re],oe===void 0?hn("Undefined value at argument "+re+" for object being constructed by GraphObject.make: "+te):Q0(te,oe);return te}function Q0(a,x){if(typeof x=="string")if(a instanceof _l)a.text=x;else if(a instanceof xs)a.figure=x;else if(a instanceof Wd)a.source=x;else if(a instanceof Pi)x=fg.I(x),x!==null&&(a.type=x);else if(a instanceof Ws){var b=Lo(Ws,x);b!==null?a.type=b:hn("Unknown Brush type as an argument to GraphObject.make: "+x)}else a instanceof ai?(x=Lo(ai,x),x!==null&&(a.type=x)):a instanceof $s&&(x=Lo($s,x),x!==null&&(a.type=x));else if(x instanceof nn)a instanceof Pi||hn("A GraphObject can only be added to a Panel, not to: "+a),a.add(x);else if(x instanceof mc){var te;x.isRow&&typeof a.getRowDefinition=="function"?te=a.getRowDefinition(x.index):x.isRow||typeof a.getColumnDefinition!="function"||(te=a.getColumnDefinition(x.index)),te instanceof mc?uw(te,x):hn("A RowColumnDefinition can only be added to an object that implements getRowDefinition/getColumnDefinition, not to: "+a)}else if(x instanceof Ni)typeof a.qb=="function"&&a.qb(x);else if(x instanceof lc)a.type=x;else if(x instanceof tc)a instanceof nn||a instanceof mc?a.bind(x):hn("A Binding can only be applied to a GraphObject or RowColumnDefinition, not to: "+a);else if(x instanceof ag)a instanceof nn?a.Jv(x):hn("An AnimationTrigger can only be applied to a GraphObject, not to: "+a);else if(x instanceof ku)a instanceof ai&&a.type===ai.o?a.figures.add(x):hn("A PathFigure can only be added to a Path Geometry, not to: "+a);else if(x instanceof $s)a instanceof ku?a.segments.add(x):hn("A PathSegment can only be added to a PathFigure, not to: "+a);else if(x instanceof vu)a instanceof wn||a instanceof ts?a.layout=x:hn("A Layout can only be assigned to a Diagram or a Group, not to: "+a);else if(Array.isArray(x))for(b=0;b<x.length;b++)Q0(a,x[b]);else if(typeof x=="object"&&x!==null)if(a instanceof Ws){b=new Fa;for(var re in x)te=parseFloat(re),isNaN(te)?b[re]=x[re]:a.addColorStop(te,x[re]);X0(a,b)}else if(a instanceof mc){x.row!==void 0?(re=x.row,(re==null||re===1/0||isNaN(re)||0>re)&&hn("Must specify non-negative integer row for RowColumnDefinition "+x+", not: "+re),a.isRow=!0,a.index=re):x.column!==void 0&&(re=x.column,(re==null||re===1/0||isNaN(re)||0>re)&&hn("Must specify non-negative integer column for RowColumnDefinition "+x+", not: "+re),a.isRow=!1,a.index=re),re=new Fa;for(b in x)b!=="row"&&b!=="column"&&(re[b]=x[b]);X0(a,re)}else X0(a,x);else hn('Unknown initializer "'+x+'" for object being constructed by GraphObject.make: '+a)}function fp(a,x){um.add(a,x)}function pp(a,x,b){b===void 0&&(b=null);var te=a[1];if(typeof b=="function"?b(te):typeof te=="string")return a.splice(1,1),te;if(x===void 0)throw Error("no "+(typeof b=="function"?"satisfactory":"string")+" argument for GraphObject builder "+a[0]);return x}pn.Object.defineProperties(nn.prototype,{bindingId:{get:function(){return this.A!==null?this.A.zp:-1},set:function(a){this.bindingId!==a&&(this.A===null&&(this.A=new Ic),this.A.zp=a)}},localBindings:{get:function(){return this.A!==null?this.A.te:null},set:function(a){this.localBindings!==a&&(this.A===null&&(this.A=new Ic),this.A.te=a)}},srcBindings:{get:function(){return this.A!==null?this.A.wm:null},set:function(a){this.srcBindings!==a&&(this.A===null&&(this.A=new Ic),this.A.wm=a)}},shadowVisible:{get:function(){return this.A!==null?this.A.Ci:null},set:function(a){var x=this.shadowVisible;x!==a&&(Os(this),this.A.Ci=a,this.Uc=!0,this.N(),this.g("shadowVisible",x,a))}},enabledChanged:{get:function(){return this.A!==null?this.A.Hb:null},set:function(a){var x=this.enabledChanged;x!==a&&(Os(this),this.A.Hb=a,this.g("enabledChanged",x,a))}},segmentOrientation:{get:function(){return this.Ua!==null?this.Ua.rr:Th},set:function(a){var x=this.segmentOrientation;x!==a&&(this.Ua===null&&(this.Ua=new Bm),this.Ua.rr=a,this.v(),this.g("segmentOrientation",x,a),a===Th&&(this.angle=0))}},segmentIndex:{get:function(){return this.Ua!==null?this.Ua.u:-1/0},set:function(a){a=Math.round(a);var x=this.segmentIndex;x!==a&&(this.Ua===null&&(this.Ua=new Bm),this.Ua.u=a,this.v(),this.g("segmentIndex",x,a))}},segmentFraction:{get:function(){return this.Ua!==null?this.Ua.o:0},set:function(a){isNaN(a)||0>a?a=0:1<a&&(a=1);var x=this.segmentFraction;x!==a&&(this.Ua===null&&(this.Ua=new Bm),this.Ua.o=a,this.v(),this.g("segmentFraction",x,a))}},segmentOffset:{get:function(){return this.Ua!==null?this.Ua.F:fr},set:function(a){var x=this.segmentOffset;x.D(a)||(a=a.J(),this.Ua===null&&(this.Ua=new Bm),this.Ua.F=a,this.v(),this.g("segmentOffset",x,a))}},stretch:{get:function(){return this.A!==null?this.A.hg:rs},set:function(a){var x=this.stretch;x!==a&&(Os(this),this.A.hg=a,this.v(),this.g("stretch",x,a))}},name:{get:function(){return this.A!==null?this.A.xa:""},set:function(a){var x=this.name;x!==a&&(Os(this),this.A.xa=a,this.part!==null&&(this.part.Rh=null),this.g("name",x,a))}},opacity:{get:function(){return this.pb},set:function(a){var x=this.pb;x!==a&&((0>a||1<a)&&Xo(a,"0 <= value <= 1",nn,"opacity"),this.pb=a,this.g("opacity",x,a),a=this.diagram,x=this.part,a!==null&&x!==null&&a.N(hm(x,x.actualBounds)))}},filter:{get:function(){return this.bn},set:function(a){var x=this.bn;x!==a&&(this.bn=a,this.Uc=!0,this.g("filter",x,a),a=this.diagram,x=this.part,a!==null&&x!==null&&a.N(hm(x,x.actualBounds)))}},visible:{get:function(){return(this.l&1)!==0},set:function(a){var x=(this.l&1)!==0;x!==a&&(this.l^=1,this.g("visible",x,a),x=this.panel,x!==null?x.v():this.Dd()&&this.Zb(a),this.N(),nA(this))}},pickable:{get:function(){return(this.l&2)!==0},set:function(a){var x=(this.l&2)!==0;x!==a&&(this.l^=2,this.g("pickable",x,a))}},fromLinkableDuplicates:{get:function(){return(this.l&4)!==0},set:function(a){var x=(this.l&4)!==0;x!==a&&(this.l^=4,this.g("fromLinkableDuplicates",x,a))}},fromLinkableSelfNode:{get:function(){return(this.l&8)!==0},set:function(a){var x=(this.l&8)!==0;x!==a&&(this.l^=8,this.g("fromLinkableSelfNode",x,a))}},toLinkableDuplicates:{get:function(){return(this.l&16)!==0},set:function(a){var x=(this.l&16)!==0;x!==a&&(this.l^=16,this.g("toLinkableDuplicates",x,a))}},toLinkableSelfNode:{get:function(){return(this.l&32)!==0},set:function(a){var x=(this.l&32)!==0;x!==a&&(this.l^=32,this.g("toLinkableSelfNode",x,a))}},isPanelMain:{get:function(){return(this.l&64)!==0},set:function(a){var x=(this.l&64)!==0;x!==a&&(this.l^=64,this.v(),this.g("isPanelMain",x,a))}},isActionable:{get:function(){return(this.l&128)!==0},set:function(a){var x=(this.l&128)!==0;x!==a&&(this.l^=128,this.g("isActionable",x,a))}},areaBackground:{get:function(){return this.A!==null?this.A.gd:null},set:function(a){var x=this.areaBackground;x!==a&&(a!==null&&Og(a,"GraphObject.areaBackground"),a instanceof Ws&&a.freeze(),Os(this),this.A.gd=a,this.N(),this.g("areaBackground",x,a))}},background:{get:function(){return this.Ma},set:function(a){var x=this.Ma;x!==a&&(a!==null&&Og(a,"GraphObject.background"),a instanceof Ws&&a.freeze(),this.Ma=a,this.N(),this.g("background",x,a))}},part:{get:function(){if(this.Dd())return this;if(this.Ng!==null)return this.Ng;var a;for(a=this.panel;a;){if(a instanceof mo)return this.Ng=a;a=a.panel}return null}},svg:{get:function(){return this.V},set:function(a){this.V=a}},panel:{get:function(){return this.Me}},layer:{get:function(){var a=this.part;return a!==null?a.layer:null}},diagram:{get:function(){var a=this.part;return a!==null?a.diagram:null}},position:{get:function(){return this.pa},set:function(a){var x=a.x,b=a.y,te=this.pa,re=te.x;te=te.y,(re===x||isNaN(re)&&isNaN(x))&&(te===b||isNaN(te)&&isNaN(b))?this.Av():(a=a.copy(),this.zv(a,re,te)&&this.g("position",new it(re,te),a))}},actualBounds:{get:function(){return this.Ib}},scale:{get:function(){return this.Ca},set:function(a){var x=this.Ca;x!==a&&(0>=a&&hn("GraphObject.scale for "+this+" must be greater than zero, not: "+a),this.Ca=a,this.v(),this.g("scale",x,a))}},angle:{get:function(){return this.Kb},set:function(a){var x=this.Kb;x!==a&&(a%=360,0>a&&(a+=360),x!==a&&(this.Kb=a,nA(this),this.v(),this.g("angle",x,a)))}},desiredSize:{get:function(){return this.jd},set:function(a){var x=a.width,b=a.height,te=this.jd,re=te.width,oe=te.height;(re===x||isNaN(re)&&isNaN(x))&&(oe===b||isNaN(oe)&&isNaN(b))||(this.jd=a=a.J(),this.v(),this instanceof xs&&this.qc(),this.g("desiredSize",te,a),vh(this)&&(a=this.part,a!==null&&(ou(this,a,"width"),ou(this,a,"height"))))}},width:{get:function(){return this.jd.width},set:function(a){var x=this.jd.width;x===a||isNaN(x)&&isNaN(a)||(x=this.jd,this.jd=a=new Dt(a,this.jd.height).freeze(),this.v(),this instanceof xs&&this.qc(),this.g("desiredSize",x,a),vh(this)&&(a=this.part,a!==null&&ou(this,a,"width")))}},height:{get:function(){return this.jd.height},set:function(a){var x=this.jd.height;x===a||isNaN(x)&&isNaN(a)||(x=this.jd,this.jd=a=new Dt(this.jd.width,a).freeze(),this.v(),this instanceof xs&&this.qc(),this.g("desiredSize",x,a),vh(this)&&(a=this.part,a!==null&&ou(this,a,"height")))}},minSize:{get:function(){return this.A!==null?this.A.u:Kt},set:function(a){var x=this.minSize;x.D(a)||(a=a.copy(),isNaN(a.width)&&(a.width=0),isNaN(a.height)&&(a.height=0),a.freeze(),Os(this),this.A.u=a,this.v(),this.g("minSize",x,a))}},maxSize:{get:function(){return this.A!==null?this.A.o:Oi},set:function(a){var x=this.maxSize;x.D(a)||(a=a.copy(),isNaN(a.width)&&(a.width=1/0),isNaN(a.height)&&(a.height=1/0),a.freeze(),Os(this),this.A.o=a,this.v(),this.g("maxSize",x,a))}},measuredBounds:{get:function(){return this.uc}},naturalBounds:{get:function(){return this.dc}},margin:{get:function(){return this.Kg},set:function(a){typeof a=="number"&&(a=new yr(a));var x=this.Kg;x.D(a)||(this.Kg=a=a.J(),this.v(),this.g("margin",x,a))}},transform:{get:function(){return this.l&2048&&th(this),this.Ab}},oe:{get:function(){return this.l&4096&&th(this),this.wh}},animationTriggers:{get:function(){return this.A!==null?this.A.hb:null},set:function(a){this.animationTriggers!==a&&(Os(this),this.A.hb=a)}},reshapingBehavior:{get:function(){return this.A!==null?this.A.Pf:li},set:function(a){this.reshapingBehavior!==a&&(Os(this),this.A.Pf=a)}},alignment:{get:function(){return this.Jb},set:function(a){var x=this.Jb;x.D(a)||(a.Mc()&&!a.Xb()&&hn("GraphObject.alignment for "+this+" must be a real Spot or Spot.Default, not: "+a),this.Jb=a=a.J(),ld(this),this.g("alignment",x,a))}},column:{get:function(){return this.Ag},set:function(a){a=Math.round(a);var x=this.Ag;x!==a&&(0>a&&Xo(a,">= 0",nn,"column"),this.Ag=a,this.v(),this.g("column",x,a),this.svg!==null&&this.svg.remove())}},columnSpan:{get:function(){return this.A!==null?this.A.ob:1},set:function(a){a=Math.round(a);var x=this.columnSpan;x!==a&&(1>a&&Xo(a,">= 1",nn,"columnSpan"),Os(this),this.A.ob=a,this.v(),this.g("columnSpan",x,a))}},row:{get:function(){return this.io},set:function(a){a=Math.round(a);var x=this.io;x!==a&&(0>a&&Xo(a,">= 0",nn,"row"),this.io=a,this.v(),this.g("row",x,a),this.svg!==null&&this.svg.remove())}},rowSpan:{get:function(){return this.A!==null?this.A.Bi:1},set:function(a){a=Math.round(a);var x=this.rowSpan;x!==a&&(1>a&&Xo(a,">= 1",nn,"rowSpan"),Os(this),this.A.Bi=a,this.v(),this.g("rowSpan",x,a))}},spanAllocation:{get:function(){return this.A!==null?this.A.Di:null},set:function(a){var x=this.spanAllocation;x!==a&&(Os(this),this.A.Di=a,this.v(),this.g("spanAllocation",x,a))}},alignmentFocus:{get:function(){return this.sk},set:function(a){var x=this.sk;x.D(a)||(this.sk=a=a.J(),this.v(),this.g("alignmentFocus",x,a))}},portId:{get:function(){return this.Yn},set:function(a){var x=this.Yn;if(x!==a){var b=this.part;b===null||b instanceof ar||hn("Cannot set portID on a Link: "+a),x!==null&&b!==null&&KS(b,this),this.Yn=a,a!==null&&b!==null&&(b.Te=!0,dw(b,this)),this.g("portId",x,a)}}},toSpot:{get:function(){return this.ba!==null?this.ba.yj:Cs},set:function(a){var x=this.toSpot;x.D(a)||(a=a.J(),this.Xc(),this.ba.yj=a,this.g("toSpot",x,a),Xf(this))}},toEndSegmentLength:{get:function(){return this.ba!==null?this.ba.wj:10},set:function(a){var x=this.toEndSegmentLength;x!==a&&(0>a&&Xo(a,">= 0",nn,"toEndSegmentLength"),this.Xc(),this.ba.wj=a,this.g("toEndSegmentLength",x,a),Xf(this))}},toShortLength:{get:function(){return this.ba!==null?this.ba.xj:0},set:function(a){var x=this.toShortLength;x!==a&&(this.Xc(),this.ba.xj=a,this.g("toShortLength",x,a),Xf(this))}},toLinkable:{get:function(){return this.ba!==null?this.ba.Tr:null},set:function(a){var x=this.toLinkable;x!==a&&(this.Xc(),this.ba.Tr=a,this.g("toLinkable",x,a))}},toMaxLinks:{get:function(){return this.ba!==null?this.ba.Ur:1/0},set:function(a){var x=this.toMaxLinks;x!==a&&(0>a&&Xo(a,">= 0",nn,"toMaxLinks"),this.Xc(),this.ba.Ur=a,this.g("toMaxLinks",x,a))}},fromSpot:{get:function(){return this.ba!==null?this.ba.Xi:Cs},set:function(a){var x=this.fromSpot;x.D(a)||(a=a.J(),this.Xc(),this.ba.Xi=a,this.g("fromSpot",x,a),Xf(this))}},fromEndSegmentLength:{get:function(){return this.ba!==null?this.ba.Vi:10},set:function(a){var x=this.fromEndSegmentLength;x!==a&&(0>a&&Xo(a,">= 0",nn,"fromEndSegmentLength"),this.Xc(),this.ba.Vi=a,this.g("fromEndSegmentLength",x,a),Xf(this))}},fromShortLength:{get:function(){return this.ba!==null?this.ba.Wi:0},set:function(a){var x=this.fromShortLength;x!==a&&(this.Xc(),this.ba.Wi=a,this.g("fromShortLength",x,a),Xf(this))}},fromLinkable:{get:function(){return this.ba!==null?this.ba.hq:null},set:function(a){var x=this.fromLinkable;x!==a&&(this.Xc(),this.ba.hq=a,this.g("fromLinkable",x,a))}},fromMaxLinks:{get:function(){return this.ba!==null?this.ba.iq:1/0},set:function(a){var x=this.fromMaxLinks;x!==a&&(0>a&&Xo(a,">= 0",nn,"fromMaxLinks"),this.Xc(),this.ba.iq=a,this.g("fromMaxLinks",x,a))}},cursor:{get:function(){return this.A!==null?this.A.j:""},set:function(a){var x=this.cursor;x!==a&&(Os(this),this.A.j=a,this.g("cursor",x,a))}},click:{get:function(){return this.A!==null?this.A.zh:null},set:function(a){var x=this.click;x!==a&&(Os(this),this.A.zh=a,this.g("click",x,a))}},doubleClick:{get:function(){return this.A!==null?this.A.Fh:null},set:function(a){var x=this.doubleClick;x!==a&&(Os(this),this.A.Fh=a,this.g("doubleClick",x,a))}},contextClick:{get:function(){return this.A!==null?this.A.Bh:null},set:function(a){var x=this.contextClick;x!==a&&(Os(this),this.A.Bh=a,this.g("contextClick",x,a))}},mouseEnter:{get:function(){return this.A!==null?this.A.Mh:null},set:function(a){var x=this.mouseEnter;x!==a&&(Os(this),this.A.Mh=a,this.g("mouseEnter",x,a))}},mouseLeave:{get:function(){return this.A!==null?this.A.Ph:null},set:function(a){var x=this.mouseLeave;x!==a&&(Os(this),this.A.Ph=a,this.g("mouseLeave",x,a))}},mouseOver:{get:function(){return this.A!==null?this.A.Qh:null},set:function(a){var x=this.mouseOver;x!==a&&(Os(this),this.A.Qh=a,this.g("mouseOver",x,a))}},mouseHover:{get:function(){return this.A!==null?this.A.Oh:null},set:function(a){var x=this.mouseHover;x!==a&&(Os(this),this.A.Oh=a,this.g("mouseHover",x,a))}},mouseHold:{get:function(){return this.A!==null?this.A.Nh:null},set:function(a){var x=this.mouseHold;x!==a&&(Os(this),this.A.Nh=a,this.g("mouseHold",x,a))}},mouseDragEnter:{get:function(){return this.A!==null?this.A.Of:null},set:function(a){var x=this.mouseDragEnter;x!==a&&(Os(this),this.A.Of=a,this.g("mouseDragEnter",x,a))}},mouseDragLeave:{get:function(){return this.A!==null?this.A.Xd:null},set:function(a){var x=this.mouseDragLeave;x!==a&&(Os(this),this.A.Xd=a,this.g("mouseDragLeave",x,a))}},mouseDrop:{get:function(){return this.A!==null?this.A.Lh:null},set:function(a){var x=this.mouseDrop;x!==a&&(Os(this),this.A.Lh=a,this.g("mouseDrop",x,a))}},actionDown:{get:function(){return this.A!==null?this.A.V:null},set:function(a){var x=this.actionDown;x!==a&&(Os(this),this.A.V=a,this.g("actionDown",x,a))}},actionMove:{get:function(){return this.A!==null?this.A.ia:null},set:function(a){var x=this.actionMove;x!==a&&(Os(this),this.A.ia=a,this.g("actionMove",x,a))}},actionUp:{get:function(){return this.A!==null?this.A.Ha:null},set:function(a){var x=this.actionUp;x!==a&&(Os(this),this.A.Ha=a,this.g("actionUp",x,a))}},actionCancel:{get:function(){return this.A!==null?this.A.F:null},set:function(a){var x=this.actionCancel;x!==a&&(Os(this),this.A.F=a,this.g("actionCancel",x,a))}},toolTip:{get:function(){return this.A!==null?this.A.$h:null},set:function(a){var x=this.toolTip;x!==a&&(Os(this),this.A.$h=a,this.g("toolTip",x,a))}},contextMenu:{get:function(){return this.A!==null?this.A.Ch:null},set:function(a){var x=this.contextMenu;x!==a&&(Os(this),this.A.Ch=a,this.g("contextMenu",x,a))}}}),nn.prototype.trigger=nn.prototype.Jv,nn.prototype.findBindingPanel=nn.prototype.ih,nn.prototype.findTemplateBinder=nn.prototype.pz,nn.prototype.setProperties=nn.prototype.nm,nn.prototype.apply=nn.prototype.apply,nn.prototype.attach=nn.prototype.Du,nn.prototype.set=nn.prototype.set,nn.prototype.isEnabledObject=nn.prototype.If,nn.prototype.isVisibleObject=nn.prototype.Ed,nn.prototype.isContainedBy=nn.prototype.rg,nn.prototype.getNearestIntersectionPoint=nn.prototype.rs,nn.prototype.getLocalPoint=nn.prototype.qs,nn.prototype.getDocumentScale=nn.prototype.Df,nn.prototype.getDocumentAngle=nn.prototype.li,nn.prototype.getDocumentBounds=nn.prototype.mi,nn.prototype.getDocumentPoint=nn.prototype.ga,nn.prototype.intersectsRect=nn.prototype.Yc,nn.prototype.containedInRect=nn.prototype.fh,nn.prototype.containsRect=nn.prototype.Re,nn.prototype.containsPoint=nn.prototype.ca,nn.prototype.raiseChanged=nn.prototype.g,nn.prototype.raiseChangedEvent=nn.prototype.cb,nn.prototype.addCopyProperty=nn.prototype.Vw;var um=null;nn.className="GraphObject",um=new kn,fp("Button",function(){function a(b,te){return b.diagram.ic(b.documentPoint,function(re){for(;re.panel!==null&&!re.isActionable;)re=re.panel;return re},function(re){return re===te})!==null}var x=cd(Pi,Pi.Auto,{isActionable:!0,enabledChanged:function(b,te){if(b instanceof Pi){var re=b.fb("ButtonBorder");re!==null&&(re.fill=te?b._buttonFillNormal:b._buttonFillDisabled)}},cursor:"pointer",_buttonFillNormal:"#F5F5F5",_buttonStrokeNormal:"#BDBDBD",_buttonFillOver:"#E0E0E0",_buttonStrokeOver:"#9E9E9E",_buttonFillPressed:"#BDBDBD",_buttonStrokePressed:"#9E9E9E",_buttonFillDisabled:"#E5E5E5"},cd(xs,{name:"ButtonBorder",figure:"RoundedRectangle",spot1:new Ii(0,0,2.76142374915397,2.761423749153969),spot2:new Ii(1,1,-2.76142374915397,-2.761423749153969),parameter1:2,parameter2:2,fill:"#F5F5F5",stroke:"#BDBDBD"}));return x.mouseEnter=function(b,te){if(te.If()&&te instanceof Pi&&(b=te.fb("ButtonBorder"),b instanceof xs)){var re=te._buttonFillOver;te._buttonFillNormal=b.fill,b.fill=re,re=te._buttonStrokeOver,te._buttonStrokeNormal=b.stroke,b.stroke=re}},x.mouseLeave=function(b,te){te.If()&&te instanceof Pi&&(b=te.fb("ButtonBorder"),b instanceof xs&&(b.fill=te._buttonFillNormal,b.stroke=te._buttonStrokeNormal))},x.actionDown=function(b,te){if(te.If()&&te instanceof Pi&&te._buttonFillPressed!==null&&b.button===0){var re=te.fb("ButtonBorder");if(re instanceof xs){b=b.diagram;var oe=b.skipsUndoManager;b.skipsUndoManager=!0;var le=te._buttonFillPressed;te._buttonFillOver=re.fill,re.fill=le,le=te._buttonStrokePressed,te._buttonStrokeOver=re.stroke,re.stroke=le,b.skipsUndoManager=oe}}},x.actionUp=function(b,te){if(te.If()&&te instanceof Pi&&te._buttonFillPressed!==null&&b.button===0){var re=te.fb("ButtonBorder");if(re instanceof xs){var oe=b.diagram,le=oe.skipsUndoManager;oe.skipsUndoManager=!0,a(b,te)?(re.fill=te._buttonFillOver,re.stroke=te._buttonStrokeOver):(re.fill=te._buttonFillNormal,re.stroke=te._buttonStrokeNormal),oe.skipsUndoManager=le}}},x.actionCancel=function(b,te){if(te.If()&&te instanceof Pi&&te._buttonFillPressed!==null){var re=te.fb("ButtonBorder");if(re instanceof xs){var oe=b.diagram,le=oe.skipsUndoManager;oe.skipsUndoManager=!0,a(b,te)?(re.fill=te._buttonFillOver,re.stroke=te._buttonStrokeOver):(re.fill=te._buttonFillNormal,re.stroke=te._buttonStrokeNormal),oe.skipsUndoManager=le}}},x.actionMove=function(b,te){if(te.If()&&te instanceof Pi&&te._buttonFillPressed!==null){var re=b.diagram;if(re.firstInput.button===0&&(re.currentTool.standardMouseOver(),a(b,te)&&(b=te.fb("ButtonBorder"),b instanceof xs))){var oe=re.skipsUndoManager;re.skipsUndoManager=!0;var le=te._buttonFillPressed;b.fill!==le&&(b.fill=le),le=te._buttonStrokePressed,b.stroke!==le&&(b.stroke=le),re.skipsUndoManager=oe}}},x}),fp("TreeExpanderButton",function(){var a=cd("Button",{_treeExpandedFigure:"MinusLine",_treeCollapsedFigure:"PlusLine"},cd(xs,{name:"ButtonIcon",figure:"MinusLine",stroke:"#424242",strokeWidth:2,desiredSize:Qn},new tc("figure","isTreeExpanded",function(x,b){return b=b.panel,x?b._treeExpandedFigure:b._treeCollapsedFigure}).cp()),{visible:!1},new tc("visible","isTreeLeaf",function(x){return!x}).cp());return a.click=function(x,b){if(b=b.part,b instanceof Ca&&(b=b.adornedPart),b instanceof ar){var te=b.diagram;if(te!==null){if(te=te.commandHandler,b.isTreeExpanded){if(!te.canCollapseTree(b))return}else if(!te.canExpandTree(b))return;x.handled=!0,b.isTreeExpanded?te.collapseTree(b):te.expandTree(b)}}},a}),fp("SubGraphExpanderButton",function(){var a=cd("Button",{_subGraphExpandedFigure:"MinusLine",_subGraphCollapsedFigure:"PlusLine"},cd(xs,{name:"ButtonIcon",figure:"MinusLine",stroke:"#424242",strokeWidth:2,desiredSize:Qn},new tc("figure","isSubGraphExpanded",function(x,b){return b=b.panel,x?b._subGraphExpandedFigure:b._subGraphCollapsedFigure}).cp()));return a.click=function(x,b){if(b=b.part,b instanceof Ca&&(b=b.adornedPart),b instanceof ts){var te=b.diagram;if(te!==null){if(te=te.commandHandler,b.isSubGraphExpanded){if(!te.canCollapseSubGraph(b))return}else if(!te.canExpandSubGraph(b))return;x.handled=!0,b.isSubGraphExpanded?te.collapseSubGraph(b):te.expandSubGraph(b)}}},a}),fp("ToolTip",function(){return cd(Ca,Pi.Auto,{isShadowed:!0,shadowColor:"rgba(0, 0, 0, .4)",shadowOffset:new it(0,3),shadowBlur:5},cd(xs,{name:"Border",figure:"RoundedRectangle",parameter1:1,parameter2:1,fill:"#F5F5F5",stroke:"#F0F0F0",spot1:new Ii(0,0,4,6),spot2:new Ii(1,1,-4,-4)}))}),fp("ContextMenu",function(){return cd(Ca,Pi.Vertical,{background:"#F5F5F5",isShadowed:!0,shadowColor:"rgba(0, 0, 0, .4)",shadowOffset:new it(0,3),shadowBlur:5},new tc("background","",function(a){return a.adornedPart!==null&&a.placeholder!==null?null:"#F5F5F5"}))}),fp("ContextMenuButton",function(){var a=cd("Button");a.stretch=no;var x=a.fb("ButtonBorder");return x instanceof xs&&(x.figure="Rectangle",x.strokeWidth=0,x.spot1=new Ii(0,0,2,3),x.spot2=new Ii(1,1,-2,-2)),a}),fp("PanelExpanderButton",function(a){var x=pp(a,"COLLAPSIBLE"),b=cd("Button",{_buttonExpandedFigure:"M0 0 M0 6 L4 2 8 6 M8 8",_buttonCollapsedFigure:"M0 0 M0 2 L4 6 8 2 M8 8",_buttonFillNormal:"rgba(0, 0, 0, 0)",_buttonStrokeNormal:null,_buttonFillOver:"rgba(0, 0, 0, .2)",_buttonStrokeOver:null,_buttonFillPressed:"rgba(0, 0, 0, .4)",_buttonStrokePressed:null},cd(xs,{name:"ButtonIcon",strokeWidth:2},new tc("geometryString","visible",function(te){return te?b._buttonExpandedFigure:b._buttonCollapsedFigure}).cp(x)));return a=b.fb("ButtonBorder"),a instanceof xs&&(a.stroke=null,a.fill="rgba(0, 0, 0, 0)"),b.click=function(te,re){var oe=re.diagram;if(oe!==null&&!oe.isReadOnly){var le=re.ih();le===null&&(le=re.part),le!==null&&(re=le.fb(x),re!==null&&(te.handled=!0,oe.Ea("Collapse/Expand Panel"),re.visible=!re.visible,oe.eb("Collapse/Expand Panel")))}},b}),fp("CheckBoxButton",function(a){var x=pp(a);return a=cd("Button",{desiredSize:new Dt(14,14)},cd(xs,{name:"ButtonIcon",geometryString:"M0 0 M0 8.85 L4.9 13.75 16.2 2.45 M16.2 16.2",strokeWidth:2,stretch:wi,geometryStretch:jr,visible:!1},x!==""?new tc("visible",x).Kx():[])),a.click=function(b,te){if(te instanceof Pi){var re=b.diagram;if(!(re===null||re.isReadOnly||x!==""&&re.model.isReadOnly)){b.handled=!0;var oe=te.fb("ButtonIcon");re.Ea("checkbox"),oe.visible=!oe.visible,typeof te._doClick=="function"&&te._doClick(b,te),re.eb("checkbox")}}},a}),fp("CheckBox",function(a){a=pp(a),a=cd("CheckBoxButton",a,{name:"Button",isActionable:!1,margin:new yr(0,1,0,0)});var x=cd(Pi,"Horizontal",a,{isActionable:!0,cursor:a.cursor,margin:new yr(1),_buttonFillNormal:a._buttonFillNormal,_buttonStrokeNormal:a._buttonStrokeNormal,_buttonFillOver:a._buttonFillOver,_buttonStrokeOver:a._buttonStrokeOver,_buttonFillPressed:a._buttonFillPressed,_buttonStrokePressed:a._buttonStrokePressed,_buttonFillDisabled:a._buttonFillDisabled,mouseEnter:a.mouseEnter,mouseLeave:a.mouseLeave,actionDown:a.actionDown,actionUp:a.actionUp,actionCancel:a.actionCancel,actionMove:a.actionMove,click:a.click,_buttonClick:a.click});return a.mouseEnter=null,a.mouseLeave=null,a.actionDown=null,a.actionUp=null,a.actionCancel=null,a.actionMove=null,a.click=null,x}),nn.None=li=new Ni(nn,"None",0),nn.Default=rs=new Ni(nn,"Default",0),nn.Vertical=To=new Ni(nn,"Vertical",4),nn.Horizontal=no=new Ni(nn,"Horizontal",5),nn.Fill=wi=new Ni(nn,"Fill",3),nn.Uniform=jr=new Ni(nn,"Uniform",1),nn.UniformToFill=na=new Ni(nn,"UniformToFill",2),nn.FlipVertical=Ns=new Ni(nn,"FlipVertical",1),nn.FlipHorizontal=va=new Ni(nn,"FlipHorizontal",2),nn.FlipBoth=ml=new Ni(nn,"FlipBoth",3),nn.make=cd,nn.getBuilders=function(){var a=new kn,x;for(x in um)if(x!==x.toLowerCase()){var b=um.I(x);typeof b=="function"&&a.add(x,b)}return a.freeze(),a},nn.defineBuilder=fp,nn.build=function(a,x,b){for(var te=[],re=2;re<arguments.length;++re)te[re-2]=arguments[re];if(re=um.I(a),typeof re=="function"&&(te=re([a].concat(te)),te instanceof nn))return x&&te.set(x),te;hn('GraphObject.build invoked object builder "'+a+'", but it did not return an Object')},nn.takeBuilderArgument=pp;function Ic(){this.nc=!1,this.xa="",this.zp=-1,this.nb=this.wm=this.te=null,this.j="",this.hb=this.Di=this.Hb=this.Ch=this.$h=this.F=this.Ha=this.ia=this.V=this.Lh=this.Xd=this.Of=this.Nh=this.Oh=this.Qh=this.Ph=this.Mh=this.Bh=this.Fh=this.zh=null,this.u=Kt,this.o=Oi,this.hg=rs,this.ob=this.Bi=1,this.Pf=li,this.Pc=this.Ci=this.gd=null,this.Oc="category"}Ic.prototype.copy=function(){var a=new Ic;return a.xa=this.xa,a.zp=this.zp,a.te=this.te,a.nb=this.nb,a.j=this.j,a.zh=this.zh,a.Fh=this.Fh,a.Bh=this.Bh,a.Mh=this.Mh,a.Ph=this.Ph,a.Qh=this.Qh,a.Oh=this.Oh,a.Nh=this.Nh,a.Of=this.Of,a.Xd=this.Xd,a.Lh=this.Lh,a.V=this.V,a.ia=this.ia,a.Ha=this.Ha,a.F=this.F,a.$h=this.$h,a.Ch=this.Ch,a.Hb=this.Hb,a.Di=this.Di,a.hb=this.hb,a.u=this.u.J(),a.o=this.o.J(),a.hg=this.hg,a.Bi=this.Bi,a.ob=this.ob,a.Pf=this.Pf,a.gd=this.gd,a.Ci=this.Ci,a.Pc=this.Pc,a.Oc=this.Oc,a};function Bm(){this.u=-1/0,this.o=0,this.F=fr,this.rr=Th,this.j=this.V="None"}Bm.prototype.copy=function(){var a=new Bm;return a.u=this.u,a.o=this.o,a.F=this.F.J(),a.rr=this.rr,a.V=this.V,a.j=this.j,a},Bm.className="LinkElementSettings";function CC(){this.yj=this.Xi=Bl,this.xj=this.Wi=this.wj=this.Vi=NaN,this.Tr=this.hq=null,this.Ur=this.iq=1/0}CC.prototype.copy=function(){var a=new CC;return a.Xi=this.Xi.J(),a.yj=this.yj.J(),a.Vi=this.Vi,a.wj=this.wj,a.Wi=this.Wi,a.xj=this.xj,a.hq=this.hq,a.Tr=this.Tr,a.iq=this.iq,a.Ur=this.Ur,a},CC.className="LinkSettings";function gp(){this.ha=[1,0,0,1,0,0]}gp.prototype.copy=function(){var a=new gp;return a.ha[0]=this.ha[0],a.ha[1]=this.ha[1],a.ha[2]=this.ha[2],a.ha[3]=this.ha[3],a.ha[4]=this.ha[4],a.ha[5]=this.ha[5],a},gp.prototype.translate=function(a,x){this.ha[4]+=this.ha[0]*a+this.ha[2]*x,this.ha[5]+=this.ha[1]*a+this.ha[3]*x},gp.prototype.scale=function(a,x){this.ha[0]*=a,this.ha[1]*=a,this.ha[2]*=x,this.ha[3]*=x},gp.prototype.rotate=function(a,x,b){if(360<=a?a-=360:0>a&&(a+=360),a!==0){if(this.translate(x,b),a===90){a=0;var te=1}else a===180?(a=-1,te=0):a===270?(a=0,te=-1):(te=a*Math.PI/180,a=Math.cos(te),te=Math.sin(te));var re=this.ha[1]*a+this.ha[3]*te,oe=this.ha[0]*-te+this.ha[2]*a,le=this.ha[1]*-te+this.ha[3]*a;this.ha[0]=this.ha[0]*a+this.ha[2]*te,this.ha[1]=re,this.ha[2]=oe,this.ha[3]=le,this.translate(-x,-b)}},gp.className="STransform";function ow(a){this.type=a,this.r2=this.y2=this.x2=this.r1=this.y1=this.x1=0,this.gx=[],this.pattern=null}ow.prototype.addColorStop=function(a,x){this.gx.push({offset:a,color:x})},ow.className="SGradient";function qu(a,x,b){this.ownerDocument=a=x===void 0?ji.document:x,this.cA="http://www.w3.org/2000/svg",a!==void 0&&(this.Oa=this.Ud("svg",{width:"1px",height:"1px",viewBox:"0 0 1 1"}),this.style.display="block",this.style.letterSpacing="normal",this.style.wordSpacing="normal",this.Oa.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),this.Oa.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink")),this.hs=null,this.context=new Wh(this,b)}qu.prototype.resize=function(a,x,b,te){return this.width!==a||this.height!==x?(this.width=a,this.height=x,this.style.width=b+"px",this.style.height=te+"px",this.Oa.setAttributeNS(null,"width",b+"px"),this.Oa.setAttributeNS(null,"height",te+"px"),this.Oa.setAttributeNS(null,"viewBox","0 0 "+b+" "+te),this.context.ww.firstElementChild.setAttributeNS(null,"width",b+"px"),this.context.ww.firstElementChild.setAttributeNS(null,"height",te+"px"),!0):!1},qu.prototype.Ud=function(a,x,b){if(a=this.ownerDocument.createElementNS(this.cA,a),Ji(x))for(var te in x)a.setAttributeNS(te==="href"?"http://www.w3.org/1999/xlink":"",te,x[te]);return b!==void 0&&(a.textContent=b),a},qu.prototype.getBoundingClientRect=function(){return this.Oa.getBoundingClientRect()},qu.prototype.focus=function(){this.Oa.focus()},qu.prototype.mx=function(){this.ownerDocument=null},pn.Object.defineProperties(qu.prototype,{width:{get:function(){return this.Oa.width.baseVal.value},set:function(a){this.Oa.setAttribute("width",a+"px")}},height:{get:function(){return this.Oa.height.baseVal.value},set:function(a){this.Oa.setAttribute("height",a+"px")}},style:{get:function(){return this.Oa.style}}}),qu.className="SVGSurface";function Wh(a,x){this.Gv=a,this.svg=a.Oa,this.stack=[],this.nh=[],this.fillStyle="#000000",this.font="10px sans-serif",this.globalAlpha=1,this.lineCap="butt",this.lineDashOffset=0,this.lineJoin="miter",this.lineWidth=1,this.miterLimit=10,this.shadowBlur=0,this.shadowColor="rgba(0, 0, 0, 0)",this.shadowOffsetY=this.shadowOffsetX=0,this.Il=!1,this.strokeStyle="#000000",this.textAlign="start",this.clipInsteadOfFill=!1,this.Vg=this.Br=this.Ar=0,this.yd=this.ad=null,this.path=[],this.Yl={},this.Ct=!1,this.Yg=null,this.uj=0,this.rb=new gp,this.j=Ah(this),this.Nj=Ah(this,"gojs-diagram"),this.Hl=this.ti=null;var b=pc++,te=this.Ud("clipPath",{id:"mainClip"+b});te.appendChild(this.Ud("rect",{x:0,y:0,width:a.width,height:a.height})),this.ww=te,this.svg.appendChild(this.j),this.j.appendChild(this.Nj),this.svg.appendChild(te),this.j.setAttributeNS(null,"clip-path","url(#mainClip"+b+")"),this.eA={},this.isTemporary=!!x,this.filter="",this.bk=null}function $T(a,x,b,te,re,oe,le){a.Nj===void 0?Oc(a,x,b,te,re,oe,le):a.Nj.setAttribute("transform","matrix("+x+", "+b+", "+te+", "+re+", "+oe+", "+le+")")}We=Wh.prototype,We.arc=function(a,x,b,te,re,oe,le,fe){var ge=2*Math.PI,ye=ge-1e-6,we=b*Math.cos(te),be=b*Math.sin(te),ke=a+we,Ue=x+be,Ve=oe?0:1;te=oe?te-re:re-te,(1e-6<Math.abs(le-ke)||1e-6<Math.abs(fe-Ue))&&this.path.push(["L",ke,+Ue]),0>te&&(te=te%ge+ge),te>ye?(this.path.push(["A",b,b,0,1,Ve,a-we,x-be]),this.path.push(["A",b,b,0,1,Ve,ke,Ue])):1e-6<te&&this.path.push(["A",b,b,0,+(te>=Math.PI),Ve,a+b*Math.cos(re),x+b*Math.sin(re)])},We.beginPath=function(){this.path=[],this.Yl={stroke:"none",fill:"none"}},We.Se=function(a){this.addPath(this.path,this.rb,a||0)},We.bezierCurveTo=function(a,x,b,te,re,oe){this.path.push(["C",a,x,b,te,re,oe])},We.clearRect=function(){},We.clip=function(){this.Yl.clipPath=!0},We.closePath=function(){this.path.push(["z"])},We.createLinearGradient=function(a,x,b,te){var re=new ow("linear");return re.x1=a,re.y1=x,re.x2=b,re.y2=te,re},We.createPattern=function(a){var x="";a instanceof HTMLCanvasElement&&(x=a.toDataURL()),a instanceof HTMLImageElement&&(x=a.getAttribute("src"));var b=this.eA;if(b[x])return"url(#"+b[x]+")";var te="PATTERN"+pc++,re={x:0,y:0,width:a.width,height:a.height,href:x};return a=this.Ud("pattern",{width:a.width,height:a.height,id:te,patternUnits:"userSpaceOnUse"}),a.appendChild(this.Ud(tA,re)),this.svg.appendChild(a),b[x]=te,"url(#"+te+")"},We.createRadialGradient=function(a,x,b,te,re,oe){var le=new ow("radial");return le.x1=a,le.y1=x,le.r1=b,le.x2=te,le.y2=re,le.r2=oe,le};function mp(a,x,b,te,re,oe,le,fe,ge){te=fe/te,re=ge/re,oe===0&&le===0||a.rb.translate(oe,le),te===1&&re===1||a.rb.scale(te,re),x===0&&b===0||a.rb.translate(-x,-b)}We.drawImage=function(a,x,b,te,re,oe,le,fe,ge){var ye="";a instanceof HTMLCanvasElement&&(ye=a.toDataURL()),a instanceof HTMLImageElement&&(ye=a.getAttribute("src"));var we=a instanceof HTMLImageElement?a.naturalWidth:a.width;a=a instanceof HTMLImageElement?a.naturalHeight:a.height,te===void 0&&(oe=x,le=b,fe=te=we,ge=re=a),te=te||0,re=re||0,fe=fe||0,ge=ge||0,mp(this,x,b,te,re,oe||0,le||0,fe,ge),oe={x:0,y:0,width:we||te,height:a||re,href:ye},_t.$(te,fe)&&_t.$(re,ge)?ye.toLowerCase().indexOf(".svg")===-1&&ye.toLowerCase().indexOf("data:image/svg")===-1&&(oe.preserveAspectRatio="xMidYMid slice"):oe.preserveAspectRatio="none",(x!==0||b!==0||te!==we||re!==a)&&(te+=x,re+=b,oe["clip-path"]="path('M "+x+","+b+" L "+te+" "+b+" L "+te+" "+re+" L "+x+" "+re+" z')"),yh(this,tA,oe,this.rb),this.addElement(tA,oe)},We.fill=function(a){a&&(this.Yl["fill-rule"]="evenodd"),Zv(this,this.Yl)},We.ng=function(a,x){this.clipInsteadOfFill?this.clip():this.fill(x)},We.fillRect=function(a,x,b,te){a=[a,x,b,te],a={x:a[0],y:a[1],width:a[2],height:a[3]},yh(this,"fill",a,this.rb),this.addElement("rect",a)},We.ox=function(a,x,b,te){a={x:a,y:x,width:b,height:te},yh(this,"fill",a,this.rb),Zv(this,a),this.svg.prepend(this.Ud("rect",a))},We.fillText=function(a,x,b){a=[a,x,b],x=this.textAlign,x==="left"?x="start":x==="right"?x="end":x==="center"&&(x="middle"),x={x:a[1],y:a[2],style:"font: "+this.font,"text-anchor":x},yh(this,"fill",x,this.rb),this.addElement("text",x,a[0])},We.lineTo=function(a,x){this.path.push(["L",a,x])},We.moveTo=function(a,x){this.path.push(["M",a,x])},We.quadraticCurveTo=function(a,x,b,te){this.path.push(["Q",a,x,b,te])},We.rect=function(a,x,b,te){this.path.push(["M",a,x],["L",a+b,x],["L",a+b,x+te],["L",a,x+te],["z"])},We.restore=function(){this.rb=this.stack.pop(),this.path=this.stack.pop();var a=this.stack.pop();this.fillStyle=a.fillStyle,this.font=a.font,this.globalAlpha=a.globalAlpha,this.lineCap=a.lineCap,this.lineDashOffset=a.lineDashOffset,this.lineJoin=a.lineJoin,this.lineWidth=a.lineWidth,this.miterLimit=a.miterLimit,this.shadowBlur=a.shadowBlur,this.shadowColor=a.shadowColor,this.shadowOffsetX=a.shadowOffsetX,this.shadowOffsetY=a.shadowOffsetY,this.strokeStyle=a.strokeStyle,this.textAlign=a.textAlign,this.bk=a.bk},We.save=function(){this.stack.push({fillStyle:this.fillStyle,font:this.font,globalAlpha:this.globalAlpha,lineCap:this.lineCap,lineDashOffset:this.lineDashOffset,lineJoin:this.lineJoin,lineWidth:this.lineWidth,miterLimit:this.miterLimit,shadowBlur:this.shadowBlur,shadowColor:this.shadowColor,shadowOffsetX:this.shadowOffsetX,shadowOffsetY:this.shadowOffsetY,strokeStyle:this.strokeStyle,textAlign:this.textAlign,bk:this.bk});for(var a=[],x=0;x<this.path.length;x++)a.push(this.path[x]);this.stack.push(a),this.stack.push(this.rb.copy())},We.setTransform=function(a,x,b,te,re,oe){a===1&&x===0&&b===0&&te===1&&re===0&&oe===0||Oc(this,a,x,b,te,re,oe)};function n5(a){return a=a.rb.ha,"matrix("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+")"}We.scale=function(a,x){this.rb.scale(a,x)},We.translate=function(a,x){this.rb.translate(a,x)},We.transform=function(){},We.yc=function(){},We.stroke=function(){Tm(this,this.Yl)},We.jk=function(){this.clipInsteadOfFill||this.stroke()},We.Ud=function(a,x,b){return this.Gv.Ud(a,x,b)},We.addElement=function(a,x,b){return a=this.Ud(a,x,b),this.yd!==null?this.yd.appendChild(a):this.yd=a,this.ad=a};function yh(a,x,b,te){x==="fill"?Zv(a,b):x==="stroke"&&Tm(a,b),te!==null&&(a=te.ha,b.transform="matrix("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+")")}function Zv(a,x){a.fillStyle instanceof ow?x.fill=sf(a,a.fillStyle,!0):/^rgba\(/.test(a.fillStyle)?(a=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(a.fillStyle),x.fill="rgb("+a[1]+","+a[2]+","+a[3]+")",x["fill-opacity"]=a[4]):x.fill=a.fillStyle}function iA(a,x,b){b=b?"fill":"stroke",a.fillStyle instanceof ow?x.setAttributeNS(null,"fill",sf(a,a.fillStyle,!0)):/^rgba\(/.test(a.fillStyle)?(a=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(a.fillStyle),x.setAttributeNS(null,b,"rgb("+a[1]+","+a[2]+","+a[3]+")"),x.setAttributeNS(null,b+"-opacity",a[4])):x.setAttributeNS(null,b,a.fillStyle)}function Tm(a,x){if(a.strokeStyle instanceof ow)x.stroke=sf(a,a.strokeStyle,!1);else if(/^rgba\(/.test(a.strokeStyle)){var b=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(a.strokeStyle);x.stroke="rgb("+b[1]+","+b[2]+","+b[3]+")",x["stroke-opacity"]=b[4]}else x.stroke=a.strokeStyle;x["stroke-width"]=a.lineWidth,x["stroke-linecap"]=a.lineCap,x["stroke-linejoin"]=a.lineJoin,x["stroke-miterlimit"]=a.miterLimit,a.Ct&&(x["stroke-dasharray"]=a.Yg.toString(),x["stroke-dashoffset"]=a.uj)}function sf(a,x,b){var te="";if(te=a.Hl!==null?a.Hl.getAttribute(b?"fill":"stroke"):null,te!==null&&te.indexOf("GRAD")!==-1?(te=te.split("#")[1].slice(0,-1),b=a.svg.getElementById(te),b!==null&&b.remove()):te="GRAD"+pc++,x.type==="linear")b=a.Ud("linearGradient",{x1:x.x1,x2:x.x2,y1:x.y1,y2:x.y2,id:te,gradientUnits:"userSpaceOnUse"});else if(x.type==="radial")b=a.Ud("radialGradient",{x1:x.x1,x2:x.x2,y1:x.y1,y2:x.y2,r1:x.r1,r2:x.r2,id:te});else throw Error("invalid gradient");var re=x.gx;x=re.length;for(var oe=[],le=0;le<x;le++){var fe=re[le],ge=fe.color;fe={offset:fe.offset,"stop-color":ge},/^rgba\(/.test(ge)&&(ge=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(ge),fe["stop-color"]="rgb("+ge[1]+","+ge[2]+","+ge[3]+")",fe["stop-opacity"]=ge[4]),oe.push(fe)}for(oe.sort(function(ye,we){return ye.offset>we.offset?1:-1}),re=0;re<x;re++)b.appendChild(a.Ud("stop",oe[re]));return a.svg.appendChild(b),"url(#"+te+")"}We.addPath=function(a,x,b){for(var te=[],re=0;re<a.length;re++){var oe=wa(a[re]),le=[oe.shift()];if(le[0]==="A")le.push(oe.shift()+","+oe.shift(),oe.shift(),oe.shift()+","+oe.shift(),oe.shift()+","+oe.shift());else for(;oe.length;)le.push(oe.shift()+","+oe.shift());te.push(le.join(" "))}if(te=te.join(" "),a=this.Yl,a.clipPath)0<this.nh.length&&this.nh[this.nh.length-1].setAttributeNS(null,"clip-path",'path("'+te+'")');else if(a.d=te,yh(this,"",a,x),this.Hl!==null)if(x=this.Hl,x.nodeName!=="g")for(var fe in a)fe!=="transform"&&x.setAttributeNS(null,fe,a[fe]);else{fe=x.getElementsByTagName("path");for(var ge in a)ge!=="transform"&&fe[b].setAttributeNS(null,ge,a[ge])}else this.addElement("path",a)};function Oc(a,x,b,te,re,oe,le){var fe=new gp;fe.ha=[x,b,te,re,oe,le],x={},yh(a,"g",x,fe),fe=a.addElement("g",x),a.nh.push(fe)}function Ah(a,x){var b={};return x&&(b.class=x),x=a.addElement("g",b),a.nh.push(x),x}We.Ev=function(a,x,b){this.Ar=a,this.Br=x,this.Vg=b};function Hc(a){a.Il=!1,a.shadowOffsetX=0,a.shadowOffsetY=0,a.shadowBlur=0}function Fg(a){a.Il=!0,a.shadowOffsetX=a.Ar,a.shadowOffsetY=a.Br,a.shadowBlur=a.Vg}We.js=function(a,x){this.Ct=!0,this.Yg=a,this.uj=x},We.fs=function(){this.Ct=!1},We.Vc=function(){},We.Wx=function(){},Wh.prototype.rotate=function(a){this.rb.rotate(57.2958*a,0,0)},Wh.prototype.getImageData=function(){return null},Wh.prototype.measureText=function(){return null};function vx(a,x){x=x.getAttribute("fill"),x!==null&&(x=x.split("#"),x.length!==1&&(x=a.svg.getElementById(x[1].slice(0,-1)),x!==null&&a.svg.innerHTML.match(new RegExp(x.id,"g")).length===1&&x.remove()))}Wh.prototype.Hs=function(a){a.svg!==null&&a.svg.parentNode===this.Nj&&a.svg.remove()},Wh.className="SVGContext",wn.prototype.Cs=function(a){this.pj.contains("SVG")||this.bs("SVG",new qu(this,ji.document));var x=new qu(this,ji.document,!0);a===void 0&&(a=new Fa);var b=this;return fx(this,function(te,re){return te=wC(b,te,"SVG",x),te=te!==null?te.svg:null,typeof re=="function"?(re(te),null):te},a)},wn.prototype.makeSvg=wn.prototype.Cs,wn.prototype.av=function(a){return this.Cs(a)},wn.prototype.makeSVG=wn.prototype.av;function xh(a,x,b,te){this.ownerDocument=x=x===void 0?ji.document:x,this.hs=null,x=x.createElement("canvas"),x.tabIndex=0,this.Oa=x,this.context=new a0(x,b,te),x.H=a}xh.prototype.resize=function(a,x,b,te){return this.width!==a||this.height!==x?(this.width=a,this.height=x,this.style.width=b+"px",this.style.height=te+"px",!0):!1},xh.prototype.toDataURL=function(a,x){return this.Oa.toDataURL(a,x)},xh.prototype.getBoundingClientRect=function(){return this.Oa.getBoundingClientRect()},xh.prototype.focus=function(){this.Oa.focus()},xh.prototype.mx=function(){this.ownerDocument=this.Oa.H=null},pn.Object.defineProperties(xh.prototype,{width:{get:function(){return this.Oa.width},set:function(a){this.Oa.width=a}},height:{get:function(){return this.Oa.height},set:function(a){this.Oa.height=a}},style:{get:function(){return this.Oa.style}}}),xh.className="CanvasSurface";function a0(a,x,b){this.Z=a.getContext?a.getContext("2d",x):null,this.Z===null&&hn("Browser does not support HTML Canvas Element"),this.ct=this.et=this.dt="",this.Hm=!1,this.Vg=this.Br=this.Ar=0,this.Il=!1,this.El=new Br,this.isTemporary=!!b}We=a0.prototype,We.Wx=function(a){this.Z.imageSmoothingEnabled=a},We.arc=function(a,x,b,te,re,oe){this.Z.arc(a,x,b,te,re,oe)},We.beginPath=function(){this.Z.beginPath()},We.Se=function(){},We.bezierCurveTo=function(a,x,b,te,re,oe){this.Z.bezierCurveTo(a,x,b,te,re,oe)},We.clearRect=function(a,x,b,te){this.yc(),this.Z.clearRect(a,x,b,te)},We.clip=function(){this.Z.clip()},We.closePath=function(){this.Z.closePath()},We.createLinearGradient=function(a,x,b,te){return this.Z.createLinearGradient(a,x,b,te)},We.createPattern=function(a,x){return this.Z.createPattern(a,x)},We.createRadialGradient=function(a,x,b,te,re,oe){return this.Z.createRadialGradient(a,x,b,te,re,oe)},We.drawImage=function(a,x,b,te,re,oe,le,fe,ge){te===void 0?this.Z.drawImage(a,x,b):this.Z.drawImage(a,x,b,te,re,oe,le,fe,ge)},We.fill=function(a){this.Z.fill(a?"evenodd":"nonzero")},We.fillRect=function(a,x,b,te){this.Z.fillRect(a,x,b,te)},We.ox=function(a,x,b,te){this.Z.fillRect(a,x,b,te)},We.fillText=function(a,x,b){this.Z.fillText(a,x,b)},We.getImageData=function(a,x,b,te){return this.Z.getImageData(a,x,b,te)},We.lineTo=function(a,x){this.Z.lineTo(a,x)},We.measureText=function(a){return this.Z.measureText(a)},We.moveTo=function(a,x){this.Z.moveTo(a,x)},We.quadraticCurveTo=function(a,x,b,te){this.Z.quadraticCurveTo(a,x,b,te)},We.rect=function(a,x,b,te){this.Z.rect(a,x,b,te)},We.restore=function(){this.Z.restore()},We.save=function(){this.yc(),this.Z.save()},a0.prototype.rotate=function(a){this.El.rotate(57.2958*a,0,0)},We=a0.prototype,We.setTransform=function(a,x,b,te,re,oe){this.El.setTransform(a,x,b,te,re,oe)},We.scale=function(a,x){this.El.scale(a,x)},We.translate=function(a,x){this.El.translate(a,x)},We.stroke=function(){this.Z.stroke()},We.transform=function(a,x,b,te,re,oe){if(a!==1||x!==0||b!==0||te!==1||re!==0||oe!==0){var le=this.El,fe=le.m11*a+le.m21*x;a=le.m12*a+le.m22*x,x=le.m11*b+le.m21*te,b=le.m12*b+le.m22*te,le.dx=le.m11*re+le.m21*oe+le.dx,le.dy=le.m12*re+le.m22*oe+le.dy,le.m11=fe,le.m12=a,le.m21=x,le.m22=b}},We.yc=function(){var a=this.El;this.Z.setTransform(a.m11,a.m12,a.m21,a.m22,a.dx,a.dy)},We.ng=function(a,x){if(a instanceof Ws&&a.type===Ed){var b=a.yk;a=a.ft,a>b?(this.scale(b/a,1),this.translate((a-b)/2,0)):b>a&&(this.scale(1,a/b),this.translate(0,(b-a)/2)),this.Hm?this.clip():this.fill(x),a>b?(this.translate(-(a-b)/2,0),this.scale(1/(b/a),1)):b>a&&(this.translate(0,-(b-a)/2),this.scale(1,1/(a/b)))}else this.Hm?this.clip():this.fill(x)},We.jk=function(){this.Hm||this.stroke()},We.Ev=function(a,x,b){this.Ar=a,this.Br=x,this.Vg=b},We.js=function(a,x){var b=this.Z;b.setLineDash!==void 0&&(b.setLineDash(a),b.lineDashOffset=x)},We.fs=function(){var a=this.Z;a.setLineDash!==void 0&&(a.setLineDash(Zb),a.lineDashOffset=0)},We.Vc=function(a){a&&(this.dt=""),this.ct=this.et=""},We.Hs=function(){},pn.Object.defineProperties(a0.prototype,{fillStyle:{get:function(){return this.Z.fillStyle},set:function(a){this.ct!==a&&(this.ct=this.Z.fillStyle=a)}},font:{get:function(){return this.Z.font},set:function(a){this.dt!==a&&(this.dt=this.Z.font=a)}},globalAlpha:{get:function(){return this.Z.globalAlpha},set:function(a){this.Z.globalAlpha=a}},lineCap:{get:function(){return this.Z.lineCap},set:function(a){this.Z.lineCap=a}},lineDashOffset:{get:function(){return this.Z.lineDashOffset},set:function(a){this.Z.lineDashOffset=a}},lineJoin:{get:function(){return this.Z.lineJoin},set:function(a){this.Z.lineJoin=a}},lineWidth:{get:function(){return this.Z.lineWidth},set:function(a){this.Z.lineWidth=a}},miterLimit:{get:function(){return this.Z.miterLimit},set:function(a){this.Z.miterLimit=a}},shadowBlur:{get:function(){return this.Z.shadowBlur},set:function(a){this.Z.shadowBlur=a}},shadowColor:{get:function(){return this.Z.shadowColor},set:function(a){this.Z.shadowColor=a}},shadowOffsetX:{get:function(){return this.Z.shadowOffsetX},set:function(a){this.Z.shadowOffsetX=a}},shadowOffsetY:{get:function(){return this.Z.shadowOffsetY},set:function(a){this.Z.shadowOffsetY=a}},strokeStyle:{get:function(){return this.Z.strokeStyle},set:function(a){this.et!==a&&(this.et=this.Z.strokeStyle=a)}},textAlign:{get:function(){return this.Z.textAlign},set:function(a){this.Z.textAlign=a}},imageSmoothingEnabled:{get:function(){return this.Z.imageSmoothingEnabled},set:function(a){this.Z.imageSmoothingEnabled=a}},filter:{get:function(){return this.Z.filter},set:function(a){this.Z.filter=a===""?"none":a}},clipInsteadOfFill:{get:function(){return this.Hm},set:function(a){this.Hm=a}}});var Zb=Object.freeze([]);a0.className="CanvasSurfaceContext";function Yv(){this.F=this.o=this.u=this.j=0}Yv.className="ColorNumbers";function Ws(a,x){l0||(yx(),l0=!0),$o(this),this._isFrozen=!1,a===void 0?(this.na=dg,this.xk="black"):typeof a=="string"?(this.na=dg,this.xk=a):(this.na=a,this.xk="black"),a=this.na,a===Zp?(this.Qd=Pa,this.Lk=Ms):this.Lk=a===Ed?this.Qd=eo:this.Qd=Cs,this.Gr=0,this.Xp=NaN,this.xe=this.cr=this.we=null,this.ft=this.yk=0,x&&Object.assign(this,x)}Ws.prototype.copy=function(){var a=new Ws;return a.na=this.na,a.xk=this.xk,a.Qd=this.Qd.J(),a.Lk=this.Lk.J(),a.Gr=this.Gr,a.Xp=this.Xp,this.we!==null&&(a.we=this.we.copy()),a.cr=this.cr,a},We=Ws.prototype,We.freeze=function(){return this._isFrozen=!0,this.we!==null&&this.we.freeze(),this},We.ka=function(){return Object.isFrozen(this)&&hn("cannot thaw constant: "+this),this._isFrozen=!1,this.we!==null&&this.we.ka(),this},We.qb=function(a){a.classType===Ws&&(this.type=a)},We.toString=function(){var a="Brush(";if(this.type===dg)a+=this.color;else if(a=this.type===Zp?a+"Linear ":this.type===Ed?a+"Radial ":this.type===u0?a+"Pattern ":a+"(unknown) ",a+=this.start+" "+this.end,this.colorStops!==null)for(var x=this.colorStops.iterator;x.next();)a+=" "+x.key+":"+x.value;return a+")"},We.addColorStop=function(a,x){return this._isFrozen&&Ar(this),(typeof a!="number"||!isFinite(a)||1<a||0>a)&&Xo(a,"0 <= loc <= 1",Ws,"addColorStop:loc"),this.we===null&&(this.we=new kn),this.we.add(a,x),this.na===dg&&(this.type=Zp),this.xe=null,this},We.Vz=function(a,x){if(this._isFrozen&&Ar(this),a=a===void 0||typeof a!="number"?.2:a,x=x===void 0?c0:x,this.type===dg)Qp(this.color),this.color=kg(a,x);else if((this.type===Zp||this.type===Ed)&&this.colorStops!==null)for(var b=this.colorStops.iterator;b.next();)Qp(b.value),this.addColorStop(b.key,kg(a,x));return this};function Lg(a,x,b){return x=x===void 0||typeof x!="number"?.2:x,b=b===void 0?c0:b,Qp(a),kg(x,b)}We.Wy=function(a,x){if(this._isFrozen&&Ar(this),a=a===void 0||typeof a!="number"?.2:a,x=x===void 0?c0:x,this.type===dg)Qp(this.color),this.color=kg(-a,x);else if((this.type===Zp||this.type===Ed)&&this.colorStops!==null)for(var b=this.colorStops.iterator;b.next();)Qp(b.value),this.addColorStop(b.key,kg(-a,x));return this};function Ig(a,x,b){return x=x===void 0||typeof x!="number"?.2:x,b=b===void 0?c0:b,Qp(a),kg(-x,b)}function rA(a,x,b){Qp(a),a=zl.j;var te=zl.u,re=zl.o,oe=zl.F;return Qp(x),b===void 0&&(b=.5),"rgba("+Math.round((zl.j-a)*b+a)+", "+Math.round((zl.u-te)*b+te)+", "+Math.round((zl.o-re)*b+re)+", "+Math.round((zl.F-oe)*b+oe)+")"}We.Gx=function(){if(this.type===dg)return Dm(this.color);if((this.type===Zp||this.type===Ed)&&this.colorStops!==null){var a=this.colorStops;if(this.type===Ed)return Dm(a.first().value);if(a.get(.5)!==null)return Dm(a.get(.5));if(a.count===2)return a=a.Fa(),Dm(rA(a[0].value,a[1].value));for(var x=a.iterator,b=-1,te=-1,re=1,oe=1;x.next();){var le=x.key,fe=Math.abs(.5-x.key);re>oe&&fe<re?(b=le,re=fe):oe>=re&&fe<oe&&(te=le,oe=fe)}return b>te&&(oe=b,b=te,te=oe,oe=re),re=te-b,Dm(rA(a.get(b),a.get(te),1-oe/re))}return!1};function Dm(a){return a?a instanceof Ws?a.Gx():(Qp(a),128>(299*zl.j+587*zl.u+114*zl.o)/1e3):!1}function kg(a,x){switch(x){case c0:x=100*oA(zl.j);var b=100*oA(zl.u),te=100*oA(zl.o);return Bh.j=.4124564*x+.3575761*b+.1804375*te,Bh.u=.2126729*x+.7151522*b+.072175*te,Bh.o=.0193339*x+.119192*b+.9503041*te,Bh.F=zl.F,x=Z0(Bh.j/Y0[0]),b=Z0(Bh.u/Y0[1]),te=Z0(Bh.o/Y0[2]),vp.j=116*b-16,vp.u=500*(x-b),vp.o=200*(b-te),vp.F=Bh.F,vp.j=Math.min(100,Math.max(0,vp.j+100*a)),a=(vp.j+16)/116,x=a-vp.o/200,Bh.j=Y0[0]*Jv(vp.u/500+a),Bh.u=Y0[1]*(vp.j>sA*Ax?Math.pow(a,3):vp.j/sA),Bh.o=Y0[2]*Jv(x),Bh.F=vp.F,a=-.969266*Bh.j+1.8760108*Bh.u+.041556*Bh.o,x=.0556434*Bh.j+-.2040259*Bh.u+1.0572252*Bh.o,zl.j=255*Kv((3.2404542*Bh.j+-1.5371385*Bh.u+-.4985314*Bh.o)/100),zl.u=255*Kv(a/100),zl.o=255*Kv(x/100),zl.F=Bh.F,zl.j=Math.round(zl.j),255<zl.j?zl.j=255:0>zl.j&&(zl.j=0),zl.u=Math.round(zl.u),255<zl.u?zl.u=255:0>zl.u&&(zl.u=0),zl.o=Math.round(zl.o),255<zl.o?zl.o=255:0>zl.o&&(zl.o=0),"rgba("+zl.j+", "+zl.u+", "+zl.o+", "+zl.F+")";case wx:return Yb(),hd.o=Math.min(100,Math.max(0,hd.o+100*a)),"hsla("+hd.j+", "+hd.u+"%, "+hd.o+"%, "+hd.F+")";default:hn("Unknown color space: "+x)}}function Qp(a){l0||(yx(),l0=!0);var x=xx;if(x!==null){x.clearRect(0,0,1,1),x.fillStyle="#000000";var b=x.fillStyle;x.fillStyle=a,x.fillStyle!==b?(x.fillRect(0,0,1,1),a=x.getImageData(0,0,1,1).data,zl.j=a[0],zl.u=a[1],zl.o=a[2],zl.F=a[3]/255):(x.fillStyle="#FFFFFF",x.fillStyle=a,zl.j=0,zl.u=0,zl.o=0,zl.F=1)}}function Yb(){var a=zl.j/255,x=zl.u/255,b=zl.o/255,te=Math.max(a,x,b),re=Math.min(a,x,b),oe=te-re;if(re=(te+re)/2,oe===0)var le=a=0;else{switch(te){case a:le=(x-b)/oe%6;break;case x:le=(b-a)/oe+2;break;case b:le=(a-x)/oe+4}le*=60,0>le&&(le+=360),a=oe/(1-Math.abs(2*re-1))}hd.j=Math.round(le),hd.u=Math.round(100*a),hd.o=Math.round(100*re),hd.F=zl.F}function oA(a){return a/=255,.04045>=a?a/12.92:Math.pow((a+.055)/1.055,2.4)}function Kv(a){return .0031308>=a?12.92*a:1.055*Math.pow(a,1/2.4)-.055}function Z0(a){return a>Ax?Math.pow(a,1/3):(sA*a+16)/116}function Jv(a){var x=a*a*a;return x>Ax?x:(116*a-16)/sA}function Og(a,x){typeof a!="string"&&(a instanceof Ws||hn("Value for "+x+" must be a color string or a Brush, not "+a))}function yx(){xx=zu?new xh(null,void 0,{willReadFrequently:!0}).context:null}pn.Object.defineProperties(Ws.prototype,{type:{get:function(){return this.na},set:function(a){this._isFrozen&&Ar(this,a),this.na=a,this.start.Mc()&&(a===Zp?this.start=Pa:a===Ed&&(this.start=eo)),this.end.Mc()&&(a===Zp?this.end=Ms:a===Ed&&(this.end=eo)),this.xe=null}},color:{get:function(){return this.xk},set:function(a){this._isFrozen&&Ar(this,a),this.xk=a,this.xe=null}},start:{get:function(){return this.Qd},set:function(a){this._isFrozen&&Ar(this,a),this.Qd=a.J(),this.xe=null}},end:{get:function(){return this.Lk},set:function(a){this._isFrozen&&Ar(this,a),this.Lk=a.J(),this.xe=null}},startRadius:{get:function(){return this.Gr},set:function(a){this._isFrozen&&Ar(this,a),0>a&&Xo(a,">= zero",Ws,"startRadius"),this.Gr=a,this.xe=null}},endRadius:{get:function(){return this.Xp},set:function(a){this._isFrozen&&Ar(this,a),0>a&&Xo(a,">= zero",Ws,"endRadius"),this.Xp=a,this.xe=null}},colorStops:{get:function(){return this.we},set:function(a){this._isFrozen&&Ar(this,a),this.we=a,this.xe=null}},pattern:{get:function(){return this.cr},set:function(a){this._isFrozen&&Ar(this,a),this.cr=a,this.xe=null}}}),Ws.prototype.isDark=Ws.prototype.Gx,Ws.prototype.darkenBy=Ws.prototype.Wy,Ws.prototype.lightenBy=Ws.prototype.Vz,Ws.prototype.addColorStop=Ws.prototype.addColorStop;var Ax=216/24389,sA=24389/27,Y0=[95.047,100,108.883],xx=null,zl=new Yv,hd=new Yv,Bh=new Yv,vp=new Yv,l0=!1;Ws.className="Brush";var dg;Ws.Solid=dg=new Ni(Ws,"Solid",0);var Zp;Ws.Linear=Zp=new Ni(Ws,"Linear",1);var Ed;Ws.Radial=Ed=new Ni(Ws,"Radial",2);var u0;Ws.Pattern=u0=new Ni(Ws,"Pattern",4);var c0;Ws.Lab=c0=new Ni(Ws,"Lab",5);var wx;Ws.HSL=wx=new Ni(Ws,"HSL",6),Ws.randomColor=function(a,x){a===void 0&&(a=128),x===void 0&&(x=Math.max(a,255));var b=Math.abs(x-a);x=Math.floor(a+Math.random()*b).toString(16);var te=Math.floor(a+Math.random()*b).toString(16);return a=Math.floor(a+Math.random()*b).toString(16),2>x.length&&(x="0"+x),2>te.length&&(te="0"+te),2>a.length&&(a="0"+a),"#"+x+te+a},Ws.isValidColor=function(a){if(a==="black")return!0;if(a==="")return!1;l0||(yx(),l0=!0);var x=xx;if(x===null)return!0;x.fillStyle="#000000";var b=x.fillStyle;return x.fillStyle=a,x.fillStyle!==b?!0:(x.fillStyle="#FFFFFF",b=x.fillStyle,x.fillStyle=a,x.fillStyle!==b)},Ws.lighten=function(a){return Lg(a)},Ws.lightenBy=Lg,Ws.darken=function(a){return Ig(a)},Ws.darkenBy=Ig,Ws.mix=rA,Ws.isDark=Dm;function lc(){this.xa="Base"}lc.prototype.measure=function(){},lc.prototype.Yz=function(a,x,b,te,re){a.measure(x,b,te,re)},lc.prototype.arrange=function(){},lc.prototype.Ly=function(a,x,b,te,re,oe){a.arrange(x,b,te,re,oe)},lc.prototype.iA=function(a){a.Uj()},lc.prototype.gc=function(){},pn.Object.defineProperties(lc.prototype,{name:{get:function(){return this.xa},set:function(a){this.xa=a}},classType:{get:function(){return Pi}}}),lc.prototype.remeasureObject=lc.prototype.iA,lc.prototype.arrangeElement=lc.prototype.Ly,lc.prototype.measureElement=lc.prototype.Yz,lc.className="PanelLayout";function qv(){this.xa="Base"}vn(qv,lc),qv.prototype.measure=function(a,x,b,te,re,oe,le){var fe=te.length;a=Nm(a);for(var ge=0;ge<fe;ge++){var ye=te[ge];if(ye.visible||ye===a){var we=ye.margin,be=we.right+we.left;we=we.top+we.bottom,ye.measure(x,b,oe,le);var ke=ye.measuredBounds;be=Math.max(ke.width+be,0),we=Math.max(ke.height+we,0),ke=ye.position.x;var Ue=ye.position.y;isFinite(ke)||(ke=0),isFinite(Ue)||(Ue=0),ye instanceof xs&&ye.isGeometryPositioned&&(ye=ye.strokeWidth/2,ke-=ye,Ue-=ye),Hr(re,ke,Ue,be,we)}}},qv.prototype.arrange=function(a,x,b){var te=x.length,re=a.padding;for(a=b.x-re.left,b=b.y-re.top,re=0;re<te;re++){var oe=x[re],le=oe.measuredBounds,fe=oe.margin,ge=oe.position.x,ye=oe.position.y;if(ge=isNaN(ge)?-a:ge-a,ye=isNaN(ye)?-b:ye-b,oe instanceof xs&&oe.isGeometryPositioned){var we=oe.strokeWidth/2;ge-=we,ye-=we}oe.visible&&oe.arrange(ge+fe.left,ye+fe.top,le.width,le.height)}};function _v(){this.xa="Base"}vn(_v,lc),_v.prototype.measure=function(a,x,b,te,re,oe,le){var fe=te.length;x=ys(),oe=Nm(a);for(var ge=0;ge<fe;ge++){var ye=te[ge];if(ye.visible||ye===oe){var we=bc(ye,!1);if(we!==li&&we!==no)x.push(ye);else{ye.measure(1/0,b,0,le),we=ye.margin,ye=ye.measuredBounds;var be=Math.max(ye.height+we.top+we.bottom,0);re.width+=Math.max(ye.width+we.right+we.left,0),re.height=Math.max(re.height,be)}}}for(te=x.length,a.desiredSize.height?b=Math.min(a.desiredSize.height,a.maxSize.height):re.height!==0&&(b=Math.min(re.height,a.maxSize.height)),a=0;a<te;a++)ge=x[a],(ge.visible||ge===oe)&&(we=ge.margin,fe=we.right+we.left,we=we.top+we.bottom,ge.measure(1/0,b,0,le),ge=ge.measuredBounds,we=Math.max(ge.height+we,0),re.width+=Math.max(ge.width+fe,0),re.height=Math.max(re.height,we));As(x)},_v.prototype.arrange=function(a,x,b){for(var te=x.length,re=a.padding,oe=re.top,le=a.isOpposite,fe=le?b.width:re.left,ge=0;ge<te;ge++){var ye=oe,we=x[ge];if(we.visible){var be=we.measuredBounds,ke=we.margin,Ue=ke.top+ke.bottom,Ve=oe+re.bottom,Ke=be.height,Pt=bc(we,!1);(isNaN(we.desiredSize.height)&&Pt===wi||Pt===To)&&(Ke=Math.max(b.height-Ue-Ve,0)),Ue=Ke+Ue+Ve,Ve=we.alignment,Ve.Xb()&&(Ve=a.defaultAlignment),Ve.sb()||(Ve=eo),le&&(fe-=be.width+ke.left+ke.right),we.arrange(fe+Ve.offsetX+ke.left,ye+Ve.offsetY+ke.top+(b.height*Ve.y-Ue*Ve.y),be.width,Ke),le||(fe+=be.width+ke.left+ke.right)}}};function $v(){this.xa="Base"}vn($v,lc),$v.prototype.measure=function(a,x,b,te,re,oe){var le=te.length;b=ys();for(var fe=Nm(a),ge=0;ge<le;ge++){var ye=te[ge];if(ye.visible||ye===fe){var we=bc(ye,!1);if(we!==li&&we!==To)b.push(ye);else{var be=ye.margin;we=be.right+be.left,be=be.top+be.bottom,ye.measure(x,1/0,oe,0),ye=ye.measuredBounds,er(re,Math.max(re.width,Math.max(ye.width+we,0)),re.height+Math.max(ye.height+be,0))}}}if(te=b.length,te!==0){for(a.desiredSize.width?x=Math.min(a.desiredSize.width,a.maxSize.width):re.width!==0&&(x=Math.min(re.width,a.maxSize.width)),a=0;a<te;a++)ge=b[a],(ge.visible||ge===fe)&&(ye=ge.margin,le=ye.right+ye.left,ye=ye.top+ye.bottom,ge.measure(x,1/0,oe,0),ge=ge.measuredBounds,ye=Math.max(ge.height+ye,0),re.width=Math.max(re.width,Math.max(ge.width+le,0)),re.height+=ye);As(b)}},$v.prototype.arrange=function(a,x,b){for(var te=x.length,re=a.padding,oe=re.left,le=a.isOpposite,fe=le?b.height:re.top,ge=0;ge<te;ge++){var ye=oe,we=x[ge];if(we.visible){var be=we.measuredBounds,ke=we.margin,Ue=ke.left+ke.right,Ve=oe+re.right,Ke=be.width,Pt=bc(we,!1);(isNaN(we.desiredSize.width)&&Pt===wi||Pt===no)&&(Ke=Math.max(b.width-Ue-Ve,0)),Ue=Ke+Ue+Ve,Ve=we.alignment,Ve.Xb()&&(Ve=a.defaultAlignment),Ve.sb()||(Ve=eo),le&&(fe-=be.height+ke.bottom+ke.top),we.arrange(ye+Ve.offsetX+ke.left+(b.width*Ve.x-Ue*Ve.x),fe+Ve.offsetY+ke.top,Ke,be.height),le||(fe+=be.height+ke.bottom+ke.top)}}};function ey(){this.xa="Base"}vn(ey,lc),ey.prototype.measure=function(a,x,b,te,re,oe,le){var fe=te.length,ge=a.Pb(),ye=ge.margin,we=ye.right+ye.left,be=ye.top+ye.bottom;ge.measure(x,b,oe,le);var ke=ge.measuredBounds;oe=ke.width,le=ke.height;var Ue=Math.max(oe+we,0),Ve=Math.max(le+be,0),Ke=a.isClipping,Pt=Yt.allocAt(-ye.left,-ye.top,Ue,Ve),ft=Yt.allocAt(0,0,oe,le);ty(ge,ft,!0),oe=ft.width,le=ft.height;for(var Nt=!0,Lt=Nm(a),Ut=0;Ut<fe;Ut++){var tn=te[Ut];ke=x;var xn=b;if(tn!==ge&&(tn.visible||tn===Lt)){ye=tn.margin;var nr=ye.left,Ir=ye.top;switch(Ue=ye.right+ye.left,Ve=ye.top+ye.bottom,ye=bc(tn,!1),ye){case wi:ke=oe,xn=le,Ir=nr=Ve=Ue=0;break;case no:ke=oe,nr=Ue=0;break;case To:xn=le,Ir=Ve=0}tn.measure(ke,xn,0,0),ke=tn.measuredBounds,Ue=Math.max(ke.width+Ue,0),Ve=Math.max(ke.height+Ve,0),ye=tn.alignment,ye.Xb()&&(ye=a.defaultAlignment),ye.sb()||(ye=eo);var br=tn.alignmentFocus;if(br.Xb()&&(br=eo),xn=null,tn instanceof Pi&&tn.$e!==""&&(xn=tn.fb(tn.$e),xn===tn&&(xn=null)),nr=ft.x-nr,Ir=ft.y-Ir,xn!==null){for(tn.arrange(0,0,ke.width,ke.height),ke=xn.actualBounds,ke=it.allocAt(ke.x+(br.x*ke.width-br.offsetX),ke.y+(br.y*ke.height-br.offsetY)),xn=xn.panel;xn!==tn;)xn.transform.Ga(ke),xn=xn.panel;nr+=ye.x*oe+ye.offsetX-ke.x,Ir+=ye.y*le+ye.offsetY-ke.y,it.free(ke)}else nr+=ye.x*oe+ye.offsetX-(br.x*ke.width+br.offsetX),Ir+=ye.y*le+ye.offsetY-(br.y*ke.height+br.offsetY);Nt?(Nt=!1,re.h(nr,Ir,Ue,Ve)):Hr(re,nr,Ir,Ue,Ve)}}switch(Nt?re.assign(Pt):Ke?re.Uu(ft.x,ft.y,ft.width,ft.height):Hr(re,Pt.x,Pt.y,Pt.width,Pt.height),Yt.free(Pt),Yt.free(ft),ye=ge.stretch,ye===rs&&(ye=bc(ge,!1)),ye){case li:return;case wi:if(!isFinite(x)&&!isFinite(b))return;break;case no:if(!isFinite(x))return;break;case To:if(!isFinite(b))return}for(ke=ge.measuredBounds,oe=ke.width,le=ke.height,Ue=Math.max(oe+we,0),Ve=Math.max(le+be,0),ye=ge.margin,ft=Yt.allocAt(-ye.left,-ye.top,Ue,Ve),ty(ge,ft,!0),oe=ft.width,le=ft.height,x=0;x<fe;x++)b=te[x],b===ge||!b.visible&&b!==Lt||(ye=b.margin,Ue=ye.right+ye.left,Ve=ye.top+ye.bottom,ke=b.measuredBounds,Ue=Math.max(ke.width+Ue,0),Ve=Math.max(ke.height+Ve,0),we=b.alignment,we.Xb()&&(we=a.defaultAlignment),we.sb()||(we=eo),b=b.alignmentFocus,b.Xb()&&(b=eo),Nt?(Nt=!1,re.h(we.x*oe+we.offsetX-(b.x*ke.width+b.offsetX)-ye.left,we.y*le+we.offsetY-(b.y*ke.height+b.offsetY)-ye.top,Ue,Ve)):Hr(re,we.x*oe+we.offsetX-(b.x*ke.width+b.offsetX)-ye.left,we.y*le+we.offsetY-(b.y*ke.height+b.offsetY)-ye.top,Ue,Ve));Nt?re.assign(Pt):Ke?re.Uu(ft.x,ft.y,ft.width,ft.height):Hr(re,Pt.x,Pt.y,Pt.width,Pt.height),Yt.free(ft)},ey.prototype.arrange=function(a,x,b){var te=x.length,re=a.Pb(),oe=re.measuredBounds,le=oe.width,fe=oe.height,ge=a.padding;oe=ge.left,ge=ge.top;var ye=oe-b.x,we=ge-b.y;for(re.arrange(ye,we,le,fe),le=Yt.allocAt(0,0,le,fe),ty(re,le,!1),fe=0;fe<te;fe++){var be=x[fe];if(be!==re){ye=be.measuredBounds;var ke=ye.width,Ue=ye.height;we=be.alignment,we.Xb()&&(we=a.defaultAlignment),we.sb()||(we=eo);var Ve=be.alignmentFocus;if(Ve.Xb()&&(Ve=eo),ye=null,be instanceof Pi&&be.$e!==""&&(ye=be.fb(be.$e),ye===be&&(ye=null)),ye!==null){var Ke=ye.actualBounds;for(Ve=it.allocAt(Ke.x+(Ve.x*Ke.width-Ve.offsetX),Ke.y+(Ve.y*Ke.height-Ve.offsetY)),ye=ye.panel;ye!==be;)ye.transform.Ga(Ve),ye=ye.panel;ye=we.x*le.width+we.offsetX-Ve.x,we=we.y*le.height+we.offsetY-Ve.y,it.free(Ve)}else ye=we.x*le.width+we.offsetX-(Ve.x*ke+Ve.offsetX),we=we.y*le.height+we.offsetY-(Ve.y*Ue+Ve.offsetY);ye+=le.x-b.x,we+=le.y-b.y,be.visible&&be.arrange(oe+ye,ge+we,ke,Ue)}}Yt.free(le)};function ty(a,x,b){var te=null;if(a instanceof Pi&&a.$e!==""&&(te=a.fb(a.$e),te===a&&(te=null)),te!==null)for(b&&a.arrange(0,0,x.width,x.height),x.assign(te.actualBounds),te=te.panel;te!==a;)te.transform.pp(x),te=te.panel}function sw(){this.xa="Base"}vn(sw,lc),sw.prototype.measure=function(a,x,b,te,re,oe,le){var fe=te.length,ge=a.Pb(),ye=ge.margin,we=x,be=b,ke=ye.right+ye.left,Ue=ye.top+ye.bottom;ge.measure(x,b,oe,le),ye=ge.measuredBounds;var Ve=0,Ke=null;ge instanceof xs&&(Ke=ge,Ve=Ke.strokeWidth*Ke.scale);var Pt=Math.max(ye.width+ke,0);ye=Math.max(ye.height+Ue,0);var ft=MC(ge),Nt=ft.x*Pt+ft.offsetX;ft=ft.y*ye+ft.offsetY;var Lt=yp(ge),Ut=Lt.x*Pt+Lt.offsetX;for(Lt=Lt.y*ye+Lt.offsetY,isFinite(x)&&(we=Math.max(Math.abs(Nt-Ut)-Ve,0)),isFinite(b)&&(be=Math.max(Math.abs(ft-Lt)-Ve,0)),Ve=Dt.alloc(),Ve.h(0,0),a=Nm(a),Lt=0;Lt<fe;Lt++)ft=te[Lt],ft===ge||!ft.visible&&ft!==a||(ye=ft.margin,Pt=ye.right+ye.left,Nt=ye.top+ye.bottom,ft.measure(we,be,0,0),ye=ft.measuredBounds,Pt=Math.max(ye.width+Pt,0),ye=Math.max(ye.height+Nt,0),Ve.h(Math.max(Pt,Ve.width),Math.max(ye,Ve.height)));if(fe===1)re.width=Pt,re.height=ye,Dt.free(Ve);else{switch(ft=MC(ge),Lt=yp(ge),fe=te=0,Lt.x!==ft.x&&Lt.y!==ft.y&&(te=Ve.width/Math.abs(Lt.x-ft.x),fe=Ve.height/Math.abs(Lt.y-ft.y)),Dt.free(Ve),Ve=0,Ke!==null&&(Ve=Ke.strokeWidth*Ke.scale,Mx(Ke)===jr&&(te=fe=Math.max(te,fe))),te+=Math.abs(ft.offsetX)+Math.abs(Lt.offsetX)+Ve,fe+=Math.abs(ft.offsetY)+Math.abs(Lt.offsetY)+Ve,Ke=ge.stretch,Ke===rs&&(Ke=bc(ge,!1)),Ke){case li:le=oe=0;break;case wi:isFinite(x)&&(te=x),isFinite(b)&&(fe=b);break;case no:isFinite(x)&&(te=x),le=0;break;case To:oe=0,isFinite(b)&&(fe=b)}ge.Uj(),ge.measure(te,fe,oe,le),re.width=ge.measuredBounds.width+ke,re.height=ge.measuredBounds.height+Ue}},sw.prototype.arrange=function(a,x){var b=x.length,te=a.Pb(),re=te.measuredBounds,oe=Yt.alloc();oe.h(0,0,1,1);var le=te.margin,fe=le.left;le=le.top;var ge=a.padding,ye=ge.left;ge=ge.top,te.arrange(ye+fe,ge+le,re.width,re.height);var we=MC(te),be=yp(te),ke=we.y*re.height+we.offsetY,Ue=be.x*re.width+be.offsetX;for(be=be.y*re.height+be.offsetY,oe.x=we.x*re.width+we.offsetX,oe.y=ke,Hr(oe,Ue,be,0,0),oe.x+=fe+ye,oe.y+=le+ge,re=0;re<b;re++)fe=x[re],fe!==te&&(ye=fe.measuredBounds,le=fe.margin,ge=Math.max(ye.width+le.right+le.left,0),we=Math.max(ye.height+le.top+le.bottom,0),ke=fe.alignment,ke.Xb()&&(ke=a.defaultAlignment),ke.sb()||(ke=eo),ge=oe.width*ke.x+ke.offsetX-ge*ke.x+le.left+oe.x,le=oe.height*ke.y+ke.offsetY-we*ke.y+le.top+oe.y,fe.visible&&(Zr(oe.x,oe.y,oe.width,oe.height,ge,le,ye.width,ye.height)?fe.arrange(ge,le,ye.width,ye.height):fe.arrange(ge,le,ye.width,ye.height,new Yt(oe.x,oe.y,oe.width,oe.height))));Yt.free(oe)};function aw(){this.xa="Base",this.name="Table"}vn(aw,lc),aw.prototype.measure=function(a,x,b,te,re){for(var oe=te.length,le=ys(),fe=ys(),ge=0;ge<oe;ge++){var ye=te[ge],we=ye instanceof Pi?ye:null;if(we!==null&&ry(we)&&ye.visible){fe.push(we);for(var be=we.O.s,ke=be.length,Ue=0;Ue<ke;Ue++){var Ve=be[Ue];we.type===Pi.TableRow?Ve.row=ye.row:we.type===Pi.TableColumn&&(Ve.column=ye.column),le.push(Ve)}}else le.push(ye)}oe=le.length,oe===0&&(a.Fb(0),a.Eb(0));for(var Ke=[],Pt=0;Pt<oe;Pt++){var ft=le[Pt];ft.visible&&(Mc(ft,!0),ud(ft,!0),Ke[ft.row]||(Ke[ft.row]=[]),Ke[ft.row][ft.column]||(Ke[ft.row][ft.column]=[]),Ke[ft.row][ft.column].push(ft))}As(le);var Nt=ys(),Lt=ys(),Ut=ys(),tn={count:0},xn={count:0},nr=x,Ir=b,br=a.rowDefs,Di=a.colDefs,ii=null;oe=br.length;for(var os=0;os<oe;os++)ii=br[os],ii!==void 0&&(ii.actual=0);oe=Di.length;for(var Oo=0;Oo<oe;Oo++)ii=Di[Oo],ii!==void 0&&(ii.actual=0);for(var Ha=Ke.length,Ql=0,kc=0;kc<Ha;kc++)Ke[kc]&&(Ql=Math.max(Ql,Ke[kc].length));var uc=Math.min(a.topIndex,Ha-1),md=Math.min(a.leftIndex,Ql-1),cc=0;Ha=Ke.length;for(var Sy=Nm(a),Sc=0;Sc<Ha;Sc++)if(Ke[Sc]){Ql=Ke[Sc].length;var Dp=a.Fb(Sc);Dp.actual=0;for(var Fd=Dp.oc=0;Fd<Ql;Fd++)if(Ke[Sc][Fd]){var Py=a.Eb(Fd);Nt[Fd]===void 0&&(Py.actual=0,Py.oc=0,Nt[Fd]=!0);for(var ep=Ke[Sc][Fd],Ld=ep.length,df=0;df<Ld;df++){var Id=ep[df];if(Id.visible||Id===Sy){var cv=1<Id.rowSpan||1<Id.columnSpan;cv&&(Sc<uc||Fd<md||Lt.push(Id));var Ag=Id.margin,NA=Ag.right+Ag.left,Ff=Ag.top+Ag.bottom,Lh=hg(Id,Dp,Py,!1),Ww=Id.desiredSize,S0=!isNaN(Ww.height),xg=!isNaN(Ww.width)&&S0;if(cv||Lh===li||xg||Sc<uc||Fd<md||(tn[Fd]!==void 0||Lh!==wi&&Lh!==no||(tn[Fd]=-1,tn.count++),xn[Sc]!==void 0||Lh!==wi&&Lh!==To||(xn[Sc]=-1,xn.count++),Ut.push(Id)),Id.measure(1/0,1/0,0,0),!(Sc<uc||Fd<md)){var ff=Id.measuredBounds,Cy=Math.max(ff.width+NA,0),ed=Math.max(ff.height+Ff,0);if(Id.rowSpan===1&&(Lh===li||Lh===no)){ii=a.Fb(Sc);var Ey=ii.Wc();cc=Math.max(ed-ii.actual,0),cc+Ey>Ir&&(cc=Math.max(Ir-Ey,0));var Qw=ii.oa===0;ii.oc=ii.oc+cc,ii.actual=ii.oa+cc,Ir=Math.max(Ir-(cc+(Qw?Ey:0)),0)}if(Id.columnSpan===1&&(Lh===li||Lh===To)){ii=a.Eb(Fd);var v1=ii.Wc();cc=Math.max(Cy-ii.actual,0),cc+v1>nr&&(cc=Math.max(nr-v1,0));var yE=ii.oa===0;ii.oc=ii.oc+cc,ii.actual=ii.oa+cc,nr=Math.max(nr-(cc+(yE?v1:0)),0)}cv&&Id.Uj()}}}}}As(Nt);var jm=0,Gm=0;oe=a.columnCount;for(var by=0;by<oe;by++){var hv=Di[by];hv!==void 0&&(jm+=isNaN(hv.Hc)?hv.oc:hv.Hc,hv.oc!==0&&(jm+=hv.Wc()))}oe=a.rowCount;for(var Zw=0;Zw<oe;Zw++){var My=br[Zw];My!==void 0&&(Gm+=isNaN(My.Hc)?My.oc:My.Hc,My.oc!==0&&(Gm+=My.Wc()))}nr=Math.max(x-jm,0);var P0=Ir=Math.max(b-Gm,0),dv=nr;oe=Ut.length;for(var Jd=0;Jd<oe;Jd++){var Qg=Ut[Jd],Yw=a.Fb(Qg.row),fv=a.Eb(Qg.column),By=Qg.measuredBounds,wg=Qg.margin,y1=wg.right+wg.left,Zg=wg.top+wg.bottom;tn[Qg.column]=fv.oc===0&&tn[Qg.column]!==void 0?Math.max(By.width+y1,tn[Qg.column]):null,xn[Qg.row]=Yw.oc===0&&xn[Qg.row]!==void 0?Math.max(By.height+Zg,xn[Qg.row]):null}var FA=0,Xm=0,Yg;for(Yg in xn)Yg!=="count"&&(FA+=xn[Yg]);for(Yg in tn)Yg!=="count"&&(Xm+=tn[Yg]);for(var sh=Dt.alloc(),A1=0;A1<oe;A1++){var vd=Ut[A1];if(vd.visible||vd===Sy){var ju=a.Fb(vd.row),td=a.Eb(vd.column),C0=0;isFinite(td.width)?C0=td.width:(isFinite(nr)&&tn[vd.column]!==null?Xm===0?C0=td.actual+nr:C0=tn[vd.column]/Xm*dv:tn[vd.column]!==null?C0=nr:C0=td.actual||nr,C0=Math.max(0,C0-td.Wc()));var eg=0;switch(isFinite(ju.height)?eg=ju.height:(isFinite(Ir)&&xn[vd.row]!==null?FA===0?eg=ju.actual+Ir:eg=xn[vd.row]/FA*P0:xn[vd.row]!==null?eg=Ir:eg=ju.actual||Ir,eg=Math.max(0,eg-ju.Wc())),sh.h(Math.max(td.minimum,Math.min(C0,td.maximum)),Math.max(ju.minimum,Math.min(eg,ju.maximum))),Lh=hg(vd,ju,td,!1),Lh){case no:sh.height=Math.max(sh.height,ju.actual+Ir);break;case To:sh.width=Math.max(sh.width,td.actual+nr)}var Kg=vd.margin,Q5=Kg.right+Kg.left,k2=Kg.top+Kg.bottom;vd.Uj(),vd.measure(sh.width,sh.height,td.minimum,ju.minimum);var Wm=vd.measuredBounds,Ty=Math.max(Wm.width+Q5,0),x1=Math.max(Wm.height+k2,0);isFinite(nr)&&(Ty=Math.min(Ty,sh.width)),isFinite(Ir)&&(x1=Math.min(x1,sh.height));var Ih=0;Ih=ju.actual,ju.actual=Math.max(ju.actual,x1),ju.oc=Math.max(ju.oc,x1),cc=ju.actual-Ih,Ir=Math.max(Ir-cc,0),xn[vd.row]===null&&(P0=Math.max(P0-cc,0)),Ih=td.actual,td.actual=Math.max(td.actual,Ty),td.oc=Math.max(td.oc,Ty),cc=td.actual-Ih,nr=Math.max(nr-cc,0),tn[vd.column]===null&&(dv=Math.max(dv-cc,0))}}As(Ut);var pv=Dt.alloc(),Am=ys(),Np=ys();if(oe=Lt.length,oe!==0){for(var E0=0;E0<Ha;E0++)if(Ke[E0]){Ql=Ke[E0].length;var Kw=a.Fb(E0);Am[E0]=Kw.actual;for(var b0=0;b0<Ql;b0++)if(Ke[E0][b0]){var AE=a.Eb(b0);Np[b0]=AE.actual}}}for(var Jw=0;Jw<oe;Jw++){var nc=Lt[Jw];if(nc.visible||nc===Sy){var Sg=a.Fb(nc.row),tg=a.Eb(nc.column);switch(sh.h(Math.max(tg.minimum,Math.min(x,tg.maximum)),Math.max(Sg.minimum,Math.min(b,Sg.maximum))),Lh=hg(nc,Sg,tg,!1),Lh){case wi:Np[tg.index]!==0&&(sh.width=Math.min(sh.width,Np[tg.index])),Am[Sg.index]!==0&&(sh.height=Math.min(sh.height,Am[Sg.index]));break;case no:Np[tg.index]!==0&&(sh.width=Math.min(sh.width,Np[tg.index]));break;case To:Am[Sg.index]!==0&&(sh.height=Math.min(sh.height,Am[Sg.index]))}isFinite(tg.width)&&(sh.width=tg.width),isFinite(Sg.height)&&(sh.height=Sg.height),pv.h(0,0);for(var xE=tg.minimum,Lf=Sg.minimum,gv=1;gv<nc.rowSpan&&!(nc.row+gv>=a.rowCount);gv++)ii=a.Fb(nc.row+gv),cc=0,cc=Lh===wi||Lh===To?Math.max(ii.minimum,Am[nc.row+gv]===0?ii.maximum:Math.min(Am[nc.row+gv],ii.maximum)):Math.max(ii.minimum,isNaN(ii.Hc)?ii.maximum:Math.min(ii.Hc,ii.maximum)),pv.height+=cc,Lf+=ii.minimum;for(var Su=1;Su<nc.columnSpan&&!(nc.column+Su>=a.columnCount);Su++)ii=a.Eb(nc.column+Su),cc=0,cc=Lh===wi||Lh===no?Math.max(ii.minimum,Np[nc.column+Su]===0?ii.maximum:Math.min(Np[nc.column+Su],ii.maximum)):Math.max(ii.minimum,isNaN(ii.Hc)?ii.maximum:Math.min(ii.Hc,ii.maximum)),pv.width+=cc,xE+=ii.minimum;sh.width+=pv.width,sh.height+=pv.height;var MP=nc.margin,Dy=MP.right+MP.left,BP=MP.top+MP.bottom;nc.measure(sh.width,sh.height,xE,Lf);for(var TP=nc.measuredBounds,Qm=Math.max(TP.width+Dy,0),Ny=Math.max(TP.height+BP,0),Fy=0,DP=0;DP<nc.rowSpan&&!(nc.row+DP>=a.rowCount);DP++)ii=a.Fb(nc.row+DP),Fy+=ii.total||0;if(Fy<Ny){var mv=Ny-Fy,M0=Ny-Fy;if(nc.spanAllocation!==null)for(var B0=nc.spanAllocation,Zm=0;Zm<nc.rowSpan&&!(0>=mv)&&!(nc.row+Zm>=a.rowCount);Zm++){ii=a.Fb(nc.row+Zm);var T0=ii.oa||0,vv=B0(nc,ii,M0);ii.actual=Math.min(ii.maximum,T0+vv),ii.oa!==T0&&(mv-=ii.oa-T0)}for(;0<mv;){var Pg=ii.oa||0;if(isNaN(ii.height)&&ii.maximum>Pg&&(ii.actual=Math.min(ii.maximum,Pg+mv),ii.oa!==Pg&&(mv-=ii.oa-Pg)),ii.index===0)break;ii=a.Fb(ii.index-1)}}for(var qw=0,xm=0;xm<nc.columnSpan&&!(nc.column+xm>=a.columnCount);xm++)ii=a.Eb(nc.column+xm),qw+=ii.total||0;if(qw<Qm){var LA=Qm-qw,Z5=Qm-qw;if(nc.spanAllocation!==null)for(var Ym=nc.spanAllocation,D0=0;D0<nc.columnSpan&&!(0>=LA)&&!(nc.column+D0>=a.columnCount);D0++){ii=a.Eb(nc.column+D0);var wE=ii.oa||0,SE=Ym(nc,ii,Z5);ii.actual=Math.min(ii.maximum,wE+SE),ii.oa!==wE&&(LA-=ii.oa-wE)}for(;0<LA;){var O2=ii.oa||0;if(isNaN(ii.width)&&ii.maximum>O2&&(ii.actual=Math.min(ii.maximum,O2+LA),ii.oa!==O2&&(LA-=ii.oa-O2)),ii.index===0)break;ii=a.Eb(ii.index-1)}}}}As(Lt),Dt.free(pv),Dt.free(sh),Am!==void 0&&As(Am),Np!==void 0&&As(Np);var Jg=0,yv=0,_w=a.desiredSize,v3=a.maxSize;Lh=bc(a,!0);var $w=Gm=jm=0,PE=0;oe=a.columnCount;for(var CE=0;CE<oe;CE++)Di[CE]!==void 0&&(ii=a.Eb(CE),isFinite(ii.width)?($w+=ii.width,$w+=ii.Wc()):bx(ii)===cA?($w+=ii.oa,$w+=ii.Wc()):ii.oa!==0&&(jm+=ii.oa,jm+=ii.Wc()));isFinite(_w.width)?Jg=Math.min(_w.width,v3.width):Jg=Lh!==li&&isFinite(x)?x:jm,Jg=Math.max(Jg,a.minSize.width),Jg=Math.max(Jg-$w,0);for(var Y5=jm===0?1:Math.max(Jg/jm,1),NP=0;NP<oe;NP++)Di[NP]!==void 0&&(ii=a.Eb(NP),isFinite(ii.width)||bx(ii)===cA||(ii.actual=ii.oa*Y5),ii.position=re.width,ii.oa!==0&&(re.width+=ii.oa,re.width+=ii.Wc()));oe=a.rowCount;for(var R2=0;R2<oe;R2++)br[R2]!==void 0&&(ii=a.Fb(R2),isFinite(ii.height)?(PE+=ii.height,PE+=ii.Wc()):bx(ii)===cA?(PE+=ii.oa,PE+=ii.Wc()):ii.oa!==0&&(Gm+=ii.oa,Gm+=ii.Wc()));isFinite(_w.height)?yv=Math.min(_w.height,v3.height):yv=Lh!==li&&isFinite(b)?b:Gm,yv=Math.max(yv,a.minSize.height),yv=Math.max(yv-PE,0);for(var EN=Gm===0?1:Math.max(yv/Gm,1),z2=0;z2<oe;z2++)br[z2]!==void 0&&(ii=a.Fb(z2),isFinite(ii.height)||bx(ii)===cA||(ii.actual=ii.oa*EN),ii.position=re.height,ii.oa!==0&&(re.height+=ii.oa,re.height+=ii.Wc()));oe=fe.length;for(var EE=0;EE<oe;EE++){var IA=fe[EE],bE=0,K5=0;IA.type===Pi.TableRow?(bE=re.width,ii=a.Fb(IA.row),K5=ii.actual):(ii=a.Eb(IA.column),bE=ii.actual,K5=re.height),IA.measuredBounds.h(0,0,bE,K5),Mc(IA,!1)}As(fe),a.inRowsCols=Ke},aw.prototype.arrange=function(a,x,b){var te=x.length,re=a.padding,oe=re.left;re=re.top;var le=a.inRowsCols;if(le!==null){for(var fe,ge,ye=le.length,we=0,be=0;be<ye;be++)le[be]&&(we=Math.max(we,le[be].length));ge=a.rowDefs,fe=a.colDefs;var ke=be=0,Ue=Math.min(a.topIndex,ye-1);if(0<ge.length){for(;Ue!==ye&&(ge[Ue]===void 0||ge[Ue].oa===0);)Ue++;Ue=Math.max(Math.min(Ue,ye-1),0),be=-ge[Ue].position}var Ve=Math.min(a.leftIndex,we-1);if(0<fe.length){for(;Ve!==we&&(fe[Ve]===void 0||fe[Ve].oa===0);)Ve++;Ve=Math.max(Math.min(Ve,we-1),0),ke=-fe[Ve].position}for(var Ke=0,Pt=0;Ke!==ye&&ge[Ke]===void 0;)Ke++;for(;Pt!==ye&&fe[Pt]===void 0;)Pt++;we=a.part,a.Fb(Ke),a.Eb(Pt);for(var ft=0;ft<x.length;ft++){var Nt=x[ft];if(Nt instanceof Pi&&Nt.visible&&ry(Nt)){if(Nt.type===Pi.TableRow){fe=a.Fb(Nt.row);var Lt=a.Eb(Pt)}else fe=a.Fb(Ke),Lt=a.Eb(Nt.column);ge=fe.position+be+re,fe.oa!==0&&(ge+=fe.Io(Math.max(Ke,Ue))),fe=Lt.position+ke+oe,Lt.oa!==0&&(fe+=Lt.Io(Math.max(Pt,Ve))),Lt=Nt.measuredBounds,Nt.Uk(),Nt.actualBounds.ka();var Ut=Nt.actualBounds,tn=Yt.allocAt(Ut.x,Ut.y,Ut.width,Ut.height);Ut.x=Nt.type===Pi.TableRow?oe:fe,Ut.y=Nt.type===Pi.TableColumn?re:ge,Ut.width=Lt.width,Ut.height=Lt.height,Nt.actualBounds.freeze(),ud(Nt,!1),lr(tn,Ut)||we===null||(we.oh(),Nt.Pn(we)),Yt.free(tn)}}for(ft=Dt.alloc(),Nt=0;Nt<ye;Nt++)if(le[Nt]){for(we=le[Nt].length,Lt=a.Fb(Nt),ge=Lt.position+be+re,Lt.oa!==0&&(ge+=Lt.Io(Math.max(Ke,Ue))),Ut=0;Ut<we;Ut++)if(le[Nt][Ut]){tn=a.Eb(Ut),fe=tn.position+ke+oe,tn.oa!==0&&(fe+=tn.Io(Math.max(Pt,Ve)));for(var xn=le[Nt][Ut],nr=xn.length,Ir=0;Ir<nr;Ir++){var br=xn[Ir],Di=br.measuredBounds;ft.h(0,0);for(var ii=1;ii<br.rowSpan&&!(Nt+ii>=a.rowCount);ii++){var os=a.Fb(Nt+ii);os.oa!==0&&(ft.height+=os.total)}for(ii=1;ii<br.columnSpan&&!(Ut+ii>=a.columnCount);ii++)os=a.Eb(Ut+ii),os.oa!==0&&(ft.width+=os.total);var Oo=tn.oa+ft.width,Ha=Lt.oa+ft.height;ii=fe,os=ge;var Ql=Oo,kc=Ha,uc=fe,md=ge,cc=Oo,Sy=Ha;fe+Oo>b.width&&(cc=Math.max(b.width-fe,0)),ge+Ha>b.height&&(Sy=Math.max(b.height-ge,0));var Sc=br.alignment;if(Sc.Xb()){Sc=a.defaultAlignment,Sc.sb()||(Sc=eo);var Dp=Sc.x,Fd=Sc.y,Py=Sc.offsetX;Sc=Sc.offsetY;var ep=tn.alignment,Ld=Lt.alignment;ep.sb()&&(Dp=ep.x,Py=ep.offsetX),Ld.sb()&&(Fd=Ld.y,Sc=Ld.offsetY)}else Dp=Sc.x,Fd=Sc.y,Py=Sc.offsetX,Sc=Sc.offsetY;(isNaN(Dp)||isNaN(Fd))&&(Fd=Dp=.5,Sc=Py=0),ep=Di.width,Ld=Di.height;var df=br.margin,Id=df.left+df.right,cv=df.top+df.bottom,Ag=hg(br,Lt,tn,!1);!isNaN(br.desiredSize.width)||Ag!==wi&&Ag!==no||(ep=Math.max(Oo-Id,0)),!isNaN(br.desiredSize.height)||Ag!==wi&&Ag!==To||(Ld=Math.max(Ha-cv,0)),Oo=br.maxSize,Ha=br.minSize,ep=Math.min(Oo.width,ep),Ld=Math.min(Oo.height,Ld),ep=Math.max(Ha.width,ep),Ld=Math.max(Ha.height,Ld),Oo=Ld+cv,ii+=Ql*Dp-(ep+Id)*Dp+Py+df.left,os+=kc*Fd-Oo*Fd+Sc+df.top,br.visible&&(Zr(uc,md,cc,Sy,ii,os,Di.width,Di.height)?br.arrange(ii,os,ep,Ld):br.arrange(ii,os,ep,Ld,new Yt(uc,md,cc,Sy)))}}}for(Dt.free(ft),a=0;a<te;a++)b=x[a],oe=b instanceof Pi?b:null,oe!==null&&ry(oe)&&(oe=b.actualBounds,b.naturalBounds.ka(),b.naturalBounds.h(0,0,oe.width,oe.height),b.naturalBounds.freeze())}};function lw(){this.xa="Base"}vn(lw,lc),lw.prototype.measure=function(){},lw.prototype.arrange=function(){};function aA(){this.xa="Base"}vn(aA,lc),aA.prototype.measure=function(){},aA.prototype.arrange=function(){};function lA(){this.xa="Base"}vn(lA,lc),lA.prototype.measure=function(a,x,b,te,re,oe,le){1<te.length&&hn("Viewbox Panel cannot contain more than one GraphObject."),te=te[0],te.Ca=1,te.Uj(),te.measure(1/0,1/0,oe,le);var fe=te.measuredBounds,ge=te.margin,ye=ge.right+ge.left;if(ge=ge.top+ge.bottom,isFinite(x)||isFinite(b)){var we=te.scale,be=fe.width;fe=fe.height;var ke=Math.max(x-ye,0),Ue=Math.max(b-ge,0),Ve=1;a.viewboxStretch===jr?be!==0&&fe!==0&&(Ve=Math.min(ke/be,Ue/fe)):be!==0&&fe!==0&&(Ve=Math.max(ke/be,Ue/fe)),Ve===0&&(Ve=1e-4),te.Ca*=Ve,we!==te.scale&&(Mc(te,!0),te.measure(1/0,1/0,oe,le))}fe=te.measuredBounds,re.width=isFinite(x)?x:Math.max(fe.width+ye,0),re.height=isFinite(b)?b:Math.max(fe.height+ge,0)},lA.prototype.arrange=function(a,x,b){x=x[0];var te=x.measuredBounds,re=x.margin,oe=Math.max(te.width+(re.right+re.left),0);re=Math.max(te.height+(re.top+re.bottom),0);var le=x.alignment;le.Xb()&&(le=a.defaultAlignment),le.sb()||(le=eo),x.arrange(b.width*le.x-oe*le.x+le.offsetX,b.height*le.y-re*le.y+le.offsetY,te.width,te.height)};function ny(){this.xa="Base"}vn(ny,lc),ny.prototype.measure=function(){},ny.prototype.arrange=function(){},ny.prototype.gc=function(a,x,b){b=a.Df()*b.scale,0>=b&&(b=1);var te=a.gridCellSize,re=te.width;te=te.height;var oe=a.naturalBounds,le=a.actualBounds,fe=oe.width,ge=oe.height,ye=Math.ceil(fe/re),we=Math.ceil(ge/te),be=a.gridOrigin,ke=be.x;be=be.y,x.save(),x.beginPath(),x.rect(0,0,fe,ge),x.clip(),x.Se();for(var Ue=[],Ve=a.O.s,Ke=Ve.length,Pt=0;Pt<Ke;Pt++){var ft=Ve[Pt],Nt=[];if(Ue.push(Nt),ft.visible){var Lt=ft.interval;if(!(0>Lt)){ft=zS(ft.figure);for(var Ut=0;Ut<Ke;Ut++)if(Ut!==Pt){var tn=Ve[Ut];tn.visible&&zS(tn.figure)===ft&&(tn=tn.interval,tn>Lt&&Nt.push(tn))}}}}for(Ve=a.O.s,Ke=Ve.length,Pt=0;Pt<Ke;Pt++){var xn=Ve[Pt];if(xn.visible&&(Nt=xn.interval||1,ft=Math.abs(Nt),!(2>re*ft*b))){if(Lt=xn.segmentIndex,(!isFinite(Lt)||isNaN(Lt))&&(Lt=0),0>Lt&&(Lt=ft-Math.min(-Lt,ft)),Lt=Math.round(Lt%ft),ft=xn.opacity,Ut=1,ft!==1){if(ft===0)continue;Ut=x.globalAlpha,x.globalAlpha=Ut*ft}tn=Ue[Pt];var nr=!1,Ir=xn.strokeDashArray;if(Ir!==null&&(nr=!0,x.js(Ir,xn.strokeDashOffset)),xn.figure==="LineV"&&xn.stroke!==null&&0<xn.strokeWidth){for(x.lineWidth=xn.strokeWidth,Fu(a,x,xn.stroke,!1,!1,oe,le),x.beginPath(),Ir=xn=Math.floor((ke-re)/re);Ir<=xn+ye;Ir++){var br=Ir*re+ke;0<=br&&br<=fe&&EC(Ir,Nt,Lt,tn)&&(x.moveTo(br,0),x.lineTo(br,ge))}x.stroke(),x.Se()}else if(xn.figure==="LineH"&&xn.stroke!==null&&0<xn.strokeWidth){for(x.lineWidth=xn.strokeWidth,Fu(a,x,xn.stroke,!1,!1,oe,le),x.beginPath(),Ir=xn=Math.floor((be-te)/te);Ir<=xn+we;Ir++)br=Ir*te+be,0<=br&&br<=ge&&EC(Ir,Nt,Lt,tn)&&(x.moveTo(0,br),x.lineTo(fe,br));x.stroke(),x.Se()}else if(xn.figure==="BarV"&&xn.fill!==null)for(Fu(a,x,xn.fill,!0,!1,oe,le),xn=xn.width,isNaN(xn)&&(xn=re),br=Ir=Math.floor((ke-re)/re);br<=Ir+ye;br++){var Di=br*re+ke;0<=Di+xn&&Di<=fe&&EC(br,Nt,Lt,tn)&&x.fillRect(Di,0,xn,ge)}else if(xn.figure==="BarH"&&xn.fill!==null)for(Fu(a,x,xn.fill,!0,!1,oe,le),xn=xn.height,isNaN(xn)&&(xn=te),br=Ir=Math.floor((be-te)/te);br<=Ir+we;br++)Di=br*te+be,0<=Di+xn&&Di<=ge&&EC(br,Nt,Lt,tn)&&x.fillRect(0,Di,fe,xn);nr&&x.fs(),ft!==1&&(x.globalAlpha=Ut)}}x.restore(),x.Vc(!1)};function EC(a,x,b,te){if(0>x)return a%x===b;if(a%x!==b)return!1;x=te.length;for(var re=0;re<x;re++)if(a%te[re]===b)return!1;return!0}function bC(){this.xa="Base"}vn(bC,lc),bC.prototype.measure=function(a,x,b,te,re){var oe=te.length;if(a instanceof Ca||a instanceof Ui){var le=null,fe=null;if(a instanceof Ui&&(le=a),a instanceof Ca&&(fe=a,le=fe.adornedPart,a.j===null&&(a.j=[])),le instanceof Ui){var ge=le;if(oe===0)er(a.naturalBounds,0,0),a.measuredBounds.h(0,0,0,0);else{var ye=a instanceof Ca?null:le.path;x=le.routeBounds,b=a.jg,b.h(0,0,x.width,x.height);var we=ge.points,be=le.pointsCount;fe!==null?fe.Ul(!1):le!==null&&le.Ul(!1),fe=x.width;var ke=x.height,Ue=a.j;if(Ue.length=0,ye!==null){i5(a,fe,ke,ye);var Ve=ye.measuredBounds;b.ed(Ve),Ue.push(Ve)}Ve=Br.alloc();for(var Ke=it.alloc(),Pt=it.alloc(),ft=0;ft<oe;ft++){var Nt=te[ft];if(Nt!==ye)if(Nt.isPanelMain&&Nt instanceof xs){i5(a,fe,ke,Nt);var Lt=Nt.measuredBounds;b.ed(Lt),Ue.push(Lt)}else if(2>be)Nt.measure(1/0,1/0,0,0),Lt=Nt.measuredBounds,b.ed(Lt),Ue.push(Lt);else{var Ut=Nt.segmentIndex,tn=Nt.segmentFraction,xn=Nt.alignmentFocus;xn.Mc()&&(xn=eo);var nr=Nt.segmentOrientation,Ir=Nt.segmentOffset;if(isNaN(Ut)){var br=ge.ua;Lt=ys(),br.Qu(tn,Lt);var Di=it.allocAt(Lt[0],Lt[1]);if(Di.add(ge.i(0)),br.type===ai.j?Di.offset(-br.startX,-br.startY):(br=br.figures.first(),br!==null&&Di.offset(-br.startX,-br.startY)),br=Lt[2],nr!==Th){var ii=ge.computeAngle(Nt,nr,br);Nt.Kb=ii}ii=Di.x-x.x;var os=Di.y-x.y;it.free(Di),As(Lt)}else if(Ut<-be||Ut>=be)Lt=it.alloc(),ge.vg(),ge.computeMidPoint(Lt),br=ge.midAngle,nr!==Th&&(ii=ge.computeAngle(Nt,nr,br),Nt.Kb=ii),ii=Lt.x-x.x,os=Lt.y-x.y,it.free(Lt);else{if(ii=0,0<=Ut?(os=we.M(Ut),Lt=Ut<be-1?we.M(Ut+1):os):(ii=be+Ut,os=we.M(ii),Lt=0<ii?we.M(ii-1):os),os.Xa(Lt)){0<=Ut?(br=0<Ut?we.M(Ut-1):os,ii=Ut<be-2?we.M(Ut+2):Lt):(br=ii<be-1?we.M(ii+1):os,ii=1<ii?we.M(ii-2):Lt),Di=br.Bf(os);var Oo=Lt.Bf(ii);br=Di>Oo+10?0<=Ut?br.ab(os):os.ab(br):Oo>Di+10?0<=Ut?Lt.ab(ii):ii.ab(Lt):0<=Ut?br.ab(ii):ii.ab(br)}else br=0<=Ut?os.ab(Lt):Lt.ab(os);nr!==Th&&(ii=ge.computeAngle(Nt,nr,br),Nt.Kb=ii),ii=os.x+(Lt.x-os.x)*tn-x.x,os=os.y+(Lt.y-os.y)*tn-x.y}Nt.measure(1/0,1/0,0,0),Lt=Nt.measuredBounds,Di=Nt.naturalBounds;var Ha=0;Nt instanceof xs&&(Ha=Nt.strokeWidth),Oo=Di.width+Ha;var Ql=Di.height+Ha;Ve.reset(),Ve.translate(-Lt.x,-Lt.y),Ve.scale(Nt.scale,Nt.scale),Ve.rotate(nr===Th?Nt.angle:br,Oo/2,Ql/2),nr!==zx&&nr!==SA||Ve.rotate(90,Oo/2,Ql/2),nr!==Cp&&nr!==Ux||Ve.rotate(-90,Oo/2,Ql/2),nr===ia&&(45<br&&135>br||225<br&&315>br)&&Ve.rotate(-br,Oo/2,Ql/2),Di=new Yt(0,0,Oo,Ql),Ke.xi(Di,xn),Ve.Ga(Ke),xn=-Ke.x+Ha/2*Nt.scale,Nt=-Ke.y+Ha/2*Nt.scale,Pt.assign(Ir),Ha=isNaN(Ir.x);var kc=isNaN(Ir.y);if(Ha||kc){Oo=Oo/2+3,Ql=Ql/2+3;var uc=45<=br&&135>=br,md=225<=br&&315>=br;nr===Th&&(uc||md)?(Pt.x=kc?Oo:Ir.y,Pt.y=Ha?Ql:Ir.x,uc?0<=Ut||isNaN(Ut)&&.5>tn||!Ha||(Pt.y=-Ql):md&&((0<=Ut||isNaN(Ut)&&.5>tn)&&Ha&&(Pt.y=-Ql),kc&&(Pt.x=-Oo))):(Ha&&(Pt.x=0<=Ut||isNaN(Ut)&&.5>tn?Oo:-Oo),kc&&(Pt.y=-Ql),Pt.rotate(br))}else Pt.rotate(br);ii+=Pt.x,os+=Pt.y,Di.set(Lt),Di.h(ii+xn,os+Nt,Lt.width,Lt.height),Ue.push(Di),b.ed(Di)}}if(le!==null)for(te=le.labelNodes;te.next();)te.value.measure(1/0,1/0);a.jg=b,a.position.h(x.x+b.x,x.y+b.y),er(re,b.width||0,b.height||0),Br.free(Ve),it.free(Ke),it.free(Pt)}}}},bC.prototype.arrange=function(a,x){var b=x.length;if(a instanceof Ca||a instanceof Ui){var te=a,re=null;a instanceof Ca&&(re=a,te=re.adornedPart);var oe=a instanceof Ca?null:te.path,le=a.j;if(le.length!==0){var fe=0;if(oe!==null&&fe<le.length){var ge=le[fe];fe++,oe.arrange(ge.x-a.jg.x,ge.y-a.jg.y,ge.width,ge.height)}for(ge=0;ge<b;ge++){var ye=x[ge];if(ye!==oe&&fe<le.length){var we=le[fe];fe++,ye.arrange(we.x-a.jg.x,we.y-a.jg.y,we.width,we.height)}}}if(x=te.points,b=x.count,2<=b&&a instanceof Ui)for(oe=a.labelNodes;oe.next();){var be=a;le=oe.value,fe=le.segmentIndex,ge=le.segmentFraction;var ke=le.alignmentFocus;if(ye=le.segmentOrientation,we=le.segmentOffset,isNaN(fe)){var Ue=be.ua,Ve=ys();Ue.Qu(ge,Ve);var Ke=it.allocAt(Ve[0],Ve[1]);Ke.add(be.i(0)),Ue.type===ai.j||(Ue=Ue.figures.first()),Ke.offset(-Ue.startX,-Ue.startY),Ue=Ve[2],ye!==Th&&(be=be.computeAngle(le,ye,Ue),le.angle=be),be=Ke.x;var Pt=Ke.y;it.free(Ke),As(Ve)}else if(fe<-b||fe>=b)Ve=it.alloc(),Ue=be,Pt=Ve,Ue.vg(),Ue.computeMidPoint(Pt),Ue=be.midAngle,ye!==Th&&(be=be.computeAngle(le,ye,Ue),le.angle=be),be=Ve.x,Pt=Ve.y,it.free(Ve);else{if(Ke=0,0<=fe?(Ve=x.s[fe],Pt=fe<b-1?x.s[fe+1]:Ve):(Ke=b+fe,Ve=x.s[Ke],Pt=0<Ke?x.s[Ke-1]:Ve),Ve.Xa(Pt)){0<=fe?(Ue=0<fe?x.s[fe-1]:Ve,Ke=fe<b-2?x.s[fe+2]:Pt):(Ue=Ke<b-1?x.s[Ke+1]:Ve,Ke=1<Ke?x.s[Ke-2]:Pt);var ft=Ue.Bf(Ve),Nt=Pt.Bf(Ke);Ue=ft>Nt+10?0<=fe?Ue.ab(Ve):Ve.ab(Ue):Nt>ft+10?0<=fe?Pt.ab(Ke):Ke.ab(Pt):0<=fe?Ue.ab(Ke):Ke.ab(Ue)}else Ue=0<=fe?Ve.ab(Pt):Pt.ab(Ve);ye!==Th&&(be=be.computeAngle(le,ye,Ue),le.angle=be),be=Ve.x+(Pt.x-Ve.x)*ge,Pt=Ve.y+(Pt.y-Ve.y)*ge}if(ke.ys())le.location=new it(be,Pt);else{ke.Mc()&&(ke=eo),Ve=Br.alloc(),Ve.reset(),Ve.scale(le.scale,le.scale),Ve.rotate(le.angle,0,0);var Lt=le.naturalBounds;Ke=Yt.allocAt(0,0,Lt.width,Lt.height),ft=it.alloc(),ft.xi(Ke,ke),Ve.Ga(ft),ke=-ft.x,Nt=-ft.y;var Ut=Lt.width,tn=Lt.height;Lt=it.alloc(),Lt.assign(we);var xn=isNaN(we.x),nr=isNaN(we.y);if(xn||nr){Ut=Ut/2+3,tn=tn/2+3;var Ir=45<=Ue&&135>=Ue,br=225<=Ue&&315>=Ue;ye===Th&&(Ir||br)?(Lt.x=nr?Ut:we.y,Lt.y=xn?tn:we.x,Ir?0<=fe||isNaN(fe)&&.5>ge||!xn||(Lt.y=-tn):br&&((0<=fe||isNaN(fe)&&.5>ge)&&xn&&(Lt.y=-tn),nr&&(Lt.x=-Ut))):(xn&&(Lt.x=0<=fe||isNaN(fe)&&.5>ge?Ut:-Ut),nr&&(Lt.y=-tn),Lt.rotate(Ue))}else Lt.rotate(Ue);be+=Lt.x,Pt+=Lt.y,Ve.pp(Ke),ke+=Ke.x,Nt+=Ke.y,fe=it.allocAt(be+ke,Pt+Nt),le.move(fe),it.free(fe),it.free(Lt),it.free(ft),Yt.free(Ke),Br.free(Ve)}}re!==null?re.Ul(!1):te.Ul(!1),te=Tx(a),a.location.h(a.position.x+te.x,a.position.y+te.y),it.free(te)}};function i5(a,x,b,te){if(Mf(te)!==!1){var re=te.strokeWidth;re===0&&a instanceof Ca&&a.type===Pi.Link&&a.adornedObject instanceof xs&&(re=a.adornedObject.strokeWidth),re*=te.Ca,a instanceof Ui&&a.ua!==null?(a=a.geometry.bounds,te.Ge(a.x-re/2,a.y-re/2,a.width+re,a.height+re)):a instanceof Ca&&a.adornedPart.ua!==null?(a=a.adornedPart.ua.bounds,te.Ge(a.x-re/2,a.y-re/2,a.width+re,a.height+re)):te.Ge(-(re/2),-(re/2),x+re,b+re),re=te.desiredSize,re.w()||te.ua===null?te.dc.h(0,0,re.width,re.height):te.dc.assign(te.ua.bounds),Mc(te,!1)}}function uA(){this.xa="Base"}vn(uA,lc),uA.prototype.measure=function(a,x,b,te,re,oe,le){var fe=a.Pb();a.graduatedBounds=[];var ge=fe.margin,ye=ge.right+ge.left,we=ge.top+ge.bottom;fe.measure(x,b,oe,le);var be=fe.measuredBounds,ke=new Yt(-ge.left,-ge.top,Math.max(be.width+ye,0),Math.max(be.height+we,0));a.graduatedBounds.push(ke),re.assign(ke);for(var Ue=fe.geometry,Ve=fe.strokeWidth,Ke=Ue.flattenedSegments,Pt=Ue.flattenedLengths,ft=Ue.flattenedTotalLength,Nt=Ke.length,Lt=0,Ut=0,tn=ys(),xn=0;xn<Nt;xn++){var nr=Ke[xn],Ir=[];Ut=Lt=0;for(var br=nr.length,Di=0;Di<br;Di+=2){var ii=nr[Di],os=nr[Di+1];if(Di!==0){var Oo=180*Math.atan2(os-Ut,ii-Lt)/Math.PI;0>Oo&&(Oo+=360),Ir.push(Oo)}Lt=ii,Ut=os}tn.push(Ir)}if(a.graduatedIntervals===null){for(var Ha=[],Ql=a.O.s,kc=Ql.length,uc=0;uc<kc;uc++){var md=Ql[uc],cc=[];if(Ha.push(cc),md.visible){var Sy=md.interval;if(!(0>Sy)){for(var Sc=0;Sc<kc;Sc++)if(Sc!==uc){var Dp=Ql[Sc];if(Dp.visible&&md.constructor===Dp.constructor){var Fd=Dp.interval;Fd>Sy&&cc.push(Fd)}}}}}a.graduatedIntervals=Ha}var Py=a.graduatedIntervals,ep=a.O.s,Ld=ep.length,df=0,Id=0,cv=ft;a.graduatedMarks=[];for(var Ag,NA=0;NA<Ld;NA++){var Ff=ep[NA];if(Ag=[],Ff.visible&&Ff!==fe){var Lh=Math.abs(Ff.interval),Ww=a.graduatedTickUnit;if(!(2>Ww*Lh*ft/a.graduatedRange&&Ff.graduatedSkip===null)){var S0=Pt[0][0],xg=0,ff=0;Id=ft*Ff.graduatedStart-1e-4,cv=ft*Ff.graduatedEnd+1e-4;var Cy=Ww*Lh,ed=a.graduatedTickBase;if(ed<a.graduatedMin){var Ey=(a.graduatedMin-ed)/Cy;Ey=Ey%1===0?Ey:Math.floor(Ey+1),ed+=Ey*Cy}else ed>a.graduatedMin+Cy&&(ed-=Math.floor((ed-a.graduatedMin)/Cy)*Cy);for(var Qw=Py[NA],v1=ed,yE=1e-6*a.graduatedMax,jm=1;ed<=a.graduatedMax+yE;jm++){e:{for(var Gm=Qw.length,by=0;by<Gm;by++){var hv=(ed-a.graduatedTickBase)%(Qw[by]*a.graduatedTickUnit),Zw=1e-6*a.graduatedTickUnit;if(hv<Zw&&hv>-Zw){var My=!1;break e}}My=!0}if(My&&(ed>a.graduatedMax&&(ed=a.graduatedMax),Ff.graduatedSkip===null||Ff instanceof _l&&!Ff.graduatedSkip(ed,Ff)||Ff instanceof xs&&!Ff.graduatedSkip(ed,Ff))&&(df=(ed-a.graduatedMin)*ft/a.graduatedRange,df>ft&&(df=ft),Id<=df&&df<=cv)){for(var P0=tn[xg][ff],dv=Pt[xg][ff];xg<Pt.length;){for(;df>S0&&ff<Pt[xg].length-1;)ff++,P0=tn[xg][ff],dv=Pt[xg][ff],S0+=dv;if(df<=S0)break;xg++,ff=0,P0=tn[xg][ff],dv=Pt[xg][ff],S0+=dv}var Jd=Ke[xg],Qg=Jd[2*ff],Yw=Jd[2*ff+1],fv=(df-(S0-dv))/dv,By=new it(Qg+(Jd[2*ff+2]-Qg)*fv+Ve/2-Ue.bounds.x,Yw+(Jd[2*ff+3]-Yw)*fv+Ve/2-Ue.bounds.y);By.scale(fe.scale,fe.scale);e:{var wg=P0,y1=tn[xg];if(!(.5005>fv&&.4995<fv)){var Zg=wg;if(.5>fv?0<ff?Zg=y1[ff-1]:_t.$(Jd[0],Jd[Jd.length-2])&&_t.$(Jd[1],Jd[Jd.length-1])&&(Zg=y1[y1.length-1]):.5<fv&&(ff+1<y1.length?Zg=y1[ff+1]:_t.$(Jd[0],Jd[Jd.length-2])&&_t.$(Jd[1],Jd[Jd.length-1])&&(Zg=y1[0])),wg!==Zg){var FA=Math.abs(wg-Zg);if(180<FA&&(wg<Zg?wg+=360:Zg+=360,FA=Math.abs(wg-Zg)),5e-4>fv||.9995<fv){P0=(wg+Zg)/2%360;break e}if(10>FA){var Xm=1-Math.abs(.5-fv);P0=(wg*Xm+Zg*(1-Xm))%360;break e}}}P0=wg}if(Ff instanceof _l){var Yg="";Ff.graduatedFunction!==null?(Yg=Ff.graduatedFunction(ed,Ff),Yg=Yg!=null?Yg.toString():""):Yg=(+ed.toFixed(2)).toString(),Yg!==""&&Ag.push({$l:By,angle:P0,text:Yg})}else Ag.push({$l:By,angle:P0})}ed=v1+jm*Cy}}}a.graduatedMarks.push(Ag)}As(tn);var sh=a.graduatedMarks;if(sh!==null)for(var A1=te.length,vd=0;vd<A1;vd++){var ju=te[vd],td=sh[vd];if(ju.visible&&ju!==fe&&td.length!==0){if(ju instanceof xs){var C0=a,eg=re,Kg=ju.alignmentFocus;Kg.Mc()&&(Kg=Pa);var Q5=ju.angle;ju.Kb=0,ju.measure(1/0,1/0,0,0),ju.Kb=Q5;var k2=ju.measuredBounds,Wm=k2.width,Ty=k2.height,x1=Yt.allocAt(0,0,Wm,Ty),Ih=it.alloc();Ih.xi(x1,Kg),Yt.free(x1);for(var pv=-Ih.x,Am=-Ih.y,Np=new Yt,E0=td.length,Kw=0;Kw<E0;Kw++)for(var b0=td[Kw],AE=b0.$l.x,Jw=b0.$l.y,nc=b0.angle,Sg=0;4>Sg;Sg++){switch(Sg){case 0:Ih.h(pv,Am);break;case 1:Ih.h(pv+Wm,Am);break;case 2:Ih.h(pv,Am+Ty);break;case 3:Ih.h(pv+Wm,Am+Ty)}Ih.rotate(nc+ju.angle),Ih.offset(AE,Jw),Kw===0&&Sg===0?Np.h(Ih.x,Ih.y,0,0):Np.Ye(Ih),Ih.offset(-AE,-Jw),Ih.rotate(-nc-ju.angle)}it.free(Ih),C0.graduatedBounds!==null&&C0.graduatedBounds.push(Np),Hr(eg,Np.x,Np.y,Np.width,Np.height)}else if(ju instanceof _l){var tg=a,xE=re;tg.temporaryTextBlock===null&&(tg.temporaryTextBlock=new _l);var Lf=tg.temporaryTextBlock;xp(Lf,ju);var gv=ju.alignmentFocus;gv.Mc()&&(gv=Pa);for(var Su=ju.segmentOrientation,MP=ju.segmentOffset,Dy=new Yt,BP=0,TP=0,Qm=0,Ny=0,Fy=0,DP=td.length,mv=0;mv<DP;mv++){var M0=td[mv];BP=M0.$l.x,TP=M0.$l.y,Qm=M0.angle,Fy=Ny=ju.angle,Su!==Th&&(Fy=Su===Rx||Su===m0?Qm+ju.angle:Qm,Ny=Ui.computeAngle(Su,Fy)),Lf.Kb=Ny,Lf.text=M0.text||"",Lf.measure(1/0,1/0,0,0);var B0=Lf.measuredBounds,Zm=Lf.naturalBounds,T0=Zm.width,vv=Zm.height,Pg=Br.alloc();Pg.reset(),Pg.translate(-B0.x,-B0.y),Pg.scale(Lf.scale,Lf.scale),Pg.rotate(Fy,T0/2,vv/2),Su!==zx&&Su!==SA||Pg.rotate(90,T0/2,vv/2),Su!==Cp&&Su!==Ux||Pg.rotate(-90,T0/2,vv/2),Su===ia&&(45<Qm&&135>Qm||225<Qm&&315>Qm)&&Pg.rotate(-Qm,T0/2,vv/2);var qw=Yt.allocAt(0,0,T0,vv),xm=it.alloc();xm.xi(qw,gv),Pg.Ga(xm);var LA=-xm.x,Z5=-xm.y,Ym=it.alloc();Ym.assign(MP),isNaN(Ym.x)&&(Ym.x=T0/2+3),isNaN(Ym.y)&&(Ym.y=-(vv/2+3)),Ym.rotate(Qm),BP+=Ym.x+LA,TP+=Ym.y+Z5;var D0=new Yt(BP,TP,B0.width,B0.height),wE=new Yt(B0.x,B0.y,B0.width,B0.height),SE=new Yt(Zm.x,Zm.y,Zm.width,Zm.height);M0.Sz=Ny,M0.lineCount=Lf.lineCount,M0.lines=[Lf.Cb,Lf.Ih,Lf.df,Lf.Le,Lf.Qc,Lf.Qb,Lf.ze],M0.actualBounds=D0,M0.measuredBounds=wE,M0.naturalBounds=SE,mv===0?Dy.assign(D0):Dy.ed(D0),it.free(Ym),it.free(xm),Yt.free(qw),Br.free(Pg)}tg.graduatedBounds!==null&&tg.graduatedBounds.push(Dy),Hr(xE,Dy.x,Dy.y,Dy.width,Dy.height)}Mc(ju,!1)}}},uA.prototype.arrange=function(a,x,b){if(a.graduatedBounds!==null){var te=a.Pb(),re=a.graduatedMarks;if(re!==null){var oe=a.graduatedBounds,le=0,fe=oe[le];le++,te!==null&&te.arrange(fe.x-b.x,fe.y-b.y,fe.width,fe.height);for(var ge=x.length,ye=0;ye<ge;ye++){var we=x[ye];fe=re[ye],we.visible&&we!==te&&fe.length!==0&&(fe=oe[le],le++,we.arrange(fe.x-b.x,fe.y-b.y,fe.width,fe.height))}a.graduatedBounds=null}}},uA.prototype.gc=function(a,x,b){var te=b.$i;b.$i=!0;var re=a.naturalBounds,oe=re.width,le=re.height;re=x instanceof Wh,x.save(),x.beginPath(),x.rect(-1,-1,oe+1,le+1),x.clip(),x.Se(),oe=a.Pb(),oe.gc(x,b),le=a.Df()*b.scale,0>=le&&(le=1);for(var fe=oe.actualBounds,ge=a.O.s,ye=a.graduatedMarks,we=ge.length,be=0;be<we;be++){var ke=ge[be],Ue=ye[be],Ve=Ue.length;if(ke.visible&&ke!==oe&&Ue.length!==0){if(ke instanceof xs){if(!(2>a.graduatedTickUnit*ke.interval*oe.geometry.flattenedTotalLength/a.graduatedRange*le&&ke.graduatedSkip===null)){var Ke=ke.measuredBounds,Pt=ke.strokeWidth*ke.scale,ft=ke.alignmentFocus;ft.Mc()&&(ft=Pa);for(var Nt=0;Nt<Ve;Nt++){var Lt=Ue[Nt].$l,Ut=Ue[Nt].angle,tn=ft,xn=ke.Ab;xn.reset(),xn.translate(Lt.x+fe.x,Lt.y+fe.y),xn.rotate(Ut+ke.angle,0,0),xn.translate(-Ke.width*tn.x+tn.offsetX+Pt/2,-Ke.height*tn.y+tn.offsetY+Pt/2),xn.scale(ke.scale,ke.scale),dp(ke,!1),ke.wh.set(ke.Ab),ke.Kk=ke.scale,Gf(ke,!1),ke.gc(x,b),re&&(a.svg.appendChild(ke.svg),ke.svg=null),ke.Ab.reset()}}}else if(ke instanceof _l)for(a.temporaryTextBlock===null&&(a.temporaryTextBlock=new _l),Ke=a.temporaryTextBlock,xp(Ke,ke),Pt=0;Pt<Ve;Pt++)ft=Ue[Pt],ft.actualBounds&&ft.measuredBounds&&ft.naturalBounds&&(Ke.ec=ft.text||"",Ke.Kb=ft.Sz||0,Ke.Gc=ft.lineCount||0,Nt=ft.lines,Nt!==void 0&&(Ke.Cb=Nt[0],Ke.Ih=Nt[1],Ke.df=Nt[2],Ke.Le=Nt[3],Ke.Qc=Nt[4],Ke.Qb=Nt[5],Ke.ze=Nt[6]),ft.naturalBounds&&(Ke.dc=ft.naturalBounds),ft.actualBounds&&(Nt=ft.actualBounds,Ke.arrange(Nt.x,Nt.y,Nt.width,Nt.height)),Nt=ft.actualBounds,Ke.arrange(Nt.x,Nt.y,Nt.width,Nt.height),Lt=ft.measuredBounds,ft=ft.naturalBounds,Ut=Ke.Ab,Ut.reset(),Ut.translate(Nt.x+fe.x,Nt.y+fe.y),Ut.translate(-Lt.x,-Lt.y),Ke.no(Ut,ft.x,ft.y,ft.width,ft.height),dp(Ke,!1),Ke.wh.set(Ke.Ab),Ke.Kk=Ke.scale,Gf(Ke,!1),Ke.Ng=ke.part,Ke.Me=ke.panel,Ke.gc(x,b),Ke.Me=null,Ke.Ng=null,re&&(a.svg.appendChild(Ke.svg),Ke.svg=null))}}b.$i=te,x.restore(),x.Vc(!0)};function Pi(a,x){if(nn.call(this),this.na=null,a===void 0)this.na=Pi.Position;else if(typeof a=="string"){var b=fg.I(a);b!==null&&(this.na=b)}else a instanceof lc?this.na=a:a&&(this.na=Pi.Position,x=a);this.na===null&&hn("Panel type not specified or PanelLayout not loaded: "+a),this.l=this.l|4194304|(this.na===Pi.Grid?1048576:0),this.O=new Zi,this.yb=Ts,this.Tm=Bl,this.Uf=rs,this.$g=null,this.$e="",this.jg=new Yt(NaN,NaN,NaN,NaN),this.T=this.F=null,this.xo=jr,this.jn=zn,this.kn=fr,this.ub=this.ra=null,this.zn=NaN,this.ge=this.Hh=null,x&&Object.assign(this,x)}vn(Pi,nn),Pi.prototype.cloneProtected=function(a){nn.prototype.cloneProtected.call(this,a),a.na=this.na,a.yb=this.yb.J(),a.Tm=this.Tm.J(),a.Uf=this.Uf,a.$e=this.$e,a.jg.assign(this.jg),this.T!==null&&(a.T=this.T.copy(a)),a.xo=this.xo,a.jn=this.jn.J(),a.kn=this.kn.J(),this.ra!==null&&(a.ra=this.ra.copy()),a.ub=this.ub,a.zn=this.zn,a.Hh=this.Hh},Pi.prototype.Af=function(a){nn.prototype.Af.call(this,a),a.O=this.O;for(var x=a.O.s,b=x.length,te=0;te<b;te++)x[te].Me=a;a.$g=null},Pi.prototype.copy=function(){var a=nn.prototype.copy.call(this);if(a!==null){for(var x=this.O.s,b=x.length,te=0;te<b;te++){var re=x[te].copy();re.wi(a),re.Ng=null;var oe=a.O,le=oe.count;if(oe.Gb(le,re),oe=a.part,oe!==null){oe.Rh=null,re.portId!==null&&oe instanceof ar&&(oe.Te=!0);var fe=a.diagram;fe!==null&&fe.undoManager.isUndoingRedoing||oe.cb(Ol,"elements",a,null,re,null,le)}}return a}return null},We=Pi.prototype,We.toString=function(){return"Panel("+this.type.name+")#"+Pl(this)},We.Pn=function(a){nn.prototype.Pn.call(this,a);for(var x=this.O.s,b=x.length,te=0;te<b;te++)x[te].Pn(a)},We.hh=function(a,x){if(this.na===Pi.Grid)a.yc(),this.na.gc(this,a,x);else if(this.na===Pi.Graduated)a.yc(),this.na.gc(this,a,x);else{if(this.na===Pi.Table)if(a.yc(),a instanceof Wh){var b=a.yd;a.yd=Ah(a,"gojs-ts"),OS(this,a),a.nh.pop(),a.yd=b}else OS(this,a);(b=this.isClipping&&this.na===Pi.Spot)&&a.save();for(var te=this.Pb(),re=this.O.s,oe=re.length,le=0;le<oe;le++){var fe=re[le];b&&fe===te&&(a.clipInsteadOfFill=!0),fe.gc(a,x),b&&fe===te&&(a.clipInsteadOfFill=!1)}b&&(a.restore(),a.Vc(!0))}};function OS(a,x){x.lineCap="butt";var b=0<a.rowCount?a.rowDefs:null,te=0<a.columnCount?a.colDefs:null;b!==null&&iy(a,x,!0,b,!0),te!==null&&iy(a,x,!1,te,!0),b!==null&&Sx(a,x,!0,b),te!==null&&Sx(a,x,!1,te),b!==null&&iy(a,x,!0,b,!1),te!==null&&iy(a,x,!1,te,!1)}function Sx(a,x,b,te){for(var re=te.length,oe=a.actualBounds,le=a.naturalBounds,fe=!0,ge=0;ge<re;ge++){var ye=te[ge];if(ye!==void 0&&ye.actual!==0)if(fe)fe=!1;else{if(b){if(ye.position>le.height)continue}else if(ye.position>le.width)continue;var we=ye.separatorStrokeWidth;isNaN(we)&&(we=b?a.defaultRowSeparatorStrokeWidth:a.defaultColumnSeparatorStrokeWidth);var be=ye.separatorStroke;if(be===null&&(be=b?a.defaultRowSeparatorStroke:a.defaultColumnSeparatorStroke),we!==0&&be!==null){Fu(a,x,be,!1,!1,le,oe),be=!1;var ke=ye.separatorDashArray;ke===null&&(ke=b?a.defaultRowSeparatorDashArray:a.defaultColumnSeparatorDashArray),ke!==null&&(be=!0,x.js(ke,0)),x.beginPath(),ke=ye.position+we,b?ke>le.height&&(we-=ke-le.height):ke>le.width&&(we-=ke-le.width),ye=ye.position+we/2,x.lineWidth=we,we=a.yb,b?(ye+=we.top,ke=le.width-we.right,x.moveTo(we.left,ye),x.lineTo(ke,ye)):(ye+=we.left,ke=le.height-we.bottom,x.moveTo(ye,we.top),x.lineTo(ye,ke)),x.stroke(),x.Se(),be&&x.fs()}}}}function iy(a,x,b,te,re){for(var oe=te.length,le=a.actualBounds,fe=a.naturalBounds,ge=RS(a,!0),ye=RS(a,!1),we=0;we<oe;we++){var be=te[we];if(be!==void 0&&be.background!==null&&be.coversSeparators!==re&&be.actual!==0){var ke=b?le.height:le.width;if(!(be.position>ke)){var Ue=be.Wc(),Ve=be.separatorStrokeWidth;isNaN(Ve)&&(Ve=b?a.defaultRowSeparatorStrokeWidth:a.defaultColumnSeparatorStrokeWidth);var Ke=be.separatorStroke;Ke===null&&(Ke=b?a.defaultRowSeparatorStroke:a.defaultColumnSeparatorStroke),(Ke===null||be.index===(b?ge:ye))&&(Ve=0),Ue-=Ve,Ve=be.position+Ve,Ue+=be.actual,Ve+Ue>ke&&(Ue=ke-Ve),0>=Ue||(ke=a.yb,Fu(a,x,be.background,!0,!1,fe,le),b?x.fillRect(ke.left,Ve+ke.top,le.width-(ke.left+ke.right),Ue):x.fillRect(Ve+ke.left,ke.top,Ue,le.height-(ke.top+ke.bottom)))}}}}function RS(a,x){for(var b=x?a.rowCount:a.columnCount,te=0;te<b;te++){var re=x?a.rowDefs[te]:a.colDefs[te];if(re!==void 0)return re.index}return 0}function zS(a){return a==="LineV"||a==="BarV"}We.lv=function(){for(var a=this.O.s,x=a.length,b=0;b<x;b++)a[b].lv();this.Uc=!0},We.kk=function(a,x,b){if(!nn.prototype.kk.call(this,a,x,b))return!1;if(this.type===Pi.Table)b=this.svg.getElementsByClassName("gojs-ts"),b=b.length!==0?b[0]:null,b!==null&&(b.innerHTML=""),a.yd=b,OS(this,a),a.yd=null;else if(this.na===Pi.Grid||this.na===Pi.Graduated)return this.svg.innerHTML="",this.svg.remove(),!1;b=this.O.s;for(var te=b.length,re=0;re<te;re++)b[re].gc(a,x);return!0},We.nk=function(){return!0},We.$o=function(a,x,b,te){if(!this.isClipping)if(this.Dd()&&a.bk!==null){a=a.bk,x=this.O.s;for(var re=0,oe=0,le=0;le<x.length;le++)if(x[le].Ed()){var fe=x[le].actualBounds;re=le===0?fe.x:Math.min(fe.x,re),oe=le===0?fe.y:Math.min(fe.y,oe)}te.setAttributeNS(null,"clip-path","path('M "+(a.x-b.x-re)+","+(a.y-b.y-oe)+" l "+a.width+" 0 l 0 "+a.height+" l -"+a.width+" 0 z')")}else nn.prototype.$o.call(this,a,x,b,te)},We.Sj=function(a,x,b,te,re){var oe=this.se(),le=this.transform,fe=1/(le.m11*le.m22-le.m12*le.m21),ge=le.m22*fe,ye=-le.m12*fe,we=-le.m21*fe,be=le.m11*fe,ke=fe*(le.m21*le.dy-le.m22*le.dx),Ue=fe*(le.m12*le.dx-le.m11*le.dy);if(this.areaBackground!==null)return le=this.actualBounds,_t.Ff(le.left,le.top,le.right,le.bottom,a,x,b,te,re);if(this.background!==null)return oe=a*ge+x*we+ke,fe=a*ye+x*be+Ue,a=b*ge+te*we+ke,ge=b*ye+te*be+Ue,re.h(0,0),b=this.naturalBounds,oe=_t.Ff(0,0,b.width,b.height,oe,fe,a,ge,re),re.transform(le),oe;oe||(ge=1,we=ye=0,be=1,Ue=ke=0),fe=a*ge+x*we+ke,a=a*ye+x*be+Ue,ge=b*ge+te*we+ke,b=b*ye+te*be+Ue,re.h(ge,b),te=(ge-fe)*(ge-fe)+(b-a)*(b-a),ye=!1,be=this.O.s,Ue=be.length,we=it.alloc(),ke=null,x=1/0;var Ve=null,Ke=this.isClipping&&this.na===Pi.Spot;Ke&&(Ve=it.alloc(),ke=this.Pb(),(ye=ke.Sj(fe,a,ge,b,Ve))&&(x=(fe-Ve.x)*(fe-Ve.x)+(a-Ve.y)*(a-Ve.y)));for(var Pt=0;Pt<Ue;Pt++){var ft=be[Pt];ft.visible&&ft!==ke&&ft.Sj(fe,a,ge,b,we)&&(ye=!0,ft=(fe-we.x)*(fe-we.x)+(a-we.y)*(a-we.y),ft<te&&(te=ft,re.set(we)))}return Ke&&(x>te&&re.set(Ve),it.free(Ve)),it.free(we),oe&&re.transform(le),ye},We.Gj=function(){for(var a=this.O.s,x=a.length,b=0;b<x;b++)a[b].Gj();nn.prototype.Gj.call(this)},We.v=function(a){if(!Mf(this)){nn.prototype.v.call(this,a),a=null,(this.na===Pi.Auto||this.na===Pi.Link)&&(a=this.Pb());for(var x=this.O.s,b=x.length,te=0;te<b;te++){var re=x[te];if((re===a||re.isPanelMain)&&re.v(!0),!re.desiredSize.w()){var oe=bc(re,!1);(re instanceof bd||re instanceof Pi||re instanceof _l||oe!==li)&&re.v(!0)}}}},We.Uj=function(){if(!Mf(this)){Mc(this,!0),ud(this,!0);for(var a=this.O.s,x=a.length,b=0;b<x;b++)a[b].Uj()}},We.Uk=function(){if(!(this.l&2048)){dp(this,!0),Gf(this,!0);for(var a=this.O.s,x=a.length,b=0;b<x;b++)a[b].Wu()}},We.Wu=function(){Gf(this,!0);for(var a=this.O.s,x=a.length,b=0;b<x;b++)a[b].Wu()},We.Wl=function(a,x,b,te){var re=this.jg;re.h(0,0,0,0);var oe=this.desiredSize,le=this.minSize;b===void 0&&(b=le.width,te=le.height),b=Math.max(b,le.width),te=Math.max(te,le.height);var fe=this.maxSize;isNaN(oe.width)||(a=Math.min(oe.width,fe.width)),isNaN(oe.height)||(x=Math.min(oe.height,fe.height)),a=Math.max(b,a),x=Math.max(te,x);var ge=this.yb;a=Math.max(a-ge.left-ge.right,0),x=Math.max(x-ge.top-ge.bottom,0);var ye=this.O.s;ye.length!==0&&this.na.measure(this,a,x,ye,re,b,te),a=re.width+ge.left+ge.right,ge=re.height+ge.top+ge.bottom,isFinite(oe.width)&&(a=oe.width),isFinite(oe.height)&&(ge=oe.height),a=Math.min(fe.width,a),ge=Math.min(fe.height,ge),a=Math.max(le.width,a),ge=Math.max(le.height,ge),a=Math.max(b,a),ge=Math.max(te,ge),er(re,a,ge),er(this.naturalBounds,a,ge),this.Ge(0,0,a,ge)},We.Pb=function(){if(this.$g===null){var a=this.O.s,x=a.length;if(x===0)return null;for(var b=0;b<x;b++){var te=a[b];if(te.isPanelMain===!0)return this.$g=te}this.$g=a[0]}return this.$g};function Nm(a){return a.part!==null?a.part.locationObject:null}We.eh=function(a,x,b,te){var re=this.O.s;if(this.actualBounds.h(a,x,b,te),re.length!==0){if(!this.desiredSize.w()){a=bc(this,!0);var oe=this.measuredBounds;x=oe.width,oe=oe.height;var le=this.Kg,fe=le.left+le.right;switch(le=le.top+le.bottom,x===b&&oe===te&&(a=li),a){case li:(x>b||oe>te)&&(this.v(),this.measure(x>b?b:x,oe>te?te:oe,0,0));break;case wi:this.v(!0),this.measure(b+fe,te+le,0,0);break;case no:this.v(!0),this.measure(b+fe,oe+le,0,0);break;case To:this.v(!0),this.measure(x+fe,te+le,0,0)}}this.na.arrange(this,re,this.jg)}},We.gh=function(a){var x=this.naturalBounds,b=Nm(this);if(Zr(0,0,x.width,x.height,a.x,a.y)){x=this.O.s;for(var te=x.length,re=it.allocAt(0,0);te--;){var oe=x[te];if((oe.visible||oe===b)&&(Co(re.set(a),oe.transform),oe.ca(re)))return it.free(re),!0}return it.free(re),!(this.Ma===null&&this.areaBackground===null)}return!1},We.ks=function(a){if(this.bindingId===a)return this;for(var x=this.O.s,b=x.length,te=0;te<b;te++){var re=x[te].ks(a);if(re!==null)return re}return null},We.qm=function(a,x){if(x(this,a),a instanceof Pi){a=a.O.s;for(var b=a.length,te=0;te<b;te++)this.qm(a[te],x)}};function Px(a,x){e3(a,a,x)}function e3(a,x,b){b(x),x=x.O.s;for(var te=x.length,re=0;re<te;re++){var oe=x[re];oe instanceof Pi&&e3(a,oe,b)}}function CN(a,x){r5(a,a,x)}function r5(a,x,b){if(b(x),x instanceof Pi){x=x.O.s;for(var te=x.length,re=0;re<te;re++)r5(a,x[re],b)}}We.Nl=function(a){return o5(this,this,a)};function o5(a,x,b){if(b(x))return x;if(x instanceof Pi){x=x.O.s;for(var te=x.length,re=0;re<te;re++){var oe=o5(a,x[re],b);if(oe!==null)return oe}}return null}We.fb=function(a){if(this.name===a)return this;var x=this.O.s,b=x.length;this.Hh===null&&this.itemTemplateMap===null||(b=US(this));for(var te=0;te<b;te++){var re=x[te];if(re instanceof Pi){var oe=re.fb(a);if(oe!==null)return oe}if(re.name===a)return re}return null};function t3(a){a=a.O.s;for(var x=a.length,b=0,te=0;te<x;te++){var re=a[te];re instanceof Pi?b=Math.max(b,t3(re)):re instanceof xs&&(b=Math.max(b,re.ig/2*re.strokeMiterLimit*re.Df()))}return b}We.se=function(){return!(this.type===Pi.TableRow||this.type===Pi.TableColumn)};function ry(a){return a.type===Pi.TableRow||a.type===Pi.TableColumn}We.ic=function(a,x,b){if(this.pickable===!1||(x===void 0&&(x=null),b===void 0&&(b=null),Xh(this)))return null;var te=this.naturalBounds,re=1/this.Df(),oe=this.se(),le=oe?a:Co(it.allocAt(a.x,a.y),this.transform),fe=this.diagram,ge=10,ye=5;if(fe!==null&&(ge=fe.Ql("extraTouchArea"),ye=ge/2),Zr(-(ye*re),-(ye*re),te.width+ge*re,te.height+ge*re,le.x,le.y)){if(!this.isAtomic){re=this.O.s;var we=re.length;if(fe=it.alloc(),ye=(ge=this.isClipping&&this.na===Pi.Spot)?this.Pb():null,ge&&(ye.se()?Co(fe.set(a),ye.transform):fe.set(a),!ye.ca(fe)))return it.free(fe),oe||it.free(le),null;for(var be=Nm(this);we--;){var ke=re[we];if((ke.visible||ke===be)&&(ke.se()?Co(fe.set(a),ke.transform):fe.set(a),!ge||ke!==ye)){var Ue=null;if(ke instanceof Pi?Ue=ke.ic(fe,x,b):ke.pickable===!0&&ke.ca(fe)&&(Ue=ke),Ue!==null&&(x!==null&&(Ue=x(Ue)),Ue!==null&&(b===null||b(Ue))))return it.free(fe),oe||it.free(le),Ue}}it.free(fe)}return this.background===null&&this.areaBackground===null?(oe||it.free(le),null):(a=Zr(0,0,te.width,te.height,le.x,le.y)?this:null,oe||it.free(le),a)}return oe||it.free(le),null},We.ji=function(a,x,b,te){if(this.pickable===!1)return!1;x===void 0&&(x=null),b===void 0&&(b=null);var re=this.naturalBounds,oe=this.se(),le=oe?a:Co(it.allocAt(a.x,a.y),this.transform);if(re=Zr(0,0,re.width,re.height,le.x,le.y),ry(this)||re){if(!this.isAtomic){for(var fe=this.O.s,ge=fe.length,ye=it.alloc(),we=Nm(this);ge--;){var be=fe[ge];if(be.visible||be===we){be.se()?Co(ye.set(a),be.transform):ye.set(a);var ke=be;be=be instanceof Pi?be:null,(be!==null?be.ji(ye,x,b,te):ke.ca(ye))&&ke.pickable!==!1&&(x!==null&&(ke=x(ke)),ke===null||b!==null&&!b(ke)||te.add(ke))}}it.free(ye)}return oe||it.free(le),re&&(this.background!==null||this.areaBackground!==null)}return oe||it.free(le),!1},We.Cf=function(a,x,b,te,re,oe){if(this.pickable===!1)return!1;x===void 0&&(x=null),b===void 0&&(b=null);var le=oe;if(oe===void 0&&(le=Br.alloc(),le.reset()),le.multiply(this.transform),this.fh(a,le))return h0(this,x,b,re),oe===void 0&&Br.free(le),!0;if(this.Yc(a,le)){if(!this.isAtomic)for(var fe=Nm(this),ge=this.O.s,ye=ge.length;ye--;){var we=ge[ye];if(we.visible||we===fe){var be=we.actualBounds,ke=this.naturalBounds;be.x>ke.width||be.y>ke.height||0>be.x+be.width||0>be.y+be.height||(be=we,we=we instanceof Pi?we:null,ke=Br.alloc(),ke.set(le),(we!==null?we.Cf(a,x,b,te,re,ke):Uc(be,a,te,ke))&&(x!==null&&(be=x(be)),be===null||b!==null&&!b(be)||re.add(be)),Br.free(ke))}}return oe===void 0&&Br.free(le),te}return oe===void 0&&Br.free(le),!1};function h0(a,x,b,te){for(var re=a.O.s,oe=re.length;oe--;){var le=re[oe];if(le.visible){var fe=le.actualBounds,ge=a.naturalBounds;fe.x>ge.width||fe.y>ge.height||0>fe.x+fe.width||0>fe.y+fe.height||(le instanceof Pi&&h0(le,x,b,te),x!==null&&(le=x(le)),le===null||b!==null&&!b(le)||te.add(le))}}}We.og=function(a,x,b,te,re,oe){if(this.pickable===!1)return!1;b===void 0&&(b=null),te===void 0&&(te=null);var le=this.naturalBounds,fe=this.se(),ge=fe?a:Co(it.allocAt(a.x,a.y),this.transform),ye=fe?x:Co(it.allocAt(x.x,x.y),this.transform),we=ge.Bf(ye),be=0<ge.x&&ge.x<le.width&&0<ge.y&&ge.y<le.height||vo(ge.x,ge.y,0,0,0,le.height)<=we||vo(ge.x,ge.y,0,le.height,le.width,le.height)<=we||vo(ge.x,ge.y,le.width,le.height,le.width,0)<=we||vo(ge.x,ge.y,le.width,0,0,0)<=we;if(le=ge.zd(0,0)<=we&&ge.zd(0,le.height)<=we&&ge.zd(le.width,0)<=we&&ge.zd(le.width,le.height)<=we,fe||(it.free(ge),it.free(ye)),be){if(!this.isAtomic){ge=it.alloc(),ye=it.alloc(),we=Nm(this);for(var ke=this.O.s,Ue=ke.length;Ue--;){var Ve=ke[Ue];if(Ve.visible||Ve===we){var Ke=Ve.actualBounds,Pt=this.naturalBounds;(!fe||!(Ke.x>Pt.width||Ke.y>Pt.height||0>Ke.x+Ke.width||0>Ke.y+Ke.height))&&(Ve.se()?(Ke=Ve.transform,Co(ge.set(a),Ke),Co(ye.set(x),Ke)):(ge.set(a),ye.set(x)),Ke=Ve,Ve=Ve instanceof Pi?Ve:null,(Ve!==null?Ve.og(ge,ye,b,te,re,oe):Ke.tx(ge,ye,re))&&(b!==null&&(Ke=b(Ke)),Ke===null||te!==null&&!te(Ke)||oe.add(Ke)))}}it.free(ge),it.free(ye)}return re?be:le}return!1};function MC(a){var x=null;return a instanceof xs&&(x=a.spot1,x===Bl&&(x=null),a=a.geometry,a!==null&&x===null&&(x=a.spot1)),x===null&&(x=Is),x}function yp(a){var x=null;return a instanceof xs&&(x=a.spot2,x===Bl&&(x=null),a=a.geometry,a!==null&&x===null&&(x=a.spot2)),x===null&&(x=ws),x}We.add=function(a){for(var x=[],b=0;b<arguments.length;++b)x[b]=arguments[b];for(b=0;b<x.length;b++)this.Gb(this.O.count,x[b]);return this},We.M=function(a){return this.O.M(a)},We.Gb=function(a,x){x instanceof mo&&hn("Cannot add a Part to a Panel: "+x+"; use a Panel instead"),(this===x||this.rg(x))&&(this===x&&hn("Cannot make a Panel contain itself: "+this.toString()),hn("Cannot make a Panel indirectly contain itself: "+this.toString()+" already contains "+x.toString()));var b=x.panel;if(b!==null&&b!==this&&hn("Cannot add a GraphObject that already belongs to another Panel to this Panel: "+x.toString()+", already contained by "+b.toString()+", cannot be shared by this Panel: "+this.toString()),this.na!==Pi.Grid||x instanceof xs||hn("Can only add Shapes to a Grid Panel, not: "+x),this.na!==Pi.Graduated||x instanceof xs||x instanceof _l||hn("Can only add Shapes or TextBlocks to a Graduated Panel, not: "+x),x.wi(this),x.Ng=null,this.itemArray!==null){var te=x.data;te!==null&&typeof te=="object"&&(this.ge===null&&(this.ge=new kn),this.ge.add(te,x))}var re=this.O;if(te=-1,b===this){for(var oe=-1,le=this.O.s,fe=le.length,ge=0;ge<fe;ge++)if(le[ge]===x){oe=ge;break}if(oe!==-1){if(oe===a||oe+1>=re.count&&a>=re.count)return;re.mb(oe),te=oe}else hn("element "+x.toString()+" has panel "+b.toString()+" but is not contained by it.")}(0>a||a>re.count)&&(a=re.count),re.Gb(a,x),(a===0||x.isPanelMain)&&(this.$g=null),Mf(this)||this.v(),x.v(!1),x.portId!==null?this.Te=!0:x instanceof Pi&&x.Te===!0&&(this.Te=!0),this.graduatedIntervals=null,this.If()||TC(this,x,!1),b=this.part,b!==null&&(b.Rh=null,b.ag=NaN,this.Te&&b instanceof ar&&(b.Te=!0),b.Te&&b instanceof ar&&(b.wc=null),re=this.diagram,re!==null&&re.undoManager.isUndoingRedoing||(te!==-1&&b.cb(Ou,"elements",this,x,null,te,null),b.cb(Ol,"elements",this,null,x,null,a)))};function Wf(a,x){a.l=x?a.l|16777216:a.l&-16777217}We.remove=function(a){for(var x=this.O.s,b=x.length,te=-1,re=0;re<b;re++)if(x[re]===a){te=re;break}te!==-1&&this.pc(te,!0)},We.mb=function(a){0<=a&&this.pc(a,!0)},We.pc=function(a,x){var b=this.O,te=b.M(a);if(te.Ng=null,te.wi(null),this.ge!==null){var re=te.data;typeof re=="object"&&this.ge.remove(re)}b.mb(a),Mc(this,!1),this.v(),this.$g===te&&(this.$g=null),this.graduatedIntervals=null;var oe=this.part;oe!==null&&(oe.Rh=null,oe.ag=NaN,oe.Wb(),oe instanceof ar&&(te instanceof Pi?te.qm(te,function(le,fe){KS(oe,fe,x)}):KS(oe,te,x)),b=this.diagram,b!==null&&b.undoManager.isUndoingRedoing||oe.cb(Ou,"elements",this,te,null,a,null))},We.Fb=function(a){0>a&&Xo(a,">= 0",Pi,"getRowDefinition:idx"),a=Math.round(a);var x=this.rowDefs;if(x[a]===void 0){var b=new mc;b.wi(this),b.isRow=!0,b.index=a,x[a]=b,this.cb(Ol,"rowdefs",this,null,b,null,a)}return x[a]},We.oA=function(a){if(0>a&&Xo(a,">= 0",Pi,"removeRowDefinition:idx"),this.rowCount!==0){a=Math.round(a);var x=this.rowDefs,b=x[a];if(b){x[a]=void 0;for(var te=x.length-1;0<=te&&x[te--]===void 0;)x.length--;this.cb(Ou,"rowdefs",this,b,null,a,null),this.v()}}};function Fm(a,x,b){var te=a.rowDefs;if(!(0>x)){if(te[x]=b instanceof mc?b:void 0,!b)for(x=te.length-1;0<=x&&te[x--]===void 0;)te.length--;a.v()}}We.Eb=function(a){0>a&&Xo(a,">= 0",Pi,"getColumnDefinition:idx"),a=Math.round(a);var x=this.colDefs;if(x[a]===void 0){var b=new mc;b.wi(this),b.isRow=!1,b.index=a,x[a]=b,this.cb(Ol,"coldefs",this,null,b,null,a)}return x[a]},We.jA=function(a){if(0>a&&Xo(a,">= 0",Pi,"removeColumnDefinition:idx"),this.columnCount!==0){a=Math.round(a);var x=this.colDefs,b=x[a];if(b){x[a]=void 0;for(var te=x.length-1;0<=te&&x[te--]===void 0;)x.length--;this.cb(Ou,"coldefs",this,b,null,a,null),this.v()}}};function Cx(a,x,b){var te=a.colDefs;if(!(0>x)){if(te[x]=b instanceof mc?b:void 0,!b)for(x=te.length-1;0<=x&&te[x--]===void 0;)te.length--;a.v()}}We.Gy=function(a){var x=null;return a.isRow?x=this.Fb(a.index):a.isRow||(x=this.Eb(a.index)),x&&uw(x,a),this},We.Hy=function(a,x){return(a=this.Fb(a))&&uw(a,new mc(x)),this},We.By=function(a,x){return(a=this.Eb(a))&&uw(a,new mc(x)),this},We.nz=function(a){if(0>a||this.type!==Pi.Table||this.rowCount===0)return-1;for(var x=0,b=this.rowDefs,te=b.length,re=this.topIndex;re<te;re++){var oe=b[re];if(oe!==void 0&&(x+=oe.total,a<x))break}return re},We.fz=function(a){if(0>a||this.type!==Pi.Table||this.columnCount===0)return-1;for(var x=0,b=this.colDefs,te=b.length,re=this.leftIndex;re<te;re++){var oe=b[re];if(oe!==void 0&&(x+=oe.total,a<x))break}return re},We.Fz=function(a,x){if(x===void 0&&(x=new it(NaN,NaN)),this.type!==Pi.Graduated)return x.h(NaN,NaN),x;a=Math.min(Math.max(a,this.graduatedMin),this.graduatedMax);var b=this.Pb();return b.geometry.Pu((a-this.graduatedMin)/this.graduatedRange,x),b.transform.Ga(x)},We.Gz=function(a){if(this.type!==Pi.Graduated)return NaN;var x=this.Pb();return x.transform.Cd(a),x.geometry.xx(a)*this.graduatedRange+this.graduatedMin};function Ua(a){return a=a.allBindings,a!==null&&a._isFrozen}function Yp(a){var x=a.allBindings;if(x===null)a.data!==null&&hn("Template cannot have .data be non-null: "+a),a.allBindings=x=new Zi;else if(x._isFrozen)return;var b=new Zi;Wf(a,!1),a.qm(a,function(ye,we){we.th();var be=we.localBindings;if(be!==null)for(mx(we,!1),be=be.iterator;be.next();){var ke=be.value;ke.mode===Ew&&mx(we,!0);var Ue=ke.sourceName;Ue!==null&&(Ue==="/"&&Wf(ye,!0),Ue=y2(ke,ye,we),Ue!==null&&(b.add(Ue),Ue.srcBindings===null&&(Ue.srcBindings=new Zi),Ue.srcBindings.add(ke))),x.add(ke)}if(we instanceof Pi&&we.type===Pi.Table){if(0<we.rowCount){for(ye=we.rowDefs,be=ye.length,ke=0;ke<be;ke++)if(Ue=ye[ke],Ue!==void 0&&Ue.be!==null)for(var Ve=Ue.be.iterator;Ve.next();){var Ke=Ve.value;Ke.xd=Ue,Ke.to=2,Ke.wl=Ue.index,x.add(Ke)}}if(0<we.columnCount){for(we=we.colDefs,ye=we.length,be=0;be<ye;be++)if(ke=we[be],ke!==void 0&&ke.be!==null)for(Ue=ke.be.iterator;Ue.next();)Ve=Ue.value,Ve.xd=ke,Ve.to=1,Ve.wl=ke.index,x.add(Ve)}}});for(var te=b.iterator;te.next();){var re=te.value;if(re.srcBindings!==null){mx(re,!0);for(var oe=re.srcBindings.iterator;oe.next();){var le=oe.value;re.localBindings===null&&(re.localBindings=new Zi),re.localBindings.add(le)}}re.srcBindings=null}for(te=x.iterator;te.next();)if(re=te.value,oe=re.xd,oe!==null){re.xd=null;var fe=re.targetProperty,ge=fe.indexOf(".");0<ge&&oe instanceof Pi&&(le=fe.substring(0,ge),fe=fe.substr(ge+1),ge=oe.fb(le),ge!==null?(oe=ge,re.targetProperty=fe):al('Warning: unable to find GraphObject named "'+le+'" for Binding: '+re.toString())),oe instanceof mc?(le=Pl(oe.panel),re.Ai=le===void 0?-1:le,oe.panel.bindingId=re.Ai):oe instanceof nn?(le=Pl(oe),re.Ai=le===void 0?-1:le,oe.bindingId=re.Ai):hn("Unknown type of binding target: "+oe)}x.freeze(),a instanceof mo&&a.Zc()&&a.Va()}We.Uy=function(a){a===void 0&&(a=!1);var x=this.copy();return CN(x,function(b){b instanceof Pi&&(b.allBindings=null,b.ub=null);var te=b.localBindings;te!==null&&(b.localBindings=null,te.each(function(re){b.bind(re.copy())})),te=b.animationTriggers,te!==null&&(b.animationTriggers=null,te.each(function(re){b.Jv(re.value.copy())}))}),a&&Yp(x),x},We.La=function(a){var x=this.allBindings;if(x!==null)for(a===void 0&&(a=""),x=x.iterator;x.next();){var b=x.value,te=b.sourceProperty;if((a===""||te===""||te===a)&&(te=b.targetProperty,b.converter!==null||te!=="")){te=this.data;var re=b.sourceName;if(re!==null){if(re==="")te=this;else if(re==="/")te=this;else if(re===".")te=this;else if(re==="..")te=this;else if(te=this.fb(re),te===null)continue}else if(b.isToModel)if(te=this.diagram,te!==null)te=te.model.modelData;else continue;var oe=this,le=b.Ai;if(le!==-1){if(oe=this.ks(le),oe===null)continue}else b.xd!==null&&(oe=b.xd);if(re==="/"?te=oe.part:re==="."?te=oe:re===".."&&(te=oe.panel),re=b.to,re!==0){if(!(oe instanceof Pi))continue;re===1?oe=oe.Eb(b.wl):re===2&&(oe=oe.Fb(b.wl))}oe!==void 0&&b.Mv(oe,te)}}},We.sx=function(a){return a==null||this.ge===null?null:this.ge.I(a)};function Ex(a,x){a=a.O.s;for(var b=a.length,te=x.length,re=0,oe=null;re<b&&(oe=a[re],!(oe instanceof Pi&&oe.data!==null));)re++,oe=a[re];if(b-re!==te)return!0;if(oe===null)return 0<te;for(var le=0;re<b&&le<te;){if(oe=a[re],!(oe instanceof Pi)||oe.data!==x[le])return!0;re++,le++}return!1}function US(a){if(a.type===Pi.Spot||a.type===Pi.Auto)return Math.min(a.O.length,1);if(a.type===Pi.Link){a=a.O;for(var x=a.length,b=0;b<x;b++){var te=a.M(b);if(!(te instanceof xs&&te.isPanelMain))break}return b}return a.type===Pi.Table&&0<a.O.length&&(a=a.O.M(0),a.isPanelMain&&a instanceof Pi&&ry(a))?1:0}We.mv=function(){for(var a=US(this);this.O.length>a;)this.pc(this.O.length-1,!1);s5(this,this.itemArray)};function s5(a,x){var b=US(a);if(x===null||x.length===0)for(;a.O.length>b;)a.pc(a.O.length-1,!1);else if(a.O.length<=b){b=x.length;for(var te=0;te<b;te++)BC(a,x[te],te,!0)}else{te=b;for(var re=0;re<x.length;re++,te++){var oe=x[re],le=te<a.O.length?a.O.M(te):null;if(le instanceof Pi){if(le.data!==oe){var fe=Jb(a,le.data),ge=Jb(a,oe),ye=ge!==fe;ye||(fe=_b(a,fe),ye=_b(a,ge)!==fe),ye?(a.pc(te,!1),BC(a,oe,re,!1)):le.data=oe}}else BC(a,oe,re,!1)}for(;te<a.O.length;)a.pc(te,!1);a.$g=null,Kb(a,b,0),Mf(a)||a.v(),a.graduatedIntervals=null,a.If()||TC(a,a,!1),x=a.part,x!==null&&(x.Rh=null,x.ag=NaN,a.Te&&x instanceof ar&&(x.Te=!0),x.Te&&x instanceof ar&&(x.wc=null))}}function BC(a,x,b,te){if(!(x==null||0>b)){var re=Jb(a,x);if(re=_b(a,re),re!==null){if(Yp(re),re=re.copy(),re.l&16777216){var oe=a.ih();oe!==null&&Wf(oe,!0)}typeof x=="object"&&(a.ge===null&&(a.ge=new kn),a.ge.add(x,re)),oe=b+US(a),a.Gb(oe,re),te&&(re.ub=x,Kb(a,oe,b),re.ub=null),re.data=x}}}function Kb(a,x,b){for(a=a.O;x<a.length;){var te=a.M(x);if(te instanceof Pi){var re=x,oe=b;te.type===Pi.TableRow?te.row=re:te.type===Pi.TableColumn&&(te.column=re),te.itemIndex=oe}x++,b++}}function Jb(a,x){if(x===null)return"";if(a=a.itemCategoryProperty,typeof a=="function")a=a(x);else if(typeof a=="string"&&typeof x=="object"){if(a==="")return"";a=ec(x,a)}else return"";if(a===void 0)return"";if(typeof a=="string")return a;hn("Panel.getCategoryForItemData found a non-string category for "+x+": "+a)}function _b(a,x){var b=a.itemTemplateMap,te=null;return b!==null&&(te=b.I(x)),te===null&&(b!==null&&(te=b.I("")),te===null&&(a5||(a5=!0,al('No item template Panel found for category "'+x+'" on '+a),al(" Using default item template."),a=new Pi,x=new _l,x.bind(new tc("text","",da)),a.add(x),l5=a),te=l5)),te}function TC(a,x,b){var te=x.enabledChanged;if(te!==null&&te(x,b),x instanceof Pi){x=x.O.s,te=x.length;for(var re=0;re<te;re++){var oe=x[re];b&&oe instanceof Pi&&!oe.isEnabled||TC(a,oe,b)}}}function cm(a,x){x.name=a,fg.add(a,x)}pn.Object.defineProperties(Pi.prototype,{type:{get:function(){return this.na},set:function(a){var x=this.na;x!==a&&(this.na=a,this.isAtomic=this.na===Pi.Grid,this.v(),this.g("type",x,a))}},elements:{get:function(){return this.O.iterator}},naturalBounds:{get:function(){return this.dc}},padding:{get:function(){return this.yb},set:function(a){typeof a=="number"?(0>a&&Xo(a,">= 0",Pi,"padding"),a=new yr(a)):(0>a.left&&Xo(a.left,">= 0",Pi,"padding:value.left"),0>a.right&&Xo(a.right,">= 0",Pi,"padding:value.right"),0>a.top&&Xo(a.top,">= 0",Pi,"padding:value.top"),0>a.bottom&&Xo(a.bottom,">= 0",Pi,"padding:value.bottom"));var x=this.yb;x.D(a)||(this.yb=a=a.J(),this.v(),this.g("padding",x,a))}},defaultAlignment:{get:function(){return this.Tm},set:function(a){var x=this.Tm;x.D(a)||(this.Tm=a=a.J(),this.v(),this.g("defaultAlignment",x,a))}},defaultStretch:{get:function(){return this.Uf},set:function(a){var x=this.Uf;x!==a&&(this.Uf=a,this.v(),this.g("defaultStretch",x,a))}},defaultSeparatorPadding:{get:function(){return this.T!==null?this.T.Qp:Ts},set:function(a){typeof a=="number"&&(a=new yr(a));var x=this.defaultSeparatorPadding;x.D(a)||(a=a.J(),this.T===null&&(this.T=new Ap),this.T.Qp=a,this.v(),this.g("defaultSeparatorPadding",x,a))}},defaultRowSeparatorStroke:{get:function(){return this.T!==null?this.T.ia:null},set:function(a){var x=this.defaultRowSeparatorStroke;x!==a&&(a===null||typeof a=="string"||a instanceof Ws)&&(a instanceof Ws&&a.freeze(),this.T===null&&(this.T=new Ap),this.T.ia=a,this.N(),this.g("defaultRowSeparatorStroke",x,a))}},defaultRowSeparatorStrokeWidth:{get:function(){return this.T!==null?this.T.Ha:1},set:function(a){var x=this.defaultRowSeparatorStrokeWidth;x!==a&&isFinite(a)&&0<=a&&(this.T===null&&(this.T=new Ap),this.T.Ha=a,this.v(),this.g("defaultRowSeparatorStrokeWidth",x,a))}},defaultRowSeparatorDashArray:{get:function(){return this.T!==null?this.T.V:null},set:function(a){var x=this.defaultRowSeparatorDashArray;if(x!==a){if(a!==null){for(var b=a.length,te=0,re=0;re<b;re++){var oe=a[re];typeof oe=="number"&&0<=oe&&isFinite(oe)||hn("defaultRowSeparatorDashArray value "+oe+" at index "+re+" must be a positive number or zero."),te+=oe}if(te===0){if(x===null)return;a=null}}this.T===null&&(this.T=new Ap),this.T.V=a,this.N(),this.g("defaultRowSeparatorDashArray",x,a)}}},defaultColumnSeparatorStroke:{get:function(){return this.T!==null?this.T.u:null},set:function(a){var x=this.defaultColumnSeparatorStroke;x!==a&&(a===null||typeof a=="string"||a instanceof Ws)&&(a instanceof Ws&&a.freeze(),this.T===null&&(this.T=new Ap),this.T.u=a,this.N(),this.g("defaultColumnSeparatorStroke",x,a))}},defaultColumnSeparatorStrokeWidth:{get:function(){return this.T!==null?this.T.F:1},set:function(a){var x=this.defaultColumnSeparatorStrokeWidth;x!==a&&isFinite(a)&&0<=a&&(this.T===null&&(this.T=new Ap),this.T.F=a,this.v(),this.g("defaultColumnSeparatorStrokeWidth",x,a))}},defaultColumnSeparatorDashArray:{get:function(){return this.T!==null?this.T.o:null},set:function(a){var x=this.defaultColumnSeparatorDashArray;if(x!==a){if(a!==null){for(var b=a.length,te=0,re=0;re<b;re++){var oe=a[re];typeof oe=="number"&&0<=oe&&isFinite(oe)||hn("defaultColumnSeparatorDashArray value "+oe+" at index "+re+" must be a positive number or zero."),te+=oe}if(te===0){if(x===null)return;a=null}}this.T===null&&(this.T=new Ap),this.T.o=a,this.N(),this.g("defaultColumnSeparatorDashArray",x,a)}}},inRowsCols:{get:function(){return this.T!==null?this.T.nb:null},set:function(a){this.T===null&&(this.T=new Ap),this.T.nb=a}},viewboxStretch:{get:function(){return this.xo},set:function(a){var x=this.xo;x!==a&&(this.xo=a,this.v(),this.g("viewboxStretch",x,a))}},gridCellSize:{get:function(){return this.jn},set:function(a){var x=this.jn;if(!x.D(a)){a.w()&&a.width!==0&&a.height!==0||hn("Invalid Panel.gridCellSize: "+a),this.jn=a.J();var b=this.diagram;b!==null&&this===b.grid&&Ng(b),this.N(),this.g("gridCellSize",x,a)}}},gridOrigin:{get:function(){return this.kn},set:function(a){var x=this.kn;if(!x.D(a)){a.w()||hn("Invalid Panel.gridOrigin: "+a),this.kn=a.J();var b=this.diagram;b!==null&&this===b.grid&&Ng(b),this.N(),this.g("gridOrigin",x,a)}}},graduatedMin:{get:function(){return this.ra!==null?this.ra.lq:0},set:function(a){var x=this.graduatedMin;x!==a&&(this.ra===null&&(this.ra=new d0),this.ra.lq=a,this.v(),this.g("graduatedMin",x,a),vh(this)&&(a=this.part,a!==null&&ou(this,a,"graduatedRange")))}},graduatedMax:{get:function(){return this.ra!==null?this.ra.F:100},set:function(a){var x=this.graduatedMax;x!==a&&(this.ra===null&&(this.ra=new d0),this.ra.F=a,this.v(),this.g("graduatedMax",x,a),vh(this)&&(a=this.part,a!==null&&ou(this,a,"graduatedRange")))}},graduatedRange:{get:function(){return this.graduatedMax-this.graduatedMin}},graduatedTickUnit:{get:function(){return this.ra!==null?this.ra.ia:10},set:function(a){var x=this.graduatedTickUnit;x!==a&&0<a&&(this.ra===null&&(this.ra=new d0),this.ra.ia=a,this.v(),this.g("graduatedTickUnit",x,a))}},graduatedTickBase:{get:function(){return this.ra!==null?this.ra.V:0},set:function(a){var x=this.graduatedTickBase;x!==a&&(this.ra===null&&(this.ra=new d0),this.ra.V=a,this.v(),this.g("graduatedTickBase",x,a))}},graduatedMarks:{get:function(){return this.ra!==null?this.ra.u:null},set:function(a){this.ra!==null?this.ra.u=a:a!==null&&(this.ra=new d0,this.ra.u=a)}},graduatedBounds:{get:function(){return this.ra!==null?this.ra.j:null},set:function(a){this.ra!==null?this.ra.j=a:a!==null&&(this.ra=new d0,this.ra.j=a)}},graduatedIntervals:{get:function(){return this.ra!==null?this.ra.o:null},set:function(a){this.ra!==null?this.ra.o=a:a!==null&&(this.ra=new d0,this.ra.o=a)}},temporaryTextBlock:{get:function(){return this.ra!==null?this.ra.Zh:null},set:function(a){this.ra!==null?this.ra.Zh=a:a!==null&&(this.ra=new d0,this.ra.Zh=a)}},panelLayoutState:{get:function(){return this.F},set:function(a){this.F=a}},Te:{get:function(){return(this.l&8388608)!==0},set:function(a){(this.l&8388608)!==0!==a&&(this.l^=8388608)}},rowDefs:{get:function(){return this.T===null&&(this.T=new Ap),this.T.Pc}},rowCount:{get:function(){return this.T===null?0:this.rowDefs.length}},colDefs:{get:function(){return this.T===null&&(this.T=new Ap),this.T.Oc}},columnCount:{get:function(){return this.T===null?0:this.colDefs.length}},rowSizing:{get:function(){return this.T!==null?this.T.ob:cw},set:function(a){var x=this.rowSizing;x!==a&&(this.T===null&&(this.T=new Ap),this.T.ob=a,this.v(),this.g("rowSizing",x,a))}},columnSizing:{get:function(){return this.T!==null?this.T.j:cw},set:function(a){var x=this.columnSizing;x!==a&&(this.T===null&&(this.T=new Ap),this.T.j=a,this.v(),this.g("columnSizing",x,a))}},topIndex:{get:function(){return this.T!==null?this.T.Hb:0},set:function(a){var x=this.topIndex;x!==a&&((!isFinite(a)||0>a)&&hn("Panel.topIndex must be greater than zero and a real number, not: "+a),this.T===null&&(this.T=new Ap),this.T.Hb=a,this.v(),this.g("topIndex",x,a))}},leftIndex:{get:function(){return this.T!==null?this.T.hb:0},set:function(a){var x=this.leftIndex;x!==a&&((!isFinite(a)||0>a)&&hn("Panel.leftIndex must be greater than zero and a real number, not: "+a),this.T===null&&(this.T=new Ap),this.T.hb=a,this.v(),this.g("leftIndex",x,a))}},data:{get:function(){return this.ub},set:function(a){var x=this.ub;if(x!==a){var b=this instanceof mo&&!(this instanceof Ca);Yp(this),this.ub=a;var te=this.diagram;te!==null&&(b?(b=te.partManager,this instanceof Ui?(x!==null&&b.bf.remove(x),a!==null&&b.bf.add(a,this)):this instanceof mo&&(x!==null&&b.cf.remove(x),a!==null&&b.cf.add(a,this))):(b=this.panel,b!==null&&b.ge!==null&&(x!==null&&b.ge.remove(x),a!==null&&b.ge.add(a,this)))),this.g("data",x,a),te!==null&&te.undoManager.isUndoingRedoing||a!==null&&this.La()}}},itemIndex:{get:function(){return this.zn},set:function(a){var x=this.zn;x!==a&&(this.zn=a,this.g("itemIndex",x,a))}},allBindings:{get:function(){return this.A!==null?this.A.nb:null},set:function(a){this.localBindings!==a&&(this.A===null&&(this.A=new Ic),this.A.nb=a)}},itemArray:{get:function(){return this.Hh},set:function(a){var x=this.Hh;if(x!==a||a!==null&&Ex(this,a)){var b=this.diagram;x!==a&&(b!==null&&x!==null&&g2(b.partManager,this,b),this.Hh=a,b!==null&&a!==null&&GC(b.partManager,this)),this.g("itemArray",x,a),b!==null&&b.undoManager.isUndoingRedoing||s5(this,a)}}},itemTemplate:{get:function(){return this.itemTemplateMap===null?null:this.itemTemplateMap.I("")},set:function(a){if(this.itemTemplateMap===null){if(a===null)return;this.itemTemplateMap=new kn}var x=this.itemTemplateMap.I("");x!==a&&((a instanceof mo||a.isPanelMain)&&hn("Panel.itemTemplate must not be a Part or be Panel.isPanelMain: "+a),this.itemTemplateMap.add("",a),this.g("itemTemplate",x,a),a=this.diagram,a!==null&&a.undoManager.isUndoingRedoing||this.mv())}},itemTemplateMap:{get:function(){return this.A!==null?this.A.Pc:null},set:function(a){var x=this.itemTemplateMap;if(x!==a){for(var b=a.iterator;b.next(););Os(this),this.A.Pc=a,this.g("itemTemplateMap",x,a),a=this.diagram,a!==null&&a.undoManager.isUndoingRedoing||this.mv()}}},itemCategoryProperty:{get:function(){return this.A!==null?this.A.Oc:"category"},set:function(a){var x=this.itemCategoryProperty;x!==a&&(Os(this),this.A.Oc=a,this.g("itemCategoryProperty",x,a))}},isAtomic:{get:function(){return(this.l&1048576)!==0},set:function(a){var x=(this.l&1048576)!==0;x!==a&&(this.l^=1048576,this.g("isAtomic",x,a))}},isClipping:{get:function(){return(this.l&2097152)!==0},set:function(a){var x=(this.l&2097152)!==0;x!==a&&(this.l^=2097152,this instanceof ts&&(this.tb=null),this.v(),this.g("isClipping",x,a))}},isOpposite:{get:function(){return(this.l&33554432)!==0},set:function(a){var x=(this.l&33554432)!==0;x!==a&&(this.l^=33554432,this.v(),this.g("isOpposite",x,a))}},isEnabled:{get:function(){return(this.l&4194304)!==0},set:function(a){var x=(this.l&4194304)!==0;if(x!==a){var b=this.panel===null||this.panel.If();this.l^=4194304,this.g("isEnabled",x,a),x=this.diagram,x!==null&&x.undoManager.isUndoingRedoing||b&&TC(this,this,a)}}},alignmentFocusName:{get:function(){return this.$e},set:function(a){var x=this.$e;x!==a&&(this.$e=a,this.v(),this.g("alignmentFocusName",x,a))}}}),pn.Object.defineProperties(Pi,{Position:{get:function(){return fg.I("Position")}},Horizontal:{get:function(){return fg.I("Horizontal")}},Vertical:{get:function(){return fg.I("Vertical")}},Spot:{get:function(){return fg.I("Spot")}},Auto:{get:function(){return fg.I("Auto")}},Table:{get:function(){return fg.I("Table")}},Viewbox:{get:function(){return fg.I("Viewbox")}},TableRow:{get:function(){return fg.I("TableRow")}},TableColumn:{get:function(){return fg.I("TableColumn")}},Link:{get:function(){return fg.I("Link")}},Grid:{get:function(){return fg.I("Grid")}},Graduated:{get:function(){return fg.I("Graduated")}}}),Pi.prototype.rebuildItemElements=Pi.prototype.mv,Pi.prototype.findItemPanelForData=Pi.prototype.sx,Pi.prototype.updateTargetBindings=Pi.prototype.La,Pi.prototype.copyTemplate=Pi.prototype.Uy,Pi.prototype.graduatedValueForPoint=Pi.prototype.Gz,Pi.prototype.graduatedPointForValue=Pi.prototype.Fz,Pi.prototype.findColumnForLocalX=Pi.prototype.fz,Pi.prototype.findRowForLocalY=Pi.prototype.nz,Pi.prototype.addColumnDefinition=Pi.prototype.By,Pi.prototype.addRowDefinition=Pi.prototype.Hy,Pi.prototype.addRowColumnDefinition=Pi.prototype.Gy,Pi.prototype.removeColumnDefinition=Pi.prototype.jA,Pi.prototype.getColumnDefinition=Pi.prototype.Eb,Pi.prototype.removeRowDefinition=Pi.prototype.oA,Pi.prototype.getRowDefinition=Pi.prototype.Fb,Pi.prototype.removeAt=Pi.prototype.mb,Pi.prototype.remove=Pi.prototype.remove,Pi.prototype.insertAt=Pi.prototype.Gb,Pi.prototype.elt=Pi.prototype.M,Pi.prototype.add=Pi.prototype.add,Pi.prototype.findObject=Pi.prototype.fb,Pi.prototype.findInVisualTree=Pi.prototype.Nl,Pi.prototype.walkVisualTreeFrom=Pi.prototype.qm,Pi.prototype.findMainElement=Pi.prototype.Pb;var a5=!1,l5=null,fg=new kn;Pi.className="Panel",Pi.definePanelLayout=cm,cm("Position",new qv),cm("Vertical",new $v),cm("Auto",new sw),cm("Link",new bC);function d0(){this.lq=0,this.F=100,this.ia=10,this.V=0,this.Zh=this.o=this.j=this.u=null}d0.prototype.copy=function(){var a=new d0;return a.lq=this.lq,a.F=this.F,a.ia=this.ia,a.V=this.V,a.u=this.u,a.j=this.j,a.o=this.o,a.Zh=this.Zh,a},d0.className="GradPanelSettings";function Ap(){this.Pc=[],this.Oc=[],this.j=this.ob=cw,this.hb=this.Hb=0,this.Qp=Ts,this.Ha=1,this.V=this.ia=null,this.F=1,this.nb=this.o=this.u=null}Ap.prototype.copy=function(a){for(var x=new Ap,b=this.Pc,te=b.length,re=x.Pc,oe=0;oe<te;oe++)if(b[oe]!==void 0){var le=b[oe].copy();le.wi(a),re[oe]=le}for(b=this.Oc,te=b.length,re=x.Oc,oe=0;oe<te;oe++)b[oe]!==void 0&&(le=b[oe].copy(),le.wi(a),re[oe]=le);return x.ob=this.ob,x.j=this.j,x.Hb=this.Hb,x.hb=this.hb,x.Qp=this.Qp.J(),x.Ha=this.Ha,x.ia=this.ia,x.V=this.V,x.F=this.F,x.u=this.u,x.o=this.o,x.nb=this.nb,x},Ap.className="TablePanelSettings";function mc(a){$o(this),this.Me=null,this.uq=!0,this.Za=0,this.Hc=NaN,this.jj=0,this.hj=1/0,this.Jb=Bl,this.pa=this.oc=this.oa=0,this.be=null,this.oo=HS,this.hg=rs,this.lo=this.dg=null,this.mo=NaN,this.Ma=this.tj=null,this.Pm=!1,a&&(Object.assign(this,a),a.column!==void 0?(this.isRow=!1,this.index=a.column):a.row!==void 0&&(this.isRow=!0,this.index=a.row))}mc.prototype.copy=function(){var a=new mc;return a.uq=this.uq,a.Za=this.Za,a.Hc=this.Hc,a.jj=this.jj,a.hj=this.hj,a.Jb=this.Jb,a.oa=this.oa,a.oc=this.oc,a.pa=this.pa,a.hg=this.hg,a.oo=this.oo,this.dg===null?a.dg=null:a.dg=this.dg.J(),a.lo=this.lo,a.mo=this.mo,a.tj=null,this.tj!==null&&(a.separatorDashArray=wa(this.separatorDashArray)),a.Ma=this.Ma,a.Pm=this.Pm,a.be=this.be,a};function uw(a,x){x.isRow?a.height=x.height:a.width=x.width,a.minimum=x.minimum,a.maximum=x.maximum,a.alignment=x.alignment,a.stretch=x.stretch,a.sizing=x.sizing,a.dg=x.separatorPadding===null?null:x.separatorPadding.J(),a.separatorStroke=x.separatorStroke,a.separatorStrokeWidth=x.separatorStrokeWidth,a.tj=null,x.separatorDashArray&&(a.tj=wa(x.separatorDashArray)),a.background=x.background,a.coversSeparators=x.coversSeparators,a.be=x.be}We=mc.prototype,We.qb=function(a){a.classType===mc&&(this.sizing=a)},We.toString=function(){return"RowColumnDefinition "+(this.isRow?"(Row ":"(Column ")+this.index+") #"+Pl(this)},We.wi=function(a){this.Me=a},We.Io=function(a){var x=0,b=this.Me;if(this.index!==a&&(a=this.separatorStroke,a===null&&b!==null&&(a=this.isRow?b.defaultRowSeparatorStroke:b.defaultColumnSeparatorStroke),a!==null&&(x=this.separatorStrokeWidth,isNaN(x)&&(b!==null?x=this.isRow?b.defaultRowSeparatorStrokeWidth:b.defaultColumnSeparatorStrokeWidth:x=0))),a=this.dg,a===null)if(b!==null)a=b.defaultSeparatorPadding;else return x;return x+(this.isRow?a.top:a.left)},We.Wc=function(){var a=0,x=this.Me,b=0,te=this.isRow;if(x!==null&&x.type===Pi.Table)for(var re=te?x.rowDefs.length:x.colDefs.length,oe=0;oe<re;oe++){var le=te?x.rowDefs[oe]:x.colDefs[oe];if(le!==void 0&&le.oa!==0){b=le.index;break}}if(this.index!==b&&(b=this.separatorStroke,b===null&&x!==null&&(b=te?x.defaultRowSeparatorStroke:x.defaultColumnSeparatorStroke),b!==null&&(a=this.separatorStrokeWidth,isNaN(a)&&(x!==null?a=te?x.defaultRowSeparatorStrokeWidth:x.defaultColumnSeparatorStrokeWidth:a=0))),te=this.dg,te===null)if(x!==null)te=x.defaultSeparatorPadding;else return a;return a+(this.isRow?te.top+te.bottom:te.left+te.right)},We.Ob=function(a,x,b){var te=this.Me;if(te!==null&&(te.cb(Dl,a,this,x,b,void 0,void 0),this.be!==null&&(x=te.diagram,x!==null&&!x.skipsModelSourceBindings&&(te=te.ih(),te!==null&&(x=te.data,x!==null)))))for(b=this.be.iterator;b.next();)b.value.sp(this,x,a,te)};function bx(a){if(a.sizing===HS){var x=a.Me;return a.isRow?x.rowSizing:x.columnSizing}return a.sizing}We.bind=function(a,x,b,te){var re=null;return typeof a=="string"?re=new tc(a,x,b,te):re=a,re.xd=this,a=this.panel,a!==null&&(x=a.ih(),x!==null&&Ua(x)&&hn("Cannot add a Binding to a RowColumnDefinition that is already frozen: "+re+" on "+a)),this.be===null&&(this.be=new Zi),this.be.add(re),this},pn.Object.defineProperties(mc.prototype,{panel:{get:function(){return this.Me}},isRow:{get:function(){return this.uq},set:function(a){this.uq=a}},index:{get:function(){return this.Za},set:function(a){this.Za=a}},height:{get:function(){return this.Hc},set:function(a){var x=this.Hc;x!==a&&(0>a&&Xo(a,">= 0",mc,"height"),this.Hc=a,this.actual=this.oa,this.panel!==null&&this.panel.v(),this.Ob("height",x,a))}},width:{get:function(){return this.Hc},set:function(a){var x=this.Hc;x!==a&&(0>a&&Xo(a,">= 0",mc,"width"),this.Hc=a,this.actual=this.oa,this.panel!==null&&this.panel.v(),this.Ob("width",x,a))}},minimum:{get:function(){return this.jj},set:function(a){var x=this.jj;x!==a&&((0>a||!isFinite(a))&&Xo(a,">= 0",mc,"minimum"),this.jj=a,this.actual=this.oa,this.panel!==null&&this.panel.v(),this.Ob("minimum",x,a))}},maximum:{get:function(){return this.hj},set:function(a){var x=this.hj;x!==a&&(0>a&&Xo(a,">= 0",mc,"maximum"),this.hj=a,this.actual=this.oa,this.panel!==null&&this.panel.v(),this.Ob("maximum",x,a))}},alignment:{get:function(){return this.Jb},set:function(a){var x=this.Jb;x.D(a)||(this.Jb=a.J(),this.panel!==null&&this.panel.v(),this.Ob("alignment",x,a))}},stretch:{get:function(){return this.hg},set:function(a){var x=this.hg;x!==a&&(this.hg=a,this.panel!==null&&this.panel.v(),this.Ob("stretch",x,a))}},separatorPadding:{get:function(){return this.dg},set:function(a){typeof a=="number"&&(a=new yr(a));var x=this.dg;a!==null&&x!==null&&x.D(a)||(a!==null&&(a=a.J()),this.dg=a,this.panel!==null&&this.panel.v(),this.Ob("separatorPadding",x,a))}},separatorStroke:{get:function(){return this.lo},set:function(a){var x=this.lo;x!==a&&(a!==null&&Og(a,"RowColumnDefinition.separatorStroke"),a instanceof Ws&&a.freeze(),this.lo=a,this.panel!==null&&this.panel.v(),this.Ob("separatorStroke",x,a))}},separatorStrokeWidth:{get:function(){return this.mo},set:function(a){var x=this.mo;x!==a&&(this.mo=a,this.panel!==null&&this.panel.v(),this.Ob("separatorStrokeWidth",x,a))}},separatorDashArray:{get:function(){return this.tj},set:function(a){var x=this.tj;if(x!==a){if(a!==null){for(var b=a.length,te=0,re=0;re<b;re++){var oe=a[re];typeof oe=="number"&&0<=oe&&isFinite(oe)||hn("separatorDashArray value "+oe+" at index "+re+" must be a positive number or zero."),te+=oe}if(te===0){if(x===null)return;a=null}}this.tj=a,this.panel!==null&&this.panel.N(),this.Ob("separatorDashArray",x,a)}}},background:{get:function(){return this.Ma},set:function(a){var x=this.Ma;x!==a&&(a!==null&&Og(a,"RowColumnDefinition.background"),a instanceof Ws&&a.freeze(),this.Ma=a,this.panel!==null&&this.panel.N(),this.Ob("background",x,a))}},coversSeparators:{get:function(){return this.Pm},set:function(a){var x=this.Pm;x!==a&&(this.Pm=a,this.panel!==null&&this.panel.N(),this.Ob("coversSeparators",x,a))}},sizing:{get:function(){return this.oo},set:function(a){var x=this.oo;x!==a&&(this.oo=a,this.panel!==null&&this.panel.v(),this.Ob("sizing",x,a))}},actual:{get:function(){return this.oa},set:function(a){this.oa=isNaN(this.Hc)?Math.max(Math.min(this.hj,a),this.jj):Math.max(Math.min(this.hj,this.Hc),this.jj)}},measured:{get:function(){return this.oc},set:function(a){this.oc=a}},total:{get:function(){return this.oa+this.Wc()}},position:{get:function(){return this.pa},set:function(a){this.pa=a}}}),mc.prototype.computeEffectiveSpacing=mc.prototype.Wc,mc.prototype.computeEffectiveSpacingTop=mc.prototype.Io;var HS=new Ni(mc,"Default",0),cA=new Ni(mc,"None",1),cw=new Ni(mc,"ProportionalExtra",2);mc.className="RowColumnDefinition",mc.Default=HS,mc.None=cA,mc.ProportionalExtra=cw;function xs(a,x){nn.call(this),this.Rd=this.ua=null,this.an="None",this.xc=this.Ui="black",this.ig=1,this.Na=this.Yg=null,this.Vn=this.Un=NaN,this.fa=null,typeof a=="string"?this.figure=a:a&&Object.assign(this,a),x&&Object.assign(this,x)}vn(xs,nn),xs.prototype.cloneProtected=function(a){nn.prototype.cloneProtected.call(this,a),a.ua=this.ua,a.Rd=this.Rd,a.an=this.an,a.Ui=this.Ui,a.xc=this.xc,a.ig=this.ig,this.Yg!==null&&(a.Yg=wa(this.Yg)),this.Na!==null&&(a.Na=this.Na.nc?this.Na:this.Na.copy()),a.Un=this.Un,a.Vn=this.Vn,this.fa!==null&&(a.fa=this.fa.copy())};function K0(a){a.Na===null?a.Na=new c5:a.Na.nc&&(a.Na=a.Na.copy())}We=xs.prototype,We.th=function(){nn.prototype.th.call(this),this.Na!==null&&(this.Na.nc=!0)},We.qb=function(a){a===li||a===jr||a===na||a===rs?this.geometryStretch=a:nn.prototype.qb.call(this,a)},We.toString=function(){return"Shape("+(this.figure!=="None"?this.figure:this.toArrow!=="None"?this.toArrow:this.fromArrow)+")#"+Pl(this)};function hA(a,x,b,te){var re=b.length;if(!(4>re)){var oe=te.measuredBounds,le=Math.max(1,oe.width);oe=oe.height;for(var fe=b[0],ge=b[1],ye,we,be,ke,Ue,Ve,Ke=0,Pt=ys(),ft=2;ft<re;ft+=2)ye=b[ft],we=b[ft+1],be=ye-fe,fe=we-ge,be===0&&(be=.001),ke=fe/be,Ue=Math.atan2(fe,be),Ve=Math.sqrt(be*be+fe*fe),Pt.push([be,Ue,ke,Ve]),Ke+=Ve,fe=ye,ge=we;fe=b[0],ge=b[1],be=te.measuredBounds.width,te instanceof xs&&(be-=te.strokeWidth),1>be&&(be=1),re=b=be,ye=le/2,we=ye!==0,ft=0,Ve=Pt[ft],be=Ve[0],Ue=Ve[1],ke=Ve[2],Ve=Ve[3];for(var Nt=0;.1<=Ke;){if(Nt===0&&(we?(re=b,re-=ye,Ke-=ye,we=!1):re=b,re===0&&(re=1)),re>Ke){As(Pt);return}re>Ve?(Nt=re-Ve,re=Ve):Nt=0;var Lt=Math.sqrt(re*re/(1+ke*ke));if(0>be&&(Lt=-Lt),fe+=Lt,ge+=ke*Lt,a.translate(fe,ge),a.rotate(Ue),a.translate(-(le/2),-(oe/2)),Nt===0&&te.hh(a,x),a.translate(le/2,oe/2),a.rotate(-Ue),a.translate(-fe,-ge),Ke-=re,Ve-=re,Nt!==0){if(ft++,ft===Pt.length){As(Pt);return}Ve=Pt[ft],be=Ve[0],Ue=Ve[1],ke=Ve[2],Ve=Ve[3],re=Nt}}As(Pt)}}We.hh=function(a,x){var b=this.xc,te=this.Ui;if(b!==null||te!==null){var re=this.ua;if(re!==null){a.yc();var oe=this.actualBounds,le=this.naturalBounds;te!==null&&Fu(this,a,te,!0,!1,le,oe);var fe=this.part,ge=this.ig;if(b===null||ge!==0||fe===null||!this.isPanelMain&&fe.Pb()!==this||(ge=fe.type===Pi.Link&&fe instanceof Ca&&fe.category==="Selection"&&fe.adornedObject instanceof xs&&fe.adornedPart.Pb()===fe.adornedObject?fe.adornedObject.strokeWidth:0),ge===0&&(b=null),b!==null&&ge!==0&&(Fu(this,a,b,!1,!1,le,oe),a.lineWidth=ge,a.lineJoin=this.strokeJoin,a.lineCap=this.strokeCap,a.miterLimit=this.strokeMiterLimit),oe=!1,fe&&x.Gf("drawShadows")&&(oe=fe.isShadowed),a.Il===!1&&(oe=!1),fe=!0,b===null||te!==null&&te!=="transparent"||(fe=!1),le=!1,ge=this.strokeDashArray,ge!==null&&(le=!0,a.js(ge,this.strokeDashOffset)),re.type===ai.j)a.beginPath(),a.moveTo(re.startX,re.startY),a.lineTo(re.endX,re.endY),b!==null&&a.jk(),a.Se();else if(re.type===ai.u){var ye=re.startX;ge=re.startY;var we=re.endX,be=re.endY;re=Math.min(ye,we);var ke=Math.min(ge,be);ye=Math.abs(we-ye),ge=Math.abs(be-ge),a.beginPath(),a.rect(re,ke,ye,ge),te!==null&&a.ng(te),b!==null&&(fe&&oe&&Hc(a),a.jk(),fe&&oe&&Fg(a)),a.Se()}else if(re.type===ai.F)ye=re.startX,ge=re.startY,we=re.endX,be=re.endY,re=Math.abs(we-ye)/2,ke=Math.abs(be-ge)/2,ye=Math.min(ye,we)+re,ge=Math.min(ge,be)+ke,a.beginPath(),a.moveTo(ye,ge-ke),a.bezierCurveTo(ye+_t.wg*re,ge-ke,ye+re,ge-_t.wg*ke,ye+re,ge),a.bezierCurveTo(ye+re,ge+_t.wg*ke,ye+_t.wg*re,ge+ke,ye,ge+ke),a.bezierCurveTo(ye-_t.wg*re,ge+ke,ye-re,ge+_t.wg*ke,ye-re,ge),a.bezierCurveTo(ye-re,ge-_t.wg*ke,ye-_t.wg*re,ge-ke,ye,ge-ke),a.closePath(),te!==null&&a.ng(te),b!==null&&(fe&&oe&&Hc(a),a.jk(),fe&&oe&&Fg(a)),a.Se();else if(re.type===ai.o)for(re=re.figures,ge=re.length,ke=0;ke<ge;ke++){ye=re.s[ke],a.beginPath(),a.moveTo(ye.startX,ye.startY),we=ye.segments.s,be=we.length;for(var Ue=null,Ve=0;Ve<be;Ve++){var Ke=we[Ve];switch(Ke.type){case Au:a.moveTo(Ke.endX,Ke.endY);break;case tl:a.lineTo(Ke.endX,Ke.endY);break;case Yu:a.bezierCurveTo(Ke.point1X,Ke.point1Y,Ke.point2X,Ke.point2Y,Ke.endX,Ke.endY);break;case Ch:a.quadraticCurveTo(Ke.point1X,Ke.point1Y,Ke.endX,Ke.endY);break;case Du:if(Ke.radiusX===Ke.radiusY){var Pt=Math.PI/180;a.arc(Ke.point1X,Ke.point1Y,Ke.radiusX,Ke.startAngle*Pt,(Ke.startAngle+Ke.sweepAngle)*Pt,0>Ke.sweepAngle,Ue!==null?Ue.endX:ye.startX,Ue!==null?Ue.endY:ye.startY)}else if(Ue=zc(Ke,ye),Pt=Ue.length,Pt===0)a.lineTo(Ke.centerX,Ke.centerY);else for(var ft=0;ft<Pt;ft++){var Nt=Ue[ft];ft===0&&a.lineTo(Nt[0],Nt[1]),a.bezierCurveTo(Nt[2],Nt[3],Nt[4],Nt[5],Nt[6],Nt[7])}break;case Eh:if(ft=Pt=0,Ue!==null&&Ue.type===Du){if(Ue=zc(Ue,ye),Nt=Ue.length,Nt===0){a.lineTo(Ke.endX,Ke.endY);break}Ue=Ue[Nt-1]||null,Ue!==null&&(Pt=Ue[6],ft=Ue[7])}else Pt=Ue!==null?Ue.endX:ye.startX,ft=Ue!==null?Ue.endY:ye.startY;if(Ue=_c(Ke,ye,Pt,ft),Pt=Ue.length,Pt===0){a.lineTo(Ke.endX,Ke.endY);break}for(ft=0;ft<Pt;ft++)Nt=Ue[ft],a.bezierCurveTo(Nt[2],Nt[3],Nt[4],Nt[5],Nt[6],Nt[7]);break;default:hn("Segment not of valid type: "+Ke.type)}Ke.isClosed&&a.closePath(),Ue=Ke}we=ye.isFilled,oe?ye.isShadowed?(we===!0&&te!=="transparent"&&te!==null&&a.ng(te,ye.isEvenOdd),b!==null&&(we&&fe&&Hc(a),a.jk(),we&&fe&&Fg(a))):(Hc(a),we&&te!=="transparent"&&te!==null&&a.ng(te,ye.isEvenOdd),b!==null&&a.jk(),Fg(a)):(we&&te!==null&&a.ng(te,ye.isEvenOdd),b!==null&&a.jk()),a.Se(ke)}if(le&&a.fs(),this.pathPattern!==null){if(b=this.pathPattern,b.measure(1/0,1/0),te=b.measuredBounds,b.arrange(0,0,te.width,te.height),oe=this.geometry,a.save(),a.beginPath(),te=ys(),oe.type===ai.j)te.push(oe.startX),te.push(oe.startY),te.push(oe.endX),te.push(oe.endY),hA(a,x,te,b);else if(oe.type===ai.o)for(oe=oe.figures.iterator;oe.next();){for(fe=oe.value,te.length=0,te.push(fe.startX),te.push(fe.startY),le=fe.startX,re=fe.startY,ge=le,ke=re,ye=fe.segments.s,we=ye.length,be=0;be<we;be++){switch(Ve=ye[be],Ve.type){case Au:hA(a,x,te,b),te.length=0,te.push(Ve.endX),te.push(Ve.endY),le=Ve.endX,re=Ve.endY,ge=le,ke=re;break;case tl:te.push(Ve.endX),te.push(Ve.endY),le=Ve.endX,re=Ve.endY;break;case Yu:_t.Qe(le,re,Ve.point1X,Ve.point1Y,Ve.point2X,Ve.point2Y,Ve.endX,Ve.endY,.5,te),le=Ve.endX,re=Ve.endY;break;case Ch:_t.ep(le,re,Ve.point1X,Ve.point1Y,Ve.endX,Ve.endY,.5,te),le=Ve.endX,re=Ve.endY;break;case Du:if(Ke=zc(Ve,fe),Ue=Ke.length,Ue===0){te.push(Ve.centerX),te.push(Ve.centerY),le=Ve.centerX,re=Ve.centerY;break}for(Pt=0;Pt<Ue;Pt++)ft=Ke[Pt],_t.Qe(le,re,ft[2],ft[3],ft[4],ft[5],ft[6],ft[7],.5,te),le=ft[6],re=ft[7];break;case Eh:if(Ke=_c(Ve,fe,le,re),Ue=Ke.length,Ue===0){te.push(Ve.endX),te.push(Ve.endY),le=Ve.endX,re=Ve.endY;break}for(Pt=0;Pt<Ue;Pt++)ft=Ke[Pt],_t.Qe(le,re,ft[2],ft[3],ft[4],ft[5],ft[6],ft[7],.5,te),le=ft[6],re=ft[7];break;default:hn("Segment not of valid type: "+Ve.type)}Ve.isClosed&&(te.push(ge),te.push(ke),hA(a,x,te,b))}hA(a,x,te,b)}else if(oe.type===ai.u)te.push(oe.startX),te.push(oe.startY),te.push(oe.endX),te.push(oe.startY),te.push(oe.endX),te.push(oe.endY),te.push(oe.startX),te.push(oe.endY),te.push(oe.startX),te.push(oe.startY),hA(a,x,te,b);else if(oe.type===ai.F){if(re=new ku,re.startX=oe.endX,re.startY=(oe.startY+oe.endY)/2,le=new $s(Du),le.startAngle=0,le.sweepAngle=360,le.centerX=(oe.startX+oe.endX)/2,le.centerY=(oe.startY+oe.endY)/2,le.radiusX=Math.abs(oe.startX-oe.endX)/2,le.radiusY=Math.abs(oe.startY-oe.endY)/2,re.add(le),oe=zc(le,re),fe=oe.length,fe===0)te.push(le.centerX),te.push(le.centerY);else for(le=re.startX,re=re.startY,ge=0;ge<fe;ge++)ke=oe[ge],_t.Qe(le,re,ke[2],ke[3],ke[4],ke[5],ke[6],ke[7],.5,te),le=ke[6],re=ke[7];hA(a,x,te,b)}As(te),a.restore(),a.Vc(!1)}}}},We.kk=function(a,x,b){return!nn.prototype.kk.call(this,a,x,b)||this.xc===null&&this.Ui===null||this.ua===null||this.pathPattern!==null||this.geometry.figures.length!==this.svg.getElementsByTagName("path").length?!1:(a.Hl=this.svg,this.hh(a,x),a.Hl=null,!0)},We.nk=function(a){return this.geometry!==null&&1<this.geometry.figures.length||this.pathPattern!==null?!0:nn.prototype.nk.call(this,a)},We.Dv=function(a,x){if(a.nodeName!=="g")a.setAttributeNS(null,"filter",x);else{a=a.getElementsByTagName("path");for(var b=0;b<a.length;b++)a[b].setAttributeNS(null,"filter",x)}},We.ga=function(a,x){if(x===void 0&&(x=new it),a instanceof Ii){a.Mc()&&hn("getDocumentPoint Spot must be a real, specific Spot, not: "+a.toString());var b=this.naturalBounds,te=this.strokeWidth;x.h(a.x*(b.width+te)-te/2+b.x+a.offsetX,a.y*(b.height+te)-te/2+b.y+a.offsetY)}else x.set(a);return this.oe.Ga(x),x},We.mi=function(a){a===void 0&&(a=new Yt);var x=this.naturalBounds,b=this.oe;x=Yt.allocAt(x.x,x.y,x.width,x.height);var te=this.strokeWidth;return x.Bc(te/2,te/2),te=it.allocAt(x.x,x.y).transform(b),a.h(te.x,te.y,0,0),te.h(x.right,x.y).transform(b),Hr(a,te.x,te.y,0,0),te.h(x.right,x.bottom).transform(b),Hr(a,te.x,te.y,0,0),te.h(x.x,x.bottom).transform(b),Hr(a,te.x,te.y,0,0),Yt.free(x),it.free(te),a},We.gh=function(a,x){var b=this.geometry;if(b===null||this.fill===null&&this.stroke===null)return!1;var te=b.bounds,re=this.strokeWidth/2;b.type!==ai.j||x||(re+=2);var oe=Yt.alloc();if(oe.assign(te),oe.Bc(re+2,re+2),!oe.ca(a))return Yt.free(oe),!1;if(te=re+1e-4,b.type===ai.j)return this.stroke===null||(te=(b.endX-b.startX)*(a.x-b.startX)+(b.endY-b.startY)*(a.y-b.startY),0>(b.startX-b.endX)*(a.x-b.endX)+(b.startY-b.endY)*(a.y-b.endY)||0>te)?!1:(Yt.free(oe),_t.Yb(b.startX,b.startY,b.endX,b.endY,re,a.x,a.y));if(b.type===ai.u){x=b.startX;var le=b.startY,fe=b.endX;if(b=b.endY,oe.x=Math.min(x,fe),oe.y=Math.min(le,b),oe.width=Math.abs(fe-x),oe.height=Math.abs(b-le),this.fill===null){if(oe.Bc(-te,-te),oe.ca(a))return Yt.free(oe),!1;oe.Bc(te,te)}return this.stroke!==null&&oe.Bc(re,re),a=oe.ca(a),Yt.free(oe),a}if(b.type===ai.F){le=b.startX,re=b.startY,fe=b.endX;var ge=b.endY;if(b=Math.min(le,fe),x=Math.min(re,ge),le=Math.abs(fe-le)/2,re=Math.abs(ge-re)/2,b=a.x-(b+le),x=a.y-(x+re),this.fill===null){if(le-=te,re-=te,0>=le||0>=re||1>=b*b/(le*le)+x*x/(re*re))return Yt.free(oe),!1;le+=te,re+=te}return this.stroke!==null&&(le+=te,re+=te),Yt.free(oe),0>=le||0>=re?!1:1>=b*b/(le*le)+x*x/(re*re)}if(b.type===ai.o)return Yt.free(oe),this.fill===null?hh(b,a.x,a.y,re):rc(b,a,re,1<this.strokeWidth,x);hn("Unknown Geometry type: "+b.type)},We.Wl=function(a,x,b,te){var re=this.desiredSize,oe=this.ig;if(a=Math.max(a,0),x=Math.max(x,0),this.Rd!==null)var le=this.geometry.bounds;else{var fe=this.figure,ge=u5[fe];if(ge===void 0){var ye=_t.Ze[fe];typeof ye=="string"&&(ye=_t.Ze[ye]),typeof ye=="function"?(ge=ye(null,100,100),u5[fe]=ge):hn("Unsupported Figure: "+fe)}le=ge.bounds}fe=le.width,ge=le.height,ye=le.width;var we=le.height;switch(bc(this,!0)){case li:te=b=0;break;case wi:ye=Math.max(a-oe,0),we=Math.max(x-oe,0);break;case no:ye=Math.max(a-oe,0),te=0;break;case To:b=0,we=Math.max(x-oe,0)}isFinite(re.width)&&(ye=re.width),isFinite(re.height)&&(we=re.height);var be=this.maxSize,ke=this.minSize;switch(b=Math.max(b-oe,ke.width),te=Math.max(te-oe,ke.height),ye=Math.min(be.width,ye),we=Math.min(be.height,we),ye=isFinite(ye)?Math.max(b,ye):Math.max(fe,b),we=isFinite(we)?Math.max(te,we):Math.max(ge,te),b=Mx(this),b){case li:break;case wi:fe=ye,ge=we;break;case jr:b=Math.min(ye/fe,we/ge),isFinite(b)||(b=1),fe*=b,ge*=b;break;default:hn(b+" is not a valid geometryStretch.")}this.Rd!==null?(fe===0&&(fe=.001),ge===0&&(ge=.001),b=this.Rd!==null?this.Rd:this.ua,le=b.bounds,te=fe/le.width,le=ge/le.height,isFinite(te)||(te=1),isFinite(le)||(le=1),this.ua=te===1&&le===1?b:b.copy().scale(te,le)):this.ua!==null&&_t.$(this.ua.Sk,a-oe)&&_t.$(this.ua.Rk,x-oe)||(this.ua=xs.makeGeometry(this,fe,ge)),le=this.ua.bounds,a===1/0||x===1/0?this.Ge(le.x-oe/2,le.y-oe/2,a===0&&fe===0?0:le.width+oe,x===0&&ge===0?0:le.height+oe):this.Ge(-(oe/2),-(oe/2),ye+oe,we+oe),re.w()?(ye=re.width,we=re.height,ye=Math.min(be.width,ye),we=Math.min(be.height,we),ye=Math.max(ke.width,ye),we=Math.max(ke.height,we),this.dc.h(0,0,ye,we)):this.dc.assign(le)};function Mx(a){var x=a.geometryStretch;return a.Rd!==null?x===rs?wi:x:x===rs?u5[a.figure].defaultStretch:x}We.eh=function(a,x,b,te){bh(this,a,x,b,te)},We.rs=function(a,x,b){return this.Sj(a.x,a.y,x.x,x.y,b)},We.Sj=function(a,x,b,te,re){var oe=this.transform,le=1/(oe.m11*oe.m22-oe.m12*oe.m21),fe=oe.m22*le,ge=-oe.m12*le,ye=-oe.m21*le,we=oe.m11*le,be=le*(oe.m21*oe.dy-oe.m22*oe.dx),ke=le*(oe.m12*oe.dx-oe.m11*oe.dy);oe=a*fe+x*ye+be,le=a*ge+x*we+ke,fe=b*fe+te*ye+be,ge=b*ge+te*we+ke,be=this.ig/2,ye=this.ua,ye===null&&(this.measure(1/0,1/0),ye=this.ua);var Ue=ye.bounds;if(we=!1,ye.type===ai.j)if(1.5>=this.strokeWidth)we=_t.Ve(ye.startX,ye.startY,ye.endX,ye.endY,oe,le,fe,ge,re);else{if(ye.startX===ye.endX?(te=be,we=0):(x=(ye.endY-ye.startY)/(ye.endX-ye.startX),we=be/Math.sqrt(1+x*x),te=we*x),x=ys(),a=new it,_t.Ve(ye.startX+te,ye.startY+we,ye.endX+te,ye.endY+we,oe,le,fe,ge,a)&&x.push(a),a=new it,_t.Ve(ye.startX-te,ye.startY-we,ye.endX-te,ye.endY-we,oe,le,fe,ge,a)&&x.push(a),a=new it,_t.Ve(ye.startX+te,ye.startY+we,ye.startX-te,ye.startY-we,oe,le,fe,ge,a)&&x.push(a),a=new it,_t.Ve(ye.endX+te,ye.endY+we,ye.endX-te,ye.endY-we,oe,le,fe,ge,a)&&x.push(a),fe=x.length,fe===0)return As(x),!1;for(we=!0,ge=1/0,te=0;te<fe;te++)a=x[te],b=(a.x-oe)*(a.x-oe)+(a.y-le)*(a.y-le),b<ge&&(ge=b,re.x=a.x,re.y=a.y);As(x)}else if(ye.type===ai.u)we=_t.Ff(Ue.x-be,Ue.y-be,Ue.x+Ue.width+be,Ue.y+Ue.height+be,oe,le,fe,ge,re);else if(ye.type===ai.F){x=Yt.allocAt(Ue.x,Ue.y,Ue.width,Ue.height).Bc(be,be);e:if(x.width===0)we=_t.Ve(x.x,x.y,x.x,x.y+x.height,oe,le,fe,ge,re);else if(x.height===0)we=_t.Ve(x.x,x.y,x.x+x.width,x.y,oe,le,fe,ge,re);else{if(a=x.width/2,ye=x.height/2,te=x.x+a,we=x.y+ye,b=9999,oe!==fe&&(b=(le-ge)/(oe-fe)),9999>Math.abs(b)){if(ge=le-we-b*(oe-te),0>a*a*b*b+ye*ye-ge*ge){re.x=NaN,re.y=NaN,we=!1;break e}be=Math.sqrt(a*a*b*b+ye*ye-ge*ge),fe=(-(a*a*b*ge)+a*ye*be)/(ye*ye+a*a*b*b)+te,a=(-(a*a*b*ge)-a*ye*be)/(ye*ye+a*a*b*b)+te,ye=b*(fe-te)+ge+we,ge=b*(a-te)+ge+we,Math.abs((oe-fe)*(oe-fe))+Math.abs((le-ye)*(le-ye))<Math.abs((oe-a)*(oe-a))+Math.abs((le-ge)*(le-ge))?(re.x=fe,re.y=ye):(re.x=a,re.y=ge)}else{if(fe=ye*ye,ge=oe-te,fe-=fe/(a*a)*ge*ge,0>fe){re.x=NaN,re.y=NaN,we=!1;break e}ge=Math.sqrt(fe),fe=we+ge,ge=we-ge,Math.abs(fe-le)<Math.abs(ge-le)?(re.x=oe,re.y=fe):(re.x=oe,re.y=ge)}we=!0}Yt.free(x)}else if(ye.type===ai.o){ke=it.alloc();var Ve=fe-oe,Ke=ge-le,Pt=Ve*Ve+Ke*Ke,ft=oe,Nt=le;if(0<Pt&&Ue.contains(ft,Nt)&&(ke.x=ft,ke.y=Nt,this.ca(ke)))for(Ve!==0&&.5>Math.abs(Ve)?(Ke*=.5/Ve,Ve=.5):Ke!==0&&.5>Math.abs(Ke)&&(Ve*=.5/Ke,Ke=.5),ft-=Ve,Nt-=Ke;Ue.contains(ft,Nt);)ft-=Ve,Nt-=Ke;for(re.x=fe,re.y=ge,Ke=0;Ke<ye.figures.count;Ke++){var Lt=ye.figures.s[Ke],Ut=Lt.isFilled?ft:oe,tn=Lt.isFilled?Nt:le,xn=Lt.segments;Ue=Lt.startX,Ve=Lt.startY;for(var nr=Ue,Ir=Ve,br=0;br<xn.count;br++){var Di=xn.s[br],ii=Di.type,os=Di.endX,Oo=Di.endY,Ha=!1;switch(ii){case Au:nr=os,Ir=Oo;break;case tl:Ha=$b(Ue,Ve,os,Oo,Ut,tn,fe,ge,ke);break;case Yu:Ha=_t.Eo(Ue,Ve,Di.point1X,Di.point1Y,Di.point2X,Di.point2Y,os,Oo,Ut,tn,fe,ge,.6,ke);break;case Ch:Ha=_t.Eo(Ue,Ve,Ue+2/3*(Di.point1X-Ue),Ve+2/3*(Di.point1Y-Ve),os+2/3*(Di.point1X-os),Oo+2/3*(Di.point1Y-Oo),os,Oo,Ut,tn,fe,ge,.6,ke);break;case Du:case Eh:ii=Di.type===Du?zc(Di,Lt):_c(Di,Lt,Ue,Ve);var Ql=ii.length;if(Ql===0){Ha=$b(Ue,Ve,Di.type===Du?Di.centerX:Di.endX,Di.type===Du?Di.centerY:Di.endY,Ut,tn,fe,ge,ke);break}for(Oo=null,os=0;os<Ql;os++){if(Oo=ii[os],os===0&&$b(Ue,Ve,Oo[0],Oo[1],Ut,tn,fe,ge,ke)){var kc=oy(Ut,tn,ke,Pt,re);kc<Pt&&(Pt=kc,we=!0)}_t.Eo(Oo[0],Oo[1],Oo[2],Oo[3],Oo[4],Oo[5],Oo[6],Oo[7],Ut,tn,fe,ge,.6,ke)&&(kc=oy(Ut,tn,ke,Pt,re),kc<Pt&&(Pt=kc,we=!0))}os=Oo[6],Oo=Oo[7];break;default:hn("Unknown Segment type: "+ii)}Ue=os,Ve=Oo,Ha&&(Ha=oy(Ut,tn,ke,Pt,re),Ha<Pt&&(Pt=Ha,we=!0)),Di.isClosed&&(os=nr,Oo=Ir,$b(Ue,Ve,os,Oo,Ut,tn,fe,ge,ke)&&(Di=oy(Ut,tn,ke,Pt,re),Di<Pt&&(Pt=Di,we=!0)))}}oe=b-a,le=te-x,fe=Math.sqrt(oe*oe+le*le),fe!==0&&(oe/=fe,le/=fe),re.x-=oe*be,re.y-=le*be,it.free(ke)}else hn("Unknown Geometry type: "+ye.type);return we?(this.transform.Ga(re),!0):!1};function oy(a,x,b,te,re){return a=b.x-a,x=b.y-x,x=a*a+x*x,x<te?(re.x=b.x,re.y=b.y,x):te}function $b(a,x,b,te,re,oe,le,fe,ge){if(_t.$(a,b)&&_t.$(x,te)||_t.$(re,le)&&_t.$(oe,fe))return!1;var ye=!1,we=(re-le)*(x-te)-(oe-fe)*(a-b);return we===0?!1:(ge.x=((re*fe-oe*le)*(a-b)-(re-le)*(a*te-x*b))/we,ge.y=((re*fe-oe*le)*(x-te)-(oe-fe)*(a*te-x*b))/we,(a>b?a-b:b-a)<(x>te?x-te:te-x)?(a=x<te?x:te,x=x<te?te:x,(ge.y>a||_t.$(ge.y,a))&&(ge.y<x||_t.$(ge.y,x))&&(ye=!0)):(x=a<b?a:b,a=a<b?b:a,(ge.x>x||_t.$(ge.x,x))&&(ge.x<a||_t.$(ge.x,a))&&(ye=!0)),ye)}We.fh=function(a,x){if(x===void 0)return a.Re(this.actualBounds);var b=this.ua;b===null&&(this.measure(1/0,1/0),b=this.ua),b=b.bounds;var te=this.strokeWidth/2,re=!1,oe=it.alloc();return oe.h(b.x-te,b.y-te),a.ca(x.Ga(oe))&&(oe.h(b.x-te,b.bottom+te),a.ca(x.Ga(oe))&&(oe.h(b.right+te,b.bottom+te),a.ca(x.Ga(oe))&&(oe.h(b.right+te,b.y-te),a.ca(x.Ga(oe))&&(re=!0)))),it.free(oe),re},We.Yc=function(a,x){if(this.fh(a,x)||x===void 0&&(x=this.transform,a.Re(this.actualBounds)))return!0;var b=Br.alloc();b.set(x),b.Vj();var te=a.left,re=a.right,oe=a.top;a=a.bottom;var le=it.alloc();if(le.h(te,oe),b.Ga(le),this.gh(le,!0)||(le.h(re,oe),b.Ga(le),this.gh(le,!0))||(le.h(te,a),b.Ga(le),this.gh(le,!0))||(le.h(re,a),b.Ga(le),this.gh(le,!0)))return it.free(le),!0;var fe=it.alloc(),ge=it.alloc();return b.set(x),b.bv(this.transform),b.Vj(),fe.x=re,fe.y=oe,fe.transform(b),le.x=te,le.y=oe,le.transform(b),x=!1,Bx(this,le,fe,ge)?x=!0:(le.x=re,le.y=a,le.transform(b),Bx(this,le,fe,ge)?x=!0:(fe.x=te,fe.y=a,fe.transform(b),Bx(this,le,fe,ge)?x=!0:(le.x=te,le.y=oe,le.transform(b),Bx(this,le,fe,ge)&&(x=!0)))),it.free(le),Br.free(b),it.free(fe),it.free(ge),x};function Bx(a,x,b,te){if(!a.rs(x,b,te))return!1;a=x.x,x=x.y;var re=b.x,oe=b.y;return b=te.x,te=te.y,a===re?(x<oe?(a=x,x=oe):a=oe,te>=a&&te<=x):(a<re?(te=a,a=re):te=re,b>=te&&b<=a)}We.tx=function(a,x,b){function te(Pt,ft){for(var Nt=Pt.length,Lt=0;Lt<Nt;Lt+=2)if(ft.zd(Pt[Lt],Pt[Lt+1])>re)return!0;return!1}if(b&&this.fill!==null&&this.gh(a,!0))return!0;var re=a.Bf(x),oe=re;if(1.5<this.strokeWidth&&(re=this.strokeWidth/2+Math.sqrt(re),re*=re),x=this.ua,x===null&&(this.measure(1/0,1/0),x=this.ua,x===null))return!1;if(!b){var le=x.bounds,fe=le.x,ge=le.y,ye=le.x+le.width;if(le=le.y+le.height,fs(a.x,a.y,fe,ge)<=re&&fs(a.x,a.y,ye,ge)<=re&&fs(a.x,a.y,fe,le)<=re&&fs(a.x,a.y,ye,le)<=re)return!0}if(fe=x.startX,ge=x.startY,ye=x.endX,le=x.endY,x.type===ai.j){if(b=(fe-ye)*(a.x-ye)+(ge-le)*(a.y-le),vo(a.x,a.y,fe,ge,ye,le)<=(0<=(ye-fe)*(a.x-fe)+(le-ge)*(a.y-ge)&&0<=b?re:oe))return!0}else{if(x.type===ai.u)return x=!1,b&&(x=vo(a.x,a.y,fe,ge,fe,le)<=re||vo(a.x,a.y,fe,ge,ye,ge)<=re||vo(a.x,a.y,ye,ge,ye,le)<=re||vo(a.x,a.y,fe,le,ye,le)<=re),x;if(x.type===ai.F){x=a.x-(fe+ye)/2,oe=a.y-(ge+le)/2;var we=Math.abs(ye-fe)/2,be=Math.abs(le-ge)/2;if(we===0||be===0)return vo(a.x,a.y,fe,ge,ye,le)<=re;if(b){if(a=_t.$y(we,be,x,oe),a*a<=re)return!0}else return!(fs(x,oe,-we,0)>=re||fs(x,oe,0,-be)>=re||fs(x,oe,0,be)>=re||fs(x,oe,we,0)>=re)}else if(x.type===ai.o){if(ye=x.bounds,oe=ye.x,fe=ye.y,ge=ye.x+ye.width,ye=ye.y+ye.height,a.x>ge&&a.x<oe&&a.y>ye&&a.y<fe&&vo(a.x,a.y,oe,fe,oe,ye)>re&&vo(a.x,a.y,oe,fe,ge,fe)>re&&vo(a.x,a.y,ge,ye,oe,ye)>re&&vo(a.x,a.y,ge,ye,ge,fe)>re)return!1;if(oe=Math.sqrt(re),b){if(this.fill===null?hh(x,a.x,a.y,oe):rc(x,a,oe,!0,!1))return!0}else{for(b=x.figures,x=0;x<b.count;x++){if(oe=b.s[x],le=oe.startX,we=oe.startY,a.zd(le,we)>re)return!1;for(fe=oe.segments.s,ge=fe.length,ye=0;ye<ge;ye++)switch(be=fe[ye],be.type){case Au:case tl:if(le=be.endX,we=be.endY,a.zd(le,we)>re)return!1;break;case Yu:var ke=ys();if(_t.Qe(le,we,be.point1X,be.point1Y,be.point2X,be.point2Y,be.endX,be.endY,.8,ke),le=te(ke,a),As(ke),le||(le=be.endX,we=be.endY,a.zd(le,we)>re))return!1;break;case Ch:if(ke=ys(),_t.ep(le,we,be.point1X,be.point1Y,be.endX,be.endY,.8,ke),le=te(ke,a),As(ke),le||(le=be.endX,we=be.endY,a.zd(le,we)>re))return!1;break;case Du:case Eh:ke=be.type===Du?zc(be,oe):_c(be,oe,le,we);var Ue=ke.length;if(Ue===0){if(le=be.type===Du?be.centerX:be.endX,we=be.type===Du?be.centerY:be.endY,a.zd(le,we)>re)return!1;break}be=null;for(var Ve=ys(),Ke=0;Ke<Ue;Ke++)if(be=ke[Ke],Ve.length=0,_t.Qe(be[0],be[1],be[2],be[3],be[4],be[5],be[6],be[7],.8,Ve),te(Ve,a))return As(Ve),!1;As(Ve),be!==null&&(le=be[6],we=be[7]);break;default:hn("Unknown Segment type: "+be.type)}}return!0}}}return!1},We.qc=function(){this.ua=null},We.kq=function(){return this.ig};function n3(a){var x=a.diagram;x!==null&&x.undoManager.isUndoingRedoing||(a.segmentOrientation=Rx,a.toArrow!=="None"?(a.segmentIndex=-1,a.alignmentFocus=el):a.fromArrow!=="None"&&(a.segmentIndex=0,a.alignmentFocus=new Ii(1-el.x,el.y)))}xs.makeGeometry=function(a,x,b){if(a.toArrow!=="None")var te=f0[a.toArrow];else a.fromArrow!=="None"?te=f0[a.fromArrow]:(te=_t.Ze[a.figure],typeof te=="string"&&(te=_t.Ze[te]),te===void 0&&hn("Unknown Shape.figure: "+a.figure),te=te(a,x,b),te.Sk=x,te.Rk=b);if(te===null){var re=_t.Ze.Rectangle;typeof re=="function"&&(te=re(a,x,b))}return te};function i3(a){var x=f0[a];if(x===void 0){var b=a.toLowerCase();if(b==="none")return"None";if(x=f0[b],x===void 0){var te=null,re;for(re in _t.um)if(re.toLowerCase()===b){te=re;break}if(te!==null)return a=ai.parse(_t.um[te],!1),f0[te]=a,b!==te&&(f0[b]=te),te}}return typeof x=="string"?x:x instanceof ai?a:null}pn.Object.defineProperties(xs.prototype,{geometry:{get:function(){return this.ua!==null?this.ua:this.Rd},set:function(a){var x=this.ua,b=this.Rd;if(x!==a){a!==null?this.Rd=this.ua=a.freeze():this.Rd=this.ua=null;var te=this.part;te!==null&&(te.ag=NaN),this.v(),this.g("geometry",x||b,a),vh(this)&&(a=this.part,a!==null&&ou(this,a,"geometryString"))}}},geometryString:{get:function(){return this.geometry===null?"":this.geometry.toString()},set:function(a){a=ai.parse(a);var x=a.normalize();this.geometry=a,this.position=a=it.allocAt(-x.x,-x.y),it.free(a)}},isGeometryPositioned:{get:function(){return(this.l&1048576)!==0},set:function(a){var x=(this.l&1048576)!==0;x!==a&&(this.l^=1048576,this.v(),this.g("isGeometryPositioned",x,a))}},fill:{get:function(){return this.Ui},set:function(a){var x=this.Ui;x!==a&&(a!==null&&Og(a,"Shape.fill"),a instanceof Ws&&a.freeze(),this.Ui=a,this.N(),this.g("fill",x,a))}},stroke:{get:function(){return this.xc},set:function(a){var x=this.xc;x!==a&&(a!==null&&Og(a,"Shape.stroke"),a instanceof Ws&&a.freeze(),this.xc=a,this.N(),this.g("stroke",x,a))}},strokeWidth:{get:function(){return this.ig},set:function(a){var x=this.ig;if(x!==a)if(0<=a){this.ig=a,this.v();var b=this.part;b!==null&&(b.ag=NaN),this.g("strokeWidth",x,a)}else Xo(a,"value >= 0",xs,"strokeWidth:value")}},strokeCap:{get:function(){return this.Na!==null?this.Na.Hr:"butt"},set:function(a){var x=this.strokeCap;x!==a&&(typeof a!="string"||a!=="butt"&&a!=="round"&&a!=="square"?Xo(a,'"butt", "round", or "square"',xs,"strokeCap"):(K0(this),this.Na.Hr=a,this.N(),this.g("strokeCap",x,a)))}},strokeJoin:{get:function(){return this.Na!==null?this.Na.Ir:"miter"},set:function(a){var x=this.strokeJoin;x!==a&&(typeof a!="string"||a!=="miter"&&a!=="bevel"&&a!=="round"?Xo(a,'"miter", "bevel", or "round"',xs,"strokeJoin"):(K0(this),this.Na.Ir=a,this.N(),this.g("strokeJoin",x,a)))}},strokeMiterLimit:{get:function(){return this.Na!==null?this.Na.Jr:10},set:function(a){var x=this.strokeMiterLimit;if(x!==a&&1<=a){K0(this),this.Na.Jr=a,this.N();var b=this.part;b!==null&&(b.ag=NaN),this.g("strokeMiterLimit",x,a)}}},strokeDashArray:{get:function(){return this.Yg},set:function(a){var x=this.Yg;if(x!==a){if(a!==null){for(var b=a.length,te=0,re=0;re<b;re++){var oe=a[re];0<=oe&&isFinite(oe)||hn("strokeDashArray:value "+oe+" at index "+re+" must be a positive number or zero."),te+=oe}if(te===0){if(x===null)return;a=null}}this.Yg=a,this.N(),this.g("strokeDashArray",x,a)}}},strokeDashOffset:{get:function(){return this.Na!==null?this.Na.uj:0},set:function(a){var x=this.strokeDashOffset;x!==a&&0<=a&&(K0(this),this.Na.uj=a,this.N(),this.g("strokeDashOffset",x,a))}},figure:{get:function(){return this.an},set:function(a){var x=this.an;if(x!==a){var b=_t.Ze[a];typeof b=="function"?b=a:(b=_t.Ze[a.toLowerCase()])||hn("Unknown Shape.figure: "+a),x!==b&&(a=this.part,a!==null&&(a.ag=NaN),this.an=b,this.Rd=null,this.qc(),this.v(),this.g("figure",x,b))}}},toArrow:{get:function(){return this.Ua!==null?this.Ua.V:"None"},set:function(a){var x=this.toArrow;if(a===!0?a="Standard":a===!1&&(a=""),x!==a){var b=i3(a);b===null?hn("Unknown Shape.toArrow: "+a):x!==b&&(this.Ua===null&&(this.Ua=new Bm),this.Ua.V=b,this.Rd=null,this.qc(),this.v(),n3(this),this.g("toArrow",x,b))}}},fromArrow:{get:function(){return this.Ua!==null?this.Ua.j:"None"},set:function(a){var x=this.fromArrow;if(a===!0?a="Standard":a===!1&&(a=""),x!==a){var b=i3(a);b===null?hn("Unknown Shape.fromArrow: "+a):x!==b&&(this.Ua===null&&(this.Ua=new Bm),this.Ua.j=b,this.Rd=null,this.qc(),this.v(),n3(this),this.g("fromArrow",x,b))}}},spot1:{get:function(){return this.Na!==null?this.Na.fg:Bl},set:function(a){var x=this.spot1;x.D(a)||(a=a.J(),K0(this),this.Na.fg=a,this.v(),this.g("spot1",x,a))}},spot2:{get:function(){return this.Na!==null?this.Na.gg:Bl},set:function(a){var x=this.spot2;x.D(a)||(a=a.J(),K0(this),this.Na.gg=a,this.v(),this.g("spot2",x,a))}},parameter1:{get:function(){return this.Un},set:function(a){var x=this.Un;x!==a&&(this.Un=a,this.qc(),this.v(),this.g("parameter1",x,a))}},parameter2:{get:function(){return this.Vn},set:function(a){var x=this.Vn;x!==a&&(this.Vn=a,this.qc(),this.v(),this.g("parameter2",x,a))}},naturalBounds:{get:function(){return this.dc}},pathPattern:{get:function(){return this.Na!==null?this.Na.br:null},set:function(a){var x=this.pathPattern;x!==a&&(K0(this),this.Na.br=a,this.N(),this.g("pathPattern",x,a))}},geometryStretch:{get:function(){return this.Na!==null?this.Na.jq:rs},set:function(a){var x=this.geometryStretch;x!==a&&(K0(this),this.Na.jq=a,this.v(),this.g("geometryStretch",x,a))}},interval:{get:function(){return this.fa!==null?this.fa.Tk:1},set:function(a){var x=this.interval;if(a=Math.round(a),x!==a&&a!==0&&isFinite(a)){this.fa===null&&(this.fa=new Lm),this.fa.Tk=a;var b=this.diagram;b!==null&&this.panel===b.grid&&Ng(b),this.v(),b=this.panel,b!==null&&(b.graduatedIntervals=null),this.g("interval",x,a)}}},graduatedStart:{get:function(){return this.fa!==null?this.fa.u:0},set:function(a){var x=this.graduatedStart;x!==a&&(0>a?a=0:1<a&&(a=1),this.fa===null&&(this.fa=new Lm),this.fa.u=a,this.v(),this.g("graduatedStart",x,a))}},graduatedEnd:{get:function(){return this.fa!==null?this.fa.j:1},set:function(a){var x=this.graduatedEnd;x!==a&&(0>a?a=0:1<a&&(a=1),this.fa===null&&(this.fa=new Lm),this.fa.j=a,this.v(),this.g("graduatedEnd",x,a))}},graduatedSkip:{get:function(){return this.fa!==null?this.fa.o:null},set:function(a){var x=this.graduatedSkip;x!==a&&(this.fa===null&&(this.fa=new Lm),this.fa.o=a,this.v(),this.g("graduatedSkip",x,a))}}}),xs.prototype.intersectsRect=xs.prototype.Yc,xs.prototype.containedInRect=xs.prototype.fh,xs.prototype.getNearestIntersectionPoint=xs.prototype.rs,xs.prototype.getDocumentBounds=xs.prototype.mi,xs.prototype.getDocumentPoint=xs.prototype.ga;var f0=new Fa,u5=new Fa;xs.className="Shape",xs.getFigureGenerators=function(){var a=new kn,x;for(x in _t.Ze)x!==x.toLowerCase()&&a.add(x,_t.Ze[x]);return a.freeze(),a},xs.defineFigureGenerator=function(a,x){var b=a.toLowerCase(),te=_t.Ze;te[a]=x,te[b]=a},xs.getArrowheadGeometries=function(){var a=new kn;for(te in _t.um)if(f0[te]===void 0){var x=ai.parse(_t.um[te],!1);f0[te]=x,x=te.toLowerCase(),x!==te&&(f0[x]=te)}for(var b in f0)if(b!==b.toLowerCase()){var te=f0[b];te instanceof ai&&a.add(b,te)}return a.freeze(),a},xs.defineArrowheadGeometry=function(a,x){var b=null;typeof x=="string"?b=ai.parse(x,!1):b=x,x=a.toLowerCase(),x!=="none"&&a!==x||hn("Shape.defineArrowheadGeometry name must not be empty or None or all-lower-case: "+a);var te=f0;te[a]=b,te[x]=a};function c5(){this.nc=!1,this.Hr="butt",this.Ir="miter",this.Jr=10,this.uj=0,this.br=null,this.jq=rs,this.gg=this.fg=Bl}c5.prototype.copy=function(){var a=new c5;return a.Hr=this.Hr,a.Ir=this.Ir,a.Jr=this.Jr,a.uj=this.uj,a.br=this.br,a.jq=this.jq,a.fg=this.fg.J(),a.gg=this.gg.J(),a};function _l(a,x){return nn.call(this),NC||(Xd=zu?new xh(null).context:null,NC=!0),this.l|=2097152,this.ec="",this.xc="black",this.Ae="13px sans-serif",this.Lq=this.Cb=this.Gc=0,this.da=this.fa=this.Gm=null,this.Ih=0,this.df=null,this.Le=0,this.ze=this.Qb=this.Qc=null,typeof a=="string"?this.text=a:a&&Object.assign(this,a),x&&Object.assign(this,x),this}vn(_l,nn),_l.prototype.cloneProtected=function(a){nn.prototype.cloneProtected.call(this,a),a.ec=this.ec,a.xc=this.xc,a.Ae=this.Ae,a.Gc=this.Gc,a.Cb=this.Cb,a.Lq=this.Lq,a.Gm=this.Gm,this.fa!==null&&(a.fa=this.fa.copy()),this.da!==null&&(a.da=this.da.nc?this.da:this.da.copy()),a.Ih=this.Ih,a.df=this.df,a.Le=this.Le,a.Qc=this.Qc,a.Qb=this.Qb,a.ze=this.ze};function Rg(a){a.da===null?a.da=new r2:a.da.nc&&(a.da=a.da.copy())}We=_l.prototype,We.th=function(){nn.prototype.th.call(this),this.da!==null&&(this.da.nc=!0)};function xp(a,x){a.l=x.l|6144,a.pb=x.opacity,a.Ma=x.background,a.areaBackground=x.areaBackground,a.jd=x.desiredSize.J(),a.minSize=x.minSize.J(),a.maxSize=x.maxSize.J(),x.Lb!==null?a.Lb=x.Lb.copy():a.Lb=null,a.Ca=x.scale,a.Kb=x.angle,a.stretch=x.stretch,a.Kg=x.margin.J(),a.Jb=x.alignment.J(),a.sk=x.alignmentFocus.J(),a.segmentFraction=x.segmentFraction,a.segmentOffset=x.segmentOffset.J(),a.segmentOrientation=x.segmentOrientation,x.tb!==null&&(a.tb=x.tb.copy()),a.shadowVisible=x.shadowVisible,a.ec=x.ec,a.xc=x.xc,a.Ae=x.Ae,a.fa!==null&&(a.fa=x.fa.copy()),x.da!==null&&(a.da=x.da.nc?x.da:x.da.copy()),a.Ih=x.Ih}We.qb=function(a){a.classType===_l?this.wrap=a:nn.prototype.qb.call(this,a)},We.toString=function(){return 22<this.ec.length?'TextBlock("'+this.ec.substring(0,20)+'"...)':'TextBlock("'+this.ec+'")'},We.v=function(){nn.prototype.v.call(this)},We.hh=function(a,x){if(this.xc!==null&&this.ec.length!==0&&this.Ae!==null){var b=this.naturalBounds,te=this.actualBounds,re=b.width,oe=b.height,le=Hg(this),fe=a.textAlign=this.textAlign,ge=x.tn;fe==="start"?fe=ge?"right":"left":fe==="end"&&(fe=ge?"left":"right"),ge=this.isUnderline;var ye=this.isStrikethrough;Fu(this,a,this.xc,!0,!1,b,te),(ge||ye)&&Fu(this,a,this.xc,!1,!1,b,te),te=0,b=!1;var we=this.oe,be=we.dx-(le*we.m21+we.dx);we=we.dy-(le*we.m22+we.dy);var ke=x.scale;switch(8>(be*be+we*we)*ke*ke&&(b=!0),x.ib!==a&&(b=!1),x.ib instanceof Wh&&(b=!1),x.Gf("textGreeking")===!1&&(b=!1),x=this.spacingAbove,be=this.spacingBelow,this.flip){case va:a.translate(re,0),a.scale(-1,1);break;case Ns:a.translate(0,oe),a.scale(1,-1);break;case ml:a.translate(re,oe),a.scale(-1,-1)}if(a.yc(),we=this.Gc,ke=(x+le+be)*we,oe>ke&&(te=this.verticalAlignment,te=te.y*oe-te.y*ke+te.offsetY),we===1&&this.ze!==null)be=this.Cb,be>re&&(be=re),this.Oj(this.ze,a,0,te+x,re,le,be,b,fe,ge,ye);else if(this.Qc!==null&&this.Qb!==null)for(ke=0;ke<we;ke++){var Ue=this.Qc[ke];Ue>re&&(Ue=re),te+=x,this.Oj(this.Qb[ke],a,0,te,re,le,Ue,b,fe,ge,ye),te+=le+be}switch(this.flip){case va:a.scale(-1,1),a.translate(-re,0);break;case Ns:a.scale(1,-1),a.translate(0,-oe);break;case ml:a.scale(-1,-1),a.translate(-re,-oe)}}},We.Oj=function(a,x,b,te,re,oe,le,fe,ge,ye,we){var be=0;if(fe)ge==="left"?be=0:ge==="right"?be=re-le:ge==="center"&&(be=(re-le)/2),x.fillRect(b+be,te+.25*oe,le,1);else{if(ge==="left"?be=0:ge==="right"?be=re:ge==="center"&&(be=re/2),re=J0!==null?J0(this,oe):.75*oe,x.fillText(a,b+be,te+re),a=oe/20|0,a===0&&(a=1),ge==="right"?be-=le:ge==="center"&&(be-=le/2),ye){fe=q0!==null?q0(this,oe):.8*oe,ge=b+be,ye=te+fe,re=b+be+le,fe=te+fe;var ke=a;x.beginPath(),x.lineWidth=ke,x.moveTo(ge,ye),x.lineTo(re,fe),x.stroke(),x.Se(),x instanceof Wh&&x.ad.classList.add("gojs-td")}we&&(we=te+oe-oe/2.2|0,a%2!==0&&(we+=.5),te=b+be,oe=we,b=b+be+le,le=we,be=a,x.beginPath(),x.lineWidth=be,x.moveTo(te,oe),x.lineTo(b,le),x.stroke(),x.Se(),x instanceof Wh&&x.ad.classList.add("gojs-td"))}},We.kk=function(a,x,b){if(!nn.prototype.kk.call(this,a,x,b))return!1;if(Fu(this,a,this.xc,!0,!1,this.naturalBounds,this.actualBounds),b){if(this.svg.getElementsByTagName("text").length===0)return!0;for(x=this.svg.getElementsByClassName("gojs-td"),b=0;b<x.length;b++)iA(a,x[b],!1)}else x=this.svg,x.innerHTML=this.text,iA(a,x,!0);return!0},We.nk=function(a){return 1<this.lineCount||this.isUnderline||this.isStrikethrough?!0:nn.prototype.nk.call(this,a)},We.Dv=function(a,x){if(a.nodeName!=="g")a.setAttributeNS(null,"filter",x);else{a=a.getElementsByTagName("text");for(var b=0;b<a.length;b++)a[b].setAttributeNS(null,"filter",x)}},We.Wl=function(a,x,b,te){var re=this.Gc;this.Ih=a,this.l&=-16777217;var oe=this.Ae;Xd!==null&&g5!==oe&&(g5=Xd.font=oe),this.Cb=this.Le=0,this.ze=this.Qb=this.Qc=this.df=null;var le;if(isNaN(this.desiredSize.width)){if(oe=this.ec.replace(/\r\n/g,`
|
|
`).replace(/\r/g,`
|
|
`),oe.length===0)oe=8;else if(this.isMultiline){for(var fe=le=0,ge=!1;!ge;){var ye=oe.indexOf(`
|
|
`,fe);ye===-1&&(ye=oe.length,ge=!0),fe=oe.substr(fe,ye-fe),this.formatting===GS&&(fe=fe.trim()),le=Math.max(le,Ug(fe)),fe=ye+1}oe=le}else le=oe.indexOf(`
|
|
`,0),0<=le&&(oe=oe.substr(0,le)),oe=Ug(oe);oe=Math.min(oe,a/this.scale)}else oe=this.desiredSize.width;if(this.panel!==null&&(oe=Math.min(oe,this.panel.maxSize.width)),le=e2(this,oe),isNaN(this.desiredSize.height)?le=Math.min(le,x/this.scale):le=this.desiredSize.height,ge=le,this.Cb!==0&&this.Qc!==null&&this.Qb!==null&&this.overflow===dA&&(x=this.Ae,x=this.overflow===dA?wp(x):0,ye=this.spacingAbove+this.spacingBelow,ye=Math.max(0,Hg(this)+ye),ge=Math.min(this.maxLines-1,Math.max(Math.floor(ge/ye+.01)-1,0)),!(ge+1>=this.Qb.length))){for(this.l|=16777216,ye=this.Qb[ge],x=Math.max(1,a-x);Ug(ye)>x&&1<ye.length;)ye=ye.substr(0,ye.length-1);ye+=XS,x=Ug(ye),this.Qb[ge]=ye,this.Qb=this.Qb.slice(0,ge+1),this.Qc[ge]=x,this.Qc=this.Qc.slice(0,ge+1),this.Le=this.Qb.length,this.Cb=Math.max(this.Cb,x),this.Gc=this.Le,this.Gc===1&&(this.ze=this.Qb[0])}(this.wrap===Bu||isNaN(this.desiredSize.width))&&(oe=isNaN(a)?this.Cb:Math.min(a,this.Cb)),oe=Math.max(b,oe),le=Math.max(te,le),er(this.dc,oe,le),this.Ge(0,0,oe,le),this.svg!==null&&re!==this.Gc&&(this.Uc=!0)},We.eh=function(a,x,b,te){bh(this,a,x,b,te)};function zg(a,x,b){a.ze===null?(a.ze=x,a.Cb=b):((a.Qb===null||a.Qc===null)&&(a.Qb=[],a.Qc=[],a.Qb.push(a.ze),a.Qc.push(a.Cb)),a.Qb.push(x),a.Qc.push(b),a.Qb.length>a.maxLines&&(a.l|=16777216))}function h5(a,x,b,te){var re=a.formatting===GS;re&&(x=x.trim());var oe=0,le=a.Ae,fe=a.spacingAbove+a.spacingBelow;fe=Math.max(0,Hg(a)+fe);var ge=a.overflow===dA?wp(le):0;if(a.Gc>=a.maxLines)te!==null&&te.h(0,fe);else if(le=x,a.wrap===pg){a.Le=1;var ye=Ug(x);if(ge===0||ye<=b)a.Cb=Math.max(a.Cb,ye),zg(a,x,a.Cb),te!==null&&te.h(ye,fe);else{for(oe=VS(a,le),le=le.substr(oe.length),x=VS(a,le),ye=Ug(oe+x);0<x.length&&ye<=b;)oe+=x,le=le.substr(x.length),x=VS(a,le),ye=oe+x,re&&(ye=ye.trim()),ye=Ug(ye);for(re&&(x=x.trim()),oe+=x,b=Math.max(1,b-ge);Ug(oe)>b&&1<oe.length;)oe=oe.substr(0,oe.length-1);a.l|=16777216,oe+=XS;var we=Ug(oe);a.Cb=we,zg(a,oe,we),te!==null&&te.h(we,fe)}}else{for(ge=0,le.length===0&&(ge=1,zg(a,le,0));0<le.length;){for(x=VS(a,le),le=le.substr(x.length);Ug(x)>b;){var be=1;for(ye=Ug(x.substr(0,be)),we=0;ye<=b;)be++,we=ye,ye=Ug(x.substr(0,be));if(be===1){var ke=ye;oe=Math.max(oe,ye)}else ke=we,oe=Math.max(oe,we);if(be--,1>be&&(be=1),zg(a,x.substr(0,be),ke),ge++,x=x.substr(be),a.Gc+ge>a.maxLines)break}for(we=VS(a,le),ye=Ug(x+we);0<we.length&&ye<=b;)x+=we,le=le.substr(we.length),we=VS(a,le),ye=x+we,re&&(ye=ye.trim()),ye=Ug(ye);if(re&&(x=x.trim()),x!==""&&(x[x.length-1]==="\xAD"&&(x=x.substring(0,x.length-1)+"\u2010"),we.length===0?(be=ye,oe=Math.max(oe,ye)):(be=we=Ug(x),oe=Math.max(oe,we)),zg(a,x,be),ge++,a.Gc+ge>a.maxLines))break}a.Le=Math.min(a.maxLines,ge),a.Cb=Math.max(a.Cb,oe),te!==null&&te.h(a.Cb,fe*a.Le)}}function VS(a,x){if(a.wrap===d5)return x.substr(0,1);for(var b=x.length,te=0,re=r3;te<b&&!re.test(x.charAt(te));)te++;for(a.formatting===f5&&(b=Math.min(b,te+1));te<b&&re.test(x.charAt(te));)te++;return te>=x.length?x:x.substr(0,te)}function Ug(a){return Xd===null?8*a.length:Xd.measureText(a).width}function Hg(a){if(a.df!==null)return a.df;var x=a.Ae;if(Xd===null){var b=16;return a.df=b}return n2[x]!==void 0&&5e3>p5?b=n2[x]:(b=1.3*Xd.measureText("M").width,n2[x]=b,p5++),a.df=b}function wp(a){if(Xd===null)return 6;if(DC[a]!==void 0&&5e3>i2)var x=DC[a];else x=Xd.measureText(XS).width,DC[a]=x,i2++;return x}function e2(a,x){var b=a.ec.replace(/\r\n/g,`
|
|
`).replace(/\r/g,`
|
|
`),te=a.spacingAbove+a.spacingBelow;if(te=Math.max(0,Hg(a)+te),b.length===0)return a.Cb=0,a.Gc=1,te;if(!a.isMultiline){var re=b.indexOf(`
|
|
`,0);0<=re&&(b=b.substr(0,re))}re=0;for(var oe=a.Gc=0,le,fe=!1;!fe;){if(le=b.indexOf(`
|
|
`,oe),le===-1&&(le=b.length,fe=!0),oe<=le){if(oe=b.substr(oe,le-oe),a.wrap!==pg){a.Le=0;var ge=Dt.alloc();h5(a,oe,x,ge),re+=ge.height,Dt.free(ge),a.Gc+=a.Le}else h5(a,oe,x,null),re+=te,a.Gc++;a.Gc===a.maxLines&&(fe=!0)}oe=le+1}return a.Lq=re}pn.Object.defineProperties(_l.prototype,{font:{get:function(){return this.Ae},set:function(a){var x=this.Ae;x!==a&&(this.Ae=a,this.df=null,this.v(),this.g("font",x,a))}},text:{get:function(){return this.ec},set:function(a){var x=this.ec;a!=null?a=a.toString():a="",x!==a&&(this.ec=a,this.v(),this.g("text",x,a),this.Uc=!0)}},textAlign:{get:function(){return this.da!==null?this.da.Or:"start"},set:function(a){var x=this.textAlign;x===a||a!=="start"&&a!=="end"&&a!=="left"&&a!=="right"&&a!=="center"||(Rg(this),this.da.Or=a,this.N(),this.g("textAlign",x,a))}},flip:{get:function(){return this.da!==null?this.da.Xf:li},set:function(a){var x=this.flip;x!==a&&(Rg(this),this.da.Xf=a,this.N(),this.g("flip",x,a))}},verticalAlignment:{get:function(){return this.da!==null?this.da.Yr:eu},set:function(a){var x=this.verticalAlignment;x.D(a)||(a=a.J(),Rg(this),this.da.Yr=a,ld(this),this.g("verticalAlignment",x,a))}},naturalBounds:{get:function(){if(!this.dc.w()){var a=Dt.alloc();h5(this,this.ec,999999,a);var x=a.width;Dt.free(a),a=e2(this,x);var b=this.desiredSize;isNaN(b.width)||(x=b.width),isNaN(b.height)||(a=b.height),er(this.dc,x,a)}return this.dc}},isMultiline:{get:function(){return(this.l&2097152)!==0},set:function(a){var x=(this.l&2097152)!==0;x!==a&&(this.l^=2097152,this.v(),this.g("isMultiline",x,a))}},isUnderline:{get:function(){return(this.l&4194304)!==0},set:function(a){var x=(this.l&4194304)!==0;x!==a&&(this.l^=4194304,this.Uc=!0,this.N(),this.g("isUnderline",x,a))}},isStrikethrough:{get:function(){return(this.l&8388608)!==0},set:function(a){var x=(this.l&8388608)!==0;x!==a&&(this.l^=8388608,this.Uc=!0,this.N(),this.g("isStrikethrough",x,a))}},wrap:{get:function(){return this.da!==null?this.da.$r:jS},set:function(a){var x=this.wrap;x!==a&&(Rg(this),this.da.$r=a,this.v(),this.g("wrap",x,a))}},overflow:{get:function(){return this.da!==null?this.da.$q:t2},set:function(a){var x=this.overflow;x!==a&&(Rg(this),this.da.$q=a,this.v(),this.g("overflow",x,a))}},isOverflowed:{get:function(){return(this.l&16777216)!==0}},stroke:{get:function(){return this.xc},set:function(a){var x=this.xc;x!==a&&(a!==null&&Og(a,"TextBlock.stroke"),a instanceof Ws&&a.freeze(),this.xc=a,this.N(),this.g("stroke",x,a))}},lineCount:{get:function(){return this.Gc}},lineHeight:{get:function(){return Hg(this)}},editable:{get:function(){return(this.l&1048576)!==0},set:function(a){var x=(this.l&1048576)!==0;x!==a&&(this.l^=1048576,this.g("editable",x,a))}},textEditor:{get:function(){return this.da!==null?this.da.Qr:null},set:function(a){var x=this.textEditor;x!==a&&(Rg(this),this.da.Qr=a,this.g("textEditor",x,a))}},errorFunction:{get:function(){return this.da!==null?this.da.Hd:null},set:function(a){var x=this.errorFunction;x!==a&&(Rg(this),this.da.Hd=a,this.g("errorFunction",x,a))}},interval:{get:function(){return this.fa!==null?this.fa.Tk:1},set:function(a){var x=this.interval;if(a=Math.round(a),x!==a&&a!==0&&isFinite(a)){this.fa===null&&(this.fa=new Lm),this.fa.Tk=a,this.v();var b=this.panel;b!==null&&(b.graduatedIntervals=null),this.g("interval",x,a)}}},graduatedStart:{get:function(){return this.fa!==null?this.fa.u:0},set:function(a){var x=this.graduatedStart;x!==a&&(0>a?a=0:1<a&&(a=1),this.fa===null&&(this.fa=new Lm),this.fa.u=a,this.v(),this.g("graduatedStart",x,a))}},graduatedEnd:{get:function(){return this.fa!==null?this.fa.j:1},set:function(a){var x=this.graduatedEnd;x!==a&&(0>a?a=0:1<a&&(a=1),this.fa===null&&(this.fa=new Lm),this.fa.j=a,this.v(),this.g("graduatedEnd",x,a))}},graduatedFunction:{get:function(){return this.fa!==null?this.fa.F:null},set:function(a){var x=this.graduatedFunction;x!==a&&(this.fa===null&&(this.fa=new Lm),this.fa.F=a,this.v(),this.g("graduatedFunction",x,a))}},graduatedSkip:{get:function(){return this.fa!==null?this.fa.o:null},set:function(a){var x=this.graduatedSkip;x!==a&&(this.fa===null&&(this.fa=new Lm),this.fa.o=a,this.v(),this.g("graduatedSkip",x,a))}},textValidation:{get:function(){return this.da!==null?this.da.vj:null},set:function(a){var x=this.textValidation;x!==a&&(Rg(this),this.da.vj=a,this.g("textValidation",x,a))}},textEdited:{get:function(){return this.da!==null?this.da.Pr:null},set:function(a){var x=this.textEdited;x!==a&&(Rg(this),this.da.Pr=a,this.g("textEdited",x,a))}},spacingAbove:{get:function(){return this.da!==null?this.da.Dr:0},set:function(a){var x=this.spacingAbove;x!==a&&(Rg(this),this.da.Dr=a,this.v(),this.g("spacingAbove",x,a))}},spacingBelow:{get:function(){return this.da!==null?this.da.Er:0},set:function(a){var x=this.spacingBelow;x!==a&&(Rg(this),this.da.Er=a,this.v(),this.g("spacingBelow",x,a))}},formatting:{get:function(){return this.da!==null?this.da.gq:GS},set:function(a){var x=this.formatting;x!==a&&(Rg(this),this.da.gq=a,this.v(),this.g("formatting",x,a))}},maxLines:{get:function(){return this.da!==null?this.da.Jq:1/0},set:function(a){var x=this.maxLines;x!==a&&(a=Math.floor(a),0>=a&&Xo(a,"> 0",_l,"maxLines"),Rg(this),this.da.Jq=a,this.v(),this.g("maxLines",x,a))}},metrics:{get:function(){return{arrSize:this.Qc!==null?this.Qc:[this.Cb],arrText:this.Qb!==null?this.Qb:[this.ze],maxLineWidth:this.Cb,fontHeight:this.df}}},choices:{get:function(){return this.Gm},set:function(a){var x=this.Gm;x!==a&&(this.Gm=a,this.g("choices",x,a))}}});var J0=null,q0=null,pg=new Ni(_l,"None",0),Bu=new Ni(_l,"WrapFit",1),jS=new Ni(_l,"WrapDesiredSize",2),d5=new Ni(_l,"WrapBreakAll",3),t2=new Ni(_l,"OverflowClip",0),dA=new Ni(_l,"OverflowEllipsis",1),GS=new Ni(_l,"FormatTrim",0),f5=new Ni(_l,"FormatNone",0),r3=/[ \u200b\u00ad]/,n2=new Fa,p5=0,DC=new Fa,i2=0,XS="...",g5="",Xd=null,NC=!1;_l.className="TextBlock";function r2(){this.nc=!1,this.Hd=null,this.Xf=li,this.gq=GS,this.Jq=1/0,this.$q=t2,this.Er=this.Dr=0,this.Or="start",this.vj=this.Qr=this.Pr=null,this.Yr=eu,this.$r=jS}r2.prototype.copy=function(){var a=new r2;return a.Hd=this.Hd,a.Xf=this.Xf,a.gq=this.gq,a.Jq=this.Jq,a.$q=this.$q,a.Dr=this.Dr,a.Er=this.Er,a.Or=this.Or,a.Pr=this.Pr,a.Qr=this.Qr,a.vj=this.vj,a.Yr=this.Yr,a.$r=this.$r,a},_l.getEllipsis=function(){return XS},_l.setEllipsis=function(a){XS=a,DC=new Fa,i2=0},_l.getBaseline=function(){return J0},_l.setBaseline=function(a){J0=a},_l.getUnderline=function(){return q0},_l.setUnderline=function(a){q0=a},_l.isValidFont=function(a){if(NC||(Xd=zu?new xh(null).context:null,NC=!0),Xd===null)return!0;var x=Xd.font;if(a===x||a==="10px sans-serif")return!0;Xd.font="10px sans-serif",Xd.font=a;var b=Xd.font;if(b!=="10px sans-serif")return Xd.font=x,!0;Xd.font="19px serif";var te=Xd.font;return Xd.font=a,b=Xd.font,Xd.font=x,b!==te},_l.FormatNone=f5,_l.FormatTrim=GS,_l.None=pg,_l.OverflowClip=t2,_l.OverflowEllipsis=dA,_l.WrapBreakAll=d5,_l.WrapDesiredSize=jS,_l.WrapFit=Bu;function Lm(){this.Tk=1,this.u=0,this.j=1,this.o=this.F=null}Lm.prototype.copy=function(){var a=new Lm;return a.Tk=this.Tk,a.u=this.u,a.j=this.j,a.F=this.F,a.o=this.o,a},Lm.className="GradElementSettings";function Wd(a,x){nn.call(this),this.Eg=null,this.qo="",this.Xg=Hs,this.Nk=wi,this.Zg=this.Hd=null,this.Mk=eo,this.Xf=li,this.vl=null,this.qn=!1,this.en=!0,this.al=!1,this.bt=this.rl=null,typeof a=="string"?this.source=a:a&&Object.assign(this,a),x&&Object.assign(this,x)}var af;vn(Wd,nn),Wd.prototype.cloneProtected=function(a){nn.prototype.cloneProtected.call(this,a),a.qo=this.qo,a.element=this.Eg,a.Xg=this.Xg.J(),a.Nk=this.Nk,a.Xf=this.Xf,a.Hd=this.Hd,a.Zg=this.Zg,a.Mk=this.Mk.J(),a.en=this.en,a.rl=this.rl},Wd.prototype.qb=function(a){a===li||a===jr||a===na?this.imageStretch=a:nn.prototype.qb.call(this,a)},Wd.prototype.toString=function(){return"Picture("+this.source+")#"+Pl(this)};function wu(a){a===void 0&&(a=""),a!==""?af[a]&&(delete af[a],Yr--):(af=new Fa,Yr=0)}function hw(a,x){x.qy||(x.Fq=function(b){x.sq=!0,x.ln=!1;var te=x.Bg.copy();if(te!=null){for(te=te.iterator;te.next();){var re=te.value;re.N();var oe=x.getAttribute("src")||"",le=re.Og.I(oe);if(le!==null)for(var fe=le.length,ge=0;ge<fe;ge++)oe=le[ge],re.Xn.add(oe),oe.Uc=!0,re.$b(),x.hn&&(x.eu===void 0&&(x.eu=b),oe.Zg!==null&&oe.Zg(oe,b))}x.Bg.clear()}a.desiredSize.w()||(Mc(a,!1),a.v())},x.Yp=function(b){x.ln=b;var te=x.Bg.copy();if(te!=null){for(te=te.iterator;te.next();){var re=te.value,oe=x.getAttribute("src")||"",le=re.Og.I(oe);if(le!==null){re=le.length,oe=ys();for(var fe=0;fe<re;fe++)oe.push(le[fe]);if(x.hn)for(fe=0;fe<re;fe++)le=oe[fe],le.Hd!==null&&le.Hd(le,b);As(oe)}}x.Bg.clear()}},x.addEventListener("load",x.Fq),x.addEventListener("error",x.Yp),x.qy=!0)}Wd.prototype.hA=function(){if(this.source!==""){wu(this.source);var a=this.source;this.source="",this.source=a}},Wd.prototype.redraw=function(){this.N(),this.Uc=!0},Wd.prototype.hh=function(a,x){var b=this.Eg;if(b!==null){var te=b.getAttribute("src");if(!(b instanceof HTMLImageElement&&(te===null||te==="")||b.ln instanceof Event&&a instanceof a0)){var re=a instanceof Wh;te=this.naturalBounds;var oe=0,le=0,fe=this.qn,ge=fe?+b.width:b.naturalWidth;if(fe=fe?+b.height:b.naturalHeight,ge===void 0&&b.videoWidth&&(ge=b.videoWidth),fe===void 0&&b.videoHeight&&(fe=b.videoHeight),ge=ge||te.width,fe=fe||te.height,ge!==0&&fe!==0){var ye=ge,we=fe;this.sourceRect.w()&&(oe=this.Xg.x,le=this.Xg.y,ge=this.Xg.width,fe=this.Xg.height);var be=ge,ke=fe,Ue=this.Nk,Ve=this.Mk;switch(Ue){case li:if(this.sourceRect.w())break;be>=te.width&&(oe=oe+Ve.offsetX+(be*Ve.x-te.width*Ve.x)),ke>=te.height&&(le=le+Ve.offsetY+(ke*Ve.y-te.height*Ve.y)),ge=Math.min(te.width,be),fe=Math.min(te.height,ke);break;case wi:be=te.width,ke=te.height;break;case jr:case na:Ue===jr?(Ue=Math.min(te.height/ke,te.width/be),be*=Ue,ke*=Ue):Ue===na&&(Ue=Math.max(te.height/ke,te.width/be),be*=Ue,ke*=Ue,be>=te.width&&(oe=(oe+Ve.offsetX+(be*Ve.x-te.width*Ve.x)/be)*ge),ke>=te.height&&(le=(le+Ve.offsetY+(ke*Ve.y-te.height*Ve.y)/ke)*fe),ge*=1/(be/te.width),fe*=1/(ke/te.height),be=te.width,ke=te.height)}Ue=this.Df()*x.scale;var Ke=be*Ue*ke*Ue,Pt=ge*fe/Ke,ft=b.__goCache;Ue=null;var Nt=Bf;if(!re){if(b.sq&&ft!==void 0&&4<Ke&&Pt>Nt*Nt)for(ft.gi===null&&(FC(ft,4,ye,we,b),FC(ft,16,ye,we,b)),re=ft.gi,ye=re.length,we=0;we<ye&&re[we].ratio*re[we].ratio<Pt;we++)Ue=re[we];if(!x.Xm){if(this.vl===null)if(this.Eg===null)this.vl=!1;else{re=new xh(null).context;try{re.drawImage(this.Eg,0,0)}catch(Lt){this.en=!1}try{re.getImageData(0,0,1,1).data[3]&&(this.vl=!1),this.vl=!1}catch(Lt){this.vl=!0}}if(this.vl)return}}switch(re=be<te.width?Ve.offsetX+(te.width*Ve.x-be*Ve.x):0,Ve=ke<te.height?Ve.offsetY+(te.height*Ve.y-ke*Ve.y):0,this.flip){case va:a.translate(Math.min(te.width,be),0),a.scale(-1,1);break;case Ns:a.translate(0,Math.min(te.height,ke)),a.scale(1,-1);break;case ml:a.translate(Math.min(te.width,be),Math.min(te.height,ke)),a.scale(-1,-1)}if(a.yc(),x.Gf("pictureRatioOptimization")&&!x.$i&&ft!==void 0&&Ue!==null&&Ue.ratio!==1){a.save(),x=Ue.ratio;try{a.drawImage(Ue.source,oe/x,le/x,Math.min(Ue.source.width,ge/x),Math.min(Ue.source.height,fe/x),re,Ve,Math.min(te.width,be),Math.min(te.height,ke)),a instanceof Wh&&(this.bt=[oe/x,le/x,Math.min(Ue.source.width,ge/x),Math.min(Ue.source.height,fe/x),re,Ve,Math.min(te.width,be),Math.min(te.height,ke)])}catch(Lt){this.en=!1}a.restore()}else try{a.drawImage(b,oe,le,ge,fe,re,Ve,Math.min(te.width,be),Math.min(te.height,ke)),a instanceof Wh&&(this.bt=[oe,le,ge,fe,re,Ve,Math.min(te.width,be),Math.min(te.height,ke)])}catch(Lt){this.en=!1}switch(this.flip){case va:a.scale(-1,1),a.translate(-Math.min(te.width,be),0);break;case Ns:a.scale(1,-1),a.translate(0,-Math.min(te.height,ke));break;case ml:a.scale(-1,-1),a.translate(-Math.min(te.width,be),-Math.min(te.height,ke))}}}}},Wd.prototype.Wl=function(a,x,b,te){var re=this.desiredSize,oe=bc(this,!0),le=this.Eg,fe=this.qn,ge=0,ye=0;(fe||!this.al&&le&&le.complete)&&(this.al=!0),le===null?(isFinite(re.width)||(a=0),isFinite(re.height)||(x=0)):(ge=fe?+le.width:le.naturalWidth,ye=fe?+le.height:le.naturalHeight),isFinite(re.width)||oe===wi||oe===no?(isFinite(a)||(this.sourceRect.w()?a=this.sourceRect.width:le!==null&&(a=ge)),b=0):le!==null&&this.al!==!1&&(a=this.sourceRect.w()?this.sourceRect.width:ge),isFinite(re.height)||oe===wi||oe===To?(isFinite(x)||(this.sourceRect.w()?x=this.sourceRect.height:le!==null&&(x=ye)),te=0):le!==null&&this.al!==!1&&(x=this.sourceRect.w()?this.sourceRect.height:ye),isFinite(re.width)&&(a=re.width),isFinite(re.height)&&(x=re.height),re=this.maxSize,oe=this.minSize,b=Math.max(b||0,oe.width),te=Math.max(te||0,oe.height),a=Math.min(re.width,a),x=Math.min(re.height,x),a=Math.max(b,a),x=Math.max(te,x),le===null||le.complete||(isFinite(a)||(a=0),isFinite(x)||(x=0)),er(this.dc,a,x),this.Ge(0,0,a,x)},Wd.prototype.eh=function(a,x,b,te){bh(this,a,x,b,te)},pn.Object.defineProperties(Wd.prototype,{element:{get:function(){return this.Eg},set:function(a){var x=this.Eg;if(this.Uc=!0,x!==a){this.qn=a instanceof HTMLCanvasElement;var b=a instanceof HTMLImageElement;a===null||b||a instanceof HTMLVideoElement||this.qn||hn("Picture.element must be an instance of Image, Canvas, or Video, not: "+a);var te=this.diagram;te!==null&&bS(te,this),this.Eg=a,a!==null&&b&&a.Bg===void 0&&(a.Bg=new Yi),te!==null&&b&&Gv(te,this),a!==null&&(this.qn||a.complete===!0?(a.hn&&(a.ln instanceof Event&&this.Hd!==null?this.Hd(this,a.ln):a.sq===!0&&!a.ln&&this.Zg!==null&&a.eu&&this.Zg(this,a.eu)),a.sq=!0,this.desiredSize.w()||(Mc(this,!1),this.v())):b&&hw(this,a)),this.g("element",x,a),this.N()}}},source:{get:function(){return this.qo},set:function(a){var x=this.qo;if(x!==a){this.Uc=!0,this.qo=a;var b=af;if(zu){var te=null;if(b[a]!==void 0)te=b[a];else if(a!==""){30<Yr&&(wu(),b=af),te=pa("img"),te.hn=!0,hw(this,te);var re=this.rl;re!==null&&(te.crossOrigin=re(this)),te.src=a,b[a]=te,Yr++}this.element=te,te!==null&&te.__goCache===void 0&&(te.__goCache=new yn),this.v(),this.N()}this.g("source",x,a)}}},sourceCrossOrigin:{get:function(){return this.rl},set:function(a){if(this.rl!==a&&(this.rl=a,this.element!==null)){var x=this.element.getAttribute("src");a===null&&typeof x=="string"?this.element.crossOrigin=null:a!==null&&(this.element.crossOrigin=a(this)),this.element.src=x}}},sourceRect:{get:function(){return this.Xg},set:function(a){var x=this.Xg;x.D(a)||(this.Xg=a=a.J(),this.N(),this.g("sourceRect",x,a))}},imageStretch:{get:function(){return this.Nk},set:function(a){var x=this.Nk;x!==a&&(this.Nk=a,this.N(),this.g("imageStretch",x,a))}},flip:{get:function(){return this.Xf},set:function(a){var x=this.Xf;x!==a&&(this.Xf=a,this.N(),this.g("flip",x,a))}},imageAlignment:{get:function(){return this.Mk},set:function(a){var x=this.Mk;x.D(a)||(this.Mk=a=a.J(),this.N(),this.g("imageAlignment",x,a))}},errorFunction:{get:function(){return this.Hd},set:function(a){var x=this.Hd;x!==a&&(this.Hd=a,this.g("errorFunction",x,a))}},successFunction:{get:function(){return this.Zg},set:function(a){var x=this.Zg;x!==a&&(this.Zg=a,this.g("successFunction",x,a))}},naturalBounds:{get:function(){return this.dc}}}),Wd.prototype.redraw=Wd.prototype.redraw,Wd.prototype.reloadSource=Wd.prototype.hA;var Yr=0,Bf=4;Wd.className="Picture",af=new Fa,Wd.clearCache=wu;function yn(){this.gi=null}function FC(a,x,b,te,re){a.gi===null&&(a.gi=[]);var oe=new xh(null),le=oe.context,fe=1/x;oe.width=b/x,oe.height=te/x,oe.width!==0&&oe.height!==0&&(x=new o2(oe.Oa,x),b=1,0<a.gi.length&&(b=a.gi[a.gi.length-1],re=b.source,b=b.ratio),le.setTransform(fe*b,0,0,fe*b,0,0),le.yc(),le.drawImage(re,0,0),a.gi.push(x))}yn.className="PictureCacheArray";function o2(a,x){this.source=a,this.ratio=x}o2.className="PictureCacheInstance";function nu(){this.os=new ai,this.mc=null}nu.prototype.reset=function(a){a!==null?(a.ka(),this.os=a,a.figures.clear()):this.os=new ai,this.mc=null};function fA(a,x,b,te,re,oe){a.mc=new ku,a.mc.startX=x,a.mc.startY=b,a.mc.isFilled=te,a.mc.isEvenOdd=oe||!1,a.os.figures.add(a.mc),re!==void 0&&(a.mc.isShadowed=re)}function s2(a){var x=a.mc.segments.length;0<x&&a.mc.segments.M(x-1).close()}nu.prototype.moveTo=function(a,x,b){b===void 0&&(b=!1);var te=new $s(Au);te.endX=a,te.endY=x,b&&te.close(),this.mc.segments.add(te)},nu.prototype.lineTo=function(a,x,b){b===void 0&&(b=!1);var te=new $s(tl);te.endX=a,te.endY=x,b&&te.close(),this.mc.segments.add(te)};function _0(a,x,b,te,re,oe,le){var fe;fe===void 0&&(fe=!1);var ge=new $s(Yu);ge.point1X=x,ge.point1Y=b,ge.point2X=te,ge.point2Y=re,ge.endX=oe,ge.endY=le,fe&&ge.close(),a.mc.segments.add(ge)}function sy(a,x,b,te,re){var oe;oe===void 0&&(oe=!1);var le=new $s(Ch);le.point1X=x,le.point1Y=b,le.endX=te,le.endY=re,oe&&le.close(),a.mc.segments.add(le)}nu.prototype.arcTo=function(a,x,b,te,re,oe,le){oe===void 0&&(oe=0),le===void 0&&(le=!1);var fe=new $s(Du);fe.startAngle=a,fe.sweepAngle=x,fe.centerX=b,fe.centerY=te,fe.radiusX=re,fe.radiusY=oe!==0?oe:re,le&&fe.close(),this.mc.segments.add(fe)};function WS(a,x,b,te,re,oe,le,fe){var ge;ge===void 0&&(ge=!1),x=new $s(Eh,le,fe,x,b,te,re,oe),ge&&x.close(),a.mc.segments.add(x)}function a2(a){var x=QS;return x!==null?(QS=null,x.reset(a),x):(x=new nu,x.reset(a),x)}var QS=null;nu.className="StreamGeometryContext";function vc(a,x){var b=a.toLowerCase(),te=_t.Ze;te[a]=x,te[b]=a}vc("Rectangle",function(a,x,b){a="r"+x+","+b;var te=_t.Mf[a];return te!==void 0||(te=new ai(ai.u),te.endX=x,te.endY=b,_t.Nf<_t.vm&&(_t.Mf[a]=te,_t.Nf++)),te}),vc("Square",function(a,x,b){a="s"+x+","+b;var te=_t.Mf[a];return te!==void 0||(te=new ai(ai.u),te.endX=x,te.endY=b,te.defaultStretch=jr,_t.Nf<_t.vm&&(_t.Mf[a]=te,_t.Nf++)),te}),vc("RoundedRectangle",function(a,x,b){a=a?a.parameter1:NaN,(isNaN(a)||0>a)&&(a=5),a=Math.min(a,x/3),a=Math.min(a,b/3);var te="rr"+x+","+b+","+a,re=_t.Mf[te];if(re!==void 0)return re;var oe=a*_t.wg;return re=new ai().add(new ku(a,0,!0).add(new $s(tl,x-a,0)).add(new $s(Yu,x,a,x-oe,0,x,oe)).add(new $s(tl,x,b-a)).add(new $s(Yu,x-a,b,x,b-oe,x-oe,b)).add(new $s(tl,a,b)).add(new $s(Yu,0,b-a,oe,b,0,b-oe)).add(new $s(tl,0,a)).add(new $s(Yu,a,0,0,oe,oe,0).close())),1<oe&&(re.spot1=new Ii(0,0,oe,oe),re.spot2=new Ii(1,1,-oe,-oe)),_t.Nf<_t.vm&&(_t.Mf[te]=re,_t.Nf++),re}),vc("Border","RoundedRectangle"),vc("Ellipse",function(a,x,b){a="e"+x+","+b;var te=_t.Mf[a];return te!==void 0||(te=new ai(ai.F),te.endX=x,te.endY=b,te.spot1=bl,te.spot2=mu,_t.Nf<_t.vm&&(_t.Mf[a]=te,_t.Nf++)),te}),vc("Circle",function(a,x,b){a="c"+x+","+b;var te=_t.Mf[a];return te!==void 0||(te=new ai(ai.F),te.endX=x,te.endY=b,te.spot1=bl,te.spot2=mu,te.defaultStretch=jr,_t.Nf<_t.vm&&(_t.Mf[a]=te,_t.Nf++)),te}),vc("TriangleRight",function(a,x,b){return new ai().add(new ku(0,0).add(new $s(tl,x,.5*b)).add(new $s(tl,0,b).close())).pm(0,.25,.5,.75)}),vc("TriangleDown",function(a,x,b){return new ai().add(new ku(0,0).add(new $s(tl,x,0)).add(new $s(tl,.5*x,b).close())).pm(.25,0,.75,.5)}),vc("TriangleLeft",function(a,x,b){return new ai().add(new ku(x,b).add(new $s(tl,0,.5*b)).add(new $s(tl,x,0).close())).pm(.5,.25,1,.75)}),vc("TriangleUp",function(a,x,b){return new ai().add(new ku(x,b).add(new $s(tl,0,b)).add(new $s(tl,.5*x,0).close())).pm(.25,.5,.75,1)}),vc("Triangle","TriangleUp"),vc("Diamond",function(a,x,b){return new ai().add(new ku(.5*x,0).add(new $s(tl,0,.5*b)).add(new $s(tl,.5*x,b)).add(new $s(tl,x,.5*b).close())).pm(.25,.25,.75,.75)}),vc("LineH",function(a,x,b){return a=new ai(ai.j),a.startX=0,a.startY=b/2,a.endX=x,a.endY=b/2,a}),vc("LineV",function(a,x,b){return a=new ai(ai.j),a.startX=x/2,a.startY=0,a.endX=x/2,a.endY=b,a}),vc("None","Rectangle"),vc("BarH","Rectangle"),vc("BarV","Rectangle"),vc("MinusLine","LineH"),vc("PlusLine",function(a,x,b){return new ai().add(new ku(0,b/2,!1).add(new $s(tl,x,b/2)).add(new $s(Au,x/2,0)).add(new $s(tl,x/2,b)))}),vc("XLine",function(a,x,b){return new ai().add(new ku(0,b,!1).add(new $s(tl,x,0)).add(new $s(Au,0,0)).add(new $s(tl,x,b)))}),vc("LineRight",function(a,x,b){return new ai().add(new ku(.25*x,0,!1).add(new $s(tl,.75*x,.5*b)).add(new $s(tl,.25*x,b)))}),vc("LineDown",function(a,x,b){return new ai().add(new ku(0,.25*b,!1).add(new $s(tl,.5*x,.75*b)).add(new $s(tl,x,.25*b)))}),vc("LineLeft",function(a,x,b){return new ai().add(new ku(.75*x,0,!1).add(new $s(tl,.25*x,.5*b)).add(new $s(tl,.75*x,b)))}),vc("LineUp",function(a,x,b){return new ai().add(new ku(0,.75*b,!1).add(new $s(tl,.5*x,.25*b)).add(new $s(tl,x,.75*b)))}),_t.um={"":"",Standard:"F1 m 0,0 l 8,4 -8,4 2,-4 z",Backward:"F1 m 8,0 l -2,4 2,4 -8,-4 z",Triangle:"F1 m 0,0 l 8,4.62 -8,4.62 z",BackwardTriangle:"F1 m 8,4 l 0,4 -8,-4 8,-4 0,4 z",Boomerang:"F1 m 0,0 l 8,4 -8,4 4,-4 -4,-4 z",BackwardBoomerang:"F1 m 8,0 l -8,4 8,4 -4,-4 4,-4 z",SidewaysV:"m 0,0 l 8,4 -8,4 0,-1 6,-3 -6,-3 0,-1 z",BackwardV:"m 8,0 l -8,4 8,4 0,-1 -6,-3 6,-3 0,-1 z",OpenTriangle:"m 0,0 l 8,4 -8,4",BackwardOpenTriangle:"m 8,0 l -8,4 8,4",OpenTriangleLine:"m 0,0 l 8,4 -8,4 m 8.5,0 l 0,-8",BackwardOpenTriangleLine:"m 8,0 l -8,4 8,4 m -8.5,0 l 0,-8",OpenTriangleTop:"m 0,0 l 8,4 m 0,4",BackwardOpenTriangleTop:"m 8,0 l -8,4 m 0,4",OpenTriangleBottom:"m 0,8 l 8,-4",BackwardOpenTriangleBottom:"m 0,4 l 8,4",HalfTriangleTop:"F1 m 0,0 l 0,4 8,0 z m 0,8",BackwardHalfTriangleTop:"F1 m 8,0 l 0,4 -8,0 z m 0,8",HalfTriangleBottom:"F1 m 0,4 l 0,4 8,-4 z",BackwardHalfTriangleBottom:"F1 m 8,4 l 0,4 -8,-4 z",ForwardSemiCircle:"m 4,0 b 270 180 0 4 4",BackwardSemiCircle:"m 4,8 b 90 180 0 -4 4",Feather:"m 0,0 l 3,4 -3,4",BackwardFeather:"m 3,0 l -3,4 3,4",DoubleFeathers:"m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4",BackwardDoubleFeathers:"m 3,0 l -3,4 3,4 m 3,-8 l -3,4 3,4",TripleFeathers:"m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4 m 3,-8 l 3,4 -3,4",BackwardTripleFeathers:"m 3,0 l -3,4 3,4 m 3,-8 l -3,4 3,4 m 3,-8 l -3,4 3,4",ForwardSlash:"m 0,8 l 5,-8",BackSlash:"m 0,0 l 5,8",DoubleForwardSlash:"m 0,8 l 4,-8 m -2,8 l 4,-8",DoubleBackSlash:"m 0,0 l 4,8 m -2,-8 l 4,8",TripleForwardSlash:"m 0,8 l 4,-8 m -2,8 l 4,-8 m -2,8 l 4,-8",TripleBackSlash:"m 0,0 l 4,8 m -2,-8 l 4,8 m -2,-8 l 4,8",Fork:"m 0,4 l 8,0 m -8,0 l 8,-4 m -8,4 l 8,4",BackwardFork:"m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4",LineFork:"m 0,0 l 0,8 m 0,-4 l 8,0 m -8,0 l 8,-4 m -8,4 l 8,4",BackwardLineFork:"m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4 m 8,-8 l 0,8",CircleFork:"F1 m 6,4 b 0 360 -3 0 3 z m 0,0 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4",BackwardCircleFork:"F1 m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 m 6,0 b 0 360 -3 0 3",CircleLineFork:"F1 m 6,4 b 0 360 -3 0 3 z m 1,-4 l 0,8 m 0,-4 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4",BackwardCircleLineFork:"F1 m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 m 0,-4 l 0,8 m 7,-4 b 0 360 -3 0 3",Circle:"F1 m 8,4 b 0 360 -4 0 4 z",Block:"F1 m 0,0 l 0,8 8,0 0,-8 z",StretchedDiamond:"F1 m 0,3 l 5,-3 5,3 -5,3 -5,-3 z",Diamond:"F1 m 0,4 l 4,-4 4,4 -4,4 -4,-4 z",Chevron:"F1 m 0,0 l 5,0 3,4 -3,4 -5,0 3,-4 -3,-4 z",StretchedChevron:"F1 m 0,0 l 8,0 3,4 -3,4 -8,0 3,-4 -3,-4 z",NormalArrow:"F1 m 0,2 l 4,0 0,-2 4,4 -4,4 0,-2 -4,0 z",X:"m 0,0 l 8,8 m 0,-8 l -8,8",TailedNormalArrow:"F1 m 0,0 l 2,0 1,2 3,0 0,-2 2,4 -2,4 0,-2 -3,0 -1,2 -2,0 1,-4 -1,-4 z",DoubleTriangle:"F1 m 0,0 l 4,4 -4,4 0,-8 z m 4,0 l 4,4 -4,4 0,-8 z",BigEndArrow:"F1 m 0,0 l 5,2 0,-2 3,4 -3,4 0,-2 -5,2 0,-8 z",ConcaveTailArrow:"F1 m 0,2 h 4 v -2 l 4,4 -4,4 v -2 h -4 l 2,-2 -2,-2 z",RoundedTriangle:"F1 m 0,1 a 1,1 0 0 1 1,-1 l 7,3 a 0.5,1 0 0 1 0,2 l -7,3 a 1,1 0 0 1 -1,-1 l 0,-6 z",SimpleArrow:"F1 m 1,2 l -1,-2 2,0 1,2 -1,2 -2,0 1,-2 5,0 0,-2 2,2 -2,2 0,-2 z",AccelerationArrow:"F1 m 0,0 l 0,8 0.2,0 0,-8 -0.2,0 z m 2,0 l 0,8 1,0 0,-8 -1,0 z m 3,0 l 2,0 2,4 -2,4 -2,0 0,-8 z",BoxArrow:"F1 m 0,0 l 4,0 0,2 2,0 0,-2 2,4 -2,4 0,-2 -2,0 0,2 -4,0 0,-8 z",TriangleLine:"F1 m 8,4 l -8,-4 0,8 8,-4 z m 0.5,4 l 0,-8",CircleEndedArrow:"F1 m 10,4 l -2,-3 0,2 -2,0 0,2 2,0 0,2 2,-3 z m -4,0 b 0 360 -3 0 3 z",DynamicWidthArrow:"F1 m 0,3 l 2,0 2,-1 2,-2 2,4 -2,4 -2,-2 -2,-1 -2,0 0,-2 z",EquilibriumArrow:"m 0,3 l 8,0 -3,-3 m 3,5 l -8,0 3,3",FastForward:"F1 m 0,0 l 3.5,4 0,-4 3.5,4 0,-4 1,0 0,8 -1,0 0,-4 -3.5,4 0,-4 -3.5,4 0,-8 z",Kite:"F1 m 0,4 l 2,-4 6,4 -6,4 -2,-4 z",HalfArrowTop:"F1 m 0,0 l 4,4 4,0 -8,-4 z m 0,8",HalfArrowBottom:"F1 m 0,8 l 4,-4 4,0 -8,4 z",OpposingDirectionDoubleArrow:"F1 m 0,4 l 2,-4 0,2 4,0 0,-2 2,4 -2,4 0,-2 -4,0 0,2 -2,-4 z",PartialDoubleTriangle:"F1 m 0,0 4,3 0,-3 4,4 -4,4 0,-3 -4,3 0,-8 z",LineCircle:"F1 m 0,0 l 0,8 m 7 -4 b 0 360 -3 0 3 z",DoubleLineCircle:"F1 m 0,0 l 0,8 m 2,-8 l 0,8 m 7 -4 b 0 360 -3 0 3 z",TripleLineCircle:"F1 m 0,0 l 0,8 m 2,-8 l 0,8 m 2,-8 l 0,8 m 7 -4 b 0 360 -3 0 3 z",CircleLine:"F1 m 6 4 b 0 360 -3 0 3 z m 1,-4 l 0,8",DiamondCircle:"F1 m 8,4 l -4,4 -4,-4 4,-4 4,4 m 8,0 b 0 360 -4 0 4 z",PlusCircle:"F1 m 8,4 b 0 360 -4 0 4 l -8 0 z m -4 -4 l 0 8",OpenRightTriangleTop:"m 8,0 l 0,4 -8,0 m 0,4",OpenRightTriangleBottom:"m 8,8 l 0,-4 -8,0",Line:"m 0,0 l 0,8",DoubleLine:"m 0,0 l 0,8 m 2,0 l 0,-8",TripleLine:"m 0,0 l 0,8 m 2,0 l 0,-8 m 2,0 l 0,8",PentagonArrow:"F1 m 8,4 l -4,-4 -4,0 0,8 4,0 4,-4 z"};function l2(){this.nc=!1,this.tr=this.Kp=this.zq=null,this.vr="",this.fr=this.oq=this.ur=null,this.hr="",this.gr=Qi,this.ir=null,this.jr="",this.lr=Bl,this.Gq="",this.Hq=Is,this.Pq=xr,this.Kq=Rr,this.Up=null,this.Cq=127,this.zr=po,this.yr="gray",this.Vg=4}l2.prototype.copy=function(){var a=new l2;return a.zq=this.zq,a.Kp=this.Kp,a.tr=this.tr,a.vr=this.vr,a.ur=this.ur,a.oq=this.oq,a.fr=this.fr,a.hr=this.hr,a.gr=this.gr.J(),a.ir=this.ir,a.jr=this.jr,a.lr=this.lr.J(),a.Gq=this.Gq,a.Hq=this.Hq.J(),a.Pq=this.Pq.J(),a.Kq=this.Kq.J(),a.Up=this.Up,a.Cq=this.Cq,a.zr=this.zr.J(),a.yr=this.yr,a.Vg=this.Vg,a};function mo(a,x){a===void 0||a instanceof lc||typeof a=="string"?Pi.call(this,a):(Pi.call(this),a&&(x=a)),this.G=2408959,this.Tf="",this.P=null,this.Jg="",this.Qf=this.Ug=null,this.ec="",this.Ah=this.Ig=null,this.ke=new it(NaN,NaN).freeze(),this.nf=null,this.Ao=NaN,this.vw=-1,this.py=new Yt,this.Rh=null,this.ag=NaN,x&&Object.assign(this,x)}vn(mo,Pi),mo.prototype.cloneProtected=function(a){Pi.prototype.cloneProtected.call(this,a),a.G=this.G&-4097|49152,a.Tf=this.Tf,this.P!==null&&(a.P=this.P.nc?this.P:this.P.copy()),a.Jg=this.Jg,a.Qf=null,a.ec=this.ec,a.ke.assign(this.ke),a.Ao=this.Ao},We=mo.prototype,We.Af=function(a){Pi.prototype.Af.call(this,a),a.oh(),a.Ug=null,a.nf=null,a.Rh=null},We.toString=function(){var a=Jo(this.constructor)+"#"+Pl(this);return this.data!==null&&(a+="("+da(this.data)+")"),a};function Qd(a){a.P===null?a.P=new l2:a.P.nc&&(a.P=a.P.copy())}We.th=function(){Pi.prototype.th.call(this),this.P!==null&&(this.P.nc=!0)},We.gk=function(a,x,b,te,re,oe,le){var fe=this.diagram;fe!==null&&(a===Ol&&x==="elements"?re instanceof Pi?Px(re,function(ge){GC(fe.partManager,ge),qy(fe,ge)}):Gv(fe,re):a===Ou&&x==="elements"&&(re instanceof Pi?Px(re,function(ge){g2(fe.partManager,ge,fe)}):bS(fe,re)),fe.cb(a,x,b,te,re,oe,le))},We.La=function(a){if(Pi.prototype.La.call(this,a),this.data!==null){for(var x=this.O.s,b=x.length,te=0;te<b;te++){var re=x[te];re instanceof Pi&&Px(re,function(oe){oe.data!==null&&oe.La()})}for(x=this.adornments;x.next();)x.value.La(a)}},mo.prototype.updateRelationshipsFromData=function(){var a;this.data!==null&&((a=this.diagram)===null||a===void 0||a.partManager.updateRelationshipsFromData(this))},mo.prototype.Pj=function(a){var x=this.Qf;return x===null?null:x.I(a)},mo.prototype.bh=function(a,x){if(x!==null){var b=null,te=this.Qf;if(te!==null&&(b=te.I(a)),b!==x){if(b!==null){var re=b.diagram;re!==null&&re.remove(b)}te===null&&(this.Qf=te=new kn),x.Tf!==a&&(x.category=a),te.add(a,x),a=this.diagram,a!==null&&(a.add(x),a=x.adornedObject,a!==null&&(a=a.ih(),a!==null&&(x.data=a.data)))}}},mo.prototype.Jf=function(a){var x=this.Qf;if(x!==null){var b=x.I(a);if(b!==null){var te=b.diagram;te!==null&&te.remove(b)}x.remove(a),x.count===0&&(this.Qf=null)}},mo.prototype.Ej=function(){var a=this.Qf;if(a!==null){var x=ys();for(a=a.iterator;a.next();)x.push(a.key);a=x.length;for(var b=0;b<a;b++)this.Jf(x[b]);As(x)}},mo.prototype.updateAdornments=function(){var a=this.diagram;if(a!==null){for(var x=this.adornments;x.next();){var b=x.value;b.v(),b.placeholder&&b.placeholder.v()}e:{if(this.isSelected&&this.selectionAdorned&&(x=this.selectionObject,x!==null&&this.actualBounds.w()&&this.isVisible()&&x.Ed()&&x.actualBounds.w())){if(b=this.Pj("Selection"),b===null){if(b=this.selectionAdornmentTemplate,b===null&&(b=this.ph()?a.linkSelectionAdornmentTemplate:this instanceof ts?a.groupSelectionAdornmentTemplate:a.nodeSelectionAdornmentTemplate),!(b instanceof Ca))break e;Yp(b),b=b.copy(),b!==null&&(this.ph()&&this.selectionObject===this.path&&(b.type=Pi.Link),b.adornedObject=x)}if(b!==null){b.type===Pi.Link&&b.v(),this.bh("Selection",b);break e}}this.Jf("Selection")}for(m5(this,a),x=this.adornments;x.next();)x.value.La()}},mo.prototype.Wb=function(){var a=this.diagram;a!==null&&(a.vd=!0,!(this.G&16384)&&(this.G|=16384))};function LC(a){a.G&16384&&(a.updateAdornments(),a.G&=-16385)}function m5(a,x){x.toolManager.mouseDownTools.each(function(b){b.isEnabled&&b.updateAdornments(a)}),x.toolManager.updateAdornments(a)}function IC(a){if(nh(a)===!1){Ul(a,!0),a.Uk();var x=a.diagram;x!==null&&(x.De.add(a),x.$b())}}function su(a){if(a.G|=2097152,nh(a)!==!1){var x=a.position,b=a.location;b.w()&&x.w()||y5(a,x,b),b=a.Ib;var te=Yt.alloc().assign(b);b.ka(),b.x=x.x,b.y=x.y,b.freeze(),a.Xl(te,b),Yt.free(te),Ul(a,!1)}}mo.prototype.Ge=function(a,x,b,te){var re=this.uc;re.h(a,x,b,te),this.Lb===null&&(this.Lb=new Br);var oe=this.Lb;oe.reset(),this.no(oe,a,x,b,te),this.Lb=oe,oe.ws()||oe.pp(re)},mo.prototype.no=function(a,x,b,te,re){if(this.Ca!==1&&a.scale(this.Ca),this.Kb!==0){var oe=eo;this.locationSpot.sb()&&(oe=this.locationSpot);var le=it.alloc();if(this.locationObject!==this)for(x=this.locationObject,b=x.naturalBounds,le.yi(b.x,b.y,b.width,b.height,oe),x.Lb!==null&&x.Lb.Ga(le),le.offset(-x.measuredBounds.x,-x.measuredBounds.y),oe=x.panel;oe!==null&&oe!==this;)oe.Lb!==null&&oe.Lb.Ga(le),le.offset(-oe.measuredBounds.x,-oe.measuredBounds.y),oe=oe.panel;else le.yi(x,b,te,re,oe);a.rotate(this.Kb,le.x,le.y),it.free(le)}},mo.prototype.move=function(a,x){x===!0?this.location=a:this.position=a},mo.prototype.moveTo=function(a,x,b){a=it.allocAt(a,x),this.move(a,b),it.free(a)},mo.prototype.isVisible=function(){if(!this.visible)return!1;var a=this.layer;if(a!==null){if(!a.visible)return!1;if(a=a.diagram,a!==null&&a.animationManager.fv(this))return!0}return a=this.containingGroup,!!(a===null||a.isSubGraphExpanded&&a.isVisible())},mo.prototype.Zb=function(a){var x=this.diagram;a?(this.C(4),this.Wb(),x!==null&&x.De.add(this)):(this.C(8),this.Ej()),this.oh(),x!==null&&(x.Ya(),x.N())},mo.prototype.fb=function(a){if(this.name===a)return this;var x=this.Rh;if(x===null&&(this.Rh=x=new kn),x.I(a)!==null)return x.I(a);var b=Pi.prototype.fb.call(this,a);return b!==null?(x.set(a,b),b):(x.set(a,null),null)};function Qf(a,x,b,te){te===void 0&&(te=new it),b=b.Mc()?eo:b;var re=x.naturalBounds;if(te.h(re.width*b.x+b.offsetX,re.height*b.y+b.offsetY),x===null||x===a)return te;for(x.transform.Ga(te),x=x.panel;x!==null&&x!==a;)x.transform.Ga(te),x=x.panel;return a.Lb!==null&&a.Lb.Ga(te),te.offset(-a.uc.x,-a.uc.y),te}mo.prototype.mi=function(a){return a===void 0&&(a=new Yt),a.assign(this.actualBounds)},mo.prototype.Va=function(){this.measure(1/0,1/0),this.arrange()};function Tx(a){var x=it.alloc(),b=a.locationObject,te=b.naturalBounds,re=b instanceof xs?b.strokeWidth:0;if(x.yi(0,0,te.width+re,te.height+re,a.locationSpot),b!==a)for(x.offset(-re/2,-re/2),b.transform.Ga(x),b=b.panel;b!==null&&b!==a;)b.transform.Ga(x),b=b.panel;return a.Lb!==null&&a.Lb.Ga(x),x.offset(-a.uc.x,-a.uc.y),x}function hm(a,x){var b=a.py;isNaN(a.ag)&&(a.ag=t3(a));var te=a.ag,re=2*te;if(!a.isShadowed)return b.h(x.x-1-te,x.y-1-te,x.width+2+re,x.height+2+re),b;te=x.x,re=x.y;var oe=x.width;x=x.height;var le=a.shadowBlur;return a=a.shadowOffset,oe+=le,x+=le,te-=le/2,re-=le/2,0<a.x?oe+=a.x:(te+=a.x,oe-=a.x),0<a.y?x+=a.y:(re+=a.y,x-=a.y),b.h(te-1,re-1,oe+2,x+2),b}mo.prototype.arrange=function(){if(Xh(this)===!1)su(this);else{ud(this,!1);var a=this.Ib,x=Yt.alloc();x.assign(a);var b=Kp(this);this.eh(0,0,this.uc.width,this.uc.height);var te=this.position;y5(this,te,this.location),a.ka(),a.x=te.x,a.y=te.y,a.freeze(),this.Xl(x,a),x.D(a)?this.Fd(b):!this.Zc()||_t.B(x.width,a.width)&&_t.B(x.height,a.height)||0<=this.vw&&this.C(16),Yt.free(x),Ul(this,!1)}},We=mo.prototype,We.Xl=function(a,x){var b=this.diagram;if(b!==null){var te=!1;if(b.Zi===!1&&a.w()){var re=Yt.alloc();re.assign(b.documentBounds),re.Fv(b.padding),a.x>re.x&&a.y>re.y&&a.right<re.right&&a.bottom<re.bottom&&x.x>re.x&&x.y>re.y&&x.right<re.right&&x.bottom<re.bottom&&(te=!0),Yt.free(re)}!(this.G&65536)&&a.D(x)||A5(this,te,b),b.N(),!a.w()&&!x.w()||lr(a,x)||(this instanceof ar&&!b.undoManager.isUndoingRedoing&&this.Bd(),this.oh())}},We.zv=function(a,x,b){if(this.ph()||!a.w())return!1;var te=this.diagram;return te!==null&&v5(this,te,a,x,b),this.pa=a,this.G&=-2097153,!this.ke.w()||te!==null&&!te.animationManager.isTicking&&te.undoManager.isUndoingRedoing||(te=this.ke,this.ke=new it(te.x+(a.x-x),te.y+(a.y-b)),this.g("location",te,this.ke.copy())),nh(this)===!1&&Xh(this)===!1&&(IC(this),su(this)),!0};function v5(a,x,b,te,re){x===null||a instanceof Ca||(x=x.animationManager,x.zb&&ca(x,a,new it(te,re),b))}We.mm=function(a,x,b){var te=this.ke,re=this.pa;if(b){if(te.x===a&&te.y===x)return;nh(this)||Xh(this)?re.h(NaN,NaN):re.h(re.x+a-te.x,re.y+x-te.y),te.h(a,x)}else{if(re.x===a&&re.y===x)return;te.h(te.x+a-re.x,te.y+x-re.y),re.h(a,x)}IC(this)},We.Av=function(){this.G&=-2097153,IC(this)};function y5(a,x,b){var te=Tx(a),re=a.diagram,oe=b.w(),le=x.w();oe&&le?a.G&2097152?pA(a,x,b,re,te):kC(a,x,b,re,te):oe?pA(a,x,b,re,te):le&&kC(a,x,b,re,te),a.G|=2097152,it.free(te),a.Uk()}function pA(a,x,b,te,re){var oe=x.x,le=x.y;x.h(b.x-re.x,b.y-re.y),te!==null&&(b=te.animationManager,(te=b.defaultAnimation.isAnimating)||!b.zb||a instanceof Ca||ca(b,a,new it(oe,le),x),te||x.x===oe&&x.y===le||a.g("position",new it(oe,le),x.copy()))}function kC(a,x,b,te,re){var oe=b.copy();b.h(x.x+re.x,x.y+re.y),b.D(oe)||te===null||a.g("location",oe,b.copy())}function A5(a,x,b){p0(a,!1),a instanceof ar&&W0(b,a),a.layer.isTemporary||x||b.Ya(),x=a.Ib;var te=b.viewportBounds;te.w()?Kp(a)?(Mr(x,te)||a.Fd(!1),a.updateAdornments()):a.isVisible()&&x.Yc(te)?(a.Fd(!0),a.updateAdornments()):a.Wb():b.vd=!0}We.si=function(){return!0},We.Zc=function(){return!0},We.ph=function(){return!1},We.Dd=function(){return!0};function ZS(a,x,b,te){x.constructor===a.constructor||Im||(Im=!0,al('Should not change the class of the Part when changing category from "'+b+'" to "'+te+'"'),al(" Old class: "+Jo(a.constructor)+", new class: "+Jo(x.constructor)+", part: "+a.toString())),a.Ej();var re=a.data;b=a.layerName;var oe=a.isSelected,le=a.isHighlighted,fe=!0,ge=!0,ye=!1;a instanceof ar&&(fe=a.isTreeLeaf,ge=a.isTreeExpanded,ye=a.wasTreeExpanded),x.Af(a),x.cloneProtected(a),a.Tf=te,a.svg!==null&&(a.svg.remove(),a.svg=null,a.Uc=!0),a.v(),a.N(),x=a.diagram,te=!0,x!==null&&(te=x.skipsUndoManager,x.skipsUndoManager=!0),a.ub=re,a.G=oe?a.G|4096:a.G&-4097,a.G=le?a.G|524288:a.G&-524289,a instanceof ar&&(a.U=fe?a.U|4:a.U&-5,a.U=ge?a.U|1:a.U&-2,a.U=ye?a.U|2:a.U&-3),re!==null&&a.La(),re=a.layerName,re!==b&&(a.Jg=b,a.layerName=re),x!==null&&(x.skipsUndoManager=te),a.Zc()&&a.C(64)}mo.prototype.canCopy=function(){if(!this.copyable)return!1;var a=this.layer;return a===null?!0:a.allowCopy?(a=a.diagram,a===null?!0:!!a.allowCopy):!1},mo.prototype.canDelete=function(){if(!this.deletable)return!1;var a=this.layer;return a===null?!0:a.allowDelete?(a=a.diagram,a===null?!0:!!a.allowDelete):!1},mo.prototype.canEdit=function(){if(!this.textEditable)return!1;var a=this.layer;return a===null?!0:a.allowTextEdit?(a=a.diagram,a===null?!0:!!a.allowTextEdit):!1},mo.prototype.canGroup=function(){if(!this.groupable)return!1;var a=this.layer;return a===null?!0:a.allowGroup?(a=a.diagram,a===null?!0:!!a.allowGroup):!1},mo.prototype.canMove=function(){if(!this.movable)return!1;var a=this.layer;return a===null?!0:a.allowMove?(a=a.diagram,a===null?!0:!!a.allowMove):!1},mo.prototype.canReshape=function(){if(!this.reshapable)return!1;var a=this.layer;return a===null?!0:a.allowReshape?(a=a.diagram,a===null?!0:!!a.allowReshape):!1},mo.prototype.canResize=function(){if(!this.resizable)return!1;var a=this.layer;return a===null?!0:a.allowResize?(a=a.diagram,a===null?!0:!!a.allowResize):!1},mo.prototype.canRotate=function(){if(!this.rotatable)return!1;var a=this.layer;return a===null?!0:a.allowRotate?(a=a.diagram,a===null?!0:!!a.allowRotate):!1},mo.prototype.canSelect=function(){if(!this.selectable)return!1;var a=this.layer;return a===null?!0:a.allowSelect?(a=a.diagram,a===null?!0:!!a.allowSelect):!1};function nh(a){return(a.G&32768)!==0}function Ul(a,x){a.G=x?a.G|32768:a.G&-32769}function p0(a,x){a.G=x?a.G|65536:a.G&-65537}function Kp(a){return(a.G&131072)!==0}We=mo.prototype,We.Fd=function(a){this.G=a?this.G|131072:this.G&-131073};function Dx(a,x){a.G=x?a.G|1048576:a.G&-1048577}We.oh=function(){var a=this.containingGroup;a!==null&&(a.v(),a.placeholder!==null&&a.placeholder.v(),a.Bd())},We.N=function(){var a=this.diagram;a!==null&&!Xh(this)&&!nh(this)&&this.isVisible()&&this.Ib.w()&&a.N(hm(this,this.Ib))},We.v=function(){Pi.prototype.v.call(this);var a=this.diagram;a!==null&&(a.De.add(this),this instanceof ar&&this.labeledLink!==null&&ld(this.labeledLink),a.$b(!0))},We.Vo=function(a){a||(a=this.Ah,a!==null&&yA(a,this))},We.Wo=function(a){a||(a=this.Ah,a!==null&&Xa(a,this))},We.Lj=function(){var a=this.data;if(a!==null){var x=this.diagram;x!==null&&(x=x.model,x!==null&&x.cm(a))}},We.oz=function(){return x5(this,this)};function x5(a,x){var b=x.containingGroup;return b!==null?1+x5(a,b):x instanceof ar&&(x=x.labeledLink,x!==null)?x5(a,x):0}We.sz=function(){return OC(this,this)};function OC(a,x){var b=x.containingGroup;return b!==null||x instanceof ar&&(b=x.labeledLink,b!==null)?OC(a,b):x}We.Td=function(a){return a instanceof ts?w5(this,this,a):!1};function w5(a,x,b){if(x===b||b===null)return!1;var te=x.containingGroup;return te===null||te!==b&&!w5(a,te,b)?x instanceof ar&&(x=x.labeledLink,x!==null)?w5(a,x,b):!1:!0}We.px=function(a){if(a===null)return null;if(this===a)return this.containingGroup;for(var x=this;x!==null;){if(x instanceof ts&&Dx(x,!0),x instanceof ar){var b=x.labeledLink;b!==null&&(x=b)}x=x.containingGroup}for(b=null,x=a;x!==null;){if(x.G&1048576){b=x;break}x instanceof ar&&(a=x.labeledLink,a!==null&&(x=a)),x=x.containingGroup}for(x=this;x!==null;)x instanceof ts&&Dx(x,!1),x instanceof ar&&(a=x.labeledLink,a!==null&&(x=a)),x=x.containingGroup;return b},mo.prototype.canLayout=function(){if(!this.isLayoutPositioned||!this.isVisible())return!1;var a=this.layer;return!(a!==null&&a.isTemporary||this instanceof ar&&this.isLinkLabel)},mo.prototype.C=function(a){if(a===void 0&&(a=16777215),this.isLayoutPositioned&&a&this.layoutConditions){var x=this.layer;x!==null&&x.isTemporary||this instanceof ar&&this.isLinkLabel?x=!1:(x=this.diagram,x=!(x!==null&&x.undoManager.isUndoingRedoing))}else x=!1;if(x)if(x=this.Ah,x!==null){var b=x.layout;b!==null?b.C():x.C(a)}else a=this.diagram,a!==null&&(a=a.layout,a!==null&&a.C())};function Zf(a){return a.isVisible()?(a=a.layer,!(a!==null&&a.isTemporary)):!1}function Sp(a,x,b,te,re,oe){if(oe===void 0&&(oe=null),!(a.contains(x)||oe!==null&&!oe(x)||x instanceof Ca)){if(a.add(x),x instanceof ar){if(b&&x instanceof ts)for(var le=x.memberParts;le.next();)Sp(a,le.value,b,te,re,oe);if(re!==!1)for(le=x.linksConnected;le.next();){var fe=le.value;if(!a.contains(fe)){var ge=fe.fromNode,ye=fe.toNode;ge=ge===null||a.contains(ge),ye=ye===null||a.contains(ye),(re?ge&&ye:ge||ye)&&Sp(a,fe,b,te,re,oe)}}if(1<te)for(x=x.Ou();x.next();)Sp(a,x.value,b,te-1,re,oe)}else if(x instanceof Ui)for(x=x.labelNodes;x.next();)Sp(a,x.value,b,te,re,oe)}}pn.Object.defineProperties(mo.prototype,{key:{get:function(){var a=this.diagram;if(a!==null)return a.model.wa(this.data)}},adornments:{get:function(){return this.Qf===null?wl:this.Qf.iteratorValues}},layer:{get:function(){return this.Ig}},diagram:{get:function(){var a=this.Ig;return a==null?null:a.diagram}},layerName:{get:function(){return this.Jg},set:function(a){var x=this.Jg;if(x!==a){var b=this.diagram;if((b===null||b.Qj(a)!==null&&!b.partManager.addsToTemporaryLayer)&&(this.Jg=a,b!==null&&b.Ya(),this.g("layerName",x,a),x=this.layer,x!==null&&x.name!==a&&(b=x.diagram,b!==null&&(a=b.Qj(a),a!==null&&a!==x)))){var te=x.pc(-1,this,!0);if(0<=te&&b.cb(Ou,"parts",x,this,null,te,!0),te=a.oi(99999999,this,!0),x.visible!==a.visible&&this.Zb(a.visible),0<=te&&b.cb(Ol,"parts",a,null,this,!0,te),te=this.layerChanged,te!==null){var re=b.aa;b.aa=!0,te(this,x,a),b.aa=re}}}}},layerChanged:{get:function(){return this.P!==null?this.P.zq:null},set:function(a){var x=this.layerChanged;x!==a&&(Qd(this),this.P.zq=a,this.g("layerChanged",x,a))}},zOrder:{get:function(){return this.Ao},set:function(a){var x=this.Ao;if(x!==a){this.Ao=a;var b=this.layer;b!==null&&G1(b,-1,this),this.g("zOrder",x,a),a=this.diagram,a!==null&&a.N()}}},locationObject:{get:function(){if(this.nf===null){var a=this.locationObjectName;a!==""?(a=this.fb(a),a!==null?this.nf=a:this.nf=this):this instanceof Ca?this.type!==Pi.Link&&this.placeholder!==null?this.nf=this.placeholder:this.nf=this:this.nf=this}return this.nf.visible?this.nf:this}},minLocation:{get:function(){return this.P!==null?this.P.Pq:xr},set:function(a){var x=this.minLocation;x.D(a)||(a=a.J(),Qd(this),this.P.Pq=a,this.g("minLocation",x,a))}},maxLocation:{get:function(){return this.P!==null?this.P.Kq:Rr},set:function(a){var x=this.maxLocation;x.D(a)||(a=a.J(),Qd(this),this.P.Kq=a,this.g("maxLocation",x,a))}},locationObjectName:{get:function(){return this.P!==null?this.P.Gq:""},set:function(a){var x=this.locationObjectName;x!==a&&(Qd(this),this.P.Gq=a,this.nf=null,this.v(),this.g("locationObjectName",x,a))}},locationSpot:{get:function(){return this.P!==null?this.P.Hq:Is},set:function(a){var x=this.locationSpot;x.D(a)||(a=a.J(),Qd(this),this.P.Hq=a,this.v(),this.g("locationSpot",x,a))}},location:{get:function(){return this.ke},set:function(a){var x=a.x,b=a.y,te=this.ke;if(!(te.x===x||isNaN(te.x)&&isNaN(x))||!(te.y===b||isNaN(te.y)&&isNaN(b))){if(a=a.copy(),x=a,this.ph())x=!1;else{if(this.ke=x,this.G|=2097152,Xh(this)===!1&&(IC(this),b=this.pa,b.w())){var re=this.diagram;if(re===null||re.animationManager.isTicking||!re.undoManager.isUndoingRedoing){var oe=b.copy();b.h(b.x+(x.x-te.x),b.y+(x.y-te.y)),v5(this,re,b,oe.x,oe.y),this.g("position",oe,b.copy())}}x=!0}x&&this.g("location",te,a.copy())}}},category:{get:function(){return this.Tf},set:function(a){var x=this.Tf;if(x!==a){this.svg!==null&&(this.svg.remove(),this.Uc=!0);var b=this.diagram,te=this.data,re=null;if(b!==null&&te!==null&&!(this instanceof Ca)){var oe=b.model.undoManager;oe.isEnabled&&!oe.isUndoingRedoing&&(re=this.clone(),re.O.addAll(this.O))}this.Tf=a,this.g("category",x,a),b===null||te===null||this instanceof Ca?this instanceof Ca&&(re=this.adornedPart,re!==null&&(a=re.Qf,a!==null&&a.remove(x),re.bh(this.category,this))):(oe=b.model,oe.undoManager.isUndoingRedoing||(this.ph()?(b.partManager.setLinkCategoryForData(te,a),b=b.partManager.findLinkTemplateForCategory(a),b!==null&&(Yp(b),b=b.copy(),b!==null&&ZS(this,b,x,a))):(oe!==null&&oe.jm(te,a),b=Jp(b.partManager,te,a),b!==null&&(Yp(b),b=b.copy(),b===null||b instanceof Ui||(te=this.location.copy(),ZS(this,b,x,a),this.location.w()||(this.location=te)))),re!==null&&(x=this.clone(),x.O.addAll(this.O),this.g("self",re,x))))}}},self:{get:function(){return this},set:function(a){ZS(this,a,this.category,a.category)}},copyable:{get:function(){return(this.G&1)!==0},set:function(a){var x=(this.G&1)!==0;x!==a&&(this.G^=1,this.g("copyable",x,a))}},deletable:{get:function(){return(this.G&2)!==0},set:function(a){var x=(this.G&2)!==0;x!==a&&(this.G^=2,this.g("deletable",x,a))}},textEditable:{get:function(){return(this.G&4)!==0},set:function(a){var x=(this.G&4)!==0;x!==a&&(this.G^=4,this.g("textEditable",x,a),this.Wb())}},groupable:{get:function(){return(this.G&8)!==0},set:function(a){var x=(this.G&8)!==0;x!==a&&(this.G^=8,this.g("groupable",x,a))}},movable:{get:function(){return(this.G&16)!==0},set:function(a){var x=(this.G&16)!==0;x!==a&&(this.G^=16,this.g("movable",x,a))}},selectionAdorned:{get:function(){return(this.G&32)!==0},set:function(a){var x=(this.G&32)!==0;x!==a&&(this.G^=32,this.g("selectionAdorned",x,a),this.Wb())}},isInDocumentBounds:{get:function(){return(this.G&64)!==0},set:function(a){var x=(this.G&64)!==0;if(x!==a){this.G^=64;var b=this.diagram;b!==null&&b.Ya(),this.g("isInDocumentBounds",x,a)}}},isLayoutPositioned:{get:function(){return(this.G&128)!==0},set:function(a){var x=(this.G&128)!==0;x!==a&&(this.G^=128,this.g("isLayoutPositioned",x,a),this.C(a?4:8))}},selectable:{get:function(){return(this.G&256)!==0},set:function(a){var x=(this.G&256)!==0;x!==a&&(this.G^=256,this.g("selectable",x,a),this.Wb())}},reshapable:{get:function(){return(this.G&512)!==0},set:function(a){var x=(this.G&512)!==0;x!==a&&(this.G^=512,this.g("reshapable",x,a),this.Wb())}},resizable:{get:function(){return(this.G&1024)!==0},set:function(a){var x=(this.G&1024)!==0;x!==a&&(this.G^=1024,this.g("resizable",x,a),this.Wb())}},rotatable:{get:function(){return(this.G&2048)!==0},set:function(a){var x=(this.G&2048)!==0;x!==a&&(this.G^=2048,this.g("rotatable",x,a),this.Wb())}},isSelected:{get:function(){return(this.G&4096)!==0},set:function(a){var x=(this.G&4096)!==0;if(x!==a){var b=this.diagram;if(!a||this.canSelect()&&!(b!==null&&b.selection.count>=b.maxSelectionCount)){this.G^=4096;var te=!1;if(b!==null){te=b.skipsUndoManager,b.skipsUndoManager=!0;var re=b.selection;re.ka(),a?re.add(this):re.remove(this),re.freeze()}this.g("isSelected",x,a),this.Wb(),a=this.selectionChanged,a!==null&&a(this),b!==null&&(b.$b(),b.skipsUndoManager=te)}}}},isHighlighted:{get:function(){return(this.G&524288)!==0},set:function(a){var x=(this.G&524288)!==0;if(x!==a){this.G^=524288;var b=this.diagram;b!==null&&(b=b.highlighteds,b.ka(),a?b.add(this):b.remove(this),b.freeze()),this.g("isHighlighted",x,a),this.N(),a=this.highlightedChanged,a!==null&&a(this)}}},isShadowed:{get:function(){return(this.G&8192)!==0},set:function(a){var x=(this.G&8192)!==0;x!==a&&(this.G^=8192,this.Uc=!0,this.g("isShadowed",x,a),this.N())}},isAnimated:{get:function(){return(this.G&262144)!==0},set:function(a){var x=(this.G&262144)!==0;x!==a&&(this.G^=262144,this.g("isAnimated",x,a))}},highlightedChanged:{get:function(){return this.P!==null?this.P.oq:null},set:function(a){var x=this.highlightedChanged;x!==a&&(Qd(this),this.P.oq=a,this.g("highlightedChanged",x,a))}},selectionObjectName:{get:function(){return this.P!==null?this.P.vr:""},set:function(a){var x=this.selectionObjectName;x!==a&&(Qd(this),this.P.vr=a,this.Ug=null,this.g("selectionObjectName",x,a))}},selectionAdornmentTemplate:{get:function(){return this.P!==null?this.P.tr:null},set:function(a){var x=this.selectionAdornmentTemplate;x!==a&&(Qd(this),this.P.tr=a,this.g("selectionAdornmentTemplate",x,a))}},selectionObject:{get:function(){if(this.Ug===null){var a=this.selectionObjectName;a!==null&&a!==""?(a=this.fb(a),a!==null?this.Ug=a:this.Ug=this):this instanceof Ui?(a=this.path,a!==null?this.Ug=a:this.Ug=this):this.Ug=this}return this.Ug}},selectionChanged:{get:function(){return this.P!==null?this.P.ur:null},set:function(a){var x=this.selectionChanged;x!==a&&(Qd(this),this.P.ur=a,this.g("selectionChanged",x,a))}},resizeAdornmentTemplate:{get:function(){return this.P!==null?this.P.fr:null},set:function(a){var x=this.resizeAdornmentTemplate;x!==a&&(Qd(this),this.P.fr=a,this.g("resizeAdornmentTemplate",x,a))}},resizeObjectName:{get:function(){return this.P!==null?this.P.hr:""},set:function(a){var x=this.resizeObjectName;x!==a&&(Qd(this),this.P.hr=a,this.g("resizeObjectName",x,a))}},resizeObject:{get:function(){var a=this.resizeObjectName;return a!==""&&(a=this.fb(a),a!==null)?a:this}},resizeCellSize:{get:function(){return this.P!==null?this.P.gr:Qi},set:function(a){var x=this.resizeCellSize;x.D(a)||(a=a.J(),Qd(this),this.P.gr=a,this.g("resizeCellSize",x,a))}},rotateAdornmentTemplate:{get:function(){return this.P!==null?this.P.ir:null},set:function(a){var x=this.rotateAdornmentTemplate;x!==a&&(Qd(this),this.P.ir=a,this.g("rotateAdornmentTemplate",x,a))}},rotateObjectName:{get:function(){return this.P!==null?this.P.jr:""},set:function(a){var x=this.rotateObjectName;x!==a&&(Qd(this),this.P.jr=a,this.g("rotateObjectName",x,a))}},rotateObject:{get:function(){var a=this.rotateObjectName;return a!==""&&(a=this.fb(a),a!==null)?a:this}},rotationSpot:{get:function(){return this.P!==null?this.P.lr:Bl},set:function(a){var x=this.rotationSpot;x.D(a)||(a=a.J(),Qd(this),this.P.lr=a,this.g("rotationSpot",x,a))}},text:{get:function(){return this.ec},set:function(a){var x=this.ec;x!==a&&(this.ec=a,this.g("text",x,a))}},containingGroup:{get:function(){return this.Ah},set:function(a){if(this.Zc()){var x=this.Ah;if(x!==a){a===null||this!==a&&!a.Td(this)||(this===a&&hn("Cannot make a Group a member of itself: "+this.toString()),hn("Cannot make a Group indirectly contain itself: "+this.toString()+" already contains "+a.toString())),this.C(2);var b=this.diagram;if(x!==null?Xa(x,this):this instanceof ts&&b!==null&&b.ai.remove(this),this.Ah=a,a!==null?yA(a,this):this instanceof ts&&b!==null&&b.ai.add(this),this.C(1),b!==null&&b.aa){var te=this.data,re=b.model;if(te!==null&&re.Xj()){var oe=re.wa(a!==null?a.data:null);re.mp(te,oe)}}if(te=this.containingGroupChanged,te!==null&&(re=!0,b!==null&&(re=b.aa,b.aa=!0),te(this,x,a),b!==null&&(b.aa=re)),this instanceof ts){for(b=new Yi,Sp(b,this,!0,0,!0),b=b.iterator;b.next();)if(te=b.value,te instanceof ar)for(te=te.linksConnected;te.next();)dm(te.value)}if(this instanceof ar){for(b=this.linksConnected;b.next();)dm(b.value);b=this.labeledLink,b!==null&&dm(b)}this.g("containingGroup",x,a),a!==null&&(x=a.layer,x!==null&&G1(x,-1,a))}}else hn("cannot set the Part.containingGroup of a Link or Adornment")}},containingGroupChanged:{get:function(){return this.P!==null?this.P.Kp:null},set:function(a){var x=this.containingGroupChanged;x!==a&&(Qd(this),this.P.Kp=a,this.g("containingGroupChanged",x,a))}},isTopLevel:{get:function(){return!(this.containingGroup!==null||this instanceof ar&&this.labeledLink!==null)}},layoutConditions:{get:function(){return this.P!==null?this.P.Cq:127},set:function(a){var x=this.layoutConditions;x!==a&&(Qd(this),this.P.Cq=a,this.g("layoutConditions",x,a))}},dragComputation:{get:function(){return this.P!==null?this.P.Up:null},set:function(a){var x=this.dragComputation;x!==a&&(Qd(this),this.P.Up=a,this.g("dragComputation",x,a))}},shadowOffset:{get:function(){return this.P!==null?this.P.zr:po},set:function(a){var x=this.shadowOffset;x.D(a)||(a=a.J(),Qd(this),this.P.zr=a,this.N(),this.g("shadowOffset",x,a))}},shadowColor:{get:function(){return this.P!==null?this.P.yr:"gray"},set:function(a){var x=this.shadowColor;x!==a&&(Qd(this),this.P.yr=a,this.N(),this.g("shadowColor",x,a))}},shadowBlur:{get:function(){return this.P!==null?this.P.Vg:4},set:function(a){var x=this.shadowBlur;x!==a&&(Qd(this),this.P.Vg=a,this.N(),this.g("shadowBlur",x,a))}}}),mo.prototype.invalidateLayout=mo.prototype.C,mo.prototype.findCommonContainingGroup=mo.prototype.px,mo.prototype.isMemberOf=mo.prototype.Td,mo.prototype.findTopLevelPart=mo.prototype.sz,mo.prototype.findSubGraphLevel=mo.prototype.oz,mo.prototype.ensureBounds=mo.prototype.Va,mo.prototype.getDocumentBounds=mo.prototype.mi,mo.prototype.findObject=mo.prototype.fb,mo.prototype.moveTo=mo.prototype.moveTo,mo.prototype.invalidateAdornments=mo.prototype.Wb,mo.prototype.clearAdornments=mo.prototype.Ej,mo.prototype.removeAdornment=mo.prototype.Jf,mo.prototype.addAdornment=mo.prototype.bh,mo.prototype.findAdornment=mo.prototype.Pj,mo.prototype.updateTargetBindings=mo.prototype.La;var Im=!1;mo.className="Part",mo.LayoutNone=0,mo.LayoutAdded=1,mo.LayoutRemoved=2,mo.LayoutShown=4,mo.LayoutHidden=8,mo.LayoutNodeSized=16,mo.LayoutGroupLayout=32,mo.LayoutNodeReplaced=64,mo.LayoutStandard=127,mo.LayoutAll=16777215;function Ca(a,x){a===void 0||a instanceof lc||typeof a=="string"?mo.call(this,a):(mo.call(this),a&&(x=a)),this.G&=-257,this.Jg="Adornment",this.ue=null,this.Aw=0,this.Uw=!1,this.j=this.$a=null,x&&Object.assign(this,x)}vn(Ca,mo),Ca.prototype.toString=function(){var a=this.adornedPart;return"Adornment("+this.category+")"+(a!==null?a.toString():"")},Ca.prototype.updateRelationshipsFromData=function(){},Ca.prototype.Ul=function(a){var x=this.adornedObject,b=x==null?void 0:x.part;if(b instanceof Ui&&x instanceof xs){x=b.path,b.Ul(a),a=x.geometry,b=this.O.s,x=b.length;for(var te=0;te<x;te++){var re=b[te];re.isPanelMain&&re instanceof xs&&(re.ua=a)}}},Ca.prototype.si=function(){var a=this.ue;return a===null?!0:(a=a.part,a===null||!Xh(a))},Ca.prototype.Zc=function(){return!1},Ca.prototype.gk=function(a,x,b,te,re,oe,le){if(a===Ol&&x==="elements"){if(re instanceof bd)this.$a===null&&(this.$a=re);else if(re instanceof Pi){var fe=re.Nl(function(ge){return ge instanceof bd});fe instanceof bd&&this.$a===null&&(this.$a=fe)}}else a===Ou&&x==="elements"&&this.$a!==null&&(te===this.$a?this.$a=null:te instanceof Pi&&this.$a.rg(te)&&(this.$a=null));mo.prototype.gk.call(this,a,x,b,te,re,oe,le)},Ca.prototype.updateAdornments=function(){},Ca.prototype.Lj=function(){},pn.Object.defineProperties(Ca.prototype,{placeholder:{get:function(){return this.$a}},adornedObject:{get:function(){return this.ue},set:function(a){var x=this.adornedPart,b=null;a!==null&&(b=a.part),x===null||a!==null&&x===b||x.Jf(this.category),this.ue=a,b!==null&&b.bh(this.category,this)}},adornedPart:{get:function(){var a=this.ue;return a!==null?a.part:null}},containingGroup:{get:function(){return null}}}),Ca.className="Adornment";function gA(){this.nc=!1,this.Vr=this.gj=this.Eq=this.Dq=null,this.yp=Zs,this.er=fw,this.Kr=this.ij=this.Nq=this.Mq=null}gA.prototype.copy=function(){var a=new gA;return a.Dq=this.Dq,a.Eq=this.Eq,a.gj=this.gj,a.Vr=this.Vr,a.yp=this.yp.J(),a.er=this.er,a.Mq=this.Mq,a.Nq=this.Nq,a.ij=this.ij,a.Kr=this.Kr,a};function ar(a,x){a===void 0||a instanceof lc||typeof a=="string"?mo.call(this,a):(mo.call(this),a&&(x=a)),this.U=13,this.Ba=null,this.jb=new Zi,this.wc=this.af=this.Yk=null,this.ci=!1,x&&Object.assign(this,x)}vn(ar,mo),ar.prototype.cloneProtected=function(a){mo.prototype.cloneProtected.call(this,a),a.U=this.U,this.Ba!==null&&(a.Ba=this.Ba.nc?this.Ba:this.Ba.copy())},We=ar.prototype,We.Af=function(a){mo.prototype.Af.call(this,a),a.Bd(),a.af=this.af,a.wc=null};function gg(a){a.Ba===null?a.Ba=new gA:a.Ba.nc&&(a.Ba=a.Ba.copy())}We.th=function(){mo.prototype.th.call(this),this.Ba!==null&&(this.Ba.nc=!0)};function ay(a,x){x!==null&&(a.af===null&&(a.af=new Yi),a.af.add(x))}function ly(a,x,b,te){if(x===null||a.af===null)return null;for(var re=a.af.iterator;re.next();){var oe=re.value;if(oe.Ds===a&&oe.cv===x&&oe.Ox===b&&oe.Px===te||oe.Ds===x&&oe.cv===a&&oe.Ox===te&&oe.Px===b)return oe}return null}We.Lz=function(a,x,b){x==null&&(x=""),b==null&&(b=""),a=ly(this,a,x,b),a!==null&&a.Sl()},We.gk=function(a,x,b,te,re,oe,le){a===Ol&&x==="elements"?this.wc=null:a===Ou&&x==="elements"&&(this.wc=null),mo.prototype.gk.call(this,a,x,b,te,re,oe,le)},We.Bd=function(a){for(var x=this.linksConnected;x.next();){var b=x.value;a!==void 0&&a.contains(b)||(dd(b.fromPort),dd(b.toPort),b.bb())}};function mA(a,x){for(a=a.linksConnected;a.next();){var b=a.value;(b.fromPort===x||b.toPort===x)&&(dd(b.fromPort),dd(b.toPort),b.bb())}}function dd(a){if(a!==null){var x=a.Zn;x!==null&&x.Sl(),a=a.part,x=a.containingGroup,x===null||a.isVisible()||dd(x.port)}}We.si=function(){return!0},ar.prototype.getAvoidableRect=function(a){return a.set(this.actualBounds),a.Co(this.avoidableMargin),a},ar.prototype.findVisibleNode=function(){for(var a=this;a!==null&&!a.isVisible();)a=a.containingGroup;return a},ar.prototype.isVisible=function(){if(!mo.prototype.isVisible.call(this))return!1;var a=!0,x=jf,b=this.diagram;if(b!==null&&(a=b.isTreePathToChildren,x=b.treeCollapsePolicy),x===jf){if(a=this.pg(),a!==null&&!a.isTreeExpanded)return!1}else if(x===xc){if(a=a?this.Oo():this.Po(),0<a.count&&a.all(function(te){return!te.isTreeExpanded}))return!1}else if(x===eA&&(a=a?this.Oo():this.Po(),0<a.count&&a.any(function(te){return!te.isTreeExpanded})))return!1;return a=this.labeledLink,a!==null?a.isVisible():!0},ar.prototype.Zb=function(a){mo.prototype.Zb.call(this,a);for(var x=this.linksConnected;x.next();){var b=x.value;if(a&&this.containingGroup!==null){var te=b.To(this);te===null||te.Td(this.containingGroup)||b.bb()}b.Zb(a)}},ar.prototype.qx=function(){var a=new Yi,x=new Yi;return YS(this,this,a,x),x.iterator};function YS(a,x,b,te){if(x!==null&&!b.has(x)){b.add(x);var re=!0,oe=a.diagram;oe!==null&&(re=oe.isTreePathToChildren),x.linksConnected.each(function(le){le.isTreeLink?(re?le.fromNode===x:le.toNode===x)&&YS(a,re?le.toNode:le.fromNode,b,te):te.add(le)})}}ar.prototype.findLinksConnected=function(a){if(a===void 0&&(a=null),a===null)return this.jb.iterator;var x=new rl(this.jb),b=this;return x.predicate=function(te){return te.fromNode===b&&te.fromPortId===a||te.toNode===b&&te.toPortId===a},x},We=ar.prototype,We.Mo=function(a){a===void 0&&(a=null);var x=new rl(this.jb),b=this;return x.predicate=function(te){return te.fromNode!==b?!1:a===null?!0:te.fromPortId===a},x},We.Sd=function(a){a===void 0&&(a=null);var x=new rl(this.jb),b=this;return x.predicate=function(te){return te.toNode!==b?!1:a===null?!0:te.toPortId===a},x},We.Mu=function(a){a===void 0&&(a=null);for(var x=null,b=null,te=this.jb.iterator;te.next();){var re=te.value;re.fromNode===this?(a===null||re.fromPortId===a)&&(re=re.toNode,x!==null?x.add(re):b!==null&&b!==re?(x=new Yi,x.add(b),x.add(re)):b=re):re.toNode!==this||a!==null&&re.toPortId!==a||(re=re.fromNode,x!==null?x.add(re):b!==null&&b!==re?(x=new Yi,x.add(b),x.add(re)):b=re)}return x!==null?x.iterator:b!==null?new Sl(b):wl},We.Po=function(a){a===void 0&&(a=null);for(var x=null,b=null,te=this.jb.iterator;te.next();){var re=te.value;re.fromNode!==this||a!==null&&re.fromPortId!==a||(re=re.toNode,x!==null?x.add(re):b!==null&&b!==re?(x=new Yi,x.add(b),x.add(re)):b=re)}return x!==null?x.iterator:b!==null?new Sl(b):wl},We.Oo=function(a){a===void 0&&(a=null);for(var x=null,b=null,te=this.jb.iterator;te.next();){var re=te.value;re.toNode!==this||a!==null&&re.toPortId!==a||(re=re.fromNode,x!==null?x.add(re):b!==null&&b!==re?(x=new Yi,x.add(b),x.add(re)):b=re)}return x!==null?x.iterator:b!==null?new Sl(b):wl},We.jz=function(a,x,b){x===void 0&&(x=null),b===void 0&&(b=null);var te=new rl(this.jb),re=this;return te.predicate=function(oe){return!((oe.fromNode!==re||oe.toNode!==a||x!==null&&oe.fromPortId!==x||b!==null&&oe.toPortId!==b)&&(oe.fromNode!==a||oe.toNode!==re||b!==null&&oe.fromPortId!==b||x!==null&&oe.toPortId!==x))},te},We.kz=function(a,x,b){x===void 0&&(x=null),b===void 0&&(b=null);var te=new rl(this.jb),re=this;return te.predicate=function(oe){return!(oe.fromNode!==re||oe.toNode!==a||x!==null&&oe.fromPortId!==x||b!==null&&oe.toPortId!==b)},te};function Nx(a,x,b){dd(b);var te=a.jb.contains(x);if(te||a.jb.add(x),!te||x.fromNode===x.toNode){var re=a.linkConnected;if(re!==null){var oe=!0,le=a.diagram;le!==null&&(oe=le.aa,le.aa=!0),re(a,x,b),le!==null&&(le.aa=oe)}}!te&&x.isTreeLink&&(b=x.fromNode,x=x.toNode,b!==null&&x!==null&&b!==x&&(te=!0,a=a.diagram,a!==null&&(te=a.isTreePathToChildren),re=te?x:b,oe=te?b:x,re.ci||(re.ci=oe),!oe.isTreeLeaf||a!==null&&a.undoManager.isUndoingRedoing||(te?b===oe&&(oe.isTreeLeaf=!1):x===oe&&(oe.isTreeLeaf=!1))))}function $0(a,x,b){dd(b);var te=a.jb.remove(x),re=null;if(te||x.toNode===x.fromNode){var oe=a.linkDisconnected;if(re=a.diagram,oe!==null){var le=!0;re!==null&&(le=re.aa,re.aa=!0),oe(a,x,b),re!==null&&(re.aa=le)}}te&&x.isTreeLink&&(b=!0,re!==null&&(b=re.isTreePathToChildren),a=b?x.toNode:x.fromNode,x=b?x.fromNode:x.toNode,a!==null&&(a.ci=!1),x===null||x.isTreeLeaf||(x.jb.count===0?(x.ci=null,re!==null&&re.undoManager.isUndoingRedoing||(x.isTreeLeaf=!0)):Fx(x)))}function Fx(a){if(a.ci=!1,a.jb.count!==0){var x=!0,b=a.diagram;if(b===null||!b.undoManager.isUndoingRedoing){for(b!==null&&(x=b.isTreePathToChildren),b=a.jb.iterator;b.next();){var te=b.value;if(te.isTreeLink){if(x){if(te.fromNode===a){a.isTreeLeaf=!1;return}}else if(te.toNode===a){a.isTreeLeaf=!1;return}}}a.isTreeLeaf=!0}}}ar.prototype.updateRelationshipsFromData=function(){var a=this.diagram;a!==null&&a.partManager.updateRelationshipsFromData(this)},We=ar.prototype,We.Vo=function(a){mo.prototype.Vo.call(this,a),a||(Fx(this),a=this.Yk,a!==null&&qS(a,this))},We.Wo=function(a){mo.prototype.Wo.call(this,a),a||(a=this.Yk,a!==null&&a.wd!==null&&(a.wd.remove(this),a.v()))},We.Lj=function(){if(0<this.jb.count){var a=this.diagram;if(a!==null)for(var x=a.commandHandler!==null?a.commandHandler.deletesConnectedLinks:!0,b=this.jb.copy().iterator;b.next();){var te=b.value;x?a.remove(te):(te.fromNode===this&&(te.fromNode=null),te.toNode===this&&(te.toNode=null))}}this.labeledLink=null,mo.prototype.Lj.call(this)},We.ns=function(a){if(this.wc===null){if(a===""&&this.Te===!1)return this;S5(this)}var x=this.wc.I(a);return x!==null||a!==""&&(x=this.wc.I(""),x!==null)?x:this};function S5(a){a.wc===null?a.wc=new kn:a.wc.clear(),a.qm(a,function(x,b){dw(x,b)}),a.wc.count===0&&a.wc.add("",a)}function dw(a,x){var b=x.portId;b!==null&&a.wc!==null&&a.wc.add(b,x)}function KS(a,x,b){var te=x.portId;if(te!==null&&(a.wc!==null&&a.wc.remove(te),x=a.diagram,x!==null&&b)){for(b=null,a=a.findLinksConnected(te);a.next();)te=a.value,b===null&&(b=ys()),b.push(te);if(b!==null){for(a=0;a<b.length;a++)x.remove(b[a]);As(b)}}}We.Nz=function(a){if(a===null||a===this)return!1;var x=!0,b=this.diagram;if(b!==null&&(x=b.isTreePathToChildren),b=this,x)for(;b!==a;){x=null;for(var te=b.jb.iterator;te.next();){var re=te.value;if(re.isTreeLink&&(x=re.fromNode,x!==b&&x!==this))break}if(x===this||x===null||x===b)return!1;b=x}else for(;b!==a;){for(x=null,te=b.jb.iterator;te.next()&&(re=te.value,!re.isTreeLink||(x=re.toNode,x===b||x===this)););if(x===this||x===null||x===b)return!1;b=x}return!0},We.xz=function(){var a=!0,x=this.diagram;if(x!==null&&(a=x.isTreePathToChildren),x=this,a)for(;;){a=null;for(var b=x.jb.iterator;b.next();){var te=b.value;if(te.isTreeLink&&(a=te.fromNode,a!==x&&a!==this))break}if(a===this)return this;if(a===null||a===x)return x;x=a}else for(;;){for(a=null,b=x.jb.iterator;b.next()&&(te=b.value,!te.isTreeLink||(a=te.toNode,a===x||a===this)););if(a===this)return this;if(a===null||a===x)return x;x=a}},We.gz=function(a){if(a===null)return null;if(this===a)return this;for(var x=this;x!==null;)Dx(x,!0),x=x.pg();var b=null;for(x=a;x!==null;){if(x.G&1048576){b=x;break}x=x.pg()}for(x=this;x!==null;)Dx(x,!1),x=x.pg();return b},We.kh=function(){var a=!0,x=this.diagram;if(x!==null&&(a=x.isTreePathToChildren),x=this.jb.iterator,a){for(;x.next();)if(a=x.value,a.isTreeLink&&a.fromNode!==this)return a}else for(;x.next();)if(a=x.value,a.isTreeLink&&a.toNode!==this)return a;return null},We.pg=function(){var a=this.ci;if(a===null)return null;if(a instanceof ar)return a;a=this.diagram,a=a!==null?a.isTreePathToChildren:!0;for(var x=this.jb.iterator;x.next();){var b=x.value;if(b.isTreeLink&&(b=a?b.fromNode:b.toNode,b!==this))return this.ci=b}return this.ci=null},We.vz=function(){function a(b,te){te.add(b);var re=b.kh();re!==null&&(te.add(re),b=b.pg(),b!==null&&a(b,te))}var x=new Yi;return a(this,x),x},We.uz=function(){return Yf(this,this)};function Yf(a,x){return x=x.pg(),x===null?0:1+Yf(a,x)}We.Qo=function(){var a=!0,x=this.diagram;x!==null&&(a=x.isTreePathToChildren),x=new rl(this.jb);var b=this;return x.predicate=a?function(te){return!!(te.isTreeLink&&te.fromNode===b)}:function(te){return!!(te.isTreeLink&&te.toNode===b)},x},We.Ou=function(){var a=!0,x=this.diagram;x!==null&&(a=x.isTreePathToChildren);var b=x=null,te=this.jb.iterator;if(a)for(;te.next();)a=te.value,a.isTreeLink&&a.fromNode===this&&(a=a.toNode,x!==null?x.add(a):b!==null&&b!==a?(x=new Zi,x.add(b),x.add(a)):b=a);else for(;te.next();)a=te.value,a.isTreeLink&&a.toNode===this&&(a=a.fromNode,x!==null?x.add(a):b!==null&&b!==a?(x=new Zi,x.add(b),x.add(a)):b=a);return x!==null?x.iterator:b!==null?new Sl(b):wl},We.wz=function(a){a===void 0&&(a=1/0);var x=new Yi;return Sp(x,this,!1,a,!0),x},ar.prototype.collapseTree=function(a){a===void 0&&(a=1),1>a&&(a=1);var x=this.diagram;if(x!==null&&!x.Ue){x.Ue=!0;var b=new Yi;b.add(this),ev(this,b,x.isTreePathToChildren,a,x,this,x.treeCollapsePolicy===jf),x.Ue=!1}};function ev(a,x,b,te,re,oe,le){if(1<te)for(var fe=b?a.Mo():a.Sd();fe.next();){var ge=fe.value;ge.isTreeLink&&(ge=ge.To(a),ge===null||ge===a||x.contains(ge)||(x.add(ge),ev(ge,x,b,te-1,re,oe,le)))}else RC(a,x,b,re,oe,le)}function RC(a,x,b,te,re,oe){for(var le=re===a?!0:a.isTreeExpanded,fe=b?a.Mo():a.Sd(),ge={};fe.next();){var ye=fe.value;if(ye.isTreeLink&&(ye=ye.To(a),ye!==null&&ye!==a)){var we=x.contains(ye);if(we||x.add(ye),le){var be=b?ye.Oo():ye.Po();ge.uv=a,be.all(function(ke){return function(Ue){return Ue===ke.uv||!Ue.isTreeExpanded}}(ge))&&te.Aj(ye,re),ye.oh(),ye.Zb(!1)}ye.isTreeExpanded&&(ye.wasTreeExpanded=ye.isTreeExpanded,we||RC(ye,x,b,te,re,oe))}ge={uv:ge.uv}}a.isTreeExpanded=!1}ar.prototype.expandTree=function(a){a===void 0&&(a=2),2>a&&(a=2);var x=this.diagram;if(x!==null&&!x.Ue){x.Ue=!0;var b=new Yi;b.add(this),JS(this,b,x.isTreePathToChildren,a,x,this,x.treeCollapsePolicy===jf),x.Ue=!1}};function JS(a,x,b,te,re,oe,le){for(var fe=oe===a?!1:a.isTreeExpanded,ge=b?a.Mo():a.Sd(),ye={};ge.next();){var we=ge.value;if(we.isTreeLink&&(fe||we.fd||we.bb(),we=we.To(a),we!==null&&we!==a&&!x.contains(we))){if(x.add(we),!fe){we.Zb(!0),we.oh();var be=b?we.Oo():we.Po();ye.vv=a,be.all(function(ke){return function(Ue){return Ue===ke.vv||!Ue.isTreeExpanded}}(ye))&&re.Cj(we,oe)}(2<te||we.wasTreeExpanded)&&(we.wasTreeExpanded=!1,JS(we,x,b,te-1,re,oe,le))}ye={vv:ye.vv}}a.isTreeExpanded=!0}pn.Object.defineProperties(ar.prototype,{portSpreading:{get:function(){return this.Ba!==null?this.Ba.er:fw},set:function(a){var x=this.portSpreading;x!==a&&(gg(this),this.Ba.er=a,this.g("portSpreading",x,a),a=this.diagram,a!==null&&a.undoManager.isUndoingRedoing||this.Bd())}},avoidable:{get:function(){return(this.U&8)!==0},set:function(a){var x=(this.U&8)!==0;if(x!==a){this.U^=8;var b=this.diagram;b!==null&&W0(b,this),this.g("avoidable",x,a)}}},avoidableMargin:{get:function(){return this.Ba!==null?this.Ba.yp:Zs},set:function(a){typeof a=="number"&&(a=new yr(a));var x=this.avoidableMargin;if(!x.D(a)){a=a.J(),gg(this),this.Ba.yp=a;var b=this.diagram;b!==null&&W0(b,this),this.g("avoidableMargin",x,a)}}},linksConnected:{get:function(){return this.jb.iterator}},linkConnected:{get:function(){return this.Ba!==null?this.Ba.Dq:null},set:function(a){var x=this.linkConnected;x!==a&&(gg(this),this.Ba.Dq=a,this.g("linkConnected",x,a))}},linkDisconnected:{get:function(){return this.Ba!==null?this.Ba.Eq:null},set:function(a){var x=this.linkDisconnected;x!==a&&(gg(this),this.Ba.Eq=a,this.g("linkDisconnected",x,a))}},linkValidation:{get:function(){return this.Ba!==null?this.Ba.gj:null},set:function(a){var x=this.linkValidation;x!==a&&(gg(this),this.Ba.gj=a,this.g("linkValidation",x,a))}},isLinkLabel:{get:function(){return this.Yk!==null}},labeledLink:{get:function(){return this.Yk},set:function(a){var x=this.Yk;if(x!==a){var b=this.diagram,te=this.data;if(x!==null){if(x.wd!==null&&(x.wd.remove(this),x.v()),b!==null&&te!==null&&!b.undoManager.isUndoingRedoing){var re=x.data,oe=b.model;if(re!==null&&oe.ri()){var le=oe.wa(te);le!==void 0&&oe.Qx(re,le)}}this.containingGroup=null}this.Yk=a,a!==null&&(qS(a,this),b===null||te===null||b.undoManager.isUndoingRedoing||(re=a.data,b=b.model,re!==null&&b.ri()&&(te=b.wa(te),te!==void 0&&b.Bu(re,te))),this.containingGroup=a.containingGroup),ld(this),this.g("labeledLink",x,a)}}},port:{get:function(){return this.ns("")}},ports:{get:function(){return this.wc===null&&S5(this),this.wc.iteratorValues}},isTreeExpanded:{get:function(){return(this.U&1)!==0},set:function(a){var x=(this.U&1)!==0;if(x!==a){this.U^=1;var b=this.diagram;if(this.g("isTreeExpanded",x,a),x=this.treeExpandedChanged,x!==null){var te=!0;b!==null&&(te=b.aa,b.aa=!0),x(this),b!==null&&(b.aa=te)}b!==null&&b.undoManager.isUndoingRedoing?this.Zb(a):a?this.expandTree():this.collapseTree()}}},wasTreeExpanded:{get:function(){return(this.U&2)!==0},set:function(a){var x=(this.U&2)!==0;x!==a&&(this.U^=2,this.g("wasTreeExpanded",x,a))}},treeExpandedChanged:{get:function(){return this.Ba!==null?this.Ba.Vr:null},set:function(a){var x=this.treeExpandedChanged;x!==a&&(gg(this),this.Ba.Vr=a,this.g("treeExpandedChanged",x,a))}},isTreeLeaf:{get:function(){return(this.U&4)!==0},set:function(a){var x=(this.U&4)!==0;x!==a&&(this.U^=4,this.g("isTreeLeaf",x,a))}}}),ar.prototype.expandTree=ar.prototype.expandTree,ar.prototype.collapseTree=ar.prototype.collapseTree,ar.prototype.findTreeParts=ar.prototype.wz,ar.prototype.findTreeChildrenNodes=ar.prototype.Ou,ar.prototype.findTreeChildrenLinks=ar.prototype.Qo,ar.prototype.findTreeLevel=ar.prototype.uz,ar.prototype.findTreeParentChain=ar.prototype.vz,ar.prototype.findTreeParentNode=ar.prototype.pg,ar.prototype.findTreeParentLink=ar.prototype.kh,ar.prototype.findCommonTreeParent=ar.prototype.gz,ar.prototype.findTreeRoot=ar.prototype.xz,ar.prototype.isInTreeOf=ar.prototype.Nz,ar.prototype.findPort=ar.prototype.ns,ar.prototype.findLinksTo=ar.prototype.kz,ar.prototype.findLinksBetween=ar.prototype.jz,ar.prototype.findNodesInto=ar.prototype.Oo,ar.prototype.findNodesOutOf=ar.prototype.Po,ar.prototype.findNodesConnected=ar.prototype.Mu,ar.prototype.findLinksInto=ar.prototype.Sd,ar.prototype.findLinksOutOf=ar.prototype.Mo,ar.prototype.findExternalTreeLinksConnected=ar.prototype.qx,ar.prototype.invalidateConnectedLinks=ar.prototype.Bd,ar.prototype.invalidateLinkBundle=ar.prototype.Lz;var vA=new Ni(ar,"SpreadingNone",10),fw=new Ni(ar,"SpreadingEvenly",11),pw=new Ni(ar,"SpreadingPacked",12);ar.className="Node",ar.SpreadingNone=vA,ar.SpreadingEvenly=fw,ar.SpreadingPacked=pw;function ts(a,x){a===void 0||a instanceof lc||typeof a=="string"?ar.call(this,a):(ar.call(this),a&&(x=a)),this.U|=4608,this.Gn=new Yi,this.$a=null,this.Sc=new vu,this.Sc.group=this,this.gl=new Yi,this.tb=this.$p=null,x&&Object.assign(this,x)}vn(ts,ar),ts.prototype.cloneProtected=function(a){ar.prototype.cloneProtected.call(this,a),this.U=this.U&-32769;var x=a.Nl(function(b){return b instanceof bd});x instanceof bd?a.$a=x:a.$a=null,this.Sc!==null?(a.Sc=this.Sc.copy(),a.Sc.group=a):(a.Sc!==null&&(a.Sc.group=null),a.Sc=null),this.tb!==null&&(a.tb=this.tb.copy())},We=ts.prototype,We.Af=function(a){ar.prototype.Af.call(this,a);var x=a.Rj();for(a=a.memberParts;a.next();){var b=a.value;if(b.v(),b.C(8),b.Ej(),b instanceof ar)b.Bd(x);else if(b instanceof Ui)for(b=b.labelNodes;b.next();)b.value.Bd(x)}},We.gk=function(a,x,b,te,re,oe,le){if(a===Ol&&x==="elements"){if(re instanceof bd)this.$a===null?this.$a=re:this.$a!==re&&hn("Cannot insert a second Placeholder into the visual tree of a Group.");else if(re instanceof Pi){var fe=re.Nl(function(ge){return ge instanceof bd});fe instanceof bd&&(this.$a===null?this.$a=fe:this.$a!==fe&&hn("Cannot insert a second Placeholder into the visual tree of a Group."))}}else a===Ou&&x==="elements"&&this.$a!==null&&(te===this.$a?this.$a=null:te instanceof Pi&&this.$a.rg(te)&&(this.$a=null));ar.prototype.gk.call(this,a,x,b,te,re,oe,le)},We.Xl=function(a,x){ar.prototype.Xl.call(this,a,x),this.isClipping&&this.type!==Pi.Spot&&this.isSubGraphExpanded&&(a=this.resizeObject,a instanceof Pi&&(a=a.Pb()),this.tb===null&&(this.tb=new Yt),a.mi(this.tb),a instanceof xs&&this.tb.Bc(-a.strokeWidth,-a.strokeWidth))},We.eh=function(a,x,b,te){this.nf=this.$a,ar.prototype.eh.call(this,a,x,b,te)},We.Va=function(){var a=this;a.isSubGraphExpanded&&this.memberParts.each(function(x){!a.computesBoundsIncludingLinks&&x instanceof Ui||x.Va()}),ar.prototype.Va.call(this)},We.si=function(){if(!ar.prototype.si.call(this))return!1;for(var a=this.memberParts;a.next();){var x=a.value;if(x instanceof ar){if(x.isVisible()&&Xh(x))return!1}else if(x instanceof Ui&&x.isVisible()&&Xh(x)&&x.fromNode!==this&&x.toNode!==this)return!1}return!0};function yA(a,x){if(a.Gn.add(x)){x instanceof ts&&a.gl.add(x);var b=a.memberAdded;if(b!==null){var te=!0,re=a.diagram;re!==null&&(te=re.aa,re.aa=!0),b(a,x),re!==null&&(re.aa=te)}a.isVisible()&&a.isSubGraphExpanded||x.Zb(!1)}x instanceof Ui&&!a.computesBoundsIncludingLinks||(x=a.$a,x===null&&(x=a),x.v())}function Xa(a,x){if(a.Gn.remove(x)){x instanceof ts&&a.gl.remove(x);var b=a.memberRemoved;if(b!==null){var te=!0,re=a.diagram;re!==null&&(te=re.aa,re.aa=!0),b(a,x),re!==null&&(re.aa=te)}a.isVisible()&&a.isSubGraphExpanded||x.Zb(!0)}x instanceof Ui&&!a.computesBoundsIncludingLinks||(x=a.$a,x===null&&(x=a),x.v())}We.Lj=function(){if(0<this.Gn.count){var a=this.diagram;if(a!==null)for(var x=this.Gn.copy().iterator;x.next();)a.remove(x.value)}ar.prototype.Lj.call(this)},ts.prototype.canAddMembers=function(a){var x=this.diagram;if(x===null)return!1;for(x=x.commandHandler,a=On(a).iterator;a.next();)if(!x.isValidMember(this,a.value))return!1;return!0},ts.prototype.addMembers=function(a,x){var b=this.diagram;if(b===null)return!1;b=b.commandHandler;var te=!0;for(a=On(a).iterator;a.next();){var re=a.value;!x||b.isValidMember(this,re)?re.containingGroup=this:te=!1}return te},ts.prototype.canUngroup=function(){if(!this.ungroupable)return!1;var a=this.layer;return a===null||!a.allowUngroup?!1:(a=a.diagram,!!(a===null||a.allowUngroup))},We=ts.prototype,We.Bd=function(a){var x=(this.U&65536)!==0;if(ar.prototype.Bd.call(this,a),!x)for(!(this.U&65536)&&(this.U=this.U^65536),x=this.Lu();x.next();){var b=x.value;if(a===void 0||!a.contains(b)){var te=b.fromNode;te!==null&&te!==this&&te.Td(this)&&!te.isVisible()?(dd(b.fromPort),dd(b.toPort),b.bb()):(te=b.toNode,te!==null&&te!==this&&te.Td(this)&&!te.isVisible()&&(dd(b.fromPort),dd(b.toPort),b.bb()))}}},We.Lu=function(){var a=this.diagram!==null&&this.diagram.Pw;if(a&&this.$p!==null)return this.$p.iterator;var x=this.Rj();x.add(this);for(var b=new Yi,te=x.iterator;te.next();){var re=te.value;if(re instanceof ar)for(re=re.linksConnected;re.next();){var oe=re.value;x.contains(oe)||b.add(oe)}}return a&&(this.$p=b),b.iterator},We.iz=function(){var a=this.Rj();a.add(this);for(var x=new Yi,b=a.iterator;b.next();){var te=b.value;if(te instanceof ar)for(te=te.linksConnected;te.next();){var re=te.value,oe=re.fromNode;oe===null||a.contains(oe)&&oe!==this||x.add(oe),re=re.toNode,re===null||a.contains(re)&&re!==this||x.add(re)}}return x.iterator},We.hz=function(){function a(b,te){b!==null&&(te.add(b),a(b.containingGroup,te))}var x=new Yi;return a(this,x),x},We.Rj=function(){var a=new Yi;return Sp(a,this,!0,0,!0),a.remove(this),a},We.Zb=function(a){ar.prototype.Zb.call(this,a);for(var x=this.memberParts;x.next();)x.value.Zb(a)},ts.prototype.collapseSubGraph=function(){var a=this.diagram;if(a!==null&&!a.Ue){a.Ue=!0;var x=this.Rj();Lx(this,x,a,this),a.Ue=!1}};function Lx(a,x,b,te){for(var re=a.memberParts;re.next();){var oe=re.value;if(oe.Zb(!1),oe instanceof ts&&oe.isSubGraphExpanded&&(oe.wasSubGraphExpanded=oe.isSubGraphExpanded,Lx(oe,x,b,te)),oe instanceof ar)oe.Bd(x),b.Aj(oe,te);else if(oe instanceof Ui)for(oe=oe.labelNodes;oe.next();)oe.value.Bd(x)}a.isSubGraphExpanded=!1}ts.prototype.expandSubGraph=function(){var a=this.diagram;if(a!==null&&!a.Ue){a.Ue=!0;var x=this.Rj();km(this,x,a,this),a.Ue=!1}};function km(a,x,b,te){for(var re=a.memberParts;re.next();){var oe=re.value;if(oe.Zb(!0),oe instanceof ts&&oe.wasSubGraphExpanded&&(oe.wasSubGraphExpanded=!1,km(oe,x,b,te)),oe instanceof ar)oe.Bd(x),b.Cj(oe,te);else if(oe instanceof Ui)for(oe=oe.labelNodes;oe.next();)oe.value.Bd(x)}a.isSubGraphExpanded=!0}ts.prototype.move=function(a,x){x===void 0&&(x=!1);var b=x?this.location:this.position,te=b.x;b=b.y;var re=a.x,oe=a.y;if(!(te===re||isNaN(te)&&isNaN(re))||!(b===oe||isNaN(b)&&isNaN(oe))){for(te=re-(isNaN(te)?0:te),b=oe-(isNaN(b)?0:b),oe=it.alloc(),ar.prototype.move.call(this,a,x),a=new Yi,x=this.Rj().iterator;x.next();)re=x.value,re instanceof Ui&&(re.suspendsRouting&&a.add(re),re.fd||re.fromNode!==this&&re.toNode!==this)&&(re.suspendsRouting=!0);for(x.reset();x.next();)if(re=x.value,!(re.ph()||re instanceof ar&&re.isLinkLabel)){var le=re.position,fe=re.location;le.w()?(oe.x=le.x+te,oe.y=le.y+b,re.position=oe):fe.w()&&(oe.x=fe.x+te,oe.y=fe.y+b,re.location=oe)}for(x.reset();x.next();)re=x.value,re instanceof Ui&&(re.suspendsRouting=a.contains(re),re.fd||re.fromNode!==this&&re.toNode!==this)&&(le=re.position,oe.x=le.x+te,oe.y=le.y+b,oe.w()?re.move(oe):re.bb(),HC(re)&&re.bb());it.free(oe)}},pn.Object.defineProperties(ts.prototype,{placeholder:{get:function(){return this.$a}},computesBoundsAfterDrag:{get:function(){return(this.U&2048)!==0},set:function(a){var x=(this.U&2048)!==0;x!==a&&(this.U^=2048,this.g("computesBoundsAfterDrag",x,a))}},computesBoundsIncludingLinks:{get:function(){return(this.U&4096)!==0},set:function(a){var x=(this.U&4096)!==0;x!==a&&(this.U^=4096,this.g("computesBoundsIncludingLinks",x,a))}},computesBoundsIncludingLocation:{get:function(){return(this.U&8192)!==0},set:function(a){var x=(this.U&8192)!==0;x!==a&&(this.U^=8192,this.g("computesBoundsIncludingLocation",x,a))}},handlesDragDropForMembers:{get:function(){return(this.U&16384)!==0},set:function(a){var x=(this.U&16384)!==0;x!==a&&(this.U^=16384,this.g("handlesDragDropForMembers",x,a))}},memberParts:{get:function(){return this.Gn.iterator}},layout:{get:function(){return this.Sc},set:function(a){var x=this.Sc;if(x!==a){a!==null&&a.diagram!==null&&a.diagram.layout===a&&hn("A layout cannot be both the Diagram.layout and a Group.layout: "+a),x!==null&&(x.diagram=null,x.group=null),this.Sc=a;var b=this.diagram;a!==null&&(a.diagram=b,a.group=this),b!==null&&(b.xh=!0),this.g("layout",x,a),b!==null&&b.$b()}}},memberAdded:{get:function(){return this.Ba!==null?this.Ba.Mq:null},set:function(a){var x=this.memberAdded;x!==a&&(gg(this),this.Ba.Mq=a,this.g("memberAdded",x,a))}},memberRemoved:{get:function(){return this.Ba!==null?this.Ba.Nq:null},set:function(a){var x=this.memberRemoved;x!==a&&(gg(this),this.Ba.Nq=a,this.g("memberRemoved",x,a))}},memberValidation:{get:function(){return this.Ba!==null?this.Ba.ij:null},set:function(a){var x=this.memberValidation;x!==a&&(gg(this),this.Ba.ij=a,this.g("memberValidation",x,a))}},ungroupable:{get:function(){return(this.U&256)!==0},set:function(a){var x=(this.U&256)!==0;x!==a&&(this.U^=256,this.g("ungroupable",x,a))}},isSubGraphExpanded:{get:function(){return(this.U&512)!==0},set:function(a){var x=(this.U&512)!==0;if(x!==a){this.U^=512;var b=this.diagram;if(this.g("isSubGraphExpanded",x,a),x=this.subGraphExpandedChanged,x!==null){var te=!0;b!==null&&(te=b.aa,b.aa=!0),x(this),b!==null&&(b.aa=te)}b!==null&&b.undoManager.isUndoingRedoing?(this.$a!==null&&this.$a.v(),this.memberParts.each(function(re){re.updateAdornments()})):a?this.expandSubGraph():this.collapseSubGraph()}}},wasSubGraphExpanded:{get:function(){return(this.U&1024)!==0},set:function(a){var x=(this.U&1024)!==0;x!==a&&(this.U^=1024,this.g("wasSubGraphExpanded",x,a))}},subGraphExpandedChanged:{get:function(){return this.Ba!==null?this.Ba.Kr:null},set:function(a){var x=this.subGraphExpandedChanged;x!==a&&(gg(this),this.Ba.Kr=a,this.g("subGraphExpandedChanged",x,a))}},rh:{get:function(){return(this.U&32768)!==0},set:function(a){(this.U&32768)!==0!==a&&(this.U^=32768)}}}),ts.prototype.expandSubGraph=ts.prototype.expandSubGraph,ts.prototype.collapseSubGraph=ts.prototype.collapseSubGraph,ts.prototype.findSubGraphParts=ts.prototype.Rj,ts.prototype.findContainingGroupChain=ts.prototype.hz,ts.prototype.findExternalNodesConnected=ts.prototype.iz,ts.prototype.findExternalLinksConnected=ts.prototype.Lu,ts.prototype.ensureBounds=ts.prototype.Va,ts.className="Group";function bd(a){nn.call(this),this.yb=Ts,this.ko=new Yt(NaN,NaN,NaN,NaN),a&&Object.assign(this,a)}vn(bd,nn),bd.prototype.cloneProtected=function(a){nn.prototype.cloneProtected.call(this,a),a.yb=this.yb.J(),a.ko=this.ko.copy()},bd.prototype.gh=function(a){if(this.background===null&&this.areaBackground===null)return!1;var x=this.naturalBounds;return Zr(0,0,x.width,x.height,a.x,a.y)},bd.prototype.Wl=function(){var a=this.part;if(a!==null&&(a instanceof ts||a instanceof Ca)||hn("Placeholder is not inside a Group or Adornment."),a instanceof ts){var x=this.computeBorder(this.ko),b=this.minSize,te=this.dc;for(er(te,(isFinite(b.width)?Math.max(b.width,x.width):x.width)||0,(isFinite(b.height)?Math.max(b.height,x.height):x.height)||0),this.Ge(0,0,te.width,te.height),te=a.memberParts,b=!1;te.next();)if(te.value.isVisible()){b=!0;break}te=a.diagram,!b||te===null||te.animationManager.Xu(a)||isNaN(x.x)||isNaN(x.y)||(b=it.alloc(),b.xi(x,a.locationSpot),b.D(a.location)||(a.location=b),it.free(b))}else{x=this.dc,b=this.yb,te=b.left+b.right;var re=b.top+b.bottom,oe=a.adornedObject;a.angle=oe.li();var le=0;oe instanceof xs&&(le=oe.strokeWidth);var fe=oe.Df(),ge=oe.naturalBounds,ye=(ge.width+le)*fe;le=(ge.height+le)*fe,a.type!==Pi.Link&&(fe=oe.ga(a.category==="Selection"?Is:a.locationSpot,it.alloc()),a.location=fe,it.free(fe)),isNaN(ye)||isNaN(le)?(a=oe.ga(Is,it.alloc()),ye=Yt.allocAt(a.x,a.y,0,0),ye.Ye(oe.ga(ws,a)),ye.Ye(oe.ga(Gs,a)),ye.Ye(oe.ga(Ta,a)),er(x,ye.width+te||0,ye.height+re||0),this.Ge(-b.left,-b.top,x.width,x.height),it.free(a),Yt.free(ye)):(er(x,ye+te||0,le+re||0),this.Ge(-b.left,-b.top,x.width,x.height))}},bd.prototype.eh=function(a,x,b,te){this.actualBounds.h(a,x,b,te)},bd.prototype.computeBorder=function(a){var x=this.part,b=x.diagram,te=b===null||!b.animationManager.isAnimating;if(b!==null&&x instanceof ts&&!x.layer.isTemporary&&x.computesBoundsAfterDrag&&this.ko.w()){var re=b.toolManager.findTool("Dragging");if(re===b.currentTool&&(b=re.computeBorder(x,this.ko,a),b!==null))return b}b=Yt.alloc(),re=this.computeMemberBounds(b);var oe=this.yb;return x instanceof ts&&!x.isSubGraphExpanded?a.h(re.x-oe.left,re.y-oe.top,0,0):a.h(re.x-oe.left,re.y-oe.top,Math.max(re.width+oe.left+oe.right,0),Math.max(re.height+oe.top+oe.bottom,0)),Yt.free(b),te&&x instanceof ts&&x.computesBoundsIncludingLocation&&x.location.w()&&a.Ye(x.location),a},bd.prototype.computeMemberBounds=function(a){if(!(this.part instanceof ts))return a.h(0,0,0,0),a;for(var x=this.part,b=1/0,te=1/0,re=-1/0,oe=-1/0,le=x.memberParts;le.next();){var fe=le.value;if(fe.isVisible()){if(fe instanceof Ui&&(!x.computesBoundsIncludingLinks||Mf(fe)||fe.fromNode===x||fe.toNode===x))continue;fe=fe.actualBounds,fe.left<b&&(b=fe.left),fe.top<te&&(te=fe.top),fe.right>re&&(re=fe.right),fe.bottom>oe&&(oe=fe.bottom)}}return isFinite(b)&&isFinite(te)?a.h(b,te,re-b,oe-te):(x=x.location,a.h(x.x,x.y,0,0)),a},pn.Object.defineProperties(bd.prototype,{padding:{get:function(){return this.yb},set:function(a){typeof a=="number"&&(a=new yr(a));var x=this.yb;x.D(a)||(this.yb=a=a.J(),this.g("padding",x,a),this.v())}}}),bd.className="Placeholder";function Ui(a){mo.call(this,Pi.Link),this.Qa=8,this.ef=null,this.ff="",this.uf=this.gn=null,this.vf="",this.uo=null,this.qk=Th,this.Om=0,this.Qm=Th,this.Rm=NaN,this.qj=fm,this.po=.5,this.wd=null,this.Nb=new Zi().freeze(),this.Tg=this.Mg=null,this.ml=new Yt,this.ua=new ai,this.u=this.o=this.Sf=this.Wf=null,this.su=new it,this.cq=this.Mw=this.Lw=null,this.vt=NaN,this.ba=null,this.j=[],a&&Object.assign(this,a)}vn(Ui,mo),Ui.prototype.cloneProtected=function(a){mo.prototype.cloneProtected.call(this,a),a.Qa=this.Qa&-113,a.ff=this.ff,a.gn=this.gn,a.vf=this.vf,a.uo=this.uo,a.qk=this.qk,a.Om=this.Om,a.Qm=this.Qm,a.Rm=this.Rm,a.qj=this.qj,a.po=this.po,this.ba!==null&&(a.ba=this.ba.copy())},We=Ui.prototype,We.Af=function(a){mo.prototype.Af.call(this,a),this.ff=a.ff,this.vf=a.vf,a.Mg=null,a.bb(),a.Sf=this.Sf;var x=a.fromPort;x!==null&&dd(x),a=a.toPort,a!==null&&dd(a)},We.qb=function(a){a.classType===Ui?(a.value&2)===2?this.routing=a:a===fd||a===g0||a===wA?this.curve=a:a===Ox||a===gw||a===mw?this.adjusting=a:a!==fm&&a!==Th&&hn("Unknown Link enum value for a Link property: "+a):mo.prototype.qb.call(this,a)},We.Xc=function(){this.ba===null&&(this.ba=new CC)},We.si=function(){var a=this.fromNode;if(a!==null){var x=a.findVisibleNode();if(x!==null&&(a=x),Xh(a)||nh(a))return!1}return a=this.toNode,!(a!==null&&(x=a.findVisibleNode(),x!==null&&(a=x),Xh(a)||nh(a)))},We.zv=function(){return!1},We.Av=function(){},We.Zc=function(){return!1},Ui.prototype.computeAngle=function(a,x,b){return Ui.computeAngle(x,b)},Ui.computeAngle=function(a,x){switch(a){default:case Th:a=0;break;case Rx:a=x;break;case zx:a=x+90;break;case Cp:a=x-90;break;case VC:a=x+180;break;case m0:a=_t.bp(x),90<a&&270>a&&(a-=180);break;case SA:a=_t.bp(x+90),90<a&&270>a&&(a-=180);break;case Ux:a=_t.bp(x-90),90<a&&270>a&&(a-=180);break;case ia:if(a=_t.bp(x),45<a&&135>a||225<a&&315>a)return 0;90<a&&270>a&&(a-=180)}return _t.bp(a)};function dm(a){var x=a.fromNode,b=a.toNode,te=null;if(x!==null?te=b!==null?x.px(b):x.containingGroup:b!==null?te=b.containingGroup:te=null,x=te,b=a.Ah,b!==x){b!==null&&Xa(b,a),a.Ah=x,x!==null&&yA(x,a);var re=a.containingGroupChanged;if(re!==null){var oe=!0,le=a.diagram;le!==null&&(oe=le.aa,le.aa=!0),re(a,b,x),le!==null&&(le.aa=oe)}!a.fd||a.Lw!==b&&a.Mw!==b||a.bb()}if(a.isLabeledLink)for(a=a.labelNodes;a.next();)a.value.containingGroup=te}We=Ui.prototype,We.oh=function(){var a=this.containingGroup;a!==null&&this.fromNode!==a&&this.toNode!==a&&a.computesBoundsIncludingLinks&&mo.prototype.oh.call(this)},We.To=function(a){var x=this.fromNode;return a===x?this.toNode:x},We.Cz=function(a){var x=this.fromPort;return a===x?this.toPort:x};function qS(a,x){a.wd===null&&(a.wd=new Yi),a.wd.add(x),a.v()}We.Vo=function(a){if(mo.prototype.Vo.call(this,a),uy(this)&&this.Xo(this.actualBounds),!a){a=this.ef;var x=null;a!==null&&(x=this.fromPort,Nx(a,this,x));var b=this.uf;if(b!==null){var te=this.toPort;b===a&&te===x||Nx(b,this,te)}eP(this)}},We.Wo=function(a){if(mo.prototype.Wo.call(this,a),uy(this)&&this.Xo(this.actualBounds),!a){a=this.ef;var x=null;a!==null&&(x=this.fromPort,$0(a,this,x));var b=this.uf;if(b!==null){var te=this.toPort;b===a&&te===x||$0(b,this,te)}nv(this)}},We.Lj=function(){if(this.fd=!0,this.wd!==null){var a=this.diagram;if(a!==null)for(var x=this.wd.copy().iterator;x.next();)a.remove(x.value)}this.data!==null&&(a=this.diagram,a!==null&&a.partManager.removeDataForLink(this))},Ui.prototype.updateRelationshipsFromData=function(){if(this.data!==null){var a=this.diagram;a!==null&&a.partManager.updateRelationshipsFromData(this)}},Ui.prototype.move=function(a,x){var b=x?this.location:this.position,te=b.x;isNaN(te)&&(te=0);var re=b.y;for(isNaN(re)&&(re=0),te=a.x-te,re=a.y-re,x===!0?mo.prototype.move.call(this,a,!1):(a=it.allocAt(b.x+te,b.y+re),mo.prototype.move.call(this,a,!1),it.free(a)),Md(this,te,re),a=this.labelNodes;a.next();)x=a.value,b=x.position,x.moveTo(b.x+te,b.y+re)},Ui.prototype.canRelinkFrom=function(){if(!this.relinkableFrom)return!1;var a=this.layer;return a===null?!0:a.allowRelink?(a=a.diagram,!!(a===null||a.allowRelink)):!1},Ui.prototype.canRelinkTo=function(){if(!this.relinkableTo)return!1;var a=this.layer;return a===null?!0:a.allowRelink?(a=a.diagram,!!(a===null||a.allowRelink)):!1},Ui.prototype.computeMidPoint=function(a){var x=this.pointsCount;if(x===0)return a.assign(ko),a;if(x===1)return a.assign(this.i(0)),a;if(x===2){var b=this.i(0),te=this.i(1);return a.h((b.x+te.x)/2,(b.y+te.y)/2),a}if(this.isOrthogonal&&(15<=this.computeCorner()||this.computeCurve()===fd))return this.ua.Pu(.5,a),a.add(this.i(0)),b=this.ua.figures.first(),a.offset(-b.startX,-b.startY),a;if(this.computeCurve()===fd){if(x===3){b=this.i(0),te=this.i(1);var re=this.i(2);return _t.ax(b.x,b.y,te.x,te.y,te.x,te.y,re.x,re.y,a),a}if(te=(x-1)/3|0,b=3*(te/2|0),te%2===1){te=this.i(b),re=this.i(b+1);var oe=this.i(b+2);b=this.i(b+3),_t.ax(te.x,te.y,re.x,re.y,oe.x,oe.y,b.x,b.y,a)}else a.assign(this.i(b));return a}var le=this.flattenedLengths;for(b=this.flattenedTotalLength,re=oe=te=0;te<b/2&&oe<x&&(re=le[oe],!(te+re>b/2));)te+=re,oe++;return x=this.i(oe),oe=this.i(oe+1),1>Math.abs(x.x-oe.x)?x.y>oe.y?a.h(x.x,x.y-(b/2-te)):a.h(x.x,x.y+(b/2-te)):1>Math.abs(x.y-oe.y)?x.x>oe.x?a.h(x.x-(b/2-te),x.y):a.h(x.x+(b/2-te),x.y):(b=(b/2-te)/re,a.h(x.x+b*(oe.x-x.x),x.y+b*(oe.y-x.y))),a},Ui.prototype.computeMidAngle=function(){var a=this.pointsCount;if(2>a)return NaN;if(a===2)return this.i(0).ab(this.i(1));if(this.isOrthogonal&&(15<=this.computeCorner()||this.computeCurve()===fd))return this.ua.wx(.5);if(this.computeCurve()===fd&&4<=a){var x=(a-1)/3|0,b=3*(x/2|0);if(x%2===1){b=Math.floor(b),a=this.i(b),x=this.i(b+1);var te=this.i(b+2);return b=this.i(b+3),_t.My(a.x,a.y,x.x,x.y,te.x,te.y,b.x,b.y)}if(0<b&&b+1<a)return this.i(b-1).ab(this.i(b+1))}x=this.flattenedLengths,te=this.flattenedTotalLength;var re=0;b=0;for(var oe;re<te/2&&b<a&&(oe=x[b],!(re+oe>te/2));)re+=oe,b++;if(x=this.i(b),te=this.i(b+1),1>Math.abs(x.x-te.x)&&1>Math.abs(x.y-te.y)){if(0<b&&b+2<a)return this.i(b-1).ab(this.i(b+2))}else{if(1>Math.abs(x.x-te.x))return x.y>te.y?270:90;if(1>Math.abs(x.y-te.y))return x.x>te.x?180:0}return x.ab(te)},We=Ui.prototype,We.i=function(a){return this.Nb.s[a]},We.dd=function(a,x){this.Nb.cd(a,x)},We.L=function(a,x,b){this.Nb.cd(a,new it(x,b))},We.Kz=function(a,x){this.Nb.Gb(a,x)},We.m=function(a,x,b){this.Nb.Gb(a,new it(x,b))},We.ne=function(a){this.Nb.add(a)},We.yf=function(a,x){this.Nb.add(new it(a,x))},We.pv=function(a){this.Nb.mb(a)},We.Fj=function(){this.Nb.clear()};function Md(a,x,b){if(x!==0||b!==0)if(a.pointsCount===0)a.defaultFromPoint&&a.defaultFromPoint.offset(x,b),a.defaultToPoint&&a.defaultToPoint.offset(x,b);else{for(var te=a.fd,re=new Zi,oe=a.Nb.iterator;oe.next();){var le=oe.value;re.add(new it(le.x+x,le.y+b).freeze())}re.freeze(),oe=a.Nb,a.Nb=re,le=a.diagram,isNaN(x)||isNaN(b)||le!==null&&le.animationManager.zb?a.v():(a.ke.h(a.ke.x+x,a.ke.y+b),a.pa.h(a.pa.x+x,a.pa.y+b),ld(a)),te?_S(a):(a.defaultFromPoint&&(a.defaultFromPoint=a.i(0)),a.defaultToPoint&&(a.defaultToPoint=a.i(a.pointsCount-1))),le!==null&&le.animationManager.zb&&is(le.animationManager,a,re),a.g("points",oe,re)}}We.uh=function(){this.Mg===null&&(this.Mg=this.Nb,this.Nb=this.Nb.copy())},We.zf=function(){if(this.Mg!==null){for(var a=this.Mg,x=this.Nb,b=1/0,te=1/0,re=a.s,oe=re.length,le=0;le<oe;le++){var fe=re[le];b=Math.min(fe.x,b),te=Math.min(fe.y,te)}fe=le=1/0;for(var ge=x.s,ye=ge.length,we=0;we<ye;we++){var be=ge[we];le=Math.min(be.x,le),fe=Math.min(be.y,fe),be.freeze()}if(x.freeze(),ye===oe){for(oe=0;oe<ye;oe++)if(we=re[oe],be=ge[oe],we.x-b!==be.x-le||we.y-te!==be.y-fe){this.qc();break}}else this.qc();this.Mg=null,b=this.diagram,b!==null&&b.animationManager.zb&&is(b.animationManager,this,x),_S(this),this.g("points",a,x)}},We.rv=function(){this.Mg!==null&&(this.Nb=this.Mg,this.Mg=null)};function _S(a){a.Nb.count===0?a.fd=!1:(a.fd=!0,a.cq=null,a.vt=NaN,a.defaultFromPoint=a.i(0),a.defaultToPoint=a.i(a.pointsCount-1),$S(a,!1))}We.bb=function(){if(!this.suspendsRouting){var a=this.diagram;if(a){if(a.As.contains(this)||a.undoManager.isUndoingRedoing||(a=a.animationManager,a.isTicking&&!a.isAnimating))return;this.Tg===null||a.isTicking||(this.Tg=null)}a=this.path,a!==null&&(this.fd=!1,this.v(),a.v())}},We.vg=function(){if(!this.fd&&!this.computingPoints){var a=!0;try{this.computingPoints=!0,this.uh(),a=this.computePoints()}catch(x){this.computingPoints=!1,this.rv()}finally{this.computingPoints=!1,a?this.zf():this.rv()}}},Ui.prototype.computePoints=function(){if(this.diagram===null)return!1;var a=this.fromNode,x=null;if(a===null?(cy||(cy=new ar,cy.desiredSize=Kt,cy.Va()),this.defaultFromPoint&&(cy.location=this.defaultFromPoint,cy.Va(),x=a=cy)):x=this.fromPort,x!==null&&!a.isVisible()){var b=a.findVisibleNode();b!==null&&b!==a?(a=b,x=b.port):a=b}if(this.Lw=a,a===null||!a.location.w())return!1;for(;!(x===null||x.actualBounds.w()&&x.Ed());)x=x.panel;if(x===null)return!1;var te=this.toNode,re=null;if(te===null?(ih||(ih=new ar,ih.desiredSize=Kt,ih.Va()),this.defaultToPoint&&(ih.location=this.defaultToPoint,ih.Va(),re=te=ih)):re=this.toPort,re===null||te.isVisible()||(b=te.findVisibleNode(),b!==null&&b!==te?(te=b,re=b.port):te=b),this.Mw=te,te===null||!te.location.w())return!1;for(;!(re===null||re.actualBounds.w()&&re.Ed());)re=re.panel;if(re===null)return!1;var oe=this.pointsCount,le=this.computeSpot(!0,x);b=this.computeSpot(!1,re);var fe=AA(le),ge=AA(b),ye=x===re&&x!==null,we=this.isOrthogonal,be=this.curve===fd;this.Wf=ye&&!we?be=!0:!1;var ke=this.computeAdjusting()===Th||ye;if(!we&&!ye&&fe&&ge){if(fe=!1,!ke&&3<=oe&&(ke=this.getLinkPoint(a,x,le,!0,!1,te,re),ge=this.getLinkPoint(te,re,b,!1,!1,a,x),fe=this.adjustPoints(0,ke,oe-1,ge))&&(ke=this.getLinkPoint(a,x,le,!0,!1,te,re),ge=this.getLinkPoint(te,re,b,!1,!1,a,x),this.adjustPoints(0,ke,oe-1,ge)),!fe)if(this.Fj(),be){oe=this.getLinkPoint(a,x,le,!0,!1,te,re),ke=this.getLinkPoint(te,re,b,!1,!1,a,x),fe=ke.x-oe.x,ge=ke.y-oe.y,ye=this.computeCurviness(),be=we=0;var Ue=oe.x+fe/3,Ve=oe.y+ge/3,Ke=Ue,Pt=Ve;_t.B(ge,0)?Pt=0<fe?Pt-ye:Pt+ye:(we=-fe/ge,be=Math.sqrt(ye*ye/(we*we+1)),0>ye&&(be=-be),Ke=(0>ge?-1:1)*be+Ue,Pt=we*(Ke-Ue)+Ve),Ue=oe.x+2*fe/3,Ve=oe.y+2*ge/3;var ft=Ue,Nt=Ve;_t.B(ge,0)?Nt=0<fe?Nt-ye:Nt+ye:(ft=(0>ge?-1:1)*be+Ue,Nt=we*(ft-Ue)+Ve),this.Fj(),this.ne(oe),this.yf(Ke,Pt),this.yf(ft,Nt),this.ne(ke),this.dd(0,this.getLinkPoint(a,x,le,!0,!1,te,re)),this.dd(3,this.getLinkPoint(te,re,b,!1,!1,a,x))}else oe=te,ke=re,te=this.getLinkPoint(a,x,le,!0,!1,oe,ke),re=this.getLinkPoint(oe,ke,b,!1,!1,a,x),this.hasCurviness()?(ke=re.x-te.x,b=re.y-te.y,le=this.computeCurviness(),a=te.x+ke/2,x=te.y+b/2,oe=a,fe=x,_t.B(b,0)?fe=0<ke?fe-le:fe+le:(ke=-ke/b,oe=Math.sqrt(le*le/(ke*ke+1)),0>le&&(oe=-oe),oe=(0>b?-1:1)*oe+a,fe=ke*(oe-a)+x),this.ne(te),this.yf(oe,fe),this.ne(re)):(this.ne(te),this.ne(re),fe=Yt.alloc(),x.mi(fe),ge=fe.ca(re),ke.mi(fe),ye=fe.ca(te),(ge||ye)&&(le=x.ga(UC(le),new it),this.dd(0,this.getLinkPointFromPoint(a,x,le,re,!0,le)),b=ke.ga(UC(b),new it),this.dd(1,this.getLinkPointFromPoint(oe,ke,b,te,!1,b))),Yt.free(fe))}else{be=this.isAvoiding,ke&&(we&&be||ye)&&this.Fj();var Lt=ye?this.computeCurviness():0;be=this.getLinkPoint(a,x,le,!0,we,te,re),Ue=Ke=Ve=0,(we||!fe||ye)&&(Pt=this.computeEndSegmentLength(a,x,le,!0),Ue=this.getLinkDirection(a,x,be,le,!0,we,te,re),ye&&(fe||le.D(b)||!we&&le.x+b.x===1&&le.y+b.y===1)&&(Ue-=we?90:30,0>Lt&&(Ue-=180)),0>Ue?Ue+=360:360<=Ue&&(Ue-=360),ye&&(Pt+=Math.abs(Lt)*(we?1:2)),Ue===0?Ve=Pt:Ue===90?Ke=Pt:Ue===180?Ve=-Pt:Ue===270?Ke=-Pt:(Ve=Pt*Math.cos(Ue*Math.PI/180),Ke=Pt*Math.sin(Ue*Math.PI/180)),le.Mc()&&ye&&(Pt=x.ga(eo,it.alloc()),ft=it.allocAt(Pt.x+1e3*Ve,Pt.y+1e3*Ke),this.getLinkPointFromPoint(a,x,Pt,ft,!0,be),it.free(Pt),it.free(ft))),Pt=this.getLinkPoint(te,re,b,!1,we,a,x);var Ut=Nt=ft=0;if(we||!ge||ye){var tn=this.computeEndSegmentLength(te,re,b,!1);Ut=this.getLinkDirection(te,re,Pt,b,!1,we,a,x),ye&&(ge||le.D(b)||!we&&le.x+b.x===1&&le.y+b.y===1)&&(Ut+=we?0:30,0>Lt&&(Ut+=180)),0>Ut?Ut+=360:360<=Ut&&(Ut-=360),ye&&(tn+=Math.abs(Lt)*(we?1:2)),Ut===0?ft=tn:Ut===90?Nt=tn:Ut===180?ft=-tn:Ut===270?Nt=-tn:(ft=tn*Math.cos(Ut*Math.PI/180),Nt=tn*Math.sin(Ut*Math.PI/180)),b.Mc()&&ye&&(b=re.ga(eo,it.alloc()),le=it.allocAt(b.x+1e3*ft,b.y+1e3*Nt),this.getLinkPointFromPoint(te,re,b,le,!1,Pt),it.free(b),it.free(le))}b=be,(we||!fe||ye)&&(b=new it(be.x+Ve,be.y+Ke)),le=Pt,(we||!ge||ye)&&(le=new it(Pt.x+ft,Pt.y+Nt)),!ke&&!we&&fe&&3<oe&&this.adjustPoints(0,be,oe-2,le)?this.dd(oe-1,Pt):!ke&&!we&&ge&&3<oe&&this.adjustPoints(1,b,oe-1,Pt)?this.dd(0,be):!ke&&(we?6<=oe:4<oe)&&this.adjustPoints(1,b,oe-2,le)?(this.dd(0,be),this.dd(oe-1,Pt)):(this.Fj(),this.ne(be),(we||!fe||ye)&&this.ne(b),we&&this.addOrthoPoints(b,Ue,le,Ut,a,te),(we||!ge||ye)&&this.ne(le),this.ne(Pt))}return!0};function zC(a,x){return Math.abs(x.x-a.x)>Math.abs(x.y-a.y)?(x.x>=a.x?x.x=a.x+9e9:x.x=a.x-9e9,x.y=a.y):(x.y>=a.y?x.y=a.y+9e9:x.y=a.y-9e9,x.x=a.x),x}Ui.prototype.getLinkPointFromPoint=function(a,x,b,te,re,oe){if(oe===void 0&&(oe=new it),a===null||x===null)return oe.assign(b),oe;if(a.isVisible()||(re=a.findVisibleNode(),re!==null&&re!==a&&(x=re.port)),a=null,re=x.panel,re===null||re.se()||(re=re.panel),re===null){re=te.x,te=te.y;var le=b.x;b=b.y}else{a=re.oe,re=1/(a.m11*a.m22-a.m12*a.m21),le=a.m22*re;var fe=-a.m12*re,ge=-a.m21*re,ye=a.m11*re,we=re*(a.m21*a.dy-a.m22*a.dx),be=re*(a.m12*a.dx-a.m11*a.dy);re=te.x*le+te.y*ge+we,te=te.x*fe+te.y*ye+be,le=b.x*le+b.y*ge+we,b=b.x*fe+b.y*ye+be}return x.Sj(re,te,le,b,oe),a!==null&&oe.transform(a),oe};function Pp(a,x){var b=x.Zn;return b===null&&(b=new Aw,b.port=x,b.node=x.part,x.Zn=b),d2(b,a)}Ui.prototype.getLinkPoint=function(a,x,b,te,re,oe,le,fe){if(fe===void 0&&(fe=new it),b.sb()&&!AA(b))return x.ga(b,fe),fe;if(b.$c()){var ge=Pp(this,x);if(ge!==null){if(fe.assign(ge.Zo),re&&this.routing===iv){var ye=Pp(this,le);if(ye!==null&&ge.Gl<ye.Gl){ge=it.alloc(),ye=it.alloc();var we=new Yt(x.ga(Is,ge),x.ga(ws,ye)),be=this.computeSpot(!te,le);a=this.getLinkPoint(oe,le,be,!te,re,a,x,ye),(b.Hf(Aa)||b.Hf(ga))&&a.y>=we.y&&a.y<=we.y+we.height?fe.y=a.y:(b.Hf(Ra)||b.Hf(ol))&&a.x>=we.x&&a.x<=we.x+we.width&&(fe.x=a.x),it.free(ge),it.free(ye)}}return fe}}return b=x.ga(UC(b),it.alloc()),this.pointsCount>(re?6:2)?(le=te?this.i(1):this.i(this.pointsCount-2),re&&(le=zC(b,le.copy()))):(ge=this.computeSpot(!te,le),oe=it.alloc(),le=le.ga(UC(ge),oe),re&&(le=zC(b,le)),it.free(oe)),this.getLinkPointFromPoint(a,x,b,le,te,fe),it.free(b),fe},Ui.prototype.getLinkDirection=function(a,x,b,te,re,oe,le,fe){e:if(te.sb())var ge=te.x>te.y?te.x>1-te.y?0:te.x<1-te.y?270:315:te.x<te.y?te.x>1-te.y?90:te.x<1-te.y?180:135:.5>te.x?225:.5<te.x?45:0;else{if(te.$c()&&(ge=Pp(this,x),ge!==null))switch(ge.Nc){case 1:ge=270;break e;case 2:ge=180;break e;default:case 4:ge=0;break e;case 8:ge=90;break e}ge=x.ga(eo,it.alloc()),this.pointsCount>(oe?6:2)?(fe=re?this.i(1):this.i(this.pointsCount-2),fe=oe?zC(ge,fe.copy()):b):(b=it.alloc(),fe=fe.ga(eo,b),it.free(b)),b=Math.abs(fe.x-ge.x)>Math.abs(fe.y-ge.y)?fe.x>=ge.x?0:180:fe.y>=ge.y?90:270,it.free(ge),ge=b}return te.Mc()&&le.Td(a)&&(ge+=180,360<=ge&&(ge-=360)),AA(te)||(a=x.li(),a===0)||(45<=a&&135>a?ge+=90:135<=a&&225>a?ge+=180:225<=a&&315>a&&(ge+=270),360<=ge&&(ge-=360)),ge},Ui.prototype.computeEndSegmentLength=function(a,x,b,te){return x!==null&&b.$c()&&(a=Pp(this,x),a!==null)?a.Ju:(a=te?this.fromEndSegmentLength:this.toEndSegmentLength,x!==null&&isNaN(a)&&(a=te?x.fromEndSegmentLength:x.toEndSegmentLength),isNaN(a)&&(a=10),a)},Ui.prototype.computeSpot=function(a,x){return x===void 0&&(x=null),a?(a=x||this.fromPort,a===null?a=eo:(x=this.fromSpot,x.Xb()&&(x=a.fromSpot),a=x===Bl?Cs:x)):(a=x||this.toPort,a===null?a=eo:(x=this.toSpot,x.Xb()&&(x=a.toSpot),a=x===Bl?Cs:x)),a};function AA(a){return a===Cs||a.x===.5&&a.y===.5}function UC(a){return a.x===.5&&a.y===.5?a:eo}Ui.prototype.computeOtherPoint=function(a,x){return this.computeAdjusting()!==Th&&4<this.pointsCount?this.computeMidPoint(new it):(a=x.Zn,a=a!==null?d2(a,this):null,a!==null?a.Zo:x.ga(eo))},Ui.prototype.computeShortLength=function(a){if(a){if(a=this.fromShortLength,isNaN(a)){var x=this.fromPort;x!==null&&(a=x.fromShortLength)}return isNaN(a)?0:a}return a=this.toShortLength,isNaN(a)&&(x=this.toPort,x!==null&&(a=x.toShortLength)),isNaN(a)?0:a},Ui.prototype.Cf=function(a,x,b,te,re,oe){if(this.pickable===!1)return!1;x===void 0&&(x=null),b===void 0&&(b=null);var le=oe;if(oe===void 0&&(le=Br.alloc(),le.reset()),le.multiply(this.transform),this.fh(a,le))return h0(this,x,b,re),oe===void 0&&Br.free(le),!0;if(this.Yc(a,le)){var fe=!1;if(!this.isAtomic)for(var ge=this.O.s,ye=ge.length;ye--;){var we=ge[ye];if(we.visible||we===this.locationObject){var be=we.actualBounds,ke=this.naturalBounds;if(!(be.x>ke.width||be.y>ke.height||0>be.x+be.width||0>be.y+be.height)){if(be=Br.alloc(),be.set(le),we instanceof Pi)fe=we.Cf(a,x,b,te,re,be);else if(this.path===we){if(we instanceof xs)if(fe=a,ke=te,we.pickable===!1)fe=!1;else if(be.multiply(we.transform),ke)e:{var Ue=fe,Ve=be;if(we.fh(Ue,Ve))fe=!0;else{if(Ve===void 0&&(Ve=we.transform,Ue.Re(we.actualBounds))){fe=!0;break e}fe=Ue.left,ke=Ue.right;var Ke=Ue.top;Ue=Ue.bottom;var Pt=it.alloc(),ft=it.alloc(),Nt=it.alloc(),Lt=Br.alloc();Lt.set(Ve),Lt.bv(we.transform),Lt.Vj(),ft.x=ke,ft.y=Ke,ft.transform(Lt),Pt.x=fe,Pt.y=Ke,Pt.transform(Lt),Ve=!1,Bx(we,Pt,ft,Nt)?Ve=!0:(Pt.x=ke,Pt.y=Ue,Pt.transform(Lt),Bx(we,Pt,ft,Nt)?Ve=!0:(ft.x=fe,ft.y=Ue,ft.transform(Lt),Bx(we,Pt,ft,Nt)?Ve=!0:(Pt.x=fe,Pt.y=Ke,Pt.transform(Lt),Bx(we,Pt,ft,Nt)&&(Ve=!0)))),Br.free(Lt),it.free(Pt),it.free(ft),it.free(Nt),fe=Ve}}else fe=we.fh(fe,be)}else fe=Uc(we,a,te,be);fe&&(ke=we,x!==null&&(ke=x(we)),ke&&(b===null||b(ke))&&re.add(ke)),Br.free(be)}}}return oe===void 0&&Br.free(le),fe||this.background!==null||this.areaBackground!==null}return oe===void 0&&Br.free(le),!1},Ui.prototype.computeCurve=function(){if(this.Wf===null){var a=this.fromPort,x=this.isOrthogonal;this.Wf=a!==null&&a===this.toPort&&!x}return this.Wf?fd:this.curve},Ui.prototype.computeCorner=function(){if(this.curve===fd)return 0;var a=this.corner;return(isNaN(a)||0>a)&&(a=10),a},Ui.prototype.findMidLabel=function(){for(var a=this.path,x=this.O.s,b=x.length,te=0;te<b;te++){var re=x[te];if(re!==a&&!re.isPanelMain&&(re.segmentIndex===-1/0||isNaN(re.segmentIndex)))return re}for(a=this.labelNodes;a.next();)if(x=a.value,x.segmentIndex===-1/0||isNaN(x.segmentIndex))return x;return null},Ui.prototype.computeSpacing=function(){if(!this.isVisible())return 0;var a=C5;a=Math.max(a,this.computeThickness());var x=this.fromPort,b=this.toPort;if(x!==null&&b!==null){var te=this.findMidLabel();if(te!==null){var re=te.naturalBounds,oe=te.margin,le=isNaN(re.width)?30:re.width*te.scale+oe.left+oe.right;re=isNaN(re.height)?14:re.height*te.scale+oe.top+oe.bottom,te=te.segmentOrientation,te===Rx||te===m0||te===VC?a=Math.max(a,re):te===Cp||te===Ux||te===zx||te===SA?a=Math.max(a,le):(x=x.ga(eo).ab(b.ga(eo))/180*Math.PI,a=Math.max(a,Math.abs(Math.sin(x)*le)+Math.abs(Math.cos(x)*re)+1)),this.curve===fd&&(a*=1.333)}}return a},Ui.prototype.arrangeBundledLinks=function(a,x){if(x)for(x=0;x<a.length;x++){var b=a[x];b.computeAdjusting()===Th&&b.bb()}},Ui.prototype.computeCurviness=function(){var a=this.curviness;if(isNaN(a)){a=Ep;var x=this.Sf;if(x!==null){for(var b=ys(),te=0,re=x.links,oe=0;oe<re.length;oe++){var le=re[oe].computeSpacing();b.push(le),te+=le}for(te=-te/2,oe=0;oe<re.length;oe++){if(re[oe]===this){a=te+b[oe]/2;break}te+=b[oe]}x.Ds===this.fromNode&&(a=-a),As(b)}}return a},Ui.prototype.computeThickness=function(){if(!this.isVisible())return 0;var a=this.path;return a!==null?Math.max(a.strokeWidth,1):1},Ui.prototype.hasCurviness=function(){return!isNaN(this.curviness)||this.Sf!==null},Ui.prototype.adjustPoints=function(a,x,b,te){var re=this.computeAdjusting();if(this.isOrthogonal){if(re===gw)return!1;re===mw&&(re=Ox)}switch(re){case gw:var oe=this.i(a),le=this.i(b);if(!oe.Xa(x)||!le.Xa(te)){re=oe.x,oe=oe.y;var fe=le.x-re,ge=le.y-oe,ye=Math.sqrt(fe*fe+ge*ge);if(!_t.$(ye,0)){if(_t.$(fe,0))var we=0>ge?-Math.PI/2:Math.PI/2;else we=Math.atan(ge/Math.abs(fe)),0>fe&&(we=Math.PI-we);le=x.x;var be=x.y;fe=te.x-le;var ke=te.y-be;for(ge=Math.sqrt(fe*fe+ke*ke),_t.$(fe,0)?ke=0>ke?-Math.PI/2:Math.PI/2:(ke=Math.atan(ke/Math.abs(fe)),0>fe&&(ke=Math.PI-ke)),ye=ge/ye,we=ke-we,this.dd(a,x),a+=1;a<b;a++)x=this.i(a),fe=x.x-re,ge=x.y-oe,x=Math.sqrt(fe*fe+ge*ge),_t.$(x,0)||(_t.$(fe,0)?ge=0>ge?-Math.PI/2:Math.PI/2:(ge=Math.atan(ge/Math.abs(fe)),0>fe&&(ge=Math.PI-ge)),fe=ge+we,x*=ye,this.L(a,le+x*Math.cos(fe),be+x*Math.sin(fe)));this.dd(b,te)}}return!0;case mw:if(oe=this.i(a),be=this.i(b),!oe.Xa(x)||!be.Xa(te)){re=oe.x,oe=oe.y,le=be.x,be=be.y,ye=(le-re)*(le-re)+(be-oe)*(be-oe),fe=x.x,we=x.y,ge=te.x,ke=te.y;var Ue=1;if(ge-fe!==0){var Ve=(ke-we)/(ge-fe);Ue=Math.sqrt(1+1/(Ve*Ve))}else Ve=9e9;for(this.dd(a,x),a+=1;a<b;a++){x=this.i(a);var Ke=x.x,Pt=x.y,ft=.5;ye!==0&&(ft=((re-Ke)*(re-le)+(oe-Pt)*(oe-be))/ye);var Nt=re+ft*(le-re),Lt=oe+ft*(be-oe);x=Math.sqrt((Ke-Nt)*(Ke-Nt)+(Pt-Lt)*(Pt-Lt)),Pt<Ve*(Ke-Nt)+Lt&&(x=-x),0<Ve&&(x=-x),Ke=fe+ft*(ge-fe),ft=we+ft*(ke-we),Ve!==0?(x=Ke+x/Ue,this.L(a,x,ft-(x-Ke)/Ve)):this.L(a,Ke,ft+x)}this.dd(b,te)}return!0;case Ox:e:{if(this.isOrthogonal&&(re=this.i(a),oe=this.i(a+1),le=this.i(a+2),fe=oe.x,we=oe.y,be=fe,ye=we,_t.B(re.y,oe.y)?_t.B(oe.x,le.x)?we=x.y:_t.B(oe.y,le.y)&&(fe=x.x):_t.B(re.x,oe.x)&&(_t.B(oe.y,le.y)?fe=x.x:_t.B(oe.x,le.x)&&(we=x.y)),this.L(a+1,fe,we),re=this.i(b),oe=this.i(b-1),le=this.i(b-2),fe=oe.x,we=oe.y,ge=fe,ke=we,_t.B(re.y,oe.y)?_t.B(oe.x,le.x)?we=te.y:_t.B(oe.y,le.y)&&(fe=te.x):_t.B(re.x,oe.x)&&(_t.B(oe.y,le.y)?fe=te.x:_t.B(oe.x,le.x)&&(we=te.y)),this.L(b-1,fe,we),HC(this))){this.L(a+1,be,ye),this.L(b-1,ge,ke),b=!1;break e}this.dd(a,x),this.dd(b,te),b=!0}return b;default:return!1}},Ui.prototype.addOrthoPoints=function(a,x,b,te,re,oe){0>x?x+=360:360<=x&&(x-=360),0>te?te+=360:360<=te&&(te-=360);var le=te;x=315<=x||45>x?0:45<=x&&135>x?90:135<=x&&225>x?180:270,te=315<=te||45>te?0:45<=te&&135>te?90:135<=te&&225>te?180:270;var fe=re.actualBounds.copy(),ge=oe.actualBounds.copy();if(fe.w()&&ge.w()){fe.Bc(Zd,Zd),ge.Bc(Zd,Zd),fe.Ye(a),ge.Ye(b);var ye=it.alloc(),we=it.alloc();x===0?b.x>a.x||te===270&&b.y<a.y&&ge.right>a.x||te===90&&b.y>a.y&&ge.right>a.x?(ye.h(b.x,a.y),we.h(b.x,(a.y+b.y)/2),te===180?(ye.x=this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!1),we.x=ye.x,we.y=b.y):te===270&&b.y<a.y||te===90&&b.y>a.y?(ye.x=a.x<ge.left?this.computeMidOrthoPosition(a.x,a.y,ge.left,b.y,!1):a.x<ge.right&&(te===270&&a.y<ge.top||te===90&&a.y>ge.bottom)?this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!1):ge.right,we.x=ye.x,we.y=b.y):te===0&&a.x<ge.left&&a.y>ge.top&&a.y<ge.bottom&&(ye.x=a.x,ye.y=a.y<b.y?Math.min(b.y,ge.top):Math.max(b.y,ge.bottom),we.y=ye.y)):(ye.h(a.x,b.y),we.h((a.x+b.x)/2,b.y),(te===180||te===90&&b.y<fe.top||te===270&&b.y>fe.bottom)&&(te===180&&(ge.ca(a)||fe.ca(b))?ye.y=this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!0):b.y<a.y&&(te===180||te===90)?ye.y=this.computeMidOrthoPosition(a.x,fe.top,b.x,Math.max(b.y,ge.bottom),!0):b.y>a.y&&(te===180||te===270)&&(ye.y=this.computeMidOrthoPosition(a.x,fe.bottom,b.x,Math.min(b.y,ge.top),!0)),we.x=b.x,we.y=ye.y),ye.y>fe.top&&ye.y<fe.bottom&&(b.x>=fe.left&&b.x<=a.x||a.x<=ge.right&&a.x>=b.x?(te===90||te===270)&&(ye.h(Math.max((a.x+b.x)/2,a.x),a.y),we.h(ye.x,b.y)):(ye.y=te===270||(te===0||te===180)&&b.y<a.y?Math.min(b.y,te===0?fe.top:Math.min(fe.top,ge.top)):Math.max(b.y,te===0?fe.bottom:Math.max(fe.bottom,ge.bottom)),we.x=b.x,we.y=ye.y))):x===180?b.x<a.x||te===270&&b.y<a.y&&ge.left<a.x||te===90&&b.y>a.y&&ge.left<a.x?(ye.h(b.x,a.y),we.h(b.x,(a.y+b.y)/2),te===0?(ye.x=this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!1),we.x=ye.x,we.y=b.y):te===270&&b.y<a.y||te===90&&b.y>a.y?(ye.x=a.x>ge.right?this.computeMidOrthoPosition(a.x,a.y,ge.right,b.y,!1):a.x>ge.left&&(te===270&&a.y<ge.top||te===90&&a.y>ge.bottom)?this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!1):ge.left,we.x=ye.x,we.y=b.y):te===180&&a.x>ge.right&&a.y>ge.top&&a.y<ge.bottom&&(ye.x=a.x,ye.y=a.y<b.y?Math.min(b.y,ge.top):Math.max(b.y,ge.bottom),we.y=ye.y)):(ye.h(a.x,b.y),we.h((a.x+b.x)/2,b.y),(te===0||te===90&&b.y<fe.top||te===270&&b.y>fe.bottom)&&(te===0&&(ge.ca(a)||fe.ca(b))?ye.y=this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!0):b.y<a.y&&(te===0||te===90)?ye.y=this.computeMidOrthoPosition(a.x,fe.top,b.x,Math.max(b.y,ge.bottom),!0):b.y>a.y&&(te===0||te===270)&&(ye.y=this.computeMidOrthoPosition(a.x,fe.bottom,b.x,Math.min(b.y,ge.top),!0)),we.x=b.x,we.y=ye.y),ye.y>fe.top&&ye.y<fe.bottom&&(b.x<=fe.right&&b.x>=a.x||a.x>=ge.left&&a.x<=b.x?(te===90||te===270)&&(ye.h(Math.min((a.x+b.x)/2,a.x),a.y),we.h(ye.x,b.y)):(ye.y=te===270||(te===0||te===180)&&b.y<a.y?Math.min(b.y,te===180?fe.top:Math.min(fe.top,ge.top)):Math.max(b.y,te===180?fe.bottom:Math.max(fe.bottom,ge.bottom)),we.x=b.x,we.y=ye.y))):x===90?b.y>a.y||te===180&&b.x<a.x&&ge.bottom>a.y||te===0&&b.x>a.x&&ge.bottom>a.y?(ye.h(a.x,b.y),we.h((a.x+b.x)/2,b.y),te===270?(ye.y=this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!0),we.x=b.x,we.y=ye.y):te===180&&b.x<a.x||te===0&&b.x>a.x?(ye.y=a.y<ge.top?this.computeMidOrthoPosition(a.x,a.y,b.x,ge.top,!0):a.y<ge.bottom&&(te===180&&a.x<ge.left||te===0&&a.x>ge.right)?this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!0):ge.bottom,we.x=b.x,we.y=ye.y):te===90&&a.y<ge.top&&a.x>ge.left&&a.x<ge.right&&(ye.x=a.x<b.x?Math.min(b.x,ge.left):Math.max(b.x,ge.right),ye.y=a.y,we.x=ye.x)):(ye.h(b.x,a.y),we.h(b.x,(a.y+b.y)/2),(te===270||te===0&&b.x<fe.left||te===180&&b.x>fe.right)&&(te===270&&(ge.ca(a)||fe.ca(b))?ye.x=this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!1):b.x<a.x&&(te===270||te===0)?ye.x=this.computeMidOrthoPosition(fe.left,a.y,Math.max(b.x,ge.right),b.y,!1):b.x>a.x&&(te===270||te===180)&&(ye.x=this.computeMidOrthoPosition(fe.right,a.y,Math.min(b.x,ge.left),b.y,!1)),we.x=ye.x,we.y=b.y),ye.x>fe.left&&ye.x<fe.right&&(b.y>=fe.top&&b.y<=a.y||a.y<=ge.bottom&&a.y>=b.y?(te===0||te===180)&&(ye.h(a.x,Math.max((a.y+b.y)/2,a.y)),we.h(b.x,ye.y)):(ye.x=te===180||(te===90||te===270)&&b.x<a.x?Math.min(b.x,te===90?fe.left:Math.min(fe.left,ge.left)):Math.max(b.x,te===90?fe.right:Math.max(fe.right,ge.right)),we.x=ye.x,we.y=b.y))):b.y<a.y||te===180&&b.x<a.x&&ge.top<a.y||te===0&&b.x>a.x&&ge.top<a.y?(ye.h(a.x,b.y),we.h((a.x+b.x)/2,b.y),te===90?(ye.y=this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!0),we.x=b.x,we.y=ye.y):te===180&&b.x<a.x||te===0&&b.x>=a.x?(ye.y=a.y>ge.bottom?this.computeMidOrthoPosition(a.x,a.y,b.x,ge.bottom,!0):a.y>ge.top&&(te===180&&a.x<ge.left||te===0&&a.x>ge.right)?this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!0):ge.top,we.x=b.x,we.y=ye.y):te===270&&a.y>ge.bottom&&a.x>ge.left&&a.x<ge.right&&(ye.x=a.x<b.x?Math.min(b.x,ge.left):Math.max(b.x,ge.right),ye.y=a.y,we.x=ye.x)):(ye.h(b.x,a.y),we.h(b.x,(a.y+b.y)/2),(te===90||te===0&&b.x<fe.left||te===180&&b.x>fe.right)&&(te===90&&(ge.ca(a)||fe.ca(b))?ye.x=this.computeMidOrthoPosition(a.x,a.y,b.x,b.y,!1):b.x<a.x&&(te===90||te===0)?ye.x=this.computeMidOrthoPosition(fe.left,a.y,Math.max(b.x,ge.right),b.y,!1):b.x>a.x&&(te===90||te===180)&&(ye.x=this.computeMidOrthoPosition(fe.right,a.y,Math.min(b.x,ge.left),b.y,!1)),we.x=ye.x,we.y=b.y),ye.x>fe.left&&ye.x<fe.right&&(b.y<=fe.bottom&&b.y>=a.y||a.y>=ge.top&&a.y<=b.y?(te===0||te===180)&&(ye.h(a.x,Math.min((a.y+b.y)/2,a.y)),we.h(b.x,ye.y)):(ye.x=te===180||(te===90||te===270)&&b.x<a.x?Math.min(b.x,te===270?fe.left:Math.min(fe.left,ge.left)):Math.max(b.x,te===270?fe.right:Math.max(fe.right,ge.right)),we.x=ye.x,we.y=b.y)));var be=b;if(this.isAvoiding){var ke=this.diagram;if(ke===null||re===oe||this.layer.isTemporary||!$1(ke)||fe.ca(be)&&!oe.Td(re)||ge.ca(a)&&!re.Td(oe))x=!1;else{var Ue=ew(ke,!0,this.containingGroup,null);if(this.segmentIndex!==17&&Ue.Yj(Math.min(a.x,ye.x),Math.min(a.y,ye.y),Math.abs(a.x-ye.x),Math.abs(a.y-ye.y))&&Ue.Yj(Math.min(ye.x,we.x),Math.min(ye.y,we.y),Math.abs(ye.x-we.x),Math.abs(ye.y-we.y))&&Ue.Yj(Math.min(we.x,be.x),Math.min(we.y,be.y),Math.abs(we.x-be.x),Math.abs(we.y-be.y)))x=!1;else{re=a,oe=be;var Ve=b=null;if(ke.isVirtualized){ke=Ue.bounds.copy(),ke.Bc(-Ue.Ho,-Ue.Go);var Ke=it.alloc();vw(Ue,a.x,a.y)||(_t.Ff(ke.x,ke.y,ke.x+ke.width,ke.y+ke.height,a.x,a.y,ye.x,ye.y,Ke)?(b=a=Ke.copy(),x=Ke.ab(ye)):_t.Ff(ke.x,ke.y,ke.x+ke.width,ke.y+ke.height,ye.x,ye.y,we.x,we.y,Ke)?(b=a=Ke.copy(),x=Ke.ab(we)):_t.Ff(ke.x,ke.y,ke.x+ke.width,ke.y+ke.height,we.x,we.y,be.x,be.y,Ke)&&(b=a=Ke.copy(),x=Ke.ab(be))),vw(Ue,be.x,be.y)||(_t.Ff(ke.x,ke.y,ke.x+ke.width,ke.y+ke.height,be.x,be.y,we.x,we.y,Ke)?(Ve=be=Ke.copy(),te=we.ab(Ke)):_t.Ff(ke.x,ke.y,ke.x+ke.width,ke.y+ke.height,we.x,we.y,ye.x,ye.y,Ke)?(Ve=be=Ke.copy(),te=ye.ab(Ke)):_t.Ff(ke.x,ke.y,ke.x+ke.width,ke.y+ke.height,ye.x,ye.y,a.x,a.y,Ke)&&(Ve=be=Ke.copy(),te=a.ab(Ke))),it.free(Ke)}fe=fe.copy().ed(ge),fe.Bc(Ue.Ho*Ue.Os,Ue.Go*Ue.Os),E5(Ue,a,x,be,te,fe,!0),ge=Qh(Ue,be.x,be.y),!Ue.abort&&ge>=tP&&(yw(Ue),fe.Bc(Ue.Ho*Ue.Hx,Ue.Go*Ue.Ix),E5(Ue,a,x,be,te,fe,!1),ge=Qh(Ue,be.x,be.y)),!Ue.abort&&ge<tP&&Qh(Ue,be.x,be.y)!==dy?(xA(this,Ue,be.x,be.y,te,!0,le),fe=this.i(2),4>this.pointsCount?(x===0||x===180?(fe.x=a.x,fe.y=be.y):(fe.x=be.x,fe.y=a.y),this.L(2,fe.x,fe.y),this.m(3,fe.x,fe.y)):(le=this.i(3),x===0||x===180?_t.B(fe.x,le.x)?(fe=x===0?Math.max(fe.x,a.x):Math.min(fe.x,a.x),this.L(2,fe,a.y),this.L(3,fe,le.y)):_t.B(fe.y,le.y)?(Math.abs(a.y-fe.y)<=Ue.Go/2&&(this.L(2,fe.x,a.y),this.L(3,le.x,a.y)),this.m(2,fe.x,a.y)):this.L(2,a.x,fe.y):(x===90||x===270)&&(_t.B(fe.y,le.y)?(fe=x===90?Math.max(fe.y,a.y):Math.min(fe.y,a.y),this.L(2,a.x,fe),this.L(3,le.x,fe)):_t.B(fe.x,le.x)?(Math.abs(a.x-fe.x)<=Ue.Ho/2&&(this.L(2,a.x,fe.y),this.L(3,a.x,le.y)),this.m(2,a.x,fe.y)):this.L(2,fe.x,a.y))),b!==null&&(a=this.i(1),le=this.i(2),a.x!==le.x&&a.y!==le.y?x===0||x===180?this.m(2,a.x,le.y):this.m(2,le.x,a.y):x===0||x===180?this.m(2,re.x,b.y):this.m(2,b.x,re.y)),Ve!==null&&(te===0||te===180?this.yf(oe.x,Ve.y):this.yf(Ve.x,oe.y)),x=!0):x=!1}}}else x=!1;x||(this.ne(ye.copy()),this.ne(we.copy())),it.free(ye),it.free(we)}},Ui.prototype.computeMidOrthoPosition=function(a,x,b,te,re){var oe=0;return!this.hasCurviness()||this.computeSpot(!0,this.fromPort).$c()||this.computeSpot(!1,this.toPort).$c()||(oe=this.computeCurviness()),re?(x+te)/2+oe:(a+b)/2+oe};function HC(a){if(a.diagram===null||!a.isAvoiding||!$1(a.diagram))return!1;var x=a.points.s,b=x.length;if(4>b)return!1;a=ew(a.diagram,!0,a.containingGroup,null);for(var te=1;te<b-2;te++){var re=x[te],oe=x[te+1];if(!a.Yj(Math.min(re.x,oe.x),Math.min(re.y,oe.y),Math.abs(re.x-oe.x),Math.abs(re.y-oe.y)))return!0}return!1}function xA(a,x,b,te,re,oe,le){var fe=x.Ho,ge=x.Go,ye=Qh(x,b,te),we=b,be=te;for(re===0?we+=fe:re===90?be+=ge:re===180?we-=fe:be-=ge,re!==le&&ye>Vx&&Qh(x,we,be)!==ye-1&&(Qh(x,b-fe,te)===ye-1?(re=180,we=b-fe,be=te):Qh(x,b+fe,te)===ye-1?(re=0,we=b+fe,be=te):Qh(x,b,te-ge)===ye-1?(re=270,we=b,be=te-ge):Qh(x,b,te+ge)===ye-1&&(re=90,we=b,be=te+ge));ye>Vx&&Qh(x,we,be)===ye-1;)b=we,te=be,re===0?we+=fe:re===90?be+=ge:re===180?we-=fe:be-=ge,--ye;oe?ye>Vx&&(re===180||re===0?b=Math.floor(b/fe)*fe+fe/2:(re===90||re===270)&&(te=Math.floor(te/ge)*ge+ge/2)):(b=Math.floor(b/fe)*fe+fe/2,te=Math.floor(te/ge)*ge+ge/2),ye>Vx&&(oe=re,le=b,we=te,re===0?(oe=90,we+=ge):re===90?(oe=180,le-=fe):re===180?(oe=270,we-=ge):re===270&&(oe=0,le+=fe),Qh(x,le,we)===ye-1?xA(a,x,le,we,oe,!1,oe):(le=b,we=te,re===0?(oe=270,we-=ge):re===90?(oe=0,le+=fe):re===180?(oe=90,we+=ge):re===270&&(oe=180,le-=fe),Qh(x,le,we)===ye-1&&xA(a,x,le,we,oe,!1,oe))),a.yf(b,te)}Ui.prototype.ez=function(a){var x=a.x;a=a.y;for(var b=this.i(0),te=this.i(1),re=vo(x,a,b.x,b.y,te.x,te.y),oe=0,le=1;le<this.pointsCount-1;le++){b=this.i(le+1);var fe=vo(x,a,te.x,te.y,b.x,b.y);te=b,fe<re&&(oe=le,re=fe)}return oe},Ui.prototype.qc=function(){this.lk=!1,this.v()},Ui.prototype.Ul=function(a){if(!(!a&&(this.fd===!1||(a=this.Pb(),this.lk&&(a===null||a.geometry!==null))))&&(2>this.pointsCount?this.lk=!0:this.ua=this.makeGeometry(),a=this.path,a!==null)){a.ua=this.ua;for(var x=this.O.s,b=x.length,te=0;te<b;te++){var re=x[te];re!==a&&re.isPanelMain&&re instanceof xs&&(re.ua=this.ua)}}},Ui.prototype.makeGeometry=function(){var a=this.ua,x=this.pointsCount,b=!1,te=this.diagram;te!==null&&uy(this)&&te.Eh.contains(this)&&(this.ml.width!==0||this.ml.height!==0)&&(te.animationManager.isAnimating||te.currentTool!==te.toolManager)&&(b=!0);var re=this.i(0).copy(),oe=re.copy();te=this.Nb.s;var le=this.computeCurve();if(le===fd&&3<=x&&!_t.$(this.smoothness,0))if(x===3){var fe=this.i(1);te=Math.min(re.x,fe.x);var ge=Math.min(re.y,fe.y);fe=this.i(2),te=Math.min(te,fe.x),ge=Math.min(ge,fe.y)}else{if(this.isOrthogonal)for(ge=0;ge<x;ge++)fe=te[ge],oe.x=Math.min(fe.x,oe.x),oe.y=Math.min(fe.y,oe.y);else for(te=3;te<x;te+=3)te+3>=x&&(te=x-1),ge=this.i(te),oe.x=Math.min(ge.x,oe.x),oe.y=Math.min(ge.y,oe.y);te=oe.x,ge=oe.y}else{for(ge=0;ge<x;ge++)fe=te[ge],oe.x=Math.min(fe.x,oe.x),oe.y=Math.min(fe.y,oe.y);te=oe.x,ge=oe.y}if(te-=this.su.x,ge-=this.su.y,re.x-=te,re.y-=ge,x!==2||uy(this)){if(a.type=ai.o,fe=a2(a),this.computeShortLength(!0)!==0&&(re=tv(this,re,!0,oe)),fA(fe,re.x,re.y,!1),le===fd&&3<=x&&!_t.$(this.smoothness,0))if(x===3)b=this.i(1),x=b.x-te,b=b.y-ge,re=this.i(2).copy(),re.x-=te,re.y-=ge,this.computeShortLength(!1)!==0&&(re=tv(this,re,!1,oe)),_0(fe,x,b,x,b,re.x,re.y);else if(this.isOrthogonal){x=it.allocAt(te,ge),b=it.alloc(),b.assign(this.i(1)),oe=it.allocAt(te,ge),re=it.allocAt(te,ge),le=this.i(0);for(var ye,we=this.smoothness/3,be=1;be<this.pointsCount-1;be++){ye=this.i(be);var ke=le,Ue=ye,Ve=this.i(Ix(this,ye,be,!1));if((!_t.$(ke.x,Ue.x)||!_t.$(Ue.x,Ve.x))&&(!_t.$(ke.y,Ue.y)||!_t.$(Ue.y,Ve.y))){var Ke=we;isNaN(Ke)&&(Ke=this.smoothness/3);var Pt=ke.x;ke=ke.y;var ft=Ue.x;Ue=Ue.y;var Nt=Ve.x;Ve=Ve.y;var Lt=Ke*Om(Pt,ke,ft,Ue);Ke*=Om(ft,Ue,Nt,Ve),_t.$(ke,Ue)&&_t.$(ft,Nt)&&(ft>Pt?Ve>Ue?(oe.x=ft-Lt,oe.y=Ue-Lt,re.x=ft+Ke,re.y=Ue+Ke):(oe.x=ft-Lt,oe.y=Ue+Lt,re.x=ft+Ke,re.y=Ue-Ke):Ve>Ue?(oe.x=ft+Lt,oe.y=Ue-Lt,re.x=ft-Ke,re.y=Ue+Ke):(oe.x=ft+Lt,oe.y=Ue+Lt,re.x=ft-Ke,re.y=Ue-Ke)),_t.$(Pt,ft)&&_t.$(Ue,Ve)&&(Ue>ke?(Nt>ft?(oe.x=ft-Lt,oe.y=Ue-Lt,re.x=ft+Ke):(oe.x=ft+Lt,oe.y=Ue-Lt,re.x=ft-Ke),re.y=Ue+Ke):(Nt>ft?(oe.x=ft-Lt,oe.y=Ue+Lt,re.x=ft+Ke):(oe.x=ft+Lt,oe.y=Ue+Lt,re.x=ft-Ke),re.y=Ue-Ke)),(_t.$(Pt,ft)&&_t.$(ft,Nt)||_t.$(ke,Ue)&&_t.$(Ue,Ve))&&(Pt=.5*(Pt+Nt),ke=.5*(ke+Ve),oe.x=Pt,oe.y=ke,re.x=Pt,re.y=ke),(be===1||be===2&&_t.$(le.x,this.i(0).x)&&_t.$(le.y,this.i(0).y))&&(b.x=.5*(le.x+ye.x),b.y=.5*(le.y+ye.y)),_0(fe,b.x-te,b.y-ge,oe.x-te,oe.y-ge,ye.x-te,ye.y-ge),x.set(oe),b.set(re),le=ye}}ye=le.x,le=le.y,we=this.i(this.pointsCount-1),this.computeShortLength(!1)!==0&&(we=tv(this,we.copy(),!1,fr)),ye=.5*(ye+we.x),le=.5*(le+we.y),_0(fe,re.x-te,re.y-ge,ye-te,le-ge,we.x-te,we.y-ge),it.free(x),it.free(b),it.free(oe),it.free(re)}else for(b=3;b<x;b+=3)oe=this.i(b-2),b+3>=x&&(b=x-1),re=this.i(b-1),le=this.i(b),b===x-1&&this.computeShortLength(!1)!==0&&(le=tv(this,le.copy(),!1,fr)),_0(fe,oe.x-te,oe.y-ge,re.x-te,re.y-ge,le.x-te,le.y-ge);else{for(oe=it.alloc(),oe.assign(this.i(0)),re=it.alloc(),re.assign(oe),le=this.computeCorner(),be=1,ye=0;be<x;){if(be=Ix(this,oe,be,1<be),we=this.i(be),be>=x-1){if(!oe.D(we))this.computeShortLength(!1)!==0&&(we=tv(this,we.copy(),!1,fr)),kx(this,fe,-te,-ge,oe,we,b);else if(ye===0)for(be=1;be<x;)re.assign(oe),we=this.i(be++),kx(this,fe,-te,-ge,oe,we,b),oe.assign(we);break}if(ye=Ix(this,we,be+1,be<x-3),be=-te,Pt=-ge,ke=we,ft=this.i(ye),Ke=b,_t.B(oe.y,ke.y)&&_t.B(ke.x,ft.x))if(Ve=Math.min(le,Math.abs(ke.x-re.x)/2),Ve=Lt=Math.min(Ve,Math.abs(ft.y-ke.y)/2),_t.B(Ve,0))kx(this,fe,be,Pt,oe,ke,Ke),oe.assign(ke);else{var Ut=ke.x,tn=ke.y;Ue=Ut,Nt=tn,ke.x>oe.x?Ut=ke.x-Ve:Ut=ke.x+Ve,ft.y>ke.y?Nt=ke.y+Lt:Nt=ke.y-Lt,ft=it.allocAt(Ut,tn),kx(this,fe,be,Pt,oe,ft,Ke),it.free(ft),sy(fe,ke.x+be,ke.y+Pt,Ue+be,Nt+Pt),oe.h(Ue,Nt)}else _t.B(oe.x,ke.x)&&_t.B(ke.y,ft.y)?(Ve=Math.min(le,Math.abs(ke.y-re.y)/2),Ve=Lt=Math.min(Ve,Math.abs(ft.x-ke.x)/2),_t.B(Lt,0)?(kx(this,fe,be,Pt,oe,ke,Ke),oe.assign(ke)):(Ut=ke.x,tn=ke.y,Ue=Ut,Nt=tn,ke.y>oe.y?tn=ke.y-Ve:tn=ke.y+Ve,ft.x>ke.x?Ue=ke.x+Lt:Ue=ke.x-Lt,ft=it.allocAt(Ut,tn),kx(this,fe,be,Pt,oe,ft,Ke),it.free(ft),sy(fe,ke.x+be,ke.y+Pt,Ue+be,Nt+Pt),oe.h(Ue,Nt))):(kx(this,fe,be,Pt,oe,ke,Ke),oe.assign(ke));re.assign(we),be=ye}it.free(oe)}QS=fe}else fe=this.i(1).copy(),fe.x-=te,fe.y-=ge,this.computeShortLength(!0)!==0&&(re=tv(this,re,!0,oe)),this.computeShortLength(!1)!==0&&(fe=tv(this,fe,!1,oe)),a.type=ai.j,a.startX=re.x,a.startY=re.y,a.endX=fe.x,a.endY=fe.y;return this.lk=!0,a};function Om(a,x,b,te){return a=b-a,isNaN(a)||a===1/0||a===-1/0?NaN:(0>a&&(a=-a),x=te-x,isNaN(x)||x===1/0||x===-1/0?NaN:(0>x&&(x=-x),_t.$(a,0)?x:_t.$(x,0)?a:Math.sqrt(a*a+x*x)))}function tv(a,x,b,te){var re=a.pointsCount;if(2>re)return x;if(b){var oe=a.i(1);if(b=oe.x-te.x,oe=oe.y-te.y,te=Om(x.x,x.y,b,oe),te===0)return x;re=re===2?.5*te:te,a=a.computeShortLength(!0),a>re&&(a=re),re=a*(oe-x.y)/te,x.x+=a*(b-x.x)/te,x.y+=re}else{if(oe=a.i(re-2),b=oe.x-te.x,oe=oe.y-te.y,te=Om(x.x,x.y,b,oe),te===0)return x;re=re===2?.5*te:te,a=a.computeShortLength(!1),a>re&&(a=re),re=a*(x.y-oe)/te,x.x-=a*(x.x-b)/te,x.y-=re}return x}function Ix(a,x,b,te){for(var re=a.pointsCount,oe=x;_t.$(x.x,oe.x)&&_t.$(x.y,oe.y);){if(b>=re)return re-1;oe=a.i(b++)}if(!_t.$(x.x,oe.x)&&!_t.$(x.y,oe.y))return b-1;for(var le=oe;_t.$(x.x,oe.x)&&_t.$(oe.x,le.x)&&(!te||(x.y>=oe.y?oe.y>=le.y:oe.y<=le.y))||_t.$(x.y,oe.y)&&_t.$(oe.y,le.y)&&(!te||(x.x>=oe.x?oe.x>=le.x:oe.x<=le.x));){if(b>=re)return re-1;le=a.i(b++)}return b-2}Ui.prototype.computeJumpLength=function(){return 10};function kx(a,x,b,te,re,oe,le){if(!le&&uy(a)){le=a.computeJumpLength();var fe=le/2,ge=[],ye=0;if(a.isVisible()&&(ye=o3(a,re,oe,ge)),0<ye){if(_t.B(re.y,oe.y))if(re.x<oe.x)for(var we=0;we<ye;){var be=Math.max(re.x,Math.min(ge[we++]-fe,oe.x-le));x.lineTo(be+b,oe.y+te);for(var ke=be+b,Ue=Math.min(be+le,oe.x);we<ye&&(be=ge[we],be<Ue+le);)we++,Ue=Math.min(be+fe,oe.x);be=oe.y-le+te,Ue+=b;var Ve=oe.y+te;a.curve===g0?fA(x,Ue,Ve,!1):_0(x,ke,be,Ue,be,Ue,Ve)}else for(--ye;0<=ye;){for(we=Math.min(re.x,Math.max(ge[ye--]+fe,oe.x+le)),x.lineTo(we+b,oe.y+te),ke=we+b,be=Math.max(we-le,oe.x);0<=ye&&(we=ge[ye],we>be-le);)ye--,be=Math.max(we-fe,oe.x);we=oe.y-le+te,be+=b,Ue=oe.y+te,a.curve===g0?fA(x,be,Ue,!1):_0(x,ke,we,be,we,be,Ue)}else if(_t.B(re.x,oe.x))if(re.y<oe.y)for(we=0;we<ye;){for(be=Math.max(re.y,Math.min(ge[we++]-fe,oe.y-le)),x.lineTo(oe.x+b,be+te),ke=be+te,be=Math.min(be+le,oe.y);we<ye&&(Ue=ge[we],Ue<be+le);)we++,be=Math.min(Ue+fe,oe.y);Ue=oe.x-le+b,Ve=oe.x+b,be+=te,a.curve===g0?fA(x,Ve,be,!1):_0(x,Ue,ke,Ue,be,Ve,be)}else for(--ye;0<=ye;){for(we=Math.min(re.y,Math.max(ge[ye--]+fe,oe.y+le)),x.lineTo(oe.x+b,we+te),ke=we+te,we=Math.max(we-le,oe.y);0<=ye&&(be=ge[ye],be>we-le);)ye--,we=Math.max(be-fe,oe.y);be=oe.x-le+b,Ue=oe.x+b,we+=te,a.curve===g0?fA(x,Ue,we,!1):_0(x,be,ke,be,we,Ue,we)}}}x.lineTo(oe.x+b,oe.y+te)}function o3(a,x,b,te){var re=a.diagram;if(re===null||x.D(b))return 0;for(re=re.layers;re.next();){var oe=re.value;if(oe!==null&&oe.visible){oe=oe.Pa.s;for(var le=oe.length,fe=0;fe<le;fe++){var ge=oe[fe];if(ge instanceof Ui){if(ge===a)return 0<te.length&&te.sort(function(we,be){return we-be}),te.length;if(ge.isVisible()&&uy(ge)){var ye=ge.routeBounds;ye.w()&&a.routeBounds.Yc(ye)&&!a.usesSamePort(ge)&&(ye=ge.path,ye!==null&&ye.Ed()&&P5(x,b,te,ge))}}}}}return 0<te.length&&te.sort(function(we,be){return we-be}),te.length}function P5(a,x,b,te){for(var re=_t.B(a.y,x.y),oe=te.pointsCount,le=te.i(0),fe=it.alloc(),ge=1;ge<oe;ge++){var ye=te.i(ge);if(ge<oe-1){var we=te.i(ge+1);if(le.y===ye.y&&ye.y===we.y){if(ye.x>le.x&&we.x>=ye.x||ye.x<le.x&&we.x<=ye.x)continue}else if(le.x===ye.x&&ye.x===we.x&&(ye.y>le.y&&we.y>=ye.y||ye.y<le.y&&we.y<=ye.y))continue}e:{we=a.x;var be=a.y,ke=x.x,Ue=x.y,Ve=le.x;le=le.y;var Ke=ye.x,Pt=ye.y;if(_t.B(we,ke)){if(!_t.B(be,Ue)&&_t.B(le,Pt)&&Math.min(be,Ue)<le&&Math.max(be,Ue)>le&&Math.min(Ve,Ke)<we&&Math.max(Ve,Ke)>we&&!_t.B(Ve,Ke)){fe.x=we,fe.y=le,we=!0;break e}}else if(_t.B(be,Ue)&&_t.B(Ve,Ke)&&Math.min(we,ke)<Ve&&Math.max(we,ke)>Ve&&Math.min(le,Pt)<be&&Math.max(le,Pt)>be&&!_t.B(le,Pt)){fe.x=Ve,fe.y=be,we=!0;break e}fe.x=0,fe.y=0,we=!1}we&&(re?b.push(fe.x):b.push(fe.y)),le=ye}it.free(fe)}function uy(a){return a=a.curve,a===wA||a===g0}function $S(a,x){(x||uy(a))&&(x=a.diagram,x===null||x.animationManager.isTicking||x.Eh.contains(a)||a.ml.width===0&&a.ml.height===0||x.Eh.add(a,a.ml.copy()))}Ui.prototype.Xo=function(a){var x=this.layer;if(x!==null&&x.visible&&!x.isTemporary){var b=x.diagram;if(b!==null&&!b.animationManager.isTicking){var te=!1;for(b=b.layers;b.next();){var re=b.value;if(re.visible){if(re===x){te=!0;var oe=!1;re=re.Pa.s;for(var le=re.length,fe=0;fe<le;fe++){var ge=re[fe];ge instanceof Ui&&(ge===this?oe=!0:oe&&u2(this,ge,a))}}else if(te)for(oe=re.Pa.s,re=oe.length,le=0;le<re;le++)fe=oe[le],fe instanceof Ui&&u2(this,fe,a)}}}}};function u2(a,x,b){if(x!==null&&x.lk&&x.fd&&uy(x)){var te=x.routeBounds;te.w()&&(a.routeBounds.Yc(te)||b.Yc(te))&&(a.usesSamePort(x)||x.qc())}}Ui.prototype.usesSamePort=function(a){var x=this.pointsCount,b=a.pointsCount;if(0<x&&0<b){var te=this.i(0),re=a.i(0);if(te.Xa(re)||(x=this.i(x-1),a=a.i(b-1),x.Xa(a)||te.Xa(a)||x.Xa(re)))return!0}else if(this.fromNode===a.fromNode||this.toNode===a.toNode||this.fromNode===a.toNode||this.toNode===a.fromNode)return!0;return!1},Ui.prototype.isVisible=function(){if(!mo.prototype.isVisible.call(this))return!1;var a=this.containingGroup,x=!0,b=this.diagram;if(b!==null&&(x=b.isTreePathToChildren),b=this.fromNode,b!==null){if(this.isTreeLink&&x&&!b.isTreeExpanded)return!1;if(b===a)return!0;for(var te=b;te!==null;){if(te.labeledLink===this)return!0;te=te.containingGroup}if(b=b.findVisibleNode(),b===null||b===a)return!1}if(b=this.toNode,b!==null){if(this.isTreeLink&&!x&&!b.isTreeExpanded)return!1;if(b===a)return!0;for(x=b;x!==null;){if(x.labeledLink===this)return!0;x=x.containingGroup}if(x=b.findVisibleNode(),x===null||x===a)return!1}return!0},Ui.prototype.Zb=function(a){if(mo.prototype.Zb.call(this,a),a&&$S(this,!1),this.Sf!==null&&this.Sf.Sl(),this.wd!==null)for(var x=this.wd.iterator;x.next();)x.value.Zb(a)},Ui.prototype.computeAdjusting=function(){return this.isAvoiding&&this.diagram!==null&&this.diagram.animationManager.defaultAnimation.isAnimating?Ox:this.qk};function eP(a){var x=a.ef;if(x!==null){var b=a.uf;if(b!==null&&isNaN(a.curviness)){for(var te=a.ff,re=a.vf,oe=a=null,le=x.jb.s,fe=le.length,ge=0;ge<fe;ge++){var ye=le[ge];(ye.ef===x&&ye.ff===te&&ye.uf===b&&ye.vf===re||ye.ef===b&&ye.ff===re&&ye.uf===x&&ye.vf===te)&&(oe===null?oe=ye:(a===null&&(a=[],a.push(oe)),a.push(ye)))}if(a!==null){for(oe=ly(x,b,te,re),oe===null&&(oe=new Yd(x,te,b,re),ay(x,oe),ay(b,oe)),oe.links=a,x=0;x<a.length;x++)a[x].Sf=oe;oe.Sl()}}}}function nv(a){var x=a.Sf;x!==null&&isNaN(a.curviness)&&(a.Sf=null,a=x.links.indexOf(a),0<=a&&(Ll(x.links,a),x.Sl()))}Ui.prototype.ph=function(){return!0},pn.Object.defineProperties(Ui.prototype,{fromNode:{get:function(){return this.ef},set:function(a){var x=this.ef;if(x!==a){var b=this.fromPort;x!==null&&(this.uf!==x&&$0(x,this,b),nv(this),this.C(2)),this.ef=a,a!==null&&this.Zb(a.isVisible()),this.Wf=null,this.bb();var te=this.diagram;te!==null&&te.aa&&te.partManager.setFromNodeForLink(this,a,x);var re=this.fromPort,oe=this.fromPortChanged;if(oe!==null){var le=!0;te!==null&&(le=te.aa,te.aa=!0),oe(this,b,re),te!==null&&(te.aa=le)}a!==null&&(this.uf!==a&&Nx(a,this,re),eP(this),this.C(1)),this.g("fromNode",x,a),dm(this)}}},fromPortId:{get:function(){return this.ff},set:function(a){var x=this.ff;if(x!==a){var b=this.fromPort;b!==null&&dd(b),nv(this),this.ff=a;var te=this.fromPort;te!==null&&dd(te);var re=this.diagram;if(re!==null){var oe=this.data,le=re.model;oe!==null&&le.ri()&&le.xv(oe,a)}b!==te&&(this.Wf=null,this.bb(),oe=this.fromPortChanged,oe!==null&&(le=!0,re!==null&&(le=re.aa,re.aa=!0),oe(this,b,te),re!==null&&(re.aa=le))),eP(this),this.g("fromPortId",x,a)}}},fromPort:{get:function(){var a=this.ef;return a===null?null:a.ns(this.ff)}},fromPortChanged:{get:function(){return this.gn},set:function(a){var x=this.gn;x!==a&&(this.gn=a,this.g("fromPortChanged",x,a))}},toNode:{get:function(){return this.uf},set:function(a){var x=this.uf;if(x!==a){var b=this.toPort;x!==null&&(this.ef!==x&&$0(x,this,b),nv(this),this.C(2)),this.uf=a,a!==null&&this.Zb(a.isVisible()),this.Wf=null,this.bb();var te=this.diagram;te!==null&&te.aa&&te.partManager.setToNodeForLink(this,a,x);var re=this.toPort,oe=this.toPortChanged;if(oe!==null){var le=!0;te!==null&&(le=te.aa,te.aa=!0),oe(this,b,re),te!==null&&(te.aa=le)}a!==null&&(this.ef!==a&&Nx(a,this,re),eP(this),this.C(1)),this.g("toNode",x,a),dm(this)}}},toPortId:{get:function(){return this.vf},set:function(a){var x=this.vf;if(x!==a){var b=this.toPort;b!==null&&dd(b),nv(this),this.vf=a;var te=this.toPort;te!==null&&dd(te);var re=this.diagram;if(re!==null){var oe=this.data,le=re.model;oe!==null&&le.ri()&&le.Cv(oe,a)}b!==te&&(this.Wf=null,this.bb(),oe=this.toPortChanged,oe!==null&&(le=!0,re!==null&&(le=re.aa,re.aa=!0),oe(this,b,te),re!==null&&(re.aa=le))),eP(this),this.g("toPortId",x,a)}}},toPort:{get:function(){var a=this.uf;return a===null?null:a.ns(this.vf)}},toPortChanged:{get:function(){return this.uo},set:function(a){var x=this.uo;x!==a&&(this.uo=a,this.g("toPortChanged",x,a))}},fromSpot:{get:function(){return this.ba!==null?this.ba.Xi:Bl},set:function(a){var x=this.fromSpot;x.D(a)||(a=a.J(),this.Xc(),this.ba.Xi=a,this.g("fromSpot",x,a),(x.$c()||a.$c())&&this.fromNode!==null&&dd(this.fromPort),this.bb())}},fromEndSegmentLength:{get:function(){return this.ba!==null?this.ba.Vi:NaN},set:function(a){var x=this.fromEndSegmentLength;x!==a&&(0>a&&Xo(a,">= 0",Ui,"fromEndSegmentLength"),this.Xc(),this.ba.Vi=a,this.g("fromEndSegmentLength",x,a),this.bb())}},fromShortLength:{get:function(){return this.ba!==null?this.ba.Wi:NaN},set:function(a){var x=this.fromShortLength;x!==a&&(this.Xc(),this.ba.Wi=a,this.qc(),this.g("fromShortLength",x,a))}},toSpot:{get:function(){return this.ba!==null?this.ba.yj:Bl},set:function(a){var x=this.toSpot;x.D(a)||(a=a.J(),this.Xc(),this.ba.yj=a,this.g("toSpot",x,a),(x.$c()||a.$c())&&this.toNode!==null&&dd(this.toPort),this.bb())}},toEndSegmentLength:{get:function(){return this.ba!==null?this.ba.wj:NaN},set:function(a){var x=this.toEndSegmentLength;x!==a&&(0>a&&Xo(a,">= 0",Ui,"toEndSegmentLength"),this.Xc(),this.ba.wj=a,this.g("toEndSegmentLength",x,a),this.bb())}},toShortLength:{get:function(){return this.ba!==null?this.ba.xj:NaN},set:function(a){var x=this.toShortLength;x!==a&&(this.Xc(),this.ba.xj=a,this.qc(),this.g("toShortLength",x,a))}},isLabeledLink:{get:function(){return this.wd===null?!1:0<this.wd.count}},labelNodes:{get:function(){return this.wd===null?wl:this.wd.iterator}},relinkableFrom:{get:function(){return(this.Qa&1)!==0},set:function(a){var x=(this.Qa&1)!==0;x!==a&&(this.Qa^=1,this.g("relinkableFrom",x,a),this.Wb())}},relinkableTo:{get:function(){return(this.Qa&2)!==0},set:function(a){var x=(this.Qa&2)!==0;x!==a&&(this.Qa^=2,this.g("relinkableTo",x,a),this.Wb())}},resegmentable:{get:function(){return(this.Qa&4)!==0},set:function(a){var x=(this.Qa&4)!==0;x!==a&&(this.Qa^=4,this.g("resegmentable",x,a),this.Wb())}},isTreeLink:{get:function(){return(this.Qa&8)!==0},set:function(a){var x=(this.Qa&8)!==0;x!==a&&(this.Qa^=8,this.g("isTreeLink",x,a),this.fromNode!==null&&Fx(this.fromNode),this.toNode!==null&&Fx(this.toNode))}},path:{get:function(){var a=this.Pb();return a instanceof xs?a:null}},routeBounds:{get:function(){this.vg();var a=this.ml,x=1/0,b=1/0,te=this.pointsCount;if(te===0)a.h(NaN,NaN,0,0);else{if(te===1)te=this.i(0),x=Math.min(te.x,x),b=Math.min(te.y,b),a.h(te.x,te.y,0,0);else if(te===2){te=this.i(0);var re=this.i(1);x=Math.min(te.x,re.x),b=Math.min(te.y,re.y),a.h(te.x,te.y,0,0),a.Ye(re)}else if(this.computeCurve()===fd&&3<=te&&!this.isOrthogonal)if(re=this.i(0),x=re.x,b=re.y,a.h(x,b,0,0),te===3){te=this.i(1),x=Math.min(te.x,x),b=Math.min(te.y,b);var oe=this.i(2);x=Math.min(oe.x,x),b=Math.min(oe.y,b),_t.Dl(re.x,re.y,te.x,te.y,te.x,te.y,oe.x,oe.y,.5,a)}else for(oe=3;oe<te;oe+=3){var le=this.i(oe-2);oe+3>=te&&(oe=te-1);var fe=this.i(oe-1),ge=this.i(oe);_t.Dl(re.x,re.y,le.x,le.y,fe.x,fe.y,ge.x,ge.y,.5,a),x=Math.min(ge.x,x),b=Math.min(ge.y,b),re=ge}else for(re=this.i(0),oe=this.i(1),x=Math.min(re.x,oe.x),b=Math.min(re.y,oe.y),a.h(re.x,re.y,0,0),a.Ye(oe),re=2;re<te;re++)oe=this.i(re),x=Math.min(oe.x,x),b=Math.min(oe.y,b),a.Ye(oe);this.su.h(x-a.x,b-a.y)}return a}},midPoint:{get:function(){return this.vg(),this.computeMidPoint(new it)}},midAngle:{get:function(){return this.vg(),this.computeMidAngle()}},flattenedLengths:{get:function(){if(this.cq===null){this.fd||_S(this);for(var a=this.cq=[],x=this.pointsCount,b=0;b<x-1;b++){var te=this.i(b),re=this.i(b+1);_t.$(te.x,re.x)?(te=re.y-te.y,0>te&&(te=-te)):_t.$(te.y,re.y)?(te=re.x-te.x,0>te&&(te=-te)):te=Math.sqrt(te.Bf(re)),a.push(te)}}return this.cq}},flattenedTotalLength:{get:function(){var a=this.vt;if(isNaN(a)){for(var x=this.flattenedLengths,b=x.length,te=a=0;te<b;te++)a+=x[te];this.vt=a}return a}},points:{get:function(){return this.Nb},set:function(a){var x=this.Nb;if(x!==a){var b=null;if(Array.isArray(a)){var te=a.length%2===0;if(te){for(var re=0;re<a.length;re++)if(typeof a[re]!="number"||isNaN(a[re])){te=!1;break}}if(te)for(b=new Zi,te=0;te<a.length/2;te++)re=new it(a[2*te],a[2*te+1]).freeze(),b.add(re);else{for(te=!0,re=0;re<a.length;re++){var oe=a[re];if(!Ji(oe)||typeof oe.x!="number"||isNaN(oe.x)||typeof oe.y!="number"||isNaN(oe.y)){te=!1;break}}if(te)for(b=new Zi,te=0;te<a.length;te++)re=a[te],b.add(new it(re.x,re.y).freeze())}}else if(a instanceof Zi)for(b=a.copy(),a=b.iterator;a.next();)a.value.freeze();else hn("Link.points value is not an instance of List or Array: "+a);b.freeze(),this.Nb=b,this.qc(),_S(this),a=this.diagram,a!==null&&(a.pi||a.undoManager.isUndoingRedoing||a.As.add(this),a.animationManager.zb&&is(a.animationManager,this,b)),this.g("points",x,b)}}},pointsCount:{get:function(){return this.Nb.count}},fd:{get:function(){return(this.Qa&16)!==0},set:function(a){(this.Qa&16)!==0!==a&&(this.Qa^=16)}},suspendsRouting:{get:function(){return(this.Qa&32)!==0},set:function(a){(this.Qa&32)!==0!==a&&(this.Qa^=32)}},computingPoints:{get:function(){return(this.Qa&64)!==0},set:function(a){(this.Qa&64)!==0!==a&&(this.Qa^=64)}},defaultFromPoint:{get:function(){return this.o},set:function(a){this.o=a.copy()}},defaultToPoint:{get:function(){return this.u},set:function(a){this.u=a.copy()}},isOrthogonal:{get:function(){return(this.qj.value&2)===2}},isAvoiding:{get:function(){return(this.qj.value&4)===4}},lk:{get:function(){return(this.Qa&128)!==0},set:function(a){(this.Qa&128)!==0!==a&&(this.Qa^=128)}},geometry:{get:function(){if(!this.lk){if(this.vg(),2>this.pointsCount)return this.lk=!0,this.ua;this.ua=this.makeGeometry()}return this.ua}},firstPickIndex:{get:function(){return 2>=this.pointsCount?0:this.isOrthogonal||!AA(this.computeSpot(!0))?1:0}},lastPickIndex:{get:function(){var a=this.pointsCount;return a===0?0:2>=a?a-1:this.isOrthogonal||!AA(this.computeSpot(!1))?a-2:a-1}},adjusting:{get:function(){return this.qk},set:function(a){var x=this.qk;x!==a&&(this.qk=a,this.g("adjusting",x,a))}},corner:{get:function(){return this.Om},set:function(a){var x=this.Om;x!==a&&(this.Om=a,this.qc(),this.g("corner",x,a))}},curve:{get:function(){return this.Qm},set:function(a){var x=this.Qm;x!==a&&(this.Qm=a,this.bb(),this.qc(),$S(this,x===g0||x===wA||a===g0||a===wA),this.g("curve",x,a))}},curviness:{get:function(){return this.Rm},set:function(a){var x=this.Rm;x!==a&&(this.Rm=a,this.bb(),this.qc(),this.g("curviness",x,a))}},routing:{get:function(){return this.qj},set:function(a){var x=this.qj;x!==a&&(this.qj=a,this.Wf=null,this.bb(),$S(this,(x.value&2)===2||(a.value&2)===2),this.g("routing",x,a))}},smoothness:{get:function(){return this.po},set:function(a){var x=this.po;x!==a&&(this.po=a,this.qc(),this.g("smoothness",x,a))}},key:{get:function(){var a=this.diagram;if(a!==null&&a.model.ri())return a.model.Ac(this.data)}}}),Ui.prototype.invalidateOtherJumpOvers=Ui.prototype.Xo,Ui.prototype.findClosestSegment=Ui.prototype.ez,Ui.prototype.updateRoute=Ui.prototype.vg,Ui.prototype.invalidateRoute=Ui.prototype.bb,Ui.prototype.rollbackRoute=Ui.prototype.rv,Ui.prototype.commitRoute=Ui.prototype.zf,Ui.prototype.startRoute=Ui.prototype.uh,Ui.prototype.clearPoints=Ui.prototype.Fj,Ui.prototype.removePoint=Ui.prototype.pv,Ui.prototype.addPointAt=Ui.prototype.yf,Ui.prototype.addPoint=Ui.prototype.ne,Ui.prototype.insertPointAt=Ui.prototype.m,Ui.prototype.insertPoint=Ui.prototype.Kz,Ui.prototype.setPointAt=Ui.prototype.L,Ui.prototype.setPoint=Ui.prototype.dd,Ui.prototype.getPoint=Ui.prototype.i,Ui.prototype.getOtherPort=Ui.prototype.Cz,Ui.prototype.getOtherNode=Ui.prototype.To;var cy=null,ih=null,fm=new Ni(Ui,"Normal",1),hy=new Ni(Ui,"Orthogonal",2),c2=new Ni(Ui,"AvoidsNodes",6),iv=new Ni(Ui,"AvoidsNodesStraight",7),Th=new Ni(Ui,"None",0),fd=new Ni(Ui,"Bezier",9),g0=new Ni(Ui,"JumpGap",10),wA=new Ni(Ui,"JumpOver",11),Ox=new Ni(Ui,"End",17),gw=new Ni(Ui,"Scale",18),mw=new Ni(Ui,"Stretch",19),Rx=new Ni(Ui,"OrientAlong",21),zx=new Ni(Ui,"OrientPlus90",22),Cp=new Ni(Ui,"OrientMinus90",23),VC=new Ni(Ui,"OrientOpposite",24),m0=new Ni(Ui,"OrientUpright",25),SA=new Ni(Ui,"OrientPlus90Upright",26),Ux=new Ni(Ui,"OrientMinus90Upright",27),ia=new Ni(Ui,"OrientUpright45",28),Ep=16,C5=14,Zd=8;Ui.className="Link",Ui.Normal=fm,Ui.Orthogonal=hy,Ui.AvoidsNodes=c2,Ui.AvoidsNodesStraight=iv,Ui.None=Th,Ui.Bezier=fd,Ui.JumpGap=g0,Ui.JumpOver=wA,Ui.End=Ox,Ui.Scale=gw,Ui.Stretch=mw,Ui.OrientAlong=Rx,Ui.OrientPlus90=zx,Ui.OrientMinus90=Cp,Ui.OrientOpposite=VC,Ui.OrientUpright=m0,Ui.OrientPlus90Upright=SA,Ui.OrientMinus90Upright=Ux,Ui.OrientUpright45=ia,Ui.EndSegmentStep=8,Ui.CurvinessStart=Ep,Ui.SpacingMin=C5,Ui.OrthoShortCut=Zd;function Yd(a,x,b,te){$o(this),this.Fe=this.qq=!1,this.Ds=a,this.Ox=x,this.cv=b,this.Px=te,this.links=[]}Yd.prototype.Sl=function(){if(!this.qq){var a=this.links;0<a.length&&(a=a[0].diagram,a!==null&&(a.ow.add(this),this.Fe=a.undoManager.isUndoingRedoing))}this.qq=!0},Yd.prototype.Nv=function(){if(this.qq){this.qq=!1;var a=this.links;if(0<a.length){var x=a[0],b=x.diagram;b=b===null||b.pi&&!this.Fe,this.Fe=!1,x.arrangeBundledLinks(a,b),a.length===1&&(x.Sf=null,a.length=0)}a.length===0&&(a=this.Ds,this!==null&&a.af!==null&&a.af.remove(this),a=this.cv,this!==null&&a.af!==null&&a.af.remove(this))}},Yd.className="LinkBundle";function pm(a){$o(this),this.Yx=this.group=null,this.vs=!0,this.abort=!1,this.Od=this.Nd=1,this.Fn=this.En=-1,this.rc=a.width,this.sc=a.height,this.ac=null,this.ei=this.di=0,this.Os=11,this.Ix=this.Hx=22}pm.prototype.initialize=function(a){if(!(0>=a.width||0>=a.height)){var x=a.y,b=a.x+a.width,te=a.y+a.height;if(this.Nd=Math.floor((a.x-this.rc)/this.rc)*this.rc,this.Od=Math.floor((x-this.sc)/this.sc)*this.sc,this.En=Math.ceil((b+2*this.rc)/this.rc)*this.rc,this.Fn=Math.ceil((te+2*this.sc)/this.sc)*this.sc,a=1+(Math.ceil((this.En-this.Nd)/this.rc)|0),x=1+(Math.ceil((this.Fn-this.Od)/this.sc)|0),this.ac===null||this.di<a-1||this.ei<x-1){for(b=[],te=0;te<=a;te++)b[te]=new Uint32Array(x);this.ac=b,this.di=a-1,this.ei=x-1}if(a=b5,this.ac!==null)for(x=0;x<=this.di;x++)if(b=this.ac[x],b.fill)b.fill(a);else for(te=0;te<=this.ei;te++)b[te]=a}};function vw(a,x,b){return a.Nd<=x&&x<=a.En&&a.Od<=b&&b<=a.Fn}function Qh(a,x,b){return vw(a,x,b)?(x-=a.Nd,x/=a.rc,b-=a.Od,b/=a.sc,a.ac[x|0][b|0]):b5}function yw(a){if(a.ac!==null)for(var x=0;x<=a.di;x++)for(var b=a.ac[x],te=0;te<=a.ei;te++)b[te]>=Vx&&(b[te]=b5)}pm.prototype.Yj=function(a,x,b,te){if(a>this.En||a+b<this.Nd||x>this.Fn||x+te<this.Od)return!0;a=(a-this.Nd)/this.rc|0,x=(x-this.Od)/this.sc|0,b=Math.max(0,b)/this.rc+1|0;var re=Math.max(0,te)/this.sc+1|0;if(0>a&&(b+=a,a=0),0>x&&(re+=x,x=0),0>b||0>re)return!0;for(te=Math.min(a+b-1,this.di)|0,b=Math.min(x+re-1,this.ei)|0;a<=te;a++){re=this.ac[a];for(var oe=x;oe<=b;oe++)if(re[oe]===dy)return!1}return!0};function v0(a,x,b,te,re,oe,le,fe,ge){if(!(x<oe||x>le||b<fe||b>ge)){var ye=x|0,we=b|0,be=a.ac[ye][we];if(be>=Vx&&be<tP)for(re?we+=te:ye+=te,be+=1;oe<=ye&&ye<=le&&fe<=we&&we<=ge&&!(be>=a.ac[ye][we]);)a.ac[ye][we]=be,be+=1,re?we+=te:ye+=te;if(ye=re?we:ye,re)if(0<te)for(b+=te;b<ye;b+=te)v0(a,x,b,1,!re,oe,le,fe,ge),v0(a,x,b,-1,!re,oe,le,fe,ge);else for(b+=te;b>ye;b+=te)v0(a,x,b,1,!re,oe,le,fe,ge),v0(a,x,b,-1,!re,oe,le,fe,ge);else if(0<te)for(x+=te;x<ye;x+=te)v0(a,x,b,1,!re,oe,le,fe,ge),v0(a,x,b,-1,!re,oe,le,fe,ge);else for(x+=te;x>ye;x+=te)v0(a,x,b,1,!re,oe,le,fe,ge),v0(a,x,b,-1,!re,oe,le,fe,ge)}}function pd(a,x,b,te,re,oe,le,fe,ge){x|=0,b|=0;var ye=dy,we=Vx;for(a.ac[x][b]=we;ye===dy&&x>oe&&x<le&&b>fe&&b<ge;)we+=1,a.ac[x][b]=we,re?b+=te:x+=te,ye=a.ac[x][b]}function Hx(a,x,b,te,re,oe,le,fe,ge){x|=0,b|=0;var ye=dy,we=tP;for(a.ac[x][b]=we;ye===dy&&x>oe&&x<le&&b>fe&&b<ge;)a.ac[x][b]=we,re?b+=te:x+=te,ye=a.ac[x][b]}function E5(a,x,b,te,re,oe,le){if(a.ac!==null){a.abort=!1;var fe=x.x,ge=x.y;if(vw(a,fe,ge)){fe-=a.Nd,fe/=a.rc,ge-=a.Od,ge/=a.sc;var ye=te.x,we=te.y;if(vw(a,ye,we))if(ye-=a.Nd,ye/=a.rc,we-=a.Od,we/=a.sc,1>=Math.abs(fe-ye)&&1>=Math.abs(ge-we))a.abort=!0;else{var be=oe.x;te=oe.y,x=oe.x+oe.width;var ke=oe.y+oe.height;be-=a.Nd,be/=a.rc,te-=a.Od,te/=a.sc,x-=a.Nd,x/=a.rc,ke-=a.Od,ke/=a.sc,oe=Math.max(0,Math.min(a.di,be|0)),x=Math.min(a.di,Math.max(0,x|0)),be=Math.max(0,Math.min(a.ei,te|0)),ke=Math.min(a.ei,Math.max(0,ke|0)),te=a.ac,fe|=0,ge|=0,ye|=0,we|=0;var Ue=b===0||b===90?1:-1;if(b=b===90||b===270,te[fe][ge]===dy?(pd(a,fe,ge,Ue,b,oe,x,be,ke),pd(a,fe,ge,1,!b,oe,x,be,ke),pd(a,fe,ge,-1,!b,oe,x,be,ke)):pd(a,fe,ge,Ue,b,fe,ge,fe,ge),te[ye][we]===dy?(Hx(a,ye,we,re===0||re===90?1:-1,re===90||re===270,oe,x,be,ke),Hx(a,ye,we,1,!(re===90||re===270),oe,x,be,ke),Hx(a,ye,we,-1,!(re===90||re===270),oe,x,be,ke)):Hx(a,ye,we,Ue,b,ye,we,ye,we),b=ys(),le&&rh(a,ye,we,re,fe,ge,b))for((b[0]!==ye||b[1]!==we)&&(b.unshift(we),b.unshift(ye)),(b[b.length-2]!==fe||b[b.length-1]!==ge)&&(b.push(fe),b.push(ge)),a=Vx,re=b[b.length-2],le=b[b.length-1],te[re][le]=a++,oe=b.length-4;0<=oe;oe-=2)for(re=b[oe+2],le=b[oe+3],x=b[oe],ye=b[oe+1];x>re?re++:x<re?re--:ye>le?le++:ye<le&&le--,te[re][le]=a++,re!==x||le!==ye;);else v0(a,fe,ge,1,!1,oe,x,be,ke),v0(a,fe,ge,-1,!1,oe,x,be,ke),v0(a,fe,ge,1,!0,oe,x,be,ke),v0(a,fe,ge,-1,!0,oe,x,be,ke);As(b)}}}}function rh(a,x,b,te,re,oe,le){for(var fe=a.ac,ge=x,ye=b;;){if(ge===re&&ye===oe)return!0;var we=ge,be=ye;if(te===0)if(we<re)we++;else break;else if(te===90)if(be<oe)be++;else break;else if(te===180)if(we>re)we--;else break;else if(be>oe)be--;else break;var ke=fe[we][be];if(ke===0||ke===nP)break;ge=we,ye=be}for(;;){if(we=te,be=ge,ke=ye,te===0?ke<oe?(we=90,ke++):ke>oe&&(we=270,ke--):te===90?be<re?(we=0,be++):be>re&&(we=180,be--):te===180?ke<oe?(we=90,ke++):ke>oe&&(we=270,ke--):be<re?(we=0,be++):be>re&&(we=180,be--),be=fe[be][ke],we!==te&&be!==0&&be!==nP){if(le.push(ge),le.push(ye),rh(a,ge,ye,we,re,oe,le))return!0;le.pop(),le.pop()}if(fe[ge][ye]=nP,te===0){if(ge===x)return!1;ge--}else if(te===90){if(ye===b)return!1;ye--}else if(te===180){if(ge===x)return!1;ge++}else{if(ye===b)return!1;ye++}}}pn.Object.defineProperties(pm.prototype,{bounds:{get:function(){return new Yt(this.Nd,this.Od,this.En-this.Nd,this.Fn-this.Od)}},Ho:{get:function(){return this.rc},set:function(a){0<a&&a!==this.rc&&(this.rc=a,this.initialize(this.bounds))}},Go:{get:function(){return this.sc},set:function(a){0<a&&a!==this.sc&&(this.sc=a,this.initialize(this.bounds))}}});var dy=0,Vx=1,tP=999999,b5=tP+1,nP=tP+2;pm.className="PositionArray";function Aw(){$o(this),this.port=this.node=null,this.pe=[],this.ap=!1}Aw.prototype.toString=function(){for(var a=this.pe,x=this.node.toString()+" "+a.length.toString()+":",b=0;b<a.length;b++){var te=a[b];te!==null&&(x+=`
|
|
`+te.toString())}return x};function h2(a,x,b,te){switch(x=x.offsetY,x){case 8:return 90;case 2:return 180;case 1:return 270;case 4:return 0}switch(x){case 9:return 180<b?270:90;case 6:return 90<b&&270>=b?180:0}switch(a=180*Math.atan2(a.height,a.width)/Math.PI,x){case 3:return b>a&&b<=180+a?180:270;case 5:return b>180-a&&b<=360-a?270:0;case 12:return b>a&&b<=180+a?90:0;case 10:return b>180-a&&b<=360-a?180:90;case 7:return 90<b&&b<=180+a?180:b>180+a&&b<=360-a?270:0;case 13:return 180<b&&b<=360-a?270:b>a&&180>=b?90:0;case 14:return b>a&&b<=180-a?90:b>180-a&&270>=b?180:0;case 11:return b>180-a&&b<=180+a?180:b>180+a?270:90}return te&&x!==15&&(b-=15,0>b&&(b+=360)),b>a&&b<180-a?90:b>=180-a&&b<=180+a?180:b>180+a&&b<360-a?270:0}Aw.prototype.Sl=function(){this.pe.length=0};function d2(a,x){var b=a.pe;if(b.length===0){e:if(!a.ap){b=a.ap,a.ap=!0;var te=null,re=a.node,oe=re instanceof ts?re:null;if(oe===null||oe.isSubGraphExpanded)var le=re.isTreeExpanded?re.findLinksConnected(a.port.portId):re.qx();else{if(!oe.actualBounds.w()){a.ap=b;break e}te=oe,le=te.Lu()}oe=a.pe.length=0;var fe=a.port.ga(Is,it.alloc()),ge=a.port.ga(ws,it.alloc());for(re=Yt.allocAt(fe.x,fe.y,0,0),re.Ye(ge),it.free(fe),it.free(ge),fe=it.allocAt(re.x+re.width/2,re.y+re.height/2),ge=a.port.li(),le=le.iterator;le.next();){var ye=le.value;if(ye.isVisible()&&ye.fromPort!==ye.toPort){var we=ye.fromPort===a.port||ye.fromNode!==null&&ye.fromNode.Td(te),be=ye.computeSpot(we,a.port);if(be.$c()&&(we=we?ye.toPort:ye.fromPort,we!==null)){var ke=we.part;if(ke!==null){var Ue=ke.findVisibleNode();Ue!==null&&Ue!==ke&&(ke=Ue,we=ke.port),we=ye.computeOtherPoint(ke,we),ke=fe.ab(we),ke-=ge,0>ke?ke+=360:360<=ke&&(ke-=360),be=h2(re,be,ke,ye.isOrthogonal),be===0?(be=4,180<ke&&(ke-=360)):be===90?(be=8,270<ke&&(ke-=360)):be===180?be=2:(be=1,90>ke&&(ke+=360)),Ue=a.pe[oe],Ue===void 0?(Ue=new Za(ye,ke,be),a.pe[oe]=Ue):(Ue.link=ye,Ue.angle=ke,Ue.Nc=be),Ue.hv.set(we),oe++}}}}for(it.free(fe),a.pe.sort(Aw.prototype.j),ge=a.pe.length,te=-1,oe=fe=0;oe<ge;oe++)le=a.pe[oe],le!==void 0&&(le.Nc!==te&&(te=le.Nc,fe=0),le.Uo=fe,fe++);for(te=-1,fe=0,oe=ge-1;0<=oe;oe--)ge=a.pe[oe],ge!==void 0&&(ge.Nc!==te&&(te=ge.Nc,fe=ge.Uo+1),ge.Gl=fe);if(oe=a.pe,be=a.port,te=a.node.portSpreading,fe=it.alloc(),ge=it.alloc(),le=it.alloc(),ye=it.alloc(),be.ga(Is,fe),be.ga(Gs,ge),be.ga(ws,le),be.ga(Ta,ye),Ue=ke=we=be=0,te===pw)for(var Ve=0;Ve<oe.length;Ve++){var Ke=oe[Ve];if(Ke!==null){var Pt=Ke.link.computeThickness();switch(Ke.Nc){case 8:ke+=Pt;break;case 2:Ue+=Pt;break;case 1:be+=Pt;break;default:case 4:we+=Pt}}}var ft=Ve=0,Nt=1,Lt=Ke=0;for(Pt=0;Pt<oe.length;Pt++){var Ut=oe[Pt];if(Ut!==null){if(Ve!==Ut.Nc){switch(Ve=Ut.Nc,Ve){case 8:var tn=le;ft=ye;break;case 2:tn=ye,ft=fe;break;case 1:tn=fe,ft=ge;break;default:case 4:tn=ge,ft=le}switch(Ke=ft.x-tn.x,Lt=ft.y-tn.y,Ve){case 8:ke>Math.abs(Ke)?(Nt=Math.abs(Ke)/ke,ke=Math.abs(Ke)):Nt=1;break;case 2:Ue>Math.abs(Lt)?(Nt=Math.abs(Lt)/Ue,Ue=Math.abs(Lt)):Nt=1;break;case 1:be>Math.abs(Ke)?(Nt=Math.abs(Ke)/be,be=Math.abs(Ke)):Nt=1;break;default:case 4:we>Math.abs(Lt)?(Nt=Math.abs(Lt)/we,we=Math.abs(Lt)):Nt=1}ft=0}var xn=Ut.Zo;if(te===pw){switch(Ut=Ut.link.computeThickness(),Ut*=Nt,xn.set(tn),Ve){case 8:xn.x=tn.x+Ke/2+ke/2-ft-Ut/2;break;case 2:xn.y=tn.y+Lt/2+Ue/2-ft-Ut/2;break;case 1:xn.x=tn.x+Ke/2-be/2+ft+Ut/2;break;default:case 4:xn.y=tn.y+Lt/2-we/2+ft+Ut/2}ft+=Ut}else{var nr=.5;te===fw&&(nr=(Ut.Uo+1)/(Ut.Gl+1)),xn.x=tn.x+Ke*nr,xn.y=tn.y+Lt*nr}}}for(it.free(fe),it.free(ge),it.free(le),it.free(ye),tn=a.pe,oe=0;oe<tn.length;oe++)te=tn[oe],te!==null&&(te.Ju=a.computeEndSegmentLength(te));a.ap=b,Yt.free(re)}b=a.pe}for(a=0;a<b.length;a++)if(re=b[a],re!==null&&re.link===x)return re;return null}Aw.prototype.j=function(a,x){return a===x?0:a===null?-1:x===null?1:a.Nc<x.Nc?-1:a.Nc>x.Nc?1:a.angle<x.angle?-1:a.angle>x.angle?1:0},Aw.prototype.computeEndSegmentLength=function(a){var x=a.link,b=x.computeEndSegmentLength(this.node,this.port,Cs,x.fromPort===this.port),te=a.Uo;if(0>te)return b;var re=a.Gl;if(1>=re||!x.isOrthogonal)return b;x=a.hv;var oe=a.Zo;return(a.Nc===2||a.Nc===8)&&(te=re-1-te),((a=a.Nc===2||a.Nc===4)?x.y<oe.y:x.x<oe.x)?b+8*te:(a?x.y===oe.y:x.x===oe.x)?b:b+8*(re-1-te)},Aw.className="Knot";function Za(a,x,b){this.link=a,this.angle=x,this.Nc=b,this.hv=new it,this.Gl=this.Uo=0,this.Zo=new it,this.Ju=0}Za.prototype.toString=function(){return this.link.toString()+" "+this.angle.toString()+" "+this.Nc.toString()+":"+this.Uo.toString()+"/"+this.Gl.toString()+" "+this.Zo.toString()+" "+this.Ju.toString()+" "+this.hv.toString()},Za.className="LinkInfo";function vu(a){$o(this),this.o=this.H=null,this.Gh=this.sn=!0,this.yn=!1,this.Am=new it(0,0).freeze(),this.vn=!0,this.Em=this.un=null,this.xn=!1,this.j=null,a&&Object.assign(this,a)}vu.prototype.cloneProtected=function(a){a.sn=this.sn,a.Gh=this.Gh,a.yn=this.yn,a.Am.assign(this.Am),a.vn=this.vn,a.un=this.un,a.Em=this.Em,a.xn=!0},vu.prototype.copy=function(){var a=new this.constructor;return this.cloneProtected(a),a},vu.prototype.qb=function(){},vu.prototype.toString=function(){var a=Jo(this.constructor);return a+="(",this.group!==null&&(a+=" in "+this.group),this.diagram!==null&&(a+=" for "+this.diagram),a+")"},vu.prototype.C=function(){if(this.isValidLayout){var a=this.diagram;if(a!==null&&!a.undoManager.isUndoingRedoing){var x=a.animationManager;!x.isTicking&&(x.defaultAnimation.isAnimating&&x.Cc(),this.isOngoing&&a.pi||this.isInitial&&!a.pi)&&(this.isValidLayout=!1,a.$b())}}},vu.prototype.createNetwork=function(){return new Nl(this)},vu.prototype.makeNetwork=function(a){var x=this.createNetwork();return a instanceof wn?(x.lg(a.nodes,!0),x.lg(a.links,!0)):a instanceof ts?x.lg(a.memberParts):x.lg(a.iterator),x},vu.prototype.updateParts=function(){this.isValidLayout=!0;var a=this.diagram;if(a===null&&this.network!==null)for(var x=this.network.vertexes.iterator;x.next();){var b=x.value.node;if(b!==null&&(a=b.diagram,a!==null))break}try{a!==null&&a.Ea("Layout"),this.commitLayout()}finally{a!==null&&a.eb("Layout")}},vu.prototype.commitLayout=function(){if(this.network!==null){for(var a=this.network.vertexes.iterator;a.next();)a.value.commit();if(this.isRouting)for(a=this.network.edges.iterator;a.next();)a.value.commit()}},vu.prototype.doLayout=function(a){var x=new Yi;a instanceof wn?(lf(this,x,a.nodes,!0,this.rh,!0,!1,!0),lf(this,x,a.parts,!0,this.rh,!0,!1,!0)):a instanceof ts?lf(this,x,a.memberParts,!1,this.rh,!0,!1,!0):x.addAll(a.iterator),0<x.count&&(a=this.diagram,a!==null&&a.Ea("Layout"),this.doMinimalNoNetworkLayout(x),a!==null&&a.eb("Layout")),this.isValidLayout=!0},vu.prototype.doMinimalNoNetworkLayout=function(a){var x=Math.ceil(Math.sqrt(a.count));this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);var b=this.arrangementOrigin.x,te=b,re=this.arrangementOrigin.y,oe=0,le=0;for(a=a.iterator;a.next();){var fe=a.value;jx(fe);var ge=fe.measuredBounds,ye=ge.width;ge=ge.height,fe.moveTo(te,re),fe instanceof ts&&(fe.rh=!1),te+=Math.max(ye,50)+20,le=Math.max(le,Math.max(ge,50)),oe>=x-1?(oe=0,te=b,re+=le+20,le=0):oe++}},vu.prototype.doMinimalNetworkLayout=function(){var a=Math.ceil(Math.sqrt(this.network.vertexes.count));this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);for(var x=this.arrangementOrigin.x,b=x,te=this.arrangementOrigin.y,re=0,oe=0,le=this.network.vertexes.iterator;le.next();){var fe=le.value.node;if(!(fe===null||fe instanceof Ui)&&(jx(fe),this.rh(fe))){var ge=fe.measuredBounds,ye=ge.width;ge=ge.height,fe.moveTo(b,te),fe instanceof ts&&(fe.rh=!1),b+=Math.max(ye,50)+20,oe=Math.max(oe,Math.max(ge,50)),re>=a-1?(re=0,b=x,te+=oe+20,oe=0):re++}}},vu.prototype.rh=function(a){return!!(!a.location.w()||a instanceof ts&&a.rh)};function lf(a,x,b,te,re,oe,le,fe){for(b=b.iterator;b.next();){var ge=b.value;te&&!ge.isTopLevel||re!==null&&!re(ge)||!ge.canLayout()||(oe&&ge instanceof ar?ge.isLinkLabel||(ge instanceof ts&&ge.layout===null?lf(a,x,ge.memberParts,!1,re,oe,le,fe):(jx(ge),x.add(ge))):le&&ge instanceof Ui?x.add(ge):!fe||!ge.Zc()||ge instanceof ar||(jx(ge),x.add(ge)))}}function jx(a){var x=a.actualBounds;(x.width===0||x.height===0||isNaN(x.width)||isNaN(x.height))&&a.Va()}vu.prototype.ni=function(a,x){var b=this.boundsComputation;return b!==null?(x||(x=new Yt),b(a,this,x)):x?(x.set(a.actualBounds),x):a.actualBounds},vu.prototype.ex=function(a){var x=new Yi;return a instanceof wn?(lf(this,x,a.nodes,!0,null,!0,!0,!0),lf(this,x,a.links,!0,null,!0,!0,!0),lf(this,x,a.parts,!0,null,!0,!0,!0)):a instanceof ts?lf(this,x,a.memberParts,!1,null,!0,!0,!0):lf(this,x,a.iterator,!1,null,!0,!0,!0),x},vu.prototype.initialOrigin=function(a){var x=this.group;if(x!==null){var b=x.position.copy();return(isNaN(b.x)||isNaN(b.y))&&b.set(a),x=x.placeholder,x!==null&&(b=x.ga(Is),(isNaN(b.x)||isNaN(b.y))&&b.set(a),a=x.padding,b.x+=a.left,b.y+=a.top),b}return a},pn.Object.defineProperties(vu.prototype,{diagram:{get:function(){return this.H},set:function(a){this.H=a}},group:{get:function(){return this.o},set:function(a){this.o!==a&&(this.o=a,a!==null&&(this.H=a.diagram))}},isOngoing:{get:function(){return this.sn},set:function(a){this.sn!==a&&(this.sn=a)}},isInitial:{get:function(){return this.Gh},set:function(a){this.Gh=a,a||(this.xn=!0)}},isViewportSized:{get:function(){return this.yn},set:function(a){this.yn!==a&&(this.yn=a)&&this.C()}},isRouting:{get:function(){return this.vn},set:function(a){this.vn!==a&&(this.vn=a)}},isRealtime:{get:function(){return this.un},set:function(a){this.un!==a&&(this.un=a)}},isValidLayout:{get:function(){return this.xn},set:function(a){this.xn!==a&&(this.xn=a,a||(a=this.diagram,a!==null&&(a.xh=!0)))}},network:{get:function(){return this.j},set:function(a){this.j!==a&&(this.j=a,a!==null&&(a.layout=this))}},boundsComputation:{get:function(){return this.Em},set:function(a){this.Em!==a&&(this.Em=a,this.C())}},arrangementOrigin:{get:function(){return this.Am},set:function(a){this.Am.D(a)||(this.Am.assign(a),this.C())}}}),vu.prototype.collectParts=vu.prototype.ex,vu.prototype.getLayoutBounds=vu.prototype.ni,vu.prototype.invalidateLayout=vu.prototype.C,vu.className="Layout";function Nl(a){$o(this),this.Sc=a,this.wf=new Yi,this.ye=new Yi,this.Es=new kn,this.zs=new kn}Nl.prototype.clear=function(){if(this.wf)for(var a=this.wf.iterator;a.next();)a.value.clear();if(this.ye)for(a=this.ye.iterator;a.next();)a.value.clear();this.wf=new Yi,this.ye=new Yi,this.Es=new kn,this.zs=new kn},Nl.prototype.toString=function(a){a===void 0&&(a=0);var x="LayoutNetwork"+(this.layout!==null?"("+this.layout.toString()+")":"");if(0>=a)return x;if(x+=" vertexes: "+this.wf.count+" edges: "+this.ye.count,1<a){for(var b=this.wf.iterator;b.next();)x+=`
|
|
`+b.value.toString(a-1);for(b=this.ye.iterator;b.next();)x+=`
|
|
`+b.value.toString(a-1)}return x},Nl.prototype.createVertex=function(){return new _u(this)},Nl.prototype.createEdge=function(){return new cf(this)},Nl.prototype.lg=function(a,x,b){if(a!==null){for(x===void 0&&(x=!1),b===void 0&&(b=null),b===null&&(b=function(le){if(le instanceof ar)return!le.isLinkLabel;if(le instanceof Ui){var fe=le.fromNode;return fe===null||fe.isLinkLabel?!1:(le=le.toNode,!(le===null||le.isLinkLabel))}return!1}),a=a.iterator;a.next();){var te=a.value;if(te instanceof ar&&(!x||te.isTopLevel)&&te.canLayout()&&b(te)){if(te instanceof ts&&te.layout===null)this.lg(te.memberParts,!1);else if(this.ki(te)===null){var re=this.createVertex();re.node=te,this.dh(re)}}}for(a.reset();a.next();)if(te=a.value,te instanceof Ui&&(!x||te.isTopLevel)&&te.canLayout()&&b(te)&&this.Lo(te)===null){var oe=te.fromNode;re=te.toNode,oe!==null&&re!==null&&oe!==re&&(oe=this.findGroupVertex(oe),re=this.findGroupVertex(re),oe!==null&&re!==null&&this.Zj(oe,re,te))}}},Nl.prototype.findGroupVertex=function(a){if(a===null)return null;var x=a.findVisibleNode();if(x===null)return null;if(a=this.ki(x),a!==null)return a;for(x=x.containingGroup;x!==null;){if(a=this.ki(x),a!==null)return a;x=x.containingGroup}return null},We=Nl.prototype,We.dh=function(a){if(a!==null){this.wf.add(a);var x=a.node;x!==null&&this.Es.add(x,a),a.network=this}},We.Bl=function(a){if(a===null)return null;var x=this.ki(a);return x===null&&(x=this.createVertex(),x.node=a,this.dh(x)),x},We.Iu=function(a){if(a!==null&&Vg(this,a)){for(var x=a.tg,b=x.count-1;0<=b;b--){var te=x.M(b);this.Mj(te)}for(x=a.mg,a=x.count-1;0<=a;a--)b=x.M(a),this.Mj(b)}};function Vg(a,x){if(x===null)return!1;var b=a.wf.remove(x);return b&&(x=x.node,x!==null&&a.Es.remove(x)),b}We.Zy=function(a){a!==null&&(a=this.ki(a),a!==null&&this.Iu(a))},We.ki=function(a){return a===null?null:this.Es.I(a)},We.Bo=function(a){if(a!==null){Gx(this,a);var x=a.toVertex;x!==null&&x.Cl(a),x=a.fromVertex,x!==null&&x.zl(a)}};function Gx(a,x){if(x!==null){a.ye.add(x);var b=x.link;b!==null&&a.Lo(b)===null&&a.zs.add(b,x),x.network=a}}We.Dy=function(a){if(a===null)return null;var x=a.fromNode,b=a.toNode,te=this.Lo(a);return te===null?(te=this.createEdge(),te.link=a,x!==null&&(te.fromVertex=this.Bl(x)),b!==null&&(te.toVertex=this.Bl(b)),this.Bo(te)):(x!==null?te.fromVertex=this.Bl(x):te.fromVertex=null,b!==null?te.toVertex=this.Bl(b):te.toVertex=null),te},We.Mj=function(a){if(a!==null){var x=a.toVertex;x!==null&&x.Kl(a),x=a.fromVertex,x!==null&&x.Jl(a),uf(this,a)}};function uf(a,x){x!==null&&a.ye.remove(x)&&(x=x.link,x!==null&&a.zs.remove(x))}We.Yy=function(a){a!==null&&(a=this.Lo(a),a!==null&&this.Mj(a))},We.Lo=function(a){return a===null?null:this.zs.I(a)},We.Zj=function(a,x,b){if(a===null||x===null)return null;if(a.network===this&&x.network===this){var te=this.createEdge();return te.link=b,te.fromVertex=a,te.toVertex=x,this.Bo(te),te}return null},We.gm=function(a){if(a!==null){var x=a.fromVertex,b=a.toVertex;x!==null&&b!==null&&(x.Jl(a),b.Kl(a),a.gm(),x.Cl(a),b.zl(a))}},We.Ko=function(){for(var a=ys(),x=this.ye.iterator;x.next();){var b=x.value;b.fromVertex===b.toVertex&&a.push(b)}for(x=a.length,b=0;b<x;b++)this.Mj(a[b]);As(a)},Nl.prototype.deleteArtificialVertexes=function(){for(var a=ys(),x=this.wf.iterator;x.next();){var b=x.value;b.node===null&&b.data===null&&a.push(b)}for(b=a.length,x=0;x<b;x++)this.Iu(a[x]);for(x=ys(),b=this.ye.iterator;b.next();){var te=b.value;te.link===null&&te.data===null&&x.push(te)}for(b=x.length,te=0;te<b;te++)this.Mj(x[te]);As(a),As(x)};function Tu(a){for(var x=ys(),b=a.ye.iterator;b.next();){var te=b.value;te.fromVertex!==null&&te.toVertex!==null||x.push(te)}for(b=x.length,te=0;te<b;te++)a.Mj(x[te]);As(x)}Nl.prototype.Zx=function(a){a===void 0&&(a=!0),a&&(this.deleteArtificialVertexes(),Tu(this),this.Ko()),a=new Zi;for(var x=!0;x;){x=!1;for(var b=this.wf.iterator;b.next();){var te=b.value;if(0<te.tg.count||0<te.mg.count){x=this.layout.createNetwork(),a.add(x),jC(this,x,te),x=!0;break}}}return a.sort(function(re,oe){return re===null||oe===null||re===oe?0:oe.vertexes.count-re.vertexes.count}),a};function jC(a,x,b){if(b!==null&&b.network!==x){Vg(a,b),x.dh(b);for(var te=b.sourceEdges;te.next();){var re=te.value;re.network!==x&&(uf(a,re),Gx(x,re),jC(a,x,re.fromVertex))}for(te=b.destinationEdges;te.next();)b=te.value,b.network!==x&&(uf(a,b),Gx(x,b),jC(a,x,b.toVertex))}}Nl.prototype.dz=function(){for(var a=new Yi,x=this.wf.iterator;x.next();)a.add(x.value.node);for(x=this.ye.iterator;x.next();)a.add(x.value.link);return a},pn.Object.defineProperties(Nl.prototype,{layout:{get:function(){return this.Sc},set:function(a){a!==null&&(this.Sc=a)}},vertexes:{get:function(){return this.wf}},edges:{get:function(){return this.ye}}}),Nl.prototype.findAllParts=Nl.prototype.dz,Nl.prototype.splitIntoSubNetworks=Nl.prototype.Zx,Nl.prototype.deleteSelfEdges=Nl.prototype.Ko,Nl.prototype.reverseEdge=Nl.prototype.gm,Nl.prototype.linkVertexes=Nl.prototype.Zj,Nl.prototype.findEdge=Nl.prototype.Lo,Nl.prototype.deleteLink=Nl.prototype.Yy,Nl.prototype.deleteEdge=Nl.prototype.Mj,Nl.prototype.addLink=Nl.prototype.Dy,Nl.prototype.addEdge=Nl.prototype.Bo,Nl.prototype.findVertex=Nl.prototype.ki,Nl.prototype.deleteNode=Nl.prototype.Zy,Nl.prototype.deleteVertex=Nl.prototype.Iu,Nl.prototype.addNode=Nl.prototype.Bl,Nl.prototype.addVertex=Nl.prototype.dh,Nl.prototype.addParts=Nl.prototype.lg,Nl.className="LayoutNetwork";function _u(a){$o(this),this.ob=a,this.j=new Yt(0,0,10,10).freeze(),this.o=new it(5,5).freeze(),this.Sh=this.ub=null,this.tg=new Zi,this.mg=new Zi}_u.prototype.clear=function(){this.Sh=this.ub=null,this.tg=new Zi,this.mg=new Zi},_u.prototype.toString=function(a){a===void 0&&(a=0);var x="LayoutVertex#"+Pl(this);if(0<a&&(x+=this.node!==null?"("+this.node.toString()+")":"",1<a)){a="";for(var b=!0,te=this.tg.iterator;te.next();){var re=te.value;b?b=!1:a+=",",a+=re.toString(0)}for(re="",b=!0,te=this.mg.iterator;te.next();){var oe=te.value;b?b=!1:re+=",",re+=oe.toString(0)}x+=" sources: "+a+" destinations: "+re}return x},_u.prototype.commit=function(){var a=this.ub;if(a!==null){var x=this.bounds,b=a.bounds;Ji(b)?(b.x=x.x,b.y=x.y,b.width=x.width,b.height=x.height):a.bounds=x.copy()}else if(a=this.node,a!==null){if(x=this.bounds,!(a instanceof ts)){b=Yt.alloc(),a.Va();var te=this.network.layout.ni(a,b),re=a.locationObject.ga(eo);if(te.w()&&re.w()){a.moveTo(x.x+this.focusX-(re.x-te.x),x.y+this.focusY-(re.y-te.y)),Yt.free(b);return}Yt.free(b)}a.moveTo(x.x,x.y)}},_u.prototype.Cl=function(a){a!==null&&(this.tg.contains(a)||this.tg.add(a))},_u.prototype.Kl=function(a){a!==null&&this.tg.remove(a)},_u.prototype.zl=function(a){a!==null&&(this.mg.contains(a)||this.mg.add(a))},_u.prototype.Jl=function(a){a!==null&&this.mg.remove(a)};function xw(a,x){return a=a.Sh,x=x.Sh,a?x?(a=a.text,x=x.text,a<x?-1:a>x?1:0):1:x!==null?-1:0}pn.Object.defineProperties(_u.prototype,{sourceEdgesArrayAccess:{get:function(){return this.tg._dataArray}},destinationEdgesArrayAccess:{get:function(){return this.mg._dataArray}},data:{get:function(){return this.ub},set:function(a){if(this.ub=a,a!==null&&a.bounds){var x=a.bounds;a=x.x;var b=x.y,te=x.width;x=x.height,this.o.h(te/2,x/2),this.j.h(a,b,te,x)}}},node:{get:function(){return this.Sh},set:function(a){if(this.Sh!==a){this.Sh=a,a.Va();var x=this.network.layout,b=Yt.alloc(),te=x.ni(a,b);x=te.x;var re=te.y,oe=te.width;if(te=te.height,isNaN(x)&&(x=0),isNaN(re)&&(re=0),this.j.h(x,re,oe,te),Yt.free(b),!(a instanceof ts)&&(a=a.locationObject.ga(eo),a.w())){this.o.h(a.x-x,a.y-re);return}this.o.h(oe/2,te/2)}}},bounds:{get:function(){return this.j},set:function(a){this.j.D(a)||this.j.assign(a)}},focus:{get:function(){return this.o},set:function(a){this.o.D(a)||this.o.assign(a)}},centerX:{get:function(){return this.j.x+this.o.x},set:function(a){var x=this.j;x.x+this.o.x!==a&&(x.ka(),x.x=a-this.o.x,x.freeze())}},centerY:{get:function(){return this.j.y+this.o.y},set:function(a){var x=this.j;x.y+this.o.y!==a&&(x.ka(),x.y=a-this.o.y,x.freeze())}},focusX:{get:function(){return this.o.x},set:function(a){var x=this.o;x.x!==a&&(x.ka(),x.x=a,x.freeze())}},focusY:{get:function(){return this.o.y},set:function(a){var x=this.o;x.y!==a&&(x.ka(),x.y=a,x.freeze())}},x:{get:function(){return this.j.x},set:function(a){var x=this.j;x.x!==a&&(x.ka(),x.x=a,x.freeze())}},y:{get:function(){return this.j.y},set:function(a){var x=this.j;x.y!==a&&(x.ka(),x.y=a,x.freeze())}},width:{get:function(){return this.j.width},set:function(a){var x=this.j;x.width!==a&&(x.ka(),x.width=a,x.freeze())}},height:{get:function(){return this.j.height},set:function(a){var x=this.j;x.height!==a&&(x.ka(),x.height=a,x.freeze())}},network:{get:function(){return this.ob},set:function(a){this.ob=a}},sourceVertexes:{get:function(){for(var a=new Yi,x=this.sourceEdges;x.next();)a.add(x.value.fromVertex);return a.iterator}},destinationVertexes:{get:function(){for(var a=new Yi,x=this.destinationEdges;x.next();)a.add(x.value.toVertex);return a.iterator}},vertexes:{get:function(){for(var a=new Yi,x=this.sourceEdges;x.next();)a.add(x.value.fromVertex);for(x=this.destinationEdges;x.next();)a.add(x.value.toVertex);return a.iterator}},sourceEdges:{get:function(){return this.tg.iterator}},destinationEdges:{get:function(){return this.mg.iterator}},edges:{get:function(){for(var a=new Zi,x=this.sourceEdges;x.next();)a.add(x.value);for(x=this.destinationEdges;x.next();)a.add(x.value);return a.iterator}},edgesCount:{get:function(){return this.tg.count+this.mg.count}}}),_u.prototype.deleteDestinationEdge=_u.prototype.Jl,_u.prototype.addDestinationEdge=_u.prototype.zl,_u.prototype.deleteSourceEdge=_u.prototype.Kl,_u.prototype.addSourceEdge=_u.prototype.Cl,_u.className="LayoutVertex",_u.standardComparer=xw,_u.smartComparer=function(a,x){if(a!==null){if(x!==null){a=a.Sh;var b=x.Sh;if(a!==null){if(b!==null){for(x=a.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/),a=b.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/),b=0;b<x.length;b++)if(a[b]!==""&&a[b]!==void 0){var te=parseFloat(x[b]),re=parseFloat(a[b]);if(isNaN(te))if(isNaN(re)){if(x[b].localeCompare(a[b])!==0)return x[b].localeCompare(a[b])}else return 1;else{if(isNaN(re))return-1;if(te-re!==0)return te-re}}else if(x[b]!=="")return 1;return a[b]!==""&&a[b]!==void 0?-1:0}return 1}return b!==null?-1:0}return 1}return x!==null?-1:0};function cf(a){$o(this),this.nb=a,this.qd=this.kd=this.$k=this.ub=null}cf.prototype.clear=function(){this.qd=this.kd=this.$k=this.ub=null},cf.prototype.toString=function(a){a===void 0&&(a=0);var x="LayoutEdge#"+Pl(this);return 0<a&&(x+=this.$k!==null?"("+this.$k.toString()+")":"",1<a&&(x+=" "+(this.kd?this.kd.toString():"null")+" --> "+(this.qd?this.qd.toString():"null"))),x},cf.prototype.gm=function(){var a=this.kd;this.kd=this.qd,this.qd=a},cf.prototype.commit=function(){},cf.prototype.Ax=function(a){return this.qd===a?this.kd:this.kd===a?this.qd:null},pn.Object.defineProperties(cf.prototype,{network:{get:function(){return this.nb},set:function(a){this.nb=a}},data:{get:function(){return this.ub},set:function(a){this.ub!==a&&(this.ub=a)}},link:{get:function(){return this.$k},set:function(a){this.$k!==a&&(this.$k=a)}},fromVertex:{get:function(){return this.kd},set:function(a){this.kd!==a&&(this.kd=a)}},toVertex:{get:function(){return this.qd},set:function(a){this.qd!==a&&(this.qd=a)}}}),cf.prototype.getOtherVertex=cf.prototype.Ax,cf.className="LayoutEdge";function Vc(a){vu.call(this),this.isViewportSized=!0,this.yo=this.zo=NaN,this.yg=new Dt(NaN,NaN).freeze(),this.tf=new Dt(10,10).freeze(),this.Jb=Wx,this.Rb=Qx,this.nd=rP,this.hd=iP,a&&Object.assign(this,a)}vn(Vc,vu),Vc.prototype.cloneProtected=function(a){vu.prototype.cloneProtected.call(this,a),a.zo=this.zo,a.yo=this.yo,a.yg.assign(this.yg),a.tf.assign(this.tf),a.Jb=this.Jb,a.Rb=this.Rb,a.nd=this.nd,a.hd=this.hd},Vc.prototype.qb=function(a){a.classType===Vc?a===rP||a===Zx||a===ww||a===Bc?this.sorting=a:a===Qx||a===mg?this.arrangement=a:a===Wx||a===Xx?this.alignment=a:hn("Unknown enum value: "+a):vu.prototype.qb.call(this,a)},Vc.prototype.doLayout=function(a){this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);var x=this.ex(a);a=this.diagram;for(var b=x.copy().iterator;b.next();){var te=b.value;if(!te.ph()||te.fromNode===null&&te.toNode===null){if(te.Va(),te instanceof ts)for(te=te.memberParts;te.next();)x.remove(te.value)}else x.remove(te)}var re=x.Fa();if(re.length!==0){switch(this.sorting){case Bc:re.reverse();break;case rP:re.sort(this.comparer);break;case Zx:re.sort(this.comparer),re.reverse()}var oe=this.wrappingColumn;isNaN(oe)&&(oe=0);var le=this.wrappingWidth;switch(isNaN(le)&&a!==null?(x=a.padding,le=Math.max(a.viewportBounds.width-x.left-x.right,0)):le=Math.max(this.wrappingWidth,0),0>=oe&&0>=le&&(oe=1),x=this.spacing.width,isFinite(x)||(x=0),b=this.spacing.height,isFinite(b)||(b=0),a!==null&&a.Ea("Layout"),te=[],this.alignment){case Xx:var fe=x,ge=b,ye=Yt.alloc(),we=Math.max(this.cellSize.width,1);if(!isFinite(we))for(var be=we=0;be<re.length;be++){var ke=this.ni(re[be],ye);we=Math.max(we,ke.width)}if(we=Math.max(we+fe,1),be=Math.max(this.cellSize.height,1),!isFinite(be))for(ke=be=0;ke<re.length;ke++){var Ue=this.ni(re[ke],ye);be=Math.max(be,Ue.height)}be=Math.max(be+ge,1),ke=this.arrangement;for(var Ve=Ue=this.arrangementOrigin.x,Ke=this.arrangementOrigin.y,Pt=0,ft=0,Nt=0;Nt<re.length;Nt++){var Lt=re[Nt],Ut=this.ni(Lt,ye),tn=Math.ceil((Ut.width+fe)/we)*we,xn=Math.ceil((Ut.height+ge)/be)*be;switch(ke){case mg:var nr=Math.abs(Ve-Ut.width);break;default:nr=Ve+Ut.width}switch((0<oe&&Pt>oe-1||0<le&&0<Pt&&nr-Ue>le)&&(te.push(new Yt(0,Ke,le+fe,ft)),Pt=0,Ve=Ue,Ke+=ft,ft=0),ft=Math.max(ft,xn),ke){case mg:Ut=-Ut.width;break;default:Ut=0}switch(Lt.moveTo(Ve+Ut,Ke),ke){case mg:Ve-=tn;break;default:Ve+=tn}Pt++}te.push(new Yt(0,Ke,le+fe,ft)),Yt.free(ye);break;case Wx:for(ge=le,we=oe,be=x,ke=b,le=Yt.alloc(),Ue=Math.max(this.cellSize.width,1),oe=Ke=ye=0,fe=it.alloc(),Ve=0;Ve<re.length;Ve++)ft=re[Ve],Pt=this.ni(ft,le),ft=Qf(ft,ft.locationObject,ft.locationSpot,fe),ye=Math.max(ye,ft.x),Ke=Math.max(Ke,Pt.width-ft.x),oe=Math.max(oe,ft.y);switch(Ve=this.arrangement,Ve){case mg:ye+=be;break;default:Ke+=be}Ue=isFinite(Ue)?Math.max(Ue+be,1):Math.max(ye+Ke,1);var Ir=ft=this.arrangementOrigin.x;for(Nt=this.arrangementOrigin.y,Ke=0,ge>=ye&&(ge-=ye),ye=Lt=0,tn=Math.max(this.cellSize.height,1),Ut=oe=0,xn=!0,Pt=it.alloc(),nr=0;nr<re.length;nr++){var br=re[nr],Di=this.ni(br,le),ii=Qf(br,br.locationObject,br.locationSpot,fe);if(0<Ke)switch(Ve){case mg:Ir=(Ir-ft-(Di.width-ii.x))/Ue,Ir=_t.$(Math.round(Ir),Ir)?Math.round(Ir):Math.floor(Ir),Ir=Ir*Ue+ft;break;default:Ir=(Ir-ft+ii.x)/Ue,Ir=_t.$(Math.round(Ir),Ir)?Math.round(Ir):Math.ceil(Ir),Ir=Ir*Ue+ft}else switch(Ve){case mg:Lt=Ir+ii.x+Di.width;break;default:Lt=Ir-ii.x}switch(Ve){case mg:var os=-(Ir+ii.x)+Lt;break;default:os=Ir+Di.width-ii.x-Lt}if(0<we&&Ke>we-1||0<ge&&0<Ke&&os>ge){for(te.push(new Yt(0,xn?Nt-oe:Nt,ge+be,Ut+oe+ke)),Ir=0;Ir<Ke&&nr!==Ke;Ir++){os=re[nr-Ke+Ir];var Oo=Qf(os,os.locationObject,os.locationSpot,Pt);os.moveTo(os.position.x,os.position.y+oe-Oo.y)}Ut+=ke,Nt=xn?Nt+Ut:Nt+(Ut+oe),Ke=Ut=oe=0,Ir=ft,xn=!1}switch(Ir===ft&&(ye=Ve===mg?Math.max(ye,Di.width-ii.x):Math.min(ye,-ii.x)),oe=Math.max(oe,ii.y),Ut=Math.max(Ut,Di.height-ii.y),isFinite(tn)&&(Ut=Math.max(Ut,Math.max(Di.height,tn)-ii.y)),xn?br.moveTo(Ir-ii.x,Nt-ii.y):br.moveTo(Ir-ii.x,Nt),Ve){case mg:Ir-=ii.x+be;break;default:Ir+=Di.width-ii.x+be}Ke++}if(te.push(new Yt(0,Nt,ge+be,(xn?Ut:Ut+oe)+ke)),re.length!==Ke)for(ge=0;ge<Ke;ge++)we=re[re.length-Ke+ge],be=Qf(we,we.locationObject,we.locationSpot,fe),we.moveTo(we.position.x,we.position.y+oe-be.y);if(it.free(fe),it.free(Pt),Ve===mg)for(re=0;re<te.length;re++)oe=te[re],oe.width+=ye,oe.x-=ye;else for(re=0;re<te.length;re++)oe=te[re],oe.x>ye&&(oe.width+=oe.x-ye,oe.x=ye);Yt.free(le)}for(fe=oe=le=re=0;fe<te.length;fe++)ge=te[fe],re=Math.min(re,ge.x),le=Math.min(le,ge.y),oe=Math.max(oe,ge.x+ge.width);this.arrangement===mg?this.commitLayers(te,new it(re+x/2-(oe+re),le-b/2)):this.commitLayers(te,new it(re-x/2,le-b/2)),a!==null&&a.eb("Layout"),this.isValidLayout=!0}},Vc.prototype.commitLayers=function(){};function iP(a,x){return a=a.text,x=x.text,a<x?-1:a>x?1:0}pn.Object.defineProperties(Vc.prototype,{wrappingWidth:{get:function(){return this.zo},set:function(a){this.zo!==a&&(0<a||isNaN(a))&&(this.zo=a,this.isViewportSized=isNaN(a),this.C())}},wrappingColumn:{get:function(){return this.yo},set:function(a){this.yo!==a&&(0<a||isNaN(a))&&(this.yo=a,this.C())}},cellSize:{get:function(){return this.yg},set:function(a){this.yg.D(a)||(this.yg.assign(a),this.C())}},spacing:{get:function(){return this.tf},set:function(a){this.tf.D(a)||(this.tf.assign(a),this.C())}},alignment:{get:function(){return this.Jb},set:function(a){this.Jb===a||a!==Wx&&a!==Xx||(this.Jb=a,this.C())}},arrangement:{get:function(){return this.Rb},set:function(a){this.Rb===a||a!==Qx&&a!==mg||(this.Rb=a,this.C())}},sorting:{get:function(){return this.nd},set:function(a){this.nd===a||a!==ww&&a!==Bc&&a!==rP&&a!==Zx||(this.nd=a,this.C())}},comparer:{get:function(){return this.hd},set:function(a){this.hd!==a&&(this.hd=a,this.C())}}});var Xx=new Ni(Vc,"Position",0),Wx=new Ni(Vc,"Location",1),Qx=new Ni(Vc,"LeftToRight",2),mg=new Ni(Vc,"RightToLeft",3),ww=new Ni(Vc,"Forward",4),Bc=new Ni(Vc,"Reverse",5),rP=new Ni(Vc,"Ascending",6),Zx=new Ni(Vc,"Descending",7);Vc.className="GridLayout",Vc.standardComparer=iP,Vc.smartComparer=function(a,x){if(a!==null){if(x!==null){a=a.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/),x=x.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/);for(var b=0;b<a.length;b++)if(x[b]!==""&&x[b]!==void 0){var te=parseFloat(a[b]),re=parseFloat(x[b]);if(isNaN(te))if(isNaN(re)){if(a[b].localeCompare(x[b])!==0)return a[b].localeCompare(x[b])}else return 1;else{if(isNaN(re))return-1;if(te-re!==0)return te-re}}else if(a[b]!=="")return 1;return x[b]!==""&&x[b]!==void 0?-1:0}return 1}return x!==null?-1:0},Vc.Position=Xx,Vc.Location=Wx,Vc.LeftToRight=Qx,Vc.RightToLeft=mg,Vc.Forward=ww,Vc.Reverse=Bc,Vc.Ascending=rP,Vc.Descending=Zx;function Wa(){this.On=new Yi,this.Dn=new Yi,this.Pa=new Yi,this.cf=new kn,this.bf=new kn,this.aj=new kn,this.H=null,this.tp=!1}We=Wa.prototype,We.clear=function(){this.On.clear(),this.Dn.clear(),this.Pa.clear(),this.cf.clear(),this.bf.clear(),this.aj.clear()},We.Xe=function(a){this.H=a},We.oi=function(a){if(a instanceof ar){if(this.On.add(a),a instanceof ts){var x=a.containingGroup;x===null?this.H.ai.add(a):x.gl.add(a),x=a.layout,x!==null&&(x.diagram=this.H)}}else a instanceof Ui?this.Dn.add(a):a instanceof Ca||this.Pa.add(a);x=a.data,x===null||a instanceof Ca||(a instanceof Ui?this.bf.add(x,a):this.cf.add(x,a))},We.pc=function(a){if(a.Ej(),a instanceof ar){if(this.On.remove(a),a instanceof ts){var x=a.containingGroup;x===null?this.H.ai.remove(a):x.gl.remove(a),x=a.layout,x!==null&&(x.diagram=null)}}else a instanceof Ui?this.Dn.remove(a):a instanceof Ca||this.Pa.remove(a);x=a.data,x===null||a instanceof Ca||(a instanceof Ui?this.bf.remove(x):this.cf.remove(x))},We.Wd=function(){var a=this.H;if(a!==null){for(var x=a.nodeTemplateMap.iterator;x.next();){var b=x.value,te=x.key;(!b.Zc()||b instanceof ts)&&hn('Invalid node template in Diagram.nodeTemplateMap: template for "'+te+'" must be a Node or a simple Part, not a Group or Link: '+b)}for(x=a.groupTemplateMap.iterator;x.next();)b=x.value,te=x.key,b instanceof ts||hn('Invalid group template in Diagram.groupTemplateMap: template for "'+te+'" must be a Group, not a normal Node or Link: '+b);for(x=a.linkTemplateMap.iterator;x.next();)b=x.value,te=x.key,b instanceof Ui||hn('Invalid link template in Diagram.linkTemplateMap: template for "'+te+'" must be a Link, not a normal Node or simple Part: '+b);for(x=ys(),b=a.selection.iterator;b.next();)(te=b.value.data)&&x.push(te);for(b=ys(),a=a.highlighteds.iterator;a.next();)(te=a.value.data)&&b.push(te);for(a=ys(),te=this.nodes.iterator;te.next();){var re=te.value;re.data!==null&&(a.push(re.data),a.push(re.location))}for(te=this.links.iterator;te.next();)re=te.value,re.data!==null&&(a.push(re.data),a.push(re.location));for(te=this.parts.iterator;te.next();)re=te.value,re.data!==null&&(a.push(re.data),a.push(re.location));for(this.removeAllModeledParts(),this.addAllModeledParts(),te=0;te<x.length;te++)re=this.Lc(x[te]),re!==null&&(re.isSelected=!0);for(te=0;te<b.length;te++)re=this.Lc(b[te]),re!==null&&(re.isHighlighted=!0);for(te=0;te<a.length;te+=2)re=this.Lc(a[te]),re!==null&&(re.location=a[te+1]);As(x),As(b),As(a)}},Wa.prototype.addAllModeledParts=function(){this.addModeledParts(this.diagram.model.nodeDataArray)},Wa.prototype.addModeledParts=function(a,x){var b=this,te=this.diagram.model;a.forEach(function(re){te.lb(re)&&Yx(b,re,!1)}),a.forEach(function(re){te.lb(re)&&b.resolveReferencesForData(re)}),x!==!1&&BS(this.diagram,!1)};function Yx(a,x,b){if(x!=null&&!a.diagram.undoManager.isUndoingRedoing&&!a.cf.contains(x)){b===void 0&&(b=!0);e:{if(x!=null&&!a.H.undoManager.isUndoingRedoing&&!a.cf.contains(x)){var te=a.Ro(x),re=Jp(a,x,te);if(re!==null&&(Yp(re),re=re.copy(),re!==null)){var oe=a.diagram.skipsModelSourceBindings;a.diagram.skipsModelSourceBindings=!0,re.Tf=te,re.ub=x,a.tp&&(re.Jg="Tool"),a.diagram.add(re),re.ub=null,re.data=x,a.diagram.skipsModelSourceBindings=oe,te=re;break e}}te=null}te!==null&&b&&a.resolveReferencesForData(x)}}Wa.prototype.insertLink=function(){return null},Wa.prototype.resolveReferencesForData=function(){},Wa.prototype.Ro=function(a){return this.H.model.Ro(a)};function Jp(a,x,b){a=a.H;var te=a.model;return te.Xj()&&te.Yu(x)?(x=a.groupTemplateMap.I(b),x===null&&(x=a.groupTemplateMap.I(""),x===null&&(oP||(oP=!0,al('No Group template found for category "'+b+'"'),al(" Using default group template")),x=a.ly))):(x=a.nodeTemplateMap.I(b),x===null&&(x=a.nodeTemplateMap.I(""),x===null&&(Rm||(Rm=!0,al('No Node template found for category "'+b+'"'),al(" Using default node template")),x=a.ny))),x}Wa.prototype.getLinkCategoryForData=function(){return""},Wa.prototype.setLinkCategoryForData=function(){},Wa.prototype.setFromNodeForLink=function(){},Wa.prototype.setToNodeForLink=function(){},Wa.prototype.findLinkTemplateForCategory=function(a){var x=this.H,b=x.linkTemplateMap.I(a);return b===null&&(b=x.linkTemplateMap.I(""),b===null&&(fy||(fy=!0,al('No Link template found for category "'+a+'"'),al(" Using default link template")),b=x.my)),b},Wa.prototype.removeAllModeledParts=function(){this.Gs(this.diagram.model.nodeDataArray)},Wa.prototype.Gs=function(a){var x=this;a.forEach(function(b){x.ip(b)})},Wa.prototype.ip=function(a){a=this.Lc(a),a!==null&&(PS(this.diagram,a,!1),this.unresolveReferencesForPart(a))},Wa.prototype.unresolveReferencesForPart=function(){},Wa.prototype.removeDataForLink=function(){},Wa.prototype.findPartForKey=function(a){return a==null?null:(a=this.H.model.hc(a),a!==null?this.cf.I(a):null)},Wa.prototype.Vb=function(a){return a==null||(a=this.H.model.hc(a),a===null)?null:(a=this.cf.I(a),a instanceof ar?a:null)},Wa.prototype.findLinkForKey=function(){return null},We=Wa.prototype,We.Lc=function(a){if(a===null)return null;var x=this.cf.I(a);return x!==null?x:x=this.bf.I(a)},We.ii=function(a){return a===null?null:(a=this.cf.I(a),a instanceof ar?a:null)},We.Kc=function(a){return a===null?null:this.bf.I(a)},We.ms=function(a){for(var x=0;x<arguments.length;++x);x=new Yi;for(var b=this.On.iterator;b.next();){var te=b.value,re=te.data;if(re!==null)for(var oe=0;oe<arguments.length;oe++){var le=arguments[oe];if(Ji(le)&&f2(this,re,le)){x.add(te);break}}}return x.iterator},We.ls=function(a){for(var x=0;x<arguments.length;++x);x=new Yi;for(var b=this.Dn.iterator;b.next();){var te=b.value,re=te.data;if(re!==null)for(var oe=0;oe<arguments.length;oe++){var le=arguments[oe];if(Ji(le)&&f2(this,re,le)){x.add(te);break}}}return x.iterator};function f2(a,x,b){for(var te in b){var re=x[te],oe=b[te];if(Fo(oe)){if(!Fo(re)||re.length<oe.length)return!1;for(var le=0;le<re.length;le++){var fe=oe[le];if(fe!==void 0&&!p2(a,re[le],fe))return!1}}else if(!p2(a,re,oe))return!1}return!0}function p2(a,x,b){if(typeof b=="function"){if(!b(x))return!1}else if(b instanceof RegExp){if(!x||!b.test(x.toString()))return!1}else if(Ji(x)&&Ji(b)){if(!f2(a,x,b))return!1}else if(x!==b)return!1;return!0}Wa.prototype.doModelChanged=function(a){if(this.H){var x=this.H;if(a.model===x.model){var b=a.change;if(x.doModelChanged(a),x.aa){x.aa=!1;try{var te=a.modelChange;if(te!=="")if(b===Dl){if(te==="nodeCategory"){var re=this.Lc(a.object),oe=a.newValue;re!==null&&typeof oe=="string"&&(re.category=oe)}else te==="nodeDataArray"&&(this.Gs(a.oldValue),this.addModeledParts(a.newValue));x.isModified=!0}else if(b===Ol){var le=a.newValue;te==="nodeDataArray"&&Ji(le)&&Yx(this,le),x.isModified=!0}else if(b===Ou){var fe=a.oldValue;te==="nodeDataArray"&&Ji(fe)&&this.ip(fe),x.isModified=!0}else b===Ka&&(te==="SourceChanged"?a.object!==null?this.updateDataBindings(a.object,a.propertyName):(this.rp(),this.updateAllTargetBindings()):te==="ModelDisplaced"&&this.Wd());else if(b===Dl){var ge=a.propertyName,ye=a.object;ye===x.model?(ge==="nodeKeyProperty"||ge==="nodeCategoryProperty")&&(x.undoManager.isUndoingRedoing||this.Wd()):this.updateDataBindings(ye,ge),x.isModified=!0}else if(b===Ol||b===Ou){var we=a.change===Ol,be=we?a.newParam:a.oldParam,ke=we?a.newValue:a.oldValue,Ue=this.aj.I(a.object);if(Array.isArray(Ue))for(a=0;a<Ue.length;a++){var Ve=Ue[a];if(we)BC(Ve,ke,be,!0);else if(!(0>be)){var Ke=be+US(Ve);Ve.pc(Ke,!0),Kb(Ve,Ke,be)}}x.isModified=!0}}finally{x.aa=!0}}}}},Wa.prototype.updateAllTargetBindings=function(a){a===void 0&&(a="");for(var x=this.parts.iterator;x.next();)x.value.La(a);for(x=this.nodes.iterator;x.next();)x.value.La(a);for(x=this.links.iterator;x.next();)x.value.La(a)},Wa.prototype.rp=function(){for(var a=this.H.model,x=new Yi,b=a.nodeDataArray,te=0;te<b.length;te++)x.add(b[te]);var re=[];for(this.nodes.each(function(le){le.data===null||x.contains(le.data)||re.push(le.data)}),this.parts.each(function(le){le.data===null||x.contains(le.data)||re.push(le.data)}),re.forEach(function(le){_x(a,le,!1)}),te=0;te<b.length;te++){var oe=b[te];this.Lc(oe)===null&&qx(a,oe,!1)}for(this.refreshDataBoundLinks(),b=this.parts.iterator;b.next();)b.value.updateRelationshipsFromData();for(b=this.nodes.iterator;b.next();)b.value.updateRelationshipsFromData();for(b=this.links.iterator;b.next();)b.value.updateRelationshipsFromData()},Wa.prototype.refreshDataBoundLinks=function(){},Wa.prototype.updateRelationshipsFromData=function(){},Wa.prototype.updateDataBindings=function(a,x){if(typeof x=="string"){var b=this.Lc(a);if(b!==null)b.La(x);else{b=null;for(var te=this.aj.iterator;te.next();){for(var re=te.value,oe=0;oe<re.length;oe++){var le=re[oe].sx(a);le!==null&&(b===null&&(b=ys()),b.push(le))}if(b!==null)break}if(b!==null){for(te=0;te<b.length;te++)b[te].La(x);As(b)}}a===this.diagram.model.modelData&&this.updateAllTargetBindings(x)}};function GC(a,x){var b=x.Hh;if(Fo(b)){var te=a.aj.I(b);if(te===null)te=[],te.push(x),a.aj.add(b,te);else{for(a=0;a<te.length;a++)if(te[a]===x)return;te.push(x)}}}function g2(a,x,b){Px(x,function(le){le=le.O.s;for(var fe=le.length,ge=0;ge<fe;ge++)bS(b,le[ge])});var te=x.Hh;if(Fo(te)){var re=a.aj.I(te);if(re!==null){for(var oe=0;oe<re.length;oe++)if(re[oe]===x){re.splice(oe,1),re.length===0&&a.aj.remove(te);break}}}}Wa.prototype.Kj=function(a,x,b){b===void 0&&(b=!1);var te=new kn;if(Fo(a))for(var re=0;re<a.length;re++)XC(this,a[re],x,te,b);else for(a=a.iterator;a.next();)XC(this,a.value,x,te,b);if(x!==null){b=x.model,a=x.toolManager.findTool("Dragging"),a=a!==null?a.dragOptions.dragsLink:x.Wm.dragsLink,re=new Yi;for(var oe=new kn,le=te.iterator;le.next();){var fe=le.value;if(fe instanceof Ui)a||fe.fromNode!==null&&fe.toNode!==null||re.add(fe);else if(fe instanceof ar&&fe.data!==null&&b.Tl()){var ge=fe;fe=le.key;var ye=fe.pg();ye!==null&&(ye=te.I(ye),ye!==null?(b.qe(ge.data,b.wa(ye.data)),ge=x.Kc(ge.data),fe=fe.kh(),fe!==null&&ge!==null&&oe.add(fe,ge)):b.qe(ge.data,void 0))}}if(0<re.count&&x.Is(re,!1),0<oe.count)for(b=oe.iterator;b.next();)te.add(b.key,b.value)}if(x!==null&&this.H!==null&&(x=x.model,b=x.afterCopyFunction,b!==null)){var we=new kn;te.each(function(be){be.key.data!==null&&we.add(be.key.data,be.value.data)}),b(we,x,this.H.model)}for(x=te.iterator;x.next();)x.value.La();return te};function XC(a,x,b,te,re){if(x===null||re&&!x.canCopy())return null;if(te.contains(x))return te.I(x);var oe=a.copyPartData(x,b);if(!(oe instanceof mo))return null;if(oe.isSelected=!1,oe.isHighlighted=!1,te.add(x,oe),x instanceof ar){for(var le=x.linksConnected;le.next();){var fe=le.value;if(fe.fromNode===x){var ge=te.I(fe);ge!==null&&(ge.fromNode=oe)}fe.toNode===x&&(fe=te.I(fe),fe!==null&&(fe.toNode=oe))}if(x instanceof ts&&oe instanceof ts)for(x=x.memberParts;x.next();)le=XC(a,x.value,b,te,re),le instanceof Ui||le===null||(le.containingGroup=oe)}else if(x instanceof Ui&&oe instanceof Ui)for(le=x.fromNode,le!==null&&(le=te.I(le),le!==null&&(oe.fromNode=le)),le=x.toNode,le!==null&&(le=te.I(le),le!==null&&(oe.toNode=le)),x=x.labelNodes;x.next();)le=XC(a,x.value,b,te,re),le!==null&&le instanceof ar&&(le.labeledLink=oe);return oe}Wa.prototype.copyPartData=function(a,x){var b=null,te=a.data;if(te!==null&&x!==null){var re=x.model;a instanceof Ui||(te=re.copyNodeData(te),Ji(te)&&(re.xf(te),b=x.Lc(te)))}else Yp(a),b=a.copy(),b!==null&&(re=this.H,x!==null?x.add(b):te!==null&&re!==null&&re.commandHandler!==null&&re.commandHandler.copiesClipboardData&&(x=re.model,re=null,b instanceof Ui||(re=x.copyNodeData(te)),Ji(re)&&(b.data=re)));return b},pn.Object.defineProperties(Wa.prototype,{nodes:{get:function(){return this.On}},links:{get:function(){return this.Dn}},parts:{get:function(){return this.Pa}},diagram:{get:function(){return this.H}},addsToTemporaryLayer:{get:function(){return this.tp},set:function(a){this.tp=a}}}),Wa.prototype.updateAllRelationshipsFromData=Wa.prototype.rp,Wa.prototype.findLinksByExample=Wa.prototype.ls,Wa.prototype.findNodesByExample=Wa.prototype.ms,Wa.prototype.findLinkForData=Wa.prototype.Kc,Wa.prototype.findNodeForData=Wa.prototype.ii,Wa.prototype.findPartForData=Wa.prototype.Lc,Wa.prototype.findNodeForKey=Wa.prototype.Vb,Wa.prototype.removeModeledPart=Wa.prototype.ip,Wa.prototype.removeModeledParts=Wa.prototype.Gs,Wa.prototype.rebuildParts=Wa.prototype.Wd;var Rm=!1,oP=!1,fy=!1;Wa.className="PartManager";function jc(a){Wa.apply(this,arguments)}vn(jc,Wa),jc.prototype.addAllModeledParts=function(){var a=this.diagram.model;this.addModeledParts(a.nodeDataArray),m2(this,a.linkDataArray)},jc.prototype.addModeledParts=function(a){for(Wa.prototype.addModeledParts.call(this,a,!1),a=this.links.iterator;a.next();)dm(a.value);BS(this.diagram,!1)};function m2(a,x){x.forEach(function(b){Bd(a,b)}),BS(a.diagram,!1)}function Bd(a,x){if(x!=null&&!a.diagram.undoManager.isUndoingRedoing&&!a.bf.contains(x)){var b=a.getLinkCategoryForData(x),te=a.findLinkTemplateForCategory(b);if(te!==null){Yp(te);var re=te.copy();if(re!==null){te=a.diagram.skipsModelSourceBindings,a.diagram.skipsModelSourceBindings=!0,re.Tf=b,re.ub=x,b=a.diagram.model;var oe=bw(b,x,!0);oe!==""&&(re.fromPortId=oe),oe=Df(b,x,!0),oe!==void 0&&(oe=a.Vb(oe),oe instanceof ar&&(re.fromNode=oe)),oe=bw(b,x,!1),oe!==""&&(re.toPortId=oe),oe=Df(b,x,!1),oe!==void 0&&(oe=a.Vb(oe),oe instanceof ar&&(re.toNode=oe)),b=b.Ef(x),Array.isArray(b)&&b.forEach(function(le){le=a.Vb(le),le!==null&&(le.labeledLink=re)}),a.tp&&(re.Jg="Tool"),a.diagram.add(re),re.ub=null,re.data=x,a.diagram.skipsModelSourceBindings=te}}}}jc.prototype.removeAllModeledParts=function(){var a=this.diagram.model;Kx(this,a.linkDataArray),this.Gs(a.nodeDataArray)};function Kx(a,x){x.forEach(function(b){a.ip(b)})}jc.prototype.getLinkCategoryForData=function(a){return this.diagram.model.ps(a)},jc.prototype.setLinkCategoryForData=function(a,x){return this.diagram.model.lp(a,x)},jc.prototype.setFromNodeForLink=function(a,x){var b=this.diagram.model;b.wv(a.data,b.wa(x!==null?x.data:null))},jc.prototype.setToNodeForLink=function(a,x){var b=this.diagram.model;b.Bv(a.data,b.wa(x!==null?x.data:null))},jc.prototype.removeDataForLink=function(a){this.diagram.model.bm(a.data)},jc.prototype.findPartForKey=function(a){var x=Wa.prototype.findPartForKey.call(this,a);return x===null&&(a=this.diagram.model.jh(a),a!==null)?this.bf.I(a):x},jc.prototype.findLinkForKey=function(a){return a==null?null:(a=this.diagram.model.jh(a),a!==null?this.bf.I(a):null)},jc.prototype.doModelChanged=function(a){var x=this;if(Wa.prototype.doModelChanged.call(this,a),this.diagram){var b=this.diagram;if(a.model===b.model){var te=a.change;if(b.aa){b.aa=!1;try{var re=a.modelChange;if(re!==""){if(te===Dl){if(re==="linkFromKey"){var oe=this.Kc(a.object);if(oe!==null){var le=this.Vb(a.newValue);oe.fromNode=le}}else if(re==="linkToKey"){var fe=this.Kc(a.object);if(fe!==null){var ge=this.Vb(a.newValue);fe.toNode=ge}}else if(re==="linkFromPortId"){var ye=this.Kc(a.object);if(ye!==null){var we=a.newValue;typeof we=="string"&&(ye.fromPortId=we)}}else if(re==="linkToPortId"){var be=this.Kc(a.object);if(be!==null){var ke=a.newValue;typeof ke=="string"&&(be.toPortId=ke)}}else if(re==="nodeGroupKey"){var Ue=this.Lc(a.object);if(Ue!==null){var Ve=a.newValue;if(Ve!==void 0){var Ke=this.Vb(Ve);Ke instanceof ts?Ue.containingGroup=Ke:Ue.containingGroup=null}else Ue.containingGroup=null}}else if(re==="linkLabelKeys"){var Pt=this.Kc(a.object);if(Pt!==null){var ft=a.oldValue,Nt=a.newValue;Array.isArray(ft)&&ft.forEach(function(ii){0<=Nt.indexOf(ii)||(ii=x.Vb(ii),ii!==null&&(ii.labeledLink=null))}),Array.isArray(Nt)&&Nt.forEach(function(ii){ii=x.Vb(ii),ii!==null&&(ii.labeledLink=Pt)})}}else if(re==="linkCategory"){var Lt=this.Kc(a.object),Ut=a.newValue;Lt!==null&&typeof Ut=="string"&&(Lt.category=Ut)}else re==="linkDataArray"&&(Kx(this,a.oldValue),m2(this,a.newValue));b.isModified=!0}else if(te===Ol){var tn=a.newValue;if(re==="linkDataArray"&&typeof tn=="object"&&tn!==null)Bd(this,tn);else if(re==="linkLabelKeys"&&gm(tn)){var xn=this.Kc(a.object),nr=this.Vb(tn);xn!==null&&nr!==null&&(nr.labeledLink=xn)}b.isModified=!0}else if(te===Ou){var Ir=a.oldValue;if(re==="linkDataArray"&&typeof Ir=="object"&&Ir!==null)this.ip(Ir);else if(re==="linkLabelKeys"&&gm(Ir)){var br=this.Vb(Ir);br!==null&&(br.labeledLink=null)}b.isModified=!0}}else if(te===Dl){var Di=a.propertyName;a.object!==b.model||Di!=="linkFromKeyProperty"&&Di!=="linkToKeyProperty"&&Di!=="linkFromPortIdProperty"&&Di!=="linkToPortIdProperty"&&Di!=="linkLabelKeysProperty"&&Di!=="nodeIsGroupProperty"&&Di!=="nodeGroupKeyProperty"&&Di!=="linkCategoryProperty"||b.undoManager.isUndoingRedoing||this.Wd(),b.isModified=!0}}finally{b.aa=!0}}}}},jc.prototype.refreshDataBoundLinks=function(){var a=this,x=this.diagram.model,b=new Yi,te=x.linkDataArray;te.forEach(function(oe){b.add(oe)});var re=[];this.links.each(function(oe){oe.data===null||b.contains(oe.data)||re.push(oe.data)}),re.forEach(function(oe){D5(x,oe,!1)}),te.forEach(function(oe){a.Kc(oe)===null&&QC(x,oe,!1)})},jc.prototype.updateRelationshipsFromData=function(a){var x=a.data;if(x!==null){var b=a.diagram;if(b!==null){var te=b.model;if(a instanceof Ui){var re=Df(te,x,!0);if(re=b.Vb(re),a.fromNode=re,re=Df(te,x,!1),re=b.Vb(re),a.toNode=re,x=te.Ef(x),0<x.length||0<a.labelNodes.count){if(x.length===1&&a.labelNodes.count===1){re=x[0];var oe=a.labelNodes.first();if(te.wa(oe.data)===re)return}re=new Yi().addAll(x);var le=new Yi;a.labelNodes.each(function(fe){fe.data!==null&&(fe=te.wa(fe.data),fe!==void 0&&le.add(fe))}),x=le.copy(),x.hp(re),re=re.copy(),re.hp(le),(0<x.count||0<re.count)&&(x.each(function(fe){fe=b.Vb(fe),fe!==null&&fe.labeledLink===a&&(fe.labeledLink=null)}),re.each(function(fe){fe=b.Vb(fe),fe!==null&&fe.labeledLink!==a&&(fe.labeledLink=a)}))}}else!(a instanceof Ca)&&(x=te.lh(x),x=b.findPartForKey(x),x===null||x instanceof ts)&&(a.containingGroup=x)}}},jc.prototype.resolveReferencesForData=function(a){var x=this.diagram.model,b=x.wa(a);if(b!==void 0){var te=Cw(x,b),re=this.Lc(a);if(te!==null&&re!==null){te=te.iterator;for(var oe={};te.next();){var le=te.value;x.lb(le)?re instanceof ts&&x.lh(le)===b&&(le=this.Lc(le),le!==null&&(le.containingGroup=re)):(oe.link=this.Kc(le),oe.link!==null&&re instanceof ar&&(Df(x,le,!0)===b&&(oe.link.fromNode=re),Df(x,le,!1)===b&&(oe.link.toNode=re),le=x.Ef(le),Array.isArray(le)&&le.some(function(fe){return function(ge){return ge===b?(re.labeledLink=fe.link,!0):!1}}(oe)))),oe={link:oe.link}}Kf(x,b)}a=x.lh(a),a!==void 0&&(a=this.Vb(a),a instanceof ts&&(re.containingGroup=a))}},jc.prototype.unresolveReferencesForPart=function(a){var x=this.diagram.model;if(a instanceof ar){var b=x.wa(a.data);if(b!==void 0){for(var te=a.linksConnected;te.next();)Tf(x,b,te.value.data);if(a.isLinkLabel&&(te=a.labeledLink,te!==null&&Tf(x,b,te.data)),a instanceof ts)for(a=a.memberParts;a.next();)te=a.value.data,x.lb(te)&&Tf(x,b,te)}}},jc.prototype.copyPartData=function(a,x){var b=Wa.prototype.copyPartData.call(this,a,x);if(a instanceof Ui)if(a=a.data,a!==null&&x!==null){var te=x.model;a=te.Jo(a),typeof a=="object"&&a!==null&&(te.fi(a),b=x.Kc(a))}else b!==null&&(x=this.diagram,a!==null&&x!==null&&x.commandHandler!==null&&x.commandHandler.copiesClipboardData&&(x=x.model.Jo(a),typeof x=="object"&&x!==null&&(b.data=x)));return b},jc.prototype.insertLink=function(a,x,b,te){var re=this.diagram,oe=re.model,le=re.toolManager.findTool("Linking"),fe="";if(a!==null&&(x===null&&(x=a),fe=x.portId,fe===null&&(fe="")),x="",b!==null&&(te===null&&(te=b),x=te.portId,x===null&&(x="")),te=le.archetypeLinkData,te instanceof Ui){if(Yp(te),oe=te.copy(),oe!==null)return oe.fromNode=a,oe.fromPortId=fe,oe.toNode=b,oe.toPortId=x,re.add(oe),a=le.archetypeLabelNodeData,a instanceof ar&&(Yp(a),a=a.copy(),a!==null&&(a.labeledLink=oe,re.add(a))),oe}else if(te!==null&&(te=oe.Jo(te),typeof te=="object"&&te!==null))return a!==null&&py(oe,te,oe.wa(a.data),!0),t1(oe,te,fe,!0),b!==null&&py(oe,te,oe.wa(b.data),!1),t1(oe,te,x,!1),oe.fi(te),a=le.archetypeLabelNodeData,a===null||a instanceof ar||(a=oe.copyNodeData(a),typeof a=="object"&&a!==null&&(oe.xf(a),a=oe.wa(a),a!==void 0&&oe.Bu(te,a))),re.Kc(te);return null},jc.prototype.findLinkForKey=jc.prototype.findLinkForKey,jc.prototype.findPartForKey=jc.prototype.findPartForKey,jc.prototype.removeAllModeledParts=jc.prototype.removeAllModeledParts,jc.prototype.addModeledParts=jc.prototype.addModeledParts,jc.prototype.addAllModeledParts=jc.prototype.addAllModeledParts,jc.className="GraphLinksPartManager";function Td(){Wa.apply(this,arguments),this.Sg=null}vn(Td,Wa);function sP(a,x,b){if(x!==null&&b!==null&&b.kh()===null){var te=a.diagram.toolManager.findTool("Linking"),re=x,oe=b;if(a.diagram.isTreePathToChildren||(re=b,oe=x),(te===null||!cl(te,re,oe,null,!0))&&(x=a.getLinkCategoryForData(b.data),te=a.findLinkTemplateForCategory(x),te!==null&&(Yp(te),te=te.copy(),te!==null))){var le=a.diagram.skipsModelSourceBindings;a.diagram.skipsModelSourceBindings=!0,te.Tf=x,te.ub=b.data,te.fromNode=re,te.toNode=oe,a.diagram.add(te),te.ub=null,te.data=b.data,a.diagram.skipsModelSourceBindings=le}}}Td.prototype.getLinkCategoryForData=function(a){return this.diagram.model.ss(a)},Td.prototype.setLinkCategoryForData=function(a,x){this.diagram.model.Ms(a,x)},Td.prototype.setFromNodeForLink=function(a,x,b){var te=this.diagram.model;if(b===void 0&&(b=null),x=x!==null?x.data:null,this.diagram.isTreePathToChildren)te.qe(a.data,te.wa(x));else{var re=this.Sg;this.Sg=a,b!==null&&te.qe(b.data,void 0),te.qe(x,te.wa(a.toNode!==null?a.toNode.data:null)),this.Sg=re}},Td.prototype.setToNodeForLink=function(a,x,b){var te=this.diagram.model;if(b===void 0&&(b=null),x=x!==null?x.data:null,this.diagram.isTreePathToChildren){var re=this.Sg;this.Sg=a,b!==null&&te.qe(b.data,void 0),te.qe(x,te.wa(a.fromNode!==null?a.fromNode.data:null)),this.Sg=re}else te.qe(a.data,te.wa(x))},Td.prototype.removeDataForLink=function(a){this.diagram.model.qe(a.data,void 0)},Td.prototype.findLinkForKey=function(a){return a==null?null:(a=this.diagram.model.hc(a),a!==null?this.bf.I(a):null)},Td.prototype.doModelChanged=function(a){if(Wa.prototype.doModelChanged.call(this,a),this.diagram){var x=this.diagram;if(a.model===x.model){var b=a.change;if(x.aa){x.aa=!1;try{var te=a.modelChange;if(te!==""){if(b===Dl){if(te==="nodeParentKey"){var re=a.object,oe=this.Vb(a.newValue),le=this.ii(re);if(this.Sg!==null)oe!==null&&(this.Sg.data=re,this.Sg.category=this.getLinkCategoryForData(re));else if(le!==null){var fe=le.kh();fe!==null?oe===null?x.remove(fe):x.isTreePathToChildren?fe.fromNode=oe:fe.toNode=oe:sP(this,oe,le)}}else if(te==="parentLinkCategory"){var ge=this.ii(a.object),ye=a.newValue;if(ge!==null&&typeof ye=="string"){var we=ge.kh();we!==null&&(we.category=ye)}}x.isModified=!0}}else if(b===Dl){var be=a.propertyName;a.object===x.model&&be==="nodeParentKeyProperty"&&(x.undoManager.isUndoingRedoing||this.Wd()),x.isModified=!0}}finally{x.aa=!0}}}}},Td.prototype.updateRelationshipsFromData=function(a){var x=a.data;if(x!==null){var b=a.diagram;if(b!==null){var te=b.model;a instanceof ar&&(x=te.mh(x),x=b.Vb(x),te=a.pg(),x!==te&&(te=a.kh(),x!==null?te!==null?b.isTreePathToChildren?te.fromNode=x:te.toNode=x:sP(this,x,a):te!==null&&PS(b,te,!1)))}}},Td.prototype.updateDataBindings=function(a,x){Wa.prototype.updateDataBindings.call(this,a,x),typeof x=="string"&&this.Lc(a)!==null&&(a=this.Kc(a),a!==null&&a.La(x))},Td.prototype.resolveReferencesForData=function(a){var x=this.diagram.model,b=x.wa(a);if(b!==void 0){var te=Cw(x,b),re=this.Lc(a);if(te!==null&&re!==null){for(te=te.iterator;te.next();){var oe=te.value;x.lb(oe)&&re instanceof ar&&x.mh(oe)===b&&sP(this,re,this.ii(oe))}Kf(x,b)}a=x.mh(a),a!==void 0&&re instanceof ar&&(a=this.Vb(a),sP(this,a,re))}},Td.prototype.unresolveReferencesForPart=function(a){var x=this.diagram.model;if(a instanceof ar){var b=x.wa(a.data),te=this.Kc(a.data);if(te!==null){te.isSelected=!1,te.isHighlighted=!1;var re=te.layer;if(re!==null){var oe=re.pc(-1,te,!1);0<=oe&&this.diagram.cb(Ou,"parts",re,te,null,oe,null),oe=te.layerChanged,oe!==null&&oe(te,re,null)}}for(te=this.diagram.isTreePathToChildren,a=a.linksConnected;a.next();)re=a.value,re=(te?re.toNode:re.fromNode).data,x.lb(re)&&Tf(x,b,re)}},Td.prototype.insertLink=function(a,x,b){x=this.diagram.model;var te=a,re=b;return this.diagram.isTreePathToChildren||(te=b,re=a),te!==null&&re!==null?(x.qe(re.data,x.wa(te.data)),re.kh()):null},Td.prototype.findLinkForKey=Td.prototype.findLinkForKey,Td.className="TreePartManager";function Gr(a,x){this.kl=new Yi,this.il=new Yi,this.Wv=`,
|
|
"insertedNodeKeys": `,this.jy=`,
|
|
"modifiedNodeData": `,this.Yv=`,
|
|
"removedNodeKeys": `,this.vh=null,$o(this),this.Sm=this.xa="",this.Gg=!1,this.j={},this.Tc=[],this.kb=new kn,this.Th="key",this.Bk=this.bl=null,this.Jm=this.Km=!1,this.Mm=!0,this.xm=null,this.lj="category",this.Vf=new kn,this.Lt=new Zi,this.Wg=!1,this.o=null,this.undoManager=new Jl,a!==void 0&&(Fo(a)?this.nodeDataArray=a:x=a),x&&(Object.assign(this,x),a=x.Changed)&&(delete this.Changed,this.Pe(a))}Gr.prototype.cloneProtected=function(a){a.xa=this.xa,a.Sm=this.Sm,a.Gg=this.Gg,a.Th=this.Th,a.bl=this.bl,a.Bk=this.Bk,a.Km=this.Km,a.Jm=this.Jm,a.Mm=this.Mm,a.xm=this.xm,a.lj=this.lj},Gr.prototype.copy=function(){var a=new this.constructor;return this.cloneProtected(a),a},Gr.prototype.clear=function(){this.Tc=[],this.kb.clear(),this.Vf.clear(),this.undoManager.clear()},Gr.prototype.toString=function(a){if(a===void 0&&(a=0),1<a)return this.np();var x=(this.name!==""?this.name:"")+" Model";if(0<a){x+=`
|
|
node data:`,a=this.nodeDataArray;for(var b=a.length,te=0;te<b;te++){var re=a[te];x+=" "+this.wa(re)+":"+da(re)}}return x},Gr.prototype.xA=function(a){a.change!==Ka&&hn("Model.toIncrementalData argument is not a Transaction ChangedEvent:"+a.toString());var x=a.object;return a.isTransactionFinished&&x instanceof Wu?(M5(this,x),a=this.Qv(x,a.propertyName==="FinishedUndo"),this.vh=null,a):null},Gr.prototype.Qv=function(a,x){var b=this,te=!1,re=new Yi,oe=new Yi,le=new Yi,fe=this.vh;a.changes.each(function(be){be.model===b&&(be.modelChange==="nodeDataArray"?be.change===Ol?re.add(be.newValue):be.change===Ou&&le.add(be.oldValue):b.lb(be.object)?oe.add(be.object):be.change!==Dl||b.modelData!==be.object&&be.propertyName!=="modelData"?be.object!==null&&(fe&&fe.contains(be.object)?fe.get(be.object).each(function(ke){b.lb(ke)&&oe.add(ke)}):be.object instanceof Gr||b.ri()&&b.Jc(be.object)||aP(b,be.object).each(function(ke){oe.add(ke)})):te=!0)});var ge=this.il;ge.clear(),re.each(function(be){ge.add(b.wa(be)),x||oe.add(be)});var ye=this.kl;ye.clear(),le.each(function(be){ye.add(b.wa(be)),x&&oe.add(be)}),a=b.cloneDeep(oe.Fa());var we=null;return te&&(we===null&&(we={}),we.modelData=this.cloneDeep(this.modelData)),0<ge.count&&(we===null&&(we={}),x?we.removedNodeKeys=ge.Fa():we.insertedNodeKeys=ge.Fa()),0<a.length&&(we===null&&(we={}),we.modifiedNodeData=a),0<ye.count&&(we===null&&(we={}),x?we.insertedNodeKeys=ye.Fa():we.removedNodeKeys=ye.Fa()),ye.clear(),ge.clear(),we},Gr.prototype.cloneDeep=function(a){return Jx(this,a,!0)};function Jx(a,x,b,te,re,oe){function le(be,ke){fe?(be.__gohashid===void 0&&oe.push(be),te.set(be,ke)):(be=pc++,te.set(be,ke),re.set(be,x))}if(!Ji(x))return x;oe||(oe=[]);var fe=Object.isExtensible(x);if(te||(te=new kn),fe){var ge=te.get(x);if(ge)return ge}else for(re||(re=new kn),ge=re.iterator;ge.next();){var ye=ge.key;if(ge.value===x&&(ye=te.get(ye)))return ye}if(Array.isArray(x)){ge=[],le(x,ge);for(var we=0;we<x.length;we++)ge.push(Jx(a,x[we],!1,te,re,oe))}else if(x instanceof it||x instanceof Dt||x instanceof Yt||x instanceof yr||x instanceof Ii)ge=x.copy(),le(x,ge);else{if(x instanceof Ws||x instanceof ai||x instanceof Ni)return x;if(x instanceof Zi)ge=new Zi().addAll(Jx(a,x.Fa(),!1,te,re,oe)),le(x,ge);else if(x instanceof Yi)ge=new Yi().addAll(Jx(a,x.Fa(),!1,te,re,oe)),le(x,ge);else if(x instanceof kn)ge=new kn().addAll(Jx(a,x.Fa(),!1,te,re,oe)),le(x,ge);else if(x instanceof Date)ge=new Date(x.getTime()),le(x,ge);else if(x instanceof RegExp)ge=new RegExp(x),le(x,ge),ge.lastIndex=x.lastIndex;else if(typeof x.copy=="function")ge=x.copy(),le(x,ge);else for(we in ge={},le(x,ge),x)we!=="__gohashid"&&(ge[we]=Jx(a,x[we],!1,te,re,oe))}return b&&oe.forEach(function(be){delete be.__gohashid}),ge}We=Gr.prototype,We.quote=function(a){return JSON.stringify(a).replace(/[\u007F-\uFFFF]/g,function(x){return"\\u"+("0000"+x.charCodeAt(0).toString(16)).substr(-4)})},We.rm=function(){var a="";return this.name!==""&&(a+=`,
|
|
"name": `+this.quote(this.name)),this.dataFormat!==""&&(a+=`,
|
|
"dataFormat": `+this.quote(this.dataFormat)),this.isReadOnly&&(a+=`,
|
|
"isReadOnly": `+this.isReadOnly),this.nodeKeyProperty!=="key"&&typeof this.nodeKeyProperty=="string"&&(a+=`,
|
|
"nodeKeyProperty": `+this.quote(this.nodeKeyProperty)),this.copiesArrays&&(a+=`,
|
|
"copiesArrays": true`),this.copiesArrayObjects&&(a+=`,
|
|
"copiesArrayObjects": true`),this.copiesKey||(a+=`,
|
|
"copiesKey": false`),this.nodeCategoryProperty!=="category"&&typeof this.nodeCategoryProperty=="string"&&(a+=`,
|
|
"nodeCategoryProperty": `+this.quote(this.nodeCategoryProperty)),a},We.gp=function(a){a.name&&(this.name=a.name),a.dataFormat&&(this.dataFormat=a.dataFormat),a.isReadOnly&&(this.isReadOnly=!0),a.nodeKeyProperty&&(this.nodeKeyProperty=a.nodeKeyProperty),a.copiesArrays&&(this.copiesArrays=!0),a.copiesArrayObjects&&(this.copiesArrayObjects=!0),a.copiesKey===!1&&(this.copiesKey=!1),a.nodeCategoryProperty&&(this.nodeCategoryProperty=a.nodeCategoryProperty)};function PA(a,x){x=x.modelData,Ji(x)&&(a.dm(x),a.modelData=x)}We.Rv=function(){var a=this.modelData,x=!1,b;for(b in a)if(!Pw(b,a[b])){x=!0;break}return a="",x&&(a=`,
|
|
"modelData": `+bp(this,this.modelData)),a+`,
|
|
"nodeDataArray": `+y0(this,this.nodeDataArray,!0)},We.kv=function(a){PA(this,a),a=a.nodeDataArray,Fo(a)&&(this.dm(a),this.nodeDataArray=a)};function M5(a,x){function b(re,oe){if((oe=oe.part)&&(oe=oe.data,re!==oe)){var le=te.get(re);le===null?(le=new Yi,le.add(oe),te.add(re,le)):le.add(oe)}}var te=a.vh;te===null&&(te=new kn,x.changes.each(function(re){if(re.diagram!==null){var oe=re.change;oe===Dl?(re=re.object.panel)&&(oe=re.data)&&b(oe,re):(oe===Ol||oe===Ou)&&(re=re.object,(oe=re.itemArray)&&b(oe,re))}}),a.vh=te)}function aP(a,x){for(var b=new Yi,te=0;te<a.nodeDataArray.length;te++){var re=a.nodeDataArray[te];Sw(a,x,re,re,b)}return b}function Sw(a,x,b,te,re){if(Array.isArray(b))for(var oe=0;oe<b.length;oe++){var le=b[oe];if(le===x)return re.add(te),!0;if(Sw(a,x,le,te,re))return!0}else if(Ji(b)&&Object.getPrototypeOf(b)===Object.prototype)for(oe in b){if(le=b[oe],le===x)return re.add(te),!0;if(Sw(a,x,le,te,re))return!0}return!1}We.Pv=function(a,x){var b=this,te=!1,re=new Yi,oe=new Yi,le=new Yi,fe=this.vh;a.changes.each(function(we){we.model===b&&(we.modelChange==="nodeDataArray"?we.change===Ol?re.add(we.newValue):we.change===Ou&&le.add(we.oldValue):b.lb(we.object)?oe.add(we.object):we.change!==Dl||b.modelData!==we.object&&we.propertyName!=="modelData"?we.object!==null&&(fe&&fe.contains(we.object)?fe.get(we.object).each(function(be){b.lb(be)&&oe.add(be)}):we.object instanceof Gr||b.ri()&&b.Jc(we.object)||aP(b,we.object).each(function(be){oe.add(be)})):te=!0)});var ge=this.il;ge.clear(),re.each(function(we){ge.add(b.wa(we)),x||oe.add(we)});var ye=this.kl;return ye.clear(),le.each(function(we){ye.add(b.wa(we)),x&&oe.add(we)}),a="",te&&(a+=`,
|
|
"modelData": `+bp(this,this.modelData)),0<ge.count&&(a+=(x?this.Yv:this.Wv)+y0(this,ge.Fa(),!0)),0<oe.count&&(a+=this.jy+y0(this,oe.Fa(),!0)),0<ye.count&&(a+=(x?this.Wv:this.Yv)+y0(this,ye.Fa(),!0)),ye.clear(),ge.clear(),a},We.fp=function(a){(a.name!==void 0&&a.name!==this.name||a.dataFormat!==void 0&&a.dataFormat!==this.dataFormat||a.isReadOnly!==void 0&&a.isReadOnly!==this.isReadOnly||a.nodeKeyProperty!==void 0&&a.nodeKeyProperty!==this.nodeKeyProperty||a.copiesArrays!==void 0&&a.copiesArrays!==this.copiesArrays||a.copiesArrayObjects!==void 0&&a.copiesArrayObjects!==this.copiesArrayObjects||a.copiesKey!==void 0&&a.copiesKey!==this.copiesKey||a.nodeCategoryProperty!==void 0&&a.nodeCategoryProperty!==this.nodeCategoryProperty)&&hn("applyIncrementalJson cannot change Model properties"),PA(this,a);var x=a.insertedNodeKeys,b=a.modifiedNodeData,te=new kn;if(Array.isArray(b))for(var re=0;re<b.length;re++){var oe=b[re],le=this.wa(oe);le!=null&&te.set(le,oe)}if(Array.isArray(x))for(re=x.length,oe=0;oe<re;oe++){le=x[oe];var fe=this.hc(le);fe===null&&(fe=(fe=te.get(le))?fe:this.copyNodeData({}),this.km(fe,le),this.xf(fe))}if(Array.isArray(b)){for(x=b.length,te=0;te<x;te++)if(re=b[te],oe=this.wa(re),oe=this.hc(oe),oe!==null){for(var ge in re)ge==="__gohashid"||ge===this.nodeKeyProperty||this.Wj()&&ge===this.nodeIsGroupProperty||this.setDataProperty(oe,ge,re[ge]);this.lm(re,oe)}}if(a=a.removedNodeKeys,Array.isArray(a))for(b=a.length,ge=0;ge<b;ge++)x=this.hc(a[ge]),x!==null&&this.cm(x)},We.$x=function(a,x){a.change!==Ka&&hn("Model.toIncrementalJson argument is not a Transaction ChangedEvent:"+a.toString());var b=a.object;return a.isTransactionFinished&&b instanceof Wu?(x===void 0&&(x=CA(this,this)),M5(this,b),a=this.Pv(b,a.propertyName==="FinishedUndo"),this.vh=null,x==="2"?'{ "incremental": 2'+a+"}":'{ "class": '+this.quote(x)+', "incremental": 1'+this.rm()+a+"}"):'{ "incremental": 0 }'},We.yA=function(a,x){return this.$x(a,x)},We.np=function(a){return a===void 0&&(a=CA(this,this)),'{ "class": '+this.quote(a)+this.rm()+this.Rv()+"}"},We.toJSON=function(a){return this.np(a)},We.Zw=function(a){var x=null;if(typeof a=="string")try{x=ji.JSON.parse(a)}catch(te){}else typeof a=="object"?x=a:hn("Unable to modify a Model from: "+a);var b=x.incremental;typeof b!="number"&&hn("Unable to apply non-incremental changes to Model: "+a),b!==0&&(this.Ea("applyIncrementalJson"),this.fp(x),this.eb("applyIncrementalJson"))},We.Ky=function(a){return this.Zw(a)},Gr.constructGraphLinksModel=function(){return new Gr},We=Gr.prototype,We.dm=function(a){if(Fo(a))for(var x=a.length,b=0;b<x;b++){var te=a[b];if(Ji(te)){var re=b;te=this.dm(te),Array.isArray(a)?a[re]=te:hn("Cannot replace an object in an HTMLCollection or NodeList at "+re)}}else if(Ji(a)){for(x in a)if(b=a[x],Ji(b)&&(b=this.dm(b),a[x]=b,x==="points"&&Array.isArray(b))){for(re=b.length%2===0,te=0;te<b.length;te++)if(typeof b[te]!="number"){re=!1;break}if(re){for(re=new Zi,te=0;te<b.length/2;te++)re.add(new it(b[2*te],b[2*te+1]));re.freeze(),a[x]=re}}return v2(a)}return a},We.sm=function(a){return a===void 0?"undefined":a===null?"null":a===!0?"true":a===!1?"false":typeof a=="string"?this.quote(a):typeof a=="number"?a===1/0?"9e9999":a===-1/0?"-9e9999":isNaN(a)?'{"class":"NaN"}':a.toString():a instanceof Date?'{"class":"Date", "value":"'+a.toJSON()+'"}':a instanceof Number?this.sm(a.valueOf()):Fo(a)?y0(this,a):Ji(a)?bp(this,a):typeof a=="function"?"null":a.toString()};function y0(a,x,b){b===void 0&&(b=!1);var te=x.length;if(0>=te)return"[]";var re=new zs;re.add("["),b&&1<te&&re.add(`
|
|
`);for(var oe=0;oe<te;oe++){var le=x[oe];le!==void 0&&(0<oe&&(re.add(","),b&&re.add(`
|
|
`)),re.add(a.sm(le)))}return b&&1<te&&re.add(`
|
|
`),re.add("]"),re.toString()}function Pw(a,x){return x===void 0||a==="__gohashid"||a[0]==="_"||typeof x=="function"}function Zh(a){return isNaN(a)?"NaN":a===1/0?"9e9999":a===-1/0?"-9e9999":a}function bp(a,x){var b=x;if(b instanceof it)x={class:"go.Point",x:Zh(b.x),y:Zh(b.y)};else if(b instanceof Dt)x={class:"go.Size",width:Zh(b.width),height:Zh(b.height)};else if(b instanceof Yt)x={class:"go.Rect",x:Zh(b.x),y:Zh(b.y),width:Zh(b.width),height:Zh(b.height)};else if(b instanceof yr)x={class:"go.Margin",top:Zh(b.top),right:Zh(b.right),bottom:Zh(b.bottom),left:Zh(b.left)};else if(b instanceof Ii)b.sb()?x={class:"go.Spot",x:Zh(b.x),y:Zh(b.y),offsetX:Zh(b.offsetX),offsetY:Zh(b.offsetY)}:x={class:"go.Spot",enum:b.toString()};else if(b instanceof Ws){if(x={class:"go.Brush",type:b.type.name},b.type===dg?x.color=b.color:(b.type===Zp||b.type===Ed)&&(x.start=b.start,x.end=b.end,b.type===Ed&&(b.startRadius!==0&&(x.startRadius=Zh(b.startRadius)),isNaN(b.endRadius)||(x.endRadius=Zh(b.endRadius)))),b.colorStops!==null){var te={};for(b=b.colorStops.iterator;b.next();)te[b.key]=b.value;x.colorStops=te}}else b instanceof ai?(x={class:"go.Geometry",type:b.type.name},b.startX!==0&&(x.startX=Zh(b.startX)),b.startY!==0&&(x.startY=Zh(b.startY)),b.endX!==0&&(x.endX=Zh(b.endX)),b.endY!==0&&(x.endY=Zh(b.endY)),b.spot1.D(Is)||(x.spot1=b.spot1),b.spot2.D(ws)||(x.spot2=b.spot2),b.type===ai.o&&(x.path=ai.ia(b))):b instanceof Ni&&(x={class:"go.EnumValue",classType:CA(a,b.classType),name:b.name});te="{",b=!0;for(var re in x){var oe=ec(x,re);if(!Pw(re,oe))if(b?b=!1:te+=",",te+=a.quote(re)+":",re==="points"&&oe instanceof Zi){var le="[";for(oe=oe.iterator;oe.next();){var fe=oe.value;1<le.length&&(le+=","),le+=a.sm(fe.x),le+=",",le+=a.sm(fe.y)}le+="]",te+=le}else te+=a.sm(oe)}return te+"}"}function wh(a){return typeof a=="number"?a:a==="NaN"?NaN:a==="9e9999"?1/0:a==="-9e9999"?-1/0:parseFloat(a)}function v2(a){if(typeof a!="object")return a;var x=a.class||"";if(x==="NaN")return NaN;if(x==="Date")return new Date(a.value);if(x.indexOf("go.")!==0)return a;x=x.substr(3);var b=a;if(x==="Point")b=new it(wh(a.x),wh(a.y));else if(x==="Size")b=new Dt(wh(a.width),wh(a.height));else if(x==="Rect")b=new Yt(wh(a.x),wh(a.y),wh(a.width),wh(a.height));else if(x==="Margin")b=new yr(wh(a.top),wh(a.right),wh(a.bottom),wh(a.left));else if(x==="Spot")typeof a.enum=="string"?b=ps(a.enum):b=new Ii(wh(a.x),wh(a.y),wh(a.offsetX),wh(a.offsetY));else if(x==="Brush"){if(b=new Ws,b.type=Lo(Ws,a.type),typeof a.color=="string"&&(b.color=a.color),a.start instanceof Ii&&(b.start=a.start),a.end instanceof Ii&&(b.end=a.end),typeof a.startRadius=="number"&&(b.startRadius=wh(a.startRadius)),typeof a.endRadius=="number"&&(b.endRadius=wh(a.endRadius)),a=a.colorStops,Ji(a))for(var te in a)b.addColorStop(parseFloat(te),a[te])}else x==="Geometry"?(b=null,typeof a.path=="string"?b=ai.parse(a.path):b=new ai,b.type=Lo(ai,a.type),typeof a.startX=="number"&&(b.startX=wh(a.startX)),typeof a.startY=="number"&&(b.startY=wh(a.startY)),typeof a.endX=="number"&&(b.endX=wh(a.endX)),typeof a.endY=="number"&&(b.endY=wh(a.endY)),a.spot1 instanceof Ii&&(b.spot1=a.spot1),a.spot2 instanceof Ii&&(b.spot2=a.spot2)):x==="EnumValue"&&(te=a.classType,te.indexOf("go.")===0&&(te=te.substr(3)),te=WC(te),typeof te=="function"&&(b=Lo(te,a.name)));return b}We.Pe=function(a){return this.Lt.add(a),this},We.ik=function(a){this.Lt.remove(a)},We.ds=function(a){this.skipsUndoManager||this.undoManager.Tu(a);for(var x=this.Lt,b=x.length,te=0;te<b;te++)x.M(te)(a)},We.cb=function(a,x,b,te,re,oe,le){$u(this,"",a,x,b,te,re,oe,le)},We.g=function(a,x,b,te,re){$u(this,"",Dl,a,this,x,b,te,re)},We.Fs=function(a,x,b,te,re,oe){$u(this,"",Dl,x,a,b,te,re,oe)};function $u(a,x,b,te,re,oe,le,fe,ge){fe===void 0&&(fe=null),ge===void 0&&(ge=null);var ye=new ul;ye.model=a,ye.change=b,ye.modelChange=x,ye.propertyName=te,ye.object=re,ye.oldValue=oe,ye.oldParam=fe,ye.newValue=le,ye.newParam=ge,a.ds(ye)}Gr.prototype.changeState=function(a,x){if(a!==null&&a.model===this)if(a.change===Dl){var b=a.object,te=a.propertyName,re=a.I(x);te===this.nodeKeyProperty&&this.lb(b)&&(x=a.I(!x),x!==void 0&&this.kb.remove(x),re!==void 0&&this.kb.add(re,b)),cu(b,te,re)}else a.change===Ol?(b=a.newParam,a.modelChange==="nodeDataArray"?(a=a.newValue,Ji(a)&&typeof b=="number"&&(te=this.wa(a),x?(this.Tc[b]===a&&Ll(this.Tc,b),te!==void 0&&this.kb.remove(te)):(this.Tc[b]!==a&&xl(this.Tc,b,a),te!==void 0&&this.kb.add(te,a)))):a.modelChange===""?((te=a.object)&&!Fo(te)&&a.propertyName&&(te=ec(a.object,a.propertyName)),Fo(te)&&typeof b=="number"&&(a=a.newValue,x?Ll(te,b):xl(te,b,a))):hn("unknown ChangedEvent.Insert modelChange: "+a.toString())):a.change===Ou?(b=a.oldParam,a.modelChange==="nodeDataArray"?(a=a.oldValue,Ji(a)&&typeof b=="number"&&(te=this.wa(a),x?(this.Tc[b]!==a&&xl(this.Tc,b,a),te!==void 0&&this.kb.add(te,a)):(this.Tc[b]===a&&Ll(this.Tc,b),te!==void 0&&this.kb.remove(te)))):a.modelChange===""?((te=a.object)&&!Fo(te)&&a.propertyName&&(te=ec(a.object,a.propertyName)),Fo(te)&&typeof b=="number"&&(a=a.oldValue,x?xl(te,b,a):Ll(te,b))):hn("unknown ChangedEvent.Remove modelChange: "+a.toString())):a.change!==Ka&&hn("unknown ChangedEvent: "+a.toString())},Gr.prototype.Ea=function(a){return this.undoManager.Ea(a)},Gr.prototype.eb=function(a){return this.undoManager.eb(a)},Gr.prototype.Kf=function(){return this.undoManager.Kf()},Gr.prototype.commit=function(a,x){x===void 0&&(x="");var b=this.skipsUndoManager;x===null&&(this.skipsUndoManager=!0,x=""),this.undoManager.Ea(x);var te=!1;try{a(this),te=!0}finally{te?this.undoManager.eb(x):this.undoManager.Kf(),this.skipsUndoManager=b}},We=Gr.prototype,We.La=function(a,x){x===void 0&&(x=""),$u(this,"SourceChanged",Ka,x,a,null,null)},We.wa=function(a){if(a!==null){var x=this.Th;if(x!==""&&(x=ec(a,x),x!==void 0)){if(gm(x))return x;hn("Key value for node data "+a+" is not a number or a string: "+x)}}},We.km=function(a,x){if(a!==null){var b=this.Th;if(b!=="")if(this.lb(a)){var te=ec(a,b);te!==x&&this.hc(x)===null&&(cu(a,b,x),te!==void 0&&this.kb.remove(te),this.kb.add(x,a),$u(this,"nodeKey",Dl,b,a,te,x),typeof b=="string"&&this.La(a,b),this.jp(te,x))}else cu(a,b,x)}};function gm(a){return typeof a=="number"||typeof a=="string"}We.lb=function(a){var x=this.wa(a);return x===void 0?!1:this.kb.I(x)===a},We.hc=function(a){return a===null&&hn("Model.findNodeDataForKey:key must not be null"),a!==void 0&&gm(a)?this.kb.I(a):null},We.$u=function(a){if(a!==null){var x=this.Th;if(x!==""){var b=this.wa(a);if(b===void 0||this.kb.contains(b)){var te=this.bl;if(te!==null&&(b=te(this,a),b!=null&&!this.kb.contains(b))){cu(a,x,b);return}if(typeof b=="string"){for(te=2;this.kb.contains(b+te);)te++;cu(a,x,b+te)}else if(b===void 0||typeof b=="number"){for(b=-this.kb.count-1;this.kb.contains(b);)b--;cu(a,x,b)}}}}},We.xf=function(a){a!==null&&(dl(a),this.lb(a)||qx(this,a,!0))};function qx(a,x,b){var te=a.wa(x);(te===void 0||a.kb.I(te)!==x)&&(a.$u(x),te=a.wa(x),te===void 0&&hn("Model.makeNodeDataKeyUnique failed on "+x+". Data not added to Model."),a.kb.add(te,x),te=null,b&&(te=a.Tc.length,xl(a.Tc,te,x)),$u(a,"nodeDataArray",Ol,"nodeDataArray",a,null,x,null,te),a.fm(x),a.em(x))}We.Fy=function(a){if(Fo(a))for(var x=a.length,b=0;b<x;b++)this.xf(a[b]);else for(a=a.iterator;a.next();)this.xf(a.value)},We.cm=function(a){a!==null&&_x(this,a,!0)};function _x(a,x,b){var te=a.wa(x);if(te!==void 0&&a.kb.remove(te),te=null,b){e:if(b=a.Tc,Array.isArray(b))te=b.indexOf(x);else{te=b.length;for(var re=0;re<te;re++)if(b[re]===x){te=re;break e}te=-1}if(0>te)return;Ll(a.Tc,te)}$u(a,"nodeDataArray",Ou,"nodeDataArray",a,x,null,te,null),a.qp(x)}We.nA=function(a){if(Fo(a))for(var x=a.length,b=0;b<x;b++)this.cm(a[b]);else for(a=a.iterator;a.next();)this.cm(a.value)},We.$z=function(a){if(a!==this.nodeDataArray&&Fo(a)){var x=this.kl;x.clear(),x.addAll(this.kb.iteratorKeys);var b=this.il;b.clear();for(var te=a.length,re=0;re<te;re++){var oe=a[re],le=this.wa(oe);if(le!==void 0){b.add(le);var fe=this.hc(le);fe!==oe&&(fe!==null?(this.Do(fe,oe),this.lm(oe,fe)):(oe=this.cloneDeep(oe),this.km(oe,le),this.xf(oe)))}else le=this.cloneDeep(oe),this.xf(le),b.add(this.wa(le))}for(a=x.iterator;a.next();)te=a.value,b.contains(te)||(te=this.hc(te))&&this.cm(te);x.clear(),b.clear()}},We.jp=function(a,x){x!==void 0&&(a=Cw(this,a),a instanceof Yi&&this.Vf.add(x,a))},We.Lv=function(){},We.fm=function(){},We.em=function(){},We.qp=function(){};function Tf(a,x,b){if(x!==void 0){var te=a.Vf.I(x);te===null&&(te=new Yi,a.Vf.add(x,te)),te.add(b)}}function Kf(a,x,b){if(x!==void 0){var te=a.Vf.I(x);te instanceof Yi&&(b==null?a.Vf.remove(x):(te.remove(b),te.count===0&&a.Vf.remove(x)))}}function Cw(a,x){return x===void 0?null:(a=a.Vf.I(x),a instanceof Yi?a:null)}We.Qy=function(a){a===void 0?this.Vf.clear():this.Vf.remove(a)},Gr.prototype.copyNodeData=function(a){if(a===null)return null;var x=this.Bk;return a=x!==null?x(a,this):$x(this,a,!0),Ji(a)&&$o(a),a};function $x(a,x,b){if(a.copiesArrays&&Array.isArray(x)){var te=[];for(b=0;b<x.length;b++){var re=$x(a,x[b],a.copiesArrayObjects);te.push(re)}return $o(te),te}if(b&&Ji(x)){b=(b=x.constructor)?new b:{},re=a.copiesKey||typeof a.nodeKeyProperty!="string"?null:a.nodeKeyProperty;for(te in x)if(te==="__gohashid")b.__gohashid=void 0;else if(te===re)b[re]=void 0;else{var oe=ec(x,te),le=CA(a,oe);le==="GraphObject"||le==="Diagram"||le==="Layer"||le==="RowColumnDefinition"||le==="AnimationManager"||le==="Tool"||le==="CommandHandler"||le==="Layout"||le==="InputEvent"||le==="DiagramEvent"||oe instanceof Gr||oe instanceof Jl||oe instanceof Wu||oe instanceof ul||(oe=$x(a,oe,!1)),cu(b,te,oe)}return $o(b),b}return x instanceof it||x instanceof Dt||x instanceof Yt||x instanceof Ii||x instanceof yr?x.copy():x}Gr.prototype.setDataProperty=function(a,x,b){if(this.lb(a)){if(x===this.nodeKeyProperty){this.km(a,b);return}if(x===this.nodeCategoryProperty){this.jm(a,b);return}}else!B5&&a instanceof nn&&(B5=!0,al('Model.setDataProperty is modifying a GraphObject, "'+a.toString()+'"'),al(" Is that really your intent?"));var te=ec(a,x);te!==b&&(cu(a,x,b),this.Fs(a,x,te,b))},We=Gr.prototype,We.set=function(a,x,b){this.setDataProperty(a,x,b)},We.Do=function(a,x){if(x){var b=this.lb(a),te;for(te in x)te==="__gohashid"||b&&te===this.nodeKeyProperty||this.setDataProperty(a,te,x[te])}},We.Ay=function(a,x){this.ts(a,-1,x)},We.ts=function(a,x,b){0>x&&(x=a.length),xl(a,x,b),$u(this,"",Ol,"",a,null,b,null,x)},We.ov=function(a,x){x===void 0&&(x=-1),a===this.Tc&&hn("Model.removeArrayItem should not be called on the Model.nodeDataArray"),x===-1&&(x=a.length-1);var b=a[x];Ll(a,x),$u(this,"",Ou,"",a,b,null,x,null)},We.Ro=function(a){if(a===null)return"";var x=this.lj;if(x===""||(x=ec(a,x),x===void 0))return"";if(typeof x=="string")return x;hn("getCategoryForNodeData found a non-string category for "+a+": "+x)},We.jm=function(a,x){if(a!==null){var b=this.lj;if(b!=="")if(this.lb(a)){var te=ec(a,b);te===void 0&&(te=""),te!==x&&(cu(a,b,x),$u(this,"nodeCategory",Dl,b,a,te,x))}else cu(a,b,x)}},We.lm=function(a,x){this.jm(x,this.Ro(a))},We.Tl=function(){return!1},We.Wj=function(){return!1},We.ri=function(){return!1},We.xs=function(){return!1},We.Xj=function(){return!1};function e1(){return new Gr}function CA(a,x){if(typeof x=="function"){if(x.className)return x.className;if(x.name)return x.name}else if(typeof x=="object"&&x!==null&&x.constructor)return CA(a,x.constructor);return typeof x}function WC(a){return Jf[a]?Jf[a]:ji.go!==void 0&&ji.go[a]?ji.go[a]:null}function ec(a,x){if(!a||!x)return null;try{if(typeof x=="function")var b=x(a);else typeof a.getAttribute=="function"?(b=a.getAttribute(x),b===null&&(b=void 0)):b=a[x]}catch(te){}return b}function cu(a,x,b){if(a&&x)try{typeof x=="function"?x(a,b):typeof a.setAttribute=="function"?a.setAttribute(x,b):a[x]=b}catch(te){}}pn.Object.defineProperties(Gr.prototype,{name:{get:function(){return this.xa},set:function(a){var x=this.xa;x!==a&&(this.xa=a,this.g("name",x,a))}},dataFormat:{get:function(){return this.Sm},set:function(a){var x=this.Sm;x!==a&&(this.Sm=a,this.g("dataFormat",x,a))}},isReadOnly:{get:function(){return this.Gg},set:function(a){var x=this.Gg;x!==a&&(this.Gg=a,this.g("isReadOnly",x,a))}},modelData:{get:function(){return this.j},set:function(a){var x=this.j;x!==a&&(this.j=a,this.g("modelData",x,a),this.La(a))}},undoManager:{get:function(){return this.o},set:function(a){var x=this.o;x!==a&&(x!==null&&x.Rx(this),this.o=a,a!==null&&a.Xw(this))}},skipsUndoManager:{get:function(){return this.Wg},set:function(a){this.Wg=a}},nodeKeyProperty:{get:function(){return this.Th},set:function(a){var x=this.Th;x!==a&&(a===""&&hn("Model.nodeKeyProperty may not be the empty string"),0<this.kb.count&&hn("Cannot set Model.nodeKeyProperty when there is existing node data"),this.Th=a,this.g("nodeKeyProperty",x,a))}},makeUniqueKeyFunction:{get:function(){return this.bl},set:function(a){var x=this.bl;x!==a&&(this.bl=a,this.g("makeUniqueKeyFunction",x,a))}},nodeDataArray:{get:function(){return this.Tc},set:function(a){var x=this.Tc;if(x!==a){this.kb.clear(),this.Lv();for(var b=a.length,te=0;te<b;te++){var re=a[te];Ji(re)||hn("Model.nodeDataArray must only contain Objects, not: "+re),dl(re)}for(this.Tc=a,te=new Zi,re=0;re<b;re++){var oe=a[re],le=this.wa(oe);le===void 0||this.kb.I(le)!==null?te.add(oe):this.kb.add(le,oe)}for(te=te.iterator;te.next();)re=te.value,this.$u(re),oe=this.wa(re),oe!==void 0&&this.kb.add(oe,re);for($u(this,"nodeDataArray",Dl,"nodeDataArray",this,x,a),x=0;x<b;x++)te=a[x],this.fm(te),this.em(te);Array.isArray(a)||(this.isReadOnly=!0)}}},copyNodeDataFunction:{get:function(){return this.Bk},set:function(a){var x=this.Bk;x!==a&&(this.Bk=a,this.g("copyNodeDataFunction",x,a))}},copiesArrays:{get:function(){return this.Km},set:function(a){var x=this.Km;x!==a&&(this.Km=a,this.g("copiesArrays",x,a))}},copiesArrayObjects:{get:function(){return this.Jm},set:function(a){var x=this.Jm;x!==a&&(this.Jm=a,this.g("copiesArrayObjects",x,a))}},copiesKey:{get:function(){return this.Mm},set:function(a){var x=this.Mm;x!==a&&(this.Mm=a,this.g("copiesKey",x,a))}},afterCopyFunction:{get:function(){return this.xm},set:function(a){var x=this.xm;x!==a&&(this.xm=a,this.g("afterCopyFunction",x,a))}},nodeCategoryProperty:{get:function(){return this.lj},set:function(a){var x=this.lj;x!==a&&(this.lj=a,this.g("nodeCategoryProperty",x,a))}},type:{get:function(){return"Model"}}}),Gr.prototype.setCategoryForNodeData=Gr.prototype.jm,Gr.prototype.getCategoryForNodeData=Gr.prototype.Ro,Gr.prototype.removeArrayItem=Gr.prototype.ov,Gr.prototype.insertArrayItem=Gr.prototype.ts,Gr.prototype.addArrayItem=Gr.prototype.Ay,Gr.prototype.assignAllDataProperties=Gr.prototype.Do,Gr.prototype.set=Gr.prototype.set,Gr.prototype.clearUnresolvedReferences=Gr.prototype.Qy,Gr.prototype.mergeNodeDataArray=Gr.prototype.$z,Gr.prototype.removeNodeDataCollection=Gr.prototype.nA,Gr.prototype.removeNodeData=Gr.prototype.cm,Gr.prototype.addNodeDataCollection=Gr.prototype.Fy,Gr.prototype.addNodeData=Gr.prototype.xf,Gr.prototype.makeNodeDataKeyUnique=Gr.prototype.$u,Gr.prototype.findNodeDataForKey=Gr.prototype.hc,Gr.prototype.containsNodeData=Gr.prototype.lb,Gr.prototype.setKeyForNodeData=Gr.prototype.km,Gr.prototype.getKeyForNodeData=Gr.prototype.wa,Gr.prototype.updateTargetBindings=Gr.prototype.La,Gr.prototype.commit=Gr.prototype.commit,Gr.prototype.rollbackTransaction=Gr.prototype.Kf,Gr.prototype.commitTransaction=Gr.prototype.eb,Gr.prototype.startTransaction=Gr.prototype.Ea,Gr.prototype.raiseDataChanged=Gr.prototype.Fs,Gr.prototype.raiseChanged=Gr.prototype.g,Gr.prototype.raiseChangedEvent=Gr.prototype.cb,Gr.prototype.removeChangedListener=Gr.prototype.ik,Gr.prototype.addChangedListener=Gr.prototype.Pe,Gr.prototype.writeJsonValue=Gr.prototype.sm,Gr.prototype.replaceJsonObjects=Gr.prototype.dm,Gr.prototype.applyIncrementalJSON=Gr.prototype.Ky,Gr.prototype.applyIncrementalJson=Gr.prototype.Zw,Gr.prototype.toJSON=Gr.prototype.toJSON,Gr.prototype.toJson=Gr.prototype.np,Gr.prototype.toIncrementalJSON=Gr.prototype.yA,Gr.prototype.toIncrementalJson=Gr.prototype.$x,Gr.prototype.toIncrementalData=Gr.prototype.xA,Gr.prototype.clear=Gr.prototype.clear;var B5=!1,Jf={};Gr.className="Model",Gr.fromJSON=Gr.fromJson=function(a,x){x===void 0&&(x=null);var b=null;if(typeof a=="string")try{b=ji.JSON.parse(a)}catch(oe){}else typeof a=="object"?b=a:hn("Unable to construct a Model from: "+a);if(x===null){a=null;var te=b.class;if(typeof te=="string")try{var re=null;te.indexOf("go.")===0?(te=te.substr(3),re=WC(te)):(re=WC(te),re===null&&(re=ji[te])),typeof re=="function"&&(a=new re)}catch(oe){}a===null||a instanceof Gr?x=a:hn("Unable to construct a Model of declared class: "+b.class)}return x===null&&(x=Gr.constructGraphLinksModel()),x.gp(b),x.kv(b),x},Gr.safePropertyValue=ec,Gr.safePropertySet=cu,Jf.Brush=Ws,Jf.ChangedEvent=ul,Jf.Geometry=ai,Jf.Margin=yr,Jf.Panel=Pi,Jf.Point=it,Jf.Rect=Yt,Jf.Size=Dt,Jf.Spot=Ii,Jf.Transaction=Wu,Jf.UndoManager=Jl;function tc(a,x,b,te){$o(this),this._isFrozen=!1,a===void 0&&(a=""),x===void 0&&(x=a),b===void 0&&(b=null),this.j=-1,this.xd=null,this.xl=a,this.wl=this.to=0,this.Cr=null,this.wn=!1,this.sl=x,this.Im=b,te===void 0?(this.el=A2,this.wk=null):(this.el=Ew,this.wk=te),this.st=new Yi}tc.prototype.copy=function(){var a=new tc;return a.xl=this.xl,a.to=this.to,a.wl=this.wl,a.Cr=this.Cr,a.wn=this.wn,a.sl=this.sl,a.Im=this.Im,a.el=this.el,a.wk=this.wk,a},We=tc.prototype,We.qb=function(a){a.classType===tc&&(this.mode=a)},We.toString=function(){return"Binding("+this.targetProperty+":"+this.sourceProperty+(this.Ai!==-1?" "+this.Ai:"")+" "+this.mode.name+")"},We.freeze=function(){return this._isFrozen=!0,this},We.ka=function(){return this._isFrozen=!1,this},We.Kx=function(a){return a===void 0&&(a=null),this.mode=Ew,this.backConverter=a,this},We.cp=function(a){return a===void 0&&(a=""),this.sourceName=a,this.isToModel=!1,this},We.dA=function(){return this.sourceName=null,this.isToModel=!0,this};function y2(a,x,b){return a=a.sourceName,a===null||a===""?x:a==="/"?b.part:a==="."?b:a===".."?b.panel:x.fb(a)}We.Mv=function(a,x,b){var te=this.sl;if(b===void 0||te===""||te===b){b=this.xl;var re=this.Im;if(re===null&&b==="")al("Binding error: target property is the empty string: "+this.toString());else{var oe=x;if(te!==""&&(oe=ec(x,te)),oe!==void 0)if(re===null)b!==""&&cu(a,b,oe);else try{if(b!==""){var le=re(oe,a);cu(a,b,le)}else re(oe,a)}catch(fe){}}}},We.sp=function(a,x,b,te){if(this.el===Ew){var re=this.xl;if(b===void 0||re===b){b=this.sl;var oe=this.wk,le=a;if(re!==""&&(le=ec(a,re)),le!==void 0&&!this.st.contains(a))try{this.st.add(a);var fe=te!==null?te.diagram:null,ge=fe!==null?fe.model:null;if(oe===null){if(b!=="")ge!==null?ge.setDataProperty(x,b,le):cu(x,b,le);else if(ge!==null&&te!==null&&0<=te.itemIndex&&te.panel!==null&&Array.isArray(te.panel.itemArray)){var ye=te.itemIndex,we=te.panel.itemArray;ge.ov(we,ye),ge.ts(we,ye,le)}}else try{if(b!==""){var be=oe(le,x,ge);ge!==null?ge.setDataProperty(x,b,be):cu(x,b,be)}else{var ke=oe(le,x,ge);if(ke!==void 0&&ge!==null&&te!==null&&0<=te.itemIndex&&te.panel!==null&&Array.isArray(te.panel.itemArray)){var Ue=te.itemIndex,Ve=te.panel.itemArray;ge.ov(Ve,Ue),ge.ts(Ve,Ue,ke)}}}catch(Ke){}}finally{this.st.remove(a)}}}},pn.Object.defineProperties(tc.prototype,{Ai:{get:function(){return this.j},set:function(a){this._isFrozen&&Ar(this),this.j=a}},targetProperty:{get:function(){return this.xl},set:function(a){this._isFrozen&&Ar(this),this.xl=a}},sourceName:{get:function(){return this.Cr},set:function(a){this._isFrozen&&Ar(this),this.Cr=a,a!==null&&(this.wn=!1)}},isToModel:{get:function(){return this.wn},set:function(a){this._isFrozen&&Ar(this),this.wn=a}},sourceProperty:{get:function(){return this.sl},set:function(a){this._isFrozen&&Ar(this),this.sl=a}},converter:{get:function(){return this.Im},set:function(a){this._isFrozen&&Ar(this),this.Im=a}},backConverter:{get:function(){return this.wk},set:function(a){this._isFrozen&&Ar(this),this.wk=a}},mode:{get:function(){return this.el},set:function(a){this._isFrozen&&Ar(this),this.el=a}}}),tc.prototype.updateSource=tc.prototype.sp,tc.prototype.updateTarget=tc.prototype.Mv,tc.prototype.ofModel=tc.prototype.dA,tc.prototype.ofObject=tc.prototype.cp,tc.prototype.makeTwoWay=tc.prototype.Kx;var s3="Binding",A2=new Ni(tc,"OneWay",1),Ew=new Ni(tc,"TwoWay",2);tc.className="Binding",tc.parseEnum=function(a,x){return function(b){return b=Lo(a,b),b===null?x:b}},tc.toString=da,tc.OneWay=A2,tc.TwoWay=Ew;function ma(a,x,b){Gr.call(this),this.Vv=`,
|
|
"insertedLinkKeys": `,this.iy=`,
|
|
"modifiedLinkData": `,this.Xv=`,
|
|
"removedLinkKeys": `,this.md=[],this.$f=new Yi,this.wb=new kn,this.Jh="",this.Ri=this.Ak=this.cl=null,this.lf="from",this.mf="to",this.fj=this.ej="",this.dj="category",this.je="",this.jl="isGroup",this.Je="group",this.Lm=!1,x!==void 0&&(this.linkDataArray=x),a!==void 0&&(Fo(a)?this.nodeDataArray=a:b=a),b&&(Object.assign(this,b),a=b.Changed)&&(delete this.Changed,this.Pe(a))}vn(ma,Gr),ma.constructGraphLinksModel=Gr.constructGraphLinksModel,ma.prototype.cloneProtected=function(a){Gr.prototype.cloneProtected.call(this,a),a.Jh=this.Jh,a.cl=this.cl,a.Ak=this.Ak,a.lf=this.lf,a.mf=this.mf,a.ej=this.ej,a.fj=this.fj,a.dj=this.dj,a.je=this.je,a.jl=this.jl,a.Je=this.Je,a.Lm=this.Lm},We=ma.prototype,We.clear=function(){Gr.prototype.clear.call(this),this.md=[],this.wb.clear(),this.$f.clear()},We.toString=function(a){if(a===void 0&&(a=0),2<=a)return this.np();var x=(this.name!==""?this.name:"")+" GraphLinksModel";if(0<a){x+=`
|
|
node data:`,a=this.nodeDataArray;var b=a.length,te;for(te=0;te<b;te++){var re=a[te];x+=" "+this.wa(re)+":"+da(re)}for(x+=`
|
|
link data:`,a=this.linkDataArray,b=a.length,te=0;te<b;te++)re=a[te],x+=" "+Df(this,re,!0)+"-->"+Df(this,re,!1)}return x},We.Qv=function(a,x){this.linkKeyProperty===""&&hn("GraphLinksModel.linkKeyProperty must not be an empty string for .toIncrementalData() to succeed.");var b=Gr.prototype.Qv.call(this,a,x),te=this,re=new Yi,oe=new Yi,le=new Yi,fe=this.vh;a.changes.each(function(we){we.model===te&&(we.modelChange==="linkDataArray"?we.change===Ol?re.add(we.newValue):we.change===Ou&&le.add(we.oldValue):te.Jc(we.object)?oe.add(we.object):we.object!==null&&(we.object!==null&&fe&&fe.contains(we.object)?fe.get(we.object).each(function(be){te.Jc(be)&&oe.add(be)}):we.object instanceof Gr||te.lb(we.object)||T5(te,we.object).each(function(be){oe.add(be)})))});var ge=this.il;ge.clear(),re.each(function(we){ge.add(te.Ac(we)),x||oe.add(we)});var ye=this.kl;return ye.clear(),le.each(function(we){ye.add(te.Ac(we)),x&&oe.add(we)}),a=te.cloneDeep(oe.Fa()),0<ge.count&&(b===null&&(b={}),x?b.removedLinkKeys=ge.Fa():b.insertedLinkKeys=ge.Fa()),0<a.length&&(b===null&&(b={}),b.modifiedLinkData=a),0<ye.count&&(b===null&&(b={}),x?b.insertedLinkKeys=ye.Fa():b.removedLinkKeys=ye.Fa()),ye.clear(),ge.clear(),b},We.rm=function(){var a=Gr.prototype.rm.call(this),x="";return this.linkCategoryProperty!=="category"&&typeof this.linkCategoryProperty=="string"&&(x+=`,
|
|
"linkCategoryProperty": `+this.quote(this.linkCategoryProperty)),this.linkKeyProperty!==""&&typeof this.linkKeyProperty=="string"&&(x+=`,
|
|
"linkKeyProperty": `+this.quote(this.linkKeyProperty)),this.linkFromKeyProperty!=="from"&&typeof this.linkFromKeyProperty=="string"&&(x+=`,
|
|
"linkFromKeyProperty": `+this.quote(this.linkFromKeyProperty)),this.linkToKeyProperty!=="to"&&typeof this.linkToKeyProperty=="string"&&(x+=`,
|
|
"linkToKeyProperty": `+this.quote(this.linkToKeyProperty)),this.linkFromPortIdProperty!==""&&typeof this.linkFromPortIdProperty=="string"&&(x+=`,
|
|
"linkFromPortIdProperty": `+this.quote(this.linkFromPortIdProperty)),this.linkToPortIdProperty!==""&&typeof this.linkToPortIdProperty=="string"&&(x+=`,
|
|
"linkToPortIdProperty": `+this.quote(this.linkToPortIdProperty)),this.linkLabelKeysProperty!==""&&typeof this.linkLabelKeysProperty=="string"&&(x+=`,
|
|
"linkLabelKeysProperty": `+this.quote(this.linkLabelKeysProperty)),this.nodeIsGroupProperty!=="isGroup"&&typeof this.nodeIsGroupProperty=="string"&&(x+=`,
|
|
"nodeIsGroupProperty": `+this.quote(this.nodeIsGroupProperty)),this.nodeGroupKeyProperty!=="group"&&typeof this.nodeGroupKeyProperty=="string"&&(x+=`,
|
|
"nodeGroupKeyProperty": `+this.quote(this.nodeGroupKeyProperty)),a+x},We.gp=function(a){Gr.prototype.gp.call(this,a),a.linkKeyProperty&&(this.linkKeyProperty=a.linkKeyProperty),a.linkFromKeyProperty&&(this.linkFromKeyProperty=a.linkFromKeyProperty),a.linkToKeyProperty&&(this.linkToKeyProperty=a.linkToKeyProperty),a.linkFromPortIdProperty&&(this.linkFromPortIdProperty=a.linkFromPortIdProperty),a.linkToPortIdProperty&&(this.linkToPortIdProperty=a.linkToPortIdProperty),a.linkCategoryProperty&&(this.linkCategoryProperty=a.linkCategoryProperty),a.linkLabelKeysProperty&&(this.linkLabelKeysProperty=a.linkLabelKeysProperty),a.nodeIsGroupProperty&&(this.nodeIsGroupProperty=a.nodeIsGroupProperty),a.nodeGroupKeyProperty&&(this.nodeGroupKeyProperty=a.nodeGroupKeyProperty)},We.Rv=function(){var a=Gr.prototype.Rv.call(this),x=`,
|
|
"linkDataArray": `+y0(this,this.linkDataArray,!0);return a+x},We.kv=function(a){Gr.prototype.kv.call(this,a),a=a.linkDataArray,Array.isArray(a)&&(this.dm(a),this.linkDataArray=a)};function T5(a,x){for(var b=new Yi,te=0;te<a.linkDataArray.length;te++){var re=a.linkDataArray[te];Sw(a,x,re,re,b)}return b}We.Pv=function(a,x){this.linkKeyProperty===""&&hn("GraphLinksModel.linkKeyProperty must not be an empty string for .toIncrementalJson() to succeed.");var b=Gr.prototype.Pv.call(this,a,x),te=this,re=new Yi,oe=new Yi,le=new Yi,fe=this.vh;a.changes.each(function(we){we.model===te&&(we.modelChange==="linkDataArray"?we.change===Ol?re.add(we.newValue):we.change===Ou&&le.add(we.oldValue):te.Jc(we.object)?oe.add(we.object):we.object!==null&&(we.object!==null&&fe&&fe.contains(we.object)?fe.get(we.object).each(function(be){te.Jc(be)&&oe.add(be)}):we.object instanceof Gr||te.lb(we.object)||T5(te,we.object).each(function(be){oe.add(be)})))});var ge=this.il;ge.clear(),re.each(function(we){ge.add(te.Ac(we)),x||oe.add(we)});var ye=this.kl;return ye.clear(),le.each(function(we){ye.add(te.Ac(we)),x&&oe.add(we)}),a=b,0<ge.count&&(a+=(x?this.Xv:this.Vv)+y0(this,ge.Fa(),!0)),0<oe.count&&(a+=this.iy+y0(this,oe.Fa(),!0)),0<ye.count&&(a+=(x?this.Vv:this.Xv)+y0(this,ye.Fa(),!0)),ye.clear(),ge.clear(),a},We.fp=function(a){(a.linkCategoryProperty!==void 0&&a.linkCategoryProperty!==this.linkCategoryProperty||a.linkKeyProperty!==void 0&&a.linkKeyProperty!==this.linkKeyProperty||a.linkFromKeyProperty!==void 0&&a.linkFromKeyProperty!==this.linkFromKeyProperty||a.linkToKeyProperty!==void 0&&a.linkToKeyProperty!==this.linkToKeyProperty||a.linkFromPortIdProperty!==void 0&&a.linkFromPortIdProperty!==this.linkFromPortIdProperty||a.linkToPortIdProperty!==void 0&&a.linkToPortIdProperty!==this.linkToPortIdProperty||a.linkLabelKeysProperty!==void 0&&a.linkLabelKeysProperty!==this.linkLabelKeysProperty||a.nodeIsGroupProperty!==void 0&&a.nodeIsGroupProperty!==this.nodeIsGroupProperty||a.nodeGroupKeyProperty!==void 0&&a.nodeGroupKeyProperty!==this.nodeGroupKeyProperty)&&hn("applyIncrementalJson cannot change Model properties"),Gr.prototype.fp.call(this,a);var x=a.insertedLinkKeys;if(Array.isArray(x))for(var b=x.length,te=0;te<b;te++){var re=x[te],oe=this.jh(re);oe===null&&(oe=this.Jo({}),this.Ks(oe,re),this.fi(oe))}if(x=a.modifiedLinkData,Array.isArray(x)){for(b=x.length,te=0;te<b;te++)if(re=x[te],oe=this.Ac(re),oe=this.jh(oe),oe!==null){for(var le in re)le!=="__gohashid"&&le!==this.linkKeyProperty&&this.setDataProperty(oe,le,re[le]);A0(this,re,oe)}}if(a=a.removedLinkKeys,Array.isArray(a))for(le=a.length,x=0;x<le;x++)b=this.jh(a[x]),b!==null&&this.bm(b)},ma.prototype.changeState=function(a,x){if(a!==null&&a.model===this){if(a.change===Dl){var b=a.object,te=a.propertyName;if(te===this.linkKeyProperty&&this.Jc(b)){var re=a.I(x);x=a.I(!x),x!==void 0&&this.wb.remove(x),re!==void 0&&this.wb.add(re,b),cu(b,te,re);return}}else if(a.change===Ol){if(b=a.newParam,a.modelChange==="linkDataArray"){a=a.newValue,Ji(a)&&typeof b=="number"&&(te=this.Ac(a),x?(this.$f.remove(a),this.md[b]===a&&this.md.splice(b,1),te!==void 0&&this.wb.remove(te)):(this.$f.add(a),this.md[b]!==a&&this.md.splice(b,0,a),te!==void 0&&this.wb.add(te,a)));return}if(a.modelChange==="linkLabelKeys"){te=this.Ef(a.object),Array.isArray(te)&&typeof b=="number"&&(x?(b=te.indexOf(a.newValue),0<=b&&te.splice(b,1)):0>te.indexOf(a.newValue)&&te.splice(b,0,a.newValue));return}}else if(a.change===Ou){if(b=a.oldParam,a.modelChange==="linkDataArray"){a=a.oldValue,Ji(a)&&typeof b=="number"&&(te=this.Ac(a),x?(this.$f.add(a),this.md[b]!==a&&this.md.splice(b,0,a),te!==void 0&&this.wb.add(te,a)):(this.$f.remove(a),this.md[b]===a&&this.md.splice(b,1),te!==void 0&&this.wb.remove(te)));return}if(a.modelChange==="linkLabelKeys"){te=this.Ef(a.object),Array.isArray(te)&&typeof b=="number"&&(x?0>te.indexOf(a.newValue)&&te.splice(b,0,a.newValue):(b=te.indexOf(a.newValue),0<=b&&te.splice(b,1)));return}}Gr.prototype.changeState.call(this,a,x)}},We=ma.prototype,We.Vl=function(a){if(a!==void 0){var x=this.Ri;if(x!==null){var b=this.hc(a);b===null&&(b=this.copyNodeData(x),cu(b,this.nodeKeyProperty,a),this.xf(b))}return a}},We.yx=function(a){return Df(this,a,!0)},We.wv=function(a,x){py(this,a,x,!0)},We.Bx=function(a){return Df(this,a,!1)},We.Bv=function(a,x){py(this,a,x,!1)};function Df(a,x,b){if(x!==null&&(a=b?a.lf:a.mf,a!==""&&(a=ec(x,a),a!==void 0))){if(gm(a))return a;hn((b?"FromKey":"ToKey")+" value for link data "+x+" is not a number or a string: "+a)}}function py(a,x,b,te){if(b===null&&(b=void 0),x!==null){var re=te?a.lf:a.mf;if(re!=="")if(b=a.Vl(b),a.Jc(x)){var oe=ec(x,re);oe!==b&&(Kf(a,oe,x),cu(x,re,b),a.hc(b)===null&&Tf(a,b,x),$u(a,te?"linkFromKey":"linkToKey",Dl,re,x,oe,b),typeof re=="string"&&a.La(x,re))}else cu(x,re,b)}}We.zx=function(a){return bw(this,a,!0)},We.xv=function(a,x){t1(this,a,x,!0)},We.Cx=function(a){return bw(this,a,!1)},We.Cv=function(a,x){t1(this,a,x,!1)};function bw(a,x,b){return x===null||(a=b?a.ej:a.fj,a==="")?"":(x=ec(x,a),x===void 0?"":x)}function t1(a,x,b,te){if(x!==null){var re=te?a.ej:a.fj;if(re!=="")if(a.Jc(x)){var oe=ec(x,re);oe===void 0&&(oe=""),oe!==b&&(cu(x,re,b),$u(a,te?"linkFromPortId":"linkToPortId",Dl,re,x,oe,b),typeof re=="string"&&a.La(x,re))}else cu(x,re,b)}}We.Ef=function(a){if(a===null)return lP;var x=this.je;return x===""?lP:(a=ec(a,x),a===void 0?lP:a)},We.Ls=function(a,x){if(a!==null){var b=this.je;if(b!=="")if(this.Jc(a)){var te=ec(a,b);if(te===void 0&&(te=lP),te!==x){if(Array.isArray(te))for(var re=te.length,oe=0;oe<re;oe++)Kf(this,te[oe],a);for(cu(a,b,x),re=x.length,oe=0;oe<re;oe++){var le=x[oe];this.hc(le)===null&&Tf(this,le,a)}$u(this,"linkLabelKeys",Dl,b,a,te,x),typeof b=="string"&&this.La(a,b)}}else cu(a,b,x)}},We.Bu=function(a,x){if(x!=null&&a!==null){var b=this.je;if(b!==""){var te=ec(a,b);if(te===void 0)b=[],b.push(x),this.Ls(a,b);else if(Array.isArray(te)){var re=te.indexOf(x);0<=re||(re=te.length,te.push(x),this.Jc(a)&&(this.hc(x)===null&&Tf(this,x,a),$u(this,"linkLabelKeys",Ol,b,a,null,x,null,re)))}else hn(b+" property is not an Array; cannot addLabelKeyForLinkData: "+a)}}},We.Qx=function(a,x){if(x!=null&&a!==null){var b=this.je;if(b!==""){var te=ec(a,b);if(Array.isArray(te)){var re=te.indexOf(x);0>re||(te.splice(re,1),this.Jc(a)&&(Kf(this,x,a),$u(this,"linkLabelKeys",Ou,b,a,x,null,re,null)))}else te!==void 0&&hn(b+" property is not an Array; cannot removeLabelKeyforLinkData: "+a)}}},We.Ac=function(a){if(a!==null){var x=this.Jh;if(x!==""&&(x=ec(a,x),x!==void 0)){if(gm(x))return x;hn("Key value for link data "+a+" is not a number or a string: "+x)}}},We.Ks=function(a,x){if(a!==null){var b=this.Jh;if(b!=="")if(this.Jc(a)){var te=ec(a,b);te!==x&&this.jh(x)===null&&(cu(a,b,x),te!==void 0&&this.wb.remove(te),this.wb.add(x,a),$u(this,"linkKey",Dl,b,a,te,x),typeof b=="string"&&this.La(a,b))}else cu(a,b,x)}},We.jh=function(a){return a===null&&hn("GraphLinksModel.findLinkDataForKey:key must not be null"),a!==void 0&&gm(a)?this.wb.I(a):null},We.Bs=function(a){if(a!==null){var x=this.Jh;if(x!==""){var b=this.Ac(a);if(b===void 0||this.wb.contains(b)){var te=this.cl;if(te!==null&&(b=te(this,a),b!=null&&!this.wb.contains(b))){cu(a,x,b);return}if(typeof b=="string"){for(te=2;this.wb.contains(b+te);)te++;cu(a,x,b+te)}else if(b===void 0||typeof b=="number"){for(b=-this.wb.count-1;this.wb.contains(b);)b--;cu(a,x,b)}}}}},We.Jc=function(a){return a===null?!1:this.$f.contains(a)},We.fi=function(a){a!==null&&(dl(a),this.Jc(a)||QC(this,a,!0))};function QC(a,x,b){if(a.linkKeyProperty!==""){var te=a.Ac(x);if(te!==void 0&&a.wb.I(te)===x)return;a.Bs(x),te=a.Ac(x),te===void 0&&hn("GraphLinksModel.makeLinkDataKeyUnique failed on "+x+". Data not added to model."),a.wb.add(te,x)}a.$f.add(x),te=null,b&&(te=a.md.length,a.md.splice(te,0,x)),$u(a,"linkDataArray",Ol,"linkDataArray",a,null,x,null,te),ZC(a,x)}We.Ey=function(a){if(Array.isArray(a))for(var x=a.length,b=0;b<x;b++)this.fi(a[b]);else for(a=a.iterator;a.next();)this.fi(a.value)},We.bm=function(a){a!==null&&D5(this,a,!0)};function D5(a,x,b){a.$f.remove(x);var te=a.Ac(x);if(te!==void 0&&a.wb.remove(te),te=null,b){if(te=a.md.indexOf(x),0>te)return;a.md.splice(te,1)}if($u(a,"linkDataArray",Ou,"linkDataArray",a,x,null,te,null),b=Df(a,x,!0),Kf(a,b,x),b=Df(a,x,!1),Kf(a,b,x),te=a.Ef(x),Array.isArray(te))for(var re=te.length,oe=0;oe<re;oe++)b=te[oe],Kf(a,b,x)}We.lA=function(a){if(Array.isArray(a))for(var x=a.length,b=0;b<x;b++)this.bm(a[b]);else for(a=a.iterator;a.next();)this.bm(a.value)},We.Zz=function(a){if(this.linkKeyProperty===""&&hn("GraphLinksModel.linkKeyProperty must not be an empty string for .mergeLinkDataArray() to succeed."),a!==this.linkDataArray&&Fo(a)){var x=this.kl;x.clear(),x.addAll(this.wb.iteratorKeys);var b=this.il;b.clear();for(var te=a.length,re=0;re<te;re++){var oe=a[re],le=this.Ac(oe);if(le!==void 0){b.add(le);var fe=this.jh(le);fe!==oe&&(fe!==null?(this.Do(fe,oe),A0(this,oe,fe)):(oe=this.cloneDeep(oe),this.Ks(oe,le),this.fi(oe)))}else le=this.cloneDeep(oe),this.fi(le),b.add(this.Ac(le))}for(a=x.iterator;a.next();)te=a.value,b.contains(te)||(te=this.jh(te))&&this.bm(te);x.clear(),b.clear()}};function ZC(a,x){var b=Df(a,x,!0);b=a.Vl(b),a.hc(b)===null&&Tf(a,b,x),b=Df(a,x,!1),b=a.Vl(b),a.hc(b)===null&&Tf(a,b,x);var te=a.Ef(x);if(Array.isArray(te))for(var re=te.length,oe=0;oe<re;oe++)b=te[oe],a.hc(b)===null&&Tf(a,b,x)}We.Jo=function(a){if(a===null)return null;var x=this.Ak;return a=x!==null?x(a,this):$x(this,a,!0),Ji(a)&&($o(a),this.lf!==""&&cu(a,this.lf,void 0),this.mf!==""&&cu(a,this.mf,void 0),this.je!==""&&cu(a,this.je,[])),a},We.Yu=function(a){if(a===null)return!1;var x=this.jl;return x===""?!1:!!ec(a,x)},We.lh=function(a){if(a!==null){var x=this.Je;if(x!==""&&(x=ec(a,x),x!==void 0)){if(gm(x))return x;hn("GroupKey value for node data "+a+" is not a number or a string: "+x)}}},We.mp=function(a,x){if(x===null&&(x=void 0),a!==null){var b=this.Je;if(b!=="")if(this.lb(a)){var te=ec(a,b);te!==x&&(Kf(this,te,a),cu(a,b,x),this.hc(x)===null&&Tf(this,x,a),$u(this,"nodeGroupKey",Dl,b,a,te,x),typeof b=="string"&&this.La(a,b))}else cu(a,b,x)}},ma.prototype.copyNodeData=function(a){return a===null?null:(a=Gr.prototype.copyNodeData.call(this,a),this.Ij||this.Je===""||ec(a,this.Je)===void 0||cu(a,this.Je,void 0),a)},ma.prototype.setDataProperty=function(a,x,b){if(this.lb(a)){if(x===this.nodeKeyProperty){this.km(a,b);return}if(x===this.nodeCategoryProperty){this.jm(a,b);return}if(x===this.nodeGroupKeyProperty){this.mp(a,b);return}}else if(this.Jc(a)){if(x===this.linkFromKeyProperty){py(this,a,b,!0);return}if(x===this.linkToKeyProperty){py(this,a,b,!1);return}if(x===this.linkFromPortIdProperty){t1(this,a,b,!0);return}if(x===this.linkToPortIdProperty){t1(this,a,b,!1);return}if(x===this.linkKeyProperty){this.Ks(a,b);return}if(x===this.linkCategoryProperty){this.lp(a,b);return}if(x===this.linkLabelKeysProperty){this.Ls(a,b);return}}var te=ec(a,x);te!==b&&(cu(a,x,b),this.Fs(a,x,te,b))},We=ma.prototype,We.Do=function(a,x){if(x){var b=this.lb(a),te=this.Jc(a),re;for(re in x)re==="__gohashid"||b&&re===this.nodeKeyProperty||b&&re===this.nodeIsGroupProperty&&ec(a,re)===x[re]||te&&re===this.linkKeyProperty||this.setDataProperty(a,re,x[re])}},We.jp=function(a,x){Gr.prototype.jp.call(this,a,x);for(var b=this.kb.iterator;b.next();)this.qv(b.value,a,x);for(b=this.$f.iterator;b.next();){var te=b.value,re=a,oe=x;if(Df(this,te,!0)===re){var le=this.lf;cu(te,le,oe),$u(this,"linkFromKey",Dl,le,te,re,oe),typeof le=="string"&&this.La(te,le)}if(Df(this,te,!1)===re&&(le=this.mf,cu(te,le,oe),$u(this,"linkToKey",Dl,le,te,re,oe),typeof le=="string"&&this.La(te,le)),le=this.Ef(te),Array.isArray(le))for(var fe=le.length,ge=this.je,ye=0;ye<fe;ye++)le[ye]===re&&(le[ye]=oe,$u(this,"linkLabelKeys",Ol,ge,te,re,oe,ye,ye))}},We.qv=function(a,x,b){if(this.lh(a)===x){var te=this.Je;cu(a,te,b),$u(this,"nodeGroupKey",Dl,te,a,x,b),typeof te=="string"&&this.La(a,te)}},We.Lv=function(){Gr.prototype.Lv.call(this);for(var a=this.linkDataArray,x=a.length,b=0;b<x;b++)ZC(this,a[b])},We.fm=function(a){Gr.prototype.fm.call(this,a),a=this.wa(a);var x=Cw(this,a);if(x!==null){var b=ys();for(x=x.iterator;x.next();){var te=x.value;if(this.lb(te)){if(this.lh(te)===a){var re=this.Je;$u(this,"nodeGroupKey",Dl,re,te,a,a),typeof re=="string"&&this.La(te,re),b.push(te)}}else if(Df(this,te,!0)===a&&(re=this.lf,$u(this,"linkFromKey",Dl,re,te,a,a),typeof re=="string"&&this.La(te,re),b.push(te)),Df(this,te,!1)===a&&(re=this.mf,$u(this,"linkToKey",Dl,re,te,a,a),typeof re=="string"&&this.La(te,re),b.push(te)),re=this.Ef(te),Array.isArray(re))for(var oe=re.length,le=this.je,fe=0;fe<oe;fe++)re[fe]===a&&($u(this,"linkLabelKeys",Ol,le,te,a,a,fe,fe),b.push(te))}for(x=0;x<b.length;x++)Kf(this,a,b[x]);As(b)}},We.em=function(a){Gr.prototype.em.call(this,a);var x=this.lh(a);this.hc(x)===null&&Tf(this,x,a)},We.qp=function(a){Gr.prototype.qp.call(this,a);var x=this.lh(a);Kf(this,x,a)},We.ps=function(a){if(a===null)return"";var x=this.dj;if(x===""||(x=ec(a,x),x===void 0))return"";if(typeof x=="string")return x;hn("getCategoryForLinkData found a non-string category for "+a+": "+x)},ma.prototype.getLinkCategoryForData=function(a){return this.ps(a)},ma.prototype.lp=function(a,x){if(a!==null){var b=this.dj;if(b!=="")if(this.Jc(a)){var te=ec(a,b);te===void 0&&(te=""),te!==x&&(cu(a,b,x),$u(this,"linkCategory",Dl,b,a,te,x),typeof b=="string"&&this.La(a,b))}else cu(a,b,x)}},ma.prototype.setLinkCategoryForData=function(a,x){this.lp(a,x)},We=ma.prototype,We.lm=function(a,x){Gr.prototype.lm.call(this,a,x),this.mp(x,this.lh(a))};function A0(a,x,b){a.lp(b,a.ps(x)),a.wv(b,a.yx(x)),a.Bv(b,a.Bx(x)),a.Ls(b,a.Ef(x)),a.xv(b,a.zx(x)),a.Cv(b,a.Cx(x))}We.Wj=function(){return!0},We.ri=function(){return!0},We.xs=function(){return!0},We.Xj=function(){return!0},pn.Object.defineProperties(ma.prototype,{archetypeNodeData:{get:function(){return this.Ri},set:function(a){var x=this.Ri;x!==a&&(this.Ri=a,this.g("archetypeNodeData",x,a))}},linkFromKeyProperty:{get:function(){return this.lf},set:function(a){var x=this.lf;x!==a&&(this.lf=a,this.g("linkFromKeyProperty",x,a))}},linkToKeyProperty:{get:function(){return this.mf},set:function(a){var x=this.mf;x!==a&&(this.mf=a,this.g("linkToKeyProperty",x,a))}},linkFromPortIdProperty:{get:function(){return this.ej},set:function(a){var x=this.ej;x!==a&&(this.ej=a,this.g("linkFromPortIdProperty",x,a))}},linkToPortIdProperty:{get:function(){return this.fj},set:function(a){var x=this.fj;x!==a&&(this.fj=a,this.g("linkToPortIdProperty",x,a))}},linkLabelKeysProperty:{get:function(){return this.je},set:function(a){var x=this.je;x!==a&&(this.je=a,this.g("linkLabelKeysProperty",x,a))}},linkDataArray:{get:function(){return this.md},set:function(a){var x=this.md;if(x!==a){this.wb.clear();for(var b=a.length,te=0;te<b;te++){var re=a[te];Ji(re)||hn("GraphLinksModel.linkDataArray must only contain Objects, not: "+re),dl(re)}if(this.md=a,this.linkKeyProperty!==""){for(te=new Zi,re=0;re<b;re++){var oe=a[re],le=this.Ac(oe);le===void 0||this.wb.I(le)!==null?te.add(oe):this.wb.add(le,oe)}for(te=te.iterator;te.next();)re=te.value,this.Bs(re),oe=this.Ac(re),oe!==void 0&&this.wb.add(oe,re)}for(te=new Yi,re=0;re<b;re++)te.add(a[re]);for(this.$f=te,$u(this,"linkDataArray",Dl,"linkDataArray",this,x,a),x=0;x<b;x++)ZC(this,a[x])}}},linkKeyProperty:{get:function(){return this.Jh},set:function(a){var x=this.Jh;if(x!==a){this.Jh=a,this.wb.clear();for(var b=this.linkDataArray.length,te=0;te<b;te++){var re=this.linkDataArray[te],oe=this.Ac(re);oe===void 0&&(this.Bs(re),oe=this.Ac(re)),oe!==void 0&&this.wb.add(oe,re)}this.g("linkKeyProperty",x,a)}}},makeUniqueLinkKeyFunction:{get:function(){return this.cl},set:function(a){var x=this.cl;x!==a&&(this.cl=a,this.g("makeUniqueLinkKeyFunction",x,a))}},copyLinkDataFunction:{get:function(){return this.Ak},set:function(a){var x=this.Ak;x!==a&&(this.Ak=a,this.g("copyLinkDataFunction",x,a))}},nodeIsGroupProperty:{get:function(){return this.jl},set:function(a){var x=this.jl;x!==a&&(this.jl=a,this.g("nodeIsGroupProperty",x,a))}},nodeGroupKeyProperty:{get:function(){return this.Je},set:function(a){var x=this.Je;x!==a&&(this.Je=a,this.g("nodeGroupKeyProperty",x,a))}},Ij:{get:function(){return this.Lm},set:function(a){this.Lm!==a&&(this.Lm=a)}},linkCategoryProperty:{get:function(){return this.dj},set:function(a){var x=this.dj;x!==a&&(this.dj=a,this.g("linkCategoryProperty",x,a))}},type:{get:function(){return"GraphLinksModel"}}}),ma.prototype.setCategoryForLinkData=ma.prototype.lp,ma.prototype.getCategoryForLinkData=ma.prototype.ps,ma.prototype.assignAllDataProperties=ma.prototype.Do,ma.prototype.setGroupKeyForNodeData=ma.prototype.mp,ma.prototype.getGroupKeyForNodeData=ma.prototype.lh,ma.prototype.isGroupForNodeData=ma.prototype.Yu,ma.prototype.copyLinkData=ma.prototype.Jo,ma.prototype.mergeLinkDataArray=ma.prototype.Zz,ma.prototype.removeLinkDataCollection=ma.prototype.lA,ma.prototype.removeLinkData=ma.prototype.bm,ma.prototype.addLinkDataCollection=ma.prototype.Ey,ma.prototype.addLinkData=ma.prototype.fi,ma.prototype.containsLinkData=ma.prototype.Jc,ma.prototype.makeLinkDataKeyUnique=ma.prototype.Bs,ma.prototype.findLinkDataForKey=ma.prototype.jh,ma.prototype.setKeyForLinkData=ma.prototype.Ks,ma.prototype.getKeyForLinkData=ma.prototype.Ac,ma.prototype.removeLabelKeyForLinkData=ma.prototype.Qx,ma.prototype.addLabelKeyForLinkData=ma.prototype.Bu,ma.prototype.setLabelKeysForLinkData=ma.prototype.Ls,ma.prototype.getLabelKeysForLinkData=ma.prototype.Ef,ma.prototype.setToPortIdForLinkData=ma.prototype.Cv,ma.prototype.getToPortIdForLinkData=ma.prototype.Cx,ma.prototype.setFromPortIdForLinkData=ma.prototype.xv,ma.prototype.getFromPortIdForLinkData=ma.prototype.zx,ma.prototype.setToKeyForLinkData=ma.prototype.Bv,ma.prototype.getToKeyForLinkData=ma.prototype.Bx,ma.prototype.setFromKeyForLinkData=ma.prototype.wv,ma.prototype.getFromKeyForLinkData=ma.prototype.yx,ma.prototype.clear=ma.prototype.clear;var lP=Object.freeze([]);ma.className="GraphLinksModel",Jf.GraphLinksModel=ma,Gr.constructGraphLinksModel=Gr.constructGraphLinksModel=function(){return new ma},Gr.initDiagramModel=e1=function(){return new ma};function Dd(a,x){Gr.call(this),this.Ke="parent",this.Nm=!1,this.nj="parentLinkCategory",a!==void 0&&(Fo(a)?this.nodeDataArray=a:x=a),x&&(Object.assign(this,x),a=x.Changed)&&(delete this.Changed,this.Pe(a))}vn(Dd,Gr),Dd.constructGraphLinksModel=Gr.constructGraphLinksModel,Dd.prototype.cloneProtected=function(a){Gr.prototype.cloneProtected.call(this,a),a.Ke=this.Ke,a.Nm=this.Nm,a.nj=this.nj},We=Dd.prototype,We.toString=function(a){if(a===void 0&&(a=0),2<=a)return this.np();var x=(this.name!==""?this.name:"")+" TreeModel";if(0<a){x+=`
|
|
node data:`,a=this.nodeDataArray;for(var b=a.length,te=0;te<b;te++){var re=a[te];x+=" "+this.wa(re)+":"+da(re)}}return x},We.rm=function(){var a=Gr.prototype.rm.call(this),x="";return this.nodeParentKeyProperty!=="parent"&&typeof this.nodeParentKeyProperty=="string"&&(x+=`,
|
|
"nodeParentKeyProperty": `+this.quote(this.nodeParentKeyProperty)),a+x},We.gp=function(a){Gr.prototype.gp.call(this,a),a.nodeParentKeyProperty&&(this.nodeParentKeyProperty=a.nodeParentKeyProperty)},We.fp=function(a){a.nodeParentKeyProperty!==void 0&&a.nodeParentKeyProperty!==this.nodeParentKeyProperty&&hn("applyIncrementalJson cannot change Model properties"),Gr.prototype.fp.call(this,a)},We.Vl=function(a){return a},We.mh=function(a){if(a!==null){var x=this.Ke;if(x!==""&&(x=ec(a,x),x!==void 0)){if(gm(x))return x;hn("ParentKey value for node data "+a+" is not a number or a string: "+x)}}},We.qe=function(a,x){if(x===null&&(x=void 0),a!==null){var b=this.Ke;if(b!=="")if(x=this.Vl(x),this.lb(a)){var te=ec(a,b);te!==x&&(Kf(this,te,a),cu(a,b,x),this.hc(x)===null&&Tf(this,x,a),$u(this,"nodeParentKey",Dl,b,a,te,x),typeof b=="string"&&this.La(a,b))}else cu(a,b,x)}},We.ss=function(a){if(a===null)return"";var x=this.nj;return x===""||(x=ec(a,x),x===void 0)?"":typeof x=="string"?x:(hn("getParentLinkCategoryForNodeData found a non-string category for "+a+": "+x),"")},Dd.prototype.getLinkCategoryForData=function(a){return this.ss(a)},Dd.prototype.Ms=function(a,x){if(a!==null){var b=this.nj;if(b!=="")if(this.lb(a)){var te=ec(a,b);te===void 0&&(te=""),te!==x&&(cu(a,b,x),$u(this,"parentLinkCategory",Dl,b,a,te,x),typeof b=="string"&&this.La(a,b))}else cu(a,b,x)}},Dd.prototype.setLinkCategoryForData=function(a,x){this.Ms(a,x)},Dd.prototype.copyNodeData=function(a){return a===null?null:(a=Gr.prototype.copyNodeData.call(this,a),this.Jj||this.Ke===""||ec(a,this.Ke)===void 0||cu(a,this.Ke,void 0),a)},Dd.prototype.setDataProperty=function(a,x,b){if(this.lb(a)){if(x===this.nodeKeyProperty){this.km(a,b);return}if(x===this.nodeCategoryProperty){this.jm(a,b);return}if(x===this.nodeParentKeyProperty){this.qe(a,b);return}}var te=ec(a,x);te!==b&&(cu(a,x,b),this.Fs(a,x,te,b))},We=Dd.prototype,We.jp=function(a,x){Gr.prototype.jp.call(this,a,x);for(var b=this.kb.iterator;b.next();)this.qv(b.value,a,x)},We.qv=function(a,x,b){if(this.mh(a)===x){var te=this.Ke;cu(a,te,b),$u(this,"nodeParentKey",Dl,te,a,x,b),typeof te=="string"&&this.La(a,te)}},We.fm=function(a){Gr.prototype.fm.call(this,a),a=this.wa(a);var x=Cw(this,a);if(x!==null){var b=ys();for(x=x.iterator;x.next();){var te=x.value;if(this.lb(te)&&this.mh(te)===a){var re=this.Ke;$u(this,"nodeParentKey",Dl,re,te,a,a),typeof re=="string"&&this.La(te,re),b.push(te)}}for(x=0;x<b.length;x++)Kf(this,a,b[x]);As(b)}},We.em=function(a){Gr.prototype.em.call(this,a);var x=this.mh(a);x=this.Vl(x),this.hc(x)===null&&Tf(this,x,a)},We.qp=function(a){Gr.prototype.qp.call(this,a);var x=this.mh(a);Kf(this,x,a)},We.lm=function(a,x){Gr.prototype.lm.call(this,a,x),this.Ms(x,this.ss(a)),this.qe(x,this.mh(a))},We.Tl=function(){return!0},We.xs=function(){return!0},pn.Object.defineProperties(Dd.prototype,{nodeParentKeyProperty:{get:function(){return this.Ke},set:function(a){var x=this.Ke;x!==a&&(this.Ke=a,this.g("nodeParentKeyProperty",x,a))}},Jj:{get:function(){return this.Nm},set:function(a){this.Nm!==a&&(this.Nm=a)}},parentLinkCategoryProperty:{get:function(){return this.nj},set:function(a){var x=this.nj;x!==a&&(this.nj=a,this.g("parentLinkCategoryProperty",x,a))}},linkCategoryProperty:{get:function(){return this.parentLinkCategoryProperty},set:function(a){this.parentLinkCategoryProperty=a}},type:{get:function(){return"TreeModel"}}}),Dd.prototype.setParentLinkCategoryForNodeData=Dd.prototype.Ms,Dd.prototype.getParentLinkCategoryForNodeData=Dd.prototype.ss,Dd.prototype.setParentKeyForNodeData=Dd.prototype.qe,Dd.prototype.getParentKeyForNodeData=Dd.prototype.mh,Dd.className="TreeModel",Jf.TreeModel=Dd;function Eu(a){vu.call(this),this.lw=this.Zm=this.lc=0,this.Wp=360,this.kw=Yh,this.Ti=0,this.Zv=new it,this.Jp=this.me=0,this.Xr=new bA,this.gt=this.mj=0,this.ty=600,this.eo=NaN,this.Cm=1,this.ro=0,this.ul=360,this.Rb=Yh,this.K=Gc,this.nd=Nw,this.hd=xw,this.tf=6,this.Nn=cP,a&&Object.assign(this,a)}vn(Eu,vu),Eu.prototype.cloneProtected=function(a){vu.prototype.cloneProtected.call(this,a),a.eo=this.eo,a.Cm=this.Cm,a.ro=this.ro,a.ul=this.ul,a.Rb=this.Rb,a.K=this.K,a.nd=this.nd,a.hd=this.hd,a.tf=this.tf,a.Nn=this.Nn},Eu.prototype.qb=function(a){a.classType===Eu?a===qC||a===Mp||a===KC||a===JC||a===Nw?this.sorting=a:a===x0||a===EA||a===Gc||a===qf?this.direction=a:a===mm||a===yg||a===Yh||a===hf?this.arrangement=a:(a===n1||a===cP)&&(this.nodeDiameterFormula=a):vu.prototype.qb.call(this,a)},Eu.prototype.createNetwork=function(){return new zm(this)},Eu.prototype.doLayout=function(a){if(this.network===null&&(this.network=this.makeNetwork(a)),this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin),a=this.network.vertexes,1>=a.count)a.count===1&&(a=a.first(),a.centerX=0,a.centerY=0);else{var x=new Zi;x.addAll(a.iterator),a=new Zi;var b=new Zi,te=this.sort(x),re,oe,le=this.Jp,fe=this.arrangement,ge=this.nodeDiameterFormula,ye=this.radius;(!isFinite(ye)||0>=ye)&&(ye=NaN);var we=this.aspectRatio;(!isFinite(we)||0>=we)&&(we=1);var be=this.startAngle;isFinite(be)||(be=0);var ke=this.sweepAngle;if((!isFinite(ke)||360<ke||1>ke)&&(ke=360),x=this.spacing,isFinite(x)||(x=NaN),fe===hf&&ge===n1?fe=Yh:fe===hf&&ge!==n1&&(fe=this.arrangement),(this.direction===x0||this.direction===EA)&&this.sorting!==Nw){for(ge=0;!(ge>=te.length)&&(a.add(te.M(ge)),!(ge+1>=te.length));ge+=2)b.add(te.M(ge+1));this.direction===x0?(this.arrangement===hf&&a.reverse(),te=new Zi,te.addAll(a),te.addAll(b)):(this.arrangement===hf&&b.reverse(),te=new Zi,te.addAll(b),te.addAll(a))}ge=te.length;for(var Ue=oe=re=0;Ue<te.length;Ue++){var Ve=be+ke*oe*(this.direction===Gc?1:-1)/ge,Ke=te.M(Ue).diameter;isNaN(Ke)&&(Ke=ov(te.M(Ue),Ve)),360>ke&&(Ue===0||Ue===te.length-1)&&(Ke/=2),re+=Ke,oe++}if(isNaN(ye)||fe===hf){if(isNaN(x)&&(x=6),fe!==Yh&&fe!==hf){for(oe=-1/0,le=0;le<ge;le++)Ue=te.M(le),re=te.M(le===ge-1?0:le+1),isNaN(Ue.diameter)&&ov(Ue,0),isNaN(re.diameter)&&ov(re,0),oe=Math.max(oe,(Ue.diameter+re.diameter)/2);le=oe+x,fe===mm?ye=(oe+x)/(2*Math.PI/ge):ye=Dw(this,le*(360<=ke?ge:ge-1),we,be*Math.PI/180,ke*Math.PI/180)}else ye=Dw(this,re+(360<=ke?ge:ge-1)*(fe!==hf?x:1.6*x),we,be*Math.PI/180,ke*Math.PI/180);oe=ye*we}else if(oe=ye*we,Ue=w2(this,ye,oe,be*Math.PI/180,ke*Math.PI/180),isNaN(x))(fe===Yh||fe===hf)&&(x=(Ue-re)/(360<=ke?ge:ge-1));else if(fe===Yh||fe===hf)Ue=(Ue-re)/(360<=ke?ge:ge-1),Ue<x?(ye=Dw(this,re+x*(360<=ke?ge:ge-1),we,be*Math.PI/180,ke*Math.PI/180),oe=ye*we):x=Ue;else{for(le=-1/0,re=0;re<ge;re++)Ve=te.M(re),Ke=te.M(re===ge-1?0:re+1),isNaN(Ve.diameter)&&ov(Ve,0),isNaN(Ke.diameter)&&ov(Ke,0),le=Math.max(le,(Ve.diameter+Ke.diameter)/2);le+=x,re=Dw(this,le*(360<=ke?ge:ge-1),we,be*Math.PI/180,ke*Math.PI/180),re>ye?(ye=re,oe=ye*we):le=Ue/(360<=ke?ge:ge-1)}if(this.kw=fe,this.lc=ye,this.Zm=we,this.lw=be,this.Wp=ke,this.Ti=x,this.me=oe,this.Jp=le,x=te,te=this.kw,fe=this.lc,ye=this.lw,we=this.Wp,be=this.Ti,ke=this.me,ge=this.Jp,this.direction!==x0&&this.direction!==EA||te!==hf)if(this.direction===x0||this.direction===EA){switch(le=0,te){case yg:le=180*YC(this,fe,ke,ye,ge)/Math.PI;break;case Yh:ge=x=0,le=a.first(),le!==null&&(x=ov(le,Math.PI/2)),le=b.first(),le!==null&&(ge=ov(le,Math.PI/2)),le=180*YC(this,fe,ke,ye,be+(x+ge)/2)/Math.PI;break;case mm:le=we/x.length}if(this.direction===x0){switch(te){case yg:Mw(this,a,ye,qf);break;case Yh:rv(this,a,ye,qf);break;case mm:vg(this,a,we/2,ye,qf)}switch(te){case yg:Mw(this,b,ye+le,Gc);break;case Yh:rv(this,b,ye+le,Gc);break;case mm:vg(this,b,we/2,ye+le,Gc)}}else{switch(te){case yg:Mw(this,b,ye,qf);break;case Yh:rv(this,b,ye,qf);break;case mm:vg(this,b,we/2,ye,qf)}switch(te){case yg:Mw(this,a,ye+le,Gc);break;case Yh:rv(this,a,ye+le,Gc);break;case mm:vg(this,a,we/2,ye+le,Gc)}}}else switch(te){case yg:Mw(this,x,ye,this.direction);break;case Yh:rv(this,x,ye,this.direction);break;case mm:vg(this,x,we,ye,this.direction);break;case hf:uP(this,x,we,ye,this.direction)}else uP(this,x,we,ye-we/2,Gc)}this.updateParts(),this.network=null,this.isValidLayout=!0};function vg(a,x,b,te,re){var oe=a.Wp,le=a.lc;a=a.me,te=te*Math.PI/180,b=b*Math.PI/180;for(var fe=x.length,ge=0;ge<fe;ge++){var ye=te+(re===Gc?ge*b/(360<=oe?fe:fe-1):-(ge*b)/fe),we=x.M(ge),be=le*Math.tan(ye)/a;be=Math.sqrt((le*le+a*a*be*be)/(1+be*be)),we.centerX=be*Math.cos(ye),we.centerY=be*Math.sin(ye),we.actualAngle=180*ye/Math.PI}}function rv(a,x,b,te){var re=a.lc,oe=a.me,le=a.Ti;b=b*Math.PI/180;for(var fe=x.length,ge=0;ge<fe;ge++){var ye=x.M(ge),we=x.M(ge===fe-1?0:ge+1),be=oe*Math.sin(b);ye.centerX=re*Math.cos(b),ye.centerY=be,ye.actualAngle=180*b/Math.PI,isNaN(ye.diameter)&&ov(ye,0),isNaN(we.diameter)&&ov(we,0),ye=YC(a,re,oe,te===Gc?b:-b,(ye.diameter+we.diameter)/2+le),b+=te===Gc?ye:-ye}}function Mw(a,x,b,te){var re=a.lc,oe=a.me,le=a.Jp;b=b*Math.PI/180;for(var fe=x.length,ge=0;ge<fe;ge++){var ye=x.M(ge);ye.centerX=re*Math.cos(b),ye.centerY=oe*Math.sin(b),ye.actualAngle=180*b/Math.PI,ye=YC(a,re,oe,te===Gc?b:-b,le),b+=te===Gc?ye:-ye}}function uP(a,x,b,te,re){var oe=a.Wp;if(a.mj=0,a.Xr=new bA,360>b){for(oe=te+(re===Gc?oe:-oe);0>oe;)oe+=360;oe%=360,180<oe&&(oe-=360),oe*=Math.PI/180,a.gt=oe,N5(a,x,b,te,re)}else x2(a,x,b,te,re);a.Xr.commit(x)}function x2(a,x,b,te,re){var oe=a.lc,le=a.Ti,fe=a.Zm,ge=oe*Math.cos(te*Math.PI/180),ye=a.me*Math.sin(te*Math.PI/180),we=x.Fa();if(we.length===3)we[0].centerX=oe,we[0].centerY=0,we[1].centerX=we[0].centerX-we[0].width/2-we[1].width/2-le,we[1].y=we[0].y,we[2].centerX=(we[0].centerX+we[1].centerX)/2,we[2].y=we[0].y-we[2].height-le;else if(we.length===4)we[0].centerX=oe,we[0].centerY=0,we[2].centerX=-we[0].centerX,we[2].centerY=we[0].centerY,we[1].centerX=0,we[1].y=Math.min(we[0].y,we[2].y)-we[1].height-le,we[3].centerX=0,we[3].y=Math.max(we[0].y+we[0].height+le,we[2].y+we[2].height+le);else{oe=it.alloc();for(var be=0;be<we.length&&(we[be].centerX=ge,we[be].centerY=ye,!(be>=we.length-1));be++)Bw(a,ge,ye,we,be,re,oe)||Tw(a,ge,ye,we,be,re,oe),ge=oe.x,ye=oe.y;if(it.free(oe),a.mj++,!(23<a.mj)){ge=we[0].centerX,ye=we[0].centerY,oe=we[we.length-1].centerX,be=we[we.length-1].centerY;var ke=Math.abs(ge-oe)-((we[0].width+we[we.length-1].width)/2+le),Ue=Math.abs(ye-be)-((we[0].height+we[we.length-1].height)/2+le);le=0,1>Math.abs(Ue)?Math.abs(ge-oe)<(we[0].width+we[we.length-1].width)/2&&(le=0):le=0<Ue?Ue:1>Math.abs(ke)?0:ke,ge=Math.abs(oe)>Math.abs(be)?0<oe!=ye>be:0<be!=ge<oe,(ge=re===Gc?ge:!ge)&&(le=-Math.abs(le),le=Math.min(le,-we[we.length-1].width),le=Math.min(le,-we[we.length-1].height)),a.Xr.compare(le,we),1<Math.abs(le)&&(a.lc=8>a.mj?a.lc-le/(2*Math.PI):5>we.length&&10<le?a.lc/2:a.lc-(0<le?1.7:-2.3),a.me=a.lc*fe,x2(a,x,b,te,re))}}}function N5(a,x,b,te,re){for(var oe=a.lc,le=a.me,fe=a.Zm,ge=oe*Math.cos(te*Math.PI/180),ye=le*Math.sin(te*Math.PI/180),we=it.alloc(),be=x.Fa(),ke=0;ke<be.length&&(be[ke].centerX=ge,be[ke].centerY=ye,!(ke>=be.length-1));ke++)Bw(a,ge,ye,be,ke,re,we)||Tw(a,ge,ye,be,ke,re,we),ge=we.x,ye=we.y;if(it.free(we),a.mj++,!(23<a.mj)){if(ge=Math.atan2(ye,ge),ge=re===Gc?a.gt-ge:ge-a.gt,ge=Math.abs(ge)<Math.abs(ge-2*Math.PI)?ge:ge-2*Math.PI,oe=ge*(oe+le)/2,le=a.Xr,Math.abs(oe)<Math.abs(le.Pl))for(le.Pl=oe,le.mk=[],le.tm=[],ge=0;ge<be.length;ge++)le.mk[ge]=be[ge].bounds.x,le.tm[ge]=be[ge].bounds.y;1<Math.abs(oe)&&(a.lc=8>a.mj?a.lc-oe/(2*Math.PI):a.lc-(0<oe?1.7:-2.3),a.me=a.lc*fe,N5(a,x,b,te,re))}}function Bw(a,x,b,te,re,oe,le){var fe=a.lc,ge=a.me,ye=0;a=(te[re].width+te[re+1].width)/2+a.Ti;var we=!1;if(0<=b!=(oe===Gc)){if(oe=x+a,oe>fe){if(oe=x-a,oe<-fe)return le.x=oe,le.y=ye,!1;we=!0}}else if(oe=x-a,oe<-fe){if(oe=x+a,oe>fe)return le.x=oe,le.y=ye,!1;we=!0}return ye=Math.sqrt(1-Math.min(1,oe*oe/(fe*fe)))*ge,0>b!==we&&(ye=-ye),Math.abs(b-ye)>(te[re].height+te[re+1].height)/2?(le.x=oe,le.y=ye,!1):(le.x=oe,le.y=ye,!0)}function Tw(a,x,b,te,re,oe,le){var fe=a.lc,ge=a.me,ye=0;if(a=(te[re].height+te[re+1].height)/2+a.Ti,te=!1,0<=x!=(oe===Gc)){if(oe=b-a,oe<-ge){if(oe=b+a,oe>ge){le.x=ye,le.y=oe;return}te=!0}}else if(oe=b+a,oe>ge){if(oe=b-a,oe<-ge){le.x=ye,le.y=oe;return}te=!0}ye=Math.sqrt(1-Math.min(1,oe*oe/(ge*ge)))*fe,0>x!==te&&(ye=-ye),le.x=ye,le.y=oe}Eu.prototype.commitLayout=function(){this.commitNodes(),this.isRouting&&this.commitLinks()},Eu.prototype.commitNodes=function(){var a=this.group!==null&&this.group.placeholder!==null&&this.group.isSubGraphExpanded,x=a?this.group.location.copy():null,b=this.actualCenter;a?b=new it(0,0):(b.x=this.arrangementOrigin.x+this.lc,b.y=this.arrangementOrigin.y+this.me);for(var te=this.network.vertexes.iterator;te.next();){var re=te.value;re.x+=b.x,re.y+=b.y,re.commit()}a&&(this.group.Va(),a=this.group.position.copy(),b=this.group.location.copy(),x=x.re(b.re(a)),this.group.move(x),this.Zv=x.re(a))},Eu.prototype.commitLinks=function(){for(var a=this.network.edges.iterator;a.next();)a.value.commit()};function w2(a,x,b,te,re){var oe=a.ty;if(.001>Math.abs(a.Zm-1))return te!==void 0&&re!==void 0?re*x:2*Math.PI*x;a=x>b?Math.sqrt(x*x-b*b)/x:Math.sqrt(b*b-x*x)/b;for(var le=0,fe=te!==void 0&&re!==void 0?re/(oe+1):Math.PI/(2*(oe+1)),ge=0,ye=0;ye<=oe;ye++){te!==void 0&&re!==void 0?ge=te+ye*re/oe:ge=ye*Math.PI/(2*oe);var we=Math.sin(ge);le+=Math.sqrt(1-a*a*we*we)*fe}return te!==void 0&&re!==void 0?(x>b?x:b)*le:4*(x>b?x:b)*le}function Dw(a,x,b,te,re){return x/(te!==void 0&&re!==void 0?w2(a,1,b,te,re):w2(a,1,b))}function YC(a,x,b,te,re){if(.001>Math.abs(a.Zm-1))return re/x;var oe=x>b?Math.sqrt(x*x-b*b)/x:Math.sqrt(b*b-x*x)/b,le=0;a=2*Math.PI/(700*a.network.vertexes.count),x>b&&(te+=Math.PI/2);for(var fe=0;;fe++){var ge=Math.sin(te+fe*a);if(le+=(x>b?x:b)*Math.sqrt(1-oe*oe*ge*ge)*a,le>=re)return fe*a}}Eu.prototype.sort=function(a){switch(this.sorting){case KC:break;case JC:a.reverse();break;case qC:a.sort(this.comparer);break;case Mp:a.sort(this.comparer),a.reverse();break;case Nw:return this.ak(a3(a));default:hn("Invalid sorting type.")}return a};function a3(a){for(var x=[],b=0;b<a.length;b++)x.push(0);b=new Zi;for(var te=0;te<a.length;te++){var re=-1,oe=-1;if(te===0)for(var le=0;le<a.length;le++){var fe=a.M(le).edgesCount;fe>re&&(re=fe,oe=le)}else for(le=0;le<a.length;le++)fe=x[le],fe>re&&(re=fe,oe=le);for(b.add(a.M(oe)),x[oe]=-1,oe=a.M(oe),le=oe.sourceEdges;le.next();)re=a.indexOf(le.value.fromVertex),0>re||0<=x[re]&&x[re]++;for(oe=oe.destinationEdges;oe.next();)re=a.indexOf(oe.value.toVertex),0>re||0<=x[re]&&x[re]++}return b}Eu.prototype.ak=function(a){for(var x=[],b=0;b<a.length;b++){var te=a.M(b);x[b]=[];for(var re,oe=te.destinationEdges;oe.next();)re=a.indexOf(oe.value.toVertex),re!==b&&0>x[b].indexOf(re)&&x[b].push(re);for(te=te.sourceEdges;te.next();)re=a.indexOf(te.value.fromVertex),re!==b&&0>x[b].indexOf(re)&&x[b].push(re)}for(oe=[],b=0;b<x.length;b++)oe[b]=0;b=[];var le=[],fe=[];te=[],re=new Zi;for(var ge=0,ye=0;ye<x.length;ye++){var we=x[ye].length;if(we===1)te.push(ye);else if(we===0)re.add(a.M(ye));else{if(ge===0)b.push(ye);else{for(var be=we=1/0,ke=-1,Ue=[],Ve=0;Ve<b.length;Ve++)0>x[b[Ve]].indexOf(b[Ve===b.length-1?0:Ve+1])&&Ue.push(Ve===b.length-1?0:Ve+1);if(Ue.length===0)for(Ve=0;Ve<b.length;Ve++)Ue.push(Ve);for(Ve=0;Ve<Ue.length;Ve++){for(var Ke=Ue[Ve],Pt=x[ye],ft=0,Nt=0;Nt<le.length;Nt++){var Lt=oe[le[Nt]],Ut=oe[fe[Nt]];if(Lt<Ut){var tn=Lt;Lt=Ut}else tn=Ut;if(tn<Ke&&Ke<=Lt)for(Ut=0;Ut<Pt.length;Ut++){var xn=Pt[Ut];0>b.indexOf(xn)||tn<oe[xn]&&oe[xn]<Lt||tn===oe[xn]||Lt===oe[xn]||ft++}else for(Ut=0;Ut<Pt.length;Ut++)xn=Pt[Ut],0>b.indexOf(xn)||tn<oe[xn]&&oe[xn]<Lt&&tn!==oe[xn]&&Lt!==oe[xn]&&ft++}for(Pt=ft,Nt=ft=0;Nt<x[ye].length;Nt++)tn=b.indexOf(x[ye][Nt]),0<=tn&&(tn=Math.abs(Ke-(tn>=Ke?tn+1:tn)),ft+=tn<b.length+1-tn?tn:b.length+1-tn);for(Nt=0;Nt<le.length;Nt++)tn=oe[le[Nt]],Lt=oe[fe[Nt]],tn>=Ke&&tn++,Lt>=Ke&&Lt++,tn>Lt&&(Ut=Lt,Lt=tn,tn=Ut),Lt-tn<(b.length+2)/2==(tn<Ke&&Ke<=Lt)&&ft++;(Pt<we||Pt===we&&ft<be)&&(we=Pt,be=ft,ke=Ke)}for(b.splice(ke,0,ye),we=0;we<b.length;we++)oe[b[we]]=we;for(we=0;we<x[ye].length;we++)be=x[ye][we],0<=b.indexOf(be)&&(le.push(ye),fe.push(be))}ge++}}for(le=b.length;;){for(oe=!0,fe=0;fe<te.length;fe++)if(ge=te[fe],ye=x[ge][0],we=b.indexOf(ye),0<=we){for(ke=be=0;ke<x[ye].length;ke++)Ue=b.indexOf(x[ye][ke]),0>Ue||Ue===we||(Ve=Ue>we?Ue-we:we-Ue,be+=Ue<we!=Ve>le-Ve?1:-1);b.splice(0>be?we:we+1,0,ge),te.splice(fe,1),fe--}else oe=!1;if(oe)break;b.push(te[0]),te.splice(0,1)}for(x=0;x<b.length;x++)re.add(a.M(b[x]));return re},pn.Object.defineProperties(Eu.prototype,{radius:{get:function(){return this.eo},set:function(a){this.eo!==a&&(0<a||isNaN(a))&&(this.eo=a,this.C())}},aspectRatio:{get:function(){return this.Cm},set:function(a){this.Cm!==a&&0<a&&(this.Cm=a,this.C())}},startAngle:{get:function(){return this.ro},set:function(a){this.ro!==a&&(this.ro=a,this.C())}},sweepAngle:{get:function(){return this.ul},set:function(a){this.ul!==a&&(0<a&&360>=a?this.ul=a:this.ul=360,this.C())}},arrangement:{get:function(){return this.Rb},set:function(a){this.Rb===a||a!==hf&&a!==Yh&&a!==yg&&a!==mm||(this.Rb=a,this.C())}},direction:{get:function(){return this.K},set:function(a){this.K===a||a!==Gc&&a!==qf&&a!==x0&&a!==EA||(this.K=a,this.C())}},sorting:{get:function(){return this.nd},set:function(a){this.nd===a||a!==KC&&a!==JC&&a!==qC&&!Mp&&a!==Nw||(this.nd=a,this.C())}},comparer:{get:function(){return this.hd},set:function(a){this.hd!==a&&(this.hd=a,this.C())}},spacing:{get:function(){return this.tf},set:function(a){this.tf!==a&&(this.tf=a,this.C())}},nodeDiameterFormula:{get:function(){return this.Nn},set:function(a){this.Nn===a||a!==cP&&a!==n1||(this.Nn=a,this.C())}},actualXRadius:{get:function(){return this.lc}},actualYRadius:{get:function(){return this.me}},actualSpacing:{get:function(){return this.Ti}},actualCenter:{get:function(){return this.Zv}}});var Yh=new Ni(Eu,"ConstantSpacing",0),yg=new Ni(Eu,"ConstantDistance",1),mm=new Ni(Eu,"ConstantAngle",2),hf=new Ni(Eu,"Packed",3),Gc=new Ni(Eu,"Clockwise",4),qf=new Ni(Eu,"Counterclockwise",5),x0=new Ni(Eu,"BidirectionalLeft",6),EA=new Ni(Eu,"BidirectionalRight",7),KC=new Ni(Eu,"Forwards",8),JC=new Ni(Eu,"Reverse",9),qC=new Ni(Eu,"Ascending",10),Mp=new Ni(Eu,"Descending",11),Nw=new Ni(Eu,"Optimized",12),cP=new Ni(Eu,"Pythagorean",13),n1=new Ni(Eu,"Circular",14);Eu.className="CircularLayout",Eu.ConstantSpacing=Yh,Eu.ConstantDistance=yg,Eu.ConstantAngle=mm,Eu.Packed=hf,Eu.Clockwise=Gc,Eu.Counterclockwise=qf,Eu.BidirectionalLeft=x0,Eu.BidirectionalRight=EA,Eu.Forwards=KC,Eu.Reverse=JC,Eu.Ascending=qC,Eu.Descending=Mp,Eu.Optimized=Nw,Eu.Pythagorean=cP,Eu.Circular=n1;function bA(){this.Pl=-1/0,this.tm=this.mk=null}bA.prototype.compare=function(a,x){if(0<a&&0>this.Pl||Math.abs(a)<Math.abs(this.Pl)&&!(0>a&&0<this.Pl))for(this.Pl=a,this.mk=[],this.tm=[],a=0;a<x.length;a++)this.mk[a]=x[a].bounds.x,this.tm[a]=x[a].bounds.y},bA.prototype.commit=function(a){if(this.mk!==null&&this.tm!==null)for(var x=0;x<this.mk.length;x++){var b=a.M(x);b.x=this.mk[x],b.y=this.tm[x]}},bA.className="VertexArrangement";function zm(a){Nl.call(this,a)}vn(zm,Nl),zm.prototype.createVertex=function(){return new gy(this)},zm.prototype.createEdge=function(){return new _C(this)},zm.className="CircularNetwork";function gy(a){_u.call(this,a),this.u=this.Si=NaN}vn(gy,_u);function ov(a,x){var b=a.network;if(b===null)return NaN;if(b=b.layout,b===null)return NaN;if(b.arrangement===hf)if(b.nodeDiameterFormula===n1)a.Si=Math.max(a.width,a.height);else{if(b=Math.abs(Math.sin(x)),x=Math.abs(Math.cos(x)),b===0)return a.width;if(x===0)return a.height;a.Si=Math.min(a.height/b,a.width/x)}else a.Si=b.nodeDiameterFormula===n1?Math.max(a.width,a.height):Math.sqrt(a.width*a.width+a.height*a.height);return a.Si}pn.Object.defineProperties(gy.prototype,{diameter:{get:function(){return this.Si},set:function(a){this.Si!==a&&(this.Si=a)}},actualAngle:{get:function(){return this.u},set:function(a){this.u!==a&&(this.u=a)}}}),gy.className="CircularVertex";function _C(a){cf.call(this,a)}vn(_C,cf),_C.className="CircularEdge";function Sh(a){vu.call(this),this.ah=null,this.An=0,this.$d=new Dt(100,100).freeze(),this.Bm=!1,this.sf=!0,this.td=!1,this.dl=100,this.$m=1,this.Zf=1e3,this.In=10,this.fo=Math,this.Hk=.05,this.Gk=50,this.Ek=150,this.Fk=0,this.Vm=10,this.Um=5,a&&Object.assign(this,a)}vn(Sh,vu),Sh.prototype.cloneProtected=function(a){vu.prototype.cloneProtected.call(this,a),a.$d.assign(this.$d),a.Bm=this.Bm,a.sf=this.sf,a.td=this.td,a.dl=this.dl,a.$m=this.$m,a.Zf=this.Zf,a.In=this.In,a.fo=this.fo,a.Hk=this.Hk,a.Gk=this.Gk,a.Ek=this.Ek,a.Fk=this.Fk,a.Vm=this.Vm,a.Um=this.Um},Sh.prototype.createNetwork=function(){return new sv(this)},Sh.prototype.doLayout=function(a){if(this.network===null&&(this.network=this.makeNetwork(a)),a=this.maxIterations,0<this.network.vertexes.count){this.network.Ko();for(var x=this.network.vertexes.iterator;x.next();){var b=x.value;b.charge=this.electricalCharge(b),b.mass=this.gravitationalMass(b)}for(x=this.network.edges.iterator;x.next();)b=x.value,b.stiffness=this.springStiffness(b),b.length=this.springLength(b);if(this.Cu(),this.An=0,this.needsClusterLayout()){x=this.network,b=x.Zx();for(var te=b.iterator;te.next();){this.network=te.value;for(var re=this.network.vertexes.iterator;re.next();){var oe=re.value;oe.Vd=oe.vertexes.count,oe.sh=1,oe.Hj=null,oe.We=null}Bp(this,0,a)}this.network=x;var le=te=b.iterator;te=this.arrangementSpacing;var fe=le.count,ge=!0;oe=re=0;for(var ye=ys(),we=0;we<fe+x.vertexes.count+2;we++)ye[we]=null;fe=0,le.reset();for(var be=Yt.alloc();le.next();)if(we=le.value,this.computeBounds(we,be),ge)ge=!1,re=be.x+be.width/2,oe=be.y+be.height/2,ye[0]=new it(be.x+be.width+te.width,be.y),ye[1]=new it(be.x,be.y+be.height+te.height),fe=2;else{var ke=Tp(ye,fe,re,oe,be.width,be.height,te),Ue=ye[ke],Ve=new it(Ue.x+be.width+te.width,Ue.y),Ke=new it(Ue.x,Ue.y+be.height+te.height);for(ke+1<fe&&ye.splice(ke+1,0,null),ye[ke]=Ve,ye[ke+1]=Ke,fe++,ke=Ue.x-be.x,Ue=Ue.y-be.y,we=we.vertexes.iterator;we.next();)Ve=we.value,Ve.centerX+=ke,Ve.centerY+=Ue}for(Yt.free(be),we=x.vertexes.iterator;we.next();)le=we.value,ke=le.bounds,2>fe?(re=ke.x+ke.width/2,oe=ke.y+ke.height/2,ye[0]=new it(ke.x+ke.width+te.width,ke.y),ye[1]=new it(ke.x,ke.y+ke.height+te.height),fe=2):(ge=Tp(ye,fe,re,oe,ke.width,ke.height,te),be=ye[ge],Ue=new it(be.x+ke.width+te.width,be.y),ke=new it(be.x,be.y+ke.height+te.height),ge+1<fe&&ye.splice(ge+1,0,null),ye[ge]=Ue,ye[ge+1]=ke,fe++,le.centerX=be.x+le.width/2,le.centerY=be.y+le.height/2);for(As(ye),te=b.iterator;te.next();){for(b=te.value,re=b.vertexes.iterator;re.next();)x.dh(re.value);for(b=b.edges.iterator;b.next();)x.Bo(b.value)}}dP(this,a),this.updateParts()}this.dl=a,this.network=null,this.isValidLayout=!0},Sh.prototype.needsClusterLayout=function(){if(3>this.network.vertexes.count)return!1;for(var a=0,x=0,b=this.network.vertexes.first().bounds,te=this.network.vertexes.iterator;te.next();){if(te.value.bounds.Yc(b)&&(a++,2<a))return!0;if(10<x)break;x++}return!1},Sh.prototype.computeBounds=function(a,x){var b=!0;for(a=a.vertexes.iterator;a.next();){var te=a.value;b?(b=!1,x.set(te.bounds)):x.ed(te.bounds)}return x};function Bp(a,x,b){if($C(a,x)){var te=a.Zf;a.Zf*=1+1/(x+1);var re=l3(a,x),oe=Math.max(0,Math.max(Math.min(a.network.vertexes.count,b*(x+1)/11),10));for(a.maxIterations+=oe,Bp(a,x+1,b),dP(a,oe),i1(a,re),x=re.vertexes.Fa(),x.sort(function(le,fe){return le===null||fe===null||le===fe?0:fe.Vd-le.Vd}),b=0;b<x.length;b++)u3(a,x[b]);a.Zf=te}}function $C(a,x){if(10<x||3>a.network.vertexes.count)return!1;for(a.ah=a.network.vertexes.Fa(),a=a.ah,a.sort(function(b,te){return b===null||te===null||b===te?0:te.Vd-b.Vd}),x=a.length-1;0<=x&&1>=a[x].Vd;)x--;return 1<a.length-x}function l3(a,x){for(var b=a.network,te=new sv(a),re=0;re<a.ah.length;re++){var oe=a.ah[re];if(1<oe.Vd){te.dh(oe);var le=new Fw;le.Rs=oe.Vd,le.Ss=oe.width,le.Qs=oe.height,le.Sv=oe.focus.x,le.Tv=oe.focus.y,oe.We===null&&(oe.We=new Zi),oe.We.add(le),oe.sv=oe.We.count-1}else break}for(oe=b.edges.iterator;oe.next();){var fe=oe.value;re=fe.fromVertex,le=fe.toVertex,re.network===te&&le.network===te?te.Bo(fe):re.network===te?(fe=re.Hj,fe===null&&(fe=new Zi,re.Hj=fe),fe.add(le),re.Vd--,re.sh+=le.sh):le.network===te&&(fe=le.Hj,fe===null&&(fe=new Zi,le.Hj=fe),fe.add(re),le.Vd--,le.sh+=re.sh)}for(re=te.edges.iterator;re.next();)oe=re.value,oe.length*=Math.max(1,_t.sqrt((oe.fromVertex.sh+oe.toVertex.sh)/(4*x+1)));for(x=te.vertexes.iterator;x.next();){re=x.value;var ge=re.Hj;if(ge!==null&&0<ge.count&&(le=re.We.M(re.We.count-1).Rs-re.Vd,!(0>=le))){for(var ye=fe=0,we=ge.count-le;we<ge.count;we++){var be=ge.M(we),ke=null;for(oe=be.edges.iterator;oe.next();){var Ue=oe.value;if(Ue.Ax(be)===re){ke=Ue;break}}ke!==null&&(ye+=ke.length,fe+=be.width*be.height)}oe=re.centerX,ge=re.centerY,we=re.width,be=re.height,ke=re.focus,Ue=we*be,1>Ue&&(Ue=1),fe=_t.sqrt((fe+Ue+ye*ye*4/(le*le))/Ue),le=(fe-1)*we/2,fe=(fe-1)*be/2,re.bounds=new Yt(oe-ke.x-le,ge-ke.y-fe,we+2*le,be+2*fe),re.focus=new it(ke.x+le,ke.y+fe)}}return a.network=te,b}function i1(a,x){for(var b=a.network.vertexes.iterator;b.next();){var te=b.value;if(te.network=x,te.We!==null){var re=te.We.M(te.sv);te.Vd=re.Rs;var oe=re.Sv,le=re.Tv;te.bounds=new Yt(te.centerX-oe,te.centerY-le,re.Ss,re.Qs),te.focus=new it(oe,le),te.sv--}}for(b=a.network.edges.iterator;b.next();)b.value.network=x;a.network=x}function u3(a,x){var b=x.Hj;if(b!==null&&b.count!==0){var te=x.centerX,re=x.centerY,oe=x.width,le=x.height;x.We!==null&&0<x.We.count&&(le=x.We.M(0),oe=le.Ss,le=le.Qs),oe=_t.sqrt(oe*oe+le*le)/2;for(var fe=!1,ge=le=0,ye=0,we=x.vertexes.iterator;we.next();){var be=we.value;1>=be.Vd?ge++:(fe=!0,ye++,le+=Math.atan2(x.centerY-be.centerY,x.centerX-be.centerX))}if(ge!==0){for(0<ye&&(le/=ye),ye=x=0,x=fe?2*Math.PI/(ge+1):2*Math.PI/ge,ge%2===0&&(ye=x/2),1<b.count&&b.sort(function(Ue,Ve){return Ue===null||Ve===null||Ue===Ve?0:Ve.width*Ve.height-Ue.width*Ue.height}),fe=ge%2===0?0:1,b=b.iterator;b.next();)if(ge=b.value,!(1<ge.Vd||a.isFixed(ge))){for(we=null,be=ge.edges.iterator;be.next();){we=be.value;break}be=ge.width;var ke=ge.height;be=_t.sqrt(be*be+ke*ke)/2,we=oe+we.length+be,be=le+(x*(fe/2>>1)+ye)*(fe%2===0?1:-1),ge.centerX=te+we*Math.cos(be),ge.centerY=re+we*Math.sin(be),fe++}}}}function Tp(a,x,b,te,re,oe,le){var fe=9e19,ge=-1,ye=0;e:for(;ye<x;ye++){var we=a[ye],be=we.x-b,ke=we.y-te;if(be=be*be+ke*ke,be<fe){for(ke=ye-1;0<=ke;ke--)if(a[ke].y>we.y&&a[ke].x-we.x<re+le.width)continue e;for(ke=ye+1;ke<x;ke++)if(a[ke].x>we.x&&a[ke].y-we.y<oe+le.height)continue e;ge=ye,fe=be}}return ge}Sh.prototype.Cu=function(){if(this.comments)for(var a=this.network.vertexes.iterator;a.next();)this.addComments(a.value)},Sh.prototype.addComments=function(a){var x=a.node;if(x!==null)for(x=x.Mu();x.next();){var b=x.value;if(b.category==="Comment"&&b.isVisible()){var te=this.network.ki(b);te===null&&(te=this.network.Bl(b)),te.charge=this.defaultCommentElectricalCharge,b=null;for(var re=te.destinationEdges;re.next();){var oe=re.value;if(oe.toVertex===a){b=oe;break}}if(b===null){for(re=te.sourceEdges;re.next();)if(oe=re.value,oe.fromVertex===a){b=oe;break}}b===null&&(b=this.network.Zj(a,te,null)),b.length=this.defaultCommentSpringLength}}};function hP(a,x){var b=a.bounds,te=b.x;a=b.y;var re=b.width;b=b.height;var oe=x.bounds,le=oe.x;x=oe.y;var fe=oe.width;return oe=oe.height,te+re<le?a>x+oe?(b=te+re-le,a=a-x-oe,_t.sqrt(b*b+a*a)):a+b<x?(te=te+re-le,a=a+b-x,_t.sqrt(te*te+a*a)):le-(te+re):te>le+fe?a>x+oe?(b=te-le-fe,a=a-x-oe,_t.sqrt(b*b+a*a)):a+b<x?(te=te-le-fe,a=a+b-x,_t.sqrt(te*te+a*a)):te-(le+fe):a>x+oe?a-(x+oe):a+b<x?x-(a+b):.1}function dP(a,x){for(a.ah=null,x=a.An+x;a.An<x&&(a.An++,F5(a)););a.ah=null}function F5(a){a.ah===null&&(a.ah=a.network.vertexes.Fa());var x=a.ah;if(0>=x.length)return!1;var b=x[0];b.forceX=0,b.forceY=0;for(var te=b.centerX,re=te,oe=b=b.centerY,le=1;le<x.length;le++){var fe=x[le];fe.forceX=0,fe.forceY=0;var ge=fe.centerX;fe=fe.centerY,te=Math.min(te,ge),re=Math.max(re,ge),b=Math.min(b,fe),oe=Math.max(oe,fe)}(re=re-te>oe-b)?x.sort(function(Ke,Pt){return Ke===null||Pt===null||Ke===Pt?0:Ke.centerX-Pt.centerX}):x.sort(function(Ke,Pt){return Ke===null||Pt===null||Ke===Pt?0:Ke.centerY-Pt.centerY}),b=a.Zf;var ye=te=fe=0;for(oe=0;oe<x.length;oe++){le=x[oe],te=le.bounds,fe=le.focus,ge=te.x+fe.x;var we=te.y+fe.y;te=le.charge*a.electricalFieldX(ge,we),ye=le.charge*a.electricalFieldY(ge,we),te+=le.mass*a.gravitationalFieldX(ge,we),ye+=le.mass*a.gravitationalFieldY(ge,we),le.forceX+=te,le.forceY+=ye;for(var be=oe+1;be<x.length;be++){var ke=x[be];if(ke!==le){te=ke.bounds,fe=ke.focus,ye=te.x+fe.x;var Ue=te.y+fe.y;if(ge-ye>b||ye-ge>b){if(re)break}else if(we-Ue>b||Ue-we>b){if(!re)break}else{var Ve=hP(le,ke);1>Ve?(te=a.randomNumberGenerator,te===null&&(a.randomNumberGenerator=te=new MA),Ve=te.random(),fe=te.random(),ge>ye?(te=Math.abs(ke.bounds.right-le.bounds.x),te=(1+te)*Ve):ge<ye?(te=Math.abs(ke.bounds.x-le.bounds.right),te=-(1+te)*Ve):(te=Math.max(ke.width,le.width),te=(1+te)*Ve-te/2),we>Ue?(ye=Math.abs(ke.bounds.bottom-le.bounds.y),ye=(1+ye)*fe):ge<ye?(ye=Math.abs(ke.bounds.y-le.bounds.bottom),ye=-(1+ye)*fe):(ye=Math.max(ke.height,le.height),ye=(1+ye)*fe-ye/2)):(fe=-(le.charge*ke.charge)/(Ve*Ve),te=(ye-ge)/Ve*fe,ye=(Ue-we)/Ve*fe),le.forceX+=te,le.forceY+=ye,ke.forceX-=te,ke.forceY-=ye}}}}for(re=a.network.edges.iterator;re.next();)fe=re.value,b=fe.fromVertex,oe=fe.toVertex,le=b.bounds,ge=b.focus,te=le.x+ge.x,le=le.y+ge.y,we=oe.bounds,be=oe.focus,ge=we.x+be.x,we=we.y+be.y,be=hP(b,oe),1>be?(be=a.randomNumberGenerator,be===null&&(a.randomNumberGenerator=be=new MA),fe=be.random(),be=be.random(),te=(te>ge?1:-1)*(1+(oe.width>b.width?oe.width:b.width))*fe,ye=(le>we?1:-1)*(1+(oe.height>b.height?oe.height:b.height))*be):(fe=fe.stiffness*(be-fe.length),te=(ge-te)/be*fe,ye=(we-le)/be*fe),b.forceX+=te,b.forceY+=ye,oe.forceX-=te,oe.forceY-=ye;for(re=te=0;re<x.length;re++)b=x[re],a.isFixed(b)?a.moveFixedVertex(b):te=Math.max(te,a.moveVertex(b)||0);return te>a.epsilonDistance*a.epsilonDistance}Sh.prototype.moveVertex=function(a){var x=a.forceX,b=a.forceY,te=this.moveLimit;return x<-te?x=-te:x>te&&(x=te),b<-te?b=-te:b>te&&(b=te),a.centerX+=x,a.centerY+=b,x*x+b*b},Sh.prototype.moveFixedVertex=function(){},Sh.prototype.commitLayout=function(){this.yv(),this.commitNodes(),this.isRouting&&this.commitLinks()},Sh.prototype.yv=function(){if(this.setsPortSpots)for(var a=this.network.edges.iterator;a.next();){var x=a.value.link;x!==null&&(x.fromSpot=Bl,x.toSpot=Bl)}},Sh.prototype.commitNodes=function(){var a=0,x=0;if(this.arrangesToOrigin){var b=Yt.alloc();this.computeBounds(this.network,b),x=this.arrangementOrigin,a=x.x-b.x,x=x.y-b.y,Yt.free(b)}b=Yt.alloc();for(var te=this.network.vertexes.iterator;te.next();){var re=te.value;(a!==0||x!==0)&&(b.assign(re.bounds),b.x+=a,b.y+=x,re.bounds=b),re.commit()}Yt.free(b)},Sh.prototype.commitLinks=function(){for(var a=this.network.edges.iterator;a.next();)a.value.commit()},Sh.prototype.springStiffness=function(a){return a=a.stiffness,isNaN(a)?this.Hk:a},Sh.prototype.springLength=function(a){return a=a.length,isNaN(a)?this.Gk:a},Sh.prototype.electricalCharge=function(a){return a=a.charge,isNaN(a)?this.Ek:a},Sh.prototype.electricalFieldX=function(){return 0},Sh.prototype.electricalFieldY=function(){return 0},Sh.prototype.gravitationalMass=function(a){return a=a.mass,isNaN(a)?this.Fk:a},Sh.prototype.gravitationalFieldX=function(){return 0},Sh.prototype.gravitationalFieldY=function(){return 0},Sh.prototype.isFixed=function(a){return a.isFixed},pn.Object.defineProperties(Sh.prototype,{currentIteration:{get:function(){return this.An}},arrangementSpacing:{get:function(){return this.$d},set:function(a){this.$d.D(a)||(this.$d.assign(a),this.C())}},arrangesToOrigin:{get:function(){return this.Bm},set:function(a){this.Bm!==a&&(this.Bm=a,this.C())}},setsPortSpots:{get:function(){return this.sf},set:function(a){this.sf!==a&&(this.sf=a,this.C())}},comments:{get:function(){return this.td},set:function(a){this.td!==a&&(this.td=a,this.C())}},maxIterations:{get:function(){return this.dl},set:function(a){this.dl!==a&&0<=a&&(this.dl=a,this.C())}},epsilonDistance:{get:function(){return this.$m},set:function(a){this.$m!==a&&0<a&&(this.$m=a,this.C())}},infinityDistance:{get:function(){return this.Zf},set:function(a){this.Zf!==a&&1<a&&(this.Zf=a,this.C())}},moveLimit:{get:function(){return this.In},set:function(a){this.In!==a&&1<a&&(this.In=a,this.C())}},randomNumberGenerator:{get:function(){return this.fo},set:function(a){this.fo!==a&&(a!==null&&typeof a.random!="function"&&hn('ForceDirectedLayout.randomNumberGenerator must have a "random()" function on it: '+a),this.fo=a)}},defaultSpringStiffness:{get:function(){return this.Hk},set:function(a){this.Hk!==a&&(this.Hk=a,this.C())}},defaultSpringLength:{get:function(){return this.Gk},set:function(a){this.Gk!==a&&(this.Gk=a,this.C())}},defaultElectricalCharge:{get:function(){return this.Ek},set:function(a){this.Ek!==a&&(this.Ek=a,this.C())}},defaultGravitationalMass:{get:function(){return this.Fk},set:function(a){this.Fk!==a&&(this.Fk=a,this.C())}},defaultCommentSpringLength:{get:function(){return this.Vm},set:function(a){this.Vm!==a&&(this.Vm=a,this.C())}},defaultCommentElectricalCharge:{get:function(){return this.Um},set:function(a){this.Um!==a&&(this.Um=a,this.C())}}}),Sh.className="ForceDirectedLayout";function Fw(){this.Tv=this.Sv=this.Qs=this.Ss=this.Rs=0}Fw.className="ForceDirectedSubnet";function sv(a){Nl.call(this,a)}vn(sv,Nl),sv.prototype.createVertex=function(){return new r1(this)},sv.prototype.createEdge=function(){return new Lw(this)},sv.className="ForceDirectedNetwork";function r1(a){_u.call(this,a),this.ia=!1,this.Ha=this.u=NaN,this.sh=this.Vd=this.V=this.F=0,this.We=this.Hj=null,this.sv=0}vn(r1,_u),pn.Object.defineProperties(r1.prototype,{isFixed:{get:function(){return this.ia},set:function(a){this.ia!==a&&(this.ia=a)}},charge:{get:function(){return this.u},set:function(a){this.u!==a&&(this.u=a)}},mass:{get:function(){return this.Ha},set:function(a){this.Ha!==a&&(this.Ha=a)}},forceX:{get:function(){return this.F},set:function(a){this.F!==a&&(this.F=a)}},forceY:{get:function(){return this.V},set:function(a){this.V!==a&&(this.V=a)}}}),r1.className="ForceDirectedVertex";function Lw(a){cf.call(this,a),this.j=this.o=NaN}vn(Lw,cf),pn.Object.defineProperties(Lw.prototype,{stiffness:{get:function(){return this.o},set:function(a){this.o!==a&&(this.o=a)}},length:{get:function(){return this.j},set:function(a){this.j!==a&&(this.j=a)}}}),Lw.className="ForceDirectedEdge";function MA(){var a=0;a===void 0&&(a=42),this.seed=a,this.ay=48271,this.ey=2147483647,this.Q=44488.07041494893,this.gy=3399,this.by=1/2147483647,this.random()}MA.prototype.random=function(){var a=this.seed%this.Q*this.ay-this.seed/this.Q*this.gy;return 0<a?this.seed=a:this.seed=a+this.ey,this.seed*this.by},MA.className="RandomNumberGenerator";function nl(a){vu.call(this),this.kc=this.ie=25,this.K=0,this.Dk=mP,this.Zk=uE,this.Qk=cE,this.bj=4,this.rk=yP,this.bg=15,this.sf=!0,this.Cn=4,this.Ra=this.Iq=this.Ia=-1,this.Md=this.Hn=0,this.Ta=this.Kd=this.Ld=this.he=this.tc=null,this.Kn=0,this.Jn=this.kj=null,this.le=0,this.fl=null,this.Rf=new it,this.He=[],this.He.length=100,this.xw=this.ve=0,a&&Object.assign(this,a)}vn(nl,vu),nl.prototype.cloneProtected=function(a){vu.prototype.cloneProtected.call(this,a),a.ie=this.ie,a.kc=this.kc,a.K=this.K,a.Dk=this.Dk,a.Zk=this.Zk,a.Qk=this.Qk,a.bj=this.bj,a.rk=this.rk,a.bg=this.bg,a.sf=this.sf,a.Cn=this.Cn,a.ve=this.ve},nl.prototype.qb=function(a){a.classType===nl?a.name.indexOf("Aggressive")===0?this.aggressiveOption=a:a.name.indexOf("Cycle")===0?this.cycleRemoveOption=a:a.name.indexOf("Init")===0?this.initializeOption=a:a.name.indexOf("Layer")===0?this.layeringOption=a:hn("Unknown enum value: "+a):vu.prototype.qb.call(this,a)},nl.prototype.createNetwork=function(){return new l1(this)},nl.prototype.doLayout=function(a){for(this.network===null&&(this.network=this.makeNetwork(a)),this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin),this.Iq=-1,this.Md=this.Hn=0,this.fl=this.Jn=this.kj=null,a=0;a<this.He.length;a++)this.He[a]=null;if(0<this.network.vertexes.count){for(this.network.Ko(),this.cycleRemoveOption!==vP&&this.removeCycles(),a=this.network.vertexes.iterator;a.next();)a.value.layer=-1;for(this.Ia=-1,this.assignLayers(),a.reset();a.next();)this.Ia=Math.max(this.Ia,a.value.layer);this.cycleRemoveOption===vP&&this.removeCycles(),a=this.network;for(var x=[],b=a.edges.iterator;b.next();){var te=b.value;te.valid=!1,x.push(te)}for(b=0;b<x.length;b++){te=x[b];var re=te.fromVertex,oe=te.toVertex;if(!(te.valid||(re.node===null&&re.data===null||oe.node===null&&oe.data===null)&&re.layer===oe.layer)){var le=0,fe=0,ge=0,ye=0;if(te.link!==null){if(fe=te.link,fe===null)continue;var we=re.node;if(le=oe.node,we===null||le===null)continue;var be=fe.fromNode;ge=fe.toNode;for(var ke=fe.fromPort;ke!==null&&!ke.Ed();)ke=ke.panel;for(fe=fe.toPort;fe!==null&&!fe.Ed();)fe=fe.panel;if(te.rev){ye=be;var Ue=ke;be=ge,ke=fe,ge=ye,fe=Ue}var Ve=re.focus;ye=oe.focus;var Ke=te.rev?oe.bounds:re.bounds;Ue=it.alloc(),we!==be?Ke.w()&&be.isVisible()?be.actualBounds.w()?(Qf(be,ke,eo,Ue),Ue.x+=be.actualBounds.x-Ke.x,Ue.y+=be.actualBounds.y-Ke.y):(Qf(be,ke,eo,Ue),Ue.w()||Ue.assign(Ve)):Ue.assign(Ve):Ke.w()?(Qf(be,ke,eo,Ue),Ue.w()||Ue.assign(Ve)):Ue.assign(Ve),be=te.rev?re.bounds:oe.bounds,we=it.alloc(),le!==ge?be.w()&&ge.isVisible()?ge.actualBounds.w()?(Qf(ge,fe,eo,we),we.x+=ge.actualBounds.x-be.x,we.y+=ge.actualBounds.y-be.y):(Qf(ge,fe,eo,we),we.w()||we.assign(ye)):we.assign(ye):be.w()?(Qf(ge,fe,eo,we),we.w()||we.assign(ye)):we.assign(ye),this.K===90||this.K===270?(le=Math.round((Ue.x-Ve.x)/this.kc),ge=Ue.x,fe=Math.round((we.x-ye.x)/this.kc),ye=we.x):(le=Math.round((Ue.y-Ve.y)/this.kc),ge=Ue.y,fe=Math.round((we.y-ye.y)/this.kc),ye=we.y),it.free(Ue),it.free(we),te.portFromColOffset=le,te.portFromPos=ge,te.portToColOffset=fe,te.portToPos=ye}else te.portFromColOffset=0,te.portFromPos=0,te.portToColOffset=0,te.portToPos=0;if(Ue=re.layer,we=oe.layer,be=0,Ke=te.link,Ke!==null){var Pt=Ke.fromPort,ft=Ke.toPort;if(Pt!==null&&ft!==null){var Nt=Ke.fromNode;if(ke=Ke.toNode,Nt!==null&&ke!==null){var Lt=Rw(this,!0),Ut=Rw(this,!1),tn=this.setsPortSpots?Lt:Ke.computeSpot(!0,Pt);Ve=this.setsPortSpots?Ut:Ke.computeSpot(!1,ft);var xn=Ke.isOrthogonal;tn.$c()&&tn.Hf(Ut)&&Ve.$c()&&Ve.Hf(Lt)?be=0:(Lt=Ke.getLinkPoint(Nt,Pt,tn,!0,xn,ke,ft,it.alloc()),Ut=Ke.getLinkDirection(Nt,Pt,Lt,tn,!0,xn,ke,ft),it.free(Lt),tn.ys()||Ut!==p3(this,te,!0)?this.setsPortSpots&&Nt!==null&&Nt.ports.count===1&&te.rev&&(be+=1):be+=1,tn=Ke.getLinkPoint(ke,ft,Ve,!1,xn,Nt,Pt,it.alloc()),Ke=Ke.getLinkDirection(ke,ft,tn,Ve,!1,xn,Nt,Pt),it.free(tn),Ve.ys()||Ke!==p3(this,te,!1)?this.setsPortSpots&&ke!==null&&ke.ports.count===1&&te.rev&&(be+=2):be+=2)}}}if(ke=be,be=ke===1||ke===3,(ke=ke===2||ke===3)&&(Ve=a.createVertex(),Ve.node=null,Ve.Dj=1,Ve.layer=Ue,Ve.near=re,a.dh(Ve),re=a.Zj(re,Ve,te.link),re.valid=!1,re.rev=te.rev,re.portFromColOffset=le,re.portToColOffset=0,re.portFromPos=ge,re.portToPos=0,re=Ve),Ke=1,be&&Ke--,Ue-we>Ke&&0<Ue){for(te.valid=!1,Ve=a.createVertex(),Ve.node=null,Ve.Dj=2,Ve.layer=Ue-1,a.dh(Ve),re=a.Zj(re,Ve,te.link),re.valid=!0,re.rev=te.rev,re.portFromColOffset=ke?0:le,re.portToColOffset=0,re.portFromPos=ke?0:ge,re.portToPos=0,re=Ve,Ue--;Ue-we>Ke&&0<Ue;)Ve=a.createVertex(),Ve.node=null,Ve.Dj=3,Ve.layer=Ue-1,a.dh(Ve),re=a.Zj(re,Ve,te.link),re.valid=!0,re.rev=te.rev,re.portFromColOffset=0,re.portToColOffset=0,re.portFromPos=0,re.portToPos=0,re=Ve,Ue--;re=a.Zj(Ve,oe,te.link),re.valid=!be,be&&(Ve.near=oe),re.rev=te.rev,re.portFromColOffset=0,re.portToColOffset=fe,re.portFromPos=0,re.portToPos=ye}else te.valid=!0}}for(a=this.tc=[],x=0;x<=this.Ia;x++)a[x]=0;for(x=this.network.vertexes.iterator;x.next();)x.value.index=-1;for(this.initializeIndices(),this.Iq=-1,b=this.Md=this.Hn=0;b<=this.Ia;b++)a[b]>a[this.Md]&&(this.Iq=a[b]-1,this.Md=b),a[b]<a[this.Hn]&&(this.Hn=b);for(this.fl=[],b=0;b<a.length;b++)this.fl[b]=[];for(x.reset();x.next();)a=x.value,this.fl[a.layer][a.index]=a;for(this.Ra=-1,a=0;a<=this.Ia;a++){for(x=w0(this,a),b=0,te=this.tc[a],oe=0;oe<te;oe++)re=x[oe],b+=this.nodeMinColumnSpace(re,!0),re.column=b,b+=1,b+=this.nodeMinColumnSpace(re,!1);this.Ra=Math.max(this.Ra,b-1),my(this,a,x)}this.reduceCrossings(),this.straightenAndPack(),this.updateParts()}this.network=null,this.isValidLayout=!0},nl.prototype.linkMinLength=function(){return 1};function eE(a){var x=a.fromVertex.node||a.fromVertex.data;return a=a.toVertex.node||a.toVertex.data,x===null&&a===null?8:x===null||a===null?4:1}nl.prototype.nodeMinLayerSpace=function(a,x){return a.node===null&&a.data===null?0:this.K===90||this.K===270?x?a.focus.y+10:a.bounds.height-a.focus.y+10:x?a.focus.x+10:a.bounds.width-a.focus.x+10},nl.prototype.nodeMinColumnSpace=function(a,x){if(a.node===null&&a.data===null)return 0;var b=x?a.ev:a.dv;return b!==null?b:(b=this.K,b===90||b===270?x?a.ev=a.focus.x/this.kc+1|0:a.dv=(a.bounds.width-a.focus.x)/this.kc+1|0:x?a.ev=a.focus.y/this.kc+1|0:a.dv=(a.bounds.height-a.focus.y)/this.kc+1|0)};function Nd(a){a.kj===null&&(a.kj=[]);for(var x=0,b=a.network.vertexes.iterator;b.next();){var te=b.value;a.kj[x]=te.layer,x++,a.kj[x]=te.column,x++,a.kj[x]=te.index,x++}return a.kj}function _f(a,x){var b=0;for(a=a.network.vertexes.iterator;a.next();){var te=a.value;te.layer=x[b],b++,te.column=x[b],b++,te.index=x[b],b++}}function L5(a,x,b){var te=w0(a,x),re=a.tc[x];(a.Jn===null||a.Jn.length<re*re)&&(a.Jn=[]);for(var oe=a.Jn,le=0;le<re;le++){var fe=0,ge=te[le],ye=ge.near;if(ye!==null&&ye.layer===ge.layer)if(ge=ye.index,ge>le)for(var we=le+1;we<ge;we++){var be=te[we];be.near===ye&&be.Dj===ye.Dj||fe++}else for(we=le-1;we>ge;we--)be=te[we],be.near===ye&&be.Dj===ye.Dj||fe++;var ke;if(0<=b)for(ge=te[le].sourceEdgesArrayAccess,ye=0;ye<ge.length;ye++){var Ue=ge[ye];if(Ue.valid&&Ue.fromVertex.layer!==x)for(be=Ue.fromVertex.index,we=Ue.portToPos,Ue=Ue.portFromPos,ke=ye+1;ke<ge.length;ke++){var Ve=ge[ke];if(Ve.valid&&Ve.fromVertex.layer!==x){var Ke=Ve.fromVertex.index,Pt=Ve.portToPos;Ve=Ve.portFromPos,we<Pt&&(be>Ke||be===Ke&&Ue>Ve)&&fe++,Pt<we&&(Ke>be||Ke===be&&Ve>Ue)&&fe++}}}if(0>=b){for(ge=te[le].destinationEdgesArrayAccess,ye=0;ye<ge.length;ye++)if(Ue=ge[ye],Ue.valid&&Ue.toVertex.layer!==x)for(be=Ue.toVertex.index,we=Ue.portToPos,Ue=Ue.portFromPos,ke=ye+1;ke<ge.length;ke++)Ve=ge[ke],Ve.valid&&Ve.toVertex.layer!==x&&(Ke=Ve.toVertex.index,Pt=Ve.portToPos,Ve=Ve.portFromPos,Ue<Ve&&(be>Ke||be===Ke&&we>Pt)&&fe++,Ve<Ue&&(Ke>be||Ke===be&&Pt>we)&&fe++)}for(oe[le*re+le]=fe,ge=le+1;ge<re;ge++){var ft=0,Nt=0;if(0<=b){fe=te[le].sourceEdgesArrayAccess;var Lt=te[ge].sourceEdgesArrayAccess;for(ye=0;ye<fe.length;ye++)if(Ue=fe[ye],Ue.valid&&Ue.fromVertex.layer!==x)for(be=Ue.fromVertex.index,Ue=Ue.portFromPos,ke=0;ke<Lt.length;ke++)Ve=Lt[ke],Ve.valid&&Ve.fromVertex.layer!==x&&(Ke=Ve.fromVertex.index,Ve=Ve.portFromPos,(be<Ke||be===Ke&&Ue<Ve)&&Nt++,(Ke<be||Ke===be&&Ve<Ue)&&ft++)}if(0>=b){for(fe=te[le].destinationEdgesArrayAccess,Lt=te[ge].destinationEdgesArrayAccess,ye=0;ye<fe.length;ye++)if(Ue=fe[ye],Ue.valid&&Ue.toVertex.layer!==x)for(be=Ue.toVertex.index,we=Ue.portToPos,ke=0;ke<Lt.length;ke++)Ve=Lt[ke],Ve.valid&&Ve.toVertex.layer!==x&&(Ke=Ve.toVertex.index,Pt=Ve.portToPos,(be<Ke||be===Ke&&we<Pt)&&Nt++,(Ke<be||Ke===be&&Pt<we)&&ft++)}oe[le*re+ge]=ft,oe[ge*re+le]=Nt}}return my(a,x,te),oe}nl.prototype.countCrossings=function(){for(var a=0,x=0;x<=this.Ia;x++)for(var b=L5(this,x,1),te=this.tc[x],re=0;re<te;re++)for(var oe=re;oe<te;oe++)a+=b[re*te+oe];return a};function Iw(a){for(var x=0,b=0;b<=a.Ia;b++){for(var te=a,re=b,oe=w0(te,re),le=te.tc[re],fe=0,ge=0;ge<le;ge++){var ye=oe[ge].destinationEdgesArrayAccess;if(ye!==null)for(var we=0;we<ye.length;we++){var be=ye[we];if(be.valid&&be.toVertex.layer!==re){var ke=be.fromVertex.column+be.portFromColOffset,Ue=be.toVertex.column+be.portToColOffset;fe+=(Math.abs(ke-Ue)+1)*eE(be)}}}my(te,re,oe),x+=fe}return x}nl.prototype.normalize=function(){var a=1/0;this.Ra=-1;for(var x=this.network.vertexes.iterator;x.next();){var b=x.value;a=Math.min(a,b.column-this.nodeMinColumnSpace(b,!0)),this.Ra=Math.max(this.Ra,b.column+this.nodeMinColumnSpace(b,!1))}for(x.reset();x.next();)x.value.column-=a;this.Ra-=a};function tE(a,x,b){for(var te=w0(a,x),re=a.tc[x],oe=[],le=0;le<re;le++){var fe=te[le],ge=null;0>=b&&(ge=fe.sourceEdgesArrayAccess);var ye=null;0<=b&&(ye=fe.destinationEdgesArrayAccess);var we=0,be=0,ke=fe.near;if(ke!==null&&ke.layer===fe.layer&&(we+=ke.column-1,be++),ge!==null)for(ke=0;ke<ge.length;ke++){fe=ge[ke];var Ue=fe.fromVertex;fe.valid&&!fe.rev&&Ue.layer!==x&&(we+=Ue.column,be++)}if(ye!==null)for(ge=0;ge<ye.length;ge++)fe=ye[ge],ke=fe.toVertex,fe.valid&&!fe.rev&&ke.layer!==x&&(we+=ke.column,be++);oe[le]=be===0?-1:we/be}return my(a,x,te),oe}function nE(a,x,b){for(var te=w0(a,x),re=a.tc[x],oe=[],le=0;le<re;le++){var fe=te[le],ge=null;0>=b&&(ge=fe.sourceEdgesArrayAccess);var ye=null;0<=b&&(ye=fe.destinationEdgesArrayAccess);var we=0,be=[],ke=fe.near;if(ke!==null&&ke.layer===fe.layer&&(be[we]=ke.column-1,we++),fe=void 0,ge!==null)for(ke=0;ke<ge.length;ke++){fe=ge[ke];var Ue=fe.fromVertex;fe.valid&&!fe.rev&&Ue.layer!==x&&(be[we]=Ue.column+fe.portFromColOffset,we++)}if(ye!==null)for(ge=0;ge<ye.length;ge++)fe=ye[ge],ke=fe.toVertex,fe.valid&&!fe.rev&&ke.layer!==x&&(be[we]=ke.column+fe.portToColOffset,we++);we===0?oe[le]=-1:(be.sort(function(Ve,Ke){return Ve-Ke}),ye=we>>1,oe[le]=we&1?be[ye]:be[ye-1]+be[ye]>>1)}return my(a,x,te),oe}function BA(a,x,b,te,re,oe){if(x.component===te){if(x.component=b,re)for(var le=x.destinationEdges;le.next();){var fe=le.value,ge=fe.toVertex,ye=x.layer-ge.layer;fe=a.linkMinLength(fe),ye===fe&&BA(a,ge,b,te,re,oe)}if(oe)for(le=x.sourceEdges;le.next();)fe=le.value,ge=fe.fromVertex,ye=ge.layer-x.layer,fe=a.linkMinLength(fe),ye===fe&&BA(a,ge,b,te,re,oe)}}function kw(a,x,b,te,re,oe){if(x.component===te){if(x.component=b,re)for(var le=x.destinationEdges;le.next();)kw(a,le.value.toVertex,b,te,re,oe);if(oe)for(x=x.sourceEdges;x.next();)kw(a,x.value.fromVertex,b,te,re,oe)}}nl.prototype.removeCycles=function(){for(var a=this.network.edges.iterator;a.next();)a.value.rev=!1;switch(this.Dk){default:case b2:a=this.network;var x=0,b=a.vertexes.count-1,te=[];te.length=b+1;for(var re=a.vertexes.iterator;re.next();)re.value.valid=!0;for(;c3(a)!==null;){for(re=S2(a);re!==null;)te[b]=re,b--,re.valid=!1,re=S2(a);for(re=h3(a);re!==null;)te[x]=re,x++,re.valid=!1,re=h3(a);re=null;for(var oe=0,le=this.network.vertexes.iterator;le.next();){var fe=le.value;if(fe.valid){for(var ge=0,ye=fe.destinationEdges;ye.next();)ye.value.toVertex.valid&&ge++;ye=0;for(var we=fe.sourceEdges;we.next();)we.value.fromVertex.valid&&ye++;(re===null||oe<ge-ye)&&(re=fe,oe=ge-ye)}}re!==null&&(te[x]=re,x++,re.valid=!1)}for(x=0;x<a.vertexes.count;x++)te[x].index=x;for(te=a.edges.iterator;te.next();)x=te.value,x.fromVertex.index>x.toVertex.index&&(a.gm(x),x.rev=!0);break;case mP:for(te=this.network.vertexes.iterator;te.next();)a=te.value,a.Ll=-1,a.finish=-1;for(a=this.network.edges.iterator;a.next();)a.value.forest=!1;for(this.Kn=0,te.reset();te.next();)x=te.value,x.sourceEdges.count===0&&I5(this,x);for(te.reset();te.next();)x=te.value,x.Ll===-1&&I5(this,x);for(a.reset();a.next();)te=a.value,te.forest||(x=te.fromVertex,b=x.finish,re=te.toVertex,oe=re.finish,re.Ll<x.Ll&&b<oe&&(this.network.gm(te),te.rev=!0));break;case vP:for(a=this.network,x=a.vertexes.iterator,te=1/0;x.next();)te=Math.min(te,x.value.layer);if(1/0>te){if(0>te)for(x.reset();x.next();)x.value.layer-=te;for(te=[],x.reset();x.next();)b=x.value,re=te[b.layer],re===void 0?te[b.layer]=[b]:re.push(b);for(b=x=0;b<te.length;b++)if(re=te[b],!re||re.length===0)x++;else if(0<b)for(oe=0;oe<re.length;oe++)re[oe].layer-=x;for(te=a.edges.iterator;te.next();)x=te.value,x.fromVertex.layer<x.toVertex.layer&&(a.gm(x),x.rev=!0)}}};function c3(a){for(a=a.vertexes.iterator;a.next();){var x=a.value;if(x.valid)return x}return null}function S2(a){for(a=a.vertexes.iterator;a.next();){var x=a.value;if(x.valid){for(var b=!0,te=x.destinationEdges;te.next();)if(te.value.toVertex.valid){b=!1;break}if(b)return x}}return null}function h3(a){for(a=a.vertexes.iterator;a.next();){var x=a.value;if(x.valid){for(var b=!0,te=x.sourceEdges;te.next();)if(te.value.fromVertex.valid){b=!1;break}if(b)return x}}return null}function I5(a,x){x.Ll=a.Kn,a.Kn++;for(var b=x.destinationEdges;b.next();){var te=b.value,re=te.toVertex;re.Ll===-1&&(te.forest=!0,I5(a,re))}x.finish=a.Kn,a.Kn++}nl.prototype.assignLayers=function(){switch(this.Zk){case s1:P2(this);break;case M2:for(var a,x=this.network.vertexes.iterator;x.next();)a=d3(this,x.value),this.Ia=Math.max(a,this.Ia);for(x.reset();x.next();)a=x.value,a.layer=this.Ia-a.layer;break;default:case uE:for(P2(this),x=this.network.vertexes.iterator;x.next();)x.value.valid=!1;for(x.reset();x.next();)a=x.value,a.sourceEdges.count===0&&f3(this,a);for(a=1/0,x.reset();x.next();)a=Math.min(a,x.value.layer);for(this.Ia=-1,x.reset();x.next();){var b=x.value;b.layer-=a,this.Ia=Math.max(this.Ia,b.layer)}}};function P2(a){for(var x=a.network.vertexes.iterator;x.next();){var b=k5(a,x.value);a.Ia=Math.max(b,a.Ia)}}function k5(a,x){var b=0;if(x.layer===-1){for(var te=x.destinationEdges;te.next();){var re=te.value,oe=re.toVertex;re=a.linkMinLength(re),b=Math.max(b,k5(a,oe)+re)}x.layer=b}else b=x.layer;return b}function d3(a,x){var b=0;if(x.layer===-1){for(var te=x.sourceEdges;te.next();){var re=te.value,oe=re.fromVertex;re=a.linkMinLength(re),b=Math.max(b,d3(a,oe)+re)}x.layer=b}else b=x.layer;return b}function f3(a,x){if(!x.valid){x.valid=!0;for(var b=x.destinationEdges;b.next();)f3(a,b.value.toVertex);for(b=a.network.vertexes.iterator;b.next();)b.value.component=-1;for(var te=x.sourceEdgesArrayAccess,re=te.length,oe=0;oe<re;oe++){var le=te[oe],fe=le.fromVertex,ge=le.toVertex;le=a.linkMinLength(le),fe.layer-ge.layer>le&&BA(a,fe,0,-1,!0,!1)}for(BA(a,x,1,-1,!0,!0);x.component!==0;){for(oe=0,te=1/0,fe=0,ge=null,le=a.network.vertexes.iterator;le.next();){var ye=le.value;if(ye.component===1){var we=0,be=!1,ke=ye.sourceEdgesArrayAccess;re=ke.length;for(var Ue=0;Ue<re;Ue++){var Ve=ke[Ue],Ke=Ve.fromVertex;we+=1,Ke.component!==1&&(oe+=1,Ke=Ke.layer-ye.layer,Ve=a.linkMinLength(Ve),te=Math.min(te,Ke-Ve))}for(ke=ye.destinationEdgesArrayAccess,re=ke.length,Ue=0;Ue<re;Ue++)Ve=ke[Ue].toVertex,--we,Ve.component!==1?--oe:be=!0;(ge===null||we<fe)&&!be&&(ge=ye,fe=we)}}if(0<oe){for(b.reset();b.next();)re=b.value,re.component===1&&(re.layer+=te);x.component=0}else ge.component=0}for(b=a.network.vertexes.iterator;b.next();)b.value.component=-1;for(BA(a,x,1,-1,!0,!1);x.component!==0;){for(te=0,re=1/0,oe=0,fe=null,ge=a.network.vertexes.iterator;ge.next();)if(le=ge.value,le.component===1){for(ye=0,we=!1,ke=le.sourceEdgesArrayAccess,be=ke.length,Ue=0;Ue<be;Ue++)Ve=ke[Ue].fromVertex,ye+=1,Ve.component!==1?te+=1:we=!0;for(ke=le.destinationEdgesArrayAccess,be=ke.length,Ue=0;Ue<be;Ue++)Ve=ke[Ue],Ke=Ve.toVertex,--ye,Ke.component!==1&&(--te,Ke=le.layer-Ke.layer,Ve=a.linkMinLength(Ve),re=Math.min(re,Ke-Ve));(fe===null||ye>oe)&&!we&&(fe=le,oe=ye)}if(0>te){for(b.reset();b.next();)te=b.value,te.component===1&&(te.layer-=re);x.component=0}else fe.component=0}}}function p3(a,x,b){return a.K===90?b&&!x.rev||!b&&x.rev?270:90:a.K===180?b&&!x.rev||!b&&x.rev?0:180:a.K===270?b&&!x.rev||!b&&x.rev?90:270:b&&!x.rev||!b&&x.rev?180:0}nl.prototype.initializeIndices=function(){switch(this.Qk){default:case T2:for(var a=this.network.vertexes.iterator;a.next();){var x=a.value,b=x.layer;x.index=this.tc[b],this.tc[b]++}break;case cE:for(a=this.network.vertexes.iterator,x=this.Ia;0<=x;x--)for(a.reset();a.next();)b=a.value,b.layer===x&&b.index===-1&&jg(this,b);break;case B2:for(a=this.network.vertexes.iterator,x=0;x<=this.Ia;x++)for(a.reset();a.next();)b=a.value,b.layer===x&&b.index===-1&&iE(this,b)}};function jg(a,x){var b=x.layer;for(x.index=a.tc[b],a.tc[b]++,x=x.destinationEdgesArrayAccess,b=!0;b;){b=!1;for(var te=0;te<x.length-1;te++){var re=x[te],oe=x[te+1];re.portFromColOffset>oe.portFromColOffset&&(b=!0,x[te]=oe,x[te+1]=re)}}for(b=0;b<x.length;b++)te=x[b],te.valid&&(te=te.toVertex,te.index===-1&&jg(a,te))}function iE(a,x){var b=x.layer;x.index=a.tc[b],a.tc[b]++,x=x.sourceEdgesArrayAccess;for(var te=!0;te;)for(te=!1,b=0;b<x.length-1;b++){var re=x[b],oe=x[b+1];re.portToColOffset>oe.portToColOffset&&(te=!0,x[b]=oe,x[b+1]=re)}for(b=0;b<x.length;b++)te=x[b],te.valid&&(te=te.fromVertex,te.index===-1&&iE(a,te))}nl.prototype.reduceCrossings=function(){var a=this.countCrossings(),x=Nd(this),b,te;for(b=0;b<this.bj;b++){for(te=0;te<=this.Ia;te++)Ow(this,te,1),Kd(this,te,1);var re=this.countCrossings();for(re<a&&(a=re,x=Nd(this)),te=this.Ia;0<=te;te--)Ow(this,te,-1),Kd(this,te,-1);re=this.countCrossings(),re<a&&(a=re,x=Nd(this))}for(_f(this,x),b=0;b<this.bj;b++){for(te=0;te<=this.Ia;te++)Ow(this,te,0),Kd(this,te,0);for(re=this.countCrossings(),re<a&&(a=re,x=Nd(this)),te=this.Ia;0<=te;te--)Ow(this,te,0),Kd(this,te,0);re=this.countCrossings(),re<a&&(a=re,x=Nd(this))}_f(this,x);var oe,le,fe;switch(this.rk){case a1:break;case hE:for(fe=a+1;(te=this.countCrossings())<fe;)for(fe=te,b=this.Ia;0<=b;b--)for(le=0;le<=b;le++){for(oe=!0;oe;)for(oe=!1,te=b;te>=le;te--)oe=Kd(this,te,-1)||oe;for(re=this.countCrossings(),re>=a?_f(this,x):(a=re,x=Nd(this)),oe=!0;oe;)for(oe=!1,te=b;te>=le;te--)oe=Kd(this,te,1)||oe;for(re=this.countCrossings(),re>=a?_f(this,x):(a=re,x=Nd(this)),oe=!0;oe;)for(oe=!1,te=le;te<=b;te++)oe=Kd(this,te,1)||oe;for(re>=a?_f(this,x):(a=re,x=Nd(this)),oe=!0;oe;)for(oe=!1,te=le;te<=b;te++)oe=Kd(this,te,-1)||oe;for(re>=a?_f(this,x):(a=re,x=Nd(this)),oe=!0;oe;)for(oe=!1,te=b;te>=le;te--)oe=Kd(this,te,0)||oe;for(re>=a?_f(this,x):(a=re,x=Nd(this)),oe=!0;oe;)for(oe=!1,te=le;te<=b;te++)oe=Kd(this,te,0)||oe;re>=a?_f(this,x):(a=re,x=Nd(this))}break;default:case yP:for(b=this.Ia,le=0,fe=a+1;(te=this.countCrossings())<fe;){for(fe=te,oe=!0;oe;)for(oe=!1,te=b;te>=le;te--)oe=Kd(this,te,-1)||oe;for(re=this.countCrossings(),re>=a?_f(this,x):(a=re,x=Nd(this)),oe=!0;oe;)for(oe=!1,te=b;te>=le;te--)oe=Kd(this,te,1)||oe;for(re=this.countCrossings(),re>=a?_f(this,x):(a=re,x=Nd(this)),oe=!0;oe;)for(oe=!1,te=le;te<=b;te++)oe=Kd(this,te,1)||oe;for(re>=a?_f(this,x):(a=re,x=Nd(this)),oe=!0;oe;)for(oe=!1,te=le;te<=b;te++)oe=Kd(this,te,-1)||oe;for(re>=a?_f(this,x):(a=re,x=Nd(this)),oe=!0;oe;)for(oe=!1,te=b;te>=le;te--)oe=Kd(this,te,0)||oe;for(re>=a?_f(this,x):(a=re,x=Nd(this)),oe=!0;oe;)for(oe=!1,te=le;te<=b;te++)oe=Kd(this,te,0)||oe;re>=a?_f(this,x):(a=re,x=Nd(this))}}_f(this,x)};function Ow(a,x,b){var te=w0(a,x),re=a.tc[x],oe=nE(a,x,b),le=tE(a,x,b);for(b=0;b<re;b++)le[b]===-1&&(le[b]=te[b].column),oe[b]===-1&&(oe[b]=te[b].column);for(var fe=!0,ge;fe;)for(fe=!1,b=0;b<re-1;b++)(oe[b+1]<oe[b]||oe[b+1]===oe[b]&&le[b+1]<le[b])&&(fe=!0,ge=oe[b],oe[b]=oe[b+1],oe[b+1]=ge,ge=le[b],le[b]=le[b+1],le[b+1]=ge,ge=te[b],te[b]=te[b+1],te[b+1]=ge);for(b=oe=0;b<re;b++)ge=te[b],ge.index=b,oe+=a.nodeMinColumnSpace(ge,!0),ge.column=oe,oe+=1,oe+=a.nodeMinColumnSpace(ge,!1);my(a,x,te)}function Kd(a,x,b){var te=w0(a,x),re=a.tc[x];b=L5(a,x,b);var oe,le=[];for(oe=0;oe<re;oe++)le[oe]=-1;var fe=[];for(oe=0;oe<re;oe++)fe[oe]=-1;for(var ge=!1,ye=!0;ye;)for(ye=!1,oe=0;oe<re-1;oe++){var we=b[te[oe].index*re+te[oe+1].index],be=b[te[oe+1].index*re+te[oe].index],ke=0,Ue=0,Ve=te[oe].column,Ke=te[oe+1].column,Pt=a.nodeMinColumnSpace(te[oe],!0),ft=a.nodeMinColumnSpace(te[oe],!1),Nt=a.nodeMinColumnSpace(te[oe+1],!0),Lt=a.nodeMinColumnSpace(te[oe+1],!1);Pt=Ve-Pt+Nt,ft=Ke-ft+Lt;var Ut=te[oe].sourceEdges.iterator;for(Ut.reset();Ut.next();)if(Nt=Ut.value,Lt=Nt.fromVertex,Nt.valid&&Lt.layer===x){for(Nt=0;te[Nt]!==Lt;)Nt++;Nt<oe&&(ke+=2*(oe-Nt),Ue+=2*(oe+1-Nt)),Nt===oe+1&&(ke+=1),Nt>oe+1&&(ke+=4*(Nt-oe),Ue+=4*(Nt-(oe+1)))}for(Ut=te[oe].destinationEdges.iterator,Ut.reset();Ut.next();)if(Nt=Ut.value,Lt=Nt.toVertex,Nt.valid&&Lt.layer===x){for(Nt=0;te[Nt]!==Lt;)Nt++;Nt===oe+1&&(Ue+=1)}for(Ut=te[oe+1].sourceEdges.iterator,Ut.reset();Ut.next();)if(Nt=Ut.value,Lt=Nt.fromVertex,Nt.valid&&Lt.layer===x){for(Nt=0;te[Nt]!==Lt;)Nt++;Nt<oe&&(ke+=2*(oe+1-Nt),Ue+=2*(oe-Nt)),Nt===oe&&(Ue+=1),Nt>oe+1&&(ke+=4*(Nt-(oe+1)),Ue+=4*(Nt-oe))}for(Ut=te[oe+1].destinationEdges.iterator,Ut.reset();Ut.next();)if(Nt=Ut.value,Lt=Nt.toVertex,Nt.valid&&Lt.layer===x){for(Nt=0;te[Nt]!==Lt;)Nt++;Nt===oe&&(ke+=1)}Nt=Lt=0,Ut=le[te[oe].index];var tn=fe[te[oe].index],xn=le[te[oe+1].index],nr=fe[te[oe+1].index];Ut!==-1&&(Lt+=Math.abs(Ut-Ve),Nt+=Math.abs(Ut-ft)),tn!==-1&&(Lt+=Math.abs(tn-Ve),Nt+=Math.abs(tn-ft)),xn!==-1&&(Lt+=Math.abs(xn-Ke),Nt+=Math.abs(xn-Pt)),nr!==-1&&(Lt+=Math.abs(nr-Ke),Nt+=Math.abs(nr-Pt)),(Ue<ke-.5||Ue===ke&&be<we-.5||Ue===ke&&be===we&&Nt<Lt-.5)&&(ye=ge=!0,te[oe].column=ft,te[oe+1].column=Pt,we=te[oe],te[oe]=te[oe+1],te[oe+1]=we)}for(oe=0;oe<re;oe++)te[oe].index=oe;return my(a,x,te),ge}nl.prototype.straightenAndPack=function(){if(this.ve===0){var a=(this.bg&1)!==0,x=(this.bg&O5)!==0;if(1e3<this.network.edges.count&&x&&(a=!1),a){var b=[];for(x=0;x<=this.Ia;x++)b[x]=0;for(var te,re=this.network.vertexes.iterator;re.next();){var oe=re.value;x=oe.layer,te=oe.column,oe=this.nodeMinColumnSpace(oe,!1),b[x]=Math.max(b[x],te+oe)}for(re.reset();re.next();)oe=re.value,x=oe.layer,te=oe.column,oe.column=(8*(this.Ra-b[x])>>1)+8*te;this.Ra*=8}if(this.bg&2)for(b=!0;b;){for(b=!1,x=this.Md+1;x<=this.Ia;x++)b=av(this,x,1)||b;for(x=this.Md-1;0<=x;x--)b=av(this,x,-1)||b;b=av(this,this.Md,0)||b}if(this.bg&4){for(x=this.Md+1;x<=this.Ia;x++)fP(this,x,1);for(x=this.Md-1;0<=x;x--)fP(this,x,-1);fP(this,this.Md,0)}if(a&&(sE(this,-1),sE(this,1)),this.bg&2)for(b=!0;b;){for(b=!1,b=av(this,this.Md,0)||b,x=this.Md+1;x<=this.Ia;x++)b=av(this,x,0)||b;for(x=this.Md-1;0<=x;x--)b=av(this,x,0)||b}}else g3(this)};function av(a,x,b){for(var te=!1;o1(a,x,b);)te=!0;return te}function o1(a,x,b){var te,re=w0(a,x),oe=a.tc[x],le=tE(a,x,-1);if(0<b)for(te=0;te<oe;te++)le[te]=-1;var fe=tE(a,x,1);if(0>b)for(te=0;te<oe;te++)fe[te]=-1;for(var ge=!1,ye=!0;ye;)for(ye=!1,te=0;te<oe;te++){var we=re[te].column,be=a.nodeMinColumnSpace(re[te],!0),ke=a.nodeMinColumnSpace(re[te],!1),Ue=0;0>te-1||we-re[te-1].column-1>be+a.nodeMinColumnSpace(re[te-1],!1)?Ue=we-1:Ue=we,be=te+1>=oe||re[te+1].column-we-1>ke+a.nodeMinColumnSpace(re[te+1],!0)?we+1:we;var Ve=ke=0,Ke=0;if(0>=b)for(var Pt=re[te].sourceEdges.iterator;Pt.next();){var ft=Pt.value,Nt=ft.fromVertex;if(ft.valid&&Nt.layer!==x){var Lt=eE(ft),Ut=ft.portFromColOffset;ft=ft.portToColOffset,Nt=Nt.column,ke+=(Math.abs(we+ft-(Nt+Ut))+1)*Lt,Ve+=(Math.abs(Ue+ft-(Nt+Ut))+1)*Lt,Ke+=(Math.abs(be+ft-(Nt+Ut))+1)*Lt}}if(0<=b)for(Pt=re[te].destinationEdges.iterator;Pt.next();)ft=Pt.value,Nt=ft.toVertex,ft.valid&&Nt.layer!==x&&(Lt=eE(ft),Ut=ft.portFromColOffset,ft=ft.portToColOffset,Nt=Nt.column,ke+=(Math.abs(we+Ut-(Nt+ft))+1)*Lt,Ve+=(Math.abs(Ue+Ut-(Nt+ft))+1)*Lt,Ke+=(Math.abs(be+Ut-(Nt+ft))+1)*Lt);ft=Ut=Lt=0,Pt=le[re[te].index],Nt=fe[re[te].index],Pt!==-1&&(Lt+=Math.abs(Pt-we),Ut+=Math.abs(Pt-Ue),ft+=Math.abs(Pt-be)),Nt!==-1&&(Lt+=Math.abs(Nt-we),Ut+=Math.abs(Nt-Ue),ft+=Math.abs(Nt-be)),Ve<ke||Ve===ke&&Ut<Lt?(ye=ge=!0,re[te].column=Ue):(Ke<ke||Ke===ke&&ft<Lt)&&(ye=ge=!0,re[te].column=be)}return my(a,x,re),a.normalize(),ge}function fP(a,x,b){var te=w0(a,x),re=a.tc[x],oe=nE(a,x,b),le=[];for(b=0;b<re;b++)le[b]=oe[b];for(oe=!0;oe;)for(oe=!1,b=0;b<re;b++){var fe=te[b].column,ge=a.nodeMinColumnSpace(te[b],!0),ye=a.nodeMinColumnSpace(te[b],!1),we=0;if(le[b]===-1)if(b===0&&b===re-1)we=fe;else if(b===0){var be=te[b+1].column;be-fe===ye+a.nodeMinColumnSpace(te[b+1],!0)?we=fe-1:we=fe}else b===re-1?(be=te[b-1].column,we=fe-be===ge+a.nodeMinColumnSpace(te[b-1],!1)?fe+1:fe):(be=te[b-1].column,ge=be+a.nodeMinColumnSpace(te[b-1],!1)+ge+1,be=te[b+1].column,ye=be-a.nodeMinColumnSpace(te[b+1],!0)-ye-1,we=(ge+ye)/2|0);else b===0&&b===re-1?we=le[b]:b===0?(be=te[b+1].column,ye=be-a.nodeMinColumnSpace(te[b+1],!0)-ye-1,we=Math.min(le[b],ye)):b===re-1?(be=te[b-1].column,ge=be+a.nodeMinColumnSpace(te[b-1],!1)+ge+1,we=Math.max(le[b],ge)):(be=te[b-1].column,ge=be+a.nodeMinColumnSpace(te[b-1],!1)+ge+1,be=te[b+1].column,ye=be-a.nodeMinColumnSpace(te[b+1],!0)-ye-1,ge<le[b]&&le[b]<ye?we=le[b]:ge>=le[b]?we=ge:ye<=le[b]&&(we=ye));we!==fe&&(oe=!0,te[b].column=we)}my(a,x,te),a.normalize()}function rE(a,x){for(var b=!0,te=a.network.vertexes.iterator;te.next();){var re=te.value,oe=a.nodeMinColumnSpace(re,!0),le=a.nodeMinColumnSpace(re,!1);if(re.column-oe<=x&&re.column+le>=x){b=!1;break}}if(a=!1,b)for(te.reset();te.next();)b=te.value,b.column>x&&(--b.column,a=!0);return a}function oE(a,x){var b=x+1,te,re=[],oe=[];for(te=0;te<=a.Ia;te++)re[te]=!1,oe[te]=!1;for(var le=a.network.vertexes.iterator;le.next();){te=le.value;var fe=te.column-a.nodeMinColumnSpace(te,!0),ge=te.column+a.nodeMinColumnSpace(te,!1);fe<=x&&ge>=x&&(re[te.layer]=!0),fe<=b&&ge>=b&&(oe[te.layer]=!0)}for(fe=!0,b=!1,te=0;te<=a.Ia;te++)fe=fe&&!(re[te]&&oe[te]);if(fe)for(le.reset();le.next();)a=le.value,a.column>x&&(--a.column,b=!0);return b}function sE(a,x){for(var b=0;b<=a.Ra;b++)for(;rE(a,b););for(a.normalize(),b=0;b<a.Ra;b++)for(;oE(a,b););a.normalize();var te;if(0<x)for(b=0;b<=a.Ra;b++){var re=Nd(a),oe=Iw(a);for(te=oe+1;oe<te;){te=oe,pP(a,b,1);var le=Iw(a);le>oe?_f(a,re):le<oe&&(oe=le,re=Nd(a))}}if(0>x)for(b=a.Ra;0<=b;b--)for(re=Nd(a),oe=Iw(a),te=oe+1;oe<te;)te=oe,pP(a,b,-1),le=Iw(a),le>oe?_f(a,re):le<oe&&(oe=le,re=Nd(a));a.normalize()}function pP(a,x,b){a.le=0;for(var te=a.network.vertexes.iterator;te.next();)te.value.component=-1;if(0<b)for(te.reset();te.next();){var re=te.value;re.column-a.nodeMinColumnSpace(re,!0)<=x&&(re.component=a.le)}if(0>b)for(te.reset();te.next();)re=te.value,re.column+a.nodeMinColumnSpace(re,!1)>=x&&(re.component=a.le);for(a.le++,te.reset();te.next();)x=te.value,x.component===-1&&(kw(a,x,a.le,-1,!0,!0),a.le++);var oe;for(x=[],oe=0;oe<a.le*a.le;oe++)x[oe]=!1;for(re=[],oe=0;oe<(a.Ia+1)*(a.Ra+1);oe++)re[oe]=-1;for(te.reset();te.next();){oe=te.value;for(var le=oe.layer,fe=Math.max(0,oe.column-a.nodeMinColumnSpace(oe,!0)),ge=Math.min(a.Ra,oe.column+a.nodeMinColumnSpace(oe,!1));fe<=ge;fe++)re[le*(a.Ra+1)+fe]=oe.component}for(oe=0;oe<=a.Ia;oe++){if(0<b)for(le=0;le<a.Ra;le++)re[oe*(a.Ra+1)+le]!==-1&&re[oe*(a.Ra+1)+le+1]!==-1&&re[oe*(a.Ra+1)+le]!==re[oe*(a.Ra+1)+le+1]&&(x[re[oe*(a.Ra+1)+le]*a.le+re[oe*(a.Ra+1)+le+1]]=!0);if(0>b)for(le=a.Ra;0<le;le--)re[oe*(a.Ra+1)+le]!==-1&&re[oe*(a.Ra+1)+le-1]!==-1&&re[oe*(a.Ra+1)+le]!==re[oe*(a.Ra+1)+le-1]&&(x[re[oe*(a.Ra+1)+le]*a.le+re[oe*(a.Ra+1)+le-1]]=!0)}for(re=[],oe=0;oe<a.le;oe++)re[oe]=!0;for(le=[],le.push(0);le.length!==0;)if(ge=le[le.length-1],le.pop(),re[ge])for(re[ge]=!1,oe=0;oe<a.le;oe++)x[ge*a.le+oe]&&le.splice(0,0,oe);if(0<b)for(te.reset();te.next();)a=te.value,re[a.component]&&--a.column;if(0>b)for(te.reset();te.next();)b=te.value,re[b.component]&&(b.column+=1)}function g3(a){for(var x=ys(),b=a.fl.length,te=0;te<=b;te++)x[te]=[];for(te=a.network.vertexes.iterator;te.next();){var re=te.value;x[b-re.layer][re.index]=re}b=new Yi,lv(x,b);var oe=null,le=null,fe=null,ge=null,ye=(a.ve&1)!==0,we=(a.ve&2)!==0,be=(a.ve&4)!==0,ke=(a.ve&8)!==0;for(ye&&(a.verticalAlignment(x,b,!0),oe=aE(a,x,!0,!1)),x.reverse(),be&&(a.verticalAlignment(x,b,!1),fe=aE(a,x,!1,!1)),te=Si(x),re=te.next();!re.done;re=te.next())re.value.reverse();ke&&(a.verticalAlignment(x,b,!1),ge=aE(a,x,!1,!0)),x.reverse(),we&&(a.verticalAlignment(x,b,!0),le=aE(a,x,!0,!0)),As(x),a.u(oe,le,fe,ge),a.network.vertexes.each(function(Ue){var Ve=ys();ye&&Ve.push(oe.get(Ue)),we&&Ve.push(le.get(Ue)),be&&Ve.push(fe.get(Ue)),ke&&Ve.push(ge.get(Ue)),Ve.sort(function(Pt,ft){return Pt-ft});var Ke=Ve.length;Ke=(Ve[Math.floor((Ke-1)/2)]+Ve[Math.ceil((Ke-1)/2)])/2,As(Ve),Ue.zc=Ke})}function lv(a,x){for(var b=a.length,te=1;te<b-1;te++)for(var re=0,oe=0,le=a[te],fe=a[te+1],ge=0;oe<fe.length;ge++){var ye=fe[ge];e:{if(ye.node===null){var we=N2(ye);if(0<we.length){we=we[0].node===null;break e}}we=!1}var be=we;if(ge===fe.length-1||be){for(we=le.length-1,be&&(we=N2(ye)[0].index);oe<=ge;){if(ye=fe[oe],!ye.bo){be=[];for(var ke=Si(ye.sourceEdgesArrayAccess),Ue=ke.next();!Ue.done;Ue=ke.next())Ue=Ue.value,Ue.valid&&be.push(Ue);ye.bo=be}for(ye=Si(ye.bo),be=ye.next();!be.done;be=ye.next())be=be.value,ke=be.fromVertex.index,(ke<re||ke>we)&&x.add(be);oe++}re=we}}}nl.prototype.verticalAlignment=function(a,x,b){C2(a),a=Si(a);for(var te=a.next();!te.done;te=a.next()){var re=-1;te=Si(te.value);for(var oe=te.next();!oe.done;oe=te.next()){oe=oe.value;var le=b?N2(oe):F2(oe),fe=le.length;if(0<fe){le.sort(function(be,ke){return be.vi-ke.vi});var ge=(fe-1)/2;for(fe=Math.floor(ge),ge=Math.ceil(ge);fe<=ge;fe++)if(oe.align===oe){var ye=le[fe],we=void 0;we=b?u1(ye,oe):u1(oe,ye),!x.contains(we)&&re<ye.vi&&(ye.align=oe,oe.root=ye.root,oe.align=ye.root,re=ye.vi)}}}}};function C2(a){for(var x=0;x<a.length;x++)for(var b=a[x],te=0;te<b.length;te++){var re=b[te];re.root=re,re.align=re,re.Tz=x,re.vi=te}}function aE(a,x,b,te){for(var re=a.K===90||a.K===270,oe=Si(x),le=oe.next();!le.done;le=oe.next()){var fe=Si(le.value);for(le=fe.next();!le.done;le=fe.next())le=le.value,le.sd=le,le.shift=1/0,le.zc=NaN,le.qg=0}for(le=a.K===90||a.K===270,oe=Si(x),fe=oe.next();!fe.done;fe=oe.next()){fe=Si(fe.value);for(var ge=fe.next();!ge.done;ge=fe.next())if(ge=ge.value,ge.root===ge){for(var ye=0,we=ge;we.align!==ge;){var be=we.align,ke=le?we.width:we.height,Ue=le?be.width:be.height;if(b){var Ve=u1(we,be),Ke=Ve.portFromPos,Pt=Ve.portToPos;Ve.link!==null&&(we.node&&we.node!==Ve.link.fromNode&&(Ke=le?we.focusX:we.focusY),be.node&&be.node!==Ve.link.toNode&&(Pt=le?be.focusX:be.focusY))}else Ve=u1(be,we),Ke=Ve.portToPos,Pt=Ve.portFromPos,Ve.link!==null&&(we.node&&we.node!==Ve.link.toNode&&(Ke=le?we.focusX:we.focusY),be.node&&be.node!==Ve.link.fromNode&&(Pt=le?be.focusX:be.focusY));ke=te?we.qg+(ke-Ke)-(Ue-Pt):we.qg+Ke-Pt,be.qg=ke,ye=Math.min(ye,ke),we=we.align}we=ge;do we.qg=we.qg-ye,we=we.align;while(we!==ge)}}for(b=Si(x),le=b.next();!le.done;le=b.next())for(oe=Si(le.value),le=oe.next();!le.done;le=oe.next())le=le.value,le.root===le&&lE(a,le,x);for(b=0;b<x.length;b++)if(!(0>=x[b].length)&&(le=x[b][0],le.sd===le)){le.sd.shift===1/0&&(le.sd.shift=0),le=b,fe=0;do{for(oe=x[le][fe];oe.align!==oe.root;)oe=oe.align,le++,0<oe.vi&&(fe=gP(oe,x),fe.sd.shift=Math.min(fe.sd.shift,oe.sd.shift+oe.zc+oe.qg-(fe.zc+fe.qg+(re?fe.width:fe.height)+a.columnSpacing)));fe=oe.vi+1}while(le<x.length&&fe<x[le].length&&oe.sd===x[le][fe].sd)}for(a=new kn,x=Si(x),le=x.next();!le.done;le=x.next())for(b=Si(le.value),le=b.next();!le.done;le=b.next())le=le.value,le.zc=le.zc+le.sd.shift+le.qg,oe=re?le.width:le.height,a.add(le,te?-le.zc-oe:le.zc);return a}function lE(a,x,b){if(isNaN(x.zc)){x.zc=0;var te=x;do{if(0<te.vi){var re=gP(te,b),oe=re.root;lE(a,oe,b),x.sd===x&&(x.sd=oe.sd);var le=a.K===90||a.K===270?re.width:re.height;x.sd===oe.sd&&(x.zc=Math.max(x.zc,oe.zc+re.qg+le-te.qg+a.columnSpacing))}te=te.align}while(te!==x);for(;te.align!==x;)te=te.align,te.zc=x.zc,te.sd=x.sd}}function gP(a,x){var b=a.Tz;return a=a.vi,1>a&&hn("Could not determine previous vertex in layer"),x[b][a-1]}nl.prototype.u=function(a){for(var x=[],b=0;b<arguments.length;++b)x[b]=arguments[b];b=-1;for(var te=ys(),re=ys(),oe=1/0,le=0;4>le;le++)if(x[le]){var fe=E2(this,x[le],te,re,le);fe<oe&&(b=le,oe=fe)}for(oe={},le=0;4>le;oe={delta:oe.delta},le++)x[le]&&(oe.delta=le===0||le===2?te[b]-te[le]:re[b]-re[le],oe.delta!==0&&x[le].each(function(ge){return function(ye){ye.value+=ge.delta}}(oe)));As(te),As(re)};function E2(a,x,b,te,re){if(!x||x.count===0)return b[re]=0,te[re]=0,1/0;var oe=1/0,le=-1/0;return x.each(function(fe){var ge=fe.key;fe=fe.value,ge=a.K===90||a.K===270?ge.width:ge.height,fe<oe&&(oe=fe),fe+ge>le&&(le=fe+ge)}),b[re]=oe,te[re]=le,le-oe}nl.prototype.commitLayout=function(){if(this.setsPortSpots)for(var a=Rw(this,!0),x=Rw(this,!1),b=this.network.edges.iterator;b.next();){var te=b.value.link;te!==null&&(te.fromSpot=a,te.toSpot=x)}this.commitNodes(),this.Gu(),this.isRouting&&this.commitLinks()};function Rw(a,x){return a.K===270?x?Tl:ru:a.K===90?x?ru:Tl:a.K===180?x?pl:el:x?el:pl}nl.prototype.commitNodes=function(){this.he=[],this.Ld=[],this.Kd=[],this.Ta=[];for(var a=0;a<=this.Ia;a++)this.he[a]=0,this.Ld[a]=0,this.Kd[a]=0,this.Ta[a]=0;for(a=this.network.vertexes.iterator;a.next();){var x=a.value,b=x.layer;this.he[b]=Math.max(this.he[b],this.nodeMinLayerSpace(x,!0)),this.Ld[b]=Math.max(this.Ld[b],this.nodeMinLayerSpace(x,!1))}x=0,b=this.ie;for(var te=0;te<=this.Ia;te++){var re=b;0>=this.he[te]+this.Ld[te]&&(re=0),0<te&&(x+=re/2),this.K===90||this.K===0?(x+=this.Ld[te],this.Kd[te]=x,x+=this.he[te]):(x+=this.he[te],this.Kd[te]=x,x+=this.Ld[te]),te<this.Ia&&(x+=re/2),this.Ta[te]=x}for(b=x,x=this.arrangementOrigin,te=0;te<=this.Ia;te++)this.K===270?this.Kd[te]=x.y+this.Kd[te]:this.K===90?(this.Kd[te]=x.y+b-this.Kd[te],this.Ta[te]=b-this.Ta[te]):this.K===180?this.Kd[te]=x.x+this.Kd[te]:(this.Kd[te]=x.x+b-this.Kd[te],this.Ta[te]=b-this.Ta[te]);b=this.ve!==0,a.reset(),te=this.K===270||this.K===90;for(var oe=1/0,le=re=1/0,fe=-1/0;a.next();){var ge=a.value,ye=ge.layer,we=ge.column|0;te?(le=x.x+this.kc*we,ye=this.Kd[ye]):(le=this.Kd[ye],ye=x.y+this.kc*we),ge.centerX=le,ge.centerY=ye,b&&isFinite(ge.zc)&&(te?ge.node?ge.x=x.x+ge.zc:ge.centerX=x.x+ge.zc:ge.node?ge.y=x.y+ge.zc:ge.centerY=x.y+ge.zc),oe=Math.min(ge.x,oe),re=Math.min(ge.y,re),te?(le=oe,fe=Math.max(fe,ge.bounds.right)):(le=re,fe=Math.max(fe,ge.bounds.bottom))}for(this.xw=fe-le,oe=x.x-oe,x=x.y-re,this.Rf=new it(b&&te?0:oe,b&&!te?0:x),a.reset();a.next();)b=a.value,b.x+=oe,b.y+=x,b.commit()},nl.prototype.Gu=function(){for(var a=0,x=this.ie,b=0;b<=this.Ia;b++)a+=this.he[b],a+=this.Ld[b];a+=this.Ia*x,x=[],b=this.ve!==0?this.xw:this.kc*this.Ra;for(var te=this.maxLayer;0<=te;te--)this.K===270?te===0?x.push(new Yt(0,0,b,Math.abs(this.Ta[0]))):x.push(new Yt(0,this.Ta[te-1],b,Math.abs(this.Ta[te-1]-this.Ta[te]))):this.K===90?te===0?x.push(new Yt(0,this.Ta[0],b,Math.abs(this.Ta[0]-a))):x.push(new Yt(0,this.Ta[te],b,Math.abs(this.Ta[te-1]-this.Ta[te]))):this.K===180?te===0?x.push(new Yt(0,0,Math.abs(this.Ta[0]),b)):x.push(new Yt(this.Ta[te-1],0,Math.abs(this.Ta[te-1]-this.Ta[te]),b)):te===0?x.push(new Yt(this.Ta[0],0,Math.abs(this.Ta[0]-a),b)):x.push(new Yt(this.Ta[te],0,Math.abs(this.Ta[te-1]-this.Ta[te]),b));this.commitLayers(x,this.Rf)},nl.prototype.commitLayers=function(){},nl.prototype.commitLinks=function(){for(var a=this.network.edges.iterator,x;a.next();)x=a.value.link,x!==null&&(x.uh(),x.Fj(),x.zf());for(a.reset();a.next();)x=a.value.link,x!==null&&x.vg();for(a.reset();a.next();){var b=a.value;if(x=b.link,x!==null){x.uh();var te=x,re=te.fromNode,oe=te.toNode,le=te.fromPort,fe=te.toPort;if(re!==null){var ge=re.findVisibleNode();ge!==null&&ge!==re&&(re=ge,le=ge.port)}oe!==null&&(ge=oe.findVisibleNode(),ge!==null&&ge!==oe&&(oe=ge,fe=ge.port));var ye=x.computeSpot(!0,le);ge=x.computeSpot(!1,fe);var we=b.fromVertex,be=b.toVertex;if(b.valid)x.curve===fd&&x.pointsCount===4&&(we.column===be.column&&this.alignOption===0?(b=x.getLinkPoint(re,le,ye,!0,!1,oe,fe),fe=x.getLinkPoint(oe,fe,ge,!1,!1,re,le),b.w()||b.set(re.actualBounds.center),fe.w()||fe.set(oe.actualBounds.center),x.Fj(),x.yf(b.x,b.y),x.yf((2*b.x+fe.x)/3,(2*b.y+fe.y)/3),x.yf((b.x+2*fe.x)/3,(b.y+2*fe.y)/3),x.yf(fe.x,fe.y)):(b=te=!1,le!==null&&ye===Cs&&(te=!0),fe!==null&&ge===Cs&&(b=!0),(te||b)&&(ge=null,te&&(ge=x.getLinkPointFromPoint(re,le,le.ga(eo),x.i(3),!0),ge.w()||ge.set(re.actualBounds.center),x.L(0,ge.x,ge.y)),re=null,b&&(re=x.getLinkPointFromPoint(oe,fe,fe.ga(eo),x.i(0),!1),re.w()||re.set(oe.actualBounds.center),x.L(3,re.x,re.y)),ge&&(oe=x.i(2),x.L(1,(2*ge.x+oe.x)/3,(2*ge.y+oe.y)/3)),re&&(oe=x.i(1),x.L(2,(2*re.x+oe.x)/3,(2*re.y+oe.y)/3))))),x.zf();else if(we.layer===be.layer)x.zf();else{var ke=!1,Ue=!1,Ve=this.ie,Ke=x.firstPickIndex+1;if(x.isOrthogonal){Ue=!0;var Pt=x.pointsCount;4<Pt&&x.points.removeRange(2,Pt-3)}else if(x.curve===fd)ke=!0,Pt=x.pointsCount,4<Pt&&x.points.removeRange(2,Pt-3),Pt===4&&(Ke=2);else{Pt=x.pointsCount;var ft=ye===Cs,Nt=ge===Cs;2<Pt&&ft&&Nt?x.points.removeRange(1,Pt-2):3<Pt&&ft&&!Nt?x.points.removeRange(1,Pt-3):3<Pt&&!ft&&Nt?x.points.removeRange(2,Pt-2):4<Pt&&!ft&&!Nt&&x.points.removeRange(2,Pt-3)}if(b.rev){for(;be!==null&&we!==be;){var Lt=Pt=null;for(ft=be.sourceEdges.iterator;ft.next()&&(Nt=ft.value,Nt.link!==b.link||(Pt=Nt.fromVertex,Lt=Nt.toVertex,Pt.node!==null)););if(Pt===null)break;if(Pt!==we){ft=x.i(Ke-1).x,Nt=x.i(Ke-1).y;var Ut=Pt.centerX,tn=Pt.centerY;if(Ue)this.K===180||this.K===0?Ke===x.firstPickIndex+1?(x.m(Ke++,ft,Nt),x.m(Ke++,ft,tn)):(Lt!==null?Lt.centerY:Nt)!==tn&&(Lt=this.Ta[Pt.layer-1]+this.Rf.x,x.m(Ke++,Lt,Nt),x.m(Ke++,Lt,tn)):Ke===x.firstPickIndex+1?(x.m(Ke++,ft,Nt),x.m(Ke++,Ut,Nt)):(Lt!==null?Lt.centerX:ft)!==Ut&&(Lt=this.Ta[Pt.layer-1]+this.Rf.y,x.m(Ke++,ft,Lt),x.m(Ke++,Ut,Lt));else if(Ke===x.firstPickIndex+1){Lt=Math.max(10,this.he[be.layer]);var xn=Math.max(10,this.Ld[be.layer]);if(ke)this.K===180?Ut<=be.bounds.x?(be=be.bounds.x,x.m(Ke++,be-Lt,tn),x.m(Ke++,be,tn),x.m(Ke++,be+xn,tn)):(x.m(Ke++,Ut-Lt,tn),x.m(Ke++,Ut,tn),x.m(Ke++,Ut+xn,tn)):this.K===90?tn>=be.bounds.bottom?(be=be.bounds.y+be.bounds.height,x.m(Ke++,Ut,be+xn),x.m(Ke++,Ut,be),x.m(Ke++,Ut,be-Lt)):(x.m(Ke++,Ut,tn+xn),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,tn-Lt)):this.K===270?tn<=be.bounds.y?(be=be.bounds.y,x.m(Ke++,Ut,be-Lt),x.m(Ke++,Ut,be),x.m(Ke++,Ut,be+xn)):(x.m(Ke++,Ut,tn-Lt),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,tn+xn)):this.K===0&&(Ut>=be.bounds.right?(be=be.bounds.x+be.bounds.width,x.m(Ke++,be+xn,tn),x.m(Ke++,be,tn),x.m(Ke++,be-Lt,tn)):(x.m(Ke++,Ut+xn,tn),x.m(Ke++,Ut,tn),x.m(Ke++,Ut-Lt,tn)));else{x.m(Ke++,ft,Nt);var nr=0;this.K===180||this.K===0?((this.K===180?Ut>=be.bounds.right:Ut<=be.bounds.x)&&(nr=(this.K===0?-Lt:xn)/2),x.m(Ke++,ft+nr,tn)):((this.K===270?tn>=be.bounds.bottom:tn<=be.bounds.y)&&(nr=(this.K===90?-Lt:xn)/2),x.m(Ke++,Ut,Nt+nr)),x.m(Ke++,Ut,tn)}}else Lt=Math.max(10,this.he[Pt.layer]),xn=Math.max(10,this.Ld[Pt.layer]),ke?this.K===180?(x.m(Ke++,Ut-Lt-Ve,tn),x.m(Ke++,Math.min(Ut-Lt+Ve/2,Ut),tn),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,tn),x.m(Ke++,Math.max(Ut+xn-Ve/2,Ut),tn),x.m(Ke++,Ut+xn+Ve,tn)):this.K===90?(x.m(Ke++,Ut,tn+xn+Ve),x.m(Ke++,Ut,Math.max(tn+xn-Ve/2,tn)),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,Math.min(tn-Lt+Ve/2,tn)),x.m(Ke++,Ut,tn-Lt-Ve)):this.K===270?(x.m(Ke++,Ut,tn-Lt-Ve),x.m(Ke++,Ut,Math.min(tn-Lt+Ve/2,tn)),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,Math.max(tn+xn-Ve/2,tn)),x.m(Ke++,Ut,tn+xn+Ve)):(x.m(Ke++,Ut+xn+Ve,tn),x.m(Ke++,Math.max(Ut+xn-Ve/2,Ut),tn),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,tn),x.m(Ke++,Math.min(Ut-Lt+Ve/2,Ut),tn),x.m(Ke++,Ut-Lt-Ve,tn)):x.m(Ke++,Ut,tn)}be=Pt}(fe===null||ye!==Cs||Ue)&&(ft=x.i(Ke-1).x,Nt=x.i(Ke-1).y,Ut=x.i(Ke).x,tn=x.i(Ke).y,Ue?(Ve=this.Ld[we.layer],this.K===180||this.K===0?(Ue=Nt,Ue>=we.bounds.y&&Ue<=we.bounds.bottom&&(this.K===180?Ut>=we.bounds.x:Ut<=we.bounds.right)&&(be=we.centerX+(this.K===180?-Ve:Ve),Ue<we.bounds.y+we.bounds.height/2?Ue=we.bounds.y-this.kc/2:Ue=we.bounds.bottom+this.kc/2,x.m(Ke++,be,Nt),x.m(Ke++,be,Ue)),x.m(Ke++,Ut,Ue)):(Ue=ft,Ue>=we.bounds.x&&Ue<=we.bounds.right&&(this.K===270?tn>=we.bounds.y:tn<=we.bounds.bottom)&&(be=we.centerY+(this.K===270?-Ve:Ve),Ue<we.bounds.x+we.bounds.width/2?Ue=we.bounds.x-this.kc/2:Ue=we.bounds.right+this.kc/2,x.m(Ke++,ft,be),x.m(Ke++,Ue,be)),x.m(Ke++,Ue,tn)),x.m(Ke++,Ut,tn)):ke?(Lt=Math.max(10,this.he[we.layer]),xn=Math.max(10,this.Ld[we.layer]),this.K===180&&Ut>=we.bounds.x?(be=we.bounds.x+we.bounds.width,x.L(Ke-2,be,Nt),x.L(Ke-1,be+xn,Nt)):this.K===90&&tn<=we.bounds.bottom?(be=we.bounds.y,x.L(Ke-2,ft,be),x.L(Ke-1,ft,be-Lt)):this.K===270&&tn>=we.bounds.y?(be=we.bounds.y+we.bounds.height,x.L(Ke-2,ft,be),x.L(Ke-1,ft,be+xn)):this.K===0&&Ut<=we.bounds.right&&(be=we.bounds.x,x.L(Ke-2,be,Nt),x.L(Ke-1,be-Lt,Nt))):(Lt=Math.max(10,this.he[we.layer]),xn=Math.max(10,this.Ld[we.layer]),Ue=0,this.K===180||this.K===0?((this.K===180?Ut<=we.bounds.x:Ut>=we.bounds.right)&&(Ue=(this.K===0?xn:-Lt)/2),x.m(Ke++,Ut+Ue,Nt)):((this.K===270?tn<=we.bounds.y:tn>=we.bounds.bottom)&&(Ue=(this.K===90?xn:-Lt)/2),x.m(Ke++,ft,tn+Ue)),x.m(Ke++,Ut,tn)))}else{for(;we!==null&&we!==be;){for(Lt=Pt=null,we=we.destinationEdges.iterator;we.next()&&(ft=we.value,ft.link!==b.link||(Pt=ft.toVertex,Lt=ft.fromVertex,Lt.node!==null&&(Lt=null),Pt.node!==null)););if(Pt===null)break;Pt!==be&&(ft=x.i(Ke-1).x,Nt=x.i(Ke-1).y,Ut=Pt.centerX,tn=Pt.centerY,Ue?this.K===180||this.K===0?(Lt!==null?Lt.centerY:Nt)!==tn&&(Lt=this.Ta[Pt.layer]+this.Rf.x,Ke===x.firstPickIndex+1&&(Lt=this.K===0?Math.max(Lt,ft):Math.min(Lt,ft)),x.m(Ke++,Lt,Nt),x.m(Ke++,Lt,tn)):(Lt!==null?Lt.centerX:ft)!==Ut&&(Lt=this.Ta[Pt.layer]+this.Rf.y,Ke===x.firstPickIndex+1&&(Lt=this.K===90?Math.max(Lt,Nt):Math.min(Lt,Nt)),x.m(Ke++,ft,Lt),x.m(Ke++,Ut,Lt)):(Lt=Math.max(10,this.he[Pt.layer]),xn=Math.max(10,this.Ld[Pt.layer]),ke?this.K===180?(x.m(Ke++,Ut+xn+Ve,tn),x.m(Ke++,Math.max(Ut+xn-Ve/2,Ut),tn),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,tn),x.m(Ke++,Math.min(Ut-Lt+Ve/2,Ut),tn),x.m(Ke++,Ut-Lt-Ve,tn)):this.K===90?(x.m(Ke++,Ut,tn-Lt-Ve),x.m(Ke++,Ut,Math.min(tn-Lt+Ve/2,tn)),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,Math.max(tn+xn-Ve/2,tn)),x.m(Ke++,Ut,tn+xn+Ve)):this.K===270?(x.m(Ke++,Ut,tn+xn+Ve),x.m(Ke++,Ut,Math.max(tn+xn-Ve/2,tn)),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,Math.min(tn-Lt+Ve/2,tn)),x.m(Ke++,Ut,tn-Lt-Ve)):(x.m(Ke++,Ut-Lt-Ve,tn),x.m(Ke++,Math.min(Ut-Lt+Ve/2,Ut),tn),x.m(Ke++,Ut,tn),x.m(Ke++,Ut,tn),x.m(Ke++,Math.max(Ut+xn-Ve/2,Ut),tn),x.m(Ke++,Ut+xn+Ve,tn)):this.K===180?(x.m(Ke++,Ut+xn,tn),x.m(Ke++,Ut-Lt,tn)):this.K===90?(x.m(Ke++,Ut,tn-Lt),x.m(Ke++,Ut,tn+xn)):this.K===270?(x.m(Ke++,Ut,tn+xn),x.m(Ke++,Ut,tn-Lt)):(x.m(Ke++,Ut-Lt,tn),x.m(Ke++,Ut+xn,tn)))),we=Pt}Ue&&(ft=x.i(Ke-1).x,Nt=x.i(Ke-1).y,Ut=x.i(Ke).x,tn=x.i(Ke).y,this.K===180||this.K===0?Nt!==tn&&(Lt=this.K===0?Math.min(Math.max((Ut+ft)/2,this.Ta[be.layer]+this.Rf.x),Ut):Math.max(Math.min((Ut+ft)/2,this.Ta[be.layer]+this.Rf.x),Ut),x.m(Ke++,Lt,Nt),x.m(Ke++,Lt,tn)):ft!==Ut&&(Lt=this.K===90?Math.min(Math.max((tn+Nt)/2,this.Ta[be.layer]+this.Rf.y),tn):Math.max(Math.min((tn+Nt)/2,this.Ta[be.layer]+this.Rf.y),tn),x.m(Ke++,ft,Lt),x.m(Ke++,Ut,Lt)))}te!==null&&ke&&4<=x.pointsCount&&(le!==null&&(le=ye===Cs?x.getLinkPointFromPoint(re,le,le.ga(eo),x.i(3),!0):x.i(0),ye===Cs&&(ye=x.i(2),te=x.i(3),this.direction===90||this.direction===270?(x.L(1,(le.x+ye.x)/2,ye.y),x.L(2,te.x,(ye.y+te.y)/2)):(x.L(1,ye.x,(le.y+ye.y)/2),x.L(2,(ye.x+te.x)/2,te.y))),le.w()||le.set(re.actualBounds.center),x.L(0,le.x,le.y)),fe!==null&&(re=ge===Cs?x.getLinkPointFromPoint(oe,fe,fe.ga(eo),x.i(x.pointsCount-4),!1):x.i(x.pointsCount-1),ge===Cs&&(fe=x.i(x.pointsCount-3),ge=x.i(x.pointsCount-4),this.direction===90||this.direction===270?(x.L(x.pointsCount-2,(re.x+fe.x)/2,fe.y),x.L(x.pointsCount-2,ge.x,(fe.y+ge.y)/2)):(x.L(x.pointsCount-2,fe.x,(re.y+fe.y)/2),x.L(x.pointsCount-3,(fe.x+ge.x)/2,ge.y))),re.w()||re.set(oe.actualBounds.center),x.L(x.pointsCount-1,re.x,re.y))),x.zf(),b.commit()}}}this.avoidOrthogonalOverlaps()},nl.prototype.avoidOrthogonalOverlaps=function(){if(!(0>=this.linkSpacing)){for(var a=new Zi,x=this.network.edges.iterator;x.next();){var b=x.value.link;b!==null&&b.isOrthogonal&&!a.contains(b)&&a.add(b)}if(0<a.count)if(this.K===90||this.K===270){for(x=0,b=[],a=a.iterator;a.next();){var te=a.value;if(te!==null&&te.isOrthogonal)for(var re=2;re<te.pointsCount-3;re++){var oe=te.i(re),le=te.i(re+1);if(this.B(oe.y,le.y)&&!this.B(oe.x,le.x)){var fe=new vy;fe.layer=Math.floor(oe.y/2);var ge=te.i(0),ye=te.i(te.pointsCount-1);if(fe.first=ge.x*ge.x+ge.y,fe.jc=ye.x*ye.x+ye.y,fe.rd=Math.min(oe.x,le.x),fe.Ic=Math.max(oe.x,le.x),fe.index=re,fe.link=te,re+2<te.pointsCount){ge=te.i(re-1),ye=te.i(re+2);var we=0;ge.y<oe.y?we=ye.y<oe.y?3:oe.x<le.x?2:1:ge.y>oe.y&&(we=ye.y>oe.y?0:le.x<oe.x?2:1),fe.j=we}b.push(fe)}}}if(1<b.length)for(b.sort(this.Vx),a=0;a<b.length;){for(oe=b[a].layer,te=a+1;te<b.length&&b[te].layer===oe;)te++;if(1<te-a)for(oe=a;oe<te;){for(le=b[oe].Ic,re=a+1;re<te&&b[re].rd<le;)le=Math.max(le,b[re].Ic),re++;if(le=re-oe,1<le){for(this.zi(b,this.Js,oe,oe+le),we=1,fe=b[oe].jc,ge=oe;ge<re;ge++)ye=b[ge],ye.jc!==fe&&(we++,fe=ye.jc);this.zi(b,this.Ux,oe,oe+le);var be=1;for(fe=b[oe].first,ge=oe;ge<re;ge++)ye=b[ge],ye.first!==fe&&(be++,fe=ye.first);for(ge=!0,ye=be,we<be?(ge=!1,ye=we,fe=b[oe].jc,this.zi(b,this.Js,oe,oe+le)):fe=b[oe].first,we=0,be=oe;be<re;be++){var ke=b[be];(ge?ke.first:ke.jc)!==fe&&(we++,fe=ge?ke.first:ke.jc);var Ue=ke.link;oe=Ue.i(ke.index),le=Ue.i(ke.index+1);var Ve=this.linkSpacing*(we-(ye-1)/2);x++,Ue.uh(),Ue.L(ke.index,oe.x,oe.y+Ve),Ue.L(ke.index+1,le.x,le.y+Ve),Ue.zf()}}oe=re}a=te}}else{for(x=0,b=[],a=a.iterator;a.next();)if(te=a.value,te!==null&&te.isOrthogonal)for(re=2;re<te.pointsCount-3;re++)oe=te.i(re),le=te.i(re+1),this.B(oe.x,le.x)&&!this.B(oe.y,le.y)&&(fe=new vy,fe.layer=Math.floor(oe.x/2),ge=te.i(0),ye=te.i(te.pointsCount-1),fe.first=ge.x+ge.y*ge.y,fe.jc=ye.x+ye.y*ye.y,fe.rd=Math.min(oe.y,le.y),fe.Ic=Math.max(oe.y,le.y),fe.index=re,fe.link=te,re+2<te.pointsCount&&(ge=te.i(re-1),ye=te.i(re+2),we=0,ge.x<oe.x?we=ye.x<oe.x?3:oe.y<le.y?2:1:ge.x>oe.x&&(we=ye.x>oe.x?0:le.y<oe.y?2:1),fe.j=we),b.push(fe));if(1<b.length)for(b.sort(this.Vx),a=0;a<b.length;){for(oe=b[a].layer,te=a+1;te<b.length&&b[te].layer===oe;)te++;if(1<te-a)for(oe=a;oe<te;){for(le=b[oe].Ic,re=a+1;re<te&&b[re].rd<le;)le=Math.max(le,b[re].Ic),re++;if(le=re-oe,1<le){for(this.zi(b,this.Js,oe,oe+le),we=1,fe=b[oe].jc,ge=oe;ge<re;ge++)ye=b[ge],ye.jc!==fe&&(we++,fe=ye.jc);for(this.zi(b,this.Ux,oe,oe+le),be=1,fe=b[oe].first,ge=oe;ge<re;ge++)ye=b[ge],ye.first!==fe&&(be++,fe=ye.first);for(ge=!0,ye=be,we<be?(ge=!1,ye=we,fe=b[oe].jc,this.zi(b,this.Js,oe,oe+le)):fe=b[oe].first,we=0,be=oe;be<re;be++)ke=b[be],(ge?ke.first:ke.jc)!==fe&&(we++,fe=ge?ke.first:ke.jc),Ue=ke.link,oe=Ue.i(ke.index),le=Ue.i(ke.index+1),Ve=this.linkSpacing*(we-(ye-1)/2),x++,Ue.uh(),Ue.L(ke.index,oe.x+Ve,oe.y),Ue.L(ke.index+1,le.x+Ve,le.y),Ue.zf()}oe=re}a=te}}}},We=nl.prototype,We.Vx=function(a,x){return a instanceof vy&&x instanceof vy&&a!==x?a.layer<x.layer?-1:a.layer>x.layer?1:a.rd<x.rd?-1:a.rd>x.rd?1:a.Ic<x.Ic?-1:a.Ic>x.Ic?1:0:0},We.Ux=function(a,x){return a instanceof vy&&x instanceof vy&&a!==x?a.first<x.first?-1:a.first>x.first||a.j<x.j?1:a.j>x.j||a.rd<x.rd?-1:a.rd>x.rd?1:a.Ic<x.Ic?-1:a.Ic>x.Ic?1:0:0},We.Js=function(a,x){return a instanceof vy&&x instanceof vy&&a!==x?a.jc<x.jc?-1:a.jc>x.jc||a.j<x.j?1:a.j>x.j||a.rd<x.rd?-1:a.rd>x.rd?1:a.Ic<x.Ic?-1:a.Ic>x.Ic?1:0:0},We.B=function(a,x){return a-=x,-1<a&&1>a},We.zi=function(a,x,b,te){var re=a.length,oe=te-b;if(!(1>=oe))if((0>b||b>=re-1)&&hn("not in range 0 <= from < length: "+b),oe===2)te=a[b],re=a[b+1],0<x(te,re)&&(a[b]=re,a[b+1]=te);else if(b===0)if(te>=re)a.sort(x);else for(b=a.slice(0,te),b.sort(x),x=0;x<te;x++)a[x]=b[x];else if(te>=re)for(te=a.slice(b),te.sort(x),x=b;x<re;x++)a[x]=te[x-b];else for(re=a.slice(b,te),re.sort(x),x=b;x<te;x++)a[x]=re[x-b]};function w0(a,x){var b=a.tc[x];if(b>=a.He.length){for(var te=[],re=0;re<a.He.length;re++)te[re]=a.He[re];a.He=te}for(a.He[b]===void 0||a.He[b]===null?te=[]:(te=a.He[b],a.He[b]=null),a=a.fl[x],x=0;x<a.length;x++)b=a[x],te[b.index]=b;return te}function my(a,x,b){a.He[a.tc[x]]=b}pn.Object.defineProperties(nl.prototype,{layerSpacing:{get:function(){return this.ie},set:function(a){this.ie!==a&&0<=a&&(this.ie=a,this.C())}},columnSpacing:{get:function(){return this.kc},set:function(a){this.kc!==a&&0<a&&(this.kc=a,this.C())}},direction:{get:function(){return this.K},set:function(a){this.K!==a&&(a===0||a===90||a===180||a===270?(this.K=a,this.C()):hn("LayeredDigraphLayout.direction must be 0, 90, 180, or 270"))}},cycleRemoveOption:{get:function(){return this.Dk},set:function(a){this.Dk===a||a!==b2&&a!==mP&&a!==vP||(this.Dk=a,this.C())}},layeringOption:{get:function(){return this.Zk},set:function(a){this.Zk===a||a!==uE&&a!==s1&&a!==M2||(this.Zk=a,this.C())}},initializeOption:{get:function(){return this.Qk},set:function(a){this.Qk===a||a!==cE&&a!==B2&&a!==T2||(this.Qk=a,this.C())}},iterations:{get:function(){return this.bj},set:function(a){this.bj!==a&&0<=a&&(this.bj=a,this.C())}},aggressiveOption:{get:function(){return this.rk},set:function(a){this.rk===a||a!==a1&&a!==yP&&a!==hE||(this.rk=a,this.C())}},packOption:{get:function(){return this.bg},set:function(a){this.bg!==a&&0<=a&&8>a&&(this.bg=a,this.C())}},alignOption:{get:function(){return this.ve},set:function(a){this.ve!==a&&0<=a&&16>a&&(this.ve=a,this.C())}},setsPortSpots:{get:function(){return this.sf},set:function(a){this.sf!==a&&(this.sf=a,this.C())}},linkSpacing:{get:function(){return this.Cn},set:function(a){this.Cn!==a&&0<=a&&(this.Cn=a,this.C())}},maxLayer:{get:function(){return this.Ia}},maxIndex:{get:function(){return this.Iq}},maxColumn:{get:function(){return this.Ra}},minIndexLayer:{get:function(){return this.Hn}},maxIndexLayer:{get:function(){return this.Md}}});var mP=new Ni(nl,"CycleDepthFirst",0),b2=new Ni(nl,"CycleGreedy",1),vP=new Ni(nl,"CycleFromLayers",2),uE=new Ni(nl,"LayerOptimalLinkLength",0),s1=new Ni(nl,"LayerLongestPathSink",1),M2=new Ni(nl,"LayerLongestPathSource",2),cE=new Ni(nl,"InitDepthFirstOut",0),B2=new Ni(nl,"InitDepthFirstIn",1),T2=new Ni(nl,"InitNaive",2),a1=new Ni(nl,"AggressiveNone",0),yP=new Ni(nl,"AggressiveLess",1),hE=new Ni(nl,"AggressiveMore",2),O5=8;nl.className="LayeredDigraphLayout",nl.CycleDepthFirst=mP,nl.CycleGreedy=b2,nl.CycleFromLayers=vP,nl.LayerOptimalLinkLength=uE,nl.LayerLongestPathSink=s1,nl.LayerLongestPathSource=M2,nl.InitDepthFirstOut=cE,nl.InitDepthFirstIn=B2,nl.InitNaive=T2,nl.AggressiveNone=a1,nl.AggressiveLess=yP,nl.AggressiveMore=hE,nl.PackNone=0,nl.PackExpand=1,nl.PackStraighten=2,nl.PackMedian=4,nl.PackAll=15,nl.AlignNone=0,nl.AlignUpperLeft=1,nl.AlignUpperRight=2,nl.AlignLowerLeft=4,nl.AlignLowerRight=8,nl.AlignAll=15;function vy(){this.index=this.Ic=this.rd=this.jc=this.first=this.layer=0,this.link=null,this.j=0}vy.className="SegInfo";function l1(a){Nl.call(this,a)}vn(l1,Nl),l1.prototype.createVertex=function(){return new Nf(this)},l1.prototype.createEdge=function(){return new uv(this)},l1.className="LayeredDigraphNetwork";function Nf(a){_u.call(this,a),this.$n=this.bo=this.ao=this.co=null,this.Za=this.Ag=this.Ig=-1,this.u=NaN,this.F=null,this.valid=!1,this.finish=this.Ll=NaN,this.Dj=0,this.dv=this.ev=null}vn(Nf,_u);function D2(a,x){return a.index-x.index}function u1(a,x){if(!a.$n){for(var b=[],te=Si(a.destinationEdgesArrayAccess),re=te.next();!re.done;re=te.next())re=re.value,re.valid&&b.push(re);a.$n=b}for(a=Si(a.$n),b=a.next();!b.done;b=a.next())if(b=b.value,b.toVertex===x)return b;hn("Unable to find destination edge to given vertex")}function N2(a){if(!a.co){for(var x=[],b=Si(a.sourceEdgesArrayAccess),te=b.next();!te.done;te=b.next())te=te.value,te.valid&&x.push(te.fromVertex);x.sort(D2),a.co=x}return a.co}function F2(a){if(!a.ao){for(var x=[],b=Si(a.destinationEdgesArrayAccess),te=b.next();!te.done;te=b.next())te=te.value,te.valid&&x.push(te.toVertex);x.sort(D2),a.ao=x}return a.ao}Nf.prototype.Cl=function(a){_u.prototype.Cl.call(this,a),this.bo=this.co=null},Nf.prototype.Kl=function(a){_u.prototype.Kl.call(this,a),this.bo=this.co=null},Nf.prototype.zl=function(a){_u.prototype.zl.call(this,a),this.$n=this.ao=null},Nf.prototype.Jl=function(a){_u.prototype.Jl.call(this,a),this.$n=this.ao=null},pn.Object.defineProperties(Nf.prototype,{layer:{get:function(){return this.Ig},set:function(a){this.Ig!==a&&(this.Ig=a)}},column:{get:function(){return this.Ag},set:function(a){this.Ag!==a&&(this.Ag=a)}},index:{get:function(){return this.Za},set:function(a){this.Za!==a&&(this.Za=a)}},component:{get:function(){return this.u},set:function(a){this.u!==a&&(this.u=a)}},near:{get:function(){return this.F},set:function(a){this.F!==a&&(this.F=a)}}}),Nf.prototype.deleteDestinationEdge=Nf.prototype.Jl,Nf.prototype.addDestinationEdge=Nf.prototype.zl,Nf.prototype.deleteSourceEdge=Nf.prototype.Kl,Nf.prototype.addSourceEdge=Nf.prototype.Cl,Nf.className="LayeredDigraphVertex";function uv(a){cf.call(this,a),this.j=this.ia=this.Ha=!1,this.V=this.u=NaN,this.F=this.o=0}vn(uv,cf),pn.Object.defineProperties(uv.prototype,{fromVertex:{get:function(){return this.kd},set:function(a){this.kd!==a&&(this.kd=a)}},toVertex:{get:function(){return this.qd},set:function(a){this.qd!==a&&(this.qd=a)}},valid:{get:function(){return this.Ha},set:function(a){this.Ha!==a&&(this.Ha=a)}},rev:{get:function(){return this.ia},set:function(a){this.ia!==a&&(this.ia=a)}},forest:{get:function(){return this.j},set:function(a){this.j!==a&&(this.j=a)}},portFromPos:{get:function(){return this.u},set:function(a){this.u!==a&&(this.u=a)}},portToPos:{get:function(){return this.V},set:function(a){this.V!==a&&(this.V=a)}},portFromColOffset:{get:function(){return this.o},set:function(a){this.o!==a&&(this.o=a)}},portToColOffset:{get:function(){return this.F},set:function(a){this.F!==a&&(this.F=a)}}}),uv.className="LayeredDigraphEdge";function qs(a){vu.call(this),this.Ub=new Yi,this.Wn=SP,this.ud=_p,this.vo=fE,this.Bq=gE,this.$v=[],this.td=!0,this.Rb=jw,this.$d=new Dt(10,10).freeze();var x=new g1(this);this.W=new $f(x),this.Y=new $f(x),this.ru=[],a&&Object.assign(this,a)}vn(qs,vu),qs.prototype.cloneProtected=function(a){vu.prototype.cloneProtected.call(this,a),a.Wn=this.Wn,a.vo=this.vo,a.Bq=this.Bq,a.td=this.td,a.Rb=this.Rb,a.$d.assign(this.$d),a.W.copyInheritedPropertiesFrom(this.W),a.Y.copyInheritedPropertiesFrom(this.Y)},qs.prototype.qb=function(a){a.classType===qs?a.name.indexOf("Alignment")===0?this.alignment=a:a.name.indexOf("Arrangement")===0?this.arrangement=a:a.name.indexOf("Compaction")===0?this.compaction=a:a.name.indexOf("Path")===0?this.path=a:a.name.indexOf("Sorting")===0?this.sorting=a:a.name.indexOf("Style")===0?this.treeStyle=a:hn("Unknown enum value: "+a):vu.prototype.qb.call(this,a)},qs.prototype.createNetwork=function(){return new g1(this)},qs.prototype.makeNetwork=function(a){function x(te){if(te instanceof ar)return!te.isLinkLabel&&te.category!=="Comment";if(te instanceof Ui){var re=te.fromNode;return re===null||re.isLinkLabel||re.category==="Comment"?!1:(te=te.toNode,!(te===null||te.isLinkLabel||te.category==="Comment"))}return!1}var b=this.createNetwork();return a instanceof wn?(b.lg(a.nodes,!0,x),b.lg(a.links,!0,x)):a instanceof ts?b.lg(a.memberParts,!1,x):b.lg(a.iterator,!1,x),b},qs.prototype.doLayout=function(a){this.network===null&&(this.network=this.makeNetwork(a)),this.arrangement!==pE&&(this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin));var x=this.diagram;if(x===null&&a instanceof wn&&(x=a),this.path===SP&&x!==null?this.ud=x.isTreePathToChildren?_p:xy:this.ud=this.path===SP?_p:this.path,0<this.network.vertexes.count){for(this.network.Ko(),a=this.network.vertexes.iterator;a.next();)x=a.value,x.initialized=!1,x.level=0,x.parent=null,x.children=[];if(0<this.Ub.count){for(a=new Yi,x=this.Ub.iterator;x.next();){var b=x.value;b instanceof ar?(b=this.network.ki(b),b!==null&&a.add(b)):b instanceof $f&&a.add(b)}this.Ub=a}for(this.Ub.count===0&&this.findRoots(),a=this.Ub.copy().iterator;a.next();)x=a.value,x.initialized||(x.initialized=!0,c1(this,x));for(x=this.network.vertexes,a=null;a=R5(x),0<a.count;)x=TA(this,a),x!==null&&this.Ub.add(x),x.initialized=!0,c1(this,x),x=a;for(a=this.Ub.iterator;a.next();)x=a.value,x instanceof $f&&U5(this,x);for(a=this.Ub.iterator;a.next();)x=a.value,x instanceof $f&&H5(this,x);for(a=this.Ub.iterator;a.next();)x=a.value,x instanceof $f&&V5(this,x);if(this.Cu(),this.layerStyle===bP){for(a=[],x=this.network.vertexes.iterator;x.next();){b=x.value;var te=b.parent;te===null&&(te=b),te=te.angle===0||te.angle===180;var re=a[b.level];re===void 0&&(re=0),a[b.level]=Math.max(re,te?b.width:b.height)}for(x=0;x<a.length;x++)a[x]===void 0&&(a[x]=0);for(this.$v=a,x=this.network.vertexes.iterator;x.next();)b=x.value,te=b.parent,te===null&&(te=b),te.angle===0||te.angle===180?(te.angle===180&&(b.focusX+=a[b.level]-b.width),b.width=a[b.level]):(te.angle===270&&(b.focusY+=a[b.level]-b.height),b.height=a[b.level])}else if(this.layerStyle===mE)for(a=this.network.vertexes.iterator;a.next();){for(x=a.value,b=x.angle===0||x.angle===180,te=-1,re=0;re<x.children.length;re++){var oe=x.children[re];te=Math.max(te,b?oe.width:oe.height)}if(0<=te)for(re=0;re<x.children.length;re++)oe=x.children[re],b?(x.angle===180&&(oe.focusX+=te-oe.width),oe.width=te):(x.angle===270&&(oe.focusY+=te-oe.height),oe.height=te)}for(a=this.Ub.iterator;a.next();)x=a.value,x instanceof $f&&this.layoutTree(x);this.arrangeTrees(),this.updateParts()}this.network=null,this.Ub=new Yi,this.isValidLayout=!0};function R5(a){var x=new Yi;for(a=a.iterator;a.next();){var b=a.value;b.initialized||x.add(b)}return x}qs.prototype.findRoots=function(){for(var a=this.network.vertexes,x=a.iterator;x.next();){var b=x.value;switch(this.ud){case _p:b.sourceEdges.count===0&&this.Ub.add(b);break;case xy:b.destinationEdges.count===0&&this.Ub.add(b);break;default:hn("Unhandled path value "+this.ud.toString())}}this.Ub.count===0&&(a=TA(this,a),a!==null&&this.Ub.add(a))};function TA(a,x){var b=999999,te=null;for(x=x.iterator;x.next();){var re=x.value;switch(a.ud){case _p:re.sourceEdges.count<b&&(b=re.sourceEdges.count,te=re);break;case xy:re.destinationEdges.count<b&&(b=re.destinationEdges.count,te=re);break;default:hn("Unhandled path value "+a.ud.toString())}}return te}function c1(a,x){if(x!==null){switch(a.ud){case _p:if(0<x.destinationEdges.count){for(var b=new Zi,te=x.destinationVertexes;te.next();){var re=te.value;z5(a,x,re)&&b.add(re)}0<b.count&&(x.children=b.Fa())}break;case xy:if(0<x.sourceEdges.count){for(b=new Zi,te=x.sourceVertexes;te.next();)re=te.value,z5(a,x,re)&&b.add(re);0<b.count&&(x.children=b.Fa())}break;default:hn("Unhandled path value"+a.ud.toString())}for(b=x.children,te=b.length,re=0;re<te;re++){var oe=b[re];oe.initialized=!0,oe.level=x.level+1,oe.parent=x,a.Ub.remove(oe)}for(x=0;x<te;x++)c1(a,b[x])}}function z5(a,x,b){if(b.initialized){if(x===null)var te=!1;else{for(te=x.parent;te!==null&&te!==b;)te=te.parent;te=te===b}if(te||b.level>x.level)return!1;a.removeChild(b.parent,b)}return!0}qs.prototype.removeChild=function(a,x){if(a!==null&&x!==null){for(var b=a.children,te=0,re=0;re<b.length;re++)b[re]===x&&te++;if(0<te){te=Array(b.length-te);for(var oe=re=0;oe<b.length;oe++)b[oe]!==x&&(te[re++]=b[oe]);a.children=te}}};function U5(a,x){if(x!==null){a.initializeTreeVertexValues(x),x.alignment===Wg&&a.sortTreeVertexChildren(x);for(var b=0,te=x.childrenCount,re=0,oe=x.children,le=oe.length,fe=0;fe<le;fe++){var ge=oe[fe];U5(a,ge),b+=ge.descendantCount+1,te=Math.max(te,ge.maxChildrenCount),re=Math.max(re,ge.maxGenerationCount)}x.descendantCount=b,x.maxChildrenCount=te,x.maxGenerationCount=0<te?re+1:0}}function m3(a,x){switch(a.vo){default:case fE:return x.parent!==null?x.parent:a.W;case EP:return x.parent===null?a.W:x.parent.parent===null?a.Y:x.parent;case CP:return x.parent!==null?x.parent.parent!==null?x.parent.parent:a.Y:a.W;case ym:var b=!0;if(x.childrenCount===0)b=!1;else for(var te=x.children,re=te.length,oe=0;oe<re;oe++)if(0<te[oe].childrenCount){b=!1;break}return b&&x.parent!==null?a.Y:x.parent!==null?x.parent:a.W}}qs.prototype.initializeTreeVertexValues=function(a){if(a.copyInheritedPropertiesFrom(m3(this,a)),a.parent!==null&&a.parent.alignment===Wg){for(var x=a.angle,b=a.parent.children,te=0;te<b.length&&a!==b[te];)te++;te%2===0?te!==b.length-1&&(x=x===90?180:x===180?270:x===270?180:270):x=x===90?0:x===180?90:x===270?0:90,a.angle=x}a.initialized=!0};function H5(a,x){if(x!==null){a.assignTreeVertexValues(x),x=x.children;for(var b=x.length,te=0;te<b;te++)H5(a,x[te])}}qs.prototype.assignTreeVertexValues=function(){};function V5(a,x){if(x!==null){x.alignment!==Wg&&a.sortTreeVertexChildren(x),x=x.children;for(var b=x.length,te=0;te<b;te++)V5(a,x[te])}}qs.prototype.sortTreeVertexChildren=function(a){switch(a.sorting){case Uw:break;case PP:a.children.reverse();break;case Xg:a.children.sort(a.comparer);break;case Hw:a.children.sort(a.comparer),a.children.reverse();break;default:hn("Unhandled sorting value "+a.sorting.toString())}},qs.prototype.Cu=function(){if(this.comments)for(var a=this.network.vertexes.iterator;a.next();)this.addComments(a.value)},qs.prototype.addComments=function(a){var x=a.angle,b=a.parent,te=0,re=!1;b!==null&&(te=b.angle,re=b.alignment,re=yy(re)),x=x===90||x===270,te=te===90||te===270,b=a.childrenCount===0;var oe=0,le=0,fe=0,ge=a.commentSpacing;if(a.node!==null)for(var ye=a.node.Mu();ye.next();){var we=ye.value;we.category==="Comment"&&we.canLayout()&&(a.comments===null&&(a.comments=[]),a.comments.push(we),we.Va(),we=we.measuredBounds,x&&!b||!re&&!te&&b||re&&te&&b?(oe=Math.max(oe,we.width),le+=we.height+Math.abs(fe)):(oe+=we.width+Math.abs(fe),le=Math.max(le,we.height)),fe=ge)}a.comments!==null&&(x&&!b||!re&&!te&&b||re&&te&&b?(oe+=Math.abs(a.commentMargin),le=Math.max(0,le-a.height)):(le+=Math.abs(a.commentMargin),oe=Math.max(0,oe-a.width)),re=Yt.allocAt(0,0,a.bounds.width+oe,a.bounds.height+le),a.bounds=re,Yt.free(re))};function yy(a){return a===Vm||a===Wg||a===vm||a===$p}function AP(a){return a===Vm||a===Wg}function L2(a){var x=a.parent;if(x!==null){var b=x.alignment;if(yy(b)){if(AP(b)){for(x=x.children,b=0;b<x.length&&a!==x[b];)b++;return b%2===0}if(b===vm)return!0}}return!1}qs.prototype.layoutComments=function(a){if(a.comments!==null){var x=a.node.measuredBounds,b=a.parent,te=a.angle,re=0,oe=!1;b!==null&&(re=b.angle,oe=b.alignment,oe=yy(oe)),te=te===90||te===270,b=re===90||re===270;for(var le=a.childrenCount===0,fe=L2(a),ge=0,ye=a.comments,we=ye.length,be=it.alloc(),ke=0;ke<we;ke++){var Ue=ye[ke],Ve=Ue.measuredBounds;if(te&&!le||!oe&&!b&&le||oe&&b&&le){if(135<re&&!oe||b&&fe)if(0<=a.commentMargin)for(be.h(a.bounds.x-a.commentMargin-Ve.width,a.bounds.y+ge),Ue.move(be),Ue=Ue.Sd();Ue.next();){var Ke=Ue.value;Ke.fromSpot=pl,Ke.toSpot=el}else for(be.h(a.bounds.x+2*a.focus.x-a.commentMargin,a.bounds.y+ge),Ue.move(be),Ue=Ue.Sd();Ue.next();)Ke=Ue.value,Ke.fromSpot=el,Ke.toSpot=pl;else if(0<=a.commentMargin)for(be.h(a.bounds.x+2*a.focus.x+a.commentMargin,a.bounds.y+ge),Ue.move(be),Ue=Ue.Sd();Ue.next();)Ke=Ue.value,Ke.fromSpot=el,Ke.toSpot=pl;else for(be.h(a.bounds.x+a.commentMargin-Ve.width,a.bounds.y+ge),Ue.move(be),Ue=Ue.Sd();Ue.next();)Ke=Ue.value,Ke.fromSpot=pl,Ke.toSpot=el;ge=0<=a.commentSpacing?ge+(Ve.height+a.commentSpacing):ge+(a.commentSpacing-Ve.height)}else{if(135<re&&!oe||!b&&fe)if(0<=a.commentMargin)for(be.h(a.bounds.x+ge,a.bounds.y-a.commentMargin-Ve.height),Ue.move(be),Ue=Ue.Sd();Ue.next();)Ke=Ue.value,Ke.fromSpot=Tl,Ke.toSpot=ru;else for(be.h(a.bounds.x+ge,a.bounds.y+2*a.focus.y-a.commentMargin),Ue.move(be),Ue=Ue.Sd();Ue.next();)Ke=Ue.value,Ke.fromSpot=ru,Ke.toSpot=Tl;else if(0<=a.commentMargin)for(be.h(a.bounds.x+ge,a.bounds.y+2*a.focus.y+a.commentMargin),Ue.move(be),Ue=Ue.Sd();Ue.next();)Ke=Ue.value,Ke.fromSpot=ru,Ke.toSpot=Tl;else for(be.h(a.bounds.x+ge,a.bounds.y+a.commentMargin-Ve.height),Ue.move(be),Ue=Ue.Sd();Ue.next();)Ke=Ue.value,Ke.fromSpot=Tl,Ke.toSpot=ru;ge=0<=a.commentSpacing?ge+(Ve.width+a.commentSpacing):ge+(a.commentSpacing-Ve.width)}}if(it.free(be),x=ge-a.commentSpacing-(te?x.height:x.width),this.ud===_p)for(a=a.destinationEdges;a.next();)re=a.value.link,re===null||re.isAvoiding||(re.fromEndSegmentLength=0<x?x:NaN);else for(a=a.sourceEdges;a.next();)re=a.value.link,re===null||re.isAvoiding||(re.toEndSegmentLength=0<x?x:NaN)}},qs.prototype.layoutTree=function(a){if(a!==null){for(var x=a.children,b=x.length,te=0;te<b;te++)this.layoutTree(x[te]);switch(a.compaction){case Vw:j5(this,a);break;case p1:if(a.alignment===Wg)j5(this,a);else if(a.childrenCount===0)te=a.parent,b=!1,x=0,te!==null&&(x=te.angle,b=te.alignment,b=yy(b)),te=L2(a),a.S.h(0,0),a.Da.h(a.width,a.height),a.parent===null||a.comments===null||(x!==180&&x!==270||b)&&!te?a.la.h(0,0):x===180&&!b||(x===90||x===270)&&te?a.la.h(a.width-2*a.focus.x,0):a.la.h(0,a.height-2*a.focus.y),a.Yo=null,a.kp=null;else{var re=qp(a);x=re===90||re===270;var oe=0,le=a.children,fe=le.length;for(b=0;b<fe;b++)te=le[b],oe=Math.max(oe,x?te.Da.width:te.Da.height);var ge=a.alignment;te=ge===Um;var ye=ge===Hm,we=yy(ge),be=Math.max(0,a.breadthLimit);b=this.computeLayerSpacing(a);var ke=a.nodeSpacing,Ue=this.computeNodeIndent(a),Ve=a.rowSpacing,Ke=0;(te||ye||a.hm||a.im&&a.maxGenerationCount===1)&&(Ke=Math.max(0,a.rowIndent)),te=a.width;var Pt=a.height,ft=0,Nt=0,Lt=0,Ut=null,tn=null,xn=0,nr=0,Ir=0,br=0,Di=0,ii=0,os=0,Oo=0;if(we&&!AP(ge)&&135<re&&le.reverse(),AP(ge))if(1<fe)for(var Ha=0;Ha<fe;Ha++)Ha%2===0&&Ha!==fe-1&&(Oo=Math.max(Oo,x?le[Ha].Da.width:le[Ha].Da.height));else fe===1&&(Oo=x?le[0].Da.width:le[0].Da.height);if(we){switch(ge){case Vm:Nt=135>re?G5(this,a,le,Oo,ft,Nt):X5(this,a,le,Oo,ft,Nt),Oo=Nt.x,ft=Nt.width,Nt=Nt.height;break;case vm:for(Ut=0;Ut<fe;Ut++)tn=le[Ut],be=tn.Da,Lt=ii===0?0:Ve,x?(tn.S.h(oe-be.width,br+Lt),ft=Math.max(ft,be.width),Nt=Math.max(Nt,br+Lt+be.height),br+=Lt+be.height):(tn.S.h(Ir+Lt,oe-be.height),ft=Math.max(ft,Ir+Lt+be.width),Nt=Math.max(Nt,be.height),Ir+=Lt+be.width),ii++;break;case $p:for(Ut=0;Ut<fe;Ut++)tn=le[Ut],oe=tn.Da,be=ii===0?0:Ve,x?(tn.S.h(ke/2+a.focus.x,br+be),ft=Math.max(ft,oe.width),Nt=Math.max(Nt,br+be+oe.height),br+=be+oe.height):(tn.S.h(Ir+be,ke/2+a.focus.y),ft=Math.max(ft,Ir+be+oe.width),Nt=Math.max(Nt,oe.height),Ir+=be+oe.width),ii++}Ut=gd(this,2),tn=gd(this,2),x?(Ut[0].h(0,0),Ut[1].h(0,Nt),tn[0].h(ft,0)):(Ut[0].h(0,0),Ut[1].h(ft,0),tn[0].h(0,Nt)),tn[1].h(ft,Nt)}else for(Ha=0;Ha<fe;Ha++){var Ql=le[Ha],kc=Ql.Da;if(x){0<be&&0<ii&&Ir+ke+kc.width>be&&(Ir<oe&&DA(a,ge,oe-Ir,0,os,Ha-1),Di++,ii=0,os=Ha,Lt=Nt,Ir=0,br=135<re?-Nt-Ve:Nt+Ve),Ay(this,Ql,0,br);var uc=0;if(ii===0)Ut=Ql.Yo,tn=Ql.kp,xn=kc.width,nr=kc.height,(Ut===null||tn===null||re!==qp(Ql))&&(Ut=gd(this,2),tn=gd(this,2),Ut[0].h(0,0),Ut[1].h(0,nr),tn[0].h(xn,0),tn[1].h(xn,nr));else{var md=ys();nr=wP(this,a,Ql,Ut,tn,xn,nr,md),uc=nr.x,Ut=md[0],tn=md[1],xn=nr.width,nr=nr.height,As(md),Ir<kc.width&&0>uc&&(oh(a,-uc,0,os,Ha-1),xP(Ut,-uc,0),xP(tn,-uc,0),uc=0)}Ql.S.h(uc,br),ft=Math.max(ft,xn),Nt=Math.max(Nt,Lt+(Di===0?0:Ve)+kc.height),Ir=xn}else 0<be&&0<ii&&br+ke+kc.height>be&&(br<oe&&DA(a,ge,0,oe-br,os,Ha-1),Di++,ii=0,os=Ha,Lt=ft,br=0,Ir=135<re?-ft-Ve:ft+Ve),Ay(this,Ql,Ir,0),uc=0,ii===0?(Ut=Ql.Yo,tn=Ql.kp,xn=kc.width,nr=kc.height,(Ut===null||tn===null||re!==qp(Ql))&&(Ut=gd(this,2),tn=gd(this,2),Ut[0].h(0,0),Ut[1].h(xn,0),tn[0].h(0,nr),tn[1].h(xn,nr))):(md=ys(),nr=wP(this,a,Ql,Ut,tn,xn,nr,md),uc=nr.x,Ut=md[0],tn=md[1],xn=nr.width,nr=nr.height,As(md),br<kc.height&&0>uc&&(oh(a,0,-uc,os,Ha-1),xP(Ut,0,-uc),xP(tn,0,-uc),uc=0)),Ql.S.h(Ir,uc),Nt=Math.max(Nt,nr),ft=Math.max(ft,Lt+(Di===0?0:Ve)+kc.width),br=nr;ii++}switch(0<Di&&(x?(Nt+=Math.max(0,b),Ir<ft&&DA(a,ge,ft-Ir,0,os,fe-1),0<Ke&&(ye||oh(a,Ke,0,0,fe-1),ft+=Ke)):(ft+=Math.max(0,b),br<Nt&&DA(a,ge,0,Nt-br,os,fe-1),0<Ke&&(ye||oh(a,0,Ke,0,fe-1),Nt+=Ke))),Ke=ye=0,ge){case f1:x?ye+=ft/2-a.focus.x-Ue/2:Ke+=Nt/2-a.focus.y-Ue/2;break;case wy:0<Di?x?ye+=ft/2-a.focus.x-Ue/2:Ke+=Nt/2-a.focus.y-Ue/2:x?(Oo=le[0].S.x+le[0].la.x,ye+=Oo+(le[fe-1].S.x+le[fe-1].la.x+2*le[fe-1].focus.x-Oo)/2-a.focus.x-Ue/2):(Oo=le[0].S.y+le[0].la.y,Ke+=Oo+(le[fe-1].S.y+le[fe-1].la.y+2*le[fe-1].focus.y-Oo)/2-a.focus.y-Ue/2);break;case Um:x?(ye-=Ue,ft+=Ue):(Ke-=Ue,Nt+=Ue);break;case Hm:x?(ye+=ft-a.width+Ue,ft+=Ue):(Ke+=Nt-a.height+Ue,Nt+=Ue);break;case Vm:x?1<fe?ye+=Oo+ke/2-a.focus.x:ye+=le[0].focus.x-a.focus.x+le[0].la.x:1<fe?Ke+=Oo+ke/2-a.focus.y:Ke+=le[0].focus.y-a.focus.y+le[0].la.y;break;case vm:x?ye+=ft+ke/2-a.focus.x:Ke+=Nt+ke/2-a.focus.y;break;case $p:break;default:Nt=this.customAlignment(a,ye,Ke,ft,Nt),ye=Nt[0],Ke=Nt[1],ft=Nt[2],Nt=Nt[3]}for(Ue=0;Ue<fe;Ue++)Oo=le[Ue],x?Oo.S.h(Oo.S.x+Oo.la.x-ye,Oo.S.y+(135<re?(we?-Nt:-Oo.Da.height)+Oo.la.y-b:Pt+b+Oo.la.y)):Oo.S.h(Oo.S.x+(135<re?(we?-ft:-Oo.Da.width)+Oo.la.x-b:te+b+Oo.la.x),Oo.S.y+Oo.la.y-Ke);if(fe=le=0,we?x?(ft=I2(a,ft,ye),0>ye&&(ye=0),135<re&&(Ke+=Nt+b),Nt+=Pt+b,ge===$p&&(le+=ke/2+a.focus.x),fe+=Pt+b):(135<re&&(ye+=ft+b),ft+=te+b,Nt=dE(a,Nt,Ke),0>Ke&&(Ke=0),ge===$p&&(fe+=ke/2+a.focus.y),le+=te+b):x?(a.comments===null?te>ft&&(ft=h1(ge,te-ft,0),le=ft.x,fe=ft.y,ft=te,ye=0):ft=I2(a,ft,ye),0>ye&&(le-=ye,ye=0),135<re&&(Ke+=Nt+b),Nt=Math.max(Math.max(Nt,Pt),Nt+Pt+b),fe+=Pt+b):(135<re&&(ye+=ft+b),ft=Math.max(Math.max(ft,te),ft+te+b),a.comments===null?Pt>Nt&&(Nt=h1(ge,0,Pt-Nt),le=Nt.x,fe=Nt.y,Nt=Pt,Ke=0):Nt=dE(a,Nt,Ke),0>Ke&&(fe-=Ke,Ke=0),le+=te+b),0<Di)re=gd(this,4),Di=gd(this,4),x?(re[2].h(0,Pt+b),re[3].h(re[2].x,Nt),Di[2].h(ft,re[2].y),Di[3].h(Di[2].x,re[3].y)):(re[2].h(te+b,0),re[3].h(ft,re[2].y),Di[2].h(re[2].x,Nt),Di[3].h(re[3].x,Di[2].y));else{for(re=gd(this,Ut.length+2),Di=gd(this,tn.length+2),ge=0;ge<Ut.length;ge++)we=Ut[ge],re[ge+2].h(we.x+le,we.y+fe);for(ge=0;ge<tn.length;ge++)we=tn[ge],Di[ge+2].h(we.x+le,we.y+fe)}x?(re[0].h(ye,0),re[1].h(re[0].x,Pt),re[2].y<re[1].y&&(re[2].x>re[0].x?re[2].assign(re[1]):re[1].assign(re[2])),re[3].y<re[2].y&&(re[3].x>re[0].x?re[3].assign(re[2]):re[2].assign(re[3])),Di[0].h(ye+te,0),Di[1].h(Di[0].x,Pt),Di[2].y<Di[1].y&&(Di[2].x<Di[0].x?Di[2].assign(Di[1]):Di[1].assign(Di[2])),Di[3].y<Di[2].y&&(Di[3].x<Di[0].x?Di[3].assign(Di[2]):Di[2].assign(Di[3])),re[2].y-=b/2,Di[2].y-=b/2):(re[0].h(0,Ke),re[1].h(te,re[0].y),re[2].x<re[1].x&&(re[2].y>re[0].y?re[2].assign(re[1]):re[1].assign(re[2])),re[3].x<re[2].x&&(re[3].y>re[0].y?re[3].assign(re[2]):re[2].assign(re[3])),Di[0].h(0,Ke+Pt),Di[1].h(te,Di[0].y),Di[2].x<Di[1].x&&(Di[2].y<Di[0].y?Di[2].assign(Di[1]):Di[1].assign(Di[2])),Di[3].x<Di[2].x&&(Di[3].y<Di[0].y?Di[3].assign(Di[2]):Di[2].assign(Di[3])),re[2].x-=b/2,Di[2].x-=b/2),Gg(this,Ut),Gg(this,tn),a.Yo=re,a.kp=Di,a.la.h(ye,Ke),a.Da.h(ft,Nt)}break;default:hn("Unhandled compaction value "+a.compaction.toString())}}};function j5(a,x){if(x.childrenCount===0){var b=!1,te=0;x.parent!==null&&(te=x.parent.angle,b=x.parent.alignment,b=yy(b));var re=L2(x);x.S.h(0,0),x.Da.h(x.width,x.height),x.parent===null||x.comments===null||(te!==180&&te!==270||b)&&!re?x.la.h(0,0):te===180&&!b||(te===90||te===270)&&re?x.la.h(x.width-2*x.focus.x,0):x.la.h(0,x.height-2*x.focus.y)}else{te=qp(x),b=te===90||te===270;var oe=0;re=x.children;for(var le=re.length,fe=0;fe<le;fe++){var ge=re[fe];oe=Math.max(oe,b?ge.Da.width:ge.Da.height)}var ye=x.alignment,we=ye===Um,be=ye===Hm;fe=yy(ye);var ke=Math.max(0,x.breadthLimit);ge=a.computeLayerSpacing(x);var Ue=x.nodeSpacing,Ve=a.computeNodeIndent(x),Ke=we||be?0:Ve/2,Pt=x.rowSpacing,ft=0;(we||be||x.hm||x.im&&x.maxGenerationCount===1)&&(ft=Math.max(0,x.rowIndent)),we=x.width;var Nt=x.height,Lt=0,Ut=0,tn=0,xn=0,nr=0,Ir=0,br=0,Di=0,ii=0,os=0;if(fe&&!AP(ye)&&135<te&&re.reverse(),AP(ye))if(1<le)for(var Oo=0;Oo<le;Oo++){var Ha=re[Oo],Ql=Ha.Da;Oo%2===0&&Oo!==le-1?ii=Math.max(ii,(b?Ql.width:Ql.height)+a.computeBusNodeSpacing(Ha)-Ue):Oo%2!==0&&(os=Math.max(os,(b?Ql.width:Ql.height)+a.computeBusNodeSpacing(Ha)-Ue))}else le===1&&(ii=b?re[0].Da.width:re[0].Da.height);if(fe)switch(ye){case Vm:case Wg:Ut=135>te?G5(a,x,re,ii,Lt,Ut):X5(a,x,re,ii,Lt,Ut),ii=Ut.x,Lt=Ut.width,Ut=Ut.height;break;case vm:for(ke=0;ke<le;ke++)Ke=re[ke],tn=Ke.Da,os=br===0?0:Pt,b?(Ke.S.h(oe-tn.width,nr+os),Lt=Math.max(Lt,tn.width),Ut=Math.max(Ut,nr+os+tn.height),nr+=os+tn.height):(Ke.S.h(xn+os,oe-tn.height),Lt=Math.max(Lt,xn+os+tn.width),Ut=Math.max(Ut,tn.height),xn+=os+tn.width),br++;break;case $p:for(oe=0;oe<le;oe++)ke=re[oe],Ke=ke.Da,tn=br===0?0:Pt,b?(ke.S.h(Ue/2+x.focus.x,nr+tn),Lt=Math.max(Lt,Ke.width),Ut=Math.max(Ut,nr+tn+Ke.height),nr+=tn+Ke.height):(ke.S.h(xn+tn,Ue/2+x.focus.y),Lt=Math.max(Lt,xn+tn+Ke.width),Ut=Math.max(Ut,Ke.height),xn+=tn+Ke.width),br++}else for(os=0;os<le;os++)Oo=re[os],Ha=Oo.Da,b?(0<ke&&0<br&&xn+Ue+Ha.width>ke&&(xn<oe&&DA(x,ye,oe-xn,0,Di,os-1),Ir++,br=0,Di=os,tn=Ut,xn=0,nr=135<te?-Ut-Pt:Ut+Pt),Ql=br===0?Ke:Ue,Ay(a,Oo,0,nr),Oo.S.h(xn+Ql,nr),Lt=Math.max(Lt,xn+Ql+Ha.width),Ut=Math.max(Ut,tn+(Ir===0?0:Pt)+Ha.height),xn+=Ql+Ha.width):(0<ke&&0<br&&nr+Ue+Ha.height>ke&&(nr<oe&&DA(x,ye,0,oe-nr,Di,os-1),Ir++,br=0,Di=os,tn=Lt,nr=0,xn=135<te?-Lt-Pt:Lt+Pt),Ql=br===0?Ke:Ue,Ay(a,Oo,xn,0),Oo.S.h(xn,nr+Ql),Ut=Math.max(Ut,nr+Ql+Ha.height),Lt=Math.max(Lt,tn+(Ir===0?0:Pt)+Ha.width),nr+=Ql+Ha.height),br++;switch(0<Ir&&(b?(Ut+=Math.max(0,ge),xn<Lt&&DA(x,ye,Lt-xn,0,Di,le-1),0<ft&&(be||oh(x,ft,0,0,le-1),Lt+=ft)):(Lt+=Math.max(0,ge),nr<Ut&&DA(x,ye,0,Ut-nr,Di,le-1),0<ft&&(be||oh(x,0,ft,0,le-1),Ut+=ft))),ft=be=0,ye){case f1:b?be+=Lt/2-x.focus.x-Ve/2:ft+=Ut/2-x.focus.y-Ve/2;break;case wy:0<Ir?b?be+=Lt/2-x.focus.x-Ve/2:ft+=Ut/2-x.focus.y-Ve/2:b?(a=re[0].S.x+re[0].la.x,be+=a+(re[le-1].S.x+re[le-1].la.x+2*re[le-1].focus.x-a)/2-x.focus.x-Ve/2):(a=re[0].S.y+re[0].la.y,ft+=a+(re[le-1].S.y+re[le-1].la.y+2*re[le-1].focus.y-a)/2-x.focus.y-Ve/2);break;case Um:b?(be-=Ve,Lt+=Ve):(ft-=Ve,Ut+=Ve);break;case Hm:b?(be+=Lt-x.width+Ve,Lt+=Ve):(ft+=Ut-x.height+Ve,Ut+=Ve);break;case Vm:case Wg:b?1<le?be+=ii+Ue/2-x.focus.x:be+=re[0].focus.x-x.focus.x+re[0].la.x:1<le?ft+=ii+Ue/2-x.focus.y:ft+=re[0].focus.y-x.focus.y+re[0].la.y;break;case vm:b?be+=Lt+Ue/2-x.focus.x:ft+=Ut+Ue/2-x.focus.y;break;case $p:break;default:a=a.customAlignment(x,be,ft,Lt,Ut),be=a[0],ft=a[1],Lt=a[2],Ut=a[3]}for(a=0;a<le;a++)Ve=re[a],b?Ve.S.h(Ve.S.x+Ve.la.x-be,Ve.S.y+(135<te?(fe?-Ut:-Ve.Da.height)+Ve.la.y-ge:Nt+ge+Ve.la.y)):Ve.S.h(Ve.S.x+(135<te?(fe?-Lt:-Ve.Da.width)+Ve.la.x-ge:we+ge+Ve.la.x),Ve.S.y+Ve.la.y-ft);b?(Lt=I2(x,Lt,be),0>be&&(be=0),135<te&&(ft+=Ut+ge),Ut=Math.max(Math.max(Ut,Nt),Ut+Nt+ge)):(135<te&&(be+=Lt+ge),Lt=Math.max(Math.max(Lt,we),Lt+we+ge),Ut=dE(x,Ut,ft),0>ft&&(ft=0)),x.la.h(be,ft),x.Da.h(Lt,Ut)}}qs.prototype.customAlignment=function(a,x,b,te,re){return[x,b,te,re]};function G5(a,x,b,te,re,oe){var le=b.length;if(le===0)return new Yt(te,0,re,oe);if(le===1)return x=b[0],re=x.Da.width,oe=x.Da.height,new Yt(te,0,re,oe);for(var fe=x.nodeSpacing,ge=x.rowSpacing,ye=qp(x)===90,we=0,be=0,ke=0,Ue=0;Ue<le;Ue++)if(!(Ue%2!==0||1<le&&Ue===le-1)){var Ve=b[Ue],Ke=Ve.Da,Pt=we===0?0:ge;if(ye){var ft=a.computeBusNodeSpacing(Ve)-fe;Ve.S.h(te-(Ke.width+ft),ke+Pt),re=Math.max(re,Ke.width+ft),oe=Math.max(oe,ke+Pt+Ke.height),ke+=Pt+Ke.height}else ft=a.computeBusNodeSpacing(Ve)-fe,Ve.S.h(be+Pt,te-(Ke.height+ft)),oe=Math.max(oe,Ke.height+ft),re=Math.max(re,be+Pt+Ke.width),be+=Pt+Ke.width;we++}for(we=0,Ve=be,Ue=ke,ye?(be=te+fe,ke=0):(be=0,ke=te+fe),Ke=0;Ke<le;Ke++)if(Ke%2!==0){Pt=b[Ke],ft=Pt.Da;var Nt=we===0?0:ge;if(ye){var Lt=a.computeBusNodeSpacing(Pt)-fe;Pt.S.h(be+Lt,ke+Nt),re=Math.max(re,be+ft.width+Lt),oe=Math.max(oe,ke+Nt+ft.height),ke+=Nt+ft.height}else Lt=a.computeBusNodeSpacing(Pt)-fe,Pt.S.h(be+Nt,ke+Lt),re=Math.max(re,be+Nt+ft.width),oe=Math.max(oe,ke+ft.height+Lt),be+=Nt+ft.width;we++}return 1<le&&le%2===1&&(b=b[le-1],le=b.Da,a=a.computeBusLastRowSpacing(b,ye?Math.max(Math.abs(Ue),Math.abs(ke)):Math.max(Math.abs(Ve),Math.abs(be))),ye?(b.S.h(te+fe/2-b.focus.x-b.la.x,oe+a),ye=te+fe/2-b.focus.x-b.la.x,re=Math.max(re,ye+le.width),0>ye&&(re-=ye),oe=Math.max(oe,Math.max(Ue,ke)+a+le.height),0>b.S.x&&(te=zw(x,b.S.x,!1,te,fe))):(b.S.h(re+a,te+fe/2-b.focus.y-b.la.y),re=Math.max(re,Math.max(Ve,be)+a+le.width),ke=te+fe/2-b.focus.y-b.la.y,oe=Math.max(oe,ke+le.height),0>ke&&(oe-=ke),0>b.S.y&&(te=zw(x,b.S.y,!0,te,fe)))),new Yt(te,0,re,oe)}function X5(a,x,b,te,re,oe){var le=b.length;if(le===0)return new Yt(te,0,re,oe);if(le===1)return b=b[0],re=b.Da.width,oe=b.Da.height,new Yt(te,0,re,oe);for(var fe=x.nodeSpacing,ge=x.rowSpacing,ye=qp(x)===270,we=0,be=0,ke=0,Ue=0;Ue<le;Ue++)if(!(Ue%2!==0||1<le&&Ue===le-1)){var Ve=b[Ue],Ke=Ve.Da,Pt=we===0?0:ge;if(ye){var ft=a.computeBusNodeSpacing(Ve)-fe;ke-=Pt+Ke.height,Ve.S.h(te-(Ke.width+ft),ke),re=Math.max(re,Ke.width+ft),oe=Math.max(oe,Math.abs(ke))}else ft=a.computeBusNodeSpacing(Ve)-fe,be-=Pt+Ke.width,Ve.S.h(be,te-(Ke.height+ft)),oe=Math.max(oe,Ke.height+ft),re=Math.max(re,Math.abs(be));we++}for(we=0,Ve=be,Ue=ke,ye?(be=te+fe,ke=0):(be=0,ke=te+fe),Ke=0;Ke<le;Ke++)if(Ke%2!==0){Pt=b[Ke],ft=Pt.Da;var Nt=we===0?0:ge;if(ye){var Lt=a.computeBusNodeSpacing(Pt)-fe;ke-=Nt+ft.height,Pt.S.h(be+Lt,ke),re=Math.max(re,be+ft.width+Lt),oe=Math.max(oe,Math.abs(ke))}else Lt=a.computeBusNodeSpacing(Pt)-fe,be-=Nt+ft.width,Pt.S.h(be,ke+Lt),oe=Math.max(oe,ke+ft.height+Lt),re=Math.max(re,Math.abs(be));we++}for(1<le&&le%2===1&&(ge=b[le-1],we=ge.Da,a=a.computeBusLastRowSpacing(ge,ye?Math.max(Math.abs(Ue),Math.abs(ke)):Math.max(Math.abs(Ve),Math.abs(be))),ye?(ge.S.h(te+fe/2-ge.focus.x-ge.la.x,-oe-we.height-a),be=te+fe/2-ge.focus.x-ge.la.x,re=Math.max(re,be+we.width),0>be&&(re-=be),oe=Math.max(oe,Math.abs(Math.min(Ue,ke))+a+we.height),0>ge.S.x&&(te=zw(x,ge.S.x,!1,te,fe))):(ge.S.h(-re-we.width-a,te+fe/2-ge.focus.y-ge.la.y),re=Math.max(re,Math.abs(Math.min(Ve,be))+a+we.width),ke=te+fe/2-ge.focus.y-ge.la.y,oe=Math.max(oe,ke+we.height),0>ke&&(oe-=ke),0>ge.S.y&&(te=zw(x,ge.S.y,!0,te,fe)))),x=0;x<le;x++)fe=b[x],ye?fe.S.h(fe.S.x,fe.S.y+oe):fe.S.h(fe.S.x+re,fe.S.y);return new Yt(te,0,re,oe)}qs.prototype.computeBusNodeSpacing=function(a){return a.parent===null?0:a.parent.nodeSpacing},qs.prototype.computeBusLastRowSpacing=function(a){return a.parent===null?0:a.parent.rowSpacing};function zw(a,x,b,te,re){a=a.children;for(var oe=a.length,le=0;le<oe;le++)b?a[le].S.h(a[le].S.x,a[le].S.y-x):a[le].S.h(a[le].S.x-x,a[le].S.y);return x=a[oe-1],Math.max(te,b?x.la.y+x.focus.y-re/2:x.la.x+x.focus.x-re/2)}function I2(a,x,b){switch(a.alignment){case wy:case f1:return b+a.width>x&&(x=b+a.width),0>b&&(x-=b),x;case Um:return a.width>x?a.width:x;case Hm:return 2*a.focus.x>x?a.width:x+a.width-2*a.focus.x;case Vm:case Wg:return Math.max(a.width,Math.max(x,b+a.width)-Math.min(0,b));case vm:return a.width-a.focus.x+a.nodeSpacing/2+x;case $p:return Math.max(a.width,a.focus.x+a.nodeSpacing/2+x);default:return x}}function dE(a,x,b){switch(a.alignment){case wy:case f1:return b+a.height>x&&(x=b+a.height),0>b&&(x-=b),x;case Um:return a.height>x?a.height:x;case Hm:return 2*a.focus.y>x?a.height:x+a.height-2*a.focus.y;case Vm:case Wg:return Math.max(a.height,Math.max(x,b+a.height)-Math.min(0,b));case vm:return a.height-a.focus.y+a.nodeSpacing/2+x;case $p:return Math.max(a.height,a.focus.y+a.nodeSpacing/2+x);default:return x}}function h1(a,x,b){switch(a){case f1:x/=2,b/=2;break;case wy:x/=2,b/=2;break;case Um:b=x=0;break;case Hm:break;default:hn("Unhandled alignment value "+a.toString())}return new it(x,b)}function DA(a,x,b,te,re,oe){x=h1(x,b,te),oh(a,x.x,x.y,re,oe)}function oh(a,x,b,te,re){if(x!==0||b!==0)for(a=a.children;te<=re;te++){var oe=a[te].S;oe.x+=x,oe.y+=b}}function Ay(a,x,b,te){var re=x.parent;switch(a.ud){case _p:for(a=x.sourceEdges;a.next();)x=a.value,x.fromVertex===re&&x.relativePoint.h(b,te);break;case xy:for(a=x.destinationEdges;a.next();)x=a.value,x.toVertex===re&&x.relativePoint.h(b,te);break;default:hn("Unhandled path value "+a.ud.toString())}}function xP(a,x,b){for(var te=0;te<a.length;te++){var re=a[te];re.x+=x,re.y+=b}}function wP(a,x,b,te,re,oe,le,fe){var ge=qp(x),ye=ge===90||ge===270,we=x.nodeSpacing;x=te;var be=re;te=oe;var ke=le,Ue=b.Yo,Ve=b.kp;le=b.Da;var Ke=ye?Math.max(ke,le.height):Math.max(te,le.width);if((Ue===null||ge!==qp(b))&&(Ue=gd(a,2),Ve=gd(a,2),ye?(Ue[0].h(0,0),Ue[1].h(0,le.height),Ve[0].h(le.width,0),Ve[1].h(Ve[0].x,Ue[1].y)):(Ue[0].h(0,0),Ue[1].h(le.width,0),Ve[0].h(0,le.height),Ve[1].h(Ue[1].x,Ve[0].y))),ye){if(ke=9999999,!(be===null||2>be.length||Ue===null||2>Ue.length))for(re=b=0;b<be.length&&re<Ue.length;){oe=be[b];var Pt=Ue[re];ge=Pt.x,ye=Pt.y,ge+=te;var ft=oe;b+1<be.length&&(ft=be[b+1]);var Nt=Pt;Pt=Nt.x,Nt=Nt.y,re+1<Ue.length&&(Nt=Ue[re+1],Pt=Nt.x,Nt=Nt.y,Pt+=te);var Lt=ke;oe.y===ye?Lt=ge-oe.x:oe.y>ye&&oe.y<Nt?Lt=ge+(oe.y-ye)/(Nt-ye)*(Pt-ge)-oe.x:ye>oe.y&&ye<ft.y&&(Lt=ge-(oe.x+(ye-oe.y)/(ft.y-oe.y)*(ft.x-oe.x))),Lt<ke&&(ke=Lt),ft.y<=oe.y?b++:Nt<=ye?re++:(ft.y<=Nt&&b++,Nt<=ft.y&&re++)}if(ke=te-ke,ke+=we,b=Ue,re=ke,x===null||2>x.length||b===null||2>b.length)te=null;else{for(we=gd(a,x.length+b.length),te=oe=ge=0;oe<b.length&&b[oe].y<x[0].y;)ye=b[oe++],we[te++].h(ye.x+re,ye.y);for(;ge<x.length;)ye=x[ge++],we[te++].h(ye.x,ye.y);for(ge=x[x.length-1].y;oe<b.length&&b[oe].y<=ge;)oe++;for(;oe<b.length&&b[oe].y>ge;)ye=b[oe++],we[te++].h(ye.x+re,ye.y);for(b=gd(a,te),ge=0;ge<te;ge++)b[ge].assign(we[ge]);Gg(a,we),te=b}if(oe=Ve,ge=ke,be===null||2>be.length||oe===null||2>oe.length)re=null;else{for(we=gd(a,be.length+oe.length),re=ye=b=0;b<be.length&&be[b].y<oe[0].y;)ft=be[b++],we[re++].h(ft.x,ft.y);for(;ye<oe.length;)ft=oe[ye++],we[re++].h(ft.x+ge,ft.y);for(oe=oe[oe.length-1].y;b<be.length&&be[b].y<=oe;)b++;for(;b<be.length&&be[b].y>oe;)ge=be[b++],we[re++].h(ge.x,ge.y);for(oe=gd(a,re),b=0;b<re;b++)oe[b].assign(we[b]);Gg(a,we),re=oe}return oe=Math.max(0,ke)+le.width,le=Ke,Gg(a,x),Gg(a,Ue),Gg(a,be),Gg(a,Ve),fe[0]=te,fe[1]=re,new Yt(ke,0,oe,le)}if(te=9999999,!(be===null||2>be.length||Ue===null||2>Ue.length))for(re=b=0;b<be.length&&re<Ue.length;)oe=be[b],Pt=Ue[re],ge=Pt.x,ye=Pt.y,ye+=ke,ft=oe,b+1<be.length&&(ft=be[b+1]),Nt=Pt,Pt=Nt.x,Nt=Nt.y,re+1<Ue.length&&(Nt=Ue[re+1],Pt=Nt.x,Nt=Nt.y,Nt+=ke),Lt=te,oe.x===ge?Lt=ye-oe.y:oe.x>ge&&oe.x<Pt?Lt=ye+(oe.x-ge)/(Pt-ge)*(Nt-ye)-oe.y:ge>oe.x&&ge<ft.x&&(Lt=ye-(oe.y+(ge-oe.x)/(ft.x-oe.x)*(ft.y-oe.y))),Lt<te&&(te=Lt),ft.x<=oe.x?b++:Pt<=ge?re++:(ft.x<=Pt&&b++,Pt<=ft.x&&re++);if(ke-=te,ke+=we,b=Ue,re=ke,x===null||2>x.length||b===null||2>b.length)te=null;else{for(we=gd(a,x.length+b.length),te=oe=ge=0;oe<b.length&&b[oe].x<x[0].x;)ye=b[oe++],we[te++].h(ye.x,ye.y+re);for(;ge<x.length;)ye=x[ge++],we[te++].h(ye.x,ye.y);for(ge=x[x.length-1].x;oe<b.length&&b[oe].x<=ge;)oe++;for(;oe<b.length&&b[oe].x>ge;)ye=b[oe++],we[te++].h(ye.x,ye.y+re);for(b=gd(a,te),ge=0;ge<te;ge++)b[ge].assign(we[ge]);Gg(a,we),te=b}if(oe=Ve,ge=ke,be===null||2>be.length||oe===null||2>oe.length)re=null;else{for(we=gd(a,be.length+oe.length),re=ye=b=0;b<be.length&&be[b].x<oe[0].x;)ft=be[b++],we[re++].h(ft.x,ft.y);for(;ye<oe.length;)ft=oe[ye++],we[re++].h(ft.x,ft.y+ge);for(oe=oe[oe.length-1].x;b<be.length&&be[b].x<=oe;)b++;for(;b<be.length&&be[b].x>oe;)ge=be[b++],we[re++].h(ge.x,ge.y);for(oe=gd(a,re),b=0;b<re;b++)oe[b].assign(we[b]);Gg(a,we),re=oe}return oe=Ke,le=Math.max(0,ke)+le.height,Gg(a,x),Gg(a,Ue),Gg(a,be),Gg(a,Ve),fe[0]=te,fe[1]=re,new Yt(ke,0,oe,le)}function gd(a,x){if(a=a.ru[x],a!==void 0&&(a=a.pop(),a!==void 0))return a;a=[];for(var b=0;b<x;b++)a[b]=new it;return a}function Gg(a,x){var b=x.length,te=a.ru[b];te===void 0&&(te=[],a.ru[b]=te),te.push(x)}qs.prototype.arrangeTrees=function(){if(this.Rb===pE)for(var a=this.Ub.iterator;a.next();){var x=a.value;if(x instanceof $f){var b=x.node;if(b!==null){var te=b.position;b=te.x,te=te.y,isFinite(b)||(b=0),isFinite(te)||(te=0),d1(this,x,b,te)}}}else{for(a=[],x=this.Ub.iterator;x.next();)b=x.value,b instanceof $f&&a.push(b);switch(this.sorting){case Uw:break;case PP:a.reverse();break;case Xg:a.sort(this.comparer);break;case Hw:a.sort(this.comparer),a.reverse();break;default:hn("Unhandled sorting value "+this.sorting.toString())}for(b=this.arrangementOrigin,x=b.x,b=b.y,te=0;te<a.length;te++){var re=a[te];switch(d1(this,re,x+re.la.x,b+re.la.y),this.Rb){case jw:b+=re.Da.height+this.$d.height;break;case Gw:x+=re.Da.width+this.$d.width;break;default:hn("Unhandled arrangement value "+this.Rb.toString())}}}};function d1(a,x,b,te){if(x!==null){x.x=b,x.y=te,x=x.children;for(var re=x.length,oe=0;oe<re;oe++){var le=x[oe];d1(a,le,b+le.S.x,te+le.S.y)}}}qs.prototype.commitLayout=function(){this.yv(),this.commitNodes(),this.Gu(),this.isRouting&&this.commitLinks()},qs.prototype.commitNodes=function(){for(var a=this.network.vertexes.iterator;a.next();)a.value.commit();for(a.reset();a.next();)this.layoutComments(a.value)},qs.prototype.Gu=function(){if(this.layerStyle===bP){for(var a=this.$v,x=[],b=null,te=this.network.vertexes.iterator;te.next();){var re=te.value;b===null?b=re.bounds.copy():b.ed(re.bounds);var oe=x[re.level];oe===void 0?oe=this.computeLayerSpacing(re):oe=Math.max(oe,this.computeLayerSpacing(re)),x[re.level]=oe}for(te=0;te<x.length;te++)x[te]===void 0&&(x[te]=0);if(this.angle===90||this.angle===270?(b.Bc(this.nodeSpacing/2,this.layerSpacing),te=new it(-this.nodeSpacing/2,-this.layerSpacing/2)):(b.Bc(this.layerSpacing,this.nodeSpacing/2),te=new it(-this.layerSpacing/2,-this.nodeSpacing/2)),re=[],b=this.angle===90||this.angle===270?b.width:b.height,oe=0,this.angle===180||this.angle===270)for(var le=0;le<a.length;le++)oe+=a[le]+x[le];for(le=0;le<a.length;le++){var fe=a[le]+x[le];this.angle===270?(oe-=fe,re.push(new Yt(0,oe,b,fe))):this.angle===90?(re.push(new Yt(0,oe,b,fe)),oe+=fe):this.angle===180?(oe-=fe,re.push(new Yt(oe,0,fe,b))):(re.push(new Yt(oe,0,fe,b)),oe+=fe)}this.commitLayers(re,te)}},qs.prototype.commitLayers=function(){},qs.prototype.commitLinks=function(){for(var a=this.network.edges.iterator;a.next();)a.value.commit()},qs.prototype.yv=function(){for(var a=this.Ub.iterator;a.next();){var x=a.value;x instanceof $f&&W5(this,x)}};function W5(a,x){if(x!==null){a.setPortSpots(x),x=x.children;for(var b=x.length,te=0;te<b;te++)W5(a,x[te])}}qs.prototype.setPortSpots=function(a){var x=a.alignment;if(yy(x)){var b=this.ud===_p,te=qp(a);switch(te){case 0:var re=el;break;case 90:re=ru;break;case 180:re=pl;break;default:re=Tl}var oe=a.children,le=oe.length;switch(x){case Vm:case Wg:for(x=0;x<le;x++){var fe=oe[x];if(fe=(b?fe.sourceEdges:fe.destinationEdges).first(),fe!==null&&(fe=fe.link,fe!==null)){var ge=te===90||te===270?pl:Tl;if(le===1||x===le-1&&le%2===1)switch(te){case 0:ge=pl;break;case 90:ge=Tl;break;case 180:ge=el;break;default:ge=ru}else x%2===0&&(ge=te===90||te===270?el:ru);b?(a.setsPortSpot&&(fe.fromSpot=re),a.setsChildPortSpot&&(fe.toSpot=ge)):(a.setsPortSpot&&(fe.fromSpot=ge),a.setsChildPortSpot&&(fe.toSpot=re))}}break;case vm:for(te=te===90||te===270?el:ru,oe=b?a.destinationEdges:a.sourceEdges;oe.next();)le=oe.value.link,le!==null&&(b?(a.setsPortSpot&&(le.fromSpot=re),a.setsChildPortSpot&&(le.toSpot=te)):(a.setsPortSpot&&(le.fromSpot=te),a.setsChildPortSpot&&(le.toSpot=re)));break;case $p:for(te=te===90||te===270?pl:Tl,oe=b?a.destinationEdges:a.sourceEdges;oe.next();)le=oe.value.link,le!==null&&(b?(a.setsPortSpot&&(le.fromSpot=re),a.setsChildPortSpot&&(le.toSpot=te)):(a.setsPortSpot&&(le.fromSpot=te),a.setsChildPortSpot&&(le.toSpot=re)))}}else if(b=qp(a),this.ud===_p){for(re=a.destinationEdges;re.next();)if(te=re.value.link,te!==null){if(a.setsPortSpot)if(a.portSpot.Xb())switch(b){case 0:te.fromSpot=el;break;case 90:te.fromSpot=ru;break;case 180:te.fromSpot=pl;break;default:te.fromSpot=Tl}else te.fromSpot=a.portSpot;if(a.setsChildPortSpot)if(a.childPortSpot.Xb())switch(b){case 0:te.toSpot=pl;break;case 90:te.toSpot=Tl;break;case 180:te.toSpot=el;break;default:te.toSpot=ru}else te.toSpot=a.childPortSpot}}else for(re=a.sourceEdges;re.next();)if(te=re.value.link,te!==null){if(a.setsPortSpot)if(a.portSpot.Xb())switch(b){case 0:te.toSpot=el;break;case 90:te.toSpot=ru;break;case 180:te.toSpot=pl;break;default:te.toSpot=Tl}else te.toSpot=a.portSpot;if(a.setsChildPortSpot)if(a.childPortSpot.Xb())switch(b){case 0:te.fromSpot=pl;break;case 90:te.fromSpot=Tl;break;case 180:te.fromSpot=el;break;default:te.fromSpot=ru}else te.fromSpot=a.childPortSpot}};function qp(a){return a=a.angle,45>=a?0:135>=a?90:225>=a?180:315>=a?270:0}qs.prototype.computeLayerSpacing=function(a){var x=qp(a);x=x===90||x===270;var b=a.layerSpacing;if(0<a.layerSpacingParentOverlap){var te=Math.min(1,a.layerSpacingParentOverlap);b-=x?a.height*te:a.width*te}return b<(x?-a.height:-a.width)&&(b=x?-a.height:-a.width),b},qs.prototype.computeNodeIndent=function(a){var x=qp(a),b=a.nodeIndent;if(0<a.nodeIndentPastParent){var te=Math.min(1,a.nodeIndentPastParent);b+=x===90||x===270?a.width*te:a.height*te}return b=Math.max(0,b)},pn.Object.defineProperties(qs.prototype,{roots:{get:function(){return this.Ub},set:function(a){this.Ub!==a&&(this.Ub=a,this.C())}},path:{get:function(){return this.Wn},set:function(a){this.Wn!==a&&(this.Wn=a,this.C())}},treeStyle:{get:function(){return this.vo},set:function(a){this.Rb===a||a!==fE&&a!==CP&&a!==ym&&a!==EP||(this.vo=a,this.C())}},layerStyle:{get:function(){return this.Bq},set:function(a){this.Rb===a||a!==gE&&a!==mE&&a!==bP||(this.Bq=a,this.C())}},comments:{get:function(){return this.td},set:function(a){this.td!==a&&(this.td=a,this.C())}},arrangement:{get:function(){return this.Rb},set:function(a){this.Rb===a||a!==jw&&a!==Gw&&a!==pE||(this.Rb=a,this.C())}},arrangementSpacing:{get:function(){return this.$d},set:function(a){this.$d.D(a)||(this.$d.assign(a),this.C())}},rootDefaults:{get:function(){return this.W},set:function(a){this.W!==a&&(this.W=a,this.C())}},alternateDefaults:{get:function(){return this.Y},set:function(a){this.Y!==a&&(this.Y=a,this.C())}},sorting:{get:function(){return this.W.sorting},set:function(a){this.W.sorting===a||a!==Uw&&a!==PP&&a!==Xg&&!Hw||(this.W.sorting=a,this.C())}},comparer:{get:function(){return this.W.comparer},set:function(a){this.W.comparer!==a&&(this.W.comparer=a,this.C())}},angle:{get:function(){return this.W.angle},set:function(a){this.W.angle!==a&&(a===0||a===90||a===180||a===270?(this.W.angle=a,this.C()):hn("TreeLayout.angle must be 0, 90, 180, or 270"))}},alignment:{get:function(){return this.W.alignment},set:function(a){this.W.alignment!==a&&(this.W.alignment=a,this.C())}},nodeIndent:{get:function(){return this.W.nodeIndent},set:function(a){this.W.nodeIndent!==a&&0<=a&&(this.W.nodeIndent=a,this.C())}},nodeIndentPastParent:{get:function(){return this.W.nodeIndentPastParent},set:function(a){this.W.nodeIndentPastParent!==a&&0<=a&&1>=a&&(this.W.nodeIndentPastParent=a,this.C())}},nodeSpacing:{get:function(){return this.W.nodeSpacing},set:function(a){this.W.nodeSpacing!==a&&(this.W.nodeSpacing=a,this.C())}},layerSpacing:{get:function(){return this.W.layerSpacing},set:function(a){this.W.layerSpacing!==a&&(this.W.layerSpacing=a,this.C())}},layerSpacingParentOverlap:{get:function(){return this.W.layerSpacingParentOverlap},set:function(a){this.W.layerSpacingParentOverlap!==a&&0<=a&&1>=a&&(this.W.layerSpacingParentOverlap=a,this.C())}},compaction:{get:function(){return this.W.compaction},set:function(a){this.W.compaction===a||a!==Vw&&a!==p1||(this.W.compaction=a,this.C())}},breadthLimit:{get:function(){return this.W.breadthLimit},set:function(a){this.W.breadthLimit!==a&&0<=a&&(this.W.breadthLimit=a,this.C())}},rowSpacing:{get:function(){return this.W.rowSpacing},set:function(a){this.W.rowSpacing!==a&&(this.W.rowSpacing=a,this.C())}},rowIndent:{get:function(){return this.W.rowIndent},set:function(a){this.W.rowIndent!==a&&0<=a&&(this.W.rowIndent=a,this.C())}},commentSpacing:{get:function(){return this.W.commentSpacing},set:function(a){this.W.commentSpacing!==a&&(this.W.commentSpacing=a,this.C())}},commentMargin:{get:function(){return this.W.commentMargin},set:function(a){this.W.commentMargin!==a&&(this.W.commentMargin=a,this.C())}},setsPortSpot:{get:function(){return this.W.setsPortSpot},set:function(a){this.W.setsPortSpot!==a&&(this.W.setsPortSpot=a,this.C())}},portSpot:{get:function(){return this.W.portSpot},set:function(a){this.W.portSpot.D(a)||(this.W.portSpot=a,this.C())}},setsChildPortSpot:{get:function(){return this.W.setsChildPortSpot},set:function(a){this.W.setsChildPortSpot!==a&&(this.W.setsChildPortSpot=a,this.C())}},childPortSpot:{get:function(){return this.W.childPortSpot},set:function(a){this.W.childPortSpot.D(a)||(this.W.childPortSpot=a,this.C())}},alternateSorting:{get:function(){return this.Y.sorting},set:function(a){this.Y.sorting===a||a!==Uw&&a!==PP&&a!==Xg&&!Hw||(this.Y.sorting=a,this.C())}},alternateComparer:{get:function(){return this.Y.comparer},set:function(a){this.Y.comparer!==a&&(this.Y.comparer=a,this.C())}},alternateAngle:{get:function(){return this.Y.angle},set:function(a){this.Y.angle===a||a!==0&&a!==90&&a!==180&&a!==270||(this.Y.angle=a,this.C())}},alternateAlignment:{get:function(){return this.Y.alignment},set:function(a){this.Y.alignment!==a&&(this.Y.alignment=a,this.C())}},alternateNodeIndent:{get:function(){return this.Y.nodeIndent},set:function(a){this.Y.nodeIndent!==a&&0<=a&&(this.Y.nodeIndent=a,this.C())}},alternateNodeIndentPastParent:{get:function(){return this.Y.nodeIndentPastParent},set:function(a){this.Y.nodeIndentPastParent!==a&&0<=a&&1>=a&&(this.Y.nodeIndentPastParent=a,this.C())}},alternateNodeSpacing:{get:function(){return this.Y.nodeSpacing},set:function(a){this.Y.nodeSpacing!==a&&(this.Y.nodeSpacing=a,this.C())}},alternateLayerSpacing:{get:function(){return this.Y.layerSpacing},set:function(a){this.Y.layerSpacing!==a&&(this.Y.layerSpacing=a,this.C())}},alternateLayerSpacingParentOverlap:{get:function(){return this.Y.layerSpacingParentOverlap},set:function(a){this.Y.layerSpacingParentOverlap!==a&&0<=a&&1>=a&&(this.Y.layerSpacingParentOverlap=a,this.C())}},alternateCompaction:{get:function(){return this.Y.compaction},set:function(a){this.Y.compaction===a||a!==Vw&&a!==p1||(this.Y.compaction=a,this.C())}},alternateBreadthLimit:{get:function(){return this.Y.breadthLimit},set:function(a){this.Y.breadthLimit!==a&&0<=a&&(this.Y.breadthLimit=a,this.C())}},alternateRowSpacing:{get:function(){return this.Y.rowSpacing},set:function(a){this.Y.rowSpacing!==a&&(this.Y.rowSpacing=a,this.C())}},alternateRowIndent:{get:function(){return this.Y.rowIndent},set:function(a){this.Y.rowIndent!==a&&0<=a&&(this.Y.rowIndent=a,this.C())}},alternateCommentSpacing:{get:function(){return this.Y.commentSpacing},set:function(a){this.Y.commentSpacing!==a&&(this.Y.commentSpacing=a,this.C())}},alternateCommentMargin:{get:function(){return this.Y.commentMargin},set:function(a){this.Y.commentMargin!==a&&(this.Y.commentMargin=a,this.C())}},alternateSetsPortSpot:{get:function(){return this.Y.setsPortSpot},set:function(a){this.Y.setsPortSpot!==a&&(this.Y.setsPortSpot=a,this.C())}},alternatePortSpot:{get:function(){return this.Y.portSpot},set:function(a){this.Y.portSpot.D(a)||(this.Y.portSpot=a,this.C())}},alternateSetsChildPortSpot:{get:function(){return this.Y.setsChildPortSpot},set:function(a){this.Y.setsChildPortSpot!==a&&(this.Y.setsChildPortSpot=a,this.C())}},alternateChildPortSpot:{get:function(){return this.Y.childPortSpot},set:function(a){this.Y.childPortSpot.D(a)||(this.Y.childPortSpot=a,this.C())}}});var SP=new Ni(qs,"PathDefault",-1),_p=new Ni(qs,"PathDestination",0),xy=new Ni(qs,"PathSource",1),Uw=new Ni(qs,"SortingForwards",10),PP=new Ni(qs,"SortingReverse",11),Xg=new Ni(qs,"SortingAscending",12),Hw=new Ni(qs,"SortingDescending",13),f1=new Ni(qs,"AlignmentCenterSubtrees",20),wy=new Ni(qs,"AlignmentCenterChildren",21),Um=new Ni(qs,"AlignmentStart",22),Hm=new Ni(qs,"AlignmentEnd",23),Vm=new Ni(qs,"AlignmentBus",24),Wg=new Ni(qs,"AlignmentBusBranching",25),vm=new Ni(qs,"AlignmentTopLeftBus",26),$p=new Ni(qs,"AlignmentBottomRightBus",27),Vw=new Ni(qs,"CompactionNone",30),p1=new Ni(qs,"CompactionBlock",31),fE=new Ni(qs,"StyleLayered",40),ym=new Ni(qs,"StyleLastParents",41),CP=new Ni(qs,"StyleAlternating",42),EP=new Ni(qs,"StyleRootOnly",43),jw=new Ni(qs,"ArrangementVertical",50),Gw=new Ni(qs,"ArrangementHorizontal",51),pE=new Ni(qs,"ArrangementFixedRoots",52),gE=new Ni(qs,"LayerIndividual",60),mE=new Ni(qs,"LayerSiblings",61),bP=new Ni(qs,"LayerUniform",62);qs.className="TreeLayout",qs.PathDefault=SP,qs.PathDestination=_p,qs.PathSource=xy,qs.SortingForwards=Uw,qs.SortingReverse=PP,qs.SortingAscending=Xg,qs.SortingDescending=Hw,qs.AlignmentCenterSubtrees=f1,qs.AlignmentCenterChildren=wy,qs.AlignmentStart=Um,qs.AlignmentEnd=Hm,qs.AlignmentBus=Vm,qs.AlignmentBusBranching=Wg,qs.AlignmentTopLeftBus=vm,qs.AlignmentBottomRightBus=$p,qs.CompactionNone=Vw,qs.CompactionBlock=p1,qs.StyleLayered=fE,qs.StyleLastParents=ym,qs.StyleAlternating=CP,qs.StyleRootOnly=EP,qs.ArrangementVertical=jw,qs.ArrangementHorizontal=Gw,qs.ArrangementFixedRoots=pE,qs.LayerIndividual=gE,qs.LayerSiblings=mE,qs.LayerUniform=bP;function g1(a){Nl.call(this,a)}vn(g1,Nl),g1.prototype.createVertex=function(){return new $f(this)},g1.prototype.createEdge=function(){return new m1(this)},g1.className="TreeNetwork";function $f(a){_u.call(this,a),this.V=!1,this.hb=null,this.u=[],this.nb=this.Ha=this.F=this.ia=0,this.td=null,this.S=new it(0,0),this.Da=new Dt(0,0),this.la=new it(0,0),this.im=this.hm=this.qA=!1,this.kp=this.Yo=null,this.nd=Uw,this.hd=xw,this.Kb=0,this.Jb=wy,this.Vq=this.Uq=0,this.Wq=20,this.ie=50,this.Aq=0,this.Hp=p1,this.Ap=0,this.nr=25,this.Gp=this.mr=10,this.Fp=20,this.xr=!0,this.dr=Bl,this.wr=!0,this.Dp=Bl}vn($f,_u),$f.prototype.copyInheritedPropertiesFrom=function(a){a!==null&&(this.nd=a.sorting,this.hd=a.comparer,this.Kb=a.angle,this.Jb=a.alignment,this.Uq=a.nodeIndent,this.Vq=a.nodeIndentPastParent,this.Wq=a.nodeSpacing,this.ie=a.layerSpacing,this.Aq=a.layerSpacingParentOverlap,this.Hp=a.compaction,this.Ap=a.breadthLimit,this.nr=a.rowSpacing,this.mr=a.rowIndent,this.Gp=a.commentSpacing,this.Fp=a.commentMargin,this.xr=a.setsPortSpot,this.dr=a.portSpot,this.wr=a.setsChildPortSpot,this.Dp=a.childPortSpot)},pn.Object.defineProperties($f.prototype,{initialized:{get:function(){return this.V},set:function(a){this.V!==a&&(this.V=a)}},parent:{get:function(){return this.hb},set:function(a){this.hb!==a&&(this.hb=a)}},children:{get:function(){return this.u},set:function(a){if(this.u!==a){if(a!==null)for(var x=a.length,b=0;b<x;b++);this.u=a}}},level:{get:function(){return this.ia},set:function(a){this.ia!==a&&(this.ia=a)}},descendantCount:{get:function(){return this.F},set:function(a){this.F!==a&&(this.F=a)}},maxChildrenCount:{get:function(){return this.Ha},set:function(a){this.Ha!==a&&(this.Ha=a)}},maxGenerationCount:{get:function(){return this.nb},set:function(a){this.nb!==a&&(this.nb=a)}},comments:{get:function(){return this.td},set:function(a){if(this.td!==a){if(a!==null)for(var x=a.length,b=0;b<x;b++);this.td=a}}},sorting:{get:function(){return this.nd},set:function(a){this.nd!==a&&(this.nd=a)}},comparer:{get:function(){return this.hd},set:function(a){this.hd!==a&&(this.hd=a)}},angle:{get:function(){return this.Kb},set:function(a){this.Kb!==a&&(this.Kb=a)}},alignment:{get:function(){return this.Jb},set:function(a){this.Jb!==a&&(this.Jb=a)}},nodeIndent:{get:function(){return this.Uq},set:function(a){this.Uq!==a&&(this.Uq=a)}},nodeIndentPastParent:{get:function(){return this.Vq},set:function(a){this.Vq!==a&&(this.Vq=a)}},nodeSpacing:{get:function(){return this.Wq},set:function(a){this.Wq!==a&&(this.Wq=a)}},layerSpacing:{get:function(){return this.ie},set:function(a){this.ie!==a&&(this.ie=a)}},layerSpacingParentOverlap:{get:function(){return this.Aq},set:function(a){this.Aq!==a&&(this.Aq=a)}},compaction:{get:function(){return this.Hp},set:function(a){this.Hp!==a&&(this.Hp=a)}},breadthLimit:{get:function(){return this.Ap},set:function(a){this.Ap!==a&&(this.Ap=a)}},rowSpacing:{get:function(){return this.nr},set:function(a){this.nr!==a&&(this.nr=a)}},rowIndent:{get:function(){return this.mr},set:function(a){this.mr!==a&&(this.mr=a)}},commentSpacing:{get:function(){return this.Gp},set:function(a){this.Gp!==a&&(this.Gp=a)}},commentMargin:{get:function(){return this.Fp},set:function(a){this.Fp!==a&&(this.Fp=a)}},setsPortSpot:{get:function(){return this.xr},set:function(a){this.xr!==a&&(this.xr=a)}},portSpot:{get:function(){return this.dr},set:function(a){this.dr.D(a)||(this.dr=a)}},setsChildPortSpot:{get:function(){return this.wr},set:function(a){this.wr!==a&&(this.wr=a)}},childPortSpot:{get:function(){return this.Dp},set:function(a){this.Dp.D(a)||(this.Dp=a)}},childrenCount:{get:function(){return this.children.length}},relativePosition:{get:function(){return this.S},set:function(a){this.S.set(a)}},subtreeSize:{get:function(){return this.Da},set:function(a){this.Da.set(a)}},subtreeOffset:{get:function(){return this.la},set:function(a){this.la.set(a)}}}),$f.className="TreeVertex";function m1(a){cf.call(this,a),this.$t=new it(0,0)}vn(m1,cf),m1.prototype.commit=function(){var a=this.link;if(a!==null&&!a.isAvoiding){var x=this.network.layout,b=null,te=null;switch(x.ud){case _p:b=this.fromVertex,te=this.toVertex;break;case xy:b=this.toVertex,te=this.fromVertex;break;default:hn("Unhandled path value "+x.ud.toString())}if(b!==null&&te!==null){var re=this.$t;if(re.x!==0||re.y!==0||b.qA){te=b.bounds;var oe=qp(b),le=x.computeLayerSpacing(b),fe=b.rowSpacing;a.vg();var ge=a.curve===fd,ye=a.isOrthogonal,we;if(a.uh(),ye||ge){for(we=2;4<a.pointsCount;)a.pv(2);var be=a.i(1),ke=a.i(2)}else{for(we=1;3<a.pointsCount;)a.pv(1);be=a.i(0),ke=a.i(a.pointsCount-1)}var Ue=a.i(a.pointsCount-1);oe===0?(b.alignment===Hm?(oe=te.bottom+re.y,re.y===0&&be.y>Ue.y+b.rowIndent&&(oe=Math.min(oe,Math.max(be.y,oe-x.computeNodeIndent(b))))):b.alignment===Um?(oe=te.top+re.y,re.y===0&&be.y<Ue.y-b.rowIndent&&(oe=Math.max(oe,Math.min(be.y,oe+x.computeNodeIndent(b))))):oe=b.hm||b.im&&b.maxGenerationCount===1?te.top-b.la.y+re.y:te.y+te.height/2+re.y,ge?(a.m(we,be.x,oe),we++,a.m(we,te.right+le,oe),we++,a.m(we,te.right+le+(re.x-fe)/3,oe),we++,a.m(we,te.right+le+2*(re.x-fe)/3,oe),we++,a.m(we,te.right+le+(re.x-fe),oe),we++,a.m(we,ke.x,oe)):(ye&&(a.m(we,te.right+le/2,be.y),we++),a.m(we,te.right+le/2,oe),we++,a.m(we,te.right+le+re.x-(ye?fe/2:fe),oe),we++,ye&&a.m(we,a.i(we-1).x,ke.y))):oe===90?(b.alignment===Hm?(oe=te.right+re.x,re.x===0&&be.x>Ue.x+b.rowIndent&&(oe=Math.min(oe,Math.max(be.x,oe-x.computeNodeIndent(b))))):b.alignment===Um?(oe=te.left+re.x,re.x===0&&be.x<Ue.x-b.rowIndent&&(oe=Math.max(oe,Math.min(be.x,oe+x.computeNodeIndent(b))))):oe=b.hm||b.im&&b.maxGenerationCount===1?te.left-b.la.x+re.x:te.x+te.width/2+re.x,ge?(a.m(we,oe,be.y),we++,a.m(we,oe,te.bottom+le),we++,a.m(we,oe,te.bottom+le+(re.y-fe)/3),we++,a.m(we,oe,te.bottom+le+2*(re.y-fe)/3),we++,a.m(we,oe,te.bottom+le+(re.y-fe)),we++,a.m(we,oe,ke.y)):(ye&&(a.m(we,be.x,te.bottom+le/2),we++),a.m(we,oe,te.bottom+le/2),we++,a.m(we,oe,te.bottom+le+re.y-(ye?fe/2:fe)),we++,ye&&a.m(we,ke.x,a.i(we-1).y))):oe===180?(b.alignment===Hm?(oe=te.bottom+re.y,re.y===0&&be.y>Ue.y+b.rowIndent&&(oe=Math.min(oe,Math.max(be.y,oe-x.computeNodeIndent(b))))):b.alignment===Um?(oe=te.top+re.y,re.y===0&&be.y<Ue.y-b.rowIndent&&(oe=Math.max(oe,Math.min(be.y,oe+x.computeNodeIndent(b))))):oe=b.hm||b.im&&b.maxGenerationCount===1?te.top-b.la.y+re.y:te.y+te.height/2+re.y,ge?(a.m(we,be.x,oe),we++,a.m(we,te.left-le,oe),we++,a.m(we,te.left-le+(re.x+fe)/3,oe),we++,a.m(we,te.left-le+2*(re.x+fe)/3,oe),we++,a.m(we,te.left-le+(re.x+fe),oe),we++,a.m(we,ke.x,oe)):(ye&&(a.m(we,te.left-le/2,be.y),we++),a.m(we,te.left-le/2,oe),we++,a.m(we,te.left-le+re.x+(ye?fe/2:fe),oe),we++,ye&&a.m(we,a.i(we-1).x,ke.y))):oe===270?(b.alignment===Hm?(oe=te.right+re.x,re.x===0&&be.x>Ue.x+b.rowIndent&&(oe=Math.min(oe,Math.max(be.x,oe-x.computeNodeIndent(b))))):b.alignment===Um?(oe=te.left+re.x,re.x===0&&be.x<Ue.x-b.rowIndent&&(oe=Math.max(oe,Math.min(be.x,oe+x.computeNodeIndent(b))))):oe=b.hm||b.im&&b.maxGenerationCount===1?te.left-b.la.x+re.x:te.x+te.width/2+re.x,ge?(a.m(we,oe,be.y),we++,a.m(we,oe,te.top-le),we++,a.m(we,oe,te.top-le+(re.y+fe)/3),we++,a.m(we,oe,te.top-le+2*(re.y+fe)/3),we++,a.m(we,oe,te.top-le+(re.y+fe)),we++,a.m(we,oe,ke.y)):(ye&&(a.m(we,be.x,te.top-le/2),we++),a.m(we,oe,te.top-le/2),we++,a.m(we,oe,te.top-le+re.y+(ye?fe/2:fe)),we++,ye&&a.m(we,ke.x,a.i(we-1).y))):hn("Invalid angle "+oe),a.zf()}else re=te,a=this.link,te=this.network.layout,x=qp(b),x!==qp(re)&&(le=te.computeLayerSpacing(b),fe=b.bounds,b=re.bounds,x===0&&b.left-fe.right<le+1||x===90&&b.top-fe.bottom<le+1||x===180&&fe.left-b.right<le+1||x===270&&fe.top-b.bottom<le+1||(a.vg(),b=a.curve===fd,re=a.isOrthogonal,te=yy(this.fromVertex.alignment),a.uh(),x===0?(x=fe.right+le/2,b?a.pointsCount===4&&(b=a.i(3).y,a.L(1,x-20,a.i(1).y),a.m(2,x-20,b),a.m(3,x,b),a.m(4,x+20,b),a.L(5,a.i(5).x,b)):re?te?a.L(3,a.i(2).x,a.i(4).y):a.pointsCount===6&&(a.L(2,x,a.i(2).y),a.L(3,x,a.i(3).y)):a.pointsCount===4?a.m(2,x,a.i(2).y):a.pointsCount===3?a.L(1,x,a.i(2).y):a.pointsCount===2&&a.m(1,x,a.i(1).y)):x===90?(x=fe.bottom+le/2,b?a.pointsCount===4&&(b=a.i(3).x,a.L(1,a.i(1).x,x-20),a.m(2,b,x-20),a.m(3,b,x),a.m(4,b,x+20),a.L(5,b,a.i(5).y)):re?te?a.L(3,a.i(2).x,a.i(4).y):a.pointsCount===6&&(a.L(2,a.i(2).x,x),a.L(3,a.i(3).x,x)):a.pointsCount===4?a.m(2,a.i(2).x,x):a.pointsCount===3?a.L(1,a.i(2).x,x):a.pointsCount===2&&a.m(1,a.i(1).x,x)):x===180?(x=fe.left-le/2,b?a.pointsCount===4&&(b=a.i(3).y,a.L(1,x+20,a.i(1).y),a.m(2,x+20,b),a.m(3,x,b),a.m(4,x-20,b),a.L(5,a.i(5).x,b)):re?te?a.L(3,a.i(2).x,a.i(4).y):a.pointsCount===6&&(a.L(2,x,a.i(2).y),a.L(3,x,a.i(3).y)):a.pointsCount===4?a.m(2,x,a.i(2).y):a.pointsCount===3?a.L(1,x,a.i(2).y):a.pointsCount===2&&a.m(1,x,a.i(1).y)):x===270&&(x=fe.top-le/2,b?a.pointsCount===4&&(b=a.i(3).x,a.L(1,a.i(1).x,x+20),a.m(2,b,x+20),a.m(3,b,x),a.m(4,b,x-20),a.L(5,b,a.i(5).y)):re?te?a.L(3,a.i(2).x,a.i(4).y):a.pointsCount===6&&(a.L(2,a.i(2).x,x),a.L(3,a.i(3).x,x)):a.pointsCount===4?a.m(2,a.i(2).x,x):a.pointsCount===3?a.L(1,a.i(2).x,x):a.pointsCount===2&&a.m(1,a.i(1).x,x)),a.zf()))}}},pn.Object.defineProperties(m1.prototype,{fromVertex:{get:function(){return this.kd},set:function(a){this.kd!==a&&(this.kd=a)}},toVertex:{get:function(){return this.qd},set:function(a){this.qd!==a&&(this.qd=a)}},relativePoint:{get:function(){return this.$t},set:function(a){this.$t.set(a)}}}),m1.className="TreeEdge",sl.prototype.initializeStandardTools=function(){this.gb("Action",new Uf,this.mouseDownTools),this.gb("Relinking",new Vh,this.mouseDownTools),this.gb("LinkReshaping",new Ru,this.mouseDownTools),this.gb("Rotating",new jh,this.mouseDownTools),this.gb("Resizing",new fh,this.mouseDownTools),this.gb("Linking",new Kc,this.mouseMoveTools),this.gb("Dragging",new ql,this.mouseMoveTools),this.gb("DragSelecting",new $h,this.mouseMoveTools),this.gb("Panning",new $c,this.mouseMoveTools),this.gb("ContextMenu",new xu,this.mouseUpTools),this.gb("TextEditing",new wt,this.mouseUpTools),this.gb("ClickCreating",new bm,this.mouseUpTools),this.gb("ClickSelecting",new s0,this.mouseUpTools)},cm("Horizontal",new _v),cm("Spot",new ey),cm("Table",new aw),cm("Viewbox",new lA),cm("TableRow",new lw),cm("TableColumn",new aA),cm("Graduated",new uA),cm("Grid",new ny),LS.add("GraphLinksModel",jc),LS.add("TreeModel",Td);var Xw=ji.go,vE={get licenseKey(){return wn.licenseKey},set licenseKey(a){wn.licenseKey=a},get version(){return wn.version},Group:ts,EnumValue:Ni,List:Zi,Set:Yi,Map:kn,Point:it,Size:Dt,Rect:Yt,Margin:yr,Spot:Ii,Geometry:ai,PathFigure:ku,PathSegment:$s,InputEvent:Ju,DiagramEvent:xf,ChangedEvent:ul,Model:Gr,GraphLinksModel:ma,TreeModel:Dd,Binding:tc,Transaction:Wu,UndoManager:Jl,CommandHandler:St,Tool:la,DraggingTool:ql,DraggingInfo:Fh,DraggingOptions:me,LinkingBaseTool:Ma,LinkingTool:Kc,RelinkingTool:Vh,LinkReshapingTool:Ru,ResizingTool:fh,RotatingTool:jh,ClickSelectingTool:s0,ActionTool:Uf,ClickCreatingTool:bm,HTMLInfo:bf,ContextMenuTool:xu,DragSelectingTool:$h,PanningTool:$c,TextEditingTool:wt,ToolManager:sl,Animation:Nu,AnimationManager:Xs,AnimationTrigger:ag,Layer:eh,Diagram:wn,Palette:Ee,Overview:Ne,Brush:Ws,GraphObject:nn,Panel:Pi,RowColumnDefinition:mc,Shape:xs,TextBlock:_l,Picture:Wd,Part:mo,Adornment:Ca,Node:ar,Link:Ui,Placeholder:bd,Layout:vu,LayoutNetwork:Nl,LayoutVertex:_u,LayoutEdge:cf,GridLayout:Vc,PanelLayout:lc,CircularLayout:Eu,CircularNetwork:zm,CircularVertex:gy,CircularEdge:_C,ForceDirectedLayout:Sh,ForceDirectedNetwork:sv,ForceDirectedVertex:r1,ForceDirectedEdge:Lw,LayeredDigraphLayout:nl,LayeredDigraphNetwork:l1,LayeredDigraphVertex:Nf,LayeredDigraphEdge:uv,TreeLayout:qs,TreeNetwork:g1,TreeVertex:$f,TreeEdge:m1};typeof Xw=="object"&&Xw.version&&al("WARNING: a `go` object on the root object is already defined. "+("Debug"in Xw?"debug ":"")+"version: "+Xw.version+", replaced with version: "+vE.version),wn.prototype.go=vE,ji.go=vE,typeof Cn.exports=="object"&&(Cn.exports=typeof je.g!="undefined"?je.g.go:self.go)}();var Me=typeof je.g!="undefined"?je.g.go:self.go;const yt=typeof je.g!="undefined"?je.g.go:self.go,Jt=yt.Group,Qt=yt.EnumValue,It=yt.List,dt=yt.Set,Mt=yt.Map,an=yt.Point,qt=yt.Size,nt=yt.Rect,ln=yt.Margin,rn=yt.Spot,on=yt.Geometry,et=yt.PathFigure,ue=yt.PathSegment,ce=yt.InputEvent,Ce=yt.DiagramEvent,Ae=yt.ChangedEvent,Te=yt.Model,Ie=yt.GraphLinksModel,ze=yt.TreeModel,Ye=yt.Binding,lt=yt.Transaction,Bt=yt.UndoManager,kt=yt.CommandHandler,xt=yt.Tool,Et=yt.DraggingTool,$t=yt.DraggingInfo,Zt=yt.LinkingBaseTool,Yn=yt.LinkingTool,gn=yt.RelinkingTool,Jn=yt.LinkReshapingTool,ci=yt.ResizingTool,Xn=yt.RotatingTool,In=yt.ClickSelectingTool,hi=yt.ActionTool,Ht=yt.ClickCreatingTool,At=yt.HTMLInfo,Hn=yt.ContextMenuTool,_i=yt.DragSelectingTool,dr=yt.PanningTool,En=yt.TextEditingTool,Mn=yt.ToolManager,Ln=yt.Animation,Mi=yt.AnimationManager,Rt=yt.AnimationTrigger,ni=yt.Layer,en=yt.Diagram,Ti=yt.Palette,Lr=yt.Overview,Tt=yt.Brush,Ze=yt.GraphObject,Ge=yt.Panel,rt=yt.RowColumnDefinition,Ft=yt.Shape,qe=yt.TextBlock,mt=yt.TextBlockMetrics,An=yt.Picture,Gn=yt.Part,fo=yt.Adornment,qn=yt.Node,Kn=yt.Link,oi=yt.Placeholder,Wi=yt.Layout,Nr=yt.LayoutNetwork,Uo=yt.LayoutVertex,Vr=yt.LayoutEdge,lo=yt.GridLayout,Rn=yt.PanelLayout,$n=yt.CircularLayout,pi=yt.CircularNetwork,Ai=yt.CircularVertex,Cr=yt.CircularEdge,zr=yt.ForceDirectedLayout,ao=yt.ForceDirectedNetwork,Wr=yt.ForceDirectedVertex,Or=yt.ForceDirectedEdge,ir=yt.LayeredDigraphLayout,ss=yt.LayeredDigraphNetwork,Us=yt.LayeredDigraphVertex,as=yt.LayeredDigraphEdge,ls=yt.TreeLayout,La=yt.TreeNetwork,Fs=yt.TreeVertex,ha=yt.TreeEdge,Al=yt.version},2859:function(Cn,Ei,je){"use strict";je.d(Ei,{hP:function(){return Lr}});var Me=function(Tt,Ze){return(Me=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(Ge,rt){Ge.__proto__=rt}||function(Ge,rt){for(var Ft in rt)Object.prototype.hasOwnProperty.call(rt,Ft)&&(Ge[Ft]=rt[Ft])})(Tt,Ze)};function yt(Tt,Ze){function Ge(){this.constructor=Tt}Me(Tt,Ze),Tt.prototype=Ze===null?Object.create(Ze):(Ge.prototype=Ze.prototype,new Ge)}function Jt(Tt,Ze,Ge,rt){return new(Ge||(Ge=Promise))(function(Ft,qe){function mt(fo){try{Gn(rt.next(fo))}catch(qn){qe(qn)}}function An(fo){try{Gn(rt.throw(fo))}catch(qn){qe(qn)}}function Gn(fo){var qn;fo.done?Ft(fo.value):(qn=fo.value,qn instanceof Ge?qn:new Ge(function(Kn){Kn(qn)})).then(mt,An)}Gn((rt=rt.apply(Tt,Ze||[])).next())})}function Qt(Tt,Ze){var Ge,rt,Ft,qe,mt={label:0,sent:function(){if(1&Ft[0])throw Ft[1];return Ft[1]},trys:[],ops:[]};return qe={next:An(0),throw:An(1),return:An(2)},typeof Symbol=="function"&&(qe[Symbol.iterator]=function(){return this}),qe;function An(Gn){return function(fo){return function(qn){if(Ge)throw new TypeError("Generator is already executing.");for(;mt;)try{if(Ge=1,rt&&(Ft=2&qn[0]?rt.return:qn[0]?rt.throw||((Ft=rt.return)&&Ft.call(rt),0):rt.next)&&!(Ft=Ft.call(rt,qn[1])).done)return Ft;switch(rt=0,Ft&&(qn=[2&qn[0],Ft.value]),qn[0]){case 0:case 1:Ft=qn;break;case 4:return mt.label++,{value:qn[1],done:!1};case 5:mt.label++,rt=qn[1],qn=[0];continue;case 7:qn=mt.ops.pop(),mt.trys.pop();continue;default:if(Ft=mt.trys,!((Ft=Ft.length>0&&Ft[Ft.length-1])||qn[0]!==6&&qn[0]!==2)){mt=0;continue}if(qn[0]===3&&(!Ft||qn[1]>Ft[0]&&qn[1]<Ft[3])){mt.label=qn[1];break}if(qn[0]===6&&mt.label<Ft[1]){mt.label=Ft[1],Ft=qn;break}if(Ft&&mt.label<Ft[2]){mt.label=Ft[2],mt.ops.push(qn);break}Ft[2]&&mt.ops.pop(),mt.trys.pop();continue}qn=Ze.call(Tt,mt)}catch(Kn){qn=[6,Kn],rt=0}finally{Ge=Ft=0}if(5&qn[0])throw qn[1];return{value:qn[0]?qn[1]:void 0,done:!0}}([Gn,fo])}}}function It(){for(var Tt=0,Ze=0,Ge=arguments.length;Ze<Ge;Ze++)Tt+=arguments[Ze].length;var rt=Array(Tt),Ft=0;for(Ze=0;Ze<Ge;Ze++)for(var qe=arguments[Ze],mt=0,An=qe.length;mt<An;mt++,Ft++)rt[Ft]=qe[mt];return rt}var dt=function(){function Tt(){}return Tt.createDefs=function(){return document.createElementNS("http://www.w3.org/2000/svg","defs")},Tt.setAttributes=function(Ze,Ge){for(var rt=0,Ft=Ge;rt<Ft.length;rt++){var qe=Ft[rt],mt=qe[0],An=qe[1];Ze.setAttribute(mt,An)}},Tt.createRect=function(Ze,Ge,rt){var Ft=document.createElementNS("http://www.w3.org/2000/svg","rect");return Ft.setAttribute("width",Ze.toString()),Ft.setAttribute("height",Ge.toString()),rt&&Tt.setAttributes(Ft,rt),Ft},Tt.createLine=function(Ze,Ge,rt,Ft,qe){var mt=document.createElementNS("http://www.w3.org/2000/svg","line");return mt.setAttribute("x1",Ze.toString()),mt.setAttribute("y1",Ge.toString()),mt.setAttribute("x2",rt.toString()),mt.setAttribute("y2",Ft.toString()),qe&&Tt.setAttributes(mt,qe),mt},Tt.createPolygon=function(Ze,Ge){var rt=document.createElementNS("http://www.w3.org/2000/svg","polygon");return rt.setAttribute("points",Ze),Ge&&Tt.setAttributes(rt,Ge),rt},Tt.createCircle=function(Ze,Ge){var rt=document.createElementNS("http://www.w3.org/2000/svg","circle");return rt.setAttribute("cx",(Ze/2).toString()),rt.setAttribute("cy",(Ze/2).toString()),rt.setAttribute("r",Ze.toString()),Ge&&Tt.setAttributes(rt,Ge),rt},Tt.createEllipse=function(Ze,Ge,rt){var Ft=document.createElementNS("http://www.w3.org/2000/svg","ellipse");return Ft.setAttribute("cx",(Ze/2).toString()),Ft.setAttribute("cy",(Ge/2).toString()),Ft.setAttribute("rx",(Ze/2).toString()),Ft.setAttribute("ry",(Ge/2).toString()),rt&&Tt.setAttributes(Ft,rt),Ft},Tt.createGroup=function(Ze){var Ge=document.createElementNS("http://www.w3.org/2000/svg","g");return Ze&&Tt.setAttributes(Ge,Ze),Ge},Tt.createTransform=function(){return document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGTransform()},Tt.createMarker=function(Ze,Ge,rt,Ft,qe,mt,An){var Gn=document.createElementNS("http://www.w3.org/2000/svg","marker");return Tt.setAttributes(Gn,[["id",Ze],["orient",Ge],["markerWidth",rt.toString()],["markerHeight",Ft.toString()],["refX",qe.toString()],["refY",mt.toString()]]),Gn.appendChild(An),Gn},Tt.createText=function(Ze){var Ge=document.createElementNS("http://www.w3.org/2000/svg","text");return Ge.setAttribute("x","0"),Ge.setAttribute("y","0"),Ze&&Tt.setAttributes(Ge,Ze),Ge},Tt.createTSpan=function(Ze,Ge){var rt=document.createElementNS("http://www.w3.org/2000/svg","tspan");return rt.textContent=Ze,Ge&&Tt.setAttributes(rt,Ge),rt},Tt.createImage=function(Ze){var Ge=document.createElementNS("http://www.w3.org/2000/svg","image");return Ze&&Tt.setAttributes(Ge,Ze),Ge},Tt.createPoint=function(Ze,Ge){var rt=document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGPoint();return rt.x=Ze,rt.y=Ge,rt},Tt.createPath=function(Ze,Ge){var rt=document.createElementNS("http://www.w3.org/2000/svg","path");return rt.setAttribute("d",Ze),Ge&&Tt.setAttributes(rt,Ge),rt},Tt}(),Mt=function(){function Tt(){}return Tt.addKey=function(Ze){Tt.key=Ze},Object.defineProperty(Tt,"isLicensed",{get:function(){return!!Tt.key&&new RegExp(/^MJS2-[A-Z][0-9]{3}-[A-Z][0-9]{3}-[0-9]{4}$/,"i").test(Tt.key)},enumerable:!1,configurable:!0}),Tt}(),an=function(){function Tt(){this.naturalSize=!1,this.imageType="image/png",this.markersOnly=!1}return Tt.prototype.rasterize=function(Ze,Ge,rt){var Ft=this;return new Promise(function(qe){var mt=rt!==void 0?rt:document.createElement("canvas");Ze===null&&(Ft.markersOnly=!0,Ft.naturalSize=!1);var An=document.createElementNS("http://www.w3.org/2000/svg","svg");An.setAttribute("xmlns","http://www.w3.org/2000/svg"),An.setAttribute("width",Ge.width.baseVal.valueAsString),An.setAttribute("height",Ge.height.baseVal.valueAsString),An.setAttribute("viewBox","0 0 "+Ge.viewBox.baseVal.width.toString()+" "+Ge.viewBox.baseVal.height.toString()),An.innerHTML=Ge.innerHTML,Ft.naturalSize===!0?(An.width.baseVal.value=Ze.naturalWidth,An.height.baseVal.value=Ze.naturalHeight):Ft.width!==void 0&&Ft.height!==void 0&&(An.width.baseVal.value=Ft.width,An.height.baseVal.value=Ft.height),mt.width=An.width.baseVal.value,mt.height=An.height.baseVal.value;var Gn=An.outerHTML,fo=mt.getContext("2d");Ft.markersOnly!==!0&&fo.drawImage(Ze,0,0,mt.width,mt.height);var qn=window.URL,Kn=new Image(mt.width,mt.height);Kn.setAttribute("crossOrigin","anonymous");var oi=new Blob([Gn],{type:"image/svg+xml"}),Wi=qn.createObjectURL(oi);Kn.onload=function(){fo.drawImage(Kn,0,0),qn.revokeObjectURL(Wi);var Nr=mt.toDataURL(Ft.imageType,Ft.imageQuality);qe(Nr)},Kn.src=Wi})},Tt}(),qt=function(){},nt=function(){function Tt(Ze){this._classNamePrefixBase="__markerjs2_",this.classes=[],this.rules=[],this.settings=this.defaultSettings,this._classNamePrefix=this._classNamePrefixBase+"_"+Ze+"_"}return Object.defineProperty(Tt.prototype,"classNamePrefixBase",{get:function(){return this._classNamePrefixBase},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"classNamePrefix",{get:function(){return this._classNamePrefix},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"defaultSettings",{get:function(){return{canvasBackgroundColor:"#ffffff",toolbarBackgroundColor:"#111111",toolbarBackgroundHoverColor:"#333333",toolbarColor:"#eeeeee",toolbarHeight:40,toolboxColor:"#eeeeee",toolboxAccentColor:"#3080c3",undoButtonVisible:!0,redoButtonVisible:!1,zoomButtonVisible:!1,zoomOutButtonVisible:!1,clearButtonVisible:!1,resultButtonBlockVisible:!0,logoPosition:"left"}},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"fadeInAnimationClassName",{get:function(){return this.classNamePrefix+"fade_in"},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"fadeOutAnimationClassName",{get:function(){return this.classNamePrefix+"fade_out"},enumerable:!1,configurable:!0}),Tt.prototype.addClass=function(Ze){return this.styleSheet===void 0&&this.addStyleSheet(),Ze.name=""+this.classNamePrefix+Ze.localName,this.classes.push(Ze),this.styleSheet.sheet.insertRule("."+Ze.name+" {"+Ze.style+"}",this.styleSheet.sheet.cssRules.length),Ze},Tt.prototype.addRule=function(Ze){this.styleSheet===void 0&&this.addStyleSheet(),this.rules.push(Ze),this.styleSheet.sheet.insertRule(Ze.selector+" {"+Ze.style+"}",this.styleSheet.sheet.cssRules.length)},Tt.prototype.addStyleSheet=function(){var Ze;this.styleSheet=document.createElement("style"),((Ze=this.styleSheetRoot)!==null&&Ze!==void 0?Ze:document.head).appendChild(this.styleSheet),this.addRule(new ln("."+this.classNamePrefix+" h3","font-family: sans-serif")),this.addRule(new ln("@keyframes "+this.classNamePrefix+"_fade_in_animation_frames",`
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
`)),this.addRule(new ln("@keyframes "+this.classNamePrefix+"_fade_out_animation_frames",`
|
|
from {
|
|
opacity: 1;
|
|
}
|
|
to {
|
|
opacity: 0;
|
|
}
|
|
`)),this.addClass(new rn("fade_in",`
|
|
animation-duration: 0.3s;
|
|
animation-name: `+this.classNamePrefix+`_fade_in_animation_frames;
|
|
`)),this.addClass(new rn("fade_out",`
|
|
animation-duration: 0.3s;
|
|
animation-name: `+this.classNamePrefix+`_fade_out_animation_frames;
|
|
`))},Tt.prototype.removeStyleSheet=function(){var Ze;this.styleSheet&&(((Ze=this.styleSheetRoot)!==null&&Ze!==void 0?Ze:document.head).removeChild(this.styleSheet),this.styleSheet=void 0)},Tt}(),ln=function(Tt,Ze){this.selector=Tt,this.style=Ze},rn=function(Tt,Ze){this.localName=Tt,this.style=Ze},on=function(){function Tt(Ze,Ge,rt,Ft,qe){this.buttons=[],this.markerButtons=[],this.buttonClickListeners=[],this.markerjsContainer=Ze,this.displayMode=Ge,this.markerItems=rt,this.uiStyleSettings=Ft,this.styles=qe,this.addStyles(),this.adjustLayout=this.adjustLayout.bind(this),this.overflowButtonClicked=this.overflowButtonClicked.bind(this),this.setCurrentMarker=this.setCurrentMarker.bind(this)}return Tt.prototype.show=function(Ze){var Ge=this;this.uiContainer=document.createElement("div"),this.uiContainer.style.visibility=Ze,this.uiContainer.className=this.toolbarStyleClass.name+" "+this.styles.fadeInAnimationClassName+" "+(this.uiStyleSettings.toolbarStyleColorsClassName?this.uiStyleSettings.toolbarStyleColorsClassName:this.toolbarStyleColorsClass.name);var rt=document.createElement("div");rt.className=this.toolbarBlockStyleClass.name,rt.style.whiteSpace="nowrap",this.uiContainer.appendChild(rt),this.addActionButton(rt,'<svg viewBox="0 0 24 24"><path d="M10.07 14.27a.997.997 0 011.33.48l2.3 4.99 1.8-.85-2.31-4.98c-.24-.5-.02-1.1.48-1.33l.28-.08 2.3-.45L8 5.12V15.9l1.82-1.47.25-.16m3.57 7.7a.99.99 0 01-1.33-.47l-2.18-4.74-2.51 2.02c-.17.14-.38.22-.62.22a1 1 0 01-1-1V3a1 1 0 011-1c.24 0 .47.09.64.23l.01-.01 11.49 9.64a1.001 1.001 0 01-.44 1.75l-3.16.62 2.2 4.73c.26.5.02 1.09-.48 1.32l-3.62 1.69z"/></svg>',"select"),this.addActionButton(rt,'<svg viewBox="0 0 24 24"><path d="M9 3v1H4v2h1v13a2 2 0 002 2h10a2 2 0 002-2V6h1V4h-5V3H9M7 6h10v13H7V6m2 2v9h2V8H9m4 0v9h2V8h-2z"/></svg>',"delete"),this.uiStyleSettings.clearButtonVisible&&this.addActionButton(rt,'<svg viewBox="0 0 24 24"><path d="M19.36 2.72l1.42 1.42-5.72 5.71c1.07 1.54 1.22 3.39.32 4.59L9.06 8.12c1.2-.9 3.05-.75 4.59.32l5.71-5.72M5.93 17.57c-2.01-2.01-3.24-4.41-3.58-6.65l4.88-2.09 7.44 7.44-2.09 4.88c-2.24-.34-4.64-1.57-6.65-3.58z"/></svg>',"clear"),this.uiStyleSettings.undoButtonVisible&&this.addActionButton(rt,'<svg viewBox="0 0 24 24"><path d="M12.5 8c-2.65 0-5.05 1-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"/></svg>',"undo"),this.uiStyleSettings.redoButtonVisible&&this.addActionButton(rt,'<svg viewBox="0 0 24 24"><path d="M18.4 10.6C16.55 9 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16a8.002 8.002 0 017.6-5.5c1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"/></svg>',"redo"),this.uiStyleSettings.zoomButtonVisible&&this.addActionButton(rt,'<svg viewBox="0 0 24 24"><path d="M15.5 14l5 5-1.5 1.5-5-5v-.79l-.27-.28A6.471 6.471 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3 6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.57 4.23l.28.27h.79m-6 0C12 14 14 12 14 9.5S12 5 9.5 5 5 7 5 9.5 7 14 9.5 14m2.5-4h-2v2H9v-2H7V9h2V7h1v2h2v1z"/></svg>',"zoom"),this.uiStyleSettings.zoomButtonVisible&&this.uiStyleSettings.zoomOutButtonVisible&&this.addActionButton(rt,'<svg viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 009.5 3 6.5 6.5 0 003 9.5 6.5 6.5 0 009.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 5 1.5-1.5-5-5m-6 0C7 14 5 12 5 9.5S7 5 9.5 5 14 7 14 9.5 12 14 9.5 14M7 9h5v1H7V9z"/></svg>',"zoom-out"),this.uiStyleSettings.notesButtonVisible&&this.addActionButton(rt,'<svg viewBox="0 0 24 24"><path d="M18.13 12l1.26-1.26c.44-.44 1-.68 1.61-.74V9l-6-6H5c-1.11 0-2 .89-2 2v14a2 2 0 002 2h6v-1.87l.13-.13H5V5h7v7h6.13M14 4.5l5.5 5.5H14V4.5m5.13 9.33l2.04 2.04L15.04 22H13v-2.04l6.13-6.13m3.72.36l-.98.98-2.04-2.04.98-.98c.19-.2.52-.2.72 0l1.32 1.32c.2.2.2.53 0 .72z"/></svg>',"notes"),this.markerButtonBlock=document.createElement("div"),this.markerButtonBlock.className=this.toolbarBlockStyleClass.name,this.markerButtonBlock.style.flexGrow="2",this.markerButtonBlock.style.textAlign="center",this.uiContainer.appendChild(this.markerButtonBlock),this.markerButtonOverflowBlock=document.createElement("div"),this.markerButtonOverflowBlock.className=this.toolbarOverflowBlockStyleClass.name+" "+(this.uiStyleSettings.toolbarOverflowBlockStyleColorsClassName?this.uiStyleSettings.toolbarOverflowBlockStyleColorsClassName:this.toolbarOverflowBlockStyleColorsClass.name),this.markerButtonOverflowBlock.style.display="none",this.uiContainer.appendChild(this.markerButtonOverflowBlock),this.markerItems&&(this.markerItems.forEach(function(qe){var mt=document.createElement("div");mt.className=""+Ge.toolbarButtonStyleClass.name,mt.setAttribute("data-type-name",qe.typeName),mt.innerHTML=qe.icon,mt.addEventListener("click",function(){Ge.markerToolbarButtonClicked(mt,qe)}),Ge.buttons.push(mt),Ge.markerButtons.push(mt)}),this.overflowButton=document.createElement("div"),this.overflowButton.className=this.toolbarButtonStyleClass.name+" "+(this.uiStyleSettings.toolbarButtonStyleColorsClassName?this.uiStyleSettings.toolbarButtonStyleColorsClassName:this.toolbarButtonStyleColorsClass.name),this.overflowButton.innerHTML='<svg viewBox="0 0 24 24"><path d="M12 16a2 2 0 012 2 2 2 0 01-2 2 2 2 0 01-2-2 2 2 0 012-2m0-6a2 2 0 012 2 2 2 0 01-2 2 2 2 0 01-2-2 2 2 0 012-2m0-6a2 2 0 012 2 2 2 0 01-2 2 2 2 0 01-2-2 2 2 0 012-2z"/></svg>',this.overflowButton.addEventListener("click",this.overflowButtonClicked),this.markerButtonBlock.appendChild(this.overflowButton));var Ft=document.createElement("div");Ft.className=this.toolbarBlockStyleClass.name,Ft.style.whiteSpace="nowrap",Ft.style.display=this.uiStyleSettings.resultButtonBlockVisible!==!1?"":"none",this.uiContainer.appendChild(Ft),this.addActionButton(Ft,'<svg viewBox="0 0 24 24"><path d="M9 20.42l-6.21-6.21 2.83-2.83L9 14.77l9.88-9.89 2.83 2.83L9 20.42z"/></svg>',"render"),this.addActionButton(Ft,'<svg viewBox="0 0 24 24"><path d="M20 6.91L17.09 4 12 9.09 6.91 4 4 6.91 9.09 12 4 17.09 6.91 20 12 14.91 17.09 20 20 17.09 14.91 12 20 6.91z"/></svg>',"close"),this.markerjsContainer.appendChild(this.uiContainer),this.setSelectMode(),this.setCurrentMarker(),this.adjustLayout()},Tt.prototype.addButtonClickListener=function(Ze){this.buttonClickListeners.push(Ze)},Tt.prototype.removeButtonClickListener=function(Ze){this.buttonClickListeners.indexOf(Ze)>-1&&this.buttonClickListeners.splice(this.buttonClickListeners.indexOf(Ze),1)},Tt.prototype.setSelectMode=function(){this.resetButtonStyles(),this.setActiveButton(this.buttons[0])},Tt.prototype.adjustLayout=function(){if(this.markerButtons&&this.markerButtons.length>0){var Ze=Math.floor(this.markerButtonBlock.clientWidth/this.uiStyleSettings.toolbarHeight)-1;this.markerButtonBlock.innerHTML="",this.markerButtonOverflowBlock.innerHTML="";for(var Ge=0;Ge<this.markerButtons.length;Ge++)Ge<Ze||Ge===Ze&&this.markerButtons.length-1===Ze?this.markerButtonBlock.appendChild(this.markerButtons[Ge]):(Ge===Ze&&this.markerButtonBlock.appendChild(this.overflowButton),this.markerButtonOverflowBlock.appendChild(this.markerButtons[Ge]))}},Tt.prototype.overflowButtonClicked=function(){this.markerButtonOverflowBlock.style.display!=="none"?(this.markerButtonOverflowBlock.className=this.markerButtonOverflowBlock.className.replace(this.styles.fadeInAnimationClassName,""),this.markerButtonOverflowBlock.style.display="none"):(this.markerButtonOverflowBlock.className+=" "+this.styles.fadeInAnimationClassName,this.markerButtonOverflowBlock.style.top=this.uiContainer.offsetTop+this.overflowButton.offsetHeight+"px",this.markerButtonOverflowBlock.style.right=this.uiContainer.offsetWidth-this.overflowButton.offsetLeft-this.overflowButton.offsetWidth+2*this.uiContainer.offsetLeft+"px",this.markerButtonOverflowBlock.style.display="inline-block")},Tt.prototype.resetButtonStyles=function(){var Ze=this;this.buttons.forEach(function(Ge){Ge.className=Ge.className.replace(Ze.uiStyleSettings.toolbarButtonStyleColorsClassName?Ze.uiStyleSettings.toolbarButtonStyleColorsClassName:Ze.toolbarButtonStyleColorsClass.name,"").trim(),Ge.className=Ge.className.replace(Ze.uiStyleSettings.toolbarActiveButtonStyleColorsClassName?Ze.uiStyleSettings.toolbarActiveButtonStyleColorsClassName:Ze.toolbarActiveButtonStyleColorsClass.name,"").trim(),Ge.className+=" "+(Ze.uiStyleSettings.toolbarButtonStyleColorsClassName?Ze.uiStyleSettings.toolbarButtonStyleColorsClassName:Ze.toolbarButtonStyleColorsClass.name)})},Tt.prototype.addActionButton=function(Ze,Ge,rt){var Ft=this,qe=document.createElement("div");switch(qe.className=""+this.toolbarButtonStyleClass.name,qe.innerHTML=Ge,qe.setAttribute("data-action",rt),qe.addEventListener("click",function(){Ft.actionToolbarButtonClicked(qe,rt)}),rt){case"select":qe.style.fill=this.uiStyleSettings.selectButtonColor;break;case"delete":case"clear":qe.style.fill=this.uiStyleSettings.deleteButtonColor;break;case"undo":case"redo":qe.style.fill=this.uiStyleSettings.selectButtonColor;break;case"render":qe.style.fill=this.uiStyleSettings.okButtonColor;break;case"close":qe.style.fill=this.uiStyleSettings.closeButtonColor}Ze.appendChild(qe),this.buttons.push(qe)},Tt.prototype.addStyles=function(){this.toolbarStyleClass=this.styles.addClass(new rn("toolbar",`
|
|
width: 100%;
|
|
flex-shrink: 0;
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: space-between;
|
|
height: `+this.uiStyleSettings.toolbarHeight+`px;
|
|
box-sizing: content-box;
|
|
`+(this.displayMode==="inline"?"border-top-left-radius: "+Math.round(this.uiStyleSettings.toolbarHeight/10)+"px;":"")+`
|
|
`+(this.displayMode==="inline"?"border-top-right-radius: "+Math.round(this.uiStyleSettings.toolbarHeight/10)+"px;":"")+`
|
|
overflow: hidden;
|
|
`)),this.toolbarStyleColorsClass=this.styles.addClass(new rn("toolbar_colors",`
|
|
background-color: `+this.uiStyleSettings.toolbarBackgroundColor+`;
|
|
box-shadow: 0px 3px rgba(33, 33, 33, 0.1);
|
|
`)),this.toolbarBlockStyleClass=this.styles.addClass(new rn("toolbar-block",`
|
|
display: inline-block;
|
|
box-sizing: content-box;
|
|
`)),this.toolbarOverflowBlockStyleClass=this.styles.addClass(new rn("toolbar-overflow-block",`
|
|
position: absolute;
|
|
top: `+this.uiStyleSettings.toolbarHeight+`px;
|
|
max-width: `+2*this.uiStyleSettings.toolbarHeight+`px;
|
|
z-index: 10;
|
|
box-sizing: content-box;
|
|
`)),this.toolbarOverflowBlockStyleColorsClass=this.styles.addClass(new rn("toolbar-overflow-block_colors",`
|
|
background-color: `+this.uiStyleSettings.toolbarBackgroundColor+`;
|
|
`));var Ze=this.uiStyleSettings.toolbarHeight/4;this.toolbarButtonStyleClass=this.styles.addClass(new rn("toolbar_button",`
|
|
display: inline-block;
|
|
width: `+(this.uiStyleSettings.toolbarHeight-2*Ze)+`px;
|
|
height: `+(this.uiStyleSettings.toolbarHeight-2*Ze)+`px;
|
|
padding: `+Ze+`px;
|
|
box-sizing: content-box;
|
|
`)),this.toolbarButtonStyleColorsClass=this.styles.addClass(new rn("toolbar_button_colors",`
|
|
fill: `+this.uiStyleSettings.toolbarColor+`;
|
|
`)),this.toolbarActiveButtonStyleColorsClass=this.styles.addClass(new rn("toolbar_active_button",`
|
|
fill: `+this.uiStyleSettings.toolbarColor+`;
|
|
background-color: `+this.uiStyleSettings.toolbarBackgroundHoverColor+`
|
|
`)),this.styles.addRule(new ln("."+this.toolbarButtonStyleClass.name+" svg",`
|
|
height: `+this.uiStyleSettings.toolbarHeight/2+`px;
|
|
`)),this.styles.addRule(new ln("."+this.toolbarButtonStyleColorsClass.name+":hover",`
|
|
background-color: `+this.uiStyleSettings.toolbarBackgroundHoverColor+`
|
|
`))},Tt.prototype.markerToolbarButtonClicked=function(Ze,Ge){this.setActiveButton(Ze),this.buttonClickListeners&&this.buttonClickListeners.length>0&&this.buttonClickListeners.forEach(function(rt){return rt("marker",Ge)}),this.markerButtonOverflowBlock.style.display="none"},Tt.prototype.actionToolbarButtonClicked=function(Ze,Ge){this.buttonClickListeners&&this.buttonClickListeners.length>0&&this.buttonClickListeners.forEach(function(rt){return rt("action",Ge)}),this.markerButtonOverflowBlock.style.display="none",this.setActiveButton(this.buttons[0])},Tt.prototype.setActiveButton=function(Ze){this.resetButtonStyles(),Ze.className=Ze.className.replace(this.uiStyleSettings.toolbarButtonStyleColorsClassName?this.uiStyleSettings.toolbarButtonStyleColorsClassName:this.toolbarButtonStyleColorsClass.name,"").trim(),Ze.className+=" "+(this.uiStyleSettings.toolbarActiveButtonStyleColorsClassName?this.uiStyleSettings.toolbarActiveButtonStyleColorsClassName:this.toolbarActiveButtonStyleColorsClass.name)},Tt.prototype.setActiveMarkerButton=function(Ze){var Ge=this.markerButtons.find(function(rt){return rt.getAttribute("data-type-name")===Ze});Ge&&this.setActiveButton(Ge)},Tt.prototype.setCurrentMarker=function(Ze){var Ge=this;this.currentMarker=Ze,this.buttons.filter(function(rt){return/delete|notes/.test(rt.getAttribute("data-action"))}).forEach(function(rt){Ge.currentMarker===void 0?(rt.style.fillOpacity="0.4",rt.style.pointerEvents="none"):(rt.style.fillOpacity="1",rt.style.pointerEvents="all")})},Tt}(),et=function(){function Tt(Ze,Ge,rt,Ft){this.panels=[],this.panelButtons=[],this.markerjsContainer=Ze,this.displayMode=Ge,this.uiStyleSettings=rt,this.styles=Ft,this.panelButtonClick=this.panelButtonClick.bind(this),this.addStyles()}return Tt.prototype.addStyles=function(){var Ze;this.toolboxStyleClass=this.styles.addClass(new rn("toolbox",`
|
|
width: 100%;
|
|
flex-shrink: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
font-family: sans-serif;
|
|
`+(this.displayMode==="popup"?"height:"+2.5*this.uiStyleSettings.toolbarHeight+"px;":"")+`
|
|
box-sizing: content-box;
|
|
`+(this.displayMode==="popup"?"background-color: "+this.uiStyleSettings.canvasBackgroundColor+";":"")+`
|
|
`+(this.displayMode==="inline"?"border-bottom-left-radius: "+Math.round(this.uiStyleSettings.toolbarHeight/10)+"px;":"")+`
|
|
`+(this.displayMode==="inline"?"border-bottom-right-radius: "+Math.round(this.uiStyleSettings.toolbarHeight/10)+"px;":"")+`
|
|
overflow: hidden;
|
|
`)),this.toolboxStyleColorsClass=this.styles.addClass(new rn("toolbox_colors",`
|
|
color: `+this.uiStyleSettings.toolboxColor+`;
|
|
`));var Ge=this.uiStyleSettings.toolbarHeight/4;this.toolboxButtonRowStyleClass=this.styles.addClass(new rn("toolbox-button-row",`
|
|
display: flex;
|
|
cursor: default;
|
|
box-sizing: content-box;
|
|
`)),this.toolboxButtonRowStyleColorsClass=this.styles.addClass(new rn("toolbox-button-row_colors",`
|
|
background-color: `+this.uiStyleSettings.toolbarBackgroundColor+`;
|
|
`)),this.toolboxPanelRowStyleClass=this.styles.addClass(new rn("toolbox-panel-row",`
|
|
display: flex;
|
|
`+(this.displayMode==="inline"?"position: absolute;":"")+`
|
|
`+(this.displayMode==="inline"?"bottom: "+this.uiStyleSettings.toolbarHeight+"px;":"")+`
|
|
cursor: default;
|
|
height: `+1.5*this.uiStyleSettings.toolbarHeight+`px;
|
|
`+(this.displayMode==="inline"?"width: 100%;":"")+`
|
|
box-sizing: content-box;
|
|
`)),this.toolboxPanelRowStyleColorsClass=this.styles.addClass(new rn("toolbox-panel-row_colors",`
|
|
background-color: `+((Ze=this.uiStyleSettings.toolboxBackgroundColor)!==null&&Ze!==void 0?Ze:this.uiStyleSettings.toolbarBackgroundHoverColor)+`;
|
|
`)),this.toolboxButtonStyleClass=this.styles.addClass(new rn("toolbox_button",`
|
|
display: inline-block;
|
|
width: `+(this.uiStyleSettings.toolbarHeight-2*Ge)+`px;
|
|
height: `+(this.uiStyleSettings.toolbarHeight-2*Ge)+`px;
|
|
padding: `+Ge+`px;
|
|
box-sizing: content-box;
|
|
`)),this.toolboxButtonStyleColorsClass=this.styles.addClass(new rn("toolbox-button_colors",`
|
|
fill: `+this.uiStyleSettings.toolbarColor+`;
|
|
`)),this.toolboxActiveButtonStyleColorsClass=this.styles.addClass(new rn("toolbox-active-button_colors",`
|
|
background-color: `+this.uiStyleSettings.toolbarBackgroundHoverColor+`;
|
|
fill: `+this.uiStyleSettings.toolbarColor+`;
|
|
`)),this.styles.addRule(new ln("."+this.toolboxButtonStyleColorsClass.name+":hover",`
|
|
background-color: `+this.uiStyleSettings.toolbarBackgroundHoverColor+`
|
|
`)),this.styles.addRule(new ln("."+this.toolboxButtonStyleClass.name+" svg",`
|
|
height: `+this.uiStyleSettings.toolbarHeight/2+`px;
|
|
`))},Tt.prototype.show=function(Ze){var Ge;this.uiContainer=document.createElement("div"),this.uiContainer.style.visibility=Ze,this.uiContainer.className=this.toolboxStyleClass.name+" "+((Ge=this.uiStyleSettings.toolboxStyleColorsClassName)!==null&&Ge!==void 0?Ge:this.toolboxStyleColorsClass.name),this.markerjsContainer.appendChild(this.uiContainer)},Tt.prototype.setPanelButtons=function(Ze){var Ge,rt,Ft=this;this.panels=Ze,this.uiContainer!==void 0&&(this.uiContainer.innerHTML="",this.panelRow=document.createElement("div"),this.panelRow.className=this.toolboxPanelRowStyleClass.name+" "+((Ge=this.uiStyleSettings.toolboxPanelRowStyleColorsClassName)!==null&&Ge!==void 0?Ge:this.toolboxPanelRowStyleColorsClass.name),this.uiContainer.appendChild(this.panelRow),this.buttonRow=document.createElement("div"),this.buttonRow.className=this.toolboxButtonRowStyleClass.name+" "+((rt=this.uiStyleSettings.toolboxButtonRowStyleColorsClassName)!==null&&rt!==void 0?rt:this.toolboxButtonRowStyleColorsClass.name)+" ",this.uiContainer.appendChild(this.buttonRow),this.panelButtons.splice(0),this.panels.forEach(function(qe){var mt;qe.uiStyleSettings=Ft.uiStyleSettings;var An=document.createElement("div");An.className=Ft.toolboxButtonStyleClass.name+" "+((mt=Ft.uiStyleSettings.toolboxButtonStyleColorsClassName)!==null&&mt!==void 0?mt:Ft.toolboxButtonStyleColorsClass.name),An.innerHTML=qe.icon,An.title=qe.title,An.addEventListener("click",function(){Ft.panelButtonClick(qe)}),Ft.panelButtons.push(An),Ft.buttonRow.appendChild(An)}),this.displayMode==="inline"?this.panelRow.style.display="none":this.panelRow.style.visibility="hidden")},Tt.prototype.panelButtonClick=function(Ze){var Ge=this,rt=-1;if(Ze!==this.activePanel){rt=this.panels.indexOf(Ze),this.panelRow.innerHTML="";var Ft=Ze.getUi();Ft.style.margin=this.uiStyleSettings.toolbarHeight/4+"px",this.panelRow.appendChild(Ft),this.panelRow.style.display="flex",this.panelRow.style.visibility="visible",this.panelRow.className=this.panelRow.className.replace(this.styles.fadeOutAnimationClassName,""),this.panelRow.className+=" "+this.styles.fadeInAnimationClassName,this.activePanel=Ze}else this.activePanel=void 0,this.panelRow.className=this.panelRow.className.replace(this.styles.fadeInAnimationClassName,""),this.panelRow.className+=" "+this.styles.fadeOutAnimationClassName,setTimeout(function(){Ge.displayMode==="inline"?Ge.panelRow.style.display="none":Ge.panelRow.style.visibility="hidden"},200);this.panelButtons.forEach(function(qe,mt){var An,Gn;qe.className=Ge.toolboxButtonStyleClass.name+" "+(mt===rt?""+((An=Ge.uiStyleSettings.toolboxActiveButtonStyleColorsClassName)!==null&&An!==void 0?An:Ge.toolboxActiveButtonStyleColorsClass.name):""+((Gn=Ge.uiStyleSettings.toolboxButtonStyleColorsClassName)!==null&&Gn!==void 0?Gn:Ge.toolboxButtonStyleColorsClass.name))})},Tt}(),ue=function(Tt,Ze){this.title=Tt,this.icon=Ze},ce=function(Tt){function Ze(Ge,rt,Ft,qe){var mt=Tt.call(this,Ge,qe||'<svg viewBox="0 0 24 24"><path d="M17.5 12a1.5 1.5 0 01-1.5-1.5A1.5 1.5 0 0117.5 9a1.5 1.5 0 011.5 1.5 1.5 1.5 0 01-1.5 1.5m-3-4A1.5 1.5 0 0113 6.5 1.5 1.5 0 0114.5 5 1.5 1.5 0 0116 6.5 1.5 1.5 0 0114.5 8m-5 0A1.5 1.5 0 018 6.5 1.5 1.5 0 019.5 5 1.5 1.5 0 0111 6.5 1.5 1.5 0 019.5 8m-3 4A1.5 1.5 0 015 10.5 1.5 1.5 0 016.5 9 1.5 1.5 0 018 10.5 1.5 1.5 0 016.5 12M12 3a9 9 0 00-9 9 9 9 0 009 9 1.5 1.5 0 001.5-1.5c0-.39-.15-.74-.39-1-.23-.27-.38-.62-.38-1a1.5 1.5 0 011.5-1.5H16a5 5 0 005-5c0-4.42-4.03-8-9-8z"/></svg>')||this;return mt.colors=[],mt.addTransparent=!1,mt.colorBoxes=[],mt.colors=rt,mt.currentColor=Ft,mt.setCurrentColor=mt.setCurrentColor.bind(mt),mt.getColorBox=mt.getColorBox.bind(mt),mt}return yt(Ze,Tt),Ze.prototype.getUi=function(){var Ge=this,rt=document.createElement("div");return rt.style.overflow="hidden",rt.style.whiteSpace="nowrap",this.colors.forEach(function(Ft){var qe=Ge.getColorBox(Ft);rt.appendChild(qe),Ge.colorBoxes.push(qe)}),rt},Ze.prototype.getColorBox=function(Ge){var rt=this,Ft=this.uiStyleSettings.toolbarHeight/4,qe=this.uiStyleSettings.toolbarHeight-Ft,mt=document.createElement("div");mt.style.display="inline-block",mt.style.boxSizing="content-box",mt.style.width=qe-2+"px",mt.style.height=qe-2+"px",mt.style.padding="1px",mt.style.marginRight="2px",mt.style.marginBottom="2px",mt.style.borderWidth="2px",mt.style.borderStyle="solid",mt.style.borderRadius=(qe+2)/2+"px",mt.style.borderColor=Ge===this.currentColor?this.uiStyleSettings.toolboxAccentColor:"transparent",mt.addEventListener("click",function(){rt.setCurrentColor(Ge,mt)});var An=document.createElement("div");return An.style.display="inline-block",An.style.width=qe-2+"px",An.style.height=qe-2+"px",An.style.backgroundColor=Ge,An.style.borderRadius=qe/2+"px",Ge==="transparent"&&(An.style.fill=this.uiStyleSettings.toolboxAccentColor,An.innerHTML=`<svg viewBox="0 0 24 24">
|
|
<path d="M2,5.27L3.28,4L20,20.72L18.73,22L15.65,18.92C14.5,19.3 13.28,19.5 12,19.5C7,19.5 2.73,16.39 1,12C1.69,10.24 2.79,8.69 4.19,7.46L2,5.27M12,9A3,3 0 0,1 15,12C15,12.35 14.94,12.69 14.83,13L11,9.17C11.31,9.06 11.65,9 12,9M12,4.5C17,4.5 21.27,7.61 23,12C22.18,14.08 20.79,15.88 19,17.19L17.58,15.76C18.94,14.82 20.06,13.54 20.82,12C19.17,8.64 15.76,6.5 12,6.5C10.91,6.5 9.84,6.68 8.84,7L7.3,5.47C8.74,4.85 10.33,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C12.69,17.5 13.37,17.43 14,17.29L11.72,15C10.29,14.85 9.15,13.71 9,12.28L5.6,8.87C4.61,9.72 3.78,10.78 3.18,12Z" />
|
|
</svg>`),mt.appendChild(An),mt},Ze.prototype.setCurrentColor=function(Ge,rt){var Ft=this;this.currentColor=Ge,this.colorBoxes.forEach(function(qe){qe.style.borderColor=qe===rt?Ft.uiStyleSettings.toolboxAccentColor:"transparent"}),this.onColorChanged&&this.onColorChanged(Ge)},Ze}(ue),Ce=function(){function Tt(Ze,Ge,rt){this._state="new",this._isSelected=!1,this._container=Ze,this._overlayContainer=Ge,this.globalSettings=rt,this.stateChanged=this.stateChanged.bind(this),this.colorChanged=this.colorChanged.bind(this),this.fillColorChanged=this.fillColorChanged.bind(this)}return Object.defineProperty(Tt.prototype,"typeName",{get:function(){return Object.getPrototypeOf(this).constructor.typeName},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"container",{get:function(){return this._container},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"overlayContainer",{get:function(){return this._overlayContainer},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"state",{get:function(){return this._state},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"toolboxPanels",{get:function(){return[]},enumerable:!1,configurable:!0}),Tt.prototype.ownsTarget=function(Ze){return!1},Object.defineProperty(Tt.prototype,"isSelected",{get:function(){return this._isSelected},enumerable:!1,configurable:!0}),Tt.prototype.select=function(){this.container.style.cursor="move",this._isSelected=!0,this.manipulationStartState=this.getState()},Tt.prototype.deselect=function(){this.container.style.cursor="default",this._isSelected=!1,this.stateChanged()},Tt.prototype.pointerDown=function(Ze,Ge){},Tt.prototype.dblClick=function(Ze,Ge){},Tt.prototype.manipulate=function(Ze){},Tt.prototype.pointerUp=function(Ze){this.stateChanged()},Tt.prototype.dispose=function(){},Tt.prototype.addMarkerVisualToContainer=function(Ze){this.container.childNodes.length>0?this.container.insertBefore(Ze,this.container.childNodes[0]):this.container.appendChild(Ze)},Tt.prototype.getState=function(){return{typeName:Tt.typeName,state:this.state,notes:this.notes}},Tt.prototype.restoreState=function(Ze){this._state=Ze.state,this.notes=Ze.notes},Tt.prototype.scale=function(Ze,Ge){},Tt.prototype.colorChanged=function(Ze){this.onColorChanged&&this.onColorChanged(Ze),this.stateChanged()},Tt.prototype.fillColorChanged=function(Ze){this.onFillColorChanged&&this.onFillColorChanged(Ze),this.stateChanged()},Tt.prototype.stateChanged=function(){if(this.onStateChanged&&this.state!=="creating"&&this.state!=="new"){var Ze=this.getState();this.manipulationStartState!==void 0&&(this.manipulationStartState.state="select"),Ze.state="select",JSON.stringify(this.manipulationStartState)!=JSON.stringify(Ze)&&this.onStateChanged(this)}},Tt.typeName="MarkerBase",Tt}(),Ae=function(){function Tt(){this.findGripByVisual=this.findGripByVisual.bind(this)}return Tt.prototype.findGripByVisual=function(Ze){return this.topLeft.ownsTarget(Ze)?this.topLeft:this.topCenter.ownsTarget(Ze)?this.topCenter:this.topRight.ownsTarget(Ze)?this.topRight:this.centerLeft.ownsTarget(Ze)?this.centerLeft:this.centerRight.ownsTarget(Ze)?this.centerRight:this.bottomLeft.ownsTarget(Ze)?this.bottomLeft:this.bottomCenter.ownsTarget(Ze)?this.bottomCenter:this.bottomRight.ownsTarget(Ze)?this.bottomRight:void 0},Tt}(),Te=function(){function Tt(){this.GRIP_SIZE=10,this.visual=dt.createGroup(),this.visual.appendChild(dt.createCircle(1.5*this.GRIP_SIZE,[["fill","transparent"]])),this.visual.appendChild(dt.createCircle(this.GRIP_SIZE,[["fill","#cccccc"],["fill-opacity","0.7"],["stroke","#333333"],["stroke-width","2"],["stroke-opacity","0.7"]]))}return Tt.prototype.ownsTarget=function(Ze){return Ze===this.visual||Ze===this.visual.childNodes[0]||Ze===this.visual.childNodes[1]},Tt}(),Ie=function(){function Tt(){}return Tt.toITransformMatrix=function(Ze){return{a:Ze.a,b:Ze.b,c:Ze.c,d:Ze.d,e:Ze.e,f:Ze.f}},Tt.toSVGMatrix=function(Ze,Ge){return Ze.a=Ge.a,Ze.b=Ge.b,Ze.c=Ge.c,Ze.d=Ge.d,Ze.e=Ge.e,Ze.f=Ge.f,Ze},Tt}(),ze=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.left=0,qe.top=0,qe.width=0,qe.height=0,qe.defaultSize={x:50,y:20},qe.offsetX=0,qe.offsetY=0,qe.rotationAngle=0,qe.CB_DISTANCE=10,qe._suppressMarkerCreateEvent=!1,qe.container.transform.baseVal.appendItem(dt.createTransform()),qe.setupControlBox(),qe}return yt(Ze,Tt),Object.defineProperty(Ze.prototype,"centerX",{get:function(){return this.left+this.width/2},enumerable:!1,configurable:!0}),Object.defineProperty(Ze.prototype,"centerY",{get:function(){return this.top+this.height/2},enumerable:!1,configurable:!0}),Object.defineProperty(Ze.prototype,"visual",{get:function(){return this._visual},set:function(Ge){this._visual=Ge;var rt=dt.createTransform();this._visual.transform.baseVal.appendItem(rt)},enumerable:!1,configurable:!0}),Ze.prototype.ownsTarget=function(Ge){return!!Tt.prototype.ownsTarget.call(this,Ge)||!!(this.controlGrips.findGripByVisual(Ge)!==void 0||this.rotatorGrip!==void 0&&this.rotatorGrip.ownsTarget(Ge))},Ze.prototype.pointerDown=function(Ge,rt){Tt.prototype.pointerDown.call(this,Ge,rt),this.state==="new"&&(this.left=Ge.x,this.top=Ge.y),this.manipulationStartLeft=this.left,this.manipulationStartTop=this.top,this.manipulationStartWidth=this.width,this.manipulationStartHeight=this.height;var Ft=this.unrotatePoint(Ge);if(this.manipulationStartX=Ft.x,this.manipulationStartY=Ft.y,this.offsetX=Ft.x-this.left,this.offsetY=Ft.y-this.top,this.state!=="new")if(this.select(),this.activeGrip=this.controlGrips.findGripByVisual(rt),this.activeGrip!==void 0)this._state="resize";else if(this.rotatorGrip!==void 0&&this.rotatorGrip.ownsTarget(rt)){this.activeGrip=this.rotatorGrip;var qe=this.rotatePoint({x:this.centerX,y:this.centerY});this.left=qe.x-this.width/2,this.top=qe.y-this.height/2,this.moveVisual({x:this.left,y:this.top});var mt=this.container.transform.baseVal.getItem(0);mt.setRotate(this.rotationAngle,this.centerX,this.centerY),this.container.transform.baseVal.replaceItem(mt,0),this.adjustControlBox(),this._state="rotate"}else this._state="move"},Ze.prototype.pointerUp=function(Ge){var rt=this.state;Tt.prototype.pointerUp.call(this,Ge),this.state==="creating"&&this.width<10&&this.height<10?(this.width=this.defaultSize.x,this.height=this.defaultSize.y):this.manipulate(Ge),this._state="select",rt==="creating"&&this.onMarkerCreated&&this._suppressMarkerCreateEvent===!1&&this.onMarkerCreated(this)},Ze.prototype.moveVisual=function(Ge){this.visual.style.transform="translate("+Ge.x+"px, "+Ge.y+"px)"},Ze.prototype.manipulate=function(Ge){var rt=this.unrotatePoint(Ge);this.state==="creating"?this.resize(Ge):this.state==="move"?(this.left=this.manipulationStartLeft+(rt.x-this.manipulationStartLeft)-this.offsetX,this.top=this.manipulationStartTop+(rt.y-this.manipulationStartTop)-this.offsetY,this.moveVisual({x:this.left,y:this.top}),this.adjustControlBox()):this.state==="resize"?this.resize(rt):this.state==="rotate"&&this.rotate(Ge)},Ze.prototype.resize=function(Ge){var rt=this.manipulationStartLeft,Ft=this.manipulationStartWidth,qe=this.manipulationStartTop,mt=this.manipulationStartHeight;switch(this.activeGrip){case this.controlGrips.bottomLeft:case this.controlGrips.centerLeft:case this.controlGrips.topLeft:rt=this.manipulationStartLeft+Ge.x-this.manipulationStartX,Ft=this.manipulationStartWidth+this.manipulationStartLeft-rt;break;case this.controlGrips.bottomRight:case this.controlGrips.centerRight:case this.controlGrips.topRight:case void 0:Ft=this.manipulationStartWidth+Ge.x-this.manipulationStartX}switch(this.activeGrip){case this.controlGrips.topCenter:case this.controlGrips.topLeft:case this.controlGrips.topRight:qe=this.manipulationStartTop+Ge.y-this.manipulationStartY,mt=this.manipulationStartHeight+this.manipulationStartTop-qe;break;case this.controlGrips.bottomCenter:case this.controlGrips.bottomLeft:case this.controlGrips.bottomRight:case void 0:mt=this.manipulationStartHeight+Ge.y-this.manipulationStartY}Ft>=0?(this.left=rt,this.width=Ft):(this.left=rt+Ft,this.width=-Ft),mt>=0?(this.top=qe,this.height=mt):(this.top=qe+mt,this.height=-mt),this.setSize()},Ze.prototype.setSize=function(){this.moveVisual({x:this.left,y:this.top}),this.adjustControlBox()},Ze.prototype.rotate=function(Ge){if(Math.abs(Ge.x-this.centerX)>.1){var rt=Math.sign(Ge.x-this.centerX);this.rotationAngle=180*Math.atan((Ge.y-this.centerY)/(Ge.x-this.centerX))/Math.PI+90*rt,this.applyRotation()}},Ze.prototype.applyRotation=function(){var Ge=this.container.transform.baseVal.getItem(0);Ge.setRotate(this.rotationAngle,this.centerX,this.centerY),this.container.transform.baseVal.replaceItem(Ge,0)},Ze.prototype.rotatePoint=function(Ge){if(this.rotationAngle===0)return Ge;var rt=this.container.getCTM(),Ft=dt.createPoint(Ge.x,Ge.y);return{x:(Ft=Ft.matrixTransform(rt)).x,y:Ft.y}},Ze.prototype.unrotatePoint=function(Ge){if(this.rotationAngle===0)return Ge;var rt=this.container.getCTM();rt=rt.inverse();var Ft=dt.createPoint(Ge.x,Ge.y);return{x:(Ft=Ft.matrixTransform(rt)).x,y:Ft.y}},Ze.prototype.select=function(){Tt.prototype.select.call(this),this.adjustControlBox(),this.controlBox.style.display=""},Ze.prototype.deselect=function(){Tt.prototype.deselect.call(this),this.controlBox.style.display="none"},Ze.prototype.setupControlBox=function(){this.controlBox=dt.createGroup();var Ge=dt.createTransform();Ge.setTranslate(-this.CB_DISTANCE/2,-this.CB_DISTANCE/2),this.controlBox.transform.baseVal.appendItem(Ge),this.container.appendChild(this.controlBox),this.controlRect=dt.createRect(this.width+this.CB_DISTANCE,this.height+this.CB_DISTANCE,[["stroke","black"],["stroke-width","1"],["stroke-opacity","0.5"],["stroke-dasharray","3, 2"],["fill","transparent"],["pointer-events","none"]]),this.controlBox.appendChild(this.controlRect),this.globalSettings.disableRotation!==!0&&(this.rotatorGripLine=dt.createLine((this.width+2*this.CB_DISTANCE)/2,this.top-this.CB_DISTANCE,(this.width+2*this.CB_DISTANCE)/2,this.top-3*this.CB_DISTANCE,[["stroke","black"],["stroke-width","1"],["stroke-opacity","0.5"],["stroke-dasharray","3, 2"]]),this.controlBox.appendChild(this.rotatorGripLine)),this.controlGrips=new Ae,this.addControlGrips(),this.controlBox.style.display="none"},Ze.prototype.adjustControlBox=function(){var Ge=this.controlBox.transform.baseVal.getItem(0);Ge.setTranslate(this.left-this.CB_DISTANCE/2,this.top-this.CB_DISTANCE/2),this.controlBox.transform.baseVal.replaceItem(Ge,0),this.controlRect.setAttribute("width",(this.width+this.CB_DISTANCE).toString()),this.controlRect.setAttribute("height",(this.height+this.CB_DISTANCE).toString()),this.rotatorGripLine!==void 0&&(this.rotatorGripLine.setAttribute("x1",((this.width+this.CB_DISTANCE)/2).toString()),this.rotatorGripLine.setAttribute("y1",(-this.CB_DISTANCE/2).toString()),this.rotatorGripLine.setAttribute("x2",((this.width+this.CB_DISTANCE)/2).toString()),this.rotatorGripLine.setAttribute("y2",(3*-this.CB_DISTANCE).toString())),this.positionGrips()},Ze.prototype.addControlGrips=function(){this.controlGrips.topLeft=this.createGrip(),this.controlGrips.topCenter=this.createGrip(),this.controlGrips.topRight=this.createGrip(),this.controlGrips.centerLeft=this.createGrip(),this.controlGrips.centerRight=this.createGrip(),this.controlGrips.bottomLeft=this.createGrip(),this.controlGrips.bottomCenter=this.createGrip(),this.controlGrips.bottomRight=this.createGrip(),this.globalSettings.disableRotation!==!0&&(this.rotatorGrip=this.createGrip()),this.positionGrips()},Ze.prototype.createGrip=function(){var Ge=new Te;return Ge.visual.transform.baseVal.appendItem(dt.createTransform()),this.controlBox.appendChild(Ge.visual),Ge},Ze.prototype.positionGrips=function(){var Ge=this.controlGrips.topLeft.GRIP_SIZE,rt=-Ge/2,Ft=rt,qe=(this.width+this.CB_DISTANCE)/2-Ge/2,mt=(this.height+this.CB_DISTANCE)/2-Ge/2,An=this.height+this.CB_DISTANCE-Ge/2,Gn=this.width+this.CB_DISTANCE-Ge/2;this.positionGrip(this.controlGrips.topLeft.visual,rt,Ft),this.positionGrip(this.controlGrips.topCenter.visual,qe,Ft),this.positionGrip(this.controlGrips.topRight.visual,Gn,Ft),this.positionGrip(this.controlGrips.centerLeft.visual,rt,mt),this.positionGrip(this.controlGrips.centerRight.visual,Gn,mt),this.positionGrip(this.controlGrips.bottomLeft.visual,rt,An),this.positionGrip(this.controlGrips.bottomCenter.visual,qe,An),this.positionGrip(this.controlGrips.bottomRight.visual,Gn,An),this.rotatorGrip!==void 0&&this.positionGrip(this.rotatorGrip.visual,qe,Ft-3*this.CB_DISTANCE)},Ze.prototype.positionGrip=function(Ge,rt,Ft){var qe=Ge.transform.baseVal.getItem(0);qe.setTranslate(rt,Ft),Ge.transform.baseVal.replaceItem(qe,0)},Ze.prototype.hideControlBox=function(){this.controlBox.style.display="none"},Ze.prototype.showControlBox=function(){this.controlBox.style.display=""},Ze.prototype.getState=function(){return Object.assign({left:this.left,top:this.top,width:this.width,height:this.height,rotationAngle:this.rotationAngle,visualTransformMatrix:Ie.toITransformMatrix(this.visual.transform.baseVal.getItem(0).matrix),containerTransformMatrix:Ie.toITransformMatrix(this.container.transform.baseVal.getItem(0).matrix)},Tt.prototype.getState.call(this))},Ze.prototype.restoreState=function(Ge){Tt.prototype.restoreState.call(this,Ge);var rt=Ge;this.left=rt.left,this.top=rt.top,this.width=rt.width,this.height=rt.height,this.rotationAngle=rt.rotationAngle,this.visual.transform.baseVal.getItem(0).setMatrix(Ie.toSVGMatrix(this.visual.transform.baseVal.getItem(0).matrix,rt.visualTransformMatrix)),this.container.transform.baseVal.getItem(0).setMatrix(Ie.toSVGMatrix(this.container.transform.baseVal.getItem(0).matrix,rt.containerTransformMatrix))},Ze.prototype.scale=function(Ge,rt){Tt.prototype.scale.call(this,Ge,rt);var Ft=this.rotatePoint({x:this.left,y:this.top}),qe=this.unrotatePoint({x:Ft.x*Ge,y:Ft.y*rt});this.left=qe.x,this.top=qe.y,this.width=this.width*Ge,this.height=this.height*rt,this.adjustControlBox()},Ze}(Ce),Ye=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.fillColor="transparent",qe.strokeColor="transparent",qe.strokeWidth=0,qe.strokeDasharray="",qe.opacity=1,qe.setStrokeColor=qe.setStrokeColor.bind(qe),qe.setFillColor=qe.setFillColor.bind(qe),qe.setStrokeWidth=qe.setStrokeWidth.bind(qe),qe.setStrokeDasharray=qe.setStrokeDasharray.bind(qe),qe.createVisual=qe.createVisual.bind(qe),qe}return yt(Ze,Tt),Ze.prototype.ownsTarget=function(Ge){return!(!Tt.prototype.ownsTarget.call(this,Ge)&&Ge!==this.visual)},Ze.prototype.createVisual=function(){this.visual=dt.createRect(1,1,[["fill",this.fillColor],["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()],["stroke-dasharray",this.strokeDasharray],["opacity",this.opacity.toString()]]),this.addMarkerVisualToContainer(this.visual)},Ze.prototype.pointerDown=function(Ge,rt){Tt.prototype.pointerDown.call(this,Ge,rt),this.state==="new"&&(this.createVisual(),this.moveVisual(Ge),this._state="creating")},Ze.prototype.manipulate=function(Ge){Tt.prototype.manipulate.call(this,Ge)},Ze.prototype.resize=function(Ge){Tt.prototype.resize.call(this,Ge),this.setSize()},Ze.prototype.setSize=function(){Tt.prototype.setSize.call(this),dt.setAttributes(this.visual,[["width",this.width.toString()],["height",this.height.toString()]])},Ze.prototype.pointerUp=function(Ge){Tt.prototype.pointerUp.call(this,Ge),this.setSize()},Ze.prototype.setStrokeColor=function(Ge){this.strokeColor=Ge,this.visual&&dt.setAttributes(this.visual,[["stroke",this.strokeColor]]),this.colorChanged(Ge),this.stateChanged()},Ze.prototype.setFillColor=function(Ge){this.fillColor=Ge,this.visual&&dt.setAttributes(this.visual,[["fill",this.fillColor]]),this.stateChanged()},Ze.prototype.setStrokeWidth=function(Ge){this.strokeWidth=Ge,this.visual&&dt.setAttributes(this.visual,[["stroke-width",this.strokeWidth.toString()]]),this.stateChanged()},Ze.prototype.setStrokeDasharray=function(Ge){this.strokeDasharray=Ge,this.visual&&dt.setAttributes(this.visual,[["stroke-dasharray",this.strokeDasharray]]),this.stateChanged()},Ze.prototype.getState=function(){return Object.assign({fillColor:this.fillColor,strokeColor:this.strokeColor,strokeWidth:this.strokeWidth,strokeDasharray:this.strokeDasharray,opacity:this.opacity},Tt.prototype.getState.call(this))},Ze.prototype.restoreState=function(Ge){var rt=Ge;this.fillColor=rt.fillColor,this.strokeColor=rt.strokeColor,this.strokeWidth=rt.strokeWidth,this.strokeDasharray=rt.strokeDasharray,this.opacity=rt.opacity,this.createVisual(),Tt.prototype.restoreState.call(this,Ge),this.setSize()},Ze.prototype.scale=function(Ge,rt){Tt.prototype.scale.call(this,Ge,rt),this.setSize()},Ze.title="Rectangle marker",Ze}(ze),lt=function(Tt){function Ze(Ge,rt,Ft,qe){var mt=Tt.call(this,Ge,qe||'<svg viewBox="0 0 24 24"><path d="M3 17h18v-2H3v2m0 3h18v-1H3v1m0-7h18v-3H3v3m0-9v4h18V4H3z"/></svg>')||this;return mt.widths=[],mt.widthBoxes=[],mt.widths=rt,mt.currentWidth=Ft,mt.setCurrentWidth=mt.setCurrentWidth.bind(mt),mt}return yt(Ze,Tt),Ze.prototype.getUi=function(){var Ge=this,rt=document.createElement("div");return rt.style.display="flex",rt.style.overflow="hidden",rt.style.flexGrow="2",this.widths.forEach(function(Ft){var qe=document.createElement("div");qe.style.display="flex",qe.style.flexGrow="2",qe.style.alignItems="center",qe.style.justifyContent="space-between",qe.style.padding="5px",qe.style.borderWidth="2px",qe.style.borderStyle="solid",qe.style.borderColor=Ft===Ge.currentWidth?Ge.uiStyleSettings.toolboxAccentColor:"transparent",qe.addEventListener("click",function(){Ge.setCurrentWidth(Ft,qe)}),rt.appendChild(qe);var mt=document.createElement("div");mt.innerText=Ft.toString(),mt.style.marginRight="5px",qe.appendChild(mt);var An=document.createElement("div");An.style.minHeight="20px",An.style.flexGrow="2",An.style.display="flex",An.style.alignItems="center";var Gn=document.createElement("hr");Gn.style.minWidth="20px",Gn.style.border="0px",Gn.style.borderTop=Ft+"px solid "+Ge.uiStyleSettings.toolboxColor,Gn.style.flexGrow="2",An.appendChild(Gn),qe.appendChild(An),Ge.widthBoxes.push(qe)}),rt},Ze.prototype.setCurrentWidth=function(Ge,rt){var Ft=this;this.currentWidth=Ge,this.widthBoxes.forEach(function(qe){qe.style.borderColor=qe===rt?Ft.uiStyleSettings.toolboxAccentColor:"transparent"}),this.onWidthChanged&&this.onWidthChanged(this.currentWidth)},Ze}(ue),Bt=function(Tt){function Ze(Ge,rt,Ft,qe){var mt=Tt.call(this,Ge,qe||'<svg viewBox="0 0 24 24"><path d="M3 16h5v-2H3v2m6.5 0h5v-2h-5v2m6.5 0h5v-2h-5v2M3 20h2v-2H3v2m4 0h2v-2H7v2m4 0h2v-2h-2v2m4 0h2v-2h-2v2m4 0h2v-2h-2v2M3 12h8v-2H3v2m10 0h8v-2h-8v2M3 4v4h18V4H3z"/></svg>')||this;return mt.styles=[],mt.styleBoxes=[],mt.styles=rt,mt.currentStyle=Ft,mt.setCurrentStyle=mt.setCurrentStyle.bind(mt),mt}return yt(Ze,Tt),Ze.prototype.getUi=function(){var Ge=this,rt=document.createElement("div");return rt.style.display="flex",rt.style.overflow="hidden",rt.style.flexGrow="2",this.styles.forEach(function(Ft){var qe=document.createElement("div");qe.style.display="flex",qe.style.alignItems="center",qe.style.justifyContent="space-between",qe.style.padding="5px",qe.style.borderWidth="2px",qe.style.borderStyle="solid",qe.style.overflow="hidden",qe.style.maxWidth=100/Ge.styles.length-5+"%",qe.style.borderColor=Ft===Ge.currentStyle?Ge.uiStyleSettings.toolboxAccentColor:"transparent",qe.addEventListener("click",function(){Ge.setCurrentStyle(Ft,qe)}),rt.appendChild(qe);var mt=document.createElement("div");mt.style.minHeight="20px",mt.style.flexGrow="2",mt.style.overflow="hidden";var An=`<svg width="100" height="20">
|
|
<line x1="0" y1="10" x2="100" y2="10" stroke="`+Ge.uiStyleSettings.toolboxColor+'" stroke-width="3" '+(Ft!==""?'stroke-dasharray="'+Ft+'"':"")+` />
|
|
</svg>`;mt.innerHTML=An,qe.appendChild(mt),Ge.styleBoxes.push(qe)}),rt},Ze.prototype.setCurrentStyle=function(Ge,rt){var Ft=this;this.currentStyle=Ge,this.styleBoxes.forEach(function(qe){qe.style.borderColor=qe===rt?Ft.uiStyleSettings.toolboxAccentColor:"transparent"}),this.onStyleChanged&&this.onStyleChanged(this.currentStyle)},Ze}(ue),kt=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.strokeColor=Ft.defaultColor,qe.strokeWidth=Ft.defaultStrokeWidth,qe.strokeDasharray=Ft.defaultStrokeDasharray,qe.strokePanel=new ce("Line color",Ft.defaultColorSet,Ft.defaultColor),qe.strokePanel.onColorChanged=qe.setStrokeColor,qe.strokeWidthPanel=new lt("Line width",Ft.defaultStrokeWidths,Ft.defaultStrokeWidth),qe.strokeWidthPanel.onWidthChanged=qe.setStrokeWidth,qe.strokeStylePanel=new Bt("Line style",Ft.defaultStrokeDasharrays,Ft.defaultStrokeDasharray),qe.strokeStylePanel.onStyleChanged=qe.setStrokeDasharray,qe}return yt(Ze,Tt),Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Tt.prototype.getState.call(this);return Ge.typeName=Ze.typeName,Ge},Ze.typeName="FrameMarker",Ze.title="Frame marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M4 6v13h16V6H4m14 11H6V8h12v9z"/></svg>',Ze}(Ye),xt=function(){this.defaultColorSet=["#EF4444","#10B981","#2563EB","#FFFF00","#7C3AED","#F472B6","#000000","#FFFFFF"],this.defaultColor=this.defaultColorSet[0],this.defaultFillColor=this.defaultColorSet[0],this.defaultStrokeColor=this.defaultColorSet[7],this.defaultHighlightColor=this.defaultColorSet[3],this.defaultStrokeWidth=3,this.defaultStrokeDasharray="",this.defaultHighlightOpacity=.5,this.defaultFontFamily="Helvetica, Arial, sans-serif",this.defaultStrokeWidths=[1,2,3,5,10],this.defaultStrokeDasharrays=["","3","12 3","9 6 3 6"],this.defaultOpacitySteps=[.1,.25,.5,.75,1],this.displayMode="inline",this.defaultFontFamilies=['Times, "Times New Roman", serif',"Helvetica, Arial, sans-serif",'Courier, "Courier New", monospace',"cursive","fantasy"],this.popupMargin=30,this.newFreehandMarkerOnPointerUp=!1,this.defaultColorsFollowCurrentColors=!1,this.freehandPixelRatio=1,this.disableRotation=!1,this.defaultCaptionFontSize="1rem",this.defaultCaptionText="Text"},Et=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.x1=0,qe.y1=0,qe.x2=0,qe.y2=0,qe.defaultLength=50,qe.manipulationStartX=0,qe.manipulationStartY=0,qe.manipulationStartX1=0,qe.manipulationStartY1=0,qe.manipulationStartX2=0,qe.manipulationStartY2=0,qe.setupControlBox(),qe}return yt(Ze,Tt),Ze.prototype.ownsTarget=function(Ge){return!!Tt.prototype.ownsTarget.call(this,Ge)||!(!this.grip1.ownsTarget(Ge)&&!this.grip2.ownsTarget(Ge))},Ze.prototype.pointerDown=function(Ge,rt){Tt.prototype.pointerDown.call(this,Ge,rt),this.manipulationStartX=Ge.x,this.manipulationStartY=Ge.y,this.state==="new"&&(this.x1=Ge.x,this.y1=Ge.y,this.x2=Ge.x,this.y2=Ge.y),this.manipulationStartX1=this.x1,this.manipulationStartY1=this.y1,this.manipulationStartX2=this.x2,this.manipulationStartY2=this.y2,this.state!=="new"&&(this.select(),this.grip1.ownsTarget(rt)?this.activeGrip=this.grip1:this.grip2.ownsTarget(rt)?this.activeGrip=this.grip2:this.activeGrip=void 0,this.activeGrip?this._state="resize":this._state="move")},Ze.prototype.pointerUp=function(Ge){var rt=this.state;Tt.prototype.pointerUp.call(this,Ge),this.state==="creating"&&Math.abs(this.x1-this.x2)<10&&Math.abs(this.y1-this.y2)<10?(this.x2=this.x1+this.defaultLength,this.adjustVisual(),this.adjustControlBox()):this.manipulate(Ge),this._state="select",rt==="creating"&&this.onMarkerCreated&&this.onMarkerCreated(this)},Ze.prototype.adjustVisual=function(){},Ze.prototype.manipulate=function(Ge){this.state==="creating"?this.resize(Ge):this.state==="move"?(this.x1=this.manipulationStartX1+Ge.x-this.manipulationStartX,this.y1=this.manipulationStartY1+Ge.y-this.manipulationStartY,this.x2=this.manipulationStartX2+Ge.x-this.manipulationStartX,this.y2=this.manipulationStartY2+Ge.y-this.manipulationStartY,this.adjustVisual(),this.adjustControlBox()):this.state==="resize"&&this.resize(Ge)},Ze.prototype.resize=function(Ge){switch(this.activeGrip){case this.grip1:this.x1=Ge.x,this.y1=Ge.y;break;case this.grip2:case void 0:this.x2=Ge.x,this.y2=Ge.y}this.adjustVisual(),this.adjustControlBox()},Ze.prototype.select=function(){Tt.prototype.select.call(this),this.adjustControlBox(),this.controlBox.style.display=""},Ze.prototype.deselect=function(){Tt.prototype.deselect.call(this),this.controlBox.style.display="none"},Ze.prototype.setupControlBox=function(){this.controlBox=dt.createGroup(),this.container.appendChild(this.controlBox),this.addControlGrips(),this.controlBox.style.display="none"},Ze.prototype.adjustControlBox=function(){this.positionGrips()},Ze.prototype.addControlGrips=function(){this.grip1=this.createGrip(),this.grip2=this.createGrip(),this.positionGrips()},Ze.prototype.createGrip=function(){var Ge=new Te;return Ge.visual.transform.baseVal.appendItem(dt.createTransform()),this.controlBox.appendChild(Ge.visual),Ge},Ze.prototype.positionGrips=function(){var Ge=this.grip1.GRIP_SIZE;this.positionGrip(this.grip1.visual,this.x1-Ge/2,this.y1-Ge/2),this.positionGrip(this.grip2.visual,this.x2-Ge/2,this.y2-Ge/2)},Ze.prototype.positionGrip=function(Ge,rt,Ft){var qe=Ge.transform.baseVal.getItem(0);qe.setTranslate(rt,Ft),Ge.transform.baseVal.replaceItem(qe,0)},Ze.prototype.getState=function(){return Object.assign({x1:this.x1,y1:this.y1,x2:this.x2,y2:this.y2},Tt.prototype.getState.call(this))},Ze.prototype.restoreState=function(Ge){Tt.prototype.restoreState.call(this,Ge);var rt=Ge;this.x1=rt.x1,this.y1=rt.y1,this.x2=rt.x2,this.y2=rt.y2},Ze.prototype.scale=function(Ge,rt){Tt.prototype.scale.call(this,Ge,rt),this.x1=this.x1*Ge,this.y1=this.y1*rt,this.x2=this.x2*Ge,this.y2=this.y2*rt,this.adjustVisual(),this.adjustControlBox()},Ze}(Ce),$t=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.strokeColor="transparent",qe.strokeWidth=0,qe.strokeDasharray="",qe.setStrokeColor=qe.setStrokeColor.bind(qe),qe.setStrokeWidth=qe.setStrokeWidth.bind(qe),qe.setStrokeDasharray=qe.setStrokeDasharray.bind(qe),qe.strokeColor=Ft.defaultColor,qe.strokeWidth=Ft.defaultStrokeWidth,qe.strokeDasharray=Ft.defaultStrokeDasharray,qe.strokePanel=new ce("Line color",Ft.defaultColorSet,Ft.defaultColor),qe.strokePanel.onColorChanged=qe.setStrokeColor,qe.strokeWidthPanel=new lt("Line width",Ft.defaultStrokeWidths,Ft.defaultStrokeWidth),qe.strokeWidthPanel.onWidthChanged=qe.setStrokeWidth,qe.strokeStylePanel=new Bt("Line style",Ft.defaultStrokeDasharrays,Ft.defaultStrokeDasharray),qe.strokeStylePanel.onStyleChanged=qe.setStrokeDasharray,qe}return yt(Ze,Tt),Ze.prototype.ownsTarget=function(Ge){return!(!Tt.prototype.ownsTarget.call(this,Ge)&&Ge!==this.visual&&Ge!==this.selectorLine&&Ge!==this.visibleLine)},Ze.prototype.createVisual=function(){this.visual=dt.createGroup(),this.selectorLine=dt.createLine(this.x1,this.y1,this.x2,this.y2,[["stroke","transparent"],["stroke-width",(this.strokeWidth+10).toString()]]),this.visibleLine=dt.createLine(this.x1,this.y1,this.x2,this.y2,[["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()]]),this.visual.appendChild(this.selectorLine),this.visual.appendChild(this.visibleLine),this.addMarkerVisualToContainer(this.visual)},Ze.prototype.pointerDown=function(Ge,rt){Tt.prototype.pointerDown.call(this,Ge,rt),this.state==="new"&&(this.createVisual(),this.adjustVisual(),this._state="creating")},Ze.prototype.adjustVisual=function(){this.selectorLine&&this.visibleLine&&(this.selectorLine.setAttribute("x1",this.x1.toString()),this.selectorLine.setAttribute("y1",this.y1.toString()),this.selectorLine.setAttribute("x2",this.x2.toString()),this.selectorLine.setAttribute("y2",this.y2.toString()),this.visibleLine.setAttribute("x1",this.x1.toString()),this.visibleLine.setAttribute("y1",this.y1.toString()),this.visibleLine.setAttribute("x2",this.x2.toString()),this.visibleLine.setAttribute("y2",this.y2.toString()),dt.setAttributes(this.visibleLine,[["stroke",this.strokeColor]]),dt.setAttributes(this.visibleLine,[["stroke-width",this.strokeWidth.toString()]]),dt.setAttributes(this.visibleLine,[["stroke-dasharray",this.strokeDasharray.toString()]]))},Ze.prototype.setStrokeColor=function(Ge){this.strokeColor=Ge,this.adjustVisual(),this.colorChanged(Ge)},Ze.prototype.setStrokeWidth=function(Ge){this.strokeWidth=Ge,this.adjustVisual()},Ze.prototype.setStrokeDasharray=function(Ge){this.strokeDasharray=Ge,this.adjustVisual(),this.stateChanged()},Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Object.assign({strokeColor:this.strokeColor,strokeWidth:this.strokeWidth,strokeDasharray:this.strokeDasharray},Tt.prototype.getState.call(this));return Ge.typeName=Ze.typeName,Ge},Ze.prototype.restoreState=function(Ge){Tt.prototype.restoreState.call(this,Ge);var rt=Ge;this.strokeColor=rt.strokeColor,this.strokeWidth=rt.strokeWidth,this.strokeDasharray=rt.strokeDasharray,this.createVisual(),this.adjustVisual()},Ze.typeName="LineMarker",Ze.title="Line marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M19 13H5v-2h14v2z"/></svg>',Ze}(Et),Zt=function(Tt){function Ze(Ge,rt,Ft,qe){var mt=Tt.call(this,Ge,qe||'<svg viewBox="0 0 24 24"><path d="M17 8h3v12h1v1h-4v-1h1v-3h-4l-1.5 3H14v1h-4v-1h1l6-12m1 1l-3.5 7H18V9M5 3h5c1.11 0 2 .89 2 2v11H9v-5H6v5H3V5c0-1.11.89-2 2-2m1 2v4h3V5H6z"/></svg>')||this;return mt.fonts=[],mt.fontBoxes=[],mt.fonts=rt,mt.currentFont=Ft,mt.setCurrentFont=mt.setCurrentFont.bind(mt),mt}return yt(Ze,Tt),Ze.prototype.getUi=function(){var Ge=this,rt=document.createElement("div");return rt.style.overflow="hidden",rt.style.flexGrow="2",this.fonts.forEach(function(Ft){var qe=document.createElement("div");qe.style.display="inline-block",qe.style.alignItems="center",qe.style.justifyContent="space-between",qe.style.padding="5px",qe.style.borderWidth="2px",qe.style.borderStyle="solid",qe.style.overflow="hidden",qe.style.maxWidth=100/Ge.fonts.length-5+"%",qe.style.borderColor=Ft===Ge.currentFont?Ge.uiStyleSettings.toolboxAccentColor:"transparent",qe.addEventListener("click",function(){Ge.setCurrentFont(Ft,qe)}),rt.appendChild(qe);var mt=document.createElement("div");mt.style.display="flex",mt.style.minHeight="20px",mt.style.flexGrow="2",mt.style.fontFamily=Ft,mt.style.overflow="hidden";var An=document.createElement("div");An.style.whiteSpace="nowrap",An.style.overflow="hidden",An.style.textOverflow="ellipsis",An.innerHTML="The quick brown fox jumps over the lazy dog",mt.appendChild(An),qe.appendChild(mt),Ge.fontBoxes.push(qe)}),rt},Ze.prototype.setCurrentFont=function(Ge,rt){var Ft=this;this.currentFont=Ge,this.fontBoxes.forEach(function(qe){qe.style.borderColor=qe===rt?Ft.uiStyleSettings.toolboxAccentColor:"transparent"}),this.onFontChanged&&this.onFontChanged(this.currentFont)},Ze}(ue),Yn=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.color="transparent",qe.padding=5,qe.DEFAULT_TEXT="\u8BF7\u8F93\u5165\u6587\u672C",qe.text=qe.DEFAULT_TEXT,qe.isMoved=!1,qe.color=Ft.defaultColor,qe.fontFamily=Ft.defaultFontFamily,qe.defaultSize={x:100,y:30},qe.setColor=qe.setColor.bind(qe),qe.setFont=qe.setFont.bind(qe),qe.renderText=qe.renderText.bind(qe),qe.sizeText=qe.sizeText.bind(qe),qe.textEditDivClicked=qe.textEditDivClicked.bind(qe),qe.showTextEditor=qe.showTextEditor.bind(qe),qe.setSize=qe.setSize.bind(qe),qe.positionTextEditor=qe.positionTextEditor.bind(qe),qe.colorPanel=new ce("Color",Ft.defaultColorSet,Ft.defaultColor),qe.colorPanel.onColorChanged=qe.setColor,qe.fontFamilyPanel=new Zt("Font",Ft.defaultFontFamilies,Ft.defaultFontFamily),qe.fontFamilyPanel.onFontChanged=qe.setFont,qe}return yt(Ze,Tt),Ze.prototype.ownsTarget=function(Ge){if(Tt.prototype.ownsTarget.call(this,Ge)||Ge===this.visual||Ge===this.textElement||Ge===this.bgRectangle)return!0;var rt=!1;return this.textElement.childNodes.forEach(function(Ft){Ft===Ge&&(rt=!0)}),rt},Ze.prototype.createVisual=function(){this.visual=dt.createGroup(),this.bgRectangle=dt.createRect(1,1,[["fill","transparent"]]),this.visual.appendChild(this.bgRectangle),this.textElement=dt.createText([["fill",this.color],["font-family",this.fontFamily],["font-size","16px"],["x","0"],["y","0"]]),this.textElement.transform.baseVal.appendItem(dt.createTransform()),this.textElement.transform.baseVal.appendItem(dt.createTransform()),this.visual.appendChild(this.textElement),this.addMarkerVisualToContainer(this.visual),this.renderText()},Ze.prototype.pointerDown=function(Ge,rt){Tt.prototype.pointerDown.call(this,Ge,rt),this.isMoved=!1,this.pointerDownPoint=Ge,this.pointerDownTimestamp=Date.now(),this.state==="new"&&(this.createVisual(),this.moveVisual(Ge),this._state="creating")},Ze.prototype.renderText=function(){var Ge=this;if(this.textElement){for(;this.textElement.lastChild;)this.textElement.removeChild(this.textElement.lastChild);this.text.split(/\r\n|[\n\v\f\r\x85\u2028\u2029]/).forEach(function(rt){Ge.textElement.appendChild(dt.createTSpan(rt.trim()===""?" ":rt.trim(),[["x","0"],["dy","1.2em"]]))}),setTimeout(this.sizeText,10)}},Ze.prototype.getTextScale=function(){var Ge=this.textElement.getBBox(),rt=1;if(Ge.width>0&&Ge.height>0){var Ft=(1*this.width-this.width*this.padding*2/100)/Ge.width,qe=(1*this.height-this.height*this.padding*2/100)/Ge.height;rt=Math.min(Ft,qe)}return rt},Ze.prototype.getTextPosition=function(Ge){var rt=this.textElement.getBBox(),Ft=0,qe=0;return rt.width>0&&rt.height>0&&(Ft=(this.width-rt.width*Ge)/2,qe=this.height/2-rt.height*Ge/2),{x:Ft,y:qe}},Ze.prototype.sizeText=function(){var Ge=this.textElement.getBBox(),rt=this.getTextScale(),Ft=this.getTextPosition(rt);Ft.y-=Ge.y*rt,navigator.userAgent.indexOf("Edge/")>-1?this.textElement.style.transform="translate("+Ft.x+"px, "+Ft.y+"px) scale("+rt+", "+rt+")":(this.textElement.transform.baseVal.getItem(0).setTranslate(Ft.x,Ft.y),this.textElement.transform.baseVal.getItem(1).setScale(rt,rt))},Ze.prototype.manipulate=function(Ge){Tt.prototype.manipulate.call(this,Ge),this.pointerDownPoint!==void 0&&(this.isMoved=Math.abs(Ge.x-this.pointerDownPoint.x)>5||Math.abs(Ge.y-this.pointerDownPoint.y)>5)},Ze.prototype.resize=function(Ge){Tt.prototype.resize.call(this,Ge),this.isMoved=!0,this.setSize(),this.sizeText()},Ze.prototype.setSize=function(){Tt.prototype.setSize.call(this),this.visual&&this.bgRectangle&&(dt.setAttributes(this.visual,[["width",this.width.toString()],["height",this.height.toString()]]),dt.setAttributes(this.bgRectangle,[["width",this.width.toString()],["height",this.height.toString()]]))},Ze.prototype.pointerUp=function(Ge){var rt=this.state;rt==="creating"&&(this._suppressMarkerCreateEvent=!0),Tt.prototype.pointerUp.call(this,Ge),this.setSize(),(rt==="creating"||!this.isMoved&&Date.now()-this.pointerDownTimestamp>500)&&this.showTextEditor(),this.pointerDownPoint=void 0},Ze.prototype.showTextEditor=function(){var Ge=this;this._state="edit",this.overlayContainer.innerHTML="",this.textEditDiv=document.createElement("div"),this.textEditDiv.style.flexGrow="2",this.textEditDiv.style.alignItems="center",this.textEditDiv.style.justifyContent="center",this.textEditDiv.style.pointerEvents="auto",this.textEditDiv.style.overflow="hidden",this.textEditor=document.createElement("div"),this.textEditor.style.position="absolute",this.textEditor.style.fontFamily=this.fontFamily,this.textEditor.style.lineHeight="1em",this.textEditor.innerText=this.text,this.textEditor.contentEditable="true",this.textEditor.style.color=this.color,this.textEditor.style.whiteSpace="pre",this.positionTextEditor(),this.textEditor.addEventListener("pointerup",function(rt){rt.stopPropagation()}),this.textEditor.addEventListener("input",function(){for(var rt=Number.parseFloat(Ge.textEditor.style.fontSize);Ge.textEditor.clientWidth>=Number.parseInt(Ge.textEditor.style.maxWidth)&&rt>.9;)rt-=.1,Ge.textEditor.style.fontSize=Math.max(rt,.9)+"em"}),this.textEditor.addEventListener("keyup",function(rt){rt.cancelBubble=!0}),this.textEditor.addEventListener("paste",function(rt){if(rt.clipboardData){var Ft=rt.clipboardData.getData("text"),qe=window.getSelection();if(!qe.rangeCount)return!1;qe.deleteFromDocument(),qe.getRangeAt(0).insertNode(document.createTextNode(Ft)),rt.preventDefault()}}),this.textEditDiv.addEventListener("pointerup",function(){Ge.textEditDivClicked(Ge.textEditor.innerText)}),this.textEditDiv.appendChild(this.textEditor),this.overlayContainer.appendChild(this.textEditDiv),this.hideVisual(),this.textEditor.focus(),document.execCommand("selectAll")},Ze.prototype.positionTextEditor=function(){if(this.state==="edit")if(this.textEditor===void 0)this.showTextEditor();else{this.textElement.style.display="";var Ge=this.getTextScale(),rt=this.rotatePoint({x:this.left+this.width/2,y:this.top+this.height/2}),Ft=this.textElement.getBBox(),qe={x:Ft.width*Ge,y:Ft.height*Ge};rt.x-=qe.x/2,rt.y-=qe.y/2,this.textEditor.style.top=rt.y+"px",this.textEditor.style.left=rt.x+"px",this.textEditor.style.maxWidth=this.overlayContainer.offsetWidth-rt.x+"px",this.textEditor.style.fontSize=Math.max(16*Ge,12)+"px",this.textElement.style.display="none"}},Ze.prototype.textEditDivClicked=function(Ge){this.text=Ge.trim(),this.overlayContainer.innerHTML="",this.renderText(),this.showVisual(),this._suppressMarkerCreateEvent&&(this._suppressMarkerCreateEvent=!1,this.onMarkerCreated&&this.onMarkerCreated(this)),this.stateChanged()},Ze.prototype.select=function(){Tt.prototype.select.call(this),this.state==="edit"&&this.textEditDivClicked(this.textEditor.innerText)},Ze.prototype.deselect=function(){this.state==="edit"&&this.textEditDivClicked(this.textEditor.innerText),Tt.prototype.deselect.call(this)},Ze.prototype.dblClick=function(Ge,rt){Tt.prototype.dblClick.call(this,Ge,rt),this.showTextEditor()},Ze.prototype.setColor=function(Ge){this.textElement&&dt.setAttributes(this.textElement,[["fill",Ge]]),this.color=Ge,this.textEditor&&(this.textEditor.style.color=this.color),this.colorChanged(Ge)},Ze.prototype.setFont=function(Ge){this.textElement&&dt.setAttributes(this.textElement,[["font-family",Ge]]),this.fontFamily=Ge,this.textEditor&&(this.textEditor.style.fontFamily=this.fontFamily),this.renderText(),this.stateChanged()},Ze.prototype.hideVisual=function(){this.textElement.style.display="none",this.hideControlBox()},Ze.prototype.showVisual=function(){this.state==="edit"&&(this._state="select"),this.textElement.style.display="",this.showControlBox()},Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.colorPanel,this.fontFamilyPanel]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Object.assign({color:this.color,fontFamily:this.fontFamily,padding:this.padding,text:this.text},Tt.prototype.getState.call(this));return Ge.typeName=Ze.typeName,Ge},Ze.prototype.restoreState=function(Ge){var rt=Ge;this.color=rt.color,this.fontFamily=rt.fontFamily,this.padding=rt.padding,this.text=rt.text,this.createVisual(),Tt.prototype.restoreState.call(this,Ge),this.setSize()},Ze.prototype.scale=function(Ge,rt){Tt.prototype.scale.call(this,Ge,rt),this.setSize(),this.sizeText(),this.positionTextEditor()},Ze.typeName="TextMarker",Ze.title="Text marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M9.6 14L12 7.7l2.4 6.3M11 5L5.5 19h2.2l1.1-3H15l1.1 3h2.2L13 5h-2z"/></svg>',Ze}(ze),gn=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.color="transparent",qe.lineWidth=3,qe.drawing=!1,qe.pixelRatio=1,qe.color=Ft.defaultColor,qe.lineWidth=Ft.defaultStrokeWidth,qe.pixelRatio=Ft.freehandPixelRatio,qe.setColor=qe.setColor.bind(qe),qe.addCanvas=qe.addCanvas.bind(qe),qe.finishCreation=qe.finishCreation.bind(qe),qe.setLineWidth=qe.setLineWidth.bind(qe),qe.colorPanel=new ce("Color",Ft.defaultColorSet,Ft.defaultColor),qe.colorPanel.onColorChanged=qe.setColor,qe.lineWidthPanel=new lt("Line width",Ft.defaultStrokeWidths,Ft.defaultStrokeWidth),qe.lineWidthPanel.onWidthChanged=qe.setLineWidth,qe}return yt(Ze,Tt),Ze.prototype.ownsTarget=function(Ge){return!(!Tt.prototype.ownsTarget.call(this,Ge)&&Ge!==this.visual&&Ge!==this.drawingImage)},Ze.prototype.createVisual=function(){this.visual=dt.createGroup(),this.drawingImage=dt.createImage(),this.visual.appendChild(this.drawingImage);var Ge=dt.createTransform();this.visual.transform.baseVal.appendItem(Ge),this.addMarkerVisualToContainer(this.visual)},Ze.prototype.pointerDown=function(Ge,rt){this.state==="new"&&(this.addCanvas(),this.createVisual(),this._state="creating"),this.state==="creating"?(this.canvasContext.strokeStyle=this.color,this.canvasContext.lineWidth=this.lineWidth,this.canvasContext.beginPath(),this.canvasContext.moveTo(Ge.x,Ge.y),this.drawing=!0):Tt.prototype.pointerDown.call(this,Ge,rt)},Ze.prototype.manipulate=function(Ge){this.state==="creating"?this.drawing&&(this.canvasContext.lineTo(Ge.x,Ge.y),this.canvasContext.stroke()):Tt.prototype.manipulate.call(this,Ge)},Ze.prototype.resize=function(Ge){Tt.prototype.resize.call(this,Ge),dt.setAttributes(this.visual,[["width",this.width.toString()],["height",this.height.toString()]]),dt.setAttributes(this.drawingImage,[["width",this.width.toString()],["height",this.height.toString()]])},Ze.prototype.pointerUp=function(Ge){this._state==="creating"?this.drawing&&(this.canvasContext.closePath(),this.drawing=!1,this.globalSettings.newFreehandMarkerOnPointerUp&&this.finishCreation()):Tt.prototype.pointerUp.call(this,Ge)},Ze.prototype.addCanvas=function(){this.overlayContainer.innerHTML="",this.canvasElement=document.createElement("canvas"),this.canvasElement.width=this.overlayContainer.clientWidth*this.pixelRatio,this.canvasElement.height=this.overlayContainer.clientHeight*this.pixelRatio,this.canvasContext=this.canvasElement.getContext("2d"),this.canvasContext.scale(this.pixelRatio,this.pixelRatio),this.overlayContainer.appendChild(this.canvasElement)},Ze.prototype.select=function(){this.state==="creating"&&this.finishCreation(),Tt.prototype.select.call(this)},Ze.prototype.deselect=function(){this.state==="creating"&&this.finishCreation(),Tt.prototype.deselect.call(this)},Ze.prototype.finishCreation=function(){for(var Ge=this.canvasContext.getImageData(0,0,this.canvasElement.width,this.canvasElement.height),rt=[this.canvasElement.width+1,this.canvasElement.height+1,-1,-1],Ft=rt[0],qe=rt[1],mt=rt[2],An=rt[3],Gn=!1,fo=0;fo<this.canvasElement.height;fo++)for(var qn=0;qn<this.canvasElement.width;qn++)Ge.data[fo*this.canvasElement.width*4+4*qn+3]>0&&(Gn=!0,fo<qe&&(qe=fo),qn<Ft&&(Ft=qn),fo>An&&(An=fo),qn>mt&&(mt=qn));if(Gn){this.left=Ft/this.pixelRatio,this.top=qe/this.pixelRatio,this.width=(mt-Ft)/this.pixelRatio,this.height=(An-qe)/this.pixelRatio;var Kn=document.createElement("canvas");Kn.width=mt-Ft,Kn.height=An-qe,Kn.getContext("2d").putImageData(this.canvasContext.getImageData(Ft,qe,mt-Ft,An-qe),0,0),this.drawingImgUrl=Kn.toDataURL("image/png"),this.setDrawingImage(),this._state="select",this.onMarkerCreated&&this.onMarkerCreated(this)}this.overlayContainer.innerHTML=""},Ze.prototype.setDrawingImage=function(){dt.setAttributes(this.drawingImage,[["width",this.width.toString()],["height",this.height.toString()]]),dt.setAttributes(this.drawingImage,[["href",this.drawingImgUrl]]),this.moveVisual({x:this.left,y:this.top})},Ze.prototype.setColor=function(Ge){this.color=Ge,this.colorChanged(Ge)},Ze.prototype.setLineWidth=function(Ge){this.lineWidth=Ge},Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return this.state==="new"||this.state==="creating"?[this.colorPanel,this.lineWidthPanel]:[]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Object.assign({drawingImgUrl:this.drawingImgUrl},Tt.prototype.getState.call(this));return Ge.typeName=Ze.typeName,Ge},Ze.prototype.restoreState=function(Ge){this.createVisual(),Tt.prototype.restoreState.call(this,Ge),this.drawingImgUrl=Ge.drawingImgUrl,this.setDrawingImage()},Ze.prototype.scale=function(Ge,rt){Tt.prototype.scale.call(this,Ge,rt),this.setDrawingImage()},Ze.typeName="FreehandMarker",Ze.title="Freehand marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M9.75 20.85c1.78-.7 1.39-2.63.49-3.85-.89-1.25-2.12-2.11-3.36-2.94A9.817 9.817 0 014.54 12c-.28-.33-.85-.94-.27-1.06.59-.12 1.61.46 2.13.68.91.38 1.81.82 2.65 1.34l1.01-1.7C8.5 10.23 6.5 9.32 4.64 9.05c-1.06-.16-2.18.06-2.54 1.21-.32.99.19 1.99.77 2.77 1.37 1.83 3.5 2.71 5.09 4.29.34.33.75.72.95 1.18.21.44.16.47-.31.47-1.24 0-2.79-.97-3.8-1.61l-1.01 1.7c1.53.94 4.09 2.41 5.96 1.79m11.09-15.6c.22-.22.22-.58 0-.79l-1.3-1.3a.562.562 0 00-.78 0l-1.02 1.02 2.08 2.08M11 10.92V13h2.08l6.15-6.15-2.08-2.08L11 10.92z"/></svg>',Ze}(ze),Jn=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,Ft||'<svg viewBox="0 0 24 24"><path d="M8 14v4l-6-6 6-6v4h8V6l6 6-6 6v-4H8z"/></svg>')||this;return qe.typeBoxes=[],qe.currentType=rt,qe.setCurrentType=qe.setCurrentType.bind(qe),qe}return yt(Ze,Tt),Ze.prototype.getUi=function(){var Ge=this,rt=document.createElement("div");rt.style.display="flex",rt.style.overflow="hidden",rt.style.flexGrow="2";for(var Ft=function(An){var Gn="both";switch(An){case 0:Gn="both";break;case 1:Gn="start";break;case 2:Gn="end";break;case 3:Gn="none"}var fo=document.createElement("div");if(fo.style.display="flex",fo.style.flexGrow="2",fo.style.alignItems="center",fo.style.justifyContent="space-between",fo.style.padding="5px",fo.style.borderWidth="2px",fo.style.borderStyle="solid",fo.style.borderColor=Gn===qe.currentType?qe.uiStyleSettings.toolboxAccentColor:"transparent",fo.addEventListener("click",function(){Ge.setCurrentType(Gn,fo)}),rt.appendChild(fo),Gn==="both"||Gn==="start"){var qn=document.createElement("div");qn.style.display="flex",qn.style.alignItems="center",qn.style.minHeight="20px",qn.innerHTML=`<svg viewBox="0 0 10 10" width="10" height="10" xmlns="http://www.w3.org/2000/svg">
|
|
<polygon points="0,5 10,0 10,10" fill="`+(qe.uiStyleSettings!==void 0?qe.uiStyleSettings.toolboxColor:"#eeeeee")+`" />
|
|
</svg>`,qn.style.marginLeft="5px",fo.appendChild(qn)}var Kn=document.createElement("div");Kn.style.display="flex",Kn.style.alignItems="center",Kn.style.minHeight="20px",Kn.style.flexGrow="2";var oi=document.createElement("hr");if(oi.style.minWidth="20px",oi.style.border="0px",oi.style.borderTop="3px solid "+(qe.uiStyleSettings!==void 0?qe.uiStyleSettings.toolboxColor:"#eeeeee"),oi.style.flexGrow="2",Kn.appendChild(oi),fo.appendChild(Kn),Gn==="both"||Gn==="end"){var Wi=document.createElement("div");Wi.style.display="flex",Wi.style.alignItems="center",Wi.style.minHeight="20px",Wi.innerHTML=`<svg viewBox="0 0 10 10" width="10" height="10" xmlns="http://www.w3.org/2000/svg">
|
|
<polygon points="0,0 10,5 0,10" fill="`+(qe.uiStyleSettings!==void 0?qe.uiStyleSettings.toolboxColor:"#eeeeee")+`" />
|
|
</svg>`,Wi.style.marginRight="5px",fo.appendChild(Wi)}qe.typeBoxes.push(fo)},qe=this,mt=0;mt<4;mt++)Ft(mt);return rt},Ze.prototype.setCurrentType=function(Ge,rt){var Ft=this;this.currentType=Ge,this.typeBoxes.forEach(function(qe){qe.style.borderColor=qe===rt?Ft.uiStyleSettings!==void 0?Ft.uiStyleSettings.toolboxAccentColor:"#3080c3":"transparent"}),this.onArrowTypeChanged&&this.onArrowTypeChanged(this.currentType)},Ze}(ue),ci=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.arrowType="end",qe.arrowBaseHeight=10,qe.arrowBaseWidth=10,qe.getArrowPoints=qe.getArrowPoints.bind(qe),qe.setArrowType=qe.setArrowType.bind(qe),qe.arrowTypePanel=new Jn("Arrow type","end"),qe.arrowTypePanel.onArrowTypeChanged=qe.setArrowType,qe}return yt(Ze,Tt),Ze.prototype.ownsTarget=function(Ge){return!(!Tt.prototype.ownsTarget.call(this,Ge)&&Ge!==this.arrow1&&Ge!==this.arrow2)},Ze.prototype.getArrowPoints=function(Ge,rt){var Ft=this.arrowBaseWidth+2*this.strokeWidth,qe=this.arrowBaseHeight+2*this.strokeWidth;return Ge-Ft/2+","+(rt+qe/2)+" "+Ge+","+(rt-qe/2)+" "+(Ge+Ft/2)+","+(rt+qe/2)},Ze.prototype.createTips=function(){this.arrow1=dt.createPolygon(this.getArrowPoints(this.x1,this.y1),[["fill",this.strokeColor]]),this.arrow1.transform.baseVal.appendItem(dt.createTransform()),this.visual.appendChild(this.arrow1),this.arrow2=dt.createPolygon(this.getArrowPoints(this.x2,this.y2),[["fill",this.strokeColor]]),this.arrow2.transform.baseVal.appendItem(dt.createTransform()),this.visual.appendChild(this.arrow2)},Ze.prototype.pointerDown=function(Ge,rt){Tt.prototype.pointerDown.call(this,Ge,rt),this.state==="creating"&&this.createTips()},Ze.prototype.adjustVisual=function(){if(Tt.prototype.adjustVisual.call(this),this.arrow1&&this.arrow2){this.arrow1.style.display=this.arrowType==="both"||this.arrowType==="start"?"":"none",this.arrow2.style.display=this.arrowType==="both"||this.arrowType==="end"?"":"none",dt.setAttributes(this.arrow1,[["points",this.getArrowPoints(this.x1,this.y1)],["fill",this.strokeColor]]),dt.setAttributes(this.arrow2,[["points",this.getArrowPoints(this.x2,this.y2)],["fill",this.strokeColor]]);var Ge=0;Math.abs(this.x1-this.x2)>.1&&(Ge=180*Math.atan((this.y2-this.y1)/(this.x2-this.x1))/Math.PI+90*Math.sign(this.x1-this.x2));var rt=this.arrow1.transform.baseVal.getItem(0);rt.setRotate(Ge,this.x1,this.y1),this.arrow1.transform.baseVal.replaceItem(rt,0);var Ft=this.arrow2.transform.baseVal.getItem(0);Ft.setRotate(Ge+180,this.x2,this.y2),this.arrow2.transform.baseVal.replaceItem(Ft,0)}},Ze.prototype.setArrowType=function(Ge){this.arrowType=Ge,this.adjustVisual(),this.stateChanged()},Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel,this.arrowTypePanel]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Object.assign({arrowType:this.arrowType},Tt.prototype.getState.call(this));return Ge.typeName=Ze.typeName,Ge},Ze.prototype.restoreState=function(Ge){Tt.prototype.restoreState.call(this,Ge);var rt=Ge;this.arrowType=rt.arrowType,this.createTips(),this.adjustVisual()},Ze.typeName="ArrowMarker",Ze.title="Arrow marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 7 15.59V9H5v10h10v-2H8.41L19 6.41z"/></svg>',Ze}($t),Xn=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.fillColor=Ft.defaultFillColor,qe.strokeWidth=0,qe.fillPanel=new ce("Color",Ft.defaultColorSet,Ft.defaultFillColor),qe.fillPanel.onColorChanged=qe.setFillColor,qe}return yt(Ze,Tt),Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.fillPanel]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Tt.prototype.getState.call(this);return Ge.typeName=Ze.typeName,Ge},Ze.typeName="CoverMarker",Ze.title="Cover marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M4 6v13h16V6H4z"/></svg>',Ze}(Ye),In=function(Tt){function Ze(Ge,rt,Ft,qe){var mt=Tt.call(this,Ge,qe||'<svg viewBox="0 0 24 24"><path d="M17.66 8L12 2.35 6.34 8A8.02 8.02 0 004 13.64c0 2 .78 4.11 2.34 5.67a7.99 7.99 0 0011.32 0c1.56-1.56 2.34-3.67 2.34-5.67S19.22 9.56 17.66 8M6 14c0-2 .62-3.27 1.76-4.4L12 5.27l4.24 4.38C17.38 10.77 18 12 18 14H6z"/></svg>')||this;return mt.opacities=[],mt.opacityBoxes=[],mt.opacities=rt,mt.currentOpacity=Ft,mt.setCurrentOpacity=mt.setCurrentOpacity.bind(mt),mt}return yt(Ze,Tt),Ze.prototype.getUi=function(){var Ge=this,rt=document.createElement("div");return rt.style.display="flex",rt.style.overflow="hidden",rt.style.flexGrow="2",rt.style.justifyContent="space-between",this.opacities.forEach(function(Ft){var qe=document.createElement("div");qe.style.display="flex",qe.style.alignItems="center",qe.style.justifyContent="center",qe.style.padding="5px",qe.style.borderWidth="2px",qe.style.borderStyle="solid",qe.style.borderColor=Ft===Ge.currentOpacity?Ge.uiStyleSettings.toolboxAccentColor:"transparent",qe.addEventListener("click",function(){Ge.setCurrentOpacity(Ft,qe)}),rt.appendChild(qe);var mt=document.createElement("div");mt.innerText=100*Ft+"%",qe.appendChild(mt),Ge.opacityBoxes.push(qe)}),rt},Ze.prototype.setCurrentOpacity=function(Ge,rt){var Ft=this;this.currentOpacity=Ge,this.opacityBoxes.forEach(function(qe){qe.style.borderColor=qe===rt?Ft.uiStyleSettings.toolboxAccentColor:"transparent"}),this.onOpacityChanged&&this.onOpacityChanged(this.currentOpacity)},Ze}(ue),hi=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.setOpacity=qe.setOpacity.bind(qe),qe.fillColor=Ft.defaultHighlightColor,qe.strokeWidth=0,qe.opacity=Ft.defaultHighlightOpacity,qe.fillPanel=new ce("Color",Ft.defaultColorSet,qe.fillColor),qe.fillPanel.onColorChanged=qe.setFillColor,qe.opacityPanel=new In("Opacity",Ft.defaultOpacitySteps,qe.opacity),qe.opacityPanel.onOpacityChanged=qe.setOpacity,qe}return yt(Ze,Tt),Ze.prototype.setOpacity=function(Ge){this.opacity=Ge,this.visual&&dt.setAttributes(this.visual,[["opacity",this.opacity.toString()]]),this.stateChanged()},Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.fillPanel,this.opacityPanel]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Tt.prototype.getState.call(this);return Ge.typeName=Ze.typeName,Ge},Ze.typeName="HighlightMarker",Ze.title="Highlight marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M18.5 1.15c-.53 0-1.04.19-1.43.58l-5.81 5.82 5.65 5.65 5.82-5.81c.77-.78.77-2.04 0-2.83l-2.84-2.83c-.39-.39-.89-.58-1.39-.58M10.3 8.5l-5.96 5.96c-.78.78-.78 2.04.02 2.85C3.14 18.54 1.9 19.77.67 21h5.66l.86-.86c.78.76 2.03.75 2.81-.02l5.95-5.96"/></svg>',Ze}(Xn),Ht='<svg viewBox="0 0 24 24"><path d="M9.62 12L12 5.67 14.37 12M11 3L5.5 17h2.25l1.12-3h6.25l1.13 3h2.25L13 3h-2z"/></svg>',At='<svg viewBox="0 0 24 24"><path d="M19 11.5s-2 2.17-2 3.5a2 2 0 002 2 2 2 0 002-2c0-1.33-2-3.5-2-3.5M5.21 10L10 5.21 14.79 10m1.77-1.06L7.62 0 6.21 1.41l2.38 2.38-5.15 5.15c-.59.56-.59 1.53 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.59.59-1.56 0-2.12z"/></svg>',Hn=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.bgColor="transparent",qe.tipPosition={x:0,y:0},qe.tipBase1Position={x:0,y:0},qe.tipBase2Position={x:0,y:0},qe.tipMoving=!1,qe.color=Ft.defaultStrokeColor,qe.bgColor=Ft.defaultFillColor,qe.fontFamily=Ft.defaultFontFamily,qe.defaultSize={x:100,y:30},qe.setBgColor=qe.setBgColor.bind(qe),qe.getTipPoints=qe.getTipPoints.bind(qe),qe.positionTip=qe.positionTip.bind(qe),qe.setTipPoints=qe.setTipPoints.bind(qe),qe.colorPanel=new ce("Text color",Ft.defaultColorSet,qe.color,Ht),qe.colorPanel.onColorChanged=qe.setColor,qe.bgColorPanel=new ce("Fill color",Ft.defaultColorSet,qe.bgColor,At),qe.bgColorPanel.onColorChanged=qe.setBgColor,qe.fontFamilyPanel=new Zt("Font",Ft.defaultFontFamilies,Ft.defaultFontFamily),qe.fontFamilyPanel.onFontChanged=qe.setFont,qe.tipGrip=new Te,qe.tipGrip.visual.transform.baseVal.appendItem(dt.createTransform()),qe.controlBox.appendChild(qe.tipGrip.visual),qe}return yt(Ze,Tt),Ze.prototype.ownsTarget=function(Ge){return Tt.prototype.ownsTarget.call(this,Ge)||this.tipGrip.ownsTarget(Ge)||this.tip===Ge},Ze.prototype.createTip=function(){dt.setAttributes(this.bgRectangle,[["fill",this.bgColor],["rx","10px"]]),this.tip=dt.createPolygon(this.getTipPoints(),[["fill",this.bgColor]]),this.visual.appendChild(this.tip)},Ze.prototype.pointerDown=function(Ge,rt){this.state==="new"&&Tt.prototype.pointerDown.call(this,Ge,rt),this.state==="creating"?this.createTip():this.tipGrip.ownsTarget(rt)?(this.manipulationStartLeft=this.left,this.manipulationStartTop=this.top,this.tipMoving=!0):Tt.prototype.pointerDown.call(this,Ge,rt)},Ze.prototype.pointerUp=function(Ge){if(this.tipMoving)this.tipMoving=!1,this.isMoved=!0,Tt.prototype.pointerUp.call(this,Ge);else{var rt=this.state==="creating";Tt.prototype.pointerUp.call(this,Ge),this.setTipPoints(rt),this.positionTip()}},Ze.prototype.manipulate=function(Ge){if(this.tipMoving){var rt=this.unrotatePoint(Ge);this.tipPosition={x:rt.x-this.manipulationStartLeft,y:rt.y-this.manipulationStartTop},this.positionTip()}else Tt.prototype.manipulate.call(this,Ge)},Ze.prototype.setBgColor=function(Ge){this.bgRectangle&&this.tip&&(dt.setAttributes(this.bgRectangle,[["fill",Ge]]),dt.setAttributes(this.tip,[["fill",Ge]])),this.bgColor=Ge,this.fillColorChanged(Ge)},Ze.prototype.getTipPoints=function(){return this.setTipPoints(this.state==="creating"),this.tipBase1Position.x+","+this.tipBase1Position.y+" "+this.tipBase2Position.x+","+this.tipBase2Position.y+" "+this.tipPosition.x+","+this.tipPosition.y},Ze.prototype.setTipPoints=function(Ge){Ge===void 0&&(Ge=!1);var rt=Math.min(this.height/2,15),Ft=this.height/5;Ge&&(this.tipPosition={x:rt+Ft/2,y:this.height+20});var qe=Math.atan(this.height/2/(this.width/2));this.tipPosition.x<this.width/2&&this.tipPosition.y<this.height/2?qe<Math.atan((this.height/2-this.tipPosition.y)/(this.width/2-this.tipPosition.x))?(Ft=this.width/5,rt=Math.min(this.width/2,15),this.tipBase1Position={x:rt,y:0},this.tipBase2Position={x:rt+Ft,y:0}):(this.tipBase1Position={x:0,y:rt},this.tipBase2Position={x:0,y:rt+Ft}):this.tipPosition.x>=this.width/2&&this.tipPosition.y<this.height/2?qe<Math.atan((this.height/2-this.tipPosition.y)/(this.tipPosition.x-this.width/2))?(Ft=this.width/5,rt=Math.min(this.width/2,15),this.tipBase1Position={x:this.width-rt-Ft,y:0},this.tipBase2Position={x:this.width-rt,y:0}):(this.tipBase1Position={x:this.width,y:rt},this.tipBase2Position={x:this.width,y:rt+Ft}):this.tipPosition.x>=this.width/2&&this.tipPosition.y>=this.height/2?qe<Math.atan((this.tipPosition.y-this.height/2)/(this.tipPosition.x-this.width/2))?(Ft=this.width/5,rt=Math.min(this.width/2,15),this.tipBase1Position={x:this.width-rt-Ft,y:this.height},this.tipBase2Position={x:this.width-rt,y:this.height}):(this.tipBase1Position={x:this.width,y:this.height-rt-Ft},this.tipBase2Position={x:this.width,y:this.height-rt}):qe<Math.atan((this.tipPosition.y-this.height/2)/(this.width/2-this.tipPosition.x))?(Ft=this.width/5,rt=Math.min(this.width/2,15),this.tipBase1Position={x:rt,y:this.height},this.tipBase2Position={x:rt+Ft,y:this.height}):(this.tipBase1Position={x:0,y:this.height-rt},this.tipBase2Position={x:0,y:this.height-rt-Ft})},Ze.prototype.resize=function(Ge){Tt.prototype.resize.call(this,Ge),this.positionTip()},Ze.prototype.positionTip=function(){dt.setAttributes(this.tip,[["points",this.getTipPoints()]]);var Ge=this.tipGrip.visual.transform.baseVal.getItem(0);Ge.setTranslate(this.tipPosition.x,this.tipPosition.y),this.tipGrip.visual.transform.baseVal.replaceItem(Ge,0)},Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.colorPanel,this.bgColorPanel,this.fontFamilyPanel]},enumerable:!1,configurable:!0}),Ze.prototype.select=function(){this.positionTip(),Tt.prototype.select.call(this)},Ze.prototype.getState=function(){var Ge=Object.assign({bgColor:this.bgColor,tipPosition:this.tipPosition},Tt.prototype.getState.call(this));return Ge.typeName=Ze.typeName,Ge},Ze.prototype.restoreState=function(Ge){var rt=Ge;this.bgColor=rt.bgColor,this.tipPosition=rt.tipPosition,Tt.prototype.restoreState.call(this,Ge),this.createTip(),this.setTipPoints()},Ze.prototype.scale=function(Ge,rt){Tt.prototype.scale.call(this,Ge,rt),this.tipPosition={x:this.tipPosition.x*Ge,y:this.tipPosition.y*rt},this.positionTip()},Ze.typeName="CalloutMarker",Ze.title="Callout marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M4 2h16a2 2 0 012 2v12a2 2 0 01-2 2h-4l-4 4-4-4H4a2 2 0 01-2-2V4a2 2 0 012-2m0 2v12h4.83L12 19.17 15.17 16H20V4H4m2 3h12v2H6V7m0 4h10v2H6v-2z"/></svg>',Ze}(Yn),_i=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.fillColor="transparent",qe.strokeColor="transparent",qe.strokeWidth=0,qe.strokeDasharray="",qe.opacity=1,qe.strokeColor=Ft.defaultColor,qe.strokeWidth=Ft.defaultStrokeWidth,qe.strokeDasharray=Ft.defaultStrokeDasharray,qe.fillColor=Ft.defaultFillColor,qe.setStrokeColor=qe.setStrokeColor.bind(qe),qe.setFillColor=qe.setFillColor.bind(qe),qe.setStrokeWidth=qe.setStrokeWidth.bind(qe),qe.setStrokeDasharray=qe.setStrokeDasharray.bind(qe),qe.setOpacity=qe.setOpacity.bind(qe),qe.createVisual=qe.createVisual.bind(qe),qe.strokePanel=new ce("Line color",It(Ft.defaultColorSet,["transparent"]),Ft.defaultColor),qe.strokePanel.onColorChanged=qe.setStrokeColor,qe.fillPanel=new ce("Fill color",It(Ft.defaultColorSet,["transparent"]),qe.fillColor,At),qe.fillPanel.onColorChanged=qe.setFillColor,qe.strokeWidthPanel=new lt("Line width",Ft.defaultStrokeWidths,Ft.defaultStrokeWidth),qe.strokeWidthPanel.onWidthChanged=qe.setStrokeWidth,qe.strokeStylePanel=new Bt("Line style",Ft.defaultStrokeDasharrays,Ft.defaultStrokeDasharray),qe.strokeStylePanel.onStyleChanged=qe.setStrokeDasharray,qe.opacityPanel=new In("Opacity",Ft.defaultOpacitySteps,qe.opacity),qe.opacityPanel.onOpacityChanged=qe.setOpacity,qe}return yt(Ze,Tt),Ze.prototype.ownsTarget=function(Ge){return!(!Tt.prototype.ownsTarget.call(this,Ge)&&Ge!==this.visual)},Ze.prototype.createVisual=function(){this.visual=dt.createEllipse(this.width/2,this.height/2,[["fill",this.fillColor],["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()],["stroke-dasharray",this.strokeDasharray],["opacity",this.opacity.toString()]]),this.addMarkerVisualToContainer(this.visual)},Ze.prototype.pointerDown=function(Ge,rt){Tt.prototype.pointerDown.call(this,Ge,rt),this.state==="new"&&(this.createVisual(),this.moveVisual(Ge),this._state="creating")},Ze.prototype.manipulate=function(Ge){Tt.prototype.manipulate.call(this,Ge)},Ze.prototype.resize=function(Ge){Tt.prototype.resize.call(this,Ge),this.setSize()},Ze.prototype.setSize=function(){Tt.prototype.setSize.call(this),dt.setAttributes(this.visual,[["cx",(this.width/2).toString()],["cy",(this.height/2).toString()],["rx",(this.width/2).toString()],["ry",(this.height/2).toString()]])},Ze.prototype.pointerUp=function(Ge){Tt.prototype.pointerUp.call(this,Ge),this.setSize()},Ze.prototype.setStrokeColor=function(Ge){this.strokeColor=Ge,this.visual&&dt.setAttributes(this.visual,[["stroke",this.strokeColor]]),this.colorChanged(Ge),this.stateChanged()},Ze.prototype.setFillColor=function(Ge){this.fillColor=Ge,this.visual&&dt.setAttributes(this.visual,[["fill",this.fillColor]]),this.fillColorChanged(Ge),this.stateChanged()},Ze.prototype.setStrokeWidth=function(Ge){this.strokeWidth=Ge,this.visual&&dt.setAttributes(this.visual,[["stroke-width",this.strokeWidth.toString()]]),this.stateChanged()},Ze.prototype.setStrokeDasharray=function(Ge){this.strokeDasharray=Ge,this.visual&&dt.setAttributes(this.visual,[["stroke-dasharray",this.strokeDasharray]]),this.stateChanged()},Ze.prototype.setOpacity=function(Ge){this.opacity=Ge,this.visual&&dt.setAttributes(this.visual,[["opacity",this.opacity.toString()]]),this.stateChanged()},Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.fillPanel,this.strokeWidthPanel,this.strokeStylePanel,this.opacityPanel]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Object.assign({fillColor:this.fillColor,strokeColor:this.strokeColor,strokeWidth:this.strokeWidth,strokeDasharray:this.strokeDasharray,opacity:this.opacity},Tt.prototype.getState.call(this));return Ge.typeName=Ze.typeName,Ge},Ze.prototype.restoreState=function(Ge){var rt=Ge;this.fillColor=rt.fillColor,this.strokeColor=rt.strokeColor,this.strokeWidth=rt.strokeWidth,this.strokeDasharray=rt.strokeDasharray,this.opacity=rt.opacity,this.createVisual(),Tt.prototype.restoreState.call(this,Ge),this.setSize()},Ze.prototype.scale=function(Ge,rt){Tt.prototype.scale.call(this,Ge,rt),this.setSize()},Ze.typeName="EllipseMarker",Ze.title="Ellipse marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M12 4C6.5 4 2 7.58 2 12s4.5 8 10 8 10-3.58 10-8-4.5-8-10-8z"/></svg>',Ze}(ze),dr=function(Tt){function Ze(Ge,rt,Ft){return Tt.call(this,Ge,rt,Ft)||this}return yt(Ze,Tt),Object.defineProperty(Ze.prototype,"tipLength",{get:function(){return 10+3*this.strokeWidth},enumerable:!1,configurable:!0}),Ze.prototype.ownsTarget=function(Ge){return!(!Tt.prototype.ownsTarget.call(this,Ge)&&Ge!==this.tip1&&Ge!==this.tip2)},Ze.prototype.createTips=function(){this.tip1=dt.createLine(this.x1-this.tipLength/2,this.y1,this.x1+this.tipLength/2,this.y1,[["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()]]),this.tip1.transform.baseVal.appendItem(dt.createTransform()),this.visual.appendChild(this.tip1),this.tip2=dt.createLine(this.x2-this.tipLength/2,this.y2,this.x2+this.tipLength/2,this.y2,[["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()]]),this.tip2.transform.baseVal.appendItem(dt.createTransform()),this.visual.appendChild(this.tip2)},Ze.prototype.pointerDown=function(Ge,rt){Tt.prototype.pointerDown.call(this,Ge,rt),this.state==="creating"&&this.createTips()},Ze.prototype.adjustVisual=function(){if(Tt.prototype.adjustVisual.call(this),this.tip1&&this.tip2&&(dt.setAttributes(this.tip1,[["x1",(this.x1-this.tipLength/2).toString()],["y1",this.y1.toString()],["x2",(this.x1+this.tipLength/2).toString()],["y2",this.y1.toString()],["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()]]),dt.setAttributes(this.tip2,[["x1",(this.x2-this.tipLength/2).toString()],["y1",this.y2.toString()],["x2",(this.x2+this.tipLength/2).toString()],["y2",this.y2.toString()],["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()]]),Math.abs(this.x1-this.x2)>.1)){var Ge=180*Math.atan((this.y2-this.y1)/(this.x2-this.x1))/Math.PI+90*Math.sign(this.x1-this.x2),rt=this.tip1.transform.baseVal.getItem(0);rt.setRotate(Ge,this.x1,this.y1),this.tip1.transform.baseVal.replaceItem(rt,0);var Ft=this.tip2.transform.baseVal.getItem(0);Ft.setRotate(Ge+180,this.x2,this.y2),this.tip2.transform.baseVal.replaceItem(Ft,0)}},Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Tt.prototype.getState.call(this);return Ge.typeName=Ze.typeName,Ge},Ze.prototype.restoreState=function(Ge){Tt.prototype.restoreState.call(this,Ge),this.createTips(),this.adjustVisual()},Ze.typeName="MeasurementMarker",Ze.title="Measurement marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M1.39 18.36l1.77-1.76L4.58 18l1.06-1.05-1.42-1.41 1.42-1.42 2.47 2.48 1.06-1.06-2.47-2.48 1.41-1.41 1.42 1.41L10.59 12l-1.42-1.41 1.42-1.42 2.47 2.48 1.06-1.06-2.47-2.48 1.41-1.41 1.41 1.41 1.07-1.06-1.42-1.41 1.42-1.42L18 6.7l1.07-1.06-2.47-2.48 1.76-1.77 4.25 4.25L5.64 22.61l-4.25-4.25z"/></svg>',Ze}($t),En=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.strokePanel.colors=Ft.defaultColorSet,qe.fillColor="transparent",qe}return yt(Ze,Tt),Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Tt.prototype.getState.call(this);return Ge.typeName=Ze.typeName,Ge},Ze.typeName="EllipseFrameMarker",Ze.title="Ellipse frame marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M12 6c4.41 0 8 2.69 8 6s-3.59 6-8 6-8-2.69-8-6 3.59-6 8-6m0-2C6.5 4 2 7.58 2 12s4.5 8 10 8 10-3.58 10-8-4.5-8-10-8z"/></svg>',Ze}(_i),Mn=function(){function Tt(){this.undoStack=[],this.redoStack=[]}return Object.defineProperty(Tt.prototype,"isUndoPossible",{get:function(){return this.undoStack.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"isRedoPossible",{get:function(){return this.redoStack.length>0},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"undoStepCount",{get:function(){return this.undoStack.length},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"redoStepCount",{get:function(){return this.redoStack.length},enumerable:!1,configurable:!0}),Tt.prototype.addUndoStep=function(Ze){this.undoStack.length!==0&&JSON.stringify(this.undoStack[this.undoStack.length-1])===JSON.stringify(Ze)||(this.undoStack.push(Ze),JSON.stringify(this.lastRedoStep)!==JSON.stringify(Ze)&&this.redoStack.splice(0,this.redoStack.length))},Tt.prototype.replaceLastUndoStep=function(Ze){this.undoStack.length>0&&(this.undoStack[this.undoStack.length-1]=Ze)},Tt.prototype.getLastUndoStep=function(){return this.undoStack.length>0?this.undoStack[this.undoStack.length-1]:void 0},Tt.prototype.undo=function(){if(this.undoStack.length>1){var Ze=this.undoStack.pop();return Ze!==void 0&&this.redoStack.push(Ze),this.undoStack.length>0?this.undoStack[this.undoStack.length-1]:void 0}},Tt.prototype.redo=function(){return this.lastRedoStep=this.redoStack.pop(),this.lastRedoStep},Tt}(),Ln=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.strokeColor="transparent",qe.strokeWidth=0,qe.strokeDasharray="",qe.curveX=0,qe.curveY=0,qe.manipulationStartCurveX=0,qe.manipulationStartCurveY=0,qe.setStrokeColor=qe.setStrokeColor.bind(qe),qe.setStrokeWidth=qe.setStrokeWidth.bind(qe),qe.setStrokeDasharray=qe.setStrokeDasharray.bind(qe),qe.positionGrips=qe.positionGrips.bind(qe),qe.addControlGrips=qe.addControlGrips.bind(qe),qe.adjustVisual=qe.adjustVisual.bind(qe),qe.setupControlBox=qe.setupControlBox.bind(qe),qe.resize=qe.resize.bind(qe),qe.strokeColor=Ft.defaultColor,qe.strokeWidth=Ft.defaultStrokeWidth,qe.strokeDasharray=Ft.defaultStrokeDasharray,qe.strokePanel=new ce("Line color",Ft.defaultColorSet,Ft.defaultColor),qe.strokePanel.onColorChanged=qe.setStrokeColor,qe.strokeWidthPanel=new lt("Line width",Ft.defaultStrokeWidths,Ft.defaultStrokeWidth),qe.strokeWidthPanel.onWidthChanged=qe.setStrokeWidth,qe.strokeStylePanel=new Bt("Line style",Ft.defaultStrokeDasharrays,Ft.defaultStrokeDasharray),qe.strokeStylePanel.onStyleChanged=qe.setStrokeDasharray,qe}return yt(Ze,Tt),Ze.prototype.ownsTarget=function(Ge){return!(!Tt.prototype.ownsTarget.call(this,Ge)&&Ge!==this.visual&&Ge!==this.selectorCurve&&Ge!==this.visibleCurve&&!this.curveGrip.ownsTarget(Ge))},Ze.prototype.getPathD=function(){return"M "+this.x1+" "+this.y1+" Q "+this.curveX+" "+this.curveY+", "+this.x2+" "+this.y2},Ze.prototype.createVisual=function(){this.visual=dt.createGroup(),this.selectorCurve=dt.createPath(this.getPathD(),[["stroke","transparent"],["stroke-width",(this.strokeWidth+10).toString()],["fill","transparent"]]),this.visibleCurve=dt.createPath(this.getPathD(),[["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()],["fill","transparent"]]),this.visual.appendChild(this.selectorCurve),this.visual.appendChild(this.visibleCurve),this.addMarkerVisualToContainer(this.visual)},Ze.prototype.pointerDown=function(Ge,rt){Tt.prototype.pointerDown.call(this,Ge,rt),this.manipulationStartCurveX=this.curveX,this.manipulationStartCurveY=this.curveY,this.state==="new"&&(this.curveX=Ge.x,this.curveY=Ge.y),this.state==="new"?(this.createVisual(),this.adjustVisual(),this._state="creating"):this.curveGrip.ownsTarget(rt)&&(this.activeGrip=this.curveGrip,this._state="resize")},Ze.prototype.adjustVisual=function(){this.selectorCurve&&this.visibleCurve&&(this.selectorCurve.setAttribute("d",this.getPathD()),this.visibleCurve.setAttribute("d",this.getPathD()),dt.setAttributes(this.visibleCurve,[["stroke",this.strokeColor]]),dt.setAttributes(this.visibleCurve,[["stroke-width",this.strokeWidth.toString()]]),dt.setAttributes(this.visibleCurve,[["stroke-dasharray",this.strokeDasharray.toString()]]))},Ze.prototype.setupControlBox=function(){Tt.prototype.setupControlBox.call(this),this.curveControlLine1=dt.createLine(this.x1,this.y1,this.curveX,this.curveY,[["stroke","black"],["stroke-width","1"],["stroke-opacity","0.5"],["stroke-dasharray","3, 2"]]),this.curveControlLine2=dt.createLine(this.x2,this.y2,this.curveX,this.curveY,[["stroke","black"],["stroke-width","1"],["stroke-opacity","0.5"],["stroke-dasharray","3, 2"]]),this.controlBox.insertBefore(this.curveControlLine1,this.controlBox.firstChild),this.controlBox.insertBefore(this.curveControlLine2,this.controlBox.firstChild)},Ze.prototype.addControlGrips=function(){this.curveGrip=this.createGrip(),this.curveX=0,this.curveY=0,Tt.prototype.addControlGrips.call(this)},Ze.prototype.positionGrips=function(){Tt.prototype.positionGrips.call(this);var Ge=this.curveGrip.GRIP_SIZE;this.positionGrip(this.curveGrip.visual,this.curveX-Ge/2,this.curveY-Ge/2),this.curveControlLine1&&this.curveControlLine2&&(this.curveControlLine1.setAttribute("x1",this.x1.toString()),this.curveControlLine1.setAttribute("y1",this.y1.toString()),this.curveControlLine1.setAttribute("x2",this.curveX.toString()),this.curveControlLine1.setAttribute("y2",this.curveY.toString()),this.curveControlLine2.setAttribute("x1",this.x2.toString()),this.curveControlLine2.setAttribute("y1",this.y2.toString()),this.curveControlLine2.setAttribute("x2",this.curveX.toString()),this.curveControlLine2.setAttribute("y2",this.curveY.toString()))},Ze.prototype.manipulate=function(Ge){this.state==="move"&&(this.curveX=this.manipulationStartCurveX+Ge.x-this.manipulationStartX,this.curveY=this.manipulationStartCurveY+Ge.y-this.manipulationStartY),Tt.prototype.manipulate.call(this,Ge)},Ze.prototype.resize=function(Ge){this.activeGrip===this.curveGrip&&(this.curveX=Ge.x,this.curveY=Ge.y),Tt.prototype.resize.call(this,Ge),this.state==="creating"&&(this.curveX=this.x1+(this.x2-this.x1)/2,this.curveY=this.y1+(this.y2-this.y1)/2)},Ze.prototype.setStrokeColor=function(Ge){this.strokeColor=Ge,this.adjustVisual(),this.colorChanged(Ge)},Ze.prototype.setStrokeWidth=function(Ge){this.strokeWidth=Ge,this.adjustVisual()},Ze.prototype.setStrokeDasharray=function(Ge){this.strokeDasharray=Ge,this.adjustVisual()},Ze.prototype.scale=function(Ge,rt){this.curveX=this.curveX*Ge,this.curveY=this.curveY*rt,Tt.prototype.scale.call(this,Ge,rt)},Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.strokeWidthPanel,this.strokeStylePanel]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Object.assign({strokeColor:this.strokeColor,strokeWidth:this.strokeWidth,strokeDasharray:this.strokeDasharray,curveX:this.curveX,curveY:this.curveY},Tt.prototype.getState.call(this));return Ge.typeName=Ze.typeName,Ge},Ze.prototype.restoreState=function(Ge){Tt.prototype.restoreState.call(this,Ge);var rt=Ge;this.strokeColor=rt.strokeColor,this.strokeWidth=rt.strokeWidth,this.strokeDasharray=rt.strokeDasharray,this.curveX=rt.curveX,this.curveY=rt.curveY,this.createVisual(),this.adjustVisual()},Ze.typeName="CurveMarker",Ze.title="Curve marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M18.5 2A1.5 1.5 0 0120 3.5 1.5 1.5 0 0118.5 5c-.23 0-.45-.05-.65-.15l-3.69 3.7.34.45c2.19-1.26 4.76-2 7.5-2l1 .03v2.01L22 9c-2.58 0-5 .75-7 2.04A3.96 3.96 0 0111.04 15C9.75 17 9 19.42 9 22l.04 1H7.03L7 22c0-2.74.74-5.31 2-7.5l-.45-.34-3.7 3.69c.1.2.15.42.15.65A1.5 1.5 0 013.5 20 1.5 1.5 0 012 18.5 1.5 1.5 0 013.5 17c.23 0 .45.05.65.15l3.69-3.7C7.31 12.78 7 11.92 7 11a4 4 0 014-4c.92 0 1.78.31 2.45.84l3.7-3.69c-.1-.2-.15-.42-.15-.65A1.5 1.5 0 0118.5 2M11 9a2 2 0 00-2 2 2 2 0 002 2 2 2 0 002-2 2 2 0 00-2-2z"/></svg>',Ze}(Et),Mi=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,rt,Ft)||this;return qe.fillColor="transparent",qe.strokeColor="transparent",qe.strokeWidth=0,qe.strokeDasharray="",qe.textColor="transparent",qe.fontSize="1rem",qe.isMoved=!1,qe.captionText="Caption",qe.PADDING=5,qe.captionBoxWidth=0,qe.captionBoxHeight=0,qe.strokeColor=Ft.defaultColor,qe.strokeWidth=Ft.defaultStrokeWidth,qe.strokeDasharray=Ft.defaultStrokeDasharray,qe.fillColor=Ft.defaultFillColor,qe.textColor=Ft.defaultStrokeColor,qe.fontFamily=Ft.defaultFontFamily,qe.fontSize=Ft.defaultCaptionFontSize,qe.captionText=Ft.defaultCaptionText,qe.setStrokeColor=qe.setStrokeColor.bind(qe),qe.setFillColor=qe.setFillColor.bind(qe),qe.setStrokeWidth=qe.setStrokeWidth.bind(qe),qe.setStrokeDasharray=qe.setStrokeDasharray.bind(qe),qe.createVisual=qe.createVisual.bind(qe),qe.sizeCaption=qe.sizeCaption.bind(qe),qe.setCaptionText=qe.setCaptionText.bind(qe),qe.showTextEditor=qe.showTextEditor.bind(qe),qe.positionTextEditor=qe.positionTextEditor.bind(qe),qe.finishTextEditing=qe.finishTextEditing.bind(qe),qe.setFont=qe.setFont.bind(qe),qe.setTextColor=qe.setTextColor.bind(qe),qe.strokePanel=new ce("Line color",It(Ft.defaultColorSet,["transparent"]),qe.strokeColor),qe.strokePanel.onColorChanged=qe.setStrokeColor,qe.fillPanel=new ce("Fill color",It(Ft.defaultColorSet,["transparent"]),qe.fillColor,At),qe.fillPanel.onColorChanged=qe.setFillColor,qe.strokeWidthPanel=new lt("Line width",Ft.defaultStrokeWidths,Ft.defaultStrokeWidth),qe.strokeWidthPanel.onWidthChanged=qe.setStrokeWidth,qe.strokeStylePanel=new Bt("Line style",Ft.defaultStrokeDasharrays,Ft.defaultStrokeDasharray),qe.strokeStylePanel.onStyleChanged=qe.setStrokeDasharray,qe.fontFamilyPanel=new Zt("Font",Ft.defaultFontFamilies,Ft.defaultFontFamily),qe.fontFamilyPanel.onFontChanged=qe.setFont,qe.textColorPanel=new ce("Text color",Ft.defaultColorSet,qe.textColor,Ht),qe.textColorPanel.onColorChanged=qe.setTextColor,qe}return yt(Ze,Tt),Ze.prototype.ownsTarget=function(Ge){return!(!Tt.prototype.ownsTarget.call(this,Ge)&&Ge!==this.visual&&Ge!==this.frame&&Ge!==this.captionBg&&Ge!==this.captionElement)},Ze.prototype.createVisual=function(){this.visual=dt.createGroup(),this.addMarkerVisualToContainer(this.visual),this.captionBg=dt.createRect(1,1,[["fill",this.fillColor]]),this.visual.appendChild(this.captionBg),this.captionElement=dt.createText([["fill",this.textColor],["font-family",this.fontFamily]]),this.captionElement.style.fontSize=this.fontSize,this.captionElement.style.textAnchor="start",this.captionElement.style.dominantBaseline="text-before-edge",this.captionElement.textContent=this.captionText,this.visual.appendChild(this.captionElement),this.frame=dt.createRect(this.width,this.height,[["fill","transparent"],["stroke",this.strokeColor],["stroke-width",this.strokeWidth.toString()],["stroke-dasharray",this.strokeDasharray]]),this.visual.appendChild(this.frame),this.sizeCaption()},Ze.prototype.setCaptionText=function(Ge){this.captionText=Ge,this.captionElement.textContent=this.captionText,this.sizeCaption()},Ze.prototype.pointerDown=function(Ge,rt){Tt.prototype.pointerDown.call(this,Ge,rt),this.isMoved=!1,this.pointerDownPoint=Ge,this.pointerDownTimestamp=Date.now(),this.state==="new"&&(this.createVisual(),this.moveVisual(Ge),this._state="creating")},Ze.prototype.manipulate=function(Ge){Tt.prototype.manipulate.call(this,Ge),this.pointerDownPoint!==void 0&&(this.isMoved=Math.abs(Ge.x-this.pointerDownPoint.x)>5||Math.abs(Ge.y-this.pointerDownPoint.y)>5)},Ze.prototype.resize=function(Ge){Tt.prototype.resize.call(this,Ge),this.setSize()},Ze.prototype.sizeCaption=function(){var Ge=this.captionElement.getBBox();this.captionText.trim()!==""?(this.captionBoxWidth=Ge.width+2*this.PADDING,this.captionBoxHeight=Ge.height+2*this.PADDING):(this.captionBoxWidth=0,this.captionBoxHeight=0),dt.setAttributes(this.captionBg,[["width",this.captionBoxWidth.toString()],["height",this.captionBoxHeight.toString()],["clip-path","path('M0,0 H"+this.width+" V"+this.height+" H"+-this.width+" Z')"]]),dt.setAttributes(this.captionElement,[["x",this.PADDING.toString()],["y",this.PADDING.toString()],["clip-path","path('M0,0 H"+(this.width-this.PADDING)+" V"+this.height+" H"+(-this.width-this.PADDING)+" Z')"]])},Ze.prototype.showTextEditor=function(){var Ge=this;this._state="edit",this.overlayContainer.innerHTML="",this.textEditDiv=document.createElement("div"),this.textEditDiv.style.flexGrow="2",this.textEditDiv.style.alignItems="center",this.textEditDiv.style.justifyContent="center",this.textEditDiv.style.pointerEvents="auto",this.textEditDiv.style.overflow="hidden",this.textEditBox=document.createElement("input"),this.textEditBox.style.position="absolute",this.textEditBox.style.width=this.width+"px",this.captionBoxHeight>0&&(this.textEditBox.style.height=this.captionBoxHeight+"px"),this.textEditBox.style.fontSize=this.fontSize,this.textEditBox.style.fontFamily=this.fontFamily,this.textEditBox.style.backgroundColor=this.fillColor,this.textEditBox.style.color=this.textColor,this.textEditBox.style.borderWidth="0",this.textEditBox.setAttribute("value",this.captionText),this.textEditBox.select(),this.textEditDiv.appendChild(this.textEditBox),this.overlayContainer.appendChild(this.textEditDiv),this.textEditBox.addEventListener("pointerup",function(rt){rt.stopPropagation()}),this.textEditBox.addEventListener("keypress",function(rt){rt.key==="Enter"&&Ge.finishTextEditing(Ge.textEditBox.value)}),this.textEditBox.addEventListener("keyup",function(rt){rt.cancelBubble=!0}),this.textEditBox.addEventListener("blur",function(){Ge.finishTextEditing(Ge.textEditBox.value)}),this.textEditDiv.addEventListener("pointerup",function(){Ge.finishTextEditing(Ge.textEditBox.value)}),this.positionTextEditor(),this.textEditBox.focus()},Ze.prototype.positionTextEditor=function(){this.state==="edit"&&(this.textEditBox===void 0?this.showTextEditor():(this.textEditBox.style.left=this.left+"px",this.textEditBox.style.top=this.top+"px",this.textEditBox.style.transform="rotate("+this.rotationAngle+"deg)",this.textEditBox.style.transformOrigin=this.width/2+"px "+this.height/2+"px"))},Ze.prototype.finishTextEditing=function(Ge){this.setCaptionText(Ge.trim()),this.overlayContainer.innerHTML="",this.stateChanged()},Ze.prototype.setFont=function(Ge){this.captionElement&&dt.setAttributes(this.captionElement,[["font-family",Ge]]),this.fontFamily=Ge,this.textEditBox&&(this.textEditBox.style.fontFamily=this.fontFamily),this.sizeCaption(),this.stateChanged()},Ze.prototype.setTextColor=function(Ge){this.captionElement&&dt.setAttributes(this.captionElement,[["fill",Ge]]),this.textColor=Ge,this.textEditBox&&(this.textEditBox.style.color=this.textColor),this.stateChanged()},Ze.prototype.setSize=function(){Tt.prototype.setSize.call(this),dt.setAttributes(this.frame,[["width",this.width.toString()],["height",this.height.toString()]]),this.sizeCaption()},Ze.prototype.pointerUp=function(Ge){Tt.prototype.pointerUp.call(this,Ge),this.setSize(),!this.isMoved&&Date.now()-this.pointerDownTimestamp>500&&this.showTextEditor(),this.pointerDownPoint=void 0},Ze.prototype.dblClick=function(Ge,rt){Tt.prototype.dblClick.call(this,Ge,rt),this.showTextEditor()},Ze.prototype.setStrokeColor=function(Ge){this.strokeColor=Ge,this.frame&&dt.setAttributes(this.frame,[["stroke",this.strokeColor]]),this.colorChanged(Ge),this.stateChanged()},Ze.prototype.setFillColor=function(Ge){this.fillColor=Ge,this.captionBg&&dt.setAttributes(this.captionBg,[["fill",this.fillColor]]),this.fillColorChanged(Ge),this.stateChanged()},Ze.prototype.setStrokeWidth=function(Ge){this.strokeWidth=Ge,this.frame&&dt.setAttributes(this.frame,[["stroke-width",this.strokeWidth.toString()]]),this.stateChanged()},Ze.prototype.setStrokeDasharray=function(Ge){this.strokeDasharray=Ge,this.frame&&dt.setAttributes(this.frame,[["stroke-dasharray",this.strokeDasharray]]),this.stateChanged()},Object.defineProperty(Ze.prototype,"toolboxPanels",{get:function(){return[this.strokePanel,this.fillPanel,this.strokeWidthPanel,this.strokeStylePanel,this.fontFamilyPanel,this.textColorPanel]},enumerable:!1,configurable:!0}),Ze.prototype.getState=function(){var Ge=Object.assign({fillColor:this.fillColor,strokeColor:this.strokeColor,strokeWidth:this.strokeWidth,strokeDasharray:this.strokeDasharray,opacity:1,textColor:this.textColor,fontFamily:this.fontFamily,fontSize:this.fontSize,captionText:this.captionText},Tt.prototype.getState.call(this));return Ge.typeName=this.typeName,Ge},Ze.prototype.restoreState=function(Ge){var rt=Ge;this.fillColor=rt.fillColor,this.strokeColor=rt.strokeColor,this.strokeWidth=rt.strokeWidth,this.strokeDasharray=rt.strokeDasharray,this.textColor=rt.textColor,this.fontFamily=rt.fontFamily,this.captionText=rt.captionText,this.fontSize=rt.fontSize,this.createVisual(),Tt.prototype.restoreState.call(this,Ge),this.setSize()},Ze.prototype.scale=function(Ge,rt){Tt.prototype.scale.call(this,Ge,rt),this.setSize()},Ze.typeName="CaptionFrameMarker",Ze.title="Caption frame marker",Ze.icon='<svg viewBox="0 0 24 24"><path d="M5 3c-1.11 0-2 .89-2 2v14c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2H5m0 2h14v14H5V5m2 2v2h10V7H7z"/></svg>',Ze}(ze),Rt=function(){function Tt(Ze,Ge){Ge===void 0&&(Ge=!1),this.cancelable=!1,this._defaultPrevented=!1,this.markerArea=Ze,this.cancelable=Ge}return Object.defineProperty(Tt.prototype,"defaultPrevented",{get:function(){return this._defaultPrevented},enumerable:!1,configurable:!0}),Tt.prototype.preventDefault=function(){this._defaultPrevented=!0},Tt}(),ni=function(Tt){function Ze(Ge,rt,Ft){var qe=Tt.call(this,Ge,!1)||this;return qe.dataUrl=rt,qe.state=Ft,qe}return yt(Ze,Tt),Ze}(Rt),en=function(Tt){function Ze(Ge,rt,Ft){Ft===void 0&&(Ft=!1);var qe=Tt.call(this,Ge,Ft)||this;return qe.marker=rt,qe}return yt(Ze,Tt),Ze}(Rt),Ti=function(){function Tt(){this.render=[],this.beforeclose=[],this.close=[],this.show=[],this.restorestate=[],this.statechange=[],this.markerselect=[],this.markerdeselect=[],this.markercreating=[],this.markercreate=[],this.markerbeforedelete=[],this.markerdelete=[],this.markerchange=[],this.focus=[],this.blur=[]}return Tt.prototype.addEventListener=function(Ze,Ge){this[Ze].push(Ge)},Tt.prototype.removeEventListener=function(Ze,Ge){var rt=this[Ze].indexOf(Ge);rt>-1&&this[Ze].splice(rt,1)},Tt}(),Lr=function(){function Tt(Ze){this.touchPoints=0,this._availableMarkerTypes=this.DEFAULT_MARKER_TYPES,this.mode="select",this.markers=[],this.isDragging=!1,this.renderEventListeners=[],this.closeEventListeners=[],this.settings=new xt,this._isOpen=!1,this.undoRedoManager=new Mn,this.renderAtNaturalSize=!1,this.renderImageType="image/png",this.renderMarkersOnly=!1,this.zoomSteps=[1,1.5,2,4],this._zoomLevel=1,this._isResizing=!1,this.prevPanPoint={x:0,y:0},this.eventListeners=new Ti,this._silentRenderMode=!1,this._isFocused=!1,this._instanceNo=Tt.instanceCounter++,this.styles=new nt(this.instanceNo),this.uiStyleSettings=this.styles.settings,this.target=Ze,this.targetRoot=document.body,this.width=Ze.clientWidth,this.height=Ze.clientHeight,this.styles.removeStyleSheet(),this.open=this.open.bind(this),this.setTopLeft=this.setTopLeft.bind(this),this.toolbarButtonClicked=this.toolbarButtonClicked.bind(this),this.createNewMarker=this.createNewMarker.bind(this),this.addNewMarker=this.addNewMarker.bind(this),this.markerCreated=this.markerCreated.bind(this),this.setCurrentMarker=this.setCurrentMarker.bind(this),this.onPointerDown=this.onPointerDown.bind(this),this.onDblClick=this.onDblClick.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onPointerOut=this.onPointerOut.bind(this),this.onKeyUp=this.onKeyUp.bind(this),this.overrideOverflow=this.overrideOverflow.bind(this),this.restoreOverflow=this.restoreOverflow.bind(this),this.close=this.close.bind(this),this.closeUI=this.closeUI.bind(this),this.addCloseEventListener=this.addCloseEventListener.bind(this),this.removeCloseEventListener=this.removeCloseEventListener.bind(this),this.addRenderEventListener=this.addRenderEventListener.bind(this),this.removeRenderEventListener=this.removeRenderEventListener.bind(this),this.clientToLocalCoordinates=this.clientToLocalCoordinates.bind(this),this.onWindowResize=this.onWindowResize.bind(this),this.deleteSelectedMarker=this.deleteSelectedMarker.bind(this),this.setWindowHeight=this.setWindowHeight.bind(this),this.removeMarker=this.removeMarker.bind(this),this.colorChanged=this.colorChanged.bind(this),this.fillColorChanged=this.fillColorChanged.bind(this),this.onPopupTargetResize=this.onPopupTargetResize.bind(this),this.showNotesEditor=this.showNotesEditor.bind(this),this.hideNotesEditor=this.hideNotesEditor.bind(this),this.stepZoom=this.stepZoom.bind(this),this.focus=this.focus.bind(this),this.blur=this.blur.bind(this),this.markerStateChanged=this.markerStateChanged.bind(this),this.switchToSelectMode=this.switchToSelectMode.bind(this),this.addDefs=this.addDefs.bind(this),this.addDefsToImage=this.addDefsToImage.bind(this)}return Object.defineProperty(Tt.prototype,"ALL_MARKER_TYPES",{get:function(){return[kt,gn,ci,Yn,En,_i,hi,Hn,dr,Xn,$t,Ln,Mi]},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"DEFAULT_MARKER_TYPES",{get:function(){return[kt,gn,ci,Yn,_i,hi,Hn]},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"BASIC_MARKER_TYPES",{get:function(){return[kt,gn,ci,Yn,hi]},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"availableMarkerTypes",{get:function(){return this._availableMarkerTypes},set:function(Ze){var Ge=this;this._availableMarkerTypes.splice(0),Ze.forEach(function(rt){if(typeof rt=="string"){var Ft=Ge.ALL_MARKER_TYPES.find(function(qe){return qe.typeName===rt});Ft!==void 0&&Ge._availableMarkerTypes.push(Ft)}else Ge._availableMarkerTypes.push(rt)})},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"currentMarker",{get:function(){return this._currentMarker},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"isOpen",{get:function(){return this._isOpen},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"isUndoPossible",{get:function(){return!(!this.undoRedoManager||!this.undoRedoManager.isUndoPossible)},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"isRedoPossible",{get:function(){return!(!this.undoRedoManager||!this.undoRedoManager.isRedoPossible)},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"zoomLevel",{get:function(){return this._zoomLevel},set:function(Ze){this._zoomLevel=Ze,this.editorCanvas&&this.contentDiv&&(this.editorCanvas.style.transform="scale("+this._zoomLevel+")",this.contentDiv.scrollTo({left:(this.editorCanvas.clientWidth*this._zoomLevel-this.contentDiv.clientWidth)/2,top:(this.editorCanvas.clientHeight*this._zoomLevel-this.contentDiv.clientHeight)/2}))},enumerable:!1,configurable:!0}),Object.defineProperty(Tt.prototype,"instanceNo",{get:function(){return this._instanceNo},enumerable:!1,configurable:!0}),Tt.prototype.open=function(){this.setupResizeObserver(),this.setEditingTarget(),this.setTopLeft(),this.initMarkerCanvas(),this.initOverlay(),this.attachEvents(),this.settings.displayMode==="popup"&&this.onPopupTargetResize(),Mt.isLicensed||this.addLogo(),this._isOpen=!0,this._isFocused=!0},Tt.prototype.show=function(){var Ze=this;this.styles.styleSheetRoot===void 0&&qt.styleSheetRoot!==void 0&&(this.styles.styleSheetRoot=qt.styleSheetRoot),this.setWindowHeight(),this.showUI(),this.open(),this.eventListeners.show.forEach(function(Ge){return Ge(new Rt(Ze))})},Tt.prototype.render=function(){return Jt(this,void 0,void 0,function(){var Ze;return Qt(this,function(Ge){switch(Ge.label){case 0:return this.setCurrentMarker(),(Ze=new an).naturalSize=this.renderAtNaturalSize,Ze.imageType=this.renderImageType,Ze.imageQuality=this.renderImageQuality,Ze.markersOnly=this.renderMarkersOnly,Ze.width=this.renderWidth,Ze.height=this.renderHeight,[4,Ze.rasterize(this.target instanceof HTMLImageElement?this.target:null,this.markerImage,this.renderTarget)];case 1:return Ge.sent(),[4,Ze.rasterize(this.target instanceof HTMLImageElement?this.target:null,this.markerImage,this.renderTarget)];case 2:return[2,Ge.sent()]}})})},Tt.prototype.close=function(Ze){var Ge=this;if(Ze===void 0&&(Ze=!1),this.isOpen){var rt=!1;Ze||this.eventListeners.beforeclose.forEach(function(Ft){var qe=new Rt(Ge,!0);Ft(qe),qe.defaultPrevented&&(rt=!0)}),rt||(this.coverDiv&&this.closeUI(),this.targetObserver&&(this.targetObserver.unobserve(this.target),this.targetObserver.unobserve(this.editorCanvas)),this.settings.displayMode==="popup"&&window.removeEventListener("resize",this.setWindowHeight),this.eventListeners.close.forEach(function(Ft){return Ft(new Rt(Ge))}),this.detachEvents(),this._isOpen=!1)}},Tt.prototype.addMarkersToToolbar=function(){for(var Ze,Ge=[],rt=0;rt<arguments.length;rt++)Ge[rt]=arguments[rt];(Ze=this._availableMarkerTypes).push.apply(Ze,Ge)},Tt.prototype.addRenderEventListener=function(Ze){this.addEventListener("render",function(Ge){Ze(Ge.dataUrl,Ge.state)})},Tt.prototype.removeRenderEventListener=function(Ze){},Tt.prototype.addCloseEventListener=function(Ze){this.addEventListener("close",function(){Ze()})},Tt.prototype.removeCloseEventListener=function(Ze){},Tt.prototype.setupResizeObserver=function(){var Ze=this;this.settings.displayMode==="inline"?window.ResizeObserver&&(this.targetObserver=new ResizeObserver(function(){Ze.resize(Ze.target.clientWidth,Ze.target.clientHeight)}),this.targetObserver.observe(this.target)):this.settings.displayMode==="popup"&&(window.ResizeObserver&&(this.targetObserver=new ResizeObserver(function(){return Ze.onPopupTargetResize()}),this.targetObserver.observe(this.editorCanvas)),window.addEventListener("resize",this.setWindowHeight))},Tt.prototype.onPopupTargetResize=function(){var Ze=1*this.target.clientWidth/this.target.clientHeight,Ge=this.editorCanvas.clientWidth/Ze>this.editorCanvas.clientHeight?this.editorCanvas.clientHeight*Ze:this.editorCanvas.clientWidth,rt=Ge<this.editorCanvas.clientWidth?this.editorCanvas.clientHeight:this.editorCanvas.clientWidth/Ze;this.resize(Ge,rt)},Tt.prototype.setWindowHeight=function(){this.windowHeight=window.innerHeight},Tt.prototype.resize=function(Ze,Ge){this._isResizing=!0;var rt=Ze/this.imageWidth,Ft=Ge/this.imageHeight;this.imageWidth=Math.round(Ze),this.imageHeight=Math.round(Ge),this.target instanceof HTMLImageElement&&this.editingTarget instanceof HTMLImageElement&&(this.editingTarget.src=this.target.src),this.editingTarget.width=this.imageWidth,this.editingTarget.height=this.imageHeight,this.editingTarget.style.width=this.imageWidth+"px",this.editingTarget.style.height=this.imageHeight+"px",this.markerImage.setAttribute("width",this.imageWidth.toString()),this.markerImage.setAttribute("height",this.imageHeight.toString()),this.markerImage.setAttribute("viewBox","0 0 "+this.imageWidth.toString()+" "+this.imageHeight.toString()),this.markerImageHolder.style.width=this.imageWidth+"px",this.markerImageHolder.style.height=this.imageHeight+"px",this.overlayContainer.style.width=this.imageWidth+"px",this.overlayContainer.style.height=this.imageHeight+"px",this.settings.displayMode!=="popup"?this.coverDiv.style.width=this.imageWidth.toString()+"px":(this.setTopLeft(),this.positionMarkerImage()),this.toolbar!==void 0&&this.toolbar.adjustLayout(),this.positionLogo(),this.scaleMarkers(rt,Ft),this._isResizing=!1},Tt.prototype.scaleMarkers=function(Ze,Ge){var rt,Ft=this;this._currentMarker&&this._currentMarker instanceof Yn?this._currentMarker.scale(Ze,Ge):(rt=this._currentMarker,this.setCurrentMarker()),this.markers.forEach(function(qe){qe!==Ft._currentMarker&&qe.scale(Ze,Ge)}),rt!==void 0&&this.setCurrentMarker(rt)},Tt.prototype.setEditingTarget=function(){this.imageWidth=Math.round(this.target.clientWidth),this.imageHeight=Math.round(this.target.clientHeight),this.target instanceof HTMLImageElement&&this.editingTarget instanceof HTMLImageElement&&(this.editingTarget.src=this.target.src),this.editingTarget.width=this.imageWidth,this.editingTarget.height=this.imageHeight,this.editingTarget.style.width=this.imageWidth+"px",this.editingTarget.style.height=this.imageHeight+"px"},Tt.prototype.setTopLeft=function(){var Ze=this.editingTarget.getBoundingClientRect(),Ge=this.editorCanvas.getBoundingClientRect();this.left=Ze.left-Ge.left,this.top=Ze.top-Ge.top},Tt.prototype.initMarkerCanvas=function(){this.markerImageHolder=document.createElement("div"),this.markerImageHolder.style.setProperty("touch-action","pinch-zoom"),this.markerImage=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.markerImage.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.markerImage.setAttribute("width",this.imageWidth.toString()),this.markerImage.setAttribute("height",this.imageHeight.toString()),this.markerImage.setAttribute("viewBox","0 0 "+this.imageWidth.toString()+" "+this.imageHeight.toString()),this.markerImage.style.pointerEvents="auto",this.markerImageHolder.style.position="absolute",this.markerImageHolder.style.width=this.imageWidth+"px",this.markerImageHolder.style.height=this.imageHeight+"px",this.markerImageHolder.style.transformOrigin="top left",this.positionMarkerImage(),this.markerImageHolder.appendChild(this.markerImage),this.editorCanvas.appendChild(this.markerImageHolder)},Tt.prototype.addDefs=function(){for(var Ze,Ge=[],rt=0;rt<arguments.length;rt++)Ge[rt]=arguments[rt];this.defs=dt.createDefs(),this.addDefsToImage(),(Ze=this.defs).append.apply(Ze,Ge)},Tt.prototype.addDefsToImage=function(){this.defs&&this.markerImage.insertBefore(this.defs,this.markerImage.firstChild)},Tt.prototype.initOverlay=function(){this.overlayContainer=document.createElement("div"),this.overlayContainer.style.position="absolute",this.overlayContainer.style.left="0px",this.overlayContainer.style.top="0px",this.overlayContainer.style.width=this.imageWidth+"px",this.overlayContainer.style.height=this.imageHeight+"px",this.overlayContainer.style.display="flex",this.markerImageHolder.appendChild(this.overlayContainer)},Tt.prototype.positionMarkerImage=function(){this.markerImageHolder.style.top=this.top/this.zoomLevel+"px",this.markerImageHolder.style.left=this.left/this.zoomLevel+"px"},Tt.prototype.attachEvents=function(){this.markerImage.addEventListener("pointerdown",this.onPointerDown),this.markerImage.addEventListener("dblclick",this.onDblClick),this.attachWindowEvents()},Tt.prototype.attachWindowEvents=function(){window.addEventListener("pointermove",this.onPointerMove),window.addEventListener("pointerup",this.onPointerUp),window.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("pointerout",this.onPointerOut),window.addEventListener("pointerleave",this.onPointerUp),window.addEventListener("resize",this.onWindowResize),window.addEventListener("keyup",this.onKeyUp)},Tt.prototype.detachEvents=function(){this.markerImage.removeEventListener("pointerdown",this.onPointerDown),this.markerImage.removeEventListener("dblclick",this.onDblClick),this.detachWindowEvents()},Tt.prototype.detachWindowEvents=function(){window.removeEventListener("pointermove",this.onPointerMove),window.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("pointerout",this.onPointerOut),window.removeEventListener("pointerleave",this.onPointerUp),window.removeEventListener("resize",this.onWindowResize),window.removeEventListener("keyup",this.onKeyUp)},Tt.prototype.addLogo=function(){this.logoUI=document.createElement("div"),this.logoUI.style.display="inline-block",this.logoUI.style.margin="0px",this.logoUI.style.padding="0px",this.logoUI.style.fill="#333333";var Ze=document.createElement("a");Ze.href="https://markerjs.com/",Ze.target="_blank",Ze.innerHTML='<svg viewBox="0 0 112 96" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill="#e5f20d" fill-opacity=".647" d="M0 40.386h111.96V95.62H0z"/><path d="M93.61 61.452c0 .987-.328 1.831-.987 2.53-.657.7-1.52 1.048-2.591 1.048-1.481 0-2.222-.74-2.222-2.22 0-16.617-.533-29.347-1.604-38.192-1.068-8.842-2.92-13.265-5.552-13.265-4.443 0-10.94 15.509-19.497 46.52v.124c0 .987-.328 1.831-.987 2.53-.657.7-1.52 1.048-2.592 1.048-1.48 0-2.22-.74-2.22-2.22 0-3.29.165-8.392.493-15.302.33-7.732.494-13.82.494-18.262 0-6.17-.186-10.55-.556-13.142-.37-2.591-1.172-3.887-2.406-3.887-2.796 0-6.333 5.12-10.612 15.363C38.494 34.367 34.01 46.44 29.32 60.34l-1.11 3.209a5.714 5.714 0 01-1.42 2.097c-.617.578-1.295.864-2.036.864-.987 0-1.644-.081-1.974-.247-.328-.162-.533-.656-.617-1.48-.41-4.03-.74-9.418-.987-16.165-.163-1.728-.329-4.566-.494-8.515-.822-13.901-1.562-23.3-2.221-28.196-.657-4.893-.987-7.628-.987-8.205 0-.657.33-1.44.987-2.345.659-.903 1.276-1.357 1.85-1.357 1.319 0 2.387.947 3.21 2.838.411.906.863 4.526 1.357 10.859.493 6.335.905 14.19 1.233 23.568l.617 18.88c4.527-13.983 9.216-26.673 14.068-38.068C45.65 6.686 50.093.988 54.123.988c2.715 0 4.566 1.974 5.553 5.923.987 3.949 1.481 9.667 1.481 17.152 0 3.949-.081 9.625-.247 17.029l-.123 5.676c3.373-11.762 6.725-21.634 10.057-29.615 3.331-7.979 6.685-11.97 10.056-11.97 8.475 0 12.71 18.757 12.71 56.269z" fill-rule="nonzero"/></svg>',Ze.title="Powered by marker.js",Ze.style.display="grid",Ze.style.alignItems="center",Ze.style.justifyItems="center",Ze.style.padding="3px",Ze.style.width="20px",Ze.style.height="20px",this.logoUI.appendChild(Ze),this.editorCanvas.appendChild(this.logoUI),this.logoUI.style.position="absolute",this.logoUI.style.pointerEvents="all",this.positionLogo()},Tt.prototype.positionLogo=function(){this.logoUI&&(this.uiStyleSettings.logoPosition!=="right"?this.logoUI.style.left=this.markerImageHolder.offsetLeft+10+"px":this.logoUI.style.left=this.markerImageHolder.offsetLeft+this.markerImageHolder.offsetWidth-this.logoUI.clientWidth-10+"px",this.logoUI.style.top=this.markerImageHolder.offsetTop+this.markerImageHolder.offsetHeight-this.logoUI.clientHeight-10+"px")},Tt.prototype.overrideOverflow=function(){this.scrollXState=window.scrollX,this.scrollYState=window.scrollY,this.bodyOverflowState=document.body.style.overflow,window.scroll({top:0,left:0}),document.body.style.overflow="hidden"},Tt.prototype.restoreOverflow=function(){document.body.style.overflow=this.bodyOverflowState,window.scroll({top:this.scrollYState,left:this.scrollXState})},Tt.prototype.showUI=function(){switch(this.settings.displayMode==="popup"&&this.overrideOverflow(),this.coverDiv=document.createElement("div"),this.coverDiv.style.visibility=this._silentRenderMode?"hidden":"visible",this.coverDiv.className=this.styles.classNamePrefixBase+" "+this.styles.classNamePrefix,this.coverDiv.style.fontSize="16px",this.coverDiv.style.userSelect="none",this.settings.displayMode){case"inline":this.coverDiv.style.position="absolute";var Ze=this.settings.uiOffsetTop!==void 0?this.target.offsetTop+this.settings.uiOffsetTop:this.target.offsetTop>this.styles.settings.toolbarHeight?this.target.offsetTop-this.styles.settings.toolbarHeight:0;this.coverDiv.style.top=Ze+"px",this.coverDiv.style.left=this.target.offsetLeft.toString()+"px",this.coverDiv.style.width=this.target.offsetWidth.toString()+"px",this.coverDiv.style.zIndex=this.uiStyleSettings.zIndex!==void 0?this.uiStyleSettings.zIndex:"5";break;case"popup":this.coverDiv.style.position="absolute",this.coverDiv.style.top="0px",this.coverDiv.style.left="0px",this.coverDiv.style.width="100vw",this.coverDiv.style.height=window.innerHeight+"px",this.coverDiv.style.backgroundColor="rgba(0, 0, 0, 0.75)",this.coverDiv.style.zIndex=this.uiStyleSettings.zIndex!==void 0?this.uiStyleSettings.zIndex:"1000",this.coverDiv.style.display="flex"}this.targetRoot.appendChild(this.coverDiv),this.uiDiv=document.createElement("div"),this.uiDiv.style.display="flex",this.uiDiv.style.flexDirection="column",this.uiDiv.style.flexGrow="2",this.uiDiv.style.margin=this.settings.displayMode==="popup"?this.settings.popupMargin+"px":"0px",this.uiDiv.style.border="0px",this.coverDiv.appendChild(this.uiDiv),this.toolbar=new on(this.uiDiv,this.settings.displayMode,this._availableMarkerTypes,this.uiStyleSettings,this.styles),this.toolbar.addButtonClickListener(this.toolbarButtonClicked),this.toolbar.show(this._silentRenderMode||this.uiStyleSettings.hideToolbar?"hidden":"visible"),this.contentDiv=document.createElement("div"),this.contentDiv.style.display="flex",this.contentDiv.style.flexDirection="row",this.contentDiv.style.flexGrow="2",this.contentDiv.style.flexShrink="1",this.settings.displayMode==="popup"&&(this.contentDiv.style.backgroundColor=this.uiStyleSettings.canvasBackgroundColor,this.contentDiv.style.maxHeight=this.windowHeight-2*this.settings.popupMargin-3.5*this.uiStyleSettings.toolbarHeight+"px",this.contentDiv.style.maxWidth="calc(100vw - "+2*this.settings.popupMargin+"px)"),this.contentDiv.style.overflow="auto",this.uiDiv.appendChild(this.contentDiv),this.editorCanvas=document.createElement("div"),this.editorCanvas.style.flexGrow="2",this.editorCanvas.style.flexShrink="1",this.editorCanvas.style.position="relative",this.editorCanvas.style.overflow="hidden",this.editorCanvas.style.display="flex",this.settings.displayMode==="popup"&&(this.editorCanvas.style.alignItems="center",this.editorCanvas.style.justifyContent="center"),this.editorCanvas.style.pointerEvents="none",this.editorCanvas.style.transformOrigin="left top",this.editorCanvas.style.transform="scale("+this.zoomLevel+")",this.contentDiv.appendChild(this.editorCanvas),this.editingTarget=this.target instanceof HTMLImageElement?document.createElement("img"):document.createElement("canvas"),this.settings.uiOffsetTop===void 0&&this.target.offsetTop<this.styles.settings.toolbarHeight&&(this.editingTarget.style.marginTop=this.target.offsetTop-this.styles.settings.toolbarHeight+"px"),this.editorCanvas.appendChild(this.editingTarget),this.toolbox=new et(this.uiDiv,this.settings.displayMode,this.uiStyleSettings,this.styles),this.toolbox.show(this._silentRenderMode||this.uiStyleSettings.hideToolbox?"hidden":"visible")},Tt.prototype.closeUI=function(){this.settings.displayMode==="popup"&&this.restoreOverflow(),this.targetRoot.removeChild(this.coverDiv)},Tt.prototype.removeMarker=function(Ze){this.markerImage.removeChild(Ze.container),this.markers.indexOf(Ze)>-1&&this.markers.splice(this.markers.indexOf(Ze),1),Ze.dispose()},Tt.prototype.switchToSelectMode=function(){this.mode="select",this.hideNotesEditor(),this._currentMarker!==void 0&&(this._currentMarker.state!=="new"?this._currentMarker.select():(this.removeMarker(this._currentMarker),this.setCurrentMarker(),this.markerImage.style.cursor="default"),this.addUndoStep())},Tt.prototype.toolbarButtonClicked=function(Ze,Ge){if(Ze==="marker"&&Ge!==void 0)this.createNewMarker(Ge);else if(Ze==="action")switch(Ge){case"select":this.switchToSelectMode(),this.switchToSelectMode();break;case"delete":this.deleteSelectedMarker();break;case"clear":this.clear();break;case"undo":this.undo();break;case"redo":this.redo();break;case"zoom":this.stepZoom();break;case"zoom-out":this.zoomLevel=1;break;case"notes":this.notesArea===void 0?(this.switchToSelectMode(),this.zoomLevel=1,this.showNotesEditor()):this.switchToSelectMode();break;case"close":this.close();break;case"render":this.switchToSelectMode(),this.startRenderAndClose()}},Tt.prototype.deleteSelectedMarker=function(){var Ze=this;if(this._currentMarker!==void 0){var Ge=!1;if(this.eventListeners.markerbeforedelete.forEach(function(Ft){var qe=new en(Ze,Ze._currentMarker,!0);Ft(qe),qe.defaultPrevented&&(Ge=!0)}),!Ge){var rt=this._currentMarker;this._currentMarker.dispose(),this.markerImage.removeChild(this._currentMarker.container),this.markers.splice(this.markers.indexOf(this._currentMarker),1),this.setCurrentMarker(),this.addUndoStep(),this.eventListeners.markerdelete.forEach(function(Ft){return Ft(new en(Ze,rt))})}}},Tt.prototype.clear=function(){var Ze=this,Ge=!1;if(this.markers.length>0&&(this.eventListeners.markerbeforedelete.forEach(function(mt){var An=new en(Ze,void 0,!0);mt(An),An.defaultPrevented&&(Ge=!0)}),!Ge)){this.setCurrentMarker();for(var rt=function(mt){var An=Ft.markers[mt];Ft.setCurrentMarker(Ft.markers[mt]),Ft._currentMarker.dispose(),Ft.markerImage.removeChild(Ft._currentMarker.container),Ft.markers.splice(Ft.markers.indexOf(Ft._currentMarker),1),Ft.eventListeners.markerdelete.forEach(function(Gn){return Gn(new en(Ze,An))})},Ft=this,qe=this.markers.length-1;qe>=0;qe--)rt(qe);this.addUndoStep()}},Object.defineProperty(Tt.prototype,"isNotesAreaOpen",{get:function(){return this.notesArea!==void 0},enumerable:!1,configurable:!0}),Tt.prototype.showNotesEditor=function(){var Ze;this._currentMarker!==void 0&&(this.overlayContainer.innerHTML="",this.notesArea=document.createElement("textarea"),this.notesArea.className=this.uiStyleSettings.notesAreaStyleClassName,this.notesArea.style.pointerEvents="auto",this.notesArea.style.alignSelf="stretch",this.notesArea.style.width="100%",this.notesArea.style.margin=this.uiStyleSettings.toolbarHeight/4+"px",this.notesArea.value=(Ze=this._currentMarker.notes)!==null&&Ze!==void 0?Ze:"",this.overlayContainer.appendChild(this.notesArea))},Tt.prototype.hideNotesEditor=function(){this.isNotesAreaOpen&&(this._currentMarker!==void 0&&(this._currentMarker.notes=this.notesArea.value.trim()!==""?this.notesArea.value:void 0),this.overlayContainer.removeChild(this.notesArea),this.notesArea=void 0)},Tt.prototype.selectLastMarker=function(){this.markers.length>0?this.setCurrentMarker(this.markers[this.markers.length-1]):this.setCurrentMarker()},Tt.prototype.addUndoStep=function(){var Ze=this;if(this._currentMarker===void 0||this._currentMarker.state!=="edit"){var Ge=this.getState(),rt=this.undoRedoManager.getLastUndoStep();if(!rt||rt.width===Ge.width&&rt.height===Ge.height){var Ft=this.undoRedoManager.undoStepCount;this.undoRedoManager.addUndoStep(Ge),Ft<this.undoRedoManager.undoStepCount&&this.eventListeners.statechange.forEach(function(qe){return qe(new Rt(Ze))})}else this.undoRedoManager.replaceLastUndoStep(Ge),this.eventListeners.statechange.forEach(function(qe){return qe(new Rt(Ze))})}},Tt.prototype.undo=function(){this.switchToSelectMode(),this.addUndoStep(),this.undoStep()},Tt.prototype.undoStep=function(){var Ze=this,Ge=this.undoRedoManager.undo();Ge!==void 0&&(this.restoreState(Ge),this.addDefsToImage(),this.selectLastMarker(),this.eventListeners.statechange.forEach(function(rt){return rt(new Rt(Ze))}))},Tt.prototype.redo=function(){this.switchToSelectMode(),this.redoStep()},Tt.prototype.redoStep=function(){var Ze=this,Ge=this.undoRedoManager.redo();Ge!==void 0&&(this.restoreState(Ge),this.addDefsToImage(),this.selectLastMarker(),this.eventListeners.statechange.forEach(function(rt){return rt(new Rt(Ze))}))},Tt.prototype.stepZoom=function(){var Ze=this.zoomSteps.indexOf(this.zoomLevel);this.zoomLevel=Ze<this.zoomSteps.length-1?this.zoomSteps[Ze+1]:this.zoomSteps[0]},Tt.prototype.panTo=function(Ze){this.contentDiv.scrollBy({left:this.prevPanPoint.x-Ze.x,top:this.prevPanPoint.y-Ze.y}),this.prevPanPoint=Ze},Tt.prototype.startRenderAndClose=function(){return Jt(this,void 0,void 0,function(){var Ze,Ge,rt=this;return Qt(this,function(Ft){switch(Ft.label){case 0:return[4,this.render()];case 1:return Ze=Ft.sent(),Ge=this.getState(),this.eventListeners.render.forEach(function(qe){return qe(new ni(rt,Ze,Ge))}),this.close(!0),[2]}})})},Tt.prototype.getState=function(Ze){Ze===!0&&this.setCurrentMarker();var Ge={width:this.imageWidth,height:this.imageHeight,markers:[]};return this.markers.forEach(function(rt){return Ge.markers.push(rt.getState())}),Ge},Tt.prototype.restoreState=function(Ze){var Ge=this;for(this.markers.splice(0);this.markerImage.lastChild;)this.markerImage.removeChild(this.markerImage.lastChild);Ze.markers.forEach(function(rt){var Ft=Ge._availableMarkerTypes.find(function(mt){return mt.typeName===rt.typeName});if(Ft!==void 0){var qe=Ge.addNewMarker(Ft);qe.restoreState(rt),Ge.markers.push(qe)}}),Ze.width&&Ze.height&&(Ze.width!==this.imageWidth||Ze.height!==this.imageHeight)&&this.scaleMarkers(this.imageWidth/Ze.width,this.imageHeight/Ze.height),this.eventListeners.restorestate.forEach(function(rt){return rt(new Rt(Ge))})},Tt.prototype.addNewMarker=function(Ze){var Ge=dt.createGroup();return this.markerImage.appendChild(Ge),new Ze(Ge,this.overlayContainer,this.settings)},Tt.prototype.createNewMarker=function(Ze){var Ge,rt=this;(Ge=typeof Ze=="string"?this._availableMarkerTypes.find(function(Ft){return Ft.typeName===Ze}):Ze)&&(this.setCurrentMarker(),this.addUndoStep(),this._currentMarker=this.addNewMarker(Ge),this._currentMarker.onMarkerCreated=this.markerCreated,this._currentMarker.onColorChanged=this.colorChanged,this._currentMarker.onFillColorChanged=this.fillColorChanged,this._currentMarker.onStateChanged=this.markerStateChanged,this.markerImage.style.cursor="crosshair",this.toolbar.setActiveMarkerButton(Ge.typeName),this.toolbox.setPanelButtons(this._currentMarker.toolboxPanels),this.eventListeners.markercreating.forEach(function(Ft){return Ft(new en(rt,rt._currentMarker))}))},Tt.prototype.markerCreated=function(Ze){var Ge=this;this.mode="select",this.markerImage.style.cursor="default",this.markers.push(Ze),this.setCurrentMarker(Ze),Ze instanceof gn&&this.settings.newFreehandMarkerOnPointerUp?this.createNewMarker(gn):this.toolbar.setSelectMode(),this.addUndoStep(),this.eventListeners.markercreate.forEach(function(rt){return rt(new en(Ge,Ge._currentMarker))})},Tt.prototype.colorChanged=function(Ze){this.settings.defaultColorsFollowCurrentColors&&(this.settings.defaultColor=Ze,this.settings.defaultStrokeColor=Ze)},Tt.prototype.fillColorChanged=function(Ze){this.settings.defaultColorsFollowCurrentColors&&(this.settings.defaultFillColor=Ze)},Tt.prototype.markerStateChanged=function(Ze){var Ge=this;this.eventListeners.markerchange.forEach(function(rt){return rt(new en(Ge,Ze))})},Tt.prototype.setCurrentMarker=function(Ze){var Ge=this;this._currentMarker!==Ze&&this._currentMarker!==void 0&&(this._currentMarker.deselect(),this.toolbar.setCurrentMarker(),this.toolbox.setPanelButtons([]),this._isResizing||this.eventListeners.markerdeselect.forEach(function(rt){return rt(new en(Ge,Ge._currentMarker))})),this._currentMarker=Ze,this._currentMarker===void 0||this._currentMarker.isSelected||(this._currentMarker.state!=="new"&&this._currentMarker.select(),this.toolbar.setCurrentMarker(this._currentMarker),this.toolbox.setPanelButtons(this._currentMarker.toolboxPanels),this._isResizing||this.eventListeners.markerselect.forEach(function(rt){return rt(new en(Ge,Ge._currentMarker))}))},Tt.prototype.onPointerDown=function(Ze){if(this._isFocused||this.focus(),this.touchPoints++,this.touchPoints===1||Ze.pointerType!=="touch")if(this._currentMarker===void 0||this._currentMarker.state!=="new"&&this._currentMarker.state!=="creating"){if(this.mode==="select"){var Ge=this.markers.find(function(rt){return rt.ownsTarget(Ze.target)});Ge!==void 0?(this.setCurrentMarker(Ge),this.isDragging=!0,this._currentMarker.pointerDown(this.clientToLocalCoordinates(Ze.clientX,Ze.clientY),Ze.target)):(this.setCurrentMarker(),this.isDragging=!0,this.prevPanPoint={x:Ze.clientX,y:Ze.clientY})}}else this.isDragging=!0,this._currentMarker.pointerDown(this.clientToLocalCoordinates(Ze.clientX,Ze.clientY))},Tt.prototype.onDblClick=function(Ze){if(this._isFocused||this.focus(),this.mode==="select"){var Ge=this.markers.find(function(rt){return rt.ownsTarget(Ze.target)});Ge!==void 0&&Ge!==this._currentMarker&&this.setCurrentMarker(Ge),this._currentMarker!==void 0?this._currentMarker.dblClick(this.clientToLocalCoordinates(Ze.clientX,Ze.clientY),Ze.target):this.setCurrentMarker()}},Tt.prototype.onPointerMove=function(Ze){this.touchPoints!==1&&Ze.pointerType==="touch"||(this._currentMarker!==void 0||this.isDragging)&&(this._currentMarker!==void 0&&this._currentMarker.state==="edit"||Ze.preventDefault(),this._currentMarker!==void 0?this._currentMarker.manipulate(this.clientToLocalCoordinates(Ze.clientX,Ze.clientY)):this.zoomLevel>1&&this.panTo({x:Ze.clientX,y:Ze.clientY}))},Tt.prototype.onPointerUp=function(Ze){this.touchPoints>0&&this.touchPoints--,this.touchPoints===0&&this.isDragging&&this._currentMarker!==void 0&&this._currentMarker.pointerUp(this.clientToLocalCoordinates(Ze.clientX,Ze.clientY)),this.isDragging=!1,this.addUndoStep()},Tt.prototype.onPointerOut=function(){this.touchPoints>0&&this.touchPoints--},Tt.prototype.onKeyUp=function(Ze){this._currentMarker===void 0||this.notesArea!==void 0||Ze.key!=="Delete"&&Ze.key!=="Backspace"||this.deleteSelectedMarker()},Tt.prototype.clientToLocalCoordinates=function(Ze,Ge){var rt=this.markerImage.getBoundingClientRect();return{x:(Ze-rt.left)/this.zoomLevel,y:(Ge-rt.top)/this.zoomLevel}},Tt.prototype.onWindowResize=function(){this.positionUI()},Tt.prototype.positionUI=function(){switch(this.setTopLeft(),this.settings.displayMode){case"inline":var Ze=this.target.getClientRects().item(0).y>this.styles.settings.toolbarHeight?this.target.offsetTop-this.styles.settings.toolbarHeight:0;this.coverDiv.style.top=Ze+"px",this.coverDiv.style.left=this.target.offsetLeft.toString()+"px";break;case"popup":this.coverDiv.style.top="0px",this.coverDiv.style.left="0px",this.coverDiv.style.width="100vw",this.coverDiv.style.height=this.windowHeight+"px",this.contentDiv.style.maxHeight=this.windowHeight-2*this.settings.popupMargin-3.5*this.styles.settings.toolbarHeight+"px"}this.positionMarkerImage(),this.positionLogo()},Tt.prototype.addLicenseKey=function(Ze){Mt.addKey(Ze)},Tt.prototype.addEventListener=function(Ze,Ge){this.eventListeners.addEventListener(Ze,Ge)},Tt.prototype.removeEventListener=function(Ze,Ge){this.eventListeners.removeEventListener(Ze,Ge)},Tt.prototype.renderState=function(Ze){this._silentRenderMode=!0,this.settings.displayMode="inline",this.isOpen||this.show(),this.restoreState(Ze),this.startRenderAndClose(),this._silentRenderMode=!1},Object.defineProperty(Tt.prototype,"isFocused",{get:function(){return this._isFocused},enumerable:!1,configurable:!0}),Tt.prototype.focus=function(){var Ze=this;this._isFocused||(this.attachWindowEvents(),this._isFocused=!0,this._previousCurrentMarker!==void 0&&this.setCurrentMarker(this._previousCurrentMarker),this.eventListeners.focus.forEach(function(Ge){return Ge(new Rt(Ze))}))},Tt.prototype.blur=function(){var Ze=this;this._isFocused&&(this.detachWindowEvents(),this._isFocused=!1,this._previousCurrentMarker=this._currentMarker,this.setCurrentMarker(),this.eventListeners.blur.forEach(function(Ge){return Ge(new Rt(Ze))}))},Tt.instanceCounter=0,Tt}()},26248:function(Cn){Cn.exports=function(yt){je(yt);var Jt=Ei(yt);return yt.on=Jt.on,yt.off=Jt.off,yt.fire=Jt.fire,yt};function Ei(Me){var yt=Object.create(null);return{on:function(Jt,Qt,It){if(typeof Qt!="function")throw new Error("callback is expected to be a function");var dt=yt[Jt];return dt||(dt=yt[Jt]=[]),dt.push({callback:Qt,ctx:It}),Me},off:function(Jt,Qt){var It=typeof Jt=="undefined";if(It)return yt=Object.create(null),Me;if(yt[Jt]){var dt=typeof Qt!="function";if(dt)delete yt[Jt];else for(var Mt=yt[Jt],an=0;an<Mt.length;++an)Mt[an].callback===Qt&&Mt.splice(an,1)}return Me},fire:function(Jt){var Qt=yt[Jt];if(!Qt)return Me;var It;arguments.length>1&&(It=Array.prototype.splice.call(arguments,1));for(var dt=0;dt<Qt.length;++dt){var Mt=Qt[dt];Mt.callback.apply(Mt.ctx,It)}return Me}}}function je(Me){if(!Me)throw new Error("Eventify cannot use falsy object as events subject");for(var yt=["on","fire","off"],Jt=0;Jt<yt.length;++Jt)if(Me.hasOwnProperty(yt[Jt]))throw new Error("Subject cannot be eventified, since it already has property '"+yt[Jt]+"'")}},91998:function(Cn,Ei,je){Cn.exports=yt,Cn.exports.simulator=je(72879);var Me=je(26248);function yt(Qt,It){if(!Qt)throw new Error("Graph structure cannot be undefined");var dt=It&&It.createSimulator||je(72879),Mt=dt(It);if(Array.isArray(It))throw new Error("Physics settings is expected to be an object");var an=Qt.version>19?ci:Jn;It&&typeof It.nodeMass=="function"&&(an=It.nodeMass);var qt=new Map,nt={},ln=0,rn=Mt.settings.springTransform||Jt;lt(),Ie();var on=!1,et={step:function(){if(ln===0)return ue(!0),!0;var Xn=Mt.step();et.lastMove=Xn,et.fire("step");var In=Xn/ln,hi=In<=.01;return ue(hi),hi},getNodePosition:function(Xn){return gn(Xn).pos},setNodePosition:function(Xn){var In=gn(Xn);In.setPosition.apply(In,Array.prototype.slice.call(arguments,1))},getLinkPosition:function(Xn){var In=nt[Xn];if(In)return{from:In.from.pos,to:In.to.pos}},getGraphRect:function(){return Mt.getBBox()},forEachBody:ce,pinNode:function(Xn,In){var hi=gn(Xn.id);hi.isPinned=!!In},isNodePinned:function(Xn){return gn(Xn.id).isPinned},dispose:function(){Qt.off("changed",Ye),et.fire("disposed")},getBody:Te,getSpring:Ae,getForceVectorLength:Ce,simulator:Mt,graph:Qt,lastMove:0};return Me(et),et;function ue(Xn){on!==Xn&&(on=Xn,ze(Xn))}function ce(Xn){qt.forEach(Xn)}function Ce(){var Xn=0,In=0;return ce(function(hi){Xn+=Math.abs(hi.force.x),In+=Math.abs(hi.force.y)}),Math.sqrt(Xn*Xn+In*In)}function Ae(Xn,In){var hi;if(In===void 0)typeof Xn!="object"?hi=Xn:hi=Xn.id;else{var Ht=Qt.hasLink(Xn,In);if(!Ht)return;hi=Ht.id}return nt[hi]}function Te(Xn){return qt.get(Xn)}function Ie(){Qt.on("changed",Ye)}function ze(Xn){et.fire("stable",Xn)}function Ye(Xn){for(var In=0;In<Xn.length;++In){var hi=Xn[In];hi.changeType==="add"?(hi.node&&Bt(hi.node.id),hi.link&&xt(hi.link)):hi.changeType==="remove"&&(hi.node&&kt(hi.node),hi.link&&Et(hi.link))}ln=Qt.getNodesCount()}function lt(){ln=0,Qt.forEachNode(function(Xn){Bt(Xn.id),ln+=1}),Qt.forEachLink(xt)}function Bt(Xn){var In=qt.get(Xn);if(!In){var hi=Qt.getNode(Xn);if(!hi)throw new Error("initBody() was called with unknown node id");var Ht=hi.position;if(!Ht){var At=$t(hi);Ht=Mt.getBestNewBodyPosition(At)}In=Mt.addBodyAt(Ht),In.id=Xn,qt.set(Xn,In),Zt(Xn),Yn(hi)&&(In.isPinned=!0)}}function kt(Xn){var In=Xn.id,hi=qt.get(In);hi&&(qt.delete(In),Mt.removeBody(hi))}function xt(Xn){Zt(Xn.fromId),Zt(Xn.toId);var In=qt.get(Xn.fromId),hi=qt.get(Xn.toId),Ht=Mt.addSpring(In,hi,Xn.length);rn(Xn,Ht),nt[Xn.id]=Ht}function Et(Xn){var In=nt[Xn.id];if(In){var hi=Qt.getNode(Xn.fromId),Ht=Qt.getNode(Xn.toId);hi&&Zt(hi.id),Ht&&Zt(Ht.id),delete nt[Xn.id],Mt.removeSpring(In)}}function $t(Xn){var In=[];if(!Xn.links)return In;for(var hi=Math.min(Xn.links.length,2),Ht=0;Ht<hi;++Ht){var At=Xn.links[Ht],Hn=At.fromId!==Xn.id?qt.get(At.fromId):qt.get(At.toId);Hn&&Hn.pos&&In.push(Hn)}return In}function Zt(Xn){var In=qt.get(Xn);if(In.mass=an(Xn),Number.isNaN(In.mass))throw new Error("Node mass should be a number")}function Yn(Xn){return Xn&&(Xn.isPinned||Xn.data&&Xn.data.isPinned)}function gn(Xn){var In=qt.get(Xn);return In||(Bt(Xn),In=qt.get(Xn)),In}function Jn(Xn){var In=Qt.getLinks(Xn);return In?1+In.length/3:1}function ci(Xn){var In=Qt.getLinks(Xn);return In?1+In.size/3:1}}function Jt(){}},98786:function(Cn,Ei,je){const Me=je(59321);Cn.exports=function(Jt){return Qt;function Qt(It,dt){let Mt=dt&&dt.indent||0,an=dt&&dt.join!==void 0?dt.join:`
|
|
`,qt=Array(Mt+1).join(" "),nt=[];for(let ln=0;ln<Jt;++ln){let rn=Me(ln),on=ln===0?"":qt;nt.push(on+It.replace(/{var}/g,rn))}return nt.join(an)}}},41085:function(Cn,Ei,je){Cn.exports=yt,Cn.exports.generateFunctionBody=Jt;const Me=je(98786);function yt(Qt){let It=Jt(Qt);return new Function("bodies","settings","random",It)}function Jt(Qt){let It=Me(Qt);return`
|
|
var boundingBox = {
|
|
${It("min_{var}: 0, max_{var}: 0,",{indent:4})}
|
|
};
|
|
|
|
return {
|
|
box: boundingBox,
|
|
|
|
update: updateBoundingBox,
|
|
|
|
reset: resetBoundingBox,
|
|
|
|
getBestNewPosition: function (neighbors) {
|
|
var ${It("base_{var} = 0",{join:", "})};
|
|
|
|
if (neighbors.length) {
|
|
for (var i = 0; i < neighbors.length; ++i) {
|
|
let neighborPos = neighbors[i].pos;
|
|
${It("base_{var} += neighborPos.{var};",{indent:10})}
|
|
}
|
|
|
|
${It("base_{var} /= neighbors.length;",{indent:8})}
|
|
} else {
|
|
${It("base_{var} = (boundingBox.min_{var} + boundingBox.max_{var}) / 2;",{indent:8})}
|
|
}
|
|
|
|
var springLength = settings.springLength;
|
|
return {
|
|
${It("{var}: base_{var} + (random.nextDouble() - 0.5) * springLength,",{indent:8})}
|
|
};
|
|
}
|
|
};
|
|
|
|
function updateBoundingBox() {
|
|
var i = bodies.length;
|
|
if (i === 0) return; // No bodies - no borders.
|
|
|
|
${It("var max_{var} = -Infinity;",{indent:4})}
|
|
${It("var min_{var} = Infinity;",{indent:4})}
|
|
|
|
while(i--) {
|
|
// this is O(n), it could be done faster with quadtree, if we check the root node bounds
|
|
var bodyPos = bodies[i].pos;
|
|
${It("if (bodyPos.{var} < min_{var}) min_{var} = bodyPos.{var};",{indent:6})}
|
|
${It("if (bodyPos.{var} > max_{var}) max_{var} = bodyPos.{var};",{indent:6})}
|
|
}
|
|
|
|
${It("boundingBox.min_{var} = min_{var};",{indent:4})}
|
|
${It("boundingBox.max_{var} = max_{var};",{indent:4})}
|
|
}
|
|
|
|
function resetBoundingBox() {
|
|
${It("boundingBox.min_{var} = boundingBox.max_{var} = 0;",{indent:4})}
|
|
}
|
|
`}},53623:function(Cn,Ei,je){const Me=je(98786);Cn.exports=yt,Cn.exports.generateCreateBodyFunctionBody=Jt,Cn.exports.getVectorCode=It,Cn.exports.getBodyCode=Qt;function yt(dt,Mt){let an=Jt(dt,Mt),{Body:qt}=new Function(an)();return qt}function Jt(dt,Mt){return`
|
|
${It(dt,Mt)}
|
|
${Qt(dt,Mt)}
|
|
return {Body: Body, Vector: Vector};
|
|
`}function Qt(dt){let Mt=Me(dt),an=Mt("{var}",{join:", "});return`
|
|
function Body(${an}) {
|
|
this.isPinned = false;
|
|
this.pos = new Vector(${an});
|
|
this.force = new Vector();
|
|
this.velocity = new Vector();
|
|
this.mass = 1;
|
|
|
|
this.springCount = 0;
|
|
this.springLength = 0;
|
|
}
|
|
|
|
Body.prototype.reset = function() {
|
|
this.force.reset();
|
|
this.springCount = 0;
|
|
this.springLength = 0;
|
|
}
|
|
|
|
Body.prototype.setPosition = function (${an}) {
|
|
${Mt("this.pos.{var} = {var} || 0;",{indent:2})}
|
|
};`}function It(dt,Mt){let an=Me(dt),qt="";return Mt&&(qt=`${an(`
|
|
var v{var};
|
|
Object.defineProperty(this, '{var}', {
|
|
set: function(v) {
|
|
if (!Number.isFinite(v)) throw new Error('Cannot set non-numbers to {var}');
|
|
v{var} = v;
|
|
},
|
|
get: function() { return v{var}; }
|
|
});`)}`),`function Vector(${an("{var}",{join:", "})}) {
|
|
${qt}
|
|
if (typeof arguments[0] === 'object') {
|
|
// could be another vector
|
|
let v = arguments[0];
|
|
${an('if (!Number.isFinite(v.{var})) throw new Error("Expected value is not a finite number at Vector constructor ({var})");',{indent:4})}
|
|
${an("this.{var} = v.{var};",{indent:4})}
|
|
} else {
|
|
${an('this.{var} = typeof {var} === "number" ? {var} : 0;',{indent:4})}
|
|
}
|
|
}
|
|
|
|
Vector.prototype.reset = function () {
|
|
${an("this.{var} = ",{join:""})}0;
|
|
};`}},48812:function(Cn,Ei,je){const Me=je(98786);Cn.exports=yt,Cn.exports.generateCreateDragForceFunctionBody=Jt;function yt(Qt){let It=Jt(Qt);return new Function("options",It)}function Jt(Qt){return`
|
|
if (!Number.isFinite(options.dragCoefficient)) throw new Error('dragCoefficient is not a finite number');
|
|
|
|
return {
|
|
update: function(body) {
|
|
${Me(Qt)("body.force.{var} -= options.dragCoefficient * body.velocity.{var};",{indent:6})}
|
|
}
|
|
};
|
|
`}},7584:function(Cn,Ei,je){const Me=je(98786);Cn.exports=yt,Cn.exports.generateCreateSpringForceFunctionBody=Jt;function yt(Qt){let It=Jt(Qt);return new Function("options","random",It)}function Jt(Qt){let It=Me(Qt);return`
|
|
if (!Number.isFinite(options.springCoefficient)) throw new Error('Spring coefficient is not a number');
|
|
if (!Number.isFinite(options.springLength)) throw new Error('Spring length is not a number');
|
|
|
|
return {
|
|
/**
|
|
* Updates forces acting on a spring
|
|
*/
|
|
update: function (spring) {
|
|
var body1 = spring.from;
|
|
var body2 = spring.to;
|
|
var length = spring.length < 0 ? options.springLength : spring.length;
|
|
${It("var d{var} = body2.pos.{var} - body1.pos.{var};",{indent:6})}
|
|
var r = Math.sqrt(${It("d{var} * d{var}",{join:" + "})});
|
|
|
|
if (r === 0) {
|
|
${It("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:8})}
|
|
r = Math.sqrt(${It("d{var} * d{var}",{join:" + "})});
|
|
}
|
|
|
|
var d = r - length;
|
|
var coefficient = ((spring.coefficient > 0) ? spring.coefficient : options.springCoefficient) * d / r;
|
|
|
|
${It("body1.force.{var} += coefficient * d{var}",{indent:6})};
|
|
body1.springCount += 1;
|
|
body1.springLength += r;
|
|
|
|
${It("body2.force.{var} -= coefficient * d{var}",{indent:6})};
|
|
body2.springCount += 1;
|
|
body2.springLength += r;
|
|
}
|
|
};
|
|
`}},26302:function(Cn,Ei,je){const Me=je(98786);Cn.exports=yt,Cn.exports.generateIntegratorFunctionBody=Jt;function yt(Qt){let It=Jt(Qt);return new Function("bodies","timeStep","adaptiveTimeStepWeight",It)}function Jt(Qt){let It=Me(Qt);return`
|
|
var length = bodies.length;
|
|
if (length === 0) return 0;
|
|
|
|
${It("var d{var} = 0, t{var} = 0;",{indent:2})}
|
|
|
|
for (var i = 0; i < length; ++i) {
|
|
var body = bodies[i];
|
|
if (body.isPinned) continue;
|
|
|
|
if (adaptiveTimeStepWeight && body.springCount) {
|
|
timeStep = (adaptiveTimeStepWeight * body.springLength/body.springCount);
|
|
}
|
|
|
|
var coeff = timeStep / body.mass;
|
|
|
|
${It("body.velocity.{var} += coeff * body.force.{var};",{indent:4})}
|
|
${It("var v{var} = body.velocity.{var};",{indent:4})}
|
|
var v = Math.sqrt(${It("v{var} * v{var}",{join:" + "})});
|
|
|
|
if (v > 1) {
|
|
// We normalize it so that we move within timeStep range.
|
|
// for the case when v <= 1 - we let velocity to fade out.
|
|
${It("body.velocity.{var} = v{var} / v;",{indent:6})}
|
|
}
|
|
|
|
${It("d{var} = timeStep * body.velocity.{var};",{indent:4})}
|
|
|
|
${It("body.pos.{var} += d{var};",{indent:4})}
|
|
|
|
${It("t{var} += Math.abs(d{var});",{indent:4})}
|
|
}
|
|
|
|
return (${It("t{var} * t{var}",{join:" + "})})/length;
|
|
`}},24454:function(Cn,Ei,je){const Me=je(98786),yt=je(59321);Cn.exports=Jt,Cn.exports.generateQuadTreeFunctionBody=Qt,Cn.exports.getInsertStackCode=qt,Cn.exports.getQuadNodeCode=an,Cn.exports.isSamePosition=It,Cn.exports.getChildBodyCode=Mt,Cn.exports.setChildBodyCode=dt;function Jt(nt){let ln=Qt(nt);return new Function(ln)()}function Qt(nt){let ln=Me(nt),rn=Math.pow(2,nt);return`
|
|
${qt()}
|
|
${an(nt)}
|
|
${It(nt)}
|
|
${Mt(nt)}
|
|
${dt(nt)}
|
|
|
|
function createQuadTree(options, random) {
|
|
options = options || {};
|
|
options.gravity = typeof options.gravity === 'number' ? options.gravity : -1;
|
|
options.theta = typeof options.theta === 'number' ? options.theta : 0.8;
|
|
|
|
var gravity = options.gravity;
|
|
var updateQueue = [];
|
|
var insertStack = new InsertStack();
|
|
var theta = options.theta;
|
|
|
|
var nodesCache = [];
|
|
var currentInCache = 0;
|
|
var root = newNode();
|
|
|
|
return {
|
|
insertBodies: insertBodies,
|
|
|
|
/**
|
|
* Gets root node if it is present
|
|
*/
|
|
getRoot: function() {
|
|
return root;
|
|
},
|
|
|
|
updateBodyForce: update,
|
|
|
|
options: function(newOptions) {
|
|
if (newOptions) {
|
|
if (typeof newOptions.gravity === 'number') {
|
|
gravity = newOptions.gravity;
|
|
}
|
|
if (typeof newOptions.theta === 'number') {
|
|
theta = newOptions.theta;
|
|
}
|
|
|
|
return this;
|
|
}
|
|
|
|
return {
|
|
gravity: gravity,
|
|
theta: theta
|
|
};
|
|
}
|
|
};
|
|
|
|
function newNode() {
|
|
// To avoid pressure on GC we reuse nodes.
|
|
var node = nodesCache[currentInCache];
|
|
if (node) {
|
|
${ce(" node.")}
|
|
node.body = null;
|
|
node.mass = ${ln("node.mass_{var} = ",{join:""})}0;
|
|
${ln("node.min_{var} = node.max_{var} = ",{join:""})}0;
|
|
} else {
|
|
node = new QuadNode();
|
|
nodesCache[currentInCache] = node;
|
|
}
|
|
|
|
++currentInCache;
|
|
return node;
|
|
}
|
|
|
|
function update(sourceBody) {
|
|
var queue = updateQueue;
|
|
var v;
|
|
${ln("var d{var};",{indent:4})}
|
|
var r;
|
|
${ln("var f{var} = 0;",{indent:4})}
|
|
var queueLength = 1;
|
|
var shiftIdx = 0;
|
|
var pushIdx = 1;
|
|
|
|
queue[0] = root;
|
|
|
|
while (queueLength) {
|
|
var node = queue[shiftIdx];
|
|
var body = node.body;
|
|
|
|
queueLength -= 1;
|
|
shiftIdx += 1;
|
|
var differentBody = (body !== sourceBody);
|
|
if (body && differentBody) {
|
|
// If the current node is a leaf node (and it is not source body),
|
|
// calculate the force exerted by the current node on body, and add this
|
|
// amount to body's net force.
|
|
${ln("d{var} = body.pos.{var} - sourceBody.pos.{var};",{indent:8})}
|
|
r = Math.sqrt(${ln("d{var} * d{var}",{join:" + "})});
|
|
|
|
if (r === 0) {
|
|
// Poor man's protection against zero distance.
|
|
${ln("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:10})}
|
|
r = Math.sqrt(${ln("d{var} * d{var}",{join:" + "})});
|
|
}
|
|
|
|
// This is standard gravitation force calculation but we divide
|
|
// by r^3 to save two operations when normalizing force vector.
|
|
v = gravity * body.mass * sourceBody.mass / (r * r * r);
|
|
${ln("f{var} += v * d{var};",{indent:8})}
|
|
} else if (differentBody) {
|
|
// Otherwise, calculate the ratio s / r, where s is the width of the region
|
|
// represented by the internal node, and r is the distance between the body
|
|
// and the node's center-of-mass
|
|
${ln("d{var} = node.mass_{var} / node.mass - sourceBody.pos.{var};",{indent:8})}
|
|
r = Math.sqrt(${ln("d{var} * d{var}",{join:" + "})});
|
|
|
|
if (r === 0) {
|
|
// Sorry about code duplication. I don't want to create many functions
|
|
// right away. Just want to see performance first.
|
|
${ln("d{var} = (random.nextDouble() - 0.5) / 50;",{indent:10})}
|
|
r = Math.sqrt(${ln("d{var} * d{var}",{join:" + "})});
|
|
}
|
|
// If s / r < \u03B8, treat this internal node as a single body, and calculate the
|
|
// force it exerts on sourceBody, and add this amount to sourceBody's net force.
|
|
if ((node.max_${yt(0)} - node.min_${yt(0)}) / r < theta) {
|
|
// in the if statement above we consider node's width only
|
|
// because the region was made into square during tree creation.
|
|
// Thus there is no difference between using width or height.
|
|
v = gravity * node.mass * sourceBody.mass / (r * r * r);
|
|
${ln("f{var} += v * d{var};",{indent:10})}
|
|
} else {
|
|
// Otherwise, run the procedure recursively on each of the current node's children.
|
|
|
|
// I intentionally unfolded this loop, to save several CPU cycles.
|
|
${ue()}
|
|
}
|
|
}
|
|
}
|
|
|
|
${ln("sourceBody.force.{var} += f{var};",{indent:4})}
|
|
}
|
|
|
|
function insertBodies(bodies) {
|
|
${ln("var {var}min = Number.MAX_VALUE;",{indent:4})}
|
|
${ln("var {var}max = Number.MIN_VALUE;",{indent:4})}
|
|
var i = bodies.length;
|
|
|
|
// To reduce quad tree depth we are looking for exact bounding box of all particles.
|
|
while (i--) {
|
|
var pos = bodies[i].pos;
|
|
${ln("if (pos.{var} < {var}min) {var}min = pos.{var};",{indent:6})}
|
|
${ln("if (pos.{var} > {var}max) {var}max = pos.{var};",{indent:6})}
|
|
}
|
|
|
|
// Makes the bounds square.
|
|
var maxSideLength = -Infinity;
|
|
${ln("if ({var}max - {var}min > maxSideLength) maxSideLength = {var}max - {var}min ;",{indent:4})}
|
|
|
|
currentInCache = 0;
|
|
root = newNode();
|
|
${ln("root.min_{var} = {var}min;",{indent:4})}
|
|
${ln("root.max_{var} = {var}min + maxSideLength;",{indent:4})}
|
|
|
|
i = bodies.length - 1;
|
|
if (i >= 0) {
|
|
root.body = bodies[i];
|
|
}
|
|
while (i--) {
|
|
insert(bodies[i], root);
|
|
}
|
|
}
|
|
|
|
function insert(newBody) {
|
|
insertStack.reset();
|
|
insertStack.push(root, newBody);
|
|
|
|
while (!insertStack.isEmpty()) {
|
|
var stackItem = insertStack.pop();
|
|
var node = stackItem.node;
|
|
var body = stackItem.body;
|
|
|
|
if (!node.body) {
|
|
// This is internal node. Update the total mass of the node and center-of-mass.
|
|
${ln("var {var} = body.pos.{var};",{indent:8})}
|
|
node.mass += body.mass;
|
|
${ln("node.mass_{var} += body.mass * {var};",{indent:8})}
|
|
|
|
// Recursively insert the body in the appropriate quadrant.
|
|
// But first find the appropriate quadrant.
|
|
var quadIdx = 0; // Assume we are in the 0's quad.
|
|
${ln("var min_{var} = node.min_{var};",{indent:8})}
|
|
${ln("var max_{var} = (min_{var} + node.max_{var}) / 2;",{indent:8})}
|
|
|
|
${et(8)}
|
|
|
|
var child = getChild(node, quadIdx);
|
|
|
|
if (!child) {
|
|
// The node is internal but this quadrant is not taken. Add
|
|
// subnode to it.
|
|
child = newNode();
|
|
${ln("child.min_{var} = min_{var};",{indent:10})}
|
|
${ln("child.max_{var} = max_{var};",{indent:10})}
|
|
child.body = body;
|
|
|
|
setChild(node, quadIdx, child);
|
|
} else {
|
|
// continue searching in this quadrant.
|
|
insertStack.push(child, body);
|
|
}
|
|
} else {
|
|
// We are trying to add to the leaf node.
|
|
// We have to convert current leaf into internal node
|
|
// and continue adding two nodes.
|
|
var oldBody = node.body;
|
|
node.body = null; // internal nodes do not cary bodies
|
|
|
|
if (isSamePosition(oldBody.pos, body.pos)) {
|
|
// Prevent infinite subdivision by bumping one node
|
|
// anywhere in this quadrant
|
|
var retriesCount = 3;
|
|
do {
|
|
var offset = random.nextDouble();
|
|
${ln("var d{var} = (node.max_{var} - node.min_{var}) * offset;",{indent:12})}
|
|
|
|
${ln("oldBody.pos.{var} = node.min_{var} + d{var};",{indent:12})}
|
|
retriesCount -= 1;
|
|
// Make sure we don't bump it out of the box. If we do, next iteration should fix it
|
|
} while (retriesCount > 0 && isSamePosition(oldBody.pos, body.pos));
|
|
|
|
if (retriesCount === 0 && isSamePosition(oldBody.pos, body.pos)) {
|
|
// This is very bad, we ran out of precision.
|
|
// if we do not return from the method we'll get into
|
|
// infinite loop here. So we sacrifice correctness of layout, and keep the app running
|
|
// Next layout iteration should get larger bounding box in the first step and fix this
|
|
return;
|
|
}
|
|
}
|
|
// Next iteration should subdivide node further.
|
|
insertStack.push(node, oldBody);
|
|
insertStack.push(node, body);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return createQuadTree;
|
|
|
|
`;function et(Ce){let Ae=[],Te=Array(Ce+1).join(" ");for(let Ie=0;Ie<nt;++Ie)Ae.push(Te+`if (${yt(Ie)} > max_${yt(Ie)}) {`),Ae.push(Te+` quadIdx = quadIdx + ${Math.pow(2,Ie)};`),Ae.push(Te+` min_${yt(Ie)} = max_${yt(Ie)};`),Ae.push(Te+` max_${yt(Ie)} = node.max_${yt(Ie)};`),Ae.push(Te+"}");return Ae.join(`
|
|
`)}function ue(){let Ce=Array(11).join(" "),Ae=[];for(let Te=0;Te<rn;++Te)Ae.push(Ce+`if (node.quad${Te}) {`),Ae.push(Ce+` queue[pushIdx] = node.quad${Te};`),Ae.push(Ce+" queueLength += 1;"),Ae.push(Ce+" pushIdx += 1;"),Ae.push(Ce+"}");return Ae.join(`
|
|
`)}function ce(Ce){let Ae=[];for(let Te=0;Te<rn;++Te)Ae.push(`${Ce}quad${Te} = null;`);return Ae.join(`
|
|
`)}}function It(nt){let ln=Me(nt);return`
|
|
function isSamePosition(point1, point2) {
|
|
${ln("var d{var} = Math.abs(point1.{var} - point2.{var});",{indent:2})}
|
|
|
|
return ${ln("d{var} < 1e-8",{join:" && "})};
|
|
}
|
|
`}function dt(nt){var ln=Math.pow(2,nt);return`
|
|
function setChild(node, idx, child) {
|
|
${rn()}
|
|
}`;function rn(){let on=[];for(let et=0;et<ln;++et){let ue=et===0?" ":" else ";on.push(`${ue}if (idx === ${et}) node.quad${et} = child;`)}return on.join(`
|
|
`)}}function Mt(nt){return`function getChild(node, idx) {
|
|
${ln()}
|
|
return null;
|
|
}`;function ln(){let rn=[],on=Math.pow(2,nt);for(let et=0;et<on;++et)rn.push(` if (idx === ${et}) return node.quad${et};`);return rn.join(`
|
|
`)}}function an(nt){let ln=Me(nt),rn=Math.pow(2,nt);var on=`
|
|
function QuadNode() {
|
|
// body stored inside this node. In quad tree only leaf nodes (by construction)
|
|
// contain bodies:
|
|
this.body = null;
|
|
|
|
// Child nodes are stored in quads. Each quad is presented by number:
|
|
// 0 | 1
|
|
// -----
|
|
// 2 | 3
|
|
${et(" this.")}
|
|
|
|
// Total mass of current node
|
|
this.mass = 0;
|
|
|
|
// Center of mass coordinates
|
|
${ln("this.mass_{var} = 0;",{indent:2})}
|
|
|
|
// bounding box coordinates
|
|
${ln("this.min_{var} = 0;",{indent:2})}
|
|
${ln("this.max_{var} = 0;",{indent:2})}
|
|
}
|
|
`;return on;function et(ue){let ce=[];for(let Ce=0;Ce<rn;++Ce)ce.push(`${ue}quad${Ce} = null;`);return ce.join(`
|
|
`)}}function qt(){return`
|
|
/**
|
|
* Our implementation of QuadTree is non-recursive to avoid GC hit
|
|
* This data structure represent stack of elements
|
|
* which we are trying to insert into quad tree.
|
|
*/
|
|
function InsertStack () {
|
|
this.stack = [];
|
|
this.popIdx = 0;
|
|
}
|
|
|
|
InsertStack.prototype = {
|
|
isEmpty: function() {
|
|
return this.popIdx === 0;
|
|
},
|
|
push: function (node, body) {
|
|
var item = this.stack[this.popIdx];
|
|
if (!item) {
|
|
// we are trying to avoid memory pressure: create new element
|
|
// only when absolutely necessary
|
|
this.stack[this.popIdx] = new InsertStackElement(node, body);
|
|
} else {
|
|
item.node = node;
|
|
item.body = body;
|
|
}
|
|
++this.popIdx;
|
|
},
|
|
pop: function () {
|
|
if (this.popIdx > 0) {
|
|
return this.stack[--this.popIdx];
|
|
}
|
|
},
|
|
reset: function () {
|
|
this.popIdx = 0;
|
|
}
|
|
};
|
|
|
|
function InsertStackElement(node, body) {
|
|
this.node = node; // QuadTree node
|
|
this.body = body; // physical body which needs to be inserted to node
|
|
}
|
|
`}},59321:function(Cn){Cn.exports=function(je){return je===0?"x":je===1?"y":je===2?"z":"c"+(je+1)}},72879:function(Cn,Ei,je){Cn.exports=an;var Me=je(53623),yt=je(24454),Jt=je(41085),Qt=je(48812),It=je(7584),dt=je(26302),Mt={};function an(ln){var rn=je(75877),on=je(35764),et=je(26248);if(ln){if(ln.springCoeff!==void 0)throw new Error("springCoeff was renamed to springCoefficient");if(ln.dragCoeff!==void 0)throw new Error("dragCoeff was renamed to dragCoefficient")}ln=on(ln,{springLength:10,springCoefficient:.8,gravity:-12,theta:.8,dragCoefficient:.9,timeStep:.5,adaptiveTimeStepWeight:0,dimensions:2,debug:!1});var ue=Mt[ln.dimensions];if(!ue){var ce=ln.dimensions;ue={Body:Me(ce,ln.debug),createQuadTree:yt(ce),createBounds:Jt(ce),createDragForce:Qt(ce),createSpringForce:It(ce),integrate:dt(ce)},Mt[ce]=ue}var Ce=ue.Body,Ae=ue.createQuadTree,Te=ue.createBounds,Ie=ue.createDragForce,ze=ue.createSpringForce,Ye=ue.integrate,lt=En=>new Ce(En),Bt=je(40232).random(42),kt=[],xt=[],Et=Ae(ln,Bt),$t=Te(kt,ln,Bt),Zt=ze(ln,Bt),Yn=Ie(ln),gn=0,Jn=[],ci=new Map,Xn=0;Ht("nbody",_i),Ht("spring",dr);var In={bodies:kt,quadTree:Et,springs:xt,settings:ln,addForce:Ht,removeForce:At,getForces:Hn,step:function(){for(var En=0;En<Jn.length;++En)Jn[En](Xn);var Mn=Ye(kt,ln.timeStep,ln.adaptiveTimeStepWeight);return Xn+=1,Mn},addBody:function(En){if(!En)throw new Error("Body is required");return kt.push(En),En},addBodyAt:function(En){if(!En)throw new Error("Body position is required");var Mn=lt(En);return kt.push(Mn),Mn},removeBody:function(En){if(En){var Mn=kt.indexOf(En);if(!(Mn<0))return kt.splice(Mn,1),kt.length===0&&$t.reset(),!0}},addSpring:function(En,Mn,Ln,Mi){if(!En||!Mn)throw new Error("Cannot add null spring to force simulator");typeof Ln!="number"&&(Ln=-1);var Rt=new rn(En,Mn,Ln,Mi>=0?Mi:-1);return xt.push(Rt),Rt},getTotalMovement:function(){return gn},removeSpring:function(En){if(En){var Mn=xt.indexOf(En);if(Mn>-1)return xt.splice(Mn,1),!0}},getBestNewBodyPosition:function(En){return $t.getBestNewPosition(En)},getBBox:hi,getBoundingBox:hi,invalidateBBox:function(){console.warn("invalidateBBox() is deprecated, bounds always recomputed on `getBBox()` call")},gravity:function(En){return En!==void 0?(ln.gravity=En,Et.options({gravity:En}),this):ln.gravity},theta:function(En){return En!==void 0?(ln.theta=En,Et.options({theta:En}),this):ln.theta},random:Bt};return qt(ln,In),et(In),In;function hi(){return $t.update(),$t.box}function Ht(En,Mn){if(ci.has(En))throw new Error("Force "+En+" is already added");ci.set(En,Mn),Jn.push(Mn)}function At(En){var Mn=Jn.indexOf(ci.get(En));Mn<0||(Jn.splice(Mn,1),ci.delete(En))}function Hn(){return ci}function _i(){if(kt.length!==0){Et.insertBodies(kt);for(var En=kt.length;En--;){var Mn=kt[En];Mn.isPinned||(Mn.reset(),Et.updateBodyForce(Mn),Yn.update(Mn))}}}function dr(){for(var En=xt.length;En--;)Zt.update(xt[En])}}function qt(ln,rn){for(var on in ln)nt(ln,rn,on)}function nt(ln,rn,on){if(ln.hasOwnProperty(on)&&typeof rn[on]!="function"){var et=Number.isFinite(ln[on]);et?rn[on]=function(ue){if(ue!==void 0){if(!Number.isFinite(ue))throw new Error("Value of "+on+" should be a valid number.");return ln[on]=ue,rn}return ln[on]}:rn[on]=function(ue){return ue!==void 0?(ln[on]=ue,rn):ln[on]}}}},75877:function(Cn){Cn.exports=Ei;function Ei(je,Me,yt,Jt){this.from=je,this.to=Me,this.length=yt,this.coefficient=Jt}},45174:function(Cn,Ei,je){Cn.exports=yt;var Me=je(26248);function yt(Mt){if(Mt=Mt||{},"uniqueLinkId"in Mt&&(console.warn("ngraph.graph: Starting from version 0.14 `uniqueLinkId` is deprecated.\nUse `multigraph` option instead\n",`
|
|
`,`Note: there is also change in default behavior: From now on each graph
|
|
is considered to be not a multigraph by default (each edge is unique).`),Mt.multigraph=Mt.uniqueLinkId),Mt.multigraph===void 0&&(Mt.multigraph=!1),typeof Map!="function")throw new Error("ngraph.graph requires `Map` to be defined. Please polyfill it before using ngraph");var an=new Map,qt=new Map,nt={},ln=0,rn=Mt.multigraph?Et:xt,on=[],et=Hn,ue=Hn,ce=Hn,Ce=Hn,Ae={version:20,addNode:Ye,addLink:kt,removeLink:gn,removeNode:Bt,getNode:lt,getNodeCount:$t,getLinkCount:Zt,getEdgeCount:Zt,getLinksCount:Zt,getNodesCount:$t,getLinks:Yn,forEachNode:En,forEachLinkedNode:hi,forEachLink:In,beginUpdate:ce,endUpdate:Ce,clear:Xn,hasLink:ci,hasNode:lt,getLink:ci};return Me(Ae),Te(),Ae;function Te(){var Mn=Ae.on;Ae.on=Ln;function Ln(){return Ae.beginUpdate=ce=_i,Ae.endUpdate=Ce=dr,et=Ie,ue=ze,Ae.on=Mn,Mn.apply(Ae,arguments)}}function Ie(Mn,Ln){on.push({link:Mn,changeType:Ln})}function ze(Mn,Ln){on.push({node:Mn,changeType:Ln})}function Ye(Mn,Ln){if(Mn===void 0)throw new Error("Invalid node identifier");ce();var Mi=lt(Mn);return Mi?(Mi.data=Ln,ue(Mi,"update")):(Mi=new Jt(Mn,Ln),ue(Mi,"add")),an.set(Mn,Mi),Ce(),Mi}function lt(Mn){return an.get(Mn)}function Bt(Mn){var Ln=lt(Mn);if(!Ln)return!1;ce();var Mi=Ln.links;return Mi&&(Mi.forEach(Jn),Ln.links=null),an.delete(Mn),ue(Ln,"remove"),Ce(),!0}function kt(Mn,Ln,Mi){ce();var Rt=lt(Mn)||Ye(Mn),ni=lt(Ln)||Ye(Ln),en=rn(Mn,Ln,Mi),Ti=qt.has(en.id);return qt.set(en.id,en),Qt(Rt,en),Mn!==Ln&&Qt(ni,en),et(en,Ti?"update":"add"),Ce(),en}function xt(Mn,Ln,Mi){var Rt=dt(Mn,Ln),ni=qt.get(Rt);return ni?(ni.data=Mi,ni):new It(Mn,Ln,Mi,Rt)}function Et(Mn,Ln,Mi){var Rt=dt(Mn,Ln),ni=nt.hasOwnProperty(Rt);if(ni||ci(Mn,Ln)){ni||(nt[Rt]=0);var en="@"+ ++nt[Rt];Rt=dt(Mn+en,Ln+en)}return new It(Mn,Ln,Mi,Rt)}function $t(){return an.size}function Zt(){return qt.size}function Yn(Mn){var Ln=lt(Mn);return Ln?Ln.links:null}function gn(Mn,Ln){return Ln!==void 0&&(Mn=ci(Mn,Ln)),Jn(Mn)}function Jn(Mn){if(!Mn||!qt.get(Mn.id))return!1;ce(),qt.delete(Mn.id);var Ln=lt(Mn.fromId),Mi=lt(Mn.toId);return Ln&&Ln.links.delete(Mn),Mi&&Mi.links.delete(Mn),et(Mn,"remove"),Ce(),!0}function ci(Mn,Ln){if(!(Mn===void 0||Ln===void 0))return qt.get(dt(Mn,Ln))}function Xn(){ce(),En(function(Mn){Bt(Mn.id)}),Ce()}function In(Mn){if(typeof Mn=="function")for(var Ln=qt.values(),Mi=Ln.next();!Mi.done;){if(Mn(Mi.value))return!0;Mi=Ln.next()}}function hi(Mn,Ln,Mi){var Rt=lt(Mn);if(Rt&&Rt.links&&typeof Ln=="function")return Mi?At(Rt.links,Mn,Ln):Ht(Rt.links,Mn,Ln)}function Ht(Mn,Ln,Mi){for(var Rt,ni=Mn.values(),en=ni.next();!en.done;){var Ti=en.value,Lr=Ti.fromId===Ln?Ti.toId:Ti.fromId;if(Rt=Mi(an.get(Lr),Ti),Rt)return!0;en=ni.next()}}function At(Mn,Ln,Mi){for(var Rt,ni=Mn.values(),en=ni.next();!en.done;){var Ti=en.value;if(Ti.fromId===Ln&&(Rt=Mi(an.get(Ti.toId),Ti),Rt))return!0;en=ni.next()}}function Hn(){}function _i(){ln+=1}function dr(){ln-=1,ln===0&&on.length>0&&(Ae.fire("changed",on),on.length=0)}function En(Mn){if(typeof Mn!="function")throw new Error("Function is expected to iterate over graph nodes. You passed "+Mn);for(var Ln=an.values(),Mi=Ln.next();!Mi.done;){if(Mn(Mi.value))return!0;Mi=Ln.next()}}}function Jt(Mt,an){this.id=Mt,this.links=null,this.data=an}function Qt(Mt,an){Mt.links?Mt.links.add(an):Mt.links=new Set([an])}function It(Mt,an,qt,nt){this.fromId=Mt,this.toId=an,this.data=qt,this.id=nt}function dt(Mt,an){return Mt.toString()+"\u{1F449} "+an.toString()}},35764:function(Cn){Cn.exports=Ei;function Ei(je,Me){var yt;if(je||(je={}),Me){for(yt in Me)if(Me.hasOwnProperty(yt)){var Jt=je.hasOwnProperty(yt),Qt=typeof Me[yt],It=!Jt||typeof je[yt]!==Qt;It?je[yt]=Me[yt]:Qt==="object"&&(je[yt]=Ei(je[yt],Me[yt]))}}return je}},40232:function(Cn){Cn.exports=Ei,Cn.exports.random=Ei,Cn.exports.randomIterator=dt;function Ei(Mt){var an=typeof Mt=="number"?Mt:+new Date;return new je(an)}function je(Mt){this.seed=Mt}je.prototype.next=It,je.prototype.nextDouble=Qt,je.prototype.uniform=Qt,je.prototype.gaussian=Me,je.prototype.random=Qt;function Me(){var Mt,an,qt;do an=this.nextDouble()*2-1,qt=this.nextDouble()*2-1,Mt=an*an+qt*qt;while(Mt>=1||Mt===0);return an*Math.sqrt(-2*Math.log(Mt)/Mt)}je.prototype.levy=yt;function yt(){var Mt=1.5,an=Math.pow(Jt(1+Mt)*Math.sin(Math.PI*Mt/2)/(Jt((1+Mt)/2)*Mt*Math.pow(2,(Mt-1)/2)),1/Mt);return this.gaussian()*an/Math.pow(Math.abs(this.gaussian()),1/Mt)}function Jt(Mt){return Math.sqrt(2*Math.PI/Mt)*Math.pow(1/Math.E*(Mt+1/(12*Mt-1/(10*Mt))),Mt)}function Qt(){var Mt=this.seed;return Mt=Mt+2127912214+(Mt<<12)&4294967295,Mt=(Mt^3345072700^Mt>>>19)&4294967295,Mt=Mt+374761393+(Mt<<5)&4294967295,Mt=(Mt+3550635116^Mt<<9)&4294967295,Mt=Mt+4251993797+(Mt<<3)&4294967295,Mt=(Mt^3042594569^Mt>>>16)&4294967295,this.seed=Mt,(Mt&268435455)/268435456}function It(Mt){return Math.floor(this.nextDouble()*Mt)}function dt(Mt,an){var qt=an||Ei();if(typeof qt.next!="function")throw new Error("customRandom does not match expected API: next() function is missing");return{forEach:ln,shuffle:nt};function nt(){var rn,on,et;for(rn=Mt.length-1;rn>0;--rn)on=qt.next(rn+1),et=Mt[on],Mt[on]=Mt[rn],Mt[rn]=et;return Mt}function ln(rn){var on,et,ue;for(on=Mt.length-1;on>0;--on)et=qt.next(on+1),ue=Mt[et],Mt[et]=Mt[on],Mt[on]=ue,rn(ue);Mt.length&&rn(Mt[0])}}},63727:function(Cn,Ei,je){"use strict";je.d(Ei,{s:function(){return qn},default:function(){return lo}});var Me=je(14809),yt=je(20439),Jt=je(95190),Qt=je(50298),It=je(62646),dt=je(37463),Mt=je(6551),an=je(6089),qt=je(18929),nt=je(59301),ln=nt.createContext({}),rn=ln,on=je(93664),et=je(4635),ue="__rc_cascader_search_mark__",ce=function($n,pi,Ai){var Cr=Ai.label,zr=Cr===void 0?"":Cr;return pi.some(function(ao){return String(ao[zr]).toLowerCase().includes($n.toLowerCase())})},Ce=function($n,pi,Ai,Cr){return pi.map(function(zr){return zr[Cr.label]}).join(" / ")},Ae=function($n,pi,Ai,Cr,zr,ao){var Wr=zr.filter,Or=Wr===void 0?ce:Wr,ir=zr.render,ss=ir===void 0?Ce:ir,Us=zr.limit,as=Us===void 0?50:Us,ls=zr.sort;return nt.useMemo(function(){var La=[];if(!$n)return[];function Fs(ha,Al){var We=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;ha.forEach(function(ui){if(!(!ls&&as!==!1&&as>0&&La.length>=as)){var Si=[].concat((0,Jt.Z)(Al),[ui]),ms=ui[Ai.children],Po=We||ui.disabled;if((!ms||ms.length===0||ao)&&Or($n,Si,{label:Ai.label})){var Xr;La.push((0,yt.Z)((0,yt.Z)({},ui),{},(Xr={disabled:Po},(0,et.Z)(Xr,Ai.label,ss($n,Si,Cr,Ai)),(0,et.Z)(Xr,ue,Si),(0,et.Z)(Xr,Ai.children,void 0),Xr)))}ms&&Fs(ui[Ai.children],Si,Po)}})}return Fs(pi,[]),ls&&La.sort(function(ha,Al){return ls(ha[ue],Al[ue],$n,Ai)}),as!==!1&&as>0?La.slice(0,as):La},[$n,pi,Ai,Cr,ss,ao,Or,ls,as])},Te=Ae,Ie="__RC_CASCADER_SPLIT__",ze="SHOW_PARENT",Ye="SHOW_CHILD";function lt(Rn){return Rn.join(Ie)}function Bt(Rn){return Rn.map(lt)}function kt(Rn){return Rn.split(Ie)}function xt(Rn){var $n=Rn||{},pi=$n.label,Ai=$n.value,Cr=$n.children,zr=Ai||"value";return{label:pi||"label",value:zr,key:zr,children:Cr||"children"}}function Et(Rn,$n){var pi,Ai;return(pi=Rn.isLeaf)!==null&&pi!==void 0?pi:!((Ai=Rn[$n.children])!==null&&Ai!==void 0&&Ai.length)}function $t(Rn){var $n=Rn.parentElement;if($n){var pi=Rn.offsetTop-$n.offsetTop;pi-$n.scrollTop<0?$n.scrollTo({top:pi}):pi+Rn.offsetHeight-$n.scrollTop>$n.offsetHeight&&$n.scrollTo({top:pi+Rn.offsetHeight-$n.offsetHeight})}}function Zt(Rn,$n){return Rn.map(function(pi){var Ai;return(Ai=pi[ue])===null||Ai===void 0?void 0:Ai.map(function(Cr){return Cr[$n.value]})})}function Yn(Rn){return Array.isArray(Rn)&&Array.isArray(Rn[0])}function gn(Rn){return Rn?Yn(Rn)?Rn:(Rn.length===0?[]:[Rn]).map(function($n){return Array.isArray($n)?$n:[$n]}):[]}function Jn(Rn,$n,pi){var Ai=new Set(Rn),Cr=$n();return Rn.filter(function(zr){var ao=Cr[zr],Wr=ao?ao.parent:null,Or=ao?ao.children:null;return ao&&ao.node.disabled?!0:pi===Ye?!(Or&&Or.some(function(ir){return ir.key&&Ai.has(ir.key)})):!(Wr&&!Wr.node.disabled&&Ai.has(Wr.key))})}function ci(Rn,$n,pi){for(var Ai=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,Cr=$n,zr=[],ao=function(){var ir,ss,Us,as=Rn[Wr],ls=(ir=Cr)===null||ir===void 0?void 0:ir.findIndex(function(Fs){var ha=Fs[pi.value];return Ai?String(ha)===String(as):ha===as}),La=ls!==-1?(ss=Cr)===null||ss===void 0?void 0:ss[ls]:null;zr.push({value:(Us=La==null?void 0:La[pi.value])!==null&&Us!==void 0?Us:as,index:ls,option:La}),Cr=La==null?void 0:La[pi.children]},Wr=0;Wr<Rn.length;Wr+=1)ao();return zr}var Xn=function(Rn,$n,pi,Ai,Cr){return nt.useMemo(function(){var zr=Cr||function(ao){var Wr=Ai?ao.slice(-1):ao,Or=" / ";return Wr.every(function(ir){return["string","number"].includes((0,on.Z)(ir))})?Wr.join(Or):Wr.reduce(function(ir,ss,Us){var as=nt.isValidElement(ss)?nt.cloneElement(ss,{key:Us}):ss;return Us===0?[as]:[].concat((0,Jt.Z)(ir),[Or,as])},[])};return Rn.map(function(ao){var Wr,Or=ci(ao,$n,pi),ir=zr(Or.map(function(Us){var as,ls=Us.option,La=Us.value;return(as=ls==null?void 0:ls[pi.label])!==null&&as!==void 0?as:La}),Or.map(function(Us){var as=Us.option;return as})),ss=lt(ao);return{label:ir,value:ss,key:ss,valueCells:ao,disabled:(Wr=Or[Or.length-1])===null||Wr===void 0||(Wr=Wr.option)===null||Wr===void 0?void 0:Wr.disabled}})},[Rn,$n,pi,Cr,Ai])};function In(Rn,$n){return nt.useCallback(function(pi){var Ai=[],Cr=[];return pi.forEach(function(zr){var ao=ci(zr,Rn,$n);ao.every(function(Wr){return Wr.option})?Cr.push(zr):Ai.push(zr)}),[Cr,Ai]},[Rn,$n])}var hi=je(34061),Ht=function(Rn,$n){var pi=nt.useRef({options:[],info:{keyEntities:{},pathKeyEntities:{}}}),Ai=nt.useCallback(function(){return pi.current.options!==Rn&&(pi.current.options=Rn,pi.current.info=(0,hi.I8)(Rn,{fieldNames:$n,initWrapper:function(zr){return(0,yt.Z)((0,yt.Z)({},zr),{},{pathKeyEntities:{}})},processEntity:function(zr,ao){var Wr=zr.nodes.map(function(Or){return Or[$n.value]}).join(Ie);ao.pathKeyEntities[Wr]=zr,zr.key=Wr}})),pi.current.info.pathKeyEntities},[$n,Rn]);return Ai};function At(Rn,$n){var pi=nt.useMemo(function(){return $n||[]},[$n]),Ai=Ht(pi,Rn),Cr=nt.useCallback(function(zr){var ao=Ai();return zr.map(function(Wr){var Or=ao[Wr].nodes;return Or.map(function(ir){return ir[Rn.value]})})},[Ai,Rn]);return[pi,Ai,Cr]}var Hn=je(48736);function _i(Rn){return nt.useMemo(function(){if(!Rn)return[!1,{}];var $n={matchInputWidth:!0,limit:50};return Rn&&(0,on.Z)(Rn)==="object"&&($n=(0,yt.Z)((0,yt.Z)({},$n),Rn)),$n.limit<=0&&($n.limit=!1),[!0,$n]},[Rn])}var dr=je(34643);function En(Rn,$n,pi,Ai,Cr,zr,ao,Wr){return function(Or){if(!Rn)$n(Or);else{var ir=lt(Or),ss=Bt(pi),Us=Bt(Ai),as=ss.includes(ir),ls=Cr.some(function(Po){return lt(Po)===ir}),La=pi,Fs=Cr;if(ls&&!as)Fs=Cr.filter(function(Po){return lt(Po)!==ir});else{var ha=as?ss.filter(function(Po){return Po!==ir}):[].concat((0,Jt.Z)(ss),[ir]),Al=zr(),We;if(as){var ui=(0,dr.S)(ha,{checked:!1,halfCheckedKeys:Us},Al);We=ui.checkedKeys}else{var Si=(0,dr.S)(ha,!0,Al);We=Si.checkedKeys}var ms=Jn(We,zr,Wr);La=ao(ms)}$n([].concat((0,Jt.Z)(Fs),(0,Jt.Z)(La)))}}}function Mn(Rn,$n,pi,Ai,Cr){return nt.useMemo(function(){var zr=Cr($n),ao=(0,Qt.Z)(zr,2),Wr=ao[0],Or=ao[1];if(!Rn||!$n.length)return[Wr,[],Or];var ir=Bt(Wr),ss=pi(),Us=(0,dr.S)(ir,!0,ss),as=Us.checkedKeys,ls=Us.halfCheckedKeys;return[Ai(as),Ai(ls),Or]},[Rn,$n,pi,Ai,Cr])}var Ln=je(92310),Mi=je.n(Ln),Rt=nt.memo(function(Rn){var $n=Rn.children;return $n},function(Rn,$n){return!$n.open}),ni=Rt;function en(Rn){var $n,pi=Rn.prefixCls,Ai=Rn.checked,Cr=Rn.halfChecked,zr=Rn.disabled,ao=Rn.onClick,Wr=Rn.disableCheckbox,Or=nt.useContext(rn),ir=Or.checkable,ss=typeof ir!="boolean"?ir:null;return nt.createElement("span",{className:Mi()("".concat(pi),($n={},(0,et.Z)($n,"".concat(pi,"-checked"),Ai),(0,et.Z)($n,"".concat(pi,"-indeterminate"),!Ai&&Cr),(0,et.Z)($n,"".concat(pi,"-disabled"),zr||Wr),$n)),onClick:ao},ss)}var Ti="__cascader_fix_label__";function Lr(Rn){var $n=Rn.prefixCls,pi=Rn.multiple,Ai=Rn.options,Cr=Rn.activeValue,zr=Rn.prevValuePath,ao=Rn.onToggleOpen,Wr=Rn.onSelect,Or=Rn.onActive,ir=Rn.checkedSet,ss=Rn.halfCheckedSet,Us=Rn.loadingKeys,as=Rn.isSelectable,ls=Rn.disabled,La="".concat($n,"-menu"),Fs="".concat($n,"-menu-item"),ha=nt.useContext(rn),Al=ha.fieldNames,We=ha.changeOnSelect,ui=ha.expandTrigger,Si=ha.expandIcon,ms=ha.loadingIcon,Po=ha.dropdownMenuColumnStyle,Xr=ha.optionRender,si=ui==="hover",Hi=function(vn){return ls||vn},or=nt.useMemo(function(){return Ai.map(function(Fn){var vn,pn=Fn.disabled,Ur=Fn.disableCheckbox,Ho=Fn[ue],bo=(vn=Fn[Ti])!==null&&vn!==void 0?vn:Fn[Al.label],ji=Fn[Al.value],co=Et(Fn,Al),Oa=Ho?Ho.map(function(Xo){return Xo[Al.value]}):[].concat((0,Jt.Z)(zr),[ji]),aa=lt(Oa),pa=Us.includes(aa),hn=ir.has(aa),Ar=ss.has(aa);return{disabled:pn,label:bo,value:ji,isLeaf:co,isLoading:pa,checked:hn,halfChecked:Ar,option:Fn,disableCheckbox:Ur,fullPath:Oa,fullPathKey:aa}})},[Ai,ir,Al,ss,Us,zr]);return nt.createElement("ul",{className:La,role:"menu"},or.map(function(Fn){var vn,pn=Fn.disabled,Ur=Fn.label,Ho=Fn.value,bo=Fn.isLeaf,ji=Fn.isLoading,co=Fn.checked,Oa=Fn.halfChecked,aa=Fn.option,pa=Fn.fullPath,hn=Fn.fullPathKey,Ar=Fn.disableCheckbox,Xo=function(){if(!Hi(pn)){var wa=(0,Jt.Z)(pa);si&&bo&&wa.pop(),Or(wa)}},al=function(){as(aa)&&!Hi(pn)&&Wr(pa,bo)},Ji;return typeof aa.title=="string"?Ji=aa.title:typeof Ur=="string"&&(Ji=Ur),nt.createElement("li",{key:hn,className:Mi()(Fs,(vn={},(0,et.Z)(vn,"".concat(Fs,"-expand"),!bo),(0,et.Z)(vn,"".concat(Fs,"-active"),Cr===Ho||Cr===hn),(0,et.Z)(vn,"".concat(Fs,"-disabled"),Hi(pn)),(0,et.Z)(vn,"".concat(Fs,"-loading"),ji),vn)),style:Po,role:"menuitemcheckbox",title:Ji,"aria-checked":co,"data-path-key":hn,onClick:function(){Xo(),!Ar&&(!pi||bo)&&al()},onDoubleClick:function(){We&&ao(!1)},onMouseEnter:function(){si&&Xo()},onMouseDown:function(wa){wa.preventDefault()}},pi&&nt.createElement(en,{prefixCls:"".concat($n,"-checkbox"),checked:co,halfChecked:Oa,disabled:Hi(pn)||Ar,disableCheckbox:Ar,onClick:function(wa){Ar||(wa.stopPropagation(),al())}}),nt.createElement("div",{className:"".concat(Fs,"-content")},Xr?Xr(aa):Ur),!ji&&Si&&!bo&&nt.createElement("div",{className:"".concat(Fs,"-expand-icon")},Si),ji&&ms&&nt.createElement("div",{className:"".concat(Fs,"-loading-icon")},ms))}))}var Tt=function($n,pi){var Ai=nt.useContext(rn),Cr=Ai.values,zr=Cr[0],ao=nt.useState([]),Wr=(0,Qt.Z)(ao,2),Or=Wr[0],ir=Wr[1];return nt.useEffect(function(){$n||ir(zr||[])},[pi,zr]),[Or,ir]},Ze=Tt,Ge=je(10228),rt=function(Rn,$n,pi,Ai,Cr,zr,ao){var Wr=ao.direction,Or=ao.searchValue,ir=ao.toggleOpen,ss=ao.open,Us=Wr==="rtl",as=nt.useMemo(function(){for(var Po=-1,Xr=$n,si=[],Hi=[],or=Ai.length,Fn=Zt($n,pi),vn=function(ji){var co=Xr.findIndex(function(Oa,aa){return(Fn[aa]?lt(Fn[aa]):Oa[pi.value])===Ai[ji]});if(co===-1)return 1;Po=co,si.push(Po),Hi.push(Ai[ji]),Xr=Xr[Po][pi.children]},pn=0;pn<or&&Xr&&!vn(pn);pn+=1);for(var Ur=$n,Ho=0;Ho<si.length-1;Ho+=1)Ur=Ur[si[Ho]][pi.children];return[Hi,Po,Ur,Fn]},[Ai,pi,$n]),ls=(0,Qt.Z)(as,4),La=ls[0],Fs=ls[1],ha=ls[2],Al=ls[3],We=function(Xr){Cr(Xr)},ui=function(Xr){var si=ha.length,Hi=Fs;Hi===-1&&Xr<0&&(Hi=si);for(var or=0;or<si;or+=1){Hi=(Hi+Xr+si)%si;var Fn=ha[Hi];if(Fn&&!Fn.disabled){var vn=La.slice(0,-1).concat(Al[Hi]?lt(Al[Hi]):Fn[pi.value]);We(vn);return}}},Si=function(){if(La.length>1){var Xr=La.slice(0,-1);We(Xr)}else ir(!1)},ms=function(){var Xr,si=((Xr=ha[Fs])===null||Xr===void 0?void 0:Xr[pi.children])||[],Hi=si.find(function(Fn){return!Fn.disabled});if(Hi){var or=[].concat((0,Jt.Z)(La),[Hi[pi.value]]);We(or)}};nt.useImperativeHandle(Rn,function(){return{onKeyDown:function(Xr){var si=Xr.which;switch(si){case Ge.Z.UP:case Ge.Z.DOWN:{var Hi=0;si===Ge.Z.UP?Hi=-1:si===Ge.Z.DOWN&&(Hi=1),Hi!==0&&ui(Hi);break}case Ge.Z.LEFT:{if(Or)break;Us?ms():Si();break}case Ge.Z.RIGHT:{if(Or)break;Us?Si():ms();break}case Ge.Z.BACKSPACE:{Or||Si();break}case Ge.Z.ENTER:{if(La.length){var or=ha[Fs],Fn=(or==null?void 0:or[ue])||[];Fn.length?zr(Fn.map(function(vn){return vn[pi.value]}),Fn[Fn.length-1]):zr(La,ha[Fs])}break}case Ge.Z.ESC:ir(!1),ss&&Xr.stopPropagation()}},onKeyUp:function(){}}})},Ft=nt.forwardRef(function(Rn,$n){var pi,Ai,Cr,zr=Rn.prefixCls,ao=Rn.multiple,Wr=Rn.searchValue,Or=Rn.toggleOpen,ir=Rn.notFoundContent,ss=Rn.direction,Us=Rn.open,as=Rn.disabled,ls=nt.useRef(null),La=ss==="rtl",Fs=nt.useContext(rn),ha=Fs.options,Al=Fs.values,We=Fs.halfValues,ui=Fs.fieldNames,Si=Fs.changeOnSelect,ms=Fs.onSelect,Po=Fs.searchOptions,Xr=Fs.dropdownPrefixCls,si=Fs.loadData,Hi=Fs.expandTrigger,or=Xr||zr,Fn=nt.useState([]),vn=(0,Qt.Z)(Fn,2),pn=vn[0],Ur=vn[1],Ho=function(da){if(!(!si||Wr)){var us=ci(da,ha,ui),Sa=us.map(function(iu){var Gu=iu.option;return Gu}),zi=Sa[Sa.length-1];if(zi&&!Et(zi,ui)){var fc=lt(da);Ur(function(iu){return[].concat((0,Jt.Z)(iu),[fc])}),si(Sa)}}};nt.useEffect(function(){pn.length&&pn.forEach(function(Jo){var da=kt(Jo),us=ci(da,ha,ui,!0).map(function(zi){var fc=zi.option;return fc}),Sa=us[us.length-1];(!Sa||Sa[ui.children]||Et(Sa,ui))&&Ur(function(zi){return zi.filter(function(fc){return fc!==Jo})})})},[ha,pn,ui]);var bo=nt.useMemo(function(){return new Set(Bt(Al))},[Al]),ji=nt.useMemo(function(){return new Set(Bt(We))},[We]),co=Ze(ao,Us),Oa=(0,Qt.Z)(co,2),aa=Oa[0],pa=Oa[1],hn=function(da){pa(da),Ho(da)},Ar=function(da){if(as)return!1;var us=da.disabled,Sa=Et(da,ui);return!us&&(Sa||Si||ao)},Xo=function(da,us){var Sa=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;ms(da),!ao&&(us||Si&&(Hi==="hover"||Sa))&&Or(!1)},al=nt.useMemo(function(){return Wr?Po:ha},[Wr,Po,ha]),Ji=nt.useMemo(function(){for(var Jo=[{options:al}],da=al,us=Zt(da,ui),Sa=function(){var iu=aa[zi],Gu=da.find(function(Lo,zs){return(us[zs]?lt(us[zs]):Lo[ui.value])===iu}),Ni=Gu==null?void 0:Gu[ui.children];if(!(Ni!=null&&Ni.length))return 1;da=Ni,Jo.push({options:Ni})},zi=0;zi<aa.length&&!Sa();zi+=1);return Jo},[al,aa,ui]),Fo=function(da,us){Ar(us)&&Xo(da,Et(us,ui),!0)};rt($n,al,ui,aa,hn,Fo,{direction:ss,searchValue:Wr,toggleOpen:Or,open:Us}),nt.useEffect(function(){if(!Wr)for(var Jo=0;Jo<aa.length;Jo+=1){var da,us=aa.slice(0,Jo+1),Sa=lt(us),zi=(da=ls.current)===null||da===void 0?void 0:da.querySelector('li[data-path-key="'.concat(Sa.replace(/\\{0,2}"/g,'\\"'),'"]'));zi&&$t(zi)}},[aa,Wr]);var wa=!((pi=Ji[0])!==null&&pi!==void 0&&(pi=pi.options)!==null&&pi!==void 0&&pi.length),xl=[(Ai={},(0,et.Z)(Ai,ui.value,"__EMPTY__"),(0,et.Z)(Ai,Ti,ir),(0,et.Z)(Ai,"disabled",!0),Ai)],Ll=(0,yt.Z)((0,yt.Z)({},Rn),{},{multiple:!wa&&ao,onSelect:Xo,onActive:hn,onToggleOpen:Or,checkedSet:bo,halfCheckedSet:ji,loadingKeys:pn,isSelectable:Ar}),ys=wa?[{options:xl}]:Ji,As=ys.map(function(Jo,da){var us=aa.slice(0,da),Sa=aa[da];return nt.createElement(Lr,(0,Me.Z)({key:da},Ll,{prefixCls:or,options:Jo.options,prevValuePath:us,activeValue:Sa}))});return nt.createElement(ni,{open:Us},nt.createElement("div",{className:Mi()("".concat(or,"-menus"),(Cr={},(0,et.Z)(Cr,"".concat(or,"-menu-empty"),wa),(0,et.Z)(Cr,"".concat(or,"-rtl"),La),Cr)),ref:ls},As))}),qe=Ft,mt=nt.forwardRef(function(Rn,$n){var pi=(0,dt.lk)();return nt.createElement(qe,(0,Me.Z)({},Rn,pi,{ref:$n}))}),An=mt,Gn=je(70425);function fo(){}function qn(Rn){var $n,pi=Rn,Ai=pi.prefixCls,Cr=Ai===void 0?"rc-cascader":Ai,zr=pi.style,ao=pi.className,Wr=pi.options,Or=pi.checkable,ir=pi.defaultValue,ss=pi.value,Us=pi.fieldNames,as=pi.changeOnSelect,ls=pi.onChange,La=pi.showCheckedStrategy,Fs=pi.loadData,ha=pi.expandTrigger,Al=pi.expandIcon,We=Al===void 0?">":Al,ui=pi.loadingIcon,Si=pi.direction,ms=pi.notFoundContent,Po=ms===void 0?"Not Found":ms,Xr=pi.disabled,si=!!Or,Hi=(0,Gn.C8)(ir,{value:ss,postState:gn}),or=(0,Qt.Z)(Hi,2),Fn=or[0],vn=or[1],pn=nt.useMemo(function(){return xt(Us)},[JSON.stringify(Us)]),Ur=At(pn,Wr),Ho=(0,Qt.Z)(Ur,3),bo=Ho[0],ji=Ho[1],co=Ho[2],Oa=In(bo,pn),aa=Mn(si,Fn,ji,co,Oa),pa=(0,Qt.Z)(aa,3),hn=pa[0],Ar=pa[1],Xo=pa[2],al=(0,Gn.zX)(function(ys){if(vn(ys),ls){var As=gn(ys),Jo=As.map(function(Sa){return ci(Sa,bo,pn).map(function(zi){return zi.option})}),da=si?As:As[0],us=si?Jo:Jo[0];ls(da,us)}}),Ji=En(si,al,hn,Ar,Xo,ji,co,La),Fo=(0,Gn.zX)(function(ys){Ji(ys)}),wa=nt.useMemo(function(){return{options:bo,fieldNames:pn,values:hn,halfValues:Ar,changeOnSelect:as,onSelect:Fo,checkable:Or,searchOptions:[],dropdownPrefixCls:void 0,loadData:Fs,expandTrigger:ha,expandIcon:We,loadingIcon:ui,dropdownMenuColumnStyle:void 0}},[bo,pn,hn,Ar,as,Fo,Or,Fs,ha,We,ui]),xl="".concat(Cr,"-panel"),Ll=!bo.length;return nt.createElement(rn.Provider,{value:wa},nt.createElement("div",{className:Mi()(xl,($n={},(0,et.Z)($n,"".concat(xl,"-rtl"),Si==="rtl"),(0,et.Z)($n,"".concat(xl,"-empty"),Ll),$n),ao),style:zr},Ll?Po:nt.createElement(qe,{prefixCls:Cr,searchValue:"",multiple:si,toggleOpen:fo,open:!0,direction:Si,disabled:Xr})))}function Kn(Rn){var $n=Rn.onPopupVisibleChange,pi=Rn.popupVisible,Ai=Rn.popupClassName,Cr=Rn.popupPlacement;warning(!$n,"`onPopupVisibleChange` is deprecated. Please use `onDropdownVisibleChange` instead."),warning(pi===void 0,"`popupVisible` is deprecated. Please use `open` instead."),warning(Ai===void 0,"`popupClassName` is deprecated. Please use `dropdownClassName` instead."),warning(Cr===void 0,"`popupPlacement` is deprecated. Please use `placement` instead.")}function oi(Rn,$n){if(Rn){var pi=function Ai(Cr){for(var zr=0;zr<Cr.length;zr++){var ao=Cr[zr];if(ao[$n==null?void 0:$n.value]===null)return warning(!1,"`value` in Cascader options should not be `null`."),!0;if(Array.isArray(ao[$n==null?void 0:$n.children])&&Ai(ao[$n==null?void 0:$n.children]))return!0}};pi(Rn)}}var Wi=null,Nr=["id","prefixCls","fieldNames","defaultValue","value","changeOnSelect","onChange","displayRender","checkable","autoClearSearchValue","searchValue","onSearch","showSearch","expandTrigger","options","dropdownPrefixCls","loadData","popupVisible","open","popupClassName","dropdownClassName","dropdownMenuColumnStyle","dropdownStyle","popupPlacement","placement","onDropdownVisibleChange","onPopupVisibleChange","expandIcon","loadingIcon","children","dropdownMatchSelectWidth","showCheckedStrategy","optionRender"],Uo=nt.forwardRef(function(Rn,$n){var pi=Rn.id,Ai=Rn.prefixCls,Cr=Ai===void 0?"rc-cascader":Ai,zr=Rn.fieldNames,ao=Rn.defaultValue,Wr=Rn.value,Or=Rn.changeOnSelect,ir=Rn.onChange,ss=Rn.displayRender,Us=Rn.checkable,as=Rn.autoClearSearchValue,ls=as===void 0?!0:as,La=Rn.searchValue,Fs=Rn.onSearch,ha=Rn.showSearch,Al=Rn.expandTrigger,We=Rn.options,ui=Rn.dropdownPrefixCls,Si=Rn.loadData,ms=Rn.popupVisible,Po=Rn.open,Xr=Rn.popupClassName,si=Rn.dropdownClassName,Hi=Rn.dropdownMenuColumnStyle,or=Rn.dropdownStyle,Fn=Rn.popupPlacement,vn=Rn.placement,pn=Rn.onDropdownVisibleChange,Ur=Rn.onPopupVisibleChange,Ho=Rn.expandIcon,bo=Ho===void 0?">":Ho,ji=Rn.loadingIcon,co=Rn.children,Oa=Rn.dropdownMatchSelectWidth,aa=Oa===void 0?!1:Oa,pa=Rn.showCheckedStrategy,hn=pa===void 0?ze:pa,Ar=Rn.optionRender,Xo=(0,It.Z)(Rn,Nr),al=(0,Mt.ZP)(pi),Ji=!!Us,Fo=(0,qt.Z)(ao,{value:Wr,postState:gn}),wa=(0,Qt.Z)(Fo,2),xl=wa[0],Ll=wa[1],ys=nt.useMemo(function(){return xt(zr)},[JSON.stringify(zr)]),As=At(ys,We),Jo=(0,Qt.Z)(As,3),da=Jo[0],us=Jo[1],Sa=Jo[2],zi=(0,qt.Z)("",{value:La,postState:function(Rr){return Rr||""}}),fc=(0,Qt.Z)(zi,2),iu=fc[0],Gu=fc[1],Ni=function(Rr,po){Gu(Rr),po.source!=="blur"&&Fs&&Fs(Rr)},Lo=_i(ha),zs=(0,Qt.Z)(Lo,2),Fa=zs[0],Js=zs[1],_s=Te(iu,da,ys,ui||Cr,Js,Or||Ji),wl=In(da,ys),Sl=Mn(Ji,xl,us,Sa,wl),rl=(0,Qt.Z)(Sl,3),Il=rl[0],Zi=rl[1],hl=rl[2],Yi=nt.useMemo(function(){var xr=Bt(Il),Rr=Jn(xr,us,hn);return[].concat((0,Jt.Z)(hl),(0,Jt.Z)(Sa(Rr)))},[Il,us,Sa,hl,hn]),$o=Xn(Yi,da,ys,Ji,ss),dl=(0,an.Z)(function(xr){if(Ll(xr),ir){var Rr=gn(xr),po=Rr.map(function(Bs){return ci(Bs,da,ys).map(function(Vo){return Vo.option})}),ko=Ji?Rr:Rr[0],Bo=Ji?po:po[0];ir(ko,Bo)}}),Pl=En(Ji,dl,Il,Zi,hl,us,Sa,hn),pc=(0,an.Z)(function(xr){(!Ji||ls)&&Gu(""),Pl(xr)}),pu=function(Rr,po){if(po.type==="clear"){dl([]);return}var ko=po.values[0],Bo=ko.valueCells;pc(Bo)},jl=Po!==void 0?Po:ms,Vu=si||Xr,Un=vn||Fn,xi=function(Rr){pn==null||pn(Rr),Ur==null||Ur(Rr)},kn=nt.useMemo(function(){return{options:da,fieldNames:ys,values:Il,halfValues:Zi,changeOnSelect:Or,onSelect:pc,checkable:Us,searchOptions:_s,dropdownPrefixCls:ui,loadData:Si,expandTrigger:Al,expandIcon:bo,loadingIcon:ji,dropdownMenuColumnStyle:Hi,optionRender:Ar}},[da,ys,Il,Zi,Or,pc,Us,_s,ui,Si,Al,bo,ji,Hi,Ar]),it=!(iu?_s:da).length,fr=iu&&Js.matchInputWidth||it?{}:{minWidth:"auto"};return nt.createElement(rn.Provider,{value:kn},nt.createElement(dt.Ac,(0,Me.Z)({},Xo,{ref:$n,id:al,prefixCls:Cr,autoClearSearchValue:ls,dropdownMatchSelectWidth:aa,dropdownStyle:(0,yt.Z)((0,yt.Z)({},fr),or),displayValues:$o,onDisplayValuesChange:pu,mode:Ji?"multiple":void 0,searchValue:iu,onSearch:Ni,showSearch:Fa,OptionList:An,emptyOptions:it,open:jl,dropdownClassName:Vu,placement:Un,onDropdownVisibleChange:xi,getRawInputElement:function(){return co}})))});Uo.SHOW_PARENT=ze,Uo.SHOW_CHILD=Ye,Uo.Panel=qn;var Vr=Uo,lo=Vr},66042:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return Yn}});var Me=je(20439),yt=je(50298),Jt=je(43403),Qt=je(34280),It=je(59301),dt=It.createContext(null),Mt=It.createContext({}),an=dt,qt=je(4635),nt=je(14809),ln=je(92310),rn=je.n(ln),on=je(77900),et=je(10228),ue=je(26112),ce=je(62646),Ce=je(8654),Ae=["prefixCls","className","containerRef"],Te=function(Jn){var ci=Jn.prefixCls,Xn=Jn.className,In=Jn.containerRef,hi=(0,ce.Z)(Jn,Ae),Ht=It.useContext(Mt),At=Ht.panel,Hn=(0,Ce.x1)(At,In);return It.createElement("div",(0,nt.Z)({className:rn()("".concat(ci,"-content"),Xn),role:"dialog",ref:Hn},(0,ue.Z)(Jn,{aria:!0}),{"aria-modal":"true"},hi))},Ie=Te,ze=je(48736);function Ye(gn){return typeof gn=="string"&&String(Number(gn))===gn?((0,ze.ZP)(!1,"Invalid value type of `width` or `height` which should be number type instead."),Number(gn)):gn}function lt(gn){warning(!("wrapperClassName"in gn),"'wrapperClassName' is removed. Please use 'rootClassName' instead."),warning(canUseDom()||!gn.open,"Drawer with 'open' in SSR is not work since no place to createPortal. Please move to 'useEffect' instead.")}var Bt={width:0,height:0,overflow:"hidden",outline:"none",position:"absolute"};function kt(gn,Jn){var ci,Xn,In,hi=gn.prefixCls,Ht=gn.open,At=gn.placement,Hn=gn.inline,_i=gn.push,dr=gn.forceRender,En=gn.autoFocus,Mn=gn.keyboard,Ln=gn.classNames,Mi=gn.rootClassName,Rt=gn.rootStyle,ni=gn.zIndex,en=gn.className,Ti=gn.id,Lr=gn.style,Tt=gn.motion,Ze=gn.width,Ge=gn.height,rt=gn.children,Ft=gn.mask,qe=gn.maskClosable,mt=gn.maskMotion,An=gn.maskClassName,Gn=gn.maskStyle,fo=gn.afterOpenChange,qn=gn.onClose,Kn=gn.onMouseEnter,oi=gn.onMouseOver,Wi=gn.onMouseLeave,Nr=gn.onClick,Uo=gn.onKeyDown,Vr=gn.onKeyUp,lo=gn.styles,Rn=gn.drawerRender,$n=It.useRef(),pi=It.useRef(),Ai=It.useRef();It.useImperativeHandle(Jn,function(){return $n.current});var Cr=function(Si){var ms=Si.keyCode,Po=Si.shiftKey;switch(ms){case et.Z.TAB:{if(ms===et.Z.TAB){if(!Po&&document.activeElement===Ai.current){var Xr;(Xr=pi.current)===null||Xr===void 0||Xr.focus({preventScroll:!0})}else if(Po&&document.activeElement===pi.current){var si;(si=Ai.current)===null||si===void 0||si.focus({preventScroll:!0})}}break}case et.Z.ESC:{qn&&Mn&&(Si.stopPropagation(),qn(Si));break}}};It.useEffect(function(){if(Ht&&En){var ui;(ui=$n.current)===null||ui===void 0||ui.focus({preventScroll:!0})}},[Ht]);var zr=It.useState(!1),ao=(0,yt.Z)(zr,2),Wr=ao[0],Or=ao[1],ir=It.useContext(an),ss;typeof _i=="boolean"?ss=_i?{}:{distance:0}:ss=_i||{};var Us=(ci=(Xn=(In=ss)===null||In===void 0?void 0:In.distance)!==null&&Xn!==void 0?Xn:ir==null?void 0:ir.pushDistance)!==null&&ci!==void 0?ci:180,as=It.useMemo(function(){return{pushDistance:Us,push:function(){Or(!0)},pull:function(){Or(!1)}}},[Us]);It.useEffect(function(){if(Ht){var ui;ir==null||(ui=ir.push)===null||ui===void 0||ui.call(ir)}else{var Si;ir==null||(Si=ir.pull)===null||Si===void 0||Si.call(ir)}},[Ht]),It.useEffect(function(){return function(){var ui;ir==null||(ui=ir.pull)===null||ui===void 0||ui.call(ir)}},[]);var ls=Ft&&It.createElement(on.default,(0,nt.Z)({key:"mask"},mt,{visible:Ht}),function(ui,Si){var ms=ui.className,Po=ui.style;return It.createElement("div",{className:rn()("".concat(hi,"-mask"),ms,Ln==null?void 0:Ln.mask,An),style:(0,Me.Z)((0,Me.Z)((0,Me.Z)({},Po),Gn),lo==null?void 0:lo.mask),onClick:qe&&Ht?qn:void 0,ref:Si})}),La=typeof Tt=="function"?Tt(At):Tt,Fs={};if(Wr&&Us)switch(At){case"top":Fs.transform="translateY(".concat(Us,"px)");break;case"bottom":Fs.transform="translateY(".concat(-Us,"px)");break;case"left":Fs.transform="translateX(".concat(Us,"px)");break;default:Fs.transform="translateX(".concat(-Us,"px)");break}At==="left"||At==="right"?Fs.width=Ye(Ze):Fs.height=Ye(Ge);var ha={onMouseEnter:Kn,onMouseOver:oi,onMouseLeave:Wi,onClick:Nr,onKeyDown:Uo,onKeyUp:Vr},Al=It.createElement(on.default,(0,nt.Z)({key:"panel"},La,{visible:Ht,forceRender:dr,onVisibleChanged:function(Si){fo==null||fo(Si)},removeOnLeave:!1,leavedClassName:"".concat(hi,"-content-wrapper-hidden")}),function(ui,Si){var ms=ui.className,Po=ui.style,Xr=It.createElement(Ie,(0,nt.Z)({id:Ti,containerRef:Si,prefixCls:hi,className:rn()(en,Ln==null?void 0:Ln.content),style:(0,Me.Z)((0,Me.Z)({},Lr),lo==null?void 0:lo.content)},(0,ue.Z)(gn,{aria:!0}),ha),rt);return It.createElement("div",(0,nt.Z)({className:rn()("".concat(hi,"-content-wrapper"),Ln==null?void 0:Ln.wrapper,ms),style:(0,Me.Z)((0,Me.Z)((0,Me.Z)({},Fs),Po),lo==null?void 0:lo.wrapper)},(0,ue.Z)(gn,{data:!0})),Rn?Rn(Xr):Xr)}),We=(0,Me.Z)({},Rt);return ni&&(We.zIndex=ni),It.createElement(an.Provider,{value:as},It.createElement("div",{className:rn()(hi,"".concat(hi,"-").concat(At),Mi,(0,qt.Z)((0,qt.Z)({},"".concat(hi,"-open"),Ht),"".concat(hi,"-inline"),Hn)),style:We,tabIndex:-1,ref:$n,onKeyDown:Cr},ls,It.createElement("div",{tabIndex:0,ref:pi,style:Bt,"aria-hidden":"true","data-sentinel":"start"}),Al,It.createElement("div",{tabIndex:0,ref:Ai,style:Bt,"aria-hidden":"true","data-sentinel":"end"})))}var xt=It.forwardRef(kt),Et=xt,$t=function(Jn){var ci=Jn.open,Xn=ci===void 0?!1:ci,In=Jn.prefixCls,hi=In===void 0?"rc-drawer":In,Ht=Jn.placement,At=Ht===void 0?"right":Ht,Hn=Jn.autoFocus,_i=Hn===void 0?!0:Hn,dr=Jn.keyboard,En=dr===void 0?!0:dr,Mn=Jn.width,Ln=Mn===void 0?378:Mn,Mi=Jn.mask,Rt=Mi===void 0?!0:Mi,ni=Jn.maskClosable,en=ni===void 0?!0:ni,Ti=Jn.getContainer,Lr=Jn.forceRender,Tt=Jn.afterOpenChange,Ze=Jn.destroyOnClose,Ge=Jn.onMouseEnter,rt=Jn.onMouseOver,Ft=Jn.onMouseLeave,qe=Jn.onClick,mt=Jn.onKeyDown,An=Jn.onKeyUp,Gn=Jn.panelRef,fo=It.useState(!1),qn=(0,yt.Z)(fo,2),Kn=qn[0],oi=qn[1],Wi=It.useState(!1),Nr=(0,yt.Z)(Wi,2),Uo=Nr[0],Vr=Nr[1];(0,Qt.Z)(function(){Vr(!0)},[]);var lo=Uo?Xn:!1,Rn=It.useRef(),$n=It.useRef();(0,Qt.Z)(function(){lo&&($n.current=document.activeElement)},[lo]);var pi=function(Wr){var Or;if(oi(Wr),Tt==null||Tt(Wr),!Wr&&$n.current&&!((Or=Rn.current)!==null&&Or!==void 0&&Or.contains($n.current))){var ir;(ir=$n.current)===null||ir===void 0||ir.focus({preventScroll:!0})}},Ai=It.useMemo(function(){return{panel:Gn}},[Gn]);if(!Lr&&!Kn&&!lo&&Ze)return null;var Cr={onMouseEnter:Ge,onMouseOver:rt,onMouseLeave:Ft,onClick:qe,onKeyDown:mt,onKeyUp:An},zr=(0,Me.Z)((0,Me.Z)({},Jn),{},{open:lo,prefixCls:hi,placement:At,autoFocus:_i,keyboard:En,width:Ln,mask:Rt,maskClosable:en,inline:Ti===!1,afterOpenChange:pi,ref:Rn},Cr);return It.createElement(Mt.Provider,{value:Ai},It.createElement(Jt.Z,{open:lo||Lr||Kn,autoDestroy:!1,getContainer:Ti,autoLock:Rt&&(lo||Kn)},It.createElement(Et,zr)))},Zt=$t,Yn=Zt},23425:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return Bt}});var Me=je(4635),yt=je(14809),Jt=je(93664),Qt=je(20439),It=je(50298),dt=je(92310),Mt=je.n(dt),an=je(18929),qt=je(10228),nt=je(26112),ln=je(48736),rn=je(59301),on=je(17119),et=[10,20,50,100],ue=function(xt){var Et=xt.pageSizeOptions,$t=Et===void 0?et:Et,Zt=xt.locale,Yn=xt.changeSize,gn=xt.pageSize,Jn=xt.goButton,ci=xt.quickGo,Xn=xt.rootPrefixCls,In=xt.disabled,hi=xt.buildOptionText,Ht=xt.showSizeChanger,At=xt.sizeChangerRender,Hn=rn.useState(""),_i=(0,It.Z)(Hn,2),dr=_i[0],En=_i[1],Mn=function(){return!dr||Number.isNaN(dr)?void 0:Number(dr)},Ln=typeof hi=="function"?hi:function(Ge){return"".concat(Ge," ").concat(Zt.items_per_page)},Mi=function(rt){En(rt.target.value)},Rt=function(rt){Jn||dr===""||(En(""),!(rt.relatedTarget&&(rt.relatedTarget.className.indexOf("".concat(Xn,"-item-link"))>=0||rt.relatedTarget.className.indexOf("".concat(Xn,"-item"))>=0))&&(ci==null||ci(Mn())))},ni=function(rt){dr!==""&&(rt.keyCode===qt.Z.ENTER||rt.type==="click")&&(En(""),ci==null||ci(Mn()))},en=function(){return $t.some(function(rt){return rt.toString()===gn.toString()})?$t:$t.concat([gn]).sort(function(rt,Ft){var qe=Number.isNaN(Number(rt))?0:Number(rt),mt=Number.isNaN(Number(Ft))?0:Number(Ft);return qe-mt})},Ti="".concat(Xn,"-options");if(!Ht&&!ci)return null;var Lr=null,Tt=null,Ze=null;return Ht&&At&&(Lr=At({disabled:In,size:gn,onSizeChange:function(rt){Yn==null||Yn(Number(rt))},"aria-label":Zt.page_size,className:"".concat(Ti,"-size-changer"),options:en().map(function(Ge){return{label:Ln(Ge),value:Ge}})})),ci&&(Jn&&(Ze=typeof Jn=="boolean"?rn.createElement("button",{type:"button",onClick:ni,onKeyUp:ni,disabled:In,className:"".concat(Ti,"-quick-jumper-button")},Zt.jump_to_confirm):rn.createElement("span",{onClick:ni,onKeyUp:ni},Jn)),Tt=rn.createElement("div",{className:"".concat(Ti,"-quick-jumper")},Zt.jump_to,rn.createElement("input",{disabled:In,type:"text",value:dr,onChange:Mi,onKeyUp:ni,onBlur:Rt,"aria-label":Zt.page}),Zt.page,Ze)),rn.createElement("li",{className:Ti},Lr,Tt)},ce=ue,Ce=function(xt){var Et=xt.rootPrefixCls,$t=xt.page,Zt=xt.active,Yn=xt.className,gn=xt.showTitle,Jn=xt.onClick,ci=xt.onKeyPress,Xn=xt.itemRender,In="".concat(Et,"-item"),hi=Mt()(In,"".concat(In,"-").concat($t),(0,Me.Z)((0,Me.Z)({},"".concat(In,"-active"),Zt),"".concat(In,"-disabled"),!$t),Yn),Ht=function(){Jn($t)},At=function(dr){ci(dr,Jn,$t)},Hn=Xn($t,"page",rn.createElement("a",{rel:"nofollow"},$t));return Hn?rn.createElement("li",{title:gn?String($t):null,className:hi,onClick:Ht,onKeyDown:At,tabIndex:0},Hn):null},Ae=Ce,Te=function(xt,Et,$t){return $t};function Ie(){}function ze(kt){var xt=Number(kt);return typeof xt=="number"&&!Number.isNaN(xt)&&isFinite(xt)&&Math.floor(xt)===xt}function Ye(kt,xt,Et){var $t=typeof kt=="undefined"?xt:kt;return Math.floor((Et-1)/$t)+1}var lt=function(xt){var Et=xt.prefixCls,$t=Et===void 0?"rc-pagination":Et,Zt=xt.selectPrefixCls,Yn=Zt===void 0?"rc-select":Zt,gn=xt.className,Jn=xt.current,ci=xt.defaultCurrent,Xn=ci===void 0?1:ci,In=xt.total,hi=In===void 0?0:In,Ht=xt.pageSize,At=xt.defaultPageSize,Hn=At===void 0?10:At,_i=xt.onChange,dr=_i===void 0?Ie:_i,En=xt.hideOnSinglePage,Mn=xt.align,Ln=xt.showPrevNextJumpers,Mi=Ln===void 0?!0:Ln,Rt=xt.showQuickJumper,ni=xt.showLessItems,en=xt.showTitle,Ti=en===void 0?!0:en,Lr=xt.onShowSizeChange,Tt=Lr===void 0?Ie:Lr,Ze=xt.locale,Ge=Ze===void 0?on.Z:Ze,rt=xt.style,Ft=xt.totalBoundaryShowSizeChanger,qe=Ft===void 0?50:Ft,mt=xt.disabled,An=xt.simple,Gn=xt.showTotal,fo=xt.showSizeChanger,qn=fo===void 0?hi>qe:fo,Kn=xt.sizeChangerRender,oi=xt.pageSizeOptions,Wi=xt.itemRender,Nr=Wi===void 0?Te:Wi,Uo=xt.jumpPrevIcon,Vr=xt.jumpNextIcon,lo=xt.prevIcon,Rn=xt.nextIcon,$n=rn.useRef(null),pi=(0,an.Z)(10,{value:Ht,defaultValue:Hn}),Ai=(0,It.Z)(pi,2),Cr=Ai[0],zr=Ai[1],ao=(0,an.Z)(1,{value:Jn,defaultValue:Xn,postState:function(dl){return Math.max(1,Math.min(dl,Ye(void 0,Cr,hi)))}}),Wr=(0,It.Z)(ao,2),Or=Wr[0],ir=Wr[1],ss=rn.useState(Or),Us=(0,It.Z)(ss,2),as=Us[0],ls=Us[1];(0,rn.useEffect)(function(){ls(Or)},[Or]);var La=dr!==Ie,Fs="current"in xt,ha=Math.max(1,Or-(ni?3:5)),Al=Math.min(Ye(void 0,Cr,hi),Or+(ni?3:5));function We($o,dl){var Pl=$o||rn.createElement("button",{type:"button","aria-label":dl,className:"".concat($t,"-item-link")});return typeof $o=="function"&&(Pl=rn.createElement($o,(0,Qt.Z)({},xt))),Pl}function ui($o){var dl=$o.target.value,Pl=Ye(void 0,Cr,hi),pc;return dl===""?pc=dl:Number.isNaN(Number(dl))?pc=as:dl>=Pl?pc=Pl:pc=Number(dl),pc}function Si($o){return ze($o)&&$o!==Or&&ze(hi)&&hi>0}var ms=hi>Cr?Rt:!1;function Po($o){($o.keyCode===qt.Z.UP||$o.keyCode===qt.Z.DOWN)&&$o.preventDefault()}function Xr($o){var dl=ui($o);switch(dl!==as&&ls(dl),$o.keyCode){case qt.Z.ENTER:or(dl);break;case qt.Z.UP:or(dl-1);break;case qt.Z.DOWN:or(dl+1);break;default:break}}function si($o){or(ui($o))}function Hi($o){var dl=Ye($o,Cr,hi),Pl=Or>dl&&dl!==0?dl:Or;zr($o),ls(Pl),Tt==null||Tt(Or,$o),ir(Pl),dr==null||dr(Pl,$o)}function or($o){if(Si($o)&&!mt){var dl=Ye(void 0,Cr,hi),Pl=$o;return $o>dl?Pl=dl:$o<1&&(Pl=1),Pl!==as&&ls(Pl),ir(Pl),dr==null||dr(Pl,Cr),Pl}return Or}var Fn=Or>1,vn=Or<Ye(void 0,Cr,hi);function pn(){Fn&&or(Or-1)}function Ur(){vn&&or(Or+1)}function Ho(){or(ha)}function bo(){or(Al)}function ji($o,dl){if($o.key==="Enter"||$o.charCode===qt.Z.ENTER||$o.keyCode===qt.Z.ENTER){for(var Pl=arguments.length,pc=new Array(Pl>2?Pl-2:0),pu=2;pu<Pl;pu++)pc[pu-2]=arguments[pu];dl.apply(void 0,pc)}}function co($o){ji($o,pn)}function Oa($o){ji($o,Ur)}function aa($o){ji($o,Ho)}function pa($o){ji($o,bo)}function hn($o){var dl=Nr($o,"prev",We(lo,"prev page"));return rn.isValidElement(dl)?rn.cloneElement(dl,{disabled:!Fn}):dl}function Ar($o){var dl=Nr($o,"next",We(Rn,"next page"));return rn.isValidElement(dl)?rn.cloneElement(dl,{disabled:!vn}):dl}function Xo($o){($o.type==="click"||$o.keyCode===qt.Z.ENTER)&&or(as)}var al=null,Ji=(0,nt.Z)(xt,{aria:!0,data:!0}),Fo=Gn&&rn.createElement("li",{className:"".concat($t,"-total-text")},Gn(hi,[hi===0?0:(Or-1)*Cr+1,Or*Cr>hi?hi:Or*Cr])),wa=null,xl=Ye(void 0,Cr,hi);if(En&&hi<=Cr)return null;var Ll=[],ys={rootPrefixCls:$t,onClick:or,onKeyPress:ji,showTitle:Ti,itemRender:Nr,page:-1},As=Or-1>0?Or-1:0,Jo=Or+1<xl?Or+1:xl,da=Rt&&Rt.goButton,us=(0,Jt.Z)(An)==="object"?An.readOnly:!An,Sa=da,zi=null;An&&(da&&(typeof da=="boolean"?Sa=rn.createElement("button",{type:"button",onClick:Xo,onKeyUp:Xo},Ge.jump_to_confirm):Sa=rn.createElement("span",{onClick:Xo,onKeyUp:Xo},da),Sa=rn.createElement("li",{title:Ti?"".concat(Ge.jump_to).concat(Or,"/").concat(xl):null,className:"".concat($t,"-simple-pager")},Sa)),zi=rn.createElement("li",{title:Ti?"".concat(Or,"/").concat(xl):null,className:"".concat($t,"-simple-pager")},us?as:rn.createElement("input",{type:"text","aria-label":Ge.jump_to,value:as,disabled:mt,onKeyDown:Po,onKeyUp:Xr,onChange:Xr,onBlur:si,size:3}),rn.createElement("span",{className:"".concat($t,"-slash")},"/"),xl));var fc=ni?1:2;if(xl<=3+fc*2){xl||Ll.push(rn.createElement(Ae,(0,yt.Z)({},ys,{key:"noPager",page:1,className:"".concat($t,"-item-disabled")})));for(var iu=1;iu<=xl;iu+=1)Ll.push(rn.createElement(Ae,(0,yt.Z)({},ys,{key:iu,page:iu,active:Or===iu})))}else{var Gu=ni?Ge.prev_3:Ge.prev_5,Ni=ni?Ge.next_3:Ge.next_5,Lo=Nr(ha,"jump-prev",We(Uo,"prev page")),zs=Nr(Al,"jump-next",We(Vr,"next page"));Mi&&(al=Lo?rn.createElement("li",{title:Ti?Gu:null,key:"prev",onClick:Ho,tabIndex:0,onKeyDown:aa,className:Mt()("".concat($t,"-jump-prev"),(0,Me.Z)({},"".concat($t,"-jump-prev-custom-icon"),!!Uo))},Lo):null,wa=zs?rn.createElement("li",{title:Ti?Ni:null,key:"next",onClick:bo,tabIndex:0,onKeyDown:pa,className:Mt()("".concat($t,"-jump-next"),(0,Me.Z)({},"".concat($t,"-jump-next-custom-icon"),!!Vr))},zs):null);var Fa=Math.max(1,Or-fc),Js=Math.min(Or+fc,xl);Or-1<=fc&&(Js=1+fc*2),xl-Or<=fc&&(Fa=xl-fc*2);for(var _s=Fa;_s<=Js;_s+=1)Ll.push(rn.createElement(Ae,(0,yt.Z)({},ys,{key:_s,page:_s,active:Or===_s})));if(Or-1>=fc*2&&Or!==3&&(Ll[0]=rn.cloneElement(Ll[0],{className:Mt()("".concat($t,"-item-after-jump-prev"),Ll[0].props.className)}),Ll.unshift(al)),xl-Or>=fc*2&&Or!==xl-2){var wl=Ll[Ll.length-1];Ll[Ll.length-1]=rn.cloneElement(wl,{className:Mt()("".concat($t,"-item-before-jump-next"),wl.props.className)}),Ll.push(wa)}Fa!==1&&Ll.unshift(rn.createElement(Ae,(0,yt.Z)({},ys,{key:1,page:1}))),Js!==xl&&Ll.push(rn.createElement(Ae,(0,yt.Z)({},ys,{key:xl,page:xl})))}var Sl=hn(As);if(Sl){var rl=!Fn||!xl;Sl=rn.createElement("li",{title:Ti?Ge.prev_page:null,onClick:pn,tabIndex:rl?null:0,onKeyDown:co,className:Mt()("".concat($t,"-prev"),(0,Me.Z)({},"".concat($t,"-disabled"),rl)),"aria-disabled":rl},Sl)}var Il=Ar(Jo);if(Il){var Zi,hl;An?(Zi=!vn,hl=Fn?0:null):(Zi=!vn||!xl,hl=Zi?null:0),Il=rn.createElement("li",{title:Ti?Ge.next_page:null,onClick:Ur,tabIndex:hl,onKeyDown:Oa,className:Mt()("".concat($t,"-next"),(0,Me.Z)({},"".concat($t,"-disabled"),Zi)),"aria-disabled":Zi},Il)}var Yi=Mt()($t,gn,(0,Me.Z)((0,Me.Z)((0,Me.Z)((0,Me.Z)((0,Me.Z)({},"".concat($t,"-start"),Mn==="start"),"".concat($t,"-center"),Mn==="center"),"".concat($t,"-end"),Mn==="end"),"".concat($t,"-simple"),An),"".concat($t,"-disabled"),mt));return rn.createElement("ul",(0,yt.Z)({className:Yi,style:rt,ref:$n},Ji),Fo,Sl,An?zi:Ll,Il,rn.createElement(ce,{locale:Ge,rootPrefixCls:$t,disabled:mt,selectPrefixCls:Yn,changeSize:Hi,pageSize:Cr,pageSizeOptions:oi,quickGo:ms?or:null,goButton:Sa,showSizeChanger:qn,sizeChangerRender:Kn}))},Bt=lt},48365:function(Cn,Ei,je){"use strict";var Me=je(61186),yt=je.n(Me),Jt=je(90111),Qt=je.n(Jt),It=je(58319),dt=je.n(It),Mt=je(23250),an=je.n(Mt),qt=je(74959),nt=je.n(qt),ln=je(10238),rn=je.n(ln),on=je(33656),et=je.n(on);yt().extend(et()),yt().extend(rn()),yt().extend(Qt()),yt().extend(dt()),yt().extend(an()),yt().extend(nt()),yt().extend(function(Te,Ie){var ze=Ie.prototype,Ye=ze.format;ze.format=function(Bt){var kt=(Bt||"").replace("Wo","wo");return Ye.bind(this)(kt)}});var ue={bn_BD:"bn-bd",by_BY:"be",en_GB:"en-gb",en_US:"en",fr_BE:"fr",fr_CA:"fr-ca",hy_AM:"hy-am",kmr_IQ:"ku",nl_BE:"nl-be",pt_BR:"pt-br",zh_CN:"zh-cn",zh_HK:"zh-hk",zh_TW:"zh-tw"},ce=function(Ie){var ze=ue[Ie];return ze||Ie.split("_")[0]},Ce=function(){},Ae={getNow:function(){var Ie=yt()();return typeof Ie.tz=="function"?Ie.tz():Ie},getFixedDate:function(Ie){return yt()(Ie,["YYYY-M-DD","YYYY-MM-DD"])},getEndDate:function(Ie){return Ie.endOf("month")},getWeekDay:function(Ie){var ze=Ie.locale("en");return ze.weekday()+ze.localeData().firstDayOfWeek()},getYear:function(Ie){return Ie.year()},getMonth:function(Ie){return Ie.month()},getDate:function(Ie){return Ie.date()},getHour:function(Ie){return Ie.hour()},getMinute:function(Ie){return Ie.minute()},getSecond:function(Ie){return Ie.second()},getMillisecond:function(Ie){return Ie.millisecond()},addYear:function(Ie,ze){return Ie.add(ze,"year")},addMonth:function(Ie,ze){return Ie.add(ze,"month")},addDate:function(Ie,ze){return Ie.add(ze,"day")},setYear:function(Ie,ze){return Ie.year(ze)},setMonth:function(Ie,ze){return Ie.month(ze)},setDate:function(Ie,ze){return Ie.date(ze)},setHour:function(Ie,ze){return Ie.hour(ze)},setMinute:function(Ie,ze){return Ie.minute(ze)},setSecond:function(Ie,ze){return Ie.second(ze)},setMillisecond:function(Ie,ze){return Ie.millisecond(ze)},isAfter:function(Ie,ze){return Ie.isAfter(ze)},isValidate:function(Ie){return Ie.isValid()},locale:{getWeekFirstDay:function(Ie){return yt()().locale(ce(Ie)).localeData().firstDayOfWeek()},getWeekFirstDate:function(Ie,ze){return ze.locale(ce(Ie)).weekday(0)},getWeek:function(Ie,ze){return ze.locale(ce(Ie)).week()},getShortWeekDays:function(Ie){return yt()().locale(ce(Ie)).localeData().weekdaysMin()},getShortMonths:function(Ie){return yt()().locale(ce(Ie)).localeData().monthsShort()},format:function(Ie,ze,Ye){return ze.locale(ce(Ie)).format(Ye)},parse:function(Ie,ze,Ye){for(var lt=ce(Ie),Bt=0;Bt<Ye.length;Bt+=1){var kt=Ye[Bt],xt=ze;if(kt.includes("wo")||kt.includes("Wo")){for(var Et=xt.split("-")[0],$t=xt.split("-")[1],Zt=yt()(Et,"YYYY").startOf("year").locale(lt),Yn=0;Yn<=52;Yn+=1){var gn=Zt.add(Yn,"week");if(gn.format("Wo")===$t)return gn}return Ce(),null}var Jn=yt()(xt,kt,!0).locale(lt);if(Jn.isValid())return Jn}return ze&&Ce(),null}}};Ei.Z=Ae},8571:function(Cn,Ei,je){"use strict";je.d(Ei,{Sq:function(){return fr},ZP:function(){return fs}});var Me=je(14809),yt=je(95190),Jt=je(20439),Qt=je(50298),It=je(70425),dt=je(34280),Mt=je(2738),an=je(26112),qt=je(48736),nt=je(59301),ln=je(4635),rn=je(65352),on=je(92310),et=je.n(on);function ue(tt,Xt){return tt!==void 0?tt:Xt?"bottomRight":"bottomLeft"}var ce=nt.createContext(null),Ce=ce,Ae={bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:0,adjustY:1}},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:0,adjustY:1}}};function Te(tt){var Xt=tt.popupElement,Dt=tt.popupStyle,Kt=tt.popupClassName,sn=tt.popupAlign,Vn=tt.transitionName,Qn=tt.getPopupContainer,zn=tt.children,Oi=tt.range,Qi=tt.placement,ri=tt.builtinPlacements,cr=ri===void 0?Ae:ri,$r=tt.direction,Yt=tt.visible,er=tt.onClose,sr=nt.useContext(Ce),Ki=sr.prefixCls,lr="".concat(Ki,"-dropdown"),vr=ue(Qi,$r==="rtl");return nt.createElement(rn.Z,{showAction:[],hideAction:["click"],popupPlacement:vr,builtinPlacements:cr,prefixCls:lr,popupTransitionName:Vn,popup:Xt,popupAlign:sn,popupVisible:Yt,popupClassName:et()(Kt,(0,ln.Z)((0,ln.Z)({},"".concat(lr,"-range"),Oi),"".concat(lr,"-rtl"),$r==="rtl")),popupStyle:Dt,stretch:"minWidth",getPopupContainer:Qn,onPopupVisibleChange:function(Mr){Mr||er()}},zn)}var Ie=Te;function ze(tt,Xt){for(var Dt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"0",Kt=String(tt);Kt.length<Xt;)Kt="".concat(Dt).concat(Kt);return Kt}function Ye(tt){return tt==null?[]:Array.isArray(tt)?tt:[tt]}function lt(tt,Xt,Dt){var Kt=(0,yt.Z)(tt);return Kt[Xt]=Dt,Kt}function Bt(tt,Xt){var Dt={},Kt=Xt||Object.keys(tt);return Kt.forEach(function(sn){tt[sn]!==void 0&&(Dt[sn]=tt[sn])}),Dt}function kt(tt,Xt,Dt){if(Dt)return Dt;switch(tt){case"time":return Xt.fieldTimeFormat;case"datetime":return Xt.fieldDateTimeFormat;case"month":return Xt.fieldMonthFormat;case"year":return Xt.fieldYearFormat;case"quarter":return Xt.fieldQuarterFormat;case"week":return Xt.fieldWeekFormat;default:return Xt.fieldDateFormat}}function xt(tt,Xt,Dt){var Kt=Dt!==void 0?Dt:Xt[Xt.length-1],sn=Xt.find(function(Vn){return tt[Vn]});return Kt!==sn?tt[sn]:void 0}function Et(tt){return Bt(tt,["placement","builtinPlacements","popupAlign","getPopupContainer","transitionName","direction"])}function $t(tt,Xt,Dt,Kt){var sn=nt.useMemo(function(){return tt||function(Qn,zn){var Oi=Qn;return Xt&&zn.type==="date"?Xt(Oi,zn.today):Dt&&zn.type==="month"?Dt(Oi,zn.locale):zn.originNode}},[tt,Dt,Xt]),Vn=nt.useCallback(function(Qn,zn){return sn(Qn,(0,Jt.Z)((0,Jt.Z)({},zn),{},{range:Kt}))},[sn,Kt]);return Vn}function Zt(tt,Xt){var Dt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],Kt=nt.useState([!1,!1]),sn=(0,Qt.Z)(Kt,2),Vn=sn[0],Qn=sn[1],zn=function(ri,cr){Qn(function($r){return lt($r,cr,ri)})},Oi=nt.useMemo(function(){return Vn.map(function(Qi,ri){if(Qi)return!0;var cr=tt[ri];return cr?!!(!Dt[ri]&&!cr||cr&&Xt(cr,{activeIndex:ri})):!1})},[tt,Vn,Xt,Dt]);return[Oi,zn]}function Yn(tt,Xt,Dt,Kt,sn){var Vn="",Qn=[];return tt&&Qn.push(sn?"hh":"HH"),Xt&&Qn.push("mm"),Dt&&Qn.push("ss"),Vn=Qn.join(":"),Kt&&(Vn+=".SSS"),sn&&(Vn+=" A"),Vn}function gn(tt,Xt,Dt,Kt,sn,Vn){var Qn=tt.fieldDateTimeFormat,zn=tt.fieldDateFormat,Oi=tt.fieldTimeFormat,Qi=tt.fieldMonthFormat,ri=tt.fieldYearFormat,cr=tt.fieldWeekFormat,$r=tt.fieldQuarterFormat,Yt=tt.yearFormat,er=tt.cellYearFormat,sr=tt.cellQuarterFormat,Ki=tt.dayFormat,lr=tt.cellDateFormat,vr=Yn(Xt,Dt,Kt,sn,Vn);return(0,Jt.Z)((0,Jt.Z)({},tt),{},{fieldDateTimeFormat:Qn||"YYYY-MM-DD ".concat(vr),fieldDateFormat:zn||"YYYY-MM-DD",fieldTimeFormat:Oi||vr,fieldMonthFormat:Qi||"YYYY-MM",fieldYearFormat:ri||"YYYY",fieldWeekFormat:cr||"gggg-wo",fieldQuarterFormat:$r||"YYYY-[Q]Q",yearFormat:Yt||"YYYY",cellYearFormat:er||"YYYY",cellQuarterFormat:sr||"[Q]Q",cellDateFormat:lr||Ki||"D"})}function Jn(tt,Xt){var Dt=Xt.showHour,Kt=Xt.showMinute,sn=Xt.showSecond,Vn=Xt.showMillisecond,Qn=Xt.use12Hours;return nt.useMemo(function(){return gn(tt,Dt,Kt,sn,Vn,Qn)},[tt,Dt,Kt,sn,Vn,Qn])}var ci=je(93664);function Xn(tt,Xt,Dt){return Dt!=null?Dt:Xt.some(function(Kt){return tt.includes(Kt)})}var In=["showNow","showHour","showMinute","showSecond","showMillisecond","use12Hours","hourStep","minuteStep","secondStep","millisecondStep","hideDisabledOptions","defaultValue","disabledHours","disabledMinutes","disabledSeconds","disabledMilliseconds","disabledTime","changeOnScroll","defaultOpenValue"];function hi(tt){var Xt=Bt(tt,In),Dt=tt.format,Kt=tt.picker,sn=null;return Dt&&(sn=Dt,Array.isArray(sn)&&(sn=sn[0]),sn=(0,ci.Z)(sn)==="object"?sn.format:sn),Kt==="time"&&(Xt.format=sn),[Xt,sn]}function Ht(tt){return tt&&typeof tt=="string"}function At(tt,Xt,Dt,Kt){return[tt,Xt,Dt,Kt].some(function(sn){return sn!==void 0})}function Hn(tt,Xt,Dt,Kt,sn){var Vn=Xt,Qn=Dt,zn=Kt;if(!tt&&!Vn&&!Qn&&!zn&&!sn)Vn=!0,Qn=!0,zn=!0;else if(tt){var Oi,Qi,ri,cr=[Vn,Qn,zn].some(function(er){return er===!1}),$r=[Vn,Qn,zn].some(function(er){return er===!0}),Yt=cr?!0:!$r;Vn=(Oi=Vn)!==null&&Oi!==void 0?Oi:Yt,Qn=(Qi=Qn)!==null&&Qi!==void 0?Qi:Yt,zn=(ri=zn)!==null&&ri!==void 0?ri:Yt}return[Vn,Qn,zn,sn]}function _i(tt){var Xt=tt.showTime,Dt=hi(tt),Kt=(0,Qt.Z)(Dt,2),sn=Kt[0],Vn=Kt[1],Qn=Xt&&(0,ci.Z)(Xt)==="object"?Xt:{},zn=(0,Jt.Z)((0,Jt.Z)({defaultOpenValue:Qn.defaultOpenValue||Qn.defaultValue},sn),Qn),Oi=zn.showMillisecond,Qi=zn.showHour,ri=zn.showMinute,cr=zn.showSecond,$r=At(Qi,ri,cr,Oi),Yt=Hn($r,Qi,ri,cr,Oi),er=(0,Qt.Z)(Yt,3);return Qi=er[0],ri=er[1],cr=er[2],[zn,(0,Jt.Z)((0,Jt.Z)({},zn),{},{showHour:Qi,showMinute:ri,showSecond:cr,showMillisecond:Oi}),zn.format,Vn]}function dr(tt,Xt,Dt,Kt,sn){var Vn=tt==="time";if(tt==="datetime"||Vn){for(var Qn=Kt,zn=kt(tt,sn,null),Oi=zn,Qi=[Xt,Dt],ri=0;ri<Qi.length;ri+=1){var cr=Ye(Qi[ri])[0];if(Ht(cr)){Oi=cr;break}}var $r=Qn.showHour,Yt=Qn.showMinute,er=Qn.showSecond,sr=Qn.showMillisecond,Ki=Qn.use12Hours,lr=Xn(Oi,["a","A","LT","LLL","LTS"],Ki),vr=At($r,Yt,er,sr);vr||($r=Xn(Oi,["H","h","k","LT","LLL"]),Yt=Xn(Oi,["m","LT","LLL"]),er=Xn(Oi,["s","LTS"]),sr=Xn(Oi,["SSS"]));var Qr=Hn(vr,$r,Yt,er,sr),Mr=(0,Qt.Z)(Qr,3);$r=Mr[0],Yt=Mr[1],er=Mr[2];var Hr=Xt||Yn($r,Yt,er,sr,lr);return(0,Jt.Z)((0,Jt.Z)({},Qn),{},{format:Hr,showHour:$r,showMinute:Yt,showSecond:er,showMillisecond:sr,use12Hours:lr})}return null}function En(tt,Xt,Dt){if(Xt===!1)return null;var Kt=Xt&&(0,ci.Z)(Xt)==="object"?Xt:{};return Kt.clearIcon||Dt||nt.createElement("span",{className:"".concat(tt,"-clear-btn")})}var Mn=7;function Ln(tt,Xt,Dt){return!tt&&!Xt||tt===Xt?!0:!tt||!Xt?!1:Dt()}function Mi(tt,Xt,Dt){return Ln(Xt,Dt,function(){var Kt=Math.floor(tt.getYear(Xt)/10),sn=Math.floor(tt.getYear(Dt)/10);return Kt===sn})}function Rt(tt,Xt,Dt){return Ln(Xt,Dt,function(){return tt.getYear(Xt)===tt.getYear(Dt)})}function ni(tt,Xt){var Dt=Math.floor(tt.getMonth(Xt)/3);return Dt+1}function en(tt,Xt,Dt){return Ln(Xt,Dt,function(){return Rt(tt,Xt,Dt)&&ni(tt,Xt)===ni(tt,Dt)})}function Ti(tt,Xt,Dt){return Ln(Xt,Dt,function(){return Rt(tt,Xt,Dt)&&tt.getMonth(Xt)===tt.getMonth(Dt)})}function Lr(tt,Xt,Dt){return Ln(Xt,Dt,function(){return Rt(tt,Xt,Dt)&&Ti(tt,Xt,Dt)&&tt.getDate(Xt)===tt.getDate(Dt)})}function Tt(tt,Xt,Dt){return Ln(Xt,Dt,function(){return tt.getHour(Xt)===tt.getHour(Dt)&&tt.getMinute(Xt)===tt.getMinute(Dt)&&tt.getSecond(Xt)===tt.getSecond(Dt)})}function Ze(tt,Xt,Dt){return Ln(Xt,Dt,function(){return Lr(tt,Xt,Dt)&&Tt(tt,Xt,Dt)&&tt.getMillisecond(Xt)===tt.getMillisecond(Dt)})}function Ge(tt,Xt,Dt,Kt){return Ln(Dt,Kt,function(){var sn=tt.locale.getWeekFirstDate(Xt,Dt),Vn=tt.locale.getWeekFirstDate(Xt,Kt);return Rt(tt,sn,Vn)&&tt.locale.getWeek(Xt,Dt)===tt.locale.getWeek(Xt,Kt)})}function rt(tt,Xt,Dt,Kt,sn){switch(sn){case"date":return Lr(tt,Dt,Kt);case"week":return Ge(tt,Xt.locale,Dt,Kt);case"month":return Ti(tt,Dt,Kt);case"quarter":return en(tt,Dt,Kt);case"year":return Rt(tt,Dt,Kt);case"decade":return Mi(tt,Dt,Kt);case"time":return Tt(tt,Dt,Kt);default:return Ze(tt,Dt,Kt)}}function Ft(tt,Xt,Dt,Kt){return!Xt||!Dt||!Kt?!1:tt.isAfter(Kt,Xt)&&tt.isAfter(Dt,Kt)}function qe(tt,Xt,Dt,Kt,sn){return rt(tt,Xt,Dt,Kt,sn)?!0:tt.isAfter(Dt,Kt)}function mt(tt,Xt,Dt){var Kt=Xt.locale.getWeekFirstDay(tt),sn=Xt.setDate(Dt,1),Vn=Xt.getWeekDay(sn),Qn=Xt.addDate(sn,Kt-Vn);return Xt.getMonth(Qn)===Xt.getMonth(Dt)&&Xt.getDate(Qn)>1&&(Qn=Xt.addDate(Qn,-7)),Qn}function An(tt,Xt){var Dt=Xt.generateConfig,Kt=Xt.locale,sn=Xt.format;return tt?typeof sn=="function"?sn(tt):Dt.locale.format(Kt.locale,tt,sn):""}function Gn(tt,Xt,Dt){var Kt=Xt,sn=["getHour","getMinute","getSecond","getMillisecond"],Vn=["setHour","setMinute","setSecond","setMillisecond"];return Vn.forEach(function(Qn,zn){Dt?Kt=tt[Qn](Kt,tt[sn[zn]](Dt)):Kt=tt[Qn](Kt,0)}),Kt}function fo(tt,Xt,Dt,Kt,sn){var Vn=(0,It.zX)(function(Qn,zn){return!!(Dt&&Dt(Qn,zn)||Kt&&tt.isAfter(Kt,Qn)&&!rt(tt,Xt,Kt,Qn,zn.type)||sn&&tt.isAfter(Qn,sn)&&!rt(tt,Xt,sn,Qn,zn.type))});return Vn}function qn(tt,Xt,Dt){return nt.useMemo(function(){var Kt=kt(tt,Xt,Dt),sn=Ye(Kt),Vn=sn[0],Qn=(0,ci.Z)(Vn)==="object"&&Vn.type==="mask"?Vn.format:null;return[sn.map(function(zn){return typeof zn=="string"||typeof zn=="function"?zn:zn.format}),Qn]},[tt,Xt,Dt])}function Kn(tt,Xt,Dt){return typeof tt[0]=="function"||Dt?!0:Xt}function oi(tt,Xt,Dt,Kt){var sn=(0,It.zX)(function(Vn,Qn){var zn=(0,Jt.Z)({type:Xt},Qn);if(delete zn.activeIndex,!tt.isValidate(Vn)||Dt&&Dt(Vn,zn))return!0;if((Xt==="date"||Xt==="time")&&Kt){var Oi,Qi=Qn&&Qn.activeIndex===1?"end":"start",ri=((Oi=Kt.disabledTime)===null||Oi===void 0?void 0:Oi.call(Kt,Vn,Qi,{from:zn.from}))||{},cr=ri.disabledHours,$r=ri.disabledMinutes,Yt=ri.disabledSeconds,er=ri.disabledMilliseconds,sr=Kt.disabledHours,Ki=Kt.disabledMinutes,lr=Kt.disabledSeconds,vr=cr||sr,Qr=$r||Ki,Mr=Yt||lr,Hr=tt.getHour(Vn),Zr=tt.getMinute(Vn),mi=tt.getSecond(Vn),cs=tt.getMillisecond(Vn);if(vr&&vr().includes(Hr)||Qr&&Qr(Hr).includes(Zr)||Mr&&Mr(Hr,Zr).includes(mi)||er&&er(Hr,Zr,mi).includes(cs))return!0}return!1});return sn}function Wi(tt){var Xt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,Dt=nt.useMemo(function(){var Kt=tt&&Ye(tt);return Xt&&Kt&&(Kt[1]=Kt[1]||Kt[0]),Kt},[tt,Xt]);return Dt}function Nr(tt,Xt){var Dt=tt.generateConfig,Kt=tt.locale,sn=tt.picker,Vn=sn===void 0?"date":sn,Qn=tt.prefixCls,zn=Qn===void 0?"rc-picker":Qn,Oi=tt.styles,Qi=Oi===void 0?{}:Oi,ri=tt.classNames,cr=ri===void 0?{}:ri,$r=tt.order,Yt=$r===void 0?!0:$r,er=tt.components,sr=er===void 0?{}:er,Ki=tt.inputRender,lr=tt.allowClear,vr=tt.clearIcon,Qr=tt.needConfirm,Mr=tt.multiple,Hr=tt.format,Zr=tt.inputReadOnly,mi=tt.disabledDate,cs=tt.minDate,Hs=tt.maxDate,js=tt.showTime,yr=tt.value,yo=tt.defaultValue,es=tt.pickerValue,Ts=tt.defaultPickerValue,Zs=Wi(yr),Ls=Wi(yo),Ii=Wi(es),Cs=Wi(Ts),Is=Vn==="date"&&js?"datetime":Vn,Pa=Is==="time"||Is==="datetime",Gs=Pa||Mr,qo=Qr!=null?Qr:Pa,eo=_i(tt),bs=(0,Qt.Z)(eo,4),Ta=bs[0],Ms=bs[1],ws=bs[2],Ra=bs[3],Aa=Jn(Kt,Ms),ga=nt.useMemo(function(){return dr(Is,ws,Ra,Ta,Aa)},[Is,ws,Ra,Ta,Aa]),ol=nt.useMemo(function(){return(0,Jt.Z)((0,Jt.Z)({},tt),{},{prefixCls:zn,locale:Aa,picker:Vn,styles:Qi,classNames:cr,order:Yt,components:(0,Jt.Z)({input:Ki},sr),clearIcon:En(zn,lr,vr),showTime:ga,value:Zs,defaultValue:Ls,pickerValue:Ii,defaultPickerValue:Cs},Xt==null?void 0:Xt())},[tt]),fl=qn(Is,Aa,Hr),gu=(0,Qt.Z)(fl,2),Ys=gu[0],Cu=gu[1],Wo=Kn(Ys,Zr,Mr),Zu=fo(Dt,Kt,mi,cs,Hs),Ml=oi(Dt,Vn,Zu,ga),au=nt.useMemo(function(){return(0,Jt.Z)((0,Jt.Z)({},ol),{},{needConfirm:qo,inputReadOnly:Wo,disabledDate:Zu})},[ol,qo,Wo,Zu]);return[au,Is,Gs,Ys,Cu,Ml]}var Uo=je(16089);function Vr(tt,Xt,Dt){var Kt=(0,It.C8)(Xt,{value:tt}),sn=(0,Qt.Z)(Kt,2),Vn=sn[0],Qn=sn[1],zn=nt.useRef(tt),Oi=nt.useRef(),Qi=function(){Uo.Z.cancel(Oi.current)},ri=(0,It.zX)(function(){Qn(zn.current),Dt&&Vn!==zn.current&&Dt(zn.current)}),cr=(0,It.zX)(function($r,Yt){Qi(),zn.current=$r,$r||Yt?ri():Oi.current=(0,Uo.Z)(ri)});return nt.useEffect(function(){return Qi},[]),[Vn,cr]}function lo(tt,Xt){var Dt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],Kt=arguments.length>3?arguments[3]:void 0,sn=Dt.every(function(ri){return ri})?!1:tt,Vn=Vr(sn,Xt||!1,Kt),Qn=(0,Qt.Z)(Vn,2),zn=Qn[0],Oi=Qn[1];function Qi(ri){var cr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};(!cr.inherit||zn)&&Oi(ri,cr.force)}return[zn,Qi]}function Rn(tt){var Xt=nt.useRef();return nt.useImperativeHandle(tt,function(){var Dt;return{nativeElement:(Dt=Xt.current)===null||Dt===void 0?void 0:Dt.nativeElement,focus:function(sn){var Vn;(Vn=Xt.current)===null||Vn===void 0||Vn.focus(sn)},blur:function(){var sn;(sn=Xt.current)===null||sn===void 0||sn.blur()}}}),Xt}function $n(tt,Xt){return nt.useMemo(function(){return tt||(Xt?((0,qt.ZP)(!1,"`ranges` is deprecated. Please use `presets` instead."),Object.entries(Xt).map(function(Dt){var Kt=(0,Qt.Z)(Dt,2),sn=Kt[0],Vn=Kt[1];return{label:sn,value:Vn}})):[])},[tt,Xt])}function pi(tt,Xt){var Dt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,Kt=nt.useRef(Xt);Kt.current=Xt,(0,dt.o)(function(){if(tt)Kt.current(tt);else{var sn=(0,Uo.Z)(function(){Kt.current(tt)},Dt);return function(){Uo.Z.cancel(sn)}}},[tt])}function Ai(tt){var Xt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],Dt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,Kt=nt.useState(0),sn=(0,Qt.Z)(Kt,2),Vn=sn[0],Qn=sn[1],zn=nt.useState(!1),Oi=(0,Qt.Z)(zn,2),Qi=Oi[0],ri=Oi[1],cr=nt.useRef([]),$r=nt.useRef(null),Yt=nt.useRef(null),er=function(Mr){$r.current=Mr},sr=function(Mr){return $r.current===Mr},Ki=function(Mr){ri(Mr)},lr=function(Mr){return Mr&&(Yt.current=Mr),Yt.current},vr=function(Mr){var Hr=cr.current,Zr=new Set(Hr.filter(function(cs){return Mr[cs]||Xt[cs]})),mi=Hr[Hr.length-1]===0?1:0;return Zr.size>=2||tt[mi]?null:mi};return pi(Qi||Dt,function(){Qi||(cr.current=[],er(null))}),nt.useEffect(function(){Qi&&cr.current.push(Vn)},[Qi,Vn]),[Qi,Ki,lr,Vn,Qn,vr,cr.current,er,sr]}function Cr(tt,Xt,Dt,Kt,sn,Vn){var Qn=Dt[Dt.length-1],zn=function(Qi,ri){var cr=(0,Qt.Z)(tt,2),$r=cr[0],Yt=cr[1],er=(0,Jt.Z)((0,Jt.Z)({},ri),{},{from:xt(tt,Dt)});return Qn===1&&Xt[0]&&$r&&!rt(Kt,sn,$r,Qi,er.type)&&Kt.isAfter($r,Qi)||Qn===0&&Xt[1]&&Yt&&!rt(Kt,sn,Yt,Qi,er.type)&&Kt.isAfter(Qi,Yt)?!0:Vn==null?void 0:Vn(Qi,er)};return zn}function zr(tt,Xt,Dt,Kt){switch(Xt){case"date":case"week":return tt.addMonth(Dt,Kt);case"month":case"quarter":return tt.addYear(Dt,Kt);case"year":return tt.addYear(Dt,Kt*10);case"decade":return tt.addYear(Dt,Kt*100);default:return Dt}}var ao=[];function Wr(tt,Xt,Dt,Kt,sn,Vn,Qn,zn){var Oi=arguments.length>8&&arguments[8]!==void 0?arguments[8]:ao,Qi=arguments.length>9&&arguments[9]!==void 0?arguments[9]:ao,ri=arguments.length>10&&arguments[10]!==void 0?arguments[10]:ao,cr=arguments.length>11?arguments[11]:void 0,$r=arguments.length>12?arguments[12]:void 0,Yt=arguments.length>13?arguments[13]:void 0,er=Qn==="time",sr=Vn||0,Ki=function(Ii){var Cs=tt.getNow();return er&&(Cs=Gn(tt,Cs)),Oi[Ii]||Dt[Ii]||Cs},lr=(0,Qt.Z)(Qi,2),vr=lr[0],Qr=lr[1],Mr=(0,It.C8)(function(){return Ki(0)},{value:vr}),Hr=(0,Qt.Z)(Mr,2),Zr=Hr[0],mi=Hr[1],cs=(0,It.C8)(function(){return Ki(1)},{value:Qr}),Hs=(0,Qt.Z)(cs,2),js=Hs[0],yr=Hs[1],yo=nt.useMemo(function(){var Ls=[Zr,js][sr];return er?Ls:Gn(tt,Ls,ri[sr])},[er,Zr,js,sr,tt,ri]),es=function(Ii){var Cs=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"panel",Is=[mi,yr][sr];Is(Ii);var Pa=[Zr,js];Pa[sr]=Ii,cr&&(!rt(tt,Xt,Zr,Pa[0],Qn)||!rt(tt,Xt,js,Pa[1],Qn))&&cr(Pa,{source:Cs,range:sr===1?"end":"start",mode:Kt})},Ts=function(Ii,Cs){if(zn){var Is={date:"month",week:"month",month:"year",quarter:"year"},Pa=Is[Qn];if(Pa&&!rt(tt,Xt,Ii,Cs,Pa))return zr(tt,Qn,Cs,-1);if(Qn==="year"&&Ii){var Gs=Math.floor(tt.getYear(Ii)/10),qo=Math.floor(tt.getYear(Cs)/10);if(Gs!==qo)return zr(tt,Qn,Cs,-1)}}return Cs},Zs=nt.useRef(null);return(0,dt.Z)(function(){if(sn&&!Oi[sr]){var Ls=er?null:tt.getNow();if(Zs.current!==null&&Zs.current!==sr?Ls=[Zr,js][sr^1]:Dt[sr]?Ls=sr===0?Dt[0]:Ts(Dt[0],Dt[1]):Dt[sr^1]&&(Ls=Dt[sr^1]),Ls){$r&&tt.isAfter($r,Ls)&&(Ls=$r);var Ii=zn?zr(tt,Qn,Ls,1):Ls;Yt&&tt.isAfter(Ii,Yt)&&(Ls=zn?zr(tt,Qn,Yt,-1):Yt),es(Ls,"reset")}}},[sn,sr,Dt[sr]]),nt.useEffect(function(){sn?Zs.current=sr:Zs.current=null},[sn,sr]),(0,dt.Z)(function(){sn&&Oi&&Oi[sr]&&es(Oi[sr],"reset")},[sn,sr]),[yo,es]}function Or(tt,Xt){var Dt=nt.useRef(tt),Kt=nt.useState({}),sn=(0,Qt.Z)(Kt,2),Vn=sn[1],Qn=function(Qi){return Qi&&Xt!==void 0?Xt:Dt.current},zn=function(Qi){Dt.current=Qi,Vn({})};return[Qn,zn,Qn(!0)]}var ir=[];function ss(tt,Xt,Dt){var Kt=function(Qn){return Qn.map(function(zn){return An(zn,{generateConfig:tt,locale:Xt,format:Dt[0]})})},sn=function(Qn,zn){for(var Oi=Math.max(Qn.length,zn.length),Qi=-1,ri=0;ri<Oi;ri+=1){var cr=Qn[ri]||null,$r=zn[ri]||null;if(cr!==$r&&!Ze(tt,cr,$r)){Qi=ri;break}}return[Qi<0,Qi!==0]};return[Kt,sn]}function Us(tt,Xt){return(0,yt.Z)(tt).sort(function(Dt,Kt){return Xt.isAfter(Dt,Kt)?1:-1})}function as(tt){var Xt=Or(tt),Dt=(0,Qt.Z)(Xt,2),Kt=Dt[0],sn=Dt[1],Vn=(0,It.zX)(function(){sn(tt)});return nt.useEffect(function(){Vn()},[tt]),[Kt,sn]}function ls(tt,Xt,Dt,Kt,sn,Vn,Qn,zn,Oi){var Qi=(0,It.C8)(Vn,{value:Qn}),ri=(0,Qt.Z)(Qi,2),cr=ri[0],$r=ri[1],Yt=cr||ir,er=as(Yt),sr=(0,Qt.Z)(er,2),Ki=sr[0],lr=sr[1],vr=ss(tt,Xt,Dt),Qr=(0,Qt.Z)(vr,2),Mr=Qr[0],Hr=Qr[1],Zr=(0,It.zX)(function(cs){var Hs=(0,yt.Z)(cs);if(Kt)for(var js=0;js<2;js+=1)Hs[js]=Hs[js]||null;else sn&&(Hs=Us(Hs.filter(function(Ls){return Ls}),tt));var yr=Hr(Ki(),Hs),yo=(0,Qt.Z)(yr,2),es=yo[0],Ts=yo[1];if(!es&&(lr(Hs),zn)){var Zs=Mr(Hs);zn(Hs,Zs,{range:Ts?"end":"start"})}}),mi=function(){Oi&&Oi(Ki())};return[Yt,$r,Ki,Zr,mi]}function La(tt,Xt,Dt,Kt,sn,Vn,Qn,zn,Oi,Qi){var ri=tt.generateConfig,cr=tt.locale,$r=tt.picker,Yt=tt.onChange,er=tt.allowEmpty,sr=tt.order,Ki=Vn.some(function(es){return es})?!1:sr,lr=ss(ri,cr,Qn),vr=(0,Qt.Z)(lr,2),Qr=vr[0],Mr=vr[1],Hr=Or(Xt),Zr=(0,Qt.Z)(Hr,2),mi=Zr[0],cs=Zr[1],Hs=(0,It.zX)(function(){cs(Xt)});nt.useEffect(function(){Hs()},[Xt]);var js=(0,It.zX)(function(es){var Ts=es===null,Zs=(0,yt.Z)(es||mi());if(Ts)for(var Ls=Math.max(Vn.length,Zs.length),Ii=0;Ii<Ls;Ii+=1)Vn[Ii]||(Zs[Ii]=null);Ki&&Zs[0]&&Zs[1]&&(Zs=Us(Zs,ri)),sn(Zs);var Cs=Zs,Is=(0,Qt.Z)(Cs,2),Pa=Is[0],Gs=Is[1],qo=!Pa,eo=!Gs,bs=er?(!qo||er[0])&&(!eo||er[1]):!0,Ta=!sr||qo||eo||rt(ri,cr,Pa,Gs,$r)||ri.isAfter(Gs,Pa),Ms=(Vn[0]||!Pa||!Qi(Pa,{activeIndex:0}))&&(Vn[1]||!Gs||!Qi(Gs,{from:Pa,activeIndex:1})),ws=Ts||bs&&Ta&&Ms;if(ws){Dt(Zs);var Ra=Mr(Zs,Xt),Aa=(0,Qt.Z)(Ra,1),ga=Aa[0];Yt&&!ga&&Yt(Ts&&Zs.every(function(ol){return!ol})?null:Zs,Qr(Zs))}return ws}),yr=(0,It.zX)(function(es,Ts){var Zs=lt(mi(),es,Kt()[es]);cs(Zs),Ts&&js()}),yo=!zn&&!Oi;return pi(!yo,function(){yo&&(js(),sn(Xt),Hs())},2),[yr,js]}function Fs(tt,Xt,Dt,Kt,sn){return Xt!=="date"&&Xt!=="time"?!1:Dt!==void 0?Dt:Kt!==void 0?Kt:!sn&&(tt==="date"||tt==="time")}var ha=je(29301);function Al(tt,Xt,Dt,Kt,sn,Vn){var Qn=tt;function zn(cr,$r,Yt){var er=Vn[cr](Qn),sr=Yt.find(function(Qr){return Qr.value===er});if(!sr||sr.disabled){var Ki=Yt.filter(function(Qr){return!Qr.disabled}),lr=(0,yt.Z)(Ki).reverse(),vr=lr.find(function(Qr){return Qr.value<=er})||Ki[0];vr&&(er=vr.value,Qn=Vn[$r](Qn,er))}return er}var Oi=zn("getHour","setHour",Xt()),Qi=zn("getMinute","setMinute",Dt(Oi)),ri=zn("getSecond","setSecond",Kt(Oi,Qi));return zn("getMillisecond","setMillisecond",sn(Oi,Qi,ri)),Qn}function We(){return[]}function ui(tt,Xt){for(var Dt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,Kt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,sn=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[],Vn=arguments.length>5&&arguments[5]!==void 0?arguments[5]:2,Qn=[],zn=Dt>=1?Dt|0:1,Oi=tt;Oi<=Xt;Oi+=zn){var Qi=sn.includes(Oi);(!Qi||!Kt)&&Qn.push({label:ze(Oi,Vn),value:Oi,disabled:Qi})}return Qn}function Si(tt){var Xt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Dt=arguments.length>2?arguments[2]:void 0,Kt=Xt||{},sn=Kt.use12Hours,Vn=Kt.hourStep,Qn=Vn===void 0?1:Vn,zn=Kt.minuteStep,Oi=zn===void 0?1:zn,Qi=Kt.secondStep,ri=Qi===void 0?1:Qi,cr=Kt.millisecondStep,$r=cr===void 0?100:cr,Yt=Kt.hideDisabledOptions,er=Kt.disabledTime,sr=Kt.disabledHours,Ki=Kt.disabledMinutes,lr=Kt.disabledSeconds,vr=nt.useMemo(function(){return Dt||tt.getNow()},[Dt,tt]);if(0)var Qr,Mr,Hr;var Zr=nt.useCallback(function(Gs){var qo=(er==null?void 0:er(Gs))||{};return[qo.disabledHours||sr||We,qo.disabledMinutes||Ki||We,qo.disabledSeconds||lr||We,qo.disabledMilliseconds||We]},[er,sr,Ki,lr]),mi=nt.useMemo(function(){return Zr(vr)},[vr,Zr]),cs=(0,Qt.Z)(mi,4),Hs=cs[0],js=cs[1],yr=cs[2],yo=cs[3],es=nt.useCallback(function(Gs,qo,eo,bs){var Ta=ui(0,23,Qn,Yt,Gs()),Ms=sn?Ta.map(function(ga){return(0,Jt.Z)((0,Jt.Z)({},ga),{},{label:ze(ga.value%12||12,2)})}):Ta,ws=function(ol){return ui(0,59,Oi,Yt,qo(ol))},Ra=function(ol,fl){return ui(0,59,ri,Yt,eo(ol,fl))},Aa=function(ol,fl,gu){return ui(0,999,$r,Yt,bs(ol,fl,gu),3)};return[Ms,ws,Ra,Aa]},[Yt,Qn,sn,$r,Oi,ri]),Ts=nt.useMemo(function(){return es(Hs,js,yr,yo)},[es,Hs,js,yr,yo]),Zs=(0,Qt.Z)(Ts,4),Ls=Zs[0],Ii=Zs[1],Cs=Zs[2],Is=Zs[3],Pa=function(qo,eo){var bs=function(){return Ls},Ta=Ii,Ms=Cs,ws=Is;if(eo){var Ra=Zr(eo),Aa=(0,Qt.Z)(Ra,4),ga=Aa[0],ol=Aa[1],fl=Aa[2],gu=Aa[3],Ys=es(ga,ol,fl,gu),Cu=(0,Qt.Z)(Ys,4),Wo=Cu[0],Zu=Cu[1],Ml=Cu[2],au=Cu[3];bs=function(){return Wo},Ta=Zu,Ms=Ml,ws=au}var Cl=Al(qo,bs,Ta,Ms,ws,tt);return Cl};return[Pa,Ls,Ii,Cs,Is]}function ms(tt){var Xt=tt.mode,Dt=tt.internalMode,Kt=tt.renderExtraFooter,sn=tt.showNow,Vn=tt.showTime,Qn=tt.onSubmit,zn=tt.onNow,Oi=tt.invalid,Qi=tt.needConfirm,ri=tt.generateConfig,cr=tt.disabledDate,$r=nt.useContext(Ce),Yt=$r.prefixCls,er=$r.locale,sr=$r.button,Ki=sr===void 0?"button":sr,lr=ri.getNow(),vr=Si(ri,Vn,lr),Qr=(0,Qt.Z)(vr,1),Mr=Qr[0],Hr=Kt==null?void 0:Kt(Xt),Zr=cr(lr,{type:Xt}),mi=function(){if(!Zr){var Ts=Mr(lr);zn(Ts)}},cs="".concat(Yt,"-now"),Hs="".concat(cs,"-btn"),js=sn&&nt.createElement("li",{className:cs},nt.createElement("a",{className:et()(Hs,Zr&&"".concat(Hs,"-disabled")),"aria-disabled":Zr,onClick:mi},Dt==="date"?er.today:er.now)),yr=Qi&&nt.createElement("li",{className:"".concat(Yt,"-ok")},nt.createElement(Ki,{disabled:Oi,onClick:Qn},er.ok)),yo=(js||yr)&&nt.createElement("ul",{className:"".concat(Yt,"-ranges")},js,yr);return!Hr&&!yo?null:nt.createElement("div",{className:"".concat(Yt,"-footer")},Hr&&nt.createElement("div",{className:"".concat(Yt,"-footer-extra")},Hr),yo)}function Po(tt,Xt,Dt){function Kt(sn,Vn){var Qn=sn.findIndex(function(Oi){return rt(tt,Xt,Oi,Vn,Dt)});if(Qn===-1)return[].concat((0,yt.Z)(sn),[Vn]);var zn=(0,yt.Z)(sn);return zn.splice(Qn,1),zn}return Kt}var Xr=nt.createContext(null);function si(){return nt.useContext(Xr)}function Hi(tt,Xt){var Dt=tt.prefixCls,Kt=tt.generateConfig,sn=tt.locale,Vn=tt.disabledDate,Qn=tt.minDate,zn=tt.maxDate,Oi=tt.cellRender,Qi=tt.hoverValue,ri=tt.hoverRangeValue,cr=tt.onHover,$r=tt.values,Yt=tt.pickerValue,er=tt.onSelect,sr=tt.prevIcon,Ki=tt.nextIcon,lr=tt.superPrevIcon,vr=tt.superNextIcon,Qr=Kt.getNow(),Mr={now:Qr,values:$r,pickerValue:Yt,prefixCls:Dt,disabledDate:Vn,minDate:Qn,maxDate:zn,cellRender:Oi,hoverValue:Qi,hoverRangeValue:ri,onHover:cr,locale:sn,generateConfig:Kt,onSelect:er,panelType:Xt,prevIcon:sr,nextIcon:Ki,superPrevIcon:lr,superNextIcon:vr};return[Mr,Qr]}var or=nt.createContext({});function Fn(tt){for(var Xt=tt.rowNum,Dt=tt.colNum,Kt=tt.baseDate,sn=tt.getCellDate,Vn=tt.prefixColumn,Qn=tt.rowClassName,zn=tt.titleFormat,Oi=tt.getCellText,Qi=tt.getCellClassName,ri=tt.headerCells,cr=tt.cellSelection,$r=cr===void 0?!0:cr,Yt=tt.disabledDate,er=si(),sr=er.prefixCls,Ki=er.panelType,lr=er.now,vr=er.disabledDate,Qr=er.cellRender,Mr=er.onHover,Hr=er.hoverValue,Zr=er.hoverRangeValue,mi=er.generateConfig,cs=er.values,Hs=er.locale,js=er.onSelect,yr=Yt||vr,yo="".concat(sr,"-cell"),es=nt.useContext(or),Ts=es.onCellDblClick,Zs=function(eo){return cs.some(function(bs){return bs&&rt(mi,Hs,eo,bs,Ki)})},Ls=[],Ii=0;Ii<Xt;Ii+=1){for(var Cs=[],Is=void 0,Pa=function(){var eo=Ii*Dt+Gs,bs=sn(Kt,eo),Ta=yr==null?void 0:yr(bs,{type:Ki});Gs===0&&(Is=bs,Vn&&Cs.push(Vn(Is)));var Ms=!1,ws=!1,Ra=!1;if($r&&Zr){var Aa=(0,Qt.Z)(Zr,2),ga=Aa[0],ol=Aa[1];Ms=Ft(mi,ga,ol,bs),ws=rt(mi,Hs,bs,ga,Ki),Ra=rt(mi,Hs,bs,ol,Ki)}var fl=zn?An(bs,{locale:Hs,format:zn,generateConfig:mi}):void 0,gu=nt.createElement("div",{className:"".concat(yo,"-inner")},Oi(bs));Cs.push(nt.createElement("td",{key:Gs,title:fl,className:et()(yo,(0,Jt.Z)((0,ln.Z)((0,ln.Z)((0,ln.Z)((0,ln.Z)((0,ln.Z)((0,ln.Z)({},"".concat(yo,"-disabled"),Ta),"".concat(yo,"-hover"),(Hr||[]).some(function(Ys){return rt(mi,Hs,bs,Ys,Ki)})),"".concat(yo,"-in-range"),Ms&&!ws&&!Ra),"".concat(yo,"-range-start"),ws),"".concat(yo,"-range-end"),Ra),"".concat(sr,"-cell-selected"),!Zr&&Ki!=="week"&&Zs(bs)),Qi(bs))),onClick:function(){Ta||js(bs)},onDoubleClick:function(){!Ta&&Ts&&Ts()},onMouseEnter:function(){Ta||Mr==null||Mr(bs)},onMouseLeave:function(){Ta||Mr==null||Mr(null)}},Qr?Qr(bs,{prefixCls:sr,originNode:gu,today:lr,type:Ki,locale:Hs}):gu))},Gs=0;Gs<Dt;Gs+=1)Pa();Ls.push(nt.createElement("tr",{key:Ii,className:Qn==null?void 0:Qn(Is)},Cs))}return nt.createElement("div",{className:"".concat(sr,"-body")},nt.createElement("table",{className:"".concat(sr,"-content")},ri&&nt.createElement("thead",null,nt.createElement("tr",null,ri)),nt.createElement("tbody",null,Ls)))}var vn={visibility:"hidden"};function pn(tt){var Xt=tt.offset,Dt=tt.superOffset,Kt=tt.onChange,sn=tt.getStart,Vn=tt.getEnd,Qn=tt.children,zn=si(),Oi=zn.prefixCls,Qi=zn.prevIcon,ri=Qi===void 0?"\u2039":Qi,cr=zn.nextIcon,$r=cr===void 0?"\u203A":cr,Yt=zn.superPrevIcon,er=Yt===void 0?"\xAB":Yt,sr=zn.superNextIcon,Ki=sr===void 0?"\xBB":sr,lr=zn.minDate,vr=zn.maxDate,Qr=zn.generateConfig,Mr=zn.locale,Hr=zn.pickerValue,Zr=zn.panelType,mi="".concat(Oi,"-header"),cs=nt.useContext(or),Hs=cs.hidePrev,js=cs.hideNext,yr=cs.hideHeader,yo=nt.useMemo(function(){if(!lr||!Xt||!Vn)return!1;var qo=Vn(Xt(-1,Hr));return!qe(Qr,Mr,qo,lr,Zr)},[lr,Xt,Hr,Vn,Qr,Mr,Zr]),es=nt.useMemo(function(){if(!lr||!Dt||!Vn)return!1;var qo=Vn(Dt(-1,Hr));return!qe(Qr,Mr,qo,lr,Zr)},[lr,Dt,Hr,Vn,Qr,Mr,Zr]),Ts=nt.useMemo(function(){if(!vr||!Xt||!sn)return!1;var qo=sn(Xt(1,Hr));return!qe(Qr,Mr,vr,qo,Zr)},[vr,Xt,Hr,sn,Qr,Mr,Zr]),Zs=nt.useMemo(function(){if(!vr||!Dt||!sn)return!1;var qo=sn(Dt(1,Hr));return!qe(Qr,Mr,vr,qo,Zr)},[vr,Dt,Hr,sn,Qr,Mr,Zr]),Ls=function(eo){Xt&&Kt(Xt(eo,Hr))},Ii=function(eo){Dt&&Kt(Dt(eo,Hr))};if(yr)return null;var Cs="".concat(mi,"-prev-btn"),Is="".concat(mi,"-next-btn"),Pa="".concat(mi,"-super-prev-btn"),Gs="".concat(mi,"-super-next-btn");return nt.createElement("div",{className:mi},Dt&&nt.createElement("button",{type:"button","aria-label":Mr.previousYear,onClick:function(){return Ii(-1)},tabIndex:-1,className:et()(Pa,es&&"".concat(Pa,"-disabled")),disabled:es,style:Hs?vn:{}},er),Xt&&nt.createElement("button",{type:"button","aria-label":Mr.previousMonth,onClick:function(){return Ls(-1)},tabIndex:-1,className:et()(Cs,yo&&"".concat(Cs,"-disabled")),disabled:yo,style:Hs?vn:{}},ri),nt.createElement("div",{className:"".concat(mi,"-view")},Qn),Xt&&nt.createElement("button",{type:"button","aria-label":Mr.nextMonth,onClick:function(){return Ls(1)},tabIndex:-1,className:et()(Is,Ts&&"".concat(Is,"-disabled")),disabled:Ts,style:js?vn:{}},$r),Dt&&nt.createElement("button",{type:"button","aria-label":Mr.nextYear,onClick:function(){return Ii(1)},tabIndex:-1,className:et()(Gs,Zs&&"".concat(Gs,"-disabled")),disabled:Zs,style:js?vn:{}},Ki))}var Ur=pn;function Ho(tt){var Xt=tt.prefixCls,Dt=tt.panelName,Kt=Dt===void 0?"date":Dt,sn=tt.locale,Vn=tt.generateConfig,Qn=tt.pickerValue,zn=tt.onPickerValueChange,Oi=tt.onModeChange,Qi=tt.mode,ri=Qi===void 0?"date":Qi,cr=tt.disabledDate,$r=tt.onSelect,Yt=tt.onHover,er=tt.showWeek,sr="".concat(Xt,"-").concat(Kt,"-panel"),Ki="".concat(Xt,"-cell"),lr=ri==="week",vr=Hi(tt,ri),Qr=(0,Qt.Z)(vr,2),Mr=Qr[0],Hr=Qr[1],Zr=Vn.locale.getWeekFirstDay(sn.locale),mi=Vn.setDate(Qn,1),cs=mt(sn.locale,Vn,mi),Hs=Vn.getMonth(Qn),js=er===void 0?lr:er,yr=js?function(qo){var eo=cr==null?void 0:cr(qo,{type:"week"});return nt.createElement("td",{key:"week",className:et()(Ki,"".concat(Ki,"-week"),(0,ln.Z)({},"".concat(Ki,"-disabled"),eo)),onClick:function(){eo||$r(qo)},onMouseEnter:function(){eo||Yt==null||Yt(qo)},onMouseLeave:function(){eo||Yt==null||Yt(null)}},nt.createElement("div",{className:"".concat(Ki,"-inner")},Vn.locale.getWeek(sn.locale,qo)))}:null,yo=[],es=sn.shortWeekDays||(Vn.locale.getShortWeekDays?Vn.locale.getShortWeekDays(sn.locale):[]);yr&&yo.push(nt.createElement("th",{key:"empty"},nt.createElement("span",{style:{width:0,height:0,position:"absolute",overflow:"hidden",opacity:0}},sn.week)));for(var Ts=0;Ts<Mn;Ts+=1)yo.push(nt.createElement("th",{key:Ts},es[(Ts+Zr)%Mn]));var Zs=function(eo,bs){return Vn.addDate(eo,bs)},Ls=function(eo){return An(eo,{locale:sn,format:sn.cellDateFormat,generateConfig:Vn})},Ii=function(eo){var bs=(0,ln.Z)((0,ln.Z)({},"".concat(Xt,"-cell-in-view"),Ti(Vn,eo,Qn)),"".concat(Xt,"-cell-today"),Lr(Vn,eo,Hr));return bs},Cs=sn.shortMonths||(Vn.locale.getShortMonths?Vn.locale.getShortMonths(sn.locale):[]),Is=nt.createElement("button",{type:"button","aria-label":sn.yearSelect,key:"year",onClick:function(){Oi("year",Qn)},tabIndex:-1,className:"".concat(Xt,"-year-btn")},An(Qn,{locale:sn,format:sn.yearFormat,generateConfig:Vn})),Pa=nt.createElement("button",{type:"button","aria-label":sn.monthSelect,key:"month",onClick:function(){Oi("month",Qn)},tabIndex:-1,className:"".concat(Xt,"-month-btn")},sn.monthFormat?An(Qn,{locale:sn,format:sn.monthFormat,generateConfig:Vn}):Cs[Hs]),Gs=sn.monthBeforeYear?[Pa,Is]:[Is,Pa];return nt.createElement(Xr.Provider,{value:Mr},nt.createElement("div",{className:et()(sr,er&&"".concat(sr,"-show-week"))},nt.createElement(Ur,{offset:function(eo){return Vn.addMonth(Qn,eo)},superOffset:function(eo){return Vn.addYear(Qn,eo)},onChange:zn,getStart:function(eo){return Vn.setDate(eo,1)},getEnd:function(eo){var bs=Vn.setDate(eo,1);return bs=Vn.addMonth(bs,1),Vn.addDate(bs,-1)}},Gs),nt.createElement(Fn,(0,Me.Z)({titleFormat:sn.fieldDateFormat},tt,{colNum:Mn,rowNum:6,baseDate:cs,headerCells:yo,getCellDate:Zs,getCellText:Ls,getCellClassName:Ii,prefixColumn:yr,cellSelection:!lr}))))}var bo=je(29194),ji=1/3;function co(tt,Xt){var Dt=nt.useRef(!1),Kt=nt.useRef(null),sn=nt.useRef(null),Vn=function(){return Dt.current},Qn=function(){Uo.Z.cancel(Kt.current),Dt.current=!1},zn=nt.useRef(),Oi=function(){var cr=tt.current;if(sn.current=null,zn.current=0,cr){var $r=cr.querySelector('[data-value="'.concat(Xt,'"]')),Yt=cr.querySelector("li"),er=function sr(){Qn(),Dt.current=!0,zn.current+=1;var Ki=cr.scrollTop,lr=Yt.offsetTop,vr=$r.offsetTop,Qr=vr-lr;if(vr===0&&$r!==Yt||!(0,bo.Z)(cr)){zn.current<=5&&(Kt.current=(0,Uo.Z)(sr));return}var Mr=Ki+(Qr-Ki)*ji,Hr=Math.abs(Qr-Mr);if(sn.current!==null&&sn.current<Hr){Qn();return}if(sn.current=Hr,Hr<=1){cr.scrollTop=Qr,Qn();return}cr.scrollTop=Mr,Kt.current=(0,Uo.Z)(sr)};$r&&Yt&&er()}},Qi=(0,It.zX)(Oi);return[Qi,Qn,Vn]}var Oa=300;function aa(tt){return tt.map(function(Xt){var Dt=Xt.value,Kt=Xt.label,sn=Xt.disabled;return[Dt,Kt,sn].join(",")}).join(";")}function pa(tt){var Xt=tt.units,Dt=tt.value,Kt=tt.optionalValue,sn=tt.type,Vn=tt.onChange,Qn=tt.onHover,zn=tt.onDblClick,Oi=tt.changeOnScroll,Qi=si(),ri=Qi.prefixCls,cr=Qi.cellRender,$r=Qi.now,Yt=Qi.locale,er="".concat(ri,"-time-panel"),sr="".concat(ri,"-time-panel-cell"),Ki=nt.useRef(null),lr=nt.useRef(),vr=function(){clearTimeout(lr.current)},Qr=co(Ki,Dt!=null?Dt:Kt),Mr=(0,Qt.Z)(Qr,3),Hr=Mr[0],Zr=Mr[1],mi=Mr[2];(0,dt.Z)(function(){return Hr(),vr(),function(){Zr(),vr()}},[Dt,Kt,aa(Xt)]);var cs=function(yr){vr();var yo=yr.target;!mi()&&Oi&&(lr.current=setTimeout(function(){var es=Ki.current,Ts=es.querySelector("li").offsetTop,Zs=Array.from(es.querySelectorAll("li")),Ls=Zs.map(function(Gs){return Gs.offsetTop-Ts}),Ii=Ls.map(function(Gs,qo){return Xt[qo].disabled?Number.MAX_SAFE_INTEGER:Math.abs(Gs-yo.scrollTop)}),Cs=Math.min.apply(Math,(0,yt.Z)(Ii)),Is=Ii.findIndex(function(Gs){return Gs===Cs}),Pa=Xt[Is];Pa&&!Pa.disabled&&Vn(Pa.value)},Oa))},Hs="".concat(er,"-column");return nt.createElement("ul",{className:Hs,ref:Ki,"data-type":sn,onScroll:cs},Xt.map(function(js){var yr=js.label,yo=js.value,es=js.disabled,Ts=nt.createElement("div",{className:"".concat(sr,"-inner")},yr);return nt.createElement("li",{key:yo,className:et()(sr,(0,ln.Z)((0,ln.Z)({},"".concat(sr,"-selected"),Dt===yo),"".concat(sr,"-disabled"),es)),onClick:function(){es||Vn(yo)},onDoubleClick:function(){!es&&zn&&zn()},onMouseEnter:function(){Qn(yo)},onMouseLeave:function(){Qn(null)},"data-value":yo},cr?cr(yo,{prefixCls:ri,originNode:Ts,today:$r,type:"time",subType:sn,locale:Yt}):Ts)}))}function hn(tt){return tt<12}function Ar(tt){var Xt=tt.showHour,Dt=tt.showMinute,Kt=tt.showSecond,sn=tt.showMillisecond,Vn=tt.use12Hours,Qn=tt.changeOnScroll,zn=si(),Oi=zn.prefixCls,Qi=zn.values,ri=zn.generateConfig,cr=zn.locale,$r=zn.onSelect,Yt=zn.onHover,er=Yt===void 0?function(){}:Yt,sr=zn.pickerValue,Ki=(Qi==null?void 0:Qi[0])||null,lr=nt.useContext(or),vr=lr.onCellDblClick,Qr=Si(ri,tt,Ki),Mr=(0,Qt.Z)(Qr,5),Hr=Mr[0],Zr=Mr[1],mi=Mr[2],cs=Mr[3],Hs=Mr[4],js=function(Br){var Iu=Ki&&ri[Br](Ki),_t=sr&&ri[Br](sr);return[Iu,_t]},yr=js("getHour"),yo=(0,Qt.Z)(yr,2),es=yo[0],Ts=yo[1],Zs=js("getMinute"),Ls=(0,Qt.Z)(Zs,2),Ii=Ls[0],Cs=Ls[1],Is=js("getSecond"),Pa=(0,Qt.Z)(Is,2),Gs=Pa[0],qo=Pa[1],eo=js("getMillisecond"),bs=(0,Qt.Z)(eo,2),Ta=bs[0],Ms=bs[1],ws=es===null?null:hn(es)?"am":"pm",Ra=nt.useMemo(function(){return Vn?hn(es)?Zr.filter(function(Vs){return hn(Vs.value)}):Zr.filter(function(Vs){return!hn(Vs.value)}):Zr},[es,Zr,Vn]),Aa=function(Br,Iu){var _t,ai=Br.filter(function(zh){return!zh.disabled});return Iu!=null?Iu:ai==null||(_t=ai[0])===null||_t===void 0?void 0:_t.value},ga=Aa(Zr,es),ol=nt.useMemo(function(){return mi(ga)},[mi,ga]),fl=Aa(ol,Ii),gu=nt.useMemo(function(){return cs(ga,fl)},[cs,ga,fl]),Ys=Aa(gu,Gs),Cu=nt.useMemo(function(){return Hs(ga,fl,Ys)},[Hs,ga,fl,Ys]),Wo=Aa(Cu,Ta),Zu=nt.useMemo(function(){if(!Vn)return[];var Vs=ri.getNow(),Br=ri.setHour(Vs,6),Iu=ri.setHour(Vs,18),_t=function(zh,ch){var rc=cr.cellMeridiemFormat;return rc?An(zh,{generateConfig:ri,locale:cr,format:rc}):ch};return[{label:_t(Br,"AM"),value:"am",disabled:Zr.every(function(ai){return ai.disabled||!hn(ai.value)})},{label:_t(Iu,"PM"),value:"pm",disabled:Zr.every(function(ai){return ai.disabled||hn(ai.value)})}]},[Zr,Vn,ri,cr]),Ml=function(Br){var Iu=Hr(Br);$r(Iu)},au=nt.useMemo(function(){var Vs=Ki||sr||ri.getNow(),Br=function(_t){return _t!=null};return Br(es)?(Vs=ri.setHour(Vs,es),Vs=ri.setMinute(Vs,Ii),Vs=ri.setSecond(Vs,Gs),Vs=ri.setMillisecond(Vs,Ta)):Br(Ts)?(Vs=ri.setHour(Vs,Ts),Vs=ri.setMinute(Vs,Cs),Vs=ri.setSecond(Vs,qo),Vs=ri.setMillisecond(Vs,Ms)):Br(ga)&&(Vs=ri.setHour(Vs,ga),Vs=ri.setMinute(Vs,fl),Vs=ri.setSecond(Vs,Ys),Vs=ri.setMillisecond(Vs,Wo)),Vs},[Ki,sr,es,Ii,Gs,Ta,ga,fl,Ys,Wo,Ts,Cs,qo,Ms,ri]),Cl=function(Br,Iu){return Br===null?null:ri[Iu](au,Br)},ll=function(Br){return Cl(Br,"setHour")},El=function(Br){return Cl(Br,"setMinute")},Bl=function(Br){return Cl(Br,"setSecond")},Xu=function(Br){return Cl(Br,"setMillisecond")},Dc=function(Br){return Br===null?null:Br==="am"&&!hn(es)?ri.setHour(au,es-12):Br==="pm"&&hn(es)?ri.setHour(au,es+12):au},eu=function(Br){Ml(ll(Br))},Yc=function(Br){Ml(El(Br))},Tl=function(Br){Ml(Bl(Br))},pl=function(Br){Ml(Xu(Br))},el=function(Br){Ml(Dc(Br))},ru=function(Br){er(ll(Br))},bl=function(Br){er(El(Br))},mu=function(Br){er(Bl(Br))},hs=function(Br){er(Xu(Br))},ps=function(Br){er(Dc(Br))},kl={onDblClick:vr,changeOnScroll:Qn};return nt.createElement("div",{className:"".concat(Oi,"-content")},Xt&&nt.createElement(pa,(0,Me.Z)({units:Ra,value:es,optionalValue:Ts,type:"hour",onChange:eu,onHover:ru},kl)),Dt&&nt.createElement(pa,(0,Me.Z)({units:ol,value:Ii,optionalValue:Cs,type:"minute",onChange:Yc,onHover:bl},kl)),Kt&&nt.createElement(pa,(0,Me.Z)({units:gu,value:Gs,optionalValue:qo,type:"second",onChange:Tl,onHover:mu},kl)),sn&&nt.createElement(pa,(0,Me.Z)({units:Cu,value:Ta,optionalValue:Ms,type:"millisecond",onChange:pl,onHover:hs},kl)),Vn&&nt.createElement(pa,(0,Me.Z)({units:Zu,value:ws,type:"meridiem",onChange:el,onHover:ps},kl)))}function Xo(tt){var Xt=tt.prefixCls,Dt=tt.value,Kt=tt.locale,sn=tt.generateConfig,Vn=tt.showTime,Qn=Vn||{},zn=Qn.format,Oi="".concat(Xt,"-time-panel"),Qi=Hi(tt,"time"),ri=(0,Qt.Z)(Qi,1),cr=ri[0];return nt.createElement(Xr.Provider,{value:cr},nt.createElement("div",{className:et()(Oi)},nt.createElement(Ur,null,Dt?An(Dt,{locale:Kt,format:zn,generateConfig:sn}):"\xA0"),nt.createElement(Ar,Vn)))}function al(tt){var Xt=tt.prefixCls,Dt=tt.generateConfig,Kt=tt.showTime,sn=tt.onSelect,Vn=tt.value,Qn=tt.pickerValue,zn=tt.onHover,Oi="".concat(Xt,"-datetime-panel"),Qi=Si(Dt,Kt),ri=(0,Qt.Z)(Qi,1),cr=ri[0],$r=function(Ki){return Vn?Gn(Dt,Ki,Vn):Gn(Dt,Ki,Qn)},Yt=function(Ki){zn==null||zn(Ki&&$r(Ki))},er=function(Ki){var lr=$r(Ki);sn(cr(lr,lr))};return nt.createElement("div",{className:Oi},nt.createElement(Ho,(0,Me.Z)({},tt,{onSelect:er,onHover:Yt})),nt.createElement(Xo,tt))}function Ji(tt){var Xt=tt.prefixCls,Dt=tt.locale,Kt=tt.generateConfig,sn=tt.pickerValue,Vn=tt.disabledDate,Qn=tt.onPickerValueChange,zn="".concat(Xt,"-decade-panel"),Oi=Hi(tt,"decade"),Qi=(0,Qt.Z)(Oi,1),ri=Qi[0],cr=function(Zr){var mi=Math.floor(Kt.getYear(Zr)/100)*100;return Kt.setYear(Zr,mi)},$r=function(Zr){var mi=cr(Zr);return Kt.addYear(mi,99)},Yt=cr(sn),er=$r(sn),sr=Kt.addYear(Yt,-10),Ki=function(Zr,mi){return Kt.addYear(Zr,mi*10)},lr=function(Zr){var mi=Dt.cellYearFormat,cs=An(Zr,{locale:Dt,format:mi,generateConfig:Kt}),Hs=An(Kt.addYear(Zr,9),{locale:Dt,format:mi,generateConfig:Kt});return"".concat(cs,"-").concat(Hs)},vr=function(Zr){return(0,ln.Z)({},"".concat(Xt,"-cell-in-view"),Mi(Kt,Zr,Yt)||Mi(Kt,Zr,er)||Ft(Kt,Yt,er,Zr))},Qr=Vn?function(Hr,Zr){var mi=Kt.setDate(Hr,1),cs=Kt.setMonth(mi,0),Hs=Kt.setYear(cs,Math.floor(Kt.getYear(cs)/10)*10),js=Kt.addYear(Hs,10),yr=Kt.addDate(js,-1);return Vn(Hs,Zr)&&Vn(yr,Zr)}:null,Mr="".concat(An(Yt,{locale:Dt,format:Dt.yearFormat,generateConfig:Kt}),"-").concat(An(er,{locale:Dt,format:Dt.yearFormat,generateConfig:Kt}));return nt.createElement(Xr.Provider,{value:ri},nt.createElement("div",{className:zn},nt.createElement(Ur,{superOffset:function(Zr){return Kt.addYear(sn,Zr*100)},onChange:Qn,getStart:cr,getEnd:$r},Mr),nt.createElement(Fn,(0,Me.Z)({},tt,{disabledDate:Qr,colNum:3,rowNum:4,baseDate:sr,getCellDate:Ki,getCellText:lr,getCellClassName:vr}))))}function Fo(tt){var Xt=tt.prefixCls,Dt=tt.locale,Kt=tt.generateConfig,sn=tt.pickerValue,Vn=tt.disabledDate,Qn=tt.onPickerValueChange,zn=tt.onModeChange,Oi="".concat(Xt,"-month-panel"),Qi=Hi(tt,"month"),ri=(0,Qt.Z)(Qi,1),cr=ri[0],$r=Kt.setMonth(sn,0),Yt=Dt.shortMonths||(Kt.locale.getShortMonths?Kt.locale.getShortMonths(Dt.locale):[]),er=function(Mr,Hr){return Kt.addMonth(Mr,Hr)},sr=function(Mr){var Hr=Kt.getMonth(Mr);return Dt.monthFormat?An(Mr,{locale:Dt,format:Dt.monthFormat,generateConfig:Kt}):Yt[Hr]},Ki=function(){return(0,ln.Z)({},"".concat(Xt,"-cell-in-view"),!0)},lr=Vn?function(Qr,Mr){var Hr=Kt.setDate(Qr,1),Zr=Kt.setMonth(Hr,Kt.getMonth(Hr)+1),mi=Kt.addDate(Zr,-1);return Vn(Hr,Mr)&&Vn(mi,Mr)}:null,vr=nt.createElement("button",{type:"button",key:"year","aria-label":Dt.yearSelect,onClick:function(){zn("year")},tabIndex:-1,className:"".concat(Xt,"-year-btn")},An(sn,{locale:Dt,format:Dt.yearFormat,generateConfig:Kt}));return nt.createElement(Xr.Provider,{value:cr},nt.createElement("div",{className:Oi},nt.createElement(Ur,{superOffset:function(Mr){return Kt.addYear(sn,Mr)},onChange:Qn,getStart:function(Mr){return Kt.setMonth(Mr,0)},getEnd:function(Mr){return Kt.setMonth(Mr,11)}},vr),nt.createElement(Fn,(0,Me.Z)({},tt,{disabledDate:lr,titleFormat:Dt.fieldMonthFormat,colNum:3,rowNum:4,baseDate:$r,getCellDate:er,getCellText:sr,getCellClassName:Ki}))))}function wa(tt){var Xt=tt.prefixCls,Dt=tt.locale,Kt=tt.generateConfig,sn=tt.pickerValue,Vn=tt.onPickerValueChange,Qn=tt.onModeChange,zn="".concat(Xt,"-quarter-panel"),Oi=Hi(tt,"quarter"),Qi=(0,Qt.Z)(Oi,1),ri=Qi[0],cr=Kt.setMonth(sn,0),$r=function(lr,vr){return Kt.addMonth(lr,vr*3)},Yt=function(lr){return An(lr,{locale:Dt,format:Dt.cellQuarterFormat,generateConfig:Kt})},er=function(){return(0,ln.Z)({},"".concat(Xt,"-cell-in-view"),!0)},sr=nt.createElement("button",{type:"button",key:"year","aria-label":Dt.yearSelect,onClick:function(){Qn("year")},tabIndex:-1,className:"".concat(Xt,"-year-btn")},An(sn,{locale:Dt,format:Dt.yearFormat,generateConfig:Kt}));return nt.createElement(Xr.Provider,{value:ri},nt.createElement("div",{className:zn},nt.createElement(Ur,{superOffset:function(lr){return Kt.addYear(sn,lr)},onChange:Vn,getStart:function(lr){return Kt.setMonth(lr,0)},getEnd:function(lr){return Kt.setMonth(lr,11)}},sr),nt.createElement(Fn,(0,Me.Z)({},tt,{titleFormat:Dt.fieldQuarterFormat,colNum:4,rowNum:1,baseDate:cr,getCellDate:$r,getCellText:Yt,getCellClassName:er}))))}function xl(tt){var Xt=tt.prefixCls,Dt=tt.generateConfig,Kt=tt.locale,sn=tt.value,Vn=tt.hoverValue,Qn=tt.hoverRangeValue,zn=Kt.locale,Oi="".concat(Xt,"-week-panel-row"),Qi=function(cr){var $r={};if(Qn){var Yt=(0,Qt.Z)(Qn,2),er=Yt[0],sr=Yt[1],Ki=Ge(Dt,zn,er,cr),lr=Ge(Dt,zn,sr,cr);$r["".concat(Oi,"-range-start")]=Ki,$r["".concat(Oi,"-range-end")]=lr,$r["".concat(Oi,"-range-hover")]=!Ki&&!lr&&Ft(Dt,er,sr,cr)}return Vn&&($r["".concat(Oi,"-hover")]=Vn.some(function(vr){return Ge(Dt,zn,cr,vr)})),et()(Oi,(0,ln.Z)({},"".concat(Oi,"-selected"),!Qn&&Ge(Dt,zn,sn,cr)),$r)};return nt.createElement(Ho,(0,Me.Z)({},tt,{mode:"week",panelName:"week",rowClassName:Qi}))}function Ll(tt){var Xt=tt.prefixCls,Dt=tt.locale,Kt=tt.generateConfig,sn=tt.pickerValue,Vn=tt.disabledDate,Qn=tt.onPickerValueChange,zn=tt.onModeChange,Oi="".concat(Xt,"-year-panel"),Qi=Hi(tt,"year"),ri=(0,Qt.Z)(Qi,1),cr=ri[0],$r=function(mi){var cs=Math.floor(Kt.getYear(mi)/10)*10;return Kt.setYear(mi,cs)},Yt=function(mi){var cs=$r(mi);return Kt.addYear(cs,9)},er=$r(sn),sr=Yt(sn),Ki=Kt.addYear(er,-1),lr=function(mi,cs){return Kt.addYear(mi,cs)},vr=function(mi){return An(mi,{locale:Dt,format:Dt.cellYearFormat,generateConfig:Kt})},Qr=function(mi){return(0,ln.Z)({},"".concat(Xt,"-cell-in-view"),Rt(Kt,mi,er)||Rt(Kt,mi,sr)||Ft(Kt,er,sr,mi))},Mr=Vn?function(Zr,mi){var cs=Kt.setMonth(Zr,0),Hs=Kt.setDate(cs,1),js=Kt.addYear(Hs,1),yr=Kt.addDate(js,-1);return Vn(Hs,mi)&&Vn(yr,mi)}:null,Hr=nt.createElement("button",{type:"button",key:"decade","aria-label":Dt.decadeSelect,onClick:function(){zn("decade")},tabIndex:-1,className:"".concat(Xt,"-decade-btn")},An(er,{locale:Dt,format:Dt.yearFormat,generateConfig:Kt}),"-",An(sr,{locale:Dt,format:Dt.yearFormat,generateConfig:Kt}));return nt.createElement(Xr.Provider,{value:cr},nt.createElement("div",{className:Oi},nt.createElement(Ur,{superOffset:function(mi){return Kt.addYear(sn,mi*10)},onChange:Qn,getStart:$r,getEnd:Yt},Hr),nt.createElement(Fn,(0,Me.Z)({},tt,{disabledDate:Mr,titleFormat:Dt.fieldYearFormat,colNum:3,rowNum:4,baseDate:Ki,getCellDate:lr,getCellText:vr,getCellClassName:Qr}))))}var ys={date:Ho,datetime:al,week:xl,month:Fo,quarter:wa,year:Ll,decade:Ji,time:Xo};function As(tt,Xt){var Dt,Kt=tt.locale,sn=tt.generateConfig,Vn=tt.direction,Qn=tt.prefixCls,zn=tt.tabIndex,Oi=zn===void 0?0:zn,Qi=tt.multiple,ri=tt.defaultValue,cr=tt.value,$r=tt.onChange,Yt=tt.onSelect,er=tt.defaultPickerValue,sr=tt.pickerValue,Ki=tt.onPickerValueChange,lr=tt.mode,vr=tt.onPanelChange,Qr=tt.picker,Mr=Qr===void 0?"date":Qr,Hr=tt.showTime,Zr=tt.hoverValue,mi=tt.hoverRangeValue,cs=tt.cellRender,Hs=tt.dateRender,js=tt.monthCellRender,yr=tt.components,yo=yr===void 0?{}:yr,es=tt.hideHeader,Ts=((Dt=nt.useContext(Ce))===null||Dt===void 0?void 0:Dt.prefixCls)||Qn||"rc-picker",Zs=nt.useRef();nt.useImperativeHandle(Xt,function(){return{nativeElement:Zs.current}});var Ls=_i(tt),Ii=(0,Qt.Z)(Ls,4),Cs=Ii[0],Is=Ii[1],Pa=Ii[2],Gs=Ii[3],qo=Jn(Kt,Is),eo=Mr==="date"&&Hr?"datetime":Mr,bs=nt.useMemo(function(){return dr(eo,Pa,Gs,Cs,qo)},[eo,Pa,Gs,Cs,qo]),Ta=sn.getNow(),Ms=(0,It.C8)(Mr,{value:lr,postState:function(ps){return ps||"date"}}),ws=(0,Qt.Z)(Ms,2),Ra=ws[0],Aa=ws[1],ga=Ra==="date"&&bs?"datetime":Ra,ol=Po(sn,Kt,eo),fl=(0,It.C8)(ri,{value:cr}),gu=(0,Qt.Z)(fl,2),Ys=gu[0],Cu=gu[1],Wo=nt.useMemo(function(){var hs=Ye(Ys).filter(function(ps){return ps});return Qi?hs:hs.slice(0,1)},[Ys,Qi]),Zu=(0,It.zX)(function(hs){Cu(hs),$r&&(hs===null||Wo.length!==hs.length||Wo.some(function(ps,kl){return!rt(sn,Kt,ps,hs[kl],eo)}))&&($r==null||$r(Qi?hs:hs[0]))}),Ml=(0,It.zX)(function(hs){if(Yt==null||Yt(hs),Ra===Mr){var ps=Qi?ol(Wo,hs):[hs];Zu(ps)}}),au=(0,It.C8)(er||Wo[0]||Ta,{value:sr}),Cl=(0,Qt.Z)(au,2),ll=Cl[0],El=Cl[1];nt.useEffect(function(){Wo[0]&&!sr&&El(Wo[0])},[Wo[0]]);var Bl=function(ps,kl){vr==null||vr(ps||sr,kl||Ra)},Xu=function(ps){var kl=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;El(ps),Ki==null||Ki(ps),kl&&Bl(ps)},Dc=function(ps,kl){Aa(ps),kl&&Xu(kl),Bl(kl,ps)},eu=function(ps){if(Ml(ps),Xu(ps),Ra!==Mr){var kl=["decade","year"],Vs=[].concat(kl,["month"]),Br={quarter:[].concat(kl,["quarter"]),week:[].concat((0,yt.Z)(Vs),["week"]),date:[].concat((0,yt.Z)(Vs),["date"])},Iu=Br[Mr]||Vs,_t=Iu.indexOf(Ra),ai=Iu[_t+1];ai&&Dc(ai,ps)}},Yc=nt.useMemo(function(){var hs,ps;if(Array.isArray(mi)){var kl=(0,Qt.Z)(mi,2);hs=kl[0],ps=kl[1]}else hs=mi;return!hs&&!ps?null:(hs=hs||ps,ps=ps||hs,sn.isAfter(hs,ps)?[ps,hs]:[hs,ps])},[mi,sn]),Tl=$t(cs,Hs,js),pl=yo[ga]||ys[ga]||Ho,el=nt.useContext(or),ru=nt.useMemo(function(){return(0,Jt.Z)((0,Jt.Z)({},el),{},{hideHeader:es})},[el,es]),bl="".concat(Ts,"-panel"),mu=Bt(tt,["showWeek","prevIcon","nextIcon","superPrevIcon","superNextIcon","disabledDate","minDate","maxDate","onHover"]);return nt.createElement(or.Provider,{value:ru},nt.createElement("div",{ref:Zs,tabIndex:Oi,className:et()(bl,(0,ln.Z)({},"".concat(bl,"-rtl"),Vn==="rtl"))},nt.createElement(pl,(0,Me.Z)({},mu,{showTime:bs,prefixCls:Ts,locale:qo,generateConfig:sn,onModeChange:Dc,pickerValue:ll,onPickerValueChange:function(ps){Xu(ps,!0)},value:Wo[0],onSelect:eu,values:Wo,cellRender:Tl,hoverRangeValue:Yc,hoverValue:Zr}))))}var Jo=nt.memo(nt.forwardRef(As)),da=Jo;function us(tt){var Xt=tt.picker,Dt=tt.multiplePanel,Kt=tt.pickerValue,sn=tt.onPickerValueChange,Vn=tt.needConfirm,Qn=tt.onSubmit,zn=tt.range,Oi=tt.hoverValue,Qi=nt.useContext(Ce),ri=Qi.prefixCls,cr=Qi.generateConfig,$r=nt.useCallback(function(vr,Qr){return zr(cr,Xt,vr,Qr)},[cr,Xt]),Yt=nt.useMemo(function(){return $r(Kt,1)},[Kt,$r]),er=function(Qr){sn($r(Qr,-1))},sr={onCellDblClick:function(){Vn&&Qn()}},Ki=Xt==="time",lr=(0,Jt.Z)((0,Jt.Z)({},tt),{},{hoverValue:null,hoverRangeValue:null,hideHeader:Ki});return zn?lr.hoverRangeValue=Oi:lr.hoverValue=Oi,Dt?nt.createElement("div",{className:"".concat(ri,"-panels")},nt.createElement(or.Provider,{value:(0,Jt.Z)((0,Jt.Z)({},sr),{},{hideNext:!0})},nt.createElement(da,lr)),nt.createElement(or.Provider,{value:(0,Jt.Z)((0,Jt.Z)({},sr),{},{hidePrev:!0})},nt.createElement(da,(0,Me.Z)({},lr,{pickerValue:Yt,onPickerValueChange:er})))):nt.createElement(or.Provider,{value:(0,Jt.Z)({},sr)},nt.createElement(da,lr))}function Sa(tt){return typeof tt=="function"?tt():tt}function zi(tt){var Xt=tt.prefixCls,Dt=tt.presets,Kt=tt.onClick,sn=tt.onHover;return Dt.length?nt.createElement("div",{className:"".concat(Xt,"-presets")},nt.createElement("ul",null,Dt.map(function(Vn,Qn){var zn=Vn.label,Oi=Vn.value;return nt.createElement("li",{key:Qn,onClick:function(){Kt(Sa(Oi))},onMouseEnter:function(){sn(Sa(Oi))},onMouseLeave:function(){sn(null)}},zn)}))):null}function fc(tt){var Xt=tt.panelRender,Dt=tt.internalMode,Kt=tt.picker,sn=tt.showNow,Vn=tt.range,Qn=tt.multiple,zn=tt.activeInfo,Oi=zn===void 0?[0,0,0]:zn,Qi=tt.presets,ri=tt.onPresetHover,cr=tt.onPresetSubmit,$r=tt.onFocus,Yt=tt.onBlur,er=tt.onPanelMouseDown,sr=tt.direction,Ki=tt.value,lr=tt.onSelect,vr=tt.isInvalid,Qr=tt.defaultOpenValue,Mr=tt.onOk,Hr=tt.onSubmit,Zr=nt.useContext(Ce),mi=Zr.prefixCls,cs="".concat(mi,"-panel"),Hs=sr==="rtl",js=nt.useRef(null),yr=nt.useRef(null),yo=nt.useState(0),es=(0,Qt.Z)(yo,2),Ts=es[0],Zs=es[1],Ls=nt.useState(0),Ii=(0,Qt.Z)(Ls,2),Cs=Ii[0],Is=Ii[1],Pa=nt.useState(0),Gs=(0,Qt.Z)(Pa,2),qo=Gs[0],eo=Gs[1],bs=function(eu){eu.width&&Zs(eu.width)},Ta=(0,Qt.Z)(Oi,3),Ms=Ta[0],ws=Ta[1],Ra=Ta[2],Aa=nt.useState(0),ga=(0,Qt.Z)(Aa,2),ol=ga[0],fl=ga[1];nt.useEffect(function(){fl(10)},[Ms]),nt.useEffect(function(){if(Vn&&yr.current){var Dc,eu=((Dc=js.current)===null||Dc===void 0?void 0:Dc.offsetWidth)||0,Yc=yr.current.getBoundingClientRect();if(!Yc.height||Yc.right<0){fl(function(ru){return Math.max(0,ru-1)});return}var Tl=(Hs?ws-eu:Ms)-Yc.left;if(eo(Tl),Ts&&Ts<Ra){var pl=Hs?Yc.right-(ws-eu+Ts):Ms+eu-Yc.left-Ts,el=Math.max(0,pl);Is(el)}else Is(0)}},[ol,Hs,Ts,Ms,ws,Ra,Vn]);function gu(Dc){return Dc.filter(function(eu){return eu})}var Ys=nt.useMemo(function(){return gu(Ye(Ki))},[Ki]),Cu=Kt==="time"&&!Ys.length,Wo=nt.useMemo(function(){return Cu?gu([Qr]):Ys},[Cu,Ys,Qr]),Zu=Cu?Qr:Ys,Ml=nt.useMemo(function(){return Wo.length?Wo.some(function(Dc){return vr(Dc)}):!0},[Wo,vr]),au=function(){Cu&&lr(Qr),Mr(),Hr()},Cl=nt.createElement("div",{className:"".concat(mi,"-panel-layout")},nt.createElement(zi,{prefixCls:mi,presets:Qi,onClick:cr,onHover:ri}),nt.createElement("div",null,nt.createElement(us,(0,Me.Z)({},tt,{value:Zu})),nt.createElement(ms,(0,Me.Z)({},tt,{showNow:Qn?!1:sn,invalid:Ml,onSubmit:au}))));Xt&&(Cl=Xt(Cl));var ll="".concat(cs,"-container"),El="marginLeft",Bl="marginRight",Xu=nt.createElement("div",{onMouseDown:er,tabIndex:-1,className:et()(ll,"".concat(mi,"-").concat(Dt,"-panel-container")),style:(0,ln.Z)((0,ln.Z)({},Hs?Bl:El,Cs),Hs?El:Bl,"auto"),onFocus:$r,onBlur:Yt},Cl);return Vn&&(Xu=nt.createElement("div",{onMouseDown:er,ref:yr,className:et()("".concat(mi,"-range-wrapper"),"".concat(mi,"-").concat(Kt,"-range-wrapper"))},nt.createElement("div",{ref:js,className:"".concat(mi,"-range-arrow"),style:{left:qo}}),nt.createElement(ha.Z,{onResize:bs},Xu))),Xu}var iu=je(62646);function Gu(tt,Xt){var Dt=tt.format,Kt=tt.maskFormat,sn=tt.generateConfig,Vn=tt.locale,Qn=tt.preserveInvalidOnBlur,zn=tt.inputReadOnly,Oi=tt.required,Qi=tt["aria-required"],ri=tt.onSubmit,cr=tt.onFocus,$r=tt.onBlur,Yt=tt.onInputChange,er=tt.onInvalid,sr=tt.open,Ki=tt.onOpenChange,lr=tt.onKeyDown,vr=tt.onChange,Qr=tt.activeHelp,Mr=tt.name,Hr=tt.autoComplete,Zr=tt.id,mi=tt.value,cs=tt.invalid,Hs=tt.placeholder,js=tt.disabled,yr=tt.activeIndex,yo=tt.allHelp,es=tt.picker,Ts=function(qo,eo){var bs=sn.locale.parse(Vn.locale,qo,[eo]);return bs&&sn.isValidate(bs)?bs:null},Zs=Dt[0],Ls=nt.useCallback(function(Gs){return An(Gs,{locale:Vn,format:Zs,generateConfig:sn})},[Vn,sn,Zs]),Ii=nt.useMemo(function(){return mi.map(Ls)},[mi,Ls]),Cs=nt.useMemo(function(){var Gs=es==="time"?8:10,qo=typeof Zs=="function"?Zs(sn.getNow()).length:Zs.length;return Math.max(Gs,qo)+2},[Zs,es,sn]),Is=function(qo){for(var eo=0;eo<Dt.length;eo+=1){var bs=Dt[eo];if(typeof bs=="string"){var Ta=Ts(qo,bs);if(Ta)return Ta}}return!1},Pa=function(qo){function eo(Ms){return qo!==void 0?Ms[qo]:Ms}var bs=(0,an.Z)(tt,{aria:!0,data:!0}),Ta=(0,Jt.Z)((0,Jt.Z)({},bs),{},{format:Kt,validateFormat:function(ws){return!!Is(ws)},preserveInvalidOnBlur:Qn,readOnly:zn,required:Oi,"aria-required":Qi,name:Mr,autoComplete:Hr,size:Cs,id:eo(Zr),value:eo(Ii)||"",invalid:eo(cs),placeholder:eo(Hs),active:yr===qo,helped:yo||Qr&&yr===qo,disabled:eo(js),onFocus:function(ws){cr(ws,qo)},onBlur:function(ws){$r(ws,qo)},onSubmit:ri,onChange:function(ws){Yt();var Ra=Is(ws);if(Ra){er(!1,qo),vr(Ra,qo);return}er(!!ws,qo)},onHelp:function(){Ki(!0,{index:qo})},onKeyDown:function(ws){var Ra=!1;if(lr==null||lr(ws,function(){Ra=!0}),!ws.defaultPrevented&&!Ra)switch(ws.key){case"Escape":Ki(!1,{index:qo});break;case"Enter":sr||Ki(!0);break}}},Xt==null?void 0:Xt({valueTexts:Ii}));return Object.keys(Ta).forEach(function(Ms){Ta[Ms]===void 0&&delete Ta[Ms]}),Ta};return[Pa,Ls]}var Ni=["onMouseEnter","onMouseLeave"];function Lo(tt){return nt.useMemo(function(){return Bt(tt,Ni)},[tt])}var zs=["icon","type"],Fa=["onClear"];function Js(tt){var Xt=tt.icon,Dt=tt.type,Kt=(0,iu.Z)(tt,zs),sn=nt.useContext(Ce),Vn=sn.prefixCls;return Xt?nt.createElement("span",(0,Me.Z)({className:"".concat(Vn,"-").concat(Dt)},Kt),Xt):null}function _s(tt){var Xt=tt.onClear,Dt=(0,iu.Z)(tt,Fa);return nt.createElement(Js,(0,Me.Z)({},Dt,{type:"clear",role:"button",onMouseDown:function(sn){sn.preventDefault()},onClick:function(sn){sn.stopPropagation(),Xt()}}))}var wl=je(99153),Sl=je(84851),rl=["YYYY","MM","DD","HH","mm","ss","SSS"],Il="\u9867",Zi=function(){function tt(Xt){(0,wl.Z)(this,tt),(0,ln.Z)(this,"format",void 0),(0,ln.Z)(this,"maskFormat",void 0),(0,ln.Z)(this,"cells",void 0),(0,ln.Z)(this,"maskCells",void 0),this.format=Xt;var Dt=rl.map(function(zn){return"(".concat(zn,")")}).join("|"),Kt=new RegExp(Dt,"g");this.maskFormat=Xt.replace(Kt,function(zn){return Il.repeat(zn.length)});var sn=new RegExp("(".concat(rl.join("|"),")")),Vn=(Xt.split(sn)||[]).filter(function(zn){return zn}),Qn=0;this.cells=Vn.map(function(zn){var Oi=rl.includes(zn),Qi=Qn,ri=Qn+zn.length;return Qn=ri,{text:zn,mask:Oi,start:Qi,end:ri}}),this.maskCells=this.cells.filter(function(zn){return zn.mask})}return(0,Sl.Z)(tt,[{key:"getSelection",value:function(Dt){var Kt=this.maskCells[Dt]||{},sn=Kt.start,Vn=Kt.end;return[sn||0,Vn||0]}},{key:"match",value:function(Dt){for(var Kt=0;Kt<this.maskFormat.length;Kt+=1){var sn=this.maskFormat[Kt],Vn=Dt[Kt];if(!Vn||sn!==Il&&sn!==Vn)return!1}return!0}},{key:"size",value:function(){return this.maskCells.length}},{key:"getMaskCellIndex",value:function(Dt){for(var Kt=Number.MAX_SAFE_INTEGER,sn=0,Vn=0;Vn<this.maskCells.length;Vn+=1){var Qn=this.maskCells[Vn],zn=Qn.start,Oi=Qn.end;if(Dt>=zn&&Dt<=Oi)return Vn;var Qi=Math.min(Math.abs(Dt-zn),Math.abs(Dt-Oi));Qi<Kt&&(Kt=Qi,sn=Vn)}return sn}}]),tt}();function hl(tt){var Xt={YYYY:[0,9999,new Date().getFullYear()],MM:[1,12],DD:[1,31],HH:[0,23],mm:[0,59],ss:[0,59],SSS:[0,999]};return Xt[tt]}var Yi=["active","showActiveCls","suffixIcon","format","validateFormat","onChange","onInput","helped","onHelp","onSubmit","onKeyDown","preserveInvalidOnBlur","invalid","clearIcon"],$o=nt.forwardRef(function(tt,Xt){var Dt=tt.active,Kt=tt.showActiveCls,sn=Kt===void 0?!0:Kt,Vn=tt.suffixIcon,Qn=tt.format,zn=tt.validateFormat,Oi=tt.onChange,Qi=tt.onInput,ri=tt.helped,cr=tt.onHelp,$r=tt.onSubmit,Yt=tt.onKeyDown,er=tt.preserveInvalidOnBlur,sr=er===void 0?!1:er,Ki=tt.invalid,lr=tt.clearIcon,vr=(0,iu.Z)(tt,Yi),Qr=tt.value,Mr=tt.onFocus,Hr=tt.onBlur,Zr=tt.onMouseUp,mi=nt.useContext(Ce),cs=mi.prefixCls,Hs=mi.input,js=Hs===void 0?"input":Hs,yr="".concat(cs,"-input"),yo=nt.useState(!1),es=(0,Qt.Z)(yo,2),Ts=es[0],Zs=es[1],Ls=nt.useState(Qr),Ii=(0,Qt.Z)(Ls,2),Cs=Ii[0],Is=Ii[1],Pa=nt.useState(""),Gs=(0,Qt.Z)(Pa,2),qo=Gs[0],eo=Gs[1],bs=nt.useState(null),Ta=(0,Qt.Z)(bs,2),Ms=Ta[0],ws=Ta[1],Ra=nt.useState(null),Aa=(0,Qt.Z)(Ra,2),ga=Aa[0],ol=Aa[1],fl=Cs||"";nt.useEffect(function(){Is(Qr)},[Qr]);var gu=nt.useRef(),Ys=nt.useRef();nt.useImperativeHandle(Xt,function(){return{nativeElement:gu.current,inputElement:Ys.current,focus:function(ps){Ys.current.focus(ps)},blur:function(){Ys.current.blur()}}});var Cu=nt.useMemo(function(){return new Zi(Qn||"")},[Qn]),Wo=nt.useMemo(function(){return ri?[0,0]:Cu.getSelection(Ms)},[Cu,Ms,ri]),Zu=(0,Qt.Z)(Wo,2),Ml=Zu[0],au=Zu[1],Cl=function(ps){ps&&ps!==Qn&&ps!==Qr&&cr()},ll=(0,It.zX)(function(hs){zn(hs)&&Oi(hs),Is(hs),Cl(hs)}),El=function(ps){if(!Qn){var kl=ps.target.value;Cl(kl),Is(kl),Oi(kl)}},Bl=function(ps){var kl=ps.clipboardData.getData("text");zn(kl)&&ll(kl)},Xu=nt.useRef(!1),Dc=function(){Xu.current=!0},eu=function(ps){var kl=ps.target,Vs=kl.selectionStart,Br=Cu.getMaskCellIndex(Vs);ws(Br),ol({}),Zr==null||Zr(ps),Xu.current=!1},Yc=function(ps){Zs(!0),ws(0),eo(""),Mr(ps)},Tl=function(ps){Hr(ps)},pl=function(ps){Zs(!1),Tl(ps)};pi(Dt,function(){!Dt&&!sr&&Is(Qr)});var el=function(ps){ps.key==="Enter"&&zn(fl)&&$r(),Yt==null||Yt(ps)},ru=function(ps){el(ps);var kl=ps.key,Vs=null,Br=null,Iu=au-Ml,_t=Qn.slice(Ml,au),ai=function(Ec){ws(function(hh){var Rc=hh+Ec;return Rc=Math.max(Rc,0),Rc=Math.min(Rc,Cu.size()-1),Rc})},zh=function(Ec){var hh=hl(_t),Rc=(0,Qt.Z)(hh,3),od=Rc[0],ku=Rc[1],$s=Rc[2],zc=fl.slice(Ml,au),_c=Number(zc);if(isNaN(_c))return String($s||(Ec>0?od:ku));var Au=_c+Ec,tl=ku-od+1;return String(od+(tl+Au-od)%tl)};switch(kl){case"Backspace":case"Delete":Vs="",Br=_t;break;case"ArrowLeft":Vs="",ai(-1);break;case"ArrowRight":Vs="",ai(1);break;case"ArrowUp":Vs="",Br=zh(1);break;case"ArrowDown":Vs="",Br=zh(-1);break;default:isNaN(Number(kl))||(Vs=qo+kl,Br=Vs);break}if(Vs!==null&&(eo(Vs),Vs.length>=Iu&&(ai(1),eo(""))),Br!==null){var ch=fl.slice(0,Ml)+ze(Br,Iu)+fl.slice(au);ll(ch.slice(0,Qn.length))}ol({})},bl=nt.useRef();(0,dt.Z)(function(){if(!(!Ts||!Qn||Xu.current)){if(!Cu.match(fl)){ll(Qn);return}return Ys.current.setSelectionRange(Ml,au),bl.current=(0,Uo.Z)(function(){Ys.current.setSelectionRange(Ml,au)}),function(){Uo.Z.cancel(bl.current)}}},[Cu,Qn,Ts,fl,Ms,Ml,au,ga,ll]);var mu=Qn?{onFocus:Yc,onBlur:pl,onKeyDown:ru,onMouseDown:Dc,onMouseUp:eu,onPaste:Bl}:{};return nt.createElement("div",{ref:gu,className:et()(yr,(0,ln.Z)((0,ln.Z)({},"".concat(yr,"-active"),Dt&&sn),"".concat(yr,"-placeholder"),ri))},nt.createElement(js,(0,Me.Z)({ref:Ys,"aria-invalid":Ki,autoComplete:"off"},vr,{onKeyDown:el,onBlur:Tl},mu,{value:fl,onChange:El})),nt.createElement(Js,{type:"suffix",icon:Vn}),lr)}),dl=$o,Pl=["id","prefix","clearIcon","suffixIcon","separator","activeIndex","activeHelp","allHelp","focused","onFocus","onBlur","onKeyDown","locale","generateConfig","placeholder","className","style","onClick","onClear","value","onChange","onSubmit","onInputChange","format","maskFormat","preserveInvalidOnBlur","onInvalid","disabled","invalid","inputReadOnly","direction","onOpenChange","onActiveInfo","placement","onMouseDown","required","aria-required","autoFocus","tabIndex"],pc=["index"];function pu(tt,Xt){var Dt=tt.id,Kt=tt.prefix,sn=tt.clearIcon,Vn=tt.suffixIcon,Qn=tt.separator,zn=Qn===void 0?"~":Qn,Oi=tt.activeIndex,Qi=tt.activeHelp,ri=tt.allHelp,cr=tt.focused,$r=tt.onFocus,Yt=tt.onBlur,er=tt.onKeyDown,sr=tt.locale,Ki=tt.generateConfig,lr=tt.placeholder,vr=tt.className,Qr=tt.style,Mr=tt.onClick,Hr=tt.onClear,Zr=tt.value,mi=tt.onChange,cs=tt.onSubmit,Hs=tt.onInputChange,js=tt.format,yr=tt.maskFormat,yo=tt.preserveInvalidOnBlur,es=tt.onInvalid,Ts=tt.disabled,Zs=tt.invalid,Ls=tt.inputReadOnly,Ii=tt.direction,Cs=tt.onOpenChange,Is=tt.onActiveInfo,Pa=tt.placement,Gs=tt.onMouseDown,qo=tt.required,eo=tt["aria-required"],bs=tt.autoFocus,Ta=tt.tabIndex,Ms=(0,iu.Z)(tt,Pl),ws=Ii==="rtl",Ra=nt.useContext(Ce),Aa=Ra.prefixCls,ga=nt.useMemo(function(){if(typeof Dt=="string")return[Dt];var Tl=Dt||{};return[Tl.start,Tl.end]},[Dt]),ol=nt.useRef(),fl=nt.useRef(),gu=nt.useRef(),Ys=function(pl){var el;return(el=[fl,gu][pl])===null||el===void 0?void 0:el.current};nt.useImperativeHandle(Xt,function(){return{nativeElement:ol.current,focus:function(pl){if((0,ci.Z)(pl)==="object"){var el,ru=pl||{},bl=ru.index,mu=bl===void 0?0:bl,hs=(0,iu.Z)(ru,pc);(el=Ys(mu))===null||el===void 0||el.focus(hs)}else{var ps;(ps=Ys(pl!=null?pl:0))===null||ps===void 0||ps.focus()}},blur:function(){var pl,el;(pl=Ys(0))===null||pl===void 0||pl.blur(),(el=Ys(1))===null||el===void 0||el.blur()}}});var Cu=Lo(Ms),Wo=nt.useMemo(function(){return Array.isArray(lr)?lr:[lr,lr]},[lr]),Zu=Gu((0,Jt.Z)((0,Jt.Z)({},tt),{},{id:ga,placeholder:Wo})),Ml=(0,Qt.Z)(Zu,1),au=Ml[0],Cl=nt.useState({position:"absolute",width:0}),ll=(0,Qt.Z)(Cl,2),El=ll[0],Bl=ll[1],Xu=(0,It.zX)(function(){var Tl=Ys(Oi);if(Tl){var pl=Tl.nativeElement.getBoundingClientRect(),el=ol.current.getBoundingClientRect(),ru=pl.left-el.left;Bl(function(bl){return(0,Jt.Z)((0,Jt.Z)({},bl),{},{width:pl.width,left:ru})}),Is([pl.left,pl.right,el.width])}});nt.useEffect(function(){Xu()},[Oi]);var Dc=sn&&(Zr[0]&&!Ts[0]||Zr[1]&&!Ts[1]),eu=bs&&!Ts[0],Yc=bs&&!eu&&!Ts[1];return nt.createElement(ha.Z,{onResize:Xu},nt.createElement("div",(0,Me.Z)({},Cu,{className:et()(Aa,"".concat(Aa,"-range"),(0,ln.Z)((0,ln.Z)((0,ln.Z)((0,ln.Z)({},"".concat(Aa,"-focused"),cr),"".concat(Aa,"-disabled"),Ts.every(function(Tl){return Tl})),"".concat(Aa,"-invalid"),Zs.some(function(Tl){return Tl})),"".concat(Aa,"-rtl"),ws),vr),style:Qr,ref:ol,onClick:Mr,onMouseDown:function(pl){var el=pl.target;el!==fl.current.inputElement&&el!==gu.current.inputElement&&pl.preventDefault(),Gs==null||Gs(pl)}}),Kt&&nt.createElement("div",{className:"".concat(Aa,"-prefix")},Kt),nt.createElement(dl,(0,Me.Z)({ref:fl},au(0),{autoFocus:eu,tabIndex:Ta,"date-range":"start"})),nt.createElement("div",{className:"".concat(Aa,"-range-separator")},zn),nt.createElement(dl,(0,Me.Z)({ref:gu},au(1),{autoFocus:Yc,tabIndex:Ta,"date-range":"end"})),nt.createElement("div",{className:"".concat(Aa,"-active-bar"),style:El}),nt.createElement(Js,{type:"suffix",icon:Vn}),Dc&&nt.createElement(_s,{icon:sn,onClear:Hr})))}var jl=nt.forwardRef(pu),Vu=jl;function Un(tt,Xt){var Dt=tt!=null?tt:Xt;return Array.isArray(Dt)?Dt:[Dt,Dt]}function xi(tt){return tt===1?"end":"start"}function kn(tt,Xt){var Dt=Nr(tt,function(){var Ma=tt.disabled,ja=tt.allowEmpty,cl=Un(Ma,!1),uu=Un(ja,!1);return{disabled:cl,allowEmpty:uu}}),Kt=(0,Qt.Z)(Dt,6),sn=Kt[0],Vn=Kt[1],Qn=Kt[2],zn=Kt[3],Oi=Kt[4],Qi=Kt[5],ri=sn.prefixCls,cr=sn.styles,$r=sn.classNames,Yt=sn.defaultValue,er=sn.value,sr=sn.needConfirm,Ki=sn.onKeyDown,lr=sn.disabled,vr=sn.allowEmpty,Qr=sn.disabledDate,Mr=sn.minDate,Hr=sn.maxDate,Zr=sn.defaultOpen,mi=sn.open,cs=sn.onOpenChange,Hs=sn.locale,js=sn.generateConfig,yr=sn.picker,yo=sn.showNow,es=sn.showToday,Ts=sn.showTime,Zs=sn.mode,Ls=sn.onPanelChange,Ii=sn.onCalendarChange,Cs=sn.onOk,Is=sn.defaultPickerValue,Pa=sn.pickerValue,Gs=sn.onPickerValueChange,qo=sn.inputReadOnly,eo=sn.suffixIcon,bs=sn.onFocus,Ta=sn.onBlur,Ms=sn.presets,ws=sn.ranges,Ra=sn.components,Aa=sn.cellRender,ga=sn.dateRender,ol=sn.monthCellRender,fl=sn.onClick,gu=Rn(Xt),Ys=lo(mi,Zr,lr,cs),Cu=(0,Qt.Z)(Ys,2),Wo=Cu[0],Zu=Cu[1],Ml=function(ja,cl){(lr.some(function(uu){return!uu})||!ja)&&Zu(ja,cl)},au=ls(js,Hs,zn,!0,!1,Yt,er,Ii,Cs),Cl=(0,Qt.Z)(au,5),ll=Cl[0],El=Cl[1],Bl=Cl[2],Xu=Cl[3],Dc=Cl[4],eu=Bl(),Yc=Ai(lr,vr,Wo),Tl=(0,Qt.Z)(Yc,9),pl=Tl[0],el=Tl[1],ru=Tl[2],bl=Tl[3],mu=Tl[4],hs=Tl[5],ps=Tl[6],kl=Tl[7],Vs=Tl[8],Br=function(ja,cl){el(!0),bs==null||bs(ja,{range:xi(cl!=null?cl:bl)})},Iu=function(ja,cl){el(!1),Ta==null||Ta(ja,{range:xi(cl!=null?cl:bl)})},_t=nt.useMemo(function(){if(!Ts)return null;var Ma=Ts.disabledTime,ja=Ma?function(cl){var uu=xi(bl),Wl=xt(eu,ps,bl);return Ma(cl,uu,{from:Wl})}:void 0;return(0,Jt.Z)((0,Jt.Z)({},Ts),{},{disabledTime:ja})},[Ts,bl,eu,ps]),ai=(0,It.C8)([yr,yr],{value:Zs}),zh=(0,Qt.Z)(ai,2),ch=zh[0],rc=zh[1],Ec=ch[bl]||yr,hh=Ec==="date"&&_t?"datetime":Ec,Rc=hh===yr&&hh!=="time",od=Fs(yr,Ec,yo,es,!0),ku=La(sn,ll,El,Bl,Xu,lr,zn,pl,Wo,Qi),$s=(0,Qt.Z)(ku,2),zc=$s[0],_c=$s[1],Au=Cr(eu,lr,ps,js,Hs,Qr),tl=Zt(eu,Qi,vr),Yu=(0,Qt.Z)(tl,2),Ch=Yu[0],Du=Yu[1],Eh=Wr(js,Hs,eu,ch,Wo,bl,Vn,Rc,Is,Pa,_t==null?void 0:_t.defaultOpenValue,Gs,Mr,Hr),Ju=(0,Qt.Z)(Eh,2),xf=Ju[0],ul=Ju[1],Ka=(0,It.zX)(function(Ma,ja,cl){var uu=lt(ch,bl,ja);if((uu[0]!==ch[0]||uu[1]!==ch[1])&&rc(uu),Ls&&cl!==!1){var Wl=(0,yt.Z)(eu);Ma&&(Wl[bl]=Ma),Ls(Wl,uu)}}),Dl=function(ja,cl){return lt(eu,cl,ja)},Ol=function(ja,cl){var uu=eu;ja&&(uu=Dl(ja,bl)),kl(bl);var Wl=hs(uu);Xu(uu),zc(bl,Wl===null),Wl===null?Ml(!1,{force:!0}):cl||gu.current.focus({index:Wl})},Ou=function(ja){var cl,uu=ja.target.getRootNode();if(!gu.current.nativeElement.contains((cl=uu.activeElement)!==null&&cl!==void 0?cl:document.activeElement)){var Wl=lr.findIndex(function(Kc){return!Kc});Wl>=0&&gu.current.focus({index:Wl})}Ml(!0),fl==null||fl(ja)},Wu=function(){_c(null),Ml(!1,{force:!0})},Jl=nt.useState(null),tf=(0,Qt.Z)(Jl,2),la=tf[0],rg=tf[1],sl=nt.useState(null),Uh=(0,Qt.Z)(sl,2),Jh=Uh[0],lu=Uh[1],lp=nt.useMemo(function(){return Jh||eu},[eu,Jh]);nt.useEffect(function(){Wo||lu(null)},[Wo]);var wf=nt.useState([0,0,0]),qh=(0,Qt.Z)(wf,2),Sf=qh[0],ql=qh[1],_h=$n(Ms,ws),Hp=function(ja){lu(ja),rg("preset")},Pf=function(ja){var cl=_c(ja);cl&&Ml(!1,{force:!0})},Vp=function(ja){Ol(ja)},nf=function(ja){lu(ja?Dl(ja,bl):null),rg("cell")},gl=function(ja){Ml(!0),Br(ja)},Xl=function(){ru("panel")},oc=function(ja){var cl=lt(eu,bl,ja);Xu(cl),!sr&&!Qn&&Vn===hh&&Ol(ja)},Ac=function(){Ml(!1)},gr=$t(Aa,ga,ol,xi(bl)),Hh=eu[bl]||null,Cf=(0,It.zX)(function(Ma){return Qi(Ma,{activeIndex:bl})}),Rl=nt.useMemo(function(){var Ma=(0,an.Z)(sn,!1),ja=(0,Mt.Z)(sn,[].concat((0,yt.Z)(Object.keys(Ma)),["onChange","onCalendarChange","style","className","onPanelChange","disabledTime"]));return ja},[sn]),Va=nt.createElement(fc,(0,Me.Z)({},Rl,{showNow:od,showTime:_t,range:!0,multiplePanel:Rc,activeInfo:Sf,disabledDate:Au,onFocus:gl,onBlur:Iu,onPanelMouseDown:Xl,picker:yr,mode:Ec,internalMode:hh,onPanelChange:Ka,format:Oi,value:Hh,isInvalid:Cf,onChange:null,onSelect:oc,pickerValue:xf,defaultOpenValue:Ye(Ts==null?void 0:Ts.defaultOpenValue)[bl],onPickerValueChange:ul,hoverValue:lp,onHover:nf,needConfirm:sr,onSubmit:Ol,onOk:Dc,presets:_h,onPresetHover:Hp,onPresetSubmit:Pf,onNow:Vp,cellRender:gr})),Nc=function(ja,cl){var uu=Dl(ja,cl);Xu(uu)},Ef=function(){ru("input")},rm=function(ja,cl){var uu=ps.length,Wl=ps[uu-1];if(uu&&Wl!==cl&&sr&&!vr[Wl]&&!Vs(Wl)&&eu[Wl]){gu.current.focus({index:Wl});return}ru("input"),Ml(!0,{inherit:!0}),bl!==cl&&Wo&&!sr&&Qn&&Ol(null,!0),mu(cl),Br(ja,cl)},jp=function(ja,cl){if(Ml(!1),!sr&&ru()==="input"){var uu=hs(eu);zc(bl,uu===null)}Iu(ja,cl)},Vd=function(ja,cl){ja.key==="Tab"&&Ol(null,!0),Ki==null||Ki(ja,cl)},bu=nt.useMemo(function(){return{prefixCls:ri,locale:Hs,generateConfig:js,button:Ra.button,input:Ra.input}},[ri,Hs,js,Ra.button,Ra.input]);if((0,dt.Z)(function(){Wo&&bl!==void 0&&Ka(null,yr,!1)},[Wo,bl,yr]),(0,dt.Z)(function(){var Ma=ru();!Wo&&Ma==="input"&&(Ml(!1),Ol(null,!0)),!Wo&&Qn&&!sr&&Ma==="panel"&&(Ml(!0),Ol())},[Wo]),0)var og;return nt.createElement(Ce.Provider,{value:bu},nt.createElement(Ie,(0,Me.Z)({},Et(sn),{popupElement:Va,popupStyle:cr.popup,popupClassName:$r.popup,visible:Wo,onClose:Ac,range:!0}),nt.createElement(Vu,(0,Me.Z)({},sn,{ref:gu,suffixIcon:eo,activeIndex:pl||Wo?bl:null,activeHelp:!!Jh,allHelp:!!Jh&&la==="preset",focused:pl,onFocus:rm,onBlur:jp,onKeyDown:Vd,onSubmit:Ol,value:lp,maskFormat:Oi,onChange:Nc,onInputChange:Ef,format:zn,inputReadOnly:qo,disabled:lr,open:Wo,onOpenChange:Ml,onClick:Ou,onClear:Wu,invalid:Ch,onInvalid:Du,onActiveInfo:ql}))))}var it=nt.forwardRef(kn),fr=it,xr=je(11780);function Rr(tt){var Xt=tt.prefixCls,Dt=tt.value,Kt=tt.onRemove,sn=tt.removeIcon,Vn=sn===void 0?"\xD7":sn,Qn=tt.formatDate,zn=tt.disabled,Oi=tt.maxTagCount,Qi=tt.placeholder,ri="".concat(Xt,"-selector"),cr="".concat(Xt,"-selection"),$r="".concat(cr,"-overflow");function Yt(Ki,lr){return nt.createElement("span",{className:et()("".concat(cr,"-item")),title:typeof Ki=="string"?Ki:null},nt.createElement("span",{className:"".concat(cr,"-item-content")},Ki),!zn&&lr&&nt.createElement("span",{onMouseDown:function(Qr){Qr.preventDefault()},onClick:lr,className:"".concat(cr,"-item-remove")},Vn))}function er(Ki){var lr=Qn(Ki),vr=function(Mr){Mr&&Mr.stopPropagation(),Kt(Ki)};return Yt(lr,vr)}function sr(Ki){var lr="+ ".concat(Ki.length," ...");return Yt(lr)}return nt.createElement("div",{className:ri},nt.createElement(xr.Z,{prefixCls:$r,data:Dt,renderItem:er,renderRest:sr,itemKey:function(lr){return Qn(lr)},maxCount:Oi}),!Dt.length&&nt.createElement("span",{className:"".concat(Xt,"-selection-placeholder")},Qi))}var po=["id","open","prefix","clearIcon","suffixIcon","activeHelp","allHelp","focused","onFocus","onBlur","onKeyDown","locale","generateConfig","placeholder","className","style","onClick","onClear","internalPicker","value","onChange","onSubmit","onInputChange","multiple","maxTagCount","format","maskFormat","preserveInvalidOnBlur","onInvalid","disabled","invalid","inputReadOnly","direction","onOpenChange","onMouseDown","required","aria-required","autoFocus","tabIndex","removeIcon"];function ko(tt,Xt){var Dt=tt.id,Kt=tt.open,sn=tt.prefix,Vn=tt.clearIcon,Qn=tt.suffixIcon,zn=tt.activeHelp,Oi=tt.allHelp,Qi=tt.focused,ri=tt.onFocus,cr=tt.onBlur,$r=tt.onKeyDown,Yt=tt.locale,er=tt.generateConfig,sr=tt.placeholder,Ki=tt.className,lr=tt.style,vr=tt.onClick,Qr=tt.onClear,Mr=tt.internalPicker,Hr=tt.value,Zr=tt.onChange,mi=tt.onSubmit,cs=tt.onInputChange,Hs=tt.multiple,js=tt.maxTagCount,yr=tt.format,yo=tt.maskFormat,es=tt.preserveInvalidOnBlur,Ts=tt.onInvalid,Zs=tt.disabled,Ls=tt.invalid,Ii=tt.inputReadOnly,Cs=tt.direction,Is=tt.onOpenChange,Pa=tt.onMouseDown,Gs=tt.required,qo=tt["aria-required"],eo=tt.autoFocus,bs=tt.tabIndex,Ta=tt.removeIcon,Ms=(0,iu.Z)(tt,po),ws=Cs==="rtl",Ra=nt.useContext(Ce),Aa=Ra.prefixCls,ga=nt.useRef(),ol=nt.useRef();nt.useImperativeHandle(Xt,function(){return{nativeElement:ga.current,focus:function(El){var Bl;(Bl=ol.current)===null||Bl===void 0||Bl.focus(El)},blur:function(){var El;(El=ol.current)===null||El===void 0||El.blur()}}});var fl=Lo(Ms),gu=function(El){Zr([El])},Ys=function(El){var Bl=Hr.filter(function(Xu){return Xu&&!rt(er,Yt,Xu,El,Mr)});Zr(Bl),Kt||mi()},Cu=Gu((0,Jt.Z)((0,Jt.Z)({},tt),{},{onChange:gu}),function(ll){var El=ll.valueTexts;return{value:El[0]||"",active:Qi}}),Wo=(0,Qt.Z)(Cu,2),Zu=Wo[0],Ml=Wo[1],au=!!(Vn&&Hr.length&&!Zs),Cl=Hs?nt.createElement(nt.Fragment,null,nt.createElement(Rr,{prefixCls:Aa,value:Hr,onRemove:Ys,formatDate:Ml,maxTagCount:js,disabled:Zs,removeIcon:Ta,placeholder:sr}),nt.createElement("input",{className:"".concat(Aa,"-multiple-input"),value:Hr.map(Ml).join(","),ref:ol,readOnly:!0,autoFocus:eo,tabIndex:bs}),nt.createElement(Js,{type:"suffix",icon:Qn}),au&&nt.createElement(_s,{icon:Vn,onClear:Qr})):nt.createElement(dl,(0,Me.Z)({ref:ol},Zu(),{autoFocus:eo,tabIndex:bs,suffixIcon:Qn,clearIcon:au&&nt.createElement(_s,{icon:Vn,onClear:Qr}),showActiveCls:!1}));return nt.createElement("div",(0,Me.Z)({},fl,{className:et()(Aa,(0,ln.Z)((0,ln.Z)((0,ln.Z)((0,ln.Z)((0,ln.Z)({},"".concat(Aa,"-multiple"),Hs),"".concat(Aa,"-focused"),Qi),"".concat(Aa,"-disabled"),Zs),"".concat(Aa,"-invalid"),Ls),"".concat(Aa,"-rtl"),ws),Ki),style:lr,ref:ga,onClick:vr,onMouseDown:function(El){var Bl,Xu=El.target;Xu!==((Bl=ol.current)===null||Bl===void 0?void 0:Bl.inputElement)&&El.preventDefault(),Pa==null||Pa(El)}}),sn&&nt.createElement("div",{className:"".concat(Aa,"-prefix")},sn),Cl)}var Bo=nt.forwardRef(ko),Bs=Bo;function Vo(tt,Xt){var Dt=Nr(tt),Kt=(0,Qt.Z)(Dt,6),sn=Kt[0],Vn=Kt[1],Qn=Kt[2],zn=Kt[3],Oi=Kt[4],Qi=Kt[5],ri=sn,cr=ri.prefixCls,$r=ri.styles,Yt=ri.classNames,er=ri.order,sr=ri.defaultValue,Ki=ri.value,lr=ri.needConfirm,vr=ri.onChange,Qr=ri.onKeyDown,Mr=ri.disabled,Hr=ri.disabledDate,Zr=ri.minDate,mi=ri.maxDate,cs=ri.defaultOpen,Hs=ri.open,js=ri.onOpenChange,yr=ri.locale,yo=ri.generateConfig,es=ri.picker,Ts=ri.showNow,Zs=ri.showToday,Ls=ri.showTime,Ii=ri.mode,Cs=ri.onPanelChange,Is=ri.onCalendarChange,Pa=ri.onOk,Gs=ri.multiple,qo=ri.defaultPickerValue,eo=ri.pickerValue,bs=ri.onPickerValueChange,Ta=ri.inputReadOnly,Ms=ri.suffixIcon,ws=ri.removeIcon,Ra=ri.onFocus,Aa=ri.onBlur,ga=ri.presets,ol=ri.components,fl=ri.cellRender,gu=ri.dateRender,Ys=ri.monthCellRender,Cu=ri.onClick,Wo=Rn(Xt);function Zu(Rl){return Rl===null?null:Gs?Rl:Rl[0]}var Ml=Po(yo,yr,Vn),au=lo(Hs,cs,[Mr],js),Cl=(0,Qt.Z)(au,2),ll=Cl[0],El=Cl[1],Bl=function(Va,Nc,Ef){if(Is){var rm=(0,Jt.Z)({},Ef);delete rm.range,Is(Zu(Va),Zu(Nc),rm)}},Xu=function(Va){Pa==null||Pa(Zu(Va))},Dc=ls(yo,yr,zn,!1,er,sr,Ki,Bl,Xu),eu=(0,Qt.Z)(Dc,5),Yc=eu[0],Tl=eu[1],pl=eu[2],el=eu[3],ru=eu[4],bl=pl(),mu=Ai([Mr]),hs=(0,Qt.Z)(mu,4),ps=hs[0],kl=hs[1],Vs=hs[2],Br=hs[3],Iu=function(Va){kl(!0),Ra==null||Ra(Va,{})},_t=function(Va){kl(!1),Aa==null||Aa(Va,{})},ai=(0,It.C8)(es,{value:Ii}),zh=(0,Qt.Z)(ai,2),ch=zh[0],rc=zh[1],Ec=ch==="date"&&Ls?"datetime":ch,hh=Fs(es,ch,Ts,Zs),Rc=vr&&function(Rl,Va){vr(Zu(Rl),Zu(Va))},od=La((0,Jt.Z)((0,Jt.Z)({},sn),{},{onChange:Rc}),Yc,Tl,pl,el,[],zn,ps,ll,Qi),ku=(0,Qt.Z)(od,2),$s=ku[1],zc=Zt(bl,Qi),_c=(0,Qt.Z)(zc,2),Au=_c[0],tl=_c[1],Yu=nt.useMemo(function(){return Au.some(function(Rl){return Rl})},[Au]),Ch=function(Va,Nc){if(bs){var Ef=(0,Jt.Z)((0,Jt.Z)({},Nc),{},{mode:Nc.mode[0]});delete Ef.range,bs(Va[0],Ef)}},Du=Wr(yo,yr,bl,[ch],ll,Br,Vn,!1,qo,eo,Ye(Ls==null?void 0:Ls.defaultOpenValue),Ch,Zr,mi),Eh=(0,Qt.Z)(Du,2),Ju=Eh[0],xf=Eh[1],ul=(0,It.zX)(function(Rl,Va,Nc){if(rc(Va),Cs&&Nc!==!1){var Ef=Rl||bl[bl.length-1];Cs(Ef,Va)}}),Ka=function(){$s(pl()),El(!1,{force:!0})},Dl=function(Va){!Mr&&!Wo.current.nativeElement.contains(document.activeElement)&&Wo.current.focus(),El(!0),Cu==null||Cu(Va)},Ol=function(){$s(null),El(!1,{force:!0})},Ou=nt.useState(null),Wu=(0,Qt.Z)(Ou,2),Jl=Wu[0],tf=Wu[1],la=nt.useState(null),rg=(0,Qt.Z)(la,2),sl=rg[0],Uh=rg[1],Jh=nt.useMemo(function(){var Rl=[sl].concat((0,yt.Z)(bl)).filter(function(Va){return Va});return Gs?Rl:Rl.slice(0,1)},[bl,sl,Gs]),lu=nt.useMemo(function(){return!Gs&&sl?[sl]:bl.filter(function(Rl){return Rl})},[bl,sl,Gs]);nt.useEffect(function(){ll||Uh(null)},[ll]);var lp=$n(ga),wf=function(Va){Uh(Va),tf("preset")},qh=function(Va){var Nc=Gs?Ml(pl(),Va):[Va],Ef=$s(Nc);Ef&&!Gs&&El(!1,{force:!0})},Sf=function(Va){qh(Va)},ql=function(Va){Uh(Va),tf("cell")},_h=function(Va){El(!0),Iu(Va)},Hp=function(Va){if(Vs("panel"),!(Gs&&Ec!==es)){var Nc=Gs?Ml(pl(),Va):[Va];el(Nc),!lr&&!Qn&&Vn===Ec&&Ka()}},Pf=function(){El(!1)},Vp=$t(fl,gu,Ys),nf=nt.useMemo(function(){var Rl=(0,an.Z)(sn,!1),Va=(0,Mt.Z)(sn,[].concat((0,yt.Z)(Object.keys(Rl)),["onChange","onCalendarChange","style","className","onPanelChange"]));return(0,Jt.Z)((0,Jt.Z)({},Va),{},{multiple:sn.multiple})},[sn]),gl=nt.createElement(fc,(0,Me.Z)({},nf,{showNow:hh,showTime:Ls,disabledDate:Hr,onFocus:_h,onBlur:_t,picker:es,mode:ch,internalMode:Ec,onPanelChange:ul,format:Oi,value:bl,isInvalid:Qi,onChange:null,onSelect:Hp,pickerValue:Ju,defaultOpenValue:Ls==null?void 0:Ls.defaultOpenValue,onPickerValueChange:xf,hoverValue:Jh,onHover:ql,needConfirm:lr,onSubmit:Ka,onOk:ru,presets:lp,onPresetHover:wf,onPresetSubmit:qh,onNow:Sf,cellRender:Vp})),Xl=function(Va){el(Va)},oc=function(){Vs("input")},Ac=function(Va){Vs("input"),El(!0,{inherit:!0}),Iu(Va)},gr=function(Va){El(!1),_t(Va)},Hh=function(Va,Nc){Va.key==="Tab"&&Ka(),Qr==null||Qr(Va,Nc)},Cf=nt.useMemo(function(){return{prefixCls:cr,locale:yr,generateConfig:yo,button:ol.button,input:ol.input}},[cr,yr,yo,ol.button,ol.input]);return(0,dt.Z)(function(){ll&&Br!==void 0&&ul(null,es,!1)},[ll,Br,es]),(0,dt.Z)(function(){var Rl=Vs();!ll&&Rl==="input"&&(El(!1),Ka()),!ll&&Qn&&!lr&&Rl==="panel"&&Ka()},[ll]),nt.createElement(Ce.Provider,{value:Cf},nt.createElement(Ie,(0,Me.Z)({},Et(sn),{popupElement:gl,popupStyle:$r.popup,popupClassName:Yt.popup,visible:ll,onClose:Pf}),nt.createElement(Bs,(0,Me.Z)({},sn,{ref:Wo,suffixIcon:Ms,removeIcon:ws,activeHelp:!!sl,allHelp:!!sl&&Jl==="preset",focused:ps,onFocus:Ac,onBlur:gr,onKeyDown:Hh,onSubmit:Ka,value:lu,maskFormat:Oi,onChange:Xl,onInputChange:oc,internalPicker:Vn,format:zn,inputReadOnly:Ta,disabled:Mr,open:ll,onOpenChange:El,onClick:Dl,onClear:Ol,invalid:Yu,onInvalid:function(Va){tl(Va,0)}}))))}var Co=nt.forwardRef(Vo),vo=Co,fs=vo},63158:function(Cn,Ei,je){"use strict";var Me=je(14809),yt=je(4635),Jt=je(50298),Qt=je(62646),It=je(59301),dt=je(92310),Mt=je.n(dt),an=je(18929),qt=je(10228),nt=["prefixCls","className","checked","defaultChecked","disabled","loadingIcon","checkedChildren","unCheckedChildren","onClick","onChange","onKeyDown"],ln=It.forwardRef(function(rn,on){var et,ue=rn.prefixCls,ce=ue===void 0?"rc-switch":ue,Ce=rn.className,Ae=rn.checked,Te=rn.defaultChecked,Ie=rn.disabled,ze=rn.loadingIcon,Ye=rn.checkedChildren,lt=rn.unCheckedChildren,Bt=rn.onClick,kt=rn.onChange,xt=rn.onKeyDown,Et=(0,Qt.Z)(rn,nt),$t=(0,an.Z)(!1,{value:Ae,defaultValue:Te}),Zt=(0,Jt.Z)($t,2),Yn=Zt[0],gn=Zt[1];function Jn(hi,Ht){var At=Yn;return Ie||(At=hi,gn(At),kt==null||kt(At,Ht)),At}function ci(hi){hi.which===qt.Z.LEFT?Jn(!1,hi):hi.which===qt.Z.RIGHT&&Jn(!0,hi),xt==null||xt(hi)}function Xn(hi){var Ht=Jn(!Yn,hi);Bt==null||Bt(Ht,hi)}var In=Mt()(ce,Ce,(et={},(0,yt.Z)(et,"".concat(ce,"-checked"),Yn),(0,yt.Z)(et,"".concat(ce,"-disabled"),Ie),et));return It.createElement("button",(0,Me.Z)({},Et,{type:"button",role:"switch","aria-checked":Yn,disabled:Ie,className:In,ref:on,onKeyDown:ci,onClick:Xn}),ze,It.createElement("span",{className:"".concat(ce,"-inner")},It.createElement("span",{className:"".concat(ce,"-inner-checked")},Ye),It.createElement("span",{className:"".concat(ce,"-inner-unchecked")},lt)))});ln.displayName="Switch",Ei.Z=ln},86351:function(Cn,Ei,je){"use strict";je.d(Ei,{R:function(){return yt},w:function(){return Me}});var Me={},yt="rc-table-internal-hook"},97347:function(Cn,Ei,je){"use strict";je.d(Ei,{L:function(){return ce},Z:function(){return ze}});var Me=je(50298),yt=je(4635),Jt=je(95190),Qt=je(93664),It=je(20439),dt=je(62646),Mt=je(11592),an=je(48736),qt=je(59301),nt=je(86351),ln=je(54451);function rn(Ye){var lt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return typeof lt=="number"?lt:lt.endsWith("%")?Ye*parseFloat(lt)/100:null}function on(Ye,lt,Bt){return qt.useMemo(function(){if(lt&<>0){var kt=0,xt=0;Ye.forEach(function(Xn){var In=rn(lt,Xn.width);In?kt+=In:xt+=1});var Et=Math.max(lt,Bt),$t=Math.max(Et-kt,xt),Zt=xt,Yn=$t/xt,gn=0,Jn=Ye.map(function(Xn){var In=(0,It.Z)({},Xn),hi=rn(lt,In.width);if(hi)In.width=hi;else{var Ht=Math.floor(Yn);In.width=Zt===1?$t:Ht,$t-=Ht,Zt-=1}return gn+=In.width,In});if(gn<Et){var ci=Et/gn;$t=Et,Jn.forEach(function(Xn,In){var hi=Math.floor(Xn.width*ci);Xn.width=In===Jn.length-1?$t:hi,$t-=hi})}return[Jn,Math.max(gn,Et)]}return[Ye,lt]},[Ye,lt,Bt])}var et=["children"],ue=["fixed"];function ce(Ye){return(0,Mt.Z)(Ye).filter(function(lt){return qt.isValidElement(lt)}).map(function(lt){var Bt=lt.key,kt=lt.props,xt=kt.children,Et=(0,dt.Z)(kt,et),$t=(0,It.Z)({key:Bt},Et);return xt&&($t.children=ce(xt)),$t})}function Ce(Ye){return Ye.filter(function(lt){return lt&&(0,Qt.Z)(lt)==="object"&&!lt.hidden}).map(function(lt){var Bt=lt.children;return Bt&&Bt.length>0?(0,It.Z)((0,It.Z)({},lt),{},{children:Ce(Bt)}):lt})}function Ae(Ye){var lt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"key";return Ye.filter(function(Bt){return Bt&&(0,Qt.Z)(Bt)==="object"}).reduce(function(Bt,kt,xt){var Et=kt.fixed,$t=Et===!0?"left":Et,Zt="".concat(lt,"-").concat(xt),Yn=kt.children;return Yn&&Yn.length>0?[].concat((0,Jt.Z)(Bt),(0,Jt.Z)(Ae(Yn,Zt).map(function(gn){return(0,It.Z)({fixed:$t},gn)}))):[].concat((0,Jt.Z)(Bt),[(0,It.Z)((0,It.Z)({key:Zt},kt),{},{fixed:$t})])},[])}function Te(Ye){return Ye.map(function(lt){var Bt=lt.fixed,kt=(0,dt.Z)(lt,ue),xt=Bt;return Bt==="left"?xt="right":Bt==="right"&&(xt="left"),(0,It.Z)({fixed:xt},kt)})}function Ie(Ye,lt){var Bt=Ye.prefixCls,kt=Ye.columns,xt=Ye.children,Et=Ye.expandable,$t=Ye.expandedKeys,Zt=Ye.columnTitle,Yn=Ye.getRowKey,gn=Ye.onTriggerExpand,Jn=Ye.expandIcon,ci=Ye.rowExpandable,Xn=Ye.expandIconColumnIndex,In=Ye.direction,hi=Ye.expandRowByClick,Ht=Ye.columnWidth,At=Ye.fixed,Hn=Ye.scrollWidth,_i=Ye.clientWidth,dr=qt.useMemo(function(){var Lr=kt||ce(xt)||[];return Ce(Lr.slice())},[kt,xt]),En=qt.useMemo(function(){if(Et){var Lr=dr.slice();if(!Lr.includes(nt.w)){var Tt=Xn||0;Tt>=0&&(Tt||At==="left"||!At)&&Lr.splice(Tt,0,nt.w),At==="right"&&Lr.splice(dr.length,0,nt.w)}var Ze=Lr.indexOf(nt.w);Lr=Lr.filter(function(qe,mt){return qe!==nt.w||mt===Ze});var Ge=dr[Ze],rt;At?rt=At:rt=Ge?Ge.fixed:null;var Ft=(0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)({},ln.v,{className:"".concat(Bt,"-expand-icon-col"),columnType:"EXPAND_COLUMN"}),"title",Zt),"fixed",rt),"className","".concat(Bt,"-row-expand-icon-cell")),"width",Ht),"render",function(mt,An,Gn){var fo=Yn(An,Gn),qn=$t.has(fo),Kn=ci?ci(An):!0,oi=Jn({prefixCls:Bt,expanded:qn,expandable:Kn,record:An,onExpand:gn});return hi?qt.createElement("span",{onClick:function(Nr){return Nr.stopPropagation()}},oi):oi});return Lr.map(function(qe){return qe===nt.w?Ft:qe})}return dr.filter(function(qe){return qe!==nt.w})},[Et,dr,Yn,$t,Jn,In]),Mn=qt.useMemo(function(){var Lr=En;return lt&&(Lr=lt(Lr)),Lr.length||(Lr=[{render:function(){return null}}]),Lr},[lt,En,In]),Ln=qt.useMemo(function(){return In==="rtl"?Te(Ae(Mn)):Ae(Mn)},[Mn,In,Hn]),Mi=qt.useMemo(function(){for(var Lr=-1,Tt=Ln.length-1;Tt>=0;Tt-=1){var Ze=Ln[Tt].fixed;if(Ze==="left"||Ze===!0){Lr=Tt;break}}if(Lr>=0)for(var Ge=0;Ge<=Lr;Ge+=1){var rt=Ln[Ge].fixed;if(rt!=="left"&&rt!==!0)return!0}var Ft=Ln.findIndex(function(An){var Gn=An.fixed;return Gn==="right"});if(Ft>=0)for(var qe=Ft;qe<Ln.length;qe+=1){var mt=Ln[qe].fixed;if(mt!=="right")return!0}return!1},[Ln]),Rt=on(Ln,Hn,_i),ni=(0,Me.Z)(Rt,2),en=ni[0],Ti=ni[1];return[Mn,en,Ti,Mi]}var ze=Ie},4030:function(Cn,Ei,je){"use strict";je.d(Ei,{w2:function(){return Me.w},vP:function(){return as.v},RQ:function(){return Me.R},ER:function(){return fo},Q$:function(){return iu},TN:function(){return pu}});var Me=je(86351),yt=je(50298),Jt=je(6089),Qt=je(34280),It=je(13697),dt=je(59301),Mt=je(4676);function an(Un){var xi=dt.createContext(void 0),kn=function(fr){var xr=fr.value,Rr=fr.children,po=dt.useRef(xr);po.current=xr;var ko=dt.useState(function(){return{getValue:function(){return po.current},listeners:new Set}}),Bo=(0,yt.Z)(ko,1),Bs=Bo[0];return(0,Qt.Z)(function(){(0,Mt.unstable_batchedUpdates)(function(){Bs.listeners.forEach(function(Vo){Vo(xr)})})},[xr]),dt.createElement(xi.Provider,{value:Bs},Rr)};return{Context:xi,Provider:kn,defaultValue:Un}}function qt(Un,xi){var kn=(0,Jt.Z)(typeof xi=="function"?xi:function(Vo){if(xi===void 0)return Vo;if(!Array.isArray(xi))return Vo[xi];var Co={};return xi.forEach(function(vo){Co[vo]=Vo[vo]}),Co}),it=dt.useContext(Un==null?void 0:Un.Context),fr=it||{},xr=fr.listeners,Rr=fr.getValue,po=dt.useRef();po.current=kn(it?Rr():Un==null?void 0:Un.defaultValue);var ko=dt.useState({}),Bo=(0,yt.Z)(ko,2),Bs=Bo[1];return(0,Qt.Z)(function(){if(!it)return;function Vo(Co){var vo=kn(Co);(0,It.Z)(po.current,vo,!0)||Bs({})}return xr.add(Vo),function(){xr.delete(Vo)}},[it]),po.current}var nt=je(14809),ln=je(8654);function rn(){var Un=dt.createContext(null);function xi(){return dt.useContext(Un)}function kn(fr,xr){var Rr=(0,ln.Yr)(fr),po=function(Bo,Bs){var Vo=Rr?{ref:Bs}:{},Co=dt.useRef(0),vo=dt.useRef(Bo),fs=xi();return fs!==null?dt.createElement(fr,(0,nt.Z)({},Bo,Vo)):((!xr||xr(vo.current,Bo))&&(Co.current+=1),vo.current=Bo,dt.createElement(Un.Provider,{value:Co.current},dt.createElement(fr,(0,nt.Z)({},Bo,Vo))))};return Rr?dt.forwardRef(po):po}function it(fr,xr){var Rr=(0,ln.Yr)(fr),po=function(Bo,Bs){var Vo=Rr?{ref:Bs}:{};return xi(),dt.createElement(fr,(0,nt.Z)({},Bo,Vo))};return Rr?dt.memo(dt.forwardRef(po),xr):dt.memo(po,xr)}return{makeImmutable:kn,responseImmutable:it,useImmutableMark:xi}}var on=rn(),et=on.makeImmutable,ue=on.responseImmutable,ce=on.useImmutableMark,Ce=rn(),Ae=Ce.makeImmutable,Te=Ce.responseImmutable,Ie=Ce.useImmutableMark,ze=an(),Ye=ze;function lt(Un,xi){var kn=React.useRef(0);kn.current+=1;var it=React.useRef(Un),fr=[];Object.keys(Un||{}).map(function(Rr){var po;(Un==null?void 0:Un[Rr])!==((po=it.current)===null||po===void 0?void 0:po[Rr])&&fr.push(Rr)}),it.current=Un;var xr=React.useRef([]);return fr.length&&(xr.current=fr),React.useDebugValue(kn.current),React.useDebugValue(xr.current.join(", ")),xi&&console.log("".concat(xi,":"),kn.current,xr.current),kn.current}var Bt=null,kt=null,xt=je(93664),Et=je(20439),$t=je(4635),Zt=je(92310),Yn=je.n(Zt),gn=je(80547),Jn=je(97938),ci=je(48736),Xn=dt.createContext({renderWithProps:!1}),In=Xn,hi="RC_TABLE_KEY";function Ht(Un){return Un==null?[]:Array.isArray(Un)?Un:[Un]}function At(Un){var xi=[],kn={};return Un.forEach(function(it){for(var fr=it||{},xr=fr.key,Rr=fr.dataIndex,po=xr||Ht(Rr).join("-")||hi;kn[po];)po="".concat(po,"_next");kn[po]=!0,xi.push(po)}),xi}function Hn(Un){return Un!=null}function _i(Un){return typeof Un=="number"&&!Number.isNaN(Un)}function dr(Un){return Un&&(0,xt.Z)(Un)==="object"&&!Array.isArray(Un)&&!dt.isValidElement(Un)}function En(Un,xi,kn,it,fr,xr){var Rr=dt.useContext(In),po=Ie(),ko=(0,gn.Z)(function(){if(Hn(it))return[it];var Bo=xi==null||xi===""?[]:Array.isArray(xi)?xi:[xi],Bs=(0,Jn.Z)(Un,Bo),Vo=Bs,Co=void 0;if(fr){var vo=fr(Bs,Un,kn);dr(vo)?(Vo=vo.children,Co=vo.props,Rr.renderWithProps=!0):Vo=vo}return[Vo,Co]},[po,Un,it,xi,fr,kn],function(Bo,Bs){if(xr){var Vo=(0,yt.Z)(Bo,2),Co=Vo[1],vo=(0,yt.Z)(Bs,2),fs=vo[1];return xr(fs,Co)}return Rr.renderWithProps?!0:!(0,It.Z)(Bo,Bs,!0)});return ko}function Mn(Un,xi,kn,it){var fr=Un+xi-1;return Un<=it&&fr>=kn}function Ln(Un,xi){return qt(Ye,function(kn){var it=Mn(Un,xi||1,kn.hoverStartRow,kn.hoverEndRow);return[it,kn.onHover]})}var Mi=je(70425),Rt=function(xi){var kn=xi.ellipsis,it=xi.rowType,fr=xi.children,xr,Rr=kn===!0?{showTitle:!0}:kn;return Rr&&(Rr.showTitle||it==="header")&&(typeof fr=="string"||typeof fr=="number"?xr=fr.toString():dt.isValidElement(fr)&&typeof fr.props.children=="string"&&(xr=fr.props.children)),xr};function ni(Un){var xi,kn,it,fr,xr,Rr,po,ko,Bo=Un.component,Bs=Un.children,Vo=Un.ellipsis,Co=Un.scope,vo=Un.prefixCls,fs=Un.className,tt=Un.align,Xt=Un.record,Dt=Un.render,Kt=Un.dataIndex,sn=Un.renderIndex,Vn=Un.shouldCellUpdate,Qn=Un.index,zn=Un.rowType,Oi=Un.colSpan,Qi=Un.rowSpan,ri=Un.fixLeft,cr=Un.fixRight,$r=Un.firstFixLeft,Yt=Un.lastFixLeft,er=Un.firstFixRight,sr=Un.lastFixRight,Ki=Un.appendNode,lr=Un.additionalProps,vr=lr===void 0?{}:lr,Qr=Un.isSticky,Mr="".concat(vo,"-cell"),Hr=qt(Ye,["supportSticky","allColumnsFixedLeft","rowHoverable"]),Zr=Hr.supportSticky,mi=Hr.allColumnsFixedLeft,cs=Hr.rowHoverable,Hs=En(Xt,Kt,sn,Bs,Dt,Vn),js=(0,yt.Z)(Hs,2),yr=js[0],yo=js[1],es={},Ts=typeof ri=="number"&&Zr,Zs=typeof cr=="number"&&Zr;Ts&&(es.position="sticky",es.left=ri),Zs&&(es.position="sticky",es.right=cr);var Ls=(xi=(kn=(it=yo==null?void 0:yo.colSpan)!==null&&it!==void 0?it:vr.colSpan)!==null&&kn!==void 0?kn:Oi)!==null&&xi!==void 0?xi:1,Ii=(fr=(xr=(Rr=yo==null?void 0:yo.rowSpan)!==null&&Rr!==void 0?Rr:vr.rowSpan)!==null&&xr!==void 0?xr:Qi)!==null&&fr!==void 0?fr:1,Cs=Ln(Qn,Ii),Is=(0,yt.Z)(Cs,2),Pa=Is[0],Gs=Is[1],qo=(0,Mi.zX)(function(Aa){var ga;Xt&&Gs(Qn,Qn+Ii-1),vr==null||(ga=vr.onMouseEnter)===null||ga===void 0||ga.call(vr,Aa)}),eo=(0,Mi.zX)(function(Aa){var ga;Xt&&Gs(-1,-1),vr==null||(ga=vr.onMouseLeave)===null||ga===void 0||ga.call(vr,Aa)});if(Ls===0||Ii===0)return null;var bs=(po=vr.title)!==null&&po!==void 0?po:Rt({rowType:zn,ellipsis:Vo,children:yr}),Ta=Yn()(Mr,fs,(ko={},(0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)(ko,"".concat(Mr,"-fix-left"),Ts&&Zr),"".concat(Mr,"-fix-left-first"),$r&&Zr),"".concat(Mr,"-fix-left-last"),Yt&&Zr),"".concat(Mr,"-fix-left-all"),Yt&&mi&&Zr),"".concat(Mr,"-fix-right"),Zs&&Zr),"".concat(Mr,"-fix-right-first"),er&&Zr),"".concat(Mr,"-fix-right-last"),sr&&Zr),"".concat(Mr,"-ellipsis"),Vo),"".concat(Mr,"-with-append"),Ki),"".concat(Mr,"-fix-sticky"),(Ts||Zs)&&Qr&&Zr),(0,$t.Z)(ko,"".concat(Mr,"-row-hover"),!yo&&Pa)),vr.className,yo==null?void 0:yo.className),Ms={};tt&&(Ms.textAlign=tt);var ws=(0,Et.Z)((0,Et.Z)((0,Et.Z)((0,Et.Z)({},yo==null?void 0:yo.style),es),Ms),vr.style),Ra=yr;return(0,xt.Z)(Ra)==="object"&&!Array.isArray(Ra)&&!dt.isValidElement(Ra)&&(Ra=null),Vo&&(Yt||er)&&(Ra=dt.createElement("span",{className:"".concat(Mr,"-content")},Ra)),dt.createElement(Bo,(0,nt.Z)({},yo,vr,{className:Ta,style:ws,title:bs,scope:Co,onMouseEnter:cs?qo:void 0,onMouseLeave:cs?eo:void 0,colSpan:Ls!==1?Ls:null,rowSpan:Ii!==1?Ii:null}),Ki,Ra)}var en=dt.memo(ni);function Ti(Un,xi,kn,it,fr){var xr=kn[Un]||{},Rr=kn[xi]||{},po,ko;xr.fixed==="left"?po=it.left[fr==="rtl"?xi:Un]:Rr.fixed==="right"&&(ko=it.right[fr==="rtl"?Un:xi]);var Bo=!1,Bs=!1,Vo=!1,Co=!1,vo=kn[xi+1],fs=kn[Un-1],tt=vo&&!vo.fixed||fs&&!fs.fixed||kn.every(function(Vn){return Vn.fixed==="left"});if(fr==="rtl"){if(po!==void 0){var Xt=fs&&fs.fixed==="left";Co=!Xt&&tt}else if(ko!==void 0){var Dt=vo&&vo.fixed==="right";Vo=!Dt&&tt}}else if(po!==void 0){var Kt=vo&&vo.fixed==="left";Bo=!Kt&&tt}else if(ko!==void 0){var sn=fs&&fs.fixed==="right";Bs=!sn&&tt}return{fixLeft:po,fixRight:ko,lastFixLeft:Bo,firstFixRight:Bs,lastFixRight:Vo,firstFixLeft:Co,isSticky:it.isSticky}}var Lr=dt.createContext({}),Tt=Lr;function Ze(Un){var xi=Un.className,kn=Un.index,it=Un.children,fr=Un.colSpan,xr=fr===void 0?1:fr,Rr=Un.rowSpan,po=Un.align,ko=qt(Ye,["prefixCls","direction"]),Bo=ko.prefixCls,Bs=ko.direction,Vo=dt.useContext(Tt),Co=Vo.scrollColumnIndex,vo=Vo.stickyOffsets,fs=Vo.flattenColumns,tt=kn+xr-1,Xt=tt+1===Co?xr+1:xr,Dt=Ti(kn,kn+Xt-1,fs,vo,Bs);return dt.createElement(en,(0,nt.Z)({className:xi,index:kn,component:"td",prefixCls:Bo,record:null,dataIndex:null,align:po,colSpan:Xt,rowSpan:Rr,render:function(){return it}},Dt))}var Ge=je(62646),rt=["children"];function Ft(Un){var xi=Un.children,kn=(0,Ge.Z)(Un,rt);return dt.createElement("tr",kn,xi)}function qe(Un){var xi=Un.children;return xi}qe.Row=Ft,qe.Cell=Ze;var mt=qe;function An(Un){var xi=Un.children,kn=Un.stickyOffsets,it=Un.flattenColumns,fr=qt(Ye,"prefixCls"),xr=it.length-1,Rr=it[xr],po=dt.useMemo(function(){return{stickyOffsets:kn,flattenColumns:it,scrollColumnIndex:Rr!=null&&Rr.scrollbar?xr:null}},[Rr,it,xr,kn]);return dt.createElement(Tt.Provider,{value:po},dt.createElement("tfoot",{className:"".concat(fr,"-summary")},xi))}var Gn=Te(An),fo=mt,qn=je(29301),Kn=je(24514),oi=je(75152),Wi=je(26112);function Nr(Un,xi,kn,it,fr,xr,Rr){Un.push({record:xi,indent:kn,index:Rr});var po=xr(xi),ko=fr==null?void 0:fr.has(po);if(xi&&Array.isArray(xi[it])&&ko)for(var Bo=0;Bo<xi[it].length;Bo+=1)Nr(Un,xi[it][Bo],kn+1,it,fr,xr,Bo)}function Uo(Un,xi,kn,it){var fr=dt.useMemo(function(){if(kn!=null&&kn.size){for(var xr=[],Rr=0;Rr<(Un==null?void 0:Un.length);Rr+=1){var po=Un[Rr];Nr(xr,po,0,xi,kn,it,Rr)}return xr}return Un==null?void 0:Un.map(function(ko,Bo){return{record:ko,indent:0,index:Bo}})},[Un,xi,kn,it]);return fr}function Vr(Un,xi,kn,it){var fr=qt(Ye,["prefixCls","fixedInfoList","flattenColumns","expandableType","expandRowByClick","onTriggerExpand","rowClassName","expandedRowClassName","indentSize","expandIcon","expandedRowRender","expandIconColumnIndex","expandedKeys","childrenColumnName","rowExpandable","onRow"]),xr=fr.flattenColumns,Rr=fr.expandableType,po=fr.expandedKeys,ko=fr.childrenColumnName,Bo=fr.onTriggerExpand,Bs=fr.rowExpandable,Vo=fr.onRow,Co=fr.expandRowByClick,vo=fr.rowClassName,fs=Rr==="nest",tt=Rr==="row"&&(!Bs||Bs(Un)),Xt=tt||fs,Dt=po&&po.has(xi),Kt=ko&&Un&&Un[ko],sn=(0,Mi.zX)(Bo),Vn=Vo==null?void 0:Vo(Un,kn),Qn=Vn==null?void 0:Vn.onClick,zn=function(cr){Co&&Xt&&Bo(Un,cr);for(var $r=arguments.length,Yt=new Array($r>1?$r-1:0),er=1;er<$r;er++)Yt[er-1]=arguments[er];Qn==null||Qn.apply(void 0,[cr].concat(Yt))},Oi;typeof vo=="string"?Oi=vo:typeof vo=="function"&&(Oi=vo(Un,kn,it));var Qi=At(xr);return(0,Et.Z)((0,Et.Z)({},fr),{},{columnsKey:Qi,nestExpandable:fs,expanded:Dt,hasNestChildren:Kt,record:Un,onTriggerExpand:sn,rowSupportExpand:tt,expandable:Xt,rowProps:(0,Et.Z)((0,Et.Z)({},Vn),{},{className:Yn()(Oi,Vn==null?void 0:Vn.className),onClick:zn})})}function lo(Un){var xi=Un.prefixCls,kn=Un.children,it=Un.component,fr=Un.cellComponent,xr=Un.className,Rr=Un.expanded,po=Un.colSpan,ko=Un.isEmpty,Bo=qt(Ye,["scrollbarSize","fixHeader","fixColumn","componentWidth","horizonScroll"]),Bs=Bo.scrollbarSize,Vo=Bo.fixHeader,Co=Bo.fixColumn,vo=Bo.componentWidth,fs=Bo.horizonScroll,tt=kn;return(ko?fs&&vo:Co)&&(tt=dt.createElement("div",{style:{width:vo-(Vo&&!ko?Bs:0),position:"sticky",left:0,overflow:"hidden"},className:"".concat(xi,"-expanded-row-fixed")},tt)),dt.createElement(it,{className:xr,style:{display:Rr?null:"none"}},dt.createElement(en,{component:fr,prefixCls:xi,colSpan:po},tt))}var Rn=lo;function $n(Un){var xi=Un.prefixCls,kn=Un.record,it=Un.onExpand,fr=Un.expanded,xr=Un.expandable,Rr="".concat(xi,"-row-expand-icon");if(!xr)return dt.createElement("span",{className:Yn()(Rr,"".concat(xi,"-row-spaced"))});var po=function(Bo){it(kn,Bo),Bo.stopPropagation()};return dt.createElement("span",{className:Yn()(Rr,(0,$t.Z)((0,$t.Z)({},"".concat(xi,"-row-expanded"),fr),"".concat(xi,"-row-collapsed"),!fr)),onClick:po})}function pi(Un,xi,kn){var it=[];function fr(xr){(xr||[]).forEach(function(Rr,po){it.push(xi(Rr,po)),fr(Rr[kn])})}return fr(Un),it}function Ai(Un,xi,kn,it){return typeof Un=="string"?Un:typeof Un=="function"?Un(xi,kn,it):""}function Cr(Un,xi,kn,it,fr){var xr=Un.record,Rr=Un.prefixCls,po=Un.columnsKey,ko=Un.fixedInfoList,Bo=Un.expandIconColumnIndex,Bs=Un.nestExpandable,Vo=Un.indentSize,Co=Un.expandIcon,vo=Un.expanded,fs=Un.hasNestChildren,tt=Un.onTriggerExpand,Xt=po[kn],Dt=ko[kn],Kt;kn===(Bo||0)&&Bs&&(Kt=dt.createElement(dt.Fragment,null,dt.createElement("span",{style:{paddingLeft:"".concat(Vo*it,"px")},className:"".concat(Rr,"-row-indent indent-level-").concat(it)}),Co({prefixCls:Rr,expanded:vo,expandable:fs,record:xr,onExpand:tt})));var sn;return xi.onCell&&(sn=xi.onCell(xr,fr)),{key:Xt,fixedInfo:Dt,appendCellNode:Kt,additionalCellProps:sn||{}}}function zr(Un){var xi=Un.className,kn=Un.style,it=Un.record,fr=Un.index,xr=Un.renderIndex,Rr=Un.rowKey,po=Un.indent,ko=po===void 0?0:po,Bo=Un.rowComponent,Bs=Un.cellComponent,Vo=Un.scopeCellComponent,Co=Vr(it,Rr,fr,ko),vo=Co.prefixCls,fs=Co.flattenColumns,tt=Co.expandedRowClassName,Xt=Co.expandedRowRender,Dt=Co.rowProps,Kt=Co.expanded,sn=Co.rowSupportExpand,Vn=dt.useRef(!1);Vn.current||(Vn.current=Kt);var Qn=Ai(tt,it,fr,ko),zn=dt.createElement(Bo,(0,nt.Z)({},Dt,{"data-row-key":Rr,className:Yn()(xi,"".concat(vo,"-row"),"".concat(vo,"-row-level-").concat(ko),Dt==null?void 0:Dt.className,(0,$t.Z)({},Qn,ko>=1)),style:(0,Et.Z)((0,Et.Z)({},kn),Dt==null?void 0:Dt.style)}),fs.map(function(ri,cr){var $r=ri.render,Yt=ri.dataIndex,er=ri.className,sr=Cr(Co,ri,cr,ko,fr),Ki=sr.key,lr=sr.fixedInfo,vr=sr.appendCellNode,Qr=sr.additionalCellProps;return dt.createElement(en,(0,nt.Z)({className:er,ellipsis:ri.ellipsis,align:ri.align,scope:ri.rowScope,component:ri.rowScope?Vo:Bs,prefixCls:vo,key:Ki,record:it,index:fr,renderIndex:xr,dataIndex:Yt,render:$r,shouldCellUpdate:ri.shouldCellUpdate},lr,{appendNode:vr,additionalProps:Qr}))})),Oi;if(sn&&(Vn.current||Kt)){var Qi=Xt(it,fr,ko+1,Kt);Oi=dt.createElement(Rn,{expanded:Kt,className:Yn()("".concat(vo,"-expanded-row"),"".concat(vo,"-expanded-row-level-").concat(ko+1),Qn),prefixCls:vo,component:Bo,cellComponent:Bs,colSpan:fs.length,isEmpty:!1},Qi)}return dt.createElement(dt.Fragment,null,zn,Oi)}var ao=Te(zr);function Wr(Un){var xi=Un.columnKey,kn=Un.onColumnResize,it=dt.useRef();return(0,Qt.Z)(function(){it.current&&kn(xi,it.current.offsetWidth)},[]),dt.createElement(qn.Z,{data:xi},dt.createElement("td",{ref:it,style:{padding:0,border:0,height:0}},dt.createElement("div",{style:{height:0,overflow:"hidden"}},"\xA0")))}var Or=je(29194);function ir(Un){var xi=Un.prefixCls,kn=Un.columnsKey,it=Un.onColumnResize,fr=dt.useRef(null);return dt.createElement("tr",{"aria-hidden":"true",className:"".concat(xi,"-measure-row"),style:{height:0,fontSize:0},ref:fr},dt.createElement(qn.Z.Collection,{onBatchResize:function(Rr){(0,Or.Z)(fr.current)&&Rr.forEach(function(po){var ko=po.data,Bo=po.size;it(ko,Bo.offsetWidth)})}},kn.map(function(xr){return dt.createElement(Wr,{key:xr,columnKey:xr,onColumnResize:it})})))}function ss(Un){var xi=Un.data,kn=Un.measureColumnWidth,it=qt(Ye,["prefixCls","getComponent","onColumnResize","flattenColumns","getRowKey","expandedKeys","childrenColumnName","emptyNode"]),fr=it.prefixCls,xr=it.getComponent,Rr=it.onColumnResize,po=it.flattenColumns,ko=it.getRowKey,Bo=it.expandedKeys,Bs=it.childrenColumnName,Vo=it.emptyNode,Co=Uo(xi,Bs,Bo,ko),vo=dt.useRef({renderWithProps:!1}),fs=xr(["body","wrapper"],"tbody"),tt=xr(["body","row"],"tr"),Xt=xr(["body","cell"],"td"),Dt=xr(["body","cell"],"th"),Kt;xi.length?Kt=Co.map(function(Vn,Qn){var zn=Vn.record,Oi=Vn.indent,Qi=Vn.index,ri=ko(zn,Qn);return dt.createElement(ao,{key:ri,rowKey:ri,record:zn,index:Qn,renderIndex:Qi,rowComponent:tt,cellComponent:Xt,scopeCellComponent:Dt,indent:Oi})}):Kt=dt.createElement(Rn,{expanded:!0,className:"".concat(fr,"-placeholder"),prefixCls:fr,component:tt,cellComponent:Xt,colSpan:po.length,isEmpty:!0},Vo);var sn=At(po);return dt.createElement(In.Provider,{value:vo.current},dt.createElement(fs,{className:"".concat(fr,"-tbody")},kn&&dt.createElement(ir,{prefixCls:fr,columnsKey:sn,onColumnResize:Rr}),Kt))}var Us=Te(ss),as=je(54451),ls=["columnType"];function La(Un){for(var xi=Un.colWidths,kn=Un.columns,it=Un.columCount,fr=qt(Ye,["tableLayout"]),xr=fr.tableLayout,Rr=[],po=it||kn.length,ko=!1,Bo=po-1;Bo>=0;Bo-=1){var Bs=xi[Bo],Vo=kn&&kn[Bo],Co=void 0,vo=void 0;if(Vo&&(Co=Vo[as.v],xr==="auto"&&(vo=Vo.minWidth)),Bs||vo||Co||ko){var fs=Co||{},tt=fs.columnType,Xt=(0,Ge.Z)(fs,ls);Rr.unshift(dt.createElement("col",(0,nt.Z)({key:Bo,style:{width:Bs,minWidth:vo}},Xt))),ko=!0}}return dt.createElement("colgroup",null,Rr)}var Fs=La,ha=je(95190),Al=["className","noData","columns","flattenColumns","colWidths","columCount","stickyOffsets","direction","fixHeader","stickyTopOffset","stickyBottomOffset","stickyClassName","onScroll","maxContentScroll","children"];function We(Un,xi){return(0,dt.useMemo)(function(){for(var kn=[],it=0;it<xi;it+=1){var fr=Un[it];if(fr!==void 0)kn[it]=fr;else return null}return kn},[Un.join("_"),xi])}var ui=dt.forwardRef(function(Un,xi){var kn=Un.className,it=Un.noData,fr=Un.columns,xr=Un.flattenColumns,Rr=Un.colWidths,po=Un.columCount,ko=Un.stickyOffsets,Bo=Un.direction,Bs=Un.fixHeader,Vo=Un.stickyTopOffset,Co=Un.stickyBottomOffset,vo=Un.stickyClassName,fs=Un.onScroll,tt=Un.maxContentScroll,Xt=Un.children,Dt=(0,Ge.Z)(Un,Al),Kt=qt(Ye,["prefixCls","scrollbarSize","isSticky","getComponent"]),sn=Kt.prefixCls,Vn=Kt.scrollbarSize,Qn=Kt.isSticky,zn=Kt.getComponent,Oi=zn(["header","table"],"table"),Qi=Qn&&!Bs?0:Vn,ri=dt.useRef(null),cr=dt.useCallback(function(Qr){(0,ln.mH)(xi,Qr),(0,ln.mH)(ri,Qr)},[]);dt.useEffect(function(){var Qr;function Mr(Hr){var Zr=Hr,mi=Zr.currentTarget,cs=Zr.deltaX;cs&&(fs({currentTarget:mi,scrollLeft:mi.scrollLeft+cs}),Hr.preventDefault())}return(Qr=ri.current)===null||Qr===void 0||Qr.addEventListener("wheel",Mr,{passive:!1}),function(){var Hr;(Hr=ri.current)===null||Hr===void 0||Hr.removeEventListener("wheel",Mr)}},[]);var $r=dt.useMemo(function(){return xr.every(function(Qr){return Qr.width})},[xr]),Yt=xr[xr.length-1],er={fixed:Yt?Yt.fixed:null,scrollbar:!0,onHeaderCell:function(){return{className:"".concat(sn,"-cell-scrollbar")}}},sr=(0,dt.useMemo)(function(){return Qi?[].concat((0,ha.Z)(fr),[er]):fr},[Qi,fr]),Ki=(0,dt.useMemo)(function(){return Qi?[].concat((0,ha.Z)(xr),[er]):xr},[Qi,xr]),lr=(0,dt.useMemo)(function(){var Qr=ko.right,Mr=ko.left;return(0,Et.Z)((0,Et.Z)({},ko),{},{left:Bo==="rtl"?[].concat((0,ha.Z)(Mr.map(function(Hr){return Hr+Qi})),[0]):Mr,right:Bo==="rtl"?Qr:[].concat((0,ha.Z)(Qr.map(function(Hr){return Hr+Qi})),[0]),isSticky:Qn})},[Qi,ko,Qn]),vr=We(Rr,po);return dt.createElement("div",{style:(0,Et.Z)({overflow:"hidden"},Qn?{top:Vo,bottom:Co}:{}),ref:cr,className:Yn()(kn,(0,$t.Z)({},vo,!!vo))},dt.createElement(Oi,{style:{tableLayout:"fixed",visibility:it||vr?null:"hidden"}},(!it||!tt||$r)&&dt.createElement(Fs,{colWidths:vr?[].concat((0,ha.Z)(vr),[Qi]):[],columCount:po+1,columns:Ki}),Xt((0,Et.Z)((0,Et.Z)({},Dt),{},{stickyOffsets:lr,columns:sr,flattenColumns:Ki}))))}),Si=dt.memo(ui),ms=function(xi){var kn=xi.cells,it=xi.stickyOffsets,fr=xi.flattenColumns,xr=xi.rowComponent,Rr=xi.cellComponent,po=xi.onHeaderRow,ko=xi.index,Bo=qt(Ye,["prefixCls","direction"]),Bs=Bo.prefixCls,Vo=Bo.direction,Co;po&&(Co=po(kn.map(function(fs){return fs.column}),ko));var vo=At(kn.map(function(fs){return fs.column}));return dt.createElement(xr,Co,kn.map(function(fs,tt){var Xt=fs.column,Dt=Ti(fs.colStart,fs.colEnd,fr,it,Vo),Kt;return Xt&&Xt.onHeaderCell&&(Kt=fs.column.onHeaderCell(Xt)),dt.createElement(en,(0,nt.Z)({},fs,{scope:Xt.title?fs.colSpan>1?"colgroup":"col":null,ellipsis:Xt.ellipsis,align:Xt.align,component:Rr,prefixCls:Bs,key:vo[tt]},Dt,{additionalProps:Kt,rowType:"header"}))}))},Po=ms;function Xr(Un){var xi=[];function kn(Rr,po){var ko=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;xi[ko]=xi[ko]||[];var Bo=po,Bs=Rr.filter(Boolean).map(function(Vo){var Co={key:Vo.key,className:Vo.className||"",children:Vo.title,column:Vo,colStart:Bo},vo=1,fs=Vo.children;return fs&&fs.length>0&&(vo=kn(fs,Bo,ko+1).reduce(function(tt,Xt){return tt+Xt},0),Co.hasSubColumns=!0),"colSpan"in Vo&&(vo=Vo.colSpan),"rowSpan"in Vo&&(Co.rowSpan=Vo.rowSpan),Co.colSpan=vo,Co.colEnd=Co.colStart+vo-1,xi[ko].push(Co),Bo+=vo,vo});return Bs}kn(Un,0);for(var it=xi.length,fr=function(po){xi[po].forEach(function(ko){!("rowSpan"in ko)&&!ko.hasSubColumns&&(ko.rowSpan=it-po)})},xr=0;xr<it;xr+=1)fr(xr);return xi}var si=function(xi){var kn=xi.stickyOffsets,it=xi.columns,fr=xi.flattenColumns,xr=xi.onHeaderRow,Rr=qt(Ye,["prefixCls","getComponent"]),po=Rr.prefixCls,ko=Rr.getComponent,Bo=dt.useMemo(function(){return Xr(it)},[it]),Bs=ko(["header","wrapper"],"thead"),Vo=ko(["header","row"],"tr"),Co=ko(["header","cell"],"th");return dt.createElement(Bs,{className:"".concat(po,"-thead")},Bo.map(function(vo,fs){var tt=dt.createElement(Po,{key:fs,flattenColumns:fr,cells:vo,stickyOffsets:kn,rowComponent:Vo,cellComponent:Co,onHeaderRow:xr,index:fs});return tt}))},Hi=Te(si),or=je(97347);function Fn(Un,xi,kn){var it=(0,as.g)(Un),fr=it.expandIcon,xr=it.expandedRowKeys,Rr=it.defaultExpandedRowKeys,po=it.defaultExpandAllRows,ko=it.expandedRowRender,Bo=it.onExpand,Bs=it.onExpandedRowsChange,Vo=it.childrenColumnName,Co=fr||$n,vo=Vo||"children",fs=dt.useMemo(function(){return ko?"row":Un.expandable&&Un.internalHooks===Me.R&&Un.expandable.__PARENT_RENDER_ICON__||xi.some(function(Qn){return Qn&&(0,xt.Z)(Qn)==="object"&&Qn[vo]})?"nest":!1},[!!ko,xi]),tt=dt.useState(function(){return Rr||(po?pi(xi,kn,vo):[])}),Xt=(0,yt.Z)(tt,2),Dt=Xt[0],Kt=Xt[1],sn=dt.useMemo(function(){return new Set(xr||Dt||[])},[xr,Dt]),Vn=dt.useCallback(function(Qn){var zn=kn(Qn,xi.indexOf(Qn)),Oi,Qi=sn.has(zn);Qi?(sn.delete(zn),Oi=(0,ha.Z)(sn)):Oi=[].concat((0,ha.Z)(sn),[zn]),Kt(Oi),Bo&&Bo(!Qi,Qn),Bs&&Bs(Oi)},[kn,sn,xi,Bo,Bs]);return[it,fs,sn,Co,vo,Vn]}function vn(Un,xi,kn){var it=Un.map(function(fr,xr){return Ti(xr,xr,Un,xi,kn)});return(0,gn.Z)(function(){return it},[it],function(fr,xr){return!(0,It.Z)(fr,xr)})}function pn(Un){var xi=(0,dt.useRef)(Un),kn=(0,dt.useState)({}),it=(0,yt.Z)(kn,2),fr=it[1],xr=(0,dt.useRef)(null),Rr=(0,dt.useRef)([]);function po(ko){Rr.current.push(ko);var Bo=Promise.resolve();xr.current=Bo,Bo.then(function(){if(xr.current===Bo){var Bs=Rr.current,Vo=xi.current;Rr.current=[],Bs.forEach(function(Co){xi.current=Co(xi.current)}),xr.current=null,Vo!==xi.current&&fr({})}})}return(0,dt.useEffect)(function(){return function(){xr.current=null}},[]),[xi.current,po]}function Ur(Un){var xi=(0,dt.useRef)(Un||null),kn=(0,dt.useRef)();function it(){window.clearTimeout(kn.current)}function fr(Rr){xi.current=Rr,it(),kn.current=window.setTimeout(function(){xi.current=null,kn.current=void 0},100)}function xr(){return xi.current}return(0,dt.useEffect)(function(){return it},[]),[fr,xr]}function Ho(){var Un=dt.useState(-1),xi=(0,yt.Z)(Un,2),kn=xi[0],it=xi[1],fr=dt.useState(-1),xr=(0,yt.Z)(fr,2),Rr=xr[0],po=xr[1],ko=dt.useCallback(function(Bo,Bs){it(Bo),po(Bs)},[]);return[kn,Rr,ko]}var bo=je(47273),ji=(0,bo.Z)()?window:null;function co(Un,xi){var kn=(0,xt.Z)(Un)==="object"?Un:{},it=kn.offsetHeader,fr=it===void 0?0:it,xr=kn.offsetSummary,Rr=xr===void 0?0:xr,po=kn.offsetScroll,ko=po===void 0?0:po,Bo=kn.getContainer,Bs=Bo===void 0?function(){return ji}:Bo,Vo=Bs()||ji,Co=!!Un;return dt.useMemo(function(){return{isSticky:Co,stickyClassName:Co?"".concat(xi,"-sticky-holder"):"",offsetHeader:fr,offsetSummary:Rr,offsetScroll:ko,container:Vo}},[Co,ko,fr,Rr,xi,Vo])}function Oa(Un,xi,kn){var it=(0,dt.useMemo)(function(){var fr=xi.length,xr=function(Bo,Bs,Vo){for(var Co=[],vo=0,fs=Bo;fs!==Bs;fs+=Vo)Co.push(vo),xi[fs].fixed&&(vo+=Un[fs]||0);return Co},Rr=xr(0,fr,1),po=xr(fr-1,-1,-1).reverse();return kn==="rtl"?{left:po,right:Rr}:{left:Rr,right:po}},[Un,xi,kn]);return it}var aa=Oa;function pa(Un){var xi=Un.className,kn=Un.children;return dt.createElement("div",{className:xi},kn)}var hn=pa,Ar=je(8224),Xo=je(16089),al=je(76846);function Ji(Un){var xi=(0,al.bn)(Un),kn=xi.getBoundingClientRect(),it=document.documentElement;return{left:kn.left+(window.pageXOffset||it.scrollLeft)-(it.clientLeft||document.body.clientLeft||0),top:kn.top+(window.pageYOffset||it.scrollTop)-(it.clientTop||document.body.clientTop||0)}}var Fo=function(xi,kn){var it,fr,xr=xi.scrollBodyRef,Rr=xi.onScroll,po=xi.offsetScroll,ko=xi.container,Bo=xi.direction,Bs=qt(Ye,"prefixCls"),Vo=((it=xr.current)===null||it===void 0?void 0:it.scrollWidth)||0,Co=((fr=xr.current)===null||fr===void 0?void 0:fr.clientWidth)||0,vo=Vo&&Co*(Co/Vo),fs=dt.useRef(),tt=pn({scrollLeft:0,isHiddenScrollBar:!0}),Xt=(0,yt.Z)(tt,2),Dt=Xt[0],Kt=Xt[1],sn=dt.useRef({delta:0,x:0}),Vn=dt.useState(!1),Qn=(0,yt.Z)(Vn,2),zn=Qn[0],Oi=Qn[1],Qi=dt.useRef(null);dt.useEffect(function(){return function(){Xo.Z.cancel(Qi.current)}},[]);var ri=function(){Oi(!1)},cr=function(Ki){Ki.persist(),sn.current.delta=Ki.pageX-Dt.scrollLeft,sn.current.x=0,Oi(!0),Ki.preventDefault()},$r=function(Ki){var lr,vr=Ki||((lr=window)===null||lr===void 0?void 0:lr.event),Qr=vr.buttons;if(!zn||Qr===0){zn&&Oi(!1);return}var Mr=sn.current.x+Ki.pageX-sn.current.x-sn.current.delta,Hr=Bo==="rtl";Mr=Math.max(Hr?vo-Co:0,Math.min(Hr?0:Co-vo,Mr));var Zr=!Hr||Math.abs(Mr)+Math.abs(vo)<Co;Zr&&(Rr({scrollLeft:Mr/Co*(Vo+2)}),sn.current.x=Ki.pageX)},Yt=function(){Xo.Z.cancel(Qi.current),Qi.current=(0,Xo.Z)(function(){if(xr.current){var Ki=Ji(xr.current).top,lr=Ki+xr.current.offsetHeight,vr=ko===window?document.documentElement.scrollTop+window.innerHeight:Ji(ko).top+ko.clientHeight;lr-(0,oi.Z)()<=vr||Ki>=vr-po?Kt(function(Qr){return(0,Et.Z)((0,Et.Z)({},Qr),{},{isHiddenScrollBar:!0})}):Kt(function(Qr){return(0,Et.Z)((0,Et.Z)({},Qr),{},{isHiddenScrollBar:!1})})}})},er=function(Ki){Kt(function(lr){return(0,Et.Z)((0,Et.Z)({},lr),{},{scrollLeft:Ki/Vo*Co||0})})};return dt.useImperativeHandle(kn,function(){return{setScrollLeft:er,checkScrollBarVisible:Yt}}),dt.useEffect(function(){var sr=(0,Ar.Z)(document.body,"mouseup",ri,!1),Ki=(0,Ar.Z)(document.body,"mousemove",$r,!1);return Yt(),function(){sr.remove(),Ki.remove()}},[vo,zn]),dt.useEffect(function(){if(xr.current){for(var sr=[],Ki=(0,al.bn)(xr.current);Ki;)sr.push(Ki),Ki=Ki.parentElement;return sr.forEach(function(lr){return lr.addEventListener("scroll",Yt,!1)}),window.addEventListener("resize",Yt,!1),window.addEventListener("scroll",Yt,!1),ko.addEventListener("scroll",Yt,!1),function(){sr.forEach(function(lr){return lr.removeEventListener("scroll",Yt)}),window.removeEventListener("resize",Yt),window.removeEventListener("scroll",Yt),ko.removeEventListener("scroll",Yt)}}},[ko]),dt.useEffect(function(){Dt.isHiddenScrollBar||Kt(function(sr){var Ki=xr.current;return Ki?(0,Et.Z)((0,Et.Z)({},sr),{},{scrollLeft:Ki.scrollLeft/Ki.scrollWidth*Ki.clientWidth}):sr})},[Dt.isHiddenScrollBar]),Vo<=Co||!vo||Dt.isHiddenScrollBar?null:dt.createElement("div",{style:{height:(0,oi.Z)(),width:Co,bottom:po},className:"".concat(Bs,"-sticky-scroll")},dt.createElement("div",{onMouseDown:cr,ref:fs,className:Yn()("".concat(Bs,"-sticky-scroll-bar"),(0,$t.Z)({},"".concat(Bs,"-sticky-scroll-bar-active"),zn)),style:{width:"".concat(vo,"px"),transform:"translate3d(".concat(Dt.scrollLeft,"px, 0, 0)")}}))},wa=dt.forwardRef(Fo);function xl(Un){return null}var Ll=xl;function ys(Un){return null}var As=ys,Jo="rc-table",da=[],us={};function Sa(){return"No Data"}function zi(Un,xi){var kn=(0,Et.Z)({rowKey:"key",prefixCls:Jo,emptyText:Sa},Un),it=kn.prefixCls,fr=kn.className,xr=kn.rowClassName,Rr=kn.style,po=kn.data,ko=kn.rowKey,Bo=kn.scroll,Bs=kn.tableLayout,Vo=kn.direction,Co=kn.title,vo=kn.footer,fs=kn.summary,tt=kn.caption,Xt=kn.id,Dt=kn.showHeader,Kt=kn.components,sn=kn.emptyText,Vn=kn.onRow,Qn=kn.onHeaderRow,zn=kn.onScroll,Oi=kn.internalHooks,Qi=kn.transformColumns,ri=kn.internalRefs,cr=kn.tailor,$r=kn.getContainerWidth,Yt=kn.sticky,er=kn.rowHoverable,sr=er===void 0?!0:er,Ki=po||da,lr=!!Ki.length,vr=Oi===Me.R,Qr=dt.useCallback(function(gl,Xl){return(0,Jn.Z)(Kt,gl)||Xl},[Kt]),Mr=dt.useMemo(function(){return typeof ko=="function"?ko:function(gl){var Xl=gl&&gl[ko];return Xl}},[ko]),Hr=Qr(["body"]),Zr=Ho(),mi=(0,yt.Z)(Zr,3),cs=mi[0],Hs=mi[1],js=mi[2],yr=Fn(kn,Ki,Mr),yo=(0,yt.Z)(yr,6),es=yo[0],Ts=yo[1],Zs=yo[2],Ls=yo[3],Ii=yo[4],Cs=yo[5],Is=Bo==null?void 0:Bo.x,Pa=dt.useState(0),Gs=(0,yt.Z)(Pa,2),qo=Gs[0],eo=Gs[1],bs=(0,or.Z)((0,Et.Z)((0,Et.Z)((0,Et.Z)({},kn),es),{},{expandable:!!es.expandedRowRender,columnTitle:es.columnTitle,expandedKeys:Zs,getRowKey:Mr,onTriggerExpand:Cs,expandIcon:Ls,expandIconColumnIndex:es.expandIconColumnIndex,direction:Vo,scrollWidth:vr&&cr&&typeof Is=="number"?Is:null,clientWidth:qo}),vr?Qi:null),Ta=(0,yt.Z)(bs,4),Ms=Ta[0],ws=Ta[1],Ra=Ta[2],Aa=Ta[3],ga=Ra!=null?Ra:Is,ol=dt.useMemo(function(){return{columns:Ms,flattenColumns:ws}},[Ms,ws]),fl=dt.useRef(),gu=dt.useRef(),Ys=dt.useRef(),Cu=dt.useRef();dt.useImperativeHandle(xi,function(){return{nativeElement:fl.current,scrollTo:function(Xl){var oc;if(Ys.current instanceof HTMLElement){var Ac=Xl.index,gr=Xl.top,Hh=Xl.key;if(_i(gr)){var Cf;(Cf=Ys.current)===null||Cf===void 0||Cf.scrollTo({top:gr})}else{var Rl,Va=Hh!=null?Hh:Mr(Ki[Ac]);(Rl=Ys.current.querySelector('[data-row-key="'.concat(Va,'"]')))===null||Rl===void 0||Rl.scrollIntoView()}}else(oc=Ys.current)!==null&&oc!==void 0&&oc.scrollTo&&Ys.current.scrollTo(Xl)}}});var Wo=dt.useRef(),Zu=dt.useState(!1),Ml=(0,yt.Z)(Zu,2),au=Ml[0],Cl=Ml[1],ll=dt.useState(!1),El=(0,yt.Z)(ll,2),Bl=El[0],Xu=El[1],Dc=dt.useState(new Map),eu=(0,yt.Z)(Dc,2),Yc=eu[0],Tl=eu[1],pl=At(ws),el=pl.map(function(gl){return Yc.get(gl)}),ru=dt.useMemo(function(){return el},[el.join("_")]),bl=aa(ru,ws,Vo),mu=Bo&&Hn(Bo.y),hs=Bo&&Hn(ga)||!!es.fixed,ps=hs&&ws.some(function(gl){var Xl=gl.fixed;return Xl}),kl=dt.useRef(),Vs=co(Yt,it),Br=Vs.isSticky,Iu=Vs.offsetHeader,_t=Vs.offsetSummary,ai=Vs.offsetScroll,zh=Vs.stickyClassName,ch=Vs.container,rc=dt.useMemo(function(){return fs==null?void 0:fs(Ki)},[fs,Ki]),Ec=(mu||Br)&&dt.isValidElement(rc)&&rc.type===mt&&rc.props.fixed,hh,Rc,od;mu&&(Rc={overflowY:lr?"scroll":"auto",maxHeight:Bo.y}),hs&&(hh={overflowX:"auto"},mu||(Rc={overflowY:"hidden"}),od={width:ga===!0?"auto":ga,minWidth:"100%"});var ku=dt.useCallback(function(gl,Xl){Tl(function(oc){if(oc.get(gl)!==Xl){var Ac=new Map(oc);return Ac.set(gl,Xl),Ac}return oc})},[]),$s=Ur(null),zc=(0,yt.Z)($s,2),_c=zc[0],Au=zc[1];function tl(gl,Xl){Xl&&(typeof Xl=="function"?Xl(gl):Xl.scrollLeft!==gl&&(Xl.scrollLeft=gl,Xl.scrollLeft!==gl&&setTimeout(function(){Xl.scrollLeft=gl},0)))}var Yu=(0,Jt.Z)(function(gl){var Xl=gl.currentTarget,oc=gl.scrollLeft,Ac=Vo==="rtl",gr=typeof oc=="number"?oc:Xl.scrollLeft,Hh=Xl||us;if(!Au()||Au()===Hh){var Cf;_c(Hh),tl(gr,gu.current),tl(gr,Ys.current),tl(gr,Wo.current),tl(gr,(Cf=kl.current)===null||Cf===void 0?void 0:Cf.setScrollLeft)}var Rl=Xl||gu.current;if(Rl){var Va=vr&&cr&&typeof ga=="number"?ga:Rl.scrollWidth,Nc=Rl.clientWidth;if(Va===Nc){Cl(!1),Xu(!1);return}Ac?(Cl(-gr<Va-Nc),Xu(-gr>0)):(Cl(gr>0),Xu(gr<Va-Nc))}}),Ch=(0,Jt.Z)(function(gl){Yu(gl),zn==null||zn(gl)}),Du=function(){if(hs&&Ys.current){var Xl;Yu({currentTarget:(0,al.bn)(Ys.current),scrollLeft:(Xl=Ys.current)===null||Xl===void 0?void 0:Xl.scrollLeft})}else Cl(!1),Xu(!1)},Eh=function(Xl){var oc,Ac=Xl.width;(oc=kl.current)===null||oc===void 0||oc.checkScrollBarVisible();var gr=fl.current?fl.current.offsetWidth:Ac;vr&&$r&&fl.current&&(gr=$r(fl.current,gr)||gr),gr!==qo&&(Du(),eo(gr))},Ju=dt.useRef(!1);dt.useEffect(function(){Ju.current&&Du()},[hs,po,Ms.length]),dt.useEffect(function(){Ju.current=!0},[]);var xf=dt.useState(0),ul=(0,yt.Z)(xf,2),Ka=ul[0],Dl=ul[1],Ol=dt.useState(!0),Ou=(0,yt.Z)(Ol,2),Wu=Ou[0],Jl=Ou[1];(0,Qt.Z)(function(){(!cr||!vr)&&(Ys.current instanceof Element?Dl((0,oi.o)(Ys.current).width):Dl((0,oi.o)(Cu.current).width)),Jl((0,Kn.G)("position","sticky"))},[]),dt.useEffect(function(){vr&&ri&&(ri.body.current=Ys.current)});var tf=dt.useCallback(function(gl){return dt.createElement(dt.Fragment,null,dt.createElement(Hi,gl),Ec==="top"&&dt.createElement(Gn,gl,rc))},[Ec,rc]),la=dt.useCallback(function(gl){return dt.createElement(Gn,gl,rc)},[rc]),rg=Qr(["table"],"table"),sl=dt.useMemo(function(){return Bs||(ps?ga==="max-content"?"auto":"fixed":mu||Br||ws.some(function(gl){var Xl=gl.ellipsis;return Xl})?"fixed":"auto")},[mu,ps,ws,Bs,Br]),Uh,Jh={colWidths:ru,columCount:ws.length,stickyOffsets:bl,onHeaderRow:Qn,fixHeader:mu,scroll:Bo},lu=dt.useMemo(function(){return lr?null:typeof sn=="function"?sn():sn},[lr,sn]),lp=dt.createElement(Us,{data:Ki,measureColumnWidth:mu||hs||Br}),wf=dt.createElement(Fs,{colWidths:ws.map(function(gl){var Xl=gl.width;return Xl}),columns:ws}),qh=tt!=null?dt.createElement("caption",{className:"".concat(it,"-caption")},tt):void 0,Sf=(0,Wi.Z)(kn,{data:!0}),ql=(0,Wi.Z)(kn,{aria:!0});if(mu||Br){var _h;typeof Hr=="function"?(_h=Hr(Ki,{scrollbarSize:Ka,ref:Ys,onScroll:Yu}),Jh.colWidths=ws.map(function(gl,Xl){var oc=gl.width,Ac=Xl===ws.length-1?oc-Ka:oc;return typeof Ac=="number"&&!Number.isNaN(Ac)?Ac:0})):_h=dt.createElement("div",{style:(0,Et.Z)((0,Et.Z)({},hh),Rc),onScroll:Ch,ref:Ys,className:Yn()("".concat(it,"-body"))},dt.createElement(rg,(0,nt.Z)({style:(0,Et.Z)((0,Et.Z)({},od),{},{tableLayout:sl})},ql),qh,wf,lp,!Ec&&rc&&dt.createElement(Gn,{stickyOffsets:bl,flattenColumns:ws},rc)));var Hp=(0,Et.Z)((0,Et.Z)((0,Et.Z)({noData:!Ki.length,maxContentScroll:hs&&ga==="max-content"},Jh),ol),{},{direction:Vo,stickyClassName:zh,onScroll:Yu});Uh=dt.createElement(dt.Fragment,null,Dt!==!1&&dt.createElement(Si,(0,nt.Z)({},Hp,{stickyTopOffset:Iu,className:"".concat(it,"-header"),ref:gu}),tf),_h,Ec&&Ec!=="top"&&dt.createElement(Si,(0,nt.Z)({},Hp,{stickyBottomOffset:_t,className:"".concat(it,"-summary"),ref:Wo}),la),Br&&Ys.current&&Ys.current instanceof Element&&dt.createElement(wa,{ref:kl,offsetScroll:ai,scrollBodyRef:Ys,onScroll:Yu,container:ch,direction:Vo}))}else Uh=dt.createElement("div",{style:(0,Et.Z)((0,Et.Z)({},hh),Rc),className:Yn()("".concat(it,"-content")),onScroll:Yu,ref:Ys},dt.createElement(rg,(0,nt.Z)({style:(0,Et.Z)((0,Et.Z)({},od),{},{tableLayout:sl})},ql),qh,wf,Dt!==!1&&dt.createElement(Hi,(0,nt.Z)({},Jh,ol)),lp,rc&&dt.createElement(Gn,{stickyOffsets:bl,flattenColumns:ws},rc)));var Pf=dt.createElement("div",(0,nt.Z)({className:Yn()(it,fr,(0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)((0,$t.Z)({},"".concat(it,"-rtl"),Vo==="rtl"),"".concat(it,"-ping-left"),au),"".concat(it,"-ping-right"),Bl),"".concat(it,"-layout-fixed"),Bs==="fixed"),"".concat(it,"-fixed-header"),mu),"".concat(it,"-fixed-column"),ps),"".concat(it,"-fixed-column-gapped"),ps&&Aa),"".concat(it,"-scroll-horizontal"),hs),"".concat(it,"-has-fix-left"),ws[0]&&ws[0].fixed),"".concat(it,"-has-fix-right"),ws[ws.length-1]&&ws[ws.length-1].fixed==="right")),style:Rr,id:Xt,ref:fl},Sf),Co&&dt.createElement(hn,{className:"".concat(it,"-title")},Co(Ki)),dt.createElement("div",{ref:Cu,className:"".concat(it,"-container")},Uh),vo&&dt.createElement(hn,{className:"".concat(it,"-footer")},vo(Ki)));hs&&(Pf=dt.createElement(qn.Z,{onResize:Eh},Pf));var Vp=vn(ws,bl,Vo),nf=dt.useMemo(function(){return{scrollX:ga,prefixCls:it,getComponent:Qr,scrollbarSize:Ka,direction:Vo,fixedInfoList:Vp,isSticky:Br,supportSticky:Wu,componentWidth:qo,fixHeader:mu,fixColumn:ps,horizonScroll:hs,tableLayout:sl,rowClassName:xr,expandedRowClassName:es.expandedRowClassName,expandIcon:Ls,expandableType:Ts,expandRowByClick:es.expandRowByClick,expandedRowRender:es.expandedRowRender,onTriggerExpand:Cs,expandIconColumnIndex:es.expandIconColumnIndex,indentSize:es.indentSize,allColumnsFixedLeft:ws.every(function(gl){return gl.fixed==="left"}),emptyNode:lu,columns:Ms,flattenColumns:ws,onColumnResize:ku,hoverStartRow:cs,hoverEndRow:Hs,onHover:js,rowExpandable:es.rowExpandable,onRow:Vn,getRowKey:Mr,expandedKeys:Zs,childrenColumnName:Ii,rowHoverable:sr}},[ga,it,Qr,Ka,Vo,Vp,Br,Wu,qo,mu,ps,hs,sl,xr,es.expandedRowClassName,Ls,Ts,es.expandRowByClick,es.expandedRowRender,Cs,es.expandIconColumnIndex,es.indentSize,lu,Ms,ws,ku,cs,Hs,js,es.rowExpandable,Vn,Mr,Zs,Ii,sr]);return dt.createElement(Ye.Provider,{value:nf},Pf)}var fc=dt.forwardRef(zi);function iu(Un){return Ae(fc,Un)}var Gu=iu();Gu.EXPAND_COLUMN=Me.w,Gu.INTERNAL_HOOKS=Me.R,Gu.Column=Ll,Gu.ColumnGroup=As,Gu.Summary=fo;var Ni=Gu,Lo=je(65283),zs=an(null),Fa=an(null);function Js(Un,xi,kn){var it=xi||1;return kn[Un+it]-(kn[Un]||0)}function _s(Un){var xi=Un.rowInfo,kn=Un.column,it=Un.colIndex,fr=Un.indent,xr=Un.index,Rr=Un.component,po=Un.renderIndex,ko=Un.record,Bo=Un.style,Bs=Un.className,Vo=Un.inverse,Co=Un.getHeight,vo=kn.render,fs=kn.dataIndex,tt=kn.className,Xt=kn.width,Dt=qt(Fa,["columnsOffset"]),Kt=Dt.columnsOffset,sn=Cr(xi,kn,it,fr,xr),Vn=sn.key,Qn=sn.fixedInfo,zn=sn.appendCellNode,Oi=sn.additionalCellProps,Qi=Oi.style,ri=Oi.colSpan,cr=ri===void 0?1:ri,$r=Oi.rowSpan,Yt=$r===void 0?1:$r,er=it-1,sr=Js(er,cr,Kt),Ki=cr>1?Xt-sr:0,lr=(0,Et.Z)((0,Et.Z)((0,Et.Z)({},Qi),Bo),{},{flex:"0 0 ".concat(sr,"px"),width:"".concat(sr,"px"),marginRight:Ki,pointerEvents:"auto"}),vr=dt.useMemo(function(){return Vo?Yt<=1:cr===0||Yt===0||Yt>1},[Yt,cr,Vo]);vr?lr.visibility="hidden":Vo&&(lr.height=Co==null?void 0:Co(Yt));var Qr=vr?function(){return null}:vo,Mr={};return(Yt===0||cr===0)&&(Mr.rowSpan=1,Mr.colSpan=1),dt.createElement(en,(0,nt.Z)({className:Yn()(tt,Bs),ellipsis:kn.ellipsis,align:kn.align,scope:kn.rowScope,component:Rr,prefixCls:xi.prefixCls,key:Vn,record:ko,index:xr,renderIndex:po,dataIndex:fs,render:Qr,shouldCellUpdate:kn.shouldCellUpdate},Qn,{appendNode:zn,additionalProps:(0,Et.Z)((0,Et.Z)({},Oi),{},{style:lr},Mr)}))}var wl=_s,Sl=["data","index","className","rowKey","style","extra","getHeight"],rl=dt.forwardRef(function(Un,xi){var kn=Un.data,it=Un.index,fr=Un.className,xr=Un.rowKey,Rr=Un.style,po=Un.extra,ko=Un.getHeight,Bo=(0,Ge.Z)(Un,Sl),Bs=kn.record,Vo=kn.indent,Co=kn.index,vo=qt(Ye,["prefixCls","flattenColumns","fixColumn","componentWidth","scrollX"]),fs=vo.scrollX,tt=vo.flattenColumns,Xt=vo.prefixCls,Dt=vo.fixColumn,Kt=vo.componentWidth,sn=qt(zs,["getComponent"]),Vn=sn.getComponent,Qn=Vr(Bs,xr,it,Vo),zn=Vn(["body","row"],"div"),Oi=Vn(["body","cell"],"div"),Qi=Qn.rowSupportExpand,ri=Qn.expanded,cr=Qn.rowProps,$r=Qn.expandedRowRender,Yt=Qn.expandedRowClassName,er;if(Qi&&ri){var sr=$r(Bs,it,Vo+1,ri),Ki=Ai(Yt,Bs,it,Vo),lr={};Dt&&(lr={style:(0,$t.Z)({},"--virtual-width","".concat(Kt,"px"))});var vr="".concat(Xt,"-expanded-row-cell");er=dt.createElement(zn,{className:Yn()("".concat(Xt,"-expanded-row"),"".concat(Xt,"-expanded-row-level-").concat(Vo+1),Ki)},dt.createElement(en,{component:Oi,prefixCls:Xt,className:Yn()(vr,(0,$t.Z)({},"".concat(vr,"-fixed"),Dt)),additionalProps:lr},sr))}var Qr=(0,Et.Z)((0,Et.Z)({},Rr),{},{width:fs});po&&(Qr.position="absolute",Qr.pointerEvents="none");var Mr=dt.createElement(zn,(0,nt.Z)({},cr,Bo,{"data-row-key":xr,ref:Qi?null:xi,className:Yn()(fr,"".concat(Xt,"-row"),cr==null?void 0:cr.className,(0,$t.Z)({},"".concat(Xt,"-row-extra"),po)),style:(0,Et.Z)((0,Et.Z)({},Qr),cr==null?void 0:cr.style)}),tt.map(function(Hr,Zr){return dt.createElement(wl,{key:Zr,component:Oi,rowInfo:Qn,column:Hr,colIndex:Zr,indent:Vo,index:it,renderIndex:Co,record:Bs,inverse:po,getHeight:ko})}));return Qi?dt.createElement("div",{ref:xi},Mr,er):Mr}),Il=Te(rl),Zi=Il,hl=dt.forwardRef(function(Un,xi){var kn=Un.data,it=Un.onScroll,fr=qt(Ye,["flattenColumns","onColumnResize","getRowKey","prefixCls","expandedKeys","childrenColumnName","scrollX","direction"]),xr=fr.flattenColumns,Rr=fr.onColumnResize,po=fr.getRowKey,ko=fr.expandedKeys,Bo=fr.prefixCls,Bs=fr.childrenColumnName,Vo=fr.scrollX,Co=fr.direction,vo=qt(zs),fs=vo.sticky,tt=vo.scrollY,Xt=vo.listItemHeight,Dt=vo.getComponent,Kt=vo.onScroll,sn=dt.useRef(),Vn=Uo(kn,Bs,ko,po),Qn=dt.useMemo(function(){var er=0;return xr.map(function(sr){var Ki=sr.width,lr=sr.key;return er+=Ki,[lr,Ki,er]})},[xr]),zn=dt.useMemo(function(){return Qn.map(function(er){return er[2]})},[Qn]);dt.useEffect(function(){Qn.forEach(function(er){var sr=(0,yt.Z)(er,2),Ki=sr[0],lr=sr[1];Rr(Ki,lr)})},[Qn]),dt.useImperativeHandle(xi,function(){var er,sr={scrollTo:function(lr){var vr;(vr=sn.current)===null||vr===void 0||vr.scrollTo(lr)},nativeElement:(er=sn.current)===null||er===void 0?void 0:er.nativeElement};return Object.defineProperty(sr,"scrollLeft",{get:function(){var lr;return((lr=sn.current)===null||lr===void 0?void 0:lr.getScrollInfo().x)||0},set:function(lr){var vr;(vr=sn.current)===null||vr===void 0||vr.scrollTo({left:lr})}}),sr});var Oi=function(sr,Ki){var lr,vr=(lr=Vn[Ki])===null||lr===void 0?void 0:lr.record,Qr=sr.onCell;if(Qr){var Mr,Hr=Qr(vr,Ki);return(Mr=Hr==null?void 0:Hr.rowSpan)!==null&&Mr!==void 0?Mr:1}return 1},Qi=function(sr){var Ki=sr.start,lr=sr.end,vr=sr.getSize,Qr=sr.offsetY;if(lr<0)return null;for(var Mr=xr.filter(function(Ls){return Oi(Ls,Ki)===0}),Hr=Ki,Zr=function(Ii){if(Mr=Mr.filter(function(Cs){return Oi(Cs,Ii)===0}),!Mr.length)return Hr=Ii,1},mi=Ki;mi>=0&&!Zr(mi);mi-=1);for(var cs=xr.filter(function(Ls){return Oi(Ls,lr)!==1}),Hs=lr,js=function(Ii){if(cs=cs.filter(function(Cs){return Oi(Cs,Ii)!==1}),!cs.length)return Hs=Math.max(Ii-1,lr),1},yr=lr;yr<Vn.length&&!js(yr);yr+=1);for(var yo=[],es=function(Ii){var Cs=Vn[Ii];if(!Cs)return 1;xr.some(function(Is){return Oi(Is,Ii)>1})&&yo.push(Ii)},Ts=Hr;Ts<=Hs;Ts+=1)es(Ts);var Zs=yo.map(function(Ls){var Ii=Vn[Ls],Cs=po(Ii.record,Ls),Is=function(qo){var eo=Ls+qo-1,bs=po(Vn[eo].record,eo),Ta=vr(Cs,bs);return Ta.bottom-Ta.top},Pa=vr(Cs);return dt.createElement(Zi,{key:Ls,data:Ii,rowKey:Cs,index:Ls,style:{top:-Qr+Pa.top},extra:!0,getHeight:Is})});return Zs},ri=dt.useMemo(function(){return{columnsOffset:zn}},[zn]),cr="".concat(Bo,"-tbody"),$r=Dt(["body","wrapper"]),Yt={};return fs&&(Yt.position="sticky",Yt.bottom=0,(0,xt.Z)(fs)==="object"&&fs.offsetScroll&&(Yt.bottom=fs.offsetScroll)),dt.createElement(Fa.Provider,{value:ri},dt.createElement(Lo.Z,{fullHeight:!1,ref:sn,prefixCls:"".concat(cr,"-virtual"),styles:{horizontalScrollBar:Yt},className:cr,height:tt,itemHeight:Xt||24,data:Vn,itemKey:function(sr){return po(sr.record)},component:$r,scrollWidth:Vo,direction:Co,onVirtualScroll:function(sr){var Ki,lr=sr.x;it({currentTarget:(Ki=sn.current)===null||Ki===void 0?void 0:Ki.nativeElement,scrollLeft:lr})},onScroll:Kt,extraRender:Qi},function(er,sr,Ki){var lr=po(er.record,sr);return dt.createElement(Zi,{data:er,rowKey:lr,index:sr,style:Ki.style})}))}),Yi=Te(hl),$o=Yi,dl=function(xi,kn){var it=kn.ref,fr=kn.onScroll;return dt.createElement($o,{ref:it,data:xi,onScroll:fr})};function Pl(Un,xi){var kn=Un.data,it=Un.columns,fr=Un.scroll,xr=Un.sticky,Rr=Un.prefixCls,po=Rr===void 0?Jo:Rr,ko=Un.className,Bo=Un.listItemHeight,Bs=Un.components,Vo=Un.onScroll,Co=fr||{},vo=Co.x,fs=Co.y;typeof vo!="number"&&(vo=1),typeof fs!="number"&&(fs=500);var tt=(0,Mi.zX)(function(Kt,sn){return(0,Jn.Z)(Bs,Kt)||sn}),Xt=(0,Mi.zX)(Vo),Dt=dt.useMemo(function(){return{sticky:xr,scrollY:fs,listItemHeight:Bo,getComponent:tt,onScroll:Xt}},[xr,fs,Bo,tt,Xt]);return dt.createElement(zs.Provider,{value:Dt},dt.createElement(Ni,(0,nt.Z)({},Un,{className:Yn()(ko,"".concat(po,"-virtual")),scroll:(0,Et.Z)((0,Et.Z)({},fr),{},{x:vo}),components:(0,Et.Z)((0,Et.Z)({},Bs),{},{body:kn!=null&&kn.length?dl:void 0}),columns:it,internalHooks:Me.R,tailor:!0,ref:xi})))}var pc=dt.forwardRef(Pl);function pu(Un){return Ae(pc,Un)}var jl=pu(),Vu=null},54451:function(Cn,Ei,je){"use strict";je.d(Ei,{g:function(){return dt},v:function(){return It}});var Me=je(20439),yt=je(62646),Jt=je(48736),Qt=["expandable"],It="RC_TABLE_INTERNAL_COL_DEFINE";function dt(Mt){var an=Mt.expandable,qt=(0,yt.Z)(Mt,Qt),nt;return"expandable"in Mt?nt=(0,Me.Z)((0,Me.Z)({},qt),an):nt=qt,nt.showExpandColumn===!1&&(nt.expandIconColumnIndex=-1),nt}},639:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return Ie}});var Me=je(14809),yt=je(4635),Jt=je(20439),Qt=je(50298),It=je(62646),dt=je(59301),Mt=je(92310),an=je.n(Mt),qt=je(26112),nt=je(30699),ln=function(Ye){for(var lt=Ye.prefixCls,Bt=Ye.level,kt=Ye.isStart,xt=Ye.isEnd,Et="".concat(lt,"-indent-unit"),$t=[],Zt=0;Zt<Bt;Zt+=1)$t.push(dt.createElement("span",{key:Zt,className:an()(Et,(0,yt.Z)((0,yt.Z)({},"".concat(Et,"-start"),kt[Zt]),"".concat(Et,"-end"),xt[Zt]))}));return dt.createElement("span",{"aria-hidden":"true",className:"".concat(lt,"-indent")},$t)},rn=dt.memo(ln),on=je(65065),et=je(34061),ue=["eventKey","className","style","dragOver","dragOverGapTop","dragOverGapBottom","isLeaf","isStart","isEnd","expanded","selected","checked","halfChecked","loading","domRef","active","data","onMouseMove","selectable"],ce="open",Ce="close",Ae="---",Te=function(Ye){var lt,Bt,kt,xt=Ye.eventKey,Et=Ye.className,$t=Ye.style,Zt=Ye.dragOver,Yn=Ye.dragOverGapTop,gn=Ye.dragOverGapBottom,Jn=Ye.isLeaf,ci=Ye.isStart,Xn=Ye.isEnd,In=Ye.expanded,hi=Ye.selected,Ht=Ye.checked,At=Ye.halfChecked,Hn=Ye.loading,_i=Ye.domRef,dr=Ye.active,En=Ye.data,Mn=Ye.onMouseMove,Ln=Ye.selectable,Mi=(0,It.Z)(Ye,ue),Rt=dt.useContext(nt.k),ni=dt.useContext(nt.y),en=dt.useRef(null),Ti=dt.useState(!1),Lr=(0,Qt.Z)(Ti,2),Tt=Lr[0],Ze=Lr[1],Ge=!!(Rt.disabled||Ye.disabled||(lt=ni.nodeDisabled)!==null&<!==void 0&<.call(ni,En)),rt=dt.useMemo(function(){return!Rt.checkable||Ye.checkable===!1?!1:Rt.checkable},[Rt.checkable,Ye.checkable]),Ft=function(Si){Ge||Rt.onNodeSelect(Si,(0,et.F)(Ye))},qe=function(Si){Ge||!rt||Ye.disableCheckbox||Rt.onNodeCheck(Si,(0,et.F)(Ye),!Ht)},mt=dt.useMemo(function(){return typeof Ln=="boolean"?Ln:Rt.selectable},[Ln,Rt.selectable]),An=function(Si){Rt.onNodeClick(Si,(0,et.F)(Ye)),mt?Ft(Si):qe(Si)},Gn=function(Si){Rt.onNodeDoubleClick(Si,(0,et.F)(Ye))},fo=function(Si){Rt.onNodeMouseEnter(Si,(0,et.F)(Ye))},qn=function(Si){Rt.onNodeMouseLeave(Si,(0,et.F)(Ye))},Kn=function(Si){Rt.onNodeContextMenu(Si,(0,et.F)(Ye))},oi=dt.useMemo(function(){return!!(Rt.draggable&&(!Rt.draggable.nodeDraggable||Rt.draggable.nodeDraggable(En)))},[Rt.draggable,En]),Wi=function(Si){Si.stopPropagation(),Ze(!0),Rt.onNodeDragStart(Si,Ye);try{Si.dataTransfer.setData("text/plain","")}catch(ms){}},Nr=function(Si){Si.preventDefault(),Si.stopPropagation(),Rt.onNodeDragEnter(Si,Ye)},Uo=function(Si){Si.preventDefault(),Si.stopPropagation(),Rt.onNodeDragOver(Si,Ye)},Vr=function(Si){Si.stopPropagation(),Rt.onNodeDragLeave(Si,Ye)},lo=function(Si){Si.stopPropagation(),Ze(!1),Rt.onNodeDragEnd(Si,Ye)},Rn=function(Si){Si.preventDefault(),Si.stopPropagation(),Ze(!1),Rt.onNodeDrop(Si,Ye)},$n=function(Si){Hn||Rt.onNodeExpand(Si,(0,et.F)(Ye))},pi=dt.useMemo(function(){var ui=(0,on.Z)(Rt.keyEntities,xt)||{},Si=ui.children;return!!(Si||[]).length},[Rt.keyEntities,xt]),Ai=dt.useMemo(function(){return Jn===!1?!1:Jn||!Rt.loadData&&!pi||Rt.loadData&&Ye.loaded&&!pi},[Jn,Rt.loadData,pi,Ye.loaded]);dt.useEffect(function(){Hn||typeof Rt.loadData=="function"&&In&&!Ai&&!Ye.loaded&&Rt.onNodeLoad((0,et.F)(Ye))},[Hn,Rt.loadData,Rt.onNodeLoad,In,Ai,Ye]);var Cr=dt.useMemo(function(){var ui;return(ui=Rt.draggable)!==null&&ui!==void 0&&ui.icon?dt.createElement("span",{className:"".concat(Rt.prefixCls,"-draggable-icon")},Rt.draggable.icon):null},[Rt.draggable]),zr=function(Si){var ms=Ye.switcherIcon||Rt.switcherIcon;return typeof ms=="function"?ms((0,Jt.Z)((0,Jt.Z)({},Ye),{},{isLeaf:Si})):ms},ao=function(){if(Ai){var Si=zr(!0);return Si!==!1?dt.createElement("span",{className:an()("".concat(Rt.prefixCls,"-switcher"),"".concat(Rt.prefixCls,"-switcher-noop"))},Si):null}var ms=zr(!1);return ms!==!1?dt.createElement("span",{onClick:$n,className:an()("".concat(Rt.prefixCls,"-switcher"),"".concat(Rt.prefixCls,"-switcher_").concat(In?ce:Ce))},ms):null},Wr=dt.useMemo(function(){if(!rt)return null;var ui=typeof rt!="boolean"?rt:null;return dt.createElement("span",{className:an()("".concat(Rt.prefixCls,"-checkbox"),(0,yt.Z)((0,yt.Z)((0,yt.Z)({},"".concat(Rt.prefixCls,"-checkbox-checked"),Ht),"".concat(Rt.prefixCls,"-checkbox-indeterminate"),!Ht&&At),"".concat(Rt.prefixCls,"-checkbox-disabled"),Ge||Ye.disableCheckbox)),onClick:qe,role:"checkbox","aria-checked":At?"mixed":Ht,"aria-disabled":Ge||Ye.disableCheckbox,"aria-label":"Select ".concat(typeof Ye.title=="string"?Ye.title:"tree node")},ui)},[rt,Ht,At,Ge,Ye.disableCheckbox,Ye.title]),Or=dt.useMemo(function(){return Ai?null:In?ce:Ce},[Ai,In]),ir=dt.useMemo(function(){return dt.createElement("span",{className:an()("".concat(Rt.prefixCls,"-iconEle"),"".concat(Rt.prefixCls,"-icon__").concat(Or||"docu"),(0,yt.Z)({},"".concat(Rt.prefixCls,"-icon_loading"),Hn))})},[Rt.prefixCls,Or,Hn]),ss=dt.useMemo(function(){var ui=!!Rt.draggable,Si=!Ye.disabled&&ui&&Rt.dragOverNodeKey===xt;return Si?Rt.dropIndicatorRender({dropPosition:Rt.dropPosition,dropLevelOffset:Rt.dropLevelOffset,indent:Rt.indent,prefixCls:Rt.prefixCls,direction:Rt.direction}):null},[Rt.dropPosition,Rt.dropLevelOffset,Rt.indent,Rt.prefixCls,Rt.direction,Rt.draggable,Rt.dragOverNodeKey,Rt.dropIndicatorRender]),Us=dt.useMemo(function(){var ui=Ye.title,Si=ui===void 0?Ae:ui,ms="".concat(Rt.prefixCls,"-node-content-wrapper"),Po;if(Rt.showIcon){var Xr=Ye.icon||Rt.icon;Po=Xr?dt.createElement("span",{className:an()("".concat(Rt.prefixCls,"-iconEle"),"".concat(Rt.prefixCls,"-icon__customize"))},typeof Xr=="function"?Xr(Ye):Xr):ir}else Rt.loadData&&Hn&&(Po=ir);var si;return typeof Si=="function"?si=Si(En):Rt.titleRender?si=Rt.titleRender(En):si=Si,dt.createElement("span",{ref:en,title:typeof Si=="string"?Si:"",className:an()(ms,"".concat(ms,"-").concat(Or||"normal"),(0,yt.Z)({},"".concat(Rt.prefixCls,"-node-selected"),!Ge&&(hi||Tt))),onMouseEnter:fo,onMouseLeave:qn,onContextMenu:Kn,onClick:An,onDoubleClick:Gn},Po,dt.createElement("span",{className:"".concat(Rt.prefixCls,"-title")},si),ss)},[Rt.prefixCls,Rt.showIcon,Ye,Rt.icon,ir,Rt.titleRender,En,Or,fo,qn,Kn,An,Gn]),as=(0,qt.Z)(Mi,{aria:!0,data:!0}),ls=(0,on.Z)(Rt.keyEntities,xt)||{},La=ls.level,Fs=Xn[Xn.length-1],ha=!Ge&&oi,Al=Rt.draggingNodeKey===xt,We=Ln!==void 0?{"aria-selected":!!Ln}:void 0;return dt.createElement("div",(0,Me.Z)({ref:_i,role:"treeitem","aria-expanded":Jn?void 0:In,className:an()(Et,"".concat(Rt.prefixCls,"-treenode"),(kt={},(0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)(kt,"".concat(Rt.prefixCls,"-treenode-disabled"),Ge),"".concat(Rt.prefixCls,"-treenode-switcher-").concat(In?"open":"close"),!Jn),"".concat(Rt.prefixCls,"-treenode-checkbox-checked"),Ht),"".concat(Rt.prefixCls,"-treenode-checkbox-indeterminate"),At),"".concat(Rt.prefixCls,"-treenode-selected"),hi),"".concat(Rt.prefixCls,"-treenode-loading"),Hn),"".concat(Rt.prefixCls,"-treenode-active"),dr),"".concat(Rt.prefixCls,"-treenode-leaf-last"),Fs),"".concat(Rt.prefixCls,"-treenode-draggable"),oi),"dragging",Al),(0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)((0,yt.Z)(kt,"drop-target",Rt.dropTargetKey===xt),"drop-container",Rt.dropContainerKey===xt),"drag-over",!Ge&&Zt),"drag-over-gap-top",!Ge&&Yn),"drag-over-gap-bottom",!Ge&&gn),"filter-node",(Bt=Rt.filterTreeNode)===null||Bt===void 0?void 0:Bt.call(Rt,(0,et.F)(Ye))),"".concat(Rt.prefixCls,"-treenode-leaf"),Ai))),style:$t,draggable:ha,onDragStart:ha?Wi:void 0,onDragEnter:oi?Nr:void 0,onDragOver:oi?Uo:void 0,onDragLeave:oi?Vr:void 0,onDrop:oi?Rn:void 0,onDragEnd:oi?lo:void 0,onMouseMove:Mn},We,as),dt.createElement(rn,{prefixCls:Rt.prefixCls,level:La,isStart:ci,isEnd:Xn}),Cr,ao(),Wr,Us)};Te.isTreeNode=1;var Ie=Te},30699:function(Cn,Ei,je){"use strict";je.d(Ei,{k:function(){return yt},y:function(){return Jt}});var Me=je(59301),yt=Me.createContext(null),Jt=Me.createContext({})},29530:function(Cn,Ei,je){"use strict";je.d(Ei,{OF:function(){return xt.Z},y6:function(){return Ce.y},ZP:function(){return Ge}});var Me=je(14809),yt=je(93664),Jt=je(20439),Qt=je(95190),It=je(99153),dt=je(84851),Mt=je(13028),an=je(19257),qt=je(93046),nt=je(4635),ln=je(92310),rn=je.n(ln),on=je(10228),et=je(26112),ue=je(48736),ce=je(59301),Ce=je(30699),Ae=function(Ft){var qe=Ft.dropPosition,mt=Ft.dropLevelOffset,An=Ft.indent,Gn={pointerEvents:"none",position:"absolute",right:0,backgroundColor:"red",height:2};switch(qe){case-1:Gn.top=0,Gn.left=-mt*An;break;case 1:Gn.bottom=0,Gn.left=-mt*An;break;case 0:Gn.bottom=0,Gn.left=An;break}return ce.createElement("div",{style:Gn})},Te=Ae;function Ie(rt){if(rt==null)throw new TypeError("Cannot destructure "+rt)}var ze=je(50298),Ye=je(62646),lt=je(34280),Bt=je(65283),kt=je(77900),xt=je(639);function Et(rt,Ft){var qe=ce.useState(!1),mt=(0,ze.Z)(qe,2),An=mt[0],Gn=mt[1];(0,lt.Z)(function(){if(An)return rt(),function(){Ft()}},[An]),(0,lt.Z)(function(){return Gn(!0),function(){Gn(!1)}},[])}var $t=Et,Zt=je(34061),Yn=["className","style","motion","motionNodes","motionType","onMotionStart","onMotionEnd","active","treeNodeRequiredProps"],gn=ce.forwardRef(function(rt,Ft){var qe=rt.className,mt=rt.style,An=rt.motion,Gn=rt.motionNodes,fo=rt.motionType,qn=rt.onMotionStart,Kn=rt.onMotionEnd,oi=rt.active,Wi=rt.treeNodeRequiredProps,Nr=(0,Ye.Z)(rt,Yn),Uo=ce.useState(!0),Vr=(0,ze.Z)(Uo,2),lo=Vr[0],Rn=Vr[1],$n=ce.useContext(Ce.k),pi=$n.prefixCls,Ai=Gn&&fo!=="hide";(0,lt.Z)(function(){Gn&&Ai!==lo&&Rn(Ai)},[Gn]);var Cr=function(){Gn&&qn()},zr=ce.useRef(!1),ao=function(){Gn&&!zr.current&&(zr.current=!0,Kn())};$t(Cr,ao);var Wr=function(ir){Ai===ir&&ao()};return Gn?ce.createElement(kt.default,(0,Me.Z)({ref:Ft,visible:lo},An,{motionAppear:fo==="show",onVisibleChanged:Wr}),function(Or,ir){var ss=Or.className,Us=Or.style;return ce.createElement("div",{ref:ir,className:rn()("".concat(pi,"-treenode-motion"),ss),style:Us},Gn.map(function(as){var ls=Object.assign({},(Ie(as.data),as.data)),La=as.title,Fs=as.key,ha=as.isStart,Al=as.isEnd;delete ls.children;var We=(0,Zt.H8)(Fs,Wi);return ce.createElement(xt.Z,(0,Me.Z)({},ls,We,{title:La,active:oi,data:as.data,key:Fs,isStart:ha,isEnd:Al}))}))}):ce.createElement(xt.Z,(0,Me.Z)({domRef:Ft,className:qe,style:mt},Nr,{active:oi}))}),Jn=gn;function ci(){var rt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],Ft=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],qe=rt.length,mt=Ft.length;if(Math.abs(qe-mt)!==1)return{add:!1,key:null};function An(Gn,fo){var qn=new Map;Gn.forEach(function(oi){qn.set(oi,!0)});var Kn=fo.filter(function(oi){return!qn.has(oi)});return Kn.length===1?Kn[0]:null}return qe<mt?{add:!0,key:An(rt,Ft)}:{add:!1,key:An(Ft,rt)}}function Xn(rt,Ft,qe){var mt=rt.findIndex(function(qn){return qn.key===qe}),An=rt[mt+1],Gn=Ft.findIndex(function(qn){return qn.key===qe});if(An){var fo=Ft.findIndex(function(qn){return qn.key===An.key});return Ft.slice(Gn+1,fo)}return Ft.slice(Gn+1)}var In=["prefixCls","data","selectable","checkable","expandedKeys","selectedKeys","checkedKeys","loadedKeys","loadingKeys","halfCheckedKeys","keyEntities","disabled","dragging","dragOverNodeKey","dropPosition","motion","height","itemHeight","virtual","scrollWidth","focusable","activeItem","focused","tabIndex","onKeyDown","onFocus","onBlur","onActiveChange","onListChangeStart","onListChangeEnd"],hi={width:0,height:0,display:"flex",overflow:"hidden",opacity:0,border:0,padding:0,margin:0},Ht=function(){},At="RC_TREE_MOTION_".concat(Math.random()),Hn={key:At},_i={key:At,level:0,index:0,pos:"0",node:Hn,nodes:[Hn]},dr={parent:null,children:[],pos:_i.pos,data:Hn,title:null,key:At,isStart:[],isEnd:[]};function En(rt,Ft,qe,mt){return Ft===!1||!qe?rt:rt.slice(0,Math.ceil(qe/mt)+1)}function Mn(rt){var Ft=rt.key,qe=rt.pos;return(0,Zt.km)(Ft,qe)}function Ln(rt){for(var Ft=String(rt.data.key),qe=rt;qe.parent;)qe=qe.parent,Ft="".concat(qe.data.key," > ").concat(Ft);return Ft}var Mi=ce.forwardRef(function(rt,Ft){var qe=rt.prefixCls,mt=rt.data,An=rt.selectable,Gn=rt.checkable,fo=rt.expandedKeys,qn=rt.selectedKeys,Kn=rt.checkedKeys,oi=rt.loadedKeys,Wi=rt.loadingKeys,Nr=rt.halfCheckedKeys,Uo=rt.keyEntities,Vr=rt.disabled,lo=rt.dragging,Rn=rt.dragOverNodeKey,$n=rt.dropPosition,pi=rt.motion,Ai=rt.height,Cr=rt.itemHeight,zr=rt.virtual,ao=rt.scrollWidth,Wr=rt.focusable,Or=rt.activeItem,ir=rt.focused,ss=rt.tabIndex,Us=rt.onKeyDown,as=rt.onFocus,ls=rt.onBlur,La=rt.onActiveChange,Fs=rt.onListChangeStart,ha=rt.onListChangeEnd,Al=(0,Ye.Z)(rt,In),We=ce.useRef(null),ui=ce.useRef(null);ce.useImperativeHandle(Ft,function(){return{scrollTo:function(xl){We.current.scrollTo(xl)},getIndentWidth:function(){return ui.current.offsetWidth}}});var Si=ce.useState(fo),ms=(0,ze.Z)(Si,2),Po=ms[0],Xr=ms[1],si=ce.useState(mt),Hi=(0,ze.Z)(si,2),or=Hi[0],Fn=Hi[1],vn=ce.useState(mt),pn=(0,ze.Z)(vn,2),Ur=pn[0],Ho=pn[1],bo=ce.useState([]),ji=(0,ze.Z)(bo,2),co=ji[0],Oa=ji[1],aa=ce.useState(null),pa=(0,ze.Z)(aa,2),hn=pa[0],Ar=pa[1],Xo=ce.useRef(mt);Xo.current=mt;function al(){var wa=Xo.current;Fn(wa),Ho(wa),Oa([]),Ar(null),ha()}(0,lt.Z)(function(){Xr(fo);var wa=ci(Po,fo);if(wa.key!==null)if(wa.add){var xl=or.findIndex(function(us){var Sa=us.key;return Sa===wa.key}),Ll=En(Xn(or,mt,wa.key),zr,Ai,Cr),ys=or.slice();ys.splice(xl+1,0,dr),Ho(ys),Oa(Ll),Ar("show")}else{var As=mt.findIndex(function(us){var Sa=us.key;return Sa===wa.key}),Jo=En(Xn(mt,or,wa.key),zr,Ai,Cr),da=mt.slice();da.splice(As+1,0,dr),Ho(da),Oa(Jo),Ar("hide")}else or!==mt&&(Fn(mt),Ho(mt))},[fo,mt]),ce.useEffect(function(){lo||al()},[lo]);var Ji=pi?Ur:mt,Fo={expandedKeys:fo,selectedKeys:qn,loadedKeys:oi,loadingKeys:Wi,checkedKeys:Kn,halfCheckedKeys:Nr,dragOverNodeKey:Rn,dropPosition:$n,keyEntities:Uo};return ce.createElement(ce.Fragment,null,ir&&Or&&ce.createElement("span",{style:hi,"aria-live":"assertive"},Ln(Or)),ce.createElement("div",null,ce.createElement("input",{style:hi,disabled:Wr===!1||Vr,tabIndex:Wr!==!1?ss:null,onKeyDown:Us,onFocus:as,onBlur:ls,value:"",onChange:Ht,"aria-label":"for screen reader"})),ce.createElement("div",{className:"".concat(qe,"-treenode"),"aria-hidden":!0,style:{position:"absolute",pointerEvents:"none",visibility:"hidden",height:0,overflow:"hidden",border:0,padding:0}},ce.createElement("div",{className:"".concat(qe,"-indent")},ce.createElement("div",{ref:ui,className:"".concat(qe,"-indent-unit")}))),ce.createElement(Bt.Z,(0,Me.Z)({},Al,{data:Ji,itemKey:Mn,height:Ai,fullHeight:!1,virtual:zr,itemHeight:Cr,scrollWidth:ao,prefixCls:"".concat(qe,"-list"),ref:We,role:"tree",onVisibleChange:function(xl){xl.every(function(Ll){return Mn(Ll)!==At})&&al()}}),function(wa){var xl=wa.pos,Ll=Object.assign({},(Ie(wa.data),wa.data)),ys=wa.title,As=wa.key,Jo=wa.isStart,da=wa.isEnd,us=(0,Zt.km)(As,xl);delete Ll.key,delete Ll.children;var Sa=(0,Zt.H8)(us,Fo);return ce.createElement(Jn,(0,Me.Z)({},Ll,Sa,{title:ys,active:!!Or&&As===Or.key,pos:xl,data:wa.data,isStart:Jo,isEnd:da,motion:pi,motionNodes:As===At?co:null,motionType:hn,onMotionStart:Fs,onMotionEnd:al,treeNodeRequiredProps:Fo,onMouseMove:function(){La(null)}}))}))}),Rt=Mi,ni=je(82661),en=je(34643),Ti=je(65065),Lr=10,Tt=function(rt){(0,an.Z)(qe,rt);var Ft=(0,qt.Z)(qe);function qe(){var mt;(0,It.Z)(this,qe);for(var An=arguments.length,Gn=new Array(An),fo=0;fo<An;fo++)Gn[fo]=arguments[fo];return mt=Ft.call.apply(Ft,[this].concat(Gn)),(0,nt.Z)((0,Mt.Z)(mt),"destroyed",!1),(0,nt.Z)((0,Mt.Z)(mt),"delayedDragEnterLogic",void 0),(0,nt.Z)((0,Mt.Z)(mt),"loadingRetryTimes",{}),(0,nt.Z)((0,Mt.Z)(mt),"state",{keyEntities:{},indent:null,selectedKeys:[],checkedKeys:[],halfCheckedKeys:[],loadedKeys:[],loadingKeys:[],expandedKeys:[],draggingNodeKey:null,dragChildrenKeys:[],dropTargetKey:null,dropPosition:null,dropContainerKey:null,dropLevelOffset:null,dropTargetPos:null,dropAllowed:!0,dragOverNodeKey:null,treeData:[],flattenNodes:[],focused:!1,activeKey:null,listChanging:!1,prevProps:null,fieldNames:(0,Zt.w$)()}),(0,nt.Z)((0,Mt.Z)(mt),"dragStartMousePosition",null),(0,nt.Z)((0,Mt.Z)(mt),"dragNodeProps",null),(0,nt.Z)((0,Mt.Z)(mt),"currentMouseOverDroppableNodeKey",null),(0,nt.Z)((0,Mt.Z)(mt),"listRef",ce.createRef()),(0,nt.Z)((0,Mt.Z)(mt),"onNodeDragStart",function(qn,Kn){var oi=mt.state,Wi=oi.expandedKeys,Nr=oi.keyEntities,Uo=mt.props.onDragStart,Vr=Kn.eventKey;mt.dragNodeProps=Kn,mt.dragStartMousePosition={x:qn.clientX,y:qn.clientY};var lo=(0,ni._5)(Wi,Vr);mt.setState({draggingNodeKey:Vr,dragChildrenKeys:(0,ni.wA)(Vr,Nr),indent:mt.listRef.current.getIndentWidth()}),mt.setExpandedKeys(lo),window.addEventListener("dragend",mt.onWindowDragEnd),Uo==null||Uo({event:qn,node:(0,Zt.F)(Kn)})}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeDragEnter",function(qn,Kn){var oi=mt.state,Wi=oi.expandedKeys,Nr=oi.keyEntities,Uo=oi.dragChildrenKeys,Vr=oi.flattenNodes,lo=oi.indent,Rn=mt.props,$n=Rn.onDragEnter,pi=Rn.onExpand,Ai=Rn.allowDrop,Cr=Rn.direction,zr=Kn.pos,ao=Kn.eventKey;if(mt.currentMouseOverDroppableNodeKey!==ao&&(mt.currentMouseOverDroppableNodeKey=ao),!mt.dragNodeProps){mt.resetDragState();return}var Wr=(0,ni.OM)(qn,mt.dragNodeProps,Kn,lo,mt.dragStartMousePosition,Ai,Vr,Nr,Wi,Cr),Or=Wr.dropPosition,ir=Wr.dropLevelOffset,ss=Wr.dropTargetKey,Us=Wr.dropContainerKey,as=Wr.dropTargetPos,ls=Wr.dropAllowed,La=Wr.dragOverNodeKey;if(Uo.includes(ss)||!ls){mt.resetDragState();return}if(mt.delayedDragEnterLogic||(mt.delayedDragEnterLogic={}),Object.keys(mt.delayedDragEnterLogic).forEach(function(Fs){clearTimeout(mt.delayedDragEnterLogic[Fs])}),mt.dragNodeProps.eventKey!==Kn.eventKey&&(qn.persist(),mt.delayedDragEnterLogic[zr]=window.setTimeout(function(){if(mt.state.draggingNodeKey!==null){var Fs=(0,Qt.Z)(Wi),ha=(0,Ti.Z)(Nr,Kn.eventKey);ha&&(ha.children||[]).length&&(Fs=(0,ni.L0)(Wi,Kn.eventKey)),mt.props.hasOwnProperty("expandedKeys")||mt.setExpandedKeys(Fs),pi==null||pi(Fs,{node:(0,Zt.F)(Kn),expanded:!0,nativeEvent:qn.nativeEvent})}},800)),mt.dragNodeProps.eventKey===ss&&ir===0){mt.resetDragState();return}mt.setState({dragOverNodeKey:La,dropPosition:Or,dropLevelOffset:ir,dropTargetKey:ss,dropContainerKey:Us,dropTargetPos:as,dropAllowed:ls}),$n==null||$n({event:qn,node:(0,Zt.F)(Kn),expandedKeys:Wi})}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeDragOver",function(qn,Kn){var oi=mt.state,Wi=oi.dragChildrenKeys,Nr=oi.flattenNodes,Uo=oi.keyEntities,Vr=oi.expandedKeys,lo=oi.indent,Rn=mt.props,$n=Rn.onDragOver,pi=Rn.allowDrop,Ai=Rn.direction;if(mt.dragNodeProps){var Cr=(0,ni.OM)(qn,mt.dragNodeProps,Kn,lo,mt.dragStartMousePosition,pi,Nr,Uo,Vr,Ai),zr=Cr.dropPosition,ao=Cr.dropLevelOffset,Wr=Cr.dropTargetKey,Or=Cr.dropContainerKey,ir=Cr.dropTargetPos,ss=Cr.dropAllowed,Us=Cr.dragOverNodeKey;Wi.includes(Wr)||!ss||(mt.dragNodeProps.eventKey===Wr&&ao===0?mt.state.dropPosition===null&&mt.state.dropLevelOffset===null&&mt.state.dropTargetKey===null&&mt.state.dropContainerKey===null&&mt.state.dropTargetPos===null&&mt.state.dropAllowed===!1&&mt.state.dragOverNodeKey===null||mt.resetDragState():zr===mt.state.dropPosition&&ao===mt.state.dropLevelOffset&&Wr===mt.state.dropTargetKey&&Or===mt.state.dropContainerKey&&ir===mt.state.dropTargetPos&&ss===mt.state.dropAllowed&&Us===mt.state.dragOverNodeKey||mt.setState({dropPosition:zr,dropLevelOffset:ao,dropTargetKey:Wr,dropContainerKey:Or,dropTargetPos:ir,dropAllowed:ss,dragOverNodeKey:Us}),$n==null||$n({event:qn,node:(0,Zt.F)(Kn)}))}}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeDragLeave",function(qn,Kn){mt.currentMouseOverDroppableNodeKey===Kn.eventKey&&!qn.currentTarget.contains(qn.relatedTarget)&&(mt.resetDragState(),mt.currentMouseOverDroppableNodeKey=null);var oi=mt.props.onDragLeave;oi==null||oi({event:qn,node:(0,Zt.F)(Kn)})}),(0,nt.Z)((0,Mt.Z)(mt),"onWindowDragEnd",function(qn){mt.onNodeDragEnd(qn,null,!0),window.removeEventListener("dragend",mt.onWindowDragEnd)}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeDragEnd",function(qn,Kn){var oi=mt.props.onDragEnd;mt.setState({dragOverNodeKey:null}),mt.cleanDragState(),oi==null||oi({event:qn,node:(0,Zt.F)(Kn)}),mt.dragNodeProps=null,window.removeEventListener("dragend",mt.onWindowDragEnd)}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeDrop",function(qn,Kn){var oi,Wi=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,Nr=mt.state,Uo=Nr.dragChildrenKeys,Vr=Nr.dropPosition,lo=Nr.dropTargetKey,Rn=Nr.dropTargetPos,$n=Nr.dropAllowed;if($n){var pi=mt.props.onDrop;if(mt.setState({dragOverNodeKey:null}),mt.cleanDragState(),lo!==null){var Ai=(0,Jt.Z)((0,Jt.Z)({},(0,Zt.H8)(lo,mt.getTreeNodeRequiredProps())),{},{active:((oi=mt.getActiveItem())===null||oi===void 0?void 0:oi.key)===lo,data:(0,Ti.Z)(mt.state.keyEntities,lo).node}),Cr=Uo.includes(lo);(0,ue.ZP)(!Cr,"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.");var zr=(0,ni.yx)(Rn),ao={event:qn,node:(0,Zt.F)(Ai),dragNode:mt.dragNodeProps?(0,Zt.F)(mt.dragNodeProps):null,dragNodesKeys:[mt.dragNodeProps.eventKey].concat(Uo),dropToGap:Vr!==0,dropPosition:Vr+Number(zr[zr.length-1])};Wi||pi==null||pi(ao),mt.dragNodeProps=null}}}),(0,nt.Z)((0,Mt.Z)(mt),"cleanDragState",function(){var qn=mt.state.draggingNodeKey;qn!==null&&mt.setState({draggingNodeKey:null,dropPosition:null,dropContainerKey:null,dropTargetKey:null,dropLevelOffset:null,dropAllowed:!0,dragOverNodeKey:null}),mt.dragStartMousePosition=null,mt.currentMouseOverDroppableNodeKey=null}),(0,nt.Z)((0,Mt.Z)(mt),"triggerExpandActionExpand",function(qn,Kn){var oi=mt.state,Wi=oi.expandedKeys,Nr=oi.flattenNodes,Uo=Kn.expanded,Vr=Kn.key,lo=Kn.isLeaf;if(!(lo||qn.shiftKey||qn.metaKey||qn.ctrlKey)){var Rn=Nr.filter(function(pi){return pi.key===Vr})[0],$n=(0,Zt.F)((0,Jt.Z)((0,Jt.Z)({},(0,Zt.H8)(Vr,mt.getTreeNodeRequiredProps())),{},{data:Rn.data}));mt.setExpandedKeys(Uo?(0,ni._5)(Wi,Vr):(0,ni.L0)(Wi,Vr)),mt.onNodeExpand(qn,$n)}}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeClick",function(qn,Kn){var oi=mt.props,Wi=oi.onClick,Nr=oi.expandAction;Nr==="click"&&mt.triggerExpandActionExpand(qn,Kn),Wi==null||Wi(qn,Kn)}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeDoubleClick",function(qn,Kn){var oi=mt.props,Wi=oi.onDoubleClick,Nr=oi.expandAction;Nr==="doubleClick"&&mt.triggerExpandActionExpand(qn,Kn),Wi==null||Wi(qn,Kn)}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeSelect",function(qn,Kn){var oi=mt.state.selectedKeys,Wi=mt.state,Nr=Wi.keyEntities,Uo=Wi.fieldNames,Vr=mt.props,lo=Vr.onSelect,Rn=Vr.multiple,$n=Kn.selected,pi=Kn[Uo.key],Ai=!$n;Ai?Rn?oi=(0,ni.L0)(oi,pi):oi=[pi]:oi=(0,ni._5)(oi,pi);var Cr=oi.map(function(zr){var ao=(0,Ti.Z)(Nr,zr);return ao?ao.node:null}).filter(Boolean);mt.setUncontrolledState({selectedKeys:oi}),lo==null||lo(oi,{event:"select",selected:Ai,node:Kn,selectedNodes:Cr,nativeEvent:qn.nativeEvent})}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeCheck",function(qn,Kn,oi){var Wi=mt.state,Nr=Wi.keyEntities,Uo=Wi.checkedKeys,Vr=Wi.halfCheckedKeys,lo=mt.props,Rn=lo.checkStrictly,$n=lo.onCheck,pi=Kn.key,Ai,Cr={event:"check",node:Kn,checked:oi,nativeEvent:qn.nativeEvent};if(Rn){var zr=oi?(0,ni.L0)(Uo,pi):(0,ni._5)(Uo,pi),ao=(0,ni._5)(Vr,pi);Ai={checked:zr,halfChecked:ao},Cr.checkedNodes=zr.map(function(as){return(0,Ti.Z)(Nr,as)}).filter(Boolean).map(function(as){return as.node}),mt.setUncontrolledState({checkedKeys:zr})}else{var Wr=(0,en.S)([].concat((0,Qt.Z)(Uo),[pi]),!0,Nr),Or=Wr.checkedKeys,ir=Wr.halfCheckedKeys;if(!oi){var ss=new Set(Or);ss.delete(pi);var Us=(0,en.S)(Array.from(ss),{checked:!1,halfCheckedKeys:ir},Nr);Or=Us.checkedKeys,ir=Us.halfCheckedKeys}Ai=Or,Cr.checkedNodes=[],Cr.checkedNodesPositions=[],Cr.halfCheckedKeys=ir,Or.forEach(function(as){var ls=(0,Ti.Z)(Nr,as);if(ls){var La=ls.node,Fs=ls.pos;Cr.checkedNodes.push(La),Cr.checkedNodesPositions.push({node:La,pos:Fs})}}),mt.setUncontrolledState({checkedKeys:Or},!1,{halfCheckedKeys:ir})}$n==null||$n(Ai,Cr)}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeLoad",function(qn){var Kn,oi=qn.key,Wi=mt.state.keyEntities,Nr=(0,Ti.Z)(Wi,oi);if(!(Nr!=null&&(Kn=Nr.children)!==null&&Kn!==void 0&&Kn.length)){var Uo=new Promise(function(Vr,lo){mt.setState(function(Rn){var $n=Rn.loadedKeys,pi=$n===void 0?[]:$n,Ai=Rn.loadingKeys,Cr=Ai===void 0?[]:Ai,zr=mt.props,ao=zr.loadData,Wr=zr.onLoad;if(!ao||pi.includes(oi)||Cr.includes(oi))return null;var Or=ao(qn);return Or.then(function(){var ir=mt.state.loadedKeys,ss=(0,ni.L0)(ir,oi);Wr==null||Wr(ss,{event:"load",node:qn}),mt.setUncontrolledState({loadedKeys:ss}),mt.setState(function(Us){return{loadingKeys:(0,ni._5)(Us.loadingKeys,oi)}}),Vr()}).catch(function(ir){if(mt.setState(function(Us){return{loadingKeys:(0,ni._5)(Us.loadingKeys,oi)}}),mt.loadingRetryTimes[oi]=(mt.loadingRetryTimes[oi]||0)+1,mt.loadingRetryTimes[oi]>=Lr){var ss=mt.state.loadedKeys;(0,ue.ZP)(!1,"Retry for `loadData` many times but still failed. No more retry."),mt.setUncontrolledState({loadedKeys:(0,ni.L0)(ss,oi)}),Vr()}lo(ir)}),{loadingKeys:(0,ni.L0)(Cr,oi)}})});return Uo.catch(function(){}),Uo}}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeMouseEnter",function(qn,Kn){var oi=mt.props.onMouseEnter;oi==null||oi({event:qn,node:Kn})}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeMouseLeave",function(qn,Kn){var oi=mt.props.onMouseLeave;oi==null||oi({event:qn,node:Kn})}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeContextMenu",function(qn,Kn){var oi=mt.props.onRightClick;oi&&(qn.preventDefault(),oi({event:qn,node:Kn}))}),(0,nt.Z)((0,Mt.Z)(mt),"onFocus",function(){var qn=mt.props.onFocus;mt.setState({focused:!0});for(var Kn=arguments.length,oi=new Array(Kn),Wi=0;Wi<Kn;Wi++)oi[Wi]=arguments[Wi];qn==null||qn.apply(void 0,oi)}),(0,nt.Z)((0,Mt.Z)(mt),"onBlur",function(){var qn=mt.props.onBlur;mt.setState({focused:!1}),mt.onActiveChange(null);for(var Kn=arguments.length,oi=new Array(Kn),Wi=0;Wi<Kn;Wi++)oi[Wi]=arguments[Wi];qn==null||qn.apply(void 0,oi)}),(0,nt.Z)((0,Mt.Z)(mt),"getTreeNodeRequiredProps",function(){var qn=mt.state,Kn=qn.expandedKeys,oi=qn.selectedKeys,Wi=qn.loadedKeys,Nr=qn.loadingKeys,Uo=qn.checkedKeys,Vr=qn.halfCheckedKeys,lo=qn.dragOverNodeKey,Rn=qn.dropPosition,$n=qn.keyEntities;return{expandedKeys:Kn||[],selectedKeys:oi||[],loadedKeys:Wi||[],loadingKeys:Nr||[],checkedKeys:Uo||[],halfCheckedKeys:Vr||[],dragOverNodeKey:lo,dropPosition:Rn,keyEntities:$n}}),(0,nt.Z)((0,Mt.Z)(mt),"setExpandedKeys",function(qn){var Kn=mt.state,oi=Kn.treeData,Wi=Kn.fieldNames,Nr=(0,Zt.oH)(oi,qn,Wi);mt.setUncontrolledState({expandedKeys:qn,flattenNodes:Nr},!0)}),(0,nt.Z)((0,Mt.Z)(mt),"onNodeExpand",function(qn,Kn){var oi=mt.state.expandedKeys,Wi=mt.state,Nr=Wi.listChanging,Uo=Wi.fieldNames,Vr=mt.props,lo=Vr.onExpand,Rn=Vr.loadData,$n=Kn.expanded,pi=Kn[Uo.key];if(!Nr){var Ai=oi.includes(pi),Cr=!$n;if((0,ue.ZP)($n&&Ai||!$n&&!Ai,"Expand state not sync with index check"),oi=Cr?(0,ni.L0)(oi,pi):(0,ni._5)(oi,pi),mt.setExpandedKeys(oi),lo==null||lo(oi,{node:Kn,expanded:Cr,nativeEvent:qn.nativeEvent}),Cr&&Rn){var zr=mt.onNodeLoad(Kn);zr&&zr.then(function(){var ao=(0,Zt.oH)(mt.state.treeData,oi,Uo);mt.setUncontrolledState({flattenNodes:ao})}).catch(function(){var ao=mt.state.expandedKeys,Wr=(0,ni._5)(ao,pi);mt.setExpandedKeys(Wr)})}}}),(0,nt.Z)((0,Mt.Z)(mt),"onListChangeStart",function(){mt.setUncontrolledState({listChanging:!0})}),(0,nt.Z)((0,Mt.Z)(mt),"onListChangeEnd",function(){setTimeout(function(){mt.setUncontrolledState({listChanging:!1})})}),(0,nt.Z)((0,Mt.Z)(mt),"onActiveChange",function(qn){var Kn=mt.state.activeKey,oi=mt.props,Wi=oi.onActiveChange,Nr=oi.itemScrollOffset,Uo=Nr===void 0?0:Nr;Kn!==qn&&(mt.setState({activeKey:qn}),qn!==null&&mt.scrollTo({key:qn,offset:Uo}),Wi==null||Wi(qn))}),(0,nt.Z)((0,Mt.Z)(mt),"getActiveItem",function(){var qn=mt.state,Kn=qn.activeKey,oi=qn.flattenNodes;return Kn===null?null:oi.find(function(Wi){var Nr=Wi.key;return Nr===Kn})||null}),(0,nt.Z)((0,Mt.Z)(mt),"offsetActiveKey",function(qn){var Kn=mt.state,oi=Kn.flattenNodes,Wi=Kn.activeKey,Nr=oi.findIndex(function(lo){var Rn=lo.key;return Rn===Wi});Nr===-1&&qn<0&&(Nr=oi.length),Nr=(Nr+qn+oi.length)%oi.length;var Uo=oi[Nr];if(Uo){var Vr=Uo.key;mt.onActiveChange(Vr)}else mt.onActiveChange(null)}),(0,nt.Z)((0,Mt.Z)(mt),"onKeyDown",function(qn){var Kn=mt.state,oi=Kn.activeKey,Wi=Kn.expandedKeys,Nr=Kn.checkedKeys,Uo=Kn.fieldNames,Vr=mt.props,lo=Vr.onKeyDown,Rn=Vr.checkable,$n=Vr.selectable;switch(qn.which){case on.Z.UP:{mt.offsetActiveKey(-1),qn.preventDefault();break}case on.Z.DOWN:{mt.offsetActiveKey(1),qn.preventDefault();break}}var pi=mt.getActiveItem();if(pi&&pi.data){var Ai=mt.getTreeNodeRequiredProps(),Cr=pi.data.isLeaf===!1||!!(pi.data[Uo.children]||[]).length,zr=(0,Zt.F)((0,Jt.Z)((0,Jt.Z)({},(0,Zt.H8)(oi,Ai)),{},{data:pi.data,active:!0}));switch(qn.which){case on.Z.LEFT:{Cr&&Wi.includes(oi)?mt.onNodeExpand({},zr):pi.parent&&mt.onActiveChange(pi.parent.key),qn.preventDefault();break}case on.Z.RIGHT:{Cr&&!Wi.includes(oi)?mt.onNodeExpand({},zr):pi.children&&pi.children.length&&mt.onActiveChange(pi.children[0].key),qn.preventDefault();break}case on.Z.ENTER:case on.Z.SPACE:{Rn&&!zr.disabled&&zr.checkable!==!1&&!zr.disableCheckbox?mt.onNodeCheck({},zr,!Nr.includes(oi)):!Rn&&$n&&!zr.disabled&&zr.selectable!==!1&&mt.onNodeSelect({},zr);break}}}lo==null||lo(qn)}),(0,nt.Z)((0,Mt.Z)(mt),"setUncontrolledState",function(qn){var Kn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,oi=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;if(!mt.destroyed){var Wi=!1,Nr=!0,Uo={};Object.keys(qn).forEach(function(Vr){if(mt.props.hasOwnProperty(Vr)){Nr=!1;return}Wi=!0,Uo[Vr]=qn[Vr]}),Wi&&(!Kn||Nr)&&mt.setState((0,Jt.Z)((0,Jt.Z)({},Uo),oi))}}),(0,nt.Z)((0,Mt.Z)(mt),"scrollTo",function(qn){mt.listRef.current.scrollTo(qn)}),mt}return(0,dt.Z)(qe,[{key:"componentDidMount",value:function(){this.destroyed=!1,this.onUpdated()}},{key:"componentDidUpdate",value:function(){this.onUpdated()}},{key:"onUpdated",value:function(){var An=this.props,Gn=An.activeKey,fo=An.itemScrollOffset,qn=fo===void 0?0:fo;Gn!==void 0&&Gn!==this.state.activeKey&&(this.setState({activeKey:Gn}),Gn!==null&&this.scrollTo({key:Gn,offset:qn}))}},{key:"componentWillUnmount",value:function(){window.removeEventListener("dragend",this.onWindowDragEnd),this.destroyed=!0}},{key:"resetDragState",value:function(){this.setState({dragOverNodeKey:null,dropPosition:null,dropLevelOffset:null,dropTargetKey:null,dropContainerKey:null,dropTargetPos:null,dropAllowed:!1})}},{key:"render",value:function(){var An=this.state,Gn=An.focused,fo=An.flattenNodes,qn=An.keyEntities,Kn=An.draggingNodeKey,oi=An.activeKey,Wi=An.dropLevelOffset,Nr=An.dropContainerKey,Uo=An.dropTargetKey,Vr=An.dropPosition,lo=An.dragOverNodeKey,Rn=An.indent,$n=this.props,pi=$n.prefixCls,Ai=$n.className,Cr=$n.style,zr=$n.showLine,ao=$n.focusable,Wr=$n.tabIndex,Or=Wr===void 0?0:Wr,ir=$n.selectable,ss=$n.showIcon,Us=$n.icon,as=$n.switcherIcon,ls=$n.draggable,La=$n.checkable,Fs=$n.checkStrictly,ha=$n.disabled,Al=$n.motion,We=$n.loadData,ui=$n.filterTreeNode,Si=$n.height,ms=$n.itemHeight,Po=$n.scrollWidth,Xr=$n.virtual,si=$n.titleRender,Hi=$n.dropIndicatorRender,or=$n.onContextMenu,Fn=$n.onScroll,vn=$n.direction,pn=$n.rootClassName,Ur=$n.rootStyle,Ho=(0,et.Z)(this.props,{aria:!0,data:!0}),bo;ls&&((0,yt.Z)(ls)==="object"?bo=ls:typeof ls=="function"?bo={nodeDraggable:ls}:bo={});var ji={prefixCls:pi,selectable:ir,showIcon:ss,icon:Us,switcherIcon:as,draggable:bo,draggingNodeKey:Kn,checkable:La,checkStrictly:Fs,disabled:ha,keyEntities:qn,dropLevelOffset:Wi,dropContainerKey:Nr,dropTargetKey:Uo,dropPosition:Vr,dragOverNodeKey:lo,indent:Rn,direction:vn,dropIndicatorRender:Hi,loadData:We,filterTreeNode:ui,titleRender:si,onNodeClick:this.onNodeClick,onNodeDoubleClick:this.onNodeDoubleClick,onNodeExpand:this.onNodeExpand,onNodeSelect:this.onNodeSelect,onNodeCheck:this.onNodeCheck,onNodeLoad:this.onNodeLoad,onNodeMouseEnter:this.onNodeMouseEnter,onNodeMouseLeave:this.onNodeMouseLeave,onNodeContextMenu:this.onNodeContextMenu,onNodeDragStart:this.onNodeDragStart,onNodeDragEnter:this.onNodeDragEnter,onNodeDragOver:this.onNodeDragOver,onNodeDragLeave:this.onNodeDragLeave,onNodeDragEnd:this.onNodeDragEnd,onNodeDrop:this.onNodeDrop};return ce.createElement(Ce.k.Provider,{value:ji},ce.createElement("div",{className:rn()(pi,Ai,pn,(0,nt.Z)((0,nt.Z)((0,nt.Z)({},"".concat(pi,"-show-line"),zr),"".concat(pi,"-focused"),Gn),"".concat(pi,"-active-focused"),oi!==null)),style:Ur},ce.createElement(Rt,(0,Me.Z)({ref:this.listRef,prefixCls:pi,style:Cr,data:fo,disabled:ha,selectable:ir,checkable:!!La,motion:Al,dragging:Kn!==null,height:Si,itemHeight:ms,virtual:Xr,focusable:ao,focused:Gn,tabIndex:Or,activeItem:this.getActiveItem(),onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onActiveChange:this.onActiveChange,onListChangeStart:this.onListChangeStart,onListChangeEnd:this.onListChangeEnd,onContextMenu:or,onScroll:Fn,scrollWidth:Po},this.getTreeNodeRequiredProps(),Ho))))}}],[{key:"getDerivedStateFromProps",value:function(An,Gn){var fo=Gn.prevProps,qn={prevProps:An};function Kn(Or){return!fo&&An.hasOwnProperty(Or)||fo&&fo[Or]!==An[Or]}var oi,Wi=Gn.fieldNames;if(Kn("fieldNames")&&(Wi=(0,Zt.w$)(An.fieldNames),qn.fieldNames=Wi),Kn("treeData")?oi=An.treeData:Kn("children")&&((0,ue.ZP)(!1,"`children` of Tree is deprecated. Please use `treeData` instead."),oi=(0,Zt.zn)(An.children)),oi){qn.treeData=oi;var Nr=(0,Zt.I8)(oi,{fieldNames:Wi});qn.keyEntities=(0,Jt.Z)((0,nt.Z)({},At,_i),Nr.keyEntities)}var Uo=qn.keyEntities||Gn.keyEntities;if(Kn("expandedKeys")||fo&&Kn("autoExpandParent"))qn.expandedKeys=An.autoExpandParent||!fo&&An.defaultExpandParent?(0,ni.r7)(An.expandedKeys,Uo):An.expandedKeys;else if(!fo&&An.defaultExpandAll){var Vr=(0,Jt.Z)({},Uo);delete Vr[At];var lo=[];Object.keys(Vr).forEach(function(Or){var ir=Vr[Or];ir.children&&ir.children.length&&lo.push(ir.key)}),qn.expandedKeys=lo}else!fo&&An.defaultExpandedKeys&&(qn.expandedKeys=An.autoExpandParent||An.defaultExpandParent?(0,ni.r7)(An.defaultExpandedKeys,Uo):An.defaultExpandedKeys);if(qn.expandedKeys||delete qn.expandedKeys,oi||qn.expandedKeys){var Rn=(0,Zt.oH)(oi||Gn.treeData,qn.expandedKeys||Gn.expandedKeys,Wi);qn.flattenNodes=Rn}if(An.selectable&&(Kn("selectedKeys")?qn.selectedKeys=(0,ni.BT)(An.selectedKeys,An):!fo&&An.defaultSelectedKeys&&(qn.selectedKeys=(0,ni.BT)(An.defaultSelectedKeys,An))),An.checkable){var $n;if(Kn("checkedKeys")?$n=(0,ni.E6)(An.checkedKeys)||{}:!fo&&An.defaultCheckedKeys?$n=(0,ni.E6)(An.defaultCheckedKeys)||{}:oi&&($n=(0,ni.E6)(An.checkedKeys)||{checkedKeys:Gn.checkedKeys,halfCheckedKeys:Gn.halfCheckedKeys}),$n){var pi=$n,Ai=pi.checkedKeys,Cr=Ai===void 0?[]:Ai,zr=pi.halfCheckedKeys,ao=zr===void 0?[]:zr;if(!An.checkStrictly){var Wr=(0,en.S)(Cr,!0,Uo);Cr=Wr.checkedKeys,ao=Wr.halfCheckedKeys}qn.checkedKeys=Cr,qn.halfCheckedKeys=ao}}return Kn("loadedKeys")&&(qn.loadedKeys=An.loadedKeys),qn}}]),qe}(ce.Component);(0,nt.Z)(Tt,"defaultProps",{prefixCls:"rc-tree",showLine:!1,showIcon:!0,selectable:!0,multiple:!1,checkable:!1,disabled:!1,checkStrictly:!1,draggable:!1,defaultExpandParent:!0,autoExpandParent:!1,defaultExpandAll:!1,defaultExpandedKeys:[],defaultCheckedKeys:[],defaultSelectedKeys:[],dropIndicatorRender:Te,allowDrop:function(){return!0},expandAction:!1}),(0,nt.Z)(Tt,"TreeNode",xt.Z);var Ze=Tt,Ge=Ze},82661:function(Cn,Ei,je){"use strict";je.d(Ei,{BT:function(){return ce},E6:function(){return Te},L0:function(){return nt},OM:function(){return ue},_5:function(){return qt},r7:function(){return Ie},wA:function(){return rn},yx:function(){return ln}});var Me=je(95190),yt=je(93664),Jt=je(48736),Qt=je(59301),It=je(639),dt=je(65065),Mt=je(34061),an=null;function qt(ze,Ye){if(!ze)return[];var lt=ze.slice(),Bt=lt.indexOf(Ye);return Bt>=0&<.splice(Bt,1),lt}function nt(ze,Ye){var lt=(ze||[]).slice();return lt.indexOf(Ye)===-1&<.push(Ye),lt}function ln(ze){return ze.split("-")}function rn(ze,Ye){var lt=[],Bt=(0,dt.Z)(Ye,ze);function kt(){var xt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];xt.forEach(function(Et){var $t=Et.key,Zt=Et.children;lt.push($t),kt(Zt)})}return kt(Bt.children),lt}function on(ze){if(ze.parent){var Ye=ln(ze.pos);return Number(Ye[Ye.length-1])===ze.parent.children.length-1}return!1}function et(ze){var Ye=ln(ze.pos);return Number(Ye[Ye.length-1])===0}function ue(ze,Ye,lt,Bt,kt,xt,Et,$t,Zt,Yn){var gn,Jn=ze.clientX,ci=ze.clientY,Xn=ze.target.getBoundingClientRect(),In=Xn.top,hi=Xn.height,Ht=(Yn==="rtl"?-1:1)*(((kt==null?void 0:kt.x)||0)-Jn),At=(Ht-12)/Bt,Hn=Zt.filter(function(Ge){var rt;return(rt=$t[Ge])===null||rt===void 0||(rt=rt.children)===null||rt===void 0?void 0:rt.length}),_i=(0,dt.Z)($t,lt.eventKey);if(ci<In+hi/2){var dr=Et.findIndex(function(Ge){return Ge.key===_i.key}),En=dr<=0?0:dr-1,Mn=Et[En].key;_i=(0,dt.Z)($t,Mn)}var Ln=_i.key,Mi=_i,Rt=_i.key,ni=0,en=0;if(!Hn.includes(Ln))for(var Ti=0;Ti<At&&on(_i);Ti+=1)_i=_i.parent,en+=1;var Lr=Ye.data,Tt=_i.node,Ze=!0;return et(_i)&&_i.level===0&&ci<In+hi/2&&xt({dragNode:Lr,dropNode:Tt,dropPosition:-1})&&_i.key===lt.eventKey?ni=-1:(Mi.children||[]).length&&Hn.includes(Rt)?xt({dragNode:Lr,dropNode:Tt,dropPosition:0})?ni=0:Ze=!1:en===0?At>-1.5?xt({dragNode:Lr,dropNode:Tt,dropPosition:1})?ni=1:Ze=!1:xt({dragNode:Lr,dropNode:Tt,dropPosition:0})?ni=0:xt({dragNode:Lr,dropNode:Tt,dropPosition:1})?ni=1:Ze=!1:xt({dragNode:Lr,dropNode:Tt,dropPosition:1})?ni=1:Ze=!1,{dropPosition:ni,dropLevelOffset:en,dropTargetKey:_i.key,dropTargetPos:_i.pos,dragOverNodeKey:Rt,dropContainerKey:ni===0?null:((gn=_i.parent)===null||gn===void 0?void 0:gn.key)||null,dropAllowed:Ze}}function ce(ze,Ye){if(ze){var lt=Ye.multiple;return lt?ze.slice():ze.length?[ze[0]]:ze}}var Ce=function(Ye){return Ye};function Ae(ze,Ye){if(!ze)return[];var lt=Ye||{},Bt=lt.processProps,kt=Bt===void 0?Ce:Bt,xt=Array.isArray(ze)?ze:[ze];return xt.map(function(Et){var $t=Et.children,Zt=_objectWithoutProperties(Et,an),Yn=Ae($t,Ye);return React.createElement(TreeNode,_extends({key:Zt.key},kt(Zt)),Yn)})}function Te(ze){if(!ze)return null;var Ye;if(Array.isArray(ze))Ye={checkedKeys:ze,halfCheckedKeys:void 0};else if((0,yt.Z)(ze)==="object")Ye={checkedKeys:ze.checked||void 0,halfCheckedKeys:ze.halfChecked||void 0};else return(0,Jt.ZP)(!1,"`checkedKeys` is not an array or an object"),null;return Ye}function Ie(ze,Ye){var lt=new Set;function Bt(kt){if(!lt.has(kt)){var xt=(0,dt.Z)(Ye,kt);if(xt){lt.add(kt);var Et=xt.parent,$t=xt.node;$t.disabled||Et&&Bt(Et.key)}}}return(ze||[]).forEach(function(kt){Bt(kt)}),(0,Me.Z)(lt)}},34643:function(Cn,Ei,je){"use strict";je.d(Ei,{S:function(){return Mt}});var Me=je(48736),yt=je(65065);function Jt(an,qt){var nt=new Set;return an.forEach(function(ln){qt.has(ln)||nt.add(ln)}),nt}function Qt(an){var qt=an||{},nt=qt.disabled,ln=qt.disableCheckbox,rn=qt.checkable;return!!(nt||ln)||rn===!1}function It(an,qt,nt,ln){for(var rn=new Set(an),on=new Set,et=0;et<=nt;et+=1){var ue=qt.get(et)||new Set;ue.forEach(function(Te){var Ie=Te.key,ze=Te.node,Ye=Te.children,lt=Ye===void 0?[]:Ye;rn.has(Ie)&&!ln(ze)&<.filter(function(Bt){return!ln(Bt.node)}).forEach(function(Bt){rn.add(Bt.key)})})}for(var ce=new Set,Ce=nt;Ce>=0;Ce-=1){var Ae=qt.get(Ce)||new Set;Ae.forEach(function(Te){var Ie=Te.parent,ze=Te.node;if(!(ln(ze)||!Te.parent||ce.has(Te.parent.key))){if(ln(Te.parent.node)){ce.add(Ie.key);return}var Ye=!0,lt=!1;(Ie.children||[]).filter(function(Bt){return!ln(Bt.node)}).forEach(function(Bt){var kt=Bt.key,xt=rn.has(kt);Ye&&!xt&&(Ye=!1),!lt&&(xt||on.has(kt))&&(lt=!0)}),Ye&&rn.add(Ie.key),lt&&on.add(Ie.key),ce.add(Ie.key)}})}return{checkedKeys:Array.from(rn),halfCheckedKeys:Array.from(Jt(on,rn))}}function dt(an,qt,nt,ln,rn){for(var on=new Set(an),et=new Set(qt),ue=0;ue<=ln;ue+=1){var ce=nt.get(ue)||new Set;ce.forEach(function(Ie){var ze=Ie.key,Ye=Ie.node,lt=Ie.children,Bt=lt===void 0?[]:lt;!on.has(ze)&&!et.has(ze)&&!rn(Ye)&&Bt.filter(function(kt){return!rn(kt.node)}).forEach(function(kt){on.delete(kt.key)})})}et=new Set;for(var Ce=new Set,Ae=ln;Ae>=0;Ae-=1){var Te=nt.get(Ae)||new Set;Te.forEach(function(Ie){var ze=Ie.parent,Ye=Ie.node;if(!(rn(Ye)||!Ie.parent||Ce.has(Ie.parent.key))){if(rn(Ie.parent.node)){Ce.add(ze.key);return}var lt=!0,Bt=!1;(ze.children||[]).filter(function(kt){return!rn(kt.node)}).forEach(function(kt){var xt=kt.key,Et=on.has(xt);lt&&!Et&&(lt=!1),!Bt&&(Et||et.has(xt))&&(Bt=!0)}),lt||on.delete(ze.key),Bt&&et.add(ze.key),Ce.add(ze.key)}})}return{checkedKeys:Array.from(on),halfCheckedKeys:Array.from(Jt(et,on))}}function Mt(an,qt,nt,ln){var rn=[],on;ln?on=ln:on=Qt;var et=new Set(an.filter(function(Ae){var Te=!!(0,yt.Z)(nt,Ae);return Te||rn.push(Ae),Te})),ue=new Map,ce=0;Object.keys(nt).forEach(function(Ae){var Te=nt[Ae],Ie=Te.level,ze=ue.get(Ie);ze||(ze=new Set,ue.set(Ie,ze)),ze.add(Te),ce=Math.max(ce,Ie)}),(0,Me.ZP)(!rn.length,"Tree missing follow keys: ".concat(rn.slice(0,100).map(function(Ae){return"'".concat(Ae,"'")}).join(", ")));var Ce;return qt===!0?Ce=It(et,ue,ce,on):Ce=dt(et,qt.halfCheckedKeys,ue,ce,on),Ce}},65065:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return Me}});function Me(yt,Jt){return yt[Jt]}},34061:function(Cn,Ei,je){"use strict";je.d(Ei,{F:function(){return Ie},H8:function(){return Te},I8:function(){return Ae},km:function(){return rn},oH:function(){return ce},w$:function(){return on},zn:function(){return ue}});var Me=je(93664),yt=je(95190),Jt=je(20439),Qt=je(62646),It=je(11592),dt=je(2738),Mt=je(48736),an=je(65065),qt=["children"];function nt(ze,Ye){return"".concat(ze,"-").concat(Ye)}function ln(ze){return ze&&ze.type&&ze.type.isTreeNode}function rn(ze,Ye){return ze!=null?ze:Ye}function on(ze){var Ye=ze||{},lt=Ye.title,Bt=Ye._title,kt=Ye.key,xt=Ye.children,Et=lt||"title";return{title:Et,_title:Bt||[Et],key:kt||"key",children:xt||"children"}}function et(ze,Ye){var lt=new Map;function Bt(kt){var xt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";(kt||[]).forEach(function(Et){var $t=Et[Ye.key],Zt=Et[Ye.children];warning($t!=null,"Tree node must have a certain key: [".concat(xt).concat($t,"]"));var Yn=String($t);warning(!lt.has(Yn)||$t===null||$t===void 0,"Same 'key' exist in the Tree: ".concat(Yn)),lt.set(Yn,!0),Bt(Zt,"".concat(xt).concat(Yn," > "))})}Bt(ze)}function ue(ze){function Ye(lt){var Bt=(0,It.Z)(lt);return Bt.map(function(kt){if(!ln(kt))return(0,Mt.ZP)(!kt,"Tree/TreeNode can only accept TreeNode as children."),null;var xt=kt.key,Et=kt.props,$t=Et.children,Zt=(0,Qt.Z)(Et,qt),Yn=(0,Jt.Z)({key:xt},Zt),gn=Ye($t);return gn.length&&(Yn.children=gn),Yn}).filter(function(kt){return kt})}return Ye(ze)}function ce(ze,Ye,lt){var Bt=on(lt),kt=Bt._title,xt=Bt.key,Et=Bt.children,$t=new Set(Ye===!0?[]:Ye),Zt=[];function Yn(gn){var Jn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return gn.map(function(ci,Xn){for(var In=nt(Jn?Jn.pos:"0",Xn),hi=rn(ci[xt],In),Ht,At=0;At<kt.length;At+=1){var Hn=kt[At];if(ci[Hn]!==void 0){Ht=ci[Hn];break}}var _i=Object.assign((0,dt.Z)(ci,[].concat((0,yt.Z)(kt),[xt,Et])),{title:Ht,key:hi,parent:Jn,pos:In,children:null,data:ci,isStart:[].concat((0,yt.Z)(Jn?Jn.isStart:[]),[Xn===0]),isEnd:[].concat((0,yt.Z)(Jn?Jn.isEnd:[]),[Xn===gn.length-1])});return Zt.push(_i),Ye===!0||$t.has(hi)?_i.children=Yn(ci[Et]||[],_i):_i.children=[],_i})}return Yn(ze),Zt}function Ce(ze,Ye,lt){var Bt={};(0,Me.Z)(lt)==="object"?Bt=lt:Bt={externalGetKey:lt},Bt=Bt||{};var kt=Bt,xt=kt.childrenPropName,Et=kt.externalGetKey,$t=kt.fieldNames,Zt=on($t),Yn=Zt.key,gn=Zt.children,Jn=xt||gn,ci;Et?typeof Et=="string"?ci=function(hi){return hi[Et]}:typeof Et=="function"&&(ci=function(hi){return Et(hi)}):ci=function(hi,Ht){return rn(hi[Yn],Ht)};function Xn(In,hi,Ht,At){var Hn=In?In[Jn]:ze,_i=In?nt(Ht.pos,hi):"0",dr=In?[].concat((0,yt.Z)(At),[In]):[];if(In){var En=ci(In,_i),Mn={node:In,index:hi,pos:_i,key:En,parentPos:Ht.node?Ht.pos:null,level:Ht.level+1,nodes:dr};Ye(Mn)}Hn&&Hn.forEach(function(Ln,Mi){Xn(Ln,Mi,{node:In,pos:_i,level:Ht?Ht.level+1:-1},dr)})}Xn(null)}function Ae(ze){var Ye=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},lt=Ye.initWrapper,Bt=Ye.processEntity,kt=Ye.onProcessFinished,xt=Ye.externalGetKey,Et=Ye.childrenPropName,$t=Ye.fieldNames,Zt=arguments.length>2?arguments[2]:void 0,Yn=xt||Zt,gn={},Jn={},ci={posEntities:gn,keyEntities:Jn};return lt&&(ci=lt(ci)||ci),Ce(ze,function(Xn){var In=Xn.node,hi=Xn.index,Ht=Xn.pos,At=Xn.key,Hn=Xn.parentPos,_i=Xn.level,dr=Xn.nodes,En={node:In,nodes:dr,index:hi,key:At,pos:Ht,level:_i},Mn=rn(At,Ht);gn[Ht]=En,Jn[Mn]=En,En.parent=gn[Hn],En.parent&&(En.parent.children=En.parent.children||[],En.parent.children.push(En)),Bt&&Bt(En,ci)},{externalGetKey:Yn,childrenPropName:Et,fieldNames:$t}),kt&&kt(ci),ci}function Te(ze,Ye){var lt=Ye.expandedKeys,Bt=Ye.selectedKeys,kt=Ye.loadedKeys,xt=Ye.loadingKeys,Et=Ye.checkedKeys,$t=Ye.halfCheckedKeys,Zt=Ye.dragOverNodeKey,Yn=Ye.dropPosition,gn=Ye.keyEntities,Jn=(0,an.Z)(gn,ze),ci={eventKey:ze,expanded:lt.indexOf(ze)!==-1,selected:Bt.indexOf(ze)!==-1,loaded:kt.indexOf(ze)!==-1,loading:xt.indexOf(ze)!==-1,checked:Et.indexOf(ze)!==-1,halfChecked:$t.indexOf(ze)!==-1,pos:String(Jn?Jn.pos:""),dragOver:Zt===ze&&Yn===0,dragOverGapTop:Zt===ze&&Yn===-1,dragOverGapBottom:Zt===ze&&Yn===1};return ci}function Ie(ze){var Ye=ze.data,lt=ze.expanded,Bt=ze.selected,kt=ze.checked,xt=ze.loaded,Et=ze.loading,$t=ze.halfChecked,Zt=ze.dragOver,Yn=ze.dragOverGapTop,gn=ze.dragOverGapBottom,Jn=ze.pos,ci=ze.active,Xn=ze.eventKey,In=(0,Jt.Z)((0,Jt.Z)({},Ye),{},{expanded:lt,selected:Bt,checked:kt,loaded:xt,loading:Et,halfChecked:$t,dragOver:Zt,dragOverGapTop:Yn,dragOverGapBottom:gn,pos:Jn,active:ci,key:Xn});return"props"in In||Object.defineProperty(In,"props",{get:function(){return(0,Mt.ZP)(!1,"Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`."),ze}}),In}},90472:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return Xn}});var Me=je(14809),yt=je(99153),Jt=je(84851),Qt=je(13028),It=je(19257),dt=je(93046),Mt=je(4635),an=je(59301),qt=je(20439),nt=je(62646),ln=je(93664),rn=je(70539),on=je(95764),et=je(95190),ue=je(92310),ce=je.n(ue),Ce=je(26112),Ae=je(48736),Te=function(In,hi){if(In&&hi){var Ht=Array.isArray(hi)?hi:hi.split(","),At=In.name||"",Hn=In.type||"",_i=Hn.replace(/\/.*$/,"");return Ht.some(function(dr){var En=dr.trim();if(/^\*(\/\*)?$/.test(dr))return!0;if(En.charAt(0)==="."){var Mn=At.toLowerCase(),Ln=En.toLowerCase(),Mi=[Ln];return(Ln===".jpg"||Ln===".jpeg")&&(Mi=[".jpg",".jpeg"]),Mi.some(function(Rt){return Mn.endsWith(Rt)})}return/\/\*$/.test(En)?_i===En.replace(/\/.*$/,""):Hn===En?!0:/^\w+$/.test(En)?((0,Ae.ZP)(!1,"Upload takes an invalidate 'accept' type '".concat(En,"'.Skip for check.")),!0):!1})}return!0};function Ie(In,hi){var Ht="cannot ".concat(In.method," ").concat(In.action," ").concat(hi.status,"'"),At=new Error(Ht);return At.status=hi.status,At.method=In.method,At.url=In.action,At}function ze(In){var hi=In.responseText||In.response;if(!hi)return hi;try{return JSON.parse(hi)}catch(Ht){return hi}}function Ye(In){var hi=new XMLHttpRequest;In.onProgress&&hi.upload&&(hi.upload.onprogress=function(_i){_i.total>0&&(_i.percent=_i.loaded/_i.total*100),In.onProgress(_i)});var Ht=new FormData;In.data&&Object.keys(In.data).forEach(function(Hn){var _i=In.data[Hn];if(Array.isArray(_i)){_i.forEach(function(dr){Ht.append("".concat(Hn,"[]"),dr)});return}Ht.append(Hn,_i)}),In.file instanceof Blob?Ht.append(In.filename,In.file,In.file.name):Ht.append(In.filename,In.file),hi.onerror=function(_i){In.onError(_i)},hi.onload=function(){return hi.status<200||hi.status>=300?In.onError(Ie(In,hi),ze(hi)):In.onSuccess(ze(hi),hi)},hi.open(In.method,In.action,!0),In.withCredentials&&"withCredentials"in hi&&(hi.withCredentials=!0);var At=In.headers||{};return At["X-Requested-With"]!==null&&hi.setRequestHeader("X-Requested-With","XMLHttpRequest"),Object.keys(At).forEach(function(Hn){At[Hn]!==null&&hi.setRequestHeader(Hn,At[Hn])}),hi.send(Ht),{abort:function(){hi.abort()}}}var lt=function(){var In=(0,on.Z)((0,rn.Z)().mark(function hi(Ht,At){var Hn,_i,dr,En,Mn,Ln,Mi,Rt;return(0,rn.Z)().wrap(function(en){for(;;)switch(en.prev=en.next){case 0:Ln=function(){return Ln=(0,on.Z)((0,rn.Z)().mark(function Lr(Tt){return(0,rn.Z)().wrap(function(Ge){for(;;)switch(Ge.prev=Ge.next){case 0:return Ge.abrupt("return",new Promise(function(rt){Tt.file(function(Ft){At(Ft)?(Tt.fullPath&&!Ft.webkitRelativePath&&(Object.defineProperties(Ft,{webkitRelativePath:{writable:!0}}),Ft.webkitRelativePath=Tt.fullPath.replace(/^\//,""),Object.defineProperties(Ft,{webkitRelativePath:{writable:!1}})),rt(Ft)):rt(null)})}));case 1:case"end":return Ge.stop()}},Lr)})),Ln.apply(this,arguments)},Mn=function(Lr){return Ln.apply(this,arguments)},En=function(){return En=(0,on.Z)((0,rn.Z)().mark(function Lr(Tt){var Ze,Ge,rt,Ft,qe;return(0,rn.Z)().wrap(function(An){for(;;)switch(An.prev=An.next){case 0:Ze=Tt.createReader(),Ge=[];case 2:return An.next=5,new Promise(function(Gn){Ze.readEntries(Gn,function(){return Gn([])})});case 5:if(rt=An.sent,Ft=rt.length,Ft){An.next=9;break}return An.abrupt("break",12);case 9:for(qe=0;qe<Ft;qe++)Ge.push(rt[qe]);An.next=2;break;case 12:return An.abrupt("return",Ge);case 13:case"end":return An.stop()}},Lr)})),En.apply(this,arguments)},dr=function(Lr){return En.apply(this,arguments)},Hn=[],_i=[],Ht.forEach(function(Ti){return _i.push(Ti.webkitGetAsEntry())}),Mi=function(){var Ti=(0,on.Z)((0,rn.Z)().mark(function Lr(Tt,Ze){var Ge,rt;return(0,rn.Z)().wrap(function(qe){for(;;)switch(qe.prev=qe.next){case 0:if(Tt){qe.next=2;break}return qe.abrupt("return");case 2:if(Tt.path=Ze||"",!Tt.isFile){qe.next=10;break}return qe.next=6,Mn(Tt);case 6:Ge=qe.sent,Ge&&Hn.push(Ge),qe.next=15;break;case 10:if(!Tt.isDirectory){qe.next=15;break}return qe.next=13,dr(Tt);case 13:rt=qe.sent,_i.push.apply(_i,(0,et.Z)(rt));case 15:case"end":return qe.stop()}},Lr)}));return function(Tt,Ze){return Ti.apply(this,arguments)}}(),Rt=0;case 9:if(!(Rt<_i.length)){en.next=15;break}return en.next=12,Mi(_i[Rt]);case 12:Rt++,en.next=9;break;case 15:return en.abrupt("return",Hn);case 16:case"end":return en.stop()}},hi)}));return function(Ht,At){return In.apply(this,arguments)}}(),Bt=lt,kt=+new Date,xt=0;function Et(){return"rc-upload-".concat(kt,"-").concat(++xt)}var $t=["component","prefixCls","className","classNames","disabled","id","name","style","styles","multiple","accept","capture","children","directory","openFileDialogOnClick","onMouseEnter","onMouseLeave","hasControlInside"],Zt=function(In){(0,It.Z)(Ht,In);var hi=(0,dt.Z)(Ht);function Ht(){var At;(0,yt.Z)(this,Ht);for(var Hn=arguments.length,_i=new Array(Hn),dr=0;dr<Hn;dr++)_i[dr]=arguments[dr];return At=hi.call.apply(hi,[this].concat(_i)),(0,Mt.Z)((0,Qt.Z)(At),"state",{uid:Et()}),(0,Mt.Z)((0,Qt.Z)(At),"reqs",{}),(0,Mt.Z)((0,Qt.Z)(At),"fileInput",void 0),(0,Mt.Z)((0,Qt.Z)(At),"_isMounted",void 0),(0,Mt.Z)((0,Qt.Z)(At),"onChange",function(En){var Mn=At.props,Ln=Mn.accept,Mi=Mn.directory,Rt=En.target.files,ni=(0,et.Z)(Rt).filter(function(en){return!Mi||Te(en,Ln)});At.uploadFiles(ni),At.reset()}),(0,Mt.Z)((0,Qt.Z)(At),"onClick",function(En){var Mn=At.fileInput;if(Mn){var Ln=En.target,Mi=At.props.onClick;if(Ln&&Ln.tagName==="BUTTON"){var Rt=Mn.parentNode;Rt.focus(),Ln.blur()}Mn.click(),Mi&&Mi(En)}}),(0,Mt.Z)((0,Qt.Z)(At),"onKeyDown",function(En){En.key==="Enter"&&At.onClick(En)}),(0,Mt.Z)((0,Qt.Z)(At),"onFileDrop",function(){var En=(0,on.Z)((0,rn.Z)().mark(function Mn(Ln){var Mi,Rt,ni;return(0,rn.Z)().wrap(function(Ti){for(;;)switch(Ti.prev=Ti.next){case 0:if(Mi=At.props.multiple,Ln.preventDefault(),Ln.type!=="dragover"){Ti.next=4;break}return Ti.abrupt("return");case 4:if(!At.props.directory){Ti.next=11;break}return Ti.next=7,Bt(Array.prototype.slice.call(Ln.dataTransfer.items),function(Lr){return Te(Lr,At.props.accept)});case 7:Rt=Ti.sent,At.uploadFiles(Rt),Ti.next=14;break;case 11:ni=(0,et.Z)(Ln.dataTransfer.files).filter(function(Lr){return Te(Lr,At.props.accept)}),Mi===!1&&(ni=ni.slice(0,1)),At.uploadFiles(ni);case 14:case"end":return Ti.stop()}},Mn)}));return function(Mn){return En.apply(this,arguments)}}()),(0,Mt.Z)((0,Qt.Z)(At),"uploadFiles",function(En){var Mn=(0,et.Z)(En),Ln=Mn.map(function(Mi){return Mi.uid=Et(),At.processFile(Mi,Mn)});Promise.all(Ln).then(function(Mi){var Rt=At.props.onBatchStart;Rt==null||Rt(Mi.map(function(ni){var en=ni.origin,Ti=ni.parsedFile;return{file:en,parsedFile:Ti}})),Mi.filter(function(ni){return ni.parsedFile!==null}).forEach(function(ni){At.post(ni)})})}),(0,Mt.Z)((0,Qt.Z)(At),"processFile",function(){var En=(0,on.Z)((0,rn.Z)().mark(function Mn(Ln,Mi){var Rt,ni,en,Ti,Lr,Tt,Ze,Ge,rt;return(0,rn.Z)().wrap(function(qe){for(;;)switch(qe.prev=qe.next){case 0:if(Rt=At.props.beforeUpload,ni=Ln,!Rt){qe.next=14;break}return qe.prev=3,qe.next=6,Rt(Ln,Mi);case 6:ni=qe.sent,qe.next=12;break;case 9:qe.prev=9,qe.t0=qe.catch(3),ni=!1;case 12:if(ni!==!1){qe.next=14;break}return qe.abrupt("return",{origin:Ln,parsedFile:null,action:null,data:null});case 14:if(en=At.props.action,typeof en!="function"){qe.next=21;break}return qe.next=18,en(Ln);case 18:Ti=qe.sent,qe.next=22;break;case 21:Ti=en;case 22:if(Lr=At.props.data,typeof Lr!="function"){qe.next=29;break}return qe.next=26,Lr(Ln);case 26:Tt=qe.sent,qe.next=30;break;case 29:Tt=Lr;case 30:return Ze=((0,ln.Z)(ni)==="object"||typeof ni=="string")&&ni?ni:Ln,Ze instanceof File?Ge=Ze:Ge=new File([Ze],Ln.name,{type:Ln.type}),rt=Ge,rt.uid=Ln.uid,qe.abrupt("return",{origin:Ln,data:Tt,parsedFile:rt,action:Ti});case 35:case"end":return qe.stop()}},Mn,null,[[3,9]])}));return function(Mn,Ln){return En.apply(this,arguments)}}()),(0,Mt.Z)((0,Qt.Z)(At),"saveFileInput",function(En){At.fileInput=En}),At}return(0,Jt.Z)(Ht,[{key:"componentDidMount",value:function(){this._isMounted=!0}},{key:"componentWillUnmount",value:function(){this._isMounted=!1,this.abort()}},{key:"post",value:function(Hn){var _i=this,dr=Hn.data,En=Hn.origin,Mn=Hn.action,Ln=Hn.parsedFile;if(this._isMounted){var Mi=this.props,Rt=Mi.onStart,ni=Mi.customRequest,en=Mi.name,Ti=Mi.headers,Lr=Mi.withCredentials,Tt=Mi.method,Ze=En.uid,Ge=ni||Ye,rt={action:Mn,filename:en,data:dr,file:Ln,headers:Ti,withCredentials:Lr,method:Tt||"post",onProgress:function(qe){var mt=_i.props.onProgress;mt==null||mt(qe,Ln)},onSuccess:function(qe,mt){var An=_i.props.onSuccess;An==null||An(qe,Ln,mt),delete _i.reqs[Ze]},onError:function(qe,mt){var An=_i.props.onError;An==null||An(qe,mt,Ln),delete _i.reqs[Ze]}};Rt(En),this.reqs[Ze]=Ge(rt)}}},{key:"reset",value:function(){this.setState({uid:Et()})}},{key:"abort",value:function(Hn){var _i=this.reqs;if(Hn){var dr=Hn.uid?Hn.uid:Hn;_i[dr]&&_i[dr].abort&&_i[dr].abort(),delete _i[dr]}else Object.keys(_i).forEach(function(En){_i[En]&&_i[En].abort&&_i[En].abort(),delete _i[En]})}},{key:"render",value:function(){var Hn=this.props,_i=Hn.component,dr=Hn.prefixCls,En=Hn.className,Mn=Hn.classNames,Ln=Mn===void 0?{}:Mn,Mi=Hn.disabled,Rt=Hn.id,ni=Hn.name,en=Hn.style,Ti=Hn.styles,Lr=Ti===void 0?{}:Ti,Tt=Hn.multiple,Ze=Hn.accept,Ge=Hn.capture,rt=Hn.children,Ft=Hn.directory,qe=Hn.openFileDialogOnClick,mt=Hn.onMouseEnter,An=Hn.onMouseLeave,Gn=Hn.hasControlInside,fo=(0,nt.Z)(Hn,$t),qn=ce()((0,Mt.Z)((0,Mt.Z)((0,Mt.Z)({},dr,!0),"".concat(dr,"-disabled"),Mi),En,En)),Kn=Ft?{directory:"directory",webkitdirectory:"webkitdirectory"}:{},oi=Mi?{}:{onClick:qe?this.onClick:function(){},onKeyDown:qe?this.onKeyDown:function(){},onMouseEnter:mt,onMouseLeave:An,onDrop:this.onFileDrop,onDragOver:this.onFileDrop,tabIndex:Gn?void 0:"0"};return an.createElement(_i,(0,Me.Z)({},oi,{className:qn,role:Gn?void 0:"button",style:en}),an.createElement("input",(0,Me.Z)({},(0,Ce.Z)(fo,{aria:!0,data:!0}),{id:Rt,name:ni,disabled:Mi,type:"file",ref:this.saveFileInput,onClick:function(Nr){return Nr.stopPropagation()},key:this.state.uid,style:(0,qt.Z)({display:"none"},Lr.input),className:Ln.input,accept:Ze},Kn,{multiple:Tt,onChange:this.onChange},Ge!=null?{capture:Ge}:{})),rt)}}]),Ht}(an.Component),Yn=Zt;function gn(){}var Jn=function(In){(0,It.Z)(Ht,In);var hi=(0,dt.Z)(Ht);function Ht(){var At;(0,yt.Z)(this,Ht);for(var Hn=arguments.length,_i=new Array(Hn),dr=0;dr<Hn;dr++)_i[dr]=arguments[dr];return At=hi.call.apply(hi,[this].concat(_i)),(0,Mt.Z)((0,Qt.Z)(At),"uploader",void 0),(0,Mt.Z)((0,Qt.Z)(At),"saveUploader",function(En){At.uploader=En}),At}return(0,Jt.Z)(Ht,[{key:"abort",value:function(Hn){this.uploader.abort(Hn)}},{key:"render",value:function(){return an.createElement(Yn,(0,Me.Z)({},this.props,{ref:this.saveUploader}))}}]),Ht}(an.Component);(0,Mt.Z)(Jn,"defaultProps",{component:"span",prefixCls:"rc-upload",data:{},headers:{},name:"file",multipart:!1,onStart:gn,onError:gn,onSuccess:gn,multiple:!1,beforeUpload:null,customRequest:null,withCredentials:!1,openFileDialogOnClick:!0,hasControlInside:!1});var ci=Jn,Xn=ci},8224:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return yt}});var Me=je(4676);function yt(Jt,Qt,It,dt){var Mt=Me.unstable_batchedUpdates?function(qt){Me.unstable_batchedUpdates(It,qt)}:It;return Jt!=null&&Jt.addEventListener&&Jt.addEventListener(Qt,Mt,dt),{remove:function(){Jt!=null&&Jt.removeEventListener&&Jt.removeEventListener(Qt,Mt,dt)}}}},24514:function(Cn,Ei,je){"use strict";je.d(Ei,{G:function(){return Qt}});var Me=je(47273),yt=function(dt){if((0,Me.Z)()&&window.document.documentElement){var Mt=Array.isArray(dt)?dt:[dt],an=window.document.documentElement;return Mt.some(function(qt){return qt in an.style})}return!1},Jt=function(dt,Mt){if(!yt(dt))return!1;var an=document.createElement("div"),qt=an.style[dt];return an.style[dt]=Mt,an.style[dt]!==qt};function Qt(It,dt){return!Array.isArray(It)&&dt!==void 0?Jt(It,dt):yt(It)}},51581:function(Cn,Ei,je){"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});var Me=function(){function rn(on,et){for(var ue=0;ue<et.length;ue++){var ce=et[ue];ce.enumerable=ce.enumerable||!1,ce.configurable=!0,"value"in ce&&(ce.writable=!0),Object.defineProperty(on,ce.key,ce)}}return function(on,et,ue){return et&&rn(on.prototype,et),ue&&rn(on,ue),on}}(),yt=je(59301),Jt=dt(yt),Qt=je(12708),It=dt(Qt);function dt(rn){return rn&&rn.__esModule?rn:{default:rn}}function Mt(rn,on){var et={};for(var ue in rn)on.indexOf(ue)>=0||Object.prototype.hasOwnProperty.call(rn,ue)&&(et[ue]=rn[ue]);return et}function an(rn,on){if(!(rn instanceof on))throw new TypeError("Cannot call a class as a function")}function qt(rn,on){if(!rn)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return on&&(typeof on=="object"||typeof on=="function")?on:rn}function nt(rn,on){if(typeof on!="function"&&on!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof on);rn.prototype=Object.create(on&&on.prototype,{constructor:{value:rn,enumerable:!1,writable:!0,configurable:!0}}),on&&(Object.setPrototypeOf?Object.setPrototypeOf(rn,on):rn.__proto__=on)}var ln=function(rn){nt(on,rn);function on(et){an(this,on);var ue=qt(this,(on.__proto__||Object.getPrototypeOf(on)).call(this,et));return ue.scrollListener=ue.scrollListener.bind(ue),ue.eventListenerOptions=ue.eventListenerOptions.bind(ue),ue.mousewheelListener=ue.mousewheelListener.bind(ue),ue}return Me(on,[{key:"componentDidMount",value:function(){this.pageLoaded=this.props.pageStart,this.options=this.eventListenerOptions(),this.attachScrollListener()}},{key:"componentDidUpdate",value:function(){if(this.props.isReverse&&this.loadMore){var ue=this.getParentElement(this.scrollComponent);ue.scrollTop=ue.scrollHeight-this.beforeScrollHeight+this.beforeScrollTop,this.loadMore=!1}this.attachScrollListener()}},{key:"componentWillUnmount",value:function(){this.detachScrollListener(),this.detachMousewheelListener()}},{key:"isPassiveSupported",value:function(){var ue=!1,ce={get passive(){ue=!0}};try{document.addEventListener("test",null,ce),document.removeEventListener("test",null,ce)}catch(Ce){}return ue}},{key:"eventListenerOptions",value:function(){var ue=this.props.useCapture;return this.isPassiveSupported()&&(ue={useCapture:this.props.useCapture,passive:!0}),ue}},{key:"setDefaultLoader",value:function(ue){this.defaultLoader=ue}},{key:"detachMousewheelListener",value:function(){var ue=window;this.props.useWindow===!1&&(ue=this.scrollComponent.parentNode),ue.removeEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture)}},{key:"detachScrollListener",value:function(){var ue=window;this.props.useWindow===!1&&(ue=this.getParentElement(this.scrollComponent)),ue.removeEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),ue.removeEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture)}},{key:"getParentElement",value:function(ue){var ce=this.props.getScrollParent&&this.props.getScrollParent();return ce!=null?ce:ue&&ue.parentNode}},{key:"filterProps",value:function(ue){return ue}},{key:"attachScrollListener",value:function(){var ue=this.getParentElement(this.scrollComponent);if(!(!this.props.hasMore||!ue)){var ce=window;this.props.useWindow===!1&&(ce=ue),ce.addEventListener("mousewheel",this.mousewheelListener,this.options?this.options:this.props.useCapture),ce.addEventListener("scroll",this.scrollListener,this.options?this.options:this.props.useCapture),ce.addEventListener("resize",this.scrollListener,this.options?this.options:this.props.useCapture),this.props.initialLoad&&this.scrollListener()}}},{key:"mousewheelListener",value:function(ue){ue.deltaY===1&&!this.isPassiveSupported()&&ue.preventDefault()}},{key:"scrollListener",value:function(){var ue=this.scrollComponent,ce=window,Ce=this.getParentElement(ue),Ae=void 0;if(this.props.useWindow){var Te=document.documentElement||document.body.parentNode||document.body,Ie=ce.pageYOffset!==void 0?ce.pageYOffset:Te.scrollTop;this.props.isReverse?Ae=Ie:Ae=this.calculateOffset(ue,Ie)}else this.props.isReverse?Ae=Ce.scrollTop:Ae=ue.scrollHeight-Ce.scrollTop-Ce.clientHeight;Ae<Number(this.props.threshold)&&ue&&ue.offsetParent!==null&&(this.detachScrollListener(),this.beforeScrollHeight=Ce.scrollHeight,this.beforeScrollTop=Ce.scrollTop,typeof this.props.loadMore=="function"&&(this.props.loadMore(this.pageLoaded+=1),this.loadMore=!0))}},{key:"calculateOffset",value:function(ue,ce){return ue?this.calculateTopPosition(ue)+(ue.offsetHeight-ce-window.innerHeight):0}},{key:"calculateTopPosition",value:function(ue){return ue?ue.offsetTop+this.calculateTopPosition(ue.offsetParent):0}},{key:"render",value:function(){var ue=this,ce=this.filterProps(this.props),Ce=ce.children,Ae=ce.element,Te=ce.hasMore,Ie=ce.initialLoad,ze=ce.isReverse,Ye=ce.loader,lt=ce.loadMore,Bt=ce.pageStart,kt=ce.ref,xt=ce.threshold,Et=ce.useCapture,$t=ce.useWindow,Zt=ce.getScrollParent,Yn=Mt(ce,["children","element","hasMore","initialLoad","isReverse","loader","loadMore","pageStart","ref","threshold","useCapture","useWindow","getScrollParent"]);Yn.ref=function(Jn){ue.scrollComponent=Jn,kt&&kt(Jn)};var gn=[Ce];return Te&&(Ye?ze?gn.unshift(Ye):gn.push(Ye):this.defaultLoader&&(ze?gn.unshift(this.defaultLoader):gn.push(this.defaultLoader))),Jt.default.createElement(Ae,Yn,gn)}}]),on}(yt.Component);ln.propTypes={children:It.default.node.isRequired,element:It.default.node,hasMore:It.default.bool,initialLoad:It.default.bool,isReverse:It.default.bool,loader:It.default.node,loadMore:It.default.func.isRequired,pageStart:It.default.number,ref:It.default.func,getScrollParent:It.default.func,threshold:It.default.number,useCapture:It.default.bool,useWindow:It.default.bool},ln.defaultProps={element:"div",hasMore:!1,initialLoad:!0,pageStart:0,ref:null,threshold:250,useWindow:!0,isReverse:!1,useCapture:!1,loader:null,getScrollParent:null},Ei.default=ln,Cn.exports=Ei.default},26724:function(Cn,Ei,je){Cn.exports=je(51581)},25510:function(Cn){"use strict";Cn.exports="data:image/png;base64,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KFt6yaXs+quutUsvuMiuue5aW2T8Inbu+efZVltvHbZG33LrLfaRj3zEXnvtVVtnnbXt9F/+0iZMnBjcUQR7H3HEkbbV5pvZT37ykwBifnDiD0KW1n9+3wfsC1/6oq215po2ZpGxfUGsNrtvU01I+DbK5r4+x8aMGGUv/O0Fm3H3Pfbv/7a3PXD/X23XXXe19ddfzzbb5G12wcUX2+k//6W99tosW3+99e1XZ54Z3DCf+PQn7eprrrannn/aPvjB3e0D73+/PfPUU3brLX+y478JPSbaN75xtG280UZhq/deH/mwzXx1pu20y062yz/ubBPfsqjtt+8X7MmHH7X11p5m//Otb9vqq69tN15/rZ140g/sxz/7ic0dO9Le99732YYbTLcVll/epq21tm20ySbzdzD17S9iy7cy7gZXyPw5UABLASztisMCWPIpVwBLASz5XNOBJwpg6QMs7CB59NFHbcsttwxU1Xb4kOhtvmK84vLf2zlnnWXHH3ucTZo4ySZNmmSjx4wOwbFYENiGO2nRybbKaqvaMccdazded4Mdeeih9tijj4Wg2lN/9rOwK2jG7XfY1b//vX3xC1+28YtOsF+feaZtseWWNmvOHLvplpsDYGG30Lrrrms//elPQ06Na66+OgCWww873LbeZhs76Yc/tD/84UY78cQT7cKLLrL37/FB+++v7G9rrLGmjSADLwnm5r7WlzyMlLbs+QnpS14P7bn5pltt749+xJZdehk78sgjbOONN7IllphiL738ou237352+SWX29hRY+17J37fVnjrCvbxT37C/vDHP9riUxcPcSwrLLO8vfDC32zGXXfZx/b+t5Cw8dvHn2Brr72O3XvfvfbZfT9jq6y+in1or73sA8ThjFvEDjn8SDvzF7+2xSZOtgM//2V7/7+83/508y32fz/8vp38s1Ns1PhF7Mprr7ZVlls+ZLcdM2qMjRnLoZEcc9C3zbtvbxCRyH1gZX4aluISKjEsbUvDAljySVcASwEs+VzTgScKYGkGLH0JZV+3q6+6yn7323PtW0cfbWuvsaZt+45t+/JdjCThGnlMRtioMWNssSmL2ft2+4Cdecav7bhvHWcv/O1vtsvOO9uJP/iBjRk5xh595CG76Y832gfe///sLYsvZr88/XTbfMstQv6Tm2+91fbYfY/g/thg/fUDYFl08mS7WoDl8CNtm222thN/eJLdfPNNAbj87ne/tX9833vtawd9LcTUAFiwrMx9ffb8RGucJzSq75yiESPt7rtn2JVXXm2f/cxnbf31N7Djjv2WTZ++QThO4PUR8+yggw6ys848y5576nk79LDDbM01VrPPf+m/QgDt6musbuedf74tOXVJe+WVl+0v9/3F9tjjQ/bIww/bN446Ouyauv322+yrB+5vSy+7tG2+xWb2trdvYiNHj7RzLrzYbrjyGpsy+S22z3982j7x8U/aH2/6g/3gRyfZz375c3vLkovbTTfdbMtNmdJ3oGJIudJ34GII8OGMGfH8/DOaOCuJq1hYioWlXXFYAEs+5QpgKYAln2s68EQBLM2AhWX9vLlz7bprr7XzzzvPjv7GUbb9dtvbFz//haDAcVPMsXk2dvy4cA4QwGPqUkvZ9/7ve/a9737PXnv1VfvAbrvZccceGzLG/u3F5+z2O2+zbbZ5hy2x5FT7xS9+YVtsvkVwdtzyp1tst/d/MOQq2XD6dPvZz061iePH2zVXX2OXX3G5HXHkkbbV1lvZD086yW67/TY75eST7de//rW9Y4ft7agjjrT11l03HHgYzhsaafbySy8FlxWuq3Hjxtn4CRPt5ptvtQsvvMj++7+/attsu7Udc8yxtu5664YTnIl1OeHbJ9hpp/3S7pvxF9t3n31svWlr28GHHWIPPPhX22STje1HJ59iyyy7jL362iy7//4HbM899rQHH3jIDj/kkHAMwJ9uucWOOPLwEEczdcmpNmWJKSGe56Hnnrbnn3zSll1iKfvYHh+x/fbZz669/no76Scn2+lnnWnLrbyiXX81gGZyOOCRYws4KTqYi8h+O9IBlvm8r4iWAlgKYGlXHBbAkk+5AlgKYMnnmg48UQBLAmCZ7xP6/SWX2tlnnGEnfv/79o+77mIHfe1gW2vatL6ji/G3zE8pj6+CBGz/+7//a9854bshv8n7/+V9dsJxx4dYl7+99LzdcdfttuUWW9viS04JW54BLLPnzLVbb7nV9tp9z2AhIYbkpz/BwjLJfn/55XbFFVfat775LVt/w+l2+umn2cOPPmo/P+2Xdvwxx9hKq/6D/fDEH9qmm2xiE8ct0medmDfXbrjuOrv4ggvsvvvusw9/9GO2wYbT7bHHn7Srrr7GPvmf/2nbbvsO+8Y3vm7rrbeuLUKm3dfNjjnmGPvlaafbX+673z7+7x+3rbfYzA446AC79957bNq0dUKcy8RJEwNgeeCBB23vvfe22/98hx33rWNt1ZVXsRtvvMG+ccThNmrsaFt6uWVs6lJL2quzXrOZYyzE0Cw9ZartsOU77D8+/Um76ppr7KQfnWSnn/krW2Oj9e388863pSZNslE0ZNYcGzV6HBnl5h87PTIAn+AW0tlK84NYCmApgKVdcVgASz7lehKw1HWDFNYc9pZz4e9PPbxK9XL6cspBZEF+vf66UX799dc3GDD1IkYh9+A/4gteeuml1FeEcl/+8pfDx1/+LKSqM4ze/e53B1dAKg2yGjS/cC8Alm7wmWir80j4P9tzORTOx6eoXKsYFh0BwVice+659o1vfMPe80/vsSOOPMKmTSMPy7yQxI006ToXhXeRFfeII46wxx57zN7+9reHZ7n/l7/cZ9ddd53tvffHwtkvlCN2hrbeeOON9m//9m8hTfyaa64ZLCzElpx11lkhhuV73/uebb75Fvbzn58a5tP5559v//7v/x6exZWzzTbbhLq4x3zADXXCCSfYs889Z//xH/9hn/jEJ0JEDu/56Ec/YmuttVYAKGSCXXzxxQONPvvZz9pvf/vb0IZjjz02lPnUpz5lHPq51FJL2U033WSkgKf+GTPuCfUQ/3PkkUeGNj/4wIP22c991kiHv+eee9r73ve+EEtz94wZNnnSJJswYUJ4nnl3/fXX2/e///1gZdpg+nS78IILQmyQrpSzvSgbp+b32ZMZH9qn9O/QhrGiTdTPuDLXcrLdtpPptp353EoGLkyZbuuyXUMzDnPs5oUMvPLKKyvPU6tqF7899NBDtsEGG1TK5qqs6jxTDj/s5igOw7qff/75cDYQ3712oUwQcvFVN1H5fbvttgtK6s0KWAYyhp0ELAIhHOD5m9/8xv7nf/4nbEN+73vfa8svv3wABzp0k7/JdEtsC7t+vvSlL9ndd98djoAA6FAeAfy73/0ugBCU9tlnnx3O4AF0sK35wx/+cOBhTp3FSsM5VwTX/uEPfwi5WN7xjneE/0+dOtVuv/32AFQALgALANQee+wR3k9beRfPAIxOOumk0G5ACefNcBo67iISzwFY1lhjjQAgADgciUGbAVOAi3/9138NQp3yhxxyiO200072+OOP2x//+Ec79NBDg7I/+uijgxCnzIc+9KEAPHbb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"},32637:function(Cn,Ei,je){"use strict";Cn.exports=je.p+"static/AssistantCode3.a8740efb.jpeg"},58143:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},11051:function(Cn){"use strict";Cn.exports="data:image/png;base64,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tEIMpO84hpiJFwCKiIUhFu0FYDs7uf1T4hQ728lcio0A4PRlsrdZABAQ+xogk42Hy2TfqpFi7wBwdmiyd58QFvmiaaJYcbKter8XFIB/0T8AKH4Rk7aF5EEAADntSURBVHgB7d3bj2zVeSDwvt9Pn0sfDgwGDxDHMwNyxh4TMCMUC2PJDyjyU0gkIuWRhyhP+Qf4N3jMK3nwWAx2iOIcJfNgo3EcRWOwjW2wuB7wgXPj3Lr7dM/3lbva1dVV3XXdtav2r6RW12Xvdfmt6v72WnvttaemPAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ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CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKA0Av8f7TOuKo1wq6EAAAAASUVORK5CYII="},12175:function(Cn,Ei,je){"use strict";Cn.exports=je.p+"static/bg.d81594a7.png"},47444:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},425:function(Cn,Ei,je){"use strict";Cn.exports=je.p+"static/d2.d29bf90f.png"},49260:function(Cn,Ei,je){"use strict";Cn.exports=je.p+"static/d3.38d769e9.png"},24219:function(Cn,Ei,je){"use strict";Cn.exports=je.p+"static/d4.29558972.png"},32682:function(Cn,Ei,je){"use strict";Cn.exports=je.p+"static/dizuo.476798e7.png"},12260:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},69303:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},11862:function(Cn){"use strict";Cn.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYQAAABqCAYAAAC8hCaVAAAAAXNSR0IArs4c6QAAIABJREFUeF7tfVuUXMdxWNW9M7O7eBKOwPjIMW1ZL1q0pESiFdISZdEisAABiHbiXRIEKYdxRMbKV5yn7ZwE0XFsKccnOT6O7cgvWiQBkgNRCV/ALkAZlEXSlALJkWQpVmw5kkw9TOiIAiBgX3O7cqrv7Znp6ru35+7MLl41P3V3u7u6q7se3dXd1Qjn+Xf3iRPNL//VX38GEK9eQVMIABAAGPLPfTMM/wwqkMUtngp8dVsomhOgr4svSoDSn/OCjr/y/0Ul/wjwxU306jcemr5mcWitMASCQnCGwDBk0R2H/scvGEjel6tvQgIkhvy3+2aYVxMocKkACWxZl180jggBkYChrbD4ZmjR++mI/C/OVk5ktH0EyEQxIYV85t/8vxKBVfp1/JX/L1/5TwB+eWbqlv84pEodqvh5NQg3tR+7KkX6LBFN5PoZgYgszPUzISISw4LKyhm8y8uwKN/FWdZLJfVV5pc4gvJdbd+1X55BiLVP6dfxV/6/rOV/EQmunZm+5YtDafUhCp9Xg7C9/eghQNjVnUHLCX3flNkajL4p+WA013XZ1M0/WCu6udxqwa0Q5ApC6fd6wC4VizHX8Vf+v0zk/+NHp2/ZXlOzjCz7eTMIk+1HdxFAO3fv5CsA6aIhQkIkZFh4eOw3/6/w8HjpoUtJKnjZb9VbBq7uXn1AiIDEjp8Sn0+s/eGoOfeW0q/jr/wfk59QHn39cKnIf5LAe2d++pYPjUzL10B0XgzCVLs9cTqZ+CQY8wNdK1C2QyAIibl4ZHqg/gt3FC/LyxS6bEJdF07t9rkNiqI9wQ6J0u/1QO3+lSsuHX/pEq1cEiv/13Nh1ubPZeUfXxqbwDc/vmfPt2ro8pFkPS8GYfLDj/17IvjnchM3TlFNl05k0zha37DlZQVD41P6vUNEsVNbw/b3sOV1/P0eGLo/Lx/+R8JDs7e+6z1RHTXiDGtuECbbj76KIHkGAJrhqZruEaHi1M9qn9IZ0qUUnIoS7ZenYOWMP1Z+1U8pKf2+ganpUoyNn45/36I71Fwq//JUna8/EsR/ODO15+kR6/xKdGtvEA499ogx8HZuVYIAhnJY4pLvnfl0Lp5Af/n/MESQIALDHH/+zdD+xBIt2LSI9bwob7gOAGA4CD1h+5R+HX/lf5X/cv2HQF/+3rMbb/jDu26cj6mmUaWvqUHY8cjjP2Uy+u+9ewL+pmrJHELcK5D53YZ0955CcQehe0xVzskj+II1fmX+3pnS4phs7xKEO3cq2jPq9o4an9IvfBw6/t69HnEIonvJRvnfzjdXR/5/4+j0u/7TqBR+DM+aGYR3PfroxoWF5BkC3DroxbM+bdrluP57xMGxxN6RpfwUUjBAQtyD/PmlGHcRrnukqbgHIeuTF6NjF8ti6fKUhNLfPYKm418wtPJ/Ly7BZSH/REsJNrfNTO9ck7sJa2YQJg89/j4i/Mf9Plt3Cced+oneDC5uDXc9SJGbxGVey+r6g1MF3qmM8Fhc76gg1xXxaAU5lP78EpKOf76gVP6PRAa4TOUfAT41M7X7J92F29gsf5j0NTEIO9uHX2fAHObx7J4sKmu1DC1RlzJxiiGY4YtARQH6WCgLsUUWOyYaxS8zKP1+aBEd/3o9oPyfh6UpIhVcSvKPBP9u9rY999VjiPq5V90gcNiJyfYTjwDg3yuZQffu7uZ7vvLil0dR6LPvHcMpZlj20hhfHrMr7Bi+4pKZy19EHcrblE/5a7Uv1v1KvzjTU7N/dfw9dgzZVfCz8n9En1xM8o9wJoXknUembz4Z0zPDpK+6Qdhx6InbDEH5pkhwTKc4ssNHd/gXS69LeQQfGQBMABiWuoDckSLXvrr1y/wx+mLpdetX+sWxMJ/fdPyV/y9o+UeYOXrr7n9WV+zr5F9Vg7DrwBNbOk2cJaArShsVO2cfSZexTcJNX1FrJHZQ6OLpm4SVxFKK1hcbCaW/Ohqsjn9l/yj/F6GRi2jCUXm8BOQ/Qbp7Ne8mrKpB2P7wk7+CAP/AxaeXp35i9w7Da1P+sTcZfrrkmlXk5pW/CxDDF0Y+8i+W9B1aKo11pPT7F290/KvvXSv/y2uDKv8A+LXWOrP78T17zsXmmytJXzWDsK395N9FgoNeOF9xDDQ4VhmjoO7FsthzN7H0aHv8XereYwfu1Ig4taT0dyW6cMl1L1LEutqm6/iLY23RBzuqn3tS/h/uOSzRf2sl/2joQ7N7d39gIJmpmWlVDMJUu52ehvVtMPhaAgNo7/OGvzyOaR7DsBB475QJl+sv774ZWoWSJEDGWGh/wkce4BdN6MVKzK8yS/zBAzqShO4WuLsK7TdAtj8srvTr+Cv/q/zX1H9Ipkl065O37f4/NfV9NPuqGITJ9sydZMy/dBs0DK3CFZu2PQ9gcbO454HphiPtpyCGL3BB9Gl8a0D6LITFKzaJ5YM80fySHmlwig1qpV/HX/lf5X+U+g8JvnDd9M59+xFd5Jyosh8kw8gNws724a0G8H8S0bqSNcFonywWFcQvevkmo27+2i6LoAOGXaNXD2ldeurmV/qHvRml4z+cj0b53+sBgl87etvNBwZR9IPmGblBmHz48PuBYJudEfW9aGFn6DVDS4T6tPpNZHkRpcTD010jDNSe4I3lyJ5A34s+Sr+Ov/J/b409kLzFtFbkTfTLTf4R8dxY1vzpx26/6W9iXTdo+kgNwmR75i1A9N/K3xPjyJ7V0UgDl03+OJl9pMwq2N49E9vuvnsl7iKZdyxB1icNUskbx94bzrFYSGE01eoFkNKv418VjVf5339DXcq3yn9v09LpPwD4+OxtO//FoAo/lm9kBuHuEyeaX/7SiweBku/vBYSOVS9vesmbU7J8LLpnDF+s/KjrU/qreyA2XqMeDx3/3kG3fA3b/4RtOFax/qo7frKGuuWHbU+s/Kj5bW3kHzH7xdlbdx+P1TZI+sgMwuRDM3cB0Xvc5RBbebBpK6+S+z796Jup0oUjYwvJR9mDq/zijWbh4pHtDU8t+UvgIDpp30UGpV/HX/lf3AQPQsmo/Pe7NFaq/xKkb5nFdO/Rd0+eHUTpV+UZiUHY9uDRlydoHjBEzf5H6Pk0qDEA3VOhxTf/z9qLSHown0gQjCFIihc13DfDMnyyvGvLqOqXS3wZOyZGXyxd6fd7gMddx1/5X+U/V9v9+g8BPnJ0787/ekEYhMmHZ95PBNcP25hgwTZ0dNE+FZ2vkHtrhpJw1bWjl46aYIEvdpM3Wn1vC6a456H0d7eldPyDcO3K//4ZqKh8rXKGWvKPRE1q/NyTt20b6m7C0CuEHe1jbzMme19Z38gZtNyEDUI5CJdLLDZJsAmHSO5/3J7g1IEIOF8SSsK7OVs3XfaB0u9vEur4+0+6Kv+LUCYq/90XuvL5a+/R7gH1619uSib/6aFpzFZqq4YyCP/o3uPjX5+YvxcBt1oCSJwSEAravZ9beHgCl72cssTwBS6h4n1mh1++UCZPFQWdFjkmHmtPLF3p772jbV18Iritjr+/JI7xk/K/3wNSvi5H+W+k+LtHpicfPi8GYUd79mdNRre6Bym6j1MUT04GoR/kpnCCQIYAiz0B983Q/oIHa/peKLDpfjRSCKIZCg0fw2fPy7qFWl5BZfixyIM6Sj96D5ZI/uBx1/FX/lf5z+flI9F/Ccw3sHP34eld31yJUVjxCmF3+9hVSxn9FqBp8GGdQn93vTSDNKbvkE9p+WHTQxeOOGXUF5siX+H46cGeRiS/PCUQ64Nh6YuVV/r9Hoj1l46/8r+T4TLZjZ0CumDkH+jTs3t3/FJM/5TSuJJCXGbyoZkPEOCPdGflJYiCB0dEbB85A5cWUsYuKnHxVMaLj9cfqHx/RRCuQf0nq+QKRaCL1y9CaRSrJbdCUvp78W9K+TTyXkK8/3X8/R4QK2Llf9/HKZ/su4DlP03wPx+Z3v6xuvp9RSuEyYdnbiSDPx+rLPYofVA+5oIJ5bcXcdZO8X2XUt1Hy+MuqBjFQrxEdGIZvVnpFz2g41/pYgv5pdplqvzfi5heJrmBPEZd0BeT/ON3NqfNnzs0feN367S6tkHYft/semzibwPA5h73FuFbA/n2BySmEHuxr4tw1EF4bN/FH+Tvc1KXL4d6Gie3H71NDf47EKAgvLVwQcTqq2kQlH4xPjr+Ijy88n//Fp/Kf7U+I8Bjx/Zu/81VNQiTDx97j8nMzlyB+sHe6lQ8kryRYFcjqaMPSRgdVOnvfwBp1P0dxafj770fEn2/I9qh1RmU/6mr8y4W/ddE/KU6dxNqrRB2PfLUDy0tmg/YXuGfvPor+UlexRUc1Y0kV+Bzj90wtD/pQpAWKKjfP8gYvp+QP6bTxS/aF5wpKh7fWS6/0i+unuv4+z2g/O+HKlD59yzKWug/MPjCD5z50r/6nXvuWRpkPjCwQdi/f3/y3Gt+7JcB4VWDniqS0Qpl6Dp5Tlg2uG60QxlNVPqAZH1BqAmUF4f86IKxUyqx9iv9vbsH1t737t2U8qGOf71ov8r/fjRdlf/cZ50Atmdv3/bISA3C9oOz2wCTn+XbZ90VglxDxoLzyBm+LB9tcSQ6YlB/3+2nfEnj/6Nue2L5lf7q4FWx/tPxj/SA8n9PhkvkWeVfyF+u7pBwCTpL/2b2zh3fiInYQCuEnQ8c3pQlzV8DgvVdN45909g/Fhg75hec8+5e1M6f0AxdNr06bHrsSUopL+JJzuAccewamryXEFysU/rdmPP46PhH+FXyk/J/b5Go8r+q+g8RvjC796ZfGYlB2H7gqbsJ6G2hS7TnBbMKQZwKiUU7Dx65F+VlLCJpUGLt6YucYS++xV5bCNobic7aF6nDGjSlvzdC3B86/pXzWZ65da86lvGP8n/Pgtr+EQZV5V9u0fj6WOo/APzd2b03fbzKKERXCDc/9NRrOgS/aJEE4RClCya4eebXHbwyLVRGrfB+K5lSDPmks9IvwkHq+Hu7IrGbhMr//hJKThlU/isj5QSKvKZLBQ18d1Mz/bdVdxMqDcJUu52eXvqe/0AI35e7dPxzr7KB8lx/7Mm7YJOX50zFRmOZFYudO5b1BR4kgT/WvpJN4m5wnrL2Kf3+vY5Y/+r493ya+XxL+V/lP+eJ1dN/5k9mb9/+e8utEioNws6HPrrdGJjqFa4O/haLzhhLl0sQ6rMA1iD1+WTyNvntkfmDU0SAYMDuuuel+9bs5fhDk1cV/C5GXyw9Ro/S33Oi6Pgr/8fkReXff6GS9R7rv1ZC/2W5uwnLGoRdB57YkiXr9hsw40BJ8Yi9QfuNpriHIE/xVG9ZJEkCxhhgaH36BJQgIEP7D8ZbhR8TAjIIDAfJH8RXFu2TmwrBkqKgVekfrL+rh9+Ou46/8r/K//nWf/jiD57e/L7fuefa4G7CsgZh8sGPvscYeBMmQGTyKXVMv0b0AVAChAaQYemSqEjjPGXpBgwkkADDvD35N0M7XxL4XV3L4xPn4gtamWaLzwAq/Tr+yv8q/5ea/sMEj8zs/YnHpJ4tVbw7H3jqdQaT9xIaREqIYe5Syb8Z2hm+WCDETpWEp0J7mxI5/l5woFL8kTeYEQ0SJcRwkPbG8iv9Ov7K/yr/l6L+Q4AMTeP9s3e+3bubEBiEuz/4weZX1r/yFwjwZdEnrSIPysQMRHhsqfqYgfOBuT0Atx/AMP/J8tV7AAE+kz9gzo9XF0sQ/9xg7MEcka70Vx+71PGv9yCT8r+/B6jyn++HrlT/pZD81eG97/h1fknSacrAIEwePL4DyOywLhNMCMkgw1zdGiRIiKFNL74Z2r/JIGJCDG3+Xuy3Ug0b4ou9sVqvPXINY7fvi2MMg6xwlP56/a3jr/yv8n9x6T800D565zufKzUIew4ef9kC0L8mgtT6zNBu/FpY9iuCWNgAFGUGIJYe4Iy+adwLsJobJN+AyPbK+sup6P03hi9Yb/RCVSn9JRMAHX+fX8MJkuAo5f/KF2wlP8XkVeXf579S/YcwP76+9auP3fK2M87H0s03efD4PyEyr823WgHkTUC5aSA3ecMK5cWzvoNg+RKkF79sgJut8V0L2YLhdjmUfv8mpI6/v2mm/O8f8lD5lz1wceg/ouwzx+646QHPINz8wMdev4RmX4KEpngjOTajdnkZ2rwx/SsQcj399QX4ovkRDRElLhy3aIDEHwxXQatrfyx/rLzSHzllEB3PnPe6/BTNr+Ov/K/yPwr9hw34g5npn/iiVeRT7c+3TnVe/HkwsBkSJDCFgk+IwCACw3zN0Kf1yyxAxELK9wviU3D/XGgsv2wf01GHnrr560ZHUvp7y87BlqA6/k7kBukv5X9fP9WV57r5LyH5TwBe2th48detQeCNZCJ4a/AmsYwu2heLwKp++YZxLBppZMkRi2YaS6/9JnLkDdWgPqW/6+TT8Vf+V/kXb7hf5PovgfQZ3P6RZ69M5jrv5UvD8uZwggYNJcSwbIUQ5s9vHfPtY7t+EDeR3a1kly59TK4uhmULkr57wwPi9y1Q3z1oiz+OT+nX8Vf+V/m/TPSfoa/h5MGn7yLCq3LVyYSzMnYdIC8aDHtXObLJYAxCkhAwzJfI+TfD0va5trp0uQQR9fENaL6F7G5CR/Er/X58WB1/cTElsuaN8GPg4lH+V/k/P/qPQ2U3G9nv444Dz9ycmc6by2bksScMY+8HxLYcYg+MBfHOZbRSQ4gJEhV7HkGsHBHqIqBHlA+j8VY/Yaj0i4tn8onlug98xd6f0PH3ogEz3yv/q/yPRP8hfuLYHT9+FHce/osxeulr9xjCjbHpTuzBGfngh8QnH5CRD4DITWtZn4wWKvOH+P0HSEJ8/oMSSn91D+j4U5cFy45UKP/78qby7/fAhav/kjObW3/rg4emr1m0rpmdDz37ysx0psJNc+FyEVP2xBCaBHnzIffpA1ECiAwLl0/1G7t130CNLSnkFD82hR+yfqVfx1/5X+X/Ytd/SPDh2Ttv/EvW2d07yJP3//Eug+YaP5poLBaNbwFjh1Jj6XJGIaOZBpvQwbF3Ef1UnAqSweok/jCaqtLvpgRlM+JwvKr7S8e/Lj/5/Kz8709Qwx1JlX8v+vMA+g9T+vOZvT/ejXraNQhT7ecmznSyuzJjJvj+MAu7fGCi715xaXpsyzH2gI2MNSSv+ksGiOUPrq6LBtalT+mH7qZKGX/o+FdvOSv/+9GNA/kTscZU/sGGBeJ+KHdR+rHZZH/F9B8CzlM2d+/Rd0+edZM7L0rR7gMfe/Ui4O7lPMmJMWiShBjaBhbfDO2hoNi1tQzARkliyD/3bSMnhb8oPllE4JfHZmV7Y3sGwQxY6dfxV/5X+b9E9F8zTY89edtb/6xfz4XRTh/8413QoVeV7QG4164YWn9TkhAZgwztjLH4ZliWjsYgJQkxXAl+WT5YMsoXuYrX2ZZrL9onGPIAebY9kZvESn/+2peOv/K/yv9Frv+Ivj6774ZH+kNf2zGVs+A9j59YN3fq3D4gGEsTgMwAMCxcBHb54qKb1p1hy/yxJU48PQ81yyF38/b54YeD+sQDPHIJLy/SKf06/sr/Kv+Xmv5LwGQppg8+ue+GlwIdWabUd9z/zGsN0jvDzNXvIdQ1EKFLKIMEUjAD+pRi7zPkvqkaPqoIAfH66vWA0i83WXX8lf9V/ldb/zXSxicP733biTJttcxLBwDb7nvm5iQxV/WHLojt6sfDnUoMfpNk6Ir6oTOqQ02EHSBOLRRhOlzojGAPInKqSemPhbvV8fej9Sn/9/eAyn8eJmU5/SN3aeuGGuK+5iB2G1pf//Ch6Wm3k+sx4bIGYap9fMPpTmMKTNJwb4rKewryolKocP1d4wwySCEFhvyTe8pE/kWxGP7R5/dbJI+pKv2+RYyNjxxhHX/lf5X/86v/xtPmo4/dft3fLOfLWNYgcIHt9z53NaTmrb3CwgWTpgBZBsCQf/KUTwpgMoBkmVNELo1hmYUIXCoFLpcf0SBRQgy5vNzkNlkGSZoCw7IKuF397QvaE/Sa0u+54HT8lf9V/i8a/UcJ/vmxO97+bJVju9Ig8D39mw88u8MQfW8ZEumhlwo5ekxVHOMcNb4BDsIKsuoddB11e0eNT+mvN551+2vU4zVqfHXpqZt/1O0dNb669NTNP+r2jhpfPz1IMLdx/IqPcHiKFRsELviu339m49wY3oJAKfZCuRTRR6tdLGF+2ZR65fs8SvmKIGhPbFNXOqnkEPjl4/XVa3/MpSZdVJK+eHuU/uoe0PHvLeNLlvSi8+L8pvzf358x+T2f8t8cg6efmL7hqzENUblCcIVvuu9jP4xJ482BOGUZpGkKWeGScd8MLbvF0sUZoK77ybl4hEuibv2S+NiZI9le6wrrWxLXrV/pj/CHjr93Bk75v3A/q/wXHu7h9E9X/1Hywsyd1z8dMwZ2kj1IJnYdbT/w3LbE0MsMJpSQu1gWuZosVuzBKQIyWA9fUh0sTxDjcDPkpODUUux5BnnqqHZ75Yt+4hRBbXxKf/fyIA+ovEio4+/1gPJ/rqsua/kHk7WuGH/i8T3XnhtE1w9kEBjRzgee30RoJk3H8FHp/OfeW2ZoNa58gznSBFm+G7mjiJbavQZX4JfpYsqeGESTEDG0zSu+GeZLlprXEmL5lf78vW0df+V/lf8LUv+1sPHpJ/Zd9xeDGIOBVwgO2faDJ65OOouv7x1g9TWmO1LG0P6Ewg5cMiJDcGhFrCAlUWH+mAsrPxDQXZH22Yiy9koDEu44KP39p450/PMjhcr/Kv8XhP5L0m8f2Xf9H8nwFFXGYeAVAiPZv5+S537ok+9A7GwpQ5pRQikaZGjtQfHN0E7Qa6YHBqAmPlk+Vj9SQm5jiMt2AKBRwDJ66uKP1S/TlX6/B+ryU93x0fFX/r9U5J8PpHTGxz/61PS1pwZdHdReIXCBqfaJzafnFt5BSeHG6atNxgZCGTvIAGLCIYfyvQv3zbCs0QkCutt4nC5v5skyq50/1rFKvx/eWMcfyPEE8w7zvfK/yv9a6D+E5ItH7rjuCzGdJdNrrRBc4T0HT1y9lC29JnQBCfTCZSRdCuHVa98AyJut0oUTnGoKbkKLJbxoXvQUUOyUlEgPOl/p90456vj7/Kj8D+QmcSw7ckKn8u/fbB9Y/yGdvaL1wtPLhacYmcvIIdpPlDz/wPNvN4Y2+Ofmqu2R3ORNoQEZdIBhPoPKEJOUGJZhcmkMy/JjL/hpnt6LhJHjq752ADH8QayNCD5Jg9Kfb/i7TX4df+V/lf/R67+x5sLzj99+47fqrg5W5DJylfzkvX96xblk/vpalQangjI0SUpJYQDcN8NSBR65V5RghoZSYpi7mPJvhmXtJMwQKSWGuQsrN0bLGpwiL5epRbfLrPR7KwYedx1/5X+V/0JfFbpwGP2XJON/ffiOaz+3Iv006D2E5ZBzmGyg5Ad76ZEn0MQUXW7aug3cfL0Qbuo2IIUOZMAwT8+/GfJPlpftDuvz8WUJUWoQGeYrkPzxH/fgTwx/9Ak4pd8796vj7x9aUP7vybzKf339N5Ymi+uaX3320PR0ZXiKKmOxoj0Eh3Cq3U7PzF11PQGNl7tw/Bm3bAhvTKMhchvUmSFKE0SGnNd9M7Qz+CIvQ1ufKC/Tg1NCBW6HDzodgEYDLLQWpfhmuIL6pMtLrjiUfr8HdPyV/1X+R6f/Gp3kc4fvess3V7o6sDpvmMJcdteBj2/JltI38bd0+SRJhsakxNCmF98MV1Jv6GLwfdJyjSDzyyVE1gFIGwAMbWeIPYjYmiPm8lD6dfyV/1X+10L/UQbfPnbXW//3SvRqf5mhDQIje+eHPvEaNOblsjFiwg0ZpZRihgztDD/LENOUGJZM0IM1U+Bi8Cf0tfNHFgglTii/BbK80u/3gI5/vvgsFpzK/yr/q6L/Wi1j1jfxfx2a/rG5C8IgTLUpPTX/qWvBLIwBNAFgqWiX+2YY/jAlogyRYW4gOohpgxjmuf3yQX7hMrLV9lUv8wcum6JuboNdIYj2yPyBCypDzFKitCif06306/gr/5fJr5Qnlf/R6L8E6f8dueO6F4Y1BlYHjgIJ42DX0eJS43UePjlFFFPqRqMBnU4HGPLPfTMs/UXwyT2ANMswS1NiyPgyIkoRkaHFL/DVzR/sQcSWCEq/t2ej46/8r/I/pP5rpmeP3v6jn6kTnqJK54/MIHAlk/c/9yo06dZRGZm6eDopUSNDZGj1ffHNsAzXauev2/5h8682PXXxD0tP3fJ127fa+eu2f9j8q01PXfzD0lO3fN32rXb+uu1fSf6tOP7Z+9/9xrMrKVtWZqQG4R3Hjzcmvrrh9Rl2Wnb5IR6wCR/caBBhB5EaxSZztcvF5WWY4/fLy3RJcCx/LL0+Pg4czra7cImJi3KyvpjLSenPeUXHX/lf5R+gRc1vPPEz10YfvaljLEZqELhi6zrKWq/kb7mDINW9bGgsP/vq+3327pvhIETH8MfS67Z31PiUfh1/5f/ent3lLP8NQ4sTG7/yZysJT7FmLiNX0fb7PvGKTsdsqd5SZovRBFhayiH7+IN7CB3MTIPSJJ8RuW+G/HeadTBLG8TQIhD4uri5Di5f5GVYWl70VDS/qG9paQmazSYwLDOIwUAo/Tr+yv8q/yvQf800+9KRO647PchEuE6eka8QuPL9x6nxzJc/9cMtMKlbFViF3CBKO4gM+W/TQUwaRAzLGp00GmQ6HWSY58+/GZbnz3ExzjL8rq7l0mMzetke6eKR9Eh8Sr+Ov/K/yv+w+i9N4DuH973pK3UU/aB5V8UgcOUc62ixmX3/4hJAqzh1uri0CK1mCxjyz30z5J/LyzD/cT5Oy/M3kgQ7xhBD/tt9M8zzu7w5Pq53lPXL9pqsg0naIIZ5exrUSDrIcDXqV/p1/JX/L2/5xxQ6f//75v7v/htvXOYo5qCqvzzfqhkErm73h05ctURm43BNXHnpTqNBjU4HGVqDUnxcRcEpAAAFyUlEQVQzXDnWi6ek0q/jr/x/acl/o7nw9Sf33fDSammhVVWMd3/wRPOF8ewVHZMmTEAzRVzKiBjy3+6bIf9t0iVMsiYx5L/dN8OyDojll+kSh8Q/6vbJ+kaNX+mv5hcdf79/lP/9HrjY5L+VwLlRnyqSPLGqBoEr4xfWzs41/jZ/L8ACjMGYhWU/l8aw7CfLy/wyvdlJcKlhiKE1MA1DppMgw7w9YGsqb03Yghg+h5thXl+TTGcJGSr9Ov7K/yr/K9V/SaNFE036yqHpa1YcyXSQVcWqGwRuxLYHP/3ybMFMyBly0MCFBYCxMQCGvIJotKjZWUSGg6wwAvw18cU6LMmITIrIsMyguLYyHKT9Sr/ogZrjJVeYOv7+CtzKUQ15Uv6v7oHzKf8Tzda3n9z3hlVzFTnK18QgsOvoGxPZ3znXSZDjZM8XtacNQ1knQYb8L/fNkP9OGy3KOovI0BqEwjgsp3BdXoZl5fOaey2QM363mmBYxhqx9sn6XU02NnhBt9Kv46/8n8uDyv9g+q/Vai0e3veGr40qPEWV2VsTg8AN2PnA85sW5ltbADgg34Rt0/gEwPxcDq3CnJuD8YkJC/P0/Jthnt4rU17eT+/VVeCDCZiHORgv6vfNw0ra47c3p6tHn6xfpiv9Ov7K/yr/Mf039vIrv3nk5lcP6tmOLfQq09fMIHAQh1t+7xNXzm9Y34JC4cuWpa0xyhYXkKFdMRTfDMuoWGyNUWtxARlyuvtmWEo1GxauuzAw3e+iPbXxxbo+Up/S7/eAjr/yv8q/r/+aY+PfXQtXkZPENTMIXCFfWHv2m396JZwr16RjjQQXOoYYco6FlqGxxQQZ2hJcbl0B7UW3eUw748TQLkGLb4ZlNUTzO9wMecO5qJthGT7XVoalFAl8sv2yjNKv46/8r/Lv9J+ZWMze8oUffXH/fjSxueeo0tfUIHCjp37z8xvOroMNuX4/C+tgvYX8k/oTYD2ATWMY5pcKNO1MUNaYQ4Zl+WWnuboZDpI/Vr7XVhd80G+/LK/06/gr/6v8L6f/roSt3/nDu17htpxGpfMr8ay5QWDX0e6Dn7vCLHQaWSPFtJMRQ9vKs98FWL8hhzzjH5ugbGEOGfLfMr8ry7AsPaSc8bItyvH3vq19KvlF8o+6vaPGF1Ck9Ov4K/9fDPK/ORlbOHTPtafWxAr0VbLmBoHr5jDZ6VfXbQbYBAAcn4khwLrmWTy3tJ4Y2hl78c3Qps+fxXPj64mhTS++GeY0OVzLxXzy64vlXzef4rnxjBjm9eXfDPP66rU/rK9eeaVfx1/5/9KX/00bAd74U1e/tB/XzlXkbMJ5MQhc+VT7uYlzSxvciUzbnlOnTsHmzZstLPu5NIZl+WW6xCHxX+j4ZPsv9PaOun1Kv98Do+7fCx3f5Tr+ZsvEubU6VST7+LwZBHvq6A+e3bA01sCls43B2rEFAPhqBkP+ue9lrms012+mpbOnkCFnd98MSy2O+KcsL8vUx9chprW5vlO0J/9W+nX8B+FHy/fK/5e0/G/pTGTt977u7FrcOSjjuYEU40DMuoJMU+12evLkNRObxl+y7Tg9v4X4myH/vXUrwMmTOeTfyZMvwtatV1qY/64EAP5mCODKdvFt3EKbzryEpzfm+OAkIy1gWXtdmnsElOvZeiWAq899M+T6CtwMy9rfrauLz68/aK/Sr+Ov/H9Zy//WrZ+fG/WjN3VU83k1CNzQqfbnWydP2rjVJQag979S/R0xGM54MCw1KELBS3sg63TGiSH/Whs7tHimgQz578XxBrbmO8TQ0tNng/jvU/Md2jzeQIY2f1GWodKv4x9OgJT/XZ9cDvL/+le0ln5jjS6gLWckzrtBYNfR5P2fXWeVqJiRtzZ+Dy2e+TYyZAKcMmU4yIohnKGLGb9YYfRWG24F4nebNDChwRArGGFwJH3d1UdhsJR+f3x0/JX/Lxf554nk7J1vOHe+XEVOl/1/BXc6fNfZ9AAAAAAASUVORK5CYII="},93148:function(Cn,Ei,je){"use strict";Cn.exports=je.p+"static/title.c574dc28.png"},4212:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},50356:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},40362:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},48289:function(Cn,Ei,je){"use strict";Cn.exports=je.p+"static/bg.fff4723d.png"},49747:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},7875:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},14813:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},79989:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},73486:function(Cn){"use strict";Cn.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAABoCAYAAACEyK5RAAAAAXNSR0IArs4c6QAAGOxJREFUeF7tXflzHMd1ft09vbM3FscSIMEDvEmRlEnRsiwftCz5lBSfieOUk7JzVblS+Q9S5V8SV35TJa5KpZyyncjyWY4d25RKsh3RkilLoWgdBHXwkgiSOIgbi11gjzk69Wa3wcFoFju7WIALoFm1mt3FzOzMm/70vv76e90E1D8VARWBZUeAeM5Q6zPuLnx+1e+7ZV+cOoGKwFqJgBs48r3fd3734waPfK8AtVaevLrOpkbADR4vkPCzH7i8oMHPft819ULVyVQEWjkCXrDIz57tFrp1KxWDg4PyXiR4vFs39VNZqpWfvLq2pkagCnCAVrIRbml7+y5mRru0JADMzY1ZMzMDViULIVjsyssPXH7AauoNqJOpCLRCBLxAkgBiCCB8tbVt1ywrpNlhrgk9yfRQjBFCBRfZYmn6YnFmZkYCyb0Nkqla4f7VNagINCUCbiA5wKm8EEjOKx7v5lYoERI6Z7oW1YSIUcEZDWlRSiizzVKuYE1czGWzQyYAYKZyZyh87waVmxpWUwCbcmPqJCoCqxkBBJLMQvK9BJEGiYQGlsXDoU0618Khos00Hg0zzpMUhEaAc+A8QjiPASkW52YKb8/ODZwteADlBZMSJ1bzCavfWpUIuIHkzkYaAOCLV7aarqdDWqozLGiMayyk4Z+1cJziloRCQtOiADwCQtj5Un44AyPPZxTtW5VnqH6kBSLgByQJItyG3GBCqhcKxTQt0RvWY1t0Q1CqhcOgMZ0QwgXTdEK0qABNA0q4IQoTU9mrL05ms5eMgLRPKX0t0CjUJdQfgaWAhNnI+5K0j3DOqZbYoUfj22Imi1AW1oEAF4yFiBaOAZCQAEEJ4botjNmp0uj50Ykbv59z9aH8+lJKPq//GaojWiAC3j7Srf7RYhBhZnJnKtmvAs45aIneUKhtd4KHO0LA8BQ6aLru6BWM6aDxiACmgyjmZ4vzl4eLN05NVWifFCekjK7UvhZoFOoS6o+An2qHSHD3kdxZSX4v5XF5vAOASLJHC3UdSOqxzXGgGgUnQ0WAaFwI0AgL6cBYCAgReXN2dDhz8+nh7PClkidL+YFKjUfV/2zVEasYAb9xJHdWcgsOElASaG65XFqJnD4O520kuulQMtrVlyIswS0nM3HAbIVAAnxBCDTOLTs/M5Qde+HG1JVnsor2reKTVz/V1Aj4ORsQIF4wuWmdOyu5MxMeh/8WQMU5F3rn0URi054u0FIRyjmxgQNFQFEOQHVnX8bCICA/aky9dXXo3HfHKoBStK+pj1qdbCUj4AaSBIF3YBaBI7OQm/YtDNq6BnLdY1LuLCUiHbvDie7jm7RkdwclIQqECaCYnSgwqhGKwAIGgti5Ym78cu7GyWs+tM9vTErRvpVsIercgSLgdX9X6zPJLCVB5QaRF1D42StiLDR2Hu2kbdvv7QnF+zYRLcqpxqkzJkw0QTVGUOOgmkaoLQzTyF3JDj1/eeqtX8/60D43qJTaF+hxq51WKgLVSidqWYfc9G8pUMns5v6dSj8qCokd7+sKpw72auFEAsFESYhghgLCCDBNOIO+mkaM4vw1I3vx9eE/fGdUuSZWqimo8y4nAn5FfH5ZapEbvEL13GDC9+5s5f2bG1Du0g1H7Yv3vDsZ33p8Ow93pylDJFEQwAjV8JTUyVC4JUJMF+aG+mf7v385mx3CQV6vYVbJ58tpDerYhiPgBpI8Sa0s5e5DvcPk6hIqZKbyA5W3b+ZkqUjHjlBy64kdPLFjG+N6iFKkepWfYIxQ0EBQRhiQQsmYOZ+9/tz5qStPSrWvmjihaF/DzUMdGDQCfkAKCijZD3KDqRblk3/3Sufu6xA8mqTtOz7aq3fu20W0aJISrNzgBAgpA4uiBYkRoNQW1txFM3P5letnvjmsaF/Qx672a3YElgJSNUBJdU9mlVq0z68P5QaUFCf8spTo6HtgU3TzsT003LmFUgoUNPwPIQ6QKtSPUCLAHDLmRl6cfvXRC7Ozg1jSoWhfs1uLOl/VCAQBkvvgZtM+OQ61UEhYUfze0Y9KpO+IxXd+ZL+e2LyLALpjGbERVow6W0IIxSwlKMlapZkzs9d+9dLkpVM5ZZZVrX81IlAvkG4H7ZMZsKz2RTpZ1/6H94ZTew+AFmlzwEMIBcxW+B6oQ/8YI5ZtFl7Jjb72ws1Xvjm0RIbCzKX6UavR2tbxbzQKpKUA5aZ+brXOnXWqSeZegcJNG+V5nUaPron2PQ9tj6SPHmZ621ZBgFBSUfdQlxBI/Qg4HSm7eMWev/m7qVe/8Vomk5GihJx3Qg3yruMGvlq3tlwgLYf2uWldrQHeJeXzVO89bbG+Dx8NxzYfEISECHG6XYRQQtEtge+Eo/6Jabs49czs5ZPPT1w77S3pUGbZ1Wp16/B3mgmkoLSvEXHCnc28oFqgZZFkL0/t/9yRSFvfMdD0JIiyKEEJJbaj+WkEQQUAJdvIvTA/3v/0yMvfQrXPT5iQmUrRvnXY8Jt9SysBpCC0zwumRiV0KcF7aF8UOg5+fm+06/C7WSi+HRA8hOEsLA6oBG4IRQsFgFXqN+dGfj3d/y/9qkaq2c1r45xvJYEUlPb5gSoI7fNmqaryeXL7iXu0WPoIAOHI95DmOZnJyVKMCgEEBIzYxtRTs5dOPjs+8My8qpHaOCBoxp2uFpAaoX1eaXwpgUKOS1U1yybS+yKpfZ+7OxTvvYewUBIAkxKKEggn6lA+J1MB5G1j7jfz4+eeHH7pP0YU7WtGM1v/51htIK007fOOR72zRiqapOlDXzocTh34IAtFt2M2KmcnQpw5JhBc+A0BYlmlF6zsyC+uPvu18wHGo9T85+sfL1Xv8HYBabm0z4/6lW0Ot4oS/WxI8n4dc2vn/s9uS2x7731c7zgKhGpuUKFsjto5fkeJuGrkp3821v+fT+dG+3HePuWa2MCg8bv1VgBSvbQvyHiU1/NX033esfdTJ/RkzwcAWLIsm1PiAMt573A/CkJkbDP3y/zwuZ8PvvpNdyWv3xzoSu3bQGBrJSDVon1SlPCaZWsZZf1sSPJci9W+SCfrPvqX7wmndj1AWHiHMxblAAjQelQBk7O1hVU8VZgb+uH1337tdWWW3UCIqXKrrQikRmlfEKVvKff5ItrXfeQrB+Kb3/Uxprcfw1qrcnIChtoEZiikkIgyYVtvmoWpx8Zf//ffqNL4jQuoVgdSPbTPWydVjw3Jne3cgIK2nSc6O3Y+9DEtlr4fgMbL408o+aHKJ9CEhGofKhVTopT94czYmR+PvfToRABxwk39vO83botco3e+VoAUFFDNrJFaRPsiiS16+uhffUhP9j1IGN9aARAqfI5LFsEEZYOfaVn5k6XMwKPXT/+jon1rFBj1XvZaA1KtfpRfjVQQccJrlnUDcnE/inORftffHoumD32ahZLH0S3hiBFltRCHeNFCUVb8LOOMWZr6zsQLjzylaqTqbZpra/+1CqSg/ahqwkQtgcLbl/J1TXTtfXBLcudHP6uFOz4KhEUQTGX7kVPLwUTZQkEJ2CNWKfet3MjvHht55QczddI+tcD1GsDUegDSStK+WmZZp2+TSO+Ldt7xF5/Uk9s+A5T3ghAMe1E4HVKlULGc8YQ9Z1mFH5gzb3174Ll/vqBcE2sAIQEvcT0BqR7a5ydM1JOlqpplu4//3fujnfv/lGjRu5DeIZiQ/iGqHEefcFY1FMIynjbz49+a+sM/nVJm2YCttYV3W49AWmnaF8gsmz70xV1t2098UdPbPimARAUAVnLYiKGFTCQEfn7bNjLfnrz0+E+nrjzpnQhT1Ui1MHj8GtoaudyGL1P+D8O9dfd73A70es2y1WZEcvo28Z53J9KH/+zzPJb+PCFa2gGREEIQsIkAGwjYCDIAmBXG3I/nxy98b+jFRwYU7Wv4Wd+WA9d7RvIG1Q9QUpVb2RqpaJJuvuvv79dTe/6EMv0QQQAhkMoZCtmfhaBCANlW6TdGbvi7A7/9hzNqQYHbgou6f3SjASko7atWIxXUPbGkt6/7zi/vj/fe8wUtlLwPpXMBokz7CKYq7EPhfC5g27Z1SRQyj2Uu/fQJnxopNddE3c195Q7YyEAKqvZVo31eUPm5z+U+fvI5tG2/N9Wx73Of4dHuhwihKcw+AvtNxOlL2SDARhcSCDFlG/P/PTf20k+q1EipBQVWDiOBzqyAdCtMjdI+CRbvSh1LlXQsHuSNdLLNd331fr1t56eJpu9GQGFGctQ9ISwEkxDEJESYlln8Xys3/COfGim/DKVqpALBYPk7KSD5x3ApcSLo5C24nwRXYLNsz7G/ORzrPvZpTU++1+k9gbCcDFURJhYECtt6szQ/+aOJ1793KnfzlaKqkVo+GJZzBgWkpaMXRO2rxyzrl6V8XRNt2050dex98GEe6/mIICRGHGWP4BhUeT4+pH2UWELYU8LM/Wx28P9+Odr/2FQNccJBZuWWvdvltKMNf6wCUrAmUAtQzTTLLnKf4xRj6SNfuU9P9X2SUL5VEGKhO7YMGOxLOcBCKljEGqn5zMD/DJ7++iVVIxXswTZrLwWk+iK5VD9KgskNqqAqn3s/d4Zyg0r03vXVO8PpQ59gevyoEFSWuyOoLCmnY5aybeO8PT/584mz33hemWXre8CN7q2A1Gjkbi06vdQgbz20z6+S15f2dex+YFOq7+OfYJGuDwChOip8TtWuQOpXfo99KQFi1C5NPzF54+lfT7/xeEaZZRt/2LWOVECqFaHaf18J2lfNLCvVPrkwm54++Ocn9FTf/eC4JhBEFCV0R6DAfpUoU7+CsArPFCbffGLwzL9eUwsK1H6o9e6hgFRvxKrvH4T2ScWvkRopt1q4WD7nXGw68td3Rrru+AgJxQ9IAGF/CmdsEeD0qywhMGsZ50rzw09mXn7k5cqCAtVWOpTLiPoJFM2L2jo5kwLSyjzIWlmqEfd5ILNs+65P9KR23veAFum6G5eKryh9ggCYKE5ghiIEKaA1as1P/Spz5ZfPqgUFlt8IFJCWH8OlzhAEUPWKE7VqpMq0r31/OH34j98fivd+kNBQG1I9B0S3jLIWzoFJCMzbRv7Z+fFzp9TMso03BgWkxmNXz5GNuiZq1UjVnlmWR0nnkS8fiXXt+xDl8R1ScHCcEjjRGFI+h/pRC6zCudLc4NPXfvf1N5RZtp7He0t5qu8otfdyIlCPa8I7gFtr/vMlzbJdex7uTW573wdouP1d5WkmEEDoOne8fRagUAHEpMIeNgtTp0bPf/fs3NhrebWgQO3HrTJS7Rit1B710L56a6Rkibt7mrEF0SCRviPatu8z7w0neu8mjMeEXVb5BDi+PhsIdcQJEJC1zdzzueEXnxs9/4NJVSNVW2laqcaizls7Ao3SvqCDvdXVPlxQ4MCXDoe79t1Dmb5FAK0IEQgozE4IJmIRChaYxVdLmbdPX3vhkasBxqM2nA1JZaTaDX0192gW7at7QYGu/Z/amtjynntYuGM/1kOhl88RJxw/X1k+B8osENZQKX/zuemL3z+nZpa91TQUkFYTJsF/KyjtCzIe5RUsluxHxTcfibfvfOjuUHzLnUC1ULmCl5hlP58jSphAqQXCzlql7JmZq6fPTr31CznXhHuB6w1VI6WAFLxx3449q9E+d99nuTYkeS45yOvQMh7pZJvu+MLBUGrXXYxHOstuiTLdK8vmxHIABVC0jdwb5vTbZ66f/behjWqWVUC6HfBo7DfroX1B+0+BBnmddaQ2Hz3G9PadKJWXSzhQNqcmcQQKDT1+lhDWdTM/enbm1UcvZDLXpWPCvZaUdEusO9eEAlJjjfp2HhWE9i03S/mZZSHeczSR6vv4kVCy56AAopVrpFjZfgRgEkqd/hQFe9YsZV7Kvf1U/8S107gerxtUtaYYW1AXb2eQ6/1tBaR6I9Y6+9cClNsx4a7QrTUWVS1LyTsXPNmtde7+o/3h1J5DVMP1eEl5ULdcK2URSk0hUEInJcvIvZmb6X9l/OXveVfoWFel8QpIrQOMRq8kiFlWgiqIOOFdUGBJs2xy18PbopsOH9L01GaCZRzOPH1I+SqKn+Pro5ZtF6+L7I3+zIX/ersys+y6Wj5UAanR5tuax9XKUo2YZb3zTfjRPhHvOd7WvuO+g1qseycuHABlhc8SlFjEBpMQatn4XpAZUbj52vjFkxdyo/0410Q9tK9lFxRQQGpNQCz3qmoBqhHaF8wsm+zmqV2f2q23bdtHND3iZCcEFZplcWDXZoZgxKQUimY+c7k0du6NkTd/hit0+GUoSf/c/aaWnGtCAWm5Tba1jw9C+5abpSQopXzuNHrOuWjb/WBvpOvQPsYTnc6gLsUpxagtCDGYQwGZaRNiCrs4WBy/crFw7SdDa3VBAQWk1gZCM6+uVpZqBFCB5PNU7/G2SO/7d+uRrm024TYRtk2oZtogLI0y00bFD+1JYM4Y+bFLMwMnr/q4JmqpfbeV9ikgNbOpro1zBQGUV5yoZ1xKHiv7Ugu0DGdESvbd3xdJ7dkhKOMEJ7+k1ASBWYoajh0JnKyVN42Zq3NDp69OXXkmuxZonwLS2mj8K3GVS9G+5SwoEKRGCuJ9H+6JdR3cSXkyDsKyBWUmI8QSKExoGsroJlI/AnPDc2MDb4299ii6z2sJE7fNLKuAtBJNdO2dsx7XRFNrpOK9x9vaet6znca60hRXEXBoHjNtISzKOMroJmHMtCx7RuSuD8xcPDmSzQ4ZrTazrALS2mv0K3nFjdI+N/XzTtPsnbPPt0YKaV9i24neUGLrFqrpOBVSOSvRCpiAmpRSizEolHKTNwpjzw2OD5yVRYe33SyrgLSSzXLtnrtR2lfNNRF8QQEeJfHtH0pHOvdtYSwcxgFewtApgTRPlOkejkdp3DDy2dF85vXB6TceR/e519vn9fWtKO1TQFq7jX21rrwe2lePKOFWCasM8h5NxjYd79GiqZQN1NQqoLItMKmj9gmTMN0UopgpTlwbLg49Pjk7O+uUfPiUx7uB5Tcutax4KiAtK3wb6uAgtK8es2zgBQUiyd5QdPO93XpySwdQhmWHWM5hANUsCsSwGTM5RXuSnS9mJkdzo78dy928UqohTjR1kFcBaUNhoSk3WwtQjbgmqi17Iwd5yzVSPEoSW+9t56mdXYRFuEbAMkCYmlPF64xHGZzpOMhrgDk9WRx5bXzixu+97vMVMcsqIDWlbW3IkwRxTbhBFYT2eSd5cVM++XsORcNK3mjqQCdEOqMao6YtwKICqR6+L1M+CsK0SsVsfvraBEw/n1lJs6wC0obEQNNvulaWasQ1Ecgsi7QvnL6zXY9vTgCltgMih/KBYQvbJJRbRAhTY6RQKtycnB84k8lmh7AfVWtMqq5+lAJS09vUhj5hLUA1QvsCmWWR9sW2HEvosa1JQUOMUAQSToJJLNsUBmYqfDHghlmYyOSnLmcq7vOmmGUVkDZ0u1+xmw9C+7wLCgShfu4sJUEp+1FOBkGzbLh9V0RL7EqycBsntm0SRkzLyU6ahasIUOAlYjNTWFN5KAzNmpm38ss1yyogrVhbUieuRKBWlmqE9gUyy0aSPZrevj9G9PYwocImghqEgGUJYuqMGaawTCaYgZP22dnheSt3Ya6yQkfd8rkCkmrvqxWBIICSWabeSl6/MamFPg7nUQin90a43h2xCLWJjZRPWJYQJdxSjRrEIqZpmwYv5eaN2Rv52dlBuV7vUpO3LAzyKiCtVjNSvyMj0KhrotaCAoFonxbpDenJnjBocSDEsKySaRC0ITEwTdswwgxMwyKGIeYKWma84Fo61CtOLHJOKCCpBn47I1CPa6KpZlke7WRaPM01PcnABhMRBVQzqW2UiClMyoRRMuYNqtklXpouzsxwE2Dcz4bkZD4FpNvZjNRvL5Wl3GNI7rKOpi4owHlUaIlNIdASWFtoIYhMq4RgKhFqGYVSrgSsWIJcDh3nUjZ3r3LoZCYFJNWYWykCjdK+oIqfe7pmr9pnA2+jwCMkRJhpmHaJGHmDRLRSYWa2CDAngeQLJgWkVmpG6lrcEaiH9lXLUtVKOvzmP5d9HjsUitkQCtk4jRg1zWKBlIqQzyOQvGCSQoTKSKrttnwEgqh9zTDLykDIuSFM0HUTikjnimiAlUDyUjxF7Vq+CakLDJqhZH+qHkBV8/XJzCTlbzeAvFlJZSTVRtdsBNzdEXe2coOpXrOsl+rJrIRgwj6RNxvhd+66J0Xt1mxzUhfuFgv8AOX19UmwLFXFK8EoB3Mx40jQSEDJz4vGlZTYoBrkeohArX5UELOsV9HDuCCQJMVzA8rtelB9pPXQgtQ9LIpAI2bZauUa7qwkgePeLrIOqYykWuJ6jUCtLOUVJrz9JAkk2V+S2UluF838qoC0XpuRuq+grgk37XO7KdxyuBtMflMnK7FBtbcNE4EgtM+7jxdMflN8OQ5wlZE2TDtSN+qKQDXa56cESornpnrv+E4BSbWvjRwBvwy0FCbcK14smnBSAWkjNyN1795+lDsiftjwLh2z8FkBSTUmFYEmROD/ASqSbiAtqYRHAAAAAElFTkSuQmCC"},23280:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},30019:function(Cn,Ei,je){"use strict";Cn.exports=je.p+"static/nodata2.61f96344.png"},63232:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},37618:function(Cn){"use strict";Cn.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqgAAABQCAYAAADV5ocBAAAAAXNSR0IArs4c6QAAIABJREFUeF7tvQuQHdd5Hvif7r7veWAADMABwYcoECRBRZZIyQ9ZpGBJXsWWE2srga2tVCLLUrY2UcUVuVZZJ7trAM4qsiOxXAkta0u72s2msrIjJJFVqU1taROZIi3qSb1IgAQIkiAJEsRrBjNzZ+7ce7v7LP/zn7/Po/vOg8AAMHW6RM3c7tPndP+3750P3/9/3y8gbCECIQIhAiECIQIhAiECIQIhAtdRBMR1dC3hUkIEQgRCBEIEQgRCBEIEQgRCBCAA1PAQhAiECIQIhAiECIQIhAiECFxXEQgA9bp6O8LFhAiECIQIhAiECIQIhAiECASAGp6BEIEQgRCBEIEQgRCBEIEQgesqAgGgXldvR7iYEIEQgRCBEIEQgRCBEIEQgesCoEop13UdQggZ3rIQgRCBEIEQgRCBEIEQgRCB13cE1gUMNysEo4Dp4cMgDh6ESjAaQOpmvRth3hCBEIEQgRCBEIEQgRCB6yMC1wyg+uD0MIA4CABHjrjOAscOEFA9CAawBpB6fTw84SpCBEIEQgRCBEIEQgRCBDYjAtcEoNrgVLOlcARAHHsIxMy4Aah77wX59YcA9u0HeQwB6mEAZlYDSN2MxyHMGSIQIhAiECIQIhAiECJw7SNw1QGqA04BxL4jII5NEzCdaoF4pQ5i9jSIrbuJMb1hAHKuB/LMIsiD+yE/HEDqtX9qwhWECIQIhAiECIQIhAiECGxiBK4qQB0FTmEHRFvrINLzEHXqIP79sbNjT788P3Pgrr3P3vVmGC6mIBvzkCNI3Xce5LFjIAOTuolPRZg6RCBEIEQgRCBEIEQgROAaRuCqAdTVwCmcg2hmHKLWbhB/+vD58SdOLrxRQhZBM+l94M7bTrzhr8AwWYG8sQfyMw8FkHoNn5ewdIhAiECIQIhAiECIQIjApkfgqgDU1cDpLW2IBhchSlsQPXLywsSPn1l8YyajRNTiHLJUxCJfOvBTtz09sQf6AaRu+vMQFggRCBEIEQgRCBEIEQgRuOYR2HSAuh5wmoxB/LVnZyd/9MzCniyLarsm65d+9rbJV756/OJtS708aeRy+Vd/5pbjM7fCSn8JssCkXvPnJlxAiECIQIhAiECIQIhAiMCmRWBTAep6wGl/EpJHj85OnjizeDukUW3bVKP7q+/YcTrug3gphfjr337p1oVenrQb+eL7fv6WpzrboN9YhDSA1E17JsLEIQIhAiECIQIhAiECIQLXNAKbBlDXC05/cHR28omXu3fESVTbOd7o/uJd02eHMcTZEERcA9lbAvG1E2du6q5kUSzzxfe/5eYna7fASgCp1/S5CYuHCIQIhAiECIQIhAiECGxaBDYFoG4InF7o7hUQN3d1GkvvfvP2cysA9UYEcSbID1VEkC7OgXz0+Cs3LgwyIWS+8P4333QsgNRNeybCxCECIQIhAiECIQIhAiEC1zQCVxygrhecPnV0dvIHF3p7E4ibM+PN5fvu2nJhWUAjAag/8WJ313/54SsHPvZX93w+bkA/SaB/aRGy7x0/f8N8LxORlAvve/NMAKnX9NEJi4cIhAiECIQIhAiECIQIbE4ErihAfa3g9O37tlzMM2jGETSPn+nuOvLI6c/00+zGqU79kd96/+2farSgl0tYWerB8HsnLtwwt5RCAKmb80CEWUMEQgRCBEIEQgRCBEIErnUErhhAXTc4fXZ28vEzxJxOjzeX376XwKmIoHXy5aUb/92jpz89GKa7sI0UZvmnxmqPfOyv3/4HtQyWoQ69xRVIf3z8ws65fgr5UC68750zx2pToSb1Wj9IYf0QgRCBEIEQgRCBEIEQgSsVgSsCUDcCTp8809sbQ9zcaoFTmUPzhQsITl/6zMow3TXWSJ75qT1Tf/qtJy/8w1zKztbx5iN/95du+/2agOUoJib1hycu3LDQT2EYQOqVehbCPCECIQIhAiECIQIhAiEC10UELhugbgicnu/tjWXc3DHRXH7rbcScIjg9Ndvd9WffePmBQZbtajWSkx/af8vhrRP15e+cmNvztR+d/V0J0Nk63nj4N3/5DZ9KclgpQOozBFJlKhfe87OBSb0unqhwESECIQIhAiECIQIhAiEClxmBywKo6wenvcmnz8/ujWSjuXMiWf4rFjg9Pdud+cq3zzwwSPMbG4346Q++4+Z/smNLfSmSIPMMxLeem73jL46e/19AQmdirP7wh9//hk/FA+jFCfSRSX38mbkbFvp9gFQuvCuA1Mt8HMLpIQIhAiECIQIhAiECIQLXPgKvGaBuDJwu7I1kXAlO/9N3zz6wkmY31mvx07/2zt3//fRkYwGbnIoY8iwFEUUQf+vExTc9enz2D0BKBVL/9i/e+qk480FqpkHqdKhJvfbPVbiCEIEQgRCBEIEQgRCBEIHXHIHXBFDXC05PPdubPDa7oGpOt7Vd5vTMfG/mP333zAOo1q/X4xMf+Lkbf3tmojEnJfTnF5ejv/jPP9r/K3/j574qc0higPo3T8z91HeevvgZKWVncrz58H/z7psckHrs1NwNiwMCqT//tgBSX/MTEU4MEQgRCBEIEQgRCBEIEbjGEdgwQH0t4HRnO1m+y0rrIzj96mNnH+hnKTKnJ/7avbs+vmNL42Itgt7F2YH80p9+9bOD/vC+iS1j//zv/J1f/EIcQzOPoPntp+be+v2Tcw/kkHcmO42HD/xCGaQuDzLIAki9xo9VWD5EIEQgRCBEIEQgRCBE4LVHYEMAdSPg9MQCpfW3Izi9xQiiEJx+7YfnFHNaq4sTv/yWXR+f2d64kKWwPH9pkP3pv/3Pn1vp998lcwlRFMHkROuffeTD7/tCKqEtYmh99+TcPT8+eekBVPePt2sP/439Lkg9cRprUjMQmVz4mbcEJvW1PxrhzBCBEIEQgRCBEIEQgRCBaxOBdQPUjYDTZy1wersFTs/N92b+/MfnH+hn2Y21WnTiv3rzDQU4nZ0dpF/6D1/73HKvvz/Pc1A+qAIUSN062fnkb/zt934hTqCdS2g/dnL+nsefnXsABHQ67frDH3jnriLdP+jB8KnTczcs9jPIAki9Nk9VWDVEIEQgRCBEIEQgRCBE4DIisC6AujFwurw3klFze7u2fPstY4WV1LnF3szXH7/wQJrnNyZJdOLdb97x8ZkpYk5nlwbpnxz5+ud6/cF+meeQZTm69AOi1CgWEEUxbBlrffKjf+vdBUj94bPz9zzx3KUHJEgFUv/aO6pAKkCWwcLPvGUqCKcu4yEJp4YIhAiECIQIhAiECIQIXM0IbAigHj4MYt8+EMemQcAOiG5pQzS4CFF/EhIURL2wvLxX5FFzqlEGp48em31gmGUETt808/HpqbgAp1/88iOfWxkO92dpDsie5lKCEAKkpDR/FAmIIwFbxjuf/OiB+wuQ+uPn5+859tz8AwDQabdqD//Sz898KhmST2ovg/S55+d2LvQBZA4L97ypDFIP7of88GGAgwcVYYtrqp9hCxEIEQgRCBEIEQgRCBEIEbh2EVgToDJ7OgqcJmMQ//BMb/L03PJeIaPWjnZt6Y27x2ZV+9IcWme6vZnvPDn7mWGe31iLxYl33T3z29u3xOeZOf3i//PNz60MBvtTBKdSKlCaS4Abt7TgpUs9iPAKBQLUCJI4gi2d9ic/+l+/owCpRxGkPr+g0v1jzdrDv/iOG34ffVIRpA5SGD713NwNXQkyymFhz11TT941gJVLbUgbeyA/8xBIBKnE1dIWQOq1exjDyiECIQIhAiECIQIhAiECCo+tFYYCoAKIfQBiDiA68xDEM+MQpS2IHp/vTZ47s7S3kUSNibH68p7tY7NYJ4rg9Nzy4MbvHD//6SyVu5Ikevq+N+387clmfD4WsHy+Oxh+8avf+dxyf6hqTrPcgNPf2v8G+G/feSt85N/8EL7z/CUQiB+FgEgIqMURTGG6/1d+9gvInOJ/x1/q3nP89PynUTjVadQf2f/TO36/k0NPCljuDWHw7MsonAKIpLx0y56tT+2YgpVkBfLGPORT90J+DEAe1CA1ANS1nohwPEQgRCBEIEQgRCBEIERgcyOwLoDK7OncbSqdH6VNiBoLED99cXn8pQvLeyMRNaY7taU7to5f7Nehk8fQPjc3uOn7T1/4dJbDrlhEJ99x9/QntnXi8yBg6dziYPDFr33/s0srg/15LiFD1jTPAaSAf3D/LfDxd92m7np5mMFH/uTH8O0XLinBFKb9EaQik7q13frkx375bf/nUMBYBDB27IXuPU+/vPApBKljrfoj9989/QcxwJJow5IcQP+JF2dvSPsA+RAW73jr1qMT52G4exKy6X2Qnz8C8sABxaQGBnVzn7cwe4hAiECIQIhAiECIQIjAmhFYFaBWsaf1UxBfWID43OzS+Jn5we0rMqpPj9WX9u5snUMrKEigc2FucMv3n5n9wyyTu2pJ9Mw7bt/+P4614wsigcW57rD/r7/+o3+xPBi+K810zSlgX1OA33rnzfDxd97qXLQCqUeOwjdfvKTAqQKpEUAtimHbeOtTH/2Ft/xriGBcZjB+6uzSW46/tPh7KJwaayWP/Nze6U+1ajCfCljq59B/8vTFXcOlRMhILNxz98RTrRgGBYt6GCTWogYGdc1nJgwIEQgRCBEIEQgRCBEIEdjUCKwboMJDEO3bAdHpeYifX16aODs32Js0RdyJ6t2797ZfSRegGdWh/XK3f+vRZxb+OM2zG+tx9Mzb92z7vU4jnoUEli4N0pUvPnr0n3eXB+8cZpjWp7pTrDn9rZ/dDb/9jpsrbxZB6m9++Un41kuLZD2FLCqm+5MYdk62P/Phn9n3J2kEE5DD+IsXlu4+/lL3fxIgO+1G/eGfuWProVYHLuXLsNwTMDz67NyNWS4ikYruW++YfGopgeG+fZCFNP+mPmdh8hCBEIEQgRCBEIEQgRCBdUdg4wB1AuLnnuuOvfLK8I5aQ9Qmomjp9lsnziQpNEUN2o8cn/3HvZXhr6NT1Btmxv/pG6fbPwIJ/TyG7v/1rScPza8M3jVIMxhkOaQKoAI0YgFf/pv7YN80lpRWb1/40Svwe4+8oNP8AEkUQS0SUE9iuGXL2D/7wFve+P/JDMZiCa3vPz/3obnu4P2REHLXttYn7rp5/M8bQ1g6l/az504Pdw2yVORSLN40Nnl8bDcM4RzksB/yUIe67ucmDAwRCBEIEQgRCBEIEQgR2LQIbBygzkPcmIT4pcWlzsuXBnujNGrU61Hvtq3jr7Tq0O5lMPH95+Y+2Ruk7xISlm6eHvu9W7a3juUClv/Lc2fedOyV2U/3s7w+zHNAFlUC1p8CbGlE8MVf2Qt3b2+XbvaLT16A33n4BaXoYgYV2VMEqK0keeG9e278e3ftmOjlGYwde3H+A7MLg9+EWMitY/UH775x4kjchm5/eTB86ZXhzMIwlXEE89snJ4/fdSMMB7dCNgVGKBVS/Jv2rIWJQwRCBEIEQgRCBEIEQgTWFYF1A1RW8HMN6tYGRC8uLHVOXhze2YKoMdaJVm6eGjs3AOhEOUx8/9m5Q/1Bdp8Q0L1luvM/37St9QQALP3HZ156y1MXun/Yz9IGMqhKIKXspQRMNWP44vtug7u3tYqL/7+PX4Tf+cZLSsmPfqhYg4rpffRFbSbJ8/vfcMNH3rZ9cjlDcHp68cCl5f7fRQvVrWP1z+69ceLLcQJdORwOT54d3rCSp3kzgfmd2yeemslg0J+ELNSgrus5CYNCBEIEQgRCBEIEQgRCBK5aBDak4p8+AOLxkxCzij+rQ7SwBOOnXp6/I05EczyOVnbvGLuQ5dBGNvPHL1763f4wu0+A6N68s/M7M5ONJ/IIlv/j02feemK++y8HWdZIJWiQioIpgKlmAn/ynpvh7q0t+DdPz8E//vYZ8sISEmIRKV9U9ERtxfHz7775ht+4Z/tYNx1C59lXFn59dnn493Dglnb9s3ftHvsKsrZSDIcvvjLc2UtTmdRqc3tuaD2VpdCPlyBHFf+xc5DbXqiBQb1qz15YKETgJywC0nzfauflQ4fp6+3QiP/WGyBuNlI1PnynrTeKYVyIQIjA9RSBdQFUvODD7IP6GFlNNeYhRh/UpAfxC0swMTtcugOkaHSacX+m0zgPMSAN2nn8hUsHB2l+XwSiOzPV/kc7tzQehwh6X3n+7D0nFpYfJJBKVlNSgmJTpxoR/K03boE/enLuVYdS7CoFEKN6H0BZTDXi+NQv7J7+jZ+eHFscptB59lz3gwu9wd+HSMipTuOPbtvR/goa9acrkJ5e6O/E5qn9LJrfO9V8auoW6M+vQBp8UK+nxzBcS4jA6yUCUuD3GH6xHjp8WAAchEP47al+Ahw9ekR/5x5QN3z+7oe87+D9sPjyY3rfvU5QeruO0f6jAHD3PvXrLRdPiqedUXtg97ZTAk4BwK3kiHLqFMDM1Gk9525oTJ6S/flENCZ3S8CBOJa3WwFaW2+V8PRJANgDAPgT4PlteyTAMWjN7JPwGADcCzB+xjQ4AXgIpvftJ9h95AjcffcB9bsNnANQfr084+E+QgSuTgTWDVD15YjDD0E0sx9E/6QFUpsQv3ARJi7MLd1Zr4l6PYoHuycb5/MImjlA+/hLiwf7w/T+BKLu1qnmJ2YmGk+gWf+Rly7c+0x36cFBnjdS5YdKbCpv+CtaSkUQQayYU4CGiE+9Z/eOD719rNnNJLSfe6X7wYX+8GNRHMmxZvLgbbs7f5ZI6A+WIDu91N85TDMpZXRpy9bmUzPj0G90IO0vWal9y6Qf1w1folfnwQurhAj85YoAsp+qFTL2YFYIlIEo3gczoQhAjyA4O3pEHAACofjj/DE84yF9y/vVTwNE8dW90Js7JuBuDUBxlwahg4snxe2wBxiI7l48JRh/IvjEbWYqKX2XD5bwW5O24UQk4Kx+sZN+psuqT5+3TSNsBoBpyFYu0PHt6n9quwAAW3qRuAgA26wz0zbSCNY2B5C15wXAFrUz6y8Ux+PGhP6Sv4SCBglzc5Dsuk3CxVk1Nmnl8gJchLh7h8Rr2QEA9TbKaQEuLtDPeieTDLBbF2+VCKTHtu2RRxFEv7xPju8i8Dy9D+Tdx+j3YCNYfrfDnhCB6zkCawJUvPhR7U631kEgk4rtTqMGxCfPw3h3YelOaIhGI4v7Oyca55BJRZB68sziwWGa3y8kdLdNNj8xs7XxOGTQO3Luwr0nu/0H+1nWYIDKvUfx4pA1RfYU/2vG8an37NhagNMXzi1/sDsYfkxEQo414wdv3tX5s0jCSm8J8gsr/Z2ZzPIoi+Ynp5rHt7ZhxQanZxZB2sp9vM8ATq/nRzVcW4jAVYkAAVDd/xiblODvnILH348exX1HCHnqTTGhiD/3E/jEjQCoYUEVA2qxnzgGwSf+JABKrKUNQAGML3R/3rCg6tylM+b7e9cMwMtnYNiLBGgAimOqQOiOHdNw7hxANqYB6AWA7dsJfOKGAJTvIe1fMmtMTQEUwFONLO4VASgCTwKik2p/3ly0/r5MqH3ZYFHgbwsAMAG0D3/vNLticRFgHMYgbyxZ542ZNYZ6/1gHoAuQN5atcegAs6SbC2JDlmVBnjAkusUjrXqvGB/V8E1egmgwrX7GNSl7/Y6M6vTmxysgYWIB4pVxiVfYbeQyXpmQcUMSoG5skQika93tcrYN8gY4q8AzA+fWRQTFCJoH8lkNmBksB6BcvKXhlxCBVSOwLoCKM6wFUqduhmhpCZLVQOqps11M998fR9DdMtb6xM4tNQKpF+bvfbrXe3CQ5aomNUd2Is9BRMidAsQACpy+d2rbh94+lijm9PSF5Q8uDdKPRbGQ7Uby4O4bWhsCp3bdKd5fAKfhkxIi8JMQAaoDtdlPKFLxBEQPaBb0gAKitCEAnT66X56/m/Yh+Bzfda/0QSge6+0CAUePeQwoaAYU0+ZQgFD8/VadincB6GmwGVCAGQDQABRPWgWE7oBpOKdZUAUKVy4IBqDIhJ7tXRLbYKu6DmRCJxmEWgAUmc2sjwwoblsUA2oAKJ40CTBPRwmIEtjErTNYFAg6aaP9BQAdHwNYRHBpg1AcMQZZAUBBAVDsZJ2ny0I1tDazq99aw2WBoJM2AqEIQJeXAdptgOViL0Cellt65zUhoKdPbwHIdEWAqkoDyLMVEcVNiT9pRBMaaV/0k4bM077A1ziST2+ocS3crTZpncdXSOfRXGpMrS/EUMooaUgRg8T1olTKfgwS514ZLssoacloADJK8Gldht5AyqlWO19GEL3YhbiGoFnKxvhYvqiAM0DSkLK1Lctnu7msOYD5pHx+20C2Xu7J2957b46scgDK9nMVfr8eI7BugKo+VCi1x3rUwyD27QNxbBoE7ICImVQbpK4sLN0pG6KReEzq6QtLikmNBHQn281PbNcg9d/OLd57st9/cJjmjQzNp7BrlJTKlL8Zxc+/Z6LzoZ/uNBcRnJ6Z7X2wN0w/BnEk243owZlpA04vrfR3pjLL4yya3zHVPN6oYE4DOL0eH8VwTSECVyICLgDFOlBiP6kGlOtAMQ2vAKgmQc8fcwEoXokBn7roEkGJnYa/e59iQG8HBp94lgGg6m4s8PkiANxk3aILQOmASsVb21pp+ClmQXX6HQFo2kPWkwAob2kfU/BzAAhCcfNS8DzOZkBxn2FBqxhQHDEB2bBLoB0AxhGA4nkDF4BmQyHiWkcWIFSN6ngsKO1T5w+JHe1Au+BFbRaUgWgl+ESw2WoRgtSGMDLF+7d2aCDqg00bgKrrqK0IWEFc2QL6WQagBnziGQaAUkwbzvuAL+pZXwyQis1A4FGZDNS99vsAjYYZn2cManmePshcCKgjfY4TIZFTBt+4psxoznodYDAAqCUg8Ce+xg1Pr2VUliFiKUUKMq7V8/6gDyKSMq7X8ygBCSt9GDbquRiCjIZSJo1m3uv1IG7mOYPnWruV9/ogo/6ijGtjsjee59tWpFxcxvFStrKt+Wz7rALM47tm8tbFk/Jcf0+OZRjTR4/IL33pQB4IotJjEnaoeqoNbhsBqcPl/p1pPWs083p/Wzsp0v1n5pYOpincHwnZHW83PjHZqj2Bwql/312+95ne8F8O86zBALUeieffM9n68D315gLk0Do/3//g8hDT+pFs1+IHp6cbBXO6OERwCuj+P79jPIDTDb61YXiIwF+eCOh/LOMF2yDUvoFDug6Uk/GuIGlEHagtRMLJSnWgbhoehyAD6gqRzFX4daC1hZ1y2Du7RhrerQONm9slpuMRfFal4Xk1BUI1/uR9mQKmlwoW1FwZpeFxs0Eosp+4jxlQTMOrFDyC0HGNQvGchldzikztsLxPjSsy724jFgahzIDi0dxKwzMLij+bHguaK8CpNweEuo9wnuHfOEKWyIIa0rTpMaAEQg37yfMQ4GTgSnMhA2rfqwGVOBqBZb+4DHOsjv6ICEQt2OqDUAarCkHiVm8ADPogE/dvtdTg0r5bHKPxZ3E6glCNZdElp/LvvcT6OWsj0MtnmQP1el2BXdxqMQFgBXQRNBdbDWQ+FAJrKPKhgBr+qwsHMZjWL/R4madCHcRyvkTmNRhCJpN8GA9k1O/kzWgg01otF1lfRlFDplLmIpUyivtyKOs5ss+JbOTRoCdXEimTZitPpMx7/a6sddp5vLIg6/lY3m1I2cjyPFnK5eLWLO9kO/PG3Cl57tZb8x0A+fRRkF/6EgSg7H58rvmrDQNU9eHcAJOKIFXWoVHLYweknp9fOZhm+f0gRHeykfyj8XbtCUig/5XF/tuODwZ/mIOsJxC98FfHxj6yrw7zeR+al5b7v95L048BgtMkenDrNhucZjtTmeZJHs9vHU8Cc3rNH61wASEClxEB/R2DBYGHkQU9eFDalkycfj8CR0CJkSwmlFa1ASjWgRILWlUHqv7Q6lpQvuLdi0khRMI60FOnTnlCpN2qBrTemZFOLaiaYAaGE2dNHWeFGInS8LTZKXhe368DxZpHVQ9aqgMtzqC5CjGSVweqij4nVPp9qT4uXSA6QQBUb8iEdtYCoFgHilt3CRRYLDUBpB2YikcAugTLig1FAMrsJx5nEOozoQUAZUvsngsKTfodZ9G5dX39CCZbQABUpd+bACsrAE1kQfVGQBTPI/DqsqC4qwmyYDARZNqwEllQAnsMROvJQCADSlsDmAgtAdCcgJ1iQXFTgK8BMrHZUmRpCfTZwxiA2uznMJaSmVBePVdr0JkyHha/FzeP+0eAVT6PASi+VkDT22SswS7iTdwIY1pjaYcBoARMk3gohkOAWo2O8+mJXmOoJ0oUcMVT9MRDvhe+EA8I8wXw4RjPTyDRr1MU36nrKf8jiu5Pr4NAGUFwBBKBcpRAjk9pnrYyEQ1lJGt5WuvnzbSuwPIw7ssol3ks6/kwb+RRsiLjXOZYDYKM8wB/b7Vy/IkMcz3r5L0szxvjed7KsnwxnUYmWbPK8/ltc/fmASibh+01AVT14K0TpL7UhfHl+f6dsgaNmoz7k3XNpCbQvji3cjDP5P3okzreqv8PjVZ0LBEw/H/7w7ef7Gf/4L2d5j+8M4bZQQr17tLwb64M078vEiEbcfzglqlawZwuy2xnlqd5AvH8RDOAU//LJLwOEbi+IqD9QCUoeTV+CTH49K+TBElaj4RUqKoHNUxQlSWTSsPzZjGgZm4rDY8aJC2JNzWgZuTINDwq4tcQI9EsyIYCYCresJ+XtArepOFt8GmzoHYdKF+VDUIV+0mKIyU6wl9RiMRjHQbUTsOX6kCtGlDrTUAGNOq3ZVmQRIO4FhTBpwKpS8SC2jWgOK46FS+EScGbGlD7GbAZUN7PTCiC0AKoKoxKANRlQW0GlGfw0/C4v5yKR4DagAZB0wal4DF1vnoaHkGQBqE4rU7HuwworYVzmWx9XaX6mbdkAtVmQPnqbSaUACgvZEduNAitxVCsUwBZB4QasKbmd0lPB9wSAMWtRhiPgaQ+pwbIiQIGfAqqAAAgAElEQVQgADVY1gKvCEALhpXvxVq/uC6zD/9FREsSADXg07CxHAnD5lrscXHNiXXNfB94JsNaBtgEdXEd3OI4E2kKkCQJPtgWhqLzpLT30TkyAlFMoKd3wXKs/lVSvIMCT5G5iJM8V4A5VYBZSJlHEvIsSdRPkUk8CxXmMm/UMwTXw3Qg4xqCZpkPpcwRMA8RROd5njRlnsatrJaP5fV8Pu9NTObN8xfyxa3b804G+ZYU8nN9yG+bO5JfD6UXrxmg0huxvprU1UDq/OLwYD7M7o+iqNtIkn/SaUfHc/XZAhHh368Mom5v+IFBlv932L60LsSD41sCOHW/isKrEIHrLQLGDxSvjD1B7atkQVJJDa8G+Wp43EeK+IIFxRcagOKvLgtq1PB4DNPwVQAUgJhQc11ajLSuWlA8q2zHRFZMbh1oJQB16kD9NPwkieEtIVIBNh0RkgGmnIZXavjxsco60KqnxE3D84hOSYjUsQAojrKZUHxtg9DcrgPFg0qIVFECUDCZtK4RIwlh+E4SLqk60BIAxT3VIBSFSOZ+ywCU5nLT3piG7/f7qhbUZT/V1dH6NgDFHSoNj7Wk7nq1jAAnb6oO1GNFmf200/ARIhNkOBm9Kia0HDu6Fu/6dRpexgR+afNZUA8AOml4AxIRfApUaOk0vMKSQ/Qi12BTAUuEoIQxiQUlQIr7DHilcYaJtcBmBeuqLjlPRVIzoJDYTwsMO8C0DGwB48IXpuK3OgClOCUQy0wowKtApEaSNqCFVFmzW2+rHpfSe1Eg5gRkbgFO9WZVlVgktEyKIJZYX4bcsUzVtdCVJKQWz3gcQJYCxHihCFFFLG2A61yLmiAuX0/FNcUSRCYSGatrwfpkBMVxnuUrEgFxLuJM5CAFNgDFBRPIERvjMQTHWSLzOK1lKf5EIB3VsiiHPJYreZw38qFcyeuikSGjXI/aWS85K5txO6vneT5MJrNWBvlieia/bW6mf+SI8ALoRn1drzYCUgdL/TtzAY3IY1KXloYHc7SgEqJbj5NDrWak3KHxX88rw+z9/TT9qIiFTET0YGciKZjTgcx2pnmai8Ccruu9CoNCBK5kBPCzz9/UyIAeOgheGp48QQ/sA6FcmfRGDKjyZCr2Lb6M+0waHr0sfTU8DiYQ6gqRiACtTsMD+Gp4EiKpWtA10vDEfp6HqTEhLjD9qT1B2Q+UbwABKKXhdR2oBp/x8qTMPI9QPw2Pc4w1F8VCRRq+ZMdk1YK6daAoTuqOrgPFRbxaUMSbi44YqZyGRxDarON74wqMNIYgBlSl31eEGDalXZtp1PDuH2abAcV5VCq+tiI4DY8MqIibcrQanlLz5TpQSsNz4h7T8H3oY8K9SMXjegqEarhZBUILAGqxnyJqSJlXp+HVnAoYDpQYST2nWpBkp+P5WSkYUCt/XwVAR9WCIgM6zOrSrwMdRjVZK9LVQwWYVC0os6wVtaAGhBoAjAA0zWoywXWGQ5WOZ/YTQSZB0jIALdhTu/DUAaB4Vq1gHX0AimAs1mCYWVHaN0IrY+1HACqyRBIQJZBH959InJOBngtCDVNqM6GqN5BIZMGEIgjUEyiQPIoBVejRulZ1nqJai+85Atn0GgEo/lT3GieQZroMIUoFg89MjfNxGiFV+x8nyNAicFRMLW94LQKkAp3WFz++pjXNTuurXMcNZGUZCM6pgXIcx3jHaotkptaI1UGFoyGOMpFlyDjrhRS4xnuxeO/SvaGjUvrsB27c8uNDhwQaOl3+thGQmi2ldw5rmapJHYsp3Z8k0OkupQdTKe8TQizV6tE/jaPo2byf/VI/zz+MVlIRiD9qjsVfZp/TLMp2ZojaQc63kpDWv/x3McwQImBHwKTh1Vfeq7l4BUJfHYL/8UYsqJuGJzGSAZ841rZjMnWgblckmwFlY/rCExQnKdkx0VWsRw2v/hBUGtNj+l2o9LsrQmL/z63KiglN6QtPUF0Hyql4EiKZrQqA2p6gnYFQdaCcimc/UFTDKyU8TlWphieFvKuErxYs+Wp4PI8V8coPVOfgR9eAssWS5jELKyacyeY2iUjgvYX1UiqUIIntmKgW1CjhcbwPQEeq4YvyT2IwGYByjSgCUDUfpsjTusR6UGY7EYBGcUPaQLRUh1hvgA8+bSU8v7O2Et5Oxfs1oDjeAaHIrlbUghomlpCqIUzrSoRkr1GvrAXVrKRLSGqm0mcpTfqb60AZR3I9KIJPwrA2w+ql8CvrTCsYTASKarKkSOEzLIm9OlC/BlQFwwJy6rUSWfG12In9choek94KExoq1EnFlwCoBoyKwWRkzPscFlQDLR9UaQDqMMYWCKUpCZQqwK3ZyYKhrQBpJXCIROkIoI6Ak59RAowJrUGIUbOu9ndUGeCq0xDcMuIswCv9gjHVUxUgtGBsNQDFMQItIdT9MIqvYHcRNlvXpoAuvmdCZnEt+d53/7iNhidquyIAlW5g/el+BKmyJhoilwVIjQSMrQyz35Ug75NSLEUx/LnM4VdACBkDfLaeRF+JarCMHaJWAjjl9y/8DBF4zREoGFANQJUfaEmMpFtzHjhgvOmPcIvOqjQ8Xo4tRqLLG1ysi/q2PdIGoSxE4hvgctByVyQ/DY9nWEIkXQ862pJJ14CyIb1GoyxEsrsikS+oy4LS9RlTenxVsmPCus/CgZ7ESMYL1E3DMwitUsKruddUw9MVdaCjSFHcSBFPfqCshrdT8JR+92yW/JR7wYa6gJvqPKuFSLie7QeqJEdaDV/FgjogtInqJbp+SscbMZIBofQ3io8g+CQQ6l+jm1730/BYA+qzoFVKeFyrYEGtdLw/VgmRlIeT+fgpFnSVek33g0ogVH029AFUw5sSAMpPF6DEqu8sFPIlIGly9QaEEtjE9Hsa1VAfX4BQF1CpO6f3QoFpK+8/Ig2fxJqZZCCq74NZUPt+K8GVD7iKezQsI1+jgaSU9icQSnsVSWkzh5CU60A1C2qD0CrBFAWgIoVfsKYGJPM1qVMUG0qDVDmCup4C7br1pTowZRAa61S/zZgiMk0tcKjZSWYycS4F9vCezXnEHmMVqse+MgiNie20mVU+32FBeU4EoZoBLYFQFQB3HWmDUMUCY+lALJENNqwrxRlf1yBfrLUnHv32g87X5pUDqPQmrR+kipX0zrwmGtFQ9ttJQm1RBYzJHEGquA8LPSIhpIjgj4SMvhLFsJJmkK5AthMk5LGQ87VOcrwhyx2igs+p+1UYXv2kRkDXgToM6GHlCYqbqQHFV54Sfq2uSHPHRGtKp+HhGACQJ6gdaWRBe9yWEw9UMqC71SllJbzlCboOAMo2TDiXLUZCP9ASA4rUJ9oxjeiKxPegmFFdB5ozAFUHXTU8p+HZDxRHsCco+oFG9Y4kX9AqBpQKO6vBKtWB9mptSZ2RjCeor4bPU+yS5DGbRR0oAVNMw9O9mXG2Gb1tPo+jGhrAMqx1PEH5j6xlSl9SwkNTG9I3pAGg7meR0vCa72yQcAjz8SRMImYUf695nqB+Gh7rQKtYULsOtJSGVwCUoG8VWHXqQNFztMrayQJZVsmomtkGoNUMqMWKWYRnVa2mbcek/tZq8RKn36nm06jtmQktiZiqUu7FPo+KjVOhxEHDtEKQJChNXIAtVwmvdnsA1K0DpRNtkGazjAULiuunqQdAVaMNNw2PoLRgJg17igDNALUKBpTT94qh9MVNWJOaqppMBKDGE0DXgdoM7SgW1EKxTvpdx43T71a2XUWVUuS6BABT/x4AZWrUAbkM0i0W1Aaho9LwtJhhSs0ntLq+Vb1vHgBVcFfHwCwfK9DMZKlao0jzm1WiKH4xkse+99jn38aVJMXBK8ag8oyXA1LTCBoQQSuRgA0G74Mc/oWsw5+hKZsYQL4YwKn77R5e/YRHQIpCBq+7m2NAbDsmTsn7XZGq23JyOIkBpTrQcnvOWy6eFNQXnoRIp8dvlZyKx71r9YXnVYq2nKsq4qkONBsTIu5ul35XpFT1hZ8F7oyEc9t1oAaIun6gpbaclvLdtmOy0/DMiNpdkVwASne2KgOKAwpLJuPNZDxBATqdNuTD9XVFIjsmlxl1azPpmnw/UO6KxHZMDE4x7b4aA6rmsrsiaarTFyRVpeGNJZMRIvGzMNKOiQegEEkBmtF1oDx0PXWg6j5sAMX1psq708iLqpg/9gNlIRKxnnWLCa1gIFkNXzCUeAVVqXTaz3WgPhDFo0kOYghoyIQpfhtUrYcBtdbFcwui1NRJ+nWgFPeKNL4KYpnksutAGcLa1xlLUbBpiHBHMaBOHahVt+izoCWmsEqMVAlErdrQQnmfqNpMxYjaALQAODZTWC08Wg2I4jSFEAnXKPLm7ABA8xMDOqIO1GJBixy+rv2kVLxVB8oAUYNDNbeqA1VPEt/V6gxoAWCpxtak+ukfCgUA1bNV3X+xkDVYYFNpKX/0o/9t4oS5EPe3Kw5QVQA2wKTGw/QOURONeCj79Th5ZSigEdegHgt4e57Bt/sxZLVlgEGczaBsLBFyXgTmdNT7Gfa/niKAnyNOv+v7qgKfqjsSC5HQD7QiBY+nj+4Nj0f3qRVG1YHiMRYjbYYdUyFEwkJQvZESHjfPjokHWLWg1XWgLIPXnqDYB36CrJhwY09Q6g+vOyVZfqCr1YHi+XYt6CgGFMc54NPrDW86IvUEtrb0lfCR8oUx6ewqFlSt4anRcR8yoD1YAQShvKkWn7itaGFTIUayxlS05TTvimtKjxl6x45JM56rp+BpNifFWglAjR0Tr18Cn1qMNJIBxRNHiJGQhRVRvVoMohlQ166+Sg2v0/BuRnzNOlC8LLsW1AiPqqyWTB2osZXCGcyirlepBr66DtQXI+GZJD4yLGglAHVqPvV7VlLDE49qhEgsAMocRbs622MoHRaUU/A8xlLRu2lqy47JzrGXhEgqwmpZRw0fJ4rFo1pQEFmaGiW8ecj181kBvp1SAnOCzYSSsMmIiTReVNdTTsN7IJTBtUOpmhfIgiIotUo4iblkIZK+JKcOVH3YyoJ4mwVlppVT8LRimVUtwKdzAV7g1vEyjqKekNk3H/v8BCe8Ks/aFICq4rEBkIrpfkhEvZ7LXrOWvDykaEXEakO0nGa7JYq7crlQmwxp/XW8/2HIX5oIGBaU+8OzGAlvgVpzgjhyN1BrTr2Zrkij7ZhwKLXm3Ad2b3jcb4CosWPCDDx1RErEmbndcmbqtF4P0/BlNXyVIX3SzqVfC8q94ZEF5fw794ZnOyZOwzu94XUqHr1AR6vhvY5IWglPvZAmlCdoURqqQWjRGQkDUWHHVErFoyk9GtKzeX2hhscJDAtqe4JybagSJGlLpqb6vSINz/ssRTy9zX5vePcPJhvSq/dZm9L346Zs1IRWxNMsa/WGp77wOg3Ppp/W56dKDW8LkXjoSEV8Yfa5uhiJhyEIHaYIHAcCyzwRfK5qSM/sZywE+kKurzMSoVY/DU+dkWxj+ppKp4vMVcMboDhCUMRAAVXvqIL31PDIgnLcCnZRe4K661V5gqorp9PZjmmYAgNRxm04b6LHjVTD2wyoXQNqiYUQfGaF3RQtiyyobcfEaXg77U+AbIS9kyUUKtVJMqJjULUONbyyRlLq9LTwLFVMsAa61Wp4T3hU2D1ZIp6C8cT+6+Y9i3FiZkAxICp1LSyRkP7sjXIgcIAuAUEEn7mIJafiC038SDU8njWaBcXzMbaKPGUWVMeUIa9jmVUIqtz7Vxdn06Q+ZWp9V7jI2TpgM6cSzm1Jx7710L8SugLdnsD9fdMAqvpiXCdIne3CeJrD3iyHRj2GbkPCi6lQ1HE9F3BzLiHOM1iAMTgxBtBvdCDtL0HWmIf8zCLIUHM6+g0OR65lBLQSnv9YvfqvLNUV6dXX3Bv+wFEtQlJjqB1SFfjE/ZW94bk1pzqTWFBOwWMNKG6Yjk8XTwkqAa2yY8L95VrQoi+8lYIvg0+Ac9qMXn2PrVwQCD55w77wCDqRBUUlfLGfle+6NedoQ3rDgtpKeOVMr1lQ/Gm35syaXUFFoFTzib/nDe4NP9qOqdwb3m2PZLoiYRoeYGkJgAEo31dVLSgeUyyohU1X8wQtlO+KycSOSLpVp+6KZPeGN4wqX4HdFckVNlXVgWJfeEq92y052Wje9Q4t94bXfeRts89SLajLgtog1O4Nj1dQFiJ5DFZFHehqKfgCfGrhUlUdaOl8pRavTmf7daB4zeQJakAk1YJWMG8qna7HOV2RqgCoxYDiIroyDwEobmzHhKCxrIi31vZN5LUS3tgxqTtQc9opeK61lDGxbioFj794QiRl5VQhKHJqQQvLJ8/Hlc+zWVAc69SCWuCLWcnClgmULROyoNbXiscUeil4NZ0rRLIN+BXgVCP0unYNqEqNV3WhqtDxVLKslHg3NZmaBcV0u+MBRXWbdE/u/bssqFbiU47NbDoFb3bQOsS86lrTLCMR12pA05n0yr2IpXjqr+/+zBOHDh3K1zPrpgJU9eCvAVKTMYjTGkT9HMZ7fbhdplCvxbAYSXgljeFWmUMiJCy2tsKJpS4MtkxAFsDpet7aMOaqRkA/56ov/KtKeKWIt8RIRUckvKgiDc9+oLizujc8HlF1oBp84mtmP8mKyfSGV/er/UARiCIDin4dN61ixeT3hkcAWsmC7piGc7o3JwqSkAllFhSXtVtzctxVLShuU6h6n7e+a0gRb+yY8JXVmrNAmzrtrlPwtHsBOsOI7Jh0b/h1t+bs0pWZrkjaeR46RRqehEhuH6QyCC3/UXJac2pZu+8Jap5HAo5+b3h1bdoPFH9XrTl1Kt5W0SNzGmEvRZX693vDs95draDWsVPwvBdBadEbvk+dklY1prfT5F5feFrDtOZkvMpAjVlQ9exaGfdSDWgxj5tYJ0GUqQvlOFb1hseyAfQDRZBpziAWtDDzLJhCfB+N7N5vy8nr4LncEQn32Up4fE0m9VZrTg0obZa1nIIfAnZ+xwb0KvWtwaeTtca5LRa0uJ4qVo73VZrT2yl4dQdqKu6IpPZwirxCKOR3Riq6ItnkXUUL0ZInKC5kC9ut++A0vA0YVSzyVCgzentbzZYJC0gRuSJ7WNRa6rpPPUdRQ6lBmu0JavuBjoy3n4a3REaG/VQRpjhzCt6zcKK1dEAq7onWj0Fixa4mMWk+U/fpK+KLmlZ2EvBBaBUoXW3fFTtfDiFOvvOj/7X9kvtmrv5q0wGq+vJaA6SmLYiSHsSDMej0BnB7LCGJGiDxOasBLNXH4MT2FgxP9yFLViAPzOlG3uIw9rIiwHWg6kGmmXw/UPYCre4Lv44UPE5qpeH9OlA8jCxo4Qk6Ug3vp+HdnvAchyo7Jrs3PLflRCIUGVATP6oFLfxAPTV83JiUBER9AKrT8JoMVab0aiYCoLgZWyarL7wyBNUsKII3pYQ3+xw/UE7Dl/rCl4VIjh+o1RGpyhNUdUTirdUqTOlpl6uGj+KmtC2ZEIDSOOoLz6NVHehKD7gzknq0VA0pMaW4OUIkvb4RIpW7InEaXvWB5/GrWjHhIEy5W73hNS50GcAGKeutjVPwNeU3SqATvUD9NLzdE16dbqXi7fnU/VeALgSgvDYLkXC1yn7q2Bu+si/82il4XJ/S8JQ5577wtoiJrlF7ieopq+o+S+wr12xiBybdGYlBKLOfblrci4XvB6pEVhWtNK34MchTwIixHS5SYvZYmOPO5wJQS0hUWBaNUsMbU3rbkJ7f6wKE6jrQgmn1xUieXVLpWalgKFl4xJZM6pwKKya1u8L43ikzqKwDxTNNKp5wW4UpPe7j8Nh+oPQh9/CWYXhNGt4FoAqg+hZOypQ/ljYAV/d7uYzoZp0vxKWppPPoQ38sNEXgv6OjX18VgEoPxeoWVAhSs0WIViJo1+uwJ4oAP4ZLnTY83epAemEIeQCn639jw8iNRMA1pT90iLoiKS8JvWEqXnVF8k3pzz8kYL9vSo/nUVck3nw1vFHC4wjTGcnuioTdkU7OnxbIgFIKvqoOFKBQw+vFRvuBni9ac9rspwGiZMk0WXRFYnA6BVmb60ANAOV7K3mCFv3hywB0ZG/4EgDF77Jyf/iCqXSy7/SCxUgMQPn6ZNoT7TY4vKjfG56AqDGl5+5I5TpQ8gS1LZkITJp9RVcknq+5UVN64wfK92ADUNzHfqB2b/gqU/oChJqm7xqYrt0VqQCNdWMivz5T+lGpUMOMsuWTasOp/UCL9L/jB0oRKLoi6fS7qtPUTGkZSOL6NjNq6kA5zT6yNzwuZtWCmm8RrZBfozc8LpvUisZD+tqFMKC0qi2n8dBU9+p0RbLvn9uOer3h7VpN9UEo2yX5taCFEh7H6zrNylrQEXWga5nSu52gsBZ09XS1vXZVVyQCoKYO1DCKZAWlolRpSk8HRvqB8nnFBKYrEkVes6B2HegoP9ARLKj6HNnSd23J5NsxFc+aRqtF+QQXjK6X/TQPrfvbtTg/zk9N3fD97z906BdMM69R11ex/6oBVPXBqwCpM/tB9E9ClDYhymYhaicglhvQbmQwAxE811+GLN4awOkG3tMw1I6AYkBfzbazAkkSEYoPPivicfjRCgB6/tiojki8gDak55dHTW94Nw1vsZ84trItJ03id0VSdaBcA2r5gZbT8GTHxL3h7TpQnJfsmKgjEm6FGAmV8Lw5veFp58iuSFqMhBCUrZjstpyFJ6hiQXEjJtSwoLSv1BWJFesVVkzq/MIP1LTl5BVsRXxZjGTZMTliJL8rkmtKb7flLPxAsxVV3a9S8I4ICV+NYEAdOyYXgOKhHtoQxA0UharvZEy5E3u4Wh2oVsJb6XfKhJfFSHZ9JwNB/MOJ6XfeVm3LyYO4DnQ4ALZjMil4NzWPp2BbzqqOSKYtpxql6j4N4OTOQWVvTT8NjzWgdGmuEMlnQf2+8KYtJ53LWyUDylhXG9Iz2MSfNpvLoMzpjIRgUaXxrbIQx5AeV7ZZSgJbTh2onpi6ZiYeAK0wpfc9QdXNca2pa5OkWD2bZfW6Ijk1mupvuPZGLQzpXXCtPxAWrtBKcNswXqfhWRFO8WSFEsWJzkoAvI5IviG9+vxVlTyUWFaDEG0xklqJ/TvRSN46r6SEpw+7g5m0zwo9Psbws9Se1LFjssVI5uO3MQb0WoDNta7VuqYogjyS2Q8e+/yWZ+zTNvr7VQWo6v2tAqnjIPqTEI0nIAYXIeKbWNoJcioFuZiCDGn9jb61P1Hj6TmWKLSkTe1QgqSDSgnPaviiHdIIOyYSItkbsaCFGl4fck3piQE1QiRSw+OGiniuA60SIuEYB4Tqlpxr1YFyGh7P5xadr6UOVH2v9hf0PU9CIUSqrAM1YiSsAy2ipGpBxywhkomf4wmq0vB0zNSB4itXCY8dkbgOlKtE110HynhznXWg6lp0Kh7tmFSKXoNJBqHYIx5ZUdNk0xYi4QxGjOT6geIxS3ykTel5L9aB2gyouhbHkN6cr0Cg5QSPnZHc55TqQG2sisfVOM+KyYeRfi0ogdky2KxutagZ0CFAXeE8g3j7ug6UZqqoA1XgwgWhVb6e6j5YDa9v2gBQ3MHspitEUudx7SkLlCrWLBhHTO9bLSnxfFawrypGooeIOgkx1i3qUE3nIbsnvA38MBVfZLlHqL59MVKRhse1NcCs7IxU6g3PAfRbh9J+bpvJdFfB/CrB0CjFuAVCbbC7jjpQZVFlMaBVNaD0/pfFQMXzX7gwuUIkdT+WJRMUgqSNpOFpFVzfshIt6kBpDcKWkV9SMKoO1P/gjnp9mVZOIxX1m76+XB5Pxr/xF58Tc+tdatS4qw5Q1ZttgdSDBwEOPwTRzDiIMy0QW+vugzg7APmufZCfB5DHXj31YFEJiL5TwrInv9xQhPOv3whgCl5IkFK94Tb7yX3h+adiQlGHpFtzmr7wqjWSVsLjnZr0O74qUvA6CIMb6uqzcbt6jWIkDUAtP1A8QrZMbMfEEbRac+6agWH3rGFB9ZBRfeGRAcXNrgPF12gWZwNQUweqRlNnJL1V14HiwUnSIs0DUB2oMWDyW3MWAJTrQBe7niWTqQ31WVBcyfUFrbZiwnElOyZ9D03VmtPdCiV8jzw8zdHRLCjXgRL7SUBSWTJpP9CVlZ5Kzq+thqf60FF1oChEIgaUWnb6daDcLakMQPGKrFpQfVOjACjfs6rPzAeOHRMeK9pmatGSAz5xwIg6UL8vvLNONhDDrC5JFY+G9APAtpy8njZsUqcUDKRTp2n7dVq93a23l9TwuNGJVXWgCrwWU2nWtbB/crsgOcC36AtvUuM2jrLtmPiSRrbm9NnPUu92ZkCJFUQhEs5J7Kc2tmdhlHX/IwGokxlPrFS1ZZRZSi2TGp7eD/dz5NeBMhBdSw2PEEzNxUSn3bXI8ez0WnNq0IZ6EiROCybXZyJLwFwzm54fqAGDFFdKk5suRrwP+7ur+y/qQFcXIzlMqCdE4jkVAOUtptpQVQuqRFDWm7mRWs7rnAm17qr6V+/6owhe2TMz9q0jh1Ti5LK3awJQ6cExNakodt4HII49BOJd+wFOPEYPwt57QX79IYB950EeOxDA6WW/29f1BLotp3eNowRJatgBAErD4za6LzwedQAoCpK0Gh4BqN0VSdWAahCKY1wGlFZy0vC7ZgBePkMsqLetBUK5PSeBT6z3NIb0PBUp4ecA2JQev5Tbblcks+xoJbwNQJ06UK2Er/YDpa5Ica0jS6b0jhcoXgF2hifA6RvT4z5kQFGEhBt1jEfSyff11LWLVoEnKeG9HvKWoMik4HFGw2QuY0cktctWwnOk/DQ8nVtmP3H/KEESHZGeEEndl9eWU7XStFXOI0zpfTESzoWCJLZj8sGn/bj5bTkRqdp+oMaU3lXEsxKeLZloTruTUoVxfMFKVlsyjexupFlFbs9JIHQNEZOVwuf7HWUqb2o/DaqrEiTFI+tIvTpJR5BUTsMT+2exn4wKSzWg1HHH/34oAGJfFkMAABpvSURBVJ86YINPaySeJ2LppJadrkhm3uJeZaoYWQXHtaidAKgnx1pDjIQzVHYF0veiMFmloMg1pFfDqphhm3FU1+ugUQUAiQHNjCAJ9zGVqTo+rd0VSa3PrTntZRxLprIYqbj/9XqA+m8wv/7JOf/oDz8/duxKEofXDKCqN1+DVPz9sM7KYpfwI0foQ3fgAMjD+uBBFK3o7UoGYNQzFfZf6QgYAMosqFrhVSESp+ApDa8ZUL83/BoAFKfyTel9IZJRwRMCtTsjuWn4shipCoDimmUQSgyoDT7xNQmRXBBrTOk1/antmEgN7wpNbCGSSsMb489CDe+b0hd+oHgB41j/WRavlOtAR/WGNwCUDenpCWkXwLQwpUe4V9kb3gKg6g1jJrRKDQ/CFyI5HZG4DhTnGQFC3d7wzSJD77fltJ90uze8TAZCoGE81oLqvvA4dl1p+Ire8FXdjlTyOxkUIBRh7wD6ShVvX1cJgOJBD4Sq71S7N3wdAMEtC5EM7KTfKk3pGbxZhORrScOTH6hneF9hxYT4tLr3vFd/qgzpGWIlCmrxVpWGH8mA4kmVVkx4AEGiERj5afhC6FMhQlKx90zpXT9Qr3OWuXq3rtEypfeFSGUAStdcmYZfTanOJ1QBUAWIE2mr4TNOwxfq9KrvkQoQyl6beJkqq+52QKKYMQjV8NQSI7nq9VHlBXpyZniLUlNiVW1np6p/JBR2VK8FRI46Z70M6uvkfCHkoDaIvvXdfzX2iv2ddSV+v6YAlR5Q18x8rZsK4HStCF2b4/g+qveG0/CvPlmHDpEnqN+ekzxBj6h/gahNteZkT1BKw4/vulcuvqzV8PfeS6J4rxZ0ZFtO3REJVfCnTp0qesPbnqD1zowcLJ0pnn+/DhTXWosBxTQ8jmMG9FJri/TT8Elji0yR8eRqHMcTlOyYcPPrQKOVcclA1G7PaYNQtw50DGCx66XWR5nSa9V7Y9n6/I/qiLQMrboQKEBSW5sYUHxpp+FRBV+05WRkWYiRPLCFdZ465a5LRUttOSkNv6I7IhkAS12RqEjUbgEKzSYAFos2m8r3E4qOSJxcN5+LAoRqIVJf+YA26JQKAIrsJ7XEdC2Z3DQ8CZ+4DtQWBikWFJfXOxF8rlUHWoBPI0ZXNzDKExTFSFVpeFeMhDNYtaAOCDVMnDJYVZ2DSA1fWDB5taCr1oGiZ9MINbwRRFnsX5yKlG2egADohu2YWIxkpeFdU3q8fwNC7XpT9gStTsNb7KkFQgt2sSggTSstsBw/UHUJ2ICebpBBqAuGiQEt7KKw/jPVGhpbDe8xoEXv9kLFRfRpiQW1GVDW9kQg3DQ8mvCvYUxfmeanOlA2hy/ZMeH9K+CKLvsjTOmrhEiMNPF8DZS5XpbXQKbVT8PjOqX2nBv5E/lagKs9/+v8/AjEbCQ6jz72+SJBtpHorjn2mgNUvsK1gGoApmu+l5s/QHuCsiCeF7TV8OQJit2RNPisECONFCKhIb1SwuPMq/SG33ZKYO2n3ZrTv3lfDe+35WQAWiVGUkp4z4ze9QR1U/EqDc81oAhEFQgdzYByHWjBhE6Yrkh2RyQFXIddMqXHF7ozkquEpzS8f/+r9YZ3GVDsitSGfGhacqIlE25+V6TCE1T7gbLXkm1Iz9fh94bntpyOH+iG1PA4M6XmRwmRtLZJeYoWOvkGAAJQuzf8yJacdhAr0vAIPkVcl7Vs4BRYcX94C4NWdEWyUutOHaiBqqv2hq/Xgde1mVCXBbWskNySTEeM5DJzBFoVbsI6UAUSqTM8GdBTbSj3ilfxL2o6a2pQddvPCjslrze8AaDaX9SKv8/a0gOpAa0padXrGyGSur4KFrTwBLU9N71e81VtOQs7Jm3FRPN7fpYV6XtmWw3YN2DcN6XHNDytvZoVk8VQ2jYCaVUanoRHjsbG6Q2vFf1r1oEymHSz78yEMsPJfqD40GeohLd6w6s6TaHrNIvC2Iq+8BVWTDif7c5UzYCOKEPY/L+GP/ErxDJ75o3zX/3hkSO/Zv/z4YrG5boBqFf0rsJklxcBS4zEHZHsNHwBQrUQCRcbLUbCo9V+oG4KHse5angCoao/J/TnVxEi6btVfqC47TS3vxoLWijhkQLdXq2GL8RIXAOKQLTCjglXHMmCqiT8hMrK27WgzIAaAAqwuAjQ4Z7vxW2U7ZictpxFPWiZBeWKT1UDugyg/ED1T78GtACX3JZTo0lpe4TqQah2x5Q7M6AKP3hqeNUXXrOlbEpv+sLjGaZmlL1EkRl1Aa9bA2rESCBU1r2v/leo4YkNLafhSyyoqh8t1wUqAKLV8HaVv18LiiBx1dacq4iRiI0Fpbg3axizUSNG8vvCGzCpAJylGCeQOLqe0+nvrkEoM6A2AC26Iin2U7OgTrq+ypJJX1eRwnfFSNSaU/dut5oJVbsCaCBasmLip5PtktjuyOjNTT2ob8Wk4LeawAahjhLeDKlgQY0VkflmMUIkA4oNwCz1hY9SkaUA2BWJftIDVPVFbYuRsIi07E9KtZ92dyFWw3NXJEpoMTA0qzgxRyYzj6l0joU+CtUaFtQGoepQBQilPvR4L6PT8MrsT8YSuyKxupw7IvHVOWp4JzBuV6iSIf1GWUo/BR/ON+W/6yhPiJCqbiXf+8FnW89fHtBY++wAUNeO0etnBHdF8rxAGXzaN3ro6BFxgOtAVQre9QR10/B0JrXk1Jv2BEUQ+vy2PRLT8dSas1oNXwaga3iC6mVWA6BFHagGoCREws0woKWuSFYQbBa01JZTq+FNf/gJBT7xdKcv/LArlmpjsjPsimoGlNTwqyrhKwCob0rv2zBRCh5ZUVfhjmvZang+XN0b3q0DbaRCYF94Vw2/Irg3vAs+cSWyY6K2nGRmz5tiQYs0PO1lP1Aeo7TwBQPqeoKulwWVuW1Ib9LwvAYbxtssKB5b0xN0VTW8W+1JILQOCDzt1D6xnzb77YG/DQBQXIE9QZUWaVhTGXYEsiUG1K6h1PZLVYyl2adz7yPU8AxA/S/KEgC1GctKAFoWIlGam9LNKrvtqeaNKf1oP1CRJ5LqQWkC146JTSkr/rGSUDkAlTu4DKfPgsa+DRMGo4KhFFEsFeD01fClvzLGfokwg+cJyvdipeFH+oHmIN0uUkaMxK05bRZUfR8pnKrHrQOAckvO4jZUjt8F0byGU1uqBU+rdkVaB2gqhW+joNOfIJxfCVqFzLtxNPGNxz4v5ksx34QdAaBuQlCv+ZRWHajfnhOvzemK5KTg+crtOlD2Ba1mQRF41jUA5bN3LyYCpfBVaXiqAx3dFclPxa/VFUmxoBvpC69U8PPCb8upvpQ9P1C7DhR0Gh7HMQuKrChuihlFAKq3qvR6ZRqe23JWKOJLaXjlDQrgd0WqYkFLAFSJkSrKAIp6TvPEcioe96g6UDsNT23fLUsmnwHl43otp/zT9wOlg5yKx85IyH6qfZoBjeKGNEDUnI/iJa7nrPqjvBoDqqAiiod0e07/s1qIkfBAhQhJ3X+lV6XV+d2yY6orWyaXCXXOL4BaWVBkgBGuasBrgvWmmt1EFjSNajKxronsmCwG1EnDm7mqWnWqeMSuGTsBUFaG15xE9Fp2TFwrYLfnpK5QBPoM5kxgqAFdYUbv2DGZkSNT8frNXNsPlIFutTJfkZtaCc91oEWLd783/Ki+8Kul4ZUQiboimRR2okChMsIv7JjWUQfKFZ+OIGk0A6reXt8PtACg/GnA4thV2F0r7z6yL7xL71IdqK1Ysj94GwGgrzNbJhWGvyT3L3L5UhyPf+exz2tHuKsAdAJAvQpBvpJLKDESTsjNkfDFq0kauw4UD6Ma3qkDxTS81xnJsKAIQi1DepxglTpQPPzk4inBNaCYhO9PJd6zZHmBWgFYvx3TNHmBlsAn2TFxVyT+WQiRVknBq+8CqzYU2U8GoZyC565IONZvy6luQ9eB4q92LejIOtAK8MnhMCC0rWyYokFL5nWqBbU3G4RWteREFnQUA+rPhSwo7mPwWaThdVckBcA4LV/qiqTaJ9GUK7oWtAChfirerQOVy1pgNFINT+cbP05EkrzPsKBVHZHwPBYi2R09q1Tzti+oSXuvIQYpgkgsKL7k3vC2J6iJNXl0Gs9OOjJaDU9sJ2JO21jergOlGSxDevVSn8TCJ2uMWc+ch78lKEbCX7g3PJOjWhC1alcl9dCXOyKptYr+8HYK3lXdI3NWaHx0b/g0SmRisZNrgU+365IFotaoA+X3xhUjgUB2VqXHtRCJ2346n5tRdkyFGt5LQauT3TpQ3KPU8IppJVAiIyFELiX+5PVGsqAOuCP0Z9eCFgxoMRF6c8YF+FnTjomZTDsFz6p7Sw3vipAKI9JqOyoniCNebAScVU0RzvfdudYTdTNmHfETAmQSyx9/73MTxzc2+eWPDgD18mN45WfgVLz65ifwib3hbTU8CZFwO0A4lNPwyo/e9wRF8FnRG94TIlEK/iT4qXi/NadtyWQr4cH2BOX2nCPV8J4dkwVEMRVPwJNS8ZiGn29skZMWuEQWlO6/WgnPb0qOaffCj970hmcgiiC0ECKNUw3oOILQRTSbX9JrjFbDFx2RFBBlJ1BTC1pqzZmSH+goIZLCAKrmEzfdSrO2IsSwKX0WVHU9stLm6AnaTxqSUvFmhrwmhDKkHwFC3TS8BqEIQDE9rjBiuTe8Y0hvCZH6/f4qiviyIT2CUDcNT7WdKEZiX1A7Dc9qeGrR2dDtQOleEXxGEcjKzkglNXw5pWt7gg70eGRAVZo8qsmaZZtUAIlSGh6vxK8FtVU9dK0ypvXZjonT8PZlFm09R7Csap7CS3QIgCATWcciFU9g0Rcj2W6Yo8VIZtSo3vD8GeM0fBwLwYb0o9py8jkGiCbgCJEsEZOpvRyVhvfrQMten8RIJihmV56gcqjFQ4yURzGg1rd6VW94kuAT2CwIRdUvPpEIQm1FvGuXpN9/G+hzLSgzm1ZnJBztp+G5FlTNxGl4bdlEs4+qBbXqWe3uSxqA2jWguYglrquesQiEyEGuSw3vKLOsIK43ZR7Otx6oax+/COQKNMU3f/DgOPbRvupbAKhXPeSmKxKzoIdVS07cqC0nbg4Dqvf5daC42yjivRS8OoeU8LiN7A2vNEgkRMLNrgUtK+Gr23L6IdwB03AOAHbsADizfEEoHybUIW1HL9BLgu2Y7N7wVbWgpiPSJQVES3WgCErQE9TZqBbU7gvPNaGdJqbhjR1TVO/I1XrDF6l6hwU14BOXbQ0JaBQdkbDuk53otRI+SlpyVVN6ff2+GKkKgOJQ7orEVkyqBlRtLYVXfQaUj9p1oFgDKoYNSYp4l/2sZ31hEvAkQsLNVsIXc1a05rRT8GpuTJUnzIK6daC2UEiBPq0VwvnXYkDVmHi97Cem9usK0CL4xLaczIK6qW6c1WJA8aVGjdV1muX1qSuS0b3j6apVZ5WIyWrBqe7HMq+vui4DPg0LiucVHYGcmtYKj1G/N7zG0r7nJs5pt+ZUrzF5gw5Juid8mqaQlHqe+7WghlF1cJN3nfQ8aTFSkR7XQKuwZCr/o8JvzYnXXPiV6ofINbonGFb8A0MtobsOaXU+Le/WgNL9A3UMskCUzX7yZ6K6BCQG1Wqz2GhNBoGGINXjtFhJDdLrrac3vF0Lyjwr0bVUTsDTFUxokYrXlk+uV7653PDbT1wEYgkXGuOXvvnNP7zJ1sJe1TgEgLp54cYkPM3OLKhei0VJB5QfqO4Or12ZTGckPEJMKIFQC4DOaTGS7oiEY1wAelIp4rE3PB7jFHxjcrc8OX9a3FTcM9aCohjJ9QOtLeyUw95ZsbYanlhQ3OzWnBqPqtacRQq+zwIlHDxlKeF5BmJCR4FQTrerMVqMxMQo7nNacy4qAtRTw1e05qzsDT+CBe20YUmjUFsRj2v7nqB8R4VPp0rBl1tzEgDljVLn3BmJ9up9qj+8FjtRx021oZ2SyrVrMZI5xwxyWVCzGv7GfqBqXe0JioBSAVKthsdfqQ6UWVTLcHwdveF5RVbBq3W9GlBbOETsp+sSSgp1U+PJc1YBAWZBVamABl/Mgpq7J0pSsZi6u5ExjK9gO1UK2mJFdScl7oiE8/qtOQs1vFqUvEdFVJOyj6l/vb5Ty6rnLwCk3daTHTsJiNqK+NViYdsyVQHQSjumOFMsqLonBUYTSDgtrRer7IpUAqq+Mb2FfJi1ZD9QxdK5VlH2k2oDQ3X/RTp+tGpcATW2g1J+o9XgtlQWqf1A1f0zcWul4NXnTtXQarETX6h//zbAtFhQHF4Y1rMfqNrJnqCOEow/6M7f6aIrkhVSBup4At8TglDG0quyn6vVda6meOd7D+eX0+zrYYKv4/hFmTj+qzd3Hj90SOTuX42r+yoA1NcQbzKlJ+DJG6fhuTMS7vdZUGJAcTMpeD6/MKWHe6kjEm4WAMWXVSwo7ueOSOW+8FeoDhQX8VLwdN2uGl6Z0iMQRQCqwCam4U0Kvvg8qlQ9igCpNSdutieoDUCxEhQ3R4hU6QdKaXi/M9JaLKivhse1fEU8+YGqI3StXgoe92Evd0rDI+jU4ypESDi2Wg2v0/CrsKBFZyRlSu/7gZbT8AhAOb4IOlGI5CvnV1XD6zS6ur+SGp6snXh+BKBD1HSgfVKBJd0UfPFe22BhnWp4Old3fR+hhndhbZkFrfbrLPeG53E248meoHQdXi2o2lXtCVolRFJ1oIqVNQCrKGfUAJRjtZ4UvHp/4lQYU/pyHSiOQZiLQiSjhrcAnqXsdwGoJSTyQKRrf1SRhrdN5dUzxH3qTScoTvUXafgCrK5iWVQBNikNHUtHDe6xhnSFug7UA1WuKf0IaycW+ngpeIwtp+EJfupNMaYGRa5ZB6pPs/vCM5i1PUERePoWUtVlCHwh6/y5jnrEVWcK5296Pehmxz+uQVrL4u98+39vn17nU7OpwwJArQqvqgEVaMZE8VEMqOmKZNsykSeoBgJFLajpisTT2wAU943qDY/HuAYUfy9YUK8rkn3Zfire6Yqka0FH2zHhTNOQrVwQmIJ3uyJhLehW2KbrQAmA6pSmZUxP9aBr1IJye84RpvQMQJUnqKoB7XrG9KPqQLVtEt5GkX130/B+HWhVb3jflB6nqxIk2QC0AFwVtaCUEzEqd6crkgKXZfbUB6AFSCnS8EYWj2n4QdyQXAuKYxGADtK6xFS8LaAv94bHlLtWwqsTfTFShR2TFgYxE8UsqMJmVW05vc+VSsVbBZY0j99PiU7irkhSC5LUvlw4daDEYtXUPxELEFikq6v6nlNXpJIpvZpcG9WvZsk0AoA66zPLyjWgHIOaaUeJsGuo1Ou0Jld6Ogyfn4YvAVA8c5QlE5JxxIKaTLnvCzrakokuyFLMjzKltxG1BqJVAFTFB+tA/e5QPuPo1IJ6aXh1u25XJK571d/Pbi0od0Xi+CsjfLcUY1UxkpPmNql4wl+6Xae+XiJKdYlAYUrvlX1U1bn6veEdRT/1n7cZUBI8VXSF2ggoDAr40Uyn931V+fJ1Hr8YxHwr6z36jf9jGv8MXxfbTzhApf7wuKk6UN2W0wag1JbTbL4hPR5xOyNpNXzhCWo6IrEdE4uRMA2P/eGpBNRty8krjqoDrS3k0lbEIwAtd0WaVnWg585Rb3hmQXFuBqI2C6r+YHoAlFhQ3EYA0EmAvK/rQFXhp9sViVLzC64i3hIjrdUVCRnQqN+WSozk+IHSC1TC0/WhDdMydLQdU5kFLYMWBUCxKxJvI3rD02ELbKZ9LUJqKq40R7C5opPtOhW/dh0opeFHdUXCFRF8ohETg82CBcV9IwzpuZ7Uacup05L+Nw7XeDLhSXZI1JaTWdBRdaCFGKmO16lT8MMBQI1mG9WSk/1ATVtOHF0lRNIspU6nG7siNqQnsGnS1G5qnupAqQMSs59kx0TnOyl4rgOt6IpUWQfKAFLbMXFcDdis6oxU4bOJIN1UDlR2RfLrQBGYSQagCqNWm9K7ang9zk6layC6ZlekShbUgGP0A2Ww7Ny/d16VbVFhSK8CWN2W07cxUn6gbAGl7ZjWFCHZD77XnhMBJ59PwiDrfeKOSE7NKRvSc2FslR1TDMqQ3hdQWQ2ZcEqnDhQHK2V/dfMI/7NbaU0UwOr6GczXOdgsPS/+Du/+ExE/P76r9dhDh8jk43rZXu8AVQD35ayoA+U3wQahJg3PR6vrQFVJqO4Pz+WhvTPHhHJngn1wFI6pn06/+NupUxKa1e+epfpQ2oxICV+hUAnrRX3z+iqwSufPqP8fTpwVN+gZL47tVNB7W/eseAUAcP9g+aJZc4epHx0uz+r9yJVWbyhuIjA766T2aTSr7eeslp/UfD5r6+5O6tUWiBtb1HVlVk1qUXdaZPwnAeZNCQB7lmpvfDXTWEkchXuNSp/vwraNKtT86qCl6Lc8TMt3b2pXUdUf9Tv0T5px22bKjOEyA/OTZvSN+OMazUP7ifFVs1hTUcECQLcL0EoZiFe8P0XZrM0cU8FsXtEGtTyDpeqCZWXkjzaV3IWKx5tSBwAUfqn5i/IHPUrbE0QDtLm0BWN6DSzYHbW1cT66zyjBvIW5Lt7vnKrsEPzJeIe/kL/fvWczS1vdE98f7aeF8IzVLn+VO6P3ojRv+QxqrgCwMqD40qK69deoBfA4Dy5uy9pnn1fcgHUnqr0Yx1L/UsyJ70Vbqvi32xAN7MIm94JwDI5dKw4mpjyy9CY6kSaRIcXFfV/Wt1KkP2v5cElUXr9dds5qR2vqOOnILCVHj576XIze+OOLn13c8HWvNqY/610R1yrix4Px/mqrzx/XxvX61SRXXNfHF1ga6l5rXJ/Q51f7rHcbk/r4JQDSptJPvcV1+v5WIoKKLWlM6eP4d6K8Ja2tdBz9Ayu2WnO7Pr9aNF5vT6vjrwCmBvVm/Vpr0d89dztTvKx3ZiqOm2w2/t1Vg7FurtjMi9b4rc75Y/dBeuTXVKlv2DYhAq93gLoJIQtThgiECIQIhAiECIQIhAiECGxmBAJA3czohrlDBEIEQgRCBEIEQgRCBEIENhyB/x9BDmdsxc+OggAAAABJRU5ErkJggg=="},14760:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},31537:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},46058:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},71190:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},51889:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},95754:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},9490:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},71463:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},73099:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},39633:function(Cn){"use strict";Cn.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAAXNSR0IArs4c6QAAA/VJREFUSEuVVl1sFGUUPeeb/tiUVqKiojXWqEklmiaCCjbGPgCmMQa1mIppYlCCMVIfTPx7MOATUR8MtMbYB20MqaBWaRSxCrbGoNRQhUIENQqNoYiBBFok7e7Od8zM7razM7POdl6++bnfPfeee++Zjwhcwxe0C8S1FHaT+PCOav4c/F7q/fC/WkKiDRYtIP66s5ot+b0MOvlpUgumLFZYYBWFB0AcJrH57lruLAVs3zmtBvAyhAYQ/QL6yw323FXLsxHAobMaA+AFcAzAfhA/WBfLjMEzVjhWXoG199TytzjgwQk1II0eAjcS6CJxwAJNsFgK+OBu8+W8ztvrZzj4j+bBoM51UQdikRWaCSwXMAGhD8BNApodB08uX8DtQdA9p9VuhW7PDYjjAlopVEH42hgMWuFXlmG8zMGp5vk4z89PagTW3u47MbQUxgH8LugQYS4T1EiwHsAZQfUE191fxx7PfNdJrZP0DsATJK4A8CeEURLnBTRCupnk1VbWT4zkQX46ZichzPMBJe9tds3nL6ZITAuq8QghkSG5zBAm4+p7AI5nT3ASBlWyKsvyFuPOmAv86A97QtL1cbXxYL29OfiZe4JHSVBSQynNNGNDjHHbUXcEVJbS8BVBzGXvsRAIJt/qgp8pvDVAUb5VvIBH2HMkMyBgZdZB1thbfUoiDuaUT8QfoK/YfSjTC2FNvKvipM4NOpcv8QHfGsl0QtiQK3PRqsVlnK/vrHoUvgkzRJoubhlOb7LCxlIoDQOE80/K2tC8ytf3uR2Q3Zpk7AdU2DORKUryQaMObv4us8a66k0yjqM8qcLh745jHuPGvemVBAaygypPDfw17orWLCHMECUOcB9fGUgtdoUDpXRpPhhvzQZYKExJg+yQS/jSbtW7bvp4KV2a1Zx47SmFEseU38AX+lWTUmoifkOoSyJKVJhiUjjzL62o8bnZ0JfyxLlirhQlURwsIcFUV2tFpQ+4fsf0uISF0bYPN9FcJ3HWnsSp7rbKa3zAtdumDwu6NULrHP1HM54NmOCR99orb/MB29+fGpJwb3gswmIe+D/lurSQgf8DBPFt7+NV3kkCaHt3uk/Sw9GeSJjL3MzOjknxAEh+suOJylYf8MHuqa2w6khUmxDFkd9ZWDiC9mTnzvWXPOsDPvS2rkxr+hFRCyleJWgRxEZA1QVBRNQ69CLXdaQ5J2iU5C8g/4Z0mk7lx589xTMF59Kg802S2b8lvVjGbbEWjwK6JVyjoD3BUUHbHTpfftFRfpBkrD4WBQzTu+LNi00Zi+cBrJqRWkPBqs+Ysje+ea7ix8SSzBw2SrHM2TS9dnEpiE7vsVx6eujF6iI6HO/0P2hiD54CFSWHAAAAAElFTkSuQmCC"},31434:function(Cn){"use strict";Cn.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAAXNSR0IArs4c6QAABIxJREFUSEulVltsVFUU3etMOzOkEWNUglUIRMRYPvCBGqliQlKNqJj6KtrGSNWWp7ZGQVFiP0ShRIsKhAJaFKvQmNpSa6pIkNhGMYKgYuBDREHhQ9TgRJ0zvWeZc+/c8c7caZno/ZmbO3uvtffaj3Mg/+P5PMETFDmlRI4JZAeKZNuUGL4eDhKF8g38wVERR8Y4kNHlZ6LX+vX/xoRASoTMwAD4lEoWXzsSn+TDHpZw10mOEZFax0ilCCe7AICefg5i9nXnL0yQLEEeFAg2R8+W+qnAX0HivISfneTIxKAsMZRHRBj347fGFOgbR3uEH55gQoQlmfzsi2eUjg174hG5ddq5OO6Thgh7j3GigD0kJ/7rnTaz0kHpWy7wCHt/YoLGlEg6RZ/LB6VQFNTeUZDrppTiT1egYLo9R3mVY6SPxpzlhZiONmPlvujKccol7DpiEpRADXPs3fi8bx2V4yNVWYTdP7JUp/gFyfP8IHIUSkcHffcEj7DjO5MQsqSQxotAVdxxIT5yQyaJtw45AxS5Jss5xAgBRVdfEnEJ2w/aDFkSlBACsVKmq5iRCMC+6ovVZa7t698OVhkjW3xj++sGYlskC8BKBH3/JI9w0zeOSzhUhrl4qkhdCZJq435ziMIJYcewqIDohyYXuYQb9jvuWBQiqTdRXIY1X3KqOM6A55Svav43L2MFpedd4WW4Zs+gN4cZxuyuyVUIgn6s2p1aTspir4M8/YeS1IUDdOPVXoYtuwcTYGAOT5OqgvoeK/tT/RQpL0QW2+J28BeVe4Qr+we3A4wHNtuwMIQk8ewufRjE+EIIXcmh9FPXe4T/5UHTjpTddfH0eNgutGOSF8utFZB6ZnpRHICx4/TcxzLJUdkLZKhAIkaIJX2pX0XobZbQk91EfjAKeKPohuLZTYBZul03OI60FOavfsfj7+sDYqSskC4NdjGAthUzih8AwEW9+mFSXgqRhpYrD6KxO/keKTfn19B2ib8QwxYQ2fDizOJ6S9qwTS+k4cuBwyK8ikW6MO8dvQDgK14NvWU7dNfllXjd2jvjc63//E49X8jVvr+PlTkvFepR18GxNPoHrx+yE7LNk91E4QMoPb2r18+KL7QYdR16Lsk1QiJ43ECQio4oHuc23uz2ZBfJ205fg+wDNtterdpUE22032rf1nNIWUtj4AcMkda2mvgcl7D6zWSZGPmKxkSCGeVuntyi5CoAFXmh/b7oYxazZrOuM8ass2lSJBGLxsra7sHRzBqsaks+T8MnglGHJc3OKRN9ukiuvVIrOmpjLk7Va/pBGtOqFO7dUhvb6pbNh2gi1b7WZI8IZwy5QXJKGNq96ZqLcNm79SOetji3t+rLO+uje33MrCvGzFd5hkkmt5K8qYA9ED5d/K5TqvP8SGzW+nqkcnFCl6i7Ohg5dTzZTLKBQhV0yJUwT1AOlCzvWxBfamczX9B5r4nWsKJFX+oYp9kIKzJXiNw5DUoM6YFEntz5aOzAkCXJvbXlM5zW/PdFNKaSwgqBGitkKZUb/c+gOQJEPmCxdPc3xg8PR+T/9w98KDoszqwf2gAAAABJRU5ErkJggg=="},16065:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},69035:function(Cn){"use strict";Cn.exports="data:image/png;base64,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"},57629:function(Cn,Ei,je){"use strict";je.d(Ei,{Z:function(){return yt}});var Me=je(2386);function yt(Jt,Qt){Jt.prototype=Object.create(Qt.prototype),Jt.prototype.constructor=Jt,(0,Me.Z)(Jt,Qt)}}}]);
|
|
}()); |