Hacked By AnonymousFox
{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highcharts JS v12.1.2 (2025-01-09)\n * @module highcharts/modules/series-label\n * @requires highcharts\n *\n * (c) 2009-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"highcharts\"), require(\"highcharts\")[\"Templating\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/modules/series-label\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"Templating\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/modules/series-label\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"Templating\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"Templating\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__984__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 984:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__984__;\n\n/***/ }),\n\n/***/ 944:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__944__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ series_label_src; }\n});\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\"],\"commonjs\":[\"highcharts\"],\"commonjs2\":[\"highcharts\"],\"root\":[\"Highcharts\"]}\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_ = __webpack_require__(944);\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default = /*#__PURE__*/__webpack_require__.n(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Templating\"],\"commonjs\":[\"highcharts\",\"Templating\"],\"commonjs2\":[\"highcharts\",\"Templating\"],\"root\":[\"Highcharts\",\"Templating\"]}\nvar highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_ = __webpack_require__(984);\nvar highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default = /*#__PURE__*/__webpack_require__.n(highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_);\n;// ./code/es5/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js\n/* *\n *\n * (c) 2009-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Constants\n *\n * */\n/**\n * Series labels are placed as close to the series as possible in a\n * natural way, seeking to avoid other series. The goal of this\n * feature is to make the chart more easily readable, like if a\n * human designer placed the labels in the optimal position.\n *\n * The series labels currently work with series types having a\n * `graph` or an `area`.\n *\n * @sample highcharts/series-label/line-chart\n * Line chart\n * @sample highcharts/demo/streamgraph\n * Stream graph\n * @sample highcharts/series-label/stock-chart\n * Stock chart\n *\n * @declare Highcharts.SeriesLabelOptionsObject\n * @since 6.0.0\n * @product highcharts highstock gantt\n * @requires modules/series-label\n * @optionparent plotOptions.series.label\n */\nvar SeriesLabelDefaults = {\n /**\n * Enable the series label per series.\n */\n enabled: true,\n /**\n * Allow labels to be placed distant to the graph if necessary,\n * and draw a connector line to the graph. Setting this option\n * to true may decrease the performance significantly, since the\n * algorithm with systematically search for open spaces in the\n * whole plot area. Visually, it may also result in a more\n * cluttered chart, though more of the series will be labeled.\n */\n connectorAllowed: false,\n /**\n * If the label is closer than this to a neighbour graph, draw a\n * connector.\n */\n connectorNeighbourDistance: 24,\n /**\n * A format string for the label, with support for a subset of\n * HTML. Variables are enclosed by curly brackets. Available\n * variables are `name`, `options.xxx`, `color` and other\n * members from the `series` object. Use this option also to set\n * a static text for the label.\n *\n * @type string\n * @since 8.1.0\n */\n format: void 0,\n /**\n * Callback function to format each of the series' labels. The\n * `this` keyword refers to the series object. By default the\n * `formatter` is undefined and the `series.name` is rendered.\n *\n * @type {Highcharts.FormatterCallbackFunction<Series>}\n * @since 8.1.0\n */\n formatter: void 0,\n /**\n * For area-like series, allow the font size to vary so that\n * small areas get a smaller font size. The default applies this\n * effect to area-like series but not line-like series.\n *\n * @sample highcharts/demo/streamgraph\n * Min and max font size on a streamgraph\n * @type {number|null}\n */\n minFontSize: null,\n /**\n * For area-like series, allow the font size to vary so that\n * small areas get a smaller font size. The default applies this\n * effect to area-like series but not line-like series.\n *\n * @sample highcharts/demo/streamgraph\n * Min and max font size on a streamgraph\n *\n * @type {number|null}\n */\n maxFontSize: null,\n /**\n * Draw the label on the area of an area series. By default it\n * is drawn on the area. Set it to `false` to draw it next to\n * the graph instead.\n *\n * @type {boolean|null}\n */\n onArea: null,\n /**\n * Styles for the series label. The color defaults to the series\n * color, or a contrast color if `onArea`.\n *\n * @type {Highcharts.CSSObject}\n */\n style: {\n /**\n * @type {number|string}\n */\n fontSize: '0.8em',\n /** @internal */\n fontWeight: 'bold'\n },\n /**\n * Whether to use HTML to render the series label.\n */\n useHTML: false,\n /**\n * An array of boxes to avoid when laying out the labels. Each\n * item has a `left`, `right`, `top` and `bottom` property.\n *\n * @type {Array<Highcharts.LabelIntersectBoxObject>}\n */\n boxesToAvoid: []\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var SeriesLabel_SeriesLabelDefaults = (SeriesLabelDefaults);\n\n;// ./code/es5/es-modules/Extensions/SeriesLabel/SeriesLabelUtilities.js\n/* *\n *\n * (c) 2009-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Functions\n *\n * */\n/**\n * Counter-clockwise, part of the fast line intersection logic.\n *\n * @private\n * @function ccw\n */\nfunction ccw(x1, y1, x2, y2, x3, y3) {\n var cw = ((y3 - y1) * (x2 - x1)) - ((y2 - y1) * (x3 - x1));\n return cw > 0 ? true : !(cw < 0);\n}\n/**\n * Detect if two lines intersect.\n *\n * @private\n * @function intersectLine\n */\nfunction intersectLine(x1, y1, x2, y2, x3, y3, x4, y4) {\n return ccw(x1, y1, x3, y3, x4, y4) !== ccw(x2, y2, x3, y3, x4, y4) &&\n ccw(x1, y1, x2, y2, x3, y3) !== ccw(x1, y1, x2, y2, x4, y4);\n}\n/**\n * Detect if a box intersects with a line.\n *\n * @private\n * @function boxIntersectLine\n */\nfunction boxIntersectLine(x, y, w, h, x1, y1, x2, y2) {\n return (intersectLine(x, y, x + w, y, x1, y1, x2, y2) || // Top of label\n intersectLine(x + w, y, x + w, y + h, x1, y1, x2, y2) || // Right\n intersectLine(x, y + h, x + w, y + h, x1, y1, x2, y2) || // Bottom\n intersectLine(x, y, x, y + h, x1, y1, x2, y2) // Left of label\n );\n}\n/**\n * @private\n */\nfunction intersectRect(r1, r2) {\n return !(r2.left > r1.right ||\n r2.right < r1.left ||\n r2.top > r1.bottom ||\n r2.bottom < r1.top);\n}\n/* *\n *\n * Default Export\n *\n * */\nvar SeriesLabelUtilities = {\n boxIntersectLine: boxIntersectLine,\n intersectRect: intersectRect\n};\n/* harmony default export */ var SeriesLabel_SeriesLabelUtilities = (SeriesLabelUtilities);\n\n;// ./code/es5/es-modules/Extensions/SeriesLabel/SeriesLabel.js\n/* *\n *\n * (c) 2009-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n/*\n * Highcharts module to place labels next to a series in a natural position.\n *\n * TODO:\n * - add column support (box collision detection, boxesToAvoid logic)\n * - add more options (connector, format, formatter)\n *\n * https://jsfiddle.net/highcharts/L2u9rpwr/\n * https://jsfiddle.net/highcharts/y5A37/\n * https://jsfiddle.net/highcharts/264Nm/\n * https://jsfiddle.net/highcharts/y5A37/\n */\n\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n\nvar animObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).animObject;\n\nvar format = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default()).format;\n\nvar setOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).setOptions;\n\nvar composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\n\nvar SeriesLabel_boxIntersectLine = SeriesLabel_SeriesLabelUtilities.boxIntersectLine, SeriesLabel_intersectRect = SeriesLabel_SeriesLabelUtilities.intersectRect;\n\nvar addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique, syncTimeout = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).syncTimeout;\n/* *\n *\n * Constants\n *\n * */\nvar labelDistance = 3;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Check whether a proposed label position is clear of other elements.\n * @private\n */\nfunction checkClearPoint(series, x, y, bBox, checkDistance) {\n var chart = series.chart,\n seriesLabelOptions = series.options.label || {},\n onArea = pick(seriesLabelOptions.onArea, !!series.area),\n findDistanceToOthers = (onArea || seriesLabelOptions.connectorAllowed),\n leastDistance = 16,\n boxesToAvoid = chart.boxesToAvoid;\n var distToOthersSquared = Number.MAX_VALUE, // Distance to other graphs\n distToPointSquared = Number.MAX_VALUE,\n dist,\n connectorPoint,\n withinRange,\n xDist,\n yDist,\n i,\n j;\n /**\n * Get the weight in order to determine the ideal position. Larger distance\n * to other series gives more weight. Smaller distance to the actual point\n * (connector points only) gives more weight.\n * @private\n */\n function getWeight(distToOthersSquared, distToPointSquared) {\n return distToOthersSquared - distToPointSquared;\n }\n // First check for collision with existing labels\n for (i = 0; boxesToAvoid && i < boxesToAvoid.length; i += 1) {\n if (SeriesLabel_intersectRect(boxesToAvoid[i], {\n left: x,\n right: x + bBox.width,\n top: y,\n bottom: y + bBox.height\n })) {\n return false;\n }\n }\n // For each position, check if the lines around the label intersect with any\n // of the graphs.\n for (i = 0; i < chart.series.length; i += 1) {\n var serie = chart.series[i],\n points = serie.interpolatedPoints && __spreadArray([],\n serie.interpolatedPoints,\n true);\n if (serie.visible && points) {\n // Avoid the sides of the plot area\n var stepY = chart.plotHeight / 10;\n for (var chartY = chart.plotTop; chartY <= chart.plotTop + chart.plotHeight; chartY += stepY) {\n points.unshift({\n chartX: chart.plotLeft,\n chartY: chartY\n });\n points.push({\n chartX: chart.plotLeft + chart.plotWidth,\n chartY: chartY\n });\n }\n for (j = 1; j < points.length; j += 1) {\n if (\n // To avoid processing, only check intersection if the X\n // values are close to the box.\n points[j].chartX >= x - leastDistance &&\n points[j - 1].chartX <= x + bBox.width +\n leastDistance\n /* @todo condition above is not the same as below\n (\n points[j].chartX >=\n (x - leastDistance)\n ) && (\n points[j - 1].chartX <=\n (x + bBox.width + leastDistance)\n ) */\n ) {\n // If any of the box sides intersect with the line, return.\n if (SeriesLabel_boxIntersectLine(x, y, bBox.width, bBox.height, points[j - 1].chartX, points[j - 1].chartY, points[j].chartX, points[j].chartY)) {\n return false;\n }\n // But if it is too far away (a padded box doesn't\n // intersect), also return.\n if (series === serie && !withinRange && checkDistance) {\n withinRange = SeriesLabel_boxIntersectLine(x - leastDistance, y - leastDistance, bBox.width + 2 * leastDistance, bBox.height + 2 * leastDistance, points[j - 1].chartX, points[j - 1].chartY, points[j].chartX, points[j].chartY);\n }\n }\n // Find the squared distance from the center of the label. On\n // area series, avoid its own graph.\n if ((findDistanceToOthers || withinRange) &&\n (series !== serie || onArea)) {\n xDist = x + bBox.width / 2 - points[j].chartX;\n yDist = y + bBox.height / 2 - points[j].chartY;\n distToOthersSquared = Math.min(distToOthersSquared, xDist * xDist + yDist * yDist);\n }\n }\n // Do we need a connector?\n if (!onArea &&\n findDistanceToOthers &&\n series === serie &&\n ((checkDistance && !withinRange) ||\n distToOthersSquared < Math.pow(seriesLabelOptions.connectorNeighbourDistance || 1, 2))) {\n for (j = 1; j < points.length; j += 1) {\n dist = Math.min((Math.pow(x + bBox.width / 2 - points[j].chartX, 2) +\n Math.pow(y + bBox.height / 2 - points[j].chartY, 2)), (Math.pow(x - points[j].chartX, 2) +\n Math.pow(y - points[j].chartY, 2)), (Math.pow(x + bBox.width - points[j].chartX, 2) +\n Math.pow(y - points[j].chartY, 2)), (Math.pow(x + bBox.width - points[j].chartX, 2) +\n Math.pow(y + bBox.height - points[j].chartY, 2)), (Math.pow(x - points[j].chartX, 2) +\n Math.pow(y + bBox.height - points[j].chartY, 2)));\n if (dist < distToPointSquared) {\n distToPointSquared = dist;\n connectorPoint = points[j];\n }\n }\n withinRange = true;\n }\n }\n }\n return !checkDistance || withinRange ? {\n x: x,\n y: y,\n weight: getWeight(distToOthersSquared, connectorPoint ? distToPointSquared : 0),\n connectorPoint: connectorPoint\n } : false;\n}\n/**\n * @private\n */\nfunction compose(ChartClass, SVGRendererClass) {\n if (pushUnique(composed, 'SeriesLabel')) {\n // Leave both events, we handle animation differently (#9815)\n addEvent(ChartClass, 'load', onChartRedraw);\n addEvent(ChartClass, 'redraw', onChartRedraw);\n SVGRendererClass.prototype.symbols.connector = symbolConnector;\n setOptions({ plotOptions: { series: { label: SeriesLabel_SeriesLabelDefaults } } });\n }\n}\n/**\n * The main initialize method that runs on chart level after initialization and\n * redraw. It runs in a timeout to prevent locking, and loops over all series,\n * taking all series and labels into account when placing the labels.\n *\n * @private\n * @function Highcharts.Chart#drawSeriesLabels\n */\nfunction drawSeriesLabels(chart) {\n // Console.time('drawSeriesLabels');\n chart.boxesToAvoid = [];\n var labelSeries = chart.labelSeries || [],\n boxesToAvoid = chart.boxesToAvoid;\n // Avoid data labels\n chart.series.forEach(function (s) {\n return (s.points || []).forEach(function (p) {\n return (p.dataLabels || []).forEach(function (label) {\n var _a = label.getBBox(),\n width = _a.width,\n height = _a.height,\n left = (label.translateX || 0) + (s.xAxis ? s.xAxis.pos : s.chart.plotLeft),\n top = (label.translateY || 0) + (s.yAxis ? s.yAxis.pos : s.chart.plotTop);\n boxesToAvoid.push({\n left: left,\n top: top,\n right: left + width,\n bottom: top + height\n });\n });\n });\n });\n // Build the interpolated points\n labelSeries.forEach(function (series) {\n var seriesLabelOptions = series.options.label || {};\n series.interpolatedPoints = getPointsOnGraph(series);\n boxesToAvoid.push.apply(boxesToAvoid, (seriesLabelOptions.boxesToAvoid || []));\n });\n chart.series.forEach(function (series) {\n var _a,\n _b;\n var labelOptions = series.options.label;\n if (!labelOptions || (!series.xAxis && !series.yAxis)) {\n return;\n }\n var colorClass = ('highcharts-color-' + pick(series.colorIndex, 'none')), isNew = !series.labelBySeries, minFontSize = labelOptions.minFontSize, maxFontSize = labelOptions.maxFontSize, inverted = chart.inverted, paneLeft = (inverted ? series.yAxis.pos : series.xAxis.pos), paneTop = (inverted ? series.xAxis.pos : series.yAxis.pos), paneWidth = chart.inverted ? series.yAxis.len : series.xAxis.len, paneHeight = chart.inverted ? series.xAxis.len : series.yAxis.len, points = series.interpolatedPoints, onArea = pick(labelOptions.onArea, !!series.area), results = [], xData = series.getColumn('x');\n var bBox,\n x,\n y,\n clearPoint,\n i,\n best,\n label = series.labelBySeries,\n dataExtremes,\n areaMin,\n areaMax;\n // Stay within the area data bounds (#10038)\n if (onArea && !inverted) {\n dataExtremes = [\n series.xAxis.toPixels(xData[0]),\n series.xAxis.toPixels(xData[xData.length - 1])\n ];\n areaMin = Math.min.apply(Math, dataExtremes);\n areaMax = Math.max.apply(Math, dataExtremes);\n }\n /**\n * @private\n */\n function insidePane(x, y, bBox) {\n var leftBound = Math.max(paneLeft,\n pick(areaMin, -Infinity)),\n rightBound = Math.min(paneLeft + paneWidth,\n pick(areaMax,\n Infinity));\n return (x > leftBound &&\n x <= rightBound - bBox.width &&\n y >= paneTop &&\n y <= paneTop + paneHeight - bBox.height);\n }\n /**\n * @private\n */\n function destroyLabel() {\n if (label) {\n series.labelBySeries = label.destroy();\n }\n }\n if (series.visible && !series.boosted && points) {\n if (!label) {\n var labelText = series.name;\n if (typeof labelOptions.format === 'string') {\n labelText = format(labelOptions.format, series, chart);\n }\n else if (labelOptions.formatter) {\n labelText = labelOptions.formatter.call(series);\n }\n series.labelBySeries = label = chart.renderer\n .label(labelText, 0, 0, 'connector', 0, 0, labelOptions.useHTML)\n .addClass('highcharts-series-label ' +\n 'highcharts-series-label-' + series.index + ' ' +\n (series.options.className || '') + ' ' +\n colorClass);\n if (!chart.renderer.styledMode) {\n var color = typeof series.color === 'string' ?\n series.color : \"#666666\" /* Palette.neutralColor60 */;\n label.css(extend({\n color: onArea ?\n chart.renderer.getContrast(color) :\n color\n }, labelOptions.style || {}));\n label.attr({\n opacity: chart.renderer.forExport ? 1 : 0,\n stroke: series.color,\n 'stroke-width': 1\n });\n }\n // Adapt label sizes to the sum of the data\n if (minFontSize && maxFontSize) {\n label.css({\n fontSize: labelFontSize(series, minFontSize, maxFontSize)\n });\n }\n label\n .attr({\n padding: 0,\n zIndex: 3\n })\n .add();\n }\n bBox = label.getBBox();\n bBox.width = Math.round(bBox.width);\n // Ideal positions are centered above or below a point on right side\n // of chart\n for (i = points.length - 1; i > 0; i -= 1) {\n if (onArea) {\n // Centered\n x = ((_a = points[i].chartCenterX) !== null && _a !== void 0 ? _a : points[i].chartX) -\n bBox.width / 2;\n y = ((_b = points[i].chartCenterY) !== null && _b !== void 0 ? _b : points[i].chartY) -\n bBox.height / 2;\n if (insidePane(x, y, bBox)) {\n best = checkClearPoint(series, x, y, bBox);\n }\n if (best) {\n results.push(best);\n }\n }\n else {\n // Right - up\n x = points[i].chartX + labelDistance;\n y = points[i].chartY - bBox.height - labelDistance;\n if (insidePane(x, y, bBox)) {\n best = checkClearPoint(series, x, y, bBox, true);\n }\n if (best) {\n results.push(best);\n }\n // Right - down\n x = points[i].chartX + labelDistance;\n y = points[i].chartY + labelDistance;\n if (insidePane(x, y, bBox)) {\n best = checkClearPoint(series, x, y, bBox, true);\n }\n if (best) {\n results.push(best);\n }\n // Left - down\n x = points[i].chartX - bBox.width - labelDistance;\n y = points[i].chartY + labelDistance;\n if (insidePane(x, y, bBox)) {\n best = checkClearPoint(series, x, y, bBox, true);\n }\n if (best) {\n results.push(best);\n }\n // Left - up\n x = points[i].chartX - bBox.width - labelDistance;\n y = points[i].chartY - bBox.height - labelDistance;\n if (insidePane(x, y, bBox)) {\n best = checkClearPoint(series, x, y, bBox, true);\n }\n if (best) {\n results.push(best);\n }\n }\n }\n // Brute force, try all positions on the chart in a 16x16 grid\n if (labelOptions.connectorAllowed && !results.length && !onArea) {\n for (x = paneLeft + paneWidth - bBox.width; x >= paneLeft; x -= 16) {\n for (y = paneTop; y < paneTop + paneHeight - bBox.height; y += 16) {\n clearPoint = checkClearPoint(series, x, y, bBox, true);\n if (clearPoint) {\n results.push(clearPoint);\n }\n }\n }\n }\n if (results.length) {\n results.sort(function (a, b) { return b.weight - a.weight; });\n best = results[0];\n (chart.boxesToAvoid || []).push({\n left: best.x,\n right: best.x + bBox.width,\n top: best.y,\n bottom: best.y + bBox.height\n });\n // Move it if needed\n var dist = Math.sqrt(Math.pow(Math.abs(best.x - (label.x || 0)), 2) +\n Math.pow(Math.abs(best.y - (label.y || 0)), 2));\n if (dist && series.labelBySeries) {\n // Move fast and fade in - pure animation movement is\n // distractive...\n var attr = {\n opacity: chart.renderer.forExport ? 1 : 0,\n x: best.x,\n y: best.y\n },\n anim = {\n opacity: 1\n };\n // ... unless we're just moving a short distance\n if (dist <= 10) {\n anim = {\n x: attr.x,\n y: attr.y\n };\n attr = {};\n }\n // Default initial animation to a fraction of the series\n // animation (#9396)\n var animationOptions = void 0;\n if (isNew) {\n animationOptions = animObject(series.options.animation);\n animationOptions.duration *= 0.2;\n }\n series.labelBySeries\n .attr(extend(attr, {\n anchorX: best.connectorPoint &&\n (best.connectorPoint.plotX || 0) + paneLeft,\n anchorY: best.connectorPoint &&\n (best.connectorPoint.plotY || 0) + paneTop\n }))\n .animate(anim, animationOptions);\n // Record closest point to stick to for sync redraw\n series.options.kdNow = true;\n series.buildKDTree();\n var closest = series.searchPoint({\n chartX: best.x,\n chartY: best.y\n },\n true);\n if (closest) {\n label.closest = [\n closest,\n best.x - (closest.plotX || 0),\n best.y - (closest.plotY || 0)\n ];\n }\n }\n }\n else {\n destroyLabel();\n }\n }\n else {\n destroyLabel();\n }\n });\n fireEvent(chart, 'afterDrawSeriesLabels');\n // Console.timeEnd('drawSeriesLabels');\n}\n/**\n * Points to avoid. In addition to actual data points, the label should avoid\n * interpolated positions.\n *\n * @private\n * @function Highcharts.Series#getPointsOnGraph\n */\nfunction getPointsOnGraph(series) {\n var _a;\n if (!series.xAxis && !series.yAxis) {\n return;\n }\n var distance = 16,\n points = series.points,\n interpolated = [],\n graph = series.graph || series.area,\n node = graph && graph.element,\n inverted = series.chart.inverted,\n xAxis = series.xAxis,\n yAxis = series.yAxis,\n paneLeft = inverted ? yAxis.pos : xAxis.pos,\n paneTop = inverted ? xAxis.pos : yAxis.pos,\n paneHeight = inverted ? xAxis.len : yAxis.len,\n paneWidth = inverted ? yAxis.len : xAxis.len,\n seriesLabelOptions = series.options.label || {},\n onArea = pick(seriesLabelOptions.onArea, !!series.area),\n translatedThreshold = yAxis.getThreshold(series.options.threshold),\n grid = {},\n chartCenterKey = inverted ? 'chartCenterX' : 'chartCenterY';\n var i,\n deltaX,\n deltaY,\n delta,\n len,\n n,\n j;\n /**\n * Push the point to the interpolated points, but only if that position in\n * the grid has not been occupied. As a performance optimization, we divide\n * the plot area into a grid and only add one point per series (#9815).\n * @private\n */\n function pushDiscrete(point) {\n var cellSize = 8, key = Math.round((point.plotX || 0) / cellSize) + ',' +\n Math.round((point.plotY || 0) / cellSize);\n if (!grid[key]) {\n grid[key] = 1;\n interpolated.push(point);\n }\n }\n // For splines, get the point at length (possible caveat: peaks are not\n // correctly detected)\n if (series.getPointSpline &&\n node &&\n node.getPointAtLength &&\n !onArea &&\n // Not performing well on complex series, node.getPointAtLength is too\n // heavy (#9815)\n points.length < (series.chart.plotSizeX || 0) / distance) {\n // If it is animating towards a path definition, use that briefly, and\n // reset\n var d = graph.toD && graph.attr('d');\n if (graph.toD) {\n graph.attr({ d: graph.toD });\n }\n len = node.getTotalLength();\n for (i = 0; i < len; i += distance) {\n var domPoint = node.getPointAtLength(i),\n plotX = inverted ? paneWidth - domPoint.y : domPoint.x,\n plotY = inverted ? paneHeight - domPoint.x : domPoint.y;\n pushDiscrete({\n chartX: paneLeft + plotX,\n chartY: paneTop + plotY,\n plotX: plotX,\n plotY: plotY\n });\n }\n if (d) {\n graph.attr({ d: d });\n }\n // Last point\n var point = points[points.length - 1],\n pos = point.pos();\n pushDiscrete({\n chartX: paneLeft + ((pos === null || pos === void 0 ? void 0 : pos[0]) || 0),\n chartY: paneTop + ((pos === null || pos === void 0 ? void 0 : pos[1]) || 0)\n });\n // Interpolate\n }\n else {\n len = points.length;\n var last = void 0;\n for (i = 0; i < len; i += 1) {\n var point = points[i],\n _b = point.pos() || [],\n plotX = _b[0],\n plotY = _b[1],\n plotHigh = point.plotHigh;\n if (isNumber(plotX) && isNumber(plotY)) {\n var ctlPoint = {\n plotX: plotX,\n plotY: plotY,\n // Absolute coordinates so we can compare different panes\n chartX: paneLeft + plotX,\n chartY: paneTop + plotY\n };\n if (onArea) {\n // Vertically centered inside area\n if (plotHigh) {\n ctlPoint.plotY = plotHigh;\n ctlPoint.chartY = paneTop + plotHigh;\n }\n if (inverted) {\n ctlPoint.chartCenterX = paneLeft + paneWidth - ((plotHigh ? plotHigh : point.plotY || 0) +\n pick(point.yBottom, translatedThreshold)) / 2;\n }\n else {\n ctlPoint.chartCenterY = paneTop + ((plotHigh ? plotHigh : plotY) +\n pick(point.yBottom, translatedThreshold)) / 2;\n }\n }\n // Add interpolated points\n if (last) {\n deltaX = Math.abs(ctlPoint.chartX - last.chartX);\n deltaY = Math.abs(ctlPoint.chartY - last.chartY);\n delta = Math.max(deltaX, deltaY);\n if (delta > distance && delta < 999) {\n n = Math.ceil(delta / distance);\n for (j = 1; j < n; j += 1) {\n pushDiscrete((_a = {\n chartX: last.chartX +\n (ctlPoint.chartX - last.chartX) * (j / n),\n chartY: last.chartY +\n (ctlPoint.chartY - last.chartY) * (j / n)\n },\n _a[chartCenterKey] = (last[chartCenterKey] || 0) +\n ((ctlPoint[chartCenterKey] || 0) -\n (last[chartCenterKey] || 0)) * (j / n),\n _a.plotX = (last.plotX || 0) +\n (plotX - (last.plotX || 0)) * (j / n),\n _a.plotY = (last.plotY || 0) +\n (plotY - (last.plotY || 0)) * (j / n),\n _a));\n }\n }\n }\n // Add the real point in order to find positive and negative\n // peaks\n pushDiscrete(ctlPoint);\n last = ctlPoint;\n }\n }\n }\n // Get the bounding box so we can do a quick check first if the bounding\n // boxes overlap.\n /*\n interpolated.bBox = node.getBBox();\n interpolated.bBox.x += paneLeft;\n interpolated.bBox.y += paneTop;\n */\n return interpolated;\n}\n/**\n * Overridable function to return series-specific font sizes for the labels. By\n * default it returns bigger font sizes for series with the greater sum of y\n * values.\n * @private\n */\nfunction labelFontSize(series, minFontSize, maxFontSize) {\n return minFontSize + (((series.sum || 0) / (series.chart.labelSeriesMaxSum || 0)) *\n (maxFontSize - minFontSize)) + 'px';\n}\n/**\n * Prepare drawing series labels.\n * @private\n */\nfunction onChartRedraw(e) {\n if (this.renderer) {\n var chart_1 = this;\n var delay_1 = animObject(chart_1.renderer.globalAnimation).duration;\n chart_1.labelSeries = [];\n chart_1.labelSeriesMaxSum = 0;\n if (chart_1.seriesLabelTimer) {\n highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().clearTimeout(chart_1.seriesLabelTimer);\n }\n // Which series should have labels\n chart_1.series.forEach(function (series) {\n var seriesLabelOptions = series.options.label || {},\n label = series.labelBySeries,\n closest = label && label.closest,\n yData = series.getColumn('y');\n if (seriesLabelOptions.enabled &&\n series.visible &&\n (series.graph || series.area) &&\n !series.boosted &&\n chart_1.labelSeries) {\n chart_1.labelSeries.push(series);\n if (seriesLabelOptions.minFontSize &&\n seriesLabelOptions.maxFontSize &&\n yData.length) {\n series.sum = yData.reduce(function (pv, cv) { return (pv || 0) + (cv || 0); }, 0);\n chart_1.labelSeriesMaxSum = Math.max(chart_1.labelSeriesMaxSum || 0, series.sum || 0);\n }\n // The labels are processing heavy, wait until the animation is\n // done\n if (e.type === 'load') {\n delay_1 = Math.max(delay_1, animObject(series.options.animation).duration);\n }\n // Keep the position updated to the axis while redrawing\n if (closest) {\n if (typeof closest[0].plotX !== 'undefined') {\n label.animate({\n x: closest[0].plotX + closest[1],\n y: closest[0].plotY + closest[2]\n });\n }\n else {\n label.attr({ opacity: 0 });\n }\n }\n }\n });\n chart_1.seriesLabelTimer = syncTimeout(function () {\n if (chart_1.series && chart_1.labelSeries) { // #7931, chart destroyed\n drawSeriesLabels(chart_1);\n }\n }, chart_1.renderer.forExport || !delay_1 ? 0 : delay_1);\n }\n}\n/**\n * General symbol definition for labels with connector.\n * @private\n */\nfunction symbolConnector(x, y, w, h, options) {\n var anchorX = options && options.anchorX,\n anchorY = options && options.anchorY;\n var path,\n yOffset,\n lateral = w / 2;\n if (isNumber(anchorX) && isNumber(anchorY)) {\n path = [['M', anchorX, anchorY]];\n // Prefer 45 deg connectors\n yOffset = y - anchorY;\n if (yOffset < 0) {\n yOffset = -h - yOffset;\n }\n if (yOffset < w) {\n lateral = anchorX < x + (w / 2) ? yOffset : w - yOffset;\n }\n // Anchor below label\n if (anchorY > y + h) {\n path.push(['L', x + lateral, y + h]);\n // Anchor above label\n }\n else if (anchorY < y) {\n path.push(['L', x + lateral, y]);\n // Anchor left of label\n }\n else if (anchorX < x) {\n path.push(['L', x, y + h / 2]);\n // Anchor right of label\n }\n else if (anchorX > x + w) {\n path.push(['L', x + w, y + h / 2]);\n }\n }\n return path || [];\n}\n/* *\n *\n * Default Export\n *\n * */\nvar SeriesLabel = {\n compose: compose\n};\n/* harmony default export */ var SeriesLabel_SeriesLabel = (SeriesLabel);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * Containing the position of a box that should be avoided by labels.\n *\n * @interface Highcharts.LabelIntersectBoxObject\n */ /**\n* @name Highcharts.LabelIntersectBoxObject#bottom\n* @type {number}\n*/ /**\n* @name Highcharts.LabelIntersectBoxObject#left\n* @type {number}\n*/ /**\n* @name Highcharts.LabelIntersectBoxObject#right\n* @type {number}\n*/ /**\n* @name Highcharts.LabelIntersectBoxObject#top\n* @type {number}\n*/\n(''); // Keeps doclets above in JS file\n\n;// ./code/es5/es-modules/masters/modules/series-label.src.js\n\n\n\n\nvar G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\nSeriesLabel_SeriesLabel.compose(G.Chart, G.SVGRenderer);\n/* harmony default export */ var series_label_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()));\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"names":["root","factory","exports","module","require","define","amd","__WEBPACK_EXTERNAL_MODULE__944__","__WEBPACK_EXTERNAL_MODULE__984__","__webpack_modules__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","__webpack_exports__","series_label_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default","SeriesLabel_SeriesLabelDefaults","enabled","connectorAllowed","connectorNeighbourDistance","format","formatter","minFontSize","maxFontSize","onArea","style","fontSize","fontWeight","useHTML","boxesToAvoid","ccw","x1","y1","x2","y2","x3","y3","cw","intersectLine","x4","y4","__spreadArray","to","from","pack","arguments","length","ar","i","l","Array","slice","concat","animObject","setOptions","composed","SeriesLabel_boxIntersectLine","x","y","w","h","addEvent","extend","fireEvent","isNumber","pick","pushUnique","syncTimeout","checkClearPoint","series","bBox","checkDistance","r1","r2","dist","connectorPoint","withinRange","xDist","yDist","j","chart","seriesLabelOptions","options","label","area","findDistanceToOthers","distToOthersSquared","Number","MAX_VALUE","distToPointSquared","left","right","width","top","bottom","height","serie","points","interpolatedPoints","visible","stepY","plotHeight","chartY","plotTop","unshift","chartX","plotLeft","push","plotWidth","Math","min","pow","weight","onChartRedraw","e","renderer","chart_1","delay_1","globalAnimation","duration","labelSeries","labelSeriesMaxSum","seriesLabelTimer","clearTimeout","forEach","labelBySeries","closest","yData","getColumn","graph","boosted","sum","reduce","pv","cv","max","type","animation","plotX","animate","plotY","attr","opacity","s","p","dataLabels","_a","getBBox","translateX","xAxis","pos","translateY","yAxis","getPointsOnGraph","delta","len","interpolated","node","element","inverted","paneLeft","paneTop","paneHeight","paneWidth","translatedThreshold","getThreshold","threshold","grid","chartCenterKey","getPointSpline","getPointAtLength","plotSizeX","toD","getTotalLength","domPoint","pushDiscrete","point","last","_b","plotHigh","ctlPoint","chartCenterX","yBottom","chartCenterY","abs","ceil","round","apply","labelOptions","clearPoint","best","dataExtremes","areaMin","areaMax","colorClass","colorIndex","isNew","results","xData","toPixels","labelText","name","addClass","index","className","styledMode","color","css","getContrast","forExport","stroke","padding","zIndex","add","insidePane","sort","b","sqrt","anim","animationOptions","anchorX","anchorY","kdNow","buildKDTree","searchPoint","destroyLabel","leftBound","Infinity","rightBound","destroy","symbolConnector","path","yOffset","lateral","G","SeriesLabel_SeriesLabel","compose","ChartClass","SVGRendererClass","symbols","connector","plotOptions","Chart","SVGRenderer"],"mappings":"CASA,AATA;;;;;;;;CAQC,EACA,SAA0CA,CAAI,CAAEC,CAAO,EACpD,AAAmB,UAAnB,OAAOC,SAAwB,AAAkB,UAAlB,OAAOC,OACxCA,OAAOD,OAAO,CAAGD,EAAQG,QAAQ,cAAeA,QAAQ,cAAc,UAAa,EAC5E,AAAkB,YAAlB,OAAOC,QAAyBA,OAAOC,GAAG,CACjDD,OAAO,kCAAmC,CAAC,CAAC,wBAAwB,CAAE,CAAC,wBAAwB,aAAa,CAAC,CAAEJ,GACxG,AAAmB,UAAnB,OAAOC,QACdA,OAAO,CAAC,kCAAkC,CAAGD,EAAQG,QAAQ,cAAeA,QAAQ,cAAc,UAAa,EAE/GJ,EAAK,UAAa,CAAGC,EAAQD,EAAK,UAAa,CAAEA,EAAK,UAAa,CAAC,UAAa,CACnF,EAAG,IAAI,CAAE,SAASO,CAAgC,CAAEC,CAAgC,EACpF,OAAgB,AAAC,WACP,aACA,IAAIC,EAAuB,CAE/B,IACC,SAASN,CAAM,EAEtBA,EAAOD,OAAO,CAAGM,CAEX,EAEA,IACC,SAASL,CAAM,EAEtBA,EAAOD,OAAO,CAAGK,CAEX,CAEI,EAGIG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,CAAQ,EAEpC,IAAIC,EAAeH,CAAwB,CAACE,EAAS,CACrD,GAAIC,AAAiBC,KAAAA,IAAjBD,EACH,OAAOA,EAAaX,OAAO,CAG5B,IAAIC,EAASO,CAAwB,CAACE,EAAS,CAAG,CAGjDV,QAAS,CAAC,CACX,EAMA,OAHAO,CAAmB,CAACG,EAAS,CAACT,EAAQA,EAAOD,OAAO,CAAES,GAG/CR,EAAOD,OAAO,AACtB,CAMCS,EAAoBI,CAAC,CAAG,SAASZ,CAAM,EACtC,IAAIa,EAASb,GAAUA,EAAOc,UAAU,CACvC,WAAa,OAAOd,EAAO,OAAU,AAAE,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAQ,EAAoBO,CAAC,CAACF,EAAQ,CAAEG,EAAGH,CAAO,GACnCA,CACR,EAMAL,EAAoBO,CAAC,CAAG,SAAShB,CAAO,CAAEkB,CAAU,EACnD,IAAI,IAAIC,KAAOD,EACXT,EAAoBW,CAAC,CAACF,EAAYC,IAAQ,CAACV,EAAoBW,CAAC,CAACpB,EAASmB,IAC5EE,OAAOC,cAAc,CAACtB,EAASmB,EAAK,CAAEI,WAAY,CAAA,EAAMC,IAAKN,CAAU,CAACC,EAAI,AAAC,EAGhF,EAKAV,EAAoBW,CAAC,CAAG,SAASK,CAAG,CAAEC,CAAI,EAAI,OAAOL,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACJ,EAAKC,EAAO,EAIjH,IAAII,EAAsB,CAAC,EAG3BrB,EAAoBO,CAAC,CAACc,EAAqB,CACzC,QAAW,WAAa,OAAqBC,CAAkB,CACjE,GAGA,IAAIC,EAAuEvB,EAAoB,KAC3FwB,EAA2FxB,EAAoBI,CAAC,CAACmB,GAEjHE,EAAmHzB,EAAoB,KACvI0B,EAAuI1B,EAAoBI,CAAC,CAACqB,GA0IhIE,EAnGP,CAItBC,QAAS,CAAA,EASTC,iBAAkB,CAAA,EAKlBC,2BAA4B,GAW5BC,OAAQ,KAAK,EASbC,UAAW,KAAK,EAUhBC,YAAa,KAWbC,YAAa,KAQbC,OAAQ,KAORC,MAAO,CAIHC,SAAU,QAEVC,WAAY,MAChB,EAIAC,QAAS,CAAA,EAOTC,aAAc,EAAE,AACpB,EA8BA,SAASC,EAAIC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EAC/B,IAAIC,EAAK,AAAED,CAAAA,EAAKJ,CAAC,EAAMC,CAAAA,EAAKF,CAAC,EAAO,AAACG,CAAAA,EAAKF,CAAC,EAAMG,CAAAA,EAAKJ,CAAC,EACvD,OAAOM,EAAK,GAAW,CAAEA,CAAAA,EAAK,CAAA,CAClC,CAOA,SAASC,EAAcP,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEG,CAAE,CAAEC,CAAE,EACjD,OAAOV,EAAIC,EAAIC,EAAIG,EAAIC,EAAIG,EAAIC,KAAQV,EAAIG,EAAIC,EAAIC,EAAIC,EAAIG,EAAIC,IAC3DV,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,KAAQN,EAAIC,EAAIC,EAAIC,EAAIC,EAAIK,EAAIC,EAChE,CAgC6B,IAyBzBC,EAA0D,SAAUC,CAAE,CAAEC,CAAI,CAAEC,CAAI,EAClF,GAAIA,GAAQC,AAAqB,GAArBA,UAAUC,MAAM,CAAQ,IAAK,IAA4BC,EAAxBC,EAAI,EAAGC,EAAIN,EAAKG,MAAM,CAAME,EAAIC,EAAGD,KACxED,GAAQC,KAAKL,IACRI,GAAIA,CAAAA,EAAKG,MAAM3C,SAAS,CAAC4C,KAAK,CAAC1C,IAAI,CAACkC,EAAM,EAAGK,EAAC,EACnDD,CAAE,CAACC,EAAE,CAAGL,CAAI,CAACK,EAAE,EAGvB,OAAON,EAAGU,MAAM,CAACL,GAAMG,MAAM3C,SAAS,CAAC4C,KAAK,CAAC1C,IAAI,CAACkC,GACtD,EAEIU,EAAa,AAACxC,IAA+EwC,UAAU,CAEvGjC,EAAS,AAACL,IAA2HK,MAAM,CAE3IkC,EAAa,AAACzC,IAA+EyC,UAAU,CAEvGC,EAAW,AAAC1C,IAA+E0C,QAAQ,CAGnGC,EArEJ,SAA0BC,CAAC,CAAEC,CAAC,CAAEC,CAAC,CAAEC,CAAC,CAAE7B,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EAChD,OAAQI,EAAcmB,EAAGC,EAAGD,EAAIE,EAAGD,EAAG3B,EAAIC,EAAIC,EAAIC,IAC9CI,EAAcmB,EAAIE,EAAGD,EAAGD,EAAIE,EAAGD,EAAIE,EAAG7B,EAAIC,EAAIC,EAAIC,IAClDI,EAAcmB,EAAGC,EAAIE,EAAGH,EAAIE,EAAGD,EAAIE,EAAG7B,EAAIC,EAAIC,EAAIC,IAClDI,EAAcmB,EAAGC,EAAGD,EAAGC,EAAIE,EAAG7B,EAAIC,EAAIC,EAAIC,EAElD,EAiEI2B,EAAW,AAAChD,IAA+EgD,QAAQ,CAAEC,EAAS,AAACjD,IAA+EiD,MAAM,CAAEC,EAAY,AAAClD,IAA+EkD,SAAS,CAAEC,EAAW,AAACnD,IAA+EmD,QAAQ,CAAEC,EAAO,AAACpD,IAA+EoD,IAAI,CAAEC,EAAa,AAACrD,IAA+EqD,UAAU,CAAEC,EAAc,AAACtD,IAA+EsD,WAAW,CAgBrsB,SAASC,EAAgBC,CAAM,CAAEZ,CAAC,CAAEC,CAAC,CAAEY,CAAI,CAAEC,CAAa,EACtD,IA9EmBC,EAAIC,EAsFnBC,EACAC,EACAC,EACAC,EACAC,EACA9B,EACA+B,EAdAC,EAAQX,EAAOW,KAAK,CACpBC,EAAqBZ,EAAOa,OAAO,CAACC,KAAK,EAAI,CAAC,EAC9C3D,EAASyC,EAAKgB,EAAmBzD,MAAM,CAAE,CAAC,CAAC6C,EAAOe,IAAI,EACtDC,EAAwB7D,GAAUyD,EAAmB/D,gBAAgB,CAErEW,EAAemD,EAAMnD,YAAY,CACjCyD,EAAsBC,OAAOC,SAAS,CACtCC,EAAqBF,OAAOC,SAAS,CAkBzC,IAAKxC,EAAI,EAAGnB,GAAgBmB,EAAInB,EAAaiB,MAAM,CAAEE,GAAK,EACtD,GAxGewB,EAwGe3C,CAAY,CAACmB,EAAE,CAvG1C,CAAEyB,CAAAA,CADcA,EAwG4B,CAC3CiB,KAAMjC,EACNkC,MAAOlC,EAAIa,EAAKsB,KAAK,CACrBC,IAAKnC,EACLoC,OAAQpC,EAAIY,EAAKyB,MAAM,AAC3B,GA5GQL,IAAI,CAAGlB,EAAGmB,KAAK,EACvBlB,EAAGkB,KAAK,CAAGnB,EAAGkB,IAAI,EAClBjB,EAAGoB,GAAG,CAAGrB,EAAGsB,MAAM,EAClBrB,EAAGqB,MAAM,CAAGtB,EAAGqB,GAAG,AAAD,EA0Gb,MAAO,CAAA,EAKf,IAAK7C,EAAI,EAAGA,EAAIgC,EAAMX,MAAM,CAACvB,MAAM,CAAEE,GAAK,EAAG,CACzC,IAAIgD,EAAQhB,EAAMX,MAAM,CAACrB,EAAE,CACvBiD,EAASD,EAAME,kBAAkB,EAAIzD,EAAc,EAAE,CACrDuD,EAAME,kBAAkB,CACxB,CAAA,GACJ,GAAIF,EAAMG,OAAO,EAAIF,EAAQ,CAGzB,IAAK,IADDG,EAAQpB,EAAMqB,UAAU,CAAG,GACtBC,EAAStB,EAAMuB,OAAO,CAAED,GAAUtB,EAAMuB,OAAO,CAAGvB,EAAMqB,UAAU,CAAEC,GAAUF,EACnFH,EAAOO,OAAO,CAAC,CACXC,OAAQzB,EAAM0B,QAAQ,CACtBJ,OAAQA,CACZ,GACAL,EAAOU,IAAI,CAAC,CACRF,OAAQzB,EAAM0B,QAAQ,CAAG1B,EAAM4B,SAAS,CACxCN,OAAQA,CACZ,GAEJ,IAAKvB,EAAI,EAAGA,EAAIkB,EAAOnD,MAAM,CAAEiC,GAAK,EAAG,CACnC,GAGAkB,CAAM,CAAClB,EAAE,CAAC0B,MAAM,EAAIhD,EAvDZ,IAwDJwC,CAAM,CAAClB,EAAI,EAAE,CAAC0B,MAAM,EAAIhD,EAAIa,EAAKsB,KAAK,CAxDlC,GAkEN,CAEE,GAAIpC,EAA6BC,EAAGC,EAAGY,EAAKsB,KAAK,CAAEtB,EAAKyB,MAAM,CAAEE,CAAM,CAAClB,EAAI,EAAE,CAAC0B,MAAM,CAAER,CAAM,CAAClB,EAAI,EAAE,CAACuB,MAAM,CAAEL,CAAM,CAAClB,EAAE,CAAC0B,MAAM,CAAER,CAAM,CAAClB,EAAE,CAACuB,MAAM,EAC1I,MAAO,CAAA,EAIPjC,IAAW2B,GAAS,CAACpB,GAAeL,GACpCK,CAAAA,EAAcpB,EAA6BC,EA1E3C,GA0E8DC,EA1E9D,GA0EiFY,EAAKsB,KAAK,CAAG,GAAmBtB,EAAKyB,MAAM,CAAG,GAAmBE,CAAM,CAAClB,EAAI,EAAE,CAAC0B,MAAM,CAAER,CAAM,CAAClB,EAAI,EAAE,CAACuB,MAAM,CAAEL,CAAM,CAAClB,EAAE,CAAC0B,MAAM,CAAER,CAAM,CAAClB,EAAE,CAACuB,MAAM,CAAA,CAExO,CAGKjB,CAAAA,GAAwBT,CAAU,GAClCP,CAAAA,IAAW2B,GAASxE,CAAK,IAG1B8D,EAAsBuB,KAAKC,GAAG,CAACxB,EAAqBT,AAFpDA,CAAAA,EAAQpB,EAAIa,EAAKsB,KAAK,CAAG,EAAIK,CAAM,CAAClB,EAAE,CAAC0B,MAAM,AAAD,EAEgB5B,EAAQC,AADpEA,CAAAA,EAAQpB,EAAIY,EAAKyB,MAAM,CAAG,EAAIE,CAAM,CAAClB,EAAE,CAACuB,MAAM,AAAD,EAC+BxB,GAEpF,CAEA,GAAI,CAACtD,GACD6D,GACAhB,IAAW2B,GACV,CAAA,AAACzB,GAAiB,CAACK,GAChBU,EAAsBuB,KAAKE,GAAG,CAAC9B,EAAmB9D,0BAA0B,EAAI,EAAG,EAAC,EAAI,CAC5F,IAAK4D,EAAI,EAAGA,EAAIkB,EAAOnD,MAAM,CAAEiC,GAAK,EAChCL,CAAAA,EAAOmC,KAAKC,GAAG,CAAED,KAAKE,GAAG,CAACtD,EAAIa,EAAKsB,KAAK,CAAG,EAAIK,CAAM,CAAClB,EAAE,CAAC0B,MAAM,CAAE,GAC7DI,KAAKE,GAAG,CAACrD,EAAIY,EAAKyB,MAAM,CAAG,EAAIE,CAAM,CAAClB,EAAE,CAACuB,MAAM,CAAE,GAAMO,KAAKE,GAAG,CAACtD,EAAIwC,CAAM,CAAClB,EAAE,CAAC0B,MAAM,CAAE,GACtFI,KAAKE,GAAG,CAACrD,EAAIuC,CAAM,CAAClB,EAAE,CAACuB,MAAM,CAAE,GAAMO,KAAKE,GAAG,CAACtD,EAAIa,EAAKsB,KAAK,CAAGK,CAAM,CAAClB,EAAE,CAAC0B,MAAM,CAAE,GACjFI,KAAKE,GAAG,CAACrD,EAAIuC,CAAM,CAAClB,EAAE,CAACuB,MAAM,CAAE,GAAMO,KAAKE,GAAG,CAACtD,EAAIa,EAAKsB,KAAK,CAAGK,CAAM,CAAClB,EAAE,CAAC0B,MAAM,CAAE,GACjFI,KAAKE,GAAG,CAACrD,EAAIY,EAAKyB,MAAM,CAAGE,CAAM,CAAClB,EAAE,CAACuB,MAAM,CAAE,GAAMO,KAAKE,GAAG,CAACtD,EAAIwC,CAAM,CAAClB,EAAE,CAAC0B,MAAM,CAAE,GAClFI,KAAKE,GAAG,CAACrD,EAAIY,EAAKyB,MAAM,CAAGE,CAAM,CAAClB,EAAE,CAACuB,MAAM,CAAE,GAAG,EACzCb,IACPA,EAAqBf,EACrBC,EAAiBsB,CAAM,CAAClB,EAAE,EAGlCH,EAAc,CAAA,CAClB,CACJ,CACJ,CACA,MAAO,CAAA,CAACL,KAAiBK,CAAU,GAAI,CACnCnB,EAAGA,EACHC,EAAGA,EACHsD,OA7FO1B,AA6FWA,EAAqBX,CAAAA,EAAiBc,EAAqB,CAAA,EAC7Ed,eAAgBA,CACpB,CACJ,CA2cA,SAASsC,EAAcC,CAAC,EACpB,GAAI,IAAI,CAACC,QAAQ,CAAE,CACf,IAAIC,EAAU,IAAI,CACdC,EAAUhE,EAAW+D,EAAQD,QAAQ,CAACG,eAAe,EAAEC,QAAQ,AACnEH,CAAAA,EAAQI,WAAW,CAAG,EAAE,CACxBJ,EAAQK,iBAAiB,CAAG,EACxBL,EAAQM,gBAAgB,EACxB7G,IAA8E8G,YAAY,CAACP,EAAQM,gBAAgB,EAGvHN,EAAQ/C,MAAM,CAACuD,OAAO,CAAC,SAAUvD,CAAM,EACnC,IAAIY,EAAqBZ,EAAOa,OAAO,CAACC,KAAK,EAAI,CAAC,EAC9CA,EAAQd,EAAOwD,aAAa,CAC5BC,EAAU3C,GAASA,EAAM2C,OAAO,CAChCC,EAAQ1D,EAAO2D,SAAS,CAAC,IACzB/C,CAAAA,EAAmBhE,OAAO,EAC1BoD,EAAO8B,OAAO,EACb9B,CAAAA,EAAO4D,KAAK,EAAI5D,EAAOe,IAAI,AAAD,GAC3B,CAACf,EAAO6D,OAAO,EACfd,EAAQI,WAAW,GACnBJ,EAAQI,WAAW,CAACb,IAAI,CAACtC,GACrBY,EAAmB3D,WAAW,EAC9B2D,EAAmB1D,WAAW,EAC9BwG,EAAMjF,MAAM,GACZuB,EAAO8D,GAAG,CAAGJ,EAAMK,MAAM,CAAC,SAAUC,CAAE,CAAEC,CAAE,EAAI,MAAO,AAACD,CAAAA,GAAM,CAAA,EAAMC,CAAAA,GAAM,CAAA,CAAI,EAAG,GAC/ElB,EAAQK,iBAAiB,CAAGZ,KAAK0B,GAAG,CAACnB,EAAQK,iBAAiB,EAAI,EAAGpD,EAAO8D,GAAG,EAAI,IAIxE,SAAXjB,EAAEsB,IAAI,EACNnB,CAAAA,EAAUR,KAAK0B,GAAG,CAAClB,EAAShE,EAAWgB,EAAOa,OAAO,CAACuD,SAAS,EAAElB,QAAQ,CAAA,EAGzEO,IACI,AAA4B,KAAA,IAArBA,CAAO,CAAC,EAAE,CAACY,KAAK,CACvBvD,EAAMwD,OAAO,CAAC,CACVlF,EAAGqE,CAAO,CAAC,EAAE,CAACY,KAAK,CAAGZ,CAAO,CAAC,EAAE,CAChCpE,EAAGoE,CAAO,CAAC,EAAE,CAACc,KAAK,CAAGd,CAAO,CAAC,EAAE,AACpC,GAGA3C,EAAM0D,IAAI,CAAC,CAAEC,QAAS,CAAE,IAIxC,GACA1B,EAAQM,gBAAgB,CAAGvD,EAAY,WACnC,GAAIiD,EAAQ/C,MAAM,EAAI+C,EAAQI,WAAW,CAAE,KAle/CA,EACA3F,CAFJmD,CAoe6BoC,EApevBvF,YAAY,CAAG,EAAE,CACnB2F,EAAcxC,AAmeWoC,EAneLI,WAAW,EAAI,EAAE,CACrC3F,EAAemD,AAkeUoC,EAleJvF,YAAY,CAErCmD,AAge6BoC,EAhevB/C,MAAM,CAACuD,OAAO,CAAC,SAAUmB,CAAC,EAC5B,MAAO,AAACA,CAAAA,EAAE9C,MAAM,EAAI,EAAE,AAAD,EAAG2B,OAAO,CAAC,SAAUoB,CAAC,EACvC,MAAO,AAACA,CAAAA,EAAEC,UAAU,EAAI,EAAE,AAAD,EAAGrB,OAAO,CAAC,SAAUzC,CAAK,EAC/C,IAAI+D,EAAK/D,EAAMgE,OAAO,GAClBvD,EAAQsD,EAAGtD,KAAK,CAChBG,EAASmD,EAAGnD,MAAM,CAClBL,EAAO,AAACP,CAAAA,EAAMiE,UAAU,EAAI,CAAA,EAAML,CAAAA,EAAEM,KAAK,CAAGN,EAAEM,KAAK,CAACC,GAAG,CAAGP,EAAE/D,KAAK,CAAC0B,QAAQ,AAAD,EACzEb,EAAM,AAACV,CAAAA,EAAMoE,UAAU,EAAI,CAAA,EAAMR,CAAAA,EAAES,KAAK,CAAGT,EAAES,KAAK,CAACF,GAAG,CAAGP,EAAE/D,KAAK,CAACuB,OAAO,AAAD,EAC3E1E,EAAa8E,IAAI,CAAC,CACdjB,KAAMA,EACNG,IAAKA,EACLF,MAAOD,EAAOE,EACdE,OAAQD,EAAME,CAClB,EACJ,EACJ,EACJ,GAEAyB,EAAYI,OAAO,CAAC,SAAUvD,CAAM,EAChC,IAAIY,EAAqBZ,EAAOa,OAAO,CAACC,KAAK,EAAI,CAAC,CAClDd,CAAAA,EAAO6B,kBAAkB,CAAGuD,AAmPpC,SAA0BpF,CAAM,EAE5B,GAAI,AAACA,EAAOgF,KAAK,EAAKhF,EAAOmF,KAAK,EAGlC,IAJIN,EAqBAlG,EAGA0G,EACAC,EACAlK,EACAsF,EAtBAkB,EAAS5B,EAAO4B,MAAM,CACtB2D,EAAe,EAAE,CACjB3B,EAAQ5D,EAAO4D,KAAK,EAAI5D,EAAOe,IAAI,CACnCyE,EAAO5B,GAASA,EAAM6B,OAAO,CAC7BC,EAAW1F,EAAOW,KAAK,CAAC+E,QAAQ,CAChCV,EAAQhF,EAAOgF,KAAK,CACpBG,EAAQnF,EAAOmF,KAAK,CACpBQ,EAAWD,EAAWP,EAAMF,GAAG,CAAGD,EAAMC,GAAG,CAC3CW,EAAUF,EAAWV,EAAMC,GAAG,CAAGE,EAAMF,GAAG,CAC1CY,EAAaH,EAAWV,EAAMM,GAAG,CAAGH,EAAMG,GAAG,CAC7CQ,EAAYJ,EAAWP,EAAMG,GAAG,CAAGN,EAAMM,GAAG,CAE5CnI,EAASyC,EAAKgB,AADOZ,CAAAA,EAAOa,OAAO,CAACC,KAAK,EAAI,CAAC,CAAA,EACb3D,MAAM,CAAE,CAAC,CAAC6C,EAAOe,IAAI,EACtDgF,EAAsBZ,EAAMa,YAAY,CAAChG,EAAOa,OAAO,CAACoF,SAAS,EACjEC,EAAO,CAAC,EACRC,EAAiBT,EAAW,eAAiB,eAwBjD,GAAI1F,EAAOoG,cAAc,EACrBZ,GACAA,EAAKa,gBAAgB,EACrB,CAAClJ,GAGDyE,EAAOnD,MAAM,CAAG,AAACuB,CAAAA,EAAOW,KAAK,CAAC2F,SAAS,EAAI,CAAA,EA9ChC,GA8C+C,CAG1D,IAAI/K,EAAIqI,EAAM2C,GAAG,EAAI3C,EAAMY,IAAI,CAAC,KAKhC,IAJIZ,EAAM2C,GAAG,EACT3C,EAAMY,IAAI,CAAC,CAAEjJ,EAAGqI,EAAM2C,GAAG,AAAC,GAE9BjB,EAAME,EAAKgB,cAAc,GACpB7H,EAAI,EAAGA,EAAI2G,EAAK3G,GAtDV,GAsDyB,CAChC,IAAI8H,EAAWjB,EAAKa,gBAAgB,CAAC1H,GACjC0F,EAAQqB,EAAWI,EAAYW,EAASpH,CAAC,CAAGoH,EAASrH,CAAC,CACtDmF,EAAQmB,EAAWG,EAAaY,EAASrH,CAAC,CAAGqH,EAASpH,CAAC,CAC3DqH,EAAa,CACTtE,OAAQuD,EAAWtB,EACnBpC,OAAQ2D,EAAUrB,EAClBF,MAAOA,EACPE,MAAOA,CACX,EACJ,CACIhJ,GACAqI,EAAMY,IAAI,CAAC,CAAEjJ,EAAGA,CAAE,GAGtB,IAAIoL,EAAQ/E,CAAM,CAACA,EAAOnD,MAAM,CAAG,EAAE,CACjCwG,EAAM0B,EAAM1B,GAAG,GACnByB,EAAa,CACTtE,OAAQuD,EAAY,CAAA,AAACV,CAAAA,MAAAA,EAAiC,KAAK,EAAIA,CAAG,CAAC,EAAE,AAAD,GAAM,CAAA,EAC1EhD,OAAQ2D,EAAW,CAAA,AAACX,CAAAA,MAAAA,EAAiC,KAAK,EAAIA,CAAG,CAAC,EAAE,AAAD,GAAM,CAAA,CAC7E,EAEJ,KACK,CACDK,EAAM1D,EAAOnD,MAAM,CACnB,IAAImI,EAAO,KAAK,EAChB,IAAKjI,EAAI,EAAGA,EAAI2G,EAAK3G,GAAK,EAAG,CACzB,IAAIgI,EAAQ/E,CAAM,CAACjD,EAAE,CACjBkI,EAAKF,EAAM1B,GAAG,IAAM,EAAE,CACtBZ,EAAQwC,CAAE,CAAC,EAAE,CACbtC,EAAQsC,CAAE,CAAC,EAAE,CACbC,EAAWH,EAAMG,QAAQ,CAC7B,GAAInH,EAAS0E,IAAU1E,EAAS4E,GAAQ,CACpC,IAAIwC,EAAW,CACP1C,MAAOA,EACPE,MAAOA,EAEPnC,OAAQuD,EAAWtB,EACnBpC,OAAQ2D,EAAUrB,CACtB,EAiBJ,GAhBIpH,IAEI2J,IACAC,EAASxC,KAAK,CAAGuC,EACjBC,EAAS9E,MAAM,CAAG2D,EAAUkB,GAE5BpB,EACAqB,EAASC,YAAY,CAAGrB,EAAWG,EAAY,AAAC,CAAA,AAACgB,CAAAA,GAAsBH,EAAMpC,KAAK,EAAI,CAAA,EAClF3E,EAAK+G,EAAMM,OAAO,CAAElB,EAAmB,EAAK,EAGhDgB,EAASG,YAAY,CAAGtB,EAAU,AAAC,CAAA,AAACkB,CAAAA,GAAsBvC,CAAI,EAC1D3E,EAAK+G,EAAMM,OAAO,CAAElB,EAAmB,EAAK,GAIpDa,GAIIvB,AADJA,CAAAA,EAAQ7C,KAAK0B,GAAG,CAFP1B,KAAK2E,GAAG,CAACJ,EAAS3E,MAAM,CAAGwE,EAAKxE,MAAM,EACtCI,KAAK2E,GAAG,CAACJ,EAAS9E,MAAM,CAAG2E,EAAK3E,MAAM,EAChB,EAjHhC,IAkHyBoD,EAAQ,IAE5B,IAAK3E,EAAI,EADTtF,EAAIoH,KAAK4E,IAAI,CAAC/B,EAnHnB,IAoHiB3E,EAAItF,EAAGsF,GAAK,EACpBgG,EAAc7B,CAAAA,AAMVA,CANUA,EAAK,CACXzC,OAAQwE,EAAKxE,MAAM,CACf,AAAC2E,CAAAA,EAAS3E,MAAM,CAAGwE,EAAKxE,MAAM,AAAD,EAAM1B,CAAAA,EAAItF,CAAAA,EAC3C6G,OAAQ2E,EAAK3E,MAAM,CACf,AAAC8E,CAAAA,EAAS9E,MAAM,CAAG2E,EAAK3E,MAAM,AAAD,EAAMvB,CAAAA,EAAItF,CAAAA,CAC/C,CAAA,CACE,CAAC+K,EAAe,CAAG,AAACS,CAAAA,CAAI,CAACT,EAAe,EAAI,CAAA,EAC1C,AAAC,CAAA,AAACY,CAAAA,CAAQ,CAACZ,EAAe,EAAI,CAAA,EACzBS,CAAAA,CAAI,CAACT,EAAe,EAAI,CAAA,CAAC,EAAMzF,CAAAA,EAAItF,CAAAA,EAC5CyJ,EAAGR,KAAK,CAAG,AAACuC,CAAAA,EAAKvC,KAAK,EAAI,CAAA,EACtB,AAACA,CAAAA,EAASuC,CAAAA,EAAKvC,KAAK,EAAI,CAAA,CAAC,EAAM3D,CAAAA,EAAItF,CAAAA,EACvCyJ,EAAGN,KAAK,CAAG,AAACqC,CAAAA,EAAKrC,KAAK,EAAI,CAAA,EACtB,AAACA,CAAAA,EAASqC,CAAAA,EAAKrC,KAAK,EAAI,CAAA,CAAC,EAAM7D,CAAAA,EAAItF,CAAAA,EACvCyJ,CAAC,GAMjB6B,EAAaK,GACbH,EAAOG,CACX,CACJ,CACJ,CAQA,OAAOxB,EAtHP,SAASmB,EAAaC,CAAK,EACvB,IAAkBjL,EAAM8G,KAAK6E,KAAK,CAAC,AAACV,CAAAA,EAAMtC,KAAK,EAAI,CAAA,EAApC,GAAqD,IAC5D7B,KAAK6E,KAAK,CAAC,AAACV,CAAAA,EAAMpC,KAAK,EAAI,CAAA,EADpB,EAEV2B,CAAAA,CAAI,CAACxK,EAAI,GACVwK,CAAI,CAACxK,EAAI,CAAG,EACZ6J,EAAajD,IAAI,CAACqE,GAE1B,CAgHJ,EA7YqD3G,GAC7CxC,EAAa8E,IAAI,CAACgF,KAAK,CAAC9J,EAAeoD,EAAmBpD,YAAY,EAAI,EAAE,CAChF,GACAmD,AAyc6BoC,EAzcvB/C,MAAM,CAACuD,OAAO,CAAC,SAAUvD,CAAM,EAGjC,IAAIuH,EAAevH,EAAOa,OAAO,CAACC,KAAK,CACvC,GAAI,AAACyG,GAAiB,CAAA,AAACvH,EAAOgF,KAAK,EAAKhF,EAAOmF,KAAK,AAAD,GAGnD,IANIN,EACAgC,EAMA5G,EACAb,EACAC,EACAmI,EACA7I,EACA8I,EAEAC,EACAC,EACAC,EAVAC,EAAc,oBAAsBjI,EAAKI,EAAO8H,UAAU,CAAE,QAAUC,EAAQ,CAAC/H,EAAOwD,aAAa,CAAEvG,EAAcsK,EAAatK,WAAW,CAAEC,EAAcqK,EAAarK,WAAW,CAAEwI,EAAW/E,AAkc3KoC,EAlciL2C,QAAQ,CAAEC,EAAYD,EAAW1F,EAAOmF,KAAK,CAACF,GAAG,CAAGjF,EAAOgF,KAAK,CAACC,GAAG,CAAGW,EAAWF,EAAW1F,EAAOgF,KAAK,CAACC,GAAG,CAAGjF,EAAOmF,KAAK,CAACF,GAAG,CAAGa,EAAYnF,AAkchUoC,EAlcsU2C,QAAQ,CAAG1F,EAAOmF,KAAK,CAACG,GAAG,CAAGtF,EAAOgF,KAAK,CAACM,GAAG,CAAEO,EAAalF,AAkcnYoC,EAlcyY2C,QAAQ,CAAG1F,EAAOgF,KAAK,CAACM,GAAG,CAAGtF,EAAOmF,KAAK,CAACG,GAAG,CAAE1D,EAAS5B,EAAO6B,kBAAkB,CAAE1E,EAASyC,EAAK2H,EAAapK,MAAM,CAAE,CAAC,CAAC6C,EAAOe,IAAI,EAAGiH,EAAU,EAAE,CAAEC,EAAQjI,EAAO2D,SAAS,CAAC,KAO5kB7C,EAAQd,EAAOwD,aAAa,CAmChC,GA9BIrG,GAAU,CAACuI,IACXgC,EAAe,CACX1H,EAAOgF,KAAK,CAACkD,QAAQ,CAACD,CAAK,CAAC,EAAE,EAC9BjI,EAAOgF,KAAK,CAACkD,QAAQ,CAACD,CAAK,CAACA,EAAMxJ,MAAM,CAAG,EAAE,EAChD,CACDkJ,EAAUnF,KAAKC,GAAG,CAAC6E,KAAK,CAAC9E,KAAMkF,GAC/BE,EAAUpF,KAAK0B,GAAG,CAACoD,KAAK,CAAC9E,KAAMkF,IAwB/B1H,EAAO8B,OAAO,EAAI,CAAC9B,EAAO6D,OAAO,EAAIjC,EAAQ,CAC7C,GAAI,CAACd,EAAO,CACR,IAAIqH,EAAYnI,EAAOoI,IAAI,CAa3B,GAZI,AAA+B,UAA/B,OAAOb,EAAaxK,MAAM,CAC1BoL,EAAYpL,EAAOwK,EAAaxK,MAAM,CAAEiD,EAoZ3B+C,GAlZRwE,EAAavK,SAAS,EAC3BmL,CAAAA,EAAYZ,EAAavK,SAAS,CAACZ,IAAI,CAAC4D,EAAM,EAElDA,EAAOwD,aAAa,CAAG1C,EAAQH,AA+YdoC,EA/YoBD,QAAQ,CACxChC,KAAK,CAACqH,EAAW,EAAG,EAAG,YAAa,EAAG,EAAGZ,EAAahK,OAAO,EAC9D8K,QAAQ,CAAC,mDACmBrI,EAAOsI,KAAK,CAAG,IAC3CtI,CAAAA,EAAOa,OAAO,CAAC0H,SAAS,EAAI,EAAC,EAAK,IACnCV,GACA,CAAClH,AAyYYoC,EAzYND,QAAQ,CAAC0F,UAAU,CAAE,CAC5B,IAAIC,EAAQ,AAAwB,UAAxB,OAAOzI,EAAOyI,KAAK,CACvBzI,EAAOyI,KAAK,CAAG,UACvB3H,EAAM4H,GAAG,CAACjJ,EAAO,CACbgJ,MAAOtL,EACHwD,AAoYKoC,EApYCD,QAAQ,CAAC6F,WAAW,CAACF,GAC3BA,CACR,EAAGlB,EAAanK,KAAK,EAAI,CAAC,IAC1B0D,EAAM0D,IAAI,CAAC,CACPC,QAAS9D,AAgYAoC,EAhYMD,QAAQ,CAAC8F,SAAS,CAAG,EAAI,EACxCC,OAAQ7I,EAAOyI,KAAK,CACpB,eAAgB,CACpB,EACJ,CAEIxL,GAAeC,GACf4D,EAAM4H,GAAG,CAAC,CACNrL,QAAQ,CAAwBJ,EAiU9B,AAAE+C,CAAAA,AAjUoBA,EAiUb8D,GAAG,EAAI,CAAA,EAAM9D,CAAAA,AAjUAA,EAiUOW,KAAK,CAACyC,iBAAiB,EAAI,CAAA,EACzElG,CAAAA,AAlU4DA,EAAbD,CAkUvB,EAAM,IAjUnB,GAEJ6D,EACK0D,IAAI,CAAC,CACNsE,QAAS,EACTC,OAAQ,CACZ,GACKC,GAAG,EACZ,CAKA,IAHA/I,AADAA,CAAAA,EAAOa,EAAMgE,OAAO,EAAC,EAChBvD,KAAK,CAAGiB,KAAK6E,KAAK,CAACpH,EAAKsB,KAAK,EAG7B5C,EAAIiD,EAAOnD,MAAM,CAAG,EAAGE,EAAI,EAAGA,GAAK,EAChCxB,EAMI8L,EAJJ7J,EAAI,AAAC,CAAA,AAAkC,OAAjCyF,CAAAA,EAAKjD,CAAM,CAACjD,EAAE,CAACqI,YAAY,AAAD,GAAenC,AAAO,KAAK,IAAZA,EAAgBA,EAAKjD,CAAM,CAACjD,EAAE,CAACyD,MAAM,AAAD,EAC/EnC,EAAKsB,KAAK,CAAG,EACjBlC,EAAI,AAAC,CAAA,AAAkC,OAAjCwH,CAAAA,EAAKjF,CAAM,CAACjD,EAAE,CAACuI,YAAY,AAAD,GAAeL,AAAO,KAAK,IAAZA,EAAgBA,EAAKjF,CAAM,CAACjD,EAAE,CAACsD,MAAM,AAAD,EAC/EhC,EAAKyB,MAAM,CAAG,EACGzB,IACjBwH,CAAAA,EAAO1H,EAAgBC,EAAQZ,EAAGC,EAAGY,EAAI,GAUzCgJ,EAFJ7J,EAAIwC,CAAM,CAACjD,EAAE,CAACyD,MAAM,CAlSpB,EAmSA/C,EAAIuC,CAAM,CAACjD,EAAE,CAACsD,MAAM,CAAGhC,EAAKyB,MAAM,CAnSlC,EAoSqBzB,IACjBwH,CAAAA,EAAO1H,EAAgBC,EAAQZ,EAAGC,EAAGY,EAAM,CAAA,EAAI,EAE/CwH,GACAO,EAAQ1F,IAAI,CAACmF,GAKbwB,EAFJ7J,EAAIwC,CAAM,CAACjD,EAAE,CAACyD,MAAM,CA3SpB,EA4SA/C,EAAIuC,CAAM,CAACjD,EAAE,CAACsD,MAAM,CA5SpB,EA6SqBhC,IACjBwH,CAAAA,EAAO1H,EAAgBC,EAAQZ,EAAGC,EAAGY,EAAM,CAAA,EAAI,EAE/CwH,GACAO,EAAQ1F,IAAI,CAACmF,GAKbwB,EAFJ7J,EAAIwC,CAAM,CAACjD,EAAE,CAACyD,MAAM,CAAGnC,EAAKsB,KAAK,CApTjC,EAqTAlC,EAAIuC,CAAM,CAACjD,EAAE,CAACsD,MAAM,CArTpB,EAsTqBhC,IACjBwH,CAAAA,EAAO1H,EAAgBC,EAAQZ,EAAGC,EAAGY,EAAM,CAAA,EAAI,EAE/CwH,GACAO,EAAQ1F,IAAI,CAACmF,GAKbwB,EAFJ7J,EAAIwC,CAAM,CAACjD,EAAE,CAACyD,MAAM,CAAGnC,EAAKsB,KAAK,CA7TjC,EA8TAlC,EAAIuC,CAAM,CAACjD,EAAE,CAACsD,MAAM,CAAGhC,EAAKyB,MAAM,CA9TlC,EA+TqBzB,IACjBwH,CAAAA,EAAO1H,EAAgBC,EAAQZ,EAAGC,EAAGY,EAAM,CAAA,EAAI,GAE/CwH,GACAO,EAAQ1F,IAAI,CAACmF,GAKzB,GAAIF,EAAa1K,gBAAgB,EAAI,CAACmL,EAAQvJ,MAAM,EAAI,CAACtB,EACrD,IAAKiC,EAAIuG,EAAWG,EAAY7F,EAAKsB,KAAK,CAAEnC,GAAKuG,EAAUvG,GAAK,GAC5D,IAAKC,EAAIuG,EAASvG,EAAIuG,EAAUC,EAAa5F,EAAKyB,MAAM,CAAErC,GAAK,GAC3DmI,CAAAA,EAAazH,EAAgBC,EAAQZ,EAAGC,EAAGY,EAAM,CAAA,EAAI,GAEjD+H,EAAQ1F,IAAI,CAACkF,GAK7B,GAAIQ,EAAQvJ,MAAM,CAAE,CAChBuJ,EAAQkB,IAAI,CAAC,SAAU1N,CAAC,CAAE2N,CAAC,EAAI,OAAOA,EAAExG,MAAM,CAAGnH,EAAEmH,MAAM,AAAE,GAC3D8E,EAAOO,CAAO,CAAC,EAAE,CACjB,AAACrH,CAAAA,AAuSgBoC,EAvSVvF,YAAY,EAAI,EAAE,AAAD,EAAG8E,IAAI,CAAC,CAC5BjB,KAAMoG,EAAKrI,CAAC,CACZkC,MAAOmG,EAAKrI,CAAC,CAAGa,EAAKsB,KAAK,CAC1BC,IAAKiG,EAAKpI,CAAC,CACXoC,OAAQgG,EAAKpI,CAAC,CAAGY,EAAKyB,MAAM,AAChC,GAEA,IAAIrB,EAAOmC,KAAK4G,IAAI,CAAC5G,KAAKE,GAAG,CAACF,KAAK2E,GAAG,CAACM,EAAKrI,CAAC,CAAI0B,CAAAA,EAAM1B,CAAC,EAAI,CAAA,GAAK,GACzDoD,KAAKE,GAAG,CAACF,KAAK2E,GAAG,CAACM,EAAKpI,CAAC,CAAIyB,CAAAA,EAAMzB,CAAC,EAAI,CAAA,GAAK,IACpD,GAAIgB,GAAQL,EAAOwD,aAAa,CAAE,CAG9B,IAAIgB,EAAO,CACHC,QAAS9D,AA0RJoC,EA1RUD,QAAQ,CAAC8F,SAAS,CAAG,EAAI,EACxCxJ,EAAGqI,EAAKrI,CAAC,CACTC,EAAGoI,EAAKpI,CAAC,AACb,EACAgK,EAAO,CACH5E,QAAS,CACb,EAEApE,GAAQ,KACRgJ,EAAO,CACHjK,EAAGoF,EAAKpF,CAAC,CACTC,EAAGmF,EAAKnF,CAAC,AACb,EACAmF,EAAO,CAAC,GAIZ,IAAI8E,EAAmB,KAAK,EACxBvB,IACAuB,EAAmBtK,EAAWgB,EAAOa,OAAO,CAACuD,SAAS,EACtDkF,EAAiBpG,QAAQ,EAAI,IAEjClD,EAAOwD,aAAa,CACfgB,IAAI,CAAC/E,EAAO+E,EAAM,CACnB+E,QAAS9B,EAAKnH,cAAc,EACxB,AAACmH,CAAAA,EAAKnH,cAAc,CAAC+D,KAAK,EAAI,CAAA,EAAKsB,EACvC6D,QAAS/B,EAAKnH,cAAc,EACxB,AAACmH,CAAAA,EAAKnH,cAAc,CAACiE,KAAK,EAAI,CAAA,EAAKqB,CAC3C,IACKtB,OAAO,CAAC+E,EAAMC,GAEnBtJ,EAAOa,OAAO,CAAC4I,KAAK,CAAG,CAAA,EACvBzJ,EAAO0J,WAAW,GAClB,IAAIjG,EAAUzD,EAAO2J,WAAW,CAAC,CACzBvH,OAAQqF,EAAKrI,CAAC,CACd6C,OAAQwF,EAAKpI,CAAC,AAClB,EACA,CAAA,GACAoE,GACA3C,CAAAA,EAAM2C,OAAO,CAAG,CACZA,EACAgE,EAAKrI,CAAC,CAAIqE,CAAAA,EAAQY,KAAK,EAAI,CAAA,EAC3BoD,EAAKpI,CAAC,CAAIoE,CAAAA,EAAQc,KAAK,EAAI,CAAA,EAC9B,AAAD,CAER,CACJ,MAEIqF,GAER,MAEIA,IArMJ,SAASX,EAAW7J,CAAC,CAAEC,CAAC,CAAEY,CAAI,EAC1B,IAAI4J,EAAYrH,KAAK0B,GAAG,CAACyB,EACrB/F,EAAK+H,EAAS,CAACmC,MACfC,EAAavH,KAAKC,GAAG,CAACkD,EAAWG,EACjClG,EAAKgI,EACLkC,MACJ,OAAQ1K,EAAIyK,GACRzK,GAAK2K,EAAa9J,EAAKsB,KAAK,EAC5BlC,GAAKuG,GACLvG,GAAKuG,EAAUC,EAAa5F,EAAKyB,MAAM,AAC/C,CAIA,SAASkI,IACD9I,GACAd,CAAAA,EAAOwD,aAAa,CAAG1C,EAAMkJ,OAAO,EAAC,CAE7C,CAqLJ,GACAtK,EAmO6BqD,EAnOZ,wBAoOT,CACJ,EAAGA,EAAQD,QAAQ,CAAC8F,SAAS,EAAI,CAAC5F,EAAU,EAAIA,EACpD,CACJ,CAKA,SAASiH,EAAgB7K,CAAC,CAAEC,CAAC,CAAEC,CAAC,CAAEC,CAAC,CAAEsB,CAAO,EACxC,IAEIqJ,EACAC,EAHAZ,EAAU1I,GAAWA,EAAQ0I,OAAO,CACpCC,EAAU3I,GAAWA,EAAQ2I,OAAO,CAGpCY,EAAU9K,EAAI,EA4BlB,OA3BIK,EAAS4J,IAAY5J,EAAS6J,KAC9BU,EAAO,CAAC,CAAC,IAAKX,EAASC,EAAQ,CAAC,CAEhCW,CAAAA,EAAU9K,EAAImK,CAAM,EACN,GACVW,CAAAA,EAAU,CAAC5K,EAAI4K,CAAM,EAErBA,EAAU7K,GACV8K,CAAAA,EAAUb,EAAUnK,EAAKE,EAAI,EAAK6K,EAAU7K,EAAI6K,CAAM,EAGtDX,EAAUnK,EAAIE,EACd2K,EAAK5H,IAAI,CAAC,CAAC,IAAKlD,EAAIgL,EAAS/K,EAAIE,EAAE,EAG9BiK,EAAUnK,EACf6K,EAAK5H,IAAI,CAAC,CAAC,IAAKlD,EAAIgL,EAAS/K,EAAE,EAG1BkK,EAAUnK,EACf8K,EAAK5H,IAAI,CAAC,CAAC,IAAKlD,EAAGC,EAAIE,EAAI,EAAE,EAGxBgK,EAAUnK,EAAIE,GACnB4K,EAAK5H,IAAI,CAAC,CAAC,IAAKlD,EAAIE,EAAGD,EAAIE,EAAI,EAAE,GAGlC2K,GAAQ,EAAE,AACrB,CAuCA,IAAIG,EAAK7N,IACT8N,AAlCkB,CAAA,CACdC,QAziBJ,SAAiBC,CAAU,CAAEC,CAAgB,EACrC5K,EAAWX,EAAU,iBAErBM,EAASgL,EAAY,OAAQ5H,GAC7BpD,EAASgL,EAAY,SAAU5H,GAC/B6H,EAAiBvO,SAAS,CAACwO,OAAO,CAACC,SAAS,CAAGV,EAC/ChL,EAAW,CAAE2L,YAAa,CAAE5K,OAAQ,CAAEc,MAAOnE,CAAgC,CAAE,CAAE,GAEzF,CAkiBA,CAAA,EAgCwB4N,OAAO,CAACF,EAAEQ,KAAK,CAAER,EAAES,WAAW,EACzB,IAAIxO,EAAqBE,IAG5C,OADYH,EAAoB,OAAU,AAE3C,GAET"}
Hacked By AnonymousFox1.0, Coded By AnonymousFox