UNPKG

@harryjwang/simplewordcloud

Version:

A simple word cloud generator supporting English and Chinese text

1 lines 294 kB
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.SimpleWordCloud=n():t.SimpleWordCloud=n()}(this,(()=>(()=>{var t={84:(t,n,e)=>{const r=e(96).J,i=Math.PI/180,o={archimedean:y,rectangular:function(t){var n=4*t[0]/t[1],e=0,r=0;return function(t){var i=t<0?-1:1;switch(Math.sqrt(1+4*i*t)-i&3){case 0:e+=n;break;case 1:r+=4;break;case 2:e-=n;break;default:r-=4}return[e,r]}}},a=2048;function u(t){return t.text}function c(){return"serif"}function f(){return"normal"}function s(t){return Math.sqrt(t.value)}function l(){return 30*(~~(6*random())-3)}function h(){return 1}function d(t,n,e,r){if(!n.sprite){var o=t.context,u=t.ratio;o.clearRect(0,0,2048/u,a/u);var c=0,f=0,s=0,l=e.length;for(--r;++r<l;){n=e[r],o.save(),o.font=n.style+" "+n.weight+" "+~~((n.size+1)/u)+"px "+n.font;const t=o.measureText(n.text),l=-Math.floor(t.width/2);let _=(t.width+1)*u,b=n.size<<1;if(n.rotate){var h=Math.sin(n.rotate*i),d=Math.cos(n.rotate*i),p=_*d,g=_*h,y=b*d,v=b*h;_=Math.max(Math.abs(p+v),Math.abs(p-v))+31>>5<<5,b=~~Math.max(Math.abs(g+y),Math.abs(g-y))}else _=_+31>>5<<5;if(b>s&&(s=b),c+_>=2048&&(c=0,f+=s,s=0),f+b>=a)break;o.translate((c+(_>>1))/u,(f+(b>>1))/u),n.rotate&&o.rotate(n.rotate*i),o.fillText(n.text,l,0),n.padding&&(o.lineWidth=2*n.padding,o.strokeText(n.text,l,0)),o.restore(),n.width=_,n.height=b,n.xoff=c,n.yoff=f,n.x1=_>>1,n.y1=b>>1,n.x0=-n.x1,n.y0=-n.y1,n.hasText=!0,c+=_}for(var _=o.getImageData(0,0,2048/u,a/u).data,b=[];--r>=0;)if((n=e[r]).hasText){for(var m=n.width,x=m>>5,w=n.y1-n.y0,M=0;M<w*x;M++)b[M]=0;if(null==(c=n.xoff))return;f=n.yoff;for(var A=0,T=-1,S=0;S<w;S++){for(M=0;M<m;M++){var E=x*S+(M>>5),k=_[2048*(f+S)+(c+M)<<2]?1<<31-M%32:0;b[E]|=k,A|=k}A?T=S:(n.y0++,w--,S--,f++)}n.y1=n.y0+T,n.sprite=b.slice(0,(n.y1-n.y0)*x)}}}function p(t,n,e){e>>=5;for(var r,i=t.sprite,o=t.width>>5,a=t.x-(o<<4),u=127&a,c=32-u,f=t.y1-t.y0,s=(t.y+t.y0)*e+(a>>5),l=0;l<f;l++){r=0;for(var h=0;h<=o;h++)if((r<<c|(h<o?(r=i[l*o+h])>>>u:0))&n[s+h])return!0;s+=e}return!1}function g(t,n){var e=t[0],r=t[1];n.x+n.x0<e.x&&(e.x=n.x+n.x0),n.y+n.y0<e.y&&(e.y=n.y+n.y0),n.x+n.x1>r.x&&(r.x=n.x+n.x1),n.y+n.y1>r.y&&(r.y=n.y+n.y1)}function y(t){var n=t[0]/t[1];return function(t){return[n*(t*=.1)*Math.cos(t),t*Math.sin(t)]}}function v(){return document.createElement("canvas")}function _(t){return"function"==typeof t?t:function(){return t}}t.exports=function(){var t=[256,256],n=u,e=c,i=s,b=f,m=f,x=l,w=h,M=y,A=[],T=1/0,S=r("word","end"),E=null,k=Math.random,N={},C=v;function z(n,e,r){t[0],t[1];for(var i,o,a,u,c,f=e.x,s=e.y,l=Math.sqrt(t[0]*t[0]+t[1]*t[1]),h=M(t),d=k()<.5?1:-1,g=-d;(i=h(g+=d))&&(o=~~i[0],a=~~i[1],!(Math.min(Math.abs(o),Math.abs(a))>=l));)if(e.x=f+o,e.y=s+a,!(e.x+e.x0<0||e.y+e.y0<0||e.x+e.x1>t[0]||e.y+e.y1>t[1]||r&&(c=r,!((u=e).x+u.x1>c[0].x&&u.x+u.x0<c[1].x&&u.y+u.y1>c[0].y&&u.y+u.y0<c[1].y))||p(e,n,t[0]))){for(var y,v=e.sprite,_=e.width>>5,b=t[0]>>5,m=e.x-(_<<4),x=127&m,w=32-x,A=e.y1-e.y0,T=(e.y+e.y0)*b+(m>>5),S=0;S<A;S++){y=0;for(var E=0;E<=_;E++)n[T+E]|=y<<w|(E<_?(y=v[S*_+E])>>>x:0);T+=b}return!0}return!1}return N.canvas=function(t){return arguments.length?(C=_(t),N):C},N.start=function(){var r=function(t){const n=t.getContext("2d",{willReadFrequently:!0});t.width=t.height=1;const e=Math.sqrt(n.getImageData(0,0,1,1).data.length>>2);return t.width=2048/e,t.height=a/e,n.fillStyle=n.strokeStyle="red",{context:n,ratio:e}}(C()),o=function(t){for(var n=[],e=-1;++e<t;)n[e]=0;return n}((t[0]>>5)*t[1]),u=null,c=A.length,f=-1,s=[],l=A.map((function(t,r){return t.text=n.call(this,t,r),t.font=e.call(this,t,r),t.style=b.call(this,t,r),t.weight=m.call(this,t,r),t.rotate=x.call(this,t,r),t.size=~~i.call(this,t,r),t.padding=w.call(this,t,r),t})).sort((function(t,n){return n.size-t.size}));return E&&clearInterval(E),E=setInterval(h,0),h(),N;function h(){for(var n=Date.now();Date.now()-n<T&&++f<c&&E;){var e=l[f];e.x=t[0]*(k()+.5)>>1,e.y=t[1]*(k()+.5)>>1,d(r,e,l,f),e.hasText&&z(o,e,u)&&(s.push(e),S.call("word",N,e),u?g(u,e):u=[{x:e.x+e.x0,y:e.y+e.y0},{x:e.x+e.x1,y:e.y+e.y1}],e.x-=t[0]>>1,e.y-=t[1]>>1)}f>=c&&(N.stop(),S.call("end",N,s,u))}},N.stop=function(){E&&(clearInterval(E),E=null);for(const t of A)delete t.sprite;return N},N.timeInterval=function(t){return arguments.length?(T=null==t?1/0:t,N):T},N.words=function(t){return arguments.length?(A=t,N):A},N.size=function(n){return arguments.length?(t=[+n[0],+n[1]],N):t},N.font=function(t){return arguments.length?(e=_(t),N):e},N.fontStyle=function(t){return arguments.length?(b=_(t),N):b},N.fontWeight=function(t){return arguments.length?(m=_(t),N):m},N.rotate=function(t){return arguments.length?(x=_(t),N):x},N.text=function(t){return arguments.length?(n=_(t),N):n},N.spiral=function(t){return arguments.length?(M=o[t]||t,N):M},N.fontSize=function(t){return arguments.length?(i=_(t),N):i},N.padding=function(t){return arguments.length?(w=_(t),N):w},N.random=function(t){return arguments.length?(k=t,N):k},N.on=function(){var t=S.on.apply(S,arguments);return t===S?N:t},N}},96:(t,n,e)=>{"use strict";e.d(n,{J:()=>c});var r={value:function(){}};function i(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new o(r)}function o(t){this._=t}function a(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function u(t,n,e){for(var i=0,o=t.length;i<o;++i)if(t[i].name===n){t[i]=r,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=e&&t.push({name:n,value:e}),t}o.prototype=i.prototype={constructor:o,on:function(t,n){var e,r,i=this._,o=(r=i,(t+"").trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))),c=-1,f=o.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++c<f;)if(e=(t=o[c]).type)i[e]=u(i[e],t.name,n);else if(null==n)for(e in i)i[e]=u(i[e],t.name,null);return this}for(;++c<f;)if((e=(t=o[c]).type)&&(e=a(i[e],t.name)))return e},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new o(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};const c=i},148:function(t,n,e){"use strict";var r,i=this&&this.__createBinding||(Object.create?function(t,n,e,r){void 0===r&&(r=e);var i=Object.getOwnPropertyDescriptor(n,e);i&&!("get"in i?!n.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return n[e]}}),Object.defineProperty(t,r,i)}:function(t,n,e,r){void 0===r&&(r=e),t[r]=n[e]}),o=this&&this.__setModuleDefault||(Object.create?function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}:function(t,n){t.default=n}),a=this&&this.__importStar||(r=function(t){return r=Object.getOwnPropertyNames||function(t){var n=[];for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(n[n.length]=e);return n},r(t)},function(t){if(t&&t.__esModule)return t;var n={};if(null!=t)for(var e=r(t),a=0;a<e.length;a++)"default"!==e[a]&&i(n,t,e[a]);return o(n,t),n}),u=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(n,"__esModule",{value:!0});const c=e(555),f=u(e(84)),s=a(e(365)),l={width:800,height:600,fontFamily:"Arial, sans-serif",maxWords:100,colors:[...s.schemeCategory10],padding:5,minFontSize:10,maxFontSize:60,rotationAngles:[0,90],rotationProbability:.3},h={generateWordCloud:function(t,n,e,r={}){const i=Object.assign(Object.assign({},l),r),o=(0,c.getSimplifiedTokenizer)(n).tokenize(t),a=Array.from(o.entries()).sort(((t,n)=>n[1]-t[1])).slice(0,i.maxWords).map((([t,n])=>{const e=Array.from(o.values()),r=Math.min(...e),a=Math.max(...e);return{text:t,size:r===a?i.maxFontSize:i.minFontSize+(n-r)/(a-r)*(i.maxFontSize-i.minFontSize),rotate:Math.random()>i.rotationProbability?0:i.rotationAngles[Math.floor(Math.random()*i.rotationAngles.length)]}})),u=document.createElementNS("http://www.w3.org/2000/svg","svg");return u.setAttribute("width",i.width.toString()),u.setAttribute("height",i.height.toString()),u.setAttribute("class","wordcloud"),(0,f.default)().size([i.width,i.height]).words(a).padding(i.padding).rotate((t=>t.rotate)).font(i.fontFamily).fontSize((t=>t.size)).on("end",(t=>{const n=s.scaleOrdinal(i.colors),e=document.createElementNS("http://www.w3.org/2000/svg","g");e.setAttribute("transform",`translate(${i.width/2},${i.height/2})`),t.forEach(((t,r)=>{const o=document.createElementNS("http://www.w3.org/2000/svg","text");o.setAttribute("text-anchor","middle"),o.setAttribute("transform",`translate(${t.x},${t.y}) rotate(${t.rotate})`),o.setAttribute("font-size",`${t.size}px`),o.setAttribute("font-family",i.fontFamily),o.setAttribute("fill",n(r.toString())),o.textContent=t.text||"",e.appendChild(o)})),u.appendChild(e)})).start(),e.innerHTML="",e.appendChild(u),u}};n.default=h,"undefined"!=typeof window&&(window.SimpleWordCloud=h)},365:(t,n,e)=>{"use strict";function r(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function i(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function o(t){let n,e,o;function u(t,r,i=0,o=t.length){if(i<o){if(0!==n(r,r))return o;do{const n=i+o>>>1;e(t[n],r)<0?i=n+1:o=n}while(i<o)}return i}return 2!==t.length?(n=r,e=(n,e)=>r(t(n),e),o=(n,e)=>t(n)-e):(n=t===r||t===i?t:a,e=t,o=t),{left:u,center:function(t,n,e=0,r=t.length){const i=u(t,n,e,r-1);return i>e&&o(t[i-1],n)>-o(t[i],n)?i-1:i},right:function(t,r,i=0,o=t.length){if(i<o){if(0!==n(r,r))return o;do{const n=i+o>>>1;e(t[n],r)<=0?i=n+1:o=n}while(i<o)}return i}}}function a(){return 0}function u(t){return null===t?NaN:+t}e.r(n),e.d(n,{Adder:()=>N,Delaunay:()=>Xu,FormatSpecifier:()=>ls,InternMap:()=>P,InternSet:()=>$,Node:()=>Rg,Path:()=>ca,Voronoi:()=>Uu,ZoomTransform:()=>LT,active:()=>ho,arc:()=>kM,area:()=>OM,areaRadial:()=>HM,ascending:()=>r,autoType:()=>Tc,axisBottom:()=>mn,axisLeft:()=>xn,axisRight:()=>bn,axisTop:()=>_n,bin:()=>dt,bisect:()=>h,bisectCenter:()=>l,bisectLeft:()=>s,bisectRight:()=>f,bisector:()=>o,blob:()=>gf,blur:()=>d,blur2:()=>p,blurImage:()=>g,brush:()=>jo,brushSelection:()=>Io,brushX:()=>Uo,brushY:()=>Bo,buffer:()=>vf,chord:()=>Jo,chordDirected:()=>na,chordTranspose:()=>ta,cluster:()=>kg,color:()=>hr,contourDensity:()=>vu,contours:()=>fu,count:()=>m,create:()=>eM,creator:()=>Ee,cross:()=>A,csv:()=>wf,csvFormat:()=>hc,csvFormatBody:()=>dc,csvFormatRow:()=>gc,csvFormatRows:()=>pc,csvFormatValue:()=>yc,csvParse:()=>sc,csvParseRows:()=>lc,cubehelix:()=>Ja,cumsum:()=>T,curveBasis:()=>RA,curveBasisClosed:()=>FA,curveBasisOpen:()=>IA,curveBumpX:()=>WM,curveBumpY:()=>ZM,curveBundle:()=>BA,curveCardinal:()=>LA,curveCardinalClosed:()=>XA,curveCardinalOpen:()=>VA,curveCatmullRom:()=>KA,curveCatmullRomClosed:()=>JA,curveCatmullRomOpen:()=>nT,curveLinear:()=>PM,curveLinearClosed:()=>rT,curveMonotoneX:()=>lT,curveMonotoneY:()=>hT,curveNatural:()=>gT,curveStep:()=>vT,curveStepAfter:()=>bT,curveStepBefore:()=>_T,descending:()=>i,deviation:()=>E,difference:()=>Kt,disjoint:()=>Qt,dispatch:()=>En,drag:()=>Ju,dragDisable:()=>Xe,dragEnable:()=>Ge,dsv:()=>xf,dsvFormat:()=>cc,easeBack:()=>ff,easeBackIn:()=>uf,easeBackInOut:()=>ff,easeBackOut:()=>cf,easeBounce:()=>rf,easeBounceIn:()=>ef,easeBounceInOut:()=>of,easeBounceOut:()=>rf,easeCircle:()=>Hc,easeCircleIn:()=>Yc,easeCircleInOut:()=>Hc,easeCircleOut:()=>Lc,easeCubic:()=>co,easeCubicIn:()=>ao,easeCubicInOut:()=>co,easeCubicOut:()=>uo,easeElastic:()=>hf,easeElasticIn:()=>lf,easeElasticInOut:()=>df,easeElasticOut:()=>hf,easeExp:()=>jc,easeExpIn:()=>Uc,easeExpInOut:()=>jc,easeExpOut:()=>Bc,easeLinear:()=>Ec,easePoly:()=>$c,easePolyIn:()=>zc,easePolyInOut:()=>$c,easePolyOut:()=>Pc,easeQuad:()=>Cc,easeQuadIn:()=>kc,easeQuadInOut:()=>Cc,easeQuadOut:()=>Nc,easeSin:()=>qc,easeSinIn:()=>Oc,easeSinInOut:()=>qc,easeSinOut:()=>Fc,every:()=>Ht,extent:()=>k,fcumsum:()=>z,filter:()=>Gt,flatGroup:()=>j,flatRollup:()=>Y,forceCenter:()=>zf,forceCollide:()=>Lf,forceLink:()=>Gf,forceManyBody:()=>es,forceRadial:()=>rs,forceSimulation:()=>ns,forceX:()=>is,forceY:()=>os,format:()=>ys,formatDefaultLocale:()=>xs,formatLocale:()=>ms,formatPrefix:()=>vs,formatSpecifier:()=>ss,fsum:()=>C,geoAlbers:()=>Yp,geoAlbersUsa:()=>Lp,geoArea:()=>Tl,geoAzimuthalEqualArea:()=>Vp,geoAzimuthalEqualAreaRaw:()=>Gp,geoAzimuthalEquidistant:()=>Zp,geoAzimuthalEquidistantRaw:()=>Wp,geoBounds:()=>ah,geoCentroid:()=>_h,geoCircle:()=>Nh,geoClipAntimeridian:()=>Uh,geoClipCircle:()=>Bh,geoClipExtent:()=>Wh,geoClipRectangle:()=>Vh,geoConicConformal:()=>eg,geoConicConformalRaw:()=>ng,geoConicEqualArea:()=>jp,geoConicEqualAreaRaw:()=>Bp,geoConicEquidistant:()=>ag,geoConicEquidistantRaw:()=>og,geoContains:()=>hd,geoDistance:()=>rd,geoEqualEarth:()=>dg,geoEqualEarthRaw:()=>hg,geoEquirectangular:()=>ig,geoEquirectangularRaw:()=>rg,geoGnomonic:()=>gg,geoGnomonicRaw:()=>pg,geoGraticule:()=>gd,geoGraticule10:()=>yd,geoIdentity:()=>yg,geoInterpolate:()=>vd,geoLength:()=>td,geoMercator:()=>Qp,geoMercatorRaw:()=>Kp,geoNaturalEarth1:()=>_g,geoNaturalEarth1Raw:()=>vg,geoOrthographic:()=>mg,geoOrthographicRaw:()=>bg,geoPath:()=>Ap,geoProjection:()=>qp,geoProjectionMutator:()=>Ip,geoRotation:()=>Sh,geoStereographic:()=>wg,geoStereographicRaw:()=>xg,geoStream:()=>nl,geoTransform:()=>Tp,geoTransverseMercator:()=>Ag,geoTransverseMercatorRaw:()=>Mg,gray:()=>$a,greatest:()=>mt,greatestIndex:()=>Ft,group:()=>I,groupSort:()=>tt,groups:()=>U,hcl:()=>ja,hierarchy:()=>Cg,histogram:()=>dt,hsl:()=>Tr,html:()=>Nf,image:()=>Af,index:()=>X,indexes:()=>G,interpolate:()=>Kr,interpolateArray:()=>Yr,interpolateBasis:()=>zr,interpolateBasisClosed:()=>Pr,interpolateBlues:()=>Nw,interpolateBrBG:()=>Bx,interpolateBuGn:()=>ow,interpolateBuPu:()=>uw,interpolateCividis:()=>Uw,interpolateCool:()=>Yw,interpolateCubehelix:()=>Wy,interpolateCubehelixDefault:()=>Bw,interpolateCubehelixLong:()=>Zy,interpolateDate:()=>Hr,interpolateDiscrete:()=>Oy,interpolateGnBu:()=>fw,interpolateGreens:()=>zw,interpolateGreys:()=>$w,interpolateHcl:()=>Xy,interpolateHclLong:()=>Gy,interpolateHsl:()=>jy,interpolateHslLong:()=>Yy,interpolateHue:()=>Fy,interpolateInferno:()=>tM,interpolateLab:()=>Ly,interpolateMagma:()=>Jw,interpolateNumber:()=>Xr,interpolateNumberArray:()=>Br,interpolateObject:()=>Gr,interpolateOrRd:()=>lw,interpolateOranges:()=>Iw,interpolatePRGn:()=>Yx,interpolatePiYG:()=>Hx,interpolatePlasma:()=>nM,interpolatePuBu:()=>gw,interpolatePuBuGn:()=>dw,interpolatePuOr:()=>Gx,interpolatePuRd:()=>vw,interpolatePurples:()=>Rw,interpolateRainbow:()=>Hw,interpolateRdBu:()=>Wx,interpolateRdGy:()=>Kx,interpolateRdPu:()=>bw,interpolateRdYlBu:()=>Jx,interpolateRdYlGn:()=>nw,interpolateReds:()=>Fw,interpolateRgb:()=>Fr,interpolateRgbBasis:()=>Ir,interpolateRgbBasisClosed:()=>Ur,interpolateRound:()=>qy,interpolateSinebow:()=>Ww,interpolateSpectral:()=>rw,interpolateString:()=>Zr,interpolateTransformCss:()=>Ri,interpolateTransformSvg:()=>Oi,interpolateTurbo:()=>Zw,interpolateViridis:()=>Qw,interpolateWarm:()=>jw,interpolateYlGn:()=>Mw,interpolateYlGnBu:()=>xw,interpolateYlOrBr:()=>Tw,interpolateYlOrRd:()=>Ew,interpolateZoom:()=>Uy,interrupt:()=>Ni,intersection:()=>Jt,interval:()=>BT,isoFormat:()=>qT,isoParse:()=>UT,json:()=>Sf,lab:()=>Da,lch:()=>Ba,least:()=>Rt,leastIndex:()=>Ot,line:()=>RM,lineRadial:()=>LM,link:()=>tA,linkHorizontal:()=>nA,linkRadial:()=>rA,linkVertical:()=>eA,local:()=>iM,map:()=>Vt,matcher:()=>$n,max:()=>pt,maxIndex:()=>gt,mean:()=>St,median:()=>Et,medianIndex:()=>kt,merge:()=>Nt,min:()=>yt,minIndex:()=>vt,mode:()=>Ct,namespace:()=>Vn,namespaces:()=>Gn,nice:()=>lt,now:()=>si,pack:()=>ay,packEnclose:()=>Lg,packSiblings:()=>iy,pairs:()=>zt,partition:()=>hy,path:()=>fa,pathRound:()=>sa,permute:()=>Z,pie:()=>IM,piecewise:()=>Ky,pointRadial:()=>XM,pointer:()=>Jr,pointers:()=>aM,polygonArea:()=>Jy,polygonCentroid:()=>tv,polygonContains:()=>ov,polygonHull:()=>iv,polygonLength:()=>av,precisionFixed:()=>ws,precisionPrefix:()=>Ms,precisionRound:()=>As,quadtree:()=>Of,quantile:()=>xt,quantileIndex:()=>Mt,quantileSorted:()=>wt,quantize:()=>Qy,quickselect:()=>_t,radialArea:()=>HM,radialLine:()=>LM,randomBates:()=>dv,randomBernoulli:()=>yv,randomBeta:()=>bv,randomBinomial:()=>mv,randomCauchy:()=>wv,randomExponential:()=>pv,randomGamma:()=>_v,randomGeometric:()=>vv,randomInt:()=>fv,randomIrwinHall:()=>hv,randomLcg:()=>kv,randomLogNormal:()=>lv,randomLogistic:()=>Mv,randomNormal:()=>sv,randomPareto:()=>gv,randomPoisson:()=>Av,randomUniform:()=>cv,randomWeibull:()=>xv,range:()=>$t,rank:()=>Dt,reduce:()=>Wt,reverse:()=>Zt,rgb:()=>yr,ribbon:()=>xa,ribbonArrow:()=>wa,rollup:()=>L,rollups:()=>H,scaleBand:()=>$v,scaleDiverging:()=>wx,scaleDivergingLog:()=>Mx,scaleDivergingPow:()=>Tx,scaleDivergingSqrt:()=>Sx,scaleDivergingSymlog:()=>Ax,scaleIdentity:()=>Vv,scaleImplicit:()=>zv,scaleLinear:()=>Gv,scaleLog:()=>r_,scaleOrdinal:()=>Pv,scalePoint:()=>Rv,scalePow:()=>h_,scaleQuantile:()=>y_,scaleQuantize:()=>v_,scaleRadial:()=>g_,scaleSequential:()=>gx,scaleSequentialLog:()=>yx,scaleSequentialPow:()=>_x,scaleSequentialQuantile:()=>mx,scaleSequentialSqrt:()=>bx,scaleSequentialSymlog:()=>vx,scaleSqrt:()=>d_,scaleSymlog:()=>u_,scaleThreshold:()=>__,scaleTime:()=>lx,scaleUtc:()=>hx,scan:()=>qt,schemeAccent:()=>Nx,schemeBlues:()=>kw,schemeBrBG:()=>Ux,schemeBuGn:()=>iw,schemeBuPu:()=>aw,schemeCategory10:()=>kx,schemeDark2:()=>Cx,schemeGnBu:()=>cw,schemeGreens:()=>Cw,schemeGreys:()=>Pw,schemeObservable10:()=>zx,schemeOrRd:()=>sw,schemeOranges:()=>qw,schemePRGn:()=>jx,schemePaired:()=>Px,schemePastel1:()=>$x,schemePastel2:()=>Dx,schemePiYG:()=>Lx,schemePuBu:()=>pw,schemePuBuGn:()=>hw,schemePuOr:()=>Xx,schemePuRd:()=>yw,schemePurples:()=>Dw,schemeRdBu:()=>Vx,schemeRdGy:()=>Zx,schemeRdPu:()=>_w,schemeRdYlBu:()=>Qx,schemeRdYlGn:()=>tw,schemeReds:()=>Ow,schemeSet1:()=>Rx,schemeSet2:()=>Ox,schemeSet3:()=>Fx,schemeSpectral:()=>ew,schemeTableau10:()=>qx,schemeYlGn:()=>ww,schemeYlGnBu:()=>mw,schemeYlOrBr:()=>Aw,schemeYlOrRd:()=>Sw,select:()=>Be,selectAll:()=>uM,selection:()=>Ue,selector:()=>Nn,selectorAll:()=>Pn,shuffle:()=>It,shuffler:()=>Ut,some:()=>Xt,sort:()=>K,stack:()=>AT,stackOffsetDiverging:()=>ST,stackOffsetExpand:()=>TT,stackOffsetNone:()=>mT,stackOffsetSilhouette:()=>ET,stackOffsetWiggle:()=>kT,stackOrderAppearance:()=>NT,stackOrderAscending:()=>zT,stackOrderDescending:()=>$T,stackOrderInsideOut:()=>DT,stackOrderNone:()=>xT,stackOrderReverse:()=>RT,stratify:()=>_y,style:()=>oe,subset:()=>rn,sum:()=>Bt,superset:()=>nn,svg:()=>Cf,symbol:()=>zA,symbolAsterisk:()=>oA,symbolCircle:()=>aA,symbolCross:()=>uA,symbolDiamond:()=>sA,symbolDiamond2:()=>lA,symbolPlus:()=>hA,symbolSquare:()=>dA,symbolSquare2:()=>pA,symbolStar:()=>_A,symbolTimes:()=>kA,symbolTriangle:()=>mA,symbolTriangle2:()=>wA,symbolWye:()=>EA,symbolX:()=>kA,symbols:()=>NA,symbolsFill:()=>NA,symbolsStroke:()=>CA,text:()=>bf,thresholdFreedmanDiaconis:()=>At,thresholdScott:()=>Tt,thresholdSturges:()=>ht,tickFormat:()=>Hv,tickIncrement:()=>ft,tickStep:()=>st,ticks:()=>ct,timeDay:()=>U_,timeDays:()=>B_,timeFormat:()=>Ub,timeFormatDefaultLocale:()=>ux,timeFormatLocale:()=>qb,timeFriday:()=>Q_,timeFridays:()=>ob,timeHour:()=>O_,timeHours:()=>F_,timeInterval:()=>E_,timeMillisecond:()=>k_,timeMilliseconds:()=>N_,timeMinute:()=>P_,timeMinutes:()=>$_,timeMonday:()=>V_,timeMondays:()=>nb,timeMonth:()=>wb,timeMonths:()=>Mb,timeParse:()=>Bb,timeSaturday:()=>J_,timeSaturdays:()=>ab,timeSecond:()=>C_,timeSeconds:()=>z_,timeSunday:()=>G_,timeSundays:()=>tb,timeThursday:()=>K_,timeThursdays:()=>ib,timeTickInterval:()=>Db,timeTicks:()=>$b,timeTuesday:()=>W_,timeTuesdays:()=>eb,timeWednesday:()=>Z_,timeWednesdays:()=>rb,timeWeek:()=>G_,timeWeeks:()=>tb,timeYear:()=>Sb,timeYears:()=>Eb,timeout:()=>_i,timer:()=>di,timerFlush:()=>pi,transition:()=>ro,transpose:()=>jt,tree:()=>Ey,treemap:()=>Py,treemapBinary:()=>$y,treemapDice:()=>ly,treemapResquarify:()=>Ry,treemapSlice:()=>ky,treemapSliceDice:()=>Dy,treemapSquarify:()=>zy,tsv:()=>Mf,tsvFormat:()=>mc,tsvFormatBody:()=>xc,tsvFormatRow:()=>Mc,tsvFormatRows:()=>wc,tsvFormatValue:()=>Ac,tsvParse:()=>_c,tsvParseRows:()=>bc,union:()=>on,unixDay:()=>L_,unixDays:()=>H_,utcDay:()=>j_,utcDays:()=>Y_,utcFormat:()=>jb,utcFriday:()=>db,utcFridays:()=>mb,utcHour:()=>q_,utcHours:()=>I_,utcMillisecond:()=>k_,utcMilliseconds:()=>N_,utcMinute:()=>D_,utcMinutes:()=>R_,utcMonday:()=>fb,utcMondays:()=>yb,utcMonth:()=>Ab,utcMonths:()=>Tb,utcParse:()=>Yb,utcSaturday:()=>pb,utcSaturdays:()=>xb,utcSecond:()=>C_,utcSeconds:()=>z_,utcSunday:()=>cb,utcSundays:()=>gb,utcThursday:()=>hb,utcThursdays:()=>bb,utcTickInterval:()=>Pb,utcTicks:()=>zb,utcTuesday:()=>sb,utcTuesdays:()=>vb,utcWednesday:()=>lb,utcWednesdays:()=>_b,utcWeek:()=>cb,utcWeeks:()=>gb,utcYear:()=>kb,utcYears:()=>Nb,variance:()=>S,window:()=>ne,xml:()=>kf,zip:()=>Lt,zoom:()=>nS,zoomIdentity:()=>HT,zoomTransform:()=>XT});const c=o(r),f=c.right,s=c.left,l=o(u).center,h=f;function d(t,n){if(!((n=+n)>=0))throw new RangeError("invalid r");let e=t.length;if(!((e=Math.floor(e))>=0))throw new RangeError("invalid length");if(!e||!n)return t;const r=b(n),i=t.slice();return r(t,i,0,e,1),r(i,t,0,e,1),r(t,i,0,e,1),t}const p=y(b),g=y((function(t){const n=b(t);return(t,e,r,i,o)=>{n(t,e,0+(r<<=2),0+(i<<=2),o<<=2),n(t,e,r+1,i+1,o),n(t,e,r+2,i+2,o),n(t,e,r+3,i+3,o)}}));function y(t){return function(n,e,r=e){if(!((e=+e)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:i,width:o,height:a}=n;if(!((o=Math.floor(o))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(void 0!==a?a:i.length/o))>=0))throw new RangeError("invalid height");if(!o||!a||!e&&!r)return n;const u=e&&t(e),c=r&&t(r),f=i.slice();return u&&c?(v(u,f,i,o,a),v(u,i,f,o,a),v(u,f,i,o,a),_(c,i,f,o,a),_(c,f,i,o,a),_(c,i,f,o,a)):u?(v(u,i,f,o,a),v(u,f,i,o,a),v(u,i,f,o,a)):c&&(_(c,i,f,o,a),_(c,f,i,o,a),_(c,i,f,o,a)),n}}function v(t,n,e,r,i){for(let o=0,a=r*i;o<a;)t(n,e,o,o+=r,1)}function _(t,n,e,r,i){for(let o=0,a=r*i;o<r;++o)t(n,e,o,o+a,r)}function b(t){const n=Math.floor(t);if(n===t)return function(t){const n=2*t+1;return(e,r,i,o,a)=>{if(!((o-=a)>=i))return;let u=t*r[i];const c=a*t;for(let t=i,n=i+c;t<n;t+=a)u+=r[Math.min(o,t)];for(let t=i,f=o;t<=f;t+=a)u+=r[Math.min(o,t+c)],e[t]=u/n,u-=r[Math.max(i,t-c)]}}(t);const e=t-n,r=2*t+1;return(t,i,o,a,u)=>{if(!((a-=u)>=o))return;let c=n*i[o];const f=u*n,s=f+u;for(let t=o,n=o+f;t<n;t+=u)c+=i[Math.min(a,t)];for(let n=o,l=a;n<=l;n+=u)c+=i[Math.min(a,n+f)],t[n]=(c+e*(i[Math.max(o,n-s)]+i[Math.min(a,n+s)]))/r,c-=i[Math.max(o,n-f)]}}function m(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++e;else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(i=+i)>=i&&++e}return e}function x(t){return 0|t.length}function w(t){return!(t>0)}function M(t){return"object"!=typeof t||"length"in t?t:Array.from(t)}function A(...t){const n="function"==typeof t[t.length-1]&&function(t){return n=>t(...n)}(t.pop()),e=(t=t.map(M)).map(x),r=t.length-1,i=new Array(r+1).fill(0),o=[];if(r<0||e.some(w))return o;for(;;){o.push(i.map(((n,e)=>t[e][n])));let a=r;for(;++i[a]===e[a];){if(0===a)return n?o.map(n):o;i[a--]=0}}}function T(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t=>e+=+t||0:i=>e+=+n(i,r++,t)||0)}function S(t,n){let e,r=0,i=0,o=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(e=n-i,i+=e/++r,o+=e*(n-i));else{let a=-1;for(let u of t)null!=(u=n(u,++a,t))&&(u=+u)>=u&&(e=u-i,i+=e/++r,o+=e*(u-i))}if(r>1)return o/(r-1)}function E(t,n){const e=S(t,n);return e?Math.sqrt(e):e}function k(t,n){let e,r;if(void 0===n)for(const n of t)null!=n&&(void 0===e?n>=n&&(e=r=n):(e>n&&(e=n),r<n&&(r=n)));else{let i=-1;for(let o of t)null!=(o=n(o,++i,t))&&(void 0===e?o>=o&&(e=r=o):(e>o&&(e=o),r<o&&(r=o)))}return[e,r]}class N{constructor(){this._partials=new Float64Array(32),this._n=0}add(t){const n=this._partials;let e=0;for(let r=0;r<this._n&&r<32;r++){const i=n[r],o=t+i,a=Math.abs(t)<Math.abs(i)?t-(o-i):i-(o-t);a&&(n[e++]=a),t=o}return n[e]=t,this._n=e+1,this}valueOf(){const t=this._partials;let n,e,r,i=this._n,o=0;if(i>0){for(o=t[--i];i>0&&(n=o,e=t[--i],o=n+e,r=e-(o-n),!r););i>0&&(r<0&&t[i-1]<0||r>0&&t[i-1]>0)&&(e=2*r,n=o+e,e==n-o&&(o=n))}return o}}function C(t,n){const e=new N;if(void 0===n)for(let n of t)(n=+n)&&e.add(n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&e.add(i)}return+e}function z(t,n){const e=new N;let r=-1;return Float64Array.from(t,void 0===n?t=>e.add(+t||0):i=>e.add(+n(i,++r,t)||0))}class P extends Map{constructor(t,n=F){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,e]of t)this.set(n,e)}get(t){return super.get(D(this,t))}has(t){return super.has(D(this,t))}set(t,n){return super.set(R(this,t),n)}delete(t){return super.delete(O(this,t))}}class $ extends Set{constructor(t,n=F){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const n of t)this.add(n)}has(t){return super.has(D(this,t))}add(t){return super.add(R(this,t))}delete(t){return super.delete(O(this,t))}}function D({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):e}function R({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):(t.set(r,e),e)}function O({_intern:t,_key:n},e){const r=n(e);return t.has(r)&&(e=t.get(r),t.delete(r)),e}function F(t){return null!==t&&"object"==typeof t?t.valueOf():t}function q(t){return t}function I(t,...n){return W(t,q,q,n)}function U(t,...n){return W(t,Array.from,q,n)}function B(t,n){for(let e=1,r=n.length;e<r;++e)t=t.flatMap((t=>t.pop().map((([n,e])=>[...t,n,e]))));return t}function j(t,...n){return B(U(t,...n),n)}function Y(t,n,...e){return B(H(t,n,...e),e)}function L(t,n,...e){return W(t,q,n,e)}function H(t,n,...e){return W(t,Array.from,n,e)}function X(t,...n){return W(t,q,V,n)}function G(t,...n){return W(t,Array.from,V,n)}function V(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function W(t,n,e,r){return function t(i,o){if(o>=r.length)return e(i);const a=new P,u=r[o++];let c=-1;for(const t of i){const n=u(t,++c,i),e=a.get(n);e?e.push(t):a.set(n,[t])}for(const[n,e]of a)a.set(n,t(e,o));return n(a)}(t,0)}function Z(t,n){return Array.from(n,(n=>t[n]))}function K(t,...n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[e]=n;if(e&&2!==e.length||n.length>1){const r=Uint32Array.from(t,((t,n)=>n));return n.length>1?(n=n.map((n=>t.map(n))),r.sort(((t,e)=>{for(const r of n){const n=J(r[t],r[e]);if(n)return n}}))):(e=t.map(e),r.sort(((t,n)=>J(e[t],e[n])))),Z(t,r)}return t.sort(Q(e))}function Q(t=r){if(t===r)return J;if("function"!=typeof t)throw new TypeError("compare is not a function");return(n,e)=>{const r=t(n,e);return r||0===r?r:(0===t(e,e))-(0===t(n,n))}}function J(t,n){return(null==t||!(t>=t))-(null==n||!(n>=n))||(t<n?-1:t>n?1:0)}function tt(t,n,e){return(2!==n.length?K(L(t,n,e),(([t,n],[e,i])=>r(n,i)||r(t,e))):K(I(t,e),(([t,e],[i,o])=>n(e,o)||r(t,i)))).map((([t])=>t))}var nt=Array.prototype,et=nt.slice;function rt(t){return()=>t}nt.map;const it=Math.sqrt(50),ot=Math.sqrt(10),at=Math.sqrt(2);function ut(t,n,e){const r=(n-t)/Math.max(0,e),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=it?10:o>=ot?5:o>=at?2:1;let u,c,f;return i<0?(f=Math.pow(10,-i)/a,u=Math.round(t*f),c=Math.round(n*f),u/f<t&&++u,c/f>n&&--c,f=-f):(f=Math.pow(10,i)*a,u=Math.round(t/f),c=Math.round(n/f),u*f<t&&++u,c*f>n&&--c),c<u&&.5<=e&&e<2?ut(t,n,2*e):[u,c,f]}function ct(t,n,e){if(!((e=+e)>0))return[];if((t=+t)==(n=+n))return[t];const r=n<t,[i,o,a]=r?ut(n,t,e):ut(t,n,e);if(!(o>=i))return[];const u=o-i+1,c=new Array(u);if(r)if(a<0)for(let t=0;t<u;++t)c[t]=(o-t)/-a;else for(let t=0;t<u;++t)c[t]=(o-t)*a;else if(a<0)for(let t=0;t<u;++t)c[t]=(i+t)/-a;else for(let t=0;t<u;++t)c[t]=(i+t)*a;return c}function ft(t,n,e){return ut(t=+t,n=+n,e=+e)[2]}function st(t,n,e){e=+e;const r=(n=+n)<(t=+t),i=r?ft(n,t,e):ft(t,n,e);return(r?-1:1)*(i<0?1/-i:i)}function lt(t,n,e){let r;for(;;){const i=ft(t,n,e);if(i===r||0===i||!isFinite(i))return[t,n];i>0?(t=Math.floor(t/i)*i,n=Math.ceil(n/i)*i):i<0&&(t=Math.ceil(t*i)/i,n=Math.floor(n*i)/i),r=i}}function ht(t){return Math.max(1,Math.ceil(Math.log(m(t))/Math.LN2)+1)}function dt(){var t=q,n=k,e=ht;function r(r){Array.isArray(r)||(r=Array.from(r));var i,o,a,u=r.length,c=new Array(u);for(i=0;i<u;++i)c[i]=t(r[i],i,r);var f=n(c),s=f[0],l=f[1],d=e(c,s,l);if(!Array.isArray(d)){const t=l,e=+d;if(n===k&&([s,l]=lt(s,l,e)),(d=ct(s,l,e))[0]<=s&&(a=ft(s,l,e)),d[d.length-1]>=l)if(t>=l&&n===k){const t=ft(s,l,e);isFinite(t)&&(t>0?l=(Math.floor(l/t)+1)*t:t<0&&(l=(Math.ceil(l*-t)+1)/-t))}else d.pop()}for(var p=d.length,g=0,y=p;d[g]<=s;)++g;for(;d[y-1]>l;)--y;(g||y<p)&&(d=d.slice(g,y),p=y-g);var v,_=new Array(p+1);for(i=0;i<=p;++i)(v=_[i]=[]).x0=i>0?d[i-1]:s,v.x1=i<p?d[i]:l;if(isFinite(a)){if(a>0)for(i=0;i<u;++i)null!=(o=c[i])&&s<=o&&o<=l&&_[Math.min(p,Math.floor((o-s)/a))].push(r[i]);else if(a<0)for(i=0;i<u;++i)if(null!=(o=c[i])&&s<=o&&o<=l){const t=Math.floor((s-o)*a);_[Math.min(p,t+(d[t]<=o))].push(r[i])}}else for(i=0;i<u;++i)null!=(o=c[i])&&s<=o&&o<=l&&_[h(d,o,0,p)].push(r[i]);return _}return r.value=function(n){return arguments.length?(t="function"==typeof n?n:rt(n),r):t},r.domain=function(t){return arguments.length?(n="function"==typeof t?t:rt([t[0],t[1]]),r):n},r.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:rt(Array.isArray(t)?et.call(t):t),r):e},r}function pt(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e<n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e<i||void 0===e&&i>=i)&&(e=i)}return e}function gt(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e<n||void 0===e&&n>=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e<o||void 0===e&&o>=o)&&(e=o,r=i);return r}function yt(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e>i||void 0===e&&i>=i)&&(e=i)}return e}function vt(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e>n||void 0===e&&n>=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e>o||void 0===e&&o>=o)&&(e=o,r=i);return r}function _t(t,n,e=0,r=1/0,i){if(n=Math.floor(n),e=Math.floor(Math.max(0,e)),r=Math.floor(Math.min(t.length-1,r)),!(e<=n&&n<=r))return t;for(i=void 0===i?J:Q(i);r>e;){if(r-e>600){const o=r-e+1,a=n-e+1,u=Math.log(o),c=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*c*(o-c)/o)*(a-o/2<0?-1:1);_t(t,n,Math.max(e,Math.floor(n-a*c/o+f)),Math.min(r,Math.floor(n+(o-a)*c/o+f)),i)}const o=t[n];let a=e,u=r;for(bt(t,e,n),i(t[r],o)>0&&bt(t,e,r);a<u;){for(bt(t,a,u),++a,--u;i(t[a],o)<0;)++a;for(;i(t[u],o)>0;)--u}0===i(t[e],o)?bt(t,e,u):(++u,bt(t,u,r)),u<=n&&(e=u+1),n<=u&&(r=u-1)}return t}function bt(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function mt(t,n=r){let e,i=!1;if(1===n.length){let o;for(const a of t){const t=n(a);(i?r(t,o)>0:0===r(t,t))&&(e=a,o=t,i=!0)}}else for(const r of t)(i?n(r,e)>0:0===n(r,r))&&(e=r,i=!0);return e}function xt(t,n,e){if(t=Float64Array.from(function*(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}(t,e)),(r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return yt(t);if(n>=1)return pt(t);var r,i=(r-1)*n,o=Math.floor(i),a=pt(_t(t,o).subarray(0,o+1));return a+(yt(t.subarray(o+1))-a)*(i-o)}}function wt(t,n,e=u){if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,o=Math.floor(i),a=+e(t[o],o,t);return a+(+e(t[o+1],o+1,t)-a)*(i-o)}}function Mt(t,n,e=u){if(!isNaN(n=+n)){if(r=Float64Array.from(t,((n,r)=>u(e(t[r],r,t)))),n<=0)return vt(r);if(n>=1)return gt(r);var r,i=Uint32Array.from(t,((t,n)=>n)),o=r.length-1,a=Math.floor(o*n);return _t(i,a,0,o,((t,n)=>J(r[t],r[n]))),(a=mt(i.subarray(0,a+1),(t=>r[t])))>=0?a:-1}}function At(t,n,e){const r=m(t),i=xt(t,.75)-xt(t,.25);return r&&i?Math.ceil((e-n)/(2*i*Math.pow(r,-1/3))):1}function Tt(t,n,e){const r=m(t),i=E(t);return r&&i?Math.ceil((e-n)*Math.cbrt(r)/(3.49*i)):1}function St(t,n){let e=0,r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let i=-1;for(let o of t)null!=(o=n(o,++i,t))&&(o=+o)>=o&&(++e,r+=o)}if(e)return r/e}function Et(t,n){return xt(t,.5,n)}function kt(t,n){return Mt(t,.5,n)}function Nt(t){return Array.from(function*(t){for(const n of t)yield*n}(t))}function Ct(t,n){const e=new P;if(void 0===n)for(let n of t)null!=n&&n>=n&&e.set(n,(e.get(n)||0)+1);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&i>=i&&e.set(i,(e.get(i)||0)+1)}let r,i=0;for(const[t,n]of e)n>i&&(i=n,r=t);return r}function zt(t,n=Pt){const e=[];let r,i=!1;for(const o of t)i&&e.push(n(r,o)),r=o,i=!0;return e}function Pt(t,n){return[t,n]}function $t(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o}function Dt(t,n=r){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");let e=Array.from(t);const i=new Float64Array(e.length);2!==n.length&&(e=e.map(n),n=r);const o=(t,r)=>n(e[t],e[r]);let a,u;return(t=Uint32Array.from(e,((t,n)=>n))).sort(n===r?(t,n)=>J(e[t],e[n]):Q(o)),t.forEach(((t,n)=>{const e=o(t,void 0===a?t:a);e>=0?((void 0===a||e>0)&&(a=t,u=n),i[t]=u):i[t]=NaN})),i}function Rt(t,n=r){let e,i=!1;if(1===n.length){let o;for(const a of t){const t=n(a);(i?r(t,o)<0:0===r(t,t))&&(e=a,o=t,i=!0)}}else for(const r of t)(i?n(r,e)<0:0===n(r,r))&&(e=r,i=!0);return e}function Ot(t,n=r){if(1===n.length)return vt(t,n);let e,i=-1,o=-1;for(const r of t)++o,(i<0?0===n(r,r):n(r,e)<0)&&(e=r,i=o);return i}function Ft(t,n=r){if(1===n.length)return gt(t,n);let e,i=-1,o=-1;for(const r of t)++o,(i<0?0===n(r,r):n(r,e)>0)&&(e=r,i=o);return i}function qt(t,n){const e=Ot(t,n);return e<0?void 0:e}const It=Ut(Math.random);function Ut(t){return function(n,e=0,r=n.length){let i=r-(e=+e);for(;i;){const r=t()*i--|0,o=n[i+e];n[i+e]=n[r+e],n[r+e]=o}return n}}function Bt(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&(e+=i)}return e}function jt(t){if(!(i=t.length))return[];for(var n=-1,e=yt(t,Yt),r=new Array(e);++n<e;)for(var i,o=-1,a=r[n]=new Array(i);++o<i;)a[o]=t[o][n];return r}function Yt(t){return t.length}function Lt(){return jt(arguments)}function Ht(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(!n(r,++e,t))return!1;return!0}function Xt(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(n(r,++e,t))return!0;return!1}function Gt(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");const e=[];let r=-1;for(const i of t)n(i,++r,t)&&e.push(i);return e}function Vt(t,n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!=typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((e,r)=>n(e,r,t)))}function Wt(t,n,e){if("function"!=typeof n)throw new TypeError("reducer is not a function");const r=t[Symbol.iterator]();let i,o,a=-1;if(arguments.length<3){if(({done:i,value:e}=r.next()),i)return;++a}for(;({done:i,value:o}=r.next()),!i;)e=n(e,o,++a,t);return e}function Zt(t){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()}function Kt(t,...n){t=new $(t);for(const e of n)for(const n of e)t.delete(n);return t}function Qt(t,n){const e=n[Symbol.iterator](),r=new $;for(const n of t){if(r.has(n))return!1;let t,i;for(;({value:t,done:i}=e.next())&&!i;){if(Object.is(n,t))return!1;r.add(t)}}return!0}function Jt(t,...n){t=new $(t),n=n.map(tn);t:for(const e of t)for(const r of n)if(!r.has(e)){t.delete(e);continue t}return t}function tn(t){return t instanceof $?t:new $(t)}function nn(t,n){const e=t[Symbol.iterator](),r=new Set;for(const t of n){const n=en(t);if(r.has(n))continue;let i,o;for(;({value:i,done:o}=e.next());){if(o)return!1;const t=en(i);if(r.add(t),Object.is(n,t))break}}return!0}function en(t){return null!==t&&"object"==typeof t?t.valueOf():t}function rn(t,n){return nn(n,t)}function on(...t){const n=new $;for(const e of t)for(const t of e)n.add(t);return n}function an(t){return t}var un=1,cn=2,fn=3,sn=4,ln=1e-6;function hn(t){return"translate("+t+",0)"}function dn(t){return"translate(0,"+t+")"}function pn(t){return n=>+t(n)}function gn(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function yn(){return!this.__axis}function vn(t,n){var e=[],r=null,i=null,o=6,a=6,u=3,c="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,f=t===un||t===sn?-1:1,s=t===sn||t===cn?"x":"y",l=t===un||t===fn?hn:dn;function h(h){var d=null==r?n.ticks?n.ticks.apply(n,e):n.domain():r,p=null==i?n.tickFormat?n.tickFormat.apply(n,e):an:i,g=Math.max(o,0)+u,y=n.range(),v=+y[0]+c,_=+y[y.length-1]+c,b=(n.bandwidth?gn:pn)(n.copy(),c),m=h.selection?h.selection():h,x=m.selectAll(".domain").data([null]),w=m.selectAll(".tick").data(d,n).order(),M=w.exit(),A=w.enter().append("g").attr("class","tick"),T=w.select("line"),S=w.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),w=w.merge(A),T=T.merge(A.append("line").attr("stroke","currentColor").attr(s+"2",f*o)),S=S.merge(A.append("text").attr("fill","currentColor").attr(s,f*g).attr("dy",t===un?"0em":t===fn?"0.71em":"0.32em")),h!==m&&(x=x.transition(h),w=w.transition(h),T=T.transition(h),S=S.transition(h),M=M.transition(h).attr("opacity",ln).attr("transform",(function(t){return isFinite(t=b(t))?l(t+c):this.getAttribute("transform")})),A.attr("opacity",ln).attr("transform",(function(t){var n=this.parentNode.__axis;return l((n&&isFinite(n=n(t))?n:b(t))+c)}))),M.remove(),x.attr("d",t===sn||t===cn?a?"M"+f*a+","+v+"H"+c+"V"+_+"H"+f*a:"M"+c+","+v+"V"+_:a?"M"+v+","+f*a+"V"+c+"H"+_+"V"+f*a:"M"+v+","+c+"H"+_),w.attr("opacity",1).attr("transform",(function(t){return l(b(t)+c)})),T.attr(s+"2",f*o),S.attr(s,f*g).text(p),m.filter(yn).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===cn?"start":t===sn?"end":"middle"),m.each((function(){this.__axis=b}))}return h.scale=function(t){return arguments.length?(n=t,h):n},h.ticks=function(){return e=Array.from(arguments),h},h.tickArguments=function(t){return arguments.length?(e=null==t?[]:Array.from(t),h):e.slice()},h.tickValues=function(t){return arguments.length?(r=null==t?null:Array.from(t),h):r&&r.slice()},h.tickFormat=function(t){return arguments.length?(i=t,h):i},h.tickSize=function(t){return arguments.length?(o=a=+t,h):o},h.tickSizeInner=function(t){return arguments.length?(o=+t,h):o},h.tickSizeOuter=function(t){return arguments.length?(a=+t,h):a},h.tickPadding=function(t){return arguments.length?(u=+t,h):u},h.offset=function(t){return arguments.length?(c=+t,h):c},h}function _n(t){return vn(un,t)}function bn(t){return vn(cn,t)}function mn(t){return vn(fn,t)}function xn(t){return vn(sn,t)}var wn={value:()=>{}};function Mn(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new An(r)}function An(t){this._=t}function Tn(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function Sn(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=wn,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}An.prototype=Mn.prototype={constructor:An,on:function(t,n){var e,r,i=this._,o=(r=i,(t+"").trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))),a=-1,u=o.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++a<u;)if(e=(t=o[a]).type)i[e]=Sn(i[e],t.name,n);else if(null==n)for(e in i)i[e]=Sn(i[e],t.name,null);return this}for(;++a<u;)if((e=(t=o[a]).type)&&(e=Tn(i[e],t.name)))return e},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new An(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};const En=Mn;function kn(){}function Nn(t){return null==t?kn:function(){return this.querySelector(t)}}function Cn(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function zn(){return[]}function Pn(t){return null==t?zn:function(){return this.querySelectorAll(t)}}function $n(t){return function(){return this.matches(t)}}function Dn(t){return function(n){return n.matches(t)}}var Rn=Array.prototype.find;function On(){return this.firstElementChild}var Fn=Array.prototype.filter;function qn(){return Array.from(this.children)}function In(t){return new Array(t.length)}function Un(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function Bn(t,n,e,r,i,o){for(var a,u=0,c=n.length,f=o.length;u<f;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new Un(t,o[u]);for(;u<c;++u)(a=n[u])&&(i[u]=a)}function jn(t,n,e,r,i,o,a){var u,c,f,s=new Map,l=n.length,h=o.length,d=new Array(l);for(u=0;u<l;++u)(c=n[u])&&(d[u]=f=a.call(c,c.__data__,u,n)+"",s.has(f)?i[u]=c:s.set(f,c));for(u=0;u<h;++u)f=a.call(t,o[u],u,o)+"",(c=s.get(f))?(r[u]=c,c.__data__=o[u],s.delete(f)):e[u]=new Un(t,o[u]);for(u=0;u<l;++u)(c=n[u])&&s.get(d[u])===c&&(i[u]=c)}function Yn(t){return t.__data__}function Ln(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Hn(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}Un.prototype={constructor:Un,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var Xn="http://www.w3.org/1999/xhtml";const Gn={svg:"http://www.w3.org/2000/svg",xhtml:Xn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Vn(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Gn.hasOwnProperty(n)?{space:Gn[n],local:t}:t}function Wn(t){return function(){this.removeAttribute(t)}}function Zn(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Kn(t,n){return function(){this.setAttribute(t,n)}}function Qn(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function Jn(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function te(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function ne(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function ee(t){return function(){this.style.removeProperty(t)}}function re(t,n,e){return function(){this.style.setProperty(t,n,e)}}function ie(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function oe(t,n){return t.style.getPropertyValue(n)||ne(t).getComputedStyle(t,null).getPropertyValue(n)}function ae(t){return function(){delete this[t]}}function ue(t,n){return function(){this[t]=n}}function ce(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function fe(t){return t.trim().split(/^|\s+/)}function se(t){return t.classList||new le(t)}function le(t){this._node=t,this._names=fe(t.getAttribute("class")||"")}function he(t,n){for(var e=se(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function de(t,n){for(var e=se(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function pe(t){return function(){he(this,t)}}function ge(t){return function(){de(this,t)}}function ye(t,n){return function(){(n.apply(this,arguments)?he:de)(this,t)}}function ve(){this.textContent=""}function _e(t){return function(){this.textContent=t}}function be(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function me(){this.innerHTML=""}function xe(t){return function(){this.innerHTML=t}}function we(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function Me(){this.nextSibling&&this.parentNode.appendChild(this)}function Ae(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Te(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===Xn&&n.documentElement.namespaceURI===Xn?n.createElement(t):n.createElementNS(e,t)}}function Se(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Ee(t){var n=Vn(t);return(n.local?Se:Te)(n)}function ke(){return null}function Ne(){var t=this.parentNode;t&&t.removeChild(this)}function Ce(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function ze(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Pe(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.options);++i?n.length=i:delete this.__on}}}function $e(t,n,e){return function(){var r,i=this.__on,o=function(t){return function(n){t.call(this,n,this.__data__)}}(n);if(i)for(var a=0,u=i.length;a<u;++a)if((r=i[a]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=e),void(r.value=n);this.addEventListener(t.type,o,e),r={type:t.type,name:t.name,value:n,listener:o,options:e},i?i.push(r):this.__on=[r]}}function De(t,n,e){var r=ne(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function Re(t,n){return function(){return De(this,t,n)}}function Oe(t,n){return function(){return De(this,t,n.apply(this,arguments))}}le.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Fe=[null];function qe(t,n){this._groups=t,this._parents=n}function Ie(){return new qe([[document.documentElement]],Fe)}qe.prototype=Ie.prototype={constructor:qe,select:function(t){"function"!=typeof t&&(t=Nn(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a,u=n[i],c=u.length,f=r[i]=new Array(c),s=0;s<c;++s)(o=u[s])&&(a=t.call(o,o.__data__,s,u))&&("__data__"in o&&(a.__data__=o.__data__),f[s]=a);return new qe(r,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return Cn(t.apply(this,arguments))}}(t):Pn(t);for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var a,u=n[o],c=u.length,f=0;f<c;++f)(a=u[f])&&(r.push(t.call(a,a.__data__,f,u)),i.push(a));return new qe(r,i)},selectChild:function(t){return this.select(null==t?On:function(t){return function(){return Rn.call(this.children,t)}}("function"==typeof t?t:Dn(t)))},selectChildren:function(t){return this.selectAll(null==t?qn:function(t){return function(){return Fn.call(this.children,t)}}("function"==typeof t?t:Dn(t)))},filter:function(t){"function"!=typeof t&&(t=$n(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,c=r[i]=[],f=0;f<u;++f)(o=a[f])&&t.call(o,o.__data__,f,a)&&c.push(o);return new qe(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,Yn);var e,r=n?jn:Bn,i=this._parents,o=this._groups;"function"!=typeof t&&(e=t,t=function(){return e});for(var a=o.length,u=new Array(a),c=new Array(a),f=new Array(a),s=0;s<a;++s){var l=i[s],h=o[s],d=h.length,p=Ln(t.call(l,l&&l.__data__,s,i)),g=p.length,y=c[s]=new Array(g),v=u[s]=new Array(g);r(l,h,y,v,f[s]=new Array(d),p,n);for(var _,b,m=0,x=0;m<g;++m)if(_=y[m]){for(m>=x&&(x=m+1);!(b=v[x])&&++x<g;);_._next=b||null}}return(u=new qe(u,i))._enter=c,u._exit=f,u},enter:function(){return new qe(this._enter||this._groups.map(In),this._parents)},exit:function(){return new qe(this._exit||this._groups.map(In),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=n&&(i=n(i))&&(i=i.selection()),null==e?o.remove():e(o),r&&i?r.merge(i).order():i},merge:function(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,o=r.length,a=Math.min(i,o),u=new Array(i),c=0;c<a;++c)for(var f,s=e[c],l=r[c],h=s.length,d=u[c]=new Array(h),p=0;p<h;++p)(f=s[p]||l[p])&&(d[p]=f);for(;c<i;++c)u[c]=e[c];return new qe(u,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Hn);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var a,u=e[o],c=u.length,f=i[o]=new Array(c),s=0;s<c;++s)(a=u[s])&&(f[s]=a);f.sort(n)}return new qe(i,this._parents).order()},call:function(){var t=arguments[0];return ar