billboard.js
Version:
Re-usable easy interface JavaScript chart library, based on D3 v4+
11 lines • 298 kB
JavaScript
/*!
* Copyright (c) 2017 ~ present NAVER Corp.
* billboard.js project is licensed under the MIT license
*
* billboard.js, JavaScript chart library
* https://naver.github.io/billboard.js/
*
* @version 3.14.2
* @requires billboard.js
* @summary billboard.js plugin
*/(function(On,fn){typeof exports=="object"&&typeof module=="object"?module.exports=fn():typeof define=="function"&&define.amd?define("bb",[],fn):typeof exports=="object"?exports.bb=fn():(On.bb=On.bb||{},On.bb.plugin=On.bb.plugin||{},On.bb.plugin["textoverlap.pkgd"]=fn())})(this,function(){return function(){"use strict";var ia={65908:function(l,p,t){t.d(p,{default:function(){return Kl}});const r=11102230246251565e-32,e=134217729,o=(3+8*r)*r;function s(n,a,i,d,g){let S,x,A,P,R=a[0],C=d[0],j=0,U=0;C>R==C>-R?(S=R,R=a[++j]):(S=C,C=d[++U]);let L=0;if(j<n&&U<i)for(C>R==C>-R?(x=R+S,A=S-(x-R),R=a[++j]):(x=C+S,A=S-(x-C),C=d[++U]),S=x,A!==0&&(g[L++]=A);j<n&&U<i;)C>R==C>-R?(x=S+R,P=x-S,A=S-(x-P)+(R-P),R=a[++j]):(x=S+C,P=x-S,A=S-(x-P)+(C-P),C=d[++U]),S=x,A!==0&&(g[L++]=A);for(;j<n;)x=S+R,P=x-S,A=S-(x-P)+(R-P),R=a[++j],S=x,A!==0&&(g[L++]=A);for(;U<i;)x=S+C,P=x-S,A=S-(x-P)+(C-P),C=d[++U],S=x,A!==0&&(g[L++]=A);return(S!==0||L===0)&&(g[L++]=S),L}function u(n,a,i,d,g,S,x,A){return s(s(n,a,i,d,x),x,g,S,A)}function f(n,a,i,d){let g,S,x,A,P,R,C,j,U,L,Z;C=e*i,L=C-(C-i),Z=i-L;let b=a[0];g=b*i,C=e*b,j=C-(C-b),U=b-j,x=U*Z-(g-j*L-U*L-j*Z);let G=0;x!==0&&(d[G++]=x);for(let W=1;W<n;W++)b=a[W],A=b*i,C=e*b,j=C-(C-b),U=b-j,P=U*Z-(A-j*L-U*L-j*Z),S=g+P,R=S-g,x=g-(S-R)+(P-R),x!==0&&(d[G++]=x),g=A+S,x=S-(g-A),x!==0&&(d[G++]=x);return(g!==0||G===0)&&(d[G++]=g),G}function c(n,a){for(let i=0;i<n;i++)a[i]=-a[i];return n}function h(n,a){let i=a[0];for(let d=1;d<n;d++)i+=a[d];return i}function v(n){return new Float64Array(n)}const y=(3+16*r)*r,m=(2+12*r)*r,E=(9+64*r)*r*r,I=v(4),O=v(8),T=v(12),N=v(16),M=v(4);function F(n,a,i,d,g,S,x){let A,P,R,C,j,U,L,Z,b,G,W,Q,J,ut,rt,xt,it,vt;const ft=n-g,St=i-g,Rt=a-S,Mt=d-S;ut=ft*Mt,U=e*ft,L=U-(U-ft),Z=ft-L,U=e*Mt,b=U-(U-Mt),G=Mt-b,rt=Z*G-(ut-L*b-Z*b-L*G),xt=Rt*St,U=e*Rt,L=U-(U-Rt),Z=Rt-L,U=e*St,b=U-(U-St),G=St-b,it=Z*G-(xt-L*b-Z*b-L*G),W=rt-it,j=rt-W,I[0]=rt-(W+j)+(j-it),Q=ut+W,j=Q-ut,J=ut-(Q-j)+(W-j),W=J-xt,j=J-W,I[1]=J-(W+j)+(j-xt),vt=Q+W,j=vt-Q,I[2]=Q-(vt-j)+(W-j),I[3]=vt;let Vt=h(4,I),V=m*x;if(Vt>=V||-Vt>=V||(j=n-ft,A=n-(ft+j)+(j-g),j=i-St,R=i-(St+j)+(j-g),j=a-Rt,P=a-(Rt+j)+(j-S),j=d-Mt,C=d-(Mt+j)+(j-S),A===0&&P===0&&R===0&&C===0)||(V=E*x+o*Math.abs(Vt),Vt+=ft*C+Mt*A-(Rt*R+St*P),Vt>=V||-Vt>=V))return Vt;ut=A*Mt,U=e*A,L=U-(U-A),Z=A-L,U=e*Mt,b=U-(U-Mt),G=Mt-b,rt=Z*G-(ut-L*b-Z*b-L*G),xt=P*St,U=e*P,L=U-(U-P),Z=P-L,U=e*St,b=U-(U-St),G=St-b,it=Z*G-(xt-L*b-Z*b-L*G),W=rt-it,j=rt-W,M[0]=rt-(W+j)+(j-it),Q=ut+W,j=Q-ut,J=ut-(Q-j)+(W-j),W=J-xt,j=J-W,M[1]=J-(W+j)+(j-xt),vt=Q+W,j=vt-Q,M[2]=Q-(vt-j)+(W-j),M[3]=vt;const _=s(4,I,4,M,O);ut=ft*C,U=e*ft,L=U-(U-ft),Z=ft-L,U=e*C,b=U-(U-C),G=C-b,rt=Z*G-(ut-L*b-Z*b-L*G),xt=Rt*R,U=e*Rt,L=U-(U-Rt),Z=Rt-L,U=e*R,b=U-(U-R),G=R-b,it=Z*G-(xt-L*b-Z*b-L*G),W=rt-it,j=rt-W,M[0]=rt-(W+j)+(j-it),Q=ut+W,j=Q-ut,J=ut-(Q-j)+(W-j),W=J-xt,j=J-W,M[1]=J-(W+j)+(j-xt),vt=Q+W,j=vt-Q,M[2]=Q-(vt-j)+(W-j),M[3]=vt;const q=s(_,O,4,M,T);ut=A*C,U=e*A,L=U-(U-A),Z=A-L,U=e*C,b=U-(U-C),G=C-b,rt=Z*G-(ut-L*b-Z*b-L*G),xt=P*R,U=e*P,L=U-(U-P),Z=P-L,U=e*R,b=U-(U-R),G=R-b,it=Z*G-(xt-L*b-Z*b-L*G),W=rt-it,j=rt-W,M[0]=rt-(W+j)+(j-it),Q=ut+W,j=Q-ut,J=ut-(Q-j)+(W-j),W=J-xt,j=J-W,M[1]=J-(W+j)+(j-xt),vt=Q+W,j=vt-Q,M[2]=Q-(vt-j)+(W-j),M[3]=vt;const dt=s(q,T,4,M,N);return N[dt-1]}function D(n,a,i,d,g,S){const x=(a-S)*(i-g),A=(n-g)*(d-S),P=x-A,R=Math.abs(x+A);return Math.abs(P)>=y*R?P:-F(n,a,i,d,g,S,R)}function w(n,a,i,d,g,S){return(a-S)*(i-g)-(n-g)*(d-S)}const $=(7+56*r)*r,B=(3+28*r)*r,H=(26+288*r)*r*r,X=v(4),Y=v(4),k=v(4),ot=v(4),st=v(4),tt=v(4),et=v(4),at=v(4),gt=v(4),Pt=v(8),Ot=v(8),Nt=v(8),It=v(4),qt=v(8),Qt=v(8),Jt=v(8),er=v(12);let ir=v(192),Ar=v(192);function xr(n,a,i){n=sum(n,ir,a,i,Ar);const d=ir;return ir=Ar,Ar=d,n}function Er(n,a,i,d,g,S,x,A){let P,R,C,j,U,L,Z,b,G,W,Q,J,ut,rt,xt,it;return n===0?a===0?(x[0]=0,A[0]=0,1):(it=-a,Q=it*i,R=splitter*it,C=R-(R-it),j=it-C,R=splitter*i,U=R-(R-i),L=i-U,x[0]=j*L-(Q-C*U-j*U-C*L),x[1]=Q,Q=a*g,R=splitter*a,C=R-(R-a),j=a-C,R=splitter*g,U=R-(R-g),L=g-U,A[0]=j*L-(Q-C*U-j*U-C*L),A[1]=Q,2):a===0?(Q=n*d,R=splitter*n,C=R-(R-n),j=n-C,R=splitter*d,U=R-(R-d),L=d-U,x[0]=j*L-(Q-C*U-j*U-C*L),x[1]=Q,it=-n,Q=it*S,R=splitter*it,C=R-(R-it),j=it-C,R=splitter*S,U=R-(R-S),L=S-U,A[0]=j*L-(Q-C*U-j*U-C*L),A[1]=Q,2):(Q=n*d,R=splitter*n,C=R-(R-n),j=n-C,R=splitter*d,U=R-(R-d),L=d-U,J=j*L-(Q-C*U-j*U-C*L),ut=a*i,R=splitter*a,C=R-(R-a),j=a-C,R=splitter*i,U=R-(R-i),L=i-U,rt=j*L-(ut-C*U-j*U-C*L),Z=J-rt,P=J-Z,x[0]=J-(Z+P)+(P-rt),b=Q+Z,P=b-Q,W=Q-(b-P)+(Z-P),Z=W-ut,P=W-Z,x[1]=W-(Z+P)+(P-ut),xt=b+Z,P=xt-b,x[2]=b-(xt-P)+(Z-P),x[3]=xt,Q=a*g,R=splitter*a,C=R-(R-a),j=a-C,R=splitter*g,U=R-(R-g),L=g-U,J=j*L-(Q-C*U-j*U-C*L),ut=n*S,R=splitter*n,C=R-(R-n),j=n-C,R=splitter*S,U=R-(R-S),L=S-U,rt=j*L-(ut-C*U-j*U-C*L),Z=J-rt,P=J-Z,A[0]=J-(Z+P)+(P-rt),b=Q+Z,P=b-Q,W=Q-(b-P)+(Z-P),Z=W-ut,P=W-Z,A[1]=W-(Z+P)+(P-ut),xt=b+Z,P=xt-b,A[2]=b-(xt-P)+(Z-P),A[3]=xt,4)}function Yt(n,a,i,d,g){let S,x,A,P,R,C,j,U,L,Z,b,G,W;return b=a*i,x=splitter*a,A=x-(x-a),P=a-A,x=splitter*i,R=x-(x-i),C=i-R,G=P*C-(b-A*R-P*R-A*C),x=splitter*d,R=x-(x-d),C=d-R,j=G*d,x=splitter*G,A=x-(x-G),P=G-A,It[0]=P*C-(j-A*R-P*R-A*C),U=b*d,x=splitter*b,A=x-(x-b),P=b-A,Z=P*C-(U-A*R-P*R-A*C),L=j+Z,S=L-j,It[1]=j-(L-S)+(Z-S),W=U+L,It[2]=L-(W-U),It[3]=W,n=xr(n,4,It),g!==0&&(x=splitter*g,R=x-(x-g),C=g-R,j=G*g,x=splitter*G,A=x-(x-G),P=G-A,It[0]=P*C-(j-A*R-P*R-A*C),U=b*g,x=splitter*b,A=x-(x-b),P=b-A,Z=P*C-(U-A*R-P*R-A*C),L=j+Z,S=L-j,It[1]=j-(L-S)+(Z-S),W=U+L,It[2]=L-(W-U),It[3]=W,n=xr(n,4,It)),n}function tr(n,a,i,d,g,S,x,A,P,R,C,j,U){let L,Z,b,G,W,Q,J,ut,rt,xt,it,vt,ft,St,Rt,Mt,Vt,V,_,q,dt,K,nt,z,ct;const pt=n-R,Tt=d-R,Et=x-R,Lt=a-C,Zt=g-C,Dt=A-C,nr=i-j,or=S-j,sr=P-j;dt=Tt*Dt,vt=splitter*Tt,ft=vt-(vt-Tt),St=Tt-ft,vt=splitter*Dt,Rt=vt-(vt-Dt),Mt=Dt-Rt,K=St*Mt-(dt-ft*Rt-St*Rt-ft*Mt),nt=Et*Zt,vt=splitter*Et,ft=vt-(vt-Et),St=Et-ft,vt=splitter*Zt,Rt=vt-(vt-Zt),Mt=Zt-Rt,z=St*Mt-(nt-ft*Rt-St*Rt-ft*Mt),Vt=K-z,it=K-Vt,X[0]=K-(Vt+it)+(it-z),V=dt+Vt,it=V-dt,q=dt-(V-it)+(Vt-it),Vt=q-nt,it=q-Vt,X[1]=q-(Vt+it)+(it-nt),ct=V+Vt,it=ct-V,X[2]=V-(ct-it)+(Vt-it),X[3]=ct,dt=Et*Lt,vt=splitter*Et,ft=vt-(vt-Et),St=Et-ft,vt=splitter*Lt,Rt=vt-(vt-Lt),Mt=Lt-Rt,K=St*Mt-(dt-ft*Rt-St*Rt-ft*Mt),nt=pt*Dt,vt=splitter*pt,ft=vt-(vt-pt),St=pt-ft,vt=splitter*Dt,Rt=vt-(vt-Dt),Mt=Dt-Rt,z=St*Mt-(nt-ft*Rt-St*Rt-ft*Mt),Vt=K-z,it=K-Vt,Y[0]=K-(Vt+it)+(it-z),V=dt+Vt,it=V-dt,q=dt-(V-it)+(Vt-it),Vt=q-nt,it=q-Vt,Y[1]=q-(Vt+it)+(it-nt),ct=V+Vt,it=ct-V,Y[2]=V-(ct-it)+(Vt-it),Y[3]=ct,dt=pt*Zt,vt=splitter*pt,ft=vt-(vt-pt),St=pt-ft,vt=splitter*Zt,Rt=vt-(vt-Zt),Mt=Zt-Rt,K=St*Mt-(dt-ft*Rt-St*Rt-ft*Mt),nt=Tt*Lt,vt=splitter*Tt,ft=vt-(vt-Tt),St=Tt-ft,vt=splitter*Lt,Rt=vt-(vt-Lt),Mt=Lt-Rt,z=St*Mt-(nt-ft*Rt-St*Rt-ft*Mt),Vt=K-z,it=K-Vt,k[0]=K-(Vt+it)+(it-z),V=dt+Vt,it=V-dt,q=dt-(V-it)+(Vt-it),Vt=q-nt,it=q-Vt,k[1]=q-(Vt+it)+(it-nt),ct=V+Vt,it=ct-V,k[2]=V-(ct-it)+(Vt-it),k[3]=ct,L=sum(sum(scale(4,X,nr,qt),qt,scale(4,Y,or,Qt),Qt,Jt),Jt,scale(4,k,sr,qt),qt,ir);let ur=estimate(L,ir),lr=B*U;if(ur>=lr||-ur>=lr||(it=n-pt,Z=n-(pt+it)+(it-R),it=d-Tt,b=d-(Tt+it)+(it-R),it=x-Et,G=x-(Et+it)+(it-R),it=a-Lt,W=a-(Lt+it)+(it-C),it=g-Zt,Q=g-(Zt+it)+(it-C),it=A-Dt,J=A-(Dt+it)+(it-C),it=i-nr,ut=i-(nr+it)+(it-j),it=S-or,rt=S-(or+it)+(it-j),it=P-sr,xt=P-(sr+it)+(it-j),Z===0&&b===0&&G===0&&W===0&&Q===0&&J===0&&ut===0&&rt===0&&xt===0)||(lr=H*U+resulterrbound*Math.abs(ur),ur+=nr*(Tt*J+Dt*b-(Zt*G+Et*Q))+ut*(Tt*Dt-Zt*Et)+or*(Et*W+Lt*G-(Dt*Z+pt*J))+rt*(Et*Lt-Dt*pt)+sr*(pt*Q+Zt*Z-(Lt*b+Tt*W))+xt*(pt*Zt-Lt*Tt),ur>=lr||-ur>=lr))return ur;const fr=Er(Z,W,Tt,Zt,Et,Dt,ot,st),$r=Er(b,Q,Et,Dt,pt,Lt,tt,et),br=Er(G,J,pt,Lt,Tt,Zt,at,gt),Nr=sum($r,tt,br,gt,Pt);L=xr(L,scale(Nr,Pt,nr,Jt),Jt);const _t=sum(br,at,fr,st,Ot);L=xr(L,scale(_t,Ot,or,Jt),Jt);const Dr=sum(fr,ot,$r,et,Nt);return L=xr(L,scale(Dr,Nt,sr,Jt),Jt),ut!==0&&(L=xr(L,scale(4,X,ut,er),er),L=xr(L,scale(Nr,Pt,ut,Jt),Jt)),rt!==0&&(L=xr(L,scale(4,Y,rt,er),er),L=xr(L,scale(_t,Ot,rt,Jt),Jt)),xt!==0&&(L=xr(L,scale(4,k,xt,er),er),L=xr(L,scale(Dr,Nt,xt,Jt),Jt)),Z!==0&&(Q!==0&&(L=Yt(L,Z,Q,sr,xt)),J!==0&&(L=Yt(L,-Z,J,or,rt))),b!==0&&(J!==0&&(L=Yt(L,b,J,nr,ut)),W!==0&&(L=Yt(L,-b,W,sr,xt))),G!==0&&(W!==0&&(L=Yt(L,G,W,or,rt)),Q!==0&&(L=Yt(L,-G,Q,nr,ut))),ir[L-1]}function Sr(n,a,i,d,g,S,x,A,P,R,C,j){const U=n-R,L=d-R,Z=x-R,b=a-C,G=g-C,W=A-C,Q=i-j,J=S-j,ut=P-j,rt=L*W,xt=Z*G,it=Z*b,vt=U*W,ft=U*G,St=L*b,Rt=Q*(rt-xt)+J*(it-vt)+ut*(ft-St),Mt=(Math.abs(rt)+Math.abs(xt))*Math.abs(Q)+(Math.abs(it)+Math.abs(vt))*Math.abs(J)+(Math.abs(ft)+Math.abs(St))*Math.abs(ut),Vt=$*Mt;return Rt>Vt||-Rt>Vt?Rt:tr(n,a,i,d,g,S,x,A,P,R,C,j,Mt)}function Ir(n,a,i,d,g,S,x,A,P,R,C,j){const U=n-R,L=d-R,Z=x-R,b=a-C,G=g-C,W=A-C,Q=i-j,J=S-j,ut=P-j;return U*(G*ut-J*W)+L*(W*Q-ut*b)+Z*(b*J-Q*G)}const pr=(10+96*r)*r,Or=(4+48*r)*r,Ur=(44+576*r)*r*r,Lr=v(4),Pr=v(4),mr=v(4),Mr=v(4),Tr=v(4),yr=v(4),bt=v(4),Ht=v(4),Ft=v(8),cr=v(8),vr=v(8),ar=v(8),rr=v(8),jr=v(8),wr=v(8),yt=v(8),jt=v(8),Gt=v(4),Bt=v(4),zt=v(4),lt=v(8),Ut=v(16),gr=v(16),Ct=v(16),$t=v(32),kt=v(32),Wt=v(48),dr=v(64);let Fr=v(1152),Br=v(1152);function Rr(n,a,i){n=sum(n,Fr,a,i,Br);const d=Fr;return Fr=Br,Br=d,n}function Qr(n,a,i,d,g,S,x,A,P){let R,C,j,U,L,Z,b,G,W,Q,J,ut,rt,xt,it,vt,ft,St,Rt,Mt,Vt,V,_,q,dt,K,nt,z,ct,pt,Tt,Et,Lt,Zt,Dt;const nr=n-x,or=i-x,sr=g-x,ur=a-A,lr=d-A,fr=S-A;Tt=or*fr,_=splitter*or,q=_-(_-or),dt=or-q,_=splitter*fr,K=_-(_-fr),nt=fr-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=sr*lr,_=splitter*sr,q=_-(_-sr),dt=sr-q,_=splitter*lr,K=_-(_-lr),nt=lr-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et-Zt,V=Et-z,Lr[0]=Et-(z+V)+(V-Zt),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt-Lt,V=pt-z,Lr[1]=pt-(z+V)+(V-Lt),Dt=ct+z,V=Dt-ct,Lr[2]=ct-(Dt-V)+(z-V),Lr[3]=Dt,Tt=sr*ur,_=splitter*sr,q=_-(_-sr),dt=sr-q,_=splitter*ur,K=_-(_-ur),nt=ur-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=nr*fr,_=splitter*nr,q=_-(_-nr),dt=nr-q,_=splitter*fr,K=_-(_-fr),nt=fr-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et-Zt,V=Et-z,Pr[0]=Et-(z+V)+(V-Zt),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt-Lt,V=pt-z,Pr[1]=pt-(z+V)+(V-Lt),Dt=ct+z,V=Dt-ct,Pr[2]=ct-(Dt-V)+(z-V),Pr[3]=Dt,Tt=nr*lr,_=splitter*nr,q=_-(_-nr),dt=nr-q,_=splitter*lr,K=_-(_-lr),nt=lr-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=or*ur,_=splitter*or,q=_-(_-or),dt=or-q,_=splitter*ur,K=_-(_-ur),nt=ur-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et-Zt,V=Et-z,mr[0]=Et-(z+V)+(V-Zt),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt-Lt,V=pt-z,mr[1]=pt-(z+V)+(V-Lt),Dt=ct+z,V=Dt-ct,mr[2]=ct-(Dt-V)+(z-V),mr[3]=Dt,R=sum(sum(sum(scale(scale(4,Lr,nr,lt),lt,nr,Ut),Ut,scale(scale(4,Lr,ur,lt),lt,ur,gr),gr,$t),$t,sum(scale(scale(4,Pr,or,lt),lt,or,Ut),Ut,scale(scale(4,Pr,lr,lt),lt,lr,gr),gr,kt),kt,dr),dr,sum(scale(scale(4,mr,sr,lt),lt,sr,Ut),Ut,scale(scale(4,mr,fr,lt),lt,fr,gr),gr,$t),$t,Fr);let $r=estimate(R,Fr),br=Or*P;if($r>=br||-$r>=br||(V=n-nr,C=n-(nr+V)+(V-x),V=a-ur,L=a-(ur+V)+(V-A),V=i-or,j=i-(or+V)+(V-x),V=d-lr,Z=d-(lr+V)+(V-A),V=g-sr,U=g-(sr+V)+(V-x),V=S-fr,b=S-(fr+V)+(V-A),C===0&&j===0&&U===0&&L===0&&Z===0&&b===0)||(br=Ur*P+resulterrbound*Math.abs($r),$r+=(nr*nr+ur*ur)*(or*b+fr*j-(lr*U+sr*Z))+2*(nr*C+ur*L)*(or*fr-lr*sr)+((or*or+lr*lr)*(sr*L+ur*U-(fr*C+nr*b))+2*(or*j+lr*Z)*(sr*ur-fr*nr))+((sr*sr+fr*fr)*(nr*Z+lr*C-(ur*j+or*L))+2*(sr*U+fr*b)*(nr*lr-ur*or)),$r>=br||-$r>=br))return $r;if((j!==0||Z!==0||U!==0||b!==0)&&(Tt=nr*nr,_=splitter*nr,q=_-(_-nr),dt=nr-q,Et=dt*dt-(Tt-q*q-(q+q)*dt),Lt=ur*ur,_=splitter*ur,q=_-(_-ur),dt=ur-q,Zt=dt*dt-(Lt-q*q-(q+q)*dt),z=Et+Zt,V=z-Et,Mr[0]=Et-(z-V)+(Zt-V),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt+Lt,V=z-pt,Mr[1]=pt-(z-V)+(Lt-V),Dt=ct+z,V=Dt-ct,Mr[2]=ct-(Dt-V)+(z-V),Mr[3]=Dt),(U!==0||b!==0||C!==0||L!==0)&&(Tt=or*or,_=splitter*or,q=_-(_-or),dt=or-q,Et=dt*dt-(Tt-q*q-(q+q)*dt),Lt=lr*lr,_=splitter*lr,q=_-(_-lr),dt=lr-q,Zt=dt*dt-(Lt-q*q-(q+q)*dt),z=Et+Zt,V=z-Et,Tr[0]=Et-(z-V)+(Zt-V),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt+Lt,V=z-pt,Tr[1]=pt-(z-V)+(Lt-V),Dt=ct+z,V=Dt-ct,Tr[2]=ct-(Dt-V)+(z-V),Tr[3]=Dt),(C!==0||L!==0||j!==0||Z!==0)&&(Tt=sr*sr,_=splitter*sr,q=_-(_-sr),dt=sr-q,Et=dt*dt-(Tt-q*q-(q+q)*dt),Lt=fr*fr,_=splitter*fr,q=_-(_-fr),dt=fr-q,Zt=dt*dt-(Lt-q*q-(q+q)*dt),z=Et+Zt,V=z-Et,yr[0]=Et-(z-V)+(Zt-V),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt+Lt,V=z-pt,yr[1]=pt-(z-V)+(Lt-V),Dt=ct+z,V=Dt-ct,yr[2]=ct-(Dt-V)+(z-V),yr[3]=Dt),C!==0&&(G=scale(4,Lr,C,Ft),R=Rr(R,sum_three(scale(G,Ft,2*nr,Ut),Ut,scale(scale(4,yr,C,lt),lt,lr,gr),gr,scale(scale(4,Tr,C,lt),lt,-fr,Ct),Ct,$t,Wt),Wt)),L!==0&&(W=scale(4,Lr,L,cr),R=Rr(R,sum_three(scale(W,cr,2*ur,Ut),Ut,scale(scale(4,Tr,L,lt),lt,sr,gr),gr,scale(scale(4,yr,L,lt),lt,-or,Ct),Ct,$t,Wt),Wt)),j!==0&&(Q=scale(4,Pr,j,vr),R=Rr(R,sum_three(scale(Q,vr,2*or,Ut),Ut,scale(scale(4,Mr,j,lt),lt,fr,gr),gr,scale(scale(4,yr,j,lt),lt,-ur,Ct),Ct,$t,Wt),Wt)),Z!==0&&(J=scale(4,Pr,Z,ar),R=Rr(R,sum_three(scale(J,ar,2*lr,Ut),Ut,scale(scale(4,yr,Z,lt),lt,nr,gr),gr,scale(scale(4,Mr,Z,lt),lt,-sr,Ct),Ct,$t,Wt),Wt)),U!==0&&(ut=scale(4,mr,U,rr),R=Rr(R,sum_three(scale(ut,rr,2*sr,Ut),Ut,scale(scale(4,Tr,U,lt),lt,ur,gr),gr,scale(scale(4,Mr,U,lt),lt,-lr,Ct),Ct,$t,Wt),Wt)),b!==0&&(rt=scale(4,mr,b,jr),R=Rr(R,sum_three(scale(rt,jr,2*fr,Ut),Ut,scale(scale(4,Mr,b,lt),lt,or,gr),gr,scale(scale(4,Tr,b,lt),lt,-nr,Ct),Ct,$t,Wt),Wt)),C!==0||L!==0){if(j!==0||Z!==0||U!==0||b!==0?(Tt=j*fr,_=splitter*j,q=_-(_-j),dt=j-q,_=splitter*fr,K=_-(_-fr),nt=fr-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=or*b,_=splitter*or,q=_-(_-or),dt=or-q,_=splitter*b,K=_-(_-b),nt=b-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et+Zt,V=z-Et,bt[0]=Et-(z-V)+(Zt-V),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt+Lt,V=z-pt,bt[1]=pt-(z-V)+(Lt-V),Dt=ct+z,V=Dt-ct,bt[2]=ct-(Dt-V)+(z-V),bt[3]=Dt,Tt=U*-lr,_=splitter*U,q=_-(_-U),dt=U-q,_=splitter*-lr,K=_-(_- -lr),nt=-lr-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=sr*-Z,_=splitter*sr,q=_-(_-sr),dt=sr-q,_=splitter*-Z,K=_-(_- -Z),nt=-Z-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et+Zt,V=z-Et,Ht[0]=Et-(z-V)+(Zt-V),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt+Lt,V=z-pt,Ht[1]=pt-(z-V)+(Lt-V),Dt=ct+z,V=Dt-ct,Ht[2]=ct-(Dt-V)+(z-V),Ht[3]=Dt,it=sum(4,bt,4,Ht,yt),Tt=j*b,_=splitter*j,q=_-(_-j),dt=j-q,_=splitter*b,K=_-(_-b),nt=b-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=U*Z,_=splitter*U,q=_-(_-U),dt=U-q,_=splitter*Z,K=_-(_-Z),nt=Z-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et-Zt,V=Et-z,Bt[0]=Et-(z+V)+(V-Zt),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt-Lt,V=pt-z,Bt[1]=pt-(z+V)+(V-Lt),Dt=ct+z,V=Dt-ct,Bt[2]=ct-(Dt-V)+(z-V),Bt[3]=Dt,St=4):(yt[0]=0,it=1,Bt[0]=0,St=1),C!==0){const Nr=scale(it,yt,C,Ct);R=Rr(R,sum(scale(G,Ft,C,Ut),Ut,scale(Nr,Ct,2*nr,$t),$t,Wt),Wt);const _t=scale(St,Bt,C,lt);R=Rr(R,sum_three(scale(_t,lt,2*nr,Ut),Ut,scale(_t,lt,C,gr),gr,scale(Nr,Ct,C,$t),$t,kt,dr),dr),Z!==0&&(R=Rr(R,scale(scale(4,yr,C,lt),lt,Z,Ut),Ut)),b!==0&&(R=Rr(R,scale(scale(4,Tr,-C,lt),lt,b,Ut),Ut))}if(L!==0){const Nr=scale(it,yt,L,Ct);R=Rr(R,sum(scale(W,cr,L,Ut),Ut,scale(Nr,Ct,2*ur,$t),$t,Wt),Wt);const _t=scale(St,Bt,L,lt);R=Rr(R,sum_three(scale(_t,lt,2*ur,Ut),Ut,scale(_t,lt,L,gr),gr,scale(Nr,Ct,L,$t),$t,kt,dr),dr)}}if(j!==0||Z!==0){if(U!==0||b!==0||C!==0||L!==0?(Tt=U*ur,_=splitter*U,q=_-(_-U),dt=U-q,_=splitter*ur,K=_-(_-ur),nt=ur-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=sr*L,_=splitter*sr,q=_-(_-sr),dt=sr-q,_=splitter*L,K=_-(_-L),nt=L-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et+Zt,V=z-Et,bt[0]=Et-(z-V)+(Zt-V),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt+Lt,V=z-pt,bt[1]=pt-(z-V)+(Lt-V),Dt=ct+z,V=Dt-ct,bt[2]=ct-(Dt-V)+(z-V),bt[3]=Dt,Mt=-fr,Vt=-b,Tt=C*Mt,_=splitter*C,q=_-(_-C),dt=C-q,_=splitter*Mt,K=_-(_-Mt),nt=Mt-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=nr*Vt,_=splitter*nr,q=_-(_-nr),dt=nr-q,_=splitter*Vt,K=_-(_-Vt),nt=Vt-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et+Zt,V=z-Et,Ht[0]=Et-(z-V)+(Zt-V),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt+Lt,V=z-pt,Ht[1]=pt-(z-V)+(Lt-V),Dt=ct+z,V=Dt-ct,Ht[2]=ct-(Dt-V)+(z-V),Ht[3]=Dt,vt=sum(4,bt,4,Ht,jt),Tt=U*L,_=splitter*U,q=_-(_-U),dt=U-q,_=splitter*L,K=_-(_-L),nt=L-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=C*b,_=splitter*C,q=_-(_-C),dt=C-q,_=splitter*b,K=_-(_-b),nt=b-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et-Zt,V=Et-z,zt[0]=Et-(z+V)+(V-Zt),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt-Lt,V=pt-z,zt[1]=pt-(z+V)+(V-Lt),Dt=ct+z,V=Dt-ct,zt[2]=ct-(Dt-V)+(z-V),zt[3]=Dt,Rt=4):(jt[0]=0,vt=1,zt[0]=0,Rt=1),j!==0){const Nr=scale(vt,jt,j,Ct);R=Rr(R,sum(scale(Q,vr,j,Ut),Ut,scale(Nr,Ct,2*or,$t),$t,Wt),Wt);const _t=scale(Rt,zt,j,lt);R=Rr(R,sum_three(scale(_t,lt,2*or,Ut),Ut,scale(_t,lt,j,gr),gr,scale(Nr,Ct,j,$t),$t,kt,dr),dr),b!==0&&(R=Rr(R,scale(scale(4,Mr,j,lt),lt,b,Ut),Ut)),L!==0&&(R=Rr(R,scale(scale(4,yr,-j,lt),lt,L,Ut),Ut))}if(Z!==0){const Nr=scale(vt,jt,Z,Ct);R=Rr(R,sum(scale(J,ar,Z,Ut),Ut,scale(Nr,Ct,2*lr,$t),$t,Wt),Wt);const _t=scale(Rt,zt,Z,lt);R=Rr(R,sum_three(scale(_t,lt,2*lr,Ut),Ut,scale(_t,lt,Z,gr),gr,scale(Nr,Ct,Z,$t),$t,kt,dr),dr)}}if(U!==0||b!==0){if(C!==0||L!==0||j!==0||Z!==0?(Tt=C*lr,_=splitter*C,q=_-(_-C),dt=C-q,_=splitter*lr,K=_-(_-lr),nt=lr-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=nr*Z,_=splitter*nr,q=_-(_-nr),dt=nr-q,_=splitter*Z,K=_-(_-Z),nt=Z-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et+Zt,V=z-Et,bt[0]=Et-(z-V)+(Zt-V),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt+Lt,V=z-pt,bt[1]=pt-(z-V)+(Lt-V),Dt=ct+z,V=Dt-ct,bt[2]=ct-(Dt-V)+(z-V),bt[3]=Dt,Mt=-ur,Vt=-L,Tt=j*Mt,_=splitter*j,q=_-(_-j),dt=j-q,_=splitter*Mt,K=_-(_-Mt),nt=Mt-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=or*Vt,_=splitter*or,q=_-(_-or),dt=or-q,_=splitter*Vt,K=_-(_-Vt),nt=Vt-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et+Zt,V=z-Et,Ht[0]=Et-(z-V)+(Zt-V),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt+Lt,V=z-pt,Ht[1]=pt-(z-V)+(Lt-V),Dt=ct+z,V=Dt-ct,Ht[2]=ct-(Dt-V)+(z-V),Ht[3]=Dt,xt=sum(4,bt,4,Ht,wr),Tt=C*Z,_=splitter*C,q=_-(_-C),dt=C-q,_=splitter*Z,K=_-(_-Z),nt=Z-K,Et=dt*nt-(Tt-q*K-dt*K-q*nt),Lt=j*L,_=splitter*j,q=_-(_-j),dt=j-q,_=splitter*L,K=_-(_-L),nt=L-K,Zt=dt*nt-(Lt-q*K-dt*K-q*nt),z=Et-Zt,V=Et-z,Gt[0]=Et-(z+V)+(V-Zt),ct=Tt+z,V=ct-Tt,pt=Tt-(ct-V)+(z-V),z=pt-Lt,V=pt-z,Gt[1]=pt-(z+V)+(V-Lt),Dt=ct+z,V=Dt-ct,Gt[2]=ct-(Dt-V)+(z-V),Gt[3]=Dt,ft=4):(wr[0]=0,xt=1,Gt[0]=0,ft=1),U!==0){const Nr=scale(xt,wr,U,Ct);R=Rr(R,sum(scale(ut,rr,U,Ut),Ut,scale(Nr,Ct,2*sr,$t),$t,Wt),Wt);const _t=scale(ft,Gt,U,lt);R=Rr(R,sum_three(scale(_t,lt,2*sr,Ut),Ut,scale(_t,lt,U,gr),gr,scale(Nr,Ct,U,$t),$t,kt,dr),dr),L!==0&&(R=Rr(R,scale(scale(4,Tr,U,lt),lt,L,Ut),Ut)),Z!==0&&(R=Rr(R,scale(scale(4,Mr,-U,lt),lt,Z,Ut),Ut))}if(b!==0){const Nr=scale(xt,wr,b,Ct);R=Rr(R,sum(scale(rt,jr,b,Ut),Ut,scale(Nr,Ct,2*fr,$t),$t,Wt),Wt);const _t=scale(ft,Gt,b,lt);R=Rr(R,sum_three(scale(_t,lt,2*fr,Ut),Ut,scale(_t,lt,b,gr),gr,scale(Nr,Ct,b,$t),$t,kt,dr),dr)}}return Fr[R-1]}function tn(n,a,i,d,g,S,x,A){const P=n-x,R=i-x,C=g-x,j=a-A,U=d-A,L=S-A,Z=R*L,b=C*U,G=P*P+j*j,W=C*j,Q=P*L,J=R*R+U*U,ut=P*U,rt=R*j,xt=C*C+L*L,it=G*(Z-b)+J*(W-Q)+xt*(ut-rt),vt=(Math.abs(Z)+Math.abs(b))*G+(Math.abs(W)+Math.abs(Q))*J+(Math.abs(ut)+Math.abs(rt))*xt,ft=pr*vt;return it>ft||-it>ft?it:Qr(n,a,i,d,g,S,x,A,vt)}function dn(n,a,i,d,g,S,x,A){const P=n-x,R=a-A,C=i-x,j=d-A,U=g-x,L=S-A,Z=P*j-C*R,b=C*L-U*j,G=U*R-P*L,W=P*P+R*R,Q=C*C+j*j,J=U*U+L*L;return W*b+Q*G+J*Z}const Kn=(16+224*r)*r,oe=(5+72*r)*r,Yn=(71+1408*r)*r*r,Zr=v(4),Wr=v(4),an=v(4),un=v(4),rn=v(4),nn=v(4),kr=v(4),Yr=v(4),Vr=v(4),mn=v(4),$n=v(24),mt=v(24),Xt=v(24),At=v(24),ht=v(24),wt=v(24),Cr=v(24),hr=v(24),Hr=v(24),zr=v(24),Xr=v(1152),en=v(1152),Kt=v(1152),Jr=v(1152),cn=v(1152),Cn=v(2304),bn=v(2304),zn=v(3456),Un=v(5760),ua=v(8),la=v(8),fa=v(8),No=v(16),se=v(24),An=v(48),$e=v(48),ie=v(96),Nn=v(192),ca=v(384),va=v(384),da=v(384),Mo=v(768);function hn(n,a,i,d,g,S,x){return sum_three(scale(4,n,d,ua),ua,scale(4,a,g,la),la,scale(4,i,S,fa),fa,No,x)}function Xn(n,a,i,d,g,S,x,A,P,R,C,j){const U=sum(sum(n,a,i,d,An),An,negate(sum(g,S,x,A,$e),$e),$e,ie);return sum_three(scale(scale(U,ie,P,Nn),Nn,P,ca),ca,scale(scale(U,ie,R,Nn),Nn,R,va),va,scale(scale(U,ie,C,Nn),Nn,C,da),da,Mo,j)}function Do(n,a,i,d,g,S,x,A,P,R,C,j,U,L,Z){let b,G,W,Q,J,ut,rt,xt,it,vt,ft,St,Rt,Mt;vt=n*g,G=splitter*n,W=G-(G-n),Q=n-W,G=splitter*g,J=G-(G-g),ut=g-J,ft=Q*ut-(vt-W*J-Q*J-W*ut),St=d*a,G=splitter*d,W=G-(G-d),Q=d-W,G=splitter*a,J=G-(G-a),ut=a-J,Rt=Q*ut-(St-W*J-Q*J-W*ut),rt=ft-Rt,b=ft-rt,Zr[0]=ft-(rt+b)+(b-Rt),xt=vt+rt,b=xt-vt,it=vt-(xt-b)+(rt-b),rt=it-St,b=it-rt,Zr[1]=it-(rt+b)+(b-St),Mt=xt+rt,b=Mt-xt,Zr[2]=xt-(Mt-b)+(rt-b),Zr[3]=Mt,vt=d*A,G=splitter*d,W=G-(G-d),Q=d-W,G=splitter*A,J=G-(G-A),ut=A-J,ft=Q*ut-(vt-W*J-Q*J-W*ut),St=x*g,G=splitter*x,W=G-(G-x),Q=x-W,G=splitter*g,J=G-(G-g),ut=g-J,Rt=Q*ut-(St-W*J-Q*J-W*ut),rt=ft-Rt,b=ft-rt,Wr[0]=ft-(rt+b)+(b-Rt),xt=vt+rt,b=xt-vt,it=vt-(xt-b)+(rt-b),rt=it-St,b=it-rt,Wr[1]=it-(rt+b)+(b-St),Mt=xt+rt,b=Mt-xt,Wr[2]=xt-(Mt-b)+(rt-b),Wr[3]=Mt,vt=x*C,G=splitter*x,W=G-(G-x),Q=x-W,G=splitter*C,J=G-(G-C),ut=C-J,ft=Q*ut-(vt-W*J-Q*J-W*ut),St=R*A,G=splitter*R,W=G-(G-R),Q=R-W,G=splitter*A,J=G-(G-A),ut=A-J,Rt=Q*ut-(St-W*J-Q*J-W*ut),rt=ft-Rt,b=ft-rt,an[0]=ft-(rt+b)+(b-Rt),xt=vt+rt,b=xt-vt,it=vt-(xt-b)+(rt-b),rt=it-St,b=it-rt,an[1]=it-(rt+b)+(b-St),Mt=xt+rt,b=Mt-xt,an[2]=xt-(Mt-b)+(rt-b),an[3]=Mt,vt=R*L,G=splitter*R,W=G-(G-R),Q=R-W,G=splitter*L,J=G-(G-L),ut=L-J,ft=Q*ut-(vt-W*J-Q*J-W*ut),St=U*C,G=splitter*U,W=G-(G-U),Q=U-W,G=splitter*C,J=G-(G-C),ut=C-J,Rt=Q*ut-(St-W*J-Q*J-W*ut),rt=ft-Rt,b=ft-rt,un[0]=ft-(rt+b)+(b-Rt),xt=vt+rt,b=xt-vt,it=vt-(xt-b)+(rt-b),rt=it-St,b=it-rt,un[1]=it-(rt+b)+(b-St),Mt=xt+rt,b=Mt-xt,un[2]=xt-(Mt-b)+(rt-b),un[3]=Mt,vt=U*a,G=splitter*U,W=G-(G-U),Q=U-W,G=splitter*a,J=G-(G-a),ut=a-J,ft=Q*ut-(vt-W*J-Q*J-W*ut),St=n*L,G=splitter*n,W=G-(G-n),Q=n-W,G=splitter*L,J=G-(G-L),ut=L-J,Rt=Q*ut-(St-W*J-Q*J-W*ut),rt=ft-Rt,b=ft-rt,rn[0]=ft-(rt+b)+(b-Rt),xt=vt+rt,b=xt-vt,it=vt-(xt-b)+(rt-b),rt=it-St,b=it-rt,rn[1]=it-(rt+b)+(b-St),Mt=xt+rt,b=Mt-xt,rn[2]=xt-(Mt-b)+(rt-b),rn[3]=Mt,vt=n*A,G=splitter*n,W=G-(G-n),Q=n-W,G=splitter*A,J=G-(G-A),ut=A-J,ft=Q*ut-(vt-W*J-Q*J-W*ut),St=x*a,G=splitter*x,W=G-(G-x),Q=x-W,G=splitter*a,J=G-(G-a),ut=a-J,Rt=Q*ut-(St-W*J-Q*J-W*ut),rt=ft-Rt,b=ft-rt,nn[0]=ft-(rt+b)+(b-Rt),xt=vt+rt,b=xt-vt,it=vt-(xt-b)+(rt-b),rt=it-St,b=it-rt,nn[1]=it-(rt+b)+(b-St),Mt=xt+rt,b=Mt-xt,nn[2]=xt-(Mt-b)+(rt-b),nn[3]=Mt,vt=d*C,G=splitter*d,W=G-(G-d),Q=d-W,G=splitter*C,J=G-(G-C),ut=C-J,ft=Q*ut-(vt-W*J-Q*J-W*ut),St=R*g,G=splitter*R,W=G-(G-R),Q=R-W,G=splitter*g,J=G-(G-g),ut=g-J,Rt=Q*ut-(St-W*J-Q*J-W*ut),rt=ft-Rt,b=ft-rt,kr[0]=ft-(rt+b)+(b-Rt),xt=vt+rt,b=xt-vt,it=vt-(xt-b)+(rt-b),rt=it-St,b=it-rt,kr[1]=it-(rt+b)+(b-St),Mt=xt+rt,b=Mt-xt,kr[2]=xt-(Mt-b)+(rt-b),kr[3]=Mt,vt=x*L,G=splitter*x,W=G-(G-x),Q=x-W,G=splitter*L,J=G-(G-L),ut=L-J,ft=Q*ut-(vt-W*J-Q*J-W*ut),St=U*A,G=splitter*U,W=G-(G-U),Q=U-W,G=splitter*A,J=G-(G-A),ut=A-J,Rt=Q*ut-(St-W*J-Q*J-W*ut),rt=ft-Rt,b=ft-rt,Yr[0]=ft-(rt+b)+(b-Rt),xt=vt+rt,b=xt-vt,it=vt-(xt-b)+(rt-b),rt=it-St,b=it-rt,Yr[1]=it-(rt+b)+(b-St),Mt=xt+rt,b=Mt-xt,Yr[2]=xt-(Mt-b)+(rt-b),Yr[3]=Mt,vt=R*a,G=splitter*R,W=G-(G-R),Q=R-W,G=splitter*a,J=G-(G-a),ut=a-J,ft=Q*ut-(vt-W*J-Q*J-W*ut),St=n*C,G=splitter*n,W=G-(G-n),Q=n-W,G=splitter*C,J=G-(G-C),ut=C-J,Rt=Q*ut-(St-W*J-Q*J-W*ut),rt=ft-Rt,b=ft-rt,Vr[0]=ft-(rt+b)+(b-Rt),xt=vt+rt,b=xt-vt,it=vt-(xt-b)+(rt-b),rt=it-St,b=it-rt,Vr[1]=it-(rt+b)+(b-St),Mt=xt+rt,b=Mt-xt,Vr[2]=xt-(Mt-b)+(rt-b),Vr[3]=Mt,vt=U*g,G=splitter*U,W=G-(G-U),Q=U-W,G=splitter*g,J=G-(G-g),ut=g-J,ft=Q*ut-(vt-W*J-Q*J-W*ut),St=d*L,G=splitter*d,W=G-(G-d),Q=d-W,G=splitter*L,J=G-(G-L),ut=L-J,Rt=Q*ut-(St-W*J-Q*J-W*ut),rt=ft-Rt,b=ft-rt,mn[0]=ft-(rt+b)+(b-Rt),xt=vt+rt,b=xt-vt,it=vt-(xt-b)+(rt-b),rt=it-St,b=it-rt,mn[1]=it-(rt+b)+(b-St),Mt=xt+rt,b=Mt-xt,mn[2]=xt-(Mt-b)+(rt-b),mn[3]=Mt;const Vt=hn(Zr,Wr,nn,P,i,-S,$n),V=hn(Wr,an,kr,j,S,-P,mt),_=hn(an,un,Yr,Z,P,-j,Xt),q=hn(un,rn,Vr,i,j,-Z,At),dt=hn(rn,Zr,mn,S,Z,-i,ht),K=hn(Zr,kr,Vr,j,i,S,wt),nt=hn(Wr,Yr,mn,Z,S,P,Cr),z=hn(an,Vr,nn,i,P,j,hr),ct=hn(un,mn,kr,S,j,Z,Hr),pt=hn(rn,nn,Yr,P,Z,i,zr),Tt=sum_three(Xn(_,Xt,nt,Cr,ct,Hr,V,mt,n,a,i,Xr),Xr,Xn(q,At,z,hr,pt,zr,_,Xt,d,g,S,en),en,sum_three(Xn(dt,ht,ct,Hr,K,wt,q,At,x,A,P,Kt),Kt,Xn(Vt,$n,pt,zr,nt,Cr,dt,ht,R,C,j,Jr),Jr,Xn(V,mt,K,wt,z,hr,Vt,$n,U,L,Z,cn),cn,bn,zn),zn,Cn,Un);return Un[Tt-1]}const ha=v(96),ga=v(96),pa=v(96),ya=v(1152);function ue(n,a,i,d,g,S,x,A,P,R){const C=hn(n,a,i,d,g,S,se);return sum_three(scale(scale(C,se,x,An),An,x,ha),ha,scale(scale(C,se,A,An),An,A,ga),ga,scale(scale(C,se,P,An),An,P,pa),pa,Nn,R)}function Fo(n,a,i,d,g,S,x,A,P,R,C,j,U,L,Z,b){let G,W,Q,J,ut,rt,xt,it,vt,ft,St,Rt,Mt,Vt,V,_,q,dt,K,nt,z,ct,pt,Tt,Et,Lt,Zt,Dt,nr,or,sr;const ur=n-U,lr=d-U,fr=x-U,$r=R-U,br=a-L,Nr=g-L,_t=A-L,Dr=C-L,Kr=i-Z,Gr=S-Z,qr=P-Z,_r=j-Z;Dt=ur*Nr,nt=splitter*ur,z=nt-(nt-ur),ct=ur-z,nt=splitter*Nr,pt=nt-(nt-Nr),Tt=Nr-pt,nr=ct*Tt-(Dt-z*pt-ct*pt-z*Tt),or=lr*br,nt=splitter*lr,z=nt-(nt-lr),ct=lr-z,nt=splitter*br,pt=nt-(nt-br),Tt=br-pt,sr=ct*Tt-(or-z*pt-ct*pt-z*Tt),Et=nr-sr,K=nr-Et,Zr[0]=nr-(Et+K)+(K-sr),Lt=Dt+Et,K=Lt-Dt,Zt=Dt-(Lt-K)+(Et-K),Et=Zt-or,K=Zt-Et,Zr[1]=Zt-(Et+K)+(K-or),G=Lt+Et,K=G-Lt,Zr[2]=Lt-(G-K)+(Et-K),Zr[3]=G,Dt=lr*_t,nt=splitter*lr,z=nt-(nt-lr),ct=lr-z,nt=splitter*_t,pt=nt-(nt-_t),Tt=_t-pt,nr=ct*Tt-(Dt-z*pt-ct*pt-z*Tt),or=fr*Nr,nt=splitter*fr,z=nt-(nt-fr),ct=fr-z,nt=splitter*Nr,pt=nt-(nt-Nr),Tt=Nr-pt,sr=ct*Tt-(or-z*pt-ct*pt-z*Tt),Et=nr-sr,K=nr-Et,Wr[0]=nr-(Et+K)+(K-sr),Lt=Dt+Et,K=Lt-Dt,Zt=Dt-(Lt-K)+(Et-K),Et=Zt-or,K=Zt-Et,Wr[1]=Zt-(Et+K)+(K-or),W=Lt+Et,K=W-Lt,Wr[2]=Lt-(W-K)+(Et-K),Wr[3]=W,Dt=fr*Dr,nt=splitter*fr,z=nt-(nt-fr),ct=fr-z,nt=splitter*Dr,pt=nt-(nt-Dr),Tt=Dr-pt,nr=ct*Tt-(Dt-z*pt-ct*pt-z*Tt),or=$r*_t,nt=splitter*$r,z=nt-(nt-$r),ct=$r-z,nt=splitter*_t,pt=nt-(nt-_t),Tt=_t-pt,sr=ct*Tt-(or-z*pt-ct*pt-z*Tt),Et=nr-sr,K=nr-Et,an[0]=nr-(Et+K)+(K-sr),Lt=Dt+Et,K=Lt-Dt,Zt=Dt-(Lt-K)+(Et-K),Et=Zt-or,K=Zt-Et,an[1]=Zt-(Et+K)+(K-or),Q=Lt+Et,K=Q-Lt,an[2]=Lt-(Q-K)+(Et-K),an[3]=Q,Dt=$r*br,nt=splitter*$r,z=nt-(nt-$r),ct=$r-z,nt=splitter*br,pt=nt-(nt-br),Tt=br-pt,nr=ct*Tt-(Dt-z*pt-ct*pt-z*Tt),or=ur*Dr,nt=splitter*ur,z=nt-(nt-ur),ct=ur-z,nt=splitter*Dr,pt=nt-(nt-Dr),Tt=Dr-pt,sr=ct*Tt-(or-z*pt-ct*pt-z*Tt),Et=nr-sr,K=nr-Et,Vr[0]=nr-(Et+K)+(K-sr),Lt=Dt+Et,K=Lt-Dt,Zt=Dt-(Lt-K)+(Et-K),Et=Zt-or,K=Zt-Et,Vr[1]=Zt-(Et+K)+(K-or),J=Lt+Et,K=J-Lt,Vr[2]=Lt-(J-K)+(Et-K),Vr[3]=J,Dt=ur*_t,nt=splitter*ur,z=nt-(nt-ur),ct=ur-z,nt=splitter*_t,pt=nt-(nt-_t),Tt=_t-pt,nr=ct*Tt-(Dt-z*pt-ct*pt-z*Tt),or=fr*br,nt=splitter*fr,z=nt-(nt-fr),ct=fr-z,nt=splitter*br,pt=nt-(nt-br),Tt=br-pt,sr=ct*Tt-(or-z*pt-ct*pt-z*Tt),Et=nr-sr,K=nr-Et,nn[0]=nr-(Et+K)+(K-sr),Lt=Dt+Et,K=Lt-Dt,Zt=Dt-(Lt-K)+(Et-K),Et=Zt-or,K=Zt-Et,nn[1]=Zt-(Et+K)+(K-or),ut=Lt+Et,K=ut-Lt,nn[2]=Lt-(ut-K)+(Et-K),nn[3]=ut,Dt=lr*Dr,nt=splitter*lr,z=nt-(nt-lr),ct=lr-z,nt=splitter*Dr,pt=nt-(nt-Dr),Tt=Dr-pt,nr=ct*Tt-(Dt-z*pt-ct*pt-z*Tt),or=$r*Nr,nt=splitter*$r,z=nt-(nt-$r),ct=$r-z,nt=splitter*Nr,pt=nt-(nt-Nr),Tt=Nr-pt,sr=ct*Tt-(or-z*pt-ct*pt-z*Tt),Et=nr-sr,K=nr-Et,kr[0]=nr-(Et+K)+(K-sr),Lt=Dt+Et,K=Lt-Dt,Zt=Dt-(Lt-K)+(Et-K),Et=Zt-or,K=Zt-Et,kr[1]=Zt-(Et+K)+(K-or),rt=Lt+Et,K=rt-Lt,kr[2]=Lt-(rt-K)+(Et-K),kr[3]=rt;const Fe=sum(sum(negate(ue(Wr,an,kr,_r,Gr,-qr,ur,br,Kr,Xr),Xr),Xr,ue(an,Vr,nn,Kr,qr,_r,lr,Nr,Gr,en),en,Cn),Cn,sum(negate(ue(Vr,Zr,kr,Gr,_r,Kr,fr,_t,qr,Kt),Kt),Kt,ue(Zr,Wr,nn,qr,Kr,-Gr,$r,Dr,_r,Jr),Jr,bn),bn,ya);let vn=estimate(Fe,ya),Pn=oe*b;if(vn>=Pn||-vn>=Pn||(K=n-ur,xt=n-(ur+K)+(K-U),K=a-br,St=a-(br+K)+(K-L),K=i-Kr,V=i-(Kr+K)+(K-Z),K=d-lr,it=d-(lr+K)+(K-U),K=g-Nr,Rt=g-(Nr+K)+(K-L),K=S-Gr,_=S-(Gr+K)+(K-Z),K=x-fr,vt=x-(fr+K)+(K-U),K=A-_t,Mt=A-(_t+K)+(K-L),K=P-qr,q=P-(qr+K)+(K-Z),K=R-$r,ft=R-($r+K)+(K-U),K=C-Dr,Vt=C-(Dr+K)+(K-L),K=j-_r,dt=j-(_r+K)+(K-Z),xt===0&&St===0&&V===0&&it===0&&Rt===0&&_===0&&vt===0&&Mt===0&&q===0&&ft===0&&Vt===0&&dt===0))return vn;Pn=Yn*b+resulterrbound*Math.abs(vn);const To=ur*Rt+Nr*xt-(br*it+lr*St),Oo=lr*Mt+_t*it-(Nr*vt+fr*Rt),Ao=fr*Vt+Dr*vt-(_t*ft+$r*Mt),Ro=$r*St+br*ft-(Dr*xt+ur*Vt),Po=ur*Mt+_t*xt-(br*vt+fr*St),Co=lr*Vt+Dr*it-(Nr*ft+$r*Rt);return vn+=(lr*lr+Nr*Nr+Gr*Gr)*(qr*Ro+_r*Po+Kr*Ao+(q*J+dt*ut+V*Q))+($r*$r+Dr*Dr+_r*_r)*(Kr*Oo-Gr*Po+qr*To+(V*W-_*ut+q*G))-((ur*ur+br*br+Kr*Kr)*(Gr*Ao-qr*Co+_r*Oo+(_*Q-q*rt+dt*W))+(fr*fr+_t*_t+qr*qr)*(_r*To+Kr*Co+Gr*Ro+(dt*G+V*rt+_*J)))+2*((lr*it+Nr*Rt+Gr*_)*(qr*J+_r*ut+Kr*Q)+($r*ft+Dr*Vt+_r*dt)*(Kr*W-Gr*ut+qr*G)-((ur*xt+br*St+Kr*V)*(Gr*Q-qr*rt+_r*W)+(fr*vt+_t*Mt+qr*q)*(_r*G+Kr*rt+Gr*J))),vn>=Pn||-vn>=Pn?vn:Do(n,a,i,d,g,S,x,A,P,R,C,j,U,L,Z)}function Yl(n,a,i,d,g,S,x,A,P,R,C,j,U,L,Z){const b=n-U,G=d-U,W=x-U,Q=R-U,J=a-L,ut=g-L,rt=A-L,xt=C-L,it=i-Z,vt=S-Z,ft=P-Z,St=j-Z,Rt=b*ut,Mt=G*J,Vt=Rt-Mt,V=G*rt,_=W*ut,q=V-_,dt=W*xt,K=Q*rt,nt=dt-K,z=Q*J,ct=b*xt,pt=z-ct,Tt=b*rt,Et=W*J,Lt=Tt-Et,Zt=G*xt,Dt=Q*ut,nr=Zt-Dt,or=b*b+J*J+it*it,sr=G*G+ut*ut+vt*vt,ur=W*W+rt*rt+ft*ft,lr=Q*Q+xt*xt+St*St,fr=ur*(St*Vt+it*nr+vt*pt)-lr*(it*q-vt*Lt+ft*Vt)+(or*(vt*nt-ft*nr+St*q)-sr*(ft*pt+St*Lt+it*nt)),$r=Math.abs(it),br=Math.abs(vt),Nr=Math.abs(ft),_t=Math.abs(St),Dr=Math.abs(Rt)+Math.abs(Mt),Kr=Math.abs(V)+Math.abs(_),Gr=Math.abs(dt)+Math.abs(K),qr=Math.abs(z)+Math.abs(ct),_r=Math.abs(Tt)+Math.abs(Et),Fe=Math.abs(Zt)+Math.abs(Dt),vn=(Gr*br+Fe*Nr+Kr*_t)*or+(qr*Nr+_r*_t+Gr*$r)*sr+(Dr*_t+Fe*$r+qr*br)*ur+(Kr*$r+_r*br+Dr*Nr)*lr,Pn=Kn*vn;return fr>Pn||-fr>Pn?fr:-Fo(n,a,i,d,g,S,x,A,P,R,C,j,U,L,Z,vn)}function zl(n,a,i,d,g,S,x,A,P,R,C,j,U,L,Z){const b=n-U,G=d-U,W=x-U,Q=R-U,J=a-L,ut=g-L,rt=A-L,xt=C-L,it=i-Z,vt=S-Z,ft=P-Z,St=j-Z,Rt=b*ut-G*J,Mt=G*rt-W*ut,Vt=W*xt-Q*rt,V=Q*J-b*xt,_=b*rt-W*J,q=G*xt-Q*ut,dt=it*Mt-vt*_+ft*Rt,K=vt*Vt-ft*q+St*Mt,nt=ft*V+St*_+it*Vt,z=St*Rt+it*q+vt*V,ct=b*b+J*J+it*it,pt=G*G+ut*ut+vt*vt,Tt=W*W+rt*rt+ft*ft,Et=Q*Q+xt*xt+St*St;return Tt*z-Et*dt+(ct*K-pt*nt)}const ma=Math.pow(2,-52),le=new Uint32Array(512);class fe{static from(a,i=Bo,d=jo){const g=a.length,S=new Float64Array(g*2);for(let x=0;x<g;x++){const A=a[x];S[2*x]=i(A),S[2*x+1]=d(A)}return new fe(S)}constructor(a){const i=a.length>>1;if(i>0&&typeof a[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=a;const d=Math.max(2*i-5,0);this._triangles=new Uint32Array(d*3),this._halfedges=new Int32Array(d*3),this._hashSize=Math.ceil(Math.sqrt(i)),this._hullPrev=new Uint32Array(i),this._hullNext=new Uint32Array(i),this._hullTri=new Uint32Array(i),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(i),this._dists=new Float64Array(i),this.update()}update(){const{coords:a,_hullPrev:i,_hullNext:d,_hullTri:g,_hullHash:S}=this,x=a.length>>1;let A=1/0,P=1/0,R=-1/0,C=-1/0;for(let ft=0;ft<x;ft++){const St=a[2*ft],Rt=a[2*ft+1];St<A&&(A=St),Rt<P&&(P=Rt),St>R&&(R=St),Rt>C&&(C=Rt),this._ids[ft]=ft}const j=(A+R)/2,U=(P+C)/2;let L,Z,b;for(let ft=0,St=1/0;ft<x;ft++){const Rt=be(j,U,a[2*ft],a[2*ft+1]);Rt<St&&(L=ft,St=Rt)}const G=a[2*L],W=a[2*L+1];for(let ft=0,St=1/0;ft<x;ft++){if(ft===L)continue;const Rt=be(G,W,a[2*ft],a[2*ft+1]);Rt<St&&Rt>0&&(Z=ft,St=Rt)}let Q=a[2*Z],J=a[2*Z+1],ut=1/0;for(let ft=0;ft<x;ft++){if(ft===L||ft===Z)continue;const St=bo(G,W,Q,J,a[2*ft],a[2*ft+1]);St<ut&&(b=ft,ut=St)}let rt=a[2*b],xt=a[2*b+1];if(ut===1/0){for(let Rt=0;Rt<x;Rt++)this._dists[Rt]=a[2*Rt]-a[0]||a[2*Rt+1]-a[1];Bn(this._ids,this._dists,0,x-1);const ft=new Uint32Array(x);let St=0;for(let Rt=0,Mt=-1/0;Rt<x;Rt++){const Vt=this._ids[Rt],V=this._dists[Vt];V>Mt&&(ft[St++]=Vt,Mt=V)}this.hull=ft.subarray(0,St),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(D(G,W,Q,J,rt,xt)<0){const ft=Z,St=Q,Rt=J;Z=b,Q=rt,J=xt,b=ft,rt=St,xt=Rt}const it=Uo(G,W,Q,J,rt,xt);this._cx=it.x,this._cy=it.y;for(let ft=0;ft<x;ft++)this._dists[ft]=be(a[2*ft],a[2*ft+1],it.x,it.y);Bn(this._ids,this._dists,0,x-1),this._hullStart=L;let vt=3;d[L]=i[b]=Z,d[Z]=i[L]=b,d[b]=i[Z]=L,g[L]=0,g[Z]=1,g[b]=2,S.fill(-1),S[this._hashKey(G,W)]=L,S[this._hashKey(Q,J)]=Z,S[this._hashKey(rt,xt)]=b,this.trianglesLen=0,this._addTriangle(L,Z,b,-1,-1,-1);for(let ft=0,St,Rt;ft<this._ids.length;ft++){const Mt=this._ids[ft],Vt=a[2*Mt],V=a[2*Mt+1];if(ft>0&&Math.abs(Vt-St)<=ma&&Math.abs(V-Rt)<=ma||(St=Vt,Rt=V,Mt===L||Mt===Z||Mt===b))continue;let _=0;for(let z=0,ct=this._hashKey(Vt,V);z<this._hashSize&&(_=S[(ct+z)%this._hashSize],!(_!==-1&&_!==d[_]));z++);_=i[_];let q=_,dt;for(;dt=d[q],D(Vt,V,a[2*q],a[2*q+1],a[2*dt],a[2*dt+1])>=0;)if(q=dt,q===_){q=-1;break}if(q===-1)continue;let K=this._addTriangle(q,Mt,d[q],-1,-1,g[q]);g[Mt]=this._legalize(K+2),g[q]=K,vt++;let nt=d[q];for(;dt=d[nt],D(Vt,V,a[2*nt],a[2*nt+1],a[2*dt],a[2*dt+1])<0;)K=this._addTriangle(nt,Mt,dt,g[Mt],-1,g[nt]),g[Mt]=this._legalize(K+2),d[nt]=nt,vt--,nt=dt;if(q===_)for(;dt=i[q],D(Vt,V,a[2*dt],a[2*dt+1],a[2*q],a[2*q+1])<0;)K=this._addTriangle(dt,Mt,q,-1,g[q],g[dt]),this._legalize(K+2),g[dt]=K,d[q]=q,vt--,q=dt;this._hullStart=i[Mt]=q,d[q]=i[nt]=Mt,d[Mt]=nt,S[this._hashKey(Vt,V)]=Mt,S[this._hashKey(a[2*q],a[2*q+1])]=q}this.hull=new Uint32Array(vt);for(let ft=0,St=this._hullStart;ft<vt;ft++)this.hull[ft]=St,St=d[St];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(a,i){return Math.floor(Lo(a-this._cx,i-this._cy)*this._hashSize)%this._hashSize}_legalize(a){const{_triangles:i,_halfedges:d,coords:g}=this;let S=0,x=0;for(;;){const A=d[a],P=a-a%3;if(x=P+(a+2)%3,A===-1){if(S===0)break;a=le[--S];continue}const R=A-A%3,C=P+(a+1)%3,j=R+(A+2)%3,U=i[x],L=i[a],Z=i[C],b=i[j];if($o(g[2*U],g[2*U+1],g[2*L],g[2*L+1],g[2*Z],g[2*Z+1],g[2*b],g[2*b+1])){i[a]=b,i[A]=U;const W=d[j];if(W===-1){let J=this._hullStart;do{if(this._hullTri[J]===j){this._hullTri[J]=a;break}J=this._hullPrev[J]}while(J!==this._hullStart)}this._link(a,W),this._link(A,d[x]),this._link(x,j);const Q=R+(A+1)%3;S<le.length&&(le[S++]=Q)}else{if(S===0)break;a=le[--S]}}return x}_link(a,i){this._halfedges[a]=i,i!==-1&&(this._halfedges[i]=a)}_addTriangle(a,i,d,g,S,x){const A=this.trianglesLen;return this._triangles[A]=a,this._triangles[A+1]=i,this._triangles[A+2]=d,this._link(A,g),this._link(A+1,S),this._link(A+2,x),this.trianglesLen+=3,A}}function Lo(n,a){const i=n/(Math.abs(n)+Math.abs(a));return(a>0?3-i:1+i)/4}function be(n,a,i,d){const g=n-i,S=a-d;return g*g+S*S}function $o(n,a,i,d,g,S,x,A){const P=n-x,R=a-A,C=i-x,j=d-A,U=g-x,L=S-A,Z=P*P+R*R,b=C*C+j*j,G=U*U+L*L;return P*(j*G-b*L)-R*(C*G-b*U)+Z*(C*L-j*U)<0}function bo(n,a,i,d,g,S){const x=i-n,A=d-a,P=g-n,R=S-a,C=x*x+A*A,j=P*P+R*R,U=.5/(x*R-A*P),L=(R*C-A*j)*U,Z=(x*j-P*C)*U;return L*L+Z*Z}function Uo(n,a,i,d,g,S){const x=i-n,A=d-a,P=g-n,R=S-a,C=x*x+A*A,j=P*P+R*R,U=.5/(x*R-A*P),L=n+(R*C-A*j)*U,Z=a+(x*j-P*C)*U;return{x:L,y:Z}}function Bn(n,a,i,d){if(d-i<=20)for(let g=i+1;g<=d;g++){const S=n[g],x=a[S];let A=g-1;for(;A>=i&&a[n[A]]>x;)n[A+1]=n[A--];n[A+1]=S}else{const g=i+d>>1;let S=i+1,x=d;Jn(n,g,S),a[n[i]]>a[n[d]]&&Jn(n,i,d),a[n[S]]>a[n[d]]&&Jn(n,S,d),a[n[i]]>a[n[S]]&&Jn(n,i,S);const A=n[S],P=a[A];for(;;){do S++;while(a[n[S]]<P);do x--;while(a[n[x]]>P);if(x<S)break;Jn(n,S,x)}n[i+1]=n[x],n[x]=A,d-S+1>=x-i?(Bn(n,a,S,d),Bn(n,a,i,x-1)):(Bn(n,a,i,x-1),Bn(n,a,S,d))}}function Jn(n,a,i){const d=n[a];n[a]=n[i],n[i]=d}function Bo(n){return n[0]}function jo(n){return n[1]}const xa=1e-6;class Mn{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(a,i){this._+=`M${this._x0=this._x1=+a},${this._y0=this._y1=+i}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(a,i){this._+=`L${this._x1=+a},${this._y1=+i}`}arc(a,i,d){a=+a,i=+i,d=+d;const g=a+d,S=i;if(d<0)throw new Error("negative radius");this._x1===null?this._+=`M${g},${S}`:(Math.abs(this._x1-g)>xa||Math.abs(this._y1-S)>xa)&&(this._+="L"+g+","+S),d&&(this._+=`A${d},${d},0,1,1,${a-d},${i}A${d},${d},0,1,1,${this._x1=g},${this._y1=S}`)}rect(a,i,d,g){this._+=`M${this._x0=this._x1=+a},${this._y0=this._y1=+i}h${+d}v${+g}h${-d}Z`}value(){return this._||null}}class Ue{constructor(){this._=[]}moveTo(a,i){this._.push([a,i])}closePath(){this._.push(this._[0].slice())}lineTo(a,i){this._.push([a,i])}value(){return this._.length?this._:null}}class wo{constructor(a,[i,d,g,S]=[0,0,960,500]){if(!((g=+g)>=(i=+i))||!((S=+S)>=(d=+d)))throw new Error("invalid bounds");this.delaunay=a,this._circumcenters=new Float64Array(a.points.length*2),this.vectors=new Float64Array(a.points.length*2),this.xmax=g,this.xmin=i,this.ymax=S,this.ymin=d,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:a,hull:i,triangles:d},vectors:g}=this;let S,x;const A=this.circumcenters=this._circumcenters.subarray(0,d.length/3*2);for(let b=0,G=0,W=d.length,Q,J;b<W;b+=3,G+=2){const ut=d[b]*2,rt=d[b+1]*2,xt=d[b+2]*2,it=a[ut],vt=a[ut+1],ft=a[rt],St=a[rt+1],Rt=a[xt],Mt=a[xt+1],Vt=ft-it,V=St-vt,_=Rt-it,q=Mt-vt,dt=(Vt*q-V*_)*2;if(Math.abs(dt)<1e-9){if(S===void 0){S=x=0;for(const nt of i)S+=a[nt*2],x+=a[nt*2+1];S/=i.length,x/=i.length}const K=1e9*Math.sign((S-it)*q-(x-vt)*_);Q=(it+Rt)/2-K*q,J=(vt+Mt)/2+K*_}else{const K=1/dt,nt=Vt*Vt+V*V,z=_*_+q*q;Q=it+(q*nt-V*z)*K,J=vt+(Vt*z-_*nt)*K}A[G]=Q,A[G+1]=J}let P=i[i.length-1],R,C=P*4,j,U=a[2*P],L,Z=a[2*P+1];g.fill(0);for(let b=0;b<i.length;++b)P=i[b],R=C,j=U,L=Z,C=P*4,U=a[2*P],Z=a[2*P+1],g[R+2]=g[C]=L-Z,g[R+3]=g[C+1]=U-j}render(a){const i=a==null?a=new Mn:void 0,{delaunay:{halfedges:d,inedges:g,hull:S},circumcenters:x,vectors:A}=this;if(S.length<=1)return null;for(let C=0,j=d.length;C<j;++C){const U=d[C];if(U<C)continue;const L=Math.floor(C/3)*2,Z=Math.floor(U/3)*2,b=x[L],G=x[L+1],W=x[Z],Q=x[Z+1];this._renderSegment(b,G,W,Q,a)}let P,R=S[S.length-1];for(let C=0;C<S.length;++C){P=R,R=S[C];const j=Math.floor(g[R]/3)*2,U=x[j],L=x[j+1],Z=P*4,b=this._project(U,L,A[Z+2],A[Z+3]);b&&this._renderSegment(U,L,b[0],b[1],a)}return i&&i.value()}renderBounds(a){const i=a==null?a=new Mn:void 0;return a.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),i&&i.value()}renderCell(a,i){const d=i==null?i=new Mn:void 0,g=this._clip(a);if(g===null||!g.length)return;i.moveTo(g[0],g[1]);let S=g.length;for(;g[0]===g[S-2]&&g[1]===g[S-1]&&S>1;)S-=2;for(let x=2;x<S;x+=2)(g[x]!==g[x-2]||g[x+1]!==g[x-1])&&i.lineTo(g[x],g[x+1]);return i.closePath(),d&&d.value()}*cellPolygons(){const{delaunay:{points:a}}=this;for(let i=0,d=a.length/2;i<d;++i){const g=this.cellPolygon(i);g&&(g.index=i,yield g)}}cellPolygon(a){const i=new Ue;return this.renderCell(a,i),i.value()}_renderSegment(a,i,d,g,S){let x;const A=this._regioncode(a,i),P=this._regioncode(d,g);A===0&&P===0?(S.moveTo(a,i),S.lineTo(d,g)):(x=this._clipSegment(a,i,d,g,A,P))&&(S.moveTo(x[0],x[1]),S.lineTo(x[2],x[3]))}contains(a,i,d){return i=+i,i!==i||(d=+d,d!==d)?!1:this.delaunay._step(a,i,d)===a}*neighbors(a){const i=this._clip(a);if(i)for(const d of this.delaunay.neighbors(a)){const g=this._clip(d);if(g){t:for(let S=0,x=i.length;S<x;S+=2)for(let A=0,P=g.length;A<P;A+=2)if(i[S]===g[A]&&i[S+1]===g[A+1]&&i[(S+2)%x]===g[(A+P-2)%P]&&i[(S+3)%x]===g[(A+P-1)%P]){yield d;break t}}}}_cell(a){const{circumcenters:i,delaunay:{inedges:d,halfedges:g,triangles:S}}=this,x=d[a];if(x===-1)return null;const A=[];let P=x;do{const R=Math.floor(P/3);if(A.push(i[R*2],i[R*2+1]),P=P%3===2?P-2:P+1,S[P]!==a)break;P=g[P]}while(P!==x&&P!==-1);return A}_clip(a){if(a===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const i=this._cell(a);if(i===null)return null;const{vectors:d}=this,g=a*4;return this._simplify(d[g]||d[g+1]?this._clipInfinite(a,i,d[g],d[g+1],d[g+2],d[g+3]):this._clipFinite(a,i))}_clipFinite(a,i){const d=i.length;let g=null,S,x,A=i[d-2],P=i[d-1],R,C=this._regioncode(A,P),j,U=0;for(let L=0;L<d;L+=2)if(S=A,x=P,A=i[L],P=i[L+1],R=C,C=this._regioncode(A,P),R===0&&C===0)j=U,U=0,g?g.push(A,P):g=[A,P];else{let Z,b,G,W,Q;if(R===0){if((Z=this._clipSegment(S,x,A,P,R,C))===null)continue;[b,G,W,Q]=Z}else{if((Z=this._clipSegment(A,P,S,x,C,R))===null)continue;[W,Q,b,G]=Z,j=U,U=this._edgecode(b,G),j&&U&&this._edge(a,j,U,g,g.length),g?g.push(b,G):g=[b,G]}j=U,U=this._edgecode(W,Q),j&&U&&this._edge(a,j,U,g,g.length),g?g.push(W,Q):g=[W,Q]}if(g)j=U,U=this._edgecode(g[0],g[1]),j&&U&&this._edge(a,j,U,g,g.length);else if(this.contains(a,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return g}_clipSegment(a,i,d,g,S,x){const A=S<x;for(A&&([a,i,d,g,S,x]=[d,g,a,i,x,S]);;){if(S===0&&x===0)return A?[d,g,a,i]:[a,i,d,g];if(S&x)return null;let P,R,C=S||x;C&8?(P=a+(d-a)*(this.ymax-i)/(g-i),R=this.ymax):C&4?(P=a+(d-a)*(this.ymin-i)/(g-i),R=this.ymin):C&2?(R=i+(g-i)*(this.xmax-a)/(d-a),P=this.xmax):(R=i+(g-i)*(this.xmin-a)/(d-a),P=this.xmin),S?(a=P,i=R,S=this._regioncode(a,i)):(d=P,g=R,x=this._regioncode(d,g))}}_clipInfinite(a,i,d,g,S,x){let A=Array.from(i),P;if((P=this._project(A[0],A[1],d,g))&&A.unshift(P[0],P[1]),(P=this._project(A[A.length-2],A[A.length-1],S,x))&&A.push(P[0],P[1]),A=this._clipFinite(a,A))for(let R=0,C=A.length,j,U=this._edgecode(A[C-2],A[C-1]);R<C;R+=2)j=U,U=this._edgecode(A[R],A[R+1]),j&&U&&(R=this._edge(a,j,U,A,R),C=A.length);else this.contains(a,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(A=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return A}_edge(a,i,d,g,S){for(;i!==d;){let x,A;switch(i){case 5:i=4;continue;case 4:i=6,x=this.xmax,A=this.ymin;break;case 6:i=2;continue;case 2:i=10,x=this.xmax,A=this.ymax;break;case 10:i=8;continue;case 8:i=9,x=this.xmin,A=this.ymax;break;case 9:i=1;continue;case 1:i=5,x=this.xmin,A=this.ymin;break}(g[S]!==x||g[S+1]!==A)&&this.contains(a,x,A)&&(g.splice(S,0,x,A),S+=2)}return S}_project(a,i,d,g){let S=1/0,x,A,P;if(g<0){if(i<=this.ymin)return null;(x=(this.ymin-i)/g)<S&&(P=this.ymin,A=a+(S=x)*d)}else if(g>0){if(i>=this.ymax)return null;(x=(this.ymax-i)/g)<S&&(P=this.ymax,A=a+(S=x)*d)}if(d>0){if(a>=this.xmax)return null;(x=(this.xmax-a)/d)<S&&(A=this.xmax,P=i+(S=x)*g)}else if(d<0){if(a<=this.xmin)return null;(x=(this.xmin-a)/d)<S&&(A=this.xmin,P=i+(S=x)*g)}return[A,P]}_edgecode(a,i){return(a===this.xmin?1:a===this.xmax?2:0)|(i===this.ymin?4:i===this.ymax?8:0)}_regioncode(a,i){return(a<this.xmin?1:a>this.xmax?2:0)|(i<this.ymin?4:i>this.ymax?8:0)}_simplify(a){if(a&&a.length>4){for(let i=0;i<a.length;i+=2){const d=(i+2)%a.length,g=(i+4)%a.length;(a[i]===a[d]&&a[d]===a[g]||a[i+1]===a[d+1]&&a[d+1]===a[g+1])&&(a.splice(d,2),i-=2)}a.length||(a=null)}return a}}const Go=2*Math.PI,jn=Math.pow;function Vo(n){return n[0]}function Ho(n){return n[1]}function Wo(n){const{triangles:a,coords:i}=n;for(let d=0;d<a.length;d+=3){const g=2*a[d],S=2*a[d+1],x=2*a[d+2];if((i[x]-i[g])*(i[S+1]-i[g+1])-(i[S]-i[g])*(i[x+1]-i[g+1])>1e-10)return!1}return!0}function Ko(n,a,i){return[n+Math.sin(n+a)*i,a+Math.cos(n-a)*i]}class Be{static from(a,i=Vo,d=Ho,g){return new Be("length"in a?Yo(a,i,d,g):Float64Array.from(zo(a,i,d,g)))}constructor(a){this._delaunator=new fe(a),this.inedges=new Int32Array(a.length/2),this._hullIndex=new Int32Array(a.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const a=this._delaunator,i=this.points;if(a.hull&&a.hull.length>2&&Wo(a)){this.collinear=Int32Array.from({length:i.length/2},(U,L)=>L).sort((U,L)=>i[2*U]-i[2*L]||i[2*U+1]-i[2*L+1]);const P=this.collinear[0],R=this.collinear[this.collinear.length-1],C=[i[2*P],i[2*P+1],i[2*R],i[2*R+1]],j=1e-8*Math.hypot(C[3]-C[1],C[2]-C[0]);for(let U=0,L=i.length/2;U<L;++U){const Z=Ko(i[2*U],i[2*U+1],j);i[2*U]=Z[0],i[2*U+1]=Z[1]}this._delaunator=new fe(i)}else delete this.collinear;const d=this.halfedges=this._delaunator.halfedges,g=this.hull=this._delaunator.hull,S=this.triangles=this._delaunator.triangles,x=this.inedges.fill(-1),A=this._hullIndex.fill(-1);for(let P=0,R=d.length;P<R;++P){const C=S[P%3===2?P-2:P+1];(d[P]===-1||x[C]===-1)&&(x[C]=P)}for(let P=0,R=g.length;P<R;++P)A[g[P]]=P;g.length<=2&&g.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=g[0],x[g[0]]=1,g.length===2&&(x[g[1]]=0,this.triangles[1]=g[1],this.triangles[2]=g[1]))}voronoi(a){return new wo(this,a)}*neighbors(a){const{inedges:i,hull:d,_hullIndex:g,halfedges:S,triangles:x,collinear:A}=this;if(A){const j=A.indexOf(a);j>0&&(yield A[j-1]),j<A.length-1&&(yield A[j+1]);return}const P=i[a];if(P===-1)return;let R=P,C=-1;do{if(yield C=x[R],R=R%3===2?R-2:R+1,x[R]!==a)return;if(R=S[R],R===-1){const j=d[(g[a]+1)%d.length];j!==C&&(yield j);return}}while(R!==P)}find(a,i,d=0){if(a=+a,a!==a||(i=+i,i!==i))return-1;const g=d;let S;for(;(S=this._step(d,a,i))>=0&&S!==d&&S!==g;)d=S;return S}_step(a,i,d){const{inedges:g,hull:S,_hullIndex:x,halfedges:A,triangles:P,points:R}=this;if(g[a]===-1||!R.length)return(a+1)%(R.length>>1);let C=a,j=jn(i-R[a*2],2)+jn(d-R[a*2+1],2);const U=g[a];let L=U;do{let Z=P[L];const b=jn(i-R[Z*2],2)+jn(d-R[Z*2+1],2);if(b<j&&(j=b,C=Z),L=L%3===2?L-2:L+1,P[L]!==a)break;if(L=A[L],L===-1){if(L=S[(x[a]+1)%S.length],L!==Z&&jn(i-R[L*2],2)+jn(d-R[L*2+1],2)<j)return L;break}}while(L!==U);return C}render(a){const i=a==null?a=new Mn:void 0,{points:d,halfedges:g,triangles:S}=this;for(let x=0,A=g.length;x<A;++x){const P=g[x];if(P<x)continue;const R=S[x]*2,C=S[P]*2;a.moveTo(d[R],d[R+1]),a.lineTo(d[C],d[C+1])}return this.renderHull(a),i&&i.value()}renderPoints(a,i){i===void 0&&(!a||typeof a.moveTo!="function")&&(i=a,a=null),i=i==null?2:+i;const d=a==null?a=new Mn:void 0,{points:g}=this;for(let S=0,x=g.length;S<x;S+=2){const A=g[S],P=g[S+1];a.moveTo(A+i,P),a.arc(A,P,i,0,Go)}return d&&d.value()}renderHull(a){const i=a==null?a=new Mn:void 0,{hull:d,points:g}=this,S=d[0]*2,x=d.length;a.moveTo(g[S],g[S+1]);for(let A=1;A<x;++A){const P=2*d[A];a.lineTo(g[P],g[P+1])}return a.closePath(),i&&i.value()}hullPolygon(){const a=new Ue;return this.renderHull(a),a.value()}renderTriangle(a,i){const d=i==null?i=new Mn:void 0,{points:g,triangles:S}=this,x=S[a*=3]*2,A=S[a+1]*2,P=S[a+2]*2;return i.moveTo(g[x],g[x+1]),i.lineTo(g[A],g[A+1]),i.lineTo(g[P],g[P+1]),i.closePath(),d&&d.value()}*trianglePolygons(){const{triangles:a}=this;for(let i=0,d=a.length/3;i<d;++i)yield this.trianglePolygon(i)}trianglePolygon(a){const i=new Ue;return this.renderTriangle(a,i),i.value()}}function Yo(n,a,i,d){const g=n.length,S=new Float64Array(g*2);for(let x=0;x<g;++x){const A=n[x];S[x*2]=a.call(d,A,x,n),S[x*2+1]=i.call(d,A,x,n)}return S}function*zo(n,a,i,d){let g=0;for(const S of n)yield a.call(d,S,g,n),yield i.call(d,S,g,n),++g}function Xo(n){for(var a=-1,i=n.length,d=0,g=0,S,x=n[i-1],A,P=0;++a<i;)S=x,x=n[a],P+=A=S[0]*x[1]-x[0]*S[1],d+=(S[0]+x[0])*A,g+=(S[1]+x[1])*A;return P*=3,[d/P,g/P]}function Jo(n){for(var a=-1,i=n.length,d,g=n[i-1],S=0;++a<i;)d=g,g=n[a],S+=d[1]*g[0]-d[0]*g[1];return S/2}function Qo(){}function je(n){return n==null?Qo:function(){return this.querySelector(n)}}function Zo(n){typeof n!="function"&&(n=je(n));for(var a=this._groups,i=a.length,d=new Array(i),g=0;g<i;++g)for(var S=a[g],x=S.length,A=d[g]=new Array(x),P,R,C=0;C<x;++C)(P=S[C])&&(R=n.call(P,P.__data__,C,S))&&("__data__"in P&&(R.__data__=P.__data__),A[C]=R);return new gn(d,this._parents)}function ko(n){return n==null?[]:Array.isArray(n)?n:Array.from(n)}function qo(){return[]}function Sa(n){return n==null?qo:function(){return this.querySelectorAll(n)}}function _o(n){return function(){return ko(n.apply(this,arguments))}}function ts(n){typeof n=="function"?n=_o(n):n=Sa(n);for(var a=this._groups,i=a.length,d=[],g=[],S=0;S<i;++S)for(var x=a[S],A=x.length,P,R=0;R<A;++R)(P=x[R])&&(d.push(n.call(P,P.__data__,R,x)),g.push(P));return new gn(d,g)}function Ea(n){return function(){return this.matches(n)}}function Ia(n){return function(a){return a.matches(n)}}var rs=Array.prototype.find;function ns(n){return function(){return rs.call(this.children,n)}}function es(){return this.firstElementChild}function as(n){return this.select(n==null?es:ns(typeof n=="function"?n:Ia(n)))}var os=Array.prototype.filter;function ss(){return Array.from(this.children)}function is(n){return function(){return os.call(this.children,n)}}function us(n){return this.selectAll(n==null?ss:is(typeof n=="function"?n:Ia(n)))}function ls(n){typeof n!="function"&&(n=Ea(n));for(var a=this._groups,i=a.length,d=new Array(i),g=0;g<i;++g)for(var S=a[g],x=S.length,A=d[g]=[],P,R=0;R<x;++R)(P=S[R])&&n.call(P,P.__data__,R,S)&&A.push(P);return new gn(d,this._parents)}function Ta(n){return new Array(n.length)}function fs(){return new gn(this._enter||this._groups.map(Ta),this._parents)}function ce(n,a){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=a}ce.prototype={constructor:ce,appendChild:function(n){return this._parent.insertBefore(n,this._next)},insertBefore:function(n,a){return this._parent.insertBefore(n,a)},querySelector:function(n){return this._parent.querySelector(n)},querySelectorAll:function(n){return this._parent.querySelectorAll(n)}};function cs(n){return function(){return n}}function vs(n,a,i,d,g,S){for(var x=0,A,P=a.length,R=S.length;x<R;++x)(A=a[x])?(A.__data__=S[x],d[x]=A):i[x]=new ce(n,S[x]);for(;x<P;++x)(A=a[x])&&(g[x]=A)}function ds(n,a,i,d,g,S,x){var A,P,R=new Map,C=a.length,j=S.length,U=new Array(C),L;for(A=0;A<C;++A)(P=a[A])&&(U[A]=L=x.call(P,P.__data__,A,a)+"",R.has(L)?g[A]=P:R.set(L,P));for(A=0;A<j;++A)L=x.call(n,S[A],A,S)+"",(P=R.get(L))?(d[A]=P,P.__data__=S[A],R.delete(L)):i[A]=new ce(n,S[A]);for(A=0;A<C;++A)(P=a[A])&&R.get(U[A])===P&&(g[A]=P)}function hs(n){return n.__data__}function gs(n,a){if(!arguments.length)return Array.from(this,hs);var i=a?ds:vs,d=this._parents,g=this._groups;typeof n!="function"&&(n=cs(n));for(var S=g.length,x=new Array(S),A=new Array(S),P=new Array(S),R=0;R<S;++R){var C=d[R],j=g[R],U=j.length,L=ps(n.call(C,C&&C.__data__,R,d)),Z=L.length,b=A[R]=new Array(Z),G=x[R]=new Array(Z),W=P[R]=new Array(U);i(C,j,b,G,W,L,a);for(var Q=0,J=0,ut,rt;Q<Z;++Q)if(ut=b[Q]){for(Q>=J&&(J=Q+1);!(rt=G[J])&&++J<Z;);ut._next=rt||null}}return x=new gn(x,d),x._enter=A,x._exit=P,x}function ps(n){return typeof n=="object"&&"length"in n?n:Array.from(n)}function ys(){return new gn(this._exit||this._groups.map(Ta),this._parents)}function ms(n,a,i){var d=this.enter(),g=this,S=this.exit();return typeof n=="function"?(d=n(d),d&&(d=d.selection())):d=d.append(n+""),a!=null&&(g=a(g),g&&(g=g.selection())),i==null?S.remove():i(S),d&&g?d.merge(g).order():g}function xs(n){for(var a=n.selection?n.selection():n,i=this._groups,d=a._groups,g=i.length,S=d.length,x=Math.min(g,S),A=new Array(g),P=0;P<x;++P)for(var R=i[P],C=d[P],j=R.length,U=A[P]=new Array(j),L,Z=0;Z<j;++Z)(L=R[Z]||C[Z])&&(U[Z]=L);for(;P<g;++P)A[P]=i[P];return new gn(A,this._parents)}function Ss(){for(var n=this._groups,a=-1,i=n.length;++a<i;)for(var d=n[a],g=d.length-1,S=d[g],x;--g>=0;)(x=d[g])&&(S&&x.compareDocumentPosition(S)^4&&S.parentNode.insertBefore(x,S),S=x);return this}function Es