plotly.js
Version:
The open source javascript graphing library that powers plotly
18 lines • 4.84 MB
JavaScript
/**
* plotly.js v3.5.0
* Copyright 2012-2026, Plotly, Inc.
* All rights reserved.
* Licensed under the MIT license
*/
(
function(root, factory) {
if (typeof module === "object" && module.exports) {
module.exports = factory();
} else {
root.moduleName = factory();
}
} (typeof self !== "undefined" ? self : this, () => {
"use strict";var Plotly=(()=>{var xtt=Object.create;var DS=Object.defineProperty,btt=Object.defineProperties,wtt=Object.getOwnPropertyDescriptor,Ttt=Object.getOwnPropertyDescriptors,Att=Object.getOwnPropertyNames,p6=Object.getOwnPropertySymbols,Stt=Object.getPrototypeOf,Aq=Object.prototype.hasOwnProperty,pee=Object.prototype.propertyIsEnumerable;var vee=(e,t,r)=>t in e?DS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_g=(e,t)=>{for(var r in t||(t={}))Aq.call(t,r)&&vee(e,r,t[r]);if(p6)for(var r of p6(t))pee.call(t,r)&&vee(e,r,t[r]);return e},j1=(e,t)=>btt(e,Ttt(t));var gee=(e,t)=>{var r={};for(var n in e)Aq.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&p6)for(var n of p6(e))t.indexOf(n)<0&&pee.call(e,n)&&(r[n]=e[n]);return r};var gu=(e,t)=>()=>(e&&(t=e(e=0)),t);var ye=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),mee=(e,t)=>{for(var r in t)DS(e,r,{get:t[r],enumerable:!0})},yee=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Att(t))!Aq.call(e,i)&&i!==r&&DS(e,i,{get:()=>t[i],enumerable:!(n=wtt(t,i))||n.enumerable});return e};var Mtt=(e,t,r)=>(r=e!=null?xtt(Stt(e)):{},yee(t||!e||!e.__esModule?DS(r,"default",{value:e,enumerable:!0}):r,e)),pb=e=>yee(DS({},"__esModule",{value:!0}),e);var g6=ye(_ee=>{"use strict";_ee.version="3.5.0"});var bee=ye((xee,m6)=>{(function(t,r,n){r[t]=r[t]||n(),typeof m6!="undefined"&&m6.exports&&(m6.exports=r[t])})("Promise",typeof window!="undefined"?window:xee,function(){"use strict";var t,r,n,i=Object.prototype.toString,a=typeof setImmediate!="undefined"?function(k){return setImmediate(k)}:setTimeout;try{Object.defineProperty({},"x",{}),t=function(k,M,T,L){return Object.defineProperty(k,M,{value:T,writable:!0,configurable:L!==!1})}}catch(p){t=function(M,T,L){return M[T]=L,M}}n=function(){var k,M,T;function L(x,C){this.fn=x,this.self=C,this.next=void 0}return{add:function(C,S){T=new L(C,S),M?M.next=T:k=T,M=T,T=void 0},drain:function(){var C=k;for(k=M=r=void 0;C;)C.fn.call(C.self),C=C.next}}}();function o(p,k){n.add(p,k),r||(r=a(n.drain))}function s(p){var k,M=typeof p;return p!=null&&(M=="object"||M=="function")&&(k=p.then),typeof k=="function"?k:!1}function l(){for(var p=0;p<this.chain.length;p++)u(this,this.state===1?this.chain[p].success:this.chain[p].failure,this.chain[p]);this.chain.length=0}function u(p,k,M){var T,L;try{k===!1?M.reject(p.msg):(k===!0?T=p.msg:T=k.call(void 0,p.msg),T===M.promise?M.reject(TypeError("Promise-chain cycle")):(L=s(T))?L.call(T,M.resolve,M.reject):M.resolve(T))}catch(x){M.reject(x)}}function c(p){var k,M=this;if(!M.triggered){M.triggered=!0,M.def&&(M=M.def);try{(k=s(p))?o(function(){var T=new d(M);try{k.call(p,function(){c.apply(T,arguments)},function(){f.apply(T,arguments)})}catch(L){f.call(T,L)}}):(M.msg=p,M.state=1,M.chain.length>0&&o(l,M))}catch(T){f.call(new d(M),T)}}}function f(p){var k=this;k.triggered||(k.triggered=!0,k.def&&(k=k.def),k.msg=p,k.state=2,k.chain.length>0&&o(l,k))}function h(p,k,M,T){for(var L=0;L<k.length;L++)(function(C){p.resolve(k[C]).then(function(g){M(C,g)},T)})(L)}function d(p){this.def=p,this.triggered=!1}function v(p){this.promise=p,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function m(p){if(typeof p!="function")throw TypeError("Not a function");if(this.__NPO__!==0)throw TypeError("Not a promise");this.__NPO__=1;var k=new v(this);this.then=function(T,L){var x={success:typeof T=="function"?T:!0,failure:typeof L=="function"?L:!1};return x.promise=new this.constructor(function(S,g){if(typeof S!="function"||typeof g!="function")throw TypeError("Not a function");x.resolve=S,x.reject=g}),k.chain.push(x),k.state!==0&&o(l,k),x.promise},this.catch=function(T){return this.then(void 0,T)};try{p.call(void 0,function(T){c.call(k,T)},function(T){f.call(k,T)})}catch(M){f.call(k,M)}}var b=t({},"constructor",m,!1);return m.prototype=b,t(b,"__NPO__",0,!1),t(m,"resolve",function(k){var M=this;return k&&typeof k=="object"&&k.__NPO__===1?k:new M(function(L,x){if(typeof L!="function"||typeof x!="function")throw TypeError("Not a function");L(k)})}),t(m,"reject",function(k){return new this(function(T,L){if(typeof T!="function"||typeof L!="function")throw TypeError("Not a function");L(k)})}),t(m,"all",function(k){var M=this;return i.call(k)!="[object Array]"?M.reject(TypeError("Not an array")):k.length===0?M.resolve([]):new M(function(L,x){if(typeof L!="function"||typeof x!="function")throw TypeError("Not a function");var C=k.length,S=Array(C),g=0;h(M,k,function(E,z){S[E]=z,++g===C&&L(S)},x)})}),t(m,"race",function(k){var M=this;return i.call(k)!="[object Array]"?M.reject(TypeError("Not an array")):new M(function(L,x){if(typeof L!="function"||typeof x!="function")throw TypeError("Not a function");h(M,k,function(S,g){L(g)},x)})}),m})});var qa=ye((wrr,y6)=>{(function(){var e={version:"3.8.2"},t=[].slice,r=function(X){return t.call(X)},n=self.document;function i(X){return X&&(X.ownerDocument||X.document||X).documentElement}function a(X){return X&&(X.ownerDocument&&X.ownerDocument.defaultView||X.document&&X||X.defaultView)}if(n)try{r(n.documentElement.childNodes)[0].nodeType}catch(X){r=function(se){for(var Te=se.length,Oe=new Array(Te);Te--;)Oe[Te]=se[Te];return Oe}}if(Date.now||(Date.now=function(){return+new Date}),n)try{n.createElement("DIV").style.setProperty("opacity",0,"")}catch(X){var o=this.Element.prototype,s=o.setAttribute,l=o.setAttributeNS,u=this.CSSStyleDeclaration.prototype,c=u.setProperty;o.setAttribute=function(se,Te){s.call(this,se,Te+"")},o.setAttributeNS=function(se,Te,Oe){l.call(this,se,Te,Oe+"")},u.setProperty=function(se,Te,Oe){c.call(this,se,Te+"",Oe)}}e.ascending=f;function f(X,se){return X<se?-1:X>se?1:X>=se?0:NaN}e.descending=function(X,se){return se<X?-1:se>X?1:se>=X?0:NaN},e.min=function(X,se){var Te=-1,Oe=X.length,Ve,Ye;if(arguments.length===1){for(;++Te<Oe;)if((Ye=X[Te])!=null&&Ye>=Ye){Ve=Ye;break}for(;++Te<Oe;)(Ye=X[Te])!=null&&Ve>Ye&&(Ve=Ye)}else{for(;++Te<Oe;)if((Ye=se.call(X,X[Te],Te))!=null&&Ye>=Ye){Ve=Ye;break}for(;++Te<Oe;)(Ye=se.call(X,X[Te],Te))!=null&&Ve>Ye&&(Ve=Ye)}return Ve},e.max=function(X,se){var Te=-1,Oe=X.length,Ve,Ye;if(arguments.length===1){for(;++Te<Oe;)if((Ye=X[Te])!=null&&Ye>=Ye){Ve=Ye;break}for(;++Te<Oe;)(Ye=X[Te])!=null&&Ye>Ve&&(Ve=Ye)}else{for(;++Te<Oe;)if((Ye=se.call(X,X[Te],Te))!=null&&Ye>=Ye){Ve=Ye;break}for(;++Te<Oe;)(Ye=se.call(X,X[Te],Te))!=null&&Ye>Ve&&(Ve=Ye)}return Ve},e.extent=function(X,se){var Te=-1,Oe=X.length,Ve,Ye,Pt;if(arguments.length===1){for(;++Te<Oe;)if((Ye=X[Te])!=null&&Ye>=Ye){Ve=Pt=Ye;break}for(;++Te<Oe;)(Ye=X[Te])!=null&&(Ve>Ye&&(Ve=Ye),Pt<Ye&&(Pt=Ye))}else{for(;++Te<Oe;)if((Ye=se.call(X,X[Te],Te))!=null&&Ye>=Ye){Ve=Pt=Ye;break}for(;++Te<Oe;)(Ye=se.call(X,X[Te],Te))!=null&&(Ve>Ye&&(Ve=Ye),Pt<Ye&&(Pt=Ye))}return[Ve,Pt]};function h(X){return X===null?NaN:+X}function d(X){return!isNaN(X)}e.sum=function(X,se){var Te=0,Oe=X.length,Ve,Ye=-1;if(arguments.length===1)for(;++Ye<Oe;)d(Ve=+X[Ye])&&(Te+=Ve);else for(;++Ye<Oe;)d(Ve=+se.call(X,X[Ye],Ye))&&(Te+=Ve);return Te},e.mean=function(X,se){var Te=0,Oe=X.length,Ve,Ye=-1,Pt=Oe;if(arguments.length===1)for(;++Ye<Oe;)d(Ve=h(X[Ye]))?Te+=Ve:--Pt;else for(;++Ye<Oe;)d(Ve=h(se.call(X,X[Ye],Ye)))?Te+=Ve:--Pt;if(Pt)return Te/Pt},e.quantile=function(X,se){var Te=(X.length-1)*se+1,Oe=Math.floor(Te),Ve=+X[Oe-1],Ye=Te-Oe;return Ye?Ve+Ye*(X[Oe]-Ve):Ve},e.median=function(X,se){var Te=[],Oe=X.length,Ve,Ye=-1;if(arguments.length===1)for(;++Ye<Oe;)d(Ve=h(X[Ye]))&&Te.push(Ve);else for(;++Ye<Oe;)d(Ve=h(se.call(X,X[Ye],Ye)))&&Te.push(Ve);if(Te.length)return e.quantile(Te.sort(f),.5)},e.variance=function(X,se){var Te=X.length,Oe=0,Ve,Ye,Pt=0,at=-1,Wt=0;if(arguments.length===1)for(;++at<Te;)d(Ve=h(X[at]))&&(Ye=Ve-Oe,Oe+=Ye/++Wt,Pt+=Ye*(Ve-Oe));else for(;++at<Te;)d(Ve=h(se.call(X,X[at],at)))&&(Ye=Ve-Oe,Oe+=Ye/++Wt,Pt+=Ye*(Ve-Oe));if(Wt>1)return Pt/(Wt-1)},e.deviation=function(){var X=e.variance.apply(this,arguments);return X&&Math.sqrt(X)};function v(X){return{left:function(se,Te,Oe,Ve){for(arguments.length<3&&(Oe=0),arguments.length<4&&(Ve=se.length);Oe<Ve;){var Ye=Oe+Ve>>>1;X(se[Ye],Te)<0?Oe=Ye+1:Ve=Ye}return Oe},right:function(se,Te,Oe,Ve){for(arguments.length<3&&(Oe=0),arguments.length<4&&(Ve=se.length);Oe<Ve;){var Ye=Oe+Ve>>>1;X(se[Ye],Te)>0?Ve=Ye:Oe=Ye+1}return Oe}}}var m=v(f);e.bisectLeft=m.left,e.bisect=e.bisectRight=m.right,e.bisector=function(X){return v(X.length===1?function(se,Te){return f(X(se),Te)}:X)},e.shuffle=function(X,se,Te){(Oe=arguments.length)<3&&(Te=X.length,Oe<2&&(se=0));for(var Oe=Te-se,Ve,Ye;Oe;)Ye=Math.random()*Oe--|0,Ve=X[Oe+se],X[Oe+se]=X[Ye+se],X[Ye+se]=Ve;return X},e.permute=function(X,se){for(var Te=se.length,Oe=new Array(Te);Te--;)Oe[Te]=X[se[Te]];return Oe},e.pairs=function(X){for(var se=0,Te=X.length-1,Oe,Ve=X[0],Ye=new Array(Te<0?0:Te);se<Te;)Ye[se]=[Oe=Ve,Ve=X[++se]];return Ye},e.transpose=function(X){if(!(Ye=X.length))return[];for(var se=-1,Te=e.min(X,b),Oe=new Array(Te);++se<Te;)for(var Ve=-1,Ye,Pt=Oe[se]=new Array(Ye);++Ve<Ye;)Pt[Ve]=X[Ve][se];return Oe};function b(X){return X.length}e.zip=function(){return e.transpose(arguments)},e.keys=function(X){var se=[];for(var Te in X)se.push(Te);return se},e.values=function(X){var se=[];for(var Te in X)se.push(X[Te]);return se},e.entries=function(X){var se=[];for(var Te in X)se.push({key:Te,value:X[Te]});return se},e.merge=function(X){for(var se=X.length,Te,Oe=-1,Ve=0,Ye,Pt;++Oe<se;)Ve+=X[Oe].length;for(Ye=new Array(Ve);--se>=0;)for(Pt=X[se],Te=Pt.length;--Te>=0;)Ye[--Ve]=Pt[Te];return Ye};var p=Math.abs;e.range=function(X,se,Te){if(arguments.length<3&&(Te=1,arguments.length<2&&(se=X,X=0)),(se-X)/Te===1/0)throw new Error("infinite range");var Oe=[],Ve=k(p(Te)),Ye=-1,Pt;if(X*=Ve,se*=Ve,Te*=Ve,Te<0)for(;(Pt=X+Te*++Ye)>se;)Oe.push(Pt/Ve);else for(;(Pt=X+Te*++Ye)<se;)Oe.push(Pt/Ve);return Oe};function k(X){for(var se=1;X*se%1;)se*=10;return se}function M(X,se){for(var Te in se)Object.defineProperty(X.prototype,Te,{value:se[Te],enumerable:!1})}e.map=function(X,se){var Te=new T;if(X instanceof T)X.forEach(function(at,Wt){Te.set(at,Wt)});else if(Array.isArray(X)){var Oe=-1,Ve=X.length,Ye;if(arguments.length===1)for(;++Oe<Ve;)Te.set(Oe,X[Oe]);else for(;++Oe<Ve;)Te.set(se.call(X,Ye=X[Oe],Oe),Ye)}else for(var Pt in X)Te.set(Pt,X[Pt]);return Te};function T(){this._=Object.create(null)}var L="__proto__",x="\0";M(T,{has:g,get:function(X){return this._[C(X)]},set:function(X,se){return this._[C(X)]=se},remove:P,keys:E,values:function(){var X=[];for(var se in this._)X.push(this._[se]);return X},entries:function(){var X=[];for(var se in this._)X.push({key:S(se),value:this._[se]});return X},size:z,empty:q,forEach:function(X){for(var se in this._)X.call(this,S(se),this._[se])}});function C(X){return(X+="")===L||X[0]===x?x+X:X}function S(X){return(X+="")[0]===x?X.slice(1):X}function g(X){return C(X)in this._}function P(X){return(X=C(X))in this._&&delete this._[X]}function E(){var X=[];for(var se in this._)X.push(S(se));return X}function z(){var X=0;for(var se in this._)++X;return X}function q(){for(var X in this._)return!1;return!0}e.nest=function(){var X={},se=[],Te=[],Oe,Ve;function Ye(at,Wt,dr){if(dr>=se.length)return Ve?Ve.call(X,Wt):Oe?Wt.sort(Oe):Wt;for(var pr=-1,Ur=Wt.length,zr=se[dr++],gi,xi,Wr,ii=new T,di;++pr<Ur;)(di=ii.get(gi=zr(xi=Wt[pr])))?di.push(xi):ii.set(gi,[xi]);return at?(xi=at(),Wr=function(Li,Ti){xi.set(Li,Ye(at,Ti,dr))}):(xi={},Wr=function(Li,Ti){xi[Li]=Ye(at,Ti,dr)}),ii.forEach(Wr),xi}function Pt(at,Wt){if(Wt>=se.length)return at;var dr=[],pr=Te[Wt++];return at.forEach(function(Ur,zr){dr.push({key:Ur,values:Pt(zr,Wt)})}),pr?dr.sort(function(Ur,zr){return pr(Ur.key,zr.key)}):dr}return X.map=function(at,Wt){return Ye(Wt,at,0)},X.entries=function(at){return Pt(Ye(e.map,at,0),0)},X.key=function(at){return se.push(at),X},X.sortKeys=function(at){return Te[se.length-1]=at,X},X.sortValues=function(at){return Oe=at,X},X.rollup=function(at){return Ve=at,X},X},e.set=function(X){var se=new U;if(X)for(var Te=0,Oe=X.length;Te<Oe;++Te)se.add(X[Te]);return se};function U(){this._=Object.create(null)}M(U,{has:g,add:function(X){return this._[C(X+="")]=!0,X},remove:P,values:E,size:z,empty:q,forEach:function(X){for(var se in this._)X.call(this,S(se))}}),e.behavior={};function G(X){return X}e.rebind=function(X,se){for(var Te=1,Oe=arguments.length,Ve;++Te<Oe;)X[Ve=arguments[Te]]=Z(X,se,se[Ve]);return X};function Z(X,se,Te){return function(){var Oe=Te.apply(se,arguments);return Oe===se?X:Oe}}function j(X,se){if(se in X)return se;se=se.charAt(0).toUpperCase()+se.slice(1);for(var Te=0,Oe=N.length;Te<Oe;++Te){var Ve=N[Te]+se;if(Ve in X)return Ve}}var N=["webkit","ms","moz","Moz","o","O"];function H(){}e.dispatch=function(){for(var X=new re,se=-1,Te=arguments.length;++se<Te;)X[arguments[se]]=oe(X);return X};function re(){}re.prototype.on=function(X,se){var Te=X.indexOf("."),Oe="";if(Te>=0&&(Oe=X.slice(Te+1),X=X.slice(0,Te)),X)return arguments.length<2?this[X].on(Oe):this[X].on(Oe,se);if(arguments.length===2){if(se==null)for(X in this)this.hasOwnProperty(X)&&this[X].on(Oe,null);return this}};function oe(X){var se=[],Te=new T;function Oe(){for(var Ve=se,Ye=-1,Pt=Ve.length,at;++Ye<Pt;)(at=Ve[Ye].on)&&at.apply(this,arguments);return X}return Oe.on=function(Ve,Ye){var Pt=Te.get(Ve),at;return arguments.length<2?Pt&&Pt.on:(Pt&&(Pt.on=null,se=se.slice(0,at=se.indexOf(Pt)).concat(se.slice(at+1)),Te.remove(Ve)),Ye&&se.push(Te.set(Ve,{on:Ye})),X)},Oe}e.event=null;function _e(){e.event.preventDefault()}function ke(){for(var X=e.event,se;se=X.sourceEvent;)X=se;return X}function Ce(X){for(var se=new re,Te=0,Oe=arguments.length;++Te<Oe;)se[arguments[Te]]=oe(se);return se.of=function(Ve,Ye){return function(Pt){try{var at=Pt.sourceEvent=e.event;Pt.target=X,e.event=Pt,se[Pt.type].apply(Ve,Ye)}finally{e.event=at}}},se}e.requote=function(X){return X.replace(ge,"\\$&")};var ge=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ie={}.__proto__?function(X,se){X.__proto__=se}:function(X,se){for(var Te in se)X[Te]=se[Te]};function Se(X){return ie(X,Le),X}var Ee=function(X,se){return se.querySelector(X)},we=function(X,se){return se.querySelectorAll(X)},De=function(X,se){var Te=X.matches||X[j(X,"matchesSelector")];return De=function(Oe,Ve){return Te.call(Oe,Ve)},De(X,se)};typeof Sizzle=="function"&&(Ee=function(X,se){return Sizzle(X,se)[0]||null},we=Sizzle,De=Sizzle.matchesSelector),e.selection=function(){return e.select(n.documentElement)};var Le=e.selection.prototype=[];Le.select=function(X){var se=[],Te,Oe,Ve,Ye;X=me(X);for(var Pt=-1,at=this.length;++Pt<at;){se.push(Te=[]),Te.parentNode=(Ve=this[Pt]).parentNode;for(var Wt=-1,dr=Ve.length;++Wt<dr;)(Ye=Ve[Wt])?(Te.push(Oe=X.call(Ye,Ye.__data__,Wt,Pt)),Oe&&"__data__"in Ye&&(Oe.__data__=Ye.__data__)):Te.push(null)}return Se(se)};function me(X){return typeof X=="function"?X:function(){return Ee(X,this)}}Le.selectAll=function(X){var se=[],Te,Oe;X=Pe(X);for(var Ve=-1,Ye=this.length;++Ve<Ye;)for(var Pt=this[Ve],at=-1,Wt=Pt.length;++at<Wt;)(Oe=Pt[at])&&(se.push(Te=r(X.call(Oe,Oe.__data__,at,Ve))),Te.parentNode=Oe);return Se(se)};function Pe(X){return typeof X=="function"?X:function(){return we(X,this)}}var ce="http://www.w3.org/1999/xhtml",He={svg:"http://www.w3.org/2000/svg",xhtml:ce,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};e.ns={prefix:He,qualify:function(X){var se=X.indexOf(":"),Te=X;return se>=0&&(Te=X.slice(0,se))!=="xmlns"&&(X=X.slice(se+1)),He.hasOwnProperty(Te)?{space:He[Te],local:X}:X}},Le.attr=function(X,se){if(arguments.length<2){if(typeof X=="string"){var Te=this.node();return X=e.ns.qualify(X),X.local?Te.getAttributeNS(X.space,X.local):Te.getAttribute(X)}for(se in X)this.each(lt(se,X[se]));return this}return this.each(lt(X,se))};function lt(X,se){X=e.ns.qualify(X);function Te(){this.removeAttribute(X)}function Oe(){this.removeAttributeNS(X.space,X.local)}function Ve(){this.setAttribute(X,se)}function Ye(){this.setAttributeNS(X.space,X.local,se)}function Pt(){var Wt=se.apply(this,arguments);Wt==null?this.removeAttribute(X):this.setAttribute(X,Wt)}function at(){var Wt=se.apply(this,arguments);Wt==null?this.removeAttributeNS(X.space,X.local):this.setAttributeNS(X.space,X.local,Wt)}return se==null?X.local?Oe:Te:typeof se=="function"?X.local?at:Pt:X.local?Ye:Ve}function mt(X){return X.trim().replace(/\s+/g," ")}Le.classed=function(X,se){if(arguments.length<2){if(typeof X=="string"){var Te=this.node(),Oe=(X=st(X)).length,Ve=-1;if(se=Te.classList){for(;++Ve<Oe;)if(!se.contains(X[Ve]))return!1}else for(se=Te.getAttribute("class");++Ve<Oe;)if(!Vt(X[Ve]).test(se))return!1;return!0}for(se in X)this.each(ct(se,X[se]));return this}return this.each(ct(X,se))};function Vt(X){return new RegExp("(?:^|\\s+)"+e.requote(X)+"(?:\\s+|$)","g")}function st(X){return(X+"").trim().split(/^|\s+/)}function ct(X,se){X=st(X).map(Qt);var Te=X.length;function Oe(){for(var Ye=-1;++Ye<Te;)X[Ye](this,se)}function Ve(){for(var Ye=-1,Pt=se.apply(this,arguments);++Ye<Te;)X[Ye](this,Pt)}return typeof se=="function"?Ve:Oe}function Qt(X){var se=Vt(X);return function(Te,Oe){if(Ve=Te.classList)return Oe?Ve.add(X):Ve.remove(X);var Ve=Te.getAttribute("class")||"";Oe?(se.lastIndex=0,se.test(Ve)||Te.setAttribute("class",mt(Ve+" "+X))):Te.setAttribute("class",mt(Ve.replace(se," ")))}}Le.style=function(X,se,Te){var Oe=arguments.length;if(Oe<3){if(typeof X!="string"){Oe<2&&(se="");for(Te in X)this.each(Ht(Te,X[Te],se));return this}if(Oe<2){var Ve=this.node();return a(Ve).getComputedStyle(Ve,null).getPropertyValue(X)}Te=""}return this.each(Ht(X,se,Te))};function Ht(X,se,Te){function Oe(){this.style.removeProperty(X)}function Ve(){this.style.setProperty(X,se,Te)}function Ye(){var Pt=se.apply(this,arguments);Pt==null?this.style.removeProperty(X):this.style.setProperty(X,Pt,Te)}return se==null?Oe:typeof se=="function"?Ye:Ve}Le.property=function(X,se){if(arguments.length<2){if(typeof X=="string")return this.node()[X];for(se in X)this.each(nr(se,X[se]));return this}return this.each(nr(X,se))};function nr(X,se){function Te(){delete this[X]}function Oe(){this[X]=se}function Ve(){var Ye=se.apply(this,arguments);Ye==null?delete this[X]:this[X]=Ye}return se==null?Te:typeof se=="function"?Ve:Oe}Le.text=function(X){return arguments.length?this.each(typeof X=="function"?function(){var se=X.apply(this,arguments);this.textContent=se==null?"":se}:X==null?function(){this.textContent=""}:function(){this.textContent=X}):this.node().textContent},Le.html=function(X){return arguments.length?this.each(typeof X=="function"?function(){var se=X.apply(this,arguments);this.innerHTML=se==null?"":se}:X==null?function(){this.innerHTML=""}:function(){this.innerHTML=X}):this.node().innerHTML},Le.append=function(X){return X=tt(X),this.select(function(){return this.appendChild(X.apply(this,arguments))})};function tt(X){function se(){var Oe=this.ownerDocument,Ve=this.namespaceURI;return Ve===ce&&Oe.documentElement.namespaceURI===ce?Oe.createElement(X):Oe.createElementNS(Ve,X)}function Te(){return this.ownerDocument.createElementNS(X.space,X.local)}return typeof X=="function"?X:(X=e.ns.qualify(X)).local?Te:se}Le.insert=function(X,se){return X=tt(X),se=me(se),this.select(function(){return this.insertBefore(X.apply(this,arguments),se.apply(this,arguments)||null)})},Le.remove=function(){return this.each(je)};function je(){var X=this.parentNode;X&&X.removeChild(this)}Le.data=function(X,se){var Te=-1,Oe=this.length,Ve,Ye;if(!arguments.length){for(X=new Array(Oe=(Ve=this[0]).length);++Te<Oe;)(Ye=Ve[Te])&&(X[Te]=Ye.__data__);return X}function Pt(pr,Ur){var zr,gi=pr.length,xi=Ur.length,Wr=Math.min(gi,xi),ii=new Array(xi),di=new Array(xi),Li=new Array(gi),Ti,Qr;if(se){var Pn=new T,kn=new Array(gi),Bn;for(zr=-1;++zr<gi;)(Ti=pr[zr])&&(Pn.has(Bn=se.call(Ti,Ti.__data__,zr))?Li[zr]=Ti:Pn.set(Bn,Ti),kn[zr]=Bn);for(zr=-1;++zr<xi;)(Ti=Pn.get(Bn=se.call(Ur,Qr=Ur[zr],zr)))?Ti!==!0&&(ii[zr]=Ti,Ti.__data__=Qr):di[zr]=Ue(Qr),Pn.set(Bn,!0);for(zr=-1;++zr<gi;)zr in kn&&Pn.get(kn[zr])!==!0&&(Li[zr]=pr[zr])}else{for(zr=-1;++zr<Wr;)Ti=pr[zr],Qr=Ur[zr],Ti?(Ti.__data__=Qr,ii[zr]=Ti):di[zr]=Ue(Qr);for(;zr<xi;++zr)di[zr]=Ue(Ur[zr]);for(;zr<gi;++zr)Li[zr]=pr[zr]}di.update=ii,di.parentNode=ii.parentNode=Li.parentNode=pr.parentNode,at.push(di),Wt.push(ii),dr.push(Li)}var at=Tt([]),Wt=Se([]),dr=Se([]);if(typeof X=="function")for(;++Te<Oe;)Pt(Ve=this[Te],X.call(Ve,Ve.parentNode.__data__,Te));else for(;++Te<Oe;)Pt(Ve=this[Te],X);return Wt.enter=function(){return at},Wt.exit=function(){return dr},Wt};function Ue(X){return{__data__:X}}Le.datum=function(X){return arguments.length?this.property("__data__",X):this.property("__data__")},Le.filter=function(X){var se=[],Te,Oe,Ve;typeof X!="function"&&(X=Ae(X));for(var Ye=0,Pt=this.length;Ye<Pt;Ye++){se.push(Te=[]),Te.parentNode=(Oe=this[Ye]).parentNode;for(var at=0,Wt=Oe.length;at<Wt;at++)(Ve=Oe[at])&&X.call(Ve,Ve.__data__,at,Ye)&&Te.push(Ve)}return Se(se)};function Ae(X){return function(){return De(this,X)}}Le.order=function(){for(var X=-1,se=this.length;++X<se;)for(var Te=this[X],Oe=Te.length-1,Ve=Te[Oe],Ye;--Oe>=0;)(Ye=Te[Oe])&&(Ve&&Ve!==Ye.nextSibling&&Ve.parentNode.insertBefore(Ye,Ve),Ve=Ye);return this},Le.sort=function(X){X=rt.apply(this,arguments);for(var se=-1,Te=this.length;++se<Te;)this[se].sort(X);return this.order()};function rt(X){return arguments.length||(X=f),function(se,Te){return se&&Te?X(se.__data__,Te.__data__):!se-!Te}}Le.each=function(X){return St(this,function(se,Te,Oe){X.call(se,se.__data__,Te,Oe)})};function St(X,se){for(var Te=0,Oe=X.length;Te<Oe;Te++)for(var Ve=X[Te],Ye=0,Pt=Ve.length,at;Ye<Pt;Ye++)(at=Ve[Ye])&&se(at,Ye,Te);return X}Le.call=function(X){var se=r(arguments);return X.apply(se[0]=this,se),this},Le.empty=function(){return!this.node()},Le.node=function(){for(var X=0,se=this.length;X<se;X++)for(var Te=this[X],Oe=0,Ve=Te.length;Oe<Ve;Oe++){var Ye=Te[Oe];if(Ye)return Ye}return null},Le.size=function(){var X=0;return St(this,function(){++X}),X};function Tt(X){return ie(X,dt),X}var dt=[];e.selection.enter=Tt,e.selection.enter.prototype=dt,dt.append=Le.append,dt.empty=Le.empty,dt.node=Le.node,dt.call=Le.call,dt.size=Le.size,dt.select=function(X){for(var se=[],Te,Oe,Ve,Ye,Pt,at=-1,Wt=this.length;++at<Wt;){Ve=(Ye=this[at]).update,se.push(Te=[]),Te.parentNode=Ye.parentNode;for(var dr=-1,pr=Ye.length;++dr<pr;)(Pt=Ye[dr])?(Te.push(Ve[dr]=Oe=X.call(Ye.parentNode,Pt.__data__,dr,at)),Oe.__data__=Pt.__data__):Te.push(null)}return Se(se)},dt.insert=function(X,se){return arguments.length<2&&(se=Et(this)),Le.insert.call(this,X,se)};function Et(X){var se,Te;return function(Oe,Ve,Ye){var Pt=X[Ye].update,at=Pt.length,Wt;for(Ye!=Te&&(Te=Ye,se=0),Ve>=se&&(se=Ve+1);!(Wt=Pt[se])&&++se<at;);return Wt}}e.select=function(X){var se;return typeof X=="string"?(se=[Ee(X,n)],se.parentNode=n.documentElement):(se=[X],se.parentNode=i(X)),Se([se])},e.selectAll=function(X){var se;return typeof X=="string"?(se=r(we(X,n)),se.parentNode=n.documentElement):(se=r(X),se.parentNode=null),Se([se])},Le.on=function(X,se,Te){var Oe=arguments.length;if(Oe<3){if(typeof X!="string"){Oe<2&&(se=!1);for(Te in X)this.each(pt(Te,X[Te],se));return this}if(Oe<2)return(Oe=this.node()["__on"+X])&&Oe._;Te=!1}return this.each(pt(X,se,Te))};function pt(X,se,Te){var Oe="__on"+X,Ve=X.indexOf("."),Ye=or;Ve>0&&(X=X.slice(0,Ve));var Pt=Xt.get(X);Pt&&(X=Pt,Ye=_r);function at(){var pr=this[Oe];pr&&(this.removeEventListener(X,pr,pr.$),delete this[Oe])}function Wt(){var pr=Ye(se,r(arguments));at.call(this),this.addEventListener(X,this[Oe]=pr,pr.$=Te),pr._=se}function dr(){var pr=new RegExp("^__on([^.]+)"+e.requote(X)+"$"),Ur;for(var zr in this)if(Ur=zr.match(pr)){var gi=this[zr];this.removeEventListener(Ur[1],gi,gi.$),delete this[zr]}}return Ve?se?Wt:at:se?H:dr}var Xt=e.map({mouseenter:"mouseover",mouseleave:"mouseout"});n&&Xt.forEach(function(X){"on"+X in n&&Xt.remove(X)});function or(X,se){return function(Te){var Oe=e.event;e.event=Te,se[0]=this.__data__;try{X.apply(this,se)}finally{e.event=Oe}}}function _r(X,se){var Te=or(X,se);return function(Oe){var Ve=this,Ye=Oe.relatedTarget;(!Ye||Ye!==Ve&&!(Ye.compareDocumentPosition(Ve)&8))&&Te.call(Ve,Oe)}}var Er,ei=0;function qr(X){var se=".dragsuppress-"+ ++ei,Te="click"+se,Oe=e.select(a(X)).on("touchmove"+se,_e).on("dragstart"+se,_e).on("selectstart"+se,_e);if(Er==null&&(Er="onselectstart"in X?!1:j(X.style,"userSelect")),Er){var Ve=i(X).style,Ye=Ve[Er];Ve[Er]="none"}return function(Pt){if(Oe.on(se,null),Er&&(Ve[Er]=Ye),Pt){var at=function(){Oe.on(Te,null)};Oe.on(Te,function(){_e(),at()},!0),setTimeout(at,0)}}}e.mouse=function(X){return gt(X,ke())};var jr=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function gt(X,se){se.changedTouches&&(se=se.changedTouches[0]);var Te=X.ownerSVGElement||X;if(Te.createSVGPoint){var Oe=Te.createSVGPoint();if(jr<0){var Ve=a(X);if(Ve.scrollX||Ve.scrollY){Te=e.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var Ye=Te[0][0].getScreenCTM();jr=!(Ye.f||Ye.e),Te.remove()}}return jr?(Oe.x=se.pageX,Oe.y=se.pageY):(Oe.x=se.clientX,Oe.y=se.clientY),Oe=Oe.matrixTransform(X.getScreenCTM().inverse()),[Oe.x,Oe.y]}var Pt=X.getBoundingClientRect();return[se.clientX-Pt.left-X.clientLeft,se.clientY-Pt.top-X.clientTop]}e.touch=function(X,se,Te){if(arguments.length<3&&(Te=se,se=ke().changedTouches),se){for(var Oe=0,Ve=se.length,Ye;Oe<Ve;++Oe)if((Ye=se[Oe]).identifier===Te)return gt(X,Ye)}},e.behavior.drag=function(){var X=Ce(Ve,"drag","dragstart","dragend"),se=null,Te=Ye(H,e.mouse,a,"mousemove","mouseup"),Oe=Ye(Ge,e.touch,G,"touchmove","touchend");function Ve(){this.on("mousedown.drag",Te).on("touchstart.drag",Oe)}function Ye(Pt,at,Wt,dr,pr){return function(){var Ur=this,zr=e.event.target.correspondingElement||e.event.target,gi=Ur.parentNode,xi=X.of(Ur,arguments),Wr=0,ii=Pt(),di=".drag"+(ii==null?"":"-"+ii),Li,Ti=e.select(Wt(zr)).on(dr+di,kn).on(pr+di,Bn),Qr=qr(zr),Pn=at(gi,ii);se?(Li=se.apply(Ur,arguments),Li=[Li.x-Pn[0],Li.y-Pn[1]]):Li=[0,0],xi({type:"dragstart"});function kn(){var na=at(gi,ii),Ea,Ia;na&&(Ea=na[0]-Pn[0],Ia=na[1]-Pn[1],Wr|=Ea|Ia,Pn=na,xi({type:"drag",x:na[0]+Li[0],y:na[1]+Li[1],dx:Ea,dy:Ia}))}function Bn(){at(gi,ii)&&(Ti.on(dr+di,null).on(pr+di,null),Qr(Wr),xi({type:"dragend"}))}}}return Ve.origin=function(Pt){return arguments.length?(se=Pt,Ve):se},e.rebind(Ve,X,"on")};function Ge(){return e.event.changedTouches[0].identifier}e.touches=function(X,se){return arguments.length<2&&(se=ke().touches),se?r(se).map(function(Te){var Oe=gt(X,Te);return Oe.identifier=Te.identifier,Oe}):[]};var Je=1e-6,We=Je*Je,et=Math.PI,xt=2*et,At=xt-Je,Kt=et/2,er=et/180,Sr=180/et;function Gr(X){return X>0?1:X<0?-1:0}function Ir(X,se,Te){return(se[0]-X[0])*(Te[1]-X[1])-(se[1]-X[1])*(Te[0]-X[0])}function Yr(X){return X>1?0:X<-1?et:Math.acos(X)}function _i(X){return X>1?Kt:X<-1?-Kt:Math.asin(X)}function Pi(X){return((X=Math.exp(X))-1/X)/2}function ai(X){return((X=Math.exp(X))+1/X)/2}function mi(X){return((X=Math.exp(2*X))-1)/(X+1)}function un(X){return(X=Math.sin(X/2))*X}var Fn=Math.SQRT2,An=2,Hn=4;e.interpolateZoom=function(X,se){var Te=X[0],Oe=X[1],Ve=X[2],Ye=se[0],Pt=se[1],at=se[2],Wt=Ye-Te,dr=Pt-Oe,pr=Wt*Wt+dr*dr,Ur,zr;if(pr<We)zr=Math.log(at/Ve)/Fn,Ur=function(Li){return[Te+Li*Wt,Oe+Li*dr,Ve*Math.exp(Fn*Li*zr)]};else{var gi=Math.sqrt(pr),xi=(at*at-Ve*Ve+Hn*pr)/(2*Ve*An*gi),Wr=(at*at-Ve*Ve-Hn*pr)/(2*at*An*gi),ii=Math.log(Math.sqrt(xi*xi+1)-xi),di=Math.log(Math.sqrt(Wr*Wr+1)-Wr);zr=(di-ii)/Fn,Ur=function(Li){var Ti=Li*zr,Qr=ai(ii),Pn=Ve/(An*gi)*(Qr*mi(Fn*Ti+ii)-Pi(ii));return[Te+Pn*Wt,Oe+Pn*dr,Ve*Qr/ai(Fn*Ti+ii)]}}return Ur.duration=zr*1e3,Ur},e.behavior.zoom=function(){var X={x:0,y:0,k:1},se,Te,Oe,Ve=[960,500],Ye=Qn,Pt=250,at=0,Wt="mousedown.zoom",dr="mousemove.zoom",pr="mouseup.zoom",Ur,zr="touchstart.zoom",gi,xi=Ce(Ti,"zoomstart","zoom","zoomend"),Wr,ii,di,Li;Kn||(Kn="onwheel"in n?(Vi=function(){return-e.event.deltaY*(e.event.deltaMode?120:1)},"wheel"):"onmousewheel"in n?(Vi=function(){return e.event.wheelDelta},"mousewheel"):(Vi=function(){return-e.event.detail},"MozMousePixelScroll"));function Ti(Un){Un.on(Wt,go).on(Kn+".zoom",Ms).on("dblclick.zoom",Xs).on(zr,Is)}Ti.event=function(Un){Un.each(function(){var ja=xi.of(this,arguments),Fo=X;Bo?e.select(this).transition().each("start.zoom",function(){X=this.__chart__||{x:0,y:0,k:1},Ia(ja)}).tween("zoom:zoom",function(){var Uo=Ve[0],$s=Ve[1],Sl=Te?Te[0]:Uo/2,bu=Te?Te[1]:$s/2,dl=e.interpolateZoom([(Sl-X.x)/X.k,(bu-X.y)/X.k,Uo/X.k],[(Sl-Fo.x)/Fo.k,(bu-Fo.y)/Fo.k,Uo/Fo.k]);return function(Sc){var Me=dl(Sc),bt=Uo/Me[2];this.__chart__=X={x:Sl-Me[0]*bt,y:bu-Me[1]*bt,k:bt},yo(ja)}}).each("interrupt.zoom",function(){Da(ja)}).each("end.zoom",function(){Da(ja)}):(this.__chart__=X,Ia(ja),yo(ja),Da(ja))})},Ti.translate=function(Un){return arguments.length?(X={x:+Un[0],y:+Un[1],k:X.k},Ea(),Ti):[X.x,X.y]},Ti.scale=function(Un){return arguments.length?(X={x:X.x,y:X.y,k:null},kn(+Un),Ea(),Ti):X.k},Ti.scaleExtent=function(Un){return arguments.length?(Ye=Un==null?Qn:[+Un[0],+Un[1]],Ti):Ye},Ti.center=function(Un){return arguments.length?(Oe=Un&&[+Un[0],+Un[1]],Ti):Oe},Ti.size=function(Un){return arguments.length?(Ve=Un&&[+Un[0],+Un[1]],Ti):Ve},Ti.duration=function(Un){return arguments.length?(Pt=+Un,Ti):Pt},Ti.x=function(Un){return arguments.length?(ii=Un,Wr=Un.copy(),X={x:0,y:0,k:1},Ti):ii},Ti.y=function(Un){return arguments.length?(Li=Un,di=Un.copy(),X={x:0,y:0,k:1},Ti):Li};function Qr(Un){return[(Un[0]-X.x)/X.k,(Un[1]-X.y)/X.k]}function Pn(Un){return[Un[0]*X.k+X.x,Un[1]*X.k+X.y]}function kn(Un){X.k=Math.max(Ye[0],Math.min(Ye[1],Un))}function Bn(Un,ja){ja=Pn(ja),X.x+=Un[0]-ja[0],X.y+=Un[1]-ja[1]}function na(Un,ja,Fo,Uo){Un.__chart__={x:X.x,y:X.y,k:X.k},kn(Math.pow(2,Uo)),Bn(Te=ja,Fo),Un=e.select(Un),Pt>0&&(Un=Un.transition().duration(Pt)),Un.call(Ti.event)}function Ea(){ii&&ii.domain(Wr.range().map(function(Un){return(Un-X.x)/X.k}).map(Wr.invert)),Li&&Li.domain(di.range().map(function(Un){return(Un-X.y)/X.k}).map(di.invert))}function Ia(Un){at++||Un({type:"zoomstart"})}function yo(Un){Ea(),Un({type:"zoom",scale:X.k,translate:[X.x,X.y]})}function Da(Un){--at||(Un({type:"zoomend"}),Te=null)}function go(){var Un=this,ja=xi.of(Un,arguments),Fo=0,Uo=e.select(a(Un)).on(dr,bu).on(pr,dl),$s=Qr(e.mouse(Un)),Sl=qr(Un);fa.call(Un),Ia(ja);function bu(){Fo=1,Bn(e.mouse(Un),$s),yo(ja)}function dl(){Uo.on(dr,null).on(pr,null),Sl(Fo),Da(ja)}}function Is(){var Un=this,ja=xi.of(Un,arguments),Fo={},Uo=0,$s,Sl=".zoom-"+e.event.changedTouches[0].identifier,bu="touchmove"+Sl,dl="touchend"+Sl,Sc=[],Me=e.select(Un),bt=qr(Un);Lr(),Ia(ja),Me.on(Wt,null).on(zr,Lr);function Ot(){var Nr=e.touches(Un);return $s=X.k,Nr.forEach(function(vi){vi.identifier in Fo&&(Fo[vi.identifier]=Qr(vi))}),Nr}function Lr(){var Nr=e.event.target;e.select(Nr).on(bu,Vr).on(dl,Or),Sc.push(Nr);for(var vi=e.event.changedTouches,Ni=0,qi=vi.length;Ni<qi;++Ni)Fo[vi[Ni].identifier]=null;var Si=Ot(),Vn=Date.now();if(Si.length===1){if(Vn-gi<500){var Qi=Si[0];na(Un,Qi,Fo[Qi.identifier],Math.floor(Math.log(X.k)/Math.LN2)+1),_e()}gi=Vn}else if(Si.length>1){var Qi=Si[0],ji=Si[1],oi=Qi[0]-ji[0],Tr=Qi[1]-ji[1];Uo=oi*oi+Tr*Tr}}function Vr(){var Nr=e.touches(Un),vi,Ni,qi,Si;fa.call(Un);for(var Vn=0,Qi=Nr.length;Vn<Qi;++Vn,Si=null)if(qi=Nr[Vn],Si=Fo[qi.identifier]){if(Ni)break;vi=qi,Ni=Si}if(Si){var ji=(ji=qi[0]-vi[0])*ji+(ji=qi[1]-vi[1])*ji,oi=Uo&&Math.sqrt(ji/Uo);vi=[(vi[0]+qi[0])/2,(vi[1]+qi[1])/2],Ni=[(Ni[0]+Si[0])/2,(Ni[1]+Si[1])/2],kn(oi*$s)}gi=null,Bn(vi,Ni),yo(ja)}function Or(){if(e.event.touches.length){for(var Nr=e.event.changedTouches,vi=0,Ni=Nr.length;vi<Ni;++vi)delete Fo[Nr[vi].identifier];for(var qi in Fo)return void Ot()}e.selectAll(Sc).on(Sl,null),Me.on(Wt,go).on(zr,Is),bt(),Da(ja)}}function Ms(){var Un=xi.of(this,arguments);Ur?clearTimeout(Ur):(fa.call(this),se=Qr(Te=Oe||e.mouse(this)),Ia(Un)),Ur=setTimeout(function(){Ur=null,Da(Un)},50),_e(),kn(Math.pow(2,Vi()*.002)*X.k),Bn(Te,se),yo(Un)}function Xs(){var Un=e.mouse(this),ja=Math.log(X.k)/Math.LN2;na(this,Un,Qr(Un),e.event.shiftKey?Math.ceil(ja)-1:Math.floor(ja)+1)}return e.rebind(Ti,xi,"on")};var Qn=[0,1/0],Vi,Kn;e.color=Jn;function Jn(){}Jn.prototype.toString=function(){return this.rgb()+""},e.hsl=Gt;function Gt(X,se,Te){return this instanceof Gt?(this.h=+X,this.s=+se,void(this.l=+Te)):arguments.length<2?X instanceof Gt?new Gt(X.h,X.s,X.l):Ha(""+X,vo,Gt):new Gt(X,se,Te)}var wt=Gt.prototype=new Jn;wt.brighter=function(X){return X=Math.pow(.7,arguments.length?X:1),new Gt(this.h,this.s,this.l/X)},wt.darker=function(X){return X=Math.pow(.7,arguments.length?X:1),new Gt(this.h,this.s,X*this.l)},wt.rgb=function(){return rr(this.h,this.s,this.l)};function rr(X,se,Te){var Oe,Ve;X=isNaN(X)?0:(X%=360)<0?X+360:X,se=isNaN(se)||se<0?0:se>1?1:se,Te=Te<0?0:Te>1?1:Te,Ve=Te<=.5?Te*(1+se):Te+se-Te*se,Oe=2*Te-Ve;function Ye(at){return at>360?at-=360:at<0&&(at+=360),at<60?Oe+(Ve-Oe)*at/60:at<180?Ve:at<240?Oe+(Ve-Oe)*(240-at)/60:Oe}function Pt(at){return Math.round(Ye(at)*255)}return new Wa(Pt(X+120),Pt(X),Pt(X-120))}e.hcl=ir;function ir(X,se,Te){return this instanceof ir?(this.h=+X,this.c=+se,void(this.l=+Te)):arguments.length<2?X instanceof ir?new ir(X.h,X.c,X.l):X instanceof ti?Mn(X.l,X.a,X.b):Mn((X=Gn((X=e.rgb(X)).r,X.g,X.b)).l,X.a,X.b):new ir(X,se,Te)}var wr=ir.prototype=new Jn;wr.brighter=function(X){return new ir(this.h,this.c,Math.min(100,this.l+$r*(arguments.length?X:1)))},wr.darker=function(X){return new ir(this.h,this.c,Math.max(0,this.l-$r*(arguments.length?X:1)))},wr.rgb=function(){return Xr(this.h,this.c,this.l).rgb()};function Xr(X,se,Te){return isNaN(X)&&(X=0),isNaN(se)&&(se=0),new ti(Te,Math.cos(X*=er)*se,Math.sin(X)*se)}e.lab=ti;function ti(X,se,Te){return this instanceof ti?(this.l=+X,this.a=+se,void(this.b=+Te)):arguments.length<2?X instanceof ti?new ti(X.l,X.a,X.b):X instanceof ir?Xr(X.h,X.c,X.l):Gn((X=Wa(X)).r,X.g,X.b):new ti(X,se,Te)}var $r=18,Ri=.95047,Zi=1,en=1.08883,fn=ti.prototype=new Jn;fn.brighter=function(X){return new ti(Math.min(100,this.l+$r*(arguments.length?X:1)),this.a,this.b)},fn.darker=function(X){return new ti(Math.max(0,this.l-$r*(arguments.length?X:1)),this.a,this.b)},fn.rgb=function(){return yn(this.l,this.a,this.b)};function yn(X,se,Te){var Oe=(X+16)/116,Ve=Oe+se/500,Ye=Oe-Te/200;return Ve=Ba(Ve)*Ri,Oe=Ba(Oe)*Zi,Ye=Ba(Ye)*en,new Wa(ma(3.2404542*Ve-1.5371385*Oe-.4985314*Ye),ma(-.969266*Ve+1.8760108*Oe+.041556*Ye),ma(.0556434*Ve-.2040259*Oe+1.0572252*Ye))}function Mn(X,se,Te){return X>0?new ir(Math.atan2(Te,se)*Sr,Math.sqrt(se*se+Te*Te),X):new ir(NaN,NaN,X)}function Ba(X){return X>.206893034?X*X*X:(X-4/29)/7.787037}function ua(X){return X>.008856?Math.pow(X,1/3):7.787037*X+4/29}function ma(X){return Math.round(255*(X<=.00304?12.92*X:1.055*Math.pow(X,1/2.4)-.055))}e.rgb=Wa;function Wa(X,se,Te){return this instanceof Wa?(this.r=~~X,this.g=~~se,void(this.b=~~Te)):arguments.length<2?X instanceof Wa?new Wa(X.r,X.g,X.b):Ha(""+X,Wa,rr):new Wa(X,se,Te)}function Fa(X){return new Wa(X>>16,X>>8&255,X&255)}function Xo(X){return Fa(X)+""}var da=Wa.prototype=new Jn;da.brighter=function(X){X=Math.pow(.7,arguments.length?X:1);var se=this.r,Te=this.g,Oe=this.b,Ve=30;return!se&&!Te&&!Oe?new Wa(Ve,Ve,Ve):(se&&se<Ve&&(se=Ve),Te&&Te<Ve&&(Te=Ve),Oe&&Oe<Ve&&(Oe=Ve),new Wa(Math.min(255,se/X),Math.min(255,Te/X),Math.min(255,Oe/X)))},da.darker=function(X){return X=Math.pow(.7,arguments.length?X:1),new Wa(X*this.r,X*this.g,X*this.b)},da.hsl=function(){return vo(this.r,this.g,this.b)},da.toString=function(){return"#"+jn(this.r)+jn(this.g)+jn(this.b)};function jn(X){return X<16?"0"+Math.max(0,X).toString(16):Math.min(255,X).toString(16)}function Ha(X,se,Te){var Oe=0,Ve=0,Ye=0,Pt,at,Wt;if(Pt=/([a-z]+)\((.*)\)/.exec(X=X.toLowerCase()),Pt)switch(at=Pt[2].split(","),Pt[1]){case"hsl":return Te(parseFloat(at[0]),parseFloat(at[1])/100,parseFloat(at[2])/100);case"rgb":return se(Ar(at[0]),Ar(at[1]),Ar(at[2]))}return(Wt=Jr.get(X))?se(Wt.r,Wt.g,Wt.b):(X!=null&&X.charAt(0)==="#"&&!isNaN(Wt=parseInt(X.slice(1),16))&&(X.length===4?(Oe=(Wt&3840)>>4,Oe=Oe>>4|Oe,Ve=Wt&240,Ve=Ve>>4|Ve,Ye=Wt&15,Ye=Ye<<4|Ye):X.length===7&&(Oe=(Wt&16711680)>>16,Ve=(Wt&65280)>>8,Ye=Wt&255)),se(Oe,Ve,Ye))}function vo(X,se,Te){var Oe=Math.min(X/=255,se/=255,Te/=255),Ve=Math.max(X,se,Te),Ye=Ve-Oe,Pt,at,Wt=(Ve+Oe)/2;return Ye?(at=Wt<.5?Ye/(Ve+Oe):Ye/(2-Ve-Oe),X==Ve?Pt=(se-Te)/Ye+(se<Te?6:0):se==Ve?Pt=(Te-X)/Ye+2:Pt=(X-se)/Ye+4,Pt*=60):(Pt=NaN,at=Wt>0&&Wt<1?0:Pt),new Gt(Pt,at,Wt)}function Gn(X,se,Te){X=Ct(X),se=Ct(se),Te=Ct(Te);var Oe=ua((.4124564*X+.3575761*se+.1804375*Te)/Ri),Ve=ua((.2126729*X+.7151522*se+.072175*Te)/Zi),Ye=ua((.0193339*X+.119192*se+.9503041*Te)/en);return ti(116*Ve-16,500*(Oe-Ve),200*(Ve-Ye))}function Ct(X){return(X/=255)<=.04045?X/12.92:Math.pow((X+.055)/1.055,2.4)}function Ar(X){var se=parseFloat(X);return X.charAt(X.length-1)==="%"?Math.round(se*2.55):se}var Jr=e.map({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});Jr.forEach(function(X,se){Jr.set(X,Fa(se))});function hi(X){return typeof X=="function"?X:function(){return X}}e.functor=hi,e.xhr=hn(G);function hn(X){return function(se,Te,Oe){return arguments.length===2&&typeof Te=="function"&&(Oe=Te,Te=null),Sn(se,Te,X,Oe)}}function Sn(X,se,Te,Oe){var Ve={},Ye=e.dispatch("beforesend","progress","load","error"),Pt={},at=new XMLHttpRequest,Wt=null;self.XDomainRequest&&!("withCredentials"in at)&&/^(http(s)?:)?\/\//.test(X)&&(at=new XDomainRequest),"onload"in at?at.onload=at.onerror=dr:at.onreadystatechange=function(){at.readyState>3&&dr()};function dr(){var pr=at.status,Ur;if(!pr&&ki(at)||pr>=200&&pr<300||pr===304){try{Ur=Te.call(Ve,at)}catch(zr){Ye.error.call(Ve,zr);return}Ye.load.call(Ve,Ur)}else Ye.error.call(Ve,at)}return at.onprogress=function(pr){var Ur=e.event;e.event=pr;try{Ye.progress.call(Ve,at)}finally{e.event=Ur}},Ve.header=function(pr,Ur){return pr=(pr+"").toLowerCase(),arguments.length<2?Pt[pr]:(Ur==null?delete Pt[pr]:Pt[pr]=Ur+"",Ve)},Ve.mimeType=function(pr){return arguments.length?(se=pr==null?null:pr+"",Ve):se},Ve.responseType=function(pr){return arguments.length?(Wt=pr,Ve):Wt},Ve.response=function(pr){return Te=pr,Ve},["get","post"].forEach(function(pr){Ve[pr]=function(){return Ve.send.apply(Ve,[pr].concat(r(arguments)))}}),Ve.send=function(pr,Ur,zr){if(arguments.length===2&&typeof Ur=="function"&&(zr=Ur,Ur=null),at.open(pr,X,!0),se!=null&&!("accept"in Pt)&&(Pt.accept=se+",*/*"),at.setRequestHeader)for(var gi in Pt)at.setRequestHeader(gi,Pt[gi]);return se!=null&&at.overrideMimeType&&at.overrideMimeType(se),Wt!=null&&(at.responseType=Wt),zr!=null&&Ve.on("error",zr).on("load",function(xi){zr(null,xi)}),Ye.beforesend.call(Ve,at),at.send(Ur==null?null:Ur),Ve},Ve.abort=function(){return at.abort(),Ve},e.rebind(Ve,Ye,"on"),Oe==null?Ve:Ve.get(En(Oe))}function En(X){return X.length===1?function(se,Te){X(se==null?Te:null)}:X}function ki(X){var se=X.responseType;return se&&se!=="text"?X.response:X.responseText}e.dsv=function(X,se){var Te=new RegExp('["'+X+`
]`),Oe=X.charCodeAt(0);function Ve(dr,pr,Ur){arguments.length<3&&(Ur=pr,pr=null);var zr=Sn(dr,se,pr==null?Ye:Pt(pr),Ur);return zr.row=function(gi){return arguments.length?zr.response((pr=gi)==null?Ye:Pt(gi)):pr},zr}function Ye(dr){return Ve.parse(dr.responseText)}function Pt(dr){return function(pr){return Ve.parse(pr.responseText,dr)}}Ve.parse=function(dr,pr){var Ur;return Ve.parseRows(dr,function(zr,gi){if(Ur)return Ur(zr,gi-1);var xi=function(Wr){for(var ii={},di=zr.length,Li=0;Li<di;++Li)ii[zr[Li]]=Wr[Li];return ii};Ur=pr?function(Wr,ii){return pr(xi(Wr),ii)}:xi})},Ve.parseRows=function(dr,pr){var Ur={},zr={},gi=[],xi=dr.length,Wr=0,ii=0,di,Li;function Ti(){if(Wr>=xi)return zr;if(Li)return Li=!1,Ur;var Pn=Wr;if(dr.charCodeAt(Pn)===34){for(var kn=Pn;kn++<xi;)if(dr.charCodeAt(kn)===34){if(dr.charCodeAt(kn+1)!==34)break;++kn}Wr=kn+2;var Bn=dr.charCodeAt(kn+1);return Bn===13?(Li=!0,dr.charCodeAt(kn+2)===10&&++Wr):Bn===10&&(Li=!0),dr.slice(Pn+1,kn).replace(/""/g,'"')}for(;Wr<xi;){var Bn=dr.charCodeAt(Wr++),na=1;if(Bn===10)Li=!0;else if(Bn===13)Li=!0,dr.charCodeAt(Wr)===10&&(++Wr,++na);else if(Bn!==Oe)continue;return dr.slice(Pn,Wr-na)}return dr.slice(Pn)}for(;(di=Ti())!==zr;){for(var Qr=[];di!==Ur&&di!==zr;)Qr.push(di),di=Ti();pr&&(Qr=pr(Qr,ii++))==null||gi.push(Qr)}return gi},Ve.format=function(dr){if(Array.isArray(dr[0]))return Ve.formatRows(dr);var pr=new U,Ur=[];return dr.forEach(function(zr){for(var gi in zr)pr.has(gi)||Ur.push(pr.add(gi))}),[Ur.map(Wt).join(X)].concat(dr.map(function(zr){return Ur.map(function(gi){return Wt(zr[gi])}).join(X)})).join(`
`)},Ve.formatRows=function(dr){return dr.map(at).join(`
`)};function at(dr){return dr.map(Wt).join(X)}function Wt(dr){return Te.test(dr)?'"'+dr.replace(/\"/g,'""')+'"':dr}return Ve},e.csv=e.dsv(",","text/csv"),e.tsv=e.dsv(" ","text/tab-separated-values");var _n,ya,ea,Ma,_o=this[j(this,"requestAnimationFrame")]||function(X){setTimeout(X,17)};e.timer=function(){No.apply(this,arguments)};function No(X,se,Te){var Oe=arguments.length;Oe<2&&(se=0),Oe<3&&(Te=Date.now());var Ve=Te+se,Ye={c:X,t:Ve,n:null};return ya?ya.n=Ye:_n=Ye,ya=Ye,ea||(Ma=clearTimeout(Ma),ea=1,_o(po)),Ye}function po(){var X=Lo(),se=ko()-X;se>24?(isFinite(se)&&(clearTimeout(Ma),Ma=setTimeout(po,se)),ea=0):(ea=1,_o(po))}e.timer.flush=function(){Lo(),ko()};function Lo(){for(var X=Date.now(),se=_n;se;)X>=se.t&&se.c(X-se.t)&&(se.c=null),se=se.n;return X}function ko(){for(var X,se=_n,Te=1/0;se;)se.c?(se.t<Te&&(Te=se.t),se=(X=se).n):se=X?X.n=se.n:_n=se.n;return ya=X,Te}e.round=function(X,se){return se?Math.round(X*(se=Math.pow(10,se)))/se:Math.round(X)},e.geom={};function Ds(X){return X[0]}function Fs(X){return X[1]}e.geom.hull=function(X){var se=Ds,Te=Fs;if(arguments.length)return Oe(X);function Oe(Ve){if(Ve.length<3)return[];var Ye=hi(se),Pt=hi(Te),at,Wt=Ve.length,dr=[],pr=[];for(at=0;at<Wt;at++)dr.push([+Ye.call(this,Ve[at],at),+Pt.call(this,Ve[at],at),at]);for(dr.sort(ul),at=0;at<Wt;at++)pr.push([dr[at][0],-dr[at][1]]);var Ur=ll(dr),zr=ll(pr),gi=zr[0]===Ur[0],xi=zr[zr.length-1]===Ur[Ur.length-1],Wr=[];for(at=Ur.length-1;at>=0;--at)Wr.push(Ve[dr[Ur[at]][2]]);for(at=+gi;at<zr.length-xi;++at)Wr.push(Ve[dr[zr[at]][2]]);return Wr}return Oe.x=function(Ve){return arguments.length?(se=Ve,Oe):se},Oe.y=function(Ve){return arguments.length?(Te=Ve,Oe):Te},Oe};function ll(X){for(var se=X.length,Te=[0,1],Oe=2,Ve=2;Ve<se;Ve++){for(;Oe>1&&Ir(X[Te[Oe-2]],X[Te[Oe-1]],X[Ve])<=0;)--Oe;Te[Oe++]=Ve}return Te.slice(0,Oe)}function ul(X,se){return X[0]-se[0]||X[1]-se[1]}e.geom.polygon=function(X){return ie(X,zl),X};var zl=e.geom.polygon.prototype=[];zl.area=function(){for(var X=-1,se=this.length,Te,Oe=this[se-1],Ve=0;++X<se;)Te=Oe,Oe=this[X],Ve+=Te[1]*Oe[0]-Te[0]*Oe[1];return Ve*.5},zl.centroid=function(X){var se=-1,Te=this.length,Oe=0,Ve=0,Ye,Pt=this[Te-1],at;for(arguments.length||(X=-1/(6*this.area()));++se<Te;)Ye=Pt,Pt=this[se],at=Ye[0]*Pt[1]-Pt[0]*Ye[1],Oe+=(Ye[0]+Pt[0])*at,Ve+=(Ye[1]+Pt[1])*at;return[Oe*X,Ve*X]},zl.clip=function(X){for(var se,Te=As(X),Oe=-1,Ve=this.length-As(this),Ye,Pt,at=this[Ve-1],Wt,dr,pr;++Oe<Ve;){for(se=X.slice(),X.length=0,Wt=this[Oe],dr=se[(Pt=se.length-Te)-1],Ye=-1;++Ye<Pt;)pr=se[Ye],us(pr,at,Wt)?(us(dr,at,Wt)||X.push(il(dr,pr,at,Wt)),X.push(pr)):us(dr,at,Wt)&&X.push(il(dr,pr,at,Wt)),dr=pr;Te&&X.push(X[0]),at=Wt}return X};function us(X,se,Te){return(Te[0]-se[0])*(X[1]-se[1])<(Te[1]-se[1])*(X[0]-se[0])}function il(X,se,Te,Oe){var Ve=X[0],Ye=Te[0],Pt=se[0]-Ve,at=Oe[0]-Ye,Wt=X[1],dr=Te[1],pr=se[1]-Wt,Ur=Oe[1]-dr,zr=(at*(Wt-dr)-Ur*(Ve-Ye))/(Ur*Pt-at*pr);return[Ve+zr*Pt,Wt+zr*pr]}function As(X){var se=X[0],Te=X[X.length-1];return!(se[0]-Te[0]||se[1]-Te[1])}var cl,Ks,zs,Io=[],ls,Yl,Su=[];function nc(){qs(this),this.edge=this.site=this.circle=null}function bs(X){var se=Io.pop()||new nc;return se.site=X,se}function Rn(X){qo(X),zs.remove(X),Io.push(X),qs(X)}function _a(X){var se=X.circle,Te=se.x,Oe=se.cy,Ve={x:Te,y:Oe},Ye=X.P,Pt=X.N,at=[X];Rn(X);for(var Wt=Ye;Wt.circle&&p(Te-Wt.circle.x)<Je&&p(Oe-Wt.circle.cy)<Je;)Ye=Wt.P,at.unshift(Wt),Rn(Wt),Wt=Ye;at.unshift(Wt),qo(Wt);for(var dr=Pt;dr.circle&&p(Te-dr.circle.x)<Je&&p(Oe-dr.circle.cy)<Je;)Pt=dr.N,at.push(dr),Rn(dr),dr=Pt;at.push(dr),qo(dr);var pr=at.length,Ur;for(Ur=1;Ur<pr;++Ur)dr=at[Ur],Wt=at[Ur-1],pl(dr.edge,Wt.site,dr.site,Ve);Wt=at[0],dr=at[pr-1],dr.edge=rf(Wt.site,dr.site,null,Ve),oa(Wt),oa(dr)}function Vu(X){for(var se=X.x,Te=X.y,Oe,Ve,Ye,Pt,at=zs._;at;)if(Ye=ql(at,Te)-se,Ye>Je)at=at.L;else if(Pt=se-xo(at,Te),Pt>Je){if(!at.R){Oe=at;break}at=at.R}else{Ye>-Je?(Oe=at.P,Ve=at):Pt>-Je?(Oe=at,Ve=at.N):Oe=Ve=at;break}var Wt=bs(X);if(zs.insert(Oe,Wt),!(!Oe&&!Ve)){if(Oe===Ve){qo(Oe),Ve=bs(Oe.site),zs.insert(Wt,Ve),Wt.edge=Ve.edge=rf(Oe.site,Wt.site),oa(Oe),oa(Ve);return}if(!Ve){Wt.edge=rf(Oe.site,Wt.site);return}qo(Oe),qo(Ve);var dr=Oe.site,pr=dr.x,Ur=dr.y,zr=X.x-pr,gi=X.y-Ur,xi=Ve.site,Wr=xi.x-pr,ii=xi.y-Ur,di=2*(zr*ii-gi*Wr),Li=zr*zr+gi*gi,Ti=Wr*Wr+ii*ii,Qr={x:(ii*Li-gi*Ti)/di+pr,y:(zr*Ti-Wr*Li)/di+Ur};pl(Ve.edge,dr,xi,Qr),Wt.edge=rf(dr,X,null,Qr),Ve.edge=rf(X,xi,null,Qr),oa(Oe),oa(Ve)}}function ql(X,se){var Te=X.site,Oe=Te.x,Ve=Te.y,Ye=Ve-se;if(!Ye)return Oe;var Pt=X.P;if(!Pt)return-1/0;Te=Pt.site;var at=Te.x,Wt=Te.y,dr=Wt-se;if(!dr)return at;var pr=at-Oe,Ur=1/Ye-1/dr,zr=pr/dr;return Ur?(-zr+Math.sqrt(zr*zr-2*Ur*(pr*pr/(-2*dr)-Wt+dr/2+Ve-Ye/2)))/Ur+Oe:(Oe+at)/2}function xo(X,se){var Te=X.N;if(Te)return ql(Te,se);var Oe=X.site;return Oe.y===se?Oe.x:1/0}function Kl(X){this.site=X,this.edges=[]}Kl.prototype.prepare=function(){for(var X=this.edges,se=X.length,Te;se--;)Te=X[se].edge,(!Te.b||!Te.a)&&X.splice(se,1);return X.sort(Hl),X.length};function Ns(X){for(var se=X[0][0],Te=X[1][0],Oe=X[0][1],Ve=X[1][1],Ye,Pt,at,Wt,dr=Ks,pr=dr.length,Ur,zr,gi,xi,Wr,ii;pr--;)if(Ur=dr[pr],!(!Ur||!Ur.prepare()))for(gi=Ur.edges,xi=gi.length,zr=0;zr<xi;)ii=gi[zr].end(),at=ii.x,Wt=ii.y,Wr=gi[++zr%xi].start(),Ye=Wr.x,Pt=Wr.y,(p(at-Ye)>Je||p(Wt-Pt)>Je)&&(gi.splice(zr,0,new Zc(Vf(Ur.site,ii,p(at-se)<Je&&Ve-Wt>Je?{x:se,y:p(Ye-se)<Je?Pt:Ve}:p(Wt-Ve)<Je&&Te-at>Je?{x:p(Pt-Ve)<Je?Ye:Te,y:Ve}:p(at-Te)<Je&&Wt-Oe>Je?{x:Te,y:p(Ye-Te)<Je?Pt:Oe}:p(Wt-Oe)<Je&&at-se>Je?{x:p(Pt-Oe)<Je?Ye:se,y:Oe}:null),Ur.site,null)),++xi)}function Hl(X,se){return se.angle-X.angle}function ac(){qs(this),this.x=this.y=this.arc=this.site=this.cy=null}function oa(X){var se=X.P,Te=X.N;if(!(!se||!Te)){var Oe=se.site,Ve=X.site,Ye=Te.site;if(Oe!==Ye){var Pt=Ve.x,at=Ve.y,Wt=Oe.x-Pt,dr=Oe.y-at,pr=Ye.x-Pt,ii=Ye.y-at,Ur=2*(Wt*ii-dr*pr);if(!(Ur>=-We)){var zr=Wt*Wt+dr*dr,gi=pr*pr+ii*ii,xi=(ii*zr-dr*gi)/Ur,Wr=(Wt*gi-pr*zr)/Ur,ii=Wr+at,di=Su.pop()||new ac;di.arc=X,di.site=Ve,di.x=xi+Pt,di.y=ii+Math.sqrt(xi*xi+Wr*Wr),di.cy=ii,X.circle=di;for(var Li=null,Ti=Yl._;Ti;)if(di.y<Ti.y||di.y===Ti.y&&di.x<=Ti.x)if(Ti.L)Ti=Ti.L;else{Li=Ti.P;break}else if(Ti.R)Ti=Ti.R;else{Li=Ti;break}Yl.insert(Li,di),Li||(ls=di)}}}}function qo(X){var se=X.circle;se&&(se.P||(ls=se.N),Yl.remove(se),Su.push(se),qs(se),X.circle=null)}function Oo(X,se,Te,Oe){return function(Ve){var Ye=Ve.a,Pt=Ve.b,at=Ye.x,Wt=Ye.y,dr=Pt.x,pr=Pt.y,Ur=0,zr=1,gi=dr-at,xi=pr-Wt,Wr;if(Wr=X-at,!(!gi&&Wr>0)){if(Wr/=gi,gi<0){if(Wr<Ur)return;Wr<zr&&(zr=Wr)}else if(gi>0){if(Wr>zr)r