{"version":3,"sources":["../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-path/src/path.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/utcYear.js","../node_modules/d3-time/src/utcMonth.js","../node_modules/d3-time/src/utcHour.js","../node_modules/d3-time/src/utcMinute.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/string.js"],"names":["basis","t1","v0","v1","v2","v3","t2","t3","linear","a","d","t","gamma","y","nogamma","b","Math","pow","exponential","constant","isNaN","rgbGamma","color","rgb","start","end","r","colorRgb","g","opacity","rgbSpline","spline","colors","i","n","length","Array","rgbBasis","values","floor","pi","PI","tau","tauEpsilon","Path","this","_x0","_y0","_x1","_y1","_","path","prototype","constructor","moveTo","x","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","x0","y0","x21","y21","x01","y01","l01_2","Error","abs","x20","y20","l21_2","l20_2","l21","sqrt","l01","l","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","h","toString","round","year","interval","date","setMonth","setHours","step","setFullYear","getFullYear","every","k","isFinite","range","month","setDate","getMonth","weekday","getDate","getDay","getTimezoneOffset","durationMinute","durationWeek","sunday","monday","tuesday","wednesday","thursday","friday","saturday","day","durationDay","hour","setTime","getMilliseconds","getSeconds","durationSecond","getMinutes","durationHour","getHours","minute","second","getUTCSeconds","millisecond","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcDay","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","utcMonth","getUTCMonth","utcHour","setUTCMinutes","getUTCHours","utcMinute","setUTCSeconds","getUTCMinutes","min","c","slice","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","value","Date","number","string","numberArray","isArray","valueOf","object","localDate","m","H","M","S","L","utcDate","UTC","newDate","locale","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","fill","width","sign","join","requote","s","replace","formatRe","names","RegExp","map","formatLookup","toLowerCase","parseWeekdayNumberSunday","exec","parseWeekdayNumberMonday","u","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","q","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","p","formatHour24","formatHour12","formatDayOfYear","timeDay","count","timeYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","timeSunday","formatWeekNumberISO","timeThursday","ceil","formatWeekdayNumberSunday","formatWeekNumberMonday","timeMonday","formatYear","formatFullYear","formatZone","z","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newFormat","specifier","format","j","charCodeAt","push","charAt","newParse","week","undefined","offset","parse","X","f","utcParse","formatLocale","formatPrefix","definition","decimal","thousands","grouping","currency","minus","factory","extend","parent","Object","create","key","Color","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","formatHex","color_formatRgb","formatRgb","trim","parseInt","rgbn","Rgb","rgba","hsla","hasOwnProperty","NaN","rgbConvert","o","arguments","rgb_formatHex","hex","rgb_formatRgb","max","Hsl","hslConvert","hsl2rgb","m1","m2","define","copy","channels","assign","displayable","formatHsl","brighter","darker","re","formatSpecifier","match","FormatSpecifier","align","symbol","zero","comma","precision","type","prefixExponent","formatDecimal","coefficient","exponent","toFixed","toExponential","toPrecision","formatRounded","toUpperCase","prefixes","group","identity","call","Number","substring","reverse","currencyPrefix","currencySuffix","numerals","formatNumerals","String","percent","nan","formatTypes","prefix","test","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","i1","i0","formatTrim","Infinity","padding","e","t0","newInterval","floori","offseti","field","d0","d1","stop","previous","filter","indexOf","reA","reB","source","am","bm","bs","bi","lastIndex","index","one"],"mappings":"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","file":"static/js/3.a5bd0074.chunk.js","sourcesContent":["export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n"],"sourceRoot":""}