Skip to content

Instantly share code, notes, and snippets.

@MasonChinkin
Forked from micahstubbs/.block
Last active August 14, 2018 22:59
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 MasonChinkin/5776c090ef29ad707e7835ee001662bd to your computer and use it in GitHub Desktop.
Save MasonChinkin/5776c090ef29ad707e7835ee001662bd to your computer and use it in GitHub Desktop.
US Federal Budget Dashboard
license: Apache-2.0
border: no
height: 780

US Federal Budget Balance, 1968-2017

Hover over the categories!

Rough draft of a federal budget dashboard. Could use a lot of UX improvement, but I like that it fits high and low level detail into a small space.

See this in webpage form on my website at
https://masonchinkin.github.io/us-budget-sankey.html#portfolio

Notes:

  1. I want to animate the updated Sankey, but as you can see HERE the nodes do not relocate properly.
  2. THANK YOU to Micah Stubbs for helping me use bl.ocks and being so generous with his time.
var fontScale = d3.scaleLinear()
.range([14, 22]);
// format variables
var formatNumber = d3.format(".1f"), // zero decimal places
format = function(d) { return formatNumber(d); },
color = d3.scaleOrdinal(d3.schemeCategory20);
var key; //initialize
//console.log(key)
// format date
var timeParse = d3.timeParse("%Y")
var formatYear = d3.timeFormat("%Y")
//transition times
var highightTransition = 50
//starting year
var thisYear = 1968
// load the data
d3.csv("us-budget-sankey-main.csv", function(error, csv) {
if (error) throw error;
// load deficit data
d3.csv("us-budget-sankey-deficit.csv", function(error, deficit) {
if (error) throw error;
// load bars data
d3.csv("us-budget-sankey-bars.csv", function(error, barData) {
if (error) throw error;
newData(csv, deficit, thisYear);
drawBars(barData)
drawSankey()
drawDeficit()
drawSlider()
drawLines();
});
});
});
function newData(csv, deficit, thisYear) {
thisYearCsv = csv.filter(function(d) {
if (d['year'] == thisYear) {
return d
}
});
//console.log(thisYearCsv)
thisYearDeficit = deficit.filter(function(d) {
if (d['year'] == thisYear) {
return d
}
});
//console.log(thisYearDeficit)
//create an array to push all sources and targets, before making them unique
//because starting nodes are not targets and end nodes are not sources
arr = [];
thisYearCsv.forEach(function(d) {
arr.push(d.source);
arr.push(d.target);
}); //console.log(arr.filter(onlyUnique))
// create nodes array
nodes = arr.filter(onlyUnique).map(function(d, i) {
return {
node: i,
name: d
}
});
//console.log(nodes)
// create links array
links = thisYearCsv.map(function(thisYearCsv_row) {
return {
source: getNode("source"),
target: getNode("target"),
value: +thisYearCsv_row.value,
type: thisYearCsv_row.type //to alow for proper keying
}
function getNode(type) {
return nodes.filter(function(node_object) { return node_object.name == thisYearCsv_row[type]; })[0].node;
}
});
//console.log(links)
lineData = csv
lineData.forEach(function(d) {
d.year = +d.year;
d.value = +d.value;
});
//console.log(lineData)
};
function drawBars(barData) {
// set the dimensions and margins of the graph
barsMargin = { top: 10, right: 5, bottom: 10, left: 5 },
barsWidth = barsContainer.offsetWidth - barsMargin.left - barsMargin.right,
barsHeight = 100 - barsMargin.top - barsMargin.bottom;
// append the svg object to the body of the page
barsSvg = d3.select("#barsContainer").append("svg")
.attr("width", barsWidth + barsMargin.left + barsMargin.right)
.attr("height", barsHeight + barsMargin.top + barsMargin.bottom)
.attr('class', 'barsCanvas')
.style('background', '#e8e8e8')
.append("g")
.attr("transform",
"translate(" + barsMargin.left + "," + barsMargin.top + ")");
barData.forEach(function(d) {
d.year = +d.year;
});
//console.log(barData)
var stack = d3.stack();
var keys = barData.columns.slice(2);
stack.keys(keys)
.offset(d3.stackOffsetDiverging)
//data, stacked
series = stack(barData);
//console.log(series)
//scales
barsXScale = d3.scaleBand()
.domain(barData.map(function(d) { return d.year }))
.range([barsMargin.left, barsWidth - barsMargin.right])
.paddingInner(0.1)
.paddingOuter(0.75);
barsYScale = d3.scaleLinear()
.domain([d3.min(series, stackMin), d3.max(series, stackMax)])
.range([barsHeight - barsMargin.bottom, barsMargin.top])
.nice();
//group data rows
var bars = barsSvg.selectAll('#bars')
.data(series)
.enter()
.append('g')
.attr('id', 'bars')
.attr("class", function(d, i) {
return d.key;
});
//add rect for each data value
rects = bars.selectAll('rect')
.data(function(d) { return d; })
.enter()
.append('rect')
.attr('x', function(d, i) {
return barsXScale(d.data.year);
})
.attr('y', function(d) {
return barsYScale(d[1]);
})
.attr('height', function(d) {
return barsYScale(d[0]) - barsYScale(d[1]);
})
.attr('class', 'bar')
.attr('year', function(d) { return d.data.year })
.attr('width', barsXScale.bandwidth)
.style('fill', function(d) { if (d3.select(this.parentNode).attr('class') === 'Revenue') { return 'green' } else { return 'red' } })
.style('opacity', function(d) { if (d.data.year === thisYear) { return 0.8 } else { return 0.6 } })
.style('stroke', function(d) { if (d.data.year === thisYear) { return 'black' } })
.style('stroke-width', function(d) { if (d.data.year === thisYear) { return '2px' } });
//net line//
//define line
line = d3.line()
.x(function(d) { return barsXScale(d.year) + (barsXScale.bandwidth() / 2); })
.y(function(d) { return barsYScale(d.Balance); });
//create line
barsSvg.append("path")
.datum(barData)
.attr("id", "line")
.attr("d", line)
.style('fill', 'none')
.style('stroke', 'black')
.style('stroke-width', 3);
//labels
barsSvg.append('text')
.attr("x", barsWidth / 2)
.attr("y", barsMargin.top * .5)
.attr("dy", "0em")
.text('Revenue/Surplus')
.attr('font-size', 16)
.attr('font-weight', 'bold')
.style('text-anchor', 'middle');
barsSvg.append('text')
.attr("x", barsWidth / 2)
.attr("y", barsHeight + barsMargin.bottom * .5)
.attr("dy", "0em")
.text('Spending/Deficit')
.attr('font-size', 16)
.attr('font-weight', 'bold')
.style('text-anchor', 'middle');
}
function updateBars(thisYear) {
var transition = 50
rects.transition()
.duration(transition)
.style('opacity', function(d) { if (d.data.year === thisYear) { return 0.8 } else { return 0.6 } })
.style('stroke', function(d) { if (d.data.year === thisYear) { return 'black' } })
.style('stroke-width', function(d) { if (d.data.year === thisYear) { return '2px' } });
}
function drawSankey() {
d3.selectAll(".sankeyCanvas").remove();
// set the dimensions and margins of the graph
sankeyMargin = { top: 30, right: 10, bottom: 10, left: 10 },
sankeyWidth = sankeyContainer.offsetWidth - sankeyMargin.left - sankeyMargin.right,
sankeyHeight = 415 - sankeyMargin.top - sankeyMargin.bottom;
// append the svg object to the body of the page
sankeySvg = d3.select("#sankeyContainer").append("svg")
.attr("width", sankeyWidth + sankeyMargin.left + sankeyMargin.right)
.attr("height", sankeyHeight + sankeyMargin.top + sankeyMargin.bottom)
.attr('class', 'sankeyCanvas')
.style('background', '#e8e8e8')
.append("g")
.attr("transform",
"translate(" + sankeyMargin.left + "," + sankeyMargin.top + ")");
// Set the sankey diagram properties
sankey = d3.sankey()
.nodeWidth(60)
.nodePadding(20)
.size([sankeyWidth, sankeyHeight]);
var path = sankey.link();
sankey.nodes(nodes)
.links(links)
.layout(1000);
fontScale.domain(d3.extent(nodes, function(d) { return d.value }));
// add in the links
var link = sankeySvg.append("g").selectAll(".link")
.data(links, function(d) { return d.id; })
.enter().append("path")
.attr("class", "link")
.attr("d", path)
.style('stroke', function(d) { if (d.type == 'Revenue') { return 'green' } else if (d.type == 'Spending') { return 'red' } else { return 'grey' } })
.style("stroke-width", function(d) { return Math.max(1, d.dy); })
.attr('key', function(d) { if (d.type == 'Revenue') { return d.source.name.split(' ').join('_') } else { return d.target.name.split(' ').join('_') } })
.on('mouseover', highlight);
// add in the nodes
var node = sankeySvg.append("g").selectAll(".node")
.data(nodes)
.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) {
return "translate(" + d.x + "," + d.y + ")"
});
// add the rectangles for the nodes
node.append("rect")
.attr("height", function(d) {
return d.dy < 0 ? .1 : d.dy;
})
.attr("width", sankey.nodeWidth())
.attr('key', function(d) {
return d.name.split(' ').join('_');
})
.attr('value', function(d) {
return d.value;
})
.attr('class', 'nodeRect')
.style("fill", 'lightgrey')
.style("opacity", 0.5)
.style("stroke", 'black')
.on('mouseover', highlight);
// title for the nodes
node.append("text")
.attr("x", -6)
.attr("y", function(d) { return d.dy / 2; })
.attr("dy", ".35em")
.attr("text-anchor", "end")
.attr("transform", null)
.style("font-size", function(d) {
return Math.floor(fontScale(d.value)) + "px";
})
.text(function(d) { return d.name; })
.filter(function(d) { return d.x < sankeyWidth / 2; })
.attr("x", 6 + sankey.nodeWidth())
.attr("text-anchor", "start")
.attr('class', 'nodeLabel');
// % for the nodes
node.append("text")
.attr("text-anchor", "middle")
.attr("x", 30)
.attr("y", function(d) { return d.dy / 2; })
.style("font-size", 16)
.attr("dy", ".35em")
.filter(function(d) { return d.value > 1 })
.filter(function(d) { return d.node != 20 }) //do spending seperately to correctly show surplus
.text(function(d) { return format(d.value) + "%" })
.attr('class', 'nodePercent');
//PERCENT OF GDP
sankeySvg.append('text')
.attr("x", 0)
.attr("y", -5)
.attr("dy", "0em")
.text('Percent of GDP (May not add up due to rounding)')
.attr('font-size', 20)
.attr('font-weight', 'bold')
.attr('class', 'percent');
// % for spending in times of surplus using seperate data
node.append("text")
.attr("text-anchor", "middle")
.attr("x", 30)
.attr("y", function(d) { return d.dy / 2; })
.style("font-size", 18)
.attr("dy", ".35em")
.filter(function(d) { return d.node == 20 })
.text(function() {
return format(thisYearDeficit[0].spending) + "%"
})
.attr('class', 'nodePercent');
};
function drawDeficit() {
//highlight deficit
barHeight = d3.select('rect[key=Spending]').attr('height');
barVal = d3.select('rect[key=Spending]').attr('value');
deficitVal = thisYearDeficit[0].deficit
//get deficit bar size with ratio of spending value to bar height
deficitBarRatio = (barHeight * deficitVal) / barVal;
//console.log(deficitBarRatio)
deficitBar = d3.select('rect[key=Spending]')
.select(function() { return this.parentNode })
.append('rect')
.attr("height", function() { if (deficitBarRatio < 0) { return -deficitBarRatio } else { return deficitBarRatio } })
.attr("width", sankey.nodeWidth())
.attr("y", function(d) { if (deficitBarRatio < 0) { return d.dy + deficitBarRatio; } else { return d.dy - deficitBarRatio } })
.style('fill', function() {
if (deficitBarRatio < 0) { return 'red' } else { return 'blue' }
})
.style('opacity', 0.8)
.attr('class', 'deficit');
function deficitType() { if (thisYearDeficit[0].deficit < 0) { return "Deficit" } else { return "Surplus" } };
sankeySvg.append('text')
.attr("text-anchor", "middle")
.attr("x", sankeyWidth / 2)
.attr("y", sankeyHeight * .92)
.style("font-size", 28)
.style("font-weight", 'bold')
.attr('class', 'deficitLabel')
.text(function() {
if (thisYearDeficit[0].deficit < 0) { return format(-thisYearDeficit[0].deficit) + "% " + "Deficit" } else { return format(thisYearDeficit[0].deficit) + "% " + "Surplus" }
})
.style('fill', function() {
if (deficitBarRatio < 0) { return 'red' } else { return 'blue' }
});
};
function drawSlider() {
//Slider
var slider = d3.sliderHorizontal()
.min(1968)
.max(2017)
.step(1)
.width(barsContainer.offsetWidth - 62)
.tickFormat(d3.format(".4"))
.on('end', val => { //use end instead of onchange, is when user releases mouse
thisYear = val;
d3.csv("us-budget-sankey-main.csv", function(error, csv) {
if (error) throw error;
d3.csv("us-budget-sankey-deficit.csv", function(error, deficit) {
if (error) throw error;
newData(csv, deficit, thisYear);
drawSankey()
drawDeficit()
//keep sasnkey node highlighted on redraw
d3.selectAll('.link')
.filter(function(d) { return d3.select(this).attr('key') == key })
.transition()
.duration(highightTransition)
.style('stroke-opacity', 0.7);
d3.selectAll('.nodeRect')
.filter(function(d) { return d3.select(this).attr('key') == key })
.transition()
.duration(highightTransition)
.style('opacity', 1);
});
});
})
.on('onchange', val => { //use end instead of onchange, is when user releases mouse
thisYear = val;
updateBars(thisYear)
updateThisYearLine(thisYear)
});
var g = d3.select("div#slider").append("svg")
.attr("width", barsContainer.offsetWidth)
.attr("height", 100)
.append("g")
.attr("transform", "translate(30,30)");
g.call(slider);
d3.selectAll('#slider')
.style('font-size', 20)
}
function drawLines() {
//seperate datasets filtered by type
var revLineData = lineData.filter(function(d) { return d.type == 'Revenue' });
var spendLineData = lineData.filter(function(d) { return d.type == 'Spending' });
//console.log(revLineData)
//console.log(spendLineData)
var revDataNested = d3.nest()
.key(function(d) { return d.source })
.entries(revLineData);
var spendDataNested = d3.nest()
.key(function(d) { return d.target })
.entries(spendLineData);
//console.log(revDataNested)
//console.log(spendDataNested)
//Dimensions
lineMargin = { top: 15, right: 20, bottom: 10, left: 20, middle: 20 },
lineWidth = linesContainer.offsetWidth - lineMargin.left - lineMargin.right,
lineHeight = 140 - lineMargin.top - lineMargin.bottom;
lineSvg = d3.select("#linesContainer").append("svg")
.attr("width", lineWidth + lineMargin.left + lineMargin.right)
.attr("height", lineHeight + lineMargin.top + lineMargin.bottom)
.style('background', '#e8e8e8')
.append("g")
.attr("transform",
"translate(" + lineMargin.left + "," + lineMargin.top + ")");
// set the domain and range
revLineX = d3.scaleBand()
.domain(revLineData.map(function(d) { return d.year }))
.range([lineMargin.left, lineWidth / 2 - lineMargin.middle]);
spendLineX = d3.scaleBand()
.domain(spendLineData.map(function(d) { return d.year }))
.range([lineWidth / 2 + lineMargin.middle, lineWidth - lineMargin.right]);
lineY = d3.scaleLinear()
.domain([0, d3.max(revLineData, function(d) { return d.value; })])
.range([lineHeight - lineMargin.bottom, lineMargin.top]);
// define the line
var revLine = d3.line()
.x(function(d) { return revLineX(d.year); })
.y(function(d) { return lineY(d.value); });
var spendLine = d3.line()
.x(function(d) { return spendLineX(d.year); })
.y(function(d) { return lineY(d.value); });
// revenue lines
var revLines = lineSvg.selectAll('lineNode')
.data(revDataNested)
.enter().append('g')
.attr('class', "lineNode")
.attr('key', function(d) { return d.key.split(' ').join('_') });
revLines.append('path')
.attr('class', function(d) { return "line " + d.key })
.attr("d", function(d) { return revLine(d.values) })
.attr('key', function(d) { return d.key.split(' ').join('_') })
.style('opacity', 0.2)
.style('stroke', 'green')
.on('mouseover', highlight);
// revenue lines
var spendLines = lineSvg.selectAll('lineNode')
.data(spendDataNested)
.enter().append('g')
.attr('class', "lineNode")
.attr('key', function(d) { return d.key.split(' ').join('_') });
spendLines.append('path')
.attr('class', function(d) { return "line " + d.key })
.attr("d", function(d) { return spendLine(d.values) })
.attr('key', function(d) { return d.key.split(' ').join('_') })
.style('opacity', 0.2)
.style('stroke', 'red')
.on('mouseover', highlight);
//headers
lineSvg.append('text')
.attr("x", lineWidth * .25)
.attr("y", lineMargin.top / 4)
.style('text-anchor', 'middle')
.attr('font-size', 20)
.attr('font-weight', 'bold')
.attr('class', 'lineTitle')
.text('Revenue');
lineSvg.append('text')
.attr("x", lineWidth * .75)
.attr("y", lineMargin.top / 4)
.style('text-anchor', 'middle')
.attr('font-size', 20)
.attr('font-weight', 'bold')
.attr('class', 'lineTitle')
.text('Spending');
//Define axes
var revXAxis = d3.axisBottom()
.scale(revLineX)
.tickValues(revLineX.domain().filter(function(d, i) { return i === 0 || i === 49 })) //first and last year
.tickSize(0);
var spendXAxis = d3.axisBottom()
.scale(spendLineX)
.tickValues(revLineX.domain().filter(function(d, i) { return i === 0 || i === 49 }))
.tickSize(0);
//create axes
lineSvg.append('g')
.attr('class', 'revAxis x')
.attr('transform', 'translate(-7,' + (lineHeight - lineMargin.bottom) + ')')
.call(revXAxis)
.style('font-size', 12)
.style('font-weight', 'bold')
.select('.domain')
.style('opacity', 0)
//create axes
lineSvg.append('g')
.attr('class', 'spendAxis x')
.attr('transform', 'translate(-7,' + (lineHeight - lineMargin.bottom) + ')')
.call(spendXAxis)
.style('font-size', 12)
.style('font-weight', 'bold')
.select('.domain')
.style('opacity', 0);
//lines and labels indicating current year
lineSvg.append('g')
.attr("class", "thisYearLine rev")
.append('line')
.attr("x1", revLineX(thisYear))
.attr("x2", revLineX(thisYear))
.attr("y1", lineMargin.top)
.attr("y2", lineHeight - lineMargin.bottom);
d3.select('.thisYearLine.rev')
.append('text')
.text(function(d) { return thisYear })
.attr("x", revLineX(thisYear))
.attr("y", lineHeight + lineMargin.bottom * .2)
.style('font-size', 14)
.style('text-anchor', 'middle')
.style('font-weight', 'bold')
.style('opacity', 0);
lineSvg.append('g')
.attr('class', 'thisYearLine spend')
.append("line")
.attr("x1", spendLineX(thisYear))
.attr("x2", spendLineX(thisYear))
.attr("y1", lineMargin.top)
.attr("y2", lineHeight - lineMargin.bottom);
d3.select('.thisYearLine.spend')
.append('text')
.text(function(d) { return thisYear })
.attr("x", spendLineX(thisYear))
.attr("y", lineHeight + lineMargin.bottom * .2)
.style('font-size', 14)
.style('text-anchor', 'middle')
.style('font-weight', 'bold')
.style('opacity', 0);
}
function updateThisYearLine(thisYear) {
//line indicating current year
d3.select(".thisYearLine.rev line")
.attr("x1", revLineX(thisYear))
.attr("x2", revLineX(thisYear));
d3.select('.thisYearLine.rev text')
.text(function(d) { return thisYear })
.attr("x", revLineX(thisYear))
.style('opacity', function(d) { if (thisYear == 1968 || thisYear == 2017) { return 0 } else { return 1 } });
d3.select(".thisYearLine.spend line")
.attr("x1", spendLineX(thisYear))
.attr("x2", spendLineX(thisYear));
d3.select('.thisYearLine.spend text')
.text(function(d) { return thisYear })
.attr("x", spendLineX(thisYear))
.style('opacity', function(d) { if (thisYear == 1968 || thisYear == 2017) { return 0 } else { return 1 } });;
(function(d) {
if (key != undefined) { //data points
d3.selectAll('.lineLabel').remove()
d3.selectAll('.lineNode').filter(function(d, i) { return d3.select(this).attr('key') == key })
.append('g')
.selectAll('text')
.data(lineLabelData)
.enter()
.append('text')
.filter(function(d, i) { return i === 0 || i === (lineLabelData.length - 1) || d.year === thisYear })
.attr("x", function(d, i) { if (d.type == 'Revenue') { return revLineX(d.year) } else { return spendLineX(d.year) } })
.attr("y", function(d) { return lineY(d.value) - 14 })
.text(function(d, i) { return formatNumber(d.value); })
.attr('class', 'lineLabel')
.style('text-anchor', 'middle')
.attr('font-size', 14)
.style('fill', 'black')
.attr('font-weight', 'bold');
}
})()
}
function highlight() {
key = d3.select(this).attr('key')
//console.log(key)
lineLabelData = lineData.filter(function(d) { return d.source.split(' ').join('_') == key || d.target.split(' ').join('_') == key })
d3.selectAll('.line')
.filter(function(d) { return d3.select(this).attr('key') == key })
.transition()
.duration(highightTransition)
.style('opacity', 1);
d3.selectAll('.line')
.filter(function(d) { return d3.select(this).attr('key') != key })
.transition()
.duration(highightTransition)
.style('opacity', 0.2);
d3.selectAll('.link')
.filter(function(d) { return d3.select(this).attr('key') == key })
.transition()
.duration(highightTransition)
.style('stroke-opacity', 0.7);
d3.selectAll('.link')
.filter(function(d) { return d3.select(this).attr('key') != key })
.transition()
.duration(highightTransition)
.style('stroke-opacity', 0.4);
d3.selectAll('.nodeRect')
.filter(function(d) { return d3.select(this).attr('key') == key })
.transition()
.duration(highightTransition)
.style('opacity', 1);
d3.selectAll('.nodeRect')
.filter(function(d) { return d3.select(this).attr('key') != key })
.transition()
.duration(highightTransition)
.style('opacity', 0.5);
//data points
d3.selectAll('.lineLabel').remove()
d3.selectAll('.lineNode').filter(function(d, i) { return d3.select(this).attr('key') == key })
.append('g')
.selectAll('text')
.data(lineLabelData)
.enter()
.append('text')
.filter(function(d, i) { return i === 0 || i === (lineLabelData.length - 1) || d.year === thisYear })
.attr("x", function(d, i) { if (d.type == 'Revenue') { return revLineX(d.year) } else { return spendLineX(d.year) } })
.attr("y", function(d) { return lineY(d.value) - 14 })
.text(function(d, i) { return formatNumber(d.value); })
.attr('class', 'lineLabel')
.style('text-anchor', 'middle')
.attr('font-size', 14)
.style('fill', 'black')
.attr('font-weight', 'bold');
}
function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
};
function stackMin(serie) {
return d3.min(serie, function(d) { return d[0]; });
};
function stackMax(serie) {
return d3.max(serie, function(d) { return d[1]; });
};
//***BELOW IS UNUSED***
//animated update is WIP, labels arent repositioning correctly, likely because nodes don't reorder when data does
function updateSankey() {
sankey.nodes(nodes)
.links(links)
.layout(1000);
//sankey.relayout(); PURPOSE???
fontScale.domain(d3.extent(nodes, function(d) { return d.value }));
// add in the links
sankeySvg.selectAll(".link")
.data(links)
.transition()
.duration(transition)
.attr("d", path)
.style("stroke-width", function(d) { return Math.max(1, d.dy); });
// add in the nodes
sankeySvg.selectAll(".node")
.data(nodes)
.transition()
.duration(transition)
.attr("transform", function(d) {
return "translate(" + d.x + "," + d.y + ")"
});
// add the rectangles for the nodes
sankeySvg.selectAll(".node rect")
.data(nodes)
.transition()
.duration(transition)
.attr("height", function(d) {
return d.dy < 0 ? .1 : d.dy;
});
// title for the nodes
sankeySvg.selectAll(".nodeLabel")
.data(nodes)
.transition()
.duration(transition)
.style("font-size", function(d) {
return Math.floor(fontScale(d.value)) + "px";
});
// % for the nodes
sankeySvg.selectAll(".nodePercent")
.data(nodes)
.text(function(d) { return format(d.value) + "%" });
}
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("d3-array"),require("d3-axis"),require("d3-dispatch"),require("d3-drag"),require("d3-ease"),require("d3-scale"),require("d3-selection")):"function"==typeof define&&define.amd?define(["exports","d3-array","d3-axis","d3-dispatch","d3-drag","d3-ease","d3-scale","d3-selection"],e):e(t.d3=t.d3||{},t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3)}(this,function(t,e,a,r,n,l,i,s){"use strict";function c(){function t(t){z=t.selection?t.selection():t,M=v[0]instanceof Date?i.scaleTime():i.scaleLinear(),M=M.domain(v).range([0,h]).clamp(!0),D=i.scaleLinear().range(M.range()).domain(M.range()).clamp(!0),p=i.scaleLinear().range(v).domain(v).clamp(!0)(p),q=q||M.tickFormat(),z.selectAll(".axis").data([null]).enter().append("g").attr("transform","translate(0,7)").attr("class","axis");var e=z.selectAll(".slider").data([null]),r=e.enter().append("g").attr("class","slider").attr("cursor","ew-resize").attr("transform","translate(0,0)").call(n.drag().on("start",function(){s.select(this).classed("active",!0);var t=D(s.event.x),a=u(M.invert(t));f(a),A.call("start",e,a),d(a)}).on("drag",function(){var t=D(s.event.x),a=u(M.invert(t));f(a),A.call("drag",e,a),d(a)}).on("end",function(){s.select(this).classed("active",!1);var t=D(s.event.x),a=u(M.invert(t));f(a),A.call("end",e,a),d(a)}));r.append("line").attr("class","track").attr("x1",0).attr("y1",0).attr("y2",0).attr("stroke","#bbb").attr("stroke-width",6).attr("stroke-linecap","round"),r.append("line").attr("class","track-inset").attr("x1",0).attr("y1",0).attr("y2",0).attr("stroke","#eee").attr("stroke-width",4).attr("stroke-linecap","round"),r.append("line").attr("class","track-overlay").attr("x1",0).attr("y1",0).attr("y2",0).attr("stroke","transparent").attr("stroke-width",40).attr("stroke-linecap","round").merge(e.select(".track-overlay"));var l=r.append("g").attr("class","parameter-value").attr("transform","translate("+M(p)+",0)").attr("font-family","sans-serif").attr("text-anchor","middle");l.append("path").attr("d",x).attr("fill","white").attr("stroke","#777"),g&&l.append("text").attr("font-size",30).attr("y",27).attr("dy",".71em").text(q(p)),t.select(".track").attr("x2",M.range()[1]),t.select(".track-inset").attr("x2",M.range()[1]),t.select(".track-overlay").attr("x2",M.range()[1]),t.select(".axis").call(a.axisBottom(M).tickFormat(q).ticks(w).tickValues(y)),z.select(".axis").select(".domain").remove(),t.select(".axis").attr("transform","translate(0,7)"),t.selectAll(".axis text").attr("fill","#aaa").attr("y",20).attr("dy",".71em").attr("text-anchor","middle"),t.selectAll(".axis line").attr("stroke","#aaa"),t.select(".parameter-value").attr("transform","translate("+M(p)+",0)"),c()}function c(){if(g){var t=[];z.selectAll(".axis .tick").each(function(e){t.push(Math.abs(e-p))});var a=e.scan(t);z.selectAll(".axis .tick text").attr("opacity",function(t,e){return e===a?0:1})}}function u(t){if(k){var a=(t-v[0])%k,r=t-a;return 2*a>k&&(r+=k),t instanceof Date?new Date(r):r}if(b){var n=e.scan(b.map(function(e){return Math.abs(t-e)}));return b[n]}return t}function d(e){p!==e&&(p=e,A.call("onchange",t,e),c())}function f(t,e){e=void 0!==e&&e;var a=z.select(".parameter-value");e&&(a=a.transition().ease(l.easeQuadOut).duration(o)),a.attr("transform","translate("+M(t)+",0)"),g&&z.select(".parameter-value text").text(q(t))}var p=0,m=0,v=[0,10],h=100,g=!0,x="M-5.5,-5.5v10l6,5.5l6,-5.5v-10z",k=null,y=null,b=null,q=null,w=null,A=r.dispatch("onchange","start","end","drag"),z=null,M=null,D=null;return t.min=function(e){return arguments.length?(v[0]=e,t):v[0]},t.max=function(e){return arguments.length?(v[1]=e,t):v[1]},t.domain=function(e){return arguments.length?(v=e,t):v},t.width=function(e){return arguments.length?(h=e,t):h},t.tickFormat=function(e){return arguments.length?(q=e,t):q},t.ticks=function(e){return arguments.length?(w=e,t):w},t.value=function(e){if(!arguments.length)return p;var a=D(M(e)),r=u(M.invert(a));return f(r,!0),d(r),t},t.default=function(e){return arguments.length?(m=e,p=e,t):m},t.step=function(e){return arguments.length?(k=e,t):k},t.tickValues=function(e){return arguments.length?(y=e,t):y},t.marks=function(e){return arguments.length?(b=e,t):b},t.handle=function(e){return arguments.length?(x=e,t):x},t.displayValue=function(e){return arguments.length?(g=e,t):g},t.on=function(){var e=A.on.apply(A,arguments);return e===A?t:e},t}var o=200;t.sliderHorizontal=function(){return c()},Object.defineProperty(t,"__esModule",{value:!0})});
// https://d3js.org Version 4.11.0. Copyright 2017 Mike Bostock.
(function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})})(this,function(t){"use strict";function n(t){return function(n,e){return ls(t(n),e)}}function e(t,n){return[t,n]}function r(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=ks?10:o>=Ss?5:o>=Es?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=ks?10:o>=Ss?5:o>=Es?2:1)}function i(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=ks?i*=10:o>=Ss?i*=5:o>=Es&&(i*=2),n<t?-i:i}function o(t){return t.length}function u(t){return"translate("+(t+.5)+",0)"}function a(t){return"translate(0,"+(t+.5)+")"}function c(t){return function(n){return+t(n)}}function s(t){var n=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(n=Math.round(n)),function(e){return+t(e)+n}}function f(){return!this.__axis}function l(t,n){function e(e){var u=null==i?n.ticks?n.ticks.apply(n,r):n.domain():i,a=null==o?n.tickFormat?n.tickFormat.apply(n,r):Us:o,g=Math.max(l,0)+p,y=n.range(),m=+y[0]+.5,x=+y[y.length-1]+.5,b=(n.bandwidth?s:c)(n.copy()),w=e.selection?e.selection():e,M=w.selectAll(".domain").data([null]),T=w.selectAll(".tick").data(u,n).order(),N=T.exit(),k=T.enter().append("g").attr("class","tick"),S=T.select("line"),E=T.select("text");M=M.merge(M.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),T=T.merge(k),S=S.merge(k.append("line").attr("stroke","#000").attr(v+"2",d*l)),E=E.merge(k.append("text").attr("fill","#000").attr(v,d*g).attr("dy",t===Ds?"0em":t===Fs?"0.71em":"0.32em")),e!==w&&(M=M.transition(e),T=T.transition(e),S=S.transition(e),E=E.transition(e),N=N.transition(e).attr("opacity",Ys).attr("transform",function(t){return isFinite(t=b(t))?_(t):this.getAttribute("transform")}),k.attr("opacity",Ys).attr("transform",function(t){var n=this.parentNode.__axis;return _(n&&isFinite(n=n(t))?n:b(t))})),N.remove(),M.attr("d",t===Is||t==Os?"M"+d*h+","+m+"H0.5V"+x+"H"+d*h:"M"+m+","+d*h+"V0.5H"+x+"V"+d*h),T.attr("opacity",1).attr("transform",function(t){return _(b(t))}),S.attr(v+"2",d*l),E.attr(v,d*g).text(a),w.filter(f).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Os?"start":t===Is?"end":"middle"),w.each(function(){this.__axis=b})}var r=[],i=null,o=null,l=6,h=6,p=3,d=t===Ds||t===Is?-1:1,v=t===Is||t===Os?"x":"y",_=t===Ds||t===Fs?u:a;return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return r=qs.call(arguments),e},e.tickArguments=function(t){return arguments.length?(r=null==t?[]:qs.call(t),e):r.slice()},e.tickValues=function(t){return arguments.length?(i=null==t?null:qs.call(t),e):i&&i.slice()},e.tickFormat=function(t){return arguments.length?(o=t,e):o},e.tickSize=function(t){return arguments.length?(l=h=+t,e):l},e.tickSizeInner=function(t){return arguments.length?(l=+t,e):l},e.tickSizeOuter=function(t){return arguments.length?(h=+t,e):h},e.tickPadding=function(t){return arguments.length?(p=+t,e):p},e}function h(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r)throw new Error("illegal type: "+t);r[t]=[]}return new p(r)}function p(t){this._=t}function d(t,n){return t.trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})}function v(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function _(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=Bs,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}function g(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===js&&n.documentElement.namespaceURI===js?n.createElement(t):n.createElementNS(e,t)}}function y(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function m(){return new x}function x(){this._="@"+(++Vs).toString(36)}function b(t,n,e){return t=w(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function w(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function M(t){return t.trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}function T(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function N(t,n,e){var r=Qs.hasOwnProperty(t.type)?b:w;return function(i,o,u){var a,c=this.__on,s=r(n,o,u);if(c)for(var f=0,l=c.length;f<l;++f)if((a=c[f]).type===t.type&&a.name===t.name)return this.removeEventListener(a.type,a.listener,a.capture),this.addEventListener(a.type,a.listener=s,a.capture=e),void(a.value=n);this.addEventListener(t.type,s,e),a={type:t.type,name:t.name,value:n,listener:s,capture:e},c?c.push(a):this.__on=[a]}}function k(n,e,r,i){var o=t.event;n.sourceEvent=t.event,t.event=n;try{return e.apply(r,i)}finally{t.event=o}}function S(){}function E(){return[]}function A(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function C(t,n,e,r,i,o){for(var u,a=0,c=n.length,s=o.length;a<s;++a)(u=n[a])?(u.__data__=o[a],r[a]=u):e[a]=new A(t,o[a]);for(;a<c;++a)(u=n[a])&&(i[a]=u)}function z(t,n,e,r,i,o,u){var a,c,s,f={},l=n.length,h=o.length,p=new Array(l);for(a=0;a<l;++a)(c=n[a])&&(p[a]=s=af+u.call(c,c.__data__,a,n),s in f?i[a]=c:f[s]=c);for(a=0;a<h;++a)(c=f[s=af+u.call(t,o[a],a,o)])?(r[a]=c,c.__data__=o[a],f[s]=null):e[a]=new A(t,o[a]);for(a=0;a<l;++a)(c=n[a])&&f[p[a]]===c&&(i[a]=c)}function P(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function R(t){return function(){this.removeAttribute(t)}}function L(t){return function(){this.removeAttributeNS(t.space,t.local)}}function q(t,n){return function(){this.setAttribute(t,n)}}function U(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function D(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function O(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function F(t){return function(){this.style.removeProperty(t)}}function I(t,n,e){return function(){this.style.setProperty(t,n,e)}}function Y(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function B(t,n){return t.style.getPropertyValue(n)||cf(t).getComputedStyle(t,null).getPropertyValue(n)}function j(t){return function(){delete this[t]}}function H(t,n){return function(){this[t]=n}}function X(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function $(t){return t.trim().split(/^|\s+/)}function V(t){return t.classList||new W(t)}function W(t){this._node=t,this._names=$(t.getAttribute("class")||"")}function Z(t,n){for(var e=V(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function G(t,n){for(var e=V(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function J(t){return function(){Z(this,t)}}function Q(t){return function(){G(this,t)}}function K(t,n){return function(){(n.apply(this,arguments)?Z:G)(this,t)}}function tt(){this.textContent=""}function nt(t){return function(){this.textContent=t}}function et(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function rt(){this.innerHTML=""}function it(t){return function(){this.innerHTML=t}}function ot(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function ut(){this.nextSibling&&this.parentNode.appendChild(this)}function at(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ct(){return null}function st(){var t=this.parentNode;t&&t.removeChild(this)}function ft(t,n,e){var r=cf(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function lt(t,n){return function(){return ft(this,t,n)}}function ht(t,n){return function(){return ft(this,t,n.apply(this,arguments))}}function pt(t,n){this._groups=t,this._parents=n}function dt(){return new pt([[document.documentElement]],sf)}function vt(){t.event.stopImmediatePropagation()}function _t(t,n){var e=t.document.documentElement,r=ff(t).on("dragstart.drag",null);n&&(r.on("click.drag",hf,!0),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function gt(t,n,e,r,i,o,u,a,c,s){this.target=t,this.type=n,this.subject=e,this.identifier=r,this.active=i,this.x=o,this.y=u,this.dx=a,this.dy=c,this._=s}function yt(){return!t.event.button}function mt(){return this.parentNode}function xt(n){return null==n?{x:t.event.x,y:t.event.y}:n}function bt(){return"ontouchstart"in this}function wt(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Mt(){}function Tt(t){var n;return t=(t+"").trim().toLowerCase(),(n=mf.exec(t))?(n=parseInt(n[1],16),new At(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=xf.exec(t))?Nt(parseInt(n[1],16)):(n=bf.exec(t))?new At(n[1],n[2],n[3],1):(n=wf.exec(t))?new At(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Mf.exec(t))?kt(n[1],n[2],n[3],n[4]):(n=Tf.exec(t))?kt(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Nf.exec(t))?Ct(n[1],n[2]/100,n[3]/100,1):(n=kf.exec(t))?Ct(n[1],n[2]/100,n[3]/100,n[4]):Sf.hasOwnProperty(t)?Nt(Sf[t]):"transparent"===t?new At(NaN,NaN,NaN,0):null}function Nt(t){return new At(t>>16&255,t>>8&255,255&t,1)}function kt(t,n,e,r){return r<=0&&(t=n=e=NaN),new At(t,n,e,r)}function St(t){return t instanceof Mt||(t=Tt(t)),t?(t=t.rgb(),new At(t.r,t.g,t.b,t.opacity)):new At}function Et(t,n,e,r){return 1===arguments.length?St(t):new At(t,n,e,null==r?1:r)}function At(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Ct(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Rt(t,n,e,r)}function zt(t){if(t instanceof Rt)return new Rt(t.h,t.s,t.l,t.opacity);if(t instanceof Mt||(t=Tt(t)),!t)return new Rt;if(t instanceof Rt)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),u=NaN,a=o-i,c=(o+i)/2;return a?(u=n===o?(e-r)/a+6*(e<r):e===o?(r-n)/a+2:(n-e)/a+4,a/=c<.5?o+i:2-o-i,u*=60):a=c>0&&c<1?0:u,new Rt(u,a,c,t.opacity)}function Pt(t,n,e,r){return 1===arguments.length?zt(t):new Rt(t,n,e,null==r?1:r)}function Rt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Lt(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function qt(t){if(t instanceof Dt)return new Dt(t.l,t.a,t.b,t.opacity);if(t instanceof Ht){var n=t.h*Ef;return new Dt(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof At||(t=St(t));var e=Yt(t.r),r=Yt(t.g),i=Yt(t.b),o=Ot((.4124564*e+.3575761*r+.1804375*i)/Cf),u=Ot((.2126729*e+.7151522*r+.072175*i)/zf);return new Dt(116*u-16,500*(o-u),200*(u-Ot((.0193339*e+.119192*r+.9503041*i)/Pf)),t.opacity)}function Ut(t,n,e,r){return 1===arguments.length?qt(t):new Dt(t,n,e,null==r?1:r)}function Dt(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function Ot(t){return t>Uf?Math.pow(t,1/3):t/qf+Rf}function Ft(t){return t>Lf?t*t*t:qf*(t-Rf)}function It(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Yt(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Bt(t){if(t instanceof Ht)return new Ht(t.h,t.c,t.l,t.opacity);t instanceof Dt||(t=qt(t));var n=Math.atan2(t.b,t.a)*Af;return new Ht(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function jt(t,n,e,r){return 1===arguments.length?Bt(t):new Ht(t,n,e,null==r?1:r)}function Ht(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function Xt(t){if(t instanceof Vt)return new Vt(t.h,t.s,t.l,t.opacity);t instanceof At||(t=St(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Hf*r+Bf*n-jf*e)/(Hf+Bf-jf),o=r-i,u=(Yf*(e-i)-Ff*o)/If,a=Math.sqrt(u*u+o*o)/(Yf*i*(1-i)),c=a?Math.atan2(u,o)*Af-120:NaN;return new Vt(c<0?c+360:c,a,i,t.opacity)}function $t(t,n,e,r){return 1===arguments.length?Xt(t):new Vt(t,n,e,null==r?1:r)}function Vt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Wt(t,n,e,r,i){var o=t*t,u=o*t;return((1-3*t+3*o-u)*n+(4-6*o+3*u)*e+(1+3*t+3*o-3*u)*r+u*i)/6}function Zt(t,n){return function(e){return t+e*n}}function Gt(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function Jt(t,n){var e=n-t;return e?Zt(t,e>180||e<-180?e-360*Math.round(e/360):e):Kf(isNaN(t)?n:t)}function Qt(t){return 1==(t=+t)?Kt:function(n,e){return e-n?Gt(n,e,t):Kf(isNaN(n)?e:n)}}function Kt(t,n){var e=n-t;return e?Zt(t,e):Kf(isNaN(t)?n:t)}function tn(t){return function(n){var e,r,i=n.length,o=new Array(i),u=new Array(i),a=new Array(i);for(e=0;e<i;++e)r=Et(n[e]),o[e]=r.r||0,u[e]=r.g||0,a[e]=r.b||0;return o=t(o),u=t(u),a=t(a),r.opacity=1,function(t){return r.r=o(t),r.g=u(t),r.b=a(t),r+""}}}function nn(t){return function(){return t}}function en(t){return function(n){return t(n)+""}}function rn(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}function o(t,r,i,o,u,a){if(t!==i||r!==o){var c=u.push("translate(",null,n,null,e);a.push({i:c-4,x:ol(t,i)},{i:c-2,x:ol(r,o)})}else(i||o)&&u.push("translate("+i+n+o+e)}function u(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:ol(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}function a(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:ol(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}function c(t,n,e,r,o,u){if(t!==e||n!==r){var a=o.push(i(o)+"scale(",null,",",null,")");u.push({i:a-4,x:ol(t,e)},{i:a-2,x:ol(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}return function(n,e){var r=[],i=[];return n=t(n),e=t(e),o(n.translateX,n.translateY,e.translateX,e.translateY,r,i),u(n.rotate,e.rotate,r,i),a(n.skewX,e.skewX,r,i),c(n.scaleX,n.scaleY,e.scaleX,e.scaleY,r,i),n=e=null,function(t){for(var n,e=-1,o=i.length;++e<o;)r[(n=i[e]).i]=n.x(t);return r.join("")}}}function on(t){return((t=Math.exp(t))+1/t)/2}function un(t){return((t=Math.exp(t))-1/t)/2}function an(t){return((t=Math.exp(2*t))-1)/(t+1)}function cn(t){return function(n,e){var r=t((n=Pt(n)).h,(e=Pt(e)).h),i=Kt(n.s,e.s),o=Kt(n.l,e.l),u=Kt(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=u(t),n+""}}}function sn(t){return function(n,e){var r=t((n=jt(n)).h,(e=jt(e)).h),i=Kt(n.c,e.c),o=Kt(n.l,e.l),u=Kt(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=u(t),n+""}}}function fn(t){return function n(e){function r(n,r){var i=t((n=$t(n)).h,(r=$t(r)).h),o=Kt(n.s,r.s),u=Kt(n.l,r.l),a=Kt(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=u(Math.pow(t,e)),n.opacity=a(t),n+""}}return e=+e,r.gamma=n,r}(1)}function ln(){return Cl||(Rl(hn),Cl=Pl.now()+zl)}function hn(){Cl=0}function pn(){this._call=this._time=this._next=null}function dn(t,n,e){var r=new pn;return r.restart(t,n,e),r}function vn(){ln(),++Nl;for(var t,n=Zf;n;)(t=Cl-n._time)>=0&&n._call.call(null,t),n=n._next;--Nl}function _n(){Cl=(Al=Pl.now())+zl,Nl=kl=0;try{vn()}finally{Nl=0,yn(),Cl=0}}function gn(){var t=Pl.now(),n=t-Al;n>El&&(zl-=n,Al=t)}function yn(){for(var t,n,e=Zf,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Zf=n);Gf=t,mn(r)}function mn(t){Nl||(kl&&(kl=clearTimeout(kl)),t-Cl>24?(t<1/0&&(kl=setTimeout(_n,t-Pl.now()-zl)),Sl&&(Sl=clearInterval(Sl))):(Sl||(Al=Pl.now(),Sl=setInterval(gn,El)),Nl=1,Rl(_n)))}function xn(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>Dl)throw new Error("too late");return e}function bn(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>Fl)throw new Error("too late");return e}function wn(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("too late");return e}function Mn(t,n,e){function r(c){var s,f,l,h;if(e.state!==Ol)return o();for(s in a)if((h=a[s]).name===e.name){if(h.state===Il)return Ll(r);h.state===Yl?(h.state=jl,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete a[s]):+s<n&&(h.state=jl,h.timer.stop(),delete a[s])}if(Ll(function(){e.state===Il&&(e.state=Yl,e.timer.restart(i,e.delay,e.time),i(c))}),e.state=Fl,e.on.call("start",t,t.__data__,e.index,e.group),e.state===Fl){for(e.state=Il,u=new Array(l=e.tween.length),s=0,f=-1;s<l;++s)(h=e.tween[s].value.call(t,t.__data__,e.index,e.group))&&(u[++f]=h);u.length=f+1}}function i(n){for(var r=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(o),e.state=Bl,1),i=-1,a=u.length;++i<a;)u[i].call(null,r);e.state===Bl&&(e.on.call("end",t,t.__data__,e.index,e.group),o())}function o(){e.state=jl,e.timer.stop(),delete a[n];for(var r in a)return;delete t.__transition}var u,a=t.__transition;a[n]=e,e.timer=dn(function(t){e.state=Ol,e.timer.restart(r,e.delay,e.time),e.delay<=t&&r(t-e.delay)},0,e.time)}function Tn(t,n){var e,r;return function(){var i=bn(this,t),o=i.tween;if(o!==e)for(var u=0,a=(r=e=o).length;u<a;++u)if(r[u].name===n){(r=r.slice()).splice(u,1);break}i.tween=r}}function Nn(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=bn(this,t),u=o.tween;if(u!==r){i=(r=u).slice();for(var a={name:n,value:e},c=0,s=i.length;c<s;++c)if(i[c].name===n){i[c]=a;break}c===s&&i.push(a)}o.tween=i}}function kn(t,n,e){var r=t._id;return t.each(function(){var t=bn(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return wn(t,r).value[n]}}function Sn(t){return function(){this.removeAttribute(t)}}function En(t){return function(){this.removeAttributeNS(t.space,t.local)}}function An(t,n,e){var r,i;return function(){var o=this.getAttribute(t);return o===e?null:o===r?i:i=n(r=o,e)}}function Cn(t,n,e){var r,i;return function(){var o=this.getAttributeNS(t.space,t.local);return o===e?null:o===r?i:i=n(r=o,e)}}function zn(t,n,e){var r,i,o;return function(){var u,a=e(this);{if(null!=a)return(u=this.getAttribute(t))===a?null:u===r&&a===i?o:o=n(r=u,i=a);this.removeAttribute(t)}}}function Pn(t,n,e){var r,i,o;return function(){var u,a=e(this);{if(null!=a)return(u=this.getAttributeNS(t.space,t.local))===a?null:u===r&&a===i?o:o=n(r=u,i=a);this.removeAttributeNS(t.space,t.local)}}}function Rn(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}function Ln(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e}function qn(t,n){return function(){xn(this,t).delay=+n.apply(this,arguments)}}function Un(t,n){return n=+n,function(){xn(this,t).delay=n}}function Dn(t,n){return function(){bn(this,t).duration=+n.apply(this,arguments)}}function On(t,n){return n=+n,function(){bn(this,t).duration=n}}function Fn(t,n){if("function"!=typeof n)throw new Error;return function(){bn(this,t).ease=n}}function In(t){return(t+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})}function Yn(t,n,e){var r,i,o=In(n)?xn:bn;return function(){var u=o(this,t),a=u.on;a!==r&&(i=(r=a).copy()).on(n,e),u.on=i}}function Bn(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function jn(t,n){var e,r,i;return function(){var o=B(this,t),u=(this.style.removeProperty(t),B(this,t));return o===u?null:o===e&&u===r?i:i=n(e=o,r=u)}}function Hn(t){return function(){this.style.removeProperty(t)}}function Xn(t,n,e){var r,i;return function(){var o=B(this,t);return o===e?null:o===r?i:i=n(r=o,e)}}function $n(t,n,e){var r,i,o;return function(){var u=B(this,t),a=e(this);return null==a&&(this.style.removeProperty(t),a=B(this,t)),u===a?null:u===r&&a===i?o:o=n(r=u,i=a)}}function Vn(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}function Wn(t){return function(){this.textContent=t}}function Zn(t){return function(){var n=t(this);this.textContent=null==n?"":n}}function Gn(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Jn(t){return dt().transition(t)}function Qn(){return++Wl}function Kn(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function te(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function ne(t){return(1-Math.cos(Kl*t))/2}function ee(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function re(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}function ie(t){return(t=+t)<nh?fh*t*t:t<rh?fh*(t-=eh)*t+ih:t<uh?fh*(t-=oh)*t+ah:fh*(t-=ch)*t+sh}function oe(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return yh.time=ln(),yh;return e}function ue(){t.event.stopImmediatePropagation()}function ae(t){return{type:t}}function ce(){return!t.event.button}function se(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function fe(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function le(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function he(n){function e(t){var e=t.property("__brush",a).selectAll(".overlay").data([ae("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Ch.overlay).merge(e).each(function(){var t=fe(this).extent;ff(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),t.selectAll(".selection").data([ae("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Ch.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var i=t.selectAll(".handle").data(n.handles,function(t){return t.type});i.exit().remove(),i.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return Ch[t.type]}),t.each(r).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",u)}function r(){var t=ff(this),n=fe(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-p/2:n[0][0]-p/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-p/2:n[0][1]-p/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+p:p}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+p:p})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function i(t,n){return t.__brush.emitter||new o(t,n)}function o(t,n){this.that=t,this.args=n,this.state=t.__brush,this.active=0}function u(){function e(){var t=nf(w);!L||x||b||(Math.abs(t[0]-U[0])>Math.abs(t[1]-U[1])?b=!0:x=!0),U=t,m=!0,wh(),o()}function o(){var t;switch(g=U[0]-q[0],y=U[1]-q[1],T){case Th:case Mh:N&&(g=Math.max(C-a,Math.min(P-p,g)),s=a+g,d=p+g),k&&(y=Math.max(z-l,Math.min(R-v,y)),h=l+y,_=v+y);break;case Nh:N<0?(g=Math.max(C-a,Math.min(P-a,g)),s=a+g,d=p):N>0&&(g=Math.max(C-p,Math.min(P-p,g)),s=a,d=p+g),k<0?(y=Math.max(z-l,Math.min(R-l,y)),h=l+y,_=v):k>0&&(y=Math.max(z-v,Math.min(R-v,y)),h=l,_=v+y);break;case kh:N&&(s=Math.max(C,Math.min(P,a-g*N)),d=Math.max(C,Math.min(P,p+g*N))),k&&(h=Math.max(z,Math.min(R,l-y*k)),_=Math.max(z,Math.min(R,v+y*k)))}d<s&&(N*=-1,t=a,a=p,p=t,t=s,s=d,d=t,M in zh&&F.attr("cursor",Ch[M=zh[M]])),_<h&&(k*=-1,t=l,l=v,v=t,t=h,h=_,_=t,M in Ph&&F.attr("cursor",Ch[M=Ph[M]])),S.selection&&(A=S.selection),x&&(s=A[0][0],d=A[1][0]),b&&(h=A[0][1],_=A[1][1]),A[0][0]===s&&A[0][1]===h&&A[1][0]===d&&A[1][1]===_||(S.selection=[[s,h],[d,_]],r.call(w),D.brush())}function u(){if(ue(),t.event.touches){if(t.event.touches.length)return;c&&clearTimeout(c),c=setTimeout(function(){c=null},500),O.on("touchmove.brush touchend.brush touchcancel.brush",null)}else _t(t.event.view,m),I.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);O.attr("pointer-events","all"),F.attr("cursor",Ch.overlay),S.selection&&(A=S.selection),le(A)&&(S.selection=null,r.call(w)),D.end()}if(t.event.touches){if(t.event.changedTouches.length<t.event.touches.length)return wh()}else if(c)return;if(f.apply(this,arguments)){var a,s,l,h,p,d,v,_,g,y,m,x,b,w=this,M=t.event.target.__data__.type,T="selection"===(t.event.metaKey?M="overlay":M)?Mh:t.event.altKey?kh:Nh,N=n===Eh?null:Rh[M],k=n===Sh?null:Lh[M],S=fe(w),E=S.extent,A=S.selection,C=E[0][0],z=E[0][1],P=E[1][0],R=E[1][1],L=N&&k&&t.event.shiftKey,q=nf(w),U=q,D=i(w,arguments).beforestart();"overlay"===M?S.selection=A=[[a=n===Eh?C:q[0],l=n===Sh?z:q[1]],[p=n===Eh?P:a,v=n===Sh?R:l]]:(a=A[0][0],l=A[0][1],p=A[1][0],v=A[1][1]),s=a,h=l,d=p,_=v;var O=ff(w).attr("pointer-events","none"),F=O.selectAll(".overlay").attr("cursor",Ch[M]);if(t.event.touches)O.on("touchmove.brush",e,!0).on("touchend.brush touchcancel.brush",u,!0);else{var I=ff(t.event.view).on("keydown.brush",function(){switch(t.event.keyCode){case 16:L=N&&k;break;case 18:T===Nh&&(N&&(p=d-g*N,a=s+g*N),k&&(v=_-y*k,l=h+y*k),T=kh,o());break;case 32:T!==Nh&&T!==kh||(N<0?p=d-g:N>0&&(a=s-g),k<0?v=_-y:k>0&&(l=h-y),T=Th,F.attr("cursor",Ch.selection),o());break;default:return}wh()},!0).on("keyup.brush",function(){switch(t.event.keyCode){case 16:L&&(x=b=L=!1,o());break;case 18:T===kh&&(N<0?p=d:N>0&&(a=s),k<0?v=_:k>0&&(l=h),T=Nh,o());break;case 32:T===Th&&(t.event.altKey?(N&&(p=d-g*N,a=s+g*N),k&&(v=_-y*k,l=h+y*k),T=kh):(N<0?p=d:N>0&&(a=s),k<0?v=_:k>0&&(l=h),T=Nh),F.attr("cursor",Ch[M]),o());break;default:return}wh()},!0).on("mousemove.brush",e,!0).on("mouseup.brush",u,!0);pf(t.event.view)}ue(),Xl(w),r.call(w),D.start()}}function a(){var t=this.__brush||{selection:null};return t.extent=s.apply(this,arguments),t.dim=n,t}var c,s=se,f=ce,l=h(e,"start","brush","end"),p=6;return e.move=function(t,e){t.selection?t.on("start.brush",function(){i(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){i(this,arguments).end()}).tween("brush",function(){function t(t){u.selection=1===t&&le(s)?null:f(t),r.call(o),a.brush()}var o=this,u=o.__brush,a=i(o,arguments),c=u.selection,s=n.input("function"==typeof e?e.apply(this,arguments):e,u.extent),f=fl(c,s);return c&&s?t:t(1)}):t.each(function(){var t=this,o=arguments,u=t.__brush,a=n.input("function"==typeof e?e.apply(t,o):e,u.extent),c=i(t,o).beforestart();Xl(t),u.selection=null==a||le(a)?null:a,r.call(t),c.start().brush().end()})},o.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(t){k(new bh(e,t,n.output(this.state.selection)),l.apply,l,[t,this.that,this.args])}},e.extent=function(t){return arguments.length?(s="function"==typeof t?t:xh([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),e):s},e.filter=function(t){return arguments.length?(f="function"==typeof t?t:xh(!!t),e):f},e.handleSize=function(t){return arguments.length?(p=+t,e):p},e.on=function(){var t=l.on.apply(l,arguments);return t===l?e:t},e}function pe(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}function de(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function ve(){return new de}function _e(t){return t.source}function ge(t){return t.target}function ye(t){return t.radius}function me(t){return t.startAngle}function xe(t){return t.endAngle}function be(){}function we(t,n){var e=new be;if(t instanceof be)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i<o;)e.set(i,t[i]);else for(;++i<o;)e.set(n(r=t[i],i,t),r)}else if(t)for(var u in t)e.set(u,t[u]);return e}function Me(){return{}}function Te(t,n,e){t[n]=e}function Ne(){return we()}function ke(t,n,e){t.set(n,e)}function Se(){}function Ee(t,n){var e=new Se;if(t instanceof Se)t.each(function(t){e.add(t)});else if(t){var r=-1,i=t.length;if(null==n)for(;++r<i;)e.add(t[r]);else for(;++r<i;)e.add(n(t[r],r,t))}return e}function Ae(t){return new Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}")}function Ce(t,n){var e=Ae(t);return function(r,i){return n(e(r),i,t)}}function ze(t){var n=Object.create(null),e=[];return t.forEach(function(t){for(var r in t)r in n||e.push(n[r]=r)}),e}function Pe(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,u,a,c,s,f,l,h,p=t._root,d={data:r},v=t._x0,_=t._y0,g=t._x1,y=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((s=n>=(o=(v+g)/2))?v=o:g=o,(f=e>=(u=(_+y)/2))?_=u:y=u,i=p,!(p=p[l=f<<1|s]))return i[l]=d,t;if(a=+t._x.call(null,p.data),c=+t._y.call(null,p.data),n===a&&e===c)return d.next=p,i?i[l]=d:t._root=d,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(s=n>=(o=(v+g)/2))?v=o:g=o,(f=e>=(u=(_+y)/2))?_=u:y=u}while((l=f<<1|s)==(h=(c>=u)<<1|a>=o));return i[h]=p,i[l]=d,t}function Re(t){return t[0]}function Le(t){return t[1]}function qe(t,n,e){var r=new Ue(null==n?Re:n,null==e?Le:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function Ue(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function De(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}function Oe(t){return t.x+t.vx}function Fe(t){return t.y+t.vy}function Ie(t){return t.index}function Ye(t,n){var e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function Be(t){return t.x}function je(t){return t.y}function He(t){return new Xe(t)}function Xe(t){if(!(n=wp.exec(t)))throw new Error("invalid format: "+t);var n,e=n[1]||" ",r=n[2]||">",i=n[3]||"-",o=n[4]||"",u=!!n[5],a=n[6]&&+n[6],c=!!n[7],s=n[8]&&+n[8].slice(1),f=n[9]||"";"n"===f?(c=!0,f="g"):bp[f]||(f=""),(u||"0"===e&&"="===r)&&(u=!0,e="0",r="="),this.fill=e,this.align=r,this.sign=i,this.symbol=o,this.zero=u,this.width=a,this.comma=c,this.precision=s,this.type=f}function $e(n){return Mp=kp(n),t.format=Mp.format,t.formatPrefix=Mp.formatPrefix,Mp}function Ve(){this.reset()}function We(t,n,e){var r=t.s=n+e,i=r-n,o=r-i;t.t=n-o+(e-i)}function Ze(t){return t>1?0:t<-1?fd:Math.acos(t)}function Ge(t){return t>1?ld:t<-1?-ld:Math.asin(t)}function Je(t){return(t=Td(t/2))*t}function Qe(){}function Ke(t,n){t&&Ad.hasOwnProperty(t.type)&&Ad[t.type](t,n)}function tr(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function nr(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)tr(t[e],n,1);n.polygonEnd()}function er(){Rd.point=ir}function rr(){or(zp,Pp)}function ir(t,n){Rd.point=or,zp=t,Pp=n,Rp=t*=vd,Lp=md(n=(n*=vd)/2+hd),qp=Td(n)}function or(t,n){n=(n*=vd)/2+hd;var e=(t*=vd)-Rp,r=e>=0?1:-1,i=r*e,o=md(n),u=Td(n),a=qp*u,c=Lp*o+a*md(i),s=a*r*Td(i);zd.add(yd(s,c)),Rp=t,Lp=o,qp=u}function ur(t){return[yd(t[1],t[0]),Ge(t[2])]}function ar(t){var n=t[0],e=t[1],r=md(e);return[r*md(n),r*Td(n),Td(e)]}function cr(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function sr(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function fr(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function lr(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function hr(t){var n=kd(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function pr(t,n){Hp.push(Xp=[Up=t,Op=t]),n<Dp&&(Dp=n),n>Fp&&(Fp=n)}function dr(t,n){var e=ar([t*vd,n*vd]);if(jp){var r=sr(jp,e),i=sr([r[1],-r[0],0],r);hr(i),i=ur(i);var o,u=t-Ip,a=u>0?1:-1,c=i[0]*dd*a,s=_d(u)>180;s^(a*Ip<c&&c<a*t)?(o=i[1]*dd)>Fp&&(Fp=o):(c=(c+360)%360-180,s^(a*Ip<c&&c<a*t)?(o=-i[1]*dd)<Dp&&(Dp=o):(n<Dp&&(Dp=n),n>Fp&&(Fp=n))),s?t<Ip?xr(Up,t)>xr(Up,Op)&&(Op=t):xr(t,Op)>xr(Up,Op)&&(Up=t):Op>=Up?(t<Up&&(Up=t),t>Op&&(Op=t)):t>Ip?xr(Up,t)>xr(Up,Op)&&(Op=t):xr(t,Op)>xr(Up,Op)&&(Up=t)}else Hp.push(Xp=[Up=t,Op=t]);n<Dp&&(Dp=n),n>Fp&&(Fp=n),jp=e,Ip=t}function vr(){qd.point=dr}function _r(){Xp[0]=Up,Xp[1]=Op,qd.point=pr,jp=null}function gr(t,n){if(jp){var e=t-Ip;Ld.add(_d(e)>180?e+(e>0?360:-360):e)}else Yp=t,Bp=n;Rd.point(t,n),dr(t,n)}function yr(){Rd.lineStart()}function mr(){gr(Yp,Bp),Rd.lineEnd(),_d(Ld)>sd&&(Up=-(Op=180)),Xp[0]=Up,Xp[1]=Op,jp=null}function xr(t,n){return(n-=t)<0?n+360:n}function br(t,n){return t[0]-n[0]}function wr(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}function Mr(t,n){t*=vd;var e=md(n*=vd);Tr(e*md(t),e*Td(t),Td(n))}function Tr(t,n,e){Wp+=(t-Wp)/++$p,Zp+=(n-Zp)/$p,Gp+=(e-Gp)/$p}function Nr(){Ud.point=kr}function kr(t,n){t*=vd;var e=md(n*=vd);od=e*md(t),ud=e*Td(t),ad=Td(n),Ud.point=Sr,Tr(od,ud,ad)}function Sr(t,n){t*=vd;var e=md(n*=vd),r=e*md(t),i=e*Td(t),o=Td(n),u=yd(kd((u=ud*o-ad*i)*u+(u=ad*r-od*o)*u+(u=od*i-ud*r)*u),od*r+ud*i+ad*o);Vp+=u,Jp+=u*(od+(od=r)),Qp+=u*(ud+(ud=i)),Kp+=u*(ad+(ad=o)),Tr(od,ud,ad)}function Er(){Ud.point=Mr}function Ar(){Ud.point=zr}function Cr(){Pr(rd,id),Ud.point=Mr}function zr(t,n){rd=t,id=n,t*=vd,n*=vd,Ud.point=Pr;var e=md(n);od=e*md(t),ud=e*Td(t),ad=Td(n),Tr(od,ud,ad)}function Pr(t,n){t*=vd;var e=md(n*=vd),r=e*md(t),i=e*Td(t),o=Td(n),u=ud*o-ad*i,a=ad*r-od*o,c=od*i-ud*r,s=kd(u*u+a*a+c*c),f=Ge(s),l=s&&-f/s;td+=l*u,nd+=l*a,ed+=l*c,Vp+=f,Jp+=f*(od+(od=r)),Qp+=f*(ud+(ud=i)),Kp+=f*(ad+(ad=o)),Tr(od,ud,ad)}function Rr(t,n){return[t>fd?t-pd:t<-fd?t+pd:t,n]}function Lr(t,n,e){return(t%=pd)?n||e?Od(Ur(t),Dr(n,e)):Ur(t):n||e?Dr(n,e):Rr}function qr(t){return function(n,e){return n+=t,[n>fd?n-pd:n<-fd?n+pd:n,e]}}function Ur(t){var n=qr(t);return n.invert=qr(-t),n}function Dr(t,n){function e(t,n){var e=md(n),a=md(t)*e,c=Td(t)*e,s=Td(n),f=s*r+a*i;return[yd(c*o-f*u,a*r-s*i),Ge(f*o+c*u)]}var r=md(t),i=Td(t),o=md(n),u=Td(n);return e.invert=function(t,n){var e=md(n),a=md(t)*e,c=Td(t)*e,s=Td(n),f=s*o-c*u;return[yd(c*o+s*u,a*r+f*i),Ge(f*r-a*i)]},e}function Or(t,n,e,r,i,o){if(e){var u=md(n),a=Td(n),c=r*e;null==i?(i=n+r*pd,o=n-c/2):(i=Fr(u,i),o=Fr(u,o),(r>0?i<o:i>o)&&(i+=r*pd));for(var s,f=i;r>0?f>o:f<o;f-=c)s=ur([u,-a*md(f),-a*Td(f)]),t.point(s[0],s[1])}}function Fr(t,n){(n=ar(n))[0]-=t,hr(n);var e=Ze(-n[1]);return((-n[2]<0?-e:e)+pd-sd)%pd}function Ir(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Yr(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function Br(t){return t.length>1}function jr(t,n){return((t=t.x)[0]<0?t[1]-ld-sd:ld-t[1])-((n=n.x)[0]<0?n[1]-ld-sd:ld-n[1])}function Hr(t,n,e,r){var i,o,u=Td(t-e);return _d(u)>sd?gd((Td(n)*(o=md(r))*Td(e)-Td(r)*(i=md(n))*Td(t))/(i*o*u)):(n+r)/2}function Xr(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,a,s){var f=0,l=0;if(null==i||(f=u(i,a))!==(l=u(o,a))||c(i,o)<0^a>0)do{s.point(0===f||3===f?t:e,f>1?r:n)}while((f=(f+a+4)%4)!==l);else s.point(o[0],o[1])}function u(r,i){return _d(r[0]-t)<sd?i>0?0:3:_d(r[0]-e)<sd?i>0?2:1:_d(r[1]-n)<sd?i>0?1:0:i>0?3:2}function a(t,n){return c(t.x,n.x)}function c(t,n){var e=u(t,1),r=u(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(u){function c(t,n){i(t,n)&&w.point(t,n)}function s(){for(var n=0,e=0,i=h.length;e<i;++e)for(var o,u,a=h[e],c=1,s=a.length,f=a[0],l=f[0],p=f[1];c<s;++c)o=l,u=p,l=(f=a[c])[0],p=f[1],u<=r?p>r&&(l-o)*(r-u)>(p-u)*(t-o)&&++n:p<=r&&(l-o)*(r-u)<(p-u)*(t-o)&&--n;return n}function f(o,u){var a=i(o,u);if(h&&p.push([o,u]),x)d=o,v=u,_=a,x=!1,a&&(w.lineStart(),w.point(o,u));else if(a&&m)w.point(o,u);else{var c=[g=Math.max(av,Math.min(uv,g)),y=Math.max(av,Math.min(uv,y))],s=[o=Math.max(av,Math.min(uv,o)),u=Math.max(av,Math.min(uv,u))];ov(c,s,t,n,e,r)?(m||(w.lineStart(),w.point(c[0],c[1])),w.point(s[0],s[1]),a||w.lineEnd(),b=!1):a&&(w.lineStart(),w.point(o,u),b=!1)}g=o,y=u,m=a}var l,h,p,d,v,_,g,y,m,x,b,w=u,M=Jd(),T={point:c,lineStart:function(){T.point=f,h&&h.push(p=[]),x=!0,m=!1,g=y=NaN},lineEnd:function(){l&&(f(d,v),_&&m&&M.rejoin(),l.push(M.result())),T.point=c,m&&w.lineEnd()},polygonStart:function(){w=M,l=[],h=[],b=!0},polygonEnd:function(){var t=s(),n=b&&t,e=(l=Ps(l)).length;(n||e)&&(u.polygonStart(),n&&(u.lineStart(),o(null,null,1,u),u.lineEnd()),e&&Kd(l,a,t,o,u),u.polygonEnd()),w=u,l=h=p=null}};return T}}function $r(){sv.point=sv.lineEnd=Qe}function Vr(t,n){Fd=t*=vd,Id=Td(n*=vd),Yd=md(n),sv.point=Wr}function Wr(t,n){t*=vd;var e=Td(n*=vd),r=md(n),i=_d(t-Fd),o=md(i),u=r*Td(i),a=Yd*e-Id*r*o,c=Id*e+Yd*r*o;cv.add(yd(kd(u*u+a*a),c)),Fd=t,Id=e,Yd=r}function Zr(t,n){return!(!t||!vv.hasOwnProperty(t.type))&&vv[t.type](t,n)}function Gr(t,n){return 0===pv(t,n)}function Jr(t,n){var e=pv(t[0],t[1]);return pv(t[0],n)+pv(n,t[1])<=e+sd}function Qr(t,n){return!!nv(t.map(Kr),ti(n))}function Kr(t){return(t=t.map(ti)).pop(),t}function ti(t){return[t[0]*vd,t[1]*vd]}function ni(t,n,e){var r=Ns(t,n-sd,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function ei(t,n,e){var r=Ns(t,n-sd,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function ri(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return Ns(xd(o/_)*_,i,_).map(h).concat(Ns(xd(s/g)*g,c,g).map(p)).concat(Ns(xd(r/d)*d,e,d).filter(function(t){return _d(t%_)>sd}).map(f)).concat(Ns(xd(a/v)*v,u,v).filter(function(t){return _d(t%g)>sd}).map(l))}var e,r,i,o,u,a,c,s,f,l,h,p,d=10,v=d,_=90,g=360,y=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(p(c).slice(1),h(i).reverse().slice(1),p(s).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],s=+n[0][1],c=+n[1][1],o>i&&(n=o,o=i,i=n),s>c&&(n=s,s=c,c=n),t.precision(y)):[[o,s],[i,c]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],a=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),a>u&&(n=a,a=u,u=n),t.precision(y)):[[r,a],[e,u]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(_=+n[0],g=+n[1],t):[_,g]},t.stepMinor=function(n){return arguments.length?(d=+n[0],v=+n[1],t):[d,v]},t.precision=function(n){return arguments.length?(y=+n,f=ni(a,u,90),l=ei(r,e,y),h=ni(s,c,90),p=ei(o,i,y),t):y},t.extentMajor([[-180,-90+sd],[180,90-sd]]).extentMinor([[-180,-80-sd],[180,80+sd]])}function ii(){mv.point=oi}function oi(t,n){mv.point=ui,Bd=Hd=t,jd=Xd=n}function ui(t,n){yv.add(Xd*t-Hd*n),Hd=t,Xd=n}function ai(){ui(Bd,jd)}function ci(t,n){Nv+=t,kv+=n,++Sv}function si(){Lv.point=fi}function fi(t,n){Lv.point=li,ci(Wd=t,Zd=n)}function li(t,n){var e=t-Wd,r=n-Zd,i=kd(e*e+r*r);Ev+=i*(Wd+t)/2,Av+=i*(Zd+n)/2,Cv+=i,ci(Wd=t,Zd=n)}function hi(){Lv.point=ci}function pi(){Lv.point=vi}function di(){_i($d,Vd)}function vi(t,n){Lv.point=_i,ci($d=Wd=t,Vd=Zd=n)}function _i(t,n){var e=t-Wd,r=n-Zd,i=kd(e*e+r*r);Ev+=i*(Wd+t)/2,Av+=i*(Zd+n)/2,Cv+=i,zv+=(i=Zd*t-Wd*n)*(Wd+t),Pv+=i*(Zd+n),Rv+=3*i,ci(Wd=t,Zd=n)}function gi(t){this._context=t}function yi(t,n){Yv.point=mi,Uv=Ov=t,Dv=Fv=n}function mi(t,n){Ov-=t,Fv-=n,Iv.add(kd(Ov*Ov+Fv*Fv)),Ov=t,Fv=n}function xi(){this._string=[]}function bi(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function wi(t){return function(n){var e=new Mi;for(var r in t)e[r]=t[r];return e.stream=n,e}}function Mi(){}function Ti(t,n,e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]),null!=o&&t.clipExtent(null),Cd(e,t.stream(Tv));var u=Tv.result(),a=Math.min(r/(u[1][0]-u[0][0]),i/(u[1][1]-u[0][1])),c=+n[0][0]+(r-a*(u[1][0]+u[0][0]))/2,s=+n[0][1]+(i-a*(u[1][1]+u[0][1]))/2;return null!=o&&t.clipExtent(o),t.scale(150*a).translate([c,s])}function Ni(t,n,e){return Ti(t,[[0,0],n],e)}function ki(t){return wi({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}function Si(t,n){function e(r,i,o,u,a,c,s,f,l,h,p,d,v,_){var g=s-r,y=f-i,m=g*g+y*y;if(m>4*n&&v--){var x=u+h,b=a+p,w=c+d,M=kd(x*x+b*b+w*w),T=Ge(w/=M),N=_d(_d(w)-1)<sd||_d(o-l)<sd?(o+l)/2:yd(b,x),k=t(N,T),S=k[0],E=k[1],A=S-r,C=E-i,z=y*A-g*C;(z*z/m>n||_d((g*A+y*C)/m-.5)>.3||u*h+a*p+c*d<jv)&&(e(r,i,o,u,a,c,S,E,N,x/=M,b/=M,w,v,_),_.point(S,E),e(S,E,N,x,b,w,s,f,l,h,p,d,v,_))}}return function(n){function r(e,r){e=t(e,r),n.point(e[0],e[1])}function i(){g=NaN,w.point=o,n.lineStart()}function o(r,i){var o=ar([r,i]),u=t(r,i);e(g,y,_,m,x,b,g=u[0],y=u[1],_=r,m=o[0],x=o[1],b=o[2],Bv,n),n.point(g,y)}function u(){w.point=r,n.lineEnd()}function a(){i(),w.point=c,w.lineEnd=s}function c(t,n){o(f=t,n),l=g,h=y,p=m,d=x,v=b,w.point=o}function s(){e(g,y,_,m,x,b,l,h,f,p,d,v,Bv,n),w.lineEnd=u,u()}var f,l,h,p,d,v,_,g,y,m,x,b,w={point:r,lineStart:i,lineEnd:u,polygonStart:function(){n.polygonStart(),w.lineStart=a},polygonEnd:function(){n.polygonEnd(),w.lineStart=i}};return w}}function Ei(t){return wi({point:function(n,e){var r=t(n,e);return this.stream.point(r[0],r[1])}})}function Ai(t){return Ci(function(){return t})()}function Ci(t){function n(t){return t=f(t[0]*vd,t[1]*vd),[t[0]*_+a,c-t[1]*_]}function e(t){return(t=f.invert((t[0]-a)/_,(c-t[1])/_))&&[t[0]*dd,t[1]*dd]}function r(t,n){return t=u(t,n),[t[0]*_+a,c-t[1]*_]}function i(){f=Od(s=Lr(b,w,M),u);var t=u(m,x);return a=g-t[0]*_,c=y+t[1]*_,o()}function o(){return d=v=null,n}var u,a,c,s,f,l,h,p,d,v,_=150,g=480,y=250,m=0,x=0,b=0,w=0,M=0,T=null,N=rv,k=null,S=_v,E=.5,A=Hv(r,E);return n.stream=function(t){return d&&v===t?d:d=Xv(Ei(s)(N(A(S(v=t)))))},n.preclip=function(t){return arguments.length?(N=t,T=void 0,o()):N},n.postclip=function(t){return arguments.length?(S=t,k=l=h=p=null,o()):S},n.clipAngle=function(t){return arguments.length?(N=+t?iv(T=t*vd):(T=null,rv),o()):T*dd},n.clipExtent=function(t){return arguments.length?(S=null==t?(k=l=h=p=null,_v):Xr(k=+t[0][0],l=+t[0][1],h=+t[1][0],p=+t[1][1]),o()):null==k?null:[[k,l],[h,p]]},n.scale=function(t){return arguments.length?(_=+t,i()):_},n.translate=function(t){return arguments.length?(g=+t[0],y=+t[1],i()):[g,y]},n.center=function(t){return arguments.length?(m=t[0]%360*vd,x=t[1]%360*vd,i()):[m*dd,x*dd]},n.rotate=function(t){return arguments.length?(b=t[0]%360*vd,w=t[1]%360*vd,M=t.length>2?t[2]%360*vd:0,i()):[b*dd,w*dd,M*dd]},n.precision=function(t){return arguments.length?(A=Hv(r,E=t*t),o()):kd(E)},n.fitExtent=function(t,e){return Ti(n,t,e)},n.fitSize=function(t,e){return Ni(n,t,e)},function(){return u=t.apply(this,arguments),n.invert=u.invert&&e,i()}}function zi(t){var n=0,e=fd/3,r=Ci(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*vd,e=t[1]*vd):[n*dd,e*dd]},i}function Pi(t){function n(t,n){return[t*e,Td(n)/e]}var e=md(t);return n.invert=function(t,n){return[t/e,Ge(n*e)]},n}function Ri(t,n){function e(t,n){var e=kd(o-2*i*Td(n))/i;return[e*Td(t*=i),u-e*md(t)]}var r=Td(t),i=(r+Td(n))/2;if(_d(i)<sd)return Pi(t);var o=1+r*(2*i-r),u=kd(o)/i;return e.invert=function(t,n){var e=u-n;return[yd(t,_d(e))/i*Nd(e),Ge((o-(t*t+e*e)*i*i)/(2*i))]},e}function Li(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i<n;)t[i].point(e,r)},sphere:function(){for(var e=-1;++e<n;)t[e].sphere()},lineStart:function(){for(var e=-1;++e<n;)t[e].lineStart()},lineEnd:function(){for(var e=-1;++e<n;)t[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<n;)t[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<n;)t[e].polygonEnd()}}}function qi(t){return function(n,e){var r=md(n),i=md(e),o=t(r*i);return[o*i*Td(n),o*Td(e)]}}function Ui(t){return function(n,e){var r=kd(n*n+e*e),i=t(r),o=Td(i),u=md(i);return[yd(n*o,r*u),Ge(r&&e*o/r)]}}function Di(t,n){return[t,wd(Sd((ld+n)/2))]}function Oi(t){function n(){var n=fd*a(),u=o(Gd(o.rotate()).invert([0,0]));return s(null==f?[[u[0]-n,u[1]-n],[u[0]+n,u[1]+n]]:t===Di?[[Math.max(u[0]-n,f),e],[Math.min(u[0]+n,r),i]]:[[f,Math.max(u[1]-n,e)],[r,Math.min(u[1]+n,i)]])}var e,r,i,o=Ai(t),u=o.center,a=o.scale,c=o.translate,s=o.clipExtent,f=null;return o.scale=function(t){return arguments.length?(a(t),n()):a()},o.translate=function(t){return arguments.length?(c(t),n()):c()},o.center=function(t){return arguments.length?(u(t),n()):u()},o.clipExtent=function(t){return arguments.length?(null==t?f=e=r=i=null:(f=+t[0][0],e=+t[0][1],r=+t[1][0],i=+t[1][1]),n()):null==f?null:[[f,e],[r,i]]},n()}function Fi(t){return Sd((ld+t)/2)}function Ii(t,n){function e(t,n){o>0?n<-ld+sd&&(n=-ld+sd):n>ld-sd&&(n=ld-sd);var e=o/Md(Fi(n),i);return[e*Td(i*t),o-e*md(i*t)]}var r=md(t),i=t===n?Td(t):wd(r/md(n))/wd(Fi(n)/Fi(t)),o=r*Md(Fi(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=Nd(i)*kd(t*t+e*e);return[yd(t,_d(e))/i*Nd(e),2*gd(Md(o/r,1/i))-ld]},e):Di}function Yi(t,n){return[t,n]}function Bi(t,n){function e(t,n){var e=o-n,r=i*t;return[e*Td(r),o-e*md(r)]}var r=md(t),i=t===n?Td(t):(r-md(n))/(n-t),o=r/i+t;return _d(i)<sd?Yi:(e.invert=function(t,n){var e=o-n;return[yd(t,_d(e))/i*Nd(e),o-Nd(i)*kd(t*t+e*e)]},e)}function ji(t,n){var e=md(n),r=md(t)*e;return[e*Td(t)/r,Td(n)/r]}function Hi(t,n,e,r){return 1===t&&1===n&&0===e&&0===r?_v:wi({point:function(i,o){this.stream.point(i*t+e,o*n+r)}})}function Xi(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function $i(t,n){return[md(n)*Td(t),Td(n)]}function Vi(t,n){var e=md(n),r=1+md(t)*e;return[e*Td(t)/r,Td(n)/r]}function Wi(t,n){return[wd(Sd((ld+n)/2)),-t]}function Zi(t,n){return t.parent===n.parent?1:2}function Gi(t){return t.reduce(Ji,0)/t.length}function Ji(t,n){return t+n.x}function Qi(t){return 1+t.reduce(Ki,0)}function Ki(t,n){return Math.max(t,n.y)}function to(t){for(var n;n=t.children;)t=n[0];return t}function no(t){for(var n;n=t.children;)t=n[n.length-1];return t}function eo(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function ro(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}function io(t,n){var e,r,i,o,u,a=new co(t),c=+t.value&&(a.value=t.value),s=[a];for(null==n&&(n=oo);e=s.pop();)if(c&&(e.value=+e.data.value),(i=n(e.data))&&(u=i.length))for(e.children=new Array(u),o=u-1;o>=0;--o)s.push(r=e.children[o]=new co(i[o])),r.parent=e,r.depth=e.depth+1;return a.eachBefore(ao)}function oo(t){return t.children}function uo(t){t.data=t.data.data}function ao(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function co(t){this.data=t,this.depth=this.height=0,this.parent=null}function so(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}function fo(t,n){var e,r;if(po(n,t))return[n];for(e=0;e<t.length;++e)if(lo(n,t[e])&&po(go(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(lo(go(t[e],t[r]),n)&&lo(go(t[e],n),t[r])&&lo(go(t[r],n),t[e])&&po(yo(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}function lo(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function ho(t,n){var e=t.r-n.r+1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function po(t,n){for(var e=0;e<n.length;++e)if(!ho(t,n[e]))return!1;return!0}function vo(t){switch(t.length){case 1:return _o(t[0]);case 2:return go(t[0],t[1]);case 3:return yo(t[0],t[1],t[2])}}function _o(t){return{x:t.x,y:t.y,r:t.r}}function go(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,u=n.y,a=n.r,c=o-e,s=u-r,f=a-i,l=Math.sqrt(c*c+s*s);return{x:(e+o+c/l*f)/2,y:(r+u+s/l*f)/2,r:(l+i+a)/2}}function yo(t,n,e){var r=t.x,i=t.y,o=t.r,u=n.x,a=n.y,c=n.r,s=e.x,f=e.y,l=e.r,h=r-u,p=r-s,d=i-a,v=i-f,_=c-o,g=l-o,y=r*r+i*i-o*o,m=y-u*u-a*a+c*c,x=y-s*s-f*f+l*l,b=p*d-h*v,w=(d*x-v*m)/(2*b)-r,M=(v*_-d*g)/b,T=(p*m-h*x)/(2*b)-i,N=(h*g-p*_)/b,k=M*M+N*N-1,S=2*(o+w*M+T*N),E=w*w+T*T-o*o,A=-(k?(S+Math.sqrt(S*S-4*k*E))/(2*k):E/S);return{x:r+w+M*A,y:i+T+N*A,r:A}}function mo(t,n,e){var r=t.x,i=t.y,o=n.r+e.r,u=t.r+e.r,a=n.x-r,c=n.y-i,s=a*a+c*c;if(s){var f=.5+((u*=u)-(o*=o))/(2*s),l=Math.sqrt(Math.max(0,2*o*(u+s)-(u-=s)*u-o*o))/(2*s);e.x=r+f*a+l*c,e.y=i+f*c-l*a}else e.x=r+u,e.y=i}function xo(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r+n.r;return i*i-1e-6>e*e+r*r}function bo(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function wo(t){this._=t,this.next=null,this.previous=null}function Mo(t){if(!(i=t.length))return 0;var n,e,r,i,o,u,a,c,s,f,l;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;mo(e,n,r=t[2]),n=new wo(n),e=new wo(e),r=new wo(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(a=3;a<i;++a){mo(n._,e._,r=t[a]),r=new wo(r),c=e.next,s=n.previous,f=e._.r,l=n._.r;do{if(f<=l){if(xo(c._,r._)){e=c,n.next=e,e.previous=n,--a;continue t}f+=c._.r,c=c.next}else{if(xo(s._,r._)){(n=s).next=e,e.previous=n,--a;continue t}l+=s._.r,s=s.previous}}while(c!==s.next);for(r.previous=n,r.next=e,n.next=e.previous=e=r,o=bo(n);(r=r.next)!==e;)(u=bo(r))<o&&(n=r,o=u);e=n.next}for(n=[e._],r=e;(r=r.next)!==e;)n.push(r._);for(r=Jv(n),a=0;a<i;++a)n=t[a],n.x-=r.x,n.y-=r.y;return r.r}function To(t){return null==t?null:No(t)}function No(t){if("function"!=typeof t)throw new Error;return t}function ko(){return 0}function So(t){return Math.sqrt(t.value)}function Eo(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Ao(t,n){return function(e){if(r=e.children){var r,i,o,u=r.length,a=t(e)*n||0;if(a)for(i=0;i<u;++i)r[i].r+=a;if(o=Mo(r),a)for(i=0;i<u;++i)r[i].r-=a;e.r=o+a}}}function Co(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function zo(t){return t.id}function Po(t){return t.parentId}function Ro(t,n){return t.parent===n.parent?1:2}function Lo(t){var n=t.children;return n?n[0]:t.t}function qo(t){var n=t.children;return n?n[n.length-1]:t.t}function Uo(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function Do(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)}function Oo(t,n,e){return t.a.parent===n.parent?t.a:e}function Fo(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function Io(t){for(var n,e,r,i,o,u=new Fo(t,0),a=[u];n=a.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)a.push(e=n.children[i]=new Fo(r[i],i)),e.parent=n;return(u.parent=new Fo(null,0)).children=[u],u}function Yo(t,n,e,r,i,o){for(var u,a,c,s,f,l,h,p,d,v,_,g=[],y=n.children,m=0,x=0,b=y.length,w=n.value;m<b;){c=i-e,s=o-r;do{f=y[x++].value}while(!f&&x<b);for(l=h=f,_=f*f*(v=Math.max(s/c,c/s)/(w*t)),d=Math.max(h/_,_/l);x<b;++x){if(f+=a=y[x].value,a<l&&(l=a),a>h&&(h=a),_=f*f*v,(p=Math.max(h/_,_/l))>d){f-=a;break}d=p}g.push(u={value:f,dice:c<s,children:y.slice(m,x)}),u.dice?t_(u,e,r,i,w?r+=s*f/w:o):i_(u,e,r,w?e+=c*f/w:i,o),w-=f,m=x}return g}function Bo(t,n){return t[0]-n[0]||t[1]-n[1]}function jo(t){for(var n=t.length,e=[0,1],r=2,i=2;i<n;++i){for(;r>1&&c_(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function Ho(t){this._size=t,this._call=this._error=null,this._tasks=[],this._data=[],this._waiting=this._active=this._ended=this._start=0}function Xo(t){if(!t._start)try{$o(t)}catch(n){if(t._tasks[t._ended+t._active-1])Wo(t,n);else if(!t._data)throw n}}function $o(t){for(;t._start=t._waiting&&t._active<t._size;){var n=t._ended+t._active,e=t._tasks[n],r=e.length-1,i=e[r];e[r]=Vo(t,n),--t._waiting,++t._active,e=i.apply(null,e),t._tasks[n]&&(t._tasks[n]=e||f_)}}function Vo(t,n){return function(e,r){t._tasks[n]&&(--t._active,++t._ended,t._tasks[n]=null,null==t._error&&(null!=e?Wo(t,e):(t._data[n]=r,t._waiting?Xo(t):Zo(t))))}}function Wo(t,n){var e,r=t._tasks.length;for(t._error=n,t._data=void 0,t._waiting=NaN;--r>=0;)if((e=t._tasks[r])&&(t._tasks[r]=null,e.abort))try{e.abort()}catch(n){}t._active=NaN,Zo(t)}function Zo(t){if(!t._active&&t._call){var n=t._data;t._data=void 0,t._call(t._error,n)}}function Go(t){if(null==t)t=1/0;else if(!((t=+t)>=1))throw new Error("invalid concurrency");return new Ho(t)}function Jo(t){return function(n,e){t(null==n?e:null)}}function Qo(t){var n=t.responseType;return n&&"text"!==n?t.response:t.responseText}function Ko(t,n){return function(e){return t(e.responseText,n)}}function tu(t){function n(n){var o=n+"",u=e.get(o);if(!u){if(i!==C_)return i;e.set(o,u=r.push(n))}return t[(u-1)%t.length]}var e=we(),r=[],i=C_;return t=null==t?[]:A_.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=we();for(var i,o,u=-1,a=t.length;++u<a;)e.has(o=(i=t[u])+"")||e.set(o,r.push(i));return n},n.range=function(e){return arguments.length?(t=A_.call(e),n):t.slice()},n.unknown=function(t){return arguments.length?(i=t,n):i},n.copy=function(){return tu().domain(r).range(t).unknown(i)},n}function nu(){function t(){var t=i().length,r=u[1]<u[0],l=u[r-0],h=u[1-r];n=(h-l)/Math.max(1,t-c+2*s),a&&(n=Math.floor(n)),l+=(h-l-n*(t-c))*f,e=n*(1-c),a&&(l=Math.round(l),e=Math.round(e));var p=Ns(t).map(function(t){return l+n*t});return o(r?p.reverse():p)}var n,e,r=tu().unknown(void 0),i=r.domain,o=r.range,u=[0,1],a=!1,c=0,s=0,f=.5;return delete r.unknown,r.domain=function(n){return arguments.length?(i(n),t()):i()},r.range=function(n){return arguments.length?(u=[+n[0],+n[1]],t()):u.slice()},r.rangeRound=function(n){return u=[+n[0],+n[1]],a=!0,t()},r.bandwidth=function(){return e},r.step=function(){return n},r.round=function(n){return arguments.length?(a=!!n,t()):a},r.padding=function(n){return arguments.length?(c=s=Math.max(0,Math.min(1,n)),t()):c},r.paddingInner=function(n){return arguments.length?(c=Math.max(0,Math.min(1,n)),t()):c},r.paddingOuter=function(n){return arguments.length?(s=Math.max(0,Math.min(1,n)),t()):s},r.align=function(n){return arguments.length?(f=Math.max(0,Math.min(1,n)),t()):f},r.copy=function(){return nu().domain(i()).range(u).round(a).paddingInner(c).paddingOuter(s).align(f)},t()}function eu(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return eu(n())},t}function ru(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:z_(n)}function iu(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=n?0:t>=e?1:r(t)}}}function ou(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}function uu(t,n,e,r){var i=t[0],o=t[1],u=n[0],a=n[1];return o<i?(i=e(o,i),u=r(a,u)):(i=e(i,o),u=r(u,a)),function(t){return u(i(t))}}function au(t,n,e,r){var i=Math.min(t.length,n.length)-1,o=new Array(i),u=new Array(i),a=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++a<i;)o[a]=e(t[a],t[a+1]),u[a]=r(n[a],n[a+1]);return function(n){var e=ds(t,n,1,i)-1;return u[e](o[e](n))}}function cu(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function su(t,n){function e(){return i=Math.min(a.length,c.length)>2?au:uu,o=u=null,r}function r(n){return(o||(o=i(a,c,f?iu(t):t,s)))(+n)}var i,o,u,a=R_,c=R_,s=fl,f=!1;return r.invert=function(t){return(u||(u=i(c,a,ru,f?ou(n):n)))(+t)},r.domain=function(t){return arguments.length?(a=E_.call(t,P_),e()):a.slice()},r.range=function(t){return arguments.length?(c=A_.call(t),e()):c.slice()},r.rangeRound=function(t){return c=A_.call(t),s=ll,e()},r.clamp=function(t){return arguments.length?(f=!!t,e()):f},r.interpolate=function(t){return arguments.length?(s=t,e()):s},e()}function fu(t){var n=t.domain;return t.ticks=function(t){var e=n();return As(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){return L_(n(),t,e)},t.nice=function(e){null==e&&(e=10);var i,o=n(),u=0,a=o.length-1,c=o[u],s=o[a];return s<c&&(i=c,c=s,s=i,i=u,u=a,a=i),(i=r(c,s,e))>0?i=r(c=Math.floor(c/i)*i,s=Math.ceil(s/i)*i,e):i<0&&(i=r(c=Math.ceil(c*i)/i,s=Math.floor(s*i)/i,e)),i>0?(o[u]=Math.floor(c/i)*i,o[a]=Math.ceil(s/i)*i,n(o)):i<0&&(o[u]=Math.ceil(c*i)/i,o[a]=Math.floor(s*i)/i,n(o)),t},t}function lu(){var t=su(ru,ol);return t.copy=function(){return cu(t,lu())},fu(t)}function hu(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=E_.call(e,P_),t):n.slice()},t.copy=function(){return hu().domain(n)},fu(t)}function pu(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:z_(n)}function du(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function vu(t){return isFinite(t)?+("1e"+t):t<0?0:t}function _u(t){return 10===t?vu:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function gu(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function yu(t){return function(n){return-t(-n)}}function mu(){function n(){return o=gu(i),u=_u(i),r()[0]<0&&(o=yu(o),u=yu(u)),e}var e=su(pu,du).domain([1,10]),r=e.domain,i=10,o=gu(10),u=_u(10);return e.base=function(t){return arguments.length?(i=+t,n()):i},e.domain=function(t){return arguments.length?(r(t),n()):r()},e.ticks=function(t){var n,e=r(),a=e[0],c=e[e.length-1];(n=c<a)&&(h=a,a=c,c=h);var s,f,l,h=o(a),p=o(c),d=null==t?10:+t,v=[];if(!(i%1)&&p-h<d){if(h=Math.round(h)-1,p=Math.round(p)+1,a>0){for(;h<p;++h)for(f=1,s=u(h);f<i;++f)if(!((l=s*f)<a)){if(l>c)break;v.push(l)}}else for(;h<p;++h)for(f=i-1,s=u(h);f>=1;--f)if(!((l=s*f)<a)){if(l>c)break;v.push(l)}}else v=As(h,p,Math.min(p-h,d)).map(u);return n?v.reverse():v},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var a=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/u(Math.round(o(t)));return n*i<i-.5&&(n*=i),n<=a?r(t):""}},e.nice=function(){return r(q_(r(),{floor:function(t){return u(Math.floor(o(t)))},ceil:function(t){return u(Math.ceil(o(t)))}}))},e.copy=function(){return cu(e,mu().base(i))},e}function xu(t,n){return t<0?-Math.pow(-t,n):Math.pow(t,n)}function bu(){var t=1,n=su(function(n,e){return(e=xu(e,t)-(n=xu(n,t)))?function(r){return(xu(r,t)-n)/e}:z_(e)},function(n,e){return e=xu(e,t)-(n=xu(n,t)),function(r){return xu(n+e*r,1/t)}}),e=n.domain;return n.exponent=function(n){return arguments.length?(t=+n,e(e())):t},n.copy=function(){return cu(n,bu().exponent(t))},fu(n)}function wu(){function t(){var t=0,o=Math.max(1,r.length);for(i=new Array(o-1);++t<o;)i[t-1]=zs(e,t/o);return n}function n(t){if(!isNaN(t=+t))return r[ds(i,t)]}var e=[],r=[],i=[];return n.invertExtent=function(t){var n=r.indexOf(t);return n<0?[NaN,NaN]:[n>0?i[n-1]:e[0],n<i.length?i[n]:e[e.length-1]]},n.domain=function(n){if(!arguments.length)return e.slice();e=[];for(var r,i=0,o=n.length;i<o;++i)null==(r=n[i])||isNaN(r=+r)||e.push(r);return e.sort(ls),t()},n.range=function(n){return arguments.length?(r=A_.call(n),t()):r.slice()},n.quantiles=function(){return i.slice()},n.copy=function(){return wu().domain(e).range(r)},n}function Mu(){function t(t){if(t<=t)return u[ds(o,t,0,i)]}function n(){var n=-1;for(o=new Array(i);++n<i;)o[n]=((n+1)*r-(n-i)*e)/(i+1);return t}var e=0,r=1,i=1,o=[.5],u=[0,1];return t.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n()):[e,r]},t.range=function(t){return arguments.length?(i=(u=A_.call(t)).length-1,n()):u.slice()},t.invertExtent=function(t){var n=u.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,o[0]]:n>=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return Mu().domain([e,r]).range(u)},fu(t)}function Tu(){function t(t){if(t<=t)return e[ds(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=A_.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=A_.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return Tu().domain(n).range(e)},t}function Nu(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,o){var u=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return u;do{u.push(new Date(+e))}while(n(e,o),t(e),e<r);return u},i.filter=function(e){return Nu(function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return U_.setTime(+n),D_.setTime(+r),t(U_),t(D_),Math.floor(e(U_,D_))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}function ku(t){return Nu(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*I_)/Y_})}function Su(t){return Nu(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Y_})}function Eu(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Au(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Cu(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function zu(t){function n(t,n){return function(e){var r,i,o,u=[],a=-1,c=0,s=t.length;for(e instanceof Date||(e=new Date(+e));++a<s;)37===t.charCodeAt(a)&&(u.push(t.slice(c,a)),null!=(i=Fg[r=t.charAt(++a)])?r=t.charAt(++a):i="e"===r?" ":"0",(o=n[r])&&(r=o(e,i)),u.push(r),c=a+1);return u.push(t.slice(c,a)),u.join("")}}function e(t,n){return function(e){var i=Cu(1900);if(r(i,t,e+="",0)!=e.length)return null;if("p"in i&&(i.H=i.H%12+12*i.p),"W"in i||"U"in i){"w"in i||(i.w="W"in i?1:0);var o="Z"in i?Au(Cu(i.y)).getUTCDay():n(Cu(i.y)).getDay();i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(o+5)%7:i.w+7*i.U-(o+6)%7}return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,Au(i)):n(i)}}function r(t,n,e,r){for(var i,o,u=0,a=n.length,c=e.length;u<a;){if(r>=c)return-1;if(37===(i=n.charCodeAt(u++))){if(i=n.charAt(u++),!(o=T[i in Fg?n.charAt(u++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}var i=t.dateTime,o=t.date,u=t.time,a=t.periods,c=t.days,s=t.shortDays,f=t.months,l=t.shortMonths,h=Lu(a),p=qu(a),d=Lu(c),v=qu(c),_=Lu(s),g=qu(s),y=Lu(f),m=qu(f),x=Lu(l),b=qu(l),w={a:function(t){return s[t.getDay()]},A:function(t){return c[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return f[t.getMonth()]},c:null,d:Gu,e:Gu,H:Ju,I:Qu,j:Ku,L:ta,m:na,M:ea,p:function(t){return a[+(t.getHours()>=12)]},S:ra,U:ia,w:oa,W:ua,x:null,X:null,y:aa,Y:ca,Z:sa,"%":Ta},M={a:function(t){return s[t.getUTCDay()]},A:function(t){return c[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return f[t.getUTCMonth()]},c:null,d:fa,e:fa,H:la,I:ha,j:pa,L:da,m:va,M:_a,p:function(t){return a[+(t.getUTCHours()>=12)]},S:ga,U:ya,w:ma,W:xa,x:null,X:null,y:ba,Y:wa,Z:Ma,"%":Ta},T={a:function(t,n,e){var r=_.exec(n.slice(e));return r?(t.w=g[r[0].toLowerCase()],e+r[0].length):-1},A:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=v[r[0].toLowerCase()],e+r[0].length):-1},b:function(t,n,e){var r=x.exec(n.slice(e));return r?(t.m=b[r[0].toLowerCase()],e+r[0].length):-1},B:function(t,n,e){var r=y.exec(n.slice(e));return r?(t.m=m[r[0].toLowerCase()],e+r[0].length):-1},c:function(t,n,e){return r(t,i,n,e)},d:ju,e:ju,H:Xu,I:Xu,j:Hu,L:Wu,m:Bu,M:$u,p:function(t,n,e){var r=h.exec(n.slice(e));return r?(t.p=p[r[0].toLowerCase()],e+r[0].length):-1},S:Vu,U:Du,w:Uu,W:Ou,x:function(t,n,e){return r(t,o,n,e)},X:function(t,n,e){return r(t,u,n,e)},y:Iu,Y:Fu,Z:Yu,"%":Zu};return w.x=n(o,w),w.X=n(u,w),w.c=n(i,w),M.x=n(o,M),M.X=n(u,M),M.c=n(i,M),{format:function(t){var e=n(t+="",w);return e.toString=function(){return t},e},parse:function(t){var n=e(t+="",Eu);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+="",M);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,Au);return n.toString=function(){return t},n}}}function Pu(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function Ru(t){return t.replace(Bg,"\\$&")}function Lu(t){return new RegExp("^(?:"+t.map(Ru).join("|")+")","i")}function qu(t){for(var n={},e=-1,r=t.length;++e<r;)n[t[e].toLowerCase()]=e;return n}function Uu(t,n,e){var r=Ig.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function Du(t,n,e){var r=Ig.exec(n.slice(e));return r?(t.U=+r[0],e+r[0].length):-1}function Ou(t,n,e){var r=Ig.exec(n.slice(e));return r?(t.W=+r[0],e+r[0].length):-1}function Fu(t,n,e){var r=Ig.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function Iu(t,n,e){var r=Ig.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function Yu(t,n,e){var r=/^(Z)|([+-]\d\d)(?:\:?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function Bu(t,n,e){var r=Ig.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function ju(t,n,e){var r=Ig.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function Hu(t,n,e){var r=Ig.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function Xu(t,n,e){var r=Ig.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function $u(t,n,e){var r=Ig.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function Vu(t,n,e){var r=Ig.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function Wu(t,n,e){var r=Ig.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function Zu(t,n,e){var r=Yg.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function Gu(t,n){return Pu(t.getDate(),n,2)}function Ju(t,n){return Pu(t.getHours(),n,2)}function Qu(t,n){return Pu(t.getHours()%12||12,n,2)}function Ku(t,n){return Pu(1+W_.count(hg(t),t),n,3)}function ta(t,n){return Pu(t.getMilliseconds(),n,3)}function na(t,n){return Pu(t.getMonth()+1,n,2)}function ea(t,n){return Pu(t.getMinutes(),n,2)}function ra(t,n){return Pu(t.getSeconds(),n,2)}function ia(t,n){return Pu(G_.count(hg(t),t),n,2)}function oa(t){return t.getDay()}function ua(t,n){return Pu(J_.count(hg(t),t),n,2)}function aa(t,n){return Pu(t.getFullYear()%100,n,2)}function ca(t,n){return Pu(t.getFullYear()%1e4,n,4)}function sa(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+Pu(n/60|0,"0",2)+Pu(n%60,"0",2)}function fa(t,n){return Pu(t.getUTCDate(),n,2)}function la(t,n){return Pu(t.getUTCHours(),n,2)}function ha(t,n){return Pu(t.getUTCHours()%12||12,n,2)}function pa(t,n){return Pu(1+yg.count(Ug(t),t),n,3)}function da(t,n){return Pu(t.getUTCMilliseconds(),n,3)}function va(t,n){return Pu(t.getUTCMonth()+1,n,2)}function _a(t,n){return Pu(t.getUTCMinutes(),n,2)}function ga(t,n){return Pu(t.getUTCSeconds(),n,2)}function ya(t,n){return Pu(xg.count(Ug(t),t),n,2)}function ma(t){return t.getUTCDay()}function xa(t,n){return Pu(bg.count(Ug(t),t),n,2)}function ba(t,n){return Pu(t.getUTCFullYear()%100,n,2)}function wa(t,n){return Pu(t.getUTCFullYear()%1e4,n,4)}function Ma(){return"+0000"}function Ta(){return"%"}function Na(n){return Dg=zu(n),t.timeFormat=Dg.format,t.timeParse=Dg.parse,t.utcFormat=Dg.utcFormat,t.utcParse=Dg.utcParse,Dg}function ka(t){return new Date(t)}function Sa(t){return t instanceof Date?+t:+new Date(+t)}function Ea(t,n,e,r,o,u,a,c,s){function f(i){return(a(i)<i?v:u(i)<i?_:o(i)<i?g:r(i)<i?y:n(i)<i?e(i)<i?m:x:t(i)<i?b:w)(i)}function l(n,e,r,o){if(null==n&&(n=10),"number"==typeof n){var u=Math.abs(r-e)/n,a=hs(function(t){return t[2]}).right(M,u);a===M.length?(o=i(e/Jg,r/Jg,n),n=t):a?(o=(a=M[u/M[a-1][2]<M[a][2]/u?a-1:a])[1],n=a[0]):(o=i(e,r,n),n=c)}return null==o?n:n.every(o)}var h=su(ru,ol),p=h.invert,d=h.domain,v=s(".%L"),_=s(":%S"),g=s("%I:%M"),y=s("%I %p"),m=s("%a %d"),x=s("%b %d"),b=s("%B"),w=s("%Y"),M=[[a,1,Xg],[a,5,5*Xg],[a,15,15*Xg],[a,30,30*Xg],[u,1,$g],[u,5,5*$g],[u,15,15*$g],[u,30,30*$g],[o,1,Vg],[o,3,3*Vg],[o,6,6*Vg],[o,12,12*Vg],[r,1,Wg],[r,2,2*Wg],[e,1,Zg],[n,1,Gg],[n,3,3*Gg],[t,1,Jg]];return h.invert=function(t){return new Date(p(t))},h.domain=function(t){return arguments.length?d(E_.call(t,Sa)):d().map(ka)},h.ticks=function(t,n){var e,r=d(),i=r[0],o=r[r.length-1],u=o<i;return u&&(e=i,i=o,o=e),e=l(t,i,o,n),e=e?e.range(i,o+1):[],u?e.reverse():e},h.tickFormat=function(t,n){return null==n?f:s(n)},h.nice=function(t,n){var e=d();return(t=l(t,e[0],e[e.length-1],n))?d(q_(e,t)):h},h.copy=function(){return cu(h,Ea(t,n,e,r,o,u,a,c,s))},h}function Aa(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}function Ca(t){function n(n){var o=(n-e)/(r-e);return t(i?Math.max(0,Math.min(1,o)):o)}var e=0,r=1,i=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n):[e,r]},n.clamp=function(t){return arguments.length?(i=!!t,n):i},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return Ca(t).domain([e,r]).clamp(i)},fu(n)}function za(t){return t>1?0:t<-1?xy:Math.acos(t)}function Pa(t){return t>=1?by:t<=-1?-by:Math.asin(t)}function Ra(t){return t.innerRadius}function La(t){return t.outerRadius}function qa(t){return t.startAngle}function Ua(t){return t.endAngle}function Da(t){return t&&t.padAngle}function Oa(t,n,e,r,i,o,u,a){var c=e-t,s=r-n,f=u-i,l=a-o,h=(f*(n-o)-l*(t-i))/(l*c-f*s);return[t+h*c,n+h*s]}function Fa(t,n,e,r,i,o,u){var a=t-e,c=n-r,s=(u?o:-o)/yy(a*a+c*c),f=s*c,l=-s*a,h=t+f,p=n+l,d=e+f,v=r+l,_=(h+d)/2,g=(p+v)/2,y=d-h,m=v-p,x=y*y+m*m,b=i-o,w=h*v-d*p,M=(m<0?-1:1)*yy(vy(0,b*b*x-w*w)),T=(w*m-y*M)/x,N=(-w*y-m*M)/x,k=(w*m+y*M)/x,S=(-w*y+m*M)/x,E=T-_,A=N-g,C=k-_,z=S-g;return E*E+A*A>C*C+z*z&&(T=k,N=S),{cx:T,cy:N,x01:-f,y01:-l,x11:T*(i/b-1),y11:N*(i/b-1)}}function Ia(t){this._context=t}function Ya(t){return t[0]}function Ba(t){return t[1]}function ja(t){this._curve=t}function Ha(t){function n(n){return new ja(t(n))}return n._curve=t,n}function Xa(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(Ha(t)):n()._curve},t}function $a(t){return t.source}function Va(t){return t.target}function Wa(t){function n(){var n,a=Py.call(arguments),c=e.apply(this,a),s=r.apply(this,a);if(u||(u=n=ve()),t(u,+i.apply(this,(a[0]=c,a)),+o.apply(this,a),+i.apply(this,(a[0]=s,a)),+o.apply(this,a)),n)return u=null,n+""||null}var e=$a,r=Va,i=Ya,o=Ba,u=null;return n.source=function(t){return arguments.length?(e=t,n):e},n.target=function(t){return arguments.length?(r=t,n):r},n.x=function(t){return arguments.length?(i="function"==typeof t?t:ly(+t),n):i},n.y=function(t){return arguments.length?(o="function"==typeof t?t:ly(+t),n):o},n.context=function(t){return arguments.length?(u=null==t?null:t,n):u},n}function Za(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function Ga(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function Ja(t,n,e,r,i){var o=zy(n,e),u=zy(n,e=(e+i)/2),a=zy(r,e),c=zy(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(u[0],u[1],a[0],a[1],c[0],c[1])}function Qa(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function Ka(t){this._context=t}function tc(t){this._context=t}function nc(t){this._context=t}function ec(t,n){this._basis=new Ka(t),this._beta=n}function rc(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function ic(t,n){this._context=t,this._k=(1-n)/6}function oc(t,n){this._context=t,this._k=(1-n)/6}function uc(t,n){this._context=t,this._k=(1-n)/6}function ac(t,n,e){var r=t._x1,i=t._y1,o=t._x2,u=t._y2;if(t._l01_a>my){var a=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>my){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*s+t._x1*t._l23_2a-n*t._l12_2a)/f,u=(u*s+t._y1*t._l23_2a-e*t._l12_2a)/f}t._context.bezierCurveTo(r,i,o,u,t._x2,t._y2)}function cc(t,n){this._context=t,this._alpha=n}function sc(t,n){this._context=t,this._alpha=n}function fc(t,n){this._context=t,this._alpha=n}function lc(t){this._context=t}function hc(t){return t<0?-1:1}function pc(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),u=(e-t._y1)/(i||r<0&&-0),a=(o*i+u*r)/(r+i);return(hc(o)+hc(u))*Math.min(Math.abs(o),Math.abs(u),.5*Math.abs(a))||0}function dc(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function vc(t,n,e){var r=t._x0,i=t._y0,o=t._x1,u=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,i+a*n,o-a,u-a*e,o,u)}function _c(t){this._context=t}function gc(t){this._context=new yc(t)}function yc(t){this._context=t}function mc(t){this._context=t}function xc(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),u=new Array(r);for(i[0]=0,o[0]=2,u[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,u[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,u[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,u[n]-=e*u[n-1];for(i[r-1]=u[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(u[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function bc(t,n){this._context=t,this._t=n}function wc(t,n){return t[n]}function Mc(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}function Tc(t){return t[0]}function Nc(t){return t[1]}function kc(){this._=null}function Sc(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function Ec(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function Ac(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function Cc(t){for(;t.L;)t=t.L;return t}function zc(t,n,e,r){var i=[null,null],o=pm.push(i)-1;return i.left=t,i.right=n,e&&Rc(i,t,n,e),r&&Rc(i,n,t,r),lm[t.index].halfedges.push(o),lm[n.index].halfedges.push(o),i}function Pc(t,n,e){var r=[n,e];return r.left=t,r}function Rc(t,n,e,r){t[0]||t[1]?t.left===e?t[1]=r:t[0]=r:(t[0]=r,t.left=n,t.right=e)}function Lc(t,n,e,r,i){var o,u=t[0],a=t[1],c=u[0],s=u[1],f=0,l=1,h=a[0]-c,p=a[1]-s;if(o=n-c,h||!(o>0)){if(o/=h,h<0){if(o<f)return;o<l&&(l=o)}else if(h>0){if(o>l)return;o>f&&(f=o)}if(o=r-c,h||!(o<0)){if(o/=h,h<0){if(o>l)return;o>f&&(f=o)}else if(h>0){if(o<f)return;o<l&&(l=o)}if(o=e-s,p||!(o>0)){if(o/=p,p<0){if(o<f)return;o<l&&(l=o)}else if(p>0){if(o>l)return;o>f&&(f=o)}if(o=i-s,p||!(o<0)){if(o/=p,p<0){if(o>l)return;o>f&&(f=o)}else if(p>0){if(o<f)return;o<l&&(l=o)}return!(f>0||l<1)||(f>0&&(t[0]=[c+f*h,s+f*p]),l<1&&(t[1]=[c+l*h,s+l*p]),!0)}}}}}function qc(t,n,e,r,i){var o=t[1];if(o)return!0;var u,a,c=t[0],s=t.left,f=t.right,l=s[0],h=s[1],p=f[0],d=f[1],v=(l+p)/2,_=(h+d)/2;if(d===h){if(v<n||v>=r)return;if(l>p){if(c){if(c[1]>=i)return}else c=[v,e];o=[v,i]}else{if(c){if(c[1]<e)return}else c=[v,i];o=[v,e]}}else if(u=(l-p)/(d-h),a=_-u*v,u<-1||u>1)if(l>p){if(c){if(c[1]>=i)return}else c=[(e-a)/u,e];o=[(i-a)/u,i]}else{if(c){if(c[1]<e)return}else c=[(i-a)/u,i];o=[(e-a)/u,e]}else if(h<d){if(c){if(c[0]>=r)return}else c=[n,u*n+a];o=[r,u*r+a]}else{if(c){if(c[0]<n)return}else c=[r,u*r+a];o=[n,u*n+a]}return t[0]=c,t[1]=o,!0}function Uc(t,n,e,r){for(var i,o=pm.length;o--;)qc(i=pm[o],t,n,e,r)&&Lc(i,t,n,e,r)&&(Math.abs(i[0][0]-i[1][0])>_m||Math.abs(i[0][1]-i[1][1])>_m)||delete pm[o]}function Dc(t){return lm[t.index]={site:t,halfedges:[]}}function Oc(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function Fc(t,n){return n[+(n.left!==t.site)]}function Ic(t,n){return n[+(n.left===t.site)]}function Yc(){for(var t,n,e,r,i=0,o=lm.length;i<o;++i)if((t=lm[i])&&(r=(n=t.halfedges).length)){var u=new Array(r),a=new Array(r);for(e=0;e<r;++e)u[e]=e,a[e]=Oc(t,pm[n[e]]);for(u.sort(function(t,n){return a[n]-a[t]}),e=0;e<r;++e)a[e]=n[u[e]];for(e=0;e<r;++e)n[e]=a[e]}}function Bc(t,n,e,r){var i,o,u,a,c,s,f,l,h,p,d,v,_=lm.length,g=!0;for(i=0;i<_;++i)if(o=lm[i]){for(u=o.site,a=(c=o.halfedges).length;a--;)pm[c[a]]||c.splice(a,1);for(a=0,s=c.length;a<s;)d=(p=Ic(o,pm[c[a]]))[0],v=p[1],l=(f=Fc(o,pm[c[++a%s]]))[0],h=f[1],(Math.abs(d-l)>_m||Math.abs(v-h)>_m)&&(c.splice(a,0,pm.push(Pc(u,p,Math.abs(d-t)<_m&&r-v>_m?[t,Math.abs(l-t)<_m?h:r]:Math.abs(v-r)<_m&&e-d>_m?[Math.abs(h-r)<_m?l:e,r]:Math.abs(d-e)<_m&&v-n>_m?[e,Math.abs(l-e)<_m?h:n]:Math.abs(v-n)<_m&&d-t>_m?[Math.abs(h-n)<_m?l:t,n]:null))-1),++s);s&&(g=!1)}if(g){var y,m,x,b=1/0;for(i=0,g=null;i<_;++i)(o=lm[i])&&(x=(y=(u=o.site)[0]-t)*y+(m=u[1]-n)*m)<b&&(b=x,g=o);if(g){var w=[t,n],M=[t,r],T=[e,r],N=[e,n];g.halfedges.push(pm.push(Pc(u=g.site,w,M))-1,pm.push(Pc(u,M,T))-1,pm.push(Pc(u,T,N))-1,pm.push(Pc(u,N,w))-1)}}for(i=0;i<_;++i)(o=lm[i])&&(o.halfedges.length||delete lm[i])}function jc(){Sc(this),this.x=this.y=this.arc=this.site=this.cy=null}function Hc(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,o=e.site;if(r!==o){var u=i[0],a=i[1],c=r[0]-u,s=r[1]-a,f=o[0]-u,l=o[1]-a,h=2*(c*l-s*f);if(!(h>=-gm)){var p=c*c+s*s,d=f*f+l*l,v=(l*p-s*d)/h,_=(c*d-f*p)/h,g=dm.pop()||new jc;g.arc=t,g.site=i,g.x=v+u,g.y=(g.cy=_+a)+Math.sqrt(v*v+_*_),t.circle=g;for(var y=null,m=hm._;m;)if(g.y<m.y||g.y===m.y&&g.x<=m.x){if(!m.L){y=m.P;break}m=m.L}else{if(!m.R){y=m;break}m=m.R}hm.insert(y,g),y||(sm=g)}}}}function Xc(t){var n=t.circle;n&&(n.P||(sm=n.N),hm.remove(n),dm.push(n),Sc(n),t.circle=null)}function $c(){Sc(this),this.edge=this.site=this.circle=null}function Vc(t){var n=vm.pop()||new $c;return n.site=t,n}function Wc(t){Xc(t),fm.remove(t),vm.push(t),Sc(t)}function Zc(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],o=t.P,u=t.N,a=[t];Wc(t);for(var c=o;c.circle&&Math.abs(e-c.circle.x)<_m&&Math.abs(r-c.circle.cy)<_m;)o=c.P,a.unshift(c),Wc(c),c=o;a.unshift(c),Xc(c);for(var s=u;s.circle&&Math.abs(e-s.circle.x)<_m&&Math.abs(r-s.circle.cy)<_m;)u=s.N,a.push(s),Wc(s),s=u;a.push(s),Xc(s);var f,l=a.length;for(f=1;f<l;++f)s=a[f],c=a[f-1],Rc(s.edge,c.site,s.site,i);c=a[0],(s=a[l-1]).edge=zc(c.site,s.site,null,i),Hc(c),Hc(s)}function Gc(t){for(var n,e,r,i,o=t[0],u=t[1],a=fm._;a;)if((r=Jc(a,u)-o)>_m)a=a.L;else{if(!((i=o-Qc(a,u))>_m)){r>-_m?(n=a.P,e=a):i>-_m?(n=a,e=a.N):n=e=a;break}if(!a.R){n=a;break}a=a.R}Dc(t);var c=Vc(t);if(fm.insert(n,c),n||e){if(n===e)return Xc(n),e=Vc(n.site),fm.insert(c,e),c.edge=e.edge=zc(n.site,c.site),Hc(n),void Hc(e);if(e){Xc(n),Xc(e);var s=n.site,f=s[0],l=s[1],h=t[0]-f,p=t[1]-l,d=e.site,v=d[0]-f,_=d[1]-l,g=2*(h*_-p*v),y=h*h+p*p,m=v*v+_*_,x=[(_*y-p*m)/g+f,(h*m-v*y)/g+l];Rc(e.edge,s,d,x),c.edge=zc(s,t,null,x),e.edge=zc(t,d,null,x),Hc(n),Hc(e)}else c.edge=zc(n.site,c.site)}}function Jc(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var u=t.P;if(!u)return-1/0;var a=(e=u.site)[0],c=e[1],s=c-n;if(!s)return a;var f=a-r,l=1/o-1/s,h=f/s;return l?(-h+Math.sqrt(h*h-2*l*(f*f/(-2*s)-c+s/2+i-o/2)))/l+r:(r+a)/2}function Qc(t,n){var e=t.N;if(e)return Jc(e,n);var r=t.site;return r[1]===n?r[0]:1/0}function Kc(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function ts(t,n){return n[1]-t[1]||n[0]-t[0]}function ns(t,n){var e,r,i,o=t.sort(ts).pop();for(pm=[],lm=new Array(t.length),fm=new kc,hm=new kc;;)if(i=sm,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===e&&o[1]===r||(Gc(o),e=o[0],r=o[1]),o=t.pop();else{if(!i)break;Zc(i.arc)}if(Yc(),n){var u=+n[0][0],a=+n[0][1],c=+n[1][0],s=+n[1][1];Uc(u,a,c,s),Bc(u,a,c,s)}this.edges=pm,this.cells=lm,fm=hm=pm=lm=null}function es(t,n,e){this.target=t,this.type=n,this.transform=e}function rs(t,n,e){this.k=t,this.x=n,this.y=e}function is(t){return t.__zoom||mm}function os(){t.event.stopImmediatePropagation()}function us(){return!t.event.button}function as(){var t,n,e=this;return e instanceof SVGElement?(t=(e=e.ownerSVGElement||e).width.baseVal.value,n=e.height.baseVal.value):(t=e.clientWidth,n=e.clientHeight),[[0,0],[t,n]]}function cs(){return this.__zoom||mm}function ss(){return-t.event.deltaY*(t.event.deltaMode?120:1)/500}function fs(){return"ontouchstart"in this}var ls=function(t,n){return t<n?-1:t>n?1:t>=n?0:NaN},hs=function(t){return 1===t.length&&(t=n(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)>0?i=o:r=o+1}return r}}},ps=hs(ls),ds=ps.right,vs=ps.left,_s=function(t){return null===t?NaN:+t},gs=function(t,n){var e,r,i=t.length,o=0,u=-1,a=0,c=0;if(null==n)for(;++u<i;)isNaN(e=_s(t[u]))||(c+=(r=e-a)*(e-(a+=r/++o)));else for(;++u<i;)isNaN(e=_s(n(t[u],u,t)))||(c+=(r=e-a)*(e-(a+=r/++o)));if(o>1)return c/(o-1)},ys=function(t,n){var e=gs(t,n);return e?Math.sqrt(e):e},ms=function(t,n){var e,r,i,o=t.length,u=-1;if(null==n){for(;++u<o;)if(null!=(e=t[u])&&e>=e)for(r=i=e;++u<o;)null!=(e=t[u])&&(r>e&&(r=e),i<e&&(i=e))}else for(;++u<o;)if(null!=(e=n(t[u],u,t))&&e>=e)for(r=i=e;++u<o;)null!=(e=n(t[u],u,t))&&(r>e&&(r=e),i<e&&(i=e));return[r,i]},xs=Array.prototype,bs=xs.slice,ws=xs.map,Ms=function(t){return function(){return t}},Ts=function(t){return t},Ns=function(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o},ks=Math.sqrt(50),Ss=Math.sqrt(10),Es=Math.sqrt(2),As=function(t,n,e){var i,o,u,a,c=-1;if(n=+n,t=+t,e=+e,t===n&&e>0)return[t];if((i=n<t)&&(o=t,t=n,n=o),0===(a=r(t,n,e))||!isFinite(a))return[];if(a>0)for(t=Math.ceil(t/a),n=Math.floor(n/a),u=new Array(o=Math.ceil(n-t+1));++c<o;)u[c]=(t+c)*a;else for(t=Math.floor(t*a),n=Math.ceil(n*a),u=new Array(o=Math.ceil(t-n+1));++c<o;)u[c]=(t-c)/a;return i&&u.reverse(),u},Cs=function(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1},zs=function(t,n,e){if(null==e&&(e=_s),r=t.length){if((n=+n)<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,o=Math.floor(i),u=+e(t[o],o,t);return u+(+e(t[o+1],o+1,t)-u)*(i-o)}},Ps=function(t){for(var n,e,r,i=t.length,o=-1,u=0;++o<i;)u+=t[o].length;for(e=new Array(u);--i>=0;)for(n=(r=t[i]).length;--n>=0;)e[--u]=r[n];return e},Rs=function(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&r>e&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&r>e&&(r=e);return r},Ls=function(t){if(!(i=t.length))return[];for(var n=-1,e=Rs(t,o),r=new Array(e);++n<e;)for(var i,u=-1,a=r[n]=new Array(i);++u<i;)a[u]=t[u][n];return r},qs=Array.prototype.slice,Us=function(t){return t},Ds=1,Os=2,Fs=3,Is=4,Ys=1e-6,Bs={value:function(){}};p.prototype=h.prototype={constructor:p,on:function(t,n){var e,r=this._,i=d(t+"",r),o=-1,u=i.length;{if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++o<u;)if(e=(t=i[o]).type)r[e]=_(r[e],t.name,n);else if(null==n)for(e in r)r[e]=_(r[e],t.name,null);return this}for(;++o<u;)if((e=(t=i[o]).type)&&(e=v(r[e],t.name)))return e}},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new p(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var js="http://www.w3.org/1999/xhtml",Hs={svg:"http://www.w3.org/2000/svg",xhtml:js,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},Xs=function(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Hs.hasOwnProperty(n)?{space:Hs[n],local:t}:t},$s=function(t){var n=Xs(t);return(n.local?y:g)(n)},Vs=0;x.prototype=m.prototype={constructor:x,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};var Ws=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var Zs=document.documentElement;if(!Zs.matches){var Gs=Zs.webkitMatchesSelector||Zs.msMatchesSelector||Zs.mozMatchesSelector||Zs.oMatchesSelector;Ws=function(t){return function(){return Gs.call(this,t)}}}}var Js=Ws,Qs={};t.event=null,"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(Qs={mouseenter:"mouseover",mouseleave:"mouseout"}));var Ks=function(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e},tf=function(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]},nf=function(t){var n=Ks();return n.changedTouches&&(n=n.changedTouches[0]),tf(t,n)},ef=function(t){return null==t?S:function(){return this.querySelector(t)}},rf=function(t){return null==t?E:function(){return this.querySelectorAll(t)}},of=function(t){return new Array(t.length)};A.prototype={constructor:A,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var uf=function(t){return function(){return t}},af="$",cf=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView};W.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var sf=[null];pt.prototype=dt.prototype={constructor:pt,select:function(t){"function"!=typeof t&&(t=ef(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u,a=n[i],c=a.length,s=r[i]=new Array(c),f=0;f<c;++f)(o=a[f])&&(u=t.call(o,o.__data__,f,a))&&("__data__"in o&&(u.__data__=o.__data__),s[f]=u);return new pt(r,this._parents)},selectAll:function(t){"function"!=typeof t&&(t=rf(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var u,a=n[o],c=a.length,s=0;s<c;++s)(u=a[s])&&(r.push(t.call(u,u.__data__,s,a)),i.push(u));return new pt(r,i)},filter:function(t){"function"!=typeof t&&(t=Js(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new pt(r,this._parents)},data:function(t,n){if(!t)return p=new Array(this.size()),s=-1,this.each(function(t){p[++s]=t}),p;var e=n?z:C,r=this._parents,i=this._groups;"function"!=typeof t&&(t=uf(t));for(var o=i.length,u=new Array(o),a=new Array(o),c=new Array(o),s=0;s<o;++s){var f=r[s],l=i[s],h=l.length,p=t.call(f,f&&f.__data__,s,r),d=p.length,v=a[s]=new Array(d),_=u[s]=new Array(d);e(f,l,v,_,c[s]=new Array(h),p,n);for(var g,y,m=0,x=0;m<d;++m)if(g=v[m]){for(m>=x&&(x=m+1);!(y=_[x])&&++x<d;);g._next=y||null}}return u=new pt(u,r),u._enter=a,u._exit=c,u},enter:function(){return new pt(this._enter||this._groups.map(of),this._parents)},exit:function(){return new pt(this._exit||this._groups.map(of),this._parents)},merge:function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new pt(u,this._parents)},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,u=i[o];--o>=0;)(r=i[o])&&(u&&u!==r.nextSibling&&u.parentNode.insertBefore(r,u),u=r);return this},sort:function(t){t||(t=P);for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i){for(var o,u=n[i],a=u.length,c=r[i]=new Array(a),s=0;s<a;++s)(o=u[s])&&(c[s]=o);c.sort(function(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e})}return new pt(r,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var u=r[i];if(u)return u}return null},size:function(){var t=0;return this.each(function(){++t}),t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],u=0,a=o.length;u<a;++u)(i=o[u])&&t.call(i,i.__data__,u,o);return this},attr:function(t,n){var e=Xs(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?L:R:"function"==typeof n?e.local?O:D:e.local?U:q)(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?F:"function"==typeof n?Y:I)(t,n,null==e?"":e)):B(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?j:"function"==typeof n?X:H)(t,n)):this.node()[t]},classed:function(t,n){var e=$(t+"");if(arguments.length<2){for(var r=V(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?K:n?J:Q)(e,n))},text:function(t){return arguments.length?this.each(null==t?tt:("function"==typeof t?et:nt)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?rt:("function"==typeof t?ot:it)(t)):this.node().innerHTML},raise:function(){return this.each(ut)},lower:function(){return this.each(at)},append:function(t){var n="function"==typeof t?t:$s(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:$s(t),r=null==n?ct:"function"==typeof n?n:ef(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(st)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=M(t+""),u=o.length;{if(!(arguments.length<2)){for(a=n?N:T,null==e&&(e=!1),r=0;r<u;++r)this.each(a(o[r],n,e));return this}var a=this.node().__on;if(a)for(var c,s=0,f=a.length;s<f;++s)for(r=0,c=a[s];r<u;++r)if((i=o[r]).type===c.type&&i.name===c.name)return c.value}},dispatch:function(t,n){return this.each(("function"==typeof n?ht:lt)(t,n))}};var ff=function(t){return"string"==typeof t?new pt([[document.querySelector(t)]],[document.documentElement]):new pt([[t]],sf)},lf=function(t,n,e){arguments.length<3&&(e=n,n=Ks().changedTouches);for(var r,i=0,o=n?n.length:0;i<o;++i)if((r=n[i]).identifier===e)return tf(t,r);return null},hf=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},pf=function(t){var n=t.document.documentElement,e=ff(t).on("dragstart.drag",hf,!0);"onselectstart"in n?e.on("selectstart.drag",hf,!0):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")},df=function(t){return function(){return t}};gt.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var vf=function(t,n,e){t.prototype=n.prototype=e,e.constructor=t},_f="\\s*([+-]?\\d+)\\s*",gf="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",yf="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",mf=/^#([0-9a-f]{3})$/,xf=/^#([0-9a-f]{6})$/,bf=new RegExp("^rgb\\("+[_f,_f,_f]+"\\)$"),wf=new RegExp("^rgb\\("+[yf,yf,yf]+"\\)$"),Mf=new RegExp("^rgba\\("+[_f,_f,_f,gf]+"\\)$"),Tf=new RegExp("^rgba\\("+[yf,yf,yf,gf]+"\\)$"),Nf=new RegExp("^hsl\\("+[gf,yf,yf]+"\\)$"),kf=new RegExp("^hsla\\("+[gf,yf,yf,gf]+"\\)$"),Sf={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};vf(Mt,Tt,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}}),vf(At,Et,wt(Mt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new At(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new At(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),vf(Rt,Pt,wt(Mt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Rt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Rt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new At(Lt(t>=240?t-240:t+120,i,r),Lt(t,i,r),Lt(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Ef=Math.PI/180,Af=180/Math.PI,Cf=.95047,zf=1,Pf=1.08883,Rf=4/29,Lf=6/29,qf=3*Lf*Lf,Uf=Lf*Lf*Lf;vf(Dt,Ut,wt(Mt,{brighter:function(t){return new Dt(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new Dt(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return t=zf*Ft(t),n=Cf*Ft(n),e=Pf*Ft(e),new At(It(3.2404542*n-1.5371385*t-.4985314*e),It(-.969266*n+1.8760108*t+.041556*e),It(.0556434*n-.2040259*t+1.0572252*e),this.opacity)}})),vf(Ht,jt,wt(Mt,{brighter:function(t){return new Ht(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new Ht(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return qt(this).rgb()}}));var Df=-.14861,Of=1.78277,Ff=-.29227,If=-.90649,Yf=1.97294,Bf=Yf*If,jf=Yf*Of,Hf=Of*Ff-If*Df;vf(Vt,$t,wt(Mt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Vt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Vt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Ef,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new At(255*(n+e*(Df*r+Of*i)),255*(n+e*(Ff*r+If*i)),255*(n+e*(Yf*r)),this.opacity)}}));var Xf,$f,Vf,Wf,Zf,Gf,Jf=function(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],u=r>0?t[r-1]:2*i-o,a=r<n-1?t[r+2]:2*o-i;return Wt((e-r/n)*n,u,i,o,a)}},Qf=function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],u=t[(r+1)%n],a=t[(r+2)%n];return Wt((e-r/n)*n,i,o,u,a)}},Kf=function(t){return function(){return t}},tl=function t(n){function e(t,n){var e=r((t=Et(t)).r,(n=Et(n)).r),i=r(t.g,n.g),o=r(t.b,n.b),u=Kt(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=o(n),t.opacity=u(n),t+""}}var r=Qt(n);return e.gamma=t,e}(1),nl=tn(Jf),el=tn(Qf),rl=function(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(r),u=new Array(r);for(e=0;e<i;++e)o[e]=fl(t[e],n[e]);for(;e<r;++e)u[e]=n[e];return function(t){for(e=0;e<i;++e)u[e]=o[e](t);return u}},il=function(t,n){var e=new Date;return t=+t,n-=t,function(r){return e.setTime(t+n*r),e}},ol=function(t,n){return t=+t,n-=t,function(e){return t+n*e}},ul=function(t,n){var e,r={},i={};null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={});for(e in n)e in t?r[e]=fl(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}},al=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,cl=new RegExp(al.source,"g"),sl=function(t,n){var e,r,i,o=al.lastIndex=cl.lastIndex=0,u=-1,a=[],c=[];for(t+="",n+="";(e=al.exec(t))&&(r=cl.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),a[u]?a[u]+=i:a[++u]=i),(e=e[0])===(r=r[0])?a[u]?a[u]+=r:a[++u]=r:(a[++u]=null,c.push({i:u,x:ol(e,r)})),o=cl.lastIndex;return o<n.length&&(i=n.slice(o),a[u]?a[u]+=i:a[++u]=i),a.length<2?c[0]?en(c[0].x):nn(n):(n=c.length,function(t){for(var e,r=0;r<n;++r)a[(e=c[r]).i]=e.x(t);return a.join("")})},fl=function(t,n){var e,r=typeof n;return null==n||"boolean"===r?Kf(n):("number"===r?ol:"string"===r?(e=Tt(n))?(n=e,tl):sl:n instanceof Tt?tl:n instanceof Date?il:Array.isArray(n)?rl:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?ul:ol)(t,n)},ll=function(t,n){return t=+t,n-=t,function(e){return Math.round(t+n*e)}},hl=180/Math.PI,pl={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},dl=function(t,n,e,r,i,o){var u,a,c;return(u=Math.sqrt(t*t+n*n))&&(t/=u,n/=u),(c=t*e+n*r)&&(e-=t*c,r-=n*c),(a=Math.sqrt(e*e+r*r))&&(e/=a,r/=a,c/=a),t*r<n*e&&(t=-t,n=-n,c=-c,u=-u),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*hl,skewX:Math.atan(c)*hl,scaleX:u,scaleY:a}},vl=rn(function(t){return"none"===t?pl:(Xf||(Xf=document.createElement("DIV"),$f=document.documentElement,Vf=document.defaultView),Xf.style.transform=t,t=Vf.getComputedStyle($f.appendChild(Xf),null).getPropertyValue("transform"),$f.removeChild(Xf),t=t.slice(7,-1).split(","),dl(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))},"px, ","px)","deg)"),_l=rn(function(t){return null==t?pl:(Wf||(Wf=document.createElementNS("http://www.w3.org/2000/svg","g")),Wf.setAttribute("transform",t),(t=Wf.transform.baseVal.consolidate())?(t=t.matrix,dl(t.a,t.b,t.c,t.d,t.e,t.f)):pl)},", ",")",")"),gl=Math.SQRT2,yl=function(t,n){var e,r,i=t[0],o=t[1],u=t[2],a=n[0],c=n[1],s=n[2],f=a-i,l=c-o,h=f*f+l*l;if(h<1e-12)r=Math.log(s/u)/gl,e=function(t){return[i+t*f,o+t*l,u*Math.exp(gl*t*r)]};else{var p=Math.sqrt(h),d=(s*s-u*u+4*h)/(2*u*2*p),v=(s*s-u*u-4*h)/(2*s*2*p),_=Math.log(Math.sqrt(d*d+1)-d),g=Math.log(Math.sqrt(v*v+1)-v);r=(g-_)/gl,e=function(t){var n=t*r,e=on(_),a=u/(2*p)*(e*an(gl*n+_)-un(_));return[i+a*f,o+a*l,u*e/on(gl*n+_)]}}return e.duration=1e3*r,e},ml=cn(Jt),xl=cn(Kt),bl=sn(Jt),wl=sn(Kt),Ml=fn(Jt),Tl=fn(Kt),Nl=0,kl=0,Sl=0,El=1e3,Al=0,Cl=0,zl=0,Pl="object"==typeof performance&&performance.now?performance:Date,Rl="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};pn.prototype=dn.prototype={constructor:pn,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?ln():+e)+(null==n?0:+n),this._next||Gf===this||(Gf?Gf._next=this:Zf=this,Gf=this),this._call=t,this._time=e,mn()},stop:function(){this._call&&(this._call=null,this._time=1/0,mn())}};var Ll=function(t,n,e){var r=new pn;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r},ql=h("start","end","interrupt"),Ul=[],Dl=0,Ol=1,Fl=2,Il=3,Yl=4,Bl=5,jl=6,Hl=function(t,n,e,r,i,o){var u=t.__transition;if(u){if(e in u)return}else t.__transition={};Mn(t,e,{name:n,index:r,group:i,on:ql,tween:Ul,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Dl})},Xl=function(t,n){var e,r,i,o=t.__transition,u=!0;if(o){n=null==n?null:n+"";for(i in o)(e=o[i]).name===n?(r=e.state>Fl&&e.state<Bl,e.state=jl,e.timer.stop(),r&&e.on.call("interrupt",t,t.__data__,e.index,e.group),delete o[i]):u=!1;u&&delete t.__transition}},$l=function(t,n){var e;return("number"==typeof n?ol:n instanceof Tt?tl:(e=Tt(n))?(n=e,tl):sl)(t,n)},Vl=dt.prototype.constructor,Wl=0,Zl=dt.prototype;Gn.prototype=Jn.prototype={constructor:Gn,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=ef(t));for(var r=this._groups,i=r.length,o=new Array(i),u=0;u<i;++u)for(var a,c,s=r[u],f=s.length,l=o[u]=new Array(f),h=0;h<f;++h)(a=s[h])&&(c=t.call(a,a.__data__,h,s))&&("__data__"in a&&(c.__data__=a.__data__),l[h]=c,Hl(l[h],n,e,h,l,wn(a,e)));return new Gn(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=rf(t));for(var r=this._groups,i=r.length,o=[],u=[],a=0;a<i;++a)for(var c,s=r[a],f=s.length,l=0;l<f;++l)if(c=s[l]){for(var h,p=t.call(c,c.__data__,l,s),d=wn(c,e),v=0,_=p.length;v<_;++v)(h=p[v])&&Hl(h,n,e,v,p,d);o.push(p),u.push(c)}return new Gn(o,u,n,e)},filter:function(t){"function"!=typeof t&&(t=Js(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new Gn(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new Gn(u,this._parents,this._name,this._id)},selection:function(){return new Vl(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=Qn(),r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)if(u=a[s]){var f=wn(u,n);Hl(u,t,e,s,a,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new Gn(r,this._parents,t,e)},call:Zl.call,nodes:Zl.nodes,node:Zl.node,size:Zl.size,empty:Zl.empty,each:Zl.each,on:function(t,n){var e=this._id;return arguments.length<2?wn(this.node(),e).on.on(t):this.each(Yn(e,t,n))},attr:function(t,n){var e=Xs(t),r="transform"===e?_l:$l;return this.attrTween(t,"function"==typeof n?(e.local?Pn:zn)(e,r,kn(this,"attr."+t,n)):null==n?(e.local?En:Sn)(e):(e.local?Cn:An)(e,r,n+""))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=Xs(t);return this.tween(e,(r.local?Rn:Ln)(r,n))},style:function(t,n,e){var r="transform"==(t+="")?vl:$l;return null==n?this.styleTween(t,jn(t,r)).on("end.style."+t,Hn(t)):this.styleTween(t,"function"==typeof n?$n(t,r,kn(this,"style."+t,n)):Xn(t,r,n+""),e)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,Vn(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?Zn(kn(this,"text",t)):Wn(null==t?"":t+""))},remove:function(){return this.on("end.remove",Bn(this._id))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=wn(this.node(),e).tween,o=0,u=i.length;o<u;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?Tn:Nn)(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?qn:Un)(n,t)):wn(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?Dn:On)(n,t)):wn(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(Fn(n,t)):wn(this.node(),n).ease}};var Gl=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),Jl=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),Ql=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),Kl=Math.PI,th=Kl/2,nh=4/11,eh=6/11,rh=8/11,ih=.75,oh=9/11,uh=10/11,ah=.9375,ch=21/22,sh=63/64,fh=1/nh/nh,lh=function t(n){function e(t){return t*t*((n+1)*t-n)}return n=+n,e.overshoot=t,e}(1.70158),hh=function t(n){function e(t){return--t*t*((n+1)*t+n)+1}return n=+n,e.overshoot=t,e}(1.70158),ph=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(1.70158),dh=2*Math.PI,vh=function t(n,e){function r(t){return n*Math.pow(2,10*--t)*Math.sin((i-t)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=dh);return r.amplitude=function(n){return t(n,e*dh)},r.period=function(e){return t(n,e)},r}(1,.3),_h=function t(n,e){function r(t){return 1-n*Math.pow(2,-10*(t=+t))*Math.sin((t+i)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=dh);return r.amplitude=function(n){return t(n,e*dh)},r.period=function(e){return t(n,e)},r}(1,.3),gh=function t(n,e){function r(t){return((t=2*t-1)<0?n*Math.pow(2,10*t)*Math.sin((i-t)/e):2-n*Math.pow(2,-10*t)*Math.sin((i+t)/e))/2}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=dh);return r.amplitude=function(n){return t(n,e*dh)},r.period=function(e){return t(n,e)},r}(1,.3),yh={time:null,delay:0,duration:250,ease:te};dt.prototype.interrupt=function(t){return this.each(function(){Xl(this,t)})},dt.prototype.transition=function(t){var n,e;t instanceof Gn?(n=t._id,t=t._name):(n=Qn(),(e=yh).time=ln(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)(u=a[s])&&Hl(u,t,n,s,a,e||oe(u,n));return new Gn(r,this._parents,t,n)};var mh=[null],xh=function(t){return function(){return t}},bh=function(t,n,e){this.target=t,this.type=n,this.selection=e},wh=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},Mh={name:"drag"},Th={name:"space"},Nh={name:"handle"},kh={name:"center"},Sh={name:"x",handles:["e","w"].map(ae),input:function(t,n){return t&&[[t[0],n[0][1]],[t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},Eh={name:"y",handles:["n","s"].map(ae),input:function(t,n){return t&&[[n[0][0],t[0]],[n[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},Ah={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(ae),input:function(t){return t},output:function(t){return t}},Ch={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},zh={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},Ph={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Rh={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Lh={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1},qh=Math.cos,Uh=Math.sin,Dh=Math.PI,Oh=Dh/2,Fh=2*Dh,Ih=Math.max,Yh=Array.prototype.slice,Bh=function(t){return function(){return t}},jh=Math.PI,Hh=2*jh,Xh=Hh-1e-6;de.prototype=ve.prototype={constructor:de,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,o){this._+="C"+ +t+","+ +n+","+ +e+","+ +r+","+(this._x1=+i)+","+(this._y1=+o)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var o=this._x1,u=this._y1,a=e-t,c=r-n,s=o-t,f=u-n,l=s*s+f*f;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(l>1e-6)if(Math.abs(f*a-c*s)>1e-6&&i){var h=e-o,p=r-u,d=a*a+c*c,v=h*h+p*p,_=Math.sqrt(d),g=Math.sqrt(l),y=i*Math.tan((jh-Math.acos((d+l-v)/(2*_*g)))/2),m=y/g,x=y/_;Math.abs(m-1)>1e-6&&(this._+="L"+(t+m*s)+","+(n+m*f)),this._+="A"+i+","+i+",0,0,"+ +(f*h>s*p)+","+(this._x1=t+x*a)+","+(this._y1=n+x*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n;var u=(e=+e)*Math.cos(r),a=e*Math.sin(r),c=t+u,s=n+a,f=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+s:(Math.abs(this._x1-c)>1e-6||Math.abs(this._y1-s)>1e-6)&&(this._+="L"+c+","+s),e&&(l<0&&(l=l%Hh+Hh),l>Xh?this._+="A"+e+","+e+",0,1,"+f+","+(t-u)+","+(n-a)+"A"+e+","+e+",0,1,"+f+","+(this._x1=c)+","+(this._y1=s):l>1e-6&&(this._+="A"+e+","+e+",0,"+ +(l>=jh)+","+f+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};be.prototype=we.prototype={constructor:be,has:function(t){return"$"+t in this},get:function(t){return this["$"+t]},set:function(t,n){return this["$"+t]=n,this},remove:function(t){var n="$"+t;return n in this&&delete this[n]},clear:function(){for(var t in this)"$"===t[0]&&delete this[t]},keys:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(n.slice(1));return t},values:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(this[n]);return t},entries:function(){var t=[];for(var n in this)"$"===n[0]&&t.push({key:n.slice(1),value:this[n]});return t},size:function(){var t=0;for(var n in this)"$"===n[0]&&++t;return t},empty:function(){for(var t in this)if("$"===t[0])return!1;return!0},each:function(t){for(var n in this)"$"===n[0]&&t(this[n],n.slice(1),this)}};var $h=we.prototype;Se.prototype=Ee.prototype={constructor:Se,has:$h.has,add:function(t){return t+="",this["$"+t]=t,this},remove:$h.remove,clear:$h.clear,values:$h.keys,size:$h.size,empty:$h.empty,each:$h.each};var Vh={},Wh={},Zh=34,Gh=10,Jh=13,Qh=function(t){function n(t,n){function e(){if(s)return Wh;if(f)return f=!1,Vh;var n,e,r=a;if(t.charCodeAt(r)===Zh){for(;a++<u&&t.charCodeAt(a)!==Zh||t.charCodeAt(++a)===Zh;);return(n=a)>=u?s=!0:(e=t.charCodeAt(a++))===Gh?f=!0:e===Jh&&(f=!0,t.charCodeAt(a)===Gh&&++a),t.slice(r+1,n-1).replace(/""/g,'"')}for(;a<u;){if((e=t.charCodeAt(n=a++))===Gh)f=!0;else if(e===Jh)f=!0,t.charCodeAt(a)===Gh&&++a;else if(e!==o)continue;return t.slice(r,n)}return s=!0,t.slice(r,u)}var r,i=[],u=t.length,a=0,c=0,s=u<=0,f=!1;for(t.charCodeAt(u-1)===Gh&&--u,t.charCodeAt(u-1)===Jh&&--u;(r=e())!==Wh;){for(var l=[];r!==Vh&&r!==Wh;)l.push(r),r=e();n&&null==(l=n(l,c++))||i.push(l)}return i}function e(n){return n.map(r).join(t)}function r(t){return null==t?"":i.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}var i=new RegExp('["'+t+"\n\r]"),o=t.charCodeAt(0);return{parse:function(t,e){var r,i,o=n(t,function(t,n){if(r)return r(t,n-1);i=t,r=e?Ce(t,e):Ae(t)});return o.columns=i,o},parseRows:n,format:function(n,e){return null==e&&(e=ze(n)),[e.map(r).join(t)].concat(n.map(function(n){return e.map(function(t){return r(n[t])}).join(t)})).join("\n")},formatRows:function(t){return t.map(e).join("\n")}}},Kh=Qh(","),tp=Kh.parse,np=Kh.parseRows,ep=Kh.format,rp=Kh.formatRows,ip=Qh("\t"),op=ip.parse,up=ip.parseRows,ap=ip.format,cp=ip.formatRows,sp=function(t){return function(){return t}},fp=function(){return 1e-6*(Math.random()-.5)},lp=function(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i},hp=qe.prototype=Ue.prototype;hp.copy=function(){var t,n,e=new Ue(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=De(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=De(n));return e},hp.add=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return Pe(this.cover(n,e),n,e,t)},hp.addAll=function(t){var n,e,r,i,o=t.length,u=new Array(o),a=new Array(o),c=1/0,s=1/0,f=-1/0,l=-1/0;for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(u[e]=r,a[e]=i,r<c&&(c=r),r>f&&(f=r),i<s&&(s=i),i>l&&(l=i));for(f<c&&(c=this._x0,f=this._x1),l<s&&(s=this._y0,l=this._y1),this.cover(c,s).cover(f,l),e=0;e<o;++e)Pe(this,u[e],a[e],t[e]);return this},hp.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{if(!(e>t||t>i||r>n||n>o))return this;var u,a,c=i-e,s=this._root;switch(a=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do{u=new Array(4),u[a]=s,s=u}while(c*=2,i=e+c,o=r+c,t>i||n>o);break;case 1:do{u=new Array(4),u[a]=s,s=u}while(c*=2,e=i-c,o=r+c,e>t||n>o);break;case 2:do{u=new Array(4),u[a]=s,s=u}while(c*=2,i=e+c,r=o-c,t>i||r>n);break;case 3:do{u=new Array(4),u[a]=s,s=u}while(c*=2,e=i-c,r=o-c,e>t||r>n)}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},hp.data=function(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t},hp.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},hp.find=function(t,n,e){var r,i,o,u,a,c,s,f=this._x0,l=this._y0,h=this._x1,p=this._y1,d=[],v=this._root;for(v&&d.push(new lp(v,f,l,h,p)),null==e?e=1/0:(f=t-e,l=n-e,h=t+e,p=n+e,e*=e);c=d.pop();)if(!(!(v=c.node)||(i=c.x0)>h||(o=c.y0)>p||(u=c.x1)<f||(a=c.y1)<l))if(v.length){var _=(i+u)/2,g=(o+a)/2;d.push(new lp(v[3],_,g,u,a),new lp(v[2],i,g,_,a),new lp(v[1],_,o,u,g),new lp(v[0],i,o,_,g)),(s=(n>=g)<<1|t>=_)&&(c=d[d.length-1],d[d.length-1]=d[d.length-1-s],d[d.length-1-s]=c)}else{var y=t-+this._x.call(null,v.data),m=n-+this._y.call(null,v.data),x=y*y+m*m;if(x<e){var b=Math.sqrt(e=x);f=t-b,l=n-b,h=t+b,p=n+b,r=v.data}}return r},hp.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(u=+this._y.call(null,t)))return this;var n,e,r,i,o,u,a,c,s,f,l,h,p=this._root,d=this._x0,v=this._y0,_=this._x1,g=this._y1;if(!p)return this;if(p.length)for(;;){if((s=o>=(a=(d+_)/2))?d=a:_=a,(f=u>=(c=(v+g)/2))?v=c:g=c,n=p,!(p=p[l=f<<1|s]))return this;if(!p.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(p=n[0]||n[1]||n[2]||n[3])&&p===(n[3]||n[2]||n[1]||n[0])&&!p.length&&(e?e[h]=p:this._root=p),this):(this._root=i,this)},hp.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},hp.root=function(){return this._root},hp.size=function(){var t=0;return this.visit(function(n){if(!n.length)do{++t}while(n=n.next)}),t},hp.visit=function(t){var n,e,r,i,o,u,a=[],c=this._root;for(c&&a.push(new lp(c,this._x0,this._y0,this._x1,this._y1));n=a.pop();)if(!t(c=n.node,r=n.x0,i=n.y0,o=n.x1,u=n.y1)&&c.length){var s=(r+o)/2,f=(i+u)/2;(e=c[3])&&a.push(new lp(e,s,f,o,u)),(e=c[2])&&a.push(new lp(e,r,f,s,u)),(e=c[1])&&a.push(new lp(e,s,i,o,f)),(e=c[0])&&a.push(new lp(e,r,i,s,f))}return this},hp.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new lp(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,u=n.x0,a=n.y0,c=n.x1,s=n.y1,f=(u+c)/2,l=(a+s)/2;(o=i[0])&&e.push(new lp(o,u,a,f,l)),(o=i[1])&&e.push(new lp(o,f,a,c,l)),(o=i[2])&&e.push(new lp(o,u,l,f,s)),(o=i[3])&&e.push(new lp(o,f,l,c,s))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},hp.x=function(t){return arguments.length?(this._x=t,this):this._x},hp.y=function(t){return arguments.length?(this._y=t,this):this._y};var pp,dp=10,vp=Math.PI*(3-Math.sqrt(5)),_p=function(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]},gp=function(t){return(t=_p(Math.abs(t)))?t[1]:NaN},yp=function(t,n){return function(e,r){for(var i=e.length,o=[],u=0,a=t[0],c=0;i>0&&a>0&&(c+a+1>r&&(a=Math.max(1,r-c)),o.push(e.substring(i-=a,i+a)),!((c+=a+1)>r));)a=t[u=(u+1)%t.length];return o.reverse().join(n)}},mp=function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}},xp=function(t,n){var e=_p(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")},bp={"":function(t,n){t:for(var e,r=(t=t.toPrecision(n)).length,i=1,o=-1;i<r;++i)switch(t[i]){case".":o=e=i;break;case"0":0===o&&(o=i),e=i;break;case"e":break t;default:o>0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t},"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return xp(100*t,n)},r:xp,s:function(t,n){var e=_p(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(pp=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=r.length;return o===u?r:o>u?r+new Array(o-u+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+_p(t,Math.max(0,n+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},wp=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;He.prototype=Xe.prototype,Xe.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type};var Mp,Tp=function(t){return t},Np=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],kp=function(t){function n(t){function n(t){var n,r,u,f=_,x=g;if("c"===v)x=y(t)+x,t="";else{var b=(t=+t)<0;if(t=y(Math.abs(t),d),b&&0==+t&&(b=!1),f=(b?"("===s?s:"-":"-"===s||"("===s?"":s)+f,x=x+("s"===v?Np[8+pp/3]:"")+(b&&"("===s?")":""),m)for(n=-1,r=t.length;++n<r;)if(48>(u=t.charCodeAt(n))||u>57){x=(46===u?i+t.slice(n+1):t.slice(n))+x,t=t.slice(0,n);break}}p&&!l&&(t=e(t,1/0));var w=f.length+t.length+x.length,M=w<h?new Array(h-w+1).join(a):"";switch(p&&l&&(t=e(M+t,M.length?h-x.length:1/0),M=""),c){case"<":t=f+t+x+M;break;case"=":t=f+M+t+x;break;case"^":t=M.slice(0,w=M.length>>1)+f+t+x+M.slice(w);break;default:t=M+f+t+x}return o(t)}var a=(t=He(t)).fill,c=t.align,s=t.sign,f=t.symbol,l=t.zero,h=t.width,p=t.comma,d=t.precision,v=t.type,_="$"===f?r[0]:"#"===f&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",g="$"===f?r[1]:/[%p]/.test(v)?u:"",y=bp[v],m=!v||/[defgprs%]/.test(v);return d=null==d?v?6:12:/[gprs]/.test(v)?Math.max(1,Math.min(21,d)):Math.max(0,Math.min(20,d)),n.toString=function(){return t+""},n}var e=t.grouping&&t.thousands?yp(t.grouping,t.thousands):Tp,r=t.currency,i=t.decimal,o=t.numerals?mp(t.numerals):Tp,u=t.percent||"%";return{format:n,formatPrefix:function(t,e){var r=n((t=He(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(gp(e)/3))),o=Math.pow(10,-i),u=Np[8+i/3];return function(t){return r(o*t)+u}}}};$e({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var Sp=function(t){return Math.max(0,-gp(Math.abs(t)))},Ep=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(gp(n)/3)))-gp(Math.abs(t)))},Ap=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,gp(n)-gp(t))+1},Cp=function(){return new Ve};Ve.prototype={constructor:Ve,reset:function(){this.s=this.t=0},add:function(t){We(cd,t,this.t),We(this,cd.s,this.s),this.s?this.t+=cd.t:this.s=cd.t},valueOf:function(){return this.s}};var zp,Pp,Rp,Lp,qp,Up,Dp,Op,Fp,Ip,Yp,Bp,jp,Hp,Xp,$p,Vp,Wp,Zp,Gp,Jp,Qp,Kp,td,nd,ed,rd,id,od,ud,ad,cd=new Ve,sd=1e-6,fd=Math.PI,ld=fd/2,hd=fd/4,pd=2*fd,dd=180/fd,vd=fd/180,_d=Math.abs,gd=Math.atan,yd=Math.atan2,md=Math.cos,xd=Math.ceil,bd=Math.exp,wd=Math.log,Md=Math.pow,Td=Math.sin,Nd=Math.sign||function(t){return t>0?1:t<0?-1:0},kd=Math.sqrt,Sd=Math.tan,Ed={Feature:function(t,n){Ke(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)Ke(e[r].geometry,n)}},Ad={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){tr(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)tr(e[r],n,0)},Polygon:function(t,n){nr(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)nr(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)Ke(e[r],n)}},Cd=function(t,n){t&&Ed.hasOwnProperty(t.type)?Ed[t.type](t,n):Ke(t,n)},zd=Cp(),Pd=Cp(),Rd={point:Qe,lineStart:Qe,lineEnd:Qe,polygonStart:function(){zd.reset(),Rd.lineStart=er,Rd.lineEnd=rr},polygonEnd:function(){var t=+zd;Pd.add(t<0?pd+t:t),this.lineStart=this.lineEnd=this.point=Qe},sphere:function(){Pd.add(pd)}},Ld=Cp(),qd={point:pr,lineStart:vr,lineEnd:_r,polygonStart:function(){qd.point=gr,qd.lineStart=yr,qd.lineEnd=mr,Ld.reset(),Rd.polygonStart()},polygonEnd:function(){Rd.polygonEnd(),qd.point=pr,qd.lineStart=vr,qd.lineEnd=_r,zd<0?(Up=-(Op=180),Dp=-(Fp=90)):Ld>sd?Fp=90:Ld<-sd&&(Dp=-90),Xp[0]=Up,Xp[1]=Op}},Ud={sphere:Qe,point:Mr,lineStart:Nr,lineEnd:Er,polygonStart:function(){Ud.lineStart=Ar,Ud.lineEnd=Cr},polygonEnd:function(){Ud.lineStart=Nr,Ud.lineEnd=Er}},Dd=function(t){return function(){return t}},Od=function(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e};Rr.invert=Rr;var Fd,Id,Yd,Bd,jd,Hd,Xd,$d,Vd,Wd,Zd,Gd=function(t){function n(n){return n=t(n[0]*vd,n[1]*vd),n[0]*=dd,n[1]*=dd,n}return t=Lr(t[0]*vd,t[1]*vd,t.length>2?t[2]*vd:0),n.invert=function(n){return n=t.invert(n[0]*vd,n[1]*vd),n[0]*=dd,n[1]*=dd,n},n},Jd=function(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:Qe,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}},Qd=function(t,n){return _d(t[0]-n[0])<sd&&_d(t[1]-n[1])<sd},Kd=function(t,n,e,r,i){var o,u,a=[],c=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],u=t[n];if(Qd(r,u)){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);i.lineEnd()}else a.push(e=new Ir(r,t,null,!0)),c.push(e.o=new Ir(r,null,e,!1)),a.push(e=new Ir(u,t,null,!1)),c.push(e.o=new Ir(u,null,e,!0))}}),a.length){for(c.sort(n),Yr(a),Yr(c),o=0,u=c.length;o<u;++o)c[o].e=e=!e;for(var s,f,l=a[0];;){for(var h=l,p=!0;h.v;)if((h=h.n)===l)return;s=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(p)for(o=0,u=s.length;o<u;++o)i.point((f=s[o])[0],f[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(p)for(s=h.p.z,o=s.length-1;o>=0;--o)i.point((f=s[o])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}s=(h=h.o).z,p=!p}while(!h.v);i.lineEnd()}}},tv=Cp(),nv=function(t,n){var e=n[0],r=n[1],i=[Td(e),-md(e),0],o=0,u=0;tv.reset();for(var a=0,c=t.length;a<c;++a)if(f=(s=t[a]).length)for(var s,f,l=s[f-1],h=l[0],p=l[1]/2+hd,d=Td(p),v=md(p),_=0;_<f;++_,h=y,d=x,v=b,l=g){var g=s[_],y=g[0],m=g[1]/2+hd,x=Td(m),b=md(m),w=y-h,M=w>=0?1:-1,T=M*w,N=T>fd,k=d*x;if(tv.add(yd(k*M*Td(T),v*b+k*md(T))),o+=N?w+M*pd:w,N^h>=e^y>=e){var S=sr(ar(l),ar(g));hr(S);var E=sr(i,S);hr(E);var A=(N^w>=0?-1:1)*Ge(E[2]);(r>A||r===A&&(S[0]||S[1]))&&(u+=N^w>=0?1:-1)}}return(o<-sd||o<sd&&tv<-sd)^1&u},ev=function(t,n,e,r){return function(i){function o(n,e){t(n,e)&&i.point(n,e)}function u(t,n){v.point(t,n)}function a(){m.point=u,v.lineStart()}function c(){m.point=o,v.lineEnd()}function s(t,n){d.push([t,n]),g.point(t,n)}function f(){g.lineStart(),d=[]}function l(){s(d[0][0],d[0][1]),g.lineEnd();var t,n,e,r,o=g.clean(),u=_.result(),a=u.length;if(d.pop(),h.push(d),d=null,a)if(1&o){if(e=u[0],(n=e.length-1)>0){for(y||(i.polygonStart(),y=!0),i.lineStart(),t=0;t<n;++t)i.point((r=e[t])[0],r[1]);i.lineEnd()}}else a>1&&2&o&&u.push(u.pop().concat(u.shift())),p.push(u.filter(Br))}var h,p,d,v=n(i),_=Jd(),g=n(_),y=!1,m={point:o,lineStart:a,lineEnd:c,polygonStart:function(){m.point=s,m.lineStart=f,m.lineEnd=l,p=[],h=[]},polygonEnd:function(){m.point=o,m.lineStart=a,m.lineEnd=c,p=Ps(p);var t=nv(h,r);p.length?(y||(i.polygonStart(),y=!0),Kd(p,jr,t,e,i)):t&&(y||(i.polygonStart(),y=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),y&&(i.polygonEnd(),y=!1),p=h=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};return m}},rv=ev(function(){return!0},function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,u){var a=o>0?fd:-fd,c=_d(o-e);_d(c-fd)<sd?(t.point(e,r=(r+u)/2>0?ld:-ld),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),t.point(o,r),n=0):i!==a&&c>=fd&&(_d(e-i)<sd&&(e-=i*sd),_d(o-a)<sd&&(o-=a*sd),r=Hr(e,r,o,u),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),n=0),t.point(e=o,r=u),i=a},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}},function(t,n,e,r){var i;if(null==t)i=e*ld,r.point(-fd,i),r.point(0,i),r.point(fd,i),r.point(fd,0),r.point(fd,-i),r.point(0,-i),r.point(-fd,-i),r.point(-fd,0),r.point(-fd,i);else if(_d(t[0]-n[0])>sd){var o=t[0]<n[0]?fd:-fd;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])},[-fd,-ld]),iv=function(t){function n(t,n){return md(t)*md(n)>i}function e(t,n,e){var r=[1,0,0],o=sr(ar(t),ar(n)),u=cr(o,o),a=o[0],c=u-a*a;if(!c)return!e&&t;var s=i*u/c,f=-i*a/c,l=sr(r,o),h=lr(r,s);fr(h,lr(o,f));var p=l,d=cr(h,p),v=cr(p,p),_=d*d-v*(cr(h,h)-1);if(!(_<0)){var g=kd(_),y=lr(p,(-d-g)/v);if(fr(y,h),y=ur(y),!e)return y;var m,x=t[0],b=n[0],w=t[1],M=n[1];b<x&&(m=x,x=b,b=m);var T=b-x,N=_d(T-fd)<sd,k=N||T<sd;if(!N&&M<w&&(m=w,w=M,M=m),k?N?w+M>0^y[1]<(_d(y[0]-x)<sd?w:M):w<=y[1]&&y[1]<=M:T>fd^(x<=y[0]&&y[0]<=b)){var S=lr(p,(-d+g)/v);return fr(S,h),[y,ur(S)]}}}function r(n,e){var r=u?t:fd-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var i=md(t),o=6*vd,u=i>0,a=_d(i)>sd;return ev(n,function(t){var i,o,c,s,f;return{lineStart:function(){s=c=!1,f=1},point:function(l,h){var p,d=[l,h],v=n(l,h),_=u?v?0:r(l,h):v?r(l+(l<0?fd:-fd),h):0;if(!i&&(s=c=v)&&t.lineStart(),v!==c&&(!(p=e(i,d))||Qd(i,p)||Qd(d,p))&&(d[0]+=sd,d[1]+=sd,v=n(d[0],d[1])),v!==c)f=0,v?(t.lineStart(),p=e(d,i),t.point(p[0],p[1])):(p=e(i,d),t.point(p[0],p[1]),t.lineEnd()),i=p;else if(a&&i&&u^v){var g;_&o||!(g=e(d,i,!0))||(f=0,u?(t.lineStart(),t.point(g[0][0],g[0][1]),t.point(g[1][0],g[1][1]),t.lineEnd()):(t.point(g[1][0],g[1][1]),t.lineEnd(),t.lineStart(),t.point(g[0][0],g[0][1])))}!v||i&&Qd(i,d)||t.point(d[0],d[1]),i=d,c=v,o=_},lineEnd:function(){c&&t.lineEnd(),i=null},clean:function(){return f|(s&&c)<<1}}},function(n,e,r,i){Or(i,t,o,r,n,e)},u?[0,-t]:[-fd,t-fd])},ov=function(t,n,e,r,i,o){var u,a=t[0],c=t[1],s=0,f=1,l=n[0]-a,h=n[1]-c;if(u=e-a,l||!(u>0)){if(u/=l,l<0){if(u<s)return;u<f&&(f=u)}else if(l>0){if(u>f)return;u>s&&(s=u)}if(u=i-a,l||!(u<0)){if(u/=l,l<0){if(u>f)return;u>s&&(s=u)}else if(l>0){if(u<s)return;u<f&&(f=u)}if(u=r-c,h||!(u>0)){if(u/=h,h<0){if(u<s)return;u<f&&(f=u)}else if(h>0){if(u>f)return;u>s&&(s=u)}if(u=o-c,h||!(u<0)){if(u/=h,h<0){if(u>f)return;u>s&&(s=u)}else if(h>0){if(u<s)return;u<f&&(f=u)}return s>0&&(t[0]=a+s*l,t[1]=c+s*h),f<1&&(n[0]=a+f*l,n[1]=c+f*h),!0}}}}},uv=1e9,av=-uv,cv=Cp(),sv={sphere:Qe,point:Qe,lineStart:function(){sv.point=Vr,sv.lineEnd=$r},lineEnd:Qe,polygonStart:Qe,polygonEnd:Qe},fv=function(t){return cv.reset(),Cd(t,sv),+cv},lv=[null,null],hv={type:"LineString",coordinates:lv},pv=function(t,n){return lv[0]=t,lv[1]=n,fv(hv)},dv={Feature:function(t,n){return Zr(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(Zr(e[r].geometry,n))return!0;return!1}},vv={Sphere:function(){return!0},Point:function(t,n){return Gr(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Gr(e[r],n))return!0;return!1},LineString:function(t,n){return Jr(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Jr(e[r],n))return!0;return!1},Polygon:function(t,n){return Qr(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Qr(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(Zr(e[r],n))return!0;return!1}},_v=function(t){return t},gv=Cp(),yv=Cp(),mv={point:Qe,lineStart:Qe,lineEnd:Qe,polygonStart:function(){mv.lineStart=ii,mv.lineEnd=ai},polygonEnd:function(){mv.lineStart=mv.lineEnd=mv.point=Qe,gv.add(_d(yv)),yv.reset()},result:function(){var t=gv/2;return gv.reset(),t}},xv=1/0,bv=xv,wv=-xv,Mv=wv,Tv={point:function(t,n){t<xv&&(xv=t),t>wv&&(wv=t),n<bv&&(bv=n),n>Mv&&(Mv=n)},lineStart:Qe,lineEnd:Qe,polygonStart:Qe,polygonEnd:Qe,result:function(){var t=[[xv,bv],[wv,Mv]];return wv=Mv=-(bv=xv=1/0),t}},Nv=0,kv=0,Sv=0,Ev=0,Av=0,Cv=0,zv=0,Pv=0,Rv=0,Lv={point:ci,lineStart:si,lineEnd:hi,polygonStart:function(){Lv.lineStart=pi,Lv.lineEnd=di},polygonEnd:function(){Lv.point=ci,Lv.lineStart=si,Lv.lineEnd=hi},result:function(){var t=Rv?[zv/Rv,Pv/Rv]:Cv?[Ev/Cv,Av/Cv]:Sv?[Nv/Sv,kv/Sv]:[NaN,NaN];return Nv=kv=Sv=Ev=Av=Cv=zv=Pv=Rv=0,t}};gi.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,pd)}},result:Qe};var qv,Uv,Dv,Ov,Fv,Iv=Cp(),Yv={point:Qe,lineStart:function(){Yv.point=yi},lineEnd:function(){qv&&mi(Uv,Dv),Yv.point=Qe},polygonStart:function(){qv=!0},polygonEnd:function(){qv=null},result:function(){var t=+Iv;return Iv.reset(),t}};xi.prototype={_radius:4.5,_circle:bi(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=bi(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}};Mi.prototype={constructor:Mi,point:function(t,n){this.stream.point(t,n)},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()}};var Bv=16,jv=md(30*vd),Hv=function(t,n){return+n?Si(t,n):ki(t)},Xv=wi({point:function(t,n){this.stream.point(t*vd,n*vd)}}),$v=function(){return zi(Ri).scale(155.424).center([0,33.6442])},Vv=function(){return $v().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])},Wv=qi(function(t){return kd(2/(1+t))});Wv.invert=Ui(function(t){return 2*Ge(t/2)});var Zv=qi(function(t){return(t=Ze(t))&&t/Td(t)});Zv.invert=Ui(function(t){return t});Di.invert=function(t,n){return[t,2*gd(bd(n))-ld]};Yi.invert=Yi;ji.invert=Ui(gd);Xi.invert=function(t,n){var e,r=n,i=25;do{var o=r*r,u=o*o;r-=e=(r*(1.007226+o*(.015085+u*(.028874*o-.044475-.005916*u)))-n)/(1.007226+o*(.045255+u*(.259866*o-.311325-.005916*11*u)))}while(_d(e)>sd&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]};$i.invert=Ui(Ge);Vi.invert=Ui(function(t){return 2*gd(t)});Wi.invert=function(t,n){return[-n,2*gd(bd(t))-ld]};co.prototype=io.prototype={constructor:co,count:function(){return this.eachAfter(eo)},each:function(t){var n,e,r,i,o=this,u=[o];do{for(n=u.reverse(),u=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)u.push(e[r])}while(u.length);return this},eachAfter:function(t){for(var n,e,r,i=this,o=[i],u=[];i=o.pop();)if(u.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=u.pop();)t(i);return this},eachBefore:function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},sort:function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},path:function(t){for(var n=this,e=ro(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each(function(n){t.push(n)}),t},leaves:function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},links:function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n},copy:function(){return io(this).eachBefore(uo)}};var Gv=Array.prototype.slice,Jv=function(t){for(var n,e,r=0,i=(t=so(Gv.call(t))).length,o=[];r<i;)n=t[r],e&&ho(e,n)?++r:(e=vo(o=fo(o,n)),r=0);return e},Qv=function(t){return function(){return t}},Kv=function(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)},t_=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(r-n)/t.value;++a<c;)(o=u[a]).y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*s},n_="$",e_={depth:-1},r_={};Fo.prototype=Object.create(co.prototype);var i_=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(i-e)/t.value;++a<c;)(o=u[a]).x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*s},o_=(1+Math.sqrt(5))/2,u_=function t(n){function e(t,e,r,i,o){Yo(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(o_),a_=function t(n){function e(t,e,r,i,o){if((u=t._squarify)&&u.ratio===n)for(var u,a,c,s,f,l=-1,h=u.length,p=t.value;++l<h;){for(c=(a=u[l]).children,s=a.value=0,f=c.length;s<f;++s)a.value+=c[s].value;a.dice?t_(a,e,r,i,r+=(o-r)*a.value/p):i_(a,e,r,e+=(i-e)*a.value/p,o),p-=a.value}else t._squarify=u=Yo(n,t,e,r,i,o),u.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(o_),c_=function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])},s_=[].slice,f_={};Ho.prototype=Go.prototype={constructor:Ho,defer:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("defer after await");if(null!=this._error)return this;var n=s_.call(arguments,1);return n.push(t),++this._waiting,this._tasks.push(n),Xo(this),this},abort:function(){return null==this._error&&Wo(this,new Error("abort")),this},await:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("multiple await");return this._call=function(n,e){t.apply(null,[n].concat(e))},Zo(this),this},awaitAll:function(t){if("function"!=typeof t)throw new Error("invalid callback");if(this._call)throw new Error("multiple await");return this._call=t,Zo(this),this}};var l_=function(){return Math.random()},h_=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(l_),p_=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(l_),d_=function t(n){function e(){var t=p_.source(n).apply(this,arguments);return function(){return Math.exp(t())}}return e.source=t,e}(l_),v_=function t(n){function e(t){return function(){for(var e=0,r=0;r<t;++r)e+=n();return e}}return e.source=t,e}(l_),__=function t(n){function e(t){var e=v_.source(n)(t);return function(){return e()/t}}return e.source=t,e}(l_),g_=function t(n){function e(t){return function(){return-Math.log(1-n())/t}}return e.source=t,e}(l_),y_=function(t,n){function e(t){var n,e=s.status;if(!e&&Qo(s)||e>=200&&e<300||304===e){if(o)try{n=o.call(r,s)}catch(t){return void a.call("error",r,t)}else n=s;a.call("load",r,n)}else a.call("error",r,t)}var r,i,o,u,a=h("beforesend","progress","load","error"),c=we(),s=new XMLHttpRequest,f=null,l=null,p=0;if("undefined"==typeof XDomainRequest||"withCredentials"in s||!/^(http(s)?:)?\/\//.test(t)||(s=new XDomainRequest),"onload"in s?s.onload=s.onerror=s.ontimeout=e:s.onreadystatechange=function(t){s.readyState>3&&e(t)},s.onprogress=function(t){a.call("progress",r,t)},r={header:function(t,n){return t=(t+"").toLowerCase(),arguments.length<2?c.get(t):(null==n?c.remove(t):c.set(t,n+""),r)},mimeType:function(t){return arguments.length?(i=null==t?null:t+"",r):i},responseType:function(t){return arguments.length?(u=t,r):u},timeout:function(t){return arguments.length?(p=+t,r):p},user:function(t){return arguments.length<1?f:(f=null==t?null:t+"",r)},password:function(t){return arguments.length<1?l:(l=null==t?null:t+"",r)},response:function(t){return o=t,r},get:function(t,n){return r.send("GET",t,n)},post:function(t,n){return r.send("POST",t,n)},send:function(n,e,o){return s.open(n,t,!0,f,l),null==i||c.has("accept")||c.set("accept",i+",*/*"),s.setRequestHeader&&c.each(function(t,n){s.setRequestHeader(n,t)}),null!=i&&s.overrideMimeType&&s.overrideMimeType(i),null!=u&&(s.responseType=u),p>0&&(s.timeout=p),null==o&&"function"==typeof e&&(o=e,e=null),null!=o&&1===o.length&&(o=Jo(o)),null!=o&&r.on("error",o).on("load",function(t){o(null,t)}),a.call("beforesend",r,s),s.send(null==e?null:e),r},abort:function(){return s.abort(),r},on:function(){var t=a.on.apply(a,arguments);return t===a?r:t}},null!=n){if("function"!=typeof n)throw new Error("invalid callback: "+n);return r.get(n)}return r},m_=function(t,n){return function(e,r){var i=y_(e).mimeType(t).response(n);if(null!=r){if("function"!=typeof r)throw new Error("invalid callback: "+r);return i.get(r)}return i}},x_=m_("text/html",function(t){return document.createRange().createContextualFragment(t.responseText)}),b_=m_("application/json",function(t){return JSON.parse(t.responseText)}),w_=m_("text/plain",function(t){return t.responseText}),M_=m_("application/xml",function(t){var n=t.responseXML;if(!n)throw new Error("parse error");return n}),T_=function(t,n){return function(e,r,i){arguments.length<3&&(i=r,r=null);var o=y_(e).mimeType(t);return o.row=function(t){return arguments.length?o.response(Ko(n,r=t)):r},o.row(r),i?o.get(i):o}},N_=T_("text/csv",tp),k_=T_("text/tab-separated-values",op),S_=Array.prototype,E_=S_.map,A_=S_.slice,C_={name:"implicit"},z_=function(t){return function(){return t}},P_=function(t){return+t},R_=[0,1],L_=function(n,e,r){var o,u=n[0],a=n[n.length-1],c=i(u,a,null==e?10:e);switch((r=He(null==r?",f":r)).type){case"s":var s=Math.max(Math.abs(u),Math.abs(a));return null!=r.precision||isNaN(o=Ep(c,s))||(r.precision=o),t.formatPrefix(r,s);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(o=Ap(c,Math.max(Math.abs(u),Math.abs(a))))||(r.precision=o-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(o=Sp(c))||(r.precision=o-2*("%"===r.type))}return t.format(r)},q_=function(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],u=t[i];return u<o&&(e=r,r=i,i=e,e=o,o=u,u=e),t[r]=n.floor(o),t[i]=n.ceil(u),t},U_=new Date,D_=new Date,O_=Nu(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});O_.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Nu(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):O_:null};var F_=O_.range,I_=6e4,Y_=6048e5,B_=Nu(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),j_=B_.range,H_=Nu(function(t){t.setTime(Math.floor(t/I_)*I_)},function(t,n){t.setTime(+t+n*I_)},function(t,n){return(n-t)/I_},function(t){return t.getMinutes()}),X_=H_.range,$_=Nu(function(t){var n=t.getTimezoneOffset()*I_%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),V_=$_.range,W_=Nu(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*I_)/864e5},function(t){return t.getDate()-1}),Z_=W_.range,G_=ku(0),J_=ku(1),Q_=ku(2),K_=ku(3),tg=ku(4),ng=ku(5),eg=ku(6),rg=G_.range,ig=J_.range,og=Q_.range,ug=K_.range,ag=tg.range,cg=ng.range,sg=eg.range,fg=Nu(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),lg=fg.range,hg=Nu(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});hg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Nu(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var pg=hg.range,dg=Nu(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*I_)},function(t,n){return(n-t)/I_},function(t){return t.getUTCMinutes()}),vg=dg.range,_g=Nu(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),gg=_g.range,yg=Nu(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1}),mg=yg.range,xg=Su(0),bg=Su(1),wg=Su(2),Mg=Su(3),Tg=Su(4),Ng=Su(5),kg=Su(6),Sg=xg.range,Eg=bg.range,Ag=wg.range,Cg=Mg.range,zg=Tg.range,Pg=Ng.range,Rg=kg.range,Lg=Nu(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),qg=Lg.range,Ug=Nu(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Ug.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Nu(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var Dg,Og=Ug.range,Fg={"-":"",_:" ",0:"0"},Ig=/^\s*\d+/,Yg=/^%/,Bg=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;Na({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",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"]});var jg=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ"),Hg=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse("%Y-%m-%dT%H:%M:%S.%LZ"),Xg=1e3,$g=60*Xg,Vg=60*$g,Wg=24*Vg,Zg=7*Wg,Gg=30*Wg,Jg=365*Wg,Qg=function(t){return t.match(/.{6}/g).map(function(t){return"#"+t})},Kg=Qg("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),ty=Qg("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6"),ny=Qg("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"),ey=Qg("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"),ry=Tl($t(300,.5,0),$t(-240,.5,1)),iy=Tl($t(-100,.75,.35),$t(80,1.5,.8)),oy=Tl($t(260,.75,.35),$t(80,1.5,.8)),uy=$t(),ay=Aa(Qg("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),cy=Aa(Qg("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),sy=Aa(Qg("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),fy=Aa(Qg("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),ly=function(t){return function(){return t}},hy=Math.abs,py=Math.atan2,dy=Math.cos,vy=Math.max,_y=Math.min,gy=Math.sin,yy=Math.sqrt,my=1e-12,xy=Math.PI,by=xy/2,wy=2*xy;Ia.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var My=function(t){return new Ia(t)},Ty=function(){function t(t){var a,c,s,f=t.length,l=!1;for(null==i&&(u=o(s=ve())),a=0;a<=f;++a)!(a<f&&r(c=t[a],a,t))===l&&((l=!l)?u.lineStart():u.lineEnd()),l&&u.point(+n(c,a,t),+e(c,a,t));if(s)return u=null,s+""||null}var n=Ya,e=Ba,r=ly(!0),i=null,o=My,u=null;return t.x=function(e){return arguments.length?(n="function"==typeof e?e:ly(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:ly(+n),t):e},t.defined=function(n){return arguments.length?(r="function"==typeof n?n:ly(!!n),t):r},t.curve=function(n){return arguments.length?(o=n,null!=i&&(u=o(i)),t):o},t.context=function(n){return arguments.length?(null==n?i=u=null:u=o(i=n),t):i},t},Ny=function(){function t(t){var n,f,l,h,p,d=t.length,v=!1,_=new Array(d),g=new Array(d);for(null==a&&(s=c(p=ve())),n=0;n<=d;++n){if(!(n<d&&u(h=t[n],n,t))===v)if(v=!v)f=n,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),l=n-1;l>=f;--l)s.point(_[l],g[l]);s.lineEnd(),s.areaEnd()}v&&(_[n]=+e(h,n,t),g[n]=+i(h,n,t),s.point(r?+r(h,n,t):_[n],o?+o(h,n,t):g[n]))}if(p)return s=null,p+""||null}function n(){return Ty().defined(u).curve(c).context(a)}var e=Ya,r=null,i=ly(0),o=Ba,u=ly(!0),a=null,c=My,s=null;return t.x=function(n){return arguments.length?(e="function"==typeof n?n:ly(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"==typeof n?n:ly(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:ly(+n),t):r},t.y=function(n){return arguments.length?(i="function"==typeof n?n:ly(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"==typeof n?n:ly(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"==typeof n?n:ly(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(u="function"==typeof n?n:ly(!!n),t):u},t.curve=function(n){return arguments.length?(c=n,null!=a&&(s=c(a)),t):c},t.context=function(n){return arguments.length?(null==n?a=s=null:s=c(a=n),t):a},t},ky=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},Sy=function(t){return t},Ey=Ha(My);ja.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var Ay=function(){return Xa(Ty().curve(Ey))},Cy=function(){var t=Ny().curve(Ey),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Xa(e())},delete t.lineX0,t.lineEndAngle=function(){return Xa(r())},delete t.lineX1,t.lineInnerRadius=function(){return Xa(i())},delete t.lineY0,t.lineOuterRadius=function(){return Xa(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(Ha(t)):n()._curve},t},zy=function(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]},Py=Array.prototype.slice,Ry={draw:function(t,n){var e=Math.sqrt(n/xy);t.moveTo(e,0),t.arc(0,0,e,0,wy)}},Ly={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},qy=Math.sqrt(1/3),Uy=2*qy,Dy={draw:function(t,n){var e=Math.sqrt(n/Uy),r=e*qy;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Oy=Math.sin(xy/10)/Math.sin(7*xy/10),Fy=Math.sin(wy/10)*Oy,Iy=-Math.cos(wy/10)*Oy,Yy={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Fy*e,i=Iy*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var u=wy*o/5,a=Math.cos(u),c=Math.sin(u);t.lineTo(c*e,-a*e),t.lineTo(a*r-c*i,c*r+a*i)}t.closePath()}},By={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},jy=Math.sqrt(3),Hy={draw:function(t,n){var e=-Math.sqrt(n/(3*jy));t.moveTo(0,2*e),t.lineTo(-jy*e,-e),t.lineTo(jy*e,-e),t.closePath()}},Xy=-.5,$y=Math.sqrt(3)/2,Vy=1/Math.sqrt(12),Wy=3*(Vy/2+1),Zy={draw:function(t,n){var e=Math.sqrt(n/Wy),r=e/2,i=e*Vy,o=r,u=e*Vy+e,a=-o,c=u;t.moveTo(r,i),t.lineTo(o,u),t.lineTo(a,c),t.lineTo(Xy*r-$y*i,$y*r+Xy*i),t.lineTo(Xy*o-$y*u,$y*o+Xy*u),t.lineTo(Xy*a-$y*c,$y*a+Xy*c),t.lineTo(Xy*r+$y*i,Xy*i-$y*r),t.lineTo(Xy*o+$y*u,Xy*u-$y*o),t.lineTo(Xy*a+$y*c,Xy*c-$y*a),t.closePath()}},Gy=[Ry,Ly,Dy,By,Yy,Hy,Zy],Jy=function(){};Ka.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Qa(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Qa(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};tc.prototype={areaStart:Jy,areaEnd:Jy,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:Qa(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};nc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:Qa(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};ec.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],u=t[e]-i,a=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*u),this._beta*n[c]+(1-this._beta)*(o+r*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var Qy=function t(n){function e(t){return 1===n?new Ka(t):new ec(t,n)}return e.beta=function(n){return t(+n)},e}(.85);ic.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:rc(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:rc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Ky=function t(n){function e(t){return new ic(t,n)}return e.tension=function(n){return t(+n)},e}(0);oc.prototype={areaStart:Jy,areaEnd:Jy,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:rc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var tm=function t(n){function e(t){return new oc(t,n)}return e.tension=function(n){return t(+n)},e}(0);uc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:rc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var nm=function t(n){function e(t){return new uc(t,n)}return e.tension=function(n){return t(+n)},e}(0);cc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:ac(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var em=function t(n){function e(t){return n?new cc(t,n):new ic(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);sc.prototype={areaStart:Jy,areaEnd:Jy,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:ac(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var rm=function t(n){function e(t){return n?new sc(t,n):new oc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);fc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ac(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var im=function t(n){function e(t){return n?new fc(t,n):new uc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);lc.prototype={areaStart:Jy,areaEnd:Jy,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}};_c.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:vc(this,this._t0,dc(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(t=+t,n=+n,t!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,vc(this,dc(this,e=pc(this,t,n)),e);break;default:vc(this,this._t0,e=pc(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(gc.prototype=Object.create(_c.prototype)).point=function(t,n){_c.prototype.point.call(this,n,t)},yc.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},mc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=xc(t),i=xc(n),o=0,u=1;u<e;++o,++u)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[u],n[u]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}};bc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var om=function(t,n){if((i=t.length)>1)for(var e,r,i,o=1,u=t[n[0]],a=u.length;o<i;++o)for(r=u,u=t[n[o]],e=0;e<a;++e)u[e][1]+=u[e][0]=isNaN(r[e][1])?r[e][0]:r[e][1]},um=function(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e},am=function(t){var n=t.map(Mc);return um(t).sort(function(t,e){return n[t]-n[e]})},cm=function(t){return function(){return t}};kc.prototype={constructor:kc,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=Cc(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)e===(r=e.U).L?(i=r.R)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(Ec(this,e),e=(t=e).U),e.C=!1,r.C=!0,Ac(this,r)):(i=r.L)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(Ac(this,e),e=(t=e).U),e.C=!1,r.C=!0,Ec(this,r)),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,u=t.R;if(e=o?u?Cc(u):o:u,i?i.L===t?i.L=e:i.R=e:this._=e,o&&u?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==u?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=u,u.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((n=i.R).C&&(n.C=!1,i.C=!0,Ec(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,Ac(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,Ec(this,i),t=this._;break}}else if((n=i.L).C&&(n.C=!1,i.C=!0,Ac(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,Ec(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,Ac(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var sm,fm,lm,hm,pm,dm=[],vm=[],_m=1e-6,gm=1e-12;ns.prototype={constructor:ns,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return Fc(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){if(o=(i=e.halfedges).length)for(var i,o,u,a=e.site,c=-1,s=n[i[o-1]],f=s.left===a?s.right:s.left;++c<o;)u=f,f=(s=n[i[c]]).left===a?s.right:s.left,u&&f&&r<u.index&&r<f.index&&Kc(a,u,f)<0&&t.push([a.data,u.data,f.data])}),t},links:function(){return this.edges.filter(function(t){return t.right}).map(function(t){return{source:t.left.data,target:t.right.data}})},find:function(t,n,e){for(var r,i,o=this,u=o._found||0,a=o.cells.length;!(i=o.cells[u]);)if(++u>=a)return null;var c=t-i.site[0],s=n-i.site[1],f=c*c+s*s;do{i=o.cells[r=u],u=null,i.halfedges.forEach(function(e){var r=o.edges[e],a=r.left;if(a!==i.site&&a||(a=r.right)){var c=t-a[0],s=n-a[1],l=c*c+s*s;l<f&&(f=l,u=a.index)}})}while(null!==u);return o._found=r,null==e||f<=e*e?i.site:null}};var ym=function(t){return function(){return t}};rs.prototype={constructor:rs,scale:function(t){return 1===t?this:new rs(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new rs(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var mm=new rs(1,0,0);is.prototype=rs.prototype;var xm=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()};t.version="4.11.0",t.bisect=ds,t.bisectRight=ds,t.bisectLeft=vs,t.ascending=ls,t.bisector=hs,t.cross=function(t,n,r){var i,o,u,a,c=t.length,s=n.length,f=new Array(c*s);for(null==r&&(r=e),i=u=0;i<c;++i)for(a=t[i],o=0;o<s;++o,++u)f[u]=r(a,n[o]);return f},t.descending=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},t.deviation=ys,t.extent=ms,t.histogram=function(){function t(t){var o,u,a=t.length,c=new Array(a);for(o=0;o<a;++o)c[o]=n(t[o],o,t);var s=e(c),f=s[0],l=s[1],h=r(c,f,l);Array.isArray(h)||(h=i(f,l,h),h=Ns(Math.ceil(f/h)*h,Math.floor(l/h)*h,h));for(var p=h.length;h[0]<=f;)h.shift(),--p;for(;h[p-1]>l;)h.pop(),--p;var d,v=new Array(p+1);for(o=0;o<=p;++o)(d=v[o]=[]).x0=o>0?h[o-1]:f,d.x1=o<p?h[o]:l;for(o=0;o<a;++o)f<=(u=c[o])&&u<=l&&v[ds(h,u,0,p)].push(t[o]);return v}var n=Ts,e=ms,r=Cs;return t.value=function(e){return arguments.length?(n="function"==typeof e?e:Ms(e),t):n},t.domain=function(n){return arguments.length?(e="function"==typeof n?n:Ms([n[0],n[1]]),t):e},t.thresholds=function(n){return arguments.length?(r="function"==typeof n?n:Ms(Array.isArray(n)?bs.call(n):n),t):r},t},t.thresholdFreedmanDiaconis=function(t,n,e){return t=ws.call(t,_s).sort(ls),Math.ceil((e-n)/(2*(zs(t,.75)-zs(t,.25))*Math.pow(t.length,-1/3)))},t.thresholdScott=function(t,n,e){return Math.ceil((e-n)/(3.5*ys(t)*Math.pow(t.length,-1/3)))},t.thresholdSturges=Cs,t.max=function(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&e>r&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&e>r&&(r=e);return r},t.mean=function(t,n){var e,r=t.length,i=r,o=-1,u=0;if(null==n)for(;++o<r;)isNaN(e=_s(t[o]))?--i:u+=e;else for(;++o<r;)isNaN(e=_s(n(t[o],o,t)))?--i:u+=e;if(i)return u/i},t.median=function(t,n){var e,r=t.length,i=-1,o=[];if(null==n)for(;++i<r;)isNaN(e=_s(t[i]))||o.push(e);else for(;++i<r;)isNaN(e=_s(n(t[i],i,t)))||o.push(e);return zs(o.sort(ls),.5)},t.merge=Ps,t.min=Rs,t.pairs=function(t,n){null==n&&(n=e);for(var r=0,i=t.length-1,o=t[0],u=new Array(i<0?0:i);r<i;)u[r]=n(o,o=t[++r]);return u},t.permute=function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r},t.quantile=zs,t.range=Ns,t.scan=function(t,n){if(e=t.length){var e,r,i=0,o=0,u=t[o];for(null==n&&(n=ls);++i<e;)(n(r=t[i],u)<0||0!==n(u,u))&&(u=r,o=i);return 0===n(u,u)?o:void 0}},t.shuffle=function(t,n,e){for(var r,i,o=(null==e?t.length:e)-(n=null==n?0:+n);o;)i=Math.random()*o--|0,r=t[o+n],t[o+n]=t[i+n],t[i+n]=r;return t},t.sum=function(t,n){var e,r=t.length,i=-1,o=0;if(null==n)for(;++i<r;)(e=+t[i])&&(o+=e);else for(;++i<r;)(e=+n(t[i],i,t))&&(o+=e);return o},t.ticks=As,t.tickIncrement=r,t.tickStep=i,t.transpose=Ls,t.variance=gs,t.zip=function(){return Ls(arguments)},t.axisTop=function(t){return l(Ds,t)},t.axisRight=function(t){return l(Os,t)},t.axisBottom=function(t){return l(Fs,t)},t.axisLeft=function(t){return l(Is,t)},t.brush=function(){return he(Ah)},t.brushX=function(){return he(Sh)},t.brushY=function(){return he(Eh)},t.brushSelection=function(t){var n=t.__brush;return n?n.dim.output(n.selection):null},t.chord=function(){function t(t){var o,u,a,c,s,f,l=t.length,h=[],p=Ns(l),d=[],v=[],_=v.groups=new Array(l),g=new Array(l*l);for(o=0,s=-1;++s<l;){for(u=0,f=-1;++f<l;)u+=t[s][f];h.push(u),d.push(Ns(l)),o+=u}for(e&&p.sort(function(t,n){return e(h[t],h[n])}),r&&d.forEach(function(n,e){n.sort(function(n,i){return r(t[e][n],t[e][i])})}),c=(o=Ih(0,Fh-n*l)/o)?n:Fh/l,u=0,s=-1;++s<l;){for(a=u,f=-1;++f<l;){var y=p[s],m=d[y][f],x=t[y][m],b=u,w=u+=x*o;g[m*l+y]={index:y,subindex:m,startAngle:b,endAngle:w,value:x}}_[y]={index:y,startAngle:a,endAngle:u,value:h[y]},u+=c}for(s=-1;++s<l;)for(f=s-1;++f<l;){var M=g[f*l+s],T=g[s*l+f];(M.value||T.value)&&v.push(M.value<T.value?{source:T,target:M}:{source:M,target:T})}return i?v.sort(i):v}var n=0,e=null,r=null,i=null;return t.padAngle=function(e){return arguments.length?(n=Ih(0,e),t):n},t.sortGroups=function(n){return arguments.length?(e=n,t):e},t.sortSubgroups=function(n){return arguments.length?(r=n,t):r},t.sortChords=function(n){return arguments.length?(null==n?i=null:(i=pe(n))._=n,t):i&&i._},t},t.ribbon=function(){function t(){var t,a=Yh.call(arguments),c=n.apply(this,a),s=e.apply(this,a),f=+r.apply(this,(a[0]=c,a)),l=i.apply(this,a)-Oh,h=o.apply(this,a)-Oh,p=f*qh(l),d=f*Uh(l),v=+r.apply(this,(a[0]=s,a)),_=i.apply(this,a)-Oh,g=o.apply(this,a)-Oh;if(u||(u=t=ve()),u.moveTo(p,d),u.arc(0,0,f,l,h),l===_&&h===g||(u.quadraticCurveTo(0,0,v*qh(_),v*Uh(_)),u.arc(0,0,v,_,g)),u.quadraticCurveTo(0,0,p,d),u.closePath(),t)return u=null,t+""||null}var n=_e,e=ge,r=ye,i=me,o=xe,u=null;return t.radius=function(n){return arguments.length?(r="function"==typeof n?n:Bh(+n),t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:Bh(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:Bh(+n),t):o},t.source=function(e){return arguments.length?(n=e,t):n},t.target=function(n){return arguments.length?(e=n,t):e},t.context=function(n){return arguments.length?(u=null==n?null:n,t):u},t},t.nest=function(){function t(n,i,u,a){if(i>=o.length)return null!=e&&n.sort(e),null!=r?r(n):n;for(var c,s,f,l=-1,h=n.length,p=o[i++],d=we(),v=u();++l<h;)(f=d.get(c=p(s=n[l])+""))?f.push(s):d.set(c,[s]);return d.each(function(n,e){a(v,e,t(n,i,u,a))}),v}function n(t,e){if(++e>o.length)return t;var i,a=u[e-1];return null!=r&&e>=o.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=a?i.sort(function(t,n){return a(t.key,n.key)}):i}var e,r,i,o=[],u=[];return i={object:function(n){return t(n,0,Me,Te)},map:function(n){return t(n,0,Ne,ke)},entries:function(e){return n(t(e,0,Ne,ke),0)},key:function(t){return o.push(t),i},sortKeys:function(t){return u[o.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},t.set=Ee,t.map=we,t.keys=function(t){var n=[];for(var e in t)n.push(e);return n},t.values=function(t){var n=[];for(var e in t)n.push(t[e]);return n},t.entries=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},t.color=Tt,t.rgb=Et,t.hsl=Pt,t.lab=Ut,t.hcl=jt,t.cubehelix=$t,t.dispatch=h,t.drag=function(){function n(t){t.on("mousedown.drag",e).filter(g).on("touchstart.drag",o).on("touchmove.drag",u).on("touchend.drag touchcancel.drag",a).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(){if(!p&&d.apply(this,arguments)){var n=c("mouse",v.apply(this,arguments),nf,this,arguments);n&&(ff(t.event.view).on("mousemove.drag",r,!0).on("mouseup.drag",i,!0),pf(t.event.view),vt(),l=!1,s=t.event.clientX,f=t.event.clientY,n("start"))}}function r(){if(hf(),!l){var n=t.event.clientX-s,e=t.event.clientY-f;l=n*n+e*e>b}y.mouse("drag")}function i(){ff(t.event.view).on("mousemove.drag mouseup.drag",null),_t(t.event.view,l),hf(),y.mouse("end")}function o(){if(d.apply(this,arguments)){var n,e,r=t.event.changedTouches,i=v.apply(this,arguments),o=r.length;for(n=0;n<o;++n)(e=c(r[n].identifier,i,lf,this,arguments))&&(vt(),e("start"))}}function u(){var n,e,r=t.event.changedTouches,i=r.length;for(n=0;n<i;++n)(e=y[r[n].identifier])&&(hf(),e("drag"))}function a(){var n,e,r=t.event.changedTouches,i=r.length;for(p&&clearTimeout(p),p=setTimeout(function(){p=null},500),n=0;n<i;++n)(e=y[r[n].identifier])&&(vt(),e("end"))}function c(e,r,i,o,u){var a,c,s,f=i(r,e),l=m.copy();if(k(new gt(n,"beforestart",a,e,x,f[0],f[1],0,0,l),function(){return null!=(t.event.subject=a=_.apply(o,u))&&(c=a.x-f[0]||0,s=a.y-f[1]||0,!0)}))return function t(h){var p,d=f;switch(h){case"start":y[e]=t,p=x++;break;case"end":delete y[e],--x;case"drag":f=i(r,e),p=x}k(new gt(n,h,a,e,p,f[0]+c,f[1]+s,f[0]-d[0],f[1]-d[1],l),l.apply,l,[h,o,u])}}var s,f,l,p,d=yt,v=mt,_=xt,g=bt,y={},m=h("start","drag","end"),x=0,b=0;return n.filter=function(t){return arguments.length?(d="function"==typeof t?t:df(!!t),n):d},n.container=function(t){return arguments.length?(v="function"==typeof t?t:df(t),n):v},n.subject=function(t){return arguments.length?(_="function"==typeof t?t:df(t),n):_},n.touchable=function(t){return arguments.length?(g="function"==typeof t?t:df(!!t),n):g},n.on=function(){var t=m.on.apply(m,arguments);return t===m?n:t},n.clickDistance=function(t){return arguments.length?(b=(t=+t)*t,n):Math.sqrt(b)},n},t.dragDisable=pf,t.dragEnable=_t,t.dsvFormat=Qh,t.csvParse=tp,t.csvParseRows=np,t.csvFormat=ep,t.csvFormatRows=rp,t.tsvParse=op,t.tsvParseRows=up,t.tsvFormat=ap,t.tsvFormatRows=cp,t.easeLinear=function(t){return+t},t.easeQuad=Kn,t.easeQuadIn=function(t){return t*t},t.easeQuadOut=function(t){return t*(2-t)},t.easeQuadInOut=Kn,t.easeCubic=te,t.easeCubicIn=function(t){return t*t*t},t.easeCubicOut=function(t){return--t*t*t+1},t.easeCubicInOut=te,t.easePoly=Ql,t.easePolyIn=Gl,t.easePolyOut=Jl,t.easePolyInOut=Ql,t.easeSin=ne,t.easeSinIn=function(t){return 1-Math.cos(t*th)},t.easeSinOut=function(t){return Math.sin(t*th)},t.easeSinInOut=ne,t.easeExp=ee,t.easeExpIn=function(t){return Math.pow(2,10*t-10)},t.easeExpOut=function(t){return 1-Math.pow(2,-10*t)},t.easeExpInOut=ee,t.easeCircle=re,t.easeCircleIn=function(t){return 1-Math.sqrt(1-t*t)},t.easeCircleOut=function(t){return Math.sqrt(1- --t*t)},t.easeCircleInOut=re,t.easeBounce=ie,t.easeBounceIn=function(t){return 1-ie(1-t)},t.easeBounceOut=ie,t.easeBounceInOut=function(t){return((t*=2)<=1?1-ie(1-t):ie(t-1)+1)/2},t.easeBack=ph,t.easeBackIn=lh,t.easeBackOut=hh,t.easeBackInOut=ph,t.easeElastic=_h,t.easeElasticIn=vh,t.easeElasticOut=_h,t.easeElasticInOut=gh,t.forceCenter=function(t,n){function e(){var e,i,o=r.length,u=0,a=0;for(e=0;e<o;++e)u+=(i=r[e]).x,a+=i.y;for(u=u/o-t,a=a/o-n,e=0;e<o;++e)(i=r[e]).x-=u,i.y-=a}var r;return null==t&&(t=0),null==n&&(n=0),e.initialize=function(t){r=t},e.x=function(n){return arguments.length?(t=+n,e):t},e.y=function(t){return arguments.length?(n=+t,e):n},e},t.forceCollide=function(t){function n(){for(var t,n,r,c,s,f,l,h=i.length,p=0;p<a;++p)for(n=qe(i,Oe,Fe).visitAfter(e),t=0;t<h;++t)r=i[t],f=o[r.index],l=f*f,c=r.x+r.vx,s=r.y+r.vy,n.visit(function(t,n,e,i,o){var a=t.data,h=t.r,p=f+h;if(!a)return n>c+p||i<c-p||e>s+p||o<s-p;if(a.index>r.index){var d=c-a.x-a.vx,v=s-a.y-a.vy,_=d*d+v*v;_<p*p&&(0===d&&(d=fp(),_+=d*d),0===v&&(v=fp(),_+=v*v),_=(p-(_=Math.sqrt(_)))/_*u,r.vx+=(d*=_)*(p=(h*=h)/(l+h)),r.vy+=(v*=_)*p,a.vx-=d*(p=1-p),a.vy-=v*p)}})}function e(t){if(t.data)return t.r=o[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function r(){if(i){var n,e,r=i.length;for(o=new Array(r),n=0;n<r;++n)e=i[n],o[e.index]=+t(e,n,i)}}var i,o,u=1,a=1;return"function"!=typeof t&&(t=sp(null==t?1:+t)),n.initialize=function(t){i=t,r()},n.iterations=function(t){return arguments.length?(a=+t,n):a},n.strength=function(t){return arguments.length?(u=+t,n):u},n.radius=function(e){return arguments.length?(t="function"==typeof e?e:sp(+e),r(),n):t},n},t.forceLink=function(t){function n(n){for(var e=0,r=t.length;e<p;++e)for(var i,a,c,f,l,h,d,v=0;v<r;++v)a=(i=t[v]).source,f=(c=i.target).x+c.vx-a.x-a.vx||fp(),l=c.y+c.vy-a.y-a.vy||fp(),f*=h=((h=Math.sqrt(f*f+l*l))-u[v])/h*n*o[v],l*=h,c.vx-=f*(d=s[v]),c.vy-=l*d,a.vx+=f*(d=1-d),a.vy+=l*d}function e(){if(a){var n,e,l=a.length,h=t.length,p=we(a,f);for(n=0,c=new Array(l);n<h;++n)(e=t[n]).index=n,"object"!=typeof e.source&&(e.source=Ye(p,e.source)),"object"!=typeof e.target&&(e.target=Ye(p,e.target)),c[e.source.index]=(c[e.source.index]||0)+1,c[e.target.index]=(c[e.target.index]||0)+1;for(n=0,s=new Array(h);n<h;++n)e=t[n],s[n]=c[e.source.index]/(c[e.source.index]+c[e.target.index]);o=new Array(h),r(),u=new Array(h),i()}}function r(){if(a)for(var n=0,e=t.length;n<e;++n)o[n]=+l(t[n],n,t)}function i(){if(a)for(var n=0,e=t.length;n<e;++n)u[n]=+h(t[n],n,t)}var o,u,a,c,s,f=Ie,l=function(t){return 1/Math.min(c[t.source.index],c[t.target.index])},h=sp(30),p=1;return null==t&&(t=[]),n.initialize=function(t){a=t,e()},n.links=function(r){return arguments.length?(t=r,e(),n):t},n.id=function(t){return arguments.length?(f=t,n):f},n.iterations=function(t){return arguments.length?(p=+t,n):p},n.strength=function(t){return arguments.length?(l="function"==typeof t?t:sp(+t),r(),n):l},n.distance=function(t){return arguments.length?(h="function"==typeof t?t:sp(+t),i(),n):h},n},t.forceManyBody=function(){function t(t){var n,a=i.length,c=qe(i,Be,je).visitAfter(e);for(u=t,n=0;n<a;++n)o=i[n],c.visit(r)}function n(){if(i){var t,n,e=i.length;for(a=new Array(e),t=0;t<e;++t)n=i[t],a[n.index]=+c(n,t,i)}}function e(t){var n,e,r,i,o,u=0,c=0;if(t.length){for(r=i=o=0;o<4;++o)(n=t[o])&&(e=Math.abs(n.value))&&(u+=n.value,c+=e,r+=e*n.x,i+=e*n.y);t.x=r/c,t.y=i/c}else{(n=t).x=n.data.x,n.y=n.data.y;do{u+=a[n.data.index]}while(n=n.next)}t.value=u}function r(t,n,e,r){if(!t.value)return!0;var i=t.x-o.x,c=t.y-o.y,h=r-n,p=i*i+c*c;if(h*h/l<p)return p<f&&(0===i&&(i=fp(),p+=i*i),0===c&&(c=fp(),p+=c*c),p<s&&(p=Math.sqrt(s*p)),o.vx+=i*t.value*u/p,o.vy+=c*t.value*u/p),!0;if(!(t.length||p>=f)){(t.data!==o||t.next)&&(0===i&&(i=fp(),p+=i*i),0===c&&(c=fp(),p+=c*c),p<s&&(p=Math.sqrt(s*p)));do{t.data!==o&&(h=a[t.data.index]*u/p,o.vx+=i*h,o.vy+=c*h)}while(t=t.next)}}var i,o,u,a,c=sp(-30),s=1,f=1/0,l=.81;return t.initialize=function(t){i=t,n()},t.strength=function(e){return arguments.length?(c="function"==typeof e?e:sp(+e),n(),t):c},t.distanceMin=function(n){return arguments.length?(s=n*n,t):Math.sqrt(s)},t.distanceMax=function(n){return arguments.length?(f=n*n,t):Math.sqrt(f)},t.theta=function(n){return arguments.length?(l=n*n,t):Math.sqrt(l)},t},t.forceRadial=function(t,n,e){function r(t){for(var r=0,i=o.length;r<i;++r){var c=o[r],s=c.x-n||1e-6,f=c.y-e||1e-6,l=Math.sqrt(s*s+f*f),h=(a[r]-l)*u[r]*t/l;c.vx+=s*h,c.vy+=f*h}}function i(){if(o){var n,e=o.length;for(u=new Array(e),a=new Array(e),n=0;n<e;++n)a[n]=+t(o[n],n,o),u[n]=isNaN(a[n])?0:+c(o[n],n,o)}}var o,u,a,c=sp(.1);return"function"!=typeof t&&(t=sp(+t)),null==n&&(n=0),null==e&&(e=0),r.initialize=function(t){o=t,i()},r.strength=function(t){return arguments.length?(c="function"==typeof t?t:sp(+t),i(),r):c},r.radius=function(n){return arguments.length?(t="function"==typeof n?n:sp(+n),i(),r):t},r.x=function(t){return arguments.length?(n=+t,r):n},r.y=function(t){return arguments.length?(e=+t,r):e},r},t.forceSimulation=function(t){function n(){e(),d.call("tick",o),u<a&&(p.stop(),d.call("end",o))}function e(){var n,e,r=t.length;for(u+=(s-u)*c,l.each(function(t){t(u)}),n=0;n<r;++n)null==(e=t[n]).fx?e.x+=e.vx*=f:(e.x=e.fx,e.vx=0),null==e.fy?e.y+=e.vy*=f:(e.y=e.fy,e.vy=0)}function r(){for(var n,e=0,r=t.length;e<r;++e){if(n=t[e],n.index=e,isNaN(n.x)||isNaN(n.y)){var i=dp*Math.sqrt(e),o=e*vp;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function i(n){return n.initialize&&n.initialize(t),n}var o,u=1,a=.001,c=1-Math.pow(a,1/300),s=0,f=.6,l=we(),p=dn(n),d=h("tick","end");return null==t&&(t=[]),r(),o={tick:e,restart:function(){return p.restart(n),o},stop:function(){return p.stop(),o},nodes:function(n){return arguments.length?(t=n,r(),l.each(i),o):t},alpha:function(t){return arguments.length?(u=+t,o):u},alphaMin:function(t){return arguments.length?(a=+t,o):a},alphaDecay:function(t){return arguments.length?(c=+t,o):+c},alphaTarget:function(t){return arguments.length?(s=+t,o):s},velocityDecay:function(t){return arguments.length?(f=1-t,o):1-f},force:function(t,n){return arguments.length>1?(null==n?l.remove(t):l.set(t,i(n)),o):l.get(t)},find:function(n,e,r){var i,o,u,a,c,s=0,f=t.length;for(null==r?r=1/0:r*=r,s=0;s<f;++s)(u=(i=n-(a=t[s]).x)*i+(o=e-a.y)*o)<r&&(c=a,r=u);return c},on:function(t,n){return arguments.length>1?(d.on(t,n),o):d.on(t)}}},t.forceX=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)(n=r[e]).vx+=(o[e]-n.x)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=sp(.1);return"function"!=typeof t&&(t=sp(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u="function"==typeof t?t:sp(+t),e(),n):u},n.x=function(r){return arguments.length?(t="function"==typeof r?r:sp(+r),e(),n):t},n},t.forceY=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)(n=r[e]).vy+=(o[e]-n.y)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=sp(.1);return"function"!=typeof t&&(t=sp(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u="function"==typeof t?t:sp(+t),e(),n):u},n.y=function(r){return arguments.length?(t="function"==typeof r?r:sp(+r),e(),n):t},n},t.formatDefaultLocale=$e,t.formatLocale=kp,t.formatSpecifier=He,t.precisionFixed=Sp,t.precisionPrefix=Ep,t.precisionRound=Ap,t.geoArea=function(t){return Pd.reset(),Cd(t,Rd),2*Pd},t.geoBounds=function(t){var n,e,r,i,o,u,a;if(Fp=Op=-(Up=Dp=1/0),Hp=[],Cd(t,qd),e=Hp.length){for(Hp.sort(br),n=1,o=[r=Hp[0]];n<e;++n)wr(r,(i=Hp[n])[0])||wr(r,i[1])?(xr(r[0],i[1])>xr(r[0],r[1])&&(r[1]=i[1]),xr(i[0],r[1])>xr(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(u=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(a=xr(r[1],i[0]))>u&&(u=a,Up=i[0],Op=r[1])}return Hp=Xp=null,Up===1/0||Dp===1/0?[[NaN,NaN],[NaN,NaN]]:[[Up,Dp],[Op,Fp]]},t.geoCentroid=function(t){$p=Vp=Wp=Zp=Gp=Jp=Qp=Kp=td=nd=ed=0,Cd(t,Ud);var n=td,e=nd,r=ed,i=n*n+e*e+r*r;return i<1e-12&&(n=Jp,e=Qp,r=Kp,Vp<sd&&(n=Wp,e=Zp,r=Gp),(i=n*n+e*e+r*r)<1e-12)?[NaN,NaN]:[yd(e,n)*dd,Ge(r/kd(i))*dd]},t.geoCircle=function(){function t(){var t=r.apply(this,arguments),a=i.apply(this,arguments)*vd,c=o.apply(this,arguments)*vd;return n=[],e=Lr(-t[0]*vd,-t[1]*vd,0).invert,Or(u,a,c,1),t={type:"Polygon",coordinates:[n]},n=e=null,t}var n,e,r=Dd([0,0]),i=Dd(90),o=Dd(6),u={point:function(t,r){n.push(t=e(t,r)),t[0]*=dd,t[1]*=dd}};return t.center=function(n){return arguments.length?(r="function"==typeof n?n:Dd([+n[0],+n[1]]),t):r},t.radius=function(n){return arguments.length?(i="function"==typeof n?n:Dd(+n),t):i},t.precision=function(n){return arguments.length?(o="function"==typeof n?n:Dd(+n),t):o},t},t.geoClipAntimeridian=rv,t.geoClipCircle=iv,t.geoClipExtent=function(){var t,n,e,r=0,i=0,o=960,u=500;return e={stream:function(e){return t&&n===e?t:t=Xr(r,i,o,u)(n=e)},extent:function(a){return arguments.length?(r=+a[0][0],i=+a[0][1],o=+a[1][0],u=+a[1][1],t=n=null,e):[[r,i],[o,u]]}}},t.geoClipRectangle=Xr,t.geoContains=function(t,n){return(t&&dv.hasOwnProperty(t.type)?dv[t.type]:Zr)(t,n)},t.geoDistance=pv,t.geoGraticule=ri,t.geoGraticule10=function(){return ri()()},t.geoInterpolate=function(t,n){var e=t[0]*vd,r=t[1]*vd,i=n[0]*vd,o=n[1]*vd,u=md(r),a=Td(r),c=md(o),s=Td(o),f=u*md(e),l=u*Td(e),h=c*md(i),p=c*Td(i),d=2*Ge(kd(Je(o-r)+u*c*Je(i-e))),v=Td(d),_=d?function(t){var n=Td(t*=d)/v,e=Td(d-t)/v,r=e*f+n*h,i=e*l+n*p,o=e*a+n*s;return[yd(i,r)*dd,yd(o,kd(r*r+i*i))*dd]}:function(){return[e*dd,r*dd]};return _.distance=d,_},t.geoLength=fv,t.geoPath=function(t,n){function e(t){return t&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),Cd(t,r(i))),i.result()}var r,i,o=4.5;return e.area=function(t){return Cd(t,r(mv)),mv.result()},e.measure=function(t){return Cd(t,r(Yv)),Yv.result()},e.bounds=function(t){return Cd(t,r(Tv)),Tv.result()},e.centroid=function(t){return Cd(t,r(Lv)),Lv.result()},e.projection=function(n){return arguments.length?(r=null==n?(t=null,_v):(t=n).stream,e):t},e.context=function(t){return arguments.length?(i=null==t?(n=null,new xi):new gi(n=t),"function"!=typeof o&&i.pointRadius(o),e):n},e.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(i.pointRadius(+t),+t),e):o},e.projection(t).context(n)},t.geoAlbers=Vv,t.geoAlbersUsa=function(){function t(t){var n=t[0],e=t[1];return a=null,i.point(n,e),a||(o.point(n,e),a)||(u.point(n,e),a)}function n(){return e=r=null,t}var e,r,i,o,u,a,c=Vv(),s=$v().rotate([154,0]).center([-2,58.5]).parallels([55,65]),f=$v().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){a=[t,n]}};return t.invert=function(t){var n=c.scale(),e=c.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?f:c).invert(t)},t.stream=function(t){return e&&r===t?e:e=Li([c.stream(r=t),s.stream(t),f.stream(t)])},t.precision=function(t){return arguments.length?(c.precision(t),s.precision(t),f.precision(t),n()):c.precision()},t.scale=function(n){return arguments.length?(c.scale(n),s.scale(.35*n),f.scale(n),t.translate(c.translate())):c.scale()},t.translate=function(t){if(!arguments.length)return c.translate();var e=c.scale(),r=+t[0],a=+t[1];return i=c.translate(t).clipExtent([[r-.455*e,a-.238*e],[r+.455*e,a+.238*e]]).stream(l),o=s.translate([r-.307*e,a+.201*e]).clipExtent([[r-.425*e+sd,a+.12*e+sd],[r-.214*e-sd,a+.234*e-sd]]).stream(l),u=f.translate([r-.205*e,a+.212*e]).clipExtent([[r-.214*e+sd,a+.166*e+sd],[r-.115*e-sd,a+.234*e-sd]]).stream(l),n()},t.fitExtent=function(n,e){return Ti(t,n,e)},t.fitSize=function(n,e){return Ni(t,n,e)},t.scale(1070)},t.geoAzimuthalEqualArea=function(){return Ai(Wv).scale(124.75).clipAngle(179.999)},t.geoAzimuthalEqualAreaRaw=Wv,t.geoAzimuthalEquidistant=function(){return Ai(Zv).scale(79.4188).clipAngle(179.999)},t.geoAzimuthalEquidistantRaw=Zv,t.geoConicConformal=function(){return zi(Ii).scale(109.5).parallels([30,30])},t.geoConicConformalRaw=Ii,t.geoConicEqualArea=$v,t.geoConicEqualAreaRaw=Ri,t.geoConicEquidistant=function(){return zi(Bi).scale(131.154).center([0,13.9389])},t.geoConicEquidistantRaw=Bi,t.geoEquirectangular=function(){return Ai(Yi).scale(152.63)},t.geoEquirectangularRaw=Yi,t.geoGnomonic=function(){return Ai(ji).scale(144.049).clipAngle(60)},t.geoGnomonicRaw=ji,t.geoIdentity=function(){function t(){return i=o=null,u}var n,e,r,i,o,u,a=1,c=0,s=0,f=1,l=1,h=_v,p=null,d=_v;return u={stream:function(t){return i&&o===t?i:i=h(d(o=t))},postclip:function(i){return arguments.length?(d=i,p=n=e=r=null,t()):d},clipExtent:function(i){return arguments.length?(d=null==i?(p=n=e=r=null,_v):Xr(p=+i[0][0],n=+i[0][1],e=+i[1][0],r=+i[1][1]),t()):null==p?null:[[p,n],[e,r]]},scale:function(n){return arguments.length?(h=Hi((a=+n)*f,a*l,c,s),t()):a},translate:function(n){return arguments.length?(h=Hi(a*f,a*l,c=+n[0],s=+n[1]),t()):[c,s]},reflectX:function(n){return arguments.length?(h=Hi(a*(f=n?-1:1),a*l,c,s),t()):f<0},reflectY:function(n){return arguments.length?(h=Hi(a*f,a*(l=n?-1:1),c,s),t()):l<0},fitExtent:function(t,n){return Ti(u,t,n)},fitSize:function(t,n){return Ni(u,t,n)}}},t.geoProjection=Ai,t.geoProjectionMutator=Ci,t.geoMercator=function(){return Oi(Di).scale(961/pd)},t.geoMercatorRaw=Di,t.geoNaturalEarth1=function(){return Ai(Xi).scale(175.295)},t.geoNaturalEarth1Raw=Xi,t.geoOrthographic=function(){return Ai($i).scale(249.5).clipAngle(90+sd)},t.geoOrthographicRaw=$i,t.geoStereographic=function(){return Ai(Vi).scale(250).clipAngle(142)},t.geoStereographicRaw=Vi,t.geoTransverseMercator=function(){var t=Oi(Wi),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=Wi,t.geoRotation=Gd,t.geoStream=Cd,t.geoTransform=function(t){return{stream:wi(t)}},t.cluster=function(){function t(t){var o,u=0;t.eachAfter(function(t){var e=t.children;e?(t.x=Gi(e),t.y=Qi(e)):(t.x=o?u+=n(t,o):0,t.y=0,o=t)});var a=to(t),c=no(t),s=a.x-n(a,c)/2,f=c.x+n(c,a)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-s)/(f-s)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=Zi,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t},t.hierarchy=io,t.pack=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Eo(n)).eachAfter(Ao(i,.5)).eachBefore(Co(1)):t.eachBefore(Eo(So)).eachAfter(Ao(ko,1)).eachAfter(Ao(i,t.r/Math.min(e,r))).eachBefore(Co(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=ko;return t.radius=function(e){return arguments.length?(n=To(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i="function"==typeof n?n:Qv(+n),t):i},t},t.packSiblings=function(t){return Mo(t),t},t.packEnclose=Jv,t.partition=function(){function t(t){var u=t.height+1;return t.x0=t.y0=i,t.x1=e,t.y1=r/u,t.eachBefore(n(r,u)),o&&t.eachBefore(Kv),t}function n(t,n){return function(e){e.children&&t_(e,e.x0,t*(e.depth+1)/n,e.x1,t*(e.depth+2)/n);var r=e.x0,o=e.y0,u=e.x1-i,a=e.y1-i;u<r&&(r=u=(r+u)/2),a<o&&(o=a=(o+a)/2),e.x0=r,e.y0=o,e.x1=u,e.y1=a}}var e=1,r=1,i=0,o=!1;return t.round=function(n){return arguments.length?(o=!!n,t):o},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i=+n,t):i},t},t.stratify=function(){function t(t){var r,i,o,u,a,c,s,f=t.length,l=new Array(f),h={};for(i=0;i<f;++i)r=t[i],a=l[i]=new co(r),null!=(c=n(r,i,t))&&(c+="")&&(h[s=n_+(a.id=c)]=s in h?r_:a);for(i=0;i<f;++i)if(a=l[i],null!=(c=e(t[i],i,t))&&(c+="")){if(!(u=h[n_+c]))throw new Error("missing: "+c);if(u===r_)throw new Error("ambiguous: "+c);u.children?u.children.push(a):u.children=[a],a.parent=u}else{if(o)throw new Error("multiple roots");o=a}if(!o)throw new Error("no root");if(o.parent=e_,o.eachBefore(function(t){t.depth=t.parent.depth+1,--f}).eachBefore(ao),o.parent=null,f>0)throw new Error("cycle");return o}var n=zo,e=Po;return t.id=function(e){return arguments.length?(n=No(e),t):n},t.parentId=function(n){return arguments.length?(e=No(n),t):e},t},t.tree=function(){function t(t){var r=Io(t);if(r.eachAfter(n),r.parent.m=-r.z,r.eachBefore(e),c)t.eachBefore(i);else{var s=t,f=t,l=t;t.eachBefore(function(t){t.x<s.x&&(s=t),t.x>f.x&&(f=t),t.depth>l.depth&&(l=t)});var h=s===f?1:o(s,f)/2,p=h-s.x,d=u/(f.x+h+p),v=a/(l.depth||1);t.eachBefore(function(t){t.x=(t.x+p)*d,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,i=t.i?e[t.i-1]:null;if(n){Do(t);var u=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+o(t._,i._),t.m=t.z-u):t.z=u}else i&&(t.z=i.z+o(t._,i._));t.parent.A=r(t,i,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t,n,e){if(n){for(var r,i=t,u=t,a=n,c=i.parent.children[0],s=i.m,f=u.m,l=a.m,h=c.m;a=qo(a),i=Lo(i),a&&i;)c=Lo(c),(u=qo(u)).a=t,(r=a.z+l-i.z-s+o(a._,i._))>0&&(Uo(Oo(a,t,e),t,r),s+=r,f+=r),l+=a.m,s+=i.m,h+=c.m,f+=u.m;a&&!qo(u)&&(u.t=a,u.m+=l-f),i&&!Lo(c)&&(c.t=i,c.m+=s-h,e=t)}return e}function i(t){t.x*=u,t.y=t.depth*a}var o=Ro,u=1,a=1,c=null;return t.separation=function(n){return arguments.length?(o=n,t):o},t.size=function(n){return arguments.length?(c=!1,u=+n[0],a=+n[1],t):c?null:[u,a]},t.nodeSize=function(n){return arguments.length?(c=!0,u=+n[0],a=+n[1],t):c?[u,a]:null},t},t.treemap=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),u=[0],r&&t.eachBefore(Kv),t}function n(t){var n=u[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),t.x0=r,t.y0=i,t.x1=o,t.y1=h,t.children&&(n=u[t.depth+1]=a(t)/2,r+=l(t)-n,i+=c(t)-n,o-=s(t)-n,h-=f(t)-n,o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),e(t,r,i,o,h))}var e=u_,r=!1,i=1,o=1,u=[0],a=ko,c=ko,s=ko,f=ko,l=ko;return t.round=function(n){return arguments.length?(r=!!n,t):r},t.size=function(n){return arguments.length?(i=+n[0],o=+n[1],t):[i,o]},t.tile=function(n){return arguments.length?(e=No(n),t):e},t.padding=function(n){return arguments.length?t.paddingInner(n).paddingOuter(n):t.paddingInner()},t.paddingInner=function(n){return arguments.length?(a="function"==typeof n?n:Qv(+n),t):a},t.paddingOuter=function(n){return arguments.length?t.paddingTop(n).paddingRight(n).paddingBottom(n).paddingLeft(n):t.paddingTop()},t.paddingTop=function(n){return arguments.length?(c="function"==typeof n?n:Qv(+n),t):c},t.paddingRight=function(n){return arguments.length?(s="function"==typeof n?n:Qv(+n),t):s},t.paddingBottom=function(n){return arguments.length?(f="function"==typeof n?n:Qv(+n),t):f},t.paddingLeft=function(n){return arguments.length?(l="function"==typeof n?n:Qv(+n),t):l},t},t.treemapBinary=function(t,n,e,r,i){function o(t,n,e,r,i,u,a){if(t>=n-1){var s=c[t];return s.x0=r,s.y0=i,s.x1=u,void(s.y1=a)}for(var l=f[t],h=e/2+l,p=t+1,d=n-1;p<d;){var v=p+d>>>1;f[v]<h?p=v+1:d=v}h-f[p-1]<f[p]-h&&t+1<p&&--p;var _=f[p]-l,g=e-_;if(u-r>a-i){var y=(r*g+u*_)/e;o(t,p,_,r,i,y,a),o(p,n,g,y,i,u,a)}else{var m=(i*g+a*_)/e;o(t,p,_,r,i,u,m),o(p,n,g,r,m,u,a)}}var u,a,c=t.children,s=c.length,f=new Array(s+1);for(f[0]=a=u=0;u<s;++u)f[u+1]=a+=c[u].value;o(0,s,t.value,n,e,r,i)},t.treemapDice=t_,t.treemapSlice=i_,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?i_:t_)(t,n,e,r,i)},t.treemapSquarify=u_,t.treemapResquarify=a_,t.interpolate=fl,t.interpolateArray=rl,t.interpolateBasis=Jf,t.interpolateBasisClosed=Qf,t.interpolateDate=il,t.interpolateNumber=ol,t.interpolateObject=ul,t.interpolateRound=ll,t.interpolateString=sl,t.interpolateTransformCss=vl,t.interpolateTransformSvg=_l,t.interpolateZoom=yl,t.interpolateRgb=tl,t.interpolateRgbBasis=nl,t.interpolateRgbBasisClosed=el,t.interpolateHsl=ml,t.interpolateHslLong=xl,t.interpolateLab=function(t,n){var e=Kt((t=Ut(t)).l,(n=Ut(n)).l),r=Kt(t.a,n.a),i=Kt(t.b,n.b),o=Kt(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateHcl=bl,t.interpolateHclLong=wl,t.interpolateCubehelix=Ml,t.interpolateCubehelixLong=Tl,t.quantize=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},t.path=ve,t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},t.polygonCentroid=function(t){for(var n,e,r=-1,i=t.length,o=0,u=0,a=t[i-1],c=0;++r<i;)n=a,a=t[r],c+=e=n[0]*a[1]-a[0]*n[1],o+=(n[0]+a[0])*e,u+=(n[1]+a[1])*e;return c*=3,[o/c,u/c]},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(Bo),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=jo(r),u=jo(i),a=u[0]===o[0],c=u[u.length-1]===o[o.length-1],s=[];for(n=o.length-1;n>=0;--n)s.push(t[r[o[n]][2]]);for(n=+a;n<u.length-c;++n)s.push(t[r[u[n]][2]]);return s},t.polygonContains=function(t,n){for(var e,r,i=t.length,o=t[i-1],u=n[0],a=n[1],c=o[0],s=o[1],f=!1,l=0;l<i;++l)e=(o=t[l])[0],(r=o[1])>a!=s>a&&u<(c-e)*(a-r)/(s-r)+e&&(f=!f),c=e,s=r;return f},t.polygonLength=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],u=o[0],a=o[1],c=0;++r<i;)n=u,e=a,n-=u=(o=t[r])[0],e-=a=o[1],c+=Math.sqrt(n*n+e*e);return c},t.quadtree=qe,t.queue=Go,t.randomUniform=h_,t.randomNormal=p_,t.randomLogNormal=d_,t.randomBates=__,t.randomIrwinHall=v_,t.randomExponential=g_,t.request=y_,t.html=x_,t.json=b_,t.text=w_,t.xml=M_,t.csv=N_,t.tsv=k_,t.scaleBand=nu,t.scalePoint=function(){return eu(nu().paddingInner(1))},t.scaleIdentity=hu,t.scaleLinear=lu,t.scaleLog=mu,t.scaleOrdinal=tu,t.scaleImplicit=C_,t.scalePow=bu,t.scaleSqrt=function(){return bu().exponent(.5)},t.scaleQuantile=wu,t.scaleQuantize=Mu,t.scaleThreshold=Tu,t.scaleTime=function(){return Ea(hg,fg,G_,W_,$_,H_,B_,O_,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])},t.scaleUtc=function(){return Ea(Ug,Lg,xg,yg,_g,dg,B_,O_,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])},t.schemeCategory10=Kg,t.schemeCategory20b=ty,t.schemeCategory20c=ny,t.schemeCategory20=ey,t.interpolateCubehelixDefault=ry,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return uy.h=360*t-100,uy.s=1.5-1.5*n,uy.l=.8-.9*n,uy+""},t.interpolateWarm=iy,t.interpolateCool=oy,t.interpolateViridis=ay,t.interpolateMagma=cy,t.interpolateInferno=sy,t.interpolatePlasma=fy,t.scaleSequential=Ca,t.creator=$s,t.local=m,t.matcher=Js,t.mouse=nf,t.namespace=Xs,t.namespaces=Hs,t.select=ff,t.selectAll=function(t){return"string"==typeof t?new pt([document.querySelectorAll(t)],[document.documentElement]):new pt([null==t?[]:t],sf)},t.selection=dt,t.selector=ef,t.selectorAll=rf,t.style=B,t.touch=lf,t.touches=function(t,n){null==n&&(n=Ks().touches);for(var e=0,r=n?n.length:0,i=new Array(r);e<r;++e)i[e]=tf(t,n[e]);return i},t.window=cf,t.customEvent=k,t.arc=function(){function t(){var t,s,f=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-by,p=u.apply(this,arguments)-by,d=hy(p-h),v=p>h;if(c||(c=t=ve()),l<f&&(s=l,l=f,f=s),l>my)if(d>wy-my)c.moveTo(l*dy(h),l*gy(h)),c.arc(0,0,l,h,p,!v),f>my&&(c.moveTo(f*dy(p),f*gy(p)),c.arc(0,0,f,p,h,v));else{var _,g,y=h,m=p,x=h,b=p,w=d,M=d,T=a.apply(this,arguments)/2,N=T>my&&(i?+i.apply(this,arguments):yy(f*f+l*l)),k=_y(hy(l-f)/2,+r.apply(this,arguments)),S=k,E=k;if(N>my){var A=Pa(N/f*gy(T)),C=Pa(N/l*gy(T));(w-=2*A)>my?(A*=v?1:-1,x+=A,b-=A):(w=0,x=b=(h+p)/2),(M-=2*C)>my?(C*=v?1:-1,y+=C,m-=C):(M=0,y=m=(h+p)/2)}var z=l*dy(y),P=l*gy(y),R=f*dy(b),L=f*gy(b);if(k>my){var q=l*dy(m),U=l*gy(m),D=f*dy(x),O=f*gy(x);if(d<xy){var F=w>my?Oa(z,P,D,O,q,U,R,L):[R,L],I=z-F[0],Y=P-F[1],B=q-F[0],j=U-F[1],H=1/gy(za((I*B+Y*j)/(yy(I*I+Y*Y)*yy(B*B+j*j)))/2),X=yy(F[0]*F[0]+F[1]*F[1]);S=_y(k,(f-X)/(H-1)),E=_y(k,(l-X)/(H+1))}}M>my?E>my?(_=Fa(D,O,z,P,l,E,v),g=Fa(q,U,R,L,l,E,v),c.moveTo(_.cx+_.x01,_.cy+_.y01),E<k?c.arc(_.cx,_.cy,E,py(_.y01,_.x01),py(g.y01,g.x01),!v):(c.arc(_.cx,_.cy,E,py(_.y01,_.x01),py(_.y11,_.x11),!v),c.arc(0,0,l,py(_.cy+_.y11,_.cx+_.x11),py(g.cy+g.y11,g.cx+g.x11),!v),c.arc(g.cx,g.cy,E,py(g.y11,g.x11),py(g.y01,g.x01),!v))):(c.moveTo(z,P),c.arc(0,0,l,y,m,!v)):c.moveTo(z,P),f>my&&w>my?S>my?(_=Fa(R,L,q,U,f,-S,v),g=Fa(z,P,D,O,f,-S,v),c.lineTo(_.cx+_.x01,_.cy+_.y01),S<k?c.arc(_.cx,_.cy,S,py(_.y01,_.x01),py(g.y01,g.x01),!v):(c.arc(_.cx,_.cy,S,py(_.y01,_.x01),py(_.y11,_.x11),!v),c.arc(0,0,f,py(_.cy+_.y11,_.cx+_.x11),py(g.cy+g.y11,g.cx+g.x11),v),c.arc(g.cx,g.cy,S,py(g.y11,g.x11),py(g.y01,g.x01),!v))):c.arc(0,0,f,b,x,v):c.lineTo(R,L)}else c.moveTo(0,0);if(c.closePath(),t)return c=null,t+""||null}var n=Ra,e=La,r=ly(0),i=null,o=qa,u=Ua,a=Da,c=null;return t.centroid=function(){var t=(+n.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +u.apply(this,arguments))/2-xy/2;return[dy(r)*t,gy(r)*t]},t.innerRadius=function(e){return arguments.length?(n="function"==typeof e?e:ly(+e),t):n},t.outerRadius=function(n){return arguments.length?(e="function"==typeof n?n:ly(+n),t):e},t.cornerRadius=function(n){return arguments.length?(r="function"==typeof n?n:ly(+n),t):r},t.padRadius=function(n){return arguments.length?(i=null==n?null:"function"==typeof n?n:ly(+n),t):i},t.startAngle=function(n){return arguments.length?(o="function"==typeof n?n:ly(+n),t):o},t.endAngle=function(n){return arguments.length?(u="function"==typeof n?n:ly(+n),t):u},t.padAngle=function(n){return arguments.length?(a="function"==typeof n?n:ly(+n),t):a},t.context=function(n){return arguments.length?(c=null==n?null:n,t):c},t},t.area=Ny,t.line=Ty,t.pie=function(){function t(t){var a,c,s,f,l,h=t.length,p=0,d=new Array(h),v=new Array(h),_=+i.apply(this,arguments),g=Math.min(wy,Math.max(-wy,o.apply(this,arguments)-_)),y=Math.min(Math.abs(g)/h,u.apply(this,arguments)),m=y*(g<0?-1:1);for(a=0;a<h;++a)(l=v[d[a]=a]=+n(t[a],a,t))>0&&(p+=l);for(null!=e?d.sort(function(t,n){return e(v[t],v[n])}):null!=r&&d.sort(function(n,e){return r(t[n],t[e])}),a=0,s=p?(g-h*m)/p:0;a<h;++a,_=f)c=d[a],f=_+((l=v[c])>0?l*s:0)+m,v[c]={data:t[c],index:a,value:l,startAngle:_,endAngle:f,padAngle:y};return v}var n=Sy,e=ky,r=null,i=ly(0),o=ly(wy),u=ly(0);return t.value=function(e){return arguments.length?(n="function"==typeof e?e:ly(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:ly(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:ly(+n),t):o},t.padAngle=function(n){return arguments.length?(u="function"==typeof n?n:ly(+n),t):u},t},t.areaRadial=Cy,t.radialArea=Cy,t.lineRadial=Ay,t.radialLine=Ay,t.pointRadial=zy,t.linkHorizontal=function(){return Wa(Za)},t.linkVertical=function(){return Wa(Ga)},t.linkRadial=function(){var t=Wa(Ja);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.symbol=function(){function t(){var t;if(r||(r=t=ve()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=ly(Ry),e=ly(64),r=null;return t.type=function(e){return arguments.length?(n="function"==typeof e?e:ly(e),t):n},t.size=function(n){return arguments.length?(e="function"==typeof n?n:ly(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},t.symbols=Gy,t.symbolCircle=Ry,t.symbolCross=Ly,t.symbolDiamond=Dy,t.symbolSquare=By,t.symbolStar=Yy,t.symbolTriangle=Hy,t.symbolWye=Zy,t.curveBasisClosed=function(t){return new tc(t)},t.curveBasisOpen=function(t){return new nc(t)},t.curveBasis=function(t){return new Ka(t)},t.curveBundle=Qy,t.curveCardinalClosed=tm,t.curveCardinalOpen=nm,t.curveCardinal=Ky,t.curveCatmullRomClosed=rm,t.curveCatmullRomOpen=im,t.curveCatmullRom=em,t.curveLinearClosed=function(t){return new lc(t)},t.curveLinear=My,t.curveMonotoneX=function(t){return new _c(t)},t.curveMonotoneY=function(t){return new gc(t)},t.curveNatural=function(t){return new mc(t)},t.curveStep=function(t){return new bc(t,.5)},t.curveStepAfter=function(t){return new bc(t,1)},t.curveStepBefore=function(t){return new bc(t,0)},t.stack=function(){function t(t){var o,u,a=n.apply(this,arguments),c=t.length,s=a.length,f=new Array(s);for(o=0;o<s;++o){for(var l,h=a[o],p=f[o]=new Array(c),d=0;d<c;++d)p[d]=l=[0,+i(t[d],h,d,t)],l.data=t[d];p.key=h}for(o=0,u=e(f);o<s;++o)f[u[o]].index=o;return r(f,u),f}var n=ly([]),e=um,r=om,i=wc;return t.keys=function(e){return arguments.length?(n="function"==typeof e?e:ly(Py.call(e)),t):n},t.value=function(n){return arguments.length?(i="function"==typeof n?n:ly(+n),t):i},t.order=function(n){return arguments.length?(e=null==n?um:"function"==typeof n?n:ly(Py.call(n)),t):e},t.offset=function(n){return arguments.length?(r=null==n?om:n,t):r},t},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,u=t[0].length;o<u;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}om(t,n)}},t.stackOffsetDiverging=function(t,n){if((a=t.length)>1)for(var e,r,i,o,u,a,c=0,s=t[n[0]].length;c<s;++c)for(o=u=0,e=0;e<a;++e)(i=(r=t[n[e]][c])[1]-r[0])>=0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=u,r[0]=u+=i):r[0]=o},t.stackOffsetNone=om,t.stackOffsetSilhouette=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var u=0,a=0;u<e;++u)a+=t[u][r][1]||0;i[r][1]+=i[r][0]=-a/2}om(t,n)}},t.stackOffsetWiggle=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,u=1;u<r;++u){for(var a=0,c=0,s=0;a<i;++a){for(var f=t[n[a]],l=f[u][1]||0,h=(l-(f[u-1][1]||0))/2,p=0;p<a;++p){var d=t[n[p]];h+=(d[u][1]||0)-(d[u-1][1]||0)}c+=l,s+=h*l}e[u-1][1]+=e[u-1][0]=o,c&&(o-=s/c)}e[u-1][1]+=e[u-1][0]=o,om(t,n)}},t.stackOrderAscending=am,t.stackOrderDescending=function(t){return am(t).reverse()},t.stackOrderInsideOut=function(t){var n,e,r=t.length,i=t.map(Mc),o=um(t).sort(function(t,n){return i[n]-i[t]}),u=0,a=0,c=[],s=[];for(n=0;n<r;++n)e=o[n],u<a?(u+=i[e],c.push(e)):(a+=i[e],s.push(e));return s.reverse().concat(c)},t.stackOrderNone=um,t.stackOrderReverse=function(t){return um(t).reverse()},t.timeInterval=Nu,t.timeMillisecond=O_,t.timeMilliseconds=F_,t.utcMillisecond=O_,t.utcMilliseconds=F_,t.timeSecond=B_,t.timeSeconds=j_,t.utcSecond=B_,t.utcSeconds=j_,t.timeMinute=H_,t.timeMinutes=X_,t.timeHour=$_,t.timeHours=V_,t.timeDay=W_,t.timeDays=Z_,t.timeWeek=G_,t.timeWeeks=rg,t.timeSunday=G_,t.timeSundays=rg,t.timeMonday=J_,t.timeMondays=ig,t.timeTuesday=Q_,t.timeTuesdays=og,t.timeWednesday=K_,t.timeWednesdays=ug,t.timeThursday=tg,t.timeThursdays=ag,t.timeFriday=ng,t.timeFridays=cg,t.timeSaturday=eg,t.timeSaturdays=sg,t.timeMonth=fg,t.timeMonths=lg,t.timeYear=hg,t.timeYears=pg,t.utcMinute=dg,t.utcMinutes=vg,t.utcHour=_g,t.utcHours=gg,t.utcDay=yg,t.utcDays=mg,t.utcWeek=xg,t.utcWeeks=Sg,t.utcSunday=xg,t.utcSundays=Sg,t.utcMonday=bg,t.utcMondays=Eg,t.utcTuesday=wg,t.utcTuesdays=Ag,t.utcWednesday=Mg,t.utcWednesdays=Cg,t.utcThursday=Tg,t.utcThursdays=zg,t.utcFriday=Ng,t.utcFridays=Pg,t.utcSaturday=kg,t.utcSaturdays=Rg,t.utcMonth=Lg,t.utcMonths=qg,t.utcYear=Ug,t.utcYears=Og,t.timeFormatDefaultLocale=Na,t.timeFormatLocale=zu,t.isoFormat=jg,t.isoParse=Hg,t.now=ln,t.timer=dn,t.timerFlush=vn,t.timeout=Ll,t.interval=function(t,n,e){var r=new pn,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?ln():+e,r.restart(function o(u){u+=i,r.restart(o,i+=n,e),t(u)},n,e),r)},t.transition=Jn,t.active=function(t,n){var e,r,i=t.__transition;if(i){n=null==n?null:n+"";for(r in i)if((e=i[r]).state>Ol&&e.name===n)return new Gn([[t]],mh,n,+r)}return null},t.interrupt=Xl,t.voronoi=function(){function t(t){return new ns(t.map(function(r,i){var o=[Math.round(n(r,i,t)/_m)*_m,Math.round(e(r,i,t)/_m)*_m];return o.index=i,o.data=r,o}),r)}var n=Tc,e=Nc,r=null;return t.polygons=function(n){return t(n).polygons()},t.links=function(n){return t(n).links()},t.triangles=function(n){return t(n).triangles()},t.x=function(e){return arguments.length?(n="function"==typeof e?e:cm(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:cm(+n),t):e},t.extent=function(n){return arguments.length?(r=null==n?null:[[+n[0][0],+n[0][1]],[+n[1][0],+n[1][1]]],t):r&&[[r[0][0],r[0][1]],[r[1][0],r[1][1]]]},t.size=function(n){return arguments.length?(r=null==n?null:[[0,0],[+n[0],+n[1]]],t):r&&[r[1][0]-r[0][0],r[1][1]-r[0][1]]},t},t.zoom=function(){function n(t){t.property("__zoom",cs).on("wheel.zoom",s).on("mousedown.zoom",f).on("dblclick.zoom",l).filter(b).on("touchstart.zoom",p).on("touchmove.zoom",d).on("touchend.zoom touchcancel.zoom",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(t,n){return(n=Math.max(w,Math.min(M,n)))===t.k?t:new rs(n,t.x,t.y)}function r(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new rs(t.k,r,i)}function i(t,n){var e=t.invertX(n[0][0])-T,r=t.invertX(n[1][0])-N,i=t.invertY(n[0][1])-S,o=t.invertY(n[1][1])-E;return t.translate(r>e?(e+r)/2:Math.min(0,e)||Math.max(0,r),o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o))}function o(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function u(t,n,e){t.on("start.zoom",function(){a(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){a(this,arguments).end()}).tween("zoom",function(){var t=this,r=arguments,i=a(t,r),u=m.apply(t,r),c=e||o(u),s=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),f=t.__zoom,l="function"==typeof n?n.apply(t,r):n,h=C(f.invert(c).concat(s/f.k),l.invert(c).concat(s/l.k));return function(t){if(1===t)t=l;else{var n=h(t),e=s/n[2];t=new rs(e,c[0]-n[0]*e,c[1]-n[1]*e)}i.zoom(null,t)}})}function a(t,n){for(var e,r=0,i=z.length;r<i;++r)if((e=z[r]).that===t)return e;return new c(t,n)}function c(t,n){this.that=t,this.args=n,this.index=-1,this.active=0,this.extent=m.apply(t,n)}function s(){if(y.apply(this,arguments)){var t=a(this,arguments),n=this.__zoom,o=Math.max(w,Math.min(M,n.k*Math.pow(2,x.apply(this,arguments)))),u=nf(this);if(t.wheel)t.mouse[0][0]===u[0]&&t.mouse[0][1]===u[1]||(t.mouse[1]=n.invert(t.mouse[0]=u)),clearTimeout(t.wheel);else{if(n.k===o)return;t.mouse=[u,n.invert(u)],Xl(this),t.start()}xm(),t.wheel=setTimeout(function(){t.wheel=null,t.end()},L),t.zoom("mouse",i(r(e(n,o),t.mouse[0],t.mouse[1]),t.extent))}}function f(){if(!g&&y.apply(this,arguments)){var n=a(this,arguments),e=ff(t.event.view).on("mousemove.zoom",function(){if(xm(),!n.moved){var e=t.event.clientX-u,o=t.event.clientY-c;n.moved=e*e+o*o>q}n.zoom("mouse",i(r(n.that.__zoom,n.mouse[0]=nf(n.that),n.mouse[1]),n.extent))},!0).on("mouseup.zoom",function(){e.on("mousemove.zoom mouseup.zoom",null),_t(t.event.view,n.moved),xm(),n.end()},!0),o=nf(this),u=t.event.clientX,c=t.event.clientY;pf(t.event.view),os(),n.mouse=[o,this.__zoom.invert(o)],Xl(this),n.start()}}function l(){if(y.apply(this,arguments)){var o=this.__zoom,a=nf(this),c=o.invert(a),s=i(r(e(o,o.k*(t.event.shiftKey?.5:2)),a,c),m.apply(this,arguments));xm(),A>0?ff(this).transition().duration(A).call(u,s,a):ff(this).call(n.transform,s)}}function p(){if(y.apply(this,arguments)){var n,e,r,i,o=a(this,arguments),u=t.event.changedTouches,c=u.length;for(os(),e=0;e<c;++e)r=u[e],i=[i=lf(this,u,r.identifier),this.__zoom.invert(i),r.identifier],o.touch0?o.touch1||(o.touch1=i):(o.touch0=i,n=!0);if(_&&(_=clearTimeout(_),!o.touch1))return o.end(),void((i=ff(this).on("dblclick.zoom"))&&i.apply(this,arguments));n&&(_=setTimeout(function(){_=null},R),Xl(this),o.start())}}function d(){var n,o,u,c,s=a(this,arguments),f=t.event.changedTouches,l=f.length;for(xm(),_&&(_=clearTimeout(_)),n=0;n<l;++n)o=f[n],u=lf(this,f,o.identifier),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=u:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=u);if(o=s.that.__zoom,s.touch1){var h=s.touch0[0],p=s.touch0[1],d=s.touch1[0],v=s.touch1[1],g=(g=d[0]-h[0])*g+(g=d[1]-h[1])*g,y=(y=v[0]-p[0])*y+(y=v[1]-p[1])*y;o=e(o,Math.sqrt(g/y)),u=[(h[0]+d[0])/2,(h[1]+d[1])/2],c=[(p[0]+v[0])/2,(p[1]+v[1])/2]}else{if(!s.touch0)return;u=s.touch0[0],c=s.touch0[1]}s.zoom("touch",i(r(o,u,c),s.extent))}function v(){var n,e,r=a(this,arguments),i=t.event.changedTouches,o=i.length;for(os(),g&&clearTimeout(g),g=setTimeout(function(){g=null},R),n=0;n<o;++n)e=i[n],r.touch0&&r.touch0[2]===e.identifier?delete r.touch0:r.touch1&&r.touch1[2]===e.identifier&&delete r.touch1;r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0?r.touch0[1]=this.__zoom.invert(r.touch0[0]):r.end()}var _,g,y=us,m=as,x=ss,b=fs,w=0,M=1/0,T=-M,N=M,S=T,E=N,A=250,C=yl,z=[],P=h("start","zoom","end"),R=500,L=150,q=0;return n.transform=function(t,n){var e=t.selection?t.selection():t;e.property("__zoom",cs),t!==e?u(t,n):e.interrupt().each(function(){a(this,arguments).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},n.scaleBy=function(t,e){n.scaleTo(t,function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)})},n.scaleTo=function(t,u){n.transform(t,function(){var t=m.apply(this,arguments),n=this.__zoom,a=o(t),c=n.invert(a);return i(r(e(n,"function"==typeof u?u.apply(this,arguments):u),a,c),t)})},n.translateBy=function(t,e,r){n.transform(t,function(){return i(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof r?r.apply(this,arguments):r),m.apply(this,arguments))})},n.translateTo=function(t,e,r){n.transform(t,function(){var t=m.apply(this,arguments),n=this.__zoom,u=o(t);return i(mm.translate(u[0],u[1]).scale(n.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof r?-r.apply(this,arguments):-r),t)})},c.prototype={start:function(){return 1==++this.active&&(this.index=z.push(this)-1,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(z.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(t){k(new es(n,t,this.that.__zoom),P.apply,P,[t,this.that,this.args])}},n.wheelDelta=function(t){return arguments.length?(x="function"==typeof t?t:ym(+t),n):x},n.filter=function(t){return arguments.length?(y="function"==typeof t?t:ym(!!t),n):y},n.touchable=function(t){return arguments.length?(b="function"==typeof t?t:ym(!!t),n):b},n.extent=function(t){return arguments.length?(m="function"==typeof t?t:ym([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),n):m},n.scaleExtent=function(t){return arguments.length?(w=+t[0],M=+t[1],n):[w,M]},n.translateExtent=function(t){return arguments.length?(T=+t[0][0],N=+t[1][0],S=+t[0][1],E=+t[1][1],n):[[T,S],[N,E]]},n.duration=function(t){return arguments.length?(A=+t,n):A},n.interpolate=function(t){return arguments.length?(C=t,n):C},n.on=function(){var t=P.on.apply(P,arguments);return t===P?n:t},n.clickDistance=function(t){return arguments.length?(q=(t=+t)*t,n):Math.sqrt(q)},n},t.zoomTransform=is,t.zoomIdentity=mm,Object.defineProperty(t,"__esModule",{value:!0})});
<!DOCTYPE HTML>
<html>
<head>
<title>US Federal Budget Balance, 1968-2017</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=960" />
<script src="d3.min.js"></script>
<script src="sankey.js"></script>
<script src="d3-simple-slider.min.js"></script>
<style type="text/css">
.node rect {
fill-opacity: .9;
shape-rendering: crispEdges;
}
.node text {
pointer-events: none;
text-shadow: 0px 0px 2px #fff;
font-weight: 1000;
}
.link {
fill: none;
stroke: #000;
stroke-opacity: .4;
}
.line {
fill: none;
stroke-width: 3px;
opacity: .3;
}
.thisYearLine line {
fill: none;
stroke: steelblue;
stroke-width: 1;
opacity: 0.5;
}
</style>
</head>
<body>
<div id="barsContainer" class="container">
<div class="row align-items-center">
<div id="slider"></div>
</div>
</div>
<div id="sankeyContainer" class="container">
</div>
<div id="linesContainer" class="container">
</div>
<script src="budget-dashboard.js"></script>
</body>
</html>
d3.sankey = function() {
var sankey = {},
nodeWidth = 24,
nodePadding = 8,
size = [1, 1],
nodes = [],
links = [];
sankey.nodeWidth = function(_) {
if (!arguments.length) return nodeWidth;
nodeWidth = +_;
return sankey;
};
sankey.nodePadding = function(_) {
if (!arguments.length) return nodePadding;
nodePadding = +_;
return sankey;
};
sankey.nodes = function(_) {
if (!arguments.length) return nodes;
nodes = _;
return sankey;
};
sankey.links = function(_) {
if (!arguments.length) return links;
links = _;
return sankey;
};
sankey.size = function(_) {
if (!arguments.length) return size;
size = _;
return sankey;
};
sankey.layout = function(iterations) {
computeNodeLinks();
computeNodeValues();
computeNodeBreadths();
computeNodeDepths(iterations);
computeLinkDepths();
return sankey;
};
sankey.relayout = function() {
computeLinkDepths();
return sankey;
};
sankey.link = function() {
var curvature = .5;
function link(d) {
var x0 = d.source.x + d.source.dx,
x1 = d.target.x,
xi = d3.interpolateNumber(x0, x1),
x2 = xi(curvature),
x3 = xi(1 - curvature),
y0 = d.source.y + d.sy + d.dy / 2,
y1 = d.target.y + d.ty + d.dy / 2;
return "M" + x0 + "," + y0
+ "C" + x2 + "," + y0
+ " " + x3 + "," + y1
+ " " + x1 + "," + y1;
}
link.curvature = function(_) {
if (!arguments.length) return curvature;
curvature = +_;
return link;
};
return link;
};
// Populate the sourceLinks and targetLinks for each node.
// Also, if the source and target are not objects, assume they are indices.
function computeNodeLinks() {
nodes.forEach(function(node) {
node.sourceLinks = [];
node.targetLinks = [];
});
links.forEach(function(link) {
var source = link.source,
target = link.target;
if (typeof source === "number") source = link.source = nodes[link.source];
if (typeof target === "number") target = link.target = nodes[link.target];
source.sourceLinks.push(link);
target.targetLinks.push(link);
});
}
// Compute the value (size) of each node by summing the associated links.
function computeNodeValues() {
nodes.forEach(function(node) {
node.value = Math.max(
d3.sum(node.sourceLinks, value),
d3.sum(node.targetLinks, value)
);
});
}
// Iteratively assign the breadth (x-position) for each node.
// Nodes are assigned the maximum breadth of incoming neighbors plus one;
// nodes with no incoming links are assigned breadth zero, while
// nodes with no outgoing links are assigned the maximum breadth.
function computeNodeBreadths() {
var remainingNodes = nodes,
nextNodes,
x = 0;
while (remainingNodes.length) {
nextNodes = [];
remainingNodes.forEach(function(node) {
node.x = x;
node.dx = nodeWidth;
node.sourceLinks.forEach(function(link) {
if (nextNodes.indexOf(link.target) < 0) {
nextNodes.push(link.target);
}
});
});
remainingNodes = nextNodes;
++x;
}
//
moveSinksRight(x);
scaleNodeBreadths((size[0] - nodeWidth) / (x - 1));
}
function moveSourcesRight() {
nodes.forEach(function(node) {
if (!node.targetLinks.length) {
node.x = d3.min(node.sourceLinks, function(d) { return d.target.x; }) - 1;
}
});
}
function moveSinksRight(x) {
nodes.forEach(function(node) {
if (!node.sourceLinks.length) {
node.x = x - 1;
}
});
}
function scaleNodeBreadths(kx) {
nodes.forEach(function(node) {
node.x *= kx;
});
}
function computeNodeDepths(iterations) {
var nodesByBreadth = d3.nest()
.key(function(d) { return d.x; })
.sortKeys(d3.ascending)
.entries(nodes)
.map(function(d) { return d.values; });
//
initializeNodeDepth();
resolveCollisions();
for (var alpha = 1; iterations > 0; --iterations) {
relaxRightToLeft(alpha *= .99);
resolveCollisions();
relaxLeftToRight(alpha);
resolveCollisions();
}
function initializeNodeDepth() {
var ky = d3.min(nodesByBreadth, function(nodes) {
return (size[1] - (nodes.length - 1) * nodePadding) / d3.sum(nodes, value);
});
nodesByBreadth.forEach(function(nodes) {
nodes.forEach(function(node, i) {
node.y = i;
node.dy = node.value * ky;
});
});
links.forEach(function(link) {
link.dy = link.value * ky;
});
}
function relaxLeftToRight(alpha) {
nodesByBreadth.forEach(function(nodes, breadth) {
nodes.forEach(function(node) {
if (node.targetLinks.length) {
var y = d3.sum(node.targetLinks, weightedSource) / d3.sum(node.targetLinks, value);
node.y += (y - center(node)) * alpha;
}
});
});
function weightedSource(link) {
return center(link.source) * link.value;
}
}
function relaxRightToLeft(alpha) {
nodesByBreadth.slice().reverse().forEach(function(nodes) {
nodes.forEach(function(node) {
if (node.sourceLinks.length) {
var y = d3.sum(node.sourceLinks, weightedTarget) / d3.sum(node.sourceLinks, value);
node.y += (y - center(node)) * alpha;
}
});
});
function weightedTarget(link) {
return center(link.target) * link.value;
}
}
function resolveCollisions() {
nodesByBreadth.forEach(function(nodes) {
var node,
dy,
y0 = 0,
n = nodes.length,
i;
// Push any overlapping nodes down.
nodes.sort(ascendingDepth);
for (i = 0; i < n; ++i) {
node = nodes[i];
dy = y0 - node.y;
if (dy > 0) node.y += dy;
y0 = node.y + node.dy + nodePadding;
}
// If the bottommost node goes outside the bounds, push it back up.
dy = y0 - nodePadding - size[1];
if (dy > 0) {
y0 = node.y -= dy;
// Push any overlapping nodes back up.
for (i = n - 2; i >= 0; --i) {
node = nodes[i];
dy = node.y + node.dy + nodePadding - y0;
if (dy > 0) node.y -= dy;
y0 = node.y;
}
}
});
}
function ascendingDepth(a, b) {
return a.y - b.y;
}
}
function computeLinkDepths() {
nodes.forEach(function(node) {
node.sourceLinks.sort(ascendingTargetDepth);
node.targetLinks.sort(ascendingSourceDepth);
});
nodes.forEach(function(node) {
var sy = 0, ty = 0;
node.sourceLinks.forEach(function(link) {
link.sy = sy;
sy += link.dy;
});
node.targetLinks.forEach(function(link) {
link.ty = ty;
ty += link.dy;
});
});
function ascendingSourceDepth(a, b) {
return a.source.y - b.source.y;
}
function ascendingTargetDepth(a, b) {
return a.target.y - b.target.y;
}
}
function center(node) {
return node.y + node.dy / 2;
}
function value(link) {
return link.value;
}
return sankey;
};
year Balance Revenue Spending
1968 -2.798 17.01 -19.808
1969 0.33 19.025 -18.695
1970 -0.271 18.379 -18.6497
1971 -2.058 16.719 -18.777
1972 -1.917 17 -18.917
1973 -1.099 17.02 -18.12
1974 -0.413 17.711 -18.124
1975 -3.306 17.328 -20.634
1976 -4.118 16.649 -20.767
1977 -2.645 17.529 -20.175
1978 -2.598 17.538 -20.136
1979 -1.585 18.027 -19.612
1980 -2.64 18.49 -21.129
1981 -2.516 19.095 -21.611
1982 -3.862 18.642 -22.503
1983 -5.868 16.96 -22.828
1984 -4.689 16.86 -21.549
1985 -4.972 17.189 -22.161
1986 -4.877 16.956 -21.834
1987 -3.131 17.865 -20.996
1988 -3.01 17.638 -20.648
1989 -2.74 17.794 -20.534
1990 -3.737 17.448 -21.185
1991 -4.406 17.266 -21.673
1992 -4.512 16.958 -21.47
1993 -3.754 16.988 -20.742
1994 -2.823 17.485 -20.308
1995 -2.162 17.826 -19.988
1996 -1.347 18.213 -19.559
1997 -0.258 18.616 -18.874
1998 0.774 19.227 -18.453
1999 1.321 19.215 -17.894
2000 2.328 19.956 -17.628
2001 1.214 18.847 -17.633
2002 -1.45 17.037 -18.488
2003 -3.332 15.728 -19.059
2004 -3.414 15.553 -18.967
2005 -2.47 16.709 -19.179
2006 -1.814 17.588 -19.402
2007 -1.122 17.929 -19.051
2008 -3.108 17.109 -20.217
2009 -9.8 14.603 -24.404
2010 -8.747 14.614 -23.361
2011 -8.45 14.978 -23.428
2012 -6.782 15.286 -22.068
2013 -4.114 16.803 -20.917
2014 -2.81 17.522 -20.333
2015 -2.438 18.072 -20.511
2016 -3.165 17.693 -20.859
2017 -3.469 17.291 -20.761
spending deficit year
20.989 -2.798 1968
19.815 0.33 1969
19.7447 -0.271 1970
20.034 -2.058 1971
20.075 -1.917 1972
19.449 -1.099 1973
19.547 -0.413 1974
21.771 -3.306 1975
21.862 -4.118 1976
21.235 -2.645 1977
21.138 -2.598 1978
20.608 -1.585 1979
22.171 -2.64 1980
22.817 -2.516 1981
23.59 -3.862 1982
24.108 -5.868 1983
22.668 -4.689 1984
23.264 -4.972 1985
22.845 -4.877 1986
22.103 -3.131 1987
21.75 -3.01 1988
21.614 -2.74 1989
22.158 -3.737 1990
23.399 -4.406 1991
22.547 -4.512 1992
21.712 -3.754 1993
21.26 -2.823 1994
21.025 -2.162 1995
20.449 -1.347 1996
19.881 -0.258 1997
19.386 0.774 1998
18.73 1.321 1999
18.427 2.328 2000
18.479 1.214 2001
19.319 -1.45 2002
19.95 -3.332 2003
19.868 -3.414 2004
20.177 -2.47 2005
20.457 -1.814 2006
20.293 -1.122 2007
21.474 -3.108 2008
25.7539 -9.8 2009
24.689 -8.747 2010
24.786 -8.45 2011
23.492 -6.782 2012
22.762 -4.114 2013
21.941 -2.81 2014
21.948 -2.438 2015
22.145 -3.165 2016
22.08 -3.469 2017
source target year value type
Corporate Tax Revenue 1968 3.2 Revenue
Corporate Tax Revenue 1969 3.7 Revenue
Corporate Tax Revenue 1970 3.1 Revenue
Corporate Tax Revenue 1971 2.4 Revenue
Corporate Tax Revenue 1972 2.6 Revenue
Corporate Tax Revenue 1973 2.7 Revenue
Corporate Tax Revenue 1974 2.6 Revenue
Corporate Tax Revenue 1975 2.5 Revenue
Corporate Tax Revenue 1976 2.3 Revenue
Corporate Tax Revenue 1977 2.7 Revenue
Corporate Tax Revenue 1978 2.6 Revenue
Corporate Tax Revenue 1979 2.6 Revenue
Corporate Tax Revenue 1980 2.3 Revenue
Corporate Tax Revenue 1981 1.9 Revenue
Corporate Tax Revenue 1982 1.5 Revenue
Corporate Tax Revenue 1983 1 Revenue
Corporate Tax Revenue 1984 1.4 Revenue
Corporate Tax Revenue 1985 1.4 Revenue
Corporate Tax Revenue 1986 1.4 Revenue
Corporate Tax Revenue 1987 1.8 Revenue
Corporate Tax Revenue 1988 1.8 Revenue
Corporate Tax Revenue 1989 1.9 Revenue
Corporate Tax Revenue 1990 1.6 Revenue
Corporate Tax Revenue 1991 1.6 Revenue
Corporate Tax Revenue 1992 1.6 Revenue
Corporate Tax Revenue 1993 1.7 Revenue
Corporate Tax Revenue 1994 2 Revenue
Corporate Tax Revenue 1995 2.1 Revenue
Corporate Tax Revenue 1996 2.2 Revenue
Corporate Tax Revenue 1997 2.1 Revenue
Corporate Tax Revenue 1998 2.1 Revenue
Corporate Tax Revenue 1999 1.9 Revenue
Corporate Tax Revenue 2000 2 Revenue
Corporate Tax Revenue 2001 1.4 Revenue
Corporate Tax Revenue 2002 1.4 Revenue
Corporate Tax Revenue 2003 1.2 Revenue
Corporate Tax Revenue 2004 1.6 Revenue
Corporate Tax Revenue 2005 2.2 Revenue
Corporate Tax Revenue 2006 2.6 Revenue
Corporate Tax Revenue 2007 2.6 Revenue
Corporate Tax Revenue 2008 2.1 Revenue
Corporate Tax Revenue 2009 1 Revenue
Corporate Tax Revenue 2010 1.3 Revenue
Corporate Tax Revenue 2011 1.2 Revenue
Corporate Tax Revenue 2012 1.5 Revenue
Corporate Tax Revenue 2013 1.7 Revenue
Corporate Tax Revenue 2014 1.9 Revenue
Corporate Tax Revenue 2015 1.9 Revenue
Corporate Tax Revenue 2016 1.6 Revenue
Corporate Tax Revenue 2017 1.5 Revenue
Customs Duties Revenue 1968 0.2 Revenue
Customs Duties Revenue 1969 0.2 Revenue
Customs Duties Revenue 1970 0.2 Revenue
Customs Duties Revenue 1971 0.2 Revenue
Customs Duties Revenue 1972 0.3 Revenue
Customs Duties Revenue 1973 0.2 Revenue
Customs Duties Revenue 1974 0.2 Revenue
Customs Duties Revenue 1975 0.2 Revenue
Customs Duties Revenue 1976 0.2 Revenue
Customs Duties Revenue 1977 0.3 Revenue
Customs Duties Revenue 1978 0.3 Revenue
Customs Duties Revenue 1979 0.3 Revenue
Customs Duties Revenue 1980 0.3 Revenue
Customs Duties Revenue 1981 0.3 Revenue
Customs Duties Revenue 1982 0.3 Revenue
Customs Duties Revenue 1983 0.2 Revenue
Customs Duties Revenue 1984 0.3 Revenue
Customs Duties Revenue 1985 0.3 Revenue
Customs Duties Revenue 1986 0.3 Revenue
Customs Duties Revenue 1987 0.3 Revenue
Customs Duties Revenue 1988 0.3 Revenue
Customs Duties Revenue 1989 0.3 Revenue
Customs Duties Revenue 1990 0.3 Revenue
Customs Duties Revenue 1991 0.3 Revenue
Customs Duties Revenue 1992 0.3 Revenue
Customs Duties Revenue 1993 0.3 Revenue
Customs Duties Revenue 1994 0.3 Revenue
Customs Duties Revenue 1995 0.3 Revenue
Customs Duties Revenue 1996 0.2 Revenue
Customs Duties Revenue 1997 0.2 Revenue
Customs Duties Revenue 1998 0.2 Revenue
Customs Duties Revenue 1999 0.2 Revenue
Customs Duties Revenue 2000 0.2 Revenue
Customs Duties Revenue 2001 0.2 Revenue
Customs Duties Revenue 2002 0.2 Revenue
Customs Duties Revenue 2003 0.2 Revenue
Customs Duties Revenue 2004 0.2 Revenue
Customs Duties Revenue 2005 0.2 Revenue
Customs Duties Revenue 2006 0.2 Revenue
Customs Duties Revenue 2007 0.2 Revenue
Customs Duties Revenue 2008 0.2 Revenue
Customs Duties Revenue 2009 0.2 Revenue
Customs Duties Revenue 2010 0.2 Revenue
Customs Duties Revenue 2011 0.2 Revenue
Customs Duties Revenue 2012 0.2 Revenue
Customs Duties Revenue 2013 0.2 Revenue
Customs Duties Revenue 2014 0.2 Revenue
Customs Duties Revenue 2015 0.2 Revenue
Customs Duties Revenue 2016 0.2 Revenue
Customs Duties Revenue 2017 0.2 Revenue
Discretionary Defense 1968 9.1 Spending
Discretionary Defense 1969 8.4 Spending
Discretionary Defense 1970 7.8 Spending
Discretionary Defense 1971 7.1 Spending
Discretionary Defense 1972 6.5 Spending
Discretionary Defense 1973 5.7 Spending
Discretionary Defense 1974 5.4 Spending
Discretionary Defense 1975 5.4 Spending
Discretionary Defense 1976 5 Spending
Discretionary Defense 1977 4.8 Spending
Discretionary Defense 1978 4.6 Spending
Discretionary Defense 1979 4.5 Spending
Discretionary Defense 1980 4.8 Spending
Discretionary Defense 1981 5 Spending
Discretionary Defense 1982 5.6 Spending
Discretionary Defense 1983 5.9 Spending
Discretionary Defense 1984 5.8 Spending
Discretionary Defense 1985 5.9 Spending
Discretionary Defense 1986 6 Spending
Discretionary Defense 1987 5.9 Spending
Discretionary Defense 1988 5.6 Spending
Discretionary Defense 1989 5.5 Spending
Discretionary Defense 1990 5.1 Spending
Discretionary Defense 1991 5.2 Spending
Discretionary Defense 1992 4.7 Spending
Discretionary Defense 1993 4.3 Spending
Discretionary Defense 1994 3.9 Spending
Discretionary Defense 1995 3.6 Spending
Discretionary Defense 1996 3.3 Spending
Discretionary Defense 1997 3.2 Spending
Discretionary Defense 1998 3 Spending
Discretionary Defense 1999 2.9 Spending
Discretionary Defense 2000 2.9 Spending
Discretionary Defense 2001 2.9 Spending
Discretionary Defense 2002 3.2 Spending
Discretionary Defense 2003 3.6 Spending
Discretionary Defense 2004 3.8 Spending
Discretionary Defense 2005 3.8 Spending
Discretionary Defense 2006 3.8 Spending
Discretionary Defense 2007 3.8 Spending
Discretionary Defense 2008 4.2 Spending
Discretionary Defense 2009 4.6 Spending
Discretionary Defense 2010 4.7 Spending
Discretionary Defense 2011 4.5 Spending
Discretionary Defense 2012 4.2 Spending
Discretionary Defense 2013 3.8 Spending
Discretionary Defense 2014 3.5 Spending
Discretionary Defense 2015 3.2 Spending
Discretionary Defense 2016 3.2 Spending
Discretionary Defense 2017 3.1 Spending
Discretionary Nondefense 1968 4 Spending
Discretionary Nondefense 1969 3.5 Spending
Discretionary Nondefense 1970 3.7 Spending
Discretionary Nondefense 1971 3.9 Spending
Discretionary Nondefense 1972 4 Spending
Discretionary Nondefense 1973 3.9 Spending
Discretionary Nondefense 1974 3.9 Spending
Discretionary Nondefense 1975 4.4 Spending
Discretionary Nondefense 1976 4.8 Spending
Discretionary Nondefense 1977 4.9 Spending
Discretionary Nondefense 1978 5 Spending
Discretionary Nondefense 1979 4.8 Spending
Discretionary Nondefense 1980 5.1 Spending
Discretionary Nondefense 1981 4.8 Spending
Discretionary Nondefense 1982 4.2 Spending
Discretionary Nondefense 1983 4.1 Spending
Discretionary Nondefense 1984 3.8 Spending
Discretionary Nondefense 1985 3.8 Spending
Discretionary Nondefense 1986 3.6 Spending
Discretionary Nondefense 1987 3.4 Spending
Discretionary Nondefense 1988 3.4 Spending
Discretionary Nondefense 1989 3.3 Spending
Discretionary Nondefense 1990 3.4 Spending
Discretionary Nondefense 1991 3.5 Spending
Discretionary Nondefense 1992 3.6 Spending
Discretionary Nondefense 1993 3.6 Spending
Discretionary Nondefense 1994 3.6 Spending
Discretionary Nondefense 1995 3.6 Spending
Discretionary Nondefense 1996 3.3 Spending
Discretionary Nondefense 1997 3.2 Spending
Discretionary Nondefense 1998 3.1 Spending
Discretionary Nondefense 1999 3.1 Spending
Discretionary Nondefense 2000 3.1 Spending
Discretionary Nondefense 2001 3.2 Spending
Discretionary Nondefense 2002 3.5 Spending
Discretionary Nondefense 2003 3.7 Spending
Discretionary Nondefense 2004 3.6 Spending
Discretionary Nondefense 2005 3.7 Spending
Discretionary Nondefense 2006 3.6 Spending
Discretionary Nondefense 2007 3.4 Spending
Discretionary Nondefense 2008 3.5 Spending
Discretionary Nondefense 2009 4 Spending
Discretionary Nondefense 2010 4.4 Spending
Discretionary Nondefense 2011 4.2 Spending
Discretionary Nondefense 2012 3.8 Spending
Discretionary Nondefense 2013 3.5 Spending
Discretionary Nondefense 2014 3.4 Spending
Discretionary Nondefense 2015 3.3 Spending
Discretionary Nondefense 2016 3.3 Spending
Discretionary Nondefense 2017 3.2 Spending
Estate/Gift Tax Revenue 1968 0.3 Revenue
Estate/Gift Tax Revenue 1969 0.4 Revenue
Estate/Gift Tax Revenue 1970 0.3 Revenue
Estate/Gift Tax Revenue 1971 0.3 Revenue
Estate/Gift Tax Revenue 1972 0.4 Revenue
Estate/Gift Tax Revenue 1973 0.4 Revenue
Estate/Gift Tax Revenue 1974 0.3 Revenue
Estate/Gift Tax Revenue 1975 0.3 Revenue
Estate/Gift Tax Revenue 1976 0.3 Revenue
Estate/Gift Tax Revenue 1977 0.4 Revenue
Estate/Gift Tax Revenue 1978 0.2 Revenue
Estate/Gift Tax Revenue 1979 0.2 Revenue
Estate/Gift Tax Revenue 1980 0.2 Revenue
Estate/Gift Tax Revenue 1981 0.2 Revenue
Estate/Gift Tax Revenue 1982 0.2 Revenue
Estate/Gift Tax Revenue 1983 0.2 Revenue
Estate/Gift Tax Revenue 1984 0.2 Revenue
Estate/Gift Tax Revenue 1985 0.2 Revenue
Estate/Gift Tax Revenue 1986 0.2 Revenue
Estate/Gift Tax Revenue 1987 0.2 Revenue
Estate/Gift Tax Revenue 1988 0.1 Revenue
Estate/Gift Tax Revenue 1989 0.2 Revenue
Estate/Gift Tax Revenue 1990 0.2 Revenue
Estate/Gift Tax Revenue 1991 0.2 Revenue
Estate/Gift Tax Revenue 1992 0.2 Revenue
Estate/Gift Tax Revenue 1993 0.2 Revenue
Estate/Gift Tax Revenue 1994 0.2 Revenue
Estate/Gift Tax Revenue 1995 0.2 Revenue
Estate/Gift Tax Revenue 1996 0.2 Revenue
Estate/Gift Tax Revenue 1997 0.2 Revenue
Estate/Gift Tax Revenue 1998 0.3 Revenue
Estate/Gift Tax Revenue 1999 0.3 Revenue
Estate/Gift Tax Revenue 2000 0.3 Revenue
Estate/Gift Tax Revenue 2001 0.3 Revenue
Estate/Gift Tax Revenue 2002 0.2 Revenue
Estate/Gift Tax Revenue 2003 0.2 Revenue
Estate/Gift Tax Revenue 2004 0.2 Revenue
Estate/Gift Tax Revenue 2005 0.2 Revenue
Estate/Gift Tax Revenue 2006 0.2 Revenue
Estate/Gift Tax Revenue 2007 0.2 Revenue
Estate/Gift Tax Revenue 2008 0.2 Revenue
Estate/Gift Tax Revenue 2009 0.2 Revenue
Estate/Gift Tax Revenue 2010 0.1 Revenue
Estate/Gift Tax Revenue 2011 0.1 Revenue
Estate/Gift Tax Revenue 2012 0.1 Revenue
Estate/Gift Tax Revenue 2013 0.1 Revenue
Estate/Gift Tax Revenue 2014 0.1 Revenue
Estate/Gift Tax Revenue 2015 0.1 Revenue
Estate/Gift Tax Revenue 2016 0.1 Revenue
Estate/Gift Tax Revenue 2017 0.1 Revenue
Excise Tax Revenue 1968 1.6 Revenue
Excise Tax Revenue 1969 1.5 Revenue
Excise Tax Revenue 1970 1.5 Revenue
Excise Tax Revenue 1971 1.5 Revenue
Excise Tax Revenue 1972 1.3 Revenue
Excise Tax Revenue 1973 1.2 Revenue
Excise Tax Revenue 1974 1.1 Revenue
Excise Tax Revenue 1975 1 Revenue
Excise Tax Revenue 1976 0.9 Revenue
Excise Tax Revenue 1977 0.9 Revenue
Excise Tax Revenue 1978 0.8 Revenue
Excise Tax Revenue 1979 0.7 Revenue
Excise Tax Revenue 1980 0.9 Revenue
Excise Tax Revenue 1981 1.3 Revenue
Excise Tax Revenue 1982 1.1 Revenue
Excise Tax Revenue 1983 1 Revenue
Excise Tax Revenue 1984 0.9 Revenue
Excise Tax Revenue 1985 0.8 Revenue
Excise Tax Revenue 1986 0.7 Revenue
Excise Tax Revenue 1987 0.7 Revenue
Excise Tax Revenue 1988 0.7 Revenue
Excise Tax Revenue 1989 0.6 Revenue
Excise Tax Revenue 1990 0.6 Revenue
Excise Tax Revenue 1991 0.7 Revenue
Excise Tax Revenue 1992 0.7 Revenue
Excise Tax Revenue 1993 0.7 Revenue
Excise Tax Revenue 1994 0.8 Revenue
Excise Tax Revenue 1995 0.8 Revenue
Excise Tax Revenue 1996 0.7 Revenue
Excise Tax Revenue 1997 0.7 Revenue
Excise Tax Revenue 1998 0.6 Revenue
Excise Tax Revenue 1999 0.7 Revenue
Excise Tax Revenue 2000 0.7 Revenue
Excise Tax Revenue 2001 0.6 Revenue
Excise Tax Revenue 2002 0.6 Revenue
Excise Tax Revenue 2003 0.6 Revenue
Excise Tax Revenue 2004 0.6 Revenue
Excise Tax Revenue 2005 0.6 Revenue
Excise Tax Revenue 2006 0.5 Revenue
Excise Tax Revenue 2007 0.5 Revenue
Excise Tax Revenue 2008 0.5 Revenue
Excise Tax Revenue 2009 0.4 Revenue
Excise Tax Revenue 2010 0.5 Revenue
Excise Tax Revenue 2011 0.5 Revenue
Excise Tax Revenue 2012 0.5 Revenue
Excise Tax Revenue 2013 0.5 Revenue
Excise Tax Revenue 2014 0.5 Revenue
Excise Tax Revenue 2015 0.5 Revenue
Excise Tax Revenue 2016 0.5 Revenue
Excise Tax Revenue 2017 0.4 Revenue
Income Tax Revenue 1968 7.6 Revenue
Income Tax Revenue 1969 8.9 Revenue
Income Tax Revenue 1970 8.6 Revenue
Income Tax Revenue 1971 7.7 Revenue
Income Tax Revenue 1972 7.8 Revenue
Income Tax Revenue 1973 7.6 Revenue
Income Tax Revenue 1974 8 Revenue
Income Tax Revenue 1975 7.6 Revenue
Income Tax Revenue 1976 7.4 Revenue
Income Tax Revenue 1977 7.8 Revenue
Income Tax Revenue 1978 7.9 Revenue
Income Tax Revenue 1979 8.5 Revenue
Income Tax Revenue 1980 8.7 Revenue
Income Tax Revenue 1981 9.1 Revenue
Income Tax Revenue 1982 9 Revenue
Income Tax Revenue 1983 8.2 Revenue
Income Tax Revenue 1984 7.5 Revenue
Income Tax Revenue 1985 7.8 Revenue
Income Tax Revenue 1986 7.7 Revenue
Income Tax Revenue 1987 8.2 Revenue
Income Tax Revenue 1988 7.8 Revenue
Income Tax Revenue 1989 8 Revenue
Income Tax Revenue 1990 7.9 Revenue
Income Tax Revenue 1991 7.7 Revenue
Income Tax Revenue 1992 7.4 Revenue
Income Tax Revenue 1993 7.5 Revenue
Income Tax Revenue 1994 7.5 Revenue
Income Tax Revenue 1995 7.8 Revenue
Income Tax Revenue 1996 8.2 Revenue
Income Tax Revenue 1997 8.7 Revenue
Income Tax Revenue 1998 9.3 Revenue
Income Tax Revenue 1999 9.2 Revenue
Income Tax Revenue 2000 9.9 Revenue
Income Tax Revenue 2001 9.4 Revenue
Income Tax Revenue 2002 7.9 Revenue
Income Tax Revenue 2003 7 Revenue
Income Tax Revenue 2004 6.7 Revenue
Income Tax Revenue 2005 7.2 Revenue
Income Tax Revenue 2006 7.6 Revenue
Income Tax Revenue 2007 8.1 Revenue
Income Tax Revenue 2008 7.8 Revenue
Income Tax Revenue 2009 6.3 Revenue
Income Tax Revenue 2010 6.1 Revenue
Income Tax Revenue 2011 7.1 Revenue
Income Tax Revenue 2012 7.1 Revenue
Income Tax Revenue 2013 8 Revenue
Income Tax Revenue 2014 8.1 Revenue
Income Tax Revenue 2015 8.6 Revenue
Income Tax Revenue 2016 8.4 Revenue
Income Tax Revenue 2017 8.3 Revenue
Mandatory** Federal Retirement 1968 0.6 Spending
Mandatory** Federal Retirement 1969 0.7 Spending
Mandatory** Federal Retirement 1970 0.7 Spending
Mandatory** Federal Retirement 1971 0.8 Spending
Mandatory** Federal Retirement 1972 0.9 Spending
Mandatory** Federal Retirement 1973 0.9 Spending
Mandatory** Federal Retirement 1974 1 Spending
Mandatory** Federal Retirement 1975 1.2 Spending
Mandatory** Federal Retirement 1976 1.1 Spending
Mandatory** Federal Retirement 1977 1.1 Spending
Mandatory** Federal Retirement 1978 1.1 Spending
Mandatory** Federal Retirement 1979 1.1 Spending
Mandatory** Federal Retirement 1980 1.2 Spending
Mandatory** Federal Retirement 1981 1.2 Spending
Mandatory** Federal Retirement 1982 1.3 Spending
Mandatory** Federal Retirement 1983 1.3 Spending
Mandatory** Federal Retirement 1984 1.2 Spending
Mandatory** Federal Retirement 1985 1.1 Spending
Mandatory** Federal Retirement 1986 1 Spending
Mandatory** Federal Retirement 1987 1.1 Spending
Mandatory** Federal Retirement 1988 1.1 Spending
Mandatory** Federal Retirement 1989 1 Spending
Mandatory** Federal Retirement 1990 1 Spending
Mandatory** Federal Retirement 1991 1.1 Spending
Mandatory** Federal Retirement 1992 1 Spending
Mandatory** Federal Retirement 1993 1 Spending
Mandatory** Federal Retirement 1994 1 Spending
Mandatory** Federal Retirement 1995 1 Spending
Mandatory** Federal Retirement 1996 1 Spending
Mandatory** Federal Retirement 1997 0.9 Spending
Mandatory** Federal Retirement 1998 0.9 Spending
Mandatory** Federal Retirement 1999 0.9 Spending
Mandatory** Federal Retirement 2000 0.9 Spending
Mandatory** Federal Retirement 2001 0.9 Spending
Mandatory** Federal Retirement 2002 0.9 Spending
Mandatory** Federal Retirement 2003 0.9 Spending
Mandatory** Federal Retirement 2004 0.9 Spending
Mandatory** Federal Retirement 2005 0.9 Spending
Mandatory** Federal Retirement 2006 0.8 Spending
Mandatory** Federal Retirement 2007 0.9 Spending
Mandatory** Federal Retirement 2008 0.9 Spending
Mandatory** Federal Retirement 2009 1 Spending
Mandatory** Federal Retirement 2010 0.9 Spending
Mandatory** Federal Retirement 2011 0.9 Spending
Mandatory** Federal Retirement 2012 0.9 Spending
Mandatory** Federal Retirement 2013 0.9 Spending
Mandatory** Federal Retirement 2014 0.9 Spending
Mandatory** Federal Retirement 2015 0.9 Spending
Mandatory** Federal Retirement 2016 0.9 Spending
Mandatory** Federal Retirement 2017 0.8 Spending
Mandatory** Income Security 1968 0.7 Spending
Mandatory** Income Security 1969 0.7 Spending
Mandatory** Income Security 1970 0.8 Spending
Mandatory** Income Security 1971 1.2 Spending
Mandatory** Income Security 1972 1.3 Spending
Mandatory** Income Security 1973 1.1 Spending
Mandatory** Income Security 1974 1.2 Spending
Mandatory** Income Security 1975 1.8 Spending
Mandatory** Income Security 1976 2.1 Spending
Mandatory** Income Security 1977 1.7 Spending
Mandatory** Income Security 1978 1.4 Spending
Mandatory** Income Security 1979 1.3 Spending
Mandatory** Income Security 1980 1.6 Spending
Mandatory** Income Security 1981 1.6 Spending
Mandatory** Income Security 1982 1.6 Spending
Mandatory** Income Security 1983 1.8 Spending
Mandatory** Income Security 1984 1.3 Spending
Mandatory** Income Security 1985 1.2 Spending
Mandatory** Income Security 1986 1.2 Spending
Mandatory** Income Security 1987 1.2 Spending
Mandatory** Income Security 1988 1.1 Spending
Mandatory** Income Security 1989 1.1 Spending
Mandatory** Income Security 1990 1.2 Spending
Mandatory** Income Security 1991 1.4 Spending
Mandatory** Income Security 1992 1.7 Spending
Mandatory** Income Security 1993 1.7 Spending
Mandatory** Income Security 1994 1.6 Spending
Mandatory** Income Security 1995 1.5 Spending
Mandatory** Income Security 1996 1.5 Spending
Mandatory** Income Security 1997 1.4 Spending
Mandatory** Income Security 1998 1.4 Spending
Mandatory** Income Security 1999 1.4 Spending
Mandatory** Income Security 2000 1.3 Spending
Mandatory** Income Security 2001 1.4 Spending
Mandatory** Income Security 2002 1.7 Spending
Mandatory** Income Security 2003 1.7 Spending
Mandatory** Income Security 2004 1.6 Spending
Mandatory** Income Security 2005 1.5 Spending
Mandatory** Income Security 2006 1.5 Spending
Mandatory** Income Security 2007 1.4 Spending
Mandatory** Income Security 2008 1.8 Spending
Mandatory** Income Security 2009 2.4 Spending
Mandatory** Income Security 2010 3 Spending
Mandatory** Income Security 2011 2.6 Spending
Mandatory** Income Security 2012 2.2 Spending
Mandatory** Income Security 2013 2.1 Spending
Mandatory** Income Security 2014 1.8 Spending
Mandatory** Income Security 2015 1.7 Spending
Mandatory** Income Security 2016 1.6 Spending
Mandatory** Income Security 2017 1.5 Spending
Mandatory** Medicaid 1968 0.2 Spending
Mandatory** Medicaid 1969 0.2 Spending
Mandatory** Medicaid 1970 0.3 Spending
Mandatory** Medicaid 1971 0.3 Spending
Mandatory** Medicaid 1972 0.4 Spending
Mandatory** Medicaid 1973 0.3 Spending
Mandatory** Medicaid 1974 0.4 Spending
Mandatory** Medicaid 1975 0.4 Spending
Mandatory** Medicaid 1976 0.5 Spending
Mandatory** Medicaid 1977 0.5 Spending
Mandatory** Medicaid 1978 0.5 Spending
Mandatory** Medicaid 1979 0.5 Spending
Mandatory** Medicaid 1980 0.5 Spending
Mandatory** Medicaid 1981 0.5 Spending
Mandatory** Medicaid 1982 0.5 Spending
Mandatory** Medicaid 1983 0.5 Spending
Mandatory** Medicaid 1984 0.5 Spending
Mandatory** Medicaid 1985 0.5 Spending
Mandatory** Medicaid 1986 0.6 Spending
Mandatory** Medicaid 1987 0.6 Spending
Mandatory** Medicaid 1988 0.6 Spending
Mandatory** Medicaid 1989 0.6 Spending
Mandatory** Medicaid 1990 0.7 Spending
Mandatory** Medicaid 1991 0.9 Spending
Mandatory** Medicaid 1992 1.1 Spending
Mandatory** Medicaid 1993 1.1 Spending
Mandatory** Medicaid 1994 1.1 Spending
Mandatory** Medicaid 1995 1.2 Spending
Mandatory** Medicaid 1996 1.2 Spending
Mandatory** Medicaid 1997 1.1 Spending
Mandatory** Medicaid 1998 1.1 Spending
Mandatory** Medicaid 1999 1.1 Spending
Mandatory** Medicaid 2000 1.2 Spending
Mandatory** Medicaid 2001 1.2 Spending
Mandatory** Medicaid 2002 1.4 Spending
Mandatory** Medicaid 2003 1.4 Spending
Mandatory** Medicaid 2004 1.5 Spending
Mandatory** Medicaid 2005 1.4 Spending
Mandatory** Medicaid 2006 1.3 Spending
Mandatory** Medicaid 2007 1.3 Spending
Mandatory** Medicaid 2008 1.4 Spending
Mandatory** Medicaid 2009 1.7 Spending
Mandatory** Medicaid 2010 1.8 Spending
Mandatory** Medicaid 2011 1.8 Spending
Mandatory** Medicaid 2012 1.6 Spending
Mandatory** Medicaid 2013 1.6 Spending
Mandatory** Medicaid 2014 1.7 Spending
Mandatory** Medicaid 2015 1.9 Spending
Mandatory** Medicaid 2016 2 Spending
Mandatory** Medicaid 2017 2 Spending
Mandatory** Medicare 1968 0.6 Spending
Mandatory** Medicare 1969 0.6 Spending
Mandatory** Medicare 1970 0.6 Spending
Mandatory** Medicare 1971 0.7 Spending
Mandatory** Medicare 1972 0.7 Spending
Mandatory** Medicare 1973 0.7 Spending
Mandatory** Medicare 1974 0.7 Spending
Mandatory** Medicare 1975 0.9 Spending
Mandatory** Medicare 1976 0.9 Spending
Mandatory** Medicare 1977 1 Spending
Mandatory** Medicare 1978 1.1 Spending
Mandatory** Medicare 1979 1.1 Spending
Mandatory** Medicare 1980 1.2 Spending
Mandatory** Medicare 1981 1.3 Spending
Mandatory** Medicare 1982 1.5 Spending
Mandatory** Medicare 1983 1.6 Spending
Mandatory** Medicare 1984 1.5 Spending
Mandatory** Medicare 1985 1.6 Spending
Mandatory** Medicare 1986 1.6 Spending
Mandatory** Medicare 1987 1.7 Spending
Mandatory** Medicare 1988 1.7 Spending
Mandatory** Medicare 1989 1.7 Spending
Mandatory** Medicare 1990 1.8 Spending
Mandatory** Medicare 1991 1.9 Spending
Mandatory** Medicare 1992 2 Spending
Mandatory** Medicare 1993 2.1 Spending
Mandatory** Medicare 1994 2.2 Spending
Mandatory** Medicare 1995 2.3 Spending
Mandatory** Medicare 1996 2.4 Spending
Mandatory** Medicare 1997 2.5 Spending
Mandatory** Medicare 1998 2.4 Spending
Mandatory** Medicare 1999 2.2 Spending
Mandatory** Medicare 2000 2.1 Spending
Mandatory** Medicare 2001 2.3 Spending
Mandatory** Medicare 2002 2.3 Spending
Mandatory** Medicare 2003 2.4 Spending
Mandatory** Medicare 2004 2.5 Spending
Mandatory** Medicare 2005 2.6 Spending
Mandatory** Medicare 2006 2.8 Spending
Mandatory** Medicare 2007 3 Spending
Mandatory** Medicare 2008 3.1 Spending
Mandatory** Medicare 2009 3.5 Spending
Mandatory** Medicare 2010 3.5 Spending
Mandatory** Medicare 2011 3.6 Spending
Mandatory** Medicare 2012 3.4 Spending
Mandatory** Medicare 2013 3.5 Spending
Mandatory** Medicare 2014 3.5 Spending
Mandatory** Medicare 2015 3.5 Spending
Mandatory** Medicare 2016 3.7 Spending
Mandatory** Medicare 2017 3.7 Spending
Mandatory** Other 1968 1.4 Spending
Mandatory** Other 1969 1 Spending
Mandatory** Other 1970 1 Spending
Mandatory** Other 1971 0.9 Spending
Mandatory** Other 1972 1.1 Spending
Mandatory** Other 1973 1.3 Spending
Mandatory** Other 1974 1.1 Spending
Mandatory** Other 1975 1.5 Spending
Mandatory** Other 1976 1 Spending
Mandatory** Other 1977 0.9 Spending
Mandatory** Other 1978 1.3 Spending
Mandatory** Other 1979 1.1 Spending
Mandatory** Other 1980 1.2 Spending
Mandatory** Other 1981 1.2 Spending
Mandatory** Other 1982 1.2 Spending
Mandatory** Other 1983 1.2 Spending
Mandatory** Other 1984 0.8 Spending
Mandatory** Other 1985 1.3 Spending
Mandatory** Other 1986 1 Spending
Mandatory** Other 1987 0.8 Spending
Mandatory** Other 1988 0.8 Spending
Mandatory** Other 1989 0.9 Spending
Mandatory** Other 1990 1.5 Spending
Mandatory** Other 1991 1.6 Spending
Mandatory** Other 1992 0.6 Spending
Mandatory** Other 1993 0.1 Spending
Mandatory** Other 1994 0.2 Spending
Mandatory** Other 1995 0.1 Spending
Mandatory** Other 1996 0.1 Spending
Mandatory** Other 1997 0.1 Spending
Mandatory** Other 1998 0.3 Spending
Mandatory** Other 1999 0.4 Spending
Mandatory** Other 2000 0.4 Spending
Mandatory** Other 2001 0.4 Spending
Mandatory** Other 2002 0.4 Spending
Mandatory** Other 2003 0.4 Spending
Mandatory** Other 2004 0.5 Spending
Mandatory** Other 2005 0.5 Spending
Mandatory** Other 2006 0.8 Spending
Mandatory** Other 2007 0.4 Spending
Mandatory** Other 2008 0.5 Spending
Mandatory** Other 2009 2.2 Spending
Mandatory** Other 2010 -0.1 Spending
Mandatory** Other 2011 0.4 Spending
Mandatory** Other 2012 0.8 Spending
Mandatory** Other 2013 0.6 Spending
Mandatory** Other 2014 0.4 Spending
Mandatory** Other 2015 0.7 Spending
Mandatory** Other 2016 0.6 Spending
Mandatory** Other 2017 1 Spending
Mandatory** Social Security 1968 2.6 Spending
Mandatory** Social Security 1969 2.7 Spending
Mandatory** Social Security 1970 2.8 Spending
Mandatory** Social Security 1971 3.1 Spending
Mandatory** Social Security 1972 3.2 Spending
Mandatory** Social Security 1973 3.6 Spending
Mandatory** Social Security 1974 3.7 Spending
Mandatory** Social Security 1975 3.9 Spending
Mandatory** Social Security 1976 4.1 Spending
Mandatory** Social Security 1977 4.1 Spending
Mandatory** Social Security 1978 4.1 Spending
Mandatory** Social Security 1979 4 Spending
Mandatory** Social Security 1980 4.2 Spending
Mandatory** Social Security 1981 4.4 Spending
Mandatory** Social Security 1982 4.6 Spending
Mandatory** Social Security 1983 4.8 Spending
Mandatory** Social Security 1984 4.5 Spending
Mandatory** Social Security 1985 4.4 Spending
Mandatory** Social Security 1986 4.3 Spending
Mandatory** Social Security 1987 4.3 Spending
Mandatory** Social Security 1988 4.2 Spending
Mandatory** Social Security 1989 4.1 Spending
Mandatory** Social Security 1990 4.2 Spending
Mandatory** Social Security 1991 4.4 Spending
Mandatory** Social Security 1992 4.4 Spending
Mandatory** Social Security 1993 4.4 Spending
Mandatory** Social Security 1994 4.4 Spending
Mandatory** Social Security 1995 4.4 Spending
Mandatory** Social Security 1996 4.3 Spending
Mandatory** Social Security 1997 4.3 Spending
Mandatory** Social Security 1998 4.2 Spending
Mandatory** Social Security 1999 4.1 Spending
Mandatory** Social Security 2000 4 Spending
Mandatory** Social Security 2001 4.1 Spending
Mandatory** Social Security 2002 4.2 Spending
Mandatory** Social Security 2003 4.2 Spending
Mandatory** Social Security 2004 4.1 Spending
Mandatory** Social Security 2005 4 Spending
Mandatory** Social Security 2006 4 Spending
Mandatory** Social Security 2007 4.1 Spending
Mandatory** Social Security 2008 4.1 Spending
Mandatory** Social Security 2009 4.7 Spending
Mandatory** Social Security 2010 4.7 Spending
Mandatory** Social Security 2011 4.7 Spending
Mandatory** Social Security 2012 4.8 Spending
Mandatory** Social Security 2013 4.9 Spending
Mandatory** Social Security 2014 4.9 Spending
Mandatory** Social Security 2015 4.9 Spending
Mandatory** Social Security 2016 4.9 Spending
Mandatory** Social Security 2017 4.9 Spending
Mandatory** Veterans' Programs 1968 0.6 Spending
Mandatory** Veterans' Programs 1969 0.6 Spending
Mandatory** Veterans' Programs 1970 0.7 Spending
Mandatory** Veterans' Programs 1971 0.7 Spending
Mandatory** Veterans' Programs 1972 0.7 Spending
Mandatory** Veterans' Programs 1973 0.7 Spending
Mandatory** Veterans' Programs 1974 0.7 Spending
Mandatory** Veterans' Programs 1975 0.8 Spending
Mandatory** Veterans' Programs 1976 0.8 Spending
Mandatory** Veterans' Programs 1977 0.7 Spending
Mandatory** Veterans' Programs 1978 0.6 Spending
Mandatory** Veterans' Programs 1979 0.5 Spending
Mandatory** Veterans' Programs 1980 0.5 Spending
Mandatory** Veterans' Programs 1981 0.5 Spending
Mandatory** Veterans' Programs 1982 0.5 Spending
Mandatory** Veterans' Programs 1983 0.5 Spending
Mandatory** Veterans' Programs 1984 0.4 Spending
Mandatory** Veterans' Programs 1985 0.4 Spending
Mandatory** Veterans' Programs 1986 0.4 Spending
Mandatory** Veterans' Programs 1987 0.3 Spending
Mandatory** Veterans' Programs 1988 0.3 Spending
Mandatory** Veterans' Programs 1989 0.3 Spending
Mandatory** Veterans' Programs 1990 0.3 Spending
Mandatory** Veterans' Programs 1991 0.3 Spending
Mandatory** Veterans' Programs 1992 0.3 Spending
Mandatory** Veterans' Programs 1993 0.3 Spending
Mandatory** Veterans' Programs 1994 0.3 Spending
Mandatory** Veterans' Programs 1995 0.3 Spending
Mandatory** Veterans' Programs 1996 0.3 Spending
Mandatory** Veterans' Programs 1997 0.3 Spending
Mandatory** Veterans' Programs 1998 0.3 Spending
Mandatory** Veterans' Programs 1999 0.3 Spending
Mandatory** Veterans' Programs 2000 0.3 Spending
Mandatory** Veterans' Programs 2001 0.2 Spending
Mandatory** Veterans' Programs 2002 0.3 Spending
Mandatory** Veterans' Programs 2003 0.3 Spending
Mandatory** Veterans' Programs 2004 0.3 Spending
Mandatory** Veterans' Programs 2005 0.3 Spending
Mandatory** Veterans' Programs 2006 0.3 Spending
Mandatory** Veterans' Programs 2007 0.3 Spending
Mandatory** Veterans' Programs 2008 0.3 Spending
Mandatory** Veterans' Programs 2009 0.3 Spending
Mandatory** Veterans' Programs 2010 0.4 Spending
Mandatory** Veterans' Programs 2011 0.5 Spending
Mandatory** Veterans' Programs 2012 0.4 Spending
Mandatory** Veterans' Programs 2013 0.5 Spending
Mandatory** Veterans' Programs 2014 0.5 Spending
Mandatory** Veterans' Programs 2015 0.5 Spending
Mandatory** Veterans' Programs 2016 0.6 Spending
Mandatory** Veterans' Programs 2017 0.5 Spending
Miscellaneous Revenue 1968 0.3 Revenue
Miscellaneous Revenue 1969 0.3 Revenue
Miscellaneous Revenue 1970 0.3 Revenue
Miscellaneous Revenue 1971 0.3 Revenue
Miscellaneous Revenue 1972 0.3 Revenue
Miscellaneous Revenue 1973 0.3 Revenue
Miscellaneous Revenue 1974 0.4 Revenue
Miscellaneous Revenue 1975 0.4 Revenue
Miscellaneous Revenue 1976 0.4 Revenue
Miscellaneous Revenue 1977 0.3 Revenue
Miscellaneous Revenue 1978 0.3 Revenue
Miscellaneous Revenue 1979 0.4 Revenue
Miscellaneous Revenue 1980 0.5 Revenue
Miscellaneous Revenue 1981 0.4 Revenue
Miscellaneous Revenue 1982 0.5 Revenue
Miscellaneous Revenue 1983 0.4 Revenue
Miscellaneous Revenue 1984 0.4 Revenue
Miscellaneous Revenue 1985 0.4 Revenue
Miscellaneous Revenue 1986 0.4 Revenue
Miscellaneous Revenue 1987 0.4 Revenue
Miscellaneous Revenue 1988 0.4 Revenue
Miscellaneous Revenue 1989 0.4 Revenue
Miscellaneous Revenue 1990 0.5 Revenue
Miscellaneous Revenue 1991 0.4 Revenue
Miscellaneous Revenue 1992 0.4 Revenue
Miscellaneous Revenue 1993 0.3 Revenue
Miscellaneous Revenue 1994 0.3 Revenue
Miscellaneous Revenue 1995 0.4 Revenue
Miscellaneous Revenue 1996 0.3 Revenue
Miscellaneous Revenue 1997 0.3 Revenue
Miscellaneous Revenue 1998 0.4 Revenue
Miscellaneous Revenue 1999 0.4 Revenue
Miscellaneous Revenue 2000 0.4 Revenue
Miscellaneous Revenue 2001 0.4 Revenue
Miscellaneous Revenue 2002 0.3 Revenue
Miscellaneous Revenue 2003 0.3 Revenue
Miscellaneous Revenue 2004 0.3 Revenue
Miscellaneous Revenue 2005 0.3 Revenue
Miscellaneous Revenue 2006 0.3 Revenue
Miscellaneous Revenue 2007 0.3 Revenue
Miscellaneous Revenue 2008 0.3 Revenue
Miscellaneous Revenue 2009 0.4 Revenue
Miscellaneous Revenue 2010 0.7 Revenue
Miscellaneous Revenue 2011 0.7 Revenue
Miscellaneous Revenue 2012 0.7 Revenue
Miscellaneous Revenue 2013 0.6 Revenue
Miscellaneous Revenue 2014 0.8 Revenue
Miscellaneous Revenue 2015 0.8 Revenue
Miscellaneous Revenue 2016 0.8 Revenue
Miscellaneous Revenue 2017 0.7 Revenue
Offsetting Receipts* Revenue 1968 1.2 Revenue
Offsetting Receipts* Revenue 1969 1.1 Revenue
Offsetting Receipts* Revenue 1970 1.1 Revenue
Offsetting Receipts* Revenue 1971 1.3 Revenue
Offsetting Receipts* Revenue 1972 1.2 Revenue
Offsetting Receipts* Revenue 1973 1.3 Revenue
Offsetting Receipts* Revenue 1974 1.4 Revenue
Offsetting Receipts* Revenue 1975 1.1 Revenue
Offsetting Receipts* Revenue 1976 1.1 Revenue
Offsetting Receipts* Revenue 1977 1.1 Revenue
Offsetting Receipts* Revenue 1978 1 Revenue
Offsetting Receipts* Revenue 1979 1 Revenue
Offsetting Receipts* Revenue 1980 1 Revenue
Offsetting Receipts* Revenue 1981 1.2 Revenue
Offsetting Receipts* Revenue 1982 1.1 Revenue
Offsetting Receipts* Revenue 1983 1.3 Revenue
Offsetting Receipts* Revenue 1984 1.1 Revenue
Offsetting Receipts* Revenue 1985 1.1 Revenue
Offsetting Receipts* Revenue 1986 1 Revenue
Offsetting Receipts* Revenue 1987 1.1 Revenue
Offsetting Receipts* Revenue 1988 1.1 Revenue
Offsetting Receipts* Revenue 1989 1.1 Revenue
Offsetting Receipts* Revenue 1990 1 Revenue
Offsetting Receipts* Revenue 1991 1.7 Revenue
Offsetting Receipts* Revenue 1992 1.1 Revenue
Offsetting Receipts* Revenue 1993 1 Revenue
Offsetting Receipts* Revenue 1994 1 Revenue
Offsetting Receipts* Revenue 1995 1 Revenue
Offsetting Receipts* Revenue 1996 0.9 Revenue
Offsetting Receipts* Revenue 1997 1 Revenue
Offsetting Receipts* Revenue 1998 0.9 Revenue
Offsetting Receipts* Revenue 1999 0.8 Revenue
Offsetting Receipts* Revenue 2000 0.8 Revenue
Offsetting Receipts* Revenue 2001 0.8 Revenue
Offsetting Receipts* Revenue 2002 0.8 Revenue
Offsetting Receipts* Revenue 2003 0.9 Revenue
Offsetting Receipts* Revenue 2004 0.9 Revenue
Offsetting Receipts* Revenue 2005 1 Revenue
Offsetting Receipts* Revenue 2006 1.1 Revenue
Offsetting Receipts* Revenue 2007 1.2 Revenue
Offsetting Receipts* Revenue 2008 1.3 Revenue
Offsetting Receipts* Revenue 2009 1.3 Revenue
Offsetting Receipts* Revenue 2010 1.3 Revenue
Offsetting Receipts* Revenue 2011 1.4 Revenue
Offsetting Receipts* Revenue 2012 1.4 Revenue
Offsetting Receipts* Revenue 2013 1.8 Revenue
Offsetting Receipts* Revenue 2014 1.6 Revenue
Offsetting Receipts* Revenue 2015 1.4 Revenue
Offsetting Receipts* Revenue 2016 1.3 Revenue
Offsetting Receipts* Revenue 2017 1.3 Revenue
Payroll Tax Revenue 1968 3.8 Revenue
Payroll Tax Revenue 1969 4 Revenue
Payroll Tax Revenue 1970 4.2 Revenue
Payroll Tax Revenue 1971 4.2 Revenue
Payroll Tax Revenue 1972 4.3 Revenue
Payroll Tax Revenue 1973 4.7 Revenue
Payroll Tax Revenue 1974 5.1 Revenue
Payroll Tax Revenue 1975 5.2 Revenue
Payroll Tax Revenue 1976 5.1 Revenue
Payroll Tax Revenue 1977 5.2 Revenue
Payroll Tax Revenue 1978 5.3 Revenue
Payroll Tax Revenue 1979 5.4 Revenue
Payroll Tax Revenue 1980 5.6 Revenue
Payroll Tax Revenue 1981 5.8 Revenue
Payroll Tax Revenue 1982 6.1 Revenue
Payroll Tax Revenue 1983 5.9 Revenue
Payroll Tax Revenue 1984 6.1 Revenue
Payroll Tax Revenue 1985 6.2 Revenue
Payroll Tax Revenue 1986 6.3 Revenue
Payroll Tax Revenue 1987 6.3 Revenue
Payroll Tax Revenue 1988 6.5 Revenue
Payroll Tax Revenue 1989 6.5 Revenue
Payroll Tax Revenue 1990 6.4 Revenue
Payroll Tax Revenue 1991 6.5 Revenue
Payroll Tax Revenue 1992 6.4 Revenue
Payroll Tax Revenue 1993 6.3 Revenue
Payroll Tax Revenue 1994 6.4 Revenue
Payroll Tax Revenue 1995 6.4 Revenue
Payroll Tax Revenue 1996 6.4 Revenue
Payroll Tax Revenue 1997 6.4 Revenue
Payroll Tax Revenue 1998 6.4 Revenue
Payroll Tax Revenue 1999 6.4 Revenue
Payroll Tax Revenue 2000 6.4 Revenue
Payroll Tax Revenue 2001 6.6 Revenue
Payroll Tax Revenue 2002 6.4 Revenue
Payroll Tax Revenue 2003 6.3 Revenue
Payroll Tax Revenue 2004 6.1 Revenue
Payroll Tax Revenue 2005 6.2 Revenue
Payroll Tax Revenue 2006 6.1 Revenue
Payroll Tax Revenue 2007 6.1 Revenue
Payroll Tax Revenue 2008 6.1 Revenue
Payroll Tax Revenue 2009 6.2 Revenue
Payroll Tax Revenue 2010 5.8 Revenue
Payroll Tax Revenue 2011 5.3 Revenue
Payroll Tax Revenue 2012 5.3 Revenue
Payroll Tax Revenue 2013 5.7 Revenue
Payroll Tax Revenue 2014 5.9 Revenue
Payroll Tax Revenue 2015 5.9 Revenue
Payroll Tax Revenue 2016 6 Revenue
Payroll Tax Revenue 2017 6.1 Revenue
Revenue Spending 1968 18.2 Ignore
Revenue Spending 1969 20.1 Ignore
Revenue Spending 1970 19.5 Ignore
Revenue Spending 1971 18 Ignore
Revenue Spending 1972 18.2 Ignore
Revenue Spending 1973 18.3 Ignore
Revenue Spending 1974 19.1 Ignore
Revenue Spending 1975 18.4 Ignore
Revenue Spending 1976 17.7 Ignore
Revenue Spending 1977 18.6 Ignore
Revenue Spending 1978 18.5 Ignore
Revenue Spending 1979 19 Ignore
Revenue Spending 1980 19.5 Ignore
Revenue Spending 1981 20.3 Ignore
Revenue Spending 1982 19.7 Ignore
Revenue Spending 1983 18.3 Ignore
Revenue Spending 1984 18 Ignore
Revenue Spending 1985 18.3 Ignore
Revenue Spending 1986 18 Ignore
Revenue Spending 1987 19 Ignore
Revenue Spending 1988 18.7 Ignore
Revenue Spending 1989 18.9 Ignore
Revenue Spending 1990 18.4 Ignore
Revenue Spending 1991 19 Ignore
Revenue Spending 1992 18.1 Ignore
Revenue Spending 1993 18 Ignore
Revenue Spending 1994 18.5 Ignore
Revenue Spending 1995 18.8 Ignore
Revenue Spending 1996 19.1 Ignore
Revenue Spending 1997 19.6 Ignore
Revenue Spending 1998 20.1 Ignore
Revenue Spending 1999 20 Ignore
Revenue Spending 2000 20.8 Ignore
Revenue Spending 2001 19.6 Ignore
Revenue Spending 2002 17.8 Ignore
Revenue Spending 2003 16.6 Ignore
Revenue Spending 2004 16.5 Ignore
Revenue Spending 2005 17.7 Ignore
Revenue Spending 2006 18.7 Ignore
Revenue Spending 2007 19.1 Ignore
Revenue Spending 2008 18.4 Ignore
Revenue Spending 2009 15.9 Ignore
Revenue Spending 2010 15.9 Ignore
Revenue Spending 2011 16.4 Ignore
Revenue Spending 2012 16.7 Ignore
Revenue Spending 2013 18.6 Ignore
Revenue Spending 2014 19.1 Ignore
Revenue Spending 2015 19.5 Ignore
Revenue Spending 2016 19 Ignore
Revenue Spending 2017 18.6 Ignore
Spending Discretionary 1968 13.1 Ignore
Spending Discretionary 1969 11.9 Ignore
Spending Discretionary 1970 11.5 Ignore
Spending Discretionary 1971 10.9 Ignore
Spending Discretionary 1972 10.5 Ignore
Spending Discretionary 1973 9.6 Ignore
Spending Discretionary 1974 9.3 Ignore
Spending Discretionary 1975 9.8 Ignore
Spending Discretionary 1976 9.8 Ignore
Spending Discretionary 1977 9.7 Ignore
Spending Discretionary 1978 9.6 Ignore
Spending Discretionary 1979 9.3 Ignore
Spending Discretionary 1980 9.9 Ignore
Spending Discretionary 1981 9.8 Ignore
Spending Discretionary 1982 9.8 Ignore
Spending Discretionary 1983 10 Ignore
Spending Discretionary 1984 9.6 Ignore
Spending Discretionary 1985 9.7 Ignore
Spending Discretionary 1986 9.7 Ignore
Spending Discretionary 1987 9.3 Ignore
Spending Discretionary 1988 9 Ignore
Spending Discretionary 1989 8.8 Ignore
Spending Discretionary 1990 8.5 Ignore
Spending Discretionary 1991 8.7 Ignore
Spending Discretionary 1992 8.3 Ignore
Spending Discretionary 1993 7.9 Ignore
Spending Discretionary 1994 7.5 Ignore
Spending Discretionary 1995 7.2 Ignore
Spending Discretionary 1996 6.7 Ignore
Spending Discretionary 1997 6.4 Ignore
Spending Discretionary 1998 6.2 Ignore
Spending Discretionary 1999 6 Ignore
Spending Discretionary 2000 6.1 Ignore
Spending Discretionary 2001 6.1 Ignore
Spending Discretionary 2002 6.7 Ignore
Spending Discretionary 2003 7.3 Ignore
Spending Discretionary 2004 7.4 Ignore
Spending Discretionary 2005 7.5 Ignore
Spending Discretionary 2006 7.4 Ignore
Spending Discretionary 2007 7.3 Ignore
Spending Discretionary 2008 7.7 Ignore
Spending Discretionary 2009 8.6 Ignore
Spending Discretionary 2010 9.1 Ignore
Spending Discretionary 2011 8.8 Ignore
Spending Discretionary 2012 8 Ignore
Spending Discretionary 2013 7.3 Ignore
Spending Discretionary 2014 6.8 Ignore
Spending Discretionary 2015 6.5 Ignore
Spending Discretionary 2016 6.4 Ignore
Spending Discretionary 2017 6.3 Ignore
Spending Mandatory** 1968 6.6 Ignore
Spending Mandatory** 1969 6.6 Ignore
Spending Mandatory** 1970 6.9 Ignore
Spending Mandatory** 1971 7.8 Ignore
Spending Mandatory** 1972 8.3 Ignore
Spending Mandatory** 1973 8.6 Ignore
Spending Mandatory** 1974 8.8 Ignore
Spending Mandatory** 1975 10.5 Ignore
Spending Mandatory** 1976 10.6 Ignore
Spending Mandatory** 1977 10 Ignore
Spending Mandatory** 1978 10 Ignore
Spending Mandatory** 1979 9.6 Ignore
Spending Mandatory** 1980 10.4 Ignore
Spending Mandatory** 1981 10.8 Ignore
Spending Mandatory** 1982 11.2 Ignore
Spending Mandatory** 1983 11.6 Ignore
Spending Mandatory** 1984 10.3 Ignore
Spending Mandatory** 1985 10.5 Ignore
Spending Mandatory** 1986 10.2 Ignore
Spending Mandatory** 1987 9.9 Ignore
Spending Mandatory** 1988 9.8 Ignore
Spending Mandatory** 1989 9.8 Ignore
Spending Mandatory** 1990 10.6 Ignore
Spending Mandatory** 1991 11.5 Ignore
Spending Mandatory** 1992 11.2 Ignore
Spending Mandatory** 1993 10.8 Ignore
Spending Mandatory** 1994 10.9 Ignore
Spending Mandatory** 1995 10.8 Ignore
Spending Mandatory** 1996 10.8 Ignore
Spending Mandatory** 1997 10.6 Ignore
Spending Mandatory** 1998 10.5 Ignore
Spending Mandatory** 1999 10.3 Ignore
Spending Mandatory** 2000 10.2 Ignore
Spending Mandatory** 2001 10.4 Ignore
Spending Mandatory** 2002 11 Ignore
Spending Mandatory** 2003 11.3 Ignore
Spending Mandatory** 2004 11.1 Ignore
Spending Mandatory** 2005 11.2 Ignore
Spending Mandatory** 2006 11.4 Ignore
Spending Mandatory** 2007 11.4 Ignore
Spending Mandatory** 2008 12.1 Ignore
Spending Mandatory** 2009 15.9 Ignore
Spending Mandatory** 2010 14.3 Ignore
Spending Mandatory** 2011 14.5 Ignore
Spending Mandatory** 2012 14.1 Ignore
Spending Mandatory** 2013 14.1 Ignore
Spending Mandatory** 2014 13.8 Ignore
Spending Mandatory** 2015 14.2 Ignore
Spending Mandatory** 2016 14.4 Ignore
Spending Mandatory** 2017 14.5 Ignore
Spending Net Interest 1968 1.2 Spending
Spending Net Interest 1969 1.3 Spending
Spending Net Interest 1970 1.4 Spending
Spending Net Interest 1971 1.3 Spending
Spending Net Interest 1972 1.3 Spending
Spending Net Interest 1973 1.3 Spending
Spending Net Interest 1974 1.4 Spending
Spending Net Interest 1975 1.4 Spending
Spending Net Interest 1976 1.5 Spending
Spending Net Interest 1977 1.5 Spending
Spending Net Interest 1978 1.6 Spending
Spending Net Interest 1979 1.7 Spending
Spending Net Interest 1980 1.9 Spending
Spending Net Interest 1981 2.2 Spending
Spending Net Interest 1982 2.6 Spending
Spending Net Interest 1983 2.5 Spending
Spending Net Interest 1984 2.8 Spending
Spending Net Interest 1985 3 Spending
Spending Net Interest 1986 3 Spending
Spending Net Interest 1987 2.9 Spending
Spending Net Interest 1988 2.9 Spending
Spending Net Interest 1989 3 Spending
Spending Net Interest 1990 3.1 Spending
Spending Net Interest 1991 3.2 Spending
Spending Net Interest 1992 3.1 Spending
Spending Net Interest 1993 2.9 Spending
Spending Net Interest 1994 2.8 Spending
Spending Net Interest 1995 3.1 Spending
Spending Net Interest 1996 3 Spending
Spending Net Interest 1997 2.9 Spending
Spending Net Interest 1998 2.7 Spending
Spending Net Interest 1999 2.4 Spending
Spending Net Interest 2000 2.2 Spending
Spending Net Interest 2001 2 Spending
Spending Net Interest 2002 1.6 Spending
Spending Net Interest 2003 1.4 Spending
Spending Net Interest 2004 1.3 Spending
Spending Net Interest 2005 1.4 Spending
Spending Net Interest 2006 1.7 Spending
Spending Net Interest 2007 1.7 Spending
Spending Net Interest 2008 1.7 Spending
Spending Net Interest 2009 1.3 Spending
Spending Net Interest 2010 1.3 Spending
Spending Net Interest 2011 1.5 Spending
Spending Net Interest 2012 1.4 Spending
Spending Net Interest 2013 1.3 Spending
Spending Net Interest 2014 1.3 Spending
Spending Net Interest 2015 1.2 Spending
Spending Net Interest 2016 1.3 Spending
Spending Net Interest 2017 1.4 Spending
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment