Skip to content

Instantly share code, notes, and snippets.

@espinielli
Last active August 29, 2015 14:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save espinielli/e7625ce617e4d9c87cae to your computer and use it in GitHub Desktop.
Save espinielli/e7625ce617e4d9c87cae to your computer and use it in GitHub Desktop.
Bullet charts in dc.js

This is an example of bullet chars in dc.js. A pull request for inclusion of the bullet chart has been submitted, in the meantime I use a special built of dc.js.

See my post about it.

!function(r){function n(r){return r}function t(r,n){for(var t=0,e=n.length,u=Array(e);e>t;++t)u[t]=r[n[t]];return u}function e(r){function n(n,t,e,u){for(;u>e;){var f=e+u>>>1;r(n[f])<t?e=f+1:u=f}return e}function t(n,t,e,u){for(;u>e;){var f=e+u>>>1;t<r(n[f])?u=f:e=f+1}return e}return t.right=t,t.left=n,t}function u(r){function n(r,n,t){for(var u=t-n,f=(u>>>1)+1;--f>0;)e(r,f,u,n);return r}function t(r,n,t){for(var u,f=t-n;--f>0;)u=r[n],r[n]=r[n+f],r[n+f]=u,e(r,1,f,n);return r}function e(n,t,e,u){for(var f,o=n[--u+t],i=r(o);(f=t<<1)<=e&&(e>f&&r(n[u+f])>r(n[u+f+1])&&f++,!(i<=r(n[u+f])));)n[u+t]=n[u+f],t=f;n[u+t]=o}return n.sort=t,n}function f(r){function n(n,e,u,f){var o,i,a,c,l=Array(f=Math.min(u-e,f));for(i=0;f>i;++i)l[i]=n[e++];if(t(l,0,f),u>e){o=r(l[0]);do(a=r(c=n[e])>o)&&(l[0]=c,o=r(t(l,0,f)[0]));while(++e<u)}return l}var t=u(r);return n}function o(r){function n(n,t,e){for(var u=t+1;e>u;++u){for(var f=u,o=n[u],i=r(o);f>t&&r(n[f-1])>i;--f)n[f]=n[f-1];n[f]=o}return n}return n}function i(r){function n(r,n,u){return(N>u-n?e:t)(r,n,u)}function t(t,e,u){var f,o=0|(u-e)/6,i=e+o,a=u-1-o,c=e+u-1>>1,l=c-o,v=c+o,s=t[i],h=r(s),d=t[l],p=r(d),g=t[c],y=r(g),m=t[v],x=r(m),b=t[a],A=r(b);h>p&&(f=s,s=d,d=f,f=h,h=p,p=f),x>A&&(f=m,m=b,b=f,f=x,x=A,A=f),h>y&&(f=s,s=g,g=f,f=h,h=y,y=f),p>y&&(f=d,d=g,g=f,f=p,p=y,y=f),h>x&&(f=s,s=m,m=f,f=h,h=x,x=f),y>x&&(f=g,g=m,m=f,f=y,y=x,x=f),p>A&&(f=d,d=b,b=f,f=p,p=A,A=f),p>y&&(f=d,d=g,g=f,f=p,p=y,y=f),x>A&&(f=m,m=b,b=f,f=x,x=A,A=f);var k=d,O=p,w=m,E=x;t[i]=s,t[l]=t[e],t[c]=g,t[v]=t[u-1],t[a]=b;var M=e+1,U=u-2,z=E>=O&&O>=E;if(z)for(var N=M;U>=N;++N){var C=t[N],S=r(C);if(O>S)N!==M&&(t[N]=t[M],t[M]=C),++M;else if(S>O)for(;;){var q=r(t[U]);{if(!(q>O)){if(O>q){t[N]=t[M],t[M++]=t[U],t[U--]=C;break}t[N]=t[U],t[U--]=C;break}U--}}}else for(var N=M;U>=N;N++){var C=t[N],S=r(C);if(O>S)N!==M&&(t[N]=t[M],t[M]=C),++M;else if(S>E)for(;;){var q=r(t[U]);{if(!(q>E)){O>q?(t[N]=t[M],t[M++]=t[U],t[U--]=C):(t[N]=t[U],t[U--]=C);break}if(U--,N>U)break}}}if(t[e]=t[M-1],t[M-1]=k,t[u-1]=t[U+1],t[U+1]=w,n(t,e,M-1),n(t,U+2,u),z)return t;if(i>M&&U>a){for(var F,q;(F=r(t[M]))<=O&&F>=O;)++M;for(;(q=r(t[U]))<=E&&q>=E;)--U;for(var N=M;U>=N;N++){var C=t[N],S=r(C);if(O>=S&&S>=O)N!==M&&(t[N]=t[M],t[M]=C),M++;else if(E>=S&&S>=E)for(;;){var q=r(t[U]);{if(!(E>=q&&q>=E)){O>q?(t[N]=t[M],t[M++]=t[U],t[U--]=C):(t[N]=t[U],t[U--]=C);break}if(U--,N>U)break}}}}return n(t,M,U+1)}var e=o(r);return n}function a(r){for(var n=Array(r),t=-1;++t<r;)n[t]=0;return n}function c(r,n){for(var t=r.length;n>t;)r[t++]=0;return r}function l(r,n){if(n>32)throw Error("invalid array width!");return r}function v(r,n){return function(t){var e=t.length;return[r.left(t,n,0,e),r.right(t,n,0,e)]}}function s(r,n){var t=n[0],e=n[1];return function(n){var u=n.length;return[r.left(n,t,0,u),r.left(n,e,0,u)]}}function h(r){return[0,r.length]}function d(){return null}function p(){return 0}function g(r){return r+1}function y(r){return r-1}function m(r){return function(n,t){return n+ +r(t)}}function x(r){return function(n,t){return n-r(t)}}function b(){function r(r){var n=E,t=r.length;return t&&(b=b.concat(r),z=F(z,E+=t),S.forEach(function(e){e(r,n,t)})),l}function e(){for(var r=A(E,E),n=[],t=0,e=0;E>t;++t)z[t]?r[t]=e++:n.push(t);N.forEach(function(r){r(0,[],n)}),q.forEach(function(n){n(r)});for(var u,t=0,e=0;E>t;++t)(u=z[t])&&(t!==e&&(z[e]=u,b[e]=b[t]),++e);for(b.length=e;E>e;)z[--E]=0}function o(r){function e(n,e,u){T=n.map(r),V=$(k(u),0,u),T=t(T,V);var f,o=_(T),i=o[0],a=o[1];if(W)for(f=0;u>f;++f)W(T[f],f)||(z[V[f]+e]|=Y);else{for(f=0;i>f;++f)z[V[f]+e]|=Y;for(f=a;u>f;++f)z[V[f]+e]|=Y}if(!e)return P=T,Q=V,tn=i,en=a,void 0;var c=P,l=Q,v=0,s=0;for(P=Array(E),Q=A(E,E),f=0;e>v&&u>s;++f)c[v]<T[s]?(P[f]=c[v],Q[f]=l[v++]):(P[f]=T[s],Q[f]=V[s++]+e);for(;e>v;++v,++f)P[f]=c[v],Q[f]=l[v];for(;u>s;++s,++f)P[f]=T[s],Q[f]=V[s]+e;o=_(P),tn=o[0],en=o[1]}function o(r,n,t){rn.forEach(function(r){r(T,V,n,t)}),T=V=null}function a(r){for(var n,t=0,e=0;E>t;++t)z[n=Q[t]]&&(t!==e&&(P[e]=P[t]),Q[e]=r[n],++e);for(P.length=e;E>e;)Q[e++]=0;var u=_(P);tn=u[0],en=u[1]}function c(r){var n=r[0],t=r[1];if(W)return W=null,G(function(r,e){return e>=n&&t>e}),tn=n,en=t,X;var e,u,f,o=[],i=[];if(tn>n)for(e=n,u=Math.min(tn,t);u>e;++e)z[f=Q[e]]^=Y,o.push(f);else if(n>tn)for(e=tn,u=Math.min(n,en);u>e;++e)z[f=Q[e]]^=Y,i.push(f);if(t>en)for(e=Math.max(n,en),u=t;u>e;++e)z[f=Q[e]]^=Y,o.push(f);else if(en>t)for(e=Math.max(tn,t),u=en;u>e;++e)z[f=Q[e]]^=Y,i.push(f);return tn=n,en=t,N.forEach(function(r){r(Y,o,i)}),X}function l(r){return null==r?B():Array.isArray(r)?j(r):"function"==typeof r?D(r):C(r)}function C(r){return c((_=v(w,r))(P))}function j(r){return c((_=s(w,r))(P))}function B(){return c((_=h)(P))}function D(r){return _=h,G(W=r),tn=0,en=E,X}function G(r){var n,t,e,u=[],f=[];for(n=0;E>n;++n)!(z[t=Q[n]]&Y)^!!(e=r(P[n],n))&&(e?(z[t]&=Z,u.push(t)):(z[t]|=Y,f.push(t)));N.forEach(function(r){r(Y,u,f)})}function H(r){for(var n,t=[],e=en;--e>=tn&&r>0;)z[n=Q[e]]||(t.push(b[n]),--r);return t}function I(r){for(var n,t=[],e=tn;en>e&&r>0;)z[n=Q[e]]||(t.push(b[n]),--r),e++;return t}function J(r){function t(n,t,e,u){function f(){++T===L&&(m=R(m,K<<=1),B=R(B,K),L=O(K))}var l,v,s,h,p,g,y=j,m=A(T,L),x=H,k=J,w=T,M=0,U=0;for(X&&(x=k=d),j=Array(T),T=0,B=w>1?F(B,E):A(E,L),w&&(s=(v=y[0]).key);u>U&&!((h=r(n[U]))>=h);)++U;for(;u>U;){for(v&&h>=s?(p=v,g=s,m[M]=T,(v=y[++M])&&(s=v.key)):(p={key:h,value:k()},g=h),j[T]=p;!(h>g||(B[l=t[U]+e]=T,z[l]&Z||(p.value=x(p.value,b[l])),++U>=u));)h=r(n[U]);f()}for(;w>M;)j[m[M]=T]=y[M++],f();if(T>M)for(M=0;e>M;++M)B[M]=m[B[M]];l=N.indexOf(V),T>1?(V=o,W=a):(!T&&$&&(T=1,j=[{key:null,value:k()}]),1===T?(V=i,W=c):(V=d,W=d),B=null),N[l]=V}function e(){if(T>1){for(var r=T,n=j,t=A(r,r),e=0,u=0;E>e;++e)z[e]&&(t[B[u]=B[e]]=1,++u);for(j=[],T=0,e=0;r>e;++e)t[e]&&(t[e]=T++,j.push(n[e]));if(T>1)for(var e=0;u>e;++e)B[e]=t[B[e]];else B=null;N[N.indexOf(V)]=T>1?(W=a,V=o):1===T?(W=c,V=i):W=V=d}else if(1===T){if($)return;for(var e=0;E>e;++e)if(z[e])return;j=[],T=0,N[N.indexOf(V)]=V=W=d}}function o(r,n,t){if(r!==Y&&!X){var e,u,f,o;for(e=0,f=n.length;f>e;++e)z[u=n[e]]&Z||(o=j[B[u]],o.value=H(o.value,b[u]));for(e=0,f=t.length;f>e;++e)(z[u=t[e]]&Z)===r&&(o=j[B[u]],o.value=I(o.value,b[u]))}}function i(r,n,t){if(r!==Y&&!X){var e,u,f,o=j[0];for(e=0,f=n.length;f>e;++e)z[u=n[e]]&Z||(o.value=H(o.value,b[u]));for(e=0,f=t.length;f>e;++e)(z[u=t[e]]&Z)===r&&(o.value=I(o.value,b[u]))}}function a(){var r,n;for(r=0;T>r;++r)j[r].value=J();for(r=0;E>r;++r)z[r]&Z||(n=j[B[r]],n.value=H(n.value,b[r]))}function c(){var r,n=j[0];for(n.value=J(),r=0;E>r;++r)z[r]&Z||(n.value=H(n.value,b[r]))}function l(){return X&&(W(),X=!1),j}function v(r){var n=D(l(),0,j.length,r);return G.sort(n,0,n.length)}function s(r,n,t){return H=r,I=n,J=t,X=!0,S}function h(){return s(g,y,p)}function k(r){return s(m(r),x(r),p)}function w(r){function n(n){return r(n.value)}return D=f(n),G=u(n),S}function M(){return w(n)}function U(){return T}function C(){var r=N.indexOf(V);return r>=0&&N.splice(r,1),r=rn.indexOf(t),r>=0&&rn.splice(r,1),r=q.indexOf(e),r>=0&&q.splice(r,1),S}var S={top:v,all:l,reduce:s,reduceCount:h,reduceSum:k,order:w,orderNatural:M,size:U,dispose:C,remove:C};nn.push(S);var j,B,D,G,H,I,J,K=8,L=O(K),T=0,V=d,W=d,X=!0,$=r===d;return arguments.length<1&&(r=n),N.push(V),rn.push(t),q.push(e),t(P,Q,0,E),h().orderNatural()}function K(){var r=J(d),n=r.all;return delete r.all,delete r.top,delete r.order,delete r.orderNatural,delete r.size,r.value=function(){return n()[0].value},r}function L(){nn.forEach(function(r){r.dispose()});var r=S.indexOf(e);return r>=0&&S.splice(r,1),r=S.indexOf(o),r>=0&&S.splice(r,1),r=q.indexOf(a),r>=0&&q.splice(r,1),M&=Z,B()}var P,Q,T,V,W,X={filter:l,filterExact:C,filterRange:j,filterFunction:D,filterAll:B,top:H,bottom:I,group:J,groupAll:K,dispose:L,remove:L},Y=~M&-~M,Z=~Y,$=i(function(r){return T[r]}),_=h,rn=[],nn=[],tn=0,en=0;return S.unshift(e),S.push(o),q.push(a),M|=Y,(U>=32?!Y:M&(1<<U)-1)&&(z=R(z,U<<=1)),e(b,0,E),o(b,0,E),X}function a(){function r(r,n){var t;if(!h)for(t=n;E>t;++t)z[t]||(a=c(a,b[t]))}function n(r,n,t){var e,u,f;if(!h){for(e=0,f=n.length;f>e;++e)z[u=n[e]]||(a=c(a,b[u]));for(e=0,f=t.length;f>e;++e)z[u=t[e]]===r&&(a=l(a,b[u]))}}function t(){var r;for(a=v(),r=0;E>r;++r)z[r]||(a=c(a,b[r]))}function e(r,n,t){return c=r,l=n,v=t,h=!0,s}function u(){return e(g,y,p)}function f(r){return e(m(r),x(r),p)}function o(){return h&&(t(),h=!1),a}function i(){var t=N.indexOf(n);return t>=0&&N.splice(t),t=S.indexOf(r),t>=0&&S.splice(t),s}var a,c,l,v,s={reduce:e,reduceCount:u,reduceSum:f,value:o,dispose:i,remove:i},h=!0;return N.push(n),S.push(r),r(b,0,E),u()}function c(){return E}var l={add:r,remove:e,dimension:o,groupAll:a,size:c},b=[],E=0,M=0,U=8,z=C(0),N=[],S=[],q=[];return arguments.length?r(arguments[0]):l}function A(r,n){return(257>n?C:65537>n?S:q)(r)}function k(r){for(var n=A(r,r),t=-1;++t<r;)n[t]=t;return n}function O(r){return 8===r?256:16===r?65536:4294967296}b.version="1.3.11",b.permute=t;var w=b.bisect=e(n);w.by=e;var E=b.heap=u(n);E.by=u;var M=b.heapselect=f(n);M.by=f;var U=b.insertionsort=o(n);U.by=o;var z=b.quicksort=i(n);z.by=i;var N=32,C=a,S=a,q=a,F=c,R=l;"undefined"!=typeof Uint8Array&&(C=function(r){return new Uint8Array(r)},S=function(r){return new Uint16Array(r)},q=function(r){return new Uint32Array(r)},F=function(r,n){if(r.length>=n)return r;var t=new r.constructor(n);return t.set(r),t},R=function(r,n){var t;switch(n){case 16:t=S(r.length);break;case 32:t=q(r.length);break;default:throw Error("invalid array width!")}return t.set(r),t}),r.crossfilter=b}("undefined"!=typeof exports&&exports||this);
!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function r(n){return null===n?0/0:+n}function u(n){return!isNaN(n)}function i(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function c(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function l(){this._=Object.create(null)}function s(n){return(n+="")===pa||n[0]===va?va+n:n}function f(n){return(n+="")[0]===va?n.slice(1):n}function h(n){return s(n)in this._}function g(n){return(n=s(n))in this._&&delete this._[n]}function p(){var n=[];for(var t in this._)n.push(f(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function m(){this._=Object.create(null)}function y(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=da.length;r>e;++e){var u=da[e]+t;if(u in n)return u}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new l;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function S(){ta.event.preventDefault()}function k(){for(var n,t=ta.event;n=t.sourceEvent;)t=n;return t}function E(n){for(var t=new _,e=0,r=arguments.length;++e<r;)t[arguments[e]]=w(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=ta.event;u.target=n,ta.event=u,t[u.type].apply(e,r)}finally{ta.event=i}}},t}function A(n){return ya(n,_a),n}function N(n){return"function"==typeof n?n:function(){return Ma(n,this)}}function C(n){return"function"==typeof n?n:function(){return xa(n,this)}}function z(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=ta.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function q(n){return n.trim().replace(/\s+/g," ")}function L(n){return new RegExp("(?:^|\\s+)"+ta.requote(n)+"(?:\\s+|$)","g")}function T(n){return(n+"").trim().split(/^|\s+/)}function R(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=T(n).map(D);var u=n.length;return"function"==typeof t?r:e}function D(n){var t=L(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",q(u+" "+n))):e.setAttribute("class",q(u.replace(t," ")))}}function P(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function U(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function j(n){function t(){var t=this.ownerDocument,e=this.namespaceURI;return e?t.createElementNS(e,n):t.createElement(n)}function e(){return this.ownerDocument.createElementNS(n.space,n.local)}return"function"==typeof n?n:(n=ta.ns.qualify(n)).local?e:t}function F(){var n=this.parentNode;n&&n.removeChild(this)}function H(n){return{__data__:n}}function O(n){return function(){return ba(this,n)}}function I(n){return arguments.length||(n=e),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function Y(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function Z(n){return ya(n,Sa),n}function V(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function X(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=c(t,ra(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+ta.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),c=$;a>0&&(n=n.slice(0,a));var l=ka.get(n);return l&&(n=l,c=B),a?t?u:r:t?b:i}function $(n,t){return function(e){var r=ta.event;ta.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ta.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Aa,u="click"+r,i=ta.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ea&&(Ea="onselectstart"in e?!1:x(e.style,"userSelect")),Ea){var o=n(e).style,a=o[Ea];o[Ea]="none"}return function(n){if(i.on(r,null),Ea&&(o[Ea]=a),n){var t=function(){i.on(u,null)};i.on(u,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var u=r.createSVGPoint();if(0>Na){var i=t(n);if(i.scrollX||i.scrollY){r=ta.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Na=!(o.f||o.e),r.remove()}}return Na?(u.x=e.pageX,u.y=e.pageY):(u.x=e.clientX,u.y=e.clientY),u=u.matrixTransform(n.getScreenCTM().inverse()),[u.x,u.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ta.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nt(n){return n>1?0:-1>n?qa:Math.acos(n)}function tt(n){return n>1?Ra:-1>n?-Ra:Math.asin(n)}function et(n){return((n=Math.exp(n))-1/n)/2}function rt(n){return((n=Math.exp(n))+1/n)/2}function ut(n){return((n=Math.exp(2*n))-1)/(n+1)}function it(n){return(n=Math.sin(n/2))*n}function ot(){}function at(n,t,e){return this instanceof at?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof at?new at(n.h,n.s,n.l):bt(""+n,_t,at):new at(n,t,e)}function ct(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new mt(u(n+120),u(n),u(n-120))}function lt(n,t,e){return this instanceof lt?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof lt?new lt(n.h,n.c,n.l):n instanceof ft?gt(n.l,n.a,n.b):gt((n=wt((n=ta.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new lt(n,t,e)}function st(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new ft(e,Math.cos(n*=Da)*t,Math.sin(n)*t)}function ft(n,t,e){return this instanceof ft?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof ft?new ft(n.l,n.a,n.b):n instanceof lt?st(n.h,n.c,n.l):wt((n=mt(n)).r,n.g,n.b):new ft(n,t,e)}function ht(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=pt(u)*Xa,r=pt(r)*$a,i=pt(i)*Ba,new mt(dt(3.2404542*u-1.5371385*r-.4985314*i),dt(-.969266*u+1.8760108*r+.041556*i),dt(.0556434*u-.2040259*r+1.0572252*i))}function gt(n,t,e){return n>0?new lt(Math.atan2(e,t)*Pa,Math.sqrt(t*t+e*e),n):new lt(0/0,0/0,n)}function pt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function vt(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function dt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mt(n,t,e){return this instanceof mt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mt?new mt(n.r,n.g,n.b):bt(""+n,mt,ct):new mt(n,t,e)}function yt(n){return new mt(n>>16,n>>8&255,255&n)}function Mt(n){return yt(n)+""}function xt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function bt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(kt(u[0]),kt(u[1]),kt(u[2]))}return(i=Ga.get(n.toLowerCase()))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function _t(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new at(r,u,c)}function wt(n,t,e){n=St(n),t=St(t),e=St(e);var r=vt((.4124564*n+.3575761*t+.1804375*e)/Xa),u=vt((.2126729*n+.7151522*t+.072175*e)/$a),i=vt((.0193339*n+.119192*t+.9503041*e)/Ba);return ft(116*u-16,500*(r-u),200*(u-i))}function St(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function kt(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function Et(n){return"function"==typeof n?n:function(){return n}}function At(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Nt(t,e,n,r)}}function Nt(n,t,e,r){function u(){var n,t=c.status;if(!t&&zt(c)||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return void o.error.call(i,r)}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=ta.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,l=null;return!this.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=ta.event;ta.event=n;try{o.progress.call(i,c)}finally{ta.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(l=n,i):l},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(ra(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var s in a)c.setRequestHeader(s,a[s]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},ta.rebind(i,o,"on"),null==r?i:i.get(Ct(r))}function Ct(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function zt(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qt(){var n=Lt(),t=Tt()-n;t>24?(isFinite(t)&&(clearTimeout(tc),tc=setTimeout(qt,t)),nc=0):(nc=1,rc(qt))}function Lt(){var n=Date.now();for(ec=Ka;ec;)n>=ec.t&&(ec.f=ec.c(n-ec.t)),ec=ec.n;return n}function Tt(){for(var n,t=Ka,e=1/0;t;)t.f?t=n?n.n=t.n:Ka=t.n:(t.t<e&&(e=t.t),t=(n=t).n);return Qa=n,e}function Rt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Dt(n,t){var e=Math.pow(10,3*ga(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Pt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r&&e?function(n,t){for(var u=n.length,i=[],o=0,a=r[0],c=0;u>0&&a>0&&(c+a+1>t&&(a=Math.max(1,t-c)),i.push(n.substring(u-=a,u+a)),!((c+=a+1)>t));)a=r[o=(o+1)%r.length];return i.reverse().join(e)}:y;return function(n){var e=ic.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",c=e[4]||"",l=e[5],s=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1,y=!0;switch(h&&(h=+h.substring(1)),(l||"0"===r&&"="===o)&&(l=r="0",o="="),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":y=!1;case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=oc.get(g)||Ut;var M=l&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>p){var c=ta.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=y?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!l&&f&&(x=i(x,1/0));var S=v.length+x.length+b.length+(M?0:u.length),k=s>S?new Array(S=s-S+1).join(r):"";return M&&(x=i(k+x,k.length?s-b.length:1/0)),u+=v,n=x+b,("<"===o?u+n+k:">"===o?k+u+n:"^"===o?k.substring(0,S>>=1)+u+n+k.substring(S):u+(M?n:k+n))+e}}}function Ut(n){return n+""}function jt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ft(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new cc(e-1)),1),e}function i(n,e){return t(n=new cc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{cc=jt;var r=new jt;return r._=n,o(r,t,e)}finally{cc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Ht(n);return c.floor=c,c.round=Ht(r),c.ceil=Ht(u),c.offset=Ht(i),c.range=a,n}function Ht(n){return function(t,e){try{cc=jt;var r=new jt;return r._=t,n(r,e)._}finally{cc=Date}}}function Ot(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(c,a)),null!=(u=sc[e=n.charAt(++a)])&&(e=n.charAt(++a)),(i=N[e])&&(e=i(t,null==u?"e"===e?" ":"0":u)),o.push(e),c=a+1);return o.push(n.slice(c,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},u=e(r,n,t,0);if(u!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var i=null!=r.Z&&cc!==jt,o=new(i?jt:cc);return"j"in r?o.setFullYear(r.y,0,r.j):"w"in r&&("W"in r||"U"in r)?(o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),i?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var u,i,o,a=0,c=t.length,l=e.length;c>a;){if(r>=l)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=C[o in sc?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.slice(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,N.c.toString(),t,r)}function c(n,t,r){return e(n,N.x.toString(),t,r)}function l(n,t,r){return e(n,N.X.toString(),t,r)}function s(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{cc=jt;var t=new cc;return t._=n,r(t)}finally{cc=Date}}var r=t(n);return e.parse=function(n){try{cc=jt;var t=r.parse(n);return t&&t._}finally{cc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ae;var M=ta.map(),x=Yt(v),b=Zt(v),_=Yt(d),w=Zt(d),S=Yt(m),k=Zt(m),E=Yt(y),A=Zt(y);p.forEach(function(n,t){M.set(n.toLowerCase(),t)});var N={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return It(n.getDate(),t,2)},e:function(n,t){return It(n.getDate(),t,2)},H:function(n,t){return It(n.getHours(),t,2)},I:function(n,t){return It(n.getHours()%12||12,t,2)},j:function(n,t){return It(1+ac.dayOfYear(n),t,3)},L:function(n,t){return It(n.getMilliseconds(),t,3)},m:function(n,t){return It(n.getMonth()+1,t,2)},M:function(n,t){return It(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return It(n.getSeconds(),t,2)},U:function(n,t){return It(ac.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return It(ac.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return It(n.getFullYear()%100,t,2)},Y:function(n,t){return It(n.getFullYear()%1e4,t,4)},Z:ie,"%":function(){return"%"}},C={a:r,A:u,b:i,B:o,c:a,d:Qt,e:Qt,H:te,I:te,j:ne,L:ue,m:Kt,M:ee,p:s,S:re,U:Xt,w:Vt,W:$t,x:c,X:l,y:Wt,Y:Bt,Z:Jt,"%":oe};return t}function It(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Yt(n){return new RegExp("^(?:"+n.map(ta.requote).join("|")+")","i")}function Zt(n){for(var t=new l,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function Vt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Xt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function $t(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Bt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Wt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.y=Gt(+r[0]),e+r[0].length):-1}function Jt(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Gt(n){return n+(n>68?1900:2e3)}function Kt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Qt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function ne(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function te(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function ee(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function re(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ue(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function ie(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=ga(t)/60|0,u=ga(t)%60;return e+It(r,"0",2)+It(u,"0",2)}function oe(n,t,e){hc.lastIndex=0;var r=hc.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ae(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ce(){}function le(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function se(n,t){n&&dc.hasOwnProperty(n.type)&&dc[n.type](n,t)}function fe(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function he(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)fe(n[e],t,1);t.polygonEnd()}function ge(){function n(n,t){n*=Da,t=t*Da/2+qa/4;var e=n-r,o=e>=0?1:-1,a=o*e,c=Math.cos(t),l=Math.sin(t),s=i*l,f=u*c+s*Math.cos(a),h=s*o*Math.sin(a);yc.add(Math.atan2(h,f)),r=n,u=c,i=l}var t,e,r,u,i;Mc.point=function(o,a){Mc.point=n,r=(t=o)*Da,u=Math.cos(a=(e=a)*Da/2+qa/4),i=Math.sin(a)},Mc.lineEnd=function(){n(t,e)}}function pe(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function ve(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function de(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function me(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function ye(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function Me(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function xe(n){return[Math.atan2(n[1],n[0]),tt(n[2])]}function be(n,t){return ga(n[0]-t[0])<Ca&&ga(n[1]-t[1])<Ca}function _e(n,t){n*=Da;var e=Math.cos(t*=Da);we(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function we(n,t,e){++xc,_c+=(n-_c)/xc,wc+=(t-wc)/xc,Sc+=(e-Sc)/xc}function Se(){function n(n,u){n*=Da;var i=Math.cos(u*=Da),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),l=Math.atan2(Math.sqrt((l=e*c-r*a)*l+(l=r*o-t*c)*l+(l=t*a-e*o)*l),t*o+e*a+r*c);bc+=l,kc+=l*(t+(t=o)),Ec+=l*(e+(e=a)),Ac+=l*(r+(r=c)),we(t,e,r)}var t,e,r;qc.point=function(u,i){u*=Da;var o=Math.cos(i*=Da);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),qc.point=n,we(t,e,r)}}function ke(){qc.point=_e}function Ee(){function n(n,t){n*=Da;var e=Math.cos(t*=Da),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),l=u*c-i*a,s=i*o-r*c,f=r*a-u*o,h=Math.sqrt(l*l+s*s+f*f),g=r*o+u*a+i*c,p=h&&-nt(g)/h,v=Math.atan2(h,g);Nc+=p*l,Cc+=p*s,zc+=p*f,bc+=v,kc+=v*(r+(r=o)),Ec+=v*(u+(u=a)),Ac+=v*(i+(i=c)),we(r,u,i)}var t,e,r,u,i;qc.point=function(o,a){t=o,e=a,qc.point=n,o*=Da;var c=Math.cos(a*=Da);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),we(r,u,i)},qc.lineEnd=function(){n(t,e),qc.lineEnd=ke,qc.point=_e}}function Ae(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function Ne(){return!0}function Ce(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(be(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return void u.lineEnd()}var c=new qe(e,n,null,!0),l=new qe(e,null,c,!1);c.o=l,i.push(c),o.push(l),c=new qe(r,n,null,!1),l=new qe(r,null,c,!0),c.o=l,i.push(c),o.push(l)}}),o.sort(t),ze(i),ze(o),i.length){for(var a=0,c=e,l=o.length;l>a;++a)o[a].e=c=!c;for(var s,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;s=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,l=s.length;l>a;++a)u.point((f=s[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){s=g.p.z;for(var a=s.length-1;a>=0;--a)u.point((f=s[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,s=g.z,p=!p}while(!g.v);u.lineEnd()}}}function ze(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.n=e=n[r],e.p=u,u=e;u.n=e=n[0],e.p=u}}function qe(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Le(n,t,e,r){return function(u,i){function o(t,e){var r=u(t,e);n(t=r[0],e=r[1])&&i.point(t,e)}function a(n,t){var e=u(n,t);d.point(e[0],e[1])}function c(){y.point=a,d.lineStart()}function l(){y.point=o,d.lineEnd()}function s(n,t){v.push([n,t]);var e=u(n,t);x.point(e[0],e[1])}function f(){x.lineStart(),v=[]}function h(){s(v[0][0],v[0][1]),x.lineEnd();var n,t=x.clean(),e=M.buffer(),r=e.length;if(v.pop(),p.push(v),v=null,r)if(1&t){n=e[0];var u,r=n.length-1,o=-1;if(r>0){for(b||(i.polygonStart(),b=!0),i.lineStart();++o<r;)i.point((u=n[o])[0],u[1]);i.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Te))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:l,polygonStart:function(){y.point=s,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=l,g=ta.merge(g);var n=Fe(m,p);g.length?(b||(i.polygonStart(),b=!0),Ce(g,De,n,e,i)):n&&(b||(i.polygonStart(),b=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),b&&(i.polygonEnd(),b=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},M=Re(),x=t(M),b=!1;return y}}function Te(n){return n.length>1}function Re(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function De(n,t){return((n=n.x)[0]<0?n[1]-Ra-Ca:Ra-n[1])-((t=t.x)[0]<0?t[1]-Ra-Ca:Ra-t[1])}function Pe(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?qa:-qa,c=ga(i-e);ga(c-qa)<Ca?(n.point(e,r=(r+o)/2>0?Ra:-Ra),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=qa&&(ga(e-u)<Ca&&(e-=u*Ca),ga(i-a)<Ca&&(i-=a*Ca),r=Ue(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function Ue(n,t,e,r){var u,i,o=Math.sin(n-e);return ga(o)>Ca?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function je(n,t,e,r){var u;if(null==n)u=e*Ra,r.point(-qa,u),r.point(0,u),r.point(qa,u),r.point(qa,0),r.point(qa,-u),r.point(0,-u),r.point(-qa,-u),r.point(-qa,0),r.point(-qa,u);else if(ga(n[0]-t[0])>Ca){var i=n[0]<t[0]?qa:-qa;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function Fe(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;yc.reset();for(var a=0,c=t.length;c>a;++a){var l=t[a],s=l.length;if(s)for(var f=l[0],h=f[0],g=f[1]/2+qa/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===s&&(d=0),n=l[d];var m=n[0],y=n[1]/2+qa/4,M=Math.sin(y),x=Math.cos(y),b=m-h,_=b>=0?1:-1,w=_*b,S=w>qa,k=p*M;if(yc.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),i+=S?b+_*La:b,S^h>=e^m>=e){var E=de(pe(f),pe(n));Me(E);var A=de(u,E);Me(A);var N=(S^b>=0?-1:1)*tt(A[2]);(r>N||r===N&&(E[0]||E[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=m,p=M,v=x,f=n}}return(-Ca>i||Ca>i&&0>yc)^1&o}function He(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,l,s;return{lineStart:function(){l=c=!1,s=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?qa:-qa),h):0;if(!e&&(l=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(be(e,g)||be(p,g))&&(p[0]+=Ca,p[1]+=Ca,v=t(p[0],p[1]))),v!==c)s=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(s=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&be(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return s|(l&&c)<<1}}}function r(n,t,e){var r=pe(n),u=pe(t),o=[1,0,0],a=de(r,u),c=ve(a,a),l=a[0],s=c-l*l;if(!s)return!e&&n;var f=i*c/s,h=-i*l/s,g=de(o,a),p=ye(o,f),v=ye(a,h);me(p,v);var d=g,m=ve(p,d),y=ve(d,d),M=m*m-y*(ve(p,p)-1);if(!(0>M)){var x=Math.sqrt(M),b=ye(d,(-m-x)/y);if(me(b,p),b=xe(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(_=w,w=S,S=_);var A=S-w,N=ga(A-qa)<Ca,C=N||Ca>A;if(!N&&k>E&&(_=k,k=E,E=_),C?N?k+E>0^b[1]<(ga(b[0]-w)<Ca?k:E):k<=b[1]&&b[1]<=E:A>qa^(w<=b[0]&&b[0]<=S)){var z=ye(d,(-m+x)/y);return me(z,p),[b,xe(z)]}}}function u(t,e){var r=o?n:qa-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ga(i)>Ca,c=gr(n,6*Da);return Le(t,e,c,o?[0,-n]:[-qa,n-qa])}function Oe(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,l=o.y,s=a.x,f=a.y,h=0,g=1,p=s-c,v=f-l;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-l,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-l,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:l+h*v}),1>g&&(u.b={x:c+g*p,y:l+g*v}),u}}}}}}function Ie(n,t,e,r){function u(r,u){return ga(r[0]-n)<Ca?u>0?0:3:ga(r[0]-e)<Ca?u>0?2:1:ga(r[1]-t)<Ca?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&Q(l,i,n)>0&&++t:i[1]<=r&&Q(l,i,n)<0&&--t,l=i;return 0!==t}function l(i,a,c,l){var s=0,f=0;if(null==i||(s=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do l.point(0===s||3===s?n:e,s>1?r:t);while((s=(s+c+4)%4)!==f)}else l.point(a[0],a[1])}function s(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){s(n,t)&&a.point(n,t)}function h(){C.point=p,d&&d.push(m=[]),S=!0,w=!1,b=_=0/0}function g(){v&&(p(y,M),x&&w&&A.rejoin(),v.push(A.buffer())),C.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-Tc,Math.min(Tc,n)),t=Math.max(-Tc,Math.min(Tc,t));var e=s(n,t);if(d&&m.push([n,t]),S)y=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};N(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,m,y,M,x,b,_,w,S,k,E=a,A=Re(),N=Oe(n,t,e,r),C={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=ta.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Ce(v,i,t,l,a),a.polygonEnd()),v=d=m=null}};return C}}function Ye(n){var t=0,e=qa/3,r=ir(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*qa/180,e=n[1]*qa/180):[t/qa*180,e/qa*180]},u}function Ze(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,tt((i-(n*n+e*e)*u*u)/(2*u))]},e}function Ve(){function n(n,t){Dc+=u*n-r*t,r=n,u=t}var t,e,r,u;Hc.point=function(i,o){Hc.point=n,t=r=i,e=u=o},Hc.lineEnd=function(){n(t,e)}}function Xe(n,t){Pc>n&&(Pc=n),n>jc&&(jc=n),Uc>t&&(Uc=t),t>Fc&&(Fc=t)}function $e(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Be(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Be(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Be(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function We(n,t){_c+=n,wc+=t,++Sc}function Je(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);kc+=o*(t+n)/2,Ec+=o*(e+r)/2,Ac+=o,We(t=n,e=r)}var t,e;Ic.point=function(r,u){Ic.point=n,We(t=r,e=u)}}function Ge(){Ic.point=We}function Ke(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);kc+=o*(r+n)/2,Ec+=o*(u+t)/2,Ac+=o,o=u*n-r*t,Nc+=o*(r+n),Cc+=o*(u+t),zc+=3*o,We(r=n,u=t)}var t,e,r,u;Ic.point=function(i,o){Ic.point=n,We(t=r=i,e=u=o)},Ic.lineEnd=function(){n(t,e)}}function Qe(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,La)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function nr(n){function t(n){return(a?r:e)(n)}function e(t){return rr(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=0/0,S.point=i,t.lineStart()}function i(e,r){var i=pe([e,r]),o=n(e,r);u(M,x,y,b,_,w,M=o[0],x=o[1],y=e,b=i[0],_=i[1],w=i[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=l,S.lineEnd=s}function l(n,t){i(f=n,h=t),g=M,p=x,v=b,d=_,m=w,S.point=i}function s(){u(M,x,y,b,_,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c
},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,l,s,f,h,g,p,v,d,m){var y=s-t,M=f-e,x=y*y+M*M;if(x>4*i&&d--){var b=a+g,_=c+p,w=l+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),E=ga(ga(w)-1)<Ca||ga(r-h)<Ca?(r+h)/2:Math.atan2(_,b),A=n(E,k),N=A[0],C=A[1],z=N-t,q=C-e,L=M*z-y*q;(L*L/x>i||ga((y*z+M*q)/x-.5)>.3||o>a*g+c*p+l*v)&&(u(t,e,r,a,c,l,N,C,E,b/=S,_/=S,w,d,m),m.point(N,C),u(N,C,E,b,_,w,s,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Da),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function tr(n){var t=nr(function(t,e){return n([t*Pa,e*Pa])});return function(n){return or(t(n))}}function er(n){this.stream=n}function rr(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function ur(n){return ir(function(){return n})()}function ir(n){function t(n){return n=a(n[0]*Da,n[1]*Da),[n[0]*h+c,l-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Pa,n[1]*Pa]}function r(){a=Ae(o=lr(m,M,x),i);var n=i(v,d);return c=g-n[0]*h,l=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,o,a,c,l,s,f=nr(function(n,t){return n=i(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,M=0,x=0,b=Lc,_=y,w=null,S=null;return t.stream=function(n){return s&&(s.valid=!1),s=or(b(o,f(_(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Lc):He((w=+n)*Da),u()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Ie(n[0][0],n[0][1],n[1][0],n[1][1]):y,u()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Da,d=n[1]%360*Da,r()):[v*Pa,d*Pa]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Da,M=n[1]%360*Da,x=n.length>2?n[2]%360*Da:0,r()):[m*Pa,M*Pa,x*Pa]},ta.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function or(n){return rr(n,function(t,e){n.point(t*Da,e*Da)})}function ar(n,t){return[n,t]}function cr(n,t){return[n>qa?n-La:-qa>n?n+La:n,t]}function lr(n,t,e){return n?t||e?Ae(fr(n),hr(t,e)):fr(n):t||e?hr(t,e):cr}function sr(n){return function(t,e){return t+=n,[t>qa?t-La:-qa>t?t+La:t,e]}}function fr(n){var t=sr(n);return t.invert=sr(-n),t}function hr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*r+a*u;return[Math.atan2(c*i-s*o,a*r-l*u),tt(s*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*i-c*o;return[Math.atan2(c*i+l*o,a*r+s*u),tt(s*r-a*u)]},e}function gr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=pr(e,u),i=pr(e,i),(o>0?i>u:u>i)&&(u+=o*La)):(u=n+o*La,i=n-.5*c);for(var l,s=u;o>0?s>i:i>s;s-=c)a.point((l=xe([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],l[1])}}function pr(n,t){var e=pe(t);e[0]-=n,Me(e);var r=nt(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Ca)%(2*Math.PI)}function vr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function dr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function mr(n){return n.source}function yr(n){return n.target}function Mr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),l=u*Math.sin(n),s=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(it(r-t)+u*o*it(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*s,u=e*l+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Pa,Math.atan2(o,Math.sqrt(r*r+u*u))*Pa]}:function(){return[n*Pa,t*Pa]};return p.distance=h,p}function xr(){function n(n,u){var i=Math.sin(u*=Da),o=Math.cos(u),a=ga((n*=Da)-t),c=Math.cos(a);Yc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Zc.point=function(u,i){t=u*Da,e=Math.sin(i*=Da),r=Math.cos(i),Zc.point=n},Zc.lineEnd=function(){Zc.point=Zc.lineEnd=b}}function br(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function _r(n,t){function e(n,t){o>0?-Ra+Ca>t&&(t=-Ra+Ca):t>Ra-Ca&&(t=Ra-Ca);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(qa/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=K(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Ra]},e):Sr}function wr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ga(u)<Ca?ar:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-K(u)*Math.sqrt(n*n+e*e)]},e)}function Sr(n,t){return[n,Math.log(Math.tan(qa/4+t/2))]}function kr(n){var t,e=ur(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=qa*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Er(n,t){return[Math.log(Math.tan(qa/4+t/2)),-n]}function Ar(n){return n[0]}function Nr(n){return n[1]}function Cr(n){for(var t=n.length,e=[0,1],r=2,u=2;t>u;u++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function zr(n,t){return n[0]-t[0]||n[1]-t[1]}function qr(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Lr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],l=e[1],s=t[1]-c,f=r[1]-l,h=(a*(c-l)-f*(u-i))/(f*o-a*s);return[u+h*o,c+h*s]}function Tr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Rr(){tu(this),this.edge=this.site=this.circle=null}function Dr(n){var t=el.pop()||new Rr;return t.site=n,t}function Pr(n){Xr(n),Qc.remove(n),el.push(n),tu(n)}function Ur(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Pr(n);for(var c=i;c.circle&&ga(e-c.circle.x)<Ca&&ga(r-c.circle.cy)<Ca;)i=c.P,a.unshift(c),Pr(c),c=i;a.unshift(c),Xr(c);for(var l=o;l.circle&&ga(e-l.circle.x)<Ca&&ga(r-l.circle.cy)<Ca;)o=l.N,a.push(l),Pr(l),l=o;a.push(l),Xr(l);var s,f=a.length;for(s=1;f>s;++s)l=a[s],c=a[s-1],Kr(l.edge,c.site,l.site,u);c=a[0],l=a[f-1],l.edge=Jr(c.site,l.site,null,u),Vr(c),Vr(l)}function jr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Qc._;a;)if(r=Fr(a,o)-i,r>Ca)a=a.L;else{if(u=i-Hr(a,o),!(u>Ca)){r>-Ca?(t=a.P,e=a):u>-Ca?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Dr(n);if(Qc.insert(t,c),t||e){if(t===e)return Xr(t),e=Dr(t.site),Qc.insert(c,e),c.edge=e.edge=Jr(t.site,c.site),Vr(t),void Vr(e);if(!e)return void(c.edge=Jr(t.site,c.site));Xr(t),Xr(e);var l=t.site,s=l.x,f=l.y,h=n.x-s,g=n.y-f,p=e.site,v=p.x-s,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,M=v*v+d*d,x={x:(d*y-g*M)/m+s,y:(h*M-v*y)/m+f};Kr(e.edge,l,p,x),c.edge=Jr(l,n,null,x),e.edge=Jr(n,p,null,x),Vr(t),Vr(e)}}function Fr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,l=c-t;if(!l)return a;var s=a-r,f=1/i-1/l,h=s/l;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*l)-c+l/2+u-i/2)))/f+r:(r+a)/2}function Hr(n,t){var e=n.N;if(e)return Fr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Or(n){this.site=n,this.edges=[]}function Ir(n){for(var t,e,r,u,i,o,a,c,l,s,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Kc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)s=a[o].end(),r=s.x,u=s.y,l=a[++o%c].start(),t=l.x,e=l.y,(ga(r-t)>Ca||ga(u-e)>Ca)&&(a.splice(o,0,new Qr(Gr(i.site,s,ga(r-f)<Ca&&p-u>Ca?{x:f,y:ga(t-f)<Ca?e:p}:ga(u-p)<Ca&&h-r>Ca?{x:ga(e-p)<Ca?t:h,y:p}:ga(r-h)<Ca&&u-g>Ca?{x:h,y:ga(t-h)<Ca?e:g}:ga(u-g)<Ca&&r-f>Ca?{x:ga(e-g)<Ca?t:f,y:g}:null),i.site,null)),++c)}function Yr(n,t){return t.angle-n.angle}function Zr(){tu(this),this.x=this.y=this.arc=this.site=this.cy=null}function Vr(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,u=n.site,i=e.site;if(r!==i){var o=u.x,a=u.y,c=r.x-o,l=r.y-a,s=i.x-o,f=i.y-a,h=2*(c*f-l*s);if(!(h>=-za)){var g=c*c+l*l,p=s*s+f*f,v=(f*g-l*p)/h,d=(c*p-s*g)/h,f=d+a,m=rl.pop()||new Zr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,M=tl._;M;)if(m.y<M.y||m.y===M.y&&m.x<=M.x){if(!M.L){y=M.P;break}M=M.L}else{if(!M.R){y=M;break}M=M.R}tl.insert(y,m),y||(nl=m)}}}}function Xr(n){var t=n.circle;t&&(t.P||(nl=t.N),tl.remove(t),rl.push(t),tu(t),n.circle=null)}function $r(n){for(var t,e=Gc,r=Oe(n[0][0],n[0][1],n[1][0],n[1][1]),u=e.length;u--;)t=e[u],(!Br(t,n)||!r(t)||ga(t.a.x-t.b.x)<Ca&&ga(t.a.y-t.b.y)<Ca)&&(t.a=t.b=null,e.splice(u,1))}function Br(n,t){var e=n.b;if(e)return!0;var r,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],l=t[1][1],s=n.l,f=n.r,h=s.x,g=s.y,p=f.x,v=f.y,d=(h+p)/2,m=(g+v)/2;if(v===g){if(o>d||d>=a)return;if(h>p){if(i){if(i.y>=l)return}else i={x:d,y:c};e={x:d,y:l}}else{if(i){if(i.y<c)return}else i={x:d,y:l};e={x:d,y:c}}}else if(r=(h-p)/(v-g),u=m-r*d,-1>r||r>1)if(h>p){if(i){if(i.y>=l)return}else i={x:(c-u)/r,y:c};e={x:(l-u)/r,y:l}}else{if(i){if(i.y<c)return}else i={x:(l-u)/r,y:l};e={x:(c-u)/r,y:c}}else if(v>g){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.x<o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}return n.a=i,n.b=e,!0}function Wr(n,t){this.l=n,this.r=t,this.a=this.b=null}function Jr(n,t,e,r){var u=new Wr(n,t);return Gc.push(u),e&&Kr(u,n,t,e),r&&Kr(u,t,n,r),Kc[n.i].edges.push(new Qr(u,n,t)),Kc[t.i].edges.push(new Qr(u,t,n)),u}function Gr(n,t,e){var r=new Wr(n,null);return r.a=t,r.b=e,Gc.push(r),r}function Kr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function Qr(n,t,e){var r=n.a,u=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(u.x-r.x,r.y-u.y):Math.atan2(r.x-u.x,u.y-r.y)}function nu(){this._=null}function tu(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function eu(n,t){var e=t,r=t.R,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ru(n,t){var e=t,r=t.L,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function uu(n){for(;n.L;)n=n.L;return n}function iu(n,t){var e,r,u,i=n.sort(ou).pop();for(Gc=[],Kc=new Array(n.length),Qc=new nu,tl=new nu;;)if(u=nl,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==e||i.y!==r)&&(Kc[i.i]=new Or(i),jr(i),e=i.x,r=i.y),i=n.pop();else{if(!u)break;Ur(u.arc)}t&&($r(t),Ir(t));var o={cells:Kc,edges:Gc};return Qc=tl=Gc=Kc=null,o}function ou(n,t){return t.y-n.y||t.x-n.x}function au(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function cu(n){return n.x}function lu(n){return n.y}function su(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function fu(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&fu(n,c[0],e,r,o,a),c[1]&&fu(n,c[1],o,r,u,a),c[2]&&fu(n,c[2],e,a,o,i),c[3]&&fu(n,c[3],o,a,u,i)}}function hu(n,t,e,r,u,i,o){var a,c=1/0;return function l(n,s,f,h,g){if(!(s>i||f>o||r>h||u>g)){if(p=n.point){var p,v=t-n.x,d=e-n.y,m=v*v+d*d;if(c>m){var y=Math.sqrt(c=m);r=t-y,u=e-y,i=t+y,o=e+y,a=p}}for(var M=n.nodes,x=.5*(s+h),b=.5*(f+g),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:l(n,s,f,x,b);break;case 1:l(n,x,f,h,b);break;case 2:l(n,s,b,x,g);break;case 3:l(n,x,b,h,g)}}}(n,r,u,i,o),a}function gu(n,t){n=ta.rgb(n),t=ta.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+xt(Math.round(e+i*n))+xt(Math.round(r+o*n))+xt(Math.round(u+a*n))}}function pu(n,t){var e,r={},u={};for(e in n)e in t?r[e]=mu(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function vu(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function du(n,t){var e,r,u,i=il.lastIndex=ol.lastIndex=0,o=-1,a=[],c=[];for(n+="",t+="";(e=il.exec(n))&&(r=ol.exec(t));)(u=r.index)>i&&(u=t.slice(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:vu(e,r)})),i=ol.lastIndex;return i<t.length&&(u=t.slice(i),a[o]?a[o]+=u:a[++o]=u),a.length<2?c[0]?(t=c[0].x,function(n){return t(n)+""}):function(){return t}:(t=c.length,function(n){for(var e,r=0;t>r;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function mu(n,t){for(var e,r=ta.interpolators.length;--r>=0&&!(e=ta.interpolators[r](n,t)););return e}function yu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(mu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function Mu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function xu(n){return function(t){return 1-n(1-t)}}function bu(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function _u(n){return n*n}function wu(n){return n*n*n}function Su(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function ku(n){return function(t){return Math.pow(t,n)}}function Eu(n){return 1-Math.cos(n*Ra)}function Au(n){return Math.pow(2,10*(n-1))}function Nu(n){return 1-Math.sqrt(1-n*n)}function Cu(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/La*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*La/t)}}function zu(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function qu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Lu(n,t){n=ta.hcl(n),t=ta.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return st(e+i*n,r+o*n,u+a*n)+""}}function Tu(n,t){n=ta.hsl(n),t=ta.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ct(e+i*n,r+o*n,u+a*n)+""}}function Ru(n,t){n=ta.lab(n),t=ta.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ht(e+i*n,r+o*n,u+a*n)+""}}function Du(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Pu(n){var t=[n.a,n.b],e=[n.c,n.d],r=ju(t),u=Uu(t,e),i=ju(Fu(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Pa,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Pa:0}function Uu(n,t){return n[0]*t[0]+n[1]*t[1]}function ju(n){var t=Math.sqrt(Uu(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Fu(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Hu(n,t){var e,r=[],u=[],i=ta.transform(n),o=ta.transform(t),a=i.translate,c=o.translate,l=i.rotate,s=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:vu(a[0],c[0])},{i:3,x:vu(a[1],c[1])})):r.push(c[0]||c[1]?"translate("+c+")":""),l!=s?(l-s>180?s+=360:s-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:vu(l,s)})):s&&r.push(r.pop()+"rotate("+s+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:vu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:vu(g[0],p[0])},{i:e-2,x:vu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function Ou(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Iu(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Yu(n){for(var t=n.source,e=n.target,r=Vu(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function Zu(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Vu(n,t){if(n===t)return n;for(var e=Zu(n),r=Zu(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function Xu(n){n.fixed|=2}function $u(n){n.fixed&=-7}function Bu(n){n.fixed|=4,n.px=n.x,n.py=n.y}function Wu(n){n.fixed&=-5}function Ju(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(Ju(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var l=t*e[n.point.index];n.charge+=n.pointCharge=l,r+=l*n.point.x,u+=l*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function Gu(n,t){return ta.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=ri,n}function Ku(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(u=n.children)&&(r=u.length))for(var r,u;--r>=0;)e.push(u[r])}function Qu(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++o<u;)e.push(i[o]);for(;null!=(n=r.pop());)t(n)}function ni(n){return n.children}function ti(n){return n.value}function ei(n,t){return t.value-n.value}function ri(n){return ta.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function ui(n){return n.x}function ii(n){return n.y}function oi(n,t,e){n.y0=t,n.y=e}function ai(n){return ta.range(n.length)}function ci(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function li(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function si(n){return n.reduce(fi,0)}function fi(n,t){return n+t[1]}function hi(n,t){return gi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function gi(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function pi(n){return[ta.min(n),ta.max(n)]}function vi(n,t){return n.value-t.value}function di(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function mi(n,t){n._pack_next=t,t._pack_prev=n}function yi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function Mi(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(l=e.length)){var e,r,u,i,o,a,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(xi),r=e[0],r.x=-r.r,r.y=0,t(r),l>1&&(u=e[1],u.x=u.r,u.y=0,t(u),l>2))for(i=e[2],wi(r,u,i),t(i),di(r,i),r._pack_prev=i,di(i,u),u=r._pack_next,o=3;l>o;o++){wi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(yi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!yi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.r<r.r?mi(r,u=a):mi(r=c,u),o--):(di(r,i),u=i,t(i))}var m=(s+f)/2,y=(h+g)/2,M=0;for(o=0;l>o;o++)i=e[o],i.x-=m,i.y-=y,M=Math.max(M,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=M,e.forEach(bi)}}function xi(n){n._pack_next=n._pack_prev=n}function bi(n){delete n._pack_next,delete n._pack_prev}function _i(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)_i(u[i],t,e,r)}function wi(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),l=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+l*i,e.y=n.y+c*i-l*u}else e.x=n.x+r,e.y=n.y}function Si(n,t){return n.parent==t.parent?1:2}function ki(n){var t=n.children;return t.length?t[0]:n.t}function Ei(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function Ai(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function Ni(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Ci(n,t,e){return n.a.parent===t.parent?n.a:e}function zi(n){return 1+ta.max(n,function(n){return n.y})}function qi(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Li(n){var t=n.children;return t&&t.length?Li(t[0]):n}function Ti(n){var t,e=n.children;return e&&(t=e.length)?Ti(e[t-1]):n}function Ri(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Di(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Pi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ui(n){return n.rangeExtent?n.rangeExtent():Pi(n.range())}function ji(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Fi(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Hi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ml}function Oi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=ta.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function Ii(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?Oi:ji,c=r?Iu:Ou;return o=u(n,t,c,e),a=u(t,n,c,mu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Du)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Xi(n,t)},i.tickFormat=function(t,e){return $i(n,t,e)},i.nice=function(t){return Zi(n,t),u()},i.copy=function(){return Ii(n,t,e,r)},u()}function Yi(n,t){return ta.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Zi(n,t){return Fi(n,Hi(Vi(n,t)[2]))}function Vi(n,t){null==t&&(t=10);var e=Pi(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Xi(n,t){return ta.range.apply(ta,Vi(n,t))}function $i(n,t,e){var r=Vi(n,t);if(e){var u=ic.exec(e);if(u.shift(),"s"===u[8]){var i=ta.formatPrefix(Math.max(ga(r[0]),ga(r[1])));return u[7]||(u[7]="."+Bi(i.scale(r[2]))),u[8]="f",e=ta.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Wi(u[8],r)),e=u.join("")}else e=",."+Bi(r[2])+"f";return ta.format(e)}function Bi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Wi(n,t){var e=Bi(t[2]);return n in yl?Math.abs(e-Bi(Math.max(ga(t[0]),ga(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Ji(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Fi(r.map(u),e?Math:xl);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Pi(r),o=[],a=n[0],c=n[1],l=Math.floor(u(a)),s=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(s-l)){if(e){for(;s>l;l++)for(var h=1;f>h;h++)o.push(i(l)*h);o.push(i(l))}else for(o.push(i(l));l++<s;)for(var h=f-1;h>0;h--)o.push(i(l)*h);for(l=0;o[l]<a;l++);for(s=o.length;o[s-1]>c;s--);o=o.slice(l,s)}return o},o.tickFormat=function(n,t){if(!arguments.length)return Ml;arguments.length<2?t=Ml:"function"!=typeof t&&(t=ta.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Ji(n.copy(),t,e,r)},Yi(o,n)}function Gi(n,t,e){function r(t){return n(u(t))}var u=Ki(t),i=Ki(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Xi(e,n)},r.tickFormat=function(n,t){return $i(e,n,t)},r.nice=function(n){return r.domain(Zi(e,n))},r.exponent=function(o){return arguments.length?(u=Ki(t=o),i=Ki(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Gi(n.copy(),t,e)},Yi(r,n)}function Ki(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Qi(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return ta.range(n.length).map(function(n){return t+e*n})}var u,i,o;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new l;for(var i,o=-1,a=r.length;++o<a;)u.has(i=r[o])||u.set(i,n.push(i));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(i=n,o=0,t={t:"range",a:arguments},e):i},e.rangePoints=function(u,a){arguments.length<2&&(a=0);var c=u[0],l=u[1],s=n.length<2?(c=(c+l)/2,0):(l-c)/(n.length-1+a);return i=r(c+s*a/2,s),o=0,t={t:"rangePoints",a:arguments},e},e.rangeRoundPoints=function(u,a){arguments.length<2&&(a=0);var c=u[0],l=u[1],s=n.length<2?(c=l=Math.round((c+l)/2),0):(l-c)/(n.length-1+a)|0;return i=r(c+Math.round(s*a/2+(l-c-(n.length-1+a)*s)/2),s),o=0,t={t:"rangeRoundPoints",a:arguments},e},e.rangeBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=(f-s)/(n.length-a+2*c);return i=r(s+h*c,h),l&&i.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=Math.floor((f-s)/(n.length-a+2*c));return i=r(s+Math.round((f-s-(n.length-a)*h)/2),h),l&&i.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Pi(t.a[0])},e.copy=function(){return Qi(n,t)},e.domain(n)}function no(n,t){function i(){var e=0,r=t.length;for(a=[];++e<r;)a[e-1]=ta.quantile(n,e/r);return o}function o(n){return isNaN(n=+n)?void 0:t[ta.bisect(a,n)]}var a;return o.domain=function(t){return arguments.length?(n=t.map(r).filter(u).sort(e),i()):n},o.range=function(n){return arguments.length?(t=n,i()):t},o.quantiles=function(){return a},o.invertExtent=function(e){return e=t.indexOf(e),0>e?[0/0,0/0]:[e>0?a[e-1]:n[0],e<a.length?a[e]:n[n.length-1]]},o.copy=function(){return no(n,t)},i()}function to(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return to(n,t,e)},u()}function eo(n,t){function e(e){return e>=e?t[ta.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return eo(n,t)},e}function ro(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Xi(n,t)},t.tickFormat=function(t,e){return $i(n,t,e)},t.copy=function(){return ro(n)},t}function uo(){return 0}function io(n){return n.innerRadius}function oo(n){return n.outerRadius}function ao(n){return n.startAngle}function co(n){return n.endAngle}function lo(n){return n&&n.padAngle}function so(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function fo(n,t,e,r,u){var i=n[0]-t[0],o=n[1]-t[1],a=(u?r:-r)/Math.sqrt(i*i+o*o),c=a*o,l=-a*i,s=n[0]+c,f=n[1]+l,h=t[0]+c,g=t[1]+l,p=(s+h)/2,v=(f+g)/2,d=h-s,m=g-f,y=d*d+m*m,M=e-r,x=s*g-h*f,b=(0>m?-1:1)*Math.sqrt(M*M*y-x*x),_=(x*m-d*b)/y,w=(-x*d-m*b)/y,S=(x*m+d*b)/y,k=(-x*d+m*b)/y,E=_-p,A=w-v,N=S-p,C=k-v;return E*E+A*A>N*N+C*C&&(_=S,w=k),[[_-c,w-l],[_*e/M,w*e/M]]}function ho(n){function t(t){function o(){l.push("M",i(n(s),a))}for(var c,l=[],s=[],f=-1,h=t.length,g=Et(e),p=Et(r);++f<h;)u.call(this,c=t[f],f)?s.push([+g.call(this,c,f),+p.call(this,c,f)]):s.length&&(o(),s=[]);return s.length&&o(),l.length?l.join(""):null}var e=Ar,r=Nr,u=Ne,i=go,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=El.get(n)||go).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function go(n){return n.join("L")}function po(n){return go(n)+"Z"}function vo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function mo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function yo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function Mo(n,t){return n.length<4?go(n):n[1]+_o(n.slice(1,-1),wo(n,t))}function xo(n,t){return n.length<3?go(n):n[0]+_o((n.push(n[0]),n),wo([n[n.length-2]].concat(n,[n[1]]),t))}function bo(n,t){return n.length<3?go(n):n[0]+_o(n,wo(n,t))}function _o(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return go(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var l=2;l<t.length;l++,c++)i=n[c],a=t[l],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var s=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+s[0]+","+s[1]}return r}function wo(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function So(n){if(n.length<3)return go(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",No(Cl,o),",",No(Cl,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Co(c,o,a);return n.pop(),c.push("L",r),c.join("")}function ko(n){if(n.length<4)return go(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(No(Cl,i)+","+No(Cl,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),Co(e,i,o);return e.join("")}function Eo(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[No(Cl,o),",",No(Cl,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Co(t,o,a);return t.join("")}function Ao(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,l=-1;++l<=e;)r=n[l],u=l/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return So(n)}function No(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Co(n,t,e){n.push("C",No(Al,t),",",No(Al,e),",",No(Nl,t),",",No(Nl,e),",",No(Cl,t),",",No(Cl,e))}function zo(n,t){return(t[1]-n[1])/(t[0]-n[0])}function qo(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=zo(u,i);++t<e;)r[t]=(o+(o=zo(u=i,i=n[t+1])))/2;return r[t]=o,r}function Lo(n){for(var t,e,r,u,i=[],o=qo(n),a=-1,c=n.length-1;++a<c;)t=zo(n[a],n[a+1]),ga(t)<Ca?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function To(n){return n.length<3?go(n):n[0]+_o(n,Lo(n))}function Ro(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]-Ra,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Do(n){function t(t){function c(){v.push("M",a(n(m),f),s,l(n(d.reverse()),f),"Z")}for(var h,g,p,v=[],d=[],m=[],y=-1,M=t.length,x=Et(e),b=Et(u),_=e===r?function(){return g}:Et(r),w=u===i?function(){return p}:Et(i);++y<M;)o.call(this,h=t[y],y)?(d.push([g=+x.call(this,h,y),p=+b.call(this,h,y)]),m.push([+_.call(this,h,y),+w.call(this,h,y)])):d.length&&(c(),d=[],m=[]);return d.length&&c(),v.length?v.join(""):null}var e=Ar,r=Ar,u=0,i=Nr,o=Ne,a=go,c=a.key,l=a,s="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r
},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=El.get(n)||go).key,l=a.reverse||a,s=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function Po(n){return n.radius}function Uo(n){return[n.x,n.y]}function jo(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]-Ra;return[e*Math.cos(r),e*Math.sin(r)]}}function Fo(){return 64}function Ho(){return"circle"}function Oo(n){var t=Math.sqrt(n/qa);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Io(n){return function(){var t,e;(t=this[n])&&(e=t[t.active])&&(--t.count?delete t[t.active]:delete this[n],t.active+=.5,e.event&&e.event.interrupt.call(this,this.__data__,e.index))}}function Yo(n,t,e){return ya(n,Pl),n.namespace=t,n.id=e,n}function Zo(n,t,e,r){var u=n.id,i=n.namespace;return Y(n,"function"==typeof e?function(n,o,a){n[i][u].tween.set(t,r(e.call(n,n.__data__,o,a)))}:(e=r(e),function(n){n[i][u].tween.set(t,e)}))}function Vo(n){return null==n&&(n=""),function(){this.textContent=n}}function Xo(n){return null==n?"__transition__":"__transition_"+n+"__"}function $o(n,t,e,r,u){var i=n[e]||(n[e]={active:0,count:0}),o=i[r];if(!o){var a=u.time;o=i[r]={tween:new l,time:a,delay:u.delay,duration:u.duration,ease:u.ease,index:t},u=null,++i.count,ta.timer(function(u){function c(e){if(i.active>r)return s();var u=i[i.active];u&&(--i.count,delete i[i.active],u.event&&u.event.interrupt.call(n,n.__data__,u.index)),i.active=r,o.event&&o.event.start.call(n,n.__data__,t),o.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&v.push(r)}),h=o.ease,f=o.duration,ta.timer(function(){return p.c=l(e||1)?Ne:l,1},0,a)}function l(e){if(i.active!==r)return 1;for(var u=e/f,a=h(u),c=v.length;c>0;)v[--c].call(n,a);return u>=1?(o.event&&o.event.end.call(n,n.__data__,t),s()):void 0}function s(){return--i.count?delete i[r]:delete n[e],1}var f,h,g=o.delay,p=ec,v=[];return p.t=g+a,u>=g?c(u-g):void(p.c=c)},0,a)}}function Bo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Wo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Jo(n){return n.toISOString()}function Go(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=ta.bisect(Vl,u);return i==Vl.length?[t.year,Vi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Vl[i-1]<Vl[i]/u?i-1:i]:[Bl,Vi(n,e)[2]]}return r.invert=function(t){return Ko(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Ko)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Ko(+e+1),t).length}var i=r.domain(),o=Pi(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(Fi(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Ko(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Ko(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Pi(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Ko(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Go(n.copy(),t,e)},Yi(r,n)}function Ko(n){return new Date(n)}function Qo(n){return JSON.parse(n.responseText)}function na(n){var t=ua.createRange();return t.selectNode(ua.body),t.createContextualFragment(n.responseText)}var ta={version:"3.5.5"},ea=[].slice,ra=function(n){return ea.call(n)},ua=this.document;if(ua)try{ra(ua.documentElement.childNodes)[0].nodeType}catch(ia){ra=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),ua)try{ua.createElement("DIV").style.setProperty("opacity",0,"")}catch(oa){var aa=this.Element.prototype,ca=aa.setAttribute,la=aa.setAttributeNS,sa=this.CSSStyleDeclaration.prototype,fa=sa.setProperty;aa.setAttribute=function(n,t){ca.call(this,n,t+"")},aa.setAttributeNS=function(n,t,e){la.call(this,n,t,e+"")},sa.setProperty=function(n,t,e){fa.call(this,n,t+"",e)}}ta.ascending=e,ta.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},ta.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i;)if(null!=(r=n[u])&&r>=r){e=r;break}for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=r;break}for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},ta.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i;)if(null!=(r=n[u])&&r>=r){e=r;break}for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=r;break}for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},ta.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o;)if(null!=(r=n[i])&&r>=r){e=u=r;break}for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=u=r;break}for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},ta.sum=function(n,t){var e,r=0,i=n.length,o=-1;if(1===arguments.length)for(;++o<i;)u(e=+n[o])&&(r+=e);else for(;++o<i;)u(e=+t.call(n,n[o],o))&&(r+=e);return r},ta.mean=function(n,t){var e,i=0,o=n.length,a=-1,c=o;if(1===arguments.length)for(;++a<o;)u(e=r(n[a]))?i+=e:--c;else for(;++a<o;)u(e=r(t.call(n,n[a],a)))?i+=e:--c;return c?i/c:void 0},ta.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;return i?u+i*(n[r]-u):u},ta.median=function(n,t){var i,o=[],a=n.length,c=-1;if(1===arguments.length)for(;++c<a;)u(i=r(n[c]))&&o.push(i);else for(;++c<a;)u(i=r(t.call(n,n[c],c)))&&o.push(i);return o.length?ta.quantile(o.sort(e),.5):void 0},ta.variance=function(n,t){var e,i,o=n.length,a=0,c=0,l=-1,s=0;if(1===arguments.length)for(;++l<o;)u(e=r(n[l]))&&(i=e-a,a+=i/++s,c+=i*(e-a));else for(;++l<o;)u(e=r(t.call(n,n[l],l)))&&(i=e-a,a+=i/++s,c+=i*(e-a));return s>1?c/(s-1):void 0},ta.deviation=function(){var n=ta.variance.apply(this,arguments);return n?Math.sqrt(n):n};var ha=i(e);ta.bisectLeft=ha.left,ta.bisect=ta.bisectRight=ha.right,ta.bisector=function(n){return i(1===n.length?function(t,r){return e(n(t),r)}:n)},ta.shuffle=function(n,t,e){(i=arguments.length)<3&&(e=n.length,2>i&&(t=0));for(var r,u,i=e-t;i;)u=Math.random()*i--|0,r=n[i+t],n[i+t]=n[u+t],n[u+t]=r;return n},ta.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ta.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},ta.zip=function(){if(!(r=arguments.length))return[];for(var n=-1,t=ta.min(arguments,o),e=new Array(t);++n<t;)for(var r,u=-1,i=e[n]=new Array(r);++u<r;)i[u]=arguments[u][n];return e},ta.transpose=function(n){return ta.zip.apply(ta,n)},ta.keys=function(n){var t=[];for(var e in n)t.push(e);return t},ta.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},ta.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},ta.merge=function(n){for(var t,e,r,u=n.length,i=-1,o=0;++i<u;)o+=n[i].length;for(e=new Array(o);--u>=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ga=Math.abs;ta.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,u=[],i=a(ga(e)),o=-1;if(n*=i,t*=i,e*=i,0>e)for(;(r=n+e*++o)>t;)u.push(r/i);else for(;(r=n+e*++o)<t;)u.push(r/i);return u},ta.map=function(n,t){var e=new l;if(n instanceof l)n.forEach(function(n,t){e.set(n,t)});else if(Array.isArray(n)){var r,u=-1,i=n.length;if(1===arguments.length)for(;++u<i;)e.set(u,n[u]);else for(;++u<i;)e.set(t.call(n,r=n[u],u),r)}else for(var o in n)e.set(o,n[o]);return e};var pa="__proto__",va="\x00";c(l,{has:h,get:function(n){return this._[s(n)]},set:function(n,t){return this._[s(n)]=t},remove:g,keys:p,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:f(t),value:this._[t]});return n},size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t),this._[t])}}),ta.nest=function(){function n(t,o,a){if(a>=i.length)return r?r.call(u,o):e?o.sort(e):o;for(var c,s,f,h,g=-1,p=o.length,v=i[a++],d=new l;++g<p;)(h=d.get(c=v(s=o[g])))?h.push(s):d.set(c,[s]);return t?(s=t(),f=function(e,r){s.set(e,n(t,r,a))}):(s={},f=function(e,r){s[e]=n(t,r,a)}),d.forEach(f),s}function t(n,e){if(e>=i.length)return n;var r=[],u=o[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],o=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(ta.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return o[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},ta.set=function(n){var t=new m;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},c(m,{has:h,add:function(n){return this._[s(n+="")]=!0,n},remove:g,values:p,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t))}}),ta.behavior={},ta.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=M(n,t,t[e]);return n};var da=["webkit","ms","moz","Moz","o","O"];ta.dispatch=function(){for(var n=new _,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=w(n);return n},_.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ta.event=null,ta.requote=function(n){return n.replace(ma,"\\$&")};var ma=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ya={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},Ma=function(n,t){return t.querySelector(n)},xa=function(n,t){return t.querySelectorAll(n)},ba=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(ba=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(Ma=function(n,t){return Sizzle(n,t)[0]||null},xa=Sizzle,ba=Sizzle.matchesSelector),ta.selection=function(){return ta.select(ua.documentElement)};var _a=ta.selection.prototype=[];_a.select=function(n){var t,e,r,u,i=[];n=N(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,l=r.length;++c<l;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return A(i)},_a.selectAll=function(n){var t,e,r=[];n=C(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=ra(n.call(e,e.__data__,a,u))),t.parentNode=e);return A(r)};var wa={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};ta.ns={prefix:wa,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.slice(0,t),n=n.slice(t+1)),wa.hasOwnProperty(e)?{space:wa[e],local:n}:n}},_a.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ta.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},_a.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!L(n[u]).test(t))return!1;return!0}for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},_a.style=function(n,e,r){var u=arguments.length;if(3>u){if("string"!=typeof n){2>u&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>u){var i=this.node();return t(i).getComputedStyle(i,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},_a.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},_a.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},_a.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},_a.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},_a.insert=function(n,t){return n=j(n),t=N(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},_a.remove=function(){return this.each(F)},_a.data=function(n,t){function e(n,e){var r,u,i,o=n.length,f=e.length,h=Math.min(o,f),g=new Array(f),p=new Array(f),v=new Array(o);if(t){var d,m=new l,y=new Array(o);for(r=-1;++r<o;)m.has(d=t.call(u=n[r],u.__data__,r))?v[r]=u:m.set(d,u),y[r]=d;for(r=-1;++r<f;)(u=m.get(d=t.call(e,i=e[r],r)))?u!==!0&&(g[r]=u,u.__data__=i):p[r]=H(i),m.set(d,!0);for(r=-1;++r<o;)m.get(y[r])!==!0&&(v[r]=n[r])}else{for(r=-1;++r<h;)u=n[r],i=e[r],u?(u.__data__=i,g[r]=u):p[r]=H(i);for(;f>r;++r)p[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,a.push(p),c.push(g),s.push(v)}var r,u,i=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++i<o;)(u=r[i])&&(n[i]=u.__data__);return n}var a=Z([]),c=A([]),s=A([]);if("function"==typeof n)for(;++i<o;)e(r=this[i],n.call(r,r.parentNode.__data__,i));else for(;++i<o;)e(r=this[i],n);return c.enter=function(){return a},c.exit=function(){return s},c},_a.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},_a.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=O(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return A(u)},_a.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},_a.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},_a.each=function(n){return Y(this,function(t,e,r){n.call(t,t.__data__,e,r)})},_a.call=function(n){var t=ra(arguments);return n.apply(t[0]=this,t),this},_a.empty=function(){return!this.node()},_a.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},_a.size=function(){var n=0;return Y(this,function(){++n}),n};var Sa=[];ta.selection.enter=Z,ta.selection.enter.prototype=Sa,Sa.append=_a.append,Sa.empty=_a.empty,Sa.node=_a.node,Sa.call=_a.call,Sa.size=_a.size,Sa.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var l=-1,s=u.length;++l<s;)(i=u[l])?(t.push(r[l]=e=n.call(u.parentNode,i.__data__,l,a)),e.__data__=i.__data__):t.push(null)}return A(o)},Sa.insert=function(n,t){return arguments.length<2&&(t=V(this)),_a.insert.call(this,n,t)},ta.select=function(t){var e;return"string"==typeof t?(e=[Ma(t,ua)],e.parentNode=ua.documentElement):(e=[t],e.parentNode=n(t)),A([e])},ta.selectAll=function(n){var t;return"string"==typeof n?(t=ra(xa(n,ua)),t.parentNode=ua.documentElement):(t=n,t.parentNode=null),A([t])},_a.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var ka=ta.map({mouseenter:"mouseover",mouseleave:"mouseout"});ua&&ka.forEach(function(n){"on"+n in ua&&ka.remove(n)});var Ea,Aa=0;ta.mouse=function(n){return J(n,k())};var Na=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ta.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return J(n,r)},ta.behavior.drag=function(){function n(){this.on("mousedown.drag",i).on("touchstart.drag",o)}function e(n,t,e,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],p|=n|e,M=r,g({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&ta.event.target===f),g({type:"dragend"}))}var l,s=this,f=ta.event.target,h=s.parentNode,g=r.of(s,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=ta.select(e(f)).on(i+d,a).on(o+d,c),y=W(f),M=t(h,v);u?(l=u.apply(s,arguments),l=[l.x-M[0],l.y-M[1]]):l=[0,0],g({type:"dragstart"})}}var r=E(n,"drag","dragstart","dragend"),u=null,i=e(b,ta.mouse,t,"mousemove","mouseup"),o=e(G,ta.touch,y,"touchmove","touchend");return n.origin=function(t){return arguments.length?(u=t,n):u},ta.rebind(n,r,"on")},ta.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?ra(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Ca=1e-6,za=Ca*Ca,qa=Math.PI,La=2*qa,Ta=La-Ca,Ra=qa/2,Da=qa/180,Pa=180/qa,Ua=Math.SQRT2,ja=2,Fa=4;ta.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=rt(v),o=i/(ja*h)*(e*ut(Ua*t+v)-et(v));return[r+o*l,u+o*s,i*e/rt(Ua*t+v)]}return[r+n*l,u+n*s,i*Math.exp(Ua*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],l=o-r,s=a-u,f=l*l+s*s,h=Math.sqrt(f),g=(c*c-i*i+Fa*f)/(2*i*ja*h),p=(c*c-i*i-Fa*f)/(2*c*ja*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Ua;return e.duration=1e3*y,e},ta.behavior.zoom=function(){function n(n){n.on(q,f).on(Oa+".zoom",g).on("dblclick.zoom",p).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function u(n){k.k=Math.max(N[0],Math.min(N[1],n))}function i(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},u(Math.pow(2,o)),i(d=e,r),t=ta.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function c(n){z++||n({type:"zoomstart"})}function l(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function s(n){--z||n({type:"zoomend"}),d=null}function f(){function n(){f=1,i(ta.mouse(u),g),l(a)}function r(){h.on(L,null).on(T,null),p(f&&ta.event.target===o),s(a)}var u=this,o=ta.event.target,a=D.of(u,arguments),f=0,h=ta.select(t(u)).on(L,n).on(T,r),g=e(ta.mouse(u)),p=W(u);Dl.call(u),c(a)}function h(){function n(){var n=ta.touches(p);return g=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ta.event.target;ta.select(t).on(x,r).on(b,a),_.push(t);for(var e=ta.event.changedTouches,u=0,i=e.length;i>u;++u)d[e[u].identifier]=null;var c=n(),l=Date.now();if(1===c.length){if(500>l-M){var s=c[0];o(p,s,d[s.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=l}else if(c.length>1){var s=c[0],f=c[1],h=s[0]-f[0],g=s[1]-f[1];m=h*h+g*g}}function r(){var n,t,e,r,o=ta.touches(p);Dl.call(p);for(var a=0,c=o.length;c>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var s=(s=e[0]-n[0])*s+(s=e[1]-n[1])*s,f=m&&Math.sqrt(s/m);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],u(f*g)}M=null,i(n,t),l(v)}function a(){if(ta.event.touches.length){for(var t=ta.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var u in d)return void n()}ta.selectAll(_).on(y,null),w.on(q,f).on(R,h),E(),s(v)}var g,p=this,v=D.of(p,arguments),d={},m=0,y=".zoom-"+ta.event.changedTouches[0].identifier,x="touchmove"+y,b="touchend"+y,_=[],w=ta.select(p),E=W(p);t(),c(v),w.on(q,null).on(R,t)}function g(){var n=D.of(this,arguments);y?clearTimeout(y):(v=e(d=m||ta.mouse(this)),Dl.call(this),c(n)),y=setTimeout(function(){y=null,s(n)},50),S(),u(Math.pow(2,.002*Ha())*k.k),i(d,v),l(n)}function p(){var n=ta.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ta.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,m,y,M,x,b,_,w,k={x:0,y:0,k:1},A=[960,500],N=Ia,C=250,z=0,q="mousedown.zoom",L="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=E(n,"zoomstart","zoom","zoomend");return Oa||(Oa="onwheel"in ua?(Ha=function(){return-ta.event.deltaY*(ta.event.deltaMode?120:1)},"wheel"):"onmousewheel"in ua?(Ha=function(){return ta.event.wheelDelta},"mousewheel"):(Ha=function(){return-ta.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Tl?ta.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},c(n)}).tween("zoom:zoom",function(){var e=A[0],r=A[1],u=d?d[0]:e/2,i=d?d[1]:r/2,o=ta.interpolateZoom([(u-k.x)/k.k,(i-k.y)/k.k,e/k.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:u-r[0]*a,y:i-r[1]*a,k:a},l(n)}}).each("interrupt.zoom",function(){s(n)}).each("end.zoom",function(){s(n)}):(this.__chart__=k,c(n),l(n),s(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:+t},a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(N=null==t?Ia:[+t[0],+t[1]],n):N},n.center=function(t){return arguments.length?(m=t&&[+t[0],+t[1]],n):m},n.size=function(t){return arguments.length?(A=t&&[+t[0],+t[1]],n):A},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ta.rebind(n,D,"on")};var Ha,Oa,Ia=[0,1/0];ta.color=ot,ot.prototype.toString=function(){return this.rgb()+""},ta.hsl=at;var Ya=at.prototype=new ot;Ya.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,this.l/n)},Ya.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,n*this.l)},Ya.rgb=function(){return ct(this.h,this.s,this.l)},ta.hcl=lt;var Za=lt.prototype=new ot;Za.brighter=function(n){return new lt(this.h,this.c,Math.min(100,this.l+Va*(arguments.length?n:1)))},Za.darker=function(n){return new lt(this.h,this.c,Math.max(0,this.l-Va*(arguments.length?n:1)))},Za.rgb=function(){return st(this.h,this.c,this.l).rgb()},ta.lab=ft;var Va=18,Xa=.95047,$a=1,Ba=1.08883,Wa=ft.prototype=new ot;Wa.brighter=function(n){return new ft(Math.min(100,this.l+Va*(arguments.length?n:1)),this.a,this.b)},Wa.darker=function(n){return new ft(Math.max(0,this.l-Va*(arguments.length?n:1)),this.a,this.b)},Wa.rgb=function(){return ht(this.l,this.a,this.b)},ta.rgb=mt;var Ja=mt.prototype=new ot;Ja.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new mt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mt(u,u,u)},Ja.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mt(n*this.r,n*this.g,n*this.b)},Ja.hsl=function(){return _t(this.r,this.g,this.b)},Ja.toString=function(){return"#"+xt(this.r)+xt(this.g)+xt(this.b)};var Ga=ta.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});Ga.forEach(function(n,t){Ga.set(n,yt(t))}),ta.functor=Et,ta.xhr=At(y),ta.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=Nt(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(s>=l)return o;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++<l;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}s=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++s):10===r&&(u=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;l>s;){var r=n.charCodeAt(s++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(s)&&(++s,++a);else if(r!==c)continue;return n.slice(t,s-a)}return n.slice(t)}for(var r,u,i={},o={},a=[],l=n.length,s=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,f++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new m,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},ta.csv=ta.dsv(",","text/csv"),ta.tsv=ta.dsv(" ","text/tab-separated-values");var Ka,Qa,nc,tc,ec,rc=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ta.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Qa?Qa.n=i:Ka=i,Qa=i,nc||(tc=clearTimeout(tc),nc=1,rc(qt))},ta.timer.flush=function(){Lt(),Tt()},ta.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var uc=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Dt);ta.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=ta.round(n,Rt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),uc[8+e/3]};var ic=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,oc=ta.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ta.round(n,Rt(n,t))).toFixed(Math.max(0,Math.min(20,Rt(n*(1+1e-15),t))))}}),ac=ta.time={},cc=Date;jt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){lc.setUTCDate.apply(this._,arguments)},setDay:function(){lc.setUTCDay.apply(this._,arguments)},setFullYear:function(){lc.setUTCFullYear.apply(this._,arguments)},setHours:function(){lc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){lc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){lc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){lc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){lc.setUTCSeconds.apply(this._,arguments)},setTime:function(){lc.setTime.apply(this._,arguments)}};var lc=Date.prototype;ac.year=Ft(function(n){return n=ac.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ac.years=ac.year.range,ac.years.utc=ac.year.utc.range,ac.day=Ft(function(n){var t=new cc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ac.days=ac.day.range,ac.days.utc=ac.day.utc.range,ac.dayOfYear=function(n){var t=ac.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ac[n]=Ft(function(n){return(n=ac.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ac[n+"s"]=e.range,ac[n+"s"].utc=e.utc.range,ac[n+"OfYear"]=function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)}}),ac.week=ac.sunday,ac.weeks=ac.sunday.range,ac.weeks.utc=ac.sunday.utc.range,ac.weekOfYear=ac.sundayOfYear;var sc={"-":"",_:" ",0:"0"},fc=/^\s*\d+/,hc=/^%/;ta.locale=function(n){return{numberFormat:Pt(n),timeFormat:Ot(n)}};var gc=ta.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ta.format=gc.numberFormat,ta.geo={},ce.prototype={s:0,t:0,add:function(n){le(n,this.t,pc),le(pc.s,this.s,this),this.s?this.t+=pc.t:this.s=pc.t
},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var pc=new ce;ta.geo.stream=function(n,t){n&&vc.hasOwnProperty(n.type)?vc[n.type](n,t):se(n,t)};var vc={Feature:function(n,t){se(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)se(e[r].geometry,t)}},dc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){fe(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)fe(e[r],t,0)},Polygon:function(n,t){he(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)he(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)se(e[r],t)}};ta.geo.area=function(n){return mc=0,ta.geo.stream(n,Mc),mc};var mc,yc=new ce,Mc={sphere:function(){mc+=4*qa},point:b,lineStart:b,lineEnd:b,polygonStart:function(){yc.reset(),Mc.lineStart=ge},polygonEnd:function(){var n=2*yc;mc+=0>n?4*qa+n:n,Mc.lineStart=Mc.lineEnd=Mc.point=b}};ta.geo.bounds=function(){function n(n,t){M.push(x=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=pe([t*Da,e*Da]);if(m){var u=de(m,r),i=[u[1],-u[0],0],o=de(i,u);Me(o),o=xe(o);var c=t-p,l=c>0?1:-1,v=o[0]*Pa*l,d=ga(c)>180;if(d^(v>l*p&&l*t>v)){var y=o[1]*Pa;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>l*p&&l*t>v)){var y=-o[1]*Pa;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t)}else n(t,e);m=r,p=t}function e(){b.point=t}function r(){x[0]=s,x[1]=h,b.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ga(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Mc.point(n,e),t(n,e)}function i(){Mc.lineStart()}function o(){u(v,d),Mc.lineEnd(),ga(y)>Ca&&(s=-(h=180)),x[0]=s,x[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var s,f,h,g,p,v,d,m,y,M,x,b={point:n,lineStart:e,lineEnd:r,polygonStart:function(){b.point=u,b.lineStart=i,b.lineEnd=o,y=0,Mc.polygonStart()},polygonEnd:function(){Mc.polygonEnd(),b.point=n,b.lineStart=e,b.lineEnd=r,0>yc?(s=-(h=180),f=-(g=90)):y>Ca?g=90:-Ca>y&&(f=-90),x[0]=s,x[1]=h}};return function(n){g=h=-(s=f=1/0),M=[],ta.geo.stream(n,b);var t=M.length;if(t){M.sort(c);for(var e,r=1,u=M[0],i=[u];t>r;++r)e=M[r],l(e[0],u)||l(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,s=e[0],h=u[1])}return M=x=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),ta.geo.centroid=function(n){xc=bc=_c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,qc);var t=Nc,e=Cc,r=zc,u=t*t+e*e+r*r;return za>u&&(t=kc,e=Ec,r=Ac,Ca>bc&&(t=_c,e=wc,r=Sc),u=t*t+e*e+r*r,za>u)?[0/0,0/0]:[Math.atan2(e,t)*Pa,tt(r/Math.sqrt(u))*Pa]};var xc,bc,_c,wc,Sc,kc,Ec,Ac,Nc,Cc,zc,qc={sphere:b,point:_e,lineStart:Se,lineEnd:ke,polygonStart:function(){qc.lineStart=Ee},polygonEnd:function(){qc.lineStart=Se}},Lc=Le(Ne,Pe,je,[-qa,-qa/2]),Tc=1e9;ta.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ie(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ta.geo.conicEqualArea=function(){return Ye(Ze)}).raw=Ze,ta.geo.albers=function(){return ta.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ta.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=ta.geo.albers(),o=ta.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ta.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),s=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,r=o.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+Ca,f+.12*l+Ca],[s-.214*l-Ca,f+.234*l-Ca]]).stream(c).point,u=a.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+Ca,f+.166*l+Ca],[s-.115*l-Ca,f+.234*l-Ca]]).stream(c).point,n},n.scale(1070)};var Rc,Dc,Pc,Uc,jc,Fc,Hc={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Dc=0,Hc.lineStart=Ve},polygonEnd:function(){Hc.lineStart=Hc.lineEnd=Hc.point=b,Rc+=ga(Dc/2)}},Oc={point:Xe,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Ic={point:We,lineStart:Je,lineEnd:Ge,polygonStart:function(){Ic.lineStart=Ke},polygonEnd:function(){Ic.point=We,Ic.lineStart=Je,Ic.lineEnd=Ge}};ta.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),ta.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Rc=0,ta.geo.stream(n,u(Hc)),Rc},n.centroid=function(n){return _c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,u(Ic)),zc?[Nc/zc,Cc/zc]:Ac?[kc/Ac,Ec/Ac]:Sc?[_c/Sc,wc/Sc]:[0/0,0/0]},n.bounds=function(n){return jc=Fc=-(Pc=Uc=1/0),ta.geo.stream(n,u(Oc)),[[Pc,Uc],[jc,Fc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||tr(n):y,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new $e:new Qe(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(ta.geo.albersUsa()).context(null)},ta.geo.transform=function(n){return{stream:function(t){var e=new er(t);for(var r in n)e[r]=n[r];return e}}},er.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ta.geo.projection=ur,ta.geo.projectionMutator=ir,(ta.geo.equirectangular=function(){return ur(ar)}).raw=ar.invert=ar,ta.geo.rotation=function(n){function t(t){return t=n(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t}return n=lr(n[0]%360*Da,n[1]*Da,n.length>2?n[2]*Da:0),t.invert=function(t){return t=n.invert(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t},t},cr.invert=ar,ta.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=lr(-n[0]*Da,-n[1]*Da,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Pa,n[1]*=Pa}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=gr((t=+r)*Da,u*Da),n):t},n.precision=function(r){return arguments.length?(e=gr(t*Da,(u=+r)*Da),n):u},n.angle(90)},ta.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Da,u=n[1]*Da,i=t[1]*Da,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),l=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=l*s-c*f*a)*e),c*s+l*f*a)},ta.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ta.range(Math.ceil(i/d)*d,u,d).map(h).concat(ta.range(Math.ceil(l/m)*m,c,m).map(g)).concat(ta.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ga(n%d)>Ca}).map(s)).concat(ta.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ga(n%m)>Ca}).map(f))}var e,r,u,i,o,a,c,l,s,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],l=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[i,l],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,s=vr(a,o,90),f=dr(r,e,y),h=vr(l,c,90),g=dr(i,u,y),n):y},n.majorExtent([[-180,-90+Ca],[180,90-Ca]]).minorExtent([[-180,-80-Ca],[180,80+Ca]])},ta.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=mr,u=yr;return n.distance=function(){return ta.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},ta.geo.interpolate=function(n,t){return Mr(n[0]*Da,n[1]*Da,t[0]*Da,t[1]*Da)},ta.geo.length=function(n){return Yc=0,ta.geo.stream(n,Zc),Yc};var Yc,Zc={sphere:b,point:b,lineStart:xr,lineEnd:b,polygonStart:b,polygonEnd:b},Vc=br(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ta.geo.azimuthalEqualArea=function(){return ur(Vc)}).raw=Vc;var Xc=br(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},y);(ta.geo.azimuthalEquidistant=function(){return ur(Xc)}).raw=Xc,(ta.geo.conicConformal=function(){return Ye(_r)}).raw=_r,(ta.geo.conicEquidistant=function(){return Ye(wr)}).raw=wr;var $c=br(function(n){return 1/n},Math.atan);(ta.geo.gnomonic=function(){return ur($c)}).raw=$c,Sr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ra]},(ta.geo.mercator=function(){return kr(Sr)}).raw=Sr;var Bc=br(function(){return 1},Math.asin);(ta.geo.orthographic=function(){return ur(Bc)}).raw=Bc;var Wc=br(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ta.geo.stereographic=function(){return ur(Wc)}).raw=Wc,Er.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ra]},(ta.geo.transverseMercator=function(){var n=kr(Er),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Er,ta.geom={},ta.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=Et(e),i=Et(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(zr),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var l=Cr(a),s=Cr(c),f=s[0]===l[0],h=s[s.length-1]===l[l.length-1],g=[];for(t=l.length-1;t>=0;--t)g.push(n[a[l[t]][2]]);for(t=+f;t<s.length-h;++t)g.push(n[a[s[t]][2]]);return g}var e=Ar,r=Nr;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},ta.geom.polygon=function(n){return ya(n,Jc),n};var Jc=ta.geom.polygon.prototype=[];Jc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},Jc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},Jc.clip=function(n){for(var t,e,r,u,i,o,a=Tr(n),c=-1,l=this.length-Tr(this),s=this[l-1];++c<l;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],qr(o,s,u)?(qr(i,s,u)||n.push(Lr(i,o,s,u)),n.push(o)):qr(i,s,u)&&n.push(Lr(i,o,s,u)),i=o;a&&n.push(n[0]),s=u}return n};var Gc,Kc,Qc,nl,tl,el=[],rl=[];Or.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Yr),t.length},Qr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},nu.prototype={insert:function(n,t){var e,r,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=uu(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(u=r.R,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.R&&(eu(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ru(this,r))):(u=r.L,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.L&&(ru(this,e),n=e,e=n.U),e.C=!1,r.C=!0,eu(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,u=n.U,i=n.L,o=n.R;if(e=i?o?uu(o):i:o,u?u.L===n?u.L=e:u.R=e:this._=e,i&&o?(r=e.C,e.C=n.C,e.L=i,i.U=e,e!==o?(u=e.U,e.U=n.U,n=e.R,u.L=n,e.R=o,o.U=e):(e.U=u,u=e,n=e.R)):(r=n.C,n=e),n&&(n.U=u),!r){if(n&&n.C)return void(n.C=!1);do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,eu(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ru(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,eu(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,ru(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,eu(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,ru(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},ta.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return iu(e(n),a).cells.forEach(function(e,a){var c=e.edges,l=e.site,s=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):l.x>=r&&l.x<=i&&l.y>=u&&l.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];s.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Ca)*Ca,y:Math.round(o(n,t)/Ca)*Ca,i:t}})}var r=Ar,u=Nr,i=r,o=u,a=ul;return n?t(n):(t.links=function(n){return iu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return iu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Yr),c=-1,l=a.length,s=a[l-1].edge,f=s.l===o?s.r:s.l;++c<l;)u=s,i=f,s=a[c].edge,f=s.l===o?s.r:s.l,r<i.i&&r<f.i&&au(o,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=Et(r=n),t):r},t.y=function(n){return arguments.length?(o=Et(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?ul:n,t):a===ul?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===ul?null:a&&a[1]},t)};var ul=[[-1e6,-1e6],[1e6,1e6]];ta.geom.delaunay=function(n){return ta.geom.voronoi().triangles(n)},ta.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,s=n.y;if(null!=c)if(ga(c-e)+ga(s-r)<.01)l(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,l(n,f,c,s,u,i,o,a),l(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else l(n,t,e,r,u,i,o,a)}function l(n,t,e,r,u,o,a,c){var l=.5*(u+a),s=.5*(o+c),f=e>=l,h=r>=s,g=h<<1|f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=su()),f?u=l:a=l,h?o=s:c=s,i(n,t,e,r,u,o,a,c)}var s,f,h,g,p,v,d,m,y,M=Et(a),x=Et(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)s=n[g],s.x<v&&(v=s.x),s.y<d&&(d=s.y),s.x>m&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var b=+M(s=n[g],g),_=+x(s,g);v>b&&(v=b),d>_&&(d=_),b>m&&(m=b),_>y&&(y=_),f.push(b),h.push(_)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=su();if(k.add=function(n){i(k,n,+M(n,++g),+x(n,g),v,d,m,y)},k.visit=function(n){fu(n,k,v,d,m,y)},k.find=function(n){return hu(k,n[0],n[1],v,d,m,y)},g=-1,null==t){for(;++g<p;)i(k,n[g],f[g],h[g],v,d,m,y);--g}else n.forEach(k.add);return f=h=n=s=null,k}var o,a=Ar,c=Nr;return(o=arguments.length)?(a=cu,c=lu,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},ta.interpolateRgb=gu,ta.interpolateObject=pu,ta.interpolateNumber=vu,ta.interpolateString=du;var il=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ol=new RegExp(il.source,"g");ta.interpolate=mu,ta.interpolators=[function(n,t){var e=typeof t;return("string"===e?Ga.has(t)||/^(#|rgb\(|hsl\()/.test(t)?gu:du:t instanceof ot?gu:Array.isArray(t)?yu:"object"===e&&isNaN(t)?pu:vu)(n,t)}],ta.interpolateArray=yu;var al=function(){return y},cl=ta.map({linear:al,poly:ku,quad:function(){return _u},cubic:function(){return wu},sin:function(){return Eu},exp:function(){return Au},circle:function(){return Nu},elastic:Cu,back:zu,bounce:function(){return qu}}),ll=ta.map({"in":y,out:xu,"in-out":bu,"out-in":function(n){return bu(xu(n))}});ta.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=cl.get(e)||al,r=ll.get(r)||y,Mu(r(e.apply(null,ea.call(arguments,1))))},ta.interpolateHcl=Lu,ta.interpolateHsl=Tu,ta.interpolateLab=Ru,ta.interpolateRound=Du,ta.transform=function(n){var t=ua.createElementNS(ta.ns.prefix.svg,"g");return(ta.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Pu(e?e.matrix:sl)})(n)},Pu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var sl={a:1,b:0,c:0,d:1,e:0,f:0};ta.interpolateTransform=Hu,ta.layout={},ta.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Yu(n[e]));return t}},ta.layout.chord=function(){function n(){var n,l,f,h,g,p={},v=[],d=ta.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(l=0,g=-1;++g<i;)l+=u[h][g];v.push(l),m.push(ta.range(i)),n+=l}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(La-s*i)/n,l=0,h=-1;++h<i;){for(f=l,g=-1;++g<i;){var y=d[h],M=m[y][g],x=u[y][M],b=l,_=l+=x*n;p[y+"-"+M]={index:y,subindex:M,startAngle:b,endAngle:_,value:x}}r[y]={index:y,startAngle:f,endAngle:l,value:(l-f)/n},l+=s}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,l={},s=0;return l.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,l):u},l.padding=function(n){return arguments.length?(s=n,e=r=null,l):s},l.sortGroups=function(n){return arguments.length?(o=n,e=r=null,l):o},l.sortSubgroups=function(n){return arguments.length?(a=n,e=null,l):a},l.sortChords=function(n){return arguments.length?(c=n,e&&t(),l):c},l.chords=function(){return e||n(),e},l.groups=function(){return r||n(),r},l},ta.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=u-e,c=i*i+o*o;if(c>a*a/d){if(p>c){var l=t.charge/c;n.px-=i*l,n.py-=o*l}return!0}if(t.point&&c&&p>c){var l=t.pointCharge/c;n.px-=i*l,n.py-=o*l}}return!t.charge}}function t(n){n.px=ta.event.x,n.py=ta.event.y,a.resume()}var e,r,u,i,o,a={},c=ta.dispatch("start","tick","end"),l=[1,1],s=.9,f=fl,h=hl,g=-30,p=gl,v=.1,d=.64,m=[],M=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,y,x,b=m.length,_=M.length;for(e=0;_>e;++e)a=M[e],f=a.source,h=a.target,y=h.x-f.x,x=h.y-f.y,(p=y*y+x*x)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,y*=p,x*=p,h.x-=y*(d=f.weight/(h.weight+f.weight)),h.y-=x*d,f.x+=y*(d=1-d),f.y+=x*d);if((d=r*v)&&(y=l[0]/2,x=l[1]/2,e=-1,d))for(;++e<b;)a=m[e],a.x+=(y-a.x)*d,a.y+=(x-a.y)*d;if(g)for(Ju(t=ta.geom.quadtree(m),r,o),e=-1;++e<b;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<b;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*s,a.y-=(a.py-(a.py=a.y))*s);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(M=n,a):M},a.size=function(n){return arguments.length?(l=n,a):l},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(s=+n,a):s},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),ta.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=M[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,l=o.length;++a<l;)if(!isNaN(i=o[a][n]))return i;return Math.random()*r}var t,e,r,c=m.length,s=M.length,p=l[0],v=l[1];for(t=0;c>t;++t)(r=m[t]).index=t,r.weight=0;for(t=0;s>t;++t)r=M[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;s>t;++t)u[t]=+f.call(this,M[t],t);else for(t=0;s>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;s>t;++t)i[t]=+h.call(this,M[t],t);else for(t=0;s>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=ta.behavior.drag().origin(y).on("dragstart.force",Xu).on("drag.force",t).on("dragend.force",$u)),arguments.length?void this.on("mouseover.force",Bu).on("mouseout.force",Wu).call(e):e},ta.rebind(a,c,"on")};var fl=20,hl=1,gl=1/0;ta.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(l=e.call(n,i,i.depth))&&(c=l.length)){for(var c,l,s;--c>=0;)o.push(s=l[c]),s.parent=i,s.depth=i.depth+1;r&&(i.value=0),i.children=l}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Qu(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=ei,e=ni,r=ti;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Ku(t,function(n){n.children&&(n.value=0)}),Qu(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ta.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,l=-1;for(r=t.value?r/t.value:0;++l<o;)n(a=i[l],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=ta.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},Gu(e,r)},ta.layout.pie=function(){function n(o){var a,c=o.length,l=o.map(function(e,r){return+t.call(n,e,r)}),s=+("function"==typeof r?r.apply(this,arguments):r),f=("function"==typeof u?u.apply(this,arguments):u)-s,h=Math.min(Math.abs(f)/c,+("function"==typeof i?i.apply(this,arguments):i)),g=h*(0>f?-1:1),p=(f-c*g)/ta.sum(l),v=ta.range(c),d=[];return null!=e&&v.sort(e===pl?function(n,t){return l[t]-l[n]}:function(n,t){return e(o[n],o[t])}),v.forEach(function(n){d[n]={data:o[n],value:a=l[n],startAngle:s,endAngle:s+=a*p+g,padAngle:h}}),d}var t=Number,e=pl,r=0,u=La,i=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n.padAngle=function(t){return arguments.length?(i=t,n):i},n};var pl={};ta.layout.stack=function(){function n(a,c){if(!(h=a.length))return a;var l=a.map(function(e,r){return t.call(n,e,r)}),s=l.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,s,c);l=ta.permute(l,f),s=ta.permute(s,f);var h,g,p,v,d=r.call(n,s,c),m=l[0].length;for(p=0;m>p;++p)for(u.call(n,l[0][p],v=d[p],s[0][p][1]),g=1;h>g;++g)u.call(n,l[g][p],v+=s[g-1][p][1],s[g][p][1]);return a}var t=y,e=ai,r=ci,u=oi,i=ui,o=ii;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:vl.get(t)||ai,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:dl.get(t)||ci,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var vl=ta.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(li),i=n.map(si),o=ta.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,l=[],s=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],l.push(e)):(c+=i[e],s.push(e));return s.reverse().concat(l)},reverse:function(n){return ta.range(n.length).reverse()},"default":ai}),dl=ta.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];s>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ci});ta.layout.histogram=function(){function n(n,i){for(var o,a,c=[],l=n.map(e,this),s=r.call(this,l,i),f=u.call(this,s,l,i),i=-1,h=l.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=l[i],a>=s[0]&&a<=s[1]&&(o=c[ta.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=pi,u=hi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=Et(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return gi(n,t)}:Et(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ta.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],l=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Qu(a,function(n){n.r=+s(n.value)}),Qu(a,Mi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/l))/2;Qu(a,function(n){n.r+=f}),Qu(a,Mi),Qu(a,function(n){n.r-=f})}return _i(a,c/2,l/2,t?1:1/Math.max(2*a.r/c,2*a.r/l)),o}var t,e=ta.layout.hierarchy().sort(vi),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Gu(n,e)},ta.layout.tree=function(){function n(n,u){var s=o.call(this,n,u),f=s[0],h=t(f);if(Qu(h,e),h.parent.m=-h.z,Ku(h,r),l)Ku(f,i);else{var g=f,p=f,v=f;Ku(f,function(n){n.x<g.x&&(g=n),n.x>p.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);Ku(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return s}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Ni(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],l=u.m,s=i.m,f=o.m,h=c.m;o=Ei(o),u=ki(u),o&&u;)c=ki(c),i=Ei(i),i.a=n,r=o.z+f-u.z-l+a(o._,u._),r>0&&(Ai(Ci(o,n,e),n,r),l+=r,s+=r),f+=o.m,l+=u.m,h+=c.m,s+=i.m;o&&!Ei(i)&&(i.t=o,i.m+=f-s),u&&!ki(c)&&(c.t=u,c.m+=l-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=ta.layout.hierarchy().sort(null).value(null),a=Si,c=[1,1],l=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(l=null==(c=t)?i:null,n):l?null:c},n.nodeSize=function(t){return arguments.length?(l=null==(c=t)?null:i,n):l?c:null},Gu(n,o)},ta.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],l=0;Qu(c,function(n){var t=n.children;t&&t.length?(n.x=qi(t),n.y=zi(t)):(n.x=o?l+=e(n,o):0,n.y=0,o=n)});var s=Li(c),f=Ti(c),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return Qu(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=ta.layout.hierarchy().sort(null).value(null),e=Si,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Gu(n,t)},ta.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,l=f(e),s=[],h=i.slice(),p=1/0,v="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/e.value),s.area=0;(c=h.length)>0;)s.push(o=h[c-1]),s.area+=o.area,"squarify"!==g||(a=r(s,v))<=p?(h.pop(),p=a):(s.area-=s.pop().area,u(s,v,l,!1),v=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,v,l,!0),s.length=s.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,l=e.y,s=t?c(n.area/t):0;if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++i<o;)u=n[i],u.x=a,u.y=l,u.dy=s,a+=u.dx=Math.min(e.x+e.dx-a,s?c(u.area/s):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=s,e.dy-=s}else{for((r||s>e.dx)&&(s=e.dx);++i<o;)u=n[i],u.x=a,u.y=l,u.dx=s,l+=u.dy=Math.min(e.y+e.dy-l,s?c(u.area/s):0);u.z=!1,u.dy+=e.y+e.dy-l,e.x+=s,e.dx-=s}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=l[0],i.dy=l[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=ta.layout.hierarchy(),c=Math.round,l=[1,1],s=null,f=Ri,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));
return i.size=function(n){return arguments.length?(l=n,i):l},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?Ri(t):Di(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Di(t,n)}if(!arguments.length)return s;var r;return f=null==(s=n)?Ri:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},Gu(i,a)},ta.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=ta.random.normal.apply(ta,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ta.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ta.scale={};var ml={floor:y,ceil:y};ta.scale.linear=function(){return Ii([0,1],[0,1],mu,!1)};var yl={s:1,g:1,p:1,r:1,e:1};ta.scale.log=function(){return Ji(ta.scale.linear().domain([0,1]),10,!0,[1,10])};var Ml=ta.format(".0e"),xl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ta.scale.pow=function(){return Gi(ta.scale.linear(),1,[0,1])},ta.scale.sqrt=function(){return ta.scale.pow().exponent(.5)},ta.scale.ordinal=function(){return Qi([],{t:"range",a:[[]]})},ta.scale.category10=function(){return ta.scale.ordinal().range(bl)},ta.scale.category20=function(){return ta.scale.ordinal().range(_l)},ta.scale.category20b=function(){return ta.scale.ordinal().range(wl)},ta.scale.category20c=function(){return ta.scale.ordinal().range(Sl)};var bl=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(Mt),_l=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(Mt),wl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(Mt),Sl=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(Mt);ta.scale.quantile=function(){return no([],[])},ta.scale.quantize=function(){return to(0,1,[0,1])},ta.scale.threshold=function(){return eo([.5],[0,1])},ta.scale.identity=function(){return ro([0,1])},ta.svg={},ta.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),l=Math.max(0,+r.apply(this,arguments)),s=o.apply(this,arguments)-Ra,f=a.apply(this,arguments)-Ra,h=Math.abs(f-s),g=s>f?0:1;if(n>l&&(p=l,l=n,n=p),h>=Ta)return t(l,g)+(n?t(n,1-g):"")+"Z";var p,v,d,m,y,M,x,b,_,w,S,k,E=0,A=0,N=[];if((m=(+c.apply(this,arguments)||0)/2)&&(d=i===kl?Math.sqrt(n*n+l*l):+i.apply(this,arguments),g||(A*=-1),l&&(A=tt(d/l*Math.sin(m))),n&&(E=tt(d/n*Math.sin(m)))),l){y=l*Math.cos(s+A),M=l*Math.sin(s+A),x=l*Math.cos(f-A),b=l*Math.sin(f-A);var C=Math.abs(f-s-2*A)<=qa?0:1;if(A&&so(y,M,x,b)===g^C){var z=(s+f)/2;y=l*Math.cos(z),M=l*Math.sin(z),x=b=null}}else y=M=0;if(n){_=n*Math.cos(f-E),w=n*Math.sin(f-E),S=n*Math.cos(s+E),k=n*Math.sin(s+E);var q=Math.abs(s-f+2*E)<=qa?0:1;if(E&&so(_,w,S,k)===1-g^q){var L=(s+f)/2;_=n*Math.cos(L),w=n*Math.sin(L),S=k=null}}else _=w=0;if((p=Math.min(Math.abs(l-n)/2,+u.apply(this,arguments)))>.001){v=l>n^g?0:1;var T=null==S?[_,w]:null==x?[y,M]:Lr([y,M],[S,k],[x,b],[_,w]),R=y-T[0],D=M-T[1],P=x-T[0],U=b-T[1],j=1/Math.sin(Math.acos((R*P+D*U)/(Math.sqrt(R*R+D*D)*Math.sqrt(P*P+U*U)))/2),F=Math.sqrt(T[0]*T[0]+T[1]*T[1]);if(null!=x){var H=Math.min(p,(l-F)/(j+1)),O=fo(null==S?[_,w]:[S,k],[y,M],l,H,g),I=fo([x,b],[_,w],l,H,g);p===H?N.push("M",O[0],"A",H,",",H," 0 0,",v," ",O[1],"A",l,",",l," 0 ",1-g^so(O[1][0],O[1][1],I[1][0],I[1][1]),",",g," ",I[1],"A",H,",",H," 0 0,",v," ",I[0]):N.push("M",O[0],"A",H,",",H," 0 1,",v," ",I[0])}else N.push("M",y,",",M);if(null!=S){var Y=Math.min(p,(n-F)/(j-1)),Z=fo([y,M],[S,k],n,-Y,g),V=fo([_,w],null==x?[y,M]:[x,b],n,-Y,g);p===Y?N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",V[1],"A",n,",",n," 0 ",g^so(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-g," ",Z[1],"A",Y,",",Y," 0 0,",v," ",Z[0]):N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",Z[0])}else N.push("L",_,",",w)}else N.push("M",y,",",M),null!=x&&N.push("A",l,",",l," 0 ",C,",",g," ",x,",",b),N.push("L",_,",",w),null!=S&&N.push("A",n,",",n," 0 ",q,",",1-g," ",S,",",k);return N.push("Z"),N.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=io,r=oo,u=uo,i=kl,o=ao,a=co,c=lo;return n.innerRadius=function(t){return arguments.length?(e=Et(t),n):e},n.outerRadius=function(t){return arguments.length?(r=Et(t),n):r},n.cornerRadius=function(t){return arguments.length?(u=Et(t),n):u},n.padRadius=function(t){return arguments.length?(i=t==kl?kl:Et(t),n):i},n.startAngle=function(t){return arguments.length?(o=Et(t),n):o},n.endAngle=function(t){return arguments.length?(a=Et(t),n):a},n.padAngle=function(t){return arguments.length?(c=Et(t),n):c},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Ra;return[Math.cos(t)*n,Math.sin(t)*n]},n};var kl="auto";ta.svg.line=function(){return ho(y)};var El=ta.map({linear:go,"linear-closed":po,step:vo,"step-before":mo,"step-after":yo,basis:So,"basis-open":ko,"basis-closed":Eo,bundle:Ao,cardinal:bo,"cardinal-open":Mo,"cardinal-closed":xo,monotone:To});El.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Al=[0,2/3,1/3,0],Nl=[0,1/3,2/3,0],Cl=[0,1/6,2/3,1/6];ta.svg.line.radial=function(){var n=ho(Ro);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},mo.reverse=yo,yo.reverse=mo,ta.svg.area=function(){return Do(y)},ta.svg.area.radial=function(){var n=Do(Ro);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ta.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),l=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,l)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+u(l.r,l.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)-Ra,s=l.call(n,u,r)-Ra;return{r:i,a0:o,a1:s,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>qa)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=mr,o=yr,a=Po,c=ao,l=co;return n.radius=function(t){return arguments.length?(a=Et(t),n):a},n.source=function(t){return arguments.length?(i=Et(t),n):i},n.target=function(t){return arguments.length?(o=Et(t),n):o},n.startAngle=function(t){return arguments.length?(c=Et(t),n):c},n.endAngle=function(t){return arguments.length?(l=Et(t),n):l},n},ta.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=mr,e=yr,r=Uo;return n.source=function(e){return arguments.length?(t=Et(e),n):t},n.target=function(t){return arguments.length?(e=Et(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ta.svg.diagonal.radial=function(){var n=ta.svg.diagonal(),t=Uo,e=n.projection;return n.projection=function(n){return arguments.length?e(jo(t=n)):t},n},ta.svg.symbol=function(){function n(n,r){return(zl.get(t.call(this,n,r))||Oo)(e.call(this,n,r))}var t=Ho,e=Fo;return n.type=function(e){return arguments.length?(t=Et(e),n):t},n.size=function(t){return arguments.length?(e=Et(t),n):e},n};var zl=ta.map({circle:Oo,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Ll)),e=t*Ll;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ta.svg.symbolTypes=zl.keys();var ql=Math.sqrt(3),Ll=Math.tan(30*Da);_a.transition=function(n){for(var t,e,r=Tl||++Ul,u=Xo(n),i=[],o=Rl||{time:Date.now(),ease:Su,delay:0,duration:250},a=-1,c=this.length;++a<c;){i.push(t=[]);for(var l=this[a],s=-1,f=l.length;++s<f;)(e=l[s])&&$o(e,s,u,r,o),t.push(e)}return Yo(i,u,r)},_a.interrupt=function(n){return this.each(null==n?Dl:Io(Xo(n)))};var Tl,Rl,Dl=Io(Xo()),Pl=[],Ul=0;Pl.call=_a.call,Pl.empty=_a.empty,Pl.node=_a.node,Pl.size=_a.size,ta.transition=function(n,t){return n&&n.transition?Tl?n.transition(t):n:ta.selection().transition(n)},ta.transition.prototype=Pl,Pl.select=function(n){var t,e,r,u=this.id,i=this.namespace,o=[];n=N(n);for(var a=-1,c=this.length;++a<c;){o.push(t=[]);for(var l=this[a],s=-1,f=l.length;++s<f;)(r=l[s])&&(e=n.call(r,r.__data__,s,a))?("__data__"in r&&(e.__data__=r.__data__),$o(e,s,i,u,r[i][u]),t.push(e)):t.push(null)}return Yo(o,i,u)},Pl.selectAll=function(n){var t,e,r,u,i,o=this.id,a=this.namespace,c=[];n=C(n);for(var l=-1,s=this.length;++l<s;)for(var f=this[l],h=-1,g=f.length;++h<g;)if(r=f[h]){i=r[a][o],e=n.call(r,r.__data__,h,l),c.push(t=[]);for(var p=-1,v=e.length;++p<v;)(u=e[p])&&$o(u,p,a,o,i),t.push(u)}return Yo(c,a,o)},Pl.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=O(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return Yo(u,this.namespace,this.id)},Pl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(u){u[r][e].tween.set(n,t)})},Pl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Hu:mu,a=ta.ns.qualify(n);return Zo(this,"attr."+n,t,a.local?i:u)},Pl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=ta.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Pl.style=function(n,e,r){function u(){this.style.removeProperty(n)}function i(e){return null==e?u:(e+="",function(){var u,i=t(this).getComputedStyle(this,null).getPropertyValue(n);return i!==e&&(u=mu(i,e),function(t){this.style.setProperty(n,u(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Zo(this,"style."+n,e,i)},Pl.styleTween=function(n,e,r){function u(u,i){var o=e.call(this,u,i,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,u)},Pl.text=function(n){return Zo(this,"text",n,Vo)},Pl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Pl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ta.ease.apply(ta,arguments)),Y(this,function(r){r[e][t].ease=n}))},Pl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,u,i){r[e][t].delay=+n.call(r,r.__data__,u,i)}:(n=+n,function(r){r[e][t].delay=n}))},Pl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,u,i){r[e][t].duration=Math.max(1,n.call(r,r.__data__,u,i))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Pl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var u=Rl,i=Tl;try{Tl=e,Y(this,function(t,u,i){Rl=t[r][e],n.call(t,t.__data__,u,i)})}finally{Rl=u,Tl=i}}else Y(this,function(u){var i=u[r][e];(i.event||(i.event=ta.dispatch("start","end","interrupt"))).on(n,t)});return this},Pl.transition=function(){for(var n,t,e,r,u=this.id,i=++Ul,o=this.namespace,a=[],c=0,l=this.length;l>c;c++){a.push(n=[]);for(var t=this[c],s=0,f=t.length;f>s;s++)(e=t[s])&&(r=e[o][u],$o(e,s,o,i,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Yo(a,o,i)},ta.svg.axis=function(){function n(n){n.each(function(){var n,l=ta.select(this),s=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):y:t,p=l.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Ca),d=ta.transition(p.exit()).style("opacity",Ca).remove(),m=ta.transition(p.order()).style("opacity",1),M=Math.max(u,0)+o,x=Ui(f),b=l.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ta.transition(b));v.append("line"),v.append("text");var w,S,k,E,A=v.select("line"),N=m.select("line"),C=p.select("text").text(g),z=v.select("text"),q=m.select("text"),L="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=Bo,w="x",k="y",S="x2",E="y2",C.attr("dy",0>L?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+L*i+"V0H"+x[1]+"V"+L*i)):(n=Wo,w="y",k="x",S="y2",E="x2",C.attr("dy",".32em").style("text-anchor",0>L?"end":"start"),_.attr("d","M"+L*i+","+x[0]+"H0V"+x[1]+"H"+L*i)),A.attr(E,L*u),z.attr(k,L*M),N.attr(S,0).attr(E,L*u),q.attr(w,0).attr(k,L*M),f.rangeBand){var T=f,R=T.rangeBand()/2;s=f=function(n){return T(n)+R}}else s.rangeBand?s=f:d.call(n,f,s);v.call(n,s,f),m.call(n,f,f)})}var t,e=ta.scale.linear(),r=jl,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Fl?t+"":jl,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var jl="bottom",Fl={top:1,right:1,bottom:1,left:1};ta.svg.brush=function(){function n(t){t.each(function(){var t=ta.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",i).on("touchstart.brush",i),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,y);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Hl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var c,f=ta.transition(t),h=ta.transition(o);l&&(c=Ui(l),h.attr("x",c[0]).attr("width",c[1]-c[0]),r(f)),s&&(c=Ui(s),h.attr("y",c[0]).attr("height",c[1]-c[0]),u(f)),e(f)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+f[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",f[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1]-f[0])}function u(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function i(){function i(){32==ta.event.keyCode&&(C||(M=null,q[0]-=f[1],q[1]-=h[1],C=2),S())}function v(){32==ta.event.keyCode&&2==C&&(q[0]+=f[1],q[1]+=h[1],C=0,S())}function d(){var n=ta.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ta.event.altKey?(M||(M=[(f[0]+f[1])/2,(h[0]+h[1])/2]),q[0]=f[+(n[0]<M[0])],q[1]=h[+(n[1]<M[1])]):M=null),A&&m(n,l,0)&&(r(k),t=!0),N&&m(n,s,1)&&(u(k),t=!0),t&&(e(k),w({type:"brush",mode:C?"move":"resize"}))}function m(n,t,e){var r,u,i=Ui(t),c=i[0],l=i[1],s=q[e],v=e?h:f,d=v[1]-v[0];return C&&(c-=s,l-=d+s),r=(e?p:g)?Math.max(c,Math.min(l,n[e])):n[e],C?u=(r+=s)+d:(M&&(s=Math.max(c,Math.min(l,2*M[e]-r))),r>s?(u=r,r=s):u=s),v[0]!=r||v[1]!=u?(e?a=null:o=null,v[0]=r,v[1]=u,!0):void 0}function y(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ta.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ta.select(ta.event.target),w=c.of(b,arguments),k=ta.select(b),E=_.datum(),A=!/^(n|s)$/.test(E)&&l,N=!/^(e|w)$/.test(E)&&s,C=_.classed("extent"),z=W(b),q=ta.mouse(b),L=ta.select(t(b)).on("keydown.brush",i).on("keyup.brush",v);if(ta.event.changedTouches?L.on("touchmove.brush",d).on("touchend.brush",y):L.on("mousemove.brush",d).on("mouseup.brush",y),k.interrupt().selectAll("*").interrupt(),C)q[0]=f[0]-q[0],q[1]=h[0]-q[1];else if(E){var T=+/w$/.test(E),R=+/^n/.test(E);x=[f[1-T]-q[0],h[1-R]-q[1]],q[0]=f[T],q[1]=h[R]}else ta.event.altKey&&(M=q.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ta.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,c=E(n,"brushstart","brush","brushend"),l=null,s=null,f=[0,0],h=[0,0],g=!0,p=!0,v=Ol[0];return n.event=function(n){n.each(function(){var n=c.of(this,arguments),t={x:f,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Tl?ta.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,f=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=yu(f,t.x),r=yu(h,t.y);return o=a=null,function(u){f=t.x=e(u),h=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(l=t,v=Ol[!l<<1|!s],n):l},n.y=function(t){return arguments.length?(s=t,v=Ol[!l<<1|!s],n):s},n.clamp=function(t){return arguments.length?(l&&s?(g=!!t[0],p=!!t[1]):l?g=!!t:s&&(p=!!t),n):l&&s?[g,p]:l?g:s?p:null},n.extent=function(t){var e,r,u,i,c;return arguments.length?(l&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),o=[e,r],l.invert&&(e=l(e),r=l(r)),e>r&&(c=e,e=r,r=c),(e!=f[0]||r!=f[1])&&(f=[e,r])),s&&(u=t[0],i=t[1],l&&(u=u[1],i=i[1]),a=[u,i],s.invert&&(u=s(u),i=s(i)),u>i&&(c=u,u=i,i=c),(u!=h[0]||i!=h[1])&&(h=[u,i])),n):(l&&(o?(e=o[0],r=o[1]):(e=f[0],r=f[1],l.invert&&(e=l.invert(e),r=l.invert(r)),e>r&&(c=e,e=r,r=c))),s&&(a?(u=a[0],i=a[1]):(u=h[0],i=h[1],s.invert&&(u=s.invert(u),i=s.invert(i)),u>i&&(c=u,u=i,i=c))),l&&s?[[e,u],[r,i]]:l?[e,r]:s&&[u,i])},n.clear=function(){return n.empty()||(f=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!l&&f[0]==f[1]||!!s&&h[0]==h[1]},ta.rebind(n,c,"on")};var Hl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ol=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Il=ac.format=gc.timeFormat,Yl=Il.utc,Zl=Yl("%Y-%m-%dT%H:%M:%S.%LZ");Il.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Jo:Zl,Jo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Jo.toString=Zl.toString,ac.second=Ft(function(n){return new cc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ac.seconds=ac.second.range,ac.seconds.utc=ac.second.utc.range,ac.minute=Ft(function(n){return new cc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ac.minutes=ac.minute.range,ac.minutes.utc=ac.minute.utc.range,ac.hour=Ft(function(n){var t=n.getTimezoneOffset()/60;return new cc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ac.hours=ac.hour.range,ac.hours.utc=ac.hour.utc.range,ac.month=Ft(function(n){return n=ac.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ac.months=ac.month.range,ac.months.utc=ac.month.utc.range;var Vl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Xl=[[ac.second,1],[ac.second,5],[ac.second,15],[ac.second,30],[ac.minute,1],[ac.minute,5],[ac.minute,15],[ac.minute,30],[ac.hour,1],[ac.hour,3],[ac.hour,6],[ac.hour,12],[ac.day,1],[ac.day,2],[ac.week,1],[ac.month,1],[ac.month,3],[ac.year,1]],$l=Il.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",Ne]]),Bl={range:function(n,t,e){return ta.range(Math.ceil(n/e)*e,+t,e).map(Ko)},floor:y,ceil:y};Xl.year=ac.year,ac.scale=function(){return Go(ta.scale.linear(),Xl,$l)};var Wl=Xl.map(function(n){return[n[0].utc,n[1]]}),Jl=Yl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",Ne]]);Wl.year=ac.year.utc,ac.scale.utc=function(){return Go(ta.scale.linear(),Wl,Jl)},ta.text=At(function(n){return n.responseText}),ta.json=function(n,t){return Nt(n,"application/json",Qo,t)},ta.html=function(n,t){return Nt(n,"text/html",na,t)},ta.xml=At(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(ta):"object"==typeof module&&module.exports&&(module.exports=ta),this.d3=ta}();
div.dc-chart {
float: left;
}
.dc-chart rect.bar {
stroke: none;
cursor: pointer;
}
.dc-chart rect.bar:hover {
fill-opacity: .5;
}
.dc-chart rect.stack1 {
stroke: none;
fill: red;
}
.dc-chart rect.stack2 {
stroke: none;
fill: green;
}
.dc-chart rect.deselected {
stroke: none;
fill: #ccc;
}
.dc-chart .empty-chart .pie-slice path {
fill: #FFEEEE;
cursor: default;
}
.dc-chart .empty-chart .pie-slice {
cursor: default;
}
.dc-chart .pie-slice {
fill: white;
font-size: 12px;
cursor: pointer;
}
.dc-chart .pie-slice.external{
fill: black;
}
.dc-chart .pie-slice :hover {
fill-opacity: .8;
}
.dc-chart .pie-slice.highlight {
fill-opacity: .8;
}
.dc-chart .selected path {
stroke-width: 3;
stroke: #ccc;
fill-opacity: 1;
}
.dc-chart .deselected path {
stroke: none;
fill-opacity: .5;
fill: #ccc;
}
.dc-chart .axis path, .axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
.dc-chart .axis text {
font: 10px sans-serif;
}
.dc-chart .grid-line {
fill: none;
stroke: #ccc;
opacity: .5;
shape-rendering: crispEdges;
}
.dc-chart .grid-line line {
fill: none;
stroke: #ccc;
opacity: .5;
shape-rendering: crispEdges;
}
.dc-chart .brush rect.background {
z-index: -999;
}
.dc-chart .brush rect.extent {
fill: steelblue;
fill-opacity: .125;
}
.dc-chart .brush .resize path {
fill: #eee;
stroke: #666;
}
.dc-chart path.line {
fill: none;
stroke-width: 1.5px;
}
.dc-chart circle.dot {
stroke: none;
}
.dc-chart g.dc-tooltip path {
fill: none;
stroke: grey;
stroke-opacity: .8;
}
.dc-chart path.area {
fill-opacity: .3;
stroke: none;
}
.dc-chart .node {
font-size: 0.7em;
cursor: pointer;
}
.dc-chart .node :hover {
fill-opacity: .8;
}
.dc-chart .selected circle {
stroke-width: 3;
stroke: #ccc;
fill-opacity: 1;
}
.dc-chart .deselected circle {
stroke: none;
fill-opacity: .5;
fill: #ccc;
}
.dc-chart .bubble {
stroke: none;
fill-opacity: 0.6;
}
.dc-data-count {
float: right;
margin-top: 15px;
margin-right: 15px;
}
.dc-data-count .filter-count {
color: #3182bd;
font-weight: bold;
}
.dc-data-count .total-count {
color: #3182bd;
font-weight: bold;
}
.dc-data-table {
}
.dc-chart g.state {
cursor: pointer;
}
.dc-chart g.state :hover {
fill-opacity: .8;
}
.dc-chart g.state path {
stroke: white;
}
.dc-chart g.selected path {
}
.dc-chart g.deselected path {
fill: grey;
}
.dc-chart g.selected text {
}
.dc-chart g.deselected text {
display: none;
}
.dc-chart g.county path {
stroke: white;
fill: none;
}
.dc-chart g.debug rect {
fill: blue;
fill-opacity: .2;
}
.dc-chart g.row rect {
fill-opacity: 0.8;
cursor: pointer;
}
.dc-chart g.row rect:hover {
fill-opacity: 0.6;
}
.dc-chart g.row text {
fill: white;
font-size: 12px;
cursor: pointer;
}
.dc-legend {
font-size: 11px;
}
.dc-legend-item {
cursor: pointer;
}
.dc-chart g.axis text {
/* Makes it so the user can't accidentally click and select text that is meant as a label only */
-webkit-user-select: none; /* Chrome/Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10 */
-o-user-select: none;
user-select: none;
pointer-events: none;
}
.dc-chart path.highlight {
stroke-width: 3;
fill-opacity: 1;
stroke-opacity: 1;
}
.dc-chart .highlight {
fill-opacity: 1;
stroke-opacity: 1;
}
.dc-chart .fadeout {
fill-opacity: 0.2;
stroke-opacity: 0.2;
}
.dc-chart path.dc-symbol, g.dc-legend-item.fadeout {
fill-opacity: 0.5;
stroke-opacity: 0.5;
}
.dc-hard .number-display {
float: none;
}
.dc-chart .box text {
font: 10px sans-serif;
-webkit-user-select: none; /* Chrome/Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10 */
-o-user-select: none;
user-select: none;
pointer-events: none;
}
.dc-chart .box line,
.dc-chart .box circle {
fill: #fff;
stroke: #000;
stroke-width: 1.5px;
}
.dc-chart .box rect {
stroke: #000;
stroke-width: 1.5px;
}
.dc-chart .box .center {
stroke-dasharray: 3,3;
}
.dc-chart .box .outlier {
fill: none;
stroke: #ccc;
}
.dc-chart .box.deselected .box {
fill: #ccc;
}
.dc-chart .box.deselected {
opacity: .5;
}
.dc-chart .symbol{
stroke: none;
}
.dc-chart .heatmap .box-group.deselected rect {
stroke: none;
fill-opacity: .5;
fill: #ccc;
}
.dc-chart .heatmap g.axis text {
pointer-events: all;
cursor: pointer;
}
!function(){function a(a,b){"use strict";var c={version:"2.1.0-dev",constants:{CHART_CLASS:"dc-chart",DEBUG_GROUP_CLASS:"debug",STACK_CLASS:"stack",DESELECTED_CLASS:"deselected",SELECTED_CLASS:"selected",NODE_INDEX_NAME:"__index__",GROUP_INDEX_NAME:"__group_index__",DEFAULT_CHART_GROUP:"__default_chart_group__",EVENT_DELAY:40,NEGLIGIBLE_NUMBER:1e-10},_renderlet:null};c.chartRegistry=function(){function a(a){return a||(a=c.constants.DEFAULT_CHART_GROUP),b[a]||(b[a]=[]),a}var b={};return{has:function(a){for(var c in b)if(b[c].indexOf(a)>=0)return!0;return!1},register:function(c,d){d=a(d),b[d].push(c)},deregister:function(c,d){d=a(d);for(var e=0;e<b[d].length;e++)if(b[d][e].anchorName()===c.anchorName()){b[d].splice(e,1);break}},clear:function(a){a?delete b[a]:b={}},list:function(c){return c=a(c),b[c]}}}(),c.registerChart=function(a,b){c.chartRegistry.register(a,b)},c.deregisterChart=function(a,b){c.chartRegistry.deregister(a,b)},c.hasChart=function(a){return c.chartRegistry.has(a)},c.deregisterAllCharts=function(a){c.chartRegistry.clear(a)},c.filterAll=function(a){for(var b=c.chartRegistry.list(a),d=0;d<b.length;++d)b[d].filterAll()},c.refocusAll=function(a){for(var b=c.chartRegistry.list(a),d=0;d<b.length;++d)b[d].focus&&b[d].focus()},c.renderAll=function(a){for(var b=c.chartRegistry.list(a),d=0;d<b.length;++d)b[d].render();null!==c._renderlet&&c._renderlet(a)},c.redrawAll=function(a){for(var b=c.chartRegistry.list(a),d=0;d<b.length;++d)b[d].redraw();null!==c._renderlet&&c._renderlet(a)},c.disableTransitions=!1,c.transition=function(a,b,d){if(0>=b||void 0===b||c.disableTransitions)return a;var e=a.transition().duration(b);return"function"==typeof d&&d(e),e},c.units={},c.units.integers=function(a,b){return Math.abs(b-a)},c.units.ordinal=function(a,b,c){return c},c.units.fp={},c.units.fp.precision=function(a){var b=function(a,d){var e=Math.abs((d-a)/b.resolution);return c.utils.isNegligible(e-Math.floor(e))?Math.floor(e):Math.ceil(e)};return b.resolution=a,b},c.round={},c.round.floor=function(a){return Math.floor(a)},c.round.ceil=function(a){return Math.ceil(a)},c.round.round=function(a){return Math.round(a)},c.override=function(a,b,c){var d=a[b];a["_"+b]=d,a[b]=c},c.renderlet=function(a){return arguments.length?(c._renderlet=a,c):c._renderlet},c.instanceOfChart=function(a){return a instanceof Object&&a.__dcFlag__&&!0},c.errors={},c.errors.Exception=function(a){var b=a||"Unexpected internal error";this.message=b,this.toString=function(){return b}},c.errors.InvalidStateException=function(){c.errors.Exception.apply(this,arguments)},c.dateFormat=a.time.format("%m/%d/%Y"),c.printers={},c.printers.filters=function(a){for(var b="",d=0;d<a.length;++d)d>0&&(b+=", "),b+=c.printers.filter(a[d]);return b},c.printers.filter=function(a){var b="";return"undefined"!=typeof a&&null!==a&&(a instanceof Array?a.length>=2?b="["+c.utils.printSingleValue(a[0])+" -> "+c.utils.printSingleValue(a[1])+"]":a.length>=1&&(b=c.utils.printSingleValue(a[0])):b=c.utils.printSingleValue(a)),b},c.pluck=function(a,b){return b?function(c,d){return b.call(c,c[a],d)}:function(b){return b[a]}},c.utils={},c.utils.printSingleValue=function(a){var b=""+a;return a instanceof Date?b=c.dateFormat(a):"string"==typeof a?b=a:c.utils.isFloat(a)?b=c.utils.printSingleValue.fformat(a):c.utils.isInteger(a)&&(b=Math.round(a)),b},c.utils.printSingleValue.fformat=a.format(".2f"),c.utils.add=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()+b),c}if("string"==typeof b){var d=+b/100;return a>0?a*(1+d):a*(1-d)}return a+b},c.utils.subtract=function(a,b){if("string"==typeof b&&(b=b.replace("%","")),a instanceof Date){"string"==typeof b&&(b=+b);var c=new Date;return c.setTime(a.getTime()),c.setDate(a.getDate()-b),c}if("string"==typeof b){var d=+b/100;return 0>a?a*(1+d):a*(1-d)}return a-b},c.utils.isNumber=function(a){return a===+a},c.utils.isFloat=function(a){return a===+a&&a!==(0|a)},c.utils.isInteger=function(a){return a===+a&&a===(0|a)},c.utils.isNegligible=function(a){return!c.utils.isNumber(a)||a<c.constants.NEGLIGIBLE_NUMBER&&a>-c.constants.NEGLIGIBLE_NUMBER},c.utils.clamp=function(a,b,c){return b>a?b:a>c?c:a};var d=0;return c.utils.uniqueId=function(){return++d},c.utils.nameToId=function(a){return a.toLowerCase().replace(/[\s]/g,"_").replace(/[\.']/g,"")},c.utils.appendOrSelect=function(a,b,c){c=c||b;var d=a.select(b);return d.empty()&&(d=a.append(c)),d},c.utils.safeNumber=function(a){return c.utils.isNumber(+a)?+a:0},c.logger={},c.logger.enableDebugLog=!1,c.logger.warn=function(a){return console&&(console.warn?console.warn(a):console.log&&console.log(a)),c.logger},c.logger.debug=function(a){return c.logger.enableDebugLog&&console&&(console.debug?console.debug(a):console.log&&console.log(a)),c.logger},c.logger.deprecate=function(a,b){function d(){return e||(c.logger.warn(b),e=!0),a.apply(this,arguments)}var e=!1;return d},c.events={current:null},c.events.trigger=function(a,b){return b?(c.events.current=a,void setTimeout(function(){a===c.events.current&&a()},b)):void a()},c.filters={},c.filters.RangedFilter=function(a,b){var c=new Array(a,b);return c.isFiltered=function(a){return a>=this[0]&&a<this[1]},c},c.filters.TwoDimensionalFilter=function(a){if(null===a)return null;var b=a;return b.isFiltered=function(a){return a.length&&a.length===b.length&&a[0]===b[0]&&a[1]===b[1]},b},c.filters.RangedTwoDimensionalFilter=function(a){if(null===a)return null;var b,c=a;return b=c[0]instanceof Array?[[Math.min(a[0][0],a[1][0]),Math.min(a[0][1],a[1][1])],[Math.max(a[0][0],a[1][0]),Math.max(a[0][1],a[1][1])]]:[[a[0],-1/0],[a[1],1/0]],c.isFiltered=function(a){var c,d;if(a instanceof Array){if(2!==a.length)return!1;c=a[0],d=a[1]}else c=a,d=b[0][1];return c>=b[0][0]&&c<b[1][0]&&d>=b[0][1]&&d<b[1][1]},c},c.baseMixin=function(d){function e(){return l=d.root().append("svg").attr("width",d.width()).attr("height",d.height())}function f(a){if(!d[a]||!d[a]())throw new c.errors.InvalidStateException("Mandatory attribute chart."+a+" is missing on chart[#"+d.anchorName()+"]")}function g(){if(d.dimension()&&d.dimension().filter){var a=H(d.dimension(),G);G=a?a:G}}d.__dcFlag__=c.utils.uniqueId();var h,i,j,k,l,m,n,o=200,p=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().width;return b&&b>o?b:o},q=p,r=200,s=function(a){var b=a&&a.getBoundingClientRect&&a.getBoundingClientRect().height;return b&&b>r?b:r},t=s,u=c.pluck("key"),v=c.pluck("value"),w=c.pluck("key"),x=c.pluck("key"),y=!1,z=function(a){return d.keyAccessor()(a)+": "+d.valueAccessor()(a)},A=!0,B=750,C=c.printers.filters,D=["dimension","group"],E=c.constants.DEFAULT_CHART_GROUP,F=a.dispatch("preRender","postRender","preRedraw","postRedraw","filtered","zoomed","renderlet"),G=[],H=function(a,b){return a.filter(null),0===b.length?a.filter(null):a.filterFunction(function(a){for(var c=0;c<b.length;c++){var d=b[c];if(d.isFiltered&&d.isFiltered(a))return!0;if(a>=d&&d>=a)return!0}return!1}),b},I=function(a){return a.all()};d.width=function(b){return arguments.length?(q=a.functor(b||p),d):q(k.node())},d.height=function(b){return arguments.length?(t=a.functor(b||s),d):t(k.node())},d.minWidth=function(a){return arguments.length?(o=a,d):o},d.minHeight=function(a){return arguments.length?(r=a,d):r},d.dimension=function(a){return arguments.length?(h=a,d.expireCache(),d):h},d.data=function(b){return arguments.length?(I=a.functor(b),d.expireCache(),d):I.call(d,i)},d.group=function(a,b){return arguments.length?(i=a,d._groupName=b,d.expireCache(),d):i},d.ordering=function(a){return arguments.length?(x=a,m=b.quicksort.by(x),d.expireCache(),d):x},d._computeOrderedGroups=function(a){var c=a.slice(0);return c.length<=1?c:(m||(m=b.quicksort.by(x)),m(c,0,c.length))},d.filterAll=function(){return d.filter(null)},d.select=function(a){return k.select(a)},d.selectAll=function(a){return k?k.selectAll(a):null},d.anchor=function(b,e){return arguments.length?(c.instanceOfChart(b)?(j=b.anchor(),k=b.root()):(j=b,k=a.select(j),k.classed(c.constants.CHART_CLASS,!0),c.registerChart(d,e)),E=e,d):j},d.anchorName=function(){var a=d.anchor();return a&&a.id?a.id:a&&a.replace?a.replace("#",""):"dc-chart"+d.chartID()},d.root=function(a){return arguments.length?(k=a,d):k},d.svg=function(a){return arguments.length?(l=a,d):l},d.resetSvg=function(){return d.select("svg").remove(),e()},d.filterPrinter=function(a){return arguments.length?(C=a,d):C},d.turnOnControls=function(){return k&&(d.selectAll(".reset").style("display",null),d.selectAll(".filter").text(C(d.filters())).style("display",null)),d},d.turnOffControls=function(){return k&&(d.selectAll(".reset").style("display","none"),d.selectAll(".filter").style("display","none").text(d.filter())),d},d.transitionDuration=function(a){return arguments.length?(B=a,d):B},d._mandatoryAttributes=function(a){return arguments.length?(D=a,d):D},d.render=function(){F.preRender(d),D&&D.forEach(f);var a=d._doRender();return n&&n.render(),d._activateRenderlets("postRender"),a},d._activateRenderlets=function(a){d.transitionDuration()>0&&l?l.transition().duration(d.transitionDuration()).each("end",function(){F.renderlet(d),a&&F[a](d)}):(F.renderlet(d),a&&F[a](d))},d.redraw=function(){F.preRedraw(d);var a=d._doRedraw();return n&&n.render(),d._activateRenderlets("postRedraw"),a},d.redrawGroup=function(){c.redrawAll(d.chartGroup())},d.renderGroup=function(){c.renderAll(d.chartGroup())},d._invokeFilteredListener=function(a){void 0!==a&&F.filtered(d,a)},d._invokeZoomedListener=function(){F.zoomed(d)};var J=function(a,b){return null===b||"undefined"==typeof b?a.length>0:a.some(function(a){return a>=b&&b>=a})};d.hasFilterHandler=function(a){return arguments.length?(J=a,d):J},d.hasFilter=function(a){return J(G,a)};var K=function(a,b){for(var c=0;c<a.length;c++)if(a[c]<=b&&a[c]>=b){a.splice(c,1);break}return a};d.removeFilterHandler=function(a){return arguments.length?(K=a,d):K};var L=function(a,b){return a.push(b),a};d.addFilterHandler=function(a){return arguments.length?(L=a,d):L};var M=function(){return[]};return d.resetFilterHandler=function(a){return arguments.length?(M=a,d):M},d.replaceFilter=function(a){G=[],d.filter(a)},d.filter=function(a){return arguments.length?(a instanceof Array&&a[0]instanceof Array&&!a.isFiltered?a[0].forEach(function(a){d.hasFilter(a)?K(G,a):L(G,a)}):null===a?G=M(G):d.hasFilter(a)?K(G,a):L(G,a),g(),d._invokeFilteredListener(a),null!==k&&d.hasFilter()?d.turnOnControls():d.turnOffControls(),d):G.length>0?G[0]:null},d.filters=function(){return G},d.highlightSelected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!0),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.fadeDeselected=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!0)},d.resetHighlight=function(b){a.select(b).classed(c.constants.SELECTED_CLASS,!1),a.select(b).classed(c.constants.DESELECTED_CLASS,!1)},d.onClick=function(a){var b=d.keyAccessor()(a);c.events.trigger(function(){d.filter(b),d.redrawGroup()})},d.filterHandler=function(a){return arguments.length?(H=a,d):H},d._doRender=function(){return d},d._doRedraw=function(){return d},d.legendables=function(){return[]},d.legendHighlight=function(){},d.legendReset=function(){},d.legendToggle=function(){},d.isLegendableHidden=function(){return!1},d.keyAccessor=function(a){return arguments.length?(u=a,d):u},d.valueAccessor=function(a){return arguments.length?(v=a,d):v},d.label=function(a){return arguments.length?(w=a,y=!0,d):w},d.renderLabel=function(a){return arguments.length?(y=a,d):y},d.title=function(a){return arguments.length?(z=a,d):z},d.renderTitle=function(a){return arguments.length?(A=a,d):A},d.renderlet=c.logger.deprecate(function(a){return d.on("renderlet."+c.utils.uniqueId(),a),d},'chart.renderlet has been deprecated. Please use chart.on("renderlet.<renderletKey>", renderletFunction)'),d.chartGroup=function(a){return arguments.length?(E=a,d):E},d.expireCache=function(){return d},d.legend=function(a){return arguments.length?(n=a,n.parent(d),d):n},d.chartID=function(){return d.__dcFlag__},d.options=function(a){for(var b in a)"function"==typeof d[b]?d[b].call(d,a[b]):c.logger.debug("Not a valid option setter name: "+b);return d},d.on=function(a,b){return F.on(a,b),d},d},c.marginMixin=function(a){var b={top:10,right:50,bottom:30,left:30};return a.margins=function(c){return arguments.length?(b=c,a):b},a.effectiveWidth=function(){return a.width()-a.margins().left-a.margins().right},a.effectiveHeight=function(){return a.height()-a.margins().top-a.margins().bottom},a},c.colorMixin=function(b){var c=a.scale.category20c(),d=!0,e=function(a){return b.keyAccessor()(a)};return b.colors=function(d){return arguments.length?(c=d instanceof Array?a.scale.quantize().range(d):a.functor(d),b):c},b.ordinalColors=function(c){return b.colors(a.scale.ordinal().range(c))},b.linearColors=function(c){return b.colors(a.scale.linear().range(c).interpolate(a.interpolateHcl))},b.colorAccessor=function(a){return arguments.length?(e=a,d=!1,b):e},b.defaultColorAccessor=function(){return d},b.colorDomain=function(a){return arguments.length?(c.domain(a),b):c.domain()},b.calculateColorDomain=function(){var d=[a.min(b.data(),b.colorAccessor()),a.max(b.data(),b.colorAccessor())];return c.domain(d),b},b.getColor=function(a,b){return c(e.call(this,a,b))},b.colorCalculator=function(a){return arguments.length?(b.getColor=a,b):b.getColor},b},c.coordinateGridMixin=function(b){function d(){U=!0,W&&(b.x().domain(l(b.x().domain(),y)),F&&b.x().domain(l(b.x().domain(),F.x().domain())));var a=b.x().domain(),d=c.filters.RangedFilter(a[0],a[1]);b.replaceFilter(d),b.rescale(),b.redraw(),F&&!m(b.filter(),F.filter())&&c.events.trigger(function(){F.replaceFilter(d),F.redraw()}),b._invokeZoomedListener(),c.events.trigger(function(){b.redrawGroup()},c.constants.EVENT_DELAY),U=!m(a,y)}function e(a){b.isOrdinal()?(b.elasticX()||0===x.domain().length)&&x.domain(b._ordinalXDomain()):b.elasticX()&&x.domain([b.xAxisMin(),b.xAxisMax()]);var c=x.domain();(!A||c.some(function(a,b){return a!==A[b]}))&&b.rescale(),A=c,b.isOrdinal()?x.rangeBands([0,b.xAxisLength()],bb,b._useOuterPadding()?ab:0):x.range([0,b.xAxisLength()]),H=H.scale(b.x()),f(a)}function f(a){var d=a.selectAll("g."+q);if(T){d.empty()&&(d=a.insert("g",":first-child").attr("class",o+" "+q).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var e=H.tickValues()?H.tickValues():"function"==typeof x.ticks?x.ticks(H.ticks()[0]):x.domain(),f=d.selectAll("line").data(e),g=f.enter().append("line").attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0).attr("opacity",0);c.transition(g,b.transitionDuration()).attr("opacity",1),c.transition(f,b.transitionDuration()).attr("x1",function(a){return x(a)}).attr("y1",b._xAxisY()-b.margins().top).attr("x2",function(a){return x(a)}).attr("y2",0),f.exit().remove()}else d.selectAll("line").remove()}function g(){return b._xAxisY()-b.margins().top}function h(){return b.anchorName().replace(/[ .#]/g,"-")+"-clip"}function i(){var a=c.utils.appendOrSelect(u,"defs"),d=h(),e=c.utils.appendOrSelect(a,"#"+d,"clipPath").attr("id",d),f=2*_;c.utils.appendOrSelect(e,"rect").attr("width",b.xAxisLength()+f).attr("height",b.yAxisHeight()+f).attr("transform","translate(-"+_+", -"+_+")")}function j(a){b.isOrdinal()&&(R=!1),e(b.g()),b._prepareYAxis(b.g()),b.plotData(),(b.elasticX()||U||a)&&b.renderXAxis(b.g()),(b.elasticY()||a)&&b.renderYAxis(b.g()),a?b.renderBrush(b.g()):b.redrawBrush(b.g())}function k(){$?b._enableMouseZoom():Z&&b._disableMouseZoom()}function l(b,c){var d=[];return d[0]=a.max([b[0],c[0]]),d[1]=a.min([b[1],c[1]]),d}function m(a,b){return a||b?a&&b?0===a.length&&0===b.length?!0:a[0].valueOf()===b[0].valueOf()&&a[1].valueOf()===b[1].valueOf()?!0:!1:!1:!0}function n(a){return a instanceof Array&&a.length>1}var o="grid-line",p="horizontal",q="vertical",r="y-axis-label",s="x-axis-label",t=12;b=c.colorMixin(c.marginMixin(c.baseMixin(b))),b.colors(a.scale.category10()),b._mandatoryAttributes().push("x");var u,v,w,x,y,z,A,B,C,D,E,F,G,H=a.svg.axis().orient("bottom"),I=c.units.integers,J=0,K=!1,L=0,M=a.svg.axis().orient("left"),N=0,O=!1,P=0,Q=a.svg.brush(),R=!0,S=!1,T=!1,U=!1,V=[1,1/0],W=!0,X=a.behavior.zoom().on("zoom",d),Y=a.behavior.zoom().on("zoom",null),Z=!1,$=!1,_=0,ab=.5,bb=0,cb=!1;return b.rescale=function(){E=void 0},b.rangeChart=function(a){return arguments.length?(F=a,F.focusChart(b),b):F},b.zoomScale=function(a){return arguments.length?(V=a,b):V},b.zoomOutRestrict=function(a){return arguments.length?(V[0]=a?1:0,W=a,b):W},b._generateG=function(a){return u=void 0===a?b.svg():a,v=u.append("g"),w=v.append("g").attr("class","chart-body").attr("transform","translate("+b.margins().left+", "+b.margins().top+")").attr("clip-path","url(#"+h()+")"),v},b.g=function(a){return arguments.length?(v=a,b):v},b.mouseZoomable=function(a){return arguments.length?($=a,b):$},b.chartBodyG=function(a){return arguments.length?(w=a,b):w},b.x=function(a){return arguments.length?(x=a,y=x.domain(),b):x},b.xOriginalDomain=function(){return y},b.xUnits=function(a){return arguments.length?(I=a,b):I},b.xAxis=function(a){return arguments.length?(H=a,b):H},b.elasticX=function(a){return arguments.length?(K=a,b):K},b.xAxisPadding=function(a){return arguments.length?(J=a,b):J},b.xUnitCount=function(){if(void 0===E){var a=b.xUnits()(b.x().domain()[0],b.x().domain()[1],b.x().domain());E=a instanceof Array?a.length:a}return E},b.useRightYAxis=function(a){return arguments.length?(cb=a,b):cb},b.isOrdinal=function(){return b.xUnits()===c.units.ordinal},b._useOuterPadding=function(){return!0},b._ordinalXDomain=function(){var a=b._computeOrderedGroups(b.data());return a.map(b.keyAccessor())},b.renderXAxis=function(a){var d=a.selectAll("g.x");d.empty()&&(d=a.append("g").attr("class","axis x").attr("transform","translate("+b.margins().left+","+b._xAxisY()+")"));var e=a.selectAll("text."+s);e.empty()&&b.xAxisLabel()&&(e=a.append("text").attr("transform","translate("+(b.margins().left+b.xAxisLength()/2)+","+(b.height()-L)+")").attr("class",s).attr("text-anchor","middle").text(b.xAxisLabel())),b.xAxisLabel()&&e.text()!==b.xAxisLabel()&&e.text(b.xAxisLabel()),c.transition(d,b.transitionDuration()).call(H)},b._xAxisY=function(){return b.height()-b.margins().bottom},b.xAxisLength=function(){return b.effectiveWidth()},b.xAxisLabel=function(a,c){return arguments.length?(z=a,b.margins().bottom-=L,L=void 0===c?t:c,b.margins().bottom+=L,b):z},b._prepareYAxis=function(c){if(void 0===B||b.elasticY()){B=a.scale.linear();var d=b.yAxisMin()||0,e=b.yAxisMax()||0;B.domain([d,e]).rangeRound([b.yAxisHeight(),0])}B.range([b.yAxisHeight(),0]),M=M.scale(B),cb&&M.orient("right"),b._renderHorizontalGridLinesForAxis(c,B,M)},b.renderYAxisLabel=function(a,c,d,e){e=e||P;var f=b.g().selectAll("text."+r+"."+a+"-label");if(f.empty()&&c){var g=b.margins().top+b.yAxisHeight()/2;f=b.g().append("text").attr("transform","translate("+e+","+g+"),rotate("+d+")").attr("class",r+" "+a+"-label").attr("text-anchor","middle").text(c)}c&&f.text()!==c&&f.text(c)},b.renderYAxisAt=function(a,d,e){var f=b.g().selectAll("g."+a);f.empty()&&(f=b.g().append("g").attr("class","axis "+a).attr("transform","translate("+e+","+b.margins().top+")")),c.transition(f,b.transitionDuration()).call(d)},b.renderYAxis=function(){var a=cb?b.width()-b.margins().right:b._yAxisX();b.renderYAxisAt("y",M,a);var c=cb?b.width()-P:P,d=cb?90:-90;b.renderYAxisLabel("y",b.yAxisLabel(),d,c)},b._renderHorizontalGridLinesForAxis=function(a,d,e){var f=a.selectAll("g."+p);if(S){var g=e.tickValues()?e.tickValues():d.ticks(e.ticks()[0]);f.empty()&&(f=a.insert("g",":first-child").attr("class",o+" "+p).attr("transform","translate("+b.margins().left+","+b.margins().top+")"));var h=f.selectAll("line").data(g),i=h.enter().append("line").attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}).attr("opacity",0);c.transition(i,b.transitionDuration()).attr("opacity",1),c.transition(h,b.transitionDuration()).attr("x1",1).attr("y1",function(a){return d(a)}).attr("x2",b.xAxisLength()).attr("y2",function(a){return d(a)}),h.exit().remove()}else f.selectAll("line").remove()},b._yAxisX=function(){return b.useRightYAxis()?b.width()-b.margins().right:b.margins().left},b.yAxisLabel=function(a,c){return arguments.length?(C=a,b.margins().left-=P,P=void 0===c?t:c,b.margins().left+=P,b):C},b.y=function(a){return arguments.length?(B=a,b):B},b.yAxis=function(a){return arguments.length?(M=a,b):M},b.elasticY=function(a){return arguments.length?(O=a,b):O},b.renderHorizontalGridLines=function(a){return arguments.length?(S=a,b):S},b.renderVerticalGridLines=function(a){return arguments.length?(T=a,b):T},b.xAxisMin=function(){var d=a.min(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.subtract(d,J)},b.xAxisMax=function(){var d=a.max(b.data(),function(a){return b.keyAccessor()(a)});return c.utils.add(d,J)},b.yAxisMin=function(){var d=a.min(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.subtract(d,N)},b.yAxisMax=function(){var d=a.max(b.data(),function(a){return b.valueAccessor()(a)});return c.utils.add(d,N)},b.yAxisPadding=function(a){return arguments.length?(N=a,b):N},b.yAxisHeight=function(){return b.effectiveHeight()},b.round=function(a){return arguments.length?(D=a,b):D},b._rangeBandPadding=function(a){return arguments.length?(bb=a,b):bb},b._outerRangeBandPadding=function(a){return arguments.length?(ab=a,b):ab},c.override(b,"filter",function(a){return arguments.length?(b._filter(a),a?b.brush().extent(a):b.brush().clear(),b):b._filter()}),b.brush=function(a){return arguments.length?(Q=a,b):Q},b.renderBrush=function(a){if(R){Q.on("brush",b._brushing),Q.on("brushstart",b._disableMouseZoom),Q.on("brushend",k);var c=a.append("g").attr("class","brush").attr("transform","translate("+b.margins().left+","+b.margins().top+")").call(Q.x(b.x()));b.setBrushY(c),b.setHandlePaths(c),b.hasFilter()&&b.redrawBrush(a)}},b.setHandlePaths=function(a){a.selectAll(".resize").append("path").attr("d",b.resizeHandlePath)},b.setBrushY=function(a){a.selectAll("rect").attr("height",g())},b.extendBrush=function(){var a=Q.extent();return b.round()&&(a[0]=a.map(b.round())[0],a[1]=a.map(b.round())[1],v.select(".brush").call(Q.extent(a))),a},b.brushIsEmpty=function(a){return Q.empty()||!a||a[1]<=a[0]},b._brushing=function(){var a=b.extendBrush();if(b.redrawBrush(v),b.brushIsEmpty(a))c.events.trigger(function(){b.filter(null),b.redrawGroup()},c.constants.EVENT_DELAY);else{var d=c.filters.RangedFilter(a[0],a[1]);c.events.trigger(function(){b.replaceFilter(d),b.redrawGroup()},c.constants.EVENT_DELAY)}},b.redrawBrush=function(a){if(R){b.filter()&&b.brush().empty()&&b.brush().extent(b.filter());var c=a.select("g.brush");c.call(b.brush().x(b.x())),b.setBrushY(c)}b.fadeDeselectedArea()},b.fadeDeselectedArea=function(){},b.resizeHandlePath=function(a){var b=+("e"===a),c=b?1:-1,d=g()/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)},b.clipPadding=function(a){return arguments.length?(_=a,b):_},b._preprocessData=function(){},b._doRender=function(){return b.resetSvg(),b._preprocessData(),b._generateG(),i(),j(!0),k(),b},b._doRedraw=function(){return b._preprocessData(),j(!1),i(),b},b._enableMouseZoom=function(){Z=!0,X.x(b.x()).scaleExtent(V).size([b.width(),b.height()]).duration(b.transitionDuration()),b.root().call(X)},b._disableMouseZoom=function(){b.root().call(Y)},b.focus=function(a){b.x().domain(n(a)?a:y),X.x(b.x()),d()},b.refocused=function(){return U},b.focusChart=function(a){return arguments.length?(G=a,b.on("filtered",function(a){a.filter()?m(a.filter(),G.filter())||c.events.trigger(function(){G.focus(a.filter())}):c.events.trigger(function(){G.x().domain(G.xOriginalDomain())})}),b):G},b.brushOn=function(a){return arguments.length?(R=a,b):R},b},c.stackMixin=function(b){function d(a,c){var d=a.accessor||b.valueAccessor();return a.name=String(a.name||c),a.values=a.group.all().map(function(c,e){return{x:b.keyAccessor()(c,e),y:a.hidden?null:d(c,e),data:c,layer:a.name,hidden:a.hidden}}),a.values=a.values.filter(e()),a.values}function e(){if(!b.x())return a.functor(!0);var c=b.x().domain();return b.isOrdinal()?function(){return!0}:b.elasticX()?function(){return!0}:function(a){return a.x>=c[0]&&a.x<=c[c.length-1]}}function f(a){var b=j.map(c.pluck("name")).indexOf(a);return j[b]}function g(){var a=b.data().map(function(a){return a.values});return Array.prototype.concat.apply([],a)}function h(a){return!a.hidden}var i=a.layout.stack().values(d),j=[],k={},l=!1;return b.stack=function(a,c,d){if(!arguments.length)return j;arguments.length<=2&&(d=c);var e={group:a};return"string"==typeof c&&(e.name=c),"function"==typeof d&&(e.accessor=d),j.push(e),b},c.override(b,"group",function(a,c,d){return arguments.length?(j=[],k={},b.stack(a,c),d&&b.valueAccessor(d),b._group(a,c)):b._group()}),b.hidableStacks=function(a){return arguments.length?(l=a,b):l},b.hideStack=function(a){var c=f(a);return c&&(c.hidden=!0),b},b.showStack=function(a){var c=f(a);return c&&(c.hidden=!1),b},b.getValueAccessorByIndex=function(a){return j[a].accessor||b.valueAccessor()},b.yAxisMin=function(){var d=a.min(g(),function(a){return a.y+a.y0<a.y0?a.y+a.y0:a.y0});return c.utils.subtract(d,b.yAxisPadding())},b.yAxisMax=function(){var d=a.max(g(),function(a){return a.y+a.y0});return c.utils.add(d,b.yAxisPadding())},b.xAxisMin=function(){var d=a.min(g(),c.pluck("x"));return c.utils.subtract(d,b.xAxisPadding())},b.xAxisMax=function(){var d=a.max(g(),c.pluck("x"));return c.utils.add(d,b.xAxisPadding())},c.override(b,"title",function(a,c){return a?"function"==typeof a?b._title(a):a===b._groupName&&"function"==typeof c?b._title(c):"function"!=typeof c?k[a]||b._title():(k[a]=c,b):b._title()}),b.stackLayout=function(a){return arguments.length?(i=a,b):i},b.data(function(){var a=j.filter(h);return a.length?b.stackLayout()(a):[]}),b._ordinalXDomain=function(){var a=g().map(c.pluck("data")),d=b._computeOrderedGroups(a);return d.map(b.keyAccessor())},b.colorAccessor(function(a){var b=this.layer||this.name||a.name||a.layer;return b}),b.legendables=function(){return j.map(function(a,c){return{chart:b,name:a.name,hidden:a.hidden||!1,color:b.getColor.call(a,a.values,c)}})},b.isLegendableHidden=function(a){var b=f(a.name);return b?b.hidden:!1},b.legendToggle=function(a){l&&(b.isLegendableHidden(a)?b.showStack(a.name):b.hideStack(a.name),b.renderGroup())},b},c.capMixin=function(b){var d=1/0,e="Others",f=function(c){var d=a.sum(c,b.valueAccessor()),f=b.group().all(),g=a.sum(f,b.valueAccessor()),h=c.map(b.keyAccessor()),i=f.map(b.keyAccessor()),j=a.set(h),k=i.filter(function(a){return!j.has(a)});return g>d?c.concat([{others:k,key:e,value:g-d}]):c};return b.cappedKeyAccessor=function(a,c){return a.others?a.key:b.keyAccessor()(a,c)},b.cappedValueAccessor=function(a,c){return a.others?a.value:b.valueAccessor()(a,c)},b.data(function(a){if(1/0===d)return b._computeOrderedGroups(a.all());var c=a.top(d);return c=b._computeOrderedGroups(c),f?f(c):c}),b.cap=function(a){return arguments.length?(d=a,b):d},b.othersLabel=function(a){return arguments.length?(e=a,b):e},b.othersGrouper=function(a){return arguments.length?(f=a,b):f},c.override(b,"onClick",function(a){a.others&&b.filter([a.others]),b._onClick(a)}),b},c.bubbleMixin=function(b){var d=.3,e=10;b.BUBBLE_NODE_CLASS="node",b.BUBBLE_CLASS="bubble",b.MIN_RADIUS=10,b=c.colorMixin(b),b.renderLabel(!0),b.data(function(a){return a.top(1/0)});var f=a.scale.linear().domain([0,100]),g=function(a){return a.r};b.r=function(a){return arguments.length?(f=a,b):f},b.radiusValueAccessor=function(a){return arguments.length?(g=a,b):g},b.rMin=function(){var c=a.min(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.rMax=function(){var c=a.max(b.data(),function(a){return b.radiusValueAccessor()(a)});return c},b.bubbleR=function(a){var c=b.radiusValueAccessor()(a),d=b.r()(c);return(isNaN(d)||0>=c)&&(d=0),d};var h=function(a){return b.label()(a)},i=function(a){return b.bubbleR(a)>e?1:0};b._doRenderLabel=function(a){if(b.renderLabel()){var d=a.select("text");d.empty()&&(d=a.append("text").attr("text-anchor","middle").attr("dy",".3em").on("click",b.onClick)),d.attr("opacity",0).text(h),c.transition(d,b.transitionDuration()).attr("opacity",i)}},b.doUpdateLabels=function(a){if(b.renderLabel()){var d=a.selectAll("text").text(h);c.transition(d,b.transitionDuration()).attr("opacity",i)}};var j=function(a){return b.title()(a)};return b._doRenderTitles=function(a){if(b.renderTitle()){var c=a.select("title");c.empty()&&a.append("title").text(j)}},b.doUpdateTitles=function(a){b.renderTitle()&&a.selectAll("title").text(j)},b.minRadiusWithLabel=function(a){return arguments.length?(e=a,b):e},b.maxBubbleRelativeSize=function(a){return arguments.length?(d=a,b):d},b.fadeDeselectedArea=function(){b.selectAll("g."+b.BUBBLE_NODE_CLASS).each(b.hasFilter()?function(a){b.isSelectedNode(a)?b.highlightSelected(this):b.fadeDeselected(this)}:function(){b.resetHighlight(this)})},b.isSelectedNode=function(a){return b.hasFilter(a.key)},b.onClick=function(a){var d=a.key;c.events.trigger(function(){b.filter(d),b.redrawGroup()})},b},c.pieChart=function(b,d){function e(){D=D?D:a.min([O.width(),O.height()])/2;var b,c=r(),d=t();if(a.sum(O.data(),O.valueAccessor())?(b=d(O.data()),E.classed(K,!1)):(b=d([{key:L,value:1,others:[L]}]),E.classed(K,!0)),E){var e=E.selectAll("g."+J).data(b);f(e,c,b),l(b,c),p(e),q()}}function f(a,b,c){var d=g(a);h(d,b),i(d),k(c,b)}function g(a){var b=a.enter().append("g").attr("class",function(a,b){return J+" _"+b});return b}function h(a,b){var d=a.append("path").attr("fill",y).on("click",z).attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)})}function i(a){O.renderTitle()&&a.append("title").text(function(a){return O.title()(a.data)})}function j(a,b){c.transition(a,O.transitionDuration()).attr("transform",function(a){return B(a,b)}).attr("text-anchor","middle").text(function(a){var b=a.data;return!v(b)&&!u(a)||s(a)?O.label()(a.data):""})}function k(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);c.exit().remove();var d=c.enter().append("text").attr("class",function(a,b){var c=J+" _"+b;return H&&(c+=" external"),c}).on("click",z);j(d,b)}}function l(a,b){m(a,b),n(a,b),o(a)}function m(a,b){var d=E.selectAll("g."+J).data(a).select("path").attr("d",function(a,c){return A(a,c,b)});c.transition(d,O.transitionDuration(),function(a){a.attrTween("d",w)}).attr("fill",y)}function n(a,b){if(O.renderLabel()){var c=E.selectAll("text."+J).data(a);j(c,b)}}function o(a){O.renderTitle()&&E.selectAll("g."+J).data(a).select("title").text(function(a){return O.title()(a.data)})}function p(a){a.exit().remove()}function q(){O.selectAll("g."+J).each(O.hasFilter()?function(a){s(a)?O.highlightSelected(this):O.fadeDeselected(this)}:function(){O.resetHighlight(this)})}function r(){return a.svg.arc().outerRadius(D).innerRadius(M)}function s(a){return O.hasFilter(O.cappedKeyAccessor(a.data))}function t(){return a.layout.pie().sort(null).value(O.cappedValueAccessor)}function u(a){var b=a.endAngle-a.startAngle;return isNaN(b)||N>b}function v(a){return 0===O.cappedValueAccessor(a)}function w(b){b.innerRadius=M;var c=this._current;x(c)&&(c={startAngle:0,endAngle:0});var d=a.interpolate(c,b);return this._current=d(0),function(a){return A(d(a),0,r())}}function x(a){return!a||isNaN(a.startAngle)||isNaN(a.endAngle)}function y(a,b){return O.getColor(a.data,b)}function z(a,b){E.attr("class")!==K&&O.onClick(a.data,b)}function A(a,b,c){var d=c(a,b);return d.indexOf("NaN")>=0&&(d="M0,0"),d}function B(b,c){var d;return d=H?a.svg.arc().outerRadius(D+H).innerRadius(D+H).centroid(b):c.centroid(b),isNaN(d[0])||isNaN(d[1])?"translate(0,0)":"translate("+d+")"}function C(b,c){O.selectAll("g.pie-slice").each(function(d){b.name===d.data.key&&a.select(this).classed("highlight",c)
})}var D,E,F,G,H,I=.5,J="pie-slice",K="empty-chart",L="empty",M=0,N=I,O=c.capMixin(c.colorMixin(c.baseMixin({})));return O.colorAccessor(O.cappedKeyAccessor),O.title(function(a){return O.cappedKeyAccessor(a)+": "+O.cappedValueAccessor(a)}),O.slicesCap=O.cap,O.label(O.cappedKeyAccessor),O.renderLabel(!0),O.transitionDuration(350),O._doRender=function(){return O.resetSvg(),E=O.svg().append("g").attr("transform","translate("+O.cx()+","+O.cy()+")"),e(),O},O.innerRadius=function(a){return arguments.length?(M=a,O):M},O.radius=function(a){return arguments.length?(D=a,O):D},O.cx=function(a){return arguments.length?(F=a,O):F||O.width()/2},O.cy=function(a){return arguments.length?(G=a,O):G||O.height()/2},O._doRedraw=function(){return e(),O},O.minAngleForLabel=function(a){return arguments.length?(N=a,O):N},O.emptyTitle=function(a){return 0===arguments.length?L:(L=a,O)},O.externalLabels=function(a){return 0===arguments.length?H:(H=a?a:void 0,O)},O.legendables=function(){return O.data().map(function(a,b){var c={name:a.key,data:a.value,others:a.others,chart:O};return c.color=O.getColor(a,b),c})},O.legendHighlight=function(a){C(a,!0)},O.legendReset=function(a){C(a,!1)},O.legendToggle=function(a){O.onClick({key:a.name,others:a.others})},O.anchor(b,d)},c.barChart=function(b,d){function e(a){return c.utils.safeNumber(Math.abs(l.y()(a.y+a.y0)-l.y()(a.y0)))}function f(a,b,d){var f=a.selectAll("rect.bar").data(d.values,c.pluck("x")),g=f.enter().append("rect").attr("class","bar").attr("fill",c.pluck("data",l.getColor)).attr("y",l.yAxisHeight()).attr("height",0);l.renderTitle()&&g.append("title").text(c.pluck("data",l.title(d.name))),l.isOrdinal()&&f.on("click",l.onClick),c.transition(f,l.transitionDuration()).attr("x",function(a){var b=l.x()(a.x);return n&&(b-=i/2),l.isOrdinal()&&void 0!==m&&(b+=m/2),c.utils.safeNumber(b)}).attr("y",function(a){var b=l.y()(a.y+a.y0);return a.y<0&&(b-=e(a)),c.utils.safeNumber(b)}).attr("width",i).attr("height",function(a){return e(a)}).attr("fill",c.pluck("data",l.getColor)).select("title").text(c.pluck("data",l.title(d.name))),c.transition(f.exit(),l.transitionDuration()).attr("height",0).remove()}function g(){if(void 0===i){var a=l.xUnitCount();i=Math.floor(l.isOrdinal()&&void 0===m?l.x().rangeBand():m?(l.xAxisLength()-(a-1)*m)/a:l.xAxisLength()/(1+l.barPadding())/a),(1/0===i||isNaN(i)||j>i)&&(i=j)}}function h(b,c){return function(){var d=a.select(this),e=d.attr("fill")===b;return c?!e:e}}var i,j=1,k=2,l=c.stackMixin(c.coordinateGridMixin({})),m=k,n=!1,o=!1;return c.override(l,"rescale",function(){l._rescale(),i=void 0}),c.override(l,"render",function(){l.round()&&n&&!o&&c.logger.warn("By default, brush rounding is disabled if bars are centered. See dc.js bar chart API documentation for details."),l._render()}),l.plotData=function(){var b=l.chartBodyG().selectAll("g.stack").data(l.data());g(),b.enter().append("g").attr("class",function(a,b){return"stack _"+b}),b.each(function(b,c){var d=a.select(this);f(d,c,b)})},l.fadeDeselectedArea=function(){var a=l.chartBodyG().selectAll("rect.bar"),b=l.brush().extent();if(l.isOrdinal())l.hasFilter()?(a.classed(c.constants.SELECTED_CLASS,function(a){return l.hasFilter(a.x)}),a.classed(c.constants.DESELECTED_CLASS,function(a){return!l.hasFilter(a.x)})):(a.classed(c.constants.SELECTED_CLASS,!1),a.classed(c.constants.DESELECTED_CLASS,!1));else if(l.brushIsEmpty(b))a.classed(c.constants.DESELECTED_CLASS,!1);else{var d=b[0],e=b[1];a.classed(c.constants.DESELECTED_CLASS,function(a){return a.x<d||a.x>=e})}},l.centerBar=function(a){return arguments.length?(n=a,l):n},c.override(l,"onClick",function(a){l._onClick(a.data)}),l.barPadding=function(a){return arguments.length?(l._rangeBandPadding(a),m=void 0,l):l._rangeBandPadding()},l._useOuterPadding=function(){return void 0===m},l.outerPadding=l._outerRangeBandPadding,l.gap=function(a){return arguments.length?(m=a,l):m},l.extendBrush=function(){var a=l.brush().extent();return!l.round()||n&&!o||(a[0]=a.map(l.round())[0],a[1]=a.map(l.round())[1],l.chartBodyG().select(".brush").call(l.brush().extent(a))),a},l.alwaysUseRounding=function(a){return arguments.length?(o=a,l):o},l.legendHighlight=function(a){l.isLegendableHidden(a)||l.g().selectAll("rect.bar").classed("highlight",h(a.color)).classed("fadeout",h(a.color,!0))},l.legendReset=function(){l.g().selectAll("rect.bar").classed("highlight",!1).classed("fadeout",!1)},c.override(l,"xAxisMax",function(){var a=this._xAxisMax();if("resolution"in l.xUnits()){var b=l.xUnits().resolution;a+=b}return a}),l.anchor(b,d)},c.lineChart=function(b,d){function e(a,b){return z.getColor.call(a,a.values,b)}function f(b,d){var f=a.svg.line().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).interpolate(F).tension(G);r&&f.defined(r);var g=b.append("path").attr("class","line").attr("stroke",e);s&&g.attr("stroke-dasharray",s),c.transition(d.select("path.line"),z.transitionDuration()).attr("stroke",e).attr("d",function(a){return h(f(a.values))})}function g(b,d){if(A){var f=a.svg.area().x(function(a){return z.x()(a.x)}).y(function(a){return z.y()(a.y+a.y0)}).y0(function(a){return z.y()(a.y0)}).interpolate(F).tension(G);r&&f.defined(r),b.append("path").attr("class","area").attr("fill",e).attr("d",function(a){return h(f(a.values))}),c.transition(d.select("path.area"),z.transitionDuration()).attr("fill",e).attr("d",function(a){return h(f(a.values))})}}function h(a){return!a||a.indexOf("NaN")>=0?"M0,0":a}function i(b,d){if(!z.brushOn()&&z.xyTipsOn()){var e=u+"-list",f=b.select("g."+e);f.empty()&&(f=b.append("g").attr("class",e)),d.each(function(b,d){var e=b.values;r&&(e=e.filter(r));var g=f.select("g."+u+"._"+d);g.empty()&&(g=f.append("g").attr("class",u+" _"+d)),j(g);var h=g.selectAll("circle."+v).data(e,c.pluck("x"));h.enter().append("circle").attr("class",v).attr("r",m()).style("fill-opacity",D).style("stroke-opacity",E).on("mousemove",function(){var b=a.select(this);k(b),l(b,g)}).on("mouseout",function(){var b=a.select(this);n(b),o(g)}),h.attr("cx",function(a){return c.utils.safeNumber(z.x()(a.x))}).attr("cy",function(a){return c.utils.safeNumber(z.y()(a.y+a.y0))}).attr("fill",z.getColor).call(p,b),h.exit().remove()})}}function j(a){var b=a.select("path."+w).empty()?a.append("path").attr("class",w):a.select("path."+w);b.style("display","none").attr("stroke-dasharray","5,5");var c=a.select("path."+x).empty()?a.append("path").attr("class",x):a.select("path."+x);c.style("display","none").attr("stroke-dasharray","5,5")}function k(a){return a.style("fill-opacity",.8),a.style("stroke-opacity",.8),a.attr("r",B),a}function l(a,b){var c=a.attr("cx"),d=a.attr("cy"),e=z._yAxisX()-z.margins().left,f="M"+e+" "+d+"L"+c+" "+d,g="M"+c+" "+z.yAxisHeight()+"L"+c+" "+d;b.select("path."+w).style("display","").attr("d",f),b.select("path."+x).style("display","").attr("d",g)}function m(){return C||B}function n(a){a.style("fill-opacity",D).style("stroke-opacity",E).attr("r",m())}function o(a){a.select("path."+w).style("display","none"),a.select("path."+x).style("display","none")}function p(a,b){z.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(c.pluck("data",z.title(b.name))))}function q(b,c,d){return function(){var e=a.select(this),f=e.attr("stroke")===b&&e.attr("stroke-dasharray")===(c instanceof Array?c.join(","):null)||e.attr("fill")===b;return d?!f:f}}var r,s,t=5,u="dc-tooltip",v="dot",w="yRef",x="xRef",y=1e-6,z=c.stackMixin(c.coordinateGridMixin({})),A=!1,B=t,C=null,D=y,E=y,F="linear",G=.7,H=!0;return z.transitionDuration(500),z._rangeBandPadding(1),z.plotData=function(){var a=z.chartBodyG(),b=a.selectAll("g.stack-list");b.empty()&&(b=a.append("g").attr("class","stack-list"));var c=b.selectAll("g.stack").data(z.data()),d=c.enter().append("g").attr("class",function(a,b){return"stack _"+b});f(d,c),g(d,c),i(a,c)},z.interpolate=function(a){return arguments.length?(F=a,z):F},z.tension=function(a){return arguments.length?(G=a,z):G},z.defined=function(a){return arguments.length?(r=a,z):r},z.dashStyle=function(a){return arguments.length?(s=a,z):s},z.renderArea=function(a){return arguments.length?(A=a,z):A},z.xyTipsOn=function(a){return arguments.length?(H=a,z):H},z.dotRadius=function(a){return arguments.length?(B=a,z):B},z.renderDataPoints=function(a){return arguments.length?(a?(D=a.fillOpacity||.8,E=a.strokeOpacity||.8,C=a.radius||2):(D=y,E=y,C=null),z):{fillOpacity:D,strokeOpacity:E,radius:C}},z.legendHighlight=function(a){z.isLegendableHidden(a)||z.g().selectAll("path.line, path.area").classed("highlight",q(a.color,a.dashstyle)).classed("fadeout",q(a.color,a.dashstyle,!0))},z.legendReset=function(){z.g().selectAll("path.line, path.area").classed("highlight",!1).classed("fadeout",!1)},c.override(z,"legendables",function(){var a=z._legendables();return s?a.map(function(a){return a.dashstyle=s,a}):a}),z.anchor(b,d)},c.dataCount=function(b,d){var e=a.format(",d"),f=c.baseMixin({}),g={some:"",all:""};return f.html=function(a){return arguments.length?(a.all&&(g.all=a.all),a.some&&(g.some=a.some),f):g},f.formatNumber=function(a){return arguments.length?(e=a,f):e},f._doRender=function(){var a=f.dimension().size(),b=f.group().value(),c=e(a),d=e(b);return a===b&&""!==g.all?f.root().html(g.all.replace("%total-count",c).replace("%filter-count",d)):""!==g.some?f.root().html(g.some.replace("%total-count",c).replace("%filter-count",d)):(f.selectAll(".total-count").text(c),f.selectAll(".filter-count").text(d)),f},f._doRedraw=function(){return f._doRender()},f.anchor(b,d)},c.dataTable=function(b,d){function e(){var a=!0;if(o.forEach(function(b){a&="function"==typeof b}),!a){m.selectAll("th").remove();var b=m.root().selectAll("th").data(o),c=b.enter().append("th");c.attr("class",l).html(function(a){return m._doColumnHeaderFormat(a)})}var d=m.root().selectAll("tbody").data(f(),function(a){return m.keyAccessor()(a)}),e=d.enter().append("tbody");return e.append("tr").attr("class",k).append("td").attr("class",h).attr("colspan",o.length).html(function(a){return m.keyAccessor()(a)}),d.exit().remove(),e}function f(){var b;return b=q===a.ascending?m.dimension().bottom(n):m.dimension().top(n),a.nest().key(m.group()).sortKeys(q).entries(b.sort(function(a,b){return q(p(a),p(b))}))}function g(a){var b=a.order().selectAll("tr."+i).data(function(a){return a.values}),c=b.enter().append("tr").attr("class",i);return o.forEach(function(a,b){c.append("td").attr("class",j+" _"+b).html(function(b){return m._doColumnValueFormat(a,b)})}),b.exit().remove(),b}var h="dc-table-label",i="dc-table-row",j="dc-table-column",k="dc-table-group",l="dc-table-head",m=c.baseMixin({}),n=25,o=[],p=function(a){return a},q=a.ascending;return m._doRender=function(){return m.selectAll("tbody").remove(),g(e()),m},m._doColumnValueFormat=function(a,b){return"function"==typeof a?a(b):"string"==typeof a?b[a]:a.format(b)},m._doColumnHeaderFormat=function(a){return"function"==typeof a?m._doColumnHeaderFnToString(a):"string"==typeof a?m._doColumnHeaderCapitalize(a):String(a.label)},m._doColumnHeaderCapitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},m._doColumnHeaderFnToString=function(a){var b=String(a),c=b.indexOf("return ");if(c>=0){var d=b.lastIndexOf(";");if(d>=0){b=b.substring(c+7,d);var e=b.indexOf("numberFormat");e>=0&&(b=b.replace("numberFormat",""))}}return b},m._doRedraw=function(){return m._doRender()},m.size=function(a){return arguments.length?(n=a,m):n},m.columns=function(a){return arguments.length?(o=a,m):o},m.sortBy=function(a){return arguments.length?(p=a,m):p},m.order=function(a){return arguments.length?(q=a,m):q},m.anchor(b,d)},c.dataGrid=function(b,d){function e(){var a=l.root().selectAll("div."+k).data(f(),function(a){return l.keyAccessor()(a)}),b=a.enter().append("div").attr("class",k);return q&&b.html(function(a){return q(a)}),a.exit().remove(),b}function f(){var b=l.dimension().top(m);return a.nest().key(l.group()).sortKeys(p).entries(b.sort(function(a,b){return p(o(a),o(b))}))}function g(a){var b=a.order().selectAll("div."+i).data(function(a){return a.values});return b.enter().append("div").attr("class",i).html(function(a){return n(a)}),b.exit().remove(),b}var h="dc-grid-label",i="dc-grid-item",j="dc-grid-group",k="dc-grid-top",l=c.baseMixin({}),m=999,n=function(a){return"you need to provide an html() handling param: "+JSON.stringify(a)},o=function(a){return a},p=a.ascending,q=function(a){return"<div class='"+j+"'><h1 class='"+h+"'>"+l.keyAccessor()(a)+"</h1></div>"};return l._doRender=function(){return l.selectAll("div."+k).remove(),g(e()),l},l._doRedraw=function(){return l._doRender()},l.size=function(a){return arguments.length?(m=a,l):m},l.html=function(a){return arguments.length?(n=a,l):n},l.htmlGroup=function(a){return arguments.length?(q=a,l):q},l.sortBy=function(a){return arguments.length?(o=a,l):o},l.order=function(a){return arguments.length?(p=a,l):p},l.anchor(b,d)},c.bubbleChart=function(a,b){function d(a){var b=a.enter().append("g");b.attr("class",i.BUBBLE_NODE_CLASS).attr("transform",k).append("circle").attr("class",function(a,b){return i.BUBBLE_CLASS+" _"+b}).on("click",i.onClick).attr("fill",i.getColor).attr("r",0),c.transition(a,i.transitionDuration()).selectAll("circle."+i.BUBBLE_CLASS).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i._doRenderLabel(b),i._doRenderTitles(b)}function e(a){c.transition(a,i.transitionDuration()).attr("transform",k).selectAll("circle."+i.BUBBLE_CLASS).attr("fill",i.getColor).attr("r",function(a){return i.bubbleR(a)}).attr("opacity",function(a){return i.bubbleR(a)>0?1:0}),i.doUpdateLabels(a),i.doUpdateTitles(a)}function f(a){a.exit().remove()}function g(a){var b=i.x()(i.keyAccessor()(a));return isNaN(b)&&(b=0),b}function h(a){var b=i.y()(i.valueAccessor()(a));return isNaN(b)&&(b=0),b}var i=c.bubbleMixin(c.coordinateGridMixin({})),j=!1;i.transitionDuration(750);var k=function(a){return"translate("+g(a)+","+h(a)+")"};return i.elasticRadius=function(a){return arguments.length?(j=a,i):j},i.plotData=function(){j&&i.r().domain([i.rMin(),i.rMax()]),i.r().range([i.MIN_RADIUS,i.xAxisLength()*i.maxBubbleRelativeSize()]);var a=i.chartBodyG().selectAll("g."+i.BUBBLE_NODE_CLASS).data(i.data(),function(a){return a.key});d(a),e(a),f(a),i.fadeDeselectedArea()},i.renderBrush=function(){},i.redrawBrush=function(){i.fadeDeselectedArea()},i.anchor(a,b)},c.compositeChart=function(b,d){function e(){(void 0===u.rightY()||u.elasticY())&&(u.rightY(a.scale.linear()),u.rightY().domain([l(),o()]).rangeRound([u.yAxisHeight(),0])),u.rightY().range([u.yAxisHeight(),0]),u.rightYAxis(u.rightYAxis().scale(u.rightY())),u.rightYAxis().orient("right")}function f(){(void 0===u.y()||u.elasticY())&&(u.y(a.scale.linear()),u.y().domain([k(),n()]).rangeRound([u.yAxisHeight(),0])),u.y().range([u.yAxisHeight(),0]),u.yAxis(u.yAxis().scale(u.y())),u.yAxis().orient("left")}function g(a,b){a._generateG(u.g()),a.g().attr("class",s+" _"+b)}function h(){return v.filter(function(a){return!a.useRightYAxis()})}function i(){return v.filter(function(a){return a.useRightYAxis()})}function j(a){return a.map(function(a){return a.yAxisMin()})}function k(){return a.min(j(h()))}function l(){return a.min(j(i()))}function m(a){return a.map(function(a){return a.yAxisMax()})}function n(){return c.utils.add(a.max(m(h())),u.yAxisPadding())}function o(){return c.utils.add(a.max(m(i())),u.yAxisPadding())}function p(){return v.map(function(a){return a.xAxisMin()})}function q(){return v.map(function(a){return a.xAxisMax()})}var r,s="sub",t=12,u=c.coordinateGridMixin({}),v=[],w={},x=!1,y=!0,z=a.svg.axis(),A=0,B=t,C=!1;return u._mandatoryAttributes([]),u.transitionDuration(500),c.override(u,"_generateG",function(){for(var a=this.__generateG(),b=0;b<v.length;++b){var c=v[b];g(c,b),c.dimension()||c.dimension(u.dimension()),c.group()||c.group(u.group()),c.chartGroup(u.chartGroup()),c.svg(u.svg()),c.xUnits(u.xUnits()),c.transitionDuration(u.transitionDuration()),c.brushOn(u.brushOn()),c.renderTitle(u.renderTitle())}return a}),u._brushing=function(){for(var a=u.extendBrush(),b=u.brushIsEmpty(a),c=0;c<v.length;++c)v[c].filter(null),b||v[c].filter(a)},u._prepareYAxis=function(){0!==h().length&&f(),0!==i().length&&e(),h().length>0&&!C?u._renderHorizontalGridLinesForAxis(u.g(),u.y(),u.yAxis()):i().length>0&&u._renderHorizontalGridLinesForAxis(u.g(),r,z)},u.renderYAxis=function(){0!==h().length&&(u.renderYAxisAt("y",u.yAxis(),u.margins().left),u.renderYAxisLabel("y",u.yAxisLabel(),-90)),0!==i().length&&(u.renderYAxisAt("yr",u.rightYAxis(),u.width()-u.margins().right),u.renderYAxisLabel("yr",u.rightYAxisLabel(),90,u.width()-B))},u.plotData=function(){for(var a=0;a<v.length;++a){var b=v[a];b.g()||g(b,a),x&&b.colors(u.colors()),b.x(u.x()),b.xAxis(u.xAxis()),b.useRightYAxis()?(b.y(u.rightY()),b.yAxis(u.rightYAxis())):(b.y(u.y()),b.yAxis(u.yAxis())),b.plotData(),b._activateRenderlets()}},u.useRightAxisGridLines=function(a){return arguments?(C=a,u):C},u.childOptions=function(a){return arguments.length?(w=a,v.forEach(function(a){a.options(w)}),u):w},u.fadeDeselectedArea=function(){for(var a=0;a<v.length;++a){var b=v[a];b.brush(u.brush()),b.fadeDeselectedArea()}},u.rightYAxisLabel=function(a,b){return arguments.length?(A=a,u.margins().right-=B,B=void 0===b?t:b,u.margins().right+=B,u):A},u.compose=function(a){return v=a,v.forEach(function(a){a.height(u.height()),a.width(u.width()),a.margins(u.margins()),y&&a.title(u.title()),a.options(w)}),u},u.children=function(){return v},u.shareColors=function(a){return arguments.length?(x=a,u):x},u.shareTitle=function(a){return arguments.length?(y=a,u):y},u.rightY=function(a){return arguments.length?(r=a,u):r},delete u.yAxisMin,delete u.yAxisMax,c.override(u,"xAxisMin",function(){return c.utils.subtract(a.min(p()),u.xAxisPadding())}),c.override(u,"xAxisMax",function(){return c.utils.add(a.max(q()),u.xAxisPadding())}),u.legendables=function(){return v.reduce(function(a,b){return x&&b.colors(u.colors()),a.push.apply(a,b.legendables()),a},[])},u.legendHighlight=function(a){for(var b=0;b<v.length;++b){var c=v[b];c.legendHighlight(a)}},u.legendReset=function(a){for(var b=0;b<v.length;++b){var c=v[b];c.legendReset(a)}},u.legendToggle=function(){console.log("composite should not be getting legendToggle itself")},u.rightYAxis=function(a){return arguments.length?(z=a,u):z},u.anchor(b,d)},c.seriesChart=function(b,d){function e(b,c){return a.ascending(i.keyAccessor()(b),i.keyAccessor()(c))}function f(a){j[a].g()&&j[a].g().remove(),delete j[a]}function g(){Object.keys(j).map(f),j={}}var h,i=c.compositeChart(b,d),j={},k=c.lineChart,l=a.ascending,m=e;return i._mandatoryAttributes().push("seriesAccessor","chart"),i.shareColors(!0),i._preprocessData=function(){var b,c=[],e=a.nest().key(h);l&&e.sortKeys(l),m&&e.sortValues(m);var g=e.entries(i.data()),n=g.map(function(e,f){var g=j[e.key]||k.call(i,i,d,e.key,f);return j[e.key]||(b=!0),j[e.key]=g,c.push(e.key),g.dimension(i.dimension()).group({all:a.functor(e.values)},e.key).keyAccessor(i.keyAccessor()).valueAccessor(i.valueAccessor()).brushOn(i.brushOn())});Object.keys(j).filter(function(a){return-1===c.indexOf(a)}).forEach(function(a){f(a),b=!0}),i._compose(n),b&&i.legend()&&i.legend().render()},i.chart=function(a){return arguments.length?(k=a,g(),i):k},i.seriesAccessor=function(a){return arguments.length?(h=a,g(),i):h},i.seriesSort=function(a){return arguments.length?(l=a,g(),i):l},i.valueSort=function(a){return arguments.length?(m=a,g(),i):m},i._compose=i.compose,delete i.compose,i},c.geoChoroplethChart=function(b,d){function e(a){var b=f();if(g(a)){var c=h(a);n(c,a,b),o(c,a,b)}}function f(){for(var a={},b=p.data(),c=0;c<b.length;++c)a[p.keyAccessor()(b[c])]=p.valueAccessor()(b[c]);return a}function g(a){return m(a).keyAccessor}function h(a){var b=p.svg().selectAll(i(a)).classed("selected",function(b){return j(a,b)}).classed("deselected",function(b){return k(a,b)}).attr("class",function(b){var d=m(a).name,e=c.utils.nameToId(m(a).keyAccessor(b)),f=d+" "+e;return j(a,b)&&(f+=" selected"),k(a,b)&&(f+=" deselected"),f});return b}function i(a){return"g.layer"+a+" g."+m(a).name}function j(a,b){return p.hasFilter()&&p.hasFilter(l(a,b))}function k(a,b){return p.hasFilter()&&!p.hasFilter(l(a,b))}function l(a,b){return m(a).keyAccessor(b)}function m(a){return s[a]}function n(b,d,e){var f=b.select("path").attr("fill",function(){var b=a.select(this).attr("fill");return b?b:"none"}).on("click",function(a){return p.onClick(a,d)});c.transition(f,p.transitionDuration()).attr("fill",function(a,b){return p.getColor(e[m(d).keyAccessor(a)],b)})}function o(a,b,c){p.renderTitle()&&a.selectAll("title").text(function(a){var d=l(b,a),e=c[d];return p.title()({key:d,value:e})})}var p=c.colorMixin(c.baseMixin({}));p.colorAccessor(function(a){return a||0});var q,r=a.geo.path(),s=[];return p._doRender=function(){p.resetSvg();for(var a=0;a<s.length;++a){var b=p.svg().append("g").attr("class","layer"+a),c=b.selectAll("g."+m(a).name).data(m(a).data).enter().append("g").attr("class",m(a).name);c.append("path").attr("fill","white").attr("d",r),c.append("title"),e(a)}q=!1},p.onClick=function(a,b){var d=m(b).keyAccessor(a);c.events.trigger(function(){p.filter(d),p.redrawGroup()})},p._doRedraw=function(){for(var a=0;a<s.length;++a)e(a),q&&p.svg().selectAll("g."+m(a).name+" path").attr("d",r);q=!1},p.overlayGeoJson=function(a,b,c){for(var d=0;d<s.length;++d)if(s[d].name===b)return s[d].data=a,s[d].keyAccessor=c,p;return s.push({name:b,data:a,keyAccessor:c}),p},p.projection=function(a){return r.projection(a),q=!0,p},p.geoJsons=function(){return s},p.geoPath=function(){return r},p.removeGeoJson=function(a){for(var b=[],c=0;c<s.length;++c){var d=s[c];d.name!==a&&b.push(d)}return s=b,p},p.anchor(b,d)},c.bubbleOverlay=function(b,d){function e(){return j=n.select("g."+k),j.empty()&&(j=n.svg().append("g").attr("class",k)),j}function f(){var a=g();o.forEach(function(b){var d=h(b,a),e=d.select("circle."+m);e.empty()&&(e=d.append("circle").attr("class",m).attr("r",0).attr("fill",n.getColor).on("click",n.onClick)),c.transition(e,n.transitionDuration()).attr("r",function(a){return n.bubbleR(a)}),n._doRenderLabel(d),n._doRenderTitles(d)})}function g(){var a={};return n.data().forEach(function(b){a[n.keyAccessor()(b)]=b}),a}function h(a,b){var d=l+" "+c.utils.nameToId(a.name),e=j.select("g."+c.utils.nameToId(a.name));return e.empty()&&(e=j.append("g").attr("class",d).attr("transform","translate("+a.x+","+a.y+")")),e.datum(b[a.name]),e}function i(){var a=g();o.forEach(function(b){var d=h(b,a),e=d.select("circle."+m);c.transition(e,n.transitionDuration()).attr("r",function(a){return n.bubbleR(a)}).attr("fill",n.getColor),n.doUpdateLabels(d),n.doUpdateTitles(d)})}var j,k="bubble-overlay",l="node",m="bubble",n=c.bubbleMixin(c.baseMixin({})),o=[];return n.transitionDuration(750),n.radiusValueAccessor(function(a){return a.value}),n.point=function(a,b,c){return o.push({name:a,x:b,y:c}),n},n._doRender=function(){return j=e(),n.r().range([n.MIN_RADIUS,n.width()*n.maxBubbleRelativeSize()]),f(),n.fadeDeselectedArea(),n},n._doRedraw=function(){return i(),n.fadeDeselectedArea(),n},n.debug=function(b){if(b){var d=n.select("g."+c.constants.DEBUG_GROUP_CLASS);d.empty()&&(d=n.svg().append("g").attr("class",c.constants.DEBUG_GROUP_CLASS));var e=d.append("text").attr("x",10).attr("y",20);d.append("rect").attr("width",n.width()).attr("height",n.height()).on("mousemove",function(){var b=a.mouse(d.node()),c=b[0]+", "+b[1];e.text(c)})}else n.selectAll(".debug").remove();return n},n.anchor(b,d),n},c.rowChart=function(b,d){function e(){if(!t||u){var b=a.extent(v,G.cappedValueAccessor);b[0]>0&&(b[0]=0),t=a.scale.linear().domain(b).range([0,G.effectiveWidth()])}H.scale(t)}function f(){var a=s.select("g.axis");e(),a.empty()&&(a=s.append("g").attr("class","axis").attr("transform","translate(0, "+G.effectiveHeight()+")")),c.transition(a,G.transitionDuration()).call(H)}function g(){s.selectAll("g.tick").select("line.grid-line").remove(),s.selectAll("g.tick").append("line").attr("class","grid-line").attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",function(){return-G.effectiveHeight()})}function h(){v=G.data(),f(),g();var a=s.selectAll("g."+D).data(v);i(a),j(a),l(a)}function i(a){var b=a.enter().append("g").attr("class",function(a,b){return D+" _"+b});b.append("rect").attr("width",0),n(b),o(a)}function j(a){a.exit().remove()}function k(){var a=t(0);return a===-1/0||a!==a?t(1):a}function l(a){var b,d=v.length;b=C?C:(G.effectiveHeight()-(d+1)*B)/d,y||(x=b/2);var e=a.attr("transform",function(a,c){return"translate(0,"+((c+1)*B+c*b)+")"}).select("rect").attr("height",b).attr("fill",G.getColor).on("click",p).classed("deselected",function(a){return G.hasFilter()?!r(a):!1}).classed("selected",function(a){return G.hasFilter()?r(a):!1});c.transition(e,G.transitionDuration()).attr("width",function(a){return Math.abs(k()-t(G.valueAccessor()(a)))}).attr("transform",q),m(a),o(a)}function m(a){G.renderTitle()&&(a.selectAll("title").remove(),a.append("title").text(G.title()))}function n(a){G.renderLabel()&&a.append("text").on("click",p),G.renderTitleLabel()&&a.append("text").attr("class",E).on("click",p)}function o(a){if(G.renderLabel()){var b=a.select("text").attr("x",w).attr("y",x).attr("dy",z).on("click",p).attr("class",function(a,b){return D+" _"+b}).text(function(a){return G.label()(a)});c.transition(b,G.transitionDuration()).attr("transform",q)}if(G.renderTitleLabel()){var d=a.select("."+E).attr("x",G.effectiveWidth()-A).attr("y",x).attr("text-anchor","end").on("click",p).attr("class",function(a,b){return E+" _"+b}).text(function(a){return G.title()(a)});c.transition(d,G.transitionDuration()).attr("transform",q)}}function p(a){G.onClick(a)}function q(a){var b=t(G.cappedValueAccessor(a)),c=k(),d=b>c?c:b;return"translate("+d+",0)"}function r(a){return G.hasFilter(G.cappedKeyAccessor(a))}var s,t,u,v,w=10,x=15,y=!1,z="0.35em",A=2,B=5,C=!1,D="row",E="titlerow",F=!1,G=c.capMixin(c.marginMixin(c.colorMixin(c.baseMixin({})))),H=a.svg.axis().orient("bottom");return G.rowsCap=G.cap,G._doRender=function(){return G.resetSvg(),s=G.svg().append("g").attr("transform","translate("+G.margins().left+","+G.margins().top+")"),h(),G},G.title(function(a){return G.cappedKeyAccessor(a)+": "+G.cappedValueAccessor(a)}),G.label(G.cappedKeyAccessor),G.x=function(a){return arguments.length?(t=a,G):t},G.renderTitleLabel=function(a){return arguments.length?(F=a,G):F},G._doRedraw=function(){return h(),G},G.xAxis=function(){return H},G.fixedBarHeight=function(a){return arguments.length?(C=a,G):C},G.gap=function(a){return arguments.length?(B=a,G):B},G.elasticX=function(a){return arguments.length?(u=a,G):u},G.labelOffsetX=function(a){return arguments.length?(w=a,G):w},G.labelOffsetY=function(a){return arguments.length?(x=a,y=!0,G):x},G.titleLabelOffsetX=function(a){return arguments.length?(A=a,G):A},G.anchor(b,d)},c.legend=function(){function a(){return j+i}var b,d,e=2,f={},g=0,h=0,i=12,j=5,k=!1,l=560,m=70,n=!1;return f.parent=function(a){return arguments.length?(b=a,f):b},f.render=function(){b.svg().select("g.dc-legend").remove(),d=b.svg().append("g").attr("class","dc-legend").attr("transform","translate("+g+","+h+")");var f=b.legendables(),o=d.selectAll("g.dc-legend-item").data(f).enter().append("g").attr("class","dc-legend-item").on("mouseover",function(a){b.legendHighlight(a)}).on("mouseout",function(a){b.legendReset(a)}).on("click",function(a){a.chart.legendToggle(a)});d.selectAll("g.dc-legend-item").classed("fadeout",function(a){return a.chart.isLegendableHidden(a)}),f.some(c.pluck("dashstyle"))?o.append("line").attr("x1",0).attr("y1",i/2).attr("x2",i).attr("y2",i/2).attr("stroke-width",2).attr("stroke-dasharray",c.pluck("dashstyle")).attr("stroke",c.pluck("color")):o.append("rect").attr("width",i).attr("height",i).attr("fill",function(a){return a?a.color:"blue"}),o.append("text").text(c.pluck("name")).attr("x",i+e).attr("y",function(){return i/2+(this.clientHeight?this.clientHeight:13)/2-2});var p=0,q=0;o.attr("transform",function(b,c){if(k){var d="translate("+p+","+q*a()+")",e=n===!0?this.getBBox().width+j:m;return p+e>=l?(++q,p=0):p+=e,d}return"translate(0,"+c*a()+")"})},f.x=function(a){return arguments.length?(g=a,f):g},f.y=function(a){return arguments.length?(h=a,f):h},f.gap=function(a){return arguments.length?(j=a,f):j},f.itemHeight=function(a){return arguments.length?(i=a,f):i},f.horizontal=function(a){return arguments.length?(k=a,f):k},f.legendWidth=function(a){return arguments.length?(l=a,f):l},f.itemWidth=function(a){return arguments.length?(m=a,f):m},f.autoItemWidth=function(a){return arguments.length?(n=a,f):n},f},c.scatterPlot=function(b,d){function e(b,d){var e=g.selectAll(".chart-body path.symbol").filter(function(){return b(a.select(this))}),f=h.size();h.size(Math.pow(d,2)),c.transition(e,g.transitionDuration()).attr("d",h),h.size(f)}function f(a){var b=g.selectAll(".chart-body path.symbol").each(function(b){this.filtered=a&&a.isFiltered(b.key)});c.transition(b,g.transitionDuration()).attr("d",h)}var g=c.coordinateGridMixin({}),h=a.svg.symbol(),i=function(a){return a.value},j=g.keyAccessor();g.keyAccessor(function(a){return j(a)[0]}),g.valueAccessor(function(a){return j(a)[1]}),g.colorAccessor(function(){return g._groupName});var k=function(a){return"translate("+g.x()(g.keyAccessor()(a))+","+g.y()(g.valueAccessor()(a))+")"},l=3,m=5,n=0;return h.size(function(a){return i(a)?this.filtered?Math.pow(m,2):Math.pow(l,2):n}),c.override(g,"_filter",function(a){return arguments.length?g.__filter(c.filters.RangedTwoDimensionalFilter(a)):g.__filter()}),g.plotData=function(){var a=g.chartBodyG().selectAll("path.symbol").data(g.data());a.enter().append("path").attr("class","symbol").attr("opacity",0).attr("fill",g.getColor).attr("transform",k),c.transition(a,g.transitionDuration()).attr("opacity",function(a){return i(a)?1:0}).attr("fill",g.getColor).attr("transform",k).attr("d",h),c.transition(a.exit(),g.transitionDuration()).attr("opacity",0).remove()},g.existenceAccessor=function(a){return arguments.length?(i=a,this):i},g.symbol=function(a){return arguments.length?(h.type(a),g):h.type()},g.symbolSize=function(a){return arguments.length?(l=a,g):l},g.highlightedSize=function(a){return arguments.length?(m=a,g):m},g.hiddenSize=function(a){return arguments.length?(n=a,g):n},g.legendables=function(){return[{chart:g,name:g._groupName,color:g.getColor()}]},g.legendHighlight=function(b){e(function(a){return a.attr("fill")===b.color},m),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!0)},g.legendReset=function(b){e(function(a){return a.attr("fill")===b.color},l),g.selectAll(".chart-body path.symbol").filter(function(){return a.select(this).attr("fill")!==b.color}).classed("fadeout",!1)},g.setHandlePaths=function(){},g.extendBrush=function(){var a=g.brush().extent();return g.round()&&(a[0]=a[0].map(g.round()),a[1]=a[1].map(g.round()),g.g().select(".brush").call(g.brush().extent(a))),a},g.brushIsEmpty=function(a){return g.brush().empty()||!a||a[0][0]>=a[1][0]||a[0][1]>=a[1][1]},g._brushing=function(){var a=g.extendBrush();if(g.redrawBrush(g.g()),g.brushIsEmpty(a))c.events.trigger(function(){g.filter(null),g.redrawGroup()}),f(!1);else{var b=c.filters.RangedTwoDimensionalFilter(a);c.events.trigger(function(){g.filter(null),g.filter(b),g.redrawGroup()},c.constants.EVENT_DELAY),f(b)}},g.setBrushY=function(a){a.call(g.brush().y(g.y()))},g.anchor(b,d)},c.numberDisplay=function(b,d){var e="number-display",f=a.format(".2s"),g=c.baseMixin({}),h={one:"",some:"",none:""};return g._mandatoryAttributes(["group"]),g.html=function(a){return arguments.length?(a.none?h.none=a.none:a.one?h.none=a.one:a.some&&(h.none=a.some),a.one?h.one=a.one:a.some&&(h.one=a.some),a.some?h.some=a.some:a.one&&(h.some=a.one),g):h},g.value=function(){return g.data()},g.data(function(a){var b=a.value?a.value():a.top(1)[0];return g.valueAccessor()(b)}),g.transitionDuration(250),g._doRender=function(){var b=g.value(),c=g.selectAll("."+e);c.empty()&&(c=c.data([0]).enter().append("span").attr("class",e)),c.transition().duration(g.transitionDuration()).ease("quad-out-in").tween("text",function(){var c=a.interpolateNumber(this.lastValue||0,b);
return this.lastValue=b,function(a){var d=null,e=g.formatNumber()(c(a));0===b&&""!==h.none?d=h.none:1===b&&""!==h.one?d=h.one:""!==h.some&&(d=h.some),this.innerHTML=d?d.replace("%number",e):e}})},g._doRedraw=function(){return g._doRender()},g.formatNumber=function(a){return arguments.length?(f=a,g):f},g.anchor(b,d)},c.heatMap=function(b,d){function e(a,b){var d=p.selectAll(".box-group").filter(function(c){return c.key[a]===b}),e=d.filter(function(a){return!p.hasFilter(a.key)});c.events.trigger(function(){e.empty()?d.each(function(a){p.filter(a.key)}):e.each(function(a){p.filter(a.key)}),p.redrawGroup()})}var f,g,h,i=6.75,j=a.ascending,k=a.ascending,l=a.scale.ordinal(),m=a.scale.ordinal(),n=i,o=i,p=c.colorMixin(c.marginMixin(c.baseMixin({})));p._mandatoryAttributes(["group"]),p.title(p.colorAccessor());var q=function(a){return a},r=function(a){return a};p.colsLabel=function(a){return arguments.length?(q=a,p):q},p.rowsLabel=function(a){return arguments.length?(r=a,p):r};var s=function(a){e(0,a)},t=function(a){e(1,a)},u=function(a){var b=a.key;c.events.trigger(function(){p.filter(b),p.redrawGroup()})};return c.override(p,"filter",function(a){return arguments.length?p._filter(c.filters.TwoDimensionalFilter(a)):p._filter()}),p.rows=function(a){return arguments.length?(h=a,p):h},p.rowOrdering=function(a){return arguments.length?(k=a,p):k},p.cols=function(a){return arguments.length?(g=a,p):g},p.colOrdering=function(a){return arguments.length?(j=a,p):j},p._doRender=function(){return p.resetSvg(),f=p.svg().append("g").attr("class","heatmap").attr("transform","translate("+p.margins().left+","+p.margins().top+")"),p._doRedraw()},p._doRedraw=function(){var a=p.data(),b=p.rows()||a.map(p.valueAccessor()),d=p.cols()||a.map(p.keyAccessor());k&&(b=b.sort(k)),j&&(d=d.sort(j)),b=m.domain(b),d=l.domain(d);var e=b.domain().length,g=d.domain().length,h=Math.floor(p.effectiveWidth()/g),i=Math.floor(p.effectiveHeight()/e);d.rangeRoundBands([0,p.effectiveWidth()]),b.rangeRoundBands([p.effectiveHeight(),0]);var q=f.selectAll("g.box-group").data(p.data(),function(a,b){return p.keyAccessor()(a,b)+"\x00"+p.valueAccessor()(a,b)}),r=q.enter().append("g").attr("class","box-group");r.append("rect").attr("class","heat-box").attr("fill","white").on("click",p.boxOnClick()),p.renderTitle()&&(r.append("title"),q.selectAll("title").text(p.title())),c.transition(q.selectAll("rect"),p.transitionDuration()).attr("x",function(a,b){return d(p.keyAccessor()(a,b))}).attr("y",function(a,c){return b(p.valueAccessor()(a,c))}).attr("rx",n).attr("ry",o).attr("fill",p.getColor).attr("width",h).attr("height",i),q.exit().remove();var s=f.selectAll("g.cols");s.empty()&&(s=f.append("g").attr("class","cols axis"));var t=s.selectAll("text").data(d.domain());t.enter().append("text").attr("x",function(a){return d(a)+h/2}).style("text-anchor","middle").attr("y",p.effectiveHeight()).attr("dy",12).on("click",p.xAxisOnClick()).text(p.colsLabel()),c.transition(t,p.transitionDuration()).text(p.colsLabel()).attr("x",function(a){return d(a)+h/2}),t.exit().remove();var u=f.selectAll("g.rows");u.empty()&&(u=f.append("g").attr("class","rows axis"));var v=u.selectAll("text").data(b.domain());return v.enter().append("text").attr("dy",6).style("text-anchor","end").attr("x",0).attr("dx",-2).on("click",p.yAxisOnClick()).text(p.rowsLabel()),c.transition(v,p.transitionDuration()).text(p.rowsLabel()).attr("y",function(a){return b(a)+i/2}),v.exit().remove(),p.selectAll("g.box-group").each(p.hasFilter()?function(a){p.isSelectedNode(a)?p.highlightSelected(this):p.fadeDeselected(this)}:function(){p.resetHighlight(this)}),p},p.boxOnClick=function(a){return arguments.length?(u=a,p):u},p.xAxisOnClick=function(a){return arguments.length?(s=a,p):s},p.yAxisOnClick=function(a){return arguments.length?(t=a,p):t},p.xBorderRadius=function(a){return arguments.length?(n=a,p):n},p.yBorderRadius=function(a){return arguments.length?(o=a,p):o},p.isSelectedNode=function(a){return p.hasFilter(a.key)},p.anchor(b,d)},function(){function b(a){return[0,a.length-1]}function c(b){return[a.quantile(b,.25),a.quantile(b,.5),a.quantile(b,.75)]}a.box=function(){function d(b){b.each(function(b,c){b=b.map(i).sort(a.ascending);var d=a.select(this),m=b.length,n=b[0],o=b[m-1],p=b.quartiles=k(b),q=j&&j.call(this,b,c),r=q&&q.map(function(a){return b[a]}),s=q?a.range(0,q[0]).concat(a.range(q[1]+1,m)):a.range(m),t=a.scale.linear().domain(h&&h.call(this,b,c)||[n,o]).range([f,0]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=d.selectAll("line.center").data(r?[r]:[]);v.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",function(a){return u(a[0])}).attr("x2",e/2).attr("y2",function(a){return u(a[1])}).style("opacity",1e-6).transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.transition().duration(g).style("opacity",1).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}),v.exit().transition().duration(g).style("opacity",1e-6).attr("y1",function(a){return t(a[0])}).attr("y2",function(a){return t(a[1])}).remove();var w=d.selectAll("rect.box").data([p]);w.enter().append("rect").attr("class","box").attr("x",0).attr("y",function(a){return u(a[2])}).attr("width",e).attr("height",function(a){return u(a[0])-u(a[2])}).transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])}),w.transition().duration(g).attr("y",function(a){return t(a[2])}).attr("height",function(a){return t(a[0])-t(a[2])});var x=d.selectAll("line.median").data([p[1]]);x.enter().append("line").attr("class","median").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).transition().duration(g).attr("y1",t).attr("y2",t),x.transition().duration(g).attr("y1",t).attr("y2",t);var y=d.selectAll("line.whisker").data(r||[]);y.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",u).attr("x2",e).attr("y2",u).style("opacity",1e-6).transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1),y.exit().transition().duration(g).attr("y1",t).attr("y2",t).style("opacity",1e-6).remove();var z=d.selectAll("circle.outlier").data(s,Number);z.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",function(a){return u(b[a])}).style("opacity",1e-6).transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1),z.exit().transition().duration(g).attr("cy",function(a){return t(b[a])}).style("opacity",1e-6).remove();var A=l||t.tickFormat(8),B=d.selectAll("text.box").data(p);B.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return 1&b?6:-6}).attr("x",function(a,b){return 1&b?e:0}).attr("y",u).attr("text-anchor",function(a,b){return 1&b?"start":"end"}).text(A).transition().duration(g).attr("y",t),B.transition().duration(g).text(A).attr("y",t);var C=d.selectAll("text.whisker").data(r||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",u).text(A).style("opacity",1e-6).transition().duration(g).attr("y",t).style("opacity",1),C.transition().duration(g).text(A).attr("y",t).style("opacity",1),C.exit().transition().duration(g).attr("y",t).style("opacity",1e-6).remove()}),a.timer.flush()}var e=1,f=1,g=0,h=null,i=Number,j=b,k=c,l=null;return d.width=function(a){return arguments.length?(e=a,d):e},d.height=function(a){return arguments.length?(f=a,d):f},d.tickFormat=function(a){return arguments.length?(l=a,d):l},d.duration=function(a){return arguments.length?(g=a,d):g},d.domain=function(b){return arguments.length?(h=null===b?b:a.functor(b),d):h},d.value=function(a){return arguments.length?(i=a,d):i},d.whiskers=function(a){return arguments.length?(j=a,d):j},d.quartiles=function(a){return arguments.length?(k=a,d):k},d}}(),c.boxPlot=function(b,d){function e(a){return function(b){for(var c=b.quartiles[0],d=b.quartiles[2],e=(d-c)*a,f=-1,g=b.length;b[++f]<c-e;);for(;b[--g]>d+e;);return[f,g]}}function f(a){var b=a.enter().append("g");b.attr("class","box").attr("transform",p).call(m).on("click",function(a){i.filter(a.key),i.redrawGroup()})}function g(b){c.transition(b,i.transitionDuration()).attr("transform",p).call(m).each(function(){a.select(this).select("rect.box").attr("fill",i.getColor)})}function h(a){a.exit().remove().call(m)}var i=c.coordinateGridMixin({}),j=1.5,k=e,l=k(j),m=a.box(),n=null,o=function(a,b){return i.isOrdinal()?i.x().rangeBand():a/(1+i.boxPadding())/b};i.yAxisPadding(12),i.x(a.scale.ordinal()),i.xUnits(c.units.ordinal),i.data(function(a){return a.all().map(function(a){return a.map=function(b){return b.call(a,a)},a}).filter(function(a){var b=i.valueAccessor()(a);return 0!==b.length})}),i.boxPadding=i._rangeBandPadding,i.boxPadding(.8),i.outerPadding=i._outerRangeBandPadding,i.outerPadding(.5),i.boxWidth=function(b){return arguments.length?(o=a.functor(b),i):o};var p=function(a,b){var c=i.x()(i.keyAccessor()(a,b));return"translate("+c+", 0)"};return i._preprocessData=function(){i.elasticX()&&i.x().domain([])},i.plotData=function(){var a=o(i.effectiveWidth(),i.xUnitCount());m.whiskers(l).width(a).height(i.effectiveHeight()).value(i.valueAccessor()).domain(i.y().domain()).duration(i.transitionDuration()).tickFormat(n);var b=i.chartBodyG().selectAll("g.box").data(i.data(),function(a){return a.key});f(b),g(b),h(b),i.fadeDeselectedArea()},i.fadeDeselectedArea=function(){i.g().selectAll("g.box").each(i.hasFilter()?function(a){i.isSelectedNode(a)?i.highlightSelected(this):i.fadeDeselected(this)}:function(){i.resetHighlight(this)})},i.isSelectedNode=function(a){return i.hasFilter(a.key)},i.yAxisMin=function(){var b=a.min(i.data(),function(b){return a.min(i.valueAccessor()(b))});return c.utils.subtract(b,i.yAxisPadding())},i.yAxisMax=function(){var b=a.max(i.data(),function(b){return a.max(i.valueAccessor()(b))});return c.utils.add(b,i.yAxisPadding())},i.tickFormat=function(a){return arguments.length?(n=a,i):n},i.anchor(b,d)},function(){function b(a){return a.ranges}function c(a){return a.markers}function d(a){return a.measures}function e(a){var b=a(0);return function(c){return Math.abs(a(c)-b)}}a.bullet=function(){function f(b){b.each(function(b,c){var d,f,g=j.call(this,b,c).slice().sort(a.descending),p=k.call(this,b,c).slice().sort(a.descending),q=l.call(this,b,c).slice().sort(a.descending),r=a.select(this),s=r.select("g.wrap");s.empty()&&(s=r.append("g").attr("class","wrap")),i?(d=n,f=m,s.attr("transform","rotate(90)translate(0,"+-m+")")):(d=m,f=n,s.attr("transform","translate(0)"));var t=a.scale.linear().domain([0,Math.max(g[0],p[0],q[0])]).range(h?[d,0]:[0,d]),u=this.__chart__||a.scale.linear().domain([0,1/0]).range(t.range());this.__chart__=t;var v=e(u),w=e(t),x=s.selectAll("rect.range").data(g);x.enter().append("rect").attr("class",function(a,b){return"range s"+b}).attr("width",v).attr("height",f).attr("x",h?u:0),a.transition(x).attr("x",h?t:0).attr("width",w).attr("height",f);var y=s.selectAll("rect.measure").data(q);y.enter().append("rect").attr("class",function(a,b){return"measure s"+b}).attr("width",v).attr("height",f/3).attr("x",h?u:0).attr("y",f/3),a.transition(y).attr("width",w).attr("height",f/3).attr("x",h?t:0).attr("y",f/3);var z=s.selectAll("line.marker").data(p);z.enter().append("line").attr("class","marker").attr("x1",u).attr("x2",u).attr("y1",f/6).attr("y2",5*f/6),a.transition(z).attr("x1",t).attr("x2",t).attr("y1",f/6).attr("y2",5*f/6);var A=r.selectAll("g.axis").data([0]);A.enter().append("g").attr("class","axis"),i||A.attr("transform","translate(0,"+n+")"),A.call(o.scale(t))}),a.timer.flush()}var g="left",h=!1,i=!1,j=b,k=c,l=d,m=380,n=30,o=a.svg.axis();return f.orient=function(a){return arguments.length?(g=a+"",h="right"==g||"bottom"==g,o.orient((i="top"==g||"bottom"==g)?"left":"bottom"),f):g},f.ranges=function(a){return arguments.length?(j=a,f):j},f.markers=function(a){return arguments.length?(k=a,f):k},f.measures=function(a){return arguments.length?(l=a,f):l},f.width=function(a){return arguments.length?(m=+a,f):m},f.height=function(a){return arguments.length?(n=+a,f):n},a.rebind(f,o,"tickFormat")}}(),c.bulletChart=function(b,d){function e(){return arguments.length?"left"==j||"right"==j?[-6,i/2]:"bottom"==j||"top"==j?[h,i+20]:[-6,i/2]:k}var f=c.marginMixin(c.baseMixin({})),g={top:5,right:40,bottom:20,left:120},h=960-g.left-g.right,i=50-g.top-g.bottom,j="left",k=e(j);return f._doRender=function(){var b=a.bullet().width(h).height(i).orient(j),c=f.root().selectAll("svg").data(f.data()).enter().append("svg").attr("class","bullet").attr("width",h+g.left+g.right).attr("height",i+g.top+g.bottom).append("g").attr("transform","translate("+g.left+","+g.top+")").call(b),d=c.append("g").style("text-anchor","end").attr("transform","translate("+k[0]+","+k[1]+")");return d.append("text").attr("class","title").text(function(a){return a.title}),d.append("text").attr("class","subtitle").attr("dy","1em").text(function(a){return a.subtitle}),f},f._doRedraw=function(){return _doRender(),f},f.bulletWidth=function(a){return arguments.length?(h=+a,f):h},f.bulletHeight=function(a){return arguments.length?(i=+a,f):i},f.bulletMargin=function(a){return arguments.length?(g=a,f):g},f.orient=function(a){return arguments.length?(j=a,k=e(j),f):j},f.anchor(b,d)},c.abstractBubbleChart=c.bubbleMixin,c.baseChart=c.baseMixin,c.capped=c.capMixin,c.colorChart=c.colorMixin,c.coordinateGridChart=c.coordinateGridMixin,c.marginable=c.marginMixin,c.stackableChart=c.stackMixin,c.d3=a,c.crossfilter=b,c}if("function"==typeof define&&define.amd)define(["d3","crossfilter"],a);else if("object"==typeof module&&module.exports){var b=require("d3"),c=require("crossfilter");"function"!=typeof c&&(c=c.crossfilter),module.exports=a(b,c)}else this.dc=a(d3,crossfilter)}();
//# sourceMappingURL=dc.min.js.map
{"version":3,"file":"dc.min.js","sources":["dc.js"],"names":["_dc","d3","crossfilter","dc","version","constants","CHART_CLASS","DEBUG_GROUP_CLASS","STACK_CLASS","DESELECTED_CLASS","SELECTED_CLASS","NODE_INDEX_NAME","GROUP_INDEX_NAME","DEFAULT_CHART_GROUP","EVENT_DELAY","NEGLIGIBLE_NUMBER","_renderlet","chartRegistry","initializeChartGroup","group","_chartMap","has","chart","e","indexOf","register","push","deregister","i","length","anchorName","splice","clear","list","registerChart","deregisterChart","hasChart","deregisterAllCharts","filterAll","charts","refocusAll","focus","renderAll","render","redrawAll","redraw","disableTransitions","transition","selections","duration","callback","undefined","s","units","integers","Math","abs","ordinal","domain","fp","precision","_f","d","resolution","utils","isNegligible","floor","ceil","round","n","override","obj","functionName","newFunction","existingFunction","renderlet","_","arguments","instanceOfChart","o","Object","__dcFlag__","errors","Exception","msg","_msg","this","message","toString","InvalidStateException","apply","dateFormat","time","format","printers","filters","filter","Array","printSingleValue","pluck","f","call","Date","isFloat","fformat","isInteger","add","l","r","replace","setTime","getTime","setDate","getDate","percentage","subtract","isNumber","clamp","val","min","max","_idCounter","uniqueId","nameToId","name","toLowerCase","appendOrSelect","parent","selector","tag","element","select","empty","append","safeNumber","logger","enableDebugLog","warn","console","log","debug","deprecate","fn","deprecated","warned","events","current","trigger","closure","delay","setTimeout","RangedFilter","low","high","range","isFiltered","value","TwoDimensionalFilter","array","RangedTwoDimensionalFilter","fromBottomLeft","Infinity","x","y","baseMixin","_chart","generateSvg","_svg","root","attr","width","height","checkForMandatoryAttributes","a","applyFilters","dimension","fs","_filterHandler","_filters","_dimension","_group","_anchor","_root","_orderSort","_legend","_minWidth","_defaultWidth","getBoundingClientRect","_width","_minHeight","_defaultHeight","_height","_keyAccessor","_valueAccessor","_label","_ordering","_renderLabel","_title","keyAccessor","valueAccessor","_renderTitle","_transitionDuration","_filterPrinter","_mandatoryAttributes","_chartGroup","_listeners","dispatch","filterFunction","_data","all","w","functor","node","h","minWidth","minHeight","expireCache","data","g","_groupName","ordering","quicksort","by","_computeOrderedGroups","dataCopy","slice","selectAll","anchor","chartGroup","classed","id","chartID","svg","resetSvg","remove","filterPrinter","turnOnControls","style","text","turnOffControls","transitionDuration","preRender","forEach","result","_doRender","_activateRenderlets","event","each","preRedraw","_doRedraw","redrawGroup","renderGroup","_invokeFilteredListener","filtered","_invokeZoomedListener","zoomed","_hasFilterHandler","some","hasFilterHandler","hasFilter","_removeFilterHandler","removeFilterHandler","_addFilterHandler","addFilterHandler","_resetFilterHandler","resetFilterHandler","replaceFilter","highlightSelected","fadeDeselected","resetHighlight","onClick","filterHandler","legendables","legendHighlight","legendReset","legendToggle","isLegendableHidden","label","renderLabel","title","renderTitle","on","legend","options","opts","listener","marginMixin","_margin","top","right","bottom","left","margins","m","effectiveWidth","effectiveHeight","colorMixin","_colors","scale","category20c","_defaultAccessor","_colorAccessor","colors","quantize","ordinalColors","linearColors","linear","interpolate","interpolateHcl","colorAccessor","defaultColorAccessor","colorDomain","calculateColorDomain","newDomain","getColor","colorCalculator","coordinateGridMixin","zoomHandler","_refocused","_zoomOutRestrict","constrainRange","_xOriginalDomain","_rangeChart","domFilter","rescale","rangesEqual","prepareXAxis","isOrdinal","elasticX","_x","_ordinalXDomain","xAxisMin","xAxisMax","xdom","_lastXDomain","elem","rangeBands","xAxisLength","_rangeBandPadding","_useOuterPadding","_outerRangeBandPadding","_xAxis","renderVerticalGridLines","gridLineG","VERTICAL_CLASS","_renderVerticalGridLine","insert","GRID_LINE_CLASS","ticks","tickValues","lines","linesGEnter","enter","_xAxisY","exit","brushHeight","getClipPathId","generateClipPath","defs","_parent","chartBodyClip","padding","_clipPadding","yAxisHeight","drawChart","_brushOn","_prepareYAxis","plotData","renderXAxis","elasticY","renderYAxis","renderBrush","redrawBrush","configureMouseZoom","_mouseZoomable","_enableMouseZoom","_hasBeenMouseZoomable","_disableMouseZoom","constraint","constrainedRange","range1","range2","valueOf","hasRangeSelected","HORIZONTAL_CLASS","Y_AXIS_LABEL_CLASS","X_AXIS_LABEL_CLASS","DEFAULT_AXIS_LABEL_PADDING","category10","_g","_chartBodyG","_xAxisLabel","_y","_yAxisLabel","_round","_unitCount","_focusChart","axis","orient","_xUnits","_xAxisPadding","_xElasticity","_xAxisLabelPadding","_yAxis","_yAxisPadding","_yElasticity","_yAxisLabelPadding","_brush","brush","_renderHorizontalGridLine","_zoomScale","_zoom","behavior","zoom","_nullZoom","_useRightYAxis","rangeChart","focusChart","zoomScale","zoomOutRestrict","_generateG","mouseZoomable","z","chartBodyG","xOriginalDomain","xUnits","xAxis","xAxisPadding","xUnitCount","useRightYAxis","groups","map","axisXG","axisXLab","xAxisLabel","yAxisMin","yAxisMax","rangeRound","_renderHorizontalGridLinesForAxis","renderYAxisLabel","axisClass","rotation","labelXPosition","axisYLab","labelYPosition","renderYAxisAt","position","axisYG","axisPosition","_yAxisX","labelPosition","yAxisLabel","yAxis","renderHorizontalGridLines","yAxisPadding","_filter","extent","_brushing","gBrush","setBrushY","setHandlePaths","resizeHandlePath","extendBrush","brushIsEmpty","rangedFilter","fadeDeselectedArea","clipPadding","p","_preprocessData","scaleExtent","size","refocused","c","brushOn","stackMixin","prepareValues","layer","layerIdx","valAccessor","accessor","String","values","hidden","domainFilter","xDomain","findLayerByName","_stack","flattenStack","valueses","prototype","concat","visability","_stackLayout","layout","stack","_titles","_hidableStacks","hidableStacks","hideStack","stackName","showStack","getValueAccessorByIndex","index","y0","titleAccessor","stackLayout","layers","flat","ordered","color","capMixin","_cap","_othersLabel","_othersGrouper","topRows","topRowsSum","sum","allRows","allRowsSum","topKeys","allKeys","topSet","set","others","key","cappedKeyAccessor","cappedValueAccessor","cap","othersLabel","othersGrouper","_onClick","bubbleMixin","_maxBubbleRelativeSize","_minRadiusWithLabel","BUBBLE_NODE_CLASS","BUBBLE_CLASS","MIN_RADIUS","_r","_rValueAccessor","radiusValueAccessor","rMin","rMax","bubbleR","isNaN","labelFunction","labelOpacity","_doRenderLabel","bubbleGEnter","doUpdateLabels","labels","titleFunction","_doRenderTitles","doUpdateTitles","minRadiusWithLabel","maxBubbleRelativeSize","isSelectedNode","pieChart","_radius","pieData","arc","buildArcs","pie","pieLayout","_emptyCssClass","_emptyTitle","slices","_sliceCssClass","createElements","updateElements","removeElements","highlightFilter","slicesEnter","createSliceNodes","createSlicePath","createTitles","createLabels","slicePath","fill","safeArc","attrTween","tweenPie","positionLabels","labelsEnter","sliceHasNoData","sliceTooSmall","isSelectedSlice","classes","_externalLabelRadius","updateSlicePaths","updateLabels","updateTitles","slicePaths","outerRadius","innerRadius","_innerRadius","sort","angle","endAngle","startAngle","_minAngleForLabel","b","_current","isOffCanvas","t","path","centroid","highlightSliceFromLegendable","legendable","highlighted","_cx","_cy","DEFAULT_MIN_ANGLE_FOR_LABEL","slicesCap","cx","cy","radius","minAngleForLabel","emptyTitle","externalLabels","barChart","barHeight","renderBars","layerIndex","bars","_centerBar","_barWidth","_gap","calculateBarWidth","numberOfBars","rangeBand","barPadding","MIN_BAR_WIDTH","colorFilter","inv","item","match","DEFAULT_GAP_BETWEEN_BARS","_alwaysUseRounding","_rescale","_render","start","end","centerBar","outerPadding","gap","alwaysUseRounding","_xAxisMax","res","lineChart","drawLine","layersEnter","line","_interpolate","tension","_tension","_defined","defined","_dashStyle","safeD","drawArea","_renderArea","area","drawDots","chartBody","xyTipsOn","tooltipListClass","TOOLTIP_G_CLASS","tooltips","points","createRefLines","dots","DOT_CIRCLE_CLASS","getDotRadius","_dataPointFillOpacity","_dataPointStrokeOpacity","dot","showDot","showRefLines","hideDot","hideRefLines","yRefLine","Y_AXIS_REF_LINE_CLASS","xRefLine","X_AXIS_REF_LINE_CLASS","_dotRadius","yAxisX","yAxisRefPathD","xAxisRefPathD","_dataPointRadius","dashstyle","join","DEFAULT_DOT_RADIUS","DEFAULT_DOT_OPACITY","_xyTipsOn","layersList","dashStyle","renderArea","dotRadius","renderDataPoints","fillOpacity","strokeOpacity","_legendables","dataCount","_formatNumber","_html","html","formatNumber","tot","selected","dataTable","renderGroups","bAllFunctions","_columns","headcols","headGroup","HEAD_CSS_CLASS","_doColumnHeaderFormat","nestEntries","rowGroup","GROUP_CSS_CLASS","LABEL_CSS_CLASS","entries","_order","ascending","_size","nest","sortKeys","_sortBy","renderRows","rows","order","ROW_CSS_CLASS","rowEnter","v","COLUMN_CSS_CLASS","_doColumnValueFormat","_doColumnHeaderFnToString","_doColumnHeaderCapitalize","charAt","toUpperCase","i1","i2","lastIndexOf","substring","i3","columns","sortBy","dataGrid","GRID_CSS_CLASS","itemGroup","_htmlGroup","renderItems","items","ITEM_CSS_CLASS","JSON","stringify","htmlGroup","bubbleChart","renderNodes","bubbleG","bubbleLocator","updateNodes","removeNodes","bubbleX","bubbleY","_elasticRadius","elasticRadius","compositeChart","prepareRightYAxis","rightY","rightYAxisMin","rightYAxisMax","rightYAxis","prepareLeftYAxis","generateChildG","child","SUB_CHART_CLASS","leftYAxisChildren","_children","rightYAxisChildren","getYAxisMin","getYAxisMax","getAllXAxisMinFromChildCharts","getAllXAxisMaxFromChildCharts","_rightY","DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING","_childOptions","_shareColors","_shareTitle","_rightYAxis","_rightYAxisLabel","_rightYAxisLabelPadding","_rightAxisGridLines","__generateG","rightYAxisLabel","useRightAxisGridLines","childOptions","compose","children","shareColors","shareTitle","reduce","j","seriesChart","keySort","clearChart","_charts","resetChildren","keys","_seriesAccessor","_chartFunction","_seriesSort","_valueSort","childrenChanged","keep","nester","sortValues","nesting","sub","subChart","_compose","seriesAccessor","seriesSort","valueSort","geoChoroplethChart","generateLayeredData","isDataLayer","regionG","renderRegionG","renderPaths","groupAll","geoJson","layerSelector","isSelected","isDeselected","layerNameClass","regionClass","baseClasses","getKey","_geoJsons","paths","currentFill","_projectionFlag","_geoPath","geo","states","selectedRegion","overlayGeoJson","json","projection","geoJsons","geoPath","removeGeoJson","bubbleOverlay","initOverlayG","BUBBLE_OVERLAY_CLASS","initializeBubbles","mapData","_points","point","nodeG","getNodeG","circle","datum","bubbleNodeClass","updateBubbles","flag","debugG","debugText","mouse","rowChart","calculateAxisScale","_elasticX","_rowData","drawAxis","axisG","drawGridLines","_rowCssClass","rootValue","_fixedBarHeight","_hasLabelOffsetY","_labelOffsetY","rect","isSelectedRow","translateX","renderTitleLabel","_titleRowCssClass","lab","_labelOffsetX","_dyOffset","titlelab","_titleLabelOffsetX","x0","_renderTitleLabel","rowsCap","fixedBarHeight","labelOffsetX","labelOffsetY","titleLabelOffsetX","legendItemHeight","_itemHeight","LABEL_GAP","_horizontal","_legendWidth","_itemWidth","_autoItemWidth","itemEnter","clientHeight","_cumulativeLegendTextWidth","row","translateBy","itemWidth","getBBox","itemHeight","horizontal","legendWidth","autoItemWidth","scatterPlot","resizeSymbolsWhere","condition","symbols","oldSize","_symbol","pow","resizeFiltered","symbol","_existenceAccessor","originalKeyAccessor","_locator","_symbolSize","_highlightedSize","_hiddenSize","__filter","existenceAccessor","acc","type","symbolSize","highlightedSize","hiddenSize","ranged2DFilter","numberDisplay","SPAN_CLASS","one","none","valObj","newValue","span","ease","tween","interp","interpolateNumber","lastValue","num","innerHTML","heatMap","filterAxis","cellsOnAxis","unfilteredCellsOnAxis","_chartBody","_cols","_rows","DEFAULT_BORDER_RADIUS","_colOrdering","_rowOrdering","_colScale","_rowScale","_xBorderRadius","_yBorderRadius","_colsLabel","_rowsLabel","colsLabel","rowsLabel","_xAxisOnClick","_yAxisOnClick","_boxOnClick","rowOrdering","cols","colOrdering","rowCount","colCount","boxWidth","boxHeight","rangeRoundBands","boxes","gEnter","boxOnClick","gCols","gColsText","xAxisOnClick","gRows","gRowsText","yAxisOnClick","xBorderRadius","yBorderRadius","boxWhiskers","boxQuartiles","quantile","box","quartileData","quartiles","whiskerIndices","whiskers","whiskerData","outlierIndices","x1","__chart__","center","medianLine","whisker","outlier","Number","tickFormat","boxTick","whiskerTick","timer","flush","boxPlot","DEFAULT_WHISKERS_IQR","k","q1","q3","iqr","renderBoxes","boxesG","boxesGEnter","boxTransform","_box","updateBoxes","removeBoxes","_whiskerIqrFactor","_whiskersIqr","_whiskers","_tickFormat","_boxWidth","innerChartWidth","boxPadding","xOffset","_calculatedBoxWidth","bulletRanges","ranges","bulletMarkers","markers","bulletMeasures","measures","bulletWidth","bullet","extentX","extentY","rangez","descending","markerz","measurez","wrap","vertical","reverse","w0","w1","measure","marker","rebind","bulletChart","titleTranslate","_bulletOrient","_bulletHeight","_bulletWidth","_titleTranslate","_bulletMargin","_bullet","subtitle","bulletHeight","bulletMargin","abstractBubbleChart","baseChart","capped","colorChart","coordinateGridChart","marginable","stackableChart","define","amd","module","exports","_d3","require","_crossfilter"],"mappings":"CAkBA,WAAc,QAASA,GAAIC,EAAIC,GAC/B,YAuBA,IAAIC,IACAC,QAAS,YACTC,WACIC,YAAa,WACbC,kBAAmB,QACnBC,YAAa,QACbC,iBAAkB,aAClBC,eAAgB,WAChBC,gBAAiB,YACjBC,iBAAkB,kBAClBC,oBAAqB,0BACrBC,YAAa,GACbC,kBAAmB,OAEvBC,WAAY,KAGhBb,GAAGc,cAAgB,WAIf,QAASC,GAAqBC,GAS1B,MARKA,KACDA,EAAQhB,EAAGE,UAAUQ,qBAGpBO,EAAUD,KACXC,EAAUD,OAGPA,EAXX,GAAIC,KAcJ,QACIC,IAAK,SAAUC,GACX,IAAK,GAAIC,KAAKH,GACV,GAAIA,EAAUG,GAAGC,QAAQF,IAAU,EAC/B,OAAO,CAGf,QAAO,GAGXG,SAAU,SAAUH,EAAOH,GACvBA,EAAQD,EAAqBC,GAC7BC,EAAUD,GAAOO,KAAKJ,IAG1BK,WAAY,SAAUL,EAAOH,GACzBA,EAAQD,EAAqBC,EAC7B,KAAK,GAAIS,GAAI,EAAGA,EAAIR,EAAUD,GAAOU,OAAQD,IACzC,GAAIR,EAAUD,GAAOS,GAAGE,eAAiBR,EAAMQ,aAAc,CACzDV,EAAUD,GAAOY,OAAOH,EAAG,EAC3B,SAKZI,MAAO,SAAUb,GACTA,QACOC,GAAUD,GAEjBC,MAIRa,KAAM,SAAUd,GAEZ,MADAA,GAAQD,EAAqBC,GACtBC,EAAUD,QAO7BhB,EAAG+B,cAAgB,SAAUZ,EAAOH,GAChChB,EAAGc,cAAcQ,SAASH,EAAOH,IAGrChB,EAAGgC,gBAAkB,SAAUb,EAAOH,GAClChB,EAAGc,cAAcU,WAAWL,EAAOH,IAGvChB,EAAGiC,SAAW,SAAUd,GACpB,MAAOnB,GAAGc,cAAcI,IAAIC,IAGhCnB,EAAGkC,oBAAsB,SAAUlB,GAC/BhB,EAAGc,cAAce,MAAMb,IAY3BhB,EAAGmC,UAAY,SAAUnB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGU,aASlBnC,EAAGqC,WAAa,SAAUrB,GAEtB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EAC7BW,EAAOX,GAAGa,OACVF,EAAOX,GAAGa,SAUtBtC,EAAGuC,UAAY,SAAUvB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGe,QAGQ,QAAlBxC,EAAGa,YACHb,EAAGa,WAAWG,IAWtBhB,EAAGyC,UAAY,SAAUzB,GAErB,IAAK,GADDoB,GAASpC,EAAGc,cAAcgB,KAAKd,GAC1BS,EAAI,EAAGA,EAAIW,EAAOV,SAAUD,EACjCW,EAAOX,GAAGiB,QAGQ,QAAlB1C,EAAGa,YACHb,EAAGa,WAAWG,IAStBhB,EAAG2C,oBAAqB,EAExB3C,EAAG4C,WAAa,SAAUC,EAAYC,EAAUC,GAC5C,GAAgB,GAAZD,GAA8BE,SAAbF,GAA0B9C,EAAG2C,mBAC9C,MAAOE,EAGX,IAAII,GAAIJ,EACHD,aACAE,SAASA,EAMd,OAJyB,kBAAf,IACNC,EAASE,GAGNA,GAGXjD,EAAGkD,SAcHlD,EAAGkD,MAAMC,SAAW,SAAUF,EAAG7B,GAC7B,MAAOgC,MAAKC,IAAIjC,EAAI6B,IAgBxBjD,EAAGkD,MAAMI,QAAU,SAAUL,EAAG7B,EAAGmC,GAC/B,MAAOA,IAoBXvD,EAAGkD,MAAMM,MACTxD,EAAGkD,MAAMM,GAAGC,UAAY,SAAUA,GAC9B,GAAIC,GAAK,SAAUT,EAAG7B,GAClB,GAAIuC,GAAIP,KAAKC,KAAKjC,EAAI6B,GAAKS,EAAGE,WAC9B,OAAI5D,GAAG6D,MAAMC,aAAaH,EAAIP,KAAKW,MAAMJ,IAC9BP,KAAKW,MAAMJ,GAEXP,KAAKY,KAAKL,GAIzB,OADAD,GAAGE,WAAaH,EACTC,GAGX1D,EAAGiE,SACHjE,EAAGiE,MAAMF,MAAQ,SAAUG,GACvB,MAAOd,MAAKW,MAAMG,IAEtBlE,EAAGiE,MAAMD,KAAO,SAAUE,GACtB,MAAOd,MAAKY,KAAKE,IAErBlE,EAAGiE,MAAMA,MAAQ,SAAUC,GACvB,MAAOd,MAAKa,MAAMC,IAGtBlE,EAAGmE,SAAW,SAAUC,EAAKC,EAAcC,GACvC,GAAIC,GAAmBH,EAAIC,EAC3BD,GAAI,IAAMC,GAAgBE,EAC1BH,EAAIC,GAAgBC,GAGxBtE,EAAGwE,UAAY,SAAUC,GACrB,MAAKC,WAAUhD,QAGf1B,EAAGa,WAAa4D,EACTzE,GAHIA,EAAGa,YAMlBb,EAAG2E,gBAAkB,SAAUC,GAC3B,MAAOA,aAAaC,SAAUD,EAAEE,aAAc,GAGlD9E,EAAG+E,UAEH/E,EAAG+E,OAAOC,UAAY,SAAUC,GAC5B,GAAIC,GAAOD,GAAO,2BAElBE,MAAKC,QAAUF,EAEfC,KAAKE,SAAW,WACZ,MAAOH,KAIflF,EAAG+E,OAAOO,sBAAwB,WAC9BtF,EAAG+E,OAAOC,UAAUO,MAAMJ,KAAMT,YAGpC1E,EAAGwF,WAAa1F,EAAG2F,KAAKC,OAAO,YAE/B1F,EAAG2F,YAEH3F,EAAG2F,SAASC,QAAU,SAAUA,GAG5B,IAAK,GAFD3C,GAAI,GAECxB,EAAI,EAAGA,EAAImE,EAAQlE,SAAUD,EAC9BA,EAAI,IACJwB,GAAK,MAETA,GAAKjD,EAAG2F,SAASE,OAAOD,EAAQnE,GAGpC,OAAOwB,IAGXjD,EAAG2F,SAASE,OAAS,SAAUA,GAC3B,GAAI5C,GAAI,EAcR,OAZsB,mBAAX4C,IAAqC,OAAXA,IAC7BA,YAAkBC,OACdD,EAAOnE,QAAU,EACjBuB,EAAI,IAAMjD,EAAG6D,MAAMkC,iBAAiBF,EAAO,IAAM,OAAS7F,EAAG6D,MAAMkC,iBAAiBF,EAAO,IAAM,IAC1FA,EAAOnE,QAAU,IACxBuB,EAAIjD,EAAG6D,MAAMkC,iBAAiBF,EAAO,KAGzC5C,EAAIjD,EAAG6D,MAAMkC,iBAAiBF,IAI/B5C,GAGXjD,EAAGgG,MAAQ,SAAU9B,EAAG+B,GACpB,MAAKA,GAGE,SAAUtC,EAAGlC,GAAK,MAAOwE,GAAEC,KAAKvC,EAAGA,EAAEO,GAAIzC,IAFrC,SAAUkC,GAAK,MAAOA,GAAEO,KAKvClE,EAAG6D,SAEH7D,EAAG6D,MAAMkC,iBAAmB,SAAUF,GAClC,GAAI5C,GAAI,GAAK4C,CAYb,OAVIA,aAAkBM,MAClBlD,EAAIjD,EAAGwF,WAAWK,GACQ,gBAAb,GACb5C,EAAI4C,EACG7F,EAAG6D,MAAMuC,QAAQP,GACxB5C,EAAIjD,EAAG6D,MAAMkC,iBAAiBM,QAAQR,GAC/B7F,EAAG6D,MAAMyC,UAAUT,KAC1B5C,EAAIG,KAAKa,MAAM4B,IAGZ5C,GAEXjD,EAAG6D,MAAMkC,iBAAiBM,QAAUvG,EAAG4F,OAAO,OAI9C1F,EAAG6D,MAAM0C,IAAM,SAAUC,EAAGC,GAKxB,GAJiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAGnBF,YAAaL,MAAM,CACF,gBAANM,KACPA,GAAKA,EAET,IAAI9C,GAAI,GAAIwC,KAGZ,OAFAxC,GAAEgD,QAAQH,EAAEI,WACZjD,EAAEkD,QAAQL,EAAEM,UAAYL,GACjB9C,EACJ,GAAiB,gBAAN8C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAOD,GAAI,EAAIA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBzG,EAAG6D,MAAMmD,SAAW,SAAUR,EAAGC,GAK7B,GAJiB,gBAANA,KACPA,EAAIA,EAAEC,QAAQ,IAAK,KAGnBF,YAAaL,MAAM,CACF,gBAANM,KACPA,GAAKA,EAET,IAAI9C,GAAI,GAAIwC,KAGZ,OAFAxC,GAAEgD,QAAQH,EAAEI,WACZjD,EAAEkD,QAAQL,EAAEM,UAAYL,GACjB9C,EACJ,GAAiB,gBAAN8C,GAAgB,CAC9B,GAAIM,IAAeN,EAAI,GACvB,OAAW,GAAJD,EAAQA,GAAK,EAAIO,GAAcP,GAAK,EAAIO,GAE/C,MAAOP,GAAIC,GAInBzG,EAAG6D,MAAMoD,SAAW,SAAU/C,GAC1B,MAAOA,MAAOA,GAGlBlE,EAAG6D,MAAMuC,QAAU,SAAUlC,GACzB,MAAOA,MAAOA,GAAKA,KAAW,EAAJA,IAG9BlE,EAAG6D,MAAMyC,UAAY,SAAUpC,GAC3B,MAAOA,MAAOA,GAAKA,KAAW,EAAJA,IAG9BlE,EAAG6D,MAAMC,aAAe,SAAUI,GAC9B,OAAQlE,EAAG6D,MAAMoD,SAAS/C,IAAOA,EAAIlE,EAAGE,UAAUU,mBAAqBsD,GAAKlE,EAAGE,UAAUU,mBAG7FZ,EAAG6D,MAAMqD,MAAQ,SAAUC,EAAKC,EAAKC,GACjC,MAAaD,GAAND,EAAYC,EAAOD,EAAME,EAAMA,EAAMF,EAGhD,IAAIG,GAAa,CAg7QjB,OA/6QAtH,GAAG6D,MAAM0D,SAAW,WAChB,QAASD,GAGbtH,EAAG6D,MAAM2D,SAAW,SAAUC,GAC1B,MAAOA,GAAKC,cAAchB,QAAQ,QAAS,KAAKA,QAAQ,SAAU,KAGtE1G,EAAG6D,MAAM8D,eAAiB,SAAUC,EAAQC,EAAUC,GAClDA,EAAMA,GAAOD,CACb,IAAIE,GAAUH,EAAOI,OAAOH,EAI5B,OAHIE,GAAQE,UACRF,EAAUH,EAAOM,OAAOJ,IAErBC,GAGX/H,EAAG6D,MAAMsE,WAAa,SAAUjE,GAAK,MAAOlE,GAAG6D,MAAMoD,UAAU/C,IAAMA,EAAI,GAEzElE,EAAGoI,UAEHpI,EAAGoI,OAAOC,gBAAiB,EAE3BrI,EAAGoI,OAAOE,KAAO,SAAUrD,GASvB,MARIsD,WACIA,QAAQD,KACRC,QAAQD,KAAKrD,GACNsD,QAAQC,KACfD,QAAQC,IAAIvD,IAIbjF,EAAGoI,QAGdpI,EAAGoI,OAAOK,MAAQ,SAAUxD,GASxB,MARIjF,GAAGoI,OAAOC,gBAAkBE,UACxBA,QAAQE,MACRF,QAAQE,MAAMxD,GACPsD,QAAQC,KACfD,QAAQC,IAAIvD,IAIbjF,EAAGoI,QAGdpI,EAAGoI,OAAOM,UAAY,SAAUC,EAAI1D,GAGhC,QAAS2D,KAKL,MAJKC,KACD7I,EAAGoI,OAAOE,KAAKrD,GACf4D,GAAS,GAENF,EAAGpD,MAAMJ,KAAMT,WAN1B,GAAImE,IAAS,CAQb,OAAOD,IAGX5I,EAAG8I,QACCC,QAAS,MAqBb/I,EAAG8I,OAAOE,QAAU,SAAUC,EAASC,GACnC,MAAKA,IAKLlJ,EAAG8I,OAAOC,QAAUE,MAEpBE,YAAW,WACHF,IAAYjJ,EAAG8I,OAAOC,SACtBE,KAELC,QAVCD,MAaRjJ,EAAG4F,WAoBH5F,EAAG4F,QAAQwD,aAAe,SAAUC,EAAKC,GACrC,GAAIC,GAAQ,GAAIzD,OAAMuD,EAAKC,EAK3B,OAJAC,GAAMC,WAAa,SAAUC,GACzB,MAAOA,IAAStE,KAAK,IAAMsE,EAAQtE,KAAK,IAGrCoE,GASXvJ,EAAG4F,QAAQ8D,qBAAuB,SAAUC,GACxC,GAAc,OAAVA,EAAkB,MAAO,KAE7B,IAAI9D,GAAS8D,CAMb,OALA9D,GAAO2D,WAAa,SAAUC,GAC1B,MAAOA,GAAM/H,QAAU+H,EAAM/H,SAAWmE,EAAOnE,QACxC+H,EAAM,KAAO5D,EAAO,IAAM4D,EAAM,KAAO5D,EAAO,IAGlDA,GAgBX7F,EAAG4F,QAAQgE,2BAA6B,SAAUD,GAC9C,GAAc,OAAVA,EAAkB,MAAO,KAE7B,IACIE,GADAhE,EAAS8D,CA8Bb,OA1BIE,GADAhE,EAAO,YAAcC,SAEhB1C,KAAKgE,IAAIuC,EAAM,GAAG,GAAIA,EAAM,GAAG,IAAKvG,KAAKgE,IAAIuC,EAAM,GAAG,GAAIA,EAAM,GAAG,MACnEvG,KAAKiE,IAAIsC,EAAM,GAAG,GAAIA,EAAM,GAAG,IAAKvG,KAAKiE,IAAIsC,EAAM,GAAG,GAAIA,EAAM,GAAG,QAGrDA,EAAM,IAAKG,MAAYH,EAAM,GAAIG,MAGxDjE,EAAO2D,WAAa,SAAUC,GAC1B,GAAIM,GAAGC,CAEP,IAAIP,YAAiB3D,OAAO,CACxB,GAAqB,IAAjB2D,EAAM/H,OACN,OAAO,CAEXqI,GAAIN,EAAM,GACVO,EAAIP,EAAM,OAEVM,GAAIN,EACJO,EAAIH,EAAe,GAAG,EAG1B,OAAOE,IAAKF,EAAe,GAAG,IAAME,EAAIF,EAAe,GAAG,IACnDG,GAAKH,EAAe,GAAG,IAAMG,EAAIH,EAAe,GAAG,IAGvDhE,GASX7F,EAAGiK,UAAY,SAAUC,GAyWrB,QAASC,KAIL,MAHAC,GAAOF,EAAOG,OAAOnC,OAAO,OACvBoC,KAAK,QAASJ,EAAOK,SACrBD,KAAK,SAAUJ,EAAOM,UAuE/B,QAASC,GAA4BC,GACjC,IAAKR,EAAOQ,KAAOR,EAAOQ,KACtB,KAAM,IAAI1K,GAAG+E,OAAOO,sBAAsB,6BAA+BoF,EAC/B,yBAA2BR,EAAOvI,aAAe,KA4PnG,QAASgJ,KACL,GAAIT,EAAOU,aAAeV,EAAOU,YAAY/E,OAAQ,CACjD,GAAIgF,GAAKC,EAAeZ,EAAOU,YAAaG,EAC5CA,GAAWF,EAAKA,EAAKE,GAprB7Bb,EAAOpF,WAAa9E,EAAG6D,MAAM0D,UAE7B,IAAIyD,GACAC,EAEAC,EACAC,EACAf,EAqBAgB,EA0BAC,EA7CAC,EAAY,IACZC,EAAgB,SAAUxD,GAC1B,GAAIwC,GAAQxC,GAAWA,EAAQyD,uBAAyBzD,EAAQyD,wBAAwBjB,KACxF,OAAQA,IAASA,EAAQe,EAAaf,EAAQe,GAE9CG,EAASF,EAETG,EAAa,IACbC,EAAiB,SAAU5D,GAC3B,GAAIyC,GAASzC,GAAWA,EAAQyD,uBAAyBzD,EAAQyD,wBAAwBhB,MACzF,OAAQA,IAAUA,EAASkB,EAAclB,EAASkB,GAElDE,EAAUD,EAEVE,EAAe7L,EAAGgG,MAAM,OACxB8F,EAAiB9L,EAAGgG,MAAM,SAC1B+F,EAAS/L,EAAGgG,MAAM,OAElBgG,EAAYhM,EAAGgG,MAAM,OAGrBiG,GAAe,EAEfC,EAAS,SAAUvI,GACnB,MAAOuG,GAAOiC,cAAcxI,GAAK,KAAOuG,EAAOkC,gBAAgBzI,IAE/D0I,GAAe,EAEfC,EAAsB,IAEtBC,EAAiBvM,EAAG2F,SAASC,QAE7B4G,GAAwB,YAAa,SAErCC,EAAczM,EAAGE,UAAUQ,oBAE3BgM,EAAa5M,EAAG6M,SAChB,YACA,aACA,YACA,aACA,WACA,SACA,aAIA5B,KACAD,EAAiB,SAAUF,EAAWhF,GAkBtC,MAjBAgF,GAAU/E,OAAO,MAEM,IAAnBD,EAAQlE,OACRkJ,EAAU/E,OAAO,MAEjB+E,EAAUgC,eAAe,SAAUjJ,GAC/B,IAAK,GAAIlC,GAAI,EAAGA,EAAImE,EAAQlE,OAAQD,IAAK,CACrC,GAAIoE,GAASD,EAAQnE,EACrB,IAAIoE,EAAO2D,YAAc3D,EAAO2D,WAAW7F,GACvC,OAAO,CACJ,IAAcA,GAAVkC,GAAeA,GAAUlC,EAChC,OAAO,EAGf,OAAO,IAGRiC,GAGPiH,EAAQ,SAAU7L,GAClB,MAAOA,GAAM8L,MASjB5C,GAAOK,MAAQ,SAAUwC,GACrB,MAAKrI,WAAUhD,QAGf+J,EAAS3L,EAAGkN,QAAQD,GAAKxB,GAClBrB,GAHIuB,EAAON,EAAM8B,SA2B5B/C,EAAOM,OAAS,SAAU0C,GACtB,MAAKxI,WAAUhD,QAGfkK,EAAU9L,EAAGkN,QAAQE,GAAKvB,GACnBzB,GAHI0B,EAAQT,EAAM8B,SAY7B/C,EAAOiD,SAAW,SAAUJ,GACxB,MAAKrI,WAAUhD,QAGf4J,EAAYyB,EACL7C,GAHIoB,GAYfpB,EAAOkD,UAAY,SAAUL,GACzB,MAAKrI,WAAUhD,QAGfgK,EAAaqB,EACN7C,GAHIwB,GAefxB,EAAOU,UAAY,SAAUjH,GACzB,MAAKe,WAAUhD,QAGfsJ,EAAarH,EACbuG,EAAOmD,cACAnD,GAJIc,GAkBfd,EAAOoD,KAAO,SAAU3J,GACpB,MAAKe,WAAUhD,QAGfmL,EAAQ/M,EAAGkN,QAAQrJ,GACnBuG,EAAOmD,cACAnD,GAJI2C,EAAM3G,KAAKgE,EAAQe,IAkBlCf,EAAOlJ,MAAQ,SAAUuM,EAAG9F,GACxB,MAAK/C,WAAUhD,QAGfuJ,EAASsC,EACTrD,EAAOsD,WAAa/F,EACpByC,EAAOmD,cACAnD,GALIe,GAYff,EAAOuD,SAAW,SAAU7I,GACxB,MAAKF,WAAUhD,QAGfsK,EAAYpH,EACZwG,EAAarL,EAAY2N,UAAUC,GAAG3B,GACtC9B,EAAOmD,cACAnD,GALI8B,GAQf9B,EAAO0D,sBAAwB,SAAUN,GACrC,GAAIO,GAAWP,EAAKQ,MAAM,EAE1B,OAAID,GAASnM,QAAU,EACZmM,GAGNzC,IACDA,EAAarL,EAAY2N,UAAUC,GAAG3B,IAGnCZ,EAAWyC,EAAU,EAAGA,EAASnM,UAQ5CwI,EAAO/H,UAAY,WACf,MAAO+H,GAAOrE,OAAO,OAczBqE,EAAOlC,OAAS,SAAU/E,GACtB,MAAOkI,GAAMnD,OAAO/E,IAcxBiH,EAAO6D,UAAY,SAAU9K,GACzB,MAAOkI,GAAQA,EAAM4C,UAAU9K,GAAK,MAWxCiH,EAAO8D,OAAS,SAAUtD,EAAGuD,GACzB,MAAKvJ,WAAUhD,QAGX1B,EAAG2E,gBAAgB+F,IACnBQ,EAAUR,EAAEsD,SACZ7C,EAAQT,EAAEL,SAEVa,EAAUR,EACVS,EAAQrL,EAAGkI,OAAOkD,GAClBC,EAAM+C,QAAQlO,EAAGE,UAAUC,aAAa,GACxCH,EAAG+B,cAAcmI,EAAQ+D,IAE7BxB,EAAcwB,EACP/D,GAZIgB,GAoBfhB,EAAOvI,WAAa,WAChB,GAAI+I,GAAIR,EAAO8D,QACf,OAAItD,IAAKA,EAAEyD,GACAzD,EAAEyD,GAETzD,GAAKA,EAAEhE,QACAgE,EAAEhE,QAAQ,IAAK,IAEnB,WAAawD,EAAOkE,WAW/BlE,EAAOG,KAAO,SAAU5D,GACpB,MAAK/B,WAAUhD,QAGfyJ,EAAQ1E,EACDyD,GAHIiB,GAafjB,EAAOmE,IAAM,SAAU5J,GACnB,MAAKC,WAAUhD,QAGf0I,EAAO3F,EACAyF,GAHIE,GAUfF,EAAOoE,SAAW,WAEd,MADApE,GAAOlC,OAAO,OAAOuG,SACdpE,KAkBXD,EAAOsE,cAAgB,SAAU/J,GAC7B,MAAKC,WAAUhD,QAGf6K,EAAiB9H,EACVyF,GAHIqC,GAmBfrC,EAAOuE,eAAiB,WAKpB,MAJItD,KACAjB,EAAO6D,UAAU,UAAUW,MAAM,UAAW,MAC5CxE,EAAO6D,UAAU,WAAWY,KAAKpC,EAAerC,EAAOtE,YAAY8I,MAAM,UAAW,OAEjFxE,GAGXA,EAAO0E,gBAAkB,WAKrB,MAJIzD,KACAjB,EAAO6D,UAAU,UAAUW,MAAM,UAAW,QAC5CxE,EAAO6D,UAAU,WAAWW,MAAM,UAAW,QAAQC,KAAKzE,EAAOrE,WAE9DqE,GASXA,EAAO2E,mBAAqB,SAAUlL,GAClC,MAAKe,WAAUhD,QAGf4K,EAAsB3I,EACfuG,GAHIoC,GAMfpC,EAAOsC,qBAAuB,SAAU/H,GACpC,MAAKC,WAAUhD,QAGf8K,EAAuB/H,EAChByF,GAHIsC,GAqBftC,EAAO1H,OAAS,WACZkK,EAAWoC,UAAU5E,GAEjBsC,GACAA,EAAqBuC,QAAQtE,EAGjC,IAAIuE,GAAS9E,EAAO+E,WAQpB,OANI5D,IACAA,EAAQ7I,SAGZ0H,EAAOgF,oBAAoB,cAEpBF,GAGX9E,EAAOgF,oBAAsB,SAAUC,GAC/BjF,EAAO2E,qBAAuB,GAAKzE,EACnCA,EAAKxH,aAAaE,SAASoH,EAAO2E,sBAC7BO,KAAK,MAAO,WACT1C,EAAsB,UAAExC,GACpBiF,GACAzC,EAAWyC,GAAOjF,MAI9BwC,EAAsB,UAAExC,GACpBiF,GACAzC,EAAWyC,GAAOjF,KAe9BA,EAAOxH,OAAS,WACZgK,EAAW2C,UAAUnF,EAErB,IAAI8E,GAAS9E,EAAOoF,WAQpB,OANIjE,IACAA,EAAQ7I,SAGZ0H,EAAOgF,oBAAoB,cAEpBF,GAGX9E,EAAOqF,YAAc,WACjBvP,EAAGyC,UAAUyH,EAAO+D,eAGxB/D,EAAOsF,YAAc,WACjBxP,EAAGuC,UAAU2H,EAAO+D,eAGxB/D,EAAOuF,wBAA0B,SAAUxJ,GAC7BjD,SAANiD,GACAyG,EAAWgD,SAASxF,EAAQjE,IAIpCiE,EAAOyF,sBAAwB,WAC3BjD,EAAWkD,OAAO1F,GAGtB,IAAI2F,GAAoB,SAAUjK,EAASC,GACvC,MAAe,QAAXA,GAAsC,mBAAb,GAClBD,EAAQlE,OAAS,EAErBkE,EAAQkK,KAAK,SAAU7J,GAC1B,MAAiBA,IAAVJ,GAAeA,GAAUI,IA2BxCiE,GAAO6F,iBAAmB,SAAUtL,GAChC,MAAKC,WAAUhD,QAGfmO,EAAoBpL,EACbyF,GAHI2F,GAYf3F,EAAO8F,UAAY,SAAUnK,GACzB,MAAOgK,GAAkB9E,EAAUlF,GAGvC,IAAIoK,GAAuB,SAAUrK,EAASC,GAC1C,IAAK,GAAIpE,GAAI,EAAGA,EAAImE,EAAQlE,OAAQD,IAChC,GAAImE,EAAQnE,IAAMoE,GAAUD,EAAQnE,IAAMoE,EAAQ,CAC9CD,EAAQhE,OAAOH,EAAG,EAClB,OAGR,MAAOmE,GA8BXsE,GAAOgG,oBAAsB,SAAUzL,GACnC,MAAKC,WAAUhD,QAGfuO,EAAuBxL,EAChByF,GAHI+F,EAMf,IAAIE,GAAoB,SAAUvK,EAASC,GAEvC,MADAD,GAAQrE,KAAKsE,GACND,EAyBXsE,GAAOkG,iBAAmB,SAAU3L,GAChC,MAAKC,WAAUhD,QAGfyO,EAAoB1L,EACbyF,GAHIiG,EAMf,IAAIE,GAAsB,WACtB,SA4bJ,OApaAnG,GAAOoG,mBAAqB,SAAU7L,GAClC,MAAKC,WAAUhD,QAGf2O,EAAsB5L,EACfyF,GAHImG,GAafnG,EAAOqG,cAAgB,SAAU9L,GAC7BsG,KACAb,EAAOrE,OAAOpB,IAalByF,EAAOrE,OAAS,SAAUpB,GACtB,MAAKC,WAAUhD,QAGX+C,YAAaqB,QAASrB,EAAE,YAAcqB,SAAUrB,EAAE+E,WAClD/E,EAAE,GAAGsK,QAAQ,SAAUpL,GACfuG,EAAO8F,UAAUrM,GACjBsM,EAAqBlF,EAAUpH,GAE/BwM,EAAkBpF,EAAUpH,KAGvB,OAANc,EACPsG,EAAWsF,EAAoBtF,GAE3Bb,EAAO8F,UAAUvL,GACjBwL,EAAqBlF,EAAUtG,GAE/B0L,EAAkBpF,EAAUtG,GAGpCkG,IACAT,EAAOuF,wBAAwBhL,GAEjB,OAAV0G,GAAkBjB,EAAO8F,YACzB9F,EAAOuE,iBAEPvE,EAAO0E,kBAGJ1E,GA5BIa,EAASrJ,OAAS,EAAIqJ,EAAS,GAAK,MAsCnDb,EAAOtE,QAAU,WACb,MAAOmF,IAGXb,EAAOsG,kBAAoB,SAAUpP,GACjCtB,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUI,kBAAkB,IAGxD4J,EAAOuG,eAAiB,SAAUrP,GAC9BtB,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUI,kBAAkB,IAGxD4J,EAAOwG,eAAiB,SAAUtP,GAC9BtB,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUK,gBAAgB,GAClDT,EAAGkI,OAAO5G,GAAG8M,QAAQlO,EAAGE,UAAUI,kBAAkB,IAQxD4J,EAAOyG,QAAU,SAAUhN,GACvB,GAAIkC,GAASqE,EAAOiC,cAAcxI,EAClC3D,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOqF,iBA0BfrF,EAAO0G,cAAgB,SAAUnM,GAC7B,MAAKC,WAAUhD,QAGfoJ,EAAiBrG,EACVyF,GAHIY,GAOfZ,EAAO+E,UAAY,WAEf,MAAO/E,IAGXA,EAAOoF,UAAY,WAEf,MAAOpF,IAGXA,EAAO2G,YAAc,WAEjB,UAGJ3G,EAAO4G,gBAAkB,aAIzB5G,EAAO6G,YAAc,aAIrB7G,EAAO8G,aAAe,aAItB9G,EAAO+G,mBAAqB,WAExB,OAAO,GAgBX/G,EAAOiC,YAAc,SAAU1H,GAC3B,MAAKC,WAAUhD,QAGfmK,EAAepH,EACRyF,GAHI2B,GAoBf3B,EAAOkC,cAAgB,SAAU3H,GAC7B,MAAKC,WAAUhD,QAGfoK,EAAiBrH,EACVyF,GAHI4B,GAoBf5B,EAAOgH,MAAQ,SAAUzM,GACrB,MAAKC,WAAUhD,QAGfqK,EAAStH,EACTwH,GAAe,EACR/B,GAJI6B,GAYf7B,EAAOiH,YAAc,SAAU1M,GAC3B,MAAKC,WAAUhD,QAGfuK,EAAexH,EACRyF,GAHI+B,GA2Bf/B,EAAOkH,MAAQ,SAAU3M,GACrB,MAAKC,WAAUhD,QAGfwK,EAASzH,EACFyF,GAHIgC,GAYfhC,EAAOmH,YAAc,SAAU5M,GAC3B,MAAKC,WAAUhD,QAGf2K,EAAe5H,EACRyF,GAHImC,GA2BfnC,EAAO1F,UAAYxE,EAAGoI,OAAOM,UAAU,SAAUjE,GAE7C,MADAyF,GAAOoH,GAAG,aAAetR,EAAG6D,MAAM0D,WAAY9C,GACvCyF,GACR,4GAOHA,EAAO+D,WAAa,SAAUxJ,GAC1B,MAAKC,WAAUhD,QAGf+K,EAAchI,EACPyF,GAHIuC,GAefvC,EAAOmD,YAAc,WAEjB,MAAOnD,IAaXA,EAAOqH,OAAS,SAAU/K,GACtB,MAAK9B,WAAUhD,QAGf2J,EAAU7E,EACV6E,EAAQzD,OAAOsC,GACRA,GAJImB,GAWfnB,EAAOkE,QAAU,WACb,MAAOlE,GAAOpF,YAalBoF,EAAOsH,QAAU,SAAUC,GACvB,IAAK,GAAI7M,KAAK6M,GACgB,kBAAfvH,GAAOtF,GACdsF,EAAOtF,GAAGsB,KAAKgE,EAAQuH,EAAK7M,IAE5B5E,EAAGoI,OAAOK,MAAM,mCAAqC7D,EAG7D,OAAOsF,IA8BXA,EAAOoH,GAAK,SAAUnC,EAAOuC,GAEzB,MADAhF,GAAW4E,GAAGnC,EAAOuC,GACdxH,GAGJA,GASXlK,EAAG2R,YAAc,SAAUzH,GACvB,GAAI0H,IAAWC,IAAK,GAAIC,MAAO,GAAIC,OAAQ,GAAIC,KAAM,GA+BrD,OAhBA9H,GAAO+H,QAAU,SAAUC,GACvB,MAAKxN,WAAUhD,QAGfkQ,EAAUM,EACHhI,GAHI0H,GAMf1H,EAAOiI,eAAiB,WACpB,MAAOjI,GAAOK,QAAUL,EAAO+H,UAAUD,KAAO9H,EAAO+H,UAAUH,OAGrE5H,EAAOkI,gBAAkB,WACrB,MAAOlI,GAAOM,SAAWN,EAAO+H,UAAUJ,IAAM3H,EAAO+H,UAAUF,QAG9D7H,GAUXlK,EAAGqS,WAAa,SAAUnI,GACtB,GAAIoI,GAAUxS,EAAGyS,MAAMC,cACnBC,GAAmB,EAEnBC,EAAiB,SAAU/O,GAAK,MAAOuG,GAAOiC,cAAcxI,GAiIhE,OA7GAuG,GAAOyI,OAAS,SAAUlO,GACtB,MAAKC,WAAUhD,QAIX4Q,EADA7N,YAAaqB,OACHhG,EAAGyS,MAAMK,WAAWrJ,MAAM9E,GAE1B3E,EAAGkN,QAAQvI,GAElByF,GAPIoI,GAefpI,EAAO2I,cAAgB,SAAUpM,GAC7B,MAAOyD,GAAOyI,OAAO7S,EAAGyS,MAAMjP,UAAUiG,MAAM9C,KAQlDyD,EAAO4I,aAAe,SAAUrM,GAC5B,MAAOyD,GAAOyI,OAAO7S,EAAGyS,MAAMQ,SACRxJ,MAAM9C,GACNuM,YAAYlT,EAAGmT,kBAezC/I,EAAOgJ,cAAgB,SAAUzO,GAC7B,MAAKC,WAAUhD,QAGfgR,EAAiBjO,EACjBgO,GAAmB,EACZvI,GAJIwI,GAQfxI,EAAOiJ,qBAAuB,WAC1B,MAAOV,IAYXvI,EAAOkJ,YAAc,SAAU3O,GAC3B,MAAKC,WAAUhD,QAGf4Q,EAAQ/O,OAAOkB,GACRyF,GAHIoI,EAAQ/O,UAYvB2G,EAAOmJ,qBAAuB,WAC1B,GAAIC,IAAaxT,EAAGsH,IAAI8C,EAAOoD,OAAQpD,EAAOgJ,iBAC7BpT,EAAGuH,IAAI6C,EAAOoD,OAAQpD,EAAOgJ,iBAE9C,OADAZ,GAAQ/O,OAAO+P,GACRpJ,GAQXA,EAAOqJ,SAAW,SAAU5P,EAAGlC,GAC3B,MAAO6Q,GAAQI,EAAexM,KAAKf,KAAMxB,EAAGlC,KAOhDyI,EAAOsJ,gBAAkB,SAAU/O,GAC/B,MAAKC,WAAUhD,QAGfwI,EAAOqJ,SAAW9O,EACXyF,GAHIA,EAAOqJ,UAMfrJ,GAWXlK,EAAGyT,oBAAsB,SAAUvJ,GAa/B,QAASwJ,KACLC,GAAa,EACTC,IACA1J,EAAOH,IAAIxG,OAAOsQ,EAAe3J,EAAOH,IAAIxG,SAAUuQ,IAClDC,GACA7J,EAAOH,IAAIxG,OAAOsQ,EAAe3J,EAAOH,IAAIxG,SAAUwQ,EAAYhK,IAAIxG,WAI9E,IAAIA,GAAS2G,EAAOH,IAAIxG,SACpByQ,EAAYhU,EAAG4F,QAAQwD,aAAa7F,EAAO,GAAIA,EAAO,GAE1D2G,GAAOqG,cAAcyD,GACrB9J,EAAO+J,UACP/J,EAAOxH,SAEHqR,IAAgBG,EAAYhK,EAAOrE,SAAUkO,EAAYlO,WACzD7F,EAAG8I,OAAOE,QAAQ,WACd+K,EAAYxD,cAAcyD,GAC1BD,EAAYrR,WAIpBwH,EAAOyF,wBAEP3P,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOqF,eACRvP,EAAGE,UAAUS,aAEhBgT,GAAcO,EAAY3Q,EAAQuQ,GA2UtC,QAASK,GAAa5G,GACbrD,EAAOkK,aAMJlK,EAAOmK,YAAqC,IAAvBC,EAAG/Q,SAAS7B,SACjC4S,EAAG/Q,OAAO2G,EAAOqK,mBANjBrK,EAAOmK,YACPC,EAAG/Q,QAAQ2G,EAAOsK,WAAYtK,EAAOuK,YAU7C,IAAIC,GAAOJ,EAAG/Q,WACToR,GAAgBD,EAAK5E,KAAK,SAAU8E,EAAMnT,GAAK,MAAOmT,KAASD,EAAalT,OAC7EyI,EAAO+J,UAEXU,EAAeD,EAGXxK,EAAOkK,YACPE,EAAGO,YAAY,EAAG3K,EAAO4K,eAAgBC,GAC3B7K,EAAO8K,mBAAqBC,GAAyB,GAEnEX,EAAG/K,OAAO,EAAGW,EAAO4K,gBAGxBI,EAASA,EAAO3C,MAAMrI,EAAOH,KAE7BoL,EAAwB5H,GA6B5B,QAAS4H,GAAwB5H,GAC7B,GAAI6H,GAAY7H,EAAEQ,UAAU,KAAOsH,EAEnC,IAAIC,EAAyB,CACrBF,EAAUnN,UACVmN,EAAY7H,EAAEgI,OAAO,IAAK,gBACrBjL,KAAK,QAASkL,EAAkB,IAAMH,GACtC/K,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO+H,UAAUJ,IAAM,KAG/F,IAAI4D,GAAQP,EAAOQ,aAAeR,EAAOQ,aACZ,kBAAbpB,GAAGmB,MAAuBnB,EAAGmB,MAAMP,EAAOO,QAAQ,IAAMnB,EAAG/Q,SAEvEoS,EAAQP,EAAUrH,UAAU,QAC3BT,KAAKmI,GAGNG,EAAcD,EAAME,QACnB3N,OAAO,QACPoC,KAAK,KAAM,SAAU3G,GAClB,MAAO2Q,GAAG3Q,KAEb2G,KAAK,KAAMJ,EAAO4L,UAAY5L,EAAO+H,UAAUJ,KAC/CvH,KAAK,KAAM,SAAU3G,GAClB,MAAO2Q,GAAG3Q,KAEb2G,KAAK,KAAM,GACXA,KAAK,UAAW,EACrBtK,GAAG4C,WAAWgT,EAAa1L,EAAO2E,sBAC7BvE,KAAK,UAAW,GAGrBtK,EAAG4C,WAAW+S,EAAOzL,EAAO2E,sBACvBvE,KAAK,KAAM,SAAU3G,GAClB,MAAO2Q,GAAG3Q,KAEb2G,KAAK,KAAMJ,EAAO4L,UAAY5L,EAAO+H,UAAUJ,KAC/CvH,KAAK,KAAM,SAAU3G,GAClB,MAAO2Q,GAAG3Q,KAEb2G,KAAK,KAAM,GAGhBqL,EAAMI,OAAOxH,aAGb6G,GAAUrH,UAAU,QAAQQ,SAiWpC,QAASyH,KACL,MAAO9L,GAAO4L,UAAY5L,EAAO+H,UAAUJ,IAkG/C,QAASoE,KACL,MAAO/L,GAAOvI,aAAa+E,QAAQ,SAAU,KAAO,QAkBxD,QAASwP,KACL,GAAIC,GAAOnW,EAAG6D,MAAM8D,eAAeyO,EAAS,QAGxCjI,EAAK8H,IACLI,EAAgBrW,EAAG6D,MAAM8D,eAAewO,EAAM,IAAMhI,EAAI,YAAY7D,KAAK,KAAM6D,GAE/EmI,EAAyB,EAAfC,CAEdvW,GAAG6D,MAAM8D,eAAe0O,EAAe,QAClC/L,KAAK,QAASJ,EAAO4K,cAAgBwB,GACrChM,KAAK,SAAUJ,EAAOsM,cAAgBF,GACtChM,KAAK,YAAa,cAAgBiM,EAAe,MAAQA,EAAe,KA6BjF,QAASE,GAAWjU,GACZ0H,EAAOkK,cACPsC,GAAW,GAGfvC,EAAajK,EAAOqD,KACpBrD,EAAOyM,cAAczM,EAAOqD,KAE5BrD,EAAO0M,YAEH1M,EAAOmK,YAAcV,GAAcnR,IACnC0H,EAAO2M,YAAY3M,EAAOqD,MAG1BrD,EAAO4M,YAActU,IACrB0H,EAAO6M,YAAY7M,EAAOqD,KAG1B/K,EACA0H,EAAO8M,YAAY9M,EAAOqD,KAE1BrD,EAAO+M,YAAY/M,EAAOqD,KAIlC,QAAS2J,KACDC,EACAjN,EAAOkN,mBAEFC,GACLnN,EAAOoN,oBAiBf,QAASzD,GAAetK,EAAOgO,GAC3B,GAAIC,KAGJ,OAFAA,GAAiB,GAAK1X,EAAGuH,KAAKkC,EAAM,GAAIgO,EAAW,KACnDC,EAAiB,GAAK1X,EAAGsH,KAAKmC,EAAM,GAAIgO,EAAW,KAC5CC,EAsDX,QAAStD,GAAYuD,EAAQC,GACzB,MAAKD,IAAWC,EAGND,GAAWC,EAGM,IAAlBD,EAAO/V,QAAkC,IAAlBgW,EAAOhW,QAC5B,EAEF+V,EAAO,GAAGE,YAAcD,EAAO,GAAGC,WACvCF,EAAO,GAAGE,YAAcD,EAAO,GAAGC,WAC3B,GAEJ,GATI,GAHA,EAiCf,QAASC,GAAiBrO,GACtB,MAAOA,aAAiBzD,QAASyD,EAAM7H,OAAS,EAzmCpD,GAAI8T,GAAkB,YAClBqC,EAAmB,aACnBxC,EAAiB,WACjByC,EAAqB,eACrBC,EAAqB,eACrBC,EAA6B,EAEjC9N,GAASlK,EAAGqS,WAAWrS,EAAG2R,YAAY3R,EAAGiK,UAAUC,KAEnDA,EAAOyI,OAAO7S,EAAGyS,MAAM0F,cACvB/N,EAAOsC,uBAAuBjL,KAAK,IAkCnC,IAAI6U,GACA8B,EACAC,EAEA7D,EACAR,EAKAsE,EAEAzD,EAEA0D,EAIAC,EAKAC,EAMAC,EASAzE,EACA0E,EAjCAvD,EAASpV,EAAGuO,IAAIqK,OAAOC,OAAO,UAC9BC,EAAU5Y,EAAGkD,MAAMC,SACnB0V,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAIrBC,EAASlZ,EAAGuO,IAAIqK,OAAOC,OAAO,QAC9BM,EAAgB,EAChBC,GAAe,EAEfC,EAAqB,EAErBC,EAAStZ,EAAGuO,IAAIgL,QAChB3C,GAAW,EAGX4C,GAA4B,EAC5BhE,GAA0B,EAE1B3B,GAAa,EAGb4F,GAAc,EAAGzP,KACjB8J,GAAmB,EAEnB4F,EAAQ1Z,EAAG2Z,SAASC,OAAOpI,GAAG,OAAQoC,GACtCiG,EAAY7Z,EAAG2Z,SAASC,OAAOpI,GAAG,OAAQ,MAC1C+F,GAAwB,EAKxBF,GAAiB,EACjBZ,EAAe,EAEftB,GAAyB,GACzBF,GAAoB,EAEpB6E,IAAiB,CAihCrB,OA/gCA1P,GAAO+J,QAAU,WACbuE,EAAaxV,QAYjBkH,EAAO2P,WAAa,SAAUpV,GAC1B,MAAKC,WAAUhD,QAGfqS,EAActP,EACdsP,EAAY+F,WAAW5P,GAChBA,GAJI6J,GAYf7J,EAAO6P,UAAY,SAAUtV,GACzB,MAAKC,WAAUhD,QAGf6X,EAAa9U,EACNyF,GAHIqP,GAUfrP,EAAO8P,gBAAkB,SAAUvT,GAC/B,MAAK/B,WAAUhD,QAGf6X,EAAW,GAAK9S,EAAI,EAAI,EACxBmN,EAAmBnN,EACZyD,GAJI0J,GAOf1J,EAAO+P,WAAa,SAAUrS,GAa1B,MAXIwO,GADWpT,SAAX4E,EACUsC,EAAOmE,MAEPzG,EAGdsQ,EAAK9B,EAAQlO,OAAO,KAEpBiQ,EAAcD,EAAGhQ,OAAO,KAAKoC,KAAK,QAAS,cACtCA,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,KAAO9H,EAAO+H,UAAUJ,IAAM,KACvFvH,KAAK,YAAa,QAAU2L,IAAkB,KAE5CiC,GAUXhO,EAAOqD,EAAI,SAAU9I,GACjB,MAAKC,WAAUhD,QAGfwW,EAAKzT,EACEyF,GAHIgO,GAafhO,EAAOgQ,cAAgB,SAAUC,GAC7B,MAAKzV,WAAUhD,QAGfyV,EAAiBgD,EACVjQ,GAHIiN,GAUfjN,EAAOkQ,WAAa,SAAU3V,GAC1B,MAAKC,WAAUhD,QAGfyW,EAAc1T,EACPyF,GAHIiO,GAmBfjO,EAAOH,EAAI,SAAUtF,GACjB,MAAKC,WAAUhD,QAGf4S,EAAK7P,EACLqP,EAAmBQ,EAAG/Q,SACf2G,GAJIoK,GAOfpK,EAAOmQ,gBAAkB,WACrB,MAAOvG,IAmCX5J,EAAOoQ,OAAS,SAAU7V,GACtB,MAAKC,WAAUhD,QAGfkX,EAAUnU,EACHyF,GAHI0O,GAqBf1O,EAAOqQ,MAAQ,SAAU9V,GACrB,MAAKC,WAAUhD,QAGfwT,EAASzQ,EACFyF,GAHIgL,GAYfhL,EAAOmK,SAAW,SAAU5P,GACxB,MAAKC,WAAUhD,QAGfoX,EAAerU,EACRyF,GAHI4O,GAgBf5O,EAAOsQ,aAAe,SAAU/V,GAC5B,MAAKC,WAAUhD,QAGfmX,EAAgBpU,EACTyF,GAHI2O,GAWf3O,EAAOuQ,WAAa,WAChB,GAAmBzX,SAAfwV,EAA0B,CAC1B,GAAItV,GAAQgH,EAAOoQ,SAASpQ,EAAOH,IAAIxG,SAAS,GAAI2G,EAAOH,IAAIxG,SAAS,GAAI2G,EAAOH,IAAIxG,SAGnFiV,GADAtV,YAAiB4C,OACJ5C,EAAMxB,OAENwB,EAIrB,MAAOsV,IASXtO,EAAOwQ,cAAgB,SAAUjW,GAC7B,MAAKC,WAAUhD,QAGfkY,GAAiBnV,EACVyF,GAHI0P,IAYf1P,EAAOkK,UAAY,WACf,MAAOlK,GAAOoQ,WAAata,EAAGkD,MAAMI,SAGxC4G,EAAO8K,iBAAmB,WACtB,OAAO,GAGX9K,EAAOqK,gBAAkB,WACrB,GAAIoG,GAASzQ,EAAO0D,sBAAsB1D,EAAOoD,OACjD,OAAOqN,GAAOC,IAAI1Q,EAAOiC,gBAmC7BjC,EAAO2M,YAAc,SAAUtJ,GAC3B,GAAIsN,GAAStN,EAAEQ,UAAU,MAErB8M,GAAO5S,UACP4S,EAAStN,EAAErF,OAAO,KACboC,KAAK,QAAS,UACdA,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO4L,UAAY,KAG3F,IAAIgF,GAAWvN,EAAEQ,UAAU,QAAUgK,EACjC+C,GAAS7S,SAAWiC,EAAO6Q,eAC3BD,EAAWvN,EAAErF,OAAO,QACfoC,KAAK,YAAa,cAAgBJ,EAAO+H,UAAUD,KAAO9H,EAAO4K,cAAgB,GAAK,KAClF5K,EAAOM,SAAWuO,GAAsB,KAC5CzO,KAAK,QAASyN,GACdzN,KAAK,cAAe,UACpBqE,KAAKzE,EAAO6Q,eAEjB7Q,EAAO6Q,cAAgBD,EAASnM,SAAWzE,EAAO6Q,cAClDD,EAASnM,KAAKzE,EAAO6Q,cAGzB/a,EAAG4C,WAAWiY,EAAQ3Q,EAAO2E,sBACxB3I,KAAKgP,IAqDdhL,EAAO4L,QAAU,WACb,MAAQ5L,GAAOM,SAAWN,EAAO+H,UAAUF,QAG/C7H,EAAO4K,YAAc,WACjB,MAAO5K,GAAOiI,kBAQlBjI,EAAO6Q,WAAa,SAAUtW,EAAG6R,GAC7B,MAAK5R,WAAUhD,QAGf0W,EAAc3T,EACdyF,EAAO+H,UAAUF,QAAUgH,EAC3BA,EAAkC/V,SAAZsT,EAAyB0B,EAA6B1B,EAC5EpM,EAAO+H,UAAUF,QAAUgH,EACpB7O,GANIkO,GASflO,EAAOyM,cAAgB,SAAUpJ,GAC7B,GAAWvK,SAAPqV,GAAoBnO,EAAO4M,WAAY,CACvCuB,EAAKvY,EAAGyS,MAAMQ,QACd,IAAI3L,GAAM8C,EAAO8Q,YAAc,EAC3B3T,EAAM6C,EAAO+Q,YAAc,CAC/B5C,GAAG9U,QAAQ6D,EAAKC,IAAM6T,YAAYhR,EAAOsM,cAAe,IAG5D6B,EAAG9O,OAAOW,EAAOsM,cAAe,IAChCwC,EAASA,EAAOzG,MAAM8F,GAElBuB,IACAZ,EAAOL,OAAO,SAGlBzO,EAAOiR,kCAAkC5N,EAAG8K,EAAIW,IAGpD9O,EAAOkR,iBAAmB,SAAUC,EAAW1M,EAAM2M,EAAUC,GAC3DA,EAAiBA,GAAkBpC,CAEnC,IAAIqC,GAAWtR,EAAOqD,IAAIQ,UAAU,QAAU+J,EAAqB,IAAMuD,EAAY,SACrF,IAAIG,EAASvT,SAAW0G,EAAM,CAE1B,GAAI8M,GAAkBvR,EAAO+H,UAAUJ,IAAM3H,EAAOsM,cAAgB,CACpEgF,GAAWtR,EAAOqD,IAAIrF,OAAO,QACxBoC,KAAK,YAAa,aAAeiR,EAAiB,IAAME,EAAiB,YAAcH,EAAW,KAClGhR,KAAK,QAASwN,EAAqB,IAAMuD,EAAY,UACrD/Q,KAAK,cAAe,UACpBqE,KAAKA,GAEVA,GAAQ6M,EAAS7M,SAAWA,GAC5B6M,EAAS7M,KAAKA,IAItBzE,EAAOwR,cAAgB,SAAUL,EAAW3C,EAAMiD,GAC9C,GAAIC,GAAS1R,EAAOqD,IAAIQ,UAAU,KAAOsN,EACrCO,GAAO3T,UACP2T,EAAS1R,EAAOqD,IAAIrF,OAAO,KACtBoC,KAAK,QAAS,QAAU+Q,GACxB/Q,KAAK,YAAa,aAAeqR,EAAW,IAAMzR,EAAO+H,UAAUJ,IAAM,MAGlF7R,EAAG4C,WAAWgZ,EAAQ1R,EAAO2E,sBAAsB3I,KAAKwS,IAG5DxO,EAAO6M,YAAc,WACjB,GAAI8E,GAAejC,GAAkB1P,EAAOK,QAAUL,EAAO+H,UAAUH,MAAS5H,EAAO4R,SACvF5R,GAAOwR,cAAc,IAAK1C,EAAQ6C,EAClC,IAAIE,GAAgBnC,GAAkB1P,EAAOK,QAAU4O,EAAsBA,EACzEmC,EAAW1B,GAAiB,GAAK,GACrC1P,GAAOkR,iBAAiB,IAAKlR,EAAO8R,aAAcV,EAAUS,IAGhE7R,EAAOiR,kCAAoC,SAAU5N,EAAGgF,EAAOmG,GAC3D,GAAItD,GAAY7H,EAAEQ,UAAU,KAAO8J,EAEnC,IAAIyB,EAA2B,CAC3B,GAAI7D,GAAQiD,EAAKhD,aAAegD,EAAKhD,aAAenD,EAAMkD,MAAMiD,EAAKjD,QAAQ,GAEzEL,GAAUnN,UACVmN,EAAY7H,EAAEgI,OAAO,IAAK,gBACrBjL,KAAK,QAASkL,EAAkB,IAAMqC,GACtCvN,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO+H,UAAUJ,IAAM,KAG/F,IAAI8D,GAAQP,EAAUrH,UAAU,QAC3BT,KAAKmI,GAGNG,EAAcD,EAAME,QACnB3N,OAAO,QACPoC,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU3G,GAClB,MAAO4O,GAAM5O,KAEhB2G,KAAK,KAAMJ,EAAO4K,eAClBxK,KAAK,KAAM,SAAU3G,GAClB,MAAO4O,GAAM5O,KAEhB2G,KAAK,UAAW,EACrBtK,GAAG4C,WAAWgT,EAAa1L,EAAO2E,sBAC7BvE,KAAK,UAAW,GAGrBtK,EAAG4C,WAAW+S,EAAOzL,EAAO2E,sBACvBvE,KAAK,KAAM,GACXA,KAAK,KAAM,SAAU3G,GAClB,MAAO4O,GAAM5O,KAEhB2G,KAAK,KAAMJ,EAAO4K,eAClBxK,KAAK,KAAM,SAAU3G,GAClB,MAAO4O,GAAM5O,KAIrBgS,EAAMI,OAAOxH,aAGb6G,GAAUrH,UAAU,QAAQQ,UAIpCrE,EAAO4R,QAAU,WACb,MAAO5R,GAAOwQ,gBAAkBxQ,EAAOK,QAAUL,EAAO+H,UAAUH,MAAQ5H,EAAO+H,UAAUD,MAS/F9H,EAAO8R,WAAa,SAAUvX,EAAG6R,GAC7B,MAAK5R,WAAUhD,QAGf4W,EAAc7T,EACdyF,EAAO+H,UAAUD,MAAQmH,EACzBA,EAAkCnW,SAAZsT,EAAyB0B,EAA6B1B,EAC5EpM,EAAO+H,UAAUD,MAAQmH,EAClBjP,GANIoO,GAcfpO,EAAOF,EAAI,SAAUvF,GACjB,MAAKC,WAAUhD,QAGf2W,EAAK5T,EACEyF,GAHImO,GAqBfnO,EAAO+R,MAAQ,SAAUjS,GACrB,MAAKtF,WAAUhD,QAGfsX,EAAShP,EACFE,GAHI8O,GAYf9O,EAAO4M,SAAW,SAAUrS,GACxB,MAAKC,WAAUhD,QAGfwX,EAAezU,EACRyF,GAHIgP,GAWfhP,EAAOgS,0BAA4B,SAAUzX,GACzC,MAAKC,WAAUhD,QAGf4X,EAA4B7U,EACrByF,GAHIoP,GAWfpP,EAAOiL,wBAA0B,SAAU1Q,GACvC,MAAKC,WAAUhD,QAGf4T,EAA0B7Q,EACnByF,GAHIoL,GAUfpL,EAAOsK,SAAW,WACd,GAAIpN,GAAMtH,EAAGsH,IAAI8C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOiC,cAAc/K,IAEhC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAKyR,IAOlC3O,EAAOuK,SAAW,WACd,GAAIpN,GAAMvH,EAAGuH,IAAI6C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOiC,cAAc/K,IAEhC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAKwR,IAO7B3O,EAAO8Q,SAAW,WACd,GAAI5T,GAAMtH,EAAGsH,IAAI8C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOkC,gBAAgBhL,IAElC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAK6R,IAOlC/O,EAAO+Q,SAAW,WACd,GAAI5T,GAAMvH,EAAGuH,IAAI6C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOkC,gBAAgBhL,IAElC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAK4R,IAa7B/O,EAAOiS,aAAe,SAAU1X,GAC5B,MAAKC,WAAUhD,QAGfuX,EAAgBxU,EACTyF,GAHI+O,GAMf/O,EAAOsM,YAAc,WACjB,MAAOtM,GAAOkI,mBAalBlI,EAAOjG,MAAQ,SAAUQ,GACrB,MAAKC,WAAUhD,QAGf6W,EAAS9T,EACFyF,GAHIqO,GAMfrO,EAAO6K,kBAAoB,SAAUtQ,GACjC,MAAKC,WAAUhD,QAGfqT,GAAoBtQ,EACbyF,GAHI6K,IAMf7K,EAAO+K,uBAAyB,SAAUxQ,GACtC,MAAKC,WAAUhD,QAGfuT,GAAyBxQ,EAClByF,GAHI+K,IAMfjV,EAAGmE,SAAS+F,EAAQ,SAAU,SAAUzF,GACpC,MAAKC,WAAUhD,QAIfwI,EAAOkS,QAAQ3X,GAEXA,EACAyF,EAAOmP,QAAQgD,OAAO5X,GAEtByF,EAAOmP,QAAQxX,QAGZqI,GAXIA,EAAOkS,YActBlS,EAAOmP,MAAQ,SAAU5U,GACrB,MAAKC,WAAUhD,QAGf0X,EAAS3U,EACFyF,GAHIkP,GAUflP,EAAO8M,YAAc,SAAUzJ,GAC3B,GAAImJ,EAAU,CACV0C,EAAO9H,GAAG,QAASpH,EAAOoS,WAC1BlD,EAAO9H,GAAG,aAAcpH,EAAOoN,mBAC/B8B,EAAO9H,GAAG,WAAY4F,EAEtB,IAAIqF,GAAShP,EAAErF,OAAO,KACjBoC,KAAK,QAAS,SACdA,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO+H,UAAUJ,IAAM,KACtF3L,KAAKkT,EAAOrP,EAAEG,EAAOH,KAC1BG,GAAOsS,UAAUD,GACjBrS,EAAOuS,eAAeF,GAElBrS,EAAO8F,aACP9F,EAAO+M,YAAY1J,KAK/BrD,EAAOuS,eAAiB,SAAUF,GAC9BA,EAAOxO,UAAU,WAAW7F,OAAO,QAAQoC,KAAK,IAAKJ,EAAOwS,mBAGhExS,EAAOsS,UAAY,SAAUD,GACzBA,EAAOxO,UAAU,QAAQzD,KAAK,SAAU0L,MAG5C9L,EAAOyS,YAAc,WACjB,GAAIN,GAASjD,EAAOiD,QAQpB,OAPInS,GAAOjG,UACPoY,EAAO,GAAKA,EAAOzB,IAAI1Q,EAAOjG,SAAS,GACvCoY,EAAO,GAAKA,EAAOzB,IAAI1Q,EAAOjG,SAAS,GAEvCiU,EAAGlQ,OAAO,UACL9B,KAAKkT,EAAOiD,OAAOA,KAErBA,GAGXnS,EAAO0S,aAAe,SAAUP,GAC5B,MAAOjD,GAAOnR,UAAYoU,GAAUA,EAAO,IAAMA,EAAO,IAG5DnS,EAAOoS,UAAY,WACf,GAAID,GAASnS,EAAOyS,aAIpB,IAFAzS,EAAO+M,YAAYiB,GAEfhO,EAAO0S,aAAaP,GACpBrc,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOqF,eACRvP,EAAGE,UAAUS,iBACb,CACH,GAAIkc,GAAe7c,EAAG4F,QAAQwD,aAAaiT,EAAO,GAAIA,EAAO,GAE7Drc,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOqG,cAAcsM,GACrB3S,EAAOqF,eACRvP,EAAGE,UAAUS,eAIxBuJ,EAAO+M,YAAc,SAAU1J,GAC3B,GAAImJ,EAAU,CACNxM,EAAOrE,UAAYqE,EAAOmP,QAAQpR,SAClCiC,EAAOmP,QAAQgD,OAAOnS,EAAOrE,SAGjC,IAAI0W,GAAShP,EAAEvF,OAAO,UACtBuU,GAAOrW,KAAKgE,EAAOmP,QAAQtP,EAAEG,EAAOH,MACpCG,EAAOsS,UAAUD,GAGrBrS,EAAO4S,sBAGX5S,EAAO4S,mBAAqB,aAK5B5S,EAAOwS,iBAAmB,SAAU/Y,GAChC,GAAIvC,KAAY,MAANuC,GAAYoG,EAAI3I,EAAI,EAAI,GAAI4I,EAAIgM,IAAgB,CAC1D,OAAO,IAAO,GAAMjM,EAAK,IAAMC,EAC3B,YAAc5I,EAAI,IAAO,IAAM2I,EAAK,KAAOC,EAAI,GAC/C,KAAO,EAAIA,EAAI,GACf,YAAc5I,EAAI,IAAO,GAAM2I,EAAK,IAAO,EAAIC,EAC/C,KACO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,GACf,IAAO,IAAMD,EAAK,KAAOC,EAAI,GAC7B,KAAO,EAAIA,EAAI,IAcvBE,EAAO6S,YAAc,SAAUC,GAC3B,MAAKtY,WAAUhD,QAGf6U,EAAeyG,EACR9S,GAHIqM,GAqBfrM,EAAO+S,gBAAkB,aAEzB/S,EAAO+E,UAAY,WAYf,MAXA/E,GAAOoE,WAEPpE,EAAO+S,kBAEP/S,EAAO+P,aACP/D,IAEAO,GAAU,GAEVS,IAEOhN,GAGXA,EAAOoF,UAAY,WAMf,MALApF,GAAO+S,kBAEPxG,GAAU,GACVP,IAEOhM,GAqCXA,EAAOkN,iBAAmB,WACtBC,GAAwB,EACxBmC,EAAMzP,EAAEG,EAAOH,KACVmT,YAAY3D,GACZ4D,MAAMjT,EAAOK,QAASL,EAAOM,WAC7B1H,SAASoH,EAAO2E,sBACrB3E,EAAOG,OAAOnE,KAAKsT,IAGvBtP,EAAOoN,kBAAoB,WACvBpN,EAAOG,OAAOnE,KAAKyT,IA2BvBzP,EAAO5H,MAAQ,SAAUiH,GAEjBW,EAAOH,IAAIxG,OADXqU,EAAiBrO,GACCA,EAEAuK,GAGtB0F,EAAMzP,EAAEG,EAAOH,KACf2J,KAGJxJ,EAAOkT,UAAY,WACf,MAAOzJ,IAGXzJ,EAAO4P,WAAa,SAAUuD,GAC1B,MAAK3Y,WAAUhD,QAGf+W,EAAc4E,EACdnT,EAAOoH,GAAG,WAAY,SAAUnQ,GACvBA,EAAM0E,SAICqO,EAAY/S,EAAM0E,SAAU4S,EAAY5S,WAChD7F,EAAG8I,OAAOE,QAAQ,WACdyP,EAAYnW,MAAMnB,EAAM0E,YAL5B7F,EAAG8I,OAAOE,QAAQ,WACdyP,EAAY1O,IAAIxG,OAAOkV,EAAY4B,uBAQxCnQ,GAdIuO,GA4CfvO,EAAOoT,QAAU,SAAU7Y,GACvB,MAAKC,WAAUhD,QAGfgV,EAAWjS,EACJyF,GAHIwM,GAURxM,GAQXlK,EAAGud,WAAa,SAAUrT,GAEtB,QAASsT,GAAeC,EAAOC,GAC3B,GAAIC,GAAcF,EAAMG,UAAY1T,EAAOkC,eAa3C,OAZAqR,GAAMhW,KAAOoW,OAAOJ,EAAMhW,MAAQiW,GAClCD,EAAMK,OAASL,EAAMzc,MAAM8L,MAAM8N,IAAI,SAAUjX,EAAGlC,GAC9C,OACIsI,EAAGG,EAAOiC,cAAcxI,EAAGlC,GAC3BuI,EAAGyT,EAAMM,OAAS,KAAOJ,EAAYha,EAAGlC,GACxC6L,KAAM3J,EACN8Z,MAAOA,EAAMhW,KACbsW,OAAQN,EAAMM,UAItBN,EAAMK,OAASL,EAAMK,OAAOjY,OAAOmY,KAC5BP,EAAMK,OAWjB,QAASE,KACL,IAAK9T,EAAOH,IACR,MAAOjK,GAAGkN,SAAQ,EAEtB,IAAIiR,GAAU/T,EAAOH,IAAIxG,QACzB,OAAI2G,GAAOkK,YAGA,WACH,OAAO,GAGXlK,EAAOmK,WACA,WAAc,OAAO,GAEzB,SAAU2I,GAEb,MAAOA,GAAEjT,GAAKkU,EAAQ,IAAMjB,EAAEjT,GAAKkU,EAAQA,EAAQvc,OAAS,IAoEpE,QAASwc,GAAgBha,GACrB,GAAIzC,GAAI0c,EAAOvD,IAAI5a,EAAGgG,MAAM,SAAS3E,QAAQ6C,EAC7C,OAAOia,GAAO1c,GAoDlB,QAAS2c,KACL,GAAIC,GAAWnU,EAAOoD,OAAOsN,IAAI,SAAU6C,GAAS,MAAOA,GAAMK,QACjE,OAAOhY,OAAMwY,UAAUC,OAAOhZ,SAAU8Y,GAiE5C,QAASG,GAAWhY,GAChB,OAAQA,EAAEuX,OAvNd,GAAIU,GAAe3e,EAAG4e,OAAOC,QACxBb,OAAON,GAERW,KACAS,KAEAC,GAAiB,CAgQrB,OAzNA3U,GAAOyU,MAAQ,SAAU3d,EAAOyG,EAAMmW,GAClC,IAAKlZ,UAAUhD,OACX,MAAOyc,EAGPzZ,WAAUhD,QAAU,IACpBkc,EAAWnW,EAGf,IAAIgW,IAASzc,MAAMA,EASnB,OARoB,gBAATyG,KACPgW,EAAMhW,KAAOA,GAEO,kBAAbmW,KACPH,EAAMG,SAAWA,GAErBO,EAAO5c,KAAKkc,GAELvT,GAGXlK,EAAGmE,SAAS+F,EAAQ,QAAS,SAAUqD,EAAGrJ,EAAG+B,GACzC,MAAKvB,WAAUhD,QAGfyc,KACAS,KACA1U,EAAOyU,MAAMpR,EAAGrJ,GACZ+B,GACAiE,EAAOkC,cAAcnG,GAElBiE,EAAOe,OAAOsC,EAAGrJ,IARbgG,EAAOe,WAiBtBf,EAAO4U,cAAgB,SAAUra,GAC7B,MAAKC,WAAUhD,QAGfmd,EAAiBpa,EACVyF,GAHI2U,GAiBf3U,EAAO6U,UAAY,SAAUC,GACzB,GAAIvB,GAAQS,EAAgBc,EAI5B,OAHIvB,KACAA,EAAMM,QAAS,GAEZ7T,GASXA,EAAO+U,UAAY,SAAUD,GACzB,GAAIvB,GAAQS,EAAgBc,EAI5B,OAHIvB,KACAA,EAAMM,QAAS,GAEZ7T,GAGXA,EAAOgV,wBAA0B,SAAUC,GACvC,MAAOhB,GAAOgB,GAAOvB,UAAY1T,EAAOkC,iBAG5ClC,EAAO8Q,SAAW,WACd,GAAI5T,GAAMtH,EAAGsH,IAAIgX,IAAgB,SAAUpB,GACvC,MAAQA,GAAEhT,EAAIgT,EAAEoC,GAAKpC,EAAEoC,GAAOpC,EAAEhT,EAAIgT,EAAEoC,GAAMpC,EAAEoC,IAGlD,OAAOpf,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOiS,iBAIzCjS,EAAO+Q,SAAW,WACd,GAAI5T,GAAMvH,EAAGuH,IAAI+W,IAAgB,SAAUpB,GACvC,MAAOA,GAAEhT,EAAIgT,EAAEoC,IAGnB,OAAOpf,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOiS,iBAQpCjS,EAAOsK,SAAW,WACd,GAAIpN,GAAMtH,EAAGsH,IAAIgX,IAAgBpe,EAAGgG,MAAM,KAC1C,OAAOhG,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOsQ,iBAGzCtQ,EAAOuK,SAAW,WACd,GAAIpN,GAAMvH,EAAGuH,IAAI+W,IAAgBpe,EAAGgG,MAAM,KAC1C,OAAOhG,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOsQ,iBAoBpCxa,EAAGmE,SAAS+F,EAAQ,QAAS,SAAU8U,EAAWK,GAC9C,MAAKL,GAIoB,kBAAdA,GACA9U,EAAOgC,OAAO8S,GAErBA,IAAc9U,EAAOsD,YAAuC,kBAAlB6R,GACnCnV,EAAOgC,OAAOmT,GAGI,kBAAlBA,GACAT,EAAQI,IAAc9U,EAAOgC,UAGxC0S,EAAQI,GAAaK,EAEdnV,GAhBIA,EAAOgC,WAyBtBhC,EAAOoV,YAAc,SAAUX,GAC3B,MAAKja,WAAUhD,QAGf+c,EAAeE,EACRzU,GAHIuU,GAUfvU,EAAOoD,KAAK,WACR,GAAIiS,GAASpB,EAAOtY,OAAO2Y,EAC3B,OAAOe,GAAO7d,OAASwI,EAAOoV,cAAcC,QAGhDrV,EAAOqK,gBAAkB,WACrB,GAAIiL,GAAOpB,IAAexD,IAAI5a,EAAGgG,MAAM,SACnCyZ,EAAUvV,EAAO0D,sBAAsB4R,EAC3C,OAAOC,GAAQ7E,IAAI1Q,EAAOiC,gBAG9BjC,EAAOgJ,cAAc,SAAUvP,GAC3B,GAAI8Z,GAAQtY,KAAKsY,OAAStY,KAAKsC,MAAQ9D,EAAE8D,MAAQ9D,EAAE8Z,KACnD,OAAOA,KAGXvT,EAAO2G,YAAc,WACjB,MAAOsN,GAAOvD,IAAI,SAAU6C,EAAOhc,GAC/B,OACIN,MAAM+I,EACNzC,KAAKgW,EAAMhW,KACXsW,OAAQN,EAAMM,SAAU,EACxB2B,MAAMxV,EAAOqJ,SAASrN,KAAKuX,EAAOA,EAAMK,OAAQrc,OAK5DyI,EAAO+G,mBAAqB,SAAUtN,GAClC,GAAI8Z,GAAQS,EAAgBva,EAAE8D,KAC9B,OAAOgW,GAAQA,EAAMM,QAAS,GAGlC7T,EAAO8G,aAAe,SAAUrN,GACxBkb,IACI3U,EAAO+G,mBAAmBtN,GAC1BuG,EAAO+U,UAAUtb,EAAE8D,MAEnByC,EAAO6U,UAAUpb,EAAE8D,MAGvByC,EAAOsF,gBAIRtF,GAcXlK,EAAG2f,SAAW,SAAUzV,GAEpB,GAAI0V,GAAO9V,IAEP+V,EAAe,SAEfC,EAAiB,SAAUC,GAC3B,GAAIC,GAAalgB,EAAGmgB,IAAIF,EAAS7V,EAAOkC,iBACpC8T,EAAUhW,EAAOlJ,QAAQ8L,MACzBqT,EAAargB,EAAGmgB,IAAIC,EAAShW,EAAOkC,iBACpCgU,EAAUL,EAAQnF,IAAI1Q,EAAOiC,eAC7BkU,EAAUH,EAAQtF,IAAI1Q,EAAOiC,eAC7BmU,EAASxgB,EAAGygB,IAAIH,GAChBI,EAASH,EAAQxa,OAAO,SAAUlC,GAAI,OAAQ2c,EAAOpf,IAAIyC,IAC7D,OAAIwc,GAAaH,EACND,EAAQxB,SAASiC,OAAUA,EAAQC,IAAOZ,EAAcpW,MAAS0W,EAAaH,KAElFD,EAyFX,OAtFA7V,GAAOwW,kBAAoB,SAAU/c,EAAGlC,GACpC,MAAIkC,GAAE6c,OACK7c,EAAE8c,IAENvW,EAAOiC,cAAcxI,EAAGlC,IAGnCyI,EAAOyW,oBAAsB,SAAUhd,EAAGlC,GACtC,MAAIkC,GAAE6c,OACK7c,EAAE8F,MAENS,EAAOkC,gBAAgBzI,EAAGlC,IAGrCyI,EAAOoD,KAAK,SAAUtM,GAClB,GAAa8I,MAAT8V,EACA,MAAO1V,GAAO0D,sBAAsB5M,EAAM8L,MAE1C,IAAIiT,GAAU/e,EAAM6Q,IAAI+N,EAExB,OADAG,GAAU7V,EAAO0D,sBAAsBmS,GACnCD,EACOA,EAAeC,GAEnBA,IAQf7V,EAAO0W,IAAM,SAAUnc,GACnB,MAAKC,WAAUhD,QAGfke,EAAOnb,EACAyF,GAHI0V,GAUf1V,EAAO2W,YAAc,SAAUpc,GAC3B,MAAKC,WAAUhD,QAGfme,EAAepb,EACRyF,GAHI2V,GA0Bf3V,EAAO4W,cAAgB,SAAUrc,GAC7B,MAAKC,WAAUhD,QAGfoe,EAAiBrb,EACVyF,GAHI4V,GAMf9f,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUvG,GACjCA,EAAE6c,QACFtW,EAAOrE,QAAQlC,EAAE6c,SAErBtW,EAAO6W,SAASpd,KAGbuG,GAUXlK,EAAGghB,YAAc,SAAU9W,GACvB,GAAI+W,GAAyB,GACzBC,EAAsB,EAE1BhX,GAAOiX,kBAAoB,OAC3BjX,EAAOkX,aAAe,SACtBlX,EAAOmX,WAAa,GAEpBnX,EAASlK,EAAGqS,WAAWnI,GAEvBA,EAAOiH,aAAY,GAEnBjH,EAAOoD,KAAK,SAAUtM,GAClB,MAAOA,GAAM6Q,IAAI/H,MAGrB,IAAIwX,GAAKxhB,EAAGyS,MAAMQ,SAASxP,QAAQ,EAAG,MAElCge,EAAkB,SAAU5d,GAC5B,MAAOA,GAAE8C,EASbyD,GAAOzD,EAAI,SAAUhC,GACjB,MAAKC,WAAUhD,QAGf4f,EAAK7c,EACEyF,GAHIoX,GAcfpX,EAAOsX,oBAAsB,SAAU/c,GACnC,MAAKC,WAAUhD,QAGf6f,EAAkB9c,EACXyF,GAHIqX,GAMfrX,EAAOuX,KAAO,WACV,GAAIra,GAAMtH,EAAGsH,IAAI8C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOsX,sBAAsBpgB,IAExC,OAAOgG,IAGX8C,EAAOwX,KAAO,WACV,GAAIra,GAAMvH,EAAGuH,IAAI6C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAO8I,GAAOsX,sBAAsBpgB,IAExC,OAAOiG,IAGX6C,EAAOyX,QAAU,SAAUhe,GACvB,GAAI8F,GAAQS,EAAOsX,sBAAsB7d,GACrC8C,EAAIyD,EAAOzD,IAAIgD,EAInB,QAHImY,MAAMnb,IAAe,GAATgD,KACZhD,EAAI,GAEDA,EAGX,IAAIob,GAAgB,SAAUle,GAC1B,MAAOuG,GAAOgH,QAAQvN,IAGtBme,EAAe,SAAUne,GACzB,MAAQuG,GAAOyX,QAAQhe,GAAKud,EAAuB,EAAI,EAG3DhX,GAAO6X,eAAiB,SAAUC,GAC9B,GAAI9X,EAAOiH,cAAe,CACtB,GAAID,GAAQ8Q,EAAaha,OAAO,OAE5BkJ,GAAMjJ,UACNiJ,EAAQ8Q,EAAa9Z,OAAO,QACvBoC,KAAK,cAAe,UACpBA,KAAK,KAAM,QACXgH,GAAG,QAASpH,EAAOyG,UAG5BO,EACK5G,KAAK,UAAW,GAChBqE,KAAKkT,GACV7hB,EAAG4C,WAAWsO,EAAOhH,EAAO2E,sBACvBvE,KAAK,UAAWwX,KAI7B5X,EAAO+X,eAAiB,SAAUD,GAC9B,GAAI9X,EAAOiH,cAAe,CACtB,GAAI+Q,GAASF,EAAajU,UAAU,QAC/BY,KAAKkT,EACV7hB,GAAG4C,WAAWsf,EAAQhY,EAAO2E,sBACxBvE,KAAK,UAAWwX,IAI7B,IAAIK,GAAgB,SAAUxe,GAC1B,MAAOuG,GAAOkH,QAAQzN,GA2E1B,OAxEAuG,GAAOkY,gBAAkB,SAAU7U,GAC/B,GAAIrD,EAAOmH,cAAe,CACtB,GAAID,GAAQ7D,EAAEvF,OAAO,QAEjBoJ,GAAMnJ,SACNsF,EAAErF,OAAO,SAASyG,KAAKwT,KAKnCjY,EAAOmY,eAAiB,SAAU9U,GAC1BrD,EAAOmH,eACP9D,EAAEQ,UAAU,SAASY,KAAKwT,IAUlCjY,EAAOoY,mBAAqB,SAAU7d,GAClC,MAAKC,WAAUhD,QAGfwf,EAAsBzc,EACfyF,GAHIgX,GAYfhX,EAAOqY,sBAAwB,SAAU9d,GACrC,MAAKC,WAAUhD,QAGfuf,EAAyBxc,EAClByF,GAHI+W,GAMf/W,EAAO4S,mBAAqB,WAEpB5S,EAAO6D,UAAU,KAAO7D,EAAOiX,mBAAmB/R,KADlDlF,EAAO8F,YACgD,SAAUrM,GACzDuG,EAAOsY,eAAe7e,GACtBuG,EAAOsG,kBAAkBrL,MAEzB+E,EAAOuG,eAAetL,OAIyB,WACnD+E,EAAOwG,eAAevL,SAKlC+E,EAAOsY,eAAiB,SAAU7e,GAC9B,MAAOuG,GAAO8F,UAAUrM,EAAE8c,MAG9BvW,EAAOyG,QAAU,SAAUhN,GACvB,GAAIkC,GAASlC,EAAE8c,GACfzgB,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOqF,iBAIRrF,GAsCXlK,EAAGyiB,SAAW,SAAU7a,EAAQqG,GAiD5B,QAASwI,KAELiM,EAAUA,EAAUA,EAAU5iB,EAAGsH,KAAK8C,EAAOK,QAASL,EAAOM,WAAa,CAE1E,IAGImY,GAHAC,EAAMC,IAENC,EAAMC,GAaV,IAVIjjB,EAAGmgB,IAAI/V,EAAOoD,OAAQpD,EAAOkC,kBAC7BuW,EAAUG,EAAI5Y,EAAOoD,QACrB4K,EAAGhK,QAAQ8U,GAAgB,KAI3BL,EAAUG,IAAMrC,IAAIwC,EAAaxZ,MAAM,EAAG+W,QAASyC,MACnD/K,EAAGhK,QAAQ8U,GAAgB,IAG3B9K,EAAI,CACJ,GAAIgL,GAAShL,EAAGnK,UAAU,KAAOoV,GAC5B7V,KAAKqV,EAEVS,GAAeF,EAAQN,EAAKD,GAE5BU,EAAeV,EAASC,GAExBU,EAAeJ,GAEfK,KAIR,QAASH,GAAeF,EAAQN,EAAKD,GACjC,GAAIa,GAAcC,EAAiBP,EAEnCQ,GAAgBF,EAAaZ,GAE7Be,EAAaH,GAEbI,EAAajB,EAASC,GAG1B,QAASa,GAAiBP,GACtB,GAAIM,GAAcN,EACbrN,QACA3N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO0hB,GAAiB,KAAO1hB,GAEvC,OAAO+hB,GAGX,QAASE,GAAgBF,EAAaZ,GAClC,GAAIiB,GAAYL,EAAYtb,OAAO,QAC9BoC,KAAK,OAAQwZ,GACbxS,GAAG,QAASX,GACZrG,KAAK,IAAK,SAAU3G,EAAGlC,GACpB,MAAOsiB,GAAQpgB,EAAGlC,EAAGmhB,IAG7B5iB,GAAG4C,WAAWihB,EAAW3Z,EAAO2E,qBAAsB,SAAU5L,GAC5DA,EAAE+gB,UAAU,IAAKC,KAIzB,QAASN,GAAaH,GACdtZ,EAAOmH,eACPmS,EAAYtb,OAAO,SAASyG,KAAK,SAAUhL,GACvC,MAAOuG,GAAOkH,QAAQzN,EAAE2J,QAKpC,QAAS4W,GAAeC,EAAavB,GACjC5iB,EAAG4C,WAAWuhB,EAAaja,EAAO2E,sBAC7BvE,KAAK,YAAa,SAAU3G,GACzB,MAAOoY,GAAcpY,EAAGif,KAE3BtY,KAAK,cAAe,UACpBqE,KAAK,SAAUhL,GACZ,GAAI2J,GAAO3J,EAAE2J,IACb,QAAK8W,EAAe9W,KAAS+W,EAAc1gB,IAAQ2gB,EAAgB3gB,GAG5DuG,EAAOgH,QAAQvN,EAAE2J,MAFb,KAMvB,QAASsW,GAAajB,EAASC,GAC3B,GAAI1Y,EAAOiH,cAAe,CACtB,GAAI+Q,GAAShK,EAAGnK,UAAU,QAAUoV,GAC/B7V,KAAKqV,EAEVT,GAAOnM,OAAOxH,QAEd,IAAI4V,GAAcjC,EACbrM,QACA3N,OAAO,QACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,GAAI8iB,GAAUpB,EAAiB,KAAO1hB,CAItC,OAHI+iB,KACAD,GAAW,aAERA,IAEVjT,GAAG,QAASX,EACjBuT,GAAeC,EAAavB,IAIpC,QAASS,GAAeV,EAASC,GAC7B6B,EAAiB9B,EAASC,GAC1B8B,EAAa/B,EAASC,GACtB+B,EAAahC,GAGjB,QAAS8B,GAAiB9B,EAASC,GAC/B,GAAIgC,GAAa1M,EAAGnK,UAAU,KAAOoV,GAChC7V,KAAKqV,GACL3a,OAAO,QACPsC,KAAK,IAAK,SAAU3G,EAAGlC,GACpB,MAAOsiB,GAAQpgB,EAAGlC,EAAGmhB,IAE7B5iB,GAAG4C,WAAWgiB,EAAY1a,EAAO2E,qBAC7B,SAAU5L,GACNA,EAAE+gB,UAAU,IAAKC,KAClB3Z,KAAK,OAAQwZ,GAGxB,QAASY,GAAa/B,EAASC,GAC3B,GAAI1Y,EAAOiH,cAAe,CACtB,GAAI+Q,GAAShK,EAAGnK,UAAU,QAAUoV,GAC/B7V,KAAKqV,EACVuB,GAAehC,EAAQU,IAI/B,QAAS+B,GAAahC,GACdzY,EAAOmH,eACP6G,EAAGnK,UAAU,KAAOoV,GACf7V,KAAKqV,GACL3a,OAAO,SACP2G,KAAK,SAAUhL,GACZ,MAAOuG,GAAOkH,QAAQzN,EAAE2J,QAKxC,QAASgW,GAAeJ,GACpBA,EAAOnN,OAAOxH,SAGlB,QAASgV,KAEDrZ,EAAO6D,UAAU,KAAOoV,GAAgB/T,KADxClF,EAAO8F,YACsC,SAAUrM,GAC/C2gB,EAAgB3gB,GAChBuG,EAAOsG,kBAAkBrL,MAEzB+E,EAAOuG,eAAetL,OAIe,WACzC+E,EAAOwG,eAAevL,QA2DlC,QAAS0d,KACL,MAAO/iB,GAAGuO,IAAIuU,MAAMiC,YAAYnC,GAASoC,YAAYC,GAGzD,QAAST,GAAgB3gB,GACrB,MAAOuG,GAAO8F,UAAU9F,EAAOwW,kBAAkB/c,EAAE2J,OAqBvD,QAASyV,KACL,MAAOjjB,GAAG4e,OAAOoE,MAAMkC,KAAK,MAAMvb,MAAMS,EAAOyW,qBAGnD,QAAS0D,GAAc1gB,GACnB,GAAIshB,GAASthB,EAAEuhB,SAAWvhB,EAAEwhB,UAC5B,OAAOvD,OAAMqD,IAAkBG,EAARH,EAG3B,QAASb,GAAezgB,GACpB,MAAyC,KAAlCuG,EAAOyW,oBAAoBhd,GAGtC,QAASsgB,GAASoB,GACdA,EAAEP,YAAcC,CAChB,IAAIhc,GAAU5D,KAAKmgB,QACfC,GAAYxc,KACZA,GAAWoc,WAAY,EAAGD,SAAU,GAExC,IAAIzjB,GAAI3B,EAAGkT,YAAYjK,EAASsc,EAEhC,OADAlgB,MAAKmgB,SAAW7jB,EAAE,GACX,SAAU+jB,GACb,MAAOzB,GAAQtiB,EAAE+jB,GAAI,EAAG3C,MAIhC,QAAS0C,GAAYxc,GACjB,OAAQA,GAAW6Y,MAAM7Y,EAAQoc,aAAevD,MAAM7Y,EAAQmc,UAGlE,QAASpB,GAAKngB,EAAGlC,GACb,MAAOyI,GAAOqJ,SAAS5P,EAAE2J,KAAM7L,GAGnC,QAASkP,GAAQhN,EAAGlC,GACZyW,EAAG5N,KAAK,WAAa0Y,GACrB9Y,EAAOyG,QAAQhN,EAAE2J,KAAM7L,GAI/B,QAASsiB,GAAQpgB,EAAGlC,EAAGmhB,GACnB,GAAI6C,GAAO7C,EAAIjf,EAAGlC,EAIlB,OAHIgkB,GAAKpkB,QAAQ,QAAU,IACvBokB,EAAO,QAEJA,EAiCX,QAAS1J,GAAcpY,EAAGif,GACtB,GAAI8C,EASJ,OAPIA,GADAlB,EACW1kB,EAAGuO,IAAIuU,MACbiC,YAAYnC,EAAU8B,GACtBM,YAAYpC,EAAU8B,GACtBkB,SAAS/hB,GAEHif,EAAI8C,SAAS/hB,GAExBie,MAAM8D,EAAS,KAAO9D,MAAM8D,EAAS,IAC9B,iBAEA,aAAeA,EAAW,IAwBzC,QAASC,GAA6BC,EAAYC,GAC9C3b,EAAO6D,UAAU,eAAeqB,KAAK,SAAUzL,GACvCiiB,EAAWne,OAAS9D,EAAE2J,KAAKmT,KAC3B3gB,EAAGkI,OAAO7C,MAAM+I,QAAQ,YAAa2X;GA/ZjD,GAMInD,GAGAxK,EACA4N,EACAC,EAEAvB,EAbAwB,EAA8B,GAE9B7C,EAAiB,YACjBH,EAAiB,cACjBC,EAAc,QAGd8B,EAAe,EAKfK,EAAoBY,EAEpB9b,EAASlK,EAAG2f,SAAS3f,EAAGqS,WAAWrS,EAAGiK,eAsZ1C,OApZAC,GAAOgJ,cAAchJ,EAAOwW,mBAE5BxW,EAAOkH,MAAM,SAAUzN,GACnB,MAAOuG,GAAOwW,kBAAkB/c,GAAK,KAAOuG,EAAOyW,oBAAoBhd,KAU3EuG,EAAO+b,UAAY/b,EAAO0W,IAE1B1W,EAAOgH,MAAMhH,EAAOwW,mBACpBxW,EAAOiH,aAAY,GAEnBjH,EAAO2E,mBAAmB,KAE1B3E,EAAO+E,UAAY,WASf,MARA/E,GAAOoE,WAEP4J,EAAKhO,EAAOmE,MACPnG,OAAO,KACPoC,KAAK,YAAa,aAAeJ,EAAOgc,KAAO,IAAMhc,EAAOic,KAAO,KAExE1P,IAEOvM,GAkLXA,EAAO4a,YAAc,SAAUre,GAC3B,MAAK/B,WAAUhD,QAGfqjB,EAAete,EACRyD,GAHI6a,GAYf7a,EAAOkc,OAAS,SAAU3f,GACtB,MAAK/B,WAAUhD,QAGfghB,EAAUjc,EACHyD,GAHIwY,GAWfxY,EAAOgc,GAAK,SAAUA,GAClB,MAAKxhB,WAAUhD,QAGfokB,EAAMI,EACChc,GAHK4b,GAAQ5b,EAAOK,QAAU,GAWzCL,EAAOic,GAAK,SAAUA,GAClB,MAAKzhB,WAAUhD,QAGfqkB,EAAMI,EACCjc,GAHK6b,GAAQ7b,EAAOM,SAAW,GAc1CN,EAAOoF,UAAY,WAEf,MADAmH,KACOvM,GAQXA,EAAOmc,iBAAmB,SAAU5hB,GAChC,MAAKC,WAAUhD,QAGf0jB,EAAoB3gB,EACbyF,GAHIkb,GA0Dflb,EAAOoc,WAAa,SAAUlV,GAC1B,MAAyB,KAArB1M,UAAUhD,OACHuhB,GAEXA,EAAc7R,EACPlH,IASXA,EAAOqc,eAAiB,SAAUH,GAC9B,MAAyB,KAArB1hB,UAAUhD,OACH8iB,GAEPA,EADO4B,EACgBA,EAEApjB,OAGpBkH,IAoBXA,EAAO2G,YAAc,WACjB,MAAO3G,GAAOoD,OAAOsN,IAAI,SAAUjX,EAAGlC,GAClC,GAAImkB,IAAcne,KAAM9D,EAAE8c,IAAKnT,KAAM3J,EAAE8F,MAAO+W,OAAQ7c,EAAE6c,OAAQrf,MAAM+I,EAEtE,OADA0b,GAAWlG,MAAQxV,EAAOqJ,SAAS5P,EAAGlC,GAC/BmkB,KAIf1b,EAAO4G,gBAAkB,SAAUnN,GAC/BgiB,EAA6BhiB,GAAG,IAGpCuG,EAAO6G,YAAc,SAAUpN,GAC3BgiB,EAA6BhiB,GAAG,IAGpCuG,EAAO8G,aAAe,SAAUrN,GAC5BuG,EAAOyG,SAAS8P,IAAK9c,EAAE8D,KAAM+Y,OAAQ7c,EAAE6c,UAWpCtW,EAAO8D,OAAOpG,EAAQqG,IAsCjCjO,EAAGwmB,SAAW,SAAU5e,EAAQqG,GA8C5B,QAASwY,GAAU9iB,GACf,MAAO3D,GAAG6D,MAAMsE,WAAW/E,KAAKC,IAAI6G,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAEyb,IAAMlV,EAAOF,IAAIrG,EAAEyb,MAG9E,QAASsH,GAAWjJ,EAAOkJ,EAAYhjB,GACnC,GAAIijB,GAAOnJ,EAAM1P,UAAU,YACtBT,KAAK3J,EAAEma,OAAQ9d,EAAGgG,MAAM,MAEzB6P,EAAQ+Q,EAAK/Q,QACZ3N,OAAO,QACPoC,KAAK,QAAS,OACdA,KAAK,OAAQtK,EAAGgG,MAAM,OAAQkE,EAAOqJ,WACrCjJ,KAAK,IAAKJ,EAAOsM,eACjBlM,KAAK,SAAU,EAEhBJ,GAAOmH,eACPwE,EAAM3N,OAAO,SAASyG,KAAK3O,EAAGgG,MAAM,OAAQkE,EAAOkH,MAAMzN,EAAE8D,QAG3DyC,EAAOkK,aACPwS,EAAKtV,GAAG,QAASpH,EAAOyG,SAG5B3Q,EAAG4C,WAAWgkB,EAAM1c,EAAO2E,sBACtBvE,KAAK,IAAK,SAAU3G,GACjB,GAAIoG,GAAIG,EAAOH,IAAIpG,EAAEoG,EAOrB,OANI8c,KACA9c,GAAK+c,EAAY,GAEjB5c,EAAOkK,aAAwBpR,SAAT+jB,IACtBhd,GAAKgd,EAAO,GAET/mB,EAAG6D,MAAMsE,WAAW4B,KAE9BO,KAAK,IAAK,SAAU3G,GACjB,GAAIqG,GAAIE,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAEyb,GAM3B,OAJIzb,GAAEqG,EAAI,IACNA,GAAKyc,EAAU9iB,IAGZ3D,EAAG6D,MAAMsE,WAAW6B,KAE9BM,KAAK,QAASwc,GACdxc,KAAK,SAAU,SAAU3G,GACtB,MAAO8iB,GAAU9iB,KAEpB2G,KAAK,OAAQtK,EAAGgG,MAAM,OAAQkE,EAAOqJ,WACrCvL,OAAO,SAAS2G,KAAK3O,EAAGgG,MAAM,OAAQkE,EAAOkH,MAAMzN,EAAE8D,QAE1DzH,EAAG4C,WAAWgkB,EAAK7Q,OAAQ7L,EAAO2E,sBAC7BvE,KAAK,SAAU,GACfiE,SAGT,QAASyY,KACL,GAAkBhkB,SAAd8jB,EAAyB,CACzB,GAAIG,GAAe/c,EAAOuQ,YAItBqM,GAAY1jB,KAAKW,MADjBmG,EAAOkK,aAAwBpR,SAAT+jB,EACC7c,EAAOH,IAAImd,YAC3BH,GACiB7c,EAAO4K,eAAiBmS,EAAe,GAAKF,GAAQE,EAErD/c,EAAO4K,eAAiB,EAAI5K,EAAOid,cAAgBF,IAG5Dnd,MAAdgd,GAA0BlF,MAAMkF,IAA0BM,EAAZN,KAC9CA,EAAYM,IAkIxB,QAASC,GAAY3H,EAAO4H,GACxB,MAAO,YACH,GAAIC,GAAOznB,EAAGkI,OAAO7C,MACjBqiB,EAAQD,EAAKjd,KAAK,UAAYoV,CAClC,OAAO4H,IAAOE,EAAQA,GAxP9B,GASIV,GATAM,EAAgB,EAChBK,EAA2B,EAE3Bvd,EAASlK,EAAGud,WAAWvd,EAAGyT,yBAE1BsT,EAAOU,EACPZ,GAAa,EACba,GAAqB,CA4QzB,OAxQA1nB,GAAGmE,SAAS+F,EAAQ,UAAW,WAC3BA,EAAOyd,WACPb,EAAY9jB,SAGhBhD,EAAGmE,SAAS+F,EAAQ,SAAU,WACtBA,EAAOjG,SAAW4iB,IAAea,GACjC1nB,EAAGoI,OAAOE,KAAK,mHAInB4B,EAAO0d,YAGX1d,EAAO0M,SAAW,WACd,GAAI2I,GAASrV,EAAOkQ,aAAarM,UAAU,WACtCT,KAAKpD,EAAOoD,OAEjB0Z,KAEAzH,EACK1J,QACA3N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO,UAAiBA,IAGhC8d,EAAOnQ,KAAK,SAAUzL,EAAGlC,GACrB,GAAIgc,GAAQ3d,EAAGkI,OAAO7C,KAEtBuhB,GAAWjJ,EAAOhc,EAAGkC,MA8E7BuG,EAAO4S,mBAAqB,WACxB,GAAI8J,GAAO1c,EAAOkQ,aAAarM,UAAU,YACrCsO,EAASnS,EAAOmP,QAAQgD,QAE5B,IAAInS,EAAOkK,YACHlK,EAAO8F,aACP4W,EAAK1Y,QAAQlO,EAAGE,UAAUK,eAAgB,SAAUoD,GAChD,MAAOuG,GAAO8F,UAAUrM,EAAEoG,KAE9B6c,EAAK1Y,QAAQlO,EAAGE,UAAUI,iBAAkB,SAAUqD,GAClD,OAAQuG,EAAO8F,UAAUrM,EAAEoG,OAG/B6c,EAAK1Y,QAAQlO,EAAGE,UAAUK,gBAAgB,GAC1CqmB,EAAK1Y,QAAQlO,EAAGE,UAAUI,kBAAkB,QAGhD,IAAK4J,EAAO0S,aAAaP,GAQrBuK,EAAK1Y,QAAQlO,EAAGE,UAAUI,kBAAkB,OARd,CAC9B,GAAIunB,GAAQxL,EAAO,GACfyL,EAAMzL,EAAO,EAEjBuK,GAAK1Y,QAAQlO,EAAGE,UAAUI,iBAAkB,SAAUqD,GAClD,MAAOA,GAAEoG,EAAI8d,GAASlkB,EAAEoG,GAAK+d,MAa7C5d,EAAO6d,UAAY,SAAUtjB,GACzB,MAAKC,WAAUhD,QAGfmlB,EAAapiB,EACNyF,GAHI2c,GAMf7mB,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUvG,GACrCuG,EAAO6W,SAASpd,EAAE2J,QAUtBpD,EAAOid,WAAa,SAAU1iB,GAC1B,MAAKC,WAAUhD,QAGfwI,EAAO6K,kBAAkBtQ,GACzBsiB,EAAO/jB,OACAkH,GAJIA,EAAO6K,qBAOtB7K,EAAO8K,iBAAmB,WACtB,MAAgBhS,UAAT+jB,GAUX7c,EAAO8d,aAAe9d,EAAO+K,uBAS7B/K,EAAO+d,IAAM,SAAUxjB,GACnB,MAAKC,WAAUhD,QAGfqlB,EAAOtiB,EACAyF,GAHI6c,GAMf7c,EAAOyS,YAAc,WACjB,GAAIN,GAASnS,EAAOmP,QAAQgD,QAS5B,QARInS,EAAOjG,SAAa4iB,IAAca,IAClCrL,EAAO,GAAKA,EAAOzB,IAAI1Q,EAAOjG,SAAS,GACvCoY,EAAO,GAAKA,EAAOzB,IAAI1Q,EAAOjG,SAAS,GAEvCiG,EAAOkQ,aAAapS,OAAO,UACtB9B,KAAKgE,EAAOmP,QAAQgD,OAAOA,KAG7BA,GAgBXnS,EAAOge,kBAAoB,SAAUzjB,GACjC,MAAKC,WAAUhD,QAGfgmB,EAAqBjjB,EACdyF,GAHIwd,GAcfxd,EAAO4G,gBAAkB,SAAUnN,GAC1BuG,EAAO+G,mBAAmBtN,IAC3BuG,EAAOqD,IAAIQ,UAAU,YAChBG,QAAQ,YAAamZ,EAAY1jB,EAAE+b,QACnCxR,QAAQ,UAAWmZ,EAAY1jB,EAAE+b,OAAO,KAIrDxV,EAAO6G,YAAc,WACjB7G,EAAOqD,IAAIQ,UAAU,YAChBG,QAAQ,aAAa,GACrBA,QAAQ,WAAW,IAG5BlO,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,GAAI7C,GAAMlC,KAAKgjB,WACf,IAAI,cAAgBje,GAAOoQ,SAAU,CACjC,GAAI8N,GAAMle,EAAOoQ,SAAS1W,UAC1ByD,IAAO+gB,EAEX,MAAO/gB,KAGJ6C,EAAO8D,OAAOpG,EAAQqG,IAuCjCjO,EAAGqoB,UAAY,SAAUzgB,EAAQqG,GAiI7B,QAAS0E,GAAOhP,EAAGlC,GACf,MAAOyI,GAAOqJ,SAASrN,KAAKvC,EAAGA,EAAEma,OAAQrc,GAG7C,QAAS6mB,GAASC,EAAahJ,GAC3B,GAAIiJ,GAAO1oB,EAAGuO,IAAIma,OACbze,EAAE,SAAUpG,GACT,MAAOuG,GAAOH,IAAIpG,EAAEoG,KAEvBC,EAAE,SAAUrG,GACT,MAAOuG,GAAOF,IAAIrG,EAAEqG,EAAIrG,EAAEyb,MAE7BpM,YAAYyV,GACZC,QAAQC,EACTC,IACAJ,EAAKK,QAAQD,EAGjB,IAAInD,GAAO8C,EAAYrgB,OAAO,QACzBoC,KAAK,QAAS,QACdA,KAAK,SAAUqI,EAChBmW,IACArD,EAAKnb,KAAK,mBAAoBwe,GAGlC9oB,EAAG4C,WAAW2c,EAAOvX,OAAO,aAAckC,EAAO2E,sBAE5CvE,KAAK,SAAUqI,GACfrI,KAAK,IAAK,SAAU3G,GACjB,MAAOolB,GAAMP,EAAK7kB,EAAEma,WAIhC,QAASkL,GAAST,EAAahJ,GAC3B,GAAI0J,EAAa,CACb,GAAIC,GAAOppB,EAAGuO,IAAI6a,OACbnf,EAAE,SAAUpG,GACT,MAAOuG,GAAOH,IAAIpG,EAAEoG,KAEvBC,EAAE,SAAUrG,GACT,MAAOuG,GAAOF,IAAIrG,EAAEqG,EAAIrG,EAAEyb,MAE7BA,GAAG,SAAUzb,GACV,MAAOuG,GAAOF,IAAIrG,EAAEyb,MAEvBpM,YAAYyV,GACZC,QAAQC,EACTC,IACAM,EAAKL,QAAQD,GAGjBL,EAAYrgB,OAAO,QACdoC,KAAK,QAAS,QACdA,KAAK,OAAQqI,GACbrI,KAAK,IAAK,SAAU3G,GACjB,MAAOolB,GAAMG,EAAKvlB,EAAEma,WAG5B9d,EAAG4C,WAAW2c,EAAOvX,OAAO,aAAckC,EAAO2E,sBAE5CvE,KAAK,OAAQqI,GACbrI,KAAK,IAAK,SAAU3G,GACjB,MAAOolB,GAAMG,EAAKvlB,EAAEma,YAKpC,QAASiL,GAAOplB,GACZ,OAASA,GAAKA,EAAEtC,QAAQ,QAAU,EAAK,OAASsC,EAGpD,QAASwlB,GAASC,EAAW7J,GACzB,IAAKrV,EAAOoT,WAAapT,EAAOmf,WAAY,CACxC,GAAIC,GAAmBC,EAAkB,QACrCC,EAAWJ,EAAUphB,OAAO,KAAOshB,EAEnCE,GAASvhB,UACTuhB,EAAWJ,EAAUlhB,OAAO,KAAKoC,KAAK,QAASgf,IAGnD/J,EAAOnQ,KAAK,SAAUzL,EAAGgjB,GACrB,GAAI8C,GAAS9lB,EAAEma,MACX8K,KACAa,EAASA,EAAO5jB,OAAO+iB,GAG3B,IAAIrb,GAAIic,EAASxhB,OAAO,KAAOuhB,EAAkB,KAAO5C,EACpDpZ,GAAEtF,UACFsF,EAAIic,EAASthB,OAAO,KAAKoC,KAAK,QAASif,EAAkB,KAAO5C,IAGpE+C,EAAenc,EAEf,IAAIoc,GAAOpc,EAAEQ,UAAU,UAAY6b,GAC9Btc,KAAKmc,EAAQzpB,EAAGgG,MAAM,KAE3B2jB,GAAK9T,QACA3N,OAAO,UACPoC,KAAK,QAASsf,GACdtf,KAAK,IAAKuf,KACVnb,MAAM,eAAgBob,GACtBpb,MAAM,iBAAkBqb,GACxBzY,GAAG,YAAa,WACb,GAAI0Y,GAAMlqB,EAAGkI,OAAO7C,KACpB8kB,GAAQD,GACRE,EAAaF,EAAKzc,KAErB+D,GAAG,WAAY,WACZ,GAAI0Y,GAAMlqB,EAAGkI,OAAO7C,KACpBglB,GAAQH,GACRI,EAAa7c,KAGrBoc,EACKrf,KAAK,KAAM,SAAU3G,GAClB,MAAO3D,GAAG6D,MAAMsE,WAAW+B,EAAOH,IAAIpG,EAAEoG,MAE3CO,KAAK,KAAM,SAAU3G,GAClB,MAAO3D,GAAG6D,MAAMsE,WAAW+B,EAAOF,IAAIrG,EAAEqG,EAAIrG,EAAEyb,OAEjD9U,KAAK,OAAQJ,EAAOqJ,UACpBrN,KAAKmL,EAAa1N,GAEvBgmB,EAAK5T,OAAOxH,YAKxB,QAASmb,GAAenc,GACpB,GAAI8c,GAAW9c,EAAEvF,OAAO,QAAUsiB,GAAuBriB,QACrDsF,EAAErF,OAAO,QAAQoC,KAAK,QAASggB,GAAyB/c,EAAEvF,OAAO,QAAUsiB,EAC/ED,GAAS3b,MAAM,UAAW,QAAQpE,KAAK,mBAAoB,MAE3D,IAAIigB,GAAWhd,EAAEvF,OAAO,QAAUwiB,GAAuBviB,QACrDsF,EAAErF,OAAO,QAAQoC,KAAK,QAASkgB,GAAyBjd,EAAEvF,OAAO,QAAUwiB,EAC/ED,GAAS7b,MAAM,UAAW,QAAQpE,KAAK,mBAAoB,OAG/D,QAAS2f,GAAQD,GAIb,MAHAA,GAAItb,MAAM,eAAgB,IAC1Bsb,EAAItb,MAAM,iBAAkB,IAC5Bsb,EAAI1f,KAAK,IAAKmgB,GACPT,EAGX,QAASE,GAAaF,EAAKzc,GACvB,GAAIxD,GAAIigB,EAAI1f,KAAK,MACbN,EAAIggB,EAAI1f,KAAK,MACbogB,EAAUxgB,EAAO4R,UAAY5R,EAAO+H,UAAUD,KAC9C2Y,EAAgB,IAAMD,EAAS,IAAM1gB,EAAI,IAAM,EAAM,IAAM,EAC3D4gB,EAAgB,IAAM7gB,EAAI,IAAMG,EAAOsM,cAAgB,IAAMzM,EAAI,IAAMC,CAC3EuD,GAAEvF,OAAO,QAAUsiB,GAAuB5b,MAAM,UAAW,IAAIpE,KAAK,IAAKqgB,GACzEpd,EAAEvF,OAAO,QAAUwiB,GAAuB9b,MAAM,UAAW,IAAIpE,KAAK,IAAKsgB,GAG7E,QAASf,KACL,MAAOgB,IAAoBJ,EAG/B,QAASN,GAAQH,GACbA,EAAItb,MAAM,eAAgBob,GACrBpb,MAAM,iBAAkBqb,GACxBzf,KAAK,IAAKuf,KAGnB,QAASO,GAAa7c,GAClBA,EAAEvF,OAAO,QAAUsiB,GAAuB5b,MAAM,UAAW,QAC3DnB,EAAEvF,OAAO,QAAUwiB,GAAuB9b,MAAM,UAAW,QAG/D,QAAS2C,GAAY2Y,EAAKrmB,GAClBuG,EAAOmH,gBACP2Y,EAAIjc,UAAU,SAASQ,SACvByb,EAAI9hB,OAAO,SAASyG,KAAK3O,EAAGgG,MAAM,OAAQkE,EAAOkH,MAAMzN,EAAE8D,SAoEjE,QAAS4f,GAAY3H,EAAOoL,EAAWxD,GACnC,MAAO,YACH,GAAIC,GAAOznB,EAAGkI,OAAO7C,MACjBqiB,EAASD,EAAKjd,KAAK,YAAcoV,GACjC6H,EAAKjd,KAAK,uBAA0BwgB,YAAqBhlB,OACrDglB,EAAUC,KAAK,KAAO,OAAUxD,EAAKjd,KAAK,UAAYoV,CAC9D,OAAO4H,IAAOE,EAAQA,GAvX9B,GAeIoB,GACAE,EAhBAkC,EAAqB,EACrBzB,EAAkB,aAClBK,EAAmB,MACnBU,EAAwB,OACxBE,EAAwB,OACxBS,EAAsB,KAEtB/gB,EAASlK,EAAGud,WAAWvd,EAAGyT,yBAC1BwV,GAAc,EACdwB,EAAaO,EACbH,EAAmB,KACnBf,EAAwBmB,EACxBlB,EAA0BkB,EAC1BxC,EAAe,SACfE,EAAW,GAGXuC,GAAY,CAmYhB,OAjYAhhB,GAAO2E,mBAAmB,KAC1B3E,EAAO6K,kBAAkB,GAEzB7K,EAAO0M,SAAW,WACd,GAAIwS,GAAYlf,EAAOkQ,aACnB+Q,EAAa/B,EAAUrb,UAAU,eAEjCod,GAAWljB,UACXkjB,EAAa/B,EAAUlhB,OAAO,KAAKoC,KAAK,QAAS,cAGrD,IAAIiV,GAAS4L,EAAWpd,UAAU,WAAWT,KAAKpD,EAAOoD,QAErDib,EAAchJ,EACb1J,QACA3N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO,UAAiBA,GAGhC6mB,GAASC,EAAahJ,GAEtByJ,EAAST,EAAahJ,GAEtB4J,EAASC,EAAW7J,IAWxBrV,EAAO8I,YAAc,SAAUvO,GAC3B,MAAKC,WAAUhD,QAGf+mB,EAAehkB,EACRyF,GAHIue,GAcfve,EAAOwe,QAAU,SAAUjkB,GACvB,MAAKC,WAAUhD,QAGfinB,EAAWlkB,EACJyF,GAHIye,GAiBfze,EAAO2e,QAAU,SAAUpkB,GACvB,MAAKC,WAAUhD,QAGfknB,EAAWnkB,EACJyF,GAHI0e,GAef1e,EAAOkhB,UAAY,SAAU3mB,GACzB,MAAKC,WAAUhD,QAGfonB,EAAarkB,EACNyF,GAHI4e,GAYf5e,EAAOmhB,WAAa,SAAU5mB,GAC1B,MAAKC,WAAUhD,QAGfunB,EAAcxkB,EACPyF,GAHI+e,GA6Lf/e,EAAOmf,SAAW,SAAU5kB,GACxB,MAAKC,WAAUhD,QAGfwpB,EAAYzmB,EACLyF,GAHIghB,GAUfhhB,EAAOohB,UAAY,SAAU7mB,GACzB,MAAKC,WAAUhD,QAGf+oB,EAAahmB,EACNyF,GAHIugB,GAyBfvgB,EAAOqhB,iBAAmB,SAAU/Z,GAChC,MAAK9M,WAAUhD,QAMH8P,GAKRsY,EAAwBtY,EAAQga,aAAe,GAC/CzB,EAA0BvY,EAAQia,eAAiB,GACnDZ,EAAmBrZ,EAAQ4U,QAAU,IANrC0D,EAAwBmB,EACxBlB,EAA0BkB,EAC1BJ,EAAmB,MAMhB3gB,IAbCshB,YAAa1B,EACb2B,cAAe1B,EACf3D,OAAQyE,IAwBpB3gB,EAAO4G,gBAAkB,SAAUnN,GAC1BuG,EAAO+G,mBAAmBtN,IAC3BuG,EAAOqD,IAAIQ,UAAU,wBAChBG,QAAQ,YAAamZ,EAAY1jB,EAAE+b,MAAO/b,EAAEmnB,YAC5C5c,QAAQ,UAAWmZ,EAAY1jB,EAAE+b,MAAO/b,EAAEmnB,WAAW,KAIlE5gB,EAAO6G,YAAc,WACjB7G,EAAOqD,IAAIQ,UAAU,wBAChBG,QAAQ,aAAa,GACrBA,QAAQ,WAAW,IAG5BlO,EAAGmE,SAAS+F,EAAQ,cAAe,WAC/B,GAAI2G,GAAc3G,EAAOwhB,cACzB,OAAK5C,GAGEjY,EAAY+J,IAAI,SAAUpU,GAE7B,MADAA,GAAEskB,UAAYhC,EACPtiB,IAJAqK,IAQR3G,EAAO8D,OAAOpG,EAAQqG,IA6CjCjO,EAAG2rB,UAAY,SAAU/jB,EAAQqG,GAC7B,GAAI2d,GAAgB9rB,EAAG4F,OAAO,MAC1BwE,EAASlK,EAAGiK,cACZ4hB,GAAS/b,KAAK,GAAIhD,IAAI,GAmE1B,OAlDA5C,GAAO4hB,KAAO,SAAU7oB,GACpB,MAAKyB,WAAUhD,QAGXuB,EAAE6J,MACF+e,EAAM/e,IAAM7J,EAAE6J,KAEd7J,EAAE6M,OACF+b,EAAM/b,KAAO7M,EAAE6M,MAEZ5F,GARI2hB,GAmBf3hB,EAAO6hB,aAAe,SAAU9oB,GAC5B,MAAKyB,WAAUhD,QAGfkqB,EAAgB3oB,EACTiH,GAHI0hB,GAMf1hB,EAAO+E,UAAY,WACf,GAAI+c,GAAM9hB,EAAOU,YAAYuS,OACzBhW,EAAM+C,EAAOlJ,QAAQyI,QACrBqD,EAAM8e,EAAcI,GACpBC,EAAWL,EAAczkB,EAU7B,OARK6kB,KAAQ7kB,GAAuB,KAAd0kB,EAAM/e,IACxB5C,EAAOG,OAAOyhB,KAAKD,EAAM/e,IAAIpG,QAAQ,eAAgBoG,GAAKpG,QAAQ,gBAAiBulB,IAC7D,KAAfJ,EAAM/b,KACb5F,EAAOG,OAAOyhB,KAAKD,EAAM/b,KAAKpJ,QAAQ,eAAgBoG,GAAKpG,QAAQ,gBAAiBulB,KAEpF/hB,EAAO6D,UAAU,gBAAgBY,KAAK7B,GACtC5C,EAAO6D,UAAU,iBAAiBY,KAAKsd,IAEpC/hB,GAGXA,EAAOoF,UAAY,WACf,MAAOpF,GAAO+E,aAGX/E,EAAO8D,OAAOpG,EAAQqG,IA2BjCjO,EAAGksB,UAAY,SAAUtkB,EAAQqG,GAkE7B,QAASke,KAQL,GAAIC,IAAgB,CAKpB,IAJAC,EAAStd,QAAQ,SAAU9I,GACvBmmB,GAA8C,kBAANnmB,MAGvCmmB,EAAe,CAChBliB,EAAO6D,UAAU,MAAMQ,QACvB,IAAI+d,GAAWpiB,EAAOG,OAAO0D,UAAU,MAClCT,KAAK+e,GAENE,EAAYD,EACXzW,QACA3N,OAAO,KAEZqkB,GACKjiB,KAAK,QAASkiB,GACVV,KAAK,SAAUnoB,GACZ,MAAQuG,GAAOuiB,sBAAsB9oB,KAKrD,GAAIgX,GAASzQ,EAAOG,OAAO0D,UAAU,SAChCT,KAAKof,IAAe,SAAU/oB,GAC3B,MAAOuG,GAAOiC,cAAcxI,KAGhCgpB,EAAWhS,EACV9E,QACA3N,OAAO,QAcZ,OAZAykB,GACKzkB,OAAO,MACPoC,KAAK,QAASsiB,GACV1kB,OAAO,MACPoC,KAAK,QAASuiB,GACdviB,KAAK,UAAW+hB,EAAS3qB,QACzBoqB,KAAK,SAAUnoB,GACZ,MAAOuG,GAAOiC,cAAcxI,KAGxCgX,EAAO5E,OAAOxH,SAEPoe,EAGX,QAASD,KACL,GAAII,EAOJ,OALIA,GADAC,IAAWjtB,EAAGktB,UACJ9iB,EAAOU,YAAYmH,OAAOkb,GAE1B/iB,EAAOU,YAAYiH,IAAIob,GAG9BntB,EAAGotB,OACLzM,IAAIvW,EAAOlJ,SACXmsB,SAASJ,GACTD,QAAQA,EAAQ9H,KAAK,SAAUta,EAAG2a,GAC/B,MAAO0H,GAAOK,EAAQ1iB,GAAI0iB,EAAQ/H,OAI9C,QAASgI,GAAW1S,GAChB,GAAI2S,GAAO3S,EAAO4S,QACbxf,UAAU,MAAQyf,GAClBlgB,KAAK,SAAU3J,GACZ,MAAOA,GAAEma,SAGb2P,EAAWH,EAAKzX,QACf3N,OAAO,MACPoC,KAAK,QAASkjB,EAYnB,OAVAnB,GAAStd,QAAQ,SAAU2e,EAAGjsB,GAC1BgsB,EAASvlB,OAAO,MACXoC,KAAK,QAASqjB,EAAmB,KAAOlsB,GACxCqqB,KAAK,SAAUnoB,GACZ,MAAOuG,GAAO0jB,qBAAqBF,EAAG/pB,OAIlD2pB,EAAKvX,OAAOxH,SAEL+e,EA5JX,GAAIT,GAAkB,iBAClBW,EAAgB,eAChBG,EAAmB,kBACnBf,EAAkB,iBAClBJ,EAAiB,gBAEjBtiB,EAASlK,EAAGiK,cAEZgjB,EAAQ,GACRZ,KACAe,EAAU,SAAUzpB,GACpB,MAAOA,IAEPopB,EAASjtB,EAAGktB,SAqShB,OAnSA9iB,GAAO+E,UAAY,WAKf,MAJA/E,GAAO6D,UAAU,SAASQ,SAE1B8e,EAAWlB,KAEJjiB,GAGXA,EAAO0jB,qBAAuB,SAAUF,EAAG/pB,GACvC,MAAsB,kBAAN+pB,GACRA,EAAE/pB,GACa,gBAAN+pB,GACR/pB,EAAE+pB,GACFA,EAAEhoB,OAAO/B,IAKtBuG,EAAOuiB,sBAAwB,SAAU9oB,GAIrC,MAAqB,kBAANA,GACPuG,EAAO2jB,0BAA0BlqB,GAClB,gBAANA,GACRuG,EAAO4jB,0BAA0BnqB,GAAKka,OAAOla,EAAEuN,QAG5DhH,EAAO4jB,0BAA4B,SAAU7qB,GAEzC,MAAOA,GAAE8qB,OAAO,GAAGC,cAAgB/qB,EAAE6K,MAAM,IAG/C5D,EAAO2jB,0BAA4B,SAAU5nB,GAEzC,GAAIhD,GAAI4a,OAAO5X,GACXgoB,EAAKhrB,EAAE5B,QAAQ,UACnB,IAAI4sB,GAAM,EAAG,CACT,GAAIC,GAAKjrB,EAAEkrB,YAAY,IACvB,IAAID,GAAM,EAAG,CACTjrB,EAAIA,EAAEmrB,UAAUH,EAAK,EAAGC,EACxB,IAAIG,GAAKprB,EAAE5B,QAAQ,eACfgtB,IAAM,IACNprB,EAAIA,EAAEyD,QAAQ,eAAgB,MAI1C,MAAOzD,IAiGXiH,EAAOoF,UAAY,WACf,MAAOpF,GAAO+E,aAQlB/E,EAAOiT,KAAO,SAAUla,GACpB,MAAKyB,WAAUhD,QAGfurB,EAAQhqB,EACDiH,GAHI+iB,GA2Ff/iB,EAAOokB,QAAU,SAAU7pB,GACvB,MAAKC,WAAUhD,QAGf2qB,EAAW5nB,EACJyF,GAHImiB,GAkBfniB,EAAOqkB,OAAS,SAAU9pB,GACtB,MAAKC,WAAUhD,QAGf0rB,EAAU3oB,EACHyF,GAHIkjB,GAefljB,EAAOqjB,MAAQ,SAAU9oB,GACrB,MAAKC,WAAUhD,QAGfqrB,EAAStoB,EACFyF,GAHI6iB,GAMR7iB,EAAO8D,OAAOpG,EAAQqG,IA6BjCjO,EAAGwuB,SAAW,SAAU5mB,EAAQqG,GA4B5B,QAASke,KACL,GAAIxR,GAASzQ,EAAOG,OAAO0D,UAAU,OAAS0gB,GACrCnhB,KAAKof,IAAe,SAAU/oB,GAC3B,MAAOuG,GAAOiC,cAAcxI,KAGpC+qB,EAAY/T,EACP9E,QACA3N,OAAO,OACPoC,KAAK,QAASmkB,EAUvB,OARIE,IACAD,EACK5C,KAAK,SAAUnoB,GACZ,MAAOgrB,GAAWhrB,KAI9BgX,EAAO5E,OAAOxH,SACPmgB,EAGX,QAAShC,KACL,GAAII,GAAU5iB,EAAOU,YAAYiH,IAAIob,EAErC,OAAOntB,GAAGotB,OACLzM,IAAIvW,EAAOlJ,SACXmsB,SAASJ,GACTD,QAAQA,EAAQ9H,KAAK,SAAUta,EAAG2a,GAC/B,MAAO0H,GAAOK,EAAQ1iB,GAAI0iB,EAAQ/H,OAI9C,QAASuJ,GAAYjU,GACjB,GAAIkU,GAAQlU,EAAO4S,QACVxf,UAAU,OAAS+gB,GACnBxhB,KAAK,SAAU3J,GACZ,MAAOA,GAAEma,QAYrB,OATA+Q,GAAMhZ,QACD3N,OAAO,OACPoC,KAAK,QAASwkB,GACdhD,KAAK,SAAUnoB,GACZ,MAAOkoB,GAAMloB,KAGrBkrB,EAAM9Y,OAAOxH,SAENsgB,EA5EX,GAAIhC,GAAkB,gBAClBiC,EAAiB,eACjBlC,EAAkB,gBAClB6B,EAAiB,cAEjBvkB,EAASlK,EAAGiK,cAEZgjB,EAAQ,IACRpB,EAAQ,SAAUloB,GAAK,MAAO,kDAAoDorB,KAAKC,UAAUrrB,IACjGypB,EAAU,SAAUzpB,GACpB,MAAOA,IAEPopB,EAASjtB,EAAGktB,UAEZ2B,EAAa,SAAUhrB,GACvB,MAAO,eAAkBipB,EAAkB,gBAAoBC,EAAkB,KAC7E3iB,EAAOiC,cAAcxI,GAAK,cAwJlC,OArJAuG,GAAO+E,UAAY,WAKf,MAJA/E,GAAO6D,UAAU,OAAS0gB,GAAgBlgB,SAE1CqgB,EAAYzC,KAELjiB,GAuDXA,EAAOoF,UAAY,WACf,MAAOpF,GAAO+E,aAQlB/E,EAAOiT,KAAO,SAAUla,GACpB,MAAKyB,WAAUhD,QAGfurB,EAAQhqB,EACDiH,GAHI+iB,GAgBf/iB,EAAO4hB,KAAO,SAAUrnB,GACpB,MAAKC,WAAUhD,QAGfmqB,EAAQpnB,EACDyF,GAHI2hB,GAcf3hB,EAAO+kB,UAAY,SAAUxqB,GACzB,MAAKC,WAAUhD,QAGfitB,EAAalqB,EACNyF,GAHIykB,GAmBfzkB,EAAOqkB,OAAS,SAAU9pB,GACtB,MAAKC,WAAUhD,QAGf0rB,EAAU3oB,EACHyF,GAHIkjB,GAefljB,EAAOqjB,MAAQ,SAAU9oB,GACrB,MAAKC,WAAUhD,QAGfqrB,EAAStoB,EACFyF,GAHI6iB,GAMR7iB,EAAO8D,OAAOpG,EAAQqG,IAuCjCjO,EAAGkvB,YAAc,SAAUtnB,EAAQqG,GA4C/B,QAASkhB,GAAYC,GACjB,GAAIpN,GAAeoN,EAAQvZ,QAAQ3N,OAAO,IAE1C8Z,GACK1X,KAAK,QAASJ,EAAOiX,mBACrB7W,KAAK,YAAa+kB,GAClBnnB,OAAO,UAAUoC,KAAK,QAAS,SAAU3G,EAAGlC,GACzC,MAAOyI,GAAOkX,aAAe,KAAO3f,IAEvC6P,GAAG,QAASpH,EAAOyG,SACnBrG,KAAK,OAAQJ,EAAOqJ,UACpBjJ,KAAK,IAAK,GACftK,EAAG4C,WAAWwsB,EAASllB,EAAO2E,sBACzBd,UAAU,UAAY7D,EAAOkX,cAC7B9W,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAOyX,QAAQhe,KAEzB2G,KAAK,UAAW,SAAU3G,GACvB,MAAQuG,GAAOyX,QAAQhe,GAAK,EAAK,EAAI,IAG7CuG,EAAO6X,eAAeC,GAEtB9X,EAAOkY,gBAAgBJ,GAG3B,QAASsN,GAAYF,GACjBpvB,EAAG4C,WAAWwsB,EAASllB,EAAO2E,sBACzBvE,KAAK,YAAa+kB,GAClBthB,UAAU,UAAY7D,EAAOkX,cAC7B9W,KAAK,OAAQJ,EAAOqJ,UACpBjJ,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAOyX,QAAQhe,KAEzB2G,KAAK,UAAW,SAAU3G,GACvB,MAAQuG,GAAOyX,QAAQhe,GAAK,EAAK,EAAI,IAG7CuG,EAAO+X,eAAemN,GACtBllB,EAAOmY,eAAe+M,GAG1B,QAASG,GAAYH,GACjBA,EAAQrZ,OAAOxH,SAGnB,QAASihB,GAAQ7rB,GACb,GAAIoG,GAAIG,EAAOH,IAAIG,EAAOiC,cAAcxI,GAIxC,OAHIie,OAAM7X,KACNA,EAAI,GAEDA,EAGX,QAAS0lB,GAAQ9rB,GACb,GAAIqG,GAAIE,EAAOF,IAAIE,EAAOkC,gBAAgBzI,GAI1C,OAHIie,OAAM5X,KACNA,EAAI,GAEDA,EAtGX,GAAIE,GAASlK,EAAGghB,YAAYhhB,EAAGyT,yBAE3Bic,GAAiB,CAErBxlB,GAAO2E,mBAAmB,IAE1B,IAAIwgB,GAAgB,SAAU1rB,GAC1B,MAAO,aAAgB6rB,EAAQ7rB,GAAM,IAAO8rB,EAAQ9rB,GAAM,IA2G9D,OAlGAuG,GAAOylB,cAAgB,SAAUlrB,GAC7B,MAAKC,WAAUhD,QAGfguB,EAAiBjrB,EACVyF,GAHIwlB,GAMfxlB,EAAO0M,SAAW,WACV8Y,GACAxlB,EAAOzD,IAAIlD,QAAQ2G,EAAOuX,OAAQvX,EAAOwX,SAG7CxX,EAAOzD,IAAI8C,OAAOW,EAAOmX,WAAYnX,EAAO4K,cAAgB5K,EAAOqY,yBAEnE,IAAI6M,GAAUllB,EAAOkQ,aAAarM,UAAU,KAAO7D,EAAOiX,mBACrD7T,KAAKpD,EAAOoD,OAAQ,SAAU3J,GAAK,MAAOA,GAAE8c,KAEjD0O,GAAYC,GAEZE,EAAYF,GAEZG,EAAYH,GAEZllB,EAAO4S,sBAiEX5S,EAAO8M,YAAc,aAIrB9M,EAAO+M,YAAc,WAEjB/M,EAAO4S,sBAGJ5S,EAAO8D,OAAOpG,EAAQqG,IA+BjCjO,EAAG4vB,eAAiB,SAAUhoB,EAAQqG,GAoFlC,QAAS4hB,MACmB7sB,SAApBkH,EAAO4lB,UAA0B5lB,EAAO4M,cACxC5M,EAAO4lB,OAAOhwB,EAAGyS,MAAMQ,UACvB7I,EAAO4lB,SAASvsB,QAAQwsB,IAAiBC,MAAkB9U,YAAYhR,EAAOsM,cAAe,KAGjGtM,EAAO4lB,SAASvmB,OAAOW,EAAOsM,cAAe,IAC7CtM,EAAO+lB,WAAW/lB,EAAO+lB,aAAa1d,MAAMrI,EAAO4lB,WAEnD5lB,EAAO+lB,aAAatX,OAAO,SAG/B,QAASuX,MACcltB,SAAfkH,EAAOF,KAAqBE,EAAO4M,cACnC5M,EAAOF,EAAElK,EAAGyS,MAAMQ,UAClB7I,EAAOF,IAAIzG,QAAQyX,IAAYC,MAAaC,YAAYhR,EAAOsM,cAAe,KAGlFtM,EAAOF,IAAIT,OAAOW,EAAOsM,cAAe,IACxCtM,EAAO+R,MAAM/R,EAAO+R,QAAQ1J,MAAMrI,EAAOF,MAEzCE,EAAO+R,QAAQtD,OAAO,QAG1B,QAASwX,GAAeC,EAAO3uB,GAC3B2uB,EAAMnW,WAAW/P,EAAOqD,KACxB6iB,EAAM7iB,IAAIjD,KAAK,QAAS+lB,EAAkB,KAAO5uB,GAqLrD,QAAS6uB,KACL,MAAOC,GAAU1qB,OAAO,SAAUuqB,GAC9B,OAAQA,EAAM1V,kBAItB,QAAS8V,KACL,MAAOD,GAAU1qB,OAAO,SAAUuqB,GAC9B,MAAOA,GAAM1V,kBAIrB,QAAS+V,GAAYruB,GACjB,MAAOA,GAAOwY,IAAI,SAAUyC,GACxB,MAAOA,GAAErC,aAKjB,QAASA,KACL,MAAOlb,GAAGsH,IAAIqpB,EAAYH,MAG9B,QAASP,KACL,MAAOjwB,GAAGsH,IAAIqpB,EAAYD,MAG9B,QAASE,GAAYtuB,GACjB,MAAOA,GAAOwY,IAAI,SAAUyC,GACxB,MAAOA,GAAEpC,aAKjB,QAASA,KACL,MAAOjb,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAIqpB,EAAYJ,MAAuBpmB,EAAOiS,gBAGzE,QAAS6T,KACL,MAAOhwB,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAIqpB,EAAYF,MAAwBtmB,EAAOiS,gBAG1E,QAASwU,KACL,MAAOJ,GAAU3V,IAAI,SAAUyC,GAC3B,MAAOA,GAAE7I,aAQjB,QAASoc,KACL,MAAOL,GAAU3V,IAAI,SAAUyC,GAC3B,MAAOA,GAAE5I,aAvVjB,GAcIoc,GAdAR,EAAkB,MAClBS,EAAqC,GAErC5mB,EAASlK,EAAGyT,wBACZ8c,KAEAQ,KAEAC,GAAe,EACfC,GAAc,EAEdC,EAAcpxB,EAAGuO,IAAIqK,OACrByY,EAAmB,EACnBC,EAA0BN,EAE1BO,GAAsB,CAmY1B,OAjYAnnB,GAAOsC,yBACPtC,EAAO2E,mBAAmB,KAE1B7O,EAAGmE,SAAS+F,EAAQ,aAAc,WAG9B,IAAK,GAFDqD,GAAIpI,KAAKmsB,cAEJ7vB,EAAI,EAAGA,EAAI8uB,EAAU7uB,SAAUD,EAAG,CACvC,GAAI2uB,GAAQG,EAAU9uB,EAEtB0uB,GAAeC,EAAO3uB,GAEjB2uB,EAAMxlB,aACPwlB,EAAMxlB,UAAUV,EAAOU,aAEtBwlB,EAAMpvB,SACPovB,EAAMpvB,MAAMkJ,EAAOlJ,SAGvBovB,EAAMniB,WAAW/D,EAAO+D,cACxBmiB,EAAM/hB,IAAInE,EAAOmE,OACjB+hB,EAAM9V,OAAOpQ,EAAOoQ,UACpB8V,EAAMvhB,mBAAmB3E,EAAO2E,sBAChCuhB,EAAM9S,QAAQpT,EAAOoT,WACrB8S,EAAM/e,YAAYnH,EAAOmH,eAG7B,MAAO9D,KAGXrD,EAAOoS,UAAY,WAIf,IAAK,GAHDD,GAASnS,EAAOyS,cAChBC,EAAe1S,EAAO0S,aAAaP,GAE9B5a,EAAI,EAAGA,EAAI8uB,EAAU7uB,SAAUD,EACpC8uB,EAAU9uB,GAAGoE,OAAO,MACf+W,GACD2T,EAAU9uB,GAAGoE,OAAOwW,IAKhCnS,EAAOyM,cAAgB,WACgB,IAA/B2Z,IAAoB5uB,QAAgBwuB,IACJ,IAAhCM,IAAqB9uB,QAAgBmuB,IAErCS,IAAoB5uB,OAAS,IAAM2vB,EACnCnnB,EAAOiR,kCAAkCjR,EAAOqD,IAAKrD,EAAOF,IAAKE,EAAO+R,SAEnEuU,IAAqB9uB,OAAS,GACnCwI,EAAOiR,kCAAkCjR,EAAOqD,IAAKsjB,EAASK,IAItEhnB,EAAO6M,YAAc,WACkB,IAA/BuZ,IAAoB5uB,SACpBwI,EAAOwR,cAAc,IAAKxR,EAAO+R,QAAS/R,EAAO+H,UAAUD,MAC3D9H,EAAOkR,iBAAiB,IAAKlR,EAAO8R,aAAc,MAGlB,IAAhCwU,IAAqB9uB,SACrBwI,EAAOwR,cAAc,KAAMxR,EAAO+lB,aAAc/lB,EAAOK,QAAUL,EAAO+H,UAAUH,OAClF5H,EAAOkR,iBAAiB,KAAMlR,EAAOqnB,kBAAmB,GAAIrnB,EAAOK,QAAU6mB,KAiCrFlnB,EAAO0M,SAAW,WACd,IAAK,GAAInV,GAAI,EAAGA,EAAI8uB,EAAU7uB,SAAUD,EAAG,CACvC,GAAI2uB,GAAQG,EAAU9uB,EAEjB2uB,GAAM7iB,KACP4iB,EAAeC,EAAO3uB,GAGtBuvB,GACAZ,EAAMzd,OAAOzI,EAAOyI,UAGxByd,EAAMrmB,EAAEG,EAAOH,KAEfqmB,EAAM7V,MAAMrQ,EAAOqQ,SAEf6V,EAAM1V,iBACN0V,EAAMpmB,EAAEE,EAAO4lB,UACfM,EAAMnU,MAAM/R,EAAO+lB,gBAGnBG,EAAMpmB,EAAEE,EAAOF,KACfomB,EAAMnU,MAAM/R,EAAO+R,UAGvBmU,EAAMxZ,WAENwZ,EAAMlhB,wBAUdhF,EAAOsnB,sBAAwB,SAAU/sB,GACrC,MAAKC,YAIL2sB,EAAsB5sB,EACfyF,GAJImnB,GAYfnnB,EAAOunB,aAAe,SAAUhtB,GAC5B,MAAKC,WAAUhD,QAGfqvB,EAAgBtsB,EAChB8rB,EAAUxhB,QAAQ,SAAUqhB,GACxBA,EAAM5e,QAAQuf,KAEX7mB,GANI6mB,GASf7mB,EAAO4S,mBAAqB,WACxB,IAAK,GAAIrb,GAAI,EAAGA,EAAI8uB,EAAU7uB,SAAUD,EAAG,CACvC,GAAI2uB,GAAQG,EAAU9uB,EACtB2uB,GAAM/W,MAAMnP,EAAOmP,SACnB+W,EAAMtT,uBAQd5S,EAAOqnB,gBAAkB,SAAU9sB,EAAG6R,GAClC,MAAK5R,WAAUhD,QAGfyvB,EAAmB1sB,EACnByF,EAAO+H,UAAUH,OAASsf,EAC1BA,EAAuCpuB,SAAZsT,EAAyBwa,EAAqCxa,EACzFpM,EAAO+H,UAAUH,OAASsf,EACnBlnB,GANIinB,GAmCfjnB,EAAOwnB,QAAU,SAAUtvB,GAavB,MAZAmuB,GAAYnuB,EACZmuB,EAAUxhB,QAAQ,SAAUqhB,GACxBA,EAAM5lB,OAAON,EAAOM,UACpB4lB,EAAM7lB,MAAML,EAAOK,SACnB6lB,EAAMne,QAAQ/H,EAAO+H,WAEjBgf,GACAb,EAAMhf,MAAMlH,EAAOkH,SAGvBgf,EAAM5e,QAAQuf,KAEX7mB,GAQXA,EAAOynB,SAAW,WACd,MAAOpB,IAUXrmB,EAAO0nB,YAAc,SAAUntB,GAC3B,MAAKC,WAAUhD,QAGfsvB,EAAevsB,EACRyF,GAHI8mB,GAWf9mB,EAAO2nB,WAAa,SAAUptB,GAC1B,MAAKC,WAAUhD,QAGfuvB,EAAcxsB,EACPyF,GAHI+mB,GAYf/mB,EAAO4lB,OAAS,SAAUrrB,GACtB,MAAKC,WAAUhD,QAGfmvB,EAAUpsB,EACHyF,GAHI2mB,SAwBR3mB,GAAO8Q,eAeP9Q,GAAO+Q,SAedjb,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,MAAOlK,GAAG6D,MAAMmD,SAASlH,EAAGsH,IAAIupB,KAAkCzmB,EAAOsQ,kBAS7Exa,EAAGmE,SAAS+F,EAAQ,WAAY,WAC5B,MAAOlK,GAAG6D,MAAM0C,IAAIzG,EAAGuH,IAAIupB,KAAkC1mB,EAAOsQ,kBAGxEtQ,EAAO2G,YAAc,WACjB,MAAO0f,GAAUuB,OAAO,SAAUjD,EAAOuB,GAKrC,MAJIY,IACAZ,EAAMzd,OAAOzI,EAAOyI,UAExBkc,EAAMttB,KAAKgE,MAAMspB,EAAOuB,EAAMvf,eACvBge,QAIf3kB,EAAO4G,gBAAkB,SAAUnN,GAC/B,IAAK,GAAIouB,GAAI,EAAGA,EAAIxB,EAAU7uB,SAAUqwB,EAAG,CACvC,GAAI3B,GAAQG,EAAUwB,EACtB3B,GAAMtf,gBAAgBnN,KAI9BuG,EAAO6G,YAAc,SAAUpN,GAC3B,IAAK,GAAIouB,GAAI,EAAGA,EAAIxB,EAAU7uB,SAAUqwB,EAAG,CACvC,GAAI3B,GAAQG,EAAUwB,EACtB3B,GAAMrf,YAAYpN,KAI1BuG,EAAO8G,aAAe,WAClBzI,QAAQC,IAAI,wDAkBhB0B,EAAO+lB,WAAa,SAAUA,GAC1B,MAAKvrB,WAAUhD,QAGfwvB,EAAcjB,EACP/lB,GAHIgnB,GAMRhnB,EAAO8D,OAAOpG,EAAQqG,IAkCjCjO,EAAGgyB,YAAc,SAAUpqB,EAAQqG,GAG/B,QAASgkB,GAAQvnB,EAAG2a,GAChB,MAAOvlB,GAAGktB,UAAU9iB,EAAOiC,cAAczB,GAAIR,EAAOiC,cAAckZ,IAoDtE,QAAS6M,GAAW7U,GACZ8U,EAAQ9U,GAAG9P,KACX4kB,EAAQ9U,GAAG9P,IAAIgB,eAEZ4jB,GAAQ9U,GAGnB,QAAS+U,KACLvtB,OAAOwtB,KAAKF,GAASvX,IAAIsX,GACzBC,KAhEJ,GAQIG,GARApoB,EAASlK,EAAG4vB,eAAehoB,EAAQqG,GAMnCkkB,KACAI,EAAiBvyB,EAAGqoB,UAEpBmK,EAAc1yB,EAAGktB,UACjByF,EAAaR,CAiIjB,OA/HA/nB,GAAOsC,uBAAuBjL,KAAK,iBAAkB,SACrD2I,EAAO0nB,aAAY,GAEnB1nB,EAAO+S,gBAAkB,WACrB,GACIyV,GADAC,KAEAC,EAAS9yB,EAAGotB,OAAOzM,IAAI6R,EACvBE,IACAI,EAAOzF,SAASqF,GAEhBC,GACAG,EAAOC,WAAWJ,EAEtB,IAAIK,GAAUF,EAAO9F,QAAQ5iB,EAAOoD,QAChCqkB,EACAmB,EAAQlY,IAAI,SAAUmY,EAAKtxB,GACvB,GAAIuxB,GAAWb,EAAQY,EAAItS,MAAQ8R,EAAersB,KAAKgE,EAAQA,EAAQ+D,EAAY8kB,EAAItS,IAAKhf,EAM5F,OALK0wB,GAAQY,EAAItS,OACbiS,GAAkB,GAEtBP,EAAQY,EAAItS,KAAOuS,EACnBL,EAAKpxB,KAAKwxB,EAAItS,KACPuS,EACFpoB,UAAUV,EAAOU,aACjB5J,OAAO8L,IAAIhN,EAAGkN,QAAQ+lB,EAAIjV,SAAUiV,EAAItS,KACxCtU,YAAYjC,EAAOiC,eACnBC,cAAclC,EAAOkC,iBACrBkR,QAAQpT,EAAOoT,YAI5BzY,QAAOwtB,KAAKF,GACPtsB,OAAO,SAAUwX,GAAI,MAA2B,KAApBsV,EAAKtxB,QAAQgc,KACzCtO,QAAQ,SAAUsO,GACf6U,EAAW7U,GACXqV,GAAkB,IAE1BxoB,EAAO+oB,SAAStB,GACZe,GAAmBxoB,EAAOqH,UAC1BrH,EAAOqH,SAAS/O,UA4BxB0H,EAAO/I,MAAQ,SAAUsD,GACrB,MAAKC,WAAUhD,QAGf6wB,EAAiB9tB,EACjB2tB,IACOloB,GAJIqoB,GAYfroB,EAAOgpB,eAAiB,SAAUzuB,GAC9B,MAAKC,WAAUhD,QAGf4wB,EAAkB7tB,EAClB2tB,IACOloB,GAJIooB,GAgBfpoB,EAAOipB,WAAa,SAAU1uB,GAC1B,MAAKC,WAAUhD,QAGf8wB,EAAc/tB,EACd2tB,IACOloB,GAJIsoB,GAaftoB,EAAOkpB,UAAY,SAAU3uB,GACzB,MAAKC,WAAUhD,QAGf+wB,EAAahuB,EACb2tB,IACOloB,GAJIuoB,GAQfvoB,EAAO+oB,SAAW/oB,EAAOwnB,cAClBxnB,GAAOwnB,QAEPxnB,GAmCXlK,EAAGqzB,mBAAqB,SAAUzrB,EAAQqG,GAoCtC,QAAS2I,GAAS+P,GACd,GAAIrZ,GAAOgmB,GAEX,IAAIC,EAAY5M,GAAa,CACzB,GAAI6M,GAAUC,EAAc9M,EAE5B+M,GAAYF,EAAS7M,EAAYrZ,GAEjC+D,EAAYmiB,EAAS7M,EAAYrZ,IAIzC,QAASgmB,KAGL,IAAK,GAFDhmB,MACAqmB,EAAWzpB,EAAOoD,OACb7L,EAAI,EAAGA,EAAIkyB,EAASjyB,SAAUD,EACnC6L,EAAKpD,EAAOiC,cAAcwnB,EAASlyB,KAAOyI,EAAOkC,gBAAgBunB,EAASlyB,GAE9E,OAAO6L,GAGX,QAASimB,GAAY5M,GACjB,MAAOiN,GAAQjN,GAAYxa,YAG/B,QAASsnB,GAAc9M,GACnB,GAAI6M,GAAUtpB,EAAOmE,MAChBN,UAAU8lB,EAAclN,IACxBzY,QAAQ,WAAY,SAAUvK,GAC3B,MAAOmwB,GAAWnN,EAAYhjB,KAEjCuK,QAAQ,aAAc,SAAUvK,GAC7B,MAAOowB,GAAapN,EAAYhjB,KAEnC2G,KAAK,QAAS,SAAU3G,GACrB,GAAIqwB,GAAiBJ,EAAQjN,GAAYlf,KACrCwsB,EAAcj0B,EAAG6D,MAAM2D,SAASosB,EAAQjN,GAAYxa,YAAYxI,IAChEuwB,EAAcF,EAAiB,IAAMC,CAOzC,OANIH,GAAWnN,EAAYhjB,KACvBuwB,GAAe,aAEfH,EAAapN,EAAYhjB,KACzBuwB,GAAe,eAEZA,GAEf,OAAOV,GAGX,QAASK,GAAclN,GACnB,MAAO,UAAYA,EAAa,MAAQiN,EAAQjN,GAAYlf,KAGhE,QAASqsB,GAAWnN,EAAYhjB,GAC5B,MAAOuG,GAAO8F,aAAe9F,EAAO8F,UAAUmkB,EAAOxN,EAAYhjB,IAGrE,QAASowB,GAAapN,EAAYhjB,GAC9B,MAAOuG,GAAO8F,cAAgB9F,EAAO8F,UAAUmkB,EAAOxN,EAAYhjB,IAGtE,QAASwwB,GAAOxN,EAAYhjB,GACxB,MAAOiwB,GAAQjN,GAAYxa,YAAYxI,GAG3C,QAASiwB,GAAQzU,GACb,MAAOiV,GAAUjV,GAGrB,QAASuU,GAAYF,EAAS7M,EAAYrZ,GACtC,GAAI+mB,GAAQb,EACPxrB,OAAO,QACPsC,KAAK,OAAQ,WACV,GAAIgqB,GAAcx0B,EAAGkI,OAAO7C,MAAMmF,KAAK,OACvC,OAAIgqB,GACOA,EAEJ,SAEVhjB,GAAG,QAAS,SAAU3N,GACnB,MAAOuG,GAAOyG,QAAQhN,EAAGgjB,IAGjC3mB,GAAG4C,WAAWyxB,EAAOnqB,EAAO2E,sBAAsBvE,KAAK,OAAQ,SAAU3G,EAAGlC,GACxE,MAAOyI,GAAOqJ,SAASjG,EAAKsmB,EAAQjN,GAAYxa,YAAYxI,IAAKlC,KAYzE,QAAS4P,GAAYmiB,EAAS7M,EAAYrZ,GAClCpD,EAAOmH,eACPmiB,EAAQzlB,UAAU,SAASY,KAAK,SAAUhL,GACtC,GAAI8c,GAAM0T,EAAOxN,EAAYhjB,GACzB8F,EAAQ6D,EAAKmT,EACjB,OAAOvW,GAAOkH,SAASqP,IAAKA,EAAKhX,MAAOA,MAxIpD,GAAIS,GAASlK,EAAGqS,WAAWrS,EAAGiK,cAE9BC,GAAOgJ,cAAc,SAAUvP,GAC3B,MAAOA,IAAK,GAGhB,IACI4wB,GADAC,EAAW10B,EAAG20B,IAAIhP,OAGlB2O,IAsOJ,OApOAlqB,GAAO+E,UAAY,WACf/E,EAAOoE,UACP,KAAK,GAAIqY,GAAa,EAAGA,EAAayN,EAAU1yB,SAAUilB,EAAY,CAClE,GAAI+N,GAASxqB,EAAOmE,MAAMnG,OAAO,KAC5BoC,KAAK,QAAS,QAAUqc,GAEzB6M,EAAUkB,EAAO3mB,UAAU,KAAO6lB,EAAQjN,GAAYlf,MACrD6F,KAAKsmB,EAAQjN,GAAYrZ,MACzBuI,QACA3N,OAAO,KACPoC,KAAK,QAASspB,EAAQjN,GAAYlf,KAEvC+rB,GACKtrB,OAAO,QACPoC,KAAK,OAAQ,SACbA,KAAK,IAAKkqB,GAEfhB,EAAQtrB,OAAO,SAEf0O,EAAS+P,GAEb4N,GAAkB,GA2FtBrqB,EAAOyG,QAAU,SAAUhN,EAAGgjB,GAC1B,GAAIgO,GAAiBf,EAAQjN,GAAYxa,YAAYxI,EACrD3D,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO8uB,GACdzqB,EAAOqF,iBAcfrF,EAAOoF,UAAY,WACf,IAAK,GAAIqX,GAAa,EAAGA,EAAayN,EAAU1yB,SAAUilB,EACtD/P,EAAS+P,GACL4N,GACArqB,EAAOmE,MAAMN,UAAU,KAAO6lB,EAAQjN,GAAYlf,KAAO,SAAS6C,KAAK,IAAKkqB,EAGpFD,IAAkB,GAuBtBrqB,EAAO0qB,eAAiB,SAAUC,EAAMptB,EAAM0E,GAC1C,IAAK,GAAI1K,GAAI,EAAGA,EAAI2yB,EAAU1yB,SAAUD,EACpC,GAAI2yB,EAAU3yB,GAAGgG,OAASA,EAGtB,MAFA2sB,GAAU3yB,GAAG6L,KAAOunB,EACpBT,EAAU3yB,GAAG0K,YAAcA,EACpBjC,CAIf,OADAkqB,GAAU7yB,MAAMkG,KAAMA,EAAM6F,KAAMunB,EAAM1oB,YAAaA,IAC9CjC,GASXA,EAAO4qB,WAAa,SAAUA,GAG1B,MAFAN,GAASM,WAAWA,GACpBP,GAAkB,EACXrqB,GAYXA,EAAO6qB,SAAW,WACd,MAAOX,IAUXlqB,EAAO8qB,QAAU,WACb,MAAOR,IAQXtqB,EAAO+qB,cAAgB,SAAUxtB,GAG7B,IAAK,GAFDstB,MAEKtzB,EAAI,EAAGA,EAAI2yB,EAAU1yB,SAAUD,EAAG,CACvC,GAAIgc,GAAQ2W,EAAU3yB,EAClBgc,GAAMhW,OAASA,GACfstB,EAASxzB,KAAKkc,GAMtB,MAFA2W,GAAYW,EAEL7qB,GAGJA,EAAO8D,OAAOpG,EAAQqG,IA6CjCjO,EAAGk1B,cAAgB,SAAU7qB,EAAM4D,GAwC/B,QAASknB,KAKL,MAJAjd,GAAKhO,EAAOlC,OAAO,KAAOotB,GACtBld,EAAGjQ,UACHiQ,EAAKhO,EAAOmE,MAAMnG,OAAO,KAAKoC,KAAK,QAAS8qB,IAEzCld,EAGX,QAASmd,KACL,GAAI/nB,GAAOgoB,GAEXC,GAAQxmB,QAAQ,SAAUymB,GACtB,GAAIC,GAAQC,EAASF,EAAOloB,GAExBqoB,EAASF,EAAMztB,OAAO,UAAYoZ,EAElCuU,GAAO1tB,UACP0tB,EAASF,EAAMvtB,OAAO,UACjBoC,KAAK,QAAS8W,GACd9W,KAAK,IAAK,GACVA,KAAK,OAAQJ,EAAOqJ,UACpBjC,GAAG,QAASpH,EAAOyG,UAG5B3Q,EAAG4C,WAAW+yB,EAAQzrB,EAAO2E,sBACxBvE,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAOyX,QAAQhe,KAG9BuG,EAAO6X,eAAe0T,GAEtBvrB,EAAOkY,gBAAgBqT,KAI/B,QAASH,KACL,GAAIhoB,KAIJ,OAHApD,GAAOoD,OAAOyB,QAAQ,SAAU6mB,GAC5BtoB,EAAKpD,EAAOiC,cAAcypB,IAAUA,IAEjCtoB,EAGX,QAASooB,GAASF,EAAOloB,GACrB,GAAIuoB,GAAkB1U,EAAoB,IAAMnhB,EAAG6D,MAAM2D,SAASguB,EAAM/tB,MAEpEguB,EAAQvd,EAAGlQ,OAAO,KAAOhI,EAAG6D,MAAM2D,SAASguB,EAAM/tB,MAUrD,OARIguB,GAAMxtB,UACNwtB,EAAQvd,EAAGhQ,OAAO,KACboC,KAAK,QAASurB,GACdvrB,KAAK,YAAa,aAAekrB,EAAMzrB,EAAI,IAAMyrB,EAAMxrB,EAAI,MAGpEyrB,EAAMG,MAAMtoB,EAAKkoB,EAAM/tB,OAEhBguB,EAWX,QAASK,KACL,GAAIxoB,GAAOgoB,GAEXC,GAAQxmB,QAAQ,SAAUymB,GACtB,GAAIC,GAAQC,EAASF,EAAOloB,GAExBqoB,EAASF,EAAMztB,OAAO,UAAYoZ,EAEtCphB,GAAG4C,WAAW+yB,EAAQzrB,EAAO2E,sBACxBvE,KAAK,IAAK,SAAU3G,GACjB,MAAOuG,GAAOyX,QAAQhe,KAEzB2G,KAAK,OAAQJ,EAAOqJ,UAEzBrJ,EAAO+X,eAAewT,GAEtBvrB,EAAOmY,eAAeoT,KA1H9B,GAKIvd,GALAkd,EAAuB,iBACvBjU,EAAoB,OACpBC,EAAe,SAEflX,EAASlK,EAAGghB,YAAYhhB,EAAGiK,eAE3BsrB,IAwJJ,OAtJArrB,GAAO2E,mBAAmB,KAE1B3E,EAAOsX,oBAAoB,SAAU7d,GACjC,MAAOA,GAAE8F,QAWbS,EAAOsrB,MAAQ,SAAU/tB,EAAMsC,EAAGC,GAE9B,MADAurB,GAAQh0B,MAAMkG,KAAMA,EAAMsC,EAAGA,EAAGC,EAAGA,IAC5BE,GAGXA,EAAO+E,UAAY,WASf,MARAiJ,GAAKid,IAELjrB,EAAOzD,IAAI8C,OAAOW,EAAOmX,WAAYnX,EAAOK,QAAUL,EAAOqY,0BAE7D8S,IAEAnrB,EAAO4S,qBAEA5S,GA8DXA,EAAOoF,UAAY,WAKf,MAJAwmB,KAEA5rB,EAAO4S,qBAEA5S,GAuBXA,EAAOzB,MAAQ,SAAUstB,GACrB,GAAIA,EAAM,CACN,GAAIC,GAAS9rB,EAAOlC,OAAO,KAAOhI,EAAGE,UAAUE,kBAE3C41B,GAAO/tB,UACP+tB,EAAS9rB,EAAOmE,MACXnG,OAAO,KACPoC,KAAK,QAAStK,EAAGE,UAAUE,mBAGpC,IAAI61B,GAAYD,EAAO9tB,OAAO,QACzBoC,KAAK,IAAK,IACVA,KAAK,IAAK,GAEf0rB,GACK9tB,OAAO,QACPoC,KAAK,QAASJ,EAAOK,SACrBD,KAAK,SAAUJ,EAAOM,UACtB8G,GAAG,YAAa,WACb,GAAIqK,GAAW7b,EAAGo2B,MAAMF,EAAO/oB,QAC3BhI,EAAM0W,EAAS,GAAK,KAAOA,EAAS,EACxCsa,GAAUtnB,KAAK1J,SAGvBiF,GAAO6D,UAAU,UAAUQ,QAG/B,OAAOrE,IAGXA,EAAO8D,OAAO3D,EAAM4D,GAEb/D,GA+BXlK,EAAGm2B,SAAW,SAAUvuB,EAAQqG,GA6B5B,QAASmoB,KACL,IAAK9hB,GAAM+hB,EAAW,CAClB,GAAIha,GAASvc,EAAGuc,OAAOia,EAAUpsB,EAAOyW,oBACpCtE,GAAO,GAAK,IACZA,EAAO,GAAK,GAEhB/H,EAAKxU,EAAGyS,MAAMQ,SAASxP,OAAO8Y,GACzB9S,OAAO,EAAGW,EAAOiI,mBAE1B+C,EAAO3C,MAAM+B,GAGjB,QAASiiB,KACL,GAAIC,GAAQte,EAAGlQ,OAAO,SAEtBouB,KAEII,EAAMvuB,UACNuuB,EAAQte,EAAGhQ,OAAO,KAAKoC,KAAK,QAAS,QAChCA,KAAK,YAAa,gBAAkBJ,EAAOkI,kBAAoB,MAGxEpS,EAAG4C,WAAW4zB,EAAOtsB,EAAO2E,sBACvB3I,KAAKgP,GAkCd,QAASuhB,KACLve,EAAGnK,UAAU,UACR/F,OAAO,kBACPuG,SAEL2J,EAAGnK,UAAU,UACR7F,OAAO,QACPoC,KAAK,QAAS,aACdA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,WACR,OAAQJ,EAAOkI,oBAI3B,QAASqE,KACL6f,EAAWpsB,EAAOoD,OAElBipB,IACAE,GAEA,IAAInJ,GAAOpV,EAAGnK,UAAU,KAAO2oB,GAC1BppB,KAAKgpB,EAEVlT,GAAekK,GACfhK,EAAegK,GACfjK,EAAeiK,GAGnB,QAASlK,GAAekK,GACpB,GAAIG,GAAWH,EAAKzX,QACf3N,OAAO,KACPoC,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAOi1B,GAAe,KAAOj1B,GAGrCgsB,GAASvlB,OAAO,QAAQoC,KAAK,QAAS,GAEtCsZ,EAAa6J,GACb/I,EAAa4I,GAGjB,QAAShK,GAAegK,GACpBA,EAAKvX,OAAOxH,SAGhB,QAASooB,KACL,GAAItsB,GAAOiK,EAAG,EACd,OAAQjK,MAAUP,KAAYO,IAASA,EAAQiK,EAAG,GAAKjK,EAG3D,QAASgZ,GAAeiK,GACpB,GAEI9iB,GAFAtG,EAAIoyB,EAAS50B,MAMb8I,GAHCosB,EAGQA,GAFC1sB,EAAOkI,mBAAqBlO,EAAI,GAAK6iB,GAAQ7iB,EAMtD2yB,IACDC,EAAgBtsB,EAAS,EAG7B,IAAIusB,GAAOzJ,EAAKhjB,KAAK,YAAa,SAAU3G,EAAGlC,GACvC,MAAO,iBAAmBA,EAAI,GAAKslB,EAAOtlB,EAAI+I,GAAU,MACzDxC,OAAO,QACTsC,KAAK,SAAUE,GACfF,KAAK,OAAQJ,EAAOqJ,UACpBjC,GAAG,QAASX,GACZzC,QAAQ,aAAc,SAAUvK,GAC7B,MAAQuG,GAAO8F,aAAgBgnB,EAAcrzB,IAAK,IAErDuK,QAAQ,WAAY,SAAUvK,GAC3B,MAAQuG,GAAO8F,YAAegnB,EAAcrzB,IAAK,GAGzD3D,GAAG4C,WAAWm0B,EAAM7sB,EAAO2E,sBACtBvE,KAAK,QAAS,SAAU3G,GACrB,MAAOP,MAAKC,IAAIszB,IAAcriB,EAAGpK,EAAOkC,gBAAgBzI,OAE3D2G,KAAK,YAAa2sB,GAEvBtT,EAAa2J,GACb5I,EAAa4I,GAGjB,QAAS3J,GAAa2J,GACdpjB,EAAOmH,gBACPic,EAAKvf,UAAU,SAASQ,SACxB+e,EAAKplB,OAAO,SAASyG,KAAKzE,EAAOkH,UAIzC,QAASwS,GAAa6J,GACdvjB,EAAOiH,eACPsc,EAASvlB,OAAO,QACXoJ,GAAG,QAASX,GAEjBzG,EAAOgtB,oBACPzJ,EAASvlB,OAAO,QACXoC,KAAK,QAAS6sB,GACd7lB,GAAG,QAASX,GAIzB,QAAS+T,GAAa4I,GAClB,GAAIpjB,EAAOiH,cAAe,CACtB,GAAIimB,GAAM9J,EAAKtlB,OAAO,QACjBsC,KAAK,IAAK+sB,GACV/sB,KAAK,IAAKwsB,GACVxsB,KAAK,KAAMgtB,GACXhmB,GAAG,QAASX,GACZrG,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAOi1B,GAAe,KAAOj1B,IAEhCkN,KAAK,SAAUhL,GACZ,MAAOuG,GAAOgH,QAAQvN,IAE9B3D,GAAG4C,WAAWw0B,EAAKltB,EAAO2E,sBACrBvE,KAAK,YAAa2sB,GAE3B,GAAI/sB,EAAOgtB,mBAAoB,CAC3B,GAAIK,GAAWjK,EAAKtlB,OAAO,IAAMmvB,GACxB7sB,KAAK,IAAKJ,EAAOiI,iBAAmBqlB,GACpCltB,KAAK,IAAKwsB,GACVxsB,KAAK,cAAe,OACpBgH,GAAG,QAASX,GACZrG,KAAK,QAAS,SAAU3G,EAAGlC,GACxB,MAAO01B,GAAoB,KAAO11B,IAErCkN,KAAK,SAAUhL,GACZ,MAAOuG,GAAOkH,QAAQzN,IAElC3D,GAAG4C,WAAW20B,EAAUrtB,EAAO2E,sBAC1BvE,KAAK,YAAa2sB,IAiB/B,QAAStmB,GAAQhN,GACbuG,EAAOyG,QAAQhN,GAGnB,QAASszB,GAAWtzB,GAChB,GAAIoG,GAAIuK,EAAGpK,EAAOyW,oBAAoBhd,IAClC8zB,EAAKd,IACL1zB,EAAI8G,EAAI0tB,EAAKA,EAAK1tB,CACtB,OAAO,aAAe9G,EAAI,MAgH9B,QAAS+zB,GAAerzB,GACpB,MAAOuG,GAAO8F,UAAU9F,EAAOwW,kBAAkB/c,IAxWrD,GAAIuU,GAiBA5D,EAEA+hB,EAIAC,EArBAe,EAAgB,GAChBP,EAAgB,GAChBD,GAAmB,EACnBS,EAAY,SACZE,EAAqB,EAErBzQ,EAAO,EAEP6P,GAAkB,EAClBF,EAAe,MACfS,EAAoB,WACpBO,GAAoB,EAEpBxtB,EAASlK,EAAG2f,SAAS3f,EAAG2R,YAAY3R,EAAGqS,WAAWrS,EAAGiK,iBAMrDiL,EAASpV,EAAGuO,IAAIqK,OAAOC,OAAO,SAsVlC,OAlVAzO,GAAOytB,QAAUztB,EAAO0W,IA4BxB1W,EAAO+E,UAAY,WASf,MARA/E,GAAOoE,WAEP4J,EAAKhO,EAAOmE,MACPnG,OAAO,KACPoC,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO+H,UAAUJ,IAAM,KAE3F4E,IAEOvM,GAGXA,EAAOkH,MAAM,SAAUzN,GACnB,MAAOuG,GAAOwW,kBAAkB/c,GAAK,KAAOuG,EAAOyW,oBAAoBhd,KAG3EuG,EAAOgH,MAAMhH,EAAOwW,mBAOpBxW,EAAOH,EAAI,SAAUA,GACjB,MAAKrF,WAAUhD,QAGf4S,EAAKvK,EACEG,GAHIoK,GAyJfpK,EAAOgtB,iBAAmB,SAAUzyB,GAChC,MAAKC,WAAUhD,QAGfg2B,EAAoBjzB,EACbyF,GAHIwtB,GAiBfxtB,EAAOoF,UAAY,WAEf,MADAmH,KACOvM,GAeXA,EAAOqQ,MAAQ,WACX,MAAOrF,IAaXhL,EAAO0tB,eAAiB,SAAUrqB,GAC9B,MAAK7I,WAAUhD,QAGfk1B,EAAkBrpB,EACXrD,GAHI0sB,GAWf1sB,EAAO+d,IAAM,SAAU1a,GACnB,MAAK7I,WAAUhD,QAGfqlB,EAAOxZ,EACArD,GAHI6c,GAYf7c,EAAOmK,SAAW,SAAU5P,GACxB,MAAKC,WAAUhD,QAGf20B,EAAY5xB,EACLyF,GAHImsB,GAYfnsB,EAAO2tB,aAAe,SAAUjzB,GAC5B,MAAKF,WAAUhD,QAGf21B,EAAgBzyB,EACTsF,GAHImtB,GAYfntB,EAAO4tB,aAAe,SAAUlzB,GAC5B,MAAKF,WAAUhD,QAGfo1B,EAAgBlyB,EAChBiyB,GAAmB,EACZ3sB,GAJI4sB,GAaf5sB,EAAO6tB,kBAAoB,SAAUnzB,GACjC,MAAKF,WAAUhD,QAGf81B,EAAqB5yB,EACdsF,GAHIstB,GAURttB,EAAO8D,OAAOpG,EAAQqG,IAiBjCjO,EAAGuR,OAAS,WAiGR,QAASymB,KACL,MAAOjR,GAAOkR,EAjGlB,GAGI7hB,GAUA8B,EAbAggB,EAAY,EAEZ7sB,KAEAiJ,EAAK,EACL+D,EAAK,EACL4f,EAAc,GACdlR,EAAO,EACPoR,GAAc,EACdC,EAAe,IACfC,EAAa,GACbC,GAAiB,CA0LrB,OAtLAjtB,GAAQzD,OAAS,SAAUoV,GACvB,MAAKtY,WAAUhD,QAGf0U,EAAU4G,EACH3R,GAHI+K,GAMf/K,EAAQ7I,OAAS,WACb4T,EAAQ/H,MAAMrG,OAAO,eAAeuG,SACpC2J,EAAK9B,EAAQ/H,MAAMnG,OAAO,KACrBoC,KAAK,QAAS,aACdA,KAAK,YAAa,aAAegK,EAAK,IAAM+D,EAAK,IACtD,IAAIxH,GAAcuF,EAAQvF,cAEtB0nB,EAAYrgB,EAAGnK,UAAU,oBACxBT,KAAKuD,GACLgF,QACA3N,OAAO,KACPoC,KAAK,QAAS,kBACdgH,GAAG,YAAa,SAAU3N,GACvByS,EAAQtF,gBAAgBnN,KAE3B2N,GAAG,WAAY,SAAU3N,GACtByS,EAAQrF,YAAYpN,KAEvB2N,GAAG,QAAS,SAAU3N,GACnBA,EAAExC,MAAM6P,aAAarN,IAG7BuU,GAAGnK,UAAU,oBACRG,QAAQ,UAAW,SAAUvK,GAC1B,MAAOA,GAAExC,MAAM8P,mBAAmBtN,KAGtCkN,EAAYf,KAAK9P,EAAGgG,MAAM,cAC1BuyB,EACKrwB,OAAO,QACPoC,KAAK,KAAM,GACXA,KAAK,KAAM2tB,EAAc,GACzB3tB,KAAK,KAAM2tB,GACX3tB,KAAK,KAAM2tB,EAAc,GACzB3tB,KAAK,eAAgB,GACrBA,KAAK,mBAAoBtK,EAAGgG,MAAM,cAClCsE,KAAK,SAAUtK,EAAGgG,MAAM,UAE7BuyB,EACKrwB,OAAO,QACPoC,KAAK,QAAS2tB,GACd3tB,KAAK,SAAU2tB,GACf3tB,KAAK,OAAQ,SAAU3G,GAAI,MAAOA,GAAIA,EAAE+b,MAAQ,SAGzD6Y,EAAUrwB,OAAO,QACRyG,KAAK3O,EAAGgG,MAAM,SACdsE,KAAK,IAAK2tB,EAAcC,GACxB5tB,KAAK,IAAK,WACP,MAAO2tB,GAAc,GAAK9yB,KAAKqzB,aAAerzB,KAAKqzB,aAAe,IAAM,EAAI,GAGxF,IAAIC,GAA6B,EAC7BC,EAAM,CACVH,GAAUjuB,KAAK,YAAa,SAAU3G,EAAGlC,GACrC,GAAI02B,EAAa,CACb,GAAIQ,GAAc,aAAeF,EAA6B,IAAMC,EAAMV,IAAqB,IAC3FY,EAAcN,KAAmB,EAAOnzB,KAAK0zB,UAAUtuB,MAAQwc,EAAOsR,CAQ1E,OANKI,GAA6BG,GAAcR,KAC1CM,EACFD,EAA6B,GAE7BA,GAA8BG,EAE3BD,EAGP,MAAO,eAAiBl3B,EAAIu2B,IAAqB,OAa7D3sB,EAAQtB,EAAI,SAAUA,GAClB,MAAKrF,WAAUhD,QAGf4S,EAAKvK,EACEsB,GAHIiJ,GAUfjJ,EAAQrB,EAAI,SAAUA,GAClB,MAAKtF,WAAUhD,QAGf2W,EAAKrO,EACEqB,GAHIgN,GAUfhN,EAAQ4c,IAAM,SAAUA,GACpB,MAAKvjB,WAAUhD,QAGfqlB,EAAOkB,EACA5c,GAHI0b,GAUf1b,EAAQytB,WAAa,SAAU5rB,GAC3B,MAAKxI,WAAUhD,QAGfu2B,EAAc/qB,EACP7B,GAHI4sB,GAUf5sB,EAAQ0tB,WAAa,SAAUt0B,GAC3B,MAAKC,WAAUhD,QAGfy2B,EAAc1zB,EACP4G,GAHI8sB,GAUf9sB,EAAQ2tB,YAAc,SAAUv0B,GAC5B,MAAKC,WAAUhD,QAGf02B,EAAe3zB,EACR4G,GAHI+sB,GAUf/sB,EAAQutB,UAAY,SAAUn0B,GAC1B,MAAKC,WAAUhD,QAGf22B,EAAa5zB,EACN4G,GAHIgtB,GAWfhtB,EAAQ4tB,cAAgB,SAAUx0B,GAC9B,MAAKC,WAAUhD,QAGf42B,EAAiB7zB,EACV4G,GAHIitB,GAMRjtB,GAmCXrL,EAAGk5B,YAAc,SAAUtxB,EAAQqG,GAuJ/B,QAASkrB,GAAmBC,EAAWjc,GACnC,GAAIkc,GAAUnvB,EAAO6D,UAAU,2BAA2BlI,OAAO,WAC7D,MAAOuzB,GAAUt5B,EAAGkI,OAAO7C,SAE3Bm0B,EAAUC,EAAQpc,MACtBoc,GAAQpc,KAAK/Z,KAAKo2B,IAAIrc,EAAM,IAC5Bnd,EAAG4C,WAAWy2B,EAASnvB,EAAO2E,sBAAsBvE,KAAK,IAAKivB,GAC9DA,EAAQpc,KAAKmc,GAuBjB,QAASG,GAAe5zB,GACpB,GAAIwzB,GAAUnvB,EAAO6D,UAAU,2BAA2BqB,KAAK,SAAUzL,GACrEwB,KAAKuK,SAAW7J,GAAUA,EAAO2D,WAAW7F,EAAE8c,MAGlDzgB,GAAG4C,WAAWy2B,EAASnvB,EAAO2E,sBAAsBvE,KAAK,IAAKivB,GAzLlE,GAAIrvB,GAASlK,EAAGyT,wBACZ8lB,EAAUz5B,EAAGuO,IAAIqrB,SAEjBC,EAAqB,SAAUh2B,GAAK,MAAOA,GAAE8F,OAE7CmwB,EAAsB1vB,EAAOiC,aACjCjC,GAAOiC,YAAY,SAAUxI,GAAK,MAAOi2B,GAAoBj2B,GAAG,KAChEuG,EAAOkC,cAAc,SAAUzI,GAAK,MAAOi2B,GAAoBj2B,GAAG,KAClEuG,EAAOgJ,cAAc,WAAc,MAAOhJ,GAAOsD,YAEjD,IAAIqsB,GAAW,SAAUl2B,GACrB,MAAO,aAAeuG,EAAOH,IAAIG,EAAOiC,cAAcxI,IAAM,IACtCuG,EAAOF,IAAIE,EAAOkC,gBAAgBzI,IAAM,KAG9Dm2B,EAAc,EACdC,EAAmB,EACnBC,EAAc,CAwMlB,OAtMAT,GAAQpc,KAAK,SAAUxZ,GACnB,MAAKg2B,GAAmBh2B,GAEbwB,KAAKuK,SACLtM,KAAKo2B,IAAIO,EAAkB,GAE3B32B,KAAKo2B,IAAIM,EAAa,GAJtBE,IAQfh6B,EAAGmE,SAAS+F,EAAQ,UAAW,SAAUrE,GACrC,MAAKnB,WAAUhD,OAIRwI,EAAO+vB,SAASj6B,EAAG4F,QAAQgE,2BAA2B/D,IAHlDqE,EAAO+vB,aAMtB/vB,EAAO0M,SAAW,WACd,GAAIyiB,GAAUnvB,EAAOkQ,aAAarM,UAAU,eACvCT,KAAKpD,EAAOoD,OAEjB+rB,GACKxjB,QACJ3N,OAAO,QACHoC,KAAK,QAAS,UACdA,KAAK,UAAW,GAChBA,KAAK,OAAQJ,EAAOqJ,UACpBjJ,KAAK,YAAauvB,GAEvB75B,EAAG4C,WAAWy2B,EAASnvB,EAAO2E,sBACzBvE,KAAK,UAAW,SAAU3G,GAAK,MAAOg2B,GAAmBh2B,GAAK,EAAI,IAClE2G,KAAK,OAAQJ,EAAOqJ,UACpBjJ,KAAK,YAAauvB,GAClBvvB,KAAK,IAAKivB,GAEfv5B,EAAG4C,WAAWy2B,EAAQtjB,OAAQ7L,EAAO2E,sBAChCvE,KAAK,UAAW,GAAGiE,UAU5BrE,EAAOgwB,kBAAoB,SAAUC,GACjC,MAAKz1B,WAAUhD,QAGfi4B,EAAqBQ,EACdh1B,MAHIw0B,GAafzvB,EAAOwvB,OAAS,SAAUU,GACtB,MAAK11B,WAAUhD,QAGf63B,EAAQa,KAAKA,GACNlwB,GAHIqvB,EAAQa,QAWvBlwB,EAAOmwB,WAAa,SAAUp3B,GAC1B,MAAKyB,WAAUhD,QAGfo4B,EAAc72B,EACPiH,GAHI4vB,GAWf5vB,EAAOowB,gBAAkB,SAAUr3B,GAC/B,MAAKyB,WAAUhD,QAGfq4B,EAAmB92B,EACZiH,GAHI6vB,GAWf7vB,EAAOqwB,WAAa,SAAUt3B,GAC1B,MAAKyB,WAAUhD,QAGfs4B,EAAc/2B,EACPiH,GAHI8vB,GAMf9vB,EAAO2G,YAAc,WACjB,QAAS1P,MAAO+I,EAAQzC,KAAMyC,EAAOsD,WAAYkS,MAAOxV,EAAOqJ,cAGnErJ,EAAO4G,gBAAkB,SAAUnN,GAC/Bw1B,EAAmB,SAAUO,GACzB,MAAOA,GAAOpvB,KAAK,UAAY3G,EAAE+b,OAClCqa,GACH7vB,EAAO6D,UAAU,2BAA2BlI,OAAO,WAC/C,MAAO/F,GAAGkI,OAAO7C,MAAMmF,KAAK,UAAY3G,EAAE+b,QAC3CxR,QAAQ,WAAW,IAG1BhE,EAAO6G,YAAc,SAAUpN,GAC3Bw1B,EAAmB,SAAUO,GACzB,MAAOA,GAAOpvB,KAAK,UAAY3G,EAAE+b,OAClCoa,GACH5vB,EAAO6D,UAAU,2BAA2BlI,OAAO,WAC/C,MAAO/F,GAAGkI,OAAO7C,MAAMmF,KAAK,UAAY3G,EAAE+b,QAC3CxR,QAAQ,WAAW,IAa1BhE,EAAOuS,eAAiB,aAIxBvS,EAAOyS,YAAc,WACjB,GAAIN,GAASnS,EAAOmP,QAAQgD,QAQ5B,OAPInS,GAAOjG,UACPoY,EAAO,GAAKA,EAAO,GAAGzB,IAAI1Q,EAAOjG,SACjCoY,EAAO,GAAKA,EAAO,GAAGzB,IAAI1Q,EAAOjG,SAEjCiG,EAAOqD,IAAIvF,OAAO,UACb9B,KAAKgE,EAAOmP,QAAQgD,OAAOA,KAE7BA,GAGXnS,EAAO0S,aAAe,SAAUP,GAC5B,MAAOnS,GAAOmP,QAAQpR,UAAYoU,GAAUA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAAMA,EAAO,GAAG,IAW1GnS,EAAOoS,UAAY,WACf,GAAID,GAASnS,EAAOyS,aAIpB,IAFAzS,EAAO+M,YAAY/M,EAAOqD,KAEtBrD,EAAO0S,aAAaP,GACpBrc,EAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOqF,gBAGXkqB,GAAe,OAEZ,CACH,GAAIe,GAAiBx6B,EAAG4F,QAAQgE,2BAA2ByS,EAC3Drc,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAO,MACdqE,EAAOrE,OAAO20B,GACdtwB,EAAOqF,eACRvP,EAAGE,UAAUS,aAEhB84B,EAAee,KAIvBtwB,EAAOsS,UAAY,SAAUD,GACzBA,EAAOrW,KAAKgE,EAAOmP,QAAQrP,EAAEE,EAAOF,OAGjCE,EAAO8D,OAAOpG,EAAQqG,IAmCjCjO,EAAGy6B,cAAgB,SAAU7yB,EAAQqG,GACjC,GAAIysB,GAAa,iBACb9O,EAAgB9rB,EAAG4F,OAAO,OAC1BwE,EAASlK,EAAGiK,cACZ4hB,GAAS8O,IAAI,GAAI7qB,KAAK,GAAI8qB,KAAK,GA6GnC,OA1GA1wB,GAAOsC,sBAAsB,UAkB7BtC,EAAO4hB,KAAO,SAAU7oB,GACpB,MAAKyB,WAAUhD,QAGXuB,EAAE23B,KACF/O,EAAM+O,KAAO33B,EAAE23B,KACR33B,EAAE03B,IACT9O,EAAM+O,KAAO33B,EAAE03B,IACR13B,EAAE6M,OACT+b,EAAM+O,KAAO33B,EAAE6M,MAEf7M,EAAE03B,IACF9O,EAAM8O,IAAM13B,EAAE03B,IACP13B,EAAE6M,OACT+b,EAAM8O,IAAM13B,EAAE6M,MAEd7M,EAAE6M,KACF+b,EAAM/b,KAAO7M,EAAE6M,KACR7M,EAAE03B,MACT9O,EAAM/b,KAAO7M,EAAE03B,KAEZzwB,GAnBI2hB,GA2Bf3hB,EAAOT,MAAQ,WACX,MAAOS,GAAOoD,QAGlBpD,EAAOoD,KAAK,SAAUtM,GAClB,GAAI65B,GAAS75B,EAAMyI,MAAQzI,EAAMyI,QAAUzI,EAAM6Q,IAAI,GAAG,EACxD,OAAO3H,GAAOkC,gBAAgByuB,KAGlC3wB,EAAO2E,mBAAmB,KAE1B3E,EAAO+E,UAAY,WACf,GAAI6rB,GAAW5wB,EAAOT,QAClBsxB,EAAO7wB,EAAO6D,UAAU,IAAM2sB,EAE9BK,GAAK9yB,UACL8yB,EAAOA,EAAKztB,MAAM,IACbuI,QACA3N,OAAO,QACPoC,KAAK,QAASowB,IAGvBK,EAAKn4B,aACAE,SAASoH,EAAO2E,sBAChBmsB,KAAK,eACLC,MAAM,OAAQ,WACX,GAAIC,GAASp7B,EAAGq7B,kBAAkBh2B,KAAKi2B,WAAa,EAAGN,EAEvD;MADA31B,MAAKi2B,UAAYN,EACV,SAAUtV,GACb,GAAIsG,GAAO,KAAMuP,EAAMnxB,EAAO6hB,eAAemP,EAAO1V,GACnC,KAAbsV,GAAkC,KAAfjP,EAAM+O,KACzB9O,EAAOD,EAAM+O,KACO,IAAbE,GAAiC,KAAdjP,EAAM8O,IAChC7O,EAAOD,EAAM8O,IACS,KAAf9O,EAAM/b,OACbgc,EAAOD,EAAM/b,MAEjB3K,KAAKm2B,UAAYxP,EAAOA,EAAKplB,QAAQ,UAAW20B,GAAOA,MAKvEnxB,EAAOoF,UAAY,WACf,MAAOpF,GAAO+E,aAQlB/E,EAAO6hB,aAAe,SAAUtnB,GAC5B,MAAKC,WAAUhD,QAGfkqB,EAAgBnnB,EACTyF,GAHI0hB,GAMR1hB,EAAO8D,OAAOpG,EAAQqG,IAgCjCjO,EAAGu7B,QAAU,SAAU3zB,EAAQqG,GAuE3B,QAASutB,GAAW9iB,EAAMjP,GACtB,GAAIgyB,GAAcvxB,EAAO6D,UAAU,cAAclI,OAAO,SAAUlC,GAC9D,MAAOA,GAAE8c,IAAI/H,KAAUjP,IAEvBiyB,EAAwBD,EAAY51B,OAAO,SAAUlC,GACrD,OAAQuG,EAAO8F,UAAUrM,EAAE8c,MAE/BzgB,GAAG8I,OAAOE,QAAQ,WACV0yB,EAAsBzzB,QACtBwzB,EAAYrsB,KAAK,SAAUzL,GACvBuG,EAAOrE,OAAOlC,EAAE8c,OAGpBib,EAAsBtsB,KAAK,SAAUzL,GACjCuG,EAAOrE,OAAOlC,EAAE8c,OAGxBvW,EAAOqF,gBAtFf,GAEIosB,GAEAC,EACAC,EALAC,EAAwB,KAMxBC,EAAej8B,EAAGktB,UAClBgP,EAAel8B,EAAGktB,UAClBiP,EAAYn8B,EAAGyS,MAAMjP,UACrB44B,EAAYp8B,EAAGyS,MAAMjP,UAErB64B,EAAiBL,EACjBM,EAAiBN,EAEjB5xB,EAASlK,EAAGqS,WAAWrS,EAAG2R,YAAY3R,EAAGiK,eAC7CC,GAAOsC,sBAAsB,UAC7BtC,EAAOkH,MAAMlH,EAAOgJ,gBAEpB,IAAImpB,GAAa,SAAU14B,GACvB,MAAOA,IAEP24B,EAAa,SAAU34B,GACvB,MAAOA,GAYXuG,GAAOqyB,UAAY,SAAU93B,GACzB,MAAKC,WAAUhD,QAGf26B,EAAa53B,EACNyF,GAHImyB,GAefnyB,EAAOsyB,UAAY,SAAU/3B,GACzB,MAAKC,WAAUhD,QAGf46B,EAAa73B,EACNyF,GAHIoyB,EAMf,IAAIG,GAAgB,SAAU94B,GAAK63B,EAAW,EAAG73B,IAC7C+4B,EAAgB,SAAU/4B,GAAK63B,EAAW,EAAG73B,IAC7Cg5B,EAAc,SAAUh5B,GACxB,GAAIkC,GAASlC,EAAE8c,GACfzgB,GAAG8I,OAAOE,QAAQ,WACdkB,EAAOrE,OAAOA,GACdqE,EAAOqF,gBAoQf,OA3OAvP,GAAGmE,SAAS+F,EAAQ,SAAU,SAAUrE,GACpC,MAAKnB,WAAUhD,OAIRwI,EAAOkS,QAAQpc,EAAG4F,QAAQ8D,qBAAqB7D,IAH3CqE,EAAOkS,YAYtBlS,EAAOojB,KAAO,SAAU7oB,GACpB,MAAKC,WAAUhD,QAGfm6B,EAAQp3B,EACDyF,GAHI2xB,GAUf3xB,EAAO0yB,YAAc,SAAUn4B,GAC3B,MAAKC,WAAUhD,QAGfs6B,EAAev3B,EACRyF,GAHI8xB,GAWf9xB,EAAO2yB,KAAO,SAAUp4B,GACpB,MAAKC,WAAUhD,QAGfk6B,EAAQn3B,EACDyF,GAHI0xB,GAUf1xB,EAAO4yB,YAAc,SAAUr4B,GAC3B,MAAKC,WAAUhD,QAGfq6B,EAAet3B,EACRyF,GAHI6xB,GAMf7xB,EAAO+E,UAAY,WAQf,MAPA/E,GAAOoE,WAEPqtB,EAAazxB,EAAOmE,MACfnG,OAAO,KACPoC,KAAK,QAAS,WACdA,KAAK,YAAa,aAAeJ,EAAO+H,UAAUD,KAAO,IAAM9H,EAAO+H,UAAUJ,IAAM,KAEpF3H,EAAOoF,aAGlBpF,EAAOoF,UAAY,WACf,GAAIhC,GAAOpD,EAAOoD,OACdggB,EAAOpjB,EAAOojB,QAAUhgB,EAAKsN,IAAI1Q,EAAOkC,iBACxCywB,EAAO3yB,EAAO2yB,QAAUvvB,EAAKsN,IAAI1Q,EAAOiC,cACxC6vB,KACA1O,EAAOA,EAAKtI,KAAKgX,IAEjBD,IACAc,EAAOA,EAAK7X,KAAK+W,IAErBzO,EAAO4O,EAAU34B,OAAO+pB,GACxBuP,EAAOZ,EAAU14B,OAAOs5B,EAExB,IAAIE,GAAWzP,EAAK/pB,SAAS7B,OACzBs7B,EAAWH,EAAKt5B,SAAS7B,OACzBu7B,EAAW75B,KAAKW,MAAMmG,EAAOiI,iBAAmB6qB,GAChDE,EAAY95B,KAAKW,MAAMmG,EAAOkI,kBAAoB2qB,EAEtDF,GAAKM,iBAAiB,EAAGjzB,EAAOiI,mBAChCmb,EAAK6P,iBAAiBjzB,EAAOkI,kBAAmB,GAEhD,IAAIgrB,GAAQzB,EAAW5tB,UAAU,eAAeT,KAAKpD,EAAOoD,OAAQ,SAAU3J,EAAGlC,GAC7E,MAAOyI,GAAOiC,cAAcxI,EAAGlC,GAAK,OAAOyI,EAAOkC,gBAAgBzI,EAAGlC,KAErE47B,EAASD,EAAMvnB,QAAQ3N,OAAO,KAC7BoC,KAAK,QAAS,YAEnB+yB,GAAOn1B,OAAO,QACToC,KAAK,QAAS,YACdA,KAAK,OAAQ,SACbgH,GAAG,QAASpH,EAAOozB,cAEpBpzB,EAAOmH,gBACPgsB,EAAOn1B,OAAO,SACdk1B,EAAMrvB,UAAU,SAASY,KAAKzE,EAAOkH,UAGzCpR,EAAG4C,WAAWw6B,EAAMrvB,UAAU,QAAS7D,EAAO2E,sBACzCvE,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAOo7B,GAAK3yB,EAAOiC,cAAcxI,EAAGlC,MAChE6I,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAO6rB,GAAKpjB,EAAOkC,gBAAgBzI,EAAGlC,MAClE6I,KAAK,KAAM6xB,GACX7xB,KAAK,KAAM8xB,GACX9xB,KAAK,OAAQJ,EAAOqJ,UACpBjJ,KAAK,QAAS2yB,GACd3yB,KAAK,SAAU4yB,GAEpBE,EAAMrnB,OAAOxH,QAEb,IAAIgvB,GAAQ5B,EAAW5tB,UAAU,SAC7BwvB,GAAMt1B,UACNs1B,EAAQ5B,EAAWzzB,OAAO,KAAKoC,KAAK,QAAS,aAEjD,IAAIkzB,GAAYD,EAAMxvB,UAAU,QAAQT,KAAKuvB,EAAKt5B,SAClDi6B,GAAU3nB,QAAQ3N,OAAO,QAClBoC,KAAK,IAAK,SAAU3G,GAAK,MAAOk5B,GAAKl5B,GAAKs5B,EAAW,IACrDvuB,MAAM,cAAe,UACrBpE,KAAK,IAAKJ,EAAOkI,mBACjB9H,KAAK,KAAM,IACXgH,GAAG,QAASpH,EAAOuzB,gBACnB9uB,KAAKzE,EAAOqyB,aACnBv8B,EAAG4C,WAAW46B,EAAWtzB,EAAO2E,sBACxBF,KAAKzE,EAAOqyB,aACZjyB,KAAK,IAAK,SAAU3G,GAAK,MAAOk5B,GAAKl5B,GAAKs5B,EAAW,IAC7DO,EAAUznB,OAAOxH,QACjB,IAAImvB,GAAQ/B,EAAW5tB,UAAU,SAC7B2vB,GAAMz1B,UACNy1B,EAAQ/B,EAAWzzB,OAAO,KAAKoC,KAAK,QAAS,aAEjD,IAAIqzB,GAAYD,EAAM3vB,UAAU,QAAQT,KAAKggB,EAAK/pB,SA0BlD,OAzBAo6B,GAAU9nB,QAAQ3N,OAAO,QAClBoC,KAAK,KAAM,GACXoE,MAAM,cAAe,OACrBpE,KAAK,IAAK,GACVA,KAAK,KAAM,IACXgH,GAAG,QAASpH,EAAO0zB,gBACnBjvB,KAAKzE,EAAOsyB,aACnBx8B,EAAG4C,WAAW+6B,EAAWzzB,EAAO2E,sBACzBF,KAAKzE,EAAOsyB,aACZlyB,KAAK,IAAK,SAAU3G,GAAK,MAAO2pB,GAAK3pB,GAAKu5B,EAAY,IAC7DS,EAAU5nB,OAAOxH,SAGbrE,EAAO6D,UAAU,eAAeqB,KADhClF,EAAO8F,YAC8B,SAAUrM,GACvCuG,EAAOsY,eAAe7e,GACtBuG,EAAOsG,kBAAkBrL,MAEzB+E,EAAOuG,eAAetL,OAIO,WACjC+E,EAAOwG,eAAevL,QAGvB+E,GAOXA,EAAOozB,WAAa,SAAUr3B,GAC1B,MAAKvB,WAAUhD,QAGfi7B,EAAc12B,EACPiE,GAHIyyB,GAYfzyB,EAAOuzB,aAAe,SAAUx3B,GAC5B,MAAKvB,WAAUhD,QAGf+6B,EAAgBx2B,EACTiE,GAHIuyB,GAYfvyB,EAAO0zB,aAAe,SAAU33B,GAC5B,MAAKvB,WAAUhD,QAGfg7B,EAAgBz2B,EACTiE,GAHIwyB,GAUfxyB,EAAO2zB,cAAgB,SAAUl6B,GAC7B,MAAKe,WAAUhD,QAGfy6B,EAAiBx4B,EACVuG,GAHIiyB,GAUfjyB,EAAO4zB,cAAgB,SAAUn6B,GAC7B,MAAKe,WAAUhD,QAGf06B,EAAiBz4B,EACVuG,GAHIkyB,GAMflyB,EAAOsY,eAAiB,SAAU7e,GAC9B,MAAOuG,GAAO8F,UAAUrM,EAAE8c,MAGvBvW,EAAO8D,OAAOpG,EAAQqG,IAIjC,WA+SI,QAAS8vB,GAAYp6B,GACjB,OAAQ,EAAGA,EAAEjC,OAAS,GAG1B,QAASs8B,GAAar6B,GAClB,OACI7D,EAAGm+B,SAASt6B,EAAG,KACf7D,EAAGm+B,SAASt6B,EAAG,IACf7D,EAAGm+B,SAASt6B,EAAG,MApTvB7D,EAAGo+B,IAAM,WAWL,QAASA,GAAI3wB,GACTA,EAAE6B,KAAK,SAAUzL,EAAGlC,GAChBkC,EAAIA,EAAEiX,IAAInR,GAAOub,KAAKllB,EAAGktB,UACzB,IAAIzf,GAAIzN,EAAGkI,OAAO7C,MACdjB,EAAIP,EAAEjC,OACN0F,EAAMzD,EAAE,GACR0D,EAAM1D,EAAEO,EAAI,GAGZi6B,EAAex6B,EAAEy6B,UAAYA,EAAUz6B,GAGvC06B,EAAiBC,GAAYA,EAASp4B,KAAKf,KAAMxB,EAAGlC,GACpD88B,EAAcF,GAAkBA,EAAezjB,IAAI,SAAUnZ,GAAK,MAAOkC,GAAElC,KAI3E+8B,EAAiBH,EACjBv+B,EAAGyJ,MAAM,EAAG80B,EAAe,IAAI9f,OAAOze,EAAGyJ,MAAM80B,EAAe,GAAK,EAAGn6B,IAAMpE,EAAGyJ,MAAMrF,GAGrFu6B,EAAK3+B,EAAGyS,MAAMQ,SACbxP,OAAOA,GAAUA,EAAO2C,KAAKf,KAAMxB,EAAGlC,KAAO2F,EAAKC,IAClDkC,OAAOiB,EAAQ,IAGhBitB,EAAKtyB,KAAKu5B,WAAa5+B,EAAGyS,MAAMQ,SAC/BxP,QAAQ,EAAGuG,MACXP,MAAMk1B,EAAGl1B,QAGdpE,MAAKu5B,UAAYD,CAQjB,IAAIE,GAASpxB,EAAEQ,UAAU,eACpBT,KAAKixB,GAAeA,MAEzBI,GAAO9oB,QAAQN,OAAO,OAAQ,QACzBjL,KAAK,QAAS,UACdA,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU3G,GAAK,MAAO8zB,GAAG9zB,EAAE,MACtC2G,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU3G,GAAK,MAAO8zB,GAAG9zB,EAAE,MACtC+K,MAAM,UAAW,MACnB9L,aACEE,SAASA,GACT4L,MAAM,UAAW,GACjBpE,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MAE3Cg7B,EAAO/7B,aACFE,SAASA,GACT4L,MAAM,UAAW,GACjBpE,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MAE3Cg7B,EAAO5oB,OAAOnT,aACTE,SAASA,GACT4L,MAAM,UAAW,MACjBpE,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACtC2G,KAAK,KAAM,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACtC4K,QAGL,IAAI2vB,GAAM3wB,EAAEQ,UAAU,YACjBT,MAAM6wB,GAEXD,GAAIroB,QAAQ3N,OAAO,QACdoC,KAAK,QAAS,OACdA,KAAK,IAAK,GACVA,KAAK,IAAK,SAAU3G,GAAK,MAAO8zB,GAAG9zB,EAAE,MACrC2G,KAAK,QAASC,GACdD,KAAK,SAAU,SAAU3G,GAAK,MAAO8zB,GAAG9zB,EAAE,IAAM8zB,EAAG9zB,EAAE,MACvDf,aACEE,SAASA,GACTwH,KAAK,IAAK,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACrC2G,KAAK,SAAU,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,IAAM86B,EAAG96B,EAAE,MAE1Du6B,EAAIt7B,aACCE,SAASA,GACTwH,KAAK,IAAK,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,MACrC2G,KAAK,SAAU,SAAU3G,GAAK,MAAO86B,GAAG96B,EAAE,IAAM86B,EAAG96B,EAAE,KAG1D,IAAIi7B,GAAarxB,EAAEQ,UAAU,eACxBT,MAAM6wB,EAAa,IAExBS,GAAW/oB,QAAQ3N,OAAO,QACrBoC,KAAK,QAAS,UACdA,KAAK,KAAM,GACXA,KAAK,KAAMmtB,GACXntB,KAAK,KAAMC,GACXD,KAAK,KAAMmtB,GACX70B,aACAE,SAASA,GACTwH,KAAK,KAAMm0B,GACXn0B,KAAK,KAAMm0B,GAEhBG,EAAWh8B,aACNE,SAASA,GACTwH,KAAK,KAAMm0B,GACXn0B,KAAK,KAAMm0B,EAGhB,IAAII,GAAUtxB,EAAEQ,UAAU,gBACrBT,KAAKixB,MAEVM,GAAQhpB,QAAQN,OAAO,OAAQ,gBAC1BjL,KAAK,QAAS,WACdA,KAAK,KAAM,GACXA,KAAK,KAAMmtB,GACXntB,KAAK,KAAMC,GACXD,KAAK,KAAMmtB,GACX/oB,MAAM,UAAW,MACnB9L,aACEE,SAASA,GACTwH,KAAK,KAAMm0B,GACXn0B,KAAK,KAAMm0B,GACX/vB,MAAM,UAAW,GAEtBmwB,EAAQj8B,aACHE,SAASA,GACTwH,KAAK,KAAMm0B,GACXn0B,KAAK,KAAMm0B,GACX/vB,MAAM,UAAW,GAEtBmwB,EAAQ9oB,OAAOnT,aACVE,SAASA,GACTwH,KAAK,KAAMm0B,GACXn0B,KAAK,KAAMm0B,GACX/vB,MAAM,UAAW,MACjBH,QAGL,IAAIuwB,GAAUvxB,EAAEQ,UAAU,kBACrBT,KAAKkxB,EAAgBO,OAE1BD,GAAQjpB,QAAQN,OAAO,SAAU,QAC5BjL,KAAK,QAAS,WACdA,KAAK,IAAK,GACVA,KAAK,KAAMC,EAAQ,GACnBD,KAAK,KAAM,SAAU7I,GAAK,MAAOg2B,GAAG9zB,EAAElC,MACtCiN,MAAM,UAAW,MACjB9L,aACAE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOg9B,GAAG96B,EAAElC,MACtCiN,MAAM,UAAW,GAEtBowB,EAAQl8B,aACHE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOg9B,GAAG96B,EAAElC,MACtCiN,MAAM,UAAW,GAEtBowB,EAAQ/oB,OAAOnT,aACVE,SAASA,GACTwH,KAAK,KAAM,SAAU7I,GAAK,MAAOg9B,GAAG96B,EAAElC,MACtCiN,MAAM,UAAW,MACjBH,QAGL,IAAI7I,GAASs5B,GAAcP,EAAGO,WAAW,GAGrCC,EAAU1xB,EAAEQ,UAAU,YACrBT,KAAK6wB,EAEVc,GAAQppB,QAAQ3N,OAAO,QAClBoC,KAAK,QAAS,OACdA,KAAK,KAAM,QACXA,KAAK,KAAM,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ,EAAI,KAChD6I,KAAK,IAAK,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ8I,EAAQ,IACnDD,KAAK,IAAKmtB,GACVntB,KAAK,cAAe,SAAU3G,EAAGlC,GAAK,MAAW,GAAJA,EAAQ,QAAU,QAC/DkN,KAAKjJ,GACL9C,aACAE,SAASA,GACTwH,KAAK,IAAKm0B,GAEfQ,EAAQr8B,aACHE,SAASA,GACT6L,KAAKjJ,GACL4E,KAAK,IAAKm0B,EAKf,IAAIS,GAAc3xB,EAAEQ,UAAU,gBACzBT,KAAKixB,MAEVW,GAAYrpB,QAAQ3N,OAAO,QACtBoC,KAAK,QAAS,WACdA,KAAK,KAAM,QACXA,KAAK,KAAM,GACXA,KAAK,IAAKC,GACVD,KAAK,IAAKmtB,GACV9oB,KAAKjJ,GACLgJ,MAAM,UAAW,MACjB9L,aACAE,SAASA,GACTwH,KAAK,IAAKm0B,GACV/vB,MAAM,UAAW,GAEtBwwB,EAAYt8B,aACPE,SAASA,GACT6L,KAAKjJ,GACL4E,KAAK,IAAKm0B,GACV/vB,MAAM,UAAW,GAEtBwwB,EAAYnpB,OAAOnT,aACdE,SAASA,GACTwH,KAAK,IAAKm0B,GACV/vB,MAAM,UAAW,MACjBH,WAETzO,EAAGq/B,MAAMC,QArOb,GAAI70B,GAAQ,EACRC,EAAS,EACT1H,EAAW,EACXS,EAAS,KACTkG,EAAQs1B,OACRT,EAAWP,EACXK,EAAYJ,EACZgB,EAAa,IAiSjB,OAhEAd,GAAI3zB,MAAQ,SAAUR,GAClB,MAAKrF,WAAUhD,QAGf6I,EAAQR,EACDm0B,GAHI3zB,GAMf2zB,EAAI1zB,OAAS,SAAUT,GACnB,MAAKrF,WAAUhD,QAGf8I,EAAST,EACFm0B,GAHI1zB,GAMf0zB,EAAIc,WAAa,SAAUj1B,GACvB,MAAKrF,WAAUhD,QAGfs9B,EAAaj1B,EACNm0B,GAHIc,GAMfd,EAAIp7B,SAAW,SAAUiH,GACrB,MAAKrF,WAAUhD,QAGfoB,EAAWiH,EACJm0B,GAHIp7B,GAMfo7B,EAAI36B,OAAS,SAAUwG,GACnB,MAAKrF,WAAUhD,QAGf6B,EAAe,OAANwG,EAAaA,EAAIjK,EAAGkN,QAAQjD,GAC9Bm0B,GAHI36B,GAMf26B,EAAIz0B,MAAQ,SAAUM,GAClB,MAAKrF,WAAUhD,QAGf+H,EAAQM,EACDm0B,GAHIz0B,GAMfy0B,EAAII,SAAW,SAAUv0B,GACrB,MAAKrF,WAAUhD,QAGf48B,EAAWv0B,EACJm0B,GAHII,GAMfJ,EAAIE,UAAY,SAAUr0B,GACtB,MAAKrF,WAAUhD,QAGf08B,EAAYr0B,EACLm0B,GAHIE,GAMRF,MA6Cfl+B,EAAGq/B,QAAU,SAAUz3B,EAAQqG,GAI3B,QAASqxB,GAAsBC,GAC3B,MAAO,UAAU57B,GAQb,IAPA,GAAI67B,GAAK77B,EAAEy6B,UAAU,GACjBqB,EAAK97B,EAAEy6B,UAAU,GACjBsB,GAAOD,EAAKD,GAAMD,EAClB99B,EAAI,GACJswB,EAAIpuB,EAAEjC,OAGHiC,IAAIlC,GAAK+9B,EAAKE,IACrB,KAAO/7B,IAAIouB,GAAK0N,EAAKC,IAErB,OAAQj+B,EAAGswB,IA0GnB,QAAS4N,GAAYC,GACjB,GAAIC,GAAcD,EAAO/pB,QAAQ3N,OAAO,IAExC23B,GACKv1B,KAAK,QAAS,OACdA,KAAK,YAAaw1B,GAClB55B,KAAK65B,GACLzuB,GAAG,QAAS,SAAU3N,GACnBuG,EAAOrE,OAAOlC,EAAE8c,KAChBvW,EAAOqF,gBAInB,QAASywB,GAAYJ,GACjB5/B,EAAG4C,WAAWg9B,EAAQ11B,EAAO2E,sBACxBvE,KAAK,YAAaw1B,GAClB55B,KAAK65B,GACL3wB,KAAK,WACFtP,EAAGkI,OAAO7C,MAAM6C,OAAO,YAAYsC,KAAK,OAAQJ,EAAOqJ,YAInE,QAAS0sB,GAAYL,GACjBA,EAAO7pB,OAAOxH,SAASrI,KAAK65B,GAhJhC,GAAI71B,GAASlK,EAAGyT,wBAoBZysB,EAAoB,IACpBC,EAAeb,EACfc,EAAYD,EAAaD,GAEzBH,EAAOjgC,EAAGo+B,MACVmC,EAAc,KAEdC,EAAY,SAAUC,EAAiBjmB,GACvC,MAAIpQ,GAAOkK,YACAlK,EAAOH,IAAImd,YAEXqZ,GAAmB,EAAIr2B,EAAOs2B,cAAgBlmB,EAK7DpQ,GAAOiS,aAAa,IAGpBjS,EAAOH,EAAEjK,EAAGyS,MAAMjP,WAClB4G,EAAOoQ,OAAOta,EAAGkD,MAAMI,SAKvB4G,EAAOoD,KAAK,SAAUtM,GAClB,MAAOA,GAAM8L,MAAM8N,IAAI,SAAUjX,GAE7B,MADAA,GAAEiX,IAAM,SAAUgD,GAAY,MAAOA,GAAS1X,KAAKvC,EAAGA,IAC/CA,IACRkC,OAAO,SAAUlC,GAChB,GAAIma,GAAS5T,EAAOkC,gBAAgBzI,EACpC,OAAyB,KAAlBma,EAAOpc,WAYtBwI,EAAOs2B,WAAat2B,EAAO6K,kBAC3B7K,EAAOs2B,WAAW,IASlBt2B,EAAO8d,aAAe9d,EAAO+K,uBAC7B/K,EAAO8d,aAAa,IAQpB9d,EAAO+yB,SAAW,SAAUx4B,GACxB,MAAKC,WAAUhD,QAGf4+B,EAAYxgC,EAAGkN,QAAQvI,GAChByF,GAHIo2B,EAMf,IAAIR,GAAe,SAAUn8B,EAAGlC,GAC5B,GAAIg/B,GAAUv2B,EAAOH,IAAIG,EAAOiC,cAAcxI,EAAGlC,GACjD,OAAO,aAAeg/B,EAAU,OA0GpC,OAvGAv2B,GAAO+S,gBAAkB,WACjB/S,EAAOmK,YACPnK,EAAOH,IAAIxG,YAInB2G,EAAO0M,SAAW,WACd,GAAI8pB,GAAsBJ,EAAUp2B,EAAOiI,iBAAkBjI,EAAOuQ,aAEpEslB,GAAKzB,SAAS8B,GACT71B,MAAMm2B,GACNl2B,OAAON,EAAOkI,mBACd3I,MAAMS,EAAOkC,iBACb7I,OAAO2G,EAAOF,IAAIzG,UAClBT,SAASoH,EAAO2E,sBAChBmwB,WAAWqB,EAEhB,IAAIT,GAAS11B,EAAOkQ,aAAarM,UAAU,SAAST,KAAKpD,EAAOoD,OAAQ,SAAU3J,GAAK,MAAOA,GAAE8c,KAEhGkf,GAAYC,GACZI,EAAYJ,GACZK,EAAYL,GAEZ11B,EAAO4S,sBA6BX5S,EAAO4S,mBAAqB,WAEpB5S,EAAOqD,IAAIQ,UAAU,SAASqB,KAD9BlF,EAAO8F,YAC4B,SAAUrM,GACrCuG,EAAOsY,eAAe7e,GACtBuG,EAAOsG,kBAAkBrL,MAEzB+E,EAAOuG,eAAetL,OAIK,WAC/B+E,EAAOwG,eAAevL,SAKlC+E,EAAOsY,eAAiB,SAAU7e,GAC9B,MAAOuG,GAAO8F,UAAUrM,EAAE8c,MAG9BvW,EAAO8Q,SAAW,WACd,GAAI5T,GAAMtH,EAAGsH,IAAI8C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAOtB,GAAGsH,IAAI8C,EAAOkC,gBAAgBhL,KAEzC,OAAOpB,GAAG6D,MAAMmD,SAASI,EAAK8C,EAAOiS,iBAGzCjS,EAAO+Q,SAAW,WACd,GAAI5T,GAAMvH,EAAGuH,IAAI6C,EAAOoD,OAAQ,SAAUlM,GACtC,MAAOtB,GAAGuH,IAAI6C,EAAOkC,gBAAgBhL,KAEzC,OAAOpB,GAAG6D,MAAM0C,IAAIc,EAAK6C,EAAOiS,iBAYpCjS,EAAO80B,WAAa,SAAUj1B,GAC1B,MAAKrF,WAAUhD,QAGf2+B,EAAct2B,EACPG,GAHIm2B,GAMRn2B,EAAO8D,OAAOpG,EAAQqG,IAGjC,WAgKA,QAAS0yB,GAAah9B,GACpB,MAAOA,GAAEi9B,OAGX,QAASC,GAAcl9B,GACrB,MAAOA,GAAEm9B,QAGX,QAASC,GAAep9B,GACtB,MAAOA,GAAEq9B,SAGX,QAASC,GAAYl3B,GACnB,GAAI0tB,GAAK1tB,EAAE,EACX,OAAO,UAASpG,GACd,MAAOP,MAAKC,IAAI0G,EAAEpG,GAAK8zB,IA1K3B33B,EAAGohC,OAAS,WAYV,QAASA,GAAO3zB,GACdA,EAAE6B,KAAK,SAASzL,EAAGlC,GACjB,GAII0/B,GACAC,EALAC,EAAST,EAAO16B,KAAKf,KAAMxB,EAAGlC,GAAGqM,QAAQkX,KAAKllB,EAAGwhC,YACjDC,EAAUT,EAAQ56B,KAAKf,KAAMxB,EAAGlC,GAAGqM,QAAQkX,KAAKllB,EAAGwhC,YACnDE,EAAWR,EAAS96B,KAAKf,KAAMxB,EAAGlC,GAAGqM,QAAQkX,KAAKllB,EAAGwhC,YACrD/zB,EAAIzN,EAAGkI,OAAO7C,MAIds8B,EAAOl0B,EAAEvF,OAAO,SAChBy5B,GAAKx5B,UAASw5B,EAAOl0B,EAAErF,OAAO,KAAKoC,KAAK,QAAS,SAEjDo3B,GACFP,EAAU32B,EAAQ42B,EAAU72B,EAC5Bk3B,EAAKn3B,KAAK,YAAa,0BAA4BC,EAAQ,OAE3D42B,EAAU52B,EAAO62B,EAAU52B,EAC3Bi3B,EAAKn3B,KAAK,YAAa,gBAIzB,IAAIm0B,GAAK3+B,EAAGyS,MAAMQ,SACbxP,QAAQ,EAAGH,KAAKiE,IAAIg6B,EAAO,GAAIE,EAAQ,GAAIC,EAAS,MACpDj4B,MAAMo4B,GAAWR,EAAS,IAAM,EAAGA,IAGpC1J,EAAKtyB,KAAKu5B,WAAa5+B,EAAGyS,MAAMQ,SAC/BxP,QAAQ,EAAGuG,MACXP,MAAMk1B,EAAGl1B,QAGdpE,MAAKu5B,UAAYD,CAGjB,IAAImD,GAAKX,EAAYxJ,GACjBoK,EAAKZ,EAAYxC,GAGjBl1B,EAAQk4B,EAAK1zB,UAAU,cACtBT,KAAK+zB,EAEV93B,GAAMsM,QAAQ3N,OAAO,QAChBoC,KAAK,QAAS,SAAS3G,EAAGlC,GAAK,MAAO,UAAYA,IAClD6I,KAAK,QAASs3B,GACdt3B,KAAK,SAAU82B,GACf92B,KAAK,IAAKq3B,EAAUlK,EAAK,GAE9B33B,EAAG8C,WAAW2G,GACTe,KAAK,IAAKq3B,EAAUlD,EAAK,GACzBn0B,KAAK,QAASu3B,GACdv3B,KAAK,SAAU82B,EAGpB,IAAIU,GAAUL,EAAK1zB,UAAU,gBACxBT,KAAKk0B,EAEVM,GAAQjsB,QAAQ3N,OAAO,QAClBoC,KAAK,QAAS,SAAS3G,EAAGlC,GAAK,MAAO,YAAcA,IACpD6I,KAAK,QAASs3B,GACdt3B,KAAK,SAAU82B,EAAU,GACzB92B,KAAK,IAAKq3B,EAAUlK,EAAK,GACzBntB,KAAK,IAAK82B,EAAU,GAEzBthC,EAAG8C,WAAWk/B,GACTx3B,KAAK,QAASu3B,GACdv3B,KAAK,SAAU82B,EAAU,GACzB92B,KAAK,IAAKq3B,EAAUlD,EAAK,GACzBn0B,KAAK,IAAK82B,EAAU,EAGzB,IAAIW,GAASN,EAAK1zB,UAAU,eACvBT,KAAKi0B,EAEVQ,GAAOlsB,QAAQ3N,OAAO,QACjBoC,KAAK,QAAS,UACdA,KAAK,KAAMmtB,GACXntB,KAAK,KAAMmtB,GACXntB,KAAK,KAAM82B,EAAU,GACrB92B,KAAK,KAAgB,EAAV82B,EAAc,GAE9BthC,EAAG8C,WAAWm/B,GACTz3B,KAAK,KAAMm0B,GACXn0B,KAAK,KAAMm0B,GACXn0B,KAAK,KAAM82B,EAAU,GACrB92B,KAAK,KAAgB,EAAV82B,EAAc,EAE9B,IAAI1oB,GAAOnL,EAAEQ,UAAU,UAAUT,MAAM,GACvCoL,GAAK7C,QAAQ3N,OAAO,KAAKoC,KAAK,QAAS,QAElCo3B,GACHhpB,EAAKpO,KAAK,YAAa,eAAiBE,EAAS,KAGnDkO,EAAKxS,KAAKqU,EAAMhI,MAAMksB,MAExB3+B,EAAGq/B,MAAMC,QA1GX,GAAIzmB,GAAS,OACTgpB,GAAU,EACVD,GAAW,EACXd,EAASD,EACTG,EAAUD,EACVG,EAAWD,EACXx2B,EAAQ,IACRC,EAAS,GACT+P,EAAQza,EAAGuO,IAAIqK,MA+InB,OAzCAwoB,GAAOvoB,OAAS,SAASlU,GACvB,MAAKC,WAAUhD,QACfiX,EAASlU,EAAI,GACbk9B,EAAoB,SAAVhpB,GAA+B,UAAVA,EAC/B4B,EAAM5B,QAAQ+oB,EAAqB,OAAV/oB,GAA6B,UAAVA,GAAsB,OAAS,UACpEuoB,GAJuBvoB,GAQhCuoB,EAAON,OAAS,SAASn8B,GACvB,MAAKC,WAAUhD,QACfk/B,EAASn8B,EACFy8B,GAFuBN,GAMhCM,EAAOJ,QAAU,SAASr8B,GACxB,MAAKC,WAAUhD,QACfo/B,EAAUr8B,EACHy8B,GAFuBJ,GAMhCI,EAAOF,SAAW,SAASv8B,GACzB,MAAKC,WAAUhD,QACfs/B,EAAWv8B,EACJy8B,GAFuBF,GAKhCE,EAAO32B,MAAQ,SAAS9F,GACtB,MAAKC,WAAUhD,QACf6I,GAAS9F,EACFy8B,GAFuB32B,GAKhC22B,EAAO12B,OAAS,SAAS/F,GACvB,MAAKC,WAAUhD,QACf8I,GAAU/F,EACHy8B,GAFuB12B,GAKzB1K,EAAGkiC,OAAOd,EAAQ3mB,EAAO,kBA6DlCva,EAAGiiC,YAAc,SAAUr6B,EAAQqG,GAsDjC,QAASi0B,KACP,MAAKx9B,WAAUhD,OAIM,QAAjBygC,GAA4C,SAAjBA,GACrB,GAAIC,EAAgB,GAEJ,UAAjBD,GAA8C,OAAjBA,GAC5BE,EAAcD,EAAgB,KAGhC,GAAIA,EAAgB,GAVnBE,EAvDX,GAAIp4B,GAASlK,EAAG2R,YAAY3R,EAAGiK,eAG3Bs4B,GAAiB1wB,IAAK,EAAGC,MAAO,GAAIC,OAAQ,GAAIC,KAAK,KACrDqwB,EAAe,IAAME,EAAcvwB,KAAOuwB,EAAczwB,MACxDswB,EAAgB,GAAKG,EAAc1wB,IAAO0wB,EAAcxwB,OACxDowB,EAAgB,OAChBG,EAAkBJ,EAAeC,EAoHrC,OAjHAj4B,GAAO+E,UAAY,WACjB,GAAIuzB,GAAU1iC,EAAGohC,SACd32B,MAAM83B,GACN73B,OAAO43B,GACPzpB,OAAOwpB,GAEN9zB,EAAMnE,EAAOG,OAAO0D,UAAU,OAC7BT,KAAKpD,EAAOoD,QACduI,QAAQ3N,OAAO,OACboC,KAAK,QAAS,UACdA,KAAK,QAAS+3B,EAAeE,EAAcvwB,KAAOuwB,EAAczwB,OAChExH,KAAK,SAAU83B,EAAgBG,EAAc1wB,IAAO0wB,EAAcxwB,QACpE7J,OAAO,KACLoC,KAAK,YAAa,aAAei4B,EAAcvwB,KAAO,IAAMuwB,EAAc1wB,IAAM,KAChF3L,KAAKs8B,GAGNpxB,EAAQ/C,EAAInG,OAAO,KAClBwG,MAAM,cAAe,OACrBpE,KAAK,YAAa,aAAeg4B,EAAgB,GAAK,IAAMA,EAAgB,GAAK,IAetF,OAbAlxB,GAAMlJ,OAAO,QACRoC,KAAK,QAAS,SACdqE,KAAK,SAAShL,GACb,MAAOA,GAAEyN,QAGfA,EAAMlJ,OAAO,QACRoC,KAAK,QAAS,YACdA,KAAK,KAAM,OACXqE,KAAK,SAAShL,GACb,MAAOA,GAAE8+B,WAGRv4B,GAGTA,EAAOoF,UAAY,WAEjB,MADAL,aACO/E,GA0BTA,EAAO+2B,YAAc,SAAUx8B,GAC3B,MAAKC,WAAUhD,QAGf2gC,GAAgB59B,EACTyF,GAHIm4B,GAWfn4B,EAAOw4B,aAAe,SAAUj+B,GAC5B,MAAKC,WAAUhD,QAGf0gC,GAAiB39B,EACVyF,GAHIk4B,GAWfl4B,EAAOy4B,aAAe,SAAUl+B,GAC5B,MAAKC,WAAUhD,QAGf6gC,EAAgB99B,EACTyF,GAHIq4B,GAWfr4B,EAAOyO,OAAS,SAAUlU,GACtB,MAAKC,WAAUhD,QAGfygC,EAAgB19B,EAChB69B,EAAkBJ,EAAeC,GAC1Bj4B,GAJIi4B,GAORj4B,EAAO8D,OAAOpG,EAAQqG,IAK/BjO,EAAG4iC,oBAAsB5iC,EAAGghB,YAC5BhhB,EAAG6iC,UAAY7iC,EAAGiK,UAClBjK,EAAG8iC,OAAS9iC,EAAG2f,SACf3f,EAAG+iC,WAAa/iC,EAAGqS,WACnBrS,EAAGgjC,oBAAsBhjC,EAAGyT,oBAC5BzT,EAAGijC,WAAajjC,EAAG2R,YACnB3R,EAAGkjC,eAAiBljC,EAAGud,WAIvBvd,EAAGF,GAAKA,EACRE,EAAGD,YAAcA,EAEVC,EACH,GAAqB,kBAAXmjC,SAAyBA,OAAOC,IACtCD,QAAQ,KAAM,eAAgBtjC,OAC3B,IAAqB,gBAAXwjC,SAAuBA,OAAOC,QAAS,CACpD,GAAIC,GAAMC,QAAQ,MACdC,EAAeD,QAAQ,cAMC,mBAAjBC,KACPA,EAAeA,EAAa1jC,aAEhCsjC,OAAOC,QAAUzjC,EAAI0jC,EAAKE,OAE1Bt+B,MAAKnF,GAAKH,EAAIC,GAAIC"}
<!DOCTYPE html>
<html lang="en">
<head>
<title>dc.js - Bullet Chart Example</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="dc.css"/>
</head>
<script type="text/javascript" src="d3.min.js"></script>
<script type="text/javascript" src="crossfilter.min.js"></script>
<script type="text/javascript" src="dc.min.js"></script>
<style>
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
margin: auto;
padding-top: 40px;
position: relative;
width: 960px;
}
button {
position: absolute;
right: 10px;
top: 10px;
}
.bullet { font: 10px sans-serif; }
.bullet .marker { stroke: #000; stroke-width: 2px; }
.bullet .tick line { stroke: #666; stroke-width: .5px;}
.bullet .range.s0 { fill: #eee; }
.bullet .range.s1 { fill: #ddd; }
.bullet .range.s2 { fill: #ccc; }
.bullet .measure.s0 { fill: lightsteelblue; }
.bullet .measure.s1 { fill: steelblue; }
.bullet .title { font-size: 14px; font-weight: bold; }
.bullet .subtitle { fill: #999; }
.bullet .axis line, .bullet .axis path { opacity: 0.5; }
</style>
<div id="test-horizontal"></div>
<div id="test-vertical"></div>
<script type="text/javascript">
var chart1 = dc.bulletChart("#test-horizontal");
var chart2 = dc.bulletChart("#test-vertical");
var data = [
{"title":"Revenue","subtitle":"US$, in thousands","ranges":[150,225,300],"measures":[220,270],"markers":[250]},
{"title":"Profit","subtitle":"%","ranges":[20,25,30],"measures":[21,23],"markers":[26]},
{"title":"Order Size","subtitle":"US$, average","ranges":[350,500,600],"measures":[100,320],"markers":[550]},
{"title":"New Customers","subtitle":"count","ranges":[1400,2000,2500],"measures":[1000,1650],"markers":[2100]},
{"title":"Satisfaction","subtitle":"out of 5","ranges":[3.5,4.25,5],"measures":[3.2,4.7],"markers":[4.4]}
];
var ndx = crossfilter(data),
titleDimension = ndx.dimension(function(d) {return d.title;}),
statusGroup = {
all: function(){
return data;
}};
// dims from Mike Bostock's bl.ock, http://bl.ocks.org/mbostock/4061961
chart1
.width(960)
.height(450)
.bulletMargin({top: 5, right: 40, bottom: 20, left: 120})
.bulletWidth(960 - 120 - 40)
.bulletHeight(50 - 5 - 20)
.orient("left")
.dimension(titleDimension)
.group(statusGroup);
chart1.render();
// dims from Jason Davies's bl.ock, http://bl.ocks.org/jasondavies/5452290
chart2
.width(185)
.height(450)
.bulletMargin({top: 5, right: 40, bottom: 50, left: 120})
.bulletWidth(185 - 120 - 40)
.bulletHeight(450 - 5 - 50)
.orient("top")
.dimension(titleDimension)
.group(statusGroup);
chart2.render();
</script>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment