!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r(n.d3_hierarchy=n.d3_hierarchy||{})}(this,function(n){"use strict";function r(){for(var n=this,r=[this];n=n.parent;)r.push(n);return r}function e(){var n=[];return this.each(function(r){n.push(r)}),n}function t(n){var r,e,t,u,i=this,o=[i];do for(r=o.reverse(),o=[];null!=(i=r.pop());)if(n(i),e=i.children)for(t=0,u=e.length;u>t;++t)o.push(e[t]);while(o.length);return this}function u(n){for(var r,e,t=this,u=[t],i=[];null!=(t=u.pop());)if(i.push(t),r=t.children)for(e=r.length-1;e>=0;--e)u.push(r[e]);for(;null!=(t=i.pop());)n(t);return this}function i(n){for(var r,e,t=this,u=[t];null!=(t=u.pop());)if(n(t),r=t.children)for(e=r.length-1;e>=0;--e)u.push(r[e]);return this}function o(n){return this.eachBefore(function(r){r.children&&r.children.sort(n)})}function a(n,r){this.data=n,this.index=r}function c(n){return n.id}function f(n){return n.parent}function l(n){return n.value}function h(n,r){return r.value-n.value}function v(n){var r=new Array(n);return function(n){var e=n.index;if(r[e])throw new Error("cycle");n.depth=n.parent?n.parent.depth+1:0,r[e]=1}}function s(){function n(n){var t=r(n),u=t[0],i=-1;return u.eachBefore(v(n.length)),u.eachAfter(e(n)),null!=o&&u.sort(o),u.each(function(n){t[++i]=n}),t.data=n,t}function r(n){var r,e,i,o,c,f,l,h=n.length,v={},s=new Array(h);for(r=0;h>r;++r)if(s[r]=c=new a(e=n[r],r),null!=(i=t(e,r,n))){if(o=J+(c.id=i+=""),o in v)throw new Error("duplicate: "+i);v[o]=c}for(r=0;h>r;++r)if(c=s[r],i=u(e=n[r],r,n),null==i){if(l)throw new Error("multiple roots");l=s[0],s[0]=c,s[r]=l}else{if(f=v[J+i],!f)throw new Error("missing: "+i);c.parent=f,f.children?f.children.push(c):f.children=[c]}if(!l)throw new Error("cycle");return s}function e(n){return function(r){for(var e=+i(r.data,r.index,n)||0,t=r.children,u=t&&t.length;--u>=0;)e+=t[u].value;r.value=e}}var t=c,u=f,i=l,o=h;return n.revalue=function(n){return n[0].eachAfter(e(n.data)),n},n.id=function(r){return arguments.length?(t=r,n):t},n.parentId=function(r){return arguments.length?(u=r,n):u},n.value=function(r){return arguments.length?(i=r,n):i},n.sort=function(r){return arguments.length?(o=r,n):o},n}function d(n,r){return n.revalue=r.revalue,n.id=function(){var e=r.id.apply(r,arguments);return e===r?n:e},n.parentId=function(){var e=r.parentId.apply(r,arguments);return e===r?n:e},n.value=function(){var e=r.value.apply(r,arguments);return e===r?n:e},n.sort=function(){var e=r.sort.apply(r,arguments);return e===r?n:e},n}function x(n){return g(p(n),[])}function p(n){for(var r,e=(n=n.slice()).length,t=null,u=t;e;){var i={circle:n[e-1],next:null};u=u?u.next=i:t=i,n[r]=n[--e]}return{head:t,tail:u}}function y(n,r){var e=r.x-n.x,t=r.y-n.y,u=n.r-r.r;return u*u+1e-6>e*e+t*t}function g(n,r){var e,t,u,i=null,o=n.head;switch(r.length){case 1:e=r[0];break;case 2:e=_(r[0],r[1]);break;case 3:e=m(r[0],r[1],r[2])}for(;o;)u=o.circle,t=o.next,e&&y(e,u)?i=o:(i?(n.tail=i,i.next=null):n.head=n.tail=null,r.push(u),e=g(n,r),r.pop(),n.head?(o.next=n.head,n.head=o):(o.next=null,n.head=n.tail=o),i=n.tail,i.next=t),o=t;return n.tail=i,e}function _(n,r){var e=n.x,t=n.y,u=n.r,i=r.x,o=r.y,a=r.r,c=i-e,f=o-t,l=a-u,h=Math.sqrt(c*c+f*f);return{x:(e+i+c/h*l)/2,y:(t+o+f/h*l)/2,r:(h+u+a)/2}}function m(n,r,e){var t=n.x,u=n.y,i=n.r,o=r.x,a=r.y,c=r.r,f=e.x,l=e.y,h=e.r,v=2*(t-o),s=2*(u-a),d=2*(c-i),x=t*t+u*u-i*i-o*o-a*a+c*c,p=2*(t-f),y=2*(u-l),g=2*(h-i),_=t*t+u*u-i*i-f*f-l*l+h*h,m=p*s-v*y,w=(s*_-y*x)/m-t,M=(y*d-s*g)/m,q=(p*x-v*_)/m-u,B=(v*g-p*d)/m,E=M*M+B*B-1,A=2*(w*M+q*B+i),k=w*w+q*q-i*i,b=(-A-Math.sqrt(A*A-4*E*k))/(2*E);return{x:w+M*b+t,y:q+B*b+u,r:b}}function w(n,r,e){var t=n._,u=r._,i=e._,o=t.x,a=t.y,c=u.r+i.r,f=t.r+i.r,l=u.x-o,h=u.y-a,v=l*l+h*h;if(v){var s=.5+((f*=f)-(c*=c))/(2*v),d=Math.sqrt(Math.max(0,2*c*(f+v)-(f-=v)*f-c*c))/(2*v);i.x=o+s*l+d*h,i.y=a+s*h-d*l}else i.x=o+f,i.y=a;e.score=i.x*i.x+i.y*i.y}function M(n,r){var e=r.x-n.x,t=r.y-n.y,u=n.r+r.r;return u*u>e*e+t*t}function q(n){return{_:n,next:null,previous:null,score:NaN}}function B(n){if(f=n.length){n=n.map(q);var r,e,t,u,i,o,a,c,f;if(r=n[0],r.score=r._.r*r._.r,r._.x=r._.r,r._.y=0,f>1&&(e=n[1],e.score=e._.r*e._.r,e._.x=-e._.r,e._.y=0,f>2)){w(e,r,t=n[2]),r.next=t.previous=e,e.next=r.previous=t,t.next=e.previous=r;n:for(u=3;f>u;++u){if(w(r,e,t=n[u]),(o=r.previous)===(i=e.next)){if(M(i._,t._)){r=e,e=i,--u;continue n}}else{a=i._.r,c=o._.r;do if(c>=a){if(M(i._,t._)){e=i,r.next=e,e.previous=r,--u;continue n}i=i.next,a+=i._.r}else{if(M(o._,t._)){r=o,r.next=e,e.previous=r,--u;continue n}o=o.previous,c+=o._.r}while(i!==o.next)}for(t.previous=r,t.next=e,r.next=e.previous=e=t;(t=t.next)!==e;)t.score0&&n.eachAfter(k(i*n.r/Math.min(t,u))),n.eachBefore(I(Math.min(t,u)/(2*n.r)))}var e=s(),t=1,u=1,i=0;return d(n,e),n.revalue=function(n){return e.revalue(n),r(n[0]),n},n.size=function(r){return arguments.length?(t=+r[0],u=+r[1],n):[t,u]},n.padding=function(r){return arguments.length?(i=+r,n):i},n}function A(n){if(n.children){B(n.children);var r=x(n.children);n.children.forEach(z(-r.x,-r.y)),n.r=r.r}else n.r=Math.sqrt(n.value)}function k(n){var r=b(n),e=b(-n);return function(t){t.children&&(t.children.forEach(r),A(t),t.children.forEach(e),t.r+=n)}}function b(n){return function(r){r.r+=n}}function I(n){return function(r){var e=r.parent;r.r*=n,e&&(r.x=e.x+n*r.x,r.y=e.y+n*r.y)}}function z(n,r){return function(e){e.x+=n,e.y+=r}}function S(n){n.x0=Math.round(n.x0),n.y0=Math.round(n.y0),n.x1=Math.round(n.x1),n.y1=Math.round(n.y1)}function C(n,r,e,t,u){for(var i,o=n.children,a=-1,c=o.length,f=(t-r)/n.value;++ar&&(r=n.depth)}),r}function N(){function n(n){var e=t(n);return r(e[0]),e}function r(n){var r=D(n)+1;n.x0=n.y0=o,n.x1=u,n.y1=i/r,n.eachBefore(e(i,r)),a&&n.eachBefore(S)}function e(n,r){return function(e){e.children&&C(e,e.x0,n*(e.depth+1)/r,e.x1,n*(e.depth+2)/r);var t=e.x0,u=e.y0,i=e.x1-o,a=e.y1-o;t>i&&(t=i=(t+i)/2),u>a&&(u=a=(u+a)/2),e.x0=t,e.y0=u,e.x1=i,e.y1=a}}var t=s(),u=1,i=1,o=0,a=!1;return d(n,t),n.revalue=function(n){return t.revalue(n),r(n[0]),n},n.round=function(r){return arguments.length?(a=!!r,n):a},n.size=function(r){return arguments.length?(u=+r[0],i=+r[1],n):[u,i]},n.padding=function(r){return arguments.length?(o=+r,n):o},n}function j(){function n(n){var e=t(n);return r(e[0]),e}function r(n){n.x0=n.y0=-o,n.x1=u+o,n.y1=i+o,n.eachBefore(e),l&&n.eachBefore(S)}function e(n){var r=n.x0+o,e=n.y0+o,t=n.x1-o,u=n.y1-o;r>t&&(r=t=(r+t)/2),e>u&&(e=u=(e+u)/2),n.x0=r,n.y0=e,n.x1=t,n.y1=u,n.children&&(r+=c,e+=c,t-=c,u-=c,r>t&&(r=t=(r+t)/2),e>u&&(e=u=(e+u)/2),f(n,r,e,t,u))}var t=s(),u=1,i=1,o=0,a=0,c=0,f=K,l=!1;return d(n,t),n.revalue=function(n){return t.revalue(n),r(n[0]),n},n.round=function(r){return arguments.length?(l=!!r,n):l},n.size=function(r){return arguments.length?(u=+r[0],i=+r[1],n):[u,i]},n.tile=function(r){return arguments.length?(f=r,n):f},n.padding=function(r){return arguments.length?(o=(a=+r)/2,c=o,n):2*o},n.paddingInner=function(r){return arguments.length?(o=r/2,c=a-o,n):2*o},n.paddingOuter=function(r){return arguments.length?(a=+r,c=a-o,n):a},n}function O(n,r,e,t,u){var i=n.children;$(i,0,i.length,n.value,r,e,t,u)}function $(n,r,e,t,u,i,o,a){if(r>=e-1)return n=n[r],n.x0=u,n.y0=i,n.x1=o,n.y1=a,void 0;var c=r,f=t/2,l=0;do l+=n[c].value;while(++cl);var h=t-l;if(a-i>o-u){var v=(i*h+a*l)/t;$(n,r,c,l,u,i,o,v),$(n,c,e,h,u,v,o,a)}else{var s=(u*h+o*l)/t;$(n,r,c,l,u,i,s,a),$(n,c,e,h,s,i,o,a)}}function F(n,r,e,t,u){for(var i,o=n.children,a=-1,c=o.length,f=(u-e)/n.value;++aw;){if(h=u-e,v=i-t,s=(o=m[w]).value,o._squarify)for(c=w+1;cc;++c){if(s+=a=m[c].value,d>a&&(d=a),a>x&&(x=a),y=s*s*p,g=Math.max(x/y,y/d),g>_){s-=a;break}_=g}o._squarify=v>h?c:-c}if(o._squarify>0){for(f=e,l=t+v*s/q,h/=s;c>w;++w)o=m[w],o.x0=f,o.y0=t,o.y1=l,o.x1=f+=o.value*h;t=l}else{for(l=t,f=e+h*s/q,v/=s;c>w;++w)o=m[w],o.y0=l,o.x0=e,o.x1=f,o.y1=l+=o.value*v;e=f}q-=s}}return r.ratio=function(n){return L((n=+n)>1?n:1)},r}((1+Math.sqrt(5))/2);n.version=H,n.hierarchy=s,n.pack=E,n.packCircles=B,n.packEnclosingCircle=x,n.partition=N,n.treemap=j,n.treemapBinary=O,n.treemapDice=C,n.treemapSlice=F,n.treemapSliceDice=G,n.treemapSquarify=K});