Server IP : 184.154.167.98 / Your IP : 18.221.59.242 Web Server : Apache System : Linux pink.dnsnetservice.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : puertode ( 1767) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/performancecopilot-pcp-app/panels/flamegraph/ |
Upload File : |
{"version":3,"file":"panels/flamegraph/module.js","mappings":"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","sources":["webpack:///../node_modules/d3-flame-graph/dist/d3-flamegraph.css","webpack:///./panels/flamegraph/css/flamegraph.css","webpack:///../node_modules/css-loader/dist/runtime/api.js","webpack:///../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack:///../node_modules/d3-flame-graph/dist/d3-flamegraph-colorMapper.js","webpack:///../node_modules/d3-flame-graph/dist/d3-flamegraph-tooltip.js","webpack:///../node_modules/d3-flame-graph/dist/d3-flamegraph.js","webpack:///../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///../node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack:///external amd \"@grafana/data\"","webpack:///external amd \"@grafana/ui\"","webpack:///external amd \"lodash\"","webpack:///external amd \"react\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/nonce","webpack:///../node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///../node_modules/d3-flame-graph/dist/d3-flamegraph.css?e230","webpack:///../node_modules/d3-selection/src/selector.js","webpack:///../node_modules/d3-selection/src/array.js","webpack:///../node_modules/d3-selection/src/selectorAll.js","webpack:///../node_modules/d3-selection/src/matcher.js","webpack:///../node_modules/d3-selection/src/selection/selectChild.js","webpack:///../node_modules/d3-selection/src/selection/selectChildren.js","webpack:///../node_modules/d3-selection/src/selection/sparse.js","webpack:///../node_modules/d3-selection/src/selection/enter.js","webpack:///../node_modules/d3-selection/src/constant.js","webpack:///../node_modules/d3-selection/src/selection/data.js","webpack:///../node_modules/d3-selection/src/selection/sort.js","webpack:///../node_modules/d3-selection/src/namespaces.js","webpack:///../node_modules/d3-selection/src/namespace.js","webpack:///../node_modules/d3-selection/src/selection/attr.js","webpack:///../node_modules/d3-selection/src/window.js","webpack:///../node_modules/d3-selection/src/selection/style.js","webpack:///../node_modules/d3-selection/src/selection/property.js","webpack:///../node_modules/d3-selection/src/selection/classed.js","webpack:///../node_modules/d3-selection/src/selection/text.js","webpack:///../node_modules/d3-selection/src/selection/html.js","webpack:///../node_modules/d3-selection/src/selection/raise.js","webpack:///../node_modules/d3-selection/src/selection/lower.js","webpack:///../node_modules/d3-selection/src/creator.js","webpack:///../node_modules/d3-selection/src/selection/insert.js","webpack:///../node_modules/d3-selection/src/selection/remove.js","webpack:///../node_modules/d3-selection/src/selection/clone.js","webpack:///../node_modules/d3-selection/src/selection/on.js","webpack:///../node_modules/d3-selection/src/selection/dispatch.js","webpack:///../node_modules/d3-selection/src/selection/index.js","webpack:///../node_modules/d3-selection/src/selection/select.js","webpack:///../node_modules/d3-selection/src/selection/selectAll.js","webpack:///../node_modules/d3-selection/src/selection/filter.js","webpack:///../node_modules/d3-selection/src/selection/exit.js","webpack:///../node_modules/d3-selection/src/selection/join.js","webpack:///../node_modules/d3-selection/src/selection/merge.js","webpack:///../node_modules/d3-selection/src/selection/order.js","webpack:///../node_modules/d3-selection/src/selection/call.js","webpack:///../node_modules/d3-selection/src/selection/nodes.js","webpack:///../node_modules/d3-selection/src/selection/node.js","webpack:///../node_modules/d3-selection/src/selection/size.js","webpack:///../node_modules/d3-selection/src/selection/empty.js","webpack:///../node_modules/d3-selection/src/selection/each.js","webpack:///../node_modules/d3-selection/src/selection/append.js","webpack:///../node_modules/d3-selection/src/selection/datum.js","webpack:///../node_modules/d3-selection/src/selection/iterator.js","webpack:///./panels/flamegraph/css/flamegraph.css?d658","webpack:///./panels/flamegraph/FlameGraphChart.tsx","webpack:///../node_modules/d3-selection/src/select.js","webpack:///./panels/flamegraph/model.ts","webpack:///./panels/flamegraph/FlameGraphPanel.tsx","webpack:///./panels/flamegraph/types.ts","webpack:///./panels/flamegraph/module.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".d3-flame-graph rect{stroke:#eee;fill-opacity:.8}.d3-flame-graph rect:hover{stroke:#474747;stroke-width:.5;cursor:pointer}.d3-flame-graph-label{pointer-events:none;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:12px;font-family:Verdana;margin-left:4px;margin-right:4px;line-height:1.5;padding:0 0 0;font-weight:400;color:#000;text-align:left}.d3-flame-graph .fade{opacity:.6 !important}.d3-flame-graph .title{font-size:20px;font-family:Verdana}.d3-flame-graph-tip{background-color:#000;border:none;border-radius:3px;padding:5px 10px 5px 10px;min-width:250px;text-align:left;color:#fff;z-index:10}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/d3-flame-graph/dist/d3-flamegraph.css\"],\"names\":[],\"mappings\":\"AAAA,qBACE,WAAA,CACA,eAAA,CAGF,2BACE,cAAA,CACA,eAAA,CACA,cAAA,CAGF,sBACE,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,cAAA,CACA,mBAAA,CACA,eAAA,CACA,gBAAA,CACA,eAAA,CACA,aAAA,CACA,eAAA,CACA,UAAA,CACA,eAAA,CAGF,sBACE,qBAAA,CAGF,uBACE,cAAA,CACA,mBAAA,CAGF,oBACI,qBAAA,CACA,WAAA,CACA,iBAAA,CACA,yBAAA,CACA,eAAA,CACA,eAAA,CACA,UAAA,CACA,UAAA\",\"sourcesContent\":[\".d3-flame-graph rect {\\n stroke: #EEEEEE;\\n fill-opacity: .8;\\n}\\n\\n.d3-flame-graph rect:hover {\\n stroke: #474747;\\n stroke-width: 0.5;\\n cursor: pointer;\\n}\\n\\n.d3-flame-graph-label {\\n pointer-events: none;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n font-size: 12px;\\n font-family: Verdana;\\n margin-left: 4px;\\n margin-right: 4px;\\n line-height: 1.5;\\n padding: 0 0 0;\\n font-weight: 400;\\n color: black;\\n text-align: left;\\n}\\n\\n.d3-flame-graph .fade {\\n opacity: 0.6 !important;\\n}\\n\\n.d3-flame-graph .title {\\n font-size: 20px;\\n font-family: Verdana;\\n}\\n\\n.d3-flame-graph-tip {\\n background-color: black;\\n border: none;\\n border-radius: 3px;\\n padding: 5px 10px 5px 10px;\\n min-width: 250px;\\n text-align: left;\\n color: white;\\n z-index: 10;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".theme-dark svg.d3-flame-graph rect{stroke:#212124}.flamegraph-bar{display:flex;height:40px;align-items:center;margin-bottom:10px}.flamegraph-bar .left{flex:1;justify-content:flex-start}.flamegraph-bar .center{display:flex;flex:1;justify-content:center}.flamegraph-bar .right{display:flex;flex:1;justify-content:flex-end}.flamegraph-bar .date{font-size:12px}.flamegraph-bar button{margin:0 4px}.flamegraph-bar label{margin-top:-2px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./panels/flamegraph/css/flamegraph.css\"],\"names\":[],\"mappings\":\"AAAA,oCACG,cAAA,CAGH,gBACG,YAAA,CACA,WAAA,CACA,kBAAA,CACA,kBAAA,CAGH,sBACG,MAAA,CACA,0BAAA,CAGH,wBACG,YAAA,CACA,MAAA,CACA,sBAAA,CAGH,uBACG,YAAA,CACA,MAAA,CACA,wBAAA,CAGH,sBACG,cAAA,CAIH,uBACG,YAAA,CAGH,sBACG,eAAA\",\"sourcesContent\":[\".theme-dark svg.d3-flame-graph rect {\\n stroke: rgb(33, 33, 36);\\n}\\n\\n.flamegraph-bar {\\n display: flex;\\n height: 40px;\\n align-items: center;\\n margin-bottom: 10px;\\n}\\n\\n.flamegraph-bar .left {\\n flex: 1;\\n justify-content: flex-start;\\n}\\n\\n.flamegraph-bar .center {\\n display: flex;\\n flex: 1;\\n justify-content: center;\\n}\\n\\n.flamegraph-bar .right {\\n display: flex;\\n flex: 1;\\n justify-content: flex-end;\\n}\\n\\n.flamegraph-bar .date {\\n font-size: 12px;\\n}\\n\\n\\n.flamegraph-bar button {\\n margin: 0 4px;\\n}\\n\\n.flamegraph-bar label {\\n margin-top: -2px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"colorMapper\"] = factory();\n\telse\n\t\troot[\"flamegraph\"] = root[\"flamegraph\"] || {}, root[\"flamegraph\"][\"colorMapper\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 6:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"allocationColorMapper\", function() { return allocationColorMapper; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"offCpuColorMapper\", function() { return offCpuColorMapper; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nodeJsColorMapper\", function() { return nodeJsColorMapper; });\nfunction pickHex (color1, color2, weight) {\n const w1 = weight\n const w2 = 1 - w1\n const rgb = [Math.round(color1[0] * w1 + color2[0] * w2),\n Math.round(color1[1] * w1 + color2[1] * w2),\n Math.round(color1[2] * w1 + color2[2] * w2)]\n return rgb\n}\n\nfunction generateHash (name) {\n // Return a vector (0.0->1.0) that is a hash of the input string.\n // The hash is computed to favor early characters over later ones, so\n // that strings with similar starts have similar vectors. Only the first\n // 6 characters are considered.\n const MAX_CHAR = 6\n\n var hash = 0\n var maxHash = 0\n var weight = 1\n var mod = 10\n\n if (name) {\n for (var i = 0; i < name.length; i++) {\n if (i > MAX_CHAR) { break }\n hash += weight * (name.charCodeAt(i) % mod)\n maxHash += weight * (mod - 1)\n weight *= 0.70\n }\n if (maxHash > 0) { hash = hash / maxHash }\n }\n return hash\n}\n\nfunction allocationColorMapper (d) {\n if (d.highlight) return 'rgb(230, 0, 230)'\n\n const self = d.data.value\n const total = d.value\n const color = pickHex([0, 255, 40], [196, 245, 233], self / total)\n\n return `rgb(${color.join()})`\n}\n\nfunction offCpuColorMapper (d) {\n if (d.highlight) return '#E600E6'\n\n let name = d.data.n || d.data.name\n let vector = 0\n const nameArr = name.split('`')\n\n if (nameArr.length > 1) {\n name = nameArr[nameArr.length - 1] // drop module name if present\n }\n name = name.split('(')[0] // drop extra info\n vector = generateHash(name)\n\n const r = 0 + Math.round(55 * (1 - vector))\n const g = 0 + Math.round(230 * (1 - vector))\n const b = 200 + Math.round(55 * vector)\n\n return 'rgb(' + r + ',' + g + ',' + b + ')'\n}\n\nfunction nodeJsColorMapper (d, originalColor) {\n let color = originalColor\n\n const { v8_jit: v8JIT, javascript, optimized } = d.data.extras || {}\n // Non-JS JIT frames (V8 builtins) are greyed out.\n if (v8JIT && !javascript) {\n color = '#dadada'\n }\n // JavaScript frames are colored based on optimization level\n if (javascript) {\n let opt = (optimized || 0) / d.value\n let r = 255\n let g = 0\n let b = 0\n if (opt < 0.4) {\n opt = opt * 2.5\n r = 240 - opt * 200\n } else if (opt < 0.9) {\n opt = (opt - 0.4) * 2\n r = 0\n b = 200 - (200 * opt)\n g = 100 * opt\n } else {\n opt = (opt - 0.9) * 10\n r = 0\n b = 0\n g = 100 + (150 * opt)\n }\n color = `rgb(${r} , ${g}, ${b})`\n }\n return color\n}\n\n\n/***/ })\n\n/******/ });\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"tooltip\"] = factory();\n\telse\n\t\troot[\"flamegraph\"] = root[\"flamegraph\"] || {}, root[\"flamegraph\"][\"tooltip\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 7:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"defaultFlamegraphTooltip\", function() { return /* binding */ defaultFlamegraphTooltip; });\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selector.js\nfunction none() {}\n\n/* harmony default export */ var src_selector = (function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/select.js\n\n\n\n/* harmony default export */ var selection_select = (function(select) {\n if (typeof select !== \"function\") select = src_selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selectorAll.js\nfunction selectorAll_empty() {\n return [];\n}\n\n/* harmony default export */ var selectorAll = (function(selector) {\n return selector == null ? selectorAll_empty : function() {\n return this.querySelectorAll(selector);\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/selectAll.js\n\n\n\n/* harmony default export */ var selectAll = (function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/matcher.js\n/* harmony default export */ var matcher = (function(selector) {\n return function() {\n return this.matches(selector);\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/filter.js\n\n\n\n/* harmony default export */ var filter = (function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/sparse.js\n/* harmony default export */ var sparse = (function(update) {\n return new Array(update.length);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/enter.js\n\n\n\n/* harmony default export */ var selection_enter = (function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n});\n\nfunction EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/constant.js\n/* harmony default export */ var constant = (function(x) {\n return function() {\n return x;\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/data.js\n\n\n\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\n/* harmony default export */ var selection_data = (function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/exit.js\n\n\n\n/* harmony default export */ var selection_exit = (function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/join.js\n/* harmony default export */ var join = (function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/merge.js\n\n\n/* harmony default export */ var selection_merge = (function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/order.js\n/* harmony default export */ var order = (function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/sort.js\n\n\n/* harmony default export */ var sort = (function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n});\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/call.js\n/* harmony default export */ var call = (function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/nodes.js\n/* harmony default export */ var nodes = (function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/node.js\n/* harmony default export */ var selection_node = (function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/size.js\n/* harmony default export */ var selection_size = (function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/empty.js\n/* harmony default export */ var selection_empty = (function() {\n return !this.node();\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/each.js\n/* harmony default export */ var each = (function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/namespaces.js\nvar xhtml = \"http://www.w3.org/1999/xhtml\";\n\n/* harmony default export */ var namespaces = ({\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/namespace.js\n\n\n/* harmony default export */ var namespace = (function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/attr.js\n\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\n/* harmony default export */ var attr = (function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/window.js\n/* harmony default export */ var src_window = (function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/style.js\n\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\n/* harmony default export */ var style = (function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n});\n\nfunction styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || src_window(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/property.js\nfunction propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\n/* harmony default export */ var property = (function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/classed.js\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\n/* harmony default export */ var classed = (function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/text.js\nfunction textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\n/* harmony default export */ var selection_text = (function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/html.js\nfunction htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\n/* harmony default export */ var selection_html = (function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/raise.js\nfunction raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\n/* harmony default export */ var selection_raise = (function() {\n return this.each(raise);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/lower.js\nfunction lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\n/* harmony default export */ var selection_lower = (function() {\n return this.each(lower);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/creator.js\n\n\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\n/* harmony default export */ var creator = (function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/append.js\n\n\n/* harmony default export */ var append = (function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/insert.js\n\n\n\nfunction constantNull() {\n return null;\n}\n\n/* harmony default export */ var insert = (function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : src_selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/remove.js\nfunction remove_remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\n/* harmony default export */ var selection_remove = (function() {\n return this.each(remove_remove);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/clone.js\nfunction selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\n/* harmony default export */ var clone = (function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/datum.js\n/* harmony default export */ var datum = (function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/on.js\nvar filterEvents = {};\n\nvar on_event = null;\n\nif (typeof document !== \"undefined\") {\n var on_element = document.documentElement;\n if (!(\"onmouseenter\" in on_element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = on_event; // Events can be reentrant (e.g., focus).\n on_event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n on_event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\n/* harmony default export */ var selection_on = (function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n});\n\nfunction customEvent(event1, listener, that, args) {\n var event0 = on_event;\n event1.sourceEvent = on_event;\n on_event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n on_event = event0;\n }\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/dispatch.js\n\n\nfunction dispatchEvent(node, type, params) {\n var window = src_window(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\n/* harmony default export */ var dispatch = (function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar root = [null];\n\nfunction Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection_selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection_selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selectAll,\n filter: filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: join,\n merge: selection_merge,\n order: order,\n sort: sort,\n call: call,\n nodes: nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: each,\n attr: attr,\n style: style,\n property: property,\n classed: classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: append,\n insert: insert,\n remove: selection_remove,\n clone: clone,\n datum: datum,\n on: selection_on,\n dispatch: dispatch\n};\n\n/* harmony default export */ var src_selection = (selection_selection);\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/select.js\n\n\n/* harmony default export */ var src_select = (function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-dispatch/src/dispatch.js\nvar noop = {value: function() {}};\n\nfunction dispatch_dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction dispatch_parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch_dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = dispatch_parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\n/* harmony default export */ var src_dispatch = (dispatch_dispatch);\n\n// CONCATENATED MODULE: ../node_modules/d3-timer/src/timer.js\nvar timer_frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nfunction Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nfunction timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nfunction timerFlush() {\n now(); // Get the current time, if not already set.\n ++timer_frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --timer_frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n timer_frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n timer_frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (timer_frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n timer_frame = 1, setFrame(wake);\n }\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-timer/src/timeout.js\n\n\n/* harmony default export */ var src_timeout = (function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/schedule.js\n\n\n\nvar emptyOn = src_dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nvar CREATED = 0;\nvar SCHEDULED = 1;\nvar STARTING = 2;\nvar STARTED = 3;\nvar RUNNING = 4;\nvar ENDING = 5;\nvar ENDED = 6;\n\n/* harmony default export */ var transition_schedule = (function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n schedule_create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n});\n\nfunction init(node, id) {\n var schedule = schedule_get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nfunction schedule_set(node, id) {\n var schedule = schedule_get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nfunction schedule_get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction schedule_create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return src_timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n src_timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/interrupt.js\n\n\n/* harmony default export */ var interrupt = (function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/interrupt.js\n\n\n/* harmony default export */ var selection_interrupt = (function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/number.js\n/* harmony default export */ var number = (function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/transform/decompose.js\nvar degrees = 180 / Math.PI;\n\nvar identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\n/* harmony default export */ var decompose = (function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/transform/parse.js\n\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nfunction parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nfunction parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/transform/index.js\n\n\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nvar interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nvar interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/tween.js\n\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = schedule_set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = schedule_set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\n/* harmony default export */ var transition_tween = (function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = schedule_get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n});\n\nfunction tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = schedule_set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return schedule_get(node, id).value[name];\n };\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-color/src/define.js\n/* harmony default export */ var define = (function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n});\n\nfunction 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\n// CONCATENATED MODULE: ../node_modules/d3-color/src/color.js\n\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar 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_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\nfunction color_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 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? new Rgb((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\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color_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\nfunction color_rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction 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, color_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\nfunction 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_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\nfunction 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\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/basis.js\nfunction 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\n/* harmony default export */ var src_basis = (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\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/basisClosed.js\n\n\n/* harmony default export */ var basisClosed = (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\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/constant.js\n/* harmony default export */ var src_constant = (function(x) {\n return function() {\n return x;\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/color.js\n\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\nfunction hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : src_constant(isNaN(a) ? b : a);\n}\n\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : src_constant(isNaN(a) ? b : a);\n };\n}\n\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : src_constant(isNaN(a) ? b : a);\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/rgb.js\n\n\n\n\n\n/* harmony default export */ var src_rgb = ((function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = color_rgb(start)).r, (end = color_rgb(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 = color_rgb(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\nvar rgbBasis = rgbSpline(src_basis);\nvar rgbBasisClosed = rgbSpline(basisClosed);\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/string.js\n\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\n/* harmony default export */ var string = (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\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/interpolate.js\n\n\n\n/* harmony default export */ var transition_interpolate = (function(a, b) {\n var c;\n return (typeof b === \"number\" ? number\n : b instanceof color_color ? src_rgb\n : (c = color_color(b)) ? (b = c, src_rgb)\n : string)(a, b);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/attr.js\n\n\n\n\n\nfunction attr_attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attr_attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attr_attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attr_attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attr_attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attr_attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\n/* harmony default export */ var transition_attr = (function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransformSvg : transition_interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attr_attrFunctionNS : attr_attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attr_attrRemoveNS : attr_attrRemove)(fullname)\n : (fullname.local ? attr_attrConstantNS : attr_attrConstant)(fullname, i, value));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/attrTween.js\n\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\n/* harmony default export */ var transition_attrTween = (function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/delay.js\n\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\n/* harmony default export */ var transition_delay = (function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : schedule_get(this.node(), id).delay;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/duration.js\n\n\nfunction durationFunction(id, value) {\n return function() {\n schedule_set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n schedule_set(this, id).duration = value;\n };\n}\n\n/* harmony default export */ var duration = (function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : schedule_get(this.node(), id).duration;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/ease.js\n\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n schedule_set(this, id).ease = value;\n };\n}\n\n/* harmony default export */ var ease = (function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : schedule_get(this.node(), id).ease;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/filter.js\n\n\n\n/* harmony default export */ var transition_filter = (function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/merge.js\n\n\n/* harmony default export */ var transition_merge = (function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/on.js\n\n\nfunction on_start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = on_start(name) ? init : schedule_set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\n/* harmony default export */ var transition_on = (function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? schedule_get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/remove.js\nfunction removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\n/* harmony default export */ var transition_remove = (function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/select.js\n\n\n\n\n/* harmony default export */ var transition_select = (function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = src_selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n transition_schedule(subgroup[i], name, id, i, subgroup, schedule_get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/selectAll.js\n\n\n\n\n/* harmony default export */ var transition_selectAll = (function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = schedule_get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n transition_schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/selection.js\n\n\nvar selection_Selection = src_selection.prototype.constructor;\n\n/* harmony default export */ var transition_selection = (function() {\n return new selection_Selection(this._groups, this._parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/style.js\n\n\n\n\n\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = styleValue(this, name),\n string1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction style_styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction style_styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = styleValue(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction style_styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = styleValue(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = schedule_set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = style_styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\n/* harmony default export */ var transition_style = (function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransformCss : transition_interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, style_styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, style_styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, style_styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/styleTween.js\nfunction styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\n/* harmony default export */ var transition_styleTween = (function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/text.js\n\n\nfunction text_textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction text_textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\n/* harmony default export */ var transition_text = (function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? text_textFunction(tweenValue(this, \"text\", value))\n : text_textConstant(value == null ? \"\" : value + \"\"));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/textTween.js\nfunction textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\n/* harmony default export */ var transition_textTween = (function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/transition.js\n\n\n\n/* harmony default export */ var transition_transition = (function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = schedule_get(node, id0);\n transition_schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/end.js\n\n\n/* harmony default export */ var transition_end = (function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = schedule_set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar transition_id = 0;\n\nfunction Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nfunction src_transition_transition(name) {\n return src_selection().transition(name);\n}\n\nfunction newId() {\n return ++transition_id;\n}\n\nvar selection_prototype = src_selection.prototype;\n\nTransition.prototype = src_transition_transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: duration,\n ease: ease,\n end: transition_end\n};\n\n// CONCATENATED MODULE: ../node_modules/d3-ease/src/cubic.js\nfunction cubicIn(t) {\n return t * t * t;\n}\n\nfunction cubicOut(t) {\n return --t * t * t + 1;\n}\n\nfunction cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/transition.js\n\n\n\n\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: cubicInOut\n};\n\nfunction transition_inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\n/* harmony default export */ var selection_transition = (function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n transition_schedule(node, name, id, i, group, timing || transition_inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/index.js\n\n\n\n\nsrc_selection.prototype.interrupt = selection_interrupt;\nsrc_selection.prototype.transition = selection_transition;\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/active.js\n\n\n\nvar active_root = [null];\n\n/* harmony default export */ var src_active = (function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], active_root, name, +i);\n }\n }\n }\n\n return null;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/index.js\n\n\n\n\n\n// CONCATENATED MODULE: ./tooltip.js\n/* global event */\n\n\n\n\n\n\nfunction defaultLabel (d) {\n return d.data.name\n}\n\nfunction defaultFlamegraphTooltip () {\n var rootElement = src_select('body')\n var tooltip = null\n var html = defaultLabel\n\n function tip () {\n tooltip = rootElement\n .append('div')\n .style('display', 'none')\n .style('position', 'absolute')\n .style('opacity', 0)\n .style('pointer-events', 'none')\n .attr('class', 'd3-flame-graph-tip')\n }\n\n tip.show = function (d) {\n tooltip\n .style('display', 'block')\n .transition()\n .duration(200)\n .style('opacity', 1)\n .style('pointer-events', 'all')\n\n tooltip\n .html(html(d))\n .style('left', event.pageX + 5 + 'px')\n .style('top', event.pageY + 5 + 'px')\n\n return tip\n }\n\n tip.hide = function () {\n tooltip\n .style('display', 'none')\n .transition()\n .duration(200)\n .style('opacity', 0)\n .style('pointer-events', 'none')\n\n return tip\n }\n\n tip.html = function (_) {\n if (!arguments.length) return html\n html = _\n return tip\n }\n\n return tip\n}\n\n\n/***/ })\n\n/******/ });\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"flamegraph\"] = factory();\n\telse\n\t\troot[\"flamegraph\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 7:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selector.js\nfunction none() {}\n\n/* harmony default export */ var src_selector = (function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/select.js\n\n\n\n/* harmony default export */ var selection_select = (function(select) {\n if (typeof select !== \"function\") select = src_selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selectorAll.js\nfunction selectorAll_empty() {\n return [];\n}\n\n/* harmony default export */ var selectorAll = (function(selector) {\n return selector == null ? selectorAll_empty : function() {\n return this.querySelectorAll(selector);\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/selectAll.js\n\n\n\n/* harmony default export */ var selectAll = (function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/matcher.js\n/* harmony default export */ var matcher = (function(selector) {\n return function() {\n return this.matches(selector);\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/filter.js\n\n\n\n/* harmony default export */ var filter = (function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/sparse.js\n/* harmony default export */ var sparse = (function(update) {\n return new Array(update.length);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/enter.js\n\n\n\n/* harmony default export */ var selection_enter = (function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n});\n\nfunction EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/constant.js\n/* harmony default export */ var constant = (function(x) {\n return function() {\n return x;\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/data.js\n\n\n\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\n/* harmony default export */ var selection_data = (function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/exit.js\n\n\n\n/* harmony default export */ var selection_exit = (function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/join.js\n/* harmony default export */ var join = (function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/merge.js\n\n\n/* harmony default export */ var selection_merge = (function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/order.js\n/* harmony default export */ var order = (function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/sort.js\n\n\n/* harmony default export */ var selection_sort = (function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n});\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/call.js\n/* harmony default export */ var call = (function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/nodes.js\n/* harmony default export */ var nodes = (function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/node.js\n/* harmony default export */ var selection_node = (function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/size.js\n/* harmony default export */ var selection_size = (function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/empty.js\n/* harmony default export */ var selection_empty = (function() {\n return !this.node();\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/each.js\n/* harmony default export */ var each = (function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/namespaces.js\nvar xhtml = \"http://www.w3.org/1999/xhtml\";\n\n/* harmony default export */ var namespaces = ({\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/namespace.js\n\n\n/* harmony default export */ var namespace = (function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/attr.js\n\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\n/* harmony default export */ var attr = (function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/window.js\n/* harmony default export */ var src_window = (function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/style.js\n\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\n/* harmony default export */ var style = (function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n});\n\nfunction styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || src_window(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/property.js\nfunction propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\n/* harmony default export */ var property = (function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/classed.js\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\n/* harmony default export */ var classed = (function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/text.js\nfunction textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\n/* harmony default export */ var selection_text = (function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/html.js\nfunction htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\n/* harmony default export */ var html = (function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/raise.js\nfunction raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\n/* harmony default export */ var selection_raise = (function() {\n return this.each(raise);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/lower.js\nfunction lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\n/* harmony default export */ var selection_lower = (function() {\n return this.each(lower);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/creator.js\n\n\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\n/* harmony default export */ var creator = (function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/append.js\n\n\n/* harmony default export */ var append = (function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/insert.js\n\n\n\nfunction constantNull() {\n return null;\n}\n\n/* harmony default export */ var insert = (function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : src_selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/remove.js\nfunction remove_remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\n/* harmony default export */ var selection_remove = (function() {\n return this.each(remove_remove);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/clone.js\nfunction selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\n/* harmony default export */ var clone = (function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/datum.js\n/* harmony default export */ var datum = (function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/on.js\nvar filterEvents = {};\n\nvar on_event = null;\n\nif (typeof document !== \"undefined\") {\n var on_element = document.documentElement;\n if (!(\"onmouseenter\" in on_element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = on_event; // Events can be reentrant (e.g., focus).\n on_event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n on_event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\n/* harmony default export */ var selection_on = (function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n});\n\nfunction customEvent(event1, listener, that, args) {\n var event0 = on_event;\n event1.sourceEvent = on_event;\n on_event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n on_event = event0;\n }\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/dispatch.js\n\n\nfunction dispatchEvent(node, type, params) {\n var window = src_window(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\n/* harmony default export */ var dispatch = (function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar selection_root = [null];\n\nfunction Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection_selection() {\n return new Selection([[document.documentElement]], selection_root);\n}\n\nSelection.prototype = selection_selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selectAll,\n filter: filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: join,\n merge: selection_merge,\n order: order,\n sort: selection_sort,\n call: call,\n nodes: nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: each,\n attr: attr,\n style: style,\n property: property,\n classed: classed,\n text: selection_text,\n html: html,\n raise: selection_raise,\n lower: selection_lower,\n append: append,\n insert: insert,\n remove: selection_remove,\n clone: clone,\n datum: datum,\n on: selection_on,\n dispatch: dispatch\n};\n\n/* harmony default export */ var src_selection = (selection_selection);\n\n// CONCATENATED MODULE: ../node_modules/d3-selection/src/select.js\n\n\n/* harmony default export */ var src_select = (function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], selection_root);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-format/src/formatDecimal.js\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].\n/* harmony default export */ var formatDecimal = (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\n// CONCATENATED MODULE: ../node_modules/d3-format/src/exponent.js\n\n\n/* harmony default export */ var src_exponent = (function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-format/src/formatGroup.js\n/* harmony default export */ var formatGroup = (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\n// CONCATENATED MODULE: ../node_modules/d3-format/src/formatNumerals.js\n/* harmony default export */ var formatNumerals = (function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-format/src/formatSpecifier.js\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nfunction 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\nfunction 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\n// CONCATENATED MODULE: ../node_modules/d3-format/src/formatTrim.js\n// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\n/* harmony default export */ var formatTrim = (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\n// CONCATENATED MODULE: ../node_modules/d3-format/src/formatPrefixAuto.js\n\n\nvar prefixExponent;\n\n/* harmony default export */ var formatPrefixAuto = (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\n// CONCATENATED MODULE: ../node_modules/d3-format/src/formatRounded.js\n\n\n/* harmony default export */ var formatRounded = (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\n// CONCATENATED MODULE: ../node_modules/d3-format/src/formatTypes.js\n\n\n\n/* harmony default export */ var formatTypes = ({\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\n// CONCATENATED MODULE: ../node_modules/d3-format/src/identity.js\n/* harmony default export */ var identity = (function(x) {\n return x;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-format/src/locale.js\n\n\n\n\n\n\n\n\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\n/* harmony default export */ var src_locale = (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 // Perform the initial formatting.\n var valueNegative = value < 0;\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 during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n\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(src_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\n// CONCATENATED MODULE: ../node_modules/d3-format/src/defaultLocale.js\n\n\nvar defaultLocale_locale;\nvar defaultLocale_format;\nvar defaultLocale_formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nfunction defaultLocale(definition) {\n defaultLocale_locale = src_locale(definition);\n defaultLocale_format = defaultLocale_locale.format;\n defaultLocale_formatPrefix = defaultLocale_locale.formatPrefix;\n return defaultLocale_locale;\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-array/src/ascending.js\n/* harmony default export */ var src_ascending = (function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/treemap/round.js\n/* harmony default export */ var treemap_round = (function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/treemap/dice.js\n/* harmony default export */ var dice = (function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/partition.js\n\n\n\n/* harmony default export */ var src_partition = (function() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(treemap_round);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n dice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/count.js\nfunction count_count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\n/* harmony default export */ var hierarchy_count = (function() {\n return this.eachAfter(count_count);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/each.js\n/* harmony default export */ var hierarchy_each = (function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js\n/* harmony default export */ var eachBefore = (function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js\n/* harmony default export */ var eachAfter = (function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/sum.js\n/* harmony default export */ var sum = (function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/sort.js\n/* harmony default export */ var hierarchy_sort = (function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/path.js\n/* harmony default export */ var path = (function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n});\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/ancestors.js\n/* harmony default export */ var ancestors = (function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/descendants.js\n/* harmony default export */ var hierarchy_descendants = (function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/leaves.js\n/* harmony default export */ var leaves = (function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/links.js\n/* harmony default export */ var links = (function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/index.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nfunction computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nfunction Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: hierarchy_count,\n each: hierarchy_each,\n eachAfter: eachAfter,\n eachBefore: eachBefore,\n sum: sum,\n sort: hierarchy_sort,\n path: path,\n ancestors: ancestors,\n descendants: hierarchy_descendants,\n leaves: leaves,\n links: links,\n copy: node_copy\n};\n\n// CONCATENATED MODULE: ../node_modules/d3-array/src/ticks.js\nvar e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\n/* harmony default export */ var ticks = (function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n});\n\nfunction tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nfunction tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-array/src/bisector.js\n\n\n/* harmony default export */ var bisector = (function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n});\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return src_ascending(f(d), x);\n };\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-array/src/bisect.js\n\n\n\nvar ascendingBisect = bisector(src_ascending);\nvar bisectRight = ascendingBisect.right;\nvar bisectLeft = ascendingBisect.left;\n/* harmony default export */ var bisect = (bisectRight);\n\n// CONCATENATED MODULE: ../node_modules/d3-color/src/define.js\n/* harmony default export */ var define = (function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n});\n\nfunction 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\n// CONCATENATED MODULE: ../node_modules/d3-color/src/color.js\n\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar 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_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\nfunction color_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 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? new Rgb((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\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color_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\nfunction color_rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction 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, color_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\nfunction 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_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\nfunction 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\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/basis.js\nfunction 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\n/* harmony default export */ var src_basis = (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\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/basisClosed.js\n\n\n/* harmony default export */ var basisClosed = (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\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/constant.js\n/* harmony default export */ var src_constant = (function(x) {\n return function() {\n return x;\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/color.js\n\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\nfunction hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : src_constant(isNaN(a) ? b : a);\n}\n\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : src_constant(isNaN(a) ? b : a);\n };\n}\n\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : src_constant(isNaN(a) ? b : a);\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/rgb.js\n\n\n\n\n\n/* harmony default export */ var src_rgb = ((function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = color_rgb(start)).r, (end = color_rgb(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 = color_rgb(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\nvar rgbBasis = rgbSpline(src_basis);\nvar rgbBasisClosed = rgbSpline(basisClosed);\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/numberArray.js\n/* harmony default export */ var numberArray = (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\nfunction isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/array.js\n\n\n\n/* harmony default export */ var array = (function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n});\n\nfunction 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] = src_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\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/date.js\n/* harmony default export */ var date = (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\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/number.js\n/* harmony default export */ var number = (function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/object.js\n\n\n/* harmony default export */ var object = (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] = src_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\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/string.js\n\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction string_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\n/* harmony default export */ var string = (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 : string_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\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/value.js\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ var src_value = (function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? src_constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color_color(b)) ? (b = c, src_rgb) : string)\n : b instanceof color_color ? src_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\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/round.js\n/* harmony default export */ var src_round = (function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-scale/src/constant.js\n/* harmony default export */ var d3_scale_src_constant = (function(x) {\n return function() {\n return x;\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-scale/src/number.js\n/* harmony default export */ var src_number = (function(x) {\n return +x;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-scale/src/continuous.js\n\n\n\n\n\nvar unit = [0, 1];\n\nfunction continuous_identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : d3_scale_src_constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nfunction copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nfunction transformer() {\n var domain = unit,\n range = unit,\n interpolate = src_value,\n transform,\n untransform,\n unknown,\n clamp = continuous_identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== continuous_identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), number)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, src_number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = src_round, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : continuous_identity, rescale()) : clamp !== continuous_identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nfunction continuous() {\n return transformer()(continuous_identity, continuous_identity);\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-scale/src/init.js\nfunction initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nfunction initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-format/src/precisionPrefix.js\n\n\n/* harmony default export */ var precisionPrefix = (function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(src_exponent(value) / 3))) * 3 - src_exponent(Math.abs(step)));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-format/src/precisionRound.js\n\n\n/* harmony default export */ var precisionRound = (function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, src_exponent(max) - src_exponent(step)) + 1;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-format/src/precisionFixed.js\n\n\n/* harmony default export */ var precisionFixed = (function(step) {\n return Math.max(0, -src_exponent(Math.abs(step)));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-scale/src/tickFormat.js\n\n\n\n/* harmony default export */ var tickFormat = (function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return defaultLocale_formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return defaultLocale_format(specifier);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-scale/src/linear.js\n\n\n\n\n\nfunction linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nfunction linear_linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear_linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-ease/src/cubic.js\nfunction cubicIn(t) {\n return t * t * t;\n}\n\nfunction cubicOut(t) {\n return --t * t * t + 1;\n}\n\nfunction cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-dispatch/src/dispatch.js\nvar noop = {value: function() {}};\n\nfunction dispatch_dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction dispatch_parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch_dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = dispatch_parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\n/* harmony default export */ var src_dispatch = (dispatch_dispatch);\n\n// CONCATENATED MODULE: ../node_modules/d3-timer/src/timer.js\nvar timer_frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nfunction Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nfunction timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nfunction timerFlush() {\n now(); // Get the current time, if not already set.\n ++timer_frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --timer_frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n timer_frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n timer_frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (timer_frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n timer_frame = 1, setFrame(wake);\n }\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-timer/src/timeout.js\n\n\n/* harmony default export */ var src_timeout = (function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/schedule.js\n\n\n\nvar emptyOn = src_dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nvar CREATED = 0;\nvar SCHEDULED = 1;\nvar STARTING = 2;\nvar STARTED = 3;\nvar RUNNING = 4;\nvar ENDING = 5;\nvar ENDED = 6;\n\n/* harmony default export */ var transition_schedule = (function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n schedule_create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n});\n\nfunction init(node, id) {\n var schedule = schedule_get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nfunction schedule_set(node, id) {\n var schedule = schedule_get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nfunction schedule_get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction schedule_create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return src_timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n src_timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/interrupt.js\n\n\n/* harmony default export */ var interrupt = (function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/interrupt.js\n\n\n/* harmony default export */ var selection_interrupt = (function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/transform/decompose.js\nvar degrees = 180 / Math.PI;\n\nvar decompose_identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\n/* harmony default export */ var decompose = (function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/transform/parse.js\n\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nfunction parseCss(value) {\n if (value === \"none\") return decompose_identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nfunction parseSvg(value) {\n if (value == null) return decompose_identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return decompose_identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/transform/index.js\n\n\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nvar interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nvar interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/tween.js\n\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = schedule_set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = schedule_set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\n/* harmony default export */ var transition_tween = (function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = schedule_get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n});\n\nfunction tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = schedule_set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return schedule_get(node, id).value[name];\n };\n}\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/interpolate.js\n\n\n\n/* harmony default export */ var transition_interpolate = (function(a, b) {\n var c;\n return (typeof b === \"number\" ? number\n : b instanceof color_color ? src_rgb\n : (c = color_color(b)) ? (b = c, src_rgb)\n : string)(a, b);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/attr.js\n\n\n\n\n\nfunction attr_attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attr_attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attr_attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attr_attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attr_attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attr_attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\n/* harmony default export */ var transition_attr = (function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransformSvg : transition_interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attr_attrFunctionNS : attr_attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attr_attrRemoveNS : attr_attrRemove)(fullname)\n : (fullname.local ? attr_attrConstantNS : attr_attrConstant)(fullname, i, value));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/attrTween.js\n\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\n/* harmony default export */ var transition_attrTween = (function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/delay.js\n\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\n/* harmony default export */ var transition_delay = (function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : schedule_get(this.node(), id).delay;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/duration.js\n\n\nfunction durationFunction(id, value) {\n return function() {\n schedule_set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n schedule_set(this, id).duration = value;\n };\n}\n\n/* harmony default export */ var duration = (function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : schedule_get(this.node(), id).duration;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/ease.js\n\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n schedule_set(this, id).ease = value;\n };\n}\n\n/* harmony default export */ var ease = (function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : schedule_get(this.node(), id).ease;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/filter.js\n\n\n\n/* harmony default export */ var transition_filter = (function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/merge.js\n\n\n/* harmony default export */ var transition_merge = (function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/on.js\n\n\nfunction on_start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = on_start(name) ? init : schedule_set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\n/* harmony default export */ var transition_on = (function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? schedule_get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/remove.js\nfunction removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\n/* harmony default export */ var transition_remove = (function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/select.js\n\n\n\n\n/* harmony default export */ var transition_select = (function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = src_selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n transition_schedule(subgroup[i], name, id, i, subgroup, schedule_get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/selectAll.js\n\n\n\n\n/* harmony default export */ var transition_selectAll = (function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = schedule_get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n transition_schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/selection.js\n\n\nvar selection_Selection = src_selection.prototype.constructor;\n\n/* harmony default export */ var transition_selection = (function() {\n return new selection_Selection(this._groups, this._parents);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/style.js\n\n\n\n\n\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = styleValue(this, name),\n string1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction style_styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction style_styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = styleValue(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction style_styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = styleValue(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = schedule_set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = style_styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\n/* harmony default export */ var transition_style = (function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransformCss : transition_interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, style_styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, style_styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, style_styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/styleTween.js\nfunction styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\n/* harmony default export */ var transition_styleTween = (function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/text.js\n\n\nfunction text_textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction text_textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\n/* harmony default export */ var transition_text = (function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? text_textFunction(tweenValue(this, \"text\", value))\n : text_textConstant(value == null ? \"\" : value + \"\"));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/textTween.js\nfunction textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\n/* harmony default export */ var transition_textTween = (function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/transition.js\n\n\n\n/* harmony default export */ var transition_transition = (function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = schedule_get(node, id0);\n transition_schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/end.js\n\n\n/* harmony default export */ var transition_end = (function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = schedule_set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar transition_id = 0;\n\nfunction Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nfunction src_transition_transition(name) {\n return src_selection().transition(name);\n}\n\nfunction newId() {\n return ++transition_id;\n}\n\nvar selection_prototype = src_selection.prototype;\n\nTransition.prototype = src_transition_transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: duration,\n ease: ease,\n end: transition_end\n};\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/transition.js\n\n\n\n\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: cubicInOut\n};\n\nfunction transition_inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\n/* harmony default export */ var selection_transition = (function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n transition_schedule(node, name, id, i, group, timing || transition_inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/index.js\n\n\n\n\nsrc_selection.prototype.interrupt = selection_interrupt;\nsrc_selection.prototype.transition = selection_transition;\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/active.js\n\n\n\nvar active_root = [null];\n\n/* harmony default export */ var src_active = (function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], active_root, name, +i);\n }\n }\n }\n\n return null;\n});\n\n// CONCATENATED MODULE: ../node_modules/d3-transition/src/index.js\n\n\n\n\n\n// CONCATENATED MODULE: ./flamegraph.js\n\n\n\n\n\n\n\n\n/* harmony default export */ var flamegraph = __webpack_exports__[\"default\"] = (function () {\n var w = 960 // graph width\n var h = null // graph height\n var c = 18 // cell height\n var selection = null // selection\n var tooltip = null // tooltip\n var title = '' // graph title\n var transitionDuration = 750\n var transitionEase = cubicInOut // tooltip offset\n var sort = false\n var inverted = false // invert the graph direction\n var clickHandler = null\n var minFrameSize = 0\n var detailsElement = null\n var selfValue = false\n var differential = false\n var elided = false\n var searchSum = 0\n var totalValue = 0\n var maxDelta = 0\n var resetHeightOnZoom = false\n var scrollOnZoom = false\n var minHeight = null\n\n var getName = function (d) {\n return d.data.n || d.data.name\n }\n\n var getValue = function (d) {\n if ('v' in d) {\n return d.v\n } else {\n return d.value\n }\n }\n\n var getChildren = function (d) {\n return d.c || d.children\n }\n\n var getLibtype = function (d) {\n return d.data.l || d.data.libtype\n }\n\n var getDelta = function (d) {\n if ('d' in d.data) {\n return d.data.d\n } else {\n return d.data.delta\n }\n }\n\n var searchHandler = function () {\n if (detailsElement) { setSearchDetails() }\n }\n var originalSearchHandler = searchHandler\n\n let searchMatch = (d, term) => {\n if (!term) {\n return false\n }\n const re = new RegExp(term)\n const label = getName(d)\n return typeof label !== 'undefined' && label && label.match(re)\n }\n const originalSearchMatch = searchMatch\n\n var detailsHandler = function (d) {\n if (detailsElement) {\n if (d) {\n detailsElement.innerHTML = d\n } else {\n if (searchSum) {\n setSearchDetails()\n } else {\n detailsElement.innerHTML = ''\n }\n }\n }\n }\n var originalDetailsHandler = detailsHandler\n\n var labelHandler = function (d) {\n return getName(d) + ' (' + defaultLocale_format('.3f')(100 * (d.x1 - d.x0), 3) + '%, ' + getValue(d) + ' samples)'\n }\n\n var svg\n\n function setSearchDetails () {\n detailsElement.innerHTML = searchSum + ' of ' + totalValue + ' samples ( ' + defaultLocale_format('.3f')(100 * (searchSum / totalValue), 3) + '%)'\n }\n\n var colorMapper = function (d) {\n return d.highlight ? '#E600E6' : colorHash(getName(d), getLibtype(d), getDelta(d))\n }\n var originalColorMapper = colorMapper\n\n function generateHash (name) {\n // Return a vector (0.0->1.0) that is a hash of the input string.\n // The hash is computed to favor early characters over later ones, so\n // that strings with similar starts have similar vectors. Only the first\n // 6 characters are considered.\n const MAX_CHAR = 6\n\n var hash = 0\n var maxHash = 0\n var weight = 1\n var mod = 10\n\n if (name) {\n for (var i = 0; i < name.length; i++) {\n if (i > MAX_CHAR) { break }\n hash += weight * (name.charCodeAt(i) % mod)\n maxHash += weight * (mod - 1)\n weight *= 0.70\n }\n if (maxHash > 0) { hash = hash / maxHash }\n }\n return hash\n }\n\n function colorHash (name, libtype, delta) {\n // Return a color for the given name and library type. The library type\n // selects the hue, and the name is hashed to a color in that hue.\n\n var r\n var g\n var b\n\n if (differential) {\n r = 220\n g = 220\n b = 220\n\n if (!delta) {\n delta = 0\n }\n\n if (delta > 0) {\n b = Math.round(210 * (maxDelta - delta) / maxDelta)\n g = b\n } else if (delta < 0) {\n r = Math.round(210 * (maxDelta + delta) / maxDelta)\n g = r\n }\n } else {\n // default when libtype is not in use\n var hue = elided ? 'cold' : 'warm'\n\n if (!elided && !(typeof libtype === 'undefined' || libtype === '')) {\n // Select hue. Order is important.\n hue = 'red'\n if (typeof name !== 'undefined' && name && name.match(/::/)) {\n hue = 'yellow'\n }\n if (libtype === 'kernel') {\n hue = 'orange'\n } else if (libtype === 'jit') {\n hue = 'green'\n } else if (libtype === 'inlined') {\n hue = 'aqua'\n }\n }\n\n // calculate hash\n var vector = 0\n if (name) {\n var nameArr = name.split('`')\n if (nameArr.length > 1) {\n name = nameArr[nameArr.length - 1] // drop module name if present\n }\n name = name.split('(')[0] // drop extra info\n vector = generateHash(name)\n }\n\n // calculate color\n if (hue === 'red') {\n r = 200 + Math.round(55 * vector)\n g = 50 + Math.round(80 * vector)\n b = g\n } else if (hue === 'orange') {\n r = 190 + Math.round(65 * vector)\n g = 90 + Math.round(65 * vector)\n b = 0\n } else if (hue === 'yellow') {\n r = 175 + Math.round(55 * vector)\n g = r\n b = 50 + Math.round(20 * vector)\n } else if (hue === 'green') {\n r = 50 + Math.round(60 * vector)\n g = 200 + Math.round(55 * vector)\n b = r\n } else if (hue === 'aqua') {\n r = 50 + Math.round(60 * vector)\n g = 165 + Math.round(55 * vector)\n b = g\n } else if (hue === 'cold') {\n r = 0 + Math.round(55 * (1 - vector))\n g = 0 + Math.round(230 * (1 - vector))\n b = 200 + Math.round(55 * vector)\n } else {\n // original warm palette\n r = 200 + Math.round(55 * vector)\n g = 0 + Math.round(230 * (1 - vector))\n b = 0 + Math.round(55 * (1 - vector))\n }\n }\n\n return 'rgb(' + r + ',' + g + ',' + b + ')'\n }\n\n function show (d) {\n d.data.fade = false\n d.data.hide = false\n if (d.children) {\n d.children.forEach(show)\n }\n }\n\n function hideSiblings (node) {\n let child = node\n let parent = child.parent\n let children, i, sibling\n while (parent) {\n children = parent.children\n i = children.length\n while (i--) {\n sibling = children[i]\n if (sibling !== child) {\n sibling.data.hide = true\n }\n }\n child = parent\n parent = child.parent\n }\n }\n\n function fadeAncestors (d) {\n if (d.parent) {\n d.parent.data.fade = true\n fadeAncestors(d.parent)\n }\n }\n\n function zoom (d) {\n if (tooltip) tooltip.hide()\n hideSiblings(d)\n show(d)\n fadeAncestors(d)\n update()\n if (scrollOnZoom) {\n const chartOffset = svg._groups[0][0].parentNode.offsetTop\n const maxFrames = (window.innerHeight - chartOffset) / c\n const frameOffset = (d.height - maxFrames + 10) * c\n window.scrollTo({\n top: chartOffset + frameOffset,\n left: 0,\n behavior: 'smooth'\n })\n }\n if (typeof clickHandler === 'function') {\n clickHandler(d)\n }\n }\n\n function searchTree (d, term) {\n var results = []\n var sum = 0\n\n function searchInner (d, foundParent) {\n var found = false\n\n if (searchMatch(d, term)) {\n d.highlight = true\n found = true\n if (!foundParent) {\n sum += getValue(d)\n }\n results.push(d)\n } else {\n d.highlight = false\n }\n\n if (getChildren(d)) {\n getChildren(d).forEach(function (child) {\n searchInner(child, (foundParent || found))\n })\n }\n }\n\n searchInner(d, false)\n searchSum = sum\n searchHandler(results, sum, totalValue)\n }\n\n function findTree (d, id) {\n if (d.id === id) {\n return d\n } else {\n var children = getChildren(d)\n if (children) {\n for (var i = 0; i < children.length; i++) {\n var found = findTree(children[i], id)\n if (found) {\n return found\n }\n }\n }\n }\n }\n\n function clear (d) {\n d.highlight = false\n if (getChildren(d)) {\n getChildren(d).forEach(function (child) {\n clear(child)\n })\n }\n }\n\n function doSort (a, b) {\n if (typeof sort === 'function') {\n return sort(a, b)\n } else if (sort) {\n return src_ascending(getName(a), getName(b))\n }\n }\n\n var p = src_partition()\n\n function filterNodes (root) {\n var nodeList = root.descendants()\n if (minFrameSize > 0) {\n var kx = w / (root.x1 - root.x0)\n nodeList = nodeList.filter(function (el) {\n return ((el.x1 - el.x0) * kx) > minFrameSize\n })\n }\n return nodeList\n }\n\n function update () {\n selection.each(function (root) {\n var x = linear_linear().range([0, w])\n var y = linear_linear().range([0, c])\n\n reappraiseNode(root)\n\n totalValue = root.value\n\n if (sort) root.sort(doSort)\n\n p(root)\n\n var kx = w / (root.x1 - root.x0)\n function width (d) { return (d.x1 - d.x0) * kx }\n\n var descendants = filterNodes(root)\n var g = src_select(this).select('svg').selectAll('g').data(descendants, function (d) { return d.id })\n\n // if height is not set: set height on first update, after nodes were filtered by minFrameSize\n if (!h || resetHeightOnZoom) {\n var maxDepth = Math.max.apply(null, descendants.map(function (n) { return n.depth }))\n\n h = (maxDepth + 3) * c\n if (h < minHeight) h = minHeight\n\n src_select(this).select('svg').attr('height', h)\n }\n\n g.transition()\n .duration(transitionDuration)\n .ease(transitionEase)\n .attr('transform', function (d) { return 'translate(' + x(d.x0) + ',' + (inverted ? y(d.depth) : (h - y(d.depth) - c)) + ')' })\n\n g.select('rect')\n .transition()\n .duration(transitionDuration)\n .ease(transitionEase)\n .attr('width', width)\n\n var node = g.enter()\n .append('svg:g')\n .attr('transform', function (d) { return 'translate(' + x(d.x0) + ',' + (inverted ? y(d.depth) : (h - y(d.depth) - c)) + ')' })\n\n node.append('svg:rect')\n .transition()\n .delay(transitionDuration / 2)\n .attr('width', width)\n\n if (!tooltip) { node.append('svg:title') }\n\n node.append('foreignObject')\n .append('xhtml:div')\n\n // Now we have to re-select to see the new elements (why?).\n g = src_select(this).select('svg').selectAll('g').data(descendants, function (d) { return d.id })\n\n g.attr('width', width)\n .attr('height', function (d) { return c })\n .attr('name', function (d) { return getName(d) })\n .attr('class', function (d) { return d.data.fade ? 'frame fade' : 'frame' })\n\n g.select('rect')\n .attr('height', function (d) { return c })\n .attr('fill', function (d) { return colorMapper(d) })\n\n if (!tooltip) {\n g.select('title')\n .text(labelHandler)\n }\n\n g.select('foreignObject')\n .attr('width', width)\n .attr('height', function (d) { return c })\n .select('div')\n .attr('class', 'd3-flame-graph-label')\n .style('display', function (d) { return (width(d) < 35) ? 'none' : 'block' })\n .transition()\n .delay(transitionDuration)\n .text(getName)\n\n g.on('click', zoom)\n\n g.exit()\n .remove()\n\n g.on('mouseover', function (d) {\n if (tooltip) tooltip.show(d, this)\n detailsHandler(labelHandler(d))\n }).on('mouseout', function () {\n if (tooltip) tooltip.hide()\n detailsHandler(null)\n })\n })\n }\n\n function merge (data, samples) {\n samples.forEach(function (sample) {\n var node = data.find(function (element) {\n return (element.name === sample.name)\n })\n\n if (node) {\n if (node.original) {\n node.original += sample.value\n } else {\n node.value += sample.value\n }\n if (sample.children) {\n if (!node.children) {\n node.children = []\n }\n merge(node.children, sample.children)\n }\n } else {\n data.push(sample)\n }\n })\n }\n\n function forEachNode (node, f) {\n f(node)\n let children = node.children\n if (children) {\n const stack = [children]\n let count, child, grandChildren\n while (stack.length) {\n children = stack.pop()\n count = children.length\n while (count--) {\n child = children[count]\n f(child)\n grandChildren = child.children\n if (grandChildren) {\n stack.push(grandChildren)\n }\n }\n }\n }\n }\n\n function adoptNode (node) {\n maxDelta = 0\n let id = 0\n let delta = 0\n const wantDelta = differential\n forEachNode(node, function (n) {\n n.id = id++\n if (wantDelta) {\n delta = Math.abs(getDelta(n))\n if (maxDelta < delta) {\n maxDelta = delta\n }\n }\n })\n }\n\n function reappraiseNode (root) {\n let node, children, grandChildren, childrenValue, i, j, child, childValue\n const stack = []\n const included = []\n const excluded = []\n const compoundValue = !selfValue\n let item = root.data\n if (item.hide) {\n root.value = 0\n children = root.children\n if (children) {\n excluded.push(children)\n }\n } else {\n root.value = item.fade ? 0 : getValue(item)\n stack.push(root)\n }\n // First DFS pass:\n // 1. Update node.value with node's self value\n // 2. Populate excluded list with children under hidden nodes\n // 3. Populate included list with children under visible nodes\n while ((node = stack.pop())) {\n children = node.children\n if (children && (i = children.length)) {\n childrenValue = 0\n while (i--) {\n child = children[i]\n item = child.data\n if (item.hide) {\n child.value = 0\n grandChildren = child.children\n if (grandChildren) {\n excluded.push(grandChildren)\n }\n continue\n }\n if (item.fade) {\n child.value = 0\n } else {\n childValue = getValue(item)\n child.value = childValue\n childrenValue += childValue\n }\n stack.push(child)\n }\n // Here second part of `&&` is actually checking for `node.data.fade`. However,\n // checking for node.value is faster and presents more oportunities for JS optimizer.\n if (compoundValue && node.value) {\n node.value -= childrenValue\n }\n included.push(children)\n }\n }\n // Postorder traversal to compute compound value of each visible node.\n i = included.length\n while (i--) {\n children = included[i]\n childrenValue = 0\n j = children.length\n while (j--) {\n childrenValue += children[j].value\n }\n children[0].parent.value += childrenValue\n }\n // Continue DFS to set value of all hidden nodes to 0.\n while (excluded.length) {\n children = excluded.pop()\n j = children.length\n while (j--) {\n child = children[j]\n child.value = 0\n grandChildren = child.children\n if (grandChildren) {\n excluded.push(grandChildren)\n }\n }\n }\n }\n\n function chart (s) {\n const root = hierarchy(s.datum(), getChildren)\n\n adoptNode(root)\n\n selection = s.datum(root)\n\n if (!arguments.length) return chart\n\n selection.each(function (data) {\n if (!svg) {\n svg = src_select(this)\n .append('svg:svg')\n .attr('width', w)\n .attr('class', 'partition d3-flame-graph')\n\n if (h) {\n if (h < minHeight) h = minHeight\n svg.attr('height', h)\n }\n\n svg.append('svg:text')\n .attr('class', 'title')\n .attr('text-anchor', 'middle')\n .attr('y', '25')\n .attr('x', w / 2)\n .attr('fill', '#808080')\n .text(title)\n\n if (tooltip) svg.call(tooltip)\n }\n })\n\n // first draw\n update()\n }\n\n chart.height = function (_) {\n if (!arguments.length) { return h }\n h = _\n return chart\n }\n\n chart.minHeight = function (_) {\n if (!arguments.length) { return minHeight }\n minHeight = _\n return chart\n }\n\n chart.width = function (_) {\n if (!arguments.length) { return w }\n w = _\n return chart\n }\n\n chart.cellHeight = function (_) {\n if (!arguments.length) { return c }\n c = _\n return chart\n }\n\n chart.tooltip = function (_) {\n if (!arguments.length) { return tooltip }\n if (typeof _ === 'function') {\n tooltip = _\n }\n return chart\n }\n\n chart.title = function (_) {\n if (!arguments.length) { return title }\n title = _\n return chart\n }\n\n chart.transitionDuration = function (_) {\n if (!arguments.length) { return transitionDuration }\n transitionDuration = _\n return chart\n }\n\n chart.transitionEase = function (_) {\n if (!arguments.length) { return transitionEase }\n transitionEase = _\n return chart\n }\n\n chart.sort = function (_) {\n if (!arguments.length) { return sort }\n sort = _\n return chart\n }\n\n chart.inverted = function (_) {\n if (!arguments.length) { return inverted }\n inverted = _\n return chart\n }\n\n chart.differential = function (_) {\n if (!arguments.length) { return differential }\n differential = _\n return chart\n }\n\n chart.elided = function (_) {\n if (!arguments.length) { return elided }\n elided = _\n return chart\n }\n\n chart.setLabelHandler = function (_) {\n if (!arguments.length) { return labelHandler }\n labelHandler = _\n return chart\n }\n // Kept for backwards compatibility.\n chart.label = chart.setLabelHandler\n\n chart.search = function (term) {\n selection.each(function (data) {\n searchTree(data, term)\n update()\n })\n }\n\n chart.findById = function (id) {\n if (typeof (id) === 'undefined' || id === null) {\n return null\n }\n let found = null\n selection.each(function (data) {\n if (found === null) {\n found = findTree(data, id)\n }\n })\n return found\n }\n\n chart.clear = function () {\n searchSum = 0\n detailsHandler(null)\n selection.each(function (data) {\n clear(data)\n update()\n })\n }\n\n chart.zoomTo = function (d) {\n zoom(d)\n }\n\n chart.resetZoom = function () {\n selection.each(function (data) {\n zoom(data) // zoom to root\n })\n }\n\n chart.onClick = function (_) {\n if (!arguments.length) {\n return clickHandler\n }\n clickHandler = _\n return chart\n }\n\n chart.merge = function (samples) {\n if (!selection) { return chart }\n var newRoot // Need to re-create hierarchy after data changes.\n selection.each(function (root) {\n merge([root.data], [samples])\n newRoot = hierarchy(root.data, getChildren)\n adoptNode(newRoot)\n })\n selection = selection.datum(newRoot)\n update()\n return chart\n }\n\n chart.update = function (samples) {\n if (!selection) { return chart }\n var newRoot // Need to re-create hierarchy after data changes.\n selection.each(function (root) {\n root.data = samples\n newRoot = hierarchy(root.data, getChildren)\n adoptNode(newRoot)\n })\n selection = selection.datum(newRoot)\n update()\n return chart\n }\n\n chart.destroy = function () {\n if (!selection) { return chart }\n if (tooltip) tooltip.hide()\n selection.selectAll('svg').remove()\n return chart\n }\n\n chart.setColorMapper = function (_) {\n if (!arguments.length) {\n colorMapper = originalColorMapper\n return chart\n }\n colorMapper = (d) => {\n const originalColor = originalColorMapper(d)\n return _(d, originalColor)\n }\n return chart\n }\n // Kept for backwards compatibility.\n chart.color = chart.setColorMapper\n\n chart.minFrameSize = function (_) {\n if (!arguments.length) { return minFrameSize }\n minFrameSize = _\n return chart\n }\n\n chart.setDetailsElement = function (_) {\n if (!arguments.length) { return detailsElement }\n detailsElement = _\n return chart\n }\n // Kept for backwards compatibility.\n chart.details = chart.setDetailsElement\n\n chart.selfValue = function (_) {\n if (!arguments.length) { return selfValue }\n selfValue = _\n return chart\n }\n\n chart.resetHeightOnZoom = function (_) {\n if (!arguments.length) { return resetHeightOnZoom }\n resetHeightOnZoom = _\n return chart\n }\n\n chart.scrollOnZoom = function (_) {\n if (!arguments.length) { return scrollOnZoom }\n scrollOnZoom = _\n return chart\n }\n\n chart.getName = function (_) {\n if (!arguments.length) { return getName }\n getName = _\n return chart\n }\n\n chart.getValue = function (_) {\n if (!arguments.length) { return getValue }\n getValue = _\n return chart\n }\n\n chart.getChildren = function (_) {\n if (!arguments.length) { return getChildren }\n getChildren = _\n return chart\n }\n\n chart.getLibtype = function (_) {\n if (!arguments.length) { return getLibtype }\n getLibtype = _\n return chart\n }\n\n chart.getDelta = function (_) {\n if (!arguments.length) { return getDelta }\n getDelta = _\n return chart\n }\n\n chart.setSearchHandler = function (_) {\n if (!arguments.length) {\n searchHandler = originalSearchHandler\n return chart\n }\n searchHandler = _\n return chart\n }\n\n chart.setDetailsHandler = function (_) {\n if (!arguments.length) {\n detailsHandler = originalDetailsHandler\n return chart\n }\n detailsHandler = _\n return chart\n }\n\n chart.setSearchMatch = function (_) {\n if (!arguments.length) {\n searchMatch = originalSearchMatch\n return chart\n }\n searchMatch = _\n return chart\n }\n\n return chart\n});\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","module.exports = __WEBPACK_EXTERNAL_MODULE__3305__;","module.exports = __WEBPACK_EXTERNAL_MODULE__7388__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5980__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2650__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var cache = null;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n return cache.lastResult;\n }\n var lastResult = resultFn.apply(this, newArgs);\n cache = {\n lastResult: lastResult,\n lastArgs: newArgs,\n lastThis: this,\n };\n return lastResult;\n }\n memoized.clear = function clear() {\n cache = null;\n };\n return memoized;\n}\n\nexport { memoizeOne as default };\n","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../sass-loader/dist/cjs.js!./d3-flamegraph.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../sass-loader/dist/cjs.js!./d3-flamegraph.css\";\n export default content && content.locals ? content.locals : undefined;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../../node_modules/sass-loader/dist/cjs.js!./flamegraph.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../../../../node_modules/sass-loader/dist/cjs.js!./flamegraph.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { flamegraph, FlameGraph, StackFrame } from 'd3-flame-graph';\nimport 'd3-flame-graph/dist/d3-flamegraph.css';\nimport { select } from 'd3-selection';\nimport _ from 'lodash';\nimport React, { PureComponent } from 'react';\nimport './css/flamegraph.css';\n\ninterface Props {\n width: number;\n height: number;\n stacks: StackFrame;\n title: string;\n}\n\ninterface State {\n searchText: string;\n}\n\ndeclare var angular: any;\n\nexport class FlameGraphChart extends PureComponent<Props, State> {\n static barHeight = 50; // width + margin-bottom of .flamegraph-bar\n\n container: React.RefObject<HTMLDivElement>;\n flamegraph: FlameGraph;\n\n constructor(props: Props) {\n super(props);\n this.container = React.createRef();\n this.flamegraph = this.createFlameGraph();\n this.state = {\n searchText: '',\n };\n }\n\n disableAutoRefresh() {\n try {\n angular.element(document).injector().get('timeSrv').setAutoRefresh('');\n } catch (error) {\n // this API may be removed in a future version of Grafana\n }\n }\n\n onStackFrameClick = () => {\n this.disableAutoRefresh();\n };\n\n createFlameGraph() {\n return flamegraph()\n .selfValue(true)\n .minFrameSize(5)\n .width(this.props.width)\n .height(this.props.height - FlameGraphChart.barHeight)\n .transitionDuration(0) // disable animations due to repainting\n .onClick(this.onStackFrameClick);\n }\n\n handleResetZoom = () => {\n this.flamegraph.resetZoom();\n };\n\n handleSearchChangeDebounced = _.debounce((searchText: string) => {\n if (searchText === '') {\n this.flamegraph.clear();\n } else {\n this.flamegraph.search(searchText);\n }\n }, 200);\n\n handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n this.disableAutoRefresh();\n const searchText = event.target.value;\n this.handleSearchChangeDebounced(searchText);\n if (searchText !== this.state.searchText) {\n this.setState({ searchText });\n }\n };\n\n render() {\n return (\n <>\n <div className=\"flamegraph-bar gf-form\">\n <div className=\"left\" />\n <div className=\"center\">\n <span className=\"date\">{this.props.title}</span>\n </div>\n <div className=\"right\">\n <button className=\"btn btn-inverse width-8\" onClick={this.handleResetZoom}>\n Reset zoom\n </button>\n <label className=\"gf-form--has-input-icon\">\n <input\n type=\"text\"\n className=\"gf-form-input width-15\"\n placeholder=\"Search\"\n onChange={this.handleSearchChange}\n />\n <i className=\"gf-form-input-icon fa fa-search\" />\n </label>\n </div>\n </div>\n <div ref={this.container} />\n </>\n );\n }\n\n drawFlameGraph() {\n this.flamegraph.destroy();\n\n this.flamegraph = this.createFlameGraph();\n select(this.container.current).datum(this.props.stacks).call(this.flamegraph);\n }\n\n drawFlameGraphDebounced = _.debounce(this.drawFlameGraph, 100);\n\n componentDidMount() {\n this.drawFlameGraph();\n }\n\n componentDidUpdate(prevProps: Readonly<Props>, prevState: Readonly<State>) {\n if (this.props.width !== prevProps.width || this.props.height !== prevProps.height) {\n this.drawFlameGraphDebounced();\n } else {\n this.flamegraph.update(this.props.stacks);\n }\n }\n}\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import { StackFrame } from 'd3-flame-graph';\nimport { FieldType, getTimeField, MISSING_VALUE, PanelData } from '@grafana/data';\nimport { Options } from './types';\n\ninterface FlameGraphModel {\n root: StackFrame;\n minDate: number;\n maxDate: number;\n}\n\nfunction readStacks(root: StackFrame, options: Options, instanceName: string, count: number) {\n let curNode = root;\n const stacks = instanceName.split(/[\\n,]/);\n for (let stackFrame of stacks) {\n stackFrame = stackFrame.trim();\n if (!stackFrame || (options.hideUnresolvedStackFrames && stackFrame.startsWith('0x'))) {\n continue;\n }\n if (options.hideIdleStacks && stackFrame.startsWith('cpuidle_enter_state+')) {\n return;\n }\n\n let child = curNode.children.find(child => child.name === stackFrame);\n if (!child) {\n child = { name: stackFrame, value: 0, children: [] };\n curNode.children.push(child);\n }\n curNode = child;\n }\n curNode.value = count;\n}\n\nexport function generateFlameGraphModel(panelData: PanelData, options: Options): FlameGraphModel {\n const model: FlameGraphModel = {\n root: { name: 'root', value: 0, children: [] },\n minDate: 0,\n maxDate: 0,\n };\n\n if (panelData.series.length !== 1) {\n return model;\n }\n\n const dataFrame = panelData.series[0];\n const { timeField } = getTimeField(dataFrame);\n if (!timeField || dataFrame.length === 0) {\n return model;\n }\n\n model.minDate = timeField.values.get(0);\n model.maxDate = timeField.values.get(timeField.values.length - 1);\n\n for (const field of dataFrame.fields) {\n if (field.type !== FieldType.number || !field.config.custom?.instance?.name) {\n continue;\n }\n\n // each dataframe (stack) is a rate-converted counter\n // sum all rates in the selected time frame\n let count = 0;\n for (let i = 0; i < field.values.length; i++) {\n const value = field.values.get(i);\n if (value !== MISSING_VALUE) {\n count += value;\n }\n }\n if (count < options.minSamples) {\n continue;\n }\n\n readStacks(model.root, options, field.config.custom?.instance?.name, count);\n }\n\n return model;\n}\n","import memoizeOne from 'memoize-one';\nimport React, { PureComponent } from 'react';\nimport { dateTime, PanelProps } from '@grafana/data';\nimport { Tooltip } from '@grafana/ui';\nimport { FlameGraphChart } from './FlameGraphChart';\nimport { generateFlameGraphModel } from './model';\nimport { Options } from './types';\n\nexport class FlameGraphPanel extends PureComponent<PanelProps<Options>> {\n computeModel = memoizeOne(generateFlameGraphModel);\n\n render() {\n const model = this.computeModel(this.props.data, this.props.options);\n if (model.root.children.length === 0) {\n return (\n <div className=\"datapoints-warning\">\n <span className=\"small\">\n Sampling, waiting for data...\n <Tooltip content=\"Data query didn't return anything yet\" placement=\"top\">\n <i className=\"grafana-tip fa fa-question-circle\" />\n </Tooltip>\n </span>\n </div>\n );\n }\n\n const fromDate = dateTime(model.minDate).format('HH:mm:ss');\n const toDate = dateTime(model.maxDate).format('HH:mm:ss');\n const title = `${fromDate} - ${toDate}`;\n return (\n <FlameGraphChart width={this.props.width} height={this.props.height} stacks={model.root} title={title} />\n );\n }\n}\n","export interface Options {\n minSamples: number;\n hideUnresolvedStackFrames: boolean;\n hideIdleStacks: boolean;\n}\n\nexport const defaults: Options = {\n minSamples: 1,\n hideUnresolvedStackFrames: false,\n hideIdleStacks: false,\n};\n","import { PanelPlugin } from '@grafana/data';\nimport { FlameGraphPanel } from './FlameGraphPanel';\nimport { defaults, Options } from './types';\n\nexport const plugin = new PanelPlugin<Options>(FlameGraphPanel).setPanelOptions(builder =>\n builder\n .addNumberInput({\n path: 'minSamples',\n name: 'Min samples',\n defaultValue: defaults.minSamples,\n })\n .addBooleanSwitch({\n path: 'hideUnresolvedStackFrames',\n name: 'Hide unresolved',\n defaultValue: defaults.hideUnresolvedStackFrames,\n })\n .addBooleanSwitch({\n path: 'hideIdleStacks',\n name: 'Hide idle stacks',\n defaultValue: defaults.hideIdleStacks,\n })\n);\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","factory","window","installedModules","moduleId","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","allocationColorMapper","highlight","color1","color2","weight","w1","w2","Math","round","pickHex","offCpuColorMapper","vector","nameArr","split","hash","maxHash","charCodeAt","generateHash","nodeJsColorMapper","originalColor","color","v8_jit","v8JIT","javascript","optimized","extras","opt","g","b","none","defaultFlamegraphTooltip","src_selector","selector","querySelector","selectorAll_empty","selectorAll","querySelectorAll","matcher","matches","sparse","update","Array","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","bindIndex","group","enter","exit","node","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","ascending","a","NaN","constructor","appendChild","child","insertBefore","next","xhtml","namespaces","svg","xlink","xml","xmlns","namespace","prefix","indexOf","slice","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","apply","arguments","attrFunctionNS","src_window","defaultView","document","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","classList","ClassList","_node","_names","getAttribute","classedAdd","names","add","classedRemove","remove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","parentNode","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","splice","contains","creator","constantNull","remove_remove","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","filterEvents","on_event","filterContextListener","listener","index","contextListener","event","related","relatedTarget","compareDocumentPosition","event1","event0","parseTypenames","typenames","type","onRemove","typename","on","__on","j","removeEventListener","capture","onAdd","wrap","addEventListener","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","mouseenter","mouseleave","root","Selection","groups","parents","_groups","_parents","selection_selection","select","subgroups","subnode","subgroup","selectAll","filter","match","size","each","x","enterGroup","updateGroup","previous","i0","i1","_enter","_exit","onenter","onupdate","onexit","append","merge","order","selection","groups0","groups1","m0","m1","min","merges","group0","group1","sort","compare","compareNode","sortgroups","sortgroup","callback","nodes","empty","attr","getAttributeNS","classed","text","html","insert","before","deep","dispatch","src_selection","noop","dispatch_dispatch","_","test","Error","Dispatch","dispatch_parseTypenames","types","set","T","copy","that","args","taskHead","taskTail","src_dispatch","timer_frame","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","f","setTimeout","clearNow","Timer","_call","_time","timer","delay","time","restart","wake","e","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","TypeError","stop","src_timeout","elapsed","emptyOn","emptyTween","transition_schedule","timing","schedules","__transition","self","tween","schedule","state","start","tick","duration","ease","schedule_create","init","schedule_get","schedule_set","cssNode","cssRoot","cssView","svgNode","number","degrees","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","decompose","sqrt","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","q","xa","ya","xb","yb","translate","scale","interpolateTransformCss","transform","interpolateTransformSvg","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","transition","_id","define","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","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","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","color_color","format","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","color_rgb","rgb_formatHex","hex","rgb_formatRgb","isNaN","max","h","Hsl","hslConvert","hsl2rgb","m2","basis","v0","v1","v2","v3","t3","channels","assign","displayable","formatHsl","pow","src_constant","linear","gamma","y","nogamma","exponential","src_rgb","rgbGamma","end","rgbSpline","spline","colors","values","floor","reA","reB","am","bm","bs","bi","lastIndex","one","zero","transition_interpolate","attr_attrRemove","attr_attrRemoveNS","attr_attrConstant","interpolate","value1","string00","interpolate0","string1","string0","attr_attrConstantNS","attr_attrFunction","string10","attr_attrFunctionNS","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","every","on_start","selection_Selection","style_styleRemove","styleInterpolate","styleTween","textInterpolate","textTween","transition_id","Transition","_name","newId","selection_prototype","children","inherit","id0","id1","styleNull","style_styleFunction","listener0","styleMaybeRemove","style_styleConstant","text_textFunction","text_textConstant","Promise","resolve","reject","cancel","interrupt","defaultTiming","transition_inherit","defaultLabel","rootElement","tooltip","tip","show","pageX","pageY","hide","active","selection_root","src_select","formatDecimal","toExponential","coefficient","src_exponent","abs","re","formatSpecifier","specifier","FormatSpecifier","fill","align","sign","symbol","width","comma","precision","prefixExponent","defaultLocale_locale","defaultLocale_format","defaultLocale_formatPrefix","formatRounded","exponent","formatTypes","toFixed","toPrecision","toUpperCase","prefixes","src_locale","locale","grouping","thousands","Number","substring","reverse","currencyPrefix","currency","currencySuffix","decimal","numerals","replace","formatNumerals","String","percent","minus","nan","newFormat","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","padding","formatPrefix","src_ascending","treemap_round","x0","y0","x1","y1","src_partition","dx","dy","partition","height","eachBefore","dice","depth","positionNode","count_count","sum","hierarchy","childs","Node","valued","defaultChildren","computeHeight","copyData","count","eachAfter","current","path","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","links","target","e10","e5","e2","tickIncrement","step","power","log","LN10","error","ascendingBisect","left","lo","hi","mid","right","bisect","numberArray","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","src_value","date","setTime","string_zero","isArray","valueOf","src_round","src_number","unit","continuous_identity","normalize","bimap","domain","range","d0","d1","r0","r1","polymap","clamp","unknown","transformer","untransform","piecewise","output","input","rescale","invert","from","rangeRound","u","continuous","initRange","tickFormat","step0","step1","tickStep","precisionPrefix","precisionRound","precisionFixed","linearish","ticks","isFinite","ceil","nice","linear_linear","cubicInOut","decompose_identity","w","title","transitionDuration","transitionEase","inverted","clickHandler","minFrameSize","detailsElement","selfValue","differential","elided","searchSum","totalValue","maxDelta","resetHeightOnZoom","scrollOnZoom","minHeight","getName","getValue","getChildren","getLibtype","libtype","getDelta","delta","searchHandler","setSearchDetails","originalSearchHandler","searchMatch","term","label","originalSearchMatch","detailsHandler","originalDetailsHandler","labelHandler","colorMapper","hue","MAX_CHAR","mod","colorHash","originalColorMapper","fade","forEach","fadeAncestors","zoom","sibling","hideSiblings","chartOffset","offsetTop","maxFrames","innerHeight","frameOffset","scrollTo","top","behavior","findTree","found","clear","doSort","grandChildren","childrenValue","childValue","stack","included","excluded","compoundValue","reappraiseNode","kx","nodeList","el","filterNodes","maxDepth","samples","sample","find","element","original","adoptNode","wantDelta","forEachNode","chart","cellHeight","setLabelHandler","search","results","searchInner","foundParent","searchTree","findById","zoomTo","resetZoom","onClick","newRoot","destroy","setColorMapper","setDetailsElement","details","setSearchHandler","setDetailsHandler","setSearchMatch","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","api","domAPI","newObj","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","styleTarget","HTMLIFrameElement","contentDocument","head","getTarget","setAttributes","attributes","styleElement","nonce","insertStyleElement","styleTagTransform","removeStyleElement","styleSheet","cssText","createTextNode","__WEBPACK_EXTERNAL_MODULE__3305__","__WEBPACK_EXTERNAL_MODULE__7388__","__WEBPACK_EXTERNAL_MODULE__5980__","__WEBPACK_EXTERNAL_MODULE__2650__","__webpack_module_cache__","__webpack_require__","cachedModule","__webpack_modules__","prop","nc","safeIsNaN","areInputsEqual","newInputs","lastInputs","first","second","memoizeOne","resultFn","isEqual","cache","memoized","newArgs","lastThis","lastArgs","lastResult","childMatcher","childFirst","firstElementChild","Map","has","delete","array","arrayAll","selectChild","childFind","selectChildren","childrenFilter","constant","exitGroup","iterator","FlameGraphChart","props","disableAutoRefresh","flamegraph","searchText","handleSearchChangeDebounced","setState","drawFlameGraph","container","React","createFlameGraph","angular","injector","setAutoRefresh","barHeight","onStackFrameClick","className","handleResetZoom","placeholder","onChange","handleSearchChange","ref","stacks","prevProps","prevState","drawFlameGraphDebounced","PureComponent","readStacks","instanceName","curNode","stackFrame","hideUnresolvedStackFrames","startsWith","hideIdleStacks","generateFlameGraphModel","panelData","model","minDate","maxDate","series","dataFrame","timeField","getTimeField","fields","field","FieldType","config","custom","instance","MISSING_VALUE","minSamples","FlameGraphPanel","computeModel","Tooltip","placement","fromDate","dateTime","toDate","defaults","plugin","PanelPlugin","setPanelOptions","builder","addNumberInput","defaultValue","addBooleanSwitch"],"sourceRoot":""}