RGB-HSL and HSL-RGB conversion. New categorical colors.

This commit is contained in:
Michael Bostock 2010-11-16 00:05:22 -08:00
Родитель 7cb9d581b2
Коммит 35ec68a74e
10 изменённых файлов: 360 добавлений и 181 удалений

18
d3.geom.min.js поставляемый
Просмотреть файл

@ -1,11 +1,11 @@
(function(){var r=null;d3.geom={};d3.geom.polygon=function(j){j.area=function(){for(var k=0,e=j.length,a=j[e-1][0]*j[0][1],g=j[e-1][1]*j[0][0];++k<e;){a+=j[k-1][0]*j[k][1];g+=j[k-1][1]*j[k][0]}return(g-a)*0.5};j.clip=function(k){for(var e,a=-1,g=j.length,i,l,n=j[g-1],h,o,p;++a<g;){e=k.slice();k.length=0;h=j[a];o=e[(l=e.length)-1];for(i=-1;++i<l;){p=e[i];if(A(p,n,h)){A(o,n,h)||k.push(B(o,p,n,h));k.push(p)}else A(o,n,h)&&k.push(B(o,p,n,h));o=p}n=h}return k};return j};
function A(j,k,e){return(e[0]-k[0])*(j[1]-k[1])<(e[1]-k[1])*(j[0]-k[0])}function B(j,k,e,a){var g=j[0],i=e[0];j=j[1];var l=e[1];e=k[0]-g;var n=a[0]-i;k=k[1]-j;a=a[1]-l;i=(n*(j-l)-a*(g-i))/(a*e-n*k);return[g+i*e,j+i*k]}
d3.geom.voronoi=function(j){var k=j.map(function(){return[]});C(j,function(e){var a,g,i,l;if(e.d==1&&e.a>=0){a=e.m.r;g=e.m.l}else{a=e.m.l;g=e.m.r}if(e.d==1){i=a?a.y:-1E6;a=e.b-e.a*i;l=g?g.y:1E6;g=e.b-e.a*l}else{a=a?a.x:-1E6;i=e.b-e.d*a;g=g?g.x:1E6;l=e.b-e.d*g}a=[a,i];g=[g,l];k[e.region.l.index].push(a,g);k[e.region.r.index].push(a,g)});return k.map(function(e,a){var g=j[a][0],i=j[a][1];e.forEach(function(l){l.j=Math.atan2(l[0]-g,l[1]-i)});return e.sort(function(l,n){return l.j-n.j}).filter(function(l,
n){return!n||l.j-e[n-1].j>1.0E-10})})};var D={l:"r",r:"l"};
function C(j,k){var e={c:j.map(function(b,d){return{index:d,x:b[0],y:b[1]}}).sort(function(b,d){return b.y<d.y?-1:b.y>d.y?1:b.x<d.x?-1:b.x>d.x?1:0}),v:r},a={c:[],n:r,o:r,C:function(){a.n=a.p(r,"l");a.o=a.p(r,"l");a.n.r=a.o;a.o.l=a.n;a.c.unshift(a.n,a.o)},p:function(b,d){return{g:b,h:d,u:r,l:r,r:r}},i:function(b,d){d.l=b;d.r=b.r;b.r.l=d;b.r=d},D:function(b){var d=a.n;do d=d.r;while(d!=a.o&&g.G(d,b));return d=d.l},k:function(b){b.l.r=b.r;b.r.l=b.l;b.g=r},right:function(b){return b.r},left:function(b){return b.l},
F:function(b){return b.g==r?e.v:b.g.region[b.h]},A:function(b){return b.g==r?e.v:b.g.region[D[b.h]]}},g={z:function(b,d){var c={region:{l:b,r:d},m:{l:r,r:r}},f=d.x-b.x,m=d.y-b.y,t=f>0?f:-f,s=m>0?m:-m;c.b=b.x*f+b.y*m+(f*f+m*m)*0.5;if(t>s){c.d=1;c.a=m/f;c.b/=f}else{c.a=1;c.d=f/m;c.b/=m}return c},t:function(b,d){var c=b.g,f=d.g;if(!c||!f||c.region.r==f.region.r)return r;var m=c.d*f.a-c.a*f.d;if(Math.abs(m)<1.0E-10)return r;var t=(c.b*f.a-f.b*c.a)/m;m=(f.b*c.d-c.b*f.d)/m;var s=c.region.r,x=f.region.r;
if(s.y<x.y||s.y==x.y&&s.x<x.x){s=b;c=c}else{s=d;c=f}if((c=t>=c.region.r.x)&&s.h=="l"||!c&&s.h=="r")return r;return{x:t,y:m}},G:function(b,d){var c=b.g,f=c.region.r,m=d.x>f.x;if(m&&b.h=="l")return 1;if(!m&&b.h=="r")return 0;if(c.d==1){var t=d.y-f.y,s=d.x-f.x,x=0,v=0;if(!m&&c.a<0||m&&c.a>=0)v=x=t>=c.a*s;else{v=d.x+d.y*c.a>c.b;if(c.a<0)v=!v;v||(x=1)}if(!x){f=f.x-c.region.l.x;v=c.a*(s*s-t*t)<f*t*(1+2*s/f+c.a*c.a);if(c.a<0)v=!v}}else{s=c.b-c.d*d.x;c=d.y-s;t=d.x-f.x;f=s-f.y;v=c*c>t*t+f*f}return b.h=="l"?
v:!v},w:function(b,d,c){b.m[d]=c;b.m[D[d]]&&k(b)},s:function(b,d){var c=b.x-d.x,f=b.y-d.y;return Math.sqrt(c*c+f*f)}},i={c:[],i:function(b,d,c){b.u=d;b.q=d.y+c;c=0;for(var f=i.c,m=f.length;c<m;c++){var t=f[c];if(!(b.q>t.q||b.q==t.q&&d.x>t.u.x))break}f.splice(c,0,b)},k:function(b){for(var d=0,c=i.c,f=c.length;d<f&&c[d]!=b;++d);c.splice(d,1)},empty:function(){return i.c.length==0},H:function(b){for(var d=0,c=i.c,f=c.length;d<f;++d)if(c[d]==b)return c[d+1];return r},min:function(){var b=i.c[0];return{x:b.u.x,
y:b.q}},B:function(){return i.c.shift()}};a.C();e.v=e.c.shift();for(var l=e.c.shift(),n,h,o,p,z,q,w,u,y;;){i.empty()||(n=i.min());if(l&&(i.empty()||l.y<n.y||l.y==n.y&&l.x<n.x)){h=a.D(l);o=a.right(h);w=a.A(h);y=g.z(w,l);q=a.p(y,"l");a.i(h,q);if(u=g.t(h,q)){i.k(h);i.i(h,u,g.s(u,l))}h=q;q=a.p(y,"r");a.i(h,q);(u=g.t(q,o))&&i.i(q,u,g.s(u,l));l=e.c.shift()}else if(i.empty())break;else{h=i.B();p=a.left(h);o=a.right(h);z=a.right(o);w=a.F(h);q=a.A(o);u=h.u;g.w(h.g,h.h,u);g.w(o.g,o.h,u);a.k(h);i.k(o);a.k(o);
h="l";if(w.y>q.y){h=w;w=q;q=h;h="r"}y=g.z(w,q);q=a.p(y,h);a.i(p,q);g.w(y,D[h],u);if(u=g.t(p,q)){i.k(p);i.i(p,u,g.s(u,w))}(u=g.t(q,z))&&i.i(q,u,g.s(u,w))}}for(h=a.right(a.n);h!=a.o;h=a.right(h))k(h.g)}
d3.geom.delaunay=function(j){var k=j.map(function(){return[]}),e=[];C(j,function(a){k[a.region.l.index].push(j[a.region.r.index])});k.forEach(function(a,g){var i=j[g],l=i[0],n=i[1];a.forEach(function(p){p.j=Math.atan2(p[0]-l,p[1]-n)});a.sort(function(p,z){return p.j-z.j});for(var h=0,o=a.length-1;h<o;h++)e.push([i,a[h],a[h+1]])});return e};})()
d3.geom.voronoi=function(j){var k=j.map(function(){return[]});C(j,function(e){var a,g,i,l;if(e.d==1&&e.b>=0){a=e.o.r;g=e.o.l}else{a=e.o.l;g=e.o.r}if(e.d==1){i=a?a.y:-1E6;a=e.a-e.b*i;l=g?g.y:1E6;g=e.a-e.b*l}else{a=a?a.x:-1E6;i=e.a-e.d*a;g=g?g.x:1E6;l=e.a-e.d*g}a=[a,i];g=[g,l];k[e.region.l.index].push(a,g);k[e.region.r.index].push(a,g)});return k.map(function(e,a){var g=j[a][0],i=j[a][1];e.forEach(function(l){l.m=Math.atan2(l[0]-g,l[1]-i)});return e.sort(function(l,n){return l.m-n.m}).filter(function(l,
n){return!n||l.m-e[n-1].m>1.0E-10})})};var D={l:"r",r:"l"};
function C(j,k){var e={c:j.map(function(b,d){return{index:d,x:b[0],y:b[1]}}).sort(function(b,d){return b.y<d.y?-1:b.y>d.y?1:b.x<d.x?-1:b.x>d.x?1:0}),A:r},a={c:[],p:r,q:r,G:function(){a.p=a.t(r,"l");a.q=a.t(r,"l");a.p.r=a.q;a.q.l=a.p;a.c.unshift(a.p,a.q)},t:function(b,d){return{i:b,j:d,z:r,l:r,r:r}},k:function(b,d){d.l=b;d.r=b.r;b.r.l=d;b.r=d},H:function(b){var d=a.p;do d=d.r;while(d!=a.q&&g.J(d,b));return d=d.l},n:function(b){b.l.r=b.r;b.r.l=b.l;b.i=r},right:function(b){return b.r},left:function(b){return b.l},
I:function(b){return b.i==r?e.A:b.i.region[b.j]},D:function(b){return b.i==r?e.A:b.i.region[D[b.j]]}},g={C:function(b,d){var c={region:{l:b,r:d},o:{l:r,r:r}},f=d.x-b.x,m=d.y-b.y,t=f>0?f:-f,s=m>0?m:-m;c.a=b.x*f+b.y*m+(f*f+m*m)*0.5;if(t>s){c.d=1;c.b=m/f;c.a/=f}else{c.b=1;c.d=f/m;c.a/=m}return c},w:function(b,d){var c=b.i,f=d.i;if(!c||!f||c.region.r==f.region.r)return r;var m=c.d*f.b-c.b*f.d;if(Math.abs(m)<1.0E-10)return r;var t=(c.a*f.b-f.a*c.b)/m;m=(f.a*c.d-c.a*f.d)/m;var s=c.region.r,x=f.region.r;
if(s.y<x.y||s.y==x.y&&s.x<x.x){s=b;c=c}else{s=d;c=f}if((c=t>=c.region.r.x)&&s.j=="l"||!c&&s.j=="r")return r;return{x:t,y:m}},J:function(b,d){var c=b.i,f=c.region.r,m=d.x>f.x;if(m&&b.j=="l")return 1;if(!m&&b.j=="r")return 0;if(c.d==1){var t=d.y-f.y,s=d.x-f.x,x=0,v=0;if(!m&&c.b<0||m&&c.b>=0)v=x=t>=c.b*s;else{v=d.x+d.y*c.b>c.a;if(c.b<0)v=!v;v||(x=1)}if(!x){f=f.x-c.region.l.x;v=c.b*(s*s-t*t)<f*t*(1+2*s/f+c.b*c.b);if(c.b<0)v=!v}}else{s=c.a-c.d*d.x;c=d.y-s;t=d.x-f.x;f=s-f.y;v=c*c>t*t+f*f}return b.j=="l"?
v:!v},B:function(b,d,c){b.o[d]=c;b.o[D[d]]&&k(b)},v:function(b,d){var c=b.x-d.x,f=b.y-d.y;return Math.sqrt(c*c+f*f)}},i={c:[],k:function(b,d,c){b.z=d;b.u=d.y+c;c=0;for(var f=i.c,m=f.length;c<m;c++){var t=f[c];if(!(b.u>t.u||b.u==t.u&&d.x>t.z.x))break}f.splice(c,0,b)},n:function(b){for(var d=0,c=i.c,f=c.length;d<f&&c[d]!=b;++d);c.splice(d,1)},empty:function(){return i.c.length==0},K:function(b){for(var d=0,c=i.c,f=c.length;d<f;++d)if(c[d]==b)return c[d+1];return r},min:function(){var b=i.c[0];return{x:b.z.x,
y:b.u}},F:function(){return i.c.shift()}};a.G();e.A=e.c.shift();for(var l=e.c.shift(),n,h,o,p,z,q,w,u,y;;){i.empty()||(n=i.min());if(l&&(i.empty()||l.y<n.y||l.y==n.y&&l.x<n.x)){h=a.H(l);o=a.right(h);w=a.D(h);y=g.C(w,l);q=a.t(y,"l");a.k(h,q);if(u=g.w(h,q)){i.n(h);i.k(h,u,g.v(u,l))}h=q;q=a.t(y,"r");a.k(h,q);(u=g.w(q,o))&&i.k(q,u,g.v(u,l));l=e.c.shift()}else if(i.empty())break;else{h=i.F();p=a.left(h);o=a.right(h);z=a.right(o);w=a.I(h);q=a.D(o);u=h.z;g.B(h.i,h.j,u);g.B(o.i,o.j,u);a.n(h);i.n(o);a.n(o);
h="l";if(w.y>q.y){h=w;w=q;q=h;h="r"}y=g.C(w,q);q=a.t(y,h);a.k(p,q);g.B(y,D[h],u);if(u=g.w(p,q)){i.n(p);i.k(p,u,g.v(u,w))}(u=g.w(q,z))&&i.k(q,u,g.v(u,w))}}for(h=a.right(a.p);h!=a.q;h=a.right(h))k(h.i)}
d3.geom.delaunay=function(j){var k=j.map(function(){return[]}),e=[];C(j,function(a){k[a.region.l.index].push(j[a.region.r.index])});k.forEach(function(a,g){var i=j[g],l=i[0],n=i[1];a.forEach(function(p){p.m=Math.atan2(p[0]-l,p[1]-n)});a.sort(function(p,z){return p.m-z.m});for(var h=0,o=a.length-1;h<o;h++)e.push([i,a[h],a[h+1]])});return e};})()

206
d3.js поставляемый
Просмотреть файл

@ -1,4 +1,4 @@
d3 = {version: "0.18.0"}; // semver
d3 = {version: "0.19.0"}; // semver
if (!Date.now) Date.now = function() {
return +new Date();
};
@ -364,8 +364,8 @@ d3.interpolateString = function(a, b) {
};
d3.interpolateRgb = function(a, b) {
a = d3_rgb(a);
b = d3_rgb(b);
a = d3.rgb(a);
b = d3.rgb(b);
var ar = a.r,
ag = a.g,
ab = a.b,
@ -427,7 +427,30 @@ function d3_interpolateByName(n) {
? d3.interpolateRgb
: d3.interpolate;
}
function d3_rgb(format) {
/**
* @param {number=} g
* @param {number=} b
*/
d3.rgb = function(r, g, b) {
return arguments.length == 1
? d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb)
: d3_rgb(~~r, ~~g, ~~b);
};
function d3_rgb(r, g, b) {
return {r: r, g: g, b: b, toString: d3_rgb_format};
}
/** @this d3_rgb */
function d3_rgb_format() {
return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
}
function d3_rgb_hex(v) {
return v < 0x10 ? "0" + v.toString(16) : v.toString(16);
}
function d3_rgb_parse(format, rgb, hsl) {
var r, // red channel; int in [0, 255]
g, // green channel; int in [0, 255]
b, // blue channel; int in [0, 255]
@ -441,26 +464,27 @@ function d3_rgb(format) {
m2 = m1[2].split(",");
switch (m1[1]) {
case "hsl": {
return d3_rgb_hsl(
return hsl(
parseFloat(m2[0]), // degrees
parseFloat(m2[1]) / 100, // percentage
parseFloat(m2[2]) / 100); // percentage
parseFloat(m2[2]) / 100 // percentage
);
}
case "rgb": {
return {
r: d3_rgb_parse(m2[0]),
g: d3_rgb_parse(m2[1]),
b: d3_rgb_parse(m2[2])
};
return rgb(
d3_rgb_parseNumber(m2[0]),
d3_rgb_parseNumber(m2[1]),
d3_rgb_parseNumber(m2[2])
);
}
}
}
/* Named colors. */
if (name = d3_rgb_names[format]) return name;
if (name = d3_rgb_names[format]) return rgb(name.r, name.g, name.b);
/* Null or undefined. */
if (format == null) return d3_rgb_names.black;
if (format == null) return rgb(0, 0, 0);
/* Hexadecimal colors: #rgb and #rrggbb. */
if (format.charAt(0) == "#") {
@ -478,39 +502,29 @@ function d3_rgb(format) {
b = parseInt(b, 16);
}
return {r: r, g: g, b: b};
};
function d3_rgb_hsl(h, s, l) {
var m1,
m2;
/* Some simple corrections for h, s and l. */
h = h % 360; if (h < 0) h += 360;
s = s < 0 ? 0 : s > 1 ? 1 : s;
l = l < 0 ? 0 : l > 1 ? 1 : l;
/* From FvD 13.37, CSS Color Module Level 3 */
m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
m1 = 2 * l - m2;
function v(h) {
if (h > 360) h -= 360;
else if (h < 0) h += 360;
if (h < 60) return m1 + (m2 - m1) * h / 60;
if (h < 180) return m2;
if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
return m1;
}
function vv(h) {
return Math.round(v(h) * 255);
}
return {r: vv(h + 120), g: vv(h), b: vv(h - 120)};
return rgb(r, g, b);
}
function d3_rgb_parse(c) { // either integer or percentage
function d3_rgb_hsl(r, g, b) {
var min = Math.min(r /= 255, g /= 255, b /= 255),
max = Math.max(r, g, b),
d = max - min,
h,
s,
l = (max + min) / 2;
if (d) {
s = l < .5 ? d / (max + min) : d / (2 - max - min);
if (r == max) h = (g - b) / d + (g < b ? 6 : 0);
else if (g == max) h = (b - r) / d + 2;
else h = (r - g) / d + 4;
h *= 60;
} else {
s = h = 0;
}
return d3_hsl(h, s, l);
}
function d3_rgb_parseNumber(c) { // either integer or percentage
var f = parseFloat(c);
return c.charAt(c.length - 1) == "%" ? Math.round(f * 2.55) : f;
}
@ -666,12 +680,58 @@ var d3_rgb_names = {
};
for (var d3_rgb_name in d3_rgb_names) {
d3_rgb_names[d3_rgb_name] = d3_rgb(d3_rgb_names[d3_rgb_name]);
d3_rgb_names[d3_rgb_name] = d3_rgb_parse(
d3_rgb_names[d3_rgb_name],
d3_rgb,
d3_hsl_rgb);
}
/**
* @param {number=} s
* @param {number=} l
*/
d3.hsl = function(h, s, l) {
var c = d3_rgb_hsl(h, s, l);
return "rgb(" + c.r + "," + c.g + "," + c.b + ")";
return arguments.length == 1
? d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl)
: d3_hsl(+h, +s, +l);
};
function d3_hsl(h, s, l) {
return {h: h, s: s, l: l, toString: d3_hsl_format};
}
/** @this d3_hsl */
function d3_hsl_format() {
return "hsl(" + this.h + "," + this.s * 100 + "%," + this.l * 100 + "%)";
}
function d3_hsl_rgb(h, s, l) {
var m1,
m2;
/* Some simple corrections for h, s and l. */
h = h % 360; if (h < 0) h += 360;
s = s < 0 ? 0 : s > 1 ? 1 : s;
l = l < 0 ? 0 : l > 1 ? 1 : l;
/* From FvD 13.37, CSS Color Module Level 3 */
m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
m1 = 2 * l - m2;
function v(h) {
if (h > 360) h -= 360;
else if (h < 0) h += 360;
if (h < 60) return m1 + (m2 - m1) * h / 60;
if (h < 180) return m2;
if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
return m1;
}
function vv(h) {
return Math.round(v(h) * 255);
}
return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
}
var d3_root = d3_selection([[document]]);
d3_root[0].parentNode = document.documentElement;
@ -1678,35 +1738,59 @@ d3.scale.ordinal = function() {
return scale;
};
/*
* This product includes color specifications and designs developed by Cynthia
* Brewer (http://colorbrewer.org/). See lib/colorbrewer for more information.
*/
d3.scale.category10 = function() {
return d3.scale.ordinal().range(d3_category10);
};
d3.scale.category19 = function() {
return d3.scale.ordinal().range(d3_category19);
};
d3.scale.category20 = function() {
return d3.scale.ordinal().range(d3_category20);
};
d3.scale.category20b = function() {
return d3.scale.ordinal().range(d3_category20b);
};
d3.scale.category20c = function() {
return d3.scale.ordinal().range(d3_category20c);
};
var d3_category10 = [
"#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd",
"#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"
];
var d3_category19 = [
"#9c9ede", "#7375b5", "#4a5584", "#cedb9c", "#b5cf6b",
"#8ca252", "#637939", "#e7cb94", "#e7ba52", "#bd9e39",
"#8c6d31", "#e7969c", "#d6616b", "#ad494a", "#843c39",
"#de9ed6", "#ce6dbd", "#a55194", "#7b4173"
var d3_category20 = [
"#1f77b4", "#aec7e8",
"#ff7f0e", "#ffbb78",
"#2ca02c", "#98df8a",
"#d62728", "#ff9896",
"#9467bd", "#c5b0d5",
"#8c564b", "#c49c94",
"#e377c2", "#f7b6d2",
"#7f7f7f", "#c7c7c7",
"#bcbd22", "#dbdb8d",
"#17becf", "#9edae5"
];
var d3_category20 = [
"#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c",
"#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5",
"#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f",
"#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5"
var d3_category20b = [
"#393b79", "#5254a3", "#6b6ecf", "#9c9ede",
"#637939", "#8ca252", "#b5cf6b", "#cedb9c",
"#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94",
"#843c39", "#ad494a", "#d6616b", "#e7969c",
"#7b4173", "#a55194", "#ce6dbd", "#de9ed6"
];
var d3_category20c = [
"#3182bd", "#6baed6", "#9ecae1", "#c6dbef",
"#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2",
"#31a354", "#74c476", "#a1d99b", "#c7e9c0",
"#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb",
"#636363", "#969696", "#bdbdbd", "#d9d9d9"
];
d3.svg = {};
d3.svg.arc = function() {

92
d3.min.js поставляемый
Просмотреть файл

@ -1,53 +1,55 @@
(function(){var o=null;d3={version:"0.18.0"};if(!Date.now)Date.now=function(){return+new Date};if(!Object.create)Object.create=function(a){function d(){}d.prototype=a;return new d};function w(a){return Array.prototype.slice.call(a)}function C(a,d){d=w(arguments);d[0]=this;a.apply(this,d);return this}d3.range=function(a,d,e){if(arguments.length==1){d=a;a=0}if(e==o)e=1;if((d-a)/e==Infinity)throw Error("infinite range");var f=[],c=-1,b;if(e<0)for(;(b=a+e*++c)>d;)f.push(b);else for(;(b=a+e*++c)<d;)f.push(b);return f};
(function(){var o=null;d3={version:"0.19.0"};if(!Date.now)Date.now=function(){return+new Date};if(!Object.create)Object.create=function(a){function d(){}d.prototype=a;return new d};function w(a){return Array.prototype.slice.call(a)}function D(a,d){d=w(arguments);d[0]=this;a.apply(this,d);return this}d3.range=function(a,d,e){if(arguments.length==1){d=a;a=0}if(e==o)e=1;if((d-a)/e==Infinity)throw Error("infinite range");var f=[],b=-1,c;if(e<0)for(;(c=a+e*++b)>d;)f.push(c);else for(;(c=a+e*++b)<d;)f.push(c);return f};
d3.text=function(a,d,e){var f=new XMLHttpRequest;if(arguments.length==3)f.overrideMimeType(d);else e=d;f.open("GET",a,true);f.onreadystatechange=function(){if(f.readyState==4)e(f.status<300&&f.responseText?f.responseText:o)};f.send(o)};d3.json=function(a,d){return d3.text(a,"application/json",function(e){d(e&&JSON.parse(e))})};
d3.ns={prefix:{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/"},qualify:function(a){var d=a.indexOf(":");return d<0?a:{space:d3.ns.prefix[a.substring(0,d)],local:a.substring(d+1)}}};d3.dispatch=function(){for(var a={},d,e=0,f=arguments.length;e<f;e++){d=arguments[e];a[d]=E(d)}return a};
function E(){var a={},d=[];a.add=function(e){for(var f=0;f<d.length;f++)if(d[f].h==e)return a;d.push({h:e,on:true});return a};a.remove=function(e){for(var f=0;f<d.length;f++){var c=d[f];if(c.h==e){c.on=false;d=d.slice(0,f).concat(d.slice(f+1));break}}return a};a.dispatch=function(){for(var e=d,f=0,c=e.length;f<c;f++){var b=e[f];b.on&&b.h.apply(this,arguments)}};return a}
d3.format=function(a){a=F.exec(a);var d=a[1]||" ",e=a[5],f=+a[6],c=a[7],b=a[8],h=a[9];if(b)b=b.substring(1);if(e)d="0";if(h=="d")b="0";return function(g){if(h=="d"&&g%1)return"";if(b)g=(+g).toFixed(b);else g+="";if(c){for(var i=g.lastIndexOf("."),j=i>=0?g.substring(i):(i=g.length,""),m=[];i>0;)m.push(g.substring(i-=3,i+3));g=m.reverse().join(",")+j}i=g.length;if(i<f)g=Array(f-i+1).join(d)+g;return g}};
var F=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,H=G(2),I=G(3),ga={linear:function(){return J},poly:G,quad:function(){return H},cubic:function(){return I},sin:function(){return aa},exp:function(){return ba},circle:function(){return ca},elastic:da,back:ea,bounce:function(){return fa}},ha={"in":function(a){return a},out:K,"in-out":L,"out-in":function(a){return L(K(a))}};
d3.ease=function(a){var d=a.indexOf("-");return ha[d>=0?a.substring(d+1):"in"](ga[d>=0?a.substring(0,d):a].apply(o,Array.prototype.slice.call(arguments,1)))};function K(a){return function(d){return 1-a(1-d)}}function L(a){return function(d){return 0.5*(d<0.5?a(2*d):2-a(2-2*d))}}function J(a){return a}function G(a){return function(d){return Math.pow(d,a)}}function aa(a){return 1-Math.cos(a*Math.PI/2)}function ba(a){return a?Math.pow(2,10*(a-1))-0.0010:0}function ca(a){return 1-Math.sqrt(1-a*a)}
function da(a,d){var e;if(arguments.length<2)d=0.45;if(arguments.length<1){a=1;e=d/4}else e=d/(2*Math.PI)*Math.asin(1/a);return function(f){return 1+a*Math.pow(2,10*-f)*Math.sin((f-e)*2*Math.PI/d)}}function ea(a){a||(a=1.70158);return function(d){return d*d*((a+1)*d-a)}}function fa(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+0.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+0.9375:7.5625*(a-=2.625/2.75)*a+0.984375}d3.event=o;
d3.interpolate=function(a,d){if(typeof d=="number")return d3.interpolateNumber(+a,d);if(typeof d=="string")return d in M||/^(#|rgb\(|hsl\()/.test(d)?d3.interpolateRgb(String(a),d):d3.interpolateString(String(a),d);if(d instanceof Array)return d3.interpolateArray(a,d);return d3.interpolateObject(a,d)};d3.interpolateNumber=function(a,d){d-=a;return function(e){return a+d*e}};
d3.interpolateString=function(a,d){var e,f,c=0,b=[],h=[],g,i;for(f=0;e=N.exec(d);++f){e.index&&b.push(d.substring(c,e.index));h.push({a:b.length,x:e[0]});b.push(o);c=N.lastIndex}c<d.length&&b.push(d.substring(c));f=0;for(g=h.length;(e=N.exec(a))&&f<g;++f){i=h[f];if(i.x==e[0]){if(i.a)if(b[i.a+1]==o){b[i.a-1]+=i.x;b.splice(i.a,1);for(e=f+1;e<g;++e)h[e].a--}else{b[i.a-1]+=i.x+b[i.a+1];b.splice(i.a,2);for(e=f+1;e<g;++e)h[e].a-=2}else if(b[i.a+1]==o)b[i.a]=i.x;else{b[i.a]=i.x+b[i.a+1];b.splice(i.a+1,1);
for(e=f+1;e<g;++e)h[e].a--}h.splice(f,1);g--;f--}else i.x=d3.interpolateNumber(parseFloat(e[0]),parseFloat(i.x))}for(;f<g;){i=h.pop();if(b[i.a+1]==o)b[i.a]=i.x;else{b[i.a]=i.x+b[i.a+1];b.splice(i.a+1,1)}g--}if(b.length==1)return b[0]==o?h[0].x:function(){return d};return function(j){for(f=0;f<g;++f)b[(i=h[f]).a]=i.x(j);return b.join("")}};
d3.interpolateRgb=function(a,d){a=O(a);d=O(d);var e=a.d,f=a.c,c=a.b,b=d.d-e,h=d.c-f,g=d.b-c;return function(i){return"rgb("+Math.round(e+b*i)+","+Math.round(f+h*i)+","+Math.round(c+g*i)+")"}};d3.interpolateArray=function(a,d){var e=[],f=[],c=a.length,b=d.length,h=Math.min(a.length,d.length),g;for(g=0;g<h;++g)e.push(d3.interpolate(a[g],d[g]));for(;g<c;++g)f[g]=a[g];for(;g<b;++g)f[g]=d[g];return function(i){for(g=0;g<h;++g)f[g]=e[g](i);return f}};
d3.interpolateObject=function(a,d){var e={},f={},c;for(c in a)if(c in d)e[c]=(c in ia||/\bcolor\b/.test(c)?d3.interpolateRgb:d3.interpolate)(a[c],d[c]);else f[c]=a[c];for(c in d)c in a||(f[c]=d[c]);return function(b){for(c in e)f[c]=e[c](b);return f}};var N=/[-+]?(?:\d+\.\d+|\d+\.|\.\d+|\d+)(?:[eE][-]?\d+)?/g,ia={background:1,fill:1,stroke:1};
function O(a){var d,e,f,c,b;if(c=/([a-z]+)\((.*)\)/i.exec(a)){b=c[2].split(",");switch(c[1]){case "hsl":return P(parseFloat(b[0]),parseFloat(b[1])/100,parseFloat(b[2])/100);case "rgb":return{d:Q(b[0]),c:Q(b[1]),b:Q(b[2])}}}if(c=M[a])return c;if(a==o)return M.n;if(a.charAt(0)=="#"){if(a.length==4){d=a.charAt(1);d+=d;e=a.charAt(2);e+=e;f=a.charAt(3);f+=f}else if(a.length==7){d=a.substring(1,3);e=a.substring(3,5);f=a.substring(5,7)}d=parseInt(d,16);e=parseInt(e,16);f=parseInt(f,16)}return{d:d,c:e,b:f}}
function P(a,d,e){function f(h){if(h>360)h-=360;else if(h<0)h+=360;if(h<60)return c+(b-c)*h/60;if(h<180)return b;if(h<240)return c+(b-c)*(240-h)/60;return c}var c,b;a%=360;if(a<0)a+=360;d=d<0?0:d>1?1:d;e=e<0?0:e>1?1:e;b=e<=0.5?e*(1+d):e+d-e*d;c=2*e-b;return{d:Math.round(f(a+120)*255),c:Math.round(f(a)*255),b:Math.round(f(a-120)*255)}}function Q(a){var d=parseFloat(a);return a.charAt(a.length-1)=="%"?Math.round(d*2.55):d}
var M={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",
function E(){var a={},d=[];a.add=function(e){for(var f=0;f<d.length;f++)if(d[f].d==e)return a;d.push({d:e,on:true});return a};a.remove=function(e){for(var f=0;f<d.length;f++){var b=d[f];if(b.d==e){b.on=false;d=d.slice(0,f).concat(d.slice(f+1));break}}return a};a.dispatch=function(){for(var e=d,f=0,b=e.length;f<b;f++){var c=e[f];c.on&&c.d.apply(this,arguments)}};return a}
d3.format=function(a){a=F.exec(a);var d=a[1]||" ",e=a[5],f=+a[6],b=a[7],c=a[8],h=a[9];if(c)c=c.substring(1);if(e)d="0";if(h=="d")c="0";return function(g){if(h=="d"&&g%1)return"";if(c)g=(+g).toFixed(c);else g+="";if(b){for(var i=g.lastIndexOf("."),j=i>=0?g.substring(i):(i=g.length,""),m=[];i>0;)m.push(g.substring(i-=3,i+3));g=m.reverse().join(",")+j}i=g.length;if(i<f)g=Array(f-i+1).join(d)+g;return g}};
var F=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,aa=G(2),ba=G(3),ja={linear:function(){return ca},poly:G,quad:function(){return aa},cubic:function(){return ba},sin:function(){return da},exp:function(){return ea},circle:function(){return fa},elastic:ga,back:ha,bounce:function(){return ia}},ka={"in":function(a){return a},out:H,"in-out":I,"out-in":function(a){return I(H(a))}};
d3.ease=function(a){var d=a.indexOf("-");return ka[d>=0?a.substring(d+1):"in"](ja[d>=0?a.substring(0,d):a].apply(o,Array.prototype.slice.call(arguments,1)))};function H(a){return function(d){return 1-a(1-d)}}function I(a){return function(d){return 0.5*(d<0.5?a(2*d):2-a(2-2*d))}}function ca(a){return a}function G(a){return function(d){return Math.pow(d,a)}}function da(a){return 1-Math.cos(a*Math.PI/2)}function ea(a){return a?Math.pow(2,10*(a-1))-0.0010:0}function fa(a){return 1-Math.sqrt(1-a*a)}
function ga(a,d){var e;if(arguments.length<2)d=0.45;if(arguments.length<1){a=1;e=d/4}else e=d/(2*Math.PI)*Math.asin(1/a);return function(f){return 1+a*Math.pow(2,10*-f)*Math.sin((f-e)*2*Math.PI/d)}}function ha(a){a||(a=1.70158);return function(d){return d*d*((a+1)*d-a)}}function ia(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+0.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+0.9375:7.5625*(a-=2.625/2.75)*a+0.984375}d3.event=o;
d3.interpolate=function(a,d){if(typeof d=="number")return d3.interpolateNumber(+a,d);if(typeof d=="string")return d in J||/^(#|rgb\(|hsl\()/.test(d)?d3.interpolateRgb(String(a),d):d3.interpolateString(String(a),d);if(d instanceof Array)return d3.interpolateArray(a,d);return d3.interpolateObject(a,d)};d3.interpolateNumber=function(a,d){d-=a;return function(e){return a+d*e}};
d3.interpolateString=function(a,d){var e,f,b=0,c=[],h=[],g,i;for(f=0;e=K.exec(d);++f){e.index&&c.push(d.substring(b,e.index));h.push({a:c.length,x:e[0]});c.push(o);b=K.lastIndex}b<d.length&&c.push(d.substring(b));f=0;for(g=h.length;(e=K.exec(a))&&f<g;++f){i=h[f];if(i.x==e[0]){if(i.a)if(c[i.a+1]==o){c[i.a-1]+=i.x;c.splice(i.a,1);for(e=f+1;e<g;++e)h[e].a--}else{c[i.a-1]+=i.x+c[i.a+1];c.splice(i.a,2);for(e=f+1;e<g;++e)h[e].a-=2}else if(c[i.a+1]==o)c[i.a]=i.x;else{c[i.a]=i.x+c[i.a+1];c.splice(i.a+1,1);
for(e=f+1;e<g;++e)h[e].a--}h.splice(f,1);g--;f--}else i.x=d3.interpolateNumber(parseFloat(e[0]),parseFloat(i.x))}for(;f<g;){i=h.pop();if(c[i.a+1]==o)c[i.a]=i.x;else{c[i.a]=i.x+c[i.a+1];c.splice(i.a+1,1)}g--}if(c.length==1)return c[0]==o?h[0].x:function(){return d};return function(j){for(f=0;f<g;++f)c[(i=h[f]).a]=i.x(j);return c.join("")}};
d3.interpolateRgb=function(a,d){a=d3.rgb(a);d=d3.rgb(d);var e=a.r,f=a.g,b=a.b,c=d.r-e,h=d.g-f,g=d.b-b;return function(i){return"rgb("+Math.round(e+c*i)+","+Math.round(f+h*i)+","+Math.round(b+g*i)+")"}};d3.interpolateArray=function(a,d){var e=[],f=[],b=a.length,c=d.length,h=Math.min(a.length,d.length),g;for(g=0;g<h;++g)e.push(d3.interpolate(a[g],d[g]));for(;g<b;++g)f[g]=a[g];for(;g<c;++g)f[g]=d[g];return function(i){for(g=0;g<h;++g)f[g]=e[g](i);return f}};
d3.interpolateObject=function(a,d){var e={},f={},b;for(b in a)if(b in d)e[b]=(b in la||/\bcolor\b/.test(b)?d3.interpolateRgb:d3.interpolate)(a[b],d[b]);else f[b]=a[b];for(b in d)b in a||(f[b]=d[b]);return function(c){for(b in e)f[b]=e[b](c);return f}};var K=/[-+]?(?:\d+\.\d+|\d+\.|\.\d+|\d+)(?:[eE][-]?\d+)?/g,la={background:1,fill:1,stroke:1};d3.rgb=function(a,d,e){return arguments.length==1?L(""+a,M,N):M(~~a,~~d,~~e)};function M(a,d,e){return{r:a,g:d,b:e,toString:ma}}
function ma(){return"#"+O(this.r)+O(this.g)+O(this.b)}function O(a){return a<16?"0"+a.toString(16):a.toString(16)}
function L(a,d,e){var f,b,c,h,g;if(h=/([a-z]+)\((.*)\)/i.exec(a)){g=h[2].split(",");switch(h[1]){case "hsl":return e(parseFloat(g[0]),parseFloat(g[1])/100,parseFloat(g[2])/100);case "rgb":return d(P(g[0]),P(g[1]),P(g[2]))}}if(e=J[a])return d(e.r,e.g,e.b);if(a==o)return d(0,0,0);if(a.charAt(0)=="#"){if(a.length==4){f=a.charAt(1);f+=f;b=a.charAt(2);b+=b;c=a.charAt(3);c+=c}else if(a.length==7){f=a.substring(1,3);b=a.substring(3,5);c=a.substring(5,7)}f=parseInt(f,16);b=parseInt(b,16);c=parseInt(c,16)}return d(f,
b,c)}function na(a,d,e){var f=Math.min(a/=255,d/=255,e/=255),b=Math.max(a,d,e),c=b-f,h=(b+f)/2;if(c){f=h<0.5?c/(b+f):c/(2-b-f);a=a==b?(d-e)/c+(d<e?6:0):d==b?(e-a)/c+2:(a-d)/c+4;a*=60}else f=a=0;return Q(a,f,h)}function P(a){var d=parseFloat(a);return a.charAt(a.length-1)=="%"?Math.round(d*2.55):d}
var J={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",
darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",
ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",
lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",
moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",
seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},R;for(R in M)M[R]=O(M[R]);d3.hsl=function(a,d,e){a=P(a,d,e);return"rgb("+a.d+","+a.c+","+a.b+")"};var T=S([[document]]);
T[0].parentNode=document.documentElement;d3.select=function(a){return typeof a=="string"?T.select(a):S([[a]])};d3.selectAll=function(a){return typeof a=="string"?T.selectAll(a):S([w(a)])};
function S(a){function d(c){for(var b=[],h,g,i,j,m=0,p=a.length;m<p;m++){i=a[m];b.push(h=[]);h.parentNode=i.parentNode;h.parentData=i.parentData;for(var r=0,k=i.length;r<k;r++)if(j=i[r]){h.push(g=c(j));if(g&&"__data__"in j)g.__data__=j.__data__}else h.push(o)}return S(b)}function e(c){for(var b=[],h,g,i,j=0,m=a.length;j<m;j++){g=a[j];for(var p=0,r=g.length;p<r;p++)if(i=g[p]){b.push(h=c(i));h.parentNode=i;h.parentData=i.__data__}}return S(b)}function f(c){for(var b=0,h=a.length;b<h;b++)for(var g=a[b],
i=0,j=g.length;i<j;i++){var m=g[i];if(m)return c.call(m,m.__data__,i)}return o}a.select=function(c){return d(function(b){return b.querySelector(c)})};a.selectAll=function(c){return e(function(b){return w(b.querySelectorAll(c))})};a.filter=function(c){for(var b=[],h,g,i,j=0,m=a.length;j<m;j++){g=a[j];b.push(h=[]);h.parentNode=g.parentNode;h.parentData=g.parentData;for(var p=0,r=g.length;p<r;p++)if((i=g[p])&&c.call(i,i.__data__,p))h.push(i)}return S(b)};a.data=function(c,b){function h(k,n){function q(ja){return k.parentNode.appendChild(ja)}
var l=0,s=k.length,t=n.length,u=Math.min(s,t),A=Math.max(s,t),x=[],y=[],v=[],z,B;if(b){u={};A=[];var D;B=n.length;for(l=0;l<s;l++){D=b.nodeKey(z=k[l]);if(D in u)v[B++]=k[l];else{u[D]=z;A.push(D)}}for(l=0;l<t;l++){if(z=u[D=b.dataKey(B=n[l])]){z.__data__=B;x[l]=z;y[l]=v[l]=o}else{y[l]={appendChild:q,__data__:B};x[l]=v[l]=o}delete u[D]}for(l=0;l<s;l++)if(A[l]in u)v[l]=k[l]}else{for(;l<u;l++){z=k[l];B=n[l];if(z){z.__data__=B;x[l]=z;y[l]=v[l]=o}else{y[l]={appendChild:q,__data__:B};x[l]=v[l]=o}}for(;l<
t;l++){y[l]={appendChild:q,__data__:n[l]};x[l]=v[l]=o}for(;l<A;l++){v[l]=k[l];y[l]=x[l]=o}}y.parentNode=x.parentNode=v.parentNode=k.parentNode;y.parentData=x.parentData=v.parentData=k.parentData;m.push(y);p.push(x);r.push(v)}var g=-1,i=a.length,j,m=[],p=[],r=[];if(typeof b=="string")b=ka(b);if(typeof c=="function")for(;++g<i;)h(j=a[g],c.call(j,j.parentData,g));else for(;++g<i;)h(j=a[g],c);g=S(p);g.enter=function(k){return S(m).append(k)};g.exit=function(){return S(r)};return g};a.each=function(c){for(var b=
0,h=a.length;b<h;b++)for(var g=a[b],i=0,j=g.length;i<j;i++){var m=g[i];m&&c.call(m,m.__data__,i)}return a};a.node=function(){return f(function(){return this})};a.attr=function(c,b){function h(){this.removeAttribute(c)}function g(){this.removeAttributeNS(c.space,c.local)}function i(){this.setAttribute(c,b)}function j(){this.setAttributeNS(c.space,c.local,b)}function m(){var r=b.apply(this,arguments);r==o?this.removeAttribute(c):this.setAttribute(c,r)}function p(){var r=b.apply(this,arguments);r==o?
this.removeAttributeNS(c.space,c.local):this.setAttributeNS(c.space,c.local,r)}c=d3.ns.qualify(c);if(arguments.length<2)return f(c.local?function(){return this.getAttributeNS(c.space,c.local)}:function(){return this.getAttribute(c)});return a.each(b==o?c.local?g:h:typeof b=="function"?c.local?p:m:c.local?j:i)};a.style=function(c,b,h){function g(){this.style.removeProperty(c)}function i(){this.style.setProperty(c,b,h)}function j(){var m=b.apply(this,arguments);m==o?this.style.removeProperty(c):this.style.setProperty(c,
m,h)}if(arguments.length<3)h=o;if(arguments.length<2)return f(function(){return window.getComputedStyle(this,o).getPropertyValue(c)});return a.each(b==o?g:typeof b=="function"?j:i)};a.property=function(c,b){function h(){delete this[c]}function g(){this[c]=b}function i(){var j=b.apply(this,arguments);if(j==o)delete this[c];else this[c]=j}c=d3.ns.qualify(c);if(arguments.length<2)return f(function(){return this[c]});return a.each(b==o?h:typeof b=="function"?i:g)};a.text=function(c){function b(){this.appendChild(document.createTextNode(c))}
function h(){var g=c.apply(this,arguments);g!=o&&this.appendChild(document.createTextNode(g))}if(arguments.length<1)return f(function(){return this.textContent});a.each(function(){for(;this.lastChild;)this.removeChild(this.lastChild)});return c==o?a:a.each(typeof c=="function"?h:b)};a.html=function(c){function b(){this.innerHTML=c}function h(){this.innerHTML=c.apply(this,arguments)}if(arguments.length<1)return f(function(){return this.innerHTML});return a.each(typeof c=="function"?h:b)};a.append=
function(c){function b(g){return g.appendChild(document.createElement(c))}function h(g){return g.appendChild(document.createElementNS(c.space,c.local))}c=d3.ns.qualify(c);return d(c.local?h:b)};a.remove=function(){return d(function(c){var b=c.parentNode;b.removeChild(c);return b})};a.sort=function(c){c=la.apply(this,arguments);for(var b=0,h=a.length;b<h;b++){var g=a[b];g.sort(c);for(var i=1,j=g.length,m=g[0];i<j;i++){var p=g[i];if(p){m&&m.parentNode.insertBefore(p,m.nextSibling);m=p}}}return a};a.on=
function(c,b){c="on"+c;return a.each(function(h,g){this[c]=function(i){d3.event=i;try{b.call(this,h,g)}finally{d3.event=o}}})};a.transition=function(){return U(a)};a.call=C;return a}function ka(a){return{nodeKey:function(d){return d.getAttribute(a)},dataKey:function(d){return d[a]}}}function la(a){arguments.length||(a=ma);return function(d,e){return a(d&&d.__data__,e&&e.__data__)}}function ma(a,d){return a<d?-1:a>d?1:0}d3.transition=T.transition;var na=0,V=0;
function U(a){function d(k){var n=true,q=-1;a.each(function(){if(i[++q]!=2){var l=(k-j[q])/m[q],s=this.__transition__,t,u=b[q];if(l<1){n=false;if(!(l<0)){if(i[q]){if(s.g!=f){i[q]=2;return}}else if(!s||s.g>f){i[q]=2;return}else{i[q]=1;g.start.dispatch.apply(this,arguments);u=b[q]={};s.g=f;for(t in c)u[t]=c[t].apply(this,arguments)}s=r(l);for(t in c)u[t].call(this,s)}}else{i[q]=2;if(s.g==f){l=s.k;for(t in c)u[t].call(this,1);if(l==f){delete this.__transition__;h&&this.parentNode.removeChild(this)}V=
f;g.end.dispatch.apply(this,arguments);V=0;s.k=l}}}});return n}var e={},f=V||++na,c={},b=[],h=false,g=d3.dispatch("start","end"),i=[],j=[],m=[],p,r=d3.ease("cubic-in-out");a.each(function(){(this.__transition__||(this.__transition__={})).k=f});e.delay=function(k){var n=Infinity,q=-1;if(typeof k=="function")a.each(function(){var l=j[++q]=+k.apply(this,arguments);if(l<n)n=l});else{n=+k;a.each(function(){j[++q]=n})}oa(d,n);return e};e.duration=function(k){var n=-1;if(typeof k=="function"){p=0;a.each(function(){var q=
m[++n]=+k.apply(this,arguments);if(q>p)p=q})}else{p=+k;a.each(function(){m[++n]=p})}return e};e.ease=function(k){r=typeof k=="string"?d3.ease(k):k;return e};e.attrTween=function(k,n){function q(s,t){var u=n.call(this,s,t,this.getAttribute(k));return function(A){this.setAttribute(k,u(A))}}function l(s,t){var u=n.call(this,s,t,this.getAttributeNS(k.space,k.local));return function(A){this.setAttributeNS(k.space,k.local,u(A))}}c["attr."+k]=k.local?l:q;return e};e.attr=function(k,n){return e.attrTween(k,
W(n))};e.styleTween=function(k,n,q){c["style."+k]=function(l,s){var t=n.call(this,l,s,window.getComputedStyle(this,o).getPropertyValue(k));return function(u){this.style.setProperty(k,t(u),q)}};return e};e.style=function(k,n,q){return e.styleTween(k,W(n),q)};e.select=function(k){var n;k=U(a.select(k)).ease(r);n=-1;k.delay(function(){return j[++n]});n=-1;k.duration(function(){return m[++n]});return k};e.selectAll=function(k){var n;k=U(a.selectAll(k)).ease(r);n=-1;k.delay(function(q,l){return j[l?n:
++n]});n=-1;k.duration(function(q,l){return m[l?n:++n]});return k};e.remove=function(){h=true;return e};e.each=function(k,n){g[k].add(n);return e};e.call=C;return e.delay(0).duration(250)}var X=o,Y=0,Z;function oa(a,d){var e=Date.now(),f=false,c=e+d,b=X;if(isFinite(d)){for(;b;){if(b.j==a){b.i=e;b.delay=d;f=true}else{var h=b.i+b.delay;if(h<c)c=h}b=b.next}f||(X={j:a,i:e,delay:d,next:X});if(!Z){clearTimeout(Y);Y=setTimeout(pa,Math.max(24,c-e))}}}function pa(){Z=setInterval(qa,24);Y=0}
function qa(){for(var a,d=Date.now(),e=X;e;){a=d-e.i;if(a>e.delay)e.m=e.j(a);e=e.next}a=o;for(d=X;d;)d=d.m?a?a.next=d.next:X=d.next:(a=d).next;a||(Z=clearInterval(Z))}function W(a){return typeof a=="function"?function(d,e,f){return d3.interpolate(f,a.call(this,d,e))}:function(d,e,f){return d3.interpolate(f,a)}}d3.scale={};
d3.scale.linear=function(){function a(j){return i((j-e)*h)}function d(j){var m=Math.min(e,f),p=Math.max(e,f),r=p-m,k=Math.pow(10,Math.floor(Math.log(r/j)/Math.LN10));j=j/(r/k);if(j<=0.15)k*=10;else if(j<=0.35)k*=5;else if(j<=0.75)k*=2;return{start:Math.ceil(m/k)*k,stop:Math.floor(p/k)*k+k*0.5,l:k}}var e=0,f=1,c=0,b=1,h=1/(f-e),g=(f-e)/(b-c),i=d3.interpolate(c,b);a.invert=function(j){return(j-c)*g+e};a.domain=function(j){if(!arguments.length)return[e,f];e=j[0];f=j[1];h=1/(f-e);g=(f-e)/(b-c);return a};
a.range=function(j){if(!arguments.length)return[c,b];c=j[0];b=j[1];g=(f-e)/(b-c);i=d3.interpolate(c,b);return a};a.ticks=function(j){j=d(j);return d3.range(j.start,j.stop,j.l)};a.tickFormat=function(j){return d3.format(",."+Math.max(0,-Math.floor(Math.log(d(j).l)/Math.LN10+0.01))+"f")};return a};
d3.scale.log=function(){function a(c){return Math.log(c)/Math.LN10}function d(c){return Math.pow(10,c)}function e(c){return f(a(c))}var f=d3.scale.linear();e.invert=function(c){return d(f.invert(c))};e.domain=function(c){if(!arguments.length)return f.domain().map(d);f.domain(c.map(a));return e};e.range=function(){var c=f.range.apply(f,arguments);return arguments.length?e:c};e.ticks=function(){var c=f.domain(),b=Math.floor(c[0]),h=Math.ceil(c[1]),g=[];if(c.every(isFinite)){for(;++b<=h;)for(c=1;c<10;c++)g.push(d(b)*
c);g.push(d(b))}return g};e.tickFormat=function(){return function(c){return c.toPrecision(1)}};return e};
d3.scale.pow=function(){function a(h){return Math.pow(h,c)}function d(h){return Math.pow(h,b)}function e(h){return f(a(h))}var f=d3.scale.linear(),c=1,b=1/c;e.invert=function(h){return d(f.invert(h))};e.domain=function(h){if(!arguments.length)return f.domain().map(d);f.domain(h.map(a));return e};e.range=function(){var h=f.range.apply(f,arguments);return arguments.length?e:h};e.exponent=function(h){if(!arguments.length)return c;var g=e.domain();c=h;b=1/h;return e.domain(g)};return e};
seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},R;for(R in J)J[R]=L(J[R],M,N);d3.hsl=function(a,d,e){return arguments.length==1?L(""+a,na,Q):Q(+a,+d,+e)};
function Q(a,d,e){return{h:a,s:d,l:e,toString:oa}}function oa(){return"hsl("+this.h+","+this.s*100+"%,"+this.l*100+"%)"}function N(a,d,e){function f(h){if(h>360)h-=360;else if(h<0)h+=360;if(h<60)return b+(c-b)*h/60;if(h<180)return c;if(h<240)return b+(c-b)*(240-h)/60;return b}var b,c;a%=360;if(a<0)a+=360;d=d<0?0:d>1?1:d;e=e<0?0:e>1?1:e;c=e<=0.5?e*(1+d):e+d-e*d;b=2*e-c;return M(Math.round(f(a+120)*255),Math.round(f(a)*255),Math.round(f(a-120)*255))}var T=S([[document]]);T[0].parentNode=document.documentElement;
d3.select=function(a){return typeof a=="string"?T.select(a):S([[a]])};d3.selectAll=function(a){return typeof a=="string"?T.selectAll(a):S([w(a)])};
function S(a){function d(b){for(var c=[],h,g,i,j,m=0,p=a.length;m<p;m++){i=a[m];c.push(h=[]);h.parentNode=i.parentNode;h.parentData=i.parentData;for(var r=0,k=i.length;r<k;r++)if(j=i[r]){h.push(g=b(j));if(g&&"__data__"in j)g.__data__=j.__data__}else h.push(o)}return S(c)}function e(b){for(var c=[],h,g,i,j=0,m=a.length;j<m;j++){g=a[j];for(var p=0,r=g.length;p<r;p++)if(i=g[p]){c.push(h=b(i));h.parentNode=i;h.parentData=i.__data__}}return S(c)}function f(b){for(var c=0,h=a.length;c<h;c++)for(var g=a[c],
i=0,j=g.length;i<j;i++){var m=g[i];if(m)return b.call(m,m.__data__,i)}return o}a.select=function(b){return d(function(c){return c.querySelector(b)})};a.selectAll=function(b){return e(function(c){return w(c.querySelectorAll(b))})};a.filter=function(b){for(var c=[],h,g,i,j=0,m=a.length;j<m;j++){g=a[j];c.push(h=[]);h.parentNode=g.parentNode;h.parentData=g.parentData;for(var p=0,r=g.length;p<r;p++)if((i=g[p])&&b.call(i,i.__data__,p))h.push(i)}return S(c)};a.data=function(b,c){function h(k,n){function q(pa){return k.parentNode.appendChild(pa)}
var l=0,s=k.length,t=n.length,u=Math.min(s,t),A=Math.max(s,t),x=[],y=[],v=[],z,B;if(c){u={};A=[];var C;B=n.length;for(l=0;l<s;l++){C=c.nodeKey(z=k[l]);if(C in u)v[B++]=k[l];else{u[C]=z;A.push(C)}}for(l=0;l<t;l++){if(z=u[C=c.dataKey(B=n[l])]){z.__data__=B;x[l]=z;y[l]=v[l]=o}else{y[l]={appendChild:q,__data__:B};x[l]=v[l]=o}delete u[C]}for(l=0;l<s;l++)if(A[l]in u)v[l]=k[l]}else{for(;l<u;l++){z=k[l];B=n[l];if(z){z.__data__=B;x[l]=z;y[l]=v[l]=o}else{y[l]={appendChild:q,__data__:B};x[l]=v[l]=o}}for(;l<
t;l++){y[l]={appendChild:q,__data__:n[l]};x[l]=v[l]=o}for(;l<A;l++){v[l]=k[l];y[l]=x[l]=o}}y.parentNode=x.parentNode=v.parentNode=k.parentNode;y.parentData=x.parentData=v.parentData=k.parentData;m.push(y);p.push(x);r.push(v)}var g=-1,i=a.length,j,m=[],p=[],r=[];if(typeof c=="string")c=qa(c);if(typeof b=="function")for(;++g<i;)h(j=a[g],b.call(j,j.parentData,g));else for(;++g<i;)h(j=a[g],b);g=S(p);g.enter=function(k){return S(m).append(k)};g.exit=function(){return S(r)};return g};a.each=function(b){for(var c=
0,h=a.length;c<h;c++)for(var g=a[c],i=0,j=g.length;i<j;i++){var m=g[i];m&&b.call(m,m.__data__,i)}return a};a.node=function(){return f(function(){return this})};a.attr=function(b,c){function h(){this.removeAttribute(b)}function g(){this.removeAttributeNS(b.space,b.local)}function i(){this.setAttribute(b,c)}function j(){this.setAttributeNS(b.space,b.local,c)}function m(){var r=c.apply(this,arguments);r==o?this.removeAttribute(b):this.setAttribute(b,r)}function p(){var r=c.apply(this,arguments);r==o?
this.removeAttributeNS(b.space,b.local):this.setAttributeNS(b.space,b.local,r)}b=d3.ns.qualify(b);if(arguments.length<2)return f(b.local?function(){return this.getAttributeNS(b.space,b.local)}:function(){return this.getAttribute(b)});return a.each(c==o?b.local?g:h:typeof c=="function"?b.local?p:m:b.local?j:i)};a.style=function(b,c,h){function g(){this.style.removeProperty(b)}function i(){this.style.setProperty(b,c,h)}function j(){var m=c.apply(this,arguments);m==o?this.style.removeProperty(b):this.style.setProperty(b,
m,h)}if(arguments.length<3)h=o;if(arguments.length<2)return f(function(){return window.getComputedStyle(this,o).getPropertyValue(b)});return a.each(c==o?g:typeof c=="function"?j:i)};a.property=function(b,c){function h(){delete this[b]}function g(){this[b]=c}function i(){var j=c.apply(this,arguments);if(j==o)delete this[b];else this[b]=j}b=d3.ns.qualify(b);if(arguments.length<2)return f(function(){return this[b]});return a.each(c==o?h:typeof c=="function"?i:g)};a.text=function(b){function c(){this.appendChild(document.createTextNode(b))}
function h(){var g=b.apply(this,arguments);g!=o&&this.appendChild(document.createTextNode(g))}if(arguments.length<1)return f(function(){return this.textContent});a.each(function(){for(;this.lastChild;)this.removeChild(this.lastChild)});return b==o?a:a.each(typeof b=="function"?h:c)};a.html=function(b){function c(){this.innerHTML=b}function h(){this.innerHTML=b.apply(this,arguments)}if(arguments.length<1)return f(function(){return this.innerHTML});return a.each(typeof b=="function"?h:c)};a.append=
function(b){function c(g){return g.appendChild(document.createElement(b))}function h(g){return g.appendChild(document.createElementNS(b.space,b.local))}b=d3.ns.qualify(b);return d(b.local?h:c)};a.remove=function(){return d(function(b){var c=b.parentNode;c.removeChild(b);return c})};a.sort=function(b){b=ra.apply(this,arguments);for(var c=0,h=a.length;c<h;c++){var g=a[c];g.sort(b);for(var i=1,j=g.length,m=g[0];i<j;i++){var p=g[i];if(p){m&&m.parentNode.insertBefore(p,m.nextSibling);m=p}}}return a};a.on=
function(b,c){b="on"+b;return a.each(function(h,g){this[b]=function(i){d3.event=i;try{c.call(this,h,g)}finally{d3.event=o}}})};a.transition=function(){return U(a)};a.call=D;return a}function qa(a){return{nodeKey:function(d){return d.getAttribute(a)},dataKey:function(d){return d[a]}}}function ra(a){arguments.length||(a=sa);return function(d,e){return a(d&&d.__data__,e&&e.__data__)}}function sa(a,d){return a<d?-1:a>d?1:0}d3.transition=T.transition;var ta=0,V=0;
function U(a){function d(k){var n=true,q=-1;a.each(function(){if(i[++q]!=2){var l=(k-j[q])/m[q],s=this.__transition__,t,u=c[q];if(l<1){n=false;if(!(l<0)){if(i[q]){if(s.c!=f){i[q]=2;return}}else if(!s||s.c>f){i[q]=2;return}else{i[q]=1;g.start.dispatch.apply(this,arguments);u=c[q]={};s.c=f;for(t in b)u[t]=b[t].apply(this,arguments)}s=r(l);for(t in b)u[t].call(this,s)}}else{i[q]=2;if(s.c==f){l=s.k;for(t in b)u[t].call(this,1);if(l==f){delete this.__transition__;h&&this.parentNode.removeChild(this)}V=
f;g.end.dispatch.apply(this,arguments);V=0;s.k=l}}}});return n}var e={},f=V||++ta,b={},c=[],h=false,g=d3.dispatch("start","end"),i=[],j=[],m=[],p,r=d3.ease("cubic-in-out");a.each(function(){(this.__transition__||(this.__transition__={})).k=f});e.delay=function(k){var n=Infinity,q=-1;if(typeof k=="function")a.each(function(){var l=j[++q]=+k.apply(this,arguments);if(l<n)n=l});else{n=+k;a.each(function(){j[++q]=n})}ua(d,n);return e};e.duration=function(k){var n=-1;if(typeof k=="function"){p=0;a.each(function(){var q=
m[++n]=+k.apply(this,arguments);if(q>p)p=q})}else{p=+k;a.each(function(){m[++n]=p})}return e};e.ease=function(k){r=typeof k=="string"?d3.ease(k):k;return e};e.attrTween=function(k,n){function q(s,t){var u=n.call(this,s,t,this.getAttribute(k));return function(A){this.setAttribute(k,u(A))}}function l(s,t){var u=n.call(this,s,t,this.getAttributeNS(k.space,k.local));return function(A){this.setAttributeNS(k.space,k.local,u(A))}}b["attr."+k]=k.local?l:q;return e};e.attr=function(k,n){return e.attrTween(k,
W(n))};e.styleTween=function(k,n,q){b["style."+k]=function(l,s){var t=n.call(this,l,s,window.getComputedStyle(this,o).getPropertyValue(k));return function(u){this.style.setProperty(k,t(u),q)}};return e};e.style=function(k,n,q){return e.styleTween(k,W(n),q)};e.select=function(k){var n;k=U(a.select(k)).ease(r);n=-1;k.delay(function(){return j[++n]});n=-1;k.duration(function(){return m[++n]});return k};e.selectAll=function(k){var n;k=U(a.selectAll(k)).ease(r);n=-1;k.delay(function(q,l){return j[l?n:
++n]});n=-1;k.duration(function(q,l){return m[l?n:++n]});return k};e.remove=function(){h=true;return e};e.each=function(k,n){g[k].add(n);return e};e.call=D;return e.delay(0).duration(250)}var X=o,Y=0,Z;function ua(a,d){var e=Date.now(),f=false,b=e+d,c=X;if(isFinite(d)){for(;c;){if(c.j==a){c.i=e;c.delay=d;f=true}else{var h=c.i+c.delay;if(h<b)b=h}c=c.next}f||(X={j:a,i:e,delay:d,next:X});if(!Z){clearTimeout(Y);Y=setTimeout(va,Math.max(24,b-e))}}}function va(){Z=setInterval(wa,24);Y=0}
function wa(){for(var a,d=Date.now(),e=X;e;){a=d-e.i;if(a>e.delay)e.n=e.j(a);e=e.next}a=o;for(d=X;d;)d=d.n?a?a.next=d.next:X=d.next:(a=d).next;a||(Z=clearInterval(Z))}function W(a){return typeof a=="function"?function(d,e,f){return d3.interpolate(f,a.call(this,d,e))}:function(d,e,f){return d3.interpolate(f,a)}}d3.scale={};
d3.scale.linear=function(){function a(j){return i((j-e)*h)}function d(j){var m=Math.min(e,f),p=Math.max(e,f),r=p-m,k=Math.pow(10,Math.floor(Math.log(r/j)/Math.LN10));j=j/(r/k);if(j<=0.15)k*=10;else if(j<=0.35)k*=5;else if(j<=0.75)k*=2;return{start:Math.ceil(m/k)*k,stop:Math.floor(p/k)*k+k*0.5,m:k}}var e=0,f=1,b=0,c=1,h=1/(f-e),g=(f-e)/(c-b),i=d3.interpolate(b,c);a.invert=function(j){return(j-b)*g+e};a.domain=function(j){if(!arguments.length)return[e,f];e=j[0];f=j[1];h=1/(f-e);g=(f-e)/(c-b);return a};
a.range=function(j){if(!arguments.length)return[b,c];b=j[0];c=j[1];g=(f-e)/(c-b);i=d3.interpolate(b,c);return a};a.ticks=function(j){j=d(j);return d3.range(j.start,j.stop,j.m)};a.tickFormat=function(j){return d3.format(",."+Math.max(0,-Math.floor(Math.log(d(j).m)/Math.LN10+0.01))+"f")};return a};
d3.scale.log=function(){function a(b){return Math.log(b)/Math.LN10}function d(b){return Math.pow(10,b)}function e(b){return f(a(b))}var f=d3.scale.linear();e.invert=function(b){return d(f.invert(b))};e.domain=function(b){if(!arguments.length)return f.domain().map(d);f.domain(b.map(a));return e};e.range=function(){var b=f.range.apply(f,arguments);return arguments.length?e:b};e.ticks=function(){var b=f.domain(),c=Math.floor(b[0]),h=Math.ceil(b[1]),g=[];if(b.every(isFinite)){for(;++c<=h;)for(b=1;b<10;b++)g.push(d(c)*
b);g.push(d(c))}return g};e.tickFormat=function(){return function(b){return b.toPrecision(1)}};return e};
d3.scale.pow=function(){function a(h){return Math.pow(h,b)}function d(h){return Math.pow(h,c)}function e(h){return f(a(h))}var f=d3.scale.linear(),b=1,c=1/b;e.invert=function(h){return d(f.invert(h))};e.domain=function(h){if(!arguments.length)return f.domain().map(d);f.domain(h.map(a));return e};e.range=function(){var h=f.range.apply(f,arguments);return arguments.length?e:h};e.exponent=function(h){if(!arguments.length)return b;var g=e.domain();b=h;c=1/h;return e.domain(g)};return e};
d3.scale.sqrt=function(){return d3.scale.pow().exponent(0.5)};
d3.scale.ordinal=function(){function a(b){b=b in e?e[b]:e[b]=d.push(b)-1;return f[b%f.length]}var d=[],e={},f=[],c=0;a.domain=function(b){if(!arguments.length)return d;d=b;e={};for(var h=-1,g=-1,i=d.length;++h<i;){b=d[h];b in e||(e[b]=++g)}return a};a.range=function(b){if(!arguments.length)return f;f=b;return a};a.rangePoints=function(b,h){if(arguments.length<2)h=0;var g=b[0],i=b[1],j=(i-g)/(d.length-1+h);f=d.length==1?[(g+i)/2]:d3.range(g+j*h/2,i+j/2,j);c=0;return a};a.rangeBands=function(b,h){if(arguments.length<
2)h=0;var g=b[0],i=b[1],j=(i-g)/(d.length+h);f=d3.range(g+j*h,i,j);c=j*(1-h);return a};a.rangeBand=function(){return c};return a};d3.scale.category10=function(){return d3.scale.ordinal().range(ra)};d3.scale.category19=function(){return d3.scale.ordinal().range(sa)};d3.scale.category20=function(){return d3.scale.ordinal().range(ta)};
var ra=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],sa=["#9c9ede","#7375b5","#4a5584","#cedb9c","#b5cf6b","#8ca252","#637939","#e7cb94","#e7ba52","#bd9e39","#8c6d31","#e7969c","#d6616b","#ad494a","#843c39","#de9ed6","#ce6dbd","#a55194","#7b4173"],ta=["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"];
d3.svg={};
d3.svg.arc=function(){function a(b){return b.endAngle}function d(b){return b.startAngle}function e(b){return b.outerRadius}function f(b){return b.innerRadius}function c(b){var h=f(b),g=e(b),i=d(b)-Math.PI/2,j=a(b)-Math.PI/2;b=j-i;var m=Math.cos(i);i=Math.sin(i);var p=Math.cos(j);j=Math.sin(j);return"M"+g*m+","+g*i+"A"+g+","+g+" 0 "+(b<Math.PI?"0":"1")+",1 "+g*p+","+g*j+"L"+h*p+","+h*j+"A"+h+","+h+" 0 "+(b<Math.PI?"0":"1")+",0 "+h*m+","+h*i+"Z"}c.innerRadius=function(b){f=typeof b=="function"?b:function(){return b};
return c};c.outerRadius=function(b){e=typeof b=="function"?b:function(){return b};return c};c.startAngle=function(b){d=typeof b=="function"?b:function(){return b};return c};c.endAngle=function(b){a=typeof b=="function"?b:function(){return b};return c};return c};
d3.svg.line=function(){function a(f){return f.y}function d(f){return f.x}function e(f){var c=[],b=0,h=f[0];for(c.push("M",d.call(this,h,b),",",a.call(this,h,b));h=f[++b];)c.push("L",d.call(this,h,b),",",a.call(this,h,b));return c.join("")}e.x=function(f){d=f;return e};e.y=function(f){a=f;return e};return e};
d3.svg.area=function(){function a(c){return c.y1}function d(c){return c.x}function e(c){var b=[],h=0,g=c[0];for(b.push("M",d.call(this,g,h),","+f+"V",a.call(this,g,h));g=c[++h];)b.push("L",d.call(this,g,h),",",a.call(this,g,h));b.push("V"+f+"Z");return b.join("")}var f=0;e.x=function(c){d=c;return e};e.y0=function(c){f=c;return e};e.y1=function(c){a=c;return e};return e};
d3.scale.ordinal=function(){function a(c){c=c in e?e[c]:e[c]=d.push(c)-1;return f[c%f.length]}var d=[],e={},f=[],b=0;a.domain=function(c){if(!arguments.length)return d;d=c;e={};for(var h=-1,g=-1,i=d.length;++h<i;){c=d[h];c in e||(e[c]=++g)}return a};a.range=function(c){if(!arguments.length)return f;f=c;return a};a.rangePoints=function(c,h){if(arguments.length<2)h=0;var g=c[0],i=c[1],j=(i-g)/(d.length-1+h);f=d.length==1?[(g+i)/2]:d3.range(g+j*h/2,i+j/2,j);b=0;return a};a.rangeBands=function(c,h){if(arguments.length<
2)h=0;var g=c[0],i=c[1],j=(i-g)/(d.length+h);f=d3.range(g+j*h,i,j);b=j*(1-h);return a};a.rangeBand=function(){return b};return a};d3.scale.category10=function(){return d3.scale.ordinal().range(xa)};d3.scale.category20=function(){return d3.scale.ordinal().range(ya)};d3.scale.o=function(){return d3.scale.ordinal().range(za)};d3.scale.p=function(){return d3.scale.ordinal().range(Aa)};
var xa=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],ya=["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"],za=["#393b79","#5254a3","#6b6ecf","#9c9ede","#637939","#8ca252","#b5cf6b","#cedb9c","#8c6d31","#bd9e39","#e7ba52","#e7cb94","#843c39","#ad494a","#d6616b","#e7969c","#7b4173","#a55194","#ce6dbd",
"#de9ed6"],Aa=["#3182bd","#6baed6","#9ecae1","#c6dbef","#e6550d","#fd8d3c","#fdae6b","#fdd0a2","#31a354","#74c476","#a1d99b","#c7e9c0","#756bb1","#9e9ac8","#bcbddc","#dadaeb","#636363","#969696","#bdbdbd","#d9d9d9"];d3.svg={};
d3.svg.arc=function(){function a(c){return c.endAngle}function d(c){return c.startAngle}function e(c){return c.outerRadius}function f(c){return c.innerRadius}function b(c){var h=f(c),g=e(c),i=d(c)-Math.PI/2,j=a(c)-Math.PI/2;c=j-i;var m=Math.cos(i);i=Math.sin(i);var p=Math.cos(j);j=Math.sin(j);return"M"+g*m+","+g*i+"A"+g+","+g+" 0 "+(c<Math.PI?"0":"1")+",1 "+g*p+","+g*j+"L"+h*p+","+h*j+"A"+h+","+h+" 0 "+(c<Math.PI?"0":"1")+",0 "+h*m+","+h*i+"Z"}b.innerRadius=function(c){f=typeof c=="function"?c:function(){return c};
return b};b.outerRadius=function(c){e=typeof c=="function"?c:function(){return c};return b};b.startAngle=function(c){d=typeof c=="function"?c:function(){return c};return b};b.endAngle=function(c){a=typeof c=="function"?c:function(){return c};return b};return b};
d3.svg.line=function(){function a(f){return f.y}function d(f){return f.x}function e(f){var b=[],c=0,h=f[0];for(b.push("M",d.call(this,h,c),",",a.call(this,h,c));h=f[++c];)b.push("L",d.call(this,h,c),",",a.call(this,h,c));return b.join("")}e.x=function(f){d=f;return e};e.y=function(f){a=f;return e};return e};
d3.svg.area=function(){function a(b){return b.y1}function d(b){return b.x}function e(b){var c=[],h=0,g=b[0];for(c.push("M",d.call(this,g,h),","+f+"V",a.call(this,g,h));g=b[++h];)c.push("L",d.call(this,g,h),",",a.call(this,g,h));c.push("V"+f+"Z");return c.join("")}var f=0;e.x=function(b){d=b;return e};e.y0=function(b){f=b;return e};e.y1=function(b){a=b;return e};return e};
d3.svg.mouse=function(a){var d=(a.ownerSVGElement||a).createSVGPoint();if($<0&&(window.scrollX||window.scrollY)){var e=d3.select(document.body).append("svg:svg").style("position","absolute").style("top",0).style("left",0),f=e[0][0].getScreenCTM();$=!(f.f||f.e);e.remove()}if($){d.x=d3.event.pageX;d.y=d3.event.pageY}else{d.x=d3.event.clientX;d.y=d3.event.clientY}d=d.matrixTransform(a.getScreenCTM().inverse());return[d.x,d.y]};var $=/WebKit/.test(navigator.userAgent)?-1:0;})()

8
d3.time.min.js поставляемый
Просмотреть файл

@ -1,10 +1,10 @@
(function(){d3.time={};d3.time.format=function(a){function b(e){for(var d=[],h=-1,i=0,j,m;++h<c;)if(a.charCodeAt(h)==37){d.push(a.substring(i,h),(m=f[j=a.charAt(++h)])?m(e):j);i=h+1}d.push(a.substring(i,h));return d.join("")}var c=a.length;b.parse=function(e){var d=new Date(1900,0,1);if(g(d,a,e,0)!=e.length)return null;if(d.g){e=d.getHours()%12;d.setHours(d.h?e+12:e)}delete d.g;delete d.h;return d};b.toString=function(){return a};return b};
(function(){d3.time={};d3.time.format=function(a){function b(e){for(var d=[],h=-1,i=0,j,m;++h<c;)if(a.charCodeAt(h)==37){d.push(a.substring(i,h),(m=f[j=a.charAt(++h)])?m(e):j);i=h+1}d.push(a.substring(i,h));return d.join("")}var c=a.length;b.parse=function(e){var d=new Date(1900,0,1);if(g(d,a,e,0)!=e.length)return null;if(d.i){e=d.getHours()%12;d.setHours(d.k?e+12:e)}delete d.i;delete d.k;return d};b.toString=function(){return a};return b};
function g(a,b,c,e){for(var d,h=0,i=b.length,j=c.length;h<i;){if(e>=j)return-1;d=b.charCodeAt(h++);if(d==37){d=k[b.charAt(h++)];if(!d||(e=d(a,c,e))<0)return-1}else if(d!=c.charCodeAt(e++))return-1}return e}
var l=d3.format("02d"),n=d3.format("03d"),o=d3.format("04d"),p=d3.format(" 2d"),f={a:function(a){return q[a.getDay()].substring(0,3)},A:function(a){return q[a.getDay()]},b:function(a){return r[a.getMonth()].substring(0,3)},B:function(a){return r[a.getMonth()]},c:d3.time.format("%a %b %e %H:%M:%S %Y"),d:function(a){return l(a.getDate())},e:function(a){return p(a.getDate())},H:function(a){return l(a.getHours())},I:function(a){return l(a.getHours()%12||12)},j:s,m:function(a){return l(a.getMonth()+1)},
M:function(a){return l(a.getMinutes())},p:function(a){return a.getHours()>=12?"PM":"AM"},S:function(a){return l(a.getSeconds())},U:t,w:function(a){return a.getDay()},W:u,x:d3.time.format("%m/%d/%y"),X:d3.time.format("%H:%M:%S"),y:function(a){return l(a.getYear()%100)},Y:function(a){return o(a.getFullYear()%1E4)},Z:v,"%":function(){return"%"}},k={a:w,A:x,b:y,B:z,c:A,d:B,e:B,H:C,I:D,m:E,M:F,p:G,S:H,x:I,X:J,y:K,Y:L};function w(a,b,c){return b.substring(c,c+=3).toLowerCase()in M?c:-1}
var M={sun:3,mon:3,tue:3,wed:3,thu:3,fri:3,sat:3};function x(a,b,c){N.lastIndex=0;return(a=N.exec(b.substring(c,c+10)))?c+a[0].length:-1}var N=/^(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)/ig,q=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function y(a,b,c){b=O[b.substring(c,c+=3).toLowerCase()];return b==null?-1:(a.setMonth(b),c)}var O={jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11};
function z(a,b,c){P.lastIndex=0;return(b=P.exec(b.substring(c,c+12)))?(a.setMonth(Q[b[0].toLowerCase()]),c+b[0].length):-1}var P=/^(?:January|February|March|April|May|June|July|August|September|October|November|December)/ig,Q={january:0,february:1,march:2,april:3,may:4,june:5,july:6,august:7,september:8,october:9,november:10,december:11},r=["January","February","March","April","May","June","July","August","September","October","November","December"];
function A(a,b,c){return g(a,f.k.toString(),b,c)}function I(a,b,c){return g(a,f.x.toString(),b,c)}function J(a,b,c){return g(a,f.i.toString(),b,c)}function L(a,b,c){R.lastIndex=0;return(b=R.exec(b.substring(c,c+4)))?(a.setFullYear(b[0]),c+b[0].length):-1}function K(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setFullYear(~~((new Date).getFullYear()/1E3)*1E3+ +b[0]),c+b[0].length):-1}
function E(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setMonth(b[0]-1),c+b[0].length):-1}function B(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setDate(+b[0]),c+b[0].length):-1}function C(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setHours(+b[0]),c+b[0].length):-1}function D(a,b,c){a.g=true;return C(a,b,c)}function F(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setMinutes(+b[0]),c+b[0].length):-1}
function H(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setSeconds(+b[0]),c+b[0].length):-1}var S=/[\s\d]{1,2}/,R=/[\s\d]{1,4}/;function G(a,b,c){b=T[b.substring(c,c+=2).toLowerCase()];return b==null?-1:(a.h=b,c)}var T={am:0,pm:1};function s(a){return n(1+~~((a-new Date(a.getFullYear(),0,1))/864E5))}function t(a){var b=new Date(a.getFullYear(),0,1);return l(~~(((a-b)/864E5+b.getDay())/7))}
function A(a,b,c){return g(a,f.o.toString(),b,c)}function I(a,b,c){return g(a,f.x.toString(),b,c)}function J(a,b,c){return g(a,f.n.toString(),b,c)}function L(a,b,c){R.lastIndex=0;return(b=R.exec(b.substring(c,c+4)))?(a.setFullYear(b[0]),c+b[0].length):-1}function K(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setFullYear(~~((new Date).getFullYear()/1E3)*1E3+ +b[0]),c+b[0].length):-1}
function E(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setMonth(b[0]-1),c+b[0].length):-1}function B(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setDate(+b[0]),c+b[0].length):-1}function C(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setHours(+b[0]),c+b[0].length):-1}function D(a,b,c){a.i=true;return C(a,b,c)}function F(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setMinutes(+b[0]),c+b[0].length):-1}
function H(a,b,c){S.lastIndex=0;return(b=S.exec(b.substring(c,c+2)))?(a.setSeconds(+b[0]),c+b[0].length):-1}var S=/[\s\d]{1,2}/,R=/[\s\d]{1,4}/;function G(a,b,c){b=T[b.substring(c,c+=2).toLowerCase()];return b==null?-1:(a.k=b,c)}var T={am:0,pm:1};function s(a){return n(1+~~((a-new Date(a.getFullYear(),0,1))/864E5))}function t(a){var b=new Date(a.getFullYear(),0,1);return l(~~(((a-b)/864E5+b.getDay())/7))}
function u(a){var b=new Date(a.getFullYear(),0,1);return l(~~(((a-b)/864E5+(b.getDay()+6)%7)/7))}function v(a){a=a.getTimezoneOffset();var b=Math.abs(a)%60;return(a>0?"-":"+")+l(~~(Math.abs(a)/60))+l(b)};})()

Просмотреть файл

@ -1 +1 @@
d3 = {version: "0.18.0"}; // semver
d3 = {version: "0.19.0"}; // semver

Просмотреть файл

@ -1,4 +1,47 @@
/**
* @param {number=} s
* @param {number=} l
*/
d3.hsl = function(h, s, l) {
var c = d3_rgb_hsl(h, s, l);
return "rgb(" + c.r + "," + c.g + "," + c.b + ")";
return arguments.length == 1
? d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl)
: d3_hsl(+h, +s, +l);
};
function d3_hsl(h, s, l) {
return {h: h, s: s, l: l, toString: d3_hsl_format};
}
/** @this d3_hsl */
function d3_hsl_format() {
return "hsl(" + this.h + "," + this.s * 100 + "%," + this.l * 100 + "%)";
}
function d3_hsl_rgb(h, s, l) {
var m1,
m2;
/* Some simple corrections for h, s and l. */
h = h % 360; if (h < 0) h += 360;
s = s < 0 ? 0 : s > 1 ? 1 : s;
l = l < 0 ? 0 : l > 1 ? 1 : l;
/* From FvD 13.37, CSS Color Module Level 3 */
m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
m1 = 2 * l - m2;
function v(h) {
if (h > 360) h -= 360;
else if (h < 0) h += 360;
if (h < 60) return m1 + (m2 - m1) * h / 60;
if (h < 180) return m2;
if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
return m1;
}
function vv(h) {
return Math.round(v(h) * 255);
}
return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
}

Просмотреть файл

@ -90,8 +90,8 @@ d3.interpolateString = function(a, b) {
};
d3.interpolateRgb = function(a, b) {
a = d3_rgb(a);
b = d3_rgb(b);
a = d3.rgb(a);
b = d3.rgb(b);
var ar = a.r,
ag = a.g,
ab = a.b,

Просмотреть файл

@ -1,4 +1,27 @@
function d3_rgb(format) {
/**
* @param {number=} g
* @param {number=} b
*/
d3.rgb = function(r, g, b) {
return arguments.length == 1
? d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb)
: d3_rgb(~~r, ~~g, ~~b);
};
function d3_rgb(r, g, b) {
return {r: r, g: g, b: b, toString: d3_rgb_format};
}
/** @this d3_rgb */
function d3_rgb_format() {
return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
}
function d3_rgb_hex(v) {
return v < 0x10 ? "0" + v.toString(16) : v.toString(16);
}
function d3_rgb_parse(format, rgb, hsl) {
var r, // red channel; int in [0, 255]
g, // green channel; int in [0, 255]
b, // blue channel; int in [0, 255]
@ -12,26 +35,27 @@ function d3_rgb(format) {
m2 = m1[2].split(",");
switch (m1[1]) {
case "hsl": {
return d3_rgb_hsl(
return hsl(
parseFloat(m2[0]), // degrees
parseFloat(m2[1]) / 100, // percentage
parseFloat(m2[2]) / 100); // percentage
parseFloat(m2[2]) / 100 // percentage
);
}
case "rgb": {
return {
r: d3_rgb_parse(m2[0]),
g: d3_rgb_parse(m2[1]),
b: d3_rgb_parse(m2[2])
};
return rgb(
d3_rgb_parseNumber(m2[0]),
d3_rgb_parseNumber(m2[1]),
d3_rgb_parseNumber(m2[2])
);
}
}
}
/* Named colors. */
if (name = d3_rgb_names[format]) return name;
if (name = d3_rgb_names[format]) return rgb(name.r, name.g, name.b);
/* Null or undefined. */
if (format == null) return d3_rgb_names.black;
if (format == null) return rgb(0, 0, 0);
/* Hexadecimal colors: #rgb and #rrggbb. */
if (format.charAt(0) == "#") {
@ -49,39 +73,29 @@ function d3_rgb(format) {
b = parseInt(b, 16);
}
return {r: r, g: g, b: b};
};
function d3_rgb_hsl(h, s, l) {
var m1,
m2;
/* Some simple corrections for h, s and l. */
h = h % 360; if (h < 0) h += 360;
s = s < 0 ? 0 : s > 1 ? 1 : s;
l = l < 0 ? 0 : l > 1 ? 1 : l;
/* From FvD 13.37, CSS Color Module Level 3 */
m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
m1 = 2 * l - m2;
function v(h) {
if (h > 360) h -= 360;
else if (h < 0) h += 360;
if (h < 60) return m1 + (m2 - m1) * h / 60;
if (h < 180) return m2;
if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
return m1;
}
function vv(h) {
return Math.round(v(h) * 255);
}
return {r: vv(h + 120), g: vv(h), b: vv(h - 120)};
return rgb(r, g, b);
}
function d3_rgb_parse(c) { // either integer or percentage
function d3_rgb_hsl(r, g, b) {
var min = Math.min(r /= 255, g /= 255, b /= 255),
max = Math.max(r, g, b),
d = max - min,
h,
s,
l = (max + min) / 2;
if (d) {
s = l < .5 ? d / (max + min) : d / (2 - max - min);
if (r == max) h = (g - b) / d + (g < b ? 6 : 0);
else if (g == max) h = (b - r) / d + 2;
else h = (r - g) / d + 4;
h *= 60;
} else {
s = h = 0;
}
return d3_hsl(h, s, l);
}
function d3_rgb_parseNumber(c) { // either integer or percentage
var f = parseFloat(c);
return c.charAt(c.length - 1) == "%" ? Math.round(f * 2.55) : f;
}
@ -237,5 +251,8 @@ var d3_rgb_names = {
};
for (var d3_rgb_name in d3_rgb_names) {
d3_rgb_names[d3_rgb_name] = d3_rgb(d3_rgb_names[d3_rgb_name]);
d3_rgb_names[d3_rgb_name] = d3_rgb_parse(
d3_rgb_names[d3_rgb_name],
d3_rgb,
d3_hsl_rgb);
}

Просмотреть файл

@ -13,7 +13,16 @@ var d3 = {
ease: 1,
event: 1,
format: 1,
hsl: 1,
rgb: {
r: 1,
g: 1,
b: 1
},
hsl: {
h: 1,
s: 1,
l: 1
},
interpolate: 1,
interpolateNumber: 1,
interpolateArray: 1,

Просмотреть файл

@ -1,30 +1,54 @@
/*
* This product includes color specifications and designs developed by Cynthia
* Brewer (http://colorbrewer.org/). See lib/colorbrewer for more information.
*/
d3.scale.category10 = function() {
return d3.scale.ordinal().range(d3_category10);
};
d3.scale.category19 = function() {
return d3.scale.ordinal().range(d3_category19);
};
d3.scale.category20 = function() {
return d3.scale.ordinal().range(d3_category20);
};
d3.scale.category20b = function() {
return d3.scale.ordinal().range(d3_category20b);
};
d3.scale.category20c = function() {
return d3.scale.ordinal().range(d3_category20c);
};
var d3_category10 = [
"#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd",
"#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"
];
var d3_category19 = [
"#9c9ede", "#7375b5", "#4a5584", "#cedb9c", "#b5cf6b",
"#8ca252", "#637939", "#e7cb94", "#e7ba52", "#bd9e39",
"#8c6d31", "#e7969c", "#d6616b", "#ad494a", "#843c39",
"#de9ed6", "#ce6dbd", "#a55194", "#7b4173"
var d3_category20 = [
"#1f77b4", "#aec7e8",
"#ff7f0e", "#ffbb78",
"#2ca02c", "#98df8a",
"#d62728", "#ff9896",
"#9467bd", "#c5b0d5",
"#8c564b", "#c49c94",
"#e377c2", "#f7b6d2",
"#7f7f7f", "#c7c7c7",
"#bcbd22", "#dbdb8d",
"#17becf", "#9edae5"
];
var d3_category20 = [
"#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c",
"#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5",
"#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f",
"#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5"
var d3_category20b = [
"#393b79", "#5254a3", "#6b6ecf", "#9c9ede",
"#637939", "#8ca252", "#b5cf6b", "#cedb9c",
"#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94",
"#843c39", "#ad494a", "#d6616b", "#e7969c",
"#7b4173", "#a55194", "#ce6dbd", "#de9ed6"
];
var d3_category20c = [
"#3182bd", "#6baed6", "#9ecae1", "#c6dbef",
"#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2",
"#31a354", "#74c476", "#a1d99b", "#c7e9c0",
"#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb",
"#636363", "#969696", "#bdbdbd", "#d9d9d9"
];