UNPKG

@explorables/ride_my_kuramotocycle

Version:

This explorable illustrates the Kuramoto model for phase coupled oscillators. This model is used to describe synchronization phenomena in natural systems, e.g. the flash synchronization of fire flies or wall-mounted clocks.

2 lines 177 kB
(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode('/*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial}}}@layer theme{:root,:host{--tw-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--tw-color-black:#000;--tw-color-white:#fff;--tw-spacing:.25rem;--tw-container-5xl:64rem;--tw-text-2xl:1.5rem;--tw-text-2xl--line-height:calc(2/1.5);--tw-text-3xl:1.875rem;--tw-text-3xl--line-height: 1.2 ;--tw-text-5xl:3rem;--tw-text-5xl--line-height:1;--tw-font-weight-light:300}}@layer base,components;@layer utilities{.tw\\:m-8{margin:calc(var(--tw-spacing)*8)}.tw\\:grid{display:grid}.tw\\:max-w-5xl{max-width:var(--tw-container-5xl)}.tw\\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.tw\\:border-1{border-style:var(--tw-border-style);border-width:1px}.tw\\:border-black{border-color:var(--tw-color-black)}.tw\\:bg-white{background-color:var(--tw-color-white)}.tw\\:p-0{padding:calc(var(--tw-spacing)*0)}.tw\\:px-1{padding-inline:calc(var(--tw-spacing)*1)}.tw\\:px-10{padding-inline:calc(var(--tw-spacing)*10)}.tw\\:font-sans{font-family:var(--tw-font-sans)}.tw\\:text-2xl{font-size:var(--tw-text-2xl);line-height:var(--tw-leading,var(--tw-text-2xl--line-height))}.tw\\:text-3xl{font-size:var(--tw-text-3xl);line-height:var(--tw-leading,var(--tw-text-3xl--line-height))}.tw\\:text-5xl{font-size:var(--tw-text-5xl);line-height:var(--tw-leading,var(--tw-text-5xl--line-height))}.tw\\:font-light{--tw-font-weight:var(--tw-font-weight-light);font-weight:var(--tw-font-weight-light)}.tw\\:text-black{color:var(--tw-color-black)}@media (min-width:40rem){.tw\\:sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tw\\:sm\\:gap-8{gap:calc(var(--tw-spacing)*8)}.tw\\:sm\\:p-0{padding:calc(var(--tw-spacing)*0)}}@media (prefers-color-scheme:dark){.tw\\:dark\\:border-white{border-color:var(--tw-color-white)}.tw\\:dark\\:bg-black{background-color:var(--tw-color-black)}.tw\\:dark\\:text-white{color:var(--tw-color-white)}}.debug-grid-16{background-image:linear-gradient(90deg,#0000ff1a 1px,#0000 1px),linear-gradient(#0000ff1a 1px,#0000 1px);background-repeat:repeat;background-size:6.25% 6.25%,6.25% 6.25%}}.explorable *,.explorable :before,.explorable :after{box-sizing:border-box}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}._agent_1wtcj_1{opacity:.7;stroke:#000;stroke-width:.5px}._xlabel_1wtcj_22,._ylabel_1wtcj_25{text-anchor:middle}._caxis_1wtcj_28{stroke:#000;stroke-width:.5px;stroke-opacity:.5}._dot_1wtcj_34{stroke:gray;stroke-width:.5px;fill:#8b0000}._op_1wtcj_40{stroke:#8b0000;stroke-width:.5px;fill:none}._plotline_1wtcj_46{stroke:#8b0000;stroke-width:2px;fill:none}._osctrack_1wtcj_52{fill:none;stroke-width:1px;stroke-opacity:.6;stroke:gray}@media (prefers-color-scheme: dark){._caxis_1wtcj_28{stroke:#fff}._plot_1wtcj_11{color:#fff}._xlabel_1wtcj_22,._ylabel_1wtcj_25{fill:#fff}._plotline_1wtcj_46{stroke:red}._op_1wtcj_40{stroke:red;stroke-width:1px;fill:none}._dot_1wtcj_34{stroke:gray;stroke-width:.5px;fill:red}}._displayPanel_1wtcj_89,._controlPanel_1wtcj_94{display:block}')),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); (function(z,Gt){typeof exports=="object"&&typeof module<"u"?Gt(exports):typeof define=="function"&&define.amd?define(["exports"],Gt):(z=typeof globalThis<"u"?globalThis:z||self,Gt(z.ride_my_kuramotocycle={}))})(this,function(z){"use strict";const Gt={display_type:"svg",debug:!1,debug_lattice:"debug-grid-16",controls_grid:{nx:12,ny:12},display_size:{width:500,height:500},controls_size:{width:480,height:480},display_class:" tw:p-0 tw:border-1 tw:border-black tw:dark:border-white",controls_class:"d3-widgets tw:p-0",container_class:"tw:font-sans tw:font-light tw:grid tw:grid-cols-1 tw:sm:grid-cols-2 tw:sm:gap-8 tw:px-1 tw:sm:p-0 tw:m-8"};function Kn(t,n){return t==null||n==null?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function cl(t,n){return t==null||n==null?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function sa(t){let n,e,r;t.length!==2?(n=Kn,e=(s,l)=>Kn(t(s),l),r=(s,l)=>t(s)-l):(n=t===Kn||t===cl?t:fl,e=t,r=t);function i(s,l,u=0,c=s.length){if(u<c){if(n(l,l)!==0)return c;do{const h=u+c>>>1;e(s[h],l)<0?u=h+1:c=h}while(u<c)}return u}function a(s,l,u=0,c=s.length){if(u<c){if(n(l,l)!==0)return c;do{const h=u+c>>>1;e(s[h],l)<=0?u=h+1:c=h}while(u<c)}return u}function o(s,l,u=0,c=s.length){const h=i(s,l,u,c-1);return h>u&&r(s[h-1],l)>-r(s[h],l)?h-1:h}return{left:i,center:o,right:a}}function fl(){return 0}function hl(t){return t===null?NaN:+t}const dl=sa(Kn).right;sa(hl).center;const pl=Math.sqrt(50),gl=Math.sqrt(10),_l=Math.sqrt(2);function Zn(t,n,e){const r=(n-t)/Math.max(0,e),i=Math.floor(Math.log10(r)),a=r/Math.pow(10,i),o=a>=pl?10:a>=gl?5:a>=_l?2:1;let s,l,u;return i<0?(u=Math.pow(10,-i)/o,s=Math.round(t*u),l=Math.round(n*u),s/u<t&&++s,l/u>n&&--l,u=-u):(u=Math.pow(10,i)*o,s=Math.round(t/u),l=Math.round(n/u),s*u<t&&++s,l*u>n&&--l),l<s&&.5<=e&&e<2?Zn(t,n,e*2):[s,l,u]}function yl(t,n,e){if(n=+n,t=+t,e=+e,!(e>0))return[];if(t===n)return[t];const r=n<t,[i,a,o]=r?Zn(n,t,e):Zn(t,n,e);if(!(a>=i))return[];const s=a-i+1,l=new Array(s);if(r)if(o<0)for(let u=0;u<s;++u)l[u]=(a-u)/-o;else for(let u=0;u<s;++u)l[u]=(a-u)*o;else if(o<0)for(let u=0;u<s;++u)l[u]=(i+u)/-o;else for(let u=0;u<s;++u)l[u]=(i+u)*o;return l}function gr(t,n,e){return n=+n,t=+t,e=+e,Zn(t,n,e)[2]}function ml(t,n,e){n=+n,t=+t,e=+e;const r=n<t,i=r?gr(n,t,e):gr(t,n,e);return(r?-1:1)*(i<0?1/-i:i)}function vl(t){return t}var _r=1,yr=2,mr=3,yn=4,ua=1e-6;function wl(t){return"translate("+t+",0)"}function bl(t){return"translate(0,"+t+")"}function xl(t){return n=>+t(n)}function Ml(t,n){return n=Math.max(0,t.bandwidth()-n*2)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function $l(){return!this.__axis}function la(t,n){var e=[],r=null,i=null,a=6,o=6,s=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,u=t===_r||t===yn?-1:1,c=t===yn||t===yr?"x":"y",h=t===_r||t===mr?wl:bl;function f(d){var p=r??(n.ticks?n.ticks.apply(n,e):n.domain()),_=i??(n.tickFormat?n.tickFormat.apply(n,e):vl),w=Math.max(a,0)+s,y=n.range(),M=+y[0]+l,$=+y[y.length-1]+l,g=(n.bandwidth?Ml:xl)(n.copy(),l),v=d.selection?d.selection():d,N=v.selectAll(".domain").data([null]),k=v.selectAll(".tick").data(p,n).order(),C=k.exit(),L=k.enter().append("g").attr("class","tick"),q=k.select("line"),m=k.select("text");N=N.merge(N.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),k=k.merge(L),q=q.merge(L.append("line").attr("stroke","currentColor").attr(c+"2",u*a)),m=m.merge(L.append("text").attr("fill","currentColor").attr(c,u*w).attr("dy",t===_r?"0em":t===mr?"0.71em":"0.32em")),d!==v&&(N=N.transition(d),k=k.transition(d),q=q.transition(d),m=m.transition(d),C=C.transition(d).attr("opacity",ua).attr("transform",function(S){return isFinite(S=g(S))?h(S+l):this.getAttribute("transform")}),L.attr("opacity",ua).attr("transform",function(S){var A=this.parentNode.__axis;return h((A&&isFinite(A=A(S))?A:g(S))+l)})),C.remove(),N.attr("d",t===yn||t===yr?o?"M"+u*o+","+M+"H"+l+"V"+$+"H"+u*o:"M"+l+","+M+"V"+$:o?"M"+M+","+u*o+"V"+l+"H"+$+"V"+u*o:"M"+M+","+l+"H"+$),k.attr("opacity",1).attr("transform",function(S){return h(g(S)+l)}),q.attr(c+"2",u*a),m.attr(c,u*w).text(_),v.filter($l).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===yr?"start":t===yn?"end":"middle"),v.each(function(){this.__axis=g})}return f.scale=function(d){return arguments.length?(n=d,f):n},f.ticks=function(){return e=Array.from(arguments),f},f.tickArguments=function(d){return arguments.length?(e=d==null?[]:Array.from(d),f):e.slice()},f.tickValues=function(d){return arguments.length?(r=d==null?null:Array.from(d),f):r&&r.slice()},f.tickFormat=function(d){return arguments.length?(i=d,f):i},f.tickSize=function(d){return arguments.length?(a=o=+d,f):a},f.tickSizeInner=function(d){return arguments.length?(a=+d,f):a},f.tickSizeOuter=function(d){return arguments.length?(o=+d,f):o},f.tickPadding=function(d){return arguments.length?(s=+d,f):s},f.offset=function(d){return arguments.length?(l=+d,f):l},f}function Al(t){return la(mr,t)}function Tl(t){return la(yn,t)}var kl={value:()=>{}};function ca(){for(var t=0,n=arguments.length,e={},r;t<n;++t){if(!(r=arguments[t]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new Wn(e)}function Wn(t){this._=t}function Nl(t,n){return t.trim().split(/^|\s+/).map(function(e){var r="",i=e.indexOf(".");if(i>=0&&(r=e.slice(i+1),e=e.slice(0,i)),e&&!n.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}Wn.prototype=ca.prototype={constructor:Wn,on:function(t,n){var e=this._,r=Nl(t+"",e),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(t=r[a]).type)&&(i=Sl(e[i],t.name)))return i;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++a<o;)if(i=(t=r[a]).type)e[i]=fa(e[i],t.name,n);else if(n==null)for(i in e)e[i]=fa(e[i],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Wn(t)},call:function(t,n){if((i=arguments.length-2)>0)for(var e=new Array(i),r=0,i,a;r<i;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=this._[t],r=0,i=a.length;r<i;++r)a[r].value.apply(n,e)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,a=r.length;i<a;++i)r[i].value.apply(n,e)}};function Sl(t,n){for(var e=0,r=t.length,i;e<r;++e)if((i=t[e]).name===n)return i.value}function fa(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=kl,t=t.slice(0,r).concat(t.slice(r+1));break}return e!=null&&t.push({name:n,value:e}),t}var vr="http://www.w3.org/1999/xhtml";const ha={svg:"http://www.w3.org/2000/svg",xhtml:vr,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Jn(t){var n=t+="",e=n.indexOf(":");return e>=0&&(n=t.slice(0,e))!=="xmlns"&&(t=t.slice(e+1)),ha.hasOwnProperty(n)?{space:ha[n],local:t}:t}function zl(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===vr&&n.documentElement.namespaceURI===vr?n.createElement(t):n.createElementNS(e,t)}}function Pl(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function da(t){var n=Jn(t);return(n.local?Pl:zl)(n)}function El(){}function wr(t){return t==null?El:function(){return this.querySelector(t)}}function Ol(t){typeof t!="function"&&(t=wr(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,s=r[i]=new Array(o),l,u,c=0;c<o;++c)(l=a[c])&&(u=t.call(l,l.__data__,c,a))&&("__data__"in l&&(u.__data__=l.__data__),s[c]=u);return new X(r,this._parents)}function Cl(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Il(){return[]}function pa(t){return t==null?Il:function(){return this.querySelectorAll(t)}}function Rl(t){return function(){return Cl(t.apply(this,arguments))}}function jl(t){typeof t=="function"?t=Rl(t):t=pa(t);for(var n=this._groups,e=n.length,r=[],i=[],a=0;a<e;++a)for(var o=n[a],s=o.length,l,u=0;u<s;++u)(l=o[u])&&(r.push(t.call(l,l.__data__,u,o)),i.push(l));return new X(r,i)}function ga(t){return function(){return this.matches(t)}}function _a(t){return function(n){return n.matches(t)}}var ql=Array.prototype.find;function Fl(t){return function(){return ql.call(this.children,t)}}function Ll(){return this.firstElementChild}function Dl(t){return this.select(t==null?Ll:Fl(typeof t=="function"?t:_a(t)))}var Hl=Array.prototype.filter;function Bl(){return Array.from(this.children)}function Xl(t){return function(){return Hl.call(this.children,t)}}function Ul(t){return this.selectAll(t==null?Bl:Xl(typeof t=="function"?t:_a(t)))}function Yl(t){typeof t!="function"&&(t=ga(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,s=r[i]=[],l,u=0;u<o;++u)(l=a[u])&&t.call(l,l.__data__,u,a)&&s.push(l);return new X(r,this._parents)}function ya(t){return new Array(t.length)}function Gl(){return new X(this._enter||this._groups.map(ya),this._parents)}function Qn(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}Qn.prototype={constructor:Qn,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)}};function Vl(t){return function(){return t}}function Kl(t,n,e,r,i,a){for(var o=0,s,l=n.length,u=a.length;o<u;++o)(s=n[o])?(s.__data__=a[o],r[o]=s):e[o]=new Qn(t,a[o]);for(;o<l;++o)(s=n[o])&&(i[o]=s)}function Zl(t,n,e,r,i,a,o){var s,l,u=new Map,c=n.length,h=a.length,f=new Array(c),d;for(s=0;s<c;++s)(l=n[s])&&(f[s]=d=o.call(l,l.__data__,s,n)+"",u.has(d)?i[s]=l:u.set(d,l));for(s=0;s<h;++s)d=o.call(t,a[s],s,a)+"",(l=u.get(d))?(r[s]=l,l.__data__=a[s],u.delete(d)):e[s]=new Qn(t,a[s]);for(s=0;s<c;++s)(l=n[s])&&u.get(f[s])===l&&(i[s]=l)}function Wl(t){return t.__data__}function Jl(t,n){if(!arguments.length)return Array.from(this,Wl);var e=n?Zl:Kl,r=this._parents,i=this._groups;typeof t!="function"&&(t=Vl(t));for(var a=i.length,o=new Array(a),s=new Array(a),l=new Array(a),u=0;u<a;++u){var c=r[u],h=i[u],f=h.length,d=Ql(t.call(c,c&&c.__data__,u,r)),p=d.length,_=s[u]=new Array(p),w=o[u]=new Array(p),y=l[u]=new Array(f);e(c,h,_,w,y,d,n);for(var M=0,$=0,g,v;M<p;++M)if(g=_[M]){for(M>=$&&($=M+1);!(v=w[$])&&++$<p;);g._next=v||null}}return o=new X(o,r),o._enter=s,o._exit=l,o}function Ql(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function tc(){return new X(this._exit||this._groups.map(ya),this._parents)}function nc(t,n,e){var r=this.enter(),i=this,a=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),n!=null&&(i=n(i),i&&(i=i.selection())),e==null?a.remove():e(a),r&&i?r.merge(i).order():i}function ec(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,a=r.length,o=Math.min(i,a),s=new Array(i),l=0;l<o;++l)for(var u=e[l],c=r[l],h=u.length,f=s[l]=new Array(h),d,p=0;p<h;++p)(d=u[p]||c[p])&&(f[p]=d);for(;l<i;++l)s[l]=e[l];return new X(s,this._parents)}function rc(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r=t[n],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function ic(t){t||(t=ac);function n(h,f){return h&&f?t(h.__data__,f.__data__):!h-!f}for(var e=this._groups,r=e.length,i=new Array(r),a=0;a<r;++a){for(var o=e[a],s=o.length,l=i[a]=new Array(s),u,c=0;c<s;++c)(u=o[c])&&(l[c]=u);l.sort(n)}return new X(i,this._parents).order()}function ac(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function oc(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function sc(){return Array.from(this)}function uc(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function lc(){let t=0;for(const n of this)++t;return t}function cc(){return!this.node()}function fc(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i=n[e],a=0,o=i.length,s;a<o;++a)(s=i[a])&&t.call(s,s.__data__,a,i);return this}function hc(t){return function(){this.removeAttribute(t)}}function dc(t){return function(){this.removeAttributeNS(t.space,t.local)}}function pc(t,n){return function(){this.setAttribute(t,n)}}function gc(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function _c(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttribute(t):this.setAttribute(t,e)}}function yc(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function mc(t,n){var e=Jn(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((n==null?e.local?dc:hc:typeof n=="function"?e.local?yc:_c:e.local?gc:pc)(e,n))}function ma(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function vc(t){return function(){this.style.removeProperty(t)}}function wc(t,n,e){return function(){this.style.setProperty(t,n,e)}}function bc(t,n,e){return function(){var r=n.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function xc(t,n,e){return arguments.length>1?this.each((n==null?vc:typeof n=="function"?bc:wc)(t,n,e??"")):Vt(this.node(),t)}function Vt(t,n){return t.style.getPropertyValue(n)||ma(t).getComputedStyle(t,null).getPropertyValue(n)}function Mc(t){return function(){delete this[t]}}function $c(t,n){return function(){this[t]=n}}function Ac(t,n){return function(){var e=n.apply(this,arguments);e==null?delete this[t]:this[t]=e}}function Tc(t,n){return arguments.length>1?this.each((n==null?Mc:typeof n=="function"?Ac:$c)(t,n)):this.node()[t]}function va(t){return t.trim().split(/^|\s+/)}function br(t){return t.classList||new wa(t)}function wa(t){this._node=t,this._names=va(t.getAttribute("class")||"")}wa.prototype={add:function(t){var n=this._names.indexOf(t);n<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}};function ba(t,n){for(var e=br(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function xa(t,n){for(var e=br(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function kc(t){return function(){ba(this,t)}}function Nc(t){return function(){xa(this,t)}}function Sc(t,n){return function(){(n.apply(this,arguments)?ba:xa)(this,t)}}function zc(t,n){var e=va(t+"");if(arguments.length<2){for(var r=br(this.node()),i=-1,a=e.length;++i<a;)if(!r.contains(e[i]))return!1;return!0}return this.each((typeof n=="function"?Sc:n?kc:Nc)(e,n))}function Pc(){this.textContent=""}function Ec(t){return function(){this.textContent=t}}function Oc(t){return function(){var n=t.apply(this,arguments);this.textContent=n??""}}function Cc(t){return arguments.length?this.each(t==null?Pc:(typeof t=="function"?Oc:Ec)(t)):this.node().textContent}function Ic(){this.innerHTML=""}function Rc(t){return function(){this.innerHTML=t}}function jc(t){return function(){var n=t.apply(this,arguments);this.innerHTML=n??""}}function qc(t){return arguments.length?this.each(t==null?Ic:(typeof t=="function"?jc:Rc)(t)):this.node().innerHTML}function Fc(){this.nextSibling&&this.parentNode.appendChild(this)}function Lc(){return this.each(Fc)}function Dc(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Hc(){return this.each(Dc)}function Bc(t){var n=typeof t=="function"?t:da(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function Xc(){return null}function Uc(t,n){var e=typeof t=="function"?t:da(t),r=n==null?Xc:typeof n=="function"?n:wr(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})}function Yc(){var t=this.parentNode;t&&t.removeChild(this)}function Gc(){return this.each(Yc)}function Vc(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Kc(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Zc(t){return this.select(t?Kc:Vc)}function Wc(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Jc(t){return function(n){t.call(this,n,this.__data__)}}function Qc(t){return t.trim().split(/^|\s+/).map(function(n){var e="",r=n.indexOf(".");return r>=0&&(e=n.slice(r+1),n=n.slice(0,r)),{type:n,name:e}})}function tf(t){return function(){var n=this.__on;if(n){for(var e=0,r=-1,i=n.length,a;e<i;++e)a=n[e],(!t.type||a.type===t.type)&&a.name===t.name?this.removeEventListener(a.type,a.listener,a.options):n[++r]=a;++r?n.length=r:delete this.__on}}}function nf(t,n,e){return function(){var r=this.__on,i,a=Jc(n);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=e),i.value=n;return}}this.addEventListener(t.type,a,e),i={type:t.type,name:t.name,value:n,listener:a,options:e},r?r.push(i):this.__on=[i]}}function ef(t,n,e){var r=Qc(t+""),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var l=0,u=s.length,c;l<u;++l)for(i=0,c=s[l];i<a;++i)if((o=r[i]).type===c.type&&o.name===c.name)return c.value}return}for(s=n?nf:tf,i=0;i<a;++i)this.each(s(r[i],n,e));return this}function Ma(t,n,e){var r=ma(t),i=r.CustomEvent;typeof i=="function"?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 rf(t,n){return function(){return Ma(this,t,n)}}function af(t,n){return function(){return Ma(this,t,n.apply(this,arguments))}}function of(t,n){return this.each((typeof n=="function"?af:rf)(t,n))}function*sf(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var $a=[null];function X(t,n){this._groups=t,this._parents=n}function mn(){return new X([[document.documentElement]],$a)}function uf(){return this}X.prototype=mn.prototype={constructor:X,select:Ol,selectAll:jl,selectChild:Dl,selectChildren:Ul,filter:Yl,data:Jl,enter:Gl,exit:tc,join:nc,merge:ec,selection:uf,order:rc,sort:ic,call:oc,nodes:sc,node:uc,size:lc,empty:cc,each:fc,attr:mc,style:xc,property:Tc,classed:zc,text:Cc,html:qc,raise:Lc,lower:Hc,append:Bc,insert:Uc,remove:Gc,clone:Zc,datum:Wc,on:ef,dispatch:of,[Symbol.iterator]:sf};function lf(t){return typeof t=="string"?new X([[document.querySelector(t)]],[document.documentElement]):new X([[t]],$a)}function xr(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function Aa(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function vn(){}var wn=.7,te=1/wn,Kt="\\s*([+-]?\\d+)\\s*",bn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",it="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",cf=/^#([0-9a-f]{3,8})$/,ff=new RegExp(`^rgb\\(${Kt},${Kt},${Kt}\\)$`),hf=new RegExp(`^rgb\\(${it},${it},${it}\\)$`),df=new RegExp(`^rgba\\(${Kt},${Kt},${Kt},${bn}\\)$`),pf=new RegExp(`^rgba\\(${it},${it},${it},${bn}\\)$`),gf=new RegExp(`^hsl\\(${bn},${it},${it}\\)$`),_f=new RegExp(`^hsla\\(${bn},${it},${it},${bn}\\)$`),Ta={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};xr(vn,St,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:ka,formatHex:ka,formatHex8:yf,formatHsl:mf,formatRgb:Na,toString:Na});function ka(){return this.rgb().formatHex()}function yf(){return this.rgb().formatHex8()}function mf(){return Oa(this).formatHsl()}function Na(){return this.rgb().formatRgb()}function St(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=cf.exec(t))?(e=n[1].length,n=parseInt(n[1],16),e===6?Sa(n):e===3?new H(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):e===8?ne(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):e===4?ne(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=ff.exec(t))?new H(n[1],n[2],n[3],1):(n=hf.exec(t))?new H(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=df.exec(t))?ne(n[1],n[2],n[3],n[4]):(n=pf.exec(t))?ne(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=gf.exec(t))?Ea(n[1],n[2]/100,n[3]/100,1):(n=_f.exec(t))?Ea(n[1],n[2]/100,n[3]/100,n[4]):Ta.hasOwnProperty(t)?Sa(Ta[t]):t==="transparent"?new H(NaN,NaN,NaN,0):null}function Sa(t){return new H(t>>16&255,t>>8&255,t&255,1)}function ne(t,n,e,r){return r<=0&&(t=n=e=NaN),new H(t,n,e,r)}function vf(t){return t instanceof vn||(t=St(t)),t?(t=t.rgb(),new H(t.r,t.g,t.b,t.opacity)):new H}function ee(t,n,e,r){return arguments.length===1?vf(t):new H(t,n,e,r??1)}function H(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}xr(H,ee,Aa(vn,{brighter(t){return t=t==null?te:Math.pow(te,t),new H(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?wn:Math.pow(wn,t),new H(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new H(zt(this.r),zt(this.g),zt(this.b),re(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:za,formatHex:za,formatHex8:wf,formatRgb:Pa,toString:Pa}));function za(){return`#${Pt(this.r)}${Pt(this.g)}${Pt(this.b)}`}function wf(){return`#${Pt(this.r)}${Pt(this.g)}${Pt(this.b)}${Pt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Pa(){const t=re(this.opacity);return`${t===1?"rgb(":"rgba("}${zt(this.r)}, ${zt(this.g)}, ${zt(this.b)}${t===1?")":`, ${t})`}`}function re(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function zt(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Pt(t){return t=zt(t),(t<16?"0":"")+t.toString(16)}function Ea(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new K(t,n,e,r)}function Oa(t){if(t instanceof K)return new K(t.h,t.s,t.l,t.opacity);if(t instanceof vn||(t=St(t)),!t)return new K;if(t instanceof K)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),a=Math.max(n,e,r),o=NaN,s=a-i,l=(a+i)/2;return s?(n===a?o=(e-r)/s+(e<r)*6:e===a?o=(r-n)/s+2:o=(n-e)/s+4,s/=l<.5?a+i:2-a-i,o*=60):s=l>0&&l<1?0:o,new K(o,s,l,t.opacity)}function bf(t,n,e,r){return arguments.length===1?Oa(t):new K(t,n,e,r??1)}function K(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}xr(K,bf,Aa(vn,{brighter(t){return t=t==null?te:Math.pow(te,t),new K(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?wn:Math.pow(wn,t),new K(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new H(Mr(t>=240?t-240:t+120,i,r),Mr(t,i,r),Mr(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new K(Ca(this.h),ie(this.s),ie(this.l),re(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=re(this.opacity);return`${t===1?"hsl(":"hsla("}${Ca(this.h)}, ${ie(this.s)*100}%, ${ie(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Ca(t){return t=(t||0)%360,t<0?t+360:t}function ie(t){return Math.max(0,Math.min(1,t||0))}function Mr(t,n,e){return(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)*255}function xf(t,n,e,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*n+(4-6*a+3*o)*e+(1+3*t+3*a-3*o)*r+o*i)/6}function Mf(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],a=t[r+1],o=r>0?t[r-1]:2*i-a,s=r<n-1?t[r+2]:2*a-i;return xf((e-r/n)*n,o,i,a,s)}}const $r=t=>()=>t;function $f(t,n){return function(e){return t+e*n}}function Af(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function Tf(t){return(t=+t)==1?Ia:function(n,e){return e-n?Af(n,e,t):$r(isNaN(n)?e:n)}}function Ia(t,n){var e=n-t;return e?$f(t,e):$r(isNaN(t)?n:t)}const ae=function t(n){var e=Tf(n);function r(i,a){var o=e((i=ee(i)).r,(a=ee(a)).r),s=e(i.g,a.g),l=e(i.b,a.b),u=Ia(i.opacity,a.opacity);return function(c){return i.r=o(c),i.g=s(c),i.b=l(c),i.opacity=u(c),i+""}}return r.gamma=t,r}(1);function kf(t){return function(n){var e=n.length,r=new Array(e),i=new Array(e),a=new Array(e),o,s;for(o=0;o<e;++o)s=ee(n[o]),r[o]=s.r||0,i[o]=s.g||0,a[o]=s.b||0;return r=t(r),i=t(i),a=t(a),s.opacity=1,function(l){return s.r=r(l),s.g=i(l),s.b=a(l),s+""}}}var Nf=kf(Mf);function Sf(t,n){n||(n=[]);var e=t?Math.min(n.length,t.length):0,r=n.slice(),i;return function(a){for(i=0;i<e;++i)r[i]=t[i]*(1-a)+n[i]*a;return r}}function zf(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Pf(t,n){var e=n?n.length:0,r=t?Math.min(e,t.length):0,i=new Array(r),a=new Array(e),o;for(o=0;o<r;++o)i[o]=kr(t[o],n[o]);for(;o<e;++o)a[o]=n[o];return function(s){for(o=0;o<r;++o)a[o]=i[o](s);return a}}function Ef(t,n){var e=new Date;return t=+t,n=+n,function(r){return e.setTime(t*(1-r)+n*r),e}}function Z(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}function Of(t,n){var e={},r={},i;(t===null||typeof t!="object")&&(t={}),(n===null||typeof n!="object")&&(n={});for(i in n)i in t?e[i]=kr(t[i],n[i]):r[i]=n[i];return function(a){for(i in e)r[i]=e[i](a);return r}}var Ar=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Tr=new RegExp(Ar.source,"g");function Cf(t){return function(){return t}}function If(t){return function(n){return t(n)+""}}function Ra(t,n){var e=Ar.lastIndex=Tr.lastIndex=0,r,i,a,o=-1,s=[],l=[];for(t=t+"",n=n+"";(r=Ar.exec(t))&&(i=Tr.exec(n));)(a=i.index)>e&&(a=n.slice(e,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,l.push({i:o,x:Z(r,i)})),e=Tr.lastIndex;return e<n.length&&(a=n.slice(e),s[o]?s[o]+=a:s[++o]=a),s.length<2?l[0]?If(l[0].x):Cf(n):(n=l.length,function(u){for(var c=0,h;c<n;++c)s[(h=l[c]).i]=h.x(u);return s.join("")})}function kr(t,n){var e=typeof n,r;return n==null||e==="boolean"?$r(n):(e==="number"?Z:e==="string"?(r=St(n))?(n=r,ae):Ra:n instanceof St?ae:n instanceof Date?Ef:zf(n)?Sf:Array.isArray(n)?Pf:typeof n.valueOf!="function"&&typeof n.toString!="function"||isNaN(n)?Of:Z)(t,n)}function Rf(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n*e)}}var ja=180/Math.PI,Nr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function qa(t,n,e,r,i,a){var o,s,l;return(o=Math.sqrt(t*t+n*n))&&(t/=o,n/=o),(l=t*e+n*r)&&(e-=t*l,r-=n*l),(s=Math.sqrt(e*e+r*r))&&(e/=s,r/=s,l/=s),t*r<n*e&&(t=-t,n=-n,l=-l,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(n,t)*ja,skewX:Math.atan(l)*ja,scaleX:o,scaleY:s}}var oe;function jf(t){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?Nr:qa(n.a,n.b,n.c,n.d,n.e,n.f)}function qf(t){return t==null||(oe||(oe=document.createElementNS("http://www.w3.org/2000/svg","g")),oe.setAttribute("transform",t),!(t=oe.transform.baseVal.consolidate()))?Nr:(t=t.matrix,qa(t.a,t.b,t.c,t.d,t.e,t.f))}function Fa(t,n,e,r){function i(u){return u.length?u.pop()+" ":""}function a(u,c,h,f,d,p){if(u!==h||c!==f){var _=d.push("translate(",null,n,null,e);p.push({i:_-4,x:Z(u,h)},{i:_-2,x:Z(c,f)})}else(h||f)&&d.push("translate("+h+n+f+e)}function o(u,c,h,f){u!==c?(u-c>180?c+=360:c-u>180&&(u+=360),f.push({i:h.push(i(h)+"rotate(",null,r)-2,x:Z(u,c)})):c&&h.push(i(h)+"rotate("+c+r)}function s(u,c,h,f){u!==c?f.push({i:h.push(i(h)+"skewX(",null,r)-2,x:Z(u,c)}):c&&h.push(i(h)+"skewX("+c+r)}function l(u,c,h,f,d,p){if(u!==h||c!==f){var _=d.push(i(d)+"scale(",null,",",null,")");p.push({i:_-4,x:Z(u,h)},{i:_-2,x:Z(c,f)})}else(h!==1||f!==1)&&d.push(i(d)+"scale("+h+","+f+")")}return function(u,c){var h=[],f=[];return u=t(u),c=t(c),a(u.translateX,u.translateY,c.translateX,c.translateY,h,f),o(u.rotate,c.rotate,h,f),s(u.skewX,c.skewX,h,f),l(u.scaleX,u.scaleY,c.scaleX,c.scaleY,h,f),u=c=null,function(d){for(var p=-1,_=f.length,w;++p<_;)h[(w=f[p]).i]=w.x(d);return h.join("")}}}var Ff=Fa(jf,"px, ","px)","deg)"),Lf=Fa(qf,", ",")",")"),Zt=0,xn=0,Mn=0,La=1e3,se,$n,ue=0,Et=0,le=0,An=typeof performance=="object"&&performance.now?performance:Date,Da=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ce(){return Et||(Da(Df),Et=An.now()+le)}function Df(){Et=0}function Tn(){this._call=this._time=this._next=null}Tn.prototype=Ha.prototype={constructor:Tn,restart:function(t,n,e){if(typeof t!="function")throw new TypeError("callback is not a function");e=(e==null?ce():+e)+(n==null?0:+n),!this._next&&$n!==this&&($n?$n._next=this:se=this,$n=this),this._call=t,this._time=e,Sr()},stop:function(){this._call&&(this._call=null,this._time=1/0,Sr())}};function Ha(t,n,e){var r=new Tn;return r.restart(t,n,e),r}function Hf(){ce(),++Zt;for(var t=se,n;t;)(n=Et-t._time)>=0&&t._call.call(void 0,n),t=t._next;--Zt}function Ba(){Et=(ue=An.now())+le,Zt=xn=0;try{Hf()}finally{Zt=0,Xf(),Et=0}}function Bf(){var t=An.now(),n=t-ue;n>La&&(le-=n,ue=t)}function Xf(){for(var t,n=se,e,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:se=e);$n=t,Sr(r)}function Sr(t){if(!Zt){xn&&(xn=clearTimeout(xn));var n=t-Et;n>24?(t<1/0&&(xn=setTimeout(Ba,t-An.now()-le)),Mn&&(Mn=clearInterval(Mn))):(Mn||(ue=An.now(),Mn=setInterval(Bf,La)),Zt=1,Da(Ba))}}function Xa(t,n,e){var r=new Tn;return n=n==null?0:+n,r.restart(i=>{r.stop(),t(i+n)},n,e),r}function Uf(t,n,e){var r=new Tn,i=n;return r._restart=r.restart,r.restart=function(a,o,s){o=+o,s=s==null?ce():+s,r._restart(function l(u){u+=i,r._restart(l,i+=o,s),a(u)},o,s)},r.restart(t,n,e),r}var Yf=ca("start","end","cancel","interrupt"),Gf=[],Ua=0,Ya=1,zr=2,fe=3,Ga=4,Pr=5,he=6;function de(t,n,e,r,i,a){var o=t.__transition;if(!o)t.__transition={};else if(e in o)return;Vf(t,e,{name:n,index:r,group:i,on:Yf,tween:Gf,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Ua})}function Er(t,n){var e=W(t,n);if(e.state>Ua)throw new Error("too late; already scheduled");return e}function at(t,n){var e=W(t,n);if(e.state>fe)throw new Error("too late; already running");return e}function W(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Vf(t,n,e){var r=t.__transition,i;r[n]=e,e.timer=Ha(a,0,e.time);function a(u){e.state=Ya,e.timer.restart(o,e.delay,e.time),e.delay<=u&&o(u-e.delay)}function o(u){var c,h,f,d;if(e.state!==Ya)return l();for(c in r)if(d=r[c],d.name===e.name){if(d.state===fe)return Xa(o);d.state===Ga?(d.state=he,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[c]):+c<n&&(d.state=he,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete r[c])}if(Xa(function(){e.state===fe&&(e.state=Ga,e.timer.restart(s,e.delay,e.time),s(u))}),e.state=zr,e.on.call("start",t,t.__data__,e.index,e.group),e.state===zr){for(e.state=fe,i=new Array(f=e.tween.length),c=0,h=-1;c<f;++c)(d=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(i[++h]=d);i.length=h+1}}function s(u){for(var c=u<e.duration?e.ease.call(null,u/e.duration):(e.timer.restart(l),e.state=Pr,1),h=-1,f=i.length;++h<f;)i[h].call(t,c);e.state===Pr&&(e.on.call("end",t,t.__data__,e.index,e.group),l())}function l(){e.state=he,e.timer.stop(),delete r[n];for(var u in r)return;delete t.__transition}}function Kf(t,n){var e=t.__transition,r,i,a=!0,o;if(e){n=n==null?null:n+"";for(o in e){if((r=e[o]).name!==n){a=!1;continue}i=r.state>zr&&r.state<Pr,r.state=he,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete e[o]}a&&delete t.__transition}}function Zf(t){return this.each(function(){Kf(this,t)})}function Wf(t,n){var e,r;return function(){var i=at(this,t),a=i.tween;if(a!==e){r=e=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===n){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Jf(t,n,e){var r,i;if(typeof e!="function")throw new Error;return function(){var a=at(this,t),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:n,value:e},l=0,u=i.length;l<u;++l)if(i[l].name===n){i[l]=s;break}l===u&&i.push(s)}a.tween=i}}function Qf(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r=W(this.node(),e).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((n==null?Wf:Jf)(e,t,n))}function Or(t,n,e){var r=t._id;return t.each(function(){var i=at(this,r);(i.value||(i.value={}))[n]=e.apply(this,arguments)}),function(i){return W(i,r).value[n]}}function Va(t,n){var e;return(typeof n=="number"?Z:n instanceof St?ae:(e=St(n))?(n=e,ae):Ra)(t,n)}function th(t){return function(){this.removeAttribute(t)}}function nh(t){return function(){this.removeAttributeNS(t.space,t.local)}}function eh(t,n,e){var r,i=e+"",a;return function(){var o=this.getAttribute(t);return o===i?null:o===r?a:a=n(r=o,e)}}function rh(t,n,e){var r,i=e+"",a;return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===r?a:a=n(r=o,e)}}function ih(t,n,e){var r,i,a;return function(){var o,s=e(this),l;return s==null?void this.removeAttribute(t):(o=this.getAttribute(t),l=s+"",o===l?null:o===r&&l===i?a:(i=l,a=n(r=o,s)))}}function ah(t,n,e){var r,i,a;return function(){var o,s=e(this),l;return s==null?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),l=s+"",o===l?null:o===r&&l===i?a:(i=l,a=n(r=o,s)))}}function oh(t,n){var e=Jn(t),r=e==="transform"?Lf:Va;return this.attrTween(t,typeof n=="function"?(e.local?ah:ih)(e,r,Or(this,"attr."+t,n)):n==null?(e.local?nh:th)(e):(e.local?rh:eh)(e,r,n))}function sh(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}function uh(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}function lh(t,n){var e,r;function i(){var a=n.apply(this,arguments);return a!==r&&(e=(r=a)&&uh(t,a)),e}return i._value=n,i}function ch(t,n){var e,r;function i(){var a=n.apply(this,arguments);return a!==r&&(e=(r=a)&&sh(t,a)),e}return i._value=n,i}function fh(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(n==null)return this.tween(e,null);if(typeof n!="function")throw new Error;var r=Jn(t);return this.tween(e,(r.local?lh:ch)(r,n))}function hh(t,n){return function(){Er(this,t).delay=+n.apply(this,arguments)}}function dh(t,n){return n=+n,function(){Er(this,t).delay=n}}function ph(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?hh:dh)(n,t)):W(this.node(),n).delay}function gh(t,n){return function(){at(this,t).duration=+n.apply(this,arguments)}}function _h(t,n){return n=+n,function(){at(this,t).duration=n}}function yh(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?gh:_h)(n,t)):W(this.node(),n).duration}function mh(t,n){if(typeof n!="function")throw new Error;return function(){at(this,t).ease=n}}function vh(t){var n=this._id;return arguments.length?this.each(mh(n,t)):W(this.node(),n).ease}function wh(t,n){return function(){var e=n.apply(this,arguments);if(typeof e!="function")throw new Error;at(this,t).ease=e}}function bh(t){if(typeof t!="function")throw new Error;return this.each(wh(this._id,t))}function xh(t){typeof t!="function"&&(t=ga(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,s=r[i]=[],l,u=0;u<o;++u)(l=a[u])&&t.call(l,l.__data__,u,a)&&s.push(l);return new lt(r,this._parents,this._name,this._id)}function Mh(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,a=Math.min(r,i),o=new Array(r),s=0;s<a;++s)for(var l=n[s],u=e[s],c=l.length,h=o[s]=new Array(c),f,d=0;d<c;++d)(f=l[d]||u[d])&&(h[d]=f);for(;s<r;++s)o[s]=n[s];return new lt(o,this._parents,this._name,this._id)}function $h(t){return(t+"").trim().split(/^|\s+/).every(function(n){var e=n.indexOf(".");return e>=0&&(n=n.slice(0,e)),!n||n==="start"})}function Ah(t,n,e){var r,i,a=$h(n)?Er:at;return function(){var o=a(this,t),s=o.on;s!==r&&(i=(r=s).copy()).on(n,e),o.on=i}}function Th(t,n){var e=this._id;return arguments.length<2?W(this.node(),e).on.on(t):this.each(Ah(e,t,n))}function kh(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function Nh(){return this.on("end.remove",kh(this._id))}function Sh(t){var n=this._name,e=this._id;typeof t!="function"&&(t=wr(t));for(var r=this._groups,i=r.length,a=new Array(i),o=0;o<i;++o)for(var s=r[o],l=s.length,u=a[o]=new Array(l),c,h,f=0;f<l;++f)(c=s[f])&&(h=t.call(c,c.__data__,f,s))&&("__data__"in c&&(h.__data__=c.__data__),u[f]=h,de(u[f],n,e,f,u,W(c,e)));return new lt(a,this._parents,n,e)}function zh(t){var n=this._name,e=this._id;typeof t!="function"&&(t=pa(t));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var l=r[s],u=l.length,c,h=0;h<u;++h)if(c=l[h]){for(var f=t.call(c,c.__data__,h,l),d,p=W(c,e),_=0,w=f.length;_<w;++_)(d=f[_])&&de(d,n,e,_,f,p);a.push(f),o.push(c)}return new lt(a,o,n,e)}var Ph=mn.prototype.constructor;function Eh(){return new Ph(this._groups,this._parents)}function Oh(t,n){var e,r,i;return function(){var a=Vt(this,t),o=(this.style.removeProperty(t),Vt(this,t));return a===o?null:a===e&&o===r?i:i=n(e=a,r=o)}}function Ka(t){return function(){this.style.removeProperty(t)}}function Ch(t,n,e){var r,i=e+"",a;return function(){var o=Vt(this,t);return o===i?null:o===r?a:a=n(r=o,e)}}function Ih(t,n,e){var r,i,a;return function(){var o=Vt(this,t),s=e(this),l=s+"";return s==null&&(l=s=(this.style.removeProperty(t),Vt(this,t))),o===l?null:o===r&&l===i?a:(i=l,a=n(r=o,s))}}function Rh(t,n){var e,r,i,a="style."+n,o="end."+a,s;return function(){var l=at(this,t),u=l.on,c=l.value[a]==null?s||(s=Ka(n)):void 0;(u!==e||i!==c)&&(r=(e=u).copy()).on(o,i=c),l.on=r}}function jh(t,n,e){var r=(t+="")=="transform"?Ff:Va;return n==null?this.styleTween(t,Oh(t,r)).on("end.style."+t,Ka(t)):typeof n=="function"?this.styleTween(t,Ih(t,r,Or(this,"style."+t,n))).each(Rh(this._id,t)):this.styleTween(t,Ch(t,r,n),e).on("end.style."+t,null)}function qh(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function Fh(t,n,e){var r,i;function a(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&qh(t,o,e)),r}return a._value=n,a}function Lh(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;return this.tween(r,Fh(t,n,e??""))}function Dh(t){return function(){this.textContent=t}}function Hh(t){return function(){var n=t(this);this.textContent=n??""}}function Bh(t){return this.tween("text",typeof t=="function"?Hh(Or(this,"text",t)):Dh(t==null?"":t+""))}function Xh(t){return function(n){this.textContent=t.call(this,n)}}function Uh(t){var n,e;function r(){var i=t.apply(this,arguments);return i!==e&&(n=(e=i)&&Xh(i)),n}return r._value=t,r}function Yh(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;return this.tween(n,Uh(t))}function Gh(){for(var t=this._name,n=this._id,e=Za(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,l,u=0;u<s;++u)if(l=o[u]){var c=W(l,n);de(l,t,e,u,o,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new lt(r,this._parents,t,e)}function Vh(){var t,n,e=this,r=e._id,i=e.size();return new Promise(function(a,o){var s={value:o},l={value:function(){--i===0&&a()}};e.each(function(){var u=at(this,r),c=u.on;c!==t&&(n=(t=c).copy(),n._.cancel.push(s),n._.interrupt.push(s),n._.end.push(l)),u.on=n}),i===0&&a()})}var Kh=0;function lt(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Za(){return++Kh}var ct=mn.prototype;lt.prototype={constructor:lt,select:Sh,selectAll:zh,selectChild:ct.selectChild,selectChildren:ct.selectChildren,filter:xh,merge:Mh,selection:Eh,transition:Gh,call:ct.call,nodes:ct.nodes,node:ct.node,size:ct.size,empty:ct.empty,each:ct.each,on:Th,attr:oh,attrTween:fh,style:jh,styleTween:Lh,text:Bh,textTween:Yh,remove:Nh,tween:Qf,delay:ph,duration:yh,ease:vh,easeVarying:bh,end:Vh,[Symbol.iterator]:ct[Symbol.iterator]};function Zh(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Wh={time:null,delay:0,duration:250,ease:Zh};function Jh(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}function Qh(t){var n,e;t instanceof lt?(n=t._id,t=t._name):(n=Za(),(e=Wh).time=ce(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,l,u=0;u<s;++u)(l=o[u])&&de(l,t,n,u,o,e||Jh(l,n));return new lt(r,this._parents,t,n)}mn.prototype.interrupt=Zf,mn.prototype.transition=Qh;const Cr=Math.PI,Ir=2*Cr,Ot=1e-6,td=Ir-Ot;function Wa(t){this._+=t[0];for(let n=1,e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function nd(t){let n=Math.floor(t);if(!(n>=0))throw new Error(`invalid digits: ${t}`);if(n>15)return Wa;const e=10**n;return function(r){this._+=r[0];for(let i=1,a=r.length;i<a;++i)this._+=Math.round(arguments[i]*e)/e+r[i]}}class ed{constructor(n){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=n==null?Wa:nd(n)}moveTo(n,e){this._append`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(n,e){this._append`L${this._x1=+n},${this._y1=+e}`}quadraticCurveTo(n,e,r,i){this._append`Q${+n},${+e},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(n,e,r,i,a,o){this._append`C${+n},${+e},${+r},${+i},${this._x1=+a},${this._y1=+o}`}arcTo(n,e,r,i,a){if(n=+n,e=+e,r=+r,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let o=this._x1,s=this._y1,l=r-n,u=i-e,c=o-n,h=s-e,f=c*c+h*h;if(this._x1===null)this._append`M${this._x1=n},${this._y1=e}`;else if(f>Ot)if(!(Math.abs(h*l-u*c)>Ot)||!a)this._append`L${this._x1=n},${this._y1=e}`;else{let d=r-o,p=i-s,_=l*l+u*u,w=d*d+p*p,y=Math.sqrt(_),M=Math.sqrt(f),$=a*Math.tan((Cr-Math.acos((_+f-w)/(2*y*M)))/2),g=$/M,v=$/y;Math.abs(g-1)>Ot&&this._append`L${n+g*c},${e+g*h}`,this._append`A${a},${a},0,0,${+(h*d>c*p)},${this._x1=n+v*l},${this._y1=e+v*u}`}}arc(n,e,r,i,a,o){if(n=+n,e=+e,r=+r,o=!!o,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(i),l=r*Math.sin(i),u=n+s,c=e+l,h=1^o,f=o?i-a:a-i;this._x1===null?this._append`M${u},${c}`:(Math.abs(this._x1-u)>Ot||Math.abs(this._y1-c)>Ot)&&this._append`L${u},${c}`,r&&(f<0&&(f=f%Ir+Ir),f>td?this._append`A${r},${r},0,1,${h},${n-s},${e-l}A${r},${r},0,1,${h},${this._x1=u},${this._y1=c}`:f>Ot&&this._append`A${r},${r},0,${+(f>=Cr)},${h},${this._x1=n+r*Math.cos(a)},${this._y1=e+r*Math.sin(a)}`)}rect(n,e,r,i){this._append`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function rd(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function pe(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function Wt(t){return t=pe(Math.abs(t)),t?t[1]:NaN}function id(t,n){return function(e,r){for(var i=e.length,a=[],o=0,s=t[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),a.push(e.substring(i-=s,i+s)),!((l+=s+1)>r));)s=t[o=(o+1)%t.length];return a.reverse().join(n)}}function ad(t){return function(n){return n.replace(/[0-9]/g,function(e){return t[+e]})}}var od=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ge(t){if(!(n=od.exec(t)))throw new Error("invalid format: "+t);var n;return new Rr({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}ge.prototype=Rr.prototype;function Rr(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.typ