@netless/appliance-plugin 1.0.0-beta.0 → 1.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,566 @@
1
+ var ag=Object.defineProperty;var lg=(ee,Xt,le)=>Xt in ee?ag(ee,Xt,{enumerable:!0,configurable:!0,writable:!0,value:le}):ee[Xt]=le;var st=(ee,Xt,le)=>(lg(ee,typeof Xt!="symbol"?Xt+"":Xt,le),le);(function(){"use strict";var ee=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Xt(d){return d&&d.__esModule&&Object.prototype.hasOwnProperty.call(d,"default")?d.default:d}function le(){this.__data__=[],this.size=0}var ei=le;function ri(d,r){return d===r||d!==d&&r!==r}var Qe=ri,ni=Qe;function ii(d,r){for(var t=d.length;t--;)if(ni(d[t][0],r))return t;return-1}var be=ii,si=be,oi=Array.prototype,ai=oi.splice;function li(d){var r=this.__data__,t=si(r,d);if(t<0)return!1;var e=r.length-1;return t==e?r.pop():ai.call(r,t,1),--this.size,!0}var ci=li,fi=be;function ui(d){var r=this.__data__,t=fi(r,d);return t<0?void 0:r[t][1]}var hi=ui,di=be;function gi(d){return di(this.__data__,d)>-1}var pi=gi,mi=be;function vi(d,r){var t=this.__data__,e=mi(t,d);return e<0?(++this.size,t.push([d,r])):t[e][1]=r,this}var yi=vi,Si=ei,xi=ci,Ti=hi,Mi=pi,Oi=yi;function pe(d){var r=-1,t=d==null?0:d.length;for(this.clear();++r<t;){var e=d[r];this.set(e[0],e[1])}}pe.prototype.clear=Si,pe.prototype.delete=xi,pe.prototype.get=Ti,pe.prototype.has=Mi,pe.prototype.set=Oi;var De=pe,Ei=De;function Pi(){this.__data__=new Ei,this.size=0}var Ai=Pi;function Ci(d){var r=this.__data__,t=r.delete(d);return this.size=r.size,t}var Ri=Ci;function Ii(d){return this.__data__.get(d)}var Li=Ii;function bi(d){return this.__data__.has(d)}var Di=bi,wi=typeof ee=="object"&&ee&&ee.Object===Object&&ee,xr=wi,Ni=xr,Bi=typeof self=="object"&&self&&self.Object===Object&&self,Wi=Ni||Bi||Function("return this")(),Qt=Wi,Fi=Qt,ji=Fi.Symbol,we=ji,Tr=we,Mr=Object.prototype,Ui=Mr.hasOwnProperty,$i=Mr.toString,Ae=Tr?Tr.toStringTag:void 0;function zi(d){var r=Ui.call(d,Ae),t=d[Ae];try{d[Ae]=void 0;var e=!0}catch{}var n=$i.call(d);return e&&(r?d[Ae]=t:delete d[Ae]),n}var Gi=zi,Hi=Object.prototype,Ki=Hi.toString;function Vi(d){return Ki.call(d)}var Yi=Vi,Or=we,Xi=Gi,Zi=Yi,Ji="[object Null]",Qi="[object Undefined]",Er=Or?Or.toStringTag:void 0;function ki(d){return d==null?d===void 0?Qi:Ji:Er&&Er in Object(d)?Xi(d):Zi(d)}var ce=ki;function qi(d){var r=typeof d;return d!=null&&(r=="object"||r=="function")}var se=qi,_i=ce,ts=se,es="[object AsyncFunction]",rs="[object Function]",ns="[object GeneratorFunction]",is="[object Proxy]";function ss(d){if(!ts(d))return!1;var r=_i(d);return r==rs||r==ns||r==es||r==is}var Pr=ss,os=Qt,as=os["__core-js_shared__"],ls=as,ke=ls,Ar=function(){var d=/[^.]+$/.exec(ke&&ke.keys&&ke.keys.IE_PROTO||"");return d?"Symbol(src)_1."+d:""}();function cs(d){return!!Ar&&Ar in d}var fs=cs,us=Function.prototype,hs=us.toString;function ds(d){if(d!=null){try{return hs.call(d)}catch{}try{return d+""}catch{}}return""}var Cr=ds,gs=Pr,ps=fs,ms=se,vs=Cr,ys=/[\\^$.*+?()[\]{}|]/g,Ss=/^\[object .+?Constructor\]$/,xs=Function.prototype,Ts=Object.prototype,Ms=xs.toString,Os=Ts.hasOwnProperty,Es=RegExp("^"+Ms.call(Os).replace(ys,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ps(d){if(!ms(d)||ps(d))return!1;var r=gs(d)?Es:Ss;return r.test(vs(d))}var As=Ps;function Cs(d,r){return d==null?void 0:d[r]}var Rs=Cs,Is=As,Ls=Rs;function bs(d,r){var t=Ls(d,r);return Is(t)?t:void 0}var fe=bs,Ds=fe,ws=Qt,Ns=Ds(ws,"Map"),qe=Ns,Bs=fe,Ws=Bs(Object,"create"),Ne=Ws,Rr=Ne;function Fs(){this.__data__=Rr?Rr(null):{},this.size=0}var js=Fs;function Us(d){var r=this.has(d)&&delete this.__data__[d];return this.size-=r?1:0,r}var $s=Us,zs=Ne,Gs="__lodash_hash_undefined__",Hs=Object.prototype,Ks=Hs.hasOwnProperty;function Vs(d){var r=this.__data__;if(zs){var t=r[d];return t===Gs?void 0:t}return Ks.call(r,d)?r[d]:void 0}var Ys=Vs,Xs=Ne,Zs=Object.prototype,Js=Zs.hasOwnProperty;function Qs(d){var r=this.__data__;return Xs?r[d]!==void 0:Js.call(r,d)}var ks=Qs,qs=Ne,_s="__lodash_hash_undefined__";function to(d,r){var t=this.__data__;return this.size+=this.has(d)?0:1,t[d]=qs&&r===void 0?_s:r,this}var eo=to,ro=js,no=$s,io=Ys,so=ks,oo=eo;function me(d){var r=-1,t=d==null?0:d.length;for(this.clear();++r<t;){var e=d[r];this.set(e[0],e[1])}}me.prototype.clear=ro,me.prototype.delete=no,me.prototype.get=io,me.prototype.has=so,me.prototype.set=oo;var ao=me,Ir=ao,lo=De,co=qe;function fo(){this.size=0,this.__data__={hash:new Ir,map:new(co||lo),string:new Ir}}var uo=fo;function ho(d){var r=typeof d;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?d!=="__proto__":d===null}var go=ho,po=go;function mo(d,r){var t=d.__data__;return po(r)?t[typeof r=="string"?"string":"hash"]:t.map}var Be=mo,vo=Be;function yo(d){var r=vo(this,d).delete(d);return this.size-=r?1:0,r}var So=yo,xo=Be;function To(d){return xo(this,d).get(d)}var Mo=To,Oo=Be;function Eo(d){return Oo(this,d).has(d)}var Po=Eo,Ao=Be;function Co(d,r){var t=Ao(this,d),e=t.size;return t.set(d,r),this.size+=t.size==e?0:1,this}var Ro=Co,Io=uo,Lo=So,bo=Mo,Do=Po,wo=Ro;function ve(d){var r=-1,t=d==null?0:d.length;for(this.clear();++r<t;){var e=d[r];this.set(e[0],e[1])}}ve.prototype.clear=Io,ve.prototype.delete=Lo,ve.prototype.get=bo,ve.prototype.has=Do,ve.prototype.set=wo;var Lr=ve,No=De,Bo=qe,Wo=Lr,Fo=200;function jo(d,r){var t=this.__data__;if(t instanceof No){var e=t.__data__;if(!Bo||e.length<Fo-1)return e.push([d,r]),this.size=++t.size,this;t=this.__data__=new Wo(e)}return t.set(d,r),this.size=t.size,this}var Uo=jo,$o=De,zo=Ai,Go=Ri,Ho=Li,Ko=Di,Vo=Uo;function ye(d){var r=this.__data__=new $o(d);this.size=r.size}ye.prototype.clear=zo,ye.prototype.delete=Go,ye.prototype.get=Ho,ye.prototype.has=Ko,ye.prototype.set=Vo;var br=ye;function Yo(d,r){for(var t=-1,e=d==null?0:d.length;++t<e&&r(d[t],t,d)!==!1;);return d}var Xo=Yo,Zo=fe,Jo=function(){try{var d=Zo(Object,"defineProperty");return d({},"",{}),d}catch{}}(),Qo=Jo,Dr=Qo;function ko(d,r,t){r=="__proto__"&&Dr?Dr(d,r,{configurable:!0,enumerable:!0,value:t,writable:!0}):d[r]=t}var wr=ko,qo=wr,_o=Qe,ta=Object.prototype,ea=ta.hasOwnProperty;function ra(d,r,t){var e=d[r];(!(ea.call(d,r)&&_o(e,t))||t===void 0&&!(r in d))&&qo(d,r,t)}var Nr=ra,na=Nr,ia=wr;function sa(d,r,t,e){var n=!t;t||(t={});for(var a=-1,s=r.length;++a<s;){var i=r[a],o=e?e(t[i],d[i],i,t,d):void 0;o===void 0&&(o=d[i]),n?ia(t,i,o):na(t,i,o)}return t}var We=sa;function oa(d,r){for(var t=-1,e=Array(d);++t<d;)e[t]=r(t);return e}var aa=oa;function la(d){return d!=null&&typeof d=="object"}var ie=la,ca=ce,fa=ie,ua="[object Arguments]";function ha(d){return fa(d)&&ca(d)==ua}var da=ha,Br=da,ga=ie,Wr=Object.prototype,pa=Wr.hasOwnProperty,ma=Wr.propertyIsEnumerable,va=Br(function(){return arguments}())?Br:function(d){return ga(d)&&pa.call(d,"callee")&&!ma.call(d,"callee")},ya=va,Sa=Array.isArray,Fe=Sa,je={exports:{}};function xa(){return!1}var Ta=xa;je.exports,function(d,r){var t=Qt,e=Ta,n=r&&!r.nodeType&&r,a=n&&!0&&d&&!d.nodeType&&d,s=a&&a.exports===n,i=s?t.Buffer:void 0,o=i?i.isBuffer:void 0,c=o||e;d.exports=c}(je,je.exports);var _e=je.exports,Ma=9007199254740991,Oa=/^(?:0|[1-9]\d*)$/;function Ea(d,r){var t=typeof d;return r=r??Ma,!!r&&(t=="number"||t!="symbol"&&Oa.test(d))&&d>-1&&d%1==0&&d<r}var Pa=Ea,Aa=9007199254740991;function Ca(d){return typeof d=="number"&&d>-1&&d%1==0&&d<=Aa}var Fr=Ca,Ra=ce,Ia=Fr,La=ie,ba="[object Arguments]",Da="[object Array]",wa="[object Boolean]",Na="[object Date]",Ba="[object Error]",Wa="[object Function]",Fa="[object Map]",ja="[object Number]",Ua="[object Object]",$a="[object RegExp]",za="[object Set]",Ga="[object String]",Ha="[object WeakMap]",Ka="[object ArrayBuffer]",Va="[object DataView]",Ya="[object Float32Array]",Xa="[object Float64Array]",Za="[object Int8Array]",Ja="[object Int16Array]",Qa="[object Int32Array]",ka="[object Uint8Array]",qa="[object Uint8ClampedArray]",_a="[object Uint16Array]",tl="[object Uint32Array]",Wt={};Wt[Ya]=Wt[Xa]=Wt[Za]=Wt[Ja]=Wt[Qa]=Wt[ka]=Wt[qa]=Wt[_a]=Wt[tl]=!0,Wt[ba]=Wt[Da]=Wt[Ka]=Wt[wa]=Wt[Va]=Wt[Na]=Wt[Ba]=Wt[Wa]=Wt[Fa]=Wt[ja]=Wt[Ua]=Wt[$a]=Wt[za]=Wt[Ga]=Wt[Ha]=!1;function el(d){return La(d)&&Ia(d.length)&&!!Wt[Ra(d)]}var rl=el;function nl(d){return function(r){return d(r)}}var tr=nl,Ue={exports:{}};Ue.exports,function(d,r){var t=xr,e=r&&!r.nodeType&&r,n=e&&!0&&d&&!d.nodeType&&d,a=n&&n.exports===e,s=a&&t.process,i=function(){try{var o=n&&n.require&&n.require("util").types;return o||s&&s.binding&&s.binding("util")}catch{}}();d.exports=i}(Ue,Ue.exports);var er=Ue.exports,il=rl,sl=tr,jr=er,Ur=jr&&jr.isTypedArray,ol=Ur?sl(Ur):il,$r=ol,al=aa,ll=ya,cl=Fe,fl=_e,ul=Pa,hl=$r,dl=Object.prototype,gl=dl.hasOwnProperty;function pl(d,r){var t=cl(d),e=!t&&ll(d),n=!t&&!e&&fl(d),a=!t&&!e&&!n&&hl(d),s=t||e||n||a,i=s?al(d.length,String):[],o=i.length;for(var c in d)(r||gl.call(d,c))&&!(s&&(c=="length"||n&&(c=="offset"||c=="parent")||a&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||ul(c,o)))&&i.push(c);return i}var zr=pl,ml=Object.prototype;function vl(d){var r=d&&d.constructor,t=typeof r=="function"&&r.prototype||ml;return d===t}var rr=vl;function yl(d,r){return function(t){return d(r(t))}}var Gr=yl,Sl=Gr,xl=Sl(Object.keys,Object),Tl=xl,Ml=rr,Ol=Tl,El=Object.prototype,Pl=El.hasOwnProperty;function Al(d){if(!Ml(d))return Ol(d);var r=[];for(var t in Object(d))Pl.call(d,t)&&t!="constructor"&&r.push(t);return r}var Cl=Al,Rl=Pr,Il=Fr;function Ll(d){return d!=null&&Il(d.length)&&!Rl(d)}var Hr=Ll,bl=zr,Dl=Cl,wl=Hr;function Nl(d){return wl(d)?bl(d):Dl(d)}var nr=Nl,Bl=We,Wl=nr;function Fl(d,r){return d&&Bl(r,Wl(r),d)}var jl=Fl;function Ul(d){var r=[];if(d!=null)for(var t in Object(d))r.push(t);return r}var $l=Ul,zl=se,Gl=rr,Hl=$l,Kl=Object.prototype,Vl=Kl.hasOwnProperty;function Yl(d){if(!zl(d))return Hl(d);var r=Gl(d),t=[];for(var e in d)e=="constructor"&&(r||!Vl.call(d,e))||t.push(e);return t}var Xl=Yl,Zl=zr,Jl=Xl,Ql=Hr;function kl(d){return Ql(d)?Zl(d,!0):Jl(d)}var ir=kl,ql=We,_l=ir;function tc(d,r){return d&&ql(r,_l(r),d)}var ec=tc,$e={exports:{}};$e.exports,function(d,r){var t=Qt,e=r&&!r.nodeType&&r,n=e&&!0&&d&&!d.nodeType&&d,a=n&&n.exports===e,s=a?t.Buffer:void 0,i=s?s.allocUnsafe:void 0;function o(c,m){if(m)return c.slice();var u=c.length,p=i?i(u):new c.constructor(u);return c.copy(p),p}d.exports=o}($e,$e.exports);var rc=$e.exports;function nc(d,r){var t=-1,e=d.length;for(r||(r=Array(e));++t<e;)r[t]=d[t];return r}var ic=nc;function sc(d,r){for(var t=-1,e=d==null?0:d.length,n=0,a=[];++t<e;){var s=d[t];r(s,t,d)&&(a[n++]=s)}return a}var oc=sc;function ac(){return[]}var Kr=ac,lc=oc,cc=Kr,fc=Object.prototype,uc=fc.propertyIsEnumerable,Vr=Object.getOwnPropertySymbols,hc=Vr?function(d){return d==null?[]:(d=Object(d),lc(Vr(d),function(r){return uc.call(d,r)}))}:cc,sr=hc,dc=We,gc=sr;function pc(d,r){return dc(d,gc(d),r)}var mc=pc;function vc(d,r){for(var t=-1,e=r.length,n=d.length;++t<e;)d[n+t]=r[t];return d}var Yr=vc,yc=Gr,Sc=yc(Object.getPrototypeOf,Object),Xr=Sc,xc=Yr,Tc=Xr,Mc=sr,Oc=Kr,Ec=Object.getOwnPropertySymbols,Pc=Ec?function(d){for(var r=[];d;)xc(r,Mc(d)),d=Tc(d);return r}:Oc,Zr=Pc,Ac=We,Cc=Zr;function Rc(d,r){return Ac(d,Cc(d),r)}var Ic=Rc,Lc=Yr,bc=Fe;function Dc(d,r,t){var e=r(d);return bc(d)?e:Lc(e,t(d))}var Jr=Dc,wc=Jr,Nc=sr,Bc=nr;function Wc(d){return wc(d,Bc,Nc)}var Qr=Wc,Fc=Jr,jc=Zr,Uc=ir;function $c(d){return Fc(d,Uc,jc)}var zc=$c,Gc=fe,Hc=Qt,Kc=Gc(Hc,"DataView"),Vc=Kc,Yc=fe,Xc=Qt,Zc=Yc(Xc,"Promise"),Jc=Zc,Qc=fe,kc=Qt,qc=Qc(kc,"Set"),_c=qc,tf=fe,ef=Qt,rf=tf(ef,"WeakMap"),nf=rf,or=Vc,ar=qe,lr=Jc,cr=_c,fr=nf,kr=ce,Se=Cr,qr="[object Map]",sf="[object Object]",_r="[object Promise]",tn="[object Set]",en="[object WeakMap]",rn="[object DataView]",of=Se(or),af=Se(ar),lf=Se(lr),cf=Se(cr),ff=Se(fr),ue=kr;(or&&ue(new or(new ArrayBuffer(1)))!=rn||ar&&ue(new ar)!=qr||lr&&ue(lr.resolve())!=_r||cr&&ue(new cr)!=tn||fr&&ue(new fr)!=en)&&(ue=function(d){var r=kr(d),t=r==sf?d.constructor:void 0,e=t?Se(t):"";if(e)switch(e){case of:return rn;case af:return qr;case lf:return _r;case cf:return tn;case ff:return en}return r});var ze=ue,uf=Object.prototype,hf=uf.hasOwnProperty;function df(d){var r=d.length,t=new d.constructor(r);return r&&typeof d[0]=="string"&&hf.call(d,"index")&&(t.index=d.index,t.input=d.input),t}var gf=df,pf=Qt,mf=pf.Uint8Array,nn=mf,sn=nn;function vf(d){var r=new d.constructor(d.byteLength);return new sn(r).set(new sn(d)),r}var ur=vf,yf=ur;function Sf(d,r){var t=r?yf(d.buffer):d.buffer;return new d.constructor(t,d.byteOffset,d.byteLength)}var xf=Sf,Tf=/\w*$/;function Mf(d){var r=new d.constructor(d.source,Tf.exec(d));return r.lastIndex=d.lastIndex,r}var Of=Mf,on=we,an=on?on.prototype:void 0,ln=an?an.valueOf:void 0;function Ef(d){return ln?Object(ln.call(d)):{}}var Pf=Ef,Af=ur;function Cf(d,r){var t=r?Af(d.buffer):d.buffer;return new d.constructor(t,d.byteOffset,d.length)}var Rf=Cf,If=ur,Lf=xf,bf=Of,Df=Pf,wf=Rf,Nf="[object Boolean]",Bf="[object Date]",Wf="[object Map]",Ff="[object Number]",jf="[object RegExp]",Uf="[object Set]",$f="[object String]",zf="[object Symbol]",Gf="[object ArrayBuffer]",Hf="[object DataView]",Kf="[object Float32Array]",Vf="[object Float64Array]",Yf="[object Int8Array]",Xf="[object Int16Array]",Zf="[object Int32Array]",Jf="[object Uint8Array]",Qf="[object Uint8ClampedArray]",kf="[object Uint16Array]",qf="[object Uint32Array]";function _f(d,r,t){var e=d.constructor;switch(r){case Gf:return If(d);case Nf:case Bf:return new e(+d);case Hf:return Lf(d,t);case Kf:case Vf:case Yf:case Xf:case Zf:case Jf:case Qf:case kf:case qf:return wf(d,t);case Wf:return new e;case Ff:case $f:return new e(d);case jf:return bf(d);case Uf:return new e;case zf:return Df(d)}}var tu=_f,eu=se,cn=Object.create,ru=function(){function d(){}return function(r){if(!eu(r))return{};if(cn)return cn(r);d.prototype=r;var t=new d;return d.prototype=void 0,t}}(),nu=ru,iu=nu,su=Xr,ou=rr;function au(d){return typeof d.constructor=="function"&&!ou(d)?iu(su(d)):{}}var lu=au,cu=ze,fu=ie,uu="[object Map]";function hu(d){return fu(d)&&cu(d)==uu}var du=hu,gu=du,pu=tr,fn=er,un=fn&&fn.isMap,mu=un?pu(un):gu,vu=mu,yu=ze,Su=ie,xu="[object Set]";function Tu(d){return Su(d)&&yu(d)==xu}var Mu=Tu,Ou=Mu,Eu=tr,hn=er,dn=hn&&hn.isSet,Pu=dn?Eu(dn):Ou,Au=Pu,Cu=br,Ru=Xo,Iu=Nr,Lu=jl,bu=ec,Du=rc,wu=ic,Nu=mc,Bu=Ic,Wu=Qr,Fu=zc,ju=ze,Uu=gf,$u=tu,zu=lu,Gu=Fe,Hu=_e,Ku=vu,Vu=se,Yu=Au,Xu=nr,Zu=ir,Ju=1,Qu=2,ku=4,gn="[object Arguments]",qu="[object Array]",_u="[object Boolean]",th="[object Date]",eh="[object Error]",pn="[object Function]",rh="[object GeneratorFunction]",nh="[object Map]",ih="[object Number]",mn="[object Object]",sh="[object RegExp]",oh="[object Set]",ah="[object String]",lh="[object Symbol]",ch="[object WeakMap]",fh="[object ArrayBuffer]",uh="[object DataView]",hh="[object Float32Array]",dh="[object Float64Array]",gh="[object Int8Array]",ph="[object Int16Array]",mh="[object Int32Array]",vh="[object Uint8Array]",yh="[object Uint8ClampedArray]",Sh="[object Uint16Array]",xh="[object Uint32Array]",Nt={};Nt[gn]=Nt[qu]=Nt[fh]=Nt[uh]=Nt[_u]=Nt[th]=Nt[hh]=Nt[dh]=Nt[gh]=Nt[ph]=Nt[mh]=Nt[nh]=Nt[ih]=Nt[mn]=Nt[sh]=Nt[oh]=Nt[ah]=Nt[lh]=Nt[vh]=Nt[yh]=Nt[Sh]=Nt[xh]=!0,Nt[eh]=Nt[pn]=Nt[ch]=!1;function Ge(d,r,t,e,n,a){var s,i=r&Ju,o=r&Qu,c=r&ku;if(t&&(s=n?t(d,e,n,a):t(d)),s!==void 0)return s;if(!Vu(d))return d;var m=Gu(d);if(m){if(s=Uu(d),!i)return wu(d,s)}else{var u=ju(d),p=u==pn||u==rh;if(Hu(d))return Du(d,i);if(u==mn||u==gn||p&&!n){if(s=o||p?{}:zu(d),!i)return o?Bu(d,bu(s,d)):Nu(d,Lu(s,d))}else{if(!Nt[u])return n?d:{};s=$u(d,u,i)}}a||(a=new Cu);var y=a.get(d);if(y)return y;a.set(d,s),Yu(d)?d.forEach(function(v){s.add(Ge(v,r,t,v,d,a))}):Ku(d)&&d.forEach(function(v,T){s.set(T,Ge(v,r,t,T,d,a))});var O=c?o?Fu:Wu:o?Zu:Xu,x=m?void 0:O(d);return Ru(x||d,function(v,T){x&&(T=v,v=d[T]),Iu(s,T,Ge(v,r,t,T,d,a))}),s}var Th=Ge,Mh=Th,Oh=1,Eh=4;function Ph(d){return Mh(d,Oh|Eh)}var Ah=Ph,Zt=Xt(Ah),Kt=(d=>(d.Normal="Normal",d.Stroke="Stroke",d.Dotted="Dotted",d.LongDotted="LongDotted",d))(Kt||{}),Lt=(d=>(d.None="None",d.ShowFloatBar="ShowFloatBar",d.ZIndexFloatBar="ZIndexFloatBar",d.DeleteNode="DeleteNode",d.CopyNode="CopyNode",d.ZIndexActive="ZIndexActive",d.ZIndexNode="ZIndexNode",d.RotateNode="RotateNode",d.SetColorNode="SetColorNode",d.TranslateNode="TranslateNode",d.ScaleNode="ScaleNode",d.OriginalEvent="OriginalEvent",d.CreateScene="CreateScene",d.ActiveCursor="ActiveCursor",d.MoveCursor="MoveCursor",d.CommandEditor="CommandEditor",d.SetEditorData="SetEditorData",d.SetFontStyle="SetFontStyle",d.SetPoint="SetPoint",d.SetLock="SetLock",d.SetShapeOpt="SetShapeOpt",d))(Lt||{}),gt=(d=>(d[d.Pencil=1]="Pencil",d[d.Eraser=2]="Eraser",d[d.Selector=3]="Selector",d[d.Clicker=4]="Clicker",d[d.Arrow=5]="Arrow",d[d.Hand=6]="Hand",d[d.LaserPen=7]="LaserPen",d[d.Text=8]="Text",d[d.Straight=9]="Straight",d[d.Rectangle=10]="Rectangle",d[d.Ellipse=11]="Ellipse",d[d.Star=12]="Star",d[d.Triangle=13]="Triangle",d[d.Rhombus=14]="Rhombus",d[d.Polygon=15]="Polygon",d[d.SpeechBalloon=16]="SpeechBalloon",d[d.Image=17]="Image",d))(gt||{}),Tt=(d=>(d[d.Local=1]="Local",d[d.Service=2]="Service",d[d.Worker=3]="Worker",d))(Tt||{}),It=(d=>(d[d.Pending=0]="Pending",d[d.Start=1]="Start",d[d.Doing=2]="Doing",d[d.Done=3]="Done",d[d.Freeze=4]="Freeze",d[d.Unwritable=5]="Unwritable",d))(It||{}),lt=(d=>(d[d.None=0]="None",d[d.Init=1]="Init",d[d.UpdateCamera=2]="UpdateCamera",d[d.UpdateTools=3]="UpdateTools",d[d.CreateWork=4]="CreateWork",d[d.DrawWork=5]="DrawWork",d[d.FullWork=6]="FullWork",d[d.UpdateNode=7]="UpdateNode",d[d.RemoveNode=8]="RemoveNode",d[d.Clear=9]="Clear",d[d.Select=10]="Select",d[d.Destroy=11]="Destroy",d[d.Snapshot=12]="Snapshot",d[d.BoundingBox=13]="BoundingBox",d[d.Cursor=14]="Cursor",d[d.TextUpdate=15]="TextUpdate",d[d.GetTextActive=16]="GetTextActive",d[d.TasksQueue=17]="TasksQueue",d[d.CursorHover=18]="CursorHover",d))(lt||{}),St=(d=>(d[d.Float=1]="Float",d[d.Bg=2]="Bg",d[d.Selector=3]="Selector",d[d.ServiceFloat=4]="ServiceFloat",d[d.None=5]="None",d))(St||{}),Ft=(d=>(d[d.none=1]="none",d[d.all=2]="all",d[d.both=3]="both",d[d.proportional=4]="proportional",d))(Ft||{});class Jt{constructor(){st(this,"localWork");st(this,"serviceWork");st(this,"scene")}registerForWorker(r,t,e){return this.localWork=r,this.serviceWork=t,this.scene=e,this}}const Ch={linear:d=>d,easeInQuad:d=>d*d,easeOutQuad:d=>d*(2-d),easeInOutQuad:d=>d<.5?2*d*d:-1+(4-2*d)*d,easeInCubic:d=>d*d*d,easeOutCubic:d=>--d*d*d+1,easeInOutCubic:d=>d<.5?4*d*d*d:(d-1)*(2*d-2)*(2*d-2)+1,easeInQuart:d=>d*d*d*d,easeOutQuart:d=>1- --d*d*d*d,easeInOutQuart:d=>d<.5?8*d*d*d*d:1-8*--d*d*d*d,easeInQuint:d=>d*d*d*d*d,easeOutQuint:d=>1+--d*d*d*d*d,easeInOutQuint:d=>d<.5?16*d*d*d*d*d:1+16*--d*d*d*d*d,easeInSine:d=>1-Math.cos(d*Math.PI/2),easeOutSine:d=>Math.sin(d*Math.PI/2),easeInOutSine:d=>-(Math.cos(Math.PI*d)-1)/2,easeInExpo:d=>d<=0?0:Math.pow(2,10*d-10),easeOutExpo:d=>d>=1?1:1-Math.pow(2,-10*d),easeInOutExpo:d=>d<=0?0:d>=1?1:d<.5?Math.pow(2,20*d-10)/2:(2-Math.pow(2,-20*d+10))/2};class et{constructor(r=0,t=0,e=1){this.x=r,this.y=t,this.z=e}get XY(){return[this.x,this.y]}setz(r){return this.z=r,this}setXY(r=this.x,t=this.y){return this.x=r,this.y=t,this}set(r=this.x,t=this.y,e=this.z){return this.x=r,this.y=t,this.z=e,this}setTo({x:r=0,y:t=0,z:e=1}){return this.x=r,this.y=t,this.z=e,this}rot(r){if(r===0)return this;const{x:t,y:e}=this,n=Math.sin(r),a=Math.cos(r);return this.x=t*a-e*n,this.y=t*n+e*a,this}rotWith(r,t){if(t===0)return this;const e=this.x-r.x,n=this.y-r.y,a=Math.sin(t),s=Math.cos(t);return this.x=r.x+(e*s-n*a),this.y=r.y+(e*a+n*s),this}clone(){const{x:r,y:t,z:e}=this;return new et(r,t,e)}sub(r){return this.x-=r.x,this.y-=r.y,this}subXY(r,t){return this.x-=r,this.y-=t,this}subScalar(r){return this.x-=r,this.y-=r,this}add(r){return this.x+=r.x,this.y+=r.y,this}addXY(r,t){return this.x+=r,this.y+=t,this}addScalar(r){return this.x+=r,this.y+=r,this}clamp(r,t){return this.x=Math.max(this.x,r),this.y=Math.max(this.y,r),t!==void 0&&(this.x=Math.min(this.x,t),this.y=Math.min(this.y,t)),this}div(r){return this.x/=r,this.y/=r,this}divV(r){return this.x/=r.x,this.y/=r.y,this}mul(r){return this.x*=r,this.y*=r,this}mulV(r){return this.x*=r.x,this.y*=r.y,this}abs(){return this.x=Math.abs(this.x),this.y=Math.abs(this.y),this}nudge(r,t){const e=et.Tan(r,this);return this.add(e.mul(t))}neg(){return this.x*=-1,this.y*=-1,this}cross(r){return this.x=this.y*r.z-this.z*r.y,this.y=this.z*r.x-this.x*r.z,this}dpr(r){return et.Dpr(this,r)}cpr(r){return et.Cpr(this,r)}len2(){return et.Len2(this)}len(){return et.Len(this)}pry(r){return et.Pry(this,r)}per(){const{x:r,y:t}=this;return this.x=t,this.y=-r,this}uni(){return et.Uni(this)}tan(r){return et.Tan(this,r)}dist(r){return et.Dist(this,r)}distanceToLineSegment(r,t){return et.DistanceToLineSegment(r,t,this)}slope(r){return et.Slope(this,r)}snapToGrid(r){return this.x=Math.round(this.x/r)*r,this.y=Math.round(this.y/r)*r,this}angle(r){return et.Angle(this,r)}toAngle(){return et.ToAngle(this)}lrp(r,t){return this.x=this.x+(r.x-this.x)*t,this.y=this.y+(r.y-this.y)*t,this}equals(r,t){return et.Equals(this,r,t)}equalsXY(r,t){return et.EqualsXY(this,r,t)}norm(){const r=this.len();return this.x=r===0?0:this.x/r,this.y=r===0?0:this.y/r,this}toFixed(){return et.ToFixed(this)}toString(){return et.ToString(et.ToFixed(this))}toJson(){return et.ToJson(this)}toArray(){return et.ToArray(this)}static Add(r,t){return new et(r.x+t.x,r.y+t.y)}static AddXY(r,t,e){return new et(r.x+t,r.y+e)}static Sub(r,t){return new et(r.x-t.x,r.y-t.y)}static SubXY(r,t,e){return new et(r.x-t,r.y-e)}static AddScalar(r,t){return new et(r.x+t,r.y+t)}static SubScalar(r,t){return new et(r.x-t,r.y-t)}static Div(r,t){return new et(r.x/t,r.y/t)}static Mul(r,t){return new et(r.x*t,r.y*t)}static DivV(r,t){return new et(r.x/t.x,r.y/t.y)}static MulV(r,t){return new et(r.x*t.x,r.y*t.y)}static Neg(r){return new et(-r.x,-r.y)}static Per(r){return new et(r.y,-r.x)}static Dist2(r,t){return et.Sub(r,t).len2()}static Abs(r){return new et(Math.abs(r.x),Math.abs(r.y))}static Dist(r,t){return Math.hypot(r.y-t.y,r.x-t.x)}static Dpr(r,t){return r.x*t.x+r.y*t.y}static Cross(r,t){return new et(r.y*t.z-r.z*t.y,r.z*t.x-r.x*t.z)}static Cpr(r,t){return r.x*t.y-t.x*r.y}static Len2(r){return r.x*r.x+r.y*r.y}static Len(r){return Math.hypot(r.x,r.y)}static Pry(r,t){return et.Dpr(r,t)/et.Len(t)}static Uni(r){return et.Div(r,et.Len(r))}static Tan(r,t){return et.Uni(et.Sub(r,t))}static Min(r,t){return new et(Math.min(r.x,t.x),Math.min(r.y,t.y))}static Max(r,t){return new et(Math.max(r.x,t.x),Math.max(r.y,t.y))}static From(r){return new et().add(r)}static FromArray(r){return new et(r[0],r[1])}static Rot(r,t=0){const e=Math.sin(t),n=Math.cos(t);return new et(r.x*n-r.y*e,r.x*e+r.y*n)}static RotWith(r,t,e){const n=r.x-t.x,a=r.y-t.y,s=Math.sin(e),i=Math.cos(e);return new et(t.x+(n*i-a*s),t.y+(n*s+a*i))}static NearestPointOnLineThroughPoint(r,t,e){return et.Mul(t,et.Sub(e,r).pry(t)).add(r)}static NearestPointOnLineSegment(r,t,e,n=!0){const a=et.Tan(t,r),s=et.Add(r,et.Mul(a,et.Sub(e,r).pry(a)));if(n){if(s.x<Math.min(r.x,t.x))return et.Cast(r.x<t.x?r:t);if(s.x>Math.max(r.x,t.x))return et.Cast(r.x>t.x?r:t);if(s.y<Math.min(r.y,t.y))return et.Cast(r.y<t.y?r:t);if(s.y>Math.max(r.y,t.y))return et.Cast(r.y>t.y?r:t)}return s}static DistanceToLineThroughPoint(r,t,e){return et.Dist(e,et.NearestPointOnLineThroughPoint(r,t,e))}static DistanceToLineSegment(r,t,e,n=!0){return et.Dist(e,et.NearestPointOnLineSegment(r,t,e,n))}static Snap(r,t=1){return new et(Math.round(r.x/t)*t,Math.round(r.y/t)*t)}static Cast(r){return r instanceof et?r:et.From(r)}static Slope(r,t){return r.x===t.y?NaN:(r.y-t.y)/(r.x-t.x)}static Angle(r,t){return Math.atan2(t.y-r.y,t.x-r.x)}static Lrp(r,t,e){return et.Sub(t,r).mul(e).add(r)}static Med(r,t){return new et((r.x+t.x)/2,(r.y+t.y)/2)}static Equals(r,t,e=1e-4){return Math.abs(r.x-t.x)<e&&Math.abs(r.y-t.y)<e}static EqualsXY(r,t,e){return r.x===t&&r.y===e}static EqualsXYZ(r,t,e=1e-4){return et.Equals(r,t,e)&&Math.abs((r.z||0)-(t.z||0))<e}static Clockwise(r,t,e){return(e.x-r.x)*(t.y-r.y)-(t.x-r.x)*(e.y-r.y)<0}static Rescale(r,t){const e=et.Len(r);return new et(t*r.x/e,t*r.y/e)}static ScaleWithOrigin(r,t,e){return et.Sub(r,e).mul(t).add(e)}static ScaleWOrigin(r,t,e){return et.Sub(r,e).mulV(t).add(e)}static ToFixed(r,t=2){return new et(+r.x.toFixed(t),+r.y.toFixed(t),+r.z.toFixed(t))}static Nudge(r,t,e){return et.Add(r,et.Tan(t,r).mul(e))}static ToString(r){return`${r.x}, ${r.y}`}static ToAngle(r){let t=Math.atan2(r.y,r.x);return t<0&&(t+=Math.PI*2),t}static FromAngle(r,t=1){return new et(Math.cos(r)*t,Math.sin(r)*t)}static ToArray(r){return[r.x,r.y,r.z]}static ToJson(r){const{x:t,y:e,z:n}=r;return{x:t,y:e,z:n}}static Average(r){const t=r.length,e=new et(0,0);for(let n=0;n<t;n++)e.add(r[n]);return e.div(t)}static Clamp(r,t,e){return e===void 0?new et(Math.min(Math.max(r.x,t)),Math.min(Math.max(r.y,t))):new et(Math.min(Math.max(r.x,t),e),Math.min(Math.max(r.y,t),e))}static PointsBetween(r,t,e=6){const n=[];for(let a=0;a<e;a++){const s=Ch.easeInQuad(a/(e-1)),i=et.Lrp(r,t,s);i.z=Math.min(1,.5+Math.abs(.5-Rh(s))*.65),n.push(i)}return n}static SnapToGrid(r,t=8){return new et(Math.round(r.x/t)*t,Math.round(r.y/t)*t)}}const Rh=d=>d<.5?2*d*d:-1+(4-2*d)*d;class Mt extends et{constructor(r=0,t=0,e=0,n={x:0,y:0},a=0,s=0){super(r,t,e),this.x=r,this.y=t,this.z=e,this.v=n,this.t=a,this.a=s}get timestamp(){return this.t}get pressure(){return this.z}get angleNum(){return this.a}get XY(){return[this.x,this.y]}setA(r){this.a=r}setT(r){this.t=r}setv(r){return this.v={x:r.x,y:r.y},this}set(r=this.x,t=this.y,e=this.z,n=this.v,a=this.t,s=this.a){return this.x=r,this.y=t,this.z=e,this.v=n,this.t=a,this.a=s,this}clone(){const{x:r,y:t,z:e,v:n,t:a,a:s}=this,i={x:n.x,y:n.y};return new Mt(r,t,e,i,a,s)}distance(r){return Mt.GetDistance(this,r)}isNear(r,t){return Mt.IsNear(this,r,t)}getAngleByPoints(r,t){return Mt.GetAngleByPoints(r,this,t)}static Sub(r,t){return new Mt(r.x-t.x,r.y-t.y)}static Add(r,t){return new Mt(r.x+t.x,r.y+t.y)}static GetDistance(r,t){return Mt.Len(r.clone().sub(t))}static GetAngleByPoints(r,t,e){const n=t.x-r.x,a=e.x-t.x,s=t.y-r.y,i=e.y-t.y;let o=0;const c=Math.sqrt(n*n+s*s),m=Math.sqrt(a*a+i*i);if(c&&m){const u=n*a+s*i;o=Math.acos(u/(c*m)),o=o/Math.PI*180;let p=n*i-s*a;p=p>0?1:-1,o=180+p*o}return o}static IsNear(r,t,e){return Mt.Len(r.clone().sub(t))<e}static RotWith(r,t,e,n=2){const a=r.x-t.x,s=r.y-t.y,i=Math.sin(e),o=Math.cos(e),c=Math.pow(10,n),m=Math.floor((t.x+(a*o-s*i))*c)/c,u=Math.floor((t.y+(a*i+s*o))*c)/c;return new Mt(m,u)}static GetDotStroke(r,t,e=16){const n=new et(1,1),a=Math.PI+.001,s=Mt.Add(r,Mt.Sub(r,n).uni().per().mul(-t)),i=[];for(let o=1/e,c=o;c<=1;c+=o)i.push(Mt.RotWith(s,r,a*2*c));return i}static GetSemicircleStroke(r,t,e=-1,n=8){const a=e*(Math.PI+.001),s=[];for(let i=1/n,o=i;o<=1;o+=i)s.push(Mt.RotWith(t,r,a*o));return s}}function Ot(d,r){if(d&&r){const t=Math.min(d.x,r.x),e=Math.min(d.y,r.y),n=Math.max(d.x+d.w,r.x+r.w),a=Math.max(d.y+d.h,r.y+r.h),s=n-t,i=a-e;return{x:t,y:e,w:s,h:i}}return r||d}function Bt(d,r=0){const t={x:0,y:0,w:0,h:0};let e=1/0,n=1/0,a=-1/0,s=-1/0;return d.forEach(i=>{const[o,c]=i.XY;e=Math.min(e,o-r),n=Math.min(n,c-r),a=Math.max(a,o+r),s=Math.max(s,c+r)}),t.x=e,t.y=n,t.w=a-e,t.h=s-n,t}function xe(d,r){return!(d.x+d.w<r.x||d.x>r.x+r.w||d.y+d.h<r.y||d.y>r.y+r.h)}function Ih(d,r){return d.length===r.length&&d.sort().toString()===r.sort().toString()}function Yt(d,r=10){return{x:Math.floor(d.x-r),y:Math.floor(d.y-r),w:Math.floor(d.w+r*2),h:Math.floor(d.h+r*2)}}function Ce(d,r){return{x:d.x+r[0],y:d.y+r[1],w:d.w,h:d.h}}function vn(d,r){const t=new et(d.x,d.y),e=new et(d.x+d.w,d.y),n=new et(d.x+d.w,d.y+d.h),a=new et(d.x,d.y+d.h),s=new et(d.x+d.w/2,d.y+d.h/2),i=Math.PI*r/180,o=et.RotWith(t,s,i),c=et.RotWith(e,s,i),m=et.RotWith(n,s,i),u=et.RotWith(a,s,i);return Bt([o,c,m,u])}function yn(d,r){const t=new et(d.x,d.y),e=new et(d.x+d.w,d.y),n=new et(d.x+d.w,d.y+d.h),a=new et(d.x,d.y+d.h),s=new et(d.x+d.w/2,d.y+d.h/2),i=new et(r[0],r[1]),o=et.ScaleWOrigin(t,i,s),c=et.ScaleWOrigin(e,i,s),m=et.ScaleWOrigin(n,i,s),u=et.ScaleWOrigin(a,i,s);return Bt([o,c,m,u])}function Lh(d,r,t){const e=new et(r[0],r[1]);for(let n=0;n<d.length;n+=3){const a=new et(d[n],d[n+1]),s=Math.PI*t/180,i=et.RotWith(a,e,s);d[n]=i.x,d[n+1]=i.y}}function bh(d,r,t){const e=new et(r[0],r[1]);for(let n=0;n<d.length;n+=3){const a=new et(d[n],d[n+1]),s=new et(t[0],t[1]);if(n<d.length-3){const o=new et(d[n+3],d[n+4]),c=et.Tan(o,a).per().mul(d[n+2]).mulV(s).len();d[n+2]=c}else if(n===d.length-3){const o=new et(d[n-3],d[n-2]),c=et.Tan(a,o).per().mul(d[n+2]).mulV(s).len();d[n+2]=c}const i=et.ScaleWOrigin(a,s,e);d[n]=i.x,d[n+1]=i.y}}function Dh(d,r){return d[0]>=r.x&&d[0]<=r.x+r.w&&d[1]>=r.y&&d[1]<=r.y+r.h}function Sn(d,r){const t=d<=r?1:d/r,e=r<=d?1:r/d;return[t,e]}const He=d=>{if(d.tagName==="GROUP"){const r=Object.getOwnPropertySymbols(d).find(t=>t.toString()==="Symbol(sealed)");if(r&&d[r])return!0}return!1},wh=d=>d!==gt.Text;function Te(d){return`${Ke(d.x)},${Ke(d.y)} `}function Me(d,r){return`${Ke((d.x+r.x)/2)},${Ke((d.y+r.y)/2)} `}function Ke(d){return+d.toFixed(4)}var Nh=ce,Bh=ie,Wh="[object Number]";function Fh(d){return typeof d=="number"||Bh(d)&&Nh(d)==Wh}var jh=Fh,oe=Xt(jh);const qt=class qt{constructor(r){st(this,"syncUnitTime",1e3);st(this,"vNodes");st(this,"drawLayer");st(this,"fullLayer");st(this,"workId");const{vNodes:t,fullLayer:e,drawLayer:n}=r;this.vNodes=t,this.fullLayer=e,this.drawLayer=n}setWorkId(r){this.workId=r}getWorkId(){return this.workId}getWorkOptions(){return this.workOptions}setWorkOptions(r){var n;this.workOptions=r,this.syncUnitTime=r.syncUnitTime||this.syncUnitTime;const t=(n=this.workId)==null?void 0:n.toString(),e=t&&this.vNodes.get(t)||void 0;t&&e&&(e.opt=r,this.vNodes.setInfo(t,e))}updataOptService(r){var n;let t;const e=(n=this.workId)==null?void 0:n.toString();if(e&&r){const a=this.fullLayer.getElementsByName(e)||this.drawLayer&&this.drawLayer.getElementsByName(e)||[];if(a.length!==1)return;const s=a[0],{pos:i,zIndex:o,scale:c,angle:m,translate:u}=r,p={};oe(o)&&(p.zIndex=o),i&&(p.pos=[i[0],i[1]]),c&&(p.scale=c),m&&(p.rotate=m),u&&(p.translate=u),s.attr(p);const y=s==null?void 0:s.getBoundingClientRect();return y&&(t=Ot(t,{x:Math.floor(y.x-qt.SafeBorderPadding),y:Math.floor(y.y-qt.SafeBorderPadding),w:Math.floor(y.width+qt.SafeBorderPadding*2),h:Math.floor(y.height+qt.SafeBorderPadding*2)})),this.vNodes.setInfo(e,{rect:t,centerPos:i}),t}}static updateNodeOpt(r){const{node:t,opt:e,vNodes:n,willSerializeData:a,targetNode:s}=r,{zIndex:i,translate:o,angle:c,box:m,boxScale:u,boxTranslate:p,pointMap:y}=e;let O;const x=s&&Zt(s)||n.get(t.name);if(!x)return;oe(i)&&(t.setAttribute("zIndex",i),x.opt.zIndex=i);const v=t.parent;if(v){if(m&&p&&u){const{rect:T}=x,l=[];for(let L=0;L<x.op.length;L+=3)l.push(new Mt(x.op[L],x.op[L+1],x.op[L+2]));const h=Bt(l),f=[h.w*v.worldScaling[0],h.h*v.worldScaling[0]],g=[T.w-f[0],T.h-f[1]],M=[(T.w*u[0]-g[0])/f[0],(T.h*u[1]-g[1])/f[1]],A=[p[0]/v.worldScaling[0],p[1]/v.worldScaling[1]],C=x.op.map((L,D)=>{const I=D%3;return I===0?L+A[0]:I===1?L+A[1]:L}),b=[x.centerPos[0]+A[0],x.centerPos[1]+A[1]];bh(C,b,M);const E=[];for(let L=0;L<C.length;L+=3)E.push(new Mt(C[L],C[L+1],C[L+2]));x.op=C,x.centerPos=b}else if(o){const T=[o[0]/v.worldScaling[0],o[1]/v.worldScaling[1]];t.setAttribute("translate",T),x.opt.translate=T,s&&(O=Ce(x.rect,o),x.rect=O)}else oe(c)&&(t.setAttribute("rotate",c),x.opt.rotate=c,s&&(O=vn(x.rect,c),x.rect=O));if(y){const T=y.get(t.name);if(T)for(let l=0,h=0;l<x.op.length;l+=3,h++)x.op[l]=T[h][0],x.op[l+1]=T[h][1]}if(a){if(o){const T=[o[0]/v.worldScaling[0],o[1]/v.worldScaling[1]],l=x.op.map((h,f)=>{const g=f%3;return g===0?h+T[0]:g===1?h+T[1]:h});x.op=l,x.centerPos=[x.centerPos[0]+T[0],x.centerPos[1]+T[1]],x!=null&&x.opt&&(x.opt.translate=void 0)}else if(oe(c)){const T=x.op;Lh(T,x.centerPos,c),x.op=T,x!=null&&x.opt&&(x.opt.rotate=void 0)}}x&&n.setInfo(t.name,x)}}static getCenterPos(r,t){const{worldPosition:e,worldScaling:n}=t;return[(r.x+r.w/2-e[0])/n[0],(r.y+r.h/2-e[1])/n[1]]}static getRectFromLayer(r,t){const e=r.getElementsByName(t)[0];if(e){const n=e.getBoundingClientRect();return{x:Math.floor(n.x-qt.SafeBorderPadding),y:Math.floor(n.y-qt.SafeBorderPadding),w:Math.floor(n.width+qt.SafeBorderPadding*2),h:Math.floor(n.height+qt.SafeBorderPadding*2)}}}};st(qt,"SafeBorderPadding",10);let yt=qt;var Dt=function(d){var r={};function t(e){if(r[e])return r[e].exports;var n=r[e]={i:e,l:!1,exports:{}};return d[e].call(n.exports,n,n.exports,t),n.l=!0,n.exports}return t.m=d,t.c=r,t.d=function(e,n,a){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:a})},t.r=function(e){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(n&1&&(e=t(e)),n&8||n&4&&typeof e=="object"&&e&&e.__esModule)return e;var a=Object.create(null);if(t.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),n&2&&typeof e!="string")for(var s in e)t.d(a,s,(function(i){return e[i]}).bind(null,s));return a},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/js/",t(t.s=0)}([function(d,r,t){t.r(r),t.d(r,"version",function(){return K}),t.d(r,"helpers",function(){return B}),t.d(r,"createElement",function(){return D}),t.d(r,"isSpriteNode",function(){return I}),t.d(r,"registerNode",function(){return R});var e=t(12);t.d(r,"ENV",function(){return e.ENV});var n=t(68);t.d(r,"requestAnimationFrame",function(){return n.requestAnimationFrame}),t.d(r,"cancelAnimationFrame",function(){return n.cancelAnimationFrame});var a=t(70);t.d(r,"Node",function(){return a.default});var s=t(217);t.d(r,"Cloud",function(){return s.default});var i=t(219);t.d(r,"Block",function(){return i.default});var o=t(224);t.d(r,"Sprite",function(){return o.default});var c=t(226);t.d(r,"Path",function(){return c.default});var m=t(229);t.d(r,"Rect",function(){return m.default});var u=t(231);t.d(r,"Triangle",function(){return u.default});var p=t(236);t.d(r,"Parallel",function(){return p.default});var y=t(238);t.d(r,"Regular",function(){return y.default});var O=t(240);t.d(r,"Star",function(){return O.default});var x=t(242);t.d(r,"Ellipse",function(){return x.default});var v=t(244);t.d(r,"Arc",function(){return v.default});var T=t(246);t.d(r,"Ring",function(){return T.default});var l=t(232);t.d(r,"Polyline",function(){return l.default});var h=t(248);t.d(r,"Label",function(){return h.default});var f=t(250);t.d(r,"Group",function(){return f.default});var g=t(286);t.d(r,"Layer",function(){return g.default});var M=t(287);t.d(r,"SpriteSvg",function(){return M.default});var A=t(289);t.d(r,"LayerWorker",function(){return A.default});var C=t(290);t.d(r,"Scene",function(){return C.default});var b=t(213),E=t(221);t.d(r,"Color",function(){return E.Color}),t.d(r,"Gradient",function(){return E.Gradient});var L=t(72);t(1).glMatrix.setMatrixArrayType(Array);const D=b.default.createElement,I=b.default.isSpriteNode,R=b.default.registerNode,B={parseColor:E.parseColor,sizeToPixel:L.sizeToPixel,toArray:L.toArray,toString:L.toString,toNumber:L.toNumber};let z;z="3.8.3";const K=z},function(d,r,t){t.r(r);var e=t(2);t.d(r,"glMatrix",function(){return e});var n=t(3);t.d(r,"mat2",function(){return n});var a=t(4);t.d(r,"mat2d",function(){return a});var s=t(5);t.d(r,"mat3",function(){return s});var i=t(6);t.d(r,"mat4",function(){return i});var o=t(7);t.d(r,"quat",function(){return o});var c=t(10);t.d(r,"quat2",function(){return c});var m=t(11);t.d(r,"vec2",function(){return m});var u=t(8);t.d(r,"vec3",function(){return u});var p=t(9);t.d(r,"vec4",function(){return p})},function(d,r,t){t.r(r),t.d(r,"EPSILON",function(){return e}),t.d(r,"ARRAY_TYPE",function(){return n}),t.d(r,"RANDOM",function(){return a}),t.d(r,"setMatrixArrayType",function(){return s}),t.d(r,"toRadian",function(){return o}),t.d(r,"equals",function(){return c});var e=1e-6,n=typeof Float32Array<"u"?Float32Array:Array,a=Math.random;function s(m){n=m}var i=Math.PI/180;function o(m){return m*i}function c(m,u){return Math.abs(m-u)<=e*Math.max(1,Math.abs(m),Math.abs(u))}Math.hypot||(Math.hypot=function(){for(var m=0,u=arguments.length;u--;)m+=arguments[u]*arguments[u];return Math.sqrt(m)})},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return a}),t.d(r,"copy",function(){return s}),t.d(r,"identity",function(){return i}),t.d(r,"fromValues",function(){return o}),t.d(r,"set",function(){return c}),t.d(r,"transpose",function(){return m}),t.d(r,"invert",function(){return u}),t.d(r,"adjoint",function(){return p}),t.d(r,"determinant",function(){return y}),t.d(r,"multiply",function(){return O}),t.d(r,"rotate",function(){return x}),t.d(r,"scale",function(){return v}),t.d(r,"fromRotation",function(){return T}),t.d(r,"fromScaling",function(){return l}),t.d(r,"str",function(){return h}),t.d(r,"frob",function(){return f}),t.d(r,"LDU",function(){return g}),t.d(r,"add",function(){return M}),t.d(r,"subtract",function(){return A}),t.d(r,"exactEquals",function(){return C}),t.d(r,"equals",function(){return b}),t.d(r,"multiplyScalar",function(){return E}),t.d(r,"multiplyScalarAndAdd",function(){return L}),t.d(r,"mul",function(){return D}),t.d(r,"sub",function(){return I});var e=t(2);function n(){var R=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(R[1]=0,R[2]=0),R[0]=1,R[3]=1,R}function a(R){var B=new e.ARRAY_TYPE(4);return B[0]=R[0],B[1]=R[1],B[2]=R[2],B[3]=R[3],B}function s(R,B){return R[0]=B[0],R[1]=B[1],R[2]=B[2],R[3]=B[3],R}function i(R){return R[0]=1,R[1]=0,R[2]=0,R[3]=1,R}function o(R,B,z,K){var Q=new e.ARRAY_TYPE(4);return Q[0]=R,Q[1]=B,Q[2]=z,Q[3]=K,Q}function c(R,B,z,K,Q){return R[0]=B,R[1]=z,R[2]=K,R[3]=Q,R}function m(R,B){if(R===B){var z=B[1];R[1]=B[2],R[2]=z}else R[0]=B[0],R[1]=B[2],R[2]=B[1],R[3]=B[3];return R}function u(R,B){var z=B[0],K=B[1],Q=B[2],_=B[3],j=z*_-Q*K;return j?(j=1/j,R[0]=_*j,R[1]=-K*j,R[2]=-Q*j,R[3]=z*j,R):null}function p(R,B){var z=B[0];return R[0]=B[3],R[1]=-B[1],R[2]=-B[2],R[3]=z,R}function y(R){return R[0]*R[3]-R[2]*R[1]}function O(R,B,z){var K=B[0],Q=B[1],_=B[2],j=B[3],G=z[0],X=z[1],Z=z[2],tt=z[3];return R[0]=K*G+_*X,R[1]=Q*G+j*X,R[2]=K*Z+_*tt,R[3]=Q*Z+j*tt,R}function x(R,B,z){var K=B[0],Q=B[1],_=B[2],j=B[3],G=Math.sin(z),X=Math.cos(z);return R[0]=K*X+_*G,R[1]=Q*X+j*G,R[2]=K*-G+_*X,R[3]=Q*-G+j*X,R}function v(R,B,z){var K=B[0],Q=B[1],_=B[2],j=B[3],G=z[0],X=z[1];return R[0]=K*G,R[1]=Q*G,R[2]=_*X,R[3]=j*X,R}function T(R,B){var z=Math.sin(B),K=Math.cos(B);return R[0]=K,R[1]=z,R[2]=-z,R[3]=K,R}function l(R,B){return R[0]=B[0],R[1]=0,R[2]=0,R[3]=B[1],R}function h(R){return"mat2("+R[0]+", "+R[1]+", "+R[2]+", "+R[3]+")"}function f(R){return Math.hypot(R[0],R[1],R[2],R[3])}function g(R,B,z,K){return R[2]=K[2]/K[0],z[0]=K[0],z[1]=K[1],z[3]=K[3]-R[2]*z[1],[R,B,z]}function M(R,B,z){return R[0]=B[0]+z[0],R[1]=B[1]+z[1],R[2]=B[2]+z[2],R[3]=B[3]+z[3],R}function A(R,B,z){return R[0]=B[0]-z[0],R[1]=B[1]-z[1],R[2]=B[2]-z[2],R[3]=B[3]-z[3],R}function C(R,B){return R[0]===B[0]&&R[1]===B[1]&&R[2]===B[2]&&R[3]===B[3]}function b(R,B){var z=R[0],K=R[1],Q=R[2],_=R[3],j=B[0],G=B[1],X=B[2],Z=B[3];return Math.abs(z-j)<=e.EPSILON*Math.max(1,Math.abs(z),Math.abs(j))&&Math.abs(K-G)<=e.EPSILON*Math.max(1,Math.abs(K),Math.abs(G))&&Math.abs(Q-X)<=e.EPSILON*Math.max(1,Math.abs(Q),Math.abs(X))&&Math.abs(_-Z)<=e.EPSILON*Math.max(1,Math.abs(_),Math.abs(Z))}function E(R,B,z){return R[0]=B[0]*z,R[1]=B[1]*z,R[2]=B[2]*z,R[3]=B[3]*z,R}function L(R,B,z,K){return R[0]=B[0]+z[0]*K,R[1]=B[1]+z[1]*K,R[2]=B[2]+z[2]*K,R[3]=B[3]+z[3]*K,R}var D=O,I=A},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return a}),t.d(r,"copy",function(){return s}),t.d(r,"identity",function(){return i}),t.d(r,"fromValues",function(){return o}),t.d(r,"set",function(){return c}),t.d(r,"invert",function(){return m}),t.d(r,"determinant",function(){return u}),t.d(r,"multiply",function(){return p}),t.d(r,"rotate",function(){return y}),t.d(r,"scale",function(){return O}),t.d(r,"translate",function(){return x}),t.d(r,"fromRotation",function(){return v}),t.d(r,"fromScaling",function(){return T}),t.d(r,"fromTranslation",function(){return l}),t.d(r,"str",function(){return h}),t.d(r,"frob",function(){return f}),t.d(r,"add",function(){return g}),t.d(r,"subtract",function(){return M}),t.d(r,"multiplyScalar",function(){return A}),t.d(r,"multiplyScalarAndAdd",function(){return C}),t.d(r,"exactEquals",function(){return b}),t.d(r,"equals",function(){return E}),t.d(r,"mul",function(){return L}),t.d(r,"sub",function(){return D});var e=t(2);function n(){var I=new e.ARRAY_TYPE(6);return e.ARRAY_TYPE!=Float32Array&&(I[1]=0,I[2]=0,I[4]=0,I[5]=0),I[0]=1,I[3]=1,I}function a(I){var R=new e.ARRAY_TYPE(6);return R[0]=I[0],R[1]=I[1],R[2]=I[2],R[3]=I[3],R[4]=I[4],R[5]=I[5],R}function s(I,R){return I[0]=R[0],I[1]=R[1],I[2]=R[2],I[3]=R[3],I[4]=R[4],I[5]=R[5],I}function i(I){return I[0]=1,I[1]=0,I[2]=0,I[3]=1,I[4]=0,I[5]=0,I}function o(I,R,B,z,K,Q){var _=new e.ARRAY_TYPE(6);return _[0]=I,_[1]=R,_[2]=B,_[3]=z,_[4]=K,_[5]=Q,_}function c(I,R,B,z,K,Q,_){return I[0]=R,I[1]=B,I[2]=z,I[3]=K,I[4]=Q,I[5]=_,I}function m(I,R){var B=R[0],z=R[1],K=R[2],Q=R[3],_=R[4],j=R[5],G=B*Q-z*K;return G?(G=1/G,I[0]=Q*G,I[1]=-z*G,I[2]=-K*G,I[3]=B*G,I[4]=(K*j-Q*_)*G,I[5]=(z*_-B*j)*G,I):null}function u(I){return I[0]*I[3]-I[1]*I[2]}function p(I,R,B){var z=R[0],K=R[1],Q=R[2],_=R[3],j=R[4],G=R[5],X=B[0],Z=B[1],tt=B[2],nt=B[3],q=B[4],dt=B[5];return I[0]=z*X+Q*Z,I[1]=K*X+_*Z,I[2]=z*tt+Q*nt,I[3]=K*tt+_*nt,I[4]=z*q+Q*dt+j,I[5]=K*q+_*dt+G,I}function y(I,R,B){var z=R[0],K=R[1],Q=R[2],_=R[3],j=R[4],G=R[5],X=Math.sin(B),Z=Math.cos(B);return I[0]=z*Z+Q*X,I[1]=K*Z+_*X,I[2]=z*-X+Q*Z,I[3]=K*-X+_*Z,I[4]=j,I[5]=G,I}function O(I,R,B){var z=R[0],K=R[1],Q=R[2],_=R[3],j=R[4],G=R[5],X=B[0],Z=B[1];return I[0]=z*X,I[1]=K*X,I[2]=Q*Z,I[3]=_*Z,I[4]=j,I[5]=G,I}function x(I,R,B){var z=R[0],K=R[1],Q=R[2],_=R[3],j=R[4],G=R[5],X=B[0],Z=B[1];return I[0]=z,I[1]=K,I[2]=Q,I[3]=_,I[4]=z*X+Q*Z+j,I[5]=K*X+_*Z+G,I}function v(I,R){var B=Math.sin(R),z=Math.cos(R);return I[0]=z,I[1]=B,I[2]=-B,I[3]=z,I[4]=0,I[5]=0,I}function T(I,R){return I[0]=R[0],I[1]=0,I[2]=0,I[3]=R[1],I[4]=0,I[5]=0,I}function l(I,R){return I[0]=1,I[1]=0,I[2]=0,I[3]=1,I[4]=R[0],I[5]=R[1],I}function h(I){return"mat2d("+I[0]+", "+I[1]+", "+I[2]+", "+I[3]+", "+I[4]+", "+I[5]+")"}function f(I){return Math.hypot(I[0],I[1],I[2],I[3],I[4],I[5],1)}function g(I,R,B){return I[0]=R[0]+B[0],I[1]=R[1]+B[1],I[2]=R[2]+B[2],I[3]=R[3]+B[3],I[4]=R[4]+B[4],I[5]=R[5]+B[5],I}function M(I,R,B){return I[0]=R[0]-B[0],I[1]=R[1]-B[1],I[2]=R[2]-B[2],I[3]=R[3]-B[3],I[4]=R[4]-B[4],I[5]=R[5]-B[5],I}function A(I,R,B){return I[0]=R[0]*B,I[1]=R[1]*B,I[2]=R[2]*B,I[3]=R[3]*B,I[4]=R[4]*B,I[5]=R[5]*B,I}function C(I,R,B,z){return I[0]=R[0]+B[0]*z,I[1]=R[1]+B[1]*z,I[2]=R[2]+B[2]*z,I[3]=R[3]+B[3]*z,I[4]=R[4]+B[4]*z,I[5]=R[5]+B[5]*z,I}function b(I,R){return I[0]===R[0]&&I[1]===R[1]&&I[2]===R[2]&&I[3]===R[3]&&I[4]===R[4]&&I[5]===R[5]}function E(I,R){var B=I[0],z=I[1],K=I[2],Q=I[3],_=I[4],j=I[5],G=R[0],X=R[1],Z=R[2],tt=R[3],nt=R[4],q=R[5];return Math.abs(B-G)<=e.EPSILON*Math.max(1,Math.abs(B),Math.abs(G))&&Math.abs(z-X)<=e.EPSILON*Math.max(1,Math.abs(z),Math.abs(X))&&Math.abs(K-Z)<=e.EPSILON*Math.max(1,Math.abs(K),Math.abs(Z))&&Math.abs(Q-tt)<=e.EPSILON*Math.max(1,Math.abs(Q),Math.abs(tt))&&Math.abs(_-nt)<=e.EPSILON*Math.max(1,Math.abs(_),Math.abs(nt))&&Math.abs(j-q)<=e.EPSILON*Math.max(1,Math.abs(j),Math.abs(q))}var L=p,D=M},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"fromMat4",function(){return a}),t.d(r,"clone",function(){return s}),t.d(r,"copy",function(){return i}),t.d(r,"fromValues",function(){return o}),t.d(r,"set",function(){return c}),t.d(r,"identity",function(){return m}),t.d(r,"transpose",function(){return u}),t.d(r,"invert",function(){return p}),t.d(r,"adjoint",function(){return y}),t.d(r,"determinant",function(){return O}),t.d(r,"multiply",function(){return x}),t.d(r,"translate",function(){return v}),t.d(r,"rotate",function(){return T}),t.d(r,"scale",function(){return l}),t.d(r,"fromTranslation",function(){return h}),t.d(r,"fromRotation",function(){return f}),t.d(r,"fromScaling",function(){return g}),t.d(r,"fromMat2d",function(){return M}),t.d(r,"fromQuat",function(){return A}),t.d(r,"normalFromMat4",function(){return C}),t.d(r,"projection",function(){return b}),t.d(r,"str",function(){return E}),t.d(r,"frob",function(){return L}),t.d(r,"add",function(){return D}),t.d(r,"subtract",function(){return I}),t.d(r,"multiplyScalar",function(){return R}),t.d(r,"multiplyScalarAndAdd",function(){return B}),t.d(r,"exactEquals",function(){return z}),t.d(r,"equals",function(){return K}),t.d(r,"mul",function(){return Q}),t.d(r,"sub",function(){return _});var e=t(2);function n(){var j=new e.ARRAY_TYPE(9);return e.ARRAY_TYPE!=Float32Array&&(j[1]=0,j[2]=0,j[3]=0,j[5]=0,j[6]=0,j[7]=0),j[0]=1,j[4]=1,j[8]=1,j}function a(j,G){return j[0]=G[0],j[1]=G[1],j[2]=G[2],j[3]=G[4],j[4]=G[5],j[5]=G[6],j[6]=G[8],j[7]=G[9],j[8]=G[10],j}function s(j){var G=new e.ARRAY_TYPE(9);return G[0]=j[0],G[1]=j[1],G[2]=j[2],G[3]=j[3],G[4]=j[4],G[5]=j[5],G[6]=j[6],G[7]=j[7],G[8]=j[8],G}function i(j,G){return j[0]=G[0],j[1]=G[1],j[2]=G[2],j[3]=G[3],j[4]=G[4],j[5]=G[5],j[6]=G[6],j[7]=G[7],j[8]=G[8],j}function o(j,G,X,Z,tt,nt,q,dt,ut){var W=new e.ARRAY_TYPE(9);return W[0]=j,W[1]=G,W[2]=X,W[3]=Z,W[4]=tt,W[5]=nt,W[6]=q,W[7]=dt,W[8]=ut,W}function c(j,G,X,Z,tt,nt,q,dt,ut,W){return j[0]=G,j[1]=X,j[2]=Z,j[3]=tt,j[4]=nt,j[5]=q,j[6]=dt,j[7]=ut,j[8]=W,j}function m(j){return j[0]=1,j[1]=0,j[2]=0,j[3]=0,j[4]=1,j[5]=0,j[6]=0,j[7]=0,j[8]=1,j}function u(j,G){if(j===G){var X=G[1],Z=G[2],tt=G[5];j[1]=G[3],j[2]=G[6],j[3]=X,j[5]=G[7],j[6]=Z,j[7]=tt}else j[0]=G[0],j[1]=G[3],j[2]=G[6],j[3]=G[1],j[4]=G[4],j[5]=G[7],j[6]=G[2],j[7]=G[5],j[8]=G[8];return j}function p(j,G){var X=G[0],Z=G[1],tt=G[2],nt=G[3],q=G[4],dt=G[5],ut=G[6],W=G[7],F=G[8],V=F*q-dt*W,J=-F*nt+dt*ut,N=W*nt-q*ut,$=X*V+Z*J+tt*N;return $?($=1/$,j[0]=V*$,j[1]=(-F*Z+tt*W)*$,j[2]=(dt*Z-tt*q)*$,j[3]=J*$,j[4]=(F*X-tt*ut)*$,j[5]=(-dt*X+tt*nt)*$,j[6]=N*$,j[7]=(-W*X+Z*ut)*$,j[8]=(q*X-Z*nt)*$,j):null}function y(j,G){var X=G[0],Z=G[1],tt=G[2],nt=G[3],q=G[4],dt=G[5],ut=G[6],W=G[7],F=G[8];return j[0]=q*F-dt*W,j[1]=tt*W-Z*F,j[2]=Z*dt-tt*q,j[3]=dt*ut-nt*F,j[4]=X*F-tt*ut,j[5]=tt*nt-X*dt,j[6]=nt*W-q*ut,j[7]=Z*ut-X*W,j[8]=X*q-Z*nt,j}function O(j){var G=j[0],X=j[1],Z=j[2],tt=j[3],nt=j[4],q=j[5],dt=j[6],ut=j[7],W=j[8];return G*(W*nt-q*ut)+X*(-W*tt+q*dt)+Z*(ut*tt-nt*dt)}function x(j,G,X){var Z=G[0],tt=G[1],nt=G[2],q=G[3],dt=G[4],ut=G[5],W=G[6],F=G[7],V=G[8],J=X[0],N=X[1],$=X[2],S=X[3],P=X[4],w=X[5],U=X[6],H=X[7],Y=X[8];return j[0]=J*Z+N*q+$*W,j[1]=J*tt+N*dt+$*F,j[2]=J*nt+N*ut+$*V,j[3]=S*Z+P*q+w*W,j[4]=S*tt+P*dt+w*F,j[5]=S*nt+P*ut+w*V,j[6]=U*Z+H*q+Y*W,j[7]=U*tt+H*dt+Y*F,j[8]=U*nt+H*ut+Y*V,j}function v(j,G,X){var Z=G[0],tt=G[1],nt=G[2],q=G[3],dt=G[4],ut=G[5],W=G[6],F=G[7],V=G[8],J=X[0],N=X[1];return j[0]=Z,j[1]=tt,j[2]=nt,j[3]=q,j[4]=dt,j[5]=ut,j[6]=J*Z+N*q+W,j[7]=J*tt+N*dt+F,j[8]=J*nt+N*ut+V,j}function T(j,G,X){var Z=G[0],tt=G[1],nt=G[2],q=G[3],dt=G[4],ut=G[5],W=G[6],F=G[7],V=G[8],J=Math.sin(X),N=Math.cos(X);return j[0]=N*Z+J*q,j[1]=N*tt+J*dt,j[2]=N*nt+J*ut,j[3]=N*q-J*Z,j[4]=N*dt-J*tt,j[5]=N*ut-J*nt,j[6]=W,j[7]=F,j[8]=V,j}function l(j,G,X){var Z=X[0],tt=X[1];return j[0]=Z*G[0],j[1]=Z*G[1],j[2]=Z*G[2],j[3]=tt*G[3],j[4]=tt*G[4],j[5]=tt*G[5],j[6]=G[6],j[7]=G[7],j[8]=G[8],j}function h(j,G){return j[0]=1,j[1]=0,j[2]=0,j[3]=0,j[4]=1,j[5]=0,j[6]=G[0],j[7]=G[1],j[8]=1,j}function f(j,G){var X=Math.sin(G),Z=Math.cos(G);return j[0]=Z,j[1]=X,j[2]=0,j[3]=-X,j[4]=Z,j[5]=0,j[6]=0,j[7]=0,j[8]=1,j}function g(j,G){return j[0]=G[0],j[1]=0,j[2]=0,j[3]=0,j[4]=G[1],j[5]=0,j[6]=0,j[7]=0,j[8]=1,j}function M(j,G){return j[0]=G[0],j[1]=G[1],j[2]=0,j[3]=G[2],j[4]=G[3],j[5]=0,j[6]=G[4],j[7]=G[5],j[8]=1,j}function A(j,G){var X=G[0],Z=G[1],tt=G[2],nt=G[3],q=X+X,dt=Z+Z,ut=tt+tt,W=X*q,F=Z*q,V=Z*dt,J=tt*q,N=tt*dt,$=tt*ut,S=nt*q,P=nt*dt,w=nt*ut;return j[0]=1-V-$,j[3]=F-w,j[6]=J+P,j[1]=F+w,j[4]=1-W-$,j[7]=N-S,j[2]=J-P,j[5]=N+S,j[8]=1-W-V,j}function C(j,G){var X=G[0],Z=G[1],tt=G[2],nt=G[3],q=G[4],dt=G[5],ut=G[6],W=G[7],F=G[8],V=G[9],J=G[10],N=G[11],$=G[12],S=G[13],P=G[14],w=G[15],U=X*dt-Z*q,H=X*ut-tt*q,Y=X*W-nt*q,k=Z*ut-tt*dt,rt=Z*W-nt*dt,it=tt*W-nt*ut,ct=F*S-V*$,ht=F*P-J*$,at=F*w-N*$,ot=V*P-J*S,ft=V*w-N*S,mt=J*w-N*P,vt=U*mt-H*ft+Y*ot+k*at-rt*ht+it*ct;return vt?(vt=1/vt,j[0]=(dt*mt-ut*ft+W*ot)*vt,j[1]=(ut*at-q*mt-W*ht)*vt,j[2]=(q*ft-dt*at+W*ct)*vt,j[3]=(tt*ft-Z*mt-nt*ot)*vt,j[4]=(X*mt-tt*at+nt*ht)*vt,j[5]=(Z*at-X*ft-nt*ct)*vt,j[6]=(S*it-P*rt+w*k)*vt,j[7]=(P*Y-$*it-w*H)*vt,j[8]=($*rt-S*Y+w*U)*vt,j):null}function b(j,G,X){return j[0]=2/G,j[1]=0,j[2]=0,j[3]=0,j[4]=-2/X,j[5]=0,j[6]=-1,j[7]=1,j[8]=1,j}function E(j){return"mat3("+j[0]+", "+j[1]+", "+j[2]+", "+j[3]+", "+j[4]+", "+j[5]+", "+j[6]+", "+j[7]+", "+j[8]+")"}function L(j){return Math.hypot(j[0],j[1],j[2],j[3],j[4],j[5],j[6],j[7],j[8])}function D(j,G,X){return j[0]=G[0]+X[0],j[1]=G[1]+X[1],j[2]=G[2]+X[2],j[3]=G[3]+X[3],j[4]=G[4]+X[4],j[5]=G[5]+X[5],j[6]=G[6]+X[6],j[7]=G[7]+X[7],j[8]=G[8]+X[8],j}function I(j,G,X){return j[0]=G[0]-X[0],j[1]=G[1]-X[1],j[2]=G[2]-X[2],j[3]=G[3]-X[3],j[4]=G[4]-X[4],j[5]=G[5]-X[5],j[6]=G[6]-X[6],j[7]=G[7]-X[7],j[8]=G[8]-X[8],j}function R(j,G,X){return j[0]=G[0]*X,j[1]=G[1]*X,j[2]=G[2]*X,j[3]=G[3]*X,j[4]=G[4]*X,j[5]=G[5]*X,j[6]=G[6]*X,j[7]=G[7]*X,j[8]=G[8]*X,j}function B(j,G,X,Z){return j[0]=G[0]+X[0]*Z,j[1]=G[1]+X[1]*Z,j[2]=G[2]+X[2]*Z,j[3]=G[3]+X[3]*Z,j[4]=G[4]+X[4]*Z,j[5]=G[5]+X[5]*Z,j[6]=G[6]+X[6]*Z,j[7]=G[7]+X[7]*Z,j[8]=G[8]+X[8]*Z,j}function z(j,G){return j[0]===G[0]&&j[1]===G[1]&&j[2]===G[2]&&j[3]===G[3]&&j[4]===G[4]&&j[5]===G[5]&&j[6]===G[6]&&j[7]===G[7]&&j[8]===G[8]}function K(j,G){var X=j[0],Z=j[1],tt=j[2],nt=j[3],q=j[4],dt=j[5],ut=j[6],W=j[7],F=j[8],V=G[0],J=G[1],N=G[2],$=G[3],S=G[4],P=G[5],w=G[6],U=G[7],H=G[8];return Math.abs(X-V)<=e.EPSILON*Math.max(1,Math.abs(X),Math.abs(V))&&Math.abs(Z-J)<=e.EPSILON*Math.max(1,Math.abs(Z),Math.abs(J))&&Math.abs(tt-N)<=e.EPSILON*Math.max(1,Math.abs(tt),Math.abs(N))&&Math.abs(nt-$)<=e.EPSILON*Math.max(1,Math.abs(nt),Math.abs($))&&Math.abs(q-S)<=e.EPSILON*Math.max(1,Math.abs(q),Math.abs(S))&&Math.abs(dt-P)<=e.EPSILON*Math.max(1,Math.abs(dt),Math.abs(P))&&Math.abs(ut-w)<=e.EPSILON*Math.max(1,Math.abs(ut),Math.abs(w))&&Math.abs(W-U)<=e.EPSILON*Math.max(1,Math.abs(W),Math.abs(U))&&Math.abs(F-H)<=e.EPSILON*Math.max(1,Math.abs(F),Math.abs(H))}var Q=x,_=I},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return a}),t.d(r,"copy",function(){return s}),t.d(r,"fromValues",function(){return i}),t.d(r,"set",function(){return o}),t.d(r,"identity",function(){return c}),t.d(r,"transpose",function(){return m}),t.d(r,"invert",function(){return u}),t.d(r,"adjoint",function(){return p}),t.d(r,"determinant",function(){return y}),t.d(r,"multiply",function(){return O}),t.d(r,"translate",function(){return x}),t.d(r,"scale",function(){return v}),t.d(r,"rotate",function(){return T}),t.d(r,"rotateX",function(){return l}),t.d(r,"rotateY",function(){return h}),t.d(r,"rotateZ",function(){return f}),t.d(r,"fromTranslation",function(){return g}),t.d(r,"fromScaling",function(){return M}),t.d(r,"fromRotation",function(){return A}),t.d(r,"fromXRotation",function(){return C}),t.d(r,"fromYRotation",function(){return b}),t.d(r,"fromZRotation",function(){return E}),t.d(r,"fromRotationTranslation",function(){return L}),t.d(r,"fromQuat2",function(){return D}),t.d(r,"getTranslation",function(){return I}),t.d(r,"getScaling",function(){return R}),t.d(r,"getRotation",function(){return B}),t.d(r,"fromRotationTranslationScale",function(){return z}),t.d(r,"fromRotationTranslationScaleOrigin",function(){return K}),t.d(r,"fromQuat",function(){return Q}),t.d(r,"frustum",function(){return _}),t.d(r,"perspective",function(){return j}),t.d(r,"perspectiveFromFieldOfView",function(){return G}),t.d(r,"ortho",function(){return X}),t.d(r,"lookAt",function(){return Z}),t.d(r,"targetTo",function(){return tt}),t.d(r,"str",function(){return nt}),t.d(r,"frob",function(){return q}),t.d(r,"add",function(){return dt}),t.d(r,"subtract",function(){return ut}),t.d(r,"multiplyScalar",function(){return W}),t.d(r,"multiplyScalarAndAdd",function(){return F}),t.d(r,"exactEquals",function(){return V}),t.d(r,"equals",function(){return J}),t.d(r,"mul",function(){return N}),t.d(r,"sub",function(){return $});var e=t(2);function n(){var S=new e.ARRAY_TYPE(16);return e.ARRAY_TYPE!=Float32Array&&(S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[11]=0,S[12]=0,S[13]=0,S[14]=0),S[0]=1,S[5]=1,S[10]=1,S[15]=1,S}function a(S){var P=new e.ARRAY_TYPE(16);return P[0]=S[0],P[1]=S[1],P[2]=S[2],P[3]=S[3],P[4]=S[4],P[5]=S[5],P[6]=S[6],P[7]=S[7],P[8]=S[8],P[9]=S[9],P[10]=S[10],P[11]=S[11],P[12]=S[12],P[13]=S[13],P[14]=S[14],P[15]=S[15],P}function s(S,P){return S[0]=P[0],S[1]=P[1],S[2]=P[2],S[3]=P[3],S[4]=P[4],S[5]=P[5],S[6]=P[6],S[7]=P[7],S[8]=P[8],S[9]=P[9],S[10]=P[10],S[11]=P[11],S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15],S}function i(S,P,w,U,H,Y,k,rt,it,ct,ht,at,ot,ft,mt,vt){var pt=new e.ARRAY_TYPE(16);return pt[0]=S,pt[1]=P,pt[2]=w,pt[3]=U,pt[4]=H,pt[5]=Y,pt[6]=k,pt[7]=rt,pt[8]=it,pt[9]=ct,pt[10]=ht,pt[11]=at,pt[12]=ot,pt[13]=ft,pt[14]=mt,pt[15]=vt,pt}function o(S,P,w,U,H,Y,k,rt,it,ct,ht,at,ot,ft,mt,vt,pt){return S[0]=P,S[1]=w,S[2]=U,S[3]=H,S[4]=Y,S[5]=k,S[6]=rt,S[7]=it,S[8]=ct,S[9]=ht,S[10]=at,S[11]=ot,S[12]=ft,S[13]=mt,S[14]=vt,S[15]=pt,S}function c(S){return S[0]=1,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=1,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[10]=1,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function m(S,P){if(S===P){var w=P[1],U=P[2],H=P[3],Y=P[6],k=P[7],rt=P[11];S[1]=P[4],S[2]=P[8],S[3]=P[12],S[4]=w,S[6]=P[9],S[7]=P[13],S[8]=U,S[9]=Y,S[11]=P[14],S[12]=H,S[13]=k,S[14]=rt}else S[0]=P[0],S[1]=P[4],S[2]=P[8],S[3]=P[12],S[4]=P[1],S[5]=P[5],S[6]=P[9],S[7]=P[13],S[8]=P[2],S[9]=P[6],S[10]=P[10],S[11]=P[14],S[12]=P[3],S[13]=P[7],S[14]=P[11],S[15]=P[15];return S}function u(S,P){var w=P[0],U=P[1],H=P[2],Y=P[3],k=P[4],rt=P[5],it=P[6],ct=P[7],ht=P[8],at=P[9],ot=P[10],ft=P[11],mt=P[12],vt=P[13],pt=P[14],xt=P[15],Rt=w*rt-U*k,Et=w*it-H*k,Pt=w*ct-Y*k,At=U*it-H*rt,Ct=U*ct-Y*rt,zt=H*ct-Y*it,jt=ht*vt-at*mt,Ut=ht*pt-ot*mt,$t=ht*xt-ft*mt,Gt=at*pt-ot*vt,Ht=at*xt-ft*vt,Vt=ot*xt-ft*pt,bt=Rt*Vt-Et*Ht+Pt*Gt+At*$t-Ct*Ut+zt*jt;return bt?(bt=1/bt,S[0]=(rt*Vt-it*Ht+ct*Gt)*bt,S[1]=(H*Ht-U*Vt-Y*Gt)*bt,S[2]=(vt*zt-pt*Ct+xt*At)*bt,S[3]=(ot*Ct-at*zt-ft*At)*bt,S[4]=(it*$t-k*Vt-ct*Ut)*bt,S[5]=(w*Vt-H*$t+Y*Ut)*bt,S[6]=(pt*Pt-mt*zt-xt*Et)*bt,S[7]=(ht*zt-ot*Pt+ft*Et)*bt,S[8]=(k*Ht-rt*$t+ct*jt)*bt,S[9]=(U*$t-w*Ht-Y*jt)*bt,S[10]=(mt*Ct-vt*Pt+xt*Rt)*bt,S[11]=(at*Pt-ht*Ct-ft*Rt)*bt,S[12]=(rt*Ut-k*Gt-it*jt)*bt,S[13]=(w*Gt-U*Ut+H*jt)*bt,S[14]=(vt*Et-mt*At-pt*Rt)*bt,S[15]=(ht*At-at*Et+ot*Rt)*bt,S):null}function p(S,P){var w=P[0],U=P[1],H=P[2],Y=P[3],k=P[4],rt=P[5],it=P[6],ct=P[7],ht=P[8],at=P[9],ot=P[10],ft=P[11],mt=P[12],vt=P[13],pt=P[14],xt=P[15];return S[0]=rt*(ot*xt-ft*pt)-at*(it*xt-ct*pt)+vt*(it*ft-ct*ot),S[1]=-(U*(ot*xt-ft*pt)-at*(H*xt-Y*pt)+vt*(H*ft-Y*ot)),S[2]=U*(it*xt-ct*pt)-rt*(H*xt-Y*pt)+vt*(H*ct-Y*it),S[3]=-(U*(it*ft-ct*ot)-rt*(H*ft-Y*ot)+at*(H*ct-Y*it)),S[4]=-(k*(ot*xt-ft*pt)-ht*(it*xt-ct*pt)+mt*(it*ft-ct*ot)),S[5]=w*(ot*xt-ft*pt)-ht*(H*xt-Y*pt)+mt*(H*ft-Y*ot),S[6]=-(w*(it*xt-ct*pt)-k*(H*xt-Y*pt)+mt*(H*ct-Y*it)),S[7]=w*(it*ft-ct*ot)-k*(H*ft-Y*ot)+ht*(H*ct-Y*it),S[8]=k*(at*xt-ft*vt)-ht*(rt*xt-ct*vt)+mt*(rt*ft-ct*at),S[9]=-(w*(at*xt-ft*vt)-ht*(U*xt-Y*vt)+mt*(U*ft-Y*at)),S[10]=w*(rt*xt-ct*vt)-k*(U*xt-Y*vt)+mt*(U*ct-Y*rt),S[11]=-(w*(rt*ft-ct*at)-k*(U*ft-Y*at)+ht*(U*ct-Y*rt)),S[12]=-(k*(at*pt-ot*vt)-ht*(rt*pt-it*vt)+mt*(rt*ot-it*at)),S[13]=w*(at*pt-ot*vt)-ht*(U*pt-H*vt)+mt*(U*ot-H*at),S[14]=-(w*(rt*pt-it*vt)-k*(U*pt-H*vt)+mt*(U*it-H*rt)),S[15]=w*(rt*ot-it*at)-k*(U*ot-H*at)+ht*(U*it-H*rt),S}function y(S){var P=S[0],w=S[1],U=S[2],H=S[3],Y=S[4],k=S[5],rt=S[6],it=S[7],ct=S[8],ht=S[9],at=S[10],ot=S[11],ft=S[12],mt=S[13],vt=S[14],pt=S[15],xt=P*k-w*Y,Rt=P*rt-U*Y,Et=P*it-H*Y,Pt=w*rt-U*k,At=w*it-H*k,Ct=U*it-H*rt,zt=ct*mt-ht*ft,jt=ct*vt-at*ft,Ut=ct*pt-ot*ft,$t=ht*vt-at*mt,Gt=ht*pt-ot*mt,Ht=at*pt-ot*vt;return xt*Ht-Rt*Gt+Et*$t+Pt*Ut-At*jt+Ct*zt}function O(S,P,w){var U=P[0],H=P[1],Y=P[2],k=P[3],rt=P[4],it=P[5],ct=P[6],ht=P[7],at=P[8],ot=P[9],ft=P[10],mt=P[11],vt=P[12],pt=P[13],xt=P[14],Rt=P[15],Et=w[0],Pt=w[1],At=w[2],Ct=w[3];return S[0]=Et*U+Pt*rt+At*at+Ct*vt,S[1]=Et*H+Pt*it+At*ot+Ct*pt,S[2]=Et*Y+Pt*ct+At*ft+Ct*xt,S[3]=Et*k+Pt*ht+At*mt+Ct*Rt,Et=w[4],Pt=w[5],At=w[6],Ct=w[7],S[4]=Et*U+Pt*rt+At*at+Ct*vt,S[5]=Et*H+Pt*it+At*ot+Ct*pt,S[6]=Et*Y+Pt*ct+At*ft+Ct*xt,S[7]=Et*k+Pt*ht+At*mt+Ct*Rt,Et=w[8],Pt=w[9],At=w[10],Ct=w[11],S[8]=Et*U+Pt*rt+At*at+Ct*vt,S[9]=Et*H+Pt*it+At*ot+Ct*pt,S[10]=Et*Y+Pt*ct+At*ft+Ct*xt,S[11]=Et*k+Pt*ht+At*mt+Ct*Rt,Et=w[12],Pt=w[13],At=w[14],Ct=w[15],S[12]=Et*U+Pt*rt+At*at+Ct*vt,S[13]=Et*H+Pt*it+At*ot+Ct*pt,S[14]=Et*Y+Pt*ct+At*ft+Ct*xt,S[15]=Et*k+Pt*ht+At*mt+Ct*Rt,S}function x(S,P,w){var U=w[0],H=w[1],Y=w[2],k,rt,it,ct,ht,at,ot,ft,mt,vt,pt,xt;return P===S?(S[12]=P[0]*U+P[4]*H+P[8]*Y+P[12],S[13]=P[1]*U+P[5]*H+P[9]*Y+P[13],S[14]=P[2]*U+P[6]*H+P[10]*Y+P[14],S[15]=P[3]*U+P[7]*H+P[11]*Y+P[15]):(k=P[0],rt=P[1],it=P[2],ct=P[3],ht=P[4],at=P[5],ot=P[6],ft=P[7],mt=P[8],vt=P[9],pt=P[10],xt=P[11],S[0]=k,S[1]=rt,S[2]=it,S[3]=ct,S[4]=ht,S[5]=at,S[6]=ot,S[7]=ft,S[8]=mt,S[9]=vt,S[10]=pt,S[11]=xt,S[12]=k*U+ht*H+mt*Y+P[12],S[13]=rt*U+at*H+vt*Y+P[13],S[14]=it*U+ot*H+pt*Y+P[14],S[15]=ct*U+ft*H+xt*Y+P[15]),S}function v(S,P,w){var U=w[0],H=w[1],Y=w[2];return S[0]=P[0]*U,S[1]=P[1]*U,S[2]=P[2]*U,S[3]=P[3]*U,S[4]=P[4]*H,S[5]=P[5]*H,S[6]=P[6]*H,S[7]=P[7]*H,S[8]=P[8]*Y,S[9]=P[9]*Y,S[10]=P[10]*Y,S[11]=P[11]*Y,S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15],S}function T(S,P,w,U){var H=U[0],Y=U[1],k=U[2],rt=Math.hypot(H,Y,k),it,ct,ht,at,ot,ft,mt,vt,pt,xt,Rt,Et,Pt,At,Ct,zt,jt,Ut,$t,Gt,Ht,Vt,bt,te;return rt<e.EPSILON?null:(rt=1/rt,H*=rt,Y*=rt,k*=rt,it=Math.sin(w),ct=Math.cos(w),ht=1-ct,at=P[0],ot=P[1],ft=P[2],mt=P[3],vt=P[4],pt=P[5],xt=P[6],Rt=P[7],Et=P[8],Pt=P[9],At=P[10],Ct=P[11],zt=H*H*ht+ct,jt=Y*H*ht+k*it,Ut=k*H*ht-Y*it,$t=H*Y*ht-k*it,Gt=Y*Y*ht+ct,Ht=k*Y*ht+H*it,Vt=H*k*ht+Y*it,bt=Y*k*ht-H*it,te=k*k*ht+ct,S[0]=at*zt+vt*jt+Et*Ut,S[1]=ot*zt+pt*jt+Pt*Ut,S[2]=ft*zt+xt*jt+At*Ut,S[3]=mt*zt+Rt*jt+Ct*Ut,S[4]=at*$t+vt*Gt+Et*Ht,S[5]=ot*$t+pt*Gt+Pt*Ht,S[6]=ft*$t+xt*Gt+At*Ht,S[7]=mt*$t+Rt*Gt+Ct*Ht,S[8]=at*Vt+vt*bt+Et*te,S[9]=ot*Vt+pt*bt+Pt*te,S[10]=ft*Vt+xt*bt+At*te,S[11]=mt*Vt+Rt*bt+Ct*te,P!==S&&(S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15]),S)}function l(S,P,w){var U=Math.sin(w),H=Math.cos(w),Y=P[4],k=P[5],rt=P[6],it=P[7],ct=P[8],ht=P[9],at=P[10],ot=P[11];return P!==S&&(S[0]=P[0],S[1]=P[1],S[2]=P[2],S[3]=P[3],S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15]),S[4]=Y*H+ct*U,S[5]=k*H+ht*U,S[6]=rt*H+at*U,S[7]=it*H+ot*U,S[8]=ct*H-Y*U,S[9]=ht*H-k*U,S[10]=at*H-rt*U,S[11]=ot*H-it*U,S}function h(S,P,w){var U=Math.sin(w),H=Math.cos(w),Y=P[0],k=P[1],rt=P[2],it=P[3],ct=P[8],ht=P[9],at=P[10],ot=P[11];return P!==S&&(S[4]=P[4],S[5]=P[5],S[6]=P[6],S[7]=P[7],S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15]),S[0]=Y*H-ct*U,S[1]=k*H-ht*U,S[2]=rt*H-at*U,S[3]=it*H-ot*U,S[8]=Y*U+ct*H,S[9]=k*U+ht*H,S[10]=rt*U+at*H,S[11]=it*U+ot*H,S}function f(S,P,w){var U=Math.sin(w),H=Math.cos(w),Y=P[0],k=P[1],rt=P[2],it=P[3],ct=P[4],ht=P[5],at=P[6],ot=P[7];return P!==S&&(S[8]=P[8],S[9]=P[9],S[10]=P[10],S[11]=P[11],S[12]=P[12],S[13]=P[13],S[14]=P[14],S[15]=P[15]),S[0]=Y*H+ct*U,S[1]=k*H+ht*U,S[2]=rt*H+at*U,S[3]=it*H+ot*U,S[4]=ct*H-Y*U,S[5]=ht*H-k*U,S[6]=at*H-rt*U,S[7]=ot*H-it*U,S}function g(S,P){return S[0]=1,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=1,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[10]=1,S[11]=0,S[12]=P[0],S[13]=P[1],S[14]=P[2],S[15]=1,S}function M(S,P){return S[0]=P[0],S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=P[1],S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[10]=P[2],S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function A(S,P,w){var U=w[0],H=w[1],Y=w[2],k=Math.hypot(U,H,Y),rt,it,ct;return k<e.EPSILON?null:(k=1/k,U*=k,H*=k,Y*=k,rt=Math.sin(P),it=Math.cos(P),ct=1-it,S[0]=U*U*ct+it,S[1]=H*U*ct+Y*rt,S[2]=Y*U*ct-H*rt,S[3]=0,S[4]=U*H*ct-Y*rt,S[5]=H*H*ct+it,S[6]=Y*H*ct+U*rt,S[7]=0,S[8]=U*Y*ct+H*rt,S[9]=H*Y*ct-U*rt,S[10]=Y*Y*ct+it,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S)}function C(S,P){var w=Math.sin(P),U=Math.cos(P);return S[0]=1,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=U,S[6]=w,S[7]=0,S[8]=0,S[9]=-w,S[10]=U,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function b(S,P){var w=Math.sin(P),U=Math.cos(P);return S[0]=U,S[1]=0,S[2]=-w,S[3]=0,S[4]=0,S[5]=1,S[6]=0,S[7]=0,S[8]=w,S[9]=0,S[10]=U,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function E(S,P){var w=Math.sin(P),U=Math.cos(P);return S[0]=U,S[1]=w,S[2]=0,S[3]=0,S[4]=-w,S[5]=U,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[10]=1,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function L(S,P,w){var U=P[0],H=P[1],Y=P[2],k=P[3],rt=U+U,it=H+H,ct=Y+Y,ht=U*rt,at=U*it,ot=U*ct,ft=H*it,mt=H*ct,vt=Y*ct,pt=k*rt,xt=k*it,Rt=k*ct;return S[0]=1-(ft+vt),S[1]=at+Rt,S[2]=ot-xt,S[3]=0,S[4]=at-Rt,S[5]=1-(ht+vt),S[6]=mt+pt,S[7]=0,S[8]=ot+xt,S[9]=mt-pt,S[10]=1-(ht+ft),S[11]=0,S[12]=w[0],S[13]=w[1],S[14]=w[2],S[15]=1,S}function D(S,P){var w=new e.ARRAY_TYPE(3),U=-P[0],H=-P[1],Y=-P[2],k=P[3],rt=P[4],it=P[5],ct=P[6],ht=P[7],at=U*U+H*H+Y*Y+k*k;return at>0?(w[0]=(rt*k+ht*U+it*Y-ct*H)*2/at,w[1]=(it*k+ht*H+ct*U-rt*Y)*2/at,w[2]=(ct*k+ht*Y+rt*H-it*U)*2/at):(w[0]=(rt*k+ht*U+it*Y-ct*H)*2,w[1]=(it*k+ht*H+ct*U-rt*Y)*2,w[2]=(ct*k+ht*Y+rt*H-it*U)*2),L(S,P,w),S}function I(S,P){return S[0]=P[12],S[1]=P[13],S[2]=P[14],S}function R(S,P){var w=P[0],U=P[1],H=P[2],Y=P[4],k=P[5],rt=P[6],it=P[8],ct=P[9],ht=P[10];return S[0]=Math.hypot(w,U,H),S[1]=Math.hypot(Y,k,rt),S[2]=Math.hypot(it,ct,ht),S}function B(S,P){var w=new e.ARRAY_TYPE(3);R(w,P);var U=1/w[0],H=1/w[1],Y=1/w[2],k=P[0]*U,rt=P[1]*H,it=P[2]*Y,ct=P[4]*U,ht=P[5]*H,at=P[6]*Y,ot=P[8]*U,ft=P[9]*H,mt=P[10]*Y,vt=k+ht+mt,pt=0;return vt>0?(pt=Math.sqrt(vt+1)*2,S[3]=.25*pt,S[0]=(at-ft)/pt,S[1]=(ot-it)/pt,S[2]=(rt-ct)/pt):k>ht&&k>mt?(pt=Math.sqrt(1+k-ht-mt)*2,S[3]=(at-ft)/pt,S[0]=.25*pt,S[1]=(rt+ct)/pt,S[2]=(ot+it)/pt):ht>mt?(pt=Math.sqrt(1+ht-k-mt)*2,S[3]=(ot-it)/pt,S[0]=(rt+ct)/pt,S[1]=.25*pt,S[2]=(at+ft)/pt):(pt=Math.sqrt(1+mt-k-ht)*2,S[3]=(rt-ct)/pt,S[0]=(ot+it)/pt,S[1]=(at+ft)/pt,S[2]=.25*pt),S}function z(S,P,w,U){var H=P[0],Y=P[1],k=P[2],rt=P[3],it=H+H,ct=Y+Y,ht=k+k,at=H*it,ot=H*ct,ft=H*ht,mt=Y*ct,vt=Y*ht,pt=k*ht,xt=rt*it,Rt=rt*ct,Et=rt*ht,Pt=U[0],At=U[1],Ct=U[2];return S[0]=(1-(mt+pt))*Pt,S[1]=(ot+Et)*Pt,S[2]=(ft-Rt)*Pt,S[3]=0,S[4]=(ot-Et)*At,S[5]=(1-(at+pt))*At,S[6]=(vt+xt)*At,S[7]=0,S[8]=(ft+Rt)*Ct,S[9]=(vt-xt)*Ct,S[10]=(1-(at+mt))*Ct,S[11]=0,S[12]=w[0],S[13]=w[1],S[14]=w[2],S[15]=1,S}function K(S,P,w,U,H){var Y=P[0],k=P[1],rt=P[2],it=P[3],ct=Y+Y,ht=k+k,at=rt+rt,ot=Y*ct,ft=Y*ht,mt=Y*at,vt=k*ht,pt=k*at,xt=rt*at,Rt=it*ct,Et=it*ht,Pt=it*at,At=U[0],Ct=U[1],zt=U[2],jt=H[0],Ut=H[1],$t=H[2],Gt=(1-(vt+xt))*At,Ht=(ft+Pt)*At,Vt=(mt-Et)*At,bt=(ft-Pt)*Ct,te=(1-(ot+xt))*Ct,Ie=(pt+Rt)*Ct,Le=(mt+Et)*zt,_n=(pt-Rt)*zt,ti=(1-(ot+vt))*zt;return S[0]=Gt,S[1]=Ht,S[2]=Vt,S[3]=0,S[4]=bt,S[5]=te,S[6]=Ie,S[7]=0,S[8]=Le,S[9]=_n,S[10]=ti,S[11]=0,S[12]=w[0]+jt-(Gt*jt+bt*Ut+Le*$t),S[13]=w[1]+Ut-(Ht*jt+te*Ut+_n*$t),S[14]=w[2]+$t-(Vt*jt+Ie*Ut+ti*$t),S[15]=1,S}function Q(S,P){var w=P[0],U=P[1],H=P[2],Y=P[3],k=w+w,rt=U+U,it=H+H,ct=w*k,ht=U*k,at=U*rt,ot=H*k,ft=H*rt,mt=H*it,vt=Y*k,pt=Y*rt,xt=Y*it;return S[0]=1-at-mt,S[1]=ht+xt,S[2]=ot-pt,S[3]=0,S[4]=ht-xt,S[5]=1-ct-mt,S[6]=ft+vt,S[7]=0,S[8]=ot+pt,S[9]=ft-vt,S[10]=1-ct-at,S[11]=0,S[12]=0,S[13]=0,S[14]=0,S[15]=1,S}function _(S,P,w,U,H,Y,k){var rt=1/(w-P),it=1/(H-U),ct=1/(Y-k);return S[0]=Y*2*rt,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=Y*2*it,S[6]=0,S[7]=0,S[8]=(w+P)*rt,S[9]=(H+U)*it,S[10]=(k+Y)*ct,S[11]=-1,S[12]=0,S[13]=0,S[14]=k*Y*2*ct,S[15]=0,S}function j(S,P,w,U,H){var Y=1/Math.tan(P/2),k;return S[0]=Y/w,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=Y,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[11]=-1,S[12]=0,S[13]=0,S[15]=0,H!=null&&H!==1/0?(k=1/(U-H),S[10]=(H+U)*k,S[14]=2*H*U*k):(S[10]=-1,S[14]=-2*U),S}function G(S,P,w,U){var H=Math.tan(P.upDegrees*Math.PI/180),Y=Math.tan(P.downDegrees*Math.PI/180),k=Math.tan(P.leftDegrees*Math.PI/180),rt=Math.tan(P.rightDegrees*Math.PI/180),it=2/(k+rt),ct=2/(H+Y);return S[0]=it,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=ct,S[6]=0,S[7]=0,S[8]=-((k-rt)*it*.5),S[9]=(H-Y)*ct*.5,S[10]=U/(w-U),S[11]=-1,S[12]=0,S[13]=0,S[14]=U*w/(w-U),S[15]=0,S}function X(S,P,w,U,H,Y,k){var rt=1/(P-w),it=1/(U-H),ct=1/(Y-k);return S[0]=-2*rt,S[1]=0,S[2]=0,S[3]=0,S[4]=0,S[5]=-2*it,S[6]=0,S[7]=0,S[8]=0,S[9]=0,S[10]=2*ct,S[11]=0,S[12]=(P+w)*rt,S[13]=(H+U)*it,S[14]=(k+Y)*ct,S[15]=1,S}function Z(S,P,w,U){var H,Y,k,rt,it,ct,ht,at,ot,ft,mt=P[0],vt=P[1],pt=P[2],xt=U[0],Rt=U[1],Et=U[2],Pt=w[0],At=w[1],Ct=w[2];return Math.abs(mt-Pt)<e.EPSILON&&Math.abs(vt-At)<e.EPSILON&&Math.abs(pt-Ct)<e.EPSILON?c(S):(ht=mt-Pt,at=vt-At,ot=pt-Ct,ft=1/Math.hypot(ht,at,ot),ht*=ft,at*=ft,ot*=ft,H=Rt*ot-Et*at,Y=Et*ht-xt*ot,k=xt*at-Rt*ht,ft=Math.hypot(H,Y,k),ft?(ft=1/ft,H*=ft,Y*=ft,k*=ft):(H=0,Y=0,k=0),rt=at*k-ot*Y,it=ot*H-ht*k,ct=ht*Y-at*H,ft=Math.hypot(rt,it,ct),ft?(ft=1/ft,rt*=ft,it*=ft,ct*=ft):(rt=0,it=0,ct=0),S[0]=H,S[1]=rt,S[2]=ht,S[3]=0,S[4]=Y,S[5]=it,S[6]=at,S[7]=0,S[8]=k,S[9]=ct,S[10]=ot,S[11]=0,S[12]=-(H*mt+Y*vt+k*pt),S[13]=-(rt*mt+it*vt+ct*pt),S[14]=-(ht*mt+at*vt+ot*pt),S[15]=1,S)}function tt(S,P,w,U){var H=P[0],Y=P[1],k=P[2],rt=U[0],it=U[1],ct=U[2],ht=H-w[0],at=Y-w[1],ot=k-w[2],ft=ht*ht+at*at+ot*ot;ft>0&&(ft=1/Math.sqrt(ft),ht*=ft,at*=ft,ot*=ft);var mt=it*ot-ct*at,vt=ct*ht-rt*ot,pt=rt*at-it*ht;return ft=mt*mt+vt*vt+pt*pt,ft>0&&(ft=1/Math.sqrt(ft),mt*=ft,vt*=ft,pt*=ft),S[0]=mt,S[1]=vt,S[2]=pt,S[3]=0,S[4]=at*pt-ot*vt,S[5]=ot*mt-ht*pt,S[6]=ht*vt-at*mt,S[7]=0,S[8]=ht,S[9]=at,S[10]=ot,S[11]=0,S[12]=H,S[13]=Y,S[14]=k,S[15]=1,S}function nt(S){return"mat4("+S[0]+", "+S[1]+", "+S[2]+", "+S[3]+", "+S[4]+", "+S[5]+", "+S[6]+", "+S[7]+", "+S[8]+", "+S[9]+", "+S[10]+", "+S[11]+", "+S[12]+", "+S[13]+", "+S[14]+", "+S[15]+")"}function q(S){return Math.hypot(S[0],S[1],S[2],S[3],S[4],S[5],S[6],S[7],S[8],S[9],S[10],S[11],S[12],S[13],S[14],S[15])}function dt(S,P,w){return S[0]=P[0]+w[0],S[1]=P[1]+w[1],S[2]=P[2]+w[2],S[3]=P[3]+w[3],S[4]=P[4]+w[4],S[5]=P[5]+w[5],S[6]=P[6]+w[6],S[7]=P[7]+w[7],S[8]=P[8]+w[8],S[9]=P[9]+w[9],S[10]=P[10]+w[10],S[11]=P[11]+w[11],S[12]=P[12]+w[12],S[13]=P[13]+w[13],S[14]=P[14]+w[14],S[15]=P[15]+w[15],S}function ut(S,P,w){return S[0]=P[0]-w[0],S[1]=P[1]-w[1],S[2]=P[2]-w[2],S[3]=P[3]-w[3],S[4]=P[4]-w[4],S[5]=P[5]-w[5],S[6]=P[6]-w[6],S[7]=P[7]-w[7],S[8]=P[8]-w[8],S[9]=P[9]-w[9],S[10]=P[10]-w[10],S[11]=P[11]-w[11],S[12]=P[12]-w[12],S[13]=P[13]-w[13],S[14]=P[14]-w[14],S[15]=P[15]-w[15],S}function W(S,P,w){return S[0]=P[0]*w,S[1]=P[1]*w,S[2]=P[2]*w,S[3]=P[3]*w,S[4]=P[4]*w,S[5]=P[5]*w,S[6]=P[6]*w,S[7]=P[7]*w,S[8]=P[8]*w,S[9]=P[9]*w,S[10]=P[10]*w,S[11]=P[11]*w,S[12]=P[12]*w,S[13]=P[13]*w,S[14]=P[14]*w,S[15]=P[15]*w,S}function F(S,P,w,U){return S[0]=P[0]+w[0]*U,S[1]=P[1]+w[1]*U,S[2]=P[2]+w[2]*U,S[3]=P[3]+w[3]*U,S[4]=P[4]+w[4]*U,S[5]=P[5]+w[5]*U,S[6]=P[6]+w[6]*U,S[7]=P[7]+w[7]*U,S[8]=P[8]+w[8]*U,S[9]=P[9]+w[9]*U,S[10]=P[10]+w[10]*U,S[11]=P[11]+w[11]*U,S[12]=P[12]+w[12]*U,S[13]=P[13]+w[13]*U,S[14]=P[14]+w[14]*U,S[15]=P[15]+w[15]*U,S}function V(S,P){return S[0]===P[0]&&S[1]===P[1]&&S[2]===P[2]&&S[3]===P[3]&&S[4]===P[4]&&S[5]===P[5]&&S[6]===P[6]&&S[7]===P[7]&&S[8]===P[8]&&S[9]===P[9]&&S[10]===P[10]&&S[11]===P[11]&&S[12]===P[12]&&S[13]===P[13]&&S[14]===P[14]&&S[15]===P[15]}function J(S,P){var w=S[0],U=S[1],H=S[2],Y=S[3],k=S[4],rt=S[5],it=S[6],ct=S[7],ht=S[8],at=S[9],ot=S[10],ft=S[11],mt=S[12],vt=S[13],pt=S[14],xt=S[15],Rt=P[0],Et=P[1],Pt=P[2],At=P[3],Ct=P[4],zt=P[5],jt=P[6],Ut=P[7],$t=P[8],Gt=P[9],Ht=P[10],Vt=P[11],bt=P[12],te=P[13],Ie=P[14],Le=P[15];return Math.abs(w-Rt)<=e.EPSILON*Math.max(1,Math.abs(w),Math.abs(Rt))&&Math.abs(U-Et)<=e.EPSILON*Math.max(1,Math.abs(U),Math.abs(Et))&&Math.abs(H-Pt)<=e.EPSILON*Math.max(1,Math.abs(H),Math.abs(Pt))&&Math.abs(Y-At)<=e.EPSILON*Math.max(1,Math.abs(Y),Math.abs(At))&&Math.abs(k-Ct)<=e.EPSILON*Math.max(1,Math.abs(k),Math.abs(Ct))&&Math.abs(rt-zt)<=e.EPSILON*Math.max(1,Math.abs(rt),Math.abs(zt))&&Math.abs(it-jt)<=e.EPSILON*Math.max(1,Math.abs(it),Math.abs(jt))&&Math.abs(ct-Ut)<=e.EPSILON*Math.max(1,Math.abs(ct),Math.abs(Ut))&&Math.abs(ht-$t)<=e.EPSILON*Math.max(1,Math.abs(ht),Math.abs($t))&&Math.abs(at-Gt)<=e.EPSILON*Math.max(1,Math.abs(at),Math.abs(Gt))&&Math.abs(ot-Ht)<=e.EPSILON*Math.max(1,Math.abs(ot),Math.abs(Ht))&&Math.abs(ft-Vt)<=e.EPSILON*Math.max(1,Math.abs(ft),Math.abs(Vt))&&Math.abs(mt-bt)<=e.EPSILON*Math.max(1,Math.abs(mt),Math.abs(bt))&&Math.abs(vt-te)<=e.EPSILON*Math.max(1,Math.abs(vt),Math.abs(te))&&Math.abs(pt-Ie)<=e.EPSILON*Math.max(1,Math.abs(pt),Math.abs(Ie))&&Math.abs(xt-Le)<=e.EPSILON*Math.max(1,Math.abs(xt),Math.abs(Le))}var N=O,$=ut},function(d,r,t){t.r(r),t.d(r,"create",function(){return i}),t.d(r,"identity",function(){return o}),t.d(r,"setAxisAngle",function(){return c}),t.d(r,"getAxisAngle",function(){return m}),t.d(r,"getAngle",function(){return u}),t.d(r,"multiply",function(){return p}),t.d(r,"rotateX",function(){return y}),t.d(r,"rotateY",function(){return O}),t.d(r,"rotateZ",function(){return x}),t.d(r,"calculateW",function(){return v}),t.d(r,"exp",function(){return T}),t.d(r,"ln",function(){return l}),t.d(r,"pow",function(){return h}),t.d(r,"slerp",function(){return f}),t.d(r,"random",function(){return g}),t.d(r,"invert",function(){return M}),t.d(r,"conjugate",function(){return A}),t.d(r,"fromMat3",function(){return C}),t.d(r,"fromEuler",function(){return b}),t.d(r,"str",function(){return E}),t.d(r,"clone",function(){return L}),t.d(r,"fromValues",function(){return D}),t.d(r,"copy",function(){return I}),t.d(r,"set",function(){return R}),t.d(r,"add",function(){return B}),t.d(r,"mul",function(){return z}),t.d(r,"scale",function(){return K}),t.d(r,"dot",function(){return Q}),t.d(r,"lerp",function(){return _}),t.d(r,"length",function(){return j}),t.d(r,"len",function(){return G}),t.d(r,"squaredLength",function(){return X}),t.d(r,"sqrLen",function(){return Z}),t.d(r,"normalize",function(){return tt}),t.d(r,"exactEquals",function(){return nt}),t.d(r,"equals",function(){return q}),t.d(r,"rotationTo",function(){return dt}),t.d(r,"sqlerp",function(){return ut}),t.d(r,"setAxes",function(){return W});var e=t(2),n=t(5),a=t(8),s=t(9);function i(){var F=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(F[0]=0,F[1]=0,F[2]=0),F[3]=1,F}function o(F){return F[0]=0,F[1]=0,F[2]=0,F[3]=1,F}function c(F,V,J){J=J*.5;var N=Math.sin(J);return F[0]=N*V[0],F[1]=N*V[1],F[2]=N*V[2],F[3]=Math.cos(J),F}function m(F,V){var J=Math.acos(V[3])*2,N=Math.sin(J/2);return N>e.EPSILON?(F[0]=V[0]/N,F[1]=V[1]/N,F[2]=V[2]/N):(F[0]=1,F[1]=0,F[2]=0),J}function u(F,V){var J=Q(F,V);return Math.acos(2*J*J-1)}function p(F,V,J){var N=V[0],$=V[1],S=V[2],P=V[3],w=J[0],U=J[1],H=J[2],Y=J[3];return F[0]=N*Y+P*w+$*H-S*U,F[1]=$*Y+P*U+S*w-N*H,F[2]=S*Y+P*H+N*U-$*w,F[3]=P*Y-N*w-$*U-S*H,F}function y(F,V,J){J*=.5;var N=V[0],$=V[1],S=V[2],P=V[3],w=Math.sin(J),U=Math.cos(J);return F[0]=N*U+P*w,F[1]=$*U+S*w,F[2]=S*U-$*w,F[3]=P*U-N*w,F}function O(F,V,J){J*=.5;var N=V[0],$=V[1],S=V[2],P=V[3],w=Math.sin(J),U=Math.cos(J);return F[0]=N*U-S*w,F[1]=$*U+P*w,F[2]=S*U+N*w,F[3]=P*U-$*w,F}function x(F,V,J){J*=.5;var N=V[0],$=V[1],S=V[2],P=V[3],w=Math.sin(J),U=Math.cos(J);return F[0]=N*U+$*w,F[1]=$*U-N*w,F[2]=S*U+P*w,F[3]=P*U-S*w,F}function v(F,V){var J=V[0],N=V[1],$=V[2];return F[0]=J,F[1]=N,F[2]=$,F[3]=Math.sqrt(Math.abs(1-J*J-N*N-$*$)),F}function T(F,V){var J=V[0],N=V[1],$=V[2],S=V[3],P=Math.sqrt(J*J+N*N+$*$),w=Math.exp(S),U=P>0?w*Math.sin(P)/P:0;return F[0]=J*U,F[1]=N*U,F[2]=$*U,F[3]=w*Math.cos(P),F}function l(F,V){var J=V[0],N=V[1],$=V[2],S=V[3],P=Math.sqrt(J*J+N*N+$*$),w=P>0?Math.atan2(P,S)/P:0;return F[0]=J*w,F[1]=N*w,F[2]=$*w,F[3]=.5*Math.log(J*J+N*N+$*$+S*S),F}function h(F,V,J){return l(F,V),K(F,F,J),T(F,F),F}function f(F,V,J,N){var $=V[0],S=V[1],P=V[2],w=V[3],U=J[0],H=J[1],Y=J[2],k=J[3],rt,it,ct,ht,at;return it=$*U+S*H+P*Y+w*k,it<0&&(it=-it,U=-U,H=-H,Y=-Y,k=-k),1-it>e.EPSILON?(rt=Math.acos(it),ct=Math.sin(rt),ht=Math.sin((1-N)*rt)/ct,at=Math.sin(N*rt)/ct):(ht=1-N,at=N),F[0]=ht*$+at*U,F[1]=ht*S+at*H,F[2]=ht*P+at*Y,F[3]=ht*w+at*k,F}function g(F){var V=e.RANDOM(),J=e.RANDOM(),N=e.RANDOM(),$=Math.sqrt(1-V),S=Math.sqrt(V);return F[0]=$*Math.sin(2*Math.PI*J),F[1]=$*Math.cos(2*Math.PI*J),F[2]=S*Math.sin(2*Math.PI*N),F[3]=S*Math.cos(2*Math.PI*N),F}function M(F,V){var J=V[0],N=V[1],$=V[2],S=V[3],P=J*J+N*N+$*$+S*S,w=P?1/P:0;return F[0]=-J*w,F[1]=-N*w,F[2]=-$*w,F[3]=S*w,F}function A(F,V){return F[0]=-V[0],F[1]=-V[1],F[2]=-V[2],F[3]=V[3],F}function C(F,V){var J=V[0]+V[4]+V[8],N;if(J>0)N=Math.sqrt(J+1),F[3]=.5*N,N=.5/N,F[0]=(V[5]-V[7])*N,F[1]=(V[6]-V[2])*N,F[2]=(V[1]-V[3])*N;else{var $=0;V[4]>V[0]&&($=1),V[8]>V[$*3+$]&&($=2);var S=($+1)%3,P=($+2)%3;N=Math.sqrt(V[$*3+$]-V[S*3+S]-V[P*3+P]+1),F[$]=.5*N,N=.5/N,F[3]=(V[S*3+P]-V[P*3+S])*N,F[S]=(V[S*3+$]+V[$*3+S])*N,F[P]=(V[P*3+$]+V[$*3+P])*N}return F}function b(F,V,J,N){var $=.5*Math.PI/180;V*=$,J*=$,N*=$;var S=Math.sin(V),P=Math.cos(V),w=Math.sin(J),U=Math.cos(J),H=Math.sin(N),Y=Math.cos(N);return F[0]=S*U*Y-P*w*H,F[1]=P*w*Y+S*U*H,F[2]=P*U*H-S*w*Y,F[3]=P*U*Y+S*w*H,F}function E(F){return"quat("+F[0]+", "+F[1]+", "+F[2]+", "+F[3]+")"}var L=s.clone,D=s.fromValues,I=s.copy,R=s.set,B=s.add,z=p,K=s.scale,Q=s.dot,_=s.lerp,j=s.length,G=j,X=s.squaredLength,Z=X,tt=s.normalize,nt=s.exactEquals,q=s.equals,dt=function(){var F=a.create(),V=a.fromValues(1,0,0),J=a.fromValues(0,1,0);return function(N,$,S){var P=a.dot($,S);return P<-.999999?(a.cross(F,V,$),a.len(F)<1e-6&&a.cross(F,J,$),a.normalize(F,F),c(N,F,Math.PI),N):P>.999999?(N[0]=0,N[1]=0,N[2]=0,N[3]=1,N):(a.cross(F,$,S),N[0]=F[0],N[1]=F[1],N[2]=F[2],N[3]=1+P,tt(N,N))}}(),ut=function(){var F=i(),V=i();return function(J,N,$,S,P,w){return f(F,N,P,w),f(V,$,S,w),f(J,F,V,2*w*(1-w)),J}}(),W=function(){var F=n.create();return function(V,J,N,$){return F[0]=N[0],F[3]=N[1],F[6]=N[2],F[1]=$[0],F[4]=$[1],F[7]=$[2],F[2]=-J[0],F[5]=-J[1],F[8]=-J[2],tt(V,C(V,F))}}()},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return a}),t.d(r,"length",function(){return s}),t.d(r,"fromValues",function(){return i}),t.d(r,"copy",function(){return o}),t.d(r,"set",function(){return c}),t.d(r,"add",function(){return m}),t.d(r,"subtract",function(){return u}),t.d(r,"multiply",function(){return p}),t.d(r,"divide",function(){return y}),t.d(r,"ceil",function(){return O}),t.d(r,"floor",function(){return x}),t.d(r,"min",function(){return v}),t.d(r,"max",function(){return T}),t.d(r,"round",function(){return l}),t.d(r,"scale",function(){return h}),t.d(r,"scaleAndAdd",function(){return f}),t.d(r,"distance",function(){return g}),t.d(r,"squaredDistance",function(){return M}),t.d(r,"squaredLength",function(){return A}),t.d(r,"negate",function(){return C}),t.d(r,"inverse",function(){return b}),t.d(r,"normalize",function(){return E}),t.d(r,"dot",function(){return L}),t.d(r,"cross",function(){return D}),t.d(r,"lerp",function(){return I}),t.d(r,"hermite",function(){return R}),t.d(r,"bezier",function(){return B}),t.d(r,"random",function(){return z}),t.d(r,"transformMat4",function(){return K}),t.d(r,"transformMat3",function(){return Q}),t.d(r,"transformQuat",function(){return _}),t.d(r,"rotateX",function(){return j}),t.d(r,"rotateY",function(){return G}),t.d(r,"rotateZ",function(){return X}),t.d(r,"angle",function(){return Z}),t.d(r,"zero",function(){return tt}),t.d(r,"str",function(){return nt}),t.d(r,"exactEquals",function(){return q}),t.d(r,"equals",function(){return dt}),t.d(r,"sub",function(){return ut}),t.d(r,"mul",function(){return W}),t.d(r,"div",function(){return F}),t.d(r,"dist",function(){return V}),t.d(r,"sqrDist",function(){return J}),t.d(r,"len",function(){return N}),t.d(r,"sqrLen",function(){return $}),t.d(r,"forEach",function(){return S});var e=t(2);function n(){var P=new e.ARRAY_TYPE(3);return e.ARRAY_TYPE!=Float32Array&&(P[0]=0,P[1]=0,P[2]=0),P}function a(P){var w=new e.ARRAY_TYPE(3);return w[0]=P[0],w[1]=P[1],w[2]=P[2],w}function s(P){var w=P[0],U=P[1],H=P[2];return Math.hypot(w,U,H)}function i(P,w,U){var H=new e.ARRAY_TYPE(3);return H[0]=P,H[1]=w,H[2]=U,H}function o(P,w){return P[0]=w[0],P[1]=w[1],P[2]=w[2],P}function c(P,w,U,H){return P[0]=w,P[1]=U,P[2]=H,P}function m(P,w,U){return P[0]=w[0]+U[0],P[1]=w[1]+U[1],P[2]=w[2]+U[2],P}function u(P,w,U){return P[0]=w[0]-U[0],P[1]=w[1]-U[1],P[2]=w[2]-U[2],P}function p(P,w,U){return P[0]=w[0]*U[0],P[1]=w[1]*U[1],P[2]=w[2]*U[2],P}function y(P,w,U){return P[0]=w[0]/U[0],P[1]=w[1]/U[1],P[2]=w[2]/U[2],P}function O(P,w){return P[0]=Math.ceil(w[0]),P[1]=Math.ceil(w[1]),P[2]=Math.ceil(w[2]),P}function x(P,w){return P[0]=Math.floor(w[0]),P[1]=Math.floor(w[1]),P[2]=Math.floor(w[2]),P}function v(P,w,U){return P[0]=Math.min(w[0],U[0]),P[1]=Math.min(w[1],U[1]),P[2]=Math.min(w[2],U[2]),P}function T(P,w,U){return P[0]=Math.max(w[0],U[0]),P[1]=Math.max(w[1],U[1]),P[2]=Math.max(w[2],U[2]),P}function l(P,w){return P[0]=Math.round(w[0]),P[1]=Math.round(w[1]),P[2]=Math.round(w[2]),P}function h(P,w,U){return P[0]=w[0]*U,P[1]=w[1]*U,P[2]=w[2]*U,P}function f(P,w,U,H){return P[0]=w[0]+U[0]*H,P[1]=w[1]+U[1]*H,P[2]=w[2]+U[2]*H,P}function g(P,w){var U=w[0]-P[0],H=w[1]-P[1],Y=w[2]-P[2];return Math.hypot(U,H,Y)}function M(P,w){var U=w[0]-P[0],H=w[1]-P[1],Y=w[2]-P[2];return U*U+H*H+Y*Y}function A(P){var w=P[0],U=P[1],H=P[2];return w*w+U*U+H*H}function C(P,w){return P[0]=-w[0],P[1]=-w[1],P[2]=-w[2],P}function b(P,w){return P[0]=1/w[0],P[1]=1/w[1],P[2]=1/w[2],P}function E(P,w){var U=w[0],H=w[1],Y=w[2],k=U*U+H*H+Y*Y;return k>0&&(k=1/Math.sqrt(k)),P[0]=w[0]*k,P[1]=w[1]*k,P[2]=w[2]*k,P}function L(P,w){return P[0]*w[0]+P[1]*w[1]+P[2]*w[2]}function D(P,w,U){var H=w[0],Y=w[1],k=w[2],rt=U[0],it=U[1],ct=U[2];return P[0]=Y*ct-k*it,P[1]=k*rt-H*ct,P[2]=H*it-Y*rt,P}function I(P,w,U,H){var Y=w[0],k=w[1],rt=w[2];return P[0]=Y+H*(U[0]-Y),P[1]=k+H*(U[1]-k),P[2]=rt+H*(U[2]-rt),P}function R(P,w,U,H,Y,k){var rt=k*k,it=rt*(2*k-3)+1,ct=rt*(k-2)+k,ht=rt*(k-1),at=rt*(3-2*k);return P[0]=w[0]*it+U[0]*ct+H[0]*ht+Y[0]*at,P[1]=w[1]*it+U[1]*ct+H[1]*ht+Y[1]*at,P[2]=w[2]*it+U[2]*ct+H[2]*ht+Y[2]*at,P}function B(P,w,U,H,Y,k){var rt=1-k,it=rt*rt,ct=k*k,ht=it*rt,at=3*k*it,ot=3*ct*rt,ft=ct*k;return P[0]=w[0]*ht+U[0]*at+H[0]*ot+Y[0]*ft,P[1]=w[1]*ht+U[1]*at+H[1]*ot+Y[1]*ft,P[2]=w[2]*ht+U[2]*at+H[2]*ot+Y[2]*ft,P}function z(P,w){w=w||1;var U=e.RANDOM()*2*Math.PI,H=e.RANDOM()*2-1,Y=Math.sqrt(1-H*H)*w;return P[0]=Math.cos(U)*Y,P[1]=Math.sin(U)*Y,P[2]=H*w,P}function K(P,w,U){var H=w[0],Y=w[1],k=w[2],rt=U[3]*H+U[7]*Y+U[11]*k+U[15];return rt=rt||1,P[0]=(U[0]*H+U[4]*Y+U[8]*k+U[12])/rt,P[1]=(U[1]*H+U[5]*Y+U[9]*k+U[13])/rt,P[2]=(U[2]*H+U[6]*Y+U[10]*k+U[14])/rt,P}function Q(P,w,U){var H=w[0],Y=w[1],k=w[2];return P[0]=H*U[0]+Y*U[3]+k*U[6],P[1]=H*U[1]+Y*U[4]+k*U[7],P[2]=H*U[2]+Y*U[5]+k*U[8],P}function _(P,w,U){var H=U[0],Y=U[1],k=U[2],rt=U[3],it=w[0],ct=w[1],ht=w[2],at=Y*ht-k*ct,ot=k*it-H*ht,ft=H*ct-Y*it,mt=Y*ft-k*ot,vt=k*at-H*ft,pt=H*ot-Y*at,xt=rt*2;return at*=xt,ot*=xt,ft*=xt,mt*=2,vt*=2,pt*=2,P[0]=it+at+mt,P[1]=ct+ot+vt,P[2]=ht+ft+pt,P}function j(P,w,U,H){var Y=[],k=[];return Y[0]=w[0]-U[0],Y[1]=w[1]-U[1],Y[2]=w[2]-U[2],k[0]=Y[0],k[1]=Y[1]*Math.cos(H)-Y[2]*Math.sin(H),k[2]=Y[1]*Math.sin(H)+Y[2]*Math.cos(H),P[0]=k[0]+U[0],P[1]=k[1]+U[1],P[2]=k[2]+U[2],P}function G(P,w,U,H){var Y=[],k=[];return Y[0]=w[0]-U[0],Y[1]=w[1]-U[1],Y[2]=w[2]-U[2],k[0]=Y[2]*Math.sin(H)+Y[0]*Math.cos(H),k[1]=Y[1],k[2]=Y[2]*Math.cos(H)-Y[0]*Math.sin(H),P[0]=k[0]+U[0],P[1]=k[1]+U[1],P[2]=k[2]+U[2],P}function X(P,w,U,H){var Y=[],k=[];return Y[0]=w[0]-U[0],Y[1]=w[1]-U[1],Y[2]=w[2]-U[2],k[0]=Y[0]*Math.cos(H)-Y[1]*Math.sin(H),k[1]=Y[0]*Math.sin(H)+Y[1]*Math.cos(H),k[2]=Y[2],P[0]=k[0]+U[0],P[1]=k[1]+U[1],P[2]=k[2]+U[2],P}function Z(P,w){var U=P[0],H=P[1],Y=P[2],k=w[0],rt=w[1],it=w[2],ct=Math.sqrt(U*U+H*H+Y*Y),ht=Math.sqrt(k*k+rt*rt+it*it),at=ct*ht,ot=at&&L(P,w)/at;return Math.acos(Math.min(Math.max(ot,-1),1))}function tt(P){return P[0]=0,P[1]=0,P[2]=0,P}function nt(P){return"vec3("+P[0]+", "+P[1]+", "+P[2]+")"}function q(P,w){return P[0]===w[0]&&P[1]===w[1]&&P[2]===w[2]}function dt(P,w){var U=P[0],H=P[1],Y=P[2],k=w[0],rt=w[1],it=w[2];return Math.abs(U-k)<=e.EPSILON*Math.max(1,Math.abs(U),Math.abs(k))&&Math.abs(H-rt)<=e.EPSILON*Math.max(1,Math.abs(H),Math.abs(rt))&&Math.abs(Y-it)<=e.EPSILON*Math.max(1,Math.abs(Y),Math.abs(it))}var ut=u,W=p,F=y,V=g,J=M,N=s,$=A,S=function(){var P=n();return function(w,U,H,Y,k,rt){var it,ct;for(U||(U=3),H||(H=0),Y?ct=Math.min(Y*U+H,w.length):ct=w.length,it=H;it<ct;it+=U)P[0]=w[it],P[1]=w[it+1],P[2]=w[it+2],k(P,P,rt),w[it]=P[0],w[it+1]=P[1],w[it+2]=P[2];return w}}()},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return a}),t.d(r,"fromValues",function(){return s}),t.d(r,"copy",function(){return i}),t.d(r,"set",function(){return o}),t.d(r,"add",function(){return c}),t.d(r,"subtract",function(){return m}),t.d(r,"multiply",function(){return u}),t.d(r,"divide",function(){return p}),t.d(r,"ceil",function(){return y}),t.d(r,"floor",function(){return O}),t.d(r,"min",function(){return x}),t.d(r,"max",function(){return v}),t.d(r,"round",function(){return T}),t.d(r,"scale",function(){return l}),t.d(r,"scaleAndAdd",function(){return h}),t.d(r,"distance",function(){return f}),t.d(r,"squaredDistance",function(){return g}),t.d(r,"length",function(){return M}),t.d(r,"squaredLength",function(){return A}),t.d(r,"negate",function(){return C}),t.d(r,"inverse",function(){return b}),t.d(r,"normalize",function(){return E}),t.d(r,"dot",function(){return L}),t.d(r,"cross",function(){return D}),t.d(r,"lerp",function(){return I}),t.d(r,"random",function(){return R}),t.d(r,"transformMat4",function(){return B}),t.d(r,"transformQuat",function(){return z}),t.d(r,"zero",function(){return K}),t.d(r,"str",function(){return Q}),t.d(r,"exactEquals",function(){return _}),t.d(r,"equals",function(){return j}),t.d(r,"sub",function(){return G}),t.d(r,"mul",function(){return X}),t.d(r,"div",function(){return Z}),t.d(r,"dist",function(){return tt}),t.d(r,"sqrDist",function(){return nt}),t.d(r,"len",function(){return q}),t.d(r,"sqrLen",function(){return dt}),t.d(r,"forEach",function(){return ut});var e=t(2);function n(){var W=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(W[0]=0,W[1]=0,W[2]=0,W[3]=0),W}function a(W){var F=new e.ARRAY_TYPE(4);return F[0]=W[0],F[1]=W[1],F[2]=W[2],F[3]=W[3],F}function s(W,F,V,J){var N=new e.ARRAY_TYPE(4);return N[0]=W,N[1]=F,N[2]=V,N[3]=J,N}function i(W,F){return W[0]=F[0],W[1]=F[1],W[2]=F[2],W[3]=F[3],W}function o(W,F,V,J,N){return W[0]=F,W[1]=V,W[2]=J,W[3]=N,W}function c(W,F,V){return W[0]=F[0]+V[0],W[1]=F[1]+V[1],W[2]=F[2]+V[2],W[3]=F[3]+V[3],W}function m(W,F,V){return W[0]=F[0]-V[0],W[1]=F[1]-V[1],W[2]=F[2]-V[2],W[3]=F[3]-V[3],W}function u(W,F,V){return W[0]=F[0]*V[0],W[1]=F[1]*V[1],W[2]=F[2]*V[2],W[3]=F[3]*V[3],W}function p(W,F,V){return W[0]=F[0]/V[0],W[1]=F[1]/V[1],W[2]=F[2]/V[2],W[3]=F[3]/V[3],W}function y(W,F){return W[0]=Math.ceil(F[0]),W[1]=Math.ceil(F[1]),W[2]=Math.ceil(F[2]),W[3]=Math.ceil(F[3]),W}function O(W,F){return W[0]=Math.floor(F[0]),W[1]=Math.floor(F[1]),W[2]=Math.floor(F[2]),W[3]=Math.floor(F[3]),W}function x(W,F,V){return W[0]=Math.min(F[0],V[0]),W[1]=Math.min(F[1],V[1]),W[2]=Math.min(F[2],V[2]),W[3]=Math.min(F[3],V[3]),W}function v(W,F,V){return W[0]=Math.max(F[0],V[0]),W[1]=Math.max(F[1],V[1]),W[2]=Math.max(F[2],V[2]),W[3]=Math.max(F[3],V[3]),W}function T(W,F){return W[0]=Math.round(F[0]),W[1]=Math.round(F[1]),W[2]=Math.round(F[2]),W[3]=Math.round(F[3]),W}function l(W,F,V){return W[0]=F[0]*V,W[1]=F[1]*V,W[2]=F[2]*V,W[3]=F[3]*V,W}function h(W,F,V,J){return W[0]=F[0]+V[0]*J,W[1]=F[1]+V[1]*J,W[2]=F[2]+V[2]*J,W[3]=F[3]+V[3]*J,W}function f(W,F){var V=F[0]-W[0],J=F[1]-W[1],N=F[2]-W[2],$=F[3]-W[3];return Math.hypot(V,J,N,$)}function g(W,F){var V=F[0]-W[0],J=F[1]-W[1],N=F[2]-W[2],$=F[3]-W[3];return V*V+J*J+N*N+$*$}function M(W){var F=W[0],V=W[1],J=W[2],N=W[3];return Math.hypot(F,V,J,N)}function A(W){var F=W[0],V=W[1],J=W[2],N=W[3];return F*F+V*V+J*J+N*N}function C(W,F){return W[0]=-F[0],W[1]=-F[1],W[2]=-F[2],W[3]=-F[3],W}function b(W,F){return W[0]=1/F[0],W[1]=1/F[1],W[2]=1/F[2],W[3]=1/F[3],W}function E(W,F){var V=F[0],J=F[1],N=F[2],$=F[3],S=V*V+J*J+N*N+$*$;return S>0&&(S=1/Math.sqrt(S)),W[0]=V*S,W[1]=J*S,W[2]=N*S,W[3]=$*S,W}function L(W,F){return W[0]*F[0]+W[1]*F[1]+W[2]*F[2]+W[3]*F[3]}function D(W,F,V,J){var N=V[0]*J[1]-V[1]*J[0],$=V[0]*J[2]-V[2]*J[0],S=V[0]*J[3]-V[3]*J[0],P=V[1]*J[2]-V[2]*J[1],w=V[1]*J[3]-V[3]*J[1],U=V[2]*J[3]-V[3]*J[2],H=F[0],Y=F[1],k=F[2],rt=F[3];return W[0]=Y*U-k*w+rt*P,W[1]=-(H*U)+k*S-rt*$,W[2]=H*w-Y*S+rt*N,W[3]=-(H*P)+Y*$-k*N,W}function I(W,F,V,J){var N=F[0],$=F[1],S=F[2],P=F[3];return W[0]=N+J*(V[0]-N),W[1]=$+J*(V[1]-$),W[2]=S+J*(V[2]-S),W[3]=P+J*(V[3]-P),W}function R(W,F){F=F||1;var V,J,N,$,S,P;do V=e.RANDOM()*2-1,J=e.RANDOM()*2-1,S=V*V+J*J;while(S>=1);do N=e.RANDOM()*2-1,$=e.RANDOM()*2-1,P=N*N+$*$;while(P>=1);var w=Math.sqrt((1-S)/P);return W[0]=F*V,W[1]=F*J,W[2]=F*N*w,W[3]=F*$*w,W}function B(W,F,V){var J=F[0],N=F[1],$=F[2],S=F[3];return W[0]=V[0]*J+V[4]*N+V[8]*$+V[12]*S,W[1]=V[1]*J+V[5]*N+V[9]*$+V[13]*S,W[2]=V[2]*J+V[6]*N+V[10]*$+V[14]*S,W[3]=V[3]*J+V[7]*N+V[11]*$+V[15]*S,W}function z(W,F,V){var J=F[0],N=F[1],$=F[2],S=V[0],P=V[1],w=V[2],U=V[3],H=U*J+P*$-w*N,Y=U*N+w*J-S*$,k=U*$+S*N-P*J,rt=-S*J-P*N-w*$;return W[0]=H*U+rt*-S+Y*-w-k*-P,W[1]=Y*U+rt*-P+k*-S-H*-w,W[2]=k*U+rt*-w+H*-P-Y*-S,W[3]=F[3],W}function K(W){return W[0]=0,W[1]=0,W[2]=0,W[3]=0,W}function Q(W){return"vec4("+W[0]+", "+W[1]+", "+W[2]+", "+W[3]+")"}function _(W,F){return W[0]===F[0]&&W[1]===F[1]&&W[2]===F[2]&&W[3]===F[3]}function j(W,F){var V=W[0],J=W[1],N=W[2],$=W[3],S=F[0],P=F[1],w=F[2],U=F[3];return Math.abs(V-S)<=e.EPSILON*Math.max(1,Math.abs(V),Math.abs(S))&&Math.abs(J-P)<=e.EPSILON*Math.max(1,Math.abs(J),Math.abs(P))&&Math.abs(N-w)<=e.EPSILON*Math.max(1,Math.abs(N),Math.abs(w))&&Math.abs($-U)<=e.EPSILON*Math.max(1,Math.abs($),Math.abs(U))}var G=m,X=u,Z=p,tt=f,nt=g,q=M,dt=A,ut=function(){var W=n();return function(F,V,J,N,$,S){var P,w;for(V||(V=4),J||(J=0),N?w=Math.min(N*V+J,F.length):w=F.length,P=J;P<w;P+=V)W[0]=F[P],W[1]=F[P+1],W[2]=F[P+2],W[3]=F[P+3],$(W,W,S),F[P]=W[0],F[P+1]=W[1],F[P+2]=W[2],F[P+3]=W[3];return F}}()},function(d,r,t){t.r(r),t.d(r,"create",function(){return s}),t.d(r,"clone",function(){return i}),t.d(r,"fromValues",function(){return o}),t.d(r,"fromRotationTranslationValues",function(){return c}),t.d(r,"fromRotationTranslation",function(){return m}),t.d(r,"fromTranslation",function(){return u}),t.d(r,"fromRotation",function(){return p}),t.d(r,"fromMat4",function(){return y}),t.d(r,"copy",function(){return O}),t.d(r,"identity",function(){return x}),t.d(r,"set",function(){return v}),t.d(r,"getReal",function(){return T}),t.d(r,"getDual",function(){return l}),t.d(r,"setReal",function(){return h}),t.d(r,"setDual",function(){return f}),t.d(r,"getTranslation",function(){return g}),t.d(r,"translate",function(){return M}),t.d(r,"rotateX",function(){return A}),t.d(r,"rotateY",function(){return C}),t.d(r,"rotateZ",function(){return b}),t.d(r,"rotateByQuatAppend",function(){return E}),t.d(r,"rotateByQuatPrepend",function(){return L}),t.d(r,"rotateAroundAxis",function(){return D}),t.d(r,"add",function(){return I}),t.d(r,"multiply",function(){return R}),t.d(r,"mul",function(){return B}),t.d(r,"scale",function(){return z}),t.d(r,"dot",function(){return K}),t.d(r,"lerp",function(){return Q}),t.d(r,"invert",function(){return _}),t.d(r,"conjugate",function(){return j}),t.d(r,"length",function(){return G}),t.d(r,"len",function(){return X}),t.d(r,"squaredLength",function(){return Z}),t.d(r,"sqrLen",function(){return tt}),t.d(r,"normalize",function(){return nt}),t.d(r,"str",function(){return q}),t.d(r,"exactEquals",function(){return dt}),t.d(r,"equals",function(){return ut});var e=t(2),n=t(7),a=t(6);function s(){var W=new e.ARRAY_TYPE(8);return e.ARRAY_TYPE!=Float32Array&&(W[0]=0,W[1]=0,W[2]=0,W[4]=0,W[5]=0,W[6]=0,W[7]=0),W[3]=1,W}function i(W){var F=new e.ARRAY_TYPE(8);return F[0]=W[0],F[1]=W[1],F[2]=W[2],F[3]=W[3],F[4]=W[4],F[5]=W[5],F[6]=W[6],F[7]=W[7],F}function o(W,F,V,J,N,$,S,P){var w=new e.ARRAY_TYPE(8);return w[0]=W,w[1]=F,w[2]=V,w[3]=J,w[4]=N,w[5]=$,w[6]=S,w[7]=P,w}function c(W,F,V,J,N,$,S){var P=new e.ARRAY_TYPE(8);P[0]=W,P[1]=F,P[2]=V,P[3]=J;var w=N*.5,U=$*.5,H=S*.5;return P[4]=w*J+U*V-H*F,P[5]=U*J+H*W-w*V,P[6]=H*J+w*F-U*W,P[7]=-w*W-U*F-H*V,P}function m(W,F,V){var J=V[0]*.5,N=V[1]*.5,$=V[2]*.5,S=F[0],P=F[1],w=F[2],U=F[3];return W[0]=S,W[1]=P,W[2]=w,W[3]=U,W[4]=J*U+N*w-$*P,W[5]=N*U+$*S-J*w,W[6]=$*U+J*P-N*S,W[7]=-J*S-N*P-$*w,W}function u(W,F){return W[0]=0,W[1]=0,W[2]=0,W[3]=1,W[4]=F[0]*.5,W[5]=F[1]*.5,W[6]=F[2]*.5,W[7]=0,W}function p(W,F){return W[0]=F[0],W[1]=F[1],W[2]=F[2],W[3]=F[3],W[4]=0,W[5]=0,W[6]=0,W[7]=0,W}function y(W,F){var V=n.create();a.getRotation(V,F);var J=new e.ARRAY_TYPE(3);return a.getTranslation(J,F),m(W,V,J),W}function O(W,F){return W[0]=F[0],W[1]=F[1],W[2]=F[2],W[3]=F[3],W[4]=F[4],W[5]=F[5],W[6]=F[6],W[7]=F[7],W}function x(W){return W[0]=0,W[1]=0,W[2]=0,W[3]=1,W[4]=0,W[5]=0,W[6]=0,W[7]=0,W}function v(W,F,V,J,N,$,S,P,w){return W[0]=F,W[1]=V,W[2]=J,W[3]=N,W[4]=$,W[5]=S,W[6]=P,W[7]=w,W}var T=n.copy;function l(W,F){return W[0]=F[4],W[1]=F[5],W[2]=F[6],W[3]=F[7],W}var h=n.copy;function f(W,F){return W[4]=F[0],W[5]=F[1],W[6]=F[2],W[7]=F[3],W}function g(W,F){var V=F[4],J=F[5],N=F[6],$=F[7],S=-F[0],P=-F[1],w=-F[2],U=F[3];return W[0]=(V*U+$*S+J*w-N*P)*2,W[1]=(J*U+$*P+N*S-V*w)*2,W[2]=(N*U+$*w+V*P-J*S)*2,W}function M(W,F,V){var J=F[0],N=F[1],$=F[2],S=F[3],P=V[0]*.5,w=V[1]*.5,U=V[2]*.5,H=F[4],Y=F[5],k=F[6],rt=F[7];return W[0]=J,W[1]=N,W[2]=$,W[3]=S,W[4]=S*P+N*U-$*w+H,W[5]=S*w+$*P-J*U+Y,W[6]=S*U+J*w-N*P+k,W[7]=-J*P-N*w-$*U+rt,W}function A(W,F,V){var J=-F[0],N=-F[1],$=-F[2],S=F[3],P=F[4],w=F[5],U=F[6],H=F[7],Y=P*S+H*J+w*$-U*N,k=w*S+H*N+U*J-P*$,rt=U*S+H*$+P*N-w*J,it=H*S-P*J-w*N-U*$;return n.rotateX(W,F,V),J=W[0],N=W[1],$=W[2],S=W[3],W[4]=Y*S+it*J+k*$-rt*N,W[5]=k*S+it*N+rt*J-Y*$,W[6]=rt*S+it*$+Y*N-k*J,W[7]=it*S-Y*J-k*N-rt*$,W}function C(W,F,V){var J=-F[0],N=-F[1],$=-F[2],S=F[3],P=F[4],w=F[5],U=F[6],H=F[7],Y=P*S+H*J+w*$-U*N,k=w*S+H*N+U*J-P*$,rt=U*S+H*$+P*N-w*J,it=H*S-P*J-w*N-U*$;return n.rotateY(W,F,V),J=W[0],N=W[1],$=W[2],S=W[3],W[4]=Y*S+it*J+k*$-rt*N,W[5]=k*S+it*N+rt*J-Y*$,W[6]=rt*S+it*$+Y*N-k*J,W[7]=it*S-Y*J-k*N-rt*$,W}function b(W,F,V){var J=-F[0],N=-F[1],$=-F[2],S=F[3],P=F[4],w=F[5],U=F[6],H=F[7],Y=P*S+H*J+w*$-U*N,k=w*S+H*N+U*J-P*$,rt=U*S+H*$+P*N-w*J,it=H*S-P*J-w*N-U*$;return n.rotateZ(W,F,V),J=W[0],N=W[1],$=W[2],S=W[3],W[4]=Y*S+it*J+k*$-rt*N,W[5]=k*S+it*N+rt*J-Y*$,W[6]=rt*S+it*$+Y*N-k*J,W[7]=it*S-Y*J-k*N-rt*$,W}function E(W,F,V){var J=V[0],N=V[1],$=V[2],S=V[3],P=F[0],w=F[1],U=F[2],H=F[3];return W[0]=P*S+H*J+w*$-U*N,W[1]=w*S+H*N+U*J-P*$,W[2]=U*S+H*$+P*N-w*J,W[3]=H*S-P*J-w*N-U*$,P=F[4],w=F[5],U=F[6],H=F[7],W[4]=P*S+H*J+w*$-U*N,W[5]=w*S+H*N+U*J-P*$,W[6]=U*S+H*$+P*N-w*J,W[7]=H*S-P*J-w*N-U*$,W}function L(W,F,V){var J=F[0],N=F[1],$=F[2],S=F[3],P=V[0],w=V[1],U=V[2],H=V[3];return W[0]=J*H+S*P+N*U-$*w,W[1]=N*H+S*w+$*P-J*U,W[2]=$*H+S*U+J*w-N*P,W[3]=S*H-J*P-N*w-$*U,P=V[4],w=V[5],U=V[6],H=V[7],W[4]=J*H+S*P+N*U-$*w,W[5]=N*H+S*w+$*P-J*U,W[6]=$*H+S*U+J*w-N*P,W[7]=S*H-J*P-N*w-$*U,W}function D(W,F,V,J){if(Math.abs(J)<e.EPSILON)return O(W,F);var N=Math.hypot(V[0],V[1],V[2]);J=J*.5;var $=Math.sin(J),S=$*V[0]/N,P=$*V[1]/N,w=$*V[2]/N,U=Math.cos(J),H=F[0],Y=F[1],k=F[2],rt=F[3];W[0]=H*U+rt*S+Y*w-k*P,W[1]=Y*U+rt*P+k*S-H*w,W[2]=k*U+rt*w+H*P-Y*S,W[3]=rt*U-H*S-Y*P-k*w;var it=F[4],ct=F[5],ht=F[6],at=F[7];return W[4]=it*U+at*S+ct*w-ht*P,W[5]=ct*U+at*P+ht*S-it*w,W[6]=ht*U+at*w+it*P-ct*S,W[7]=at*U-it*S-ct*P-ht*w,W}function I(W,F,V){return W[0]=F[0]+V[0],W[1]=F[1]+V[1],W[2]=F[2]+V[2],W[3]=F[3]+V[3],W[4]=F[4]+V[4],W[5]=F[5]+V[5],W[6]=F[6]+V[6],W[7]=F[7]+V[7],W}function R(W,F,V){var J=F[0],N=F[1],$=F[2],S=F[3],P=V[4],w=V[5],U=V[6],H=V[7],Y=F[4],k=F[5],rt=F[6],it=F[7],ct=V[0],ht=V[1],at=V[2],ot=V[3];return W[0]=J*ot+S*ct+N*at-$*ht,W[1]=N*ot+S*ht+$*ct-J*at,W[2]=$*ot+S*at+J*ht-N*ct,W[3]=S*ot-J*ct-N*ht-$*at,W[4]=J*H+S*P+N*U-$*w+Y*ot+it*ct+k*at-rt*ht,W[5]=N*H+S*w+$*P-J*U+k*ot+it*ht+rt*ct-Y*at,W[6]=$*H+S*U+J*w-N*P+rt*ot+it*at+Y*ht-k*ct,W[7]=S*H-J*P-N*w-$*U+it*ot-Y*ct-k*ht-rt*at,W}var B=R;function z(W,F,V){return W[0]=F[0]*V,W[1]=F[1]*V,W[2]=F[2]*V,W[3]=F[3]*V,W[4]=F[4]*V,W[5]=F[5]*V,W[6]=F[6]*V,W[7]=F[7]*V,W}var K=n.dot;function Q(W,F,V,J){var N=1-J;return K(F,V)<0&&(J=-J),W[0]=F[0]*N+V[0]*J,W[1]=F[1]*N+V[1]*J,W[2]=F[2]*N+V[2]*J,W[3]=F[3]*N+V[3]*J,W[4]=F[4]*N+V[4]*J,W[5]=F[5]*N+V[5]*J,W[6]=F[6]*N+V[6]*J,W[7]=F[7]*N+V[7]*J,W}function _(W,F){var V=Z(F);return W[0]=-F[0]/V,W[1]=-F[1]/V,W[2]=-F[2]/V,W[3]=F[3]/V,W[4]=-F[4]/V,W[5]=-F[5]/V,W[6]=-F[6]/V,W[7]=F[7]/V,W}function j(W,F){return W[0]=-F[0],W[1]=-F[1],W[2]=-F[2],W[3]=F[3],W[4]=-F[4],W[5]=-F[5],W[6]=-F[6],W[7]=F[7],W}var G=n.length,X=G,Z=n.squaredLength,tt=Z;function nt(W,F){var V=Z(F);if(V>0){V=Math.sqrt(V);var J=F[0]/V,N=F[1]/V,$=F[2]/V,S=F[3]/V,P=F[4],w=F[5],U=F[6],H=F[7],Y=J*P+N*w+$*U+S*H;W[0]=J,W[1]=N,W[2]=$,W[3]=S,W[4]=(P-J*Y)/V,W[5]=(w-N*Y)/V,W[6]=(U-$*Y)/V,W[7]=(H-S*Y)/V}return W}function q(W){return"quat2("+W[0]+", "+W[1]+", "+W[2]+", "+W[3]+", "+W[4]+", "+W[5]+", "+W[6]+", "+W[7]+")"}function dt(W,F){return W[0]===F[0]&&W[1]===F[1]&&W[2]===F[2]&&W[3]===F[3]&&W[4]===F[4]&&W[5]===F[5]&&W[6]===F[6]&&W[7]===F[7]}function ut(W,F){var V=W[0],J=W[1],N=W[2],$=W[3],S=W[4],P=W[5],w=W[6],U=W[7],H=F[0],Y=F[1],k=F[2],rt=F[3],it=F[4],ct=F[5],ht=F[6],at=F[7];return Math.abs(V-H)<=e.EPSILON*Math.max(1,Math.abs(V),Math.abs(H))&&Math.abs(J-Y)<=e.EPSILON*Math.max(1,Math.abs(J),Math.abs(Y))&&Math.abs(N-k)<=e.EPSILON*Math.max(1,Math.abs(N),Math.abs(k))&&Math.abs($-rt)<=e.EPSILON*Math.max(1,Math.abs($),Math.abs(rt))&&Math.abs(S-it)<=e.EPSILON*Math.max(1,Math.abs(S),Math.abs(it))&&Math.abs(P-ct)<=e.EPSILON*Math.max(1,Math.abs(P),Math.abs(ct))&&Math.abs(w-ht)<=e.EPSILON*Math.max(1,Math.abs(w),Math.abs(ht))&&Math.abs(U-at)<=e.EPSILON*Math.max(1,Math.abs(U),Math.abs(at))}},function(d,r,t){t.r(r),t.d(r,"create",function(){return n}),t.d(r,"clone",function(){return a}),t.d(r,"fromValues",function(){return s}),t.d(r,"copy",function(){return i}),t.d(r,"set",function(){return o}),t.d(r,"add",function(){return c}),t.d(r,"subtract",function(){return m}),t.d(r,"multiply",function(){return u}),t.d(r,"divide",function(){return p}),t.d(r,"ceil",function(){return y}),t.d(r,"floor",function(){return O}),t.d(r,"min",function(){return x}),t.d(r,"max",function(){return v}),t.d(r,"round",function(){return T}),t.d(r,"scale",function(){return l}),t.d(r,"scaleAndAdd",function(){return h}),t.d(r,"distance",function(){return f}),t.d(r,"squaredDistance",function(){return g}),t.d(r,"length",function(){return M}),t.d(r,"squaredLength",function(){return A}),t.d(r,"negate",function(){return C}),t.d(r,"inverse",function(){return b}),t.d(r,"normalize",function(){return E}),t.d(r,"dot",function(){return L}),t.d(r,"cross",function(){return D}),t.d(r,"lerp",function(){return I}),t.d(r,"random",function(){return R}),t.d(r,"transformMat2",function(){return B}),t.d(r,"transformMat2d",function(){return z}),t.d(r,"transformMat3",function(){return K}),t.d(r,"transformMat4",function(){return Q}),t.d(r,"rotate",function(){return _}),t.d(r,"angle",function(){return j}),t.d(r,"zero",function(){return G}),t.d(r,"str",function(){return X}),t.d(r,"exactEquals",function(){return Z}),t.d(r,"equals",function(){return tt}),t.d(r,"len",function(){return nt}),t.d(r,"sub",function(){return q}),t.d(r,"mul",function(){return dt}),t.d(r,"div",function(){return ut}),t.d(r,"dist",function(){return W}),t.d(r,"sqrDist",function(){return F}),t.d(r,"sqrLen",function(){return V}),t.d(r,"forEach",function(){return J});var e=t(2);function n(){var N=new e.ARRAY_TYPE(2);return e.ARRAY_TYPE!=Float32Array&&(N[0]=0,N[1]=0),N}function a(N){var $=new e.ARRAY_TYPE(2);return $[0]=N[0],$[1]=N[1],$}function s(N,$){var S=new e.ARRAY_TYPE(2);return S[0]=N,S[1]=$,S}function i(N,$){return N[0]=$[0],N[1]=$[1],N}function o(N,$,S){return N[0]=$,N[1]=S,N}function c(N,$,S){return N[0]=$[0]+S[0],N[1]=$[1]+S[1],N}function m(N,$,S){return N[0]=$[0]-S[0],N[1]=$[1]-S[1],N}function u(N,$,S){return N[0]=$[0]*S[0],N[1]=$[1]*S[1],N}function p(N,$,S){return N[0]=$[0]/S[0],N[1]=$[1]/S[1],N}function y(N,$){return N[0]=Math.ceil($[0]),N[1]=Math.ceil($[1]),N}function O(N,$){return N[0]=Math.floor($[0]),N[1]=Math.floor($[1]),N}function x(N,$,S){return N[0]=Math.min($[0],S[0]),N[1]=Math.min($[1],S[1]),N}function v(N,$,S){return N[0]=Math.max($[0],S[0]),N[1]=Math.max($[1],S[1]),N}function T(N,$){return N[0]=Math.round($[0]),N[1]=Math.round($[1]),N}function l(N,$,S){return N[0]=$[0]*S,N[1]=$[1]*S,N}function h(N,$,S,P){return N[0]=$[0]+S[0]*P,N[1]=$[1]+S[1]*P,N}function f(N,$){var S=$[0]-N[0],P=$[1]-N[1];return Math.hypot(S,P)}function g(N,$){var S=$[0]-N[0],P=$[1]-N[1];return S*S+P*P}function M(N){var $=N[0],S=N[1];return Math.hypot($,S)}function A(N){var $=N[0],S=N[1];return $*$+S*S}function C(N,$){return N[0]=-$[0],N[1]=-$[1],N}function b(N,$){return N[0]=1/$[0],N[1]=1/$[1],N}function E(N,$){var S=$[0],P=$[1],w=S*S+P*P;return w>0&&(w=1/Math.sqrt(w)),N[0]=$[0]*w,N[1]=$[1]*w,N}function L(N,$){return N[0]*$[0]+N[1]*$[1]}function D(N,$,S){var P=$[0]*S[1]-$[1]*S[0];return N[0]=N[1]=0,N[2]=P,N}function I(N,$,S,P){var w=$[0],U=$[1];return N[0]=w+P*(S[0]-w),N[1]=U+P*(S[1]-U),N}function R(N,$){$=$||1;var S=e.RANDOM()*2*Math.PI;return N[0]=Math.cos(S)*$,N[1]=Math.sin(S)*$,N}function B(N,$,S){var P=$[0],w=$[1];return N[0]=S[0]*P+S[2]*w,N[1]=S[1]*P+S[3]*w,N}function z(N,$,S){var P=$[0],w=$[1];return N[0]=S[0]*P+S[2]*w+S[4],N[1]=S[1]*P+S[3]*w+S[5],N}function K(N,$,S){var P=$[0],w=$[1];return N[0]=S[0]*P+S[3]*w+S[6],N[1]=S[1]*P+S[4]*w+S[7],N}function Q(N,$,S){var P=$[0],w=$[1];return N[0]=S[0]*P+S[4]*w+S[12],N[1]=S[1]*P+S[5]*w+S[13],N}function _(N,$,S,P){var w=$[0]-S[0],U=$[1]-S[1],H=Math.sin(P),Y=Math.cos(P);return N[0]=w*Y-U*H+S[0],N[1]=w*H+U*Y+S[1],N}function j(N,$){var S=N[0],P=N[1],w=$[0],U=$[1],H=Math.sqrt(S*S+P*P)*Math.sqrt(w*w+U*U),Y=H&&(S*w+P*U)/H;return Math.acos(Math.min(Math.max(Y,-1),1))}function G(N){return N[0]=0,N[1]=0,N}function X(N){return"vec2("+N[0]+", "+N[1]+")"}function Z(N,$){return N[0]===$[0]&&N[1]===$[1]}function tt(N,$){var S=N[0],P=N[1],w=$[0],U=$[1];return Math.abs(S-w)<=e.EPSILON*Math.max(1,Math.abs(S),Math.abs(w))&&Math.abs(P-U)<=e.EPSILON*Math.max(1,Math.abs(P),Math.abs(U))}var nt=M,q=m,dt=u,ut=p,W=f,F=g,V=A,J=function(){var N=n();return function($,S,P,w,U,H){var Y,k;for(S||(S=2),P||(P=0),w?k=Math.min(w*S+P,$.length):k=$.length,Y=P;Y<k;Y+=S)N[0]=$[Y],N[1]=$[Y+1],U(N,N,H),$[Y]=N[0],$[Y+1]=N[1];return $}}()},function(d,r,t){t.r(r);var e=t(13);t.d(r,"Renderer",function(){return e.default});var n=t(40);t.d(r,"Figure2D",function(){return n.default});var a=t(56);t.d(r,"Mesh2D",function(){return a.default});var s=t(29);t.d(r,"MeshCloud",function(){return s.default});var i=t(23);t.d(r,"parseFont",function(){return i.default});var o=t(31);t.d(r,"parseColor",function(){return o.default});var c=t(21);t.d(r,"ENV",function(){return c.default}),t(1).glMatrix.setMatrixArrayType(Array)},function(d,r,t){t.r(r),t.d(r,"default",function(){return b});var e=t(14),n=t(1),a=t(20),s=t(27),i=t(25),o=t(40),c=t(56),m=t(29),u=t(59),p=t(21),y=t(63);t(1).glMatrix.setMatrixArrayType(Array);const O={autoUpdate:!1,preserveDrawingBuffer:!1,bufferSize:1500},x=`attribute vec3 a_vertexPosition;
2
+ attribute vec3 a_vertexTextureCoord;
3
+ varying vec3 vTextureCoord;
4
+ uniform mat3 viewMatrix;
5
+ uniform mat3 projectionMatrix;
6
+
7
+ void main() {
8
+ gl_PointSize = 1.0;
9
+ vec3 pos = projectionMatrix * viewMatrix * vec3(a_vertexPosition.xy, 1.0);
10
+ gl_Position = vec4(pos.xy, 1.0, 1.0);
11
+ vTextureCoord = a_vertexTextureCoord;
12
+ }
13
+ `,v=`precision mediump float;
14
+ varying vec3 vTextureCoord;
15
+ uniform sampler2D u_texSampler;
16
+ void main() {
17
+ gl_FragColor = texture2D(u_texSampler, vTextureCoord.xy);
18
+ }
19
+ `,T=Symbol("glRenderer"),l=Symbol("canvasRenderer"),h=Symbol("options"),f=Symbol("globalTransform"),g=Symbol("applyGlobalTransform"),M=Symbol("canvas");function A(E){const L=E.gl,D=E.fbo;D&&L.bindFramebuffer(L.FRAMEBUFFER,D),E._draw(),D&&L.bindFramebuffer(L.FRAMEBUFFER,null)}function C(E,L,D,I){const R=E.createTexture(L.canvas),B=[[[0,0],[D,0],[D,I],[0,I],[0,0]]];B.closed=!0;const z=new c.default({contours:B});z.setTexture(R),E.setMeshData([z.meshData]),A(E),R.delete(),L.clearRect(0,0,D,I),delete L._filter}class b{constructor(L,D={}){let I=D.contextType;if(I||(typeof WebGL2RenderingContext=="function"?I="webgl2":typeof WebGLRenderingContext=="function"?I="webgl":I="2d"),!L.getContext){const R=L;L={getContext(){return R},width:D.width,height:D.height},R.canvas=L,I="2d"}if(this[M]=L,I!=="webgl"&&I!=="webgl2"&&I!=="2d")throw new Error(`Unknown context type ${I}`);if(D.contextType=I,this[h]=Object.assign({},O,D),I==="webgl"||I==="webgl2"){I==="webgl2"&&(this[h].webgl2=!0);const R=new e.default(L,this[h]);I==="webgl2"&&!R.isWebGL2&&(D.contextType="webgl"),Object(y.createShaders)(R),Object(y.applyShader)(R),Object(y.createCloudShaders)(R);const B=R.gl;B.clearColor(0,0,0,0),B.blendFuncSeparate(B.SRC_ALPHA,B.ONE_MINUS_SRC_ALPHA,B.ONE,B.ONE_MINUS_SRC_ALPHA),this[T]=R}else this[l]=new a.default(L,this[h]);this[f]=[1,0,0,0,1,0,0,0,1],this.updateResolution()}get canvas(){return this[M]}get canvasRenderer(){return this[l]}get glRenderer(){return this[T]}get isWebGL2(){return this[T]&&this[T].isWebGL2}get options(){return this[h]}get globalTransformMatrix(){const L=this[f];return[L[0],L[1],L[3],L[4],L[6],L[7]]}get viewMatrix(){return this[f]}[g](){const L=this[T]||this[l];if(this[T]){const{width:D,height:I}=this.canvas;L.uniforms.viewMatrix=this.viewMatrix,L.uniforms.projectionMatrix=this.projectionMatrix,L.uniforms.u_resolution=[D,I]}}updateResolution(){const{width:L,height:D}=this.canvas,I=[1,0,0,0,1,0,-L/2,-D/2,1],R=[2/L,0,0,0,-2/D,0,0,0,1],B=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),R,I);this.projectionMatrix=B,this[T]&&this[T].gl.viewport(0,0,L,D)}createTexture(L,D){return(this[T]||this[l]).createTexture(L,D)}loadTexture(L,{useImageBitmap:D=!1}={}){return(this[T]||this[l]).loadTexture(L,{useImageBitmap:D})}createText(L,{font:D="16px arial",fillColor:I=null,strokeColor:R=null,strokeWidth:B=1}={}){if(this[T]){const z=p.default.createText(L,{font:D,fillColor:I,strokeColor:R,strokeWidth:B});return{image:this.createTexture(z.image),rect:z.rect}}return{_img:{font:D,fillColor:I,strokeColor:R,strokeWidth:B,text:L}}}createProgram({vertex:L,fragment:D,options:I}={}){if(this[T]){const R=this[T].compileSync(D,L);return R._attribOpts=I,R}throw new Error("Context 2D cannot create webgl program.")}createPassProgram({vertex:L=x,fragment:D=v,options:I}={}){return this.createProgram({vertex:L,fragment:D,options:I})}useProgram(L,D={}){if(this[T]){const I=Object.assign({},L._attribOpts,D);return this[T].useProgram(L,I)}throw new Error("Context 2D cannot use webgl program.")}deleteTexture(L){return(this[T]||this[l]).deleteTexture(L)}clear(...L){if(this[T]){const D=this[T].gl;D.clear(D.COLOR_BUFFER_BIT)}else this[l].clear(...L)}drawMeshCloud(L,{clear:D=!1,program:I=null}={}){const R=this[T]||this[l],B=I||L.program;if(this[T]){const z=R.gl;if(D&&z.clear(z.COLOR_BUFFER_BIT),B)R.program!==B&&this.useProgram(B,{a_color:{type:"UNSIGNED_BYTE",normalize:!0},a_fillCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_strokeCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_frameIndex:{type:"UNSIGNED_BYTE",normalize:!1}});else{const K=L.mesh.meshData,Q=!!K.uniforms.u_texSampler,_=!!K.uniforms.u_filterFlag,j=!!K.uniforms.u_radialGradientVector,G=L.hasCloudColor,X=L.hasCloudFilter,Z=!!K.uniforms.u_clipSampler;Object(y.applyCloudShader)(R,{hasTexture:Q,hasFilter:_,hasGradient:j,hasCloudColor:G,hasCloudFilter:X,hasClipPath:Z})}this[g](),R.setMeshData([L.meshData]),L.beforeRender&&L.beforeRender(z,L),A(R),L.afterRender&&L.afterRender(z,L)}else R.setTransform(this.globalTransformMatrix),R.drawMeshCloud(L,{clear:D,hook:!1})}drawMeshes(L,{clear:D=!1,program:I=null}={}){const R=this[T]||this[l];if(this[T]){const B=R.fbo,z=Object(s.default)(this,L,I==null),K=R.gl;D&&K.clear(K.COLOR_BUFFER_BIT);const Q=!Object(u.isUnitTransform)(this.globalTransformMatrix);this._drawCalls=0;for(const _ of z){this._drawCalls++;const j=I||_.program;if(_ instanceof m.default)this.drawMeshCloud(_,{clear:D,program:j});else{const{width:G,height:X}=this.canvas;if(_.beforeRender&&_.beforeRender(K,_),_.pass.length&&((!this.fbo||this.fbo.width!==G||this.fbo.height!==X)&&(this.fbo={width:G,height:X,target:R.createFBO(),buffer:R.createFBO(),swap(){[this.target,this.buffer]=[this.buffer,this.target]}}),R.bindFBO(this.fbo.target)),!j&&_.filterCanvas){Object(y.applyShader)(R,{hasTexture:!0});let Z=this.filterContext;Z||(Z=p.default.createCanvas(G,X).getContext("2d"),this.filterContext=Z);const tt=L[_.packIndex],nt=tt.filter,q=L[_.packIndex+1],dt=L[_.packIndex-1];(!dt||!dt.filterCanvas||dt.filter!==nt)&&(!q||!q.filterCanvas||q.filter!==nt)?(Q?(Z.save(),Object(i.drawMesh2D)(tt,Z,!1),Z.restore(),Object(i.applyFilter)(Z,nt)):Object(i.drawMesh2D)(tt,Z,!0),this[g](),C(R,Z,G,X)):(Q&&Z.save(),Object(i.drawMesh2D)(tt,Z,!1),Q&&Z.restore(),(!q||!q.filterCanvas||tt.filter!==q.filter)&&(Object(i.applyFilter)(Z,nt),this[g](),C(R,Z,G,X)))}else{if(j)R.program!==j&&this.useProgram(j,{a_color:{type:"UNSIGNED_BYTE",normalize:!0}});else{const Z=!!_.uniforms.u_texSampler,tt=!!_.uniforms.u_filterFlag,nt=!!_.uniforms.u_radialGradientVector,q=!!_.uniforms.u_clipSampler;Object(y.applyShader)(R,{hasTexture:Z,hasFilter:tt,hasGradient:nt,hasClipPath:q})}_.filterCanvas&&console.warn("User program ignored some filter effects."),this[g](),R.setMeshData([_]),A(R)}if(_.pass.length){const Z=_.pass.length;_.pass.forEach((tt,nt)=>{tt.blend=_.enableBlend,tt.setTexture(R.fbo.texture),nt===Z-1?R.bindFBO(B):(this.fbo.swap(),R.bindFBO(this.fbo.target)),tt.program?R.useProgram(tt.program):(this.defaultPassProgram=this.defaultPassProgram||this.createPassProgram(),R.useProgram(this.defaultPassProgram)),R.setMeshData([tt.meshData]),K.clear(K.COLOR_BUFFER_BIT),A(R)})}_.afterRender&&_.afterRender(K,_)}}}else R.setTransform(this.globalTransformMatrix),R.drawMeshes(L,{clear:D})}drawImage(L,...D){const I=D.length;if(I<2)throw new TypeError(`Failed to execute 'drawImage' on 'Renderer': 3 arguments required, but only ${D.length+1} present.`);if(I!==2&&I!==4&&I!==8)throw new TypeError(`Failed to execute 'drawImage' on 'Renderer': Valid arities are: [3, 5, 9], but ${D.length+1} arguments provided.`);let R=null,B=null;I===2?R=[D[0],D[1],L.width,L.height]:I===4?R=D:I===8&&(B=D.slice(0,4),R=D.slice(4));const z=this.createTexture(L),{width:K,height:Q}=this.canvas,_=new o.default;_.rect(R[0],R[1],K,Q);const j=new c.default(_,{width:K,height:Q});j.setTexture(z,{rect:R,srcRect:B}),this.drawMeshes([j]),this.deleteTexture(z)}setGlobalTransform(...L){return this[f]=[L[0],L[1],0,L[2],L[3],0,L[4],L[5],1],this}globalTransform(...L){const D=this[f];return this[f]=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),D,L),this}globalTranslate(L,D){let I=n.mat3.create();return I=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),I,[L,D]),this.globalTransform(...I)}globalRotate(L,[D,I]=[0,0]){let R=n.mat3.create();return R=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),R,[D,I]),R=n.mat3.rotate(Array.of(0,0,0,0,0,0,0,0,0),R,L),R=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),R,[-D,-I]),this.globalTransform(...R)}globalScale(L,D=L,[I,R]=[0,0]){let B=n.mat3.create();return B=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),B,[I,R]),B=n.mat3.scale(Array.of(0,0,0,0,0,0,0,0,0),B,[L,D]),B=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),B,[-I,-R]),this.globalTransform(...B)}globalSkew(L,D=L,[I,R]=[0,0]){let B=n.mat3.create();return B=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),B,[I,R]),B=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),B,n.mat3.fromValues(1,Math.tan(D),Math.tan(L),1,0,0)),B=n.mat3.translate(Array.of(0,0,0,0,0,0,0,0,0),B,[-I,-R]),this.globalTransform(...B)}transformPoint(L,D,I){let R=this.globalTransformMatrix;I&&(R=n.mat3.multiply(Array.of(0,0,0,0,0,0,0,0,0),R,I));const B=L*R[0]+D*R[2]+R[4],z=L*R[1]+D*R[3]+R[5];return[B,z]}}},function(d,r,t){t.r(r);var e=t(15);t(1).glMatrix.setMatrixArrayType(Array),r.default=e.default},function(d,r,t){t.r(r),t.d(r,"default",function(){return y});var e=t(16),n=t(17),a=t(18),s=t(19);t(1).glMatrix.setMatrixArrayType(Array);function i(O,x,v){return x in O?Object.defineProperty(O,x,{value:v,enumerable:!0,configurable:!0,writable:!0}):O[x]=v,O}const o={};function c(O,x=3){const v=[],T=O.length;for(let l=0;l<T;l++)l%x<2&&v.push(.5*(O[l]+1));return v}function m(O,x){const v=x._buffers;Object.values(v).forEach(T=>{O.deleteBuffer(T)}),x._buffers={}}function u(O,x,v){return O.activeTexture(O.TEXTURE0+v),Array.isArray(x._img)?O.bindTexture(O.TEXTURE_CUBE_MAP,x):O.bindTexture(O.TEXTURE_2D,x),x}const p={int:"1i",ivec2:"2i",ivec3:"3i",ivec4:"4i",float:"1f",vec2:"2f",vec3:"3f",vec4:"4f",mat2:"Matrix2fv",mat3:"Matrix3fv",mat4:"Matrix4fv",sampler1D:"sampler1D",sampler2D:"sampler2D",sampler3D:"sampler3D",samplerCube:"samplerCube",sampler1DShadow:"sampler1DShadow",sampler2DShadow:"sampler2DShadow",sampler2DRect:"sampler2DRect",sampler2DRectShadow:"sampler2DRectShadow"};class y{static addLibs(x={}){Object.assign(o,x)}static FLOAT(x,v){return Object(e.pointsToBuffer)(x,Float32Array,v)}static UNSIGNED_BYTE(x,v){return Object(e.pointsToBuffer)(x,Uint8Array,v)}static UNSIGNED_SHORT(x,v){return Object(e.pointsToBuffer)(x,Uint16Array,v)}static BYTE(x,v){return Object(e.pointsToBuffer)(x,Int8Array,v)}static SHORT(x,v){return Object(e.pointsToBuffer)(x,Int16Array,v)}constructor(x,v={}){this.options=Object.assign({},y.defaultOptions,v),this.canvas=x;let T;this.options.webgl2&&(T=x.getContext("webgl2",this.options)),T==null&&(T=Object(e.setupWebGL)(x,this.options),this.aia_ext=T.getExtension("ANGLE_instanced_arrays")),this.gl=T,T.viewport(0,0,x.width,x.height),T.clearColor(0,0,0,0),T.blendFuncSeparate(T.SRC_ALPHA,T.ONE_MINUS_SRC_ALPHA,T.ONE,T.ONE_MINUS_SRC_ALPHA),this.programs=[],this._events={}}get program(){const x=this.gl;return x.getParameter(x.CURRENT_PROGRAM)}_declareUniform(x,v,T="1f"){const l=this.gl,h=l.getUniformLocation(x,v);let f;const g=this;if(/^sampler/.test(T)){const M=x._samplerMap,A=x._bindTextures;Object.defineProperty(x.uniforms,v,{get(){return f},set(C){f=C;const b=M[v]!=null?M[v]:A.length;A[b]=C,u(l,C,b),M[v]||(M[v]=b,l.uniform1i(h,b)),g.options.autoUpdate&&g.update()},configurable:!1,enumerable:!0})}else{const M=T.indexOf("Matrix")===0,A=!M&&/v$/.test(T),C=l[`uniform${T}`].bind(l);Object.defineProperty(x.uniforms,v,{get(){return f},set(b){f=b,typeof b=="number"&&(b=[b]),M?C(h,!1,b):A?C(h,b):C(h,...b),g.options.autoUpdate&&g.update()},configurable:!1,enumerable:!0})}}_draw(){const x=this.program;x.meshData.forEach((v,T)=>{const{positions:l,cells:h,instanceCount:f,cellsCount:g,attributes:M,uniforms:A,textureCoord:C,enableBlend:b}=v,E=this.gl;let L=v.mode!=null?v.mode:E.TRIANGLES;typeof L=="string"&&(L=E[L]),b?E.enable(E.BLEND):E.disable(E.BLEND),E.bindBuffer(E.ARRAY_BUFFER,x._buffers.verticesBuffer),E.bufferData(E.ARRAY_BUFFER,l,E.STATIC_DRAW),h&&(E.bindBuffer(E.ELEMENT_ARRAY_BUFFER,x._buffers.cellsBuffer),E.bufferData(E.ELEMENT_ARRAY_BUFFER,h,E.STATIC_DRAW));const D=[];M&&Object.values(M).forEach(({name:R,data:B,divisor:z})=>{if(E.bindBuffer(E.ARRAY_BUFFER,x._buffers[R]),E.bufferData(E.ARRAY_BUFFER,B,E.STATIC_DRAW),z!=null){const K=E.getAttribLocation(x,R);K>=0&&(E.enableVertexAttribArray(K),D.push(K),E.vertexAttribDivisor?E.vertexAttribDivisor(K,z):this.aia_ext&&this.aia_ext.vertexAttribDivisorANGLE(K,z))}}),A&&Object.entries(A).forEach(([R,B])=>{this.uniforms[R]=B});let I;if(!h){const R=x._dimension;I=l.length/R}if(x._enableTextures&&x._buffers.texCoordBuffer){const R=C||c(l,x._dimension);E.bindBuffer(E.ARRAY_BUFFER,x._buffers.texCoordBuffer),E.bufferData(E.ARRAY_BUFFER,y.FLOAT(R),E.STATIC_DRAW)}f!=null?(h?E.drawElementsInstanced?E.drawElementsInstanced(L,g,E.UNSIGNED_SHORT,0,f):this.aia_ext&&this.aia_ext.drawElementsInstancedANGLE(L,g,E.UNSIGNED_SHORT,0,f):E.drawArraysInstanced?E.drawArraysInstanced(L,0,I,f):this.aia_ext.drawArraysInstancedANGLE(L,0,I,f),D.forEach(R=>{E.vertexAttribDivisor?E.vertexAttribDivisor(R,null):this.aia_ext&&this.aia_ext.vertexAttribDivisorANGLE(R,null)})):h?E.drawElements(L,g,E.UNSIGNED_SHORT,0):E.drawArrays(L,0,I)})}get isWebGL2(){return typeof WebGL2RenderingContext<"u"&&this.gl instanceof WebGL2RenderingContext}get enableTextures(){return this.program&&this.program._enableTextures}get uniforms(){const x=this.program;if(!x||!x.uniforms)throw Error("No avaliable program.");return x.uniforms}deleteProgram(x){const v=this.gl;this.program===x&&(this.startRender=!1,this._renderFrameID&&(cancelAnimationFrame(this._renderFrameID),delete this._renderFrameID),v.useProgram(null));const T=this.programs.indexOf(x);T>=0&&this.programs.splice(T,1),m(v,x),v.deleteProgram(x)}setMeshData(x){Array.isArray(x)||(x=[x]);const v=this.program;v.meshData=x.map(({mode:T,positions:l,instanceCount:h,cells:f,cellsCount:g,attributes:M,uniforms:A,textureCoord:C,enableBlend:b})=>{const E={positions:y.FLOAT(l),uniforms:A,enableBlend:!!b,textureCoord:y.FLOAT(C)};if(f&&(E.cells=y.USHORT(f),E.cellsCount=g||E.cells.length),T!=null&&(E.mode=T),h!=null){if(!this.isWebGL2&&!this.aia_ext)throw new Error("Cannot use instanceCount in this rendering context, use webgl2 context instead.");E.instanceCount=h}if(M){const L={};Object.entries(M).forEach(([D,I])=>{if(!v._attribute[D])v._attribute[D]="ignored";else if(v._attribute[D]!=="ignored"){const{name:R,type:B}=v._attribute[D];let z=I.data||I;if(Array.isArray(z)&&(z=y[B](z)),L[D]={name:R,data:z},I.divisor!=null){if(!this.isWebGL2&&!this.aia_ext)throw new Error("Cannot use divisor in this rendering context, use webgl2 context instead.");L[D].divisor=I.divisor}}}),E.attributes=L}return E}),this.options.autoUpdate&&this.update()}createProgram(x,v){const T=/^\s*uniform\s+sampler/mg.test(x);x==null&&(x=a.default),v==null&&(v=T?s.default:n.default);const l=this.gl,h=Object(e.createProgram)(l,v,x);h.shaderText={vertexShader:v,fragmentShader:x},h._buffers={},h._attribute={},h.uniforms={},h._samplerMap={},h._bindTextures=[];const f=new RegExp(`(?:attribute|in) vec(\\d) ${this.options.vertexPosition}`,"im");let g=v.match(f);g&&(h._dimension=Number(g[1]));const M=new RegExp(`(?:attribute|in) vec(\\d) ${this.options.vertexTextureCoord}`,"im");g=v.match(M),g&&(h._texCoordSize=Number(g[1]));const A=/^\s*(?:attribute|in) (\w+?)(\d*) (\w+)/gim;if(g=v.match(A),g)for(let E=0;E<g.length;E++){const L=/^\s*(?:attribute|in) (\w+?)(\d*) (\w+)/im,D=g[E].match(L);if(D&&D[3]!==this.options.vertexPosition&&D[3]!==this.options.vertexTextureCoord){let[,I,R,B]=D;I==="mat"&&(R**=2),h._buffers[B]=l.createBuffer(),h._attribute[B]={name:B,type:I,size:Number(R)||1}}}const C=/^\s*uniform\s+(\w+)\s+(\w+)(\[\d+\])?/mg;g=v.match(C)||[],g=g.concat(x.match(C)||[]),g.forEach(E=>{const L=E.match(/^\s*uniform\s+(\w+)\s+(\w+)(\[\d+\])?/);let[D,I,R]=L.slice(1);D=p[D],R=!!R,D.indexOf("Matrix")!==0&&R&&(D+="v"),this._declareUniform(h,I,D)}),h._buffers.verticesBuffer=l.createBuffer(),h._buffers.cellsBuffer=l.createBuffer();const b=l.getAttribLocation(h,this.options.vertexTextureCoord);return h._enableTextures=b>=0,h._enableTextures&&(h._buffers.texCoordBuffer=l.createBuffer()),this.programs.push(h),h}useProgram(x,v={}){this.startRender=!1,this._renderFrameID&&(cancelAnimationFrame(this._renderFrameID),delete this._renderFrameID);const T=this.gl;T.useProgram(x);const l=x._dimension;T.bindBuffer(T.ARRAY_BUFFER,x._buffers.verticesBuffer);const h=T.getAttribLocation(x,this.options.vertexPosition);if(T.vertexAttribPointer(h,l,T.FLOAT,!1,0,0),T.enableVertexAttribArray(h),x._enableTextures){T.bindBuffer(T.ARRAY_BUFFER,x._buffers.texCoordBuffer);const f=T.getAttribLocation(x,this.options.vertexTextureCoord);T.vertexAttribPointer(f,x._texCoordSize||2,T.FLOAT,!1,0,0),T.enableVertexAttribArray(f)}if(Object.entries(x._attribute).forEach(([f,g])=>{if(g!=="ignored"){const M=g.size,A=v[f]||{},C=!!A.normalize;let b=A.type||"FLOAT";const E=A.key||f;b==="UBYTE"&&(b="UNSIGNED_BYTE"),b==="USHORT"&&(b="UNSIGNED_SHORT"),g.type=b,E&&E!==f&&(x._attribute[E]=g),T.bindBuffer(T.ARRAY_BUFFER,x._buffers[f]);const L=T.getAttribLocation(x,f);L>=0&&(T.vertexAttribPointer(L,M,T[b],C,0,0),T.enableVertexAttribArray(L))}}),!x.meshData){const f=[[-1,-1,0,1].slice(0,l),[1,-1,0,1].slice(0,l),[1,1,0,1].slice(0,l),[-1,1,0,1].slice(0,l)],g=[[0,1,3],[3,1,2]];this.setMeshData({positions:f,cells:g})}return x}compileSync(x,v){x=x||a.default;const T={};function l(M){M=M.replace(/^\s*/mg,"");const A=[],C=M.match(/^#pragma\s+include\s+.*/mg);if(C){for(let b=0;b<C.length;b++){const L=C[b].match(/(?:<|")(.*)(?:>|")/);if(L){const D=L[0].indexOf("<")===0?"lib":"link";let I=L[1];if(I==="graph"&&(I="graphics"),T[I])A.push(`/* included ${I} */`);else if(T[I]=!0,D==="lib"){const R=l(o[I]);A.push(R)}else if(D==="link")throw new Error("Cannot load external links synchronously. Use compile instead of compileSync.")}}A.forEach(b=>{M=M.replace(/^#pragma\s+include\s+.*/m,b)})}return M}const h=l(x),f=v?l(v):null;return this.createProgram(h,f)}async compile(x,v){x=x||a.default;const T={};async function l(M){M=M.replace(/^\s*/mg,"");const A=[],C=M.match(/^#pragma\s+include\s+.*/mg);if(C){for(let b=0;b<C.length;b++){const L=C[b].match(/(?:<|")(.*)(?:>|")/);if(L){const D=L[0].indexOf("<")===0?"lib":"link";let I=L[1];if(I==="graph"&&(I="graphics"),T[I])A.push(`/* included ${I} */`);else if(T[I]=!0,D==="lib"){const R=await l(o[I]);A.push(R)}else if(D==="link"){let R=await y.fetchShader(I);R=await l(R),A.push(R)}}}A.forEach(b=>{M=M.replace(/^#pragma\s+include\s+.*/m,b)})}return M}const h=await l(x),f=v?await l(v):null;return this.createProgram(h,f)}async load(x,v=null){return x=await y.fetchShader(x),v&&(v=await y.fetchShader(v)),this.compile(x,v)}createTexture(x=null,{wrapS:v=this.gl.CLAMP_TO_EDGE,wrapT:T=this.gl.CLAMP_TO_EDGE,minFilter:l=this.gl.LINEAR,magFilter:h=this.gl.LINEAR}={}){const f=this.gl,g=Array.isArray(x)?f.TEXTURE_CUBE_MAP:f.TEXTURE_2D;this._max_texture_image_units=this._max_texture_image_units||f.getParameter(f.MAX_COMBINED_TEXTURE_IMAGE_UNITS),f.activeTexture(f.TEXTURE0+this._max_texture_image_units-1);const M=f.createTexture();f.bindTexture(g,M),f.pixelStorei(f.UNPACK_FLIP_Y_WEBGL,!0);const{width:A,height:C}=this.canvas;if(x)if(g===f.TEXTURE_CUBE_MAP)for(let b=0;b<6;b++)f.texImage2D(f.TEXTURE_CUBE_MAP_POSITIVE_X+b,0,f.RGBA,f.RGBA,f.UNSIGNED_BYTE,x[b]);else f.texImage2D(g,0,f.RGBA,f.RGBA,f.UNSIGNED_BYTE,x);else if(g===f.TEXTURE_CUBE_MAP)for(let b=0;b<6;b++)this.gl.texImage2D(this.gl.TEXTURE_CUBE_MAP_POSITIVE_X+b,0,f.RGBA,A,C,0,f.RGBA,f.UNSIGNED_BYTE,null);else f.texImage2D(g,0,f.RGBA,A,C,0,f.RGBA,f.UNSIGNED_BYTE,null);return f.texParameteri(g,f.TEXTURE_MIN_FILTER,l),f.texParameteri(g,f.TEXTURE_MAG_FILTER,h),f.texParameteri(g,f.TEXTURE_WRAP_S,v),f.texParameteri(g,f.TEXTURE_WRAP_T,T),g===f.TEXTURE_CUBE_MAP&&(x.width=x[0].width,x.height=x[0].height),f.bindTexture(g,null),M._img=x||{width:A,height:C},M.delete=()=>{this.deleteTexture(M)},M}deleteTexture(x){const v=x._img;this.gl.deleteTexture(x),typeof v.close=="function"&&v.close()}async loadTexture(x,{useImageBitmap:v=!0}={}){const T=await y.loadImage(x,{useImageBitmap:v});return this.createTexture(T)}createFBO({color:x=1,blend:v=!1,depth:T=this.options.depth!==!1,stencil:l=!!this.options.stencil}={}){const h=this.gl,f=h.createFramebuffer();h.bindFramebuffer(h.FRAMEBUFFER,f);const g=[];for(let C=0;C<x;C++){const b=this.createTexture();h.framebufferTexture2D(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0+C,h.TEXTURE_2D,b,0),g.push(b)}f.textures=g,f.texture=g[0],f.blend=v;const{width:M,height:A}=this.canvas;return T&&!l&&(f.depthBuffer=h.createRenderbuffer(),h.bindRenderbuffer(h.RENDERBUFFER,f.depthBuffer),h.renderbufferStorage(h.RENDERBUFFER,h.DEPTH_COMPONENT16,M,A),h.framebufferRenderbuffer(h.FRAMEBUFFER,h.DEPTH_ATTACHMENT,h.RENDERBUFFER,f.depthBuffer)),l&&!T&&(f.stencilBuffer=h.createRenderbuffer(),h.bindRenderbuffer(h.RENDERBUFFER,f.stencilBuffer),h.renderbufferStorage(h.RENDERBUFFER,h.STENCIL_INDEX8,M,A),h.framebufferRenderbuffer(h.FRAMEBUFFER,h.STENCIL_ATTACHMENT,h.RENDERBUFFER,f.stencilBuffer)),T&&l&&(f.depthStencilBuffer=h.createRenderbuffer(),h.bindRenderbuffer(h.RENDERBUFFER,f.depthStencilBuffer),h.renderbufferStorage(h.RENDERBUFFER,h.DEPTH_STENCIL,M,A),h.framebufferRenderbuffer(h.FRAMEBUFFER,h.DEPTH_STENCIL_ATTACHMENT,h.RENDERBUFFER,f.depthStencilBuffer)),h.bindFramebuffer(h.FRAMEBUFFER,null),f}bindFBO(x=null){this.fbo=x}render({clearBuffer:x=!0}={}){this.startRender=!0;const v=this.gl;let T=this.program;T||(T=this.createProgram(),this.useProgram(T)),this.fbo&&v.bindFramebuffer(v.FRAMEBUFFER,this.fbo);const l=this.options.depth;l&&v.enable(v.DEPTH_TEST),this.gl.clear(this.gl.COLOR_BUFFER_BIT|(l?this.gl.DEPTH_BUFFER_BIT:0)|(this.options.stencil?this.gl.STENCIL_BUFFER_BIT:0));const h=this._renderFrameID;this._draw(),this.fbo&&v.bindFramebuffer(v.FRAMEBUFFER,null),this._renderFrameID===h&&(this._renderFrameID=null)}update(){this.startRender&&this._renderFrameID==null&&(this._renderFrameID=requestAnimationFrame(this.render.bind(this)))}}i(y,"defaultOptions",{preserveDrawingBuffer:!0,autoUpdate:!0,vertexPosition:"a_vertexPosition",vertexTextureCoord:"a_vertexTextureCoord",webgl2:!1}),i(y,"UBYTE",y.UNSIGNED_BYTE),i(y,"USHORT",y.UNSIGNED_SHORT),i(y,"fetchShader",e.fetchShader),i(y,"loadImage",e.loadImage)},function(d,r,t){t.r(r),t.d(r,"setupWebGL",function(){return n}),t.d(r,"createProgram",function(){return a}),t.d(r,"pointsToBuffer",function(){return s}),t.d(r,"loadImage",function(){return o}),t.d(r,"fetchShader",function(){return m}),t(1).glMatrix.setMatrixArrayType(Array);function e(u,p){const y=["webgl","experimental-webgl","webkit-3d","moz-webgl"];let O=null;for(let x=0;x<y.length;++x){try{O=u.getContext(y[x],p)}catch{}if(O)break}return O}function n(u,p){const y=e(u,p);if(!y)throw new Error("Sorry, your browser doesn't support WebGL.");return y}function a(u,p,y){const O=u.createShader(u.VERTEX_SHADER);if(u.shaderSource(O,p),u.compileShader(O),!u.getShaderParameter(O,u.COMPILE_STATUS)){const T=`Vertex shader failed to compile. The error log is:${u.getShaderInfoLog(O)}`;throw new Error(T)}const x=u.createShader(u.FRAGMENT_SHADER);if(u.shaderSource(x,y),u.compileShader(x),!u.getShaderParameter(x,u.COMPILE_STATUS)){const T=`Fragment shader failed to compile. The error log is:${u.getShaderInfoLog(x)}`;throw new Error(T)}const v=u.createProgram();if(u.attachShader(v,O),u.attachShader(v,x),u.linkProgram(v),!u.getProgramParameter(v,u.LINK_STATUS)){const T=`Shader program failed to link. The error log is:${u.getProgramInfoLog(v)}`;throw new Error(T)}return u.deleteShader(O),u.deleteShader(x),v}function s(u,p=Float32Array,y=null){if(y&&!(y instanceof p))throw new TypeError("Wrong buffer type.");if(u==null||u instanceof p)return u;if(u[0]==null||u[0].length==null)return y?(y.set(u,0),y):new p(u);const O=u[0].length,x=u.length;y||(y=new p(O*x));let v=0;for(let T=0;T<x;T++)for(let l=0;l<O;l++)y[v++]=u[T][l];return y}const i={};function o(u,{useImageBitmap:p=!0,alias:y=null}={}){if(!i[u]){if(typeof Image=="function"){const O=new Image;typeof u=="string"&&!(typeof location=="object"&&/^file:/.test(location.href))&&!/^data:/.test(u)&&(O.crossOrigin="anonymous"),i[u]=new Promise(x=>{O.onload=function(){p&&typeof createImageBitmap=="function"?createImageBitmap(O,{imageOrientation:"flipY"}).then(v=>{i[u]=v,y&&(i[y]=v),x(v)}):(i[u]=O,y&&(i[y]=O),x(O))},O.src=u}),y&&(i[y]=i[u])}else if(typeof fetch=="function")return fetch(u,{method:"GET",mode:"cors",cache:"default"}).then(O=>O.blob()).then(O=>createImageBitmap(O,{imageOrientation:"flipY"}).then(x=>(i[u]=x,y&&(i[y]=x),x)))}return i[u]}const c={};async function m(u){if(c[u])return c[u];const p=await fetch(u);if(p.status>=200&&p.status<300){const y=await p.text();return c[u]=y,y}throw new Error("Shader loaded error.")}},function(d,r,t){t.r(r),r.default=`attribute vec3 a_vertexPosition;
20
+
21
+ void main() {
22
+ gl_PointSize = 1.0;
23
+ gl_Position = vec4(a_vertexPosition, 1);
24
+ }`},function(d,r,t){t.r(r),r.default=`#ifdef GL_ES
25
+ precision mediump float;
26
+ #endif
27
+
28
+ void main() {
29
+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.1);
30
+ }`},function(d,r,t){t.r(r),r.default=`attribute vec4 a_vertexPosition;
31
+ attribute vec2 a_vertexTextureCoord;
32
+ varying vec2 vTextureCoord;
33
+
34
+ void main() {
35
+ gl_PointSize = 1.0;
36
+ gl_Position = a_vertexPosition;
37
+ vTextureCoord = a_vertexTextureCoord;
38
+ }`},function(d,r,t){t.r(r),t.d(r,"default",function(){return s});var e=t(21),n=t(25);t(1).glMatrix.setMatrixArrayType(Array);const a=Symbol("transform");class s{constructor(o,c){this.context=o.getContext("2d"),this.options=c,this[a]=[1,0,0,1,0,0]}createTexture(o){return{_img:o}}async loadTexture(o){const c=await e.default.loadImage(o,{useImageBitmap:!1});return this.createTexture(c)}deleteTexture(o){return o}clear(o,c,m,u){const p=this.context;o=o||0,c=c||0,m=m||p.canvas.width-o,u=u||p.canvas.height-c,p.clearRect(o,c,m,u)}drawMeshCloud(o,{clear:c=!1}={}){const m=[];for(let u=0;u<o.amount;u++){const p=o.getTransform(u);let y=o.getTextureFrame(u);y&&(y=y._img);const O=o.getFilter(u),{fill:x,stroke:v}=o.getCloudRGBA(u);m.push({mesh:o.mesh,_cloudOptions:[x,v,y,p,O]})}o.beforeRender&&o.beforeRender(this.context,o),this.drawMeshes(m,{clear:c,hook:!1}),o.afterRender&&o.afterRender(this.context,o)}drawMeshes(o,{clear:c=!1,hook:m=!0}={}){const u=this.context;c&&u.clearRect(0,0,u.canvas.width,u.canvas.height);let p=null;const{width:y,height:O}=u.canvas,x=o.length;o.forEach((v,T)=>{let l,h,f,g,M;m&&v.beforeRender&&v.beforeRender(u,v),v._cloudOptions&&([l,h,f,g,M]=v._cloudOptions,v=v.mesh);let A=v.filter;if(M&&(A=A?`${A} ${M}`:M),A&&!this.filterBuffer&&this.filterBuffer!==!1){const C=e.default.createCanvas(y,O);C?this.filterBuffer=C.getContext("2d"):this.filterBuffer=!1}p&&p!==A&&(Object(n.applyFilter)(this.filterBuffer,p),u.drawImage(this.filterBuffer.canvas,0,0,y,O),this.filterBuffer.clearRect(0,0,y,O),p=null),A&&this.filterBuffer?(this.filterBuffer.save(),this.filterBuffer.transform(...this[a]),Object(n.drawMesh2D)(v,this.filterBuffer,!1,l,h,f,g),this.filterBuffer.restore(),T===x-1?(Object(n.applyFilter)(this.filterBuffer,A),u.drawImage(this.filterBuffer.canvas,0,0,y,O),this.filterBuffer.clearRect(0,0,y,O)):p=A):(u.save(),u.transform(...this[a]),Object(n.drawMesh2D)(v,u,!1,l,h,f,g),u.restore()),m&&v.afterRender&&v.afterRender(u,v)})}setTransform(o){this[a]=o}}},function(d,r,t){t.r(r),(function(e){var n=t(14),a=t(23),s=t(24);t(1).glMatrix.setMatrixArrayType(Array);const i={};function o(y,O){const{style:x,variant:v,weight:T,stretch:l,size:h,pxLineHeight:f,family:g}=y;return l==="normal"?`${x} ${v} ${T} ${h*O}px/${f*O}px ${g}`:`${x} ${v} ${T} ${l} ${h*O}px/${f*O}px ${g}`}function c(y,{font:O,fillColor:x,strokeColor:v,strokeWidth:T,ratio:l=1,textCanvas:h,cachable:f=!1}){let g;if(f){g=[y,O,String(x),String(v),String(T)].join("###");const z=i[g];if(z)return z}h||(h=u(1,1));const M=h.getContext("2d");M.save(),M.font=O;let{width:A}=M.measureText(y);M.restore();const C=Object(a.default)(O),b=Math.max(C.pxLineHeight,C.pxHeight*1.13);/italic|oblique/.test(O)&&(A+=b*Math.tan(15*Math.PI/180)),!x&&!v&&(x="#000");const E=M.canvas,L=Math.ceil(A),D=Math.ceil(b);E.width=Math.round(L*l),E.height=Math.round(D*l),M.save(),M.font=o(C,l),M.textAlign="center",M.textBaseline="middle";const I=E.height*.5+C.pxHeight*.05*l,R=E.width*.5;if(x){if(Array.isArray(x))x=Object(s.default)(x);else if(x.vector){let z;const{vector:K,colors:Q}=x;K.length===6?z=M.createRadialGradient(...K):z=M.createLinearGradient(...K),Q.forEach(({offset:_,color:j})=>{z.addColorStop(_,j)}),x=z}M.fillStyle=x,M.fillText(y,R,I)}if(v){if(M.lineWidth=T*l,Array.isArray(v))v=Object(s.default)(v);else if(v.vector){let z;const{vector:K,colors:Q}=v;K.length===6?z=M.createRadialGradient(...K):z=M.createLinearGradient(...K),Q.forEach(({offset:_,color:j})=>{z.addColorStop(_,j)}),v=z}M.strokeStyle=v,M.strokeText(y,R,I)}M.restore();const B={image:h,rect:[0,0,L,D]};return f&&(i[g]=B),B}let m=!1;if(typeof navigator=="object"&&typeof navigator.userAgent=="string"){const y=navigator.userAgent.toLowerCase().match(/chrome\/(\d+)/);y&&(m=Number(y[1])<70)}function u(y,O,x={}){const v=x.offscreen||!m&&x.offscreen!==!1;let T;return typeof e<"u"&&typeof e.createCanvas=="function"?T=e.createCanvas(y,O,x):v&&typeof OffscreenCanvas=="function"?T=new OffscreenCanvas(y,O):(T=document.createElement("canvas"),T.width=y,T.height=O),T}const p={createCanvas:u,createText:c,loadImage:n.default.loadImage};r.default=p}).call(this,t(22))},function(d,r){var t;t=function(){return this}();try{t=t||new Function("return this")()}catch{typeof window=="object"&&(t=window)}d.exports=t},function(d,r,t){t.r(r),t.d(r,"default",function(){return x}),t(1).glMatrix.setMatrixArrayType(Array);function e(v,T){if(typeof v=="string"){const f=v.trim().match(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin|%)$/);f?v={size:parseFloat(f[1]),unit:f[2]}:v={size:parseInt(v,10),unit:"px"}}let{size:l,unit:h}=v;if(h==="pt")l/=.75;else if(h==="pc")l*=16;else if(h==="in")l*=96;else if(h==="cm")l*=96/2.54;else if(h==="mm")l*=96/25.4;else if(h==="em"||h==="rem"||h==="ex"){if(!T&&typeof getComputedStyle=="function"&&typeof document<"u"){const f=getComputedStyle(document.documentElement).fontSize;T=e(f,16)}l*=T,h==="ex"&&(l/=2)}else if(h==="q")l*=96/25.4/4;else if(h==="vw"||h==="vh"){if(typeof document<"u"){const f=h==="vw"?document.documentElement.clientWidth:document.documentElement.clientHeight;l*=f/100}}else if((h==="vmax"||h==="vmin")&&typeof document<"u"){const f=document.documentElement.clientWidth,g=document.documentElement.clientHeight;h==="vmax"?l*=Math.max(f,g)/100:l*=Math.min(f,g)/100}return l}const n="bold|bolder|lighter|[1-9]00",a="italic|oblique",s="small-caps",i="ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded",o="px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin|%",c=`'([^']+)'|"([^"]+)"|([\\w-]|[一-龥])+`,m=new RegExp(`(${n}) +`,"i"),u=new RegExp(`(${a}) +`,"i"),p=new RegExp(`(${s}) +`,"i"),y=new RegExp(`(${i}) +`,"i"),O=new RegExp("([\\d\\.]+)("+o+")(?:\\/([\\d\\.]+)("+o+"))? *((?:"+c+")( *, *(?:"+c+"))*)");function x(v,T){const l=O.exec(v);if(!l)return;const h=parseFloat(l[3]),f={weight:"normal",style:"normal",stretch:"normal",variant:"normal",size:parseFloat(l[1]),unit:l[2],lineHeight:Number.isFinite(h)?h:void 0,lineHeightUnit:l[4],family:l[5].replace(/ *, */g,",")},g=v.substring(0,l.index),M=m.exec(g),A=u.exec(g),C=p.exec(g),b=y.exec(g);return M&&(f.weight=M[1]),A&&(f.style=A[1]),C&&(f.variant=C[1]),b&&(f.stretch=b[1]),f.pxHeight=e({size:f.size,unit:f.unit},T),f.pxLineHeight=e({size:f.lineHeight||f.size,unit:f.lineHeightUnit||f.unit},T),f}},function(d,r,t){t.r(r),t.d(r,"default",function(){return e}),t(1).glMatrix.setMatrixArrayType(Array);function e(n){return`rgba(${n.map((a,s)=>s<3?Math.round(a*255):a).join()})`}},function(d,r,t){t.r(r),t.d(r,"applyFilter",function(){return i}),t.d(r,"drawMesh2D",function(){return c});var e=t(1),n=t(24),a=t(23),s=t(26);t(1).glMatrix.setMatrixArrayType(Array);function i(m,u){const p=m.canvas;m.save(),m.filter=u,m.drawImage(p,0,0,p.width,p.height),m.restore()}function o(m,u){const p=/rgba\((\d+),(\d+),(\d+),(\d+)\)/;m=m.match(p).slice(1,5).map(Number),u=u.match(p).slice(1,5).map(Number);const y=[],O=u[3];for(let x=0;x<4;x++)y[x]=Object(s.mix)(m[x],u[x],O);return`rgba(${y.join()})`}function c(m,u,p=!0,y=null,O=null,x=null,v=null){u.save();let T=!1,l=!1;if(u.globalAlpha=m.getOpacity(),m._updateMatrix&&m.transformScale/m.contours.scale>1.5&&m.accurate(m.transformScale),m.lineWidth){let g=m.gradient&&m.gradient.stroke;if(g){const{vector:M,colors:A}=g;if(M.length===6)g=u.createRadialGradient(...M);else if(M.length===4)g=u.createLinearGradient(...M);else if(M.length===3)g=u.createCircularGradient(...M);else throw new TypeError("Invalid vector dimension.");A.forEach(({offset:C,color:b})=>{let E=Object(n.default)(b);O&&(E=o(E,O)),g.addColorStop(C,E)}),u.strokeStyle=g,T=!0}else m.strokeStyle&&(O?u.strokeStyle=o(m.strokeStyle,O):u.strokeStyle=m.strokeStyle,T=!0)}T&&(u.lineWidth=m.lineWidth,u.lineJoin=m.lineJoin,u.lineCap=m.lineCap,u.miterLimit=m.miterLimit,m.lineDash&&(u.setLineDash(m.lineDash),m.lineDashOffset&&(u.lineDashOffset=m.lineDashOffset)));let h=m.gradient&&m.gradient.fill;if(h){const{vector:g,colors:M}=h;if(g.length===6)h=u.createRadialGradient(...g);else if(g.length===4)h=u.createLinearGradient(...g);else if(g.length===3)h=u.createCircularGradient(...g);else throw new TypeError("Invalid vector dimension.");M.forEach(({offset:A,color:C})=>{let b=Object(n.default)(C);O&&(b=o(b,O)),h.addColorStop(A,b)}),u.fillStyle=h,l=!0}else m.fillStyle&&(y?u.fillStyle=o(m.fillStyle,y):u.fillStyle=m.fillStyle,l=!0);if(v&&u.transform(...v),u.transform(...m.transformMatrix),m.clipPath){const g=m.clipPath,M=new Path2D(g);u.clip(M)}const f=m.contours.length;if(m.contours.forEach((g,M)=>{const A=g.length,C=A>1&&e.vec2.equals(g[0],g[A-1]),b=M===f-1&&m.texture;if(g&&A>0){if(l||T||b){u.beginPath(),u.moveTo(...g[0]);for(let E=1;E<A;E++)E===A-1&&C?u.closePath():u.lineTo(...g[E])}if(l&&u.fill(m.fillRule),b){u.save(),u.clip();let{image:E,options:L}=m.texture;if(x&&(E=x),L.repeat&&console.warn("Context 2D not supported image repeat yet."),E.font){L.scale&&console.warn("Context 2D not supported text scale yet."),L.srcRect&&console.warn("Context 2D not supported text srcRect yet.");let{font:D,fillColor:I,strokeColor:R,strokeWidth:B,text:z}=E;!I&&!R&&(I="#000"),Array.isArray(I)&&(I=Object(n.default)(I)),Array.isArray(R)&&(R=Object(n.default)(R)),u.font=D;const{width:K}=u.measureText(z),Q=Object(a.default)(D),_=Math.max(Q.pxLineHeight,Q.pxHeight*1.13);u.textAlign="center",u.textBaseline="middle";const j=L.rect,G=j[0]+_*.5+Q.pxHeight*.06,X=j[1]+K*.5;j[2]!=null&&u.scale(j[2]/K,j[3]/_),I&&(u.fillStyle=I,u.fillText(z,X,G)),R&&(u.lineWidth=B,u.strokeStyle=R,u.strokeText(z,X,G))}else{let D=L.rect;const I=L.srcRect;L.scale&&(D=[0,0,u.canvas.width,u.canvas.height]),L.rotated&&D&&(D=[-D[1],D[0],D[3],D[2]]),I&&(D=D||[0,0,I[2],I[3]]),L.rotated&&(u.translate(0,D?D[2]:E.width),u.rotate(-.5*Math.PI)),I?u.drawImage(E,...I,...D):D?u.drawImage(E,...D):u.drawImage(E,0,0)}u.restore()}T&&u.stroke()}}),u.restore(),p){const g=m.filter;g&&i(u,g)}}},function(d,r,t){t.r(r),t.d(r,"clamp",function(){return e}),t.d(r,"mix",function(){return n}),t.d(r,"transformPoint",function(){return a}),t(1).glMatrix.setMatrixArrayType(Array);function e(s,i,o){return i>o&&([i,o]=[o,i]),s<i?i:s>o?o:s}function n(s,i,o){return s*(1-o)+i*o}function a(s,i){const[o,c]=s;return[o*i[0]+c*i[2]+i[4],o*i[1]+c*i[3]+i[5]]}},function(d,r,t){t.r(r),t.d(r,"default",function(){return o});var e=t(28),n=t(29);t(1).glMatrix.setMatrixArrayType(Array);function a(c,m,u){const p=c.uniforms||{},y=m.uniforms||{};if(p.u_texSampler&&y.u_texSampler&&p.u_texSampler!==y.u_texSampler)return!1;const O=Object.keys(p),x=Object.keys(y),v=O.indexOf("u_texSampler"),T=x.indexOf("u_texSampler");if(v>=0&&O.splice(v,1),T>=0&&x.splice(T,1),O.length!==x.length)return!1;const l=O.every(h=>{const f=p[h],g=y[h];if(f===g)return!0;if(f.length&&g.length&&f.length===g.length){for(let M=0;M<f.length;M++)if(f[M]!==g[M])return!1;return!0}return!1});if(l){if(p.u_texSampler&&!y.u_texSampler)m.setTexture(p.u_texSampler,{hidden:!0});else if(!p.u_texSampler&&y.u_texSampler)for(let h=0;h<u.length;h++)u[h].setTexture(y.u_texSampler,{hidden:!0})}return l}const s={};function i(c,m){if(c.length){const u=Object(e.default)(c,s);return u.enableBlend=m,c[0].filterCanvas&&(u.filterCanvas=!0),u.packIndex=c[0].packIndex,u.packLength=c.length,u.beforeRender=c[0].beforeRender,u.pass=c[0].pass,u.afterRender=c[c.length-1].afterRender,c.length=0,u}}function*o(c,m,u=!1){const p=[],y=c.options.bufferSize;let O=0,x=!1;for(let v=0;v<m.length;v++){const T=m[v];if(T instanceof n.default)p.length&&(yield i(p,x)),O=0,x=!1,yield T;else{const l=T.meshData;if(l.clipPath&&!l.uniforms.u_clipSampler){const f=c.createTexture(l.clipPath);l.uniforms.u_clipSampler=f}let h=0;if((!u||!T.canIgnore())&&l&&l.positions.length){T.packIndex=v;const f=T.filterCanvas;if(h=l.positions.length,f||O+h>y)p.length&&(yield i(p,x)),O=0,x=!1;else if(O){const g=p[p.length-1];g&&(g.filterCanvas||g.afterRender||T.beforeRender||g.pass.length||T.pass.length||g.program!==T.program||!a(g,T,p))&&(yield i(p,x),O=0,x=!1)}p.push(T),x=x||T.enableBlend,O+=h}v===m.length-1&&p.length&&(yield i(p,x))}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return a}),t(1).glMatrix.setMatrixArrayType(Array);const e={UNSIGNED_BYTE:Uint8Array,UNSIGNED_SHORT:Uint16Array,BYTE:Int8Array,SHORT:Int16Array,FLOAT:Float32Array};function n(s,i){let o=0,c=0,m=0,u=0,p=0,y=0,O=0;const x=s[0].program;for(let v=0;v<s.length;v++){const T=s[v].meshData;if(T){O+=T.positions.length;const l=T.positions[0].length;o+=T.positions.length*l,c+=T.cells.length*3,y+=T.attributes.a_color.length*4;const h=T.textureCoord;h&&(m+=h.length*h[0].length);const f=T.attributes.a_sourceRect;f&&(u+=f.length*4);const g=T.attributes.a_clipUV;g&&(p+=g.length*2)}}if((!i.positions||i.positions.length<o)&&(i.positions=new Float32Array(o)),(!i.cells||i.cells.length<c)&&(i.cells=new Uint16Array(c)),m&&(!i.textureCoord||i.textureCoord.length<m)&&(i.textureCoord=new Float32Array(m)),(!i.a_color||i.a_color.length<y)&&(i.a_color=new Uint8Array(y)),u&&(!i.a_sourceRect||i.a_sourceRect.length<u)&&(i.a_sourceRect=new Float32Array(u)),p&&(!i.a_clipUV||i.a_clipUV.length<p)&&(i.a_clipUV=new Float32Array(p)),x){const v=Object.entries(x._attribute),T=x._attribOpts||{};for(let l=0;l<v.length;l++){const[h,f]=v[l];if(h!=="a_color"&&h!=="a_sourceRect"&&f!=="ignored"){const g=T[h]?T[h].type:"FLOAT",M=e[g],A=f.size*O;(!i[h]||i[h].length<A)&&(i[h]=new M(A))}}}return i}function a(s,i){let o=[],c=[],m=[],u=[],p=[],y=[],O=0,x=0;const v=s[0]?s[0].uniforms||{}:{},T=s[0]?s[0].program:null;i&&(n(s,i),c=i.cells,o=i.positions,m=i.textureCoord,u=i.a_color,p=i.a_sourceRect,y=i.a_clipUV);let l=!1,h=!1;const f={};for(let M=0;M<s.length;M++){let A=s[M];if(A){if(A.meshData&&(A=A.meshData),i){const b=A.positions;for(let E=0;E<b.length;E++){const L=b[E],D=3*(O+E);for(let I=0;I<L.length;I++)o[D+I]=L[I]}}else o.push(...A.positions);const C=A.cells;for(let b=0;b<C.length;b++){const E=C[b];if(i){const L=3*(x+b);c[L]=E[0]+O,c[L+1]=E[1]+O,c[L+2]=E[2]+O}else c.push([E[0]+O,E[1]+O,E[2]+O])}if(i){const b=A.attributes.a_color;for(let E=0;E<b.length;E++){const L=b[E],D=4*(O+E);u[D]=L[0],u[D+1]=L[1],u[D+2]=L[2],u[D+3]=L[3]}}else u.push(...A.attributes.a_color);if(A.attributes.a_sourceRect)if(l=!0,i){const b=A.attributes.a_sourceRect;for(let E=0;E<b.length;E++){const L=b[E],D=4*(O+E);p[D]=L[0],p[D+1]=L[1],p[D+2]=L[2],p[D+3]=L[3]}}else p.push(...A.attributes.a_sourceRect);if(A.attributes.a_clipUV)if(h=!0,i){const b=A.attributes.a_clipUV;for(let E=0;E<b.length;E++){const L=b[E],D=2*(O+E);y[D]=L[0],y[D+1]=L[1]}}else y.push(...A.attributes.a_clipUV);if(A.textureCoord)if(i){const b=A.textureCoord;for(let E=0;E<b.length;E++){const L=b[E],D=3*(O+E);for(let I=0;I<L.length;I++)m[D+I]=L[I]}}else m.push(...A.textureCoord);if(T){const b=Object.entries(T._attribute);for(let E=0;E<b.length;E++){const[L,D]=b[E];if(L!=="a_color"&&L!=="a_sourceRect"&&D!=="ignored")if(f[L]=[],i){f[L]=i[L];const I=A.attributes[L],R=I[0].length;for(let B=0;B<I.length;B++){const z=I[B],K=R*(O+B);for(let Q=0;Q<z.length;Q++)f[L][K+Q]=z[Q]}}else f[L].push(...A.attributes[L])}}O+=A.positions.length,x+=A.cells.length}}f.a_color=u,l&&p&&p.length>0&&(f.a_sourceRect=p);const g={positions:o,cells:c,attributes:f,uniforms:v,cellsCount:x*3,program:T};return m&&m.length&&(g.textureCoord=m),h&&y.length>0&&(f.a_clipUV=y),g}},function(d,r,t){t.r(r);var e=t(1),n=t(30),a=t(26),s=t(31);t(1).glMatrix.setMatrixArrayType(Array);function i(f,g){var M=Object.keys(f);if(Object.getOwnPropertySymbols){var A=Object.getOwnPropertySymbols(f);g&&(A=A.filter(function(C){return Object.getOwnPropertyDescriptor(f,C).enumerable})),M.push.apply(M,A)}return M}function o(f){for(var g=1;g<arguments.length;g++){var M=arguments[g]!=null?arguments[g]:{};g%2?i(Object(M),!0).forEach(function(A){c(f,A,M[A])}):Object.getOwnPropertyDescriptors?Object.defineProperties(f,Object.getOwnPropertyDescriptors(M)):i(Object(M)).forEach(function(A){Object.defineProperty(f,A,Object.getOwnPropertyDescriptor(M,A))})}return f}function c(f,g,M){return g in f?Object.defineProperty(f,g,{value:M,enumerable:!0,configurable:!0,writable:!0}):f[g]=M,f}const m=Symbol("mesh"),u=Symbol("count"),p=Symbol("blend"),y=Symbol("filter"),O=Symbol("textures"),x=Symbol("textureOptions"),v=Symbol("cloudColor"),T=Symbol("cloudFilter"),l=Symbol("buffer");function h(f,g=null){const M=new Float32Array(3*f),A=new Float32Array(3*f),C=new Float32Array(4*f),b=new Float32Array(4*f),E=new Float32Array(4*f),L=new Float32Array(4*f),D=new Float32Array(4*f),I=new Uint8Array(f),R=new Uint8Array(4*f),B=new Uint8Array(4*f);return g&&(M.set(g.transform0,0),A.set(g.transform1,0),C.set(g.color0,0),b.set(g.color1,0),E.set(g.color2,0),L.set(g.color3,0),D.set(g.color4,0),I.set(g.frameIndex,0),R.set(g.fillColor,0),B.set(g.strokeColor,0)),{bufferSize:f,transform0:M,transform1:A,color0:C,color1:b,color2:E,color3:L,color4:D,frameIndex:I,fillColor:R,strokeColor:B}}r.default=class{constructor(f,g=1,{buffer:M=1e3}={}){M=Math.max(M,g),this[u]=g,this[m]=f,this[l]=h(M),this[O]=[],this[y]=[],this[v]=!1,this[T]=!1,this[p]=!1,this.initBuffer()}initBuffer(f=0){const g=this[u];for(let M=f;M<g;M++)this[l].transform0.set([1,0,0],M*3),this[l].transform1.set([0,1,0],M*3),this[l].frameIndex.set([-1],M),this[l].fillColor.set([0,0,0,0],M*4),this[l].strokeColor.set([0,0,0,0],M*4),this.setColorTransform(M,null)}get bufferSize(){return this[l].bufferSize}get mesh(){return this[m]}set mesh(f){this[m]=f,this[O]&&this.setTextureFrames(this[O],this[x])}get hasCloudColor(){return this[v]}get hasCloudFilter(){return this[T]}_getFilter(f){return this[y][f]=this[y][f]||[],this[y][f]}getFilter(f){return this._getFilter(f).join(" ")}get enableBlend(){return this[m].enableBlend||this[p]}canIgnore(){return this[m].canIgnore()}delete(f){if(f>=this[u]||f<0)throw new Error("Out of range.");const{transform0:g,transform1:M,color0:A,color1:C,color2:b,color3:E,color4:L,frameIndex:D,fillColor:I,strokeColor:R}=this[l];g.set(g.subarray(3*(f+1)),3*f),M.set(M.subarray(3*(f+1)),3*f),A.set(A.subarray(4*(f+1)),4*f),C.set(C.subarray(4*(f+1)),4*f),b.set(b.subarray(4*(f+1)),4*f),E.set(E.subarray(4*(f+1)),4*f),L.set(L.subarray(4*(f+1)),4*f),D.set(D.subarray(f+1),f),I.set(I.subarray(4*(f+1)),4*f),R.set(R.subarray(4*(f+1)),4*f);for(const B in this[y])B===f?delete this[y][B]:B>f&&(this[y][B-1]=this[y][B],delete this[y][B]);this[u]--}setColorTransform(f,g){if(f>=this[u]||f<0)throw new Error("Out of range.");f*=4;const{color0:M,color1:A,color2:C,color3:b,color4:E}=this[l];return g!=null?(M.set([g[0],g[5],g[10],g[15]],f),A.set([g[1],g[6],g[11],g[16]],f),C.set([g[2],g[7],g[12],g[17]],f),b.set([g[3],g[8],g[13],g[18]],f),E.set([g[4],g[9],g[14],g[19]],f),this[p]=this[p]||g[18]<1,this[T]=!0):(M.set([1,0,0,0],f),A.set([0,1,0,0],f),C.set([0,0,1,0],f),b.set([0,0,0,1],f),E.set([0,0,0,0],f)),this}getColorTransform(f){if(f>=this[u]||f<0)throw new Error("Out of range.");f*=4;const{color0:g,color1:M,color2:A,color3:C,color4:b}=this[l];return[g[f],M[f],A[f],C[f],b[f],g[f+1],M[f+1],A[f+1],C[f+1],b[f+1],g[f+2],M[f+2],A[f+2],C[f+2],b[f+2],g[f+3],M[f+3],A[f+3],C[f+3],b[f+3]]}transformColor(f,g){let M=this.getColorTransform(f);return M=Object(n.multiply)(M,g),this.setColorTransform(f,M),this}setFillColor(f,g){if(f>=this[u]||f<0)throw new Error("Out of range.");typeof g=="string"&&(g=Object(s.default)(g)),g[3]>0&&(this[v]=!0),this[l].fillColor.set(g.map(M=>Math.round(255*M)),4*f)}setStrokeColor(f,g){if(f>=this[u]||f<0)throw new Error("Out of range.");typeof g=="string"&&(g=Object(s.default)(g)),g[3]>0&&(this[v]=!0),this[l].strokeColor.set(g.map(M=>Math.round(255*M)),4*f)}getCloudRGBA(f){if(f>=this[u]||f<0)throw new Error("Out of range.");f*=4;const{fillColor:g,strokeColor:M}=this[l],A=[g[f],g[f+1],g[f+2],g[f+3]],C=[M[f],M[f+1],M[f+2],M[f+3]];return A[3]/=255,C[3]/=255,{fill:`rgba(${A.join()})`,stroke:`rgba(${C.join()})`}}grayscale(f,g){this.transformColor(f,Object(n.grayscale)(g)),this._getFilter(f).push(`grayscale(${100*g}%)`)}brightness(f,g){this.transformColor(f,Object(n.brightness)(g)),this._getFilter(f).push(`brightness(${100*g}%)`)}saturate(f,g){this.transformColor(f,Object(n.saturate)(g)),this._getFilter(f).push(`saturate(${100*g}%)`)}contrast(f,g){this.transformColor(f,Object(n.contrast)(g)),this._getFilter(f).push(`contrast(${100*g}%)`)}invert(f,g){this.transformColor(f,Object(n.invert)(g)),this._getFilter(f).push(`invert(${100*g}%)`)}sepia(f,g){this.transformColor(f,Object(n.sepia)(g)),this._getFilter(f).push(`sepia(${100*g}%)`)}opacity(f,g){this.transformColor(f,Object(n.opacity)(g)),this._getFilter(f).push(`opacity(${100*g}%)`)}hueRotate(f,g){this.transformColor(f,Object(n.hueRotate)(g)),this._getFilter(f).push(`hue-rotate(${g}deg)`)}setTransform(f,g){if(f>=this[u]||f<0)throw new Error("Out of range.");f*=3,g==null&&(g=[1,0,0,1,0,0]);const{transform0:M,transform1:A}=this[l];return M.set([g[0],g[2],g[4]],f),A.set([g[1],g[3],g[5]],f),this}getTransform(f){if(f>=this[u]||f<0)throw new Error("Out of range.");f*=3;const{transform0:g,transform1:M}=this[l];return[g[f],M[f],g[f+1],M[f+1],g[f+2],M[f+2]]}getTextureFrame(f){return this[O][this[l].frameIndex[f]]}setTextureFrames(f=[],g={}){if(f.length>12)throw new Error("Max frames exceed. Allow 12 frames.");f.length&&this[m].setTexture(f[0],g),this[O]=f,this[x]=g}setFrameIndex(f,g){if(f>=this[u]||f<0)throw new Error("Out of range.");const M=this[O].length;if(M<=0)throw new Error("No frames");this[l].frameIndex[f]=g%M}get amount(){return this[u]}set amount(f){const g=this[u];f!==g&&(f>this[l].bufferSize&&(this[l]=h(Math.max(f,this[l].bufferSize+1e3),this[l])),this[u]=f,f>g&&this.initBuffer(g))}get meshData(){const{attributes:f,cells:g,positions:M,textureCoord:A,uniforms:C}=this[m].meshData,b=this[O],E={attributes:o({},f),cells:g,positions:M,textureCoord:A,uniforms:o({},C),instanceCount:this[u],enableBlend:this.enableBlend};b.length&&b.forEach((G,X)=>{E.uniforms[`u_texFrame${X}`]=G});const{transform0:L,transform1:D,color0:I,color1:R,color2:B,color3:z,color4:K,fillColor:Q,strokeColor:_,frameIndex:j}=this[l];return this[m].uniforms.u_texSampler&&(E.attributes.a_frameIndex={data:j,divisor:1}),E.attributes.a_transform0={data:L,divisor:1},E.attributes.a_transform1={data:D,divisor:1},E.attributes.a_colorCloud0={data:I,divisor:1},E.attributes.a_colorCloud1={data:R,divisor:1},E.attributes.a_colorCloud2={data:B,divisor:1},E.attributes.a_colorCloud3={data:z,divisor:1},E.attributes.a_colorCloud4={data:K,divisor:1},this.hasCloudColor&&(E.attributes.a_fillCloudColor={data:Q,divisor:1},E.attributes.a_strokeCloudColor={data:_,divisor:1}),E}setProgram(f){this[m].setProgram(f)}get program(){return this[m].program}transform(f,g){const M=this.getTransform(f);return g=e.mat2d.multiply(Array.of(0,0,0,0,0,0),M,g),this.setTransform(f,g),this}translate(f,[g,M]){let A=e.mat2d.create();return A=e.mat2d.translate(Array.of(0,0,0,0,0,0),A,[g,M]),this.transform(f,A)}rotate(f,g,[M,A]=[0,0]){let C=e.mat2d.create();return C=e.mat2d.translate(Array.of(0,0,0,0,0,0),C,[M,A]),C=e.mat2d.rotate(Array.of(0,0,0,0,0,0),C,g),C=e.mat2d.translate(Array.of(0,0,0,0,0,0),C,[-M,-A]),this.transform(f,C)}scale(f,[g,M=g],[A,C]=[0,0]){let b=e.mat2d.create();return b=e.mat2d.translate(Array.of(0,0,0,0,0,0),b,[A,C]),b=e.mat2d.scale(Array.of(0,0,0,0,0,0),b,[g,M]),b=e.mat2d.translate(Array.of(0,0,0,0,0,0),b,[-A,-C]),this.transform(f,b)}skew(f,[g,M=g],[A,C]=[0,0]){let b=e.mat2d.create();return b=e.mat2d.translate(Array.of(0,0,0,0,0,0),b,[A,C]),b=e.mat2d.multiply(Array.of(0,0,0,0,0,0),b,e.mat2d.fromValues(1,Math.tan(M),Math.tan(g),1,0,0)),b=e.mat2d.translate(Array.of(0,0,0,0,0,0),b,[-A,-C]),this.transform(f,b)}isPointCollision(f,[g,M],A="both"){const C=this.getTransform(f),b=Object(a.transformPoint)([g,M],e.mat2d.invert(Array.of(0,0,0,0,0,0),C));return this[m].isPointCollision(...b,A)}isPointInFill(f,[g,M]){return this.isPointCollision(f,[g,M],"fill")}isPointInStroke(f,[g,M]){return this.isPointCollision(f,[g,M],"stroke")}}},function(d,r,t){t.r(r),t.d(r,"multiply",function(){return n}),t.d(r,"grayscale",function(){return a}),t.d(r,"brightness",function(){return s}),t.d(r,"saturate",function(){return i}),t.d(r,"contrast",function(){return o}),t.d(r,"invert",function(){return c}),t.d(r,"sepia",function(){return m}),t.d(r,"opacity",function(){return u}),t.d(r,"hueRotate",function(){return p});var e=t(26);t(1).glMatrix.setMatrixArrayType(Array);function n(y,O){const x=[],v=y[0],T=y[1],l=y[2],h=y[3],f=y[4],g=y[5],M=y[6],A=y[7],C=y[8],b=y[9],E=y[10],L=y[11],D=y[12],I=y[13],R=y[14],B=y[15],z=y[16],K=y[17],Q=y[18],_=y[19];let j=O[0],G=O[1],X=O[2],Z=O[3],tt=O[4];return x[0]=j*v+G*g+X*E+Z*B,x[1]=j*T+G*M+X*L+Z*z,x[2]=j*l+G*A+X*D+Z*K,x[3]=j*h+G*C+X*I+Z*Q,x[4]=j*f+G*b+X*R+Z*_+tt,j=O[5],G=O[6],X=O[7],Z=O[8],tt=O[9],x[5]=j*v+G*g+X*E+Z*B,x[6]=j*T+G*M+X*L+Z*z,x[7]=j*l+G*A+X*D+Z*K,x[8]=j*h+G*C+X*I+Z*Q,x[9]=j*f+G*b+X*R+Z*_+tt,j=O[10],G=O[11],X=O[12],Z=O[13],tt=O[14],x[10]=j*v+G*g+X*E+Z*B,x[11]=j*T+G*M+X*L+Z*z,x[12]=j*l+G*A+X*D+Z*K,x[13]=j*h+G*C+X*I+Z*Q,x[14]=j*f+G*b+X*R+Z*_+tt,j=O[15],G=O[16],X=O[17],Z=O[18],tt=O[19],x[15]=j*v+G*g+X*E+Z*B,x[16]=j*T+G*M+X*L+Z*z,x[17]=j*l+G*A+X*D+Z*K,x[18]=j*h+G*C+X*I+Z*Q,x[19]=j*f+G*b+X*R+Z*_+tt,x}function a(y){y=Object(e.clamp)(0,1,y);const O=.2126*y,x=.7152*y,v=.0722*y;return[O+1-y,x,v,0,0,O,x+1-y,v,0,0,O,x,v+1-y,0,0,0,0,0,1,0]}function s(y){return[y,0,0,0,0,0,y,0,0,0,0,0,y,0,0,0,0,0,1,0]}function i(y){const O=.2126*(1-y),x=.7152*(1-y),v=.0722*(1-y);return[O+y,x,v,0,0,O,x+y,v,0,0,O,x,v+y,0,0,0,0,0,1,0]}function o(y){const O=.5*(1-y);return[y,0,0,0,O,0,y,0,0,O,0,0,y,0,O,0,0,0,1,0]}function c(y){const O=1-2*y;return[O,0,0,0,y,0,O,0,0,y,0,0,O,0,y,0,0,0,1,0]}function m(y){return[1-.607*y,.769*y,.189*y,0,0,.349*y,1-.314*y,.168*y,0,0,.272*y,.534*y,1-.869*y,0,0,0,0,0,1,0]}function u(y){return[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,y,0]}function p(y){const O=y/180*Math.PI,x=Math.cos(O),v=Math.sin(O),T=.2126,l=.7152,h=.0722;return[T+x*(1-T)+v*-T,l+x*-l+v*-l,h+x*-h+v*(1-h),0,0,T+x*-T+v*.143,l+x*(1-l)+v*.14,h+x*-h+v*-.283,0,0,T+x*-T+v*-(1-T),l+x*-l+v*l,h+x*(1-h)+v*h,0,0,0,0,0,1,0]}},function(d,r,t){t.r(r),t.d(r,"default",function(){return a});var e=t(32),n=t.n(e);t(1).glMatrix.setMatrixArrayType(Array);function a(s){const i=n()(s);if(!i||!i.length)throw new TypeError("Invalid color value.");return[i[0]/255,i[1]/255,i[2]/255,i[3]]}},function(d,r,t){var e=t(33),n=t(37),a=t(39);d.exports=function(i){var o,c=e(i);return c.space?(o=Array(3),o[0]=a(c.values[0],0,255),o[1]=a(c.values[1],0,255),o[2]=a(c.values[2],0,255),c.space[0]==="h"&&(o=n.rgb(o)),o.push(a(c.alpha,0,1)),o):[]}},function(d,r,t){(function(e){var n=t(34),a=t(35),s=t(36);d.exports=o;var i={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};function o(c){var m,u=[],p=1,y;if(typeof c=="string")if(n[c])u=n[c].slice(),y="rgb";else if(c==="transparent")p=0,y="rgb",u=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(c)){var O=c.slice(1),x=O.length,v=x<=4;p=1,v?(u=[parseInt(O[0]+O[0],16),parseInt(O[1]+O[1],16),parseInt(O[2]+O[2],16)],x===4&&(p=parseInt(O[3]+O[3],16)/255)):(u=[parseInt(O[0]+O[1],16),parseInt(O[2]+O[3],16),parseInt(O[4]+O[5],16)],x===8&&(p=parseInt(O[6]+O[7],16)/255)),u[0]||(u[0]=0),u[1]||(u[1]=0),u[2]||(u[2]=0),y="rgb"}else if(m=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(c)){var T=m[1],l=T==="rgb",O=T.replace(/a$/,"");y=O;var x=O==="cmyk"?4:O==="gray"?1:3;u=m[2].trim().split(/\s*,\s*/).map(function(M,A){if(/%$/.test(M))return A===x?parseFloat(M)/100:O==="rgb"?parseFloat(M)*255/100:parseFloat(M);if(O[A]==="h"){if(/deg$/.test(M))return parseFloat(M);if(i[M]!==void 0)return i[M]}return parseFloat(M)}),T===O&&u.push(1),p=l||u[x]===void 0?1:u[x],u=u.slice(0,x)}else c.length>10&&/[0-9](?:\s|\/)/.test(c)&&(u=c.match(/([0-9]+)/g).map(function(f){return parseFloat(f)}),y=c.match(/([a-z])/ig).join("").toLowerCase());else if(!isNaN(c))y="rgb",u=[c>>>16,(c&65280)>>>8,c&255];else if(a(c)){var h=s(c.r,c.red,c.R,null);h!==null?(y="rgb",u=[h,s(c.g,c.green,c.G),s(c.b,c.blue,c.B)]):(y="hsl",u=[s(c.h,c.hue,c.H),s(c.s,c.saturation,c.S),s(c.l,c.lightness,c.L,c.b,c.brightness)]),p=s(c.a,c.alpha,c.opacity,1),c.opacity!=null&&(p/=100)}else(Array.isArray(c)||e.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(c))&&(u=[c[0],c[1],c[2]],y="rgb",p=c.length===4?c[3]:1);return{space:y,values:u,alpha:p}}}).call(this,t(22))},function(d,r,t){d.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},function(d,r,t){var e=Object.prototype.toString;d.exports=function(n){var a;return e.call(n)==="[object Object]"&&(a=Object.getPrototypeOf(n),a===null||a===Object.getPrototypeOf({}))}},function(d,r){d.exports=function(){for(var t=0;t<arguments.length;t++)if(arguments[t]!==void 0)return arguments[t]}},function(d,r,t){var e=t(38);d.exports={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(n){var a=n[0]/360,s=n[1]/100,i=n[2]/100,o,c,m,u,p;if(s===0)return p=i*255,[p,p,p];i<.5?c=i*(1+s):c=i+s-i*s,o=2*i-c,u=[0,0,0];for(var y=0;y<3;y++)m=a+1/3*-(y-1),m<0?m++:m>1&&m--,6*m<1?p=o+(c-o)*6*m:2*m<1?p=c:3*m<2?p=o+(c-o)*(2/3-m)*6:p=o,u[y]=p*255;return u}},e.hsl=function(n){var a=n[0]/255,s=n[1]/255,i=n[2]/255,o=Math.min(a,s,i),c=Math.max(a,s,i),m=c-o,u,p,y;return c===o?u=0:a===c?u=(s-i)/m:s===c?u=2+(i-a)/m:i===c&&(u=4+(a-s)/m),u=Math.min(u*60,360),u<0&&(u+=360),y=(o+c)/2,c===o?p=0:y<=.5?p=m/(c+o):p=m/(2-c-o),[u,p*100,y*100]}},function(d,r,t){d.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},function(d,r){d.exports=t;function t(e,n,a){return n<a?e<n?n:e>a?a:e:e<a?a:e>n?n:e}},function(d,r,t){t.r(r),t.d(r,"default",function(){return h});var e=t(41),n=t.n(e),a=t(42),s=t.n(a),i=t(43),o=t.n(i),c=t(44),m=t(46),u=t.n(m),p=t(53),y=t(55);t(1).glMatrix.setMatrixArrayType(Array);const O=Symbol("contours"),x=Symbol("path"),v=Symbol("simplify"),T=Symbol("scale"),l=2*Math.PI;class h{constructor(g={}){typeof g=="string"&&(g={path:g}),g.path?this[x]=n()(g.path):this[x]=[],this[O]=null,this[v]=g.simplify!=null?g.simplify:0,this[T]=g.scale!=null?g.scale:2}get contours(){let g=null;if(!this[O]&&this[x]){const M=Object(c.default)(o()(this[x]));this[O]=u()(M,this[T],this[v]),this[O].path=M,this[O].simplify=this[v],this[O].scale=this[T]}return this[O]&&(g=this[O].map(M=>[...M]),g.path=this[O].path,g.simplify=this[O].simplify,g.scale=this[O].scale),g}get path(){return this[x]}get simplify(){return this[v]}get boundingBox(){const g=this.contours;if(g&&g.length){const M=g.reduce((A,C)=>[...A,...C]);return s()(M)}return[[0,0],[0,0]]}get boundingCenter(){const g=this.boundingBox;return g?[.5*(g[0][0]+g[1][0]),.5*(g[0][1]+g[1][1])]:[0,0]}normalize(g=0,M=0){const A=Object(c.default)(o()(this[x])).map(([C,...b])=>{const E=[C];for(let L=0;L<b.length;L+=2){const D=b[L]-g,I=b[L+1]-M;E.push(D,I)}return E});return this.beginPath(),this[x].push(...A),this}getPointAtLength(g){return this.contours?Object(p.getPointAtLength)(this[O],g):null}getTotalLength(){return this.contours?Object(p.getTotalLength)(this[O]):0}addPath(g){this[O]=null,typeof g=="string"&&(g=n()(g)),this[x].push(...g)}beginPath(){this[x]=[],this[O]=null}clear(){this.beginPath()}ellipse(g,M,A,C,b,E,L,D=0){if(E+=b,L+=b,A<=0||C<=0||L===E)return;L<E&&(L=E+l+(L-E)%l),L-E>l&&(L=E+l);const I=L-E;I>=l&&(L-=.001);let R=this[x].length>0&&I<l?"L":"M";const B=Object(y.getPoint)(g,M,A,C,E),z=Object(y.getPoint)(g,M,A,C,L),K=+!D;let Q=I>Math.PI?1:0;D&&(Q=1-Q),R+=B.join(" "),R+=`A${A} ${C} 0 ${Q} ${K} ${z.join(" ")}`,I>=l&&(R+="Z"),this.addPath(R)}arc(g,M,A,C,b,E=0){return this.ellipse(g,M,A,A,0,C,b,E)}arcTo(g,M,A,C,b,E,L){this[O]=null,this[x].push(["A",g,M,A,C,b,E,L])}moveTo(g,M){this[O]=null,this[x].push(["M",g,M])}lineTo(g,M){this[O]=null,this[x].push(["L",g,M])}bezierCurveTo(g,M,A,C,b,E){this[O]=null,this[x].push(["C",g,M,A,C,b,E])}quadraticCurveTo(g,M,A,C){this[O]=null,this[x].push(["Q",g,M,A,C])}rect(g,M,A,C){const b=`M${g} ${M}L${g+A} ${M}L${g+A} ${M+C}L${g} ${M+C}Z`;this.addPath(b)}closePath(){this[O]=null;let g=[];const M=this[x].length;M>0&&(g=this[x][M-1]),g[0]!=="Z"&&g[0]!=="z"&&this[x].push(["Z"])}}},function(d,r){d.exports=n;var t={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},e=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function n(i){var o=[];return i.replace(e,function(c,m,u){var p=m.toLowerCase();for(u=s(u),p=="m"&&u.length>2&&(o.push([m].concat(u.splice(0,2))),p="l",m=m=="m"?"l":"L");;){if(u.length==t[p])return u.unshift(m),o.push(u);if(u.length<t[p])throw new Error("malformed path data");o.push([m].concat(u.splice(0,t[p])))}}),o}var a=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function s(i){var o=i.match(a);return o?o.map(Number):[]}},function(d,r,t){d.exports=e;function e(n){var a=n.length;if(a===0)return[[],[]];for(var s=n[0].length,i=n[0].slice(),o=n[0].slice(),c=1;c<a;++c)for(var m=n[c],u=0;u<s;++u){var p=m[u];i[u]=Math.min(i[u],p),o[u]=Math.max(o[u],p)}return[i,o]}},function(d,r){d.exports=t;function t(e){var n=0,a=0,s=0,i=0;return e.map(function(o){o=o.slice();var c=o[0],m=c.toUpperCase();if(c!=m)switch(o[0]=m,c){case"a":o[6]+=s,o[7]+=i;break;case"v":o[1]+=i;break;case"h":o[1]+=s;break;default:for(var u=1;u<o.length;)o[u++]+=s,o[u++]+=i}switch(m){case"Z":s=n,i=a;break;case"H":s=o[1];break;case"V":i=o[1];break;case"M":s=n=o[1],i=a=o[2];break;default:s=o[o.length-2],i=o[o.length-1]}return o})}},function(d,r,t){t.r(r),t.d(r,"default",function(){return n});var e=t(45);t(1).glMatrix.setMatrixArrayType(Array);function n(i){for(var o,c=[],m=0,u=0,p=0,y=0,O=null,x=null,v=0,T=0,l=0,h=i.length;l<h;l++){var f=i[l],g=f[0];switch(g){case"M":p=f[1],y=f[2];break;case"A":var M=Object(e.default)(v,T,f[6],f[7],f[4],f[5],f[1],f[2],f[3]);if(!M.length)continue;M=M.map(L=>{const[D,I,R,B,z,K,Q,_]=L;return{x1:R,y1:B,x2:z,y2:K,x:Q,y:_}});for(var A=0,C;A<M.length;A++)C=M[A],f=["C",C.x1,C.y1,C.x2,C.y2,C.x,C.y],A<M.length-1&&c.push(f);break;case"S":var b=v,E=T;(o=="C"||o=="S")&&(b+=b-m,E+=E-u),f=["C",b,E,f[1],f[2],f[3],f[4]];break;case"T":o=="Q"||o=="T"?(O=v*2-O,x=T*2-x):(O=v,x=T),f=s(v,T,O,x,f[1],f[2]);break;case"Q":O=f[1],x=f[2],f=s(v,T,f[1],f[2],f[3],f[4]);break;case"L":f=a(v,T,f[1],f[2]);break;case"H":f=a(v,T,f[1],T);break;case"V":f=a(v,T,v,f[1]);break;case"Z":f=a(v,T,p,y);break}o=g,v=f[f.length-2],T=f[f.length-1],f.length>4?(m=f[f.length-4],u=f[f.length-3]):(m=v,u=T),c.push(f)}return c}function a(i,o,c,m){return["C",i,o,c,m,c,m]}function s(i,o,c,m,u,p){return["C",i/3+2/3*c,o/3+2/3*m,u/3+2/3*c,p/3+2/3*m,u,p]}},function(d,r,t){t.r(r),t.d(r,"default",function(){return i}),t(1).glMatrix.setMatrixArrayType(Array);const e=Math.PI*2;function n(o,c,m,u){const p=o*u-c*m<0?-1:1;let y=o*m+c*u;return y>1&&(y=1),y<-1&&(y=-1),p*Math.acos(y)}function a(o,c,m,u,p,y,O,x,v,T){const l=T*(o-m)/2+v*(c-u)/2,h=-v*(o-m)/2+T*(c-u)/2,f=O*O,g=x*x,M=l*l,A=h*h;let C=f*g-f*A-g*M;C<0&&(C=0),C/=f*A+g*M,C=Math.sqrt(C)*(p===y?-1:1);const b=C*O/x*h,E=C*-x/O*l,L=T*b-v*E+(o+m)/2,D=v*b+T*E+(c+u)/2,I=(l-b)/O,R=(h-E)/x,B=(-l-b)/O,z=(-h-E)/x,K=n(1,0,I,R);let Q=n(I,R,B,z);return y===0&&Q>0&&(Q-=e),y===1&&Q<0&&(Q+=e),[L,D,K,Q]}function s(o,c){const m=1.3333333333333333*Math.tan(c/4),u=Math.cos(o),p=Math.sin(o),y=Math.cos(o+c),O=Math.sin(o+c);return[u,p,u-p*m,p+u*m,y+O*m,O-y*m,y,O]}function i(o,c,m,u,p,y,O,x,v){const T=Math.sin(v*e/360),l=Math.cos(v*e/360),h=l*(o-m)/2+T*(c-u)/2,f=-T*(o-m)/2+l*(c-u)/2;if(h===0&&f===0)return[];if(O===0||x===0)return[];O=Math.abs(O),x=Math.abs(x);const g=h*h/(O*O)+f*f/(x*x);g>1&&(O*=Math.sqrt(g),x*=Math.sqrt(g));const M=a(o,c,m,u,p,y,O,x,T,l),A=[];let C=M[2],b=M[3];const E=Math.max(Math.ceil(Math.abs(b)/(e/4)),1);b/=E;for(let L=0;L<E;L++)A.push(s(C,b)),C+=b;return A.map(L=>{for(let D=0;D<L.length;D+=2){let I=L[D+0],R=L[D+1];I*=O,R*=x;const B=l*I-T*R,z=T*I+l*R;L[D+0]=B+M[0],L[D+1]=z+M[1]}return L})}},function(d,r,t){t(1).glMatrix.setMatrixArrayType(Array);var e=t(47),{copy:n}=t(49),a=t(50);function s(u,p,y){return u[0]=p,u[1]=y,u}var i=[0,0],o=[0,0],c=[0,0];function m(u,p,y,O){e(y,s(i,O[1],O[2]),s(o,O[3],O[4]),s(c,O[5],O[6]),p,u)}d.exports=function(p,y,O){var x=[],v=[],T=[0,0];return p.forEach(function(l,h,f){if(l[0]==="M")n(T,l.slice(1)),v.length>0&&(x.push(v),v=[]);else if(l[0]==="C")m(v,y,T,l),s(T,l[5],l[6]);else throw new Error("illegal type in SVG: "+l[0])}),v.length>0&&x.push(v),x.map(function(l){return a(l,O||0)})}},function(d,r,t){d.exports=t(48)()},function(d,r){function t(n){return[n[0],n[1]]}function e(n,a){return[n,a]}d.exports=function(a){a=a||{};var s=typeof a.recursion=="number"?a.recursion:8,i=typeof a.epsilon=="number"?a.epsilon:11920929e-14,o=typeof a.pathEpsilon=="number"?a.pathEpsilon:1,c=typeof a.angleEpsilon=="number"?a.angleEpsilon:.01,m=a.angleTolerance||0,u=a.cuspLimit||0;return function(x,v,T,l,h,f){f||(f=[]),h=typeof h=="number"?h:1;var g=o/h;return g*=g,p(x,v,T,l,f,g),f};function p(O,x,v,T,l,h){l.push(t(O));var f=O[0],g=O[1],M=x[0],A=x[1],C=v[0],b=v[1],E=T[0],L=T[1];y(f,g,M,A,C,b,E,L,l,h,0),l.push(t(T))}function y(O,x,v,T,l,h,f,g,M,A,C){if(!(C>s)){var b=Math.PI,E=(O+v)/2,L=(x+T)/2,D=(v+l)/2,I=(T+h)/2,R=(l+f)/2,B=(h+g)/2,z=(E+D)/2,K=(L+I)/2,Q=(D+R)/2,_=(I+B)/2,j=(z+Q)/2,G=(K+_)/2;if(C>0){var X=f-O,Z=g-x,tt=Math.abs((v-f)*Z-(T-g)*X),nt=Math.abs((l-f)*Z-(h-g)*X),q,dt;if(tt>i&&nt>i){if((tt+nt)*(tt+nt)<=A*(X*X+Z*Z)){if(m<c){M.push(e(j,G));return}var ut=Math.atan2(h-T,l-v);if(q=Math.abs(ut-Math.atan2(T-x,v-O)),dt=Math.abs(Math.atan2(g-h,f-l)-ut),q>=b&&(q=2*b-q),dt>=b&&(dt=2*b-dt),q+dt<m){M.push(e(j,G));return}if(u!==0){if(q>u){M.push(e(v,T));return}if(dt>u){M.push(e(l,h));return}}}}else if(tt>i){if(tt*tt<=A*(X*X+Z*Z)){if(m<c){M.push(e(j,G));return}if(q=Math.abs(Math.atan2(h-T,l-v)-Math.atan2(T-x,v-O)),q>=b&&(q=2*b-q),q<m){M.push(e(v,T)),M.push(e(l,h));return}if(u!==0&&q>u){M.push(e(v,T));return}}}else if(nt>i){if(nt*nt<=A*(X*X+Z*Z)){if(m<c){M.push(e(j,G));return}if(q=Math.abs(Math.atan2(g-h,f-l)-Math.atan2(h-T,l-v)),q>=b&&(q=2*b-q),q<m){M.push(e(v,T)),M.push(e(l,h));return}if(u!==0&&q>u){M.push(e(l,h));return}}}else if(X=j-(O+f)/2,Z=G-(x+g)/2,X*X+Z*Z<=A){M.push(e(j,G));return}}y(O,x,E,L,z,K,j,G,M,A,C+1),y(j,G,Q,_,R,B,f,g,M,A,C+1)}}}},function(d,r,t){t.r(r),t.d(r,"create",function(){return a}),t.d(r,"clone",function(){return n}),t.d(r,"copy",function(){return s}),t.d(r,"scaleAndAdd",function(){return i}),t.d(r,"dot",function(){return o}),t.d(r,"rotate",function(){return c}),t.d(r,"cross",function(){return m}),t.d(r,"sub",function(){return u}),t.d(r,"add",function(){return p}),t.d(r,"computeMiter",function(){return v}),t.d(r,"normal",function(){return T}),t.d(r,"direction",function(){return l});var e=t(1);t(1).glMatrix.setMatrixArrayType(Array);function n(h){return[h[0],h[1]]}function a(){return[0,0]}const s=e.vec2.copy,i=e.vec2.scaleAndAdd,o=e.vec2.dot,c=e.vec2.rotate,m=e.vec2.cross,u=e.vec2.sub,p=e.vec2.add,y=e.vec2.normalize,O=e.vec2.set,x=a();function v(h,f,g,M,A){p(h,g,M),y(h,h),O(f,-h[1],h[0]),O(x,-g[1],g[0]);const C=A/o(f,x);return Math.abs(C)}function T(h,f){return O(h,-f[1],f[0]),h}function l(h,f,g){return u(h,f,g),y(h,h),h}},function(d,r,t){var e=t(51),n=t(52);d.exports=function(s,i){return s=e(s,i),s=n(s,i),s},d.exports.radialDistance=e,d.exports.douglasPeucker=n},function(d,r){function t(e,n){var a=e[0]-n[0],s=e[1]-n[1];return a*a+s*s}d.exports=function(n,a){if(n.length<=1)return n;a=typeof a=="number"?a:1;for(var s=a*a,i=n[0],o=[i],c,m=1,u=n.length;m<u;m++)c=n[m],t(c,i)>s&&(o.push(c),i=c);return i!==c&&o.push(c),o}},function(d,r){function t(n,a,s){var i=a[0],o=a[1],c=s[0]-i,m=s[1]-o;if(c!==0||m!==0){var u=((n[0]-i)*c+(n[1]-o)*m)/(c*c+m*m);u>1?(i=s[0],o=s[1]):u>0&&(i+=c*u,o+=m*u)}return c=n[0]-i,m=n[1]-o,c*c+m*m}function e(n,a,s,i,o){for(var c=i,m,u=a+1;u<s;u++){var p=t(n[u],n[a],n[s]);p>c&&(m=u,c=p)}c>i&&(m-a>1&&e(n,a,m,i,o),o.push(n[m]),s-m>1&&e(n,m,s,i,o))}d.exports=function(a,s){if(a.length<=1)return a;s=typeof s=="number"?s:1;var i=s*s,o=a.length-1,c=[a[0]];return e(a,0,o,i,c),c.push(a[o]),c}},function(d,r,t){t.r(r),t.d(r,"getTotalLength",function(){return n}),t.d(r,"getPointAtLength",function(){return s}),t.d(r,"getDashContours",function(){return i});var e=t(54);t(1).glMatrix.setMatrixArrayType(Array);function n(o){if(o.totalLength!=null)return o.totalLength;let c=0;return o.forEach(m=>{let u=m[0];for(let p=1;p<m.length;p++){const y=m[p];c+=Object(e.distance)(u,y),u=y}}),o.totalLength=c,c}function a(o,c,m=!0){if(c=Number(c),!Number.isFinite(c))throw new TypeError("Failed to execute 'getPointAtLength' on figure: The provided float value is non-finite.");if(c<=0)throw new TypeError("Length must > 0");const u=n(o);if(c>=u){const y=o[o.length-1],O=y[y.length-2],x=y[y.length-1],v=Math.atan2(x[1]-O[1],x[0]-O[0]);return{current:o.map(T=>[...T]),point:{x:x[0],y:x[1],angle:v}}}const p=[];for(let y=0;y<o.length;y++){p[y]=[];const O=o[y];let x=O[0];for(let v=1;v<O.length;v++){const T=O[v],l=Object(e.distance)(x,T);if(c<l){const h=c/l,f=Math.atan2(T[1]-x[1],T[0]-x[0]),g={x:x[0]*(1-h)+T[0]*h,y:x[1]*(1-h)+T[1]*h,angle:f};if(p[y].push(x),c>0&&p[y].push([g.x,g.y]),!m)return{current:p,point:g};const M=[],A=y;for(;y<o.length;y++){for(M[y-A]=[],y===A&&M[0].push([g.x,g.y]);v<O.length;v++)M[y-A].push(O[v]);v=0}return{current:p,point:g,rest:M}}c-=l,p[y].push(x),x=T}}}function s(o,c){if(c=Number(c),!Number.isFinite(c))throw new TypeError("Failed to execute 'getPointAtLength' on figure: The provided float value is non-finite.");if(o.length<=0)return{x:0,y:0,angle:0};if(c<=0){const m=o[0][0],u=o[0][1],p=Math.atan2(u[1]-m[1],u[0]-m[0]);return{x:m[0],y:m[1],angle:p}}return a(o,c,!1).point}function i(o,c,m){let u=0,p=c[0],y=o;const O=[],x=c.length;if(m>0){do m-=c[u%x],u++;while(m>0);m<0&&(p=-m,u--)}else if(m<0){u=-1;do m+=c[u%x+x-1],u--;while(m<0);m>=0&&(u++,p=c[u%x+x-1]-m)}do{const v=a(y,p);y=v.rest,++u%2&&O.push(...v.current);let T=u%x;T<0&&(T+=x),p=c[T]}while(y);return O}},function(d,r,t){t.r(r),t.d(r,"normalize",function(){return e}),t.d(r,"distance",function(){return n}),t(1).glMatrix.setMatrixArrayType(Array);function e([a,s,i],o,c,m){return a=a*2/o-1,s=1-s*2/c,Number.isFinite(m)?(i=i*2/m-1,[a,s,i]):[a,s]}function n([a,s,i=0],[o,c,m=0]){return Math.hypot(o-a,c-s,m-i)}},function(d,r,t){t.r(r),t.d(r,"getPoint",function(){return n}),t(1).glMatrix.setMatrixArrayType(Array);const e=Math.PI*2;function n(a,s,i,o,c){c%=e,c<0&&(c+=e);const m=Math.tan(c);if(Math.abs(m)<1e5){const u=s-m*a,p=1/i**2+m**2/o**2;let y=-1;(c<=Math.PI/2||c>3*Math.PI/2)&&(y=1);const O=y*Math.sqrt(1/p)+a,x=m*O+u;return[O,x]}return c<Math.PI?[a,s+o]:[a,s-o]}},function(d,r,t){t.r(r),t.d(r,"default",function(){return V});var e=t(1),n=t(42),a=t.n(n),s=t(57),i=t(28),o=t(24),c=t(30),m=t(59),u=t(53),p=t(60),y=t.n(p),O=t(46),x=t.n(O),v=t(31),T=t(40),l=t(21);t(1).glMatrix.setMatrixArrayType(Array);function h(J,N){if(J==null)return{};var $=f(J,N),S,P;if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(J);for(P=0;P<w.length;P++)S=w[P],!(N.indexOf(S)>=0)&&Object.prototype.propertyIsEnumerable.call(J,S)&&($[S]=J[S])}return $}function f(J,N){if(J==null)return{};var $={},S=Object.keys(J),P,w;for(w=0;w<S.length;w++)P=S[w],!(N.indexOf(P)>=0)&&($[P]=J[P]);return $}const g=Symbol("mesh"),M=Symbol("contours"),A=Symbol("stroke"),C=Symbol("fill"),b=Symbol("strokeColor"),E=Symbol("fillColor"),L=Symbol("transform"),D=Symbol("invertTransform"),I=Symbol("uniforms"),R=Symbol("texOptions"),B=Symbol("blend"),z=Symbol("applyTexture"),K=Symbol("applyTransform"),Q=Symbol("applyGradientTransform"),_=Symbol("applyProgram"),j=Symbol("gradient"),G=Symbol("filter"),X=Symbol("opacity"),Z=Symbol("program"),tt=Symbol("attributes"),nt=Symbol("pass"),q=Symbol("clipContext"),dt=Symbol("applyClipPath");function ut(J,N){const[$,S]=[J[1][0]-J[0][0],J[1][1]-J[0][1]],P=[];for(let w=0;w<N.length;w++){const U=N[w],H=[(U[0]-J[0][0])/$,1-(U[1]-J[0][1])/S];P.push(H)}return P}function W([J,N],[$,S,P,w],{scale:U}){return U||(J/=P,N=1-N/w,J-=$,N+=S),[J,N,0]}function F(J,N,$){const S=x()(J,N,$);return S.path=J,S.simplify=$,S.scale=N,S}class V{constructor(N){this[A]=null,this[C]=null,this[L]=[1,0,0,1,0,0],this[X]=1,this[I]={},this[G]=[],this[B]=null,this[R]={},this.contours=N.contours,this[Z]=null,this[tt]={},this[nt]=[]}get contours(){return this[M]}set contours(N){this[g]=null,this[M]=N;const $=N.scale;this.transformScale/$>1.5&&this.accurate(this.transformScale)}setProgram(N){this[Z]=N,this[g]&&this[_](N)}get program(){return this[Z]}setAttribute(N,$){$==null?delete this[tt][N]:this[tt][N]=$}getOpacity(){return this[X]}setOpacity(N){if(N<0||N>1)throw new TypeError("Invalid opacity value.");this[g]&&this[g].positions.forEach($=>{$[2]=1/$[2]>0?N:-N}),this[X]=N}setClipPath(N){this.clipPath=N,this[I].u_clipSampler&&this[I].u_clipSampler.delete(),this.setUniforms({u_clipSampler:null}),this[g]&&delete this[g].attributes.a_clipUV,N&&this[g]&&this[dt]()}[dt](){if(this.clipPath){this[q]||(this[q]=l.default.createCanvas(1,1));const[[N,$],[S,P]]=this.boundingBox;S&&P&&(this[q].width=S-N,this[q].height=P-$);const w=this[q].getContext("2d"),U=new Path2D(this.clipPath);w.clearRect(0,0,this[q].width,this[q].height),w.save(),w.translate(-N,-$),w.fillStyle="white",w.fill(U),w.restore(),this[g].clipPath=this[q];const H=ut(this.boundingBox,this[g].position0);this[g].attributes.a_clipUV=H}}getPointAtLength(N){return Object(u.getPointAtLength)(this[M],N)}getTotalLength(){return Object(u.getTotalLength)(this[M])}get blend(){return this[B]==null?"auto":this[B]}set blend(N){this[B]=N,this[g]&&(this[g].enableBlend=this.enableBlend)}get boundingBox(){if(this[g]&&this[g].boundingBox)return this[g].boundingBox;const N=this.meshData;if(N){const $=N.position0;if($.length)N.boundingBox=a()($);else return[[0,0],[0,0]];return N.boundingBox}return[[0,0],[0,0]]}get boundingCenter(){const N=this.boundingBox;return N?[.5*(N[0][0]+N[1][0]),.5*(N[0][1]+N[1][1])]:[0,0]}get fillRule(){return this[C]?this[C].rule:"nonzero"}get lineWidth(){return this[A]?this[A].lineWidth:0}get lineCap(){return this[A]?this[A].lineCap:""}get lineJoin(){return this[A]?this[A].lineJoin:""}get miterLimit(){return this[A]?this[A].miterLimit:0}get strokeStyle(){return this[b]&&this[b][3]!==0?Object(o.default)(this[b]):""}get lineDash(){return this[A]?this[A].lineDash:null}get lineDashOffset(){return this[A]?this[A].lineDashOffset:0}get fillStyle(){return this[E]&&this[E][3]!==0?Object(o.default)(this[E]):""}get gradient(){return this[j]}get texture(){return this[I].u_texSampler?{image:this[I].u_texSampler._img,options:this[R]}:null}get enableBlend(){return this[B]===!0||this[B]===!1?this[B]:this[X]<1||this[b]!=null&&this[b][3]<1||this[E]!=null&&this[E][3]<1||this[I].u_colorMatrix!=null&&this[I].u_colorMatrix[18]<1||this[I].u_radialGradientVector!=null||this.beforeRender||this.afterRender}get filterCanvas(){return/blur|drop-shadow|url/.test(this.filter)}get filter(){return this[G].join(" ")}get transformMatrix(){return this[L]}get invertMatrix(){if(!this[D]){const N=e.mat2d.invert(Array.of(0,0,0,0,0,0),this[L]);this[D]=N}return this[D]}get transformScale(){const N=this[L];return Math.max(Math.hypot(N[0],N[1]),Math.hypot(N[2],N[3]))}get uniforms(){return this[I]}get pass(){return this[nt]}[_](N){const $=this[tt],S=this[g].position0,P=Object.entries(N._attribute);for(let w=0;w<P.length;w++){const[U,H]=P[w];if(U!=="a_color"&&U!=="a_sourceRect"&&H!=="ignored"){const Y=$[U];if(U==="uv"&&!Y){const k=this[g].boundingBox||a()(S);this[g].attributes[U]=ut(k,S)}else{this[g].attributes[U]=[];for(let k=0;k<S.length;k++){const rt=S[k];this[g].attributes[U].push(Y?Y(rt,w,S):Array(H.size).fill(0))}}}}}get meshData(){if(this._updateMatrix&&this.transformScale/this.contours.scale>1.5&&this.accurate(this.transformScale),!this[g]){!this[C]&&!this[A]&&this.setFill();const N=this[M],$={};if(N&&N.length){if(this[C])try{const w=y()(N,this[C]);w.positions=w.positions.map(U=>(U.push(this[X]),U)),w.attributes={a_color:Array.from({length:w.positions.length}).map(()=>this[E].map(U=>Math.round(255*U)))},$.fill=w}catch{}if(this[A]){const w=this[A].lineDash;let U=N;if(w){const Y=this[A].lineDashOffset;U=Object(u.getDashContours)(N,w,Y)}const H=U.map((Y,k)=>{const rt=Y.length>1&&e.vec2.equals(Y[0],Y[Y.length-1]),it=this[A].build(Y,rt);return y()([it])});H.forEach(Y=>{Y.positions=Y.positions.map(k=>(k.push(-this[X]),k)),Y.attributes={a_color:Array.from({length:Y.positions.length}).map(()=>this[b].map(k=>Math.round(255*k)))}}),$.stroke=Object(i.default)(H)}}const S=Object(i.default)([$.fill,$.stroke]);S.fillPointCount=$.fill?$.fill.positions.length:0,S.enableBlend=this.enableBlend,S.position0=S.positions.map(([w,U,H])=>[w,U,H]),S.uniforms=this[I],this[g]=S,this[I].u_texSampler&&this[z](S,this[R]);const P=this[L];Object(m.isUnitTransform)(P)||(this[K](S,P),this[I].u_radialGradientVector&&this[Q]()),this.clipPath&&this[dt](),this[Z]&&this[_](this[Z])}return this._updateMatrix&&(this[g].matrix=this[L],this[K](this[g],this[L]),this[I].u_radialGradientVector&&this[Q]()),this[g]}[K](N,$){const{positions:S,position0:P}=N;for(let w=0;w<S.length;w++){const[U,H]=P[w],Y=S[w];Y[0]=U*$[0]+H*$[2]+$[4],Y[1]=U*$[1]+H*$[3]+$[5]}this._updateMatrix=!1}[Q](){const N=this[L],$=[...this._radialGradientVector];if($){const[S,P,,w,U]=$;$[0]=S*N[0]+P*N[2]+N[4],$[1]=S*N[1]+P*N[3]+N[5],$[3]=w*N[0]+U*N[2]+N[4],$[4]=w*N[1]+U*N[3]+N[5],this[I].u_radialGradientVector=$}}[z](N,$){function S(k,rt){return k==null&&rt==null?!0:k==null||rt==null?!1:k[0]===rt[0]&&k[1]===rt[1]&&k[2]===rt[2]&&k[3]===rt[3]}const P=this[I].u_texSampler;if(!P)return;const{width:w,height:U}=P._img,H=$.srcRect;let Y=$.rect||[0,0];if($.rotated&&(Y=[-Y[1],Y[0],Y[3],Y[2]]),Y[2]==null&&(Y[2]=H?H[2]:w),Y[3]==null&&(Y[3]=H?H[3]:U),$.hidden)N.textureCoord=N.positions.map(()=>[-1,-1,-1]);else if(!N.textureCoord||!S(this[R].rect,$.rect)||this[R].hidden!==$.hidden||this[R].rotated!==$.rotated){let k=null;$.rotated&&(k=e.mat2d.rotate(Array.of(0,0,0,0,0,0),e.mat2d.fromValues(1,0,0,1,0,0),.5*Math.PI),k=e.mat2d.translate(Array.of(0,0,0,0,0,0),k,[0,-Y[2]])),N.textureCoord=N.position0.map(([rt,it,ct])=>{if(1/ct>0){if($.rotated){const at=rt*k[0]+it*k[2]+k[4],ot=rt*k[1]+it*k[3]+k[5];[rt,it]=[at,ot]}const ht=W([rt,it],[Y[0]/Y[2],Y[1]/Y[3],Y[2],Y[3]],$);return $.repeat&&(ht[2]=1),ht}return[-1,-1,-1]})}if(H){const k=[H[0]/w,H[1]/U,H[2]/w,H[3]/U];N.attributes.a_sourceRect=N.positions.map(()=>[...k])}else N.attributes.a_sourceRect=N.positions.map(()=>[0,0,0,0])}accurate(N){if(!this.contours)return;if(this.contours.path){const S=this.contours.simplify,P=F(this.contours.path,2*N,S);this[g]=null,this[M]=P}}canIgnore(){const N=this[A]==null||this[A].lineWidth===0||this[b][3]===0,$=this[C]==null||this[E][3]===0,S=this[I].u_radialGradientVector==null,P=this[I].u_texSampler==null;return this[X]===0||this[Z]==null&&N&&$&&S&&P&&!this.beforeRender&&!this.afterRender}setStroke({thickness:N=1,cap:$="butt",join:S="miter",miterLimit:P=10,color:w=[0,0,0,0],lineDash:U=null,lineDashOffset:H=0,roundSegments:Y=20}={}){return this[g]=null,this[A]=new s.default({lineWidth:N,lineCap:$,lineJoin:S,miterLimit:P,roundSegments:Y}),typeof w=="string"&&(w=Object(v.default)(w)),this[b]=w,this[A].lineDash=U,this[A].lineDashOffset=H,this}setFill({rule:N=this.fillRule,color:$=[0,0,0,0]}={}){return this[g]=null,this[C]={rule:N},typeof $=="string"&&($=Object(v.default)($)),this[E]=$,this}setTexture(N,$={}){if(N&&N.image){const{image:S,rect:P}=N;if(N=S,$.rect)for(let w=0;w<$.rect.length;w++)P[w]=$.rect[w];$.rect=P}return this[C]||this.setFill(),this.setUniforms({u_texSampler:N}),this[g]&&this[z](this[g],$),this[R]=$,this}setCircularGradient({vector:N,colors:$,type:S="fill"}={}){if(N.length!==3)throw new TypeError("Invalid linearGradient.");this.setGradient({vector:N,colors:$,type:S})}setLinearGradient({vector:N,colors:$,type:S="fill"}={}){if(N.length!==4)throw new TypeError("Invalid linearGradient.");this.setGradient({vector:N,colors:$,type:S})}setRadialGradient({vector:N,colors:$,type:S="fill"}={}){if(N.length!==6)throw new TypeError("Invalid radialGradient.");this.setGradient({vector:N,colors:$,type:S})}setGradient({vector:N,colors:$,type:S="fill"}={}){$=$.map(({offset:U,color:H})=>(typeof H=="string"&&(H=Object(v.default)(H)),{offset:U,color:H})),this[j]=this[j]||{},this[j][S]={vector:N,colors:$},$.sort((U,H)=>U.offset-H.offset);const P=[];$.forEach(({offset:U,color:H})=>{P.push(U,...H)});let w;if(N.length===4?w=[N[0],N[1],0,N[2],N[3],0]:w=[...N],P.length<40&&P.push(-1),P.length>40)throw new Error("Too many colors, should be less than 8 colors");return this._radialGradientVector=w,this[I].u_colorSteps=P,S==="fill"?this[I].u_gradientType=1:this[I].u_gradientType=0,this[Q](),this}setUniforms(N={}){return Object.assign(this[I],N),this}setTransform(...N){const $=this[L];return e.mat2d.equals(N,$)||(this[L]=N,delete this[D],this._updateMatrix=!0),this}transform(...N){const $=this[L];return this[L]=e.mat2d.multiply(Array.of(0,0,0,0,0,0),$,N),delete this[D],this._updateMatrix=!0,this}translate(N,$){let S=e.mat2d.create();return S=e.mat2d.translate(Array.of(0,0,0,0,0,0),S,[N,$]),this.transform(...S)}rotate(N,[$,S]=[0,0]){let P=e.mat2d.create();return P=e.mat2d.translate(Array.of(0,0,0,0,0,0),P,[$,S]),P=e.mat2d.rotate(Array.of(0,0,0,0,0,0),P,N),P=e.mat2d.translate(Array.of(0,0,0,0,0,0),P,[-$,-S]),this.transform(...P)}scale(N,$=N,[S,P]=[0,0]){let w=e.mat2d.create();return w=e.mat2d.translate(Array.of(0,0,0,0,0,0),w,[S,P]),w=e.mat2d.scale(Array.of(0,0,0,0,0,0),w,[N,$]),w=e.mat2d.translate(Array.of(0,0,0,0,0,0),w,[-S,-P]),this.transform(...w)}skew(N,$=N,[S,P]=[0,0]){let w=e.mat2d.create();return w=e.mat2d.translate(Array.of(0,0,0,0,0,0),w,[S,P]),w=e.mat2d.multiply(Array.of(0,0,0,0,0,0),w,e.mat2d.fromValues(1,Math.tan($),Math.tan(N),1,0,0)),w=e.mat2d.translate(Array.of(0,0,0,0,0,0),w,[-S,-P]),this.transform(...w)}clearFilter(){return this.setColorTransform(null),this[G].length=0,this}setColorTransform(...N){return N[0]===null?this.setUniforms({u_filterFlag:0,u_colorMatrix:0}):this.setUniforms({u_filterFlag:1,u_colorMatrix:N}),this}transformColor(...N){let $=this.uniforms.u_colorMatrix;return $?$=Object(c.multiply)($,N):$=N,this.setColorTransform(...$),this}blur(N){return this[G].push(`blur(${N}px)`),this}brightness(N=1){return this[G].push(`brightness(${100*N}%)`),this.transformColor(...Object(c.brightness)(N))}contrast(N=1){return this[G].push(`contrast(${100*N}%)`),this.transformColor(...Object(c.contrast)(N))}dropShadow(N,$,S=0,P=[0,0,0,1]){return Array.isArray(P)&&(P=Object(o.default)(P)),this[G].push(`drop-shadow(${N}px ${$}px ${S}px ${P})`),this}grayscale(N=1){return this[G].push(`grayscale(${100*N}%)`),this.transformColor(...Object(c.grayscale)(N))}hueRotate(N=0){return this[G].push(`hue-rotate(${N}deg)`),this.transformColor(...Object(c.hueRotate)(N))}invert(N=1){return this[G].push(`invert(${100*N}%)`),this.transformColor(...Object(c.invert)(N))}opacity(N=1){return this[G].push(`opacity(${100*N}%)`),this.transformColor(...Object(c.opacity)(N))}saturate(N=1){return this[G].push(`saturate(${100*N}%)`),this.transformColor(...Object(c.saturate)(N))}sepia(N=1){return this[G].push(`sepia(${100*N}%)`),this.transformColor(...Object(c.sepia)(N))}url(N){return this[G].push(`url(${N})`),this}isPointCollision(N,$,S="both"){const P=this.meshData,{positions:w,cells:U}=P,H=this.invertMatrix,Y=H[0]*N+H[2]*$+H[4],k=H[1]*N+H[3]*$+H[5],rt=this.boundingBox;if(Y<rt[0][0]||Y>rt[1][0]||k<rt[0][1]||k>rt[1][1])return!1;function it([ct,ht],[at,ot],[ft,mt]){const vt=ft-at,pt=mt-ot,xt=((ct-at)*vt+(ht-ot)*pt)/(vt**2+pt**2);return xt>=0&&xt<=1}for(let ct=0;ct<U.length;ct++){const ht=U[ct];if(S==="fill"&&ht[0]>=P.fillPointCount)break;if(S==="stroke"&&ht[0]<P.fillPointCount)continue;const[[at,ot],[ft,mt],[vt,pt]]=ht.map(Pt=>w[Pt]),xt=Math.sign((N-at)*(mt-ot)-(ft-at)*($-ot));if(xt===0&&it([N,$],[at,ot],[ft,mt]))return!0;const Rt=Math.sign((N-ft)*(pt-mt)-(vt-ft)*($-mt));if(Rt===0&&it([N,$],[ft,mt],[vt,pt]))return!0;const Et=Math.sign((N-vt)*(ot-pt)-(at-vt)*($-pt));if(Et===0&&it([N,$],[vt,pt],[at,ot])||xt===1&&Rt===1&&Et===1||xt===-1&&Rt===-1&&Et===-1)return!0}return!1}isPointInFill(N,$){return this.isPointCollision(N,$,"fill")}isPointInStroke(N,$){return this.isPointCollision(N,$,"stroke")}addPass(N,$={}){let{width:S,height:P}=$,w=h($,["width","height"]);const U=new T.default;U.rect(0,0,S,P);const H=new V(U,{width:S,height:P});H.setUniforms(w),H.setProgram(N),this[nt].push(H)}}},function(d,r,t){t.r(r);var e=t(58);t(1).glMatrix.setMatrixArrayType(Array),r.default=e.Stroke},function(d,r,t){t.r(r),t.d(r,"Stroke",function(){return m});var e=t(49);t(1).glMatrix.setMatrixArrayType(Array);const n=Object(e.create)(),a=Object(e.create)(),s=Object(e.create)(),i=Object(e.create)(),o=Object(e.create)(),c=1e20;class m{constructor({lineWidth:x=1,lineJoin:v="miter",miterLimit:T=10,lineCap:l="butt",roundSegments:h=20}={}){this.lineWidth=x,this.lineJoin=v,this.miterLimit=T,this.lineCap=l,this.roundSegments=h,this._normal=null}build(x,v=!1){let T=x.length;if(x=[...x],T<2)return x;v&&((x[0][0]!==x[T-1][0]||x[0][1]!==x[T-1][1])&&x.push([...x[0]]),x.push([...x[1]])),T=x.length,this._normal=null;const l={left:[],right:[]},h=this.lineWidth/2,f=this.lineCap;if(!v&&f==="square"){Object(e.direction)(a,x[0],x[1]),Object(e.scaleAndAdd)(x[0],x[0],a,h);const M=x.length-1;Object(e.direction)(a,x[M],x[M-1]),Object(e.scaleAndAdd)(x[M],x[M],a,h)}for(let M=1;M<T;M++){const A=x[M-1],C=x[M],b=x[M+1];this._seg(l,A,C,b,h,v)}return!v&&f==="round"&&y(l,this.roundSegments),[...l.left,...l.right.reverse()]}_seg(x,v,T,l,h,f){const g=this.lineJoin==="bevel",M=this.lineJoin==="round";if(Object(e.direction)(a,T,v),this._normal||(this._normal=Object(e.create)(),Object(e.normal)(this._normal,a)),x.left.length||p(x,v,this._normal,h),!l)Object(e.normal)(this._normal,a),f?p(x,v,this._normal,h):p(x,T,this._normal,h);else{Object(e.direction)(s,l,T);let A=Object(e.computeMiter)(i,o,a,s,h);A=Math.min(A,c);const C=Object(e.dot)(i,this._normal)<0?-1:1;let b=g||M;if(!b&&this.lineJoin==="miter"&&A/h>this.miterLimit&&(b=!0),b){Object(e.scaleAndAdd)(n,T,this._normal,-h*C),u(x,n,C);let E=1/0;v&&(E=Math.min(E,Math.hypot(T[0]-v[0],T[1]-v[1]))),l&&(E=Math.min(E,Math.hypot(l[0]-T[0],l[1]-T[1])));const L=Math.max(h,Math.min(A,E));if(Object(e.scaleAndAdd)(n,T,o,L*C),u(x,n,-C),l)if(Object(e.normal)(n,s),Object(e.copy)(this._normal,n),Object(e.scaleAndAdd)(n,T,n,-h*C),M){const D=Object(e.clone)(n),I=C>0?x.left[x.left.length-1]:x.right[x.right.length-1],R=Object(e.clone)(T),B=Object(e.sub)(Object(e.create)(),I,R),z=Object(e.sub)(Object(e.create)(),D,R),K=Math.PI/this.roundSegments;for(let Q=0;Q<this.roundSegments&&(Object(e.rotate)(B,B,[0,0],C*K),Math.sign(Object(e.cross)(n,B,z)[2])===C);Q++)Object(e.add)(n,B,R),u(x,n,C);u(x,D,C)}else u(x,n,C)}else p(x,T,o,A),Object(e.copy)(this._normal,o)}}}function u(O,x,v){v>0?O.left.push(Object(e.clone)(x)):O.right.push(Object(e.clone)(x))}function p(O,x,v,T,l=-1){Object(e.scaleAndAdd)(n,x,v,-T),u(O,n,-l),Object(e.scaleAndAdd)(n,x,v,T),u(O,n,l)}function y({left:O,right:x},v){const T=Object(e.create)(),l=Object(e.create)();let h=O[0],f=x[0],g=[.5*(h[0]+f[0]),.5*(h[1]+f[1])];Object(e.sub)(l,h,g);for(let M=1;M<=v;M++){const A=-1*Math.PI*M/v;Object(e.rotate)(T,l,[0,0],A),Object(e.add)(n,g,T),O.unshift(Object(e.clone)(n))}h=x[x.length-1],f=O[O.length-1],g=[.5*(h[0]+f[0]),.5*(h[1]+f[1])],Object(e.sub)(l,h,g);for(let M=1;M<=v;M++){const A=-1*Math.PI*M/v;Object(e.rotate)(T,l,[0,0],A),Object(e.add)(n,g,T),x.push(Object(e.clone)(n))}}},function(d,r,t){t.r(r),t.d(r,"isUnitTransform",function(){return e}),t(1).glMatrix.setMatrixArrayType(Array);function e(n){return n[0]===1&&n[1]===0&&n[2]===0&&n[3]===1&&n[4]===0&&n[5]===0}},function(d,r,t){t(1).glMatrix.setMatrixArrayType(Array);var e=t(61),n=t(62);d.exports=function(a,s){if(s=s||{},a=a.filter(function(v){return v.length>2}),a.length===0)return{positions:[],cells:[]};typeof s.vertexSize!="number"&&(s.vertexSize=a[0][0].length),a=a.map(function(v){return v.reduce(function(T,l){return T.concat(l)})});const i=s.rule==="evenodd"?e.WINDING_ODD:e.WINDING_NONZERO;for(var o=e.tesselate(n({contours:a,windingRule:i,elementType:e.POLYGONS,polySize:3,vertexSize:2},s)),c=[],m=0;m<o.vertices.length;m+=s.vertexSize){var u=o.vertices.slice(m,m+s.vertexSize);c.push(u)}var p=[];for(m=0;m<o.elements.length;m+=3){var y=o.elements[m],O=o.elements[m+1],x=o.elements[m+2];p.push([y,O,x])}return{positions:c,cells:p}}},function(d,r,t){t(1).glMatrix.setMatrixArrayType(Array);var e={},n={};d.exports=e,e.WINDING_ODD=0,e.WINDING_NONZERO=1,e.WINDING_POSITIVE=2,e.WINDING_NEGATIVE=3,e.WINDING_ABS_GEQ_TWO=4,e.POLYGONS=0,e.CONNECTED_POLYGONS=1,e.BOUNDARY_CONTOURS=2,e.tesselate=function(l){for(var h=l.debug||!1,f=new T,g=0;g<l.contours.length;g++)f.addContour(l.vertexSize||2,l.contours[g]);return f.tesselate(l.windingRule||e.WINDING_ODD,l.elementType||e.POLYGONS,l.polySize||3,l.vertexSize||2,l.normal||[0,0,1]),{vertices:f.vertices,vertexIndices:f.vertexIndices,vertexCount:f.vertexCount,elements:f.elements,elementCount:f.elementCount,mesh:h?f.mesh:void 0}};var a=function(l){if(!l)throw"Assertion Failed!"};function s(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}function i(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}function o(l){this.next=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Org=null,this.Lface=null,this.activeRegion=null,this.winding=0,this.side=l}o.prototype={get Rface(){return this.Sym.Lface},set Rface(l){this.Sym.Lface=l},get Dst(){return this.Sym.Org},set Dst(l){this.Sym.Org=l},get Oprev(){return this.Sym.Lnext},set Oprev(l){this.Sym.Lnext=l},get Lprev(){return this.Onext.Sym},set Lprev(l){this.Onext.Sym=l},get Dprev(){return this.Lnext.Sym},set Dprev(l){this.Lnext.Sym=l},get Rprev(){return this.Sym.Onext},set Rprev(l){this.Sym.Onext=l},get Dnext(){return this.Sym.Onext.Sym},set Dnext(l){this.Sym.Onext.Sym=l},get Rnext(){return this.Sym.Lnext.Sym},set Rnext(l){this.Sym.Lnext.Sym=l}};function c(){var l=new s,h=new i,f=new o(0),g=new o(1);l.next=l.prev=l,l.anEdge=null,h.next=h.prev=h,h.anEdge=null,h.trail=null,h.marked=!1,h.inside=!1,f.next=f,f.Sym=g,f.Onext=null,f.Lnext=null,f.Org=null,f.Lface=null,f.winding=0,f.activeRegion=null,g.next=g,g.Sym=f,g.Onext=null,g.Lnext=null,g.Org=null,g.Lface=null,g.winding=0,g.activeRegion=null,this.vHead=l,this.fHead=h,this.eHead=f,this.eHeadSym=g}c.prototype={makeEdge_:function(l){var h=new o(0),f=new o(1);l.Sym.side<l.side&&(l=l.Sym);var g=l.Sym.next;return f.next=g,g.Sym.next=h,h.next=l,l.Sym.next=f,h.Sym=f,h.Onext=h,h.Lnext=f,h.Org=null,h.Lface=null,h.winding=0,h.activeRegion=null,f.Sym=h,f.Onext=f,f.Lnext=h,f.Org=null,f.Lface=null,f.winding=0,f.activeRegion=null,h},splice_:function(l,h){var f=l.Onext,g=h.Onext;f.Sym.Lnext=h,g.Sym.Lnext=l,l.Onext=g,h.Onext=f},makeVertex_:function(l,h,f){var g=l;a(g!==null);var M=f.prev;g.prev=M,M.next=g,g.next=f,f.prev=g,g.anEdge=h;var A=h;do A.Org=g,A=A.Onext;while(A!==h)},makeFace_:function(l,h,f){var g=l;a(g!==null);var M=f.prev;g.prev=M,M.next=g,g.next=f,f.prev=g,g.anEdge=h,g.trail=null,g.marked=!1,g.inside=f.inside;var A=h;do A.Lface=g,A=A.Lnext;while(A!==h)},killEdge_:function(l){l.Sym.side<l.side&&(l=l.Sym);var h=l.next,f=l.Sym.next;h.Sym.next=f,f.Sym.next=h},killVertex_:function(l,h){var f=l.anEdge,g=f;do g.Org=h,g=g.Onext;while(g!==f);var M=l.prev,A=l.next;A.prev=M,M.next=A},killFace_:function(l,h){var f=l.anEdge,g=f;do g.Lface=h,g=g.Lnext;while(g!==f);var M=l.prev,A=l.next;A.prev=M,M.next=A},makeEdge:function(){var l=new s,h=new s,f=new i,g=this.makeEdge_(this.eHead);return this.makeVertex_(l,g,this.vHead),this.makeVertex_(h,g.Sym,this.vHead),this.makeFace_(f,g,this.fHead),g},splice:function(l,h){var f=!1,g=!1;if(l!==h){if(h.Org!==l.Org&&(g=!0,this.killVertex_(h.Org,l.Org)),h.Lface!==l.Lface&&(f=!0,this.killFace_(h.Lface,l.Lface)),this.splice_(h,l),!g){var M=new s;this.makeVertex_(M,h,l.Org),l.Org.anEdge=l}if(!f){var A=new i;this.makeFace_(A,h,l.Lface),l.Lface.anEdge=l}}},delete:function(l){var h=l.Sym,f=!1;if(l.Lface!==l.Rface&&(f=!0,this.killFace_(l.Lface,l.Rface)),l.Onext===l)this.killVertex_(l.Org,null);else if(l.Rface.anEdge=l.Oprev,l.Org.anEdge=l.Onext,this.splice_(l,l.Oprev),!f){var g=new i;this.makeFace_(g,l,l.Lface)}h.Onext===h?(this.killVertex_(h.Org,null),this.killFace_(h.Lface,null)):(l.Lface.anEdge=h.Oprev,h.Org.anEdge=h.Onext,this.splice_(h,h.Oprev)),this.killEdge_(l)},addEdgeVertex:function(l){var h=this.makeEdge_(l),f=h.Sym;this.splice_(h,l.Lnext),h.Org=l.Dst;var g=new s;return this.makeVertex_(g,f,h.Org),h.Lface=f.Lface=l.Lface,h},splitEdge:function(l,h){var f=this.addEdgeVertex(l),g=f.Sym;return this.splice_(l.Sym,l.Sym.Oprev),this.splice_(l.Sym,g),l.Dst=g.Org,g.Dst.anEdge=g.Sym,g.Rface=l.Rface,g.winding=l.winding,g.Sym.winding=l.Sym.winding,g},connect:function(l,h){var f=!1,g=this.makeEdge_(l),M=g.Sym;if(h.Lface!==l.Lface&&(f=!0,this.killFace_(h.Lface,l.Lface)),this.splice_(g,l.Lnext),this.splice_(M,h),g.Org=l.Dst,M.Org=h.Org,g.Lface=M.Lface=l.Lface,l.Lface.anEdge=M,!f){var A=new i;this.makeFace_(A,g,l.Lface)}return g},zapFace:function(l){var h=l.anEdge,f,g,M,A,C;g=h.Lnext;do f=g,g=f.Lnext,f.Lface=null,f.Rface===null&&(f.Onext===f?this.killVertex_(f.Org,null):(f.Org.anEdge=f.Onext,this.splice_(f,f.Oprev)),M=f.Sym,M.Onext===M?this.killVertex_(M.Org,null):(M.Org.anEdge=M.Onext,this.splice_(M,M.Oprev)),this.killEdge_(f));while(f!=h);A=l.prev,C=l.next,C.prev=A,A.next=C},countFaceVerts_:function(l){var h=l.anEdge,f=0;do f++,h=h.Lnext;while(h!==l.anEdge);return f},mergeConvexFaces:function(l){var h,f,g,M,A,C,b;for(h=this.fHead.next;h!==this.fHead;h=h.next)if(h.inside)for(f=h.anEdge,A=f.Org;g=f.Lnext,M=f.Sym,M&&M.Lface&&M.Lface.inside&&(C=this.countFaceVerts_(h),b=this.countFaceVerts_(M.Lface),C+b-2<=l&&n.vertCCW(f.Lprev.Org,f.Org,M.Lnext.Lnext.Org)&&n.vertCCW(M.Lprev.Org,M.Org,f.Lnext.Lnext.Org)&&(g=M.Lnext,this.delete(M),f=null,M=null)),!(f&&f.Lnext.Org===A);)f=g;return!0},check:function(){var l=this.fHead,h=this.vHead,f=this.eHead,g,M,A,C,b,E;for(M=l,M=l;(g=M.next)!==l;M=g){a(g.prev===M),b=g.anEdge;do a(b.Sym!==b),a(b.Sym.Sym===b),a(b.Lnext.Onext.Sym===b),a(b.Onext.Sym.Lnext===b),a(b.Lface===g),b=b.Lnext;while(b!==g.anEdge)}for(a(g.prev===M&&g.anEdge===null),C=h,C=h;(A=C.next)!==h;C=A){a(A.prev===C),b=A.anEdge;do a(b.Sym!==b),a(b.Sym.Sym===b),a(b.Lnext.Onext.Sym===b),a(b.Onext.Sym.Lnext===b),a(b.Org===A),b=b.Onext;while(b!==A.anEdge)}for(a(A.prev===C&&A.anEdge===null),E=f,E=f;(b=E.next)!==f;E=b)a(b.Sym.next===E.Sym),a(b.Sym!==b),a(b.Sym.Sym===b),a(b.Org!==null),a(b.Dst!==null),a(b.Lnext.Onext.Sym===b),a(b.Onext.Sym.Lnext===b);a(b.Sym.next===E.Sym&&b.Sym===this.eHeadSym&&b.Sym.Sym===b&&b.Org===null&&b.Dst===null&&b.Lface===null&&b.Rface===null)}},n.vertEq=function(l,h){return l.s===h.s&&l.t===h.t},n.vertLeq=function(l,h){return l.s<h.s||l.s===h.s&&l.t<=h.t},n.transLeq=function(l,h){return l.t<h.t||l.t===h.t&&l.s<=h.s},n.edgeGoesLeft=function(l){return n.vertLeq(l.Dst,l.Org)},n.edgeGoesRight=function(l){return n.vertLeq(l.Org,l.Dst)},n.vertL1dist=function(l,h){return Math.abs(l.s-h.s)+Math.abs(l.t-h.t)},n.edgeEval=function(l,h,f){a(n.vertLeq(l,h)&&n.vertLeq(h,f));var g=h.s-l.s,M=f.s-h.s;return g+M>0?g<M?h.t-l.t+(l.t-f.t)*(g/(g+M)):h.t-f.t+(f.t-l.t)*(M/(g+M)):0},n.edgeSign=function(l,h,f){a(n.vertLeq(l,h)&&n.vertLeq(h,f));var g=h.s-l.s,M=f.s-h.s;return g+M>0?(h.t-f.t)*g+(h.t-l.t)*M:0},n.transEval=function(l,h,f){a(n.transLeq(l,h)&&n.transLeq(h,f));var g=h.t-l.t,M=f.t-h.t;return g+M>0?g<M?h.s-l.s+(l.s-f.s)*(g/(g+M)):h.s-f.s+(f.s-l.s)*(M/(g+M)):0},n.transSign=function(l,h,f){a(n.transLeq(l,h)&&n.transLeq(h,f));var g=h.t-l.t,M=f.t-h.t;return g+M>0?(h.s-f.s)*g+(h.s-l.s)*M:0},n.vertCCW=function(l,h,f){return l.s*(h.t-f.t)+h.s*(f.t-l.t)+f.s*(l.t-h.t)>=0},n.interpolate=function(l,h,f,g){return l=l<0?0:l,f=f<0?0:f,l<=f?f===0?(h+g)/2:h+(g-h)*(l/(l+f)):g+(h-g)*(f/(l+f))},n.intersect=function(l,h,f,g,M){var A,C,b;n.vertLeq(l,h)||(b=l,l=h,h=b),n.vertLeq(f,g)||(b=f,f=g,g=b),n.vertLeq(l,f)||(b=l,l=f,f=b,b=h,h=g,g=b),n.vertLeq(f,h)?n.vertLeq(h,g)?(A=n.edgeEval(l,f,h),C=n.edgeEval(f,h,g),A+C<0&&(A=-A,C=-C),M.s=n.interpolate(A,f.s,C,h.s)):(A=n.edgeSign(l,f,h),C=-n.edgeSign(l,g,h),A+C<0&&(A=-A,C=-C),M.s=n.interpolate(A,f.s,C,g.s)):M.s=(f.s+h.s)/2,n.transLeq(l,h)||(b=l,l=h,h=b),n.transLeq(f,g)||(b=f,f=g,g=b),n.transLeq(l,f)||(b=l,l=f,f=b,b=h,h=g,g=b),n.transLeq(f,h)?n.transLeq(h,g)?(A=n.transEval(l,f,h),C=n.transEval(f,h,g),A+C<0&&(A=-A,C=-C),M.t=n.interpolate(A,f.t,C,h.t)):(A=n.transSign(l,f,h),C=-n.transSign(l,g,h),A+C<0&&(A=-A,C=-C),M.t=n.interpolate(A,f.t,C,g.t)):M.t=(f.t+h.t)/2};function m(){this.key=null,this.next=null,this.prev=null}function u(l,h){this.head=new m,this.head.next=this.head,this.head.prev=this.head,this.frame=l,this.leq=h}u.prototype={min:function(){return this.head.next},max:function(){return this.head.prev},insert:function(l){return this.insertBefore(this.head,l)},search:function(l){var h=this.head;do h=h.next;while(h.key!==null&&!this.leq(this.frame,l,h.key));return h},insertBefore:function(l,h){do l=l.prev;while(l.key!==null&&!this.leq(this.frame,l.key,h));var f=new m;return f.key=h,f.next=l.next,l.next.prev=f,f.prev=l,l.next=f,f},delete:function(l){l.next.prev=l.prev,l.prev.next=l.next}};function p(){this.handle=null}function y(){this.key=null,this.node=null}function O(l,h){this.size=0,this.max=l,this.nodes=[],this.nodes.length=l+1;var f;for(f=0;f<this.nodes.length;f++)this.nodes[f]=new p;for(this.handles=[],this.handles.length=l+1,f=0;f<this.handles.length;f++)this.handles[f]=new y;this.initialized=!1,this.freeList=0,this.leq=h,this.nodes[1].handle=1,this.handles[1].key=null}O.prototype={floatDown_:function(l){var h=this.nodes,f=this.handles,g,M,A;for(g=h[l].handle;;){if(A=l<<1,A<this.size&&this.leq(f[h[A+1].handle].key,f[h[A].handle].key)&&++A,a(A<=this.max),M=h[A].handle,A>this.size||this.leq(f[g].key,f[M].key)){h[l].handle=g,f[g].node=l;break}h[l].handle=M,f[M].node=l,l=A}},floatUp_:function(l){var h=this.nodes,f=this.handles,g,M,A;for(g=h[l].handle;;){if(A=l>>1,M=h[A].handle,A===0||this.leq(f[M].key,f[g].key)){h[l].handle=g,f[g].node=l;break}h[l].handle=M,f[M].node=l,l=A}},init:function(){for(var l=this.size;l>=1;--l)this.floatDown_(l);this.initialized=!0},min:function(){return this.handles[this.nodes[1].handle].key},insert:function(l){var h,f;if(h=++this.size,h*2>this.max){this.max*=2;var g,M;for(M=this.nodes.length,this.nodes.length=this.max+1,g=M;g<this.nodes.length;g++)this.nodes[g]=new p;for(M=this.handles.length,this.handles.length=this.max+1,g=M;g<this.handles.length;g++)this.handles[g]=new y}return this.freeList===0?f=h:(f=this.freeList,this.freeList=this.handles[f].node),this.nodes[h].handle=f,this.handles[f].node=h,this.handles[f].key=l,this.initialized&&this.floatUp_(h),f},extractMin:function(){var l=this.nodes,h=this.handles,f=l[1].handle,g=h[f].key;return this.size>0&&(l[1].handle=l[this.size].handle,h[l[1].handle].node=1,h[f].key=null,h[f].node=this.freeList,this.freeList=f,--this.size,this.size>0&&this.floatDown_(1)),g},delete:function(l){var h=this.nodes,f=this.handles,g;a(l>=1&&l<=this.max&&f[l].key!==null),g=f[l].node,h[g].handle=h[this.size].handle,f[h[g].handle].node=g,--this.size,g<=this.size&&(g<=1||this.leq(f[h[g>>1].handle].key,f[h[g].handle].key)?this.floatDown_(g):this.floatUp_(g)),f[l].key=null,f[l].node=this.freeList,this.freeList=l}};function x(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}var v={};v.regionBelow=function(l){return l.nodeUp.prev.key},v.regionAbove=function(l){return l.nodeUp.next.key},v.debugEvent=function(l){},v.addWinding=function(l,h){l.winding+=h.winding,l.Sym.winding+=h.Sym.winding},v.edgeLeq=function(l,h,f){var g=l.event,C,b,M=h.eUp,A=f.eUp;if(M.Dst===g)return A.Dst===g?n.vertLeq(M.Org,A.Org)?n.edgeSign(A.Dst,M.Org,A.Org)<=0:n.edgeSign(M.Dst,A.Org,M.Org)>=0:n.edgeSign(A.Dst,g,A.Org)<=0;if(A.Dst===g)return n.edgeSign(M.Dst,g,M.Org)>=0;var C=n.edgeEval(M.Dst,g,M.Org),b=n.edgeEval(A.Dst,g,A.Org);return C>=b},v.deleteRegion=function(l,h){h.fixUpperEdge&&a(h.eUp.winding===0),h.eUp.activeRegion=null,l.dict.delete(h.nodeUp)},v.fixUpperEdge=function(l,h,f){a(h.fixUpperEdge),l.mesh.delete(h.eUp),h.fixUpperEdge=!1,h.eUp=f,f.activeRegion=h},v.topLeftRegion=function(l,h){var f=h.eUp.Org,g;do h=v.regionAbove(h);while(h.eUp.Org===f);if(h.fixUpperEdge){if(g=l.mesh.connect(v.regionBelow(h).eUp.Sym,h.eUp.Lnext),g===null)return null;v.fixUpperEdge(l,h,g),h=v.regionAbove(h)}return h},v.topRightRegion=function(l){var h=l.eUp.Dst;do l=v.regionAbove(l);while(l.eUp.Dst===h);return l},v.addRegionBelow=function(l,h,f){var g=new x;return g.eUp=f,g.nodeUp=l.dict.insertBefore(h.nodeUp,g),g.fixUpperEdge=!1,g.sentinel=!1,g.dirty=!1,f.activeRegion=g,g},v.isWindingInside=function(l,h){switch(l.windingRule){case e.WINDING_ODD:return(h&1)!==0;case e.WINDING_NONZERO:return h!==0;case e.WINDING_POSITIVE:return h>0;case e.WINDING_NEGATIVE:return h<0;case e.WINDING_ABS_GEQ_TWO:return h>=2||h<=-2}return a(!1),!1},v.computeWinding=function(l,h){h.windingNumber=v.regionAbove(h).windingNumber+h.eUp.winding,h.inside=v.isWindingInside(l,h.windingNumber)},v.finishRegion=function(l,h){var f=h.eUp,g=f.Lface;g.inside=h.inside,g.anEdge=f,v.deleteRegion(l,h)},v.finishLeftRegions=function(l,h,f){for(var g,C,M=null,A=h,C=h.eUp;A!==f;){if(A.fixUpperEdge=!1,M=v.regionBelow(A),g=M.eUp,g.Org!=C.Org){if(!M.fixUpperEdge){v.finishRegion(l,A);break}g=l.mesh.connect(C.Lprev,g.Sym),v.fixUpperEdge(l,M,g)}C.Onext!==g&&(l.mesh.splice(g.Oprev,g),l.mesh.splice(C,g)),v.finishRegion(l,A),C=M.eUp,A=M}return C},v.addRightEdges=function(l,h,f,g,M,A){var C,b,E,L,D=!0;E=f;do a(n.vertLeq(E.Org,E.Dst)),v.addRegionBelow(l,h,E.Sym),E=E.Onext;while(E!==g);for(M===null&&(M=v.regionBelow(h).eUp.Rprev),b=h,L=M;C=v.regionBelow(b),E=C.eUp.Sym,E.Org===L.Org;)E.Onext!==L&&(l.mesh.splice(E.Oprev,E),l.mesh.splice(L.Oprev,E)),C.windingNumber=b.windingNumber-E.winding,C.inside=v.isWindingInside(l,C.windingNumber),b.dirty=!0,!D&&v.checkForRightSplice(l,b)&&(v.addWinding(E,L),v.deleteRegion(l,b),l.mesh.delete(L)),D=!1,b=C,L=E;b.dirty=!0,a(b.windingNumber-E.winding===C.windingNumber),A&&v.walkDirtyRegions(l,b)},v.spliceMergeVertices=function(l,h,f){l.mesh.splice(h,f)},v.vertexWeights=function(l,h,f){var g=n.vertL1dist(h,l),M=n.vertL1dist(f,l),A=.5*M/(g+M),C=.5*g/(g+M);l.coords[0]+=A*h.coords[0]+C*f.coords[0],l.coords[1]+=A*h.coords[1]+C*f.coords[1],l.coords[2]+=A*h.coords[2]+C*f.coords[2]},v.getIntersectData=function(l,h,f,g,M,A){h.coords[0]=h.coords[1]=h.coords[2]=0,h.idx=-1,v.vertexWeights(h,f,g),v.vertexWeights(h,M,A)},v.checkForRightSplice=function(l,h){var f=v.regionBelow(h),g=h.eUp,M=f.eUp;if(n.vertLeq(g.Org,M.Org)){if(n.edgeSign(M.Dst,g.Org,M.Org)>0)return!1;n.vertEq(g.Org,M.Org)?g.Org!==M.Org&&(l.pq.delete(g.Org.pqHandle),v.spliceMergeVertices(l,M.Oprev,g)):(l.mesh.splitEdge(M.Sym),l.mesh.splice(g,M.Oprev),h.dirty=f.dirty=!0)}else{if(n.edgeSign(g.Dst,M.Org,g.Org)<0)return!1;v.regionAbove(h).dirty=h.dirty=!0,l.mesh.splitEdge(g.Sym),l.mesh.splice(M.Oprev,g)}return!0},v.checkForLeftSplice=function(l,h){var f=v.regionBelow(h),g=h.eUp,M=f.eUp,A;if(a(!n.vertEq(g.Dst,M.Dst)),n.vertLeq(g.Dst,M.Dst)){if(n.edgeSign(g.Dst,M.Dst,g.Org)<0)return!1;v.regionAbove(h).dirty=h.dirty=!0,A=l.mesh.splitEdge(g),l.mesh.splice(M.Sym,A),A.Lface.inside=h.inside}else{if(n.edgeSign(M.Dst,g.Dst,M.Org)>0)return!1;h.dirty=f.dirty=!0,A=l.mesh.splitEdge(M),l.mesh.splice(g.Lnext,M.Sym),A.Rface.inside=h.inside}return!0},v.checkForIntersect=function(l,h){var f=v.regionBelow(h),g=h.eUp,M=f.eUp,A=g.Org,C=M.Org,b=g.Dst,E=M.Dst,L,D,I=new s,R,B;if(a(!n.vertEq(E,b)),a(n.edgeSign(b,l.event,A)<=0),a(n.edgeSign(E,l.event,C)>=0),a(A!==l.event&&C!==l.event),a(!h.fixUpperEdge&&!f.fixUpperEdge),A===C||(L=Math.min(A.t,b.t),D=Math.max(C.t,E.t),L>D))return!1;if(n.vertLeq(A,C)){if(n.edgeSign(E,A,C)>0)return!1}else if(n.edgeSign(b,C,A)<0)return!1;return v.debugEvent(l),n.intersect(b,A,E,C,I),a(Math.min(A.t,b.t)<=I.t),a(I.t<=Math.max(C.t,E.t)),a(Math.min(E.s,b.s)<=I.s),a(I.s<=Math.max(C.s,A.s)),n.vertLeq(I,l.event)&&(I.s=l.event.s,I.t=l.event.t),R=n.vertLeq(A,C)?A:C,n.vertLeq(R,I)&&(I.s=R.s,I.t=R.t),n.vertEq(I,A)||n.vertEq(I,C)?(v.checkForRightSplice(l,h),!1):!n.vertEq(b,l.event)&&n.edgeSign(b,l.event,I)>=0||!n.vertEq(E,l.event)&&n.edgeSign(E,l.event,I)<=0?E===l.event?(l.mesh.splitEdge(g.Sym),l.mesh.splice(M.Sym,g),h=v.topLeftRegion(l,h),g=v.regionBelow(h).eUp,v.finishLeftRegions(l,v.regionBelow(h),f),v.addRightEdges(l,h,g.Oprev,g,g,!0),!0):b===l.event?(l.mesh.splitEdge(M.Sym),l.mesh.splice(g.Lnext,M.Oprev),f=h,h=v.topRightRegion(h),B=v.regionBelow(h).eUp.Rprev,f.eUp=M.Oprev,M=v.finishLeftRegions(l,f,null),v.addRightEdges(l,h,M.Onext,g.Rprev,B,!0),!0):(n.edgeSign(b,l.event,I)>=0&&(v.regionAbove(h).dirty=h.dirty=!0,l.mesh.splitEdge(g.Sym),g.Org.s=l.event.s,g.Org.t=l.event.t),n.edgeSign(E,l.event,I)<=0&&(h.dirty=f.dirty=!0,l.mesh.splitEdge(M.Sym),M.Org.s=l.event.s,M.Org.t=l.event.t),!1):(l.mesh.splitEdge(g.Sym),l.mesh.splitEdge(M.Sym),l.mesh.splice(M.Oprev,g),g.Org.s=I.s,g.Org.t=I.t,g.Org.pqHandle=l.pq.insert(g.Org),v.getIntersectData(l,g.Org,A,b,C,E),v.regionAbove(h).dirty=h.dirty=f.dirty=!0,!1)},v.walkDirtyRegions=function(l,h){for(var f=v.regionBelow(h),g,M;;){for(;f.dirty;)h=f,f=v.regionBelow(f);if(!h.dirty&&(f=h,h=v.regionAbove(h),h===null||!h.dirty))return;if(h.dirty=!1,g=h.eUp,M=f.eUp,g.Dst!==M.Dst&&v.checkForLeftSplice(l,h)&&(f.fixUpperEdge?(v.deleteRegion(l,f),l.mesh.delete(M),f=v.regionBelow(h),M=f.eUp):h.fixUpperEdge&&(v.deleteRegion(l,h),l.mesh.delete(g),h=v.regionAbove(f),g=h.eUp)),g.Org!==M.Org)if(g.Dst!==M.Dst&&!h.fixUpperEdge&&!f.fixUpperEdge&&(g.Dst===l.event||M.Dst===l.event)){if(v.checkForIntersect(l,h))return}else v.checkForRightSplice(l,h);g.Org===M.Org&&g.Dst===M.Dst&&(v.addWinding(M,g),v.deleteRegion(l,h),l.mesh.delete(g),h=v.regionAbove(f))}},v.connectRightVertex=function(l,h,f){var g,M=f.Onext,A=v.regionBelow(h),C=h.eUp,b=A.eUp,E=!1;if(C.Dst!==b.Dst&&v.checkForIntersect(l,h),n.vertEq(C.Org,l.event)&&(l.mesh.splice(M.Oprev,C),h=v.topLeftRegion(l,h),M=v.regionBelow(h).eUp,v.finishLeftRegions(l,v.regionBelow(h),A),E=!0),n.vertEq(b.Org,l.event)&&(l.mesh.splice(f,b.Oprev),f=v.finishLeftRegions(l,A,null),E=!0),E){v.addRightEdges(l,h,f.Onext,M,M,!0);return}n.vertLeq(b.Org,C.Org)?g=b.Oprev:g=C,g=l.mesh.connect(f.Lprev,g),v.addRightEdges(l,h,g,g.Onext,g.Onext,!1),g.Sym.activeRegion.fixUpperEdge=!0,v.walkDirtyRegions(l,h)},v.connectLeftDegenerate=function(l,h,f){var g,M,A,C,b;if(g=h.eUp,n.vertEq(g.Org,f)){a(!1),v.spliceMergeVertices(l,g,f.anEdge);return}if(!n.vertEq(g.Dst,f)){l.mesh.splitEdge(g.Sym),h.fixUpperEdge&&(l.mesh.delete(g.Onext),h.fixUpperEdge=!1),l.mesh.splice(f.anEdge,g),v.sweepEvent(l,f);return}a(!1),h=v.topRightRegion(h),b=v.regionBelow(h),A=b.eUp.Sym,M=C=A.Onext,b.fixUpperEdge&&(a(M!==A),v.deleteRegion(l,b),l.mesh.delete(A),A=M.Oprev),l.mesh.splice(f.anEdge,A),n.edgeGoesLeft(M)||(M=null),v.addRightEdges(l,h,A.Onext,C,M,!0)},v.connectLeftVertex=function(l,h){var f,g,M,A,C,b,E=new x;if(E.eUp=h.anEdge.Sym,f=l.dict.search(E).key,g=v.regionBelow(f),!!g){if(A=f.eUp,C=g.eUp,n.edgeSign(A.Dst,h,A.Org)===0){v.connectLeftDegenerate(l,f,h);return}if(M=n.vertLeq(C.Dst,A.Dst)?f:g,f.inside||M.fixUpperEdge){if(M===f)b=l.mesh.connect(h.anEdge.Sym,A.Lnext);else{var L=l.mesh.connect(C.Dnext,h.anEdge);b=L.Sym}M.fixUpperEdge?v.fixUpperEdge(l,M,b):v.computeWinding(l,v.addRegionBelow(l,f,b)),v.sweepEvent(l,h)}else v.addRightEdges(l,f,h.anEdge,h.anEdge,null,!0)}},v.sweepEvent=function(l,h){l.event=h,v.debugEvent(l);for(var f=h.anEdge;f.activeRegion===null;)if(f=f.Onext,f===h.anEdge){v.connectLeftVertex(l,h);return}var g=v.topLeftRegion(l,f.activeRegion);a(g!==null);var M=v.regionBelow(g),A=M.eUp,C=v.finishLeftRegions(l,M,null);C.Onext===A?v.connectRightVertex(l,g,C):v.addRightEdges(l,g,C.Onext,A,A,!0)},v.addSentinel=function(l,h,f,g){var M=new x,A=l.mesh.makeEdge();A.Org.s=f,A.Org.t=g,A.Dst.s=h,A.Dst.t=g,l.event=A.Dst,M.eUp=A,M.windingNumber=0,M.inside=!1,M.fixUpperEdge=!1,M.sentinel=!0,M.dirty=!1,M.nodeUp=l.dict.insert(M)},v.initEdgeDict=function(l){l.dict=new u(l,v.edgeLeq);var h=l.bmax[0]-l.bmin[0],f=l.bmax[1]-l.bmin[1],g=l.bmin[0]-h,M=l.bmax[0]+h,A=l.bmin[1]-f,C=l.bmax[1]+f;v.addSentinel(l,g,M,A),v.addSentinel(l,g,M,C)},v.doneEdgeDict=function(l){for(var h,f=0;(h=l.dict.min().key)!==null;)h.sentinel||(a(h.fixUpperEdge),a(++f===1)),a(h.windingNumber===0),v.deleteRegion(l,h)},v.removeDegenerateEdges=function(l){var h,f,g,M=l.mesh.eHead;for(h=M.next;h!==M;h=f)f=h.next,g=h.Lnext,n.vertEq(h.Org,h.Dst)&&h.Lnext.Lnext!==h&&(v.spliceMergeVertices(l,g,h),l.mesh.delete(h),h=g,g=h.Lnext),g.Lnext===h&&(g!==h&&((g===f||g===f.Sym)&&(f=f.next),l.mesh.delete(g)),(h===f||h===f.Sym)&&(f=f.next),l.mesh.delete(h))},v.initPriorityQ=function(l){var h,f,g,M=0;for(g=l.mesh.vHead,f=g.next;f!==g;f=f.next)M++;for(M+=8,h=l.pq=new O(M,n.vertLeq),g=l.mesh.vHead,f=g.next;f!==g;f=f.next)f.pqHandle=h.insert(f);return f!==g?!1:(h.init(),!0)},v.donePriorityQ=function(l){l.pq=null},v.removeDegenerateFaces=function(l,h){var f,g,M;for(f=h.fHead.next;f!==h.fHead;f=g)g=f.next,M=f.anEdge,a(M.Lnext!==M),M.Lnext.Lnext===M&&(v.addWinding(M.Onext,M),l.mesh.delete(M));return!0},v.computeInterior=function(l){var h,f;if(v.removeDegenerateEdges(l),!v.initPriorityQ(l))return!1;for(v.initEdgeDict(l);(h=l.pq.extractMin())!==null;){for(;f=l.pq.min(),!(f===null||!n.vertEq(f,h));)f=l.pq.extractMin(),v.spliceMergeVertices(l,h.anEdge,f.anEdge);v.sweepEvent(l,h)}return l.event=l.dict.min().key.eUp.Org,v.debugEvent(l),v.doneEdgeDict(l),v.donePriorityQ(l),v.removeDegenerateFaces(l,l.mesh)?(l.mesh.check(),!0):!1};function T(){this.mesh=null,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=e.WINDING_ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}T.prototype={dot_:function(l,h){return l[0]*h[0]+l[1]*h[1]+l[2]*h[2]},normalize_:function(l){var h=l[0]*l[0]+l[1]*l[1]+l[2]*l[2];a(h>0),h=Math.sqrt(h),l[0]/=h,l[1]/=h,l[2]/=h},longAxis_:function(l){var h=0;return Math.abs(l[1])>Math.abs(l[0])&&(h=1),Math.abs(l[2])>Math.abs(l[h])&&(h=2),h},computeNormal_:function(l){var h,f,g,M,A,C,b=[0,0,0],E=[0,0,0],L=[0,0,0],D=[0,0,0],I=[0,0,0],R=[null,null,null],B=[null,null,null],z=this.mesh.vHead,K;for(h=z.next,K=0;K<3;++K)M=h.coords[K],E[K]=M,B[K]=h,b[K]=M,R[K]=h;for(h=z.next;h!==z;h=h.next)for(K=0;K<3;++K)M=h.coords[K],M<E[K]&&(E[K]=M,B[K]=h),M>b[K]&&(b[K]=M,R[K]=h);if(K=0,b[1]-E[1]>b[0]-E[0]&&(K=1),b[2]-E[2]>b[K]-E[K]&&(K=2),E[K]>=b[K]){l[0]=0,l[1]=0,l[2]=1;return}for(C=0,f=B[K],g=R[K],L[0]=f.coords[0]-g.coords[0],L[1]=f.coords[1]-g.coords[1],L[2]=f.coords[2]-g.coords[2],h=z.next;h!==z;h=h.next)D[0]=h.coords[0]-g.coords[0],D[1]=h.coords[1]-g.coords[1],D[2]=h.coords[2]-g.coords[2],I[0]=L[1]*D[2]-L[2]*D[1],I[1]=L[2]*D[0]-L[0]*D[2],I[2]=L[0]*D[1]-L[1]*D[0],A=I[0]*I[0]+I[1]*I[1]+I[2]*I[2],A>C&&(C=A,l[0]=I[0],l[1]=I[1],l[2]=I[2]);C<=0&&(l[0]=l[1]=l[2]=0,l[this.longAxis_(L)]=1)},checkOrientation_:function(){var l,h,f=this.mesh.fHead,g,M=this.mesh.vHead,A;for(l=0,h=f.next;h!==f;h=h.next)if(A=h.anEdge,!(A.winding<=0))do l+=(A.Org.s-A.Dst.s)*(A.Org.t+A.Dst.t),A=A.Lnext;while(A!==h.anEdge);if(l<0){for(g=M.next;g!==M;g=g.next)g.t=-g.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},projectPolygon_:function(){var l,h=this.mesh.vHead,f=[0,0,0],g,M,A,C,b=!1;for(f[0]=this.normal[0],f[1]=this.normal[1],f[2]=this.normal[2],f[0]===0&&f[1]===0&&f[2]===0&&(this.computeNormal_(f),b=!0),g=this.sUnit,M=this.tUnit,A=this.longAxis_(f),g[A]=0,g[(A+1)%3]=1,g[(A+2)%3]=0,M[A]=0,M[(A+1)%3]=0,M[(A+2)%3]=f[A]>0?1:-1,l=h.next;l!==h;l=l.next)l.s=this.dot_(l.coords,g),l.t=this.dot_(l.coords,M);for(b&&this.checkOrientation_(),C=!0,l=h.next;l!==h;l=l.next)C?(this.bmin[0]=this.bmax[0]=l.s,this.bmin[1]=this.bmax[1]=l.t,C=!1):(l.s<this.bmin[0]&&(this.bmin[0]=l.s),l.s>this.bmax[0]&&(this.bmax[0]=l.s),l.t<this.bmin[1]&&(this.bmin[1]=l.t),l.t>this.bmax[1]&&(this.bmax[1]=l.t))},addWinding_:function(l,h){l.winding+=h.winding,l.Sym.winding+=h.Sym.winding},tessellateMonoRegion_:function(l,h){var f,g;for(f=h.anEdge,a(f.Lnext!==f&&f.Lnext.Lnext!==f);n.vertLeq(f.Dst,f.Org);f=f.Lprev);for(;n.vertLeq(f.Org,f.Dst);f=f.Lnext);for(g=f.Lprev;f.Lnext!==g;)if(n.vertLeq(f.Dst,g.Org)){for(;g.Lnext!==f&&(n.edgeGoesLeft(g.Lnext)||n.edgeSign(g.Org,g.Dst,g.Lnext.Dst)<=0);){var M=l.connect(g.Lnext,g);g=M.Sym}g=g.Lprev}else{for(;g.Lnext!==f&&(n.edgeGoesRight(f.Lprev)||n.edgeSign(f.Dst,f.Org,f.Lprev.Org)>=0);){var M=l.connect(f,f.Lprev);f=M.Sym}f=f.Lnext}for(a(g.Lnext!==f);g.Lnext.Lnext!==f;){var M=l.connect(g.Lnext,g);g=M.Sym}return!0},tessellateInterior_:function(l){var h,f;for(h=l.fHead.next;h!==l.fHead;h=f)if(f=h.next,h.inside&&!this.tessellateMonoRegion_(l,h))return!1;return!0},discardExterior_:function(l){var h,f;for(h=l.fHead.next;h!==l.fHead;h=f)f=h.next,h.inside||l.zapFace(h)},setWindingNumber_:function(l,h,f){var g,M;for(g=l.eHead.next;g!==l.eHead;g=M)M=g.next,g.Rface.inside!==g.Lface.inside?g.winding=g.Lface.inside?h:-h:f?l.delete(g):g.winding=0},getNeighbourFace_:function(l){return!l.Rface||!l.Rface.inside?-1:l.Rface.n},outputPolymesh_:function(l,h,f,g){var M,A,C,b=0,E=0,L,D;for(f>3&&l.mergeConvexFaces(f),M=l.vHead.next;M!==l.vHead;M=M.next)M.n=-1;for(A=l.fHead.next;A!==l.fHead;A=A.next)if(A.n=-1,!!A.inside){C=A.anEdge,L=0;do M=C.Org,M.n===-1&&(M.n=E,E++),L++,C=C.Lnext;while(C!==A.anEdge);a(L<=f),A.n=b,++b}for(this.elementCount=b,h===e.CONNECTED_POLYGONS&&(b*=2),this.elements=[],this.elements.length=b*f,this.vertexCount=E,this.vertices=[],this.vertices.length=E*g,this.vertexIndices=[],this.vertexIndices.length=E,M=l.vHead.next;M!==l.vHead;M=M.next)if(M.n!==-1){var I=M.n*g;this.vertices[I+0]=M.coords[0],this.vertices[I+1]=M.coords[1],g>2&&(this.vertices[I+2]=M.coords[2]),this.vertexIndices[M.n]=M.idx}var R=0;for(A=l.fHead.next;A!==l.fHead;A=A.next)if(A.inside){C=A.anEdge,L=0;do M=C.Org,this.elements[R++]=M.n,L++,C=C.Lnext;while(C!==A.anEdge);for(D=L;D<f;++D)this.elements[R++]=-1;if(h===e.CONNECTED_POLYGONS){C=A.anEdge;do this.elements[R++]=this.getNeighbourFace_(C),C=C.Lnext;while(C!==A.anEdge);for(D=L;D<f;++D)this.elements[R++]=-1}}},outputContours_:function(l,h){var f,g,M,A=0,C=0;for(this.vertexCount=0,this.elementCount=0,f=l.fHead.next;f!==l.fHead;f=f.next)if(f.inside){M=g=f.anEdge;do this.vertexCount++,g=g.Lnext;while(g!==M);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*h,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var b=0,E=0,L=0;for(A=0,f=l.fHead.next;f!==l.fHead;f=f.next)if(f.inside){C=0,M=g=f.anEdge;do this.vertices[b++]=g.Org.coords[0],this.vertices[b++]=g.Org.coords[1],h>2&&(this.vertices[b++]=g.Org.coords[2]),this.vertexIndices[E++]=g.Org.idx,C++,g=g.Lnext;while(g!==M);this.elements[L++]=A,this.elements[L++]=C,A+=C}},addContour:function(l,h){var f,g;for(this.mesh===null&&(this.mesh=new c),l<2&&(l=2),l>3&&(l=3),f=null,g=0;g<h.length;g+=l)f===null?(f=this.mesh.makeEdge(),this.mesh.splice(f,f.Sym)):(this.mesh.splitEdge(f),f=f.Lnext),f.Org.coords[0]=h[g+0],f.Org.coords[1]=h[g+1],l>2?f.Org.coords[2]=h[g+2]:f.Org.coords[2]=0,f.Org.idx=this.vertexIndexCounter++,f.winding=1,f.Sym.winding=-1},tesselate:function(l,h,f,g,M){if(this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,M&&(this.normal[0]=M[0],this.normal[1]=M[1],this.normal[2]=M[2]),this.windingRule=l,g<2&&(g=2),g>3&&(g=3),!this.mesh)return!1;this.projectPolygon_(),v.computeInterior(this);var A=this.mesh;return h===e.BOUNDARY_CONTOURS?this.setWindingNumber_(A,1,!0):this.tessellateInterior_(A),A.check(),h===e.BOUNDARY_CONTOURS?this.outputContours_(A,g):this.outputPolymesh_(A,h,f,g),!0}}},function(d,r){d.exports=e;var t=Object.prototype.hasOwnProperty;function e(){for(var n={},a=0;a<arguments.length;a++){var s=arguments[a];for(var i in s)t.call(s,i)&&(n[i]=s[i])}return n}},function(d,r,t){t.r(r),t.d(r,"createShaders",function(){return o}),t.d(r,"applyShader",function(){return c}),t.d(r,"createCloudShaders",function(){return u}),t.d(r,"applyCloudShader",function(){return p});var e=t(64),n=t(65),a=t(66),s=t(67);t(1).glMatrix.setMatrixArrayType(Array);const i=Symbol("shaders");function o(y){y[i]=[];for(let O=0;O<16;O++){const x=[],v=!!(O&1),T=!!(O&2),l=!!(O&4),h=!!(O&8);v&&x.push("#define TEXTURE 1"),T&&x.push("#define FILTER 1"),l&&x.push("#define GRADIENT 1"),h&&x.push("#define CLIPPATH 1");const f=`${x.join(`
39
+ `)}
40
+ `,g=[];v&&g.push("uniform sampler2D u_texSampler;"),h&&g.push("uniform sampler2D u_clipSampler;"),y[i][O]=[f+g.join(`
41
+ `)+n.default,f+e.default]}}function c(y,{hasTexture:O=!1,hasFilter:x=!1,hasGradient:v=!1,hasClipPath:T=!1}={}){const l=O|x<<1|v<<2|T<<3;let h=y[i][l];Array.isArray(h)&&(h=y.createProgram(...h),y[i][l]=h),y.program!==h&&y.useProgram(h,{a_color:{type:"UNSIGNED_BYTE",normalize:!0}})}const m=[];function u(y){for(let O=0;O<64;O++){const x=[],v=!!(O&1),T=!!(O&2),l=!!(O&4),h=!!(O&8),f=!!(O&16),g=!!(O&32);v&&x.push("#define TEXTURE 1"),T&&x.push("#define FILTER 1"),l&&x.push("#define GRADIENT 1"),h&&x.push("#define CLOUDCOLOR 1"),f&&x.push("#define CLOUDFILTER 1"),g&&x.push("#define CLIPPATH 1");const M=`${x.join(`
42
+ `)}
43
+ `,A=[];if(v){A.push("uniform sampler2D u_texSampler;");for(let C=0;C<12;C++)A.push(`uniform sampler2D u_texFrame${C};`)}g&&A.push("uniform sampler2D u_clipSampler;"),m[O]=[M+A.join(`
44
+ `)+s.default,M+a.default]}}function p(y,{hasTexture:O=!1,hasFilter:x=!1,hasGradient:v=!1,hasCloudColor:T=!1,hasCloudFilter:l=!1,hasClipPath:h=!1}={}){const f=O|x<<1|v<<2|T<<3|l<<4|h<<5;let g=m[f];Array.isArray(g)&&(g=y.createProgram(...g),m[f]=g),y.program!==g&&y.useProgram(g,{a_color:{type:"UNSIGNED_BYTE",normalize:!0},a_fillCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_strokeCloudColor:{type:"UNSIGNED_BYTE",normalize:!0},a_frameIndex:{type:"UNSIGNED_BYTE",normalize:!1}})}},function(d,r,t){t.r(r),r.default=`attribute vec3 a_vertexPosition;
45
+ attribute vec4 a_color;
46
+ varying vec4 vColor;
47
+ varying float flagBackground;
48
+ uniform vec2 u_resolution;
49
+ uniform mat3 viewMatrix;
50
+ uniform mat3 projectionMatrix;
51
+
52
+ #ifdef TEXTURE
53
+ attribute vec3 a_vertexTextureCoord;
54
+ varying vec3 vTextureCoord;
55
+ attribute vec4 a_sourceRect;
56
+ varying vec4 vSourceRect;
57
+ #endif
58
+
59
+ #ifdef CLIPPATH
60
+ attribute vec2 a_clipUV;
61
+ varying vec2 vClipUV;
62
+ #endif
63
+
64
+ #ifdef GRADIENT
65
+ uniform float u_radialGradientVector[6];
66
+ varying vec3 vGradientVector1;
67
+ varying vec3 vGradientVector2;
68
+ #endif
69
+
70
+ void main() {
71
+ gl_PointSize = 1.0;
72
+
73
+ vec3 pos = projectionMatrix * viewMatrix * vec3(a_vertexPosition.xy, 1.0);
74
+ gl_Position = vec4(pos.xy, 1.0, 1.0);
75
+
76
+ #ifdef GRADIENT
77
+ vec3 vg1 = viewMatrix * vec3(u_radialGradientVector[0], u_radialGradientVector[1], 1.0);
78
+ vec3 vg2 = viewMatrix * vec3(u_radialGradientVector[3], u_radialGradientVector[4], 1.0);
79
+ float h = u_resolution.y;
80
+ vg1.y = h - vg1.y;
81
+ vg2.y = h - vg2.y;
82
+ vGradientVector1 = vec3(vg1.xy, u_radialGradientVector[2]);
83
+ vGradientVector2 = vec3(vg2.xy, u_radialGradientVector[5]);
84
+ #endif
85
+
86
+ flagBackground = a_vertexPosition.z;
87
+ vColor = a_color;
88
+
89
+ #ifdef TEXTURE
90
+ vTextureCoord = a_vertexTextureCoord;
91
+ vSourceRect = a_sourceRect;
92
+ #endif
93
+
94
+ #ifdef CLIPPATH
95
+ vClipUV = a_clipUV;
96
+ #endif
97
+ }`},function(d,r,t){t.r(r),r.default=`precision mediump float;
98
+
99
+ varying vec4 vColor;
100
+ varying float flagBackground;
101
+
102
+ #ifdef TEXTURE
103
+ varying vec3 vTextureCoord;
104
+ varying vec4 vSourceRect;
105
+ #endif
106
+
107
+ #ifdef CLIPPATH
108
+ varying vec2 vClipUV;
109
+ #endif
110
+
111
+ #ifdef FILTER
112
+ uniform int u_filterFlag;
113
+ uniform float u_colorMatrix[20];
114
+ #endif
115
+
116
+ #ifdef GRADIENT
117
+ varying vec3 vGradientVector1;
118
+ varying vec3 vGradientVector2;
119
+ uniform float u_colorSteps[40];
120
+ uniform int u_gradientType;
121
+ // uniform float u_radialGradientVector[6];
122
+
123
+ void gradient(inout vec4 color, vec3 gv1, vec3 gv2, float colorSteps[40]) {
124
+ float t;
125
+ // center circle radius
126
+ float cr = gv1.z;
127
+ // focal circle radius
128
+ float fr = gv2.z;
129
+
130
+ if(cr > 0.0 || fr > 0.0) {
131
+ // radial gradient
132
+ vec2 center = gv1.xy;
133
+ vec2 focal = gv2.xy;
134
+ float x = focal.x - gl_FragCoord.x;
135
+ float y = focal.y - gl_FragCoord.y;
136
+ float dx = focal.x - center.x;
137
+ float dy = focal.y - center.y;
138
+ float dr = cr - fr;
139
+ float a = dx * dx + dy * dy - dr * dr;
140
+ float b = -2.0 * (y * dy + x * dx + fr * dr);
141
+ float c = x * x + y * y - fr * fr;
142
+ t = 1.0 - 0.5 * (1.0 / a) * (-b + sqrt(b * b - 4.0 * a * c));
143
+ } else {
144
+ // linear gradient
145
+ vec2 v1 = gl_FragCoord.xy - gv1.xy;
146
+ vec2 v2 = gv2.xy - gv1.xy;
147
+ t = (v1.x * v2.x + v1.y * v2.y) / (v2.x * v2.x + v2.y * v2.y);
148
+ }
149
+
150
+ vec4 colors[8];
151
+ colors[0] = vec4(colorSteps[1], colorSteps[2], colorSteps[3], colorSteps[4]);
152
+ colors[1] = vec4(colorSteps[6], colorSteps[7], colorSteps[8], colorSteps[9]);
153
+ colors[2] = vec4(colorSteps[11], colorSteps[12], colorSteps[13], colorSteps[14]);
154
+ colors[3] = vec4(colorSteps[16], colorSteps[17], colorSteps[18], colorSteps[19]);
155
+ colors[4] = vec4(colorSteps[21], colorSteps[22], colorSteps[23], colorSteps[24]);
156
+ colors[5] = vec4(colorSteps[26], colorSteps[27], colorSteps[28], colorSteps[29]);
157
+ colors[6] = vec4(colorSteps[31], colorSteps[32], colorSteps[33], colorSteps[34]);
158
+ colors[7] = vec4(colorSteps[36], colorSteps[37], colorSteps[38], colorSteps[39]);
159
+
160
+ float steps[8];
161
+ steps[0] = colorSteps[0];
162
+ steps[1] = colorSteps[5];
163
+ steps[2] = colorSteps[10];
164
+ steps[3] = colorSteps[15];
165
+ steps[4] = colorSteps[20];
166
+ steps[5] = colorSteps[25];
167
+ steps[6] = colorSteps[30];
168
+ steps[7] = colorSteps[35];
169
+
170
+ color = colors[0];
171
+ for (int i = 1; i < 8; i++) {
172
+ if (steps[i] < 0.0 || steps[i] > 1.0) {
173
+ break;
174
+ }
175
+ if(steps[i] == steps[i - 1]) {
176
+ color = colors[i];
177
+ } else {
178
+ color = mix(color, colors[i], clamp((t - steps[i - 1]) / (steps[i] - steps[i - 1]), 0.0, 1.0));
179
+ }
180
+ if (steps[i] >= t) {
181
+ break;
182
+ }
183
+ }
184
+ }
185
+ #endif
186
+
187
+ #ifdef FILTER
188
+ void transformColor(inout vec4 color, in float colorMatrix[20]) {
189
+ float r = color.r, g = color.g, b = color.b, a = color.a;
190
+ color[0] = colorMatrix[0] * r + colorMatrix[1] * g + colorMatrix[2] * b + colorMatrix[3] * a + colorMatrix[4];
191
+ color[1] = colorMatrix[5] * r + colorMatrix[6] * g + colorMatrix[7] * b + colorMatrix[8] * a + colorMatrix[9];
192
+ color[2] = colorMatrix[10] * r + colorMatrix[11] * g + colorMatrix[12] * b + colorMatrix[13] * a + colorMatrix[14];
193
+ color[3] = colorMatrix[15] * r + colorMatrix[16] * g + colorMatrix[17] * b + colorMatrix[18] * a + colorMatrix[19];
194
+ }
195
+ #endif
196
+
197
+ void main() {
198
+ vec4 color = vColor;
199
+ float opacity = abs(flagBackground);
200
+
201
+ #ifdef GRADIENT
202
+ if(u_gradientType > 0 && flagBackground > 0.0 || u_gradientType == 0 && flagBackground <= 0.0) {
203
+ gradient(color, vGradientVector1, vGradientVector2, u_colorSteps);
204
+ }
205
+ #endif
206
+
207
+ if(opacity < 1.0) {
208
+ color.a *= opacity;
209
+ }
210
+
211
+ #ifdef TEXTURE
212
+ if(flagBackground > 0.0) {
213
+ vec3 texCoord = vTextureCoord;
214
+
215
+ if(texCoord.z == 1.0) {
216
+ texCoord = fract(texCoord);
217
+ }
218
+
219
+ if(texCoord.x <= 1.0 && texCoord.x >= 0.0
220
+ && texCoord.y <= 1.0 && texCoord.y >= 0.0) {
221
+ if(vSourceRect.z > 0.0) {
222
+ texCoord.x = vSourceRect.x + texCoord.x * vSourceRect.z;
223
+ texCoord.y = 1.0 - (vSourceRect.y + (1.0 - texCoord.y) * vSourceRect.w);
224
+ }
225
+ vec4 texColor = texture2D(u_texSampler, texCoord.xy);
226
+ float alpha = texColor.a;
227
+ if(opacity < 1.0) {
228
+ texColor.a *= opacity;
229
+ alpha *= mix(0.465, 1.0, opacity);
230
+ }
231
+ // color = mix(color, texColor, texColor.a);
232
+ color.rgb = mix(color.rgb, texColor.rgb, alpha);
233
+ // color.rgb = mix(texColor.rgb, color.rgb, color.a);
234
+ color.rgb = mix(texColor.rgb, color.rgb, clamp(color.a / max(0.0001, texColor.a), 0.0, 1.0));
235
+ color.a = texColor.a + (1.0 - texColor.a) * color.a;
236
+ }
237
+ }
238
+ #endif
239
+
240
+ #ifdef FILTER
241
+ if(u_filterFlag > 0) {
242
+ transformColor(color, u_colorMatrix);
243
+ }
244
+ #endif
245
+
246
+ #ifdef CLIPPATH
247
+ float clip = texture2D(u_clipSampler, vClipUV).r;
248
+ color *= clip;
249
+ #endif
250
+
251
+ gl_FragColor = color;
252
+ }`},function(d,r,t){t.r(r),r.default=`attribute vec3 a_vertexPosition;
253
+ attribute vec4 a_color;
254
+ varying vec4 vColor;
255
+ varying float flagBackground;
256
+ attribute vec3 a_transform0;
257
+ attribute vec3 a_transform1;
258
+ uniform vec2 u_resolution;
259
+ uniform mat3 viewMatrix;
260
+ uniform mat3 projectionMatrix;
261
+
262
+ #ifdef TEXTURE
263
+ attribute vec3 a_vertexTextureCoord;
264
+ varying vec3 vTextureCoord;
265
+ attribute float a_frameIndex;
266
+ varying float frameIndex;
267
+ attribute vec4 a_sourceRect;
268
+ varying vec4 vSourceRect;
269
+ #endif
270
+
271
+ #ifdef CLIPPATH
272
+ attribute vec2 a_clipUV;
273
+ varying vec2 vClipUV;
274
+ #endif
275
+
276
+ #ifdef CLOUDFILTER
277
+ attribute vec4 a_colorCloud0;
278
+ attribute vec4 a_colorCloud1;
279
+ attribute vec4 a_colorCloud2;
280
+ attribute vec4 a_colorCloud3;
281
+ attribute vec4 a_colorCloud4;
282
+ varying vec4 colorCloud0;
283
+ varying vec4 colorCloud1;
284
+ varying vec4 colorCloud2;
285
+ varying vec4 colorCloud3;
286
+ varying vec4 colorCloud4;
287
+ #endif
288
+
289
+ #ifdef CLOUDCOLOR
290
+ attribute vec4 a_fillCloudColor;
291
+ attribute vec4 a_strokeCloudColor;
292
+ #endif
293
+
294
+ #ifdef GRADIENT
295
+ uniform float u_radialGradientVector[6];
296
+ varying vec3 vGradientVector1;
297
+ varying vec3 vGradientVector2;
298
+ #endif
299
+
300
+ void main() {
301
+ gl_PointSize = 1.0;
302
+
303
+ mat3 modelMatrix = mat3(
304
+ a_transform0.x, a_transform1.x, 0,
305
+ a_transform0.y, a_transform1.y, 0,
306
+ a_transform0.z, a_transform1.z, 1
307
+ );
308
+
309
+ vec3 pos = projectionMatrix * viewMatrix * modelMatrix * vec3(a_vertexPosition.xy, 1.0);
310
+ gl_Position = vec4(pos.xy, 1.0, 1.0);
311
+
312
+ #ifdef GRADIENT
313
+ vec3 vg1 = viewMatrix * vec3(u_radialGradientVector[0], u_radialGradientVector[1], 1.0);
314
+ vec3 vg2 = viewMatrix * vec3(u_radialGradientVector[3], u_radialGradientVector[4], 1.0);
315
+ float h = u_resolution.y;
316
+ vg1.y = h - vg1.y;
317
+ vg2.y = h - vg2.y;
318
+ vGradientVector1 = vec3(vg1.xy, u_radialGradientVector[2]);
319
+ vGradientVector2 = vec3(vg2.xy, u_radialGradientVector[5]);
320
+ #endif
321
+
322
+ flagBackground = a_vertexPosition.z;
323
+
324
+ #ifdef CLOUDCOLOR
325
+ if(flagBackground > 0.0) {
326
+ vColor = mix(a_color, a_fillCloudColor, a_fillCloudColor.a);
327
+ } else {
328
+ vColor = mix(a_color, a_strokeCloudColor, a_strokeCloudColor.a);
329
+ }
330
+ #else
331
+ vColor = a_color;
332
+ #endif
333
+
334
+ #ifdef TEXTURE
335
+ vTextureCoord = a_vertexTextureCoord;
336
+ frameIndex = a_frameIndex;
337
+ vSourceRect = a_sourceRect;
338
+ #endif
339
+
340
+ #ifdef CLIPPATH
341
+ vClipUV = a_clipUV;
342
+ #endif
343
+
344
+ #ifdef CLOUDFILTER
345
+ colorCloud0 = a_colorCloud0;
346
+ colorCloud1 = a_colorCloud1;
347
+ colorCloud2 = a_colorCloud2;
348
+ colorCloud3 = a_colorCloud3;
349
+ colorCloud4 = a_colorCloud4;
350
+ #endif
351
+ }`},function(d,r,t){t.r(r),r.default=`precision mediump float;
352
+
353
+ varying vec4 vColor;
354
+ varying float flagBackground;
355
+
356
+ #ifdef TEXTURE
357
+ varying float frameIndex;
358
+ varying vec3 vTextureCoord;
359
+ varying vec4 vSourceRect;
360
+ #endif
361
+
362
+ #ifdef CLIPPATH
363
+ varying vec2 vClipUV;
364
+ #endif
365
+
366
+ #ifdef FILTER
367
+ uniform int u_filterFlag;
368
+ uniform float u_colorMatrix[20];
369
+ #endif
370
+
371
+ #ifdef CLOUDFILTER
372
+ varying vec4 colorCloud0;
373
+ varying vec4 colorCloud1;
374
+ varying vec4 colorCloud2;
375
+ varying vec4 colorCloud3;
376
+ varying vec4 colorCloud4;
377
+ #endif
378
+
379
+ #ifdef GRADIENT
380
+ varying vec3 vGradientVector1;
381
+ varying vec3 vGradientVector2;
382
+ uniform float u_colorSteps[40];
383
+ uniform int u_gradientType;
384
+
385
+ void gradient(inout vec4 color, vec3 gv1, vec3 gv2, float colorSteps[40]) {
386
+ float t;
387
+ // center circle radius
388
+ float cr = gv1.z;
389
+ // focal circle radius
390
+ float fr = gv2.z;
391
+
392
+ if(cr > 0.0 || fr > 0.0) {
393
+ // radial gradient
394
+ vec2 center = gv1.xy;
395
+ vec2 focal = gv2.xy;
396
+ float x = focal.x - gl_FragCoord.x;
397
+ float y = focal.y - gl_FragCoord.y;
398
+ float dx = focal.x - center.x;
399
+ float dy = focal.y - center.y;
400
+ float dr = cr - fr;
401
+ float a = dx * dx + dy * dy - dr * dr;
402
+ float b = -2.0 * (y * dy + x * dx + fr * dr);
403
+ float c = x * x + y * y - fr * fr;
404
+ t = 1.0 - 0.5 * (1.0 / a) * (-b + sqrt(b * b - 4.0 * a * c));
405
+ } else {
406
+ // linear gradient
407
+ vec2 v1 = gl_FragCoord.xy - gv1.xy;
408
+ vec2 v2 = gv2.xy - gv1.xy;
409
+ t = (v1.x * v2.x + v1.y * v2.y) / (v2.x * v2.x + v2.y * v2.y);
410
+ }
411
+
412
+ vec4 colors[8];
413
+ colors[0] = vec4(colorSteps[1], colorSteps[2], colorSteps[3], colorSteps[4]);
414
+ colors[1] = vec4(colorSteps[6], colorSteps[7], colorSteps[8], colorSteps[9]);
415
+ colors[2] = vec4(colorSteps[11], colorSteps[12], colorSteps[13], colorSteps[14]);
416
+ colors[3] = vec4(colorSteps[16], colorSteps[17], colorSteps[18], colorSteps[19]);
417
+ colors[4] = vec4(colorSteps[21], colorSteps[22], colorSteps[23], colorSteps[24]);
418
+ colors[5] = vec4(colorSteps[26], colorSteps[27], colorSteps[28], colorSteps[29]);
419
+ colors[6] = vec4(colorSteps[31], colorSteps[32], colorSteps[33], colorSteps[34]);
420
+ colors[7] = vec4(colorSteps[36], colorSteps[37], colorSteps[38], colorSteps[39]);
421
+
422
+ float steps[8];
423
+ steps[0] = colorSteps[0];
424
+ steps[1] = colorSteps[5];
425
+ steps[2] = colorSteps[10];
426
+ steps[3] = colorSteps[15];
427
+ steps[4] = colorSteps[20];
428
+ steps[5] = colorSteps[25];
429
+ steps[6] = colorSteps[30];
430
+ steps[7] = colorSteps[35];
431
+
432
+ color = colors[0];
433
+ for (int i = 1; i < 8; i++) {
434
+ if (steps[i] < 0.0 || steps[i] > 1.0) {
435
+ break;
436
+ }
437
+ if(steps[i] == steps[i - 1]) {
438
+ color = colors[i];
439
+ } else {
440
+ color = mix(color, colors[i], clamp((t - steps[i - 1]) / (steps[i] - steps[i - 1]), 0.0, 1.0));
441
+ }
442
+ if (steps[i] >= t) {
443
+ break;
444
+ }
445
+ }
446
+ }
447
+ #endif
448
+
449
+ void transformColor(inout vec4 color, in float colorMatrix[20]) {
450
+ float r = color.r, g = color.g, b = color.b, a = color.a;
451
+ color[0] = colorMatrix[0] * r + colorMatrix[1] * g + colorMatrix[2] * b + colorMatrix[3] * a + colorMatrix[4];
452
+ color[1] = colorMatrix[5] * r + colorMatrix[6] * g + colorMatrix[7] * b + colorMatrix[8] * a + colorMatrix[9];
453
+ color[2] = colorMatrix[10] * r + colorMatrix[11] * g + colorMatrix[12] * b + colorMatrix[13] * a + colorMatrix[14];
454
+ color[3] = colorMatrix[15] * r + colorMatrix[16] * g + colorMatrix[17] * b + colorMatrix[18] * a + colorMatrix[19];
455
+ }
456
+
457
+ #ifdef CLOUDFILTER
458
+ void buildCloudColor(inout float colorCloudMatrix[20]) {
459
+ colorCloudMatrix[0] = colorCloud0[0];
460
+ colorCloudMatrix[1] = colorCloud1[0];
461
+ colorCloudMatrix[2] = colorCloud2[0];
462
+ colorCloudMatrix[3] = colorCloud3[0];
463
+ colorCloudMatrix[4] = colorCloud4[0];
464
+
465
+ colorCloudMatrix[5] = colorCloud0[1];
466
+ colorCloudMatrix[6] = colorCloud1[1];
467
+ colorCloudMatrix[7] = colorCloud2[1];
468
+ colorCloudMatrix[8] = colorCloud3[1];
469
+ colorCloudMatrix[9] = colorCloud4[1];
470
+
471
+ colorCloudMatrix[10] = colorCloud0[2];
472
+ colorCloudMatrix[11] = colorCloud1[2];
473
+ colorCloudMatrix[12] = colorCloud2[2];
474
+ colorCloudMatrix[13] = colorCloud3[2];
475
+ colorCloudMatrix[14] = colorCloud4[2];
476
+
477
+ colorCloudMatrix[15] = colorCloud0[3];
478
+ colorCloudMatrix[16] = colorCloud1[3];
479
+ colorCloudMatrix[17] = colorCloud2[3];
480
+ colorCloudMatrix[18] = colorCloud3[3];
481
+ colorCloudMatrix[19] = colorCloud4[3];
482
+ }
483
+ #endif
484
+
485
+ void main() {
486
+ vec4 color = vColor;
487
+ float opacity = abs(flagBackground);
488
+
489
+ #ifdef GRADIENT
490
+ if(u_gradientType > 0 && flagBackground > 0.0 || u_gradientType == 0 && flagBackground <= 0.0) {
491
+ gradient(color, vGradientVector1, vGradientVector2, u_colorSteps);
492
+ }
493
+ #endif
494
+
495
+ if(opacity < 1.0) {
496
+ color.a *= opacity;
497
+ }
498
+
499
+ #ifdef TEXTURE
500
+ if(flagBackground > 0.0) {
501
+ vec3 texCoord = vTextureCoord;
502
+
503
+ if(texCoord.z == 1.0) {
504
+ texCoord = fract(texCoord);
505
+ }
506
+
507
+ if(texCoord.x <= 1.0 && texCoord.x >= 0.0
508
+ && texCoord.y <= 1.0 && texCoord.y >= 0.0) {
509
+ if(vSourceRect.z > 0.0) {
510
+ texCoord.x = vSourceRect.x + texCoord.x * vSourceRect.z;
511
+ texCoord.y = 1.0 - (vSourceRect.y + (1.0 - texCoord.y) * vSourceRect.w);
512
+ }
513
+ if(frameIndex < 0.0) {
514
+ vec4 texColor = texture2D(u_texSampler, texCoord.xy);
515
+ color = mix(color, texColor, texColor.a);
516
+ } else {
517
+ int index = int(floor(clamp(0.0, 11.0, frameIndex)));
518
+ vec4 texColor;
519
+ if(index == 0) texColor = texture2D(u_texFrame0, texCoord.xy);
520
+ else if(index == 1) texColor = texture2D(u_texFrame1, texCoord.xy);
521
+ else if(index == 2) texColor = texture2D(u_texFrame2, texCoord.xy);
522
+ else if(index == 3) texColor = texture2D(u_texFrame3, texCoord.xy);
523
+ else if(index == 4) texColor = texture2D(u_texFrame4, texCoord.xy);
524
+ else if(index == 5) texColor = texture2D(u_texFrame5, texCoord.xy);
525
+ else if(index == 6) texColor = texture2D(u_texFrame6, texCoord.xy);
526
+ else if(index == 7) texColor = texture2D(u_texFrame7, texCoord.xy);
527
+ else if(index == 8) texColor = texture2D(u_texFrame8, texCoord.xy);
528
+ else if(index == 9) texColor = texture2D(u_texFrame9, texCoord.xy);
529
+ else if(index == 10) texColor = texture2D(u_texFrame10, texCoord.xy);
530
+ else texColor = texture2D(u_texFrame11, texCoord.xy);
531
+ float alpha = texColor.a;
532
+ if(opacity < 1.0) {
533
+ texColor.a *= opacity;
534
+ alpha *= mix(0.465, 1.0, opacity);
535
+ }
536
+ // color = mix(color, texColor, texColor.a);
537
+ color.rgb = mix(color.rgb, texColor.rgb, alpha);
538
+ // color.rgb = mix(texColor.rgb, color.rgb, color.a);
539
+ color.rgb = mix(texColor.rgb, color.rgb, clamp(color.a / max(0.0001, texColor.a), 0.0, 1.0));
540
+ color.a = texColor.a + (1.0 - texColor.a) * color.a;
541
+ }
542
+ }
543
+ }
544
+ #endif
545
+
546
+ #ifdef FILTER
547
+ if(u_filterFlag > 0) {
548
+ transformColor(color, u_colorMatrix);
549
+ }
550
+ #endif
551
+
552
+ #ifdef CLOUDFILTER
553
+ float colorCloudMatrix[20];
554
+ buildCloudColor(colorCloudMatrix);
555
+ transformColor(color, colorCloudMatrix);
556
+ #endif
557
+
558
+ #ifdef CLIPPATH
559
+ float clip = texture2D(u_clipSampler, vClipUV).r;
560
+ color *= clip;
561
+ #endif
562
+
563
+ gl_FragColor = color;
564
+ }`},function(d,r,t){t.r(r),(function(e,n){t.d(r,"requestAnimationFrame",function(){return s}),t.d(r,"cancelAnimationFrame",function(){return i}),t(1).glMatrix.setMatrixArrayType(Array);function a(){if(typeof performance<"u"&&performance.now)return performance.now();if(typeof e<"u"&&e.hrtime){const[o,c]=e.hrtime();return o*1e3+c*1e-6}return Date.now?Date.now():new Date().getTime()}let s,i;typeof n<"u"&&typeof n.requestAnimationFrame=="function"?(s=n.requestAnimationFrame,i=n.cancelAnimationFrame):(s=function(o){return setTimeout(()=>{o(a())},16)},i=function(o){return clearTimeout(o)})}).call(this,t(69),t(22))},function(d,r){var t=d.exports={},e,n;function a(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?e=setTimeout:e=a}catch{e=a}try{typeof clearTimeout=="function"?n=clearTimeout:n=s}catch{n=s}})();function i(T){if(e===setTimeout)return setTimeout(T,0);if((e===a||!e)&&setTimeout)return e=setTimeout,setTimeout(T,0);try{return e(T,0)}catch{try{return e.call(null,T,0)}catch{return e.call(this,T,0)}}}function o(T){if(n===clearTimeout)return clearTimeout(T);if((n===s||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(T);try{return n(T)}catch{try{return n.call(null,T)}catch{return n.call(this,T)}}}var c=[],m=!1,u,p=-1;function y(){!m||!u||(m=!1,u.length?c=u.concat(c):p=-1,c.length&&O())}function O(){if(!m){var T=i(y);m=!0;for(var l=c.length;l;){for(u=c,c=[];++p<l;)u&&u[p].run();p=-1,l=c.length}u=null,m=!1,o(T)}}t.nextTick=function(T){var l=new Array(arguments.length-1);if(arguments.length>1)for(var h=1;h<arguments.length;h++)l[h-1]=arguments[h];c.push(new x(T,l)),c.length===1&&!m&&i(O)};function x(T,l){this.fun=T,this.array=l}x.prototype.run=function(){this.fun.apply(null,this.array)},t.title="browser",t.browser=!0,t.env={},t.argv=[],t.version="",t.versions={};function v(){}t.on=v,t.addListener=v,t.once=v,t.off=v,t.removeListener=v,t.removeAllListeners=v,t.emit=v,t.prependListener=v,t.prependOnceListener=v,t.listeners=function(T){return[]},t.binding=function(T){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(T){throw new Error("process.chdir is not supported")},t.umask=function(){return 0}},function(d,r,t){t.r(r),t.d(r,"default",function(){return C});var e=t(1),n=t(71),a=t(73),s=t(213),i=t(214),o=t(215),c=t(216);t(1).glMatrix.setMatrixArrayType(Array);function m(b,E){var L=Object.keys(b);if(Object.getOwnPropertySymbols){var D=Object.getOwnPropertySymbols(b);E&&(D=D.filter(function(I){return Object.getOwnPropertyDescriptor(b,I).enumerable})),L.push.apply(L,D)}return L}function u(b){for(var E=1;E<arguments.length;E++){var L=arguments[E]!=null?arguments[E]:{};E%2?m(Object(L),!0).forEach(function(D){p(b,D,L[D])}):Object.getOwnPropertyDescriptors?Object.defineProperties(b,Object.getOwnPropertyDescriptors(L)):m(Object(L)).forEach(function(D){Object.defineProperty(b,D,Object.getOwnPropertyDescriptor(L,D))})}return b}function p(b,E,L){return E in b?Object.defineProperty(b,E,{value:L,enumerable:!0,configurable:!0,writable:!0}):b[E]=L,b}const y=Symbol.for("spritejs_changedAttrs"),O=Symbol.for("spritejs_attributes"),x=Symbol("resolution"),v=Symbol("animations"),T=Symbol("eventListeners"),l=Symbol("captureEventListeners"),h=Symbol("filters"),f=Symbol("display"),g=Symbol("program"),M=Symbol("shaderAttrs"),A=Symbol("uniforms");class C{constructor(E={}){this.attributes=new this.constructor.Attr(this),this[x]={width:300,height:150},Object.assign(this.attributes,E),this[v]=new Set,this[T]={},this[l]={}}get ancestors(){let E=this.parent;const L=[];for(;E;)L.push(E),E=E.parent;return L}get animations(){return this[v]}get filters(){return this[h]||this.parent&&this.parent.filters}get isVisible(){return!1}get layer(){return this.parent?this.parent.layer:null}get localMatrix(){const E=this.transformMatrix,{x:L,y:D}=this.attributes;return E[4]+=L,E[5]+=D,E}get opacity(){let E=this.attributes.opacity;return this.parent&&this.parent.opacity!=null&&(E*=this.parent.opacity),E}get parentNode(){return this.parent}get nextSibling(){return this.getNodeNearBy(1)}get previousSibling(){return this.getNodeNearBy(-1)}get program(){return this[g]}get renderer(){return this.parent?this.parent.renderer:null}get renderMatrix(){if(this.__cacheRenderMatrix)return this.__cacheRenderMatrix;let E=this.localMatrix;const L=this.parent;if(L){const D=L.__cacheRenderMatrix||L.renderMatrix;D&&(E=e.mat2d.multiply(Array.of(0,0,0,0,0,0),D,E))}return E}get worldScaling(){const E=this.renderMatrix;return[Math.hypot(E[0],E[1]),Math.hypot(E[2],E[3])]}get worldRotation(){const E=this.renderMatrix;return Math.atan2(E[1],E[3])}get worldPosition(){const E=this.renderMatrix;return[E[4],E[5]]}get uniforms(){return this[A]}get className(){return this.attributes.className}set className(E){this.attributes.className=E}get id(){return this.attributes.id}set id(E){this.attributes.id=E}get name(){return this.attributes.name}set name(E){this.attributes.name=E}get zIndex(){return this.attributes.zIndex}set zIndex(E){this.attributes.zIndex=E}get mesh(){return null}get shaderAttrs(){return this[M]||{}}activateAnimations(){const E=this.layer;if(E){const L=this[v];L.forEach(I=>{I.baseTimeline=E.timeline,I.play(),I.finished.then(()=>{L.delete(I)})});const D=this.children;D&&D.forEach(I=>{I.activateAnimations&&I.activateAnimations()})}}addEventListener(E,L,D={}){E==="mousewheel"&&(E="wheel"),typeof D=="boolean"&&(D={capture:D});const{capture:I,once:R}=D,B=I?l:T;return this[B][E]=this[B][E]||[],this[B][E].push({listener:L,once:R}),this}animate(E,L){const D=new a.default(this,E,L);return this.effects&&D.applyEffects(this.effects),this.layer&&(D.baseTimeline=this.layer.timeline,D.play(),D.finished.then(()=>{this[v].delete(D)})),this[v].add(D),D}attr(...E){if(E.length===0)return this.attributes[O];if(E.length>1){let[L,D]=E;return typeof D=="function"&&(D=D(this.attr(L))),this.setAttribute(L,D),this}return typeof E[0]=="string"?this.getAttribute(E[0]):(Object.assign(this.attributes,E[0]),this)}cloneNode(){const E=new this.constructor,L=this.attributes[y];return E.attr(L),E}connect(E,L){Object.defineProperty(this,"parent",{value:E,writable:!1,configurable:!0}),Object.defineProperty(this,"zOrder",{value:L,writable:!1,configurable:!0}),E.timeline&&this.activateAnimations(),this.setResolution(E.getResolution()),this.forceUpdate(),this.dispatchEvent({type:"append",detail:{parent:E,zOrder:L}})}contains(E){for(;E&&this!==E;)E=E.parent;return!!E}deactivateAnimations(){this[v].forEach(L=>L.cancel());const E=this.children;E&&E.forEach(L=>{L.deactivateAnimations&&L.deactivateAnimations()})}disconnect(){const{parent:E,zOrder:L}=this;delete this.parent,delete this.zOrder,this.deactivateAnimations(),this.dispatchEvent({type:"remove",detail:{parent:E,zOrder:L}}),E&&E.forceUpdate()}dispatchEvent(E){E instanceof i.default||(E=new i.default(E)),E.target=this;let L=E.type;L==="mousewheel"&&(L="wheel");const D=[this];let I=this.parent;for(;E.bubbles&&I;)D.push(I),I=I.parent;for(let R=D.length-1;R>=0;R--){const B=D[R],z=B[l]&&B[l][L];if(z&&z.length&&(E.currentTarget=B,z.forEach(({listener:K,once:Q})=>{K.call(this,E),Q&&D.removeEventListener(K)}),delete E.currentTarget),!E.bubbles&&E.cancelBubble)break}if(!E.cancelBubble)for(let R=0;R<D.length;R++){const B=D[R],z=B[T]&&B[T][L];if(z&&z.length&&(E.currentTarget=B,z.forEach(({listener:K,once:Q})=>{K.call(this,E),Q&&D.removeEventListener(K)}),delete E.currentTarget),!E.bubbles||E.cancelBubble)break}}dispatchPointerEvent(E){const{layerX:L,layerY:D}=E;return this.isPointCollision(L,D)?(this.dispatchEvent(E),!0):!1}draw(E=[]){const L=this.mesh;if(L){if(Object(o.applyFilters)(L,this.filters),E.push(L),this[g]){L.setProgram(this[g]);const D=this[M];D&&Object.entries(D).forEach(([R,B])=>{L.setAttribute(R,B)});const I=this[A];if(this[A]){const R={};Object.entries(I).forEach(([B,z])=>{typeof z=="function"&&(z=z(this,B)),R[B]=z}),L.setUniforms(R)}}Object(c.default)(this,L)}return E}forceUpdate(){this.parent&&this.parent.forceUpdate()}getAttribute(E){return this.attributes[E]}getListeners(E,{capture:L=!1}={}){return[...this[L?l:T][E]||[]]}getNodeNearBy(E=1){if(!this.parent)return null;if(E===0)return this;const L=this.parent.children,D=L.indexOf(this);return L[D+E]}getWorldPosition(E,L){const D=this.renderMatrix,I=E*D[0]+L*D[2]+D[4],R=E*D[1]+L*D[3]+D[5];return[I,R]}getOffsetPosition(E,L){const D=e.mat2d.invert(Array.of(0,0,0,0,0,0),this.renderMatrix),I=E*D[0]+L*D[2]+D[4],R=E*D[1]+L*D[3]+D[5];return[I,R]}getResolution(){return u({},this[x])}isPointCollision(E,L){if(!this.mesh)return!1;const D=this.attributes.pointerEvents;if(D==="none"||D!=="all"&&!this.isVisible)return!1;let I="both";return D==="visibleFill"&&(I="fill"),D==="visibleStroke"&&(I="stroke"),this.mesh.isPointCollision(E,L,I)}onPropertyChange(E,L,D){E!=="id"&&E!=="name"&&E!=="className"&&E!=="pointerEvents"&&E!=="passEvents"&&this.forceUpdate(),E==="filter"&&(this[h]=Object(o.parseFilterString)(L)),E==="zIndex"&&this.parent&&this.parent.reorder()}setAttribute(E,L){E==="attrs"&&this.attr(L),this.attributes[E]=L}setMouseCapture(){this.layer&&(this.layer.__mouseCapturedTarget=this)}setProgram(E){this[g]=E,this.forceUpdate()}setShaderAttribute(E,L){this[M]=this[M]||{},this[M][E]=L,this.forceUpdate()}setUniforms(E){this[A]=this[A]||{},Object.assign(this[A],E),this.forceUpdate()}setResolution({width:E,height:L}){const{width:D,height:I}=this[x];(D!==E||I!==L)&&(this[x]={width:E,height:L},this.forceUpdate(),this.dispatchEvent({type:"resolutionchange",detail:{width:E,height:L}}))}show(){this.attributes.display==="none"&&(this.attributes.display=this[f]||"")}hide(){this.attributes.display!=="none"&&(this[f]=this.attributes.display,this.attributes.display="none")}releaseMouseCapture(){this.layer&&this.layer.__mouseCapturedTarget===this&&(this.layer.__mouseCapturedTarget=null)}remove(){return this.parent&&this.parent.removeChild?(this.parent.removeChild(this),!0):!1}removeAllListeners(E,L={}){typeof L=="boolean"&&(L={capture:L});const I=L.capture?l:T;return this[I][E]&&(this[I][E]=[]),this}removeAttribute(E){this.setAttribute(E,null)}removeEventListener(E,L,D={}){typeof D=="boolean"&&(D={capture:D});const R=D.capture?l:T;if(this[R][E]){const B=this[R][E];if(B)for(let z=0;z<B.length;z++){const{listener:K}=B[z];if(K===L){this[R][E].splice(z,1);break}}}return this}transition(E,L="linear"){const D=this,I=Symbol("animation");L=L||"linear";let R=0;return typeof E=="object"&&(R=E.delay||0,E=E.duration),{[I]:null,cancel(B=!1){const z=this[I];z&&z.cancel(B)},end(){const B=this[I];B&&(B.playState==="running"||B.playState==="pending")&&B.finish()},reverse(){const B=this[I];if(B)if(B.playState==="running"||B.playState==="pending")B.playbackRate=-B.playbackRate;else{const z=B.timing.direction;B.timing.direction=z==="reverse"?"normal":"reverse",B.play()}return B.finished},attr(B,z){return this.end(),typeof B=="string"&&(B={[B]:z}),Object.entries(B).forEach(([K,Q])=>{typeof Q=="function"&&(B[K]=Q(D.attr(K)))}),this[I]=D.animate([B],{duration:E*1e3,delay:R*1e3,fill:"forwards",easing:L}),this[I].finished}}}updateContours(){}}p(C,"Attr",n.default),s.default.registerNode(C,"node")},function(d,r,t){t.r(r),t.d(r,"default",function(){return C});var e=t(1),n=t(12),a=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),i=Symbol.for("spritejs_declareAlias"),o=Symbol.for("spritejs_setAttribute"),c=Symbol.for("spritejs_getAttribute"),m=Symbol.for("spritejs_attributes"),u=Symbol.for("spritejs_changedAttrs"),p=Symbol("subject"),y=Symbol("attr"),O=Symbol("default"),x=Symbol("alias");function v(b,[E,L]){let D=e.mat2d.fromValues(1,0,0,1,0,0);return[...b].forEach(([I,R])=>{if((E||L)&&(D=e.mat2d.translate(Array.of(0,0,0,0,0,0),D,[E,L])),I==="matrix")D=e.mat2d.multiply(D,D,R);else if(I==="offsetTranslate")D[4]+=R[0],D[5]+=R[1];else if(I==="offsetRotate")D=e.mat2d.rotate(Array.of(0,0,0,0,0,0),D,R);else if(I==="skew"){const[B,z]=R;D=e.mat2d.multiply(D,D,e.mat2d.fromValues(1,Math.tan(z),Math.tan(B),1,0,0))}else e.mat2d[I](D,D,R);(E||L)&&(D=e.mat2d.translate(Array.of(0,0,0,0,0,0),D,[-E,-L]))}),D}const T=Symbol("transformMatrix"),l=Symbol("transforms"),h=Symbol("changedAttrs"),f=Symbol("lastChangedAttr"),g=Symbol("offsetFigure");function M(b,E,L){const D=b[y][E];if(b[o](E,L,!1)||b[f]!==E){const R=b[l];R.has(E)&&R.delete(E),L&&(E==="rotate"&&(L=Math.PI*L/180),E==="scale"&&(L=L.map(B=>Math.abs(B)>1e-5?B:1/B>0?1e-5:-1e-5)),R.set(E,L)),b[T]=null,b[p].onPropertyChange(E,L,D,b)}}function A(b){const E=b[g],L=b.offsetDistance*E.getTotalLength(),D=E.getPointAtLength(L);if(D){const I=b[l];let R=b.offsetRotate;R==="auto"?R=D.angle:R==="reverse"?R=Math.PI+D.angle:R=Math.PI*R/180,I.set("offsetRotate",R),I.set("offsetTranslate",[D.x,D.y]),b[T]=null}}class C{static setDefault(E,...L){return E[s](...L)}static declareAlias(E,...L){return E[i](...L)}static setAttribute(E,...L){return E[o](...L)}static getAttribute(E,...L){return E[c](...L)}static getAttributes(E){return E[m]}static getChangedAttributes(E){return E[u]}constructor(E){this[p]=E,this[y]={},this[T]=e.mat2d.fromValues(1,0,0,1,0,0),this[l]=new Map,this[O]={},this[x]=[],Object.defineProperty(E,"transformMatrix",{get:()=>(this[T]||(this[T]=v(this[l],this.transformOrigin)),[...this[T]])}),this[s]({id:"",name:"",className:"",x:0,y:0,transformOrigin:[0,0],transform:"",translate:[0,0],rotate:0,scale:[1,1],skew:[0,0],opacity:1,zIndex:0,offsetPath:void 0,offsetDistance:0,offsetRotate:"auto",pointerEvents:"visible",filter:"none",display:""}),this[i]("class","pos"),this[h]=new Set,this[g]=new n.Figure2D({scale:5,simplify:0})}get[u](){const E={};return[...this[h]].forEach(L=>{E[L]=this[y][L]}),E}get[m](){const E=Object.assign({},this[y]);for(let L=0;L<this[x].length;L++){const D=this[x][L];E[D]=this[D]}return E}[s](E){Object.assign(this[O],E),Object.assign(this[y],E)}[i](...E){this[x].push(...E)}[o](E,L,D=!0){const I=this[y][E],R=this[p];return L==null&&(L=this[O][E]),Object(a.compareValue)(I,L)?!1:(this[y][E]=L,this[h].has(E)&&this[h].delete(E),this[h].add(E),this[f]=E,D&&R.onPropertyChange(E,L,I,this),!0)}[c](E){return this[y][E]}set id(E){this[o]("id",E)}get id(){return this[c]("id")}set name(E){this[o]("name",E)}get name(){return this[c]("name")}set className(E){this[o]("className",E)}get className(){return this[c]("className")}set class(E){this.className=E}get class(){return this.className}get x(){return this[c]("x")}set x(E){this[o]("x",Object(a.toNumber)(E))}get y(){return this[c]("y")}set y(E){this[o]("y",Object(a.toNumber)(E))}get pos(){return[this.x,this.y]}set pos(E){E=Object(a.toArray)(E),Array.isArray(E)||(E=[E,E]),this.x=E[0],this.y=E[1]}get transform(){return this[c]("transform")}set transform(E){let L=null;if(Array.isArray(E)&&(L=E,E=`matrix(${E.map(a.toNumber).join()})`),typeof E=="string")E=E.replace(/\s*,\s*/g,",");else if(E!=null)throw new TypeError("Invalid transform value.");const D=this[y].transform;if(this[o]("transform",E,!1)){const I=this[l];if(I.has("matrix")&&I.delete("matrix"),L)I.set("matrix",L);else if(E){const R=E.match(/(matrix|translate|rotate|scale|skew)\([^()]+\)/g);if(R){let B=e.mat2d.fromValues(1,0,0,1,0,0);for(let z=0;z<R.length;z++){const Q=R[z].match(/^(matrix|translate|rotate|scale|skew)\(([^()]+)\)/);if(Q){let[,_,j]=Q;_==="rotate"?j=Math.PI*parseFloat(j)/180:j=j.trim().split(/[\s,]+/).map(G=>Object(a.toNumber)(G)),_==="matrix"?B=e.mat2d.multiply(B,B,j):_==="skew"?B=e.mat2d.multiply(B,B,e.mat2d.fromValues(1,Math.tan(j[1]),Math.tan(j[0]),1,0,0)):e.mat2d[_](B,B,j),I.set("matrix",B)}}}else throw new TypeError("Invalid transform value.")}this[T]=null,this[p].onPropertyChange("transform",E,D,this)}}get transformOrigin(){return this[c]("transformOrigin")}set transformOrigin(E){E=Object(a.toArray)(E,!0),E!=null&&!Array.isArray(E)&&(E=[E,E]),this[o]("transformOrigin",E)&&(this[T]=null)}get rotate(){return this[c]("rotate")}set rotate(E){M(this,"rotate",E)}get translate(){return this[c]("translate")}set translate(E){E=Object(a.toArray)(E,!0),E!=null&&!Array.isArray(E)&&(E=[E,E]),M(this,"translate",E)}get scale(){return this[c]("scale")}set scale(E){E=Object(a.toArray)(E,!0),E!=null&&!Array.isArray(E)&&(E=[E,E]),M(this,"scale",E)}get skew(){return this[c]("skew")}set skew(E){E=Object(a.toArray)(E,!0),E!=null&&!Array.isArray(E)&&(E=[E,E]),M(this,"skew",E)}get opacity(){return this[c]("opacity")}set opacity(E){E!=null&&(E=Number(E)),this[o]("opacity",E)}get zIndex(){return this[c]("zIndex")}set zIndex(E){E!=null&&(E=Number(E)),this[o]("zIndex",E)}get offsetPath(){return this[c]("offsetPath")}set offsetPath(E){this[o]("offsetPath",E)&&(this[g].beginPath(),E!=null&&this[g].addPath(E),A(this))}get offsetDistance(){return this[c]("offsetDistance")}set offsetDistance(E){this[o]("offsetDistance",Object(a.toNumber)(E))&&A(this)}get offsetRotate(){return this[c]("offsetRotate")}set offsetRotate(E){this[o]("offsetRotate",E),A(this)}get pointerEvents(){return this[c]("pointerEvents")}set pointerEvents(E){if(E!=null&&E!=="none"&&E!=="visible"&&E!=="visibleFill"&&E!=="visibleStroke"&&E!=="all")throw new TypeError("Invalid pointerEvents type.");this[o]("pointerEvents",E)}get filter(){return this[c]("filter")}set filter(E){this[o]("filter",E)}get display(){return this[c]("display")}set display(E){this[o]("display",E)}set offset(E){}}},function(d,r,t){t.r(r),t.d(r,"sizeToPixel",function(){return e}),t.d(r,"toString",function(){return n}),t.d(r,"toNumber",function(){return a}),t.d(r,"toArray",function(){return s}),t.d(r,"compareValue",function(){return i}),t(1).glMatrix.setMatrixArrayType(Array);function e(o,c){const m=o.trim().match(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin)$/);m?o={size:parseFloat(m[1]),unit:m[2]}:o={size:parseFloat(o),unit:"px"};let{size:u,unit:p}=o;if(p==="pt")u/=.75;else if(p==="pc")u*=16;else if(p==="in")u*=96;else if(p==="cm")u*=96/2.54;else if(p==="mm")u*=96/25.4;else if(p==="em"||p==="rem"||p==="ex"){if(!c&&typeof getComputedStyle=="function"&&typeof document<"u"){const y=getComputedStyle(document.documentElement).fontSize;y?c=e(y,16):c=16}u*=c,p==="ex"&&(u/=2)}else if(p==="q")u*=96/25.4/4;else if(p==="vw"||p==="vh"){if(typeof document<"u"){const y=p==="vw"?window.innerWidth||document.documentElement.clientWidth:window.innerHeight||document.documentElement.clientHeight;u*=y/100}}else if((p==="vmax"||p==="vmin")&&typeof document<"u"){const y=window.innerWidth||document.documentElement.clientWidth,O=window.innerHeight||document.documentElement.clientHeight;p==="vmax"?u*=Math.max(y,O)/100:u*=Math.min(y,O)/100}return u}function n(o){return o==null?o:String(o)}function a(o){if(o==null)return o;if(typeof o=="string"&&(o=e(o)),!Number.isFinite(o))throw new TypeError("Invalid value");return o}function s(o,c=!1){return o===""?null:(typeof o=="string"&&(o=o.split(/[\s,]+/g)),Array.isArray(o)&&(c&&(o=o.map(a)),o.length===1)?o[0]:o)}function i(o,c){if(Array.isArray(o)&&Array.isArray(c)){if(o.length!==c.length)return!1;for(let m=0;m<o.length;m++)if(o[m]!==c[m])return!1;return!0}return o==null&&c==null||o===c}},function(d,r,t){t.r(r),t.d(r,"default",function(){return p});var e=t(74),n=t(32),a=t.n(n),s=t(68),i=t(72);t(1).glMatrix.setMatrixArrayType(Array);function o(){return o=Object.assign||function(y){for(var O=1;O<arguments.length;O++){var x=arguments[O];for(var v in x)Object.prototype.hasOwnProperty.call(x,v)&&(y[v]=x[v])}return y},o.apply(this,arguments)}function c(y){if(typeof y=="string"){if(y=y.trim(),/^[0-9.]+%$/.test(y))return parseFloat(y)/100;if(/^([\d.]+)(px|pt|pc|in|cm|mm|em|ex|rem|q|vw|vh|vmax|vmin)$/.test(y))return Object(i.sizeToPixel)(y)}return y}function m(y,O,x,v,T){return typeof y=="string"&&(y=a()(y)),typeof O=="string"&&(O=a()(O)),e.Effects.default(y,O,x,v,T)}function u(y,O,x,v,T){return e.Effects.default(y,O,x,v,T)}e.Effects.default=function(y,O,x,v,T){return Array.isArray(y)&&Array.isArray(O)?y.map((l,h)=>l+(x-v)/(T-v)*(O[h]-l)):typeof y=="number"&&typeof O=="number"?y+(x-v)/(T-v)*(O-y):x-v>T-x?O:y},e.Effects.fillColor=m,e.Effects.strokeColor=m,e.Effects.bgcolor=m,e.Effects.borderColor=m,e.Effects.text=u;class p extends e.Animator{constructor(O,x,v){const T=O.attr();Object.entries(T).forEach(([l,h])=>{T[l]=e.Effects[l]?h:c(h)}),x=x.map(l=>{let h=o({},l);const f={};return Object.entries(h).forEach(([g,M])=>{f[g]=e.Effects[g]?M:c(M)}),f}),super(T,x,v),this.target=O,this.setter=function(l,h){h.attr(l)}}get playState(){return this.target.parent?super.playState:"idle"}get finished(){return super.finished.then(()=>{const O=this;return new Promise(x=>{function v(){O.setter(O.frame,O.target);const T=O.playState;T==="finished"||T==="idle"?(Object(s.cancelAnimationFrame)(O.requestId),x()):Object(s.requestAnimationFrame)(v)}v()})})}finish(){super.finish(),Object(s.cancelAnimationFrame)(this.requestId),this.setter(this.frame,this.target)}play(){if(!this.target.parent||this.playState==="running")return;super.play(),this.setter(this.frame,this.target);const O=this;this.ready.then(()=>{O.setter(O.frame,O.target),O.requestId=Object(s.requestAnimationFrame)(function x(){const v=O.target;if(typeof document<"u"&&document.documentElement&&document.documentElement.contains&&v.layer&&v.layer.canvas&&!document.documentElement.contains(v.layer.canvas)){O.cancel();return}const T=O.playState;O.setter(O.frame,O.target),T!=="idle"&&(T==="running"?O.requestId=Object(s.requestAnimationFrame)(x):(T==="paused"||T==="pending"&&O.timeline.currentTime<0)&&O.ready.then(()=>{O.setter(O.frame,O.target),O.requestId=Object(s.requestAnimationFrame)(x)}))})})}cancel(O=!1){Object(s.cancelAnimationFrame)(this.requestId),O?(this.setter(this.frame,this.target),super.cancel()):(super.cancel(),this.setter(this.frame,this.target))}}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.Timeline=r.Effects=r.Easings=r.Animator=void 0;var e=t(75),n=m(e),a=t(187),s=m(a),i=t(188),o=t(190),c=m(o);function m(u){return u&&u.__esModule?u:{default:u}}r.Animator=c.default,r.Easings=i.Easings,r.Effects=s.default,r.Timeline=n.default},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0});var e=t(76),n=l(e),a=t(133),s=l(a),i=t(141),o=l(i),c=t(164),m=l(c),u=t(170),p=l(u),y=t(171),O=l(y),x=t(175),v=l(x),T=t(186);function l(D){return D&&D.__esModule?D:{default:D}}var h=(0,T.createNowTime)(),f={originTime:0,playbackRate:1},g=(0,v.default)("timeMark"),M=(0,v.default)("playbackRate"),A=(0,v.default)("timers"),C=(0,v.default)("originTime"),b=(0,v.default)("setTimer"),E=(0,v.default)("parent"),L=function(){function D(I,R){(0,p.default)(this,D),I instanceof D&&(R=I,I={}),I=(0,m.default)({},f,I),R&&(this[E]=R);var B=I.nowtime||h;if(R)Object.defineProperty(this,"globalTime",{get:function(){return R.currentTime}});else{var z=B();Object.defineProperty(this,"globalTime",{get:function(){return B()-z}})}this[g]=[{globalTime:this.globalTime,localTime:-I.originTime,entropy:-I.originTime,playbackRate:I.playbackRate,globalEntropy:0}],this[E]&&(this[g][0].globalEntropy=this[E].entropy),this[C]=I.originTime,this[M]=I.playbackRate,this[A]=new o.default}return(0,O.default)(D,[{key:"markTime",value:function(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},B=R.time,z=B===void 0?this.currentTime:B,K=R.entropy,Q=K===void 0?this.entropy:K,_=R.playbackRate,j=_===void 0?this.playbackRate:_,G={globalTime:this.globalTime,localTime:z,entropy:Q,playbackRate:j,globalEntropy:this.globalEntropy};this[g].push(G)}},{key:"fork",value:function(R){return new D(R,this)}},{key:"seekGlobalTime",value:function(R){var B=this.seekTimeMark(R),z=this[g][B],K=z.entropy,Q=z.playbackRate,_=z.globalTime;return _+(R-K)/Math.abs(Q)}},{key:"seekLocalTime",value:function(R){var B=this.seekTimeMark(R),z=this[g][B],K=z.localTime,Q=z.entropy,_=z.playbackRate;return _>0?K+(R-Q):K-(R-Q)}},{key:"seekTimeMark",value:function(R){var B=this[g],z=0,K=B.length-1;if(R<=B[z].entropy)return z;if(R>=B[K].entropy)return K;for(var Q=Math.floor((z+K)/2);Q>z&&Q<K;){if(R===B[Q].entropy)return Q;R<B[Q].entropy?K=Q:R>B[Q].entropy&&(z=Q),Q=Math.floor((z+K)/2)}return z}},{key:"updateTimers",value:function(){var R=this,B=[].concat((0,s.default)(this[A]));B.forEach(function(z){var K=(0,n.default)(z,2),Q=K[0],_=K[1];R[b](_.handler,_.time,Q)})}},{key:"clearTimeout",value:function(I){function R(B){return I.apply(this,arguments)}return R.toString=function(){return I.toString()},R}(function(I){var R=this[A].get(I);R&&R.timerID!=null&&(this[E]?this[E].clearTimeout(R.timerID):clearTimeout(R.timerID)),this[A].delete(I)})},{key:"clearInterval",value:function(R){return this.clearTimeout(R)}},{key:"clear",value:function(){var R=this,B=this[A];[].concat((0,s.default)(B.keys())).forEach(function(z){R.clearTimeout(z)})}},{key:"setTimeout",value:function(R){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{delay:0};return this[b](R,B)}},{key:"setInterval",value:function(R){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{delay:0},z=this,K=this[b](function Q(){z[b](Q,B,K),R()},B);return K}},{key:b,value:function(R,B){var z=this,K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:(0,v.default)("timerID");B=(0,T.formatDelay)(B);var Q=this[A].get(K),_=void 0,j=null,G=void 0,X=void 0;Q?(this.clearTimeout(K),B.isEntropy?_=(B.delay-(this.entropy-Q.startEntropy))/Math.abs(this.playbackRate):_=(B.delay-(this.currentTime-Q.startTime))/this.playbackRate,G=Q.startTime,X=Q.startEntropy):(_=B.delay/(B.isEntropy?Math.abs(this.playbackRate):this.playbackRate),G=this.currentTime,X=this.entropy);var Z=this[E],tt=Z?Z.setTimeout.bind(Z):setTimeout,nt=B.heading;return!Z&&nt===!1&&_<0&&(_=1/0),(isFinite(_)||Z)&&(_=Math.ceil(_),tt!==setTimeout&&(_={delay:_,heading:nt}),j=tt(function(){z[A].delete(K),R()},_)),this[A].set(K,{timerID:j,handler:R,time:B,startTime:G,startEntropy:X}),K}},{key:"parent",get:function(){return this[E]}},{key:"lastTimeMark",get:function(){return this[g][this[g].length-1]}},{key:"currentTime",get:function(){var R=this.lastTimeMark,B=R.localTime,z=R.globalTime;return B+(this.globalTime-z)*this.playbackRate},set:function(R){var B=this,z=this.currentTime,K=R,Q=this[A];this.markTime({time:R}),[].concat((0,s.default)(Q)).forEach(function(_){var j=(0,n.default)(_,2),G=j[0],X=j[1];if(Q.has(G)){var Z=X.time,tt=Z.isEntropy,nt=Z.delay,q=Z.heading,dt=X.handler,ut=X.startTime;if(tt)nt===0&&(dt(),B.clearTimeout(G));else{var W=ut+nt;(nt===0||q!==!1&&(K-z)*nt<=0||z<=W&&W<=K||z>=W&&W>=K)&&(dt(),B.clearTimeout(G))}}}),this.updateTimers()}},{key:"entropy",get:function(){var R=this.lastTimeMark,B=R.entropy,z=R.globalEntropy;return B+Math.abs((this.globalEntropy-z)*this.playbackRate)},set:function(R){if(this.entropy>R){var B=this.seekTimeMark(R);this[g].length=B+1}this.markTime({entropy:R}),this.updateTimers()}},{key:"globalEntropy",get:function(){return this[E]?this[E].entropy:this.globalTime}},{key:"playbackRate",get:function(){return this[M]},set:function(R){R!==this.playbackRate&&(this.markTime({playbackRate:R}),this[M]=R,this.updateTimers())}},{key:"paused",get:function(){if(this.playbackRate===0)return!0;for(var R=this.parent;R;){if(R.playbackRate===0)return!0;R=R.parent}return!1}}]),D}();r.default=L},function(d,r,t){r.__esModule=!0;var e=t(77),n=i(e),a=t(129),s=i(a);function i(o){return o&&o.__esModule?o:{default:o}}r.default=function(){function o(c,m){var u=[],p=!0,y=!1,O=void 0;try{for(var x=(0,s.default)(c),v;!(p=(v=x.next()).done)&&(u.push(v.value),!(m&&u.length===m));p=!0);}catch(T){y=!0,O=T}finally{try{!p&&x.return&&x.return()}finally{if(y)throw O}}return u}return function(c,m){if(Array.isArray(c))return c;if((0,n.default)(Object(c)))return o(c,m);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(d,r,t){d.exports={default:t(78),__esModule:!0}},function(d,r,t){t(79),t(125),d.exports=t(127)},function(d,r,t){t(80);for(var e=t(91),n=t(95),a=t(83),s=t(122)("toStringTag"),i="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),o=0;o<i.length;o++){var c=i[o],m=e[c],u=m&&m.prototype;u&&!u[s]&&n(u,s,c),a[c]=a.Array}},function(d,r,t){var e=t(81),n=t(82),a=t(83),s=t(84);d.exports=t(88)(Array,"Array",function(i,o){this._t=s(i),this._i=0,this._k=o},function(){var i=this._t,o=this._k,c=this._i++;return!i||c>=i.length?(this._t=void 0,n(1)):o=="keys"?n(0,c):o=="values"?n(0,i[c]):n(0,[c,i[c]])},"values"),a.Arguments=a.Array,e("keys"),e("values"),e("entries")},function(d,r){d.exports=function(){}},function(d,r){d.exports=function(t,e){return{value:e,done:!!t}}},function(d,r){d.exports={}},function(d,r,t){var e=t(85),n=t(87);d.exports=function(a){return e(n(a))}},function(d,r,t){var e=t(86);d.exports=Object("z").propertyIsEnumerable(0)?Object:function(n){return e(n)=="String"?n.split(""):Object(n)}},function(d,r){var t={}.toString;d.exports=function(e){return t.call(e).slice(8,-1)}},function(d,r){d.exports=function(t){if(t==null)throw TypeError("Can't call method on "+t);return t}},function(d,r,t){var e=t(89),n=t(90),a=t(106),s=t(95),i=t(83),o=t(107),c=t(121),m=t(123),u=t(122)("iterator"),p=!([].keys&&"next"in[].keys()),y="@@iterator",O="keys",x="values",v=function(){return this};d.exports=function(T,l,h,f,g,M,A){o(h,l,f);var C=function(j){if(!p&&j in D)return D[j];switch(j){case O:return function(){return new h(this,j)};case x:return function(){return new h(this,j)}}return function(){return new h(this,j)}},b=l+" Iterator",E=g==x,L=!1,D=T.prototype,I=D[u]||D[y]||g&&D[g],R=I||C(g),B=g?E?C("entries"):R:void 0,z=l=="Array"&&D.entries||I,K,Q,_;if(z&&(_=m(z.call(new T)),_!==Object.prototype&&_.next&&(c(_,b,!0),!e&&typeof _[u]!="function"&&s(_,u,v))),E&&I&&I.name!==x&&(L=!0,R=function(){return I.call(this)}),(!e||A)&&(p||L||!D[u])&&s(D,u,R),i[l]=R,i[b]=v,g)if(K={values:E?R:C(x),keys:M?R:C(O),entries:B},A)for(Q in K)Q in D||a(D,Q,K[Q]);else n(n.P+n.F*(p||L),l,K);return K}},function(d,r){d.exports=!0},function(d,r,t){var e=t(91),n=t(92),a=t(93),s=t(95),i=t(105),o="prototype",c=function(m,u,p){var y=m&c.F,O=m&c.G,x=m&c.S,v=m&c.P,T=m&c.B,l=m&c.W,h=O?n:n[u]||(n[u]={}),f=h[o],g=O?e:x?e[u]:(e[u]||{})[o],M,A,C;O&&(p=u);for(M in p)A=!y&&g&&g[M]!==void 0,!(A&&i(h,M))&&(C=A?g[M]:p[M],h[M]=O&&typeof g[M]!="function"?p[M]:T&&A?a(C,e):l&&g[M]==C?function(b){var E=function(L,D,I){if(this instanceof b){switch(arguments.length){case 0:return new b;case 1:return new b(L);case 2:return new b(L,D)}return new b(L,D,I)}return b.apply(this,arguments)};return E[o]=b[o],E}(C):v&&typeof C=="function"?a(Function.call,C):C,v&&((h.virtual||(h.virtual={}))[M]=C,m&c.R&&f&&!f[M]&&s(f,M,C)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,d.exports=c},function(d,r){var t=d.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=t)},function(d,r){var t=d.exports={version:"2.6.11"};typeof __e=="number"&&(__e=t)},function(d,r,t){var e=t(94);d.exports=function(n,a,s){if(e(n),a===void 0)return n;switch(s){case 1:return function(i){return n.call(a,i)};case 2:return function(i,o){return n.call(a,i,o)};case 3:return function(i,o,c){return n.call(a,i,o,c)}}return function(){return n.apply(a,arguments)}}},function(d,r){d.exports=function(t){if(typeof t!="function")throw TypeError(t+" is not a function!");return t}},function(d,r,t){var e=t(96),n=t(104);d.exports=t(100)?function(a,s,i){return e.f(a,s,n(1,i))}:function(a,s,i){return a[s]=i,a}},function(d,r,t){var e=t(97),n=t(99),a=t(103),s=Object.defineProperty;r.f=t(100)?Object.defineProperty:function(o,c,m){if(e(o),c=a(c,!0),e(m),n)try{return s(o,c,m)}catch{}if("get"in m||"set"in m)throw TypeError("Accessors not supported!");return"value"in m&&(o[c]=m.value),o}},function(d,r,t){var e=t(98);d.exports=function(n){if(!e(n))throw TypeError(n+" is not an object!");return n}},function(d,r){d.exports=function(t){return typeof t=="object"?t!==null:typeof t=="function"}},function(d,r,t){d.exports=!t(100)&&!t(101)(function(){return Object.defineProperty(t(102)("div"),"a",{get:function(){return 7}}).a!=7})},function(d,r,t){d.exports=!t(101)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(d,r){d.exports=function(t){try{return!!t()}catch{return!0}}},function(d,r,t){var e=t(98),n=t(91).document,a=e(n)&&e(n.createElement);d.exports=function(s){return a?n.createElement(s):{}}},function(d,r,t){var e=t(98);d.exports=function(n,a){if(!e(n))return n;var s,i;if(a&&typeof(s=n.toString)=="function"&&!e(i=s.call(n))||typeof(s=n.valueOf)=="function"&&!e(i=s.call(n))||!a&&typeof(s=n.toString)=="function"&&!e(i=s.call(n)))return i;throw TypeError("Can't convert object to primitive value")}},function(d,r){d.exports=function(t,e){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:e}}},function(d,r){var t={}.hasOwnProperty;d.exports=function(e,n){return t.call(e,n)}},function(d,r,t){d.exports=t(95)},function(d,r,t){var e=t(108),n=t(104),a=t(121),s={};t(95)(s,t(122)("iterator"),function(){return this}),d.exports=function(i,o,c){i.prototype=e(s,{next:n(1,c)}),a(i,o+" Iterator")}},function(d,r,t){var e=t(97),n=t(109),a=t(119),s=t(116)("IE_PROTO"),i=function(){},o="prototype",c=function(){var m=t(102)("iframe"),u=a.length,p="<",y=">",O;for(m.style.display="none",t(120).appendChild(m),m.src="javascript:",O=m.contentWindow.document,O.open(),O.write(p+"script"+y+"document.F=Object"+p+"/script"+y),O.close(),c=O.F;u--;)delete c[o][a[u]];return c()};d.exports=Object.create||function(u,p){var y;return u!==null?(i[o]=e(u),y=new i,i[o]=null,y[s]=u):y=c(),p===void 0?y:n(y,p)}},function(d,r,t){var e=t(96),n=t(97),a=t(110);d.exports=t(100)?Object.defineProperties:function(i,o){n(i);for(var c=a(o),m=c.length,u=0,p;m>u;)e.f(i,p=c[u++],o[p]);return i}},function(d,r,t){var e=t(111),n=t(119);d.exports=Object.keys||function(s){return e(s,n)}},function(d,r,t){var e=t(105),n=t(84),a=t(112)(!1),s=t(116)("IE_PROTO");d.exports=function(i,o){var c=n(i),m=0,u=[],p;for(p in c)p!=s&&e(c,p)&&u.push(p);for(;o.length>m;)e(c,p=o[m++])&&(~a(u,p)||u.push(p));return u}},function(d,r,t){var e=t(84),n=t(113),a=t(115);d.exports=function(s){return function(i,o,c){var m=e(i),u=n(m.length),p=a(c,u),y;if(s&&o!=o){for(;u>p;)if(y=m[p++],y!=y)return!0}else for(;u>p;p++)if((s||p in m)&&m[p]===o)return s||p||0;return!s&&-1}}},function(d,r,t){var e=t(114),n=Math.min;d.exports=function(a){return a>0?n(e(a),9007199254740991):0}},function(d,r){var t=Math.ceil,e=Math.floor;d.exports=function(n){return isNaN(n=+n)?0:(n>0?e:t)(n)}},function(d,r,t){var e=t(114),n=Math.max,a=Math.min;d.exports=function(s,i){return s=e(s),s<0?n(s+i,0):a(s,i)}},function(d,r,t){var e=t(117)("keys"),n=t(118);d.exports=function(a){return e[a]||(e[a]=n(a))}},function(d,r,t){var e=t(92),n=t(91),a="__core-js_shared__",s=n[a]||(n[a]={});(d.exports=function(i,o){return s[i]||(s[i]=o!==void 0?o:{})})("versions",[]).push({version:e.version,mode:t(89)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(d,r){var t=0,e=Math.random();d.exports=function(n){return"Symbol(".concat(n===void 0?"":n,")_",(++t+e).toString(36))}},function(d,r){d.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(d,r,t){var e=t(91).document;d.exports=e&&e.documentElement},function(d,r,t){var e=t(96).f,n=t(105),a=t(122)("toStringTag");d.exports=function(s,i,o){s&&!n(s=o?s:s.prototype,a)&&e(s,a,{configurable:!0,value:i})}},function(d,r,t){var e=t(117)("wks"),n=t(118),a=t(91).Symbol,s=typeof a=="function",i=d.exports=function(o){return e[o]||(e[o]=s&&a[o]||(s?a:n)("Symbol."+o))};i.store=e},function(d,r,t){var e=t(105),n=t(124),a=t(116)("IE_PROTO"),s=Object.prototype;d.exports=Object.getPrototypeOf||function(i){return i=n(i),e(i,a)?i[a]:typeof i.constructor=="function"&&i instanceof i.constructor?i.constructor.prototype:i instanceof Object?s:null}},function(d,r,t){var e=t(87);d.exports=function(n){return Object(e(n))}},function(d,r,t){var e=t(126)(!0);t(88)(String,"String",function(n){this._t=String(n),this._i=0},function(){var n=this._t,a=this._i,s;return a>=n.length?{value:void 0,done:!0}:(s=e(n,a),this._i+=s.length,{value:s,done:!1})})},function(d,r,t){var e=t(114),n=t(87);d.exports=function(a){return function(s,i){var o=String(n(s)),c=e(i),m=o.length,u,p;return c<0||c>=m?a?"":void 0:(u=o.charCodeAt(c),u<55296||u>56319||c+1===m||(p=o.charCodeAt(c+1))<56320||p>57343?a?o.charAt(c):u:a?o.slice(c,c+2):(u-55296<<10)+(p-56320)+65536)}}},function(d,r,t){var e=t(128),n=t(122)("iterator"),a=t(83);d.exports=t(92).isIterable=function(s){var i=Object(s);return i[n]!==void 0||"@@iterator"in i||a.hasOwnProperty(e(i))}},function(d,r,t){var e=t(86),n=t(122)("toStringTag"),a=e(function(){return arguments}())=="Arguments",s=function(i,o){try{return i[o]}catch{}};d.exports=function(i){var o,c,m;return i===void 0?"Undefined":i===null?"Null":typeof(c=s(o=Object(i),n))=="string"?c:a?e(o):(m=e(o))=="Object"&&typeof o.callee=="function"?"Arguments":m}},function(d,r,t){d.exports={default:t(130),__esModule:!0}},function(d,r,t){t(79),t(125),d.exports=t(131)},function(d,r,t){var e=t(97),n=t(132);d.exports=t(92).getIterator=function(a){var s=n(a);if(typeof s!="function")throw TypeError(a+" is not iterable!");return e(s.call(a))}},function(d,r,t){var e=t(128),n=t(122)("iterator"),a=t(83);d.exports=t(92).getIteratorMethod=function(s){if(s!=null)return s[n]||s["@@iterator"]||a[e(s)]}},function(d,r,t){r.__esModule=!0;var e=t(134),n=a(e);function a(s){return s&&s.__esModule?s:{default:s}}r.default=function(s){if(Array.isArray(s)){for(var i=0,o=Array(s.length);i<s.length;i++)o[i]=s[i];return o}else return(0,n.default)(s)}},function(d,r,t){d.exports={default:t(135),__esModule:!0}},function(d,r,t){t(125),t(136),d.exports=t(92).Array.from},function(d,r,t){var e=t(93),n=t(90),a=t(124),s=t(137),i=t(138),o=t(113),c=t(139),m=t(132);n(n.S+n.F*!t(140)(function(u){Array.from(u)}),"Array",{from:function(p){var y=a(p),O=typeof this=="function"?this:Array,x=arguments.length,v=x>1?arguments[1]:void 0,T=v!==void 0,l=0,h=m(y),f,g,M,A;if(T&&(v=e(v,x>2?arguments[2]:void 0,2)),h!=null&&!(O==Array&&i(h)))for(A=h.call(y),g=new O;!(M=A.next()).done;l++)c(g,l,T?s(A,v,[M.value,l],!0):M.value);else for(f=o(y.length),g=new O(f);f>l;l++)c(g,l,T?v(y[l],l):y[l]);return g.length=l,g}})},function(d,r,t){var e=t(97);d.exports=function(n,a,s,i){try{return i?a(e(s)[0],s[1]):a(s)}catch(c){var o=n.return;throw o!==void 0&&e(o.call(n)),c}}},function(d,r,t){var e=t(83),n=t(122)("iterator"),a=Array.prototype;d.exports=function(s){return s!==void 0&&(e.Array===s||a[n]===s)}},function(d,r,t){var e=t(96),n=t(104);d.exports=function(a,s,i){s in a?e.f(a,s,n(0,i)):a[s]=i}},function(d,r,t){var e=t(122)("iterator"),n=!1;try{var a=[7][e]();a.return=function(){n=!0},Array.from(a,function(){throw 2})}catch{}d.exports=function(s,i){if(!i&&!n)return!1;var o=!1;try{var c=[7],m=c[e]();m.next=function(){return{done:o=!0}},c[e]=function(){return m},s(c)}catch{}return o}},function(d,r,t){d.exports={default:t(142),__esModule:!0}},function(d,r,t){t(143),t(125),t(79),t(144),t(157),t(160),t(162),d.exports=t(92).Map},function(d,r){},function(d,r,t){var e=t(145),n=t(151),a="Map";d.exports=t(152)(a,function(s){return function(){return s(this,arguments.length>0?arguments[0]:void 0)}},{get:function(i){var o=e.getEntry(n(this,a),i);return o&&o.v},set:function(i,o){return e.def(n(this,a),i===0?0:i,o)}},e,!0)},function(d,r,t){var e=t(96).f,n=t(108),a=t(146),s=t(93),i=t(147),o=t(148),c=t(88),m=t(82),u=t(149),p=t(100),y=t(150).fastKey,O=t(151),x=p?"_s":"size",v=function(T,l){var h=y(l),f;if(h!=="F")return T._i[h];for(f=T._f;f;f=f.n)if(f.k==l)return f};d.exports={getConstructor:function(T,l,h,f){var g=T(function(M,A){i(M,g,l,"_i"),M._t=l,M._i=n(null),M._f=void 0,M._l=void 0,M[x]=0,A!=null&&o(A,h,M[f],M)});return a(g.prototype,{clear:function(){for(var A=O(this,l),C=A._i,b=A._f;b;b=b.n)b.r=!0,b.p&&(b.p=b.p.n=void 0),delete C[b.i];A._f=A._l=void 0,A[x]=0},delete:function(M){var A=O(this,l),C=v(A,M);if(C){var b=C.n,E=C.p;delete A._i[C.i],C.r=!0,E&&(E.n=b),b&&(b.p=E),A._f==C&&(A._f=b),A._l==C&&(A._l=E),A[x]--}return!!C},forEach:function(A){O(this,l);for(var C=s(A,arguments.length>1?arguments[1]:void 0,3),b;b=b?b.n:this._f;)for(C(b.v,b.k,this);b&&b.r;)b=b.p},has:function(A){return!!v(O(this,l),A)}}),p&&e(g.prototype,"size",{get:function(){return O(this,l)[x]}}),g},def:function(T,l,h){var f=v(T,l),g,M;return f?f.v=h:(T._l=f={i:M=y(l,!0),k:l,v:h,p:g=T._l,n:void 0,r:!1},T._f||(T._f=f),g&&(g.n=f),T[x]++,M!=="F"&&(T._i[M]=f)),T},getEntry:v,setStrong:function(T,l,h){c(T,l,function(f,g){this._t=O(f,l),this._k=g,this._l=void 0},function(){for(var f=this,g=f._k,M=f._l;M&&M.r;)M=M.p;return!f._t||!(f._l=M=M?M.n:f._t._f)?(f._t=void 0,m(1)):g=="keys"?m(0,M.k):g=="values"?m(0,M.v):m(0,[M.k,M.v])},h?"entries":"values",!h,!0),u(l)}}},function(d,r,t){var e=t(95);d.exports=function(n,a,s){for(var i in a)s&&n[i]?n[i]=a[i]:e(n,i,a[i]);return n}},function(d,r){d.exports=function(t,e,n,a){if(!(t instanceof e)||a!==void 0&&a in t)throw TypeError(n+": incorrect invocation!");return t}},function(d,u,t){var e=t(93),n=t(137),a=t(138),s=t(97),i=t(113),o=t(132),c={},m={},u=d.exports=function(p,y,O,x,v){var T=v?function(){return p}:o(p),l=e(O,x,y?2:1),h=0,f,g,M,A;if(typeof T!="function")throw TypeError(p+" is not iterable!");if(a(T)){for(f=i(p.length);f>h;h++)if(A=y?l(s(g=p[h])[0],g[1]):l(p[h]),A===c||A===m)return A}else for(M=T.call(p);!(g=M.next()).done;)if(A=n(M,l,g.value,y),A===c||A===m)return A};u.BREAK=c,u.RETURN=m},function(d,r,t){var e=t(91),n=t(92),a=t(96),s=t(100),i=t(122)("species");d.exports=function(o){var c=typeof n[o]=="function"?n[o]:e[o];s&&c&&!c[i]&&a.f(c,i,{configurable:!0,get:function(){return this}})}},function(d,r,t){var e=t(118)("meta"),n=t(98),a=t(105),s=t(96).f,i=0,o=Object.isExtensible||function(){return!0},c=!t(101)(function(){return o(Object.preventExtensions({}))}),m=function(x){s(x,e,{value:{i:"O"+ ++i,w:{}}})},u=function(x,v){if(!n(x))return typeof x=="symbol"?x:(typeof x=="string"?"S":"P")+x;if(!a(x,e)){if(!o(x))return"F";if(!v)return"E";m(x)}return x[e].i},p=function(x,v){if(!a(x,e)){if(!o(x))return!0;if(!v)return!1;m(x)}return x[e].w},y=function(x){return c&&O.NEED&&o(x)&&!a(x,e)&&m(x),x},O=d.exports={KEY:e,NEED:!1,fastKey:u,getWeak:p,onFreeze:y}},function(d,r,t){var e=t(98);d.exports=function(n,a){if(!e(n)||n._t!==a)throw TypeError("Incompatible receiver, "+a+" required!");return n}},function(d,r,t){var e=t(91),n=t(90),a=t(150),s=t(101),i=t(95),o=t(146),c=t(148),m=t(147),u=t(98),p=t(121),y=t(96).f,O=t(153)(0),x=t(100);d.exports=function(v,T,l,h,f,g){var M=e[v],A=M,C=f?"set":"add",b=A&&A.prototype,E={};return!x||typeof A!="function"||!(g||b.forEach&&!s(function(){new A().entries().next()}))?(A=h.getConstructor(T,v,f,C),o(A.prototype,l),a.NEED=!0):(A=T(function(L,D){m(L,A,v,"_c"),L._c=new M,D!=null&&c(D,f,L[C],L)}),O("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(L){var D=L=="add"||L=="set";L in b&&!(g&&L=="clear")&&i(A.prototype,L,function(I,R){if(m(this,A,L),!D&&g&&!u(I))return L=="get"?void 0:!1;var B=this._c[L](I===0?0:I,R);return D?this:B})}),g||y(A.prototype,"size",{get:function(){return this._c.size}})),p(A,v),E[v]=A,n(n.G+n.W+n.F,E),g||h.setStrong(A,v,f),A}},function(d,r,t){var e=t(93),n=t(85),a=t(124),s=t(113),i=t(154);d.exports=function(o,c){var m=o==1,u=o==2,p=o==3,y=o==4,O=o==6,x=o==5||O,v=c||i;return function(T,l,h){for(var f=a(T),g=n(f),M=e(l,h,3),A=s(g.length),C=0,b=m?v(T,A):u?v(T,0):void 0,E,L;A>C;C++)if((x||C in g)&&(E=g[C],L=M(E,C,f),o)){if(m)b[C]=L;else if(L)switch(o){case 3:return!0;case 5:return E;case 6:return C;case 2:b.push(E)}else if(y)return!1}return O?-1:p||y?y:b}}},function(d,r,t){var e=t(155);d.exports=function(n,a){return new(e(n))(a)}},function(d,r,t){var e=t(98),n=t(156),a=t(122)("species");d.exports=function(s){var i;return n(s)&&(i=s.constructor,typeof i=="function"&&(i===Array||n(i.prototype))&&(i=void 0),e(i)&&(i=i[a],i===null&&(i=void 0))),i===void 0?Array:i}},function(d,r,t){var e=t(86);d.exports=Array.isArray||function(a){return e(a)=="Array"}},function(d,r,t){var e=t(90);e(e.P+e.R,"Map",{toJSON:t(158)("Map")})},function(d,r,t){var e=t(128),n=t(159);d.exports=function(a){return function(){if(e(this)!=a)throw TypeError(a+"#toJSON isn't generic");return n(this)}}},function(d,r,t){var e=t(148);d.exports=function(n,a){var s=[];return e(n,!1,s.push,s,a),s}},function(d,r,t){t(161)("Map")},function(d,r,t){var e=t(90);d.exports=function(n){e(e.S,n,{of:function(){for(var s=arguments.length,i=new Array(s);s--;)i[s]=arguments[s];return new this(i)}})}},function(d,r,t){t(163)("Map")},function(d,r,t){var e=t(90),n=t(94),a=t(93),s=t(148);d.exports=function(i){e(e.S,i,{from:function(c){var m=arguments[1],u,p,y,O;return n(this),u=m!==void 0,u&&n(m),c==null?new this:(p=[],u?(y=0,O=a(m,arguments[2],2),s(c,!1,function(x){p.push(O(x,y++))})):s(c,!1,p.push,p),new this(p))}})}},function(d,r,t){d.exports={default:t(165),__esModule:!0}},function(d,r,t){t(166),d.exports=t(92).Object.assign},function(d,r,t){var e=t(90);e(e.S+e.F,"Object",{assign:t(167)})},function(d,r,t){var e=t(100),n=t(110),a=t(168),s=t(169),i=t(124),o=t(85),c=Object.assign;d.exports=!c||t(101)(function(){var m={},u={},p=Symbol(),y="abcdefghijklmnopqrst";return m[p]=7,y.split("").forEach(function(O){u[O]=O}),c({},m)[p]!=7||Object.keys(c({},u)).join("")!=y})?function(u,p){for(var y=i(u),O=arguments.length,x=1,v=a.f,T=s.f;O>x;)for(var l=o(arguments[x++]),h=v?n(l).concat(v(l)):n(l),f=h.length,g=0,M;f>g;)M=h[g++],(!e||T.call(l,M))&&(y[M]=l[M]);return y}:c},function(d,r){r.f=Object.getOwnPropertySymbols},function(d,r){r.f={}.propertyIsEnumerable},function(d,r,t){r.__esModule=!0,r.default=function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}},function(d,r,t){r.__esModule=!0;var e=t(172),n=a(e);function a(s){return s&&s.__esModule?s:{default:s}}r.default=function(){function s(i,o){for(var c=0;c<o.length;c++){var m=o[c];m.enumerable=m.enumerable||!1,m.configurable=!0,"value"in m&&(m.writable=!0),(0,n.default)(i,m.key,m)}}return function(i,o,c){return o&&s(i.prototype,o),c&&s(i,c),i}}()},function(d,r,t){d.exports={default:t(173),__esModule:!0}},function(d,r,t){t(174);var e=t(92).Object;d.exports=function(a,s,i){return e.defineProperty(a,s,i)}},function(d,r,t){var e=t(90);e(e.S+e.F*!t(100),"Object",{defineProperty:t(96).f})},function(d,r,t){d.exports={default:t(176),__esModule:!0}},function(d,r,t){t(177),t(143),t(184),t(185),d.exports=t(92).Symbol},function(d,r,t){var e=t(91),n=t(105),a=t(100),s=t(90),i=t(106),o=t(150).KEY,c=t(101),m=t(117),u=t(121),p=t(118),y=t(122),O=t(178),x=t(179),v=t(180),T=t(156),l=t(97),h=t(98),f=t(124),g=t(84),M=t(103),A=t(104),C=t(108),b=t(181),E=t(183),L=t(168),D=t(96),I=t(110),R=E.f,B=D.f,z=b.f,K=e.Symbol,Q=e.JSON,_=Q&&Q.stringify,j="prototype",G=y("_hidden"),X=y("toPrimitive"),Z={}.propertyIsEnumerable,tt=m("symbol-registry"),nt=m("symbols"),q=m("op-symbols"),dt=Object[j],ut=typeof K=="function"&&!!L.f,W=e.QObject,F=!W||!W[j]||!W[j].findChild,V=a&&c(function(){return C(B({},"a",{get:function(){return B(this,"a",{value:7}).a}})).a!=7})?function(at,ot,ft){var mt=R(dt,ot);mt&&delete dt[ot],B(at,ot,ft),mt&&at!==dt&&B(dt,ot,mt)}:B,J=function(at){var ot=nt[at]=C(K[j]);return ot._k=at,ot},N=ut&&typeof K.iterator=="symbol"?function(at){return typeof at=="symbol"}:function(at){return at instanceof K},$=function(ot,ft,mt){return ot===dt&&$(q,ft,mt),l(ot),ft=M(ft,!0),l(mt),n(nt,ft)?(mt.enumerable?(n(ot,G)&&ot[G][ft]&&(ot[G][ft]=!1),mt=C(mt,{enumerable:A(0,!1)})):(n(ot,G)||B(ot,G,A(1,{})),ot[G][ft]=!0),V(ot,ft,mt)):B(ot,ft,mt)},S=function(ot,ft){l(ot);for(var mt=v(ft=g(ft)),vt=0,pt=mt.length,xt;pt>vt;)$(ot,xt=mt[vt++],ft[xt]);return ot},P=function(ot,ft){return ft===void 0?C(ot):S(C(ot),ft)},w=function(ot){var ft=Z.call(this,ot=M(ot,!0));return this===dt&&n(nt,ot)&&!n(q,ot)?!1:ft||!n(this,ot)||!n(nt,ot)||n(this,G)&&this[G][ot]?ft:!0},U=function(ot,ft){if(ot=g(ot),ft=M(ft,!0),!(ot===dt&&n(nt,ft)&&!n(q,ft))){var mt=R(ot,ft);return mt&&n(nt,ft)&&!(n(ot,G)&&ot[G][ft])&&(mt.enumerable=!0),mt}},H=function(ot){for(var ft=z(g(ot)),mt=[],vt=0,pt;ft.length>vt;)!n(nt,pt=ft[vt++])&&pt!=G&&pt!=o&&mt.push(pt);return mt},Y=function(ot){for(var ft=ot===dt,mt=z(ft?q:g(ot)),vt=[],pt=0,xt;mt.length>pt;)n(nt,xt=mt[pt++])&&(!ft||n(dt,xt))&&vt.push(nt[xt]);return vt};ut||(K=function(){if(this instanceof K)throw TypeError("Symbol is not a constructor!");var ot=p(arguments.length>0?arguments[0]:void 0),ft=function(mt){this===dt&&ft.call(q,mt),n(this,G)&&n(this[G],ot)&&(this[G][ot]=!1),V(this,ot,A(1,mt))};return a&&F&&V(dt,ot,{configurable:!0,set:ft}),J(ot)},i(K[j],"toString",function(){return this._k}),E.f=U,D.f=$,t(182).f=b.f=H,t(169).f=w,L.f=Y,a&&!t(89)&&i(dt,"propertyIsEnumerable",w,!0),O.f=function(at){return J(y(at))}),s(s.G+s.W+s.F*!ut,{Symbol:K});for(var k="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),rt=0;k.length>rt;)y(k[rt++]);for(var it=I(y.store),ct=0;it.length>ct;)x(it[ct++]);s(s.S+s.F*!ut,"Symbol",{for:function(at){return n(tt,at+="")?tt[at]:tt[at]=K(at)},keyFor:function(ot){if(!N(ot))throw TypeError(ot+" is not a symbol!");for(var ft in tt)if(tt[ft]===ot)return ft},useSetter:function(){F=!0},useSimple:function(){F=!1}}),s(s.S+s.F*!ut,"Object",{create:P,defineProperty:$,defineProperties:S,getOwnPropertyDescriptor:U,getOwnPropertyNames:H,getOwnPropertySymbols:Y});var ht=c(function(){L.f(1)});s(s.S+s.F*ht,"Object",{getOwnPropertySymbols:function(ot){return L.f(f(ot))}}),Q&&s(s.S+s.F*(!ut||c(function(){var at=K();return _([at])!="[null]"||_({a:at})!="{}"||_(Object(at))!="{}"})),"JSON",{stringify:function(ot){for(var ft=[ot],mt=1,vt,pt;arguments.length>mt;)ft.push(arguments[mt++]);if(pt=vt=ft[1],!(!h(vt)&&ot===void 0||N(ot)))return T(vt)||(vt=function(xt,Rt){if(typeof pt=="function"&&(Rt=pt.call(this,xt,Rt)),!N(Rt))return Rt}),ft[1]=vt,_.apply(Q,ft)}}),K[j][X]||t(95)(K[j],X,K[j].valueOf),u(K,"Symbol"),u(Math,"Math",!0),u(e.JSON,"JSON",!0)},function(d,r,t){r.f=t(122)},function(d,r,t){var e=t(91),n=t(92),a=t(89),s=t(178),i=t(96).f;d.exports=function(o){var c=n.Symbol||(n.Symbol=a?{}:e.Symbol||{});o.charAt(0)!="_"&&!(o in c)&&i(c,o,{value:s.f(o)})}},function(d,r,t){var e=t(110),n=t(168),a=t(169);d.exports=function(s){var i=e(s),o=n.f;if(o)for(var c=o(s),m=a.f,u=0,p;c.length>u;)m.call(s,p=c[u++])&&i.push(p);return i}},function(d,r,t){var e=t(84),n=t(182).f,a={}.toString,s=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],i=function(o){try{return n(o)}catch{return s.slice()}};d.exports.f=function(c){return s&&a.call(c)=="[object Window]"?i(c):n(e(c))}},function(d,r,t){var e=t(111),n=t(119).concat("length","prototype");r.f=Object.getOwnPropertyNames||function(s){return e(s,n)}},function(d,r,t){var e=t(169),n=t(104),a=t(84),s=t(103),i=t(105),o=t(99),c=Object.getOwnPropertyDescriptor;r.f=t(100)?c:function(u,p){if(u=a(u),p=s(p,!0),o)try{return c(u,p)}catch{}if(i(u,p))return n(!e.f.call(u,p),u[p])}},function(d,r,t){t(179)("asyncIterator")},function(d,r,t){t(179)("observable")},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.createNowTime=e,r.formatDelay=n;function e(){var a=null;return Date.now?a=Date.now:a=function(){return new Date().getTime()},a}function n(a){return typeof a=="number"?a={delay:a}:"entropy"in a&&(a={delay:a.entropy,isEntropy:!0}),a}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.default={default:function(n,a,s,i,o){return typeof n=="number"&&typeof a=="number"?n+(s-i)/(o-i)*(a-n):s-i>o-s?a:n}}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.parseEasing=r.Easings=void 0;var e=t(76),n=c(e),a=t(133),s=c(a),i=t(141),o=c(i);function c(T){return T&&T.__esModule?T:{default:T}}var m=t(189),u=new o.default;function p(){for(var T=arguments.length,l=Array(T),h=0;h<T;h++)l[h]=arguments[h];var f=u.get(l);return f||(f=m.apply(void 0,l),u.set(l,f),f)}function y(T){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"end";return function(h,f){for(var g=1;g<f.length;g++){var M=f[g].offset;if(h<=M){var A=f[g-1].offset,C=M,b=(h-A)/(C-A),E=1/T,L=b/E;return l==="end"?L=Math.floor(L):L=Math.ceil(L),E*L*(C-A)+A}}return 0}}function O(T){var l=/^cubic-bezier\((.*)\)/,h=T.match(l);if(h){var f=h[1].trim();return f=f.split(",").map(function(E){return parseFloat(E.trim())}),p.apply(void 0,(0,s.default)(f))}if(l=/^steps\((.*)\)/,h=T.match(l),h){var g=h[1].trim();g=g.split(",").map(function(E){return E.trim()});var M=g,A=(0,n.default)(M,2),C=A[0],b=A[1];return y(parseInt(C,10),b)}return T}var x={linear:function(l){return l},ease:p(.25,.1,.25,1),"ease-in":p(.42,0,1,1),"ease-out":p(0,0,.58,1),"ease-in-out":p(.42,0,.58,1),"step-start":y(1,"start"),"step-end":y(1,"end")};function v(T){return typeof T=="string"?x[T]?T=x[T]:T=O(T):T.type==="cubic-bezier"?T=p.apply(void 0,(0,s.default)(T.value)):T.type==="steps"&&(T=y(T.step,T.pos)),T}r.Easings=x,r.parseEasing=v},function(d,r){var t=4,e=.001,n=1e-7,a=10,s=11,i=1/(s-1),o=typeof Float32Array=="function";function c(T,l){return 1-3*l+3*T}function m(T,l){return 3*l-6*T}function u(T){return 3*T}function p(T,l,h){return((c(l,h)*T+m(l,h))*T+u(l))*T}function y(T,l,h){return 3*c(l,h)*T*T+2*m(l,h)*T+u(l)}function O(T,l,h,f,g){var M,A,C=0;do A=l+(h-l)/2,M=p(A,f,g)-T,M>0?h=A:l=A;while(Math.abs(M)>n&&++C<a);return A}function x(T,l,h,f){for(var g=0;g<t;++g){var M=y(l,h,f);if(M===0)return l;var A=p(l,h,f)-T;l-=A/M}return l}function v(T){return T}d.exports=function(l,h,f,g){if(!(0<=l&&l<=1&&0<=f&&f<=1))throw new Error("bezier x values must be in [0, 1] range");if(l===h&&f===g)return v;for(var M=o?new Float32Array(s):new Array(s),A=0;A<s;++A)M[A]=p(A*i,l,f);function C(b){for(var E=0,L=1,D=s-1;L!==D&&M[L]<=b;++L)E+=i;--L;var I=(b-M[L])/(M[L+1]-M[L]),R=E+I*i,B=y(R,l,f);return B>=e?x(b,R,l,f):B===0?R:O(b,E,E+i,l,f)}return function(E){return E===0?0:E===1?1:p(C(E),h,g)}}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0});var e=t(191),n=h(e),a=t(204),s=h(a),i=t(164),o=h(i),c=t(170),m=h(c),u=t(171),p=h(u),y=t(175),O=h(y),x=t(75),v=h(x),T=t(208),l=t(188);function h(B){return B&&B.__esModule?B:{default:B}}var f=(0,O.default)("timing"),g=(0,O.default)("keyframes"),M=(0,O.default)("initState"),A=(0,O.default)("readyDefer"),C=(0,O.default)("finishedDefer"),b=(0,O.default)("effects"),E=(0,O.default)("activeReadyTimer"),L=(0,O.default)("activeFinishTimer"),D=(0,O.default)("removeDefer"),I={delay:0,endDelay:0,fill:"auto",iterations:1,playbackRate:1,direction:"normal",easing:"linear",effect:null},R=function(){function B(z,K,Q){var _=this;if((0,m.default)(this,B),Array.isArray(z)){var j=[z[0],z,K];z=j[0],K=j[1],Q=j[2]}typeof Q=="number"&&(Q={duration:Q}),this[f]=(0,o.default)({},I,Q),this[f].easing=(0,l.parseEasing)(this[f].easing),this[g]=(0,T.calculateFramesOffset)(K);var G=this[g][this[g].length-1];this[M]={},(0,s.default)(G).forEach(function(X){Object.prototype.hasOwnProperty.call(z,X)&&X!=="easing"&&X!=="offset"&&(_[M][X]=z[X])}),this[g]=this[g].map(function(X){return(0,o.default)({},_[M],X)}),this[g][0].offset!==0&&this[g].unshift((0,o.default)({},this[M],{offset:0})),G.offset<1&&this[g].push((0,o.default)({},G,{offset:1})),this[b]={},this.timeline=null}return(0,p.default)(B,[{key:"pause",value:function(){this.timeline.playbackRate=0}},{key:E,value:function(){var K=this;this[A]&&!this[A].timerID&&(this.timeline.currentTime<0?this[A].timerID=this.timeline.setTimeout(function(){K[A].resolve(),delete K[A]},{delay:-this.timeline.currentTime,heading:!1}):this[A].timerID=this.timeline.setTimeout(function(){K[A].resolve(),delete K[A]},{delay:0,isEntropy:!0}))}},{key:L,value:function(){var K=this,Q=this[f],_=Q.duration,j=Q.iterations,G=Q.endDelay,X=Math.ceil(_*j+G-this.timeline.currentTime)+1;this[C]&&!this[C].timerID&&(this[C].timerID=this.timeline.setTimeout(function(){K[C].resolve(),K[D](A),K[D](C)},{delay:X,heading:!1}),this[C].reverseTimerID=this.timeline.setTimeout(function(){K[C].resolve(),K[D](A),K[D](C),K.timeline=null},{delay:-this[f].delay-1,heading:!1}))}},{key:"play",value:function(){if(this.playState==="finished"&&this.cancel(),this.playState==="idle"){if(this.playbackRate<=0)return;var K=this[f],Q=K.delay,_=K.playbackRate,j=K.timeline;this.timeline=new v.default({originTime:Q,playbackRate:_},j),this[E](),this[L]()}else this.playState==="paused"&&(this.timeline.playbackRate=this.playbackRate,this[E]())}},{key:D,value:function(K){var Q=this[K],_=this.timeline;Q&&_&&(_.clearTimeout(Q.timerID),Q.reverseTimerID&&_.clearTimeout(Q.reverseTimerID)),delete this[K]}},{key:"cancel",value:function(){this[D](A),this[D](C),this.timeline=null}},{key:"finish",value:function(){this.timeline&&(this.timeline.currentTime=1/0/this.playbackRate),this[D](A),this[D](C)}},{key:"applyEffects",value:function(K){return(0,o.default)(this[b],K)}},{key:"playbackRate",get:function(){return this[f].playbackRate},set:function(K){this.timeline&&(this.timeline.playbackRate=K),this[f].playbackRate=K}},{key:"playState",get:function(){var K=this.timeline,Q=this[f],_=Q.iterations,j=Q.duration,G=Q.endDelay,X="running";if(K==null)X="idle";else if(K.paused)X="paused";else if(K.currentTime<0)X="pending";else{var Z=K.currentTime-_*j;Z>0&&Z<G?X="pending":Z>=G&&(X="finished")}return X}},{key:"progress",get:function(){if(!this.timeline)return 0;var K=this[f],Q=K.duration,_=K.iterations,j=this.timeline,G=this.playState,X=void 0;if(G==="idle")X=0;else if(G==="paused"&&j.currentTime<0)X=0;else if(G==="pending")if(j.currentTime<0)X=0;else{var Z=j.seekLocalTime(_*Q);X=(0,T.periodicity)(Z,Q)[1]/Q}else(G==="running"||G==="paused")&&(X=(0,T.periodicity)(j.currentTime,Q)[1]/Q);return G==="finished"&&(X=(0,T.periodicity)(_,1)[1]),X}},{key:"frame",get:function(){var K=this.playState,Q=this[M],_=this[f].fill;if(K==="idle")return Q;var j=this.timeline.currentTime,G=this[g].slice(0),X=(0,T.getProgress)(this.timeline,this[f],this.progress),Z=X.p,tt=X.inverted,nt=Q;return j<0&&K==="pending"?(_==="backwards"||_==="both")&&(nt=tt?G[G.length-1]:G[0]):(K!=="pending"&&K!=="finished"||_==="forwards"||_==="both")&&(nt=(0,T.getCurrentFrame)(this[f],G,this[b],Z)),nt}},{key:"timing",get:function(){return this[f]}},{key:"effects",get:function(){return this[b]}},{key:"baseTimeline",set:function(K){this[f].timeline=K},get:function(){return this[f].timeline}},{key:"ready",get:function(){return this[A]?this[A].promise:this.timeline&&this.timeline.currentTime>=0&&this.playState!=="paused"?n.default.resolve():(this[A]=(0,T.defer)(),this.timeline&&this[E](),this[A]?this[A].promise:n.default.resolve())}},{key:"finished",get:function(){return this.playState==="finished"?n.default.resolve():(this[C]||(this[C]=(0,T.defer)(),this.timeline&&this[L]()),this[C].promise)}}]),B}();r.default=R},function(d,r,t){d.exports={default:t(192),__esModule:!0}},function(d,r,t){t(143),t(125),t(79),t(193),t(202),t(203),d.exports=t(92).Promise},function(d,r,t){var e=t(89),n=t(91),a=t(93),s=t(128),i=t(90),o=t(98),c=t(94),m=t(147),u=t(148),p=t(194),y=t(195).set,O=t(197)(),x=t(198),v=t(199),T=t(200),l=t(201),h="Promise",f=n.TypeError,g=n.process,M=g&&g.versions,A=M&&M.v8||"",C=n[h],b=s(g)=="process",E=function(){},L,D,I,R,B=D=x.f,z=!!function(){try{var tt=C.resolve(1),nt=(tt.constructor={})[t(122)("species")]=function(q){q(E,E)};return(b||typeof PromiseRejectionEvent=="function")&&tt.then(E)instanceof nt&&A.indexOf("6.6")!==0&&T.indexOf("Chrome/66")===-1}catch{}}(),K=function(tt){var nt;return o(tt)&&typeof(nt=tt.then)=="function"?nt:!1},Q=function(tt,nt){if(!tt._n){tt._n=!0;var q=tt._c;O(function(){for(var dt=tt._v,ut=tt._s==1,W=0,F=function(V){var J=ut?V.ok:V.fail,N=V.resolve,$=V.reject,S=V.domain,P,w,U;try{J?(ut||(tt._h==2&&G(tt),tt._h=1),J===!0?P=dt:(S&&S.enter(),P=J(dt),S&&(S.exit(),U=!0)),P===V.promise?$(f("Promise-chain cycle")):(w=K(P))?w.call(P,N,$):N(P)):$(dt)}catch(H){S&&!U&&S.exit(),$(H)}};q.length>W;)F(q[W++]);tt._c=[],tt._n=!1,nt&&!tt._h&&_(tt)})}},_=function(tt){y.call(n,function(){var nt=tt._v,q=j(tt),dt,ut,W;if(q&&(dt=v(function(){b?g.emit("unhandledRejection",nt,tt):(ut=n.onunhandledrejection)?ut({promise:tt,reason:nt}):(W=n.console)&&W.error&&W.error("Unhandled promise rejection",nt)}),tt._h=b||j(tt)?2:1),tt._a=void 0,q&&dt.e)throw dt.v})},j=function(tt){return tt._h!==1&&(tt._a||tt._c).length===0},G=function(tt){y.call(n,function(){var nt;b?g.emit("rejectionHandled",tt):(nt=n.onrejectionhandled)&&nt({promise:tt,reason:tt._v})})},X=function(tt){var nt=this;nt._d||(nt._d=!0,nt=nt._w||nt,nt._v=tt,nt._s=2,nt._a||(nt._a=nt._c.slice()),Q(nt,!0))},Z=function(tt){var nt=this,q;if(!nt._d){nt._d=!0,nt=nt._w||nt;try{if(nt===tt)throw f("Promise can't be resolved itself");(q=K(tt))?O(function(){var dt={_w:nt,_d:!1};try{q.call(tt,a(Z,dt,1),a(X,dt,1))}catch(ut){X.call(dt,ut)}}):(nt._v=tt,nt._s=1,Q(nt,!1))}catch(dt){X.call({_w:nt,_d:!1},dt)}}};z||(C=function(nt){m(this,C,h,"_h"),c(nt),L.call(this);try{nt(a(Z,this,1),a(X,this,1))}catch(q){X.call(this,q)}},L=function(nt){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},L.prototype=t(146)(C.prototype,{then:function(nt,q){var dt=B(p(this,C));return dt.ok=typeof nt=="function"?nt:!0,dt.fail=typeof q=="function"&&q,dt.domain=b?g.domain:void 0,this._c.push(dt),this._a&&this._a.push(dt),this._s&&Q(this,!1),dt.promise},catch:function(tt){return this.then(void 0,tt)}}),I=function(){var tt=new L;this.promise=tt,this.resolve=a(Z,tt,1),this.reject=a(X,tt,1)},x.f=B=function(tt){return tt===C||tt===R?new I(tt):D(tt)}),i(i.G+i.W+i.F*!z,{Promise:C}),t(121)(C,h),t(149)(h),R=t(92)[h],i(i.S+i.F*!z,h,{reject:function(nt){var q=B(this),dt=q.reject;return dt(nt),q.promise}}),i(i.S+i.F*(e||!z),h,{resolve:function(nt){return l(e&&this===R?C:this,nt)}}),i(i.S+i.F*!(z&&t(140)(function(tt){C.all(tt).catch(E)})),h,{all:function(nt){var q=this,dt=B(q),ut=dt.resolve,W=dt.reject,F=v(function(){var V=[],J=0,N=1;u(nt,!1,function($){var S=J++,P=!1;V.push(void 0),N++,q.resolve($).then(function(w){P||(P=!0,V[S]=w,--N||ut(V))},W)}),--N||ut(V)});return F.e&&W(F.v),dt.promise},race:function(nt){var q=this,dt=B(q),ut=dt.reject,W=v(function(){u(nt,!1,function(F){q.resolve(F).then(dt.resolve,ut)})});return W.e&&ut(W.v),dt.promise}})},function(d,r,t){var e=t(97),n=t(94),a=t(122)("species");d.exports=function(s,i){var o=e(s).constructor,c;return o===void 0||(c=e(o)[a])==null?i:n(c)}},function(d,r,t){var e=t(93),n=t(196),a=t(120),s=t(102),i=t(91),o=i.process,c=i.setImmediate,m=i.clearImmediate,u=i.MessageChannel,p=i.Dispatch,y=0,O={},x="onreadystatechange",v,T,l,h=function(){var g=+this;if(O.hasOwnProperty(g)){var M=O[g];delete O[g],M()}},f=function(g){h.call(g.data)};(!c||!m)&&(c=function(M){for(var A=[],C=1;arguments.length>C;)A.push(arguments[C++]);return O[++y]=function(){n(typeof M=="function"?M:Function(M),A)},v(y),y},m=function(M){delete O[M]},t(86)(o)=="process"?v=function(g){o.nextTick(e(h,g,1))}:p&&p.now?v=function(g){p.now(e(h,g,1))}:u?(T=new u,l=T.port2,T.port1.onmessage=f,v=e(l.postMessage,l,1)):i.addEventListener&&typeof postMessage=="function"&&!i.importScripts?(v=function(g){i.postMessage(g+"","*")},i.addEventListener("message",f,!1)):x in s("script")?v=function(g){a.appendChild(s("script"))[x]=function(){a.removeChild(this),h.call(g)}}:v=function(g){setTimeout(e(h,g,1),0)}),d.exports={set:c,clear:m}},function(d,r){d.exports=function(t,e,n){var a=n===void 0;switch(e.length){case 0:return a?t():t.call(n);case 1:return a?t(e[0]):t.call(n,e[0]);case 2:return a?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return a?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return a?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(d,r,t){var e=t(91),n=t(195).set,a=e.MutationObserver||e.WebKitMutationObserver,s=e.process,i=e.Promise,o=t(86)(s)=="process";d.exports=function(){var c,m,u,p=function(){var v,T;for(o&&(v=s.domain)&&v.exit();c;){T=c.fn,c=c.next;try{T()}catch(l){throw c?u():m=void 0,l}}m=void 0,v&&v.enter()};if(o)u=function(){s.nextTick(p)};else if(a&&!(e.navigator&&e.navigator.standalone)){var y=!0,O=document.createTextNode("");new a(p).observe(O,{characterData:!0}),u=function(){O.data=y=!y}}else if(i&&i.resolve){var x=i.resolve(void 0);u=function(){x.then(p)}}else u=function(){n.call(e,p)};return function(v){var T={fn:v,next:void 0};m&&(m.next=T),c||(c=T,u()),m=T}}},function(d,r,t){var e=t(94);function n(a){var s,i;this.promise=new a(function(o,c){if(s!==void 0||i!==void 0)throw TypeError("Bad Promise constructor");s=o,i=c}),this.resolve=e(s),this.reject=e(i)}d.exports.f=function(a){return new n(a)}},function(d,r){d.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},function(d,r,t){var e=t(91),n=e.navigator;d.exports=n&&n.userAgent||""},function(d,r,t){var e=t(97),n=t(98),a=t(198);d.exports=function(s,i){if(e(s),n(i)&&i.constructor===s)return i;var o=a.f(s),c=o.resolve;return c(i),o.promise}},function(d,r,t){var e=t(90),n=t(92),a=t(91),s=t(194),i=t(201);e(e.P+e.R,"Promise",{finally:function(o){var c=s(this,n.Promise||a.Promise),m=typeof o=="function";return this.then(m?function(u){return i(c,o()).then(function(){return u})}:o,m?function(u){return i(c,o()).then(function(){throw u})}:o)}})},function(d,r,t){var e=t(90),n=t(198),a=t(199);e(e.S,"Promise",{try:function(s){var i=n.f(this),o=a(s);return(o.e?i.reject:i.resolve)(o.v),i.promise}})},function(d,r,t){d.exports={default:t(205),__esModule:!0}},function(d,r,t){t(206),d.exports=t(92).Object.keys},function(d,r,t){var e=t(124),n=t(110);t(207)("keys",function(){return function(s){return n(e(s))}})},function(d,r,t){var e=t(90),n=t(92),a=t(101);d.exports=function(s,i){var o=(n.Object||{})[s]||Object[s],c={};c[s]=i(o),e(e.S+e.F*a(function(){o(1)}),"Object",c)}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0});var e=t(76),n=O(e),a=t(209),s=O(a),i=t(164),o=O(i),c=t(191),m=O(c);r.defer=x,r.periodicity=v,r.calculateFramesOffset=T,r.getProgress=l,r.getCurrentFrame=f;var u=t(188),p=t(187),y=O(p);function O(g){return g&&g.__esModule?g:{default:g}}function x(){var g={};return g.promise=new m.default(function(M,A){g.resolve=M,g.reject=A}),g}function v(g,M){var A=Math.floor(g/M),C=g-A*M;return C===0&&A>0&&(C=M,A--),[A,C]}function T(g){g=g.slice(0);var M=g[0],A=g[g.length-1];A.offset=A.offset||1,M.offset=M.offset||0;for(var C=0,b=-1,E=0;E<g.length;E++){var L=g[E];if(L.offset!=null){var D=E-b;if(D>1)for(var I=(L.offset-C)/D,R=0;R<D-1;R++)g[b+R+1].offset=C+I*(R+1);C=L.offset,b=E}if(L.easing!=null&&(L.easing=(0,u.parseEasing)(L.easing)),E>0){var B=g[E].easing!=null;g[E]=(0,o.default)({},g[E-1],g[E]),B||delete g[E].easing}}return g}function l(g,M,A){var C=g.currentTime,b=M.direction,E=M.duration,L=!1;if(b==="reverse")A=1-A,L=!0;else if(b==="alternate"||b==="alternate-reverse"){var D=Math.floor(C/E);A===1&&D--,D%2^b==="alternate-reverse"&&(A=1-A,L=!0)}return{p:A,inverted:L}}function h(g,M,A,C){var b={};return(0,s.default)(M).forEach(function(E){var L=(0,n.default)(E,2),D=L[0],I=L[1];if(D!=="offset"&&D!=="easing"){var R=A[D]||A.default,B=R(g[D],I,C,g.offset,M.offset);B!=null&&(b[D]=B)}}),b}function f(g,M,A,C){var b=g.easing,E=g.effect;E||(A=(0,o.default)({},y.default,A));var L={};C=b(C,M);for(var D=1;D<M.length;D++){var I=M[D],R=I.offset;if(R>=C||D===M.length-1){var B=M[D-1],z=B.offset,K=B.easing,Q=C;if(K){var _=R-z;Q=K((C-z)/_)*_+z}E?L=E(B,I,Q,z,R):L=h(B,I,A,Q);break}}return L}},function(d,r,t){d.exports={default:t(210),__esModule:!0}},function(d,r,t){t(211),d.exports=t(92).Object.entries},function(d,r,t){var e=t(90),n=t(212)(!0);e(e.S,"Object",{entries:function(s){return n(s)}})},function(d,r,t){var e=t(100),n=t(110),a=t(84),s=t(169).f;d.exports=function(i){return function(o){for(var c=a(o),m=n(c),u=m.length,p=0,y=[],O;u>p;)O=m[p++],(!e||s.call(c,O))&&y.push(i?[O,c[O]]:c[O]);return y}}},function(d,r,t){t.r(r),t(1).glMatrix.setMatrixArrayType(Array);const e=new Map;function n(s,i={},o=[]){s=s.toLowerCase();const c=e.get(s);if(!c)throw new TypeError(`Invalid node: ${s}`);const m=new c(i);return o.forEach(u=>{m.appendChild(u)}),m}const a={registerNode(s,i,o=100){if(i=i.toLowerCase(),e.has(i))throw new TypeError(`Cannot registerNode, ${i} has been taken.`);e.set(i,s),Object.defineProperties(s.prototype,{nodeType:{value:o},tagName:{value:i.toUpperCase()},nodeName:{value:i},ownerDocument:{value:a},namespaceURI:{value:`http://spritejs.com/${i}`}})},createElement:n,createElementNS(s,i){return n(i)},isSpriteNode(s){return e.has(s.toLowerCase())}};r.default=a},function(d,r,t){t.r(r),t.d(r,"default",function(){return i}),t(1).glMatrix.setMatrixArrayType(Array);const e=Symbol("type"),n=Symbol("bubbles"),a=Symbol("originalEvent"),s=Symbol("detail");class i{constructor(c,{bubbles:m=null}={}){if(typeof c=="string"?(this[e]=c,this[n]=!!m):(this[e]=c.type,this[a]=c,this[n]=m!=null?!!m:!!c.bubbles,c.detail&&(this[s]=c.detail)),!this[e])throw new TypeError("Invalid event type.");this.cancelBubble=!1}setOriginalEvent(c){this[a]=c}get originalEvent(){return this[a]}get type(){return this[e]}get bubbles(){return this[n]}get detail(){return this[s]}stopPropagation(){this.cancelBubble=!0}}},function(d,r,t){t.r(r),t.d(r,"parseFilterString",function(){return n}),t.d(r,"applyFilters",function(){return a});var e=t(72);t(1).glMatrix.setMatrixArrayType(Array);function n(s){if(s=s.trim(),!s||s==="none")return null;const i=/^(?:(url|blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)\(([^()]*(?:\(.*\))*[^()]*)\))+$/i,o=s.match(/(?:(url|blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)\(([^()]*(?:\(.*\))*[^()]*)\))+?/ig),c=[];return o&&o.forEach(m=>{const u=m.match(i);if(!u)throw new TypeError("Invalid fitler string.");let[,p,y]=u;p=p.toLowerCase(),y=y.trim().match(/([^( )]+|([^( )]+\(.*\)))(?=\s|$)/g).map((O,x)=>{let v;return p==="url"||p==="drop-shadow"&&x===3?v=O:v=Object(e.toNumber)(O),/%$/.test(O)&&(v/=100),v}),c.push({type:p,args:y})}),c}function a(s,i){s.clearFilter(),i&&i.forEach(({type:o,args:c})=>{let m=o;m==="drop-shadow"?m="dropShadow":m==="hue-rotate"&&(m="hueRotate"),s[m](...c)})}},function(d,r,t){t.r(r),t.d(r,"default",function(){return e}),t(1).glMatrix.setMatrixArrayType(Array);function e(n,a){if(!a)return;const s=n.getListeners("beforerender"),i=n.getListeners("afterrender");s.length&&!a.beforeRender?a.beforeRender=o=>{n.dispatchEvent({type:"beforerender",detail:{context:o}})}:s.length||(a.beforeRender=null),i.length&&!a.afterRender?a.afterRender=o=>{n.dispatchEvent({type:"afterrender",detail:{context:o}})}:i.length||(a.afterRender=null)}},function(d,r,t){t.r(r),t.d(r,"default",function(){return c});var e=t(12),n=t(218),a=t(70),s=t(213);t(1).glMatrix.setMatrixArrayType(Array);const i=Symbol("amount"),o=Symbol("meshCloud");class c extends a.default{constructor(u,p=1){super(),this.meshNode=u,u.connect(this),this[i]=p,this[o]=null}get meshCloud(){const u=this.meshNode,p=this[i];return!this[o]&&u.mesh&&(this[o]=new e.MeshCloud(u.mesh,p)),this[o]}get isVisible(){return!!this.meshNode&&this.meshNode.isVisible}get amount(){return this[i]}set amount(u){this[i]=u,this[o]&&(this[o].amount=u)}brightness(u,p){this.meshCloud&&(this.meshCloud.brightness(u,p),this.forceUpdate())}contrast(u,p){this.meshCloud&&(this.meshCloud.contrast(u,p),this.forceUpdate())}delete(u){this.meshCloud&&(this.meshCloud.delete(u),this[i]--,this.forceUpdate())}draw(u=[]){if(super.draw(u),this.meshCloud){if(this.program){this.meshCloud.setProgram(this.program);const p=this.shaderAttrs;p&&Object.entries(p).forEach(([O,x])=>{this.meshCloud.mesh.setAttribute(O,x)});const y=this.uniforms;if(this.uniforms){const O={};Object.entries(y).forEach(([x,v])=>{typeof v=="function"&&(v=v(this,x)),O[x]=v}),this.meshCloud.mesh.setUniforms(O)}}this.meshNode.textureImage&&Object(n.drawTexture)(this.meshNode,this.meshNode.mesh),u.push(this.meshCloud)}return u}getTransform(u){if(this.meshCloud)return this.meshCloud.getTransform(u)}grayscale(u,p){this.meshCloud&&(this.meshCloud.grayscale(u,p),this.forceUpdate())}hueRotate(u,p){this.meshCloud&&(this.meshCloud.hueRotate(u,p),this.forceUpdate())}invert(u,p){this.meshCloud&&(this.meshCloud.invert(u,p),this.forceUpdate())}isPointCollision(u,p){if(!this.meshCloud)return!1;const y=this.attributes.pointerEvents;if(y==="none"||y!=="all"&&!this.isVisible)return!1;let O="both";y==="visibleFill"&&(O="fill"),y==="visibleStroke"&&(O="stroke");for(let x=0;x<this[i];x++)if(!this.meshCloud.isPointCollision(x,[u,p],O))return!1;return!0}setOpacity(u,p){this.meshCloud&&(this.meshCloud.opacity(u,p),this.forceUpdate())}rotate(u,p,[y,O]=[0,0]){const x=Math.PI*p/180;if(this.meshCloud){const{x:v,y:T}=this.meshNode.attributes;this.meshCloud.rotate(u,x,[y+v,O+T]),this.forceUpdate()}}saturate(u,p){this.meshCloud&&(this.meshCloud.saturate(u,p),this.forceUpdate())}scale(u,[p,y=p],[O,x]=[0,0]){if(this.meshCloud){const{x:v,y:T}=this.meshNode.attributes,l=1e-5;Math.abs(p)<l&&(p=1/p>0?l:-l),Math.abs(y)<l&&(y=1/y>0?l:-l),this.meshCloud.scale(u,[p,y],[O+v,x+T]),this.forceUpdate()}}setColorTransform(u,p){this.meshCloud&&(this.meshCloud.setColorTransform(u,p),this.forceUpdate())}setFillColor(u,p){this.meshCloud&&(Array.isArray(p)&&(p=[...p],p[0]/=255,p[1]/=255,p[2]/=255),this.meshCloud.setFillColor(u,p),this.forceUpdate())}sepia(u,p){this.meshCloud&&(this.meshCloud.sepia(u,p),this.forceUpdate())}setResolution({width:u,height:p}){super.setResolution({width:u,height:p}),this.meshNode.setResolution({width:u,height:p})}setStrokeColor(u,p){this.meshCloud&&(Array.isArray(p)&&(p=[...p],p[0]/=255,p[1]/=255,p[2]/=255),this.meshCloud.setStrokeColor(u,p),this.forceUpdate())}setTransform(u,p){this.meshCloud&&(this.meshCloud.setTransform(u,p),this.forceUpdate())}skew(u,[p,y=p],[O,x]=[0,0]){if(this.meshCloud){const{x:v,y:T}=this.meshNode.attributes;this.meshCloud.skew(u,[p,y],[O+v,x+T]),this.forceUpdate()}}transform(u,p){this.meshCloud&&(this.meshCloud.transform(u,p),this.forceUpdate())}transformColor(u,p){this.meshCloud&&(this.meshCloud.transformColor(u,p),this.forceUpdate())}translate(u,[p,y]){this.meshCloud&&(this.meshCloud.translate(u,[p,y]),this.forceUpdate())}updateMesh(){this[o]&&(this[o].mesh=this.meshNode.mesh,this.forceUpdate())}}s.default.registerNode(c,"cloud")},function(d,r,t){t.r(r),t.d(r,"loadTexture",function(){return s}),t.d(r,"applyTexture",function(){return i}),t.d(r,"createTexture",function(){return c}),t.d(r,"deleteTexture",function(){return m}),t.d(r,"drawTexture",function(){return p}),t.d(r,"loadFrames",function(){return y});var e=t(12),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const a={};function s(O,x){if(a[O])return a[O];const v=e.ENV.loadImage(O,{alias:x,useImageBitmap:!1});return v??O}async function i(O,x,v){let T=x;if(typeof x=="string"&&(T=s(x)),T&&typeof T.then=="function"&&(T=await T),x===O.attributes.texture){T&&T.image&&(T.sourceRect&&(O.attributes.sourceRect=T.sourceRect),O.textureImageRotated=!!T.rotated,T=T.image);const{width:l,height:h,textureRect:f}=O.attributes,g=O.textureImage;O.textureImage=T,v&&g!==T&&!f&&(l==null||h==null)&&O.updateContours(),O.forceUpdate()}return T}const o=Symbol("textureMap");function c(O,x){if(x[o]=x[o]||new Map,x[o].has(O))return x[o].get(O);const v=x.createTexture(O);return!/^blob:/.test(O.src)&&typeof O.getContext!="function"&&x[o].set(O,v),v}function m(O,x){if(x[o]&&x[o].has(O)){const v=x[o].get(O);return x.deleteTexture(v),x[o].delete(O),!0}return!1}const u=Symbol("textureContext");function p(O,x){const v=O.textureImage instanceof String?String(O.textureImage):O.textureImage,T=O.textureImageRotated,l=x.texture,h=O.renderer;if(v){const f=O.originalContentRect;let g=O.attributes.textureRect;const M=O.attributes.textureRepeat,A=O.attributes.sourceRect;if(!l||O[u]&&O[u]!==h||l.image!==v||l.options.repeat!==M||!Object(n.compareValue)(l.options.rect,g)||!Object(n.compareValue)(l.options.srcRect,A)){const C=c(v,h);g?(g[0]+=f[0],g[1]+=f[1]):g=f;let b=null;l&&!h[o].has(l.image)&&(!l.options||!l.options.hidden)&&(b=x.uniforms.u_texSampler),x.setTexture(C,{rect:g,repeat:M,srcRect:A,rotated:T}),b&&b.delete&&b.delete(),O[u]=h}}else if(l){let f=null;!h[o].has(l.image)&&(!l.options||!l.options.hidden)&&(f=x.uniforms.u_texSampler),x.setTexture(null),f&&f.delete&&f.delete()}}async function y(O,x){typeof x=="string"&&(x=await(await fetch(x,{method:"GET",mode:"cors",cache:"default"})).json());const v=await s(O),T=x.frames;return Object.entries(T).forEach(([l,h])=>{const{x:f,y:g,w:M,h:A}=h.frame;let C=[f,g,M,A];const b=h.rotated;b&&(C=[C[0],C[1],C[3],C[2]]),a[l]={image:v,sourceRect:C,rotated:b}}),v}},function(d,r,t){t.r(r),t.d(r,"default",function(){return y});var e=t(1),n=t(12),a=t(70),s=t(220),i=t(221),o=t(222),c=t(213),m=t(223);t(1).glMatrix.setMatrixArrayType(Array);function u(O,x,v){return x in O?Object.defineProperty(O,x,{value:v,enumerable:!0,configurable:!0,writable:!0}):O[x]=v,O}const p=Symbol("mesh");class y extends a.default{constructor(x={}){super(x)}get borderSize(){const{paddingTop:x,paddingRight:v,paddingBottom:T,paddingLeft:l,borderWidth:h}=this.attributes,[f,g]=this.contentSize;return[l+f+v+h,x+g+T+h]}get clientSize(){const{paddingTop:x,paddingRight:v,paddingBottom:T,paddingLeft:l}=this.attributes,[h,f]=this.contentSize;return[l+h+v,x+f+T]}get contentSize(){let{width:x,height:v,boxSizing:T,paddingTop:l,paddingRight:h,paddingBottom:f,paddingLeft:g}=this.attributes;if(x=x||0,v=v||0,T==="border-box"){const M=2*this.attributes.borderWidth;x-=M+h+g,v-=M+l+f,x=Math.max(0,x),v=Math.max(0,v)}return[x,v]}get hasBorder(){return this.attributes.borderWidth>0}get isVisible(){const[x,v]=this.borderSize;return x>0&&v>0}get mesh(){if(this.attributes.display==="none")return null;const x=this.clientBox;if(x){let v=this[p];if(v)v.box!==x&&(v.contours=x.contours,v.box=x);else{v=new n.Mesh2D(x),v.box=x;const l=this.attributes.bgcolor;if(Object(i.setFillColor)(v,{color:l}),this.hasBorder){const{borderColor:f,borderWidth:g,borderDash:M,borderDashOffset:A}=this.attributes;Object(i.setStrokeColor)(v,{color:f,lineWidth:g,lineDash:M,lineDashOffset:A})}this[p]=v;const h=this.attributes.clipPath;h&&this[p].setClipPath(h)}const T=this.opacity;return v.getOpacity()!==T&&v.setOpacity(T),v.setTransform(...this.renderMatrix),v}return null}get offsetSize(){const{paddingTop:x,paddingRight:v,paddingBottom:T,paddingLeft:l,borderWidth:h}=this.attributes,[f,g]=this.contentSize,M=2*h;return[l+f+v+M,x+g+T+M]}get originalClientRect(){if(this.mesh){const x=this.mesh.boundingBox;return[x[0][0],x[0][1],x[1][0]-x[0][0],x[1][1]-x[0][1]]}return[0,0,0,0]}get originalContentRect(){const[x,v,T,l]=this.originalClientRect,h=this.attributes.padding;return[x+h[0],v+h[1],T-h[0]-h[2],l-h[1]-h[3]]}getBoundingClientRect(){let x=this.renderMatrix;this.layer&&this.layer.layerTransformInvert&&(x=e.mat2d.multiply(Array.of(0,0,0,0,0,0),this.layer.transformMatrix,x));let v=null;if(this.mesh){v=[...this.mesh.boundingBox];const T=this.attributes.borderWidth;T&&(v[0]=[v[0][0]-T,v[0][1]-T],v[1]=[v[1][0]+T,v[1][1]+T])}return Object(m.default)(v,x)}onPropertyChange(x,v,T){if(super.onPropertyChange(x,v,T),(x==="anchorX"||x==="anchorY"||x==="boxSizing"||x==="width"||x==="height"||x==="borderWidth"||x==="paddingLeft"||x==="paddingRight"||x==="paddingTop"||x==="paddingBottom"||/^border(TopLeft|TopRight|BottomRight|BottomLeft)Radius$/.test(x))&&this.updateContours(),this[p]&&x==="clipPath"&&this[p].setClipPath(v),this[p]&&x==="bgcolor"&&Object(i.setFillColor)(this[p],{color:v}),this[p]&&(x==="borderColor"||x==="borderWidth"||x==="borderDash"||x==="borderDashOffset")){const{borderColor:l,borderWidth:h,borderDash:f,borderDashOffset:g}=this.attributes;Object(i.setStrokeColor)(this[p],{color:l,lineWidth:h,lineDash:h?f:0,lineDashOffset:g})}}updateContours(){const{anchorX:x,anchorY:v,borderWidth:T,borderRadius:l}=this.attributes,[h,f]=this.borderSize,g=this.offsetSize,M=.5*T,A=-x*g[0]+M,C=-v*g[1]+M;this.clientBox=new n.Figure2D,Object(o.createRadiusBox)(this.clientBox,[A,C,h,f],l)}}u(y,"Attr",s.default),c.default.registerNode(y,"block")},function(d,r,t){t.r(r),t.d(r,"default",function(){return m});var e=t(71),n=t(72),a=t(221);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttribute"),i=Symbol.for("spritejs_getAttribute"),o=Symbol.for("spritejs_setAttributeDefault"),c=Symbol.for("spritejs_declareAlias");class m extends e.default{constructor(p){super(p),this[o]({anchorX:0,anchorY:0,width:void 0,height:void 0,borderWidth:0,borderColor:"rgba(0,0,0,1)",borderDash:void 0,borderDashOffset:0,borderTopLeftRadius:[0,0],borderTopRightRadius:[0,0],borderBottomRightRadius:[0,0],borderBottomLeftRadius:[0,0],bgcolor:"rgba(0,0,0,0)",paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0,boxSizing:"content-box",clipPath:void 0}),this[c]("anchor","size","border","borderRadius","padding")}get anchorX(){return this[i]("anchorX")}set anchorX(p){this[s]("anchorX",Object(n.toNumber)(p))}get anchorY(){return this[i]("anchorY")}set anchorY(p){this[s]("anchorY",Object(n.toNumber)(p))}get anchor(){return[this.anchorX,this.anchorY]}set anchor(p){p=Object(n.toArray)(p),Array.isArray(p)||(p=[p,p]),this.anchorX=p[0],this.anchorY=p[1]}get width(){return this[i]("width")}set width(p){this[s]("width",Object(n.toNumber)(p))}get height(){return this[i]("height")}set height(p){this[s]("height",Object(n.toNumber)(p))}get size(){return[this.width,this.height]}set size(p){p=Object(n.toArray)(p),Array.isArray(p)||(p=[p,p]),this.width=p[0],this.height=p[1]}get borderWidth(){return this[i]("borderWidth")}set borderWidth(p){this[s]("borderWidth",Object(n.toNumber)(p))}get borderColor(){return this[i]("borderColor")}set borderColor(p){this[s]("borderColor",Object(a.parseColor)(p))}get border(){return[this.borderWidth,this.borderColor]}set border(p){p=Object(n.toArray)(p),Array.isArray(p)||(p=[p]),this.borderWidth=p[0],p[1]!=null&&(this.borderColor=p[1])}get borderDash(){return this[i]("borderDash")}set borderDash(p){p=Object(n.toArray)(p,!0),p!=null&&!Array.isArray(p)&&(p=[p]),this[s]("borderDash",p?p.map(n.toNumber):null)}get borderDashOffset(){return this[i]("borderDashOffset")}set borderDashOffset(p){this[s]("borderDashOffset",Object(n.toNumber)(p))}get borderTopLeftRadius(){return this[i]("borderTopLeftRadius")}set borderTopLeftRadius(p){p=Object(n.toArray)(p,!0),Array.isArray(p)||(p=[p,p]),this[s]("borderTopLeftRadius",p.map(n.toNumber))}get borderTopRightRadius(){return this[i]("borderTopRightRadius")}set borderTopRightRadius(p){p=Object(n.toArray)(p,!0),Array.isArray(p)||(p=[p,p]),this[s]("borderTopRightRadius",p.map(n.toNumber))}get borderBottomRightRadius(){return this[i]("borderBottomRightRadius")}set borderBottomRightRadius(p){p=Object(n.toArray)(p,!0),Array.isArray(p)||(p=[p,p]),this[s]("borderBottomRightRadius",p.map(n.toNumber))}get borderBottomLeftRadius(){return this[i]("borderBottomLeftRadius")}set borderBottomLeftRadius(p){p=Object(n.toArray)(p,!0),Array.isArray(p)||(p=[p,p]),this[s]("borderBottomLeftRadius",p.map(n.toNumber))}get borderRadius(){return[...this.borderTopLeftRadius,...this.borderTopRightRadius,...this.borderBottomRightRadius,...this.borderBottomLeftRadius]}set borderRadius(p){if(p=Object(n.toArray)(p),!Array.isArray(p))p=Array(8).fill(p);else if(p.length===2)p=[p[0],p[1],p[0],p[1],p[0],p[1],p[0],p[1]];else if(p.length===4)p=[p[0],p[1],p[2],p[3],p[0],p[1],p[2],p[3]];else if(p.length===6)p=[p[0],p[1],p[2],p[3],p[4],p[5],p[2],p[3]];else if(p.length!==8)throw new TypeError("Invalid borderRadius value.");this.borderTopLeftRadius=[p[0],p[1]],this.borderTopRightRadius=[p[2],p[3]],this.borderBottomRightRadius=[p[4],p[5]],this.borderBottomLeftRadius=[p[6],p[7]]}get bgcolor(){return this[i]("bgcolor")}set bgcolor(p){this[s]("bgcolor",Object(a.parseColor)(p))}get paddingTop(){return this[i]("paddingTop")}set paddingTop(p){this[s]("paddingTop",Object(n.toNumber)(p))}get paddingRight(){return this[i]("paddingRight")}set paddingRight(p){this[s]("paddingRight",Object(n.toNumber)(p))}get paddingBottom(){return this[i]("paddingBottom")}set paddingBottom(p){this[s]("paddingBottom",Object(n.toNumber)(p))}get paddingLeft(){return this[i]("paddingLeft")}set paddingLeft(p){this[s]("paddingLeft",Object(n.toNumber)(p))}get padding(){return[this.paddingTop,this.paddingRight,this.paddingBottom,this.paddingLeft]}set padding(p){p=Object(n.toArray)(p),Array.isArray(p)?p.length===2?p=[p[0],p[1],p[0],p[1]]:p.length===3&&(p=[p[0],p[1],p[2],p[1]]):p=[p,p,p,p],this.paddingTop=p[0],this.paddingRight=p[1],this.paddingBottom=p[2],this.paddingLeft=p[3]}get clipPath(){return this[i]("clipPath")}set clipPath(p){this[s]("clipPath",p)}get boxSizing(){return this[i]("boxSizing")}set boxSizing(p){if(p!=null&&p!=="border-box"&&p!=="content-box")throw new TypeError("Invalid boxSizing type.");this[s]("boxSizing",p)}}},function(d,r,t){t.r(r),t.d(r,"Gradient",function(){return a}),t.d(r,"isTransparent",function(){return s}),t.d(r,"parseColor",function(){return i}),t.d(r,"setFillColor",function(){return c}),t.d(r,"setStrokeColor",function(){return m}),t.d(r,"Color",function(){return u});var e=t(32),n=t.n(e);t(1).glMatrix.setMatrixArrayType(Array);class a{constructor({vector:y,colors:O}){if(!Array.isArray(y)||y.length!==4&&y.length!==6&&y.length!==3)throw new TypeError("Invalid gradient");this.vector=y,this.colors=O.map(({offset:x,color:v})=>({offset:x,color:i(v)}))}toString(){return JSON.stringify({vector:this.vector,colors:this.colors})}}function s(p){return p instanceof a?!1:p==null?!0:n()(p)[3]===0}function i(p){if(p==null||(p||(p="transparent"),p instanceof a))return p;const y=n()(p);if(!y||!y.length)throw new TypeError("Invalid color value.");return`rgba(${y.join()})`}function o(p,y,O){const x=p.boundingBox[0];if(O.vector){let{vector:v,colors:T}=O;v.length===4?(v=[v[0]+x[0],v[1]+x[1],v[2]+x[0],v[3]+x[1]],p.setLinearGradient({vector:v,colors:T,type:y})):v.length===3?(v=[v[0]+x[0],v[1]+x[1],v[2]],p.setCircularGradient({vector:v,colors:T,type:y})):(v=[v[0]+x[0],v[1]+x[1],v[2],v[3]+x[0],v[4]+x[1],v[5]],p.setRadialGradient({vector:v,colors:T,type:y}))}else p.gradient&&p.gradient[y]&&(delete p.gradient[y],delete p.uniforms.u_radialGradientVector)}function c(p,{color:y,rule:O="nonzero"}){return o(p,"fill",y),y.vector||p.setFill({color:y,rule:O}),p}function m(p,{color:y,lineWidth:O,lineCap:x,lineJoin:v,lineDash:T,lineDashOffset:l,miterLimit:h,roundSegments:f}){o(p,"stroke",y),y.vector&&(y=[0,0,0,1]),p.setStroke({color:y,thickness:O,cap:x,join:v,miterLimit:h,lineDash:T,lineDashOffset:l,roundSegments:f})}class u extends Array{constructor(y=0,O=0,x=0,v=0){return Array.isArray(y)&&([y,O,x,v]=y),typeof y=="string"&&([y,O,x,v]=n()(y),y/=255,O/=255,x/=255),super(y,O,x,v),this}get r(){return Math.round(this[0]*255)}set r(y){this[0]=y/255}get g(){return Math.round(this[1]*255)}set g(y){this[1]=y/255}get b(){return Math.round(this[2]*255)}set b(y){this[2]=y/255}get a(){return this[3]}set a(y){this[3]=y}get hex(){const y=`0${this.r.toString(16)}`.slice(-2),O=`0${this.g.toString(16)}`.slice(-2),x=`0${this.b.toString(16)}`.slice(-2);let v;return this.a<1&&(v=Math.round(this[3]*255),v=`0${v.toString(16)}`.slice(-2)),`#${y}${O}${x}${v||""}`}get rgba(){return`rgba(${this.r},${this.g},${this.b},${this.a})`}fromColor(y){return typeof y=="string"&&(y=n()(y),y[0]/=255,y[1]/=255,y[2]/=255),this[0]=y[0],this[1]=y[1],this[2]=y[2],this[3]=y[3],this}}},function(d,r,t){t.r(r),t.d(r,"createRadiusBox",function(){return n}),t(1).glMatrix.setMatrixArrayType(Array);function e(a,s,i,o,c,m="leftTop"){const u=.5522848,p=o/2*u,y=c/2*u,O=s+o,x=i+c,v=s+o/2,T=i+c/2;m==="leftTop"?(a.moveTo(s,T),a.bezierCurveTo(s,T-y,v-p,i,v,i)):m==="rightTop"?a.bezierCurveTo(v+p,i,O,T-y,O,T):m==="rightBottom"?a.bezierCurveTo(O,T+y,v+p,x,v,x):m==="leftBottom"&&a.bezierCurveTo(v-p,x,s,T+y,s,T)}function n(a,[s,i,o,c],m){if(!m||Array.isArray(m)&&m.every(u=>u===0))a.beginPath(),a.rect(s,i,o,c);else{typeof m=="number"&&(m=Array(8).fill(m));const[u,p,y,O,x,v,T,l]=m.map((h,f)=>f%2?Math.min(h,c/2):Math.min(h,o/2));a.beginPath(),a.moveTo(s,i+p),e(a,s,i,u*2,p*2,"leftTop"),a.lineTo(s+o-y,i),e(a,s+o-y*2,i,y*2,O*2,"rightTop"),a.lineTo(s+o,i+c-v),e(a,s+o-x*2,i+c-v*2,x*2,v*2,"rightBottom"),a.lineTo(s+T,i+c),e(a,s,i+c-l*2,T*2,l*2,"leftBottom"),a.closePath()}return a}},function(d,r,t){t.r(r),t(1).glMatrix.setMatrixArrayType(Array),r.default=function(e,n){if(!e)return{x:0,y:0,width:0,height:0,left:0,top:0,right:0,bottom:0};const[[a,s],[i,o]]=e,c=a*n[0]+s*n[2]+n[4],m=a*n[1]+s*n[3]+n[5],u=i*n[0]+s*n[2]+n[4],p=i*n[1]+s*n[3]+n[5],y=i*n[0]+o*n[2]+n[4],O=i*n[1]+o*n[3]+n[5],x=a*n[0]+o*n[2]+n[4],v=a*n[1]+o*n[3]+n[5],T=Math.min(c,u,y,x),l=Math.min(m,p,O,v),h=Math.max(c,u,y,x),f=Math.max(m,p,O,v);return{x:T,y:l,width:h-T,height:f-l,left:T,top:l,right:h,bottom:f}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return c});var e=t(218),n=t(219),a=t(225),s=t(213);t(1).glMatrix.setMatrixArrayType(Array);function i(m,u,p){return u in m?Object.defineProperty(m,u,{value:p,enumerable:!0,configurable:!0,writable:!0}):m[u]=p,m}const o=Symbol("textureTask");class c extends n.default{constructor(u={}){typeof u=="string"&&(u={texture:u}),super(u)}get contentSize(){let[u,p]=super.contentSize;const{width:y,height:O}=this.attributes;if(y==null||O==null){const x=this.textureImage,v=this.attributes.textureRect,T=this.attributes.sourceRect;if(v)y==null&&(u=v[0]+v[2]),O==null&&(p=v[1]+v[3]);else if(T){const l=this.layer?this.layer.displayRatio:1;y==null&&(u=T[2]/l),O==null&&(p=T[3]/l)}else if(x){const l=this.layer?this.layer.displayRatio:1;y==null&&(u=x.width/l),O==null&&(p=x.height/l)}}return[u,p]}get textureImageReady(){return this[o]||Promise.resolve()}draw(u=[]){super.draw(u);const p=this.mesh;return p&&Object(e.drawTexture)(this,p),u}onPropertyChange(u,p,y){if(super.onPropertyChange(u,p,y),u==="texture"&&(this[o]=Object(e.applyTexture)(this,p,!0)),u==="textureRect"){const{width:O,height:x}=this.attributes;(O==null||x==null)&&this.updateContours()}}}i(c,"Attr",a.default),s.default.registerNode(c,"sprite")},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(220);t(1).glMatrix.setMatrixArrayType(Array);const n=Symbol.for("spritejs_setAttributeDefault"),a=Symbol.for("spritejs_setAttribute"),s=Symbol.for("spritejs_getAttribute");class i extends e.default{constructor(c){super(c),this[n]({texture:void 0,textureRect:void 0,textureRepeat:!1,sourceRect:void 0})}get texture(){return this[s]("texture")}set texture(c){this[a]("texture",c)}get textureRect(){return this[s]("textureRect")}set textureRect(c){this[a]("textureRect",c)}get sourceRect(){return this[s]("sourceRect")}set sourceRect(c){this[a]("sourceRect",c)}get textureRepeat(){return this[s]("textureRepeat")}set textureRepeat(c){this[a]("textureRepeat",!!c)}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return O});var e=t(12),n=t(227),a=t.n(n),s=t(70),i=t(228),o=t(221),c=t(218),m=t(213),u=t(223);t(1).glMatrix.setMatrixArrayType(Array);function p(x,v,T){return v in x?Object.defineProperty(x,v,{value:T,enumerable:!0,configurable:!0,writable:!0}):x[v]=T,x}const y=Symbol("mesh");class O extends s.default{constructor(v={}){typeof v=="string"&&(v={d:v}),super(v),this.effects={d(T,l,h,f,g){const M=(h-f)/(g-f);if(M<=0)return T;if(M>=1)return l;const A=a.a._preprocessing(a.a.path2shapes(T),a.a.path2shapes(l)),C=a.a._lerp(...A,M)[0];return C.reduce((E,L)=>`${E}${L.slice(2).join(" ")} `,`M${C[0][0]} ${C[0][1]}C`).trim()}}}get isVisible(){return!!this.d}get mesh(){if(this.attributes.display==="none")return null;const v=this.path;if(v){let T=this[y];if(T)T.path!==v&&(T.contours=v.contours,T.path=v);else{T=new e.Mesh2D(this.path),T.path=v;const h=this.attributes.fillColor,f=this.attributes.fillRule;h&&Object(o.setFillColor)(T,{color:h,rule:f});const g=this.attributes.lineWidth,M=this.attributes.strokeColor;if(M&&g>0){const{lineCap:C,lineJoin:b,miterLimit:E,lineDash:L,lineDashOffset:D,roundSegments:I}=this.attributes;Object(o.setStrokeColor)(T,{color:M,lineWidth:g,lineCap:C,lineJoin:b,miterLimit:E,lineDash:L,lineDashOffset:D,roundSegments:I})}this[y]=T;const A=this.attributes.clipPath;A&&this[y].setClipPath(A)}const l=this.opacity;return T.getOpacity()!==l&&T.setOpacity(l),T.setTransform(...this.renderMatrix),T}return null}get originalContentRect(){if(this.path){const v=this.path.boundingBox;return[v[0][0],v[0][1],v[1][0]-v[0][0],v[1][1]-v[0][1]]}return[0,0,0,0]}get originalClientRect(){if(this.mesh){const v=this.mesh.boundingBox;return[v[0][0],v[0][1],v[1][0]-v[0][0],v[1][1]-v[0][1]]}return[0,0,0,0]}get originalClientCenter(){return this.mesh?this.mesh.boundingCenter:[0,0]}set d(v){this.attributes.d=v}get d(){return this.attributes.d}draw(v=[]){super.draw(v);const T=this.mesh;return T&&Object(c.drawTexture)(this,T),v}getBoundingClientRect(){let v=null;return this.mesh&&(v=this.mesh.boundingBox),Object(u.default)(v,this.renderMatrix)}getPathLength(){return this.mesh?this.mesh.getTotalLength():0}getPointAtLength(v){if(this.mesh){const T=this.mesh.getPointAtLength(v);if(T)return[T.x,T.y]}return[0,0]}onPropertyChange(v,T,l){if(super.onPropertyChange(v,T,l),(v==="d"||v==="normalize")&&this.updateContours(),this[y]&&(v==="fillColor"||v==="fillRule")){const{fillColor:h,fillRule:f}=this.attributes;Object(o.setFillColor)(this[y],{color:h,rule:f})}if(this[y]&&(v==="strokeColor"||v==="lineWidth"||v==="lineCap"||v==="lineJoin"||v==="lineDash"||v==="lineDashOffset"||v==="roundSegments")){const{strokeColor:h,lineWidth:f}=this.attributes;if(h&&f>0){const{lineCap:g,lineJoin:M,lineDash:A,lineDashOffset:C,miterLimit:b,roundSegments:E}=this.attributes;Object(o.setStrokeColor)(this[y],{color:h,lineCap:g,lineJoin:M,lineWidth:f,lineDash:A,lineDashOffset:C,miterLimit:b,roundSegments:E})}}this[y]&&v==="clipPath"&&this[y].setClipPath(T),v==="texture"&&Object(c.applyTexture)(this,T)}updateContours(){this.path=new e.Figure2D,this.path.addPath(this.attributes.d),this.attributes.normalize&&this.path.normalize(...this.path.boundingCenter)}}p(O,"Attr",i.default),m.default.registerNode(O,"path")},function(d,r,t){(function(e,n){d.exports=n()})(this,function(){var e=function(){function L(D,I){var R=[],B=!0,z=!1,K=void 0;try{for(var Q=D[Symbol.iterator](),_;!(B=(_=Q.next()).done)&&(R.push(_.value),!(I&&R.length===I));B=!0);}catch(j){z=!0,K=j}finally{try{!B&&Q.return&&Q.return()}finally{if(z)throw K}}return R}return function(D,I){if(Array.isArray(D))return D;if(Symbol.iterator in Object(D))return L(D,I);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),n=Math.PI*2,a=function(D,I,R,B,z,K,Q){var _=D.x,j=D.y;_*=I,j*=R;var G=B*_-z*j,X=z*_+B*j;return{x:G+K,y:X+Q}},s=function(D,I){var R=1.3333333333333333*Math.tan(I/4),B=Math.cos(D),z=Math.sin(D),K=Math.cos(D+I),Q=Math.sin(D+I);return[{x:B-z*R,y:z+B*R},{x:K+Q*R,y:Q-K*R},{x:K,y:Q}]},i=function(D,I,R,B){var z=D*B-I*R<0?-1:1,K=Math.sqrt(D*D+I*I),Q=Math.sqrt(D*D+I*I),_=D*R+I*B,j=_/(K*Q);return j>1&&(j=1),j<-1&&(j=-1),z*Math.acos(j)},o=function(D,I,R,B,z,K,Q,_,j,G,X,Z){var tt=Math.pow(z,2),nt=Math.pow(K,2),q=Math.pow(X,2),dt=Math.pow(Z,2),ut=tt*nt-tt*dt-nt*q;ut<0&&(ut=0),ut/=tt*dt+nt*q,ut=Math.sqrt(ut)*(Q===_?-1:1);var W=ut*z/K*Z,F=ut*-K/z*X,V=G*W-j*F+(D+R)/2,J=j*W+G*F+(I+B)/2,N=(X-W)/z,$=(Z-F)/K,S=(-X-W)/z,P=(-Z-F)/K,w=i(1,0,N,$),U=i(N,$,S,P);return _===0&&U>0&&(U-=n),_===1&&U<0&&(U+=n),[V,J,w,U]},c=function(D){var I=D.px,R=D.py,B=D.cx,z=D.cy,K=D.rx,Q=D.ry,_=D.xAxisRotation,j=_===void 0?0:_,G=D.largeArcFlag,X=G===void 0?0:G,Z=D.sweepFlag,tt=Z===void 0?0:Z,nt=[];if(K===0||Q===0)return[];var q=Math.sin(j*n/360),dt=Math.cos(j*n/360),ut=dt*(I-B)/2+q*(R-z)/2,W=-q*(I-B)/2+dt*(R-z)/2;if(ut===0&&W===0)return[];K=Math.abs(K),Q=Math.abs(Q);var F=Math.pow(ut,2)/Math.pow(K,2)+Math.pow(W,2)/Math.pow(Q,2);F>1&&(K*=Math.sqrt(F),Q*=Math.sqrt(F));var V=o(I,R,B,z,K,Q,X,tt,q,dt,ut,W),J=e(V,4),N=J[0],$=J[1],S=J[2],P=J[3],w=Math.max(Math.ceil(Math.abs(P)/(n/4)),1);P/=w;for(var U=0;U<w;U++)nt.push(s(S,P)),S+=P;return nt.map(function(H){var Y=a(H[0],K,Q,dt,q,N,$),k=Y.x,rt=Y.y,it=a(H[1],K,Q,dt,q,N,$),ct=it.x,ht=it.y,at=a(H[2],K,Q,dt,q,N,$),ot=at.x,ft=at.y;return{x1:k,y1:rt,x2:ct,y2:ht,x:ot,y:ft}})},m={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},u=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function p(L){var D=[];return L.replace(u,function(I,R,B){var z=R.toLowerCase();for(B=O(B),z=="m"&&B.length>2&&(D.push([R].concat(B.splice(0,2))),z="l",R=R=="m"?"l":"L");;){if(B.length==m[z])return B.unshift(R),D.push(B);if(B.length<m[z])throw new Error("malformed path data");D.push([R].concat(B.splice(0,m[z])))}}),D}var y=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function O(L){var D=L.match(y);return D?D.map(Number):[]}function x(L){var D=L[0][0],I=L[0][1],R=D,B=I;return L.forEach(function(z){var K=z[0],Q=z[2],_=z[4],j=z[6],G=z[1],X=z[3],Z=z[5],tt=z[7];D=Math.min(D,K,Q,_,j),I=Math.min(I,G,X,Z,tt),R=Math.max(R,K,Q,_,j),B=Math.max(B,G,X,Z,tt)}),[D,I,R,B]}function v(L,D){return Math.sqrt(Math.pow(L[0]-D[0],2)+Math.pow(L[1]-D[1],2))+Math.sqrt(Math.pow(L[2]-D[2],2)+Math.pow(L[3]-D[3],2))}function T(L,D){var I=L[0],R=L[2],B=L[4],z=L[6],K=L[1],Q=L[3],_=L[5],j=L[7],G=D[0],X=D[2],Z=D[4],tt=D[6],nt=D[1],q=D[3],dt=D[5],ut=D[7];return Math.sqrt(Math.pow(G-I,2)+Math.pow(nt-K,2))+Math.sqrt(Math.pow(X-R,2)+Math.pow(q-Q,2))+Math.sqrt(Math.pow(Z-B,2)+Math.pow(dt-_,2))+Math.sqrt(Math.pow(tt-z,2)+Math.pow(ut-j,2))}function l(L,D){var I=f(L.length),R=[];I.forEach(function(z){var K=0,Q=0;z.forEach(function(_){K+=T(L[_],D[Q++])}),R.push({index:z,distance:K})}),R.sort(function(z,K){return z.distance-K.distance});var B=[];return R[0].index.forEach(function(z){B.push(L[z])}),B}function h(L,D){var I=g(L.length),R=[];I.forEach(function(z){var K=0;z.forEach(function(Q){K+=v(x(L[Q]),x(D[Q]))}),R.push({index:z,distance:K})}),R.sort(function(z,K){return z.distance-K.distance});var B=[];return R[0].index.forEach(function(z){B.push(L[z])}),B}function f(L){for(var D=[],I=0;I<L;I++){for(var R=[],B=0;B<L;B++){var z=B+I;z>L-1&&(z-=L),R[z]=B}D.push(R)}return D}function g(L){for(var D=[],I=0;I<L;I++)D.push(I);return M(D)}function M(L){var D=[],I=[];function R(B){var z,K;for(z=0;z<B.length;z++)K=B.splice(z,1)[0],I.push(K),B.length==0&&D.push(I.slice()),R(B),B.splice(z,0,K),I.pop();return D}return R(L)}var A={};A.parser=p,A.lerpCurve=function(L,D,I){return A.lerpPoints(L[0],L[1],D[0],D[1],I).concat(A.lerpPoints(L[2],L[3],D[2],D[3],I)).concat(A.lerpPoints(L[4],L[5],D[4],D[5],I)).concat(A.lerpPoints(L[6],L[7],D[6],D[7],I))},A.lerpPoints=function(L,D,I,R,B){return[L+(I-L)*B,D+(R-D)*B]},A.q2b=function(L,D,I,R,B,z){return[L,D,(L+2*I)/3,(D+2*R)/3,(B+2*I)/3,(z+2*R)/3,B,z]},A.path2shapes=function(L){for(var D=A.parser(L),I=0,R=0,B=0,z=D.length,K=[],Q=null,_=void 0,j=void 0,G=void 0,X=void 0,Z=void 0,tt=void 0,nt=void 0;B<z;B++){var q=D[B],dt=q[0],ut=D[B-1];switch(dt){case"m":Z=K.length,K[Z]=[],Q=K[Z],I=I+q[1],R=R+q[2];break;case"M":Z=K.length,K[Z]=[],Q=K[Z],I=q[1],R=q[2];break;case"l":Q.push([I,R,I,R,I,R,I+q[1],R+q[2]]),I+=q[1],R+=q[2];break;case"L":Q.push([I,R,q[1],q[2],q[1],q[2],q[1],q[2]]),I=q[1],R=q[2];break;case"h":Q.push([I,R,I,R,I,R,I+q[1],R]),I+=q[1];break;case"H":Q.push([I,R,q[1],R,q[1],R,q[1],R]),I=q[1];break;case"v":Q.push([I,R,I,R,I,R,I,R+q[1]]),R+=q[1];break;case"V":Q.push([I,R,I,q[1],I,q[1],I,q[1]]),R=q[1];break;case"C":Q.push([I,R,q[1],q[2],q[3],q[4],q[5],q[6]]),I=q[5],R=q[6];break;case"S":ut[0]==="C"||ut[0]==="c"?Q.push([I,R,I+ut[5]-ut[3],R+ut[6]-ut[4],q[1],q[2],q[3],q[4]]):(ut[0]==="S"||ut[0]==="s")&&Q.push([I,R,I+ut[3]-ut[1],R+ut[4]-ut[2],q[1],q[2],q[3],q[4]]),I=q[3],R=q[4];break;case"c":Q.push([I,R,I+q[1],R+q[2],I+q[3],R+q[4],I+q[5],R+q[6]]),I=I+q[5],R=R+q[6];break;case"s":ut[0]==="C"||ut[0]==="c"?Q.push([I,R,I+ut[5]-ut[3],R+ut[6]-ut[4],I+q[1],R+q[2],I+q[3],R+q[4]]):(ut[0]==="S"||ut[0]==="s")&&Q.push([I,R,I+ut[3]-ut[1],R+ut[4]-ut[2],I+q[1],R+q[2],I+q[3],R+q[4]]),I=I+q[3],R=R+q[4];break;case"a":tt=c({rx:q[1],ry:q[2],px:I,py:R,xAxisRotation:q[3],largeArcFlag:q[4],sweepFlag:q[5],cx:I+q[6],cy:R+q[7]}),nt=tt[tt.length-1],tt.forEach(function(W,F){F===0?Q.push([I,R,W.x1,W.y1,W.x2,W.y2,W.x,W.y]):Q.push([tt[F-1].x,tt[F-1].y,W.x1,W.y1,W.x2,W.y2,W.x,W.y])}),I=nt.x,R=nt.y;break;case"A":tt=c({rx:q[1],ry:q[2],px:I,py:R,xAxisRotation:q[3],largeArcFlag:q[4],sweepFlag:q[5],cx:q[6],cy:q[7]}),nt=tt[tt.length-1],tt.forEach(function(W,F){F===0?Q.push([I,R,W.x1,W.y1,W.x2,W.y2,W.x,W.y]):Q.push([tt[F-1].x,tt[F-1].y,W.x1,W.y1,W.x2,W.y2,W.x,W.y])}),I=nt.x,R=nt.y;break;case"Q":Q.push(A.q2b(I,R,q[1],q[2],q[3],q[4])),I=q[3],R=q[4];break;case"q":Q.push(A.q2b(I,R,I+q[1],R+q[2],q[3]+I,q[4]+R)),I+=q[3],R+=q[4];break;case"T":ut[0]==="Q"||ut[0]==="q"?(G=I+ut[3]-ut[1],X=R+ut[4]-ut[2],Q.push(A.q2b(I,R,G,X,q[1],q[2]))):(ut[0]==="T"||ut[0]==="t")&&(Q.push(A.q2b(I,R,I+I-G,R+R-X,q[1],q[2])),G=I+I-G,X=R+R-X),I=q[1],R=q[2];break;case"t":ut[0]==="Q"||ut[0]==="q"?(G=I+ut[3]-ut[1],X=R+ut[4]-ut[2],Q.push(A.q2b(I,R,G,X,I+q[1],R+q[2]))):(ut[0]==="T"||ut[0]==="t")&&(Q.push(A.q2b(I,R,I+I-G,R+R-X,I+q[1],R+q[2])),G=I+I-G,X=R+R-X),I+=q[1],R+=q[2];break;case"Z":_=Q[0][0],j=Q[0][1],Q.push([I,R,_,j,_,j,_,j]);break;case"z":_=Q[0][0],j=Q[0][1],Q.push([I,R,_,j,_,j,_,j]);break}}return K},A._upCurves=function(L,D){for(var I=0,R=0,B=L.length;I<D;I++)L.push(L[R].slice(0)),R++,R>B-1&&(R-=B)};function C(L,D,I,R,B,z,K,Q,_){return{left:b(L,D,I,R,B,z,K,Q,_),right:b(K,Q,B,z,I,R,L,D,1-_,!0)}}function b(L,D,I,R,B,z,K,Q,_,j){var G=(I-L)*_+L,X=(R-D)*_+D,Z=(B-I)*_+I,tt=(z-R)*_+R,nt=(K-B)*_+B,q=(Q-z)*_+z,dt=(Z-G)*_+G,ut=(tt-X)*_+X,W=(nt-Z)*_+Z,F=(q-tt)*_+tt,V=(W-dt)*_+dt,J=(F-ut)*_+ut;return j?[V,J,dt,ut,G,X,L,D]:[L,D,G,X,dt,ut,V,J]}A._splitCurves=function(L,D){for(var I=0,R=0;I<D;I++){var B=L[R],z=C(B[0],B[1],B[2],B[3],B[4],B[5],B[6],B[7],.5);L.splice(R,1),L.splice(R,0,z.left,z.right),R+=2,R>=L.length-1&&(R=0)}};function E(L,D){for(var I=function(z){var K=L[L.length-1],Q=[];K.forEach(function(_){Q.push(_.slice(0))}),L.push(Q)},R=0;R<D;R++)I()}return A.lerp=function(L,D,I){return A._lerp(A.path2shapes(L),A.path2shapes(D),I)},A.MIM_CURVES_COUNT=100,A._preprocessing=function(L,D){var I=L.length,R=D.length,B=JSON.parse(JSON.stringify(L)),z=JSON.parse(JSON.stringify(D));return I>R?E(z,I-R):I<R&&E(B,R-I),B=h(B,z),B.forEach(function(K,Q){var _=K.length,j=z[Q].length;_>j?_<A.MIM_CURVES_COUNT?(A._splitCurves(K,A.MIM_CURVES_COUNT-_),A._splitCurves(z[Q],A.MIM_CURVES_COUNT-j)):A._splitCurves(z[Q],_-j):_<j&&(j<A.MIM_CURVES_COUNT?(A._splitCurves(K,A.MIM_CURVES_COUNT-_),A._splitCurves(z[Q],A.MIM_CURVES_COUNT-j)):A._splitCurves(K,j-_))}),B.forEach(function(K,Q){B[Q]=l(K,z[Q])}),[B,z]},A._lerp=function(L,D,I){var R=[];return L.forEach(function(B,z){var K=[];B.forEach(function(Q,_){K.push(A.lerpCurve(Q,D[z][_],I))}),R.push(K)}),R},A.animate=function(L){var D=A.path2shapes(L.from),I=A.path2shapes(L.to),R=A._preprocessing(D,I),B=new Date,z=L.end||function(){},K=L.progress||function(){},Q=L.begin||function(){},_=L.easing||function(tt){return tt},j=null,G=null,X=L.time;Q(D);var Z=function tt(){var nt=new Date-B;if(nt>=X){G=I,K(G,1),z(G),cancelAnimationFrame(j);return}var q=_(nt/X);G=A._lerp(R[0],R[1],q),K(G,q),j=requestAnimationFrame(tt)};Z()},A})},function(d,r,t){t.r(r),t.d(r,"default",function(){return c});var e=t(71),n=t(221),a=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),i=Symbol.for("spritejs_setAttribute"),o=Symbol.for("spritejs_getAttribute");class c extends e.default{constructor(u){super(u),this[s]({d:"",normalize:!1,fillColor:void 0,fillRule:"nonzero",strokeColor:void 0,lineWidth:1,lineJoin:"miter",lineCap:"butt",roundSegments:20,lineDash:void 0,lineDashOffset:0,miterLimit:10,texture:void 0,textureRect:void 0,textureRepeat:!1,sourceRect:void 0,clipPath:void 0})}get d(){return this[o]("d")}set d(u){this[i]("d",u)}get normalize(){return this[o]("normalize")}set normalize(u){this[i]("normalize",!!u)}get fillColor(){return this[o]("fillColor")}set fillColor(u){this[i]("fillColor",Object(n.parseColor)(u))}get fillRule(){return this[o]("fillRule")}set fillRule(u){if(u!=null&&u!=="nonzero"&&u!=="evenodd")throw new TypeError("Invalid fill rule.");this[i]("fillRule",u)}get strokeColor(){return this[o]("strokeColor")}set strokeColor(u){this[i]("strokeColor",Object(n.parseColor)(u))}get lineWidth(){return this[o]("lineWidth")}set lineWidth(u){this[i]("lineWidth",Object(a.toNumber)(u))}get lineJoin(){return this[o]("lineJoin")}set lineJoin(u){if(u!=null&&u!=="miter"&&u!=="bevel"&&u!=="round")throw new TypeError("Invalid lineJoin type.");this[i]("lineJoin",u)}get lineCap(){return this[o]("lineCap")}set lineCap(u){if(u!=null&&u!=="butt"&&u!=="square"&&u!=="round")throw new TypeError("Invalid lineCap type.");this[i]("lineCap",u)}get lineDash(){return this[o]("lineDash")}set lineDash(u){u=Object(a.toArray)(u,!0),u!=null&&!Array.isArray(u)&&(u=[u]),this[i]("lineDash",u?u.map(a.toNumber):null)}get lineDashOffset(){return this[o]("lineDashOffset")}set lineDashOffset(u){this[i]("lineDashOffset",Object(a.toNumber)(u))}get miterLimit(){return this[o]("miterLimit")}set miterLimit(u){this[i]("miterLimit",Object(a.toNumber)(u))}get roundSegments(){return this[o]("roundSegments")}set roundSegments(u){this[i]("roundSegments",u)}get texture(){return this[o]("texture")}set texture(u){this[i]("texture",u)}get textureRect(){return this[o]("textureRect")}set textureRect(u){this[i]("textureRect",u)}get sourceRect(){return this[o]("sourceRect")}set sourceRect(u){this[i]("sourceRect",u)}get textureRepeat(){return this[o]("textureRepeat")}set textureRepeat(u){this[i]("textureRepeat",!!u)}get clipPath(){return this[o]("clipPath")}set clipPath(u){this[i]("clipPath",u)}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(226),n=t(213),a=t(230);t(1).glMatrix.setMatrixArrayType(Array);function s(o,c,m){return c in o?Object.defineProperty(o,c,{value:m,enumerable:!0,configurable:!0,writable:!0}):o[c]=m,o}class i extends e.default{get isVisible(){const{width:c,height:m}=this.attributes;return c>0&&m>0&&super.isVisible}}s(i,"Attr",a.default),n.default.registerNode(i,"rect")},function(d,r,t){t.r(r),t.d(r,"default",function(){return m});var e=t(228),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const a=Symbol.for("spritejs_setAttributeDefault"),s=Symbol.for("spritejs_setAttribute"),i=Symbol.for("spritejs_getAttribute"),o=Symbol.for("spritejs_declareAlias");function c(u){const{width:p,height:y}=u;return`M0 0L${p} 0L${p} ${y}L0 ${y}Z`}class m extends e.default{constructor(p){super(p),this[a]({width:0,height:0}),this[o]("size")}get d(){return this[i]("d")}set d(p){}get width(){return this[i]("width")}set width(p){if(p=Object(n.toNumber)(p),this[s]("width",p)){const y=c(this);this[s]("d",y)}}get height(){return this[i]("height")}set height(p){if(p=Object(n.toNumber)(p),this[s]("height",p)){const y=c(this);this[s]("d",y)}}get size(){return[this.width,this.height]}set size(p){p=Object(n.toArray)(p),Array.isArray(p)||(p=[p,p]),this.width=p[0],this.height=p[1]}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(232),n=t(213),a=t(235);t(1).glMatrix.setMatrixArrayType(Array);function s(o,c,m){return c in o?Object.defineProperty(o,c,{value:m,enumerable:!0,configurable:!0,writable:!0}):o[c]=m,o}class i extends e.default{get isVisible(){const{sides:c}=this.attributes;return c[0]>0&&c[1]>0&&super.isVisible}}s(i,"Attr",a.default),n.default.registerNode(i,"triangle")},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(226),n=t(213),a=t(233);t(1).glMatrix.setMatrixArrayType(Array);function s(o,c,m){return c in o?Object.defineProperty(o,c,{value:m,enumerable:!0,configurable:!0,writable:!0}):o[c]=m,o}class i extends e.default{get isVisible(){const{points:c}=this.attributes;return c.length>0&&super.isVisible}}s(i,"Attr",a.default),n.default.registerNode(i,"polyline")},function(d,r,t){t.r(r),t.d(r,"default",function(){return u});var e=t(228),n=t(72),a=t(234);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),i=Symbol.for("spritejs_setAttribute"),o=Symbol.for("spritejs_getAttribute"),c=Symbol.for("spritejs_declareAlias");function m(p){const{points:y,smooth:O,smoothRange:x,close:v}=p,T=[];for(let h=0;h<y.length;h+=2)T.push([y[h],y[h+1]]);let l="";return O?l=Object(a.makeSmoothCurveLine)(T,x):T.length&&(l=`M${T.map(h=>h.join(" ")).join("L")}`),l&&v&&(l+="Z"),l}class u extends e.default{constructor(y){super(y),this[s]({points:[],smooth:!1,smoothRange:[0],closeType:"none"}),this[c]("close")}get d(){return this[o]("d")}set d(y){}get close(){return this.closeType!=="none"}set close(y){y=y?"normal":"none",this.closeType=y}get closeType(){return this[o]("closeType")}set closeType(y){if(y!=null&&y!=="none"&&y!=="normal")throw new TypeError("Invalid closeType type.");if(this[i]("closeType",y)){const O=m(this);this[i]("d",O)}}get smooth(){return this[o]("smooth")}set smooth(y){if(this[i]("smooth",y)){const O=m(this);this[i]("d",O)}}get smoothRange(){return this[o]("smoothRange")}set smoothRange(y){if(y&&!Array.isArray(y)&&(y=[y]),this[i]("smoothRange",y)&&this.smooth){const O=m(this);this[i]("d",O)}}get points(){return this[o]("points")}set points(y){if(y=Object(n.toArray)(y),Array.isArray(y)&&(y=y.reduce((O,x)=>Array.isArray(x)?[...O,...x.map(v=>Object(n.toNumber)(v))]:[...O,Object(n.toNumber)(x)],[])),this[i]("points",y)){const O=m(this);this[i]("d",O)}}}},function(d,r,t){t.r(r),t.d(r,"makeSmoothCurveLine",function(){return e}),t(1).glMatrix.setMatrixArrayType(Array);function e(n,a=[0]){function s(c,m=.168,u=.168){let p,y,O,x;if((n[c].x===n[c+1].x||n[c].y===n[c+1].y)&&(m=0,u=0),c<1?(p=n[0].x+(n[1].x-n[0].x)*m,y=n[0].y+(n[1].y-n[0].y)*m):(p=n[c].x+(n[c+1].x-n[c-1].x)*m,y=n[c].y+(n[c+1].y-n[c-1].y)*m),c>n.length-3){const v=n.length-1;O=n[v].x-(n[v].x-n[v-1].x)*u,x=n[v].y-(n[v].y-n[v-1].y)*u}else O=n[c+1].x-(n[c+2].x-n[c].x)*u,x=n[c+1].y-(n[c+2].y-n[c].y)*u;return[{x:p,y},{x:O,y:x}]}n=n.map(([c,m])=>({x:c,y:m}));let i="",o=0;return n.forEach((c,m)=>{if(m===0)i+=`M${c.x} ${c.y}`;else{for(;m>a[o];)o++;if(o%2){const[u,p]=s(m-1);i+=`C${[u.x,u.y,p.x,p.y,c.x,c.y].join(" ")}`}else i+=`L${c.x} ${c.y}`}}),i}},function(d,r,t){t.r(r),t.d(r,"default",function(){return c});var e=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const a=Symbol.for("spritejs_setAttributeDefault"),s=Symbol.for("spritejs_setAttribute"),i=Symbol.for("spritejs_getAttribute");function o(m){const[u,p]=m.sides;let y=m.angle%360;return y<0&&(y+=360),y=Math.PI*y/180,[0,0,u,0,p*Math.cos(y),p*Math.sin(y)]}class c extends e.default{constructor(u){super(u),this[a]({sides:[0,0],angle:60,closeType:"normal"})}get points(){return super.points}set points(u){}get sides(){return this[i]("sides")}set sides(u){if(u=Object(n.toArray)(u,!0),u!=null&&!Array.isArray(u)&&(u=[u,u]),this[s]("sides",u)){const p=o(this);super.points=p}}get angle(){return this[i]("angle")}set angle(u){if(u=Object(n.toNumber)(u),this[s]("angle",u)){const p=o(this);super.points=p}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(232),n=t(213),a=t(237);t(1).glMatrix.setMatrixArrayType(Array);function s(o,c,m){return c in o?Object.defineProperty(o,c,{value:m,enumerable:!0,configurable:!0,writable:!0}):o[c]=m,o}class i extends e.default{get isVisible(){const{sides:c}=this.attributes;return c[0]>0&&c[1]>0&&super.isVisible}}s(i,"Attr",a.default),n.default.registerNode(i,"parallel")},function(d,r,t){t.r(r),t.d(r,"default",function(){return c});var e=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const a=Symbol.for("spritejs_setAttributeDefault"),s=Symbol.for("spritejs_setAttribute"),i=Symbol.for("spritejs_getAttribute");function o(m){const[u,p]=m.sides;let y=m.angle%360;y<0&&(y+=360),y=Math.PI*y/180;const O=p*Math.cos(y),x=p*Math.sin(y);return[0,0,u,0,O+u,x,O,x]}class c extends e.default{constructor(u){super(u),this[a]({sides:[0,0],angle:90,closeType:"normal"})}get points(){return super.points}set points(u){}get sides(){return this[i]("sides")}set sides(u){if(u=Object(n.toArray)(u,!0),u!=null&&!Array.isArray(u)&&(u=[u,u]),this[s]("sides",u)){const p=o(this);super.points=p}}get angle(){return this[i]("angle")}set angle(u){if(u=Object(n.toNumber)(u),this[s]("angle",u)){const p=o(this);super.points=p}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(232),n=t(213),a=t(239);t(1).glMatrix.setMatrixArrayType(Array);function s(o,c,m){return c in o?Object.defineProperty(o,c,{value:m,enumerable:!0,configurable:!0,writable:!0}):o[c]=m,o}class i extends e.default{}s(i,"Attr",a.default),n.default.registerNode(i,"regular")},function(d,r,t){t.r(r),t.d(r,"default",function(){return c});var e=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const a=Symbol.for("spritejs_setAttributeDefault"),s=Symbol.for("spritejs_setAttribute"),i=Symbol.for("spritejs_getAttribute");function o(m){const{edges:u,radius:p,offsetAngle:y}=m,O=Math.PI*y/180-.5*Math.PI;if(u<3||p<=0)return[];const x=[];for(let v=0;v<u;v++){const T=v*2*Math.PI/u+O,l=p*Math.cos(T),h=p*Math.sin(T);x.push(l,h)}return x}class c extends e.default{constructor(u){super(u),this[a]({edges:3,radius:0,offsetAngle:0,closeType:"normal"})}get points(){return super.points}set points(u){}get edges(){return this[i]("edges")}set edges(u){if(u=Object(n.toNumber)(u),this[s]("edges",u)){const p=o(this);super.points=p}}get radius(){return this[i]("radius")}set radius(u){if(u=Object(n.toNumber)(u),this[s]("radius",u)){const p=o(this);super.points=p}}get offsetAngle(){return this[i]("offsetAngle")}set offsetAngle(u){if(u=Object(n.toNumber)(u),this[s]("offsetAngle",u)){const p=o(this);super.points=p}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(232),n=t(213),a=t(241);t(1).glMatrix.setMatrixArrayType(Array);function s(o,c,m){return c in o?Object.defineProperty(o,c,{value:m,enumerable:!0,configurable:!0,writable:!0}):o[c]=m,o}class i extends e.default{}s(i,"Attr",a.default),n.default.registerNode(i,"star")},function(d,r,t){t.r(r),t.d(r,"default",function(){return c});var e=t(233),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);const a=Symbol.for("spritejs_setAttributeDefault"),s=Symbol.for("spritejs_setAttribute"),i=Symbol.for("spritejs_getAttribute");function o(m){const{angles:u,innerRadius:p,outerRadius:y,offsetAngle:O}=m,x=Math.PI*O/180-.5*Math.PI;if(u<3||p<=0||y<=0)return[];const v=[];for(let T=0;T<u*2;T++){const l=T*Math.PI/u+x,h=T%2?p:y,f=h*Math.cos(l),g=h*Math.sin(l);v.push(f,g)}return v}class c extends e.default{constructor(u){super(u),this[a]({angles:5,innerRadius:0,outerRadius:0,offsetAngle:0,closeType:"normal"})}get points(){return super.points}set points(u){}get angles(){return this[i]("angles")}set angles(u){if(u=Object(n.toNumber)(u),this[s]("angles",u)){const p=o(this);super.points=p}}get innerRadius(){return this[i]("innerRadius")}set innerRadius(u){if(u=Object(n.toNumber)(u),this[s]("innerRadius",u)){const p=o(this);super.points=p}}get outerRadius(){return this[i]("outerRadius")}set outerRadius(u){if(u=Object(n.toNumber)(u),this[s]("outerRadius",u)){const p=o(this);super.points=p}}get radius(){return[this.innerRadius,this.outerRadius]}set radius(u){u=Object(n.toArray)(u,!0),Array.isArray(u)||(u=[u,u]),this.innerRadius=u[0],this.outerRadius=u[1]}get offsetAngle(){return this[i]("offsetAngle")}set offsetAngle(u){if(u=Object(n.toNumber)(u),this[s]("offsetAngle",u)){const p=o(this);super.points=p}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(226),n=t(213),a=t(243);t(1).glMatrix.setMatrixArrayType(Array);function s(o,c,m){return c in o?Object.defineProperty(o,c,{value:m,enumerable:!0,configurable:!0,writable:!0}):o[c]=m,o}class i extends e.default{get isVisible(){const{radiusX:c,radiusY:m,startAngle:u,endAngle:p}=this.attributes;return c>0&&m>0&&u!==p&&super.isVisible}}s(i,"Attr",a.default),n.default.registerNode(i,"ellipse")},function(d,r,t){t.r(r),t.d(r,"default",function(){return u});var e=t(12),n=t(228),a=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),i=Symbol.for("spritejs_setAttribute"),o=Symbol.for("spritejs_getAttribute"),c=Symbol.for("spritejs_declareAlias");function m(p){const{radiusX:y,radiusY:O,startAngle:x,endAngle:v,direction:T,closeType:l}=p,h=T==="anitclockwise",f=new e.Figure2D;return l==="sector"&&f.moveTo(0,0),f.ellipse(0,0,y,O,0,Math.PI*x/180,Math.PI*v/180,h),l!=="none"&&f.closePath(),f.path.reduce((A,C)=>A+C.join(" "),"")}class u extends n.default{constructor(y){super(y),this[s]({radiusX:0,radiusY:0,startAngle:0,endAngle:360,direction:"clockwise",closeType:"none"}),this[c]("radius","angle")}get d(){return this[o]("d")}set d(y){}get radiusX(){return this[o]("radiusX")}set radiusX(y){if(y=Object(a.toNumber)(y),this[i]("radiusX",y)){const O=m(this);this[i]("d",O)}}get radiusY(){return this[o]("radiusY")}set radiusY(y){if(y=Object(a.toNumber)(y),this[i]("radiusY",y)){const O=m(this);this[i]("d",O)}}get radius(){return[this.radiusX,this.radiusY]}set radius(y){y=Object(a.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this.radiusX=y[0],this.radiusY=y[1]}get angle(){return[this.startAngle,this.endAngle]}set angle(y){y=Object(a.toArray)(y),Array.isArray(y)||(y=[y,y]),this.startAngle=y[0],this.endAngle=y[1]}get direction(){return this[o]("direction")}set direction(y){if(y!=null&&y!=="clockwise"&&y!=="anticlockwise")throw new TypeError("Invalid direction type.");this[i]("direction",y)}get startAngle(){return this[o]("startAngle")}set startAngle(y){if(y=Object(a.toNumber)(y),this[i]("startAngle",y)){const O=m(this);this[i]("d",O)}}get endAngle(){return this[o]("endAngle")}set endAngle(y){if(y=Object(a.toNumber)(y),this[i]("endAngle",y)){const O=m(this);this[i]("d",O)}}get closeType(){return this[o]("closeType")}set closeType(y){if(y!=null&&y!=="none"&&y!=="sector"&&y!=="normal")throw new TypeError("Invalid closeType type.");if(this[i]("closeType",y)){const O=m(this);this[i]("d",O)}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(242),n=t(213),a=t(245);t(1).glMatrix.setMatrixArrayType(Array);function s(o,c,m){return c in o?Object.defineProperty(o,c,{value:m,enumerable:!0,configurable:!0,writable:!0}):o[c]=m,o}class i extends e.default{}s(i,"Attr",a.default),n.default.registerNode(i,"arc")},function(d,r,t){t.r(r),t.d(r,"default",function(){return a});var e=t(243),n=t(72);t(1).glMatrix.setMatrixArrayType(Array);class a extends e.default{get radius(){return super.radiusX}set radius(i){i=Object(n.toNumber)(i),super.radiusX=i,super.radiusY=i}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(226),n=t(213),a=t(247);t(1).glMatrix.setMatrixArrayType(Array);function s(o,c,m){return c in o?Object.defineProperty(o,c,{value:m,enumerable:!0,configurable:!0,writable:!0}):o[c]=m,o}class i extends e.default{get isVisible(){const{innerRadius:c,outerRadius:m,startAngle:u,endAngle:p}=this.attributes;return(c>0||m>0)&&u!==p&&super.isVisible}}s(i,"Attr",a.default),n.default.registerNode(i,"ring")},function(d,r,t){t.r(r),t.d(r,"default",function(){return u});var e=t(12),n=t(228),a=t(72);t(1).glMatrix.setMatrixArrayType(Array);const s=Symbol.for("spritejs_setAttributeDefault"),i=Symbol.for("spritejs_setAttribute"),o=Symbol.for("spritejs_getAttribute"),c=Symbol.for("spritejs_declareAlias");function m(p){let{innerRadius:y,outerRadius:O,startAngle:x,endAngle:v}=p;const T=new e.Figure2D;if(x=Math.PI*x/180,v=Math.PI*v/180,y>O&&([y,O]=[O,y]),y<=0&&T.moveTo(0,0),T.arc(0,0,O,x,v,!1),y>0){const f=Math.PI*2;v<x&&(v=x+f+(v-x)%f),v-x>=f&&(v=x+f-1e-6),T.arc(0,0,y,v,x,!0)}return T.closePath(),T.path.reduce((f,g)=>f+g.join(" "),"")}class u extends n.default{constructor(y){super(y),this[s]({innerRadius:0,outerRadius:0,startAngle:0,endAngle:360}),this[c]("radius","angle")}get d(){return this[o]("d")}set d(y){}get innerRadius(){return this[o]("innerRadius")}set innerRadius(y){if(y=Object(a.toNumber)(y),this[i]("innerRadius",y)){const O=m(this);this[i]("d",O)}}get outerRadius(){return this[o]("outerRadius")}set outerRadius(y){if(y=Object(a.toNumber)(y),this[i]("outerRadius",y)){const O=m(this);this[i]("d",O)}}get radius(){return[this.innerRadius,this.outerRadius]}set radius(y){y=Object(a.toArray)(y,!0),Array.isArray(y)||(y=[y,y]),this.innerRadius=y[0],this.outerRadius=y[1]}get startAngle(){return this[o]("startAngle")}set startAngle(y){if(y=Object(a.toNumber)(y),this[i]("startAngle",y)){const O=m(this);this[i]("d",O)}}get endAngle(){return this[o]("endAngle")}set endAngle(y){if(y=Object(a.toNumber)(y),this[i]("endAngle",y)){const O=m(this);this[i]("d",O)}}get angle(){return[this.startAngle,this.endAngle]}set angle(y){y=Object(a.toArray)(y),Array.isArray(y)||(y=[y,y]),this.startAngle=y[0],this.endAngle=y[1]}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return O});var e=t(12),n=t(218),a=t(219),s=t(249),i=t(213);t(1).glMatrix.setMatrixArrayType(Array);function o(x,v,T){return v in x?Object.defineProperty(x,v,{value:T,enumerable:!0,configurable:!0,writable:!0}):x[v]=T,x}const c=Symbol("textImage"),m=Symbol("textImageTask"),u=Symbol("textureContext"),p=Symbol("updateTextureRect"),y=Symbol("textCanvas");class O extends a.default{constructor(v={}){typeof v=="string"&&(v={text:v}),super(v)}get contentSize(){let[v,T]=super.contentSize;const{width:l,height:h}=this.attributes;if(l==null||h==null){const f=this[c];f&&(l==null&&(v=f.rect[2]),h==null&&(T=f.rect[3]))}return[v,T]}get text(){return this.attributes.text}set text(v){this.attributes.text=v}get textContent(){return this.attributes.text}set textContent(v){this.attributes.text=v}get textImage(){return this[c]||{}}get textImageReady(){return this[m]||Promise.resolve()}draw(v){super.draw(v);const T=this.mesh;if(T){const l=this[c];if(l){let h=T.texture;if(!h||this[u]&&this[u]!==this.renderer||l.needsUpdate?(l.needsUpdate=!1,Object(n.deleteTexture)(l.image,this.renderer),h=Object(n.createTexture)(l.image,this.renderer),this[p]=!0):h=T.uniforms.u_texSampler,this[p]){const[f,g]=l.rect.slice(2),[M,A]=this.contentSize,C=this.attributes.textAlign,b=this.attributes.verticalAlign;let E=0;C==="center"?E=(M-f)/2:(C==="right"||C==="end")&&(E=M-f);const L=this.attributes.fontSize,D=this.attributes.lineHeight;let I=0;b==="top"?I=(L-D)/2:b==="bottom"&&(I=(D-L)/2);const{paddingLeft:R,paddingTop:B}=this.attributes,{borderWidth:z}=this.attributes;E+=R+z,I+=B+z;const{anchorX:K,anchorY:Q}=this.attributes;E-=this.offsetSize[0]*K,I-=this.offsetSize[1]*Q,T.setTexture(h,{rect:[E,I,f,g]}),this[p]=!1,this[u]=this.renderer}}}return v}onPropertyChange(v,T,l){v==="text"||v==="fontSize"||v==="fontFamily"||v==="fontStyle"||v==="fontVariant"||v==="fontWeight"||v==="fontStretch"||v==="lineHeight"||v==="strokeColor"||v==="fillColor"||v==="strokeWidth"?this.updateText():((v==="textAlign"||v==="verticalAlign")&&(this[p]=!0),super.onPropertyChange(v,T,l))}updateContours(){super.updateContours(),this[p]=!0}updateText(){this[m]||(this[m]=Promise.resolve().then(()=>{this[m]=null;const{text:v,font:T,fillColor:l,strokeColor:h,strokeWidth:f}=this.attributes,g=this.layer?this.layer.displayRatio:1;return this[y]=this[y]||e.ENV.createCanvas(1,1),this[c]=e.ENV.createText(v,{font:T,fillColor:l,strokeColor:h,strokeWidth:f,parseFont:e.parseFont,ratio:g,textCanvas:this[y]}),this[c].needsUpdate=!0,this.updateContours(),this.forceUpdate(),this[c]}))}}o(O,"Attr",s.default),i.default.registerNode(O,"label")},function(d,r,t){t.r(r),t.d(r,"default",function(){return u});var e=t(12),n=t(72),a=t(221),s=t(220);t(1).glMatrix.setMatrixArrayType(Array);const i=Symbol.for("spritejs_setAttributeDefault"),o=Symbol.for("spritejs_setAttribute"),c=Symbol.for("spritejs_getAttribute"),m=Symbol.for("spritejs_declareAlias");class u extends s.default{constructor(y){super(y),this[i]({text:"",fontSize:16,fontFamily:"Helvetica,Arial,sans-serif",fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",fontStretch:"normal",lineHeight:"",textAlign:"left",strokeColor:void 0,strokeWidth:1,fillColor:void 0,verticalAlign:"middle"}),this[m]("font")}get text(){return this[c]("text")||" "}set text(y){this[o]("text",y)}get fontSize(){return this[c]("fontSize")}set fontSize(y){this[o]("fontSize",Object(n.toNumber)(y))}get fontFamily(){return this[c]("fontFamily")}set fontFamily(y){this[o]("fontFamily",y)}get fontStyle(){return this[c]("fontStyle")}set fontStyle(y){this[o]("fontStyle",y)}get fontVariant(){return this[c]("fontVariant")}set fontVariant(y){this[o]("fontVariant",y)}get fontWeight(){return this[c]("fontWeight")}set fontWeight(y){this[o]("fontWeight",y)}get fontStretch(){return this[c]("fontStretch")}set fontStretch(y){this[o]("fontStretch",y)}get lineHeight(){return this[c]("lineHeight")||this.fontSize}set lineHeight(y){this[o]("lineHeight",Object(n.toNumber)(y))}get textAlign(){return this[c]("textAlign")}set textAlign(y){this[o]("textAlign",y)}get strokeColor(){return this[c]("strokeColor")}set strokeColor(y){this[o]("strokeColor",Object(a.parseColor)(y))}get strokeWidth(){return this[c]("strokeWidth")}set strokeWidth(y){this[o]("strokeWidth",Object(n.toNumber)(y))}get verticalAlign(){return this[c]("verticalAlign")}set verticalAlign(y){this[o]("verticalAlign",y)}get fillColor(){return this[c]("fillColor")}set fillColor(y){this[o]("fillColor",Object(a.parseColor)(y))}get font(){const{fontStyle:y,fontVariant:O,fontWeight:x,fontStretch:v,fontSize:T,lineHeight:l,fontFamily:h}=this;return`${y} ${O} ${x} ${v} ${T}px/${l}px ${h}`}set font(y){if(y==null)this.fontStyle=null,this.fontVariant=null,this.fontWeight=null,this.fontStretch=null,this.fontSize=null,this.lineHeight=null,this.fontFamily=null;else{const O=Object(e.parseFont)(y);this.fontStyle=O.style,this.fontVariant=O.variant,this.fontWeight=O.weight,this.fontStretch=O.stretch,this.fontSize=Object(n.toNumber)(`${O.size}${O.unit}`),O.lineHeight&&(this.lineHeight=O.pxLineHeight),this.fontFamily=O.family}}}},function(d,r,t){t.r(r),t.d(r,"default",function(){return y});var e=t(12),n=t(219),a=t(251),s=t(213),i=t(252);t(1).glMatrix.setMatrixArrayType(Array);function o(O,x,v){return x in O?Object.defineProperty(O,x,{value:v,enumerable:!0,configurable:!0,writable:!0}):O[x]=v,O}const c=Symbol("zOrder"),m=Symbol("ordered"),u=Symbol("children"),p=Symbol("sealed");class y extends n.default{constructor(x={}){super(x),this[u]=[],this[m]=null,this[c]=0}get childNodes(){return this[u]}get children(){return this[u]}get orderedChildren(){return this[m]||(this[m]=[...this[u]],this[m].sort((x,v)=>x.zIndex-v.zIndex||x.zOrder-v.zOrder)),this[m]}append(...x){return x.map(v=>this.appendChild(v))}appendChild(x){return x.remove(),this[u].push(x),x.connect(this,this[c]++),this[m]&&(this[m].length&&x.zIndex<this[m][this[m].length-1].zIndex?this.reorder():this[m].push(x)),x}cloneNode(x=!1){const v=super.cloneNode();return x&&this[u].forEach(T=>{const l=T.cloneNode(x);v.appendChild(l)}),v}dispatchPointerEvent(x){const v=this.orderedChildren;for(let T=v.length-1;T>=0;T--)if(v[T].dispatchPointerEvent(x))return!0;return super.dispatchPointerEvent(x)}draw(x=[]){if(this.__cacheRenderMatrix=this.renderMatrix,super.draw(x),!this[p]&&this.attributes.display!=="none"){const v=this.orderedChildren;for(let T=0;T<v.length;T++)v[T].draw(x)}return this.__cacheRenderMatrix=null,x}getElementById(x){return Object(i.querySelector)(`#${x}`,this)}getElementsByClassName(x){return Object(i.querySelectorAll)(`.${x}`,this)}getElementsByName(x){return Object(i.querySelectorAll)(`[name="${x}"]`,this)}getElementsByTagName(x){return Object(i.querySelectorAll)(x,this)}insertBefore(x,v){if(v==null)return this.appendChild(x);x.remove();const T=this[u].indexOf(v);if(T<0)throw new Error("Invalid reference node.");const l=v.zOrder;for(let h=T;h<this[u].length;h++){const f=this[u][h].zOrder,g=this[u][h];delete g.zOrder,Object.defineProperty(g,"zOrder",{value:f+1,writable:!1,configurable:!0})}if(this[u].splice(T,0,x),x.connect(this,l),this[m])if(x.zIndex!==v.zIndex)this.reorder();else{const h=this[m].indexOf(v);this[m].splice(h,0,x)}return x}querySelector(x){return Object(i.querySelector)(x,this)}querySelectorAll(x){return Object(i.querySelectorAll)(x,this)}replaceChild(x,v){x.remove();const T=this[u].indexOf(v);if(T<0)throw new Error("Invalid reference node.");if(this[u][T]=x,x.connect(this,v.zOrder),this[m])if(x.zIndex!==v.zIndex)this.reorder();else{const l=this[m].indexOf(v);this[m][l]=x}return v.disconnect(this),x}removeAllChildren(){const x=this[u];for(let v=x.length-1;v>=0;v--)x[v].remove()}removeChild(x){const v=this[u].indexOf(x);if(v>=0){if(this[u].splice(v,1),this[m]){const T=this[m].indexOf(x);this[m].splice(T,1)}return x.disconnect(this),x}return null}reorder(){this[m]=null}seal(){function x(h,f){const g=[];for(let M=0;M<h.length;M++){const A=[...h[M]];for(let C=1;C<A.length;C+=2){const b=A[C],E=A[C+1];A[C]=b*f[0]+E*f[2]+f[4],A[C+1]=b*f[1]+E*f[3]+f[5]}g.push(A)}return g}const v=this.orderedChildren,T=new e.Figure2D,l=this.localMatrix;for(let h=0;h<v.length;h++){let f=v[h];if(f instanceof y&&(f=f.seal()),f.clientBox){let g=f.clientBox.contours.path;g=x(g,f.localMatrix),T.addPath(g)}if(f.path){let g=f.path.contours.path;g=x(g,f.localMatrix),T.addPath(g)}}return this[p]=!0,this.clientBox=T,{clientBox:T,localMatrix:l}}setResolution({width:x,height:v}){super.setResolution({width:x,height:v}),this[u].forEach(T=>{T.setResolution({width:x,height:v})})}updateContours(){this[p]||super.updateContours()}}o(y,"Attr",a.default),s.default.registerNode(y,"group")},function(d,r,t){t.r(r),t.d(r,"default",function(){return n});var e=t(220);t(1).glMatrix.setMatrixArrayType(Array);class n extends e.default{}},function(d,r,t){t.r(r),t.d(r,"querySelectorAll",function(){return p}),t.d(r,"querySelector",function(){return y}),t.d(r,"isMatched",function(){return O}),t.d(r,"compile",function(){return x});var e=t(221),n=t(213);t(1).glMatrix.setMatrixArrayType(Array);const a=t(253);function s(v){return v.nodeType===1||n.default.isSpriteNode(v.nodeName)}function i(v){return Array.from(v.childNodes||[])}function o(v){return n.default.isSpriteNode(v.nodeName)?v.parent||v.canvas||v.container:v.parentElement}function c(v){let T=v.length,l,h,f;for(;--T>-1;){for(l=h=v[T],v[T]=null,f=!0;h;){if(v.indexOf(h)>-1){f=!1,v.splice(T,1);break}h=o(h)}f&&(v[T]=l)}return v}const m={isTag:s,existsOne(v,T){return T.some(l=>s(l)?v(l)||m.existsOne(v,i(l)):!1)},getSiblings(v){const T=o(v);return T&&i(T)},getChildren:i,getParent:o,getAttributeValue(v,T){if(v.nodeType===1&&T==="class"||T==="id")return v[T];if(this.hasAttrib(v,T)){let l=v.attributes[T];return Array.isArray(l)&&(l=`[${l.join()}]`),String(l)}},hasAttrib(v,T){return v.attributes[T]!=null},removeSubsets:c,getName(v){return v.tagName?v.tagName.toLowerCase():null},findOne:function v(T,l){let h=null;for(let f=0,g=l.length;f<g&&!h;f++)if(T(l[f]))h=l[f];else{const M=i(l[f]);M&&M.length>0&&(h=v(T,M))}return h},findAll:function v(T,l){let h=[];for(let f=0,g=l.length;f<g;f++){if(!s(l[f]))continue;T(l[f])&&h.push(l[f]);const M=i(l[f]);M&&(h=h.concat(v(T,M)))}return h},getText:function v(T){return Array.isArray(T)?T.map(v).join(""):s(T)?v(i(T)):T.nodeType===3?T.nodeValue:n.default.isSpriteNode(T.nodeName)?T.text:""}};function u(v){if(typeof v!="string")return v;let T=v.match(/\[(bgcolor|fillColor|strokeColor|color)\s*=\s*['"]?\w+['"]?\]/g);return T&&(T=T.map(l=>{const h=l.slice(1,-1).split("="),f=Object(e.parseColor)(h[1].replace(/['"]/g,""));return[l,`[${h[0]}="${f}"]`]}),T.forEach(([l,h])=>{v=v.replace(l,h)})),T=v.match(/\[\w+\s*=\s*['"]\[.+?\]['"]\]/g),T&&(T=T.map(l=>{const h=l.slice(1,-1).split("="),f=h[1].slice(2,-2).split(/,/g).map(g=>g.trim());return[l,`[${h[0]}="[${f}]"]`]}),T.forEach(([l,h])=>{v=v.replace(l,h)})),v}function p(v,T){return a.selectAll(u(v),T,{adapter:m})}function y(v,T){return a.selectOne(u(v),T,{adapter:m})}function O(v,T){return a.is(v,u(T),{adapter:m})}function x(v){return a.compile(u(v),{adapter:m})}},function(d,r,t){d.exports=x;var e=t(254),n=t(273).falseFunc,a=t(274);function s(v){return function(l,h,f){return h=h||{},h.adapter=h.adapter||e,v(l,h,f)}}var i=s(a),o=s(a.compileUnsafe);function c(v){return function(l,h,f){return f=f||{},f.adapter=f.adapter||e,typeof l!="function"&&(l=o(l,f,h)),l.shouldTestNextSiblings&&(h=u(f&&f.context||h,f.adapter)),Array.isArray(h)?h=f.adapter.removeSubsets(h):h=f.adapter.getChildren(h),v(l,h,f)}}function m(v,T){var l=T.getSiblings(v);if(!Array.isArray(l))return[];for(l=l.slice(0);l.shift()!==v;);return l}function u(v,T){Array.isArray(v)||(v=[v]);for(var l=v.slice(0),h=0,f=v.length;h<f;h++){var g=m(l[h],T);l.push.apply(l,g)}return l}var p=c(function(T,l,h){return T===n||!l||l.length===0?[]:h.adapter.findAll(T,l)}),y=c(function(T,l,h){return T===n||!l||l.length===0?null:h.adapter.findOne(T,l)});function O(v,T,l){return l=l||{},l.adapter=l.adapter||e,(typeof T=="function"?T:i(T,l))(v)}function x(v,T,l){return p(v,T,l)}x.compile=i,x.filters=a.Pseudos.filters,x.pseudos=a.Pseudos.pseudos,x.selectAll=p,x.selectOne=y,x.is=O,x.parse=i,x.iterate=p,x._compileUnsafe=o,x._compileToken=a.compileToken},function(d,r,t){var e=d.exports;[t(255),t(268),t(269),t(270),t(271),t(272)].forEach(function(n){Object.keys(n).forEach(function(a){e[a]=n[a].bind(e)})})},function(d,r,t){var e=t(256),n=t(257),a=e.isTag;d.exports={getInnerHTML:s,getOuterHTML:n,getText:i};function s(o,c){return o.children?o.children.map(function(m){return n(m,c)}).join(""):""}function i(o){return Array.isArray(o)?o.map(i).join(""):a(o)?o.name==="br"?`
565
+ `:i(o.children):o.type===e.CDATA?i(o.children):o.type===e.Text?o.data:""}},function(d,r){d.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",Doctype:"doctype",isTag:function(t){return t.type==="tag"||t.type==="script"||t.type==="style"}}},function(d,r,t){var e=t(258),n=t(259),a=t(267);a.elementNames.__proto__=null,a.attributeNames.__proto__=null;var s={__proto__:null,style:!0,script:!0,xmp:!0,iframe:!0,noembed:!0,noframes:!0,plaintext:!0,noscript:!0};function i(v,T){if(v){var l="",h;for(var f in v)h=v[f],l&&(l+=" "),T.xmlMode==="foreign"&&(f=a.attributeNames[f]||f),l+=f,(h!==null&&h!==""||T.xmlMode)&&(l+='="'+(T.decodeEntities?n.encodeXML(h):h.replace(/\"/g,"&quot;"))+'"');return l}}var o={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},c=d.exports=function(v,T){!Array.isArray(v)&&!v.cheerio&&(v=[v]),T=T||{};for(var l="",h=0;h<v.length;h++){var f=v[h];f.type==="root"?l+=c(f.children,T):e.isTag(f)?l+=u(f,T):f.type===e.Directive?l+=p(f):f.type===e.Comment?l+=x(f):f.type===e.CDATA?l+=O(f):l+=y(f,T)}return l},m=["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"];function u(v,T){T.xmlMode==="foreign"&&(v.name=a.elementNames[v.name]||v.name,v.parent&&m.indexOf(v.parent.name)>=0&&(T=Object.assign({},T,{xmlMode:!1}))),!T.xmlMode&&["svg","math"].indexOf(v.name)>=0&&(T=Object.assign({},T,{xmlMode:"foreign"}));var l="<"+v.name,h=i(v.attribs,T);return h&&(l+=" "+h),T.xmlMode&&(!v.children||v.children.length===0)?l+="/>":(l+=">",v.children&&(l+=c(v.children,T)),(!o[v.name]||T.xmlMode)&&(l+="</"+v.name+">")),l}function p(v){return"<"+v.data+">"}function y(v,T){var l=v.data||"";return T.decodeEntities&&!(v.parent&&v.parent.name in s)&&(l=n.encodeXML(l)),l}function O(v){return"<![CDATA["+v.children[0].data+"]]>"}function x(v){return"<!--"+v.data+"-->"}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0});function e(n){return n.type==="tag"||n.type==="script"||n.type==="style"}r.isTag=e,r.Text="text",r.Directive="directive",r.Comment="comment",r.Script="script",r.Style="style",r.Tag="tag",r.CDATA="cdata",r.Doctype="doctype"},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.encode=r.decodeStrict=r.decode=void 0;var e=t(260),n=t(266);function a(m,u){return(!u||u<=0?e.decodeXML:e.decodeHTML)(m)}r.decode=a;function s(m,u){return(!u||u<=0?e.decodeXML:e.decodeHTMLStrict)(m)}r.decodeStrict=s;function i(m,u){return(!u||u<=0?n.encodeXML:n.encodeHTML)(m)}r.encode=i;var o=t(266);Object.defineProperty(r,"encodeXML",{enumerable:!0,get:function(){return o.encodeXML}}),Object.defineProperty(r,"encodeHTML",{enumerable:!0,get:function(){return o.encodeHTML}}),Object.defineProperty(r,"escape",{enumerable:!0,get:function(){return o.escape}}),Object.defineProperty(r,"encodeHTML4",{enumerable:!0,get:function(){return o.encodeHTML}}),Object.defineProperty(r,"encodeHTML5",{enumerable:!0,get:function(){return o.encodeHTML}});var c=t(260);Object.defineProperty(r,"decodeXML",{enumerable:!0,get:function(){return c.decodeXML}}),Object.defineProperty(r,"decodeHTML",{enumerable:!0,get:function(){return c.decodeHTML}}),Object.defineProperty(r,"decodeHTMLStrict",{enumerable:!0,get:function(){return c.decodeHTMLStrict}}),Object.defineProperty(r,"decodeHTML4",{enumerable:!0,get:function(){return c.decodeHTML}}),Object.defineProperty(r,"decodeHTML5",{enumerable:!0,get:function(){return c.decodeHTML}}),Object.defineProperty(r,"decodeHTML4Strict",{enumerable:!0,get:function(){return c.decodeHTMLStrict}}),Object.defineProperty(r,"decodeHTML5Strict",{enumerable:!0,get:function(){return c.decodeHTMLStrict}}),Object.defineProperty(r,"decodeXMLStrict",{enumerable:!0,get:function(){return c.decodeXML}})},function(d,r,t){var e=this&&this.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(r,"__esModule",{value:!0}),r.decodeHTML=r.decodeHTMLStrict=r.decodeXML=void 0;var n=e(t(261)),a=e(t(262)),s=e(t(263)),i=e(t(264));r.decodeXML=o(s.default),r.decodeHTMLStrict=o(n.default);function o(u){var p=Object.keys(u).join("|"),y=m(u);p+="|#[xX][\\da-fA-F]+|#\\d+";var O=new RegExp("&(?:"+p+");","g");return function(x){return String(x).replace(O,y)}}var c=function(u,p){return u<p?1:-1};r.decodeHTML=function(){for(var u=Object.keys(a.default).sort(c),p=Object.keys(n.default).sort(c),y=0,O=0;y<p.length;y++)u[O]===p[y]?(p[y]+=";?",O++):p[y]+=";";var x=new RegExp("&(?:"+p.join("|")+"|#[xX][\\da-fA-F]+;?|#\\d+;?)","g"),v=m(n.default);function T(l){return l.substr(-1)!==";"&&(l+=";"),v(l)}return function(l){return String(l).replace(x,T)}}();function m(u){return function(y){if(y.charAt(1)==="#"){var O=y.charAt(2);return O==="X"||O==="x"?i.default(parseInt(y.substr(3),16)):i.default(parseInt(y.substr(2),10))}return u[y.slice(1,-1)]}}},function(d){d.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},function(d){d.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"­","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}')},function(d){d.exports=JSON.parse(`{"amp":"&","apos":"'","gt":">","lt":"<","quot":"\\""}`)},function(d,r,t){var e=this&&this.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(r,"__esModule",{value:!0});var n=e(t(265));function a(s){if(s>=55296&&s<=57343||s>1114111)return"�";s in n.default&&(s=n.default[s]);var i="";return s>65535&&(s-=65536,i+=String.fromCharCode(s>>>10&1023|55296),s=56320|s&1023),i+=String.fromCharCode(s),i}r.default=a},function(d){d.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},function(d,r,t){var e=this&&this.__importDefault||function(T){return T&&T.__esModule?T:{default:T}};Object.defineProperty(r,"__esModule",{value:!0}),r.escape=r.encodeHTML=r.encodeXML=void 0;var n=e(t(263)),a=m(n.default),s=u(a);r.encodeXML=O(a,s);var i=e(t(261)),o=m(i.default),c=u(o);r.encodeHTML=O(o,c);function m(T){return Object.keys(T).sort().reduce(function(l,h){return l[T[h]]="&"+h+";",l},{})}function u(T){for(var l=[],h=[],f=0,g=Object.keys(T);f<g.length;f++){var M=g[f];M.length===1?l.push("\\"+M):h.push(M)}l.sort();for(var A=0;A<l.length-1;A++){for(var C=A;C<l.length-1&&l[C].charCodeAt(1)+1===l[C+1].charCodeAt(1);)C+=1;var b=1+C-A;b<3||l.splice(A,b,l[A]+"-"+l[C])}return h.unshift("["+l.join("")+"]"),new RegExp(h.join("|"),"g")}var p=/(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g;function y(T){return"&#x"+T.codePointAt(0).toString(16).toUpperCase()+";"}function O(T,l){return function(h){return h.replace(l,function(f){return T[f]}).replace(p,y)}}var x=u(a);function v(T){return T.replace(x,y).replace(p,y)}r.escape=v},function(d){d.exports=JSON.parse('{"elementNames":{"altglyph":"altGlyph","altglyphdef":"altGlyphDef","altglyphitem":"altGlyphItem","animatecolor":"animateColor","animatemotion":"animateMotion","animatetransform":"animateTransform","clippath":"clipPath","feblend":"feBlend","fecolormatrix":"feColorMatrix","fecomponenttransfer":"feComponentTransfer","fecomposite":"feComposite","feconvolvematrix":"feConvolveMatrix","fediffuselighting":"feDiffuseLighting","fedisplacementmap":"feDisplacementMap","fedistantlight":"feDistantLight","fedropshadow":"feDropShadow","feflood":"feFlood","fefunca":"feFuncA","fefuncb":"feFuncB","fefuncg":"feFuncG","fefuncr":"feFuncR","fegaussianblur":"feGaussianBlur","feimage":"feImage","femerge":"feMerge","femergenode":"feMergeNode","femorphology":"feMorphology","feoffset":"feOffset","fepointlight":"fePointLight","fespecularlighting":"feSpecularLighting","fespotlight":"feSpotLight","fetile":"feTile","feturbulence":"feTurbulence","foreignobject":"foreignObject","glyphref":"glyphRef","lineargradient":"linearGradient","radialgradient":"radialGradient","textpath":"textPath"},"attributeNames":{"definitionurl":"definitionURL","attributename":"attributeName","attributetype":"attributeType","basefrequency":"baseFrequency","baseprofile":"baseProfile","calcmode":"calcMode","clippathunits":"clipPathUnits","diffuseconstant":"diffuseConstant","edgemode":"edgeMode","filterunits":"filterUnits","glyphref":"glyphRef","gradienttransform":"gradientTransform","gradientunits":"gradientUnits","kernelmatrix":"kernelMatrix","kernelunitlength":"kernelUnitLength","keypoints":"keyPoints","keysplines":"keySplines","keytimes":"keyTimes","lengthadjust":"lengthAdjust","limitingconeangle":"limitingConeAngle","markerheight":"markerHeight","markerunits":"markerUnits","markerwidth":"markerWidth","maskcontentunits":"maskContentUnits","maskunits":"maskUnits","numoctaves":"numOctaves","pathlength":"pathLength","patterncontentunits":"patternContentUnits","patterntransform":"patternTransform","patternunits":"patternUnits","pointsatx":"pointsAtX","pointsaty":"pointsAtY","pointsatz":"pointsAtZ","preservealpha":"preserveAlpha","preserveaspectratio":"preserveAspectRatio","primitiveunits":"primitiveUnits","refx":"refX","refy":"refY","repeatcount":"repeatCount","repeatdur":"repeatDur","requiredextensions":"requiredExtensions","requiredfeatures":"requiredFeatures","specularconstant":"specularConstant","specularexponent":"specularExponent","spreadmethod":"spreadMethod","startoffset":"startOffset","stddeviation":"stdDeviation","stitchtiles":"stitchTiles","surfacescale":"surfaceScale","systemlanguage":"systemLanguage","tablevalues":"tableValues","targetx":"targetX","targety":"targetY","textlength":"textLength","viewbox":"viewBox","viewtarget":"viewTarget","xchannelselector":"xChannelSelector","ychannelselector":"yChannelSelector","zoomandpan":"zoomAndPan"}}')},function(d,r){var t=r.getChildren=function(n){return n.children},e=r.getParent=function(n){return n.parent};r.getSiblings=function(n){var a=e(n);return a?t(a):[n]},r.getAttributeValue=function(n,a){return n.attribs&&n.attribs[a]},r.hasAttrib=function(n,a){return!!n.attribs&&hasOwnProperty.call(n.attribs,a)},r.getName=function(n){return n.name}},function(d,r){r.removeElement=function(t){if(t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t.parent){var e=t.parent.children;e.splice(e.lastIndexOf(t),1)}},r.replaceElement=function(t,e){var n=e.prev=t.prev;n&&(n.next=e);var a=e.next=t.next;a&&(a.prev=e);var s=e.parent=t.parent;if(s){var i=s.children;i[i.lastIndexOf(t)]=e}},r.appendChild=function(t,e){if(e.parent=t,t.children.push(e)!==1){var n=t.children[t.children.length-2];n.next=e,e.prev=n,e.next=null}},r.append=function(t,e){var n=t.parent,a=t.next;if(e.next=a,e.prev=t,t.next=e,e.parent=n,a){if(a.prev=e,n){var s=n.children;s.splice(s.lastIndexOf(a),0,e)}}else n&&n.children.push(e)},r.prepend=function(t,e){var n=t.parent;if(n){var a=n.children;a.splice(a.lastIndexOf(t),0,e)}t.prev&&(t.prev.next=e),e.parent=n,e.prev=t.prev,e.next=t,t.prev=e}},function(d,r,t){var e=t(256).isTag;d.exports={filter:n,find:a,findOneChild:s,findOne:i,existsOne:o,findAll:c};function n(m,u,p,y){return Array.isArray(u)||(u=[u]),(typeof y!="number"||!isFinite(y))&&(y=1/0),a(m,u,p!==!1,y)}function a(m,u,p,y){for(var O=[],x,v=0,T=u.length;v<T&&!(m(u[v])&&(O.push(u[v]),--y<=0)||(x=u[v].children,p&&x&&x.length>0&&(x=a(m,x,p,y),O=O.concat(x),y-=x.length,y<=0)));v++);return O}function s(m,u){for(var p=0,y=u.length;p<y;p++)if(m(u[p]))return u[p];return null}function i(m,u){for(var p=null,y=0,O=u.length;y<O&&!p;y++)if(e(u[y]))m(u[y])?p=u[y]:u[y].children.length>0&&(p=i(m,u[y].children));else continue;return p}function o(m,u){for(var p=0,y=u.length;p<y;p++)if(e(u[p])&&(m(u[p])||u[p].children.length>0&&o(m,u[p].children)))return!0;return!1}function c(m,u){for(var p=[],y=u.slice();y.length;){var O=y.shift();e(O)&&(O.children&&O.children.length>0&&y.unshift.apply(y,O.children),m(O)&&p.push(O))}return p}},function(d,r,t){var e=t(256),n=r.isTag=e.isTag;r.testElement=function(o,c){for(var m in o)if(o.hasOwnProperty(m)){if(m==="tag_name"){if(!n(c)||!o.tag_name(c.name))return!1}else if(m==="tag_type"){if(!o.tag_type(c.type))return!1}else if(m==="tag_contains"){if(n(c)||!o.tag_contains(c.data))return!1}else if(!c.attribs||!o[m](c.attribs[m]))return!1}return!0};var a={tag_name:function(o){return typeof o=="function"?function(c){return n(c)&&o(c.name)}:o==="*"?n:function(c){return n(c)&&c.name===o}},tag_type:function(o){return typeof o=="function"?function(c){return o(c.type)}:function(c){return c.type===o}},tag_contains:function(o){return typeof o=="function"?function(c){return!n(c)&&o(c.data)}:function(c){return!n(c)&&c.data===o}}};function s(o,c){return typeof c=="function"?function(m){return m.attribs&&c(m.attribs[o])}:function(m){return m.attribs&&m.attribs[o]===c}}function i(o,c){return function(m){return o(m)||c(m)}}r.getElements=function(o,c,m,u){var p=Object.keys(o).map(function(y){var O=o[y];return y in a?a[y](O):s(y,O)});return p.length===0?[]:this.filter(p.reduce(i),c,m,u)},r.getElementById=function(o,c,m){return Array.isArray(c)||(c=[c]),this.findOne(s("id",o),c,m!==!1)},r.getElementsByTagName=function(o,c,m,u){return this.filter(a.tag_name(o),c,m,u)},r.getElementsByTagType=function(o,c,m,u){return this.filter(a.tag_type(o),c,m,u)}},function(d,r){r.removeSubsets=function(n){for(var a=n.length,s,i,o;--a>-1;){for(s=i=n[a],n[a]=null,o=!0;i;){if(n.indexOf(i)>-1){o=!1,n.splice(a,1);break}i=i.parent}o&&(n[a]=s)}return n};var t={DISCONNECTED:1,PRECEDING:2,FOLLOWING:4,CONTAINS:8,CONTAINED_BY:16},e=r.compareDocumentPosition=function(n,a){var s=[],i=[],o,c,m,u,p,y;if(n===a)return 0;for(o=n;o;)s.unshift(o),o=o.parent;for(o=a;o;)i.unshift(o),o=o.parent;for(y=0;s[y]===i[y];)y++;return y===0?t.DISCONNECTED:(c=s[y-1],m=c.children,u=s[y],p=i[y],m.indexOf(u)>m.indexOf(p)?c===a?t.FOLLOWING|t.CONTAINED_BY:t.FOLLOWING:c===n?t.PRECEDING|t.CONTAINS:t.PRECEDING)};r.uniqueSort=function(n){var a=n.length,s,i;for(n=n.slice();--a>-1;)s=n[a],i=n.indexOf(s),i>-1&&i<a&&n.splice(a,1);return n.sort(function(o,c){var m=e(o,c);return m&t.PRECEDING?-1:m&t.FOLLOWING?1:0}),n}},function(d,r){d.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},function(d,r,t){d.exports=p;var e=t(275).parse,n=t(273),a=t(278),s=t(279),i=t(280),o=t(282),c=n.trueFunc,m=n.falseFunc,u=o.filters;function p(E,L,D){var I=O(E,L,D);return y(I,L)}function y(E,L){var D=L.adapter;return function(R){return D.isTag(R)&&E(R)}}function O(E,L,D){var I=e(E,L);return g(I,L,D)}function x(E){return E.type==="pseudo"&&(E.name==="scope"||Array.isArray(E.data)&&E.data.some(function(L){return L.some(x)}))}var v={type:"descendant"},T={type:"_flexibleDescendant"},l={type:"pseudo",name:"scope"},h={};function f(E,L,D){var I=L.adapter,R=!!D&&!!D.length&&D.every(function(B){return B===h||!!I.getParent(B)});E.forEach(function(B){if(!(B.length>0&&M(B[0])&&B[0].type!=="descendant"))if(R&&!(Array.isArray(B)?B.some(x):x(B)))B.unshift(v);else return;B.unshift(l)})}function g(E,L,D){E=E.filter(function(z){return z.length>0}),E.forEach(a);var I=Array.isArray(D);D=L&&L.context||D,D&&!I&&(D=[D]),f(E,L,D);var R=!1,B=E.map(function(z){if(z[0]&&z[1]&&z[0].name==="scope"){var K=z[1].type;I&&K==="descendant"?z[1]=T:(K==="adjacent"||K==="sibling")&&(R=!0)}return A(z,L,D)}).reduce(C,m);return B.shouldTestNextSiblings=R,B}function M(E){return s[E.type]<0}function A(E,L,D){return E.reduce(function(I,R){if(I===m)return I;if(!(R.type in i))throw new Error("Rule type "+R.type+" is not supported by css-select");return i[R.type](I,R,L,D)},L&&L.rootFunc||c)}function C(E,L){return L===m||E===c?E:E===m||L===c?L:function(I){return E(I)||L(I)}}function b(E){return E.some(M)}u.not=function(E,L,D,I){var R={xmlMode:!!(D&&D.xmlMode),strict:!!(D&&D.strict),adapter:D.adapter};if(R.strict&&(L.length>1||L.some(b)))throw new Error("complex selectors in :not aren't allowed in strict mode");var B=g(L,R,I);return B===m?E:B===c?m:function(K){return!B(K)&&E(K)}},u.has=function(E,L,D){var I=D.adapter,R={xmlMode:!!(D&&D.xmlMode),strict:!!(D&&D.strict),adapter:I},B=L.some(b)?[h]:null,z=g(L,R,B);return z===m?m:z===c?function(Q){return I.getChildren(Q).some(I.isTag)&&E(Q)}:(z=y(z,D),B?function(Q){return E(Q)&&(B[0]=Q,I.existsOne(z,I.getChildren(Q)))}:function(Q){return E(Q)&&I.existsOne(z,I.getChildren(Q))})},u.matches=function(E,L,D,I){var R={xmlMode:!!(D&&D.xmlMode),strict:!!(D&&D.strict),rootFunc:E,adapter:D.adapter};return g(L,R,I)},p.compileToken=g,p.compileUnsafe=O,p.Pseudos=o},function(d,r,t){var e=this&&this.__createBinding||(Object.create?function(i,o,c,m){m===void 0&&(m=c),Object.defineProperty(i,m,{enumerable:!0,get:function(){return o[c]}})}:function(i,o,c,m){m===void 0&&(m=c),i[m]=o[c]}),n=this&&this.__exportStar||function(i,o){for(var c in i)c!=="default"&&!o.hasOwnProperty(c)&&e(o,i,c)};Object.defineProperty(r,"__esModule",{value:!0}),n(t(276),r);var a=t(276);Object.defineProperty(r,"parse",{enumerable:!0,get:function(){return a.default}});var s=t(277);Object.defineProperty(r,"stringify",{enumerable:!0,get:function(){return s.default}})},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0}),r.default=x;var e=/^[^\\]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/,n=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,a=/^\s*((?:\\.|[\w\u00b0-\uFFFF-])+)\s*(?:(\S?)=\s*(?:(['"])([^]*?)\3|(#?(?:\\.|[\w\u00b0-\uFFFF-])*)|)|)\s*(i)?\]/,s={undefined:"exists","":"equals","~":"element","^":"start",$:"end","*":"any","!":"not","|":"hyphen"},i={">":"child","<":"parent","~":"sibling","+":"adjacent"},o={"#":["id","equals"],".":["class","element"]},c=new Set(["has","not","matches"]),m=new Set(["contains","icontains"]),u=new Set(['"',"'"]);function p(l,h,f){var g=parseInt(h,16)-65536;return g!==g||f?h:g<0?String.fromCharCode(g+65536):String.fromCharCode(g>>10|55296,g&1023|56320)}function y(l){return l.replace(n,p)}function O(l){return l===" "||l===`
566
+ `||l===" "||l==="\f"||l==="\r"}function x(l,h){var f=[];if(l=v(f,""+l,h),l!=="")throw new Error("Unmatched selector: "+l);return f}function v(l,h,f){var g=[],M=!1;function A(){var X=h.match(e);if(!X)throw new Error("Expected name, found "+h);var Z=X[0];return h=h.substr(Z.length),y(Z)}function C(X){for(;O(h.charAt(X));)X++;h=h.substr(X)}function b(X){for(var Z=0;h.charAt(--X)==="\\";)Z++;return(Z&1)===1}for(C(0);h!=="";){var E=h.charAt(0);if(O(E))M=!0,C(1);else if(E in i)g.push({type:i[E]}),M=!1,C(1);else if(E===","){if(g.length===0)throw new Error("Empty sub-selector");l.push(g),g=[],M=!1,C(1)}else if(M&&(g.length>0&&g.push({type:"descendant"}),M=!1),E==="*")h=h.substr(1),g.push({type:"universal"});else if(E in o){var L=o[E],D=L[0],I=L[1];h=h.substr(1),g.push({type:"attribute",name:D,action:I,value:A(),ignoreCase:!1})}else if(E==="["){h=h.substr(1);var R=h.match(a);if(!R)throw new Error("Malformed attribute selector: "+h);h=h.substr(R[0].length);var B=y(R[1]);(!f||("lowerCaseAttributeNames"in f?f.lowerCaseAttributeNames:!f.xmlMode))&&(B=B.toLowerCase()),g.push({type:"attribute",name:B,action:s[R[2]],value:y(R[4]||R[5]||""),ignoreCase:!!R[6]})}else if(E===":"){if(h.charAt(1)===":"){h=h.substr(2),g.push({type:"pseudo-element",name:A().toLowerCase()});continue}h=h.substr(1);var z=A().toLowerCase(),R=null;if(h.charAt(0)==="(")if(c.has(z)){var K=h.charAt(1),Q=u.has(K);if(h=h.substr(Q?2:1),R=[],h=v(R,h,f),Q){if(h.charAt(0)!==K)throw new Error("Unmatched quotes in :"+z);h=h.substr(1)}if(h.charAt(0)!==")")throw new Error("Missing closing parenthesis in :"+z+" ("+h+")");h=h.substr(1)}else{for(var _=1,j=1;j>0&&_<h.length;_++)h.charAt(_)==="("&&!b(_)?j++:h.charAt(_)===")"&&!b(_)&&j--;if(j)throw new Error("Parenthesis not matched");if(R=h.substr(1,_-2),h=h.substr(_),m.has(z)){var K=R.charAt(0);K===R.slice(-1)&&u.has(K)&&(R=R.slice(1,-1)),R=y(R)}}g.push({type:"pseudo",name:z,data:R})}else if(e.test(h)){var G=A();(!f||("lowerCaseTags"in f?f.lowerCaseTags:!f.xmlMode))&&(G=G.toLowerCase()),g.push({type:"tag",name:G})}else return g.length&&g[g.length-1].type==="descendant"&&g.pop(),T(l,g),h}return T(l,g),h}function T(l,h){if(l.length>0&&h.length===0)throw new Error("Empty sub-selector");l.push(h)}},function(d,r,t){Object.defineProperty(r,"__esModule",{value:!0});var e={equals:"",element:"~",start:"^",end:"$",any:"*",not:"!",hyphen:"|"};function n(o){return o.map(a).join(", ")}r.default=n;function a(o){return o.map(s).join("")}function s(o){switch(o.type){case"child":return" > ";case"parent":return" < ";case"sibling":return" ~ ";case"adjacent":return" + ";case"descendant":return" ";case"universal":return"*";case"tag":return o.name;case"pseudo-element":return"::"+o.name;case"pseudo":return o.data===null?":"+o.name:typeof o.data=="string"?":"+o.name+"("+o.data+")":":"+o.name+"("+n(o.data)+")";case"attribute":return o.action==="exists"?"["+o.name+"]":o.name==="id"&&o.action==="equals"&&!o.ignoreCase?"#"+o.value:o.name==="class"&&o.action==="element"&&!o.ignoreCase?"."+o.value:"["+o.name+e[o.action]+"='"+o.value+"'"+(o.ignoreCase?"i":"")+"]";default:throw new Error("Unknown type")}}function i(o){return o}},function(d,r,t){d.exports=a;var e=t(279),n={__proto__:null,exists:10,equals:8,not:7,start:6,end:6,any:5,hyphen:4,element:4};function a(i){for(var o=i.map(s),c=1;c<i.length;c++){var m=o[c];if(!(m<0))for(var u=c-1;u>=0&&m<o[u];u--){var p=i[u+1];i[u+1]=i[u],i[u]=p,o[u+1]=o[u],o[u]=m}}}function s(i){var o=e[i.type];if(o===e.attribute)o=n[i.action],o===n.equals&&i.name==="id"&&(o=9),i.ignoreCase&&(o>>=1);else if(o===e.pseudo)if(!i.data)o=3;else if(i.name==="has"||i.name==="contains")o=0;else if(i.name==="matches"||i.name==="not"){o=0;for(var c=0;c<i.data.length;c++)if(i.data[c].length===1){var m=s(i.data[c][0]);if(m===0){o=0;break}m>o&&(o=m)}i.data.length>1&&o>0&&(o-=1)}else o=1;return o}},function(d){d.exports=JSON.parse('{"universal":50,"tag":30,"attribute":1,"pseudo":0,"descendant":-1,"child":-1,"parent":-1,"sibling":-1,"adjacent":-1}')},function(d,r,t){var e=t(281),n=t(282);d.exports={__proto__:null,attribute:e.compile,pseudo:n.compile,tag:function(a,s,i){var o=s.name,c=i.adapter;return function(u){return c.getName(u)===o&&a(u)}},descendant:function(a,s,i){var o=typeof WeakSet<"u"?new WeakSet:null,c=i.adapter;return function(u){for(var p=!1;!p&&(u=c.getParent(u));)(!o||!o.has(u))&&(p=a(u),!p&&o&&o.add(u));return p}},_flexibleDescendant:function(a,s,i){var o=i.adapter;return function(m){for(var u=a(m);!u&&(m=o.getParent(m));)u=a(m);return u}},parent:function(a,s,i){if(i&&i.strict)throw new Error("Parent selector isn't part of CSS3");var o=i.adapter;return function(u){return o.getChildren(u).some(c)};function c(m){return o.isTag(m)&&a(m)}},child:function(a,s,i){var o=i.adapter;return function(m){var u=o.getParent(m);return!!u&&a(u)}},sibling:function(a,s,i){var o=i.adapter;return function(m){for(var u=o.getSiblings(m),p=0;p<u.length;p++)if(o.isTag(u[p])){if(u[p]===m)break;if(a(u[p]))return!0}return!1}},adjacent:function(a,s,i){var o=i.adapter;return function(m){for(var u=o.getSiblings(m),p,y=0;y<u.length;y++)if(o.isTag(u[y])){if(u[y]===m)break;p=u[y]}return!!p&&a(p)}},universal:function(a){return a}}},function(d,r,t){var e=t(273).falseFunc,n=/[-[\]{}()*+?.,\\^$|#\s]/g,a={__proto__:null,equals:function(s,i,o){var c=i.name,m=i.value,u=o.adapter;return i.ignoreCase?(m=m.toLowerCase(),function(y){var O=u.getAttributeValue(y,c);return O!=null&&O.toLowerCase()===m&&s(y)}):function(y){return u.getAttributeValue(y,c)===m&&s(y)}},hyphen:function(s,i,o){var c=i.name,m=i.value,u=m.length,p=o.adapter;return i.ignoreCase?(m=m.toLowerCase(),function(O){var x=p.getAttributeValue(O,c);return x!=null&&(x.length===u||x.charAt(u)==="-")&&x.substr(0,u).toLowerCase()===m&&s(O)}):function(O){var x=p.getAttributeValue(O,c);return x!=null&&x.substr(0,u)===m&&(x.length===u||x.charAt(u)==="-")&&s(O)}},element:function(s,i,o){var c=i.name,m=i.value,u=o.adapter;if(/\s/.test(m))return e;m=m.replace(n,"\\$&");var p="(?:^|\\s)"+m+"(?:$|\\s)",y=i.ignoreCase?"i":"",O=new RegExp(p,y);return function(v){var T=u.getAttributeValue(v,c);return T!=null&&O.test(T)&&s(v)}},exists:function(s,i,o){var c=i.name,m=o.adapter;return function(p){return m.hasAttrib(p,c)&&s(p)}},start:function(s,i,o){var c=i.name,m=i.value,u=m.length,p=o.adapter;return u===0?e:i.ignoreCase?(m=m.toLowerCase(),function(O){var x=p.getAttributeValue(O,c);return x!=null&&x.substr(0,u).toLowerCase()===m&&s(O)}):function(O){var x=p.getAttributeValue(O,c);return x!=null&&x.substr(0,u)===m&&s(O)}},end:function(s,i,o){var c=i.name,m=i.value,u=-m.length,p=o.adapter;return u===0?e:i.ignoreCase?(m=m.toLowerCase(),function(O){var x=p.getAttributeValue(O,c);return x!=null&&x.substr(u).toLowerCase()===m&&s(O)}):function(O){var x=p.getAttributeValue(O,c);return x!=null&&x.substr(u)===m&&s(O)}},any:function(s,i,o){var c=i.name,m=i.value,u=o.adapter;if(m==="")return e;if(i.ignoreCase){var p=new RegExp(m.replace(n,"\\$&"),"i");return function(O){var x=u.getAttributeValue(O,c);return x!=null&&p.test(x)&&s(O)}}return function(O){var x=u.getAttributeValue(O,c);return x!=null&&x.indexOf(m)>=0&&s(O)}},not:function(s,i,o){var c=i.name,m=i.value,u=o.adapter;return m===""?function(y){return!!u.getAttributeValue(y,c)&&s(y)}:i.ignoreCase?(m=m.toLowerCase(),function(y){var O=u.getAttributeValue(y,c);return O!=null&&O.toLowerCase()!==m&&s(y)}):function(y){return u.getAttributeValue(y,c)!==m&&s(y)}}};d.exports={compile:function(s,i,o){if(o&&o.strict&&(i.ignoreCase||i.action==="not"))throw new Error("Unsupported attribute selector");return a[i.action](s,i,o)},rules:a}},function(d,r,t){var e=t(283),n=t(273),a=t(281),s=n.trueFunc,i=n.falseFunc,o=a.rules.equals;function c(T,l){var h={name:T,value:l};return function(g,M,A){return o(g,h,A)}}function m(T,l){return function(h){return!!l.getParent(h)&&T(h)}}var u={contains:function(T,l,h){var f=h.adapter;return function(M){return T(M)&&f.getText(M).indexOf(l)>=0}},icontains:function(T,l,h){var f=l.toLowerCase(),g=h.adapter;return function(A){return T(A)&&g.getText(A).toLowerCase().indexOf(f)>=0}},"nth-child":function(T,l,h){var f=e(l),g=h.adapter;return f===i?f:f===s?m(T,g):function(A){for(var C=g.getSiblings(A),b=0,E=0;b<C.length;b++)if(g.isTag(C[b])){if(C[b]===A)break;E++}return f(E)&&T(A)}},"nth-last-child":function(T,l,h){var f=e(l),g=h.adapter;return f===i?f:f===s?m(T,g):function(A){for(var C=g.getSiblings(A),b=0,E=C.length-1;E>=0;E--)if(g.isTag(C[E])){if(C[E]===A)break;b++}return f(b)&&T(A)}},"nth-of-type":function(T,l,h){var f=e(l),g=h.adapter;return f===i?f:f===s?m(T,g):function(A){for(var C=g.getSiblings(A),b=0,E=0;E<C.length;E++)if(g.isTag(C[E])){if(C[E]===A)break;g.getName(C[E])===g.getName(A)&&b++}return f(b)&&T(A)}},"nth-last-of-type":function(T,l,h){var f=e(l),g=h.adapter;return f===i?f:f===s?m(T,g):function(A){for(var C=g.getSiblings(A),b=0,E=C.length-1;E>=0;E--)if(g.isTag(C[E])){if(C[E]===A)break;g.getName(C[E])===g.getName(A)&&b++}return f(b)&&T(A)}},root:function(T,l,h){var f=h.adapter;return function(g){return!f.getParent(g)&&T(g)}},scope:function(T,l,h,f){var g=h.adapter;if(!f||f.length===0)return u.root(T,l,h);function M(A,C){return typeof g.equals=="function"?g.equals(A,C):A===C}return f.length===1?function(A){return M(f[0],A)&&T(A)}:function(A){return f.indexOf(A)>=0&&T(A)}},checkbox:c("type","checkbox"),file:c("type","file"),password:c("type","password"),radio:c("type","radio"),reset:c("type","reset"),image:c("type","image"),submit:c("type","submit"),hover:function(T,l,h){var f=h.adapter;return typeof f.isHovered=="function"?function(M){return T(M)&&f.isHovered(M)}:i},visited:function(T,l,h){var f=h.adapter;return typeof f.isVisited=="function"?function(M){return T(M)&&f.isVisited(M)}:i},active:function(T,l,h){var f=h.adapter;return typeof f.isActive=="function"?function(M){return T(M)&&f.isActive(M)}:i}};function p(T,l){for(var h=0;T&&h<T.length;h++)if(l.isTag(T[h]))return T[h]}var y={empty:function(T,l){return!l.getChildren(T).some(function(h){return l.isTag(h)||h.type==="text"})},"first-child":function(T,l){return p(l.getSiblings(T),l)===T},"last-child":function(T,l){for(var h=l.getSiblings(T),f=h.length-1;f>=0;f--){if(h[f]===T)return!0;if(l.isTag(h[f]))break}return!1},"first-of-type":function(T,l){for(var h=l.getSiblings(T),f=0;f<h.length;f++)if(l.isTag(h[f])){if(h[f]===T)return!0;if(l.getName(h[f])===l.getName(T))break}return!1},"last-of-type":function(T,l){for(var h=l.getSiblings(T),f=h.length-1;f>=0;f--)if(l.isTag(h[f])){if(h[f]===T)return!0;if(l.getName(h[f])===l.getName(T))break}return!1},"only-of-type":function(T,l){for(var h=l.getSiblings(T),f=0,g=h.length;f<g;f++)if(l.isTag(h[f])){if(h[f]===T)continue;if(l.getName(h[f])===l.getName(T))return!1}return!0},"only-child":function(T,l){for(var h=l.getSiblings(T),f=0;f<h.length;f++)if(l.isTag(h[f])&&h[f]!==T)return!1;return!0},link:function(T,l){return l.hasAttrib(T,"href")},selected:function(T,l){if(l.hasAttrib(T,"selected"))return!0;if(l.getName(T)!=="option")return!1;var h=l.getParent(T);if(!h||l.getName(h)!=="select"||l.hasAttrib(h,"multiple"))return!1;for(var f=l.getChildren(h),g=!1,M=0;M<f.length;M++)if(l.isTag(f[M]))if(f[M]===T)g=!0;else if(g){if(l.hasAttrib(f[M],"selected"))return!1}else return!1;return g},disabled:function(T,l){return l.hasAttrib(T,"disabled")},enabled:function(T,l){return!l.hasAttrib(T,"disabled")},checked:function(T,l){return l.hasAttrib(T,"checked")||y.selected(T,l)},required:function(T,l){return l.hasAttrib(T,"required")},optional:function(T,l){return!l.hasAttrib(T,"required")},parent:function(T,l){return!y.empty(T,l)},header:O(["h1","h2","h3","h4","h5","h6"]),button:function(T,l){var h=l.getName(T);return h==="button"||h==="input"&&l.getAttributeValue(T,"type")==="button"},input:O(["input","textarea","select","button"]),text:function(T,l){var h;return l.getName(T)==="input"&&(!(h=l.getAttributeValue(T,"type"))||h.toLowerCase()==="text")}};function O(T){if(typeof Set<"u"){var l=new Set(T);return function(h,f){return l.has(f.getName(h))}}return function(h,f){return T.indexOf(f.getName(h))>=0}}function x(T,l,h){if(h===null){if(T.length>2&&l!=="scope")throw new Error("pseudo-selector :"+l+" requires an argument")}else if(T.length===2)throw new Error("pseudo-selector :"+l+" doesn't have any arguments")}var v=/^(?:(?:nth|last|first|only)-(?:child|of-type)|root|empty|(?:en|dis)abled|checked|not)$/;d.exports={compile:function(T,l,h,f){var g=l.name,M=l.data,A=h.adapter;if(h&&h.strict&&!v.test(g))throw new Error(":"+g+" isn't part of CSS3");if(typeof u[g]=="function")return u[g](T,M,h,f);if(typeof y[g]=="function"){var C=y[g];return x(C,g,M),C===i?C:T===s?function(E){return C(E,A,M)}:function(E){return C(E,A,M)&&T(E)}}else throw new Error("unmatched pseudo-class :"+g)},filters:u,pseudos:y}},function(d,r,t){var e=t(284),n=t(285);d.exports=function(s){return n(e(s))},d.exports.parse=e,d.exports.compile=n},function(d,r){d.exports=e;var t=/^([+\-]?\d*n)?\s*(?:([+\-]?)\s*(\d+))?$/;function e(n){if(n=n.trim().toLowerCase(),n==="even")return[2,0];if(n==="odd")return[2,1];var a=n.match(t);if(!a)throw new SyntaxError("n-th rule couldn't be parsed ('"+n+"')");var s;return a[1]?(s=parseInt(a[1],10),isNaN(s)&&(a[1].charAt(0)==="-"?s=-1:s=1)):s=0,[s,a[3]?parseInt((a[2]||"")+a[3],10):0]}},function(d,r,t){d.exports=s;var e=t(273),n=e.trueFunc,a=e.falseFunc;function s(i){var o=i[0],c=i[1]-1;if(c<0&&o<=0)return a;if(o===-1)return function(u){return u<=c};if(o===0)return function(u){return u===c};if(o===1)return c<0?n:function(u){return u>=c};var m=c%o;return m<0&&(m+=o),o>1?function(u){return u>=c&&u%o===m}:(o*=-1,function(u){return u<=c&&u%o===m})}},function(d,r,t){t.r(r),t.d(r,"default",function(){return M});var e=t(12),n=t(74),a=t(1),s=t(68),i=t(250),o=t(213),c=t(218);t(1).glMatrix.setMatrixArrayType(Array);function m(A,C){if(A==null)return{};var b=u(A,C),E,L;if(Object.getOwnPropertySymbols){var D=Object.getOwnPropertySymbols(A);for(L=0;L<D.length;L++)E=D[L],!(C.indexOf(E)>=0)&&Object.prototype.propertyIsEnumerable.call(A,E)&&(b[E]=A[E])}return b}function u(A,C){if(A==null)return{};var b={},E=Object.keys(A),L,D;for(D=0;D<E.length;D++)L=E[D],!(C.indexOf(L)>=0)&&(b[L]=A[L]);return b}const p={antialias:!0,autoRender:!0,alpha:!0},y=Symbol("autoRender"),O=Symbol("renderer"),x=Symbol("timeline"),v=Symbol("prepareRender"),T=Symbol("tickRender"),l=Symbol("pass"),h=Symbol("fbo"),f=Symbol("tickers"),g=Symbol("layerTransformInvert");class M extends i.default{constructor(C={}){if(super(),!C.canvas){const{width:D,height:I}=this.getResolution(),R=e.ENV.createCanvas(D,I,{offscreen:!!C.offscreen,id:C.id,extra:C.extra});R.style&&(R.style.position="absolute"),R.dataset&&(R.dataset.layerId=C.id),R.contextType&&(C.contextType=R.contextType),C.canvas=R}const b=C.canvas,E=Object.assign({},p,C);this[y]=E.autoRender,delete C.autoRender;const L=E.Renderer||e.Renderer;this[O]=new L(b,E),this.options=C,this.id=C.id,this[l]=[],this.setResolution(b),this.canvas=b,this[x]=new n.Timeline,this.__mouseCapturedTarget=null,this[g]=null}get autoRender(){return this[y]}get displayRatio(){return this.parent&&this.parent.options?this.parent.options.displayRatio:1}get height(){const{height:C}=this.getResolution();return C/this.displayRatio}get gl(){return this.renderer.glRenderer?this.renderer.glRenderer.gl:null}get layer(){return this}get offscreen(){return!!this.options.offscreen||this.canvas._offscreen}get pass(){return this[l]}get prepareRender(){return this[v]?this[v]:Promise.resolve()}get renderer(){return this[O]}get renderOffset(){if(this.parent&&this.parent.options){const{left:C,top:b}=this.parent.options;return[C,b]}return[this.options.left|0,this.options.top|0]}get timeline(){return this[x]}get width(){const{width:C}=this.getResolution();return C/this.displayRatio}get localMatrix(){const{x:C,y:b}=this.attributes;return[1,0,0,1,C,b]}get layerTransformInvert(){if(this[g])return this[g];const C=this.transformMatrix;return C[0]===1&&C[1]===0&&C[2]===0&&C[3]===1&&C[4]===0&&C[5]===0?null:(this[g]=a.mat2d.invert(Array.of(0,0,0,0,0,0),C),this[g])}forceContextLoss(){const C=this.renderer.glRenderer;if(C){const b=C.getExtension("WEBGL_lose_context");if(b)return b.loseContext(),!0}return!1}addPass({vertex:C,fragment:b,options:E,uniforms:L}={}){if(this.renderer.glRenderer){const{width:D,height:I}=this.getResolution(),R=this.renderer.createPassProgram({vertex:C,fragment:b,options:E}),B=new e.Figure2D;B.rect(0,0,D/this.displayRatio,I/this.displayRatio);const z=new e.Mesh2D(B);return z.setUniforms(L),z.setProgram(R),this[l].push(z),this.forceUpdate(),z}return null}deleteTexture(C){return Object(c.deleteTexture)(C,this.renderer)}dispatchPointerEvent(C){const b=C.type;if(b==="mousedown"||b==="mouseup"||b==="mousemove"){const R=this.__mouseCapturedTarget;if(R){if(R.layer===this)return R.dispatchEvent(C),!0;this.__mouseCapturedTarget=null}}let E,L;const D=this.layerTransformInvert;if(D){E=C.x,L=C.y;const R=D,B=R[0]*E+R[2]*L+R[4],z=R[1]*E+R[3]*L+R[5];delete C.x,delete C.y,delete C.layerX,delete C.layerY,Object.defineProperties(C,{layerX:{value:B,configurable:!0},layerY:{value:z,configurable:!0},x:{value:B,configurable:!0},y:{value:z,configurable:!0}})}const I=super.dispatchPointerEvent(C);return D&&Object.defineProperties(C,{layerX:{value:E,configurable:!0},layerY:{value:L,configurable:!0},x:{value:E,configurable:!0},y:{value:L,configurable:!0}}),I}forceUpdate(){if(!this[v])if(this.parent&&this.parent.hasOffscreenCanvas){this.parent.forceUpdate();let C=null;const b=new Promise(E=>{C=E});b._resolve=C,this[v]=b}else{let C=null,b=null;const E=new Promise(L=>{C=L,this[y]&&(b=Object(s.requestAnimationFrame)(()=>{delete E._requestID,this.render()}))});E._resolve=C,E._requestID=b,this[v]=E}}getFBO(){const C=this.renderer.glRenderer,{width:b,height:E}=this.getResolution();return C&&(!this[h]||this[h].width!==b||this[h].height!==E)?(this[h]={width:b,height:E,target:C.createFBO(),buffer:C.createFBO(),swap(){[this.target,this.buffer]=[this.buffer,this.target]}},this[h]):this[h]?this[h]:null}updateGlobalTransform(){if(this.layerTransformInvert){const C=this.renderer,b=C.__globalTransformMatrix||C.globalTransformMatrix;C.__globalTransformMatrix=b;const E=a.mat2d.fromValues(1,0,0,1,0,0);C.setGlobalTransform(...a.mat2d.multiply(E,b,this.transformMatrix))}}onPropertyChange(C,b,E){if(super.onPropertyChange(C,b,E),C==="zIndex"&&(this.canvas.style.zIndex=b),C==="transform"||C==="translate"||C==="rotate"||C==="scale"||C==="skew"){const L=this[g];if(this[g]=null,this.updateGlobalTransform(),L&&!this.layerTransformInvert){const D=this.renderer,I=D.__globalTransformMatrix||D.globalTransformMatrix;D.setGlobalTransform(...I)}}}_prepareRenderFinished(){this[v]&&(this[v]._requestID&&Object(s.cancelAnimationFrame)(this[v]._requestID),this[v]._resolve(),delete this[v])}render({clear:C=!0}={}){const b=this[l].length?this.getFBO():null;b&&this.renderer.glRenderer.bindFBO(b.target),C&&this[O].clear();const E=this.draw();if(E&&E.length&&(this.renderer.drawMeshes(E),this.canvas.draw&&this.canvas.draw()),b){const L=this.renderer.glRenderer,D=this[l].length,{width:I,height:R}=this.getResolution(),B=[0,0,I/this.displayRatio,R/this.displayRatio];this[l].forEach((z,K)=>{z.blend=!0,z.setTexture(b.target.texture,{rect:B}),K===D-1?L.bindFBO(null):(b.swap(),L.bindFBO(b.target)),this[O].clear(),this.renderer.drawMeshes([z])})}this._prepareRenderFinished()}setResolution({width:C,height:b}){const E=this.renderer,L=E.__globalTransformMatrix||E.globalTransformMatrix,D=L[4],I=L[5],R=L[0],{width:B,height:z}=this.getResolution();(B!==C||z!==b)&&(super.setResolution({width:C,height:b}),this.canvas&&(this.canvas.width=C,this.canvas.height=b,E.updateResolution&&E.updateResolution()),this.attributes.size=[C,b],this[l].length&&this[l].forEach(j=>{const G=new e.Figure2D;G.rect(0,0,C/this.displayRatio,b/this.displayRatio),j.contours=G.contours}));const[K,Q]=this.renderOffset,_=this.displayRatio;(D!==K||I!==Q||R!==_)&&(E.setGlobalTransform(_,0,0,_,K,Q),E.__globalTransformMatrix=null,this[g]=null,this.updateGlobalTransform(),this.forceUpdate())}tick(C=null,b={}){let{duration:E=1/0}=b,L=m(b,["duration"]);const D=this.timeline.fork(L),I=this;this[f]=this[f]||[],this[f].push({handler:C,duration:E});const R=()=>{let B=null,z=null;const K=()=>{const Q=this[f].map(({handler:_,duration:j})=>{const G=Math.min(1,D.currentTime/j);return{value:_?_(D.currentTime,G):null,p:G}});I[T]||(I[T]=Promise.resolve().then(()=>{I[y]&&I.render(),delete I[T];for(let _=Q.length-1;_>=0;_--){const{value:j,p:G}=Q[_];(j===!1||G>=1)&&this[f].splice(_,1)}this[f].length>0&&R()}))};if(this[v]&&this[v]._type!=="ticker"&&(Object(s.cancelAnimationFrame)(this[v]._requestID),delete this[v]),!this[v]){const Q=new Promise(_=>{B=_,z=Object(s.requestAnimationFrame)(K)});Q._resolve=B,Q._requestID=z,Q._type="ticker",this[v]=Q}};R()}toGlobalPos(C,b){if(this.layerTransformInvert){const B=this.transformMatrix;C=B[0]*C+B[2]*b+B[4],b=B[1]*C+B[3]*b+B[5]}const{width:E,height:L}=this.getResolution(),D=this.renderOffset,I=[this.canvas.clientWidth,this.canvas.clientHeight];C=C*I[0]/E+D[0],b=b*I[1]/L+D[1];const R=this.displayRatio;return C*=R,b*=R,[C,b]}toLocalPos(C,b){const{width:E,height:L}=this.getResolution(),D=this.renderOffset,I=[this.canvas.clientWidth,this.canvas.clientHeight];C=C*E/I[0]-D[0],b=b*L/I[1]-D[1];const R=this.displayRatio;C/=R,b/=R;const B=this.layerTransformInvert;return B&&(C=B[0]*C+B[2]*b+B[4],b=B[1]*C+B[3]*b+B[5]),[C,b]}}o.default.registerNode(M,"layer")},function(d,r,t){t.r(r),t.d(r,"default",function(){return v});var e=t(224),n=t(288),a=t(213),s=t(252),i=t(72);t(1).glMatrix.setMatrixArrayType(Array);function o(T,l){if(T==null)return{};var h=c(T,l),f,g;if(Object.getOwnPropertySymbols){var M=Object.getOwnPropertySymbols(T);for(g=0;g<M.length;g++)f=M[g],!(l.indexOf(f)>=0)&&Object.prototype.propertyIsEnumerable.call(T,f)&&(h[f]=T[f])}return h}function c(T,l){if(T==null)return{};var h={},f=Object.keys(T),g,M;for(M=0;M<f.length;M++)g=f[M],!(l.indexOf(g)>=0)&&(h[g]=T[g]);return h}function m(T,l,h){return l in T?Object.defineProperty(T,l,{value:h,enumerable:!0,configurable:!0,writable:!0}):T[l]=h,T}const u="http://www.w3.org/2000/svg",p=Symbol.for("spritejs_setAttribute"),y=Symbol("root"),O=Symbol("task");function x(T,l=!0){const h=T[y];if(h&&h.children[0]){const f=T.svg,g=T.layer?T.layer.displayRatio:1;if(!f.hasAttribute("data-original-width")){let C=f.getAttribute("width");C=C?Object(i.sizeToPixel)(C):300;let b=f.getAttribute("height");b=b?Object(i.sizeToPixel)(b):150,f.hasAttribute("viewBox")||f.setAttribute("viewBox",`0 0 ${Math.round(C)} ${Math.round(b)}`),f.setAttribute("data-original-width",C),f.setAttribute("data-original-height",b)}let M=T.attributes.width||Number(f.getAttribute("data-original-width")),A=T.attributes.height||Number(f.getAttribute("data-original-height"));if(M*=g,A*=g,l&&T.attributes.flexible){const C=T.attributes.scale[0];if(M*=C,A*=C,f.setAttribute("width",M),f.setAttribute("height",A),M&&A&&T.textureImage){const b=T.textureImage.width,E=T.textureImage.height,L=T.clientSize;T.attributes.textureRect=[0,0,Math.round(L[0]*b/M),Math.round(L[1]*E/A)]}}else T[O]||(f.setAttribute("width",M),f.setAttribute("height",A),T[O]=Promise.resolve().then(()=>{delete T[O];const C=h.innerHTML,b=new Blob([C],{type:"image/svg+xml"}),E=URL.createObjectURL(b),L=new Image;L.onload=function(){L.width&&L.height?(T.attributes[p]("texture",L),T.attributes.flexible&&(T.attributes.textureRect=null)):T.attributes[p]("texture",null)},L.src=E}))}}class v extends e.default{constructor(l={}){typeof l=="string"&&(l={svgText:l});let{svgText:h}=l,f=o(l,["svgText"]);if(super(f),this[y]=document.createElement("div"),h){this[y].innerHTML=h;const g=this[y].children[0];g?g.setAttribute("xmlns",u):(fetch(h).then(M=>M.text()).then(M=>{this[y].innerHTML=M,(!this.observer||this.attributes.flexible)&&x(this)}),h=null)}if(!h){const g=document.createElementNS(u,"svg");g.setAttribute("xmlns",u),this[y].appendChild(g)}if(typeof MutationObserver=="function"){const g=new MutationObserver(M=>{x(this,!1)});g.observe(this[y],{attributes:!0,subtree:!0,characterData:!0,childList:!0}),this.observer=g}}get children(){return[this.svg]}get childNodes(){return[this.svg]}get svg(){return this[y]?this[y].children[0]:null}setResolution({width:l,height:h}){super.setResolution({width:l,height:h}),x(this)}dispatchPointerEvent(l){const h=super.dispatchPointerEvent(l);if(h&&this.attributes.passEvents&&typeof MouseEvent=="function"){const{x:f,y:g}=l;let[M,A]=this.getOffsetPosition(f,g);const C=l.originalEvent,b=this.attributes.anchor,E=this.clientSize;M=(M+b[0]*E[0])/2,A=(A+b[1]*E[1])/2;const L=l.type;if(L===C.type){let D=null;if(C instanceof MouseEvent)D=new MouseEvent(L,{screenX:M,screenY:A,clientX:M,clientY:A,bubbles:C.bubbles,button:C.button,buttons:C.buttons,cancelBubble:C.cancelBubble,cancelable:C.cancelable,currentTarget:C.currentTarget,fromElement:C.fromElement,relatedTarget:C.relatedTarget,returnValue:C.returnValue,srcElement:C.srcElement,target:C.target,toElement:C.toElement,which:C.witch});else if(C instanceof TouchEvent){let I=null;const R=C.changedTouches||[C];for(let B=0;B<R.length;B++){const z=R[B];if(l.identifier===z.identifier){I=z;break}}if(I){const B=new Touch({identifier:I.identifier,target:I.target,clientX:M,clientY:A,screenX:M,screenY:A,pageX:M,pageY:A,radiusX:I.radiusX,radiusY:I.radiusY,rotationAngle:I.rotationAngle,force:I.force});D=new TouchEvent(L,{cancelable:C.cancelable,bubbles:C.bubbles,composed:C.composed,touches:[B],targetTouches:[B],changedTouches:[B]})}}else D=C;D&&this.svg.dispatchEvent(D)}}return h}getElementById(l){return Object(s.querySelector)(`#${l}`,this)}getElementsByClassName(l){return Object(s.querySelectorAll)(`.${l}`,this)}getElementsByName(l){return Object(s.querySelectorAll)(`[name="${l}"]`,this)}getElementsByTagName(l){return Object(s.querySelectorAll)(l,this)}querySelector(l){return Object(s.querySelector)(l,this)}querySelectorAll(l){return Object(s.querySelectorAll)(l,this)}onPropertyChange(l,h,f){super.onPropertyChange(l,h,f),l==="flexible"&&x(this),this.attributes.flexible&&(l==="width"||l==="height"||l==="scale"||l==="transform")&&x(this)}}m(v,"Attr",n.default),a.default.registerNode(v,"spritesvg")},function(d,r,t){t.r(r),t.d(r,"default",function(){return i});var e=t(225);t(1).glMatrix.setMatrixArrayType(Array);const n=Symbol.for("spritejs_getAttribute"),a=Symbol.for("spritejs_setAttribute"),s=Symbol.for("spritejs_setAttributeDefault");class i extends e.default{constructor(c){super(c),this[s]({passEvents:!1,flexible:!1})}get texture(){return this[n]("texture")}set texture(c){}get passEvents(){return this[n]("passEvents")}set passEvents(c){return this[a]("passEvents",c)}get flexible(){return this[n]("flexible")}set flexible(c){return this[a]("flexible",c)}}},function(d,r,t){t.r(r);var e=t(12);t(1).glMatrix.setMatrixArrayType(Array);function n(c,m){var u=Object.keys(c);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(c);m&&(p=p.filter(function(y){return Object.getOwnPropertyDescriptor(c,y).enumerable})),u.push.apply(u,p)}return u}function a(c){for(var m=1;m<arguments.length;m++){var u=arguments[m]!=null?arguments[m]:{};m%2?n(Object(u),!0).forEach(function(p){s(c,p,u[p])}):Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(u)):n(Object(u)).forEach(function(p){Object.defineProperty(c,p,Object.getOwnPropertyDescriptor(u,p))})}return c}function s(c,m,u){return m in c?Object.defineProperty(c,m,{value:u,enumerable:!0,configurable:!0,writable:!0}):c[m]=u,c}const i=Symbol("inited");let o=null;typeof Worker=="function"&&(o=class extends Worker{constructor(c){if(c.worker===!0&&(c.worker=`./${c.id}.worker.js`),super(c.worker),this.options=c,!c.canvas){const{width:m,height:u}=this.getResolution(),p=e.ENV.createCanvas(m,u,{offscreen:!1});p.style&&(p.style.position="absolute"),p.dataset&&(p.dataset.layerId=c.id),c.canvas=p}this.canvas=c.canvas}get id(){return this.options.id}setResolution({width:c,height:m}){if(this[i])this.postMessage({type:"resolution_change",width:c,height:m});else{this.canvas.width=c,this.canvas.height=m;const u=this.options,p=u.canvas.transferControlToOffscreen(),y=a({},u);delete y.container,y.canvas=p,this.postMessage({type:"create",options:y},[p]),this[i]=!0}}getResolution(){if(this.canvas){const{width:c,height:m}=this.canvas;return{width:c,height:m}}return{width:300,height:150}}remove(){return this.parent&&this.parent.removeChild?(this.parent.removeChild(this),!0):!1}connect(c,m){Object.defineProperty(this,"parent",{value:c,writable:!1,configurable:!0}),Object.defineProperty(this,"zOrder",{value:m,writable:!1,configurable:!0})}disconnect(){delete this.parent,delete this.zOrder}dispatchPointerEvent(c){this.postMessage({type:"event",event:{cancelBubble:c.cancelBubble,bubbles:c.bubbles,detail:c.detail,identifier:c.identifier,layerX:c.layerX,layerY:c.layerY,originalX:c.originalX,originalY:c.originalY,type:c.type,x:c.x,y:c.y}})}}),r.default=o},function(d,r,t){t.r(r),(function(e){t.d(r,"default",function(){return M});var n=t(12),a=t(68),s=t(70),i=t(286),o=t(289),c=t(250),m=t(291),u=t(214),p=t(218),y=t(213);t(1).glMatrix.setMatrixArrayType(Array);const O=Symbol("enteredTargets");function x(A){return A.id=A.id||`_layer${Math.random().toString(36).slice(2,12)}`,A.dataset||(A.dataset={}),A.dataset.layerId=A.id,A.connect=(C,b)=>{A.parent=C,Object.defineProperty(A,"zOrder",{value:b,writable:!1,configurable:!0})},A.disconnect=C=>{delete A.zOrder},A.canvas=A,A.getResolution=()=>({width:0,height:0}),A.setResolution=()=>!1,A.options={handleEvent:!1},A}function v(A,C){const b=A.children;let E=null;for(let L=0;L<b.length;L++){const D=b[L];if((C===D||E!=null)&&(E=D),E&&E!==C&&!E.offscreen)return E.canvas}return null}function T(A,C){const[b,E]=A.renderOffset,{width:L,height:D}=A.getResolution(),I=A.displayRatio;A.renderer.drawImage(C.canvas,-b/I,-E/I,L/I,D/I)}const l={};function h(A){const C=["mousedown","mouseup","mousemove","mousewheel","wheel","touchstart","touchend","touchmove","touchcancel","click","dblclick","longpress","tap","contextmenu"],b=A.container;b.addEventListener("mouseleave",E=>{const L=A[O];if(L.size){const D=new u.default("mouseleave");D.setOriginalEvent(E),[...L].forEach(I=>{I.dispatchEvent(D)}),A[O].clear()}},{passive:!0}),C.forEach(E=>{b.addEventListener(E,L=>{const{left:D,top:I,displayRatio:R}=A.options,B=A.orderedChildren;Object(m.default)(L,{offsetLeft:D,offsetTop:I,displayRatio:R}).forEach(K=>{const Q=K.identifier;if(K.type==="touchmove"||K.type==="touchend"){const j=l[Q];j&&j.dispatchEvent(K),K.type==="touchend"&&delete l[Q]}else{for(let j=B.length-1;j>=0;j--){const G=B[j];if(G.options.handleEvent!==!1){if(G.dispatchPointerEvent(K)&&K.target!==G)break;K.cancelBubble=!1}}if(K.target===B[0])for(let j=B.length-1;j>=0;j--){const G=B[j];if(G.options.handleEvent!==!1){K.target=G;break}}}const _=K.target;if(K.type==="touchstart"&&(l[Q]=K.target),K.type==="mousemove"){const j=A[O];let G;if(_){const tt=_.ancestors||[];G=new Set([_,...tt])}else G=new Set;const X=Object.entries(L);if(!j.has(_)&&_){const tt=new u.default("mouseenter");tt.setOriginalEvent(L),X.forEach(([q,dt])=>{tt[q]=dt}),j.add(_),_.dispatchEvent(tt);const nt=_.ancestors;nt&&nt.forEach(q=>{q instanceof s.default&&!j.has(q)&&(j.add(q),q.dispatchEvent(tt))})}const Z=new u.default("mouseleave");Z.setOriginalEvent(L),X.forEach(([tt,nt])=>{Z[tt]=nt}),[...j].forEach(tt=>{G.has(tt)||(j.delete(tt),tt.dispatchEvent(Z))})}})},{passive:E!=="contextmenu"})})}function f(A,C){if(C&&C.style){let{width:b,height:E,mode:L,container:D}=A;const{clientWidth:I,clientHeight:R}=D;b=b||I,E=E||R,L==="static"?(C.style.width=`${b}px`,C.style.height=`${E}px`):(C.style.top="0",C.style.left="0",C.style.width=`${I}px`,C.style.height=`${R}px`,C.style.transform="",C.style.webkitTransform="")}}const g=Symbol("offscreenLayerCount");class M extends c.default{constructor(C={}){if(super(),!C.container)if(typeof n.ENV.Container=="function")C.container=new n.ENV.Container(C.width||300,C.height||150);else throw new Error("No container specified.");if(this.container=C.container,this.container.style&&(this.container.style.overflow||(this.container.style.overflow="hidden"),this.container.style.position||(this.container.style.position="relative")),this.options=C,C.displayRatio=C.displayRatio||1,C.mode=C.mode||"scale",C.left=0,C.top=0,C.autoResize=C.autoResize!==!1,C.autoResize){let b;if(typeof globalThis<"u"?b=globalThis:b=typeof window<"u"?window:e,b.addEventListener){const E=this;b.addEventListener("resize",function L(){typeof document<"u"&&document.contains(E.container)?E.resize():b.removeEventListener("resize",L)})}}this[O]=new Set,this.setResolution(C),h(this),this[g]=0}get hasOffscreenCanvas(){return this[g]>0}set displayRatio(C){this.options.displayRatio!==C&&(this.options.displayRatio=C,this.resize())}get displayRatio(){return this.options.displayRatio}set height(C){this.options.height!==C&&(this.options.height=C,this.resize())}get height(){return this.options.height}set mode(C){this.options.mode!==C&&(this.options.mode=C,this.resize())}get mode(){return this.options.mode}set width(C){this.options.width!==C&&(this.options.width=C,this.resize())}get width(){return this.options.width}appendChild(C){!(C instanceof i.default)&&!(C instanceof o.default)&&x(C);const b=super.appendChild(C),E=C.canvas;return C.offscreen?this[g]++:this.container.appendChild(E),f(this.options,E),C.setResolution(this.getResolution()),b}forceUpdate(){this.hasOffscreenCanvas&&!this._requestID&&(this._requestID=Object(a.requestAnimationFrame)(()=>{delete this._requestID,this.render()}))}insertBefore(C,b){!(C instanceof i.default)&&!(C instanceof o.default)&&x(C);const E=super.insertBefore(C,b),L=C.canvas;if(!C.offscreen){const D=v(this,C);this.container.insertBefore(L,D)}return f(this.options,L),C.setResolution(this.getResolution()),E}layer(C="default",b={}){b=Object.assign({},this.options,b),b.id=C;const E=this.orderedChildren;for(let I=0;I<E.length;I++)if(E[I].id===C)return E[I];const L=b.worker;let D;return L?D=new o.default(b):D=new i.default(b),this.appendChild(D),D}async preload(...C){const b=[],E=[],L=[];for(let D=0;D<C.length;D++){const I=C[D];let R;if(typeof I=="string")R=Object(p.loadTexture)(I);else if(Array.isArray(I))R=Object(p.loadFrames)(...I);else{const{id:B,src:z}=I;R=Object(p.loadTexture)(z,B)}R instanceof Promise||(R=Promise.resolve(R)),E.push(R.then(B=>{b.push(B),L[D]=B;const z=new u.default({type:"preload",detail:{current:B,loaded:b,resources:C}});this.dispatchEvent(z)}))}return await Promise.all(E),L}removeChild(C){const b=super.removeChild(C);if(b){C._prepareRenderFinished&&C._prepareRenderFinished();const E=C.canvas;E&&E.remove&&E.remove(),C.offscreen&&this[g]--}return b}render(){const C=this.orderedChildren;let b=null;const E=[];for(let L=0;L<C.length;L++){const D=C[L],I=E.length>0;if(D instanceof i.default&&!D.offscreen)if(!D.autoRender)I&&(console.warn("Some offscreen canvas will not be rendered."),E.length=0);else if(b=D,I){D.renderer.clear();for(let R=0;R<E.length;R++){const B=E[R];B.render(),T(D,B)}E.length=0,D.render({clear:!1})}else D.prepareRender&&D.render();else D.offscreen?b?(D.prepareRender&&D.render(),T(b,D)):E.push(D):D instanceof o.default&&I&&(console.warn("Some offscreen canvas will not be rendered."),E.length=0)}}replaceChild(C,b){const E=super.replaceChild(C,b);b.canvas.remove&&b.canvas.remove(),b.offscreen&&this[g]--;const L=C.canvas;if(!C.offscreen){const D=v(this,C);this.container.insertBefore(L,D)}return f(this.options,L),C.setResolution(this.getResolution()),E}resize(){const C=this.options;this.children.forEach(b=>{f(C,b.canvas)}),this.setResolution(C),this.dispatchEvent({type:"resize"})}setResolution({width:C,height:b}={}){const E=this.container,{clientWidth:L,clientHeight:D}=E;(C==null||b==null)&&(C=C??L,b=b??D);const{mode:I,displayRatio:R}=this.options;if(C*=R,b*=R,this.options.left=0,this.options.top=0,I==="stickyHeight"||I==="stickyLeft"||I==="stickyRight"){const B=C;C=L*b/D,I==="stickyHeight"&&(this.options.left=.5*(C-B)),I==="stickyRight"&&(this.options.left=C-B)}else if(I==="stickyWidth"||I==="stickyTop"||I==="stickyBottom"){const B=b;b=D*C/L,I==="stickyWidth"&&(this.options.top=.5*(b-B)),I==="stickyBottom"&&(this.options.top=b-B)}super.setResolution({width:C,height:b})}snapshot({offscreen:C=!1,layers:b}={}){const E=C?"snapshotOffScreenCanvas":"snapshotCanvas",{width:L,height:D}=this.getResolution();this[E]=this[E]||n.ENV.createCanvas(L,D,{offscreen:C});const I=this[E].getContext("2d");b=b||this.orderedChildren,this[E].width=L,this[E].height=D;for(let R=0;R<b.length;R++){const B=b[R];if(!B.options.ignoreSnapshot){B.render&&B.render();const z=B.canvas;z&&z!==B&&I.drawImage(z,0,0,L,D)}}return this[E]}}typeof document<"u"&&(M.prototype.layer3d=function(A,C={}){const b=C.url||"https://unpkg.com/sprite-extend-3d/dist/sprite-extend-3d.min.js";return new Promise((E,L)=>{const D=document.createElement("script");D.async=!1,D.src=b,D.onload=()=>{try{E(this.layer3d(A,C))}catch(I){L(I)}},document.documentElement.appendChild(D)})}),y.default.registerNode(M,"scene")}).call(this,t(22))},function(d,r,t){t.r(r),t.d(r,"default",function(){return n});var e=t(214);t(1).glMatrix.setMatrixArrayType(Array);function n(a,{offsetTop:s=0,offsetLeft:i=0,displayRatio:o=1}={}){let c,m;const u=[],{left:p,top:y,width:O,height:x}=a.target.getBoundingClientRect(),v=a.target.width,T=a.target.height,l=a.changedTouches||[a];for(let f=0;f<l.length;f++){const g=l[f],M=g.identifier,{clientX:A,clientY:C}=g;A!=null&&C!=null&&u.push({x:Math.round((A|0)-p),y:Math.round((C|0)-y),identifier:M})}u.length<=0&&u.push({x:c,y:m});const h=[];return u.forEach(f=>{f.x!=null&&f.y!=null&&(c=(f.x*v/O-i)/o,m=(f.y*T/x-s)/o);const g=new e.default(a);Object.defineProperties(g,{layerX:{value:c,configurable:!0},layerY:{value:m,configurable:!0},originalX:{value:f.x},originalY:{value:f.y},x:{value:c,configurable:!0},y:{value:m,configurable:!0},identifier:{value:f.identifier}}),h.push(g)}),h}}]);Dt.version,Dt.Arc,Dt.Block,Dt.Cloud,Dt.Color;const xn=Dt.Ellipse;Dt.Gradient;const re=Dt.Group,Uh=Dt.Label;Dt.Layer,Dt.LayerWorker,Dt.Node,Dt.Parallel;const he=Dt.Path,de=Dt.Polyline,hr=Dt.Rect;Dt.Regular,Dt.Ring;const $h=Dt.Scene,zh=Dt.Sprite;Dt.SpriteSvg,Dt.Star,Dt.Triangle,Dt.helpers,Dt.createElement,Dt.isSpriteNode,Dt.registerNode,Dt.requestAnimationFrame,Dt.cancelAnimationFrame,Dt.ENV;function Oe(d,r=!0){const t=d.length;if(t<2)return"";let e=d[0],n=d[1];if(t===2)return`M${Te(e)}L${Te(n)}`;let a="";for(let s=2,i=t-1;s<i;s++)e=d[s],n=d[s+1],a+=Me(e,n);return r?`M${Me(d[0],d[1])}Q${Te(d[1])}${Me(d[1],d[2])}T${a}${Me(d[t-1],d[0])}${Me(d[0],d[1])}Z`:`M${Te(d[0])}Q${Te(d[1])}${Me(d[1],d[2])}${d.length>3?"T":""}${a}L${Te(d[t-1])}`}var dr={exports:{}};dr.exports,function(d){var r=function(){var t=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",a={};function s(o,c){if(!a[o]){a[o]={};for(var m=0;m<o.length;m++)a[o][o.charAt(m)]=m}return a[o][c]}var i={compressToBase64:function(o){if(o==null)return"";var c=i._compress(o,6,function(m){return e.charAt(m)});switch(c.length%4){default:case 0:return c;case 1:return c+"===";case 2:return c+"==";case 3:return c+"="}},decompressFromBase64:function(o){return o==null?"":o==""?null:i._decompress(o.length,32,function(c){return s(e,o.charAt(c))})},compressToUTF16:function(o){return o==null?"":i._compress(o,15,function(c){return t(c+32)})+" "},decompressFromUTF16:function(o){return o==null?"":o==""?null:i._decompress(o.length,16384,function(c){return o.charCodeAt(c)-32})},compressToUint8Array:function(o){for(var c=i.compress(o),m=new Uint8Array(c.length*2),u=0,p=c.length;u<p;u++){var y=c.charCodeAt(u);m[u*2]=y>>>8,m[u*2+1]=y%256}return m},decompressFromUint8Array:function(o){if(o==null)return i.decompress(o);for(var c=new Array(o.length/2),m=0,u=c.length;m<u;m++)c[m]=o[m*2]*256+o[m*2+1];var p=[];return c.forEach(function(y){p.push(t(y))}),i.decompress(p.join(""))},compressToEncodedURIComponent:function(o){return o==null?"":i._compress(o,6,function(c){return n.charAt(c)})},decompressFromEncodedURIComponent:function(o){return o==null?"":o==""?null:(o=o.replace(/ /g,"+"),i._decompress(o.length,32,function(c){return s(n,o.charAt(c))}))},compress:function(o){return i._compress(o,16,function(c){return t(c)})},_compress:function(o,c,m){if(o==null)return"";var u,p,y={},O={},x="",v="",T="",l=2,h=3,f=2,g=[],M=0,A=0,C;for(C=0;C<o.length;C+=1)if(x=o.charAt(C),Object.prototype.hasOwnProperty.call(y,x)||(y[x]=h++,O[x]=!0),v=T+x,Object.prototype.hasOwnProperty.call(y,v))T=v;else{if(Object.prototype.hasOwnProperty.call(O,T)){if(T.charCodeAt(0)<256){for(u=0;u<f;u++)M=M<<1,A==c-1?(A=0,g.push(m(M)),M=0):A++;for(p=T.charCodeAt(0),u=0;u<8;u++)M=M<<1|p&1,A==c-1?(A=0,g.push(m(M)),M=0):A++,p=p>>1}else{for(p=1,u=0;u<f;u++)M=M<<1|p,A==c-1?(A=0,g.push(m(M)),M=0):A++,p=0;for(p=T.charCodeAt(0),u=0;u<16;u++)M=M<<1|p&1,A==c-1?(A=0,g.push(m(M)),M=0):A++,p=p>>1}l--,l==0&&(l=Math.pow(2,f),f++),delete O[T]}else for(p=y[T],u=0;u<f;u++)M=M<<1|p&1,A==c-1?(A=0,g.push(m(M)),M=0):A++,p=p>>1;l--,l==0&&(l=Math.pow(2,f),f++),y[v]=h++,T=String(x)}if(T!==""){if(Object.prototype.hasOwnProperty.call(O,T)){if(T.charCodeAt(0)<256){for(u=0;u<f;u++)M=M<<1,A==c-1?(A=0,g.push(m(M)),M=0):A++;for(p=T.charCodeAt(0),u=0;u<8;u++)M=M<<1|p&1,A==c-1?(A=0,g.push(m(M)),M=0):A++,p=p>>1}else{for(p=1,u=0;u<f;u++)M=M<<1|p,A==c-1?(A=0,g.push(m(M)),M=0):A++,p=0;for(p=T.charCodeAt(0),u=0;u<16;u++)M=M<<1|p&1,A==c-1?(A=0,g.push(m(M)),M=0):A++,p=p>>1}l--,l==0&&(l=Math.pow(2,f),f++),delete O[T]}else for(p=y[T],u=0;u<f;u++)M=M<<1|p&1,A==c-1?(A=0,g.push(m(M)),M=0):A++,p=p>>1;l--,l==0&&(l=Math.pow(2,f),f++)}for(p=2,u=0;u<f;u++)M=M<<1|p&1,A==c-1?(A=0,g.push(m(M)),M=0):A++,p=p>>1;for(;;)if(M=M<<1,A==c-1){g.push(m(M));break}else A++;return g.join("")},decompress:function(o){return o==null?"":o==""?null:i._decompress(o.length,32768,function(c){return o.charCodeAt(c)})},_decompress:function(o,c,m){var u=[],p=4,y=4,O=3,x="",v=[],T,l,h,f,g,M,A,C={val:m(0),position:c,index:1};for(T=0;T<3;T+=1)u[T]=T;for(h=0,g=Math.pow(2,2),M=1;M!=g;)f=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=m(C.index++)),h|=(f>0?1:0)*M,M<<=1;switch(h){case 0:for(h=0,g=Math.pow(2,8),M=1;M!=g;)f=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=m(C.index++)),h|=(f>0?1:0)*M,M<<=1;A=t(h);break;case 1:for(h=0,g=Math.pow(2,16),M=1;M!=g;)f=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=m(C.index++)),h|=(f>0?1:0)*M,M<<=1;A=t(h);break;case 2:return""}for(u[3]=A,l=A,v.push(A);;){if(C.index>o)return"";for(h=0,g=Math.pow(2,O),M=1;M!=g;)f=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=m(C.index++)),h|=(f>0?1:0)*M,M<<=1;switch(A=h){case 0:for(h=0,g=Math.pow(2,8),M=1;M!=g;)f=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=m(C.index++)),h|=(f>0?1:0)*M,M<<=1;u[y++]=t(h),A=y-1,p--;break;case 1:for(h=0,g=Math.pow(2,16),M=1;M!=g;)f=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=m(C.index++)),h|=(f>0?1:0)*M,M<<=1;u[y++]=t(h),A=y-1,p--;break;case 2:return v.join("")}if(p==0&&(p=Math.pow(2,O),O++),u[A])x=u[A];else if(A===y)x=l+l.charAt(0);else return null;v.push(x),u[y++]=l+x.charAt(0),p--,l=x,p==0&&(p=Math.pow(2,O),O++)}}};return i}();d!=null?d.exports=r:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return r})}(dr);var Tn=dr.exports;function Ve(d){return JSON.parse(Tn.decompress(d))}function ne(d){return Tn.compress(JSON.stringify(d))}class Mn extends yt{constructor(t){super(t);st(this,"canRotate",!0);st(this,"scaleType",Ft.all);st(this,"toolsType",gt.Pencil);st(this,"syncTimestamp");st(this,"syncIndex",0);st(this,"tmpPoints",[]);st(this,"MAX_REPEAR",10);st(this,"uniThickness");st(this,"workOptions");st(this,"centerPos",[0,0]);this.workOptions=t.toolsOpt,this.uniThickness=this.MAX_REPEAR/this.workOptions.thickness/10,this.syncTimestamp=0}combineConsume(){var i;const t=(i=this.workId)==null?void 0:i.toString(),e=this.transformDataAll(!0),n={name:t};let a;const s=this.drawLayer||this.fullLayer;return e.length&&(a=this.draw({attrs:n,tasks:e,replaceId:t,layer:s,isClearAll:!0})),{rect:a,type:lt.DrawWork,dataType:Tt.Local}}setWorkOptions(t){super.setWorkOptions(t),this.syncTimestamp=Date.now()}consume(t){var v;const{data:e,isFullWork:n,isClearAll:a,isSubWorker:s}=t;if(((v=e.op)==null?void 0:v.length)===0)return{type:lt.None};const{workId:i}=e,{tasks:o,effects:c,consumeIndex:m}=this.transformData(e,!1);this.syncIndex=Math.min(this.syncIndex,m,Math.max(0,this.tmpPoints.length-2));const u={name:i==null?void 0:i.toString()};let p,y=!1;const O=this.syncIndex;if(this.syncTimestamp===0&&(this.syncTimestamp=Date.now()),o.length&&(o[0].taskId-this.syncTimestamp>this.syncUnitTime&&(y=!0,this.syncTimestamp=o[0].taskId,this.syncIndex=this.tmpPoints.length),s)){const T=n?this.fullLayer:this.drawLayer||this.fullLayer;p=this.draw({attrs:u,tasks:o,effects:c,layer:T,isClearAll:a})}if(s)return m>10&&this.tmpPoints.splice(0,m-10),{rect:p,type:lt.DrawWork,dataType:Tt.Local};const x=[];return this.tmpPoints.slice(O).forEach(T=>{x.push(T.x,T.y,this.computRadius(T.z,this.workOptions.thickness))}),{rect:p,type:lt.DrawWork,dataType:Tt.Local,workId:y?i:void 0,op:y?x:void 0,index:y?O*3:void 0}}consumeAll(t){var m,u;if(t.data){const{op:p,workState:y}=t.data;p!=null&&p.length&&y===It.Done&&this.workOptions.strokeType===Kt.Stroke&&this.updateTempPointsWithPressureWhenDone(p)}const e=(m=this.workId)==null?void 0:m.toString();if(!e)return{type:lt.None};const n=this.transformDataAll(!0),a={name:e};let s;const i=this.fullLayer;n.length&&(s=this.draw({attrs:a,tasks:n,replaceId:e,layer:i,isClearAll:!1}));const o=[];this.tmpPoints.map(p=>{o.push(p.x,p.y,this.computRadius(p.z,this.workOptions.thickness))}),this.syncTimestamp=0,delete this.workOptions.syncUnitTime;const c=ne(o);return this.vNodes.setInfo(e,{rect:s,op:o,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:s&&yt.getCenterPos(s,i)}),{rect:s,type:lt.FullWork,dataType:Tt.Local,workId:e,ops:c,updateNodeOpt:{pos:this.centerPos,useAnimation:!0},opt:this.workOptions,undoTickerId:(u=t.data)==null?void 0:u.undoTickerId}}clearTmpPoints(){this.tmpPoints.length=0,this.syncTimestamp=0,this.syncIndex=0}consumeService(t){var u;const{op:e,isFullWork:n,replaceId:a,isClearAll:s}=t;this.tmpPoints.length=0;for(let p=0;p<e.length;p+=3){const y=new Mt(e[p],e[p+1],e[p+2]);if(this.tmpPoints.length>0){const O=this.tmpPoints[this.tmpPoints.length-1],x=et.Sub(y,O).uni();y.setv(x)}this.tmpPoints.push(y)}const i=this.transformDataAll(!1),o=(u=this.workId)==null?void 0:u.toString(),c={name:o};let m;if(o&&i.length){const p=n?this.fullLayer:this.drawLayer||this.fullLayer;m=this.draw({attrs:c,tasks:i,replaceId:a,layer:p,isClearAll:s}),this.vNodes.setInfo(o,{rect:m,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:m&&yt.getCenterPos(m,p)})}return m}transformDataAll(t=!0){return this.getTaskPoints(this.tmpPoints,t&&this.workOptions.thickness||void 0)}draw(t){var g;const{attrs:e,tasks:n,replaceId:a,effects:s,layer:i,isClearAll:o}=t,{strokeColor:c,strokeType:m,thickness:u,zIndex:p,scale:y,rotate:O,translate:x}=this.workOptions;o&&i.removeAllChildren(),a&&(this.fullLayer.getElementsByName(a+"").map(M=>M.remove()),(g=this.drawLayer)==null||g.getElementsByName(a+"").map(M=>M.remove())),s!=null&&s.size&&(s.forEach(M=>{var A;(A=i.getElementById(M+""))==null||A.remove()}),s.clear());let v;const T=[],l=i.worldPosition,h=i.worldScaling;for(let M=0;M<n.length;M++){const{pos:A,points:C,taskId:b}=n[M];e.id=b.toString();const{ps:E,rect:L}=this.computDrawPoints(C);let D;const I=C.length===1;m===Kt.Stroke||I?D=Oe(E,!0):D=Oe(E,!1);const R={pos:A,d:D,fillColor:m===Kt.Stroke||I?c:void 0,lineDash:m===Kt.Dotted&&!I?[1,u*2]:m===Kt.LongDotted&&!I?[u,u*2]:void 0,strokeColor:c,lineCap:m===Kt.Stroke||I?void 0:"round",lineWidth:m===Kt.Stroke||I?0:u};v=Ot(v,{x:Math.floor((L.x+A[0])*h[0]+l[0]-yt.SafeBorderPadding),y:Math.floor((L.y+A[1])*h[1]+l[1]-yt.SafeBorderPadding),w:Math.floor(L.w*h[0]+2*yt.SafeBorderPadding),h:Math.floor(L.h*h[1]+2*yt.SafeBorderPadding)}),T.push(R)}y&&(e.scale=y),O&&(e.rotate=O),x&&(e.translate=x);const f=new re;if(v){this.centerPos=yt.getCenterPos(v,i),f.attr({...e,normalize:!0,id:e.name,anchor:[.5,.5],bgcolor:m===Kt.Stroke?c:void 0,pos:this.centerPos,size:[(v.w-2*yt.SafeBorderPadding)/h[0],(v.h-2*yt.SafeBorderPadding)/h[1]],zIndex:p});const M=T.map(A=>(A.pos=[A.pos[0]-this.centerPos[0],A.pos[1]-this.centerPos[1]],new he(A)));f.append(...M),m===Kt.Stroke&&f.seal(),i.append(f)}if(y||O||x){const M=f==null?void 0:f.getBoundingClientRect();if(M)return{x:Math.floor(M.x-yt.SafeBorderPadding),y:Math.floor(M.y-yt.SafeBorderPadding),w:Math.floor(M.width+yt.SafeBorderPadding*2),h:Math.floor(M.height+yt.SafeBorderPadding*2)}}return v}computDrawPoints(t){return this.workOptions.strokeType===Kt.Stroke||t.length===1?this.computStroke(t):this.computNomal(t)}computNomal(t){let e=this.workOptions.thickness;const n=t.map(a=>(e=Math.max(e,a.radius),a.point));return{ps:n,rect:Bt(n,e)}}computStroke(t){return t.length===1?this.computDotStroke(t[0]):this.computLineStroke(t)}computLineStroke(t){const e=[],n=[];for(let c=0;c<t.length;c++){const{point:m,radius:u}=t[c];let p=m.v;c===0&&t.length>1&&(p=t[c+1].point.v);const y=et.Per(p).mul(u);e.push(Mt.Sub(m,y)),n.push(Mt.Add(m,y))}const a=t[t.length-1],s=Mt.GetSemicircleStroke(a.point,e[e.length-1],-1,8),i=Mt.GetSemicircleStroke(t[0].point,n[0],-1,8),o=e.concat(s,n.reverse(),i);return{ps:o,rect:Bt(o)}}computDotStroke(t){const{point:e,radius:n}=t,a={x:e.x-n,y:e.y-n,w:n*2,h:n*2};return{ps:Mt.GetDotStroke(e,n,8),rect:a}}transformData(t,e){const{op:n,workState:a}=t;let s=this.tmpPoints.length-1,i=[];if(n!=null&&n.length&&a){const{strokeType:o,thickness:c}=this.workOptions,m=new Set;s=o===Kt.Stroke?this.updateTempPointsWithPressure(n,c,m):this.updateTempPoints(n,c,m);const u=e?this.tmpPoints:this.tmpPoints.slice(s);return i=this.getTaskPoints(u,c),{tasks:i,effects:m,consumeIndex:s}}return{tasks:i,consumeIndex:s}}computRadius(t,e){return t*.03*e+e*.5}getMinZ(t,e){return((e||Math.max(1,Math.floor(t*.3)))-t*.5)*100/t/3}getTaskPoints(t,e){var u;const n=[];if(t.length===0)return[];let a=0,s=t[0].x,i=t[0].y,o=[s,i],c=[],m=t[0].t;for(;a<t.length;){const p=t[a],y=p.x-s,O=p.y-i,x=p.z,v=e?this.computRadius(x,e):x;if(c.push({point:new Mt(y,O,x,t[a].v),radius:v}),a>0&&a<t.length-1){const T=t[a].getAngleByPoints(t[a-1],t[a+1]);if(T<90||T>270){const l=(u=c.pop())==null?void 0:u.point.clone();l&&n.push({taskId:m,pos:o,points:[...c,{point:l,radius:v}]}),s=t[a].x,i=t[a].y,o=[s,i];const h=p.x-s,f=p.y-i;c=[{point:new Mt(h,f,x),radius:v}],m=Date.now()}}a++}return n.push({taskId:m,pos:o,points:c}),n}updateTempPointsWithPressure(t,e,n){const a=Date.now(),s=this.tmpPoints.length;let i=s;for(let c=0;c<t.length;c+=2){i=Math.min(i,s);const m=this.tmpPoints.length,u=new Mt(t[c],t[c+1]);if(m===0){this.tmpPoints.push(u);continue}const p=m-1,y=this.tmpPoints[p],O=et.Sub(u,y).uni();if(u.isNear(y,e)){if(y.z<this.MAX_REPEAR){if(y.setz(Math.min(y.z+1,this.MAX_REPEAR)),i=Math.min(i,p),m>1){let T=m-1;for(;T>0;){const l=this.tmpPoints[T].distance(this.tmpPoints[T-1]),h=Math.max(this.tmpPoints[T].z-this.uniThickness*l,0);if(this.tmpPoints[T-1].z>=h)break;this.tmpPoints[T-1].setz(h),i=Math.min(i,T-1),T--}}}else i=1/0;continue}u.setv(O);const x=u.distance(y),v=Math.max(y.z-this.uniThickness*x,0);m>1&&et.Equals(O,y.v,.02)&&(v>0||y.z<=0)&&(n&&y.t&&n.add(y.t),this.tmpPoints.pop(),i=Math.min(p,i)),u.setz(v),this.tmpPoints.push(u)}if(i===1/0)return this.tmpPoints.length;let o=s;if(i===s){o=Math.max(o-1,0);const c=this.tmpPoints[o].t;c&&(n==null||n.add(c))}else{let c=s-1;for(o=i;c>=0;){const m=this.tmpPoints[c].t;if(m&&(n==null||n.add(m),c<=i)){o=c,c=-1;break}c--}}return this.tmpPoints[o].setT(a),o}updateTempPoints(t,e,n){var c;const a=Date.now(),s=this.tmpPoints.length;let i=s;for(let m=0;m<t.length;m+=2){const u=this.tmpPoints.length,p=new Mt(t[m],t[m+1]);if(u===0){this.tmpPoints.push(p);continue}const y=u-1,O=this.tmpPoints[y],x=et.Sub(p,O).uni();if(p.isNear(O,e/2)){i=Math.min(y,i);continue}et.Equals(x,O.v,.02)&&(n&&O.t&&n.add(O.t),this.tmpPoints.pop(),i=Math.min(y,i)),p.setv(x),this.tmpPoints.push(p)}let o=s;if(i===s){o=Math.max(o-1,0);const m=this.tmpPoints[o].t;m&&(n==null||n.add(m))}else{let m=Math.min(s-1,i);for(o=i;m>=0;){const u=(c=this.tmpPoints[m])==null?void 0:c.t;if(u&&(n==null||n.add(u),m<=i)){o=m,m=-1;break}m--}}return this.tmpPoints[o].setT(a),o}updateTempPointsWithPressureWhenDone(t){const{thickness:e}=this.workOptions,n=t.length,a=this.getMinZ(e);for(let s=0;s<n;s+=2){const i=this.tmpPoints.length,o=new Mt(t[s],t[s+1]);if(i===0){this.tmpPoints.push(o);continue}const c=i-1,m=this.tmpPoints[c],u=et.Sub(o,m).uni(),p=o.distance(m);if(i>1&&m.z===a)break;if(o.isNear(m,e/2)){if(n<3&&m.z<this.MAX_REPEAR&&(m.setz(Math.min(m.z+1,this.MAX_REPEAR)),i>1)){let O=i-1;for(;O>0;){const x=this.tmpPoints[O].distance(this.tmpPoints[O-1]),v=Math.max(this.tmpPoints[O].z-this.uniThickness*x,-e/4);if(this.tmpPoints[O-1].z>=v)break;this.tmpPoints[O-1].setz(v),O--}}continue}o.setv(u);const y=Math.max(m.z-this.uniThickness*p,a);i>1&&et.Equals(u,m.v,.02)&&m.z<=0&&this.tmpPoints.pop(),o.setz(y),this.tmpPoints.push(o)}}static updateNodeOpt(t){var o;const{node:e,opt:n,vNodes:a}=t,{strokeColor:s}=n,i=a.get(e.name);return s&&(e.tagName==="GROUP"?He(e)?e.setAttribute("bgcolor",s):e.children.forEach(c=>{c.setAttribute("strokeColor",s),c.getAttribute("fillColor")&&c.setAttribute("fillColor",s)}):(e.setAttribute("strokeColor",s),e.setAttribute("fillColor",s)),(o=i==null?void 0:i.opt)!=null&&o.strokeColor&&(i.opt.strokeColor=s)),i&&a.setInfo(e.name,i),yt.updateNodeOpt(t)}}class On extends yt{constructor(t){super(t);st(this,"toolsType",gt.LaserPen);st(this,"canRotate",!1);st(this,"scaleType",Ft.none);st(this,"syncTimestamp");st(this,"syncIndex",0);st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"consumeIndex",0);this.workOptions=t.toolsOpt,this.syncTimestamp=0}combineConsume(){}setWorkOptions(t){super.setWorkOptions(t),this.syncTimestamp=Date.now()}consume(t){const{data:e,isSubWorker:n}=t,{workId:a,op:s}=e;if((s==null?void 0:s.length)===0)return{type:lt.None};if(this.updateTempPoints(s||[]),this.consumeIndex>this.tmpPoints.length-4)return{type:lt.None};const{strokeColor:i,thickness:o,strokeType:c}=this.workOptions,m=Bt(this.tmpPoints,o);let u=!1;const p=this.syncIndex,y=this.tmpPoints.slice(this.consumeIndex);this.consumeIndex=this.tmpPoints.length-1,this.syncTimestamp===0&&(this.syncTimestamp=Date.now());const O={name:a==null?void 0:a.toString(),opacity:1,lineDash:c===Kt.Dotted?[1,o*2]:c===Kt.LongDotted?[o,o*2]:void 0,strokeColor:i,lineCap:"round",lineWidth:o,anchor:[.5,.5]},x=this.getTaskPoints(y);if(x.length){const T=Date.now();T-this.syncTimestamp>this.syncUnitTime&&(u=!0,this.syncTimestamp=T,this.syncIndex=this.tmpPoints.length),n&&this.draw({attrs:O,tasks:x,isDot:!1,layer:this.drawLayer||this.fullLayer})}const v=[];return this.tmpPoints.slice(p).forEach(T=>{v.push(T.x,T.y)}),{rect:{x:m.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:m.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:m.w*this.fullLayer.worldScaling[0],h:m.h*this.fullLayer.worldScaling[1]},type:lt.DrawWork,dataType:Tt.Local,workId:u?a:void 0,op:u?v:void 0,index:u?p*2:void 0}}consumeAll(){var a;const t=(a=this.workId)==null?void 0:a.toString();let e;if(this.tmpPoints.length-1>this.consumeIndex){let s=this.tmpPoints.slice(this.consumeIndex);const i=s.length===1,{strokeColor:o,thickness:c,strokeType:m}=this.workOptions;if(i){const y=this.computDotStroke({point:s[0],radius:c/2});s=y.ps,e=y.rect}else e=Bt(this.tmpPoints,c);const u={name:t==null?void 0:t.toString(),fillColor:i?o:void 0,opacity:1,lineDash:m===Kt.Dotted&&!i?[1,c*2]:m===Kt.LongDotted&&!i?[c,c*2]:void 0,strokeColor:o,lineCap:i?void 0:"round",lineWidth:i?0:c,anchor:[.5,.5]},p=this.getTaskPoints(s);p.length&&this.draw({attrs:u,tasks:p,isDot:i,layer:this.drawLayer||this.fullLayer})}const n=[];return this.tmpPoints.slice(this.syncIndex).forEach(s=>{n.push(s.x,s.y)}),{rect:e&&{x:e.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:e.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:e.w*this.fullLayer.worldScaling[0],h:e.h*this.fullLayer.worldScaling[1]},type:lt.DrawWork,dataType:Tt.Local,workId:t,op:n,index:this.syncIndex*2}}clearTmpPoints(){this.tmpPoints.length=0,this.syncTimestamp=0,this.syncIndex=0}consumeService(t){var x;const{op:e,replaceId:n,isFullWork:a}=t,{strokeColor:s,thickness:i,strokeType:o}=this.workOptions;if(!e.length){const v=Bt(this.tmpPoints,i);return{x:v.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:v.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:v.w*this.fullLayer.worldScaling[0],h:v.h*this.fullLayer.worldScaling[1]}}const c=Math.max(0,this.tmpPoints.length-1);this.updateTempPoints(e||[]);let m,u=this.tmpPoints.slice(c);const p=u.length===1;if(p){const v=this.computDotStroke({point:u[0],radius:i/2});u=v.ps,m=v.rect}else m=Bt(this.tmpPoints,i);const y={name:(x=this.workId)==null?void 0:x.toString(),fillColor:p?s:void 0,opacity:1,lineDash:o===Kt.Dotted&&!p?[1,i*2]:o===Kt.LongDotted&&!p?[i,i*2]:void 0,strokeColor:s,lineCap:p?void 0:"round",lineWidth:p?0:i,anchor:[.5,.5]},O=this.getTaskPoints(u);if(O.length){const v=a?this.fullLayer:this.drawLayer||this.fullLayer;this.draw({attrs:y,tasks:O,isDot:p,replaceId:n,layer:v})}return{x:m.x*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y:m.y*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1],w:m.w*this.fullLayer.worldScaling[0],h:m.h*this.fullLayer.worldScaling[1]}}computDotStroke(t){const{point:e,radius:n}=t,a={x:e.x-n,y:e.y-n,w:n*2,h:n*2};return{ps:Mt.GetDotStroke(e,n,8),rect:a}}updateTempPoints(t){const e=this.tmpPoints.length;for(let n=0;n<t.length;n+=2){if(e){const a=this.tmpPoints.slice(-1)[0];a&&a.x===t[n]&&a.y===t[n+1]&&this.tmpPoints.pop()}this.tmpPoints.push(new Mt(t[n],t[n+1]))}}async draw(t){const{attrs:e,tasks:n,isDot:a,layer:s}=t,{duration:i}=this.workOptions;for(const o of n){const c=new he,{pos:m,points:u}=o;let p;a?p=Oe(u,!0):p=Oe(u,!1),c.attr({...e,pos:m,d:p});const{vertex:y,fragment:O}=this.workOptions;if(y&&O){const x=s.renderer.createProgram({vertex:y,fragment:O}),{width:v,height:T}=s.getResolution();c.setUniforms({u_time:0,u_resolution:[v,T]}),c.setProgram(x)}s.appendChild(c),c.transition(i).attr({scale:a?[.1,.1]:[1,1],lineWidth:a?0:1}).then(()=>{c.remove()})}}getTaskPoints(t){var c;const e=[];if(t.length===0)return[];let n=0,a=t[0].x,s=t[0].y,i=[a,s],o=[];for(;n<t.length;){const m=t[n],u=m.x-a,p=m.y-s;if(o.push(new Mt(u,p)),n>0&&n<t.length-1){const y=t[n].getAngleByPoints(t[n-1],t[n+1]);if(y<90||y>270){const O=(c=o.pop())==null?void 0:c.clone();O&&e.push({pos:i,points:[...o,O]}),a=t[n].x,s=t[n].y,i=[a,s];const x=m.x-a,v=m.y-s;o=[new Mt(x,v)]}}n++}return e.push({pos:i,points:o}),e}removeLocal(){}removeService(t){let e;const n=[];return this.fullLayer.getElementsByName(t).forEach(a=>{if(a.name===t){const s=a.getBoundingClientRect();e=Ot(e,{x:s.x,y:s.y,w:s.width,h:s.height}),n.push(a)}}),n.length&&n.forEach(a=>a.remove()),e}}var Gh=Ye;Ye.polyline=Ye,Ye.polygon=Hh;function Ye(d,r,t){var e=d.length,n=Ee(d[0],r),a=[],s,i,o,c,m;for(t||(t=[]),s=1;s<e;s++){for(i=d[s-1],o=d[s],c=m=Ee(o,r);;)if(n|c){if(n&c)break;n?(i=gr(i,o,n,r),n=Ee(i,r)):(o=gr(i,o,c,r),c=Ee(o,r))}else{a.push(i),c!==m?(a.push(o),s<e-1&&(t.push(a),a=[])):s===e-1&&a.push(o);break}n=m}return a.length&&t.push(a),t}function Hh(d,r){var t,e,n,a,s,i,o;for(e=1;e<=8;e*=2){for(t=[],n=d[d.length-1],a=!(Ee(n,r)&e),s=0;s<d.length;s++)i=d[s],o=!(Ee(i,r)&e),o!==a&&t.push(gr(n,i,e,r)),o&&t.push(i),n=i,a=o;if(d=t,!d.length)break}return t}function gr(d,r,t,e){return t&8?[d[0]+(r[0]-d[0])*(e[3]-d[1])/(r[1]-d[1]),e[3]]:t&4?[d[0]+(r[0]-d[0])*(e[1]-d[1])/(r[1]-d[1]),e[1]]:t&2?[e[2],d[1]+(r[1]-d[1])*(e[2]-d[0])/(r[0]-d[0])]:t&1?[e[0],d[1]+(r[1]-d[1])*(e[0]-d[0])/(r[0]-d[0])]:null}function Ee(d,r){var t=0;return d[0]<r[0]?t|=1:d[0]>r[2]&&(t|=2),d[1]<r[1]?t|=4:d[1]>r[3]&&(t|=8),t}var Kh=Xt(Gh);const Pe=class Pe extends yt{constructor(t,e){super(t);st(this,"canRotate",!1);st(this,"scaleType",Ft.none);st(this,"toolsType",gt.Eraser);st(this,"serviceWork");st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"worldPosition");st(this,"worldScaling");st(this,"eraserRect");st(this,"eraserPolyline");this.serviceWork=e,this.workOptions=t.toolsOpt,this.worldPosition=this.fullLayer.worldPosition,this.worldScaling=this.fullLayer.worldScaling}combineConsume(){}consumeService(){}setWorkOptions(t){super.setWorkOptions(t)}createEraserRect(t){const e=t[0]*this.worldScaling[0]+this.worldPosition[0],n=t[1]*this.worldScaling[1]+this.worldPosition[1],{width:a,height:s}=Pe.eraserSizes[this.workOptions.thickness];this.eraserRect={x:e-a*.5,y:n-s*.5,w:a,h:s},this.eraserPolyline=[this.eraserRect.x,this.eraserRect.y,this.eraserRect.x+this.eraserRect.w,this.eraserRect.y+this.eraserRect.h]}computRectCenterPoints(){const t=this.tmpPoints.slice(-2);if(this.tmpPoints.length===4){const e=new et(this.tmpPoints[0],this.tmpPoints[1]),n=new et(this.tmpPoints[2],this.tmpPoints[3]),a=et.Sub(n,e).uni(),s=et.Dist(e,n),{width:i,height:o}=Pe.eraserSizes[this.workOptions.thickness],c=Math.min(i,o),m=Math.round(s/c);if(m>1){const u=[];for(let p=0;p<m;p++){const y=et.Mul(a,p*c);u.push(this.tmpPoints[0]+y.x,this.tmpPoints[1]+y.y)}return u.concat(t)}}return t}isNear(t,e){const n=new et(t[0],t[1]),a=new et(e[0],e[1]),{width:s,height:i}=Pe.eraserSizes[this.workOptions.thickness];return et.Dist(n,a)<Math.hypot(s,i)*.5}cutPolyline(t,e){let n=[e],a=0;for(;a<t.length;){const o=t[a];if(o.length<2)break;n=s(n,o),a++}return n;function s(o,c){const m=o;for(let u=0;u<o.length;u++){const p=o[u],y=p.findIndex((O,x)=>x<p.length-1?i([O,p[x+1]],[c[0],c[1]]):!1);if(y!==-1&&y>-1){const O=[],x=p.slice(0,y+1);if(et.Equals(p[y],c[0])||x.push(c[0].clone().setz(p[y].z)),x.length>1&&O.push(x),y+c.length-1<p.length-1){const v=y+c.length-1,T=p.slice(v),l=c[c.length-1];et.Equals(p[v],l)||T.unshift(l.clone().setz(p[v].z)),T.length>1&&O.push(T)}return m.splice(u,1,...O),m}}return m}function i(o,c){const m=et.Sub(o[1],o[0]),u=et.Sub(c[1],c[0]),p=et.Sub(c[0],o[0]);return Math.abs(et.Cpr(m,u))<.1&&Math.abs(et.Cpr(m,p))<.1}}isSamePoint(t,e){return t[0]===e[0]&&t[1]===e[1]}translateIntersect(t){const e=[];for(let n=0;n<t.length;n++){const a=t[n].filter((o,c,m)=>!(c>0&&this.isSamePoint(o,m[c-1]))),s=[];let i=0;for(;i<a.length;){const o=a[i],c=new et(o[0],o[1]);s.push(c),i++}e.push(s)}return e}isLineEraser(t,e){return!(t===gt.Pencil&&!e)}remove(t){const{curNodeMap:e,removeIds:n,newWorkDatas:a}=t,{isLine:s}=this.workOptions;let i;for(const[o,c]of e.entries())if(c.rect&&this.eraserRect&&this.eraserPolyline&&xe(this.eraserRect,c.rect)){const{op:m,toolsType:u}=c,p=this.isLineEraser(u,s),y=[],O=[];for(let v=0;v<m.length;v+=3){const T=new et(m[v]*this.worldScaling[0]+this.worldPosition[0],m[v+1]*this.worldScaling[1]+this.worldPosition[1],m[v+2]);O.push(T),y.push(new Mt(T.x,T.y))}const x=y.length&&Bt(y)||c.rect;if(xe(x,this.eraserRect)){if(O.length>1){const v=Kh.polyline(O.map(T=>T.XY),this.eraserPolyline);if(v.length&&(n.add(c.name),!p)){const T=this.translateIntersect(v),l=this.cutPolyline(T,O);for(let h=0;h<l.length;h++){const f=`${o}_s_${h}`,g=[];l[h].forEach(M=>{g.push((M.x-this.worldPosition[0])/this.worldScaling[0],(M.y-this.worldPosition[1])/this.worldScaling[1],M.z)}),c.opt&&c.toolsType&&this.vNodes&&(this.vNodes.setInfo(f,{rect:x,op:g,opt:c.opt,canRotate:c.canRotate,scaleType:c.scaleType,toolsType:c.toolsType}),a.set(f,{workId:f,op:g,opt:c.opt,toolsType:c.toolsType}))}}}else n.add(c.name);i=Ot(i,x)}}return n.forEach(o=>{var c;return(c=this.vNodes)==null?void 0:c.delete(o)}),i&&(i.x-=yt.SafeBorderPadding,i.y-=yt.SafeBorderPadding,i.w+=yt.SafeBorderPadding*2,i.h+=yt.SafeBorderPadding*2),i}consume(t){const{op:e}=t.data;if(!e||e.length===0)return{type:lt.None};const n=this.tmpPoints.length;if(n>1&&this.isNear([e[0],e[1]],[this.tmpPoints[n-2],this.tmpPoints[n-1]]))return{type:lt.None};n===4&&(this.tmpPoints.shift(),this.tmpPoints.shift()),this.tmpPoints.push(e[0],e[1]);const a=this.computRectCenterPoints();let s;const i=new Set,o=new Map;this.vNodes.setTarget();const c=this.getUnLockNodeMap(this.vNodes.getLastTarget());for(let m=0;m<a.length-1;m+=2){this.createEraserRect(a.slice(m,m+2));const u=this.remove({curNodeMap:c,removeIds:i,newWorkDatas:o});s=Ot(s,u)}if(this.vNodes.deleteLastTarget(),s&&i.size){for(const m of o.keys())i.has(m)&&o.delete(m);return{type:lt.RemoveNode,dataType:Tt.Local,rect:s,removeIds:[...i],newWorkDatas:o}}return{type:lt.None}}consumeAll(t){return this.consume(t)}clearTmpPoints(){this.tmpPoints.length=0}getUnLockNodeMap(t){var e;if(this.serviceWork){const n=Zt(t),a=this.serviceWork.selectorWorkShapes,s=this.serviceWork.workShapes;for(const i of a.values())if((e=i.selectIds)!=null&&e.length)for(const o of i.selectIds)n.delete(o);for(const i of s.keys())n.delete(i);return n}return t}};st(Pe,"eraserSizes",Object.freeze([Object.freeze({width:18,height:26}),Object.freeze({width:26,height:34}),Object.freeze({width:34,height:50})]));let ae=Pe;const Vh="++",Yh="selector",Xh="all";var Zh="__lodash_hash_undefined__";function Jh(d){return this.__data__.set(d,Zh),this}var Qh=Jh;function kh(d){return this.__data__.has(d)}var qh=kh,_h=Lr,td=Qh,ed=qh;function Xe(d){var r=-1,t=d==null?0:d.length;for(this.__data__=new _h;++r<t;)this.add(d[r])}Xe.prototype.add=Xe.prototype.push=td,Xe.prototype.has=ed;var rd=Xe;function nd(d,r){for(var t=-1,e=d==null?0:d.length;++t<e;)if(r(d[t],t,d))return!0;return!1}var id=nd;function sd(d,r){return d.has(r)}var od=sd,ad=rd,ld=id,cd=od,fd=1,ud=2;function hd(d,r,t,e,n,a){var s=t&fd,i=d.length,o=r.length;if(i!=o&&!(s&&o>i))return!1;var c=a.get(d),m=a.get(r);if(c&&m)return c==r&&m==d;var u=-1,p=!0,y=t&ud?new ad:void 0;for(a.set(d,r),a.set(r,d);++u<i;){var O=d[u],x=r[u];if(e)var v=s?e(x,O,u,r,d,a):e(O,x,u,d,r,a);if(v!==void 0){if(v)continue;p=!1;break}if(y){if(!ld(r,function(T,l){if(!cd(y,l)&&(O===T||n(O,T,t,e,a)))return y.push(l)})){p=!1;break}}else if(!(O===x||n(O,x,t,e,a))){p=!1;break}}return a.delete(d),a.delete(r),p}var En=hd;function dd(d){var r=-1,t=Array(d.size);return d.forEach(function(e,n){t[++r]=[n,e]}),t}var gd=dd;function pd(d){var r=-1,t=Array(d.size);return d.forEach(function(e){t[++r]=e}),t}var md=pd,Pn=we,An=nn,vd=Qe,yd=En,Sd=gd,xd=md,Td=1,Md=2,Od="[object Boolean]",Ed="[object Date]",Pd="[object Error]",Ad="[object Map]",Cd="[object Number]",Rd="[object RegExp]",Id="[object Set]",Ld="[object String]",bd="[object Symbol]",Dd="[object ArrayBuffer]",wd="[object DataView]",Cn=Pn?Pn.prototype:void 0,pr=Cn?Cn.valueOf:void 0;function Nd(d,r,t,e,n,a,s){switch(t){case wd:if(d.byteLength!=r.byteLength||d.byteOffset!=r.byteOffset)return!1;d=d.buffer,r=r.buffer;case Dd:return!(d.byteLength!=r.byteLength||!a(new An(d),new An(r)));case Od:case Ed:case Cd:return vd(+d,+r);case Pd:return d.name==r.name&&d.message==r.message;case Rd:case Ld:return d==r+"";case Ad:var i=Sd;case Id:var o=e&Td;if(i||(i=xd),d.size!=r.size&&!o)return!1;var c=s.get(d);if(c)return c==r;e|=Md,s.set(d,r);var m=yd(i(d),i(r),e,n,a,s);return s.delete(d),m;case bd:if(pr)return pr.call(d)==pr.call(r)}return!1}var Bd=Nd,Rn=Qr,Wd=1,Fd=Object.prototype,jd=Fd.hasOwnProperty;function Ud(d,r,t,e,n,a){var s=t&Wd,i=Rn(d),o=i.length,c=Rn(r),m=c.length;if(o!=m&&!s)return!1;for(var u=o;u--;){var p=i[u];if(!(s?p in r:jd.call(r,p)))return!1}var y=a.get(d),O=a.get(r);if(y&&O)return y==r&&O==d;var x=!0;a.set(d,r),a.set(r,d);for(var v=s;++u<o;){p=i[u];var T=d[p],l=r[p];if(e)var h=s?e(l,T,p,r,d,a):e(T,l,p,d,r,a);if(!(h===void 0?T===l||n(T,l,t,e,a):h)){x=!1;break}v||(v=p=="constructor")}if(x&&!v){var f=d.constructor,g=r.constructor;f!=g&&"constructor"in d&&"constructor"in r&&!(typeof f=="function"&&f instanceof f&&typeof g=="function"&&g instanceof g)&&(x=!1)}return a.delete(d),a.delete(r),x}var $d=Ud,mr=br,zd=En,Gd=Bd,Hd=$d,In=ze,Ln=Fe,bn=_e,Kd=$r,Vd=1,Dn="[object Arguments]",wn="[object Array]",Ze="[object Object]",Yd=Object.prototype,Nn=Yd.hasOwnProperty;function Xd(d,r,t,e,n,a){var s=Ln(d),i=Ln(r),o=s?wn:In(d),c=i?wn:In(r);o=o==Dn?Ze:o,c=c==Dn?Ze:c;var m=o==Ze,u=c==Ze,p=o==c;if(p&&bn(d)){if(!bn(r))return!1;s=!0,m=!1}if(p&&!m)return a||(a=new mr),s||Kd(d)?zd(d,r,t,e,n,a):Gd(d,r,o,t,e,n,a);if(!(t&Vd)){var y=m&&Nn.call(d,"__wrapped__"),O=u&&Nn.call(r,"__wrapped__");if(y||O){var x=y?d.value():d,v=O?r.value():r;return a||(a=new mr),n(x,v,t,e,a)}}return p?(a||(a=new mr),Hd(d,r,t,e,n,a)):!1}var Zd=Xd,Jd=Zd,Bn=ie;function Wn(d,r,t,e,n){return d===r?!0:d==null||r==null||!Bn(d)&&!Bn(r)?d!==d&&r!==r:Jd(d,r,t,e,Wn,n)}var Qd=Wn,kd=Qd;function qd(d,r){return kd(d,r)}var _d=qd,vr=Xt(_d);const _t=class _t extends yt{constructor(t){super(t);st(this,"toolsType",gt.Selector);st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"selectIds");st(this,"selectorColor");st(this,"strokeColor");st(this,"fillColor");st(this,"oldSelectRect");st(this,"canRotate",!1);st(this,"canTextEdit",!1);st(this,"canLock",!1);st(this,"scaleType",Ft.all);st(this,"toolsTypes");st(this,"shapeOpt");st(this,"textOpt");st(this,"isLocked");this.workOptions=t.toolsOpt}computSelector(t=!0){const e=Bt(this.tmpPoints);if(e.w===0||e.h===0)return{selectIds:[],intersectRect:void 0,subNodeMap:new Map};const{rectRange:n,nodeRange:a}=this.vNodes.getRectIntersectRange(e,t);return{selectIds:[...a.keys()],intersectRect:n,subNodeMap:a}}updateTempPoints(t){const e=this.tmpPoints.length,n=t.length;if(n>1){const a=new Mt(t[n-2]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],t[n-1]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[1]);e===2?this.tmpPoints.splice(1,1,a):this.tmpPoints.push(a)}}drawSelector(t){const{drawRect:e,subNodeMap:n,selectorId:a,layer:s,isService:i}=t,o=new re({pos:[e.x,e.y],anchor:[0,0],size:[e.w,e.h],id:a,name:a,zIndex:1e3}),c=[];if(i){const m=new hr({normalize:!0,pos:[e.w/2,e.h/2],lineWidth:1,strokeColor:this.selectorColor||this.workOptions.strokeColor,width:e.w,height:e.h,name:_t.selectorBorderId});c.push(m)}n.forEach((m,u)=>{const p=[m.rect.x+m.rect.w/2-e.x,m.rect.y+m.rect.h/2-e.y],y=new hr({normalize:!0,pos:p,lineWidth:1,strokeColor:n.size>1?this.selectorColor||this.workOptions.strokeColor:void 0,width:m.rect.w,height:m.rect.h,id:`selector-${u}`,name:`selector-${u}`});c.push(y)}),c&&o.append(...c),(s==null?void 0:s.parent).appendChild(o)}draw(t,e,n,a=!1){var o,c;const{intersectRect:s,subNodeMap:i}=n;(c=(o=e.parent)==null?void 0:o.getElementById(t))==null||c.remove(),s&&this.drawSelector({drawRect:s,subNodeMap:i,selectorId:t,layer:e,isService:a})}getSelecteorInfo(t){this.scaleType=Ft.all,this.canRotate=!1,this.textOpt=void 0,this.strokeColor=void 0,this.fillColor=void 0,this.canTextEdit=!1,this.canLock=!1,this.isLocked=!1,this.toolsTypes=void 0,this.shapeOpt=void 0;const e=new Set;let n;for(const a of t.values()){const{opt:s,canRotate:i,scaleType:o,toolsType:c}=a;this.selectorColor=this.workOptions.strokeColor,s.strokeColor&&(this.strokeColor=s.strokeColor),s.fillColor&&(this.fillColor=s.fillColor),s.textOpt&&(this.textOpt=s.textOpt),c===gt.SpeechBalloon&&(e.add(c),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.placement=s.placement),c===gt.Polygon&&(e.add(c),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.vertices=s.vertices),c===gt.Star&&(e.add(c),this.shapeOpt||(this.shapeOpt={}),this.shapeOpt.vertices=s.vertices,this.shapeOpt.innerRatio=s.innerRatio,this.shapeOpt.innerVerticeStep=s.innerVerticeStep),c===gt.Text&&(this.textOpt=s),t.size===1&&(this.textOpt&&(this.canTextEdit=!0),this.canRotate=i,this.scaleType=o),o===Ft.none&&(this.scaleType=o),c===gt.Image&&(n=a)}e.size&&(this.toolsTypes=[...e]),n&&(t.size===1?(this.canLock=!0,n.opt.locked&&(this.isLocked=!0,this.scaleType=Ft.none,this.canRotate=!1,this.textOpt=void 0,this.fillColor=void 0,this.selectorColor="rgb(177,177,177)",this.strokeColor=void 0,this.canTextEdit=!1)):t.size>1&&!n.opt.locked&&(this.canLock=!1,this.canRotate=!1))}getChildrenPoints(){var t;if(this.scaleType===Ft.both&&this.selectIds){const e=this.selectIds[0],n=(t=this.vNodes.get(e))==null?void 0:t.op;if(n){const a=[];for(let s=0;s<n.length;s+=3)a.push([n[s],n[s+1]]);return a}}}consume(t){const{op:e,workState:n}=t.data;let a=this.oldSelectRect;if(n===It.Start&&(a=this.backToFullLayer()),!(e!=null&&e.length)||!this.vNodes.curNodeMap.size)return{type:lt.None};this.updateTempPoints(e);const s=this.computSelector();if(this.selectIds&&Ih(this.selectIds,s.selectIds))return{type:lt.None};this.selectIds=s.selectIds;const i=s.intersectRect;this.getSelecteorInfo(s.subNodeMap),this.draw(_t.selectorId,this.drawLayer||this.fullLayer,s),this.oldSelectRect=i;const o=this.getChildrenPoints();return{type:lt.Select,dataType:Tt.Local,rect:Ot(i,a),selectIds:s.selectIds,opt:this.workOptions,selectRect:i,selectorColor:this.selectorColor,strokeColor:this.strokeColor,fillColor:this.fillColor,textOpt:this.textOpt,canTextEdit:this.canTextEdit,canRotate:this.canRotate,canLock:this.canLock,scaleType:this.scaleType,willSyncService:!0,points:o,isLocked:this.isLocked,toolsTypes:this.toolsTypes,shapeOpt:this.shapeOpt}}consumeAll(t){var e,n;if(!((e=this.selectIds)!=null&&e.length)&&this.tmpPoints[0]&&this.selectSingleTool(this.tmpPoints[0].XY,_t.selectorId,!1,t==null?void 0:t.hoverId),(n=this.selectIds)!=null&&n.length&&this.sealToDrawLayer(this.selectIds),this.oldSelectRect){const a=this.getChildrenPoints();return{type:lt.Select,dataType:Tt.Local,rect:this.oldSelectRect,selectIds:this.selectIds,opt:this.workOptions,selectorColor:this.selectorColor,selectRect:this.oldSelectRect,strokeColor:this.strokeColor,fillColor:this.fillColor,textOpt:this.textOpt,canTextEdit:this.canTextEdit,canRotate:this.canRotate,canLock:this.canLock,scaleType:this.scaleType,willSyncService:!0,points:a,isLocked:this.isLocked,toolsTypes:this.toolsTypes,shapeOpt:this.shapeOpt}}return{type:lt.None}}consumeService(){}clearTmpPoints(){this.tmpPoints.length=0}clearSelectData(){this.selectIds=void 0,this.oldSelectRect=void 0}selectSingleTool(t,e=_t.selectorId,n=!1,a){if(t.length===2){const s=t[0],i=t[1];let o;for(const c of this.fullLayer.children){const m=Yn([c]);let u=!1;if((a&&a===c.name||!1)&&m.find(y=>y.isPointCollision(s,i))){o=c;break}for(const y of m)if(u=y.isPointCollision(s,i),u){if(!o)o=c;else{const O=this.vNodes.get(c.name),x=this.vNodes.get(o.name);if((O==null?void 0:O.toolsType)!==gt.Text&&(x==null?void 0:x.toolsType)===gt.Text)break;if((O==null?void 0:O.toolsType)===gt.Text&&(x==null?void 0:x.toolsType)!==gt.Text)o=c;else{const v=(O==null?void 0:O.opt.zIndex)||0,T=(x==null?void 0:x.opt.zIndex)||0;Number(v)>=Number(T)&&(o=c)}}break}}if(o){const c=o.name,m=this.vNodes.get(c);if(m){if(!vr(this.oldSelectRect,m.rect)){const u=new Map([[c,m]]);this.getSelecteorInfo(u),this.draw(e,this.drawLayer||this.fullLayer,{intersectRect:m.rect,subNodeMap:u,selectIds:this.selectIds||[]},n)}this.selectIds=[c],this.oldSelectRect=m.rect}}}}backToFullLayer(t){var s,i;let e;const n=[],a=[];for(const o of((s=this.drawLayer)==null?void 0:s.children)||[])if(!(t!=null&&t.length&&!t.includes(o.id))&&o.id!==_t.selectorId){const c=o.cloneNode(!0);He(o)&&c.seal(),this.fullLayer.getElementsByName(o.name).length||n.push(c),a.push(o);const m=(i=this.vNodes.get(o.name))==null?void 0:i.rect;m&&(e=Ot(e,m))}return a.forEach(o=>o.remove()),n.length&&this.fullLayer.append(...n),e}sealToDrawLayer(t){var a;const e=[],n=[];t.forEach(s=>{this.fullLayer.getElementsByName(s.toString()).forEach(i=>{var c;const o=i.cloneNode(!0);He(i)&&o.seal(),(c=this.drawLayer)!=null&&c.getElementsByName(i.name).length||e.push(o),n.push(i)})}),n.forEach(s=>s.remove()),e&&((a=this.drawLayer)==null||a.append(...e))}getSelectorRect(t,e){var i;let n;const a=(i=t.parent)==null?void 0:i.getElementById(e),s=a==null?void 0:a.getBoundingClientRect();return s&&(n=Ot(n,{x:Math.floor(s.x),y:Math.floor(s.y),w:Math.round(s.width),h:Math.round(s.height)})),n}isCanFillColor(t){return t===gt.Ellipse||t===gt.Triangle||t===gt.Rectangle||t===gt.Polygon||t===gt.Star||t===gt.SpeechBalloon}async updateSelector(t){const{updateSelectorOpt:e,selectIds:n,vNodes:a,willSerializeData:s,worker:i,offset:o,scene:c}=t,m=this.drawLayer;if(!m)return;let u;const p=new Map,{box:y,workState:O,angle:x,translate:v}=e;let T=[0,0],l=[1,1],h=[0,0],f,g;if(y||v||oe(x)){if(O===It.Start)return a.setTarget(),{type:lt.Select,dataType:Tt.Local,selectRect:this.oldSelectRect,rect:this.oldSelectRect};if(f=a.getLastTarget(),f&&y){let C;n==null||n.forEach(b=>{const E=f==null?void 0:f.get(b);C=Ot(C,E==null?void 0:E.rect)}),C&&(l=[y.w/C.w,y.h/C.h],T=[y.x+y.w/2-(C.x+C.w/2),y.y+y.h/2-(C.y+C.h/2)],h=[C.x+C.w/2,C.y+C.h/2]),g=C}}if(n)for(const C of n){const b=a.get(C);if(b){const{toolsType:E}=b;let L=(m==null?void 0:m.getElementsByName(C))[0];if(L){const D={...e};let I;if(E){if(f&&(I=f.get(C),I&&y)){D.boxScale=l;const B=[I.rect.x+I.rect.w/2,I.rect.y+I.rect.h/2],z=[B[0]-h[0],B[1]-h[1]];D.boxTranslate=[z[0]*(l[0]-1)+T[0]+(o&&o[0]||0),z[1]*(l[1]-1)+T[1]+(o&&o[1]||0)]}const R=Vn(E);if(R==null||R.updateNodeOpt({node:L,opt:D,vNodes:a,willSerializeData:s,targetNode:I}),b&&i&&(s&&(D.angle||D.translate)||D.box&&D.workState!==It.Start||D.pointMap&&D.pointMap.has(C)||E===gt.Text&&(D.fontSize||D.translate||D.textInfos&&D.textInfos.get(C))||E===gt.Image&&(D.angle||D.translate||D.boxScale)||E===D.toolsType&&D.willRefresh)){const B=i.createWorkShapeNode({toolsType:E,toolsOpt:b.opt});B==null||B.setWorkId(C);let z;E===gt.Image&&c?z=await B.consumeServiceAsync({isFullWork:!1,replaceId:C,scene:c}):z=B==null?void 0:B.consumeService({op:b.op,isFullWork:!1,replaceId:C,isClearAll:!1}),z&&(b.rect=z),L=(m==null?void 0:m.getElementsByName(C))[0]}b&&(p.set(C,b),u=Ot(u,b.rect))}}}}f&&O===It.Done&&a.deleteLastTarget();const M=u;if(g&&e.dir&&M){let C=[0,0];switch(e.dir){case"topLeft":case"left":{const b=[g.x+g.w,g.y+g.h];C=[b[0]-(M.x+M.w),b[1]-(M.y+M.h)];break}case"bottomLeft":case"bottom":{const b=[g.x+g.w,g.y];C=[b[0]-(M.x+M.w),b[1]-M.y];break}case"topRight":case"top":{const b=[g.x,g.y+g.h];C=[b[0]-M.x,b[1]-(M.y+M.h)];break}case"right":case"bottomRight":{const b=[g.x,g.y];C=[b[0]-M.x,b[1]-M.y];break}}if(C[0]||C[1])return M.x=M.x+C[0],M.y=M.y+C[1],await this.updateSelector({...t,offset:C})}this.getSelecteorInfo(p),this.draw(_t.selectorId,m,{selectIds:n||[],subNodeMap:p,intersectRect:M});const A=Ot(this.oldSelectRect,u);return this.oldSelectRect=u,{type:lt.Select,dataType:Tt.Local,selectRect:M,renderRect:u,rect:Ot(A,M)}}blurSelector(){const t=this.backToFullLayer();return{type:lt.Select,dataType:Tt.Local,rect:t,selectIds:[],willSyncService:!0}}getRightServiceId(t){return t.replace("++","-")}selectServiceNode(t,e,n){const{selectIds:a}=e,s=this.getRightServiceId(t),i=this.getSelectorRect(this.fullLayer,s);let o;const c=new Map;return a==null||a.forEach(m=>{const u=this.vNodes.get(m),p=this.fullLayer.getElementsByName(m)[0];u&&p&&(o=Ot(o,u.rect),c.set(m,u))}),this.getSelecteorInfo(c),this.draw(s,this.fullLayer,{intersectRect:o,selectIds:a||[],subNodeMap:c},n),Ot(o,i)}reRenderSelector(){var n;let t;const e=new Map;return(n=this.selectIds)==null||n.forEach(a=>{const s=this.vNodes.get(a);s&&(t=Ot(t,s.rect),e.set(a,s))},this),this.getSelecteorInfo(e),this.draw(_t.selectorId,this.drawLayer||this.fullLayer,{intersectRect:t,subNodeMap:e,selectIds:this.selectIds||[]}),this.oldSelectRect=t,t}updateSelectIds(t){var i,o;let e;const n=(i=this.selectIds)==null?void 0:i.filter(c=>!t.includes(c)),a=t.filter(c=>{var m;return!((m=this.selectIds)!=null&&m.includes(c))});if(n!=null&&n.length&&(e=this.backToFullLayer(n)),a.length){this.sealToDrawLayer(a);for(const c of a){const m=(o=this.vNodes.get(c))==null?void 0:o.rect;m&&(e=Ot(e,m))}}this.selectIds=t;const s=this.reRenderSelector();return{bgRect:e,selectRect:s}}cursorHover(t){var s,i;const e=this.oldSelectRect;this.selectIds=[];const n=(s=this.workId)==null?void 0:s.toString(),a=[t[0]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],t[1]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[1]];if(this.selectSingleTool(a,n,!0),this.oldSelectRect&&!vr(e,this.oldSelectRect))return{type:lt.CursorHover,dataType:Tt.Local,rect:Ot(e,this.oldSelectRect),selectorColor:this.selectorColor,willSyncService:!1};if((i=this.selectIds)!=null&&i.length||(this.oldSelectRect=void 0),e&&!this.oldSelectRect)return this.cursorBlur(),{type:lt.CursorHover,dataType:Tt.Local,rect:e,selectorColor:this.selectorColor,willSyncService:!1}}cursorBlur(){var e,n;this.selectIds=[];const t=(e=this.workId)==null?void 0:e.toString();((n=this.fullLayer)==null?void 0:n.parent).children.forEach(a=>{a.name===t&&a.remove()})}};st(_t,"selectorId",Yh),st(_t,"selectorBorderId","selector-border");let wt=_t;class Fn extends yt{constructor(t){super(t);st(this,"canRotate",!1);st(this,"scaleType",Ft.both);st(this,"toolsType",gt.Arrow);st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"oldRect");st(this,"arrowTipWidth");st(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.arrowTipWidth=this.workOptions.thickness*4,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:a}=t,s=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!s)return{type:lt.None};const{op:i,workState:o}=e,c=i==null?void 0:i.length;if(!c||c<2)return{type:lt.None};let m;if(o===It.Start?(this.tmpPoints=[new Mt(i[0],i[1])],m=!1):m=this.updateTempPoints(i),!m)return{type:lt.None};if(!a){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:lt.DrawWork,dataType:Tt.Local,workId:s,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:lt.None}}const u=n?this.fullLayer:this.drawLayer||this.fullLayer,p=this.draw({workId:s,layer:u}),y=Ot(p,this.oldRect);return this.oldRect=p,{rect:y,type:lt.DrawWork,dataType:Tt.Local,workId:s}}consumeAll(t){var c;const{data:e}=t,n=(c=e==null?void 0:e.workId)==null?void 0:c.toString();if(!n)return{type:lt.None};if(this.tmpPoints.length<2)return{type:lt.RemoveNode,removeIds:[n]};const a=this.fullLayer,s=this.draw({workId:n,layer:a});this.oldRect=s;const i=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),o=ne(i);return this.vNodes.setInfo(n,{rect:s,op:i,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:yt.getCenterPos(s,a)}),{rect:s,type:lt.FullWork,dataType:Tt.Local,workId:n,ops:o,isSync:!0,opt:this.workOptions}}draw(t){var l;const{workId:e,layer:n}=t;this.fullLayer.getElementsByName(e).map(h=>h.remove()),(l=this.drawLayer)==null||l.getElementsByName(e).map(h=>h.remove());const{strokeColor:a,thickness:s,zIndex:i,scale:o,rotate:c,translate:m}=this.workOptions,u=n.worldPosition,p=n.worldScaling,{points:y,rect:O}=this.computDrawPoints(s),v={pos:[O.x+O.w/2,O.y+O.h/2],name:e,id:e,close:!0,points:y,fillColor:a,strokeColor:a,lineWidth:0,normalize:!0,zIndex:i};o&&(v.scale=o),c&&(v.rotate=c),m&&(v.translate=m);const T=new de(v);if(n.append(T),o||c||m){const h=T.getBoundingClientRect();return{x:Math.floor(h.x-yt.SafeBorderPadding),y:Math.floor(h.y-yt.SafeBorderPadding),w:Math.floor(h.width+yt.SafeBorderPadding*2),h:Math.floor(h.height+yt.SafeBorderPadding*2)}}return{x:Math.floor(O.x*p[0]+u[0]-yt.SafeBorderPadding),y:Math.floor(O.y*p[1]+u[1]-yt.SafeBorderPadding),w:Math.floor(O.w*p[0]+2*yt.SafeBorderPadding),h:Math.floor(O.h*p[1]+2*yt.SafeBorderPadding)}}computDrawPoints(t){return this.tmpPoints[1].distance(this.tmpPoints[0])>this.arrowTipWidth?this.computFullArrowPoints(t):this.computTrianglePoints()}computFullArrowPoints(t){const e=et.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),n=et.Per(e).mul(t/2),a=Mt.Sub(this.tmpPoints[0],n),s=Mt.Add(this.tmpPoints[0],n),i=et.Mul(e,this.arrowTipWidth),o=et.Sub(this.tmpPoints[1],i),c=Mt.Sub(o,n),m=Mt.Add(o,n),u=et.Per(e).mul(t*1.5),p=Mt.Sub(o,u),y=Mt.Add(o,u),O=[a,c,p,this.tmpPoints[1],y,m,s];return{points:O.map(x=>Mt.Sub(x,this.tmpPoints[0]).XY).flat(1),rect:Bt(O),isTriangle:!1,pos:this.tmpPoints[0].XY}}computTrianglePoints(){const t=et.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),e=this.tmpPoints[1].distance(this.tmpPoints[0]),n=et.Per(t).mul(Math.floor(e*3/8)),a=Mt.Sub(this.tmpPoints[0],n),s=Mt.Add(this.tmpPoints[0],n),i=[a,this.tmpPoints[1],s];return{points:i.map(o=>Mt.Sub(o,this.tmpPoints[0]).XY).flat(1),rect:Bt(i),isTriangle:!0,pos:this.tmpPoints[0].XY}}updateTempPoints(t){const e=t.slice(-2),n=new Mt(e[0],e[1]),a=this.tmpPoints[0],{thickness:s}=this.workOptions;if(a.isNear(n,s))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var o;const{op:e,isFullWork:n}=t,a=(o=this.workId)==null?void 0:o.toString();if(!a)return;this.tmpPoints.length=0;for(let c=0;c<e.length;c+=3)this.tmpPoints.push(new Mt(e[c],e[c+1],e[c+2]));const s=n?this.fullLayer:this.drawLayer||this.fullLayer,i=this.draw({workId:a,layer:s});return this.oldRect=i,this.vNodes.setInfo(a,{rect:i,op:e,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:yt.getCenterPos(i,s)}),i}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var o;const{node:e,opt:n,vNodes:a}=t,{strokeColor:s}=n,i=a.get(e.name);return s&&(e.setAttribute("strokeColor",s),e.setAttribute("fillColor",s),(o=i==null?void 0:i.opt)!=null&&o.strokeColor&&(i.opt.strokeColor=s),i&&a.setInfo(e.name,i)),yt.updateNodeOpt(t)}}class jn extends yt{constructor(t){super(t);st(this,"canRotate",!1);st(this,"scaleType",Ft.all);st(this,"toolsType",gt.Ellipse);st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"oldRect");st(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:a}=t,s=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!s)return{type:lt.None};const{op:i,workState:o}=e,c=i==null?void 0:i.length;if(!c||c<2)return{type:lt.None};let m;if(o===It.Start?(this.tmpPoints=[new Mt(i[0],i[1])],m=!1):m=this.updateTempPoints(i),!m)return{type:lt.None};if(!a){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:lt.DrawWork,dataType:Tt.Local,workId:s,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:lt.None}}const u=n?this.fullLayer:this.drawLayer||this.fullLayer,p=this.draw({workId:s,layer:u,isDrawing:!0}),y=Ot(p,this.oldRect);return this.oldRect=p,{rect:y,type:lt.DrawWork,dataType:Tt.Local,workId:s}}consumeAll(t){var c;const{data:e}=t,n=(c=e==null?void 0:e.workId)==null?void 0:c.toString();if(!n)return{type:lt.None};if(this.tmpPoints.length<2)return{type:lt.RemoveNode,removeIds:[n]};const a=this.fullLayer,s=this.draw({workId:n,layer:a,isDrawing:!1});this.oldRect=s;const i=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),o=ne(i);return this.vNodes.setInfo(n,{rect:s,op:i,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:s&&yt.getCenterPos(s,a)}),{rect:s,type:lt.FullWork,dataType:Tt.Local,workId:n,ops:o,isSync:!0,opt:this.workOptions}}draw(t){var g;const{workId:e,layer:n,isDrawing:a}=t;this.fullLayer.getElementsByName(e).map(M=>M.remove()),(g=this.drawLayer)==null||g.getElementsByName(e).map(M=>M.remove());const{strokeColor:s,fillColor:i,thickness:o,zIndex:c,scale:m,rotate:u,translate:p}=this.workOptions,y=n.worldPosition,O=n.worldScaling,{radius:x,rect:v,pos:T}=this.computDrawPoints(o),l={pos:T,name:e,id:e,radius:x,lineWidth:o,fillColor:i!=="transparent"&&i||void 0,strokeColor:s,normalize:!0,zIndex:c},h={x:Math.floor(v.x*O[0]+y[0]-yt.SafeBorderPadding),y:Math.floor(v.y*O[1]+y[1]-yt.SafeBorderPadding),w:Math.floor(v.w*O[0]+2*yt.SafeBorderPadding),h:Math.floor(v.h*O[1]+2*yt.SafeBorderPadding)};if(a){const{name:M,id:A,zIndex:C,strokeColor:b}=l,E=yt.getCenterPos(h,n),L=new re({name:M,id:A,zIndex:C,pos:E,anchor:[.5,.5],size:[h.w,h.h]}),D=new xn({...l,pos:[0,0]}),I=new he({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:b,lineWidth:1,scale:[1/O[0],1/O[1]]});return L.append(D,I),n.append(L),h}m&&(l.scale=m),u&&(l.rotate=u),p&&(l.translate=p);const f=new xn(l);if(n.append(f),u||m||p){const M=f.getBoundingClientRect();return{x:Math.floor(M.x-yt.SafeBorderPadding),y:Math.floor(M.y-yt.SafeBorderPadding),w:Math.floor(M.width+yt.SafeBorderPadding*2),h:Math.floor(M.height+yt.SafeBorderPadding*2)}}return h}computDrawPoints(t){const e=Bt(this.tmpPoints),n=Bt(this.tmpPoints,t),a=[Math.floor(e.x+e.w/2),Math.floor(e.y+e.h/2)];return{rect:n,pos:a,radius:[Math.floor(e.w/2),Math.floor(e.h/2)]}}updateTempPoints(t){const e=t.slice(-2),n=new Mt(e[0],e[1]),a=this.tmpPoints[0],{thickness:s}=this.workOptions;if(a.isNear(n,s))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var o;const{op:e,isFullWork:n}=t,a=(o=this.workId)==null?void 0:o.toString();if(!a)return;this.tmpPoints.length=0;for(let c=0;c<e.length;c+=3)this.tmpPoints.push(new Mt(e[c],e[c+1],e[c+2]));const s=n?this.fullLayer:this.drawLayer||this.fullLayer,i=this.draw({workId:a,layer:s,isDrawing:!1});return this.oldRect=i,this.vNodes.setInfo(a,{rect:i,op:e,opt:this.workOptions,toolsType:this.toolsType,canRotate:this.canRotate,scaleType:this.scaleType,centerPos:yt.getCenterPos(i,s)}),i}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var m,u;const{node:e,opt:n,vNodes:a}=t,{strokeColor:s,fillColor:i}=n,o=a.get(e.name);let c=e;return e.tagName==="GROUP"&&(c=e.children[0]),s&&(c.setAttribute("strokeColor",s),(m=o==null?void 0:o.opt)!=null&&m.strokeColor&&(o.opt.strokeColor=s)),i&&(i==="transparent"?c.setAttribute("fillColor","rgba(0,0,0,0)"):c.setAttribute("fillColor",i),(u=o==null?void 0:o.opt)!=null&&u.fillColor&&(o.opt.fillColor=i)),o&&a.setInfo(e.name,o),yt.updateNodeOpt(t)}}var t0=ce,e0=ie,r0="[object Boolean]";function n0(d){return d===!0||d===!1||e0(d)&&t0(d)==r0}var i0=n0,ge=Xt(i0);class Un extends yt{constructor(t){super(t);st(this,"canRotate",!0);st(this,"scaleType",Ft.all);st(this,"toolsType",gt.Rectangle);st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"oldRect");st(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}transformData(){const t=Bt(this.tmpPoints);return[[t.x,t.y,0],[t.x+t.w,t.y,0],[t.x+t.w,t.y+t.h,0],[t.x,t.y+t.h,0]]}computDrawPoints(t){const{thickness:e}=this.workOptions,n=[];for(const i of t)n.push(new et(...i));const a=Bt(n,e),s=[a.x+a.w/2,a.y+a.h/2];return{rect:a,pos:s,points:n.map(i=>i.XY).flat(1)}}consume(t){var x;const{data:e,isFullWork:n,isSubWorker:a}=t,s=(x=e==null?void 0:e.workId)==null?void 0:x.toString();if(!s)return{type:lt.None};const{op:i,workState:o}=e,c=i==null?void 0:i.length;if(!c||c<2)return{type:lt.None};let m;if(o===It.Start?(this.tmpPoints=[new Mt(i[0],i[1])],m=!1):m=this.updateTempPoints(i),!m)return{type:lt.None};const u=this.transformData();if(!a){const v=Date.now();return v-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=v,{type:lt.DrawWork,dataType:Tt.Local,workId:s,op:u.flat(1),isSync:!0,index:0}):{type:lt.None}}const p=n?this.fullLayer:this.drawLayer||this.fullLayer,y=this.draw({ps:u,workId:s,layer:p,isDrawing:!0}),O=Ot(y,this.oldRect);return this.oldRect=y,{rect:O,type:lt.DrawWork,dataType:Tt.Local,workId:s}}consumeAll(t){var m;const{data:e}=t,n=(m=e==null?void 0:e.workId)==null?void 0:m.toString();if(!n)return{type:lt.None};if(this.tmpPoints.length<2)return{type:lt.RemoveNode,removeIds:[n]};const a=this.transformData(),s=this.fullLayer,i=this.draw({ps:a,workId:n,layer:s,isDrawing:!1});this.oldRect=i;const o=a.flat(1),c=ne(o);return this.vNodes.setInfo(n,{rect:i,op:o,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:i&&yt.getCenterPos(i,s)}),{rect:i,type:lt.FullWork,dataType:Tt.Local,workId:n,ops:c,opt:this.workOptions,isSync:!0}}draw(t){var b;const{workId:e,layer:n,isDrawing:a,ps:s,replaceId:i}=t;this.fullLayer.getElementsByName(i||e).map(E=>E.remove()),(b=this.drawLayer)==null||b.getElementsByName(i||e).map(E=>E.remove());const{strokeColor:o,fillColor:c,thickness:m,zIndex:u,scale:p,rotate:y,translate:O,textOpt:x}=this.workOptions,v=n.worldPosition,T=n.worldScaling,{points:l,rect:h,pos:f}=this.computDrawPoints(s),g={close:!0,normalize:!0,points:l,lineWidth:m,fillColor:c!=="transparent"&&c||void 0,strokeColor:o,lineJoin:"round"},M={x:Math.floor(h.x*T[0]+v[0]-yt.SafeBorderPadding),y:Math.floor(h.y*T[1]+v[1]-yt.SafeBorderPadding),w:Math.floor(h.w*T[0]+2*yt.SafeBorderPadding),h:Math.floor(h.h*T[0]+2*yt.SafeBorderPadding)},A=new re({name:e,id:e,zIndex:u,pos:f,anchor:[.5,.5],size:[h.w,h.h],scale:p,rotate:y,translate:O}),C=new de({...g,pos:[0,0]});if(A.appendChild(C),a){const E=new he({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:o,lineWidth:1,scale:[1/T[0],1/T[1]]});A.appendChild(E)}if(n.append(A),p||y||O){const E=A.getBoundingClientRect();return{x:Math.floor(E.x-yt.SafeBorderPadding),y:Math.floor(E.y-yt.SafeBorderPadding),w:Math.floor(E.width+2*yt.SafeBorderPadding),h:Math.floor(E.height+2*yt.SafeBorderPadding)}}return M}updateTempPoints(t){const e=t.slice(-2),n=new Mt(e[0],e[1]),a=this.tmpPoints[0],{thickness:s}=this.workOptions;if(a.isNear(n,s))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var m;const{op:e,isFullWork:n,replaceId:a}=t,s=(m=this.workId)==null?void 0:m.toString();if(!s)return;const i=[];for(let u=0;u<e.length;u+=3)i.push([e[u],e[u+1],e[u+2]]);const o=n?this.fullLayer:this.drawLayer||this.fullLayer,c=this.draw({ps:i,workId:s,layer:o,isDrawing:!1,replaceId:a});return this.oldRect=c,this.vNodes.setInfo(s,{rect:c,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:c&&yt.getCenterPos(c,o)}),c}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var T,l;const{node:e,opt:n,vNodes:a}=t,{strokeColor:s,fillColor:i,fontColor:o,fontBgColor:c,bold:m,italic:u,lineThrough:p,underline:y,fontSize:O}=n,x=a.get(e.name);let v=e;if(e.tagName==="GROUP"&&(v=e.children[0]),s&&(v.setAttribute("strokeColor",s),(T=x==null?void 0:x.opt)!=null&&T.strokeColor&&(x.opt.strokeColor=s)),i&&(i==="transparent"?v.setAttribute("fillColor","rgba(0,0,0,0)"):v.setAttribute("fillColor",i),(l=x==null?void 0:x.opt)!=null&&l.fillColor&&(x.opt.fillColor=i)),x!=null&&x.opt.textOpt){const h=x.opt.textOpt;o&&h.fontColor&&(h.fontColor=o),c&&h.fontBgColor&&(h.fontBgColor=c),m&&(h.bold=m),u&&(h.italic=u),ge(p)&&(h.lineThrough=p),ge(y)&&(h.underline=y),O&&(h.fontSize=O)}return x&&a.setInfo(e.name,x),yt.updateNodeOpt(t)}}class $n extends yt{constructor(t){super(t);st(this,"canRotate",!1);st(this,"scaleType",Ft.all);st(this,"toolsType",gt.Star);st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"oldRect");st(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:a}=t,s=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!s)return{type:lt.None};const{op:i,workState:o}=e,c=i==null?void 0:i.length;if(!c||c<2)return{type:lt.None};let m;if(o===It.Start?(this.tmpPoints=[new Mt(i[0],i[1])],m=!1):m=this.updateTempPoints(i),!m)return{type:lt.None};if(!a){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:lt.DrawWork,dataType:Tt.Local,workId:s,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:lt.None}}const u=n?this.fullLayer:this.drawLayer||this.fullLayer,p=this.draw({workId:s,layer:u,isDrawing:!0}),y=Ot(p,this.oldRect);return this.oldRect=p,{rect:y,type:lt.DrawWork,dataType:Tt.Local,workId:s}}consumeAll(t){var c;const{data:e}=t,n=(c=e==null?void 0:e.workId)==null?void 0:c.toString();if(!n)return{type:lt.None};if(this.tmpPoints.length<2)return{type:lt.RemoveNode,removeIds:[n]};const a=this.fullLayer,s=this.draw({workId:n,layer:a,isDrawing:!1});this.oldRect=s;const i=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),o=ne(i);return this.vNodes.setInfo(n,{rect:s,op:i,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:s&&yt.getCenterPos(s,a)}),{rect:s,type:lt.FullWork,dataType:Tt.Local,workId:n,ops:o,isSync:!0,opt:this.workOptions}}draw(t){var b;const{workId:e,layer:n,isDrawing:a}=t;this.fullLayer.getElementsByName(e).map(E=>E.remove()),(b=this.drawLayer)==null||b.getElementsByName(e).map(E=>E.remove());const{strokeColor:s,fillColor:i,thickness:o,zIndex:c,vertices:m,innerVerticeStep:u,innerRatio:p,scale:y,rotate:O,translate:x}=this.workOptions,v=n.worldScaling,{rect:T,pos:l,points:h}=this.computDrawPoints(o,m,u,p),f={close:!0,points:h,lineWidth:o,fillColor:i!=="transparent"&&i||void 0,strokeColor:s,normalize:!0,lineJoin:"round"},g={name:e,id:e,zIndex:c,pos:l,anchor:[.5,.5],size:[T.w,T.h],className:`${l[0]},${l[1]}`};y&&(g.scale=y),O&&(g.rotate=O),x&&(g.translate=x);const M=new re(g);if(a){const E=new he({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:s,lineWidth:1,scale:[1/v[0],1/v[1]]});M.append(E)}const A=new de({...f,pos:[0,0]});M.append(A),n.append(M);const C=M.getBoundingClientRect();return{x:Math.floor(C.x-yt.SafeBorderPadding),y:Math.floor(C.y-yt.SafeBorderPadding),w:Math.floor(C.width+yt.SafeBorderPadding*2),h:Math.floor(C.height+yt.SafeBorderPadding*2)}}computDrawPoints(t,e,n,a){const s=Bt(this.tmpPoints),i=[Math.floor(s.x+s.w/2),Math.floor(s.y+s.h/2)],o=Sn(s.w,s.h),c=Math.floor(Math.min(s.w,s.h)/2),m=a*c,u=[],p=2*Math.PI/e;for(let O=0;O<e;O++){const x=O*p-.5*Math.PI;let v,T;O%n===1?(v=m*o[0]*Math.cos(x),T=m*o[1]*Math.sin(x)):(v=c*o[0]*Math.cos(x),T=c*o[1]*Math.sin(x),u.push(v,T)),u.push(v,T)}return{rect:Bt(this.tmpPoints,t),pos:i,points:u}}updateTempPoints(t){const e=t.slice(-2),n=new Mt(e[0],e[1]),a=this.tmpPoints[0],{thickness:s}=this.workOptions;if(a.isNear(n,s)||Mt.Sub(a,n).XY.includes(0))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var o;const{op:e,isFullWork:n}=t,a=(o=this.workId)==null?void 0:o.toString();if(!a)return;this.tmpPoints.length=0;for(let c=0;c<e.length;c+=3)this.tmpPoints.push(new Mt(e[c],e[c+1],e[c+2]));const s=n?this.fullLayer:this.drawLayer||this.fullLayer,i=this.draw({workId:a,layer:s,isDrawing:!1});return this.oldRect=i,this.vNodes.setInfo(a,{rect:i,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:i&&yt.getCenterPos(i,s)}),i}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){const{node:e,opt:n,vNodes:a}=t,{strokeColor:s,fillColor:i,toolsType:o,vertices:c,innerVerticeStep:m,innerRatio:u}=n,p=a.get(e.name),y=p==null?void 0:p.opt;let O=e;return e.tagName==="GROUP"&&(O=e.children[0]),s&&(O.setAttribute("strokeColor",s),y!=null&&y.strokeColor&&(y.strokeColor=s)),i&&(i==="transparent"?O.setAttribute("fillColor","rgba(0,0,0,0)"):O.setAttribute("fillColor",i),y!=null&&y.fillColor&&(y.fillColor=i)),o===gt.Star&&(c&&(y.vertices=c),m&&(y.innerVerticeStep=m),u&&(y.innerRatio=u)),p&&a.setInfo(e.name,{...p,opt:y}),yt.updateNodeOpt(t)}}class zn extends yt{constructor(t){super(t);st(this,"canRotate",!1);st(this,"scaleType",Ft.all);st(this,"toolsType",gt.Polygon);st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"oldRect");st(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:a}=t,s=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!s)return{type:lt.None};const{op:i,workState:o}=e,c=i==null?void 0:i.length;if(!c||c<2)return{type:lt.None};let m;if(o===It.Start?(this.tmpPoints=[new Mt(i[0],i[1])],m=!1):m=this.updateTempPoints(i),!m)return{type:lt.None};if(!a){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:lt.DrawWork,dataType:Tt.Local,workId:s,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:lt.None}}const u=n?this.fullLayer:this.drawLayer||this.fullLayer,p=this.draw({workId:s,layer:u,isDrawing:!0}),y=Ot(p,this.oldRect);return this.oldRect=p,{rect:y,type:lt.DrawWork,dataType:Tt.Local,workId:s}}consumeAll(t){var c;const{data:e}=t,n=(c=e==null?void 0:e.workId)==null?void 0:c.toString();if(!n)return{type:lt.None};if(this.tmpPoints.length<2)return{type:lt.RemoveNode,removeIds:[n]};const a=this.fullLayer,s=this.draw({workId:n,layer:a,isDrawing:!1});this.oldRect=s;const i=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),o=ne(i);return this.vNodes.setInfo(n,{rect:s,op:i,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:s&&yt.getCenterPos(s,a)}),{rect:s,type:lt.FullWork,dataType:Tt.Local,workId:n,ops:o,isSync:!0,opt:this.workOptions}}draw(t){var A;const{workId:e,layer:n,isDrawing:a}=t;this.fullLayer.getElementsByName(e).map(C=>C.remove()),(A=this.drawLayer)==null||A.getElementsByName(e).map(C=>C.remove());const{strokeColor:s,fillColor:i,thickness:o,zIndex:c,vertices:m,scale:u,rotate:p,translate:y}=this.workOptions,O=n.worldScaling,{rect:x,pos:v,points:T}=this.computDrawPoints(o,m),l={close:!0,points:T,lineWidth:o,fillColor:i!=="transparent"&&i||void 0,strokeColor:s,normalize:!0,lineJoin:"round"},h={name:e,id:e,zIndex:c,pos:v,anchor:[.5,.5],size:[x.w,x.h]};u&&(h.scale=u),p&&(h.rotate=p),y&&(h.translate=y);const f=new re(h);if(a){const C=new he({d:"M-4,0H4M0,-4V4",normalize:!0,pos:[0,0],strokeColor:s,lineWidth:1,scale:[1/O[0],1/O[1]]});f.append(C)}const g=new de({...l,pos:[0,0]});f.append(g),n.append(f);const M=f.getBoundingClientRect();return{x:Math.floor(M.x-yt.SafeBorderPadding),y:Math.floor(M.y-yt.SafeBorderPadding),w:Math.floor(M.width+yt.SafeBorderPadding*2),h:Math.floor(M.height+yt.SafeBorderPadding*2)}}computDrawPoints(t,e){const n=Bt(this.tmpPoints),a=[Math.floor(n.x+n.w/2),Math.floor(n.y+n.h/2)],s=Sn(n.w,n.h),i=Math.floor(Math.min(n.w,n.h)/2),o=[],c=2*Math.PI/e;for(let u=0;u<e;u++){const p=u*c-.5*Math.PI,y=i*s[0]*Math.cos(p),O=i*s[1]*Math.sin(p);o.push(y,O)}return{rect:Bt(this.tmpPoints,t),pos:a,points:o}}updateTempPoints(t){const e=t.slice(-2),n=new Mt(e[0],e[1]),a=this.tmpPoints[0],{thickness:s}=this.workOptions;if(a.isNear(n,s)||Mt.Sub(a,n).XY.includes(0))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var o;const{op:e,isFullWork:n}=t,a=(o=this.workId)==null?void 0:o.toString();if(!a)return;this.tmpPoints.length=0;for(let c=0;c<e.length;c+=3)this.tmpPoints.push(new Mt(e[c],e[c+1],e[c+2]));const s=n?this.fullLayer:this.drawLayer||this.fullLayer,i=this.draw({workId:a,layer:s,isDrawing:!1});return this.oldRect=i,this.vNodes.setInfo(a,{rect:i,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:i&&yt.getCenterPos(i,s)}),i}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){const{node:e,opt:n,vNodes:a}=t,{strokeColor:s,fillColor:i,toolsType:o,vertices:c}=n,m=a.get(e.name),u=m==null?void 0:m.opt;let p=e;return e.tagName==="GROUP"&&(p=e.children[0]),s&&(p.setAttribute("strokeColor",s),u!=null&&u.strokeColor&&(u.strokeColor=s)),i&&(i==="transparent"?p.setAttribute("fillColor","rgba(0,0,0,0)"):p.setAttribute("fillColor",i),u!=null&&u.fillColor&&(u.fillColor=i)),o===gt.Polygon&&c&&(u.vertices=c),m&&a.setInfo(e.name,{...m,opt:u}),yt.updateNodeOpt(t)}}class kt{static bezier(r,t){const e=[];for(let n=0;n<t.length;n+=4){const a=t[n],s=t[n+1],i=t[n+2],o=t[n+3];a&&s&&i&&o?e.push(...kt.getBezierPoints(r,a,s,i,o)):a&&s&&i?e.push(...kt.getBezierPoints(r,a,s,i)):a&&s?e.push(...kt.getBezierPoints(r,a,s)):a&&e.push(a)}return e}static getBezierPoints(r=10,t,e,n,a){let s=null;const i=[];!n&&!a?s=kt.oneBezier:n&&!a?s=kt.twoBezier:n&&a&&(s=kt.threeBezier);for(let o=0;o<r;o++)s&&i.push(s(o/r,t,e,n,a));return a?i.push(a):n&&i.push(n),i}static oneBezier(r,t,e){const n=t.x+(e.x-t.x)*r,a=t.y+(e.y-t.y)*r;return new et(n,a)}static twoBezier(r,t,e,n){const a=(1-r)*(1-r)*t.x+2*r*(1-r)*e.x+r*r*n.x,s=(1-r)*(1-r)*t.y+2*r*(1-r)*e.y+r*r*n.y;return new et(a,s)}static threeBezier(r,t,e,n,a){const s=t.x*(1-r)*(1-r)*(1-r)+3*e.x*r*(1-r)*(1-r)+3*n.x*r*r*(1-r)+a.x*r*r*r,i=t.y*(1-r)*(1-r)*(1-r)+3*e.y*r*(1-r)*(1-r)+3*n.y*r*r*(1-r)+a.y*r*r*r;return new et(s,i)}}class Gn extends yt{constructor(t){super(t);st(this,"canRotate",!1);st(this,"scaleType",Ft.all);st(this,"toolsType",gt.SpeechBalloon);st(this,"ratio",.8);st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"oldRect");st(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:a}=t,s=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!s)return{type:lt.None};const{op:i,workState:o}=e,c=i==null?void 0:i.length;if(!c||c<2)return{type:lt.None};let m;if(o===It.Start?(this.tmpPoints=[new Mt(i[0],i[1])],m=!1):m=this.updateTempPoints(i),!m)return{type:lt.None};if(!a){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:lt.DrawWork,dataType:Tt.Local,workId:s,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:lt.None}}const u=n?this.fullLayer:this.drawLayer||this.fullLayer,p=this.draw({workId:s,layer:u,isDrawing:!0}),y=Ot(p,this.oldRect);return this.oldRect=p,{rect:y,type:lt.DrawWork,dataType:Tt.Local,workId:s}}consumeAll(t){var c;const{data:e}=t,n=(c=e==null?void 0:e.workId)==null?void 0:c.toString();if(!n)return{type:lt.None};if(this.tmpPoints.length<2)return{type:lt.RemoveNode,removeIds:[n]};const a=this.fullLayer,s=this.draw({workId:n,layer:a,isDrawing:!1});this.oldRect=s;const i=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),o=ne(i);return this.vNodes.setInfo(n,{rect:s,op:i,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:s&&yt.getCenterPos(s,a)}),{rect:s,type:lt.FullWork,dataType:Tt.Local,workId:n,ops:o,isSync:!0,opt:this.workOptions}}draw(t){var g;const{workId:e,layer:n}=t;this.fullLayer.getElementsByName(e).map(M=>M.remove()),(g=this.drawLayer)==null||g.getElementsByName(e).map(M=>M.remove());const{strokeColor:a,fillColor:s,thickness:i,zIndex:o,placement:c,scale:m,rotate:u,translate:p}=this.workOptions,{rect:y,pos:O,points:x}=this.computDrawPoints(i,c),v={points:x.map(M=>M.XY),lineWidth:i,fillColor:s!=="transparent"&&s||void 0,strokeColor:a,normalize:!0,className:`${O[0]},${O[1]}`,lineJoin:"round",close:!0},T={name:e,id:e,zIndex:o,pos:O,anchor:[.5,.5],size:[y.w,y.h]};m&&(T.scale=m),u&&(T.rotate=u),p&&(T.translate=p);const l=new re(T),h=new de({...v,pos:[0,0]});l.append(h),n.append(l);const f=l.getBoundingClientRect();return{x:Math.floor(f.x-yt.SafeBorderPadding),y:Math.floor(f.y-yt.SafeBorderPadding),w:Math.floor(f.width+yt.SafeBorderPadding*2),h:Math.floor(f.height+yt.SafeBorderPadding*2)}}transformControlPoints(t){const e=Bt(this.tmpPoints);switch(t){case"bottom":case"bottomLeft":case"bottomRight":{const n=e.y+e.h*this.ratio;return[new et(e.x,e.y,0),new et(e.x+e.w,e.y,0),new et(e.x+e.w,n,0),new et(e.x,n,0)]}case"top":case"topLeft":case"topRight":{const n=e.y+e.h*(1-this.ratio);return[new et(e.x,n,0),new et(e.x+e.w,n,0),new et(e.x+e.w,e.y+e.h,0),new et(e.x,e.y+e.h,0)]}case"left":case"leftBottom":case"leftTop":{const n=e.x+e.w*(1-this.ratio);return[new et(n,e.y,0),new et(e.x+e.w,e.y,0),new et(e.x+e.w,e.y+e.h,0),new et(n,e.y+e.h,0)]}case"right":case"rightBottom":case"rightTop":{const n=e.x+e.w*this.ratio;return[new et(e.x,e.y,0),new et(n,e.y,0),new et(n,e.y+e.h,0),new et(e.x,e.y+e.h,0)]}}}computDrawPoints(t,e){const n=Bt(this.tmpPoints),a=this.transformControlPoints(e),s=Math.floor(n.w*.1),i=Math.floor(n.h*.1),o=[],c=et.Add(a[0],new et(0,i,0)),m=et.Add(a[0],new et(s,0,0)),u=kt.getBezierPoints(10,c,a[0],m),p=et.Sub(a[1],new et(s,0,0)),y=et.Add(a[1],new et(0,i,0)),O=kt.getBezierPoints(10,p,a[1],y),x=et.Sub(a[2],new et(0,i,0)),v=et.Sub(a[2],new et(s,0,0)),T=kt.getBezierPoints(10,x,a[2],v),l=et.Add(a[3],new et(s,0,0)),h=et.Sub(a[3],new et(0,i,0)),f=kt.getBezierPoints(10,l,a[3],h),g=s*(1-this.ratio)*10,M=i*(1-this.ratio)*10;switch(e){case"bottom":{const b=et.Sub(a[2],new et(s*5-g/2,0,0)),E=et.Sub(a[2],new et(s*5,-M,0)),L=et.Sub(a[2],new et(s*5+g/2,0,0));o.push(E,L,...f,...u,...O,...T,b);break}case"bottomRight":{const b=et.Sub(a[2],new et(s*1.1,0,0)),E=et.Sub(a[2],new et(s*1.1+g/2,-M,0)),L=et.Sub(a[2],new et(s*1.1+g,0,0));o.push(E,L,...f,...u,...O,...T,b);break}case"bottomLeft":{const b=et.Add(a[3],new et(s*1.1+g,0,0)),E=et.Add(a[3],new et(s*1.1+g/2,M,0)),L=et.Add(a[3],new et(s*1.1,0,0));o.push(E,L,...f,...u,...O,...T,b);break}case"top":{const b=et.Sub(a[1],new et(s*5-g/2,0,0)),E=et.Sub(a[1],new et(s*5,M,0)),L=et.Sub(a[1],new et(s*5+g/2,0,0));o.push(E,b,...O,...T,...f,...u,L);break}case"topRight":{const b=et.Sub(a[1],new et(s*1.1,0,0)),E=et.Sub(a[1],new et(s*1.1+g/2,M,0)),L=et.Sub(a[1],new et(s*1.1+g,0,0));o.push(E,b,...O,...T,...f,...u,L);break}case"topLeft":{const b=et.Add(a[0],new et(s*1.1+g,0,0)),E=et.Add(a[0],new et(s*1.1+g/2,-M,0)),L=et.Add(a[0],new et(s*1.1,0,0));o.push(E,b,...O,...T,...f,...u,L);break}case"left":{const b=et.Add(a[0],new et(0,i*5-M/2,0)),E=et.Add(a[0],new et(-g,i*5,0)),L=et.Add(a[0],new et(0,i*5+M/2,0));o.push(E,b,...u,...O,...T,...f,L);break}case"leftTop":{const b=et.Add(a[0],new et(0,i*1.1,0)),E=et.Add(a[0],new et(-g,i*1.1+M/2,0)),L=et.Add(a[0],new et(0,i*1.1+M,0));o.push(E,b,...u,...O,...T,...f,L);break}case"leftBottom":{const b=et.Sub(a[3],new et(0,i*1.1+M,0)),E=et.Sub(a[3],new et(g,i*1.1+M/2,0)),L=et.Sub(a[3],new et(0,i*1.1,0));o.push(E,b,...u,...O,...T,...f,L);break}case"right":{const b=et.Add(a[1],new et(0,i*5-M/2,0)),E=et.Add(a[1],new et(g,i*5,0)),L=et.Add(a[1],new et(0,i*5+M/2,0));o.push(E,L,...T,...f,...u,...O,b);break}case"rightTop":{const b=et.Add(a[1],new et(0,i*1.1,0)),E=et.Add(a[1],new et(g,i*1.1+M/2,0)),L=et.Add(a[1],new et(0,i*1.1+M,0));o.push(E,L,...T,...f,...u,...O,b);break}case"rightBottom":{const b=et.Sub(a[2],new et(0,i*1.1+M,0)),E=et.Sub(a[2],new et(-g,i*1.1+M/2,0)),L=et.Sub(a[2],new et(0,i*1.1,0));o.push(E,L,...T,...f,...u,...O,b);break}}const A=Bt(this.tmpPoints,t),C=[Math.floor(A.x+A.w/2),Math.floor(A.y+A.h/2)];return{rect:A,pos:C,points:o}}updateTempPoints(t){const e=t.slice(-2),n=new Mt(e[0],e[1]),a=this.tmpPoints[0],{thickness:s}=this.workOptions;if(a.isNear(n,s)||Mt.Sub(a,n).XY.includes(0))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var o;const{op:e,isFullWork:n}=t,a=(o=this.workId)==null?void 0:o.toString();if(!a)return;this.tmpPoints.length=0;for(let c=0;c<e.length;c+=3)this.tmpPoints.push(new Mt(e[c],e[c+1],e[c+2]));const s=n?this.fullLayer:this.drawLayer||this.fullLayer,i=this.draw({workId:a,layer:s,isDrawing:!1});return this.oldRect=i,this.vNodes.setInfo(a,{rect:i,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:i&&yt.getCenterPos(i,s)}),i}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){const{node:e,opt:n,vNodes:a}=t,{strokeColor:s,fillColor:i,toolsType:o,placement:c}=n,m=a.get(e.name),u=m==null?void 0:m.opt;let p=e;return e.tagName==="GROUP"&&(p=e.children[0]),s&&(p.setAttribute("strokeColor",s),u!=null&&u.strokeColor&&(u.strokeColor=s)),i&&(i==="transparent"?p.setAttribute("fillColor","rgba(0,0,0,0)"):p.setAttribute("fillColor",i),u!=null&&u.fillColor&&(u.fillColor=i)),o===gt.SpeechBalloon&&c&&(u.placement=c),m&&a.setInfo(e.name,{...m,opt:u}),yt.updateNodeOpt(t)}}class Hn extends yt{constructor(t){super(t);st(this,"canRotate",!0);st(this,"scaleType",Ft.all);st(this,"toolsType",gt.Image);st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"oldRect");this.workOptions=t.toolsOpt,this.scaleType=this.workOptions.uniformScale?Ft.proportional:Ft.all}consume(){return{type:lt.None}}consumeAll(){return{type:lt.None}}draw(t){var h;const{layer:e,workId:n,replaceId:a,imageBitmap:s}=t,{centerX:i,centerY:o,width:c,height:m,scale:u,rotate:p,translate:y,zIndex:O}=this.workOptions;this.fullLayer.getElementsByName(a||n).map(f=>f.remove()),(h=this.drawLayer)==null||h.getElementsByName(a||n).map(f=>f.remove());const x={anchor:[.5,.5],pos:[i,o],name:n,size:[c,m],zIndex:O};if(u)if(this.scaleType===Ft.proportional){const f=Math.min(u[0],u[1]);x.scale=[f,f]}else x.scale=u;y&&(x.translate=y),p&&(x.rotate=p);const v=new re(x),T=new zh({anchor:[.5,.5],pos:[0,0],size:[c,m],texture:s,rotate:180});v.append(T),e.append(v);const l=v.getBoundingClientRect();if(l)return{x:Math.floor(l.x-yt.SafeBorderPadding),y:Math.floor(l.y-yt.SafeBorderPadding),w:Math.floor(l.width+yt.SafeBorderPadding*2),h:Math.floor(l.height+yt.SafeBorderPadding*2)}}consumeService(){}async consumeServiceAsync(t){var m,u;const{isFullWork:e,replaceId:n,scene:a}=t,{src:s,uuid:i}=this.workOptions,o=((m=this.workId)==null?void 0:m.toString())||i,c=e?this.fullLayer:this.drawLayer||this.fullLayer;if(s){const p=await a.preload({id:i,src:this.workOptions.src}),y=this.draw({workId:o,layer:c,replaceId:n,imageBitmap:p[0]});return this.oldRect=o&&((u=this.vNodes.get(o))==null?void 0:u.rect)||void 0,this.vNodes.setInfo(o,{rect:y,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:y&&yt.getCenterPos(y,c)}),y}}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){const{node:e,opt:n,vNodes:a,targetNode:s}=t,{translate:i,box:o,boxScale:c,boxTranslate:m,angle:u,isLocked:p,zIndex:y}=n,O=s&&Zt(s)||a.get(e.name);if(!O)return;const x=e.parent;if(x){if(oe(y)&&(e.setAttribute("zIndex",y),O.opt.zIndex=y),ge(p)&&(O.opt.locked=p),o&&m&&c){const{centerX:v,centerY:T,width:l,height:h,uniformScale:f}=O.opt;if(f){const A=Math.min(c[0],c[1]);O.opt.scale=[A,A]}else O.opt.scale=c;O.opt.width=Math.floor(l*c[0]),O.opt.height=Math.floor(h*c[1]);const g=[m[0]/x.worldScaling[0],m[1]/x.worldScaling[1]];O.opt.centerX=v+g[0],O.opt.centerY=T+g[1];const M=[O.centerPos[0]+g[0],O.centerPos[1]+g[1]];if(O.centerPos=M,s){let A=yn(O.rect,c);A=Ce(A,g),O.rect=A}}else if(i){const v=[i[0]/x.worldScaling[0],i[1]/x.worldScaling[1]];if(O.opt.centerX=O.opt.centerX+v[0],O.opt.centerY=O.opt.centerY+v[1],O.centerPos=[O.centerPos[0]+v[0],O.centerPos[1]+v[1]],s){const T=Ce(O.rect,v);O.rect=T}}else if(oe(u)&&(e.setAttribute("rotate",u),O.opt.rotate=u,s)){const v=vn(O.rect,u);O.rect=v}return O&&a.setInfo(e.name,O),O==null?void 0:O.rect}}}class Kn extends yt{constructor(t){super(t);st(this,"canRotate",!1);st(this,"scaleType",Ft.both);st(this,"toolsType",gt.Straight);st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"oldRect");st(this,"straightTipWidth");st(this,"syncTimestamp");this.workOptions=t.toolsOpt,this.straightTipWidth=this.workOptions.thickness/2,this.syncTimestamp=0,this.syncUnitTime=50}consume(t){var O;const{data:e,isFullWork:n,isSubWorker:a}=t,s=(O=e==null?void 0:e.workId)==null?void 0:O.toString();if(!s)return{type:lt.None};const{op:i,workState:o}=e,c=i==null?void 0:i.length;if(!c||c<2)return{type:lt.None};let m;if(o===It.Start?(this.tmpPoints=[new Mt(i[0],i[1])],m=!1):m=this.updateTempPoints(i),!m)return{type:lt.None};if(!a){const x=Date.now();return x-this.syncTimestamp>this.syncUnitTime?(this.syncTimestamp=x,{type:lt.DrawWork,dataType:Tt.Local,workId:s,op:this.tmpPoints.map(v=>[...v.XY,0]).flat(1),isSync:!0,index:0}):{type:lt.None}}const u=n?this.fullLayer:this.drawLayer||this.fullLayer,p=this.draw({workId:s,layer:u}),y=Ot(p,this.oldRect);return this.oldRect=p,{rect:y,type:lt.DrawWork,dataType:Tt.Local,workId:s}}consumeAll(t){var c;const{data:e}=t,n=(c=e==null?void 0:e.workId)==null?void 0:c.toString();if(!n)return{type:lt.None};if(this.tmpPoints.length<2)return{type:lt.RemoveNode,removeIds:[n]};const a=this.fullLayer,s=this.draw({workId:n,layer:a});this.oldRect=s;const i=this.tmpPoints.map(m=>[...m.XY,0]).flat(1),o=ne(i);return this.vNodes.setInfo(n,{rect:s,op:i,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:s&&yt.getCenterPos(s,a)}),{rect:s,type:lt.FullWork,dataType:Tt.Local,workId:n,ops:o,isSync:!0,opt:this.workOptions}}draw(t){var h;const{workId:e,layer:n}=t;this.fullLayer.getElementsByName(e).map(f=>f.remove()),(h=this.drawLayer)==null||h.getElementsByName(e).map(f=>f.remove());const{strokeColor:a,thickness:s,zIndex:i,scale:o,rotate:c,translate:m}=this.workOptions,u=n.worldPosition,p=n.worldScaling,{d:y,rect:O}=this.computDrawPoints(s),x=[O.x+O.w/2,O.y+O.h/2],v={pos:x,name:e,id:e,d:y,fillColor:a,strokeColor:a,lineWidth:0,className:`${x[0]},${x[1]}`,normalize:!0,zIndex:i};o&&(v.scale=o),c&&(v.rotate=c),m&&(v.translate=m);const T=new he(v);if(n.append(T),c||o||m){const f=T.getBoundingClientRect();return{x:Math.floor(f.x-yt.SafeBorderPadding),y:Math.floor(f.y-yt.SafeBorderPadding),w:Math.floor(f.width+yt.SafeBorderPadding*2),h:Math.floor(f.height+yt.SafeBorderPadding*2)}}return{x:Math.floor(O.x*p[0]+u[0]-yt.SafeBorderPadding),y:Math.floor(O.y*p[1]+u[1]-yt.SafeBorderPadding),w:Math.floor(O.w*p[0]+2*yt.SafeBorderPadding),h:Math.floor(O.h*p[1]+2*yt.SafeBorderPadding)}}computDrawPoints(t){return this.tmpPoints[1].distance(this.tmpPoints[0])>this.straightTipWidth?this.computFullPoints(t):this.computDotPoints(t)}computFullPoints(t){const e=et.Sub(this.tmpPoints[1],this.tmpPoints[0]).uni(),n=et.Per(e).mul(t/2),a=Mt.Sub(this.tmpPoints[0],n),s=Mt.Add(this.tmpPoints[0],n),i=Mt.Sub(this.tmpPoints[1],n),o=Mt.Add(this.tmpPoints[1],n),c=Mt.GetSemicircleStroke(this.tmpPoints[1],i,-1,8),m=Mt.GetSemicircleStroke(this.tmpPoints[0],s,-1,8),u=[a,i,...c,o,s,...m];return{d:Oe(u,!0),rect:Bt(u),isDot:!1,pos:this.tmpPoints[0].XY}}computDotPoints(t){const e=Mt.GetDotStroke(this.tmpPoints[0],t/2,8);return{d:Oe(e,!0),rect:Bt(e),isDot:!0,pos:this.tmpPoints[0].XY}}updateTempPoints(t){const e=t.slice(-2),n=new Mt(e[0],e[1]),a=this.tmpPoints[0],{thickness:s}=this.workOptions;if(a.isNear(n,s))return!1;if(this.tmpPoints.length===2){if(n.isNear(this.tmpPoints[1],1))return!1;this.tmpPoints[1]=n}else this.tmpPoints.push(n);return!0}consumeService(t){var o;const{op:e,isFullWork:n}=t,a=(o=this.workId)==null?void 0:o.toString();if(!a)return;this.tmpPoints.length=0;for(let c=0;c<e.length;c+=3)this.tmpPoints.push(new Mt(e[c],e[c+1],e[c+2]));const s=n?this.fullLayer:this.drawLayer||this.fullLayer,i=this.draw({workId:a,layer:s});return this.oldRect=i,this.vNodes.setInfo(a,{rect:i,op:e,opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:i&&yt.getCenterPos(i,s)}),i}clearTmpPoints(){this.tmpPoints.length=0}static updateNodeOpt(t){var o;const{node:e,opt:n,vNodes:a}=t,{strokeColor:s}=n,i=a.get(e.name);return s&&(e.setAttribute("strokeColor",s),e.setAttribute("fillColor",s),(o=i==null?void 0:i.opt)!=null&&o.strokeColor&&(i.opt.strokeColor=s)),i&&a.setInfo(e.name,i),yt.updateNodeOpt(t)}}class Re extends yt{constructor(t){super(t);st(this,"canRotate",!1);st(this,"scaleType",Ft.all);st(this,"toolsType",gt.Text);st(this,"tmpPoints",[]);st(this,"workOptions");st(this,"oldRect");this.workOptions=t.toolsOpt}consume(){return{type:lt.None}}consumeAll(){return{type:lt.None}}draw(t){var x;const{workId:e,layer:n,isDrawLabel:a}=t;this.fullLayer.getElementsByName(e).map(v=>v.remove()),(x=this.drawLayer)==null||x.getElementsByName(e).map(v=>v.remove());const{boxSize:s,boxPoint:i,zIndex:o}=this.workOptions,c=n.worldPosition,m=n.worldScaling;if(!i||!s)return;const u=new re({name:e,id:e,pos:[i[0]+s[0]/2,i[1]+s[1]/2],anchor:[.5,.5],size:s,zIndex:o}),p={x:i[0],y:i[1],w:s[0],h:s[1]},y=new hr({normalize:!0,pos:[0,0],size:s}),O=a&&Re.createLabels(this.workOptions,n)||[];return u.append(...O,y),n.append(u),{x:Math.floor(p.x*m[0]+c[0]),y:Math.floor(p.y*m[1]+c[1]),w:Math.floor(p.w*m[0]),h:Math.floor(p.h*m[1])}}consumeService(t){var c,m;const e=(c=this.workId)==null?void 0:c.toString();if(!e)return;const{isFullWork:n,replaceId:a,isDrawLabel:s}=t;this.oldRect=a&&((m=this.vNodes.get(a))==null?void 0:m.rect)||void 0;const i=n?this.fullLayer:this.drawLayer||this.fullLayer,o=this.draw({workId:e,layer:i,isDrawLabel:s});return this.vNodes.setInfo(e,{rect:o,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:o&&yt.getCenterPos(o,i)}),o}updataOptService(t){if(!this.workId)return;const e=this.workId.toString(),{fontColor:n,fontBgColor:a,bold:s,italic:i,lineThrough:o,underline:c,zIndex:m}=t,u=this.vNodes.get(e);if(!u)return;n&&(u.opt.fontColor=n),a&&(u.opt.fontBgColor=a),s&&(u.opt.bold=s),i&&(u.opt.italic=i),ge(o)&&(u.opt.lineThrough=o),ge(c)&&(u.opt.underline=c),a&&(u.opt.fontBgColor=a),oe(m)&&(u.opt.zIndex=m),this.oldRect=u.rect;const p=this.draw({workId:e,layer:this.fullLayer,isDrawLabel:!1});return this.vNodes.setInfo(e,{rect:p,op:[],opt:this.workOptions,toolsType:this.toolsType,scaleType:this.scaleType,canRotate:this.canRotate,centerPos:p&&yt.getCenterPos(p,this.fullLayer)}),p}clearTmpPoints(){this.tmpPoints.length=0}static getFontWidth(t){const{ctx:e,opt:n,text:a}=t,{bold:s,italic:i,fontSize:o,fontFamily:c}=n;return e.font=`${s} ${i} ${o}px ${c}`,e.measureText(a).width}static createLabels(t,e){const n=[],a=t.text.split(","),s=a.length;for(let i=0;i<s;i++){const o=a[i],{fontSize:c,lineHeight:m,bold:u,textAlign:p,italic:y,boxSize:O,fontFamily:x,verticalAlign:v,fontColor:T,underline:l,lineThrough:h}=t,f=m||c*1.2,g=e&&e.parent.canvas.getContext("2d"),M=g&&Re.getFontWidth({text:o,opt:t,ctx:g,worldScaling:e.worldScaling});if(M){const A={anchor:[0,.5],text:o,fontSize:c,lineHeight:f,fontFamily:x,fontWeight:u,fillColor:T,textAlign:p,fontStyle:y,name:i.toString(),className:"label"},C=[0,0];if(v==="middle"){const E=(s-1)/2;C[1]=(i-E)*f}p==="left"&&(C[0]=O&&-O[0]/2+5||0),A.pos=C;const b=new Uh(A);if(n.push(b),l){const E={normalize:!1,pos:[A.pos[0],A.pos[1]+c/2],lineWidth:2*e.worldScaling[0],points:[0,0,M,0],strokeColor:T,name:`${i}_underline`,className:"underline"},L=new de(E);n.push(L)}if(h){const E={normalize:!1,pos:A.pos,lineWidth:2*e.worldScaling[0],points:[0,0,M,0],strokeColor:T,name:`${i}_lineThrough`,className:"lineThrough"},L=new de(E);n.push(L)}}}return n}static updateNodeOpt(t){const{node:e,opt:n,vNodes:a,targetNode:s}=t,{fontBgColor:i,fontColor:o,translate:c,box:m,boxScale:u,boxTranslate:p,bold:y,italic:O,lineThrough:x,underline:v,fontSize:T,textInfos:l}=n,h=s&&Zt(s)||a.get(e.name);if(!h)return;const f=e.parent;if(!f)return;const g=h.opt;if(o&&g.fontColor&&(g.fontColor=o),i&&g.fontBgColor&&(g.fontBgColor=i),y&&(g.bold=y),O&&(g.italic=O),ge(x)&&(g.lineThrough=x),ge(v)&&(g.underline=v),T&&(g.fontSize=T),m&&p&&u){const M=l==null?void 0:l.get(e.name);if(M){const{fontSize:b,boxSize:E}=M;g.boxSize=E||g.boxSize,g.fontSize=b||g.fontSize}const A=h.rect,C=Ce(yn(A,u),p);g.boxPoint=C&&[(C.x-f.worldPosition[0])/f.worldScaling[0],(C.y-f.worldPosition[1])/f.worldScaling[1]]}else if(c&&g.boxPoint){const M=[c[0]/f.worldScaling[0],c[1]/f.worldScaling[1]];g.boxPoint=[g.boxPoint[0]+M[0],g.boxPoint[1]+M[1]],h.centerPos=[h.centerPos[0]+M[0],h.centerPos[1]+M[1]],h.rect=Ce(h.rect,M)}return h&&a.setInfo(e.name,h),h==null?void 0:h.rect}static getRectFromLayer(t,e){const n=t.getElementsByName(e)[0];if(n){const a=n.getBoundingClientRect();return{x:Math.floor(a.x),y:Math.floor(a.y),w:Math.floor(a.width),h:Math.floor(a.height)}}}}function Vn(d){switch(d){case gt.Arrow:return Fn;case gt.Pencil:return Mn;case gt.Straight:return Kn;case gt.Ellipse:return jn;case gt.Polygon:case gt.Triangle:return zn;case gt.Star:case gt.Rhombus:return $n;case gt.Rectangle:return Un;case gt.SpeechBalloon:return Gn;case gt.Text:return Re;case gt.LaserPen:return On;case gt.Eraser:return ae;case gt.Selector:return wt;case gt.Image:return Hn}}function yr(d,r){const{toolsType:t,...e}=d;switch(t){case gt.Arrow:return new Fn(e);case gt.Pencil:return new Mn(e);case gt.Straight:return new Kn(e);case gt.Ellipse:return new jn(e);case gt.Polygon:case gt.Triangle:return new zn(e);case gt.Star:case gt.Rhombus:return new $n(e);case gt.Rectangle:return new Un(e);case gt.SpeechBalloon:return new Gn(e);case gt.Text:return new Re(e);case gt.LaserPen:return new On(e);case gt.Eraser:return new ae(e,r);case gt.Selector:return new wt(e);case gt.Image:return new Hn(e);default:return}}function Yn(d){const r=[],t=["PATH","SPRITE","POLYLINE","RECT","ELLIPSE"];for(const e of d){if(e.tagName==="GROUP"&&e.children.length)return Yn(e.children);e.tagName&&t.includes(e.tagName)&&r.push(e)}return r}class s0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.ZIndexActive)}consume(t){const{msgType:e,dataType:n,emitEventType:a}=t;if(e===lt.UpdateNode&&n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t),!0}consumeForLocalWorker(t){var o,c,m,u,p;const{workId:e,isActiveZIndex:n,willRefreshSelector:a}=t;if(e!==wt.selectorId)return;const s=(o=this.localWork)==null?void 0:o.workShapes.get(wt.selectorId);if(!s)return;const i=s.oldSelectRect;if(n&&i&&this.localWork){const y=new Set;if(this.localWork.vNodes.curNodeMap.forEach((O,x)=>{xe(i,O.rect)&&y.add(x)}),y.size){const O=[];y.forEach(x=>{var v;(v=this.localWork)==null||v.fullLayer.getElementsByName(x).forEach(T=>{var h,f;const l=T.cloneNode(!0);He(T)&&l.seal(),(f=(h=this.localWork)==null?void 0:h.drawLayer)!=null&&f.getElementsByName(x).length||O.push(l)})}),O.length&&((c=this.localWork.drawLayer)==null||c.append(...O))}}else(u=(m=this.localWork)==null?void 0:m.drawLayer)==null||u.children.filter(y=>{var O;return!((O=s.selectIds)!=null&&O.includes(y.name))}).forEach(y=>y.remove());a&&((p=this.localWork)==null||p._post({render:[{rect:i,drawCanvas:St.Selector,clearCanvas:St.Selector,isClear:!0,isFullWork:!1,viewId:this.localWork.viewId}],sp:[{type:lt.Select,selectIds:s.selectIds,opt:s.getWorkOptions(),selectRect:i,strokeColor:s.strokeColor,fillColor:s.fillColor,willSyncService:!1,isSync:!0}]}))}}class o0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.CopyNode)}consume(t){const{msgType:e,dataType:n,emitEventType:a,undoTickerId:s}=t;if(e===lt.FullWork&&n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t).finally(()=>{s&&setTimeout(()=>{var i;(i=this.localWork)==null||i._post({sp:[{type:lt.None,undoTickerId:s}]})},0)}),!0}async consumeForLocalWorker(t){var n;const{workId:e}=t;e&&await((n=this.localWork)==null?void 0:n.consumeFull(t,this.scene))}}class a0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.SetColorNode)}consume(t){const{msgType:e,dataType:n,emitEventType:a,undoTickerId:s}=t;if(e===lt.UpdateNode&&n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t).finally(()=>{s&&setTimeout(()=>{var i;(i=this.localWork)==null||i._post({sp:[{type:lt.None,undoTickerId:s}]})},0)}),!0}async consumeForLocalWorker(t){var c;const{workId:e,updateNodeOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,textUpdateForWoker:o}=t;e===wt.selectorId&&n&&await((c=this.localWork)==null?void 0:c.updateSelector({updateSelectorOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,textUpdateForWoker:o,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:a}=t,{willSyncService:s,isSync:i,textUpdateForWoker:o}=e,c=n.render||[],m=n.sp||[];if(s)for(const[u,p]of a.entries())o&&p.toolsType===gt.Text?m.push({...p,workId:u,type:lt.TextUpdate,dataType:Tt.Local,willSyncService:!0}):m.push({...p,workId:u,type:lt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:i});return{render:c,sp:m}}}class l0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.ZIndexNode)}consume(t){const{msgType:e,dataType:n,emitEventType:a}=t;if(e===lt.UpdateNode&&n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t),!0}async consumeForLocalWorker(t){var o;const{workId:e,updateNodeOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i}=t;e===wt.selectorId&&n&&await((o=this.localWork)==null?void 0:o.updateSelector({updateSelectorOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:a}=t,{willSyncService:s,isSync:i}=e,o=n.render||[],c=n.sp||[];if(s&&c)for(const[m,u]of a.entries())c.push({...u,workId:m,type:lt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:i});return{render:o,sp:c}}}class c0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.TranslateNode)}consume(t){const{msgType:e,dataType:n,emitEventType:a,undoTickerId:s}=t;if(e===lt.UpdateNode&&n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t).finally(()=>{s&&setTimeout(()=>{var i;(i=this.localWork)==null||i._post({sp:[{type:lt.None,undoTickerId:s}]})},0)}),!0}async consumeForLocalWorker(t){var m,u;const{workId:e,updateNodeOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,textUpdateForWoker:o,emitEventType:c}=t;e===wt.selectorId&&n&&(n.workState===It.Done&&(n!=null&&n.translate)&&(n.translate[0]||n.translate[1])||n.workState!==It.Done?await((m=this.localWork)==null?void 0:m.updateSelector({updateSelectorOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,isSync:!0,textUpdateForWoker:o,emitEventType:c,scene:this.scene,callback:this.updateSelectorCallback})):n.workState===It.Done&&((u=this.localWork)==null||u.vNodes.deleteLastTarget()))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:a,workShapeNode:s,res:i}=t,{willSyncService:o,isSync:c,updateSelectorOpt:m,willSerializeData:u,textUpdateForWoker:p}=e,y=m.workState,O=n.render||[],x=n.sp||[];if(y===It.Start)return{sp:[],render:[]};const v=i==null?void 0:i.selectRect;if(o){if(u){const T=s.getChildrenPoints();T&&x.push({type:lt.Select,selectIds:s.selectIds,selectRect:v,willSyncService:!1,isSync:c,points:T})}for(const[T,l]of a.entries())p&&l.toolsType===gt.Text?x.push({...l,workId:T,type:lt.TextUpdate,dataType:Tt.Local,willSyncService:!0}):x.push({...l,workId:T,type:lt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:c})}return{render:O,sp:x}}}class f0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.DeleteNode)}consume(t){const{msgType:e,dataType:n,emitEventType:a}=t;if(e===lt.RemoveNode){if(n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t),!0;if(n===Tt.Service&&a===this.emitEventType)return this.consumeForServiceWorker(t),!0}}consumeForLocalWorker(t){if(!this.localWork)return;const{removeIds:e,willRefresh:n,willSyncService:a,viewId:s}=t;if(!(e!=null&&e.length))return;let i;const o=[],c=[],m=[];for(const u of e){if(u===wt.selectorId){const y=this.localWork.workShapes.get(wt.selectorId);if(!y)return;const O=y.selectIds&&[...y.selectIds]||[];for(const v of O){if(this.localWork.vNodes.get(v)){const l=this.commandDeleteText(v);l&&o.push(l)}i=Ot(i,this.localWork.removeNode(v)),m.push(v)}const x=y==null?void 0:y.updateSelectIds([]);i=Ot(i,x.bgRect),this.localWork.clearWorkShapeNodeCache(wt.selectorId),this.localWork.workShapes.delete(wt.selectorId),o.push({type:lt.Select,selectIds:[],willSyncService:a});continue}const p=this.commandDeleteText(u);p&&o.push(p),i=Ot(i,this.localWork.removeNode(u)),m.push(u)}a&&o.push({type:lt.RemoveNode,removeIds:m,undoTickerId:t.undoTickerId}),i&&n&&c.push({rect:i,drawCanvas:St.Bg,clearCanvas:St.Bg,isClear:!0,isFullWork:!0,viewId:s}),(c.length||o.length)&&this.localWork._post({render:c,sp:o})}consumeForServiceWorker(t){this.serviceWork&&this.serviceWork.removeSelectWork(t)}commandDeleteText(t){var n;const e=(n=this.localWork)==null?void 0:n.vNodes.get(t);if(e&&e.toolsType===gt.Text)return{type:lt.TextUpdate,toolsType:gt.Text,workId:t,dataType:Tt.Local}}}class u0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.ScaleNode)}consume(t){const{msgType:e,dataType:n,emitEventType:a,undoTickerId:s}=t;if(e===lt.UpdateNode&&n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t).finally(()=>{s&&setTimeout(()=>{var i;(i=this.localWork)==null||i._post({sp:[{type:lt.None,undoTickerId:s}]})},0)}),!0}async consumeForLocalWorker(t){var i;const{workId:e,updateNodeOpt:n,willSyncService:a,willSerializeData:s}=t;e===wt.selectorId&&n&&await((i=this.localWork)==null?void 0:i.updateSelector({updateSelectorOpt:n,willSyncService:a,willSerializeData:s,isSync:!0,scene:this.scene,callback:this.updateSelectorCallback.bind(this)}))}updateSelectorCallback(t){const{param:e,postData:n,workShapeNode:a,res:s,newServiceStore:i}=t,{updateSelectorOpt:o,willSyncService:c,willSerializeData:m}=e,u=o.workState,p=n.render||[],y=n.sp||[],O=s==null?void 0:s.selectRect,x=s==null?void 0:s.renderRect;if(u===It.Start)return{sp:[],render:[]};if(this.localWork){p.push({isClearAll:!0,isFullWork:!1,clearCanvas:St.Selector,viewId:this.localWork.viewId});const v={rect:x,isFullWork:!1,drawCanvas:St.Selector,viewId:this.localWork.viewId};p.push(v)}if(c){u===It.Doing&&y.push({type:lt.Select,selectIds:a.selectIds,selectRect:O,willSyncService:!0,isSync:!0,points:a.getChildrenPoints(),textOpt:a.textOpt}),m&&u===It.Done&&y.push({type:lt.Select,selectIds:a.selectIds,selectRect:O,willSyncService:!1,isSync:!0,points:a.getChildrenPoints(),textOpt:a.textOpt});for(const[v,T]of i.entries())T.toolsType===gt.Text?y.push({...T,workId:v,type:lt.TextUpdate,dataType:Tt.Local,willSyncService:!0}):y.push({...T,workId:v,type:lt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:!0})}return{render:p,sp:y}}}class h0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.RotateNode)}consume(t){const{msgType:e,dataType:n,emitEventType:a,undoTickerId:s}=t;if(e===lt.UpdateNode&&n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t).finally(()=>{s&&setTimeout(()=>{var i;(i=this.localWork)==null||i._post({sp:[{type:lt.None,undoTickerId:s}]})},0)}),!0}async consumeForLocalWorker(t){var c;const{workId:e,updateNodeOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,emitEventType:o}=t;e===wt.selectorId&&n&&await((c=this.localWork)==null?void 0:c.updateSelector({updateSelectorOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,emitEventType:o,isSync:!0,scene:this.scene,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,workShapeNode:a,res:s,newServiceStore:i}=t,{updateSelectorOpt:o,willSyncService:c,willSerializeData:m,isSync:u}=e,p=o.workState,y=n.render||[],O=n.sp||[],x=s==null?void 0:s.selectRect;if(c){m&&p===It.Done&&O.push({type:lt.Select,selectIds:a.selectIds,selectRect:x,willSyncService:!0,isSync:u,points:a.getChildrenPoints()});for(const[v,T]of i.entries())O.push({...T,workId:v,type:lt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:u})}return{render:y,sp:O}}}class d0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.SetFontStyle)}consume(t){const{msgType:e,dataType:n,emitEventType:a,undoTickerId:s}=t;if(e===lt.UpdateNode&&n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t).finally(()=>{s&&setTimeout(()=>{var i;(i=this.localWork)==null||i._post({sp:[{type:lt.None,undoTickerId:s}]})},0)}),!0}async consumeForLocalWorker(t){var c;const{workId:e,updateNodeOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,textUpdateForWoker:o}=t;e===wt.selectorId&&n&&await((c=this.localWork)==null?void 0:c.updateSelector({updateSelectorOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,textUpdateForWoker:o,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:a,workShapeNode:s,res:i}=t,{willSyncService:o,isSync:c,updateSelectorOpt:m,textUpdateForWoker:u}=e,p=n.render||[],y=n.sp||[],O=i==null?void 0:i.selectRect;if(o&&y){m.fontSize&&y.push({type:lt.Select,selectIds:s.selectIds,selectRect:O,willSyncService:o,isSync:c,points:s.getChildrenPoints()});for(const[x,v]of a.entries())u&&v.toolsType===gt.Text?y.push({...v,workId:x,type:lt.TextUpdate,dataType:Tt.Local,willSyncService:!0}):y.push({...v,workId:x,type:lt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:c})}return{render:p,sp:y}}}class g0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.SetPoint)}consume(t){const{msgType:e,dataType:n,emitEventType:a,undoTickerId:s}=t;if(e===lt.UpdateNode&&n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t).finally(()=>{s&&setTimeout(()=>{var i;(i=this.localWork)==null||i._post({sp:[{type:lt.None,undoTickerId:s}]})},0)}),!0}async consumeForLocalWorker(t){var c;const{workId:e,updateNodeOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,textUpdateForWoker:o}=t;e===wt.selectorId&&n&&await((c=this.localWork)==null?void 0:c.updateSelector({updateSelectorOpt:n,willRefreshSelector:a,willSyncService:s,emitEventType:this.emitEventType,willSerializeData:i,isSync:!0,textUpdateForWoker:o,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:a,workShapeNode:s,res:i}=t,{willSyncService:o,isSync:c}=e,m=n.render||[],u=n.sp||[],p=i==null?void 0:i.selectRect;if(o&&u){for(const[y,O]of a.entries())u.push({...O,workId:y,type:lt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:c});u.push({type:lt.Select,selectIds:s.selectIds,selectRect:p,willSyncService:o,isSync:c,points:s.getChildrenPoints()})}return{render:m,sp:u}}}class p0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.SetLock)}consume(t){const{msgType:e,dataType:n,emitEventType:a,undoTickerId:s}=t;if(e===lt.UpdateNode&&n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t).finally(()=>{s&&setTimeout(()=>{var i;(i=this.localWork)==null||i._post({sp:[{type:lt.None,undoTickerId:s}]})},0)}),!0}async consumeForLocalWorker(t){var o;const{workId:e,updateNodeOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i}=t;e===wt.selectorId&&n&&await((o=this.localWork)==null?void 0:o.updateSelector({updateSelectorOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:a,workShapeNode:s,res:i}=t,{willSyncService:o,isSync:c,updateSelectorOpt:m}=e,u=n.render||[],p=n.sp||[],y=i==null?void 0:i.selectRect;if(o&&p){for(const[O,x]of a.entries())p.push({...x,workId:O,type:lt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:c});p.push({isLocked:m.isLocked,selectorColor:s.selectorColor,scaleType:s.scaleType,canRotate:s.canRotate,type:lt.Select,selectIds:s.selectIds,selectRect:y,willSyncService:o,isSync:c})}return{render:u,sp:p}}}class m0 extends Jt{constructor(){super(...arguments);st(this,"emitEventType",Lt.SetShapeOpt)}consume(t){const{msgType:e,dataType:n,emitEventType:a,undoTickerId:s}=t;if(e===lt.UpdateNode&&n===Tt.Local&&a===this.emitEventType)return this.consumeForLocalWorker(t).finally(()=>{s&&setTimeout(()=>{var i;(i=this.localWork)==null||i._post({sp:[{type:lt.None,undoTickerId:s}]})},0)}),!0}async consumeForLocalWorker(t){var o;const{workId:e,updateNodeOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i}=t;e===wt.selectorId&&n&&await((o=this.localWork)==null?void 0:o.updateSelector({updateSelectorOpt:n,willRefreshSelector:a,willSyncService:s,willSerializeData:i,callback:this.updateSelectorCallback}))}updateSelectorCallback(t){const{param:e,postData:n,newServiceStore:a}=t,{willSyncService:s,isSync:i}=e,o=n.render||[],c=n.sp||[];if(s&&c)for(const[m,u]of a.entries())c.push({...u,workId:m,type:lt.UpdateNode,updateNodeOpt:{useAnimation:!1},isSync:i});return{render:o,sp:c}}}class v0{constructor(r){st(this,"builders",new Map);this.builders=new Map(r.map(t=>[t,this.build(t)]))}build(r){switch(r){case Lt.TranslateNode:return new c0;case Lt.ZIndexNode:return new l0;case Lt.ZIndexActive:return new s0;case Lt.CopyNode:return new o0;case Lt.SetColorNode:return new a0;case Lt.DeleteNode:return new f0;case Lt.ScaleNode:return new u0;case Lt.RotateNode:return new h0;case Lt.SetFontStyle:return new d0;case Lt.SetPoint:return new g0;case Lt.SetLock:return new p0;case Lt.SetShapeOpt:return new m0}}registerForWorker(r,t,e){return this.builders.forEach(n=>{n&&n.registerForWorker(r,t,e)}),this}consumeForWorker(r){for(const t of this.builders.values())if(t!=null&&t.consume(r))return!0;return!1}}const Je="cursorhover";class y0{constructor(r,t){st(this,"viewId");st(this,"scene");st(this,"scenePath");st(this,"drawLayer");st(this,"fullLayer");st(this,"curNodeMap",new Map);st(this,"targetNodeMap",[]);this.viewId=r,this.scene=t}init(r,t){this.fullLayer=r,this.drawLayer=t}get(r){return this.curNodeMap.get(r)}hasRenderNodes(){let r=!1;for(const t of this.curNodeMap.values())wh(t.toolsType)&&(r=!0);return r}has(r){this.curNodeMap.has(r)}setInfo(r,t){const e=this.curNodeMap.get(r)||{name:r,rect:t.rect};t.rect&&(e.rect=Zt(t.rect)),t.op&&(e.op=Zt(t.op)),t.canRotate&&(e.canRotate=t.canRotate),t.scaleType&&(e.scaleType=t.scaleType),t.opt&&(e.opt=Zt(t.opt)),t.toolsType&&(e.toolsType=t.toolsType),t.centerPos&&(e.centerPos=Zt(t.centerPos)),e.rect?this.curNodeMap.set(r,e):this.curNodeMap.delete(r)}delete(r){this.curNodeMap.delete(r)}clear(){this.curNodeMap.clear(),this.targetNodeMap.length=0}hasRectIntersectRange(r,t=!0){for(const e of this.curNodeMap.values())if(xe(r,e.rect)){if(t&&e.toolsType===gt.Image&&e.opt.locked||t&&e.toolsType===gt.Text&&(e.opt.workState===It.Doing||e.opt.workState===It.Start))continue;return!0}return!1}getRectIntersectRange(r,t=!0){let e;const n=new Map;for(const[a,s]of this.curNodeMap.entries())if(xe(r,s.rect)){if(t&&s.toolsType===gt.Image&&s.opt.locked||t&&s.toolsType===gt.Text&&(s.opt.workState===It.Doing||s.opt.workState===It.Start))continue;e=Ot(e,s.rect),n.set(a,s)}return{rectRange:e,nodeRange:n}}getNodeRectFormShape(r,t){const e=Vn(t.toolsType);let n=this.fullLayer&&(e==null?void 0:e.getRectFromLayer(this.fullLayer,r));return!n&&this.drawLayer&&(n=e==null?void 0:e.getRectFromLayer(this.drawLayer,r)),n}updateNodesRect(){this.curNodeMap.forEach((r,t)=>{const e=this.getNodeRectFormShape(t,r);e?(r.rect=e,this.curNodeMap.set(t,r)):this.curNodeMap.delete(t)})}combineIntersectRect(r){let t=r;return this.curNodeMap.forEach(e=>{xe(t,e.rect)&&(t=Ot(t,e.rect))}),t}setTarget(){return this.targetNodeMap.push(Zt(this.curNodeMap)),this.targetNodeMap.length-1}getLastTarget(){return this.targetNodeMap[this.targetNodeMap.length-1]}deleteLastTarget(){this.targetNodeMap.length=this.targetNodeMap.length-1}getTarget(r){return this.targetNodeMap[r]}deleteTarget(r){this.targetNodeMap.length=r}}class Xn{constructor(r,t){st(this,"viewId");st(this,"fullLayer");st(this,"vNodes");st(this,"dpr");st(this,"opt");st(this,"cameraOpt");st(this,"scene");st(this,"isSafari",!1);this.viewId=r,this.opt=t,this.dpr=t.dpr,this.scene=this.createScene(t.offscreenCanvasOpt),this.fullLayer=this.createLayer("fullLayer",this.scene,{...t.layerOpt,bufferSize:this.viewId==="mainView"?6e3:3e3}),this.vNodes=new y0(r,this.scene)}setIsSafari(r){this.isSafari=r}on(r){const{msgType:t,toolsType:e,opt:n,workId:a,workState:s,dataType:i}=r;switch(t){case lt.Destroy:this.destroy();break;case lt.Clear:this.clearAll();break;case lt.UpdateTools:if(e&&n){const o={toolsType:e,toolsOpt:n};this.localWork.setToolsOpt(o)}break;case lt.CreateWork:a&&n&&(!this.localWork.getTmpWorkShapeNode()&&e&&this.setToolsOpt({toolsType:e,toolsOpt:n}),this.setWorkOpt({workId:a,toolsOpt:n}));break;case lt.DrawWork:s===It.Done&&i===Tt.Local?this.consumeDrawAll(i,r):this.consumeDraw(i,r);break}}updateScene(r){this.scene.attr({...r});const{width:t,height:e}=r;this.scene.container.width=t,this.scene.container.height=e,this.scene.width=t,this.scene.height=e,this.updateLayer({width:t,height:e})}updateLayer(r){const{width:t,height:e}=r;this.fullLayer&&(this.fullLayer.parent.setAttribute("width",t),this.fullLayer.parent.setAttribute("height",e),this.fullLayer.setAttribute("size",[t,e]),this.fullLayer.setAttribute("pos",[t*.5,e*.5])),this.drawLayer&&(this.drawLayer.parent.setAttribute("width",t),this.drawLayer.parent.setAttribute("height",e),this.drawLayer.setAttribute("size",[t,e]),this.drawLayer.setAttribute("pos",[t*.5,e*.5])),this.snapshotFullLayer&&(this.snapshotFullLayer.parent.setAttribute("width",t),this.snapshotFullLayer.parent.setAttribute("height",e),this.snapshotFullLayer.setAttribute("size",[t,e]),this.snapshotFullLayer.setAttribute("pos",[t*.5,e*.5]))}createScene(r){const{width:t,height:e}=r,n=new OffscreenCanvas(t,e);return new $h({container:n,displayRatio:this.dpr,depth:!1,desynchronized:!0,...r})}createLayer(r,t,e){const{width:n,height:a}=e,s=`offscreen-${r}`,i=t.layer(s,e),o=new re({anchor:[.5,.5],pos:[n*.5,a*.5],size:[n,a],name:"viewport",id:r});return i.append(o),o}clearAll(){var r;this.fullLayer&&(this.fullLayer.parent.children.forEach(t=>{t.name!=="viewport"&&t.remove()}),this.fullLayer.removeAllChildren()),this.drawLayer&&(this.drawLayer.parent.children.forEach(t=>{t.name!=="viewport"&&t.remove()}),this.drawLayer.removeAllChildren()),this.localWork.clearAllWorkShapesCache(),(r=this.serviceWork)==null||r.clearAllWorkShapesCache()}setToolsOpt(r){this.localWork.setToolsOpt(r)}setWorkOpt(r){const{workId:t,toolsOpt:e}=r;t&&e&&this.localWork.setWorkOptions(t,e)}destroy(){var r;this.vNodes.clear(),this.fullLayer.remove(),this.scene.remove(),this.localWork.destroy(),(r=this.serviceWork)==null||r.destroy()}}class Zn{constructor(r){st(this,"viewId");st(this,"vNodes");st(this,"thread");st(this,"fullLayer");st(this,"drawLayer");st(this,"_post");st(this,"tmpWorkShapeNode");st(this,"tmpOpt");st(this,"workShapes",new Map);st(this,"workShapeState",new Map);st(this,"effectWorkId");st(this,"drawCount",0);this.thread=r.thread,this.viewId=r.viewId,this.vNodes=r.vNodes,this.fullLayer=r.fullLayer,this.drawLayer=r.drawLayer,this._post=r.post}destroy(){this.workShapeState.clear(),this.workShapes.clear()}getWorkShape(r){return this.workShapes.get(r)}getTmpWorkShapeNode(){return this.tmpWorkShapeNode}setTmpWorkId(r){if(r&&this.tmpWorkShapeNode){this.tmpWorkShapeNode.setWorkId(r),this.workShapes.set(r,this.tmpWorkShapeNode),this.tmpOpt&&this.setToolsOpt(this.tmpOpt);return}}setTmpWorkOptions(r){var t;(t=this.tmpWorkShapeNode)==null||t.setWorkOptions(r)}setWorkOptions(r,t){var n;this.workShapes.get(r)||this.setTmpWorkId(r),(n=this.workShapes.get(r))==null||n.setWorkOptions(t)}createWorkShapeNode(r){var n;const{toolsType:t,workId:e}=r;return t===gt.Selector&&e===Je?yr({...r,vNodes:this.vNodes,fullLayer:this.fullLayer,drawLayer:this.fullLayer}):yr({...r,vNodes:this.vNodes,fullLayer:this.fullLayer,drawLayer:this.drawLayer},(n=this.thread)==null?void 0:n.serviceWork)}setToolsOpt(r){var t,e;((t=this.tmpOpt)==null?void 0:t.toolsType)!==r.toolsType&&(e=this.tmpOpt)!=null&&e.toolsType&&this.clearAllWorkShapesCache(),this.tmpOpt=r,this.tmpWorkShapeNode=this.createWorkShapeNode(r)}clearWorkShapeNodeCache(r){var t;(t=this.getWorkShape(r))==null||t.clearTmpPoints(),this.workShapes.delete(r),this.workShapeState.delete(r)}clearAllWorkShapesCache(){this.workShapes.forEach(r=>r.clearTmpPoints()),this.workShapes.clear(),this.workShapeState.clear()}setFullWork(r){const{workId:t,opt:e,toolsType:n}=r;if(t&&e&&n){const a=t&&this.workShapes.get(t)||this.createWorkShapeNode({toolsOpt:e,toolsType:n,workId:t});return a?(a.setWorkId(t),this.workShapes.set(t,a),a):void 0}}}var S0=Qt,x0=function(){return S0.Date.now()},T0=x0,M0=/\s/;function O0(d){for(var r=d.length;r--&&M0.test(d.charAt(r)););return r}var E0=O0,P0=E0,A0=/^\s+/;function C0(d){return d&&d.slice(0,P0(d)+1).replace(A0,"")}var R0=C0,I0=ce,L0=ie,b0="[object Symbol]";function D0(d){return typeof d=="symbol"||L0(d)&&I0(d)==b0}var w0=D0,N0=R0,Jn=se,B0=w0,Qn=NaN,W0=/^[-+]0x[0-9a-f]+$/i,F0=/^0b[01]+$/i,j0=/^0o[0-7]+$/i,U0=parseInt;function $0(d){if(typeof d=="number")return d;if(B0(d))return Qn;if(Jn(d)){var r=typeof d.valueOf=="function"?d.valueOf():d;d=Jn(r)?r+"":r}if(typeof d!="string")return d===0?d:+d;d=N0(d);var t=F0.test(d);return t||j0.test(d)?U0(d.slice(2),t?2:8):W0.test(d)?Qn:+d}var z0=$0,G0=se,Sr=T0,kn=z0,H0="Expected a function",K0=Math.max,V0=Math.min;function Y0(d,r,t){var e,n,a,s,i,o,c=0,m=!1,u=!1,p=!0;if(typeof d!="function")throw new TypeError(H0);r=kn(r)||0,G0(t)&&(m=!!t.leading,u="maxWait"in t,a=u?K0(kn(t.maxWait)||0,r):a,p="trailing"in t?!!t.trailing:p);function y(M){var A=e,C=n;return e=n=void 0,c=M,s=d.apply(C,A),s}function O(M){return c=M,i=setTimeout(T,r),m?y(M):s}function x(M){var A=M-o,C=M-c,b=r-A;return u?V0(b,a-C):b}function v(M){var A=M-o,C=M-c;return o===void 0||A>=r||A<0||u&&C>=a}function T(){var M=Sr();if(v(M))return l(M);i=setTimeout(T,x(M))}function l(M){return i=void 0,p&&e?y(M):(e=n=void 0,s)}function h(){i!==void 0&&clearTimeout(i),c=0,e=o=n=i=void 0}function f(){return i===void 0?s:l(Sr())}function g(){var M=Sr(),A=v(M);if(e=arguments,n=this,o=M,A){if(i===void 0)return O(o);if(u)return clearTimeout(i),i=setTimeout(T,r),y(o)}return i===void 0&&(i=setTimeout(T,r)),s}return g.cancel=h,g.flush=f,g}var X0=Y0,Z0=X0,J0=se,Q0="Expected a function";function k0(d,r,t){var e=!0,n=!0;if(typeof d!="function")throw new TypeError(Q0);return J0(t)&&(e="leading"in t?!!t.leading:e,n="trailing"in t?!!t.trailing:n),Z0(d,r,{leading:e,maxWait:r,trailing:n})}var q0=k0,_0=Xt(q0);class tg extends Zn{constructor(t){super(t);st(this,"combineUnitTime",600);st(this,"combineTimerId");st(this,"effectSelectNodeData",new Set);st(this,"batchEraserWorks",new Set);st(this,"batchEraserRemoveNodes",new Set);st(this,"batchEraserCombine",_0(()=>{const t=this.updateBatchEraserCombineNode(this.batchEraserWorks,this.batchEraserRemoveNodes);this.batchEraserWorks.clear(),this.batchEraserRemoveNodes.clear(),t.length&&this._post({render:t})},100,{leading:!1}))}consumeDraw(t,e){const{op:n,workId:a}=t;if(n!=null&&n.length&&a){const s=this.workShapes.get(a);if(!s)return;const i=s.toolsType;if(i===gt.LaserPen)return;const o=s.consume({data:t,isFullWork:!0});switch(i){case gt.Selector:o.type===lt.Select&&(o.selectIds&&e.runReverseSelectWork(o.selectIds),this.drawSelector(o,!0));break;case gt.Eraser:o!=null&&o.rect&&this.drawEraser(o);break;case gt.Arrow:case gt.Straight:case gt.Ellipse:case gt.Rectangle:case gt.Star:case gt.Polygon:case gt.SpeechBalloon:o&&(this.drawCount++,this.drawPencil(o));break;case gt.Pencil:this.combineTimerId||(this.combineTimerId=setTimeout(()=>{this.combineTimerId=void 0,this.drawPencilCombine(a)},Math.floor(s.getWorkOptions().syncUnitTime||this.combineUnitTime/2))),o&&(this.drawCount++,this.drawPencil(o));break}}}consumeDrawAll(t,e){var i,o,c;this.combineTimerId&&(clearTimeout(this.combineTimerId),this.combineTimerId=void 0);const{workId:n,undoTickerId:a,scenePath:s}=t;if(n){a&&setTimeout(()=>{this._post({sp:[{type:lt.None,undoTickerId:a}]})},0);const m=this.workShapes.get(n);if(!m)return;const u=m.toolsType;if(u===gt.LaserPen)return;const p=this.workShapes.get(Je),y=(i=p==null?void 0:p.selectIds)==null?void 0:i[0],O=m.consumeAll({data:t,hoverId:y}),x=this.workShapeState.get(n);switch(u){case gt.Selector:O.selectIds&&y&&((o=O.selectIds)!=null&&o.includes(y))&&p.cursorBlur(),O.selectIds&&e.runReverseSelectWork(O.selectIds),this.drawSelector({...O,scenePath:s},!1),(c=m.selectIds)!=null&&c.length?m.clearTmpPoints():this.clearWorkShapeNodeCache(n);break;case gt.Eraser:O!=null&&O.rect&&this.drawEraser({...O,scenePath:s}),m.clearTmpPoints();break;case gt.Arrow:case gt.Straight:case gt.Ellipse:case gt.Rectangle:case gt.Star:case gt.Polygon:case gt.SpeechBalloon:this.drawPencilFull({...O,scenePath:s},m.getWorkOptions(),x),this.drawCount=0,this.clearWorkShapeNodeCache(n);break;case gt.Pencil:O!=null&&O.rect&&(this.drawPencilFull({...O,scenePath:s},m.getWorkOptions(),x),this.drawCount=0),this.clearWorkShapeNodeCache(n);break}}}async consumeFull(t,e){var i,o;const n=this.setFullWork(t),a=t.ops&&Ve(t.ops),s=(i=t.workId)==null?void 0:i.toString();if(s&&n){const c=(o=this.vNodes.get(s))==null?void 0:o.rect;let m;n.toolsType===gt.Image&&e?m=await n.consumeServiceAsync({scene:e,isFullWork:!0,replaceId:s}):m=n.consumeService({op:a,isFullWork:!0,replaceId:s});const u=(t==null?void 0:t.updateNodeOpt)&&n.updataOptService(t.updateNodeOpt);m=Ot(m,u);const p=[],y=[];if(t.workId&&this.workShapes.delete(t.workId),m&&t.willRefresh&&(c&&p.push({rect:m,isClear:!0,clearCanvas:St.Bg,isFullWork:!0,viewId:this.viewId}),p.push({rect:m,drawCanvas:St.Bg,isFullWork:!0,viewId:this.viewId})),t.willSyncService&&y.push({opt:t.opt,toolsType:t.toolsType,type:lt.FullWork,workId:t.workId,ops:t.ops,updateNodeOpt:t.updateNodeOpt,undoTickerId:t.undoTickerId,viewId:this.viewId}),p.length||y.length){const O={render:p,sp:y};await this._post(O)}}}async removeWork(t){const{workId:e}=t,n=e==null?void 0:e.toString();if(n){const a=this.removeNode(n);a&&await this._post({render:[{rect:a,isClear:!0,isFullWork:!0,clearCanvas:St.Bg,drawCanvas:St.Bg,viewId:this.viewId}]})}}removeNode(t){var a;this.workShapes.has(t)&&this.clearWorkShapeNodeCache(t);let e;const n=this.vNodes.get(t);return n&&(this.fullLayer.getElementsByName(t).concat(((a=this.drawLayer)==null?void 0:a.getElementsByName(t))||[]).forEach(s=>{s.remove()}),e=Ot(e,n.rect),this.vNodes.delete(t)),e}async checkTextActive(t){const{op:e,viewId:n,dataType:a}=t;if(e!=null&&e.length){let s;for(const i of this.vNodes.curNodeMap.values()){const{rect:o,name:c,toolsType:m,opt:u}=i,p=e[0]*this.fullLayer.worldScaling[0]+this.fullLayer.worldPosition[0],y=e[1]*this.fullLayer.worldScaling[1]+this.fullLayer.worldPosition[1];if(m===gt.Text&&Dh([p,y],o)&&u.workState===It.Done){s=c;break}}s&&(await this.blurSelector({viewId:n,msgType:lt.Select,dataType:a,isSync:!0}),await this._post({sp:[{type:lt.GetTextActive,toolsType:gt.Text,workId:s}]}))}}async colloctEffectSelectWork(t){const e=this.workShapes.get(wt.selectorId),{workId:n,msgType:a}=t;if(e&&n&&e.selectIds&&e.selectIds.includes(n.toString())){a===lt.RemoveNode?e.selectIds=e.selectIds.filter(s=>s!==n.toString()):this.effectSelectNodeData.add(t),await new Promise(s=>{setTimeout(()=>{s(!0)},0)}),await this.runEffectSelectWork(!0).then(()=>{var s;(s=this.effectSelectNodeData)==null||s.clear()});return}return t}async updateSelector(t){var l;const e=this.workShapes.get(wt.selectorId);if(!((l=e==null?void 0:e.selectIds)!=null&&l.length))return;const{callback:n,...a}=t,{updateSelectorOpt:s,willRefreshSelector:i,willSerializeData:o,emitEventType:c,scene:m}=a,u=s.workState,p=await(e==null?void 0:e.updateSelector({updateSelectorOpt:s,selectIds:e.selectIds,vNodes:this.vNodes,willSerializeData:o,worker:this,scene:m})),y=p==null?void 0:p.selectRect,O=new Map;e.selectIds.forEach(h=>{const f=this.vNodes.get(h);if(f){const{toolsType:g,op:M,opt:A}=f;O.set(h,{opt:A,toolsType:g,ops:(M==null?void 0:M.length)&&ne(M)||void 0})}});const x=[],v=[];if(i){x.push({isClearAll:!0,isFullWork:!1,clearCanvas:St.Selector,viewId:this.viewId});const h={rect:y,isFullWork:!1,drawCanvas:St.Selector,viewId:this.viewId};s.translate&&c===Lt.TranslateNode&&u===It.Doing&&(h.translate=s.translate),x.push(h)}const T=n&&n({res:p,workShapeNode:e,param:a,postData:{render:x,sp:v},newServiceStore:O})||{render:x,sp:v};(T.render.length||T.sp.length)&&this._post(T)}async blurSelector(t){var a;const e=this.workShapes.get(wt.selectorId),n=e==null?void 0:e.blurSelector();if(this.clearWorkShapeNodeCache(wt.selectorId),((a=this.drawLayer)==null?void 0:a.parent).children.forEach(s=>{s.name===wt.selectorId&&s.remove()}),n){const s=[];s.push({...n,undoTickerId:t==null?void 0:t.undoTickerId,isSync:t==null?void 0:t.isSync}),await this._post({render:(n==null?void 0:n.rect)&&[{rect:n.rect,drawCanvas:St.Bg,isClear:!0,clearCanvas:St.Bg,isFullWork:!0,viewId:this.viewId}],sp:s})}}reRenderSelector(t=!1){var n;const e=this.workShapes.get(wt.selectorId);if(e){if(e&&!((n=e.selectIds)!=null&&n.length))return this.blurSelector();if(this.drawLayer){const a=e.reRenderSelector();a&&this._post({render:[{rect:a,isClear:!0,isFullWork:!1,clearCanvas:St.Selector,drawCanvas:St.Selector,viewId:this.viewId}],sp:[{type:lt.Select,selectIds:e.selectIds,selectRect:a,willSyncService:t,viewId:this.viewId,points:e.getChildrenPoints(),textOpt:e.textOpt}]})}}}updateFullSelectWork(t){var a,s,i,o,c,m,u,p;const e=this.workShapes.get(wt.selectorId),{selectIds:n}=t;if(!(n!=null&&n.length)){this.blurSelector(t);return}if(!e){!this.setFullWork(t)&&t.workId&&((a=this.tmpWorkShapeNode)==null?void 0:a.toolsType)===gt.Selector&&this.setTmpWorkId(t.workId),this.updateFullSelectWork(t);return}if(e&&(n!=null&&n.length)){const{bgRect:y,selectRect:O}=e.updateSelectIds(n),x={render:[],sp:[]};y&&((s=x.render)==null||s.push({rect:Yt(y),isClear:!0,isFullWork:!0,clearCanvas:St.Bg,drawCanvas:St.Bg,viewId:this.viewId})),(i=x.render)==null||i.push({rect:O,isClear:!0,isFullWork:!1,clearCanvas:St.Selector,drawCanvas:St.Selector,viewId:this.viewId}),(p=x.sp)==null||p.push({...t,selectorColor:((o=t.opt)==null?void 0:o.strokeColor)||e.selectorColor,strokeColor:((c=t.opt)==null?void 0:c.strokeColor)||e.strokeColor,fillColor:((m=t.opt)==null?void 0:m.fillColor)||e.fillColor,textOpt:((u=t.opt)==null?void 0:u.textOpt)||e.textOpt,canTextEdit:e.canTextEdit,canRotate:e.canRotate,scaleType:e.scaleType,type:lt.Select,selectRect:O,points:e.getChildrenPoints(),willSyncService:(t==null?void 0:t.willSyncService)||!1,opt:(t==null?void 0:t.willSyncService)&&e.getWorkOptions()||void 0,canLock:e.canLock,isLocked:e.isLocked,toolsTypes:e.toolsTypes,shapeOpt:e.shapeOpt}),this._post(x)}}destroy(){super.destroy(),this.effectSelectNodeData.clear(),this.batchEraserWorks.clear(),this.batchEraserRemoveNodes.clear()}drawPencilCombine(t){var n,a;const e=(n=this.workShapes.get(t))==null?void 0:n.combineConsume();if(e){const s={render:[],drawCount:this.drawCount};(a=s.render)==null||a.push({rect:(e==null?void 0:e.rect)&&Yt(e.rect),isClear:!0,drawCanvas:St.Float,clearCanvas:St.Float,isFullWork:!1,viewId:this.viewId}),this._post(s)}}drawSelector(t,e){var a,s;const n={render:[],sp:[t]};t.type===lt.Select&&!e&&((a=n.render)==null||a.push({rect:t.selectRect,drawCanvas:St.Selector,isClear:!0,clearCanvas:St.Selector,isFullWork:!1,viewId:this.viewId},{rect:t.rect&&Yt(t.rect),isClear:!0,clearCanvas:St.Float,isFullWork:!1,viewId:this.viewId},{rect:t.rect&&Yt(t.rect),drawCanvas:St.Bg,isClear:!0,clearCanvas:St.Bg,isFullWork:!0,viewId:this.viewId})),e&&((s=n.render)==null||s.push({rect:t.rect&&Yt(t.rect),drawCanvas:St.Float,isClear:!0,clearCanvas:St.Float,isFullWork:!1,viewId:this.viewId},{rect:t.rect&&Yt(t.rect),drawCanvas:St.Bg,isClear:!0,clearCanvas:St.Bg,isFullWork:!0,viewId:this.viewId})),this._post(n)}async drawEraser(t){var n,a;const e=[];if((n=t.newWorkDatas)!=null&&n.size){for(const s of t.newWorkDatas.values()){const i=s.workId.toString();this.batchEraserWorks.add(i),e.push({type:lt.FullWork,workId:i,ops:ne(s.op),opt:s.opt,toolsType:s.toolsType,updateNodeOpt:{useAnimation:!1}})}delete t.newWorkDatas}(a=t.removeIds)==null||a.forEach(s=>{this.batchEraserRemoveNodes.add(s)}),e.push(t),this._post({sp:e}),this.batchEraserCombine()}drawPencil(t){this._post({drawCount:this.drawCount,sp:(t==null?void 0:t.op)&&[t]})}drawPencilFull(t,e,n){var i;let a=(n==null?void 0:n.willClear)||(e==null?void 0:e.isOpacity)||!1;!a&&t.rect&&(a=this.vNodes.hasRectIntersectRange(t.rect));const s={drawCount:1/0,render:[{rect:t.rect,drawCanvas:St.Bg,isClear:a,clearCanvas:St.Bg,isFullWork:!0,viewId:this.viewId}],sp:[t]};(i=s.render)==null||i.push({isClearAll:!0,clearCanvas:St.Float,isFullWork:!1,viewId:this.viewId}),this._post(s)}updateBatchEraserCombineNode(t,e){const n=[];let a;for(const s of e.keys())this.fullLayer.getElementsByName(s).forEach(i=>{const o=i.getBoundingClientRect();a=Ot(a,{x:o.x-ae.SafeBorderPadding,y:o.y-ae.SafeBorderPadding,w:o.width+ae.SafeBorderPadding*2,h:o.height+ae.SafeBorderPadding*2}),i.remove()});return t.forEach(s=>{const i=this.vNodes.get(s);if(i)if(this.fullLayer.getElementsByName(s)[0])a=Ot(a,i.rect);else{const c=this.setFullWork({...i,workId:s}),m=c&&c.consumeService({op:i.op,isFullWork:!0});m&&(i.rect=m,a=Ot(a,m))}}),a&&n.push({rect:a,isClear:!0,isFullWork:!0,clearCanvas:St.Bg,drawCanvas:St.Bg,viewId:this.viewId}),n}async runEffectSelectWork(t){var e,n,a,s;for(const i of this.effectSelectNodeData.values()){const o=this.setFullWork(i);if(o){if(o.toolsType===gt.Image)await o.consumeServiceAsync({scene:(n=(e=this.drawLayer)==null?void 0:e.parent)==null?void 0:n.parent,isFullWork:!1,replaceId:(a=o.getWorkId())==null?void 0:a.toString()});else{const c=i.ops&&Ve(i.ops);o.consumeService({op:c,isFullWork:!1,replaceId:(s=o.getWorkId())==null?void 0:s.toString()})}i!=null&&i.updateNodeOpt&&o.updataOptService(i.updateNodeOpt),i.workId&&this.workShapes.delete(i.workId)}}this.reRenderSelector(t)}cursorHover(t){var i;const{opt:e,toolsType:n,point:a}=t,s=this.setFullWork({workId:Je,toolsType:n,opt:e});if(s&&a){const o=s.cursorHover(a),c={render:[]};o&&o.type===lt.CursorHover&&((i=c.render)==null||i.push({rect:o.rect&&Yt(o.rect),isClear:!0,clearCanvas:St.Bg,drawCanvas:St.Bg,isFullWork:!0,viewId:this.viewId}),this._post(c))}}}class eg{constructor(r){st(this,"viewId");st(this,"vNodes");st(this,"fullLayer");st(this,"drawLayer");st(this,"serviceDrawLayer");st(this,"workShapes",new Map);st(this,"selectorWorkShapes",new Map);st(this,"animationId");st(this,"willRunEffectSelectorIds",new Set);st(this,"runEffectId");st(this,"noAnimationRect");st(this,"post");this.viewId=r.viewId,this.vNodes=r.vNodes,this.fullLayer=r.fullLayer,this.drawLayer=r.drawLayer,this.serviceDrawLayer=r.serviceDrawLayer,this.post=r.post}destroy(){this.workShapes.clear(),this.selectorWorkShapes.clear(),this.willRunEffectSelectorIds.clear()}consumeDraw(r){this.activeWorkShape(r),this.runAnimation()}consumeFull(r){this.activeWorkShape(r),this.runAnimation()}clearAllWorkShapesCache(){this.workShapes.forEach((r,t)=>{r.toolsType===gt.LaserPen?setTimeout(()=>{this.workShapes.delete(t)},2e3):this.workShapes.delete(t)})}runSelectWork(r){this.activeSelectorShape(r);const{workId:t}=r,e=t==null?void 0:t.toString();e&&this.willRunEffectSelectorIds.add(e),this.runEffect()}setNodeKey(r,t,e){return r.toolsType=t,r.node=yr({toolsType:t,toolsOpt:e,vNodes:this.vNodes,fullLayer:this.fullLayer,drawLayer:this.serviceDrawLayer},this),r}runReverseSelectWork(r){r.forEach(t=>{this.selectorWorkShapes.forEach((e,n)=>{var a;if((a=e.selectIds)!=null&&a.length){const s=e.selectIds.indexOf(t);s>-1&&(e.selectIds.splice(s,1),this.willRunEffectSelectorIds.add(n))}})}),this.willRunEffectSelectorIds.size&&this.runEffect()}async removeWork(r){const{workId:t}=r,e=t==null?void 0:t.toString();if(e){const n=this.workShapes.get(e);if(n){this.workShapes.delete(e),await this.removeNode(e,r,n==null?void 0:n.totalRect,!1);return}await this.removeNode(e,r)}}removeSelectWork(r){const{workId:t}=r,e=t==null?void 0:t.toString();e&&(this.activeSelectorShape(r),this.willRunEffectSelectorIds.add(e)),this.runEffect()}async removeNode(r,t,e,n=!0){var i;r.indexOf(wt.selectorId)>-1&&this.removeSelectWork(t);let a=e;const s=(i=this.vNodes.get(r))==null?void 0:i.rect;s&&(a=Ot(s,a)),this.fullLayer.getElementsByName(r).forEach(o=>{o.remove()}),this.drawLayer.getElementsByName(r).forEach(o=>{o.remove()}),this.serviceDrawLayer.getElementsByName(r).forEach(o=>{o.remove()}),this.vNodes.delete(r),a&&await this.post({render:[{rect:Yt(a),isClear:!0,isFullWork:n,clearCanvas:n?St.Bg:St.ServiceFloat,drawCanvas:n?St.Bg:St.ServiceFloat,workerType:n?void 0:Tt.Service,viewId:this.viewId}]})}activeWorkShape(r){var y,O,x,v;const{workId:t,opt:e,toolsType:n,type:a,updateNodeOpt:s,ops:i,op:o,useAnimation:c}=r;if(!t)return;const m=t.toString(),u=(y=this.vNodes.get(m))==null?void 0:y.rect;if(!((O=this.workShapes)!=null&&O.has(m))){let T={toolsType:n,animationWorkData:o||[],animationIndex:0,type:a,updateNodeOpt:s,ops:i,useAnimation:typeof c<"u"?c:typeof(s==null?void 0:s.useAnimation)<"u"?s==null?void 0:s.useAnimation:!0,oldRect:u,isDiff:!1};n&&e&&(T=this.setNodeKey(T,n,e)),(x=this.workShapes)==null||x.set(m,T)}const p=(v=this.workShapes)==null?void 0:v.get(m);a&&(p.type=a),i&&(p.animationWorkData=Ve(i),p.ops=i),s&&(p.updateNodeOpt=s),o&&(p.isDiff=this.hasDiffData(p.animationWorkData||[],o,p.toolsType),p.animationWorkData=o),p.node&&p.node.getWorkId()!==m&&p.node.setWorkId(m),u&&(p.oldRect=u),n&&e&&(p.toolsType!==n&&n&&e&&this.setNodeKey(p,n,e),p.node&&p.node.setWorkOptions(e))}hasDiffData(r,t,e){const n=r.length;if(t.length<n)return!0;switch(e){case gt.Pencil:{for(let a=0;a<n;a+=3)if(t[a]!==r[a]||t[a+1]!==r[a+1])return!0;break}case gt.LaserPen:{for(let a=0;a<n;a+=2)if(t[a]!==r[a]||t[a+1]!==r[a+1])return!0;break}}return!1}async animationDraw(){var o,c,m,u,p,y,O,x,v,T,l,h,f,g,M,A,C,b,E,L,D,I,R,B,z,K,Q,_,j,G;this.animationId=void 0;let r=!1;const t=new Map,e=[],n=[],a=[],s=[];for(const[X,Z]of this.workShapes.entries())switch(Z.toolsType){case gt.Image:{const tt=Z.oldRect;tt&&a.push({rect:tt,isClear:!0,clearCanvas:St.Bg,viewId:this.viewId});const nt=await((c=Z.node)==null?void 0:c.consumeServiceAsync({isFullWork:!0,scene:(o=this.fullLayer.parent)==null?void 0:o.parent}));this.selectorWorkShapes.forEach((q,dt)=>{var ut;(ut=q.selectIds)!=null&&ut.includes(X)&&(this.willRunEffectSelectorIds.add(dt),this.noAnimationRect=Ot(this.noAnimationRect,tt),this.noAnimationRect=Ot(this.noAnimationRect,nt),this.runEffect())}),this.workShapes.delete(X),e.push({rect:nt,drawCanvas:St.Bg,isFullWork:!0,viewId:this.viewId});break}case gt.Text:{if(Z.node){const tt=Z.oldRect,nt=(m=Z.node)==null?void 0:m.consumeService({op:Z.animationWorkData||[],isFullWork:!0});this.selectorWorkShapes.forEach((q,dt)=>{var ut;(ut=q.selectIds)!=null&&ut.includes(X)&&(this.willRunEffectSelectorIds.add(dt),this.noAnimationRect=Ot(this.noAnimationRect,tt),this.noAnimationRect=Ot(this.noAnimationRect,nt),this.runEffect())}),(u=Z.node)==null||u.clearTmpPoints(),this.workShapes.delete(X)}break}case gt.Arrow:case gt.Straight:case gt.Rectangle:case gt.Ellipse:case gt.Star:case gt.Polygon:case gt.SpeechBalloon:{const tt=!!Z.ops;if((p=Z.animationWorkData)!=null&&p.length){const nt=Z.oldRect,q=Z.node.oldRect;nt&&(a.push({rect:nt,isClear:!0,clearCanvas:St.Bg,viewId:this.viewId}),e.push({rect:nt,drawCanvas:St.Bg,viewId:this.viewId})),q&&s.push({rect:q,isClear:!0,clearCanvas:St.ServiceFloat,viewId:this.viewId});const dt=(y=Z.node)==null?void 0:y.consumeService({op:Z.animationWorkData,isFullWork:tt});t.set(X,{workState:nt?Z.ops?It.Done:It.Doing:It.Start,op:Z.animationWorkData.filter((ut,W)=>{if(W%3!==2)return!0}).slice(-2)}),tt?(this.selectorWorkShapes.forEach((ut,W)=>{var F;(F=ut.selectIds)!=null&&F.includes(X)&&(this.willRunEffectSelectorIds.add(W),this.noAnimationRect=Ot(this.noAnimationRect,nt),this.noAnimationRect=Ot(this.noAnimationRect,q),this.noAnimationRect=Ot(this.noAnimationRect,dt),this.runEffect())}),(O=Z.node)==null||O.clearTmpPoints(),this.workShapes.delete(X),e.push({rect:dt,drawCanvas:St.Bg,isFullWork:tt,viewId:this.viewId}),t.set(X,{workState:It.Done,op:Z.animationWorkData.filter((ut,W)=>{if(W%3!==2)return!0}).slice(-2)})):n.push({rect:dt,drawCanvas:St.ServiceFloat,workerType:tt?void 0:Tt.Service,isFullWork:tt,viewId:this.viewId}),Z.animationWorkData.length=0}break}case gt.Pencil:{if(!Z.useAnimation&&Z.ops){let tt=(x=Z.node)==null?void 0:x.consumeService({op:Z.animationWorkData||[],isFullWork:!0,replaceId:X});const nt=(v=Z.node)==null?void 0:v.updataOptService(Z.updateNodeOpt);tt=Ot(tt,nt),a.push({rect:Ot(Z.oldRect,tt),clearCanvas:St.Bg,viewId:this.viewId}),e.push({rect:Ot(Z.oldRect,tt),drawCanvas:St.Bg,viewId:this.viewId}),this.selectorWorkShapes.forEach((q,dt)=>{var ut;(ut=q.selectIds)!=null&&ut.includes(X)&&(this.willRunEffectSelectorIds.add(dt),this.noAnimationRect=Ot(this.noAnimationRect,tt),this.runEffect())}),(T=Z.node)==null||T.clearTmpPoints(),this.workShapes.delete(X)}else if(Z.useAnimation){const nt=this.computNextAnimationIndex(Z,3),q=Z.isDiff?0:Math.max(0,(Z.animationIndex||0)-3),dt=(Z.animationWorkData||[]).slice(q,nt);if(Z.isDel)Z.isDel&&((b=Z.node)==null||b.clearTmpPoints(),this.workShapes.delete(X));else{if((Z.animationIndex||0)<nt||Z.isDiff){const ut=(h=Z.node)==null?void 0:h.consumeService({op:dt,isFullWork:!1,replaceId:(l=Z.node.getWorkId())==null?void 0:l.toString()});if(n.push({rect:ut,drawCanvas:St.ServiceFloat,viewId:this.viewId}),Z.animationIndex=nt,Z.isDiff&&(Z.isDiff=!1),dt.length){const W=dt.filter((F,V)=>{if(V%3!==2)return!0}).slice(-2);t.set(X,{workState:q===0?It.Start:nt===((f=Z.animationWorkData)==null?void 0:f.length)?It.Done:It.Doing,op:W})}}else if(Z.ops){const ut=(M=Z.node)==null?void 0:M.consumeService({op:Z.animationWorkData||[],isFullWork:!0,replaceId:(g=Z.node.getWorkId())==null?void 0:g.toString()});Z.isDel=!0,s.push({rect:ut,clearCanvas:St.ServiceFloat,viewId:this.viewId}),(A=Z.node)!=null&&A.getWorkOptions().isOpacity&&a.push({rect:ut,clearCanvas:St.Bg,viewId:this.viewId}),e.push({rect:ut,drawCanvas:St.Bg,viewId:this.viewId}),this.vNodes.setInfo(X,{op:Z.animationWorkData,opt:(C=Z.node)==null?void 0:C.getWorkOptions(),toolsType:Z.toolsType,rect:ut}),t.set(X,{workState:It.Done,op:dt.filter((W,F)=>{if(F%3!==2)return!0}).slice(-2)})}r=!0}break}break}case gt.LaserPen:{const nt=this.computNextAnimationIndex(Z,2),q=Math.max(0,(Z.animationIndex||0)-2),dt=(Z.animationWorkData||[]).slice(q,nt);if(Z.isDel){if(Z.isDel){const ut=(B=Z.node)==null?void 0:B.consumeService({op:[],isFullWork:!1});Z.totalRect=Ot(Z.totalRect,ut),s.push({rect:Z.totalRect,clearCanvas:St.ServiceFloat,viewId:this.viewId}),n.push({rect:Z.totalRect,drawCanvas:St.ServiceFloat,viewId:this.viewId}),(z=Z.node)==null||z.clearTmpPoints(),this.workShapes.delete(X)}}else{if((Z.animationIndex||0)<nt){const ut=(L=Z.node)==null?void 0:L.consumeService({op:dt,isFullWork:!1,replaceId:(E=Z.node.getWorkId())==null?void 0:E.toString()});Z.totalRect=Ot(Z.totalRect,ut),Z.timer&&(clearTimeout(Z.timer),Z.timer=void 0),Z.animationIndex=nt,dt.length&&t.set(X,{workState:q===0?It.Start:nt===((D=Z.animationWorkData)==null?void 0:D.length)?It.Done:It.Doing,op:dt.slice(-2)})}else{Z.timer||(Z.timer=setTimeout(()=>{Z.timer=void 0,Z.isDel=!0,this.runAnimation()},((I=Z.node)==null?void 0:I.getWorkOptions()).duration*1e3+100),t.set(X,{workState:It.Done,op:[]}));const ut=(R=Z.node)==null?void 0:R.consumeService({op:[],isFullWork:!1});Z.totalRect=Ot(Z.totalRect,ut)}s.push({rect:Z.totalRect,clearCanvas:St.ServiceFloat,viewId:this.viewId}),n.push({rect:Z.totalRect,drawCanvas:St.ServiceFloat,viewId:this.viewId}),r=!0}break}}r&&this.runAnimation();const i={render:[]};if(a.length){const X=a.reduce((Z,tt)=>(tt.rect&&tt.clearCanvas===St.Bg&&(Z.rect=Ot(Z.rect,tt.rect)),Z),{isClear:!0,clearCanvas:St.Bg,viewId:this.viewId});X.rect&&(X.rect=X.rect&&Yt(X.rect),(K=i.render)==null||K.push(X))}if(s.length){const X=s.reduce((Z,tt)=>(tt.rect&&tt.clearCanvas===St.ServiceFloat&&(Z.rect=Ot(Z.rect,tt.rect)),Z),{isClear:!0,clearCanvas:St.ServiceFloat,workerType:Tt.Service,viewId:this.viewId});X.rect&&(X.rect=X.rect&&Yt(X.rect),(Q=i.render)==null||Q.push(X))}if(e.length){const X=e.reduce((Z,tt)=>(tt.rect&&tt.drawCanvas===St.Bg&&(Z.rect=Ot(Z.rect,tt.rect)),Z),{isFullWork:!0,drawCanvas:St.Bg,viewId:this.viewId});X.rect&&(X.rect=X.rect&&Yt(X.rect),(_=i.render)==null||_.push(X))}if(n.length){const X=n.reduce((Z,tt)=>(tt.rect&&tt.drawCanvas===St.ServiceFloat&&(Z.rect=Ot(Z.rect,tt.rect)),Z),{isFullWork:!1,drawCanvas:St.ServiceFloat,workerType:Tt.Service,viewId:this.viewId});X.rect&&(X.rect=X.rect&&Yt(X.rect),(j=i.render)==null||j.push(X))}t.size&&(i.sp=[],t.forEach((X,Z)=>{var tt;(tt=i.sp)==null||tt.push({type:lt.Cursor,uid:Z.split(Vh)[0],op:X.op,workState:X.workState,viewId:this.viewId})})),(G=i.render)!=null&&G.length&&this.post(i)}runAnimation(){this.animationId||(this.animationId=requestAnimationFrame(this.animationDraw.bind(this)))}computNextAnimationIndex(r,t){var n;const e=Math.floor((r.animationWorkData||[]).slice(r.animationIndex).length*32/t/(((n=r.node)==null?void 0:n.syncUnitTime)||1e3))*t;return Math.min((r.animationIndex||0)+(e||t),(r.animationWorkData||[]).length)}runEffect(){this.runEffectId||(this.runEffectId=setTimeout(this.effectRunSelector.bind(this),0))}effectRunSelector(){this.runEffectId=void 0;let r=this.noAnimationRect;this.willRunEffectSelectorIds.forEach(t=>{var a,s;const e=this.selectorWorkShapes.get(t),n=e&&e.selectIds&&((a=e.node)==null?void 0:a.selectServiceNode(t,e,!0));r=Ot(r,n),(s=e==null?void 0:e.selectIds)!=null&&s.length||this.selectorWorkShapes.delete(t)}),r&&this.post({render:[{rect:Yt(r),drawCanvas:St.Bg,isClear:!0,clearCanvas:St.Bg,isFullWork:!0,viewId:this.viewId}]}),this.willRunEffectSelectorIds.clear(),this.noAnimationRect=void 0}activeSelectorShape(r){var c,m,u;const{workId:t,opt:e,toolsType:n,type:a,selectIds:s}=r;if(!t)return;const i=t.toString();if(!((c=this.selectorWorkShapes)!=null&&c.has(i))){let p={toolsType:n,selectIds:s,type:a,opt:e};n&&e&&(p=this.setNodeKey(p,n,e)),(m=this.selectorWorkShapes)==null||m.set(i,p)}const o=(u=this.selectorWorkShapes)==null?void 0:u.get(i);a&&(o.type=a),o.node&&o.node.getWorkId()!==i&&o.node.setWorkId(i),o.selectIds=s||[]}}class rg extends Zn{constructor(t){super(t);st(this,"animationWorkRects",new Map);st(this,"combineDrawTimer");st(this,"animationId");st(this,"closeAnimationTime",1100);st(this,"runLaserPenStep",0)}async runFullWork(t,e){var s,i;const n=this.setFullWork(t),a=t.ops&&Ve(t.ops);if(n){let o;n.toolsType===gt.Image?o=await n.consumeServiceAsync({isFullWork:!0,scene:(s=this.fullLayer.parent)==null?void 0:s.parent}):o=n.consumeService({op:a,isFullWork:!0,replaceId:(i=n.getWorkId())==null?void 0:i.toString(),isDrawLabel:e});const c=(t==null?void 0:t.updateNodeOpt)&&n.updataOptService(t.updateNodeOpt);return t.workId&&this.workShapes.delete(t.workId),c||o}}runSelectWork(t){var n;const e=this.setFullWork(t);e&&((n=t.selectIds)!=null&&n.length)&&t.workId&&e.selectServiceNode(t.workId.toString(),{selectIds:t.selectIds},!1)}consumeDraw(t){var a;const{op:e,workId:n}=t;if(e!=null&&e.length&&n){const s=this.workShapes.get(n);if(!s)return;const i=s.toolsType,o=s.consume({data:t,isFullWork:!1,isClearAll:!0,isSubWorker:!0});switch(i){case gt.LaserPen:o!=null&&o.rect&&((a=this.animationWorkRects)==null||a.set(n,{res:o,canDel:!1,isRect:!0})),this.runLaserPenAnimation();break;case gt.Arrow:case gt.Straight:case gt.Ellipse:case gt.Rectangle:case gt.Star:case gt.Polygon:case gt.SpeechBalloon:o&&(this.drawCount++,this.drawArrow(o));break;case gt.Pencil:o&&(this.drawCount++,this.drawPencil(o));break}}}consumeDrawAll(t){var n,a;const{workId:e}=t;if(e){const s=this.workShapes.get(e);if(!s)return;switch(s.toolsType){case gt.LaserPen:if(this.animationId){const o=s.consumeAll({data:t});o!=null&&o.op&&o!=null&&o.rect&&((n=this.animationWorkRects)==null||n.set(e,{res:o,canDel:!1,isRect:!0}),this.runLaserPenAnimation(o));const c=(a=s.getWorkOptions())==null?void 0:a.duration;this.closeAnimationTime=c?c*1e3+100:this.closeAnimationTime,setTimeout(()=>{var u;this.fullLayer.getElementsByName(e.toString()).map(p=>p.remove()),this.clearWorkShapeNodeCache(e);const m=(u=this.animationWorkRects)==null?void 0:u.get(e);m&&(m.canDel=!0),setTimeout(()=>{this._post({sp:[{removeIds:[e.toString()],type:lt.RemoveNode}]})},s.getWorkOptions().syncUnitTime||this.closeAnimationTime)},this.closeAnimationTime)}break;case gt.Arrow:case gt.Straight:case gt.Ellipse:case gt.Pencil:case gt.Rectangle:case gt.Star:case gt.Polygon:case gt.SpeechBalloon:this.drawCount=0,this.fullLayer.removeAllChildren(),this.clearWorkShapeNodeCache(e);break}}}updateLabels(t,e){t.children.forEach(n=>{if(n.tagName==="LABEL"){const a=n.name,{width:s}=n.getBoundingClientRect(),[i]=t.worldScaling,{underline:o,lineThrough:c}=e.opt;o&&t.getElementsByName(`${a}_underline`)[0].attr({points:[0,0,s/i,0]}),c&&t.getElementsByName(`${a}_lineThrough`)[0].attr({points:[0,0,s/i,0]})}})}runLaserPenAnimation(t){this.animationId||(this.animationId=requestAnimationFrame(()=>{var a,s;if(this.animationId=void 0,this.runLaserPenStep++,this.runLaserPenStep>1){this.runLaserPenStep=0,this.runLaserPenAnimation(t);return}let e;const n=[];(a=this.animationWorkRects)==null||a.forEach((i,o,c)=>{i.isRect&&(e=Ot(e,i.res.rect)),i.res.workId&&n.push(i.res),this.fullLayer.getElementsByName(o.toString()).length?i.isRect=!0:i.isRect=!1,i.canDel&&c.delete(o)}),(s=this.animationWorkRects)!=null&&s.size&&this.runLaserPenAnimation(),e&&(t&&n.push(t),this._post({render:[{rect:Yt(e),drawCanvas:St.Float,isClear:!0,clearCanvas:St.Float,isFullWork:!1,viewId:this.viewId}],sp:n}))}))}drawPencil(t){this._post({drawCount:this.drawCount,render:[{rect:t==null?void 0:t.rect,drawCanvas:St.Float,isClear:!1,isFullWork:!1,viewId:this.viewId}],sp:(t==null?void 0:t.op)&&[t]})}drawArrow(t){this._post({drawCount:this.drawCount,render:[{rect:(t==null?void 0:t.rect)&&Yt(t.rect),drawCanvas:St.Float,isClear:!0,clearCanvas:St.Float,isFullWork:!1,viewId:this.viewId}]})}}var qn=(d=>(d.Full="full",d.Sub="sub",d))(qn||{});class ng{constructor(r,t){st(this,"_self");st(this,"type");st(this,"workThreadMap",new Map);this._self=r,this.type=t,this.register()}init(r){const{viewId:t,dpr:e,offscreenCanvasOpt:n,layerOpt:a,isSafari:s}=r;if(!e||!n||!a)return;let i;this.type==="full"&&(i=new ig(t,{dpr:e,offscreenCanvasOpt:n,layerOpt:a},this.post.bind(this))),this.type==="sub"&&(i=new sg(t,{dpr:e,offscreenCanvasOpt:n,layerOpt:a},this.post.bind(this))),i&&s&&i.setIsSafari(s),i&&r.cameraOpt&&i.setCameraOpt(r.cameraOpt),i&&this.workThreadMap.set(t,i)}register(){onmessage=r=>{const t=r.data;if(t)for(const e of t.values()){const{msgType:n,viewId:a,tasksqueue:s,mainTasksqueueCount:i}=e;if(n===lt.Init){this.init(e);continue}if(n===lt.TasksQueue&&(s!=null&&s.size)&&i){this.workThreadMap.forEach((c,m)=>{const u=s.get(m);u&&c.on(u),this.post({workerTasksqueueCount:i})});continue}if(a===Xh){this.workThreadMap.forEach(c=>{c.on(e),n===lt.Destroy&&this.workThreadMap.delete(a)});continue}const o=this.workThreadMap.get(a);o&&(o.on(e),n===lt.Destroy&&this.workThreadMap.delete(a))}}}post(r,t){t?this._self.postMessage(r,t):this._self.postMessage(r)}}class ig extends Xn{constructor(t,e,n){super(t,e);st(this,"serviceDrawLayer");st(this,"drawLayer");st(this,"snapshotFullLayer");st(this,"methodBuilder");st(this,"localWork");st(this,"serviceWork");st(this,"_post");this._post=n,this.serviceDrawLayer=this.createLayer("serviceDrawLayer",this.scene,{...e.layerOpt,bufferSize:1e3}),this.drawLayer=this.createLayer("drawLayer",this.scene,{...e.layerOpt,bufferSize:1e3});const a={thread:this,viewId:this.viewId,vNodes:this.vNodes,fullLayer:this.fullLayer,drawLayer:this.drawLayer,post:this.post.bind(this)};this.localWork=new tg(a),this.serviceWork=new eg({...a,serviceDrawLayer:this.serviceDrawLayer}),this.methodBuilder=new v0([Lt.CopyNode,Lt.SetColorNode,Lt.DeleteNode,Lt.RotateNode,Lt.ScaleNode,Lt.TranslateNode,Lt.ZIndexActive,Lt.ZIndexNode,Lt.SetFontStyle,Lt.SetPoint,Lt.SetLock,Lt.SetShapeOpt]).registerForWorker(this.localWork,this.serviceWork,this.scene),this.vNodes.init(this.fullLayer,this.drawLayer)}async post(t,e){var o,c,m;const n=t.render,a=[];let s=e;if(n!=null&&n.length){for(const u of n){if(u.isClearAll&&(u.rect=this.getSceneRect(),u.isClear=!0,delete u.isClearAll),u.drawCanvas){const p=this.getLayer(u.isFullWork,u.workerType);if((p==null?void 0:p.parent).render(),u.isDrawAll){const y=this.getSceneRect(),{rectRange:O}=this.vNodes.getRectIntersectRange(y,!1);u.rect=O,delete u.isDrawAll}}if(u.rect){u.clearCanvas===u.drawCanvas&&u.drawCanvas===St.Bg&&(u.rect=this.checkRightRectBoundingBox(u.rect));const p=u.drawCanvas===St.Selector&&u.rect;if(u.drawCanvas&&(u.rect=this.safariFixRect(Zt(u.rect))),!u.rect)continue;if(u.drawCanvas===St.Selector){const y=(o=t.sp)==null?void 0:o.find(O=>O.type===lt.Select);y&&(y.rect=u.rect),p&&(u.offset={x:u.rect.x-p.x,y:u.rect.y-p.y})}if(u.drawCanvas){const y=await this.getRectImageBitmap(u.rect,!!u.isFullWork,u.workerType);u.imageBitmap=y,s||(s=[]),s.push(y)}a.push(u)}}t.render=a}const i=(c=t.sp)==null?void 0:c.filter(u=>u.type!==lt.None||Object.keys(u).filter(p=>p==="type").length);if(i!=null&&i.length&&(t.sp=i.map(u=>({...u,viewId:this.viewId}))),(t.drawCount||t.workerTasksqueueCount||(m=t.sp)!=null&&m.length||a!=null&&a.length)&&(this._post(t,s),s!=null&&s.length))for(const u of s)u instanceof ImageBitmap&&u.close()}on(t){if(this.methodBuilder.consumeForWorker(t))return;const{msgType:e,dataType:n,workId:a}=t;switch(e){case lt.UpdateCamera:this.updateCamera(t);break;case lt.Select:n===Tt.Service&&(a===wt.selectorId?this.localWork.updateFullSelectWork(t):this.serviceWork.runSelectWork(t));break;case lt.UpdateNode:case lt.FullWork:this.consumeFull(n,t);break;case lt.RemoveNode:this.removeNode(t);break;case lt.GetTextActive:this.checkTextActive(t);break;case lt.CursorHover:this.cursorHover(t)}super.on(t)}async removeNode(t){const{dataType:e,workId:n}=t;if(n===wt.selectorId){await this.localWork.blurSelector(t);return}e===Tt.Local&&(await this.localWork.removeWork(t),await this.localWork.colloctEffectSelectWork(t)),e===Tt.Service&&(await this.serviceWork.removeWork(t),this.localWork.colloctEffectSelectWork(t))}checkTextActive(t){const{dataType:e}=t;e===Tt.Local&&this.localWork.checkTextActive(t)}clearAll(){this.vNodes.clear(),super.clearAll(),this.serviceDrawLayer&&(this.serviceDrawLayer.parent.children.forEach(t=>{t.name!=="viewport"&&t.remove()}),this.serviceDrawLayer.removeAllChildren()),this.post({render:[{isClearAll:!0,clearCanvas:St.Bg,isFullWork:!0,viewId:this.viewId},{isClearAll:!0,clearCanvas:St.Float,isFullWork:!1,viewId:this.viewId},{isClearAll:!0,clearCanvas:St.ServiceFloat,isFullWork:!1,viewId:this.viewId}],sp:[{type:lt.Clear}]})}updateLayer(t){const{width:e,height:n}=t;super.updateLayer(t),this.serviceDrawLayer&&(this.serviceDrawLayer.parent.setAttribute("width",e),this.serviceDrawLayer.parent.setAttribute("height",n),this.serviceDrawLayer.setAttribute("size",[e,n]),this.serviceDrawLayer.setAttribute("pos",[e*.5,n*.5]))}setCameraOpt(t){this.cameraOpt=t;const{scale:e,centerX:n,centerY:a,width:s,height:i}=t;(s!==this.scene.width||i!==this.scene.height)&&this.updateScene({width:s,height:i}),this.fullLayer&&(this.fullLayer.setAttribute("scale",[e,e]),this.fullLayer.setAttribute("translate",[-n,-a])),this.drawLayer&&(this.drawLayer.setAttribute("scale",[e,e]),this.drawLayer.setAttribute("translate",[-n,-a])),this.serviceDrawLayer&&(this.serviceDrawLayer.setAttribute("scale",[e,e]),this.serviceDrawLayer.setAttribute("translate",[-n,-a]))}getLayer(t,e){return t?this.fullLayer:e&&e===Tt.Service?this.serviceDrawLayer:this.drawLayer}getOffscreen(t,e){return this.getLayer(t,e).parent.canvas}async consumeFull(t,e){const n=await this.localWork.colloctEffectSelectWork(e);n&&t===Tt.Local&&await this.localWork.consumeFull(n,this.scene),n&&t===Tt.Service&&this.serviceWork.consumeFull(n)}consumeDraw(t,e){t===Tt.Local&&this.localWork.consumeDraw(e,this.serviceWork),t===Tt.Service&&this.serviceWork.consumeDraw(e)}consumeDrawAll(t,e){t===Tt.Local&&this.localWork.consumeDrawAll(e,this.serviceWork)}updateCamera(t){var a;const e=[],{cameraOpt:n}=t;if(n&&!vr(this.cameraOpt,n)){const s=this.localWork.getWorkShape(Je);if(s&&((a=s.selectIds)!=null&&a.length)&&s.cursorBlur(),this.setCameraOpt(n),this.localWork.workShapes.forEach((i,o)=>{(i.toolsType===gt.Pencil||i.toolsType===gt.Arrow||i.toolsType===gt.Straight||i.toolsType===gt.Ellipse||i.toolsType===gt.Rectangle||i.toolsType===gt.Star||i.toolsType===gt.Polygon||i.toolsType===gt.SpeechBalloon||i.toolsType===gt.Text)&&this.localWork.workShapeState.set(o,{willClear:!0})}),this.vNodes.curNodeMap.size&&(this.vNodes.updateNodesRect(),this.localWork.reRenderSelector(),this.serviceWork.selectorWorkShapes.size))for(const[i,o]of this.serviceWork.selectorWorkShapes.entries())this.serviceWork.runSelectWork({workId:i,selectIds:o.selectIds,msgType:lt.Select,dataType:Tt.Service,viewId:this.viewId});this.vNodes.hasRenderNodes()&&e.push({isClearAll:!0,clearCanvas:St.Bg,isFullWork:!0,viewId:this.viewId},{isClearAll:!0,clearCanvas:St.Float,isFullWork:!1,viewId:this.viewId},{isClearAll:!0,clearCanvas:St.ServiceFloat,isFullWork:!1,viewId:this.viewId},{isDrawAll:!0,drawCanvas:St.Bg,isFullWork:!0,viewId:this.viewId}),e.length&&this.post({render:e})}}getRectImageBitmap(t,e,n){const a=t.x*this.dpr,s=t.y*this.dpr,i=t.w*this.dpr,o=t.h*this.dpr;return createImageBitmap(this.getOffscreen(e,n),a,s,i,o)}safariFixRect(t){if(t.x>this.scene.width||t.y>this.scene.height||t.w+t.x<=0||t.h+t.y<=0||t.w<=0||t.h<=0)return;const e={x:Math.floor(Math.max(0,t.x)),y:Math.floor(Math.max(0,t.y)),w:Math.floor(Math.min(this.scene.width,t.w)),h:Math.floor(Math.min(this.scene.height,t.h))};if(t.x+t.w<this.scene.width&&(e.w=Math.floor(t.x+t.w-e.x)),t.y+t.h<this.scene.height&&(e.h=Math.floor(t.y+t.h-e.y)),!(e.w<=0||e.h<=0))return e}getSceneRect(){const{width:t,height:e}=this.scene;return{x:0,y:0,w:Math.floor(t),h:Math.floor(e)}}checkRightRectBoundingBox(t){return this.vNodes.combineIntersectRect(t)}cursorHover(t){this.localWork.cursorHover(t)}}class sg extends Xn{constructor(t,e,n){super(t,e);st(this,"_post");st(this,"drawLayer");st(this,"snapshotFullLayer");st(this,"serviceWork");st(this,"localWork");this._post=n;const a={thread:this,viewId:this.viewId,vNodes:this.vNodes,fullLayer:this.fullLayer,drawLayer:this.drawLayer,post:this.post.bind(this)};this.localWork=new rg(a),this.vNodes.init(this.fullLayer,this.drawLayer)}async post(t,e){var o,c;const n=t.render,a=[];let s=e;if(n!=null&&n.length){for(const m of n)if(m.drawCanvas&&this.fullLayer.parent.render(),m.rect){if(m.rect=this.safariFixRect(Zt(m.rect)),!m.rect)continue;if(m.drawCanvas){const u=await this.getRectImageBitmap(m.rect,!!m.isFullWork);m.imageBitmap=u,s||(s=[]),s.push(u)}a.push(m)}t.render=a}const i=(o=t.sp)==null?void 0:o.filter(m=>m.type!==lt.None||Object.keys(m).filter(u=>u==="type").length);if(i!=null&&i.length&&(t.sp=i.map(m=>({...m,viewId:this.viewId}))),((c=t.sp)!=null&&c.length||t.drawCount||a!=null&&a.length)&&(this._post(t,s),s!=null&&s.length))for(const m of s)m instanceof ImageBitmap&&m.close()}on(t){const{msgType:e}=t;switch(e){case lt.UpdateCamera:this.updateCamera(t);break;case lt.Snapshot:this.snapshotFullLayer=this.createLayer("snapshotFullLayer",this.scene,{...this.opt.layerOpt,bufferSize:this.viewId==="mainView"?6e3:3e3}),this.snapshotFullLayer&&this.getSnapshot(t).then(()=>{this.snapshotFullLayer=void 0});break;case lt.BoundingBox:this.snapshotFullLayer=this.createLayer("snapshotFullLayer",this.scene,{...this.opt.layerOpt,bufferSize:this.viewId==="mainView"?6e3:3e3}),this.snapshotFullLayer&&this.getBoundingRect(t).then(()=>{this.snapshotFullLayer=void 0});break}super.on(t)}getOffscreen(t){var e;return(e=(t&&this.snapshotFullLayer||this.fullLayer).parent)==null?void 0:e.canvas}consumeDraw(t,e){t===Tt.Local&&this.localWork.consumeDraw(e)}consumeDrawAll(t,e){this.localWork.consumeDrawAll(e)}getRectImageBitmap(t,e=!1,n){const a=t.x*this.dpr,s=t.y*this.dpr,i=t.w*this.dpr,o=t.h*this.dpr;return createImageBitmap(this.getOffscreen(e),a,s,i,o,n)}safariFixRect(t){if(t.w+t.x<=0||t.h+t.y<=0||t.w<=0||t.h<=0)return;const e={x:0,y:0,w:Math.floor(this.scene.width),h:Math.floor(this.scene.height)};if(t.x<0?t.w+t.x<this.scene.width&&(e.w=t.w+t.x):t.w+t.x>0&&(e.x=t.x,e.w=Math.floor(this.scene.width-t.x)),t.y<0?t.h+t.y<this.scene.height&&(e.h=t.h+t.y):t.h+t.y>0&&(e.y=t.y,e.h=Math.floor(this.scene.height-t.y)),!(e.w<=0||e.h<=0))return e}updateCamera(t){const{cameraOpt:e}=t;e&&this.setCameraOpt(e)}setCameraOpt(t,e){this.cameraOpt=t;const{scale:n,centerX:a,centerY:s,width:i,height:o}=t;(i!==this.scene.width||o!==this.scene.height)&&this.updateScene({width:i,height:o}),e?(e.setAttribute("scale",[n,n]),e.setAttribute("translate",[-a,-s])):(this.fullLayer.setAttribute("scale",[n,n]),this.fullLayer.setAttribute("translate",[-a,-s]))}async getSnapshot(t){const{scenePath:e,scenes:n,cameraOpt:a,w:s,h:i,maxZIndex:o}=t;if(e&&n&&a&&this.snapshotFullLayer){const c=Zt(this.cameraOpt);this.setCameraOpt(a,this.snapshotFullLayer),this.localWork.fullLayer=this.snapshotFullLayer,this.localWork.drawLayer=this.fullLayer;let m;const u=new Map;for(const[y,O]of Object.entries(n))if(O!=null&&O.type)switch(O==null?void 0:O.type){case lt.UpdateNode:case lt.FullWork:{const{toolsType:x,opt:v}=O;x===gt.Text&&v&&(v.zIndex=v.zIndex+(o||0),(v.lineThrough||v.underline)&&u.set(y,O));const T=await this.localWork.runFullWork({...O,opt:v,workId:y,msgType:lt.FullWork,dataType:Tt.Service,viewId:this.viewId},x===gt.Text);m=Ot(m,T);break}}this.localWork.fullLayer=this.fullLayer,this.localWork.drawLayer=void 0;let p;s&&i&&(p={resizeWidth:s,resizeHeight:i}),u.size&&(await new Promise(y=>{setTimeout(y,500)}),this.willRenderSpecialLabel(u)),await this.getSnapshotRender({scenePath:e,curCameraOpt:c,options:p})}}willRenderSpecialLabel(t){var e;for(const[n,a]of t.entries()){const s=(e=this.snapshotFullLayer)==null?void 0:e.getElementsByName(n)[0];s&&a.opt&&this.localWork.updateLabels(s,a)}}async getSnapshotRender(t){var i,o;const{scenePath:e,curCameraOpt:n,options:a}=t;((i=this.snapshotFullLayer)==null?void 0:i.parent).render();const s=await this.getRectImageBitmap({x:0,y:0,w:this.scene.width,h:this.scene.height},!0,a);s&&(await this.post({sp:[{type:lt.Snapshot,scenePath:e,imageBitmap:s}]},[s]),s.close(),(o=this.snapshotFullLayer)==null||o.removeAllChildren(),this.setCameraOpt(n,this.fullLayer))}async getBoundingRect(t){const{scenePath:e,scenes:n,cameraOpt:a}=t;if(e&&n&&a&&this.snapshotFullLayer){const s=Zt(this.cameraOpt);this.setCameraOpt(a,this.snapshotFullLayer),this.localWork.fullLayer=this.snapshotFullLayer,this.localWork.drawLayer=this.drawLayer;let i;for(const[o,c]of Object.entries(n))if(c!=null&&c.type)switch(c==null?void 0:c.type){case lt.UpdateNode:case lt.FullWork:{const m=await this.localWork.runFullWork({...c,workId:o,msgType:lt.FullWork,dataType:Tt.Service,viewId:this.viewId});i=Ot(i,m);break}}i&&await this.post({sp:[{type:lt.BoundingBox,scenePath:e,rect:i}]}),this.localWork.fullLayer=this.fullLayer,this.localWork.drawLayer=void 0,this.snapshotFullLayer.removeAllChildren(),this.setCameraOpt(s,this.fullLayer)}}}const og=self;new ng(og,qn.Full)})();