@next2d/player 3.0.3 → 3.0.4

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.
Files changed (3) hide show
  1. package/next2d.js +2 -2
  2. package/package.json +16 -16
  3. package/src/index.js +1 -1
package/next2d.js CHANGED
@@ -2336,7 +2336,7 @@ fn main(
2336
2336
  }
2337
2337
  \`}getPipeline(e){return this.pipelines.get(e)}getBindGroupLayout(e){return this.bindGroupLayouts.get(e)}destroy(){this.pipelines.clear(),this.bindGroupLayouts.clear()}}const Va=Number.MAX_VALUE,Da=-Number.MAX_VALUE;let Fr=0;const wr=t=>{Fr=t},Zp=()=>Fr,zt=[],Jp=t=>{zt[Fr]=t};let go=null;const em=t=>{go=t},We=()=>{if(!(Fr in zt))if(go){const t=go(Fr);Jp(t)}else return null;return zt[Fr]},bo=t=>t in zt?zt[t]:null,fn=[],Na=[],za=[],tm=()=>{for(let t=0;t<Na.length;++t){const e=Na[t];e&&(e[0]=e[1]=Va,e[2]=e[3]=Da)}for(let t=0;t<za.length;++t){const e=za[t];e&&(e[0]=e[1]=Va,e[2]=e[3]=Da)}};let Xa=0;const xo=t=>{Xa=t},yo=()=>Xa,rm=()=>{fn.length=0,wr(0);for(let t=0;t<zt.length;t++){const e=zt[t];e&&(e.texture&&e.texture.resource.destroy(),e.stencil&&e.stencil.resource.destroy(),e.msaaTexture&&e.msaaTexture.resource.destroy(),e.msaaStencil&&e.msaaStencil.resource.destroy())}zt.length=0,tm(),xo(0)};class nm{count;constructor(){this.count=0}clear(){this.count=Ve.offset=0}}let ts="normal";const Ya=t=>{ts=t},sm=new Set(["normal","layer","add","screen","alpha","erase","copy"]),hn=[],vo=[],Mo=[],om=()=>hn,So=()=>{for(let t=0;t<hn.length;t++){const e=hn[t];vo.push(e.color_transform),Mo.push(e.matrix)}hn.length=0},$o=new Map,rs=()=>{const t="blend_instanced";return $o.has(t)||$o.set(t,new nm),$o.get(t)},im=(t,e,r,n,s,o,i,l,c,u,a,h)=>{const d=o[0],m=o[1],g=o[2],f=h,b=o[4]/255,x=o[5]/255,y=o[6]/255,P=0;if(sm.has(l)){(ts!==l||yo()!==t.index)&&(st&&(wr(yo()),st.drawArraysInstanced()),Ya(l),xo(t.index),wr(t.index));const S=rs();Ve.pushInstanceBuffer((t.x+.5)/a,(t.y+.5)/a,(t.w-1)/a,(t.h-1)/a,t.w,t.h,c,u,i[6],i[7],0,0,i[0],i[1],i[3],i[4],d,m,g,f,b,x,y,P),S.count++}else{st&&(wr(yo()),st.drawArraysInstanced());const S=vo.length>0?vo.pop():new Float32Array(8);S.set(o);const M=Mo.length>0?Mo.pop():new Float32Array(9);M.set(i),hn.push({node:t,x_min:e,y_min:r,x_max:n,y_max:s,color_transform:S,matrix:M,blend_mode:l,viewport_width:c,viewport_height:u,render_max_size:a,global_alpha:h}),Ya(l),xo(t.index),wr(t.index)}};let To=!1;const Bo=t=>{To=t},nr=()=>To;let Po=!1,Ao=0;const Wa=t=>{Po=t},gt=()=>Po,ja=t=>{Ao=t},Or=()=>Ao,Er=new Map,Rr=new Map,am=()=>{To=!1,Po=!1,Ao=0,Er.clear(),Rr.clear()},cm=()=>{const t=st.currentAttachmentObject;t&&(t.mask=!0,t.clipLevel++,Rr.set(t.clipLevel,t.clipLevel),nr()||Bo(!0))},lm=(t,e,r,n)=>{const s=st.currentAttachmentObject;if(!s)return;const o=s.clipLevel;let i=Er.get(o);i?(i[0]=Math.min(i[0],t),i[1]=Math.min(i[1],e),i[2]=Math.max(i[2],r),i[3]=Math.max(i[3],n)):(i=fd(),i[0]=t,i[1]=e,i[2]=r,i[3]=n,Er.set(o,i))},Ha=()=>{const t=st.currentAttachmentObject;if(!t)return;const r=(1<<t.clipLevel)-1;Wa(!0),ja(r&255),Bo(!1)},um=()=>{const t=st.currentAttachmentObject;if(!t)return;const e=t.clipLevel,r=Er.get(e);if(r&&(Er.delete(e),hd(r)),Rr.delete(e),--t.clipLevel,!t.clipLevel){t.mask=!1,Bo(!1),Wa(!1),ja(0),t.needsStencilClear=!0,Rr.clear(),Er.clear();return}t.pendingStencilClearLevel=t.clipLevel,Ha()},fm=(t,e,r)=>{const n=t.length-5;for(let s=3;s<n;s+=3){let o=r*4;t[s+2]?(e[o++]=t[s-3],e[o++]=t[s-2],e[o++]=0,e[o++]=0,e[o++]=t[s],e[o++]=t[s+1],e[o++]=.5,e[o++]=0,e[o++]=t[s+3],e[o++]=t[s+4],e[o++]=1,e[o++]=1):t[s+5]?(e[o++]=t[0],e[o++]=t[1],e[o++]=.5,e[o++]=.5,e[o++]=t[s],e[o++]=t[s+1],e[o++]=.5,e[o++]=.5,e[o++]=t[s+6],e[o++]=t[s+7],e[o++]=.5,e[o++]=.5):(e[o++]=t[0],e[o++]=t[1],e[o++]=.5,e[o++]=.5,e[o++]=t[s],e[o++]=t[s+1],e[o++]=.5,e[o++]=.5,e[o++]=t[s+3],e[o++]=t[s+4],e[o++]=.5,e[o++]=.5),r+=3}return r};let Fo=new Float32Array(32);const hm=t=>(t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t++,t),dn=t=>{let e=0;for(const o of t){const i=o.length-5;for(let l=3;l<i;l+=3)e+=3}const r=e*4;Fo.length<r&&(Fo=new Float32Array(hm(r)));const n=Fo;let s=0;for(const o of t)s=fm(o,n,s);return{buffer:n.subarray(0,s*4),indexCount:s}},Cr=new OffscreenCanvas(1,1).getContext("2d"),dm={x:0,y:0},pm={x:0,y:0},mm={x:0,y:0},gm={x:0,y:0},bm=(t,e,r)=>{const n=Math.sqrt(t*t+e*e);return n===0?{x:0,y:0}:{x:-(e/n)*r,y:t/n*r}},wo=(t,e,r)=>({x:t.x+(e.x-t.x)*r,y:t.y+(e.y-t.y)*r}),xm=t=>{const e=Math.sqrt(t.x*t.x+t.y*t.y);return e===0?{x:0,y:0}:{x:t.x/e,y:t.y/e}},ym=(t,e,r,n)=>({x:(1-t)**2*e.x+2*(1-t)*t*r.x+t**2*n.x,y:(1-t)**2*e.y+2*(1-t)*t*r.y+t**2*n.y}),vm=(t,e,r,n)=>({x:2*(1-t)*(r.x-e.x)+2*t*(n.x-r.x),y:2*(1-t)*(r.y-e.y)+2*t*(n.y-r.y)}),Mm=(t,e,r,n=.5)=>{const s=wo(t,e,n),o=wo(e,r,n),i=wo(s,o,n);return[[t,s,i],[i,o,r]]},Sm=(t,e,r,n=4)=>{let s=[[t,e,r]];for(let o=0;o<n;o++){const i=[];for(const l of s){const c=Mm(l[0],l[1],l[2],.5);i.push(c[0],c[1])}s=i}return s},Ka=(t,e,r,n)=>{const s=[0,.5,1],o=[];for(const i of s){const l=ym(i,t,e,r),c=vm(i,t,e,r),u=xm({x:-c.y,y:c.x});o.push({x:l.x+u.x*n,y:l.y+u.y*n})}return o},$m=(t,e,r,n)=>{const s=Sm(t,e,r,5),o=[],i=[];for(const h of s)o.push(Ka(h[0],h[1],h[2],+n)),i.push(Ka(h[0],h[1],h[2],-n));for(let h=0;h<o.length-1;++h)o[h+1][0]=o[h][2];for(let h=0;h<i.length-1;++h)i[h+1][0]=i[h][2];const l=o[0][0],c=[l.x,l.y,!1];for(let h=0;h<o.length;++h){const d=o[h];c.push(d[1].x,d[1].y,!0,d[2].x,d[2].y,!1)}const u=[...i].reverse();for(let h=0;h<u.length;++h){const[d,m,g]=u[h];u[h]=[g,m,d]}const a=u[0][0];c.push(a.x,a.y,!1);for(let h=0;h<u.length;++h){const d=u[h];c.push(d[1].x,d[1].y,!0,d[2].x,d[2].y,!1)}return c},Tm=(t,e,r)=>{const n={x:e.x-t.x,y:e.y-t.y},s=bm(n.x,n.y,r),o={x:t.x+s.x,y:t.y+s.y},i={x:e.x+s.x,y:e.y+s.y},l={x:e.x-s.x,y:e.y-s.y},c={x:t.x-s.x,y:t.y-s.y};return[o.x,o.y,!1,i.x,i.y,!1,l.x,l.y,!1,c.x,c.y,!1,o.x,o.y,!1]},Ur=(t,e,r,n)=>{const s=[];for(let i=0;i<n.length;i+=3){if(n[i+2])continue;const l=n[i],c=n[i+1],u=Math.sqrt(Math.pow(l-t,2)+Math.pow(c-e,2));Math.abs(u-r)>1e-4||s.push(l,c)}return s},Gr=(t,e)=>{Cr.beginPath(),Cr.moveTo(e[0],e[1]);for(let r=3;r<e.length;r+=3)e[r+2]?(Cr.quadraticCurveTo(e[r],e[r+1],e[r+3],e[r+4]),r+=3):Cr.lineTo(e[r],e[r+1]);Cr.closePath();for(let r=0;r<t.length;r+=2){const n=t[r],s=t[r+1];if(!Cr.isPointInPath(n,s))return[n,s]}return null},qa=(t,e,r,n,s=!1)=>{const o=s?0:n.length-1,i=s?n.length-1:n.length-2,l=Ur(t,e,r,n[o]),c=Ur(t,e,r,n[i]);if(l[0]===c[0]&&l[1]===c[1]||l[0]===c[2]&&l[1]===c[3])return;const u=Gr(l,n[i]);if(!u)return;const a=Gr(c,n[o]);a&&n.splice(-1,0,[t,e,!1,u[0],u[1],!1,a[0],a[1],!1,t,e,!1])},Qa=(t,e,r,n,s=!1)=>{const o=s?0:n.length-1,i=s?n.length-1:n.length-2,l=Ur(t,e,r,n[o]),c=Ur(t,e,r,n[i]),u=Gr(l,n[i]);if(!u)return;const a=Gr(c,n[o]);if(!a)return;const h=Math.atan2(u[1]-e,u[0]-t);let m=Math.atan2(a[1]-e,a[0]-t)-h;m>Math.PI?m-=2*Math.PI:m<-Math.PI&&(m+=2*Math.PI);const g=8,f=m/g,b=[t,e,!1];for(let x=0;x<=g;x++){const y=h+x*f,P=t+r*Math.cos(y),S=e+r*Math.sin(y);b.push(P,S,!1)}n.splice(-1,0,b)},Za=(t,e,r,n,s,o=!1)=>{const i=o?0:s.length-1,l=o?s.length-1:s.length-2,c=Ur(t.x,t.y,n,s[i]),u=Ur(t.x,t.y,n,s[l]);if(c[0]===u[0]&&c[1]===u[1]||c[0]===u[2]&&c[1]===u[3])return;const a=Gr(c,s[l]);if(!a)return;const h=Gr(u,s[i]);if(!h)return;const d=e.x-t.x,m=e.y-t.y,g=Math.hypot(d,m),f={x:d/g,y:m/g},b=r.x-t.x,x=r.y-t.y,y=Math.hypot(b,x),P={x:b/y,y:x/y},S=f.x,M=f.y,$=P.x,T=P.y,w=S*T-M*$;if(w===0){s.splice(-1,0,[t.x,t.y,!1,a[0],a[1],!1,h[0],h[1],!1]);return}const E=((h[0]-a[0])*T-(h[1]-a[1])*$)/w,F=a[0]+E*S,A=a[1]+E*M;s.splice(-1,0,[t.x,t.y,!1,a[0],a[1],!1,F,A,!1,t.x,t.y,!1,h[0],h[1],!1,F,A,!1])},Bm=(t,e,r)=>{const n=t[0],s=t[1],o=t[3],i=t[4],l=Math.atan2(s-i,n-o),c=[n,s,!1],u=8;for(let b=0;b<=u;b++){const x=l-Math.PI/2+b*Math.PI/u;c.push(n+e*Math.cos(x),s+e*Math.sin(x),!1)}r.unshift(c);const a=t[t.length-3],h=t[t.length-2],d=t[t.length-6],m=t[t.length-5],g=Math.atan2(h-m,a-d),f=[a,h,!1];for(let b=0;b<=u;b++){const x=g-Math.PI/2+b*Math.PI/u;f.push(a+e*Math.cos(x),h+e*Math.sin(x),!1)}r.push(f)},Pm=(t,e,r)=>{const n=t[0],s=t[1],o=t[3],i=t[4],l=n-o,c=s-i,u=Math.hypot(l,c);if(u>0){const x=l/u,y=c/u,P=n+x*e,S=s+y*e,M=[n-y*e,s+x*e,!1,P-y*e,S+x*e,!1,P+y*e,S-x*e,!1,n+y*e,s-x*e,!1,n-y*e,s+x*e,!1];r.unshift(M)}const a=t[t.length-3],h=t[t.length-2],d=t[t.length-6],m=t[t.length-5],g=a-d,f=h-m,b=Math.hypot(g,f);if(b>0){const x=g/b,y=f/b,P=a+x*e,S=h+y*e,M=[a-y*e,h+x*e,!1,P-y*e,S+x*e,!1,P+y*e,S-x*e,!1,a+y*e,h-x*e,!1,a-y*e,h+x*e,!1];r.push(M)}},Oo=(t,e)=>{const r=dm;r.x=t[0],r.y=t[1];const n=pm;n.x=0,n.y=0;const s=mm;s.x=0,s.y=0;const o=gm;o.x=0,o.y=0;const i=[];for(let m=3;m<t.length;m+=3){const g=t[m],f=t[m+1];if(t[m+2]){n.x=g,n.y=f;continue}if(s.x=g,s.y=f,t[m-1]?i.push($m(r,n,s,e)):i.push(Tm(r,s,e)),i.length>1)switch(st.joints){case 0:qa(r.x,r.y,e,i);break;case 1:o.x=t[m-6],o.y=t[m-5],Za(r,s,o,e,i);break;case 2:Qa(r.x,r.y,e,i);break}r.x=s.x,r.y=s.y}const l=t[0],c=t[1],u=t[t.length-3],a=t[t.length-2],h=1e-4;if(Math.abs(l-u)<h&&Math.abs(c-a)<h&&i.length>1)switch(st.joints){case 0:qa(l,c,e,i,!0);break;case 1:r.x=l,r.y=c,s.x=t[3],s.y=t[4],o.x=t[t.length-6],o.y=t[t.length-5],Za(r,s,o,e,i,!0);break;case 2:Qa(l,c,e,i,!0);break}else if(i.length>0)switch(st.caps){case 1:Bm(t,e,i);break;case 2:Pm(t,e,i);break}return i},Am=(t,e)=>{const r=e/2,n=[];for(const s of t){if(s.length<6)continue;const o=Oo(s,r);for(const i of o)n.push(i)}return n},Ja=new Map;let ec=0;const Fm=()=>{Ja.clear(),ec=0},tc=new WeakMap,Eo=t=>{let e=tc.get(t);return e||(e=t.createView(),tc.set(t,e)),e},wm=6,Om=22,pn=new Map,mn=new Map,ns=(t,e,r)=>{const n=\`\${e}_\${r}\`,s=pn.get(n);return s&&s.length>0?s.pop():t.createTexture({size:{width:e,height:r},format:"rgba8unorm",usage:wm})},Ot=t=>{const e=\`\${t.width}_\${t.height}\`;let r=pn.get(e);r||(r=[],pn.set(e,r)),r.push(t)},Ro=(t,e,r)=>{const n=\`\${e}_\${r}\`,s=mn.get(n);return s&&s.length>0?s.pop():t.createTexture({size:{width:e,height:r},format:"rgba8unorm",usage:Om})},Xt=t=>{const e=\`\${t.width}_\${t.height}\`;let r=mn.get(e);r||(r=[],mn.set(e,r)),r.push(t)},Em=()=>{for(const[,t]of pn)for(const e of t)e.destroy();pn.clear();for(const[,t]of mn)for(const e of t)e.destroy();mn.clear()},rc=new Map,Rm=()=>{for(const t of rc.values())t.texture?.resource&&t.texture.resource.destroy();rc.clear()},Lr=new Map;let gn=0;const Cm=60,nc=(t,e,r)=>\`\${e}_\${r}_\${t.join(",")}\`,sc=(t,e,r)=>{const n=nc(t,e,r),s=Lr.get(n);return s?(s.lastUsedFrame=gn,s):null},oc=(t,e,r,n,s)=>{const o=nc(t,e,r);Lr.set(o,{texture:n,view:s,lastUsedFrame:gn})},Um=()=>{gn++;for(const[t,e]of Lr)gn-e.lastUsedFrame>Cm&&(Ot(e.texture),Lr.delete(t))},Gm=()=>{for(const t of Lr.values())Ot(t.texture);Lr.clear(),gn=0};let Co=null;const Lm=()=>{Co?.texture?.resource&&Co.texture.resource.destroy(),Co=null},km=(t,e,r,n,s,o)=>{const i=e.getPipeline("stencil_write_atlas");i&&(t.setPipeline(i),t.setStencilReference(0),t.setVertexBuffer(0,r),t.setBindGroup(0,s,[o]),t.draw(n,1,0,0));const l=e.getPipeline("stencil_fill_atlas");l&&(t.setPipeline(l),t.setStencilReference(0),t.setBindGroup(0,s,[o]),t.draw(n,1,0,0))},Im=(t,e,r,n,s,o)=>{const i=e.getPipeline("stencil_write_main");i&&(t.setPipeline(i),t.setStencilReference(0),t.setVertexBuffer(0,r),t.setBindGroup(0,s,[o]),t.draw(n,1,0,0));const l=e.getPipeline("stencil_fill_main");l&&(t.setPipeline(l),t.setStencilReference(0),t.setBindGroup(0,s,[o]),t.draw(n,1,0,0))},_m=(t,e,r,n,s,o,i,l=!1,c=1)=>{let u;if(i)u="fill";else if(l){if(nr())return;u="fill_bgra_stencil"}else u="fill_bgra";const a=e.getPipeline(u);if(!a){console.error(\`[WebGPU] \${u} pipeline not found\`);return}t.setPipeline(a),t.setVertexBuffer(0,r),t.setBindGroup(0,s,[o]),l&&!i&&!nr()&&t.setStencilReference(Or()),t.draw(n,1,0,0)},Uo=t=>t<=4?256:t<=8?512:1024,ic=(t,e,r)=>{const n=t.length/5,s=Uo(n),o=new Uint8Array(s*4);for(let i=0;i<s;i++){const l=i/(s-1),c=Vm(t,l,r),u=i*4;o[u+0]=Math.round(Math.max(0,Math.min(255,c.r))),o[u+1]=Math.round(Math.max(0,Math.min(255,c.g))),o[u+2]=Math.round(Math.max(0,Math.min(255,c.b))),o[u+3]=Math.round(Math.max(0,Math.min(255,c.a)))}return o},Vm=(t,e,r)=>{const n=t.length/5;let s=0,o=0;for(let x=0;x<n;x++){const y=t[x*5];if(y<=e&&(s=x),y>=e&&o===0){o=x;break}}if(o===0&&(o=n-1),s===o){const x=s*5;return{r:t[x+1],g:t[x+2],b:t[x+3],a:t[x+4]}}const i=t[s*5],l=t[o*5],c=(e-i)/(l-i),u=t[s*5+1],a=t[s*5+2],h=t[s*5+3],d=t[s*5+4],m=t[o*5+1],g=t[o*5+2],f=t[o*5+3],b=t[o*5+4];return r===0?{r:Go(ot(kr(u/255),kr(m/255),c))*255,g:Go(ot(kr(a/255),kr(g/255),c))*255,b:Go(ot(kr(h/255),kr(f/255),c))*255,a:ot(d,b,c)}:{r:ot(u,m,c),g:ot(a,g,c),b:ot(h,f,c),a:ot(d,b,c)}},ot=(t,e,r)=>t+(e-t)*r,kr=t=>Math.pow(t,2.23333333),Go=t=>Math.pow(t,.45454545),ac=(t,e,r)=>{const s=new Uint8Array(1024),o=t.length,i=[];for(let l=0;l<o;l++){const c=e[l];i.push({offset:t[l]/255,r:(c>>16&255)/255,g:(c>>8&255)/255,b:(c&255)/255,a:r[l]})}for(let l=0;l<256;l++){const c=l/255;let u=0,a=o-1;for(let P=0;P<o-1;P++)if(i[P].offset<=c&&i[P+1].offset>=c){u=P,a=P+1;break}const h=i[u],d=i[a];let m=0;d.offset!==h.offset&&(m=(c-h.offset)/(d.offset-h.offset));const g=ot(h.r,d.r,m),f=ot(h.g,d.g,m),b=ot(h.b,d.b,m),x=ot(h.a,d.a,m),y=l*4;s[y+0]=Math.round(g*x*255),s[y+1]=Math.round(f*x*255),s[y+2]=Math.round(b*x*255),s[y+3]=Math.round(x*255)}return s},cc=(t,e,r)=>{const n=t[0],s=t[1],o=t[2],i=t[3],l=t[4],c=t[5];if(r===0){const y=-819.2*n-819.2*o+l,P=819.2*n-819.2*o+l,S=-819.2*n+819.2*o+l,M=-819.2*s-819.2*i+c,$=819.2*s-819.2*i+c,T=-819.2*s+819.2*i+c;let w=S-y,E=T-M;const F=Math.sqrt(w*w+E*E);F?(w=w/F,E=E/F):(w=0,E=0);const A=(P-y)*w+($-M)*E,R=new Float32Array([y+A*w,M+A*E,P,$]);return{inverseMatrix:new Float32Array([1,0,0,0,1,0,0,0,1]),linearPoints:R}}const u=n*i-s*o;if(Math.abs(u)<1e-10)return{inverseMatrix:new Float32Array([1,0,0,0,1,0,0,0,1]),linearPoints:null};const a=1/u,h=i*a,d=-s*a,m=-o*a,g=n*a,f=(o*c-i*l)*a,b=(s*l-n*c)*a;return{inverseMatrix:new Float32Array([h,d,0,m,g,0,f,b,1]),linearPoints:null}};let Lo=null;const j=new Float32Array(36),Ue=new Float32Array(16);let ko=null,lc=null;const ss=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],Dm=(t,e,r,n,s,o,i,l,c,u,a,h,d,m,g,f,b=!1,x=1)=>{const y=dn(s);if(y.indexCount===0)return null;const P=r.acquireVertexBuffer(y.buffer.byteLength,y.buffer);let S,M;const $=sc(c,a,h);if($)S=$.texture,M=$.view;else{const V=ic(c,a,h),X=c.length/5,Y=Uo(X);S=ns(t,Y,1),t.queue.writeTexture({texture:S},V,{bytesPerRow:Y*4,rowsPerImage:1},{width:Y,height:1}),M=S.createView(),oc(c,a,h,S,M)}const T=cc(u,o,l),w=i[3]>0?i[3]:1,E=o[0],F=o[1],A=o[3],R=o[4],v=o[6],U=o[7];j[0]=T.inverseMatrix[0],j[1]=T.inverseMatrix[3],j[2]=0,j[3]=0,j[4]=T.inverseMatrix[1],j[5]=T.inverseMatrix[4],j[6]=0,j[7]=0,j[8]=T.inverseMatrix[6],j[9]=T.inverseMatrix[7],j[10]=1,j[11]=0,j[12]=l,j[13]=Math.max(-.975,Math.min(.975,d)),j[14]=a,j[15]=819.2,T.linearPoints?(j[16]=T.linearPoints[0],j[17]=T.linearPoints[1],j[18]=T.linearPoints[2],j[19]=T.linearPoints[3]):(j[16]=0,j[17]=0,j[18]=0,j[19]=0),j[20]=1,j[21]=1,j[22]=1,j[23]=w,j[24]=E/m,j[25]=F/g,j[26]=0,j[27]=0,j[28]=A/m,j[29]=R/g,j[30]=0,j[31]=0,j[32]=v/m,j[33]=U/g,j[34]=1,j[35]=0;const L=r.acquireAndWriteUniformBuffer(j);Lo||(Lo=t.createSampler({magFilter:"linear",minFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}));const D=Lo,G=n.getBindGroupLayout("gradient_fill");if(!G)return console.error("[WebGPU] gradient_fill bind group layout not found"),null;ss[0].resource.buffer=L,ss[1].resource=D,ss[2].resource=M;const B=t.createBindGroup({layout:G,entries:ss}),z=()=>{const V=n.getBindGroupLayout("fill_dynamic");if(!V)return null;Ue[0]=1,Ue[1]=1,Ue[2]=1,Ue[3]=w,Ue[4]=E/m,Ue[5]=F/g,Ue[6]=0,Ue[7]=0,Ue[8]=A/m,Ue[9]=R/g,Ue[10]=0,Ue[11]=0,Ue[12]=v/m,Ue[13]=U/g,Ue[14]=1,Ue[15]=0;const X=r.dynamicUniform.allocate(Ue),Y=r.dynamicUniform.getBuffer();return(!ko||lc!==Y)&&(ko=t.createBindGroup({layout:V,entries:[{binding:0,resource:{buffer:Y,size:256}}]}),lc=Y),{bindGroup:ko,offset:X}};if(f){const V=n.getPipeline("stencil_write_atlas");if(V){const Y=z();e.setPipeline(V),e.setStencilReference(0),e.setVertexBuffer(0,P),Y&&e.setBindGroup(0,Y.bindGroup,[Y.offset]),e.draw(y.indexCount,1,0,0)}const X=n.getGradientPipeline("gradient_fill_stencil_atlas",l,a);return X&&(e.setPipeline(X),e.setStencilReference(0),e.setBindGroup(0,B),e.draw(y.indexCount,1,0,0)),null}if(b&&nr())return null;const k=n.getPipeline("stencil_write_main");if(k){const V=z();e.setPipeline(k),e.setStencilReference(0),e.setVertexBuffer(0,P),V&&e.setBindGroup(0,V.bindGroup,[V.offset]),e.draw(y.indexCount,1,0,0)}const _=b?"gradient_fill_bgra_stencil_masked":"gradient_fill_stencil_main",I=n.getGradientPipeline(_,l,a);return I&&(e.setPipeline(I),e.setStencilReference(b?Or():0),e.setBindGroup(0,B),e.draw(y.indexCount,1,0,0)),null},uc=(t,e)=>{const r=t[0],n=t[1],s=t[2],o=t[3],i=t[4],l=t[5],c=e[0],u=e[1],a=e[3],h=e[4],d=e[6],m=e[7],g=c*r+a*n,f=c*s+a*o,b=u*r+h*n,x=u*s+h*o,y=c*i+a*l+d,P=u*i+h*l+m,S=g*x-f*b;if(Math.abs(S)<1e-10)return new Float32Array([1,0,0,0,1,0,0,0,1]);const M=1/S,$=x*M,T=-f*M,w=-b*M,E=g*M,F=(f*P-x*y)*M,A=(b*y-g*P)*M,R=$*c+T*u,v=$*a+T*h,U=w*c+E*u,L=w*a+E*h,D=$*d+T*m+F,G=w*d+E*m+A;return new Float32Array([R,U,0,v,L,0,D,G,1])},fc=new Map,Z=new Float32Array(32),Ge=new Float32Array(16);let Io=null,hc=null;const os=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],Nm=(t,e,r,n,s,o,i,l,c,u,a,h,d,m,g,f,b=!1,x=1)=>{const y=dn(s);if(y.indexCount===0)return null;const P=r.acquireVertexBuffer(y.buffer.byteLength,y.buffer),S=ns(t,u,a);t.queue.writeTexture({texture:S},l.buffer,{bytesPerRow:u*4,rowsPerImage:a,offset:l.byteOffset},{width:u,height:a});const M=uc(c,o),$=i[0],T=i[1],w=i[2],E=i[3],F=o[0],A=o[1],R=o[3],v=o[4],U=o[6],L=o[7];Z[0]=M[0],Z[1]=M[1],Z[2]=M[2],Z[3]=0,Z[4]=M[3],Z[5]=M[4],Z[6]=M[5],Z[7]=0,Z[8]=M[6],Z[9]=M[7],Z[10]=M[8],Z[11]=0,Z[12]=u,Z[13]=a,Z[14]=h?1:0,Z[15]=0,Z[16]=$,Z[17]=T,Z[18]=w,Z[19]=E,Z[20]=F/m,Z[21]=A/g,Z[22]=0,Z[23]=0,Z[24]=R/m,Z[25]=v/g,Z[26]=0,Z[27]=0,Z[28]=U/m,Z[29]=L/g,Z[30]=1,Z[31]=0;const D=r.acquireAndWriteUniformBuffer(Z),G=\`bitmap_\${d?"s":"n"}_\${h?"r":"c"}\`;let B=fc.get(G);B||(B=t.createSampler({magFilter:d?"linear":"nearest",minFilter:d?"linear":"nearest",addressModeU:h?"repeat":"clamp-to-edge",addressModeV:h?"repeat":"clamp-to-edge"}),fc.set(G,B));const z=n.getBindGroupLayout("bitmap_fill");if(!z)return console.error("[WebGPU] bitmap_fill bind group layout not found"),Ot(S),null;os[0].resource.buffer=D,os[1].resource=B,os[2].resource=S.createView();const k=t.createBindGroup({layout:z,entries:os}),_=()=>{const I=n.getBindGroupLayout("fill_dynamic");if(!I)return null;Ge[0]=$,Ge[1]=T,Ge[2]=w,Ge[3]=E,Ge[4]=F/m,Ge[5]=A/g,Ge[6]=0,Ge[7]=0,Ge[8]=R/m,Ge[9]=v/g,Ge[10]=0,Ge[11]=0,Ge[12]=U/m,Ge[13]=L/g,Ge[14]=1,Ge[15]=0;const V=r.dynamicUniform.allocate(Ge),X=r.dynamicUniform.getBuffer();return(!Io||hc!==X)&&(Io=t.createBindGroup({layout:I,entries:[{binding:0,resource:{buffer:X,size:256}}]}),hc=X),{bindGroup:Io,offset:V}};if(f&&b){const I=n.getPipeline("stencil_write");if(I){const X=_();X&&(e.setPipeline(I),e.setStencilReference(0),e.setVertexBuffer(0,P),e.setBindGroup(0,X.bindGroup,[X.offset]),e.draw(y.indexCount,1,0,0))}const V=n.getPipeline("bitmap_fill_stencil");V&&(e.setPipeline(V),e.setStencilReference(0),e.setBindGroup(0,k),e.draw(y.indexCount,1,0,0))}else{let I;if(f)I="bitmap_fill";else if(b){if(nr())return Ot(S),null;I="bitmap_fill_bgra_stencil"}else I="bitmap_fill_bgra";const V=n.getPipeline(I);if(!V)return console.error(\`[WebGPU] \${I} pipeline not found\`),Ot(S),null;e.setPipeline(V),e.setVertexBuffer(0,P),e.setBindGroup(0,k),b&&!f&&!nr()&&e.setStencilReference(Or()),e.draw(y.indexCount,1,0,0)}return S},dc=(t,e,r)=>{const n=t.length-5;for(let s=3;s<n;s+=3){let o=r*4;t[s+2]?(e[o++]=t[s-3],e[o++]=t[s-2],e[o++]=.5,e[o++]=.5,e[o++]=t[s],e[o++]=t[s+1],e[o++]=.5,e[o++]=.5,e[o++]=t[s+3],e[o++]=t[s+4],e[o++]=.5,e[o++]=.5):t[s+5]?(e[o++]=t[0],e[o++]=t[1],e[o++]=.5,e[o++]=.5,e[o++]=t[s],e[o++]=t[s+1],e[o++]=.5,e[o++]=.5,e[o++]=t[s+6],e[o++]=t[s+7],e[o++]=.5,e[o++]=.5):(e[o++]=t[0],e[o++]=t[1],e[o++]=.5,e[o++]=.5,e[o++]=t[s],e[o++]=t[s+1],e[o++]=.5,e[o++]=.5,e[o++]=t[s+3],e[o++]=t[s+4],e[o++]=.5,e[o++]=.5),r+=3}return r};let _o=new Float32Array(32);const zm=t=>(t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t++,t),Xm=(t,e)=>{const r=e/2,n=[];for(const c of t){const u=Oo(c,r);for(const a of u)n.push(a)}let s=0;for(const c of n){const u=c.length-5;for(let a=3;a<u;a+=3)s+=3}if(s===0)return{buffer:new Float32Array(0),indexCount:0};const o=s*4;_o.length<o&&(_o=new Float32Array(zm(o)));const i=_o;let l=0;for(const c of n)l=dc(c,i,l);return{buffer:i.subarray(0,l*4),indexCount:l}};let Vo=null;const H=new Float32Array(36),is=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],Ym=(t,e,r,n,s,o,i,l,c,u,a,h,d,m,g,f,b,x)=>{const y=Xm(s,o);if(y.indexCount===0)return null;const P=r.acquireVertexBuffer(y.buffer.byteLength,y.buffer);let S,M;const $=sc(u,h,d);if($)S=$.texture,M=$.view;else{const _=ic(u,h,d),I=u.length/5,V=Uo(I);S=ns(t,V,1),t.queue.writeTexture({texture:S},_,{bytesPerRow:V*4,rowsPerImage:1},{width:V,height:1}),M=S.createView(),oc(u,h,d,S,M)}const T=cc(a,i,c),w=l[3]>0?l[3]:1,E=i[0],F=i[1],A=i[3],R=i[4],v=i[6],U=i[7];H[0]=T.inverseMatrix[0],H[1]=T.inverseMatrix[3],H[2]=0,H[3]=0,H[4]=T.inverseMatrix[1],H[5]=T.inverseMatrix[4],H[6]=0,H[7]=0,H[8]=T.inverseMatrix[6],H[9]=T.inverseMatrix[7],H[10]=1,H[11]=0,H[12]=c,H[13]=Math.max(-.975,Math.min(.975,m)),H[14]=h,H[15]=819.2,T.linearPoints?(H[16]=T.linearPoints[0],H[17]=T.linearPoints[1],H[18]=T.linearPoints[2],H[19]=T.linearPoints[3]):(H[16]=0,H[17]=0,H[18]=0,H[19]=0),H[20]=1,H[21]=1,H[22]=1,H[23]=w,H[24]=E/g,H[25]=F/f,H[26]=0,H[27]=0,H[28]=A/g,H[29]=R/f,H[30]=0,H[31]=0,H[32]=v/g,H[33]=U/f,H[34]=1,H[35]=0;const L=r.acquireAndWriteUniformBuffer(H);Vo||(Vo=t.createSampler({magFilter:"linear",minFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}));const D=Vo,G=n.getBindGroupLayout("gradient_fill");if(!G)return console.error("[WebGPU] gradient_fill bind group layout not found"),null;is[0].resource.buffer=L,is[1].resource=D,is[2].resource=M;const B=t.createBindGroup({layout:G,entries:is}),z=x?b?"gradient_stroke_atlas":"gradient_stroke_bgra":b?"gradient_fill":"gradient_fill_bgra",k=n.getGradientPipeline(z,c,h);return k?(e.setPipeline(k),e.setVertexBuffer(0,P),e.setBindGroup(0,B),e.draw(y.indexCount,1,0,0),null):(console.error(\`[WebGPU] \${z} pipeline not found\`),null)};let Do=new Float32Array(32);const Wm=t=>(t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t++,t),jm=(t,e)=>{const r=e/2,n=[];for(const c of t){const u=Oo(c,r);for(const a of u)n.push(a)}let s=0;for(const c of n){const u=c.length-5;for(let a=3;a<u;a+=3)s+=3}if(s===0)return{buffer:new Float32Array(0),indexCount:0};const o=s*4;Do.length<o&&(Do=new Float32Array(Wm(o)));const i=Do;let l=0;for(const c of n)l=dc(c,i,l);return{buffer:i.subarray(0,l*4),indexCount:l}},pc=new Map,J=new Float32Array(32),as=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],Hm=(t,e,r,n,s,o,i,l,c,u,a,h,d,m,g,f,b,x)=>{const y=jm(s,o);if(y.indexCount===0)return null;const P=r.acquireVertexBuffer(y.buffer.byteLength,y.buffer),S=ns(t,a,h);t.queue.writeTexture({texture:S},c.buffer,{bytesPerRow:a*4,rowsPerImage:h,offset:c.byteOffset},{width:a,height:h});const M=uc(u,i),$=1,T=1,w=1,E=l[3]>0?l[3]:1,F=i[0],A=i[1],R=i[3],v=i[4],U=i[6],L=i[7];J[0]=M[0],J[1]=M[1],J[2]=M[2],J[3]=0,J[4]=M[3],J[5]=M[4],J[6]=M[5],J[7]=0,J[8]=M[6],J[9]=M[7],J[10]=M[8],J[11]=0,J[12]=a,J[13]=h,J[14]=d?1:0,J[15]=0,J[16]=$,J[17]=T,J[18]=w,J[19]=E,J[20]=F/g,J[21]=A/f,J[22]=0,J[23]=0,J[24]=R/g,J[25]=v/f,J[26]=0,J[27]=0,J[28]=U/g,J[29]=L/f,J[30]=1,J[31]=0;const D=r.acquireAndWriteUniformBuffer(J),G=\`bitmap_\${m?"s":"n"}_\${d?"r":"c"}\`;let B=pc.get(G);B||(B=t.createSampler({magFilter:m?"linear":"nearest",minFilter:m?"linear":"nearest",addressModeU:d?"repeat":"clamp-to-edge",addressModeV:d?"repeat":"clamp-to-edge"}),pc.set(G,B));const z=n.getBindGroupLayout("bitmap_fill");if(!z)return console.error("[WebGPU] bitmap_fill bind group layout not found"),Ot(S),null;as[0].resource.buffer=D,as[1].resource=B,as[2].resource=S.createView();const k=t.createBindGroup({layout:z,entries:as}),_=x?b?"bitmap_stroke_atlas":"bitmap_stroke_bgra":b?"bitmap_fill":"bitmap_fill_bgra",I=n.getPipeline(_);return I?(e.setPipeline(I),e.setVertexBuffer(0,P),e.setBindGroup(0,k),e.draw(y.indexCount,1,0,0),S):(console.error(\`[WebGPU] \${_} pipeline not found\`),Ot(S),null)},mc=new Float32Array([-1,-1,.5,.5,1,-1,.5,.5,-1,1,.5,.5,-1,1,.5,.5,1,-1,.5,.5,1,1,.5,.5]),Km=new Float32Array([1,1,1,1,.5,0,0,0,0,.5,0,0,.5,.5,1,0]),qm=(t,e,r,n,s)=>{if(!s)return;const o=s.clipLevel,i=1<<o-1,l=r.acquireVertexBuffer(mc.byteLength,mc),c=r.dynamicUniform.allocate(Km),u=n.getBindGroupLayout("fill_dynamic");if(!u)return;const a=t.createBindGroup({layout:u,entries:[{binding:0,resource:{buffer:r.dynamicUniform.getBuffer(),size:256}}]}),h=n.getPipeline(\`mask_union_merge_\${o}\`);h&&(e.setPipeline(h),e.setStencilReference(i),e.setVertexBuffer(0,l),e.setBindGroup(0,a,[c]),e.draw(6,1,0,0));const d=n.getPipeline(\`mask_union_clear_\${o}\`);d&&(e.setPipeline(d),e.setStencilReference(0),e.setVertexBuffer(0,l),e.setBindGroup(0,a,[c]),e.draw(6,1,0,0))},Le=new Float32Array(16),Qm=(t,e,r,n,s,o,i,l,c,u=!1)=>{const a=s.clipLevel,h=s.width,d=s.height,m=l[0],g=l[1],f=l[2],b=l[3]*c;if(o.length===0)return;const x=dn(o);if(x.indexCount===0)return;const y=r.acquireVertexBuffer(x.buffer.byteLength,x.buffer),P=i[0],S=i[1],M=i[3],$=i[4],T=i[6],w=i[7];Le[0]=m,Le[1]=g,Le[2]=f,Le[3]=b,Le[4]=P/h,Le[5]=S/d,Le[6]=0,Le[7]=0,Le[8]=M/h,Le[9]=$/d,Le[10]=0,Le[11]=0,Le[12]=T/h,Le[13]=w/d,Le[14]=1,Le[15]=0;const E=r.dynamicUniform.allocate(Le);let F=Rr.get(a)??a,A;u?A=\`clip_write_main_\${Math.min(8,Math.max(1,F))}\`:A="clip_write";const R=n.getPipeline(A);if(!R){console.error(\`[WebGPU] \${A} pipeline not found\`);return}const v=n.getBindGroupLayout("fill_dynamic");if(!v)return;const U=t.createBindGroup({layout:v,entries:[{binding:0,resource:{buffer:r.dynamicUniform.getBuffer(),size:256}}]});e.setPipeline(R),e.setStencilReference(0),e.setVertexBuffer(0,y),e.setBindGroup(0,U,[E]),e.draw(x.indexCount,1,0,0),F++,F>8&&(qm(t,e,r,n,s),F=a+1),Rr.set(a,F)};let No=null,gc=null;const Zm=(t,e,r,n,s,o,i,l)=>{const c=rs();if(c.count===0)return r;r&&(r.end(),r=null);const u=gt(),a=Or(),m=(F=>{switch(F){case"add":return"instanced_add";case"screen":return"instanced_screen";case"alpha":return"instanced_alpha";case"erase":return"instanced_erase";case"copy":return"instanced_copy";default:return"instanced"}})(ts),g=l.getPipeline(m),f=l.getPipeline("instanced_masked"),b=u&&f&&(n.msaaStencil?.view||n.stencil?.view),x=b?f:g;if(!x)return console.error("[WebGPU] Instanced pipeline not found"),null;let y;if(b){const F=n.msaa&&n.msaaTexture?.view,A=F?n.msaaTexture.view:n.texture.view,R=F&&n.msaaStencil?.view?n.msaaStencil.view:n.stencil.view,v=F?n.texture.view:null,U=o.createStencilRenderPassDescriptor(A,R,"load","load",v);y=e.beginRenderPass(U)}else{const F=n.msaa&&n.msaaTexture?.view,A=F?n.msaaTexture.view:n.texture.view,R=F?n.texture.view:null,v=o.createRenderPassDescriptor(A,0,0,0,0,"load",R);y=e.beginRenderPass(v)}y.setPipeline(x),b&&y.setStencilReference(a);const P=new Float32Array(Ve.buffer.buffer,Ve.buffer.byteOffset,Ve.offset),S=s.acquireVertexBuffer(P.byteLength,P),M=s.getUnitRectBuffer(),$=We()||o.getAttachment("atlas");if(!$)return console.error("[WebGPU] Atlas attachment not found"),y.end(),null;const T=i.createSampler("atlas_instanced_sampler",!1),w=l.getBindGroupLayout("instanced");if(!w)return console.error("[WebGPU] Instanced bind group layout not found"),y.end(),null;const E=$.texture.view;return(!No||gc!==E)&&(No=t.createBindGroup({layout:w,entries:[{binding:0,resource:T},{binding:1,resource:E}]}),gc=E),y.setVertexBuffer(0,M),y.setVertexBuffer(1,S),y.setBindGroup(0,No),y.draw(6,c.count,0,0),y.end(),c.clear(),null};let zo=null,bc=null;const Jm=(t,e,r,n,s,o,i,l,c=!0,u=!0)=>{const a=rs();if(a.count===0)return r;r&&(r.end(),r=null);const h=gt(),d=Or(),f=(R=>{switch(R){case"add":return"instanced_add";case"screen":return"instanced_screen";case"alpha":return"instanced_alpha";case"erase":return"instanced_erase";case"copy":return"instanced_copy";default:return"instanced"}})(ts),b=l.getPipeline(f),x=l.getPipeline("instanced_masked"),y=h&&x&&(n.msaaStencil?.view||n.stencil?.view),P=y?x:b;if(!P)return console.error("[WebGPU] Instanced pipeline not found"),null;let S;if(y){const R=n.msaa&&n.msaaTexture?.view,v=R?n.msaaTexture.view:n.texture.view,U=R&&n.msaaStencil?.view?n.msaaStencil.view:n.stencil.view,L=R?n.texture.view:null,D=o.createStencilRenderPassDescriptor(v,U,"load","load",L);S=e.beginRenderPass(D)}else{const R=n.msaa&&n.msaaTexture?.view,v=R?n.msaaTexture.view:n.texture.view,U=R?n.texture.view:null,L=o.createRenderPassDescriptor(v,0,0,0,0,"load",U);S=e.beginRenderPass(L)}S.setPipeline(P),y&&S.setStencilReference(d);const M=new Float32Array(Ve.buffer.buffer,Ve.buffer.byteOffset,Ve.offset);let $;u?($=s.acquireStorageBuffer(M.byteLength),s.writeStorageBuffer($,M)):$=s.acquireVertexBuffer(M.byteLength,M);const T=s.getUnitRectBuffer(),w=We()||o.getAttachment("atlas");if(!w)return console.error("[WebGPU] Atlas attachment not found"),S.end(),null;const E=i.createSampler("atlas_instanced_sampler",!1),F=l.getBindGroupLayout("instanced");if(!F)return console.error("[WebGPU] Instanced bind group layout not found"),S.end(),null;const A=w.texture.view;if((!zo||bc!==A)&&(zo=t.createBindGroup({layout:F,entries:[{binding:0,resource:E},{binding:1,resource:A}]}),bc=A),S.setVertexBuffer(0,T),S.setVertexBuffer(1,$),S.setBindGroup(0,zo),c){const R=s.createIndirectBuffer(6,a.count,0,0);S.drawIndirect(R,0)}else S.draw(6,a.count,0,0);return S.end(),a.clear(),null},je=new Float32Array(12),bn=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null},{binding:3,resource:null}],Xo=(t,e,r,n,s)=>{const{device:o,commandEncoder:i,frameBufferManager:l,pipelineManager:c,textureManager:u}=s,a=Math.max(t.width,e.width),h=Math.max(t.height,e.height),d=l.createTemporaryAttachment(a,h),m=c.getPipeline("complex_blend"),g=c.getBindGroupLayout("complex_blend");if(!m||!g)return console.error(\`[WebGPU ComplexBlend] Pipeline not found for blend mode: \${r}\`),t;const f=u.createSampler("complex_blend_sampler",!0),b=N.getBlendModeIndex(r);je[0]=n[0],je[1]=n[1],je[2]=n[2],je[3]=n[3],je[4]=n[4],je[5]=n[5],je[6]=n[6],je[7]=n[7],je[8]=b,je[9]=0,je[10]=0,je[11]=0;const x=s.bufferManager?s.bufferManager.acquireAndWriteUniformBuffer(je):o.createBuffer({size:48,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});s.bufferManager||o.queue.writeBuffer(x,0,je),bn[0].resource.buffer=x,bn[1].resource=f,bn[2].resource=e.texture.view,bn[3].resource=t.texture.view;const y=o.createBindGroup({layout:g,entries:bn}),P=l.createRenderPassDescriptor(d.texture.view,0,0,0,0,"clear"),S=i.beginRenderPass(P);return S.setPipeline(m),S.setBindGroup(0,y),S.draw(6,1,0,0),S.end(),d},xn=new Float32Array(4),it=new Float32Array(6),Oe=new Float32Array(8),Qe=new Float32Array(12),at=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],e0=(t,e,r,n,s,o,i,l,c,u,a,h,d,m)=>{const g=d.getPipeline("complex_blend_copy"),f=d.getBindGroupLayout("texture_copy");if(!g||!f)return;xn[0]=c/i,xn[1]=u/l,xn[2]=s/i,xn[3]=o/l;const b=m.acquireAndWriteUniformBuffer(xn),x=h.createSampler("complex_blend_copy_sampler",!1);at[0].resource.buffer=b,at[1].resource=x,at[2].resource=r;const y=t.createBindGroup({layout:f,entries:at}),P=a.createRenderPassDescriptor(n.texture.view,0,0,0,0,"clear"),S=e.beginRenderPass(P);S.setPipeline(g),S.setBindGroup(0,y),S.draw(6,1,0,0),S.end()},t0=(t,e,r,n,s,o,i,l,c,u)=>{const a=n.msaa&&n.msaaTexture?.view,h=a?"complex_blend_output_msaa":"complex_blend_output",d=c.getPipeline(h),m=c.getBindGroupLayout("positioned_texture");if(!d||!m)return;Oe[0]=s,Oe[1]=o,Oe[2]=r.width,Oe[3]=r.height,Oe[4]=n.width,Oe[5]=n.height,Oe[6]=0,Oe[7]=0;const g=u.acquireAndWriteUniformBuffer(Oe),f=l.createSampler("complex_blend_output_sampler",!1);at[0].resource.buffer=g,at[1].resource=f,at[2].resource=r.texture.view;const b=t.createBindGroup({layout:m,entries:at}),x=a?n.msaaTexture.view:n.texture.view,y=a?n.texture.view:null,P=i.createRenderPassDescriptor(x,0,0,0,0,"load",y),S=e.beginRenderPass(P);S.setPipeline(d),S.setBindGroup(0,b),S.draw(6,1,0,0),S.end()},r0=(t,e,r,n,s,o,i)=>{const l=om();if(l.length===0)return;if(!r||!r.texture){So();return}const c=We()||n.getAttachment("atlas");if(!c||!c.texture){So();return}for(const u of l){const{node:a,x_min:h,y_min:d,x_max:m,y_max:g,color_transform:f,matrix:b,blend_mode:x,global_alpha:y}=u,P=Math.ceil(Math.abs(m-h)),S=Math.ceil(Math.abs(g-d));if(P<=0||S<=0)continue;const M=Math.max(0,Math.floor(b[6])),$=Math.max(0,Math.floor(b[7]));if(M>=r.width||$>=r.height)continue;const T=b[0]!==1||b[1]!==0||b[3]!==0||b[4]!==1,w=T?P:a.w,E=T?S:a.h,F=Math.min(w,r.width-M),A=Math.min(E,r.height-$);if(F<=0||A<=0)continue;let R;if(T){R=n.createTemporaryAttachment(w,E);const L=o.getPipeline("complex_blend_scale"),D=o.getBindGroupLayout("texture_scale");if(L&&D){const G=w/2,B=E/2,z=a.w/2,k=a.h/2;it[0]=b[0],it[1]=b[1],it[2]=b[3],it[3]=b[4],it[4]=-z*b[0]-k*b[3]+G,it[5]=-z*b[1]-k*b[4]+B;const _=n.createTemporaryAttachment(a.w,a.h);e.copyTextureToTexture({texture:c.texture.resource,origin:{x:a.x,y:a.y,z:0}},{texture:_.texture.resource,origin:{x:0,y:0,z:0}},{width:a.w,height:a.h}),Qe[0]=it[0],Qe[1]=it[1],Qe[2]=it[2],Qe[3]=it[3],Qe[4]=it[4],Qe[5]=it[5],Qe[6]=a.w,Qe[7]=a.h,Qe[8]=w,Qe[9]=E,Qe[10]=0,Qe[11]=0;const I=i.acquireAndWriteUniformBuffer(Qe,48),V=s.createSampler("scale_sampler",!0);at[0].resource.buffer=I,at[1].resource=V,at[2].resource=_.texture.view;const X=t.createBindGroup({layout:D,entries:at}),Y=n.createRenderPassDescriptor(R.texture.view,0,0,0,0,"clear"),W=e.beginRenderPass(Y);W.setPipeline(L),W.setBindGroup(0,X),W.draw(6,1,0,0),W.end(),n.releaseTemporaryAttachment(_)}else e.copyTextureToTexture({texture:c.texture.resource,origin:{x:a.x,y:a.y,z:0}},{texture:R.texture.resource,origin:{x:0,y:0,z:0}},{width:Math.min(a.w,w),height:Math.min(a.h,E)})}else R=n.createTemporaryAttachment(w,E),e.copyTextureToTexture({texture:c.texture.resource,origin:{x:a.x,y:a.y,z:0}},{texture:R.texture.resource,origin:{x:0,y:0,z:0}},{width:w,height:E});const v=n.createTemporaryAttachment(w,E);e0(t,e,r.texture.view,v,M,$,r.width,r.height,w,E,n,s,o,i),Oe[0]=f[0],Oe[1]=f[1],Oe[2]=f[2],Oe[3]=y,Oe[4]=f[4],Oe[5]=f[5],Oe[6]=f[6],Oe[7]=0;const U=Xo(R,v,x,Oe,{device:t,commandEncoder:e,bufferManager:i,frameBufferManager:n,pipelineManager:o,textureManager:s});t0(t,e,U,r,M,$,n,s,o,i),n.releaseTemporaryAttachment(R),n.releaseTemporaryAttachment(v),n.releaseTemporaryAttachment(U)}So()},ne={x:0,y:0},xc=[.5,1.05,1.4,1.55,1.75,1.9,2,2.15,2.2,2.3,2.5,3,3,3.5,3.5],n0=(t,e,r,n,s)=>{const o=Math.sqrt(t[0]*t[0]+t[1]*t[1]),i=Math.sqrt(t[2]*t[2]+t[3]*t[3]),l=e*(o/s),c=r*(i/s),u=xc[Math.min(n-1,xc.length-1)],a=Math.round(l*u),h=Math.round(c*u);let d=1,m=1;return l>128?d=.0625:l>64?d=.125:l>32?d=.25:l>16&&(d=.5),c>128?m=.0625:c>64?m=.125:c>32?m=.25:c>16&&(m=.5),{baseBlurX:l,baseBlurY:c,offsetX:a,offsetY:h,bufferScaleX:d,bufferScaleY:m}},s0=(t,e,r,n)=>{const s=Math.ceil(e*.5),o=1-(s-e*.5),i=1+e,l=t?1/r:0,c=t?0:1/n;return{offsetX:l,offsetY:c,fraction:o,samples:i,halfBlur:s}},ht=new Float32Array(8),cs=[{binding:0,resource:null},{binding:1,resource:null},{binding:2,resource:{buffer:null}}],o0={label:"blur_compute_pass_h"},i0={label:"blur_compute_pass_v"},yc=(t,e,r,n,s,o,i,l)=>{const c=Math.ceil(i*.5),a=c>=8&&c<=24?o?"blur_compute_shared_horizontal":"blur_compute_shared_vertical":o?"blur_compute_horizontal":"blur_compute_vertical",h=r.getPipeline(a),d=r.getBindGroupLayout("blur_compute");if(!h||!d)return;const m=1-(c-i*.5),g=1+i;ht[0]=o?1:0,ht[1]=o?0:1,ht[2]=c,ht[3]=m,ht[4]=n.width,ht[5]=n.height,ht[6]=g,ht[7]=0;const f=l?l.acquireAndWriteUniformBuffer(ht):(()=>{const S=t.createBuffer({size:ht.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});return t.queue.writeBuffer(S,0,ht),S})();cs[0].resource=n.texture.view,cs[1].resource=s.texture.view,cs[2].resource.buffer=f;const b=t.createBindGroup({layout:d,entries:cs}),x=e.beginComputePass(o?o0:i0);x.setPipeline(h),x.setBindGroup(0,b);const y=Math.ceil(s.width/16),P=Math.ceil(s.height/16);x.dispatchWorkgroups(y,P,1),x.end()},a0=(t,e,r,n)=>{const i=Math.max(t,e),l=Math.min(r,n);return i>=4&&l>=128},ye=new Float32Array(4),ct=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],sr=(t,e,r,n,s,o,i)=>{const{device:l,commandEncoder:c,frameBufferManager:u,pipelineManager:a,textureManager:h}=i,d=n0(e,r,n,s,o),{baseBlurX:m,baseBlurY:g,offsetX:f,offsetY:b,bufferScaleX:x,bufferScaleY:y}=d;ne.x+=f,ne.y+=b;const P=t.width+f*2,S=t.height+b*2,M=Math.ceil(P*x),$=Math.ceil(S*y),T=u.createTemporaryAttachment(M,$),w=u.createTemporaryAttachment(M,$),E=h.createSampler("blur_sampler",!0);c0(l,c,u,a,t,T,E,x,y,f*x,b*y,i.bufferManager);const F=m*x,A=g*y,R=i.computePipelineManager&&a0(m,g,M,$),v=[T,w];let U=0;for(let D=0;D<s;++D){if(r>0){const G=U;U=(U+1)%2,R?yc(l,c,i.computePipelineManager,v[G],v[U],!0,F,i.bufferManager):vc(l,c,u,a,v[G],v[U],E,!0,F,i.bufferManager)}if(n>0){const G=U;U=(U+1)%2,R?yc(l,c,i.computePipelineManager,v[G],v[U],!1,A,i.bufferManager):vc(l,c,u,a,v[G],v[U],E,!1,A,i.bufferManager)}}let L=v[U];if(x!==1||y!==1){const D=u.createTemporaryAttachment(P,S);l0(l,c,u,a,L,D,E,1/x,1/y,i.bufferManager),u.releaseTemporaryAttachment(T),u.releaseTemporaryAttachment(w),L=D}else{const D=(U+1)%2;u.releaseTemporaryAttachment(v[D])}return L},c0=(t,e,r,n,s,o,i,l,c,u,a,h)=>{const d=n.getPipeline("texture_copy_rgba8"),m=n.getBindGroupLayout("texture_copy");if(!d||!m){console.error("[WebGPU BlurFilter] texture_copy_rgba8 pipeline not found");return}const g=s.width*l,f=s.height*c,b=1,x=1,y=0,P=0;ye[0]=b,ye[1]=x,ye[2]=y,ye[3]=P;const S=h?h.acquireAndWriteUniformBuffer(ye):t.createBuffer({size:ye.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});h||t.queue.writeBuffer(S,0,ye),ct[0].resource.buffer=S,ct[1].resource=i,ct[2].resource=s.texture.view;const M=t.createBindGroup({layout:m,entries:ct}),$=r.createRenderPassDescriptor(o.texture.view,0,0,0,0,"clear"),T=e.beginRenderPass($);T.setPipeline(d),T.setBindGroup(0,M),T.setViewport(u,a,g,f,0,1),T.setScissorRect(Math.floor(u),Math.floor(a),Math.ceil(g),Math.ceil(f)),T.draw(6,1,0,0),T.end()},vc=(t,e,r,n,s,o,i,l,c,u)=>{const a=s0(l,c,s.width,s.height),{offsetX:h,offsetY:d,fraction:m,samples:g,halfBlur:f}=a,b=Math.max(1,Math.min(16,f)),x=n.getPipeline(\`blur_filter_\${b}\`),y=n.getBindGroupLayout("blur_filter");if(!x||!y){console.error(\`[WebGPU BlurFilter] blur_filter_\${b} pipeline not found\`);return}ye[0]=h,ye[1]=d,ye[2]=m,ye[3]=g;const P=u?u.acquireAndWriteUniformBuffer(ye):t.createBuffer({size:ye.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});u||t.queue.writeBuffer(P,0,ye),ct[0].resource.buffer=P,ct[1].resource=i,ct[2].resource=s.texture.view;const S=t.createBindGroup({layout:y,entries:ct}),M=r.createRenderPassDescriptor(o.texture.view,0,0,0,0,"clear"),$=e.beginRenderPass(M);$.setPipeline(x),$.setBindGroup(0,S),$.draw(6,1,0,0),$.end()},l0=(t,e,r,n,s,o,i,l,c,u)=>{const a=n.getPipeline("texture_copy_rgba8"),h=n.getBindGroupLayout("texture_copy");if(!a||!h){console.error("[WebGPU BlurFilter] texture_copy_rgba8 pipeline not found");return}ye[0]=1,ye[1]=1,ye[2]=0,ye[3]=0;const d=u?u.acquireAndWriteUniformBuffer(ye):t.createBuffer({size:ye.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});u||t.queue.writeBuffer(d,0,ye),ct[0].resource.buffer=d,ct[1].resource=i,ct[2].resource=s.texture.view;const m=t.createBindGroup({layout:h,entries:ct}),g=r.createRenderPassDescriptor(o.texture.view,0,0,0,0,"clear"),f=e.beginRenderPass(g);f.setPipeline(a),f.setBindGroup(0,m),f.draw(6,1,0,0),f.end()},de=new Float32Array(20),ls=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],Mc=(t,e,r)=>{const{device:n,commandEncoder:s,frameBufferManager:o,pipelineManager:i,textureManager:l}=r,c=o.createTemporaryAttachment(t.width,t.height),u=i.getPipeline("color_matrix_filter"),a=i.getBindGroupLayout("color_matrix_filter");if(!u||!a)return console.error("[WebGPU ColorMatrixFilter] Pipeline not found"),t;const h=l.createSampler("color_matrix_sampler",!0);de[0]=e[0],de[1]=e[5],de[2]=e[10],de[3]=e[15],de[4]=e[1],de[5]=e[6],de[6]=e[11],de[7]=e[16],de[8]=e[2],de[9]=e[7],de[10]=e[12],de[11]=e[17],de[12]=e[3],de[13]=e[8],de[14]=e[13],de[15]=e[18],de[16]=e[4]/255,de[17]=e[9]/255,de[18]=e[14]/255,de[19]=e[19]/255;const d=r.bufferManager?r.bufferManager.acquireAndWriteUniformBuffer(de):n.createBuffer({size:de.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});r.bufferManager||n.queue.writeBuffer(d,0,de),ls[0].resource.buffer=d,ls[1].resource=h,ls[2].resource=t.texture.view;const m=n.createBindGroup({layout:a,entries:ls}),g=o.createRenderPassDescriptor(c.texture.view,0,0,0,0,"clear"),f=s.beginRenderPass(g);return f.setPipeline(u),f.setBindGroup(0,m),f.draw(6,1,0,0),f.end(),c},Pe=new Float32Array(16),yn=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null},{binding:3,resource:null}],u0=(t,e)=>{const r=(t>>16&255)/255*e,n=(t>>8&255)/255*e,s=(t&255)/255*e;return[r,n,s,e]},Sc=(t,e,r,n,s,o,i,l,c,u,a,h)=>{const{device:d,commandEncoder:m,frameBufferManager:g,pipelineManager:f,textureManager:b}=h,x=ne.x,y=ne.y,P=t.width,S=t.height,M=sr(t,e,s,o,l,a,h),$=M.width,T=M.height,w=ne.x,E=ne.y,F=c?P:$,A=c?S:T,R=w-x,v=E-y,U=c?0:R,L=c?0:v,D=c?-R:0,G=c?-v:0,B=F/P,z=A/S,k=U/P,_=L/S,I=F/$,V=A/T,X=D/$,Y=G/T,W=g.createTemporaryAttachment(F,A),K=f.getFilterPipeline("glow_filter",{IS_INNER:c?1:0,IS_KNOCKOUT:u?1:0}),q=f.getBindGroupLayout("glow_filter");if(!K||!q)return console.error("[WebGPU GlowFilter] Pipeline not found"),g.releaseTemporaryAttachment(M),t;const ce=b.createSampler("glow_sampler",!0),[te,se,ue,Fe]=u0(r,n);Pe[0]=te,Pe[1]=se,Pe[2]=ue,Pe[3]=Fe,Pe[4]=B,Pe[5]=z,Pe[6]=k,Pe[7]=_,Pe[8]=I,Pe[9]=V,Pe[10]=X,Pe[11]=Y,Pe[12]=i,Pe[13]=c?1:0,Pe[14]=u?1:0,Pe[15]=0;const ge=h.bufferManager?h.bufferManager.acquireAndWriteUniformBuffer(Pe):d.createBuffer({size:Pe.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});h.bufferManager||d.queue.writeBuffer(ge,0,Pe),yn[0].resource.buffer=ge,yn[1].resource=ce,yn[2].resource=M.texture.view,yn[3].resource=t.texture.view;const Q=d.createBindGroup({layout:q,entries:yn}),Ct=g.createRenderPassDescriptor(W.texture.view,0,0,0,0,"clear"),Je=m.beginRenderPass(Ct);return Je.setPipeline(K),Je.setBindGroup(0,Q),Je.draw(6,1,0,0),Je.end(),g.releaseTemporaryAttachment(M),W},f0=Math.PI/180,Ae=new Float32Array(16),vn=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null},{binding:3,resource:null}],h0=(t,e)=>{const r=(t>>16&255)/255*e,n=(t>>8&255)/255*e,s=(t&255)/255*e;return[r,n,s,e]},$c=(t,e,r,n,s,o,i,l,c,u,a,h,d,m,g)=>{const{device:f,commandEncoder:b,frameBufferManager:x,pipelineManager:y,textureManager:P}=g,S=ne.x,M=ne.y,$=t.width,T=t.height,w=sr(t,e,i,l,u,m,g),E=w.width,F=w.height,A=ne.x,R=ne.y,v=A-S,U=R-M,L=Math.sqrt(e[0]*e[0]+e[1]*e[1]),D=Math.sqrt(e[2]*e[2]+e[3]*e[3]),G=n*f0,B=Math.cos(G)*r*(L/m),z=Math.sin(G)*r*(D/m),k=a?$:E+Math.max(0,Math.abs(B)-v),_=a?T:F+Math.max(0,Math.abs(z)-U),I=Math.ceil(k),V=Math.ceil(_),X=(I-k)/2,Y=(V-_)/2,W=a?0:Math.max(0,v-B)+X,K=a?0:Math.max(0,U-z)+Y,q=a?B-A:(B>0?Math.max(0,B-v):0)+X,ce=a?z-R:(z>0?Math.max(0,z-U):0)+Y,te=x.createTemporaryAttachment(I,V),se=a;let ue=h,Fe=d;a?ue=h||d:!h&&d&&(ue=!0,Fe=!0);const ge=y.getFilterPipeline("drop_shadow_filter",{IS_INNER:se?1:0,IS_KNOCKOUT:ue?1:0,IS_HIDE_OBJECT:Fe?1:0}),Q=y.getBindGroupLayout("drop_shadow_filter");if(!ge||!Q)return console.error("[WebGPU DropShadowFilter] Pipeline not found"),x.releaseTemporaryAttachment(w),t;const Ct=P.createSampler("drop_shadow_sampler",!0),[Je,Ut,lr,ur]=h0(s,o),Yt=I/$,Gt=V/T,Lt=W/$,Wt=K/T,fr=I/E,jt=V/F,hr=q/E,Ht=ce/F;Ae[0]=Je,Ae[1]=Ut,Ae[2]=lr,Ae[3]=ur,Ae[4]=Yt,Ae[5]=Gt,Ae[6]=Lt,Ae[7]=Wt,Ae[8]=fr,Ae[9]=jt,Ae[10]=hr,Ae[11]=Ht,Ae[12]=c,Ae[13]=se?1:0,Ae[14]=ue?1:0,Ae[15]=Fe?1:0;const lt=g.bufferManager?g.bufferManager.acquireAndWriteUniformBuffer(Ae):f.createBuffer({size:Ae.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});g.bufferManager||f.queue.writeBuffer(lt,0,Ae),vn[0].resource.buffer=lt,vn[1].resource=Ct,vn[2].resource=w.texture.view,vn[3].resource=t.texture.view;const zr=f.createBindGroup({layout:Q,entries:vn}),Bn=x.createRenderPassDescriptor(te.texture.view,0,0,0,0,"clear"),kt=b.beginRenderPass(Bn);return kt.setPipeline(ge),kt.setBindGroup(0,zr),kt.draw(6,1,0,0),kt.end(),x.releaseTemporaryAttachment(w),te},d0=Math.PI/180,dt=new Float32Array(8),pe=new Float32Array(20),us=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],Mn=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null},{binding:3,resource:null}],Tc=(t,e)=>{const r=(t>>16&255)/255*e,n=(t>>8&255)/255*e,s=(t&255)/255*e;return[r,n,s,e]},Bc=(t,e,r,n,s,o,i,l,c,u,a,h,d,m,g,f)=>{const{device:b,commandEncoder:x,frameBufferManager:y,pipelineManager:P,textureManager:S}=f,M=ne.x,$=ne.y,T=t.width,w=t.height,E=Math.sqrt(e[0]*e[0]+e[1]*e[1]),F=Math.sqrt(e[2]*e[2]+e[3]*e[3]),A=n*d0,R=Math.cos(A)*r*(E/g),v=Math.sin(A)*r*(F/g),U=y.createTemporaryAttachment(T,w);x.copyTextureToTexture({texture:t.texture.resource,origin:{x:0,y:0,z:0}},{texture:U.texture.resource,origin:{x:0,y:0,z:0}},{width:T,height:w});const L=P.getPipeline("texture_erase"),D=P.getBindGroupLayout("texture_copy");if(L&&D){const fg=S.createSampler("erase_sampler",!0),hg=R*2/T,dg=v*2/w;dt[0]=1,dt[1]=1,dt[2]=hg,dt[3]=dg,dt[4]=0,dt[5]=0,dt[6]=0,dt[7]=0;const zc=f.bufferManager?f.bufferManager.acquireAndWriteUniformBuffer(dt):b.createBuffer({size:dt.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});f.bufferManager||b.queue.writeBuffer(zc,0,dt),us[0].resource.buffer=zc,us[1].resource=fg,us[2].resource=t.texture.view;const pg=b.createBindGroup({layout:D,entries:us}),mg=y.createRenderPassDescriptor(U.texture.view,0,0,0,0,"load"),gs=x.beginRenderPass(mg);gs.setPipeline(L),gs.setBindGroup(0,pg),gs.draw(6,1,0,0),gs.end()}const G=sr(U,e,c,u,h,g,f);y.releaseTemporaryAttachment(U);const B=G.width,z=G.height,k=Math.abs(R),_=Math.abs(v),I=d===1,V=Math.ceil(B+k*2),X=Math.ceil(z+_*2),Y=I?T:V,W=I?w:X,K=(B-T)/2,q=(z-w)/2,ce=I?0:Math.floor(k+K),te=I?0:Math.floor(_+q),se=Math.floor(I?-K-R:k-R),ue=Math.floor(I?-q-v:_-v),Fe=Y/T,ge=W/w,Q=ce/T,Ct=te/w,Je=Y/B,Ut=W/z,lr=se/B,ur=ue/z,Yt=y.createTemporaryAttachment(Y,W),Gt=P.getFilterPipeline("bevel_filter",{BEVEL_TYPE:d,IS_KNOCKOUT:m?1:0}),Lt=P.getBindGroupLayout("bevel_filter");if(!Gt||!Lt)return console.error("[WebGPU BevelFilter] Pipeline not found"),y.releaseTemporaryAttachment(G),t;const Wt=S.createSampler("bevel_sampler",!0),[fr,jt,hr,Ht]=Tc(s,o),[lt,zr,Bn,kt]=Tc(i,l);pe[0]=fr,pe[1]=jt,pe[2]=hr,pe[3]=Ht,pe[4]=lt,pe[5]=zr,pe[6]=Bn,pe[7]=kt,pe[8]=a,pe[9]=I?1:0,pe[10]=m?1:0,pe[11]=d,pe[12]=Fe,pe[13]=ge,pe[14]=Q,pe[15]=Ct,pe[16]=Je,pe[17]=Ut,pe[18]=lr,pe[19]=ur;const ps=f.bufferManager?f.bufferManager.acquireAndWriteUniformBuffer(pe):b.createBuffer({size:pe.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});f.bufferManager||b.queue.writeBuffer(ps,0,pe),Mn[0].resource.buffer=ps,Mn[1].resource=Wt,Mn[2].resource=G.texture.view,Mn[3].resource=t.texture.view;const ci=b.createBindGroup({layout:Lt,entries:Mn}),Xr=y.createRenderPassDescriptor(Yt.texture.view,0,0,0,0,"clear"),ms=x.beginRenderPass(Xr);return ms.setPipeline(Gt),ms.setBindGroup(0,ci),ms.draw(6,1,0,0),ms.end(),y.releaseTemporaryAttachment(G),ne.x=M+ce,ne.y=$+te,Yt},fs=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],p0=(t,e)=>{const r=(t>>16&255)/255,n=(t>>8&255)/255,s=(t&255)/255;return[r,n,s,e]},Pc=new Map,Ac=(t,e,r,n,s,o,i,l,c,u,a)=>{const{device:h,commandEncoder:d,frameBufferManager:m,textureManager:g}=a,f=t.width,b=t.height,x=m.createTemporaryAttachment(f,b),y=\`\${e},\${r},\${i},\${l}\`;let P=Pc.get(y);if(!P){const B=N.getConvolutionFilterFragmentShader(e,r,i,l),z=h.createShaderModule({code:B}),k=h.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{}}]}),_=h.createPipelineLayout({bindGroupLayouts:[k]});P={pipeline:h.createRenderPipeline({layout:_,vertex:{module:z,entryPoint:"vs_main",buffers:[]},fragment:{module:z,entryPoint:"fs_main",targets:[{format:"rgba8unorm",blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-list",cullMode:"none"}}),bindGroupLayout:k},Pc.set(y,P)}const S=g.createSampler("convolution_sampler",!0),M=e*r,$=Math.ceil(M/4),[T,w,E,F]=p0(c,u),A=new Float32Array($*4);for(let B=0;B<M;B++)A[B]=n[B];const R=32+$*16,v=new Float32Array(R/4);v[0]=1/f,v[1]=1/b,v[2]=s!==0?1/s:1,v[3]=o/255,v[4]=T,v[5]=w,v[6]=E,v[7]=F;for(let B=0;B<A.length;B++)v[8+B]=A[B];const U=a.bufferManager?a.bufferManager.acquireAndWriteUniformBuffer(v):h.createBuffer({size:v.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});a.bufferManager||h.queue.writeBuffer(U,0,v),fs[0].resource.buffer=U,fs[1].resource=S,fs[2].resource=t.texture.view;const L=h.createBindGroup({layout:P.bindGroupLayout,entries:fs}),D=m.createRenderPassDescriptor(x.texture.view,0,0,0,0,"clear"),G=d.beginRenderPass(D);return G.setPipeline(P.pipeline),G.setBindGroup(0,L),G.draw(6,1,0,0),G.end(),x},m0=Math.PI/180,or=new Float32Array(4),Ne=new Float32Array(12),hs=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],Ir=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null},{binding:3,resource:null},{binding:4,resource:null}],Fc=(t,e,r,n,s,o,i,l,c,u,a,h,d,m,g)=>{const{device:f,commandEncoder:b,frameBufferManager:x,pipelineManager:y,textureManager:P}=g,S=ne.x,M=ne.y,$=t.width,T=t.height,w=Math.sqrt(e[0]*e[0]+e[1]*e[1]),E=Math.sqrt(e[2]*e[2]+e[3]*e[3]),F=n*m0,A=Math.cos(F)*r*(w/m),R=Math.sin(F)*r*(E/m),v=y.getPipeline("bevel_base"),U=y.getBindGroupLayout("bevel_base");if(!v||!U)return console.error("[WebGPU GradientBevelFilter] bevel_base pipeline not found"),t;const L=x.createTemporaryAttachment($,T),D=P.createSampler("bevel_base_sampler",!0);or[0]=2*A/$,or[1]=2*R/T,or[2]=0,or[3]=0;const G=g.bufferManager?g.bufferManager.acquireAndWriteUniformBuffer(or):f.createBuffer({size:or.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});g.bufferManager||f.queue.writeBuffer(G,0,or),hs[0].resource.buffer=G,hs[1].resource=D,hs[2].resource=t.texture.view;const B=f.createBindGroup({layout:U,entries:hs}),z=x.createRenderPassDescriptor(L.texture.view,0,0,0,0,"clear"),k=b.beginRenderPass(z);k.setPipeline(v),k.setBindGroup(0,B),k.draw(6,1,0,0),k.end();const _=sr(L,e,l,c,a,m,g);x.releaseTemporaryAttachment(L);const I=_.width,V=_.height,X=h===1,Y=Math.abs(A),W=Math.abs(R),K=(I-$)/2,q=(V-T)/2,ce=Math.ceil(I+Y*2),te=Math.ceil(V+W*2),se=X?$:ce,ue=X?T:te,Fe=X?0:Y+K,ge=X?0:W+q,Q=X?-K-A:Y-A,Ct=X?-q-R:W-R,Je=ac(i,s,o),Ut=f.createTexture({size:{width:256,height:1},format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST});f.queue.writeTexture({texture:Ut},Je.buffer,{bytesPerRow:256*4,offset:Je.byteOffset},{width:256,height:1});const lr=Ut.createView(),ur=se/$,Yt=ue/T,Gt=Fe/$,Lt=ge/T,Wt=se/I,fr=ue/V,jt=Q/I,hr=Ct/V,Ht=x.createTemporaryAttachment(se,ue),lt=y.getFilterPipeline("gradient_bevel_filter",{BEVEL_TYPE:h,IS_KNOCKOUT:d?1:0}),zr=y.getBindGroupLayout("gradient_bevel_filter");if(!lt||!zr)return console.error("[WebGPU GradientBevelFilter] Pipeline not found"),x.releaseTemporaryAttachment(_),t;const Bn=P.createSampler("gradient_bevel_sampler",!0);Ne[0]=u,Ne[1]=X?1:0,Ne[2]=d?1:0,Ne[3]=h,Ne[4]=ur,Ne[5]=Yt,Ne[6]=Gt,Ne[7]=Lt,Ne[8]=Wt,Ne[9]=fr,Ne[10]=jt,Ne[11]=hr;const kt=g.bufferManager?g.bufferManager.acquireAndWriteUniformBuffer(Ne):f.createBuffer({size:Ne.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});g.bufferManager||f.queue.writeBuffer(kt,0,Ne),Ir[0].resource.buffer=kt,Ir[1].resource=Bn,Ir[2].resource=_.texture.view,Ir[3].resource=t.texture.view,Ir[4].resource=lr;const ps=f.createBindGroup({layout:zr,entries:Ir}),ci=x.createRenderPassDescriptor(Ht.texture.view,0,0,0,0,"clear"),Xr=b.beginRenderPass(ci);return Xr.setPipeline(lt),Xr.setBindGroup(0,ps),Xr.draw(6,1,0,0),Xr.end(),g.frameTextures.push(Ut),x.releaseTemporaryAttachment(_),ne.x=S+Fe,ne.y=M+ge,Ht},g0=Math.PI/180,ze=new Float32Array(12),_r=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null},{binding:3,resource:null},{binding:4,resource:null}],wc=(t,e,r,n,s,o,i,l,c,u,a,h,d,m,g)=>{const{device:f,commandEncoder:b,frameBufferManager:x,pipelineManager:y,textureManager:P}=g,S=ne.x,M=ne.y,$=t.width,T=t.height,w=sr(t,e,l,c,a,m,g),E=w.width,F=w.height,A=ne.x,R=ne.y,v=A-S,U=R-M,L=Math.sqrt(e[0]*e[0]+e[1]*e[1]),D=Math.sqrt(e[2]*e[2]+e[3]*e[3]),G=n*g0,B=Math.cos(G)*r*(L/m),z=Math.sin(G)*r*(D/m),k=h===1,_=k?$:E+Math.max(0,Math.abs(B)-v),I=k?T:F+Math.max(0,Math.abs(z)-U),V=Math.ceil(_),X=Math.ceil(I),Y=(V-_)/2,W=(X-I)/2,K=k?0:Math.max(0,v-B)+Y,q=k?0:Math.max(0,U-z)+W,ce=k?B-A:(B>0?Math.max(0,B-v):0)+Y,te=k?z-R:(z>0?Math.max(0,z-U):0)+W,se=ac(i,s,o),ue=f.createTexture({size:{width:256,height:1},format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST});f.queue.writeTexture({texture:ue},se.buffer,{bytesPerRow:256*4,offset:se.byteOffset},{width:256,height:1});const Fe=ue.createView(),ge=V/$,Q=X/T,Ct=K/$,Je=q/T,Ut=V/E,lr=X/F,ur=ce/E,Yt=te/F,Gt=x.createTemporaryAttachment(V,X),Lt=y.getFilterPipeline("gradient_glow_filter",{GLOW_TYPE:h,IS_KNOCKOUT:d?1:0}),Wt=y.getBindGroupLayout("gradient_glow_filter");if(!Lt||!Wt)return console.error("[WebGPU GradientGlowFilter] Pipeline not found"),x.releaseTemporaryAttachment(w),t;const fr=P.createSampler("gradient_glow_sampler",!0);ze[0]=u,ze[1]=k?1:0,ze[2]=d?1:0,ze[3]=h,ze[4]=ge,ze[5]=Q,ze[6]=Ct,ze[7]=Je,ze[8]=Ut,ze[9]=lr,ze[10]=ur,ze[11]=Yt;const jt=g.bufferManager?g.bufferManager.acquireAndWriteUniformBuffer(ze):f.createBuffer({size:ze.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});g.bufferManager||f.queue.writeBuffer(jt,0,ze),_r[0].resource.buffer=jt,_r[1].resource=fr,_r[2].resource=w.texture.view,_r[3].resource=t.texture.view,_r[4].resource=Fe;const hr=f.createBindGroup({layout:Wt,entries:_r}),Ht=x.createRenderPassDescriptor(Gt.texture.view,0,0,0,0,"clear"),lt=b.beginRenderPass(Ht);return lt.setPipeline(Lt),lt.setBindGroup(0,hr),lt.draw(6,1,0,0),lt.end(),g.frameTextures.push(ue),x.releaseTemporaryAttachment(w),ne.x=S+K,ne.y=M+q,Gt},He=new Float32Array(12),Sn=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null},{binding:3,resource:null}],b0=(t,e)=>{const r=(t>>16&255)/255*e,n=(t>>8&255)/255*e,s=(t&255)/255*e;return[r,n,s,e]},Oc=new Map,Ec=(t,e,r,n,s,o,i,l,c,u,a,h,d,m,g,f)=>{const{device:b,commandEncoder:x,frameBufferManager:y,textureManager:P}=f,S=t.width,M=t.height,$=n,T=s,w=y.createTemporaryAttachment(S,M),E=b.createTexture({size:{width:n,height:s},format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST});b.queue.writeTexture({texture:E},r.buffer,{bytesPerRow:n*4,offset:r.byteOffset},{width:n,height:s});const F=\`\${l},\${c},\${h}\`;let A=Oc.get(F);if(!A){const z=N.getDisplacementMapFilterFragmentShader(l,c,h),k=b.createShaderModule({code:N.getBlurFilterVertexShader()}),_=b.createShaderModule({code:z}),I=b.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{}},{binding:2,visibility:GPUShaderStage.FRAGMENT,texture:{}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{}}]}),V=b.createPipelineLayout({bindGroupLayouts:[I]});A={pipeline:b.createRenderPipeline({layout:V,vertex:{module:k,entryPoint:"main",buffers:[]},fragment:{module:_,entryPoint:"main",targets:[{format:"rgba8unorm",blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}}}]},primitive:{topology:"triangle-list",cullMode:"none"}}),bindGroupLayout:I},Oc.set(F,A)}const R=P.createSampler("displacement_sampler",!0),v=h===1,U=v?48:32;if(He[0]=$/n,He[1]=T/s,He[2]=o/n,He[3]=(T-s-i)/s,He[4]=u/$,He[5]=a/T,He[6]=0,He[7]=0,v){const[z,k,_,I]=b0(d,m);He[8]=z,He[9]=k,He[10]=_,He[11]=I}const L=f.bufferManager?f.bufferManager.acquireAndWriteUniformBuffer(He,U):b.createBuffer({size:U,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST});f.bufferManager||b.queue.writeBuffer(L,0,He,0,U/4),Sn[0].resource.buffer=L,Sn[1].resource=R,Sn[2].resource=t.texture.view,Sn[3].resource=E.createView();const D=b.createBindGroup({layout:A.bindGroupLayout,entries:Sn}),G=y.createRenderPassDescriptor(w.texture.view,0,0,0,0,"clear"),B=x.beginRenderPass(G);return B.setPipeline(A.pipeline),B.setBindGroup(0,D),B.draw(6,1,0,0),B.end(),f.frameTextures.push(E),w},bt=new Float32Array(4),Te=new Float32Array(6),Ee=new Float32Array(6),oe=new Float32Array(8),Ze=new Float32Array(12),ve=new Float32Array(20),fe=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],x0=new Set(["normal","layer","add","screen","alpha","erase","copy"]),y0=new Float32Array([1,-1,0,1]),v0=t=>t[0]===1&&t[1]===1&&t[2]===1&&t[3]===1&&t[4]===0&&t[5]===0&&t[6]===0&&t[7]===0,M0=(t,e,r)=>{const n=t.frameBufferManager.createTemporaryAttachment(e.width,e.height),s=t.pipelineManager.getPipeline("color_transform"),o=t.pipelineManager.getBindGroupLayout("texture_copy");if(!s||!o||!e.texture||!n.texture)return e;oe[0]=r[0],oe[1]=r[1],oe[2]=r[2],oe[3]=r[3],oe[4]=r[4],oe[5]=r[5],oe[6]=r[6],oe[7]=0;const i=t.bufferManager.acquireAndWriteUniformBuffer(oe),l=t.textureManager.createSampler("color_transform_sampler",!1);fe[0].resource.buffer=i,fe[1].resource=l,fe[2].resource=e.texture.view;const c=t.device.createBindGroup({layout:o,entries:fe}),u=t.frameBufferManager.createRenderPassDescriptor(n.texture.view,0,0,0,0,"clear"),a=t.commandEncoder.beginRenderPass(u);return a.setPipeline(s),a.setBindGroup(0,c),a.draw(6,1,0,0),a.end(),n},S0=(t,e,r)=>{const n=r.createTemporaryAttachment(t.w,t.h),s=We()||r.getAttachment("atlas");return s&&s.texture&&n.texture?e.copyTextureToTexture({texture:s.texture.resource,origin:{x:t.x,y:t.y,z:0}},{texture:n.texture.resource,origin:{x:0,y:0,z:0}},{width:t.w,height:t.h}):console.error("[WebGPU Filter] getTextureFromNode: FAILED - missing atlas or textures"),n},$0=t=>x0.has(t),T0=(t,e,r,n,s,o)=>{const i=t.frameBufferManager.createTemporaryAttachment(s,o),l=t.pipelineManager.getPipeline("complex_blend_copy"),c=t.pipelineManager.getBindGroupLayout("texture_copy");if(!l||!c||!e.texture||!i.texture)return i;const u=s/e.width,a=o/e.height,h=r/e.width,d=n/e.height;bt[0]=u,bt[1]=a,bt[2]=h,bt[3]=d;const m=t.bufferManager.acquireAndWriteUniformBuffer(bt),g=t.textureManager.createSampler("filter_copy_sampler",!1);fe[0].resource.buffer=m,fe[1].resource=g,fe[2].resource=e.texture.view;const f=t.device.createBindGroup({layout:c,entries:fe}),b=t.frameBufferManager.createRenderPassDescriptor(i.texture.view,0,0,0,0,"clear"),x=t.commandEncoder.beginRenderPass(b);return x.setPipeline(l),x.setBindGroup(0,f),x.draw(6,1,0,0),x.end(),i},B0=(t,e,r,n,s)=>{const o=r.msaa&&r.msaaTexture?.view,i=o?"filter_complex_blend_output_msaa":"filter_complex_blend_output",l=t.pipelineManager.getPipeline(i),c=t.pipelineManager.getBindGroupLayout("positioned_texture");if(!l||!c||!e.texture||!r.texture)return;oe[0]=n,oe[1]=s,oe[2]=e.width,oe[3]=e.height,oe[4]=r.width,oe[5]=r.height,oe[6]=0,oe[7]=0;const u=t.bufferManager.acquireAndWriteUniformBuffer(oe),a=t.textureManager.createSampler("filter_blend_output_sampler",!1);fe[0].resource.buffer=u,fe[1].resource=a,fe[2].resource=e.texture.view;const h=t.device.createBindGroup({layout:c,entries:fe}),d=o?r.msaaTexture.view:r.texture.view,m=o?r.texture.view:null,g=t.frameBufferManager.createRenderPassDescriptor(d,0,0,0,0,"load",m),f=t.commandEncoder.beginRenderPass(g);f.setPipeline(l),f.setBindGroup(0,h),f.draw(6,1,0,0),f.end()},P0=(t,e,r,n,s,o,i,l)=>{const c=t.mainAttachment||t.frameBufferManager.getAttachment("main");if(!c||!c.texture||!e.texture)return;let u=s,a=o,h=e.width,d=e.height,m=0,g=0;if(u<0&&(m=-u/e.width,h+=u,u=0),a<0&&(g=-a/e.height,d+=a,a=0),h<=0||d<=0)return;const f=c.width,b=c.height;if(u+h>f&&(h=f-u),a+d>b&&(d=b-a),$0(n)){const x=c.msaa&&c.msaaTexture?.view;let y;switch(n){case"add":y=x?"filter_output_add_msaa":"filter_output_add";break;case"screen":y=x?"filter_output_screen_msaa":"filter_output_screen";break;case"alpha":y=x?"filter_output_alpha_msaa":"filter_output_alpha";break;case"erase":y=x?"filter_output_erase_msaa":"filter_output_erase";break;case"copy":y=x?"texture_copy_bgra_msaa":"texture_copy_bgra";break;default:y=x?"filter_output_msaa":"filter_output";break}let P=t.pipelineManager.getPipeline(y),S=t.pipelineManager.getBindGroupLayout("texture_copy");if((!P||!S)&&(y=x?"filter_output_msaa":"filter_output",P=t.pipelineManager.getPipeline(y),S=t.pipelineManager.getBindGroupLayout("texture_copy"),!P||!S))return;const M=t.textureManager.createSampler("filter_output_sampler",!0),$=h/e.width,T=d/e.height;bt[0]=$,bt[1]=T,bt[2]=m,bt[3]=g;const w=t.bufferManager.acquireAndWriteUniformBuffer(bt);fe[0].resource.buffer=w,fe[1].resource=M,fe[2].resource=e.texture.view;const E=t.device.createBindGroup({layout:S,entries:fe}),F=x?c.msaaTexture.view:c.texture.view,A=x?c.texture.view:null,R=t.frameBufferManager.createRenderPassDescriptor(F,0,0,0,0,"load",A),v=Math.max(0,u),U=Math.max(0,a),L=Math.max(1,h),D=Math.max(1,d),G=Math.max(0,Math.floor(v)),B=Math.max(0,Math.floor(U)),z=Math.max(1,Math.min(Math.ceil(v+L)-G,f-G)),k=Math.max(1,Math.min(Math.ceil(U+D)-B,b-B));if(z<=0||k<=0||G>=f||B>=b)return;const _=t.commandEncoder.beginRenderPass(R);_.setPipeline(P),_.setBindGroup(0,E),_.setViewport(v,U,L,D,0,1),_.setScissorRect(G,B,z,k),_.draw(6,1,0,0),_.end()}else{const x=T0(t,c,u,a,h,d);oe[0]=r[0],oe[1]=r[1],oe[2]=r[2],oe[3]=r[3],oe[4]=r[4],oe[5]=r[5],oe[6]=r[6],oe[7]=0;const y=Xo(e,x,n,oe,{device:t.device,commandEncoder:t.commandEncoder,bufferManager:t.bufferManager,frameBufferManager:t.frameBufferManager,pipelineManager:t.pipelineManager,textureManager:t.textureManager,frameTextures:t.frameTextures});B0(t,y,c,u,a),t.frameBufferManager.releaseTemporaryAttachment(x),t.frameBufferManager.releaseTemporaryAttachment(y)}},A0=(t,e,r,n,s,o,i,l,c,u,a,h)=>{ne.x=0,ne.y=0;let d=S0(t,u.commandEncoder,u.frameBufferManager);if(d.texture){const B=u.frameBufferManager.createTemporaryAttachment(t.w,t.h),z=u.pipelineManager.getPipeline("texture_copy_rgba8"),k=u.pipelineManager.getBindGroupLayout("texture_copy");if(z&&k&&B.texture){const _=u.textureManager.createSampler("filter_flip_sampler",!1),I=u.bufferManager.acquireAndWriteUniformBuffer(y0);fe[0].resource.buffer=I,fe[1].resource=_,fe[2].resource=d.texture.view;const V=u.device.createBindGroup({layout:k,entries:fe}),X=u.frameBufferManager.createRenderPassDescriptor(B.texture.view,0,0,0,0,"clear"),Y=u.commandEncoder.beginRenderPass(X);Y.setPipeline(z),Y.setBindGroup(0,V),Y.draw(6,1,0,0),Y.end(),u.frameBufferManager.releaseTemporaryAttachment(d),d=B}}const m=le.getDevicePixelRatio(),g=Math.sqrt(s[0]*s[0]+s[1]*s[1]),f=Math.sqrt(s[2]*s[2]+s[3]*s[3]),b=Math.atan2(s[1],s[0]),x=Math.atan2(-s[2],s[3]),y=n?g*Math.cos(b):Math.cos(b),P=n?g*Math.sin(b):Math.sin(b),S=n?-f*Math.sin(x):-Math.sin(x),M=n?f*Math.cos(x):Math.cos(x);Te[0]=y,Te[1]=P,Te[2]=S,Te[3]=M,Te[4]=e/2,Te[5]=r/2,Ee[0]=1,Ee[1]=0,Ee[2]=0,Ee[3]=1,Ee[4]=-t.w/2,Ee[5]=-t.h/2;const $=Te[0]*Ee[0]+Te[2]*Ee[1],T=Te[1]*Ee[0]+Te[3]*Ee[1],w=Te[0]*Ee[2]+Te[2]*Ee[3],E=Te[1]*Ee[2]+Te[3]*Ee[3],F=Te[0]*Ee[4]+Te[2]*Ee[5]+Te[4],A=Te[1]*Ee[4]+Te[3]*Ee[5]+Te[5];let R=0,v=0;if($!==1||T!==0||w!==0||E!==1){const B=u.frameBufferManager.createTemporaryAttachment(e,r),k=u.pipelineManager.getPipeline("texture_scale"),_=u.pipelineManager.getBindGroupLayout("texture_scale");if(k&&_){Ze[0]=$,Ze[1]=T,Ze[2]=w,Ze[3]=E,Ze[4]=F,Ze[5]=A,Ze[6]=t.w,Ze[7]=t.h,Ze[8]=e,Ze[9]=r,Ze[10]=0,Ze[11]=0;const I=u.bufferManager.acquireAndWriteUniformBuffer(Ze,48),V=u.textureManager.createSampler("filter_scale_sampler",!0);fe[0].resource.buffer=I,fe[1].resource=V,fe[2].resource=d.texture.view;const X=u.device.createBindGroup({layout:_,entries:fe}),Y=u.frameBufferManager.createRenderPassDescriptor(B.texture.view,0,0,0,0,"clear"),W=u.commandEncoder.beginRenderPass(Y);W.setPipeline(k),W.setBindGroup(0,X),W.draw(6,1,0,0),W.end(),R=F,v=A,u.frameBufferManager.releaseTemporaryAttachment(d),d=B}}for(let B=0;c.length>B;)switch(c[B++]){case 0:{const k=c[B++],_=c[B++],I=c[B++],V=c[B++],X=c[B++],Y=c[B++],W=c[B++],K=c[B++],q=c[B++],ce=c[B++],te=c[B++],se=!!c[B++],ue=Bc(d,s,k,_,I,V,X,Y,W,K,q,ce,te,se,m,u);d!==ue&&u.frameBufferManager.releaseTemporaryAttachment(d),d=ue}break;case 1:{const k=c[B++],_=c[B++],I=c[B++],V=sr(d,s,k,_,I,m,u);d!==V&&u.frameBufferManager.releaseTemporaryAttachment(d),d=V}break;case 2:{ve[0]=c[B++],ve[1]=c[B++],ve[2]=c[B++],ve[3]=c[B++],ve[4]=c[B++],ve[5]=c[B++],ve[6]=c[B++],ve[7]=c[B++],ve[8]=c[B++],ve[9]=c[B++],ve[10]=c[B++],ve[11]=c[B++],ve[12]=c[B++],ve[13]=c[B++],ve[14]=c[B++],ve[15]=c[B++],ve[16]=c[B++],ve[17]=c[B++],ve[18]=c[B++],ve[19]=c[B++];const k=Mc(d,ve,u);d!==k&&u.frameBufferManager.releaseTemporaryAttachment(d),d=k}break;case 3:{const k=c[B++],_=c[B++],I=k*_,V=new Float32Array(I);for(let se=0;se<I;se++)V[se]=c[B++];const X=c[B++],Y=c[B++],W=!!c[B++],K=!!c[B++],q=c[B++],ce=c[B++],te=Ac(d,k,_,V,X,Y,W,K,q,ce,u);d!==te&&u.frameBufferManager.releaseTemporaryAttachment(d),d=te}break;case 4:{const k=c[B++],_=new Uint8Array(k);for(let ge=0;ge<k;ge++)_[ge]=c[B++];const I=c[B++],V=c[B++],X=c[B++],Y=c[B++],W=c[B++],K=c[B++],q=c[B++],ce=c[B++],te=c[B++],se=c[B++],ue=c[B++],Fe=Ec(d,s,_,I,V,X,Y,W,K,q,ce,te,se,ue,m,u);d!==Fe&&u.frameBufferManager.releaseTemporaryAttachment(d),d=Fe}break;case 5:{const k=c[B++],_=c[B++],I=c[B++],V=c[B++],X=c[B++],Y=c[B++],W=c[B++],K=c[B++],q=!!c[B++],ce=!!c[B++],te=!!c[B++],se=$c(d,s,k,_,I,V,X,Y,W,K,q,ce,te,m,u);d!==se&&u.frameBufferManager.releaseTemporaryAttachment(d),d=se}break;case 6:{const k=c[B++],_=c[B++],I=c[B++],V=c[B++],X=c[B++],Y=c[B++],W=!!c[B++],K=!!c[B++],q=Sc(d,s,k,_,I,V,X,Y,W,K,m,u);d!==q&&u.frameBufferManager.releaseTemporaryAttachment(d),d=q}break;case 7:{const k=c[B++],_=c[B++],I=c[B++],V=new Float32Array(I);for(let Q=0;Q<I;Q++)V[Q]=c[B++];const X=c[B++],Y=new Float32Array(X);for(let Q=0;Q<X;Q++)Y[Q]=c[B++];const W=c[B++],K=new Float32Array(W);for(let Q=0;Q<W;Q++)K[Q]=c[B++];const q=c[B++],ce=c[B++],te=c[B++],se=c[B++],ue=c[B++],Fe=!!c[B++],ge=Fc(d,s,k,_,V,Y,K,q,ce,te,se,ue,Fe,m,u);d!==ge&&u.frameBufferManager.releaseTemporaryAttachment(d),d=ge}break;case 8:{const k=c[B++],_=c[B++],I=c[B++],V=new Float32Array(I);for(let Q=0;Q<I;Q++)V[Q]=c[B++];const X=c[B++],Y=new Float32Array(X);for(let Q=0;Q<X;Q++)Y[Q]=c[B++];const W=c[B++],K=new Float32Array(W);for(let Q=0;Q<W;Q++)K[Q]=c[B++];const q=c[B++],ce=c[B++],te=c[B++],se=c[B++],ue=c[B++],Fe=!!c[B++],ge=wc(d,s,k,_,V,Y,K,q,ce,te,se,ue,Fe,m,u);d!==ge&&u.frameBufferManager.releaseTemporaryAttachment(d),d=ge}break}if(!v0(o)){const B=M0(u,d,o);u.frameBufferManager.releaseTemporaryAttachment(d),d=B}const U=l[0]*(g/m),L=l[1]*(f/m),D=-R+U+s[4],G=-v+L+s[5];P0(u,d,o,i,D,G),u.frameBufferManager.releaseTemporaryAttachment(d)},xt=new Float32Array(4),ie=new Float32Array(8),Me=new Float32Array(20),Ie=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],F0=new Set(["normal","layer","add","screen","alpha","erase","copy"]),ir=new Float32Array([1,1,1,1,0,0,0,0]),Rc=t=>t?t[0]===1&&t[1]===1&&t[2]===1&&t[3]===1&&t[4]===0&&t[5]===0&&t[6]===0&&t[7]===0:!0,Cc=(t,e,r)=>{const n=t.frameBufferManager.createTemporaryAttachment(e.width,e.height),s=t.pipelineManager.getPipeline("color_transform"),o=t.pipelineManager.getBindGroupLayout("texture_copy");if(!s||!o||!e.texture||!n.texture)return e;ie[0]=r[0],ie[1]=r[1],ie[2]=r[2],ie[3]=r[3],ie[4]=r[4],ie[5]=r[5],ie[6]=r[6],ie[7]=0;const i=t.bufferManager.acquireAndWriteUniformBuffer(ie),l=t.textureManager.createSampler("container_ct_sampler",!1);Ie[0].resource.buffer=i,Ie[1].resource=l,Ie[2].resource=e.texture.view;const c=t.device.createBindGroup({layout:o,entries:Ie}),u=t.frameBufferManager.createRenderPassDescriptor(n.texture.view,0,0,0,0,"clear"),a=t.commandEncoder.beginRenderPass(u);return a.setPipeline(s),a.setBindGroup(0,c),a.draw(6,1,0,0),a.end(),n},Yo=(t,e,r,n,s,o)=>{const i=t.frameBufferManager.createTemporaryAttachment(s,o),l=t.pipelineManager.getPipeline("complex_blend_copy"),c=t.pipelineManager.getBindGroupLayout("texture_copy");if(!l||!c||!e.texture||!i.texture)return i;const u=s/e.width,a=r/e.width,h=-(o/e.height),d=(n+o)/e.height;xt[0]=u,xt[1]=h,xt[2]=a,xt[3]=d;const m=t.bufferManager.acquireAndWriteUniformBuffer(xt),g=t.textureManager.createSampler("container_copy_sampler",!1);Ie[0].resource.buffer=m,Ie[1].resource=g,Ie[2].resource=e.texture.view;const f=t.device.createBindGroup({layout:c,entries:Ie}),b=t.frameBufferManager.createRenderPassDescriptor(i.texture.view,0,0,0,0,"clear"),x=t.commandEncoder.beginRenderPass(b);return x.setPipeline(l),x.setBindGroup(0,f),x.draw(6,1,0,0),x.end(),i},Uc=(t,e,r,n,s,o,i)=>{if(!r.texture||!e.texture)return;let l=s,c=o,u=e.width,a=e.height,h=0,d=0;if(l<0&&(h=-l/e.width,u+=l,l=0),c<0&&(d=-c/e.height,a+=c,c=0),u<=0||a<=0)return;const m=r.width,g=r.height;if(l+u>m&&(u=m-l),c+a>g&&(a=g-c),F0.has(n)){const f=r.msaa&&r.msaaTexture?.view;let b;switch(n){case"add":b=f?"filter_output_add_msaa":"filter_output_add";break;case"screen":b=f?"filter_output_screen_msaa":"filter_output_screen";break;case"alpha":b=f?"filter_output_alpha_msaa":"filter_output_alpha";break;case"erase":b=f?"filter_output_erase_msaa":"filter_output_erase";break;case"copy":b=f?"texture_copy_bgra_msaa":"texture_copy_bgra";break;default:b=f?"filter_output_msaa":"filter_output";break}const x=t.pipelineManager.getPipeline(b),y=t.pipelineManager.getBindGroupLayout("texture_copy");if(!x||!y)return;const P=t.textureManager.createSampler("container_output_sampler",!0),S=u/e.width,M=a/e.height;xt[0]=S,xt[1]=M,xt[2]=h,xt[3]=d;const $=i.acquireAndWriteUniformBuffer(xt);Ie[0].resource.buffer=$,Ie[1].resource=P,Ie[2].resource=e.texture.view;const T=t.device.createBindGroup({layout:y,entries:Ie}),w=f?r.msaaTexture.view:r.texture.view,E=f?r.texture.view:null,F=t.frameBufferManager.createRenderPassDescriptor(w,0,0,0,0,"load",E),A=Math.max(0,l),R=Math.max(0,c),v=Math.max(1,u),U=Math.max(1,a),L=Math.max(0,Math.floor(A)),D=Math.max(0,Math.floor(R)),G=Math.max(1,Math.min(Math.ceil(A+v)-L,m-L)),B=Math.max(1,Math.min(Math.ceil(R+U)-D,g-D));if(G<=0||B<=0||L>=m||D>=g)return;const z=t.commandEncoder.beginRenderPass(F);z.setPipeline(x),z.setBindGroup(0,T),z.setViewport(A,R,v,U,0,1),z.setScissorRect(L,D,G,B),z.draw(6,1,0,0),z.end()}else{const f=Yo(t,r,l,c,u,a);ie[0]=ir[0],ie[1]=ir[1],ie[2]=ir[2],ie[3]=ir[3],ie[4]=ir[4]/255,ie[5]=ir[5]/255,ie[6]=ir[6]/255,ie[7]=0;const b=Xo(e,f,n,ie,{device:t.device,commandEncoder:t.commandEncoder,bufferManager:t.bufferManager,frameBufferManager:t.frameBufferManager,pipelineManager:t.pipelineManager,textureManager:t.textureManager,frameTextures:t.frameTextures}),x=r.msaa&&r.msaaTexture?.view,y=x?"filter_complex_blend_output_msaa":"filter_complex_blend_output",P=t.pipelineManager.getPipeline(y),S=t.pipelineManager.getBindGroupLayout("positioned_texture");if(P&&S&&b.texture&&r.texture){ie[0]=l,ie[1]=c,ie[2]=b.width,ie[3]=b.height,ie[4]=r.width,ie[5]=r.height,ie[6]=0,ie[7]=0;const M=i.acquireAndWriteUniformBuffer(ie),$=t.textureManager.createSampler("container_blend_output_sampler",!1);Ie[0].resource.buffer=M,Ie[1].resource=$,Ie[2].resource=b.texture.view;const T=t.device.createBindGroup({layout:S,entries:Ie}),w=x?r.msaaTexture.view:r.texture.view,E=x?r.texture.view:null,F=t.frameBufferManager.createRenderPassDescriptor(w,0,0,0,0,"load",E),A=t.commandEncoder.beginRenderPass(F);A.setPipeline(P),A.setBindGroup(0,T),A.draw(6,1,0,0),A.end()}t.frameBufferManager.releaseTemporaryAttachment(f),t.frameBufferManager.releaseTemporaryAttachment(b)}},w0=(t,e,r,n,s)=>{ne.x=0,ne.y=0;for(let o=0;r.length>o;)switch(r[o++]){case 0:{const l=Bc(t,e,r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],!!r[o++],n,s);t!==l&&s.frameBufferManager.releaseTemporaryAttachment(t),t=l}break;case 1:{const l=sr(t,e,r[o++],r[o++],r[o++],n,s);t!==l&&s.frameBufferManager.releaseTemporaryAttachment(t),t=l}break;case 2:{Me[0]=r[o++],Me[1]=r[o++],Me[2]=r[o++],Me[3]=r[o++],Me[4]=r[o++],Me[5]=r[o++],Me[6]=r[o++],Me[7]=r[o++],Me[8]=r[o++],Me[9]=r[o++],Me[10]=r[o++],Me[11]=r[o++],Me[12]=r[o++],Me[13]=r[o++],Me[14]=r[o++],Me[15]=r[o++],Me[16]=r[o++],Me[17]=r[o++],Me[18]=r[o++],Me[19]=r[o++];const l=Mc(t,Me,s);t!==l&&s.frameBufferManager.releaseTemporaryAttachment(t),t=l}break;case 3:{const l=r[o++],c=r[o++],u=l*c,a=new Float32Array(u);for(let d=0;d<u;d++)a[d]=r[o++];const h=Ac(t,l,c,a,r[o++],r[o++],!!r[o++],!!r[o++],r[o++],r[o++],s);t!==h&&s.frameBufferManager.releaseTemporaryAttachment(t),t=h}break;case 4:{const l=r[o++],c=new Uint8Array(l);for(let a=0;a<l;a++)c[a]=r[o++];const u=Ec(t,e,c,r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],n,s);t!==u&&s.frameBufferManager.releaseTemporaryAttachment(t),t=u}break;case 5:{const l=$c(t,e,r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],!!r[o++],!!r[o++],!!r[o++],n,s);t!==l&&s.frameBufferManager.releaseTemporaryAttachment(t),t=l}break;case 6:{const l=Sc(t,e,r[o++],r[o++],r[o++],r[o++],r[o++],r[o++],!!r[o++],!!r[o++],n,s);t!==l&&s.frameBufferManager.releaseTemporaryAttachment(t),t=l}break;case 7:{const l=r[o++],c=r[o++],u=r[o++],a=new Float32Array(u);for(let b=0;b<u;b++)a[b]=r[o++];const h=r[o++],d=new Float32Array(h);for(let b=0;b<h;b++)d[b]=r[o++];const m=r[o++],g=new Float32Array(m);for(let b=0;b<m;b++)g[b]=r[o++];const f=Fc(t,e,l,c,a,d,g,r[o++],r[o++],r[o++],r[o++],r[o++],!!r[o++],n,s);t!==f&&s.frameBufferManager.releaseTemporaryAttachment(t),t=f}break;case 8:{const l=r[o++],c=r[o++],u=r[o++],a=new Float32Array(u);for(let b=0;b<u;b++)a[b]=r[o++];const h=r[o++],d=new Float32Array(h);for(let b=0;b<h;b++)d[b]=r[o++];const m=r[o++],g=new Float32Array(m);for(let b=0;b<m;b++)g[b]=r[o++];const f=wc(t,e,l,c,a,d,g,r[o++],r[o++],r[o++],r[o++],r[o++],!!r[o++],n,s);t!==f&&s.frameBufferManager.releaseTemporaryAttachment(t),t=f}break}return t},O0=(t,e,r,n,s,o,i,l,c,u,a,h,d,m,g)=>{if(i&&s&&l&&c){let f=Yo(m,t,0,0,t.width,t.height);m.frameBufferManager.releaseTemporaryAttachment(t);const b=le.getDevicePixelRatio();if(f=w0(f,s,c,b,m),u&&(ee.set(u,"fKey",a),ee.set(u,"fTexture",f)),f){let x=f,y=null;Rc(o)||(y=Cc(m,f,o),x=y);const P=Math.sqrt(s[0]*s[0]+s[1]*s[1]),S=Math.sqrt(s[2]*s[2]+s[3]*s[3]),M=l[0]*(P/b),$=l[1]*(S/b),T=M+s[4],w=$+s[5];Uc(m,x,e,n,T,w,g),y&&m.frameBufferManager.releaseTemporaryAttachment(y),u||m.frameBufferManager.releaseTemporaryAttachment(f)}}else{let f=Yo(m,t,0,0,t.width,t.height);if(m.frameBufferManager.releaseTemporaryAttachment(t),!Rc(o)){const b=Cc(m,f,o);m.frameBufferManager.releaseTemporaryAttachment(f),f=b}Uc(m,f,e,n,s[4],s[5],g),m.frameBufferManager.releaseTemporaryAttachment(f)}},$n=new Float32Array([1,1,0,0]),Wo=[],Gc=new Float32Array([0,0,.5,.5,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,.5,.5,1,1,1,1,1,0,0,0,1,0,0,0,1,0,1,.5,.5,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,.5,.5,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,.5,.5,1,1,1,1,1,0,0,0,1,0,0,0,1,0,1,.5,.5,1,1,1,1,1,0,0,0,1,0,0,0,1]),Lc=new Float32Array([0,0,1,0,0,1,1,0,1,1,0,1]),Et=new Float32Array(8),ke=new Float32Array(16);let jo=null,kc=null,ds=null;const Ic={view:null,clearValue:{r:0,g:0,b:0,a:0},loadOp:"clear",storeOp:"store"},E0={colorAttachments:[Ic]},he=[{binding:0,resource:{buffer:null}},{binding:1,resource:null},{binding:2,resource:null}],Tn={r:0,g:0,b:0,a:0},Ho={view:null,clearValue:Tn,loadOp:"clear",storeOp:"store",resolveTarget:void 0},_c={view:null,stencilClearValue:0,stencilLoadOp:"clear",stencilStoreOp:"store"},Ko={colorAttachments:[Ho]},ar={view:null,resolveTarget:void 0,loadOp:"load",storeOp:"store"},Vr={view:null,stencilLoadOp:"load",stencilStoreOp:"store"},Rt={colorAttachments:[ar]};class R0{$stack;$matrix;$clearColorR;$clearColorG;$clearColorB;$clearColorA;$mainAttachmentObject;$stackAttachmentObject;globalAlpha;globalCompositeOperation;imageSmoothingEnabled;$fillStyle;$strokeStyle;maskBounds;thickness;caps;joints;miterLimit;device;canvasContext;preferredFormat;commandEncoder=null;renderPassEncoder=null;mainTexture=null;mainTextureView=null;frameStarted=!1;frameTextures=[];pooledTextures=[];pooledRenderTextures=[];currentRenderTarget=null;viewportWidth=0;viewportHeight=0;pathCommand;bufferManager;textureManager;frameBufferManager;pipelineManager;computePipelineManager;attachmentManager;newDrawState=!1;$containerLayerStack=[];containerLayerContentSizes=[];inMaskMode=!1;nodeAreaCleared=!1;currentNodeScissor=null;nodeRenderPassAtlasIndex=-1;fillDynamicBindGroup=null;fillDynamicBindGroupBuffer=null;nodeClearQuadBuffer=null;useOptimizedInstancing=!0;$needsReconfigure=!1;$uniformData8=new Float32Array(8);$scissorRect={x:0,y:0,w:0,h:0};$filterConfig;constructor(e,r,n,s=1){this.device=e,this.canvasContext=r,this.preferredFormat=n,le.setDevice(e),le.setDevicePixelRatio(s);const o=e.limits.maxTextureDimension2D,i=Math.max(2048,o/2);le.setRenderMaxSize(i),this.$stack=le.createArray(),this.$stackAttachmentObject=le.createArray(),this.$matrix=le.createFloat32Array(9),this.$matrix.set([1,0,0,0,1,0,0,0,1]),this.$clearColorR=0,this.$clearColorG=0,this.$clearColorB=0,this.$clearColorA=0,this.thickness=1,this.caps=0,this.joints=2,this.miterLimit=0,this.$mainAttachmentObject=null,this.globalAlpha=1,this.globalCompositeOperation="normal",this.imageSmoothingEnabled=!1,this.$fillStyle=new Float32Array([1,1,1,1]),this.$strokeStyle=new Float32Array([1,1,1,1]),this.maskBounds={xMin:0,yMin:0,xMax:0,yMax:0},r.configure({device:e,format:n,alphaMode:"premultiplied"}),this.viewportWidth=r.canvas.width,this.viewportHeight=r.canvas.height,this.pathCommand=new xd,this.bufferManager=new Od(e),this.textureManager=new Ud(e),this.frameBufferManager=new Hd(e,n),this.pipelineManager=new qp(e,n),this.pipelineManager.preloadLazyGroups(),this.computePipelineManager=new Qp(e),this.attachmentManager=new ip(e),em(l=>{const c=le.getRenderMaxSize();return this.frameBufferManager.createAttachment(\`atlas_\${l}\`,c,c,!1,!0)}),this.$filterConfig={device:this.device,commandEncoder:null,bufferManager:this.bufferManager,frameBufferManager:this.frameBufferManager,pipelineManager:this.pipelineManager,textureManager:this.textureManager,computePipelineManager:this.computePipelineManager,frameTextures:this.frameTextures},ud(this)}clearTransferBounds(){this.beginFrame()}updateBackgroundColor(e,r,n,s){this.$clearColorR=e,this.$clearColorG=r,this.$clearColorB=n,this.$clearColorA=s}fillBackgroundColor(){if(!this.$mainAttachmentObject||!this.$mainAttachmentObject.texture)return;this.frameStarted||this.beginFrame(),this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null),this.ensureCommandEncoder();const e=this.$mainAttachmentObject.msaa&&this.$mainAttachmentObject.msaaTexture?.view;Ho.view=e?this.$mainAttachmentObject.msaaTexture.view:this.$mainAttachmentObject.texture.view,Ho.resolveTarget=e?this.$mainAttachmentObject.texture.view:void 0,Tn.r=this.$clearColorR,Tn.g=this.$clearColorG,Tn.b=this.$clearColorB,Tn.a=this.$clearColorA;const r=e&&this.$mainAttachmentObject.msaaStencil?.view?this.$mainAttachmentObject.msaaStencil.view:this.$mainAttachmentObject.stencil?.view;r?(_c.view=r,Ko.depthStencilAttachment=_c):Ko.depthStencilAttachment=void 0,this.renderPassEncoder=this.commandEncoder.beginRenderPass(Ko),this.renderPassEncoder.end(),this.renderPassEncoder=null}resize(e,r,n=!0){this.clearArraysInstanced();for(const s of this.frameTextures)s.destroy();this.frameTextures.length=0;for(const s of this.pooledTextures)Ot(s);this.pooledTextures.length=0;for(const s of this.pooledRenderTextures)Xt(s);if(this.pooledRenderTextures.length=0,Em(),this.frameStarted=!1,this.commandEncoder=null,this.renderPassEncoder=null,this.currentRenderTarget=null,am(),this.$stackAttachmentObject.length){for(let s=0;s<this.$stackAttachmentObject.length;++s){const o=this.$stackAttachmentObject[s];o&&(o.texture&&o.texture.resource.destroy(),o.stencil&&o.stencil.resource.destroy(),o.msaaTexture&&o.msaaTexture.resource.destroy(),o.msaaStencil&&o.msaaStencil.resource.destroy())}this.$stackAttachmentObject.length=0}this.$mainAttachmentObject&&this.frameBufferManager.destroyAttachment("main"),n&&(Rm(),Gm(),Lm(),rm(),this.frameBufferManager.destroyAttachment("atlas"),this.frameBufferManager.createAttachment("atlas",4096,4096,!1,!0)),this.frameBufferManager.setCurrentAttachment(null),this.$needsReconfigure=!0,this.mainTexture=null,this.mainTextureView=null,this.$mainAttachmentObject=this.frameBufferManager.createAttachment("main",e,r,!0,!0),this.bind(this.$mainAttachmentObject)}clearRect(e,r,n,s){}save(){const e=Wo.length>0?Wo.pop():new Float32Array(9);e.set(this.$matrix),this.$stack.push(e)}restore(){const e=this.$stack.pop();e&&(this.$matrix.set(e),Wo.push(e))}setTransform(e,r,n,s,o,i){this.$matrix[0]=e,this.$matrix[1]=r,this.$matrix[3]=n,this.$matrix[4]=s,this.$matrix[6]=o,this.$matrix[7]=i}transform(e,r,n,s,o,i){const l=this.$matrix,c=l[0],u=l[1],a=l[3],h=l[4],d=l[6],m=l[7];l[0]=e*c+r*a,l[1]=e*u+r*h,l[3]=n*c+s*a,l[4]=n*u+s*h,l[6]=o*c+i*a+d,l[7]=o*u+i*h+m}reset(){this.$matrix.set([1,0,0,0,1,0,0,0,1]),this.$stack.length=0,this.$stackAttachmentObject.length=0,this.globalAlpha=1,this.globalCompositeOperation="normal",this.imageSmoothingEnabled=!1}beginPath(){this.pathCommand.beginPath()}moveTo(e,r){this.pathCommand.moveTo(e,r)}lineTo(e,r){this.pathCommand.lineTo(e,r)}quadraticCurveTo(e,r,n,s){this.pathCommand.quadraticCurveTo(e,r,n,s)}fillStyle(e,r,n,s){this.$fillStyle[0]=e,this.$fillStyle[1]=r,this.$fillStyle[2]=n,this.$fillStyle[3]=s}strokeStyle(e,r,n,s){this.$strokeStyle[0]=e,this.$strokeStyle[1]=r,this.$strokeStyle[2]=n,this.$strokeStyle[3]=s}closePath(){this.pathCommand.closePath()}arc(e,r,n){this.pathCommand.arc(e,r,n)}bezierCurveTo(e,r,n,s,o,i){this.pathCommand.bezierCurveTo(e,r,n,s,o,i)}ensureFillRenderPass(){if(this.frameStarted||this.beginFrame(),this.ensureCommandEncoder(),this.renderPassEncoder){this.currentRenderTarget&&this.ensureNodeAreaCleared();return}{const e=this.getCurrentTextureView(),r=We(),n=r?.msaa&&r?.msaaTexture?.view,s=n?r.msaaTexture.view:e,o=n?e:null;if(this.currentRenderTarget&&r?.stencil?.view){const i=n&&r?.msaaStencil?.view?r.msaaStencil.view:r.stencil.view,l=this.frameBufferManager.createStencilRenderPassDescriptor(s,i,"load","clear",o);this.renderPassEncoder=this.commandEncoder.beginRenderPass(l)}else if(!this.currentRenderTarget&&(gt()||nr())&&this.$mainAttachmentObject?.stencil?.view){const i=this.$mainAttachmentObject.msaa&&this.$mainAttachmentObject.msaaTexture?.view,l=i?this.$mainAttachmentObject.msaaTexture.view:this.$mainAttachmentObject.texture.view,c=i&&this.$mainAttachmentObject.msaaStencil?.view?this.$mainAttachmentObject.msaaStencil.view:this.$mainAttachmentObject.stencil.view,u=i?this.$mainAttachmentObject.texture.view:null,a=this.frameBufferManager.createStencilRenderPassDescriptor(l,c,"load","load",u);this.renderPassEncoder=this.commandEncoder.beginRenderPass(a),gt()&&this.renderPassEncoder.setStencilReference(Or())}else if(!this.currentRenderTarget&&this.$mainAttachmentObject){const i=this.$mainAttachmentObject.msaa&&this.$mainAttachmentObject.msaaTexture?.view,l=i?this.$mainAttachmentObject.msaaTexture.view:this.$mainAttachmentObject.texture.view,c=i?this.$mainAttachmentObject.texture.view:null;if(this.$mainAttachmentObject.stencil?.view){const u=i&&this.$mainAttachmentObject.msaaStencil?.view?this.$mainAttachmentObject.msaaStencil.view:this.$mainAttachmentObject.stencil.view,a=this.frameBufferManager.createStencilRenderPassDescriptor(l,u,"load","clear",c);this.renderPassEncoder=this.commandEncoder.beginRenderPass(a)}else{const u=this.frameBufferManager.createRenderPassDescriptor(l,0,0,0,0,"load",c);this.renderPassEncoder=this.commandEncoder.beginRenderPass(u)}}else{const i=this.frameBufferManager.createRenderPassDescriptor(s,0,0,0,0,"load",o);this.renderPassEncoder=this.commandEncoder.beginRenderPass(i)}}this.currentRenderTarget&&this.ensureNodeAreaCleared()}fill(){const e=this.pathCommand.$getVertices;if(e.length===0)return;this.ensureFillRenderPass();const r=this.viewportWidth,n=this.viewportHeight,s=dn(e);if(s.indexCount===0)return;const o=this.bufferManager.acquireVertexBuffer(s.buffer.byteLength,s.buffer),i=this.writeFillUniform(this.$fillStyle[0],this.$fillStyle[1],this.$fillStyle[2],this.$fillStyle[3],this.$matrix[0],this.$matrix[1],this.$matrix[3],this.$matrix[4],this.$matrix[6],this.$matrix[7],r,n),l=this.getOrCreateFillDynamicBindGroup(),c=We();if(this.currentRenderTarget&&c?.stencil?.view)this.fillWithStencil(o,s.indexCount,l,i);else if(!this.currentRenderTarget&&!this.inMaskMode&&!gt()&&this.$mainAttachmentObject?.stencil?.view)this.fillWithStencilMain(o,s.indexCount,l,i);else{const u=(this.inMaskMode||gt())&&!!this.$mainAttachmentObject?.stencil?.view&&!this.currentRenderTarget;this.fillSimple(o,s.indexCount,u,l,i)}}getOrCreateFillDynamicBindGroup(){const e=this.bufferManager.dynamicUniform.getBuffer();if(!this.fillDynamicBindGroup||this.fillDynamicBindGroupBuffer!==e){const r=this.pipelineManager.getBindGroupLayout("fill_dynamic");if(!r)throw new Error("[WebGPU] fill_dynamic bind group layout not found");this.fillDynamicBindGroup=this.device.createBindGroup({layout:r,entries:[{binding:0,resource:{buffer:e,size:256}}]}),this.fillDynamicBindGroupBuffer=e}return this.fillDynamicBindGroup}writeFillUniform(e,r,n,s,o,i,l,c,u,a,h,d){return ke[0]=e,ke[1]=r,ke[2]=n,ke[3]=s,ke[4]=o/h,ke[5]=i/d,ke[6]=0,ke[7]=0,ke[8]=l/h,ke[9]=c/d,ke[10]=0,ke[11]=0,ke[12]=u/h,ke[13]=a/d,ke[14]=1,ke[15]=0,this.bufferManager.dynamicUniform.allocate(ke)}fillWithStencil(e,r,n,s){km(this.renderPassEncoder,this.pipelineManager,e,r,n,s)}fillWithStencilMain(e,r,n,s){Im(this.renderPassEncoder,this.pipelineManager,e,r,n,s)}fillSimple(e,r,n,s,o){const i=this.$mainAttachmentObject?.clipLevel??1;_m(this.renderPassEncoder,this.pipelineManager,e,r,s,o,!!this.currentRenderTarget,n,i)}bindAttachment(e){this.attachmentManager.bindAttachment(e);const r=e.color?.view??e.texture?.view;r&&(this.currentRenderTarget=r)}unbindAttachment(){this.attachmentManager.unbindAttachment(),this.currentRenderTarget=null}getAttachmentObject(e,r,n=!1){return this.attachmentManager.getAttachmentObject(e,r,n)}releaseAttachment(e){this.attachmentManager.releaseAttachment(e)}stroke(){const e=this.pathCommand.getVerticesForStroke();if(e.length===0)return;this.ensureFillRenderPass();const r=this.viewportWidth,n=this.viewportHeight,s=Am(e,this.thickness);if(s.length===0)return;const o=dn(s);if(o.indexCount===0)return;const i=this.bufferManager.acquireVertexBuffer(o.buffer.byteLength,o.buffer),l=this.writeFillUniform(this.$strokeStyle[0],this.$strokeStyle[1],this.$strokeStyle[2],this.$strokeStyle[3],this.$matrix[0],this.$matrix[1],this.$matrix[3],this.$matrix[4],this.$matrix[6],this.$matrix[7],r,n),c=this.getOrCreateFillDynamicBindGroup(),u=We();if(this.currentRenderTarget&&u?.stencil?.view)this.fillWithStencil(i,o.indexCount,c,l);else if(!this.currentRenderTarget&&!this.inMaskMode&&!gt()&&this.$mainAttachmentObject?.stencil?.view)this.fillWithStencilMain(i,o.indexCount,c,l);else{const a=(this.inMaskMode||gt())&&!!this.$mainAttachmentObject?.stencil?.view&&!this.currentRenderTarget;this.fillSimple(i,o.indexCount,a,c,l)}this.pathCommand.reset()}gradientFill(e,r,n,s,o,i){const l=this.pathCommand.$getVertices;if(l.length===0)return;this.ensureFillRenderPass();const c=this.viewportWidth,u=this.viewportHeight,h=!!((this.inMaskMode||gt())&&this.$mainAttachmentObject?.stencil?.view&&!this.currentRenderTarget),d=!!this.currentRenderTarget,m=Dm(this.device,this.renderPassEncoder,this.bufferManager,this.pipelineManager,l,this.$matrix,this.$fillStyle,e,r,n,s,o,i,c,u,d,h,this.$mainAttachmentObject?.clipLevel??1);m&&this.addFrameTexture(m),this.beginPath()}bitmapFill(e,r,n,s,o,i){const l=this.pathCommand.$getVertices;if(l.length===0)return;this.ensureFillRenderPass();const c=We(),u=!!(this.currentRenderTarget&&c?.stencil?.view),a=!!((this.inMaskMode||gt())&&this.$mainAttachmentObject?.stencil?.view&&!this.currentRenderTarget),h=u||a,d=this.$mainAttachmentObject?.clipLevel??1,m=Nm(this.device,this.renderPassEncoder,this.bufferManager,this.pipelineManager,l,this.$matrix,this.$fillStyle,e,r,n,s,o,i,this.viewportWidth,this.viewportHeight,!!this.currentRenderTarget,!!h,d);m&&this.addFrameTexture(m),this.beginPath()}gradientStroke(e,r,n,s,o,i){const l=this.pathCommand.getVerticesForStroke();if(l.length===0)return;this.ensureFillRenderPass();const c=We(),u=!!(this.currentRenderTarget&&c?.stencil?.view),a=!!(!this.currentRenderTarget&&this.$mainAttachmentObject?.stencil?.view),h=u||a,d=Ym(this.device,this.renderPassEncoder,this.bufferManager,this.pipelineManager,l,this.thickness,this.$matrix,this.$strokeStyle,e,r,n,s,o,i,this.viewportWidth,this.viewportHeight,!!this.currentRenderTarget,h);d&&this.addFrameTexture(d),this.pathCommand.reset()}bitmapStroke(e,r,n,s,o,i){const l=this.pathCommand.getVerticesForStroke();if(l.length===0)return;this.ensureFillRenderPass();const c=We(),u=!!(this.currentRenderTarget&&c?.stencil?.view),a=!!(!this.currentRenderTarget&&this.$mainAttachmentObject?.stencil?.view),h=u||a,d=Hm(this.device,this.renderPassEncoder,this.bufferManager,this.pipelineManager,l,this.thickness,this.$matrix,this.$strokeStyle,e,r,n,s,o,i,this.viewportWidth,this.viewportHeight,!!this.currentRenderTarget,h);d&&this.addFrameTexture(d),this.pathCommand.reset()}clip(){let e=this.frameBufferManager.getCurrentAttachment();const r=!e||e===this.$mainAttachmentObject;if(!e&&this.$mainAttachmentObject&&(e=this.$mainAttachmentObject),!e||!e.stencil)return;const n=this.pathCommand.$getVertices;if(n.length!==0){if(!this.renderPassEncoder)if(this.ensureCommandEncoder(),r&&this.$mainAttachmentObject?.stencil?.view){const s=this.$mainAttachmentObject.msaa&&this.$mainAttachmentObject.msaaTexture?.view,o=s?this.$mainAttachmentObject.msaaTexture.view:this.$mainAttachmentObject.texture.view,i=s&&this.$mainAttachmentObject.msaaStencil?.view?this.$mainAttachmentObject.msaaStencil.view:this.$mainAttachmentObject.stencil.view,l=this.frameBufferManager.createStencilRenderPassDescriptor(o,i,"load","load");this.renderPassEncoder=this.commandEncoder.beginRenderPass(l)}else return;Qm(this.device,this.renderPassEncoder,this.bufferManager,this.pipelineManager,e,n,this.$matrix,this.$fillStyle,this.globalAlpha,r)}}bind(e){this.frameBufferManager.setCurrentAttachment(e),this.viewportWidth=e.width,this.viewportHeight=e.height}get currentAttachmentObject(){return this.frameBufferManager.getCurrentAttachment()||this.$mainAttachmentObject}get atlasAttachmentObject(){return We()}useGrid(e){Ja.set(ec,e)}beginNodeRendering(e){this.nodeAreaCleared=!1,this.frameStarted||this.beginFrame();const r=bo(e.index)||We();if(r&&r.texture){if(this.renderPassEncoder&&this.nodeRenderPassAtlasIndex===e.index)this.currentRenderTarget=r.texture.view,this.viewportWidth=r.width,this.viewportHeight=r.height;else{this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null),this.currentRenderTarget=r.texture.view,this.viewportWidth=r.width,this.viewportHeight=r.height,this.ensureCommandEncoder();const l=r.msaa&&r.msaaTexture?.view,c=l?r.msaaTexture.view:r.texture.view,u=l?r.texture.view:null;if(r.stencil?.view){const a=l&&r.msaaStencil?.view?r.msaaStencil.view:r.stencil.view,h=this.frameBufferManager.createStencilRenderPassDescriptor(c,a,"load","load",u);this.renderPassEncoder=this.commandEncoder.beginRenderPass(h)}else{const a=this.frameBufferManager.createRenderPassDescriptor(c,0,0,0,0,"load",u);this.renderPassEncoder=this.commandEncoder.beginRenderPass(a)}this.nodeRenderPassAtlasIndex=e.index}let n=Math.max(0,e.x),s=Math.max(0,e.y),o=Math.min(e.w,r.width-n),i=Math.min(e.h,r.height-s);if(n=Math.min(n,r.width),s=Math.min(s,r.height),o=Math.max(0,Math.min(o,r.width-n)),i=Math.max(0,Math.min(i,r.height-s)),this.$scissorRect.x=n,this.$scissorRect.y=s,this.$scissorRect.w=o,this.$scissorRect.h=i,this.currentNodeScissor=this.$scissorRect,o>0&&i>0){const l=Math.min(o+1,r.width-n),c=Math.min(i+1,r.height-s);this.renderPassEncoder.setScissorRect(n,s,l,c)}}}ensureNodeAreaCleared(){this.nodeAreaCleared||(this.nodeAreaCleared=!0,this.clearNodeArea())}clearNodeArea(){if(!this.renderPassEncoder)return;const e=this.pipelineManager.getPipeline("node_clear_atlas");if(!e)return;if(!this.nodeClearQuadBuffer){const n=this.device.createBuffer({size:Lc.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,mappedAtCreation:!0});new Float32Array(n.getMappedRange()).set(Lc),n.unmap(),this.nodeClearQuadBuffer=n}const r=this.nodeClearQuadBuffer;this.renderPassEncoder.setPipeline(e),this.renderPassEncoder.setVertexBuffer(0,r),this.renderPassEncoder.draw(6),this.currentNodeScissor&&this.renderPassEncoder.setScissorRect(this.currentNodeScissor.x,this.currentNodeScissor.y,this.currentNodeScissor.w,this.currentNodeScissor.h)}endNodeRendering(){this.currentRenderTarget=null,this.currentNodeScissor=null,this.viewportWidth=this.canvasContext.canvas.width,this.viewportHeight=this.canvasContext.canvas.height}drawFill(){Fm()}drawDisplayObject(e,r,n,s,o,i){const l=le.getRenderMaxSize();im(e,r,n,s,o,i,this.$matrix,this.globalCompositeOperation,this.viewportWidth,this.viewportHeight,l,this.globalAlpha)}drawArraysInstanced(){this.frameStarted||this.beginFrame(),this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null),this.nodeRenderPassAtlasIndex=-1,this.ensureCommandEncoder(),this.$mainAttachmentObject&&(this.useOptimizedInstancing?this.renderPassEncoder=Jm(this.device,this.commandEncoder,this.renderPassEncoder,this.$mainAttachmentObject,this.bufferManager,this.frameBufferManager,this.textureManager,this.pipelineManager,!0,!0):this.renderPassEncoder=Zm(this.device,this.commandEncoder,this.renderPassEncoder,this.$mainAttachmentObject,this.bufferManager,this.frameBufferManager,this.textureManager,this.pipelineManager),this.processComplexBlendQueue())}setOptimizedInstancing(e){this.useOptimizedInstancing=e}isOptimizedInstancingEnabled(){return this.useOptimizedInstancing}processComplexBlendQueue(){this.ensureCommandEncoder(),r0(this.device,this.commandEncoder,this.$mainAttachmentObject,this.frameBufferManager,this.textureManager,this.pipelineManager,this.bufferManager)}clearArraysInstanced(){rs().clear()}drawPixels(e,r){const n=bo(e.index)||We();if(!n||!n.texture)return;const s=e.w,o=e.h;if(this.renderPassEncoder&&(this.ensureNodeAreaCleared(),this.renderPassEncoder.end(),this.renderPassEncoder=null),this.nodeRenderPassAtlasIndex=-1,n.msaa&&n.msaaTexture?.view)this.drawPixelsToMsaa(n,e,r,s,o);else{const i=s*4;this.device.queue.writeTexture({texture:n.texture.resource,origin:{x:e.x,y:e.y,z:0}},r,{bytesPerRow:i,rowsPerImage:o,offset:0},{width:s,height:o,depthOrArrayLayers:1})}}drawPixelsToMsaa(e,r,n,s,o){const i=Ro(this.device,s,o),l=s*4;this.device.queue.writeTexture({texture:i},n,{bytesPerRow:l,rowsPerImage:o},{width:s,height:o});const c=this.pipelineManager.getPipeline("bitmap_render_msaa");if(!c){Xt(i);return}const u=this.pipelineManager.getBindGroupLayout("positioned_texture");if(!u){Xt(i);return}const a=this.$uniformData8;a[0]=r.x,a[1]=r.y,a[2]=s,a[3]=o,a[4]=e.width,a[5]=e.height,a[6]=0,a[7]=0;const h=this.bufferManager.acquireAndWriteUniformBuffer(a),d=this.textureManager.createSampler("linear_sampler",!0),m=Eo(i);he[0].resource.buffer=h,he[1].resource=d,he[2].resource=m;const g=this.device.createBindGroup({layout:u,entries:he});this.ensureCommandEncoder(),ar.view=e.msaaTexture.view,ar.resolveTarget=e.texture.view;const f=e.msaaStencil?.view;f?(Vr.view=f,Rt.depthStencilAttachment=Vr):Rt.depthStencilAttachment=void 0;const b=this.commandEncoder.beginRenderPass(Rt);b.setViewport(0,0,e.width,e.height,0,1),b.setScissorRect(r.x,r.y,s,o),b.setPipeline(c),b.setBindGroup(0,g),b.draw(6),b.end(),this.pooledRenderTextures.push(i)}drawElement(e,r,n=!1){const s=bo(e.index)||We();if(!s||!s.texture)return;const o=e.w,i=e.h;this.renderPassEncoder&&(this.ensureNodeAreaCleared(),this.renderPassEncoder.end(),this.renderPassEncoder=null),this.nodeRenderPassAtlasIndex=-1,s.msaa&&s.msaaTexture?.view?this.drawElementToMsaa(s,e,r,o,i,n):this.drawElementToTexture(s,e,r,o,i,n)}drawElementToMsaa(e,r,n,s,o,i){const l=Ro(this.device,s,o);this.device.queue.copyExternalImageToTexture({source:n,flipY:i},{texture:l,premultipliedAlpha:!0},{width:s,height:o});const c=this.pipelineManager.getPipeline("bitmap_render_msaa");if(!c){Xt(l);return}const u=this.pipelineManager.getBindGroupLayout("positioned_texture");if(!u){Xt(l);return}const a=this.$uniformData8;a[0]=r.x,a[1]=r.y,a[2]=s,a[3]=o,a[4]=e.width,a[5]=e.height,a[6]=0,a[7]=0;const h=this.bufferManager.acquireAndWriteUniformBuffer(a),d=this.textureManager.createSampler("linear_sampler",!0),m=Eo(l);he[0].resource.buffer=h,he[1].resource=d,he[2].resource=m;const g=this.device.createBindGroup({layout:u,entries:he});this.ensureCommandEncoder(),ar.view=e.msaaTexture.view,ar.resolveTarget=e.texture.view;const f=e.msaaStencil?.view;f?(Vr.view=f,Rt.depthStencilAttachment=Vr):Rt.depthStencilAttachment=void 0;const b=this.commandEncoder.beginRenderPass(Rt);b.setViewport(0,0,e.width,e.height,0,1),b.setScissorRect(r.x,r.y,s,o),b.setPipeline(c),b.setBindGroup(0,g),b.draw(6),b.end(),this.pooledRenderTextures.push(l)}drawElementToTexture(e,r,n,s,o,i){const l=Ro(this.device,s,o);this.device.queue.copyExternalImageToTexture({source:n,flipY:i},{texture:l,premultipliedAlpha:!0},{width:s,height:o});const c=this.pipelineManager.getPipeline("bitmap_render");if(!c){Xt(l);return}const u=this.pipelineManager.getBindGroupLayout("positioned_texture");if(!u){Xt(l);return}const a=this.$uniformData8;a[0]=r.x,a[1]=r.y,a[2]=s,a[3]=o,a[4]=e.width,a[5]=e.height,a[6]=0,a[7]=0;const h=this.bufferManager.acquireAndWriteUniformBuffer(a),d=this.textureManager.createSampler("linear_sampler",!0),m=Eo(l);he[0].resource.buffer=h,he[1].resource=d,he[2].resource=m;const g=this.device.createBindGroup({layout:u,entries:he});this.ensureCommandEncoder(),ar.view=e.texture.view,ar.resolveTarget=void 0;const f=e.stencil?.view;f?(Vr.view=f,Rt.depthStencilAttachment=Vr):Rt.depthStencilAttachment=void 0;const b=this.commandEncoder.beginRenderPass(Rt);b.setViewport(0,0,e.width,e.height,0,1),b.setScissorRect(r.x,r.y,s,o),b.setPipeline(c),b.setBindGroup(0,g),b.draw(6),b.end(),this.pooledRenderTextures.push(l)}applyFilter(e,r,n,s,o,i,l,c,u,a,h){this.drawArraysInstanced(),this.frameStarted||this.beginFrame(),this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null),this.nodeRenderPassAtlasIndex=-1,this.ensureCommandEncoder(),this.$filterConfig.commandEncoder=this.commandEncoder,this.$filterConfig.mainAttachment=this.$mainAttachmentObject,A0(e,s,o,i,l,c,u,a,h,this.$filterConfig,this.mainTextureView,this.bufferManager)}containerBeginLayer(e,r){this.drawArraysInstanced(),this.frameStarted||this.beginFrame(),this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null);const n=this.$mainAttachmentObject;this.$containerLayerStack.push(n),this.containerLayerContentSizes.push({width:e,height:r});const s=this.frameBufferManager.createAttachment("container_layer",e,r,n.msaa,!0);this.$mainAttachmentObject=s,this.bind(s)}containerEndLayer(e,r,n,s,o,i,l,c){this.drawArraysInstanced(),this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null),this.ensureCommandEncoder();const u=this.$mainAttachmentObject,a=this.containerLayerContentSizes.pop()||{width:u.width,height:u.height};this.$mainAttachmentObject=this.$containerLayerStack.pop(),this.$filterConfig.commandEncoder=this.commandEncoder,this.$filterConfig.mainAttachment=void 0,O0(u,this.$mainAttachmentObject,"container_layer",e,r,n,s,o,i,l,c,a.width,a.height,this.$filterConfig,this.bufferManager),this.bind(this.$mainAttachmentObject)}containerDrawCachedFilter(e,r,n,s,o,i){if(ee.get(o,"fKey")!==i)return;const c=ee.get(o,"fTexture");if(!c||!c.texture)return;this.drawArraysInstanced(),this.frameStarted||this.beginFrame(),this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null),this.ensureCommandEncoder();const u=this.$mainAttachmentObject;if(!u||!u.texture)return;let a=c,h=null;if(!(n[0]===1&&n[1]===1&&n[2]===1&&n[3]===1&&n[4]===0&&n[5]===0&&n[6]===0&&n[7]===0)){h=this.frameBufferManager.createTemporaryAttachment(c.width,c.height);const V=this.pipelineManager.getPipeline("color_transform"),X=this.pipelineManager.getBindGroupLayout("texture_copy");if(V&&X&&h.texture){Et[0]=n[0],Et[1]=n[1],Et[2]=n[2],Et[3]=n[3],Et[4]=n[4],Et[5]=n[5],Et[6]=n[6],Et[7]=0;const Y=Et,W=this.bufferManager.acquireAndWriteUniformBuffer(Y),K=this.textureManager.createSampler("cached_ct_sampler",!1);he[0].resource.buffer=W,he[1].resource=K,he[2].resource=c.texture.view;const q=this.device.createBindGroup({layout:X,entries:he}),ce=this.frameBufferManager.createRenderPassDescriptor(h.texture.view,0,0,0,0,"clear"),te=this.commandEncoder.beginRenderPass(ce);te.setPipeline(V),te.setBindGroup(0,q),te.draw(6,1,0,0),te.end(),a=h}}const m=le.getDevicePixelRatio(),g=Math.sqrt(r[0]*r[0]+r[1]*r[1]),f=Math.sqrt(r[2]*r[2]+r[3]*r[3]),b=s[0]*(g/m),x=s[1]*(f/m),y=Math.floor(b+r[4]),P=Math.floor(x+r[5]),S=u.msaa&&u.msaaTexture?.view;let M;switch(e){case"add":M=S?"filter_output_add_msaa":"filter_output_add";break;case"screen":M=S?"filter_output_screen_msaa":"filter_output_screen";break;case"alpha":M=S?"filter_output_alpha_msaa":"filter_output_alpha";break;case"erase":M=S?"filter_output_erase_msaa":"filter_output_erase";break;default:M=S?"filter_output_msaa":"filter_output";break}const $=this.pipelineManager.getPipeline(M),T=this.pipelineManager.getBindGroupLayout("texture_copy");if(!$||!T)return;const w=this.textureManager.createSampler("cached_filter_sampler",!0),E=this.bufferManager.acquireAndWriteUniformBuffer($n);he[0].resource.buffer=E,he[1].resource=w,he[2].resource=a.texture.view;const F=this.device.createBindGroup({layout:T,entries:he}),A=S?u.msaaTexture.view:u.texture.view,R=S?u.texture.view:null,v=this.frameBufferManager.createRenderPassDescriptor(A,0,0,0,0,"load",R),U=Math.max(0,y),L=Math.max(0,P),D=Math.max(1,a.width),G=Math.max(1,a.height),B=u.width,z=u.height,k=Math.max(1,Math.min(D,B-U)),_=Math.max(1,Math.min(G,z-L));if(k<=0||_<=0||U>=B||L>=z){h&&this.frameBufferManager.releaseTemporaryAttachment(h);return}const I=this.commandEncoder.beginRenderPass(v);I.setPipeline($),I.setBindGroup(0,F),I.setViewport(U,L,D,G,0,1),I.setScissorRect(U,L,k,_),I.draw(6,1,0,0),I.end(),h&&this.frameBufferManager.releaseTemporaryAttachment(h),this.bind(u)}ensureMainTexture(){this.mainTexture||(this.$needsReconfigure&&(this.canvasContext.configure({device:this.device,format:this.preferredFormat,alphaMode:"premultiplied"}),this.$needsReconfigure=!1),this.mainTexture=this.canvasContext.getCurrentTexture(),this.mainTextureView=this.mainTexture.createView())}getCurrentTextureView(){return this.currentRenderTarget?this.currentRenderTarget:(this.ensureMainTexture(),this.mainTextureView)}ensureCommandEncoder(){this.commandEncoder||(this.commandEncoder=this.device.createCommandEncoder())}beginFrame(){this.frameStarted||(this.ensureMainTexture(),this.ensureCommandEncoder(),this.frameStarted=!0,this.frameBufferManager.beginFrame())}addFrameTexture(e){this.pooledTextures.push(e)}endFrame(){if(this.frameStarted){if(this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null),this.bufferManager.dynamicUniform.flush(),this.commandEncoder)try{const e=this.commandEncoder.finish();this.device.queue.submit([e])}catch(e){console.error("Failed to submit frame commands:",e)}this.frameBufferManager.flushPendingReleases(),this.bufferManager.clearFrameBuffers();for(const e of this.frameTextures)e.destroy();this.frameTextures.length=0;for(const e of this.pooledTextures)Ot(e);this.pooledTextures.length=0;for(const e of this.pooledRenderTextures)Xt(e);this.pooledRenderTextures.length=0,Um(),this.fillDynamicBindGroup=null,this.fillDynamicBindGroupBuffer=null,this.commandEncoder=null,this.renderPassEncoder=null,this.currentRenderTarget=null,this.nodeRenderPassAtlasIndex=-1,this.mainTexture=null,this.mainTextureView=null,this.frameStarted=!1}}submit(){this.endFrame()}createNode(e,r){const n=Zp();if(!fn[n]){const i=le.getRenderMaxSize();fn[n]=new Ni(n,i,i)}const o=fn[n].insert(e,r);return o||(wr(n+1),this.createNode(e,r))}removeNode(e){const r=e.index,n=fn[r];n&&n.dispose(e.x,e.y,e.w,e.h)}transferMainCanvas(){if(!this.$mainAttachmentObject||!this.$mainAttachmentObject.texture){this.endFrame();return}this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null),this.ensureCommandEncoder(),this.ensureMainTexture();const e=this.pipelineManager.getPipeline("texture_copy_bgra"),r=this.pipelineManager.getBindGroupLayout("texture_copy");if(!e||!r){console.error("[WebGPU] texture_copy_bgra pipeline not found"),this.endFrame();return}const n=this.$mainAttachmentObject.texture.view;if(!jo||kc!==n){ds||(ds=this.device.createBuffer({size:$n.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.device.queue.writeBuffer(ds,0,$n.buffer,$n.byteOffset,$n.byteLength));const i=this.textureManager.createSampler("transfer_sampler",!1);he[0].resource={buffer:ds},he[1].resource=i,he[2].resource=n,jo=this.device.createBindGroup({layout:r,entries:he}),kc=n}const s=jo;Ic.view=this.mainTextureView;const o=this.commandEncoder.beginRenderPass(E0);o.setPipeline(e),o.setBindGroup(0,s),o.draw(6,1,0,0),o.end(),this.endFrame()}async createImageBitmap(e,r){const n=this.$mainAttachmentObject;if(!n||!n.texture)throw new Error("[WebGPU] Main attachment not found");this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null);const o=Math.ceil(e*4/256)*256,i=o*r,l=this.device.createBuffer({size:i,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});this.ensureCommandEncoder(),this.commandEncoder.copyTextureToBuffer({texture:n.texture.resource,mipLevel:0,origin:{x:0,y:0,z:0}},{buffer:l,bytesPerRow:o,rowsPerImage:r},{width:e,height:r,depthOrArrayLayers:1}),this.endFrame(),await l.mapAsync(GPUMapMode.READ);const c=l.getMappedRange(),u=new Uint8Array(c),a=this.preferredFormat==="bgra8unorm",h=new Uint8Array(e*r*4),d=e*4;for(let f=0;f<r;f++){const b=f*o,x=f*d;if(a)for(let y=0;y<d;y+=4)h[x+y]=u[b+y+2],h[x+y+1]=u[b+y+1],h[x+y+2]=u[b+y],h[x+y+3]=u[b+y+3];else h.set(u.subarray(b,b+d),x)}l.unmap(),l.destroy();const m=new Float32Array(256);for(let f=1;f<256;f++)m[f]=255/f;for(let f=0;f<h.length;f+=4){const b=h[f+3];if(b===0||b===255)continue;const x=m[b];h[f]=Math.min(255,Math.round(h[f]*x)),h[f+1]=Math.min(255,Math.round(h[f+1]*x)),h[f+2]=Math.min(255,Math.round(h[f+2]*x))}const g=new ImageData(new Uint8ClampedArray(h),e,r);if(typeof createImageBitmap<"u")return await createImageBitmap(g,{premultiplyAlpha:"none",colorSpaceConversion:"none"});throw new Error("[WebGPU] createImageBitmap not available in this environment")}beginMask(){if(this.$mainAttachmentObject&&this.bind(this.$mainAttachmentObject),this.currentRenderTarget=null,this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null),this.frameStarted||this.beginFrame(),this.ensureCommandEncoder(),this.$mainAttachmentObject?.texture&&this.$mainAttachmentObject?.stencil?.view){const r=this.$mainAttachmentObject.clipLevel===0?"clear":"load",n=this.$mainAttachmentObject.msaa&&this.$mainAttachmentObject.msaaTexture?.view,s=n?this.$mainAttachmentObject.msaaTexture.view:this.$mainAttachmentObject.texture.view,o=n&&this.$mainAttachmentObject.msaaStencil?.view?this.$mainAttachmentObject.msaaStencil.view:this.$mainAttachmentObject.stencil.view,i=this.frameBufferManager.createStencilRenderPassDescriptor(s,o,"load",r);this.renderPassEncoder=this.commandEncoder.beginRenderPass(i),this.viewportWidth=this.$mainAttachmentObject.width,this.viewportHeight=this.$mainAttachmentObject.height}cm(),this.inMaskMode=!0}setMaskBounds(e,r,n,s){lm(e,r,n,s)}endMask(){this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null),Ha(),this.inMaskMode=!1}leaveMask(){this.drawArraysInstanced();const r=this.frameBufferManager.getCurrentAttachment()?.clipLevel??0,n=r===1;um(),this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null),this.ensureCommandEncoder();const s=this.$mainAttachmentObject?.msaa&&this.$mainAttachmentObject?.msaaTexture?.view,o=s?this.$mainAttachmentObject.msaaTexture.view:this.$mainAttachmentObject?.texture.view,i=s&&this.$mainAttachmentObject?.msaaStencil?.view?this.$mainAttachmentObject.msaaStencil.view:this.$mainAttachmentObject?.stencil?.view;if(n&&i){const l={colorAttachments:[{view:o,loadOp:"load",storeOp:"store"}],depthStencilAttachment:{view:i,stencilLoadOp:"clear",stencilStoreOp:"store",stencilClearValue:0}};this.commandEncoder.beginRenderPass(l).end()}else if(r>1&&i){const u=\`clip_clear_main_\${Math.min(8,Math.max(1,r))}\`,a=this.pipelineManager.getPipeline(u);if(a){const h=this.frameBufferManager.createStencilRenderPassDescriptor(o,i,"load","load"),d=this.commandEncoder.beginRenderPass(h),m=this.bufferManager.acquireVertexBuffer(Gc.byteLength,Gc);d.setPipeline(a),d.setStencilReference(0),d.setVertexBuffer(0,m),d.draw(6,1,0,0),d.end()}}}}const C0=4;let C;const Vc=t=>{C=t};let qo;const U0=t=>{qo=t};let Qo=0;const G0=()=>Qo;let Zo=0;const L0=()=>Zo;let Jo=!1;const k0=(t,e)=>{Jo=!0,Qo=t,Zo=e},I0=()=>Jo,_0=()=>{qo.width=Qo,qo.height=Zo,Jo=!1},V0=[],Dc=(...t)=>{const e=V0.pop()||[];return t.length&&e.push(...t),e},Dr=(t,e=1)=>({R:(t&16711680)>>16,G:(t&65280)>>8,B:t&255,A:e*255}),D0=async(t,e)=>{if(U0(t),"gpu"in navigator){const r=navigator.gpu,n=await r.requestAdapter();if(!n)throw new Error("WebGPU adapter not available");const s=await n.requestDevice();if(!s)throw new Error("WebGPU device not available");const o=t.getContext("webgpu");if(!o)throw new Error("WebGPU context not available");const i=r.getPreferredCanvasFormat();Vc(new R0(s,o,i,e))}else{const r=t.getContext("webgl2",{stencil:!0,premultipliedAlpha:!0,antialias:!1,depth:!1});if(!r)throw new Error("webgl2 is not supported.");Vc(new ld(r,C0,e))}},N0=(t,e,r=!0)=>{G0()===t&&L0()===e||(k0(t,e),C.resize(t,e,r),r&&ee.reset())},z0=0,X0=1,Y0=2,W0=3,j0=4,H0=5,K0=6,q0=7,Q0=8,Z0=9,J0=10,eg=11,tg=12,rg=13,ng=14,ei=(t,e=!1)=>{let r=0;for(;t.length>r;)switch(t[r++]){case Z0:C.beginPath();break;case z0:C.moveTo(t[r++],t[r++]);break;case Y0:C.lineTo(t[r++],t[r++]);break;case X0:C.quadraticCurveTo(t[r++],t[r++],t[r++],t[r++]);break;case H0:if(e){r+=4;break}C.fillStyle(t[r++]/255,t[r++]/255,t[r++]/255,t[r++]/255);break;case q0:C.fill();break;case K0:if(e){r+=8;break}C.thickness=t[r++],C.caps=t[r++],C.joints=t[r++],C.miterLimit=t[r++],C.strokeStyle(t[r++]/255,t[r++]/255,t[r++]/255,t[r++]/255);break;case Q0:if(e)break;C.stroke();break;case tg:C.closePath();break;case j0:C.arc(t[r++],t[r++],t[r++]);break;case W0:C.bezierCurveTo(t[r++],t[r++],t[r++],t[r++],t[r++],t[r++]);break;case J0:{if(e){r+=1;const a=t[r++];r+=a*5,r+=9,C.fill();break}const n=t[r++],s=Dc(),o=t[r++];for(let a=0;a<o;++a)s.push(t[r++],t[r++],t[r++],t[r++],t[r++]);const i=t.subarray(r,r+6);r+=6;const l=t[r++],c=t[r++],u=t[r++];C.gradientFill(n,s,i,l,c,u)}break;case rg:{if(e){r+=2;const c=t[r++];r+=c,r+=8,C.fill();break}const n=t[r++],s=t[r++],o=t[r++],i=new Uint8Array(t.subarray(r,r+o));r+=o;const l=t.subarray(r,r+6);r+=6,C.bitmapFill(i,l,n,s,!!t[r++],!!t[r++])}break;case eg:{if(e){r+=20,C.fill();break}C.thickness=t[r++],C.caps=t[r++],C.joints=t[r++],C.miterLimit=t[r++];const n=t[r++],s=Dc(),o=t[r++];for(let a=0;a<o;++a)s.push(t[r++],t[r++],t[r++],t[r++],t[r++]);const i=t.subarray(r,r+6);r+=6;const l=t[r++],c=t[r++],u=t[r++];C.gradientStroke(n,s,i,l,c,u)}break;case ng:{if(e){r+=6;const c=t[r++];r+=c,r+=8,C.fill();break}C.thickness=t[r++],C.caps=t[r++],C.joints=t[r++],C.miterLimit=t[r++];const n=t[r++],s=t[r++],o=t[r++],i=new Uint8Array(t.subarray(r,r+o));r+=o;const l=t.subarray(r,r+6);r+=6,C.bitmapStroke(i,l,n,s,!!t[r++],!!t[r++])}break}},cr=t=>{switch(t){case 0:return"copy";case 1:return"add";case 2:return"alpha";case 3:return"darken";case 4:return"difference";case 5:return"erase";case 6:return"hardlight";case 7:return"invert";case 8:return"layer";case 9:return"lighten";case 10:return"multiply";case 11:return"normal";case 12:return"overlay";case 13:return"screen";case 14:return"subtract";default:return"normal"}},ti=(t,e)=>{const r=t.subarray(e,e+6);e+=6;const n=t.subarray(e,e+8);e+=8;const s=t.subarray(e,e+4);e+=4;const o=t[e++],i=t[e++],l=t[e++],c=t[e++],u=!!t[e++],a=!!t[e++],h=!!t[e++],d=\`\${t[e++]}\`,m=t[e++],g=t[e++],f=t[e++],b=\`\${t[e++]}\`;let x;if(t[e++]){if(x=ee.get(d,\`\${m}\`),!x)return e}else{const M=u?new Float32Array(28):null;M&&(M.set(t.subarray(e,e+24)),e+=24),C.useGrid(M);const $=t[e++],T=t.subarray(e,e+$);if(h&&!u){const w=Math.ceil(Math.abs(l-o)),E=Math.ceil(Math.abs(c-i));x=C.createNode(w,E),ee.set(d,\`\${m}\`,x);const F=C.currentAttachmentObject,A=C.atlasAttachmentObject;A&&C.bind(A),C.reset(),C.beginNodeRendering(x);const R=A?A.height-x.y-E:0;C.setTransform(1,0,0,1,x.x,R),a?(ei(T),C.drawFill()):C.drawPixels(x,new Uint8Array(T)),C.endNodeRendering(),F&&C.bind(F)}else{const w=Math.ceil(Math.abs(l-o)*g),E=Math.ceil(Math.abs(c-i)*f);x=C.createNode(w,E),ee.set(d,\`\${m}\`,x);const F=C.currentAttachmentObject,A=C.atlasAttachmentObject;A&&C.bind(A),C.reset(),C.beginNodeRendering(x);const R=A?A.height-x.y-E:0;C.setTransform(g,0,0,f,-o*g+x.x,-i*f+R),M&&(M[24]=x.x,M[25]=R),ei(T),C.drawFill(),C.endNodeRendering(),F&&C.bind(F)}e+=$}const P=t[e++];if(!!t[e++]){const M=!!t[e++],$=t.subarray(e,e+4);e+=4;const T=t[e++],w=t.subarray(e,e+T),E=Math.ceil(Math.abs(s[2]-s[0])),F=Math.ceil(Math.abs(s[3]-s[1]));return C.applyFilter(x,b,M,E,F,h,r,n,cr(P),$,w),e+=T,e}if(C.globalAlpha=Math.min(Math.max(0,n[3]+n[7]/255),1),C.imageSmoothingEnabled=!0,C.globalCompositeOperation=cr(P),h&&!u)C.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),C.drawDisplayObject(x,s[0],s[1],s[2],s[3],n);else{const M=Math.atan2(r[1],r[0]),$=Math.atan2(-r[2],r[3]);if(M||$){const T=o*g,w=i*f,E=Math.cos(M),F=Math.sin(M),A=Math.cos($),R=Math.sin($);C.setTransform(E,F,-R,A,T*E-w*R+r[4],T*F+w*A+r[5])}else C.setTransform(1,0,0,1,s[0],s[1]);C.drawDisplayObject(x,s[0],s[1],s[2],s[3],n)}return e},ri=(t,e)=>{const r=t.subarray(e,e+6);e+=6,C.reset(),C.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]);const s=!!t[e++]?new Float32Array(28):null;C.useGrid(s),s&&(s.set(t.subarray(e,e+24)),e+=24);const o=t[e++],i=t.subarray(e,e+o);return ei(i,!0),e+=o,C.clip(),e},Nc=(t,e,r)=>{const n=t.widthTable[e.line]||0,s=e.textFormat,o=s.leftMargin||0;if(!r.wordWrap&&n>r.rawWidth)return Math.max(0,o);const i=s.rightMargin||0;return s.align==="center"||r.autoSize==="center"?Math.max(0,r.rawWidth/2-o-i-n/2-2):s.align==="right"||r.autoSize==="right"?Math.max(0,r.rawWidth-o-n-i-4):Math.max(0,o)},sg=t=>{let e="";return t.italic&&(e+="italic "),t.bold&&(e+="bold "),\`\${e}\${t.size}px '\${t.font}','sans-serif'\`},og=(t,e,r,n)=>{const s=new OffscreenCanvas(e.width,e.height),o=s.getContext("2d");if(!o)return s;const i=Math.min(1,Math.max(r,n));if(e.background||e.border){if(o.beginPath(),o.moveTo(0,0),o.lineTo(e.width,0),o.lineTo(e.width,e.height),o.lineTo(0,e.height),o.lineTo(0,0),e.background){const M=Dr(e.backgroundColor);o.fillStyle=\`rgba(\${M.R},\${M.G},\${M.B},\${M.A})\`,o.fill()}if(e.border){const M=Dr(e.borderColor);o.lineWidth=i,o.strokeStyle=\`rgba(\${M.R},\${M.G},\${M.B},\${M.A})\`,o.stroke()}}if(!t)return s;o.save(),o.beginPath(),o.moveTo(2,2),o.lineTo(e.width-2,2),o.lineTo(e.width-2,e.height-2),o.lineTo(2,e.height-2),o.lineTo(2,2),o.clip();let l=2;if(e.scrollX>0){const M=(e.textWidth+4-e.rawWidth)/e.rawWidth;l+=-e.scrollX*M}let c=2;if(e.scrollY>0){const M=(e.textHeight+2-e.rawHeight)/e.rawHeight;c+=-e.scrollY*M}if(o.setTransform(r,0,0,n,l*r,c*n),o.beginPath(),e.selectIndex>-1&&e.focusIndex>-1){const M=t.textTable.length-1;let $=0,T=0;e.focusIndex<=e.selectIndex?($=Math.min(e.focusIndex,M),T=Math.min(e.selectIndex,M)):($=Math.min(e.selectIndex,M),T=Math.min(e.focusIndex-1,M));const w=t.textTable[$],E=t.lineTable[w.line],F=Nc(t,E,e);let A=0;if($&&w.mode==="text"){let v=$;for(;v;){const U=t.textTable[--v];if(U.mode!=="text")break;A+=U.w}}o.fillStyle="#b4d7ff";let R=0;for(let v=$;v<=T;++v){const U=t.textTable[v];if(U.mode==="text"&&(R+=U.w,v!==T))continue;let L=0;const D=U.mode==="text"?U.line:U.line-1;for(let G=0;G<D;++G)L+=t.heightTable[G];o.beginPath(),o.rect(A,L,R+F,t.heightTable[D]),o.fill(),A=0,R=0}}const u=e.rawWidth;let a=0;if(e.scrollX>0){const M=(e.textWidth-u)/u;a=e.scrollX*M}const h=u+a,d=e.rawHeight;let m=0;if(e.scrollY>0){const M=(e.textHeight-d)/d;m=e.scrollY*M}const g=d+m;let f=0,b=0,x=0,y=0,P=!1,S=-1;for(let M=0;M<t.textTable.length;++M){const $=t.textTable[M];if(!$)continue;if(($.mode==="text"||$.mode==="break")&&(S++,e.stopIndex>-1&&S>e.stopIndex))break;if(P&&$.mode==="text")continue;const T=$.textFormat;if(e.autoSize==="none"){if(b>g)break;if($.mode==="text"&&(a>f+$.w||f>h)){f+=$.w;continue}}const w=Dr(T.color||0);if(o.fillStyle=\`rgba(\${w.R},\${w.G},\${w.B},\${w.A})\`,e.focusVisible&&e.focusIndex===M){const F=f+x+.1;let A=$.line,R=$.y,v=t.ascentTable[A];$.mode!=="text"&&(R=$.mode==="break"?$.h:t.ascentTable[A-1],A>0?(A=$.line-1,v=t.ascentTable[A]):v=$.h),A>0&&t.ascentTable[A]===0&&A++;for(let U=0;U<A;++U)v+=t.heightTable[U];o.strokeStyle=\`rgba(\${w.R},\${w.G},\${w.B},\${w.A})\`,o.beginPath(),o.moveTo(F,v),o.lineTo(F,v-R),o.stroke()}if(e.thickness){const F=Dr(e.thicknessColor);o.lineWidth=e.thickness,o.strokeStyle=\`rgba(\${F.R},\${F.G},\${F.B},\${F.A})\`}const E=$.line|0;switch($.mode){case"break":case"wrap":if(f=0,E&&(b+=t.heightTable[E-1]),m>b+t.heightTable[E]){P=!0;continue}y=t.ascentTable[E],x=Nc(t,$,e),P=!1;break;case"text":{o.beginPath(),o.font=sg(T);const F=f+x,A=b+y;if(T.underline){const R=Dr(T.color||0);o.lineWidth=i,o.strokeStyle=\`rgba(\${R.R},\${R.G},\${R.B},\${R.A})\`,o.beginPath(),o.moveTo(F,A+2),o.lineTo(F+$.w,A+2),o.stroke()}e.thickness&&o.strokeText($.text,F,A),o.fillText($.text,F,A),f+=$.w}break}}if(e.focusVisible&&e.focusIndex>=t.textTable.length){const M=t.textTable[e.focusIndex-1];if(M){const $=Dr(M.textFormat.color||0);o.strokeStyle=\`rgba(\${$.R},\${$.G},\${$.B},\${$.A})\`;const T=f+x+.1,w=b+y;o.beginPath(),M.mode==="text"?o.moveTo(T,w-M.y):o.moveTo(T,w+M.h),o.lineTo(T,w),o.stroke()}}return o.restore(),s},ig=new TextDecoder,ni=(t,e)=>{const r=t.subarray(e,e+6);e+=6;const n=t.subarray(e,e+8);e+=8;const s=t.subarray(e,e+4);e+=4;const o=t[e++],i=t[e++],l=t[e++],c=t[e++],u=\`\${t[e++]}\`,a=t[e++],h=!!t[e++],d=t[e++],m=t[e++],g=\`\${t[e++]}\`;let f;if(t[e++]){if(f=ee.get(u,\`\${a}\`),!f)return e}else{const M=Math.ceil(Math.abs(l-o)*d),$=Math.ceil(Math.abs(c-i)*m),T=!!t[e++];f=T?ee.get(u,\`\${a}\`):C.createNode(M,$),T||ee.set(u,\`\${a}\`,f);const w=t[e++],E=new Uint8Array(t.subarray(e,e+w));e+=w;let F="none";switch(t[e++]){case 0:F="center";break;case 1:F="left";break;case 2:F="none";break;case 3:F="right";break}const A={width:M,height:$,autoSize:F,stopIndex:t[e++],scrollX:t[e++],scrollY:t[e++],textWidth:t[e++],textHeight:t[e++],rawWidth:t[e++],rawHeight:t[e++],focusIndex:t[e++],selectIndex:t[e++],focusVisible:!!t[e++],thickness:t[e++],thicknessColor:t[e++],wordWrap:!!t[e++],border:!!t[e++],borderColor:t[e++],background:!!t[e++],backgroundColor:t[e++],defaultColor:t[e++],defaultSize:t[e++]},R=og(JSON.parse(ig.decode(E)),A,d,m),v=C.currentAttachmentObject,U=C.atlasAttachmentObject;U&&C.bind(U),C.reset(),C.beginNodeRendering(f);const L=U?U.height-f.y-$:0;C.setTransform(1,0,0,1,f.x,L),C.drawElement(f,R),C.endNodeRendering(),v&&C.bind(v)}const x=t[e++];if(!!t[e++]){const M=!!t[e++],$=t.subarray(e,e+4);e+=4;const T=t[e++],w=t.subarray(e,e+T),E=Math.ceil(Math.abs(s[2]-s[0])),F=Math.ceil(Math.abs(s[3]-s[1]));return C.applyFilter(f,g,!!Math.max(+h,+M),E,F,!1,r,n,cr(x),$,w),e+=T,e}C.globalAlpha=Math.min(Math.max(0,n[3]+n[7]/255),1),C.imageSmoothingEnabled=!0,C.globalCompositeOperation=cr(x);const P=Math.atan2(r[1],r[0]),S=Math.atan2(-r[2],r[3]);if(P||S){const M=o*d,$=i*m,T=Math.cos(P),w=Math.sin(P),E=Math.cos(S),F=Math.sin(S);C.setTransform(T,w,-F,E,M*T-$*F+r[4],M*w+$*E+r[5])}else C.setTransform(1,0,0,1,s[0],s[1]);return C.drawDisplayObject(f,s[0],s[1],s[2],s[3],n),e},si=(t,e,r)=>{const n=t.subarray(e,e+6);e+=6;const s=t.subarray(e,e+8);e+=8;const o=t.subarray(e,e+4);e+=4;const i=t[e++],l=t[e++],c=t[e++],u=t[e++],a=\`\${t[e++]}\`,h="0",d=!!t[e++],m=\`\${t[e++]}\`;let g;if(t[e++]){if(g=ee.get(a,\`\${h}\`),!g)return e}else{const y=Math.abs(c-i),P=Math.abs(u-l),S=!!t[e++];if(g=S?ee.get(a,\`\${h}\`):C.createNode(y,P),S||ee.set(a,\`\${h}\`,g),r&&r.length){const M=C.currentAttachmentObject,$=C.atlasAttachmentObject;$&&C.bind($),C.reset(),C.beginNodeRendering(g);const T=$?$.height-g.y-P:0;C.setTransform(1,0,0,1,g.x,T);const w=r.shift();C.drawElement(g,w,!0),C.endNodeRendering(),M&&C.bind(M)}}const b=t[e++];if(!!t[e++]){const y=!!t[e++],P=t.subarray(e,e+4);e+=4;const S=t[e++],M=t.subarray(e,e+S),$=Math.ceil(Math.abs(o[2]-o[0])),T=Math.ceil(Math.abs(o[3]-o[1]));return C.applyFilter(g,m,!!Math.max(+d,+y),$,T,!0,n,s,cr(b),P,M),e+=S,e}return C.globalAlpha=Math.min(Math.max(0,s[3]+s[7]/255),1),C.imageSmoothingEnabled=!0,C.globalCompositeOperation=cr(b),C.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),C.drawDisplayObject(g,o[0],o[1],o[2],o[3],s),e},oi=(t,e)=>{const r=t[e++];for(let n=0;n<r;++n)switch(t[e++]){case 0:e=oi(t,e);break;case 1:e=ri(t,e);break}return e},ii=(t,e,r)=>{let n=0,s=!0;const o=cr(t[e++]),i=!!t[e++];let l=0,c=0,u=!1,a="",h="",d=null,m=null,g=null,f=null;if(i)if(l=t[e++],c=t[e++],u=!!t[e++],u){const y=!!t[e++];if(a=\`\${t[e++]}\`,h=\`\${t[e++]}\`,y)return d=t.subarray(e,e+4),e+=4,g=t.subarray(e,e+6),e+=6,f=t.subarray(e,e+8),e+=8,C.containerDrawCachedFilter(o,g,f,d,a,h),e;d=t.subarray(e,e+4),e+=4,g=t.subarray(e,e+6),e+=6,f=t.subarray(e,e+8),e+=8;const P=t[e++];m=t.subarray(e,e+P),e+=P}else g=t.subarray(e,e+6),e+=6,f=t.subarray(e,e+8),e+=8;i&&C.containerBeginLayer(l,c);const b=!!t[e++];if(b){switch(C.drawArraysInstanced(),C.save(),C.beginMask(),C.setMaskBounds(t[e++],t[e++],t[e++],t[e++]),t[e++]){case 0:e=oi(t,e);break;case 1:e=ri(t,e);break}C.endMask()}const x=t[e++];for(let y=0;x>y;y++){const P=t[e++],S=t[e++];if(n&&P>n&&(s&&(C.restore(),C.leaveMask()),n=0,s=!0),!s)continue;if(S){if(n=S,s=!!t[e++],!s)continue;switch(C.drawArraysInstanced(),C.save(),C.beginMask(),C.setMaskBounds(t[e++],t[e++],t[e++],t[e++]),t[e++]){case 0:e=oi(t,e);break;case 1:e=ri(t,e);break}C.endMask();continue}if(!t[e++])continue;switch(t[e++]){case 0:e=ii(t,e,r);break;case 1:e=ti(t,e);break;case 2:e=ni(t,e);break;case 3:e=si(t,e,r);break}}return(n||b)&&(C.restore(),C.leaveMask()),i&&C.containerEndLayer(o,g,f,u,d,m,a,h),e};let Nr=-1;const ag=(t,e)=>{I0()&&_0(),C.clearTransferBounds();let r=0;const n=t[r++];for(Nr!==n&&(Nr=n,Nr===-1?C.updateBackgroundColor(0,0,0,0):C.updateBackgroundColor((Nr>>16&255)/255,(Nr>>8&255)/255,(Nr&255)/255,1)),C.reset(),C.setTransform(1,0,0,1,0,0),C.fillBackgroundColor();t.length>r;){if(!t[r++])continue;const s=t[r++];switch(s){case 0:r=ii(t,r,e);break;case 1:r=ti(t,r);break;case 2:r=ni(t,r);break;case 3:r=si(t,r,e);break;default:console.error("unknown type",s);break}}C.drawArraysInstanced(),C.transferMainCanvas()},cg=t=>{for(let e=0;e<t.length;++e){const r=\`\${t[e]}\`;if(!ee.has(r))continue;const n=ee.getById(r);for(const s of n.values())C.removeNode(s);ee.removeById(r)}},lg=async(t,e,r,n=0,s=0,o)=>{C.clearTransferBounds();let i=1;C.reset(),C.setTransform(1,0,0,1,0,0);const l=C.$clearColorR,c=C.$clearColorG,u=C.$clearColorB,a=C.$clearColorA;for(C.updateBackgroundColor((n>>16&255)/255,(n>>8&255)/255,(n&255)/255,s),C.fillBackgroundColor();t.length>i;){if(!t[i++])continue;const d=t[i++];switch(d){case 0:i=ii(t,i,o);break;case 1:i=ti(t,i);break;case 2:i=ni(t,i);break;case 3:i=si(t,i,o);break;default:console.error("unknown type",d);break}}C.drawArraysInstanced();const h=await C.createImageBitmap(e,r);return C.updateBackgroundColor(l,c,u,a),h};class ug{state;queue;constructor(){this.state="deactivate",this.queue=[]}async execute(){for(this.state="active";this.queue.length;){const e=this.queue.shift();if(e)switch(e.command){case"render":ag(e.buffer.subarray(0,e.length),e.imageBitmaps),globalThis.postMessage({message:"render",buffer:e.buffer},[e.buffer.buffer]);break;case"resize":N0(e.buffer[0],e.buffer[1],!!e.buffer[2]);break;case"initialize":await D0(e.canvas,e.devicePixelRatio);break;case"removeCache":cg(e.buffer);break;case"cacheClear":ee.reset();break;case"capture":{const r=await lg(e.buffer.subarray(0,e.length),e.width,e.height,e.bgColor,e.bgAlpha,e.imageBitmaps);globalThis.postMessage({message:"capture",buffer:e.buffer,imageBitmap:r},[e.buffer.buffer,r])}break}}this.state="deactivate"}}const ai=new ug;self.addEventListener("message",async t=>{ai.queue.push(t.data),ai.state==="deactivate"&&await ai.execute()})})();
2338
2338
  `,Fn=typeof self<"u"&&self.Blob&&new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);",ds],{type:"text/javascript;charset=utf-8"});function Ni(e){let t;try{if(t=Fn&&(self.URL||self.webkitURL).createObjectURL(Fn),!t)throw"";const r=new Worker(t,{name:e?.name});return r.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),r}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(ds),{name:e?.name})}}const Ce=new Ni,Yi=e=>{const t=e.transferControlToOffscreen();Ce.postMessage({command:"initialize",canvas:t,devicePixelRatio:window.devicePixelRatio},[t])};class ze{static get AT_TARGET(){return 2}static get BUBBLING_PHASE(){return 3}static get CAPTURING_PHASE(){return 1}}let x=class{type;bubbles;listener;target;currentTarget;eventPhase;_$stopImmediatePropagation;_$stopPropagation;constructor(t,r=!1){this.type=`${t}`,this.bubbles=r,this.target=null,this.currentTarget=null,this.eventPhase=ze.AT_TARGET,this.listener=null,this._$stopImmediatePropagation=!1,this._$stopPropagation=!1}static get ADDED(){return"added"}static get ADDED_TO_STAGE(){return"addedToStage"}static get CHANGE(){return"change"}static get COMPLETE(){return"complete"}static get ENDED(){return"ended"}static get ENTER_FRAME(){return"enterFrame"}static get FRAME_LABEL(){return"frameLabel"}static get INPUT(){return"input"}static get OPEN(){return"open"}static get REMOVED(){return"removed"}static get REMOVED_FROM_STAGE(){return"removedFromStage"}static get RESIZE(){return"resize"}static get SCROLL(){return"scroll"}stopImmediatePropagation(){this._$stopImmediatePropagation=!0}stopPropagation(){this._$stopPropagation=!0}};const q=new Map,Kt=[],Qt=()=>Kt.length?Kt.pop():[],Pe=e=>{10>Kt.length&&(e.length=0,Kt.push(e))};let As=null;const We=e=>{As=e},jt=()=>As;class V extends x{constructor(t,r=!0){return super(t,r),new Proxy(this,{get:(n,s)=>{if(s in n)return n[s];const i=jt();if(i)switch(i.type){case V.KEY_DOWN:case V.KEY_UP:return s in i?$event[s]:void 0;default:return}}})}static get KEY_DOWN(){return"keydown"}static get KEY_UP(){return"keyup"}}const Wi=(e,t,r,n=!1,s=0)=>{let i;switch(t){case x.ENTER_FRAME:case V.KEY_DOWN:case V.KEY_UP:(!q.size||!q.has(t))&&q.set(t,Qt()),i=q.get(t);break;default:e._$events||(e._$events=new Map),(!e._$events.size||!e._$events.has(t))&&e._$events.set(t,Qt()),i=e._$events.get(t);break}const a=i.length;let o=0;for(;o<a;++o){const c=i[o];if(n===c.useCapture&&c.target===e&&c.listener===r)break}if(a===o)i.push({listener:r,priority:s,useCapture:n,target:e});else{const c=i[o];c.listener=r,c.priority=s,c.useCapture=n,c.target=e}i.length>1&&i.sort((c,u)=>{switch(!0){case c.priority>u.priority:return-1;case c.priority<u.priority:return 1;default:return 0}})},Vi=(e,t)=>{switch(t){case x.ENTER_FRAME:case V.KEY_DOWN:case V.KEY_UP:return!!(q.size&&q.has(t));default:return!!(e._$events&&e._$events.size&&e._$events.has(t))}},Ki=(e,t,r,n=!1)=>{let s;switch(t){case x.ENTER_FRAME:case V.KEY_DOWN:case V.KEY_UP:if(!q.size||!q.has(t))return;s=q.get(t);break;default:if(!e._$events||!e._$events.size||!e._$events.has(t))return;s=e._$events.get(t);break}if(s){for(let i=0;i<s.length;++i){const a=s[i];if(n===a.useCapture&&a.listener===r){s.splice(i,1);break}}if(!s.length){q.has(t)&&q.delete(t),e._$events&&e._$events.has(t)&&(e._$events.delete(t),e._$events.size||(e._$events=null)),Pe(s);return}s.length>1&&s.sort((i,a)=>{switch(!0){case i.priority>a.priority:return-1;case i.priority<a.priority:return 1;default:return 0}})}},Qi=(e,t,r=!1)=>{let n;switch(t){case x.ENTER_FRAME:case V.KEY_DOWN:case V.KEY_UP:if(!q.size||!q.has(t))return;n=q.get(t);break;default:if(!e._$events||!e._$events.size||!e._$events.has(t))return;n=e._$events.get(t);break}if(!n)return;const s=Qt();for(let i=0;i<n.length;++i){const a=n[i];r!==a.useCapture&&s.push(a)}if(!s.length){q.has(t)&&q.delete(t),e._$events&&e._$events.has(t)&&(e._$events.delete(t),e._$events.size||(e._$events=null)),Pe(s),Pe(n);return}s.length>1&&s.sort((i,a)=>{switch(!0){case i.priority>a.priority:return-1;case i.priority<a.priority:return 1;default:return 0}}),q.has(t)?q.set(t,s):e._$events?.set(t,s),Pe(n)},Xi=(e,t)=>{if(e.hasEventListener(t))return!0;if("parent"in e){let r=e.parent;for(;r;){if(r.hasEventListener(t))return!0;if(!("parent"in r))break;r=r.parent}}return!1},zi=(e,t)=>{switch(t.type){case x.ENTER_FRAME:case V.KEY_DOWN:case V.KEY_UP:{if(!q.size||!q.has(t.type))return!1;const r=q.get(t.type);if(!r.length)return!1;for(let n=0;n<r.length;++n){const s=r[n];t.eventPhase=ze.AT_TARGET,t.target=t.currentTarget=s.target;try{t.listener=s.listener,s.listener(t)}catch(i){return console.error(i),!1}}}return!0;default:{t.target=e;let r=null;if(e._$events&&e._$events.size&&e._$events.has(t.type)){const s=e._$events.get(t.type);s&&(r=s.slice(0))}const n=Qt();if("parent"in e){let s=e.parent;for(;s;){if(s.hasEventListener(t.type)){const i=s._$events&&s._$events.has(t.type)?s._$events.get(t.type):null;i&&n.push(i)}if(!("parent"in s))break;s=s.parent}}if(!r&&!n.length)return r&&Pe(r),Pe(n),!1;if(n.length)switch(t.eventPhase=ze.CAPTURING_PHASE,!0){case t._$stopImmediatePropagation:case t._$stopPropagation:break;default:for(let s=n.length-1;s>-1;--s){const i=n[s];for(let a=0;a<i.length;++a){const o=i[a];if(o.useCapture){t.currentTarget=o.target;try{t.listener=o.listener,o.listener.call(null,t)}catch(c){return console.error(c),!1}if(t._$stopImmediatePropagation)break}}if(t._$stopImmediatePropagation)break}break}if(r&&!t._$stopImmediatePropagation&&!t._$stopPropagation){t.eventPhase=ze.AT_TARGET;for(let s=0;s<r.length;++s){const i=r[s];if(!i.useCapture){t.currentTarget=i.target;try{t.listener=i.listener,i.listener.call(null,t)}catch(a){return console.error(a),!1}if(t._$stopImmediatePropagation)break}}Pe(r)}if(n.length){switch(t.eventPhase=ze.BUBBLING_PHASE,!0){case t._$stopImmediatePropagation:case t._$stopPropagation:case!t.bubbles:break;default:for(let s=0;s<n.length;++s){const i=n[s];for(let a=0;a<i.length;++a){const o=i[a];if(!o.useCapture){t.currentTarget=o.target;try{t.listener=o.listener,o.listener.call(null,t)}catch(c){return console.error(c),!1}if(t._$stopImmediatePropagation)break}}if(t._$stopImmediatePropagation)break}break}Pe(n)}}return!0}};class nt{_$events;constructor(){this._$events=null}addEventListener(t,r,n=!1,s=0){this._$events||(this._$events=new Map),Wi(this,t,r,n,s)}dispatchEvent(t){return zi(this,t)}hasEventListener(t){return Vi(this,t)}removeEventListener(t,r,n=!1){Ki(this,t,r,n)}removeAllEventListener(t,r=!1){Qi(this,t,r)}willTrigger(t){return Xi(this,t)}}class Ne extends x{constructor(t,r=!0){return super(t,r),new Proxy(this,{get:(n,s)=>{if(s in n)return n[s];const i=jt();if(i)switch(i.type){case Ne.FOCUS_IN:case Ne.FOCUS_OUT:return s in i?$event[s]:void 0;default:return}}})}static get FOCUS_IN(){return"focusin"}static get FOCUS_OUT(){return"focusout"}}class Gt extends x{status;responseHeaders;responseURL;constructor(t,r=!1,n=0,s="",i=[]){super(t,r),this.status=n|0,this.responseHeaders=i,this.responseURL=s}static get HTTP_STATUS(){return"httpStatus"}}class Re extends x{text;constructor(t,r=!1,n=""){super(t,r),this.text=`${n}`}static get IO_ERROR(){return"ioError"}}class S extends x{constructor(t,r=!0){return super(t,r),new Proxy(this,{get:(n,s)=>{if(s in n)return n[s];const i=jt();if(i)switch(i.type){case S.POINTER_DOWN:case S.POINTER_MOVE:case S.POINTER_UP:case S.POINTER_LEAVE:case S.POINTER_OVER:case S.POINTER_OUT:return s in i?$event[s]:void 0;default:return}}})}static get DOUBLE_CLICK(){return"dblclick"}static get POINTER_DOWN(){return"pointerdown"}static get POINTER_LEAVE(){return"pointerleave"}static get POINTER_MOVE(){return"pointermove"}static get POINTER_OUT(){return"pointerout"}static get POINTER_OVER(){return"pointerover"}static get POINTER_UP(){return"pointerup"}static get POINTER_CANCEL(){return"pointercancel"}}class Z extends x{bytesLoaded;bytesTotal;constructor(t,r=!1,n=0,s=0){super(t,r),this.bytesLoaded=n|0,this.bytesTotal=s|0}static get PROGRESS(){return"progress"}}class Ae extends x{static get PLAY(){return"play"}static get PLAYING(){return"playing"}static get PAUSE(){return"pause"}static get SEEK(){return"seek"}}class ye extends x{static get UPDATE(){return"jobupdate"}static get STOP(){return"jobstop"}}class qe extends x{constructor(t,r=!0){return super(t,r),new Proxy(this,{get:(n,s)=>{if(s in n)return n[s];const i=jt();if(i&&i.type===qe.WHEEL)return s in i?$event[s]:void 0}})}static get WHEEL(){return"wheel"}}const ps=[],er=e=>{e.size&&e.clear(),ps.push(e)},Hi=()=>ps.pop()||new Map,Ji=(e,t,r)=>{r.clear(),e.$timerId!==null&&clearTimeout(e.$timerId);for(const n of t.values()){for(const s of n.values())s&&e.destroy(s);er(n)}t.clear()},Zi=(e,t)=>{if(!(!t||typeof t!="object")&&"canvas"in t){const r=t.canvas,n=r.width,s=r.height;t.clearRect(0,0,n+1,s+1),r.width=r.height=1,e.push(r)}},qi=(e,t,r)=>{if(!e.has(t))return;const n=e.get(t);n.has(r)&&(n.delete(r),n.size||(er(n),e.delete(t)))},ji=(e,t,r)=>{if(!t.has(r))return;const n=t.get(r);for(const s of n.values())e.destroy(s);t.delete(r),er(n)},ea=(e,t,r)=>{const n=e.get(t)||null;return n?(n.delete("trash"),n.get(r)||null):null},ta=(e,t,r,n,s=null)=>{t.has(r)||t.set(r,Hi());const i=t.get(r);if(s===null){if(!i.has(n))return;e.destroy(i.get(n)),i.delete(n),i.size||(t.delete(r),er(i));return}i.set(n,s)},ra=(e,t,r="")=>r?e.has(t)?e.get(t).has(r):!1:e.has(t),na=(e,t,r)=>{let n=2166136261,s=e*100|0;return n^=s&255,n=Math.imul(n,16777619),n^=s>>>8&255,n=Math.imul(n,16777619),n^=s>>>16&255,n=Math.imul(n,16777619),n^=s>>>24,n=Math.imul(n,16777619),s=t*100|0,n^=s&255,n=Math.imul(n,16777619),n^=s>>>8&255,n=Math.imul(n,16777619),n^=s>>>16&255,n=Math.imul(n,16777619),n^=s>>>24,n=Math.imul(n,16777619),r&&(s=r*100|0,n^=s&255,n=Math.imul(n,16777619),n^=s>>>8&255,n=Math.imul(n,16777619),n^=s>>>16&255,n=Math.imul(n,16777619),n^=s>>>24,n=Math.imul(n,16777619)),(n>>>0)%16777216},sa=(e,t,r,n)=>{let s=2166136261,i=e*100|0;return s^=i&255,s=Math.imul(s,16777619),s^=i>>>8&255,s=Math.imul(s,16777619),s^=i>>>16&255,s=Math.imul(s,16777619),s^=i>>>24,s=Math.imul(s,16777619),i=t*100|0,s^=i&255,s=Math.imul(s,16777619),s^=i>>>8&255,s=Math.imul(s,16777619),s^=i>>>16&255,s=Math.imul(s,16777619),s^=i>>>24,s=Math.imul(s,16777619),i=r*100|0,s^=i&255,s=Math.imul(s,16777619),s^=i>>>8&255,s=Math.imul(s,16777619),s^=i>>>16&255,s=Math.imul(s,16777619),s^=i>>>24,s=Math.imul(s,16777619),i=n*100|0,s^=i&255,s=Math.imul(s,16777619),s^=i>>>8&255,s=Math.imul(s,16777619),s^=i>>>16&255,s=Math.imul(s,16777619),s^=i>>>24,s=Math.imul(s,16777619),(s>>>0)%16777216},ia=(e,t,r,n)=>{if(r.has(n))return;const s=t.get(n);s&&(s.set("trash",!0),r.set(n,s),e.$timerId!==null&&clearTimeout(e.$timerId),e.$removeCache=!1,e.$timerId=setTimeout(()=>{e.$removeCache=!0,e.$timerId=null},1e3))},aa=(e,t)=>{if(t.size){for(const[r,n]of t)n.has("trash")&&(e.removeById(r),e.$removeIds.push(+r));t.clear(),e.$removeCache=!1}};class oa{_$pool;_$store;_$trash;$timerId;$removeCache;$removeIds;constructor(){this._$pool=[],this._$store=new Map,this._$trash=new Map,this.$timerId=null,this.$removeIds=[],this.$removeCache=!1}reset(){Ji(this,this._$store,this._$trash)}destroy(t=null){Zi(this._$pool,t)}getCanvas(){return this._$pool.pop()||document.createElement("canvas")}remove(t,r){qi(this._$store,t,r)}removeTimer(t){ia(this,this._$store,this._$trash,t)}removeTimerScheduledCache(){aa(this,this._$trash)}removeById(t){ji(this,this._$store,t)}getById(t){return this._$store.get(t)}get(t,r){return ea(this._$store,t,r)}set(t,r,n=null){ta(this,this._$store,t,r,n)}has(t,r=""){return ra(this._$store,t,r)}generateKeys(t,r,n){return na(t,r,n)}generateFilterKeys(t,r,n,s){return sa(t,r,n,s)}}const O=new oa,ca=e=>{const t=O.getCanvas();t.width=e.width,t.height=e.height;const r=t.getContext("2d",{willReadFrequently:!0});r.drawImage(e,0,0);const n=r.getImageData(0,0,e.width,e.height),s=new Uint8Array(n.data.buffer);return O.destroy(r),s},la=e=>{const t=O.getCanvas();t.width=e.width,t.height=e.height;const r=t.getContext("2d");r.setTransform(1,0,0,1,0,0),r.drawImage(e,0,0);const n=r.getImageData(0,0,e.width,e.height),s=new Uint8Array(n.data.buffer);return O.destroy(r),s};class _e{width;height;buffer;constructor(t=0,r=0){this.width=t|0,this.height=r|0,this.buffer=null}set image(t){if(!t){this.width=0,this.height=0,this.buffer=null;return}this.buffer=ca(t),this.width=t.width,this.height=t.height}set canvas(t){if(!t){this.width=0,this.height=0,this.buffer=null;return}this.buffer=la(t),this.width=t.width,this.height=t.height}clone(){const t=new _e(this.width,this.height);return this.buffer!==null&&(t.buffer=this.buffer.slice()),t}}class ua{static get ADD(){return"add"}static get ALPHA(){return"alpha"}static get DARKEN(){return"darken"}static get DIFFERENCE(){return"difference"}static get ERASE(){return"erase"}static get HARDLIGHT(){return"hardlight"}static get INVERT(){return"invert"}static get LAYER(){return"layer"}static get LIGHTEN(){return"lighten"}static get MULTIPLY(){return"multiply"}static get NORMAL(){return"normal"}static get OVERLAY(){return"overlay"}static get SCREEN(){return"screen"}static get SUBTRACT(){return"subtract"}}const j=e=>{e.changed=!0;let t=e.parent;for(;t&&!t.changed;)t.changed=!0,t=t.parent},ha=(e,t)=>{const r=U.multiply(e._$colorTransform,t._$colorTransform);e._$colorTransform[0]=r[0],e._$colorTransform[1]=r[1],e._$colorTransform[2]=r[2],e._$colorTransform[3]=r[3],e._$colorTransform[4]=r[4],e._$colorTransform[5]=r[5],e._$colorTransform[6]=r[6],e._$colorTransform[7]=r[7],U.release(r)},ms=[],En=(e=1,t=0,r=0,n=1,s=0,i=0)=>{const a=ms.pop()||new Float32Array(6);return a[0]=e,a[1]=t,a[2]=r,a[3]=n,a[4]=s,a[5]=i,a},fa=e=>{ms.push(e)},gs=[],Pn=(e=1,t=1,r=1,n=1,s=0,i=0,a=0,o=0)=>{const c=gs.pop()||new Float32Array(8);return c[0]=e,c[1]=t,c[2]=r,c[3]=n,c[4]=s,c[5]=i,c[6]=a,c[7]=o,c},da=e=>{gs.push(e)},Ee=(e,t,r,n=null)=>{const s=+e;return isNaN(s)&&n!==null?n:Math.min(Math.max(t,isNaN(s)?0:s),r)};class U{_$colorTransform;constructor(t=1,r=1,n=1,s=1,i=0,a=0,o=0,c=0){this._$colorTransform=Pn(t,r,n,s,i,a,o,c)}get rawData(){return this._$colorTransform}get alphaMultiplier(){return this._$colorTransform[3]}set alphaMultiplier(t){this._$colorTransform[3]=Ee(t,0,1,1)}get alphaOffset(){return this._$colorTransform[7]}set alphaOffset(t){this._$colorTransform[7]=Ee(t,-255,255,0)}get blueMultiplier(){return this._$colorTransform[2]}set blueMultiplier(t){this._$colorTransform[2]=Ee(t,0,1,1)}get blueOffset(){return this._$colorTransform[6]}set blueOffset(t){this._$colorTransform[6]=Ee(t,-255,255,0)}get greenMultiplier(){return this._$colorTransform[1]}set greenMultiplier(t){this._$colorTransform[1]=Ee(t,0,1,1)}get greenOffset(){return this._$colorTransform[5]}set greenOffset(t){this._$colorTransform[5]=Ee(t,-255,255,0)}get redMultiplier(){return this._$colorTransform[0]}set redMultiplier(t){this._$colorTransform[0]=Ee(t,0,1,1)}get redOffset(){return this._$colorTransform[4]}set redOffset(t){this._$colorTransform[4]=Ee(t,-255,255,0)}clone(){return new U(...this._$colorTransform)}concat(t){ha(this,t)}static multiply(t,r){return Pn(t[0]*r[0],t[1]*r[1],t[2]*r[2],t[3]*r[3],t[0]*r[4]+t[4],t[1]*r[5]+t[5],t[2]*r[6]+t[6],t[3]*r[7]+t[7])}static release(t){da(t)}}const Aa=e=>new T(e._$matrix[0],e._$matrix[1],e._$matrix[2],e._$matrix[3],e._$matrix[4],e._$matrix[5]),pa=(e,t)=>{const r=e._$matrix,n=t._$matrix;let s=r[0]*n[0],i=0,a=0,o=r[3]*n[3],c=r[4]*n[0]+n[4],u=r[5]*n[3]+n[5];(r[1]||r[2]||n[1]||n[2])&&(s+=r[1]*n[2],o+=r[2]*n[1],i+=r[0]*n[1]+r[1]*n[3],a+=r[2]*n[0]+r[3]*n[2],c+=r[5]*n[2],u+=r[4]*n[1]),r[0]=s,r[1]=i,r[2]=a,r[3]=o,r[4]=c,r[5]=u},ma=(e,t)=>{e._$matrix[0]=t._$matrix[0],e._$matrix[1]=t._$matrix[1],e._$matrix[2]=t._$matrix[2],e._$matrix[3]=t._$matrix[3],e._$matrix[4]=t._$matrix[4],e._$matrix[5]=t._$matrix[5]},ga=(e,t,r,n=0,s=0,i=0)=>{e.identity(),e.rotate(n),e.scale(t,r),e.translate(s,i)},ba=(e,t,r,n=0,s=0,i=0)=>{const a=e._$matrix;if(a[0]=t/1638.4,a[3]=r/1638.4,n){const o=Math.cos(n),c=Math.sin(n);a[1]=c*a[3],a[2]=-c*a[0],a[0]*=o,a[3]*=o}else a[1]=0,a[2]=0;a[4]=s+t/2,a[5]=i+r/2},xa=(e,t)=>new ie(e.x+t.x,e.y+t.y),ya=e=>new ie(e.x,e.y),$a=(e,t)=>{e.x=t.x,e.y=t.y},va=(e,t)=>Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)),wa=(e,t)=>e.x===t.x&&e.y===t.y,Ma=(e,t,r)=>new ie(e.x+(t.x-e.x)*(1-r),e.y+(t.y-e.y)*(1-r)),Ba=(e,t)=>{const r=t/e.length;e.x*=r,e.y*=r},Ta=(e,t,r)=>{e.x+=t,e.y+=r},Sa=(e,t)=>new ie(e*Math.cos(t),e*Math.sin(t)),Ia=(e,t,r)=>{e.x=t,e.y=r},Ca=(e,t)=>new ie(e.x-t.x,e.y-t.y);class ie{x;y;constructor(t=0,r=0){this.x=t,this.y=r}get length(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}add(t){return xa(this,t)}clone(){return ya(this)}copyFrom(t){$a(this,t)}static distance(t,r){return va(t,r)}equals(t){return wa(this,t)}static interpolate(t,r,n){return Ma(t,r,n)}normalize(t){Ba(this,t)}offset(t,r){Ta(this,t,r)}static polar(t,r){return Sa(t,r)}setTo(t,r){Ia(this,t,r)}subtract(t){return Ca(this,t)}}const Fa=(e,t)=>new ie(t.x*e._$matrix[0]+t.y*e._$matrix[2],t.x*e._$matrix[1]+t.y*e._$matrix[3]),Ea=e=>{e._$matrix[0]=1,e._$matrix[1]=0,e._$matrix[2]=0,e._$matrix[3]=1,e._$matrix[4]=0,e._$matrix[5]=0},Pa=e=>{const t=e._$matrix[0],r=e._$matrix[1],n=e._$matrix[2],s=e._$matrix[3],i=e._$matrix[4],a=e._$matrix[5];if(r===0&&n===0)e._$matrix[0]=1/t,e._$matrix[1]=0,e._$matrix[2]=0,e._$matrix[3]=1/s,e._$matrix[4]=-e._$matrix[0]*i,e._$matrix[5]=-e._$matrix[3]*a;else{const o=t*s-r*n;if(o){const c=1/o;e._$matrix[0]=s*c,e._$matrix[1]=-r*c,e._$matrix[2]=-n*c,e._$matrix[3]=t*c,e._$matrix[4]=-(e._$matrix[0]*i+e._$matrix[2]*a),e._$matrix[5]=-(e._$matrix[1]*i+e._$matrix[3]*a)}}},Ra=(e,t)=>{const r=e._$matrix,n=r[0],s=r[1],i=r[2],a=r[3],o=r[4],c=r[5];r[0]=n*Math.cos(t)-s*Math.sin(t),r[1]=n*Math.sin(t)+s*Math.cos(t),r[2]=i*Math.cos(t)-a*Math.sin(t),r[3]=i*Math.sin(t)+a*Math.cos(t),r[4]=o*Math.cos(t)-c*Math.sin(t),r[5]=o*Math.sin(t)+c*Math.cos(t)},Oa=(e,t,r)=>{const n=e._$matrix;n[0]*=t,n[2]*=t,n[4]*=t,n[1]*=r,n[3]*=r,n[5]*=r},ka=(e,t,r,n,s,i,a)=>{const o=e._$matrix;o[0]=t,o[1]=r,o[2]=n,o[3]=s,o[4]=i,o[5]=a},Ua=(e,t)=>{const r=t.x,n=t.y,s=e._$matrix;return new ie(r*s[0]+n*s[2]+s[4],r*s[1]+n*s[3]+s[5])},Ga=(e,t,r)=>{e.tx+=t,e.ty+=r};class T{_$matrix;constructor(t=1,r=0,n=0,s=1,i=0,a=0){this._$matrix=En(t,r,n,s,i,a)}get a(){return this._$matrix[0]}set a(t){this._$matrix[0]=t}get b(){return this._$matrix[1]}set b(t){this._$matrix[1]=t}get c(){return this._$matrix[2]}set c(t){this._$matrix[2]=t}get d(){return this._$matrix[3]}set d(t){this._$matrix[3]=t}get tx(){return this._$matrix[4]}set tx(t){this._$matrix[4]=t}get ty(){return this._$matrix[5]}set ty(t){this._$matrix[5]=t}get rawData(){return this._$matrix}clone(){return Aa(this)}concat(t){pa(this,t)}copyFrom(t){ma(this,t)}createBox(t,r,n=0,s=0,i=0){ga(this,t,r,n,s,i)}createGradientBox(t,r,n=0,s=0,i=0){ba(this,t,r,n,s,i)}deltaTransformPoint(t){return Fa(this,t)}identity(){Ea(this)}invert(){Pa(this)}rotate(t){Ra(this,t)}scale(t,r){Oa(this,t,r)}setTo(t,r,n,s,i,a){ka(this,t,r,n,s,i,a)}transformPoint(t){return Ua(this,t)}translate(t,r){Ga(this,t,r)}static multiply(t,r){const n=t[0],s=t[1],i=t[2],a=t[3],o=t[4],c=t[5],u=r[0],h=r[1],l=r[2],f=r[3],A=r[4],d=r[5];return En(n*u+i*h,s*u+a*h,n*l+i*f,s*l+a*f,n*A+i*d+o,s*A+a*d+c)}static release(t){fa(t)}}const _a=e=>new be(e.x,e.y,e.width,e.height),Da=(e,t,r)=>e.x<=t&&e.y<=r&&e.right>t&&e.bottom>r,La=(e,t)=>e.x<=t.x&&e.y<=t.y&&e.right>t.x&&e.bottom>t.y,Na=(e,t)=>e.x<=t.x&&e.y<=t.y&&e.right>=t.right&&e.bottom>=t.bottom,Ya=(e,t)=>{e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height},Wa=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,Va=(e,t,r)=>{e.x-=t,e.width+=2*t,e.y-=r,e.height+=2*r},Ka=(e,t)=>{e.x-=t.x,e.width+=2*t.x,e.y-=t.y,e.height+=2*t.y},Qa=(e,t)=>{const r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),s=Math.min(e.right,t.right),i=Math.min(e.bottom,t.bottom),a=s-r,o=i-n;return a>0&&o>0?new be(r,n,a,o):new be(0,0,0,0)},Xa=(e,t)=>{const r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),s=Math.min(e.right,t.right),i=Math.min(e.bottom,t.bottom);return s-r>0&&i-n>0},za=e=>e.width<=0||e.height<=0,Ha=(e,t,r)=>{e.x+=t,e.y+=r},Ja=(e,t)=>{e.x+=t.x,e.y+=t.y},Za=e=>{e.x=e.y=e.width=e.height=0},qa=(e,t,r,n,s)=>{e.x=t,e.y=r,e.width=n,e.height=s},ja=(e,t)=>e.isEmpty()?t.clone():t.isEmpty()?e.clone():new be(Math.min(e.x,t.x),Math.min(e.y,t.y),Math.max(e.right-t.left,t.right-e.left),Math.max(e.bottom-t.top,t.bottom-e.top));class be{x;y;width;height;constructor(t=0,r=0,n=0,s=0){this.x=t,this.y=r,this.width=n,this.height=s}get bottom(){return this.y+this.height}set bottom(t){this.height=t-this.y}get bottomRight(){return new ie(this.right,this.bottom)}set bottomRight(t){this.right=t.x,this.bottom=t.y}get left(){return this.x}set left(t){this.width=this.right-t,this.x=t}get right(){return this.x+this.width}set right(t){this.width=t-this.x}get size(){return new ie(this.width,this.height)}set size(t){this.width=t.x,this.height=t.y}get top(){return this.y}set top(t){this.height=this.bottom-t,this.y=t}get topLeft(){return new ie(this.x,this.y)}set topLeft(t){this.left=t.x,this.top=t.y}clone(){return _a(this)}contains(t,r){return Da(this,t,r)}containsPoint(t){return La(this,t)}containsRect(t){return Na(this,t)}copyFrom(t){Ya(this,t)}equals(t){return Wa(this,t)}inflate(t,r){Va(this,t,r)}inflatePoint(t){Ka(this,t)}intersection(t){return Qa(this,t)}intersects(t){return Xa(this,t)}isEmpty(){return za(this)}offset(t,r){Ha(this,t,r)}offsetPoint(t){Ja(this,t)}setEmpty(){Za(this)}setTo(t,r,n,s){qa(this,t,r,n,s)}union(t){return ja(this,t)}}const tr=e=>{if(e.placeObject)return e.placeObject;const t=e.placeId;if(t===-1)return null;const r=e.parent;if(!r)return null;const n=r.loaderInfo;if(!n||!n.data)return null;const s=n.data.characters[r.characterId],i=r.isTimelineEnabled?r.currentFrame:1,a=s.placeMap[i];if(!a||!(t in a))return null;const o=a[t],c=s.placeObjects[o];return c?(e.placeObject=c,c):null},bt=new ie,bs=0,xs=1,eo=2,to=3,xt=new Float32Array([1,0,0,1,0,0]);let ro=0;const ys=()=>ro++,$s=[],Pr=[],vs=[],no=[],je=(e=0,t=0,r=0,n=0,s=0,i=0)=>{const a=vs.pop()||new Float32Array(6);return a[0]=e,a[1]=t,a[2]=r,a[3]=n,a[4]=s,a[5]=i,a},Ft=e=>{vs.push(e)},_t=(e=1,t=1,r=1,n=1,s=0,i=0,a=0,o=0)=>{const c=no.pop()||new Float32Array(8);return c[0]=e,c[1]=t,c[2]=r,c[3]=n,c[4]=s,c[5]=i,c[6]=a,c[7]=o,c},ws=[],so=()=>ws.pop()||new Map,io=e=>{e.clear(),ws.push(e)},z=(...e)=>{const t=$s.pop()||[];return e.length&&t.push(...e),t},oe=e=>{e.length&&(e.length=0),$s.push(e)},re=(e,t,r,n)=>{const s=Pr.length?Pr.pop():new Float32Array(4);return s[0]=e,s[1]=t,s[2]=r,s[3]=n,s},k=e=>{Pr.push(e)},ao=e=>{let t=null;switch(e.method.toUpperCase()){case"GET":if(e.data){const n=e.url.split("?");n[1]=n.length===1?e.data.toString():`${n[1]}&${e.data.toString()}`,e.url=n.join("?")}break;case"PUT":case"POST":e.data&&(t=e.data.toString());break}const r=new XMLHttpRequest;if(r.open(e.method,e.url,!0),r.responseType=e.format,r.withCredentials=e.withCredentials,e.event){const n=Object.keys(e.event);for(let s=0;s<n.length;++s){const i=n[s];r.addEventListener(i,e.event[i])}}for(let n=0;n<e.headers.length;++n){const s=e.headers[n];s&&r.setRequestHeader(s.name,s.value)}r.send(t)},oo=e=>{const t=z();if(e){const r=e.trim().split(`
2339
- `);for(let n=0;n<r.length;++n){const s=r[n].split(":");t.push({name:s[0].trim(),value:s[1].trim()})}}return t},Dt=new WeakMap,we=new WeakMap,ge=new Set,co=new WeakMap,Rr=document.createElement("canvas");Rr.width=Rr.height=1;const Ie=Rr.getContext("2d"),Or=e=>Ie?(Ie.fillStyle=e,+`0x${Ie.fillStyle.slice(1)}`):0,me=(e,t,r,n=null)=>{const s=+e;return isNaN(s)&&n!==null?n:Math.min(Math.max(t,isNaN(s)?0:s),r)},kr=[],Ur=[],Ue=new Map;let Ms=null;const Bs=e=>{Ms=e},lo=()=>Ms,_=e=>{if(e.$matrix)return e.$matrix.rawData;const t=tr(e);if(!t||!t.matrix)return null;if(!t.typedMatrix){const r=t.matrix;t.typedMatrix=je(r[0],r[1],r[2],r[3],r[4],r[5])}return t.typedMatrix},uo=e=>{const t=_(e);let r=t||xt,n=e.parent;for(;n;){const s=_(n);s&&(r=T.multiply(s,r)),n=n.parent}return new T(r[0],r[1],r[2],r[3],r[4],r[5])},Ve=e=>{if(e.$colorTransform)return e.$colorTransform.rawData;const t=tr(e);if(!t||!t.colorTransform)return null;if(!t.typedColorTransform){const r=t.colorTransform;t.typedColorTransform=_t(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7])}return t.typedColorTransform},ho=e=>{if(e.$alpha!==null)return e.$alpha;if(e.$colorTransform){const r=e.$colorTransform.rawData;return r[3]+r[7]/255}const t=Ve(e);return t?t[3]+t[7]/255:1},fo=(e,t)=>{if(t=me(t,0,1),e.$alpha===t)return;e.$alpha=t;let r=e.$colorTransform;if(!r){const n=Ve(e);r=n?new U(...n):new U}r.alphaMultiplier=t,r.alphaOffset=0,e.$colorTransform=r,j(e)};class Fe{$updated;constructor(){this.$updated=!0}canApplyFilter(){return!0}getBounds(t){return t}}const F=(e,t,r,n=null)=>{const s=+e;return isNaN(s)&&n!==null?n:Math.min(Math.max(t,isNaN(s)?0:s),r)},Gr=document.createElement("canvas");Gr.width=Gr.height=1;const Sr=Gr.getContext("2d"),Oe=e=>Sr?(Sr.fillStyle=e,+`0x${Sr.fillStyle.slice(1)}`):0,cn=Math.PI/180,ln=e=>{switch(e){case"full":return 0;case"inner":return 1;case"outer":return 2;default:return 0}},Ts=e=>e.strength>0&&e.distance!==0&&e.blurX>0&&e.blurY>0&&e.quality>0,Ss=e=>e.blurX>0&&e.blurY>0&&e.quality>0,Ao=[.5,1.05,1.4,1.55,1.75,1.9,2,2.15,2.2,2.3,2.5,3,3,3.5,3.5],st=(e,t)=>{if(!Ss(e))return t;const r=Ao[e.quality-1],n=Math.round(e.blurX*r),s=Math.round(e.blurY*r);return t[0]-=n,t[2]+=n,t[1]-=s,t[3]+=s,t},po=(e,t)=>{if(!Ts(e)||e.type==="inner")return t;st(e,t);const r=e.angle*cn,n=e.distance,s=Math.abs(Math.cos(r)*n),i=Math.abs(Math.sin(r)*n);return t[0]-=s,t[2]+=s,t[1]-=i,t[3]+=i,t},mo=e=>[e.$filterType,e.distance,e.angle,e.highlightColor,e.highlightAlpha,e.shadowColor,e.shadowAlpha,e.blurX,e.blurY,e.strength,e.quality,e.type,e.knockout],go=e=>new Float32Array([e.$filterType,e.distance,e.angle,e.highlightColor,e.highlightAlpha,e.shadowColor,e.shadowAlpha,e.blurX,e.blurY,e.strength,e.quality,ln(e.type),+e.knockout]);class rr extends Fe{$filterType=0;_$blurX;_$blurY;_$quality;_$distance;_$angle;_$highlightColor;_$highlightAlpha;_$shadowColor;_$shadowAlpha;_$strength;_$type;_$knockout;constructor(t=4,r=45,n=16777215,s=1,i=0,a=1,o=4,c=4,u=1,h=1,l="inner",f=!1){super(),this._$distance=4,this._$angle=45,this._$highlightColor=16777215,this._$highlightAlpha=1,this._$blurX=4,this._$blurY=4,this._$quality=1,this._$shadowColor=0,this._$shadowAlpha=1,this._$strength=1,this._$type="inner",this._$knockout=!1,this.blurX=o,this.blurY=c,this.quality=h,this.distance=t,this.angle=r,this.highlightColor=n,this.highlightAlpha=s,this.shadowColor=i,this.shadowAlpha=a,this.strength=u,this.type=l,this.knockout=f}get angle(){return this._$angle}set angle(t){t=F(t%360,-360,360,45),t!==this._$angle&&(this._$angle=t,this.$updated=!0)}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get distance(){return this._$distance}set distance(t){t=F(+t,-255,255,4),t!==this._$distance&&(this._$distance=t,this.$updated=!0)}get highlightAlpha(){return this._$highlightAlpha}set highlightAlpha(t){t=F(+t,0,1,0),t!==this._$highlightAlpha&&(this._$highlightAlpha=t,this.$updated=!0)}get highlightColor(){return this._$highlightColor}set highlightColor(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,16777215),t!==this._$highlightColor&&(this._$highlightColor=t,this.$updated=!0)}get knockout(){return this._$knockout}set knockout(t){t=!!t,t!==this._$knockout&&(this._$knockout=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}get shadowAlpha(){return this._$shadowAlpha}set shadowAlpha(t){t=F(t,0,1,0),t!==this._$shadowAlpha&&(this._$shadowAlpha=t,this.$updated=!0)}get shadowColor(){return this._$shadowColor}set shadowColor(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,0),t!==this._$shadowColor&&(this._$shadowColor=t,this.$updated=!0)}get strength(){return this._$strength}set strength(t){t=F(t|0,0,255,0),t!==this._$strength&&(this._$strength=t,this.$updated=!0)}get type(){return this._$type}set type(t){if(t=`${t}`.toLowerCase(),t!==this._$type){switch(t){case"inner":case"outer":case"full":break;default:return}this._$type=t,this.$updated=!0}}clone(){return new rr(this._$distance,this._$angle,this._$highlightColor,this._$highlightAlpha,this._$shadowColor,this._$shadowAlpha,this._$blurX,this._$blurY,this._$strength,this._$quality,this._$type,this._$knockout)}toArray(){return mo(this)}toNumberArray(){return go(this)}canApplyFilter(){return Ts(this)}getBounds(t){return po(this,t)}}const bo=e=>[e.$filterType,e.blurX,e.blurY,e.quality],xo=e=>new Float32Array([e.$filterType,e.blurX,e.blurY,e.quality]);class nr extends Fe{$filterType=1;_$blurX;_$blurY;_$quality;constructor(t=4,r=4,n=1){super(),this._$blurX=4,this._$blurY=4,this._$quality=1,this.blurX=t,this.blurY=r,this.quality=n}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}clone(){return new nr(this._$blurX,this._$blurY,this._$quality)}toArray(){return bo(this)}toNumberArray(){return xo(this)}canApplyFilter(){return Ss(this)}getBounds(t){return st(this,t)}}const yo=e=>[e.$filterType,e.matrix],$o=e=>new Float32Array([e.$filterType,...e.matrix]);class sr extends Fe{$filterType=2;_$matrix;constructor(t=null){super(),this._$matrix=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],t&&t.length===20&&(this.matrix=t)}get matrix(){return this._$matrix}set matrix(t){if(this._$matrix!==t&&!(!Array.isArray(t)||t.length!==20)){for(let r=0;r<20;r++)if(t[r]!==this._$matrix[r]){this.$updated=!0;break}this.$updated&&(this._$matrix=t)}}clone(){return new sr(this._$matrix)}toArray(){return yo(this)}toNumberArray(){return $o(this)}}const vo=e=>e.matrix!==null&&e.matrixX*e.matrixY===e.matrix.length,wo=e=>[e.$filterType,e.matrixX,e.matrixY,e.matrix,e.divisor,e.bias,e.preserveAlpha,e.clamp,e.color,e.alpha],Mo=e=>{const t=e.matrix||[];return new Float32Array([e.$filterType,e.matrixX,e.matrixY,...t,e.divisor,e.bias,+e.preserveAlpha,+e.clamp,e.color,e.alpha])};class ir extends Fe{$filterType=3;_$matrixX;_$matrixY;_$matrix;_$divisor;_$bias;_$preserveAlpha;_$clamp;_$color;_$alpha;constructor(t=0,r=0,n=null,s=1,i=0,a=!0,o=!0,c=0,u=0){super(),this._$matrixX=0,this._$matrixY=0,this._$matrix=null,this._$divisor=1,this._$bias=0,this._$preserveAlpha=!0,this._$clamp=!0,this._$color=0,this._$alpha=0,this.matrixX=t,this.matrixY=r,this.matrix=n,this.divisor=s,this.bias=i,this.preserveAlpha=a,this.clamp=o,this.color=c,this.alpha=u}get alpha(){return this._$alpha}set alpha(t){t=F(+t,0,1,0),t!==this._$alpha&&(this._$alpha=t,this.$updated=!0)}get bias(){return this._$bias}set bias(t){t|=0,t!==this._$bias&&(this._$bias=t,this.$updated=!0)}get clamp(){return this._$clamp}set clamp(t){t=!!t,t!==this._$clamp&&(this._$clamp=t,this.$updated=!0)}get color(){return this._$color}set color(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,0),t!==this._$color&&(this._$color=t,this.$updated=!0)}get divisor(){return this._$divisor}set divisor(t){t|=0,t!==this._$divisor&&(this._$divisor=t,this.$updated=!0)}get matrix(){return this._$matrix}set matrix(t){this._$matrix!==t&&(this._$matrix=t,this.$updated=!0)}get matrixX(){return this._$matrixX}set matrixX(t){t=F(t|0,0,15,0)|0,t!==this._$matrixX&&(this._$matrixX=t,this.$updated=!0)}get matrixY(){return this._$matrixY}set matrixY(t){t=F(t|0,0,15,0)|0,t!==this._$matrixY&&(this._$matrixY=t,this.$updated=!0)}get preserveAlpha(){return this._$preserveAlpha}set preserveAlpha(t){t=!!t,t!==this._$preserveAlpha&&(this._$preserveAlpha=t,this.$updated=!0)}clone(){return new ir(this._$matrixX,this._$matrixY,this._$matrix?this._$matrix.slice():null,this._$divisor,this._$bias,this._$preserveAlpha,this._$clamp,this._$color,this._$alpha)}toArray(){return wo(this)}toNumberArray(){return Mo(this)}canApplyFilter(){return vo(this)}}const Bo=e=>e.bitmapBuffer!==null&&e.componentX>0&&e.componentY>0&&e.scaleX!==0&&e.scaleY!==0,To=e=>[e.$filterType,e.bitmapBuffer?Array.from(e.bitmapBuffer):null,e.bitmapWidth,e.bitmapHeight,e.mapPointX,e.mapPointY,e.componentX,e.componentY,e.scaleX,e.scaleY,e.mode,e.color,e.alpha],So=e=>{let t=2;switch(e.mode){case"clamp":t=0;break;case"color":t=1;break;case"wrap":t=2;break;case"ignore":t=3;break;default:t=2;break}const r=e.bitmapBuffer||new Uint8Array,n=[e.$filterType,r.length];for(let s=0;s<r.length;s+=4096)n.push(...r.subarray(s,s+4096));return n.push(e.bitmapWidth,e.bitmapHeight,e.mapPointX,e.mapPointY,e.componentX,e.componentY,e.scaleX,e.scaleY,t,e.color,e.alpha),new Float32Array(n)};class ar extends Fe{$filterType=4;_$bitmapBuffer;_$bitmapWidth;_$bitmapHeight;_$mapPointX;_$mapPointY;_$componentX;_$componentY;_$scaleX;_$scaleY;_$mode;_$color;_$alpha;constructor(t=null,r=0,n=0,s=0,i=0,a=0,o=0,c=0,u=0,h="wrap",l=0,f=0){super(),this._$bitmapBuffer=null,this._$bitmapWidth=0,this._$bitmapHeight=0,this._$mapPointX=0,this._$mapPointY=0,this._$componentX=0,this._$componentY=0,this._$scaleX=0,this._$scaleY=0,this._$mode="wrap",this._$color=0,this._$alpha=0,this.bitmapBuffer=t,this.bitmapWidth=r,this.bitmapHeight=n,this.mapPointX=s,this.mapPointY=i,this.componentX=a,this.componentY=o,this.scaleX=c,this.scaleY=u,this.mode=h,this.color=l,this.alpha=f}get alpha(){return this._$alpha}set alpha(t){t=F(+t,0,1,0),t!==this._$alpha&&(this._$alpha=t,this.$updated=!0)}get color(){return this._$color}set color(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,0),t!==this._$color&&(this._$color=t,this.$updated=!0)}get componentX(){return this._$componentX}set componentX(t){t!==this._$componentX&&(this._$componentX=t,this.$updated=!0)}get componentY(){return this._$componentY}set componentY(t){t!==this._$componentY&&(this._$componentY=t,this.$updated=!0)}get bitmapBuffer(){return this._$bitmapBuffer}set bitmapBuffer(t){t!==this._$bitmapBuffer&&(this._$bitmapBuffer=t,this.$updated=!0)}get bitmapWidth(){return this._$bitmapWidth}set bitmapWidth(t){t!==this._$bitmapWidth&&(this._$bitmapWidth=t,this.$updated=!0)}get bitmapHeight(){return this._$bitmapHeight}set bitmapHeight(t){t!==this._$bitmapHeight&&(this._$bitmapHeight=t,this.$updated=!0)}get mapPointX(){return this._$mapPointX}set mapPointX(t){t!==this._$mapPointX&&(this._$mapPointX=t,this.$updated=!0)}get mapPointY(){return this._$mapPointY}set mapPointY(t){t!==this._$mapPointY&&(this._$mapPointY=t,this.$updated=!0)}get mode(){return this._$mode}set mode(t){t!==this._$mode&&(this._$mode=t,this.$updated=!0)}get scaleX(){return this._$scaleX}set scaleX(t){t=F(+t,-65535,65535,0),t!==this._$scaleX&&(this._$scaleX=t,this.$updated=!0)}get scaleY(){return this._$scaleY}set scaleY(t){t=F(+t,-65535,65535,0),t!==this._$scaleY&&(this._$scaleY=t,this.$updated=!0)}clone(){return new ar(this._$bitmapBuffer?this._$bitmapBuffer.slice():null,this._$bitmapWidth,this._$bitmapHeight,this._$mapPointX,this._$mapPointX,this._$componentX,this._$componentY,this._$scaleX,this._$scaleY,this._$mode,this._$color,this._$alpha)}toArray(){return To(this)}toNumberArray(){return So(this)}canApplyFilter(){return Bo(this)}}const Io=e=>[e.$filterType,e.distance,e.angle,e.color,e.alpha,e.blurX,e.blurY,e.strength,e.quality,e.inner,e.knockout,e.hideObject],Co=e=>new Float32Array([e.$filterType,e.distance,e.angle,e.color,e.alpha,e.blurX,e.blurY,e.strength,e.quality,+e.inner,+e.knockout,+e.hideObject]),Is=e=>e.alpha>0&&e.strength!==0&&e.blurX>0&&e.blurY>0&&e.quality>0,Fo=(e,t)=>{if(!Is(e)||e.inner)return t;st(e,t);const r=e.angle*cn,n=e.distance,s=Math.cos(r)*n,i=Math.sin(r)*n;return t[0]=Math.min(t[0],s),s>0&&(t[2]+=s),t[1]=Math.min(t[1],i),i>0&&(t[3]+=i),t};class or extends Fe{$filterType=5;_$blurX;_$blurY;_$quality;_$distance;_$angle;_$color;_$alpha;_$strength;_$inner;_$knockout;_$hideObject;constructor(t=4,r=45,n=0,s=1,i=4,a=4,o=1,c=1,u=!1,h=!1,l=!1){super(),this._$blurX=4,this._$blurY=4,this._$quality=1,this._$distance=4,this._$angle=45,this._$color=0,this._$alpha=1,this._$strength=1,this._$inner=!1,this._$knockout=!1,this._$hideObject=!1,this.blurX=i,this.blurY=a,this.quality=c,this.distance=t,this.angle=r,this.color=n,this.alpha=s,this.strength=o,this.inner=u,this.knockout=h,this.hideObject=l}get alpha(){return this._$alpha}set alpha(t){t=F(+t,0,1,0),t!==this._$alpha&&(this._$alpha=t,this.$updated=!0)}get angle(){return this._$angle}set angle(t){t=F(t%360,-360,360,45),t!==this._$angle&&(this._$angle=t,this.$updated=!0)}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get color(){return this._$color}set color(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,0),t!==this._$color&&(this._$color=t,this.$updated=!0)}get distance(){return this._$distance}set distance(t){t=F(+t,-255,255,4),t!==this._$distance&&(this._$distance=t,this.$updated=!0)}get hideObject(){return this._$hideObject}set hideObject(t){t=!!t,t!==this._$hideObject&&(this._$hideObject=t,this.$updated=!0)}get inner(){return this._$inner}set inner(t){t=!!t,t!==this._$inner&&(this._$inner=t,this.$updated=!0)}get knockout(){return this._$knockout}set knockout(t){t=!!t,t!==this._$knockout&&(this._$knockout=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}get strength(){return this._$strength}set strength(t){t=F(t|0,0,255,0),t!==this._$strength&&(this._$strength=t,this.$updated=!0)}clone(){return new or(this._$distance,this._$angle,this._$color,this._$alpha,this._$blurX,this._$blurY,this._$strength,this._$quality,this._$inner,this._$knockout,this._$hideObject)}toArray(){return Io(this)}toNumberArray(){return Co(this)}canApplyFilter(){return Is(this)}getBounds(t){return Fo(this,t)}}const Eo=e=>[e.$filterType,e.color,e.alpha,e.blurX,e.blurY,e.strength,e.quality,e.inner,e.knockout],Po=e=>new Float32Array([e.$filterType,e.color,e.alpha,e.blurX,e.blurY,e.strength,e.quality,+e.inner,+e.knockout]),Cs=e=>e.alpha>0&&e.strength!==0&&e.blurX>0&&e.blurY>0&&e.quality>0,Ro=(e,t)=>!Cs(e)||e.inner?t:st(e,t);class cr extends Fe{$filterType=6;_$blurX;_$blurY;_$quality;_$color;_$alpha;_$strength;_$inner;_$knockout;constructor(t=0,r=1,n=4,s=4,i=1,a=1,o=!1,c=!1){super(),this._$blurX=4,this._$blurY=4,this._$quality=1,this._$color=0,this._$alpha=1,this._$strength=1,this._$inner=!1,this._$knockout=!1,this.blurX=n,this.blurY=s,this.quality=a,this.color=t,this.alpha=r,this.strength=i,this.inner=o,this.knockout=c}get alpha(){return this._$alpha}set alpha(t){t=F(+t,0,1,0),t!==this._$alpha&&(this._$alpha=t,this.$updated=!0)}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get color(){return this._$color}set color(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,4),t!==this._$color&&(this._$color=t,this.$updated=!0)}get inner(){return this._$inner}set inner(t){t=!!t,t!==this._$inner&&(this._$inner=t,this.$updated=!0)}get knockout(){return this._$knockout}set knockout(t){t=!!t,t!==this._$knockout&&(this._$knockout=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}get strength(){return this._$strength}set strength(t){t=F(t|0,0,255,0),t!==this._$strength&&(this._$strength=t,this.$updated=!0)}clone(){return new cr(this._$color,this._$alpha,this._$blurX,this._$blurY,this._$strength,this._$quality,this._$inner,this._$knockout)}toArray(){return Eo(this)}toNumberArray(){return Po(this)}canApplyFilter(){return Cs(this)}getBounds(t){return Ro(this,t)}}const Fs=e=>e.strength>0&&e.distance>0&&e.alphas!==null&&e.ratios!==null&&e.colors!==null&&e.blurX>0&&e.blurY>0&&e.quality>0,Oo=e=>[e.$filterType,e.distance,e.angle,e.colors,e.alphas,e.ratios,e.blurX,e.blurY,e.strength,e.quality,e.type,e.knockout],ko=e=>{const t=e.colors?e.colors:[],r=e.alphas?e.alphas:[],n=e.ratios?e.ratios:[];return new Float32Array([e.$filterType,e.distance,e.angle,t.length,...t,r.length,...r,n.length,...n,e.blurX,e.blurY,e.strength,e.quality,ln(e.type),+e.knockout])},Uo=(e,t)=>{if(!Fs(e)||e.type==="inner")return t;st(e,t);const r=e.angle*cn,n=e.distance,s=Math.abs(Math.cos(r)*n),i=Math.abs(Math.sin(r)*n);return t[0]-=s,t[2]+=s,t[1]-=i,t[3]+=i,t};class lr extends Fe{$filterType=7;_$blurX;_$blurY;_$quality;_$distance;_$angle;_$colors;_$alphas;_$ratios;_$strength;_$type;_$knockout;constructor(t=4,r=45,n=null,s=null,i=null,a=4,o=4,c=1,u=1,h="inner",l=!1){super(),this._$blurX=4,this._$blurY=4,this._$quality=1,this._$distance=4,this._$angle=45,this._$colors=null,this._$alphas=null,this._$ratios=null,this._$strength=1,this._$type="inner",this._$knockout=!1,this.blurX=a,this.blurY=o,this.quality=u,this.distance=t,this.angle=r,this.colors=n,this.alphas=s,this.ratios=i,this.strength=c,this.type=h,this.knockout=l}get alphas(){return this._$alphas}set alphas(t){if(t!==this._$alphas){if(Array.isArray(t))for(let r=0;r<t.length;++r){const n=t[r];t[r]=F(+n,0,1,0)}this._$alphas=t,this.$updated=!0}}get angle(){return this._$angle}set angle(t){t=F(t%360,-360,360,45),t!==this._$angle&&(this._$angle=t,this.$updated=!0)}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get colors(){return this._$colors}set colors(t){if(this._$colors!==t){if(Array.isArray(t))for(let r=0;r<t.length;++r){const n=t[r];t[r]=F(typeof n=="string"?Oe(n):n,0,16777215,0)}this._$colors=t,this.$updated=!0}}get distance(){return this._$distance}set distance(t){t=F(+t,-255,255,4),t!==this._$distance&&(this._$distance=t,this.$updated=!0)}get knockout(){return this._$knockout}set knockout(t){t=!!t,t!==this._$knockout&&(this._$knockout=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}get ratios(){return this._$ratios}set ratios(t){if(this._$ratios!==t){if(Array.isArray(t))for(let r=0;r<t.length;++r){const n=t[r];t[r]=F(+n,0,255,0)}this._$ratios=t,this.$updated=!0}}get strength(){return this._$strength}set strength(t){t=F(t|0,0,255,0),t!==this._$strength&&(this._$strength=t,this.$updated=!0)}get type(){return this._$type}set type(t){t!==this._$type&&(this._$type=t,this.$updated=!0)}clone(){return new lr(this._$distance,this._$angle,this._$colors?this._$colors.slice():null,this._$alphas?this._$alphas.slice():null,this._$ratios?this._$ratios.slice():null,this._$blurX,this._$blurY,this._$strength,this._$quality,this._$type,this._$knockout)}toArray(){return Oo(this)}toNumberArray(){return ko(this)}canApplyFilter(){return Fs(this)}getBounds(t){return Uo(this,t)}}const Go=e=>[e.$filterType,e.distance,e.angle,e.colors,e.alphas,e.ratios,e.blurX,e.blurY,e.strength,e.quality,e.type,e.knockout],Es=e=>e.strength>0&&e.distance>0&&e.alphas!==null&&e.ratios!==null&&e.colors!==null&&e.blurX>0&&e.blurY>0&&e.quality>0,_o=e=>{const t=e.colors?e.colors:[],r=e.alphas?e.alphas:[],n=e.ratios?e.ratios:[];return new Float32Array([e.$filterType,e.distance,e.angle,t.length,...t,r.length,...r,n.length,...n,e.blurX,e.blurY,e.strength,e.quality,ln(e.type),+e.knockout])},Do=(e,t)=>!Es(e)||e.type==="inner"?t:st(e,t);class ur extends Fe{$filterType=8;_$blurX;_$blurY;_$quality;_$distance;_$angle;_$colors;_$alphas;_$ratios;_$strength;_$type;_$knockout;constructor(t=4,r=45,n=null,s=null,i=null,a=4,o=4,c=1,u=1,h="outer",l=!1){super(),this._$blurX=4,this._$blurY=4,this._$quality=1,this._$distance=4,this._$angle=45,this._$colors=null,this._$alphas=null,this._$ratios=null,this._$strength=1,this._$type="outer",this._$knockout=!1,this.blurX=a,this.blurY=o,this.quality=u,this.distance=t,this.angle=r,this.colors=n,this.alphas=s,this.ratios=i,this.strength=c,this.type=h,this.knockout=l}get alphas(){return this._$alphas}set alphas(t){if(t!==this._$alphas){if(Array.isArray(t))for(let r=0;r<t.length;++r){const n=t[r];t[r]=F(+n,0,1,0)}this._$alphas=t,this.$updated=!0}}get angle(){return this._$angle}set angle(t){t=F(t%360,-360,360,45),t!==this._$angle&&(this._$angle=t,this.$updated=!0)}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get colors(){return this._$colors}set colors(t){if(this._$colors!==t){if(Array.isArray(t))for(let r=0;r<t.length;++r){const n=t[r];t[r]=F(typeof n=="string"?Oe(n):n,0,16777215,0)}this._$colors=t,this.$updated=!0}}get distance(){return this._$distance}set distance(t){t=F(+t,-255,255,4),t!==this._$distance&&(this._$distance=t,this.$updated=!0)}get knockout(){return this._$knockout}set knockout(t){t=!!t,t!==this._$knockout&&(this._$knockout=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}get ratios(){return this._$ratios}set ratios(t){if(this._$ratios!==t){if(Array.isArray(t))for(let r=0;r<t.length;++r)t[r]=F(+t[r],0,255,0);this._$ratios=t,this.$updated=!0}}get strength(){return this._$strength}set strength(t){t=F(t|0,0,255,0),t!==this._$strength&&(this._$strength=t,this.$updated=!0)}get type(){return this._$type}set type(t){t!==this._$type&&(this._$type=t,this.$updated=!0)}clone(){return new ur(this._$distance,this._$angle,this._$colors,this._$alphas,this._$ratios,this._$blurX,this._$blurY,this._$strength,this._$quality,this._$type,this._$knockout)}toArray(){return Go(this)}toNumberArray(){return _o(this)}canApplyFilter(){return Es(this)}getBounds(t){return Do(this,t)}}const Lo=e=>{const t=z();for(let r=0;r<e.length;++r){const n=e[r];if(n)switch(n.params[0]===null&&n.params.shift(),n.class){case"BevelFilter":t.push(new rr(...n.params));break;case"BlurFilter":t.push(new nr(...n.params));break;case"ColorMatrixFilter":t.push(new sr(...n.params));break;case"ConvolutionFilter":t.push(new ir(...n.params));break;case"DisplacementMapFilter":t.push(new ar(...n.params));break;case"DropShadowFilter":t.push(new or(...n.params));break;case"GlowFilter":t.push(new cr(...n.params));break;case"GradientBevelFilter":t.push(new lr(...n.params));break;case"GradientGlowFilter":t.push(new ur(...n.params));break}}return t},No=e=>{if(e.$filters)return e.$filters;const t=tr(e);return t&&t.surfaceFilterList?(t.filters||(t.filters=Lo(t.surfaceFilterList)),t.filters):null},Yo=(e,t)=>{e.$filters=t,j(e)},Wo=e=>{if(e.$blendMode)return e.$blendMode;const t=tr(e);return t&&t.blendMode?t.blendMode:"normal"},Vo=(e,t)=>{e.$blendMode!==t&&(e.$blendMode=t,j(e))},Ko=180/Math.PI,Qo=e=>{const t=e.$matrix?e.$matrix.rawData:_(e);return t?Math.atan2(t[1],t[0])*Ko:0},Xo=Math.PI/180,zo=(e,t)=>{if(t=me(t%360,-360,360,0),e.$rotation===t)return;let r=e.$matrix;if(!r){const i=_(e);e.$matrix=r=i?new T(...i):new T}const n=Math.sqrt(r.a*r.a+r.b*r.b),s=Math.sqrt(r.c*r.c+r.d*r.d);if(t===0)r.a=n,r.b=0,r.c=0,r.d=s;else{let i=Math.atan2(r.b,r.a),a=Math.atan2(-r.c,r.d);const o=t*Xo;a=a+o-i,i=o,r.b=n*Math.sin(i),r.b===1||r.b===-1?r.a=0:r.a=n*Math.cos(i),r.c=-s*Math.sin(a),r.c===1||r.c===-1?r.d=0:r.d=s*Math.cos(a)}e.$scaleX=null,e.$scaleY=null,e.$rotation=t,j(e)},Ho=e=>{const t=e.$matrix?e.$matrix.rawData:_(e);if(!t)return 1;const n=(Math.abs(t[0])>=1e-12?Math.sign(t[0]):Math.sign(t[1]))||1,s=Math.hypot(t[0],t[1]);return Math.round(s*n*1e4)/1e4},Ps=(e,t)=>{t=me(t,-Number.MAX_VALUE,Number.MAX_VALUE,1);const r=Math.round(t*1e4)/1e4;if(e.$scaleX===r)return;let n=e.$matrix;if(!n){const s=_(e);e.$matrix=n=s?new T(...s):new T}if(n.b===0||isNaN(n.b))n.a=r;else{const i=Math.atan2(n.b,n.a),a=Math.hypot(n.a,n.b),o=(Math.abs(n.a)>=1e-12?Math.sign(n.a):Math.sign(n.b))||1,h=(a*o>=0?i:i-Math.PI)+(r<0?Math.PI:0),l=Math.abs(r);n.a=l*Math.cos(h),n.b=l*Math.sin(h)}e.$scaleX=r,e.$rotation=null,j(e)},Jo=e=>{const t=e.$matrix?e.$matrix.rawData:_(e);if(!t)return 1;const r=1e-12,n=Math.hypot(t[0],t[1]),s=(Math.abs(t[0])>=r?Math.sign(t[0]):Math.sign(t[1]))||1;return Math.round((t[0]*t[3]-t[1]*t[2])/(n*s)*1e4)/1e4},Rs=(e,t)=>{t=me(t,-Number.MAX_VALUE,Number.MAX_VALUE,1);const r=Math.round(t*1e4)/1e4;if(e.$scaleY===r)return;let n=e.$matrix;if(!n){const s=_(e);e.$matrix=n=s?new T(...s):new T}if(n.c===0||isNaN(n.c))n.d=r;else{const s=Math.max(0,Math.abs(r)),i=1e-12;let a=Math.atan2(n.b,n.a);(n.a<0||Math.abs(n.a)<i&&n.b<0)&&(a-=Math.PI),a<=-Math.PI&&(a+=2*Math.PI),a>Math.PI&&(a-=2*Math.PI);const o=a+(r<0?Math.PI:0);n.c=-s*Math.sin(o),n.d=s*Math.cos(o)}e.$scaleY=r,e.$rotation=null,j(e)},Zo=e=>{const t=e.$matrix?e.$matrix.rawData:_(e);return t?t[4]:0},qo=(e,t)=>{let r=e.$matrix;if(!r){const n=_(e);e.$matrix=r=n?new T(...n):new T}e.$x!==t&&(e.$x=r.tx=t,j(e))},jo=e=>{const t=e.$matrix?e.$matrix.rawData:_(e);return t?t[5]:0},ec=(e,t)=>{let r=e.$matrix;if(!r){const n=_(e);e.$matrix=r=n?new T(...n):new T}e.$y!==t&&(e.$y=r.ty=t,j(e))},he=(e,t,r,n,s)=>{const i=s[0],a=s[1],o=s[2],c=s[3],u=s[4],h=s[5],l=r*i+n*o+u,f=r*i+t*o+u,A=e*i+n*o+u,d=e*i+t*o+u,y=r*a+n*c+h,g=r*a+t*c+h,p=e*a+n*c+h,$=e*a+t*c+h;return re(Math.min(l,f,A,d),Math.min(y,g,p,$),Math.max(l,f,A,d),Math.max(y,g,p,$))},Os=e=>{const t=e.graphics;return re(t.xMin,t.yMin,t.xMax,t.yMax)},wt=(e,t=null)=>{const r=Os(e),n=_(e);if(!n){if(t){const i=he(r[0],r[1],r[2],r[3],t);return k(r),i}return r}const s=he(r[0],r[1],r[2],r[3],t?T.multiply(t,n):n);return k(r),s},ks=e=>re(0,0,e.videoWidth,e.videoHeight),Mt=(e,t=null)=>{const r=ks(e),n=_(e);if(!n){if(t){const i=he(r[0],r[1],r[2],r[3],t);return k(r),i}return r}const s=he(r[0],r[1],r[2],r[3],t?T.multiply(t,n):n);return k(r),s},Us=e=>re(e.xMin,e.yMin,e.xMax,e.yMax),Bt=(e,t=null)=>{const r=Us(e),n=_(e);if(!n){if(t){const i=he(r[0],r[1],r[2],r[3],t);return k(r),i}return r}const s=he(r[0],r[1],r[2],r[3],t?T.multiply(t,n):n);return k(r),s},yt=(e,t=null)=>{const r=e.children;if(!r.length)return re(0,0,0,0);const n=_(e),s=n?t?T.multiply(t,n):n:t,i=Number.MAX_VALUE;let a=i,o=-i,c=i,u=-i;for(let h=0;h<r.length;h++){const l=r[h];if(!l.visible)continue;let f=null;switch(!0){case l.isContainerEnabled:f=yt(l,s);break;case l.isShape:f=wt(l,s);break;case l.isText:f=Bt(l,s);break;case l.isVideo:f=Mt(l,s);break}f&&(a=Math.min(a,f[0]),c=Math.min(c,f[1]),o=Math.max(o,f[2]),u=Math.max(u,f[3]),k(f))}return re(a,c,o,u)},Gs=e=>{switch(!0){case e.isContainerEnabled:return yt(e);case e.isShape:return wt(e);case e.isText:return Bt(e);case e.isVideo:return Mt(e);default:return re(0,0,0,0)}},tc=e=>{const t=Gs(e),r=Math.abs(t[2]-t[0]);switch(k(t),!0){case r===0:case r===1/0:case r===-1/0:return 0;default:return Math.round(r*100)/100}},_s=(e,t=null)=>{const r=e.children;if(!r.length)return re(0,0,0,0);const n=_(e);let s=t;n&&(s=t?T.multiply(t,n):n);const i=Number.MAX_VALUE;let a=i,o=-i,c=i,u=-i;for(let h=0;h<r.length;h++){const l=r[h];if(!l.visible)continue;let f=null;switch(!0){case l.isContainerEnabled:f=_s(l,s);break;case l.isShape:f=wt(l,s);break;case l.isText:f=Bt(l,s);break;case l.isVideo:f=Mt(l,s);break}f&&(a=Math.min(a,f[0]),c=Math.min(c,f[1]),o=Math.max(o,f[2]),u=Math.max(u,f[3]),k(f))}return re(a,c,o,u)},tt=e=>{switch(!0){case e.isContainerEnabled:return _s(e);case e.isShape:return Os(e);case e.isText:return Us(e);case e.isVideo:return ks(e);default:return re(0,0,0,0)}},rc=(e,t)=>{if(t=+t,isNaN(t)||0>t)return;const r=tt(e);let n=Math.abs(r[2]-r[0]);switch(!0){case n===0:case n===1/0:case n===-1/0:return;default:n=Math.round(n*100)/100;break}Ps(e,t/n)},nc=(e,t)=>{const r=e.concatenatedMatrix,n=new ie(t.x*r.a+t.y*r.c+r.tx,t.x*r.b+t.y*r.d+r.ty);return T.release(r.rawData),n},sc=(e,t)=>{const r=e.concatenatedMatrix;r.invert();const n=new ie(t.x*r.a+t.y*r.c+r.tx,t.x*r.b+t.y*r.d+r.ty);return T.release(r.rawData),n},ic=e=>{const t=Gs(e),r=Math.abs(t[3]-t[1]);switch(k(t),!0){case r===0:case r===1/0:case r===-1/0:return 0;default:return Math.round(r*100)/100}},ac=(e,t)=>{if(t=+t,isNaN(t)||0>t)return;const r=tt(e);let n=Math.abs(r[3]-r[1]);switch(!0){case n===0:case n===1/0:case n===-1/0:return;default:n=Math.round(n*100)/100;break}Rs(e,t/n)},oc=e=>{const t=e.parent;t&&t.removeChild(e)},cc=(e,t=null)=>{const r=e.concatenatedMatrix,n=tt(e),s=he(n[0],n[1],n[2],n[3],r.rawData);if(k(n),T.release(r.rawData),!t){const c=new be(s[0],s[1],Math.abs(s[2]-s[0]),Math.abs(s[3]-s[1]));return k(s),c}const i=t.concatenatedMatrix;i.invert();const a=he(s[0],s[1],s[2],s[3],i.rawData);k(s),T.release(i.rawData);const o=new be(a[0],a[1],Math.abs(a[2]-a[0]),Math.abs(a[3]-a[1]));return k(a),o},lc=(e,t)=>{const r=tt(e),n=e.concatenatedMatrix,s=he(r[0],r[1],r[2],r[3],n.rawData);k(r),T.release(n.rawData);const i=tt(t),a=t.concatenatedMatrix,o=he(i[0],i[1],i[2],i[3],a.rawData);k(i),T.release(a.rawData);const c=Math.max(s[0],o[0]),u=Math.max(s[1],o[1]),h=Math.min(s[2],o[2]),l=Math.min(s[3],o[3]);return k(s),k(o),h-c>=0&&l-u>=0};class Xt{_$bitmapData;_$matrix;_$repeat;_$smooth;constructor(t,r=null,n=!0,s=!1){this._$bitmapData=t,this._$matrix=r,this._$repeat=n,this._$smooth=s}clone(){return new Xt(this._$bitmapData.clone(),this._$matrix?this._$matrix.clone():null,this._$repeat,this._$smooth)}toArray(){return z(this._$bitmapData,this._$matrix,this._$repeat,this._$smooth)}}class zt{_$type;_$colors;_$alphas;_$ratios;_$matrix;_$spreadMethod;_$interpolationMethod;_$focalPointRatio;_$colorStops;constructor(t,r,n,s,i=null,a="pad",o="rgb",c=0){this._$type=t,this._$colors=r,this._$alphas=n,this._$ratios=s,this._$matrix=i,this._$spreadMethod=a,this._$interpolationMethod=o,this._$focalPointRatio=c,this._$colorStops=z()}get colorStops(){if(!this._$colorStops.length){const t=Math.min(Math.min(this._$alphas.length,this._$colors.length),this._$ratios.length);for(let r=0;r<t;++r){const n=this._$colors[r],s=typeof n=="string"?Or(n):n;this._$colorStops[r]={ratio:this._$ratios[r]/255,R:s>>>16&255,G:s>>>8&255,B:s&255,A:this._$alphas[r]*255&255}}}return this._$colorStops}toArray(){return z(this._$type,this.colorStops,this._$matrix?this._$matrix.rawData:xt,this._$spreadMethod,this._$interpolationMethod,this._$focalPointRatio)}clone(){return new zt(this._$type,this._$colors.slice(),this._$alphas.slice(),this._$ratios.slice(),this._$matrix?this._$matrix.clone():null,this._$spreadMethod,this._$interpolationMethod,this._$focalPointRatio)}}const uc=(e,t=0,r=0)=>{e.xMin=Math.min(e.xMin,t),e.xMax=Math.max(e.xMax,t),e.yMin=Math.min(e.yMin,r),e.yMax=Math.max(e.yMax,r)},Rn=(e,t=0,r=0,n=0,s=0,i=0,a="none")=>{e.xMin=Math.min(e.xMin,Math.min(t,n)),e.xMax=Math.max(e.xMax,Math.max(t,n)),e.yMin=Math.min(e.yMin,Math.min(r,s)),e.yMax=Math.max(e.yMax,Math.max(r,s));const o=n-t,c=s-r,u=Math.sqrt(o*o+c*c);if(!u)return;const h=o/u,l=c/u,f=-l,A=h,d=i/2,y=Math.min(t+f*d,t-f*d,n+f*d,n-f*d),g=Math.max(t+f*d,t-f*d,n+f*d,n-f*d),p=Math.min(r+A*d,r-A*d,s+A*d,s-A*d),$=Math.max(r+A*d,r-A*d,s+A*d,s-A*d);if(e.xMin=Math.min(e.xMin,y),e.xMax=Math.max(e.xMax,g),e.yMin=Math.min(e.yMin,p),e.yMax=Math.max(e.yMax,$),a==="round"||a==="square"){const w=t+d*-h,I=r+d*-l,P=Math.min(w+d*h+d*f,w-d*h+d*f,w+d*h-d*f,w-d*h-d*f),W=Math.max(w+d*h+d*f,w-d*h+d*f,w+d*h-d*f,w-d*h-d*f),C=Math.min(I+d*l+d*A,I+d*l-d*A,I-d*l-d*A,I-d*l+d*A),R=Math.max(I+d*l+d*A,I+d*l-d*A,I-d*l-d*A,I-d*l+d*A);e.xMin=Math.min(e.xMin,P),e.xMax=Math.max(e.xMax,W),e.yMin=Math.min(e.yMin,C),e.yMax=Math.max(e.yMax,R)}},ot=(e,t,r=0,n=0,s=0,i="none",...a)=>{for(let o=0;o<a.length;){const c=a[o++],u=a[o++];uc(e,c,u),t&&(Rn(e,c,u,r,n,s,i),Rn(e,r,n,c,u,s,i))}},ct=(e,t,r,n,s,...i)=>{e.isConfirmed=!1,t&&n&&n.push(...i),r&&s&&s.push(...i)},hc=(e,t,r,n,s)=>{t=+t||0,r=+r||0,n=+n||0,s=+s||0,n=Math.round(n),s=Math.round(s);const i=n/2,a=s/2,o=t+i,c=r+a,u=t+n,h=r+s,l=4/3*(Math.SQRT2-1),f=l*i,A=l*a;return e.moveTo(o,r).cubicCurveTo(o+f,r,u,c-A,u,c).cubicCurveTo(u,c+A,o+f,h,o,h).cubicCurveTo(o-f,h,t,c+A,t,c).cubicCurveTo(t,c-A,o-f,r,o,r)},fc=(e,t,r,n,s)=>{t=+t||0,r=+r||0,n=+n||0,s=+s||0;const i=Math.round(t+n),a=Math.round(r+s);return e.moveTo(t,r).lineTo(t,a).lineTo(i,a).lineTo(i,r).lineTo(t,r)},dc=(e,t,r,n,s,i,a=NaN)=>{t=+t||0,r=+r||0,n=+n||0,s=+s||0,i=+i||0,a=+a||i,n=Math.round(n),s=Math.round(s),i=Math.round(i),a=Math.round(a);const o=i/2,c=a/2,u=4/3*(Math.SQRT2-1),h=u*o,l=u*c,f=t+o,A=t+n,d=A-o,y=r+c,g=r+s,p=g-c;return e.moveTo(f,r).lineTo(d,r).cubicCurveTo(d+h,r,A,y-l,A,y).lineTo(A,p).cubicCurveTo(A,p+l,d+h,g,d,g).lineTo(f,g).cubicCurveTo(f-h,g,t,p+l,t,p).lineTo(t,y).cubicCurveTo(t,y-l,f-h,r,f,r)},Lt=e=>{if(!e)return[];const t=z();for(let r=0;r<e.length;){const n=e[r++];switch(t.push(n),n){case M.BEGIN_PATH:case M.END_FILL:case M.END_STROKE:case M.CLOSE_PATH:break;case M.MOVE_TO:case M.LINE_TO:t.push(e[r++],e[r++]);break;case M.CURVE_TO:case M.FILL_STYLE:t.push(e[r++],e[r++],e[r++],e[r++]);break;case M.CUBIC:t.push(e[r++],e[r++],e[r++],e[r++],e[r++],e[r++]);break;case M.STROKE_STYLE:{switch(t.push(e[r++]),e[r++]){case"none":t.push(0);break;case"round":t.push(1);break;case"square":t.push(2);break;default:t.push(0);break}switch(e[r++]){case"bevel":t.push(0);break;case"miter":t.push(1);break;case"round":t.push(2);break;default:t.push(2);break}t.push(e[r++],e[r++],e[r++],e[r++],e[r++])}break;case M.ARC:t.push(e[r++],e[r++],e[r++]);break;case M.GRADIENT_FILL:{const s=e[r++],i=e[r++],a=e[r++],o=e[r++],c=e[r++],u=e[r++];t.push(s==="linear"?0:1),t.push(i.length);const h=i.sort((l,f)=>l.ratio-f.ratio);for(let l=0;l<h.length;++l){const f=h[l];t.push(f.ratio,f.R,f.G,f.B,f.A)}switch(t.push(...a),o){case"reflect":t.push(0);break;case"repeat":t.push(1);break;default:t.push(2);break}t.push(c==="linearRGB"?0:1),t.push(u)}break;case M.GRADIENT_STROKE:{switch(t.push(e[r++]),e[r++]){case"none":t.push(0);break;case"round":t.push(1);break;case"square":t.push(2);break;default:t.push(0);break}switch(e[r++]){case"bevel":t.push(0);break;case"miter":t.push(1);break;case"round":t.push(2);break;default:t.push(2);break}t.push(e[r++]);const a=e[r++],o=e[r++],c=e[r++],u=e[r++],h=e[r++],l=e[r++];t.push(a==="linear"?0:1),t.push(o.length);for(let f=0;f<o.length;++f){const A=o[f];t.push(A.ratio,A.R,A.G,A.B,A.A)}switch(t.push(...c),u){case"reflect":t.push(0);break;case"repeat":t.push(1);break;default:t.push(2);break}t.push(h==="linearRGB"?0:1),t.push(l)}break;case M.BITMAP_FILL:{const s=e[r++],i=s.buffer;if(!i){r+=3;break}t.push(s.width,s.height,i.length);for(let u=0;u<i.length;u+=4096)t.push(...i.subarray(u,u+4096));const a=e[r++];a?t.push(...a.rawData):t.push(1,0,0,1,0,0);const o=e[r++];t.push(o?1:0);const c=e[r++];t.push(c?1:0)}break;case M.BITMAP_STROKE:{switch(t.push(e[r++]),e[r++]){case"none":t.push(0);break;case"round":t.push(1);break;case"square":t.push(2);break;default:t.push(0);break}switch(e[r++]){case"bevel":t.push(0);break;case"miter":t.push(1);break;case"round":t.push(2);break;default:t.push(2);break}t.push(e[r++]);const a=e[r++],o=a.buffer;if(!o){r+=3;break}t.push(a.width,a.height,o.length);for(let l=0;l<o.length;l+=4096)t.push(...o.subarray(l,l+4096));const c=e[r++];c?t.push(...c.rawData):t.push(1,0,0,1,0,0);const u=e[r++];t.push(u?1:0);const h=e[r++];t.push(h?1:0)}break}}return t};class M{isConfirmed;xMin;yMin;xMax;yMax;$recodes;_$buffer;_$maxAlpha;_$isBeginning;_$positionX;_$positionY;_$hasFillEnabled;_$fillType;_$fillColor;_$fillGradient;_$fillBitmap;_$fills;_$hasLineEnabled;_$lineType;_$lineColor;_$lineGradient;_$joints;_$miterLimit;_$caps;_$lineWidth;_$lines;constructor(){this.isConfirmed=!1,this.xMin=Number.MAX_VALUE,this.yMin=Number.MAX_VALUE,this.xMax=-Number.MAX_VALUE,this.yMax=-Number.MAX_VALUE,this.$recodes=null,this._$buffer=null,this._$positionX=0,this._$positionY=0,this._$maxAlpha=0,this._$isBeginning=!1,this._$fills=null,this._$hasFillEnabled=!1,this._$fillType=0,this._$fillGradient=null,this._$fillBitmap=null,this._$fillColor=0,this._$caps="none",this._$lineWidth=1,this._$lines=null,this._$hasLineEnabled=!1,this._$lineType=0,this._$lineGradient=null,this._$joints="round",this._$miterLimit=0,this._$lineColor=0}static get MOVE_TO(){return 0}static get CURVE_TO(){return 1}static get LINE_TO(){return 2}static get CUBIC(){return 3}static get ARC(){return 4}static get FILL_STYLE(){return 5}static get STROKE_STYLE(){return 6}static get END_FILL(){return 7}static get END_STROKE(){return 8}static get BEGIN_PATH(){return 9}static get GRADIENT_FILL(){return 10}static get GRADIENT_STROKE(){return 11}static get CLOSE_PATH(){return 12}static get BITMAP_FILL(){return 13}static get BITMAP_STROKE(){return 14}get isDrawable(){if(!this._$isBeginning||!this._$maxAlpha)return!1;const t=Math.abs(this.xMax-this.xMin),r=Math.abs(this.yMax-this.yMin);return t>0&&r>0}beginBitmapFill(t,r=null,n=!0,s=!1){return this._$hasFillEnabled&&this.endFill(),this._$fills||(this._$fills=z()),this._$maxAlpha=1,this._$hasFillEnabled=!0,this._$isBeginning=!0,this._$fills.push(M.BEGIN_PATH),this._$fillType=M.BITMAP_FILL,this._$fillBitmap=new Xt(t,r,n,s),this}beginFill(t=0,r=1){this._$hasFillEnabled&&this.endFill(),this._$fills||(this._$fills=z()),typeof t=="string"&&(t=Or(t)),t=me(t,0,16777215,0),r=me(r,0,1,1),this._$maxAlpha=Math.max(this._$maxAlpha,r),this._$hasFillEnabled=!0,this._$isBeginning=!0,this._$fills.push(M.BEGIN_PATH),this._$fillType=M.FILL_STYLE;const n=t>>>16&255,s=t>>>8&255,i=t&255;return this._$fillColor=n<<24|s<<16|i<<8|r*255,this}beginGradientFill(t,r,n,s,i=null,a="pad",o="rgb",c=0){this._$hasFillEnabled&&this.endFill(),this._$fills||(this._$fills=z());for(let u=0;u<n.length;++u)this._$maxAlpha=Math.max(this._$maxAlpha,n[u]);return this._$hasFillEnabled=!0,this._$isBeginning=!0,this._$fills.push(M.BEGIN_PATH),this._$fillType=M.GRADIENT_FILL,this._$fillGradient=new zt(t,r,n,s,i,a,o,c),this}clear(){return this._$maxAlpha=0,this._$isBeginning=!1,this._$positionX=0,this._$positionY=0,this._$fillType=0,this._$fillGradient=null,this._$fillBitmap=null,this._$fillColor=0,this._$hasFillEnabled=!1,this._$caps="none",this._$lineWidth=1,this._$lineType=0,this._$lineGradient=null,this._$joints="round",this._$miterLimit=0,this._$lineColor=0,this._$hasLineEnabled=!1,this.xMin=Number.MAX_VALUE,this.xMax=-Number.MAX_VALUE,this.yMin=Number.MAX_VALUE,this.yMax=-Number.MAX_VALUE,this.$recodes&&oe(this.$recodes),this._$fills&&oe(this._$fills),this._$lines&&oe(this._$lines),this._$buffer=null,this.$recodes=null,this._$fills=null,this._$lines=null,this}clone(){const t=new M;return t.copyFrom(this),t}copyFrom(t){t._$fillGradient&&(this._$fillGradient=t._$fillGradient.clone()),t._$fillBitmap&&(this._$fillBitmap=t._$fillBitmap.clone()),this._$hasFillEnabled=t._$hasFillEnabled,this._$fillType=t._$fillType,this._$fillColor=t._$fillColor,t._$lineGradient&&(this._$lineGradient=t._$lineGradient.clone()),this._$hasLineEnabled=t._$hasLineEnabled,this._$lineType=t._$lineType,this._$caps=t._$caps,this._$joints=t._$joints,this._$miterLimit=t._$miterLimit,this._$lineWidth=t._$lineWidth,this._$lineColor=t._$lineColor,this.xMin=t.xMin,this.xMax=t.xMax,this.yMin=t.yMin,this.yMax=t.yMax,this._$maxAlpha=t._$maxAlpha,this._$positionX=t._$positionX,this._$positionY=t._$positionY,this._$isBeginning=t._$isBeginning,t._$fills&&(this._$fills=t._$fills.slice(0)),t._$lines&&(this._$lines=t._$lines.slice(0)),t.$recodes&&(this.$recodes=t.$recodes.slice(0)),this._$buffer=null}cubicCurveTo(t,r,n,s,i,a){return i=+i||0,a=+a||0,this._$positionX===i&&this._$positionY===a?this:(t=+t||0,r=+r||0,n=+n||0,s=+s||0,ot(this,this._$hasLineEnabled,this._$positionX,this._$positionY,this._$lineWidth,this._$caps,t,r,n,s,i,a),ct(this,this._$hasFillEnabled,this._$hasLineEnabled,this._$fills,this._$lines,M.CUBIC,t,r,n,s,i,a),this._$positionX=i,this._$positionY=a,this)}curveTo(t,r,n,s){return n=+n||0,s=+s||0,this._$positionX===n&&this._$positionY===s?this:(t=+t||0,r=+r||0,ot(this,this._$hasLineEnabled,this._$positionX,this._$positionY,this._$lineWidth,this._$caps,t,r,n,s),ct(this,this._$hasFillEnabled,this._$hasLineEnabled,this._$fills,this._$lines,M.CURVE_TO,t,r,n,s),this._$positionX=n,this._$positionY=s,this)}drawCircle(t,r,n){return t=+t||0,r=+r||0,n=+n||0,n=Math.round(n),ot(this,this._$hasLineEnabled,this._$positionX,this._$positionY,this._$lineWidth,this._$caps,t-n,r-n,t+n,r+n),ct(this,this._$hasFillEnabled,this._$hasLineEnabled,this._$fills,this._$lines,M.MOVE_TO,t+n,r,M.ARC,t,r,n),this._$positionX=t,this._$positionY=r,this}drawEllipse(t,r,n,s){return hc(this,t,r,n,s)}drawRect(t,r,n,s){return fc(this,t,r,n,s)}drawRoundRect(t,r,n,s,i,a=NaN){return dc(this,t,r,n,s,i,a)}endFill(){if(!this._$hasFillEnabled||!this._$fills||8>this._$fills.length)return this;switch(this.$recodes||(this.$recodes=z()),(this._$fills[2]!==this._$fills[this._$fills.length-2]||this._$fills[3]!==this._$fills[this._$fills.length-1])&&this._$fills.push(M.LINE_TO,this._$fills[2],this._$fills[3]),this.$recodes.push(...this._$fills),oe(this._$fills),this._$fills=null,this._$fillType){case M.FILL_STYLE:this.$recodes.push(this._$fillType,this._$fillColor>>>24&255,this._$fillColor>>>16&255,this._$fillColor>>>8&255,this._$fillColor&255,M.END_FILL);break;case M.GRADIENT_FILL:this._$fillGradient&&this.$recodes.push(this._$fillType,...this._$fillGradient.toArray());break;case M.BITMAP_FILL:this._$fillBitmap&&this.$recodes.push(this._$fillType,...this._$fillBitmap.toArray());break}return this._$fillType=0,this._$fillColor=0,this._$fillGradient=null,this._$fillBitmap=null,this._$hasFillEnabled=!1,this}endLine(){if(!this._$hasLineEnabled||!this._$lines)return this;switch(this.$recodes||(this.$recodes=z()),this.$recodes.push(...this._$lines),oe(this._$lines),this._$lines=null,this._$lineType){case M.STROKE_STYLE:this.$recodes.push(this._$lineType,this._$lineWidth,this._$caps,this._$joints,this._$miterLimit,this._$lineColor>>>24&255,this._$lineColor>>>16&255,this._$lineColor>>>8&255,this._$lineColor&255,M.END_STROKE);break;case M.GRADIENT_STROKE:this._$lineGradient&&this.$recodes.push(this._$lineType,this._$lineWidth,this._$caps,this._$joints,this._$miterLimit,...this._$lineGradient.toArray());break;case M.BITMAP_STROKE:this._$fillBitmap&&this.$recodes.push(this._$lineType,this._$lineWidth,this._$caps,this._$joints,this._$miterLimit,...this._$fillBitmap.toArray());break}return this._$lineType=0,this._$lineWidth=0,this._$lineGradient=null,this._$lineColor=0,this._$caps="none",this._$joints="round",this._$miterLimit=0,this._$hasLineEnabled=!1,this}lineBitmapStyle(t,r=null,n=!0,s=!1){return this._$hasLineEnabled?(this._$lines||(this._$lines=z()),this._$maxAlpha=1,this._$hasLineEnabled=!0,this._$isBeginning=!0,this._$lines.push(M.BEGIN_PATH),this._$lineType=M.BITMAP_STROKE,this._$fillBitmap=new Xt(t,r,n,s),this):this}lineGradientStyle(t,r,n,s,i=null,a="pad",o="rgb",c=0){if(!this._$hasLineEnabled)return this;this._$lines||(this._$lines=z());for(let u=0;u<n.length;++u)this._$maxAlpha=Math.max(this._$maxAlpha,n[u]);return this._$lines.push(M.BEGIN_PATH),this._$lineType=M.GRADIENT_STROKE,this._$lineGradient=new zt(t,r,n,s,i,a,o,c),this}lineStyle(t=1,r=0,n=1,s="round",i="round",a=3){this._$hasLineEnabled&&this.endLine(),this._$lines||(this._$lines=z()),this._$maxAlpha=Math.max(this._$maxAlpha,n),this._$hasLineEnabled=!0,this._$isBeginning=!0,this._$positionX||this._$positionY?this._$lines.push(M.BEGIN_PATH,M.MOVE_TO,this._$positionX,this._$positionY):this._$lines.push(M.BEGIN_PATH),this._$lineType=M.STROKE_STYLE,typeof r=="string"&&(r=Or(r)),r=me(r,0,16777215,0),n=me(n,0,1,1);const o=r>>>16&255,c=r>>>8&255,u=r&255;return this._$lineColor=o<<24|c<<16|u<<8|n*255,this._$lineWidth=t,this._$caps=`${s}`,this._$joints=`${i}`,this._$joints==="miter"&&(this._$miterLimit=a),this}lineTo(t,r){return t=+t||0,r=+r||0,this._$positionX===t&&this._$positionY===r?this:(ot(this,this._$hasLineEnabled,this._$positionX,this._$positionY,this._$lineWidth,this._$caps,t,r),ct(this,this._$hasFillEnabled,this._$hasLineEnabled,this._$fills,this._$lines,M.LINE_TO,t,r),this._$positionX=t,this._$positionY=r,this)}moveTo(t,r){t=+t||0,r=+r||0,this._$positionX=t,this._$positionY=r,ot(this,this._$hasLineEnabled,this._$positionX,this._$positionY,this._$lineWidth,this._$caps,t,r);let n=!1;return this._$hasFillEnabled&&this._$fills&&this._$fills[this._$fills.length-3]===M.MOVE_TO&&(n=!0,this._$fills[this._$fills.length-2]=t,this._$fills[this._$fills.length-1]=r),this._$hasLineEnabled&&this._$lines&&this._$lines[this._$lines.length-3]===M.MOVE_TO&&(n=!0,this._$lines[this._$lines.length-2]=t,this._$lines[this._$lines.length-1]=r),n||ct(this,this._$hasFillEnabled,this._$hasLineEnabled,this._$fills,this._$lines,M.MOVE_TO,t,r),this}get buffer(){if(this.isConfirmed&&this._$buffer)return this._$buffer;this._$hasLineEnabled&&this.endLine(),this._$hasFillEnabled&&this.endFill();const t=Lt(this.$recodes);return this._$buffer=new Float32Array(t),oe(t),this.isConfirmed=!0,this._$buffer}set buffer(t){this._$buffer=t,this.isConfirmed=!0,this._$isBeginning=!0,this._$maxAlpha=1}}const Ac=(e,t,r)=>{for(let n=0;n<t.length;)switch(t[n++]){case M.BEGIN_PATH:e.beginPath();break;case M.MOVE_TO:e.moveTo(t[n++],t[n++]);break;case M.LINE_TO:e.lineTo(t[n++],t[n++]);break;case M.CURVE_TO:e.quadraticCurveTo(t[n++],t[n++],t[n++],t[n++]);break;case M.FILL_STYLE:n+=4;continue;case M.END_FILL:if(e.isPointInPath(r.x,r.y))return!0;break;case M.STROKE_STYLE:n+=8;continue;case M.END_STROKE:break;case M.CLOSE_PATH:e.closePath();break;case M.CUBIC:e.bezierCurveTo(t[n++],t[n++],t[n++],t[n++],t[n++],t[n++]);break;case M.ARC:e.arc(t[n++],t[n++],t[n++],0,2*Math.PI);break;case M.GRADIENT_FILL:if(e.isPointInPath(r.x,r.y))return!0;n+=6;continue;case M.GRADIENT_STROKE:n+=12;continue;case M.BITMAP_FILL:if(e.isPointInPath(r.x,r.y))return!0;n+=6;continue;case M.BITMAP_STROKE:n+=9;continue}return!1},Nt=(e,t,r,n)=>{const s=e.graphics,i=s.xMax-s.xMin,a=s.yMax-s.yMin;if(i<=0||a<=0)return!1;const o=_(e),c=o?T.multiply(r,o):r;t.beginPath(),t.setTransform(c[0],c[1],c[2],c[3],c[4],c[5]);let u=!1;return s.buffer.length?u=Ac(t,s.buffer,n):(t.moveTo(0,0),t.lineTo(i,0),t.lineTo(i,a),t.lineTo(0,a),t.lineTo(0,0),u=t.isPointInPath(n.x,n.y)),c!==r&&T.release(c),u},Yt=(e,t,r,n)=>{const s=Math.ceil(Math.abs(e.xMax-e.xMin)),i=Math.ceil(Math.abs(e.yMax-e.yMin));if(s<=0||i<=0)return!1;const a=_(e),o=a?T.multiply(r,a):r;return t.setTransform(o[0],o[1],o[2],o[3],o[4],o[5]),t.beginPath(),t.moveTo(0,0),t.lineTo(s,0),t.lineTo(s,i),t.lineTo(0,i),t.lineTo(0,0),o!==r&&T.release(o),t.isPointInPath(n.x,n.y)},Wt=(e,t,r,n)=>{const s=e.videoWidth,i=e.videoHeight;if(s<=0||i<=0)return!1;const a=_(e),o=a?T.multiply(r,a):r;return t.beginPath(),t.setTransform(o[0],o[1],o[2],o[3],o[4],o[5]),t.beginPath(),t.moveTo(0,0),t.lineTo(s,0),t.lineTo(s,i),t.lineTo(0,i),t.lineTo(0,0),o!==r&&T.release(o),t.isPointInPath(n.x,n.y)},He=(e,t,r,n,s=!0)=>{const i=e.children;if(!i.length)return!1;const a=_(e),o=a?T.multiply(r,a):r,c=z(),u=z(),h=so();let l=0,f=0;for(let g=0;g<i.length;++g){const p=i[g];if(p&&!p.isMask){if(p.clipDepth){f=c.length,l=p.clipDepth,c.push(p);continue}p.visible&&(l&&p.placeId>l&&(f=0,l=0),f&&h.set(p.instanceId,f),u.push(p))}}const A=e.mouseChildren&&s;if(e.isSprite&&e.hitArea){const g=He(e.hitArea,t,o,n,A);return g&&A&&e.mouseEnabled&&(e.buttonMode&&e.useHandCursor&&(n.pointer="pointer"),n.hit||(n.hit=e)),g}let d=!1;const y=e.mask;if(y){let g=!1;switch(!0){case y.isContainerEnabled:g=He(y,t,o,n,A);break;case y.isShape:g=Nt(y,t,o,n);break;case y.isText:g=Yt(y,t,o,n);break;case y.isVideo:g=Wt(y,t,o,n);break}if(!g)return!1}for(;u.length;){const g=u.pop();if(!g||g.isMask)continue;if(h.has(g.instanceId)){const $=h.get(g.instanceId);if(!$)continue;const w=c[$];if(!w)continue;let I=!1;switch(!0){case w.isContainerEnabled:I=He(w,t,o,n,A);break;case w.isShape:I=Nt(w,t,o,n);break;case w.isText:I=Yt(w,t,o,n);break;case w.isVideo:I=Wt(w,t,o,n);break}if(!I)continue}let p=!1;switch(!0){case g.isContainerEnabled:p=He(g,t,o,n,A);break;case g.isShape:p=Nt(g,t,o,n);break;case g.isText:p=Yt(g,t,o,n);break;case g.isVideo:p=Wt(g,t,o,n);break}if(p){if(d=!0,!A)break;if(g.isInteractive&&g.mouseEnabled){if(n.pointer==="auto")switch(!0){case g.isText:g.type==="input"&&(n.pointer="text");break;case g.isSprite:g.buttonMode&&g.useHandCursor&&(n.pointer="pointer");break;default:n.pointer="pointer";break}n.hit||(n.hit=g);break}}}return oe(c),oe(u),io(h),o!==r&&T.release(o),d},Ge={x:0,y:0,pointer:"",hit:null},pc=(e,t,r,n=!1)=>{if(n){const h=e.parent,l=h?h.concatenatedMatrix.rawData:xt;switch(Ie.setTransform(1,0,0,1,0,0),Ie.beginPath(),Ge.x=t,Ge.y=r,Ge.hit=null,!0){case e.isContainerEnabled:return He(e,Ie,l,Ge);case e.isShape:return Nt(e,Ie,l,Ge);case e.isText:return Yt(e,Ie,l,Ge);case e.isVideo:return Wt(e,Ie,l,Ge);default:return!1}}const s=tt(e),i=_(e),a=he(s[0],s[1],s[2],s[3],i||xt);k(s);const o=new be(a[0],a[1],Math.abs(a[2]-a[0]),Math.abs(a[3]-a[1]));k(a);const c=e.parent,u=c?c.globalToLocal(new ie(t,r)):new ie(t,r);return o.containsPoint(u)},mc=e=>{const t=_(e);return t?new T(t[0],t[1],t[2],t[3],t[4],t[5]):new T},gc=e=>{const t=Ve(e);return t?new U(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]):new U};class hr extends nt{instanceId;dictionaryId;isSprite;isInteractive;isContainerEnabled;isTimelineEnabled;isShape;isVideo;isText;placeId;placeObject;characterId;clipDepth;name;startFrame;endFrame;changed;$added;$addedToStage;uniqueKey;$matrix;$colorTransform;$filters;$blendMode;$scaleX;$scaleY;$rotation;$x;$y;$alpha;$cache;_$scale9Grid;_$visible;_$variables;isMask;parent;constructor(){super(),this.instanceId=ys(),this.dictionaryId=-1,this.uniqueKey="",this.isSprite=!1,this.isContainerEnabled=!1,this.isTimelineEnabled=!1,this.isShape=!1,this.isVideo=!1,this.isText=!1,this.isInteractive=!1,this.placeId=-1,this.placeObject=null,this.characterId=-1,this.clipDepth=0,this.name="",this.startFrame=1,this.endFrame=0,this.parent=null,this.isMask=!1,this.changed=!0,this.$added=!1,this.$addedToStage=!1,this.$matrix=null,this.$colorTransform=null,this.$filters=null,this.$blendMode=null,this._$visible=!0,this._$scale9Grid=null,this._$variables=null,this.$x=null,this.$y=null,this.$alpha=null,this.$scaleX=null,this.$scaleY=null,this.$rotation=null,this.$cache=null}get concatenatedMatrix(){return uo(this)}get alpha(){return ho(this)}set alpha(t){fo(this,t)}get blendMode(){return Wo(this)}set blendMode(t){Vo(this,t)}get filters(){return No(this)}set filters(t){Yo(this,t)}get dropTarget(){return lo()}get height(){return ic(this)}set height(t){ac(this,t)}get loaderInfo(){return Dt.has(this)?Dt.get(this):null}get colorTransform(){return gc(this)}set colorTransform(t){this.$colorTransform=t}get matrix(){return mc(this)}set matrix(t){this.$matrix=t}get mouseX(){return this.globalToLocal(bt).x}get mouseY(){return this.globalToLocal(bt).y}get root(){return we.has(this)?we.get(this):null}get rotation(){return this.$rotation===null?Qo(this):this.$rotation}set rotation(t){zo(this,t)}get scale9Grid(){return this._$scale9Grid}set scale9Grid(t){this._$scale9Grid!==t&&(this._$scale9Grid=t,j(this))}get scaleX(){return this.$scaleX===null?Ho(this):this.$scaleX}set scaleX(t){Ps(this,t)}get scaleY(){return this.$scaleY===null?Jo(this):this.$scaleY}set scaleY(t){Rs(this,t)}get visible(){return this._$visible}set visible(t){t=!!t,this._$visible!==t&&(this._$visible=t,j(this))}get width(){return tc(this)}set width(t){rc(this,t)}get x(){return this.$x===null?Zo(this):this.$x}set x(t){qo(this,t)}get y(){return this.$y===null?jo(this):this.$y}set y(t){ec(this,t)}getBounds(t=null){return cc(this,t)}globalToLocal(t){return sc(this,t)}hitTestObject(t){return lc(this,t)}hitTestPoint(t,r,n=!1){return pc(this,t,r,n)}localToGlobal(t){return nc(this,t)}getLocalVariable(t){if(!this._$variables)return null;if(this._$variables.has(t))return this._$variables.get(t)}setLocalVariable(t,r){this._$variables||(this._$variables=new Map),this._$variables.set(t,r)}hasLocalVariable(t){return this._$variables?this._$variables.has(t):!1}deleteLocalVariable(t){this._$variables&&this._$variables.has(t)&&(this._$variables.delete(t),this._$variables.size||(this._$variables=null))}getGlobalVariable(t){return Ue.has(t)?Ue.get(t):null}setGlobalVariable(t,r){Ue.set(t,r)}hasGlobalVariable(t){return Ue.has(t)}deleteGlobalVariable(t){Ue.has(t)&&Ue.delete(t)}clearGlobalVariable(){return Ue.clear()}remove(){oc(this)}$syncLoaderInfo(t){Dt.set(this,t)}}const Ds=e=>{const t=e.children;for(let r=0;r<t.length;++r){const n=t[r];n&&(we.set(n,e.root),ge.add(n.instanceId),n.isContainerEnabled&&Ds(n))}},Ls=e=>{e.$addedToStage||!ge.has(e.instanceId)||(e.$addedToStage=!0,e.willTrigger(x.ADDED_TO_STAGE)&&e.dispatchEvent(new x(x.ADDED_TO_STAGE)))},Ns=e=>{const t=e.children;for(let r=0;r<t.length;++r){const n=t[r];n&&(Ls(n),n.isContainerEnabled&&Ns(n))}},bc=e=>{e.$added||(e.$added=!0,e.willTrigger(x.ADDED)&&e.dispatchEvent(new x(x.ADDED,!0)))},On=(e,t,r=-1)=>{const n=t.parent;n&&n.removeChild(t);const s=e.children;return 0>r?s.push(t):s.splice(r,0,t),e.$container=null,t.parent=e,ge.has(e.instanceId)&&(we.set(t,e.root),ge.add(t.instanceId),t.isContainerEnabled&&Ds(t)),bc(t),ge.has(e.instanceId)&&(Ls(t),t.isContainerEnabled&&Ns(t)),j(t),t},Ys=e=>{const t=e.children;for(let r=0;r<t.length;++r){const n=t[r];n&&(we.delete(n),ge.delete(n.instanceId),n.isVideo&&n.pause(),n.isContainerEnabled&&Ys(n))}},xc=e=>{e.$added&&(e.$added=!1,e.willTrigger(x.REMOVED)&&e.dispatchEvent(new x(x.REMOVED,!0)))},Ws=e=>{!e.$addedToStage||!ge.has(e.instanceId)||(e.$addedToStage=!1,e.willTrigger(x.REMOVED_FROM_STAGE)&&e.dispatchEvent(new x(x.REMOVED_FROM_STAGE)),e.uniqueKey&&O.has(e.uniqueKey)&&O.removeTimer(e.uniqueKey))},un=e=>{const t=e.children;for(let r=0;r<t.length;++r){const n=t[r];n&&(Ws(n),n.isContainerEnabled&&un(n))}},hn=(e,t)=>{const r=t.parent;if(r&&r.instanceId!==e.instanceId)return;const n=e.children,s=n.indexOf(t);s>-1&&n.splice(s,1),e.$container=null,t.hasEventListener(x.ENTER_FRAME)&&t.removeAllEventListener(x.ENTER_FRAME),t.hasEventListener(V.KEY_DOWN)&&t.removeAllEventListener(V.KEY_DOWN),t.hasEventListener(V.KEY_UP)&&t.removeAllEventListener(V.KEY_UP),xc(t),ge.has(e.instanceId)&&(Ws(t),t.isContainerEnabled&&un(t)),ge.has(e.instanceId)&&(we.delete(t),ge.delete(t.instanceId),t.isVideo&&t.pause(),t.isContainerEnabled&&Ys(t)),t.parent=null,j(e)},Vs=(e,t)=>{const r=e.children;return t in r?r[t]:null},yc=(e,t)=>{const r=Vs(e,t);r&&hn(e,r)},$c=(e,t)=>{if(e.instanceId===t.instanceId)return!0;const r=e.children;for(let n=0;n<r.length;++n){const s=r[n];if(s){if(s.instanceId===t.instanceId)return!0;if(s.isContainerEnabled&&s.contains(t))return!0}}return!1},vc=(e,t)=>{if(!t)return null;const r=e.children;for(let n=0;n<r.length;++n){const s=r[n];if(!(!s.name||s.name!==t))return s}return null},wc=(e,t)=>{const r=e.children.slice();if(r.length)for(let n=0;n<t.length;n++){const s=t[n],i=r[s];i&&hn(e,i)}},Mc=(e,t,r)=>{const n=e.getChildIndex(t);if(n===-1||n===r)return;const s=e.children;s.splice(n,1),s.splice(r,0,t),j(e)},Bc=(e,t,r)=>{const n=e.getChildIndex(t),s=e.getChildIndex(r);if(n===-1||s===-1)return;const i=e.children;i[n]=r,i[s]=t,j(e)},Tc=(e,t,r)=>{const n=e.children,s=n[t],i=n[r];!s||!i||(n[t]=i,n[r]=s,j(e))};class fn extends hr{mouseEnabled;isInteractive;constructor(){super(),this.isInteractive=!0,this.mouseEnabled=!0}}class dn extends fn{_$children;_$mask;mouseChildren;$container;isContainerEnabled;constructor(){super(),this.isContainerEnabled=!0,this.mouseChildren=!0,this._$mask=null,this._$children=z(),this.$container=null}get children(){return this._$children}get numChildren(){return this.children.length}get mask(){return this._$mask}set mask(t){t!==this._$mask&&(this._$mask&&(this._$mask.isMask=!1,this._$mask=null),t&&(t.isMask=!0,this._$mask=t),j(this))}addChild(t){return On(this,t)}addChildAt(t,r){return On(this,t,r)}contains(t){return $c(this,t)}getChildAt(t){return Vs(this,t)}getChildByName(t){return vc(this,t)}getChildIndex(t){return this.children.indexOf(t)}removeChild(t){hn(this,t)}removeChildAt(t){yc(this,t)}removeChildren(...t){wc(this,t)}setChildIndex(t,r){Mc(this,t,r)}swapChildren(t,r){Bc(this,t,r)}swapChildrenAt(t,r){Tc(this,t,r)}}class Ks extends nt{name;frame;constructor(t,r){super(),this.name=`${t}`,this.frame=r|0}}class Sc extends nt{id;content;data;url;format;constructor(){super(),this.id=ys(),this.url="",this.content=null,this.data=null,this.format="json"}}const Ic=(e,t=!1,r=null)=>{const n=e.parent?e.parent.globalToLocal(bt):e.globalToLocal(bt);e.$lockCenter=t,e.$offsetX=e.x-n.x,e.$offsetY=e.y-n.y,e.$boundedRect=r,Bs(e)},Cc=e=>{e.$lockCenter=!1,e.$offsetX=0,e.$offsetY=0,e.$boundedRect=null,Bs(null)};class An extends dn{buttonMode;useHandCursor;isSprite;hitArea;_$soundTransform;$offsetX=0;$offsetY=0;$lockCenter=!1;$boundedRect=null;constructor(){super(),this.isSprite=!0,this.buttonMode=!1,this.useHandCursor=!0,this.hitArea=null,this.$offsetX=0,this.$offsetY=0,this.$lockCenter=!1,this.$boundedRect=null,this._$soundTransform=null}get soundTransform(){return this._$soundTransform}set soundTransform(t){this._$soundTransform=t}startDrag(t=!1,r=null){Ic(this,t,r)}stopDrag(){Cc(this)}}const Qs=e=>{e.isBitmap=!1,e.$bitmapBuffer=null,e.graphics.clear(),e.uniqueKey!==""&&O.has(e.uniqueKey)&&(O.removeById(e.uniqueKey),O.$removeIds.push(+e.uniqueKey)),j(e)},Xs=(e,t,r,n)=>{Qs(e),e.isBitmap=!0,e.$bitmapBuffer=n,e.graphics.xMin=0,e.graphics.yMin=0,e.graphics.xMax=t,e.graphics.yMax=r},Fc=(e,t)=>{const r=new Image;r.crossOrigin="anonymous",r.addEventListener("load",()=>{const n=r.width,s=r.height,i=O.getCanvas();i.width=n,i.height=s;const a=i.getContext("2d",{willReadFrequently:!0});a.drawImage(r,0,0,n,s),Xs(e,n,s,new Uint8Array(a.getImageData(0,0,n,s).data)),O.destroy(a),e.hasEventListener(x.COMPLETE)&&e.dispatchEvent(new x(x.COMPLETE))}),r.src=t},Ec=(e,t)=>{const r=e.graphics,n=Math.ceil(Math.abs(t.bounds.xMax-t.bounds.xMin)),s=Math.ceil(Math.abs(t.bounds.yMax-t.bounds.yMin));switch(!0){case t.bitmapId>0:{const a=e.loaderInfo.data?.characters[t.bitmapId];if(!a)break;e.isBitmap=!0,a.imageBuffer||(a.imageBuffer=new Uint8Array(a.buffer),a.buffer=null);const o=Math.ceil(Math.abs(a.bounds.xMax-a.bounds.xMin)),c=Math.ceil(Math.abs(a.bounds.yMax-a.bounds.yMin));if(t.grid){if(t.recodes){const u=t.recodes.slice(0);u.splice(-6,6);const h=new _e(o,c);h.buffer=a.imageBuffer,u.push(M.BITMAP_FILL,h,null,!0,!1,9);const l=Lt(u);r.buffer=new Float32Array(l),oe(u),oe(l)}}else if(n===o&&s===c)e.setBitmapBuffer(Math.ceil(Math.abs(a.bounds.xMax-a.bounds.xMin)),Math.ceil(Math.abs(a.bounds.yMax-a.bounds.yMin)),a.imageBuffer);else{const u=new _e(o,c);if(u.buffer=a.imageBuffer,t.recodes)if(t.recodes[t.recodes.length-10]===M.BITMAP_STROKE){const l=t.recodes.slice(0);l.splice(-5,5),l.push(u,null,!0,!1);const f=Lt(l);r.buffer=new Float32Array(f),oe(l),oe(f)}else r.beginBitmapFill(u).drawRect(0,0,n,s)}}break;case t.inBitmap:{e.isBitmap=!0;const i=t.recodes,a=i[i.length-4];if(n===a.width&&s===a.height)e.setBitmapBuffer(a.width,a.height,a.buffer);else{const o=new _e(a.width,a.height);o.buffer=a.buffer,r.beginBitmapFill(o).drawRect(0,0,n,s)}}break;case"buffer"in t:t.imageBuffer||(t.imageBuffer=new Uint8Array(t.buffer),t.buffer=null),e.setBitmapBuffer(Math.ceil(Math.abs(r.xMax-r.xMin)),Math.ceil(Math.abs(r.yMax-r.yMin)),t.imageBuffer);break;default:t.recodes&&(t.recodeBuffer=new Float32Array(Lt(t.recodes)),oe(t.recodes),t.recodes=null),t.recodeBuffer&&(r.buffer=t.recodeBuffer);break}r.xMin=t.bounds.xMin,r.xMax=t.bounds.xMax,r.yMin=t.bounds.yMin,r.yMax=t.bounds.yMax,t.grid&&(e.scale9Grid=new be(t.grid.x,t.grid.y,t.grid.w,t.grid.h))},Pc=(e,t)=>new Promise(r=>{const n=()=>{e.removeEventListener(x.COMPLETE,n),r()};e.addEventListener(x.COMPLETE,n),e.src=t});class $t extends hr{_$graphics;_$src;isShape;cacheKey;cacheParams;isBitmap;$bitmapBuffer;constructor(){super(),this.isShape=!0,this.cacheKey=0,this.cacheParams=z(0,0,0),this._$graphics=null,this._$src="",this.$bitmapBuffer=null,this.isBitmap=!1}static get namespace(){return"next2d.display.Shape"}get namespace(){return"next2d.display.Shape"}get graphics(){return this._$graphics||(this._$graphics=new M,co.set(this._$graphics,this)),this._$graphics}get src(){return this._$src}set src(t){this._$src!==t&&(this._$src=t,Fc(this,t))}load(t){return Pc(this,t)}get bitmapData(){const t=new _e(this.width,this.height);return this.$bitmapBuffer&&(t.buffer=this.$bitmapBuffer),t}clearBitmapBuffer(){Qs(this)}setBitmapBuffer(t,r,n){Xs(this,t,r,n)}$sync(t,r=null){r&&super.$syncLoaderInfo(r),Ec(this,t)}}let zs=null;const kn=e=>{zs=e},ke=()=>zs,de=document.createElement("textarea");de.tabIndex=-1;let Me="";Me+="position: fixed;";Me+="top: 0;";Me+="left: 0;";Me+="font-size: 16px;";Me+="border: 0;";Me+="resize: none;";Me+="opacity: 0;";Me+="z-index: -1;";Me+="pointer-events: none;";de.setAttribute("style",Me);const _r=document.createElement("canvas");_r.width=_r.height=1;const De=_r.getContext("2d");let Hs=0;const Et=()=>Hs,dt=e=>{Hs=e},Rc=e=>De?(De.fillStyle=e,+`0x${De.fillStyle.slice(1)}`):0,et=e=>isNaN(+e)?Rc(`${e}`):+e,Oc=(e,t=1)=>({R:(e&16711680)>>16,G:(e&65280)>>8,B:e&255,A:t*255}),pt=(e,t,r,n=null)=>{const s=+e;return isNaN(s)&&n!==null?n:Math.min(Math.max(t,isNaN(s)?0:s),r)};let Js;const Ht=()=>Js,Zs=e=>{Js=e},Je={x:0,y:0};class ue{align;bold;color;font;italic;leading;leftMargin;letterSpacing;rightMargin;size;underline;constructor(t=null,r=null,n=null,s=null,i=null,a=null,o=null,c=null,u=null,h=null,l=null){this.font=t,this.size=r,this.color=n,this.bold=s,this.italic=i,this.underline=a,this.align=o,this.leftMargin=c,this.rightMargin=u,this.leading=h,this.letterSpacing=l}clone(){return new ue(this.font,this.size,this.color,this.bold,this.italic,this.underline,this.align,this.leftMargin,this.rightMargin,this.leading,this.letterSpacing)}toObject(){return{font:this.font,size:this.size,color:et(this.color),bold:this.bold,italic:this.italic,underline:this.underline,align:this.align,leftMargin:this.leftMargin,rightMargin:this.rightMargin,leading:this.leading,letterSpacing:this.letterSpacing}}}const kc=e=>{e.align="left",e.bold=!1,e.color=0,e.font="Times New Roman",e.italic=!1,e.leading=0,e.leftMargin=0,e.letterSpacing=0,e.rightMargin=0,e.size=12,e.underline=!1},Uc=e=>{let t="";if(e.font&&(t+=`font-family: ${e.font};`),e.size&&(t+=`font-size: ${e.size}px;`),e.color){const r=Oc(et(e.color)),n=r.R.toString(16).padStart(2,"0"),s=r.G.toString(16).padStart(2,"0"),i=r.B.toString(16).padStart(2,"0");t+=`color: #${n}${s}${i};`}return e.bold&&(t+="font-weight: bold;"),e.italic&&(t+="font-style: italic;"),e.underline&&(t+="text-decoration: underline;"),e.align&&(t+=`text-align: ${e.align};`),e.leftMargin&&(t+=`margin-left: ${e.leftMargin}px;`),e.rightMargin&&(t+=`margin-right: ${e.rightMargin}px;`),e.leading&&(t+=`margin-bottom: ${e.leading}px;`),e.letterSpacing&&(t+=`letter-spacing: ${e.letterSpacing}px;`),t};class Gc{_$textWidth;_$textHeight;heightTable;ascentTable;widthTable;textTable;lineTable;constructor(){this._$textWidth=-1,this._$textHeight=-1,this.widthTable=[],this.heightTable=[],this.ascentTable=[],this.textTable=[],this.lineTable=[]}get textWidth(){if(this._$textWidth!==-1)return this._$textWidth;this._$textWidth=0;for(let t=0;t<this.widthTable.length;++t)this._$textWidth=Math.max(this._$textWidth,this.widthTable[t]);return this._$textWidth}get textHeight(){if(this._$textHeight!==-1)return this._$textHeight;this._$textHeight=0;for(let t=0;t<this.heightTable.length;++t)this._$textHeight+=this.heightTable[t];return this._$textHeight}getLineWidth(t){return t in this.widthTable?this.widthTable[t]:0}getLineHeight(t){return t in this.heightTable?this.heightTable[t]:0}clear(){this._$textWidth=-1,this._$textHeight=-1,this.widthTable.length=0,this.heightTable.length=0,this.ascentTable.length=0,this.textTable.length=0,this.lineTable.length=0}}var Ir;const _c=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Un=(Ir=String.fromCodePoint)!==null&&Ir!==void 0?Ir:(e=>{let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t});function Dc(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=_c.get(e))!==null&&t!==void 0?t:e}function qs(e){const t=typeof atob=="function"?atob(e):typeof Buffer.from=="function"?Buffer.from(e,"base64").toString("binary"):new Buffer(e,"base64").toString("binary"),r=t.length&-2,n=new Uint16Array(r/2);for(let s=0,i=0;s<r;s+=2){const a=t.charCodeAt(s),o=t.charCodeAt(s+1);n[i++]=a|o<<8}return n}const Lc=qs("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg"),Nc=qs("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg");var le;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.FLAG13=8192]="FLAG13",e[e.BRANCH_LENGTH=8064]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(le||(le={}));var X;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(X||(X={}));const Gn=32;function Dr(e){return e>=X.ZERO&&e<=X.NINE}function Yc(e){return e>=X.UPPER_A&&e<=X.UPPER_F||e>=X.LOWER_A&&e<=X.LOWER_F}function Wc(e){return e>=X.UPPER_A&&e<=X.UPPER_Z||e>=X.LOWER_A&&e<=X.LOWER_Z||Dr(e)}function Vc(e){return e===X.EQUALS||Wc(e)}var ne;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(ne||(ne={}));var $e;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})($e||($e={}));class Kc{constructor(t,r,n){this.decodeTree=t,this.emitCodePoint=r,this.errors=n,this.state=ne.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=$e.Strict,this.runConsumed=0}startEntity(t){this.decodeMode=t,this.state=ne.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(t,r){switch(this.state){case ne.EntityStart:return t.charCodeAt(r)===X.NUM?(this.state=ne.NumericStart,this.consumed+=1,this.stateNumericStart(t,r+1)):(this.state=ne.NamedEntity,this.stateNamedEntity(t,r));case ne.NumericStart:return this.stateNumericStart(t,r);case ne.NumericDecimal:return this.stateNumericDecimal(t,r);case ne.NumericHex:return this.stateNumericHex(t,r);case ne.NamedEntity:return this.stateNamedEntity(t,r)}}stateNumericStart(t,r){return r>=t.length?-1:(t.charCodeAt(r)|Gn)===X.LOWER_X?(this.state=ne.NumericHex,this.consumed+=1,this.stateNumericHex(t,r+1)):(this.state=ne.NumericDecimal,this.stateNumericDecimal(t,r))}stateNumericHex(t,r){for(;r<t.length;){const n=t.charCodeAt(r);if(Dr(n)||Yc(n)){const s=n<=X.NINE?n-X.ZERO:(n|Gn)-X.LOWER_A+10;this.result=this.result*16+s,this.consumed++,r++}else return this.emitNumericEntity(n,3)}return-1}stateNumericDecimal(t,r){for(;r<t.length;){const n=t.charCodeAt(r);if(Dr(n))this.result=this.result*10+(n-X.ZERO),this.consumed++,r++;else return this.emitNumericEntity(n,2)}return-1}emitNumericEntity(t,r){var n;if(this.consumed<=r)return(n=this.errors)===null||n===void 0||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===X.SEMI)this.consumed+=1;else if(this.decodeMode===$e.Strict)return 0;return this.emitCodePoint(Dc(this.result),this.consumed),this.errors&&(t!==X.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,r){const{decodeTree:n}=this;let s=n[this.treeIndex],i=(s&le.VALUE_LENGTH)>>14;for(;r<t.length;){if(i===0&&(s&le.FLAG13)!==0){const o=(s&le.BRANCH_LENGTH)>>7;if(this.runConsumed===0){const c=s&le.JUMP_TABLE;if(t.charCodeAt(r)!==c)return this.result===0?0:this.emitNotTerminatedNamedEntity();r++,this.excess++,this.runConsumed++}for(;this.runConsumed<o;){if(r>=t.length)return-1;const c=this.runConsumed-1,u=n[this.treeIndex+1+(c>>1)],h=c%2===0?u&255:u>>8&255;if(t.charCodeAt(r)!==h)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();r++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(o>>1),s=n[this.treeIndex],i=(s&le.VALUE_LENGTH)>>14}if(r>=t.length)break;const a=t.charCodeAt(r);if(a===X.SEMI&&i!==0&&(s&le.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=Qc(n,s,this.treeIndex+Math.max(1,i),a),this.treeIndex<0)return this.result===0||this.decodeMode===$e.Attribute&&(i===0||Vc(a))?0:this.emitNotTerminatedNamedEntity();if(s=n[this.treeIndex],i=(s&le.VALUE_LENGTH)>>14,i!==0){if(a===X.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==$e.Strict&&(s&le.FLAG13)===0&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}r++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var t;const{result:r,decodeTree:n}=this,s=(n[r]&le.VALUE_LENGTH)>>14;return this.emitNamedEntityData(r,s,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,r,n){const{decodeTree:s}=this;return this.emitCodePoint(r===1?s[t]&~(le.VALUE_LENGTH|le.FLAG13):s[t+1],n),r===3&&this.emitCodePoint(s[t+2],n),n}end(){var t;switch(this.state){case ne.NamedEntity:return this.result!==0&&(this.decodeMode!==$e.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case ne.NumericDecimal:return this.emitNumericEntity(0,2);case ne.NumericHex:return this.emitNumericEntity(0,3);case ne.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case ne.EntityStart:return 0}}}function Qc(e,t,r,n){const s=(t&le.BRANCH_LENGTH)>>7,i=t&le.JUMP_TABLE;if(s===0)return i!==0&&n===i?r:-1;if(i){const u=n-i;return u<0||u>=s?-1:e[r+u]-1}const a=s+1>>1;let o=0,c=s-1;for(;o<=c;){const u=o+c>>>1,h=u>>1,f=e[r+h]>>(u&1)*8&255;if(f<n)o=u+1;else if(f>n)c=u-1;else return e[r+a+u]}return-1}var E;(function(e){e[e.Tab=9]="Tab",e[e.NewLine=10]="NewLine",e[e.FormFeed=12]="FormFeed",e[e.CarriageReturn=13]="CarriageReturn",e[e.Space=32]="Space",e[e.ExclamationMark=33]="ExclamationMark",e[e.Number=35]="Number",e[e.Amp=38]="Amp",e[e.SingleQuote=39]="SingleQuote",e[e.DoubleQuote=34]="DoubleQuote",e[e.Dash=45]="Dash",e[e.Slash=47]="Slash",e[e.Zero=48]="Zero",e[e.Nine=57]="Nine",e[e.Semi=59]="Semi",e[e.Lt=60]="Lt",e[e.Eq=61]="Eq",e[e.Gt=62]="Gt",e[e.Questionmark=63]="Questionmark",e[e.UpperA=65]="UpperA",e[e.LowerA=97]="LowerA",e[e.UpperF=70]="UpperF",e[e.LowerF=102]="LowerF",e[e.UpperZ=90]="UpperZ",e[e.LowerZ=122]="LowerZ",e[e.LowerX=120]="LowerX",e[e.OpeningSquareBracket=91]="OpeningSquareBracket"})(E||(E={}));var m;(function(e){e[e.Text=1]="Text",e[e.BeforeTagName=2]="BeforeTagName",e[e.InTagName=3]="InTagName",e[e.InSelfClosingTag=4]="InSelfClosingTag",e[e.BeforeClosingTagName=5]="BeforeClosingTagName",e[e.InClosingTagName=6]="InClosingTagName",e[e.AfterClosingTagName=7]="AfterClosingTagName",e[e.BeforeAttributeName=8]="BeforeAttributeName",e[e.InAttributeName=9]="InAttributeName",e[e.AfterAttributeName=10]="AfterAttributeName",e[e.BeforeAttributeValue=11]="BeforeAttributeValue",e[e.InAttributeValueDq=12]="InAttributeValueDq",e[e.InAttributeValueSq=13]="InAttributeValueSq",e[e.InAttributeValueNq=14]="InAttributeValueNq",e[e.BeforeDeclaration=15]="BeforeDeclaration",e[e.InDeclaration=16]="InDeclaration",e[e.InProcessingInstruction=17]="InProcessingInstruction",e[e.BeforeComment=18]="BeforeComment",e[e.CDATASequence=19]="CDATASequence",e[e.InSpecialComment=20]="InSpecialComment",e[e.InCommentLike=21]="InCommentLike",e[e.BeforeSpecialS=22]="BeforeSpecialS",e[e.BeforeSpecialT=23]="BeforeSpecialT",e[e.SpecialStartSequence=24]="SpecialStartSequence",e[e.InSpecialTag=25]="InSpecialTag",e[e.InEntity=26]="InEntity"})(m||(m={}));function Se(e){return e===E.Space||e===E.NewLine||e===E.Tab||e===E.FormFeed||e===E.CarriageReturn}function Pt(e){return e===E.Slash||e===E.Gt||Se(e)}function Xc(e){return e>=E.LowerA&&e<=E.LowerZ||e>=E.UpperA&&e<=E.UpperZ}var ve;(function(e){e[e.NoValue=0]="NoValue",e[e.Unquoted=1]="Unquoted",e[e.Single=2]="Single",e[e.Double=3]="Double"})(ve||(ve={}));const te={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97]),XmpEnd:new Uint8Array([60,47,120,109,112])};class zc{constructor({xmlMode:t=!1,decodeEntities:r=!0},n){this.cbs=n,this.state=m.Text,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=m.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.xmlMode=t,this.decodeEntities=r,this.entityDecoder=new Kc(t?Nc:Lc,(s,i)=>this.emitCodePoint(s,i))}reset(){this.state=m.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=m.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(t){this.offset+=this.buffer.length,this.buffer=t,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}stateText(t){t===E.Lt||!this.decodeEntities&&this.fastForwardTo(E.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=m.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&t===E.Amp&&this.startEntity()}stateSpecialStartSequence(t){const r=this.sequenceIndex===this.currentSequence.length;if(!(r?Pt(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!r){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=m.InTagName,this.stateInTagName(t)}stateInSpecialTag(t){if(this.sequenceIndex===this.currentSequence.length){if(t===E.Gt||Se(t)){const r=this.index-this.currentSequence.length;if(this.sectionStart<r){const n=this.index;this.index=r,this.cbs.ontext(this.sectionStart,r),this.index=n}this.isSpecial=!1,this.sectionStart=r+2,this.stateInClosingTagName(t);return}this.sequenceIndex=0}(t|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===te.TitleEnd?this.decodeEntities&&t===E.Amp&&this.startEntity():this.fastForwardTo(E.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(t===E.Lt)}stateCDATASequence(t){t===te.Cdata[this.sequenceIndex]?++this.sequenceIndex===te.Cdata.length&&(this.state=m.InCommentLike,this.currentSequence=te.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=m.InDeclaration,this.stateInDeclaration(t))}fastForwardTo(t){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===t)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(t){t===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===te.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=m.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):t!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(t){return this.xmlMode?!Pt(t):Xc(t)}startSpecial(t,r){this.isSpecial=!0,this.currentSequence=t,this.sequenceIndex=r,this.state=m.SpecialStartSequence}stateBeforeTagName(t){if(t===E.ExclamationMark)this.state=m.BeforeDeclaration,this.sectionStart=this.index+1;else if(t===E.Questionmark)this.state=m.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(t)){const r=t|32;this.sectionStart=this.index,this.xmlMode?this.state=m.InTagName:r===te.ScriptEnd[2]?this.state=m.BeforeSpecialS:r===te.TitleEnd[2]||r===te.XmpEnd[2]?this.state=m.BeforeSpecialT:this.state=m.InTagName}else t===E.Slash?this.state=m.BeforeClosingTagName:(this.state=m.Text,this.stateText(t))}stateInTagName(t){Pt(t)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=m.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateBeforeClosingTagName(t){Se(t)||(t===E.Gt?this.state=m.Text:(this.state=this.isTagStartChar(t)?m.InClosingTagName:m.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(t){(t===E.Gt||Se(t))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=m.AfterClosingTagName,this.stateAfterClosingTagName(t))}stateAfterClosingTagName(t){(t===E.Gt||this.fastForwardTo(E.Gt))&&(this.state=m.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(t){t===E.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=m.InSpecialTag,this.sequenceIndex=0):this.state=m.Text,this.sectionStart=this.index+1):t===E.Slash?this.state=m.InSelfClosingTag:Se(t)||(this.state=m.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(t){t===E.Gt?(this.cbs.onselfclosingtag(this.index),this.state=m.Text,this.sectionStart=this.index+1,this.isSpecial=!1):Se(t)||(this.state=m.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateInAttributeName(t){(t===E.Eq||Pt(t))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=this.index,this.state=m.AfterAttributeName,this.stateAfterAttributeName(t))}stateAfterAttributeName(t){t===E.Eq?this.state=m.BeforeAttributeValue:t===E.Slash||t===E.Gt?(this.cbs.onattribend(ve.NoValue,this.sectionStart),this.sectionStart=-1,this.state=m.BeforeAttributeName,this.stateBeforeAttributeName(t)):Se(t)||(this.cbs.onattribend(ve.NoValue,this.sectionStart),this.state=m.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(t){t===E.DoubleQuote?(this.state=m.InAttributeValueDq,this.sectionStart=this.index+1):t===E.SingleQuote?(this.state=m.InAttributeValueSq,this.sectionStart=this.index+1):Se(t)||(this.sectionStart=this.index,this.state=m.InAttributeValueNq,this.stateInAttributeValueNoQuotes(t))}handleInAttributeValue(t,r){t===r||!this.decodeEntities&&this.fastForwardTo(r)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(r===E.DoubleQuote?ve.Double:ve.Single,this.index+1),this.state=m.BeforeAttributeName):this.decodeEntities&&t===E.Amp&&this.startEntity()}stateInAttributeValueDoubleQuotes(t){this.handleInAttributeValue(t,E.DoubleQuote)}stateInAttributeValueSingleQuotes(t){this.handleInAttributeValue(t,E.SingleQuote)}stateInAttributeValueNoQuotes(t){Se(t)||t===E.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(ve.Unquoted,this.index),this.state=m.BeforeAttributeName,this.stateBeforeAttributeName(t)):this.decodeEntities&&t===E.Amp&&this.startEntity()}stateBeforeDeclaration(t){t===E.OpeningSquareBracket?(this.state=m.CDATASequence,this.sequenceIndex=0):this.state=t===E.Dash?m.BeforeComment:m.InDeclaration}stateInDeclaration(t){(t===E.Gt||this.fastForwardTo(E.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=m.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(t){(t===E.Gt||this.fastForwardTo(E.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=m.Text,this.sectionStart=this.index+1)}stateBeforeComment(t){t===E.Dash?(this.state=m.InCommentLike,this.currentSequence=te.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=m.InDeclaration}stateInSpecialComment(t){(t===E.Gt||this.fastForwardTo(E.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=m.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(t){const r=t|32;r===te.ScriptEnd[3]?this.startSpecial(te.ScriptEnd,4):r===te.StyleEnd[3]?this.startSpecial(te.StyleEnd,4):(this.state=m.InTagName,this.stateInTagName(t))}stateBeforeSpecialT(t){switch(t|32){case te.TitleEnd[3]:{this.startSpecial(te.TitleEnd,4);break}case te.TextareaEnd[3]:{this.startSpecial(te.TextareaEnd,4);break}case te.XmpEnd[3]:{this.startSpecial(te.XmpEnd,4);break}default:this.state=m.InTagName,this.stateInTagName(t)}}startEntity(){this.baseState=this.state,this.state=m.InEntity,this.entityStart=this.index,this.entityDecoder.startEntity(this.xmlMode?$e.Strict:this.baseState===m.Text||this.baseState===m.InSpecialTag?$e.Legacy:$e.Attribute)}stateInEntity(){const t=this.index-this.offset,r=this.entityDecoder.write(this.buffer,t);if(r>=0)this.state=this.baseState,r===0&&(this.index-=1);else{if(t<this.buffer.length&&this.buffer.charCodeAt(t)===E.Amp){this.state=this.baseState,this.index-=1;return}this.index=this.offset+this.buffer.length-1}}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===m.Text||this.state===m.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===m.InAttributeValueDq||this.state===m.InAttributeValueSq||this.state===m.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index<this.buffer.length+this.offset&&this.running}parse(){for(;this.shouldContinue();){const t=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case m.Text:{this.stateText(t);break}case m.SpecialStartSequence:{this.stateSpecialStartSequence(t);break}case m.InSpecialTag:{this.stateInSpecialTag(t);break}case m.CDATASequence:{this.stateCDATASequence(t);break}case m.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(t);break}case m.InAttributeName:{this.stateInAttributeName(t);break}case m.InCommentLike:{this.stateInCommentLike(t);break}case m.InSpecialComment:{this.stateInSpecialComment(t);break}case m.BeforeAttributeName:{this.stateBeforeAttributeName(t);break}case m.InTagName:{this.stateInTagName(t);break}case m.InClosingTagName:{this.stateInClosingTagName(t);break}case m.BeforeTagName:{this.stateBeforeTagName(t);break}case m.AfterAttributeName:{this.stateAfterAttributeName(t);break}case m.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(t);break}case m.BeforeAttributeValue:{this.stateBeforeAttributeValue(t);break}case m.BeforeClosingTagName:{this.stateBeforeClosingTagName(t);break}case m.AfterClosingTagName:{this.stateAfterClosingTagName(t);break}case m.BeforeSpecialS:{this.stateBeforeSpecialS(t);break}case m.BeforeSpecialT:{this.stateBeforeSpecialT(t);break}case m.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(t);break}case m.InSelfClosingTag:{this.stateInSelfClosingTag(t);break}case m.InDeclaration:{this.stateInDeclaration(t);break}case m.BeforeDeclaration:{this.stateBeforeDeclaration(t);break}case m.BeforeComment:{this.stateBeforeComment(t);break}case m.InProcessingInstruction:{this.stateInProcessingInstruction(t);break}case m.InEntity:{this.stateInEntity();break}}this.index++}this.cleanup()}finish(){this.state===m.InEntity&&(this.entityDecoder.end(),this.state=this.baseState),this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){const t=this.buffer.length+this.offset;this.sectionStart>=t||(this.state===m.InCommentLike?this.currentSequence===te.CdataEnd?this.cbs.oncdata(this.sectionStart,t,0):this.cbs.oncomment(this.sectionStart,t,0):this.state===m.InTagName||this.state===m.BeforeAttributeName||this.state===m.BeforeAttributeValue||this.state===m.AfterAttributeName||this.state===m.InAttributeName||this.state===m.InAttributeValueSq||this.state===m.InAttributeValueDq||this.state===m.InAttributeValueNq||this.state===m.InClosingTagName||this.cbs.ontext(this.sectionStart,t))}emitCodePoint(t,r){this.baseState!==m.Text&&this.baseState!==m.InSpecialTag?(this.sectionStart<this.entityStart&&this.cbs.onattribdata(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+r,this.index=this.sectionStart-1,this.cbs.onattribentity(t)):(this.sectionStart<this.entityStart&&this.cbs.ontext(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+r,this.index=this.sectionStart-1,this.cbs.ontextentity(t,this.sectionStart))}}const Xe=new Set(["input","option","optgroup","select","button","datalist","textarea"]),D=new Set(["p"]),_n=new Set(["thead","tbody"]),Dn=new Set(["dd","dt"]),Ln=new Set(["rt","rp"]),Hc=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",D],["h1",D],["h2",D],["h3",D],["h4",D],["h5",D],["h6",D],["select",Xe],["input",Xe],["output",Xe],["button",Xe],["datalist",Xe],["textarea",Xe],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",Dn],["dt",Dn],["address",D],["article",D],["aside",D],["blockquote",D],["details",D],["div",D],["dl",D],["fieldset",D],["figcaption",D],["figure",D],["footer",D],["form",D],["header",D],["hr",D],["main",D],["nav",D],["ol",D],["pre",D],["section",D],["table",D],["ul",D],["rt",Ln],["rp",Ln],["tbody",_n],["tfoot",_n]]),Jc=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),Nn=new Set(["math","svg"]),Yn=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),Zc=/\s|\//;class qc{constructor(t,r={}){var n,s,i,a,o,c;this.options=r,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=t??{},this.htmlMode=!this.options.xmlMode,this.lowerCaseTagNames=(n=r.lowerCaseTags)!==null&&n!==void 0?n:this.htmlMode,this.lowerCaseAttributeNames=(s=r.lowerCaseAttributeNames)!==null&&s!==void 0?s:this.htmlMode,this.recognizeSelfClosing=(i=r.recognizeSelfClosing)!==null&&i!==void 0?i:!this.htmlMode,this.tokenizer=new((a=r.Tokenizer)!==null&&a!==void 0?a:zc)(this.options,this),this.foreignContext=[!this.htmlMode],(c=(o=this.cbs).onparserinit)===null||c===void 0||c.call(o,this)}ontext(t,r){var n,s;const i=this.getSlice(t,r);this.endIndex=r-1,(s=(n=this.cbs).ontext)===null||s===void 0||s.call(n,i),this.startIndex=r}ontextentity(t,r){var n,s;this.endIndex=r-1,(s=(n=this.cbs).ontext)===null||s===void 0||s.call(n,Un(t)),this.startIndex=r}isVoidElement(t){return this.htmlMode&&Jc.has(t)}onopentagname(t,r){this.endIndex=r;let n=this.getSlice(t,r);this.lowerCaseTagNames&&(n=n.toLowerCase()),this.emitOpenTag(n)}emitOpenTag(t){var r,n,s,i;this.openTagStart=this.startIndex,this.tagname=t;const a=this.htmlMode&&Hc.get(t);if(a)for(;this.stack.length>0&&a.has(this.stack[0]);){const o=this.stack.shift();(n=(r=this.cbs).onclosetag)===null||n===void 0||n.call(r,o,!0)}this.isVoidElement(t)||(this.stack.unshift(t),this.htmlMode&&(Nn.has(t)?this.foreignContext.unshift(!0):Yn.has(t)&&this.foreignContext.unshift(!1))),(i=(s=this.cbs).onopentagname)===null||i===void 0||i.call(s,t),this.cbs.onopentag&&(this.attribs={})}endOpenTag(t){var r,n;this.startIndex=this.openTagStart,this.attribs&&((n=(r=this.cbs).onopentag)===null||n===void 0||n.call(r,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1}onclosetag(t,r){var n,s,i,a,o,c,u,h;this.endIndex=r;let l=this.getSlice(t,r);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),this.htmlMode&&(Nn.has(l)||Yn.has(l))&&this.foreignContext.shift(),this.isVoidElement(l))this.htmlMode&&l==="br"&&((a=(i=this.cbs).onopentagname)===null||a===void 0||a.call(i,"br"),(c=(o=this.cbs).onopentag)===null||c===void 0||c.call(o,"br",{},!0),(h=(u=this.cbs).onclosetag)===null||h===void 0||h.call(u,"br",!1));else{const f=this.stack.indexOf(l);if(f!==-1)for(let A=0;A<=f;A++){const d=this.stack.shift();(s=(n=this.cbs).onclosetag)===null||s===void 0||s.call(n,d,A!==f)}else this.htmlMode&&l==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=r+1}onselfclosingtag(t){this.endIndex=t,this.recognizeSelfClosing||this.foreignContext[0]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)}closeCurrentTag(t){var r,n;const s=this.tagname;this.endOpenTag(t),this.stack[0]===s&&((n=(r=this.cbs).onclosetag)===null||n===void 0||n.call(r,s,!t),this.stack.shift())}onattribname(t,r){this.startIndex=t;const n=this.getSlice(t,r);this.attribname=this.lowerCaseAttributeNames?n.toLowerCase():n}onattribdata(t,r){this.attribvalue+=this.getSlice(t,r)}onattribentity(t){this.attribvalue+=Un(t)}onattribend(t,r){var n,s;this.endIndex=r,(s=(n=this.cbs).onattribute)===null||s===void 0||s.call(n,this.attribname,this.attribvalue,t===ve.Double?'"':t===ve.Single?"'":t===ve.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(t){const r=t.search(Zc);let n=r<0?t:t.substr(0,r);return this.lowerCaseTagNames&&(n=n.toLowerCase()),n}ondeclaration(t,r){this.endIndex=r;const n=this.getSlice(t,r);if(this.cbs.onprocessinginstruction){const s=this.getInstructionName(n);this.cbs.onprocessinginstruction(`!${s}`,`!${n}`)}this.startIndex=r+1}onprocessinginstruction(t,r){this.endIndex=r;const n=this.getSlice(t,r);if(this.cbs.onprocessinginstruction){const s=this.getInstructionName(n);this.cbs.onprocessinginstruction(`?${s}`,`?${n}`)}this.startIndex=r+1}oncomment(t,r,n){var s,i,a,o;this.endIndex=r,(i=(s=this.cbs).oncomment)===null||i===void 0||i.call(s,this.getSlice(t,r-n)),(o=(a=this.cbs).oncommentend)===null||o===void 0||o.call(a),this.startIndex=r+1}oncdata(t,r,n){var s,i,a,o,c,u,h,l,f,A;this.endIndex=r;const d=this.getSlice(t,r-n);!this.htmlMode||this.options.recognizeCDATA?((i=(s=this.cbs).oncdatastart)===null||i===void 0||i.call(s),(o=(a=this.cbs).ontext)===null||o===void 0||o.call(a,d),(u=(c=this.cbs).oncdataend)===null||u===void 0||u.call(c)):((l=(h=this.cbs).oncomment)===null||l===void 0||l.call(h,`[CDATA[${d}]]`),(A=(f=this.cbs).oncommentend)===null||A===void 0||A.call(f)),this.startIndex=r+1}onend(){var t,r;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let n=0;n<this.stack.length;n++)this.cbs.onclosetag(this.stack[n],!0)}(r=(t=this.cbs).onend)===null||r===void 0||r.call(t)}reset(){var t,r,n,s;(r=(t=this.cbs).onreset)===null||r===void 0||r.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(s=(n=this.cbs).onparserinit)===null||s===void 0||s.call(n,this),this.buffers.length=0,this.foreignContext.length=0,this.foreignContext.unshift(!this.htmlMode),this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(t){this.reset(),this.end(t)}getSlice(t,r){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let n=this.buffers[0].slice(t-this.bufferOffset,r-this.bufferOffset);for(;r-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),n+=this.buffers[0].slice(0,r-this.bufferOffset);return n}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(t){var r,n;if(this.ended){(n=(r=this.cbs).onerror)===null||n===void 0||n.call(r,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)}end(t){var r,n;if(this.ended){(n=(r=this.cbs).onerror)===null||n===void 0||n.call(r,new Error(".end() after done!"));return}t&&this.write(t),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}parseChunk(t){this.write(t)}done(t){this.end(t)}}var G;(function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"})(G||(G={}));function jc(e){return e.type===G.Tag||e.type===G.Script||e.type===G.Style}G.Root;G.Text;G.Directive;G.Comment;G.Script;G.Style;G.Tag;G.CDATA;G.Doctype;class js{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(t){this.parent=t}get previousSibling(){return this.prev}set previousSibling(t){this.prev=t}get nextSibling(){return this.next}set nextSibling(t){this.next=t}cloneNode(t=!1){return si(this,t)}}class pn extends js{constructor(t){super(),this.data=t}get nodeValue(){return this.data}set nodeValue(t){this.data=t}}class Lr extends pn{constructor(){super(...arguments),this.type=G.Text}get nodeType(){return 3}}class ei extends pn{constructor(){super(...arguments),this.type=G.Comment}get nodeType(){return 8}}class ti extends pn{constructor(t,r){super(r),this.name=t,this.type=G.Directive}get nodeType(){return 1}}class mn extends js{constructor(t){super(),this.children=t}get firstChild(){var t;return(t=this.children[0])!==null&&t!==void 0?t:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(t){this.children=t}}class ri extends mn{constructor(){super(...arguments),this.type=G.CDATA}get nodeType(){return 4}}class Nr extends mn{constructor(){super(...arguments),this.type=G.Root}get nodeType(){return 9}}class ni extends mn{constructor(t,r,n=[],s=t==="script"?G.Script:t==="style"?G.Style:G.Tag){super(n),this.name=t,this.attribs=r,this.type=s}get nodeType(){return 1}get tagName(){return this.name}set tagName(t){this.name=t}get attributes(){return Object.keys(this.attribs).map(t=>{var r,n;return{name:t,value:this.attribs[t],namespace:(r=this["x-attribsNamespace"])===null||r===void 0?void 0:r[t],prefix:(n=this["x-attribsPrefix"])===null||n===void 0?void 0:n[t]}})}}function el(e){return jc(e)}function tl(e){return e.type===G.CDATA}function rl(e){return e.type===G.Text}function nl(e){return e.type===G.Comment}function sl(e){return e.type===G.Directive}function il(e){return e.type===G.Root}function si(e,t=!1){let r;if(rl(e))r=new Lr(e.data);else if(nl(e))r=new ei(e.data);else if(el(e)){const n=t?Cr(e.children):[],s=new ni(e.name,{...e.attribs},n);n.forEach(i=>i.parent=s),e.namespace!=null&&(s.namespace=e.namespace),e["x-attribsNamespace"]&&(s["x-attribsNamespace"]={...e["x-attribsNamespace"]}),e["x-attribsPrefix"]&&(s["x-attribsPrefix"]={...e["x-attribsPrefix"]}),r=s}else if(tl(e)){const n=t?Cr(e.children):[],s=new ri(n);n.forEach(i=>i.parent=s),r=s}else if(il(e)){const n=t?Cr(e.children):[],s=new Nr(n);n.forEach(i=>i.parent=s),e["x-mode"]&&(s["x-mode"]=e["x-mode"]),r=s}else if(sl(e)){const n=new ti(e.name,e.data);e["x-name"]!=null&&(n["x-name"]=e["x-name"],n["x-publicId"]=e["x-publicId"],n["x-systemId"]=e["x-systemId"]),r=n}else throw new Error(`Not implemented yet: ${e.type}`);return r.startIndex=e.startIndex,r.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(r.sourceCodeLocation=e.sourceCodeLocation),r}function Cr(e){const t=e.map(r=>si(r,!0));for(let r=1;r<t.length;r++)t[r].prev=t[r-1],t[r-1].next=t[r];return t}const Wn={withStartIndices:!1,withEndIndices:!1,xmlMode:!1};class al{constructor(t,r,n){this.dom=[],this.root=new Nr(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof r=="function"&&(n=r,r=Wn),typeof t=="object"&&(r=t,t=void 0),this.callback=t??null,this.options=r??Wn,this.elementCB=n??null}onparserinit(t){this.parser=t}onreset(){this.dom=[],this.root=new Nr(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(t){this.handleCallback(t)}onclosetag(){this.lastNode=null;const t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)}onopentag(t,r){const n=this.options.xmlMode?G.Tag:void 0,s=new ni(t,r,void 0,n);this.addNode(s),this.tagStack.push(s)}ontext(t){const{lastNode:r}=this;if(r&&r.type===G.Text)r.data+=t,this.options.withEndIndices&&(r.endIndex=this.parser.endIndex);else{const n=new Lr(t);this.addNode(n),this.lastNode=n}}oncomment(t){if(this.lastNode&&this.lastNode.type===G.Comment){this.lastNode.data+=t;return}const r=new ei(t);this.addNode(r),this.lastNode=r}oncommentend(){this.lastNode=null}oncdatastart(){const t=new Lr(""),r=new ri([t]);this.addNode(r),t.parent=r,this.lastNode=t}oncdataend(){this.lastNode=null}onprocessinginstruction(t,r){const n=new ti(t,r);this.addNode(n)}handleCallback(t){if(typeof this.callback=="function")this.callback(t,this.dom);else if(t)throw t}addNode(t){const r=this.tagStack[this.tagStack.length-1],n=r.children[r.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),r.children.push(t),n&&(t.prev=n,n.next=t),t.parent=r,this.lastNode=null}}function ol(e,t){const r=new al(void 0,t);return new qc(r,t).end(e),r.root}const ii=e=>{let t="";return e.italic&&(t="italic "),e.bold&&(t+="bold "),`${t}${e.size}px '${e.font}',sans-serif`},Yr=(e,t)=>{dt(0);const r=e.lineTable.length;De.font=ii(t);const n=De.measureText(""),s={mode:"break",text:"",x:0,y:0,w:0,h:n.fontBoundingBoxAscent+n.fontBoundingBoxDescent,line:r,textFormat:t.toObject()};e.heightTable[r]=0,e.ascentTable[r]=0,e.widthTable[r]=0,e.lineTable.push(s),e.textTable.push(s)},cl=e=>{const t=e.heightTable.length-1;for(let r=1;r<t;++r){if(e.heightTable[r]>0)continue;const s=e.lineTable[r];s&&(e.heightTable[r]=s.h=e.heightTable[r-1])}},ai=e=>{let t=0;return e.leftMargin&&(t+=e.leftMargin),e.rightMargin&&(t+=e.rightMargin),t},ll=(e,t,r,n)=>{let s=r.lineTable.length-1;const i=n.width-ai(t)-4;for(let a=0;a<e.length;++a){const o=n.textFormats?n.textFormats.shift():t,c=e[a],u={mode:"text",text:c,x:0,y:0,w:0,h:0,line:s,textFormat:o.toObject()};De.font=ii(o);const h=De.measureText(c||""),l=o.letterSpacing?h.width+o.letterSpacing:h.width,f=o.leading?h.fontBoundingBoxAscent+h.fontBoundingBoxDescent+o.leading:h.fontBoundingBoxAscent+h.fontBoundingBoxDescent;if(u.x=0,u.y=h.fontBoundingBoxAscent,u.w=l,u.h=f,dt(Et()+l),n.wordWrap&&Et()>i){dt(l),s++,u.line=s;const A={mode:"wrap",text:"",x:0,y:0,w:0,h:0,line:s,textFormat:o.toObject()};let d=1,y=!0;const g=/[0-9a-zA-Z?!;:.,?!。、;:〜]/g;for(;;){const p=r.textTable.length-d;if(0>=p){y=!1,d=0;break}const $=r.textTable[p];if(!$){y=!1,d=0;break}if($.mode!=="text"){y=!1;break}if($.text===" "){d--;break}if(!$.text.match(g)){d--;break}d++}if(r.widthTable[s]=0,r.heightTable[s]=0,r.ascentTable[s]=0,d>0&&y){const p=r.textTable.length-d;r.textTable.splice(p,0,A),r.lineTable.push(A);const $=s-1;r.widthTable[$]=0,r.heightTable[$]=0,r.ascentTable[$]=0;for(let w=0;w<p;++w){const I=r.textTable[w];I&&I.line===$&&I.mode==="text"&&(r.widthTable[$]+=I.w,r.heightTable[$]=Math.max(r.heightTable[$],I.h),r.ascentTable[$]=Math.max(r.ascentTable[$],I.y))}dt(0);for(let w=p+1;w<r.textTable.length;++w){const I=r.textTable[w];I.line=s,dt(Et()+I.w)}}else r.textTable.push(A),r.lineTable.push(A)}r.widthTable[s]=Et(),r.heightTable[s]=Math.max(r.heightTable[s],f),r.ascentTable[s]=Math.max(r.ascentTable[s],u.y),r.textTable.push(u)}},ul=e=>{const t=e.trim().split(";"),r=[];for(let n=0;n<t.length;++n){const s=t[n];if(!s)continue;const i=s.split(":"),a=i[0].trim(),o=i[1].trim();switch(a){case"font-size":r.push({name:"size",value:parseInt(o)});break;case"font-family":r.push({name:"face",value:o.replace(/'|"/g,"")});break;case"letter-spacing":r.push({name:"letterSpacing",value:parseInt(o)});break;case"margin-bottom":r.push({name:"leading",value:parseInt(o)});break;case"margin-left":r.push({name:"leftMargin",value:parseInt(o)});break;case"margin-right":r.push({name:"rightMargin",value:parseInt(o)});break;case"color":case"align":r.push({name:a,value:o});break;case"text-decoration":case"font-weight":case"font-style":r.push({name:o,value:!0});break}}return r},Wr=(e,t,r)=>{for(let n=0;n<e.length;++n){const s=e[n];switch(s.name){case"style":Wr(ul(s.value),t,r);break;case"align":t.align=s.value;break;case"face":t.font=s.value;break;case"size":t.size=+s.value,r.subFontSize&&(t.size-=r.subFontSize,1>t.size&&(t.size=1));break;case"color":t.color=et(s.value);break;case"letterSpacing":t.letterSpacing=parseInt(s.value);break;case"leading":t.leading=parseInt(s.value);break;case"leftMargin":t.leftMargin=parseInt(s.value);break;case"rightMargin":t.rightMargin=parseInt(s.value);break;case"underline":t.underline=!0;break;case"bold":t.bold=!0;break;case"italic":t.italic=!0;break}}},Vr=(e,t,r,n)=>{for(let s=0;s<e.children.length;++s){const i=e.children[s];if(i.nodeType===3){ll(i.nodeValue||"",t,r,n);continue}const a=t.clone();switch(i.name.toUpperCase()){case"DIV":case"P":Wr(i.attributes,a,n),n.multiline&&Yr(r,a),Vr(i,a,r,n);continue;case"U":a.underline=!0;break;case"B":a.bold=!0;break;case"I":a.italic=!0;break;case"FONT":case"SPAN":Wr(i.attributes,a,n);break;case"BR":if(!n.multiline)continue;Yr(r,a);break}Vr(i,a,r,n)}},hl=(e,t,r)=>{const n=new Gc;if(!e)return n;const s=e.trim().replace(/\r?\n/g,"").replace(/\t/g,""),i=t.clone();return r.subFontSize&&r.subFontSize>0&&i.size&&(i.size-=r.subFontSize,1>i.size&&(i.size=1)),Yr(n,i),Vr(ol(s),i,n,r),cl(n),n},H=(e,t=0)=>(e.$textData||(e.$textData=hl(e.htmlText,e.defaultTextFormat,{width:e.width,multiline:e.multiline,wordWrap:e.wordWrap,subFontSize:t,textFormats:e.$textFormats})),e.$textData),K=e=>{e.changed=!0;const t=e.parent;t&&!t.changed&&K(t)},Kr=e=>{e.$textData=null,K(e),e.uniqueKey!==""&&O.has(e.uniqueKey)&&(O.removeById(e.uniqueKey),O.$removeIds.push(+e.uniqueKey))},fl=e=>{if(K(e),e.autoSize==="none"){e.xMin=e.bounds.xMin,e.yMin=e.bounds.yMin,e.xMax=e.bounds.xMax,e.yMax=e.bounds.yMax;return}const t=e.defaultTextFormat,r=e.textWidth+4+ai(t);if(e.wordWrap)e.xMin=e.bounds.xMin,e.xMax=e.bounds.xMax;else switch(e.autoSize){case"left":e.xMax=r+e.xMin;break;case"center":e.xMax=r+e.xMin;break;case"right":e.xMax=e.bounds.xMax-(e.bounds.xMax-e.bounds.xMin-(r-e.bounds.xMin));break}e.yMax=e.textHeight+e.bounds.yMin+4},dl=e=>{let t=0;const r=H(e);for(let s=0;s<r.textTable.length;++s){const i=r.textTable[s];t=Math.max(t,i.textFormat.size||0)}let n=1;if(e.width&&e.textWidth)for(;t>n&&e.textWidth+4>e.width;)Kr(e),H(e,n++);if(e.height&&e.textHeight)for(;t>n&&e.textHeight+4>e.height;)Kr(e),H(e,n++);K(e)},Be=e=>{Kr(e),H(e),e.autoSize==="none"&&e.autoFontSize&&dl(e),fl(e)},Al=(e,t)=>{const r=H(e);if(2>r.textTable.length)return;let n=2,s=0;for(let f=1;f<r.textTable.length;++f){const A=r.textTable[f];if(!A)continue;let d=!1;if(A.mode==="text"&&(d=!0,n+=A.w),s>=t){s=f;break}A.mode==="break"&&(d=!0,n=2),d&&s++}const i=r.textTable[s];if(!i)return;e.$scrollX=e.$scrollY=0;const a=i.line;let o=0;for(let f=0;f<=a;++f)o+=r.heightTable[f];const c=Math.abs(e.yMax-e.yMin);let u=0;for(let f=a;f>-1;--f){const A=r.heightTable[f];if(c<u+A)break;u+=A}if(o>c){const f=(e.textHeight-c)/c;e.$scrollY=Math.max(0,Math.min((o-u)/f,c))}const h=Math.abs(e.xMax-e.xMin);let l=0;for(let f=s;f>0;--f){const A=r.textTable[f];if(A.mode==="text"){if(h<l+A.w)break;l+=A.w}}if(n>h){const f=(e.textWidth-h)/h;e.$scrollX=Math.max(0,Math.min((n-l)/f,h+.5))}K(e)},fe=()=>{const e=Ht();e!==void 0&&clearTimeout(e),Zs(void 0)},pl=window.devicePixelRatio,ml=e=>{const t=e.localToGlobal(new ie),r=e.$textData;if(r){const s=r.textTable[e.focusIndex];if(s){for(let a=e.focusIndex-1;a>-1;--a){const o=r.textTable[a];if(!o||o.line!==s.line)break;t.x+=o.w}const i=s.mode==="break"?s.line-1:s.line;for(let a=0;a<i;++a)t.y+=r.heightTable[a]}}const n=v.rendererScale/pl;de.style.left=`${Je.x+t.x*n}px`,de.style.top=`${Je.y+t.y*n}px`},pe=e=>{e.focusVisible=!e.focusVisible,K(e),Zs(setTimeout(()=>pe(e),500)),ml(e)},gl=(e,t)=>{e.willTrigger(t)&&e.dispatchEvent(new Ne(t)),de.value="",e.focus?(setTimeout(()=>{de.focus()},300),Ht()===void 0&&(e.focusIndex===-1&&(e.focusIndex=1,e.selectIndex=-1),pe(e))):(e.focusIndex=-1,e.selectIndex=-1,e.focusVisible=!1,fe(),de.blur()),K(e)},bl=(e,t,r,n)=>e/n*r+t,xl=(e,t,r,n)=>(e/=n)*e*r+t,yl=(e,t,r,n)=>-(e/=n)*(e-2)*r+t,$l=(e,t,r,n)=>(e/=n/2)<1?e*e*r/2+t:-((e-=1)*(e-2)-1)*r/2+t,vl=(e,t,r,n)=>(e/=n)*e*e*r+t,wl=(e,t,r,n)=>(e/=n,(--e*e*e+1)*r+t),Ml=(e,t,r,n)=>(e/=n/2)<1?e*e*e*r/2+t:((e-=2)*e*e+2)*r/2+t,Bl=(e,t,r,n)=>(e/=n)*e*e*e*r+t,Tl=(e,t,r,n)=>(e/=n,(--e*e*e*e-1)*-r+t),Sl=(e,t,r,n)=>(e/=n/2)<1?e*e*e*e*r/2+t:((e-=2)*e*e*e-2)*-r/2+t,Il=(e,t,r,n)=>(e/=n)*e*e*e*e*r+t,Cl=(e,t,r,n)=>(e/=n,(--e*e*e*e*e+1)*r+t),Fl=(e,t,r,n)=>(e/=n/2)<1?e*e*e*e*e*r/2+t:((e-=2)*e*e*e*e+2)*r/2+t,El=(e,t,r,n)=>-r*Math.cos(e/n*(Math.PI/2))+r+t,Pl=(e,t,r,n)=>r*Math.sin(e/n*(Math.PI/2))+t,Rl=(e,t,r,n)=>-r/2*(Math.cos(Math.PI*e/n)-1)+t,Ol=(e,t,r,n)=>r*Math.pow(2,10*(e/n-1))+t,kl=(e,t,r,n)=>r*(-Math.pow(2,-10*e/n)+1)+t,Ul=(e,t,r,n)=>(e/=n/2)<1?r/2*Math.pow(2,10*(e-1))+t:r/2*(-Math.pow(2,-10*(e-1))+2)+t,Gl=(e,t,r,n)=>(1-Math.sqrt(1-(e/=n)*e))*r+t,_l=(e,t,r,n)=>(e/=n,Math.sqrt(1- --e*e)*r+t),Dl=(e,t,r,n)=>(e/=n*2)<1?(Math.sqrt(1-e*e)-1)/-2*r+t:(Math.sqrt(1-(e-=2)*e)+1)/2*r+t,Ll=(e,t,r,n)=>(2.70158*(e/=n)*e*e-1.70158*e*e)*r+t,Nl=(e,t,r,n)=>(1+2.70158*Math.pow((e/=n)-1,3)+1.70158*Math.pow(e-1,2))*r+t,Yl=(e,t,r,n)=>{let s=1.70158;return(e/=n/2)<1?e*e*(((s*=1.525)+1)*e-s)*r/2+t:((e-=2)*e*(((s*=1.525)+1)*e+s)+2)*r/2+t},Wl=(e,t,r,n)=>(e/=n)===0?t:e===1?r+t:-Math.pow(2,(e*=10)-10)*Math.sin((e-10.75)*(2*Math.PI/3))*r+t,Vl=(e,t,r,n)=>(e/=n)===0?t:e===1?r+t:(Math.pow(2,-10*e)*Math.sin((e*10-.75)*(2*Math.PI/3))+1)*r+t,Kl=(e,t,r,n)=>(e/=n)===0?t:e===1?r+t:e<.5?-(Math.pow(2,20*e-10)*Math.sin((20*e-11.125)*(2*Math.PI/4.5)))/2*r+t:(Math.pow(2,-20*e+10)*Math.sin((20*e-11.125)*(2*Math.PI/4.5))/2+1)*r+t,Ql=(e,t,r,n)=>(e/=n)<1/2.75?7.5625*e*e*r+t:e<2/2.75?(7.5625*(e-=1.5/2.75)*e+.75)*r+t:e<2.5/2.75?(7.5625*(e-=2.25/2.75)*e+.9375)*r+t:(7.5625*(e-=2.625/2.75)*e+.984375)*r+t,Xl=(e,t,r,n)=>r-Ye.outBounce(n-e,0,r,n)+t,zl=(e,t,r,n)=>e<n/2?Ye.inBounce(e*2,t,r/2,n):Ye.outBounce(e*2-n,t+r/2,r/2,n);class Ye{static linear(t,r,n,s){return bl(t,r,n,s)}static inQuad(t,r,n,s){return xl(t,r,n,s)}static outQuad(t,r,n,s){return yl(t,r,n,s)}static inOutQuad(t,r,n,s){return $l(t,r,n,s)}static inCubic(t,r,n,s){return vl(t,r,n,s)}static outCubic(t,r,n,s){return wl(t,r,n,s)}static inOutCubic(t,r,n,s){return Ml(t,r,n,s)}static inQuart(t,r,n,s){return Bl(t,r,n,s)}static outQuart(t,r,n,s){return Tl(t,r,n,s)}static inOutQuart(t,r,n,s){return Sl(t,r,n,s)}static inQuint(t,r,n,s){return Il(t,r,n,s)}static outQuint(t,r,n,s){return Cl(t,r,n,s)}static inOutQuint(t,r,n,s){return Fl(t,r,n,s)}static inSine(t,r,n,s){return El(t,r,n,s)}static outSine(t,r,n,s){return Pl(t,r,n,s)}static inOutSine(t,r,n,s){return Rl(t,r,n,s)}static inExpo(t,r,n,s){return Ol(t,r,n,s)}static outExpo(t,r,n,s){return kl(t,r,n,s)}static inOutExpo(t,r,n,s){return Ul(t,r,n,s)}static inCirc(t,r,n,s){return Gl(t,r,n,s)}static outCirc(t,r,n,s){return _l(t,r,n,s)}static inOutCirc(t,r,n,s){return Dl(t,r,n,s)}static inBack(t,r,n,s){return Ll(t,r,n,s)}static outBack(t,r,n,s){return Nl(t,r,n,s)}static inOutBack(t,r,n,s){return Yl(t,r,n,s)}static inElastic(t,r,n,s){return Wl(t,r,n,s)}static outElastic(t,r,n,s){return Vl(t,r,n,s)}static inOutElastic(t,r,n,s){return Kl(t,r,n,s)}static outBounce(t,r,n,s){return Ql(t,r,n,s)}static inBounce(t,r,n,s){return Xl(t,r,n,s)}static inOutBounce(t,r,n,s){return zl(t,r,n,s)}}const Hl=e=>{cancelAnimationFrame(e.$timerId),e.hasEventListener(ye.STOP)&&e.dispatchEvent(new ye(ye.STOP)),e.entries=null,e.stopFlag=!0},oi=e=>{const t=[];for(const[r,n]of Object.entries(e))t.push({name:r,value:typeof n=="number"?n:oi(n)});return t},ci=(e,t,r,n,s)=>{for(let i=0;i<s.length;++i){const a=s[i];if(!a)continue;const o=a.name;if(!(o in t)||!(o in n))continue;if(typeof a.value!="number"){ci(e,t[o],r[o],n[o],a.value);continue}const c=r[o];e.duration>e.currentTime?t[o]=e.ease(e.currentTime,c,n[o]-c,e.duration):t[o]=n[o]}},li=(e,t)=>e.stopFlag||!e.entries?-1:(e.currentTime=(t-e.startTime)/1e3,ci(e,e.target,e.from,e.to,e.entries),e.hasEventListener(ye.UPDATE)&&e.dispatchEvent(new ye(ye.UPDATE)),e.currentTime>=e.duration?(e.hasEventListener(ye.COMPLETE)&&e.dispatchEvent(new ye(ye.COMPLETE)),e.nextJob&&e.nextJob.start(),-1):requestAnimationFrame(r=>{li(e,r)})),Vn=e=>{e.stopFlag||(e.entries=oi(e.from),e.entries&&(e.startTime=performance.now(),e.$timerId=li(e,e.startTime)))},Jl=e=>{cancelAnimationFrame(e.$timerId),e.stopFlag=!1,e.delay?setTimeout(()=>{Vn(e)},e.delay*1e3):Vn(e)};class Zl extends nt{target;entries;startTime;stopFlag;$timerId;delay;duration;ease;from;to;currentTime;nextJob;constructor(t,r,n,s=0,i=1,a=null){super(),this.target=t,this.from=r,this.to=n,this.delay=s,this.duration=i,this.ease=a||Ye.linear,this.currentTime=0,this.nextJob=null,this.entries=null,this.startTime=0,this.stopFlag=!1,this.$timerId=-1}chain(t){return this.nextJob=t,t}start(){Jl(this)}stop(){Hl(this)}}class gn{static add(t,r,n,s=0,i=1,a=null){return new Zl(t,r,n,s,i,a)}}const ql=(e,t)=>{if(!e.scrollEnabled||e.autoSize!=="none"||e.yScrollShape.hasLocalVariable("job"))return;const r=e.width;if(t=pt(t,0,r,0),e.scrollX!==t){if(e.textWidth>r){K(e);const n=e.xScrollShape;n.width=r*r/e.textWidth;const s=e.parent;if(s){n.hasLocalVariable("job")&&n.getLocalVariable("job").stop(),n.alpha=.9,n.x=e.x+1+(r-1-n.width)/(r-1)*(t-1),n.y=e.y+e.height-n.height-.5,s.addChildAt(n,s.getChildIndex(e)+1);const i=gn.add(n,{alpha:.9},{alpha:0},.5,.2,Ye.outQuad);i.addEventListener(x.COMPLETE,a=>{const o=a.target.target;o.deleteLocalVariable("job"),o.parent&&o.parent.removeChild(o)}),i.start(),n.setLocalVariable("job",i)}e.$scrollX=t}e.willTrigger(x.SCROLL)&&e.dispatchEvent(new x(x.SCROLL,!0))}},jl=(e,t)=>{if(!e.scrollEnabled||e.autoSize!=="none"||!e.multiline&&!e.wordWrap||e.xScrollShape.hasLocalVariable("job"))return;const r=e.height;if(t=pt(t,0,r,0),e.scrollY!==t){if(e.textHeight>r){K(e);const n=e.yScrollShape;n.height=r*r/e.textHeight;const s=e.parent;if(s){n.hasLocalVariable("job")&&n.getLocalVariable("job").stop(),n.alpha=.9,n.x=e.x+e.width-n.width-.5,n.y=e.y+.5+(r-1-n.height)/(r-1)*(t-1),s.addChildAt(n,s.getChildIndex(e)+1);const i=gn.add(n,{alpha:.9},{alpha:0},.5,.2,Ye.outQuad);i.addEventListener(x.COMPLETE,a=>{const o=a.target.target;o.deleteLocalVariable("job"),o.parent&&o.parent.removeChild(o)}),i.start(),n.setLocalVariable("job",i),e.$scrollY=t}}e.willTrigger(x.SCROLL)&&e.dispatchEvent(new x(x.SCROLL,!0))}},eu=e=>{let t="";const r=H(e);for(let n=1;n<r.textTable.length;++n){const s=r.textTable[n];if(s)switch(s.mode){case"text":t+=s.text;break;case"break":t+="\r";break;default:continue}}return t},tu=(e,t)=>{let r="";const n=H(e);for(let s=1;s<n.textTable.length;s++){const i=n.textTable[s];if(i){if(i.line>t)break;i.line===t&&i.mode==="text"&&(r+=i.text)}}return r},ru=(e,t,r,n)=>{if(0>r||r>n)return;const s=e.text,i=r?s.slice(0,r):"";e.text=i+t+s.slice(n,s.length)},nu=async e=>{if(e.focusIndex===-1||e.selectIndex===-1)return;let t="";const r=Math.min(e.focusIndex,e.selectIndex),n=Math.max(e.focusIndex,e.selectIndex)+1,s=H(e);for(let i=r;i<n;++i){const a=s.textTable[i];if(a)switch(a.mode){case"text":t+=a.text;break;case"break":t+=`
2339
+ `);for(let n=0;n<r.length;++n){const s=r[n].split(":");t.push({name:s[0].trim(),value:s[1].trim()})}}return t},Dt=new WeakMap,we=new WeakMap,ge=new Set,co=new WeakMap,Rr=document.createElement("canvas");Rr.width=Rr.height=1;const Ie=Rr.getContext("2d"),Or=e=>Ie?(Ie.fillStyle=e,+`0x${Ie.fillStyle.slice(1)}`):0,me=(e,t,r,n=null)=>{const s=+e;return isNaN(s)&&n!==null?n:Math.min(Math.max(t,isNaN(s)?0:s),r)},kr=[],Ur=[],Ue=new Map;let Ms=null;const Bs=e=>{Ms=e},lo=()=>Ms,_=e=>{if(e.$matrix)return e.$matrix.rawData;const t=tr(e);if(!t||!t.matrix)return null;if(!t.typedMatrix){const r=t.matrix;t.typedMatrix=je(r[0],r[1],r[2],r[3],r[4],r[5])}return t.typedMatrix},uo=e=>{const t=_(e);let r=t||xt,n=e.parent;for(;n;){const s=_(n);s&&(r=T.multiply(s,r)),n=n.parent}return new T(r[0],r[1],r[2],r[3],r[4],r[5])},Ve=e=>{if(e.$colorTransform)return e.$colorTransform.rawData;const t=tr(e);if(!t||!t.colorTransform)return null;if(!t.typedColorTransform){const r=t.colorTransform;t.typedColorTransform=_t(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7])}return t.typedColorTransform},ho=e=>{if(e.$alpha!==null)return e.$alpha;if(e.$colorTransform){const r=e.$colorTransform.rawData;return r[3]+r[7]/255}const t=Ve(e);return t?t[3]+t[7]/255:1},fo=(e,t)=>{if(t=me(t,0,1),e.$alpha===t)return;e.$alpha=t;let r=e.$colorTransform;if(!r){const n=Ve(e);r=n?new U(...n):new U}r.alphaMultiplier=t,r.alphaOffset=0,e.$colorTransform=r,j(e)};class Fe{$updated;constructor(){this.$updated=!0}canApplyFilter(){return!0}getBounds(t){return t}}const F=(e,t,r,n=null)=>{const s=+e;return isNaN(s)&&n!==null?n:Math.min(Math.max(t,isNaN(s)?0:s),r)},Gr=document.createElement("canvas");Gr.width=Gr.height=1;const Sr=Gr.getContext("2d"),Oe=e=>Sr?(Sr.fillStyle=e,+`0x${Sr.fillStyle.slice(1)}`):0,cn=Math.PI/180,ln=e=>{switch(e){case"full":return 0;case"inner":return 1;case"outer":return 2;default:return 0}},Ts=e=>e.strength>0&&e.distance!==0&&e.blurX>0&&e.blurY>0&&e.quality>0,Ss=e=>e.blurX>0&&e.blurY>0&&e.quality>0,Ao=[.5,1.05,1.4,1.55,1.75,1.9,2,2.15,2.2,2.3,2.5,3,3,3.5,3.5],st=(e,t)=>{if(!Ss(e))return t;const r=Ao[e.quality-1],n=Math.round(e.blurX*r),s=Math.round(e.blurY*r);return t[0]-=n,t[2]+=n,t[1]-=s,t[3]+=s,t},po=(e,t)=>{if(!Ts(e)||e.type==="inner")return t;st(e,t);const r=e.angle*cn,n=e.distance,s=Math.abs(Math.cos(r)*n),i=Math.abs(Math.sin(r)*n);return t[0]-=s,t[2]+=s,t[1]-=i,t[3]+=i,t},mo=e=>[e.$filterType,e.distance,e.angle,e.highlightColor,e.highlightAlpha,e.shadowColor,e.shadowAlpha,e.blurX,e.blurY,e.strength,e.quality,e.type,e.knockout],go=e=>new Float32Array([e.$filterType,e.distance,e.angle,e.highlightColor,e.highlightAlpha,e.shadowColor,e.shadowAlpha,e.blurX,e.blurY,e.strength,e.quality,ln(e.type),+e.knockout]);class rr extends Fe{$filterType=0;_$blurX;_$blurY;_$quality;_$distance;_$angle;_$highlightColor;_$highlightAlpha;_$shadowColor;_$shadowAlpha;_$strength;_$type;_$knockout;constructor(t=4,r=45,n=16777215,s=1,i=0,a=1,o=4,c=4,u=1,h=1,l="inner",f=!1){super(),this._$distance=4,this._$angle=45,this._$highlightColor=16777215,this._$highlightAlpha=1,this._$blurX=4,this._$blurY=4,this._$quality=1,this._$shadowColor=0,this._$shadowAlpha=1,this._$strength=1,this._$type="inner",this._$knockout=!1,this.blurX=o,this.blurY=c,this.quality=h,this.distance=t,this.angle=r,this.highlightColor=n,this.highlightAlpha=s,this.shadowColor=i,this.shadowAlpha=a,this.strength=u,this.type=l,this.knockout=f}get angle(){return this._$angle}set angle(t){t=F(t%360,-360,360,45),t!==this._$angle&&(this._$angle=t,this.$updated=!0)}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get distance(){return this._$distance}set distance(t){t=F(+t,-255,255,4),t!==this._$distance&&(this._$distance=t,this.$updated=!0)}get highlightAlpha(){return this._$highlightAlpha}set highlightAlpha(t){t=F(+t,0,1,0),t!==this._$highlightAlpha&&(this._$highlightAlpha=t,this.$updated=!0)}get highlightColor(){return this._$highlightColor}set highlightColor(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,16777215),t!==this._$highlightColor&&(this._$highlightColor=t,this.$updated=!0)}get knockout(){return this._$knockout}set knockout(t){t=!!t,t!==this._$knockout&&(this._$knockout=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}get shadowAlpha(){return this._$shadowAlpha}set shadowAlpha(t){t=F(t,0,1,0),t!==this._$shadowAlpha&&(this._$shadowAlpha=t,this.$updated=!0)}get shadowColor(){return this._$shadowColor}set shadowColor(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,0),t!==this._$shadowColor&&(this._$shadowColor=t,this.$updated=!0)}get strength(){return this._$strength}set strength(t){t=F(t|0,0,255,0),t!==this._$strength&&(this._$strength=t,this.$updated=!0)}get type(){return this._$type}set type(t){if(t=`${t}`.toLowerCase(),t!==this._$type){switch(t){case"inner":case"outer":case"full":break;default:return}this._$type=t,this.$updated=!0}}clone(){return new rr(this._$distance,this._$angle,this._$highlightColor,this._$highlightAlpha,this._$shadowColor,this._$shadowAlpha,this._$blurX,this._$blurY,this._$strength,this._$quality,this._$type,this._$knockout)}toArray(){return mo(this)}toNumberArray(){return go(this)}canApplyFilter(){return Ts(this)}getBounds(t){return po(this,t)}}const bo=e=>[e.$filterType,e.blurX,e.blurY,e.quality],xo=e=>new Float32Array([e.$filterType,e.blurX,e.blurY,e.quality]);class nr extends Fe{$filterType=1;_$blurX;_$blurY;_$quality;constructor(t=4,r=4,n=1){super(),this._$blurX=4,this._$blurY=4,this._$quality=1,this.blurX=t,this.blurY=r,this.quality=n}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}clone(){return new nr(this._$blurX,this._$blurY,this._$quality)}toArray(){return bo(this)}toNumberArray(){return xo(this)}canApplyFilter(){return Ss(this)}getBounds(t){return st(this,t)}}const yo=e=>[e.$filterType,e.matrix],$o=e=>new Float32Array([e.$filterType,...e.matrix]);class sr extends Fe{$filterType=2;_$matrix;constructor(t=null){super(),this._$matrix=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],t&&t.length===20&&(this.matrix=t)}get matrix(){return this._$matrix}set matrix(t){if(this._$matrix!==t&&!(!Array.isArray(t)||t.length!==20)){for(let r=0;r<20;r++)if(t[r]!==this._$matrix[r]){this.$updated=!0;break}this.$updated&&(this._$matrix=t)}}clone(){return new sr(this._$matrix)}toArray(){return yo(this)}toNumberArray(){return $o(this)}}const vo=e=>e.matrix!==null&&e.matrixX*e.matrixY===e.matrix.length,wo=e=>[e.$filterType,e.matrixX,e.matrixY,e.matrix,e.divisor,e.bias,e.preserveAlpha,e.clamp,e.color,e.alpha],Mo=e=>{const t=e.matrix||[];return new Float32Array([e.$filterType,e.matrixX,e.matrixY,...t,e.divisor,e.bias,+e.preserveAlpha,+e.clamp,e.color,e.alpha])};class ir extends Fe{$filterType=3;_$matrixX;_$matrixY;_$matrix;_$divisor;_$bias;_$preserveAlpha;_$clamp;_$color;_$alpha;constructor(t=0,r=0,n=null,s=1,i=0,a=!0,o=!0,c=0,u=0){super(),this._$matrixX=0,this._$matrixY=0,this._$matrix=null,this._$divisor=1,this._$bias=0,this._$preserveAlpha=!0,this._$clamp=!0,this._$color=0,this._$alpha=0,this.matrixX=t,this.matrixY=r,this.matrix=n,this.divisor=s,this.bias=i,this.preserveAlpha=a,this.clamp=o,this.color=c,this.alpha=u}get alpha(){return this._$alpha}set alpha(t){t=F(+t,0,1,0),t!==this._$alpha&&(this._$alpha=t,this.$updated=!0)}get bias(){return this._$bias}set bias(t){t|=0,t!==this._$bias&&(this._$bias=t,this.$updated=!0)}get clamp(){return this._$clamp}set clamp(t){t=!!t,t!==this._$clamp&&(this._$clamp=t,this.$updated=!0)}get color(){return this._$color}set color(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,0),t!==this._$color&&(this._$color=t,this.$updated=!0)}get divisor(){return this._$divisor}set divisor(t){t|=0,t!==this._$divisor&&(this._$divisor=t,this.$updated=!0)}get matrix(){return this._$matrix}set matrix(t){this._$matrix!==t&&(this._$matrix=t,this.$updated=!0)}get matrixX(){return this._$matrixX}set matrixX(t){t=F(t|0,0,15,0)|0,t!==this._$matrixX&&(this._$matrixX=t,this.$updated=!0)}get matrixY(){return this._$matrixY}set matrixY(t){t=F(t|0,0,15,0)|0,t!==this._$matrixY&&(this._$matrixY=t,this.$updated=!0)}get preserveAlpha(){return this._$preserveAlpha}set preserveAlpha(t){t=!!t,t!==this._$preserveAlpha&&(this._$preserveAlpha=t,this.$updated=!0)}clone(){return new ir(this._$matrixX,this._$matrixY,this._$matrix?this._$matrix.slice():null,this._$divisor,this._$bias,this._$preserveAlpha,this._$clamp,this._$color,this._$alpha)}toArray(){return wo(this)}toNumberArray(){return Mo(this)}canApplyFilter(){return vo(this)}}const Bo=e=>e.bitmapBuffer!==null&&e.componentX>0&&e.componentY>0&&e.scaleX!==0&&e.scaleY!==0,To=e=>[e.$filterType,e.bitmapBuffer?Array.from(e.bitmapBuffer):null,e.bitmapWidth,e.bitmapHeight,e.mapPointX,e.mapPointY,e.componentX,e.componentY,e.scaleX,e.scaleY,e.mode,e.color,e.alpha],So=e=>{let t=2;switch(e.mode){case"clamp":t=0;break;case"color":t=1;break;case"wrap":t=2;break;case"ignore":t=3;break;default:t=2;break}const r=e.bitmapBuffer||new Uint8Array,n=[e.$filterType,r.length];for(let s=0;s<r.length;s+=4096)n.push(...r.subarray(s,s+4096));return n.push(e.bitmapWidth,e.bitmapHeight,e.mapPointX,e.mapPointY,e.componentX,e.componentY,e.scaleX,e.scaleY,t,e.color,e.alpha),new Float32Array(n)};class ar extends Fe{$filterType=4;_$bitmapBuffer;_$bitmapWidth;_$bitmapHeight;_$mapPointX;_$mapPointY;_$componentX;_$componentY;_$scaleX;_$scaleY;_$mode;_$color;_$alpha;constructor(t=null,r=0,n=0,s=0,i=0,a=0,o=0,c=0,u=0,h="wrap",l=0,f=0){super(),this._$bitmapBuffer=null,this._$bitmapWidth=0,this._$bitmapHeight=0,this._$mapPointX=0,this._$mapPointY=0,this._$componentX=0,this._$componentY=0,this._$scaleX=0,this._$scaleY=0,this._$mode="wrap",this._$color=0,this._$alpha=0,this.bitmapBuffer=t,this.bitmapWidth=r,this.bitmapHeight=n,this.mapPointX=s,this.mapPointY=i,this.componentX=a,this.componentY=o,this.scaleX=c,this.scaleY=u,this.mode=h,this.color=l,this.alpha=f}get alpha(){return this._$alpha}set alpha(t){t=F(+t,0,1,0),t!==this._$alpha&&(this._$alpha=t,this.$updated=!0)}get color(){return this._$color}set color(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,0),t!==this._$color&&(this._$color=t,this.$updated=!0)}get componentX(){return this._$componentX}set componentX(t){t!==this._$componentX&&(this._$componentX=t,this.$updated=!0)}get componentY(){return this._$componentY}set componentY(t){t!==this._$componentY&&(this._$componentY=t,this.$updated=!0)}get bitmapBuffer(){return this._$bitmapBuffer}set bitmapBuffer(t){t!==this._$bitmapBuffer&&(this._$bitmapBuffer=t,this.$updated=!0)}get bitmapWidth(){return this._$bitmapWidth}set bitmapWidth(t){t!==this._$bitmapWidth&&(this._$bitmapWidth=t,this.$updated=!0)}get bitmapHeight(){return this._$bitmapHeight}set bitmapHeight(t){t!==this._$bitmapHeight&&(this._$bitmapHeight=t,this.$updated=!0)}get mapPointX(){return this._$mapPointX}set mapPointX(t){t!==this._$mapPointX&&(this._$mapPointX=t,this.$updated=!0)}get mapPointY(){return this._$mapPointY}set mapPointY(t){t!==this._$mapPointY&&(this._$mapPointY=t,this.$updated=!0)}get mode(){return this._$mode}set mode(t){t!==this._$mode&&(this._$mode=t,this.$updated=!0)}get scaleX(){return this._$scaleX}set scaleX(t){t=F(+t,-65535,65535,0),t!==this._$scaleX&&(this._$scaleX=t,this.$updated=!0)}get scaleY(){return this._$scaleY}set scaleY(t){t=F(+t,-65535,65535,0),t!==this._$scaleY&&(this._$scaleY=t,this.$updated=!0)}clone(){return new ar(this._$bitmapBuffer?this._$bitmapBuffer.slice():null,this._$bitmapWidth,this._$bitmapHeight,this._$mapPointX,this._$mapPointX,this._$componentX,this._$componentY,this._$scaleX,this._$scaleY,this._$mode,this._$color,this._$alpha)}toArray(){return To(this)}toNumberArray(){return So(this)}canApplyFilter(){return Bo(this)}}const Io=e=>[e.$filterType,e.distance,e.angle,e.color,e.alpha,e.blurX,e.blurY,e.strength,e.quality,e.inner,e.knockout,e.hideObject],Co=e=>new Float32Array([e.$filterType,e.distance,e.angle,e.color,e.alpha,e.blurX,e.blurY,e.strength,e.quality,+e.inner,+e.knockout,+e.hideObject]),Is=e=>e.alpha>0&&e.strength!==0&&e.blurX>0&&e.blurY>0&&e.quality>0,Fo=(e,t)=>{if(!Is(e)||e.inner)return t;st(e,t);const r=e.angle*cn,n=e.distance,s=Math.cos(r)*n,i=Math.sin(r)*n;return t[0]=Math.min(t[0],s),s>0&&(t[2]+=s),t[1]=Math.min(t[1],i),i>0&&(t[3]+=i),t};class or extends Fe{$filterType=5;_$blurX;_$blurY;_$quality;_$distance;_$angle;_$color;_$alpha;_$strength;_$inner;_$knockout;_$hideObject;constructor(t=4,r=45,n=0,s=1,i=4,a=4,o=1,c=1,u=!1,h=!1,l=!1){super(),this._$blurX=4,this._$blurY=4,this._$quality=1,this._$distance=4,this._$angle=45,this._$color=0,this._$alpha=1,this._$strength=1,this._$inner=!1,this._$knockout=!1,this._$hideObject=!1,this.blurX=i,this.blurY=a,this.quality=c,this.distance=t,this.angle=r,this.color=n,this.alpha=s,this.strength=o,this.inner=u,this.knockout=h,this.hideObject=l}get alpha(){return this._$alpha}set alpha(t){t=F(+t,0,1,0),t!==this._$alpha&&(this._$alpha=t,this.$updated=!0)}get angle(){return this._$angle}set angle(t){t=F(t%360,-360,360,45),t!==this._$angle&&(this._$angle=t,this.$updated=!0)}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get color(){return this._$color}set color(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,0),t!==this._$color&&(this._$color=t,this.$updated=!0)}get distance(){return this._$distance}set distance(t){t=F(+t,-255,255,4),t!==this._$distance&&(this._$distance=t,this.$updated=!0)}get hideObject(){return this._$hideObject}set hideObject(t){t=!!t,t!==this._$hideObject&&(this._$hideObject=t,this.$updated=!0)}get inner(){return this._$inner}set inner(t){t=!!t,t!==this._$inner&&(this._$inner=t,this.$updated=!0)}get knockout(){return this._$knockout}set knockout(t){t=!!t,t!==this._$knockout&&(this._$knockout=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}get strength(){return this._$strength}set strength(t){t=F(t|0,0,255,0),t!==this._$strength&&(this._$strength=t,this.$updated=!0)}clone(){return new or(this._$distance,this._$angle,this._$color,this._$alpha,this._$blurX,this._$blurY,this._$strength,this._$quality,this._$inner,this._$knockout,this._$hideObject)}toArray(){return Io(this)}toNumberArray(){return Co(this)}canApplyFilter(){return Is(this)}getBounds(t){return Fo(this,t)}}const Eo=e=>[e.$filterType,e.color,e.alpha,e.blurX,e.blurY,e.strength,e.quality,e.inner,e.knockout],Po=e=>new Float32Array([e.$filterType,e.color,e.alpha,e.blurX,e.blurY,e.strength,e.quality,+e.inner,+e.knockout]),Cs=e=>e.alpha>0&&e.strength!==0&&e.blurX>0&&e.blurY>0&&e.quality>0,Ro=(e,t)=>!Cs(e)||e.inner?t:st(e,t);class cr extends Fe{$filterType=6;_$blurX;_$blurY;_$quality;_$color;_$alpha;_$strength;_$inner;_$knockout;constructor(t=0,r=1,n=4,s=4,i=1,a=1,o=!1,c=!1){super(),this._$blurX=4,this._$blurY=4,this._$quality=1,this._$color=0,this._$alpha=1,this._$strength=1,this._$inner=!1,this._$knockout=!1,this.blurX=n,this.blurY=s,this.quality=a,this.color=t,this.alpha=r,this.strength=i,this.inner=o,this.knockout=c}get alpha(){return this._$alpha}set alpha(t){t=F(+t,0,1,0),t!==this._$alpha&&(this._$alpha=t,this.$updated=!0)}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get color(){return this._$color}set color(t){t=F(typeof t=="string"?Oe(t):t,0,16777215,4),t!==this._$color&&(this._$color=t,this.$updated=!0)}get inner(){return this._$inner}set inner(t){t=!!t,t!==this._$inner&&(this._$inner=t,this.$updated=!0)}get knockout(){return this._$knockout}set knockout(t){t=!!t,t!==this._$knockout&&(this._$knockout=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}get strength(){return this._$strength}set strength(t){t=F(t|0,0,255,0),t!==this._$strength&&(this._$strength=t,this.$updated=!0)}clone(){return new cr(this._$color,this._$alpha,this._$blurX,this._$blurY,this._$strength,this._$quality,this._$inner,this._$knockout)}toArray(){return Eo(this)}toNumberArray(){return Po(this)}canApplyFilter(){return Cs(this)}getBounds(t){return Ro(this,t)}}const Fs=e=>e.strength>0&&e.distance>0&&e.alphas!==null&&e.ratios!==null&&e.colors!==null&&e.blurX>0&&e.blurY>0&&e.quality>0,Oo=e=>[e.$filterType,e.distance,e.angle,e.colors,e.alphas,e.ratios,e.blurX,e.blurY,e.strength,e.quality,e.type,e.knockout],ko=e=>{const t=e.colors?e.colors:[],r=e.alphas?e.alphas:[],n=e.ratios?e.ratios:[];return new Float32Array([e.$filterType,e.distance,e.angle,t.length,...t,r.length,...r,n.length,...n,e.blurX,e.blurY,e.strength,e.quality,ln(e.type),+e.knockout])},Uo=(e,t)=>{if(!Fs(e)||e.type==="inner")return t;st(e,t);const r=e.angle*cn,n=e.distance,s=Math.abs(Math.cos(r)*n),i=Math.abs(Math.sin(r)*n);return t[0]-=s,t[2]+=s,t[1]-=i,t[3]+=i,t};class lr extends Fe{$filterType=7;_$blurX;_$blurY;_$quality;_$distance;_$angle;_$colors;_$alphas;_$ratios;_$strength;_$type;_$knockout;constructor(t=4,r=45,n=null,s=null,i=null,a=4,o=4,c=1,u=1,h="inner",l=!1){super(),this._$blurX=4,this._$blurY=4,this._$quality=1,this._$distance=4,this._$angle=45,this._$colors=null,this._$alphas=null,this._$ratios=null,this._$strength=1,this._$type="inner",this._$knockout=!1,this.blurX=a,this.blurY=o,this.quality=u,this.distance=t,this.angle=r,this.colors=n,this.alphas=s,this.ratios=i,this.strength=c,this.type=h,this.knockout=l}get alphas(){return this._$alphas}set alphas(t){if(t!==this._$alphas){if(Array.isArray(t))for(let r=0;r<t.length;++r){const n=t[r];t[r]=F(+n,0,1,0)}this._$alphas=t,this.$updated=!0}}get angle(){return this._$angle}set angle(t){t=F(t%360,-360,360,45),t!==this._$angle&&(this._$angle=t,this.$updated=!0)}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get colors(){return this._$colors}set colors(t){if(this._$colors!==t){if(Array.isArray(t))for(let r=0;r<t.length;++r){const n=t[r];t[r]=F(typeof n=="string"?Oe(n):n,0,16777215,0)}this._$colors=t,this.$updated=!0}}get distance(){return this._$distance}set distance(t){t=F(+t,-255,255,4),t!==this._$distance&&(this._$distance=t,this.$updated=!0)}get knockout(){return this._$knockout}set knockout(t){t=!!t,t!==this._$knockout&&(this._$knockout=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}get ratios(){return this._$ratios}set ratios(t){if(this._$ratios!==t){if(Array.isArray(t))for(let r=0;r<t.length;++r){const n=t[r];t[r]=F(+n,0,255,0)}this._$ratios=t,this.$updated=!0}}get strength(){return this._$strength}set strength(t){t=F(t|0,0,255,0),t!==this._$strength&&(this._$strength=t,this.$updated=!0)}get type(){return this._$type}set type(t){t!==this._$type&&(this._$type=t,this.$updated=!0)}clone(){return new lr(this._$distance,this._$angle,this._$colors?this._$colors.slice():null,this._$alphas?this._$alphas.slice():null,this._$ratios?this._$ratios.slice():null,this._$blurX,this._$blurY,this._$strength,this._$quality,this._$type,this._$knockout)}toArray(){return Oo(this)}toNumberArray(){return ko(this)}canApplyFilter(){return Fs(this)}getBounds(t){return Uo(this,t)}}const Go=e=>[e.$filterType,e.distance,e.angle,e.colors,e.alphas,e.ratios,e.blurX,e.blurY,e.strength,e.quality,e.type,e.knockout],Es=e=>e.strength>0&&e.distance>0&&e.alphas!==null&&e.ratios!==null&&e.colors!==null&&e.blurX>0&&e.blurY>0&&e.quality>0,_o=e=>{const t=e.colors?e.colors:[],r=e.alphas?e.alphas:[],n=e.ratios?e.ratios:[];return new Float32Array([e.$filterType,e.distance,e.angle,t.length,...t,r.length,...r,n.length,...n,e.blurX,e.blurY,e.strength,e.quality,ln(e.type),+e.knockout])},Do=(e,t)=>!Es(e)||e.type==="inner"?t:st(e,t);class ur extends Fe{$filterType=8;_$blurX;_$blurY;_$quality;_$distance;_$angle;_$colors;_$alphas;_$ratios;_$strength;_$type;_$knockout;constructor(t=4,r=45,n=null,s=null,i=null,a=4,o=4,c=1,u=1,h="outer",l=!1){super(),this._$blurX=4,this._$blurY=4,this._$quality=1,this._$distance=4,this._$angle=45,this._$colors=null,this._$alphas=null,this._$ratios=null,this._$strength=1,this._$type="outer",this._$knockout=!1,this.blurX=a,this.blurY=o,this.quality=u,this.distance=t,this.angle=r,this.colors=n,this.alphas=s,this.ratios=i,this.strength=c,this.type=h,this.knockout=l}get alphas(){return this._$alphas}set alphas(t){if(t!==this._$alphas){if(Array.isArray(t))for(let r=0;r<t.length;++r){const n=t[r];t[r]=F(+n,0,1,0)}this._$alphas=t,this.$updated=!0}}get angle(){return this._$angle}set angle(t){t=F(t%360,-360,360,45),t!==this._$angle&&(this._$angle=t,this.$updated=!0)}get blurX(){return this._$blurX}set blurX(t){t=F(+t,0,255,0),t!==this._$blurX&&(this._$blurX=t,this.$updated=!0)}get blurY(){return this._$blurY}set blurY(t){t=F(+t,0,255,0),t!==this._$blurY&&(this._$blurY=t,this.$updated=!0)}get colors(){return this._$colors}set colors(t){if(this._$colors!==t){if(Array.isArray(t))for(let r=0;r<t.length;++r){const n=t[r];t[r]=F(typeof n=="string"?Oe(n):n,0,16777215,0)}this._$colors=t,this.$updated=!0}}get distance(){return this._$distance}set distance(t){t=F(+t,-255,255,4),t!==this._$distance&&(this._$distance=t,this.$updated=!0)}get knockout(){return this._$knockout}set knockout(t){t=!!t,t!==this._$knockout&&(this._$knockout=t,this.$updated=!0)}get quality(){return this._$quality}set quality(t){t=F(t|0,0,15,1),t!==this._$quality&&(this._$quality=t,this.$updated=!0)}get ratios(){return this._$ratios}set ratios(t){if(this._$ratios!==t){if(Array.isArray(t))for(let r=0;r<t.length;++r)t[r]=F(+t[r],0,255,0);this._$ratios=t,this.$updated=!0}}get strength(){return this._$strength}set strength(t){t=F(t|0,0,255,0),t!==this._$strength&&(this._$strength=t,this.$updated=!0)}get type(){return this._$type}set type(t){t!==this._$type&&(this._$type=t,this.$updated=!0)}clone(){return new ur(this._$distance,this._$angle,this._$colors,this._$alphas,this._$ratios,this._$blurX,this._$blurY,this._$strength,this._$quality,this._$type,this._$knockout)}toArray(){return Go(this)}toNumberArray(){return _o(this)}canApplyFilter(){return Es(this)}getBounds(t){return Do(this,t)}}const Lo=e=>{const t=z();for(let r=0;r<e.length;++r){const n=e[r];if(n)switch(n.params[0]===null&&n.params.shift(),n.class){case"BevelFilter":t.push(new rr(...n.params));break;case"BlurFilter":t.push(new nr(...n.params));break;case"ColorMatrixFilter":t.push(new sr(...n.params));break;case"ConvolutionFilter":t.push(new ir(...n.params));break;case"DisplacementMapFilter":t.push(new ar(...n.params));break;case"DropShadowFilter":t.push(new or(...n.params));break;case"GlowFilter":t.push(new cr(...n.params));break;case"GradientBevelFilter":t.push(new lr(...n.params));break;case"GradientGlowFilter":t.push(new ur(...n.params));break}}return t},No=e=>{if(e.$filters)return e.$filters;const t=tr(e);return t&&t.surfaceFilterList?(t.filters||(t.filters=Lo(t.surfaceFilterList)),t.filters):null},Yo=(e,t)=>{e.$filters=t,j(e)},Wo=e=>{if(e.$blendMode)return e.$blendMode;const t=tr(e);return t&&t.blendMode?t.blendMode:"normal"},Vo=(e,t)=>{e.$blendMode!==t&&(e.$blendMode=t,j(e))},Ko=180/Math.PI,Qo=e=>{const t=e.$matrix?e.$matrix.rawData:_(e);return t?Math.atan2(t[1],t[0])*Ko:0},Xo=Math.PI/180,zo=(e,t)=>{if(t=me(t%360,-360,360,0),e.$rotation===t)return;let r=e.$matrix;if(!r){const i=_(e);e.$matrix=r=i?new T(...i):new T}const n=Math.sqrt(r.a*r.a+r.b*r.b),s=Math.sqrt(r.c*r.c+r.d*r.d);if(t===0)r.a=n,r.b=0,r.c=0,r.d=s;else{let i=Math.atan2(r.b,r.a),a=Math.atan2(-r.c,r.d);const o=t*Xo;a=a+o-i,i=o,r.b=n*Math.sin(i),r.b===1||r.b===-1?r.a=0:r.a=n*Math.cos(i),r.c=-s*Math.sin(a),r.c===1||r.c===-1?r.d=0:r.d=s*Math.cos(a)}e.$scaleX=null,e.$scaleY=null,e.$rotation=t,j(e)},Ho=e=>{const t=e.$matrix?e.$matrix.rawData:_(e);if(!t)return 1;const n=(Math.abs(t[0])>=1e-12?Math.sign(t[0]):Math.sign(t[1]))||1,s=Math.hypot(t[0],t[1]);return Math.round(s*n*1e4)/1e4},Ps=(e,t)=>{t=me(t,-Number.MAX_VALUE,Number.MAX_VALUE,1);const r=Math.round(t*1e4)/1e4;if(e.$scaleX===r)return;let n=e.$matrix;if(!n){const s=_(e);e.$matrix=n=s?new T(...s):new T}if(n.b===0||isNaN(n.b))n.a=r;else{const i=Math.atan2(n.b,n.a),a=Math.hypot(n.a,n.b),o=(Math.abs(n.a)>=1e-12?Math.sign(n.a):Math.sign(n.b))||1,h=(a*o>=0?i:i-Math.PI)+(r<0?Math.PI:0),l=Math.abs(r);n.a=l*Math.cos(h),n.b=l*Math.sin(h)}e.$scaleX=r,e.$rotation=null,j(e)},Jo=e=>{const t=e.$matrix?e.$matrix.rawData:_(e);if(!t)return 1;const r=1e-12,n=Math.hypot(t[0],t[1]),s=(Math.abs(t[0])>=r?Math.sign(t[0]):Math.sign(t[1]))||1;return Math.round((t[0]*t[3]-t[1]*t[2])/(n*s)*1e4)/1e4},Rs=(e,t)=>{t=me(t,-Number.MAX_VALUE,Number.MAX_VALUE,1);const r=Math.round(t*1e4)/1e4;if(e.$scaleY===r)return;let n=e.$matrix;if(!n){const s=_(e);e.$matrix=n=s?new T(...s):new T}if(n.c===0||isNaN(n.c))n.d=r;else{const s=Math.max(0,Math.abs(r)),i=1e-12;let a=Math.atan2(n.b,n.a);(n.a<0||Math.abs(n.a)<i&&n.b<0)&&(a-=Math.PI),a<=-Math.PI&&(a+=2*Math.PI),a>Math.PI&&(a-=2*Math.PI);const o=a+(r<0?Math.PI:0);n.c=-s*Math.sin(o),n.d=s*Math.cos(o)}e.$scaleY=r,e.$rotation=null,j(e)},Zo=e=>{const t=e.$matrix?e.$matrix.rawData:_(e);return t?t[4]:0},qo=(e,t)=>{let r=e.$matrix;if(!r){const n=_(e);e.$matrix=r=n?new T(...n):new T}e.$x!==t&&(e.$x=r.tx=t,j(e))},jo=e=>{const t=e.$matrix?e.$matrix.rawData:_(e);return t?t[5]:0},ec=(e,t)=>{let r=e.$matrix;if(!r){const n=_(e);e.$matrix=r=n?new T(...n):new T}e.$y!==t&&(e.$y=r.ty=t,j(e))},he=(e,t,r,n,s)=>{const i=s[0],a=s[1],o=s[2],c=s[3],u=s[4],h=s[5],l=r*i+n*o+u,f=r*i+t*o+u,A=e*i+n*o+u,d=e*i+t*o+u,y=r*a+n*c+h,g=r*a+t*c+h,p=e*a+n*c+h,$=e*a+t*c+h;return re(Math.min(l,f,A,d),Math.min(y,g,p,$),Math.max(l,f,A,d),Math.max(y,g,p,$))},Os=e=>{const t=e.graphics;return re(t.xMin,t.yMin,t.xMax,t.yMax)},wt=(e,t=null)=>{const r=Os(e),n=_(e);if(!n){if(t){const i=he(r[0],r[1],r[2],r[3],t);return k(r),i}return r}const s=he(r[0],r[1],r[2],r[3],t?T.multiply(t,n):n);return k(r),s},ks=e=>re(0,0,e.videoWidth,e.videoHeight),Mt=(e,t=null)=>{const r=ks(e),n=_(e);if(!n){if(t){const i=he(r[0],r[1],r[2],r[3],t);return k(r),i}return r}const s=he(r[0],r[1],r[2],r[3],t?T.multiply(t,n):n);return k(r),s},Us=e=>re(e.xMin,e.yMin,e.xMax,e.yMax),Bt=(e,t=null)=>{const r=Us(e),n=_(e);if(!n){if(t){const i=he(r[0],r[1],r[2],r[3],t);return k(r),i}return r}const s=he(r[0],r[1],r[2],r[3],t?T.multiply(t,n):n);return k(r),s},yt=(e,t=null)=>{const r=e.children;if(!r.length)return re(0,0,0,0);const n=_(e),s=n?t?T.multiply(t,n):n:t,i=Number.MAX_VALUE;let a=i,o=-i,c=i,u=-i;for(let h=0;h<r.length;h++){const l=r[h];if(!l.visible)continue;let f=null;switch(!0){case l.isContainerEnabled:f=yt(l,s);break;case l.isShape:f=wt(l,s);break;case l.isText:f=Bt(l,s);break;case l.isVideo:f=Mt(l,s);break}f&&(a=Math.min(a,f[0]),c=Math.min(c,f[1]),o=Math.max(o,f[2]),u=Math.max(u,f[3]),k(f))}return re(a,c,o,u)},Gs=e=>{switch(!0){case e.isContainerEnabled:return yt(e);case e.isShape:return wt(e);case e.isText:return Bt(e);case e.isVideo:return Mt(e);default:return re(0,0,0,0)}},tc=e=>{const t=Gs(e),r=Math.abs(t[2]-t[0]);switch(k(t),!0){case r===0:case r===1/0:case r===-1/0:return 0;default:return Math.round(r*100)/100}},_s=(e,t=null)=>{const r=e.children;if(!r.length)return re(0,0,0,0);const n=_(e);let s=t;n&&(s=t?T.multiply(t,n):n);const i=Number.MAX_VALUE;let a=i,o=-i,c=i,u=-i;for(let h=0;h<r.length;h++){const l=r[h];if(!l.visible)continue;let f=null;switch(!0){case l.isContainerEnabled:f=_s(l,s);break;case l.isShape:f=wt(l,s);break;case l.isText:f=Bt(l,s);break;case l.isVideo:f=Mt(l,s);break}f&&(a=Math.min(a,f[0]),c=Math.min(c,f[1]),o=Math.max(o,f[2]),u=Math.max(u,f[3]),k(f))}return re(a,c,o,u)},tt=e=>{switch(!0){case e.isContainerEnabled:return _s(e);case e.isShape:return Os(e);case e.isText:return Us(e);case e.isVideo:return ks(e);default:return re(0,0,0,0)}},rc=(e,t)=>{if(t=+t,isNaN(t)||0>t)return;const r=tt(e);let n=Math.abs(r[2]-r[0]);switch(!0){case n===0:case n===1/0:case n===-1/0:return;default:n=Math.round(n*100)/100;break}Ps(e,t/n)},nc=(e,t)=>{const r=e.concatenatedMatrix,n=new ie(t.x*r.a+t.y*r.c+r.tx,t.x*r.b+t.y*r.d+r.ty);return T.release(r.rawData),n},sc=(e,t)=>{const r=e.concatenatedMatrix;r.invert();const n=new ie(t.x*r.a+t.y*r.c+r.tx,t.x*r.b+t.y*r.d+r.ty);return T.release(r.rawData),n},ic=e=>{const t=Gs(e),r=Math.abs(t[3]-t[1]);switch(k(t),!0){case r===0:case r===1/0:case r===-1/0:return 0;default:return Math.round(r*100)/100}},ac=(e,t)=>{if(t=+t,isNaN(t)||0>t)return;const r=tt(e);let n=Math.abs(r[3]-r[1]);switch(!0){case n===0:case n===1/0:case n===-1/0:return;default:n=Math.round(n*100)/100;break}Rs(e,t/n)},oc=e=>{const t=e.parent;t&&t.removeChild(e)},cc=(e,t=null)=>{const r=e.concatenatedMatrix,n=tt(e),s=he(n[0],n[1],n[2],n[3],r.rawData);if(k(n),T.release(r.rawData),!t){const c=new be(s[0],s[1],Math.abs(s[2]-s[0]),Math.abs(s[3]-s[1]));return k(s),c}const i=t.concatenatedMatrix;i.invert();const a=he(s[0],s[1],s[2],s[3],i.rawData);k(s),T.release(i.rawData);const o=new be(a[0],a[1],Math.abs(a[2]-a[0]),Math.abs(a[3]-a[1]));return k(a),o},lc=(e,t)=>{const r=tt(e),n=e.concatenatedMatrix,s=he(r[0],r[1],r[2],r[3],n.rawData);k(r),T.release(n.rawData);const i=tt(t),a=t.concatenatedMatrix,o=he(i[0],i[1],i[2],i[3],a.rawData);k(i),T.release(a.rawData);const c=Math.max(s[0],o[0]),u=Math.max(s[1],o[1]),h=Math.min(s[2],o[2]),l=Math.min(s[3],o[3]);return k(s),k(o),h-c>=0&&l-u>=0};class Xt{_$bitmapData;_$matrix;_$repeat;_$smooth;constructor(t,r=null,n=!0,s=!1){this._$bitmapData=t,this._$matrix=r,this._$repeat=n,this._$smooth=s}clone(){return new Xt(this._$bitmapData.clone(),this._$matrix?this._$matrix.clone():null,this._$repeat,this._$smooth)}toArray(){return z(this._$bitmapData,this._$matrix,this._$repeat,this._$smooth)}}class zt{_$type;_$colors;_$alphas;_$ratios;_$matrix;_$spreadMethod;_$interpolationMethod;_$focalPointRatio;_$colorStops;constructor(t,r,n,s,i=null,a="pad",o="rgb",c=0){this._$type=t,this._$colors=r,this._$alphas=n,this._$ratios=s,this._$matrix=i,this._$spreadMethod=a,this._$interpolationMethod=o,this._$focalPointRatio=c,this._$colorStops=z()}get colorStops(){if(!this._$colorStops.length){const t=Math.min(Math.min(this._$alphas.length,this._$colors.length),this._$ratios.length);for(let r=0;r<t;++r){const n=this._$colors[r],s=typeof n=="string"?Or(n):n;this._$colorStops[r]={ratio:this._$ratios[r]/255,R:s>>>16&255,G:s>>>8&255,B:s&255,A:this._$alphas[r]*255&255}}}return this._$colorStops}toArray(){return z(this._$type,this.colorStops,this._$matrix?this._$matrix.rawData:xt,this._$spreadMethod,this._$interpolationMethod,this._$focalPointRatio)}clone(){return new zt(this._$type,this._$colors.slice(),this._$alphas.slice(),this._$ratios.slice(),this._$matrix?this._$matrix.clone():null,this._$spreadMethod,this._$interpolationMethod,this._$focalPointRatio)}}const uc=(e,t=0,r=0)=>{e.xMin=Math.min(e.xMin,t),e.xMax=Math.max(e.xMax,t),e.yMin=Math.min(e.yMin,r),e.yMax=Math.max(e.yMax,r)},Rn=(e,t=0,r=0,n=0,s=0,i=0,a="none")=>{e.xMin=Math.min(e.xMin,Math.min(t,n)),e.xMax=Math.max(e.xMax,Math.max(t,n)),e.yMin=Math.min(e.yMin,Math.min(r,s)),e.yMax=Math.max(e.yMax,Math.max(r,s));const o=n-t,c=s-r,u=Math.sqrt(o*o+c*c);if(!u)return;const h=o/u,l=c/u,f=-l,A=h,d=i/2,y=Math.min(t+f*d,t-f*d,n+f*d,n-f*d),g=Math.max(t+f*d,t-f*d,n+f*d,n-f*d),p=Math.min(r+A*d,r-A*d,s+A*d,s-A*d),$=Math.max(r+A*d,r-A*d,s+A*d,s-A*d);if(e.xMin=Math.min(e.xMin,y),e.xMax=Math.max(e.xMax,g),e.yMin=Math.min(e.yMin,p),e.yMax=Math.max(e.yMax,$),a==="round"||a==="square"){const w=t+d*-h,I=r+d*-l,P=Math.min(w+d*h+d*f,w-d*h+d*f,w+d*h-d*f,w-d*h-d*f),W=Math.max(w+d*h+d*f,w-d*h+d*f,w+d*h-d*f,w-d*h-d*f),C=Math.min(I+d*l+d*A,I+d*l-d*A,I-d*l-d*A,I-d*l+d*A),R=Math.max(I+d*l+d*A,I+d*l-d*A,I-d*l-d*A,I-d*l+d*A);e.xMin=Math.min(e.xMin,P),e.xMax=Math.max(e.xMax,W),e.yMin=Math.min(e.yMin,C),e.yMax=Math.max(e.yMax,R)}},ot=(e,t,r=0,n=0,s=0,i="none",...a)=>{for(let o=0;o<a.length;){const c=a[o++],u=a[o++];uc(e,c,u),t&&(Rn(e,c,u,r,n,s,i),Rn(e,r,n,c,u,s,i))}},ct=(e,t,r,n,s,...i)=>{e.isConfirmed=!1,t&&n&&n.push(...i),r&&s&&s.push(...i)},hc=(e,t,r,n,s)=>{t=+t||0,r=+r||0,n=+n||0,s=+s||0,n=Math.round(n),s=Math.round(s);const i=n/2,a=s/2,o=t+i,c=r+a,u=t+n,h=r+s,l=4/3*(Math.SQRT2-1),f=l*i,A=l*a;return e.moveTo(o,r).cubicCurveTo(o+f,r,u,c-A,u,c).cubicCurveTo(u,c+A,o+f,h,o,h).cubicCurveTo(o-f,h,t,c+A,t,c).cubicCurveTo(t,c-A,o-f,r,o,r)},fc=(e,t,r,n,s)=>{t=+t||0,r=+r||0,n=+n||0,s=+s||0;const i=Math.round(t+n),a=Math.round(r+s);return e.moveTo(t,r).lineTo(t,a).lineTo(i,a).lineTo(i,r).lineTo(t,r)},dc=(e,t,r,n,s,i,a=NaN)=>{t=+t||0,r=+r||0,n=+n||0,s=+s||0,i=+i||0,a=+a||i,n=Math.round(n),s=Math.round(s),i=Math.round(i),a=Math.round(a);const o=i/2,c=a/2,u=4/3*(Math.SQRT2-1),h=u*o,l=u*c,f=t+o,A=t+n,d=A-o,y=r+c,g=r+s,p=g-c;return e.moveTo(f,r).lineTo(d,r).cubicCurveTo(d+h,r,A,y-l,A,y).lineTo(A,p).cubicCurveTo(A,p+l,d+h,g,d,g).lineTo(f,g).cubicCurveTo(f-h,g,t,p+l,t,p).lineTo(t,y).cubicCurveTo(t,y-l,f-h,r,f,r)},Lt=e=>{if(!e)return[];const t=z();for(let r=0;r<e.length;){const n=e[r++];switch(t.push(n),n){case M.BEGIN_PATH:case M.END_FILL:case M.END_STROKE:case M.CLOSE_PATH:break;case M.MOVE_TO:case M.LINE_TO:t.push(e[r++],e[r++]);break;case M.CURVE_TO:case M.FILL_STYLE:t.push(e[r++],e[r++],e[r++],e[r++]);break;case M.CUBIC:t.push(e[r++],e[r++],e[r++],e[r++],e[r++],e[r++]);break;case M.STROKE_STYLE:{switch(t.push(e[r++]),e[r++]){case"none":t.push(0);break;case"round":t.push(1);break;case"square":t.push(2);break;default:t.push(0);break}switch(e[r++]){case"bevel":t.push(0);break;case"miter":t.push(1);break;case"round":t.push(2);break;default:t.push(2);break}t.push(e[r++],e[r++],e[r++],e[r++],e[r++])}break;case M.ARC:t.push(e[r++],e[r++],e[r++]);break;case M.GRADIENT_FILL:{const s=e[r++],i=e[r++],a=e[r++],o=e[r++],c=e[r++],u=e[r++];t.push(s==="linear"?0:1),t.push(i.length);const h=i.sort((l,f)=>l.ratio-f.ratio);for(let l=0;l<h.length;++l){const f=h[l];t.push(f.ratio,f.R,f.G,f.B,f.A)}switch(t.push(...a),o){case"reflect":t.push(0);break;case"repeat":t.push(1);break;default:t.push(2);break}t.push(c==="linearRGB"?0:1),t.push(u)}break;case M.GRADIENT_STROKE:{switch(t.push(e[r++]),e[r++]){case"none":t.push(0);break;case"round":t.push(1);break;case"square":t.push(2);break;default:t.push(0);break}switch(e[r++]){case"bevel":t.push(0);break;case"miter":t.push(1);break;case"round":t.push(2);break;default:t.push(2);break}t.push(e[r++]);const a=e[r++],o=e[r++],c=e[r++],u=e[r++],h=e[r++],l=e[r++];t.push(a==="linear"?0:1),t.push(o.length);for(let f=0;f<o.length;++f){const A=o[f];t.push(A.ratio,A.R,A.G,A.B,A.A)}switch(t.push(...c),u){case"reflect":t.push(0);break;case"repeat":t.push(1);break;default:t.push(2);break}t.push(h==="linearRGB"?0:1),t.push(l)}break;case M.BITMAP_FILL:{const s=e[r++],i=s.buffer;if(!i){r+=3;break}t.push(s.width,s.height,i.length);for(let u=0;u<i.length;u+=4096)t.push(...i.subarray(u,u+4096));const a=e[r++];a?t.push(...a.rawData):t.push(1,0,0,1,0,0);const o=e[r++];t.push(o?1:0);const c=e[r++];t.push(c?1:0)}break;case M.BITMAP_STROKE:{switch(t.push(e[r++]),e[r++]){case"none":t.push(0);break;case"round":t.push(1);break;case"square":t.push(2);break;default:t.push(0);break}switch(e[r++]){case"bevel":t.push(0);break;case"miter":t.push(1);break;case"round":t.push(2);break;default:t.push(2);break}t.push(e[r++]);const a=e[r++],o=a.buffer;if(!o){r+=3;break}t.push(a.width,a.height,o.length);for(let l=0;l<o.length;l+=4096)t.push(...o.subarray(l,l+4096));const c=e[r++];c?t.push(...c.rawData):t.push(1,0,0,1,0,0);const u=e[r++];t.push(u?1:0);const h=e[r++];t.push(h?1:0)}break}}return t};class M{isConfirmed;xMin;yMin;xMax;yMax;$recodes;_$buffer;_$maxAlpha;_$isBeginning;_$positionX;_$positionY;_$hasFillEnabled;_$fillType;_$fillColor;_$fillGradient;_$fillBitmap;_$fills;_$hasLineEnabled;_$lineType;_$lineColor;_$lineGradient;_$joints;_$miterLimit;_$caps;_$lineWidth;_$lines;constructor(){this.isConfirmed=!1,this.xMin=Number.MAX_VALUE,this.yMin=Number.MAX_VALUE,this.xMax=-Number.MAX_VALUE,this.yMax=-Number.MAX_VALUE,this.$recodes=null,this._$buffer=null,this._$positionX=0,this._$positionY=0,this._$maxAlpha=0,this._$isBeginning=!1,this._$fills=null,this._$hasFillEnabled=!1,this._$fillType=0,this._$fillGradient=null,this._$fillBitmap=null,this._$fillColor=0,this._$caps="none",this._$lineWidth=1,this._$lines=null,this._$hasLineEnabled=!1,this._$lineType=0,this._$lineGradient=null,this._$joints="round",this._$miterLimit=0,this._$lineColor=0}static get MOVE_TO(){return 0}static get CURVE_TO(){return 1}static get LINE_TO(){return 2}static get CUBIC(){return 3}static get ARC(){return 4}static get FILL_STYLE(){return 5}static get STROKE_STYLE(){return 6}static get END_FILL(){return 7}static get END_STROKE(){return 8}static get BEGIN_PATH(){return 9}static get GRADIENT_FILL(){return 10}static get GRADIENT_STROKE(){return 11}static get CLOSE_PATH(){return 12}static get BITMAP_FILL(){return 13}static get BITMAP_STROKE(){return 14}get isDrawable(){if(!this._$isBeginning||!this._$maxAlpha)return!1;const t=Math.abs(this.xMax-this.xMin),r=Math.abs(this.yMax-this.yMin);return t>0&&r>0}beginBitmapFill(t,r=null,n=!0,s=!1){return this._$hasFillEnabled&&this.endFill(),this._$fills||(this._$fills=z()),this._$maxAlpha=1,this._$hasFillEnabled=!0,this._$isBeginning=!0,this._$fills.push(M.BEGIN_PATH),this._$fillType=M.BITMAP_FILL,this._$fillBitmap=new Xt(t,r,n,s),this}beginFill(t=0,r=1){this._$hasFillEnabled&&this.endFill(),this._$fills||(this._$fills=z()),typeof t=="string"&&(t=Or(t)),t=me(t,0,16777215,0),r=me(r,0,1,1),this._$maxAlpha=Math.max(this._$maxAlpha,r),this._$hasFillEnabled=!0,this._$isBeginning=!0,this._$fills.push(M.BEGIN_PATH),this._$fillType=M.FILL_STYLE;const n=t>>>16&255,s=t>>>8&255,i=t&255;return this._$fillColor=n<<24|s<<16|i<<8|r*255,this}beginGradientFill(t,r,n,s,i=null,a="pad",o="rgb",c=0){this._$hasFillEnabled&&this.endFill(),this._$fills||(this._$fills=z());for(let u=0;u<n.length;++u)this._$maxAlpha=Math.max(this._$maxAlpha,n[u]);return this._$hasFillEnabled=!0,this._$isBeginning=!0,this._$fills.push(M.BEGIN_PATH),this._$fillType=M.GRADIENT_FILL,this._$fillGradient=new zt(t,r,n,s,i,a,o,c),this}clear(){return this._$maxAlpha=0,this._$isBeginning=!1,this._$positionX=0,this._$positionY=0,this._$fillType=0,this._$fillGradient=null,this._$fillBitmap=null,this._$fillColor=0,this._$hasFillEnabled=!1,this._$caps="none",this._$lineWidth=1,this._$lineType=0,this._$lineGradient=null,this._$joints="round",this._$miterLimit=0,this._$lineColor=0,this._$hasLineEnabled=!1,this.xMin=Number.MAX_VALUE,this.xMax=-Number.MAX_VALUE,this.yMin=Number.MAX_VALUE,this.yMax=-Number.MAX_VALUE,this.$recodes&&oe(this.$recodes),this._$fills&&oe(this._$fills),this._$lines&&oe(this._$lines),this._$buffer=null,this.$recodes=null,this._$fills=null,this._$lines=null,this}clone(){const t=new M;return t.copyFrom(this),t}copyFrom(t){t._$fillGradient&&(this._$fillGradient=t._$fillGradient.clone()),t._$fillBitmap&&(this._$fillBitmap=t._$fillBitmap.clone()),this._$hasFillEnabled=t._$hasFillEnabled,this._$fillType=t._$fillType,this._$fillColor=t._$fillColor,t._$lineGradient&&(this._$lineGradient=t._$lineGradient.clone()),this._$hasLineEnabled=t._$hasLineEnabled,this._$lineType=t._$lineType,this._$caps=t._$caps,this._$joints=t._$joints,this._$miterLimit=t._$miterLimit,this._$lineWidth=t._$lineWidth,this._$lineColor=t._$lineColor,this.xMin=t.xMin,this.xMax=t.xMax,this.yMin=t.yMin,this.yMax=t.yMax,this._$maxAlpha=t._$maxAlpha,this._$positionX=t._$positionX,this._$positionY=t._$positionY,this._$isBeginning=t._$isBeginning,t._$fills&&(this._$fills=t._$fills.slice(0)),t._$lines&&(this._$lines=t._$lines.slice(0)),t.$recodes&&(this.$recodes=t.$recodes.slice(0)),this._$buffer=null}cubicCurveTo(t,r,n,s,i,a){return i=+i||0,a=+a||0,this._$positionX===i&&this._$positionY===a?this:(t=+t||0,r=+r||0,n=+n||0,s=+s||0,ot(this,this._$hasLineEnabled,this._$positionX,this._$positionY,this._$lineWidth,this._$caps,t,r,n,s,i,a),ct(this,this._$hasFillEnabled,this._$hasLineEnabled,this._$fills,this._$lines,M.CUBIC,t,r,n,s,i,a),this._$positionX=i,this._$positionY=a,this)}curveTo(t,r,n,s){return n=+n||0,s=+s||0,this._$positionX===n&&this._$positionY===s?this:(t=+t||0,r=+r||0,ot(this,this._$hasLineEnabled,this._$positionX,this._$positionY,this._$lineWidth,this._$caps,t,r,n,s),ct(this,this._$hasFillEnabled,this._$hasLineEnabled,this._$fills,this._$lines,M.CURVE_TO,t,r,n,s),this._$positionX=n,this._$positionY=s,this)}drawCircle(t,r,n){return t=+t||0,r=+r||0,n=+n||0,n=Math.round(n),ot(this,this._$hasLineEnabled,this._$positionX,this._$positionY,this._$lineWidth,this._$caps,t-n,r-n,t+n,r+n),ct(this,this._$hasFillEnabled,this._$hasLineEnabled,this._$fills,this._$lines,M.MOVE_TO,t+n,r,M.ARC,t,r,n),this._$positionX=t,this._$positionY=r,this}drawEllipse(t,r,n,s){return hc(this,t,r,n,s)}drawRect(t,r,n,s){return fc(this,t,r,n,s)}drawRoundRect(t,r,n,s,i,a=NaN){return dc(this,t,r,n,s,i,a)}endFill(){if(!this._$hasFillEnabled||!this._$fills||8>this._$fills.length)return this;switch(this.$recodes||(this.$recodes=z()),(this._$fills[2]!==this._$fills[this._$fills.length-2]||this._$fills[3]!==this._$fills[this._$fills.length-1])&&this._$fills.push(M.LINE_TO,this._$fills[2],this._$fills[3]),this.$recodes.push(...this._$fills),oe(this._$fills),this._$fills=null,this._$fillType){case M.FILL_STYLE:this.$recodes.push(this._$fillType,this._$fillColor>>>24&255,this._$fillColor>>>16&255,this._$fillColor>>>8&255,this._$fillColor&255,M.END_FILL);break;case M.GRADIENT_FILL:this._$fillGradient&&this.$recodes.push(this._$fillType,...this._$fillGradient.toArray());break;case M.BITMAP_FILL:this._$fillBitmap&&this.$recodes.push(this._$fillType,...this._$fillBitmap.toArray());break}return this._$fillType=0,this._$fillColor=0,this._$fillGradient=null,this._$fillBitmap=null,this._$hasFillEnabled=!1,this}endLine(){if(!this._$hasLineEnabled||!this._$lines)return this;switch(this.$recodes||(this.$recodes=z()),this.$recodes.push(...this._$lines),oe(this._$lines),this._$lines=null,this._$lineType){case M.STROKE_STYLE:this.$recodes.push(this._$lineType,this._$lineWidth,this._$caps,this._$joints,this._$miterLimit,this._$lineColor>>>24&255,this._$lineColor>>>16&255,this._$lineColor>>>8&255,this._$lineColor&255,M.END_STROKE);break;case M.GRADIENT_STROKE:this._$lineGradient&&this.$recodes.push(this._$lineType,this._$lineWidth,this._$caps,this._$joints,this._$miterLimit,...this._$lineGradient.toArray());break;case M.BITMAP_STROKE:this._$fillBitmap&&this.$recodes.push(this._$lineType,this._$lineWidth,this._$caps,this._$joints,this._$miterLimit,...this._$fillBitmap.toArray());break}return this._$lineType=0,this._$lineWidth=0,this._$lineGradient=null,this._$lineColor=0,this._$caps="none",this._$joints="round",this._$miterLimit=0,this._$hasLineEnabled=!1,this}lineBitmapStyle(t,r=null,n=!0,s=!1){return this._$hasLineEnabled?(this._$lines||(this._$lines=z()),this._$maxAlpha=1,this._$hasLineEnabled=!0,this._$isBeginning=!0,this._$lines.push(M.BEGIN_PATH),this._$lineType=M.BITMAP_STROKE,this._$fillBitmap=new Xt(t,r,n,s),this):this}lineGradientStyle(t,r,n,s,i=null,a="pad",o="rgb",c=0){if(!this._$hasLineEnabled)return this;this._$lines||(this._$lines=z());for(let u=0;u<n.length;++u)this._$maxAlpha=Math.max(this._$maxAlpha,n[u]);return this._$lines.push(M.BEGIN_PATH),this._$lineType=M.GRADIENT_STROKE,this._$lineGradient=new zt(t,r,n,s,i,a,o,c),this}lineStyle(t=1,r=0,n=1,s="round",i="round",a=3){this._$hasLineEnabled&&this.endLine(),this._$lines||(this._$lines=z()),this._$maxAlpha=Math.max(this._$maxAlpha,n),this._$hasLineEnabled=!0,this._$isBeginning=!0,this._$positionX||this._$positionY?this._$lines.push(M.BEGIN_PATH,M.MOVE_TO,this._$positionX,this._$positionY):this._$lines.push(M.BEGIN_PATH),this._$lineType=M.STROKE_STYLE,typeof r=="string"&&(r=Or(r)),r=me(r,0,16777215,0),n=me(n,0,1,1);const o=r>>>16&255,c=r>>>8&255,u=r&255;return this._$lineColor=o<<24|c<<16|u<<8|n*255,this._$lineWidth=t,this._$caps=`${s}`,this._$joints=`${i}`,this._$joints==="miter"&&(this._$miterLimit=a),this}lineTo(t,r){return t=+t||0,r=+r||0,this._$positionX===t&&this._$positionY===r?this:(ot(this,this._$hasLineEnabled,this._$positionX,this._$positionY,this._$lineWidth,this._$caps,t,r),ct(this,this._$hasFillEnabled,this._$hasLineEnabled,this._$fills,this._$lines,M.LINE_TO,t,r),this._$positionX=t,this._$positionY=r,this)}moveTo(t,r){t=+t||0,r=+r||0,this._$positionX=t,this._$positionY=r,ot(this,this._$hasLineEnabled,this._$positionX,this._$positionY,this._$lineWidth,this._$caps,t,r);let n=!1;return this._$hasFillEnabled&&this._$fills&&this._$fills[this._$fills.length-3]===M.MOVE_TO&&(n=!0,this._$fills[this._$fills.length-2]=t,this._$fills[this._$fills.length-1]=r),this._$hasLineEnabled&&this._$lines&&this._$lines[this._$lines.length-3]===M.MOVE_TO&&(n=!0,this._$lines[this._$lines.length-2]=t,this._$lines[this._$lines.length-1]=r),n||ct(this,this._$hasFillEnabled,this._$hasLineEnabled,this._$fills,this._$lines,M.MOVE_TO,t,r),this}get buffer(){if(this.isConfirmed&&this._$buffer)return this._$buffer;this._$hasLineEnabled&&this.endLine(),this._$hasFillEnabled&&this.endFill();const t=Lt(this.$recodes);return this._$buffer=new Float32Array(t),oe(t),this.isConfirmed=!0,this._$buffer}set buffer(t){this._$buffer=t,this.isConfirmed=!0,this._$isBeginning=!0,this._$maxAlpha=1}}const Ac=(e,t,r)=>{for(let n=0;n<t.length;)switch(t[n++]){case M.BEGIN_PATH:e.beginPath();break;case M.MOVE_TO:e.moveTo(t[n++],t[n++]);break;case M.LINE_TO:e.lineTo(t[n++],t[n++]);break;case M.CURVE_TO:e.quadraticCurveTo(t[n++],t[n++],t[n++],t[n++]);break;case M.FILL_STYLE:n+=4;continue;case M.END_FILL:if(e.isPointInPath(r.x,r.y))return!0;break;case M.STROKE_STYLE:n+=8;continue;case M.END_STROKE:break;case M.CLOSE_PATH:e.closePath();break;case M.CUBIC:e.bezierCurveTo(t[n++],t[n++],t[n++],t[n++],t[n++],t[n++]);break;case M.ARC:e.arc(t[n++],t[n++],t[n++],0,2*Math.PI);break;case M.GRADIENT_FILL:if(e.isPointInPath(r.x,r.y))return!0;n+=6;continue;case M.GRADIENT_STROKE:n+=12;continue;case M.BITMAP_FILL:if(e.isPointInPath(r.x,r.y))return!0;n+=6;continue;case M.BITMAP_STROKE:n+=9;continue}return!1},Nt=(e,t,r,n)=>{const s=e.graphics,i=s.xMax-s.xMin,a=s.yMax-s.yMin;if(i<=0||a<=0)return!1;const o=_(e),c=o?T.multiply(r,o):r;t.beginPath(),t.setTransform(c[0],c[1],c[2],c[3],c[4],c[5]);let u=!1;return s.buffer.length?u=Ac(t,s.buffer,n):(t.moveTo(0,0),t.lineTo(i,0),t.lineTo(i,a),t.lineTo(0,a),t.lineTo(0,0),u=t.isPointInPath(n.x,n.y)),c!==r&&T.release(c),u},Yt=(e,t,r,n)=>{const s=Math.ceil(Math.abs(e.xMax-e.xMin)),i=Math.ceil(Math.abs(e.yMax-e.yMin));if(s<=0||i<=0)return!1;const a=_(e),o=a?T.multiply(r,a):r;return t.setTransform(o[0],o[1],o[2],o[3],o[4],o[5]),t.beginPath(),t.moveTo(0,0),t.lineTo(s,0),t.lineTo(s,i),t.lineTo(0,i),t.lineTo(0,0),o!==r&&T.release(o),t.isPointInPath(n.x,n.y)},Wt=(e,t,r,n)=>{const s=e.videoWidth,i=e.videoHeight;if(s<=0||i<=0)return!1;const a=_(e),o=a?T.multiply(r,a):r;return t.beginPath(),t.setTransform(o[0],o[1],o[2],o[3],o[4],o[5]),t.beginPath(),t.moveTo(0,0),t.lineTo(s,0),t.lineTo(s,i),t.lineTo(0,i),t.lineTo(0,0),o!==r&&T.release(o),t.isPointInPath(n.x,n.y)},He=(e,t,r,n,s=!0)=>{const i=e.children;if(!i.length)return!1;const a=_(e),o=a?T.multiply(r,a):r,c=z(),u=z(),h=so();let l=0,f=0;for(let g=0;g<i.length;++g){const p=i[g];if(p&&!p.isMask){if(p.clipDepth){f=c.length,l=p.clipDepth,c.push(p);continue}p.visible&&(l&&p.placeId>l&&(f=0,l=0),f&&h.set(p.instanceId,f),u.push(p))}}const A=e.mouseChildren&&s;if(e.isSprite&&e.hitArea&&e.hitArea.isSprite){const g=He(e.hitArea,t,o,n,A);return g&&A&&e.mouseEnabled&&(e.buttonMode&&e.useHandCursor&&(n.pointer="pointer"),n.hit||(n.hit=e)),g}let d=!1;const y=e.mask;if(y){let g=!1;switch(!0){case y.isContainerEnabled:g=He(y,t,o,n,A);break;case y.isShape:g=Nt(y,t,o,n);break;case y.isText:g=Yt(y,t,o,n);break;case y.isVideo:g=Wt(y,t,o,n);break}if(!g)return!1}for(;u.length;){const g=u.pop();if(!g||g.isMask)continue;if(h.has(g.instanceId)){const $=h.get(g.instanceId);if(!$)continue;const w=c[$];if(!w)continue;let I=!1;switch(!0){case w.isContainerEnabled:I=He(w,t,o,n,A);break;case w.isShape:I=Nt(w,t,o,n);break;case w.isText:I=Yt(w,t,o,n);break;case w.isVideo:I=Wt(w,t,o,n);break}if(!I)continue}let p=!1;switch(!0){case g.isContainerEnabled:p=He(g,t,o,n,A);break;case g.isShape:p=Nt(g,t,o,n);break;case g.isText:p=Yt(g,t,o,n);break;case g.isVideo:p=Wt(g,t,o,n);break}if(p){if(d=!0,!A)break;if(g.isInteractive&&g.mouseEnabled){if(n.pointer==="auto")switch(!0){case g.isText:g.type==="input"&&(n.pointer="text");break;case g.isSprite:g.buttonMode&&g.useHandCursor&&(n.pointer="pointer");break;default:n.pointer="pointer";break}n.hit||(n.hit=g);break}}}return oe(c),oe(u),io(h),o!==r&&T.release(o),d},Ge={x:0,y:0,pointer:"",hit:null},pc=(e,t,r,n=!1)=>{if(n){const h=e.parent,l=h?h.concatenatedMatrix.rawData:xt;switch(Ie.setTransform(1,0,0,1,0,0),Ie.beginPath(),Ge.x=t,Ge.y=r,Ge.hit=null,!0){case e.isContainerEnabled:return He(e,Ie,l,Ge);case e.isShape:return Nt(e,Ie,l,Ge);case e.isText:return Yt(e,Ie,l,Ge);case e.isVideo:return Wt(e,Ie,l,Ge);default:return!1}}const s=tt(e),i=_(e),a=he(s[0],s[1],s[2],s[3],i||xt);k(s);const o=new be(a[0],a[1],Math.abs(a[2]-a[0]),Math.abs(a[3]-a[1]));k(a);const c=e.parent,u=c?c.globalToLocal(new ie(t,r)):new ie(t,r);return o.containsPoint(u)},mc=e=>{const t=_(e);return t?new T(t[0],t[1],t[2],t[3],t[4],t[5]):new T},gc=e=>{const t=Ve(e);return t?new U(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]):new U};class hr extends nt{instanceId;dictionaryId;isSprite;isInteractive;isContainerEnabled;isTimelineEnabled;isShape;isVideo;isText;placeId;placeObject;characterId;clipDepth;name;startFrame;endFrame;changed;$added;$addedToStage;uniqueKey;$matrix;$colorTransform;$filters;$blendMode;$scaleX;$scaleY;$rotation;$x;$y;$alpha;$cache;_$scale9Grid;_$visible;_$variables;isMask;parent;constructor(){super(),this.instanceId=ys(),this.dictionaryId=-1,this.uniqueKey="",this.isSprite=!1,this.isContainerEnabled=!1,this.isTimelineEnabled=!1,this.isShape=!1,this.isVideo=!1,this.isText=!1,this.isInteractive=!1,this.placeId=-1,this.placeObject=null,this.characterId=-1,this.clipDepth=0,this.name="",this.startFrame=1,this.endFrame=0,this.parent=null,this.isMask=!1,this.changed=!0,this.$added=!1,this.$addedToStage=!1,this.$matrix=null,this.$colorTransform=null,this.$filters=null,this.$blendMode=null,this._$visible=!0,this._$scale9Grid=null,this._$variables=null,this.$x=null,this.$y=null,this.$alpha=null,this.$scaleX=null,this.$scaleY=null,this.$rotation=null,this.$cache=null}get concatenatedMatrix(){return uo(this)}get alpha(){return ho(this)}set alpha(t){fo(this,t)}get blendMode(){return Wo(this)}set blendMode(t){Vo(this,t)}get filters(){return No(this)}set filters(t){Yo(this,t)}get dropTarget(){return lo()}get height(){return ic(this)}set height(t){ac(this,t)}get loaderInfo(){return Dt.has(this)?Dt.get(this):null}get colorTransform(){return gc(this)}set colorTransform(t){this.$colorTransform=t}get matrix(){return mc(this)}set matrix(t){this.$matrix=t}get mouseX(){return this.globalToLocal(bt).x}get mouseY(){return this.globalToLocal(bt).y}get root(){return we.has(this)?we.get(this):null}get rotation(){return this.$rotation===null?Qo(this):this.$rotation}set rotation(t){zo(this,t)}get scale9Grid(){return this._$scale9Grid}set scale9Grid(t){this._$scale9Grid!==t&&(this._$scale9Grid=t,j(this))}get scaleX(){return this.$scaleX===null?Ho(this):this.$scaleX}set scaleX(t){Ps(this,t)}get scaleY(){return this.$scaleY===null?Jo(this):this.$scaleY}set scaleY(t){Rs(this,t)}get visible(){return this._$visible}set visible(t){t=!!t,this._$visible!==t&&(this._$visible=t,j(this))}get width(){return tc(this)}set width(t){rc(this,t)}get x(){return this.$x===null?Zo(this):this.$x}set x(t){qo(this,t)}get y(){return this.$y===null?jo(this):this.$y}set y(t){ec(this,t)}getBounds(t=null){return cc(this,t)}globalToLocal(t){return sc(this,t)}hitTestObject(t){return lc(this,t)}hitTestPoint(t,r,n=!1){return pc(this,t,r,n)}localToGlobal(t){return nc(this,t)}getLocalVariable(t){if(!this._$variables)return null;if(this._$variables.has(t))return this._$variables.get(t)}setLocalVariable(t,r){this._$variables||(this._$variables=new Map),this._$variables.set(t,r)}hasLocalVariable(t){return this._$variables?this._$variables.has(t):!1}deleteLocalVariable(t){this._$variables&&this._$variables.has(t)&&(this._$variables.delete(t),this._$variables.size||(this._$variables=null))}getGlobalVariable(t){return Ue.has(t)?Ue.get(t):null}setGlobalVariable(t,r){Ue.set(t,r)}hasGlobalVariable(t){return Ue.has(t)}deleteGlobalVariable(t){Ue.has(t)&&Ue.delete(t)}clearGlobalVariable(){return Ue.clear()}remove(){oc(this)}$syncLoaderInfo(t){Dt.set(this,t)}}const Ds=e=>{const t=e.children;for(let r=0;r<t.length;++r){const n=t[r];n&&(we.set(n,e.root),ge.add(n.instanceId),n.isContainerEnabled&&Ds(n))}},Ls=e=>{e.$addedToStage||!ge.has(e.instanceId)||(e.$addedToStage=!0,e.willTrigger(x.ADDED_TO_STAGE)&&e.dispatchEvent(new x(x.ADDED_TO_STAGE)))},Ns=e=>{const t=e.children;for(let r=0;r<t.length;++r){const n=t[r];n&&(Ls(n),n.isContainerEnabled&&Ns(n))}},bc=e=>{e.$added||(e.$added=!0,e.willTrigger(x.ADDED)&&e.dispatchEvent(new x(x.ADDED,!0)))},On=(e,t,r=-1)=>{const n=t.parent;n&&n.removeChild(t);const s=e.children;return 0>r?s.push(t):s.splice(r,0,t),e.$container=null,t.parent=e,ge.has(e.instanceId)&&(we.set(t,e.root),ge.add(t.instanceId),t.isContainerEnabled&&Ds(t)),bc(t),ge.has(e.instanceId)&&(Ls(t),t.isContainerEnabled&&Ns(t)),j(t),t},Ys=e=>{const t=e.children;for(let r=0;r<t.length;++r){const n=t[r];n&&(we.delete(n),ge.delete(n.instanceId),n.isVideo&&n.pause(),n.isContainerEnabled&&Ys(n))}},xc=e=>{e.$added&&(e.$added=!1,e.willTrigger(x.REMOVED)&&e.dispatchEvent(new x(x.REMOVED,!0)))},Ws=e=>{!e.$addedToStage||!ge.has(e.instanceId)||(e.$addedToStage=!1,e.willTrigger(x.REMOVED_FROM_STAGE)&&e.dispatchEvent(new x(x.REMOVED_FROM_STAGE)),e.uniqueKey&&O.has(e.uniqueKey)&&O.removeTimer(e.uniqueKey))},un=e=>{const t=e.children;for(let r=0;r<t.length;++r){const n=t[r];n&&(Ws(n),n.isContainerEnabled&&un(n))}},hn=(e,t)=>{const r=t.parent;if(r&&r.instanceId!==e.instanceId)return;const n=e.children,s=n.indexOf(t);s>-1&&n.splice(s,1),e.$container=null,t.hasEventListener(x.ENTER_FRAME)&&t.removeAllEventListener(x.ENTER_FRAME),t.hasEventListener(V.KEY_DOWN)&&t.removeAllEventListener(V.KEY_DOWN),t.hasEventListener(V.KEY_UP)&&t.removeAllEventListener(V.KEY_UP),xc(t),ge.has(e.instanceId)&&(Ws(t),t.isContainerEnabled&&un(t)),ge.has(e.instanceId)&&(we.delete(t),ge.delete(t.instanceId),t.isVideo&&t.pause(),t.isContainerEnabled&&Ys(t)),t.parent=null,j(e)},Vs=(e,t)=>{const r=e.children;return t in r?r[t]:null},yc=(e,t)=>{const r=Vs(e,t);r&&hn(e,r)},$c=(e,t)=>{if(e.instanceId===t.instanceId)return!0;const r=e.children;for(let n=0;n<r.length;++n){const s=r[n];if(s){if(s.instanceId===t.instanceId)return!0;if(s.isContainerEnabled&&s.contains(t))return!0}}return!1},vc=(e,t)=>{if(!t)return null;const r=e.children;for(let n=0;n<r.length;++n){const s=r[n];if(!(!s.name||s.name!==t))return s}return null},wc=(e,t)=>{const r=e.children.slice();if(r.length)for(let n=0;n<t.length;n++){const s=t[n],i=r[s];i&&hn(e,i)}},Mc=(e,t,r)=>{const n=e.getChildIndex(t);if(n===-1||n===r)return;const s=e.children;s.splice(n,1),s.splice(r,0,t),j(e)},Bc=(e,t,r)=>{const n=e.getChildIndex(t),s=e.getChildIndex(r);if(n===-1||s===-1)return;const i=e.children;i[n]=r,i[s]=t,j(e)},Tc=(e,t,r)=>{const n=e.children,s=n[t],i=n[r];!s||!i||(n[t]=i,n[r]=s,j(e))};class fn extends hr{mouseEnabled;isInteractive;constructor(){super(),this.isInteractive=!0,this.mouseEnabled=!0}}class dn extends fn{_$children;_$mask;mouseChildren;$container;isContainerEnabled;constructor(){super(),this.isContainerEnabled=!0,this.mouseChildren=!0,this._$mask=null,this._$children=z(),this.$container=null}get children(){return this._$children}get numChildren(){return this.children.length}get mask(){return this._$mask}set mask(t){t!==this._$mask&&(this._$mask&&(this._$mask.isMask=!1,this._$mask=null),t&&(t.isMask=!0,this._$mask=t),j(this))}addChild(t){return On(this,t)}addChildAt(t,r){return On(this,t,r)}contains(t){return $c(this,t)}getChildAt(t){return Vs(this,t)}getChildByName(t){return vc(this,t)}getChildIndex(t){return this.children.indexOf(t)}removeChild(t){hn(this,t)}removeChildAt(t){yc(this,t)}removeChildren(...t){wc(this,t)}setChildIndex(t,r){Mc(this,t,r)}swapChildren(t,r){Bc(this,t,r)}swapChildrenAt(t,r){Tc(this,t,r)}}class Ks extends nt{name;frame;constructor(t,r){super(),this.name=`${t}`,this.frame=r|0}}class Sc extends nt{id;content;data;url;format;constructor(){super(),this.id=ys(),this.url="",this.content=null,this.data=null,this.format="json"}}const Ic=(e,t=!1,r=null)=>{const n=e.parent?e.parent.globalToLocal(bt):e.globalToLocal(bt);e.$lockCenter=t,e.$offsetX=e.x-n.x,e.$offsetY=e.y-n.y,e.$boundedRect=r,Bs(e)},Cc=e=>{e.$lockCenter=!1,e.$offsetX=0,e.$offsetY=0,e.$boundedRect=null,Bs(null)};class An extends dn{buttonMode;useHandCursor;isSprite;hitArea;_$soundTransform;$offsetX=0;$offsetY=0;$lockCenter=!1;$boundedRect=null;constructor(){super(),this.isSprite=!0,this.buttonMode=!1,this.useHandCursor=!0,this.hitArea=null,this.$offsetX=0,this.$offsetY=0,this.$lockCenter=!1,this.$boundedRect=null,this._$soundTransform=null}get soundTransform(){return this._$soundTransform}set soundTransform(t){this._$soundTransform=t}startDrag(t=!1,r=null){Ic(this,t,r)}stopDrag(){Cc(this)}}const Qs=e=>{e.isBitmap=!1,e.$bitmapBuffer=null,e.graphics.clear(),e.uniqueKey!==""&&O.has(e.uniqueKey)&&(O.removeById(e.uniqueKey),O.$removeIds.push(+e.uniqueKey)),j(e)},Xs=(e,t,r,n)=>{Qs(e),e.isBitmap=!0,e.$bitmapBuffer=n,e.graphics.xMin=0,e.graphics.yMin=0,e.graphics.xMax=t,e.graphics.yMax=r},Fc=(e,t)=>{const r=new Image;r.crossOrigin="anonymous",r.addEventListener("load",()=>{const n=r.width,s=r.height,i=O.getCanvas();i.width=n,i.height=s;const a=i.getContext("2d",{willReadFrequently:!0});a.drawImage(r,0,0,n,s),Xs(e,n,s,new Uint8Array(a.getImageData(0,0,n,s).data)),O.destroy(a),e.hasEventListener(x.COMPLETE)&&e.dispatchEvent(new x(x.COMPLETE))}),r.src=t},Ec=(e,t)=>{const r=e.graphics,n=Math.ceil(Math.abs(t.bounds.xMax-t.bounds.xMin)),s=Math.ceil(Math.abs(t.bounds.yMax-t.bounds.yMin));switch(!0){case t.bitmapId>0:{const a=e.loaderInfo.data?.characters[t.bitmapId];if(!a)break;e.isBitmap=!0,a.imageBuffer||(a.imageBuffer=new Uint8Array(a.buffer),a.buffer=null);const o=Math.ceil(Math.abs(a.bounds.xMax-a.bounds.xMin)),c=Math.ceil(Math.abs(a.bounds.yMax-a.bounds.yMin));if(t.grid){if(t.recodes){const u=t.recodes.slice(0);u.splice(-6,6);const h=new _e(o,c);h.buffer=a.imageBuffer,u.push(M.BITMAP_FILL,h,null,!0,!1,9);const l=Lt(u);r.buffer=new Float32Array(l),oe(u),oe(l)}}else if(n===o&&s===c)e.setBitmapBuffer(Math.ceil(Math.abs(a.bounds.xMax-a.bounds.xMin)),Math.ceil(Math.abs(a.bounds.yMax-a.bounds.yMin)),a.imageBuffer);else{const u=new _e(o,c);if(u.buffer=a.imageBuffer,t.recodes)if(t.recodes[t.recodes.length-10]===M.BITMAP_STROKE){const l=t.recodes.slice(0);l.splice(-5,5),l.push(u,null,!0,!1);const f=Lt(l);r.buffer=new Float32Array(f),oe(l),oe(f)}else r.beginBitmapFill(u).drawRect(0,0,n,s)}}break;case t.inBitmap:{e.isBitmap=!0;const i=t.recodes,a=i[i.length-4];if(n===a.width&&s===a.height)e.setBitmapBuffer(a.width,a.height,a.buffer);else{const o=new _e(a.width,a.height);o.buffer=a.buffer,r.beginBitmapFill(o).drawRect(0,0,n,s)}}break;case"buffer"in t:t.imageBuffer||(t.imageBuffer=new Uint8Array(t.buffer),t.buffer=null),e.setBitmapBuffer(Math.ceil(Math.abs(r.xMax-r.xMin)),Math.ceil(Math.abs(r.yMax-r.yMin)),t.imageBuffer);break;default:t.recodes&&(t.recodeBuffer=new Float32Array(Lt(t.recodes)),oe(t.recodes),t.recodes=null),t.recodeBuffer&&(r.buffer=t.recodeBuffer);break}r.xMin=t.bounds.xMin,r.xMax=t.bounds.xMax,r.yMin=t.bounds.yMin,r.yMax=t.bounds.yMax,t.grid&&(e.scale9Grid=new be(t.grid.x,t.grid.y,t.grid.w,t.grid.h))},Pc=(e,t)=>new Promise(r=>{const n=()=>{e.removeEventListener(x.COMPLETE,n),r()};e.addEventListener(x.COMPLETE,n),e.src=t});class $t extends hr{_$graphics;_$src;isShape;cacheKey;cacheParams;isBitmap;$bitmapBuffer;constructor(){super(),this.isShape=!0,this.cacheKey=0,this.cacheParams=z(0,0,0),this._$graphics=null,this._$src="",this.$bitmapBuffer=null,this.isBitmap=!1}static get namespace(){return"next2d.display.Shape"}get namespace(){return"next2d.display.Shape"}get graphics(){return this._$graphics||(this._$graphics=new M,co.set(this._$graphics,this)),this._$graphics}get src(){return this._$src}set src(t){this._$src!==t&&(this._$src=t,Fc(this,t))}load(t){return Pc(this,t)}get bitmapData(){const t=new _e(this.width,this.height);return this.$bitmapBuffer&&(t.buffer=this.$bitmapBuffer),t}clearBitmapBuffer(){Qs(this)}setBitmapBuffer(t,r,n){Xs(this,t,r,n)}$sync(t,r=null){r&&super.$syncLoaderInfo(r),Ec(this,t)}}let zs=null;const kn=e=>{zs=e},ke=()=>zs,de=document.createElement("textarea");de.tabIndex=-1;let Me="";Me+="position: fixed;";Me+="top: 0;";Me+="left: 0;";Me+="font-size: 16px;";Me+="border: 0;";Me+="resize: none;";Me+="opacity: 0;";Me+="z-index: -1;";Me+="pointer-events: none;";de.setAttribute("style",Me);const _r=document.createElement("canvas");_r.width=_r.height=1;const De=_r.getContext("2d");let Hs=0;const Et=()=>Hs,dt=e=>{Hs=e},Rc=e=>De?(De.fillStyle=e,+`0x${De.fillStyle.slice(1)}`):0,et=e=>isNaN(+e)?Rc(`${e}`):+e,Oc=(e,t=1)=>({R:(e&16711680)>>16,G:(e&65280)>>8,B:e&255,A:t*255}),pt=(e,t,r,n=null)=>{const s=+e;return isNaN(s)&&n!==null?n:Math.min(Math.max(t,isNaN(s)?0:s),r)};let Js;const Ht=()=>Js,Zs=e=>{Js=e},Je={x:0,y:0};class ue{align;bold;color;font;italic;leading;leftMargin;letterSpacing;rightMargin;size;underline;constructor(t=null,r=null,n=null,s=null,i=null,a=null,o=null,c=null,u=null,h=null,l=null){this.font=t,this.size=r,this.color=n,this.bold=s,this.italic=i,this.underline=a,this.align=o,this.leftMargin=c,this.rightMargin=u,this.leading=h,this.letterSpacing=l}clone(){return new ue(this.font,this.size,this.color,this.bold,this.italic,this.underline,this.align,this.leftMargin,this.rightMargin,this.leading,this.letterSpacing)}toObject(){return{font:this.font,size:this.size,color:et(this.color),bold:this.bold,italic:this.italic,underline:this.underline,align:this.align,leftMargin:this.leftMargin,rightMargin:this.rightMargin,leading:this.leading,letterSpacing:this.letterSpacing}}}const kc=e=>{e.align="left",e.bold=!1,e.color=0,e.font="Times New Roman",e.italic=!1,e.leading=0,e.leftMargin=0,e.letterSpacing=0,e.rightMargin=0,e.size=12,e.underline=!1},Uc=e=>{let t="";if(e.font&&(t+=`font-family: ${e.font};`),e.size&&(t+=`font-size: ${e.size}px;`),e.color){const r=Oc(et(e.color)),n=r.R.toString(16).padStart(2,"0"),s=r.G.toString(16).padStart(2,"0"),i=r.B.toString(16).padStart(2,"0");t+=`color: #${n}${s}${i};`}return e.bold&&(t+="font-weight: bold;"),e.italic&&(t+="font-style: italic;"),e.underline&&(t+="text-decoration: underline;"),e.align&&(t+=`text-align: ${e.align};`),e.leftMargin&&(t+=`margin-left: ${e.leftMargin}px;`),e.rightMargin&&(t+=`margin-right: ${e.rightMargin}px;`),e.leading&&(t+=`margin-bottom: ${e.leading}px;`),e.letterSpacing&&(t+=`letter-spacing: ${e.letterSpacing}px;`),t};class Gc{_$textWidth;_$textHeight;heightTable;ascentTable;widthTable;textTable;lineTable;constructor(){this._$textWidth=-1,this._$textHeight=-1,this.widthTable=[],this.heightTable=[],this.ascentTable=[],this.textTable=[],this.lineTable=[]}get textWidth(){if(this._$textWidth!==-1)return this._$textWidth;this._$textWidth=0;for(let t=0;t<this.widthTable.length;++t)this._$textWidth=Math.max(this._$textWidth,this.widthTable[t]);return this._$textWidth}get textHeight(){if(this._$textHeight!==-1)return this._$textHeight;this._$textHeight=0;for(let t=0;t<this.heightTable.length;++t)this._$textHeight+=this.heightTable[t];return this._$textHeight}getLineWidth(t){return t in this.widthTable?this.widthTable[t]:0}getLineHeight(t){return t in this.heightTable?this.heightTable[t]:0}clear(){this._$textWidth=-1,this._$textHeight=-1,this.widthTable.length=0,this.heightTable.length=0,this.ascentTable.length=0,this.textTable.length=0,this.lineTable.length=0}}var Ir;const _c=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Un=(Ir=String.fromCodePoint)!==null&&Ir!==void 0?Ir:(e=>{let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t});function Dc(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=_c.get(e))!==null&&t!==void 0?t:e}function qs(e){const t=typeof atob=="function"?atob(e):typeof Buffer.from=="function"?Buffer.from(e,"base64").toString("binary"):new Buffer(e,"base64").toString("binary"),r=t.length&-2,n=new Uint16Array(r/2);for(let s=0,i=0;s<r;s+=2){const a=t.charCodeAt(s),o=t.charCodeAt(s+1);n[i++]=a|o<<8}return n}const Lc=qs("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg"),Nc=qs("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg");var le;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.FLAG13=8192]="FLAG13",e[e.BRANCH_LENGTH=8064]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(le||(le={}));var X;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(X||(X={}));const Gn=32;function Dr(e){return e>=X.ZERO&&e<=X.NINE}function Yc(e){return e>=X.UPPER_A&&e<=X.UPPER_F||e>=X.LOWER_A&&e<=X.LOWER_F}function Wc(e){return e>=X.UPPER_A&&e<=X.UPPER_Z||e>=X.LOWER_A&&e<=X.LOWER_Z||Dr(e)}function Vc(e){return e===X.EQUALS||Wc(e)}var ne;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(ne||(ne={}));var $e;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})($e||($e={}));class Kc{constructor(t,r,n){this.decodeTree=t,this.emitCodePoint=r,this.errors=n,this.state=ne.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=$e.Strict,this.runConsumed=0}startEntity(t){this.decodeMode=t,this.state=ne.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(t,r){switch(this.state){case ne.EntityStart:return t.charCodeAt(r)===X.NUM?(this.state=ne.NumericStart,this.consumed+=1,this.stateNumericStart(t,r+1)):(this.state=ne.NamedEntity,this.stateNamedEntity(t,r));case ne.NumericStart:return this.stateNumericStart(t,r);case ne.NumericDecimal:return this.stateNumericDecimal(t,r);case ne.NumericHex:return this.stateNumericHex(t,r);case ne.NamedEntity:return this.stateNamedEntity(t,r)}}stateNumericStart(t,r){return r>=t.length?-1:(t.charCodeAt(r)|Gn)===X.LOWER_X?(this.state=ne.NumericHex,this.consumed+=1,this.stateNumericHex(t,r+1)):(this.state=ne.NumericDecimal,this.stateNumericDecimal(t,r))}stateNumericHex(t,r){for(;r<t.length;){const n=t.charCodeAt(r);if(Dr(n)||Yc(n)){const s=n<=X.NINE?n-X.ZERO:(n|Gn)-X.LOWER_A+10;this.result=this.result*16+s,this.consumed++,r++}else return this.emitNumericEntity(n,3)}return-1}stateNumericDecimal(t,r){for(;r<t.length;){const n=t.charCodeAt(r);if(Dr(n))this.result=this.result*10+(n-X.ZERO),this.consumed++,r++;else return this.emitNumericEntity(n,2)}return-1}emitNumericEntity(t,r){var n;if(this.consumed<=r)return(n=this.errors)===null||n===void 0||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===X.SEMI)this.consumed+=1;else if(this.decodeMode===$e.Strict)return 0;return this.emitCodePoint(Dc(this.result),this.consumed),this.errors&&(t!==X.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,r){const{decodeTree:n}=this;let s=n[this.treeIndex],i=(s&le.VALUE_LENGTH)>>14;for(;r<t.length;){if(i===0&&(s&le.FLAG13)!==0){const o=(s&le.BRANCH_LENGTH)>>7;if(this.runConsumed===0){const c=s&le.JUMP_TABLE;if(t.charCodeAt(r)!==c)return this.result===0?0:this.emitNotTerminatedNamedEntity();r++,this.excess++,this.runConsumed++}for(;this.runConsumed<o;){if(r>=t.length)return-1;const c=this.runConsumed-1,u=n[this.treeIndex+1+(c>>1)],h=c%2===0?u&255:u>>8&255;if(t.charCodeAt(r)!==h)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();r++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(o>>1),s=n[this.treeIndex],i=(s&le.VALUE_LENGTH)>>14}if(r>=t.length)break;const a=t.charCodeAt(r);if(a===X.SEMI&&i!==0&&(s&le.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=Qc(n,s,this.treeIndex+Math.max(1,i),a),this.treeIndex<0)return this.result===0||this.decodeMode===$e.Attribute&&(i===0||Vc(a))?0:this.emitNotTerminatedNamedEntity();if(s=n[this.treeIndex],i=(s&le.VALUE_LENGTH)>>14,i!==0){if(a===X.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==$e.Strict&&(s&le.FLAG13)===0&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}r++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var t;const{result:r,decodeTree:n}=this,s=(n[r]&le.VALUE_LENGTH)>>14;return this.emitNamedEntityData(r,s,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,r,n){const{decodeTree:s}=this;return this.emitCodePoint(r===1?s[t]&~(le.VALUE_LENGTH|le.FLAG13):s[t+1],n),r===3&&this.emitCodePoint(s[t+2],n),n}end(){var t;switch(this.state){case ne.NamedEntity:return this.result!==0&&(this.decodeMode!==$e.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case ne.NumericDecimal:return this.emitNumericEntity(0,2);case ne.NumericHex:return this.emitNumericEntity(0,3);case ne.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case ne.EntityStart:return 0}}}function Qc(e,t,r,n){const s=(t&le.BRANCH_LENGTH)>>7,i=t&le.JUMP_TABLE;if(s===0)return i!==0&&n===i?r:-1;if(i){const u=n-i;return u<0||u>=s?-1:e[r+u]-1}const a=s+1>>1;let o=0,c=s-1;for(;o<=c;){const u=o+c>>>1,h=u>>1,f=e[r+h]>>(u&1)*8&255;if(f<n)o=u+1;else if(f>n)c=u-1;else return e[r+a+u]}return-1}var E;(function(e){e[e.Tab=9]="Tab",e[e.NewLine=10]="NewLine",e[e.FormFeed=12]="FormFeed",e[e.CarriageReturn=13]="CarriageReturn",e[e.Space=32]="Space",e[e.ExclamationMark=33]="ExclamationMark",e[e.Number=35]="Number",e[e.Amp=38]="Amp",e[e.SingleQuote=39]="SingleQuote",e[e.DoubleQuote=34]="DoubleQuote",e[e.Dash=45]="Dash",e[e.Slash=47]="Slash",e[e.Zero=48]="Zero",e[e.Nine=57]="Nine",e[e.Semi=59]="Semi",e[e.Lt=60]="Lt",e[e.Eq=61]="Eq",e[e.Gt=62]="Gt",e[e.Questionmark=63]="Questionmark",e[e.UpperA=65]="UpperA",e[e.LowerA=97]="LowerA",e[e.UpperF=70]="UpperF",e[e.LowerF=102]="LowerF",e[e.UpperZ=90]="UpperZ",e[e.LowerZ=122]="LowerZ",e[e.LowerX=120]="LowerX",e[e.OpeningSquareBracket=91]="OpeningSquareBracket"})(E||(E={}));var m;(function(e){e[e.Text=1]="Text",e[e.BeforeTagName=2]="BeforeTagName",e[e.InTagName=3]="InTagName",e[e.InSelfClosingTag=4]="InSelfClosingTag",e[e.BeforeClosingTagName=5]="BeforeClosingTagName",e[e.InClosingTagName=6]="InClosingTagName",e[e.AfterClosingTagName=7]="AfterClosingTagName",e[e.BeforeAttributeName=8]="BeforeAttributeName",e[e.InAttributeName=9]="InAttributeName",e[e.AfterAttributeName=10]="AfterAttributeName",e[e.BeforeAttributeValue=11]="BeforeAttributeValue",e[e.InAttributeValueDq=12]="InAttributeValueDq",e[e.InAttributeValueSq=13]="InAttributeValueSq",e[e.InAttributeValueNq=14]="InAttributeValueNq",e[e.BeforeDeclaration=15]="BeforeDeclaration",e[e.InDeclaration=16]="InDeclaration",e[e.InProcessingInstruction=17]="InProcessingInstruction",e[e.BeforeComment=18]="BeforeComment",e[e.CDATASequence=19]="CDATASequence",e[e.InSpecialComment=20]="InSpecialComment",e[e.InCommentLike=21]="InCommentLike",e[e.BeforeSpecialS=22]="BeforeSpecialS",e[e.BeforeSpecialT=23]="BeforeSpecialT",e[e.SpecialStartSequence=24]="SpecialStartSequence",e[e.InSpecialTag=25]="InSpecialTag",e[e.InEntity=26]="InEntity"})(m||(m={}));function Se(e){return e===E.Space||e===E.NewLine||e===E.Tab||e===E.FormFeed||e===E.CarriageReturn}function Pt(e){return e===E.Slash||e===E.Gt||Se(e)}function Xc(e){return e>=E.LowerA&&e<=E.LowerZ||e>=E.UpperA&&e<=E.UpperZ}var ve;(function(e){e[e.NoValue=0]="NoValue",e[e.Unquoted=1]="Unquoted",e[e.Single=2]="Single",e[e.Double=3]="Double"})(ve||(ve={}));const te={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97]),XmpEnd:new Uint8Array([60,47,120,109,112])};class zc{constructor({xmlMode:t=!1,decodeEntities:r=!0},n){this.cbs=n,this.state=m.Text,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=m.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.xmlMode=t,this.decodeEntities=r,this.entityDecoder=new Kc(t?Nc:Lc,(s,i)=>this.emitCodePoint(s,i))}reset(){this.state=m.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=m.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(t){this.offset+=this.buffer.length,this.buffer=t,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}stateText(t){t===E.Lt||!this.decodeEntities&&this.fastForwardTo(E.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=m.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&t===E.Amp&&this.startEntity()}stateSpecialStartSequence(t){const r=this.sequenceIndex===this.currentSequence.length;if(!(r?Pt(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!r){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=m.InTagName,this.stateInTagName(t)}stateInSpecialTag(t){if(this.sequenceIndex===this.currentSequence.length){if(t===E.Gt||Se(t)){const r=this.index-this.currentSequence.length;if(this.sectionStart<r){const n=this.index;this.index=r,this.cbs.ontext(this.sectionStart,r),this.index=n}this.isSpecial=!1,this.sectionStart=r+2,this.stateInClosingTagName(t);return}this.sequenceIndex=0}(t|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===te.TitleEnd?this.decodeEntities&&t===E.Amp&&this.startEntity():this.fastForwardTo(E.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(t===E.Lt)}stateCDATASequence(t){t===te.Cdata[this.sequenceIndex]?++this.sequenceIndex===te.Cdata.length&&(this.state=m.InCommentLike,this.currentSequence=te.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=m.InDeclaration,this.stateInDeclaration(t))}fastForwardTo(t){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===t)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(t){t===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===te.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=m.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):t!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(t){return this.xmlMode?!Pt(t):Xc(t)}startSpecial(t,r){this.isSpecial=!0,this.currentSequence=t,this.sequenceIndex=r,this.state=m.SpecialStartSequence}stateBeforeTagName(t){if(t===E.ExclamationMark)this.state=m.BeforeDeclaration,this.sectionStart=this.index+1;else if(t===E.Questionmark)this.state=m.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(t)){const r=t|32;this.sectionStart=this.index,this.xmlMode?this.state=m.InTagName:r===te.ScriptEnd[2]?this.state=m.BeforeSpecialS:r===te.TitleEnd[2]||r===te.XmpEnd[2]?this.state=m.BeforeSpecialT:this.state=m.InTagName}else t===E.Slash?this.state=m.BeforeClosingTagName:(this.state=m.Text,this.stateText(t))}stateInTagName(t){Pt(t)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=m.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateBeforeClosingTagName(t){Se(t)||(t===E.Gt?this.state=m.Text:(this.state=this.isTagStartChar(t)?m.InClosingTagName:m.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(t){(t===E.Gt||Se(t))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=m.AfterClosingTagName,this.stateAfterClosingTagName(t))}stateAfterClosingTagName(t){(t===E.Gt||this.fastForwardTo(E.Gt))&&(this.state=m.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(t){t===E.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=m.InSpecialTag,this.sequenceIndex=0):this.state=m.Text,this.sectionStart=this.index+1):t===E.Slash?this.state=m.InSelfClosingTag:Se(t)||(this.state=m.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(t){t===E.Gt?(this.cbs.onselfclosingtag(this.index),this.state=m.Text,this.sectionStart=this.index+1,this.isSpecial=!1):Se(t)||(this.state=m.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateInAttributeName(t){(t===E.Eq||Pt(t))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=this.index,this.state=m.AfterAttributeName,this.stateAfterAttributeName(t))}stateAfterAttributeName(t){t===E.Eq?this.state=m.BeforeAttributeValue:t===E.Slash||t===E.Gt?(this.cbs.onattribend(ve.NoValue,this.sectionStart),this.sectionStart=-1,this.state=m.BeforeAttributeName,this.stateBeforeAttributeName(t)):Se(t)||(this.cbs.onattribend(ve.NoValue,this.sectionStart),this.state=m.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(t){t===E.DoubleQuote?(this.state=m.InAttributeValueDq,this.sectionStart=this.index+1):t===E.SingleQuote?(this.state=m.InAttributeValueSq,this.sectionStart=this.index+1):Se(t)||(this.sectionStart=this.index,this.state=m.InAttributeValueNq,this.stateInAttributeValueNoQuotes(t))}handleInAttributeValue(t,r){t===r||!this.decodeEntities&&this.fastForwardTo(r)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(r===E.DoubleQuote?ve.Double:ve.Single,this.index+1),this.state=m.BeforeAttributeName):this.decodeEntities&&t===E.Amp&&this.startEntity()}stateInAttributeValueDoubleQuotes(t){this.handleInAttributeValue(t,E.DoubleQuote)}stateInAttributeValueSingleQuotes(t){this.handleInAttributeValue(t,E.SingleQuote)}stateInAttributeValueNoQuotes(t){Se(t)||t===E.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(ve.Unquoted,this.index),this.state=m.BeforeAttributeName,this.stateBeforeAttributeName(t)):this.decodeEntities&&t===E.Amp&&this.startEntity()}stateBeforeDeclaration(t){t===E.OpeningSquareBracket?(this.state=m.CDATASequence,this.sequenceIndex=0):this.state=t===E.Dash?m.BeforeComment:m.InDeclaration}stateInDeclaration(t){(t===E.Gt||this.fastForwardTo(E.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=m.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(t){(t===E.Gt||this.fastForwardTo(E.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=m.Text,this.sectionStart=this.index+1)}stateBeforeComment(t){t===E.Dash?(this.state=m.InCommentLike,this.currentSequence=te.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=m.InDeclaration}stateInSpecialComment(t){(t===E.Gt||this.fastForwardTo(E.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=m.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(t){const r=t|32;r===te.ScriptEnd[3]?this.startSpecial(te.ScriptEnd,4):r===te.StyleEnd[3]?this.startSpecial(te.StyleEnd,4):(this.state=m.InTagName,this.stateInTagName(t))}stateBeforeSpecialT(t){switch(t|32){case te.TitleEnd[3]:{this.startSpecial(te.TitleEnd,4);break}case te.TextareaEnd[3]:{this.startSpecial(te.TextareaEnd,4);break}case te.XmpEnd[3]:{this.startSpecial(te.XmpEnd,4);break}default:this.state=m.InTagName,this.stateInTagName(t)}}startEntity(){this.baseState=this.state,this.state=m.InEntity,this.entityStart=this.index,this.entityDecoder.startEntity(this.xmlMode?$e.Strict:this.baseState===m.Text||this.baseState===m.InSpecialTag?$e.Legacy:$e.Attribute)}stateInEntity(){const t=this.index-this.offset,r=this.entityDecoder.write(this.buffer,t);if(r>=0)this.state=this.baseState,r===0&&(this.index-=1);else{if(t<this.buffer.length&&this.buffer.charCodeAt(t)===E.Amp){this.state=this.baseState,this.index-=1;return}this.index=this.offset+this.buffer.length-1}}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===m.Text||this.state===m.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===m.InAttributeValueDq||this.state===m.InAttributeValueSq||this.state===m.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index<this.buffer.length+this.offset&&this.running}parse(){for(;this.shouldContinue();){const t=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case m.Text:{this.stateText(t);break}case m.SpecialStartSequence:{this.stateSpecialStartSequence(t);break}case m.InSpecialTag:{this.stateInSpecialTag(t);break}case m.CDATASequence:{this.stateCDATASequence(t);break}case m.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(t);break}case m.InAttributeName:{this.stateInAttributeName(t);break}case m.InCommentLike:{this.stateInCommentLike(t);break}case m.InSpecialComment:{this.stateInSpecialComment(t);break}case m.BeforeAttributeName:{this.stateBeforeAttributeName(t);break}case m.InTagName:{this.stateInTagName(t);break}case m.InClosingTagName:{this.stateInClosingTagName(t);break}case m.BeforeTagName:{this.stateBeforeTagName(t);break}case m.AfterAttributeName:{this.stateAfterAttributeName(t);break}case m.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(t);break}case m.BeforeAttributeValue:{this.stateBeforeAttributeValue(t);break}case m.BeforeClosingTagName:{this.stateBeforeClosingTagName(t);break}case m.AfterClosingTagName:{this.stateAfterClosingTagName(t);break}case m.BeforeSpecialS:{this.stateBeforeSpecialS(t);break}case m.BeforeSpecialT:{this.stateBeforeSpecialT(t);break}case m.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(t);break}case m.InSelfClosingTag:{this.stateInSelfClosingTag(t);break}case m.InDeclaration:{this.stateInDeclaration(t);break}case m.BeforeDeclaration:{this.stateBeforeDeclaration(t);break}case m.BeforeComment:{this.stateBeforeComment(t);break}case m.InProcessingInstruction:{this.stateInProcessingInstruction(t);break}case m.InEntity:{this.stateInEntity();break}}this.index++}this.cleanup()}finish(){this.state===m.InEntity&&(this.entityDecoder.end(),this.state=this.baseState),this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){const t=this.buffer.length+this.offset;this.sectionStart>=t||(this.state===m.InCommentLike?this.currentSequence===te.CdataEnd?this.cbs.oncdata(this.sectionStart,t,0):this.cbs.oncomment(this.sectionStart,t,0):this.state===m.InTagName||this.state===m.BeforeAttributeName||this.state===m.BeforeAttributeValue||this.state===m.AfterAttributeName||this.state===m.InAttributeName||this.state===m.InAttributeValueSq||this.state===m.InAttributeValueDq||this.state===m.InAttributeValueNq||this.state===m.InClosingTagName||this.cbs.ontext(this.sectionStart,t))}emitCodePoint(t,r){this.baseState!==m.Text&&this.baseState!==m.InSpecialTag?(this.sectionStart<this.entityStart&&this.cbs.onattribdata(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+r,this.index=this.sectionStart-1,this.cbs.onattribentity(t)):(this.sectionStart<this.entityStart&&this.cbs.ontext(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+r,this.index=this.sectionStart-1,this.cbs.ontextentity(t,this.sectionStart))}}const Xe=new Set(["input","option","optgroup","select","button","datalist","textarea"]),D=new Set(["p"]),_n=new Set(["thead","tbody"]),Dn=new Set(["dd","dt"]),Ln=new Set(["rt","rp"]),Hc=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",D],["h1",D],["h2",D],["h3",D],["h4",D],["h5",D],["h6",D],["select",Xe],["input",Xe],["output",Xe],["button",Xe],["datalist",Xe],["textarea",Xe],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",Dn],["dt",Dn],["address",D],["article",D],["aside",D],["blockquote",D],["details",D],["div",D],["dl",D],["fieldset",D],["figcaption",D],["figure",D],["footer",D],["form",D],["header",D],["hr",D],["main",D],["nav",D],["ol",D],["pre",D],["section",D],["table",D],["ul",D],["rt",Ln],["rp",Ln],["tbody",_n],["tfoot",_n]]),Jc=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),Nn=new Set(["math","svg"]),Yn=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),Zc=/\s|\//;class qc{constructor(t,r={}){var n,s,i,a,o,c;this.options=r,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=t??{},this.htmlMode=!this.options.xmlMode,this.lowerCaseTagNames=(n=r.lowerCaseTags)!==null&&n!==void 0?n:this.htmlMode,this.lowerCaseAttributeNames=(s=r.lowerCaseAttributeNames)!==null&&s!==void 0?s:this.htmlMode,this.recognizeSelfClosing=(i=r.recognizeSelfClosing)!==null&&i!==void 0?i:!this.htmlMode,this.tokenizer=new((a=r.Tokenizer)!==null&&a!==void 0?a:zc)(this.options,this),this.foreignContext=[!this.htmlMode],(c=(o=this.cbs).onparserinit)===null||c===void 0||c.call(o,this)}ontext(t,r){var n,s;const i=this.getSlice(t,r);this.endIndex=r-1,(s=(n=this.cbs).ontext)===null||s===void 0||s.call(n,i),this.startIndex=r}ontextentity(t,r){var n,s;this.endIndex=r-1,(s=(n=this.cbs).ontext)===null||s===void 0||s.call(n,Un(t)),this.startIndex=r}isVoidElement(t){return this.htmlMode&&Jc.has(t)}onopentagname(t,r){this.endIndex=r;let n=this.getSlice(t,r);this.lowerCaseTagNames&&(n=n.toLowerCase()),this.emitOpenTag(n)}emitOpenTag(t){var r,n,s,i;this.openTagStart=this.startIndex,this.tagname=t;const a=this.htmlMode&&Hc.get(t);if(a)for(;this.stack.length>0&&a.has(this.stack[0]);){const o=this.stack.shift();(n=(r=this.cbs).onclosetag)===null||n===void 0||n.call(r,o,!0)}this.isVoidElement(t)||(this.stack.unshift(t),this.htmlMode&&(Nn.has(t)?this.foreignContext.unshift(!0):Yn.has(t)&&this.foreignContext.unshift(!1))),(i=(s=this.cbs).onopentagname)===null||i===void 0||i.call(s,t),this.cbs.onopentag&&(this.attribs={})}endOpenTag(t){var r,n;this.startIndex=this.openTagStart,this.attribs&&((n=(r=this.cbs).onopentag)===null||n===void 0||n.call(r,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1}onclosetag(t,r){var n,s,i,a,o,c,u,h;this.endIndex=r;let l=this.getSlice(t,r);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),this.htmlMode&&(Nn.has(l)||Yn.has(l))&&this.foreignContext.shift(),this.isVoidElement(l))this.htmlMode&&l==="br"&&((a=(i=this.cbs).onopentagname)===null||a===void 0||a.call(i,"br"),(c=(o=this.cbs).onopentag)===null||c===void 0||c.call(o,"br",{},!0),(h=(u=this.cbs).onclosetag)===null||h===void 0||h.call(u,"br",!1));else{const f=this.stack.indexOf(l);if(f!==-1)for(let A=0;A<=f;A++){const d=this.stack.shift();(s=(n=this.cbs).onclosetag)===null||s===void 0||s.call(n,d,A!==f)}else this.htmlMode&&l==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=r+1}onselfclosingtag(t){this.endIndex=t,this.recognizeSelfClosing||this.foreignContext[0]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)}closeCurrentTag(t){var r,n;const s=this.tagname;this.endOpenTag(t),this.stack[0]===s&&((n=(r=this.cbs).onclosetag)===null||n===void 0||n.call(r,s,!t),this.stack.shift())}onattribname(t,r){this.startIndex=t;const n=this.getSlice(t,r);this.attribname=this.lowerCaseAttributeNames?n.toLowerCase():n}onattribdata(t,r){this.attribvalue+=this.getSlice(t,r)}onattribentity(t){this.attribvalue+=Un(t)}onattribend(t,r){var n,s;this.endIndex=r,(s=(n=this.cbs).onattribute)===null||s===void 0||s.call(n,this.attribname,this.attribvalue,t===ve.Double?'"':t===ve.Single?"'":t===ve.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(t){const r=t.search(Zc);let n=r<0?t:t.substr(0,r);return this.lowerCaseTagNames&&(n=n.toLowerCase()),n}ondeclaration(t,r){this.endIndex=r;const n=this.getSlice(t,r);if(this.cbs.onprocessinginstruction){const s=this.getInstructionName(n);this.cbs.onprocessinginstruction(`!${s}`,`!${n}`)}this.startIndex=r+1}onprocessinginstruction(t,r){this.endIndex=r;const n=this.getSlice(t,r);if(this.cbs.onprocessinginstruction){const s=this.getInstructionName(n);this.cbs.onprocessinginstruction(`?${s}`,`?${n}`)}this.startIndex=r+1}oncomment(t,r,n){var s,i,a,o;this.endIndex=r,(i=(s=this.cbs).oncomment)===null||i===void 0||i.call(s,this.getSlice(t,r-n)),(o=(a=this.cbs).oncommentend)===null||o===void 0||o.call(a),this.startIndex=r+1}oncdata(t,r,n){var s,i,a,o,c,u,h,l,f,A;this.endIndex=r;const d=this.getSlice(t,r-n);!this.htmlMode||this.options.recognizeCDATA?((i=(s=this.cbs).oncdatastart)===null||i===void 0||i.call(s),(o=(a=this.cbs).ontext)===null||o===void 0||o.call(a,d),(u=(c=this.cbs).oncdataend)===null||u===void 0||u.call(c)):((l=(h=this.cbs).oncomment)===null||l===void 0||l.call(h,`[CDATA[${d}]]`),(A=(f=this.cbs).oncommentend)===null||A===void 0||A.call(f)),this.startIndex=r+1}onend(){var t,r;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let n=0;n<this.stack.length;n++)this.cbs.onclosetag(this.stack[n],!0)}(r=(t=this.cbs).onend)===null||r===void 0||r.call(t)}reset(){var t,r,n,s;(r=(t=this.cbs).onreset)===null||r===void 0||r.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(s=(n=this.cbs).onparserinit)===null||s===void 0||s.call(n,this),this.buffers.length=0,this.foreignContext.length=0,this.foreignContext.unshift(!this.htmlMode),this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(t){this.reset(),this.end(t)}getSlice(t,r){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let n=this.buffers[0].slice(t-this.bufferOffset,r-this.bufferOffset);for(;r-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),n+=this.buffers[0].slice(0,r-this.bufferOffset);return n}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(t){var r,n;if(this.ended){(n=(r=this.cbs).onerror)===null||n===void 0||n.call(r,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)}end(t){var r,n;if(this.ended){(n=(r=this.cbs).onerror)===null||n===void 0||n.call(r,new Error(".end() after done!"));return}t&&this.write(t),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}parseChunk(t){this.write(t)}done(t){this.end(t)}}var G;(function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"})(G||(G={}));function jc(e){return e.type===G.Tag||e.type===G.Script||e.type===G.Style}G.Root;G.Text;G.Directive;G.Comment;G.Script;G.Style;G.Tag;G.CDATA;G.Doctype;class js{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(t){this.parent=t}get previousSibling(){return this.prev}set previousSibling(t){this.prev=t}get nextSibling(){return this.next}set nextSibling(t){this.next=t}cloneNode(t=!1){return si(this,t)}}class pn extends js{constructor(t){super(),this.data=t}get nodeValue(){return this.data}set nodeValue(t){this.data=t}}class Lr extends pn{constructor(){super(...arguments),this.type=G.Text}get nodeType(){return 3}}class ei extends pn{constructor(){super(...arguments),this.type=G.Comment}get nodeType(){return 8}}class ti extends pn{constructor(t,r){super(r),this.name=t,this.type=G.Directive}get nodeType(){return 1}}class mn extends js{constructor(t){super(),this.children=t}get firstChild(){var t;return(t=this.children[0])!==null&&t!==void 0?t:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(t){this.children=t}}class ri extends mn{constructor(){super(...arguments),this.type=G.CDATA}get nodeType(){return 4}}class Nr extends mn{constructor(){super(...arguments),this.type=G.Root}get nodeType(){return 9}}class ni extends mn{constructor(t,r,n=[],s=t==="script"?G.Script:t==="style"?G.Style:G.Tag){super(n),this.name=t,this.attribs=r,this.type=s}get nodeType(){return 1}get tagName(){return this.name}set tagName(t){this.name=t}get attributes(){return Object.keys(this.attribs).map(t=>{var r,n;return{name:t,value:this.attribs[t],namespace:(r=this["x-attribsNamespace"])===null||r===void 0?void 0:r[t],prefix:(n=this["x-attribsPrefix"])===null||n===void 0?void 0:n[t]}})}}function el(e){return jc(e)}function tl(e){return e.type===G.CDATA}function rl(e){return e.type===G.Text}function nl(e){return e.type===G.Comment}function sl(e){return e.type===G.Directive}function il(e){return e.type===G.Root}function si(e,t=!1){let r;if(rl(e))r=new Lr(e.data);else if(nl(e))r=new ei(e.data);else if(el(e)){const n=t?Cr(e.children):[],s=new ni(e.name,{...e.attribs},n);n.forEach(i=>i.parent=s),e.namespace!=null&&(s.namespace=e.namespace),e["x-attribsNamespace"]&&(s["x-attribsNamespace"]={...e["x-attribsNamespace"]}),e["x-attribsPrefix"]&&(s["x-attribsPrefix"]={...e["x-attribsPrefix"]}),r=s}else if(tl(e)){const n=t?Cr(e.children):[],s=new ri(n);n.forEach(i=>i.parent=s),r=s}else if(il(e)){const n=t?Cr(e.children):[],s=new Nr(n);n.forEach(i=>i.parent=s),e["x-mode"]&&(s["x-mode"]=e["x-mode"]),r=s}else if(sl(e)){const n=new ti(e.name,e.data);e["x-name"]!=null&&(n["x-name"]=e["x-name"],n["x-publicId"]=e["x-publicId"],n["x-systemId"]=e["x-systemId"]),r=n}else throw new Error(`Not implemented yet: ${e.type}`);return r.startIndex=e.startIndex,r.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(r.sourceCodeLocation=e.sourceCodeLocation),r}function Cr(e){const t=e.map(r=>si(r,!0));for(let r=1;r<t.length;r++)t[r].prev=t[r-1],t[r-1].next=t[r];return t}const Wn={withStartIndices:!1,withEndIndices:!1,xmlMode:!1};class al{constructor(t,r,n){this.dom=[],this.root=new Nr(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof r=="function"&&(n=r,r=Wn),typeof t=="object"&&(r=t,t=void 0),this.callback=t??null,this.options=r??Wn,this.elementCB=n??null}onparserinit(t){this.parser=t}onreset(){this.dom=[],this.root=new Nr(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(t){this.handleCallback(t)}onclosetag(){this.lastNode=null;const t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)}onopentag(t,r){const n=this.options.xmlMode?G.Tag:void 0,s=new ni(t,r,void 0,n);this.addNode(s),this.tagStack.push(s)}ontext(t){const{lastNode:r}=this;if(r&&r.type===G.Text)r.data+=t,this.options.withEndIndices&&(r.endIndex=this.parser.endIndex);else{const n=new Lr(t);this.addNode(n),this.lastNode=n}}oncomment(t){if(this.lastNode&&this.lastNode.type===G.Comment){this.lastNode.data+=t;return}const r=new ei(t);this.addNode(r),this.lastNode=r}oncommentend(){this.lastNode=null}oncdatastart(){const t=new Lr(""),r=new ri([t]);this.addNode(r),t.parent=r,this.lastNode=t}oncdataend(){this.lastNode=null}onprocessinginstruction(t,r){const n=new ti(t,r);this.addNode(n)}handleCallback(t){if(typeof this.callback=="function")this.callback(t,this.dom);else if(t)throw t}addNode(t){const r=this.tagStack[this.tagStack.length-1],n=r.children[r.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),r.children.push(t),n&&(t.prev=n,n.next=t),t.parent=r,this.lastNode=null}}function ol(e,t){const r=new al(void 0,t);return new qc(r,t).end(e),r.root}const ii=e=>{let t="";return e.italic&&(t="italic "),e.bold&&(t+="bold "),`${t}${e.size}px '${e.font}',sans-serif`},Yr=(e,t)=>{dt(0);const r=e.lineTable.length;De.font=ii(t);const n=De.measureText(""),s={mode:"break",text:"",x:0,y:0,w:0,h:n.fontBoundingBoxAscent+n.fontBoundingBoxDescent,line:r,textFormat:t.toObject()};e.heightTable[r]=0,e.ascentTable[r]=0,e.widthTable[r]=0,e.lineTable.push(s),e.textTable.push(s)},cl=e=>{const t=e.heightTable.length-1;for(let r=1;r<t;++r){if(e.heightTable[r]>0)continue;const s=e.lineTable[r];s&&(e.heightTable[r]=s.h=e.heightTable[r-1])}},ai=e=>{let t=0;return e.leftMargin&&(t+=e.leftMargin),e.rightMargin&&(t+=e.rightMargin),t},ll=(e,t,r,n)=>{let s=r.lineTable.length-1;const i=n.width-ai(t)-4;for(let a=0;a<e.length;++a){const o=n.textFormats?n.textFormats.shift():t,c=e[a],u={mode:"text",text:c,x:0,y:0,w:0,h:0,line:s,textFormat:o.toObject()};De.font=ii(o);const h=De.measureText(c||""),l=o.letterSpacing?h.width+o.letterSpacing:h.width,f=o.leading?h.fontBoundingBoxAscent+h.fontBoundingBoxDescent+o.leading:h.fontBoundingBoxAscent+h.fontBoundingBoxDescent;if(u.x=0,u.y=h.fontBoundingBoxAscent,u.w=l,u.h=f,dt(Et()+l),n.wordWrap&&Et()>i){dt(l),s++,u.line=s;const A={mode:"wrap",text:"",x:0,y:0,w:0,h:0,line:s,textFormat:o.toObject()};let d=1,y=!0;const g=/[0-9a-zA-Z?!;:.,?!。、;:〜]/g;for(;;){const p=r.textTable.length-d;if(0>=p){y=!1,d=0;break}const $=r.textTable[p];if(!$){y=!1,d=0;break}if($.mode!=="text"){y=!1;break}if($.text===" "){d--;break}if(!$.text.match(g)){d--;break}d++}if(r.widthTable[s]=0,r.heightTable[s]=0,r.ascentTable[s]=0,d>0&&y){const p=r.textTable.length-d;r.textTable.splice(p,0,A),r.lineTable.push(A);const $=s-1;r.widthTable[$]=0,r.heightTable[$]=0,r.ascentTable[$]=0;for(let w=0;w<p;++w){const I=r.textTable[w];I&&I.line===$&&I.mode==="text"&&(r.widthTable[$]+=I.w,r.heightTable[$]=Math.max(r.heightTable[$],I.h),r.ascentTable[$]=Math.max(r.ascentTable[$],I.y))}dt(0);for(let w=p+1;w<r.textTable.length;++w){const I=r.textTable[w];I.line=s,dt(Et()+I.w)}}else r.textTable.push(A),r.lineTable.push(A)}r.widthTable[s]=Et(),r.heightTable[s]=Math.max(r.heightTable[s],f),r.ascentTable[s]=Math.max(r.ascentTable[s],u.y),r.textTable.push(u)}},ul=e=>{const t=e.trim().split(";"),r=[];for(let n=0;n<t.length;++n){const s=t[n];if(!s)continue;const i=s.split(":"),a=i[0].trim(),o=i[1].trim();switch(a){case"font-size":r.push({name:"size",value:parseInt(o)});break;case"font-family":r.push({name:"face",value:o.replace(/'|"/g,"")});break;case"letter-spacing":r.push({name:"letterSpacing",value:parseInt(o)});break;case"margin-bottom":r.push({name:"leading",value:parseInt(o)});break;case"margin-left":r.push({name:"leftMargin",value:parseInt(o)});break;case"margin-right":r.push({name:"rightMargin",value:parseInt(o)});break;case"color":case"align":r.push({name:a,value:o});break;case"text-decoration":case"font-weight":case"font-style":r.push({name:o,value:!0});break}}return r},Wr=(e,t,r)=>{for(let n=0;n<e.length;++n){const s=e[n];switch(s.name){case"style":Wr(ul(s.value),t,r);break;case"align":t.align=s.value;break;case"face":t.font=s.value;break;case"size":t.size=+s.value,r.subFontSize&&(t.size-=r.subFontSize,1>t.size&&(t.size=1));break;case"color":t.color=et(s.value);break;case"letterSpacing":t.letterSpacing=parseInt(s.value);break;case"leading":t.leading=parseInt(s.value);break;case"leftMargin":t.leftMargin=parseInt(s.value);break;case"rightMargin":t.rightMargin=parseInt(s.value);break;case"underline":t.underline=!0;break;case"bold":t.bold=!0;break;case"italic":t.italic=!0;break}}},Vr=(e,t,r,n)=>{for(let s=0;s<e.children.length;++s){const i=e.children[s];if(i.nodeType===3){ll(i.nodeValue||"",t,r,n);continue}const a=t.clone();switch(i.name.toUpperCase()){case"DIV":case"P":Wr(i.attributes,a,n),n.multiline&&Yr(r,a),Vr(i,a,r,n);continue;case"U":a.underline=!0;break;case"B":a.bold=!0;break;case"I":a.italic=!0;break;case"FONT":case"SPAN":Wr(i.attributes,a,n);break;case"BR":if(!n.multiline)continue;Yr(r,a);break}Vr(i,a,r,n)}},hl=(e,t,r)=>{const n=new Gc;if(!e)return n;const s=e.trim().replace(/\r?\n/g,"").replace(/\t/g,""),i=t.clone();return r.subFontSize&&r.subFontSize>0&&i.size&&(i.size-=r.subFontSize,1>i.size&&(i.size=1)),Yr(n,i),Vr(ol(s),i,n,r),cl(n),n},H=(e,t=0)=>(e.$textData||(e.$textData=hl(e.htmlText,e.defaultTextFormat,{width:e.width,multiline:e.multiline,wordWrap:e.wordWrap,subFontSize:t,textFormats:e.$textFormats})),e.$textData),K=e=>{e.changed=!0;const t=e.parent;t&&!t.changed&&K(t)},Kr=e=>{e.$textData=null,K(e),e.uniqueKey!==""&&O.has(e.uniqueKey)&&(O.removeById(e.uniqueKey),O.$removeIds.push(+e.uniqueKey))},fl=e=>{if(K(e),e.autoSize==="none"){e.xMin=e.bounds.xMin,e.yMin=e.bounds.yMin,e.xMax=e.bounds.xMax,e.yMax=e.bounds.yMax;return}const t=e.defaultTextFormat,r=e.textWidth+4+ai(t);if(e.wordWrap)e.xMin=e.bounds.xMin,e.xMax=e.bounds.xMax;else switch(e.autoSize){case"left":e.xMax=r+e.xMin;break;case"center":e.xMax=r+e.xMin;break;case"right":e.xMax=e.bounds.xMax-(e.bounds.xMax-e.bounds.xMin-(r-e.bounds.xMin));break}e.yMax=e.textHeight+e.bounds.yMin+4},dl=e=>{let t=0;const r=H(e);for(let s=0;s<r.textTable.length;++s){const i=r.textTable[s];t=Math.max(t,i.textFormat.size||0)}let n=1;if(e.width&&e.textWidth)for(;t>n&&e.textWidth+4>e.width;)Kr(e),H(e,n++);if(e.height&&e.textHeight)for(;t>n&&e.textHeight+4>e.height;)Kr(e),H(e,n++);K(e)},Be=e=>{Kr(e),H(e),e.autoSize==="none"&&e.autoFontSize&&dl(e),fl(e)},Al=(e,t)=>{const r=H(e);if(2>r.textTable.length)return;let n=2,s=0;for(let f=1;f<r.textTable.length;++f){const A=r.textTable[f];if(!A)continue;let d=!1;if(A.mode==="text"&&(d=!0,n+=A.w),s>=t){s=f;break}A.mode==="break"&&(d=!0,n=2),d&&s++}const i=r.textTable[s];if(!i)return;e.$scrollX=e.$scrollY=0;const a=i.line;let o=0;for(let f=0;f<=a;++f)o+=r.heightTable[f];const c=Math.abs(e.yMax-e.yMin);let u=0;for(let f=a;f>-1;--f){const A=r.heightTable[f];if(c<u+A)break;u+=A}if(o>c){const f=(e.textHeight-c)/c;e.$scrollY=Math.max(0,Math.min((o-u)/f,c))}const h=Math.abs(e.xMax-e.xMin);let l=0;for(let f=s;f>0;--f){const A=r.textTable[f];if(A.mode==="text"){if(h<l+A.w)break;l+=A.w}}if(n>h){const f=(e.textWidth-h)/h;e.$scrollX=Math.max(0,Math.min((n-l)/f,h+.5))}K(e)},fe=()=>{const e=Ht();e!==void 0&&clearTimeout(e),Zs(void 0)},pl=window.devicePixelRatio,ml=e=>{const t=e.localToGlobal(new ie),r=e.$textData;if(r){const s=r.textTable[e.focusIndex];if(s){for(let a=e.focusIndex-1;a>-1;--a){const o=r.textTable[a];if(!o||o.line!==s.line)break;t.x+=o.w}const i=s.mode==="break"?s.line-1:s.line;for(let a=0;a<i;++a)t.y+=r.heightTable[a]}}const n=v.rendererScale/pl;de.style.left=`${Je.x+t.x*n}px`,de.style.top=`${Je.y+t.y*n}px`},pe=e=>{e.focusVisible=!e.focusVisible,K(e),Zs(setTimeout(()=>pe(e),500)),ml(e)},gl=(e,t)=>{e.willTrigger(t)&&e.dispatchEvent(new Ne(t)),de.value="",e.focus?(setTimeout(()=>{de.focus()},300),Ht()===void 0&&(e.focusIndex===-1&&(e.focusIndex=1,e.selectIndex=-1),pe(e))):(e.focusIndex=-1,e.selectIndex=-1,e.focusVisible=!1,fe(),de.blur()),K(e)},bl=(e,t,r,n)=>e/n*r+t,xl=(e,t,r,n)=>(e/=n)*e*r+t,yl=(e,t,r,n)=>-(e/=n)*(e-2)*r+t,$l=(e,t,r,n)=>(e/=n/2)<1?e*e*r/2+t:-((e-=1)*(e-2)-1)*r/2+t,vl=(e,t,r,n)=>(e/=n)*e*e*r+t,wl=(e,t,r,n)=>(e/=n,(--e*e*e+1)*r+t),Ml=(e,t,r,n)=>(e/=n/2)<1?e*e*e*r/2+t:((e-=2)*e*e+2)*r/2+t,Bl=(e,t,r,n)=>(e/=n)*e*e*e*r+t,Tl=(e,t,r,n)=>(e/=n,(--e*e*e*e-1)*-r+t),Sl=(e,t,r,n)=>(e/=n/2)<1?e*e*e*e*r/2+t:((e-=2)*e*e*e-2)*-r/2+t,Il=(e,t,r,n)=>(e/=n)*e*e*e*e*r+t,Cl=(e,t,r,n)=>(e/=n,(--e*e*e*e*e+1)*r+t),Fl=(e,t,r,n)=>(e/=n/2)<1?e*e*e*e*e*r/2+t:((e-=2)*e*e*e*e+2)*r/2+t,El=(e,t,r,n)=>-r*Math.cos(e/n*(Math.PI/2))+r+t,Pl=(e,t,r,n)=>r*Math.sin(e/n*(Math.PI/2))+t,Rl=(e,t,r,n)=>-r/2*(Math.cos(Math.PI*e/n)-1)+t,Ol=(e,t,r,n)=>r*Math.pow(2,10*(e/n-1))+t,kl=(e,t,r,n)=>r*(-Math.pow(2,-10*e/n)+1)+t,Ul=(e,t,r,n)=>(e/=n/2)<1?r/2*Math.pow(2,10*(e-1))+t:r/2*(-Math.pow(2,-10*(e-1))+2)+t,Gl=(e,t,r,n)=>(1-Math.sqrt(1-(e/=n)*e))*r+t,_l=(e,t,r,n)=>(e/=n,Math.sqrt(1- --e*e)*r+t),Dl=(e,t,r,n)=>(e/=n*2)<1?(Math.sqrt(1-e*e)-1)/-2*r+t:(Math.sqrt(1-(e-=2)*e)+1)/2*r+t,Ll=(e,t,r,n)=>(2.70158*(e/=n)*e*e-1.70158*e*e)*r+t,Nl=(e,t,r,n)=>(1+2.70158*Math.pow((e/=n)-1,3)+1.70158*Math.pow(e-1,2))*r+t,Yl=(e,t,r,n)=>{let s=1.70158;return(e/=n/2)<1?e*e*(((s*=1.525)+1)*e-s)*r/2+t:((e-=2)*e*(((s*=1.525)+1)*e+s)+2)*r/2+t},Wl=(e,t,r,n)=>(e/=n)===0?t:e===1?r+t:-Math.pow(2,(e*=10)-10)*Math.sin((e-10.75)*(2*Math.PI/3))*r+t,Vl=(e,t,r,n)=>(e/=n)===0?t:e===1?r+t:(Math.pow(2,-10*e)*Math.sin((e*10-.75)*(2*Math.PI/3))+1)*r+t,Kl=(e,t,r,n)=>(e/=n)===0?t:e===1?r+t:e<.5?-(Math.pow(2,20*e-10)*Math.sin((20*e-11.125)*(2*Math.PI/4.5)))/2*r+t:(Math.pow(2,-20*e+10)*Math.sin((20*e-11.125)*(2*Math.PI/4.5))/2+1)*r+t,Ql=(e,t,r,n)=>(e/=n)<1/2.75?7.5625*e*e*r+t:e<2/2.75?(7.5625*(e-=1.5/2.75)*e+.75)*r+t:e<2.5/2.75?(7.5625*(e-=2.25/2.75)*e+.9375)*r+t:(7.5625*(e-=2.625/2.75)*e+.984375)*r+t,Xl=(e,t,r,n)=>r-Ye.outBounce(n-e,0,r,n)+t,zl=(e,t,r,n)=>e<n/2?Ye.inBounce(e*2,t,r/2,n):Ye.outBounce(e*2-n,t+r/2,r/2,n);class Ye{static linear(t,r,n,s){return bl(t,r,n,s)}static inQuad(t,r,n,s){return xl(t,r,n,s)}static outQuad(t,r,n,s){return yl(t,r,n,s)}static inOutQuad(t,r,n,s){return $l(t,r,n,s)}static inCubic(t,r,n,s){return vl(t,r,n,s)}static outCubic(t,r,n,s){return wl(t,r,n,s)}static inOutCubic(t,r,n,s){return Ml(t,r,n,s)}static inQuart(t,r,n,s){return Bl(t,r,n,s)}static outQuart(t,r,n,s){return Tl(t,r,n,s)}static inOutQuart(t,r,n,s){return Sl(t,r,n,s)}static inQuint(t,r,n,s){return Il(t,r,n,s)}static outQuint(t,r,n,s){return Cl(t,r,n,s)}static inOutQuint(t,r,n,s){return Fl(t,r,n,s)}static inSine(t,r,n,s){return El(t,r,n,s)}static outSine(t,r,n,s){return Pl(t,r,n,s)}static inOutSine(t,r,n,s){return Rl(t,r,n,s)}static inExpo(t,r,n,s){return Ol(t,r,n,s)}static outExpo(t,r,n,s){return kl(t,r,n,s)}static inOutExpo(t,r,n,s){return Ul(t,r,n,s)}static inCirc(t,r,n,s){return Gl(t,r,n,s)}static outCirc(t,r,n,s){return _l(t,r,n,s)}static inOutCirc(t,r,n,s){return Dl(t,r,n,s)}static inBack(t,r,n,s){return Ll(t,r,n,s)}static outBack(t,r,n,s){return Nl(t,r,n,s)}static inOutBack(t,r,n,s){return Yl(t,r,n,s)}static inElastic(t,r,n,s){return Wl(t,r,n,s)}static outElastic(t,r,n,s){return Vl(t,r,n,s)}static inOutElastic(t,r,n,s){return Kl(t,r,n,s)}static outBounce(t,r,n,s){return Ql(t,r,n,s)}static inBounce(t,r,n,s){return Xl(t,r,n,s)}static inOutBounce(t,r,n,s){return zl(t,r,n,s)}}const Hl=e=>{cancelAnimationFrame(e.$timerId),e.hasEventListener(ye.STOP)&&e.dispatchEvent(new ye(ye.STOP)),e.entries=null,e.stopFlag=!0},oi=e=>{const t=[];for(const[r,n]of Object.entries(e))t.push({name:r,value:typeof n=="number"?n:oi(n)});return t},ci=(e,t,r,n,s)=>{for(let i=0;i<s.length;++i){const a=s[i];if(!a)continue;const o=a.name;if(!(o in t)||!(o in n))continue;if(typeof a.value!="number"){ci(e,t[o],r[o],n[o],a.value);continue}const c=r[o];e.duration>e.currentTime?t[o]=e.ease(e.currentTime,c,n[o]-c,e.duration):t[o]=n[o]}},li=(e,t)=>e.stopFlag||!e.entries?-1:(e.currentTime=(t-e.startTime)/1e3,ci(e,e.target,e.from,e.to,e.entries),e.hasEventListener(ye.UPDATE)&&e.dispatchEvent(new ye(ye.UPDATE)),e.currentTime>=e.duration?(e.hasEventListener(ye.COMPLETE)&&e.dispatchEvent(new ye(ye.COMPLETE)),e.nextJob&&e.nextJob.start(),-1):requestAnimationFrame(r=>{li(e,r)})),Vn=e=>{e.stopFlag||(e.entries=oi(e.from),e.entries&&(e.startTime=performance.now(),e.$timerId=li(e,e.startTime)))},Jl=e=>{cancelAnimationFrame(e.$timerId),e.stopFlag=!1,e.delay?setTimeout(()=>{Vn(e)},e.delay*1e3):Vn(e)};class Zl extends nt{target;entries;startTime;stopFlag;$timerId;delay;duration;ease;from;to;currentTime;nextJob;constructor(t,r,n,s=0,i=1,a=null){super(),this.target=t,this.from=r,this.to=n,this.delay=s,this.duration=i,this.ease=a||Ye.linear,this.currentTime=0,this.nextJob=null,this.entries=null,this.startTime=0,this.stopFlag=!1,this.$timerId=-1}chain(t){return this.nextJob=t,t}start(){Jl(this)}stop(){Hl(this)}}class gn{static add(t,r,n,s=0,i=1,a=null){return new Zl(t,r,n,s,i,a)}}const ql=(e,t)=>{if(!e.scrollEnabled||e.autoSize!=="none"||e.yScrollShape.hasLocalVariable("job"))return;const r=e.width;if(t=pt(t,0,r,0),e.scrollX!==t){if(e.textWidth>r){K(e);const n=e.xScrollShape;n.width=r*r/e.textWidth;const s=e.parent;if(s){n.hasLocalVariable("job")&&n.getLocalVariable("job").stop(),n.alpha=.9,n.x=e.x+1+(r-1-n.width)/(r-1)*(t-1),n.y=e.y+e.height-n.height-.5,s.addChildAt(n,s.getChildIndex(e)+1);const i=gn.add(n,{alpha:.9},{alpha:0},.5,.2,Ye.outQuad);i.addEventListener(x.COMPLETE,a=>{const o=a.target.target;o.deleteLocalVariable("job"),o.parent&&o.parent.removeChild(o)}),i.start(),n.setLocalVariable("job",i)}e.$scrollX=t}e.willTrigger(x.SCROLL)&&e.dispatchEvent(new x(x.SCROLL,!0))}},jl=(e,t)=>{if(!e.scrollEnabled||e.autoSize!=="none"||!e.multiline&&!e.wordWrap||e.xScrollShape.hasLocalVariable("job"))return;const r=e.height;if(t=pt(t,0,r,0),e.scrollY!==t){if(e.textHeight>r){K(e);const n=e.yScrollShape;n.height=r*r/e.textHeight;const s=e.parent;if(s){n.hasLocalVariable("job")&&n.getLocalVariable("job").stop(),n.alpha=.9,n.x=e.x+e.width-n.width-.5,n.y=e.y+.5+(r-1-n.height)/(r-1)*(t-1),s.addChildAt(n,s.getChildIndex(e)+1);const i=gn.add(n,{alpha:.9},{alpha:0},.5,.2,Ye.outQuad);i.addEventListener(x.COMPLETE,a=>{const o=a.target.target;o.deleteLocalVariable("job"),o.parent&&o.parent.removeChild(o)}),i.start(),n.setLocalVariable("job",i),e.$scrollY=t}}e.willTrigger(x.SCROLL)&&e.dispatchEvent(new x(x.SCROLL,!0))}},eu=e=>{let t="";const r=H(e);for(let n=1;n<r.textTable.length;++n){const s=r.textTable[n];if(s)switch(s.mode){case"text":t+=s.text;break;case"break":t+="\r";break;default:continue}}return t},tu=(e,t)=>{let r="";const n=H(e);for(let s=1;s<n.textTable.length;s++){const i=n.textTable[s];if(i){if(i.line>t)break;i.line===t&&i.mode==="text"&&(r+=i.text)}}return r},ru=(e,t,r,n)=>{if(0>r||r>n)return;const s=e.text,i=r?s.slice(0,r):"";e.text=i+t+s.slice(n,s.length)},nu=async e=>{if(e.focusIndex===-1||e.selectIndex===-1)return;let t="";const r=Math.min(e.focusIndex,e.selectIndex),n=Math.max(e.focusIndex,e.selectIndex)+1,s=H(e);for(let i=r;i<n;++i){const a=s.textTable[i];if(a)switch(a.mode){case"text":t+=a.text;break;case"break":t+=`
2340
2340
  `;break}}await navigator.clipboard.writeText(t)},su=async e=>{const t=await navigator.clipboard.readText();t===""||e.focusIndex===-1||e.insertText(t)},bn=e=>{if(e.compositionStartIndex>-1)return;let t=0,r=0;if(e.selectIndex>-1)t=Math.min(e.focusIndex,e.selectIndex),r=Math.max(e.focusIndex,e.selectIndex)+1,e.focusIndex=t;else{if(2>e.focusIndex)return;e.focusIndex--}const n=H(e),s=n.textTable[e.focusIndex];s&&s.mode==="wrap"&&e.focusIndex--;const i=[];let a="";for(let o=1;o<n.textTable.length;++o){const c=n.textTable[o];if(c&&!(e.focusIndex===o||t<=o&&r>o))switch(c.mode){case"break":i.push(new ue(...Object.values(c.textFormat))),a+=`
2341
2341
  `;break;case"text":i.push(new ue(...Object.values(c.textFormat))),a+=c.text;break;default:continue}}if(n.textTable.length===e.focusIndex&&(i.pop(),a=a.slice(0,-1)),e.selectIndex=-1,!a)e.text="",e.focusIndex=1;else{const o=e.textWidth,c=e.textHeight;if(e.$textFormats=i,e.text=a,e.scrollX>0){const u=e.textWidth,h=e.width;switch(!0){case h>u:e.$scrollX=0;break;case o!==u:e.$scrollX-=(o-u)/(u/h);break}}if(e.scrollY>0){const u=e.textHeight,h=e.height;switch(!0){case h>u:e.$scrollY=0;break;case c!==u:e.$scrollY-=(c-u)/(u/h);break}}e.$textFormats=null}},ui=(e,t)=>{if(e.focusIndex===-1||e.compositionStartIndex>-1)return;e.selectIndex>-1&&bn(e);const r=H(e);if(2>r.textTable.length){e.focusIndex=2,e.appendText(t);return}const n=[];let s="";for(let i=1;i<r.textTable.length;++i){const a=r.textTable[i];if(a){if(e.focusIndex===i)for(let o=0;o<t.length;++o)n.push(new ue(...Object.values(a.textFormat))),s+=t[o];switch(a.mode){case"break":n.push(new ue(...Object.values(a.textFormat))),s+=`
2342
2342
  `;break;case"text":n.push(new ue(...Object.values(a.textFormat))),s+=a.text;break;default:continue}}}if(r.textTable.length===e.focusIndex){let i;if(r.textTable.length){const a=r.textTable[r.textTable.length-1];i=new ue(...Object.values(a.textFormat))}else i=e.defaultTextFormat,e.focusIndex++;for(let a=0;a<t.length;++a)n.push(new ue(...Object.values(i.toObject()))),s+=t[a]}e.$textFormats=n,e.text=s,e.$textFormats=null,e.focusIndex+=t.length,e.selectIndex=-1,de.value=""},Kn=e=>{if(e.selectIndex===-1)return;const t=H(e);if(2>t.textTable.length)return;const r=t.textTable[e.selectIndex];if(!r)return;const n=r.mode==="text"?r.line:r.line-1,s=e.height,i=(e.textHeight-s)/s;let a=-e.scrollY*i-2,o=0;for(let d=0;d<t.heightTable.length&&(a+=t.heightTable[d],!(a>s));++d)o++;a=-e.scrollY*i-2;let c=0;for(let d=0;d<t.heightTable.length&&(a+=t.heightTable[d],!(a>0));++d)c++;c>=r.line&&(e.xScrollShape.hasLocalVariable("job")&&e.xScrollShape.deleteLocalVariable("job"),e.scrollY-=t.heightTable[r.line]/i),r.line>=o&&(e.xScrollShape.hasLocalVariable("job")&&e.xScrollShape.deleteLocalVariable("job"),e.scrollY+=t.heightTable[r.line]/i);const u=e.width,h=(e.textWidth-u)/u;let l=2,f=e.scrollX*h-2+u;for(let d=1;e.selectIndex>=d;++d){const y=t.textTable[d];if(!y||y.line>n)break;if(y.line===n&&(e.selectIndex!==d&&(l+=y.w),f-=y.w,!(f>0))){e.yScrollShape.hasLocalVariable("job")&&e.yScrollShape.deleteLocalVariable("job"),e.scrollX+=y.w/h;break}}e.scrollX*h-2>l&&(e.yScrollShape.hasLocalVariable("job")&&e.yScrollShape.deleteLocalVariable("job"),e.scrollX=e.width*((l-2)/e.textWidth))},iu=(e,t,r,n=!1)=>{if(e.type!=="input")return;const s=H(e);if(2>s.textTable.length){e.focusIndex=1,e.selectIndex=-1,Ht()===void 0&&pe(e);return}const i=e.width,a=e.height;let o=0;e.scrollX>0&&(o+=e.scrollX*(e.textWidth-i)/i);let c=0;e.scrollY>0&&(c+=e.scrollY*(e.textHeight-a)/a);const u=e.globalToLocal(new ie(t,r)),h=u.x+o,l=u.y+c;let f=2,A=2,d=A+s.heightTable[0];for(let y=1;y<s.textTable.length;++y){const g=s.textTable[y];if(g){switch(g.mode){case"break":case"wrap":if(h>f&&l>A&&d>l&&i>h){const p=y;n?e.selectIndex!==p&&(e.selectIndex=p,e.focusVisible&&(e.focusVisible=!1,fe()),Kn(e),K(e)):(e.focusIndex!==p||e.selectIndex>-1)&&(e.focusIndex=p,e.selectIndex=-1,K(e));return}f=2,A+=s.heightTable[g.line-1],d=A+s.heightTable[g.line];break;case"text":if(h>f&&l>A&&d>l&&f+g.w>h){let p=y;if(n)e.focusIndex>p?e.focusIndex===p+1?f+g.w/2<h&&(p=-1):f+g.w/2<h&&(p+=1):e.focusIndex===p?f+g.w/2>h&&(p=-1):f+g.w/2>h&&(p-=1),e.selectIndex!==p&&(e.selectIndex=p,e.selectIndex>-1&&(e.focusVisible=!1,fe()),Kn(e),K(e));else{if(f+g.w/2<h){const $=s.textTable[p+1];(!$||$.mode==="text")&&(p+=1)}(e.focusIndex!==p||e.selectIndex>-1)&&(e.focusIndex=p,e.selectIndex=-1,K(e))}return}if(y===s.textTable.length-1&&h>f&&l>A&&d>l&&i>h){const p=s.textTable.length;n?e.selectIndex!==p&&(e.selectIndex=p,e.focusVisible&&(e.focusVisible=!1,fe()),K(e)):(e.focusIndex!==p||e.selectIndex>-1)&&(e.focusIndex=p,e.selectIndex=-1,K(e));return}f+=g.w;break}if(!n)e.focusIndex=s.textTable.length,e.selectIndex=-1,Ht()===void 0?pe(e):K(e);else{let p=0;for(let $=0;s.heightTable.length>$;++$)p+=s.heightTable[$];(l>p||2>l)&&(e.selectIndex=2>l?1:s.textTable.length,e.focusVisible&&(e.focusVisible=!1,fe()),K(e))}}}},au=(e,t)=>{if(e.focusIndex===-1)return;const r=H(e);if(2>r.textTable.length)return;const n=r.textTable[e.focusIndex];if(!n)return;const s=n.mode==="text"?n.line:n.line-1;if(s===r.lineTable.length-1){t?e.selectIndex===-1?e.selectIndex=e.focusIndex:e.selectIndex===e.focusIndex&&(e.selectIndex=-1):e.selectIndex=-1,e.focusVisible=!1,e.focusIndex=r.textTable.length;const f=e.width,A=(e.textWidth-f)/f;let d=0;for(let y=1;e.focusIndex>=y;++y){const g=r.textTable[y];if(!g||g.line>s)break;g.line===s&&(d+=g.w)}e.yScrollShape.hasLocalVariable("job")&&e.yScrollShape.deleteLocalVariable("job"),e.scrollX=(d-f)/A,fe(),pe(e);return}const i=e.height,a=(e.textHeight-i)/i;let o=-e.scrollY*a-2,c=0;for(let f=0;f<r.heightTable.length&&(o+=r.heightTable[f],!(o>i));++f)c++;let u=2;for(let f=1;f<r.textTable.length;++f){const A=r.textTable[f];if(A){if(e.focusIndex===f){A.mode==="text"&&(u+=A.w/2);break}if(A.line>s)break;A.line!==s||A.mode!=="text"||(u+=A.w)}}let h=2;const l=s+1;for(let f=1;f<r.textTable.length;++f){const A=r.textTable[f];if(A){if(A.line>l){t?e.selectIndex===-1?e.selectIndex=e.focusIndex:e.selectIndex===e.focusIndex&&(e.selectIndex=-1):e.selectIndex=-1,A.line>=c&&(e.xScrollShape.hasLocalVariable("job")&&e.xScrollShape.deleteLocalVariable("job"),e.scrollY+=r.heightTable[A.line]/a),e.focusVisible=!1,e.focusIndex=A.mode==="text"?f-1:f,e.scrollX&&h<u&&(e.yScrollShape.hasLocalVariable("job")&&e.yScrollShape.deleteLocalVariable("job"),e.scrollX=e.width*((h-2)/e.textWidth)),fe(),pe(e);return}if(!(A.line!==l||A.mode!=="text")&&(h+=A.w,h>u)){if(t?e.selectIndex===-1?e.selectIndex=e.focusIndex:e.selectIndex===f-1&&(e.selectIndex=-1):e.selectIndex=-1,A.line>=c&&(e.xScrollShape.hasLocalVariable("job")&&e.xScrollShape.deleteLocalVariable("job"),e.scrollY+=r.heightTable[A.line]/a),e.scrollX){const d=e.width,y=(e.textWidth-d)/d;e.scrollX*y-2>h&&(e.yScrollShape.hasLocalVariable("job")&&e.yScrollShape.deleteLocalVariable("job"),e.scrollX=e.width*((h-2)/e.textWidth))}e.focusVisible=!1,e.focusIndex=f,fe(),pe(e);return}}}t?e.selectIndex===-1&&(e.selectIndex=e.focusIndex):e.selectIndex=-1,e.focusVisible=!1,e.focusIndex=r.textTable.length,fe(),pe(e)},ou=(e,t)=>{if(e.focusIndex===-1)return;const r=H(e);if(2>r.textTable.length)return;const n=r.textTable.length===e.focusIndex?e.focusIndex-1:e.focusIndex,s=r.textTable[n];if(!s||!s.line){t?e.selectIndex===-1?e.selectIndex=e.focusIndex:e.selectIndex===e.focusIndex&&(e.selectIndex=-1):e.selectIndex=-1,e.yScrollShape.hasLocalVariable("job")&&e.yScrollShape.deleteLocalVariable("job"),e.focusVisible=!1,e.focusIndex=1,e.scrollX=0,fe(),pe(e);return}const i=s.mode==="text"?s.line:s.line-1,a=e.height,o=(e.textHeight-a)/a;let c=0,u=-e.scrollY*o-2;for(let A=0;A<r.heightTable.length&&(u+=r.heightTable[A],!(u>0));++A)c++;let h=2;for(let A=1;A<r.textTable.length;++A){const d=r.textTable[A];if(d){if(e.focusIndex===A){d.mode==="text"&&(h+=d.w/2);break}if(d.line>i)break;d.line!==i||d.mode!=="text"||(h+=d.w)}}let l=2;const f=i-1;for(let A=1;A<r.textTable.length;++A){const d=r.textTable[A];if(d){if(d.line>f){t?e.selectIndex===-1?e.selectIndex=e.focusIndex:e.selectIndex===e.focusIndex&&(e.selectIndex=-1):e.selectIndex=-1,c>=d.line&&(e.xScrollShape.hasLocalVariable("job")&&e.xScrollShape.deleteLocalVariable("job"),e.scrollY-=r.heightTable[d.line]/o),e.scrollX&&(e.yScrollShape.hasLocalVariable("job")&&e.yScrollShape.deleteLocalVariable("job"),e.scrollX=e.width*((l-2)/e.textWidth)),e.focusVisible=!1,e.focusIndex=d.mode==="text"?A-1:A,fe(),pe(e);return}if(!(d.line!==f||d.mode!=="text")&&(l+=d.w,l>h)){t?e.selectIndex===-1?e.selectIndex=e.focusIndex-1:e.selectIndex===A+1&&(e.selectIndex=-1):e.selectIndex=-1,c>d.line&&(e.xScrollShape.hasLocalVariable("job")&&e.xScrollShape.deleteLocalVariable("job"),e.scrollY-=r.heightTable[d.line]/o),e.focusVisible=!1,e.focusIndex=A,fe(),pe(e);return}}}},cu=(e,t)=>{if(!e.focusIndex)return;const r=H(e);if(r.textTable.length&&e.focusIndex<2){e.focusIndex=1;return}e.focusIndex--,t?e.selectIndex===-1?e.selectIndex=e.focusIndex:e.selectIndex===e.focusIndex&&(e.selectIndex=-1):e.selectIndex=-1;const n=r.textTable[e.focusIndex];if(n){const s=n.mode==="text"?n.line:n.line-1,i=e.height,a=(e.textHeight-i)/i;let o=-e.scrollY*a-2,c=0;for(let h=0;h<r.heightTable.length&&(o+=r.heightTable[h],!(o>0));++h)c++;c>s&&(e.xScrollShape.hasLocalVariable("job")&&e.xScrollShape.deleteLocalVariable("job"),e.scrollY-=r.heightTable[n.line]/a);const u=r.textTable[e.focusIndex+1];if(u){const h=u.mode==="text"?u.line:u.line-1;let l=2;for(let y=1;e.focusIndex>y;++y){const g=r.textTable[y];if(!g||g.line>s)break;g.line===s&&(l+=g.w)}const f=e.width,A=(e.textWidth-f)/f,d=e.scrollX*A-2;if(l>f&&u&&s<h){e.yScrollShape.hasLocalVariable("job")&&e.yScrollShape.deleteLocalVariable("job"),e.scrollX=e.width;return}if(d>l){e.yScrollShape.hasLocalVariable("job")&&e.yScrollShape.deleteLocalVariable("job"),e.scrollX=e.width*((l-2)/e.textWidth);return}}}e.focusVisible=!1,fe(),pe(e)},lu=(e,t)=>{const r=H(e);if(r.textTable.length===e.focusIndex)return;t?e.selectIndex===-1?e.selectIndex=e.focusIndex:e.selectIndex===e.focusIndex&&(e.selectIndex=-1):e.selectIndex=-1,e.focusVisible=!1,e.focusIndex++,fe(),pe(e);const n=r.textTable[e.focusIndex];if(n){const s=n.mode==="text"?n.line:n.line-1,i=e.height,a=(e.textHeight-i)/i;let o=-e.scrollY*a-2,c=0;for(let d=0;d<r.heightTable.length&&(o+=r.heightTable[d],!(o>i));++d)c++;s>=c&&(e.xScrollShape.hasLocalVariable("job")&&e.xScrollShape.deleteLocalVariable("job"),e.scrollY+=r.heightTable[s]/a);const u=r.textTable[e.focusIndex-1],h=u.mode==="text"?u.line:u.line-1;if(u&&s>h){e.yScrollShape.hasLocalVariable("job")&&e.yScrollShape.deleteLocalVariable("job"),e.scrollX=0;return}const l=e.width,f=(e.textWidth-l)/l;let A=e.scrollX*f-2+l;for(let d=1;e.focusIndex>=d;++d){const y=r.textTable[d];if(!y||y.line>s)break;if(y.line===s&&(A-=y.w,!(A>0))){e.yScrollShape.hasLocalVariable("job")&&e.yScrollShape.deleteLocalVariable("job"),e.scrollX+=y.w/f;break}}}},uu=(e,t)=>{if(e.focusIndex!==-1)switch(t.key){case"Backspace":case"Delete":e.deleteText();break;case"Enter":e.insertText(`
@@ -2361,4 +2361,4 @@ fn main(
2361
2361
  }
2362
2362
  }
2363
2363
  </style>
2364
- <div id="${t}"></div>`};let as=-1;const Wh=()=>{window.addEventListener("resize",()=>{cancelAnimationFrame(as),as=requestAnimationFrame(mr)})},Ri=(e=null)=>{B.setOptions(e);const t=Lh();Nh(t,B.fixedWidth,B.fixedHeight),Yh(t),!B.fixedWidth&&!B.fixedHeight&&Wh(),mr()},Vh=async(e,t=null)=>{if(e==="develop"){const i=location.search.slice(1).split("&")[0];if(!i)return;e=`${location.origin}/${i}`}if(!e)return;e.charAt(1)==="/"&&(e=e.slice(1)),Ri(t);const r=new gi,n=r.contentLoaderInfo;if(n.addEventListener(Re.IO_ERROR,i=>{alert("Error: "+i.text)}),await r.load(new Ci(e)),!n.data)return;const s=n.data.stage;v.stageWidth=s.width,v.stageHeight=s.height,v.frameRate=Vt(s.fps,1,60,60),v.backgroundColor=t&&t.bgColor?t.bgColor:s.bgColor,v.addChild(n.content),mr(),Pi(),Fi(),Ei(),vn()};let os=!1;const Kh=(e=240,t=240,r=60,n=null)=>{if(os)return v.getChildAt(0);os=!0,v.stageWidth=e|0,v.stageHeight=t|0,v.frameRate=Vt(r,1,60,60),Ri(n);const s=v.addChild(new An);return Pi(),Fi(),Ei(),vn(),s},Te={command:"capture",buffer:null,bgColor:16777215,bgAlpha:0,width:0,height:0,length:0,imageBitmaps:null},Ut=[],ht=[],Qh=async(e,t,r,n,s=0,i=0)=>await new Promise(a=>{if(b.offset=0,Ut.length=0,ht.length=0,v.$generateRenderQueue(e,ht,t,r),!b.offset)return a(n);Te.buffer=b.buffer,Te.width=n.width,Te.height=n.height,Te.bgColor=s,Te.bgAlpha=i,Te.length=b.offset,Ut.push(b.buffer.buffer),Te.imageBitmaps=null,ht.length&&(Te.imageBitmaps=ht,Ut.push(...ht));const o=c=>{if(c.data.message!=="capture")return;const u=c.data.buffer;return b.buffer.length<u.length&&(b.buffer=u),n.getContext("2d").drawImage(c.data.imageBitmap,0,0),Ce.removeEventListener("message",o),a(n)};Ce.addEventListener("message",o),Ce.postMessage(Te,Ut)}),Oi=async e=>{switch(!0){case e.isVideo:{const t=e.muted;e.muted=!0,await e.play(),e.pause(),e.muted=t,await new Promise(r=>{const n=async()=>{e.loaded?(e.seek(0),r()):requestAnimationFrame(n)};requestAnimationFrame(n)})}break;case e.isContainerEnabled:{const t=e.children;for(let r=0;r<t.length;++r){const n=t[r];n&&(!n.isVideo&&!n.isContainerEnabled||await Oi(n))}}break}},Xh=new Float32Array([1,0,0,1,0,0]),zh=new Float32Array([1,1,1,1,0,0,0,0]),Hh=async(e,t=null)=>{t&&t.videoSync&&await Oi(e);const r=t&&t.colorTransform?t.colorTransform.rawData:zh,n=new Float32Array([1,0,0,1,-e.width/2,-e.height/2]),s=t&&t.matrix?T.multiply(t.matrix.rawData,n):T.multiply(Xh,n),i=t&&t.canvas?t.canvas:O.getCanvas(),a=Math.sqrt(s[0]*s[0]+s[1]*s[1]),o=Math.sqrt(s[2]*s[2]+s[3]*s[3]),c=Math.ceil(e.width*a),u=Math.ceil(e.height*o);if(c<=0||u<=0)return i;s[4]+=c/2,s[5]+=u/2,i.width=c,i.height=u;const h=B.stopFlag;h||B.stop();let l=!1;const f=B.rendererWidth,A=B.rendererHeight,d=B.rendererScale;if(c>f||u>A){l=!0;const y=Math.min(c/v.stageWidth,u/v.stageHeight)*Ze;v.rendererScale=B.rendererScale=y,v.rendererWidth=B.rendererWidth=c,v.rendererHeight=B.rendererHeight=u,Zr(!1)}return await Qh(e,s,r,i,t&&t.bgColor?parseInt(t.bgColor.replace("#",""),16):0,t&&t.bgAlpha?t.bgAlpha:0),l&&(v.rendererScale=B.rendererScale=d,v.rendererWidth=B.rendererWidth=f,v.rendererHeight=B.rendererHeight=A,Zr(!1)),h||B.play(),T.release(s),t&&t.colorTransform&&U.release(r),i};class Jh{display;events;filters;geom;media;net;text;ui;_$promise;constructor(){this.display=jr,this.events=qr,this.filters=en,this.geom=tn,this.media=rn,this.net=nn,this.text=sn,this.ui=an,this._$promise=new Promise(t=>{document.readyState==="loading"?window.addEventListener("DOMContentLoaded",()=>t(),{once:!0}):t()})}async load(t,r=null){await Promise.all([this._$promise]),await Vh(t,r)}async createRootMovieClip(t=240,r=240,n=60,s=null){return await Promise.all([this._$promise]),Kh(t,r,n,s)}async captureToCanvas(t,r=null){return await Hh(t,r)}}"next2d"in window||(console.log("%c Next2D Player %c 3.0.3 %c https://next2d.app","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),window.next2d=new Jh);
2364
+ <div id="${t}"></div>`};let as=-1;const Wh=()=>{window.addEventListener("resize",()=>{cancelAnimationFrame(as),as=requestAnimationFrame(mr)})},Ri=(e=null)=>{B.setOptions(e);const t=Lh();Nh(t,B.fixedWidth,B.fixedHeight),Yh(t),!B.fixedWidth&&!B.fixedHeight&&Wh(),mr()},Vh=async(e,t=null)=>{if(e==="develop"){const i=location.search.slice(1).split("&")[0];if(!i)return;e=`${location.origin}/${i}`}if(!e)return;e.charAt(1)==="/"&&(e=e.slice(1)),Ri(t);const r=new gi,n=r.contentLoaderInfo;if(n.addEventListener(Re.IO_ERROR,i=>{alert("Error: "+i.text)}),await r.load(new Ci(e)),!n.data)return;const s=n.data.stage;v.stageWidth=s.width,v.stageHeight=s.height,v.frameRate=Vt(s.fps,1,60,60),v.backgroundColor=t&&t.bgColor?t.bgColor:s.bgColor,v.addChild(n.content),mr(),Pi(),Fi(),Ei(),vn()};let os=!1;const Kh=(e=240,t=240,r=60,n=null)=>{if(os)return v.getChildAt(0);os=!0,v.stageWidth=e|0,v.stageHeight=t|0,v.frameRate=Vt(r,1,60,60),Ri(n);const s=v.addChild(new An);return Pi(),Fi(),Ei(),vn(),s},Te={command:"capture",buffer:null,bgColor:16777215,bgAlpha:0,width:0,height:0,length:0,imageBitmaps:null},Ut=[],ht=[],Qh=async(e,t,r,n,s=0,i=0)=>await new Promise(a=>{if(b.offset=0,Ut.length=0,ht.length=0,v.$generateRenderQueue(e,ht,t,r),!b.offset)return a(n);Te.buffer=b.buffer,Te.width=n.width,Te.height=n.height,Te.bgColor=s,Te.bgAlpha=i,Te.length=b.offset,Ut.push(b.buffer.buffer),Te.imageBitmaps=null,ht.length&&(Te.imageBitmaps=ht,Ut.push(...ht));const o=c=>{if(c.data.message!=="capture")return;const u=c.data.buffer;return b.buffer.length<u.length&&(b.buffer=u),n.getContext("2d").drawImage(c.data.imageBitmap,0,0),Ce.removeEventListener("message",o),a(n)};Ce.addEventListener("message",o),Ce.postMessage(Te,Ut)}),Oi=async e=>{switch(!0){case e.isVideo:{const t=e.muted;e.muted=!0,await e.play(),e.pause(),e.muted=t,await new Promise(r=>{const n=async()=>{e.loaded?(e.seek(0),r()):requestAnimationFrame(n)};requestAnimationFrame(n)})}break;case e.isContainerEnabled:{const t=e.children;for(let r=0;r<t.length;++r){const n=t[r];n&&(!n.isVideo&&!n.isContainerEnabled||await Oi(n))}}break}},Xh=new Float32Array([1,0,0,1,0,0]),zh=new Float32Array([1,1,1,1,0,0,0,0]),Hh=async(e,t=null)=>{t&&t.videoSync&&await Oi(e);const r=t&&t.colorTransform?t.colorTransform.rawData:zh,n=new Float32Array([1,0,0,1,-e.width/2,-e.height/2]),s=t&&t.matrix?T.multiply(t.matrix.rawData,n):T.multiply(Xh,n),i=t&&t.canvas?t.canvas:O.getCanvas(),a=Math.sqrt(s[0]*s[0]+s[1]*s[1]),o=Math.sqrt(s[2]*s[2]+s[3]*s[3]),c=Math.ceil(e.width*a),u=Math.ceil(e.height*o);if(c<=0||u<=0)return i;s[4]+=c/2,s[5]+=u/2,i.width=c,i.height=u;const h=B.stopFlag;h||B.stop();let l=!1;const f=B.rendererWidth,A=B.rendererHeight,d=B.rendererScale;if(c>f||u>A){l=!0;const y=Math.min(c/v.stageWidth,u/v.stageHeight)*Ze;v.rendererScale=B.rendererScale=y,v.rendererWidth=B.rendererWidth=c,v.rendererHeight=B.rendererHeight=u,Zr(!1)}return await Qh(e,s,r,i,t&&t.bgColor?parseInt(t.bgColor.replace("#",""),16):0,t&&t.bgAlpha?t.bgAlpha:0),l&&(v.rendererScale=B.rendererScale=d,v.rendererWidth=B.rendererWidth=f,v.rendererHeight=B.rendererHeight=A,Zr(!1)),h||B.play(),T.release(s),t&&t.colorTransform&&U.release(r),i};class Jh{display;events;filters;geom;media;net;text;ui;_$promise;constructor(){this.display=jr,this.events=qr,this.filters=en,this.geom=tn,this.media=rn,this.net=nn,this.text=sn,this.ui=an,this._$promise=new Promise(t=>{document.readyState==="loading"?window.addEventListener("DOMContentLoaded",()=>t(),{once:!0}):t()})}async load(t,r=null){await Promise.all([this._$promise]),await Vh(t,r)}async createRootMovieClip(t=240,r=240,n=60,s=null){return await Promise.all([this._$promise]),Kh(t,r,n,s)}async captureToCanvas(t,r=null){return await Hh(t,r)}}"next2d"in window||(console.log("%c Next2D Player %c 3.0.4 %c https://next2d.app","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),window.next2d=new Jh);